rewrite character and data handlers

This commit is contained in:
wishu
2022-06-08 10:40:59 +10:00
parent ed31c3e305
commit bf95b1326b
2 changed files with 3 additions and 14 deletions

View File

@@ -128,16 +128,5 @@ func (save *CharacterSaveData) updateStructWithSaveData() {
func handleMsgMhfSexChanger(s *Session, p mhfpacket.MHFPacket) {
pkt := p.(*mhfpacket.MsgMhfSexChanger)
if pkt.Gender == 0 {
_, err := s.server.db.Exec("UPDATE characters SET is_female=true WHERE id=$1", s.charID)
if err != nil {
s.logger.Fatal("Failed to update gender in db", zap.Error(err))
}
} else {
_, err := s.server.db.Exec("UPDATE characters SET is_female=false WHERE id=$1", s.charID)
if err != nil {
s.logger.Fatal("Failed to update gender in db", zap.Error(err))
}
}
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
}

View File

@@ -8,6 +8,7 @@ import (
"os"
"path/filepath"
"github.com/Andoryuuta/byteframe"
"github.com/Solenataris/Erupe/common/bfutil"
"github.com/Solenataris/Erupe/network/mhfpacket"
"github.com/Solenataris/Erupe/server/channelserver/compression/deltacomp"
@@ -32,17 +33,16 @@ func handleMsgMhfSavedata(s *Session, p mhfpacket.MHFPacket) {
s.logger.Fatal("Failed to decompress diff", zap.Error(err))
}
// Perform diff.
characterSaveData.SetBaseSaveData(deltacomp.ApplyDataDiff(diff, characterSaveData.BaseSaveData()))
s.logger.Info("Diffing...")
characterSaveData.SetBaseSaveData(deltacomp.ApplyDataDiff(diff, characterSaveData.BaseSaveData()))
} else {
// Regular blob update.
saveData, err := nullcomp.Decompress(pkt.RawDataPayload)
characterSaveData.SetBaseSaveData(saveData)
if err != nil {
s.logger.Fatal("Failed to decompress savedata from packet", zap.Error(err))
}
s.logger.Info("Updating save with blob")
characterSaveData.SetBaseSaveData(saveData)
}
characterSaveData.IsNewCharacter = false
characterBaseSaveData := characterSaveData.BaseSaveData()