From 2008697d6cfa36c8140770d4b58cb36108bc8350 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Fri, 16 Oct 2026 12:42:57 -0400 Subject: [PATCH] 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 --- mbEditorPro2.0/arcane/objects/ArcCityAssetTemplate.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mbEditorPro2.0/arcane/objects/ArcCityAssetTemplate.py b/mbEditorPro2.0/arcane/objects/ArcCityAssetTemplate.py index f837119..0f33168 100644 --- a/mbEditorPro2.0/arcane/objects/ArcCityAssetTemplate.py +++ b/mbEditorPro2.0/arcane/objects/ArcCityAssetTemplate.py @@ -130,14 +130,17 @@ class ArcCityAssetTemplate(): self.template_energy_set = stream.read_dword() self.template_use_trigger = stream.read_string() + # When set, the client builds a trigger object named by the + # preceding string and loads its data from the stream. The + # trigger formats are not implemented; fail rather than desync. self.template_unknown_check1 = stream.read_bool() if self.template_unknown_check1: - pass + raise NotImplementedError('use trigger object data is not supported') self.template_loot_trigger = stream.read_string() self.template_unknown_check2 = stream.read_bool() if self.template_unknown_check2: - pass + raise NotImplementedError('loot trigger object data is not supported') self.has_embedded_template = stream.read_bool() if self.has_embedded_template: