Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
647 changes: 0 additions & 647 deletions src/mars_patcher/auto_generated_types.py

This file was deleted.

2 changes: 1 addition & 1 deletion src/mars_patcher/common_types.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import Annotated, TypeAlias

from mars_patcher.auto_generated_types import Areaid, Typeu8
from mars_patcher.mf.auto_generated_types import Areaid, Typeu8

AreaId: TypeAlias = Areaid
RoomId: TypeAlias = Typeu8
Expand Down
16 changes: 8 additions & 8 deletions src/mars_patcher/connections.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
from collections.abc import Sequence

import mars_patcher.constants.game_data as gd
from mars_patcher.auto_generated_types import (
MarsschemaElevatorconnections,
MarsschemaSectorshortcuts,
Validelevatorbottoms,
Validelevatortops,
)
from mars_patcher.constants.main_hub_numbers import (
MAIN_HUB_CENTER_ROOM,
MAIN_HUB_CENTER_SMALL_NUM_COORDS_1,
Expand All @@ -21,6 +15,12 @@
MAIN_HUB_TILEMAP_ADDR,
)
from mars_patcher.data import get_data_path
from mars_patcher.mf.auto_generated_types import (
MarsschemamfElevatorconnections,
MarsschemamfSectorshortcuts,
Validelevatorbottoms,
Validelevatortops,
)
from mars_patcher.minimap import Minimap
from mars_patcher.rom import Game, Rom
from mars_patcher.room_entry import BlockLayer, RoomEntry
Expand Down Expand Up @@ -74,7 +74,7 @@ def __init__(self, rom: Rom):
self.area_conns_addr = gd.area_connections(rom)
self.area_conns_count = gd.area_connections_count(rom)

def set_elevator_connections(self, data: MarsschemaElevatorconnections) -> None:
def set_elevator_connections(self, data: MarsschemamfElevatorconnections) -> None:
# Repoint area connections data
size = self.area_conns_count * 3
# Reserve space for 8 more area connections
Expand All @@ -97,7 +97,7 @@ def set_elevator_connections(self, data: MarsschemaElevatorconnections) -> None:
# Remove area numbers from Main Deck minimap
self.remove_main_deck_minimap_area_nums()

def set_shortcut_connections(self, data: MarsschemaSectorshortcuts) -> None:
def set_shortcut_connections(self, data: MarsschemamfSectorshortcuts) -> None:
for i, dst_area in enumerate(data["LeftAreas"]):
self.connect_shortcuts(i + 1, dst_area, True)
for i, dst_area in enumerate(data["RightAreas"]):
Expand Down
6 changes: 3 additions & 3 deletions src/mars_patcher/credits.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from mars_patcher.auto_generated_types import MarsschemaCreditstextItem
from mars_patcher.constants.credits_lines import (
FUSION_STAFF_LINES,
LINE_TYPE_HEIGHTS,
Expand All @@ -8,6 +7,7 @@
TEXT_LINE_TYPES,
LineType,
)
from mars_patcher.mf.auto_generated_types import MarsschemamfCreditstextItem
from mars_patcher.rom import Rom

