add S6 Savedata compatibility

This commit is contained in:
wish
2023-07-21 20:54:36 +10:00
parent 123434c374
commit a66a32936f
2 changed files with 18 additions and 10 deletions

View File

@@ -1,11 +1,12 @@
package mhfpacket package mhfpacket
import ( import (
"errors" "errors"
_config "erupe-ce/config"
"erupe-ce/network/clientctx"
"erupe-ce/network"
"erupe-ce/common/byteframe" "erupe-ce/common/byteframe"
"erupe-ce/network"
"erupe-ce/network/clientctx"
) )
// MsgMhfSavedata represents the MSG_MHF_SAVEDATA // MsgMhfSavedata represents the MSG_MHF_SAVEDATA
@@ -29,7 +30,9 @@ func (m *MsgMhfSavedata) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientCon
m.AllocMemSize = bf.ReadUint32() m.AllocMemSize = bf.ReadUint32()
m.SaveType = bf.ReadUint8() m.SaveType = bf.ReadUint8()
m.Unk1 = bf.ReadUint32() m.Unk1 = bf.ReadUint32()
m.DataSize = bf.ReadUint32() if _config.ErupeConfig.RealClientMode >= _config.G1 {
m.DataSize = bf.ReadUint32()
}
if m.DataSize == 0 { // seems to be used when DataSize = 0 rather than on savetype? if m.DataSize == 0 { // seems to be used when DataSize = 0 rather than on savetype?
m.RawDataPayload = bf.ReadBytes(uint(m.AllocMemSize)) m.RawDataPayload = bf.ReadBytes(uint(m.AllocMemSize))
} else { } else {

View File

@@ -133,13 +133,18 @@ func (save *CharacterSaveData) Save(s *Session) {
save.updateSaveDataWithStruct() save.updateSaveDataWithStruct()
err := save.Compress() if _config.ErupeConfig.RealClientMode >= _config.G1 {
if err != nil { err := save.Compress()
s.logger.Error("Failed to compress savedata", zap.Error(err)) if err != nil {
return s.logger.Error("Failed to compress savedata", zap.Error(err))
return
}
} else {
// Saves were not compressed
save.compSave = save.decompSave
} }
_, err = s.server.db.Exec(`UPDATE characters SET savedata=$1, is_new_character=false, hrp=$2, gr=$3, is_female=$4, weapon_type=$5, weapon_id=$6 WHERE id=$7 _, err := s.server.db.Exec(`UPDATE characters SET savedata=$1, is_new_character=false, hrp=$2, gr=$3, is_female=$4, weapon_type=$5, weapon_id=$6 WHERE id=$7
`, save.compSave, save.HRP, save.GR, save.Gender, save.WeaponType, save.WeaponID, save.CharID) `, save.compSave, save.HRP, save.GR, save.Gender, save.WeaponType, save.WeaponID, save.CharID)
if err != nil { if err != nil {
s.logger.Error("Failed to update savedata", zap.Error(err), zap.Uint32("charID", save.CharID)) s.logger.Error("Failed to update savedata", zap.Error(err), zap.Uint32("charID", save.CharID))