@nativewrappers/redm-codegen 0.0.2 → 0.0.3

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 (254) hide show
  1. package/dist/classes/AnimScene.d.ts +142 -142
  2. package/dist/classes/AnimScene.d.ts.map +1 -1
  3. package/dist/classes/AnimScene.js +203 -203
  4. package/dist/classes/BaseModel.d.ts +29 -29
  5. package/dist/classes/BaseModel.d.ts.map +1 -1
  6. package/dist/classes/BaseModel.js +43 -43
  7. package/dist/classes/BaseTask.d.ts +34 -34
  8. package/dist/classes/BaseTask.d.ts.map +1 -1
  9. package/dist/classes/BaseTask.js +42 -42
  10. package/dist/classes/Cam.d.ts +71 -71
  11. package/dist/classes/Cam.d.ts.map +1 -1
  12. package/dist/classes/Cam.js +102 -102
  13. package/dist/classes/Entity.d.ts +387 -386
  14. package/dist/classes/Entity.d.ts.map +1 -1
  15. package/dist/classes/Entity.js +509 -504
  16. package/dist/classes/Interior.d.ts +27 -27
  17. package/dist/classes/Interior.d.ts.map +1 -1
  18. package/dist/classes/Interior.js +42 -42
  19. package/dist/classes/Ped.d.ts +67 -66
  20. package/dist/classes/Ped.d.ts.map +1 -1
  21. package/dist/classes/Ped.js +80 -75
  22. package/dist/classes/PedTask.d.ts +1518 -1518
  23. package/dist/classes/PedTask.d.ts.map +1 -1
  24. package/dist/classes/PedTask.js +1930 -1930
  25. package/dist/classes/PersChar.d.ts +11 -11
  26. package/dist/classes/PersChar.d.ts.map +1 -1
  27. package/dist/classes/PersChar.js +23 -23
  28. package/dist/classes/Pickup.d.ts +7 -7
  29. package/dist/classes/Pickup.d.ts.map +1 -1
  30. package/dist/classes/Pickup.js +13 -13
  31. package/dist/classes/Player.d.ts +237 -237
  32. package/dist/classes/Player.d.ts.map +1 -1
  33. package/dist/classes/Player.js +319 -319
  34. package/dist/classes/Prop.d.ts +105 -104
  35. package/dist/classes/Prop.d.ts.map +1 -1
  36. package/dist/classes/Prop.js +155 -150
  37. package/dist/classes/PropSet.d.ts +1 -1
  38. package/dist/classes/PropSet.d.ts.map +1 -1
  39. package/dist/classes/Vehicle.d.ts +1 -0
  40. package/dist/classes/Vehicle.d.ts.map +1 -1
  41. package/dist/classes/Vehicle.js +5 -0
  42. package/dist/classes/VehicleTask.d.ts +21 -21
  43. package/dist/classes/VehicleTask.d.ts.map +1 -1
  44. package/dist/classes/VehicleTask.js +27 -27
  45. package/dist/classes/Volume.d.ts +40 -40
  46. package/dist/classes/Volume.d.ts.map +1 -1
  47. package/dist/classes/Volume.js +54 -54
  48. package/dist/classes/Weapon.d.ts +364 -364
  49. package/dist/classes/Weapon.d.ts.map +1 -1
  50. package/dist/classes/Weapon.js +515 -515
  51. package/dist/namespaces/Aitransport.d.ts +77 -77
  52. package/dist/namespaces/Aitransport.d.ts.map +1 -1
  53. package/dist/namespaces/Aitransport.js +94 -94
  54. package/dist/namespaces/Animscene.d.ts +65 -65
  55. package/dist/namespaces/Animscene.d.ts.map +1 -1
  56. package/dist/namespaces/Animscene.js +83 -83
  57. package/dist/namespaces/Audio.d.ts +464 -464
  58. package/dist/namespaces/Audio.d.ts.map +1 -1
  59. package/dist/namespaces/Audio.js +651 -651
  60. package/dist/namespaces/Bounty.d.ts +23 -23
  61. package/dist/namespaces/Bounty.d.ts.map +1 -1
  62. package/dist/namespaces/Bounty.js +40 -40
  63. package/dist/namespaces/Brain.d.ts +15 -15
  64. package/dist/namespaces/Brain.d.ts.map +1 -1
  65. package/dist/namespaces/Brain.js +20 -20
  66. package/dist/namespaces/CamStatics.d.ts +459 -459
  67. package/dist/namespaces/CamStatics.d.ts.map +1 -1
  68. package/dist/namespaces/CamStatics.js +719 -719
  69. package/dist/namespaces/Collection.d.ts +78 -78
  70. package/dist/namespaces/Collection.d.ts.map +1 -1
  71. package/dist/namespaces/Collection.js +109 -109
  72. package/dist/namespaces/Companion.d.ts +22 -22
  73. package/dist/namespaces/Companion.d.ts.map +1 -1
  74. package/dist/namespaces/Companion.js +30 -30
  75. package/dist/namespaces/Compendium.d.ts +94 -94
  76. package/dist/namespaces/Compendium.d.ts.map +1 -1
  77. package/dist/namespaces/Compendium.js +126 -126
  78. package/dist/namespaces/Databinding.d.ts +113 -113
  79. package/dist/namespaces/Databinding.d.ts.map +1 -1
  80. package/dist/namespaces/Databinding.js +167 -167
  81. package/dist/namespaces/Dlc.d.ts +5 -5
  82. package/dist/namespaces/Dlc.d.ts.map +1 -1
  83. package/dist/namespaces/Dlc.js +9 -9
  84. package/dist/namespaces/EntityStatics.d.ts +164 -164
  85. package/dist/namespaces/EntityStatics.d.ts.map +1 -1
  86. package/dist/namespaces/EntityStatics.js +225 -225
  87. package/dist/namespaces/Event.d.ts +62 -62
  88. package/dist/namespaces/Event.d.ts.map +1 -1
  89. package/dist/namespaces/Event.js +82 -82
  90. package/dist/namespaces/Fire.d.ts +7 -7
  91. package/dist/namespaces/Fire.d.ts.map +1 -1
  92. package/dist/namespaces/Fire.js +9 -9
  93. package/dist/namespaces/Graphics.d.ts +688 -688
  94. package/dist/namespaces/Graphics.d.ts.map +1 -1
  95. package/dist/namespaces/Graphics.js +876 -876
  96. package/dist/namespaces/Hud.d.ts +456 -456
  97. package/dist/namespaces/Hud.d.ts.map +1 -1
  98. package/dist/namespaces/Hud.js +598 -598
  99. package/dist/namespaces/InteriorStatics.d.ts +42 -42
  100. package/dist/namespaces/InteriorStatics.d.ts.map +1 -1
  101. package/dist/namespaces/InteriorStatics.js +56 -56
  102. package/dist/namespaces/Inventory.d.ts +156 -156
  103. package/dist/namespaces/Inventory.d.ts.map +1 -1
  104. package/dist/namespaces/Inventory.js +210 -210
  105. package/dist/namespaces/Itemdatabase.d.ts +3 -3
  106. package/dist/namespaces/Itemdatabase.d.ts.map +1 -1
  107. package/dist/namespaces/Law.d.ts +2 -2
  108. package/dist/namespaces/Law.d.ts.map +1 -1
  109. package/dist/namespaces/Map.d.ts +128 -128
  110. package/dist/namespaces/Map.d.ts.map +1 -1
  111. package/dist/namespaces/Map.js +180 -180
  112. package/dist/namespaces/Minigame.d.ts +60 -60
  113. package/dist/namespaces/Minigame.d.ts.map +1 -1
  114. package/dist/namespaces/Minigame.js +88 -88
  115. package/dist/namespaces/Misc.d.ts +5 -5
  116. package/dist/namespaces/Misc.d.ts.map +1 -1
  117. package/dist/namespaces/Missiondata.d.ts +3 -3
  118. package/dist/namespaces/Missiondata.d.ts.map +1 -1
  119. package/dist/namespaces/Netshopping.d.ts +1 -1
  120. package/dist/namespaces/Netshopping.d.ts.map +1 -1
  121. package/dist/namespaces/Network.d.ts +1528 -1536
  122. package/dist/namespaces/Network.d.ts.map +1 -1
  123. package/dist/namespaces/Network.js +2196 -2204
  124. package/dist/namespaces/Object.d.ts +244 -244
  125. package/dist/namespaces/Object.d.ts.map +1 -1
  126. package/dist/namespaces/Object.js +355 -355
  127. package/dist/namespaces/Pad.d.ts +43 -43
  128. package/dist/namespaces/Pad.d.ts.map +1 -1
  129. package/dist/namespaces/Pad.js +58 -58
  130. package/dist/namespaces/PedStatics.d.ts +21 -21
  131. package/dist/namespaces/PedStatics.d.ts.map +1 -1
  132. package/dist/namespaces/PedStatics.js +26 -26
  133. package/dist/namespaces/Perschar.d.ts +62 -62
  134. package/dist/namespaces/Perschar.d.ts.map +1 -1
  135. package/dist/namespaces/Perschar.js +91 -91
  136. package/dist/namespaces/Persistence.d.ts +30 -30
  137. package/dist/namespaces/Persistence.d.ts.map +1 -1
  138. package/dist/namespaces/Persistence.js +42 -42
  139. package/dist/namespaces/Physics.d.ts +207 -207
  140. package/dist/namespaces/Physics.d.ts.map +1 -1
  141. package/dist/namespaces/Physics.js +310 -310
  142. package/dist/namespaces/PlayerStatics.d.ts +72 -72
  143. package/dist/namespaces/PlayerStatics.d.ts.map +1 -1
  144. package/dist/namespaces/PlayerStatics.js +103 -103
  145. package/dist/namespaces/Population.d.ts +88 -88
  146. package/dist/namespaces/Population.d.ts.map +1 -1
  147. package/dist/namespaces/Population.js +116 -116
  148. package/dist/namespaces/Posse.d.ts +49 -49
  149. package/dist/namespaces/Posse.d.ts.map +1 -1
  150. package/dist/namespaces/Posse.js +79 -79
  151. package/dist/namespaces/Propset.d.ts +1 -1
  152. package/dist/namespaces/Propset.d.ts.map +1 -1
  153. package/dist/namespaces/Scripts.d.ts +3 -3
  154. package/dist/namespaces/Scripts.d.ts.map +1 -1
  155. package/dist/namespaces/Shapetest.d.ts +11 -11
  156. package/dist/namespaces/Shapetest.d.ts.map +1 -1
  157. package/dist/namespaces/Shapetest.js +13 -13
  158. package/dist/namespaces/Socialclub.d.ts +1 -1
  159. package/dist/namespaces/Socialclub.d.ts.map +1 -1
  160. package/dist/namespaces/Stats.d.ts +174 -174
  161. package/dist/namespaces/Stats.d.ts.map +1 -1
  162. package/dist/namespaces/Stats.js +240 -240
  163. package/dist/namespaces/Streaming.d.ts +127 -127
  164. package/dist/namespaces/Streaming.d.ts.map +1 -1
  165. package/dist/namespaces/Streaming.js +193 -193
  166. package/dist/namespaces/Task.d.ts +220 -220
  167. package/dist/namespaces/Task.d.ts.map +1 -1
  168. package/dist/namespaces/Task.js +299 -299
  169. package/dist/namespaces/Telemetry.d.ts +188 -188
  170. package/dist/namespaces/Telemetry.d.ts.map +1 -1
  171. package/dist/namespaces/Telemetry.js +249 -249
  172. package/dist/namespaces/Uiapps.d.ts +24 -24
  173. package/dist/namespaces/Uiapps.d.ts.map +1 -1
  174. package/dist/namespaces/Uiapps.js +33 -33
  175. package/dist/namespaces/Uistickyfeed.d.ts +16 -16
  176. package/dist/namespaces/Uistickyfeed.d.ts.map +1 -1
  177. package/dist/namespaces/Uistickyfeed.js +21 -21
  178. package/dist/namespaces/VehicleStatics.d.ts +2 -2
  179. package/dist/namespaces/VehicleStatics.d.ts.map +1 -1
  180. package/dist/namespaces/VolumeStatics.d.ts +64 -64
  181. package/dist/namespaces/VolumeStatics.d.ts.map +1 -1
  182. package/dist/namespaces/VolumeStatics.js +85 -85
  183. package/dist/namespaces/WeaponStatics.d.ts +262 -262
  184. package/dist/namespaces/WeaponStatics.d.ts.map +1 -1
  185. package/dist/namespaces/WeaponStatics.js +361 -361
  186. package/dist/namespaces/Zone.d.ts +2 -2
  187. package/dist/namespaces/Zone.d.ts.map +1 -1
  188. package/package.json +1 -1
  189. package/src/classes/AnimScene.ts +230 -230
  190. package/src/classes/BaseModel.ts +50 -50
  191. package/src/classes/BaseTask.ts +46 -46
  192. package/src/classes/Cam.ts +113 -113
  193. package/src/classes/Entity.ts +537 -532
  194. package/src/classes/Interior.ts +43 -43
  195. package/src/classes/Ped.ts +100 -95
  196. package/src/classes/PedTask.ts +1969 -1969
  197. package/src/classes/PersChar.ts +28 -28
  198. package/src/classes/Pickup.ts +13 -13
  199. package/src/classes/Player.ts +364 -364
  200. package/src/classes/Prop.ts +167 -162
  201. package/src/classes/PropSet.ts +1 -1
  202. package/src/classes/Vehicle.ts +5 -0
  203. package/src/classes/VehicleTask.ts +30 -30
  204. package/src/classes/Volume.ts +62 -62
  205. package/src/classes/Weapon.ts +517 -517
  206. package/src/namespaces/Aitransport.ts +102 -102
  207. package/src/namespaces/Animscene.ts +92 -92
  208. package/src/namespaces/Audio.ts +765 -765
  209. package/src/namespaces/Bounty.ts +46 -46
  210. package/src/namespaces/Brain.ts +22 -22
  211. package/src/namespaces/CamStatics.ts +747 -747
  212. package/src/namespaces/Collection.ts +112 -112
  213. package/src/namespaces/Companion.ts +34 -34
  214. package/src/namespaces/Compendium.ts +131 -131
  215. package/src/namespaces/Databinding.ts +170 -170
  216. package/src/namespaces/Dlc.ts +9 -9
  217. package/src/namespaces/EntityStatics.ts +237 -237
  218. package/src/namespaces/Event.ts +92 -92
  219. package/src/namespaces/Fire.ts +10 -10
  220. package/src/namespaces/Graphics.ts +1206 -1206
  221. package/src/namespaces/Hud.ts +647 -647
  222. package/src/namespaces/InteriorStatics.ts +66 -66
  223. package/src/namespaces/Inventory.ts +237 -237
  224. package/src/namespaces/Itemdatabase.ts +3 -3
  225. package/src/namespaces/Law.ts +2 -2
  226. package/src/namespaces/Map.ts +204 -204
  227. package/src/namespaces/Minigame.ts +100 -100
  228. package/src/namespaces/Misc.ts +5 -5
  229. package/src/namespaces/Missiondata.ts +3 -3
  230. package/src/namespaces/Netshopping.ts +1 -1
  231. package/src/namespaces/Network.ts +2217 -2225
  232. package/src/namespaces/Object.ts +381 -381
  233. package/src/namespaces/Pad.ts +67 -67
  234. package/src/namespaces/PedStatics.ts +33 -33
  235. package/src/namespaces/Perschar.ts +105 -105
  236. package/src/namespaces/Persistence.ts +48 -48
  237. package/src/namespaces/Physics.ts +326 -326
  238. package/src/namespaces/PlayerStatics.ts +113 -113
  239. package/src/namespaces/Population.ts +133 -133
  240. package/src/namespaces/Posse.ts +80 -80
  241. package/src/namespaces/Propset.ts +1 -1
  242. package/src/namespaces/Scripts.ts +3 -3
  243. package/src/namespaces/Shapetest.ts +14 -14
  244. package/src/namespaces/Socialclub.ts +1 -1
  245. package/src/namespaces/Stats.ts +266 -266
  246. package/src/namespaces/Streaming.ts +226 -226
  247. package/src/namespaces/Task.ts +527 -527
  248. package/src/namespaces/Telemetry.ts +300 -300
  249. package/src/namespaces/Uiapps.ts +39 -39
  250. package/src/namespaces/Uistickyfeed.ts +23 -23
  251. package/src/namespaces/VehicleStatics.ts +2 -2
  252. package/src/namespaces/VolumeStatics.ts +87 -87
  253. package/src/namespaces/WeaponStatics.ts +365 -365
  254. package/src/namespaces/Zone.ts +2 -2