CREDITS_ADDR = 0x74B0B0
Expand Down Expand Up @@ -38,15 +38,15 @@ def __init__(
self.centered = centered

@classmethod
def from_json(cls, data: MarsschemaCreditstextItem) -> "CreditsLine":
def from_json(cls, data: MarsschemamfCreditstextItem) -> "CreditsLine":
line_type = cls.LINE_TYPE_ENUMS[data["LineType"]]
blank_lines = data.get("BlankLines", 0)
text = data.get("Text")
centered = data.get("Centered", True)
return CreditsLine(line_type, blank_lines, text, centered)


def write_credits(rom: Rom, data: list[MarsschemaCreditstextItem]) -> None:
def write_credits(rom: Rom, data: list[MarsschemamfCreditstextItem]) -> None:
writer = CreditsWriter(rom)
# Write MARS credits
lines = [CreditsLine(*line) for line in MARS_CREDITS]
Expand Down
6 changes: 3 additions & 3 deletions src/mars_patcher/door_locks.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from enum import Enum
from typing import Annotated, TypedDict

from mars_patcher.auto_generated_types import MarsschemaDoorlocksItem
from mars_patcher.common_types import AreaId, AreaRoomPair, RoomId
from mars_patcher.constants.game_data import (
area_doors_ptrs,
Expand All @@ -16,6 +15,7 @@
ColoredDoor,
Edge,
)
from mars_patcher.mf.auto_generated_types import MarsschemamfDoorlocksItem
from mars_patcher.minimap import Minimap
from mars_patcher.rom import Rom
from mars_patcher.room_entry import BlockLayer, RoomEntry
Expand Down Expand Up @@ -85,7 +85,7 @@ class MinimapLockChanges(TypedDict, total=False):
# TODO:
# - Optimize by only loading rooms that contain doors to modify
# - Split into more than one function for readability
def set_door_locks(rom: Rom, data: list[MarsschemaDoorlocksItem]) -> None:
def set_door_locks(rom: Rom, data: list[MarsschemamfDoorlocksItem]) -> None:
door_locks = parse_door_lock_data(data)

# Go through all doors in game in order
Expand Down Expand Up @@ -235,7 +235,7 @@ def factory() -> dict:
change_minimap_tiles(rom, minimap_changes)


def parse_door_lock_data(data: list[MarsschemaDoorlocksItem]) -> dict[AreaRoomPair, HatchLock]:
def parse_door_lock_data(data: list[MarsschemamfDoorlocksItem]) -> dict[AreaRoomPair, HatchLock]:
"""Returns a dictionary of `(AreaID, RoomID): HatchLock` from the input data."""
door_locks: dict[AreaRoomPair, HatchLock] = {}
for entry in data:
Expand Down
4 changes: 2 additions & 2 deletions src/mars_patcher/item_patcher.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from mars_patcher.auto_generated_types import MarsschemaTankincrements
from mars_patcher.constants.reserved_space import ReservedConstants
from mars_patcher.locations import (
ItemMessages,
Expand All @@ -7,6 +6,7 @@
ItemType,
LocationSettings,
)
from mars_patcher.mf.auto_generated_types import MarsschemamfTankincrements
from mars_patcher.rom import Rom
from mars_patcher.room_entry import RoomEntry
from mars_patcher.text import Language, MessageType, encode_text
Expand Down Expand Up @@ -235,7 +235,7 @@ def set_required_metroid_count(rom: Rom, count: int) -> None:
rom.write_8(rom.read_ptr(REQUIRED_METROID_COUNT_ADDR) + 1, count)


def set_tank_increments(rom: Rom, data: MarsschemaTankincrements) -> None:
def set_tank_increments(rom: Rom, data: MarsschemamfTankincrements) -> None:
rom.write_16(rom.read_ptr(TANK_INC_ADDR), data["MissileTank"])
rom.write_16(rom.read_ptr(TANK_INC_ADDR) + 2, data["EnergyTank"])
rom.write_16(rom.read_ptr(TANK_INC_ADDR) + 4, data["PowerBombTank"])
Expand Down
4 changes: 2 additions & 2 deletions src/mars_patcher/locations.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
from mars_patcher.text import Language

if TYPE_CHECKING:
from mars_patcher.auto_generated_types import Itemmessages, MarsschemaLocations
from mars_patcher.mf.auto_generated_types import Itemmessages, MarsschemamfLocations


class Location:
Expand Down Expand Up @@ -172,7 +172,7 @@ def initialize(cls) -> LocationSettings:

return LocationSettings(major_locs, minor_locs)

def set_assignments(self, data: MarsschemaLocations) -> None:
def set_assignments(self, data: MarsschemamfLocations) -> None:
for maj_loc_entry in data[KEY_MAJOR_LOCS]:
# Get source and item
source = SOURCE_ENUMS[maj_loc_entry[KEY_SOURCE]]
Expand Down
6 changes: 3 additions & 3 deletions src/mars_patcher/navigation_text.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from mars_patcher.text import Language, MessageType, encode_text

if TYPE_CHECKING:
from mars_patcher.auto_generated_types import Hintlocks, MarsschemaNavstationlocksKey
from mars_patcher.mf.auto_generated_types import Hintlocks, MarsschemamfNavstationlocksKey
from mars_patcher.rom import Rom


Expand Down Expand Up @@ -55,7 +55,7 @@ class NavigationText:
"Spanish": Language.SPANISH,
}

