mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-17 09:24:50 +01:00
Make changed parsers size-accurate
This commit is contained in:
@@ -5,9 +5,43 @@ import (
|
||||
"github.com/Andoryuuta/byteframe"
|
||||
)
|
||||
|
||||
// GuacotUpdateEntry represents an entry inside the MsgMhfUpdateGuacot packet.
|
||||
type GuacotUpdateEntry struct {
|
||||
Unk0 uint32
|
||||
Unk1 uint16
|
||||
Unk2 uint16
|
||||
Unk3 uint16
|
||||
Unk4 uint16
|
||||
Unk5 uint16
|
||||
Unk6 uint16
|
||||
Unk7 uint16
|
||||
Unk8 uint16
|
||||
Unk9 uint16
|
||||
Unk10 uint16
|
||||
Unk11 uint16
|
||||
Unk12 uint16
|
||||
Unk13 uint16
|
||||
Unk14 uint16
|
||||
Unk15 uint16
|
||||
Unk16 uint16
|
||||
Unk17 uint16
|
||||
Unk18 uint16
|
||||
Unk19 uint16
|
||||
Unk20 uint16
|
||||
Unk21 uint16
|
||||
Unk22 uint16
|
||||
Unk23 uint32
|
||||
Unk24 uint32
|
||||
DataSize uint8
|
||||
RawDataPayload []byte
|
||||
}
|
||||
|
||||
// MsgMhfUpdateGuacot represents the MSG_MHF_UPDATE_GUACOT
|
||||
type MsgMhfUpdateGuacot struct {
|
||||
AckHandle uint32
|
||||
AckHandle uint32
|
||||
EntryCount uint16
|
||||
Unk0 uint16 // Hardcoded 0 in binary
|
||||
Entries []*GuacotUpdateEntry
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -18,6 +52,42 @@ func (m *MsgMhfUpdateGuacot) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfUpdateGuacot) Parse(bf *byteframe.ByteFrame) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.EntryCount = bf.ReadUint16()
|
||||
m.Unk0 = bf.ReadUint16()
|
||||
for i := 0; i < int(m.EntryCount); i++ {
|
||||
// Yikes.
|
||||
e := &GuacotUpdateEntry{}
|
||||
|
||||
e.Unk0 = bf.ReadUint32()
|
||||
e.Unk1 = bf.ReadUint16()
|
||||
e.Unk2 = bf.ReadUint16()
|
||||
e.Unk3 = bf.ReadUint16()
|
||||
e.Unk4 = bf.ReadUint16()
|
||||
e.Unk5 = bf.ReadUint16()
|
||||
e.Unk6 = bf.ReadUint16()
|
||||
e.Unk7 = bf.ReadUint16()
|
||||
e.Unk8 = bf.ReadUint16()
|
||||
e.Unk9 = bf.ReadUint16()
|
||||
e.Unk10 = bf.ReadUint16()
|
||||
e.Unk11 = bf.ReadUint16()
|
||||
e.Unk12 = bf.ReadUint16()
|
||||
e.Unk13 = bf.ReadUint16()
|
||||
e.Unk14 = bf.ReadUint16()
|
||||
e.Unk15 = bf.ReadUint16()
|
||||
e.Unk16 = bf.ReadUint16()
|
||||
e.Unk17 = bf.ReadUint16()
|
||||
e.Unk18 = bf.ReadUint16()
|
||||
e.Unk19 = bf.ReadUint16()
|
||||
e.Unk20 = bf.ReadUint16()
|
||||
e.Unk21 = bf.ReadUint16()
|
||||
e.Unk22 = bf.ReadUint16()
|
||||
e.Unk23 = bf.ReadUint32()
|
||||
e.Unk24 = bf.ReadUint32()
|
||||
e.DataSize = bf.ReadUint8()
|
||||
e.RawDataPayload = bf.ReadBytes(uint(e.DataSize))
|
||||
|
||||
m.Entries = append(m.Entries, e)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user