Decode EBINIT signed boss classes

This commit is contained in:
gamer147
2026-07-23 12:02:23 -04:00
parent 051f33bd8b
commit 6b808c33e3
5 changed files with 33 additions and 9 deletions

View File

@@ -346,6 +346,10 @@ def test_field_semantics() -> None:
unit_semantics["0x7843e"] == "unit_power_tier",
"EBINIT's authoring-only power tier joins by semantic name",
)
check(
unit_semantics["0x72296"] == "unit_boss_class",
"EBINIT's signed boss class joins by semantic name",
)
extract_init.attach_semantic_fields(units, unit_semantics)
unit_by_id = {record["id"]: record for record in units}
check(
@@ -363,6 +367,13 @@ def test_field_semantics() -> None:
] == [2, 4, 6],
"Lily's three forms preserve the correlated 2/4/6 power tiers",
)
check(
[
unit_by_id[unit_id]["semantic_fields"]["unit_boss_class"]
for unit_id in (110, 115, 755, 756)
] == [1, -1, 4, -4],
"paired story and final-boss records preserve victory-target sign",
)
stages, meta = extract_init.extract_mixed(
sys4load.load(extract_init.resolve("STINIT"))