@nativewrappers/redm-codegen 0.0.2 → 0.0.4

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 (248) hide show
  1. package/dist/classes/AnimScene.d.ts +101 -101
  2. package/dist/classes/AnimScene.d.ts.map +1 -1
  3. package/dist/classes/AnimScene.js +147 -147
  4. package/dist/classes/BaseModel.d.ts +12 -12
  5. package/dist/classes/BaseModel.d.ts.map +1 -1
  6. package/dist/classes/BaseModel.js +18 -18
  7. package/dist/classes/BaseTask.d.ts +22 -22
  8. package/dist/classes/BaseTask.d.ts.map +1 -1
  9. package/dist/classes/BaseTask.js +29 -29
  10. package/dist/classes/Cam.d.ts +86 -86
  11. package/dist/classes/Cam.d.ts.map +1 -1
  12. package/dist/classes/Cam.js +116 -116
  13. package/dist/classes/Entity.d.ts +426 -425
  14. package/dist/classes/Entity.d.ts.map +1 -1
  15. package/dist/classes/Entity.js +594 -589
  16. package/dist/classes/Interior.d.ts +1 -1
  17. package/dist/classes/Interior.d.ts.map +1 -1
  18. package/dist/classes/Ped.d.ts +13 -12
  19. package/dist/classes/Ped.d.ts.map +1 -1
  20. package/dist/classes/Ped.js +5 -0
  21. package/dist/classes/PedTask.d.ts +729 -729
  22. package/dist/classes/PedTask.d.ts.map +1 -1
  23. package/dist/classes/PedTask.js +951 -951
  24. package/dist/classes/PersChar.d.ts +11 -11
  25. package/dist/classes/PersChar.d.ts.map +1 -1
  26. package/dist/classes/PersChar.js +17 -17
  27. package/dist/classes/Pickup.d.ts +3 -3
  28. package/dist/classes/Pickup.d.ts.map +1 -1
  29. package/dist/classes/Pickup.js +7 -7
  30. package/dist/classes/Player.d.ts +164 -164
  31. package/dist/classes/Player.d.ts.map +1 -1
  32. package/dist/classes/Player.js +218 -218
  33. package/dist/classes/Prop.d.ts +87 -86
  34. package/dist/classes/Prop.d.ts.map +1 -1
  35. package/dist/classes/Prop.js +131 -126
  36. package/dist/classes/PropSet.d.ts +18 -18
  37. package/dist/classes/PropSet.d.ts.map +1 -1
  38. package/dist/classes/PropSet.js +25 -25
  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 +18 -18
  43. package/dist/classes/VehicleTask.d.ts.map +1 -1
  44. package/dist/classes/VehicleTask.js +26 -26
  45. package/dist/classes/Volume.d.ts +1 -1
  46. package/dist/classes/Volume.d.ts.map +1 -1
  47. package/dist/classes/Weapon.d.ts +277 -277
  48. package/dist/classes/Weapon.d.ts.map +1 -1
  49. package/dist/classes/Weapon.js +398 -398
  50. package/dist/namespaces/Aitransport.d.ts +77 -77
  51. package/dist/namespaces/Aitransport.d.ts.map +1 -1
  52. package/dist/namespaces/Aitransport.js +94 -94
  53. package/dist/namespaces/Animscene.d.ts +51 -51
  54. package/dist/namespaces/Animscene.d.ts.map +1 -1
  55. package/dist/namespaces/Animscene.js +69 -69
  56. package/dist/namespaces/Audio.d.ts +2 -2
  57. package/dist/namespaces/Audio.d.ts.map +1 -1
  58. package/dist/namespaces/Bounty.d.ts +57 -57
  59. package/dist/namespaces/Bounty.d.ts.map +1 -1
  60. package/dist/namespaces/Bounty.js +90 -90
  61. package/dist/namespaces/Brain.d.ts +15 -15
  62. package/dist/namespaces/Brain.d.ts.map +1 -1
  63. package/dist/namespaces/Brain.js +20 -20
  64. package/dist/namespaces/CamStatics.d.ts +317 -317
  65. package/dist/namespaces/CamStatics.d.ts.map +1 -1
  66. package/dist/namespaces/CamStatics.js +449 -449
  67. package/dist/namespaces/Collection.d.ts +13 -13
  68. package/dist/namespaces/Collection.d.ts.map +1 -1
  69. package/dist/namespaces/Collection.js +8 -8
  70. package/dist/namespaces/Companion.d.ts +22 -22
  71. package/dist/namespaces/Companion.d.ts.map +1 -1
  72. package/dist/namespaces/Companion.js +30 -30
  73. package/dist/namespaces/Compendium.d.ts +60 -60
  74. package/dist/namespaces/Compendium.d.ts.map +1 -1
  75. package/dist/namespaces/Compendium.js +80 -80
  76. package/dist/namespaces/Crashlog.d.ts +10 -10
  77. package/dist/namespaces/Crashlog.d.ts.map +1 -1
  78. package/dist/namespaces/Crashlog.js +14 -14
  79. package/dist/namespaces/Databinding.d.ts +173 -173
  80. package/dist/namespaces/Databinding.d.ts.map +1 -1
  81. package/dist/namespaces/Databinding.js +263 -263
  82. package/dist/namespaces/Dlc.d.ts +5 -5
  83. package/dist/namespaces/Dlc.d.ts.map +1 -1
  84. package/dist/namespaces/Dlc.js +9 -9
  85. package/dist/namespaces/EntityStatics.d.ts +178 -178
  86. package/dist/namespaces/EntityStatics.d.ts.map +1 -1
  87. package/dist/namespaces/EntityStatics.js +242 -242
  88. package/dist/namespaces/Event.d.ts +62 -62
  89. package/dist/namespaces/Event.d.ts.map +1 -1
  90. package/dist/namespaces/Event.js +82 -82
  91. package/dist/namespaces/Fire.d.ts +7 -7
  92. package/dist/namespaces/Fire.d.ts.map +1 -1
  93. package/dist/namespaces/Fire.js +9 -9
  94. package/dist/namespaces/Graphics.d.ts +797 -797
  95. package/dist/namespaces/Graphics.d.ts.map +1 -1
  96. package/dist/namespaces/Graphics.js +1095 -1095
  97. package/dist/namespaces/Hud.d.ts +477 -477
  98. package/dist/namespaces/Hud.d.ts.map +1 -1
  99. package/dist/namespaces/Hud.js +721 -721
  100. package/dist/namespaces/InteriorStatics.d.ts +2 -2
  101. package/dist/namespaces/InteriorStatics.d.ts.map +1 -1
  102. package/dist/namespaces/Inventory.d.ts +216 -216
  103. package/dist/namespaces/Inventory.d.ts.map +1 -1
  104. package/dist/namespaces/Inventory.js +301 -301
  105. package/dist/namespaces/Itemdatabase.d.ts +8 -8
  106. package/dist/namespaces/Itemdatabase.d.ts.map +1 -1
  107. package/dist/namespaces/Itemdatabase.js +7 -7
  108. package/dist/namespaces/Law.d.ts +2 -2
  109. package/dist/namespaces/Law.d.ts.map +1 -1
  110. package/dist/namespaces/Map.d.ts +65 -65
  111. package/dist/namespaces/Map.d.ts.map +1 -1
  112. package/dist/namespaces/Map.js +91 -91
  113. package/dist/namespaces/Minigame.d.ts +17 -17
  114. package/dist/namespaces/Minigame.d.ts.map +1 -1
  115. package/dist/namespaces/Minigame.js +25 -25
  116. package/dist/namespaces/Misc.d.ts +5 -5
  117. package/dist/namespaces/Misc.d.ts.map +1 -1
  118. package/dist/namespaces/Missiondata.d.ts +3 -3
  119. package/dist/namespaces/Missiondata.d.ts.map +1 -1
  120. package/dist/namespaces/Netshopping.d.ts +1 -1
  121. package/dist/namespaces/Netshopping.d.ts.map +1 -1
  122. package/dist/namespaces/Network.d.ts +1302 -1310
  123. package/dist/namespaces/Network.d.ts.map +1 -1
  124. package/dist/namespaces/Network.js +1910 -1918
  125. package/dist/namespaces/Object.d.ts +170 -170
  126. package/dist/namespaces/Object.d.ts.map +1 -1
  127. package/dist/namespaces/Object.js +232 -232
  128. package/dist/namespaces/Pad.d.ts +103 -103
  129. package/dist/namespaces/Pad.d.ts.map +1 -1
  130. package/dist/namespaces/Pad.js +134 -134
  131. package/dist/namespaces/PedStatics.d.ts +3 -3
  132. package/dist/namespaces/PedStatics.d.ts.map +1 -1
  133. package/dist/namespaces/Perschar.d.ts +71 -71
  134. package/dist/namespaces/Perschar.d.ts.map +1 -1
  135. package/dist/namespaces/Perschar.js +106 -106
  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/PlayerStatics.d.ts +52 -52
  140. package/dist/namespaces/PlayerStatics.d.ts.map +1 -1
  141. package/dist/namespaces/PlayerStatics.js +71 -71
  142. package/dist/namespaces/Population.d.ts +3 -3
  143. package/dist/namespaces/Population.d.ts.map +1 -1
  144. package/dist/namespaces/Posse.d.ts +28 -28
  145. package/dist/namespaces/Posse.d.ts.map +1 -1
  146. package/dist/namespaces/Posse.js +44 -44
  147. package/dist/namespaces/Propset.d.ts +59 -59
  148. package/dist/namespaces/Propset.d.ts.map +1 -1
  149. package/dist/namespaces/Propset.js +81 -81
  150. package/dist/namespaces/Scripts.d.ts +3 -3
  151. package/dist/namespaces/Scripts.d.ts.map +1 -1
  152. package/dist/namespaces/Socialclub.d.ts +1 -1
  153. package/dist/namespaces/Socialclub.d.ts.map +1 -1
  154. package/dist/namespaces/Stats.d.ts +85 -85
  155. package/dist/namespaces/Stats.d.ts.map +1 -1
  156. package/dist/namespaces/Stats.js +113 -113
  157. package/dist/namespaces/Streaming.d.ts +35 -35
  158. package/dist/namespaces/Streaming.d.ts.map +1 -1
  159. package/dist/namespaces/Streaming.js +53 -53
  160. package/dist/namespaces/Task.d.ts +367 -367
  161. package/dist/namespaces/Task.d.ts.map +1 -1
  162. package/dist/namespaces/Task.js +508 -508
  163. package/dist/namespaces/Telemetry.d.ts +198 -198
  164. package/dist/namespaces/Telemetry.d.ts.map +1 -1
  165. package/dist/namespaces/Telemetry.js +274 -274
  166. package/dist/namespaces/Uiapps.d.ts +24 -24
  167. package/dist/namespaces/Uiapps.d.ts.map +1 -1
  168. package/dist/namespaces/Uiapps.js +33 -33
  169. package/dist/namespaces/Uistickyfeed.d.ts +16 -16
  170. package/dist/namespaces/Uistickyfeed.d.ts.map +1 -1
  171. package/dist/namespaces/Uistickyfeed.js +21 -21
  172. package/dist/namespaces/VehicleStatics.d.ts +2 -2
  173. package/dist/namespaces/VehicleStatics.d.ts.map +1 -1
  174. package/dist/namespaces/Water.d.ts +27 -27
  175. package/dist/namespaces/Water.d.ts.map +1 -1
  176. package/dist/namespaces/Water.js +41 -41
  177. package/dist/namespaces/WeaponStatics.d.ts +250 -250
  178. package/dist/namespaces/WeaponStatics.d.ts.map +1 -1
  179. package/dist/namespaces/WeaponStatics.js +372 -372
  180. package/dist/namespaces/Zone.d.ts +8 -8
  181. package/dist/namespaces/Zone.d.ts.map +1 -1
  182. package/dist/namespaces/Zone.js +9 -9
  183. package/package.json +1 -1
  184. package/src/classes/AnimScene.ts +170 -170
  185. package/src/classes/BaseModel.ts +21 -21
  186. package/src/classes/BaseTask.ts +31 -31
  187. package/src/classes/Cam.ts +124 -124
  188. package/src/classes/Entity.ts +619 -614
  189. package/src/classes/Interior.ts +1 -1
  190. package/src/classes/Ped.ts +17 -12
  191. package/src/classes/PedTask.ts +1011 -1011
  192. package/src/classes/PersChar.ts +19 -19
  193. package/src/classes/Pickup.ts +8 -8
  194. package/src/classes/Player.ts +227 -227
  195. package/src/classes/Prop.ts +146 -141
  196. package/src/classes/PropSet.ts +29 -29
  197. package/src/classes/Vehicle.ts +5 -0
  198. package/src/classes/VehicleTask.ts +30 -30
  199. package/src/classes/Volume.ts +1 -1
  200. package/src/classes/Weapon.ts +414 -414
  201. package/src/namespaces/Aitransport.ts +102 -102
  202. package/src/namespaces/Animscene.ts +78 -78
  203. package/src/namespaces/Audio.ts +2 -2
  204. package/src/namespaces/Bounty.ts +102 -102
  205. package/src/namespaces/Brain.ts +22 -22
  206. package/src/namespaces/CamStatics.ts +501 -501
  207. package/src/namespaces/Collection.ts +16 -16
  208. package/src/namespaces/Companion.ts +34 -34
  209. package/src/namespaces/Compendium.ts +93 -93
  210. package/src/namespaces/Crashlog.ts +16 -16
  211. package/src/namespaces/Databinding.ts +280 -280
  212. package/src/namespaces/Dlc.ts +9 -9
  213. package/src/namespaces/EntityStatics.ts +249 -249
  214. package/src/namespaces/Event.ts +92 -92
  215. package/src/namespaces/Fire.ts +10 -10
  216. package/src/namespaces/Graphics.ts +1155 -1155
  217. package/src/namespaces/Hud.ts +763 -763
  218. package/src/namespaces/InteriorStatics.ts +2 -2
  219. package/src/namespaces/Inventory.ts +321 -321
  220. package/src/namespaces/Itemdatabase.ts +11 -11
  221. package/src/namespaces/Law.ts +2 -2
  222. package/src/namespaces/Map.ts +104 -104
  223. package/src/namespaces/Minigame.ts +29 -29
  224. package/src/namespaces/Misc.ts +5 -5
  225. package/src/namespaces/Missiondata.ts +3 -3
  226. package/src/namespaces/Netshopping.ts +1 -1
  227. package/src/namespaces/Network.ts +1921 -1929
  228. package/src/namespaces/Object.ts +237 -237
  229. package/src/namespaces/Pad.ts +151 -151
  230. package/src/namespaces/PedStatics.ts +3 -3
  231. package/src/namespaces/Perschar.ts +116 -116
  232. package/src/namespaces/Persistence.ts +48 -48
  233. package/src/namespaces/PlayerStatics.ts +75 -75
  234. package/src/namespaces/Population.ts +3 -3
  235. package/src/namespaces/Posse.ts +47 -47
  236. package/src/namespaces/Propset.ts +92 -92
  237. package/src/namespaces/Scripts.ts +3 -3
  238. package/src/namespaces/Socialclub.ts +1 -1
  239. package/src/namespaces/Stats.ts +129 -129
  240. package/src/namespaces/Streaming.ts +62 -62
  241. package/src/namespaces/Task.ts +538 -538
  242. package/src/namespaces/Telemetry.ts +295 -295
  243. package/src/namespaces/Uiapps.ts +39 -39
  244. package/src/namespaces/Uistickyfeed.ts +23 -23
  245. package/src/namespaces/VehicleStatics.ts +2 -2
  246. package/src/namespaces/Water.ts +47 -47
  247. package/src/namespaces/WeaponStatics.ts +394 -394
  248. package/src/namespaces/Zone.ts +11 -11
@@ -14,424 +14,360 @@ import { inv, rai, raf, ras, rav, pvi, pvf, pvv, pvii, pvfi, _h, f } from '../ty
14
14
 
