Dayz Explorer  1.24.157551 (v105080)
Dayz Code Explorer by Zeroy
particlelist.c
Go to the documentation of this file.
1 // Register all particles below!
2 
3 // Example how to register particles from a mod
4 /*
5 modded class ParticleList
6 {
7  static const int MODDED_PARTICLE = RegisterParticle( "mod_folder/" , "my_modded_particle");
8 }
9 */
10 
12 {
13  ref static map<int, string> m_ParticlePaths; // Contains full paths to all particles. WARNING: Paths are without the '.ptc' suffix!
14  ref static map<string, int> m_ParticleNames; // Contains file NAME (without suffix) to id.
15 
16  static int m_lastID = 0;
17 
18  // REGISTER ALL PARTICLES BELOW:
19 
20  static const int INVALID = -1;
21  static const int NONE = 0; // 0 does not exist either, valid particle starts from 1
22  static const int PARTICLE_TEST = RegisterParticle("_test_orientation");
23  static const int DEBUG_DOT = RegisterParticle("debug_dot");
24 
25  // FIREPLACE
26  // Normal fireplace
27  static const int CAMP_FIRE_START = RegisterParticle("fire_small_camp_01_start");
28  static const int CAMP_SMALL_FIRE = RegisterParticle("fire_small_camp_01");
29  static const int CAMP_NORMAL_FIRE = RegisterParticle("fire_medium_camp_01");
30  static const int CAMP_SMALL_SMOKE = RegisterParticle("smoke_small_camp_01");
31  static const int CAMP_NORMAL_SMOKE = RegisterParticle("smoke_medium_camp_01");
32  static const int CAMP_FIRE_END = RegisterParticle("fire_small_camp_01_end");
33  static const int CAMP_STEAM_2END = RegisterParticle("steam_medium_camp_2end");
34  static const int CAMP_STEAM_EXTINGUISH_START = RegisterParticle("default_01");
35  static const int CAMP_STOVE_FIRE = RegisterParticle("fire_small_stove_01");
36  static const int CAMP_STOVE_FIRE_START = RegisterParticle("fire_small_stove_01_start");
37  static const int CAMP_STOVE_FIRE_END = RegisterParticle("fire_small_stove_01_end");
38  static const int CAMP_NO_IGNITE_WIND = RegisterParticle("fire_extinguish_wind");
39  // Fireplace indoor
40  static const int HOUSE_FIRE_START = RegisterParticle("fire_small_house_01_start");
41  static const int HOUSE_SMALL_FIRE = RegisterParticle("fire_small_house_01");
42  static const int HOUSE_SMALL_SMOKE = RegisterParticle("smoke_small_house_01");
43  static const int HOUSE_NORMAL_FIRE = RegisterParticle("fire_medium_house_01");
44  static const int HOUSE_NORMAL_SMOKE = RegisterParticle("smoke_medium_house_01");
45  static const int HOUSE_FIRE_END = RegisterParticle("fire_small_house_01_end");
46  static const int HOUSE_FIRE_STEAM_2END = RegisterParticle("steam_medium_house_2end");
47  // Fireplace in barrel with holes
48  static const int BARREL_FIRE_START = RegisterParticle("fire_small_barrel_01_start");
49  static const int BARREL_SMALL_FIRE = RegisterParticle("fire_small_barrel_01");
50  static const int BARREL_SMALL_SMOKE = RegisterParticle("smoke_small_barrel_01");
51  static const int BARREL_NORMAL_FIRE = RegisterParticle("fire_medium_barrel_01");
52  static const int BARREL_NORMAL_SMOKE = RegisterParticle("smoke_medium_barrel_01");
53  static const int BARREL_FIRE_END = RegisterParticle("fire_small_barrel_01_end");
54  static const int BARREL_FIRE_STEAM_2END = RegisterParticle("steam_medium_camp_2end");
55  // Fireplace in indoor oven
56  static const int OVEN_FIRE_START = RegisterParticle("fire_small_oven_01_start");
57  static const int OVEN_SMALL_FIRE = RegisterParticle("fire_small_oven_01");
58  static const int OVEN_NORMAL_FIRE = RegisterParticle("fire_medium_oven_01");
59  static const int OVEN_FIRE_END = RegisterParticle("fire_small_ovenl_01_end");
60 
61  // COOKING
62  static const int COOKING_BOILING_EMPTY = RegisterParticle("cooking_boiling_empty");
63  static const int COOKING_BOILING_START = RegisterParticle("cooking_boiling_start");
64  static const int COOKING_BOILING_DONE = RegisterParticle("cooking_boiling_done");
65  static const int COOKING_BAKING_START = RegisterParticle("cooking_baking_start");
66  static const int COOKING_BAKING_DONE = RegisterParticle("cooking_baking_done");
67  static const int COOKING_DRYING_START = RegisterParticle("cooking_drying_start");
68  static const int COOKING_DRYING_DONE = RegisterParticle("cooking_drying_done");
69  static const int COOKING_BURNING_DONE = RegisterParticle("cooking_burning_done");
70 
71  // TORCH
72  static const int TORCH_T3 = RegisterParticle("fire_small_torch_01");
73  static const int TORCH_T1 = RegisterParticle("fire_small_torch_02");
74  static const int TORCH_T2 = RegisterParticle("fire_small_torch_03");
75 
76  //BROOM TORCH
77  static const int BROOM_TORCH_T1 = RegisterParticle("fire_small_broom_torch_01");
78  static const int BROOM_TORCH_T2 = RegisterParticle("fire_small_broom_torch_02");
79  static const int BROOM_TORCH_T3 = RegisterParticle("fire_small_broom_torch_03");
80 
81  // ROADFLARE
82  static const int ROADFLARE_BURNING_INIT = RegisterParticle("fire_small_roadflare_red_04");
83  static const int ROADFLARE_BURNING_MAIN = RegisterParticle("fire_small_roadflare_red_01");
84  static const int ROADFLARE_BURNING_ENDING = RegisterParticle("fire_small_roadflare_red_02");
85  static const int ROADFLARE_BURNING_SMOKE = RegisterParticle("fire_small_roadflare_red_03");
86 
87  // FLARE PROJECTILE
88  static const int FLAREPROJ_FIRE = RegisterParticle("fire_small_roadflare_red_04");
89  static const int FLAREPROJ_ACTIVATE = RegisterParticle("fire_small_flare_yellow_01");
90  static const int FLAREPROJ_ACTIVATE_RED = RegisterParticle("fire_small_flare_red_01");
91  static const int FLAREPROJ_ACTIVATE_GREEN = RegisterParticle("fire_small_flare_green_01");
92  static const int FLAREPROJ_ACTIVATE_BLUE = RegisterParticle("fire_small_flare_blue_01");
93 
94  // DIGGING
95  static const int DIGGING_STASH = RegisterParticle("digging_ground");
96 
97  // SMOKE GRENADES
99  static const int GRENADE_RDG2_BLACK_START = RegisterParticle("smoke_RDG2_black_01");
100  static const int GRENADE_RDG2_BLACK_LOOP = RegisterParticle("smoke_RDG2_black_02");
101  static const int GRENADE_RDG2_BLACK_END = RegisterParticle("smoke_RDG2_black_03");
102  static const int GRENADE_RDG2_WHITE_START = RegisterParticle("smoke_RDG2_white_01");
103  static const int GRENADE_RDG2_WHITE_LOOP = RegisterParticle("smoke_RDG2_white_02");
104  static const int GRENADE_RDG2_WHITE_END = RegisterParticle("smoke_RDG2_white_03");
106  static const int GRENADE_M18_GREEN_START = RegisterParticle("smoke_M18_green_01");
107  static const int GRENADE_M18_GREEN_LOOP = RegisterParticle("smoke_M18_green_02");
108  static const int GRENADE_M18_GREEN_END = RegisterParticle("smoke_M18_green_03");
109  static const int GRENADE_M18_PURPLE_START = RegisterParticle("smoke_M18_purple_01");
110  static const int GRENADE_M18_PURPLE_LOOP = RegisterParticle("smoke_M18_purple_02");
111  static const int GRENADE_M18_PURPLE_END = RegisterParticle("smoke_M18_purple_03");
112  static const int GRENADE_M18_RED_START = RegisterParticle("smoke_M18_red_01");
113  static const int GRENADE_M18_RED_LOOP = RegisterParticle("smoke_M18_red_02");
114  static const int GRENADE_M18_RED_END = RegisterParticle("smoke_M18_red_03");
115  static const int GRENADE_M18_WHITE_START = RegisterParticle("smoke_M18_white_01");
116  static const int GRENADE_M18_WHITE_LOOP = RegisterParticle("smoke_M18_white_02");
117  static const int GRENADE_M18_WHITE_END = RegisterParticle("smoke_M18_white_03");
118  static const int GRENADE_M18_YELLOW_START = RegisterParticle("smoke_M18_yellow_01");
119  static const int GRENADE_M18_YELLOW_LOOP = RegisterParticle("smoke_M18_yellow_02");
120  static const int GRENADE_M18_YELLOW_END = RegisterParticle("smoke_M18_yellow_03");
121  static const int GRENADE_M18_BLACK_START = RegisterParticle("smoke_M18_black_01");
122  static const int GRENADE_M18_BLACK_LOOP = RegisterParticle("smoke_M18_black_02");
123  static const int GRENADE_M18_BLACK_END = RegisterParticle("smoke_M18_black_03");
124 
127  static const int GRENADE_M84 = RegisterParticle("explosion_M84_01");
128 
129  // FRAGMENTATION GRENADES
130  static const int RGD5 = RegisterParticle("explosion_RGD5_01");
131  static const int M67 = RegisterParticle("explosion_M67_01");
132 
133  // ELECTRICITY
134  static const int POWER_GENERATOR_SMOKE = RegisterParticle("smoke_small_generator_01");
135  static const int BARBED_WIRE_SPARKS = RegisterParticle("electro_shortc2");
136  static const int EASTER_EGG_ACTIVATE = RegisterParticle("easter_egg_activate");
137 
138  // PLAYER
139  static const int BLEEDING_SOURCE = RegisterParticle("blood_bleeding_01");
140  static const int BLEEDING_SOURCE_LIGHT = RegisterParticle("blood_bleeding_02");
141  static const int BLOOD_SURFACE_DROPS = RegisterParticle("blood_surface_drops");
142  static const int BLOOD_SURFACE_CHUNKS = RegisterParticle("blood_surface_chunks");
143  static const int VOMIT = RegisterParticle("character_vomit_01");
144  static const int BREATH_VAPOUR_LIGHT = RegisterParticle("breath_vapour_light");
145  static const int BREATH_VAPOUR_MEDIUM = RegisterParticle("breath_vapour_medium");
146  static const int BREATH_VAPOUR_HEAVY = RegisterParticle("breath_vapour_heavy");
147  static const int VOMIT_CHUNKS = RegisterParticle("character_vomit_puddle");
148 
149  // GUNS
150  static const int GUN_MUZZLE_FLASH_SVD_STAR = RegisterParticle("weapon_shot_Flame_3D_4star");
151  static const int GUN_SOLO_MUZZLE_FLASH = RegisterParticle("weapon_shot_Flame_3D");
152  static const int GUN_FNX = RegisterParticle("weapon_shot_fnx_01");
153  static const int GUN_FNX_SUPPRESSED = RegisterParticle("weapon_shot_fnx_02");
154  static const int GUN_PARTICLE_TEST = RegisterParticle("weapon_shot_fnx_01");
155  static const int GUN_PARTICLE_CASING = RegisterParticle("weapon_shot_chamber_smoke");
156  static const int GUN_PARTICLE_CASING_RAISE = RegisterParticle("weapon_shot_chamber_smoke_raise");
157  static const int GUN_CZ75 = RegisterParticle("weapon_shot_cz75_01");
158  static const int GUN_AKM = RegisterParticle("weapon_shot_akm_01");
159  static const int GUN_AKM_SUPPRESSED = RegisterParticle("weapon_shot_akm_02");
160  static const int GUN_IZH18 = RegisterParticle("weapon_shot_izh18_01");
161  static const int GUN_IZH18_SUPPRESSED = RegisterParticle("weapon_shot_izh18_02");
162  static const int GUN_MP5K = RegisterParticle("weapon_shot_mp5k_01");
163  static const int GUN_MP5K_2 = RegisterParticle("weapon_shot_mp5k_02_boris");
164  static const int GUN_MP5K_SUPPRESSED = RegisterParticle("weapon_shot_mp5k_02");
165  static const int GUN_MP5K_COMPENSATOR = RegisterParticle("weapon_shot_mp5k_02");
166  static const int GUN_UMP45 = RegisterParticle("weapon_shot_ump45_01");
167  static const int GUN_M4A1 = RegisterParticle("weapon_shot_m4a1_01");
168  static const int GUN_MP133 = RegisterParticle("weapon_shot_mp133_01");
169  static const int GUN_PELLETS = RegisterParticle("weapon_shot_pellets");
170  static const int GUN_MOSIN9130 = RegisterParticle("weapon_shot_mosin9130_01");
171  static const int GUN_MOSIN_COMPENSATOR = RegisterParticle("weapon_shot_mosin_compensator_01");
172  static const int GUN_CZ527 = RegisterParticle("weapon_shot_cz527_01");
173  static const int GUN_SKS = RegisterParticle("weapon_shot_sks_01");
174  static const int GUN_WINCHESTER70 = RegisterParticle("weapon_shot_winch70_01");
175  static const int GUN_VSS = RegisterParticle("weapon_shot_vss_01");
176  static const int GUN_AK74 = RegisterParticle("weapon_shot_ak74_01");
177  static const int GUN_AK101 = RegisterParticle("weapon_shot_ak101_01");
178 
179  static const int GUN_MAGNUM = RegisterParticle("weapon_shot_magnum_01");
180 
181  static const int GUN_CZ61 = RegisterParticle("weapon_shot_cz61_01");
182  static const int GUN_LONG_WINDED_SMOKE = RegisterParticle("weapon_shot_winded_smoke");
183  static const int GUN_LONG_WINDED_SMOKE_SMALL = RegisterParticle("weapon_shot_winded_smoke_small");
184  static const int SMOKING_BARREL = RegisterParticle("smoking_barrel");
185  static const int SMOKING_BARREL_SMALL = RegisterParticle("smoking_barrel_small");
186  static const int SMOKING_BARREL_HEAVY = RegisterParticle("smoking_barrel_heavy");
187  static const int SMOKING_BARREL_STEAM = RegisterParticle("smoking_barrel_steam");
188  static const int SMOKING_BARREL_STEAM_SMALL = RegisterParticle("smoking_barrel_steam_small");
189  static const int SMARKS_CHAMBER = RegisterParticle("weapon_shot_chamber_spark");
190 
191  // BULLET & MELEE IMPACTS
192  static const int IMPACT_TEST = RegisterParticle("impacts/bullet_impact_placeholder");
193  static const int IMPACT_DISTANT_DUST = RegisterParticle("impacts/distant_dust");
194  static const int IMPACT_TEST_RICOCHET = RegisterParticle("impacts/bullet_riochet_placeholder");
195  static const int IMPACT_TEST2 = RegisterParticle("_test_orientation_02");
196  static const int IMPACT_TEST_ENTER_DEBUG = RegisterParticle("impacts/_test_impact_enter_debug");
197  static const int IMPACT_TEST_RICOCHET_DEBUG = RegisterParticle("impacts/_test_impact_ricochet_debug");
198  static const int IMPACT_TEST_EXIT_DEBUG = RegisterParticle("impacts/_test_impact_exit_debug");
199  static const int IMPACT_TEST_NO_MATERIAL_ERROR = RegisterParticle("_test_no_material");
200  static const int IMPACT_WOOD_ENTER = RegisterParticle("impacts/hit_wood_ent_01");
201  static const int IMPACT_WOOD_RICOCHET = RegisterParticle("impacts/hit_wood_ric_01");
202  static const int IMPACT_WOOD_EXIT = RegisterParticle("impacts/hit_wood_ext_01");
203  static const int IMPACT_CONCRETE_ENTER = RegisterParticle("impacts/hit_concrete_ent_01");
204  static const int IMPACT_CONCRETE_RICOCHET = RegisterParticle("impacts/hit_concrete_ric_01");
205  static const int IMPACT_CONCRETE_EXIT = RegisterParticle("impacts/hit_concrete_ext_01");
206  static const int IMPACT_FOLIAGE_ENTER = RegisterParticle("impacts/hit_foliage_ent_01");
207  static const int IMPACT_FOLIAGE_RICOCHET = RegisterParticle("impacts/hit_foliage_ric_01");
208  static const int IMPACT_FOLIAGE_EXIT = RegisterParticle("impacts/hit_foliage_ext_01");
209  static const int IMPACT_GRASS_ENTER = RegisterParticle("impacts/hit_grass_ent_01");
210  static const int IMPACT_GRASS_RICOCHET = RegisterParticle("impacts/hit_grass_ric_01");
211  static const int IMPACT_DIRT_ENTER = RegisterParticle("impacts/hit_dirt_ent_01");
212  static const int IMPACT_DIRT_RICOCHET = RegisterParticle("impacts/hit_dirt_ric_01");
213  static const int IMPACT_DIRT_EXIT = RegisterParticle("impacts/hit_dirt_ext_01");
214  static const int IMPACT_RUBBER_ENTER = RegisterParticle("impacts/hit_rubber_ent_01");
215  static const int IMPACT_RUBBER_RICOCHET = RegisterParticle("impacts/hit_rubber_ric_01");
216  static const int IMPACT_RUBBER_EXIT = RegisterParticle("impacts/hit_rubber_ext_01");
217  static const int IMPACT_GRAVEL_ENTER = RegisterParticle("impacts/hit_gravel_ent_01");
218  static const int IMPACT_GRAVEL_RICOCHET = RegisterParticle("impacts/hit_gravel_ric_01");
219  static const int IMPACT_GRAVEL_EXIT = RegisterParticle("impacts/hit_gravel_ext_01");
220  static const int IMPACT_PLASTER_ENTER = RegisterParticle("impacts/hit_plaster_ent_01");
221  static const int IMPACT_PLASTER_RICOCHET = RegisterParticle("impacts/hit_plaster_ric_01");
222  static const int IMPACT_PLASTER_EXIT = RegisterParticle("impacts/hit_plaster_ext_01");
223  static const int IMPACT_METAL_ENTER = RegisterParticle("impacts/hit_metal_ent_01");
224  static const int IMPACT_METAL_RICOCHET = RegisterParticle("impacts/hit_metal_ric_01");
225  static const int IMPACT_METAL_EXIT = RegisterParticle("impacts/hit_metal_ext_01");
226  static const int IMPACT_MEAT_ENTER = RegisterParticle("impacts/hit_meat_ent_01");
227  static const int IMPACT_MEAT_RICOCHET = RegisterParticle("impacts/hit_meat_ric_01");
228  static const int IMPACT_MEAT_EXIT = RegisterParticle("impacts/hit_meat_ext_01");
229  static const int IMPACT_MEATBONES_ENTER = RegisterParticle("impacts/hit_meatbones_ent_01");
230  static const int IMPACT_MEATBONES_RICOCHET = RegisterParticle("impacts/hit_meatbones_ent_01");
231  static const int IMPACT_MEATBONES_EXIT = RegisterParticle("impacts/hit_meatbones_ext_01");
232  static const int IMPACT_GLASS_ENTER = RegisterParticle("impacts/hit_glass_ent_01");
233  static const int IMPACT_GLASS_RICOCHET = RegisterParticle("impacts/hit_glass_ric_01");
234  static const int IMPACT_GLASS_EXIT = RegisterParticle("impacts/hit_glass_ext_01");
235  static const int IMPACT_WATER_SMALL_ENTER = RegisterParticle("impacts/hit_water_ent_01");
236  static const int IMPACT_WATER_MEDIUM_ENTER = RegisterParticle("impacts/hit_water_ent_02");
237  static const int IMPACT_WATER_LARGE_ENTER = RegisterParticle("impacts/hit_water_ent_03");
238  static const int IMPACT_TEXTILE_ENTER = RegisterParticle("impacts/hit_textile_ent_01");
239  static const int IMPACT_TEXTILE_RICOCHET = RegisterParticle("impacts/hit_textile_ric_01");
240  static const int IMPACT_TEXTILE_EXIT = RegisterParticle("impacts/hit_textile_ext_01");
241  static const int IMPACT_SAND_ENTER = RegisterParticle("impacts/hit_sand_ent_01");
242  static const int IMPACT_SAND_RICOCHET = RegisterParticle("impacts/hit_sand_ric_01");
243  static const int IMPACT_SAND_EXIT = RegisterParticle("impacts/hit_sand_ext_01");
244  static const int IMPACT_PLASTIC_ENTER = RegisterParticle("impacts/hit_plastic_ent_01");
245  static const int IMPACT_PLASTIC_RICOCHET = RegisterParticle("impacts/hit_plastic_ric_01");
246  static const int IMPACT_PLASTIC_EXIT = RegisterParticle("impacts/hit_plastic_ext_01");
247 
248  // EXPLOSIONS
249  static const int EXPLOSION_LANDMINE = RegisterParticle("explosion_landmine_01");
250  static const int EXPLOSION_TEST = RegisterParticle("explosion_placeholder");
251  static const int EXPLOSION_GOAT = RegisterParticle("explosion_goat");
252 
253  // ENVIRO EFX
254  static const int SMOKING_HELI_WRECK = RegisterParticle("smoke_heli_wreck_01");
255  static const int AURORA_SANTA_WRECK = RegisterParticle("smoke_santa_wreck");
256  static const int SMOKE_GENERIC_WRECK = RegisterParticle("smoke_generic_wreck");
257  static const int SMOKING_CAR_ENGINE = RegisterParticle("menu_engine_fire");
258  static const int EVAPORATION = RegisterParticle("menu_evaporation");
259 
260  // VEHICLES
261  static const int HATCHBACK_COOLANT_OVERHEATING = RegisterParticle("Hatchback_coolant_overheating");
262  static const int HATCHBACK_COOLANT_OVERHEATED = RegisterParticle("Hatchback_coolant_overheated");
263  static const int HATCHBACK_ENGINE_OVERHEATING = RegisterParticle("Hatchback_engine_failing");
264  static const int HATCHBACK_ENGINE_OVERHEATED = RegisterParticle("Hatchback_engine_failure");
265  static const int HATCHBACK_EXHAUST_SMOKE = RegisterParticle("Hatchback_exhaust");
266 
267  // CORPSE DECAY
268  static const int ENV_SWARMING_FLIES = RegisterParticle("env_fly_swarm_01");
269 
270  // BONFIRE
271  static const int BONFIRE_FIRE = RegisterParticle("fire_bonfire");
272  static const int BONFIRE_SMOKE = RegisterParticle("smoke_bonfire");
273  static const int SPOOKY_MIST = RegisterParticle("spooky_mist");
274 
275  static const int VOMIT_BLOOD = RegisterParticle("character_vomitBlood_01");
276 
277  // CONTAMINATED AREAS
278  static const int CONTAMINATED_AREA_GAS_TINY = RegisterParticle("contaminated_area_gas_around_tiny");
279  static const int CONTAMINATED_AREA_GAS_AROUND = RegisterParticle("contaminated_area_gas_around");
280  static const int CONTAMINATED_AREA_GAS_BIGASS = RegisterParticle("contaminated_area_gas_bigass");
281  static const int CONTAMINATED_AREA_GAS_GROUND = RegisterParticle("contaminated_area_gas_ground");
282  static const int CONTAMINATED_AREA_GAS_SHELL = RegisterParticle("contaminated_area_gas_shell");
283 
284  //Fireworks
285  static const int FIREWORKS_SHOT = RegisterParticle("fireworks_small_01");
286  static const int FIREWORKS_EXPLOSION_RED = RegisterParticle("fireworks_large_01_Red");
287  static const int FIREWORKS_EXPLOSION_GREEN = RegisterParticle("fireworks_large_01_Green");
288  static const int FIREWORKS_EXPLOSION_BLUE = RegisterParticle("fireworks_large_01_Blue");
289  static const int FIREWORKS_EXPLOSION_YELLOW = RegisterParticle("fireworks_large_01_Yellow");
290  static const int FIREWORKS_EXPLOSION_PINK = RegisterParticle("fireworks_large_01_Pink");
291 
292  static const int FIREWORKS_FUSE = RegisterParticle("fireworks_small_04");
293  static const int FIREWORKS_AFTERBURN_START = RegisterParticle("fireworks_small_02");
294  static const int FIREWORKS_AFTERBURN_END = RegisterParticle("fireworks_small_03");
295 
296  //Fireworks anniversary
297  static const int FIREWORKS_EXPLOSION_THANKS1 = RegisterParticle("fireworks_ThankYou_anim");
298  static const int FIREWORKS_EXPLOSION_THANKS2 = RegisterParticle("fireworks_For10_anim");
299  static const int FIREWORKS_EXPLOSION_THANKS3 = RegisterParticle("fireworks_Amazing_anim");
300  static const int FIREWORKS_EXPLOSION_THANKS4 = RegisterParticle("fireworks_Years_anim");
301  static const int FIREWORKS_EXPLOSION_THANKS5 = RegisterParticle("fireworks_Dayz_anim");
302 
303 
304  //pox grenade
305  static const int GRENADE_CHEM_BREAK = RegisterParticle("contaminated_area_gas_grenade");
306  //Claymore
307  static const int CLAYMORE_EXPLOSION = RegisterParticle("explosion_claymore_01");
308  static const int PLASTIC_EXPLOSION = RegisterParticle("explosion_plastic_01");
309 
310  // Water jet/spilling
311  static const int WATER_JET = RegisterParticle("water_jet");
312  static const int WATER_JET_WEAK = RegisterParticle("water_jet_weak");
313  static const int WATER_SPILLING = RegisterParticle("water_spilling");
314 
315  // Drowning bubbles
316  static const int DROWNING_BUBBLES = RegisterParticle("breath_bubbles");
317 
319  static const int BOLT_CUPID_TAIL = RegisterParticle("cupid_bolt");
320  static const int BOLT_CUPID_HIT = RegisterParticle("cupid_hit");
321 
322  static int RegisterParticle(string file_name)
323  {
324  return RegisterParticle(GetPathToParticles(), file_name);
325  }
326 
328  static int RegisterParticle(string root_path, string file_name)
329  {
330  if (!m_ParticlePaths)
331  m_ParticlePaths = new map<int, string>;
332 
333  if (!m_ParticleNames)
334  m_ParticleNames = new map<string, int>;
335 
336  string path = string.Format("%1%2", root_path, file_name);
337  string fullPath = string.Format("%1.ptc", path);
338 
339  if ( !FileExist(fullPath) )
340  {
341  string devMsgSuffix;
342  #ifdef DEVELOPER
343  devMsgSuffix = " Then rebuild 'scripts' and 'graphics' PBOs.";
344  #endif
345  ErrorEx(string.Format("Particle file not found! <%1> Correct path to this particle in script file ParticleList.c!%2",
346  fullPath, devMsgSuffix), ErrorExSeverity.WARNING);
347  }
348 
349  int existingNameId;
350  if (m_ParticleNames.Find(file_name, existingNameId))
351  {
352  int existingPathId;
353  if (m_ParticlePaths.GetKeyByValueChecked(path, existingPathId))
354  {
355  if (existingNameId == existingPathId)
356  {
357  return existingNameId; // We have already registered this exact file
358  }
359  else
360  {
361  ErrorEx(string.Format("ParticleNames and ParticlePaths array are containing conflicting data. ID %1 vs ID %2", existingNameId, existingPathId));
362  }
363  }
364  else
365  {
366  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);
367  }
368  }
369  else
370  {
371  m_ParticleNames.Insert(file_name, m_lastID + 1);
372  }
373 
374  ++m_lastID;
375  m_ParticlePaths.Insert(m_lastID, path);
376  return m_lastID;
377  }
378 
379  static int GetRegisteredParticlesCount()
380  {
381  return m_lastID;
382  }
383 
385  static bool IsValidId(int id)
386  {
387  return id != NONE && id != INVALID;
388  }
389 
391  static string GetParticlePath(int particle_id)
392  {
393  string path;
394  if (!m_ParticlePaths.Find(particle_id, path))
395  ErrorEx(string.Format("No particle registered with id: %1", particle_id), ErrorExSeverity.WARNING);
396  return path;
397  }
398 
400  static string GetParticleFullPath(int particle_id)
401  {
402  return string.Format("%1.ptc", GetParticlePath(particle_id));
403  }
404 
406  static int GetParticleID(string particle_file)
407  {
408  int id = m_ParticlePaths.GetKeyByValue(particle_file);
409  if (!IsValidId(id)) // valid id starts from 1, 0 is invalid
410  ErrorEx(string.Format("No particle registered with path: %1", particle_file), ErrorExSeverity.WARNING);
411  return id;
412  }
413 
415  static int GetParticleIDByName(string name)
416  {
417  int id = 0;
418  if (!m_ParticleNames.Find(name, id))
419  ErrorEx(string.Format("No particle registered with name: %1", name), ErrorExSeverity.WARNING);
420  return id;
421  }
422 
424  static string GetPathToParticles()
425  {
426  return "graphics/particles/";
427  }
428 
430  static void PreloadParticles()
431  {
432  if ( !GetGame().IsServer() || !GetGame().IsMultiplayer() ) // client side
433  {
434  int count = m_ParticlePaths.Count();
435 
436  for (int i = 0; i < count; ++i)
437  {
438  vobject vobj = GetObject( string.Format("%1.ptc", m_ParticlePaths[i]) );
439  ReleaseObject(vobj);
440  }
441  }
442  }
443 }
GetGame
proto native CGame GetGame()
particle_id
int particle_id
Definition: smokesimulation.c:3
vobject
Definition: proto.c:48
ReleaseObject
proto native void ReleaseObject(vobject object, int flag=0)
FileExist
proto bool FileExist(string name)
Check existence of file.
ErrorEx
enum ShapeType ErrorEx
INVALID
@ INVALID
Invalid file.
Definition: ensystem.c:510
ParticleList
Definition: particlelist.c:11
map
map
Definition: controlsxboxnew.c:3
ErrorExSeverity
ErrorExSeverity
Definition: endebug.c:61
name
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
NONE
@ NONE
No flags.
Definition: enprofiler.c:11
GetObject
proto native vobject GetObject(string name)
Loads object from data, or gets it from cache. Object must be released when not used.
path
string path
Definition: optionselectormultistate.c:135