From e1fc8a94f5cf27a3bc68ca321141d049db12bc24 Mon Sep 17 00:00:00 2001 From: ChillerDragon Date: Sat, 22 Jun 2024 13:07:47 +0800 Subject: [PATCH] Add snap empty msg --- messages7/snap_empty.go | 52 +++++++++++++++++++++++++++++++++++++++++ network7/network7.go | 1 + protocol7/packet.go | 4 ++++ 3 files changed, 57 insertions(+) create mode 100644 messages7/snap_empty.go diff --git a/messages7/snap_empty.go b/messages7/snap_empty.go new file mode 100644 index 0000000..26f4bfb --- /dev/null +++ b/messages7/snap_empty.go @@ -0,0 +1,52 @@ +package messages7 + +import ( + "slices" + + "github.com/teeworlds-go/teeworlds/chunk7" + "github.com/teeworlds-go/teeworlds/network7" + "github.com/teeworlds-go/teeworlds/packer" +) + +type SnapEmpty struct { + ChunkHeader *chunk7.ChunkHeader + + GameTick int + DeltaTick int +} + +func (msg SnapEmpty) MsgId() int { + return network7.MsgSysSnapEmpty +} + +func (msg SnapEmpty) MsgType() network7.MsgType { + return network7.TypeNet +} + +func (msg SnapEmpty) System() bool { + return true +} + +func (msg SnapEmpty) Vital() bool { + return false +} + +func (msg SnapEmpty) Pack() []byte { + return slices.Concat( + packer.PackInt(msg.GameTick), + packer.PackInt(msg.DeltaTick), + ) +} + +func (msg *SnapEmpty) Unpack(u *packer.Unpacker) { + msg.GameTick = u.GetInt() + msg.DeltaTick = u.GetInt() +} + +func (msg *SnapEmpty) Header() *chunk7.ChunkHeader { + return msg.ChunkHeader +} + +func (msg *SnapEmpty) SetHeader(header *chunk7.ChunkHeader) { + msg.ChunkHeader = header +} diff --git a/network7/network7.go b/network7/network7.go index c106ee4..58ab8d3 100644 --- a/network7/network7.go +++ b/network7/network7.go @@ -12,6 +12,7 @@ const ( MsgSysInfo = 1 MsgSysMapChange = 2 MsgSysConReady = 5 + MsgSysSnapEmpty = 7 MsgSysSnapSingle = 8 MsgSysReady = 18 MsgSysEnterGame = 19 diff --git a/protocol7/packet.go b/protocol7/packet.go index e15b002..4a06c39 100644 --- a/protocol7/packet.go +++ b/protocol7/packet.go @@ -93,6 +93,10 @@ func (packet *Packet) unpackSystem(msgId int, chunk chunk7.Chunk, u *packer.Unpa msg := &messages7.SnapSingle{ChunkHeader: &chunk.Header} msg.Unpack(u) packet.Messages = append(packet.Messages, msg) + } else if msgId == network7.MsgSysSnapEmpty { + msg := &messages7.SnapEmpty{ChunkHeader: &chunk.Header} + msg.Unpack(u) + packet.Messages = append(packet.Messages, msg) } else { return false }