@nativewrappers/redm-codegen 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/dist/classes/AnimScene.d.ts +126 -126
  2. package/dist/classes/AnimScene.d.ts.map +1 -1
  3. package/dist/classes/AnimScene.js +184 -184
  4. package/dist/classes/BaseModel.d.ts +17 -17
  5. package/dist/classes/BaseModel.d.ts.map +1 -1
  6. package/dist/classes/BaseModel.js +25 -25
  7. package/dist/classes/BaseTask.d.ts +12 -12
  8. package/dist/classes/BaseTask.d.ts.map +1 -1
  9. package/dist/classes/BaseTask.js +14 -14
  10. package/dist/classes/Cam.d.ts +94 -94
  11. package/dist/classes/Cam.d.ts.map +1 -1
  12. package/dist/classes/Cam.js +126 -126
  13. package/dist/classes/Entity.d.ts +471 -471
  14. package/dist/classes/Entity.d.ts.map +1 -1
  15. package/dist/classes/Entity.js +672 -672
  16. package/dist/classes/PedTask.d.ts +155 -155
  17. package/dist/classes/PedTask.d.ts.map +1 -1
  18. package/dist/classes/PedTask.js +204 -204
  19. package/dist/classes/PersChar.d.ts +9 -9
  20. package/dist/classes/PersChar.d.ts.map +1 -1
  21. package/dist/classes/PersChar.js +21 -21
  22. package/dist/classes/Pickup.d.ts +5 -5
  23. package/dist/classes/Pickup.d.ts.map +1 -1
  24. package/dist/classes/Pickup.js +9 -9
  25. package/dist/classes/Player.d.ts +687 -687
  26. package/dist/classes/Player.d.ts.map +1 -1
  27. package/dist/classes/Player.js +1013 -1013
  28. package/dist/classes/Prop.d.ts +87 -87
  29. package/dist/classes/Prop.d.ts.map +1 -1
  30. package/dist/classes/Prop.js +121 -121
  31. package/dist/classes/PropSet.d.ts +4 -4
  32. package/dist/classes/PropSet.d.ts.map +1 -1
  33. package/dist/classes/PropSet.js +6 -6
  34. package/dist/classes/VehicleTask.d.ts +17 -17
  35. package/dist/classes/VehicleTask.d.ts.map +1 -1
  36. package/dist/classes/VehicleTask.js +21 -21
  37. package/dist/classes/Weapon.d.ts +306 -306
  38. package/dist/classes/Weapon.d.ts.map +1 -1
  39. package/dist/classes/Weapon.js +411 -411
  40. package/dist/namespaces/Animscene.d.ts +59 -59
  41. package/dist/namespaces/Animscene.d.ts.map +1 -1
  42. package/dist/namespaces/Animscene.js +77 -77
  43. package/dist/namespaces/Audio.d.ts +569 -569
  44. package/dist/namespaces/Audio.d.ts.map +1 -1
  45. package/dist/namespaces/Audio.js +728 -728
  46. package/dist/namespaces/Bounty.d.ts +70 -70
  47. package/dist/namespaces/Bounty.d.ts.map +1 -1
  48. package/dist/namespaces/Bounty.js +115 -115
  49. package/dist/namespaces/Brain.d.ts +15 -15
  50. package/dist/namespaces/Brain.d.ts.map +1 -1
  51. package/dist/namespaces/Brain.js +20 -20
  52. package/dist/namespaces/CamStatics.d.ts +399 -399
  53. package/dist/namespaces/CamStatics.d.ts.map +1 -1
  54. package/dist/namespaces/CamStatics.js +574 -574
  55. package/dist/namespaces/Clock.d.ts +51 -51
  56. package/dist/namespaces/Clock.d.ts.map +1 -1
  57. package/dist/namespaces/Clock.js +73 -73
  58. package/dist/namespaces/Collection.d.ts +76 -76
  59. package/dist/namespaces/Collection.d.ts.map +1 -1
  60. package/dist/namespaces/Collection.js +108 -108
  61. package/dist/namespaces/Companion.d.ts +22 -22
  62. package/dist/namespaces/Companion.d.ts.map +1 -1
  63. package/dist/namespaces/Companion.js +30 -30
  64. package/dist/namespaces/Compendium.d.ts +38 -38
  65. package/dist/namespaces/Compendium.d.ts.map +1 -1
  66. package/dist/namespaces/Compendium.js +52 -52
  67. package/dist/namespaces/Crashlog.d.ts +10 -10
  68. package/dist/namespaces/Crashlog.d.ts.map +1 -1
  69. package/dist/namespaces/Crashlog.js +14 -14
  70. package/dist/namespaces/Crew.d.ts +9 -9
  71. package/dist/namespaces/Crew.d.ts.map +1 -1
  72. package/dist/namespaces/Crew.js +14 -14
  73. package/dist/namespaces/Databinding.d.ts +177 -177
  74. package/dist/namespaces/Databinding.d.ts.map +1 -1
  75. package/dist/namespaces/Databinding.js +271 -271
  76. package/dist/namespaces/Dlc.d.ts +5 -5
  77. package/dist/namespaces/Dlc.d.ts.map +1 -1
  78. package/dist/namespaces/Dlc.js +9 -9
  79. package/dist/namespaces/EntityStatics.d.ts +193 -193
  80. package/dist/namespaces/EntityStatics.d.ts.map +1 -1
  81. package/dist/namespaces/EntityStatics.js +263 -263
  82. package/dist/namespaces/Fire.d.ts +7 -7
  83. package/dist/namespaces/Fire.d.ts.map +1 -1
  84. package/dist/namespaces/Fire.js +9 -9
  85. package/dist/namespaces/Graphics.d.ts +820 -820
  86. package/dist/namespaces/Graphics.d.ts.map +1 -1
  87. package/dist/namespaces/Graphics.js +1118 -1118
  88. package/dist/namespaces/Hud.d.ts +494 -494
  89. package/dist/namespaces/Hud.d.ts.map +1 -1
  90. package/dist/namespaces/Hud.js +789 -789
  91. package/dist/namespaces/Inventory.d.ts +180 -180
  92. package/dist/namespaces/Inventory.d.ts.map +1 -1
  93. package/dist/namespaces/Inventory.js +239 -239
  94. package/dist/namespaces/Itemdatabase.d.ts +78 -78
  95. package/dist/namespaces/Itemdatabase.d.ts.map +1 -1
  96. package/dist/namespaces/Itemdatabase.js +106 -106
  97. package/dist/namespaces/Map.d.ts +156 -156
  98. package/dist/namespaces/Map.d.ts.map +1 -1
  99. package/dist/namespaces/Map.js +207 -207
  100. package/dist/namespaces/Minigame.d.ts +78 -78
  101. package/dist/namespaces/Minigame.d.ts.map +1 -1
  102. package/dist/namespaces/Minigame.js +116 -116
  103. package/dist/namespaces/Missiondata.d.ts +15 -15
  104. package/dist/namespaces/Missiondata.d.ts.map +1 -1
  105. package/dist/namespaces/Missiondata.js +23 -23
  106. package/dist/namespaces/Network.d.ts +636 -636
  107. package/dist/namespaces/Network.d.ts.map +1 -1
  108. package/dist/namespaces/Network.js +915 -915
  109. package/dist/namespaces/Object.d.ts +121 -121
  110. package/dist/namespaces/Object.d.ts.map +1 -1
  111. package/dist/namespaces/Object.js +162 -162
  112. package/dist/namespaces/Pad.d.ts +94 -94
  113. package/dist/namespaces/Pad.d.ts.map +1 -1
  114. package/dist/namespaces/Pad.js +127 -127
  115. package/dist/namespaces/Perschar.d.ts +44 -44
  116. package/dist/namespaces/Perschar.d.ts.map +1 -1
  117. package/dist/namespaces/Perschar.js +68 -68
  118. package/dist/namespaces/Physics.d.ts +158 -158
  119. package/dist/namespaces/Physics.d.ts.map +1 -1
  120. package/dist/namespaces/Physics.js +207 -207
  121. package/dist/namespaces/PlayerStatics.d.ts +127 -127
  122. package/dist/namespaces/PlayerStatics.d.ts.map +1 -1
  123. package/dist/namespaces/PlayerStatics.js +177 -177
  124. package/dist/namespaces/Population.d.ts +75 -75
  125. package/dist/namespaces/Population.d.ts.map +1 -1
  126. package/dist/namespaces/Population.js +101 -101
  127. package/dist/namespaces/Posse.d.ts +38 -38
  128. package/dist/namespaces/Posse.d.ts.map +1 -1
  129. package/dist/namespaces/Posse.js +62 -62
  130. package/dist/namespaces/Propset.d.ts +30 -30
  131. package/dist/namespaces/Propset.d.ts.map +1 -1
  132. package/dist/namespaces/Propset.js +38 -38
  133. package/dist/namespaces/Shapetest.d.ts +11 -11
  134. package/dist/namespaces/Shapetest.d.ts.map +1 -1
  135. package/dist/namespaces/Shapetest.js +13 -13
  136. package/dist/namespaces/Stats.d.ts +88 -88
  137. package/dist/namespaces/Stats.d.ts.map +1 -1
  138. package/dist/namespaces/Stats.js +123 -123
  139. package/dist/namespaces/Streaming.d.ts +58 -58
  140. package/dist/namespaces/Streaming.d.ts.map +1 -1
  141. package/dist/namespaces/Streaming.js +92 -92
  142. package/dist/namespaces/Task.d.ts +62 -62
  143. package/dist/namespaces/Task.d.ts.map +1 -1
  144. package/dist/namespaces/Task.js +90 -90
  145. package/dist/namespaces/Telemetry.d.ts +172 -172
  146. package/dist/namespaces/Telemetry.d.ts.map +1 -1
  147. package/dist/namespaces/Telemetry.js +240 -240
  148. package/dist/namespaces/Uifeed.d.ts +15 -15
  149. package/dist/namespaces/Uifeed.d.ts.map +1 -1
  150. package/dist/namespaces/Uifeed.js +24 -24
  151. package/dist/namespaces/Voice.d.ts +38 -38
  152. package/dist/namespaces/Voice.d.ts.map +1 -1
  153. package/dist/namespaces/Voice.js +56 -56
  154. package/dist/namespaces/Water.d.ts +27 -27
  155. package/dist/namespaces/Water.d.ts.map +1 -1
  156. package/dist/namespaces/Water.js +41 -41
  157. package/dist/namespaces/WeaponStatics.d.ts +250 -250
  158. package/dist/namespaces/WeaponStatics.d.ts.map +1 -1
  159. package/dist/namespaces/WeaponStatics.js +346 -346
  160. package/package.json +1 -1
  161. package/src/classes/AnimScene.ts +199 -199
  162. package/src/classes/BaseModel.ts +29 -29
  163. package/src/classes/BaseTask.ts +15 -15
  164. package/src/classes/Cam.ts +135 -135
  165. package/src/classes/Entity.ts +687 -687
  166. package/src/classes/PedTask.ts +223 -223
  167. package/src/classes/PersChar.ts +24 -24
  168. package/src/classes/Pickup.ts +10 -10
  169. package/src/classes/Player.ts +1024 -1024
  170. package/src/classes/Prop.ts +136 -136
  171. package/src/classes/PropSet.ts +7 -7
  172. package/src/classes/VehicleTask.ts +23 -23
  173. package/src/classes/Weapon.ts +429 -429
  174. package/src/namespaces/Animscene.ts +86 -86
  175. package/src/namespaces/Audio.ts +804 -804
  176. package/src/namespaces/Bounty.ts +131 -131
  177. package/src/namespaces/Brain.ts +22 -22
  178. package/src/namespaces/CamStatics.ts +599 -599
  179. package/src/namespaces/Clock.ts +82 -82
  180. package/src/namespaces/Collection.ts +109 -109
  181. package/src/namespaces/Companion.ts +34 -34
  182. package/src/namespaces/Compendium.ts +59 -59
  183. package/src/namespaces/Crashlog.ts +16 -16
  184. package/src/namespaces/Crew.ts +16 -16
  185. package/src/namespaces/Databinding.ts +286 -286
  186. package/src/namespaces/Dlc.ts +9 -9
  187. package/src/namespaces/EntityStatics.ts +279 -279
  188. package/src/namespaces/Fire.ts +10 -10
  189. package/src/namespaces/Graphics.ts +1196 -1196
  190. package/src/namespaces/Hud.ts +799 -799
  191. package/src/namespaces/Inventory.ts +245 -245
  192. package/src/namespaces/Itemdatabase.ts +118 -118
  193. package/src/namespaces/Map.ts +215 -215
  194. package/src/namespaces/Minigame.ts +132 -132
  195. package/src/namespaces/Missiondata.ts +27 -27
  196. package/src/namespaces/Network.ts +951 -951
  197. package/src/namespaces/Object.ts +171 -171
  198. package/src/namespaces/Pad.ts +127 -127
  199. package/src/namespaces/Perschar.ts +72 -72
  200. package/src/namespaces/Physics.ts +231 -231
  201. package/src/namespaces/PlayerStatics.ts +202 -202
  202. package/src/namespaces/Population.ts +114 -114
  203. package/src/namespaces/Posse.ts +62 -62
  204. package/src/namespaces/Propset.ts +42 -42
  205. package/src/namespaces/Shapetest.ts +14 -14
  206. package/src/namespaces/Stats.ts +139 -139
  207. package/src/namespaces/Streaming.ts +104 -104
  208. package/src/namespaces/Task.ts +100 -100
  209. package/src/namespaces/Telemetry.ts +265 -265
  210. package/src/namespaces/Uifeed.ts +27 -27
  211. package/src/namespaces/Voice.ts +65 -65
  212. package/src/namespaces/Water.ts +47 -47
  213. package/src/namespaces/WeaponStatics.ts +365 -365
@@ -11,349 +11,354 @@ import { inv, rai, raf, ras, rav, pvi, pvf, pvv, pvii, pvfi, _h, f } from '../ty
11
11
 
