mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-12 23:14:36 +01:00
Make changed parsers size-accurate
This commit is contained in:
@@ -7,7 +7,9 @@ import (
|
||||
|
||||
// MsgMhfAddAchievement represents the MSG_MHF_ADD_ACHIEVEMENT
|
||||
type MsgMhfAddAchievement struct {
|
||||
Unk0 []byte
|
||||
Unk0 uint8
|
||||
Unk1 uint16
|
||||
Unk2 uint16
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -17,7 +19,9 @@ func (m *MsgMhfAddAchievement) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfAddAchievement) Parse(bf *byteframe.ByteFrame) error {
|
||||
m.Unk0 = bf.ReadBytes(5)
|
||||
m.Unk0 = bf.ReadUint8()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
m.Unk2 = bf.ReadUint16()
|
||||
// doesn't expect a response
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@ import (
|
||||
// MsgMhfEnumerateGuacot represents the MSG_MHF_ENUMERATE_GUACOT
|
||||
type MsgMhfEnumerateGuacot struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint16 // Hardcoded 0 in binary
|
||||
Unk1 uint16 // Hardcoded 0 in binary
|
||||
Unk2 uint16 // Hardcoded 0 in binary
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -18,6 +21,9 @@ func (m *MsgMhfEnumerateGuacot) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfEnumerateGuacot) Parse(bf *byteframe.ByteFrame) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint16()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
m.Unk2 = bf.ReadUint16()
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,9 @@ import (
|
||||
// MsgMhfEnumerateRengokuRanking represents the MSG_MHF_ENUMERATE_RENGOKU_RANKING
|
||||
type MsgMhfEnumerateRengokuRanking struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint32
|
||||
Unk1 uint16 // Hardcoded 0 in the binary
|
||||
Unk2 uint16 // Hardcoded 00 01 in the binary
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -18,6 +21,9 @@ func (m *MsgMhfEnumerateRengokuRanking) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfEnumerateRengokuRanking) Parse(bf *byteframe.ByteFrame) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint32()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
m.Unk2 = bf.ReadUint16()
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
// MsgMhfGetAdditionalBeatReward represents the MSG_MHF_GET_ADDITIONAL_BEAT_REWARD
|
||||
type MsgMhfGetAdditionalBeatReward struct {
|
||||
// Communicator type, multi-format. This might be valid for only one type.
|
||||
AckHandle uint32
|
||||
Unk0 uint32
|
||||
Unk1 uint32
|
||||
|
||||
@@ -9,7 +9,10 @@ import (
|
||||
type MsgMhfGetMyhouseInfo struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint32
|
||||
Unk1 uint16
|
||||
|
||||
// No idea why it would send a buffer of data on a _GET_, but w/e.
|
||||
DataSize uint8
|
||||
RawDataPayload []byte
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -21,7 +24,8 @@ func (m *MsgMhfGetMyhouseInfo) Opcode() network.PacketID {
|
||||
func (m *MsgMhfGetMyhouseInfo) Parse(bf *byteframe.ByteFrame) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint32()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
m.DataSize = bf.ReadUint8()
|
||||
m.RawDataPayload = bf.ReadBytes(uint(m.DataSize))
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
// MsgMhfGetPaperData represents the MSG_MHF_GET_PAPER_DATA
|
||||
type MsgMhfGetPaperData struct {
|
||||
// Communicator type, multi-format. This might be valid for only one type.
|
||||
AckHandle uint32
|
||||
Unk0 uint32
|
||||
Unk1 uint32
|
||||
|
||||
@@ -8,7 +8,7 @@ import (
|
||||
// MsgMhfGetRengokuBinary represents the MSG_MHF_GET_RENGOKU_BINARY
|
||||
type MsgMhfGetRengokuBinary struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint8
|
||||
Unk0 uint8 // Hardcoded 0 in binary
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
// MsgMhfGetSeibattle represents the MSG_MHF_GET_SEIBATTLE
|
||||
type MsgMhfGetSeibattle struct {
|
||||
// Communicator type, multi-format. This might be valid for only one type.
|
||||
AckHandle uint32
|
||||
Unk0 uint8
|
||||
Unk1 uint8
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
// MsgMhfGetTenrouirai represents the MSG_MHF_GET_TENROUIRAI
|
||||
type MsgMhfGetTenrouirai struct {
|
||||
// Communicator type, multi-format. This might be valid for only one type.
|
||||
AckHandle uint32
|
||||
Unk0 uint16
|
||||
Unk1 uint32
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
// MsgMhfGetTinyBin represents the MSG_MHF_GET_TINY_BIN
|
||||
type MsgMhfGetTinyBin struct {
|
||||
// Communicator type, multi-format. This might be valid for only one type.
|
||||
AckHandle uint32
|
||||
Unk0 uint16
|
||||
Unk1 uint8
|
||||
|
||||
@@ -17,6 +17,7 @@ const (
|
||||
|
||||
// MsgMhfGetTowerInfo represents the MSG_MHF_GET_TOWER_INFO
|
||||
type MsgMhfGetTowerInfo struct {
|
||||
// Communicator type, multi-format. This might be valid for only one type.
|
||||
AckHandle uint32
|
||||
InfoType uint32 // Requested response type
|
||||
Unk0 uint32
|
||||
|
||||
@@ -7,11 +7,13 @@ import (
|
||||
|
||||
// MsgMhfLoadHouse represents the MSG_MHF_LOAD_HOUSE
|
||||
type MsgMhfLoadHouse struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint8
|
||||
Unk1 uint32
|
||||
Unk2 uint8
|
||||
Unk3 uint32
|
||||
AckHandle uint32
|
||||
Unk0 uint32
|
||||
Unk1 uint8
|
||||
Unk2 uint8
|
||||
Unk3 uint16 // Hardcoded 0 in binary
|
||||
DataSize uint8
|
||||
RawDataPayload []byte
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -22,10 +24,12 @@ func (m *MsgMhfLoadHouse) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfLoadHouse) Parse(bf *byteframe.ByteFrame) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint8()
|
||||
m.Unk1 = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint32()
|
||||
m.Unk1 = bf.ReadUint8()
|
||||
m.Unk2 = bf.ReadUint8()
|
||||
m.Unk3 = bf.ReadUint32()
|
||||
m.Unk3 = bf.ReadUint16()
|
||||
m.DataSize = bf.ReadUint8()
|
||||
m.RawDataPayload = bf.ReadBytes(uint(m.DataSize))
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
// MsgMhfPostTowerInfo represents the MSG_MHF_POST_TOWER_INFO
|
||||
type MsgMhfPostTowerInfo struct {
|
||||
// Communicator type, multi-format. This might be valid for only one type.
|
||||
AckHandle uint32
|
||||
Unk0 uint32
|
||||
Unk1 uint32
|
||||
|
||||
@@ -7,16 +7,18 @@ import (
|
||||
|
||||
// MsgMhfStampcardStamp represents the MSG_MHF_STAMPCARD_STAMP
|
||||
type MsgMhfStampcardStamp struct {
|
||||
// probably not actual format, just lined up neatly to an example packet
|
||||
// Field-size accurate.
|
||||
AckHandle uint32
|
||||
Unk0 uint32
|
||||
Unk1 uint32
|
||||
Unk2 uint32
|
||||
Unk3 uint32
|
||||
Unk0 uint16
|
||||
Unk1 uint16
|
||||
Unk2 uint16
|
||||
Unk3 uint16 // Hardcoded 0 in binary
|
||||
Unk4 uint32
|
||||
Unk5 uint32
|
||||
Unk6 uint32
|
||||
Unk7 uint32
|
||||
Unk8 uint32
|
||||
Unk9 uint32
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -27,14 +29,16 @@ func (m *MsgMhfStampcardStamp) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfStampcardStamp) Parse(bf *byteframe.ByteFrame) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint32()
|
||||
m.Unk1 = bf.ReadUint32()
|
||||
m.Unk2 = bf.ReadUint32()
|
||||
m.Unk3 = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint16()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
m.Unk2 = bf.ReadUint16()
|
||||
m.Unk3 = bf.ReadUint16()
|
||||
m.Unk4 = bf.ReadUint32()
|
||||
m.Unk5 = bf.ReadUint32()
|
||||
m.Unk6 = bf.ReadUint32()
|
||||
m.Unk7 = bf.ReadUint32()
|
||||
m.Unk8 = bf.ReadUint32()
|
||||
m.Unk9 = bf.ReadUint32()
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@ type MsgMhfTransferItem struct {
|
||||
// correlate with any item IDs that would make sense to get after quests so
|
||||
// I have no idea what this actually does
|
||||
Unk0 uint32
|
||||
Unk1 uint32
|
||||
Unk1 uint16 // Hardcoded
|
||||
Unk2 uint16 // Hardcoded
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -24,7 +25,8 @@ func (m *MsgMhfTransferItem) Opcode() network.PacketID {
|
||||
func (m *MsgMhfTransferItem) Parse(bf *byteframe.ByteFrame) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint32()
|
||||
m.Unk1 = bf.ReadUint32()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
m.Unk2 = bf.ReadUint16()
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ import (
|
||||
// MsgMhfUpdateCafepoint represents the MSG_MHF_UPDATE_CAFEPOINT
|
||||
type MsgMhfUpdateCafepoint struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint32
|
||||
Unk0 uint16 // Hardcoded 0 in binary
|
||||
Unk1 uint16 // Hardcoded 0 in binary
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -19,7 +20,8 @@ func (m *MsgMhfUpdateCafepoint) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfUpdateCafepoint) Parse(bf *byteframe.ByteFrame) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint16()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ import (
|
||||
// MsgMhfUpdateEquipSkinHist represents the MSG_MHF_UPDATE_EQUIP_SKIN_HIST
|
||||
type MsgMhfUpdateEquipSkinHist struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint8
|
||||
Unk1 uint16
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -18,6 +20,8 @@ func (m *MsgMhfUpdateEquipSkinHist) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfUpdateEquipSkinHist) Parse(bf *byteframe.ByteFrame) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint8()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
|
||||
// MsgSysLogout represents the MSG_SYS_LOGOUT
|
||||
type MsgSysLogout struct {
|
||||
Unk0 uint8
|
||||
Unk0 uint8 // Hardcoded 1 in binary
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
|
||||
Reference in New Issue
Block a user