mirror of
https://github.com/zeldaret/mm.git
synced 2024-12-13 15:58:29 +00:00
133 lines
4.2 KiB
Python
133 lines
4.2 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
enumPrfix = "ENTR_SCENE_"
|
||
|
entranceScenes = [
|
||
|
"ENTR_SCENE_MAYORS_RESIDENCE",
|
||
|
"ENTR_SCENE_MAJORAS_LAIR",
|
||
|
"ENTR_SCENE_MAGIC_HAGS_POTION_SHOP",
|
||
|
"ENTR_SCENE_RANCH_HOUSE",
|
||
|
"ENTR_SCENE_HONEY_AND_DARLINGS_SHOP",
|
||
|
"ENTR_SCENE_BENEATH_THE_GRAVERYARD",
|
||
|
"ENTR_SCENE_SOUTHERN_SWAMP_CLEARED",
|
||
|
"ENTR_SCENE_CURIOSITY_SHOP",
|
||
|
"ENTR_SCENE_UNSET_08",
|
||
|
"ENTR_SCENE_UNSET_09",
|
||
|
"ENTR_SCENE_GROTTOS",
|
||
|
"ENTR_SCENE_UNSET_0B",
|
||
|
"ENTR_SCENE_UNSET_0C",
|
||
|
"ENTR_SCENE_UNSET_0D",
|
||
|
"ENTR_SCENE_CUTSCENE",
|
||
|
"ENTR_SCENE_UNSET_0F",
|
||
|
"ENTR_SCENE_IKANA_CANYON",
|
||
|
"ENTR_SCENE_PIRATES_FORTRESS",
|
||
|
"ENTR_SCENE_MILK_BAR",
|
||
|
"ENTR_SCENE_STONE_TOWER_TEMPLE",
|
||
|
"ENTR_SCENE_TREASURE_CHEST_SHOP",
|
||
|
"ENTR_SCENE_STONE_TOWER_TEMPLE_REVERSED",
|
||
|
"ENTR_SCENE_CLOCK_TOWER_ROOFTOP",
|
||
|
"ENTR_SCENE_OPENING_DUNGEON",
|
||
|
"ENTR_SCENE_WOODFALL_TEMPLE",
|
||
|
"ENTR_SCENE_PATH_TO_MOUNTAIN_VILLAGE",
|
||
|
"ENTR_SCENE_IKANA_CASTLE",
|
||
|
"ENTR_SCENE_DEKU_SCRUB_PLAYGROUND",
|
||
|
"ENTR_SCENE_ODOLWAS_LAIR",
|
||
|
"ENTR_SCENE_TOWN_SHOOTING_GALLERY",
|
||
|
"ENTR_SCENE_SNOWHEAD_TEMPLE",
|
||
|
"ENTR_SCENE_MILK_ROAD",
|
||
|
"ENTR_SCENE_PIRATES_FORTRESS_INTERIOR",
|
||
|
"ENTR_SCENE_SWAMP_SHOOTING_GALLERY",
|
||
|
"ENTR_SCENE_PINNACLE_ROCK",
|
||
|
"ENTR_SCENE_FAIRY_FOUNTAIN",
|
||
|
"ENTR_SCENE_SWAMP_SPIDER_HOUSE",
|
||
|
"ENTR_SCENE_OCEANSIDE_SPIDER_HOUSE",
|
||
|
"ENTR_SCENE_ASTRAL_OBSERVATORY",
|
||
|
"ENTR_SCENE_MOON_DEKU_TRIAL",
|
||
|
"ENTR_SCENE_DEKU_PALACE",
|
||
|
"ENTR_SCENE_MOUNTAIN_SMITHY",
|
||
|
"ENTR_SCENE_TERMINA_FIELD",
|
||
|
"ENTR_SCENE_POST_OFFICE",
|
||
|
"ENTR_SCENE_MARINE_RESEARCH_LAB",
|
||
|
"ENTR_SCENE_DAMPES_HOUSE",
|
||
|
"ENTR_SCENE_UNSET_2E",
|
||
|
"ENTR_SCENE_GORON_SHRINE",
|
||
|
"ENTR_SCENE_ZORA_HALL",
|
||
|
"ENTR_SCENE_TRADING_POST",
|
||
|
"ENTR_SCENE_ROMANI_RANCH",
|
||
|
"ENTR_SCENE_TWINMOLDS_LAIR",
|
||
|
"ENTR_SCENE_GREAT_BAY_COAST",
|
||
|
"ENTR_SCENE_ZORA_CAPE",
|
||
|
"ENTR_SCENE_LOTTERY_SHOP",
|
||
|
"ENTR_SCENE_UNSET_37",
|
||
|
"ENTR_SCENE_PIRATES_FORTRESS_EXTERIOR",
|
||
|
"ENTR_SCENE_FISHERMANS_HUT",
|
||
|
"ENTR_SCENE_GORON_SHOP",
|
||
|
"ENTR_SCENE_DEKU_KINGS_CHAMBER",
|
||
|
"ENTR_SCENE_MOON_GORON_TRIAL",
|
||
|
"ENTR_SCENE_ROAD_TO_SOUTHERN_SWAMP",
|
||
|
"ENTR_SCENE_DOGGY_RACETRACK",
|
||
|
"ENTR_SCENE_CUCCO_SHACK",
|
||
|
"ENTR_SCENE_IKANA_GRAVEYARD",
|
||
|
"ENTR_SCENE_GOHTS_LAIR",
|
||
|
"ENTR_SCENE_SOUTHERN_SWAMP_POISONED",
|
||
|
"ENTR_SCENE_WOODFALL",
|
||
|
"ENTR_SCENE_MOON_ZORA_TRIAL",
|
||
|
"ENTR_SCENE_GORON_VILLAGE_SPRING",
|
||
|
"ENTR_SCENE_GREAT_BAY_TEMPLE",
|
||
|
"ENTR_SCENE_WATERFALL_RAPIDS",
|
||
|
"ENTR_SCENE_BENEATH_THE_WELL",
|
||
|
"ENTR_SCENE_ZORA_HALL_ROOMS",
|
||
|
"ENTR_SCENE_GORON_VILLAGE_WINTER",
|
||
|
"ENTR_SCENE_GORON_GRAVERYARD",
|
||
|
"ENTR_SCENE_SAKONS_HIDEOUT",
|
||
|
"ENTR_SCENE_MOUNTAIN_VILLAGE_WINTER",
|
||
|
"ENTR_SCENE_GHOST_HUT",
|
||
|
"ENTR_SCENE_DEKU_SHRINE",
|
||
|
"ENTR_SCENE_ROAD_TO_IKANA",
|
||
|
"ENTR_SCENE_SWORDMANS_SCHOOL",
|
||
|
"ENTR_SCENE_MUSIC_BOX_HOUSE",
|
||
|
"ENTR_SCENE_IGOS_DU_IKANAS_LAIR",
|
||
|
"ENTR_SCENE_TOURIST_INFORMATION",
|
||
|
"ENTR_SCENE_STONE_TOWER",
|
||
|
"ENTR_SCENE_STONE_TOWER_INVERTED",
|
||
|
"ENTR_SCENE_MOUNTAIN_VILLAGE_SPRING",
|
||
|
"ENTR_SCENE_PATH_TO_SNOWHEAD",
|
||
|
"ENTR_SCENE_SNOWHEAD",
|
||
|
"ENTR_SCENE_PATH_TO_GORON_VILLAGE_WINTER",
|
||
|
"ENTR_SCENE_PATH_TO_GORON_VILLAGE_SPRING",
|
||
|
"ENTR_SCENE_GYORGS_LAIR",
|
||
|
"ENTR_SCENE_SECRET_SHRINE",
|
||
|
"ENTR_SCENE_STOCK_POT_INN",
|
||
|
"ENTR_SCENE_GREAT_BAY_CUTSCENE",
|
||
|
"ENTR_SCENE_CLOCK_TOWER_INTERIOR",
|
||
|
"ENTR_SCENE_WOODS_OF_MYSTERY",
|
||
|
"ENTR_SCENE_LOST_WOODS",
|
||
|
"ENTR_SCENE_MOON_LINK_TRIAL",
|
||
|
"ENTR_SCENE_THE_MOON",
|
||
|
"ENTR_SCENE_BOMB_SHOP",
|
||
|
"ENTR_SCENE_GIANTS_CHAMBER",
|
||
|
"ENTR_SCENE_GORMAN_TRACK",
|
||
|
"ENTR_SCENE_GORON_RACETRACK",
|
||
|
"ENTR_SCENE_EAST_CLOCK_TOWN",
|
||
|
"ENTR_SCENE_WEST_CLOCK_TOWN",
|
||
|
"ENTR_SCENE_NORTH_CLOCK_TOWN",
|
||
|
"ENTR_SCENE_SOUTH_CLOCK_TOWN",
|
||
|
"ENTR_SCENE_LAUNDRY_POOL",
|
||
|
"ENTR_SCENE_MAX"
|
||
|
]
|
||
|
|
||
|
def macro(num):
|
||
|
sceneIndex = (num >> 9) & 0x7F
|
||
|
spawnIndex = (num >> 4) & 0x1F
|
||
|
return f'ENTRANCE({entranceScenes[sceneIndex][len(enumPrfix):]}, {spawnIndex})'
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
import sys
|
||
|
|
||
|
if len(sys.argv) < 2:
|
||
|
print(f'{sys.argv[0]} nextEntrance', file=sys.stderr)
|
||
|
exit(1)
|
||
|
|
||
|
nextEntrance = sys.argv[1]
|
||
|
nextEntrance = int(nextEntrance, 16 if nextEntrance.startswith("0x") else 10)
|
||
|
print(macro(nextEntrance))
|