improved color parsing

This commit is contained in:
2021-11-09 14:17:14 +01:00
parent 7785135d7c
commit 333d9ade4c

View File

@@ -165,6 +165,27 @@ func (p *DemoParser) getMatchPlayerBySteamID(stats []*ent.MatchPlayer, steamId u
return nil
}
func setMatchPlayerColor(matchPlayer *ent.MatchPlayer, demoPlayer *common.Player) {
matchPlayer.Crosshair = demoPlayer.CrosshairCode()
switch demoPlayer.Color() {
case common.Yellow:
matchPlayer.Color = matchplayer.ColorYellow
break
case common.Green:
matchPlayer.Color = matchplayer.ColorGreen
break
case common.Purple:
matchPlayer.Color = matchplayer.ColorPurple
break
case common.Blue:
matchPlayer.Color = matchplayer.ColorBlue
break
case common.Orange:
matchPlayer.Color = matchplayer.ColorOrange
break
}
}
func (p *DemoParser) parseWorker() {
for demo := range p.demoQueue {
if demo.MatchId == 0 {
@@ -344,6 +365,14 @@ func (p *DemoParser) parseWorker() {
}
})
// onPlayerConnected
demoParser.RegisterEventHandler(func(e events.PlayerTeamChange) {
if e.Player != nil {
tMatchPlayer := p.getMatchPlayerBySteamID(tStats, e.Player.SteamID64)
setMatchPlayerColor(tMatchPlayer, e.Player)
}
})
// onMatchStart
demoParser.RegisterEventHandler(func(e events.MatchStart) {
gs := demoParser.GameState()
@@ -352,26 +381,7 @@ func (p *DemoParser) parseWorker() {
if demoPlayer != nil && demoPlayer.SteamID64 != 0 {
tMatchPlayer := p.getMatchPlayerBySteamID(tStats, demoPlayer.SteamID64)
tMatchPlayer.Crosshair = demoPlayer.CrosshairCode()
switch demoPlayer.Color() {
case common.Yellow:
tMatchPlayer.Color = matchplayer.ColorYellow
break
case common.Green:
tMatchPlayer.Color = matchplayer.ColorGreen
break
case common.Purple:
tMatchPlayer.Color = matchplayer.ColorPurple
break
case common.Blue:
tMatchPlayer.Color = matchplayer.ColorBlue
break
case common.Orange:
tMatchPlayer.Color = matchplayer.ColorOrange
break
default:
tMatchPlayer.Color = matchplayer.ColorGrey
}
setMatchPlayerColor(tMatchPlayer, demoPlayer)
}
}
})