Skip to content

Commit 7362da2

Browse files
committed
Simplified equippment mapping
1 parent 6d9423d commit 7362da2

File tree

2 files changed

+67
-174
lines changed

2 files changed

+67
-174
lines changed

common/common.go

Lines changed: 65 additions & 173 deletions
Original file line numberDiff line numberDiff line change
@@ -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.
1576
func 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
}

common/constants.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,14 +103,15 @@ const (
103103

104104
EqSawedOff EquipmentElement = 201
105105
EqNova EquipmentElement = 202
106+
EqMag7 EquipmentElement = 203 // You should consider using EqSwag7 instead
106107
EqSwag7 EquipmentElement = 203
107108
EqXM1014 EquipmentElement = 204
108109
EqM249 EquipmentElement = 205
109110
EqNegev EquipmentElement = 206
110111

111112
// Rifles
112113

113-
EqGallil EquipmentElement = 301
114+
EqGalil EquipmentElement = 301
114115
EqFamas EquipmentElement = 302
115116
EqAK47 EquipmentElement = 303
116117
EqM4A4 EquipmentElement = 304

0 commit comments

Comments
 (0)