16 static int m_lastID = 0;
20 static const int INVALID = -1;
21 static const int NONE = 0;
22 static const int PARTICLE_TEST = RegisterParticle(
"_test_orientation");
23 static const int DEBUG_DOT = RegisterParticle(
"debug_dot");
24 static const int DEBUG_DOT5M = RegisterParticle(
"debug_dot5m");
28 static const int CAMP_FIRE_START = RegisterParticle(
"fire_small_camp_01_start");
29 static const int CAMP_SMALL_FIRE = RegisterParticle(
"fire_small_camp_01");
30 static const int CAMP_NORMAL_FIRE = RegisterParticle(
"fire_medium_camp_01");
31 static const int CAMP_SMALL_SMOKE = RegisterParticle(
"smoke_small_camp_01");
32 static const int CAMP_NORMAL_SMOKE = RegisterParticle(
"smoke_medium_camp_01");
33 static const int CAMP_FIRE_END = RegisterParticle(
"fire_small_camp_01_end");
34 static const int CAMP_STEAM_2END = RegisterParticle(
"steam_medium_camp_2end");
35 static const int CAMP_STEAM_EXTINGUISH_START = RegisterParticle(
"default_01");
36 static const int CAMP_STOVE_FIRE = RegisterParticle(
"fire_small_stove_01");
37 static const int CAMP_STOVE_FIRE_START = RegisterParticle(
"fire_small_stove_01_start");
38 static const int CAMP_STOVE_FIRE_END = RegisterParticle(
"fire_small_stove_01_end");
39 static const int CAMP_NO_IGNITE_WIND = RegisterParticle(
"fire_extinguish_wind");
41 static const int HOUSE_FIRE_START = RegisterParticle(
"fire_small_house_01_start");
42 static const int HOUSE_SMALL_FIRE = RegisterParticle(
"fire_small_house_01");
43 static const int HOUSE_SMALL_SMOKE = RegisterParticle(
"smoke_small_house_01");
44 static const int HOUSE_NORMAL_FIRE = RegisterParticle(
"fire_medium_house_01");
45 static const int HOUSE_NORMAL_SMOKE = RegisterParticle(
"smoke_medium_house_01");
46 static const int HOUSE_FIRE_END = RegisterParticle(
"fire_small_house_01_end");
47 static const int HOUSE_FIRE_STEAM_2END = RegisterParticle(
"steam_medium_house_2end");
49 static const int BARREL_FIRE_START = RegisterParticle(
"fire_small_barrel_01_start");
50 static const int BARREL_SMALL_FIRE = RegisterParticle(
"fire_small_barrel_01");
51 static const int BARREL_SMALL_SMOKE = RegisterParticle(
"smoke_small_barrel_01");
52 static const int BARREL_NORMAL_FIRE = RegisterParticle(
"fire_medium_barrel_01");
53 static const int BARREL_NORMAL_SMOKE = RegisterParticle(
"smoke_medium_barrel_01");
54 static const int BARREL_FIRE_END = RegisterParticle(
"fire_small_barrel_01_end");
55 static const int BARREL_FIRE_STEAM_2END = RegisterParticle(
"steam_medium_camp_2end");
57 static const int OVEN_FIRE_START = RegisterParticle(
"fire_small_oven_01_start");
58 static const int OVEN_SMALL_FIRE = RegisterParticle(
"fire_small_oven_01");
59 static const int OVEN_NORMAL_FIRE = RegisterParticle(
"fire_medium_oven_01");
60 static const int OVEN_FIRE_END = RegisterParticle(
"fire_small_ovenl_01_end");
63 static const int COOKING_BOILING_EMPTY = RegisterParticle(
"cooking_boiling_empty");
64 static const int COOKING_BOILING_START = RegisterParticle(
"cooking_boiling_start");
65 static const int COOKING_BOILING_DONE = RegisterParticle(
"cooking_boiling_done");
66 static const int COOKING_BAKING_START = RegisterParticle(
"cooking_baking_start");
67 static const int COOKING_BAKING_DONE = RegisterParticle(
"cooking_baking_done");
68 static const int COOKING_DRYING_START = RegisterParticle(
"cooking_drying_start");
69 static const int COOKING_DRYING_DONE = RegisterParticle(
"cooking_drying_done");
70 static const int COOKING_BURNING_DONE = RegisterParticle(
"cooking_burning_done");
71 static const int ITEM_HOT_VAPOR = RegisterParticle(
"item_hot_vapor");
74 static const int TORCH_T3 = RegisterParticle(
"fire_small_torch_01");
75 static const int TORCH_T1 = RegisterParticle(
"fire_small_torch_02");
76 static const int TORCH_T2 = RegisterParticle(
"fire_small_torch_03");
79 static const int BROOM_TORCH_T1 = RegisterParticle(
"fire_small_broom_torch_01");
80 static const int BROOM_TORCH_T2 = RegisterParticle(
"fire_small_broom_torch_02");
81 static const int BROOM_TORCH_T3 = RegisterParticle(
"fire_small_broom_torch_03");
84 static const int ROADFLARE_BURNING_INIT = RegisterParticle(
"fire_small_roadflare_red_04");
85 static const int ROADFLARE_BURNING_MAIN = RegisterParticle(
"fire_small_roadflare_red_01");
86 static const int ROADFLARE_BURNING_ENDING = RegisterParticle(
"fire_small_roadflare_red_02");
87 static const int ROADFLARE_BURNING_SMOKE = RegisterParticle(
"fire_small_roadflare_red_03");
90 static const int FLAREPROJ_FIRE = RegisterParticle(
"fire_small_roadflare_red_04");
91 static const int FLAREPROJ_ACTIVATE = RegisterParticle(
"fire_small_flare_yellow_01");
92 static const int FLAREPROJ_ACTIVATE_RED = RegisterParticle(
"fire_small_flare_red_01");
93 static const int FLAREPROJ_ACTIVATE_GREEN = RegisterParticle(
"fire_small_flare_green_01");
94 static const int FLAREPROJ_ACTIVATE_BLUE = RegisterParticle(
"fire_small_flare_blue_01");
97 static const int DIGGING_STASH = RegisterParticle(
"digging_ground");
101 static const int GRENADE_RDG2_BLACK_START = RegisterParticle(
"smoke_RDG2_black_01");
102 static const int GRENADE_RDG2_BLACK_LOOP = RegisterParticle(
"smoke_RDG2_black_02");
103 static const int GRENADE_RDG2_BLACK_END = RegisterParticle(
"smoke_RDG2_black_03");
104 static const int GRENADE_RDG2_WHITE_START = RegisterParticle(
"smoke_RDG2_white_01");
105 static const int GRENADE_RDG2_WHITE_LOOP = RegisterParticle(
"smoke_RDG2_white_02");
106 static const int GRENADE_RDG2_WHITE_END = RegisterParticle(
"smoke_RDG2_white_03");
108 static const int GRENADE_M18_GREEN_START = RegisterParticle(
"smoke_M18_green_01");
109 static const int GRENADE_M18_GREEN_LOOP = RegisterParticle(
"smoke_M18_green_02");
110 static const int GRENADE_M18_GREEN_END = RegisterParticle(
"smoke_M18_green_03");
111 static const int GRENADE_M18_PURPLE_START = RegisterParticle(
"smoke_M18_purple_01");
112 static const int GRENADE_M18_PURPLE_LOOP = RegisterParticle(
"smoke_M18_purple_02");
113 static const int GRENADE_M18_PURPLE_END = RegisterParticle(
"smoke_M18_purple_03");
114 static const int GRENADE_M18_RED_START = RegisterParticle(
"smoke_M18_red_01");
115 static const int GRENADE_M18_RED_LOOP = RegisterParticle(
"smoke_M18_red_02");
116 static const int GRENADE_M18_RED_END = RegisterParticle(
"smoke_M18_red_03");
117 static const int GRENADE_M18_WHITE_START = RegisterParticle(
"smoke_M18_white_01");
118 static const int GRENADE_M18_WHITE_LOOP = RegisterParticle(
"smoke_M18_white_02");
119 static const int GRENADE_M18_WHITE_END = RegisterParticle(
"smoke_M18_white_03");
120 static const int GRENADE_M18_YELLOW_START = RegisterParticle(
"smoke_M18_yellow_01");
121 static const int GRENADE_M18_YELLOW_LOOP = RegisterParticle(
"smoke_M18_yellow_02");
122 static const int GRENADE_M18_YELLOW_END = RegisterParticle(
"smoke_M18_yellow_03");
123 static const int GRENADE_M18_BLACK_START = RegisterParticle(
"smoke_M18_black_01");
124 static const int GRENADE_M18_BLACK_LOOP = RegisterParticle(
"smoke_M18_black_02");
125 static const int GRENADE_M18_BLACK_END = RegisterParticle(
"smoke_M18_black_03");
129 static const int GRENADE_M84 = RegisterParticle(
"explosion_M84_01");
132 static const int RGD5 = RegisterParticle(
"explosion_RGD5_01");
133 static const int M67 = RegisterParticle(
"explosion_M67_01");
136 static const int EXPLOSION_GRENADE_SNOW = RegisterParticle(
"explosion_grenade_snow");
137 static const int EXPLOSION_GRENADE_ICE = RegisterParticle(
"explosion_grenade_ice");
140 static const int POWER_GENERATOR_SMOKE = RegisterParticle(
"smoke_small_generator_01");
141 static const int BARBED_WIRE_SPARKS = RegisterParticle(
"electro_shortc2");
142 static const int LEVER_SPARKS = RegisterParticle(
"electro_sparks");
143 static const int EASTER_EGG_ACTIVATE = RegisterParticle(
"easter_egg_activate");
146 static const int BLEEDING_SOURCE = RegisterParticle(
"blood_bleeding_01");
147 static const int BLEEDING_SOURCE_LIGHT = RegisterParticle(
"blood_bleeding_02");
148 static const int BLOOD_SURFACE_DROPS = RegisterParticle(
"blood_surface_drops");
149 static const int BLOOD_SURFACE_CHUNKS = RegisterParticle(
"blood_surface_chunks");
150 static const int VOMIT = RegisterParticle(
"character_vomit_01");
151 static const int BREATH_VAPOUR_LIGHT = RegisterParticle(
"breath_vapour_light");
152 static const int BREATH_VAPOUR_MEDIUM = RegisterParticle(
"breath_vapour_medium");
153 static const int BREATH_VAPOUR_HEAVY = RegisterParticle(
"breath_vapour_heavy");
154 static const int VOMIT_CHUNKS = RegisterParticle(
"character_vomit_puddle");
157 static const int GUN_MUZZLE_FLASH_SVD_STAR = RegisterParticle(
"weapon_shot_Flame_3D_4star");
158 static const int GUN_SOLO_MUZZLE_FLASH = RegisterParticle(
"weapon_shot_Flame_3D");
159 static const int GUN_FNX = RegisterParticle(
"weapon_shot_fnx_01");
160 static const int GUN_FNX_SUPPRESSED = RegisterParticle(
"weapon_shot_fnx_02");
161 static const int GUN_PARTICLE_TEST = RegisterParticle(
"weapon_shot_fnx_01");
162 static const int GUN_PARTICLE_CASING = RegisterParticle(
"weapon_shot_chamber_smoke");
163 static const int GUN_PARTICLE_CASING_RAISE = RegisterParticle(
"weapon_shot_chamber_smoke_raise");
164 static const int GUN_CZ75 = RegisterParticle(
"weapon_shot_cz75_01");
165 static const int GUN_AKM = RegisterParticle(
"weapon_shot_akm_01");
166 static const int GUN_AKM_SUPPRESSED = RegisterParticle(
"weapon_shot_akm_02");
167 static const int GUN_IZH18 = RegisterParticle(
"weapon_shot_izh18_01");
168 static const int GUN_IZH18_SUPPRESSED = RegisterParticle(
"weapon_shot_izh18_02");
169 static const int GUN_MP5K = RegisterParticle(
"weapon_shot_mp5k_01");
170 static const int GUN_MP5K_2 = RegisterParticle(
"weapon_shot_mp5k_02_boris");
171 static const int GUN_MP5K_SUPPRESSED = RegisterParticle(
"weapon_shot_mp5k_02");
172 static const int GUN_MP5K_COMPENSATOR = RegisterParticle(
"weapon_shot_mp5k_02");
173 static const int GUN_UMP45 = RegisterParticle(
"weapon_shot_ump45_01");
174 static const int GUN_M4A1 = RegisterParticle(
"weapon_shot_m4a1_01");
175 static const int GUN_MP133 = RegisterParticle(
"weapon_shot_mp133_01");
176 static const int GUN_PELLETS = RegisterParticle(
"weapon_shot_pellets");
177 static const int GUN_MOSIN9130 = RegisterParticle(
"weapon_shot_mosin9130_01");
178 static const int GUN_MOSIN_COMPENSATOR = RegisterParticle(
"weapon_shot_mosin_compensator_01");
179 static const int GUN_CZ527 = RegisterParticle(
"weapon_shot_cz527_01");
180 static const int GUN_SKS = RegisterParticle(
"weapon_shot_sks_01");
181 static const int GUN_WINCHESTER70 = RegisterParticle(
"weapon_shot_winch70_01");
182 static const int GUN_VSS = RegisterParticle(
"weapon_shot_vss_01");
183 static const int GUN_AK74 = RegisterParticle(
"weapon_shot_ak74_01");
184 static const int GUN_AK101 = RegisterParticle(
"weapon_shot_ak101_01");
186 static const int GUN_MAGNUM = RegisterParticle(
"weapon_shot_magnum_01");
188 static const int GUN_CZ61 = RegisterParticle(
"weapon_shot_cz61_01");
189 static const int GUN_LONG_WINDED_SMOKE = RegisterParticle(
"weapon_shot_winded_smoke");
190 static const int GUN_LONG_WINDED_SMOKE_SMALL = RegisterParticle(
"weapon_shot_winded_smoke_small");
191 static const int SMOKING_BARREL = RegisterParticle(
"smoking_barrel");
192 static const int SMOKING_BARREL_SMALL = RegisterParticle(
"smoking_barrel_small");
193 static const int SMOKING_BARREL_HEAVY = RegisterParticle(
"smoking_barrel_heavy");
194 static const int SMOKING_BARREL_STEAM = RegisterParticle(
"smoking_barrel_steam");
195 static const int SMOKING_BARREL_STEAM_SMALL = RegisterParticle(
"smoking_barrel_steam_small");
196 static const int SMARKS_CHAMBER = RegisterParticle(
"weapon_shot_chamber_spark");
199 static const int IMPACT_TEST = RegisterParticle(
"impacts/bullet_impact_placeholder");
200 static const int IMPACT_DISTANT_DUST = RegisterParticle(
"impacts/distant_dust");
201 static const int IMPACT_TEST_RICOCHET = RegisterParticle(
"impacts/bullet_riochet_placeholder");
202 static const int IMPACT_TEST2 = RegisterParticle(
"_test_orientation_02");
203 static const int IMPACT_TEST_ENTER_DEBUG = RegisterParticle(
"impacts/_test_impact_enter_debug");
204 static const int IMPACT_TEST_RICOCHET_DEBUG = RegisterParticle(
"impacts/_test_impact_ricochet_debug");
205 static const int IMPACT_TEST_EXIT_DEBUG = RegisterParticle(
"impacts/_test_impact_exit_debug");
206 static const int IMPACT_TEST_NO_MATERIAL_ERROR = RegisterParticle(
"_test_no_material");
207 static const int IMPACT_WOOD_ENTER = RegisterParticle(
"impacts/hit_wood_ent_01");
208 static const int IMPACT_WOOD_RICOCHET = RegisterParticle(
"impacts/hit_wood_ric_01");
209 static const int IMPACT_WOOD_EXIT = RegisterParticle(
"impacts/hit_wood_ext_01");
210 static const int IMPACT_CONCRETE_ENTER = RegisterParticle(
"impacts/hit_concrete_ent_01");
211 static const int IMPACT_CONCRETE_RICOCHET = RegisterParticle(
"impacts/hit_concrete_ric_01");
212 static const int IMPACT_CONCRETE_EXIT = RegisterParticle(
"impacts/hit_concrete_ext_01");
213 static const int IMPACT_FOLIAGE_ENTER = RegisterParticle(
"impacts/hit_foliage_ent_01");
214 static const int IMPACT_FOLIAGE_RICOCHET = RegisterParticle(
"impacts/hit_foliage_ric_01");
215 static const int IMPACT_FOLIAGE_EXIT = RegisterParticle(
"impacts/hit_foliage_ext_01");
216 static const int IMPACT_FOLIAGE_GREEN_ENTER = RegisterParticle(
"impacts/hit_foliage_green_ent_01");
217 static const int IMPACT_FOLIAGE_GREEN_RICOCHET = RegisterParticle(
"impacts/hit_foliage_green_ric_01");
218 static const int IMPACT_FOLIAGE_GREEN_EXIT = RegisterParticle(
"impacts/hit_foliage_green_ext_01");
219 static const int IMPACT_FOLIAGE_CONIFER_ENTER = RegisterParticle(
"impacts/hit_foliage_conifer_ent_01");
220 static const int IMPACT_FOLIAGE_CONIFER_RICOCHET= RegisterParticle(
"impacts/hit_foliage_conifer_ric_01");
221 static const int IMPACT_FOLIAGE_CONIFER_EXIT = RegisterParticle(
"impacts/hit_foliage_conifer_ext_01");
222 static const int IMPACT_GRASS_ENTER = RegisterParticle(
"impacts/hit_grass_ent_01");
223 static const int IMPACT_GRASS_RICOCHET = RegisterParticle(
"impacts/hit_grass_ric_01");
224 static const int IMPACT_DIRT_ENTER = RegisterParticle(
"impacts/hit_dirt_ent_01");
225 static const int IMPACT_DIRT_RICOCHET = RegisterParticle(
"impacts/hit_dirt_ric_01");
226 static const int IMPACT_DIRT_EXIT = RegisterParticle(
"impacts/hit_dirt_ext_01");
227 static const int IMPACT_RUBBER_ENTER = RegisterParticle(
"impacts/hit_rubber_ent_01");
228 static const int IMPACT_RUBBER_RICOCHET = RegisterParticle(
"impacts/hit_rubber_ric_01");
229 static const int IMPACT_RUBBER_EXIT = RegisterParticle(
"impacts/hit_rubber_ext_01");
230 static const int IMPACT_GRAVEL_ENTER = RegisterParticle(
"impacts/hit_gravel_ent_01");
231 static const int IMPACT_GRAVEL_RICOCHET = RegisterParticle(
"impacts/hit_gravel_ric_01");
232 static const int IMPACT_GRAVEL_EXIT = RegisterParticle(
"impacts/hit_gravel_ext_01");
233 static const int IMPACT_PLASTER_ENTER = RegisterParticle(
"impacts/hit_plaster_ent_01");
234 static const int IMPACT_PLASTER_RICOCHET = RegisterParticle(
"impacts/hit_plaster_ric_01");
235 static const int IMPACT_PLASTER_EXIT = RegisterParticle(
"impacts/hit_plaster_ext_01");
236 static const int IMPACT_METAL_ENTER = RegisterParticle(
"impacts/hit_metal_ent_01");
237 static const int IMPACT_METAL_RICOCHET = RegisterParticle(
"impacts/hit_metal_ric_01");
238 static const int IMPACT_METAL_EXIT = RegisterParticle(
"impacts/hit_metal_ext_01");
239 static const int IMPACT_MEAT_ENTER = RegisterParticle(
"impacts/hit_meat_ent_01");
240 static const int IMPACT_MEAT_RICOCHET = RegisterParticle(
"impacts/hit_meat_ric_01");
241 static const int IMPACT_MEAT_EXIT = RegisterParticle(
"impacts/hit_meat_ext_01");
242 static const int IMPACT_MEATBONES_ENTER = RegisterParticle(
"impacts/hit_meatbones_ent_01");
243 static const int IMPACT_MEATBONES_RICOCHET = RegisterParticle(
"impacts/hit_meatbones_ent_01");
244 static const int IMPACT_MEATBONES_EXIT = RegisterParticle(
"impacts/hit_meatbones_ext_01");
245 static const int IMPACT_GLASS_ENTER = RegisterParticle(
"impacts/hit_glass_ent_01");
246 static const int IMPACT_GLASS_RICOCHET = RegisterParticle(
"impacts/hit_glass_ric_01");
247 static const int IMPACT_GLASS_EXIT = RegisterParticle(
"impacts/hit_glass_ext_01");
248 static const int IMPACT_WATER_SMALL_ENTER = RegisterParticle(
"impacts/hit_water_ent_01");
249 static const int IMPACT_WATER_MEDIUM_ENTER = RegisterParticle(
"impacts/hit_water_ent_02");
250 static const int IMPACT_WATER_LARGE_ENTER = RegisterParticle(
"impacts/hit_water_ent_03");
251 static const int IMPACT_TEXTILE_ENTER = RegisterParticle(
"impacts/hit_textile_ent_01");
252 static const int IMPACT_TEXTILE_RICOCHET = RegisterParticle(
"impacts/hit_textile_ric_01");
253 static const int IMPACT_TEXTILE_EXIT = RegisterParticle(
"impacts/hit_textile_ext_01");
254 static const int IMPACT_SAND_ENTER = RegisterParticle(
"impacts/hit_sand_ent_01");
255 static const int IMPACT_SAND_RICOCHET = RegisterParticle(
"impacts/hit_sand_ric_01");
256 static const int IMPACT_SAND_EXIT = RegisterParticle(
"impacts/hit_sand_ext_01");
257 static const int IMPACT_PLASTIC_ENTER = RegisterParticle(
"impacts/hit_plastic_ent_01");
258 static const int IMPACT_PLASTIC_RICOCHET = RegisterParticle(
"impacts/hit_plastic_ric_01");
259 static const int IMPACT_PLASTIC_EXIT = RegisterParticle(
"impacts/hit_plastic_ext_01");
260 static const int IMPACT_SNOW_ENTER = RegisterParticle(
"impacts/hit_snow_ent_01");
261 static const int IMPACT_SNOW_RICOCHET = RegisterParticle(
"impacts/hit_snow_ric_01");
262 static const int IMPACT_SNOW_EXIT = RegisterParticle(
"impacts/hit_snow_ext_01");
263 static const int IMPACT_ICE_ENTER = RegisterParticle(
"impacts/hit_ice_ent_01");
264 static const int IMPACT_ICE_RICOCHET = RegisterParticle(
"impacts/hit_ice_ric_01");
265 static const int IMPACT_ICE_EXIT = RegisterParticle(
"impacts/hit_ice_ext_01");
268 static const int EXPLOSION_LANDMINE = RegisterParticle(
"explosion_landmine_01");
269 static const int EXPLOSION_TEST = RegisterParticle(
"explosion_placeholder");
270 static const int EXPLOSION_GOAT = RegisterParticle(
"explosion_goat");
273 static const int SMOKING_HELI_WRECK = RegisterParticle(
"smoke_heli_wreck_01");
274 static const int AURORA_SANTA_WRECK = RegisterParticle(
"smoke_santa_wreck");
275 static const int SMOKE_GENERIC_WRECK = RegisterParticle(
"smoke_generic_wreck");
276 static const int SMOKING_CAR_ENGINE = RegisterParticle(
"menu_engine_fire");
277 static const int EVAPORATION = RegisterParticle(
"menu_evaporation");
280 static const int HATCHBACK_COOLANT_OVERHEATING = RegisterParticle(
"Hatchback_coolant_overheating");
281 static const int HATCHBACK_COOLANT_OVERHEATED = RegisterParticle(
"Hatchback_coolant_overheated");
282 static const int HATCHBACK_ENGINE_OVERHEATING = RegisterParticle(
"Hatchback_engine_failing");
283 static const int HATCHBACK_ENGINE_OVERHEATED = RegisterParticle(
"Hatchback_engine_failure");
284 static const int HATCHBACK_EXHAUST_SMOKE = RegisterParticle(
"Hatchback_exhaust");
285 static const int BOAT_WATER_FRONT = RegisterParticle(
"vehicles/boat/boat_water_front");
286 static const int BOAT_WATER_BACK = RegisterParticle(
"vehicles/boat/boat_water_back");
287 static const int BOAT_WATER_SIDE = RegisterParticle(
"vehicles/boat/boat_water_side");
290 static const int ENV_SWARMING_FLIES = RegisterParticle(
"env_fly_swarm_01");
293 static const int BONFIRE_FIRE = RegisterParticle(
"fire_bonfire");
294 static const int BONFIRE_SMOKE = RegisterParticle(
"smoke_bonfire");
295 static const int TIREPILE_FIRE = RegisterParticle(
"fire_tirepile");
296 static const int SPOOKY_MIST = RegisterParticle(
"spooky_mist");
298 static const int VOMIT_BLOOD = RegisterParticle(
"character_vomitBlood_01");
301 static const int CONTAMINATED_AREA_GAS_TINY = RegisterParticle(
"contaminated_area_gas_around_tiny");
302 static const int CONTAMINATED_AREA_GAS_AROUND = RegisterParticle(
"contaminated_area_gas_around");
303 static const int CONTAMINATED_AREA_GAS_BIGASS = RegisterParticle(
"contaminated_area_gas_bigass");
304 static const int CONTAMINATED_AREA_GAS_GROUND = RegisterParticle(
"contaminated_area_gas_ground");
305 static const int CONTAMINATED_AREA_GAS_SHELL = RegisterParticle(
"contaminated_area_gas_shell");
306 static const int CONTAMINATED_AREA_GAS_DEBUG = RegisterParticle(
"contaminated_area_gas_bigass_debug");
309 static const int FIREWORKS_SHOT = RegisterParticle(
"fireworks_small_01");
310 static const int FIREWORKS_EXPLOSION_RED = RegisterParticle(
"fireworks_large_01_Red");
311 static const int FIREWORKS_EXPLOSION_GREEN = RegisterParticle(
"fireworks_large_01_Green");
312 static const int FIREWORKS_EXPLOSION_BLUE = RegisterParticle(
"fireworks_large_01_Blue");
313 static const int FIREWORKS_EXPLOSION_YELLOW = RegisterParticle(
"fireworks_large_01_Yellow");
314 static const int FIREWORKS_EXPLOSION_PINK = RegisterParticle(
"fireworks_large_01_Pink");
316 static const int FIREWORKS_FUSE = RegisterParticle(
"fireworks_small_04");
317 static const int FIREWORKS_AFTERBURN_START = RegisterParticle(
"fireworks_small_02");
318 static const int FIREWORKS_AFTERBURN_END = RegisterParticle(
"fireworks_small_03");
321 static const int FIREWORKS_EXPLOSION_THANKS1 = RegisterParticle(
"fireworks_ThankYou_anim");
322 static const int FIREWORKS_EXPLOSION_THANKS2 = RegisterParticle(
"fireworks_For10_anim");
323 static const int FIREWORKS_EXPLOSION_THANKS3 = RegisterParticle(
"fireworks_Amazing_anim");
324 static const int FIREWORKS_EXPLOSION_THANKS4 = RegisterParticle(
"fireworks_Years_anim");
325 static const int FIREWORKS_EXPLOSION_THANKS5 = RegisterParticle(
"fireworks_Dayz_anim");
329 static const int GRENADE_CHEM_BREAK = RegisterParticle(
"contaminated_area_gas_grenade");
331 static const int CLAYMORE_EXPLOSION = RegisterParticle(
"explosion_claymore_01");
332 static const int PLASTIC_EXPLOSION = RegisterParticle(
"explosion_plastic_01");
335 static const int WATER_JET = RegisterParticle(
"water_jet");
336 static const int WATER_JET_WEAK = RegisterParticle(
"water_jet_weak");
337 static const int WATER_SPILLING = RegisterParticle(
"water_spilling");
340 static const int DROWNING_BUBBLES = RegisterParticle(
"breath_bubbles");
343 static const int BOLT_CUPID_TAIL = RegisterParticle(
"cupid_bolt");
344 static const int BOLT_CUPID_HIT = RegisterParticle(
"cupid_hit");
347 static const int HOTPSRING_WATERVAPOR = RegisterParticle(
"hotspring_watervapor");
348 static const int GEYSER_NORMAL = RegisterParticle(
"geyser_normal");
349 static const int GEYSER_STRONG = RegisterParticle(
"geyser_strong");
350 static const int GEYSER_SPLASH = RegisterParticle(
"geyser_strong_splash");
351 static const int GEYSER_BUBBLES = RegisterParticle(
"geyser_bubbles");
352 static const int VOLCANO = RegisterParticle(
"volcano_smoke");
355 static const int FISHING_SIGNAL_SPLASH = RegisterParticle(
"fishing_signal_splash");
358 static const int STEP_SNOW = RegisterParticle(
"step_snow");
361 static const int VEHICLE_WHEEL_SNOW = RegisterParticle(
"vehicle_wheel_snow");
362 static const int VEHICLE_WHEEL_GRAVEL = RegisterParticle(
"vehicle_wheel_gravel");
363 static const int VEHICLE_WHEEL_ASPHALT = RegisterParticle(
"vehicle_wheel_asphalt");
366 static const int TREE_FALLING_SNOW = RegisterParticle(
"tree_falling_snow");
367 static const int TREE_SOFT_FALLING_SNOW = RegisterParticle(
"tree_soft_falling_snow");
368 static const int TREE_SOFT_LARGE_FALLING_SNOW = RegisterParticle(
"tree_soft_large_falling_snow");
369 static const int TREE_SMALL_FALLING_SNOW = RegisterParticle(
"tree_small_falling_snow");
370 static const int TREE_FALLING_NEEDLE = RegisterParticle(
"tree_falling_needle");
371 static const int TREE_FALLING_LEAF = RegisterParticle(
"tree_falling_leaf");
372 static const int BUSH_FALLING_SNOW = RegisterParticle(
"bush_falling_snow");
374 static const int TREE_PASSING_SNOW = RegisterParticle(
"tree_passing_snow");
375 static const int BUSH_PASSING_SNOW = RegisterParticle(
"bush_passing_snow");
378 static int RegisterParticle(
string file_name)
380 return RegisterParticle(GetPathToParticles(), file_name);
385 static int RegisterParticleByFullPath(
string fullPath)
389 if (fullPath.Replace(
"\\",
"/") > 0)
391 ErrorEx(
string.Format(
"Using wrong path delimiter for particle registering! Use '/' instead of '\\'. fullPath=%1", fullPath),
ErrorExSeverity.WARNING);
395 int lastIndex = fullPath.LastIndexOf(
"/");
399#ifdef WAITING_FOR_PBOS_TO_BE_UPDATED
403 return RegisterParticleByFullPath(GetPathToParticles() + fullPath);
409 string rootPath = fullPath.Substring(0, lastIndex + 1);
410 string fileName = fullPath.Substring(lastIndex + 1, fullPath.Length() - (lastIndex + 1));
412 return RegisterParticle(rootPath, fileName);
416 static int RegisterParticle(
string root_path,
string file_name)
418 if (!m_ParticlePaths)
421 if (!m_ParticleNames)
424 string path =
string.Format(
"%1%2", root_path, file_name);
425 string fullPath =
string.Format(
"%1.ptc",
path);
431 devMsgSuffix =
" Then rebuild 'scripts' and 'graphics' PBOs.";
433 ErrorEx(
string.Format(
"Particle file not found! <%1> Correct path to this particle in script file ParticleList.c!%2",
439 if (m_ParticleNames.Find(file_name, existingNameId))
442 if (m_ParticlePaths.GetKeyByValueChecked(
path, existingPathId))
444 if (existingNameId == existingPathId)
446 return existingNameId;
450 ErrorEx(
string.Format(
"ParticleNames and ParticlePaths array are containing conflicting data. ID %1 vs ID %2", existingNameId, existingPathId));
455 ErrorEx(
string.Format(
"Duplicate particle filename: %1; GetParticleIDByName will only work with the first path if there are two different paths.", file_name),
ErrorExSeverity.WARNING);
460 m_ParticleNames.Insert(file_name, m_lastID + 1);
464 m_ParticlePaths.Insert(m_lastID,
path);
468 static int GetRegisteredParticlesCount()
474 static bool IsValidId(
int id)
491 return string.Format(
"%1.ptc", GetParticlePath(
particle_id));
495 static int GetParticleID(
string particle_file)
497 int id = m_ParticlePaths.GetKeyByValue(particle_file);
504 static int GetParticleIDByName(
string name)
507 if (!m_ParticleNames.Find(
name,
id))
513 static string GetPathToParticles()
515 return "graphics/particles/";
519 static void PreloadParticles()
523 int count = m_ParticlePaths.Count();
525 for (
int i = 0; i < count; ++i)
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
proto native CGame GetGame()
proto bool FileExist(string name)
Check existence of file.
proto native vobject GetObject(string name)
Loads object from data, or gets it from cache. Object must be released when not used.
proto native void ReleaseObject(vobject object, int flag=0)