From 7da18716a80ce9b4d922fa04ce682b6604600f5d Mon Sep 17 00:00:00 2001 From: MagicBot Date: Fri, 16 Oct 2026 12:42:57 -0400 Subject: [PATCH] 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 --- mbEditorPro2.0/arcane/objects/common/SparseData.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mbEditorPro2.0/arcane/objects/common/SparseData.py b/mbEditorPro2.0/arcane/objects/common/SparseData.py index b22f6a8..023d8c7 100644 --- a/mbEditorPro2.0/arcane/objects/common/SparseData.py +++ b/mbEditorPro2.0/arcane/objects/common/SparseData.py @@ -85,7 +85,7 @@ class SparseData: elif sparse_type == SPARSE_REF_MERCHANT_DATA: stream.write_qword(value[0]) stream.write_qword(value[1]) - stream.write_qword(value[2]) + stream.write_dword(value[2]) elif sparse_type == SPARSE_REF_ARC_CACHE_ID: stream.write_qword(value)