From 0a52170bac7f607d8bb0221664a46311e0fe793b Mon Sep 17 00:00:00 2001 From: Thanatos Date: Sun, 14 Jul 2024 08:41:17 +0200 Subject: [PATCH 1/3] Support for new MEDS --- .../specific_patches/static_fixes.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/open_samus_returns_rando/specific_patches/static_fixes.py b/src/open_samus_returns_rando/specific_patches/static_fixes.py index df28e96..595e3f4 100644 --- a/src/open_samus_returns_rando/specific_patches/static_fixes.py +++ b/src/open_samus_returns_rando/specific_patches/static_fixes.py @@ -234,8 +234,8 @@ def fix_wrong_cc_actor_deletions(editor: PatcherEditor) -> None: "unk2": 0, "unk3": 0, "respawn_time": 0.0, - "name1": "sg_casca38", - "name2": "" + "model_name": "sg_casca38", + "vignette_name": "" }) BOMB_GROUP = Container( unk_bool=True, @@ -295,7 +295,7 @@ def fix_wrong_cc_actor_deletions(editor: PatcherEditor) -> None: new_group = copy.deepcopy(BOMB_GROUP) new_block = copy.deepcopy(CUSTOM_BLOCK) new_block["pos"] = pos - new_block["name1"] = sg_casca + new_block["model_name"] = sg_casca types: ListContainer = typing.cast(ListContainer, new_group["types"]) types[0]["blocks"].append(new_block) bmsbk.raw.block_groups.append(new_group) @@ -354,17 +354,17 @@ def disable_vignettes(editor: PatcherEditor) -> None: block["name2"] = "" bmssd = editor.get_file(f"maps/levels/c10_samus/{scenario_name}/{scenario_name}.bmssd", Bmssd) - sg_group = bmssd.raw["unk_structs_b"] + sg_group = bmssd.raw["scene_groups"] vignette_models = vignette_object["vignette_models"] for camera in vignette_object["cc"]: cc_name = "sg_SubArea_collision_camera_" + camera for sg in sg_group: # Check for the cc_name - if sg["str1"] == cc_name: - for cc_group in sg["struct3"]: - model_group = cc_group["struct5"] + if sg["sg_name"] == cc_name: + for cc_group in sg["model_groups"]: + model_group = cc_group["models"] for idx, model in reversed(list(enumerate(model_group))): - if any(model["int6"] == vignette for vignette in vignette_models): + if any(model["model_id"] == vignette for vignette in vignette_models): # Remove the model to prevent it from loading model_group.pop(idx) From 32bbaf658110bdc0240d68f17580bd75f15d92a8 Mon Sep 17 00:00:00 2001 From: dyceron Date: Tue, 23 Jul 2024 01:23:33 -0400 Subject: [PATCH 2/3] MEDS bump and template_bmsad_json change --- pyproject.toml | 2 +- .../files/templates/template_powerup_bmsad.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 9031c2d..b8d744e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ classifiers = [ ] requires-python = ">=3.10" dependencies = [ - "mercury-engine-data-structures>=0.30.0", + "mercury-engine-data-structures>=0.31.1", "jsonschema>=4.0.0", "ips.py>=0.1.2", ] diff --git a/src/open_samus_returns_rando/files/templates/template_powerup_bmsad.json b/src/open_samus_returns_rando/files/templates/template_powerup_bmsad.json index dde97bf..9443906 100644 --- a/src/open_samus_returns_rando/files/templates/template_powerup_bmsad.json +++ b/src/open_samus_returns_rando/files/templates/template_powerup_bmsad.json @@ -1,6 +1,6 @@ { "magic": "MSAD", - "version": 2883585, + "version": "1.44.0", "name": "randomizerpowerup", "header": { "model_name": "actors/items/itemsphere/models/itemsphere.bcmdl", From d6e63da3d25e453424374a9e883016ad5f8182a1 Mon Sep 17 00:00:00 2001 From: dyceron Date: Tue, 23 Jul 2024 01:38:10 -0400 Subject: [PATCH 3/3] construct typing --- pyproject.toml | 1 - src/open_samus_returns_rando/lua_editor.py | 2 +- .../misc_patches/collision_camera_table.py | 2 +- src/open_samus_returns_rando/misc_patches/elevators.py | 2 +- src/open_samus_returns_rando/misc_patches/lua_util.py | 2 +- src/open_samus_returns_rando/patcher_editor.py | 2 +- src/open_samus_returns_rando/pickups/custom_pickups.py | 2 +- src/open_samus_returns_rando/pickups/pickup.py | 2 +- .../specific_patches/chozo_seal_patches.py | 2 +- src/open_samus_returns_rando/specific_patches/door_patches.py | 2 +- src/open_samus_returns_rando/specific_patches/game_patches.py | 2 +- .../specific_patches/heat_room_patches.py | 2 +- .../specific_patches/metroid_patches.py | 2 +- src/open_samus_returns_rando/specific_patches/static_fixes.py | 2 +- 14 files changed, 13 insertions(+), 14 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b8d744e..f816f8c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,6 @@ max-complexity = 25 [project.optional-dependencies] typing = [ "types-jsonschema", - "construct-typing", "types-pyinstaller", "mypy" ] diff --git a/src/open_samus_returns_rando/lua_editor.py b/src/open_samus_returns_rando/lua_editor.py index 73910f4..a3d9631 100644 --- a/src/open_samus_returns_rando/lua_editor.py +++ b/src/open_samus_returns_rando/lua_editor.py @@ -1,7 +1,7 @@ import itertools from collections.abc import Iterable -from construct import Container +from construct import Container # type: ignore[import-untyped] from mercury_engine_data_structures.formats.lua import Lua from open_samus_returns_rando.constants import ALL_SCENARIOS diff --git a/src/open_samus_returns_rando/misc_patches/collision_camera_table.py b/src/open_samus_returns_rando/misc_patches/collision_camera_table.py index 549f9be..d0dceca 100644 --- a/src/open_samus_returns_rando/misc_patches/collision_camera_table.py +++ b/src/open_samus_returns_rando/misc_patches/collision_camera_table.py @@ -1,4 +1,4 @@ -from construct import Container +from construct import Container # type: ignore[import-untyped] from mercury_engine_data_structures.formats.lua import Lua from open_samus_returns_rando.misc_patches import lua_util from open_samus_returns_rando.patcher_editor import PatcherEditor diff --git a/src/open_samus_returns_rando/misc_patches/elevators.py b/src/open_samus_returns_rando/misc_patches/elevators.py index 21d10fd..2686928 100644 --- a/src/open_samus_returns_rando/misc_patches/elevators.py +++ b/src/open_samus_returns_rando/misc_patches/elevators.py @@ -1,4 +1,4 @@ -from construct import Container +from construct import Container # type: ignore[import-untyped] from mercury_engine_data_structures.formats.lua import Lua from open_samus_returns_rando.misc_patches import lua_util from open_samus_returns_rando.patcher_editor import PatcherEditor diff --git a/src/open_samus_returns_rando/misc_patches/lua_util.py b/src/open_samus_returns_rando/misc_patches/lua_util.py index 71040f4..5d1355c 100644 --- a/src/open_samus_returns_rando/misc_patches/lua_util.py +++ b/src/open_samus_returns_rando/misc_patches/lua_util.py @@ -1,7 +1,7 @@ import re import typing -from construct import Container +from construct import Container # type: ignore[import-untyped] from mercury_engine_data_structures.file_tree_editor import FileTreeEditor from mercury_engine_data_structures.formats.lua import Lua from open_samus_returns_rando.files import files_path, templates_path diff --git a/src/open_samus_returns_rando/patcher_editor.py b/src/open_samus_returns_rando/patcher_editor.py index 9df5808..e3e751f 100644 --- a/src/open_samus_returns_rando/patcher_editor.py +++ b/src/open_samus_returns_rando/patcher_editor.py @@ -3,7 +3,7 @@ import typing from pathlib import Path -from construct import Container +from construct import Container # type: ignore[import-untyped] from mercury_engine_data_structures.file_tree_editor import FileTreeEditor from mercury_engine_data_structures.formats import BaseResource, Bmsld from mercury_engine_data_structures.game_check import Game diff --git a/src/open_samus_returns_rando/pickups/custom_pickups.py b/src/open_samus_returns_rando/pickups/custom_pickups.py index 8d6307d..a28e35b 100644 --- a/src/open_samus_returns_rando/pickups/custom_pickups.py +++ b/src/open_samus_returns_rando/pickups/custom_pickups.py @@ -1,6 +1,6 @@ import typing -from construct import Container, ListContainer +from construct import Container, ListContainer # type: ignore[import-untyped] from mercury_engine_data_structures.formats import Bmsmsd from open_samus_returns_rando.patcher_editor import PatcherEditor diff --git a/src/open_samus_returns_rando/pickups/pickup.py b/src/open_samus_returns_rando/pickups/pickup.py index 91eebef..5b8dfc7 100644 --- a/src/open_samus_returns_rando/pickups/pickup.py +++ b/src/open_samus_returns_rando/pickups/pickup.py @@ -3,7 +3,7 @@ import json from enum import Enum -from construct import Container, ListContainer +from construct import Container, ListContainer # type: ignore[import-untyped] from mercury_engine_data_structures.formats import Bmsad, Bmsmsd, Lua from mercury_engine_data_structures.formats.bmsmsd import TileType from open_samus_returns_rando.constants import get_package_name diff --git a/src/open_samus_returns_rando/specific_patches/chozo_seal_patches.py b/src/open_samus_returns_rando/specific_patches/chozo_seal_patches.py index 9c1d0d5..ce0ca13 100644 --- a/src/open_samus_returns_rando/specific_patches/chozo_seal_patches.py +++ b/src/open_samus_returns_rando/specific_patches/chozo_seal_patches.py @@ -1,6 +1,6 @@ import typing -from construct import Container, ListContainer +from construct import Container, ListContainer # type: ignore[import-untyped] from mercury_engine_data_structures.formats import Bmsad, Bmsmsd from open_samus_returns_rando.patcher_editor import PatcherEditor diff --git a/src/open_samus_returns_rando/specific_patches/door_patches.py b/src/open_samus_returns_rando/specific_patches/door_patches.py index 8a61cc4..f5d1601 100644 --- a/src/open_samus_returns_rando/specific_patches/door_patches.py +++ b/src/open_samus_returns_rando/specific_patches/door_patches.py @@ -3,7 +3,7 @@ import typing from enum import Enum -from construct import Container, ListContainer +from construct import Container, ListContainer # type: ignore[import-untyped] from mercury_engine_data_structures.formats import Bmsad, Bmsld, Bmsmsd, Lua from mercury_engine_data_structures.formats.bmsmsd import IconPriority, TileBorders from open_samus_returns_rando.files import files_path diff --git a/src/open_samus_returns_rando/specific_patches/game_patches.py b/src/open_samus_returns_rando/specific_patches/game_patches.py index 323e7ca..65dc63d 100644 --- a/src/open_samus_returns_rando/specific_patches/game_patches.py +++ b/src/open_samus_returns_rando/specific_patches/game_patches.py @@ -1,4 +1,4 @@ -from construct import Container +from construct import Container # type: ignore[import-untyped] from mercury_engine_data_structures.formats import Bmsad, Bmsbk from open_samus_returns_rando.patcher_editor import PatcherEditor diff --git a/src/open_samus_returns_rando/specific_patches/heat_room_patches.py b/src/open_samus_returns_rando/specific_patches/heat_room_patches.py index d4402c4..73892a3 100644 --- a/src/open_samus_returns_rando/specific_patches/heat_room_patches.py +++ b/src/open_samus_returns_rando/specific_patches/heat_room_patches.py @@ -1,7 +1,7 @@ import copy import typing -from construct import Container, ListContainer +from construct import Container, ListContainer # type: ignore[import-untyped] from open_samus_returns_rando.patcher_editor import PatcherEditor diff --git a/src/open_samus_returns_rando/specific_patches/metroid_patches.py b/src/open_samus_returns_rando/specific_patches/metroid_patches.py index 7ed2ef7..0941517 100644 --- a/src/open_samus_returns_rando/specific_patches/metroid_patches.py +++ b/src/open_samus_returns_rando/specific_patches/metroid_patches.py @@ -1,6 +1,6 @@ import typing -from construct import ListContainer +from construct import ListContainer # type: ignore[import-untyped] from mercury_engine_data_structures.formats import Bmsad from open_samus_returns_rando.patcher_editor import PatcherEditor diff --git a/src/open_samus_returns_rando/specific_patches/static_fixes.py b/src/open_samus_returns_rando/specific_patches/static_fixes.py index 595e3f4..5f7aa1a 100644 --- a/src/open_samus_returns_rando/specific_patches/static_fixes.py +++ b/src/open_samus_returns_rando/specific_patches/static_fixes.py @@ -1,7 +1,7 @@ import copy import typing -from construct import Container, ListContainer +from construct import Container, ListContainer # type: ignore[import-untyped] from mercury_engine_data_structures.formats import Bmsad, Bmsbk, Bmscc, Bmssd, Bmtun from open_samus_returns_rando.patcher_editor import PatcherEditor