Skip to content

Commit 79f37b1

Browse files
committed
Moved entities from Parser to GameState
1 parent d254861 commit 79f37b1

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

entities.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,18 @@ func (p *Parser) handlePacketEntities(pe *msg.CSVCMsg_PacketEntities) {
2626

2727
if r.ReadBit() {
2828
// Leave PVS
29-
p.entities[currentEntity].Destroy()
30-
delete(p.entities, currentEntity)
29+
p.gameState.entities[currentEntity].Destroy()
30+
delete(p.gameState.entities, currentEntity)
3131

3232
// 'Force Delete' flag, not exactly sure what it's supposed to do
3333
r.ReadBit()
3434
} else {
3535
if r.ReadBit() {
3636
// Enter PVS
37-
p.entities[currentEntity] = p.stParser.ReadEnterPVS(r, currentEntity)
37+
p.gameState.entities[currentEntity] = p.stParser.ReadEnterPVS(r, currentEntity)
3838
} else {
3939
// Delta Update
40-
p.entities[currentEntity].ApplyUpdate(r)
40+
p.gameState.entities[currentEntity].ApplyUpdate(r)
4141
}
4242
}
4343
}

game_state.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package demoinfocs
22

33
import (
44
"github.com/markus-wa/demoinfocs-golang/common"
5+
st "github.com/markus-wa/demoinfocs-golang/sendtables"
56
)
67

78
// GameState contains all game-state relevant information.
@@ -11,6 +12,7 @@ type GameState struct {
1112
ctState TeamState
1213
players map[int]*common.Player
1314
grenadeProjectiles map[int]*common.GrenadeProjectile // Used to keep track of grenades that have been thrown, but have not yet detonated.
15+
entities map[int]*st.Entity // Maps entity IDs to entities
1416
}
1517

1618
type ingameTickNumber int
@@ -81,10 +83,16 @@ func (gs GameState) GrenadeProjectiles() map[int]*common.GrenadeProjectile {
8183
return gs.grenadeProjectiles
8284
}
8385

86+
// Entities returns all currently existing entities.
87+
func (gs GameState) Entities() map[int]*st.Entity {
88+
return gs.entities
89+
}
90+
8491
func newGameState() GameState {
8592
return GameState{
8693
players: make(map[int]*common.Player),
8794
grenadeProjectiles: make(map[int]*common.GrenadeProjectile),
95+
entities: make(map[int]*st.Entity),
8896
}
8997
}
9098

parser.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ type Parser struct {
5959
rawPlayers map[int]*playerInfo // Maps entity IDs to 'raw' player info
6060
entityIDToPlayers map[int]*common.Player // Temporary storage since we need to map players from entityID to userID later
6161
additionalPlayerInfo [maxPlayers]common.AdditionalPlayerInformation // Maps entity IDs to additional player info (scoreboard info)
62-
entities map[int]*st.Entity // Maps entity IDs to entities
6362
modelPreCache []string // Used to find out whether a weapon is a p250 or cz for example (same id)
6463
weapons [maxEntities]common.Equipment // Used to remember what a weapon is (p250 / cz etc.)
6564
triggers map[int]*boundingBoxInformation // Maps entity IDs to triggers (used for bombsites)
@@ -100,11 +99,6 @@ func (p *Parser) GameState() *GameState {
10099
return &p.gameState
101100
}
102101

103-
// Entities returns the available entities.
104-
func (p *Parser) Entities() map[int]*st.Entity {
105-
return p.entities
106-
}
107-
108102
// CurrentFrame return the number of the current frame, aka. 'demo-tick' (Since demos often have a different tick-rate than the game).
109103
// Starts with frame 0, should go up to DemoHeader.PlaybackFrames but might not be the case (usually it's just close to it).
110104
func (p *Parser) CurrentFrame() int {
@@ -244,7 +238,6 @@ func NewParserWithConfig(demostream io.Reader, config ParserConfig) *Parser {
244238
p.equipmentMapping = make(map[*st.ServerClass]common.EquipmentElement)
245239
p.rawPlayers = make(map[int]*playerInfo)
246240
p.entityIDToPlayers = make(map[int]*common.Player)
247-
p.entities = make(map[int]*st.Entity)
248241
p.triggers = make(map[int]*boundingBoxInformation)
249242
p.cancelChan = make(chan struct{}, 1)
250243
p.gameState = newGameState()

0 commit comments

Comments
 (0)