@@ -11,187 +11,79 @@ import (
1111 "strings"
1212)
1313
14+ var eqNameToWeapon map [string ]EquipmentElement
15+
16+ func init () {
17+ eqNameToWeapon = make (map [string ]EquipmentElement )
18+ eqNameToWeapon ["ak47" ] = EqAK47
19+ eqNameToWeapon ["aug" ] = EqAUG
20+ eqNameToWeapon ["awp" ] = EqAWP
21+ eqNameToWeapon ["bizon" ] = EqBizon
22+ eqNameToWeapon ["c4" ] = EqBomb
23+ eqNameToWeapon ["deagle" ] = EqDeagle
24+ eqNameToWeapon ["decoy" ] = EqDecoy
25+ eqNameToWeapon ["decoygrenade" ] = EqDecoy
26+ eqNameToWeapon ["decoy_projectile" ] = EqDecoy
27+ eqNameToWeapon ["elite" ] = EqDualBarettas
28+ eqNameToWeapon ["famas" ] = EqFamas
29+ eqNameToWeapon ["fiveseven" ] = EqFiveSeven
30+ eqNameToWeapon ["flashbang" ] = EqFlash
31+ eqNameToWeapon ["g3sg1" ] = EqG3SG1
32+ eqNameToWeapon ["galil" ] = EqGalil
33+ eqNameToWeapon ["galilar" ] = EqGalil
34+ eqNameToWeapon ["glock" ] = EqGlock
35+ eqNameToWeapon ["hegrenade" ] = EqHE
36+ eqNameToWeapon ["hkp2000" ] = EqP2000
37+ eqNameToWeapon ["incgrenade" ] = EqIncendiary
38+ eqNameToWeapon ["incendiarygrenade" ] = EqIncendiary
39+ eqNameToWeapon ["m249" ] = EqM249
40+ eqNameToWeapon ["m4a1" ] = EqM4A4
41+ eqNameToWeapon ["mac10" ] = EqMac10
42+ eqNameToWeapon ["mag7" ] = EqSwag7
43+ eqNameToWeapon ["molotov" ] = EqMolotov
44+ eqNameToWeapon ["molotovgrenade" ] = EqMolotov
45+ eqNameToWeapon ["molotov_projectile" ] = EqMolotov
46+ eqNameToWeapon ["mp7" ] = EqMP7
47+ eqNameToWeapon ["mp9" ] = EqMP9
48+ eqNameToWeapon ["negev" ] = EqNegev
49+ eqNameToWeapon ["nova" ] = EqNova
50+ eqNameToWeapon ["p250" ] = EqP250
51+ eqNameToWeapon ["p90" ] = EqP90
52+ eqNameToWeapon ["sawedoff" ] = EqSawedOff
53+ eqNameToWeapon ["scar20" ] = EqScar20
54+ eqNameToWeapon ["sg556" ] = EqSG556
55+ eqNameToWeapon ["smokegrenade" ] = EqSmoke
56+ eqNameToWeapon ["ssg08" ] = EqScout
57+ eqNameToWeapon ["taser" ] = EqZeus
58+ eqNameToWeapon ["tec9" ] = EqTec9
59+ eqNameToWeapon ["ump45" ] = EqUMP
60+ eqNameToWeapon ["xm1014" ] = EqXM1014
61+ eqNameToWeapon ["m4a1_silencer" ] = EqM4A1
62+ eqNameToWeapon ["m4a1_silencer_off" ] = EqM4A1
63+ eqNameToWeapon ["cz75a" ] = EqCZ
64+ eqNameToWeapon ["usp" ] = EqUSP
65+ eqNameToWeapon ["usp_silencer" ] = EqUSP
66+ eqNameToWeapon ["usp_silencer_off" ] = EqUSP
67+ eqNameToWeapon ["world" ] = EqWorld
68+ eqNameToWeapon ["inferno" ] = EqIncendiary
69+ eqNameToWeapon ["revolver" ] = EqRevolver
70+ eqNameToWeapon ["vest" ] = EqKevlar
71+ eqNameToWeapon ["vesthelm" ] = EqHelmet
72+ eqNameToWeapon ["defuser" ] = EqDefuseKit
73+ }
74+
1475// MapEquipment creates an EquipmentElement from the name of the weapon / equipment.
1576func MapEquipment (eqName string ) EquipmentElement {
1677 eqName = strings .TrimPrefix (eqName , weaponPrefix )
1778
1879 var wep EquipmentElement
19-
2080 if strings .Contains (eqName , "knife" ) || strings .Contains (eqName , "bayonet" ) {
2181 wep = EqKnife
2282 } else {
23- switch eqName {
24- case "ak47" :
25- wep = EqAK47
26-
27- case "aug" :
28- wep = EqAUG
29-
30- case "awp" :
31- wep = EqAWP
32-
33- case "bizon" :
34- wep = EqBizon
35-
36- case "c4" :
37- wep = EqBomb
38-
39- case "deagle" :
40- wep = EqDeagle
41-
42- case "decoy" :
43- fallthrough
44- case "decoygrenade" :
45- fallthrough
46- case "decoy_projectile" :
47- wep = EqDecoy
48-
49- case "elite" :
50- wep = EqDualBarettas
51-
52- case "famas" :
53- wep = EqFamas
54-
55- case "fiveseven" :
56- wep = EqFiveSeven
57-
58- case "flashbang" :
59- wep = EqFlash
60-
61- case "g3sg1" :
62- wep = EqG3SG1
63-
64- case "galil" :
65- fallthrough
66- case "galilar" :
67- wep = EqGallil
68-
69- case "glock" :
70- wep = EqGlock
71-
72- case "hegrenade" :
73- wep = EqHE
74-
75- case "hkp2000" :
76- wep = EqP2000
77-
78- case "incgrenade" :
79- fallthrough
80- case "incendiarygrenade" :
81- wep = EqIncendiary
82-
83- case "m249" :
84- wep = EqM249
85-
86- case "m4a1" :
87- wep = EqM4A4
88-
89- case "mac10" :
90- wep = EqMac10
91-
92- case "mag7" :
93- wep = EqSwag7
94-
95- case "molotov" :
96- fallthrough
97- case "molotovgrenade" :
98- fallthrough
99- case "molotov_projectile" :
100- wep = EqMolotov
101-
102- case "mp7" :
103- wep = EqMP7
104-
105- case "mp9" :
106- wep = EqMP9
107-
108- case "negev" :
109- wep = EqNegev
110-
111- case "nova" :
112- wep = EqNova
113-
114- case "p250" :
115- wep = EqP250
116-
117- case "p90" :
118- wep = EqP90
119-
120- case "sawedoff" :
121- wep = EqSawedOff
122-
123- case "scar20" :
124- wep = EqScar20
125-
126- case "sg556" :
127- wep = EqSG556
128-
129- case "smokegrenade" :
130- wep = EqSmoke
131-
132- case "ssg08" :
133- wep = EqScout
134-
135- case "taser" :
136- wep = EqZeus
137-
138- case "tec9" :
139- wep = EqTec9
140-
141- case "ump45" :
142- wep = EqUMP
143-
144- case "xm1014" :
145- wep = EqXM1014
146-
147- case "m4a1_silencer" :
148- fallthrough
149- case "m4a1_silencer_off" :
150- wep = EqM4A1
151-
152- case "cz75a" :
153- wep = EqCZ
154-
155- case "usp" :
156- fallthrough
157- case "usp_silencer" :
158- fallthrough
159- case "usp_silencer_off" :
160- wep = EqUSP
161-
162- case "world" :
163- wep = EqWorld
164-
165- case "inferno" :
166- wep = EqIncendiary
167-
168- case "revolver" :
169- wep = EqRevolver
170-
171- case "vest" :
172- wep = EqKevlar
173-
174- case "vesthelm" :
175- wep = EqHelmet
176-
177- case "defuser" :
178- wep = EqDefuseKit
179-
180- case "sensorgrenade" : // Only used in 'Co-op Strike' mode
181-
182- case "scar17" : //These crash the game when given via give wep_[mp5navy|...], and cannot be purchased ingame.
183- case "sg550" : //yet the server-classes are networked, so we need to resolve them.
184- case "mp5navy" :
185- case "p228" :
186- case "scout" :
187- case "sg552" :
188- case "tmp" :
189- case "worldspawn" :
190-
191- default :
192- // TODO: This is really bad imo but we can't access Parser.warn here :/
193- wep = EqUnknown
194- }
83+ // If the eqName isn't known it will be EqUnknown as that is the default value for EquipmentElement
84+ wep = eqNameToWeapon [eqName ]
85+ // TODO: Return error / warning for EqUnknown?
19586 }
87+
19688 return wep
19789}
0 commit comments