@@ -7,22 +7,12 @@ import (
77 "github.com/golang/geo/r3"
88 "github.com/markus-wa/go-unassert"
99
10+ constants "github.com/markus-wa/demoinfocs-golang/v2/internal/constants"
1011 common "github.com/markus-wa/demoinfocs-golang/v2/pkg/demoinfocs/common"
1112 events "github.com/markus-wa/demoinfocs-golang/v2/pkg/demoinfocs/events"
1213 st "github.com/markus-wa/demoinfocs-golang/v2/pkg/demoinfocs/sendtables"
1314)
1415
15- const (
16- maxEdictBits = 11
17- entityHandleIndexMask = (1 << maxEdictBits ) - 1
18- entityHandleSerialNumberBits = 10
19- entityHandleBits = maxEdictBits + entityHandleSerialNumberBits
20- invalidEntityHandle = (1 << entityHandleBits ) - 1
21- maxEntities = 1 << maxEdictBits
22- maxPlayers = 64
23- maxWeapons = 64
24- )
25-
2616func (p * parser ) mapEquipment () {
2717 for _ , sc := range p .stParser .ServerClasses () {
2818 switch sc .Name () {
@@ -215,6 +205,7 @@ func (p *parser) getOrCreatePlayer(entityID int, rp *playerInfo) (isNew bool, pl
215205 return isNew , player
216206}
217207
208+ //nolint:funlen
218209func (p * parser ) bindNewPlayer (playerEntity st.Entity ) {
219210 entityID := playerEntity .ID ()
220211 rp := p .rawPlayers [entityID - 1 ]
@@ -289,6 +280,8 @@ func (p *parser) bindNewPlayer(playerEntity st.Entity) {
289280 }
290281}
291282
283+ const maxWeapons = 64
284+
292285func (p * parser ) bindPlayerWeapons (playerEntity st.Entity , pl * common.Player ) {
293286 // Some demos have an additional prefix for player weapons weapon
294287 var wepPrefix string
@@ -303,8 +296,8 @@ func (p *parser) bindPlayerWeapons(playerEntity st.Entity, pl *common.Player) {
303296 for i := range cache {
304297 i2 := i // Copy for passing to handler
305298 playerEntity .Property (wepPrefix + fmt .Sprintf ("%03d" , i )).OnUpdate (func (val st.PropertyValue ) {
306- entityID := val .IntVal & entityHandleIndexMask
307- if entityID != entityHandleIndexMask {
299+ entityID := val .IntVal & constants . EntityHandleIndexMask
300+ if entityID != constants . EntityHandleIndexMask {
308301 if cache [i2 ] != 0 {
309302 // Player already has a weapon in this slot.
310303 delete (pl .Inventory , cache [i2 ])
@@ -351,7 +344,7 @@ func (p *parser) bindWeapons() {
351344 case "CBaseCSGrenade" :
352345 // @micvbang TODO: handle grenades dropped by dead player.
353346 // Grenades that were dropped by a dead player (and can be picked up by other players).
354- }
347+ } //nolint:wsl
355348 }
356349 }
357350
@@ -368,7 +361,7 @@ func (p *parser) bindGrenadeProjectiles(entity st.Entity) {
368361 p .gameState .grenadeProjectiles [entityID ] = proj
369362
370363 var wep common.EquipmentType
371- entity .OnCreateFinished (func () {
364+ entity .OnCreateFinished (func () { //nolint:wsl
372365 // copy the weapon so it doesn't get overwritten by a new entity in parser.weapons
373366 wepCopy := * (getPlayerWeapon (proj .Thrower , wep ))
374367 proj .WeaponInstance = & wepCopy
0 commit comments