fix(goocoo): backport personal poogie system from main branch

The personal poogie (goocoo) system was completely broken because the
code referenced the old "gook" table/column names while the database
schema had been renamed to "goocoo". All read/write queries failed
silently, resulting in no poogie data being saved for any player.

Backports from main: renamed Gook struct to Goocoo with correct
structured fields (22 int16 + 2 uint32), updated all SQL queries to
use goocoo table/columns, and added comprehensive packet parsing tests.
This commit is contained in:
Houmgaor
2026-02-08 00:55:31 +01:00
parent ddf4b8158f
commit 072d3b895d
4 changed files with 422 additions and 58 deletions

View File

@@ -213,10 +213,12 @@ func handleMsgMhfLoadHouse(s *Session, p mhfpacket.MHFPacket) {
bf.WriteBytes(houseFurniture)
case 10: // Garden
bf.WriteBytes(garden)
c, d := getGookData(s, pkt.CharID)
bf.WriteUint16(c)
goocoos := getGoocooData(s, pkt.CharID)
bf.WriteUint16(uint16(len(goocoos)))
bf.WriteUint16(0)
bf.WriteBytes(d)
for _, goocoo := range goocoos {
bf.WriteBytes(goocoo)
}
}
if len(bf.Data()) == 0 {
doAckSimpleFail(s, pkt.AckHandle, make([]byte, 4))