From d5600b409a57cdb3d5ebed34c821093f4f965ac0 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Sun, 17 Sep 2023 14:32:25 +0300 Subject: parse signOnState as string --- pkg/messages/types/netSignOnState.go | 46 +++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) (limited to 'pkg/messages/types/netSignOnState.go') diff --git a/pkg/messages/types/netSignOnState.go b/pkg/messages/types/netSignOnState.go index 277a6ee..55d040a 100644 --- a/pkg/messages/types/netSignOnState.go +++ b/pkg/messages/types/netSignOnState.go @@ -1,9 +1,13 @@ package messages -import "github.com/pektezol/bitreader" +import ( + "fmt" + + "github.com/pektezol/bitreader" +) type NetSignOnState struct { - SignOnState int8 + SignOnState string SpawnCount int32 NumServerPlayers int32 IdsLength int32 @@ -12,9 +16,45 @@ type NetSignOnState struct { MapName string } +type SignOnState int + +const ( + None SignOnState = iota // no state yet, about to connect + Challenge // client challenging server, all OOB packets + Connected // client is connected to server, netchans ready + New // just got server info and string tables + PreSpawn // received signon buggers + Spawn // ready to receive entity packets + Full // we are fully connected, first non-delta packet received + ChangeLevel // server is changing level, please wait +) + +func (signOnState SignOnState) String() string { + switch signOnState { + case None: + return "None" + case Challenge: + return "Challenge" + case Connected: + return "Connected" + case New: + return "New" + case PreSpawn: + return "PreSpawn" + case Spawn: + return "Spawn" + case Full: + return "Full" + case ChangeLevel: + return "ChangeLevel" + default: + return fmt.Sprintf("%d", int(signOnState)) + } +} + func ParseNetSignOnState(reader *bitreader.Reader) NetSignOnState { netSignOnState := NetSignOnState{ - SignOnState: int8(reader.TryReadBits(8)), + SignOnState: SignOnState(reader.TryReadBits(8)).String(), SpawnCount: int32(reader.TryReadBits(32)), NumServerPlayers: int32(reader.TryReadBits(32)), IdsLength: int32(reader.TryReadBits(32)), -- cgit v1.2.3