15
15
  export class Graphics {
16
16
  /**
17
- * When this is set to ON, shadows only draw as you get nearer. When OFF, they draw from a further distance.
17
+ * Health Core Effect Filter Potency: p1 = 1
18
+ * Stamina Core Effect Filter Potency: p1 = 2
19
+ * Multiple Core Effect Filter Potency: p1 = 3
18
20
  *
19
- * @param toggle
21
+ * @param effectName
22
+ * @param p1
23
+ * @param potency
20
24
  */
21
- static cascadeShadowsEnableEntityTracker(toggle: boolean): void {
22
- inv<void>('0x8FBFD2AEB196B369', toggle);
25
+ static animpostfxSetPotency(effectName: string | null, p1: number, potency: number): void {
26
+ inv<void>('0xF972F0AB16DC5260', effectName, p1, f(potency));
23
27
  }
24
28
 
25
29
  /**
26
- * Only used in R* Script nb_stalking_hunter
27
- *
28
- * @param p0
30
+ * @returns
29
31
  */
30
- static N_0xD1472AFF30C103D6(p0: number): void {
31
- inv<void>('0xD1472AFF30C103D6', f(p0));
32
+ static pedshotIsAvailable(): any {
33
+ return inv<number>('0xAF6E67D073D2DCE2');
32
34
  }
33
35
 
34
36
  /**
35
- * @param worldX
36
- * @param worldY
37
- * @param worldZ
38
- * @returns screenX; screenY
37
+ * @param p0
39
38
  */
40
- static getScreenCoordFromWorldCoord(worldX: number, worldY: number, worldZ: number): [boolean, number, number] {
41
- const result = inv<[boolean, number, number]>('0xCB50D7AFCC8B0EC6', f(worldX), f(worldY), f(worldZ), pvf(), pvf(), rai());
42
- return [!!result[0], result[1], result[2]];
39
+ static N_0xD9BC98B55BCFAA9B(p0: any): void {
40
+ inv<void>('0xD9BC98B55BCFAA9B', p0);
43
41
  }
44
42
 
45
43
  /**
46
- * @param point
47
44
  * @param pos
48
- * @param radius
45
+ * @param xScale
46
+ * @param yScale
47
+ * @param rotation
48
+ * @param color
49
+ * @param alpha
49
50
  */
50
- static setTrackedPointInfo(point: number, pos: Vector3, radius: number): void {
51
- inv<void>('0xF6FDA3D4404D4F2C', point, f(pos.x), f(pos.y), f(pos.z), f(radius));
51
+ static drawTvChannel(pos: Vector2, xScale: number, yScale: number, rotation: number, color: Color, alpha: number): void {
52
+ inv<void>('0xC0A145540254A840', f(pos.x), f(pos.y), f(xScale), f(yScale), f(rotation), color.r, color.g, color.b, color.a, alpha);
52
53
  }
53
54
 
54
55
  /**
55
- * Draws a 2D sprite on the screen. Parameters:
56
- * textureDict - Name of texture dictionary to load texture from textureName - Name of texture to load from texture dictionary screenX/Y - Screen offset (0.5 = center)
57
- * scaleX/Y - Texture scaling. Negative values can be used to flip the texture on that axis. (0.5 = half) heading - Texture rotation in degrees (default = 0.0) positive is clockwise, measured in degrees red,green,blue - Sprite color (default = 255/255/255) alpha - opacity level https://github.com/femga/rdr3_discoveries/tree/master/useful_info_from_rpfs/textures
58
- *
59
- * @param textureDict
60
- * @param textureName
61
- * @param screenX
62
- * @param screenY
63
- * @param width
64
- * @param height
65
- * @param heading
66
- * @param color
67
- * @param alpha
68
- * @param p11
56
+ * @param handle
69
57
  */
70
- static drawSprite(textureDict: string | null, textureName: string | null, screenX: number, screenY: number, width: number, height: number, heading: number, color: Color, alpha: number, p11: boolean): void {
71
- inv<void>('0xC9884ECADE94CB34', textureDict, textureName, f(screenX), f(screenY), f(width), f(height), f(heading), color.r, color.g, color.b, color.a, alpha, p11);
58
+ static removeGrassCullSphere(handle: number): void {
59
+ inv<void>('0xAE7BF7CA9E4BA48D', handle);
72
60
  }
73
61
 
74
62
  /**
63
+ * @param slots
75
64
  * @returns
76
65
  */
77
- static getCurrentNumberOfLocalPhotos(): number {
78
- return inv<number>('0x78C56B8A7B1D000C', rai());
66
+ static createSwatchTextureDict(slots: number): any {
67
+ return inv<number>('0x3D084D5568FB4028', slots);
79
68
  }
80
69
 
81
70
  /**
82
- * @param ptfxHandle
83
- * @param p1
71
+ * _GET_C* - _GET_E*
72
+ *
73
+ * @returns
84
74
  */
85
- static removeParticleFx(ptfxHandle: number, p1: boolean): void {
86
- inv<void>('0x459598F579C98929', ptfxHandle, p1);
75
+ static getModifiedVisibilityDistance(): number {
76
+ return inv<number>('0x25CA89B2A39DCC69', raf());
87
77
  }
88
78
 
89
79
  /**
90
- * Removes all decals in range from a position, it includes the bullet holes, blood pools, petrol...
80
+ * nullsub, doesn't do anything
91
81
  *
92
- * @param pos
93
- * @param range
82
+ * @param p0
94
83
  */
95
- static removeDecalsInRange(pos: Vector3, range: number): void {
96
- inv<void>('0x86DE59FA02902B40', f(pos.x), f(pos.y), f(pos.z), f(range));
84
+ static N_0x94B261F1F35293E1(p0: any): void {
85
+ inv<void>('0x94B261F1F35293E1', p0);
97
86
  }
98
87
 
99
88
  /**
100
- * @param p0
89
+ * Probably changes tvs from being a 3d audio to being "global" audio
90
+ *
91
+ * @param toggle
101
92
  */
102
- static setPhotoOverlayEffectStat(p0: number): void {
103
- inv<void>('0x8B3296278328B5EB', p0);
93
+ static setTvAudioFrontend(toggle: boolean): void {
94
+ inv<void>('0x64437C98FCC5F291', toggle);
104
95
  }
105
96
 
106
97
  /**
107
- * @param ptfxHandle
108
- * @param r
109
- * @param g
110
- * @param b
111
- * @param p4
98
+ * @returns
112
99
  */
113
- static setParticleFxLoopedColour(ptfxHandle: number, r: number, g: number, b: number, p4: boolean): void {
114
- inv<void>('0x239879FC61C610CC', ptfxHandle, f(r), f(g), f(b), p4);
100
+ static getTimecycleTransitionModifierIndex(): number {
101
+ return inv<number>('0x2DA67BA3C8A6755D', rai());
115
102
  }
116
103
 
117
104
  /**
118
- * @param effectNameHash
105
+ * @param ptfxHandle
106
+ * @param propertyName
107
+ * @param amount
108
+ * @param noNetwork
119
109
  */
120
- static animpostfxStopStackhashPostfx(effectNameHash: string | number): void {
121
- inv<void>('0xEDA5CBECF56E1386', _h(effectNameHash));
110
+ static setParticleFxLoopedEvolution(ptfxHandle: number, propertyName: string | null, amount: number, noNetwork: boolean): void {
111
+ inv<void>('0x3674F389B0FACD80', ptfxHandle, propertyName, f(amount), noNetwork);
122
112
  }
123
113
 
124
114
  /**
125
- * @param value
115
+ * @param effectName
116
+ * @returns
126
117
  */
127
- static changePhotoModeContrast(value: number): void {
128
- inv<void>('0x62B9F9A1272AED80', f(value));
118
+ static animpostfxHasLoaded(effectName: string | null): any {
119
+ return inv<number>('0xBF2DD155B2ADCD0A', effectName);
129
120
  }
130
121
 
131
122
  /**
132
- * Sets the draw order for script draw commands.
133
- *
134
- * @param drawOrder
123
+ * @param decal
124
+ * @returns
135
125
  */
136
- static setScriptGfxDrawOrder(drawOrder: number): void {
137
- inv<void>('0xCFCC78391C8B3814', drawOrder);
126
+ static isDecalAlive(decal: number): boolean {
127
+ return inv<boolean>('0x3E4B4E5CF5D3EEB5', decal, rai());
138
128
  }
139
129
 
140
130
  /**
141
131
  * @param p0
142
132
  */
143
- static enableStaticVegModifier(p0: string | number): void {
144
- inv<void>('0xDFEA23EC90113657', _h(p0));
133
+ static N_0x453D16D41FC51D3E(p0: boolean): void {
134
+ inv<void>('0x453D16D41FC51D3E', p0);
145
135
  }
146
136
 
147
137
  /**
138
+ * @param p0
139
+ * @param p1
140
+ * @param p2
141
+ * @param p3
142
+ * @param p4
143
+ * @param p5
144
+ * @param p6
148
145
  * @returns
149
146
  */
150
- static getTvChannel(): number {
151
- return inv<number>('0xF90FBFD68F3C59AE', rai());
152
- }
153
-
154
- static N_0x9D1B0B5066205692(): void {
155
- inv<void>('0x9D1B0B5066205692');
147
+ static N_0xE63D68F455CA0B47(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any, p6: any): any {
148
+ return inv<number>('0xE63D68F455CA0B47', p0, p1, p2, p3, p4, p5, p6);
156
149
  }
157
150
 
158
151
  /**
159
- * @param alpha
152
+ * @param pos
153
+ * @param colorR
154
+ * @param colorG
155
+ * @param colorB
156
+ * @param range
157
+ * @param intensity
160
158
  */
161
- static setParticleFxNonLoopedAlpha(alpha: number): void {
162
- inv<void>('0xE8A35938A7026CEA', f(alpha));
159
+ static drawLightWithRange(pos: Vector3, colorR: number, colorG: number, colorB: number, range: number, intensity: number): void {
160
+ inv<void>('0xD2D9E04C0DF927F4', f(pos.x), f(pos.y), f(pos.z), colorR, colorG, colorB, f(range), f(intensity));
163
161
  }
164
162
 
165
163
  /**
166
- * @param point
164
+ * Only used in guama1 R* SP Script while spawning the ship
165
+ * *SET_ENTITY_QUATERNION** - SET_ENTITY_RENDER_*
166
+ *
167
+ * @param vehicle
168
+ * @param toggle
167
169
  */
168
- static destroyTrackedPoint(point: number): void {
169
- inv<void>('0x37A59922109F8F1C', point);
170
+ static setEntityRenderGuarmaShip(vehicle: Vehicle, toggle: boolean): void {
171
+ inv<void>('0xC38B4952B728397A', vehicle.handle, toggle);
170
172
  }
171
173
 
172
174
  /**
173
- * @param p0
175
+ * @param effectName
176
+ * @param entity
177
+ * @param offset
178
+ * @param rot
179
+ * @param scale
180
+ * @param axisX
181
+ * @param axisY
182
+ * @param axisZ
183
+ * @returns
174
184
  */
175
- static N_0x67B0778C62E74423(p0: any): void {
176
- inv<void>('0x67B0778C62E74423', p0);
185
+ static startNetworkedParticleFxNonLoopedOnEntity(effectName: string | null, entity: Entity, offset: Vector3, rot: Vector3, scale: number, axisX: boolean, axisY: boolean, axisZ: boolean): boolean {
186
+ return inv<boolean>('0xE6CFE43937061143', effectName, entity.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), f(scale), axisX, axisY, axisZ, rai());
177
187
  }
178
188
 
179
189
  /**
180
- * ANIMPOSTFX_*
181
- *
182
- * @param effectNameHash
190
+ * @param lock
183
191
  */
184
- static N_0x71845905BCCDE781(effectNameHash: string | number): void {
185
- inv<void>('0x71845905BCCDE781', _h(effectNameHash));
192
+ static setPhotoModeExposureLocked(lock: boolean): void {
193
+ inv<void>('0x5CD6A2CCE5087161', lock);
186
194
  }
187
195
 
188
- static N_0xF2F543D48F319A3A(): void {
189
- inv<void>('0xF2F543D48F319A3A');
196
+ static N_0x815653A42C5ABE76(): void {
197
+ inv<void>('0x815653A42C5ABE76');
190
198
  }
191
199
 
192
200
  /**
193
- * ANIMPOSTFX_*
194
- *
201
+ * @param effectName
195
202
  * @returns
196
203
  */
197
- static N_0x3DA7A10583A4BEC0(): boolean {
198
- return inv<boolean>('0x3DA7A10583A4BEC0', rai());
199
- }
200
-
201
- /**
202
- * Does not affect weapons, particles, fire/explosions, flashlights or the sun.
203
- * When set to true, all emissive textures (including ped components that have light effects), street lights, building lights, vehicle lights, etc will all be turned off. state: True turns off all artificial light sources in the map: buildings, street lights, car lights, etc. False turns them back on.
204
- *
205
- * @param state
206
- */
207
- static setArtificialLightsState(state: boolean): void {
208
- inv<void>('0xB2797619A7C7747B', state);
204
+ static animpostfxIsTagPlaying(effectName: string | null): any {
205
+ return inv<number>('0x2D4F9C852CE8A253', effectName);
209
206
  }
210
207
 
211
208
  /**
212
- * Possible values:
213
- * "CSM_ST_POINT"
214
- * "CSM_ST_LINEAR"
215
- * "CSM_ST_BOX3x3"
216
- * "CSM_ST_BOX4x4"
217
- * "CSM_ST_DITHER2_LINEAR"
218
- * "CSM_ST_CUBIC"
219
- * "CSM_ST_POISSON16"
220
- * "CSM_ST_SOFT8"
221
- * "CSM_ST_SOFT16"
222
- * "CSM_ST_SOFT32"
223
- * "CSM_ST_DITHER16_RPDB"
224
- * "CSM_ST_POISSON16_RPDB_GNORM"
225
- * "CSM_ST_HIGHRES_BOX4x4"
226
- * "CSM_ST_ESM"
209
+ * enum class eSnowCoverageType
210
+ * {
211
+ * Primary,
212
+ * Secondary,
213
+ * Xmas,
214
+ * XmasSecondary // since b1232
215
+ * };
227
216
  *
228
217
  * @param type
229
218
  */
230
- static cascadeShadowsSetShadowSampleType(type: string | null): void {
231
- inv<void>('0xCE4774E0F9AD48D1', type);
219
+ static setSnowCoverageType(type: number): void {
220
+ inv<void>('0xF02A9C330BBFC5C7', type);
232
221
  }
233
222
 
234
223
  /**
235
- * @param p0
224
+ * @param effectNameHash
236
225
  */
237
- static N_0x519928DF02EB5101(p0: any): void {
238
- inv<void>('0x519928DF02EB5101', p0);
226
+ static animpostfxPlayTag(effectNameHash: string | number): void {
227
+ inv<void>('0x9B8D5D4CB8AF58B3', _h(effectNameHash));
239
228
  }
240
229
 
241
230
  /**
242
- * Gets set to 1 when GET_STATUS_OF_TAKE_HIGH_QUALITY_PHOTO = PHOTO_OPERATION_SUCCEEDED
243
- *
244
- * @param p0
231
+ * @param pickupObject
232
+ * @param toggle
245
233
  */
246
- static N_0x0D5B19C34068FEE7(p0: any): void {
247
- inv<void>('0x0D5B19C34068FEE7', p0);
234
+ static blockPickupObjectLight(pickupObject: Prop, toggle: boolean): void {
235
+ inv<void>('0x50C14328119E1DD1', pickupObject.handle, toggle);
248
236
  }
249
237
 
250
238
  /**
251
- * type must be less than or equal to 20
252
- *
253
- * @param entity
254
- * @param type
255
- */
256
- static setLightsTypeForEntity(entity: Entity, type: number): void {
257
- inv<void>('0xAB72C67163DC4DB4', entity.handle, type);
258
- }
259
-
260
- /**
261
- * @param p0
262
- * @param p1
263
- * @param p2
264
- * @param p3
265
- */
266
- static N_0xD543487A1F12828F(p0: any, p1: any, p2: any, p3: any): void {
267
- inv<void>('0xD543487A1F12828F', p0, p1, p2, p3);
268
- }
269
-
270
- /**
271
- * @param p0
272
- */
273
- static N_0xFF8018C778349234(p0: any): void {
274
- inv<void>('0xFF8018C778349234', p0);
275
- }
276
-
277
- /**
278
- * Old name: _SET_HIDOF_ENV_BLUR_PARAMS
279
- *
280
- * @param p0
281
- * @param p1
282
- * @param p2
283
- * @param p3
284
- * @param p4
285
- * @param p5
286
- */
287
- static setHidofOverride(p0: boolean, p1: boolean, p2: number, p3: number, p4: number, p5: number): void {
288
- inv<void>('0xCC23AA1A7CBFE840', p0, p1, f(p2), f(p3), f(p4), f(p5));
289
- }
290
-
291
- /**
292
- * @param effectName
239
+ * @param effectName
293
240
  * @param entity
294
241
  * @param offset
295
242
  * @param rot
296
- * @param boneIndex
297
243
  * @param scale
298
244
  * @param xAxis
299
245
  * @param yAxis
300
246
  * @param zAxis
301
247
  * @returns
302
248
  */
303
- static startParticleFxLoopedOnEntityBone(effectName: string | null, entity: Entity, offset: Vector3, rot: Vector3, boneIndex: number, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): number {
304
- return inv<number>('0xD3BA6EC7F2FBD5E9', effectName, entity.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), boneIndex, f(scale), xAxis, yAxis, zAxis, rai());
305
- }
306
-
307
- /**
308
- * Sets the checkpoint icon color.
309
- *
310
- * @param checkpoint
311
- * @param color
312
- * @param alpha
313
- */
314
- static setCheckpointRgba2(checkpoint: number, color: Color, alpha: number): void {
315
- inv<void>('0x99AFF17222D4DEB4', checkpoint, color.r, color.g, color.b, color.a, alpha);
249
+ static startNetworkedParticleFxLoopedOnEntity(effectName: string | null, entity: Entity, offset: Vector3, rot: Vector3, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): number {
250
+ return inv<number>('0x8F90AB32E1944BDE', effectName, entity.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), f(scale), xAxis, yAxis, zAxis, rai());
316
251
  }
317
252
 
318
253
  /**
319
- * nullsub, doesn't do anything (GTA5 leftover, there is no phone in RDR3)
320
- *
321
- * @param p0
322
- * @param photoRotation
254
+ * @param pos
255
+ * @param radius
323
256
  */
324
- static drawLowQualityPhotoToPhone(p0: boolean, photoRotation: number): void {
325
- inv<void>('0xF1142E5D64B47802', p0, photoRotation);
257
+ static removeParticleFxInRange(pos: Vector3, radius: number): void {
258
+ inv<void>('0x87B5905ECA623B68', f(pos.x), f(pos.y), f(pos.z), f(radius));
326
259
  }
327
260
 
328
261
  /**
329
- * https://gfycat.com/meagerfaireyra
262
+ * https://github.com/femga/rdr3_discoveries/blob/master/graphics/ptfx/ptfx_assets_looped.lua
330
263
  *
331
- * @param entity
332
- * @param color
333
- */
334
- static setLightsColorForEntity(entity: Entity, color: Color): void {
335
- inv<void>('0x6EC2A67962296F49', entity.handle, color.r, color.g, color.b, color.a);
336
- }
337
-
338
- /**
339
264
  * @param effectName
340
- * @param ped
341
- * @param offset
265
+ * @param pos
342
266
  * @param rot
343
- * @param boneIndex
344
267
  * @param scale
345
- * @param axisX
346
- * @param axisY
347
- * @param axisZ
268
+ * @param xAxis
269
+ * @param yAxis
270
+ * @param zAxis
271
+ * @param p11
348
272
  * @returns
349
273
  */
350
- static startParticleFxNonLoopedOnPedBone2(effectName: string | null, ped: Ped, offset: Vector3, rot: Vector3, boneIndex: number, scale: number, axisX: boolean, axisY: boolean, axisZ: boolean): any {
351
- return inv<number>('0xC695870B8A149B96', effectName, ped.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), boneIndex, f(scale), axisX, axisY, axisZ);
352
- }
353
-
354
- static N_0x981C7D863980FA51(): void {
355
- inv<void>('0x981C7D863980FA51');
274
+ static startParticleFxLoopedAtCoord(effectName: string | null, pos: Vector3, rot: Vector3, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean, p11: boolean): number {
275
+ return inv<number>('0xBA32867E86125D3A', effectName, f(pos.x), f(pos.y), f(pos.z), f(rot.x), f(rot.y), f(rot.z), f(scale), xAxis, yAxis, zAxis, p11, rai());
356
276
  }
357
277
 
358
278
  /**
359
- * @param p0
360
- * @param p1
279
+ * @returns
361
280
  */
362
- static N_0x9F6D859C80708B26(p0: boolean, p1: boolean): void {
363
- inv<void>('0x9F6D859C80708B26', p0, p1);
281
+ static getTimecycleModifierIndex(): number {
282
+ return inv<number>('0xA705394293E2B3D3', rai());
364
283
  }
365
284
 
366
285
  /**
367
- * @param oldAsset
368
- * @param newAsset
286
+ * nullsub, doesn't do anything
287
+ *
288
+ * @param toggle
369
289
  */
370
- static setParticleFxOverride(oldAsset: string | null, newAsset: string | null): void {
371
- inv<void>('0xBE711A169E9C7E95', oldAsset, newAsset);
290
+ static enableMovieSubtitles(toggle: boolean): void {
291
+ inv<void>('0x6FC9B065229C0787', toggle);
372
292
  }
373
293
 
374
294
  /**
375
295
  * @param p0
376
296
  * @param p1
297
+ * @param p2
298
+ * @param p3
299
+ * @param p4
377
300
  */
378
- static N_0xA0F4D12D6042F6D5(p0: any, p1: any): void {
379
- inv<void>('0xA0F4D12D6042F6D5', p0, p1);
301
+ static N_0x171C18E994C1A395(p0: any, p1: any, p2: any, p3: any, p4: any): void {
302
+ inv<void>('0x171C18E994C1A395', p0, p1, p2, p3, p4);
380
303
  }
381
304
 
382
305
  /**
383
- * @param ptfxHandle
384
- * @param pos
385
- * @param rot
306
+ * Doesn't actually return anything. ANIMPOSTFX_*
307
+ *
308
+ * @returns
386
309
  */
387
- static setParticleFxLoopedOffsets(ptfxHandle: number, pos: Vector3, rot: Vector3): void {
388
- inv<void>('0xD3A4A95FC94FE83B', ptfxHandle, f(pos.x), f(pos.y), f(pos.z), f(rot.x), f(rot.y), f(rot.z));
310
+ static N_0xC37792A3F9C90771(): any {
311
+ return inv<number>('0xC37792A3F9C90771');
389
312
  }
390
313
 
391
314
  /**
392
- * @param p0
315
+ * Adds Vegetation Blocking Zone, Added Snow Flattening veg mod Zone
316
+ * Returns veg modifier handle
317
+ *
318
+ * @param volume
319
+ * @param p1
320
+ * @param flags
321
+ * @param p3
322
+ * @returns
393
323
  */
394
- static disableStaticVegModifier(p0: string | number): void {
395
- inv<void>('0xDD0BC0EDCB2162F6', _h(p0));
324
+ static addVegModifierZone(volume: Volume, p1: number, flags: number, p3: number): number {
325
+ return inv<number>('0xBD3324281E8B9933', volume.handle, p1, flags, p3, rai());
396
326
  }
397
327
 
398
328
  /**
399
- * @param ptfxHandle
400
- * @param scale
329
+ * Returns proxyInteriorIndex
330
+ *
331
+ * @param interiorId
332
+ * @returns
401
333
  */
402
- static setParticleFxLoopedScale(ptfxHandle: number, scale: number): void {
403
- inv<void>('0x1A9E1C0D98D093B7', ptfxHandle, f(scale));
334
+ static getProxyInteriorIndex(interiorId: number): number {
335
+ return inv<number>('0x5D1C5D8E62E8EE1C', interiorId, rai());
336
+ }
337
+
338
+ static endPetrolTrailDecals(): void {
339
+ inv<void>('0x0E126AAE933F3B56');
404
340
  }
405
341
 
406
342
  /**
407
- * https://github.com/femga/rdr3_discoveries/blob/master/graphics/ptfx/ptfx_assets_non_looped.lua
343
+ * ANIMPOSTFX_*
408
344
  *
409
345
  * @param effectName
410
- * @param pos
411
- * @param rot
412
- * @param scale
413
- * @param eventType
414
- * @param bPeekOnly
415
- * @param bIsRegistered
416
- * @returns
346
+ * @param p1
347
+ * @param p2
348
+ * @returns p3
417
349
  */
418
- static startParticleFxNonLoopedAtCoord(effectName: string | null, pos: Vector3, rot: Vector3, scale: number, eventType: number, bPeekOnly: boolean, bIsRegistered: boolean): number {
419
- return inv<number>('0x2E80BF72EF7C87AC', effectName, f(pos.x), f(pos.y), f(pos.z), f(rot.x), f(rot.y), f(rot.z), f(scale), eventType, bPeekOnly, bIsRegistered, rai());
350
+ static N_0xFBF161FCFEC8589E(effectName: string | null, p1: number, p2: boolean): [boolean, boolean] {
351
+ const result = inv<[boolean, number]>('0xFBF161FCFEC8589E', effectName, p1, p2, pvi(), rai());
352
+ return [!!result[0], !!result[1]];
420
353
  }
421
354
 
422
355
  /**
423
- * @param p0
356
+ * 0 = succeeded
357
+ * 1 = getting status
358
+ * 2 = failed
359
+ *
424
360
  * @returns
425
361
  */
426
- static isStaticVegModifierEnabled(p0: string | number): any {
427
- return inv<number>('0xDE9BAD3292AA6D5E', _h(p0));
362
+ static getStatusOfSaveHighQualityPhoto(): number {
363
+ return inv<number>('0xD6663EC374092383', rai());
428
364
  }
429
365
 
430
366
  /**
431
- * @param scale
367
+ * @returns
432
368
  */
433
- static setParticleFxBulletImpactScale(scale: number): void {
434
- inv<void>('0xA53C8D7D0F8C74D0', f(scale));
369
+ static isPhotoFrame(): boolean {
370
+ return inv<boolean>('0x86076AE35CBBE55F', rai());
435
371
  }
436
372
 
437
373
  /**
@@ -443,498 +379,446 @@ export class Graphics {
443
379
  * @param p5
444
380
  * @param p6
445
381
  * @param p7
382
+ * @param p8
383
+ * @param p9
384
+ * @param p10
446
385
  */
447
- static cascadeShadowsSetCascadeBounds(p0: any, p1: boolean, p2: number, p3: number, p4: number, p5: number, p6: boolean, p7: number): void {
448
- inv<void>('0xD9EDB2E4512D563E', p0, p1, f(p2), f(p3), f(p4), f(p5), p6, f(p7));
386
+ static N_0x4D14AF567FC02885(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any, p6: any, p7: any, p8: any, p9: any, p10: any): void {
387
+ inv<void>('0x4D14AF567FC02885', p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
449
388
  }
450
389
 
451
390
  /**
452
- * @param value
391
+ * @param effectName
392
+ * @returns
453
393
  */
454
- static changePhotoModeExposure(value: number): void {
455
- inv<void>('0xC8D0611D9A0CF5D3', f(value));
394
+ static animpostfxIsRunning(effectName: string | null): boolean {
395
+ return inv<boolean>('0x4A123E85D7C4CA0B', effectName, rai());
456
396
  }
457
397
 
458
398
  /**
459
- * @param point
460
- * @returns
399
+ * Used for script function RPG_GLOBAL_STATS__PRIVATE__ACTIVATE_STAT_FLAG - Quite and Inspiration Aura equip
400
+ * Params: 0f, 2f, 2f
401
+ *
402
+ * @param p0
403
+ * @param p1
404
+ * @param p2
461
405
  */
462
- static isTrackedPointValid(point: number): any {
463
- return inv<number>('0xF2FDDCC8C6BAE1B3', point);
406
+ static setEntityAura(p0: number, p1: number, p2: number): void {
407
+ inv<void>('0x249CD6B7285536F2', f(p0), f(p1), f(p2));
464
408
  }
465
409
 
466
410
  /**
467
- * Old name: _ENABLE_EXTRA_TIMECYCLE_MODIFIER_STRENGTH
411
+ * ANIMPOSTFX_*
468
412
  *
469
- * @param strength
413
+ * @param effectNameHash
414
+ * @returns
470
415
  */
471
- static enableMoonCycleOverride(strength: number): void {
472
- inv<void>('0x6FE93BCC7BF12B63', f(strength));
416
+ static N_0xE75CDDEBF618C8FF(effectNameHash: string | number): boolean {
417
+ return inv<boolean>('0xE75CDDEBF618C8FF', _h(effectNameHash), rai());
473
418
  }
474
419
 
475
- static setDisablePetrolDecalsIgnitingThisFrame(): void {
476
- inv<void>('0x53ED07BF368EDA59');
420
+ /**
421
+ * @param pos
422
+ */
423
+ static addBloodTrailSplat(pos: Vector3): void {
424
+ inv<void>('0xF5E45CB1CF965D2D', f(pos.x), f(pos.y), f(pos.z));
477
425
  }
478
426
 
479
427
  /**
480
- * Used in CREATE_BEZIER_BLOOD_TRAIL_OF_TYPE
428
+ * https://i.imgur.com/ULQU9US.jpg
429
+ * More rounded and small puddle
481
430
  *
482
- * @param p0
431
+ * @param pos
432
+ * @param unused
483
433
  */
484
- static N_0x4BD66B4E3427689B(p0: string | null): void {
485
- inv<void>('0x4BD66B4E3427689B', p0);
434
+ static addBloodPool(pos: Vector3, unused: boolean): void {
435
+ inv<void>('0xFA2ECC78A6014D4F', f(pos.x), f(pos.y), f(pos.z), unused);
486
436
  }
487
437
 
488
438
  /**
489
- * Enables/disables a kind of 'shiny' effect on metals.
439
+ * Only used in finale2, smuggler2, winter4
440
+ * _SET_CLOUD_A* - _SET_CLOUD_H*
490
441
  *
491
- * @param object
492
- * @param toggle
442
+ * @param pos
493
443
  */
494
- static setPearlescentFxEnabled(object: Prop, toggle: boolean): void {
495
- inv<void>('0x72E30372E7CC4415', object.handle, toggle);
444
+ static setCloudPosition(pos: Vector3): void {
445
+ inv<void>('0x10C1767B93257480', f(pos.x), f(pos.y), f(pos.z));
496
446
  }
497
447
 
498
448
  /**
499
- * @param enabled
449
+ * @param p0
450
+ * @param p1
500
451
  */
501
- static setSniperGlintsEnabled(enabled: boolean): void {
502
- inv<void>('0x6E8EB45A4F4460EB', enabled);
452
+ static N_0xA04EF43030593ABC(p0: any, p1: any): void {
453
+ inv<void>('0xA04EF43030593ABC', p0, p1);
503
454
  }
504
455
 
505
456
  /**
506
- * Example:
507
- * local hash = GetHashKey("CLOTHING_ITEM_M_EYES_001_TINT_001")
508
- * _GENERATE_SWATCH_TEXTURE(0, hash, 0, true)
509
- * metapedType: see 0xEC9A1261BF0CE510
457
+ * Called together with FREE_MEMORY_FOR_LOW_QUALITY_PHOTO
510
458
  *
511
- * @param slotId
512
- * @param componentHash
513
- * @param metapedType
514
- * @param p3
459
+ * @param p0
460
+ * @returns
515
461
  */
516
- static generateSwatchTexture(slotId: number, componentHash: string | number, metapedType: number, p3: boolean): void {
517
- inv<void>('0x160921255327C591', slotId, _h(componentHash), metapedType, p3);
462
+ static beginCreateLowQualityCopyOfPhoto(p0: number): boolean {
463
+ return inv<boolean>('0x494A9874F17A7D50', p0, rai());
518
464
  }
519
465
 
520
466
  /**
521
- * @param entity
522
- * @param mask
523
- * @param intensity
467
+ * @param player
524
468
  */
525
- static addEntityToEntityMaskWithIntensity(entity: Entity, mask: number, intensity: number): void {
526
- inv<void>('0x958DEBD9353C0935', entity.handle, mask, f(intensity));
469
+ static setPlayerAppearInPhoto(player: Player): void {
470
+ inv<void>('0x75D568607909333E', player.handle);
527
471
  }
528
472
 
529
- static disableHdtexThisFrame(): void {
530
- inv<void>('0x98A7CD5EA379A854');
473
+ /**
474
+ * @param checkpoint
475
+ * @returns
476
+ */
477
+ static doesCheckpointHaveFx(checkpoint: number): any {
478
+ return inv<number>('0x4C11CCACB7C02B6E', checkpoint);
531
479
  }
532
480
 
533
481
  /**
534
- * @param entity
482
+ * https://github.com/femga/rdr3_discoveries/blob/master/graphics/timecycles
483
+ *
484
+ * @param modifierName
535
485
  */
536
- static attachTvAudioToEntity(entity: Entity): void {
537
- inv<void>('0x40866A418EB8EFDE', entity.handle);
486
+ static setTimecycleModifier(modifierName: string | null): void {
487
+ inv<void>('0xFA08722A5EA82DA7', modifierName);
538
488
  }
539
489
 
540
490
  /**
541
- * @param effectName
542
- * @param ped
543
- * @param offset
544
- * @param rot
545
- * @param boneIndex
546
- * @param scale
547
- * @param axisX
548
- * @param axisY
549
- * @param axisZ
550
- * @returns
491
+ * @param strength
551
492
  */
552
- static startParticleFxNonLoopedOnPedBone(effectName: string | null, ped: Ped, offset: Vector3, rot: Vector3, boneIndex: number, scale: number, axisX: boolean, axisY: boolean, axisZ: boolean): boolean {
553
- return inv<boolean>('0x3FAA72BD940C3AC0', effectName, ped.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), boneIndex, f(scale), axisX, axisY, axisZ, rai());
493
+ static setTimecycleModifierStrength(strength: number): void {
494
+ inv<void>('0xFDB74C9CC54C3F37', f(strength));
554
495
  }
555
496
 
556
497
  /**
557
- * contentId: returned by NETWORK::_UGC_QUERY_GET_CREATOR_PHOTO(uVar0, 0, sParam3)
558
- *
559
- * @param contentId
560
- * @returns
498
+ * @param toggle
561
499
  */
562
- static getStatusOfLoadMissionCreatorPhoto(contentId: string | null): number {
563
- return inv<number>('0xC71B50AE58D07369', contentId, rai());
500
+ static togglePausedRenderphases(toggle: boolean): void {
501
+ inv<void>('0xEF9E1C45732F55FA', toggle);
564
502
  }
565
503
 
566
504
  /**
505
+ * R* Script spd_agnesdow1: p0 = SPD_AGNES_DOWD_01
506
+ *
567
507
  * @param p0
508
+ * @returns
568
509
  */
569
- static N_0x6C03118E9E5C1A14(p0: any): void {
570
- inv<void>('0x6C03118E9E5C1A14', p0);
510
+ static N_0xFD05B1DDE83749FA(p0: string | null): boolean {
511
+ return inv<boolean>('0xFD05B1DDE83749FA', p0, rai());
571
512
  }
572
513
 
573
514
  /**
574
- * Related to Campfires.
575
- * p1: AMB_BONFIRE_MP, AMB_CAMPFIRE_LRG_MP
576
- *
577
- * @param entity
578
- * @param p1
579
- * @param r
580
- * @param g
581
- * @param b
515
+ * @param p0
582
516
  */
583
- static setParticleFxAmbientColour(entity: Entity, p1: string | null, r: number, g: number, b: number): void {
584
- inv<void>('0x3C61B52B00848C26', entity.handle, p1, f(r), f(g), f(b));
517
+ static setParticleFxFootLodrangeScale(p0: number): void {
518
+ inv<void>('0x2A1625858887D4E6', f(p0));
585
519
  }
586
520
 
587
521
  /**
588
- * Resets the effect of SET_PARTICLE_FX_OVERRIDE
589
- *
590
- * @param name
522
+ * @param ptfxHandle
523
+ * @returns
591
524
  */
592
- static resetParticleFxOverride(name: string | null): void {
593
- inv<void>('0x274B3DABF7E72DEF', name);
525
+ static doesParticleFxLoopedExist(ptfxHandle: number): boolean {
526
+ return inv<boolean>('0x9DD5AFF561E88F2A', ptfxHandle, rai());
594
527
  }
595
528
 
596
529
  /**
597
- * must be called after ANIMPOSTFX_PLAY, strength 0.0f - 1.0f
598
- *
599
530
  * @param effectName
600
- * @param strength
531
+ * @param entity
532
+ * @param offset
533
+ * @param rot
534
+ * @param scale
535
+ * @param axisX
536
+ * @param axisY
537
+ * @param axisZ
538
+ * @returns
601
539
  */
602
- static animpostfxSetStrength(effectName: string | null, strength: number): void {
603
- inv<void>('0xCAB4DD2D5B2B7246', effectName, f(strength));
540
+ static startParticleFxNonLoopedOnEntity(effectName: string | null, entity: Entity, offset: Vector3, rot: Vector3, scale: number, axisX: boolean, axisY: boolean, axisZ: boolean): boolean {
541
+ return inv<boolean>('0xFF4C64C513388C12', effectName, entity.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), f(scale), axisX, axisY, axisZ, rai());
604
542
  }
605
543
 
606
544
  /**
607
- * @param p0
608
- * @param p1
609
- * @param p2
610
- * @param p3
611
- * @param p4
545
+ * @returns
612
546
  */
613
- static N_0xCC3B787E73E64160(p0: any, p1: any, p2: any, p3: any, p4: any): void {
614
- inv<void>('0xCC3B787E73E64160', p0, p1, p2, p3, p4);
547
+ static getTogglePausedRenderphasesStatus(): boolean {
548
+ return inv<boolean>('0x86ED21BDB2791CE8', rai());
615
549
  }
616
550
 
617
551
  /**
618
- * @param volume
552
+ * Only used in R* SP Script spd_agnesdown1
553
+ *
554
+ * @param p0
555
+ * @returns
619
556
  */
620
- static setTvVolume(volume: number): void {
621
- inv<void>('0x73A97068787D7231', f(volume));
557
+ static N_0x5C9C3A466B3296A8(p0: any): any {
558
+ return inv<number>('0x5C9C3A466B3296A8', p0);
622
559
  }
623
560
 
624
561
  /**
625
- * Creates a tracked point, useful for checking the visibility of a 3D point on screen.
626
- *
627
- * @returns
562
+ * @param entity
563
+ * @param mask
628
564
  */
629
- static createTrackedPoint(): number {
630
- return inv<number>('0xFB405CB357C69CB9', rai());
565
+ static addEntityToEntityMask(entity: Entity, mask: number): void {
566
+ inv<void>('0xC6F81FCD15350323', entity.handle, mask);
631
567
  }
632
568
 
633
569
  /**
634
- * @param effectNameHash
570
+ * Always returns 200.
571
+ *
635
572
  * @returns
636
573
  */
637
- static animpostfxIsPreloadingByStackhash(effectNameHash: string | number): any {
638
- return inv<number>('0x59EA80079B86D8C7', _h(effectNameHash));
574
+ static getMaxNumberOfLocalPhotos(): number {
575
+ return inv<number>('0x8E587FCD30E05592', rai());
639
576
  }
640
577
 
641
578
  /**
642
- * @param personaPhotoLocalCacheType
579
+ * @param channel
643
580
  */
644
- static N_0xA1A86055792FB249(personaPhotoLocalCacheType: number): void {
645
- inv<void>('0xA1A86055792FB249', personaPhotoLocalCacheType);
581
+ static setTvChannel(channel: number): void {
582
+ inv<void>('0x593FAF7FC9401A56', channel);
646
583
  }
647
584
 
648
585
  /**
649
- * @param p0
586
+ * @param pos
587
+ * @param p3
650
588
  */
651
- static setPhotoSelfStat(p0: boolean): void {
652
- inv<void>('0x2705D18C11B61046', p0);
589
+ static addPetrolTrailDecalInfo(pos: Vector3, p3: number): void {
590
+ inv<void>('0x73354FB6D03D2E8A', f(pos.x), f(pos.y), f(pos.z), f(p3));
653
591
  }
654
592
 
655
593
  /**
656
- * https://github.com/femga/rdr3_discoveries/blob/master/graphics/animpostfx
594
+ * ANIMPOSTFX_*
657
595
  *
658
596
  * @param effectName
597
+ * @returns
659
598
  */
660
- static animpostfxPlay(effectName: string | null): void {
661
- inv<void>('0x4102732DF6B4005F', effectName);
599
+ static N_0xB958D97A0DFAA0C2(effectName: string | null): boolean {
600
+ return inv<boolean>('0xB958D97A0DFAA0C2', effectName, rai());
662
601
  }
663
602
 
664
603
  /**
665
- * *DISABLE**
604
+ * @param txdHash
605
+ * @param dict
606
+ * @returns
666
607
  */
667
- static N_0x4046493D2EEACA0E(): void {
668
- inv<void>('0x4046493D2EEACA0E');
608
+ static isTextureInDict(txdHash: string | number, dict: string | number): any {
609
+ return inv<number>('0xA2A51869BDED733B', _h(txdHash), _h(dict));
669
610
  }
670
611
 
671
- static pedshotPreviousPersonaPhotoDataCleanup(): void {
672
- inv<void>('0x3E2FDDBE435A8787');
612
+ static N_0x910E260AEAD855DE(): void {
613
+ inv<void>('0x910E260AEAD855DE');
673
614
  }
674
615
 
675
616
  /**
676
- * effectName2, p2 and p3 are unused ANIMPOSTFX_*
617
+ * Creates blood pools for the given ped in some interval for a few seconds.
677
618
  *
678
- * @param effectName
679
- * @param effectName2
680
- * @param p2
681
- * @param p3
619
+ * @param ped
682
620
  */
683
- static N_0x26DD2FB0A88CC412(effectName: string | null, effectName2: string | null, p2: any, p3: any): void {
684
- inv<void>('0x26DD2FB0A88CC412', effectName, effectName2, p2, p3);
621
+ static addBloodPoolsForPed(ped: Ped): void {
622
+ inv<void>('0xDFCE8CE9F3EBE93F', ped.handle);
685
623
  }
686
624
 
687
625
  /**
688
- * Example: https://pastebin.com/tTgpER9A
689
- *
690
- * @param slot
691
- * @param p1
626
+ * @param texture
627
+ * @param ped
628
+ * @param playerSlot
629
+ * @returns
692
630
  */
693
- static generateSwatchTextureDirectly(slot: number, p1: any): void {
694
- inv<void>('0x646ED1A1D28487DF', slot, p1);
631
+ static pedshotGeneratePersonaPhoto(texture: string | null, ped: Ped, playerSlot: number): boolean {
632
+ return inv<boolean>('0xD9C24F53631F2372', texture, ped.handle, playerSlot, rai());
695
633
  }
696
634
 
697
635
  /**
698
- * @param p0
636
+ * @returns
699
637
  */
700
- static setParticleFxBulletImpactLodrangeScale(p0: number): void {
701
- inv<void>('0x8DCCC98DC0DBF9E4', f(p0));
638
+ static queueOperationToCreateSortedListOfPhotos(): any {
639
+ return inv<number>('0xA42EDF1E88734A7E');
702
640
  }
703
641
 
704
642
  /**
705
643
  * @param p0
706
- * @param p1
707
644
  */
708
- static N_0x1FF8731BE1DFC0C0(p0: any, p1: any): void {
709
- inv<void>('0x1FF8731BE1DFC0C0', p0, p1);
645
+ static setRegionPhotoTakenStat(p0: string | null): void {
646
+ inv<void>('0xD1031B83AC093BC7', p0);
710
647
  }
711
648
 
712
649
  /**
713
- * Health Core Effect Filter Potency: p1 = 1
714
- * Stamina Core Effect Filter Potency: p1 = 2
715
- * Multiple Core Effect Filter Potency: p1 = 3
716
- *
717
650
  * @param effectName
718
- * @param p1
719
- * @param potency
720
651
  */
721
- static animpostfxSetPotency(effectName: string | null, p1: number, potency: number): void {
722
- inv<void>('0xF972F0AB16DC5260', effectName, p1, f(potency));
652
+ static animpostfxSetToUnload(effectName: string | null): void {
653
+ inv<void>('0x37D7BDBA89F13959', effectName);
723
654
  }
724
655
 
725
656
  /**
657
+ * @param proxyInteriorIndex
726
658
  * @returns
727
659
  */
728
- static pedshotIsAvailable(): any {
729
- return inv<number>('0xAF6E67D073D2DCE2');
660
+ static isProxyInteriorIndexArtificialLightsEnabled(proxyInteriorIndex: number): any {
661
+ return inv<number>('0x113857D66A9CABE6', proxyInteriorIndex);
730
662
  }
731
663
 
732
664
  /**
733
665
  * @param p0
734
666
  */
735
- static N_0xD9BC98B55BCFAA9B(p0: any): void {
736
- inv<void>('0xD9BC98B55BCFAA9B', p0);
667
+ static setPhotoInPhotomodeStat(p0: boolean): void {
668
+ inv<void>('0xFA91736933AB3D93', p0);
737
669
  }
738
670
 
739
671
  /**
740
- * @param pos
741
- * @param xScale
742
- * @param yScale
743
- * @param rotation
744
- * @param color
745
- * @param alpha
672
+ * @param entity
673
+ * @param intensity
746
674
  */
747
- static drawTvChannel(pos: Vector2, xScale: number, yScale: number, rotation: number, color: Color, alpha: number): void {
748
- inv<void>('0xC0A145540254A840', f(pos.x), f(pos.y), f(xScale), f(yScale), f(rotation), color.r, color.g, color.b, color.a, alpha);
675
+ static setLightsIntensityForEntity(entity: Entity, intensity: number): void {
676
+ inv<void>('0x07C0F87AAC57F2E4', entity.handle, f(intensity));
749
677
  }
750
678
 
751
679
  /**
752
- * @param handle
680
+ * @param entity
753
681
  */
754
- static removeGrassCullSphere(handle: number): void {
755
- inv<void>('0xAE7BF7CA9E4BA48D', handle);
682
+ static updateLightsOnEntity(entity: Entity): void {
683
+ inv<void>('0xBDBACB52A03CC760', entity.handle);
756
684
  }
757
685
 
758
686
  /**
759
- * @param slots
760
687
  * @returns
761
688
  */
762
- static createSwatchTextureDict(slots: number): any {
763
- return inv<number>('0x3D084D5568FB4028', slots);
689
+ static getStatusOfTakeHighQualityPhoto(): number {
690
+ return inv<number>('0x4A3DA74C3CCB1725', rai());
764
691
  }
765
692
 
766
693
  /**
767
- * _GET_C* - _GET_E*
768
- *
769
694
  * @returns
770
695
  */
771
- static getModifiedVisibilityDistance(): number {
772
- return inv<number>('0x25CA89B2A39DCC69', raf());
696
+ static N_0x285438C26C732F9D(): any {
697
+ return inv<number>('0x285438C26C732F9D');
773
698
  }
774
699
 
775
700
  /**
776
- * nullsub, doesn't do anything
701
+ * Sets a flag defining whether or not script draw commands should continue being drawn behind the pause menu. This is usually used for draw commands that are used with a world render target.
777
702
  *
778
- * @param p0
703
+ * @param toggle
779
704
  */
780
- static N_0x94B261F1F35293E1(p0: any): void {
781
- inv<void>('0x94B261F1F35293E1', p0);
705
+ static setScriptGfxDrawBehindPausemenu(toggle: boolean): void {
706
+ inv<void>('0x906B86E6D7896B9E', toggle);
782
707
  }
783
708
 
784
709
  /**
785
- * Probably changes tvs from being a 3d audio to being "global" audio
786
- *
787
- * @param toggle
710
+ * @param p0
788
711
  */
789
- static setTvAudioFrontend(toggle: boolean): void {
790
- inv<void>('0x64437C98FCC5F291', toggle);
712
+ static setDistrictPhotoTakenStat(p0: string | null): void {
713
+ inv<void>('0x9937FACBBF267244', p0);
791
714
  }
792
715
 
793
716
  /**
717
+ * @param effectName
718
+ * @param ped
719
+ * @param offset
720
+ * @param rot
721
+ * @param boneIndex
722
+ * @param scale
723
+ * @param xAxis
724
+ * @param yAxis
725
+ * @param zAxis
794
726
  * @returns
795
727
  */
796
- static getTimecycleTransitionModifierIndex(): number {
797
- return inv<number>('0x2DA67BA3C8A6755D', rai());
728
+ static startParticleFxLoopedOnPedBone(effectName: string | null, ped: Ped, offset: Vector3, rot: Vector3, boneIndex: number, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): number {
729
+ return inv<number>('0xE689C1B1432BB8AF', effectName, ped.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), boneIndex, f(scale), xAxis, yAxis, zAxis, rai());
798
730
  }
799
731
 
800
732
  /**
801
- * @param ptfxHandle
802
- * @param propertyName
803
- * @param amount
804
- * @param noNetwork
733
+ * @param p0
805
734
  */
806
- static setParticleFxLoopedEvolution(ptfxHandle: number, propertyName: string | null, amount: number, noNetwork: boolean): void {
807
- inv<void>('0x3674F389B0FACD80', ptfxHandle, propertyName, f(amount), noNetwork);
735
+ static setPhotoStudioStat(p0: number): void {
736
+ inv<void>('0x8E6AFF353C09652E', p0);
808
737
  }
809
738
 
810
739
  /**
811
740
  * @param effectName
812
- * @returns
813
- */
814
- static animpostfxHasLoaded(effectName: string | null): any {
815
- return inv<number>('0xBF2DD155B2ADCD0A', effectName);
816
- }
817
-
818
- /**
819
- * @param decal
820
- * @returns
821
741
  */
822
- static isDecalAlive(decal: number): boolean {
823
- return inv<boolean>('0x3E4B4E5CF5D3EEB5', decal, rai());
742
+ static animpostfxStop(effectName: string | null): void {
743
+ inv<void>('0xB4FD7446BAB2F394', effectName);
824
744
  }
825
745
 
826
- /**
827
- * @param p0
828
- */
829
- static N_0x453D16D41FC51D3E(p0: boolean): void {
830
- inv<void>('0x453D16D41FC51D3E', p0);
746
+ static resetPausedRenderphases(): void {
747
+ inv<void>('0xCCD9AAD85E1B559E');
831
748
  }
832
749
 
833
750
  /**
834
- * @param p0
835
- * @param p1
836
- * @param p2
837
- * @param p3
838
- * @param p4
839
- * @param p5
840
- * @param p6
751
+ * @param unused
841
752
  * @returns
842
753
  */
843
- static N_0xE63D68F455CA0B47(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any, p6: any): any {
844
- return inv<number>('0xE63D68F455CA0B47', p0, p1, p2, p3, p4, p5, p6);
754
+ static saveHighQualityPhoto(unused: number): any {
755
+ return inv<number>('0x57639FD876B68A91', unused);
845
756
  }
846
757
 
847
758
  /**
848
759
  * @param pos
849
- * @param colorR
850
- * @param colorG
851
- * @param colorB
852
- * @param range
853
- * @param intensity
760
+ * @param p2
854
761
  */
855
- static drawLightWithRange(pos: Vector3, colorR: number, colorG: number, colorB: number, range: number, intensity: number): void {
856
- inv<void>('0xD2D9E04C0DF927F4', f(pos.x), f(pos.y), f(pos.z), colorR, colorG, colorB, f(range), f(intensity));
762
+ static setCloudLayer(pos: Vector2, p2: number): void {
763
+ inv<void>('0xB8C984C0D47F4F07', f(pos.x), f(pos.y), p2);
857
764
  }
858
765
 
859
766
  /**
860
- * Only used in guama1 R* SP Script while spawning the ship
861
- * *SET_ENTITY_QUATERNION** - SET_ENTITY_RENDER_*
862
- *
863
- * @param vehicle
864
- * @param toggle
767
+ * @param p0
768
+ * @returns
865
769
  */
866
- static setEntityRenderGuarmaShip(vehicle: Vehicle, toggle: boolean): void {
867
- inv<void>('0xC38B4952B728397A', vehicle.handle, toggle);
770
+ static N_0xEC3D8C228FE553D7(p0: boolean): boolean {
771
+ return inv<boolean>('0xEC3D8C228FE553D7', p0, rai());
868
772
  }
869
773
 
870
774
  /**
871
- * @param effectName
872
- * @param entity
873
- * @param offset
874
- * @param rot
875
- * @param scale
876
- * @param axisX
877
- * @param axisY
878
- * @param axisZ
879
- * @returns
775
+ * *RESET**
880
776
  */
881
- static startNetworkedParticleFxNonLoopedOnEntity(effectName: string | null, entity: Entity, offset: Vector3, rot: Vector3, scale: number, axisX: boolean, axisY: boolean, axisZ: boolean): boolean {
882
- return inv<boolean>('0xE6CFE43937061143', effectName, entity.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), f(scale), axisX, axisY, axisZ, rai());
777
+ static N_0x1460B644397453EB(): void {
778
+ inv<void>('0x1460B644397453EB');
883
779
  }
884
780
 
885
781
  /**
886
- * @param lock
782
+ * @param personaPhotoLocalCacheType
887
783
  */
888
- static setPhotoModeExposureLocked(lock: boolean): void {
889
- inv<void>('0x5CD6A2CCE5087161', lock);
784
+ static pedshotSetPersonaPhotoType(personaPhotoLocalCacheType: number): void {
785
+ inv<void>('0x196D3ACBEBA4A44B', personaPhotoLocalCacheType);
890
786
  }
891
787
 
892
- static N_0x815653A42C5ABE76(): void {
893
- inv<void>('0x815653A42C5ABE76');
788
+ static pedshotFinishCleanupData(): void {
789
+ inv<void>('0xC2B8164C3BE871A4');
894
790
  }
895
791
 
896
- /**
897
- * @param effectName
898
- * @returns
899
- */
900
- static animpostfxIsTagPlaying(effectName: string | null): any {
901
- return inv<number>('0x2D4F9C852CE8A253', effectName);
792
+ static N_0x1C6306E5BC25C29C(): void {
793
+ inv<void>('0x1C6306E5BC25C29C');
902
794
  }
903
795
 
904
796
  /**
905
- * enum class eSnowCoverageType
906
- * {
907
- * Primary,
908
- * Secondary,
909
- * Xmas,
910
- * XmasSecondary // since b1232
911
- * };
912
- *
913
- * @param type
797
+ * @param pos
914
798
  */
915
- static setSnowCoverageType(type: number): void {
916
- inv<void>('0xF02A9C330BBFC5C7', type);
799
+ static setCloudNoise(pos: Vector3): void {
800
+ inv<void>('0xFE7966DF01452F32', f(pos.x), f(pos.y), f(pos.z));
917
801
  }
918
802
 
919
803
  /**
920
- * @param effectNameHash
804
+ * @param p0
921
805
  */
922
- static animpostfxPlayTag(effectNameHash: string | number): void {
923
- inv<void>('0x9B8D5D4CB8AF58B3', _h(effectNameHash));
806
+ static N_0xEB48CE48EEC41FD4(p0: any): void {
807
+ inv<void>('0xEB48CE48EEC41FD4', p0);
924
808
  }
925
809
 
926
810
  /**
927
- * @param pickupObject
928
- * @param toggle
811
+ * Used in NET_CAMP_SPIRIT_ANIMAL_CLEAR_ANIMAL_VISIBILITY
812
+ *
813
+ * @param entity
929
814
  */
930
- static blockPickupObjectLight(pickupObject: Prop, toggle: boolean): void {
931
- inv<void>('0x50C14328119E1DD1', pickupObject.handle, toggle);
815
+ static N_0xC06F2F45A73EABCD(entity: Entity): void {
816
+ inv<void>('0xC06F2F45A73EABCD', entity.handle);
932
817
  }
933
818
 
934
819
  /**
935
820
  * @param effectName
936
- * @param entity
937
- * @param offset
821
+ * @param pos
938
822
  * @param rot
939
823
  * @param scale
940
824
  * @param xAxis
@@ -942,49 +826,80 @@ export class Graphics {
942
826
  * @param zAxis
943
827
  * @returns
944
828
  */
945
- static startNetworkedParticleFxLoopedOnEntity(effectName: string | null, entity: Entity, offset: Vector3, rot: Vector3, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): number {
946
- return inv<number>('0x8F90AB32E1944BDE', effectName, entity.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), f(scale), xAxis, yAxis, zAxis, rai());
829
+ static startNetworkedParticleFxNonLoopedAtCoord(effectName: string | null, pos: Vector3, rot: Vector3, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): boolean {
830
+ return inv<boolean>('0xFB97618457994A62', effectName, f(pos.x), f(pos.y), f(pos.z), f(rot.x), f(rot.y), f(rot.z), f(scale), xAxis, yAxis, zAxis, rai());
947
831
  }
948
832
 
949
833
  /**
950
- * @param pos
951
- * @param radius
834
+ * @returns
952
835
  */
953
- static removeParticleFxInRange(pos: Vector3, radius: number): void {
954
- inv<void>('0x87B5905ECA623B68', f(pos.x), f(pos.y), f(pos.z), f(radius));
836
+ static getPhotoModeExposure(): number {
837
+ return inv<number>('0x06C0D8BB6B04A709', raf());
955
838
  }
956
839
 
957
840
  /**
958
- * https://github.com/femga/rdr3_discoveries/blob/master/graphics/ptfx/ptfx_assets_looped.lua
841
+ * _SET_PARTICLE_FX_LOOPED_FA* - _SET_PARTICLE_FX_LOOPED_OF*
842
+ *
843
+ * @param ptfxHandle
844
+ * @param scalar
845
+ */
846
+ static setParticleFxLoopedUpdateDistantSmoke(ptfxHandle: number, scalar: number): void {
847
+ inv<void>('0x9DDC222D85D5AF2A', ptfxHandle, f(scalar));
848
+ }
849
+
850
+ /**
851
+ * Known effects: MP_Trans_SceneToPhoto
852
+ * MP_Trans_WinLose
853
+ * SpectateFilter
854
+ * MP_CharacterCreatorPhoto
855
+ * MP_Trans_PhotoToScene
856
+ * InterrogationHit
959
857
  *
960
858
  * @param effectName
961
- * @param pos
962
- * @param rot
963
- * @param scale
964
- * @param xAxis
965
- * @param yAxis
966
- * @param zAxis
967
- * @param p11
968
859
  * @returns
969
860
  */
970
- static startParticleFxLoopedAtCoord(effectName: string | null, pos: Vector3, rot: Vector3, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean, p11: boolean): number {
971
- return inv<number>('0xBA32867E86125D3A', effectName, f(pos.x), f(pos.y), f(pos.z), f(rot.x), f(rot.y), f(rot.z), f(scale), xAxis, yAxis, zAxis, p11, rai());
861
+ static animpostfxGetStackhash(effectName: string | null): number {
862
+ return (inv<number>('0x842CCC9491FFCD9B', effectName, rai())) & 0xFFFFFFFF;
972
863
  }
973
864
 
974
865
  /**
975
- * @returns
866
+ * @param height
976
867
  */
977
- static getTimecycleModifierIndex(): number {
978
- return inv<number>('0xA705394293E2B3D3', rai());
868
+ static setCloudHeight(height: number): void {
869
+ inv<void>('0xC332C91388F5580B', f(height));
979
870
  }
980
871
 
981
872
  /**
982
- * nullsub, doesn't do anything
873
+ * Related to Campfires.
874
+ * p1: AMB_BONFIRE_MP, AMB_CAMPFIRE_LRG_MP
983
875
  *
984
- * @param toggle
876
+ * @param entity
877
+ * @param p1
878
+ * @param r
879
+ * @param g
880
+ * @param b
985
881
  */
986
- static enableMovieSubtitles(toggle: boolean): void {
987
- inv<void>('0x6FC9B065229C0787', toggle);
882
+ static setParticleFxAmbientColour(entity: Entity, p1: string | null, r: number, g: number, b: number): void {
883
+ inv<void>('0x3C61B52B00848C26', entity.handle, p1, f(r), f(g), f(b));
884
+ }
885
+
886
+ /**
887
+ * Resets the effect of SET_PARTICLE_FX_OVERRIDE
888
+ *
889
+ * @param name
890
+ */
891
+ static resetParticleFxOverride(name: string | null): void {
892
+ inv<void>('0x274B3DABF7E72DEF', name);
893
+ }
894
+
895
+ /**
896
+ * must be called after ANIMPOSTFX_PLAY, strength 0.0f - 1.0f
897
+ *
898
+ * @param effectName
899
+ * @param strength
900
+ */
901
+ static animpostfxSetStrength(effectName: string | null, strength: number): void {
902
+ inv<void>('0xCAB4DD2D5B2B7246', effectName, f(strength));
988
903
  }
989
904
 
990
905
  /**
@@ -994,571 +909,621 @@ export class Graphics {
994
909
  * @param p3
995
910
  * @param p4
996
911
  */
997
- static N_0x171C18E994C1A395(p0: any, p1: any, p2: any, p3: any, p4: any): void {
998
- inv<void>('0x171C18E994C1A395', p0, p1, p2, p3, p4);
912
+ static N_0xCC3B787E73E64160(p0: any, p1: any, p2: any, p3: any, p4: any): void {
913
+ inv<void>('0xCC3B787E73E64160', p0, p1, p2, p3, p4);
999
914
  }
1000
915
 
1001
916
  /**
1002
- * Doesn't actually return anything. ANIMPOSTFX_*
1003
- *
1004
- * @returns
917
+ * @param volume
1005
918
  */
1006
- static N_0xC37792A3F9C90771(): any {
1007
- return inv<number>('0xC37792A3F9C90771');
919
+ static setTvVolume(volume: number): void {
920
+ inv<void>('0x73A97068787D7231', f(volume));
1008
921
  }
1009
922
 
1010
923
  /**
1011
- * Adds Vegetation Blocking Zone, Added Snow Flattening veg mod Zone
1012
- * Returns veg modifier handle
924
+ * Creates a tracked point, useful for checking the visibility of a 3D point on screen.
1013
925
  *
1014
- * @param volume
1015
- * @param p1
1016
- * @param flags
1017
- * @param p3
1018
926
  * @returns
1019
927
  */
1020
- static addVegModifierZone(volume: Volume, p1: number, flags: number, p3: number): number {
1021
- return inv<number>('0xBD3324281E8B9933', volume.handle, p1, flags, p3, rai());
928
+ static createTrackedPoint(): number {
929
+ return inv<number>('0xFB405CB357C69CB9', rai());
1022
930
  }
1023
931
 
1024
932
  /**
1025
- * Returns proxyInteriorIndex
1026
- *
1027
- * @param interiorId
933
+ * @param effectNameHash
1028
934
  * @returns
1029
935
  */
1030
- static getProxyInteriorIndex(interiorId: number): number {
1031
- return inv<number>('0x5D1C5D8E62E8EE1C', interiorId, rai());
936
+ static animpostfxIsPreloadingByStackhash(effectNameHash: string | number): any {
937
+ return inv<number>('0x59EA80079B86D8C7', _h(effectNameHash));
1032
938
  }
1033
939
 
1034
- static endPetrolTrailDecals(): void {
1035
- inv<void>('0x0E126AAE933F3B56');
940
+ /**
941
+ * @param personaPhotoLocalCacheType
942
+ */
943
+ static N_0xA1A86055792FB249(personaPhotoLocalCacheType: number): void {
944
+ inv<void>('0xA1A86055792FB249', personaPhotoLocalCacheType);
1036
945
  }
1037
946
 
1038
947
  /**
1039
- * ANIMPOSTFX_*
1040
- *
1041
- * @param effectName
1042
- * @param p1
1043
- * @param p2
1044
- * @returns p3
948
+ * @param p0
1045
949
  */
1046
- static N_0xFBF161FCFEC8589E(effectName: string | null, p1: number, p2: boolean): [boolean, boolean] {
1047
- const result = inv<[boolean, number]>('0xFBF161FCFEC8589E', effectName, p1, p2, pvi(), rai());
1048
- return [!!result[0], !!result[1]];
950
+ static setPhotoSelfStat(p0: boolean): void {
951
+ inv<void>('0x2705D18C11B61046', p0);
1049
952
  }
1050
953
 
1051
954
  /**
1052
- * 0 = succeeded
1053
- * 1 = getting status
1054
- * 2 = failed
955
+ * https://github.com/femga/rdr3_discoveries/blob/master/graphics/animpostfx
1055
956
  *
1056
- * @returns
957
+ * @param effectName
1057
958
  */
1058
- static getStatusOfSaveHighQualityPhoto(): number {
1059
- return inv<number>('0xD6663EC374092383', rai());
959
+ static animpostfxPlay(effectName: string | null): void {
960
+ inv<void>('0x4102732DF6B4005F', effectName);
1060
961
  }
1061
962
 
1062
963
  /**
1063
- * @returns
964
+ * *DISABLE**
1064
965
  */
1065
- static isPhotoFrame(): boolean {
1066
- return inv<boolean>('0x86076AE35CBBE55F', rai());
966
+ static N_0x4046493D2EEACA0E(): void {
967
+ inv<void>('0x4046493D2EEACA0E');
1067
968
  }
1068
969
 
1069
- /**
1070
- * @param p0
1071
- * @param p1
1072
- * @param p2
1073
- * @param p3
1074
- * @param p4
1075
- * @param p5
1076
- * @param p6
1077
- * @param p7
1078
- * @param p8
1079
- * @param p9
1080
- * @param p10
1081
- */
1082
- static N_0x4D14AF567FC02885(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any, p6: any, p7: any, p8: any, p9: any, p10: any): void {
1083
- inv<void>('0x4D14AF567FC02885', p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
970
+ static pedshotPreviousPersonaPhotoDataCleanup(): void {
971
+ inv<void>('0x3E2FDDBE435A8787');
1084
972
  }
1085
973
 
1086
974
  /**
975
+ * effectName2, p2 and p3 are unused ANIMPOSTFX_*
976
+ *
1087
977
  * @param effectName
1088
- * @returns
978
+ * @param effectName2
979
+ * @param p2
980
+ * @param p3
1089
981
  */
1090
- static animpostfxIsRunning(effectName: string | null): boolean {
1091
- return inv<boolean>('0x4A123E85D7C4CA0B', effectName, rai());
982
+ static N_0x26DD2FB0A88CC412(effectName: string | null, effectName2: string | null, p2: any, p3: any): void {
983
+ inv<void>('0x26DD2FB0A88CC412', effectName, effectName2, p2, p3);
1092
984
  }
1093
985
 
1094
986
  /**
1095
- * Used for script function RPG_GLOBAL_STATS__PRIVATE__ACTIVATE_STAT_FLAG - Quite and Inspiration Aura equip
1096
- * Params: 0f, 2f, 2f
987
+ * Example: https://pastebin.com/tTgpER9A
1097
988
  *
1098
- * @param p0
989
+ * @param slot
1099
990
  * @param p1
1100
- * @param p2
1101
991
  */
1102
- static setEntityAura(p0: number, p1: number, p2: number): void {
1103
- inv<void>('0x249CD6B7285536F2', f(p0), f(p1), f(p2));
992
+ static generateSwatchTextureDirectly(slot: number, p1: any): void {
993
+ inv<void>('0x646ED1A1D28487DF', slot, p1);
1104
994
  }
1105
995
 
1106
996
  /**
1107
- * ANIMPOSTFX_*
1108
- *
1109
- * @param effectNameHash
1110
- * @returns
997
+ * @param p0
1111
998
  */
1112
- static N_0xE75CDDEBF618C8FF(effectNameHash: string | number): boolean {
1113
- return inv<boolean>('0xE75CDDEBF618C8FF', _h(effectNameHash), rai());
999
+ static setParticleFxBulletImpactLodrangeScale(p0: number): void {
1000
+ inv<void>('0x8DCCC98DC0DBF9E4', f(p0));
1114
1001
  }
1115
1002
 
1116
1003
  /**
1117
- * @param pos
1004
+ * @param p0
1005
+ * @param p1
1118
1006
  */
1119
- static addBloodTrailSplat(pos: Vector3): void {
1120
- inv<void>('0xF5E45CB1CF965D2D', f(pos.x), f(pos.y), f(pos.z));
1007
+ static N_0x1FF8731BE1DFC0C0(p0: any, p1: any): void {
1008
+ inv<void>('0x1FF8731BE1DFC0C0', p0, p1);
1121
1009
  }
1122
1010
 
1123
1011
  /**
1124
- * https://i.imgur.com/ULQU9US.jpg
1125
- * More rounded and small puddle
1012
+ * When this is set to ON, shadows only draw as you get nearer. When OFF, they draw from a further distance.
1126
1013
  *
1127
- * @param pos
1128
- * @param unused
1014
+ * @param toggle
1129
1015
  */
1130
- static addBloodPool(pos: Vector3, unused: boolean): void {
1131
- inv<void>('0xFA2ECC78A6014D4F', f(pos.x), f(pos.y), f(pos.z), unused);
1016
+ static cascadeShadowsEnableEntityTracker(toggle: boolean): void {
1017
+ inv<void>('0x8FBFD2AEB196B369', toggle);
1132
1018
  }
1133
1019
 
1134
1020
  /**
1135
- * Only used in finale2, smuggler2, winter4
1136
- * _SET_CLOUD_A* - _SET_CLOUD_H*
1021
+ * Only used in R* Script nb_stalking_hunter
1137
1022
  *
1138
- * @param pos
1023
+ * @param p0
1139
1024
  */
1140
- static setCloudPosition(pos: Vector3): void {
1141
- inv<void>('0x10C1767B93257480', f(pos.x), f(pos.y), f(pos.z));
1025
+ static N_0xD1472AFF30C103D6(p0: number): void {
1026
+ inv<void>('0xD1472AFF30C103D6', f(p0));
1142
1027
  }
1143
1028
 
1144
1029
  /**
1145
- * @param p0
1146
- * @param p1
1030
+ * @param worldX
1031
+ * @param worldY
1032
+ * @param worldZ
1033
+ * @returns screenX; screenY
1147
1034
  */
1148
- static N_0xA04EF43030593ABC(p0: any, p1: any): void {
1149
- inv<void>('0xA04EF43030593ABC', p0, p1);
1035
+ static getScreenCoordFromWorldCoord(worldX: number, worldY: number, worldZ: number): [boolean, number, number] {
1036
+ const result = inv<[boolean, number, number]>('0xCB50D7AFCC8B0EC6', f(worldX), f(worldY), f(worldZ), pvf(), pvf(), rai());
1037
+ return [!!result[0], result[1], result[2]];
1150
1038
  }
1151
1039
 
1152
1040
  /**
1153
- * Called together with FREE_MEMORY_FOR_LOW_QUALITY_PHOTO
1154
- *
1155
- * @param p0
1156
- * @returns
1041
+ * @param point
1042
+ * @param pos
1043
+ * @param radius
1157
1044
  */
1158
- static beginCreateLowQualityCopyOfPhoto(p0: number): boolean {
1159
- return inv<boolean>('0x494A9874F17A7D50', p0, rai());
1045
+ static setTrackedPointInfo(point: number, pos: Vector3, radius: number): void {
1046
+ inv<void>('0xF6FDA3D4404D4F2C', point, f(pos.x), f(pos.y), f(pos.z), f(radius));
1160
1047
  }
1161
1048
 
1162
1049
  /**
1163
- * @param player
1050
+ * Draws a 2D sprite on the screen. Parameters:
1051
+ * textureDict - Name of texture dictionary to load texture from textureName - Name of texture to load from texture dictionary screenX/Y - Screen offset (0.5 = center)
1052
+ * scaleX/Y - Texture scaling. Negative values can be used to flip the texture on that axis. (0.5 = half) heading - Texture rotation in degrees (default = 0.0) positive is clockwise, measured in degrees red,green,blue - Sprite color (default = 255/255/255) alpha - opacity level https://github.com/femga/rdr3_discoveries/tree/master/useful_info_from_rpfs/textures
1053
+ *
1054
+ * @param textureDict
1055
+ * @param textureName
1056
+ * @param screenX
1057
+ * @param screenY
1058
+ * @param width
1059
+ * @param height
1060
+ * @param heading
1061
+ * @param color
1062
+ * @param alpha
1063
+ * @param p11
1164
1064
  */
1165
- static setPlayerAppearInPhoto(player: Player): void {
1166
- inv<void>('0x75D568607909333E', player.handle);
1065
+ static drawSprite(textureDict: string | null, textureName: string | null, screenX: number, screenY: number, width: number, height: number, heading: number, color: Color, alpha: number, p11: boolean): void {
1066
+ inv<void>('0xC9884ECADE94CB34', textureDict, textureName, f(screenX), f(screenY), f(width), f(height), f(heading), color.r, color.g, color.b, color.a, alpha, p11);
1167
1067
  }
1168
1068
 
1169
1069
  /**
1170
- * @param checkpoint
1171
1070
  * @returns
1172
1071
  */
1173
- static doesCheckpointHaveFx(checkpoint: number): any {
1174
- return inv<number>('0x4C11CCACB7C02B6E', checkpoint);
1072
+ static getCurrentNumberOfLocalPhotos(): number {
1073
+ return inv<number>('0x78C56B8A7B1D000C', rai());
1175
1074
  }
1176
1075
 
1177
- static N_0xEC3F7F24EEEB3BA3(): void {
1178
- inv<void>('0xEC3F7F24EEEB3BA3');
1076
+ /**
1077
+ * @param ptfxHandle
1078
+ * @param p1
1079
+ */
1080
+ static removeParticleFx(ptfxHandle: number, p1: boolean): void {
1081
+ inv<void>('0x459598F579C98929', ptfxHandle, p1);
1179
1082
  }
1180
1083
 
1181
1084
  /**
1182
- * Used in CREATE_BEZIER_BLOOD_TRAIL_OF_TYPE
1085
+ * Removes all decals in range from a position, it includes the bullet holes, blood pools, petrol...
1183
1086
  *
1184
- * @param p0
1087
+ * @param pos
1088
+ * @param range
1185
1089
  */
1186
- static N_0x41F88A85A579A61D(p0: number): void {
1187
- inv<void>('0x41F88A85A579A61D', f(p0));
1188
- }
1189
-
1190
- static freeMemoryForLowQualityPhoto(): void {
1191
- inv<void>('0x614682E715ADBAAC');
1192
- }
1193
-
1194
- static freeMemoryForHighQualityPhoto(): void {
1195
- inv<void>('0xD45547D8396F002A');
1090
+ static removeDecalsInRange(pos: Vector3, range: number): void {
1091
+ inv<void>('0x86DE59FA02902B40', f(pos.x), f(pos.y), f(pos.z), f(range));
1196
1092
  }
1197
1093
 
1198
- static N_0x32DE2BFFDA43E62A(): void {
1199
- inv<void>('0x32DE2BFFDA43E62A');
1094
+ /**
1095
+ * @param p0
1096
+ */
1097
+ static setPhotoOverlayEffectStat(p0: number): void {
1098
+ inv<void>('0x8B3296278328B5EB', p0);
1200
1099
  }
1201
1100
 
1202
1101
  /**
1203
- * Resets the exposure to the value when exposure lock was enabled
1102
+ * @param ptfxHandle
1103
+ * @param r
1104
+ * @param g
1105
+ * @param b
1106
+ * @param p4
1204
1107
  */
1205
- static updatePhotoModeExposure(): void {
1206
- inv<void>('0x9229ED770975BD9E');
1108
+ static setParticleFxLoopedColour(ptfxHandle: number, r: number, g: number, b: number, p4: boolean): void {
1109
+ inv<void>('0x239879FC61C610CC', ptfxHandle, f(r), f(g), f(b), p4);
1207
1110
  }
1208
1111
 
1209
1112
  /**
1210
- * @param effectName
1113
+ * @param effectNameHash
1211
1114
  */
1212
- static animpostfxPreloadPostfx(effectName: string | null): void {
1213
- inv<void>('0x5199405EABFBD7F0', effectName);
1115
+ static animpostfxStopStackhashPostfx(effectNameHash: string | number): void {
1116
+ inv<void>('0xEDA5CBECF56E1386', _h(effectNameHash));
1214
1117
  }
1215
1118
 
1216
1119
  /**
1217
- * @param strength
1120
+ * @param value
1218
1121
  */
1219
- static setTransitionOutOfTimecycleModifier(strength: number): void {
1220
- inv<void>('0xBB6C707F20D955D4', f(strength));
1122
+ static changePhotoModeContrast(value: number): void {
1123
+ inv<void>('0x62B9F9A1272AED80', f(value));
1221
1124
  }
1222
1125
 
1223
1126
  /**
1224
- * @param effectName
1225
- * @param p1
1226
- * @param color
1227
- * @param alpha
1127
+ * Sets the draw order for script draw commands.
1128
+ *
1129
+ * @param drawOrder
1228
1130
  */
1229
- static animpostfxSetPostfxColor(effectName: string | null, p1: number, color: Color, alpha: number): void {
1230
- inv<void>('0x63011D0C7C6519E0', effectName, p1, color.r, color.g, color.b, color.a, alpha);
1131
+ static setScriptGfxDrawOrder(drawOrder: number): void {
1132
+ inv<void>('0xCFCC78391C8B3814', drawOrder);
1231
1133
  }
1232
1134
 
1233
1135
  /**
1234
1136
  * @param p0
1235
- * @param p1
1236
1137
  */
1237
- static startPetrolTrailDecals(p0: any, p1: any): void {
1238
- inv<void>('0x46F246D6504F0031', p0, p1);
1138
+ static enableStaticVegModifier(p0: string | number): void {
1139
+ inv<void>('0xDFEA23EC90113657', _h(p0));
1239
1140
  }
1240
1141
 
1241
1142
  /**
1242
- * @param pickupObject
1243
- * @param allow
1143
+ * @returns
1244
1144
  */
1245
- static allowPickupLightSync(pickupObject: Prop, allow: boolean): void {
1246
- inv<void>('0x7C348310A6E2FB91', pickupObject.handle, allow);
1145
+ static getTvChannel(): number {
1146
+ return inv<number>('0xF90FBFD68F3C59AE', rai());
1247
1147
  }
1248
1148
 
1249
- static freeMemoryForMissionCreatorPhoto(): void {
1250
- inv<void>('0x7DFF8F94937D2659');
1149
+ static N_0x9D1B0B5066205692(): void {
1150
+ inv<void>('0x9D1B0B5066205692');
1251
1151
  }
1252
1152
 
1253
1153
  /**
1254
- * Returns veg modifier handle
1255
- *
1256
- * @param pos
1257
- * @param radius
1258
- * @param modType
1259
- * @param flags
1260
- * @param p6
1261
- * @returns
1154
+ * @param alpha
1262
1155
  */
1263
- static addVegModifierSphere(pos: Vector3, radius: number, modType: number, flags: number, p6: number): number {
1264
- return inv<number>('0xFA50F79257745E74', f(pos.x), f(pos.y), f(pos.z), f(radius), modType, flags, p6, rai());
1156
+ static setParticleFxNonLoopedAlpha(alpha: number): void {
1157
+ inv<void>('0xE8A35938A7026CEA', f(alpha));
1265
1158
  }
1266
1159
 
1267
1160
  /**
1268
- * Only used in R* SP Script spd_agnesdown1
1269
- *
1270
- * @param p0
1271
- * @param pos
1272
- * @param p4
1273
- * @param p5
1274
- * @param heading
1275
- * @returns
1161
+ * @param point
1276
1162
  */
1277
- static N_0x402E1A61D2587FCD(p0: any, pos: Vector3, p4: number, p5: number, heading: number): boolean {
1278
- return inv<boolean>('0x402E1A61D2587FCD', p0, f(pos.x), f(pos.y), f(pos.z), f(p4), f(p5), f(heading), rai());
1163
+ static destroyTrackedPoint(point: number): void {
1164
+ inv<void>('0x37A59922109F8F1C', point);
1279
1165
  }
1280
1166
 
1281
1167
  /**
1282
- * @returns
1168
+ * @param p0
1283
1169
  */
1284
- static N_0xFC9B53C072F418E0(): any {
1285
- return inv<number>('0xFC9B53C072F418E0');
1170
+ static N_0x67B0778C62E74423(p0: any): void {
1171
+ inv<void>('0x67B0778C62E74423', p0);
1286
1172
  }
1287
1173
 
1288
1174
  /**
1289
- * state: false disables artificial interior light sources for specific proxyInteriorIndex
1175
+ * ANIMPOSTFX_*
1290
1176
  *
1291
- * @param proxyInteriorIndex
1292
- * @param state
1177
+ * @param effectNameHash
1293
1178
  */
1294
- static setProxyInteriorIndexArtificialLightsState(proxyInteriorIndex: number, state: boolean): void {
1295
- inv<void>('0xBFCB17895BB99E4E', proxyInteriorIndex, state);
1179
+ static N_0x71845905BCCDE781(effectNameHash: string | number): void {
1180
+ inv<void>('0x71845905BCCDE781', _h(effectNameHash));
1181
+ }
1182
+
1183
+ static N_0xF2F543D48F319A3A(): void {
1184
+ inv<void>('0xF2F543D48F319A3A');
1296
1185
  }
1297
1186
 
1298
1187
  /**
1299
- * Creates blood pools for the given ped in some interval for a few seconds.
1188
+ * ANIMPOSTFX_*
1300
1189
  *
1301
- * @param ped
1190
+ * @returns
1302
1191
  */
1303
- static addBloodPoolsForPed(ped: Ped): void {
1304
- inv<void>('0xDFCE8CE9F3EBE93F', ped.handle);
1192
+ static N_0x3DA7A10583A4BEC0(): boolean {
1193
+ return inv<boolean>('0x3DA7A10583A4BEC0', rai());
1305
1194
  }
1306
1195
 
1307
1196
  /**
1308
- * @param texture
1309
- * @param ped
1310
- * @param playerSlot
1311
- * @returns
1197
+ * Does not affect weapons, particles, fire/explosions, flashlights or the sun.
1198
+ * When set to true, all emissive textures (including ped components that have light effects), street lights, building lights, vehicle lights, etc will all be turned off. state: True turns off all artificial light sources in the map: buildings, street lights, car lights, etc. False turns them back on.
1199
+ *
1200
+ * @param state
1312
1201
  */
1313
- static pedshotGeneratePersonaPhoto(texture: string | null, ped: Ped, playerSlot: number): boolean {
1314
- return inv<boolean>('0xD9C24F53631F2372', texture, ped.handle, playerSlot, rai());
1202
+ static setArtificialLightsState(state: boolean): void {
1203
+ inv<void>('0xB2797619A7C7747B', state);
1315
1204
  }
1316
1205
 
1317
1206
  /**
1318
- * @returns
1207
+ * Possible values:
1208
+ * "CSM_ST_POINT"
1209
+ * "CSM_ST_LINEAR"
1210
+ * "CSM_ST_BOX3x3"
1211
+ * "CSM_ST_BOX4x4"
1212
+ * "CSM_ST_DITHER2_LINEAR"
1213
+ * "CSM_ST_CUBIC"
1214
+ * "CSM_ST_POISSON16"
1215
+ * "CSM_ST_SOFT8"
1216
+ * "CSM_ST_SOFT16"
1217
+ * "CSM_ST_SOFT32"
1218
+ * "CSM_ST_DITHER16_RPDB"
1219
+ * "CSM_ST_POISSON16_RPDB_GNORM"
1220
+ * "CSM_ST_HIGHRES_BOX4x4"
1221
+ * "CSM_ST_ESM"
1222
+ *
1223
+ * @param type
1319
1224
  */
1320
- static queueOperationToCreateSortedListOfPhotos(): any {
1321
- return inv<number>('0xA42EDF1E88734A7E');
1225
+ static cascadeShadowsSetShadowSampleType(type: string | null): void {
1226
+ inv<void>('0xCE4774E0F9AD48D1', type);
1322
1227
  }
1323
1228
 
1324
1229
  /**
1325
1230
  * @param p0
1326
1231
  */
1327
- static setRegionPhotoTakenStat(p0: string | null): void {
1328
- inv<void>('0xD1031B83AC093BC7', p0);
1232
+ static N_0x519928DF02EB5101(p0: any): void {
1233
+ inv<void>('0x519928DF02EB5101', p0);
1329
1234
  }
1330
1235
 
1331
1236
  /**
1332
- * @param effectName
1237
+ * Gets set to 1 when GET_STATUS_OF_TAKE_HIGH_QUALITY_PHOTO = PHOTO_OPERATION_SUCCEEDED
1238
+ *
1239
+ * @param p0
1333
1240
  */
1334
- static animpostfxSetToUnload(effectName: string | null): void {
1335
- inv<void>('0x37D7BDBA89F13959', effectName);
1241
+ static N_0x0D5B19C34068FEE7(p0: any): void {
1242
+ inv<void>('0x0D5B19C34068FEE7', p0);
1336
1243
  }
1337
1244
 
1338
1245
  /**
1339
- * @param proxyInteriorIndex
1340
- * @returns
1246
+ * type must be less than or equal to 20
1247
+ *
1248
+ * @param entity
1249
+ * @param type
1341
1250
  */
1342
- static isProxyInteriorIndexArtificialLightsEnabled(proxyInteriorIndex: number): any {
1343
- return inv<number>('0x113857D66A9CABE6', proxyInteriorIndex);
1251
+ static setLightsTypeForEntity(entity: Entity, type: number): void {
1252
+ inv<void>('0xAB72C67163DC4DB4', entity.handle, type);
1344
1253
  }
1345
1254
 
1346
1255
  /**
1347
1256
  * @param p0
1257
+ * @param p1
1258
+ * @param p2
1259
+ * @param p3
1348
1260
  */
1349
- static setPhotoInPhotomodeStat(p0: boolean): void {
1350
- inv<void>('0xFA91736933AB3D93', p0);
1261
+ static N_0xD543487A1F12828F(p0: any, p1: any, p2: any, p3: any): void {
1262
+ inv<void>('0xD543487A1F12828F', p0, p1, p2, p3);
1351
1263
  }
1352
1264
 
1353
- /**
1354
- * @param entity
1355
- * @param intensity
1356
- */
1357
- static setLightsIntensityForEntity(entity: Entity, intensity: number): void {
1358
- inv<void>('0x07C0F87AAC57F2E4', entity.handle, f(intensity));
1265
+ static N_0xEC3F7F24EEEB3BA3(): void {
1266
+ inv<void>('0xEC3F7F24EEEB3BA3');
1359
1267
  }
1360
1268
 
1361
1269
  /**
1362
- * @param entity
1270
+ * Used in CREATE_BEZIER_BLOOD_TRAIL_OF_TYPE
1271
+ *
1272
+ * @param p0
1363
1273
  */
1364
- static updateLightsOnEntity(entity: Entity): void {
1365
- inv<void>('0xBDBACB52A03CC760', entity.handle);
1274
+ static N_0x41F88A85A579A61D(p0: number): void {
1275
+ inv<void>('0x41F88A85A579A61D', f(p0));
1366
1276
  }
1367
1277
 
1368
- /**
1369
- * @returns
1370
- */
1371
- static getStatusOfTakeHighQualityPhoto(): number {
1372
- return inv<number>('0x4A3DA74C3CCB1725', rai());
1278
+ static freeMemoryForLowQualityPhoto(): void {
1279
+ inv<void>('0x614682E715ADBAAC');
1280
+ }
1281
+
1282
+ static freeMemoryForHighQualityPhoto(): void {
1283
+ inv<void>('0xD45547D8396F002A');
1284
+ }
1285
+
1286
+ static N_0x32DE2BFFDA43E62A(): void {
1287
+ inv<void>('0x32DE2BFFDA43E62A');
1373
1288
  }
1374
1289
 
1375
1290
  /**
1376
- * @returns
1291
+ * Resets the exposure to the value when exposure lock was enabled
1377
1292
  */
1378
- static N_0x285438C26C732F9D(): any {
1379
- return inv<number>('0x285438C26C732F9D');
1293
+ static updatePhotoModeExposure(): void {
1294
+ inv<void>('0x9229ED770975BD9E');
1380
1295
  }
1381
1296
 
1382
1297
  /**
1383
- * Sets a flag defining whether or not script draw commands should continue being drawn behind the pause menu. This is usually used for draw commands that are used with a world render target.
1384
- *
1385
- * @param toggle
1298
+ * @param effectName
1386
1299
  */
1387
- static setScriptGfxDrawBehindPausemenu(toggle: boolean): void {
1388
- inv<void>('0x906B86E6D7896B9E', toggle);
1300
+ static animpostfxPreloadPostfx(effectName: string | null): void {
1301
+ inv<void>('0x5199405EABFBD7F0', effectName);
1389
1302
  }
1390
1303
 
1391
1304
  /**
1392
- * @param p0
1305
+ * @param strength
1393
1306
  */
1394
- static setDistrictPhotoTakenStat(p0: string | null): void {
1395
- inv<void>('0x9937FACBBF267244', p0);
1307
+ static setTransitionOutOfTimecycleModifier(strength: number): void {
1308
+ inv<void>('0xBB6C707F20D955D4', f(strength));
1396
1309
  }
1397
1310
 
1398
1311
  /**
1399
1312
  * @param effectName
1400
- * @param ped
1401
- * @param offset
1402
- * @param rot
1403
- * @param boneIndex
1404
- * @param scale
1405
- * @param xAxis
1406
- * @param yAxis
1407
- * @param zAxis
1408
- * @returns
1313
+ * @param p1
1314
+ * @param color
1315
+ * @param alpha
1409
1316
  */
1410
- static startParticleFxLoopedOnPedBone(effectName: string | null, ped: Ped, offset: Vector3, rot: Vector3, boneIndex: number, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): number {
1411
- return inv<number>('0xE689C1B1432BB8AF', effectName, ped.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), boneIndex, f(scale), xAxis, yAxis, zAxis, rai());
1317
+ static animpostfxSetPostfxColor(effectName: string | null, p1: number, color: Color, alpha: number): void {
1318
+ inv<void>('0x63011D0C7C6519E0', effectName, p1, color.r, color.g, color.b, color.a, alpha);
1412
1319
  }
1413
1320
 
1414
1321
  /**
1415
1322
  * @param p0
1323
+ * @param p1
1416
1324
  */
1417
- static setPhotoStudioStat(p0: number): void {
1418
- inv<void>('0x8E6AFF353C09652E', p0);
1325
+ static startPetrolTrailDecals(p0: any, p1: any): void {
1326
+ inv<void>('0x46F246D6504F0031', p0, p1);
1419
1327
  }
1420
1328
 
1421
1329
  /**
1422
- * @param effectName
1330
+ * @param pickupObject
1331
+ * @param allow
1423
1332
  */
1424
- static animpostfxStop(effectName: string | null): void {
1425
- inv<void>('0xB4FD7446BAB2F394', effectName);
1333
+ static allowPickupLightSync(pickupObject: Prop, allow: boolean): void {
1334
+ inv<void>('0x7C348310A6E2FB91', pickupObject.handle, allow);
1335
+ }
1336
+
1337
+ static freeMemoryForMissionCreatorPhoto(): void {
1338
+ inv<void>('0x7DFF8F94937D2659');
1426
1339
  }
1427
1340
 
1428
1341
  /**
1429
- * @param p0
1430
- * @param p1
1342
+ * Returns veg modifier handle
1343
+ *
1344
+ * @param pos
1345
+ * @param radius
1346
+ * @param modType
1347
+ * @param flags
1348
+ * @param p6
1349
+ * @returns
1431
1350
  */
1432
- static N_0xC489FE31AC726512(p0: any, p1: any): void {
1433
- inv<void>('0xC489FE31AC726512', p0, p1);
1351
+ static addVegModifierSphere(pos: Vector3, radius: number, modType: number, flags: number, p6: number): number {
1352
+ return inv<number>('0xFA50F79257745E74', f(pos.x), f(pos.y), f(pos.z), f(radius), modType, flags, p6, rai());
1434
1353
  }
1435
1354
 
1436
1355
  /**
1437
- * https://i.imgur.com/rPITUCV.jpg
1438
- * More customizable and more like quadrants
1356
+ * Only used in R* SP Script spd_agnesdown1
1439
1357
  *
1358
+ * @param p0
1440
1359
  * @param pos
1441
- * @param p3
1442
- * @param size
1360
+ * @param p4
1443
1361
  * @param p5
1444
- * @param permanent
1445
- * @param p7
1446
- * @param p8
1362
+ * @param heading
1363
+ * @returns
1447
1364
  */
1448
- static addBloodPool2(pos: Vector3, p3: number, size: number, p5: number, permanent: boolean, p7: number, p8: boolean): void {
1449
- inv<void>('0xF708298675ABDC6A', f(pos.x), f(pos.y), f(pos.z), f(p3), f(size), f(p5), permanent, f(p7), p8);
1365
+ static N_0x402E1A61D2587FCD(p0: any, pos: Vector3, p4: number, p5: number, heading: number): boolean {
1366
+ return inv<boolean>('0x402E1A61D2587FCD', p0, f(pos.x), f(pos.y), f(pos.z), f(p4), f(p5), f(heading), rai());
1450
1367
  }
1451
1368
 
1452
1369
  /**
1453
- * p1: 0.3f in R* Scripts
1370
+ * @returns
1371
+ */
1372
+ static N_0xFC9B53C072F418E0(): any {
1373
+ return inv<number>('0xFC9B53C072F418E0');
1374
+ }
1375
+
1376
+ /**
1377
+ * state: false disables artificial interior light sources for specific proxyInteriorIndex
1454
1378
  *
1455
- * @param waypointRecording
1456
- * @param p1
1379
+ * @param proxyInteriorIndex
1380
+ * @param state
1457
1381
  */
1458
- static bloodTrailForWaypoint(waypointRecording: string | null, p1: number): void {
1459
- inv<void>('0xB9C92616929CC25D', waypointRecording, f(p1));
1382
+ static setProxyInteriorIndexArtificialLightsState(proxyInteriorIndex: number, state: boolean): void {
1383
+ inv<void>('0xBFCB17895BB99E4E', proxyInteriorIndex, state);
1460
1384
  }
1461
1385
 
1462
1386
  /**
1463
- * @param ptfxHandle
1464
- * @param range
1387
+ * @param scale
1465
1388
  */
1466
- static setParticleFxLoopedFarClipDist(ptfxHandle: number, range: number): void {
1467
- inv<void>('0x9B04D471DA0AD7AA', ptfxHandle, f(range));
1389
+ static setParticleFxBulletImpactScale(scale: number): void {
1390
+ inv<void>('0xA53C8D7D0F8C74D0', f(scale));
1468
1391
  }
1469
1392
 
1470
1393
  /**
1471
1394
  * @param p0
1472
1395
  * @param p1
1396
+ * @param p2
1397
+ * @param p3
1398
+ * @param p4
1399
+ * @param p5
1400
+ * @param p6
1401
+ * @param p7
1473
1402
  */
1474
- static N_0x085C5B61A0114F32(p0: any, p1: any): void {
1475
- inv<void>('0x085C5B61A0114F32', p0, p1);
1403
+ static cascadeShadowsSetCascadeBounds(p0: any, p1: boolean, p2: number, p3: number, p4: number, p5: number, p6: boolean, p7: number): void {
1404
+ inv<void>('0xD9EDB2E4512D563E', p0, p1, f(p2), f(p3), f(p4), f(p5), p6, f(p7));
1476
1405
  }
1477
1406
 
1478
1407
  /**
1479
- * @param p0
1408
+ * @param value
1480
1409
  */
1481
- static N_0x9F158A49B0D84C3C(p0: any): void {
1482
- inv<void>('0x9F158A49B0D84C3C', p0);
1410
+ static changePhotoModeExposure(value: number): void {
1411
+ inv<void>('0xC8D0611D9A0CF5D3', f(value));
1483
1412
  }
1484
1413
 
1485
1414
  /**
1415
+ * @param point
1486
1416
  * @returns
1487
1417
  */
1488
- static N_0x5C674EB487891F6B(): any {
1489
- return inv<number>('0x5C674EB487891F6B');
1418
+ static isTrackedPointValid(point: number): any {
1419
+ return inv<number>('0xF2FDDCC8C6BAE1B3', point);
1490
1420
  }
1491
1421
 
1492
1422
  /**
1493
- * Params: component - used in odriscolls1 and sean1 R* SP Script: COMPONENT_BINOCULARS_SCOPE01
1494
- * Triggers the binocular scaleform
1423
+ * Old name: _ENABLE_EXTRA_TIMECYCLE_MODIFIER_STRENGTH
1495
1424
  *
1496
- * @param component
1425
+ * @param strength
1497
1426
  */
1498
- static N_0x21F00E08CBB5F37B(component: string | null): void {
1499
- inv<void>('0x21F00E08CBB5F37B', component);
1427
+ static enableMoonCycleOverride(strength: number): void {
1428
+ inv<void>('0x6FE93BCC7BF12B63', f(strength));
1429
+ }
1430
+
1431
+ static setDisablePetrolDecalsIgnitingThisFrame(): void {
1432
+ inv<void>('0x53ED07BF368EDA59');
1500
1433
  }
1501
1434
 
1502
1435
  /**
1503
- * Sets an unknown value related to timecycles.
1436
+ * Used in CREATE_BEZIER_BLOOD_TRAIL_OF_TYPE
1504
1437
  *
1505
- * @param unk
1438
+ * @param p0
1506
1439
  */
1507
- static resetAdaptation(unk: number): void {
1508
- inv<void>('0x297B72E2AF094742', unk);
1440
+ static N_0x4BD66B4E3427689B(p0: string | null): void {
1441
+ inv<void>('0x4BD66B4E3427689B', p0);
1509
1442
  }
1510
1443
 
1511
1444
  /**
1512
- * @param effectNameHash
1445
+ * Enables/disables a kind of 'shiny' effect on metals.
1446
+ *
1447
+ * @param object
1448
+ * @param toggle
1513
1449
  */
1514
- static animpostfxPreloadPostfxByStackhash(effectNameHash: string | number): void {
1515
- inv<void>('0xF3E039322BFBD4D8', _h(effectNameHash));
1450
+ static setPearlescentFxEnabled(object: Prop, toggle: boolean): void {
1451
+ inv<void>('0x72E30372E7CC4415', object.handle, toggle);
1516
1452
  }
1517
1453
 
1518
1454
  /**
1519
- * @param effectNameHash
1520
- * @param p1
1521
- * @param p2
1522
- * @returns p3
1455
+ * @param enabled
1523
1456
  */
1524
- static animpostfxHasEventTriggeredByStackhash(effectNameHash: string | number, p1: number, p2: boolean): [any, boolean] {
1525
- const result = inv<[number, number]>('0x9AB192A9EF980EED', _h(effectNameHash), p1, p2, pvi());
1526
- return [result[0], !!result[1]];
1457
+ static setSniperGlintsEnabled(enabled: boolean): void {
1458
+ inv<void>('0x6E8EB45A4F4460EB', enabled);
1527
1459
  }
1528
1460
 
1529
- static destroySwatchTextureDict(): void {
1530
- inv<void>('0xDAD7FB8402651654');
1461
+ /**
1462
+ * Example:
1463
+ * local hash = GetHashKey("CLOTHING_ITEM_M_EYES_001_TINT_001")
1464
+ * _GENERATE_SWATCH_TEXTURE(0, hash, 0, true)
1465
+ * metapedType: see 0xEC9A1261BF0CE510
1466
+ *
1467
+ * @param slotId
1468
+ * @param componentHash
1469
+ * @param metapedType
1470
+ * @param p3
1471
+ */
1472
+ static generateSwatchTexture(slotId: number, componentHash: string | number, metapedType: number, p3: boolean): void {
1473
+ inv<void>('0x160921255327C591', slotId, _h(componentHash), metapedType, p3);
1531
1474
  }
1532
1475
 
1533
1476
  /**
1534
- * @returns
1477
+ * @param entity
1478
+ * @param mask
1479
+ * @param intensity
1535
1480
  */
1536
- static beginTakeHighQualityPhoto(): any {
1537
- return inv<number>('0xA15BFFC0A01B34E1');
1481
+ static addEntityToEntityMaskWithIntensity(entity: Entity, mask: number, intensity: number): void {
1482
+ inv<void>('0x958DEBD9353C0935', entity.handle, mask, f(intensity));
1483
+ }
1484
+
1485
+ static disableHdtexThisFrame(): void {
1486
+ inv<void>('0x98A7CD5EA379A854');
1538
1487
  }
1539
1488
 
1540
1489
  /**
1541
- * Old name: _IS_TV_PLAYLIST_ITEM_PLAYING
1542
- *
1543
- * @param videoCliphash
1490
+ * @param entity
1491
+ */
1492
+ static attachTvAudioToEntity(entity: Entity): void {
1493
+ inv<void>('0x40866A418EB8EFDE', entity.handle);
1494
+ }
1495
+
1496
+ /**
1497
+ * @param effectName
1498
+ * @param ped
1499
+ * @param offset
1500
+ * @param rot
1501
+ * @param boneIndex
1502
+ * @param scale
1503
+ * @param axisX
1504
+ * @param axisY
1505
+ * @param axisZ
1544
1506
  * @returns
1545
1507
  */
1546
- static isTvshowCurrentlyPlaying(videoCliphash: string | number): boolean {
1547
- return inv<boolean>('0x4D562223E0EB65F3', _h(videoCliphash), rai());
1508
+ static startParticleFxNonLoopedOnPedBone(effectName: string | null, ped: Ped, offset: Vector3, rot: Vector3, boneIndex: number, scale: number, axisX: boolean, axisY: boolean, axisZ: boolean): boolean {
1509
+ return inv<boolean>('0x3FAA72BD940C3AC0', effectName, ped.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), boneIndex, f(scale), axisX, axisY, axisZ, rai());
1548
1510
  }
1549
1511
 
1550
1512
  /**
1551
- * @param p0
1513
+ * contentId: returned by NETWORK::_UGC_QUERY_GET_CREATOR_PHOTO(uVar0, 0, sParam3)
1514
+ *
1515
+ * @param contentId
1516
+ * @returns
1552
1517
  */
1553
- static N_0x8996FA6AD9FE4E90(p0: any): void {
1554
- inv<void>('0x8996FA6AD9FE4E90', p0);
1518
+ static getStatusOfLoadMissionCreatorPhoto(contentId: string | null): number {
1519
+ return inv<number>('0xC71B50AE58D07369', contentId, rai());
1555
1520
  }
1556
1521
 
1557
1522
  /**
1558
- * @param obj
1523
+ * @param p0
1559
1524
  */
1560
- static removeDecalsFromObject(obj: Prop): void {
1561
- inv<void>('0xFB8972BAE0013140', obj.handle);
1525
+ static N_0x6C03118E9E5C1A14(p0: any): void {
1526
+ inv<void>('0x6C03118E9E5C1A14', p0);
1562
1527
  }
1563
1528
 
1564
1529
  /**
@@ -1614,240 +1579,88 @@ export class Graphics {
1614
1579
  return inv<number>('0x175668836B44CBB0', _h(typeHash), f(pos1.x), f(pos1.y), f(pos1.z), f(pos2.x), f(pos2.y), f(pos2.z), f(radius), color.r, color.g, color.b, color.a, alpha, reserved, rai());
1615
1580
  }
1616
1581
 
1617
- static disableEntitymask(): void {
1618
- inv<void>('0x5C9978A2A3DC3D0D');
1619
- }
1620
-
1621
- /**
1622
- * Returns iNumPixels, iPixelsVisible
1623
- *
1624
- * @param iTrackedPoint
1625
- * @returns
1626
- */
1627
- static N_0xDFE332A5DA6FE7C9(iTrackedPoint: number): number {
1628
- return inv<number>('0xDFE332A5DA6FE7C9', iTrackedPoint, rai());
1629
- }
1630
-
1631
- /**
1632
- * @param entity
1633
- * @returns layer0; layer1; layer2; layer3
1634
- */
1635
- static setEntityMaskLayers(entity: Entity): [number, number, number, number] {
1636
- const result = inv<[number, number, number, number]>('0xE92012611461A42A', entity.handle, pvf(), pvf(), pvf(), pvf());
1637
- return [result[0], result[1], result[2], result[3]];
1638
- }
1639
-
1640
- /**
1641
- * @param point
1642
- * @returns
1643
- */
1644
- static isTrackedPointVisible(point: number): boolean {
1645
- return inv<boolean>('0xCBB056BA159FB48D', point, rai());
1646
- }
1647
-
1648
- static clearTimecycleModifier(): void {
1649
- inv<void>('0x0E3F4AF2D63491FB');
1650
- }
1651
-
1652
- /**
1653
- * Closes the the binocular scaleform
1654
- */
1655
- static N_0x5AC6E0FA028369DE(): void {
1656
- inv<void>('0x5AC6E0FA028369DE');
1657
- }
1658
-
1659
- /**
1660
- * ANIMPOSTFX_*
1661
- *
1662
- * @param effectNameHash
1663
- */
1664
- static N_0xC76FC4C2FC5F4405(effectNameHash: string | number): void {
1665
- inv<void>('0xC76FC4C2FC5F4405', _h(effectNameHash));
1666
- }
1667
-
1668
- /**
1669
- * @param effectName
1670
- */
1671
- static animpostfxStopTag(effectName: string | null): void {
1672
- inv<void>('0xAD74C22A541AB987', effectName);
1673
- }
1674
-
1675
- /**
1676
- * Used in CREATE_BEZIER_BLOOD_TRAIL_OF_TYPE
1677
- * *ENABLE**
1678
- */
1679
- static N_0x812C1563185C6FB2(): void {
1680
- inv<void>('0x812C1563185C6FB2');
1681
- }
1682
-
1683
- /**
1684
- * @param posseId
1685
- */
1686
- static setPosseIdForPhoto(posseId: any): void {
1687
- inv<void>('0x564837D4A9EDE296', posseId);
1688
- }
1689
-
1690
- /**
1691
- * Sets the checkpoint color.
1692
- *
1693
- * @param checkpoint
1694
- * @param color
1695
- * @param alpha
1696
- */
1697
- static setCheckpointRgba(checkpoint: number, color: Color, alpha: number): void {
1698
- inv<void>('0xCAAFC225E33B1D15', checkpoint, color.r, color.g, color.b, color.a, alpha);
1699
- }
1700
-
1701
- /**
1702
- * https://github.com/femga/rdr3_discoveries/blob/master/graphics/markers/marker_types.lua
1703
- * Old name: _DRAW_MARKER
1704
- *
1705
- * @param type
1706
- * @param pos
1707
- * @param direction
1708
- * @param rot
1709
- * @param scale
1710
- * @param color
1711
- * @param alpha
1712
- * @param bobUpAndDown
1713
- * @param faceCamera
1714
- * @param p19
1715
- * @param rotate
1716
- * @param textureDict
1717
- * @param textureName
1718
- * @param drawOnEnts
1719
- */
1720
- static drawMarker(type: string | number, pos: Vector3, direction: Vector3, rot: Vector3, scale: Vector3, color: Color, alpha: number, bobUpAndDown: boolean, faceCamera: boolean, p19: number, rotate: boolean, textureDict: string | null, textureName: string | null, drawOnEnts: boolean): void {
1721
- inv<void>('0x2A32FAA57B937173', _h(type), f(pos.x), f(pos.y), f(pos.z), f(direction.x), f(direction.y), f(direction.z), f(rot.x), f(rot.y), f(rot.z), f(scale.x), f(scale.y), f(scale.z), color.r, color.g, color.b, color.a, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts);
1722
- }
1723
-
1724
- /**
1725
- * @param r
1726
- * @param g
1727
- * @param b
1728
- */
1729
- static setParticleFxNonLoopedColour(r: number, g: number, b: number): void {
1730
- inv<void>('0x60B85BED6577A35B', f(r), f(g), f(b));
1731
- }
1732
-
1733
- /**
1734
- * @param p0
1735
- */
1736
- static N_0xF5793BB386E1FF9C(p0: any): void {
1737
- inv<void>('0xF5793BB386E1FF9C', p0);
1738
- }
1739
-
1740
- /**
1741
- * Used in shop scripts for CATALOG_BOOK
1742
- * false = Normal -> [CATALOG_BOOK_SHUTDOWN]
1743
- * true = Trees flickering? -> [CATALOG_BOOK_OPEN]
1744
- *
1745
- * @param p0
1746
- */
1747
- static N_0x1A9F09AB458D49C6(p0: boolean): void {
1748
- inv<void>('0x1A9F09AB458D49C6', p0);
1749
- }
1750
-
1751
- /**
1752
- * @param effectName
1753
- * @param duration
1754
- */
1755
- static animpostfxPlayTimed(effectName: string | null, duration: number): void {
1756
- inv<void>('0x3A9A281FF71249E9', effectName, duration);
1757
- }
1758
-
1759
- /**
1760
- * @param effectName
1761
- * @param entity
1762
- * @param offset
1763
- * @param rot
1764
- * @param boneIndex
1765
- * @param scale
1766
- * @param xAxis
1767
- * @param yAxis
1768
- * @param zAxis
1769
- * @returns
1770
- */
1771
- static startNetworkedParticleFxLoopedOnEntityBone(effectName: string | null, entity: Entity, offset: Vector3, rot: Vector3, boneIndex: number, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): number {
1772
- return inv<number>('0x9C56621462FFE7A6', effectName, entity.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), boneIndex, f(scale), xAxis, yAxis, zAxis, rai());
1582
+ static disableEntitymask(): void {
1583
+ inv<void>('0x5C9978A2A3DC3D0D');
1773
1584
  }
1774
1585
 
1775
1586
  /**
1776
- * @param p0
1777
- * @param p1
1778
- * @param p2
1587
+ * Returns iNumPixels, iPixelsVisible
1588
+ *
1589
+ * @param iTrackedPoint
1590
+ * @returns
1779
1591
  */
1780
- static N_0x735762E8D7573E42(p0: any, p1: any, p2: any): void {
1781
- inv<void>('0x735762E8D7573E42', p0, p1, p2);
1592
+ static N_0xDFE332A5DA6FE7C9(iTrackedPoint: number): number {
1593
+ return inv<number>('0xDFE332A5DA6FE7C9', iTrackedPoint, rai());
1782
1594
  }
1783
1595
 
1784
1596
  /**
1785
- * Only used in guama1 R* Script
1786
- * Disables lod/distant lights when BOOL is set to true
1787
- *
1788
- * @param disable
1597
+ * @param entity
1598
+ * @returns layer0; layer1; layer2; layer3
1789
1599
  */
1790
- static disableFarArtificialLights(disable: boolean): void {
1791
- inv<void>('0xCD284E2F6AC27EE9', disable);
1600
+ static setEntityMaskLayers(entity: Entity): [number, number, number, number] {
1601
+ const result = inv<[number, number, number, number]>('0xE92012611461A42A', entity.handle, pvf(), pvf(), pvf(), pvf());
1602
+ return [result[0], result[1], result[2], result[3]];
1792
1603
  }
1793
1604
 
1794
1605
  /**
1795
- * @param decal
1606
+ * @param point
1607
+ * @returns
1796
1608
  */
1797
- static removeDecal(decal: number): void {
1798
- inv<void>('0x49A720552EB0BB88', decal);
1609
+ static isTrackedPointVisible(point: number): boolean {
1610
+ return inv<boolean>('0xCBB056BA159FB48D', point, rai());
1611
+ }
1612
+
1613
+ static clearTimecycleModifier(): void {
1614
+ inv<void>('0x0E3F4AF2D63491FB');
1799
1615
  }
1800
1616
 
1801
1617
  /**
1802
- * Hardcoded to always set x to 1280 and y to 720.
1803
- *
1804
- * @returns x; y
1618
+ * Closes the the binocular scaleform
1805
1619
  */
1806
- static getScreenResolution(): [number, number] {
1807
- const result = inv<[number, number]>('0x66773C92835D0909', pvi(), pvi());
1808
- return [result[0], result[1]];
1620
+ static N_0x5AC6E0FA028369DE(): void {
1621
+ inv<void>('0x5AC6E0FA028369DE');
1809
1622
  }
1810
1623
 
1811
1624
  /**
1812
1625
  * ANIMPOSTFX_*
1813
1626
  *
1814
- * @param effectName
1627
+ * @param effectNameHash
1815
1628
  */
1816
- static N_0xA201A3D0AC087C37(effectName: string | null): void {
1817
- inv<void>('0xA201A3D0AC087C37', effectName);
1629
+ static N_0xC76FC4C2FC5F4405(effectNameHash: string | number): void {
1630
+ inv<void>('0xC76FC4C2FC5F4405', _h(effectNameHash));
1818
1631
  }
1819
1632
 
1820
1633
  /**
1821
- * @param modifierName
1822
- * @param transitionBlend
1634
+ * @param effectName
1823
1635
  */
1824
- static setTransitionTimecycleModifier(modifierName: string | null, transitionBlend: number): void {
1825
- inv<void>('0xFF927A09F481D80C', modifierName, f(transitionBlend));
1826
- }
1827
-
1828
- static enableEntitymask(): void {
1829
- inv<void>('0xFAAD23DE7A54FC14');
1636
+ static animpostfxStopTag(effectName: string | null): void {
1637
+ inv<void>('0xAD74C22A541AB987', effectName);
1830
1638
  }
1831
1639
 
1832
1640
  /**
1833
- * fxName: see data_0/data/effects/ptfx/fxlists/
1834
- *
1835
- * @param fxName
1641
+ * Used in CREATE_BEZIER_BLOOD_TRAIL_OF_TYPE
1642
+ * *ENABLE**
1836
1643
  */
1837
- static useParticleFxAsset(fxName: string | null): void {
1838
- inv<void>('0xA10DB07FC234DD12', fxName);
1644
+ static N_0x812C1563185C6FB2(): void {
1645
+ inv<void>('0x812C1563185C6FB2');
1839
1646
  }
1840
1647
 
1841
- static animpostfxStopAll(): void {
1842
- inv<void>('0x66560A0D4C64FD21');
1648
+ /**
1649
+ * @param posseId
1650
+ */
1651
+ static setPosseIdForPhoto(posseId: any): void {
1652
+ inv<void>('0x564837D4A9EDE296', posseId);
1843
1653
  }
1844
1654
 
1845
1655
  /**
1846
- * @param pickup
1847
- * @param toggle
1656
+ * Sets the checkpoint color.
1657
+ *
1658
+ * @param checkpoint
1659
+ * @param color
1660
+ * @param alpha
1848
1661
  */
1849
- static blockPickupPlacementLight(pickup: Pickup, toggle: boolean): void {
1850
- inv<void>('0x0552AA3FFC5B87AA', pickup.handle, toggle);
1662
+ static setCheckpointRgba(checkpoint: number, color: Color, alpha: number): void {
1663
+ inv<void>('0xCAAFC225E33B1D15', checkpoint, color.r, color.g, color.b, color.a, alpha);
1851
1664
  }
1852
1665
 
1853
1666
  /**
@@ -2149,264 +1962,451 @@ export class Graphics {
2149
1962
  }
2150
1963
 
2151
1964
  /**
2152
- * https://github.com/femga/rdr3_discoveries/blob/master/graphics/timecycles
2153
- *
2154
- * @param modifierName
1965
+ * @param p0
2155
1966
  */
2156
- static setTimecycleModifier(modifierName: string | null): void {
2157
- inv<void>('0xFA08722A5EA82DA7', modifierName);
1967
+ static N_0xFF8018C778349234(p0: any): void {
1968
+ inv<void>('0xFF8018C778349234', p0);
2158
1969
  }
2159
1970
 
2160
1971
  /**
2161
- * @param strength
1972
+ * Old name: _SET_HIDOF_ENV_BLUR_PARAMS
1973
+ *
1974
+ * @param p0
1975
+ * @param p1
1976
+ * @param p2
1977
+ * @param p3
1978
+ * @param p4
1979
+ * @param p5
2162
1980
  */
2163
- static setTimecycleModifierStrength(strength: number): void {
2164
- inv<void>('0xFDB74C9CC54C3F37', f(strength));
1981
+ static setHidofOverride(p0: boolean, p1: boolean, p2: number, p3: number, p4: number, p5: number): void {
1982
+ inv<void>('0xCC23AA1A7CBFE840', p0, p1, f(p2), f(p3), f(p4), f(p5));
2165
1983
  }
2166
1984
 
2167
1985
  /**
2168
- * @param toggle
1986
+ * @param effectName
1987
+ * @param entity
1988
+ * @param offset
1989
+ * @param rot
1990
+ * @param boneIndex
1991
+ * @param scale
1992
+ * @param xAxis
1993
+ * @param yAxis
1994
+ * @param zAxis
1995
+ * @returns
2169
1996
  */
2170
- static togglePausedRenderphases(toggle: boolean): void {
2171
- inv<void>('0xEF9E1C45732F55FA', toggle);
1997
+ static startParticleFxLoopedOnEntityBone(effectName: string | null, entity: Entity, offset: Vector3, rot: Vector3, boneIndex: number, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): number {
1998
+ return inv<number>('0xD3BA6EC7F2FBD5E9', effectName, entity.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), boneIndex, f(scale), xAxis, yAxis, zAxis, rai());
2172
1999
  }
2173
2000
 
2174
2001
  /**
2175
- * R* Script spd_agnesdow1: p0 = SPD_AGNES_DOWD_01
2002
+ * Sets the checkpoint icon color.
2176
2003
  *
2177
- * @param p0
2178
- * @returns
2004
+ * @param checkpoint
2005
+ * @param color
2006
+ * @param alpha
2179
2007
  */
2180
- static N_0xFD05B1DDE83749FA(p0: string | null): boolean {
2181
- return inv<boolean>('0xFD05B1DDE83749FA', p0, rai());
2008
+ static setCheckpointRgba2(checkpoint: number, color: Color, alpha: number): void {
2009
+ inv<void>('0x99AFF17222D4DEB4', checkpoint, color.r, color.g, color.b, color.a, alpha);
2182
2010
  }
2183
2011
 
2184
2012
  /**
2013
+ * nullsub, doesn't do anything (GTA5 leftover, there is no phone in RDR3)
2014
+ *
2185
2015
  * @param p0
2016
+ * @param photoRotation
2186
2017
  */
2187
- static setParticleFxFootLodrangeScale(p0: number): void {
2188
- inv<void>('0x2A1625858887D4E6', f(p0));
2018
+ static drawLowQualityPhotoToPhone(p0: boolean, photoRotation: number): void {
2019
+ inv<void>('0xF1142E5D64B47802', p0, photoRotation);
2189
2020
  }
2190
2021
 
2191
2022
  /**
2192
- * @param ptfxHandle
2193
- * @returns
2023
+ * https://gfycat.com/meagerfaireyra
2024
+ *
2025
+ * @param entity
2026
+ * @param color
2194
2027
  */
2195
- static doesParticleFxLoopedExist(ptfxHandle: number): boolean {
2196
- return inv<boolean>('0x9DD5AFF561E88F2A', ptfxHandle, rai());
2028
+ static setLightsColorForEntity(entity: Entity, color: Color): void {
2029
+ inv<void>('0x6EC2A67962296F49', entity.handle, color.r, color.g, color.b, color.a);
2197
2030
  }
2198
2031
 
2199
2032
  /**
2200
2033
  * @param effectName
2201
- * @param entity
2034
+ * @param ped
2202
2035
  * @param offset
2203
2036
  * @param rot
2037
+ * @param boneIndex
2204
2038
  * @param scale
2205
2039
  * @param axisX
2206
2040
  * @param axisY
2207
2041
  * @param axisZ
2208
2042
  * @returns
2209
2043
  */
2210
- static startParticleFxNonLoopedOnEntity(effectName: string | null, entity: Entity, offset: Vector3, rot: Vector3, scale: number, axisX: boolean, axisY: boolean, axisZ: boolean): boolean {
2211
- return inv<boolean>('0xFF4C64C513388C12', effectName, entity.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), f(scale), axisX, axisY, axisZ, rai());
2044
+ static startParticleFxNonLoopedOnPedBone2(effectName: string | null, ped: Ped, offset: Vector3, rot: Vector3, boneIndex: number, scale: number, axisX: boolean, axisY: boolean, axisZ: boolean): any {
2045
+ return inv<number>('0xC695870B8A149B96', effectName, ped.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), boneIndex, f(scale), axisX, axisY, axisZ);
2046
+ }
2047
+
2048
+ static N_0x981C7D863980FA51(): void {
2049
+ inv<void>('0x981C7D863980FA51');
2050
+ }
2051
+
2052
+ /**
2053
+ * @param p0
2054
+ * @param p1
2055
+ */
2056
+ static N_0x9F6D859C80708B26(p0: boolean, p1: boolean): void {
2057
+ inv<void>('0x9F6D859C80708B26', p0, p1);
2058
+ }
2059
+
2060
+ /**
2061
+ * @param oldAsset
2062
+ * @param newAsset
2063
+ */
2064
+ static setParticleFxOverride(oldAsset: string | null, newAsset: string | null): void {
2065
+ inv<void>('0xBE711A169E9C7E95', oldAsset, newAsset);
2066
+ }
2067
+
2068
+ /**
2069
+ * @param p0
2070
+ * @param p1
2071
+ */
2072
+ static N_0xA0F4D12D6042F6D5(p0: any, p1: any): void {
2073
+ inv<void>('0xA0F4D12D6042F6D5', p0, p1);
2074
+ }
2075
+
2076
+ /**
2077
+ * @param ptfxHandle
2078
+ * @param pos
2079
+ * @param rot
2080
+ */
2081
+ static setParticleFxLoopedOffsets(ptfxHandle: number, pos: Vector3, rot: Vector3): void {
2082
+ inv<void>('0xD3A4A95FC94FE83B', ptfxHandle, f(pos.x), f(pos.y), f(pos.z), f(rot.x), f(rot.y), f(rot.z));
2083
+ }
2084
+
2085
+ /**
2086
+ * @param p0
2087
+ */
2088
+ static disableStaticVegModifier(p0: string | number): void {
2089
+ inv<void>('0xDD0BC0EDCB2162F6', _h(p0));
2090
+ }
2091
+
2092
+ /**
2093
+ * @param ptfxHandle
2094
+ * @param scale
2095
+ */
2096
+ static setParticleFxLoopedScale(ptfxHandle: number, scale: number): void {
2097
+ inv<void>('0x1A9E1C0D98D093B7', ptfxHandle, f(scale));
2098
+ }
2099
+
2100
+ /**
2101
+ * https://github.com/femga/rdr3_discoveries/blob/master/graphics/ptfx/ptfx_assets_non_looped.lua
2102
+ *
2103
+ * @param effectName
2104
+ * @param pos
2105
+ * @param rot
2106
+ * @param scale
2107
+ * @param eventType
2108
+ * @param bPeekOnly
2109
+ * @param bIsRegistered
2110
+ * @returns
2111
+ */
2112
+ static startParticleFxNonLoopedAtCoord(effectName: string | null, pos: Vector3, rot: Vector3, scale: number, eventType: number, bPeekOnly: boolean, bIsRegistered: boolean): number {
2113
+ return inv<number>('0x2E80BF72EF7C87AC', effectName, f(pos.x), f(pos.y), f(pos.z), f(rot.x), f(rot.y), f(rot.z), f(scale), eventType, bPeekOnly, bIsRegistered, rai());
2114
+ }
2115
+
2116
+ /**
2117
+ * @param p0
2118
+ * @returns
2119
+ */
2120
+ static isStaticVegModifierEnabled(p0: string | number): any {
2121
+ return inv<number>('0xDE9BAD3292AA6D5E', _h(p0));
2122
+ }
2123
+
2124
+ /**
2125
+ * @param p0
2126
+ * @param p1
2127
+ */
2128
+ static N_0xC489FE31AC726512(p0: any, p1: any): void {
2129
+ inv<void>('0xC489FE31AC726512', p0, p1);
2130
+ }
2131
+
2132
+ /**
2133
+ * https://i.imgur.com/rPITUCV.jpg
2134
+ * More customizable and more like quadrants
2135
+ *
2136
+ * @param pos
2137
+ * @param p3
2138
+ * @param size
2139
+ * @param p5
2140
+ * @param permanent
2141
+ * @param p7
2142
+ * @param p8
2143
+ */
2144
+ static addBloodPool2(pos: Vector3, p3: number, size: number, p5: number, permanent: boolean, p7: number, p8: boolean): void {
2145
+ inv<void>('0xF708298675ABDC6A', f(pos.x), f(pos.y), f(pos.z), f(p3), f(size), f(p5), permanent, f(p7), p8);
2212
2146
  }
2213
2147
 
2214
2148
  /**
2215
- * @returns
2149
+ * p1: 0.3f in R* Scripts
2150
+ *
2151
+ * @param waypointRecording
2152
+ * @param p1
2216
2153
  */
2217
- static getTogglePausedRenderphasesStatus(): boolean {
2218
- return inv<boolean>('0x86ED21BDB2791CE8', rai());
2154
+ static bloodTrailForWaypoint(waypointRecording: string | null, p1: number): void {
2155
+ inv<void>('0xB9C92616929CC25D', waypointRecording, f(p1));
2219
2156
  }
2220
2157
 
2221
2158
  /**
2222
- * Only used in R* SP Script spd_agnesdown1
2223
- *
2224
- * @param p0
2225
- * @returns
2159
+ * @param ptfxHandle
2160
+ * @param range
2226
2161
  */
2227
- static N_0x5C9C3A466B3296A8(p0: any): any {
2228
- return inv<number>('0x5C9C3A466B3296A8', p0);
2162
+ static setParticleFxLoopedFarClipDist(ptfxHandle: number, range: number): void {
2163
+ inv<void>('0x9B04D471DA0AD7AA', ptfxHandle, f(range));
2229
2164
  }
2230
2165
 
2231
2166
  /**
2232
- * @param entity
2233
- * @param mask
2167
+ * @param p0
2168
+ * @param p1
2234
2169
  */
2235
- static addEntityToEntityMask(entity: Entity, mask: number): void {
2236
- inv<void>('0xC6F81FCD15350323', entity.handle, mask);
2170
+ static N_0x085C5B61A0114F32(p0: any, p1: any): void {
2171
+ inv<void>('0x085C5B61A0114F32', p0, p1);
2237
2172
  }
2238
2173
 
2239
2174
  /**
2240
- * Always returns 200.
2241
- *
2242
- * @returns
2175
+ * @param p0
2243
2176
  */
2244
- static getMaxNumberOfLocalPhotos(): number {
2245
- return inv<number>('0x8E587FCD30E05592', rai());
2177
+ static N_0x9F158A49B0D84C3C(p0: any): void {
2178
+ inv<void>('0x9F158A49B0D84C3C', p0);
2246
2179
  }
2247
2180
 
2248
2181
  /**
2249
- * @param channel
2182
+ * @returns
2250
2183
  */
2251
- static setTvChannel(channel: number): void {
2252
- inv<void>('0x593FAF7FC9401A56', channel);
2184
+ static N_0x5C674EB487891F6B(): any {
2185
+ return inv<number>('0x5C674EB487891F6B');
2253
2186
  }
2254
2187
 
2255
2188
  /**
2256
- * @param pos
2257
- * @param p3
2189
+ * Params: component - used in odriscolls1 and sean1 R* SP Script: COMPONENT_BINOCULARS_SCOPE01
2190
+ * Triggers the binocular scaleform
2191
+ *
2192
+ * @param component
2258
2193
  */
2259
- static addPetrolTrailDecalInfo(pos: Vector3, p3: number): void {
2260
- inv<void>('0x73354FB6D03D2E8A', f(pos.x), f(pos.y), f(pos.z), f(p3));
2194
+ static N_0x21F00E08CBB5F37B(component: string | null): void {
2195
+ inv<void>('0x21F00E08CBB5F37B', component);
2261
2196
  }
2262
2197
 
2263
2198
  /**
2264
- * ANIMPOSTFX_*
2199
+ * Sets an unknown value related to timecycles.
2265
2200
  *
2266
- * @param effectName
2267
- * @returns
2201
+ * @param unk
2268
2202
  */
2269
- static N_0xB958D97A0DFAA0C2(effectName: string | null): boolean {
2270
- return inv<boolean>('0xB958D97A0DFAA0C2', effectName, rai());
2203
+ static resetAdaptation(unk: number): void {
2204
+ inv<void>('0x297B72E2AF094742', unk);
2271
2205
  }
2272
2206
 
2273
2207
  /**
2274
- * @param txdHash
2275
- * @param dict
2276
- * @returns
2208
+ * @param effectNameHash
2277
2209
  */
2278
- static isTextureInDict(txdHash: string | number, dict: string | number): any {
2279
- return inv<number>('0xA2A51869BDED733B', _h(txdHash), _h(dict));
2210
+ static animpostfxPreloadPostfxByStackhash(effectNameHash: string | number): void {
2211
+ inv<void>('0xF3E039322BFBD4D8', _h(effectNameHash));
2280
2212
  }
2281
2213
 
2282
- static N_0x910E260AEAD855DE(): void {
2283
- inv<void>('0x910E260AEAD855DE');
2214
+ /**
2215
+ * @param effectNameHash
2216
+ * @param p1
2217
+ * @param p2
2218
+ * @returns p3
2219
+ */
2220
+ static animpostfxHasEventTriggeredByStackhash(effectNameHash: string | number, p1: number, p2: boolean): [any, boolean] {
2221
+ const result = inv<[number, number]>('0x9AB192A9EF980EED', _h(effectNameHash), p1, p2, pvi());
2222
+ return [result[0], !!result[1]];
2284
2223
  }
2285
2224
 
2286
- static resetPausedRenderphases(): void {
2287
- inv<void>('0xCCD9AAD85E1B559E');
2225
+ static destroySwatchTextureDict(): void {
2226
+ inv<void>('0xDAD7FB8402651654');
2288
2227
  }
2289
2228
 
2290
2229
  /**
2291
- * @param unused
2292
2230
  * @returns
2293
2231
  */
2294
- static saveHighQualityPhoto(unused: number): any {
2295
- return inv<number>('0x57639FD876B68A91', unused);
2232
+ static beginTakeHighQualityPhoto(): any {
2233
+ return inv<number>('0xA15BFFC0A01B34E1');
2296
2234
  }
2297
2235
 
2298
2236
  /**
2299
- * @param pos
2300
- * @param p2
2237
+ * Old name: _IS_TV_PLAYLIST_ITEM_PLAYING
2238
+ *
2239
+ * @param videoCliphash
2240
+ * @returns
2301
2241
  */
2302
- static setCloudLayer(pos: Vector2, p2: number): void {
2303
- inv<void>('0xB8C984C0D47F4F07', f(pos.x), f(pos.y), p2);
2242
+ static isTvshowCurrentlyPlaying(videoCliphash: string | number): boolean {
2243
+ return inv<boolean>('0x4D562223E0EB65F3', _h(videoCliphash), rai());
2304
2244
  }
2305
2245
 
2306
2246
  /**
2307
2247
  * @param p0
2308
- * @returns
2309
2248
  */
2310
- static N_0xEC3D8C228FE553D7(p0: boolean): boolean {
2311
- return inv<boolean>('0xEC3D8C228FE553D7', p0, rai());
2249
+ static N_0x8996FA6AD9FE4E90(p0: any): void {
2250
+ inv<void>('0x8996FA6AD9FE4E90', p0);
2312
2251
  }
2313
2252
 
2314
2253
  /**
2315
- * *RESET**
2254
+ * @param obj
2316
2255
  */
2317
- static N_0x1460B644397453EB(): void {
2318
- inv<void>('0x1460B644397453EB');
2256
+ static removeDecalsFromObject(obj: Prop): void {
2257
+ inv<void>('0xFB8972BAE0013140', obj.handle);
2319
2258
  }
2320
2259
 
2321
2260
  /**
2322
- * @param personaPhotoLocalCacheType
2261
+ * https://github.com/femga/rdr3_discoveries/blob/master/graphics/markers/marker_types.lua
2262
+ * Old name: _DRAW_MARKER
2263
+ *
2264
+ * @param type
2265
+ * @param pos
2266
+ * @param direction
2267
+ * @param rot
2268
+ * @param scale
2269
+ * @param color
2270
+ * @param alpha
2271
+ * @param bobUpAndDown
2272
+ * @param faceCamera
2273
+ * @param p19
2274
+ * @param rotate
2275
+ * @param textureDict
2276
+ * @param textureName
2277
+ * @param drawOnEnts
2323
2278
  */
2324
- static pedshotSetPersonaPhotoType(personaPhotoLocalCacheType: number): void {
2325
- inv<void>('0x196D3ACBEBA4A44B', personaPhotoLocalCacheType);
2326
- }
2327
-
2328
- static pedshotFinishCleanupData(): void {
2329
- inv<void>('0xC2B8164C3BE871A4');
2279
+ static drawMarker(type: string | number, pos: Vector3, direction: Vector3, rot: Vector3, scale: Vector3, color: Color, alpha: number, bobUpAndDown: boolean, faceCamera: boolean, p19: number, rotate: boolean, textureDict: string | null, textureName: string | null, drawOnEnts: boolean): void {
2280
+ inv<void>('0x2A32FAA57B937173', _h(type), f(pos.x), f(pos.y), f(pos.z), f(direction.x), f(direction.y), f(direction.z), f(rot.x), f(rot.y), f(rot.z), f(scale.x), f(scale.y), f(scale.z), color.r, color.g, color.b, color.a, alpha, bobUpAndDown, faceCamera, p19, rotate, textureDict, textureName, drawOnEnts);
2330
2281
  }
2331
2282
 
2332
- static N_0x1C6306E5BC25C29C(): void {
2333
- inv<void>('0x1C6306E5BC25C29C');
2283
+ /**
2284
+ * @param r
2285
+ * @param g
2286
+ * @param b
2287
+ */
2288
+ static setParticleFxNonLoopedColour(r: number, g: number, b: number): void {
2289
+ inv<void>('0x60B85BED6577A35B', f(r), f(g), f(b));
2334
2290
  }
2335
2291
 
2336
2292
  /**
2337
- * @param pos
2293
+ * @param p0
2338
2294
  */
2339
- static setCloudNoise(pos: Vector3): void {
2340
- inv<void>('0xFE7966DF01452F32', f(pos.x), f(pos.y), f(pos.z));
2295
+ static N_0xF5793BB386E1FF9C(p0: any): void {
2296
+ inv<void>('0xF5793BB386E1FF9C', p0);
2341
2297
  }
2342
2298
 
2343
2299
  /**
2300
+ * Used in shop scripts for CATALOG_BOOK
2301
+ * false = Normal -> [CATALOG_BOOK_SHUTDOWN]
2302
+ * true = Trees flickering? -> [CATALOG_BOOK_OPEN]
2303
+ *
2344
2304
  * @param p0
2345
2305
  */
2346
- static N_0xEB48CE48EEC41FD4(p0: any): void {
2347
- inv<void>('0xEB48CE48EEC41FD4', p0);
2306
+ static N_0x1A9F09AB458D49C6(p0: boolean): void {
2307
+ inv<void>('0x1A9F09AB458D49C6', p0);
2348
2308
  }
2349
2309
 
2350
2310
  /**
2351
- * Used in NET_CAMP_SPIRIT_ANIMAL_CLEAR_ANIMAL_VISIBILITY
2352
- *
2353
- * @param entity
2311
+ * @param effectName
2312
+ * @param duration
2354
2313
  */
2355
- static N_0xC06F2F45A73EABCD(entity: Entity): void {
2356
- inv<void>('0xC06F2F45A73EABCD', entity.handle);
2314
+ static animpostfxPlayTimed(effectName: string | null, duration: number): void {
2315
+ inv<void>('0x3A9A281FF71249E9', effectName, duration);
2357
2316
  }
2358
2317
 
2359
2318
  /**
2360
2319
  * @param effectName
2361
- * @param pos
2320
+ * @param entity
2321
+ * @param offset
2362
2322
  * @param rot
2323
+ * @param boneIndex
2363
2324
  * @param scale
2364
2325
  * @param xAxis
2365
2326
  * @param yAxis
2366
2327
  * @param zAxis
2367
2328
  * @returns
2368
2329
  */
2369
- static startNetworkedParticleFxNonLoopedAtCoord(effectName: string | null, pos: Vector3, rot: Vector3, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): boolean {
2370
- return inv<boolean>('0xFB97618457994A62', effectName, f(pos.x), f(pos.y), f(pos.z), f(rot.x), f(rot.y), f(rot.z), f(scale), xAxis, yAxis, zAxis, rai());
2330
+ static startNetworkedParticleFxLoopedOnEntityBone(effectName: string | null, entity: Entity, offset: Vector3, rot: Vector3, boneIndex: number, scale: number, xAxis: boolean, yAxis: boolean, zAxis: boolean): number {
2331
+ return inv<number>('0x9C56621462FFE7A6', effectName, entity.handle, f(offset.x), f(offset.y), f(offset.z), f(rot.x), f(rot.y), f(rot.z), boneIndex, f(scale), xAxis, yAxis, zAxis, rai());
2371
2332
  }
2372
2333
 
2373
2334
  /**
2374
- * @returns
2335
+ * @param p0
2336
+ * @param p1
2337
+ * @param p2
2375
2338
  */
2376
- static getPhotoModeExposure(): number {
2377
- return inv<number>('0x06C0D8BB6B04A709', raf());
2339
+ static N_0x735762E8D7573E42(p0: any, p1: any, p2: any): void {
2340
+ inv<void>('0x735762E8D7573E42', p0, p1, p2);
2378
2341
  }
2379
2342
 
2380
2343
  /**
2381
- * _SET_PARTICLE_FX_LOOPED_FA* - _SET_PARTICLE_FX_LOOPED_OF*
2344
+ * Only used in guama1 R* Script
2345
+ * Disables lod/distant lights when BOOL is set to true
2382
2346
  *
2383
- * @param ptfxHandle
2384
- * @param scalar
2347
+ * @param disable
2385
2348
  */
2386
- static setParticleFxLoopedUpdateDistantSmoke(ptfxHandle: number, scalar: number): void {
2387
- inv<void>('0x9DDC222D85D5AF2A', ptfxHandle, f(scalar));
2349
+ static disableFarArtificialLights(disable: boolean): void {
2350
+ inv<void>('0xCD284E2F6AC27EE9', disable);
2388
2351
  }
2389
2352
 
2390
2353
  /**
2391
- * Known effects: MP_Trans_SceneToPhoto
2392
- * MP_Trans_WinLose
2393
- * SpectateFilter
2394
- * MP_CharacterCreatorPhoto
2395
- * MP_Trans_PhotoToScene
2396
- * InterrogationHit
2354
+ * @param decal
2355
+ */
2356
+ static removeDecal(decal: number): void {
2357
+ inv<void>('0x49A720552EB0BB88', decal);
2358
+ }
2359
+
2360
+ /**
2361
+ * Hardcoded to always set x to 1280 and y to 720.
2362
+ *
2363
+ * @returns x; y
2364
+ */
2365
+ static getScreenResolution(): [number, number] {
2366
+ const result = inv<[number, number]>('0x66773C92835D0909', pvi(), pvi());
2367
+ return [result[0], result[1]];
2368
+ }
2369
+
2370
+ /**
2371
+ * ANIMPOSTFX_*
2397
2372
  *
2398
2373
  * @param effectName
2399
- * @returns
2400
2374
  */
2401
- static animpostfxGetStackhash(effectName: string | null): string | number {
2402
- return (inv<number>('0x842CCC9491FFCD9B', effectName, rai())) & 0xFFFFFFFF;
2375
+ static N_0xA201A3D0AC087C37(effectName: string | null): void {
2376
+ inv<void>('0xA201A3D0AC087C37', effectName);
2403
2377
  }
2404
2378
 
2405
2379
  /**
2406
- * @param height
2380
+ * @param modifierName
2381
+ * @param transitionBlend
2407
2382
  */
2408
- static setCloudHeight(height: number): void {
2409
- inv<void>('0xC332C91388F5580B', f(height));
2383
+ static setTransitionTimecycleModifier(modifierName: string | null, transitionBlend: number): void {
2384
+ inv<void>('0xFF927A09F481D80C', modifierName, f(transitionBlend));
2385
+ }
2386
+
2387
+ static enableEntitymask(): void {
2388
+ inv<void>('0xFAAD23DE7A54FC14');
2389
+ }
2390
+
2391
+ /**
2392
+ * fxName: see data_0/data/effects/ptfx/fxlists/
2393
+ *
2394
+ * @param fxName
2395
+ */
2396
+ static useParticleFxAsset(fxName: string | null): void {
2397
+ inv<void>('0xA10DB07FC234DD12', fxName);
2398
+ }
2399
+
2400
+ static animpostfxStopAll(): void {
2401
+ inv<void>('0x66560A0D4C64FD21');
2402
+ }
2403
+
2404
+ /**
2405
+ * @param pickup
2406
+ * @param toggle
2407
+ */
2408
+ static blockPickupPlacementLight(pickup: Pickup, toggle: boolean): void {
2409
+ inv<void>('0x0552AA3FFC5B87AA', pickup.handle, toggle);
2410
2410
  }
2411
2411
 
2412
2412
  }