12
12
  export class Audio {
13
13
  /**
14
- * https://github.com/femga/rdr3_discoveries/tree/master/audio/audio_flags
15
- *
16
- * @param flagName
17
- * @param toggle
14
+ * @param p0
18
15
  */
19
- static setAudioFlag(flagName: string | null, toggle: boolean): void {
20
- inv<void>('0xB9EFD5C25018725A', flagName, toggle);
16
+ static skipToNextScriptedConversationLine(p0: string | null): void {
17
+ inv<void>('0x9663FE6B7A61EB00', p0);
21
18
  }
22
19
 
23
20
  /**
24
- * @param vehicle
25
- * @param toggle
21
+ * @param ped
22
+ * @param p1
26
23
  */
27
- static setHornEnabled(vehicle: Vehicle, toggle: boolean): void {
28
- inv<void>('0x76D683C108594D0E', vehicle.handle, toggle);
24
+ static stopCurrentPlayingSpeech(ped: Ped, p1: any): void {
25
+ inv<void>('0x79D2F0E66F81D90D', ped.handle, p1);
26
+ }
27
+
28
+ static clearConversationHistory(): void {
29
+ inv<void>('0x33D51F801CB16E4F');
29
30
  }
30
31
 
31
32
  /**
32
- * p1 is possibly naSpeechAudibility, naSpeechType, or naSpeechEventTypeRequestPriority
33
- * SKIP_* - START_*
33
+ * @param eventName
34
+ * @returns
35
+ */
36
+ static prepareMusicEvent(eventName: string | null): boolean {
37
+ return !!inv<boolean>('0x1E5185B72EF5158A', eventName, rai());
38
+ }
39
+
40
+ /**
41
+ * Starts Audio Loop
42
+ * _PLAY_SOUND_FROM_ENTITY* - _PLAY_SOUND_FRONTEND*
34
43
  *
35
- * @param speechEventType Refer to [enum: naSpeechEventType]
36
- * @param p1
37
- * @param p2
44
+ * @param soundId
45
+ * @param soundName
46
+ * @param pos
47
+ * @param soundsetName
48
+ * @param p6
49
+ * @param p7
50
+ * @param p8
38
51
  */
39
- static N_0x0D7FD6A55FD63AEF(speechEventType: number, p1: number, p2: boolean): void {
40
- inv<void>('0x0D7FD6A55FD63AEF', speechEventType, p1, p2);
52
+ static playSoundFromPositionWithId(soundId: number, soundName: string | null, pos: Vector3, soundsetName: string | null, p6: boolean, p7: number, p8: boolean): void {
53
+ inv<void>('0xDCF5BA95BBF0FABA', soundId, soundName, f(pos.x), f(pos.y), f(pos.z), soundsetName, p6, p7, p8);
41
54
  }
42
55
 
43
56
  /**
44
57
  * @param p0
45
58
  * @param p1
46
59
  * @param p2
47
- * @param p3
48
- * @param p4
49
60
  */
50
- static N_0x06C5DF5EE444BC6B(p0: any, p1: any, p2: any, p3: any, p4: any): void {
51
- inv<void>('0x06C5DF5EE444BC6B', p0, p1, p2, p3, p4);
61
+ static N_0x8D29FDF565DED9AE(p0: any, p1: any, p2: any): void {
62
+ inv<void>('0x8D29FDF565DED9AE', p0, p1, p2);
52
63
  }
53
64
 
54
65
  /**
55
- * @param p0
66
+ * @param eventName
56
67
  * @returns
57
68
  */
58
- static N_0x2B9C37C01BF25EDB(p0: any): any {
59
- return inv<number>('0x2B9C37C01BF25EDB', p0);
69
+ static triggerMusicEventWithHash(eventName: string | number): any {
70
+ return inv<number>('0x05D6195FB4D428F4', _h(eventName));
60
71
  }
61
72
 
62
73
  /**
63
- * @param p0
74
+ * @param soundId
75
+ * @returns
64
76
  */
65
- static N_0x64B956F4E761DF5C(p0: any): void {
66
- inv<void>('0x64B956F4E761DF5C', p0);
77
+ static hasSoundIdFinished(soundId: number): any {
78
+ return inv<number>('0x84848E1C0FC67DBB', soundId);
67
79
  }
68
80
 
69
81
  /**
70
- * @param p0
82
+ * @param scene
71
83
  */
72
- static setAudioOnlineTransitionStage(p0: string | null): void {
73
- inv<void>('0x9B1FC259187C97C0', p0);
84
+ static stopAudioScene(scene: string | null): void {
85
+ inv<void>('0xDFE8422B3B94E688', scene);
74
86
  }
75
87
 
76
88
  /**
77
- * @param streamId
89
+ * @param p0
90
+ * @param p1
78
91
  */
79
- static playStreamFrontend(streamId: number): void {
80
- inv<void>('0x58FCE43488F9F5F4', streamId);
92
+ static N_0xA6847BBA4FCDD13F(p0: any, p1: any): void {
93
+ inv<void>('0xA6847BBA4FCDD13F', p0, p1);
81
94
  }
82
95
 
83
96
  /**
84
- * _IS_SOUND_RUNNING(?)
85
- *
86
- * @param audioName
87
- * @param audioRef
97
+ * @param p0
88
98
  * @returns
89
99
  */
90
- static N_0x580D71DFE0088E34(audioName: string | null, audioRef: string | null): boolean {
91
- return !!inv<boolean>('0x580D71DFE0088E34', audioName, audioRef, rai());
100
+ static isScriptedSpeechPlaying(p0: any): boolean {
101
+ return !!inv<boolean>('0xCC9AA18DCC7084F4', p0, rai());
92
102
  }
93
103
 
94
104
  /**
95
- * nullsub, doesn't do anything
105
+ * @param ped
106
+ * @param p1
107
+ * @param hash
108
+ */
109
+ static useFootstepScriptSweeteners(ped: Ped, p1: boolean, hash: string | number): void {
110
+ inv<void>('0xBF4DC1784BE94DFA', ped.handle, p1, _h(hash));
111
+ }
112
+
113
+ /**
114
+ * whistleConfig: Ped.WhistlePitch (0.0 - 1.0), Ped.WhistleClarity (0.0 - 1.0), Ped.WhistleShape (0.0 - 10.0)
96
115
  *
97
- * @param p0
116
+ * @param ped
117
+ * @param whistleConfig
118
+ * @param value
98
119
  */
99
- static registerScriptWithAudio(p0: boolean): void {
100
- inv<void>('0xC6ED9D5092438D91', p0);
120
+ static setWhistleConfigForPed(ped: Ped, whistleConfig: string | null, value: number): void {
121
+ inv<void>('0x9963681A8BC69BF3', ped.handle, whistleConfig, f(value));
101
122
  }
102
123
 
103
124
  /**
104
- * @param p0
125
+ * @param ped
105
126
  * @param p1
127
+ * @param p2
106
128
  */
107
- static N_0x35B8C070E0C16E2F(p0: any, p1: any): void {
108
- inv<void>('0x35B8C070E0C16E2F', p0, p1);
129
+ static playAnimalVocalizationPheromoneVialResponse(ped: Ped, p1: string | number, p2: boolean): void {
130
+ inv<void>('0x0E53530D9B2DB01D', ped.handle, _h(p1), p2);
109
131
  }
110
132
 
111
- static N_0x138ADB94F8B90616(): void {
112
- inv<void>('0x138ADB94F8B90616');
133
+ /**
134
+ * Only used in R* SP Scripts
135
+ * Old Name: _UPDATE_SOUND_POSITION
136
+ *
137
+ * @param soundId
138
+ * @param pos
139
+ */
140
+ static updateSoundCoord(soundId: number, pos: Vector3): void {
141
+ inv<void>('0x0286617C8FC50A53', soundId, f(pos.x), f(pos.y), f(pos.z));
113
142
  }
114
143
 
115
144
  /**
116
- * @param p0
145
+ * @param ambientZone
117
146
  * @param p1
118
147
  * @param p2
119
148
  */
120
- static N_0x380A2E353AD30917(p0: any, p1: any, p2: any): void {
121
- inv<void>('0x380A2E353AD30917', p0, p1, p2);
149
+ static setAmbientZoneStatePersistent(ambientZone: string | null, p1: boolean, p2: boolean): void {
150
+ inv<void>('0x1D6650420CEC9D3B', ambientZone, p1, p2);
122
151
  }
123
152
 
124
153
  /**
125
- * @param convoRoot
126
- * @returns
154
+ * @param ped
155
+ * @param p1
127
156
  */
128
- static createNewScriptedConversation(convoRoot: string | null): any {
129
- return inv<number>('0xD2C91A0B572AAE56', convoRoot);
157
+ static stopCurrentPlayingAmbientSpeech(ped: Ped, p1: any): void {
158
+ inv<void>('0xB8BEC0CA6F0EDB0F', ped.handle, p1);
130
159
  }
131
160
 
132
161
  /**
133
162
  * @param p0
134
- * @param p1
163
+ * @param ped
135
164
  * @param p2
136
165
  * @returns
137
166
  */
138
- static N_0x7678FE0455ED1145(p0: any, p1: any, p2: any): any {
139
- return inv<number>('0x7678FE0455ED1145', p0, p1, p2);
167
+ static isPedInCurrentConversation(p0: string | null, ped: Ped, p2: any): boolean {
168
+ return !!inv<boolean>('0x049E937F18F4020C', p0, ped.handle, p2, rai());
140
169
  }
141
170
 
142
171
  /**
143
- * @param entity
144
- * @param groupName
145
- * @param p2
172
+ * @param p0
173
+ * @returns
146
174
  */
147
- static addEntityToAudioMixGroup(entity: Entity, groupName: string | null, p2: number): void {
148
- inv<void>('0x153973AB99FE8980', entity.handle, groupName, f(p2));
175
+ static isScriptedConversionOngoing(p0: string | null): any {
176
+ return inv<number>('0xF01C570E0A0A1E67', p0);
149
177
  }
150
178
 
151
179
  /**
152
- * speechEventType: https://github.com/Halen84/RDR3-Native-Flags-And-Enums/tree/main/naSpeechEventType
153
- * SKIP_* - START_*
154
- *
155
- * @param speechEventType
180
+ * @param soundsetName
156
181
  */
157
- static N_0x660A8F876DF1D4F8(speechEventType: number): void {
158
- inv<void>('0x660A8F876DF1D4F8', speechEventType);
182
+ static releaseSoundset(soundsetName: string | null): void {
183
+ inv<void>('0x531A78D6BF27014B', soundsetName);
159
184
  }
160
185
 
161
186
  /**
162
- * @param p0
163
- * @param p1
187
+ * @returns
164
188
  */
165
- static N_0x139A4B9DF2D26CBF(p0: any, p1: any): void {
166
- inv<void>('0x139A4B9DF2D26CBF', p0, p1);
189
+ static getSoundId(): number {
190
+ return inv<number>('0x430386FE9BF80B45', rai());
167
191
  }
168
192
 
169
193
  /**
170
- * @param pos
171
- * @param streamId
194
+ * @param listeningToPed
195
+ * @param ped
196
+ * @param listenerName
172
197
  */
173
- static playStreamFromPosition(pos: Vector3, streamId: number): void {
174
- inv<void>('0x21442F412E8DE56B', f(pos.x), f(pos.y), f(pos.z), streamId);
198
+ static N_0xA2323A2EAE32A290(listeningToPed: Ped, ped: Ped, listenerName: string | null): void {
199
+ inv<void>('0xA2323A2EAE32A290', listeningToPed.handle, ped.handle, listenerName);
175
200
  }
176
201
 
177
202
  /**
178
- * @param entity
203
+ * @param p0
179
204
  * @returns
180
205
  */
181
- static getEntityAudioMixGroup(entity: Entity): number {
182
- return (inv<number>('0x8B25A18E390F75BF', entity.handle, rai())) & 0xFFFFFFFF;
206
+ static N_0xF0EE69F500952FA5(p0: any): any {
207
+ return inv<number>('0xF0EE69F500952FA5', p0);
183
208
  }
184
209
 
185
210
  /**
186
- * @param convoRoot
211
+ * Old name: AUDIO_IS_SCRIPTED_MUSIC_PLAYING
212
+ *
187
213
  * @returns
188
214
  */
189
- static isScriptedConversationCreated(convoRoot: string | null): any {
190
- return inv<number>('0xD89504D9D7D5057D', convoRoot);
191
- }
192
-
193
- static N_0xA2B851605748AD0E(): void {
194
- inv<void>('0xA2B851605748AD0E');
215
+ static isMusicPlaying(): boolean {
216
+ return !!inv<boolean>('0x845FFC3A4FEEFA3E', rai());
195
217
  }
196
218
 
197
219
  /**
198
- * @param convoRoot
199
- * @returns
220
+ * Used in Script Function NET_CAMP_CLIENT_UPDATE_PED_ROLE_STATE_SHOP: hash exists! Playing hash
221
+ *
222
+ * @param ped
223
+ * @param p1
200
224
  */
201
- static N_0x0CB3D1919E8D7CBA(convoRoot: string | null): boolean {
202
- return !!inv<boolean>('0x0CB3D1919E8D7CBA', convoRoot, rai());
225
+ static N_0xB93A769B8B726950(ped: Ped, p1: string | number): void {
226
+ inv<void>('0xB93A769B8B726950', ped.handle, _h(p1));
203
227
  }
204
228
 
205
229
  /**
206
- * Name: ROPE_SETTINGS_DEFAULT
207
- *
208
- * @param ropeId
209
- * @param name
230
+ * @param variableName
231
+ * @param variableValue
232
+ * @param audioName
233
+ * @param audioRef
210
234
  */
211
- static N_0xF092B6030D6FD49C(ropeId: number, name: string | null): void {
212
- inv<void>('0xF092B6030D6FD49C', ropeId, name);
235
+ static setVariableOnSoundWithName(variableName: string | null, variableValue: number, audioName: string | null, audioRef: string | null): void {
236
+ inv<void>('0x9821B68CD3E05F2B', variableName, f(variableValue), audioName, audioRef);
213
237
  }
214
238
 
215
239
  /**
216
240
  * @param p0
217
- * @param currentScriptedConvoLine
218
- * @returns
241
+ * @param p1
219
242
  */
220
- static N_0x254B0241E964B450(p0: string | null, currentScriptedConvoLine: number): Ped | null {
221
- return createFromHandle<Ped>('Ped', inv<number>('0x254B0241E964B450', p0, currentScriptedConvoLine, rai()));
243
+ static N_0xD733528B6C35647A(p0: any, p1: any): void {
244
+ inv<void>('0xD733528B6C35647A', p0, p1);
222
245
  }
223
246
 
224
247
  /**
225
- * @param ped
226
- * @param vocalizationName
227
- * @param p2
248
+ * @param ambientZone
249
+ * @param p1
228
250
  */
229
- static playAnimalVocalization(ped: Ped, vocalizationName: string | null, p2: boolean): void {
230
- inv<void>('0xEE066C7006C49C0A', ped.handle, vocalizationName, p2);
251
+ static clearAmbientZoneListState(ambientZone: string | null, p1: boolean): void {
252
+ inv<void>('0x120C48C614909FA4', ambientZone, p1);
231
253
  }
232
254
 
233
255
  /**
234
256
  * @param p0
235
257
  * @param p1
236
258
  */
237
- static setPedInteriorWallaDensity(p0: number, p1: number): void {
238
- inv<void>('0x8BF907833BE275DE', f(p0), f(p1));
259
+ static N_0xE891504B2F0E2DBA(p0: any, p1: any): void {
260
+ inv<void>('0xE891504B2F0E2DBA', p0, p1);
239
261
  }
240
262
 
241
263
  /**
242
- * @param p0
264
+ * @param ped
243
265
  * @param p1
266
+ * @returns
244
267
  */
245
- static N_0xD47D47EFBF103FB8(p0: any, p1: any): void {
246
- inv<void>('0xD47D47EFBF103FB8', p0, p1);
268
+ static N_0xDF947FE0D551684E(ped: Ped, p1: string | null): boolean {
269
+ return !!inv<boolean>('0xDF947FE0D551684E', ped.handle, p1, rai());
247
270
  }
248
271
 
249
272
  /**
250
- * @param p0
273
+ * @param entity
251
274
  * @param p1
252
275
  */
253
- static N_0x5BC885EBD75FAA7D(p0: any, p1: any): void {
254
- inv<void>('0x5BC885EBD75FAA7D', p0, p1);
276
+ static N_0xE9694B2D6CB87B06(entity: Entity, p1: any): void {
277
+ inv<void>('0xE9694B2D6CB87B06', entity.handle, p1);
255
278
  }
256
279
 
257
280
  /**
258
- * Valid pain IDs: 0..12 these names are not official, but here is a list of the IDs:
259
- * 1 burning,
260
- * 2 drowning,
261
- * 3 coughing,
262
- * 4 nothing,
263
- * 5 nothing,
264
- * 6 coughing_2,
265
- * 7 nothing,
266
- * 8 nothing,
267
- * 9 hurtingSick?,
268
- * 10 hurtingFall?,
269
- * 11 nothing,
270
- * 12 choking
271
- *
272
- * @param ped
273
- * @param painId
274
- * @param p2
275
- * @param p3
276
- * @param isNetwork
281
+ * @param audioBank
277
282
  */
278
- static playPain(ped: Ped, painId: number, p2: number, p3: boolean, isNetwork: boolean): void {
279
- inv<void>('0xBC9AE166038A5CEC', ped.handle, painId, f(p2), p3, isNetwork);
283
+ static releaseNamedScriptAudioBank(audioBank: string | null): void {
284
+ inv<void>('0x77ED170667F50170', audioBank);
280
285
  }
281
286
 
282
287
  /**
283
- * *STOP_AUDIO**
288
+ * nullsub, doesn't do anything
284
289
  *
285
- * @param p0
290
+ * @param active
286
291
  */
287
- static N_0x6AB944DF68B512D3(p0: any): void {
288
- inv<void>('0x6AB944DF68B512D3', p0);
292
+ static setGpsActive(active: boolean): void {
293
+ inv<void>('0x3BD3F52BA9B1E4E8', active);
289
294
  }
290
295
 
291
- static N_0xDAD6CD07CAA4F382(): void {
292
- inv<void>('0xDAD6CD07CAA4F382');
296
+ /**
297
+ * Old name: _PLAY_SOUND_FROM_POSITION
298
+ *
299
+ * @param SoundName
300
+ * @param pos
301
+ * @param SetName
302
+ * @param bOverNetwork
303
+ * @param nNetworkRange
304
+ * @param isExteriorLoc
305
+ * @param p8
306
+ */
307
+ static playSoundFromCoord(SoundName: string | null, pos: Vector3, SetName: string | null, bOverNetwork: boolean, nNetworkRange: number, isExteriorLoc: boolean, p8: number): void {
308
+ inv<void>('0xCCE219C922737BFA', SoundName, f(pos.x), f(pos.y), f(pos.z), SetName, bOverNetwork, nNetworkRange, isExteriorLoc, p8);
293
309
  }
294
310
 
295
311
  /**
296
- * soundId maybe be incorrect name for param p2, in the decompiles is always -2
297
- *
298
- * @param soundName
299
- * @param soundsetName
300
- * @param soundId
312
+ * @param streamName
313
+ * @param soundSet
301
314
  * @returns
302
315
  */
303
- static prepareSound(soundName: string | null, soundsetName: string | null, soundId: number): any {
304
- return inv<number>('0xE368E8422C860BA7', soundName, soundsetName, soundId);
316
+ static loadStream(streamName: string | null, soundSet: string | null): boolean {
317
+ return !!inv<boolean>('0x1F1F957154EC51DF', streamName, soundSet, rai());
305
318
  }
306
319
 
307
320
  /**
308
321
  * @param p0
309
322
  * @param p1
310
323
  */
311
- static N_0x259ACC5B52A2B2D9(p0: any, p1: any): void {
312
- inv<void>('0x259ACC5B52A2B2D9', p0, p1);
324
+ static N_0x9EB779765E68C52E(p0: any, p1: any): void {
325
+ inv<void>('0x9EB779765E68C52E', p0, p1);
313
326
  }
314
327
 
315
- /**
316
- * @param audSpeechEvent
317
- */
318
- static N_0x1E6F9A9FE1A99F36(audSpeechEvent: string | null): void {
319
- inv<void>('0x1E6F9A9FE1A99F36', audSpeechEvent);
328
+ static N_0x43037ABFE214A851(): void {
329
+ inv<void>('0x43037ABFE214A851');
320
330
  }
321
331
 
322
332
  /**
323
- * @param p0
324
- * @param p1
325
- * @param p2
326
- * @param p3
333
+ * @returns
327
334
  */
328
- static N_0x017492B2201E3428(p0: any, p1: any, p2: any, p3: any): void {
329
- inv<void>('0x017492B2201E3428', p0, p1, p2, p3);
335
+ static N_0xA6A3A3F96B8B030E(): any {
336
+ return inv<number>('0xA6A3A3F96B8B030E');
330
337
  }
331
338
 
332
339
  /**
340
+ * @param p0
333
341
  * @returns
334
342
  */
335
- static N_0xE600F61F54A444A6(): any {
336
- return inv<number>('0xE600F61F54A444A6');
343
+ static isScriptedConversationPlaying(p0: string | null): boolean {
344
+ return !!inv<boolean>('0x1ECC76792F661CF5', p0, rai());
337
345
  }
338
346
 
339
347
  /**
340
- * @param scene
341
- * @param variable
342
- * @param value
348
+ * @param p0
349
+ * @param p1
343
350
  */
344
- static setAudioSceneVariable(scene: string | null, variable: string | null, value: number): void {
345
- inv<void>('0xEF21A9EF089A2668', scene, variable, f(value));
351
+ static setPortalSettingsOverride(p0: string | null, p1: string | null): void {
352
+ inv<void>('0x044DBAD7A7FA2BE5', p0, p1);
346
353
  }
347
354
 
348
355
  /**
349
- * Old name: _PLAY_AMBIENT_SPEECH_AT_COORDS
350
- *
351
- * @param pos
352
- * @returns params
356
+ * @param ped
357
+ * @param disabled
358
+ * @returns
353
359
  */
354
- static playAmbientSpeechFromPositionNative(pos: Vector3): [any, number] {
355
- const result = inv<[number, number]>('0xED640017ED337E45', f(pos.x), f(pos.y), f(pos.z), pvi());
356
- return [result[0], result[1]];
360
+ static setIsScriptedSpeechDisabled(ped: Ped, disabled: boolean): any {
361
+ return inv<number>('0xB2DE3AEBE31150E2', ped.handle, disabled);
357
362
  }
358
363
 
359
364
  /**
@@ -361,1043 +366,1012 @@ export class Audio {
361
366
  * @param p1
362
367
  * @param p2
363
368
  * @param p3
369
+ * @returns
364
370
  */
365
- static N_0x5E3CCF03995388B5(p0: any, p1: any, p2: any, p3: any): void {
366
- inv<void>('0x5E3CCF03995388B5', p0, p1, p2, p3);
371
+ static N_0x9D6DEC9791A4E501(p0: any, p1: any, p2: any, p3: any): any {
372
+ return inv<number>('0x9D6DEC9791A4E501', p0, p1, p2, p3);
367
373
  }
368
374
 
369
375
  /**
370
- * @param entity
371
- * @returns
376
+ * Old Name: _STOP_SOUND_WITH_ID
377
+ *
378
+ * @param soundId
372
379
  */
373
- static N_0x886657C5B3D8EDE3(entity: Entity): any {
374
- return inv<number>('0x886657C5B3D8EDE3', entity.handle);
380
+ static stopSound(soundId: number): void {
381
+ inv<void>('0x3210BCB36AF7621B', soundId);
375
382
  }
376
383
 
377
384
  /**
378
385
  * @param p0
386
+ * @returns
379
387
  */
380
- static N_0x6B7A88A61B41E589(p0: any): void {
381
- inv<void>('0x6B7A88A61B41E589', p0);
388
+ static N_0xF336E9F989B3518F(p0: string | null): number {
389
+ return inv<number>('0xF336E9F989B3518F', p0, rai());
382
390
  }
383
391
 
384
392
  /**
385
393
  * @param p0
386
394
  * @param p1
387
- * @param p2
388
395
  */
389
- static N_0x821C32C728B24477(p0: any, p1: any, p2: any): void {
390
- inv<void>('0x821C32C728B24477', p0, p1, p2);
396
+ static N_0xFCDEC42B1C78B7F8(p0: any, p1: any): void {
397
+ inv<void>('0xFCDEC42B1C78B7F8', p0, p1);
391
398
  }
392
399
 
393
400
  /**
394
401
  * @param ped
395
- * @param p1
396
- * @returns
397
402
  */
398
- static isPedInAnyConversation(ped: Ped, p1: boolean): any {
399
- return inv<number>('0x54B187F111D9C6F8', ped.handle, p1);
403
+ static N_0x8E901B65206C2D3E(ped: Ped): void {
404
+ inv<void>('0x8E901B65206C2D3E', ped.handle);
400
405
  }
401
406
 
402
407
  /**
403
- * Hashes: VOFX_PLAYER_MALE01, VOFX_PLAYER_MALE02, VOFX_PLAYER_MALE03, VOFX_PLAYER_FEMALE01, VOFX_PLAYER_FEMALE02, VOFX_PLAYER_FEMALE03
404
- *
405
- * @param ped
406
- * @param voice
408
+ * @param p0
407
409
  */
408
- static setVofxPedVoice(ped: Ped, voice: string | number): void {
409
- inv<void>('0x2703EFB583F0949A', ped.handle, _h(voice));
410
+ static N_0x7E176C676F8652A9(p0: any): void {
411
+ inv<void>('0x7E176C676F8652A9', p0);
410
412
  }
411
413
 
412
414
  /**
413
- * @param ped
415
+ * item: FUSE, value returned from 0x2E1CDC1FF3B8473E
416
+ * soundSet: HUD_SHOP_SOUNDSET, COMPANIONS_ROBBERIES_SOUNDSET
417
+ *
418
+ * @param item
419
+ * @param soundSet
414
420
  * @returns
415
421
  */
416
- static isAnySpeechPlaying(ped: Ped): boolean {
417
- return !!inv<boolean>('0x729072355FA39EC9', ped.handle, rai());
422
+ static isScriptedAudioCustom(item: string | number, soundSet: string | number): any {
423
+ return inv<number>('0x6DF942C4179BE5AB', _h(item), _h(soundSet));
418
424
  }
419
425
 
420
426
  /**
421
- * @param convoRoot
427
+ * @param ped
428
+ * @param toggle
422
429
  */
423
- static clearConversationHistoryForScriptedConversation(convoRoot: string | null): void {
424
- inv<void>('0xEF51242E35242B47', convoRoot);
430
+ static disablePedPainAudio(ped: Ped, toggle: boolean): void {
431
+ inv<void>('0xA9A41C1E940FB0E8', ped.handle, toggle);
425
432
  }
426
433
 
427
434
  /**
428
- * @param p0
429
- * @param p1
435
+ * Old name: _FORCE_VEHICLE_ENGINE_AUDIO
436
+ *
437
+ * @param vehicle
438
+ * @param audioName
430
439
  */
431
- static N_0x018ABE833CA64D2A(p0: any, p1: any): void {
432
- inv<void>('0x018ABE833CA64D2A', p0, p1);
440
+ static forceUseAudioGameObject(vehicle: Vehicle, audioName: string | null): void {
441
+ inv<void>('0x4F0C413926060B38', vehicle.handle, audioName);
433
442
  }
434
443
 
435
444
  /**
436
- * @param zoneName
437
- * @param p1
445
+ * @param soundName
446
+ * @param entity
447
+ * @param soundsetName
448
+ * @param soundId
449
+ * @returns
438
450
  */
439
- static clearAmbientZoneState(zoneName: string | null, p1: boolean): void {
440
- inv<void>('0x218DD44AAAC964FF', zoneName, p1);
451
+ static prepareSoundWithEntity(soundName: string | null, entity: Entity, soundsetName: string | null, soundId: number): any {
452
+ return inv<number>('0x4AD019591E94C064', soundName, entity.handle, soundsetName, soundId);
441
453
  }
442
454
 
443
455
  /**
444
456
  * @param p0
445
457
  * @param p1
458
+ * @param p2
446
459
  */
447
- static N_0x3E93DDDCBB6111E4(p0: string | null, p1: number): void {
448
- inv<void>('0x3E93DDDCBB6111E4', p0, f(p1));
460
+ static stopAllScriptedConversions(p0: boolean, p1: boolean, p2: boolean): void {
461
+ inv<void>('0x36559148B78853B3', p0, p1, p2);
449
462
  }
450
463
 
451
464
  /**
452
- * @param p0
453
- * @returns
465
+ * @param entity
466
+ * @param p1
454
467
  */
455
- static N_0x5A13586A9447931F(p0: boolean): boolean {
456
- return !!inv<boolean>('0x5A13586A9447931F', p0, rai());
468
+ static removeEntityFromAudioMixGroup(entity: Entity, p1: number): void {
469
+ inv<void>('0x18EB48CFC41F2EA0', entity.handle, f(p1));
457
470
  }
458
471
 
459
472
  /**
460
- * @param p0
461
- * @param p1
473
+ * *AUDIO_IS** - _AUDIO_TRIGGER*
462
474
  */
463
- static N_0xBC07CA8FD710E7FD(p0: any, p1: any): void {
464
- inv<void>('0xBC07CA8FD710E7FD', p0, p1);
475
+ static N_0x7455CD705F7E933E(): void {
476
+ inv<void>('0x7455CD705F7E933E');
465
477
  }
466
478
 
467
479
  /**
468
- * @param p0
469
- * @param p1
480
+ * @param soundId
470
481
  */
471
- static N_0x078F77FD1A43EAB3(p0: any, p1: any): void {
472
- inv<void>('0x078F77FD1A43EAB3', p0, p1);
482
+ static releaseSoundId(soundId: number): void {
483
+ inv<void>('0x353FC880830B88FA', soundId);
473
484
  }
474
485
 
475
486
  /**
476
- * @param p0
477
- * @param p1
487
+ * Old Name: _SET_VARIABLE_ON_SOUND_WITH_ID
488
+ *
489
+ * @param soundId
490
+ * @param variableName
491
+ * @param variableValue
478
492
  */
479
- static N_0x341CDD17EFC2472E(p0: any, p1: any): void {
480
- inv<void>('0x341CDD17EFC2472E', p0, p1);
493
+ static setVariableOnSound(soundId: number, variableName: string | null, variableValue: number): void {
494
+ inv<void>('0x503703EC1781B7D6', soundId, variableName, f(variableValue));
481
495
  }
482
496
 
483
497
  /**
484
- * @param ambientZone
485
- * @param p1
486
- * @param p2
498
+ * @param convoRoot
487
499
  */
488
- static setAmbientZoneListState(ambientZone: string | null, p1: boolean, p2: boolean): void {
489
- inv<void>('0x9748FA4DE50CCE3E', ambientZone, p1, p2);
500
+ static startPreloadedConversation(convoRoot: string | null): void {
501
+ inv<void>('0x23641AFE870AF385', convoRoot);
490
502
  }
491
503
 
492
504
  /**
493
- * @param streamId
505
+ * @param scene
494
506
  * @returns
495
507
  */
496
- static isStreamPlaying(streamId: number): boolean {
497
- return !!inv<boolean>('0xD11FA52EB849D978', streamId, rai());
508
+ static startAudioScene(scene: string | null): boolean {
509
+ return !!inv<boolean>('0x013A80FC08F6E4F2', scene, rai());
498
510
  }
499
511
 
500
512
  /**
501
- * @param convoRoot
502
- * @param p1
503
- * @param p2
504
- * @param clone
513
+ * @returns
505
514
  */
506
- static preloadScriptConversation(convoRoot: string | null, p1: boolean, p2: boolean, clone: boolean): void {
507
- inv<void>('0x3B3CAD6166916D87', convoRoot, p1, p2, clone);
515
+ static getMusicPlaytime(): number {
516
+ return inv<number>('0xE7A0D23DC414507B', rai());
508
517
  }
509
518
 
510
519
  /**
511
- * Creates stream and returns streamId handle to be used with PLAY_STREAM_* natives
512
- * https://github.com/femga/rdr3_discoveries/tree/master/audio/create_stream
520
+ * Checks for MOONSHINE_BAND
513
521
  *
514
- * @param streamName
515
- * @param soundSet
522
+ * @param entity
516
523
  * @returns
517
524
  */
518
- static getLoadedStreamIdFromCreation(streamName: string | null, soundSet: string | null): number {
519
- return inv<number>('0x0556C784FA056628', streamName, soundSet, rai());
525
+ static N_0xBE28DB99556FF8D9(entity: Entity): number {
526
+ return (inv<number>('0xBE28DB99556FF8D9', entity.handle, rai())) & 0xFFFFFFFF;
520
527
  }
521
528
 
522
- /**
523
- * @param vehicle
524
- * @param p1
525
- */
526
- static setAudioVehiclePriority(vehicle: Vehicle, p1: any): void {
527
- inv<void>('0xE5564483E407F914', vehicle.handle, p1);
529
+ static N_0x569ABC36E28DDEAA(): void {
530
+ inv<void>('0x569ABC36E28DDEAA');
528
531
  }
529
532
 
530
533
  /**
531
- * @param soundName
532
- * @param soundsetName
534
+ * struct ScriptedSpeechParams
535
+ * {
536
+ * const char* speechName;
537
+ * const char* voiceName;
538
+ * alignas(8) int variation;
539
+ * alignas(8) Hash speechParamHash;
540
+ * alignas(8) Ped listenerPed;
541
+ * alignas(8) BOOL syncOverNetwork;
542
+ * alignas(8) int v7;
543
+ * alignas(8) int v8;
544
+ * }; static_assert(sizeof(ScriptedSpeechParams) == 0x40, "incorrect ScriptedSpeechParams size"); Example: ScriptedSpeechParams params{"RE_PH_RHD_V3_AGGRO", "0405_U_M_M_RhdSheriff_01", 1, joaat("SPEECH_PARAMS_BEAT_SHOUTED_CLEAR"), 0, true, 1, 1};
545
+ * PLAY_PED_AMBIENT_SPEECH_NATIVE(PLAYER_PED_ID(), (Any*)&params); Old name: _PLAY_AMBIENT_SPEECH1
546
+ * https://github.com/femga/rdr3_discoveries/tree/master/audio/audio_banks
547
+ *
548
+ * @param speaker
549
+ * @returns params
533
550
  */
534
- static releaseShardSounds(soundName: string | null, soundsetName: string | null): void {
535
- inv<void>('0x9D746964E0CF2C5F', soundName, soundsetName);
551
+ static playPedAmbientSpeechNative(speaker: Ped): [any, number] {
552
+ const result = inv<[number, number]>('0x8E04FEDD28D42462', speaker.handle, pvi());
553
+ return [result[0], result[1]];
536
554
  }
537
555
 
538
556
  /**
539
- * Gets the hash for the last played speech line.
557
+ * Checks whether the horn of a vehicle is currently played.
540
558
  *
541
- * @param ped
559
+ * @param vehicle
542
560
  * @returns
543
561
  */
544
- static getLastPlayedSpeechForPed(ped: Ped): any {
545
- return inv<number>('0x6BFFB7C276866996', ped.handle);
562
+ static isHornActive(vehicle: Vehicle): boolean {
563
+ return !!inv<boolean>('0x9D6BFC12B05C6121', vehicle.handle, rai());
546
564
  }
547
565
 
548
- static N_0xE7E6CB8B713ED190(): void {
549
- inv<void>('0xE7E6CB8B713ED190');
566
+ /**
567
+ * @param p0
568
+ * @param p1
569
+ * @param p2
570
+ * @param p3
571
+ */
572
+ static N_0xCFAD2C8CD1054523(p0: any, p1: any, p2: any, p3: any): void {
573
+ inv<void>('0xCFAD2C8CD1054523', p0, p1, p2, p3);
574
+ }
575
+
576
+ /**
577
+ * @param sceneset
578
+ */
579
+ static stopAudioSceneset(sceneset: string | null): void {
580
+ inv<void>('0x9428447DED71FC7E', sceneset);
550
581
  }
551
582
 
552
583
  /**
553
584
  * @param p0
554
585
  * @returns
555
586
  */
556
- static N_0x44A5EEF54F62E823(p0: any): any {
557
- return inv<number>('0x44A5EEF54F62E823', p0);
587
+ static getCurrentScriptedConversationLine(p0: string | null): number {
588
+ return inv<number>('0x480357EE890C295A', p0, rai());
558
589
  }
559
590
 
560
591
  /**
592
+ * @param convoRoot
561
593
  * @param ped
562
- * @param streamId
594
+ * @param characterName
563
595
  */
564
- static playStreamFromPed(ped: Ped, streamId: number): void {
565
- inv<void>('0x89049DD63C08B5D1', ped.handle, streamId);
596
+ static addPedToConversation(convoRoot: string | null, ped: Ped, characterName: string | null): void {
597
+ inv<void>('0x95D9F4BC443956E7', convoRoot, ped.handle, characterName);
566
598
  }
567
599
 
568
600
  /**
569
- * nullsub, doesn't do anything
570
- *
571
- * @param active
601
+ * @param entity
602
+ * @param p1
603
+ * @param p2
604
+ * @param p3
605
+ * @param p4
572
606
  */
573
- static setGpsActive(active: boolean): void {
574
- inv<void>('0x3BD3F52BA9B1E4E8', active);
607
+ static N_0xABDB4863D3D72021(entity: Entity, p1: any, p2: any, p3: number, p4: any): void {
608
+ inv<void>('0xABDB4863D3D72021', entity.handle, p1, p2, f(p3), p4);
575
609
  }
576
610
 
577
611
  /**
578
- * Old name: _PLAY_SOUND_FROM_POSITION
612
+ * Not implemented.
579
613
  *
580
- * @param SoundName
581
- * @param pos
582
- * @param SetName
583
- * @param bOverNetwork
584
- * @param nNetworkRange
585
- * @param isExteriorLoc
586
- * @param p8
614
+ * @param ped
587
615
  */
588
- static playSoundFromCoord(SoundName: string | null, pos: Vector3, SetName: string | null, bOverNetwork: boolean, nNetworkRange: number, isExteriorLoc: boolean, p8: number): void {
589
- inv<void>('0xCCE219C922737BFA', SoundName, f(pos.x), f(pos.y), f(pos.z), SetName, bOverNetwork, nNetworkRange, isExteriorLoc, p8);
616
+ static N_0x864A842B86993851(ped: Ped): void {
617
+ inv<void>('0x864A842B86993851', ped.handle);
590
618
  }
591
619
 
592
620
  /**
593
- * @param streamName
594
- * @param soundSet
621
+ * @param p0
595
622
  * @returns
596
623
  */
597
- static loadStream(streamName: string | null, soundSet: string | null): boolean {
598
- return !!inv<boolean>('0x1F1F957154EC51DF', streamName, soundSet, rai());
624
+ static N_0xDC2F83A0612CA34D(p0: any): any {
625
+ return inv<number>('0xDC2F83A0612CA34D', p0);
599
626
  }
600
627
 
601
628
  /**
602
- * @param p0
629
+ * https://github.com/femga/rdr3_discoveries/tree/master/audio/soundsets
630
+ *
631
+ * @param soundsetName
603
632
  * @param p1
633
+ * @returns
604
634
  */
605
- static N_0x9EB779765E68C52E(p0: any, p1: any): void {
606
- inv<void>('0x9EB779765E68C52E', p0, p1);
607
- }
608
-
609
- static N_0x43037ABFE214A851(): void {
610
- inv<void>('0x43037ABFE214A851');
635
+ static prepareSoundset(soundsetName: string | null, p1: boolean): any {
636
+ return inv<number>('0xD9130842D7226045', soundsetName, p1);
611
637
  }
612
638
 
613
639
  /**
640
+ * @param entity
614
641
  * @returns
615
642
  */
616
- static N_0xA6A3A3F96B8B030E(): any {
617
- return inv<number>('0xA6A3A3F96B8B030E');
643
+ static N_0x62377977E4F08668(entity: Entity): AnimScene | null {
644
+ return createFromHandle<AnimScene>('AnimScene', inv<number>('0x62377977E4F08668', entity.handle, rai()));
618
645
  }
619
646
 
620
647
  /**
621
- * @param p0
648
+ * @param audioName
649
+ * @param sceneset
622
650
  * @returns
623
651
  */
624
- static isScriptedConversationPlaying(p0: string | null): boolean {
625
- return !!inv<boolean>('0x1ECC76792F661CF5', p0, rai());
652
+ static startAudioSceneset(audioName: string | null, sceneset: string | null): any {
653
+ return inv<number>('0x6339C1EA3979B5F7', audioName, sceneset);
626
654
  }
627
655
 
628
656
  /**
629
657
  * @param p0
630
658
  * @param p1
659
+ * @param p2
660
+ * @param p3
661
+ * @param p4
631
662
  */
632
- static setPortalSettingsOverride(p0: string | null, p1: string | null): void {
633
- inv<void>('0x044DBAD7A7FA2BE5', p0, p1);
663
+ static N_0x448F2647DD6F2E27(p0: any, p1: any, p2: any, p3: any, p4: any): void {
664
+ inv<void>('0x448F2647DD6F2E27', p0, p1, p2, p3, p4);
634
665
  }
635
666
 
636
667
  /**
637
- * @param ped
638
- * @param disabled
668
+ * @param p0
639
669
  * @returns
640
670
  */
641
- static setIsScriptedSpeechDisabled(ped: Ped, disabled: boolean): any {
642
- return inv<number>('0xB2DE3AEBE31150E2', ped.handle, disabled);
671
+ static N_0xB18FEC133C7C6C69(p0: any): any {
672
+ return inv<number>('0xB18FEC133C7C6C69', p0);
643
673
  }
644
674
 
645
675
  /**
646
676
  * @param p0
647
- * @param p1
648
- * @param p2
649
- * @param p3
650
677
  * @returns
651
678
  */
652
- static N_0x9D6DEC9791A4E501(p0: any, p1: any, p2: any, p3: any): any {
653
- return inv<number>('0x9D6DEC9791A4E501', p0, p1, p2, p3);
679
+ static N_0x295859EB18F48D82(p0: string | null): number {
680
+ return inv<number>('0x295859EB18F48D82', p0, rai());
654
681
  }
655
682
 
656
683
  /**
657
- * Old Name: _STOP_SOUND_WITH_ID
658
- *
659
- * @param soundId
684
+ * @param p0
660
685
  */
661
- static stopSound(soundId: number): void {
662
- inv<void>('0x3210BCB36AF7621B', soundId);
686
+ static N_0xCBF2BEBB468A34F3(p0: any): void {
687
+ inv<void>('0xCBF2BEBB468A34F3', p0);
663
688
  }
664
689
 
665
690
  /**
666
691
  * @param p0
692
+ * @param p1
693
+ * @param p2
667
694
  * @returns
668
695
  */
669
- static N_0xF336E9F989B3518F(p0: string | null): number {
670
- return inv<number>('0xF336E9F989B3518F', p0, rai());
696
+ static stopScriptedConversation(p0: string | null, p1: boolean, p2: boolean): number {
697
+ return inv<number>('0xD79DEEFB53455EBA', p0, p1, p2, rai());
671
698
  }
672
699
 
673
700
  /**
674
701
  * @param p0
675
702
  * @param p1
676
703
  */
677
- static N_0xFCDEC42B1C78B7F8(p0: any, p1: any): void {
678
- inv<void>('0xFCDEC42B1C78B7F8', p0, p1);
679
- }
680
-
681
- /**
682
- * @param ped
683
- */
684
- static N_0x8E901B65206C2D3E(ped: Ped): void {
685
- inv<void>('0x8E901B65206C2D3E', ped.handle);
704
+ static N_0xFD461D0ABA5559B1(p0: any, p1: any): void {
705
+ inv<void>('0xFD461D0ABA5559B1', p0, p1);
686
706
  }
687
707
 
688
708
  /**
689
- * @param p0
709
+ * *IS_SCRIPTED_CONVERSATION**
710
+ *
711
+ * @param convoRoot
712
+ * @returns
690
713
  */
691
- static N_0x7E176C676F8652A9(p0: any): void {
692
- inv<void>('0x7E176C676F8652A9', p0);
714
+ static N_0xD0730C1FA40348D9(convoRoot: string | null): boolean {
715
+ return !!inv<boolean>('0xD0730C1FA40348D9', convoRoot, rai());
693
716
  }
694
717
 
695
718
  /**
696
- * item: FUSE, value returned from 0x2E1CDC1FF3B8473E
697
- * soundSet: HUD_SHOP_SOUNDSET, COMPANIONS_ROBBERIES_SOUNDSET
719
+ * https://github.com/femga/rdr3_discoveries/blob/master/audio/music_events/music_events.lua
698
720
  *
699
- * @param item
700
- * @param soundSet
721
+ * @param eventName
701
722
  * @returns
702
723
  */
703
- static isScriptedAudioCustom(item: string | number, soundSet: string | number): any {
704
- return inv<number>('0x6DF942C4179BE5AB', _h(item), _h(soundSet));
724
+ static triggerMusicEvent(eventName: string | null): boolean {
725
+ return !!inv<boolean>('0x706D57B0F50DA710', eventName, rai());
705
726
  }
706
727
 
707
728
  /**
708
729
  * @param p0
709
- * @returns
710
730
  */
711
- static N_0xD05A460328560477(p0: any): any {
712
- return inv<number>('0xD05A460328560477', p0);
731
+ static restartScriptedConversation(p0: string | null): void {
732
+ inv<void>('0x9AEB285D1818C9AC', p0);
713
733
  }
714
734
 
715
735
  /**
716
- * Checks if the ped can play the speech or has the speech file, last parameter is usually false.
717
- *
718
736
  * @param ped
719
- * @param speechName
720
- * @param unk
721
- * @returns
722
737
  */
723
- static doesContextExistForThisPed(ped: Ped, speechName: string | null, unk: boolean): boolean {
724
- return !!inv<boolean>('0x49B99BF3FDA89A7A', ped.handle, speechName, unk, rai());
738
+ static N_0xC4CFCE4C656EF480(ped: Ped): void {
739
+ inv<void>('0xC4CFCE4C656EF480', ped.handle);
740
+ }
741
+
742
+ /**
743
+ * @param p0
744
+ * @param p1
745
+ */
746
+ static N_0x3A00D87B20A2A5E4(p0: any, p1: any): void {
747
+ inv<void>('0x3A00D87B20A2A5E4', p0, p1);
725
748
  }
726
749
 
727
750
  /**
751
+ * @param pedHandle
728
752
  * @returns
729
753
  */
730
- static N_0x2B101AD9F651243A(): any {
731
- return inv<number>('0x2B101AD9F651243A');
754
+ static isAnimalVocalizationPlaying(pedHandle: Ped): boolean {
755
+ return !!inv<boolean>('0xC265DF9FB44A9FBD', pedHandle.handle, rai());
732
756
  }
733
757
 
734
758
  /**
735
759
  * @param p0
736
760
  * @returns
737
761
  */
738
- static N_0x131EC9247E7A2903(p0: any): any {
739
- return inv<number>('0x131EC9247E7A2903', p0);
762
+ static isAnyConversationPlaying(p0: boolean): any {
763
+ return inv<number>('0xA2CAC9DEF0195E6F', p0);
740
764
  }
741
765
 
742
766
  /**
743
- * @param ped
744
767
  * @param name
768
+ * @param pos
745
769
  */
746
- static setAmbientVoiceName(ped: Ped, name: string | null): void {
747
- inv<void>('0x6C8065A3B780185B', ped.handle, name);
770
+ static triggerExplosion(name: string | null, pos: Vector3): void {
771
+ inv<void>('0x374F0E716BFCDE82', name, f(pos.x), f(pos.y), f(pos.z));
748
772
  }
749
773
 
750
774
  /**
751
- * @param play
775
+ * @param ropeId
776
+ * @param p1
752
777
  */
753
- static playEndCreditsMusic(play: boolean): void {
754
- inv<void>('0xCD536C4D33DCC900', play);
778
+ static N_0x2651DDC0EA269073(ropeId: number, p1: number): void {
779
+ inv<void>('0x2651DDC0EA269073', ropeId, f(p1));
755
780
  }
756
781
 
757
- /**
758
- * @param eventName
759
- * @returns
760
- */
761
- static cancelMusicEvent(eventName: string | null): boolean {
762
- return !!inv<boolean>('0x5B17A90291133DA5', eventName, rai());
782
+ static stopAudioScenes(): void {
783
+ inv<void>('0xBAC7FC81A75EC1A1');
763
784
  }
764
785
 
765
786
  /**
766
- * @param ped
767
- * @returns
787
+ * @param audioName
788
+ * @param audioRef
789
+ * @param p2
790
+ * @param p3
791
+ * @param p4
792
+ * @param p5
768
793
  */
769
- static isAmbientSpeechDisabled(ped: Ped): boolean {
770
- return !!inv<boolean>('0x932C2D096A2C3FFF', ped.handle, rai());
794
+ static playSound(audioName: string | null, audioRef: string | null, p2: boolean, p3: any, p4: boolean, p5: any): void {
795
+ inv<void>('0x7FF4944CC209192D', audioName, audioRef, p2, p3, p4, p5);
771
796
  }
772
797
 
773
798
  /**
774
- * Not implemented.
775
- *
776
- * @param animal
777
- * @param mood
799
+ * @param scene
800
+ * @returns
778
801
  */
779
- static setAnimalMood(animal: Ped, mood: number): void {
780
- inv<void>('0xCC97B29285B1DC3B', animal.handle, mood);
802
+ static isAudioSceneActive(scene: string | null): boolean {
803
+ return !!inv<boolean>('0xB65B60556E2A9225', scene, rai());
781
804
  }
782
805
 
783
806
  /**
784
- * @param convoRoot
785
- * @param p1
786
- * @param p2
787
- * @param clone
807
+ * @param context
808
+ * @param block
788
809
  */
789
- static startScriptConversation(convoRoot: string | null, p1: boolean, p2: boolean, clone: boolean): void {
790
- inv<void>('0x6B17C62C9635D2DC', convoRoot, p1, p2, clone);
810
+ static blockSpeechContext(context: string | null, block: boolean): void {
811
+ inv<void>('0x6378A235374B852F', context, block);
791
812
  }
792
813
 
793
814
  /**
794
815
  * @param p0
816
+ * @returns
795
817
  */
796
- static N_0xEB4D592620B8C209(p0: any): void {
797
- inv<void>('0xEB4D592620B8C209', p0);
798
- }
799
-
800
- static releaseScriptAudioBank(): void {
801
- inv<void>('0x7A2D8AD0A9EB9C3F');
802
- }
803
-
804
- static N_0x4BE3EC91C01F0FE8(): void {
805
- inv<void>('0x4BE3EC91C01F0FE8');
806
- }
807
-
808
- /**
809
- * @param zoneName
810
- * @param isEnabled
811
- * @param p2
812
- */
813
- static setAmbientZoneState(zoneName: string | null, isEnabled: boolean, p2: boolean): void {
814
- inv<void>('0xBDA07E5950085E46', zoneName, isEnabled, p2);
818
+ static N_0x847748AE5D7B1071(p0: boolean): boolean {
819
+ return !!inv<boolean>('0x847748AE5D7B1071', p0, rai());
815
820
  }
816
821
 
817
822
  /**
818
- * @param audioName
819
- * @param entity
820
- * @param audioRef
821
- * @param isNetwork
822
- * @param p4
823
- * @param p5
823
+ * https://github.com/femga/rdr3_discoveries/tree/master/audio/audio_flags
824
+ *
825
+ * @param flagName
826
+ * @param toggle
824
827
  */
825
- static playSoundFromEntity(audioName: string | null, entity: Entity, audioRef: string | null, isNetwork: boolean, p4: any, p5: any): void {
826
- inv<void>('0x6FB1DA3CA9DA7D90', audioName, entity.handle, audioRef, isNetwork, p4, p5);
828
+ static setAudioFlag(flagName: string | null, toggle: boolean): void {
829
+ inv<void>('0xB9EFD5C25018725A', flagName, toggle);
827
830
  }
828
831
 
829
832
  /**
830
- * @param ped
831
- * @returns
833
+ * @param vehicle
834
+ * @param toggle
832
835
  */
833
- static isAmbientSpeechPlaying(ped: Ped): boolean {
834
- return !!inv<boolean>('0x9072C8B49907BFAD', ped.handle, rai());
836
+ static setHornEnabled(vehicle: Vehicle, toggle: boolean): void {
837
+ inv<void>('0x76D683C108594D0E', vehicle.handle, toggle);
835
838
  }
836
839
 
837
840
  /**
838
- * @param ped
839
- * @param toggle
841
+ * p1 is possibly naSpeechAudibility, naSpeechType, or naSpeechEventTypeRequestPriority
842
+ * SKIP_* - START_*
843
+ *
844
+ * @param speechEventType Refer to [enum: naSpeechEventType]
845
+ * @param p1
846
+ * @param p2
840
847
  */
841
- static disablePedPainAudio(ped: Ped, toggle: boolean): void {
842
- inv<void>('0xA9A41C1E940FB0E8', ped.handle, toggle);
848
+ static N_0x0D7FD6A55FD63AEF(speechEventType: number, p1: number, p2: boolean): void {
849
+ inv<void>('0x0D7FD6A55FD63AEF', speechEventType, p1, p2);
843
850
  }
844
851
 
845
852
  /**
846
- * Old name: _FORCE_VEHICLE_ENGINE_AUDIO
847
- *
848
- * @param vehicle
849
- * @param audioName
853
+ * @param p0
854
+ * @param p1
855
+ * @param p2
856
+ * @param p3
857
+ * @param p4
850
858
  */
851
- static forceUseAudioGameObject(vehicle: Vehicle, audioName: string | null): void {
852
- inv<void>('0x4F0C413926060B38', vehicle.handle, audioName);
859
+ static N_0x06C5DF5EE444BC6B(p0: any, p1: any, p2: any, p3: any, p4: any): void {
860
+ inv<void>('0x06C5DF5EE444BC6B', p0, p1, p2, p3, p4);
853
861
  }
854
862
 
855
863
  /**
856
- * @param soundName
857
- * @param entity
858
- * @param soundsetName
859
- * @param soundId
864
+ * @param p0
860
865
  * @returns
861
866
  */
862
- static prepareSoundWithEntity(soundName: string | null, entity: Entity, soundsetName: string | null, soundId: number): any {
863
- return inv<number>('0x4AD019591E94C064', soundName, entity.handle, soundsetName, soundId);
867
+ static N_0x2B9C37C01BF25EDB(p0: any): any {
868
+ return inv<number>('0x2B9C37C01BF25EDB', p0);
864
869
  }
865
870
 
866
871
  /**
867
872
  * @param p0
868
- * @param p1
869
- * @param p2
870
873
  */
871
- static stopAllScriptedConversions(p0: boolean, p1: boolean, p2: boolean): void {
872
- inv<void>('0x36559148B78853B3', p0, p1, p2);
874
+ static N_0x64B956F4E761DF5C(p0: any): void {
875
+ inv<void>('0x64B956F4E761DF5C', p0);
873
876
  }
874
877
 
875
878
  /**
876
- * @param entity
877
- * @param p1
879
+ * @param p0
878
880
  */
879
- static removeEntityFromAudioMixGroup(entity: Entity, p1: number): void {
880
- inv<void>('0x18EB48CFC41F2EA0', entity.handle, f(p1));
881
+ static setAudioOnlineTransitionStage(p0: string | null): void {
882
+ inv<void>('0x9B1FC259187C97C0', p0);
881
883
  }
882
884
 
883
885
  /**
884
- * *AUDIO_IS** - _AUDIO_TRIGGER*
886
+ * @param streamId
885
887
  */
886
- static N_0x7455CD705F7E933E(): void {
887
- inv<void>('0x7455CD705F7E933E');
888
+ static playStreamFrontend(streamId: number): void {
889
+ inv<void>('0x58FCE43488F9F5F4', streamId);
888
890
  }
889
891
 
890
892
  /**
891
- * @param soundId
893
+ * _IS_SOUND_RUNNING(?)
894
+ *
895
+ * @param audioName
896
+ * @param audioRef
897
+ * @returns
892
898
  */
893
- static releaseSoundId(soundId: number): void {
894
- inv<void>('0x353FC880830B88FA', soundId);
899
+ static N_0x580D71DFE0088E34(audioName: string | null, audioRef: string | null): boolean {
900
+ return !!inv<boolean>('0x580D71DFE0088E34', audioName, audioRef, rai());
895
901
  }
896
902
 
897
903
  /**
898
- * Old Name: _SET_VARIABLE_ON_SOUND_WITH_ID
904
+ * nullsub, doesn't do anything
899
905
  *
900
- * @param soundId
901
- * @param variableName
902
- * @param variableValue
906
+ * @param p0
903
907
  */
904
- static setVariableOnSound(soundId: number, variableName: string | null, variableValue: number): void {
905
- inv<void>('0x503703EC1781B7D6', soundId, variableName, f(variableValue));
908
+ static registerScriptWithAudio(p0: boolean): void {
909
+ inv<void>('0xC6ED9D5092438D91', p0);
906
910
  }
907
911
 
908
912
  /**
909
- * @param convoRoot
913
+ * @param p0
914
+ * @param p1
910
915
  */
911
- static startPreloadedConversation(convoRoot: string | null): void {
912
- inv<void>('0x23641AFE870AF385', convoRoot);
916
+ static N_0x35B8C070E0C16E2F(p0: any, p1: any): void {
917
+ inv<void>('0x35B8C070E0C16E2F', p0, p1);
918
+ }
919
+
920
+ static N_0x138ADB94F8B90616(): void {
921
+ inv<void>('0x138ADB94F8B90616');
913
922
  }
914
923
 
915
924
  /**
916
- * @param scene
917
- * @returns
925
+ * @param p0
926
+ * @param p1
927
+ * @param p2
918
928
  */
919
- static startAudioScene(scene: string | null): boolean {
920
- return !!inv<boolean>('0x013A80FC08F6E4F2', scene, rai());
929
+ static N_0x380A2E353AD30917(p0: any, p1: any, p2: any): void {
930
+ inv<void>('0x380A2E353AD30917', p0, p1, p2);
921
931
  }
922
932
 
923
933
  /**
934
+ * @param convoRoot
924
935
  * @returns
925
936
  */
926
- static getMusicPlaytime(): number {
927
- return inv<number>('0xE7A0D23DC414507B', rai());
937
+ static createNewScriptedConversation(convoRoot: string | null): any {
938
+ return inv<number>('0xD2C91A0B572AAE56', convoRoot);
928
939
  }
929
940
 
930
941
  /**
931
- * Checks for MOONSHINE_BAND
932
- *
933
- * @param entity
942
+ * @param p0
943
+ * @param p1
944
+ * @param p2
934
945
  * @returns
935
946
  */
936
- static N_0xBE28DB99556FF8D9(entity: Entity): number {
937
- return (inv<number>('0xBE28DB99556FF8D9', entity.handle, rai())) & 0xFFFFFFFF;
938
- }
939
-
940
- static N_0x569ABC36E28DDEAA(): void {
941
- inv<void>('0x569ABC36E28DDEAA');
947
+ static N_0x7678FE0455ED1145(p0: any, p1: any, p2: any): any {
948
+ return inv<number>('0x7678FE0455ED1145', p0, p1, p2);
942
949
  }
943
950
 
944
951
  /**
945
- * struct ScriptedSpeechParams
946
- * {
947
- * const char* speechName;
948
- * const char* voiceName;
949
- * alignas(8) int variation;
950
- * alignas(8) Hash speechParamHash;
951
- * alignas(8) Ped listenerPed;
952
- * alignas(8) BOOL syncOverNetwork;
953
- * alignas(8) int v7;
954
- * alignas(8) int v8;
955
- * }; static_assert(sizeof(ScriptedSpeechParams) == 0x40, "incorrect ScriptedSpeechParams size"); Example: ScriptedSpeechParams params{"RE_PH_RHD_V3_AGGRO", "0405_U_M_M_RhdSheriff_01", 1, joaat("SPEECH_PARAMS_BEAT_SHOUTED_CLEAR"), 0, true, 1, 1};
956
- * PLAY_PED_AMBIENT_SPEECH_NATIVE(PLAYER_PED_ID(), (Any*)&params); Old name: _PLAY_AMBIENT_SPEECH1
957
- * https://github.com/femga/rdr3_discoveries/tree/master/audio/audio_banks
958
- *
959
- * @param speaker
960
- * @returns params
952
+ * @param entity
953
+ * @param groupName
954
+ * @param p2
961
955
  */
962
- static playPedAmbientSpeechNative(speaker: Ped): [any, number] {
963
- const result = inv<[number, number]>('0x8E04FEDD28D42462', speaker.handle, pvi());
964
- return [result[0], result[1]];
956
+ static addEntityToAudioMixGroup(entity: Entity, groupName: string | null, p2: number): void {
957
+ inv<void>('0x153973AB99FE8980', entity.handle, groupName, f(p2));
965
958
  }
966
959
 
967
960
  /**
968
- * Checks whether the horn of a vehicle is currently played.
961
+ * speechEventType: https://github.com/Halen84/RDR3-Native-Flags-And-Enums/tree/main/naSpeechEventType
962
+ * SKIP_* - START_*
969
963
  *
970
- * @param vehicle
971
- * @returns
964
+ * @param speechEventType
972
965
  */
973
- static isHornActive(vehicle: Vehicle): boolean {
974
- return !!inv<boolean>('0x9D6BFC12B05C6121', vehicle.handle, rai());
966
+ static N_0x660A8F876DF1D4F8(speechEventType: number): void {
967
+ inv<void>('0x660A8F876DF1D4F8', speechEventType);
975
968
  }
976
969
 
977
970
  /**
978
971
  * @param p0
979
972
  * @param p1
980
- * @param p2
981
- * @param p3
982
973
  */
983
- static N_0xCFAD2C8CD1054523(p0: any, p1: any, p2: any, p3: any): void {
984
- inv<void>('0xCFAD2C8CD1054523', p0, p1, p2, p3);
974
+ static N_0x139A4B9DF2D26CBF(p0: any, p1: any): void {
975
+ inv<void>('0x139A4B9DF2D26CBF', p0, p1);
985
976
  }
986
977
 
987
978
  /**
988
- * @param sceneset
979
+ * @param pos
980
+ * @param streamId
989
981
  */
990
- static stopAudioSceneset(sceneset: string | null): void {
991
- inv<void>('0x9428447DED71FC7E', sceneset);
982
+ static playStreamFromPosition(pos: Vector3, streamId: number): void {
983
+ inv<void>('0x21442F412E8DE56B', f(pos.x), f(pos.y), f(pos.z), streamId);
992
984
  }
993
985
 
994
986
  /**
995
- * @param p0
987
+ * @param entity
996
988
  * @returns
997
989
  */
998
- static getCurrentScriptedConversationLine(p0: string | null): number {
999
- return inv<number>('0x480357EE890C295A', p0, rai());
990
+ static getEntityAudioMixGroup(entity: Entity): number {
991
+ return (inv<number>('0x8B25A18E390F75BF', entity.handle, rai())) & 0xFFFFFFFF;
1000
992
  }
1001
993
 
1002
994
  /**
1003
995
  * @param convoRoot
1004
- * @param ped
1005
- * @param characterName
996
+ * @returns
1006
997
  */
1007
- static addPedToConversation(convoRoot: string | null, ped: Ped, characterName: string | null): void {
1008
- inv<void>('0x95D9F4BC443956E7', convoRoot, ped.handle, characterName);
998
+ static isScriptedConversationCreated(convoRoot: string | null): any {
999
+ return inv<number>('0xD89504D9D7D5057D', convoRoot);
1009
1000
  }
1010
1001
 
1011
- /**
1012
- * @param entity
1013
- * @param p1
1014
- * @param p2
1015
- * @param p3
1016
- * @param p4
1017
- */
1018
- static N_0xABDB4863D3D72021(entity: Entity, p1: any, p2: any, p3: number, p4: any): void {
1019
- inv<void>('0xABDB4863D3D72021', entity.handle, p1, p2, f(p3), p4);
1002
+ static N_0xA2B851605748AD0E(): void {
1003
+ inv<void>('0xA2B851605748AD0E');
1020
1004
  }
1021
1005
 
1022
1006
  /**
1023
- * Not implemented.
1024
- *
1025
- * @param ped
1007
+ * @param convoRoot
1008
+ * @returns
1026
1009
  */
1027
- static N_0x864A842B86993851(ped: Ped): void {
1028
- inv<void>('0x864A842B86993851', ped.handle);
1010
+ static N_0x0CB3D1919E8D7CBA(convoRoot: string | null): boolean {
1011
+ return !!inv<boolean>('0x0CB3D1919E8D7CBA', convoRoot, rai());
1029
1012
  }
1030
1013
 
1031
1014
  /**
1032
- * @param p0
1033
- * @returns
1015
+ * Name: ROPE_SETTINGS_DEFAULT
1016
+ *
1017
+ * @param ropeId
1018
+ * @param name
1034
1019
  */
1035
- static N_0xDC2F83A0612CA34D(p0: any): any {
1036
- return inv<number>('0xDC2F83A0612CA34D', p0);
1020
+ static N_0xF092B6030D6FD49C(ropeId: number, name: string | null): void {
1021
+ inv<void>('0xF092B6030D6FD49C', ropeId, name);
1037
1022
  }
1038
1023
 
1039
1024
  /**
1040
- * https://github.com/femga/rdr3_discoveries/tree/master/audio/soundsets
1041
- *
1042
- * @param soundsetName
1043
- * @param p1
1025
+ * @param p0
1026
+ * @param currentScriptedConvoLine
1044
1027
  * @returns
1045
1028
  */
1046
- static prepareSoundset(soundsetName: string | null, p1: boolean): any {
1047
- return inv<number>('0xD9130842D7226045', soundsetName, p1);
1029
+ static N_0x254B0241E964B450(p0: string | null, currentScriptedConvoLine: number): Ped | null {
1030
+ return createFromHandle<Ped>('Ped', inv<number>('0x254B0241E964B450', p0, currentScriptedConvoLine, rai()));
1048
1031
  }
1049
1032
 
1050
1033
  /**
1051
- * @param entity
1052
- * @returns
1034
+ * @param ped
1035
+ * @param vocalizationName
1036
+ * @param p2
1053
1037
  */
1054
- static N_0x62377977E4F08668(entity: Entity): AnimScene | null {
1055
- return createFromHandle<AnimScene>('AnimScene', inv<number>('0x62377977E4F08668', entity.handle, rai()));
1038
+ static playAnimalVocalization(ped: Ped, vocalizationName: string | null, p2: boolean): void {
1039
+ inv<void>('0xEE066C7006C49C0A', ped.handle, vocalizationName, p2);
1056
1040
  }
1057
1041
 
1058
1042
  /**
1059
- * @param audioName
1060
- * @param sceneset
1061
- * @returns
1043
+ * @param p0
1044
+ * @param p1
1062
1045
  */
1063
- static startAudioSceneset(audioName: string | null, sceneset: string | null): any {
1064
- return inv<number>('0x6339C1EA3979B5F7', audioName, sceneset);
1046
+ static setPedInteriorWallaDensity(p0: number, p1: number): void {
1047
+ inv<void>('0x8BF907833BE275DE', f(p0), f(p1));
1065
1048
  }
1066
1049
 
1067
1050
  /**
1068
1051
  * @param p0
1069
1052
  * @param p1
1070
- * @param p2
1071
- * @param p3
1072
- * @param p4
1073
1053
  */
1074
- static N_0x448F2647DD6F2E27(p0: any, p1: any, p2: any, p3: any, p4: any): void {
1075
- inv<void>('0x448F2647DD6F2E27', p0, p1, p2, p3, p4);
1054
+ static N_0xD47D47EFBF103FB8(p0: any, p1: any): void {
1055
+ inv<void>('0xD47D47EFBF103FB8', p0, p1);
1076
1056
  }
1077
1057
 
1078
1058
  /**
1079
1059
  * @param p0
1080
- * @returns
1060
+ * @param p1
1081
1061
  */
1082
- static N_0xB18FEC133C7C6C69(p0: any): any {
1083
- return inv<number>('0xB18FEC133C7C6C69', p0);
1062
+ static N_0x5BC885EBD75FAA7D(p0: any, p1: any): void {
1063
+ inv<void>('0x5BC885EBD75FAA7D', p0, p1);
1084
1064
  }
1085
1065
 
1086
1066
  /**
1087
- * @param p0
1088
- * @returns
1067
+ * Valid pain IDs: 0..12 these names are not official, but here is a list of the IDs:
1068
+ * 1 burning,
1069
+ * 2 drowning,
1070
+ * 3 coughing,
1071
+ * 4 nothing,
1072
+ * 5 nothing,
1073
+ * 6 coughing_2,
1074
+ * 7 nothing,
1075
+ * 8 nothing,
1076
+ * 9 hurtingSick?,
1077
+ * 10 hurtingFall?,
1078
+ * 11 nothing,
1079
+ * 12 choking
1080
+ *
1081
+ * @param ped
1082
+ * @param painId
1083
+ * @param p2
1084
+ * @param p3
1085
+ * @param isNetwork
1089
1086
  */
1090
- static N_0x295859EB18F48D82(p0: string | null): number {
1091
- return inv<number>('0x295859EB18F48D82', p0, rai());
1087
+ static playPain(ped: Ped, painId: number, p2: number, p3: boolean, isNetwork: boolean): void {
1088
+ inv<void>('0xBC9AE166038A5CEC', ped.handle, painId, f(p2), p3, isNetwork);
1092
1089
  }
1093
1090
 
1094
1091
  /**
1092
+ * *STOP_AUDIO**
1093
+ *
1095
1094
  * @param p0
1096
1095
  */
1097
- static N_0xCBF2BEBB468A34F3(p0: any): void {
1098
- inv<void>('0xCBF2BEBB468A34F3', p0);
1096
+ static N_0x6AB944DF68B512D3(p0: any): void {
1097
+ inv<void>('0x6AB944DF68B512D3', p0);
1098
+ }
1099
+
1100
+ static N_0xDAD6CD07CAA4F382(): void {
1101
+ inv<void>('0xDAD6CD07CAA4F382');
1099
1102
  }
1100
1103
 
1101
1104
  /**
1102
- * @param p0
1103
- * @param p1
1104
- * @param p2
1105
+ * soundId maybe be incorrect name for param p2, in the decompiles is always -2
1106
+ *
1107
+ * @param soundName
1108
+ * @param soundsetName
1109
+ * @param soundId
1105
1110
  * @returns
1106
1111
  */
1107
- static stopScriptedConversation(p0: string | null, p1: boolean, p2: boolean): number {
1108
- return inv<number>('0xD79DEEFB53455EBA', p0, p1, p2, rai());
1112
+ static prepareSound(soundName: string | null, soundsetName: string | null, soundId: number): any {
1113
+ return inv<number>('0xE368E8422C860BA7', soundName, soundsetName, soundId);
1109
1114
  }
1110
1115
 
1111
1116
  /**
1112
1117
  * @param p0
1113
1118
  * @param p1
1114
1119
  */
1115
- static N_0xFD461D0ABA5559B1(p0: any, p1: any): void {
1116
- inv<void>('0xFD461D0ABA5559B1', p0, p1);
1120
+ static N_0x259ACC5B52A2B2D9(p0: any, p1: any): void {
1121
+ inv<void>('0x259ACC5B52A2B2D9', p0, p1);
1117
1122
  }
1118
1123
 
1119
1124
  /**
1120
- * *IS_SCRIPTED_CONVERSATION**
1121
- *
1122
- * @param convoRoot
1123
- * @returns
1125
+ * @param audSpeechEvent
1124
1126
  */
1125
- static N_0xD0730C1FA40348D9(convoRoot: string | null): boolean {
1126
- return !!inv<boolean>('0xD0730C1FA40348D9', convoRoot, rai());
1127
+ static N_0x1E6F9A9FE1A99F36(audSpeechEvent: string | null): void {
1128
+ inv<void>('0x1E6F9A9FE1A99F36', audSpeechEvent);
1127
1129
  }
1128
1130
 
1129
1131
  /**
1130
1132
  * @param p0
1133
+ * @param p1
1134
+ * @param p2
1135
+ * @param p3
1131
1136
  */
1132
- static skipToNextScriptedConversationLine(p0: string | null): void {
1133
- inv<void>('0x9663FE6B7A61EB00', p0);
1137
+ static N_0x017492B2201E3428(p0: any, p1: any, p2: any, p3: any): void {
1138
+ inv<void>('0x017492B2201E3428', p0, p1, p2, p3);
1134
1139
  }
1135
1140
 
1136
1141
  /**
1137
- * @param ped
1138
- * @param p1
1142
+ * @returns
1139
1143
  */
1140
- static stopCurrentPlayingSpeech(ped: Ped, p1: any): void {
1141
- inv<void>('0x79D2F0E66F81D90D', ped.handle, p1);
1142
- }
1143
-
1144
- static clearConversationHistory(): void {
1145
- inv<void>('0x33D51F801CB16E4F');
1144
+ static N_0xE600F61F54A444A6(): any {
1145
+ return inv<number>('0xE600F61F54A444A6');
1146
1146
  }
1147
1147
 
1148
1148
  /**
1149
- * @param eventName
1150
- * @returns
1149
+ * @param scene
1150
+ * @param variable
1151
+ * @param value
1151
1152
  */
1152
- static prepareMusicEvent(eventName: string | null): boolean {
1153
- return !!inv<boolean>('0x1E5185B72EF5158A', eventName, rai());
1153
+ static setAudioSceneVariable(scene: string | null, variable: string | null, value: number): void {
1154
+ inv<void>('0xEF21A9EF089A2668', scene, variable, f(value));
1154
1155
  }
1155
1156
 
1156
1157
  /**
1157
- * Starts Audio Loop
1158
- * _PLAY_SOUND_FROM_ENTITY* - _PLAY_SOUND_FRONTEND*
1158
+ * Old name: _PLAY_AMBIENT_SPEECH_AT_COORDS
1159
1159
  *
1160
- * @param soundId
1161
- * @param soundName
1162
1160
  * @param pos
1163
- * @param soundsetName
1164
- * @param p6
1165
- * @param p7
1166
- * @param p8
1161
+ * @returns params
1167
1162
  */
1168
- static playSoundFromPositionWithId(soundId: number, soundName: string | null, pos: Vector3, soundsetName: string | null, p6: boolean, p7: number, p8: boolean): void {
1169
- inv<void>('0xDCF5BA95BBF0FABA', soundId, soundName, f(pos.x), f(pos.y), f(pos.z), soundsetName, p6, p7, p8);
1163
+ static playAmbientSpeechFromPositionNative(pos: Vector3): [any, number] {
1164
+ const result = inv<[number, number]>('0xED640017ED337E45', f(pos.x), f(pos.y), f(pos.z), pvi());
1165
+ return [result[0], result[1]];
1170
1166
  }
1171
1167
 
1172
1168
  /**
1173
1169
  * @param p0
1174
1170
  * @param p1
1175
1171
  * @param p2
1172
+ * @param p3
1176
1173
  */
1177
- static N_0x8D29FDF565DED9AE(p0: any, p1: any, p2: any): void {
1178
- inv<void>('0x8D29FDF565DED9AE', p0, p1, p2);
1179
- }
1180
-
1181
- /**
1182
- * @param eventName
1183
- * @returns
1184
- */
1185
- static triggerMusicEventWithHash(eventName: string | number): any {
1186
- return inv<number>('0x05D6195FB4D428F4', _h(eventName));
1174
+ static N_0x5E3CCF03995388B5(p0: any, p1: any, p2: any, p3: any): void {
1175
+ inv<void>('0x5E3CCF03995388B5', p0, p1, p2, p3);
1187
1176
  }
1188
1177
 
1189
1178
  /**
1190
- * @param soundId
1179
+ * @param entity
1191
1180
  * @returns
1192
1181
  */
1193
- static hasSoundIdFinished(soundId: number): any {
1194
- return inv<number>('0x84848E1C0FC67DBB', soundId);
1195
- }
1196
-
1197
- /**
1198
- * @param scene
1199
- */
1200
- static stopAudioScene(scene: string | null): void {
1201
- inv<void>('0xDFE8422B3B94E688', scene);
1182
+ static N_0x886657C5B3D8EDE3(entity: Entity): any {
1183
+ return inv<number>('0x886657C5B3D8EDE3', entity.handle);
1202
1184
  }
1203
1185
 
1204
1186
  /**
1205
1187
  * @param p0
1206
- * @param p1
1207
1188
  */
1208
- static N_0xA6847BBA4FCDD13F(p0: any, p1: any): void {
1209
- inv<void>('0xA6847BBA4FCDD13F', p0, p1);
1189
+ static N_0x6B7A88A61B41E589(p0: any): void {
1190
+ inv<void>('0x6B7A88A61B41E589', p0);
1210
1191
  }
1211
1192
 
1212
1193
  /**
1213
1194
  * @param p0
1214
- * @returns
1195
+ * @param p1
1196
+ * @param p2
1215
1197
  */
1216
- static isScriptedSpeechPlaying(p0: any): boolean {
1217
- return !!inv<boolean>('0xCC9AA18DCC7084F4', p0, rai());
1198
+ static N_0x821C32C728B24477(p0: any, p1: any, p2: any): void {
1199
+ inv<void>('0x821C32C728B24477', p0, p1, p2);
1218
1200
  }
1219
1201
 
1220
1202
  /**
1221
1203
  * @param ped
1222
1204
  * @param p1
1223
- * @param hash
1205
+ * @returns
1224
1206
  */
1225
- static useFootstepScriptSweeteners(ped: Ped, p1: boolean, hash: string | number): void {
1226
- inv<void>('0xBF4DC1784BE94DFA', ped.handle, p1, _h(hash));
1207
+ static isPedInAnyConversation(ped: Ped, p1: boolean): any {
1208
+ return inv<number>('0x54B187F111D9C6F8', ped.handle, p1);
1227
1209
  }
1228
1210
 
1229
1211
  /**
1230
- * whistleConfig: Ped.WhistlePitch (0.0 - 1.0), Ped.WhistleClarity (0.0 - 1.0), Ped.WhistleShape (0.0 - 10.0)
1212
+ * Hashes: VOFX_PLAYER_MALE01, VOFX_PLAYER_MALE02, VOFX_PLAYER_MALE03, VOFX_PLAYER_FEMALE01, VOFX_PLAYER_FEMALE02, VOFX_PLAYER_FEMALE03
1231
1213
  *
1232
1214
  * @param ped
1233
- * @param whistleConfig
1234
- * @param value
1215
+ * @param voice
1235
1216
  */
1236
- static setWhistleConfigForPed(ped: Ped, whistleConfig: string | null, value: number): void {
1237
- inv<void>('0x9963681A8BC69BF3', ped.handle, whistleConfig, f(value));
1217
+ static setVofxPedVoice(ped: Ped, voice: string | number): void {
1218
+ inv<void>('0x2703EFB583F0949A', ped.handle, _h(voice));
1238
1219
  }
1239
1220
 
1240
1221
  /**
1241
1222
  * @param ped
1242
- * @param p1
1243
- * @param p2
1223
+ * @returns
1244
1224
  */
1245
- static playAnimalVocalizationPheromoneVialResponse(ped: Ped, p1: string | number, p2: boolean): void {
1246
- inv<void>('0x0E53530D9B2DB01D', ped.handle, _h(p1), p2);
1225
+ static isAnySpeechPlaying(ped: Ped): boolean {
1226
+ return !!inv<boolean>('0x729072355FA39EC9', ped.handle, rai());
1247
1227
  }
1248
1228
 
1249
1229
  /**
1250
- * Only used in R* SP Scripts
1251
- * Old Name: _UPDATE_SOUND_POSITION
1252
- *
1253
- * @param soundId
1254
- * @param pos
1230
+ * @param convoRoot
1255
1231
  */
1256
- static updateSoundCoord(soundId: number, pos: Vector3): void {
1257
- inv<void>('0x0286617C8FC50A53', soundId, f(pos.x), f(pos.y), f(pos.z));
1232
+ static clearConversationHistoryForScriptedConversation(convoRoot: string | null): void {
1233
+ inv<void>('0xEF51242E35242B47', convoRoot);
1258
1234
  }
1259
1235
 
1260
1236
  /**
1261
- * @param ambientZone
1237
+ * @param p0
1262
1238
  * @param p1
1263
- * @param p2
1264
1239
  */
1265
- static setAmbientZoneStatePersistent(ambientZone: string | null, p1: boolean, p2: boolean): void {
1266
- inv<void>('0x1D6650420CEC9D3B', ambientZone, p1, p2);
1240
+ static N_0x018ABE833CA64D2A(p0: any, p1: any): void {
1241
+ inv<void>('0x018ABE833CA64D2A', p0, p1);
1267
1242
  }
1268
1243
 
1269
1244
  /**
1270
- * @param ped
1245
+ * @param zoneName
1271
1246
  * @param p1
1272
1247
  */
1273
- static stopCurrentPlayingAmbientSpeech(ped: Ped, p1: any): void {
1274
- inv<void>('0xB8BEC0CA6F0EDB0F', ped.handle, p1);
1248
+ static clearAmbientZoneState(zoneName: string | null, p1: boolean): void {
1249
+ inv<void>('0x218DD44AAAC964FF', zoneName, p1);
1275
1250
  }
1276
1251
 
1277
1252
  /**
1278
1253
  * @param p0
1279
- * @param ped
1280
- * @param p2
1281
- * @returns
1254
+ * @param p1
1282
1255
  */
1283
- static isPedInCurrentConversation(p0: string | null, ped: Ped, p2: any): boolean {
1284
- return !!inv<boolean>('0x049E937F18F4020C', p0, ped.handle, p2, rai());
1256
+ static N_0x3E93DDDCBB6111E4(p0: string | null, p1: number): void {
1257
+ inv<void>('0x3E93DDDCBB6111E4', p0, f(p1));
1285
1258
  }
1286
1259
 
1287
1260
  /**
1288
1261
  * @param p0
1289
1262
  * @returns
1290
1263
  */
1291
- static isScriptedConversionOngoing(p0: string | null): any {
1292
- return inv<number>('0xF01C570E0A0A1E67', p0);
1264
+ static N_0x5A13586A9447931F(p0: boolean): boolean {
1265
+ return !!inv<boolean>('0x5A13586A9447931F', p0, rai());
1293
1266
  }
1294
1267
 
1295
1268
  /**
1296
- * @param soundsetName
1269
+ * @param p0
1270
+ * @param p1
1297
1271
  */
1298
- static releaseSoundset(soundsetName: string | null): void {
1299
- inv<void>('0x531A78D6BF27014B', soundsetName);
1272
+ static N_0xBC07CA8FD710E7FD(p0: any, p1: any): void {
1273
+ inv<void>('0xBC07CA8FD710E7FD', p0, p1);
1300
1274
  }
1301
1275
 
1302
1276
  /**
1303
- * @returns
1277
+ * @param p0
1278
+ * @param p1
1304
1279
  */
1305
- static getSoundId(): number {
1306
- return inv<number>('0x430386FE9BF80B45', rai());
1280
+ static N_0x078F77FD1A43EAB3(p0: any, p1: any): void {
1281
+ inv<void>('0x078F77FD1A43EAB3', p0, p1);
1307
1282
  }
1308
1283
 
1309
1284
  /**
1310
- * @param listeningToPed
1311
- * @param ped
1312
- * @param listenerName
1285
+ * @param p0
1286
+ * @param p1
1313
1287
  */
1314
- static N_0xA2323A2EAE32A290(listeningToPed: Ped, ped: Ped, listenerName: string | null): void {
1315
- inv<void>('0xA2323A2EAE32A290', listeningToPed.handle, ped.handle, listenerName);
1288
+ static N_0x341CDD17EFC2472E(p0: any, p1: any): void {
1289
+ inv<void>('0x341CDD17EFC2472E', p0, p1);
1316
1290
  }
1317
1291
 
1318
1292
  /**
1319
- * @param p0
1320
- * @returns
1293
+ * @param ambientZone
1294
+ * @param p1
1295
+ * @param p2
1321
1296
  */
1322
- static N_0xF0EE69F500952FA5(p0: any): any {
1323
- return inv<number>('0xF0EE69F500952FA5', p0);
1297
+ static setAmbientZoneListState(ambientZone: string | null, p1: boolean, p2: boolean): void {
1298
+ inv<void>('0x9748FA4DE50CCE3E', ambientZone, p1, p2);
1324
1299
  }
1325
1300
 
1326
1301
  /**
1327
- * Old name: AUDIO_IS_SCRIPTED_MUSIC_PLAYING
1328
- *
1302
+ * @param streamId
1329
1303
  * @returns
1330
1304
  */
1331
- static isMusicPlaying(): boolean {
1332
- return !!inv<boolean>('0x845FFC3A4FEEFA3E', rai());
1305
+ static isStreamPlaying(streamId: number): boolean {
1306
+ return !!inv<boolean>('0xD11FA52EB849D978', streamId, rai());
1333
1307
  }
1334
1308
 
1335
1309
  /**
1336
- * Used in Script Function NET_CAMP_CLIENT_UPDATE_PED_ROLE_STATE_SHOP: hash exists! Playing hash
1337
- *
1338
- * @param ped
1310
+ * @param convoRoot
1339
1311
  * @param p1
1312
+ * @param p2
1313
+ * @param clone
1340
1314
  */
1341
- static N_0xB93A769B8B726950(ped: Ped, p1: string | number): void {
1342
- inv<void>('0xB93A769B8B726950', ped.handle, _h(p1));
1315
+ static preloadScriptConversation(convoRoot: string | null, p1: boolean, p2: boolean, clone: boolean): void {
1316
+ inv<void>('0x3B3CAD6166916D87', convoRoot, p1, p2, clone);
1343
1317
  }
1344
1318
 
1345
1319
  /**
1346
- * @param variableName
1347
- * @param variableValue
1348
- * @param audioName
1349
- * @param audioRef
1320
+ * Creates stream and returns streamId handle to be used with PLAY_STREAM_* natives
1321
+ * https://github.com/femga/rdr3_discoveries/tree/master/audio/create_stream
1322
+ *
1323
+ * @param streamName
1324
+ * @param soundSet
1325
+ * @returns
1350
1326
  */
1351
- static setVariableOnSoundWithName(variableName: string | null, variableValue: number, audioName: string | null, audioRef: string | null): void {
1352
- inv<void>('0x9821B68CD3E05F2B', variableName, f(variableValue), audioName, audioRef);
1327
+ static getLoadedStreamIdFromCreation(streamName: string | null, soundSet: string | null): number {
1328
+ return inv<number>('0x0556C784FA056628', streamName, soundSet, rai());
1353
1329
  }
1354
1330
 
1355
1331
  /**
1356
- * @param p0
1332
+ * @param vehicle
1357
1333
  * @param p1
1358
1334
  */
1359
- static N_0xD733528B6C35647A(p0: any, p1: any): void {
1360
- inv<void>('0xD733528B6C35647A', p0, p1);
1335
+ static setAudioVehiclePriority(vehicle: Vehicle, p1: any): void {
1336
+ inv<void>('0xE5564483E407F914', vehicle.handle, p1);
1361
1337
  }
1362
1338
 
1363
1339
  /**
1364
- * @param ambientZone
1365
- * @param p1
1340
+ * @param soundName
1341
+ * @param soundsetName
1366
1342
  */
1367
- static clearAmbientZoneListState(ambientZone: string | null, p1: boolean): void {
1368
- inv<void>('0x120C48C614909FA4', ambientZone, p1);
1343
+ static releaseShardSounds(soundName: string | null, soundsetName: string | null): void {
1344
+ inv<void>('0x9D746964E0CF2C5F', soundName, soundsetName);
1369
1345
  }
1370
1346
 
1371
1347
  /**
1372
- * @param p0
1373
- * @param p1
1348
+ * Gets the hash for the last played speech line.
1349
+ *
1350
+ * @param ped
1351
+ * @returns
1374
1352
  */
1375
- static N_0xE891504B2F0E2DBA(p0: any, p1: any): void {
1376
- inv<void>('0xE891504B2F0E2DBA', p0, p1);
1353
+ static getLastPlayedSpeechForPed(ped: Ped): any {
1354
+ return inv<number>('0x6BFFB7C276866996', ped.handle);
1355
+ }
1356
+
1357
+ static N_0xE7E6CB8B713ED190(): void {
1358
+ inv<void>('0xE7E6CB8B713ED190');
1377
1359
  }
1378
1360
 
1379
1361
  /**
1380
- * @param ped
1381
- * @param p1
1362
+ * @param p0
1382
1363
  * @returns
1383
1364
  */
1384
- static N_0xDF947FE0D551684E(ped: Ped, p1: string | null): boolean {
1385
- return !!inv<boolean>('0xDF947FE0D551684E', ped.handle, p1, rai());
1386
- }
1387
-
1388
- /**
1389
- * @param entity
1390
- * @param p1
1391
- */
1392
- static N_0xE9694B2D6CB87B06(entity: Entity, p1: any): void {
1393
- inv<void>('0xE9694B2D6CB87B06', entity.handle, p1);
1365
+ static N_0x44A5EEF54F62E823(p0: any): any {
1366
+ return inv<number>('0x44A5EEF54F62E823', p0);
1394
1367
  }
1395
1368
 
1396
1369
  /**
1397
- * @param audioBank
1370
+ * @param ped
1371
+ * @param streamId
1398
1372
  */
1399
- static releaseNamedScriptAudioBank(audioBank: string | null): void {
1400
- inv<void>('0x77ED170667F50170', audioBank);
1373
+ static playStreamFromPed(ped: Ped, streamId: number): void {
1374
+ inv<void>('0x89049DD63C08B5D1', ped.handle, streamId);
1401
1375
  }
1402
1376
 
1403
1377
  /**
@@ -1552,6 +1526,136 @@ export class Audio {
1552
1526
  return inv<number>('0xC68C02DE259C927C', p0);
1553
1527
  }
1554
1528
 
1529
+ /**
1530
+ * @param p0
1531
+ * @returns
1532
+ */
1533
+ static N_0xD05A460328560477(p0: any): any {
1534
+ return inv<number>('0xD05A460328560477', p0);
1535
+ }
1536
+
1537
+ /**
1538
+ * Checks if the ped can play the speech or has the speech file, last parameter is usually false.
1539
+ *
1540
+ * @param ped
1541
+ * @param speechName
1542
+ * @param unk
1543
+ * @returns
1544
+ */
1545
+ static doesContextExistForThisPed(ped: Ped, speechName: string | null, unk: boolean): boolean {
1546
+ return !!inv<boolean>('0x49B99BF3FDA89A7A', ped.handle, speechName, unk, rai());
1547
+ }
1548
+
1549
+ /**
1550
+ * @returns
1551
+ */
1552
+ static N_0x2B101AD9F651243A(): any {
1553
+ return inv<number>('0x2B101AD9F651243A');
1554
+ }
1555
+
1556
+ /**
1557
+ * @param p0
1558
+ * @returns
1559
+ */
1560
+ static N_0x131EC9247E7A2903(p0: any): any {
1561
+ return inv<number>('0x131EC9247E7A2903', p0);
1562
+ }
1563
+
1564
+ /**
1565
+ * @param ped
1566
+ * @param name
1567
+ */
1568
+ static setAmbientVoiceName(ped: Ped, name: string | null): void {
1569
+ inv<void>('0x6C8065A3B780185B', ped.handle, name);
1570
+ }
1571
+
1572
+ /**
1573
+ * @param play
1574
+ */
1575
+ static playEndCreditsMusic(play: boolean): void {
1576
+ inv<void>('0xCD536C4D33DCC900', play);
1577
+ }
1578
+
1579
+ /**
1580
+ * @param eventName
1581
+ * @returns
1582
+ */
1583
+ static cancelMusicEvent(eventName: string | null): boolean {
1584
+ return !!inv<boolean>('0x5B17A90291133DA5', eventName, rai());
1585
+ }
1586
+
1587
+ /**
1588
+ * @param ped
1589
+ * @returns
1590
+ */
1591
+ static isAmbientSpeechDisabled(ped: Ped): boolean {
1592
+ return !!inv<boolean>('0x932C2D096A2C3FFF', ped.handle, rai());
1593
+ }
1594
+
1595
+ /**
1596
+ * Not implemented.
1597
+ *
1598
+ * @param animal
1599
+ * @param mood
1600
+ */
1601
+ static setAnimalMood(animal: Ped, mood: number): void {
1602
+ inv<void>('0xCC97B29285B1DC3B', animal.handle, mood);
1603
+ }
1604
+
1605
+ /**
1606
+ * @param convoRoot
1607
+ * @param p1
1608
+ * @param p2
1609
+ * @param clone
1610
+ */
1611
+ static startScriptConversation(convoRoot: string | null, p1: boolean, p2: boolean, clone: boolean): void {
1612
+ inv<void>('0x6B17C62C9635D2DC', convoRoot, p1, p2, clone);
1613
+ }
1614
+
1615
+ /**
1616
+ * @param p0
1617
+ */
1618
+ static N_0xEB4D592620B8C209(p0: any): void {
1619
+ inv<void>('0xEB4D592620B8C209', p0);
1620
+ }
1621
+
1622
+ static releaseScriptAudioBank(): void {
1623
+ inv<void>('0x7A2D8AD0A9EB9C3F');
1624
+ }
1625
+
1626
+ static N_0x4BE3EC91C01F0FE8(): void {
1627
+ inv<void>('0x4BE3EC91C01F0FE8');
1628
+ }
1629
+
1630
+ /**
1631
+ * @param zoneName
1632
+ * @param isEnabled
1633
+ * @param p2
1634
+ */
1635
+ static setAmbientZoneState(zoneName: string | null, isEnabled: boolean, p2: boolean): void {
1636
+ inv<void>('0xBDA07E5950085E46', zoneName, isEnabled, p2);
1637
+ }
1638
+
1639
+ /**
1640
+ * @param audioName
1641
+ * @param entity
1642
+ * @param audioRef
1643
+ * @param isNetwork
1644
+ * @param p4
1645
+ * @param p5
1646
+ */
1647
+ static playSoundFromEntity(audioName: string | null, entity: Entity, audioRef: string | null, isNetwork: boolean, p4: any, p5: any): void {
1648
+ inv<void>('0x6FB1DA3CA9DA7D90', audioName, entity.handle, audioRef, isNetwork, p4, p5);
1649
+ }
1650
+
1651
+ /**
1652
+ * @param ped
1653
+ * @returns
1654
+ */
1655
+ static isAmbientSpeechPlaying(ped: Ped): boolean {
1656
+ return !!inv<boolean>('0x9072C8B49907BFAD', ped.handle, rai());
1657
+ }
1658
+
1555
1659
  /**
1556
1660
  * @param ambientZone
1557
1661
  * @param pos
@@ -1818,108 +1922,4 @@ export class Audio {
1818
1922
  inv<void>('0xF232C2C546AC16D0', p0);
1819
1923
  }
1820
1924
 
1821
- /**
1822
- * https://github.com/femga/rdr3_discoveries/blob/master/audio/music_events/music_events.lua
1823
- *
1824
- * @param eventName
1825
- * @returns
1826
- */
1827
- static triggerMusicEvent(eventName: string | null): boolean {
1828
- return !!inv<boolean>('0x706D57B0F50DA710', eventName, rai());
1829
- }
1830
-
1831
- /**
1832
- * @param p0
1833
- */
1834
- static restartScriptedConversation(p0: string | null): void {
1835
- inv<void>('0x9AEB285D1818C9AC', p0);
1836
- }
1837
-
1838
- /**
1839
- * @param ped
1840
- */
1841
- static N_0xC4CFCE4C656EF480(ped: Ped): void {
1842
- inv<void>('0xC4CFCE4C656EF480', ped.handle);
1843
- }
1844
-
1845
- /**
1846
- * @param p0
1847
- * @param p1
1848
- */
1849
- static N_0x3A00D87B20A2A5E4(p0: any, p1: any): void {
1850
- inv<void>('0x3A00D87B20A2A5E4', p0, p1);
1851
- }
1852
-
1853
- /**
1854
- * @param pedHandle
1855
- * @returns
1856
- */
1857
- static isAnimalVocalizationPlaying(pedHandle: Ped): boolean {
1858
- return !!inv<boolean>('0xC265DF9FB44A9FBD', pedHandle.handle, rai());
1859
- }
1860
-
1861
- /**
1862
- * @param p0
1863
- * @returns
1864
- */
1865
- static isAnyConversationPlaying(p0: boolean): any {
1866
- return inv<number>('0xA2CAC9DEF0195E6F', p0);
1867
- }
1868
-
1869
- /**
1870
- * @param name
1871
- * @param pos
1872
- */
1873
- static triggerExplosion(name: string | null, pos: Vector3): void {
1874
- inv<void>('0x374F0E716BFCDE82', name, f(pos.x), f(pos.y), f(pos.z));
1875
- }
1876
-
1877
- /**
1878
- * @param ropeId
1879
- * @param p1
1880
- */
1881
- static N_0x2651DDC0EA269073(ropeId: number, p1: number): void {
1882
- inv<void>('0x2651DDC0EA269073', ropeId, f(p1));
1883
- }
1884
-
1885
- static stopAudioScenes(): void {
1886
- inv<void>('0xBAC7FC81A75EC1A1');
1887
- }
1888
-
1889
- /**
1890
- * @param audioName
1891
- * @param audioRef
1892
- * @param p2
1893
- * @param p3
1894
- * @param p4
1895
- * @param p5
1896
- */
1897
- static playSound(audioName: string | null, audioRef: string | null, p2: boolean, p3: any, p4: boolean, p5: any): void {
1898
- inv<void>('0x7FF4944CC209192D', audioName, audioRef, p2, p3, p4, p5);
1899
- }
1900
-
1901
- /**
1902
- * @param scene
1903
- * @returns
1904
- */
1905
- static isAudioSceneActive(scene: string | null): boolean {
1906
- return !!inv<boolean>('0xB65B60556E2A9225', scene, rai());
1907
- }
1908
-
1909
- /**
1910
- * @param context
1911
- * @param block
1912
- */
1913
- static blockSpeechContext(context: string | null, block: boolean): void {
1914
- inv<void>('0x6378A235374B852F', context, block);
1915
- }
1916
-
1917
- /**
1918
- * @param p0
1919
- * @returns
1920
- */
1921
- static N_0x847748AE5D7B1071(p0: boolean): boolean {
1922
- return !!inv<boolean>('0x847748AE5D7B1071', p0, rai());
1923
- }
1924
-
1925
1925
  }