Commit Graph
34 Commits
Author SHA1 Message Date
MagicBotandClaude Opus 5.5 7bcbed08a8 Accept unsigned values in signed fields when packing
Dumps made before the signed-read change store values like -1 as
4294967295. write_long now converts 2147483648..4294967295 to the
signed equivalent (same bytes), so existing community dumps still
pack. Verified: all 10332 files of an older dump repack identical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:09:05 -04:00
MagicBotandClaude Opus 5.5 50d8d76a21 Document COBJECTS JSON format changes
List every field now read signed, the grant key hashing, the effect on
the sample cache, compatibility with older dumps, related parser fixes
and open items, for readers of the unpacked JSON.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:06:08 -04:00
MagicBotandClaude Opus 5.5 ca4d2b2565 Hash grant attr and power keys, read grant values signed
Power and skill grants read every sub-array as (u32 key, int32 value)
(sb.exe 0x6D7640). Skill keys were already hashed; attr and power keys
now are too, and the values plus attribute/skill/resource amounts and
power action arguments are read signed. Shared pair read/write and key
hashing moved into helpers; load_json no longer mutates its input.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:55:04 -04:00
MagicBotandClaude Opus 5.5 0adbfe0d99 Read client signed int32 fields as signed
Add ResStream.read_long/write_long and use them for every CObjects
field the client loads with ResStream_ReadInt32 (sb.exe 0x7E1700)
as a value: rank info, attribute/skill/resource amounts, requirements,
door/deed/container/key fields, natural attacks, hardpoints, sound
event types and sparse VAL_LONG (LoadSaveBehavior<long>). Hash/enum
fields, list counts and flag words keep unsigned reads.

The binary is unchanged; JSON now shows e.g. -1 instead of 4294967295
(rank_hirelings, rank_rank) and -10 instead of 4294967286 (attr_adj).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:55:04 -04:00
MagicBotandClaude Opus 5.5 6a8598f33f Fix ArcContainerObject save_binary and load_json
save_binary called stream.read_dword(value) instead of write_dword,
so packing any container raised a TypeError. load_json called
super().load_json() without data, so the item base never loaded.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:53:31 -04:00
MagicBotandClaude Opus 5.5 2008697d6c Fail on unsupported asset template trigger objects
When the bool after USE_TRIGGER / LOOT_TRIGGER is set, the client
(sb.exe 0xC46DE0) instantiates a trigger object by name and loads
extra data from the stream. The parser silently ignored the branch,
which would desync the rest of the template. Raise instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:42:57 -04:00
MagicBotandClaude Opus 5.5 7da18716a8 Fix sparse MerchantData write size
The client loads MerchantData as ArcCacheID + ArcCacheID + int32
(20 bytes, sb.exe 0x4859B0). save_binary wrote the final field as a
qword, corrupting any packed object carrying merchant sparse data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:42:57 -04:00
MagicBot 75efa29012 helper and groupee are not hashes. They correspond to the group type on the rune. 2024-04-04 14:46:59 -04:00
MagicBot 834f8f6d8d rune and item skill grant sub arrays are now hashed 2024-04-03 16:07:13 -04:00
MagicBot 89faf12277 mbEditorPro 2.1 2024-03-30 10:44:19 -04:00
MagicBot 1fb6336c39 Update 'mbEditorPro2.0/README.md' 2023-01-01 00:47:51 +00:00
MagicBot 35c25ccc55 Update 'README.md' 2023-01-01 00:46:05 +00:00
MagicBot 0db4750d1c Update 'README.md' 2022-12-31 16:52:03 +00:00
MagicBot 6bc7e3ecd8 Show progress bar when unpacking files. 2022-12-31 11:49:00 -05:00
MagicBot 2e62063c14 README updated 2022-12-25 09:51:53 -05:00
MagicBot a4f75ee1b5 README updated 2022-12-25 09:50:19 -05:00
MagicBot cbd1b579ae README updated 2022-12-25 09:24:38 -05:00
MagicBot 4ca95d2a17 README updated 2022-12-25 09:22:47 -05:00
MagicBot 282d644580 README updated 2022-12-25 09:19:42 -05:00
MagicBot 738de28858 README updated 2022-12-25 09:14:11 -05:00
MagicBot 11a7a21630 README updated 2022-12-25 09:13:06 -05:00
MagicBot 7ac814ab03 README updated 2022-12-25 08:52:21 -05:00
MagicBot 942b33a252 mbEditorPro2.0 release 2022-12-25 08:47:00 -05:00
MagicBot 30375c8413 Removed ArcaneDump from repo. 2022-12-25 07:44:20 -05:00
MagicBot 8f994b6940 README updated with dump availability. 2022-10-11 07:35:25 -04:00
MagicBot 511a36b1f7 Dumps were moved out of project directory.
Zone data was added.
2022-10-11 07:32:35 -04:00
MagicBot 281929affa LICENSE copied to subfolder. 2022-10-11 00:21:10 -04:00
MagicBot f6c049039c Typo fixed. 2022-10-10 13:11:02 -04:00
MagicBot 65bc566fd4 Initial source push. mbEditorPro v1.0 2022-10-10 13:06:07 -04:00
MagicBot 1218f843cb Update header. 2022-10-10 08:27:36 -04:00
MagicBot b771bdbb02 Initial push. README and LICENSE files. 2022-10-10 08:01:39 -04:00
MagicBot 4ffe65e3bd Update 'README.md' 2022-05-02 17:48:06 +00:00
MagicBot 086155e5fc Update 'README.md' 2022-05-02 17:46:35 +00:00
MagicBot e171ab9968 Initial commit 2022-05-02 17:42:15 +00:00