@@ -11,275 +11,421 @@ 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
18
- */
19
- static setAudioFlag(flagName: string | null, toggle: boolean): void {
20
- inv<void>('0xB9EFD5C25018725A', flagName, toggle);
21
- }
22
-
23
- /**
24
- * @param vehicle
25
- * @param toggle
14
+ * @param p0
26
15
  */
27
- static setHornEnabled(vehicle: Vehicle, toggle: boolean): void {
28
- inv<void>('0x76D683C108594D0E', vehicle.handle, toggle);
16
+ static skipToNextScriptedConversationLine(p0: string | null): void {
17
+ inv<void>('0x9663FE6B7A61EB00', p0);
29
18
  }
30
19
 
31
20
  /**
32
- * p1 is possibly naSpeechAudibility, naSpeechType, or naSpeechEventTypeRequestPriority
33
- * SKIP_* - START_*
34
- *
35
- * @param speechEventType Refer to [enum: naSpeechEventType]
21
+ * @param ped
36
22
  * @param p1
37
- * @param p2
38
23
  */
39
- static N_0x0D7FD6A55FD63AEF(speechEventType: number, p1: number, p2: boolean): void {
40
- inv<void>('0x0D7FD6A55FD63AEF', speechEventType, p1, p2);
24
+ static stopCurrentPlayingSpeech(ped: Ped, p1: any): void {
25
+ inv<void>('0x79D2F0E66F81D90D', ped.handle, p1);
41
26
  }
42
27
 
43
- /**
44
- * @param p0
45
- * @param p1
46
- * @param p2
47
- * @param p3
48
- * @param p4
49
- */
50
- static N_0x06C5DF5EE444BC6B(p0: any, p1: any, p2: any, p3: any, p4: any): void {
51
- inv<void>('0x06C5DF5EE444BC6B', p0, p1, p2, p3, p4);
28
+ static clearConversationHistory(): void {
29
+ inv<void>('0x33D51F801CB16E4F');
52
30
  }
53
31
 
54
32
  /**
55
- * @param p0
33
+ * @param eventName
56
34
  * @returns
57
35
  */
58
- static N_0x2B9C37C01BF25EDB(p0: any): any {
59
- return inv<number>('0x2B9C37C01BF25EDB', p0);
36
+ static prepareMusicEvent(eventName: string | null): boolean {
37
+ return inv<boolean>('0x1E5185B72EF5158A', eventName, rai());
60
38
  }
61
39
 
62
40
  /**
63
- * @param p0
41
+ * Starts Audio Loop
42
+ * _PLAY_SOUND_FROM_ENTITY* - _PLAY_SOUND_FRONTEND*
43
+ *
44
+ * @param soundId
45
+ * @param soundName
46
+ * @param pos
47
+ * @param soundsetName
48
+ * @param p6
49
+ * @param p7
50
+ * @param p8
64
51
  */
65
- static N_0x64B956F4E761DF5C(p0: any): void {
66
- inv<void>('0x64B956F4E761DF5C', p0);
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);
67
54
  }
68
55
 
69
56
  /**
70
57
  * @param p0
58
+ * @param p1
59
+ * @param p2
71
60
  */
72
- static setAudioOnlineTransitionStage(p0: string | null): void {
73
- inv<void>('0x9B1FC259187C97C0', p0);
61
+ static N_0x8D29FDF565DED9AE(p0: any, p1: any, p2: any): void {
62
+ inv<void>('0x8D29FDF565DED9AE', p0, p1, p2);
74
63
  }
75
64
 
76
65
  /**
77
- * @param streamId
66
+ * @param eventName
67
+ * @returns
78
68
  */
79
- static playStreamFrontend(streamId: number): void {
80
- inv<void>('0x58FCE43488F9F5F4', streamId);
69
+ static triggerMusicEventWithHash(eventName: string | number): any {
70
+ return inv<number>('0x05D6195FB4D428F4', _h(eventName));
81
71
  }
82
72
 
83
73
  /**
84
- * _IS_SOUND_RUNNING(?)
85
- *
86
- * @param audioName
87
- * @param audioRef
74
+ * @param soundId
88
75
  * @returns
89
76
  */
90
- static N_0x580D71DFE0088E34(audioName: string | null, audioRef: string | null): boolean {
91
- return inv<boolean>('0x580D71DFE0088E34', audioName, audioRef, rai());
77
+ static hasSoundIdFinished(soundId: number): any {
78
+ return inv<number>('0x84848E1C0FC67DBB', soundId);
92
79
  }
93
80
 
94
81
  /**
95
- * nullsub, doesn't do anything
96
- *
97
- * @param p0
82
+ * @param scene
98
83
  */
99
- static registerScriptWithAudio(p0: boolean): void {
100
- inv<void>('0xC6ED9D5092438D91', p0);
84
+ static stopAudioScene(scene: string | null): void {
85
+ inv<void>('0xDFE8422B3B94E688', scene);
101
86
  }
102
87
 
103
88
  /**
104
89
  * @param p0
105
90
  * @param p1
106
91
  */
107
- static N_0x35B8C070E0C16E2F(p0: any, p1: any): void {
108
- inv<void>('0x35B8C070E0C16E2F', p0, p1);
92
+ static N_0xA6847BBA4FCDD13F(p0: any, p1: any): void {
93
+ inv<void>('0xA6847BBA4FCDD13F', p0, p1);
109
94
  }
110
95
 
111
- static N_0x138ADB94F8B90616(): void {
112
- inv<void>('0x138ADB94F8B90616');
96
+ /**
97
+ * @param p0
98
+ * @returns
99
+ */
100
+ static isScriptedSpeechPlaying(p0: any): boolean {
101
+ return inv<boolean>('0xCC9AA18DCC7084F4', p0, rai());
113
102
  }
114
103
 
115
104
  /**
116
- * @param p0
105
+ * @param ped
117
106
  * @param p1
118
- * @param p2
107
+ * @param hash
119
108
  */
120
- static N_0x380A2E353AD30917(p0: any, p1: any, p2: any): void {
121
- inv<void>('0x380A2E353AD30917', p0, p1, p2);
109
+ static useFootstepScriptSweeteners(ped: Ped, p1: boolean, hash: string | number): void {
110
+ inv<void>('0xBF4DC1784BE94DFA', ped.handle, p1, _h(hash));
122
111
  }
123
112
 
124
113
  /**
125
- * @param convoRoot
126
- * @returns
114
+ * whistleConfig: Ped.WhistlePitch (0.0 - 1.0), Ped.WhistleClarity (0.0 - 1.0), Ped.WhistleShape (0.0 - 10.0)
115
+ *
116
+ * @param ped
117
+ * @param whistleConfig
118
+ * @param value
127
119
  */
128
- static createNewScriptedConversation(convoRoot: string | null): any {
129
- return inv<number>('0xD2C91A0B572AAE56', convoRoot);
120
+ static setWhistleConfigForPed(ped: Ped, whistleConfig: string | null, value: number): void {
121
+ inv<void>('0x9963681A8BC69BF3', ped.handle, whistleConfig, f(value));
130
122
  }
131
123
 
132
124
  /**
133
- * @param p0
125
+ * @param ped
134
126
  * @param p1
135
127
  * @param p2
136
- * @returns
137
128
  */
138
- static N_0x7678FE0455ED1145(p0: any, p1: any, p2: any): any {
139
- return inv<number>('0x7678FE0455ED1145', p0, p1, p2);
129
+ static playAnimalVocalizationPheromoneVialResponse(ped: Ped, p1: string | number, p2: boolean): void {
130
+ inv<void>('0x0E53530D9B2DB01D', ped.handle, _h(p1), p2);
140
131
  }
141
132
 
142
133
  /**
143
- * @param entity
144
- * @param groupName
145
- * @param p2
134
+ * Only used in R* SP Scripts
135
+ * Old Name: _UPDATE_SOUND_POSITION
136
+ *
137
+ * @param soundId
138
+ * @param pos
146
139
  */
147
- static addEntityToAudioMixGroup(entity: Entity, groupName: string | null, p2: number): void {
148
- inv<void>('0x153973AB99FE8980', entity.handle, groupName, f(p2));
140
+ static updateSoundCoord(soundId: number, pos: Vector3): void {
141
+ inv<void>('0x0286617C8FC50A53', soundId, f(pos.x), f(pos.y), f(pos.z));
149
142
  }
150
143
 
151
144
  /**
152
- * @param ped
145
+ * @param ambientZone
153
146
  * @param p1
147
+ * @param p2
154
148
  */
155
- static stopCurrentPlayingAmbientSpeech(ped: Ped, p1: any): void {
156
- inv<void>('0xB8BEC0CA6F0EDB0F', ped.handle, p1);
149
+ static setAmbientZoneStatePersistent(ambientZone: string | null, p1: boolean, p2: boolean): void {
150
+ inv<void>('0x1D6650420CEC9D3B', ambientZone, p1, p2);
157
151
  }
158
152
 
159
153
  /**
160
- * @param p0
161
- * @param ped
162
- * @param p2
163
- * @returns
154
+ * speechEventType: https://github.com/Halen84/RDR3-Native-Flags-And-Enums/tree/main/naSpeechEventType
155
+ * SKIP_* - START_*
156
+ *
157
+ * @param speechEventType
164
158
  */
165
- static isPedInCurrentConversation(p0: string | null, ped: Ped, p2: any): boolean {
166
- return inv<boolean>('0x049E937F18F4020C', p0, ped.handle, p2, rai());
159
+ static N_0x660A8F876DF1D4F8(speechEventType: number): void {
160
+ inv<void>('0x660A8F876DF1D4F8', speechEventType);
167
161
  }
168
162
 
169
163
  /**
170
164
  * @param p0
171
- * @returns
165
+ * @param p1
172
166
  */
173
- static isScriptedConversionOngoing(p0: string | null): any {
174
- return inv<number>('0xF01C570E0A0A1E67', p0);
167
+ static N_0x139A4B9DF2D26CBF(p0: any, p1: any): void {
168
+ inv<void>('0x139A4B9DF2D26CBF', p0, p1);
175
169
  }
176
170
 
177
171
  /**
178
- * @param soundsetName
172
+ * @param pos
173
+ * @param streamId
179
174
  */
180
- static releaseSoundset(soundsetName: string | null): void {
181
- inv<void>('0x531A78D6BF27014B', soundsetName);
175
+ static playStreamFromPosition(pos: Vector3, streamId: number): void {
176
+ inv<void>('0x21442F412E8DE56B', f(pos.x), f(pos.y), f(pos.z), streamId);
182
177
  }
183
178
 
184
179
  /**
180
+ * @param entity
185
181
  * @returns
186
182
  */
187
- static getSoundId(): number {
188
- return inv<number>('0x430386FE9BF80B45', rai());
183
+ static getEntityAudioMixGroup(entity: Entity): number {
184
+ return (inv<number>('0x8B25A18E390F75BF', entity.handle, rai())) & 0xFFFFFFFF;
189
185
  }
190
186
 
191
187
  /**
192
- * @param listeningToPed
193
- * @param ped
194
- * @param listenerName
188
+ * @param convoRoot
189
+ * @returns
195
190
  */
196
- static N_0xA2323A2EAE32A290(listeningToPed: Ped, ped: Ped, listenerName: string | null): void {
197
- inv<void>('0xA2323A2EAE32A290', listeningToPed.handle, ped.handle, listenerName);
191
+ static isScriptedConversationCreated(convoRoot: string | null): any {
192
+ return inv<number>('0xD89504D9D7D5057D', convoRoot);
198
193
  }
199
194
 
200
- /**
201
- * @param p0
202
- * @returns
203
- */
204
- static N_0xF0EE69F500952FA5(p0: any): any {
205
- return inv<number>('0xF0EE69F500952FA5', p0);
195
+ static N_0xA2B851605748AD0E(): void {
196
+ inv<void>('0xA2B851605748AD0E');
206
197
  }
207
198
 
208
199
  /**
209
- * Old name: AUDIO_IS_SCRIPTED_MUSIC_PLAYING
210
- *
200
+ * @param convoRoot
211
201
  * @returns
212
202
  */
213
- static isMusicPlaying(): boolean {
214
- return inv<boolean>('0x845FFC3A4FEEFA3E', rai());
203
+ static N_0x0CB3D1919E8D7CBA(convoRoot: string | null): boolean {
204
+ return inv<boolean>('0x0CB3D1919E8D7CBA', convoRoot, rai());
215
205
  }
216
206
 
217
207
  /**
218
- * Used in Script Function NET_CAMP_CLIENT_UPDATE_PED_ROLE_STATE_SHOP: hash exists! Playing hash
208
+ * Name: ROPE_SETTINGS_DEFAULT
219
209
  *
220
- * @param ped
221
- * @param p1
222
- */
223
- static N_0xB93A769B8B726950(ped: Ped, p1: string | number): void {
224
- inv<void>('0xB93A769B8B726950', ped.handle, _h(p1));
225
- }
226
-
227
- /**
228
- * @param variableName
229
- * @param variableValue
230
- * @param audioName
231
- * @param audioRef
210
+ * @param ropeId
211
+ * @param name
232
212
  */
233
- static setVariableOnSoundWithName(variableName: string | null, variableValue: number, audioName: string | null, audioRef: string | null): void {
234
- inv<void>('0x9821B68CD3E05F2B', variableName, f(variableValue), audioName, audioRef);
213
+ static N_0xF092B6030D6FD49C(ropeId: number, name: string | null): void {
214
+ inv<void>('0xF092B6030D6FD49C', ropeId, name);
235
215
  }
236
216
 
237
217
  /**
238
218
  * @param p0
239
- * @param p1
219
+ * @param currentScriptedConvoLine
220
+ * @returns
240
221
  */
241
- static N_0xD733528B6C35647A(p0: any, p1: any): void {
242
- inv<void>('0xD733528B6C35647A', p0, p1);
222
+ static N_0x254B0241E964B450(p0: string | null, currentScriptedConvoLine: number): Ped | null {
223
+ return createFromHandle<Ped>('Ped', inv<number>('0x254B0241E964B450', p0, currentScriptedConvoLine, rai()));
243
224
  }
244
225
 
245
226
  /**
246
- * @param ambientZone
247
- * @param p1
227
+ * @param ped
228
+ * @param vocalizationName
229
+ * @param p2
248
230
  */
249
- static clearAmbientZoneListState(ambientZone: string | null, p1: boolean): void {
250
- inv<void>('0x120C48C614909FA4', ambientZone, p1);
231
+ static playAnimalVocalization(ped: Ped, vocalizationName: string | null, p2: boolean): void {
232
+ inv<void>('0xEE066C7006C49C0A', ped.handle, vocalizationName, p2);
251
233
  }
252
234
 
253
235
  /**
254
236
  * @param p0
255
237
  * @param p1
256
238
  */
257
- static N_0xE891504B2F0E2DBA(p0: any, p1: any): void {
258
- inv<void>('0xE891504B2F0E2DBA', p0, p1);
239
+ static setPedInteriorWallaDensity(p0: number, p1: number): void {
240
+ inv<void>('0x8BF907833BE275DE', f(p0), f(p1));
259
241
  }
260
242
 
261
243
  /**
262
- * @param ped
244
+ * @param p0
263
245
  * @param p1
264
- * @returns
265
246
  */
266
- static N_0xDF947FE0D551684E(ped: Ped, p1: string | null): boolean {
267
- return inv<boolean>('0xDF947FE0D551684E', ped.handle, p1, rai());
247
+ static N_0xD47D47EFBF103FB8(p0: any, p1: any): void {
248
+ inv<void>('0xD47D47EFBF103FB8', p0, p1);
268
249
  }
269
250
 
270
251
  /**
271
- * @param entity
252
+ * @param p0
272
253
  * @param p1
273
254
  */
274
- static N_0xE9694B2D6CB87B06(entity: Entity, p1: any): void {
275
- inv<void>('0xE9694B2D6CB87B06', entity.handle, p1);
255
+ static N_0x5BC885EBD75FAA7D(p0: any, p1: any): void {
256
+ inv<void>('0x5BC885EBD75FAA7D', p0, p1);
276
257
  }
277
258
 
278
259
  /**
279
- * @param audioBank
280
- */
281
- static releaseNamedScriptAudioBank(audioBank: string | null): void {
282
- inv<void>('0x77ED170667F50170', audioBank);
260
+ * Valid pain IDs: 0..12 these names are not official, but here is a list of the IDs:
261
+ * 1 burning,
262
+ * 2 drowning,
263
+ * 3 coughing,
264
+ * 4 nothing,
265
+ * 5 nothing,
266
+ * 6 coughing_2,
267
+ * 7 nothing,
268
+ * 8 nothing,
269
+ * 9 hurtingSick?,
270
+ * 10 hurtingFall?,
271
+ * 11 nothing,
272
+ * 12 choking
273
+ *
274
+ * @param ped
275
+ * @param painId
276
+ * @param p2
277
+ * @param p3
278
+ * @param isNetwork
279
+ */
280
+ static playPain(ped: Ped, painId: number, p2: number, p3: boolean, isNetwork: boolean): void {
281
+ inv<void>('0xBC9AE166038A5CEC', ped.handle, painId, f(p2), p3, isNetwork);
282
+ }
283
+
284
+ /**
285
+ * *STOP_AUDIO**
286
+ *
287
+ * @param p0
288
+ */
289
+ static N_0x6AB944DF68B512D3(p0: any): void {
290
+ inv<void>('0x6AB944DF68B512D3', p0);
291
+ }
292
+
293
+ static N_0xDAD6CD07CAA4F382(): void {
294
+ inv<void>('0xDAD6CD07CAA4F382');
295
+ }
296
+
297
+ /**
298
+ * @param ped
299
+ * @param p1
300
+ */
301
+ static stopCurrentPlayingAmbientSpeech(ped: Ped, p1: any): void {
302
+ inv<void>('0xB8BEC0CA6F0EDB0F', ped.handle, p1);
303
+ }
304
+
305
+ /**
306
+ * @param p0
307
+ * @param ped
308
+ * @param p2
309
+ * @returns
310
+ */
311
+ static isPedInCurrentConversation(p0: string | null, ped: Ped, p2: any): boolean {
312
+ return inv<boolean>('0x049E937F18F4020C', p0, ped.handle, p2, rai());
313
+ }
314
+
315
+ /**
316
+ * @param p0
317
+ * @returns
318
+ */
319
+ static isScriptedConversionOngoing(p0: string | null): any {
320
+ return inv<number>('0xF01C570E0A0A1E67', p0);
321
+ }
322
+
323
+ /**
324
+ * @param soundsetName
325
+ */
326
+ static releaseSoundset(soundsetName: string | null): void {
327
+ inv<void>('0x531A78D6BF27014B', soundsetName);
328
+ }
329
+
330
+ /**
331
+ * @returns
332
+ */
333
+ static getSoundId(): number {
334
+ return inv<number>('0x430386FE9BF80B45', rai());
335
+ }
336
+
337
+ /**
338
+ * @param listeningToPed
339
+ * @param ped
340
+ * @param listenerName
341
+ */
342
+ static N_0xA2323A2EAE32A290(listeningToPed: Ped, ped: Ped, listenerName: string | null): void {
343
+ inv<void>('0xA2323A2EAE32A290', listeningToPed.handle, ped.handle, listenerName);
344
+ }
345
+
346
+ /**
347
+ * @param p0
348
+ * @returns
349
+ */
350
+ static N_0xF0EE69F500952FA5(p0: any): any {
351
+ return inv<number>('0xF0EE69F500952FA5', p0);
352
+ }
353
+
354
+ /**
355
+ * Old name: AUDIO_IS_SCRIPTED_MUSIC_PLAYING
356
+ *
357
+ * @returns
358
+ */
359
+ static isMusicPlaying(): boolean {
360
+ return inv<boolean>('0x845FFC3A4FEEFA3E', rai());
361
+ }
362
+
363
+ /**
364
+ * Used in Script Function NET_CAMP_CLIENT_UPDATE_PED_ROLE_STATE_SHOP: hash exists! Playing hash
365
+ *
366
+ * @param ped
367
+ * @param p1
368
+ */
369
+ static N_0xB93A769B8B726950(ped: Ped, p1: string | number): void {
370
+ inv<void>('0xB93A769B8B726950', ped.handle, _h(p1));
371
+ }
372
+
373
+ /**
374
+ * @param variableName
375
+ * @param variableValue
376
+ * @param audioName
377
+ * @param audioRef
378
+ */
379
+ static setVariableOnSoundWithName(variableName: string | null, variableValue: number, audioName: string | null, audioRef: string | null): void {
380
+ inv<void>('0x9821B68CD3E05F2B', variableName, f(variableValue), audioName, audioRef);
381
+ }
382
+
383
+ /**
384
+ * @param p0
385
+ * @param p1
386
+ */
387
+ static N_0xD733528B6C35647A(p0: any, p1: any): void {
388
+ inv<void>('0xD733528B6C35647A', p0, p1);
389
+ }
390
+
391
+ /**
392
+ * @param ambientZone
393
+ * @param p1
394
+ */
395
+ static clearAmbientZoneListState(ambientZone: string | null, p1: boolean): void {
396
+ inv<void>('0x120C48C614909FA4', ambientZone, p1);
397
+ }
398
+
399
+ /**
400
+ * @param p0
401
+ * @param p1
402
+ */
403
+ static N_0xE891504B2F0E2DBA(p0: any, p1: any): void {
404
+ inv<void>('0xE891504B2F0E2DBA', p0, p1);
405
+ }
406
+
407
+ /**
408
+ * @param ped
409
+ * @param p1
410
+ * @returns
411
+ */
412
+ static N_0xDF947FE0D551684E(ped: Ped, p1: string | null): boolean {
413
+ return inv<boolean>('0xDF947FE0D551684E', ped.handle, p1, rai());
414
+ }
415
+
416
+ /**
417
+ * @param entity
418
+ * @param p1
419
+ */
420
+ static N_0xE9694B2D6CB87B06(entity: Entity, p1: any): void {
421
+ inv<void>('0xE9694B2D6CB87B06', entity.handle, p1);
422
+ }
423
+
424
+ /**
425
+ * @param audioBank
426
+ */
427
+ static releaseNamedScriptAudioBank(audioBank: string | null): void {
428
+ inv<void>('0x77ED170667F50170', audioBank);
283
429
  }
284
430
 
285
431
  /**
@@ -416,305 +562,415 @@ export class Audio {
416
562
  }
417
563
 
418
564
  /**
419
- * Only used in R* SP Script cv_mus_shared
565
+ * nullsub, doesn't do anything
420
566
  *
421
- * @param convoRoot
422
- * @param animScene
423
- * @returns
567
+ * @param active
424
568
  */
425
- static N_0x79F9C57B8D0DFE90(convoRoot: string | null, animScene: AnimScene): boolean {
426
- return inv<boolean>('0x79F9C57B8D0DFE90', convoRoot, animScene.handle, rai());
569
+ static setGpsActive(active: boolean): void {
570
+ inv<void>('0x3BD3F52BA9B1E4E8', active);
427
571
  }
428
572
 
429
- static forcePedPanicWalla(): void {
430
- inv<void>('0x062D5EAD4DA2FA6A');
573
+ /**
574
+ * Old name: _PLAY_SOUND_FROM_POSITION
575
+ *
576
+ * @param SoundName
577
+ * @param pos
578
+ * @param SetName
579
+ * @param bOverNetwork
580
+ * @param nNetworkRange
581
+ * @param isExteriorLoc
582
+ * @param p8
583
+ */
584
+ static playSoundFromCoord(SoundName: string | null, pos: Vector3, SetName: string | null, bOverNetwork: boolean, nNetworkRange: number, isExteriorLoc: boolean, p8: number): void {
585
+ inv<void>('0xCCE219C922737BFA', SoundName, f(pos.x), f(pos.y), f(pos.z), SetName, bOverNetwork, nNetworkRange, isExteriorLoc, p8);
431
586
  }
432
587
 
433
588
  /**
434
- * @param p0
435
- * @param p1
436
- * @param p2
589
+ * @param streamName
590
+ * @param soundSet
591
+ * @returns
437
592
  */
438
- static N_0xF64034D533CE8AAC(p0: any, p1: any, p2: any): void {
439
- inv<void>('0xF64034D533CE8AAC', p0, p1, p2);
593
+ static loadStream(streamName: string | null, soundSet: string | null): boolean {
594
+ return inv<boolean>('0x1F1F957154EC51DF', streamName, soundSet, rai());
440
595
  }
441
596
 
442
597
  /**
443
598
  * @param p0
444
599
  * @param p1
445
- * @param p2
446
- * @param p3
447
- * @param p4
448
- * @param p5
449
600
  */
450
- static N_0x6DA15746D5CC1A92(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any): void {
451
- inv<void>('0x6DA15746D5CC1A92', p0, p1, p2, p3, p4, p5);
601
+ static N_0x9EB779765E68C52E(p0: any, p1: any): void {
602
+ inv<void>('0x9EB779765E68C52E', p0, p1);
452
603
  }
453
604
 
454
- /**
455
- * Params: p5 seems to be always 0
456
- *
457
- * @param soundId
458
- * @param soundName
459
- * @param entity
460
- * @param soundsetName
461
- * @param p4
462
- * @param p5
463
- */
464
- static playSoundFromEntityWithSet(soundId: number, soundName: string | null, entity: Entity, soundsetName: string | null, p4: boolean, p5: any): void {
465
- inv<void>('0xF1C5310FEAA36B48', soundId, soundName, entity.handle, soundsetName, p4, p5);
605
+ static N_0x43037ABFE214A851(): void {
606
+ inv<void>('0x43037ABFE214A851');
466
607
  }
467
608
 
468
609
  /**
469
- * @param p0
470
- * @param p1
471
- * @param p2
472
- * @param p3
473
- * @param p4
474
- * @param p5
475
- * @param p6
476
- * @param p7
610
+ * @returns
477
611
  */
478
- static N_0x5AE0CB5F35F034FD(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any, p6: any, p7: any): void {
479
- inv<void>('0x5AE0CB5F35F034FD', p0, p1, p2, p3, p4, p5, p6, p7);
612
+ static N_0xA6A3A3F96B8B030E(): any {
613
+ return inv<number>('0xA6A3A3F96B8B030E');
480
614
  }
481
615
 
482
616
  /**
483
617
  * @param p0
484
- * @param currentScriptedConvoLine
485
618
  * @returns
486
619
  */
487
- static N_0x935DBD96D4A3DA1F(p0: string | null, currentScriptedConvoLine: number): number {
488
- return inv<number>('0x935DBD96D4A3DA1F', p0, currentScriptedConvoLine, rai());
620
+ static isScriptedConversationPlaying(p0: string | null): any {
621
+ return inv<number>('0x1ECC76792F661CF5', p0);
489
622
  }
490
623
 
491
624
  /**
492
625
  * @param p0
626
+ * @param p1
493
627
  */
494
- static N_0xDC93F0948F2C28F4(p0: any): void {
495
- inv<void>('0xDC93F0948F2C28F4', p0);
628
+ static setPortalSettingsOverride(p0: string | null, p1: string | null): void {
629
+ inv<void>('0x044DBAD7A7FA2BE5', p0, p1);
496
630
  }
497
631
 
498
632
  /**
499
- * p1: Entity.Relationship
500
- * p2: Player, Enemy, Teammate, Neutral
501
- *
502
633
  * @param ped
503
- * @param p1
504
- * @param p2
634
+ * @param disabled
635
+ * @returns
505
636
  */
506
- static setSoundRelationshipOnPed(ped: Ped, p1: string | null, p2: string | null): void {
507
- inv<void>('0x2E31ACA7477CF00F', ped.handle, p1, p2);
637
+ static setIsScriptedSpeechDisabled(ped: Ped, disabled: boolean): any {
638
+ return inv<number>('0xB2DE3AEBE31150E2', ped.handle, disabled);
508
639
  }
509
640
 
510
641
  /**
511
- * @param audioName
512
- * @param audioRef
642
+ * @param p0
643
+ * @param p1
644
+ * @param p2
645
+ * @param p3
646
+ * @returns
513
647
  */
514
- static stopSoundWithName(audioName: string | null, audioRef: string | null): void {
515
- inv<void>('0x0F2A2175734926D8', audioName, audioRef);
648
+ static N_0x9D6DEC9791A4E501(p0: any, p1: any, p2: any, p3: any): any {
649
+ return inv<number>('0x9D6DEC9791A4E501', p0, p1, p2, p3);
650
+ }
651
+
652
+ /**
653
+ * Old Name: _STOP_SOUND_WITH_ID
654
+ *
655
+ * @param soundId
656
+ */
657
+ static stopSound(soundId: number): void {
658
+ inv<void>('0x3210BCB36AF7621B', soundId);
516
659
  }
517
660
 
518
661
  /**
519
662
  * @param p0
520
- * @param p1
521
663
  * @returns
522
664
  */
523
- static N_0xC369E2234E34A0CA(p0: any, p1: any): any {
524
- return inv<number>('0xC369E2234E34A0CA', p0, p1);
665
+ static N_0xF336E9F989B3518F(p0: string | null): number {
666
+ return inv<number>('0xF336E9F989B3518F', p0, rai());
525
667
  }
526
668
 
527
669
  /**
528
670
  * @param p0
529
671
  * @param p1
672
+ */
673
+ static N_0xFCDEC42B1C78B7F8(p0: any, p1: any): void {
674
+ inv<void>('0xFCDEC42B1C78B7F8', p0, p1);
675
+ }
676
+
677
+ /**
678
+ * @param ped
679
+ */
680
+ static N_0x8E901B65206C2D3E(ped: Ped): void {
681
+ inv<void>('0x8E901B65206C2D3E', ped.handle);
682
+ }
683
+
684
+ /**
685
+ * @param p0
686
+ */
687
+ static N_0x7E176C676F8652A9(p0: any): void {
688
+ inv<void>('0x7E176C676F8652A9', p0);
689
+ }
690
+
691
+ /**
692
+ * item: FUSE, value returned from 0x2E1CDC1FF3B8473E
693
+ * soundSet: HUD_SHOP_SOUNDSET, COMPANIONS_ROBBERIES_SOUNDSET
694
+ *
695
+ * @param item
696
+ * @param soundSet
530
697
  * @returns
531
698
  */
532
- static N_0x72E4D1C4639BC465(p0: Entity, p1: any): any {
533
- return inv<number>('0x72E4D1C4639BC465', p0.handle, p1);
699
+ static isScriptedAudioCustom(item: string | number, soundSet: string | number): any {
700
+ return inv<number>('0x6DF942C4179BE5AB', _h(item), _h(soundSet));
534
701
  }
535
702
 
536
703
  /**
537
- * @param audioName
538
- * @param soundsetName
704
+ * @param p0
539
705
  * @returns
540
706
  */
541
- static hasSoundAudioNameFinished(audioName: string | null, soundsetName: string | null): any {
542
- return inv<number>('0x714A0EA7DE1167BE', audioName, soundsetName);
707
+ static N_0xD05A460328560477(p0: any): any {
708
+ return inv<number>('0xD05A460328560477', p0);
543
709
  }
544
710
 
545
711
  /**
546
- * *UNLOAD*[A-C]* - USE_*
712
+ * Checks if the ped can play the speech or has the speech file, last parameter is usually false.
547
713
  *
548
- * @param speechContext
714
+ * @param ped
715
+ * @param speechName
716
+ * @param unk
717
+ * @returns
549
718
  */
550
- static unloadSpeechContext(speechContext: string | null): void {
551
- inv<void>('0x87E6302FC61208CC', speechContext);
719
+ static doesContextExistForThisPed(ped: Ped, speechName: string | null, unk: boolean): boolean {
720
+ return inv<boolean>('0x49B99BF3FDA89A7A', ped.handle, speechName, unk, rai());
552
721
  }
553
722
 
554
723
  /**
555
- * @param p0
556
- * @param p1
724
+ * @returns
557
725
  */
558
- static N_0x3A3BE6B920525237(p0: any, p1: any): void {
559
- inv<void>('0x3A3BE6B920525237', p0, p1);
726
+ static N_0x2B101AD9F651243A(): any {
727
+ return inv<number>('0x2B101AD9F651243A');
560
728
  }
561
729
 
562
730
  /**
563
731
  * @param p0
564
732
  * @returns
565
733
  */
566
- static N_0xC68C02DE259C927C(p0: any): any {
567
- return inv<number>('0xC68C02DE259C927C', p0);
734
+ static N_0x131EC9247E7A2903(p0: any): any {
735
+ return inv<number>('0x131EC9247E7A2903', p0);
568
736
  }
569
737
 
570
738
  /**
571
739
  * @param ped
572
- * @param toggle
740
+ * @param name
573
741
  */
574
- static disablePedPainAudio(ped: Ped, toggle: boolean): void {
575
- inv<void>('0xA9A41C1E940FB0E8', ped.handle, toggle);
742
+ static setAmbientVoiceName(ped: Ped, name: string | null): void {
743
+ inv<void>('0x6C8065A3B780185B', ped.handle, name);
576
744
  }
577
745
 
578
746
  /**
579
- * Old name: _FORCE_VEHICLE_ENGINE_AUDIO
747
+ * @param play
748
+ */
749
+ static playEndCreditsMusic(play: boolean): void {
750
+ inv<void>('0xCD536C4D33DCC900', play);
751
+ }
752
+
753
+ /**
754
+ * @param eventName
755
+ * @returns
756
+ */
757
+ static cancelMusicEvent(eventName: string | null): boolean {
758
+ return inv<boolean>('0x5B17A90291133DA5', eventName, rai());
759
+ }
760
+
761
+ /**
762
+ * @param ped
763
+ * @returns
764
+ */
765
+ static isAmbientSpeechDisabled(ped: Ped): boolean {
766
+ return inv<boolean>('0x932C2D096A2C3FFF', ped.handle, rai());
767
+ }
768
+
769
+ /**
770
+ * Not implemented.
580
771
  *
581
- * @param vehicle
772
+ * @param animal
773
+ * @param mood
774
+ */
775
+ static setAnimalMood(animal: Ped, mood: number): void {
776
+ inv<void>('0xCC97B29285B1DC3B', animal.handle, mood);
777
+ }
778
+
779
+ /**
780
+ * @param convoRoot
781
+ * @param p1
782
+ * @param p2
783
+ * @param clone
784
+ */
785
+ static startScriptConversation(convoRoot: string | null, p1: boolean, p2: boolean, clone: boolean): void {
786
+ inv<void>('0x6B17C62C9635D2DC', convoRoot, p1, p2, clone);
787
+ }
788
+
789
+ /**
790
+ * @param p0
791
+ */
792
+ static N_0xEB4D592620B8C209(p0: any): void {
793
+ inv<void>('0xEB4D592620B8C209', p0);
794
+ }
795
+
796
+ static releaseScriptAudioBank(): void {
797
+ inv<void>('0x7A2D8AD0A9EB9C3F');
798
+ }
799
+
800
+ static N_0x4BE3EC91C01F0FE8(): void {
801
+ inv<void>('0x4BE3EC91C01F0FE8');
802
+ }
803
+
804
+ /**
805
+ * @param zoneName
806
+ * @param isEnabled
807
+ * @param p2
808
+ */
809
+ static setAmbientZoneState(zoneName: string | null, isEnabled: boolean, p2: boolean): void {
810
+ inv<void>('0xBDA07E5950085E46', zoneName, isEnabled, p2);
811
+ }
812
+
813
+ /**
582
814
  * @param audioName
815
+ * @param entity
816
+ * @param audioRef
817
+ * @param isNetwork
818
+ * @param p4
819
+ * @param p5
583
820
  */
584
- static forceUseAudioGameObject(vehicle: Vehicle, audioName: string | null): void {
585
- inv<void>('0x4F0C413926060B38', vehicle.handle, audioName);
821
+ static playSoundFromEntity(audioName: string | null, entity: Entity, audioRef: string | null, isNetwork: boolean, p4: any, p5: any): void {
822
+ inv<void>('0x6FB1DA3CA9DA7D90', audioName, entity.handle, audioRef, isNetwork, p4, p5);
823
+ }
824
+
825
+ /**
826
+ * @param ped
827
+ * @returns
828
+ */
829
+ static isAmbientSpeechPlaying(ped: Ped): boolean {
830
+ return inv<boolean>('0x9072C8B49907BFAD', ped.handle, rai());
831
+ }
832
+
833
+ /**
834
+ * @param ambientZone
835
+ * @param pos
836
+ * @param heading
837
+ */
838
+ static setAmbientZonePosition(ambientZone: string | null, pos: Vector3, heading: number): void {
839
+ inv<void>('0x3743CE6948194349', ambientZone, f(pos.x), f(pos.y), f(pos.z), f(heading));
586
840
  }
587
841
 
588
842
  /**
589
- * @param soundName
590
843
  * @param entity
591
- * @param soundsetName
592
- * @param soundId
593
844
  * @returns
594
845
  */
595
- static prepareSoundWithEntity(soundName: string | null, entity: Entity, soundsetName: string | null, soundId: number): any {
596
- return inv<number>('0x4AD019591E94C064', soundName, entity.handle, soundsetName, soundId);
846
+ static N_0x2FFF4A78384AFFDF(entity: Entity): any {
847
+ return inv<number>('0x2FFF4A78384AFFDF', entity.handle);
848
+ }
849
+
850
+ /**
851
+ * @param emitterName
852
+ * @param toggle
853
+ */
854
+ static setStaticEmitterEnabled(emitterName: string | null, toggle: boolean): void {
855
+ inv<void>('0x399D2D3B33F1B8EB', emitterName, toggle);
856
+ }
857
+
858
+ /**
859
+ * @param ped
860
+ * @param toggle
861
+ */
862
+ static setPedIsDrunk(ped: Ped, toggle: boolean): void {
863
+ inv<void>('0x95D2D383D5396B8A', ped.handle, toggle);
597
864
  }
598
865
 
599
866
  /**
600
867
  * @param p0
601
868
  * @param p1
602
869
  * @param p2
870
+ * @param p3
871
+ * @param p4
603
872
  */
604
- static stopAllScriptedConversions(p0: boolean, p1: boolean, p2: boolean): void {
605
- inv<void>('0x36559148B78853B3', p0, p1, p2);
873
+ static N_0x839C9F124BE74D94(p0: any, p1: any, p2: any, p3: any, p4: any): void {
874
+ inv<void>('0x839C9F124BE74D94', p0, p1, p2, p3, p4);
606
875
  }
607
876
 
608
877
  /**
609
- * @param entity
878
+ * @param ambientZone
610
879
  * @param p1
880
+ * @param p2
611
881
  */
612
- static removeEntityFromAudioMixGroup(entity: Entity, p1: number): void {
613
- inv<void>('0x18EB48CFC41F2EA0', entity.handle, f(p1));
882
+ static setAmbientZoneListStatePersistent(ambientZone: string | null, p1: boolean, p2: boolean): void {
883
+ inv<void>('0xF3638DAE8C4045E1', ambientZone, p1, p2);
614
884
  }
615
885
 
616
886
  /**
617
- * *AUDIO_IS** - _AUDIO_TRIGGER*
887
+ * @param p0
888
+ * @param p1
889
+ * @param p2
890
+ * @param p3
891
+ * @param p4
618
892
  */
619
- static N_0x7455CD705F7E933E(): void {
620
- inv<void>('0x7455CD705F7E933E');
893
+ static pauseScriptedConversation(p0: string | null, p1: boolean, p2: boolean, p3: boolean, p4: boolean): void {
894
+ inv<void>('0x8530AD776CD72B12', p0, p1, p2, p3, p4);
621
895
  }
622
896
 
623
897
  /**
624
- * @param soundId
898
+ * @param p0
625
899
  */
626
- static releaseSoundId(soundId: number): void {
627
- inv<void>('0x353FC880830B88FA', soundId);
900
+ static N_0x6652B0C8F3D414D0(p0: any): void {
901
+ inv<void>('0x6652B0C8F3D414D0', p0);
628
902
  }
629
903
 
630
904
  /**
631
- * Old Name: _SET_VARIABLE_ON_SOUND_WITH_ID
632
- *
633
905
  * @param soundId
634
- * @param variableName
635
- * @param variableValue
906
+ * @param name
907
+ * @param soundSet
908
+ * @param p3
636
909
  */
637
- static setVariableOnSound(soundId: number, variableName: string | null, variableValue: number): void {
638
- inv<void>('0x503703EC1781B7D6', soundId, variableName, f(variableValue));
910
+ static playSoundFrontendWithSoundId(soundId: number, name: string | null, soundSet: string | null, p3: boolean): void {
911
+ inv<void>('0xCE5D0FFE83939AF1', soundId, name, soundSet, p3);
639
912
  }
640
913
 
641
914
  /**
642
- * @param convoRoot
915
+ * @param p0
916
+ * @returns
643
917
  */
644
- static startPreloadedConversation(convoRoot: string | null): void {
645
- inv<void>('0x23641AFE870AF385', convoRoot);
918
+ static N_0xFE5C6177064BD390(p0: boolean): boolean {
919
+ return inv<boolean>('0xFE5C6177064BD390', p0, rai());
646
920
  }
647
921
 
648
922
  /**
649
- * @param scene
923
+ * @param p0
924
+ * @param currentScriptedConvoLine
650
925
  * @returns
651
926
  */
652
- static startAudioScene(scene: string | null): boolean {
653
- return inv<boolean>('0x013A80FC08F6E4F2', scene, rai());
927
+ static N_0x152ED1B56E8F1F50(p0: string | null, currentScriptedConvoLine: number): Ped | null {
928
+ return createFromHandle<Ped>('Ped', inv<number>('0x152ED1B56E8F1F50', p0, currentScriptedConvoLine, rai()));
654
929
  }
655
930
 
656
931
  /**
932
+ * @param p0
657
933
  * @returns
658
934
  */
659
- static getMusicPlaytime(): number {
660
- return inv<number>('0xE7A0D23DC414507B', rai());
935
+ static N_0x4A98E228A936DBCC(p0: any): any {
936
+ return inv<number>('0x4A98E228A936DBCC', p0);
661
937
  }
662
938
 
663
939
  /**
664
- * Checks for MOONSHINE_BAND
940
+ * https://en.m.wikipedia.org/wiki/Walla
665
941
  *
666
- * @param entity
667
- * @returns
942
+ * @param p0
943
+ * @param p1
668
944
  */
669
- static N_0xBE28DB99556FF8D9(entity: Entity): string | number {
670
- return (inv<number>('0xBE28DB99556FF8D9', entity.handle, rai())) & 0xFFFFFFFF;
671
- }
672
-
673
- static N_0x569ABC36E28DDEAA(): void {
674
- inv<void>('0x569ABC36E28DDEAA');
945
+ static setPedWallaDensity(p0: number, p1: number): void {
946
+ inv<void>('0x149AEE66F0CB3A99', f(p0), f(p1));
675
947
  }
676
948
 
677
949
  /**
678
- * struct ScriptedSpeechParams
679
- * {
680
- * const char* speechName;
681
- * const char* voiceName;
682
- * alignas(8) int variation;
683
- * alignas(8) Hash speechParamHash;
684
- * alignas(8) Ped listenerPed;
685
- * alignas(8) BOOL syncOverNetwork;
686
- * alignas(8) int v7;
687
- * alignas(8) int v8;
688
- * }; 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};
689
- * PLAY_PED_AMBIENT_SPEECH_NATIVE(PLAYER_PED_ID(), (Any*)&params); Old name: _PLAY_AMBIENT_SPEECH1
690
- * https://github.com/femga/rdr3_discoveries/tree/master/audio/audio_banks
950
+ * item: value returned from 0x2E1CDC1FF3B8473E
951
+ * soundSet: HUD_SHOP_SOUNDSET, COMPANIONS_ROBBERIES_SOUNDSET
691
952
  *
692
- * @param speaker
693
- * @returns params
953
+ * @param item
954
+ * @param soundSet
955
+ * @param p2
694
956
  */
695
- static playPedAmbientSpeechNative(speaker: Ped): [any, number] {
696
- const result = inv<[number, number]>('0x8E04FEDD28D42462', speaker.handle, pvi());
697
- return [result[0], result[1]];
957
+ static playSoundFromItem(item: string | number, soundSet: string | number, p2: any): void {
958
+ inv<void>('0xE8EAFF7B41EDD291', _h(item), _h(soundSet), p2);
698
959
  }
699
960
 
700
961
  /**
701
- * Checks whether the horn of a vehicle is currently played.
702
- *
703
- * @param vehicle
962
+ * @param ped
704
963
  * @returns
705
964
  */
706
- static isHornActive(vehicle: Vehicle): boolean {
707
- return inv<boolean>('0x9D6BFC12B05C6121', vehicle.handle, rai());
965
+ static getPedSongIndexHost(ped: Ped): any {
966
+ return inv<number>('0x2DBBF0C5E19383EE', ped.handle);
708
967
  }
709
968
 
710
969
  /**
711
970
  * @param p0
712
- * @param p1
713
- * @param p2
714
- * @param p3
715
971
  */
716
- static N_0xCFAD2C8CD1054523(p0: any, p1: any, p2: any, p3: any): void {
717
- inv<void>('0xCFAD2C8CD1054523', p0, p1, p2, p3);
972
+ static N_0x3E98AC9D8C56C62C(p0: any): void {
973
+ inv<void>('0x3E98AC9D8C56C62C', p0);
718
974
  }
719
975
 
720
976
  /**
@@ -945,287 +1201,141 @@ export class Audio {
945
1201
  }
946
1202
 
947
1203
  /**
948
- * @param p0
949
- */
950
- static skipToNextScriptedConversationLine(p0: string | null): void {
951
- inv<void>('0x9663FE6B7A61EB00', p0);
952
- }
953
-
954
- /**
955
- * @param ped
956
- * @param p1
957
- */
958
- static stopCurrentPlayingSpeech(ped: Ped, p1: any): void {
959
- inv<void>('0x79D2F0E66F81D90D', ped.handle, p1);
960
- }
961
-
962
- static clearConversationHistory(): void {
963
- inv<void>('0x33D51F801CB16E4F');
964
- }
965
-
966
- /**
967
- * @param eventName
968
- * @returns
969
- */
970
- static prepareMusicEvent(eventName: string | null): boolean {
971
- return inv<boolean>('0x1E5185B72EF5158A', eventName, rai());
972
- }
973
-
974
- /**
975
- * Starts Audio Loop
976
- * _PLAY_SOUND_FROM_ENTITY* - _PLAY_SOUND_FRONTEND*
977
- *
978
- * @param soundId
979
- * @param soundName
980
- * @param pos
981
- * @param soundsetName
982
- * @param p6
983
- * @param p7
984
- * @param p8
985
- */
986
- static playSoundFromPositionWithId(soundId: number, soundName: string | null, pos: Vector3, soundsetName: string | null, p6: boolean, p7: number, p8: boolean): void {
987
- inv<void>('0xDCF5BA95BBF0FABA', soundId, soundName, f(pos.x), f(pos.y), f(pos.z), soundsetName, p6, p7, p8);
988
- }
989
-
990
- /**
991
- * @param p0
992
- * @param p1
993
- * @param p2
994
- */
995
- static N_0x8D29FDF565DED9AE(p0: any, p1: any, p2: any): void {
996
- inv<void>('0x8D29FDF565DED9AE', p0, p1, p2);
997
- }
998
-
999
- /**
1000
- * @param eventName
1001
- * @returns
1002
- */
1003
- static triggerMusicEventWithHash(eventName: string | number): any {
1004
- return inv<number>('0x05D6195FB4D428F4', _h(eventName));
1005
- }
1006
-
1007
- /**
1008
- * @param soundId
1009
- * @returns
1010
- */
1011
- static hasSoundIdFinished(soundId: number): any {
1012
- return inv<number>('0x84848E1C0FC67DBB', soundId);
1013
- }
1014
-
1015
- /**
1016
- * @param scene
1017
- */
1018
- static stopAudioScene(scene: string | null): void {
1019
- inv<void>('0xDFE8422B3B94E688', scene);
1020
- }
1021
-
1022
- /**
1023
- * @param p0
1024
- * @param p1
1025
- */
1026
- static N_0xA6847BBA4FCDD13F(p0: any, p1: any): void {
1027
- inv<void>('0xA6847BBA4FCDD13F', p0, p1);
1028
- }
1029
-
1030
- /**
1031
- * @param p0
1032
- * @returns
1033
- */
1034
- static isScriptedSpeechPlaying(p0: any): boolean {
1035
- return inv<boolean>('0xCC9AA18DCC7084F4', p0, rai());
1036
- }
1037
-
1038
- /**
1039
- * @param ped
1040
- * @param p1
1041
- * @param hash
1042
- */
1043
- static useFootstepScriptSweeteners(ped: Ped, p1: boolean, hash: string | number): void {
1044
- inv<void>('0xBF4DC1784BE94DFA', ped.handle, p1, _h(hash));
1045
- }
1046
-
1047
- /**
1048
- * whistleConfig: Ped.WhistlePitch (0.0 - 1.0), Ped.WhistleClarity (0.0 - 1.0), Ped.WhistleShape (0.0 - 10.0)
1204
+ * https://github.com/femga/rdr3_discoveries/tree/master/audio/audio_flags
1049
1205
  *
1050
- * @param ped
1051
- * @param whistleConfig
1052
- * @param value
1206
+ * @param flagName
1207
+ * @param toggle
1053
1208
  */
1054
- static setWhistleConfigForPed(ped: Ped, whistleConfig: string | null, value: number): void {
1055
- inv<void>('0x9963681A8BC69BF3', ped.handle, whistleConfig, f(value));
1209
+ static setAudioFlag(flagName: string | null, toggle: boolean): void {
1210
+ inv<void>('0xB9EFD5C25018725A', flagName, toggle);
1056
1211
  }
1057
1212
 
1058
1213
  /**
1059
- * @param ped
1060
- * @param p1
1061
- * @param p2
1214
+ * @param vehicle
1215
+ * @param toggle
1062
1216
  */
1063
- static playAnimalVocalizationPheromoneVialResponse(ped: Ped, p1: string | number, p2: boolean): void {
1064
- inv<void>('0x0E53530D9B2DB01D', ped.handle, _h(p1), p2);
1217
+ static setHornEnabled(vehicle: Vehicle, toggle: boolean): void {
1218
+ inv<void>('0x76D683C108594D0E', vehicle.handle, toggle);
1065
1219
  }
1066
1220
 
1067
1221
  /**
1068
- * Only used in R* SP Scripts
1069
- * Old Name: _UPDATE_SOUND_POSITION
1222
+ * p1 is possibly naSpeechAudibility, naSpeechType, or naSpeechEventTypeRequestPriority
1223
+ * SKIP_* - START_*
1070
1224
  *
1071
- * @param soundId
1072
- * @param pos
1073
- */
1074
- static updateSoundCoord(soundId: number, pos: Vector3): void {
1075
- inv<void>('0x0286617C8FC50A53', soundId, f(pos.x), f(pos.y), f(pos.z));
1076
- }
1077
-
1078
- /**
1079
- * @param ambientZone
1225
+ * @param speechEventType Refer to [enum: naSpeechEventType]
1080
1226
  * @param p1
1081
1227
  * @param p2
1082
1228
  */
1083
- static setAmbientZoneStatePersistent(ambientZone: string | null, p1: boolean, p2: boolean): void {
1084
- inv<void>('0x1D6650420CEC9D3B', ambientZone, p1, p2);
1085
- }
1086
-
1087
- /**
1088
- * speechEventType: https://github.com/Halen84/RDR3-Native-Flags-And-Enums/tree/main/naSpeechEventType
1089
- * SKIP_* - START_*
1090
- *
1091
- * @param speechEventType
1092
- */
1093
- static N_0x660A8F876DF1D4F8(speechEventType: number): void {
1094
- inv<void>('0x660A8F876DF1D4F8', speechEventType);
1229
+ static N_0x0D7FD6A55FD63AEF(speechEventType: number, p1: number, p2: boolean): void {
1230
+ inv<void>('0x0D7FD6A55FD63AEF', speechEventType, p1, p2);
1095
1231
  }
1096
1232
 
1097
1233
  /**
1098
1234
  * @param p0
1099
1235
  * @param p1
1100
- */
1101
- static N_0x139A4B9DF2D26CBF(p0: any, p1: any): void {
1102
- inv<void>('0x139A4B9DF2D26CBF', p0, p1);
1103
- }
1104
-
1105
- /**
1106
- * @param pos
1107
- * @param streamId
1108
- */
1109
- static playStreamFromPosition(pos: Vector3, streamId: number): void {
1110
- inv<void>('0x21442F412E8DE56B', f(pos.x), f(pos.y), f(pos.z), streamId);
1111
- }
1112
-
1113
- /**
1114
- * @param entity
1115
- * @returns
1116
- */
1117
- static getEntityAudioMixGroup(entity: Entity): string | number {
1118
- return (inv<number>('0x8B25A18E390F75BF', entity.handle, rai())) & 0xFFFFFFFF;
1119
- }
1120
-
1121
- /**
1122
- * @param convoRoot
1123
- * @returns
1124
- */
1125
- static isScriptedConversationCreated(convoRoot: string | null): any {
1126
- return inv<number>('0xD89504D9D7D5057D', convoRoot);
1127
- }
1128
-
1129
- static N_0xA2B851605748AD0E(): void {
1130
- inv<void>('0xA2B851605748AD0E');
1236
+ * @param p2
1237
+ * @param p3
1238
+ * @param p4
1239
+ */
1240
+ static N_0x06C5DF5EE444BC6B(p0: any, p1: any, p2: any, p3: any, p4: any): void {
1241
+ inv<void>('0x06C5DF5EE444BC6B', p0, p1, p2, p3, p4);
1131
1242
  }
1132
1243
 
1133
1244
  /**
1134
- * @param convoRoot
1245
+ * @param p0
1135
1246
  * @returns
1136
1247
  */
1137
- static N_0x0CB3D1919E8D7CBA(convoRoot: string | null): boolean {
1138
- return inv<boolean>('0x0CB3D1919E8D7CBA', convoRoot, rai());
1248
+ static N_0x2B9C37C01BF25EDB(p0: any): any {
1249
+ return inv<number>('0x2B9C37C01BF25EDB', p0);
1139
1250
  }
1140
1251
 
1141
1252
  /**
1142
- * Name: ROPE_SETTINGS_DEFAULT
1143
- *
1144
- * @param ropeId
1145
- * @param name
1253
+ * @param p0
1146
1254
  */
1147
- static N_0xF092B6030D6FD49C(ropeId: number, name: string | null): void {
1148
- inv<void>('0xF092B6030D6FD49C', ropeId, name);
1255
+ static N_0x64B956F4E761DF5C(p0: any): void {
1256
+ inv<void>('0x64B956F4E761DF5C', p0);
1149
1257
  }
1150
1258
 
1151
1259
  /**
1152
1260
  * @param p0
1153
- * @param currentScriptedConvoLine
1154
- * @returns
1155
1261
  */
1156
- static N_0x254B0241E964B450(p0: string | null, currentScriptedConvoLine: number): Ped | null {
1157
- return createFromHandle<Ped>('Ped', inv<number>('0x254B0241E964B450', p0, currentScriptedConvoLine, rai()));
1262
+ static setAudioOnlineTransitionStage(p0: string | null): void {
1263
+ inv<void>('0x9B1FC259187C97C0', p0);
1158
1264
  }
1159
1265
 
1160
1266
  /**
1161
- * @param ped
1162
- * @param vocalizationName
1163
- * @param p2
1267
+ * @param streamId
1164
1268
  */
1165
- static playAnimalVocalization(ped: Ped, vocalizationName: string | null, p2: boolean): void {
1166
- inv<void>('0xEE066C7006C49C0A', ped.handle, vocalizationName, p2);
1269
+ static playStreamFrontend(streamId: number): void {
1270
+ inv<void>('0x58FCE43488F9F5F4', streamId);
1271
+ }
1272
+
1273
+ /**
1274
+ * _IS_SOUND_RUNNING(?)
1275
+ *
1276
+ * @param audioName
1277
+ * @param audioRef
1278
+ * @returns
1279
+ */
1280
+ static N_0x580D71DFE0088E34(audioName: string | null, audioRef: string | null): boolean {
1281
+ return inv<boolean>('0x580D71DFE0088E34', audioName, audioRef, rai());
1167
1282
  }
1168
1283
 
1169
1284
  /**
1285
+ * nullsub, doesn't do anything
1286
+ *
1170
1287
  * @param p0
1171
- * @param p1
1172
1288
  */
1173
- static setPedInteriorWallaDensity(p0: number, p1: number): void {
1174
- inv<void>('0x8BF907833BE275DE', f(p0), f(p1));
1289
+ static registerScriptWithAudio(p0: boolean): void {
1290
+ inv<void>('0xC6ED9D5092438D91', p0);
1175
1291
  }
1176
1292
 
1177
1293
  /**
1178
1294
  * @param p0
1179
1295
  * @param p1
1180
1296
  */
1181
- static N_0xD47D47EFBF103FB8(p0: any, p1: any): void {
1182
- inv<void>('0xD47D47EFBF103FB8', p0, p1);
1297
+ static N_0x35B8C070E0C16E2F(p0: any, p1: any): void {
1298
+ inv<void>('0x35B8C070E0C16E2F', p0, p1);
1299
+ }
1300
+
1301
+ static N_0x138ADB94F8B90616(): void {
1302
+ inv<void>('0x138ADB94F8B90616');
1183
1303
  }
1184
1304
 
1185
1305
  /**
1186
1306
  * @param p0
1187
1307
  * @param p1
1308
+ * @param p2
1188
1309
  */
1189
- static N_0x5BC885EBD75FAA7D(p0: any, p1: any): void {
1190
- inv<void>('0x5BC885EBD75FAA7D', p0, p1);
1310
+ static N_0x380A2E353AD30917(p0: any, p1: any, p2: any): void {
1311
+ inv<void>('0x380A2E353AD30917', p0, p1, p2);
1191
1312
  }
1192
1313
 
1193
1314
  /**
1194
- * Valid pain IDs: 0..12 these names are not official, but here is a list of the IDs:
1195
- * 1 burning,
1196
- * 2 drowning,
1197
- * 3 coughing,
1198
- * 4 nothing,
1199
- * 5 nothing,
1200
- * 6 coughing_2,
1201
- * 7 nothing,
1202
- * 8 nothing,
1203
- * 9 hurtingSick?,
1204
- * 10 hurtingFall?,
1205
- * 11 nothing,
1206
- * 12 choking
1207
- *
1208
- * @param ped
1209
- * @param painId
1210
- * @param p2
1211
- * @param p3
1212
- * @param isNetwork
1315
+ * @param convoRoot
1316
+ * @returns
1213
1317
  */
1214
- static playPain(ped: Ped, painId: number, p2: number, p3: boolean, isNetwork: boolean): void {
1215
- inv<void>('0xBC9AE166038A5CEC', ped.handle, painId, f(p2), p3, isNetwork);
1318
+ static createNewScriptedConversation(convoRoot: string | null): any {
1319
+ return inv<number>('0xD2C91A0B572AAE56', convoRoot);
1216
1320
  }
1217
1321
 
1218
1322
  /**
1219
- * *STOP_AUDIO**
1220
- *
1221
1323
  * @param p0
1324
+ * @param p1
1325
+ * @param p2
1326
+ * @returns
1222
1327
  */
1223
- static N_0x6AB944DF68B512D3(p0: any): void {
1224
- inv<void>('0x6AB944DF68B512D3', p0);
1328
+ static N_0x7678FE0455ED1145(p0: any, p1: any, p2: any): any {
1329
+ return inv<number>('0x7678FE0455ED1145', p0, p1, p2);
1225
1330
  }
1226
1331
 
1227
- static N_0xDAD6CD07CAA4F382(): void {
1228
- inv<void>('0xDAD6CD07CAA4F382');
1332
+ /**
1333
+ * @param entity
1334
+ * @param groupName
1335
+ * @param p2
1336
+ */
1337
+ static addEntityToAudioMixGroup(entity: Entity, groupName: string | null, p2: number): void {
1338
+ inv<void>('0x153973AB99FE8980', entity.handle, groupName, f(p2));
1229
1339
  }
1230
1340
 
1231
1341
  /**
@@ -1369,80 +1479,27 @@ export class Audio {
1369
1479
  }
1370
1480
 
1371
1481
  /**
1372
- * nullsub, doesn't do anything
1373
- *
1374
- * @param active
1375
- */
1376
- static setGpsActive(active: boolean): void {
1377
- inv<void>('0x3BD3F52BA9B1E4E8', active);
1378
- }
1379
-
1380
- /**
1381
- * Old name: _PLAY_SOUND_FROM_POSITION
1482
+ * Only used in R* SP Script cv_mus_shared
1382
1483
  *
1383
- * @param SoundName
1384
- * @param pos
1385
- * @param SetName
1386
- * @param bOverNetwork
1387
- * @param nNetworkRange
1388
- * @param isExteriorLoc
1389
- * @param p8
1390
- */
1391
- static playSoundFromCoord(SoundName: string | null, pos: Vector3, SetName: string | null, bOverNetwork: boolean, nNetworkRange: number, isExteriorLoc: boolean, p8: number): void {
1392
- inv<void>('0xCCE219C922737BFA', SoundName, f(pos.x), f(pos.y), f(pos.z), SetName, bOverNetwork, nNetworkRange, isExteriorLoc, p8);
1393
- }
1394
-
1395
- /**
1396
- * @param streamName
1397
- * @param soundSet
1398
- * @returns
1399
- */
1400
- static loadStream(streamName: string | null, soundSet: string | null): boolean {
1401
- return inv<boolean>('0x1F1F957154EC51DF', streamName, soundSet, rai());
1402
- }
1403
-
1404
- /**
1405
- * @param p0
1406
- * @param p1
1407
- */
1408
- static N_0x9EB779765E68C52E(p0: any, p1: any): void {
1409
- inv<void>('0x9EB779765E68C52E', p0, p1);
1410
- }
1411
-
1412
- static N_0x43037ABFE214A851(): void {
1413
- inv<void>('0x43037ABFE214A851');
1414
- }
1415
-
1416
- /**
1484
+ * @param convoRoot
1485
+ * @param animScene
1417
1486
  * @returns
1418
1487
  */
1419
- static N_0xA6A3A3F96B8B030E(): any {
1420
- return inv<number>('0xA6A3A3F96B8B030E');
1488
+ static N_0x79F9C57B8D0DFE90(convoRoot: string | null, animScene: AnimScene): boolean {
1489
+ return inv<boolean>('0x79F9C57B8D0DFE90', convoRoot, animScene.handle, rai());
1421
1490
  }
1422
1491
 
1423
- /**
1424
- * @param p0
1425
- * @returns
1426
- */
1427
- static isScriptedConversationPlaying(p0: string | null): any {
1428
- return inv<number>('0x1ECC76792F661CF5', p0);
1492
+ static forcePedPanicWalla(): void {
1493
+ inv<void>('0x062D5EAD4DA2FA6A');
1429
1494
  }
1430
1495
 
1431
1496
  /**
1432
1497
  * @param p0
1433
1498
  * @param p1
1499
+ * @param p2
1434
1500
  */
1435
- static setPortalSettingsOverride(p0: string | null, p1: string | null): void {
1436
- inv<void>('0x044DBAD7A7FA2BE5', p0, p1);
1437
- }
1438
-
1439
- /**
1440
- * @param ped
1441
- * @param disabled
1442
- * @returns
1443
- */
1444
- static setIsScriptedSpeechDisabled(ped: Ped, disabled: boolean): any {
1445
- return inv<number>('0xB2DE3AEBE31150E2', ped.handle, disabled);
1501
+ static N_0xF64034D533CE8AAC(p0: any, p1: any, p2: any): void {
1502
+ inv<void>('0xF64034D533CE8AAC', p0, p1, p2);
1446
1503
  }
1447
1504
 
1448
1505
  /**
@@ -1450,334 +1507,277 @@ export class Audio {
1450
1507
  * @param p1
1451
1508
  * @param p2
1452
1509
  * @param p3
1453
- * @returns
1510
+ * @param p4
1511
+ * @param p5
1454
1512
  */
1455
- static N_0x9D6DEC9791A4E501(p0: any, p1: any, p2: any, p3: any): any {
1456
- return inv<number>('0x9D6DEC9791A4E501', p0, p1, p2, p3);
1513
+ static N_0x6DA15746D5CC1A92(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any): void {
1514
+ inv<void>('0x6DA15746D5CC1A92', p0, p1, p2, p3, p4, p5);
1457
1515
  }
1458
1516
 
1459
1517
  /**
1460
- * Old Name: _STOP_SOUND_WITH_ID
1518
+ * Params: p5 seems to be always 0
1461
1519
  *
1462
1520
  * @param soundId
1521
+ * @param soundName
1522
+ * @param entity
1523
+ * @param soundsetName
1524
+ * @param p4
1525
+ * @param p5
1463
1526
  */
1464
- static stopSound(soundId: number): void {
1465
- inv<void>('0x3210BCB36AF7621B', soundId);
1466
- }
1467
-
1468
- /**
1469
- * @param p0
1470
- * @returns
1471
- */
1472
- static N_0xF336E9F989B3518F(p0: string | null): number {
1473
- return inv<number>('0xF336E9F989B3518F', p0, rai());
1527
+ static playSoundFromEntityWithSet(soundId: number, soundName: string | null, entity: Entity, soundsetName: string | null, p4: boolean, p5: any): void {
1528
+ inv<void>('0xF1C5310FEAA36B48', soundId, soundName, entity.handle, soundsetName, p4, p5);
1474
1529
  }
1475
1530
 
1476
1531
  /**
1477
1532
  * @param p0
1478
1533
  * @param p1
1534
+ * @param p2
1535
+ * @param p3
1536
+ * @param p4
1537
+ * @param p5
1538
+ * @param p6
1539
+ * @param p7
1479
1540
  */
1480
- static N_0xFCDEC42B1C78B7F8(p0: any, p1: any): void {
1481
- inv<void>('0xFCDEC42B1C78B7F8', p0, p1);
1482
- }
1483
-
1484
- /**
1485
- * @param ped
1486
- */
1487
- static N_0x8E901B65206C2D3E(ped: Ped): void {
1488
- inv<void>('0x8E901B65206C2D3E', ped.handle);
1489
- }
1490
-
1491
- /**
1492
- * @param p0
1493
- */
1494
- static N_0x7E176C676F8652A9(p0: any): void {
1495
- inv<void>('0x7E176C676F8652A9', p0);
1496
- }
1497
-
1498
- /**
1499
- * item: FUSE, value returned from 0x2E1CDC1FF3B8473E
1500
- * soundSet: HUD_SHOP_SOUNDSET, COMPANIONS_ROBBERIES_SOUNDSET
1501
- *
1502
- * @param item
1503
- * @param soundSet
1504
- * @returns
1505
- */
1506
- static isScriptedAudioCustom(item: string | number, soundSet: string | number): any {
1507
- return inv<number>('0x6DF942C4179BE5AB', _h(item), _h(soundSet));
1508
- }
1509
-
1510
- /**
1511
- * @param p0
1512
- * @returns
1513
- */
1514
- static N_0xD05A460328560477(p0: any): any {
1515
- return inv<number>('0xD05A460328560477', p0);
1516
- }
1517
-
1518
- /**
1519
- * Checks if the ped can play the speech or has the speech file, last parameter is usually false.
1520
- *
1521
- * @param ped
1522
- * @param speechName
1523
- * @param unk
1524
- * @returns
1525
- */
1526
- static doesContextExistForThisPed(ped: Ped, speechName: string | null, unk: boolean): boolean {
1527
- return inv<boolean>('0x49B99BF3FDA89A7A', ped.handle, speechName, unk, rai());
1541
+ static N_0x5AE0CB5F35F034FD(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any, p6: any, p7: any): void {
1542
+ inv<void>('0x5AE0CB5F35F034FD', p0, p1, p2, p3, p4, p5, p6, p7);
1528
1543
  }
1529
1544
 
1530
1545
  /**
1546
+ * @param p0
1547
+ * @param currentScriptedConvoLine
1531
1548
  * @returns
1532
1549
  */
1533
- static N_0x2B101AD9F651243A(): any {
1534
- return inv<number>('0x2B101AD9F651243A');
1550
+ static N_0x935DBD96D4A3DA1F(p0: string | null, currentScriptedConvoLine: number): number {
1551
+ return inv<number>('0x935DBD96D4A3DA1F', p0, currentScriptedConvoLine, rai());
1535
1552
  }
1536
1553
 
1537
1554
  /**
1538
1555
  * @param p0
1539
- * @returns
1540
1556
  */
1541
- static N_0x131EC9247E7A2903(p0: any): any {
1542
- return inv<number>('0x131EC9247E7A2903', p0);
1557
+ static N_0xDC93F0948F2C28F4(p0: any): void {
1558
+ inv<void>('0xDC93F0948F2C28F4', p0);
1543
1559
  }
1544
1560
 
1545
1561
  /**
1562
+ * p1: Entity.Relationship
1563
+ * p2: Player, Enemy, Teammate, Neutral
1564
+ *
1546
1565
  * @param ped
1547
- * @param name
1566
+ * @param p1
1567
+ * @param p2
1548
1568
  */
1549
- static setAmbientVoiceName(ped: Ped, name: string | null): void {
1550
- inv<void>('0x6C8065A3B780185B', ped.handle, name);
1569
+ static setSoundRelationshipOnPed(ped: Ped, p1: string | null, p2: string | null): void {
1570
+ inv<void>('0x2E31ACA7477CF00F', ped.handle, p1, p2);
1551
1571
  }
1552
1572
 
1553
1573
  /**
1554
- * @param play
1574
+ * @param audioName
1575
+ * @param audioRef
1555
1576
  */
1556
- static playEndCreditsMusic(play: boolean): void {
1557
- inv<void>('0xCD536C4D33DCC900', play);
1577
+ static stopSoundWithName(audioName: string | null, audioRef: string | null): void {
1578
+ inv<void>('0x0F2A2175734926D8', audioName, audioRef);
1558
1579
  }
1559
1580
 
1560
1581
  /**
1561
- * @param eventName
1582
+ * @param p0
1583
+ * @param p1
1562
1584
  * @returns
1563
1585
  */
1564
- static cancelMusicEvent(eventName: string | null): boolean {
1565
- return inv<boolean>('0x5B17A90291133DA5', eventName, rai());
1586
+ static N_0xC369E2234E34A0CA(p0: any, p1: any): any {
1587
+ return inv<number>('0xC369E2234E34A0CA', p0, p1);
1566
1588
  }
1567
1589
 
1568
1590
  /**
1569
- * @param ped
1591
+ * @param p0
1592
+ * @param p1
1570
1593
  * @returns
1571
1594
  */
1572
- static isAmbientSpeechDisabled(ped: Ped): boolean {
1573
- return inv<boolean>('0x932C2D096A2C3FFF', ped.handle, rai());
1595
+ static N_0x72E4D1C4639BC465(p0: Entity, p1: any): any {
1596
+ return inv<number>('0x72E4D1C4639BC465', p0.handle, p1);
1574
1597
  }
1575
1598
 
1576
1599
  /**
1577
- * Not implemented.
1578
- *
1579
- * @param animal
1580
- * @param mood
1600
+ * @param audioName
1601
+ * @param soundsetName
1602
+ * @returns
1581
1603
  */
1582
- static setAnimalMood(animal: Ped, mood: number): void {
1583
- inv<void>('0xCC97B29285B1DC3B', animal.handle, mood);
1604
+ static hasSoundAudioNameFinished(audioName: string | null, soundsetName: string | null): any {
1605
+ return inv<number>('0x714A0EA7DE1167BE', audioName, soundsetName);
1584
1606
  }
1585
1607
 
1586
1608
  /**
1587
- * @param convoRoot
1588
- * @param p1
1589
- * @param p2
1590
- * @param clone
1609
+ * *UNLOAD*[A-C]* - USE_*
1610
+ *
1611
+ * @param speechContext
1591
1612
  */
1592
- static startScriptConversation(convoRoot: string | null, p1: boolean, p2: boolean, clone: boolean): void {
1593
- inv<void>('0x6B17C62C9635D2DC', convoRoot, p1, p2, clone);
1613
+ static unloadSpeechContext(speechContext: string | null): void {
1614
+ inv<void>('0x87E6302FC61208CC', speechContext);
1594
1615
  }
1595
1616
 
1596
1617
  /**
1597
1618
  * @param p0
1619
+ * @param p1
1598
1620
  */
1599
- static N_0xEB4D592620B8C209(p0: any): void {
1600
- inv<void>('0xEB4D592620B8C209', p0);
1601
- }
1602
-
1603
- static releaseScriptAudioBank(): void {
1604
- inv<void>('0x7A2D8AD0A9EB9C3F');
1605
- }
1606
-
1607
- static N_0x4BE3EC91C01F0FE8(): void {
1608
- inv<void>('0x4BE3EC91C01F0FE8');
1609
- }
1610
-
1611
- /**
1612
- * @param zoneName
1613
- * @param isEnabled
1614
- * @param p2
1615
- */
1616
- static setAmbientZoneState(zoneName: string | null, isEnabled: boolean, p2: boolean): void {
1617
- inv<void>('0xBDA07E5950085E46', zoneName, isEnabled, p2);
1621
+ static N_0x3A3BE6B920525237(p0: any, p1: any): void {
1622
+ inv<void>('0x3A3BE6B920525237', p0, p1);
1618
1623
  }
1619
1624
 
1620
1625
  /**
1621
- * @param audioName
1622
- * @param entity
1623
- * @param audioRef
1624
- * @param isNetwork
1625
- * @param p4
1626
- * @param p5
1626
+ * @param p0
1627
+ * @returns
1627
1628
  */
1628
- static playSoundFromEntity(audioName: string | null, entity: Entity, audioRef: string | null, isNetwork: boolean, p4: any, p5: any): void {
1629
- inv<void>('0x6FB1DA3CA9DA7D90', audioName, entity.handle, audioRef, isNetwork, p4, p5);
1629
+ static N_0xC68C02DE259C927C(p0: any): any {
1630
+ return inv<number>('0xC68C02DE259C927C', p0);
1630
1631
  }
1631
1632
 
1632
1633
  /**
1633
1634
  * @param ped
1634
- * @returns
1635
+ * @param toggle
1635
1636
  */
1636
- static isAmbientSpeechPlaying(ped: Ped): boolean {
1637
- return inv<boolean>('0x9072C8B49907BFAD', ped.handle, rai());
1637
+ static disablePedPainAudio(ped: Ped, toggle: boolean): void {
1638
+ inv<void>('0xA9A41C1E940FB0E8', ped.handle, toggle);
1638
1639
  }
1639
1640
 
1640
1641
  /**
1641
- * @param ambientZone
1642
- * @param pos
1643
- * @param heading
1642
+ * Old name: _FORCE_VEHICLE_ENGINE_AUDIO
1643
+ *
1644
+ * @param vehicle
1645
+ * @param audioName
1644
1646
  */
1645
- static setAmbientZonePosition(ambientZone: string | null, pos: Vector3, heading: number): void {
1646
- inv<void>('0x3743CE6948194349', ambientZone, f(pos.x), f(pos.y), f(pos.z), f(heading));
1647
+ static forceUseAudioGameObject(vehicle: Vehicle, audioName: string | null): void {
1648
+ inv<void>('0x4F0C413926060B38', vehicle.handle, audioName);
1647
1649
  }
1648
1650
 
1649
1651
  /**
1652
+ * @param soundName
1650
1653
  * @param entity
1654
+ * @param soundsetName
1655
+ * @param soundId
1651
1656
  * @returns
1652
1657
  */
1653
- static N_0x2FFF4A78384AFFDF(entity: Entity): any {
1654
- return inv<number>('0x2FFF4A78384AFFDF', entity.handle);
1655
- }
1656
-
1657
- /**
1658
- * @param emitterName
1659
- * @param toggle
1660
- */
1661
- static setStaticEmitterEnabled(emitterName: string | null, toggle: boolean): void {
1662
- inv<void>('0x399D2D3B33F1B8EB', emitterName, toggle);
1663
- }
1664
-
1665
- /**
1666
- * @param ped
1667
- * @param toggle
1668
- */
1669
- static setPedIsDrunk(ped: Ped, toggle: boolean): void {
1670
- inv<void>('0x95D2D383D5396B8A', ped.handle, toggle);
1658
+ static prepareSoundWithEntity(soundName: string | null, entity: Entity, soundsetName: string | null, soundId: number): any {
1659
+ return inv<number>('0x4AD019591E94C064', soundName, entity.handle, soundsetName, soundId);
1671
1660
  }
1672
1661
 
1673
1662
  /**
1674
1663
  * @param p0
1675
1664
  * @param p1
1676
1665
  * @param p2
1677
- * @param p3
1678
- * @param p4
1679
1666
  */
1680
- static N_0x839C9F124BE74D94(p0: any, p1: any, p2: any, p3: any, p4: any): void {
1681
- inv<void>('0x839C9F124BE74D94', p0, p1, p2, p3, p4);
1667
+ static stopAllScriptedConversions(p0: boolean, p1: boolean, p2: boolean): void {
1668
+ inv<void>('0x36559148B78853B3', p0, p1, p2);
1682
1669
  }
1683
1670
 
1684
1671
  /**
1685
- * @param ambientZone
1672
+ * @param entity
1686
1673
  * @param p1
1687
- * @param p2
1688
1674
  */
1689
- static setAmbientZoneListStatePersistent(ambientZone: string | null, p1: boolean, p2: boolean): void {
1690
- inv<void>('0xF3638DAE8C4045E1', ambientZone, p1, p2);
1675
+ static removeEntityFromAudioMixGroup(entity: Entity, p1: number): void {
1676
+ inv<void>('0x18EB48CFC41F2EA0', entity.handle, f(p1));
1691
1677
  }
1692
1678
 
1693
1679
  /**
1694
- * @param p0
1695
- * @param p1
1696
- * @param p2
1697
- * @param p3
1698
- * @param p4
1680
+ * *AUDIO_IS** - _AUDIO_TRIGGER*
1699
1681
  */
1700
- static pauseScriptedConversation(p0: string | null, p1: boolean, p2: boolean, p3: boolean, p4: boolean): void {
1701
- inv<void>('0x8530AD776CD72B12', p0, p1, p2, p3, p4);
1682
+ static N_0x7455CD705F7E933E(): void {
1683
+ inv<void>('0x7455CD705F7E933E');
1702
1684
  }
1703
1685
 
1704
1686
  /**
1705
- * @param p0
1687
+ * @param soundId
1706
1688
  */
1707
- static N_0x6652B0C8F3D414D0(p0: any): void {
1708
- inv<void>('0x6652B0C8F3D414D0', p0);
1689
+ static releaseSoundId(soundId: number): void {
1690
+ inv<void>('0x353FC880830B88FA', soundId);
1709
1691
  }
1710
1692
 
1711
1693
  /**
1694
+ * Old Name: _SET_VARIABLE_ON_SOUND_WITH_ID
1695
+ *
1712
1696
  * @param soundId
1713
- * @param name
1714
- * @param soundSet
1715
- * @param p3
1697
+ * @param variableName
1698
+ * @param variableValue
1716
1699
  */
1717
- static playSoundFrontendWithSoundId(soundId: number, name: string | null, soundSet: string | null, p3: boolean): void {
1718
- inv<void>('0xCE5D0FFE83939AF1', soundId, name, soundSet, p3);
1700
+ static setVariableOnSound(soundId: number, variableName: string | null, variableValue: number): void {
1701
+ inv<void>('0x503703EC1781B7D6', soundId, variableName, f(variableValue));
1719
1702
  }
1720
1703
 
1721
1704
  /**
1722
- * @param p0
1723
- * @returns
1705
+ * @param convoRoot
1724
1706
  */
1725
- static N_0xFE5C6177064BD390(p0: boolean): boolean {
1726
- return inv<boolean>('0xFE5C6177064BD390', p0, rai());
1707
+ static startPreloadedConversation(convoRoot: string | null): void {
1708
+ inv<void>('0x23641AFE870AF385', convoRoot);
1727
1709
  }
1728
1710
 
1729
1711
  /**
1730
- * @param p0
1731
- * @param currentScriptedConvoLine
1712
+ * @param scene
1732
1713
  * @returns
1733
1714
  */
1734
- static N_0x152ED1B56E8F1F50(p0: string | null, currentScriptedConvoLine: number): Ped | null {
1735
- return createFromHandle<Ped>('Ped', inv<number>('0x152ED1B56E8F1F50', p0, currentScriptedConvoLine, rai()));
1715
+ static startAudioScene(scene: string | null): boolean {
1716
+ return inv<boolean>('0x013A80FC08F6E4F2', scene, rai());
1736
1717
  }
1737
1718
 
1738
1719
  /**
1739
- * @param p0
1740
1720
  * @returns
1741
1721
  */
1742
- static N_0x4A98E228A936DBCC(p0: any): any {
1743
- return inv<number>('0x4A98E228A936DBCC', p0);
1722
+ static getMusicPlaytime(): number {
1723
+ return inv<number>('0xE7A0D23DC414507B', rai());
1744
1724
  }
1745
1725
 
1746
1726
  /**
1747
- * https://en.m.wikipedia.org/wiki/Walla
1727
+ * Checks for MOONSHINE_BAND
1748
1728
  *
1749
- * @param p0
1750
- * @param p1
1729
+ * @param entity
1730
+ * @returns
1751
1731
  */
1752
- static setPedWallaDensity(p0: number, p1: number): void {
1753
- inv<void>('0x149AEE66F0CB3A99', f(p0), f(p1));
1732
+ static N_0xBE28DB99556FF8D9(entity: Entity): number {
1733
+ return (inv<number>('0xBE28DB99556FF8D9', entity.handle, rai())) & 0xFFFFFFFF;
1734
+ }
1735
+
1736
+ static N_0x569ABC36E28DDEAA(): void {
1737
+ inv<void>('0x569ABC36E28DDEAA');
1754
1738
  }
1755
1739
 
1756
1740
  /**
1757
- * item: value returned from 0x2E1CDC1FF3B8473E
1758
- * soundSet: HUD_SHOP_SOUNDSET, COMPANIONS_ROBBERIES_SOUNDSET
1741
+ * struct ScriptedSpeechParams
1742
+ * {
1743
+ * const char* speechName;
1744
+ * const char* voiceName;
1745
+ * alignas(8) int variation;
1746
+ * alignas(8) Hash speechParamHash;
1747
+ * alignas(8) Ped listenerPed;
1748
+ * alignas(8) BOOL syncOverNetwork;
1749
+ * alignas(8) int v7;
1750
+ * alignas(8) int v8;
1751
+ * }; 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};
1752
+ * PLAY_PED_AMBIENT_SPEECH_NATIVE(PLAYER_PED_ID(), (Any*)&params); Old name: _PLAY_AMBIENT_SPEECH1
1753
+ * https://github.com/femga/rdr3_discoveries/tree/master/audio/audio_banks
1759
1754
  *
1760
- * @param item
1761
- * @param soundSet
1762
- * @param p2
1755
+ * @param speaker
1756
+ * @returns params
1763
1757
  */
1764
- static playSoundFromItem(item: string | number, soundSet: string | number, p2: any): void {
1765
- inv<void>('0xE8EAFF7B41EDD291', _h(item), _h(soundSet), p2);
1758
+ static playPedAmbientSpeechNative(speaker: Ped): [any, number] {
1759
+ const result = inv<[number, number]>('0x8E04FEDD28D42462', speaker.handle, pvi());
1760
+ return [result[0], result[1]];
1766
1761
  }
1767
1762
 
1768
1763
  /**
1769
- * @param ped
1764
+ * Checks whether the horn of a vehicle is currently played.
1765
+ *
1766
+ * @param vehicle
1770
1767
  * @returns
1771
1768
  */
1772
- static getPedSongIndexHost(ped: Ped): any {
1773
- return inv<number>('0x2DBBF0C5E19383EE', ped.handle);
1769
+ static isHornActive(vehicle: Vehicle): boolean {
1770
+ return inv<boolean>('0x9D6BFC12B05C6121', vehicle.handle, rai());
1774
1771
  }
1775
1772
 
1776
1773
  /**
1777
1774
  * @param p0
1775
+ * @param p1
1776
+ * @param p2
1777
+ * @param p3
1778
1778
  */
1779
- static N_0x3E98AC9D8C56C62C(p0: any): void {
1780
- inv<void>('0x3E98AC9D8C56C62C', p0);
1779
+ static N_0xCFAD2C8CD1054523(p0: any, p1: any, p2: any, p3: any): void {
1780
+ inv<void>('0xCFAD2C8CD1054523', p0, p1, p2, p3);
1781
1781
  }
1782
1782
 
1783
1783
  /**