diff --git a/src/mars_patcher/mf/auto_generated_types.py b/src/mars_patcher/mf/auto_generated_types.py index 1a78eae..35f83bb 100644 --- a/src/mars_patcher/mf/auto_generated_types.py +++ b/src/mars_patcher/mf/auto_generated_types.py @@ -605,6 +605,9 @@ class Marsschemamf(typ.TypedDict, total=False): DisableDemos: bool = False """Disables title screen demos when true.""" + InstantUnmorph: bool = False + """When true, enables instant unmorphing via the SELECT button.""" + SkipDoorTransitions: bool = False """Makes all door transitions instant when true.""" diff --git a/src/mars_patcher/mf/data/schema.json b/src/mars_patcher/mf/data/schema.json index 8d44b26..09e842d 100644 --- a/src/mars_patcher/mf/data/schema.json +++ b/src/mars_patcher/mf/data/schema.json @@ -551,6 +551,11 @@ "description": "Disables title screen demos when true.", "default": false }, + "InstantUnmorph": { + "type": "boolean", + "description": "When true, enables instant unmorphing via the SELECT button.", + "default": false + }, "SkipDoorTransitions": { "type": "boolean", "description": "Makes all door transitions instant when true.", diff --git a/src/mars_patcher/mf/misc_patches.py b/src/mars_patcher/mf/misc_patches.py index 9ea6513..7cf18b6 100644 --- a/src/mars_patcher/mf/misc_patches.py +++ b/src/mars_patcher/mf/misc_patches.py @@ -91,3 +91,7 @@ def apply_reveal_unexplored_doors(rom: Rom) -> None: def apply_accessibility_patch(rom: Rom) -> None: apply_patch_in_asm_path(rom, "accessibility.ips") + + +def apply_instant_unmorph_patch(rom: Rom) -> None: + apply_patch_in_asm_path(rom, "instant_unmorph.ips") diff --git a/src/mars_patcher/mf/patcher.py b/src/mars_patcher/mf/patcher.py index fe61f17..2a2a812 100644 --- a/src/mars_patcher/mf/patcher.py +++ b/src/mars_patcher/mf/patcher.py @@ -17,6 +17,7 @@ from mars_patcher.mf.misc_patches import ( apply_accessibility_patch, apply_base_patch, + apply_instant_unmorph_patch, apply_pbs_without_bombs, apply_reveal_hidden_tiles, apply_reveal_unexplored_doors, @@ -134,6 +135,9 @@ def patch_mf( if patch_data.get("DisableDemos"): disable_demos(rom) + if patch_data.get("InstantUnmorph"): + apply_instant_unmorph_patch(rom) + if patch_data.get("SkipDoorTransitions"): skip_door_transitions(rom)