Skip to content

Commit 5880e3e

Browse files
committed
datatables: fix weapon identification for older demos
1 parent 62f0610 commit 5880e3e

File tree

2 files changed

+28
-24
lines changed

2 files changed

+28
-24
lines changed

datatables.go

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,36 +24,40 @@ const (
2424

2525
func (p *Parser) mapEquipment() {
2626
for _, sc := range p.stParser.ServerClasses() {
27+
switch sc.Name() {
28+
case "CC4":
29+
p.equipmentMapping[sc] = common.EqBomb
30+
continue
31+
32+
case "CWeaponNOVA":
33+
fallthrough
34+
case "CWeaponSawedoff":
35+
fallthrough
36+
case "CWeaponXM1014":
37+
p.equipmentMapping[sc] = common.MapEquipment(strings.ToLower(sc.Name()[7:]))
38+
continue
39+
}
40+
2741
baseClasses := sc.BaseClasses()
2842
for _, bc := range baseClasses {
2943
if bc.Name() == "CBaseGrenade" { // Grenades projectiles, i.e. thrown by player
3044
p.equipmentMapping[sc] = common.MapEquipment(strings.ToLower(sc.DataTableName()[3:]))
45+
break
3146
}
32-
}
3347

34-
if len(baseClasses) > 6 && baseClasses[6].Name() == "CWeaponCSBase" {
35-
if len(baseClasses) > 7 {
36-
switch baseClasses[7].Name() {
37-
case "CWeaponCSBaseGun":
38-
// Most guns
39-
p.equipmentMapping[sc] = common.MapEquipment(strings.ToLower(sc.DataTableName()[9:]))
40-
case "CBaseCSGrenade":
41-
// Nades
42-
p.equipmentMapping[sc] = common.MapEquipment(strings.ToLower(sc.DataTableName()[3:]))
43-
}
44-
} else if sc.Name() == "CKnife" || (len(baseClasses) > 6 && baseClasses[6].Name() == "CKnife") {
48+
if bc.Name() == "CKnife" {
4549
p.equipmentMapping[sc] = common.EqKnife
46-
} else {
47-
switch sc.Name() {
48-
case "CC4":
49-
p.equipmentMapping[sc] = common.EqBomb
50-
case "CWeaponNOVA":
51-
fallthrough
52-
case "CWeaponSawedoff":
53-
fallthrough
54-
case "CWeaponXM1014":
55-
p.equipmentMapping[sc] = common.MapEquipment(strings.ToLower(sc.Name()[7:]))
56-
}
50+
break
51+
}
52+
53+
if bc.Name() == "CWeaponCSBaseGun" { // most guns
54+
p.equipmentMapping[sc] = common.MapEquipment(strings.ToLower(sc.DataTableName()[9:]))
55+
break
56+
}
57+
58+
if bc.Name() == "CBaseCSGrenade" { // nades
59+
p.equipmentMapping[sc] = common.MapEquipment(strings.ToLower(sc.DataTableName()[3:]))
60+
break
5761
}
5862
}
5963
}

game_events.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -679,7 +679,7 @@ func getPlayerWeapon(player *common.Player, wepType common.EquipmentElement) *co
679679
if player != nil {
680680
alternateWepType := common.EquipmentAlternative(wepType)
681681
for _, wep := range player.Weapons() {
682-
if wep.Weapon == wepType || wep.Weapon == alternateWepType {
682+
if wep.Weapon == wepType || (alternateWepType != common.EqUnknown && wep.Weapon == alternateWepType) {
683683
return wep
684684
}
685685
}

0 commit comments

Comments
 (0)