DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
AmmoTypes.c
См. документацию.
2{
5
6 void ExplosiveEffectData(int particleID, string soundSetName = "")
7 {
8 m_ParticleID = particleID;
9 m_SoundSetName = soundSetName;
10 }
11}
12
13class AmmoTypesAPI
14{
16
17 private void AmmoTypesAPI() {}
18 private void ~AmmoTypesAPI() {}
19
21 static proto bool Exists(string ammoType);
23 static proto bool GetAmmoType(string magazineType, out string ammoType);
24
26 static bool MagazineTypeToAmmoType(string magazineType, out string ammoType)
27 {
28 if ( !AmmoTypesAPI.Exists(magazineType) )
29 {
30 if ( !AmmoTypesAPI.GetAmmoType(magazineType, ammoType) )
31 {
32 ErrorEx(string.Format("%1 is not a magazineType or ammoType or has no default 'ammo' set up in config.", magazineType));
33 return false;
34 }
35 return true;
36 }
37 else
38 {
39 // This is already an ammoType
40 ammoType = magazineType;
41 return true;
42 }
43 }
44
45 static void Init()
46 {
47 #ifndef NO_GUI
49 {
51
52 AddExplosionParticleEffect("Explosion_40mm_Ammo", "default", ParticleList.EXPLOSION_LANDMINE);
53 AddExplosionParticleEffect("Explosion_40mm_Ammo", "Hit_Snow", ParticleList.EXPLOSION_GRENADE_SNOW);
54 AddExplosionParticleEffect("Explosion_40mm_Ammo", "Hit_Ice", ParticleList.EXPLOSION_GRENADE_ICE);
55 AddExplosionParticleEffect("Explosion_40mm_Ammo", "Hit_Desert_Sand", ParticleList.EXPLOSION_GRENADE_DESERT_SAND);
56 AddExplosionParticleEffect("Explosion_40mm_Ammo", "Hit_Sand", ParticleList.EXPLOSION_GRENADE_SAND);
57
58 AddExplosionParticleEffect("LandMineExplosion_Ammo", "Hit_Snow", ParticleList.EXPLOSION_GRENADE_SNOW);
59 AddExplosionParticleEffect("LandMineExplosion_Ammo", "Hit_Ice", ParticleList.EXPLOSION_GRENADE_ICE);
60 AddExplosionParticleEffect("LandMineExplosion_Ammo", "Hit_Desert_Sand", ParticleList.EXPLOSION_GRENADE_DESERT_SAND);
61 AddExplosionParticleEffect("LandMineExplosion_Ammo", "Hit_Sand", ParticleList.EXPLOSION_GRENADE_SAND);
62
63
64 AddExplosionParticleEffect("RGD5Grenade_Ammo", "Hit_Snow", ParticleList.EXPLOSION_GRENADE_SNOW);
66 AddExplosionParticleEffect("RGD5Grenade_Ammo", "Hit_Desert_Sand", ParticleList.EXPLOSION_GRENADE_DESERT_SAND, "ExplosionDustEffect_SoundSet");
67 AddExplosionParticleEffect("RGD5Grenade_Ammo", "Hit_Sand", ParticleList.EXPLOSION_GRENADE_SAND, "ExplosionDustEffect_SoundSet");
68
71 AddExplosionParticleEffect("M67Grenade_Ammo", "Hit_Desert_Sand", ParticleList.EXPLOSION_GRENADE_DESERT_SAND, "ExplosionDustEffect_SoundSet");
72 AddExplosionParticleEffect("M67Grenade_Ammo", "Hit_Sand", ParticleList.EXPLOSION_GRENADE_SAND, "ExplosionDustEffect_SoundSet");
73
74 }
75 #endif
76 }
77
78 static void AddExplosionParticleEffect(string ammoName, string surfaceName, int particleID, string soundSetName = "")
79 {
80 map<string, ref ExplosiveEffectData>> surfaceNameToEffectIDMap;
81 if (!m_TypeToSurfaceParticleIDMap.Find(ammoName, surfaceNameToEffectIDMap))
82 {
83 surfaceNameToEffectIDMap = new map<string, ref ExplosiveEffectData>>;
84 m_TypeToSurfaceParticleIDMap.Insert(ammoName, surfaceNameToEffectIDMap);
85 }
86
87 surfaceNameToEffectIDMap.Insert(surfaceName, new ExplosiveEffectData(particleID, soundSetName));
88 }
89
91 {
93
94 #ifdef NO_GUI
95 return result;
96 #endif
97
98 string particleFileName;
99 int particleID = ParticleList.NONE;
100 map<string, ref ExplosiveEffectData>> surfaceNameToEffectIDMap = m_TypeToSurfaceParticleIDMap.Get(ammoName);
101
102 if (surfaceNameToEffectIDMap)
103 {
104 if (!surfaceNameToEffectIDMap.Find(surfaceName, result))
105 {
106 if(!surfaceNameToEffectIDMap.Find("default", result))
107 {
108 g_Game.ConfigGetText(string.Format("cfgAmmo %1 particle", ammoName), particleFileName);
109
110 if ( particleFileName != "" )
111 {
112 particleID = ParticleList.GetParticleIDByName(particleFileName);
113 }
114 AddExplosionParticleEffect(ammoName, "default", particleID);
115 result = surfaceNameToEffectIDMap.Get("default");
116 }
117 }
118 }
119 else
120 {
121 g_Game.ConfigGetText(string.Format("cfgAmmo %1 particle", ammoName), particleFileName);
122
123 if ( particleFileName != "" )
124 {
125 particleID = ParticleList.GetParticleIDByName(particleFileName);
126 }
127 AddExplosionParticleEffect(ammoName, "default", particleID);
128 surfaceNameToEffectIDMap = m_TypeToSurfaceParticleIDMap.Get(ammoName);
129 result = surfaceNameToEffectIDMap.Get("default");
130 }
131 return result;
132 }
133
134 static void Cleanup()
135 {
136 #ifndef NO_GUI
138 {
140 }
141 #endif
142 }
143}
void AmmoTypesAPI()
Определения AmmoTypes.c:17
void ~AmmoTypesAPI()
Определения AmmoTypes.c:18
static ExplosiveEffectData GetExplosiveEffectData(string ammoName, string surfaceName)
Определения AmmoTypes.c:90
static void Cleanup()
Определения AmmoTypes.c:134
static proto bool Exists(string ammoType)
Check if ammoType exists (registered in cfgAmmoTypes)
static bool MagazineTypeToAmmoType(string magazineType, out string ammoType)
Helper method.
Определения AmmoTypes.c:26
static void AddExplosionParticleEffect(string ammoName, string surfaceName, int particleID, string soundSetName="")
Определения AmmoTypes.c:78
class ExplosiveEffectData m_TypeToSurfaceParticleIDMap
DayZGame g_Game
Определения DayZGame.c:4074
override Widget Init()
Определения DayZGame.c:127
proto native string GetAmmoType()
string surfaceName
Определения DustKickupEffects.c:19
string ammoType
Определения DustKickupEffects.c:24
void ExplosiveEffectData(int particleID, string soundSetName="")
Определения AmmoTypes.c:6
string m_SoundSetName
Определения AmmoTypes.c:4
int m_ParticleID
Определения AmmoTypes.c:3
Определения AmmoTypes.c:2
static const int EXPLOSION_GRENADE_SAND
Определения ParticleList.c:145
static int GetParticleIDByName(string name)
Returns particle's ID based on the filename (without .ptc suffix)
Определения ParticleList.c:552
static const int EXPLOSION_GRENADE_DESERT_SAND
Определения ParticleList.c:146
static const int EXPLOSION_LANDMINE
Определения ParticleList.c:283
static const int NONE
Определения ParticleList.c:21
static const int EXPLOSION_GRENADE_ICE
Определения ParticleList.c:144
static const int EXPLOSION_GRENADE_SNOW
Определения ParticleList.c:143
Определения ParticleList.c:12
Определения Transport.c:70
enum ShapeType ErrorEx