mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-15 08:25:09 +01:00
clean up various mercenary handlers
This commit is contained in:
@@ -13,37 +13,25 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
)
|
)
|
||||||
|
|
||||||
// THERE ARE [PARTENER] [MERCENARY] [OTOMO AIRU]
|
|
||||||
|
|
||||||
///////////////////////////////////////////
|
|
||||||
/// PARTENER //
|
|
||||||
///////////////////////////////////////////
|
|
||||||
|
|
||||||
func handleMsgMhfLoadPartner(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfLoadPartner(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfLoadPartner)
|
pkt := p.(*mhfpacket.MsgMhfLoadPartner)
|
||||||
// load partner from database
|
|
||||||
var data []byte
|
var data []byte
|
||||||
err := s.server.db.QueryRow("SELECT partner FROM characters WHERE id = $1", s.charID).Scan(&data)
|
err := s.server.db.QueryRow("SELECT partner FROM characters WHERE id = $1", s.charID).Scan(&data)
|
||||||
if err != nil {
|
|
||||||
s.logger.Fatal("Failed to get partner savedata from db", zap.Error(err))
|
|
||||||
}
|
|
||||||
if len(data) > 0 {
|
if len(data) > 0 {
|
||||||
doAckBufSucceed(s, pkt.AckHandle, data)
|
doAckBufSucceed(s, pkt.AckHandle, data)
|
||||||
} else {
|
} else {
|
||||||
|
s.logger.Warn("Failed to load partner data", zap.Error(err))
|
||||||
doAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
|
doAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
|
||||||
}
|
}
|
||||||
// TODO(Andoryuuta): Figure out unusual double ack. One sized, one not.
|
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleMsgMhfSavePartner(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfSavePartner(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfSavePartner)
|
pkt := p.(*mhfpacket.MsgMhfSavePartner)
|
||||||
|
|
||||||
dumpSaveData(s, pkt.RawDataPayload, "partner")
|
dumpSaveData(s, pkt.RawDataPayload, "partner")
|
||||||
|
|
||||||
_, err := s.server.db.Exec("UPDATE characters SET partner=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
_, err := s.server.db.Exec("UPDATE characters SET partner=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to update partner savedata in db", zap.Error(err))
|
s.logger.Warn("Failed to save partner data", zap.Error(err))
|
||||||
}
|
}
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
}
|
}
|
||||||
@@ -58,13 +46,10 @@ func handleMsgMhfLoadHunterNavi(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
pkt := p.(*mhfpacket.MsgMhfLoadHunterNavi)
|
pkt := p.(*mhfpacket.MsgMhfLoadHunterNavi)
|
||||||
var data []byte
|
var data []byte
|
||||||
err := s.server.db.QueryRow("SELECT hunternavi FROM characters WHERE id = $1", s.charID).Scan(&data)
|
err := s.server.db.QueryRow("SELECT hunternavi FROM characters WHERE id = $1", s.charID).Scan(&data)
|
||||||
if err != nil {
|
|
||||||
s.logger.Fatal("Failed to get hunter navigation savedata from db", zap.Error(err))
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(data) > 0 {
|
if len(data) > 0 {
|
||||||
doAckBufSucceed(s, pkt.AckHandle, data)
|
doAckBufSucceed(s, pkt.AckHandle, data)
|
||||||
} else {
|
} else {
|
||||||
|
s.logger.Warn("Failed to load navi data", zap.Error(err))
|
||||||
// set first byte to 1 to avoid pop up every time without save
|
// set first byte to 1 to avoid pop up every time without save
|
||||||
body := make([]byte, 0x226)
|
body := make([]byte, 0x226)
|
||||||
body[0] = 1
|
body[0] = 1
|
||||||
@@ -74,16 +59,12 @@ func handleMsgMhfLoadHunterNavi(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
|
|
||||||
func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfSaveHunterNavi)
|
pkt := p.(*mhfpacket.MsgMhfSaveHunterNavi)
|
||||||
|
|
||||||
dumpSaveData(s, pkt.RawDataPayload, "hunternavi")
|
|
||||||
|
|
||||||
if pkt.IsDataDiff {
|
if pkt.IsDataDiff {
|
||||||
var data []byte
|
var data []byte
|
||||||
|
|
||||||
// Load existing save
|
// Load existing save
|
||||||
err := s.server.db.QueryRow("SELECT hunternavi FROM characters WHERE id = $1", s.charID).Scan(&data)
|
err := s.server.db.QueryRow("SELECT hunternavi FROM characters WHERE id = $1", s.charID).Scan(&data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to get hunternavi savedata from db", zap.Error(err))
|
s.logger.Warn("Failed to save navi data", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if we actually had any hunternavi data, using a blank buffer if not.
|
// Check if we actually had any hunternavi data, using a blank buffer if not.
|
||||||
@@ -96,30 +77,22 @@ func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
// Perform diff and compress it to write back to db
|
// Perform diff and compress it to write back to db
|
||||||
s.logger.Info("Diffing...")
|
s.logger.Info("Diffing...")
|
||||||
saveOutput := deltacomp.ApplyDataDiff(pkt.RawDataPayload, data)
|
saveOutput := deltacomp.ApplyDataDiff(pkt.RawDataPayload, data)
|
||||||
|
|
||||||
_, err = s.server.db.Exec("UPDATE characters SET hunternavi=$1 WHERE id=$2", saveOutput, s.charID)
|
_, err = s.server.db.Exec("UPDATE characters SET hunternavi=$1 WHERE id=$2", saveOutput, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to update hunternavi savedata in db", zap.Error(err))
|
s.logger.Warn("Failed to save navi data", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
s.logger.Info("Wrote recompressed hunternavi back to DB.")
|
s.logger.Info("Wrote recompressed hunternavi back to DB.")
|
||||||
} else {
|
} else {
|
||||||
dumpSaveData(s, pkt.RawDataPayload, "hunternavi")
|
dumpSaveData(s, pkt.RawDataPayload, "hunternavi")
|
||||||
// simply update database, no extra processing
|
// simply update database, no extra processing
|
||||||
_, err := s.server.db.Exec("UPDATE characters SET hunternavi=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
_, err := s.server.db.Exec("UPDATE characters SET hunternavi=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to update hunternavi savedata in db", zap.Error(err))
|
s.logger.Warn("Failed to save navi data", zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////
|
|
||||||
|
|
||||||
///////////////////////////////////////////
|
|
||||||
/// MERCENARY //
|
|
||||||
///////////////////////////////////////////
|
|
||||||
|
|
||||||
func handleMsgMhfMercenaryHuntdata(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfMercenaryHuntdata(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfMercenaryHuntdata)
|
pkt := p.(*mhfpacket.MsgMhfMercenaryHuntdata)
|
||||||
if pkt.Unk0 == 1 {
|
if pkt.Unk0 == 1 {
|
||||||
@@ -208,12 +181,6 @@ func handleMsgMhfReadMercenaryM(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
|
|
||||||
func handleMsgMhfContractMercenary(s *Session, p mhfpacket.MHFPacket) {}
|
func handleMsgMhfContractMercenary(s *Session, p mhfpacket.MHFPacket) {}
|
||||||
|
|
||||||
///////////////////////////////////////////
|
|
||||||
|
|
||||||
///////////////////////////////////////////
|
|
||||||
/// OTOMO AIRU //
|
|
||||||
///////////////////////////////////////////
|
|
||||||
|
|
||||||
func handleMsgMhfLoadOtomoAirou(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfLoadOtomoAirou(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfLoadOtomoAirou)
|
pkt := p.(*mhfpacket.MsgMhfLoadOtomoAirou)
|
||||||
var data []byte
|
var data []byte
|
||||||
@@ -411,5 +378,3 @@ func GetCatDetails(bf *byteframe.ByteFrame) []CatDefinition {
|
|||||||
}
|
}
|
||||||
return cats
|
return cats
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////
|
|
||||||
|
|||||||
Reference in New Issue
Block a user