Skip to content

Commit 94d3f96

Browse files
committed
events: delay FireGrenadeStart for entity-ID to be useful
see #131
1 parent 8463de5 commit 94d3f96

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

game_events.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ func (geh gameEventHandler) dispatch(event interface{}) {
4747
geh.parser.eventDispatcher.Dispatch(event)
4848
}
4949

50+
func (geh gameEventHandler) delay(event interface{}) {
51+
geh.parser.delayedEvents = append(geh.parser.delayedEvents, event)
52+
}
53+
5054
func (geh gameEventHandler) gameState() *GameState {
5155
return geh.parser.gameState
5256
}
@@ -286,7 +290,7 @@ func (geh gameEventHandler) playerBlind(desc *msg.CSVCMsg_GameEventListDescripto
286290

287291
// Player.FlashDuration hasn't been updated yet,
288292
// so we need to wait until the end of the tick before dispatching
289-
geh.parser.delayedEvents = append(geh.parser.delayedEvents, events.PlayerFlashed{
293+
geh.delay(events.PlayerFlashed{
290294
Player: geh.playerByUserID32(data["userid"].GetValShort()),
291295
Attacker: geh.gameState().lastFlasher,
292296
})
@@ -308,7 +312,7 @@ func (geh gameEventHandler) heGrenadeDetonate(desc *msg.CSVCMsg_GameEventListDes
308312
}
309313

310314
func (geh gameEventHandler) decoyStarted(desc *msg.CSVCMsg_GameEventListDescriptorT, ge *msg.CSVCMsg_GameEvent) {
311-
geh.dispatch(events.DecoyStart{
315+
geh.delay(events.DecoyStart{
312316
GrenadeEvent: geh.nadeEvent(desc, ge, common.EqDecoy),
313317
})
314318
}
@@ -393,7 +397,7 @@ func (geh gameEventHandler) playerTeam(desc *msg.CSVCMsg_GameEventListDescriptor
393397
// Delayed for two reasons
394398
// - team IDs of other players changing teams in the same tick might not have changed yet
395399
// - player entities might not have been re-created yet after a reconnect
396-
geh.parser.delayedEvents = append(geh.parser.delayedEvents, events.PlayerTeamChange{
400+
geh.delay(events.PlayerTeamChange{
397401
Player: player,
398402
IsBot: data["isbot"].GetValBool(),
399403
Silent: data["silent"].GetValBool(),

0 commit comments

Comments
 (0)