aboutsummaryrefslogtreecommitdiff
path: root/pkg/messages/types/netSignOnState.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-17 14:32:25 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-20 11:10:17 +0300
commitd5600b409a57cdb3d5ebed34c821093f4f965ac0 (patch)
tree9d0d95cc7650042a6eac2f7194c095feecd72781 /pkg/messages/types/netSignOnState.go
parentchange switch variable name (diff)
downloadsdp.go-d5600b409a57cdb3d5ebed34c821093f4f965ac0.tar.gz
sdp.go-d5600b409a57cdb3d5ebed34c821093f4f965ac0.tar.bz2
sdp.go-d5600b409a57cdb3d5ebed34c821093f4f965ac0.zip
parse signOnState as string
Diffstat (limited to 'pkg/messages/types/netSignOnState.go')
-rw-r--r--pkg/messages/types/netSignOnState.go46
1 files changed, 43 insertions, 3 deletions
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 @@
1package messages 1package messages
2 2
3import "github.com/pektezol/bitreader" 3import (
4 "fmt"
5
6 "github.com/pektezol/bitreader"
7)
4 8
5type NetSignOnState struct { 9type NetSignOnState struct {
6 SignOnState int8 10 SignOnState string
7 SpawnCount int32 11 SpawnCount int32
8 NumServerPlayers int32 12 NumServerPlayers int32
9 IdsLength int32 13 IdsLength int32
@@ -12,9 +16,45 @@ type NetSignOnState struct {
12 MapName string 16 MapName string
13} 17}
14 18
19type SignOnState int
20
21const (
22 None SignOnState = iota // no state yet, about to connect
23 Challenge // client challenging server, all OOB packets
24 Connected // client is connected to server, netchans ready
25 New // just got server info and string tables
26 PreSpawn // received signon buggers
27 Spawn // ready to receive entity packets
28 Full // we are fully connected, first non-delta packet received
29 ChangeLevel // server is changing level, please wait
30)
31
32func (signOnState SignOnState) String() string {
33 switch signOnState {
34 case None:
35 return "None"
36 case Challenge:
37 return "Challenge"
38 case Connected:
39 return "Connected"
40 case New:
41 return "New"
42 case PreSpawn:
43 return "PreSpawn"
44 case Spawn:
45 return "Spawn"
46 case Full:
47 return "Full"
48 case ChangeLevel:
49 return "ChangeLevel"
50 default:
51 return fmt.Sprintf("%d", int(signOnState))
52 }
53}
54
15func ParseNetSignOnState(reader *bitreader.Reader) NetSignOnState { 55func ParseNetSignOnState(reader *bitreader.Reader) NetSignOnState {
16 netSignOnState := NetSignOnState{ 56 netSignOnState := NetSignOnState{
17 SignOnState: int8(reader.TryReadBits(8)), 57 SignOnState: SignOnState(reader.TryReadBits(8)).String(),
18 SpawnCount: int32(reader.TryReadBits(32)), 58 SpawnCount: int32(reader.TryReadBits(32)),
19 NumServerPlayers: int32(reader.TryReadBits(32)), 59 NumServerPlayers: int32(reader.TryReadBits(32)),
20 IdsLength: int32(reader.TryReadBits(32)), 60 IdsLength: int32(reader.TryReadBits(32)),