mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-15 00:15:08 +01:00
Added config at char select screen Transmog saving and loading (unlocks are not yet tackled and it is global rn) Sigil saving (can break, initial pass of save) Null compression and decompression functions. First pass of the diff save function. Disabled stamp cards
42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package mhfpacket
|
|
|
|
import (
|
|
"github.com/Andoryuuta/Erupe/network"
|
|
"github.com/Andoryuuta/byteframe"
|
|
)
|
|
|
|
// MsgMhfSavedata represents the MSG_MHF_SAVEDATA
|
|
type MsgMhfSavedata struct {
|
|
AckHandle uint32
|
|
AllocMemSize uint32
|
|
SaveType uint8 // Either 1 or 2, representing a true or false value for some reason.
|
|
Unk1 uint32
|
|
DataSize uint32
|
|
RawDataPayload []byte
|
|
}
|
|
|
|
// Opcode returns the ID associated with this packet type.
|
|
func (m *MsgMhfSavedata) Opcode() network.PacketID {
|
|
return network.MSG_MHF_SAVEDATA
|
|
}
|
|
|
|
// Parse parses the packet from binary
|
|
func (m *MsgMhfSavedata) Parse(bf *byteframe.ByteFrame) error {
|
|
m.AckHandle = bf.ReadUint32()
|
|
m.AllocMemSize = bf.ReadUint32()
|
|
m.SaveType = bf.ReadUint8()
|
|
m.Unk1 = bf.ReadUint32()
|
|
m.DataSize = bf.ReadUint32()
|
|
if m.SaveType == 1 {
|
|
m.RawDataPayload = bf.ReadBytes(uint(m.AllocMemSize))
|
|
} else if m.SaveType == 2 {
|
|
m.RawDataPayload = bf.ReadBytes(uint(m.DataSize))
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Build builds a binary packet from the current data.
|
|
func (m *MsgMhfSavedata) Build(bf *byteframe.ByteFrame) error {
|
|
panic("Not implemented")
|
|
}
|