NAV_ROOM_ENUMS: dict[MarsschemaNavstationlocksKey, NavRoom] = {
NAV_ROOM_ENUMS: dict[MarsschemamfNavstationlocksKey, NavRoom] = {
"MainDeckWest": NavRoom.MAIN_DECK_WEST,
"MainDeckEast": NavRoom.MAIN_DECK_EAST,
"OperationsDeck": NavRoom.OPERATIONS_DECK,
Expand Down Expand Up @@ -123,7 +123,7 @@ def write(self, rom: Rom) -> None:

@classmethod
def apply_hint_security(
cls, rom: Rom, locks: dict[MarsschemaNavstationlocksKey, Hintlocks]
cls, rom: Rom, locks: dict[MarsschemamfNavstationlocksKey, Hintlocks]
) -> None:
"""
Applies an optional security level requirement to use Navigation Stations
Expand Down
18 changes: 9 additions & 9 deletions src/mars_patcher/random_palettes.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
from enum import Enum

import mars_patcher.constants.game_data as gd
from mars_patcher.auto_generated_types import (
MarsschemaPalettes,
MarsschemaPalettesColorspace,
MarsschemaPalettesRandomize,
)
from mars_patcher.constants.palettes import (
ENEMY_GROUPS,
EXCLUDED_ENEMIES,
MF_TILESET_ALT_PAL_ROWS,
NETTORI_EXTRA_PALS,
TILESET_ANIM_PALS,
)
from mars_patcher.mf.auto_generated_types import (
MarsschemamfPalettes,
MarsschemamfPalettesColorspace,
MarsschemamfPalettesRandomize,
)
from mars_patcher.palette import ColorChange, Palette, SineWave
from mars_patcher.rom import Game, Rom

Expand All @@ -37,18 +37,18 @@ def __init__(
self,
seed: int,
pal_types: dict[PaletteType, tuple[int, int]], # TODO: change this tuple(int, int)
color_space: MarsschemaPalettesColorspace,
color_space: MarsschemamfPalettesColorspace,
symmetric: bool,
extra_variation: bool,
):
self.seed = seed
self.pal_types = pal_types
self.color_space: MarsschemaPalettesColorspace = color_space
self.color_space: MarsschemamfPalettesColorspace = color_space
self.symmetric = symmetric
self.extra_variation = extra_variation

@classmethod
def from_json(cls, data: MarsschemaPalettes) -> "PaletteSettings":
def from_json(cls, data: MarsschemamfPalettes) -> "PaletteSettings":
seed = data.get("Seed", random.randint(0, 2**31 - 1))
random.seed(seed)
pal_types = {}
Expand All @@ -62,7 +62,7 @@ def from_json(cls, data: MarsschemaPalettes) -> "PaletteSettings":
return cls(seed, pal_types, color_space, symmetric, True)

@classmethod
def get_hue_range(cls, data: MarsschemaPalettesRandomize) -> tuple[int, int]:
def get_hue_range(cls, data: MarsschemamfPalettesRandomize) -> tuple[int, int]:
hue_min = data.get("HueMin")
hue_max = data.get("HueMax")
if hue_min is None or hue_max is None:
Expand Down
4 changes: 2 additions & 2 deletions src/mars_patcher/room_names.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from mars_patcher.auto_generated_types import Areaid, MarsschemaRoomnamesItem, Typeu8
from mars_patcher.constants.reserved_space import ReservedConstants
from mars_patcher.mf.auto_generated_types import Areaid, MarsschemamfRoomnamesItem, Typeu8
from mars_patcher.rom import Rom
from mars_patcher.text import MessageType, encode_text

Expand All @@ -11,7 +11,7 @@
# - A list that contains pointers to area room names
# - Area Room names are indexed by room id. This means some entries
# are never used, but this allows for easy lookup
def write_room_names(rom: Rom, data: list[MarsschemaRoomnamesItem]) -> None:
def write_room_names(rom: Rom, data: list[MarsschemamfRoomnamesItem]) -> None:
seen_rooms: set[tuple[Areaid, Typeu8]] = set()
for room_name_entry in data:
area_id = room_name_entry["Area"]
Expand Down
9 changes: 6 additions & 3 deletions src/mars_patcher/starting.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
from mars_patcher.auto_generated_types import MarsschemaStartingitems, MarsschemaStartinglocation
from mars_patcher.constants.game_data import area_doors_ptrs, spriteset_ptrs, starting_equipment
from mars_patcher.constants.items import BEAM_FLAGS, MISSILE_BOMB_FLAGS, SUIT_MISC_FLAGS
from mars_patcher.constants.reserved_space import ReservedConstants
from mars_patcher.mf.auto_generated_types import (
MarsschemamfStartingitems,
MarsschemamfStartinglocation,
)
from mars_patcher.rom import Rom
from mars_patcher.room_entry import RoomEntry

# Keep in sync with base patch
STARTING_LOC_ADDR = ReservedConstants.STARTING_LOCATION_ADDR


def set_starting_location(rom: Rom, data: MarsschemaStartinglocation) -> None:
def set_starting_location(rom: Rom, data: MarsschemamfStartinglocation) -> None:
area = data["Area"]
room = data["Room"]
# Don't do anything for area 0 room 0
Expand Down Expand Up @@ -82,7 +85,7 @@ def find_save_pad_position(rom: Rom, area: int, room: int) -> tuple[int, int] |
return None


def set_starting_items(rom: Rom, data: MarsschemaStartingitems) -> None:
def set_starting_items(rom: Rom, data: MarsschemamfStartingitems) -> None:
def get_ability_flags(ability_flags: dict[str, int]) -> int:
status = 0
for ability, flag in ability_flags.items():
Expand Down
8 changes: 4 additions & 4 deletions src/mars_patcher/titlescreen_text.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from mars_patcher.auto_generated_types import MarsschemaTitletextItem
from mars_patcher.constants.reserved_space import ReservedConstants
from mars_patcher.mf.auto_generated_types import MarsschemamfTitletextItem
from mars_patcher.rom import Rom

TITLE_TEXT_POINTER_ADDR = ReservedConstants.TITLESCREEN_TEXT_POINTERS_POINTER_ADDR
Expand All @@ -13,21 +13,21 @@ def __init__(self, text: str | None = None, line_num: int | None = None):
self.text = text

@classmethod
def from_json(cls, data: MarsschemaTitletextItem) -> "TitleScreenText":
def from_json(cls, data: MarsschemamfTitletextItem) -> "TitleScreenText":
text = data.get("Text", None)
line_num = data.get("LineNum", None)
return TitleScreenText(text, line_num)


def write_title_text(rom: Rom, lines: list[MarsschemaTitletextItem]) -> None:
def write_title_text(rom: Rom, lines: list[MarsschemamfTitletextItem]) -> None:
if len(lines) > MAX_LINES:
raise ValueError("Maximum number of title-screen lines exceeded.")

for line in lines:
write_title_text_line(rom, line)


def write_title_text_line(rom: Rom, line: MarsschemaTitletextItem) -> None:
def write_title_text_line(rom: Rom, line: MarsschemamfTitletextItem) -> None:
if len(line["Text"]) > 30:
raise ValueError(f'String for title-screen text exceeds 30 characters.\n"{line["Text"]}"')
text_pointers = rom.read_ptr(ReservedConstants.TITLESCREEN_TEXT_POINTERS_POINTER_ADDR)
Expand Down