From 4e8b363795a32f8247bd0d9ffab3052c26f2aef6 Mon Sep 17 00:00:00 2001 From: Escartem Date: Sun, 26 Apr 2026 12:28:21 -0400 Subject: [PATCH] fix map decode error --- mapper.py | 23 ++++++++++------------- maps/hkrpg.map | Bin 17099805 -> 17099805 bytes version.json | 2 +- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/mapper.py b/mapper.py index 70a8b1a..82529e3 100644 --- a/mapper.py +++ b/mapper.py @@ -49,20 +49,17 @@ class Mapper: # sectors def int24(): - val = int.from_bytes(reader.ReadBytes(3), "big") - if val == 0: - int.from_bytes(reader.ReadBytes(4), "big") - return val + val = reader.ReadBytes(3) + if val == b"\xFF" * 3: + val = reader.ReadBytes(4) + return int.from_bytes(val, "big") - sectors = { - # offset | size - "languages": [int24(), int24()], - "strings": [int24(), int24()], - "words": [int24(), int24()], - "files": [int24(), int24()], - "keys": [int24(), int24()], - "music": [int24(), int24()] - } + names = ["languages", "strings", "words", "files", "keys", "music"] + sectors = {n: [int24(), int24()] for n in names} + if list(sectors.values())[0][0] == 0: + offset = reader.GetBufferPos() + for v in sectors.values(): + v[0] += offset # languages reader.SetBufferPos(sectors["languages"][0]) diff --git a/maps/hkrpg.map b/maps/hkrpg.map index 316205f5d6513327cdc479b59afef299c0c3db04..120d2ad9e21603404936f470c20ac9b55b96803c 100644 GIT binary patch delta 802 zcmWO0cbpCc0D$4&cPH6pZ)I=CYm>;HSyA@P-g||^ONXhNitcc$W)mo(`AOt zlvy%c=Ez)`C-db8iIN4fP!`EzSt3hinJkwTvQk#bkFr|U$WQXKtd(D6o%|~6WrJ*# zO|n_G$ZztyY?W=YU7}@&?36!bm;5Pz$!^&rdu5;OmjiN8{+2^>SdPe1IVQ*Dgq)O9 za$3&FS&5Nza$YXTMY$xG<%(RDYjRy~$W6H=x8;u9m3wkuV&#E6lt=Pdp2$;qCeP&` lc_IJGfAUgZ$!mEdZ{?l5m$(Q5kpzN5fW+Al`2wIs!4UJAvL9z)RsC@ zSL#W9X&?=yku;X?q=|elO{JMMmlo1eT1jhZBW