From 4c47c8e18f80c8fd3090c9e35e32e8ed553ff45b Mon Sep 17 00:00:00 2001 From: Houmgaor Date: Fri, 27 Feb 2026 16:46:32 +0100 Subject: [PATCH] fix(channelserver): correct bookshelf save data pointers for non-ZZ (#164) The pBookshelfData offsets for G1-Z2, F4-F5, and S6 were off by -14810, placing bookshelf before houseData in the save blob and reading garbage. All other 12 save fields have consistent inter-version deltas (36000, 32000, 48000); only bookshelf broke the pattern. Correcting by +14810 restores the gallery-bookshelf gap to 136 bytes (matching ZZ) and aligns all field deltas across versions. Supersedes Mezeporta/Erupe#155 (same fix, merge conflict on renamed file). --- server/channelserver/model_character.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/channelserver/model_character.go b/server/channelserver/model_character.go index 047744425..c1f4d7d47 100644 --- a/server/channelserver/model_character.go +++ b/server/channelserver/model_character.go @@ -85,7 +85,7 @@ func getPointers(mode cfg.Mode) map[SavePointer]int { pointers[pHR] = 94550 pointers[pGRP] = 94556 pointers[pHouseData] = 94561 - pointers[pBookshelfData] = 89118 // TODO: fix bookshelf data pointer + pointers[pBookshelfData] = 103928 pointers[pGalleryData] = 104064 pointers[pGardenData] = 106424 pointers[pRP] = 106614 @@ -98,7 +98,7 @@ func getPointers(mode cfg.Mode) map[SavePointer]int { pointers[pToreData] = 62228 pointers[pHR] = 62550 pointers[pHouseData] = 62561 - pointers[pBookshelfData] = 57118 // TODO: fix bookshelf data pointer + pointers[pBookshelfData] = 71928 pointers[pGalleryData] = 72064 pointers[pGardenData] = 74424 pointers[pRP] = 74614 @@ -110,7 +110,7 @@ func getPointers(mode cfg.Mode) map[SavePointer]int { pointers[pToreData] = 14228 pointers[pHR] = 14550 pointers[pHouseData] = 14561 - pointers[pBookshelfData] = 9118 // TODO: fix bookshelf data pointer + pointers[pBookshelfData] = 23928 pointers[pGalleryData] = 24064 pointers[pGardenData] = 26424 pointers[pRP] = 26614