diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-17 18:37:44 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2023-09-20 11:10:20 +0300 |
| commit | f44d9e89fe2ade9e81f22d09c10c3a43dd345d35 (patch) | |
| tree | e3a73f7d4f987e1dae6a225a5811124de6253cee | |
| parent | decide what message types are left (diff) | |
| download | sdp.go-f44d9e89fe2ade9e81f22d09c10c3a43dd345d35.tar.gz sdp.go-f44d9e89fe2ade9e81f22d09c10c3a43dd345d35.tar.bz2 sdp.go-f44d9e89fe2ade9e81f22d09c10c3a43dd345d35.zip | |
touchup and fix bug
Diffstat (limited to '')
| -rw-r--r-- | pkg/classes/cmdInfo.go | 30 | ||||
| -rw-r--r-- | pkg/classes/serverClassInfo.go | 4 | ||||
| -rw-r--r-- | pkg/messages/types/svcUpdateStringTable.go | 2 |
3 files changed, 31 insertions, 5 deletions
diff --git a/pkg/classes/cmdInfo.go b/pkg/classes/cmdInfo.go index b56afed..545d14b 100644 --- a/pkg/classes/cmdInfo.go +++ b/pkg/classes/cmdInfo.go | |||
| @@ -1,11 +1,13 @@ | |||
| 1 | package classes | 1 | package classes |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "fmt" | ||
| 5 | |||
| 4 | "github.com/pektezol/bitreader" | 6 | "github.com/pektezol/bitreader" |
| 5 | ) | 7 | ) |
| 6 | 8 | ||
| 7 | type CmdInfo struct { | 9 | type CmdInfo struct { |
| 8 | Flags int32 | 10 | Flags string |
| 9 | ViewOrigin []float32 | 11 | ViewOrigin []float32 |
| 10 | ViewAngles []float32 | 12 | ViewAngles []float32 |
| 11 | LocalViewAngles []float32 | 13 | LocalViewAngles []float32 |
| @@ -14,9 +16,33 @@ type CmdInfo struct { | |||
| 14 | LocalViewAngles2 []float32 | 16 | LocalViewAngles2 []float32 |
| 15 | } | 17 | } |
| 16 | 18 | ||
| 19 | type CmdInfoFlags int | ||
| 20 | |||
| 21 | const ( | ||
| 22 | ECmdInfoFlagsNone = 0 | ||
| 23 | ECmdInfoFlagsUseOrigin2 = 1 | ||
| 24 | ECmdInfoFlagsUserAngles2 = 1 << 1 | ||
| 25 | ECmdInfoFlagsNoInterp = 1 << 2 | ||
| 26 | ) | ||
| 27 | |||
| 28 | func (cmdInfoFlags CmdInfoFlags) String() string { | ||
| 29 | switch cmdInfoFlags { | ||
| 30 | case ECmdInfoFlagsNone: | ||
| 31 | return "None" | ||
| 32 | case ECmdInfoFlagsUseOrigin2: | ||
| 33 | return "UseOrigin2" | ||
| 34 | case ECmdInfoFlagsUserAngles2: | ||
| 35 | return "UserAngles2" | ||
| 36 | case ECmdInfoFlagsNoInterp: | ||
| 37 | return "NoInterp" | ||
| 38 | default: | ||
| 39 | return fmt.Sprintf("%d", int(cmdInfoFlags)) | ||
| 40 | } | ||
| 41 | } | ||
| 42 | |||
| 17 | func ParseCmdInfo(reader *bitreader.Reader) CmdInfo { | 43 | func ParseCmdInfo(reader *bitreader.Reader) CmdInfo { |
| 18 | return CmdInfo{ | 44 | return CmdInfo{ |
| 19 | Flags: int32(reader.TryReadBits(32)), | 45 | Flags: CmdInfoFlags(reader.TryReadUInt32()).String(), |
| 20 | ViewOrigin: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, | 46 | ViewOrigin: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, |
| 21 | ViewAngles: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, | 47 | ViewAngles: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, |
| 22 | LocalViewAngles: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, | 48 | LocalViewAngles: []float32{reader.TryReadFloat32(), reader.TryReadFloat32(), reader.TryReadFloat32()}, |
diff --git a/pkg/classes/serverClassInfo.go b/pkg/classes/serverClassInfo.go index fbccffb..36bd8b8 100644 --- a/pkg/classes/serverClassInfo.go +++ b/pkg/classes/serverClassInfo.go | |||
| @@ -5,14 +5,14 @@ import ( | |||
| 5 | ) | 5 | ) |
| 6 | 6 | ||
| 7 | type ServerClassInfo struct { | 7 | type ServerClassInfo struct { |
| 8 | ClassId int16 | 8 | ClassId uint16 |
| 9 | ClassName string | 9 | ClassName string |
| 10 | DataTableName string | 10 | DataTableName string |
| 11 | } | 11 | } |
| 12 | 12 | ||
| 13 | func ParseServerClassInfo(reader *bitreader.Reader, count int, numOfClasses int) ServerClassInfo { | 13 | func ParseServerClassInfo(reader *bitreader.Reader, count int, numOfClasses int) ServerClassInfo { |
| 14 | return ServerClassInfo{ | 14 | return ServerClassInfo{ |
| 15 | ClassId: int16(reader.TryReadBits(16)), | 15 | ClassId: reader.TryReadUInt16(), |
| 16 | ClassName: reader.TryReadString(), | 16 | ClassName: reader.TryReadString(), |
| 17 | DataTableName: reader.TryReadString(), | 17 | DataTableName: reader.TryReadString(), |
| 18 | } | 18 | } |
diff --git a/pkg/messages/types/svcUpdateStringTable.go b/pkg/messages/types/svcUpdateStringTable.go index 9a3cbe0..0ff076c 100644 --- a/pkg/messages/types/svcUpdateStringTable.go +++ b/pkg/messages/types/svcUpdateStringTable.go | |||
| @@ -11,7 +11,7 @@ type SvcUpdateStringTable struct { | |||
| 11 | 11 | ||
| 12 | func ParseSvcUpdateStringTable(reader *bitreader.Reader) SvcUpdateStringTable { | 12 | func ParseSvcUpdateStringTable(reader *bitreader.Reader) SvcUpdateStringTable { |
| 13 | svcUpdateStringTable := SvcUpdateStringTable{ | 13 | svcUpdateStringTable := SvcUpdateStringTable{ |
| 14 | TableId: reader.TryReadUInt8(), | 14 | TableId: uint8(reader.TryReadBits(5)), |
| 15 | } | 15 | } |
| 16 | if reader.TryReadBool() { | 16 | if reader.TryReadBool() { |
| 17 | svcUpdateStringTable.NumChangedEntries = reader.TryReadUInt16() | 17 | svcUpdateStringTable.NumChangedEntries = reader.TryReadUInt16() |