From 58a3b7018b8fad324e25a3537f3ae66b6596227a Mon Sep 17 00:00:00 2001 From: TheLX5 Date: Wed, 18 Dec 2024 23:25:58 -0700 Subject: [PATCH] initial warp/transition shuffle --- worlds/smw/CHANGELOG.md | 13 +- worlds/smw/Levels.py | 89 ++-- worlds/smw/Names/LocationName.py | 28 ++ worlds/smw/Options.py | 27 ++ worlds/smw/Regions.py | 134 ++++- worlds/smw/Rom.py | 60 ++- worlds/smw/Teleports.py | 565 ++++++++++++++++++++++ worlds/smw/__init__.py | 50 +- worlds/smw/data/smw_basepatch.bsdiff4 | Bin 34882 -> 34793 bytes worlds/smw/data/smw_sa1_basepatch.bsdiff4 | Bin 66455 -> 67259 bytes worlds/smw/data/sprite_graphics.bsdiff4 | Bin 945 -> 1043 bytes 11 files changed, 884 insertions(+), 82 deletions(-) create mode 100644 worlds/smw/Teleports.py diff --git a/worlds/smw/CHANGELOG.md b/worlds/smw/CHANGELOG.md index 3ea1f821e3d2..b8c991b30c5e 100644 --- a/worlds/smw/CHANGELOG.md +++ b/worlds/smw/CHANGELOG.md @@ -5,7 +5,10 @@ ### Features: -- New inventory system that allows you to get a powerup before entering a level +- Map teleport and transition shuffle + - Shuffle pipe and star destinations + - Shuffle map transitions +- New inventory system that allows you to use a powerup before entering a level - New Items - Inventory Mushroom - Inventory Fire Flower @@ -31,6 +34,10 @@ - `location_visual_indicator` - `block_collect_behavior` - `inventory_fill_percentage` + - `persistent_trap_behavior` + - `map_teleport_shuffle` + - `map_transition_shuffle` + ### Quality of Life @@ -38,6 +45,10 @@ - Current item box contents are displayed during the map gameplay - Added location groups +### Bug Fixes: + +- Several logic tweaks/fixes +- Some levels received adjustments to their vertical scroll setting diff --git a/worlds/smw/Levels.py b/worlds/smw/Levels.py index 7aa9428b9110..d5323fc8ce3f 100644 --- a/worlds/smw/Levels.py +++ b/worlds/smw/Levels.py @@ -1,7 +1,8 @@ - -from worlds.AutoWorld import World from .Names import LocationName +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from . import SMWWorld, SMWProcedurePatch class BowserRoom(): name: str @@ -207,29 +208,29 @@ def __init__(self, levelName: str, levelIDAddress: int, eventIDValue: int, exit1 level_info_dict = { 0x28: SMWLevel(LocationName.yoshis_house, 0x37A76, 0x00), - 0x29: SMWLevel(LocationName.yoshis_island_1_region, 0x37A83, 0x01, SMWPath(0x08, 0x14, 0x04)), + 0x29: SMWLevel(LocationName.yoshis_island_1_region, 0x37A83, 0x01, SMWPath(0x08, 0x70, 0x04)), 0x14: SMWLevel(LocationName.yellow_switch_palace, 0x37812, 0x02), 0x2A: SMWLevel(LocationName.yoshis_island_2_region, 0x37A89, 0x03, SMWPath(0x08, 0x27, 0x04)), 0x27: SMWLevel(LocationName.yoshis_island_3_region, 0x37A69, 0x04, SMWPath(0x01, 0x26, 0x04)), 0x26: SMWLevel(LocationName.yoshis_island_4_region, 0x37A4B, 0x05, SMWPath(0x08, 0x25, 0x01)), - 0x25: SMWLevel(LocationName.yoshis_island_castle_region, 0x37A29, 0x06, SMWPath(0x08, 0x15, 0x04)), + 0x25: SMWLevel(LocationName.yoshis_island_castle_region, 0x37A29, 0x06, SMWPath(0x08, 0x72, 0x04)), 0x15: SMWLevel(LocationName.donut_plains_1_region, 0x37815, 0x07, SMWPath(0x02, 0x09, 0x04), SMWPath(0x08, 0x0A, 0x04)), 0x09: SMWLevel(LocationName.donut_plains_2_region, 0x376D3, 0x09, SMWPath(0x08, 0x04, 0x02), SMWPath(0x02, 0x08, 0x01)), 0x0A: SMWLevel(LocationName.donut_secret_1_region, 0x376E5, 0x10, SMWPath(0x08, 0x04, 0x04), SMWPath(0x01, 0x13, 0x08)), 0x08: SMWLevel(LocationName.green_switch_palace, 0x376D1, 0x28), 0x04: SMWLevel(LocationName.donut_ghost_house_region, 0x376A5, 0x0B, SMWPath(0x08, 0x03, 0x04), SMWPath(0x01, 0x05, 0x02)), - 0x13: SMWLevel(LocationName.donut_secret_house_region, 0x37807, 0x12, SMWPath(0x01, 0x2F, 0x04), SMWPath(0x04, 0x16, 0x08)), # SMW_TODO: Check this wrt pipe behavior + 0x13: SMWLevel(LocationName.donut_secret_house_region, 0x37807, 0x12, SMWPath(0x01, 0x60, 0x04), SMWPath(0x04, 0x16, 0x08)), # SMW_TODO: Check this wrt pipe behavior 0x05: SMWLevel(LocationName.donut_plains_3_region, 0x376A9, 0x0D, SMWPath(0x01, 0x06, 0x08)), 0x06: SMWLevel(LocationName.donut_plains_4_region, 0x376CB, 0x0E, SMWPath(0x01, 0x07, 0x02)), - 0x2F: SMWLevel(LocationName.donut_secret_2_region, 0x37B10, 0x14, SMWPath(0x01, 0x05, 0x04)), - 0x07: SMWLevel(LocationName.donut_plains_castle_region, 0x376CD, 0x0F, SMWPath(0x08, 0x3E, 0x04)), + 0x2F: SMWLevel(LocationName.donut_secret_2_region, 0x37B10, 0x14, SMWPath(0x01, 0x62, 0x04)), + 0x07: SMWLevel(LocationName.donut_plains_castle_region, 0x376CD, 0x0F, SMWPath(0x08, 0x74, 0x04)), 0x03: SMWLevel(LocationName.donut_plains_top_secret, 0x37685, 0xFF), 0x16: SMWLevel(LocationName.donut_plains_star_road, 0x37827, 0xFF), 0x3E: SMWLevel(LocationName.vanilla_dome_1_region, 0x37C25, 0x15, SMWPath(0x01, 0x3C, 0x04), SMWPath(0x02, 0x2D, 0x04)), 0x3C: SMWLevel(LocationName.vanilla_dome_2_region, 0x37C08, 0x17, SMWPath(0x08, 0x2B, 0x04), SMWPath(0x01, 0x3F, 0x08)), - 0x2D: SMWLevel(LocationName.vanilla_secret_1_region, 0x37AE3, 0x1D, SMWPath(0x08, 0x01, 0x02), SMWPath(0x02, 0x2C, 0x01)), + 0x2D: SMWLevel(LocationName.vanilla_secret_1_region, 0x37AE3, 0x1D, SMWPath(0x08, 0x66, 0x02), SMWPath(0x02, 0x2C, 0x01)), 0x2B: SMWLevel(LocationName.vanilla_ghost_house_region, 0x37AC8, 0x19, SMWPath(0x01, 0x2E, 0x08)), 0x2E: SMWLevel(LocationName.vanilla_dome_3_region, 0x37AEC, 0x1A, SMWPath(0x04, 0x3D, 0x08)), 0x3D: SMWLevel(LocationName.vanilla_dome_4_region, 0x37C0C, 0x1B, SMWPath(0x04, 0x40, 0x08)), @@ -237,7 +238,7 @@ def __init__(self, levelName: str, levelIDAddress: int, eventIDValue: int, exit1 0x01: SMWLevel(LocationName.vanilla_secret_2_region, 0x3763C, 0x1F, SMWPath(0x01, 0x02, 0x02)), 0x02: SMWLevel(LocationName.vanilla_secret_3_region, 0x3763E, 0x20, SMWPath(0x01, 0x0B, 0x02)), 0x0B: SMWLevel(LocationName.vanilla_fortress_region, 0x37730, 0x21, SMWPath(0x01, 0x0C, 0x02)), - 0x40: SMWLevel(LocationName.vanilla_dome_castle_region, 0x37C2C, 0x1C, SMWPath(0x04, 0x0F, 0x02)), + 0x40: SMWLevel(LocationName.vanilla_dome_castle_region, 0x37C2C, 0x1C, SMWPath(0x04, 0x64, 0x02)), 0x2C: SMWLevel(LocationName.vanilla_dome_star_road, 0x37AE0, 0xFF), 0x0C: SMWLevel(LocationName.butter_bridge_1_region, 0x37734, 0x22, SMWPath(0x01, 0x0D, 0x02)), @@ -245,31 +246,31 @@ def __init__(self, levelName: str, levelIDAddress: int, eventIDValue: int, exit1 0x0F: SMWLevel(LocationName.cheese_bridge_region, 0x37754, 0x25, SMWPath(0x01, 0x10, 0x02), SMWPath(0x04, 0x11, 0x08)), 0x11: SMWLevel(LocationName.soda_lake_region, 0x37784, 0x60, SMWPath(0x04, 0x12, 0x04)), 0x10: SMWLevel(LocationName.cookie_mountain_region, 0x37757, 0x27, SMWPath(0x04, 0x0E, 0x04)), - 0x0E: SMWLevel(LocationName.twin_bridges_castle_region, 0x3773A, 0x24, SMWPath(0x01, 0x42, 0x08)), + 0x0E: SMWLevel(LocationName.twin_bridges_castle_region, 0x3773A, 0x24, SMWPath(0x01, 0x76, 0x08)), 0x12: SMWLevel(LocationName.twin_bridges_star_road, 0x377F0, 0xFF), 0x42: SMWLevel(LocationName.forest_of_illusion_1_region, 0x37C78, 0x2A, SMWPath(0x01, 0x44, 0x08), SMWPath(0x02, 0x41, 0x01)), 0x44: SMWLevel(LocationName.forest_of_illusion_2_region, 0x37CAA, 0x2C, SMWPath(0x04, 0x47, 0x08), SMWPath(0x01, 0x45, 0x02)), - 0x47: SMWLevel(LocationName.forest_of_illusion_3_region, 0x37CC8, 0x2E, SMWPath(0x02, 0x41, 0x04), SMWPath(0x04, 0x20, 0x01)), + 0x47: SMWLevel(LocationName.forest_of_illusion_3_region, 0x37CC8, 0x2E, SMWPath(0x02, 0x41, 0x04), SMWPath(0x04, 0x78, 0x01)), 0x43: SMWLevel(LocationName.forest_of_illusion_4_region, 0x37CA4, 0x32, SMWPath(0x01, 0x44, 0x02), SMWPath(0x04, 0x46, 0x08)), 0x41: SMWLevel(LocationName.forest_ghost_house_region, 0x37C76, 0x30, SMWPath(0x01, 0x42, 0x02), SMWPath(0x02, 0x43, 0x08)), - 0x46: SMWLevel(LocationName.forest_secret_region, 0x37CC4, 0x34, SMWPath(0x04, 0x1F, 0x01)), + 0x46: SMWLevel(LocationName.forest_secret_region, 0x37CC4, 0x34, SMWPath(0x04, 0x7A, 0x01)), 0x45: SMWLevel(LocationName.blue_switch_palace, 0x37CAC, 0x37), 0x1F: SMWLevel(LocationName.forest_fortress_region, 0x37906, 0x35, SMWPath(0x02, 0x1E, 0x01)), 0x20: SMWLevel(LocationName.forest_castle_region, 0x37928, 0x61, SMWPath(0x04, 0x22, 0x08)), 0x1E: SMWLevel(LocationName.forest_star_road, 0x37904, 0x36), 0x22: SMWLevel(LocationName.chocolate_island_1_region, 0x37968, 0x62, SMWPath(0x02, 0x21, 0x01)), - 0x24: SMWLevel(LocationName.chocolate_island_2_region, 0x379B5, 0x46, SMWPath(0x02, 0x23, 0x01), SMWPath(0x04, 0x3B, 0x01)), + 0x24: SMWLevel(LocationName.chocolate_island_2_region, 0x379B5, 0x46, SMWPath(0x02, 0x23, 0x01), SMWPath(0x04, 0x68, 0x01)), 0x23: SMWLevel(LocationName.chocolate_island_3_region, 0x379B3, 0x48, SMWPath(0x04, 0x23, 0x08), SMWPath(0x02, 0x1B, 0x01)), 0x1D: SMWLevel(LocationName.chocolate_island_4_region, 0x378DF, 0x4B, SMWPath(0x02, 0x1C, 0x01)), 0x1C: SMWLevel(LocationName.chocolate_island_5_region, 0x378DC, 0x4C, SMWPath(0x08, 0x1A, 0x04)), 0x21: SMWLevel(LocationName.chocolate_ghost_house_region, 0x37965, 0x63, SMWPath(0x04, 0x24, 0x08)), 0x1B: SMWLevel(LocationName.chocolate_fortress_region, 0x378BF, 0x4A, SMWPath(0x04, 0x1D, 0x08)), - 0x3B: SMWLevel(LocationName.chocolate_secret_region, 0x37B97, 0x4F, SMWPath(0x02, 0x1A, 0x02)), + 0x3B: SMWLevel(LocationName.chocolate_secret_region, 0x37B97, 0x4F, SMWPath(0x02, 0x6A, 0x02)), 0x1A: SMWLevel(LocationName.chocolate_castle_region, 0x378BC, 0x4D, SMWPath(0x08, 0x18, 0x02)), - 0x18: SMWLevel(LocationName.sunken_ghost_ship_region, 0x3787E, 0x4E, SMWPath(0x08, 0x3A, 0x01)), + 0x18: SMWLevel(LocationName.sunken_ghost_ship_region, 0x3787E, 0x4E, SMWPath(0x08, 0x7C, 0x01)), 0x3A: SMWLevel(LocationName.valley_of_bowser_1_region, 0x37B7B, 0x38, SMWPath(0x02, 0x39, 0x01)), 0x39: SMWLevel(LocationName.valley_of_bowser_2_region, 0x37B79, 0x39, SMWPath(0x02, 0x38, 0x01), SMWPath(0x08, 0x35, 0x04)), 0x37: SMWLevel(LocationName.valley_of_bowser_3_region, 0x37B74, 0x3D, SMWPath(0x08, 0x33, 0x04)), @@ -305,6 +306,34 @@ def __init__(self, levelName: str, levelIDAddress: int, eventIDValue: int, exit1 0x4A: SMWLevel(LocationName.special_zone_7_region, 0x37D16, 0x6B, SMWPath(0x02, 0x49, 0x01)), 0x49: SMWLevel(LocationName.special_zone_8_region, 0x37D13, 0x6C, SMWPath(0x02, 0x48, 0x01)), 0x48: SMWLevel(LocationName.special_complete, 0x37D11, 0x6D), + + 0x60: SMWLevel(LocationName.donut_plains_entrance_pipe, 0xFFFFFF, 0xFF), + 0x61: SMWLevel(LocationName.valley_donut_exit_pipe, 0xFFFFFF, 0xFF), + 0x62: SMWLevel(LocationName.valley_donut_entrance_pipe, 0xFFFFFF, 0xFF), + 0x63: SMWLevel(LocationName.donut_plains_exit_pipe, 0xFFFFFF, 0xFF), + 0x64: SMWLevel(LocationName.vanilla_dome_bottom_entrance_pipe, 0xFFFFFF, 0xFF), + 0x65: SMWLevel(LocationName.twin_bridges_exit_pipe, 0xFFFFFF, 0xFF), + 0x66: SMWLevel(LocationName.vanilla_dome_top_entrance_pipe, 0xFFFFFF, 0xFF), + 0x67: SMWLevel(LocationName.vanilla_dome_top_exit_pipe, 0xFFFFFF, 0xFF), + 0x68: SMWLevel(LocationName.chocolate_island_entrance_pipe, 0xFFFFFF, 0xFF), + 0x69: SMWLevel(LocationName.valley_chocolate_exit_pipe, 0xFFFFFF, 0xFF), + 0x6A: SMWLevel(LocationName.valley_chocolate_entrance_pipe, 0xFFFFFF, 0xFF), + 0x6B: SMWLevel(LocationName.chocolate_island_exit_pipe, 0xFFFFFF, 0xFF), + + 0x70: SMWLevel(LocationName.yi_to_ysp, 0xFFFFFF, 0xFF), + 0x71: SMWLevel(LocationName.ysp_from_yi, 0xFFFFFF, 0xFF), + 0x72: SMWLevel(LocationName.yi_to_dp, 0xFFFFFF, 0xFF), + 0x73: SMWLevel(LocationName.dp_from_yi, 0xFFFFFF, 0xFF), + 0x74: SMWLevel(LocationName.dp_to_vd, 0xFFFFFF, 0xFF), + 0x75: SMWLevel(LocationName.vd_from_dp, 0xFFFFFF, 0xFF), + 0x76: SMWLevel(LocationName.tw_to_foi, 0xFFFFFF, 0xFF), + 0x77: SMWLevel(LocationName.foi_from_tw, 0xFFFFFF, 0xFF), + 0x78: SMWLevel(LocationName.foi_to_ci, 0xFFFFFF, 0xFF), + 0x79: SMWLevel(LocationName.ci_from_foi, 0xFFFFFF, 0xFF), + 0x7A: SMWLevel(LocationName.foi_to_sr, 0xFFFFFF, 0xFF), + 0x7B: SMWLevel(LocationName.sr_from_foi, 0xFFFFFF, 0xFF), + 0x7C: SMWLevel(LocationName.ci_to_vob, 0xFFFFFF, 0xFF), + 0x7D: SMWLevel(LocationName.vob_from_ci, 0xFFFFFF, 0xFF), } full_level_list = [ @@ -1201,7 +1230,7 @@ def __init__(self, levelName: str, levelIDAddress: int, eventIDValue: int, exit1 LocationName.star_road_5_green_block_20: [0x5A, 681] } -def generate_level_list(world: World): +def generate_level_list(world: "SMWWorld"): if not world.options.level_shuffle: out_level_list = full_level_list.copy() @@ -1243,20 +1272,6 @@ def generate_level_list(world: World): shuffled_level_list.append(easy_single_levels_copy.pop(0)) shuffled_level_list.append(easy_castle_fortress_levels_copy.pop(0)) - # Donut Plains - shuffled_level_list.append(easy_double_levels_copy.pop(0)) - shuffled_level_list.append(easy_double_levels_copy.pop(0)) - shuffled_level_list.append(easy_double_levels_copy.pop(0)) - shuffled_level_list.append(0x08) - shuffled_level_list.append(easy_double_levels_copy.pop(0)) - shuffled_level_list.append(easy_double_levels_copy.pop(0)) - shuffled_level_list.append(easy_single_levels_copy.pop(0)) - shuffled_level_list.append(easy_single_levels_copy.pop(0)) - shuffled_level_list.append(easy_single_levels_copy.pop(0)) - shuffled_level_list.append(easy_castle_fortress_levels_copy.pop(0)) - shuffled_level_list.append(0x28) - shuffled_level_list.append(0x16) - single_levels_copy = (easy_single_levels_copy.copy() + hard_single_levels_copy.copy()) if not world.options.exclude_special_zone: single_levels_copy.extend(special_zone_levels_copy) @@ -1268,6 +1283,20 @@ def generate_level_list(world: World): double_levels_copy = (easy_double_levels_copy.copy() + hard_double_levels_copy.copy()) world.random.shuffle(double_levels_copy) + # Donut Plains + shuffled_level_list.append(double_levels_copy.pop(0)) + shuffled_level_list.append(double_levels_copy.pop(0)) + shuffled_level_list.append(double_levels_copy.pop(0)) + shuffled_level_list.append(0x08) + shuffled_level_list.append(double_levels_copy.pop(0)) + shuffled_level_list.append(double_levels_copy.pop(0)) + shuffled_level_list.append(single_levels_copy.pop(0)) + shuffled_level_list.append(single_levels_copy.pop(0)) + shuffled_level_list.append(single_levels_copy.pop(0)) + shuffled_level_list.append(castle_fortress_levels_copy.pop(0)) + shuffled_level_list.append(0x28) + shuffled_level_list.append(0x16) + # Vanilla Dome shuffled_level_list.append(double_levels_copy.pop(0)) shuffled_level_list.append(double_levels_copy.pop(0)) diff --git a/worlds/smw/Names/LocationName.py b/worlds/smw/Names/LocationName.py index 847b724f7837..d0adb32b4a13 100644 --- a/worlds/smw/Names/LocationName.py +++ b/worlds/smw/Names/LocationName.py @@ -249,6 +249,8 @@ donut_plains_top_secret = "Top Secret Area" donut_plains_top_secret_tile = "Top Secret Area - Tile" donut_plains_star_road = "Donut Plains - Star Road" +donut_plains_entrance_pipe = "Donut Plains - Entrance Pipe" +donut_plains_exit_pipe = "Donut Plains - Exit Pipe" green_switch_palace_tile = "Green Switch Palace - Tile" @@ -273,6 +275,9 @@ vanilla_dome_castle_tile = "#3 Lemmy's Castle - Tile" vanilla_dome_castle_region = "#3 Lemmy's Castle" vanilla_dome_star_road = "Vanilla Dome - Star Road" +vanilla_dome_bottom_entrance_pipe = "Vanilla Dome - Bottom Entrance Pipe" +vanilla_dome_top_entrance_pipe = "Vanilla Dome - Top Entrance Pipe" +vanilla_dome_top_exit_pipe = "Vanilla Dome - Top Exit Pipe" red_switch_palace_tile = "Red Switch Palace - Tile" @@ -289,6 +294,7 @@ twin_bridges_castle_tile = "#4 Ludwig's Castle - Tile" twin_bridges_castle_region = "#4 Ludwig's Castle" twin_bridges_star_road = "Twin Bridges - Star Road" +twin_bridges_exit_pipe = "Twin Bridges - Exit Pipe" forest_of_illusion_1_tile = "Forest of Illusion 1 - Tile" forest_of_illusion_1_region = "Forest of Illusion 1" @@ -328,6 +334,8 @@ chocolate_fortress_region = "Chocolate Fortress" chocolate_castle_tile = "#6 Wendy's Castle - Tile" chocolate_castle_region = "#6 Wendy's Castle" +chocolate_island_entrance_pipe = "Chocolate Island - Entrance Pipe" +chocolate_island_exit_pipe = "Chocolate Island - Exit Pipe" sunken_ghost_ship_tile = "Sunken Ghost Ship - Tile" sunken_ghost_ship_region = "Sunken Ghost Ship" @@ -347,6 +355,10 @@ valley_castle_tile = "#7 Larry's Castle - Tile" valley_castle_region = "#7 Larry's Castle" valley_star_road = "Valley of Bowser - Star Road" +valley_donut_entrance_pipe = "Valley of Bowser - Donut Entrance Pipe" +valley_donut_exit_pipe = "Valley of Bowser - Donut Exit Pipe" +valley_chocolate_entrance_pipe = "Valley of Bowser - Chocolate Entrance Pipe" +valley_chocolate_exit_pipe = "Valley of Bowser - Chocolate Exit Pipe" front_door_tile = "Front Door - Tile" back_door_tile = "Back Door - Tile" @@ -388,6 +400,22 @@ special_zone_8_region = "Funky" special_complete = "Special Zone - Star Road - Complete" +yi_to_ysp = "Transition - Yoshi's Island to Yellow Switch Palace" +ysp_from_yi = "Transition - Yellow Switch Palace from Yoshi's Island" +yi_to_dp = "Transition - Yoshi's Island to Donut Plains" +dp_from_yi = "Transition - Donut Plains from Yoshi's Island" +dp_to_vd = "Transition - Donut Plains to Vanilla Dome" +vd_from_dp = "Transition - Vanilla Dome from Donut Plains" +tw_to_foi = "Transition - Twin Bridges to Forest of Illusion" +foi_from_tw = "Transition - Forest of Illusion from Twin Bridges" +foi_to_ci = "Transition - Forest of Illusion to Chocolate Island" +ci_from_foi = "Transition - Chocolate Island from Forest of Illusion" +foi_to_sr = "Transition - Forest of Illusion to Star Road" +sr_from_foi = "Transition - Star Road from Forest of Illusion" +ci_to_vob = "Transition - Chocolate Island to Valley of Bowser" +vob_from_ci = "Transition - Valley of Bowser from Chocolate Island" + + vanilla_secret_2_yoshi_block_1 = "Vanilla Secret 2 - Yoshi Block #1" vanilla_secret_2_green_block_1 = "Vanilla Secret 2 - Green Switch Palace Block #1" vanilla_secret_2_powerup_block_1 = "Vanilla Secret 2 - Powerup Block #1" diff --git a/worlds/smw/Options.py b/worlds/smw/Options.py index 0eafa06b796b..0013fe24b4c6 100644 --- a/worlds/smw/Options.py +++ b/worlds/smw/Options.py @@ -209,6 +209,26 @@ class LevelShuffle(Toggle): display_name = "Level Shuffle" +class MapTeleportShuffle(Choice): + """ + Whether map teleports (stars and pipes) are shuffled + """ + display_name = "Map Teleport Shuffle" + option_off = 0 + option_on_only_stars = 1 + option_on_only_pipes = 2 + option_on_both_same_type = 3 + option_on_both_mix = 4 + default = 0 + + +class MapTransitionShuffle(Toggle): + """ + Wheter map transitions are shuffled + """ + display_name = "Map Transition Shuffle" + + class ExcludeSpecialZone(Toggle): """ If active, this option will prevent any progression items from being placed in Special Zone levels. @@ -281,6 +301,9 @@ class PersistentTrapBehavior(Choice): option_gone_after_room_load = 0 option_gone_after_map_load = 1 option_gone_after_level_clear = 2 + option_gone_after_dying_once = 3 + option_gone_after_dying_twice = 4 + option_gone_after_dying_thrice = 5 default = 0 @@ -495,6 +518,8 @@ class EnergyLink(DefaultOnToggle): ]), OptionGroup("Level Shuffling", [ LevelShuffle, + MapTeleportShuffle, + MapTransitionShuffle, ExcludeSpecialZone, BowserCastleDoors, BowserCastleRooms, @@ -545,6 +570,8 @@ class SMWOptions(PerGameCommonOptions): bowser_castle_doors: BowserCastleDoors bowser_castle_rooms: BowserCastleRooms level_shuffle: LevelShuffle + map_teleport_shuffle: MapTeleportShuffle + map_transition_shuffle: MapTransitionShuffle exclude_special_zone: ExcludeSpecialZone boss_shuffle: BossShuffle swap_donut_gh_exits: SwapDonutGhostHouseExits diff --git a/worlds/smw/Regions.py b/worlds/smw/Regions.py index 249604987401..2ab1c1d2b811 100644 --- a/worlds/smw/Regions.py +++ b/worlds/smw/Regions.py @@ -7,8 +7,11 @@ from worlds.generic.Rules import add_rule, set_rule from worlds.AutoWorld import World +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from . import SMWWorld -def create_regions(world: World, active_locations): +def create_regions(world: "SMWWorld", active_locations): multiworld: MultiWorld = world.multiworld player: int = world.player @@ -371,6 +374,18 @@ def create_regions(world: World, active_locations): bowser_region_locations += [LocationName.bowser] bowser_region = create_region(multiworld, player, active_locations, LocationName.bowser_region, bowser_region_locations) + donut_plains_entrance_pipe = create_region(multiworld, player, active_locations, LocationName.donut_plains_entrance_pipe, None) + donut_plains_exit_pipe = create_region(multiworld, player, active_locations, LocationName.donut_plains_exit_pipe, None) + vanilla_dome_bottom_entrance_pipe = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_bottom_entrance_pipe, None) + vanilla_dome_top_entrance_pipe = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_top_entrance_pipe, None) + vanilla_dome_top_exit_pipe = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_top_exit_pipe, None) + twin_bridges_exit_pipe = create_region(multiworld, player, active_locations, LocationName.twin_bridges_exit_pipe, None) + chocolate_island_entrance_pipe = create_region(multiworld, player, active_locations, LocationName.chocolate_island_entrance_pipe, None) + chocolate_island_exit_pipe = create_region(multiworld, player, active_locations, LocationName.chocolate_island_exit_pipe, None) + valley_donut_entrance_pipe = create_region(multiworld, player, active_locations, LocationName.valley_donut_entrance_pipe, None) + valley_donut_exit_pipe = create_region(multiworld, player, active_locations, LocationName.valley_donut_exit_pipe, None) + valley_chocolate_entrance_pipe = create_region(multiworld, player, active_locations, LocationName.valley_chocolate_entrance_pipe, None) + valley_chocolate_exit_pipe = create_region(multiworld, player, active_locations, LocationName.valley_chocolate_exit_pipe, None) donut_plains_star_road = create_region(multiworld, player, active_locations, LocationName.donut_plains_star_road, None) vanilla_dome_star_road = create_region(multiworld, player, active_locations, LocationName.vanilla_dome_star_road, None) @@ -462,6 +477,20 @@ def create_regions(world: World, active_locations): [LocationName.special_zone_8_exit_1]) special_complete = create_region(multiworld, player, active_locations, LocationName.special_complete, None) + yi_to_ysp = create_region(multiworld, player, active_locations, LocationName.yi_to_ysp, None) + ysp_from_yi = create_region(multiworld, player, active_locations, LocationName.ysp_from_yi, None) + yi_to_dp = create_region(multiworld, player, active_locations, LocationName.yi_to_dp, None) + dp_from_yi = create_region(multiworld, player, active_locations, LocationName.dp_from_yi, None) + dp_to_vd = create_region(multiworld, player, active_locations, LocationName.dp_to_vd, None) + vd_from_dp = create_region(multiworld, player, active_locations, LocationName.vd_from_dp, None) + tw_to_foi = create_region(multiworld, player, active_locations, LocationName.tw_to_foi, None) + foi_from_tw = create_region(multiworld, player, active_locations, LocationName.foi_from_tw, None) + foi_to_ci = create_region(multiworld, player, active_locations, LocationName.foi_to_ci, None) + ci_from_foi = create_region(multiworld, player, active_locations, LocationName.ci_from_foi, None) + foi_to_sr = create_region(multiworld, player, active_locations, LocationName.foi_to_sr, None) + sr_from_foi = create_region(multiworld, player, active_locations, LocationName.sr_from_foi, None) + ci_to_vob = create_region(multiworld, player, active_locations, LocationName.ci_to_vob, None) + vob_from_ci = create_region(multiworld, player, active_locations, LocationName.vob_from_ci, None) # Set up the regions correctly. multiworld.regions += [ @@ -668,6 +697,18 @@ def create_regions(world: World, active_locations): back_door_tile, back_door_region, bowser_region, + donut_plains_entrance_pipe, + donut_plains_exit_pipe, + vanilla_dome_bottom_entrance_pipe, + vanilla_dome_top_entrance_pipe, + vanilla_dome_top_exit_pipe, + twin_bridges_exit_pipe, + chocolate_island_entrance_pipe, + chocolate_island_exit_pipe, + valley_donut_entrance_pipe, + valley_donut_exit_pipe, + valley_chocolate_entrance_pipe, + valley_chocolate_exit_pipe, donut_plains_star_road, vanilla_dome_star_road, twin_bridges_star_road, @@ -725,6 +766,20 @@ def create_regions(world: World, active_locations): special_zone_8_region, special_zone_8_exit_1, special_complete, + yi_to_ysp, + ysp_from_yi, + yi_to_dp, + dp_from_yi, + dp_to_vd, + vd_from_dp, + tw_to_foi, + foi_from_tw, + foi_to_ci, + ci_from_foi, + foi_to_sr, + sr_from_foi, + ci_to_vob, + vob_from_ci, ] @@ -1849,7 +1904,7 @@ def create_regions(world: World, active_locations): add_location_to_region(multiworld, player, active_locations, LocationName.star_road_5_region, LocationName.star_road_5_green_block_20, lambda state: (state.has(ItemName.green_switch_palace, player) and state.has(ItemName.yoshi_activate, player) and state.has(ItemName.mario_carry, player) and state.has(ItemName.special_world_clear, player))) -def connect_regions(world: World, level_to_tile_dict): +def connect_regions(world: "SMWWorld", level_to_tile_dict): multiworld: MultiWorld = world.multiworld player: int = world.player @@ -2084,6 +2139,14 @@ def connect_regions(world: World, level_to_tile_dict): # Connect levels to each other + should_cache = [ + LocationName.star_road_1_tile, + LocationName.star_road_2_tile, + LocationName.star_road_3_tile, + LocationName.star_road_4_tile, + ] + future_star_cache = dict() + for current_level_id, current_level_data in level_info_dict.items(): # Connect tile regions to correct level regions @@ -2093,7 +2156,8 @@ def connect_regions(world: World, level_to_tile_dict): current_tile_id = level_to_tile_dict[current_level_id] current_tile_data = level_info_dict[current_tile_id] current_tile_name = current_tile_data.levelName - if ("Star Road - " not in current_tile_name) and (" - Star Road" not in current_tile_name): + + if ("Star Road - " not in current_tile_name) and (" - Star Road" not in current_tile_name) and ("Pipe" not in current_tile_name) and ("Transition - " not in current_tile_name): current_tile_name += " - Tile" connect(world, current_tile_name, current_level_data.levelName) # Connect Exit regions to next tile regions @@ -2102,42 +2166,68 @@ def connect_regions(world: World, level_to_tile_dict): if world.options.swap_donut_gh_exits and current_tile_id == 0x04: next_tile_id = current_tile_data.exit2Path.otherLevelID next_tile_name = level_info_dict[next_tile_id].levelName - if ("Star Road - " not in next_tile_name) and (" - Star Road" not in next_tile_name): + if ("Star Road - " not in next_tile_name) and (" - Star Road" not in next_tile_name) and ("Pipe" not in next_tile_name) and ("Transition - " not in next_tile_name): next_tile_name += " - Tile" + else: + if current_tile_name == LocationName.star_road_5_tile: + future_star_cache[next_tile_name] = current_tile_data.eventIDValue + else: + world.cached_connections[next_tile_name] = current_tile_data.eventIDValue current_exit_name = (current_level_data.levelName + " - Normal Exit") connect(world, current_exit_name, next_tile_name) + if current_tile_data.exit2Path: next_tile_id = current_tile_data.exit2Path.otherLevelID if world.options.swap_donut_gh_exits and current_tile_id == 0x04: next_tile_id = current_tile_data.exit1Path.otherLevelID next_tile_name = level_info_dict[next_tile_id].levelName - if ("Star Road - " not in next_tile_name) and (" - Star Road" not in next_tile_name): + if ("Star Road - " not in next_tile_name) and (" - Star Road" not in next_tile_name) and ("Pipe" not in next_tile_name) and ("Transition - " not in next_tile_name): next_tile_name += " - Tile" + else: + if current_tile_name in should_cache: + future_star_cache[next_tile_name] = current_tile_data.eventIDValue + 1 + else: + world.cached_connections[next_tile_name] = current_tile_data.eventIDValue + 1 current_exit_name = (current_level_data.levelName + " - Secret Exit") connect(world, current_exit_name, next_tile_name) - connect(world, LocationName.donut_plains_star_road, LocationName.star_road_donut) - connect(world, LocationName.star_road_donut, LocationName.donut_plains_star_road) + # Fix cached connections + for old_exit, event_id in future_star_cache.items(): + entrance = world.reverse_teleport_pairs[old_exit] + world.cached_connections[entrance] = event_id + + # Connect teleport destination tiles with level tiles connect(world, LocationName.star_road_donut, LocationName.star_road_1_tile) - connect(world, LocationName.vanilla_dome_star_road, LocationName.star_road_vanilla) - connect(world, LocationName.star_road_vanilla, LocationName.vanilla_dome_star_road) connect(world, LocationName.star_road_vanilla, LocationName.star_road_2_tile) - connect(world, LocationName.twin_bridges_star_road, LocationName.star_road_twin_bridges) - connect(world, LocationName.star_road_twin_bridges, LocationName.twin_bridges_star_road) connect(world, LocationName.star_road_twin_bridges, LocationName.star_road_3_tile) - connect(world, LocationName.forest_star_road, LocationName.star_road_forest) - connect(world, LocationName.star_road_forest, LocationName.forest_star_road) connect(world, LocationName.star_road_forest, LocationName.star_road_4_tile) - connect(world, LocationName.valley_star_road, LocationName.star_road_valley) - connect(world, LocationName.star_road_valley, LocationName.valley_star_road) connect(world, LocationName.star_road_valley, LocationName.star_road_5_tile) - connect(world, LocationName.star_road_special, LocationName.special_star_road) - connect(world, LocationName.special_star_road, LocationName.star_road_special) connect(world, LocationName.special_star_road, LocationName.special_zone_1_tile) - - connect(world, LocationName.star_road_valley, LocationName.front_door_tile) - - + connect(world, LocationName.donut_plains_exit_pipe, LocationName.donut_plains_3_tile) + connect(world, LocationName.valley_donut_exit_pipe, LocationName.donut_secret_2_tile) + connect(world, LocationName.vanilla_dome_top_exit_pipe, LocationName.vanilla_secret_2_tile) + connect(world, LocationName.twin_bridges_exit_pipe, LocationName.cheese_bridge_tile) + connect(world, LocationName.valley_chocolate_exit_pipe, LocationName.chocolate_secret_tile) + connect(world, LocationName.chocolate_island_exit_pipe, LocationName.chocolate_castle_tile) + + # Connect teleports + for entrance, exit in world.teleport_pairs.items(): + connect(world, entrance, exit) + if LocationName.yoshis_house_tile in exit: + connect(world, exit, entrance) + + # Connect transition destination "tiles" with level tiles + connect(world, LocationName.ysp_from_yi, LocationName.yellow_switch_palace_tile) + connect(world, LocationName.dp_from_yi, LocationName.donut_plains_1_tile) + connect(world, LocationName.vd_from_dp, LocationName.vanilla_dome_1_tile) + connect(world, LocationName.foi_from_tw, LocationName.forest_of_illusion_1_tile) + connect(world, LocationName.ci_from_foi, LocationName.forest_castle_tile) + connect(world, LocationName.sr_from_foi, LocationName.forest_fortress_tile) + connect(world, LocationName.vob_from_ci, LocationName.valley_of_bowser_1_tile) + + # Connect transitions + for entrance, exit in world.transition_pairs.items(): + connect(world, entrance, exit) def create_region(multiworld: MultiWorld, player: int, active_locations, name: str, locations=None): ret = Region(name, player, multiworld) @@ -2161,7 +2251,7 @@ def add_location_to_region(multiworld: MultiWorld, player: int, active_locations add_rule(location, rule) -def connect(world: World, source: str, target: str, +def connect(world: "SMWWorld", source: str, target: str, rule: typing.Optional[typing.Callable] = None): source_region: Region = world.get_region(source) target_region: Region = world.get_region(target) diff --git a/worlds/smw/Rom.py b/worlds/smw/Rom.py index f7b3bd707c48..8776628f49c8 100644 --- a/worlds/smw/Rom.py +++ b/worlds/smw/Rom.py @@ -1,10 +1,11 @@ import Utils -from worlds.AutoWorld import World, AutoWorldRegister +from worlds.AutoWorld import AutoWorldRegister from settings import get_settings from worlds.Files import APProcedurePatch, APTokenMixin, APTokenTypes, APPatchExtension from .Aesthetics import generate_shuffled_ow_palettes, generate_curated_level_palette_data, generate_curated_map_palette_data, generate_shuffled_sfx from .Levels import level_info_dict, full_bowser_rooms, standard_bowser_rooms, submap_boss_rooms, ow_boss_rooms from .Names.TextBox import generate_goal_text, title_text_mapping, generate_text_box +from .Teleports import handle_teleport_shuffle, handle_transition_shuffle, handle_silent_events USHASH = 'cdd3c8c37322978ca8669b34bc89c804' ROM_PLAYER_LIMIT = 65535 @@ -15,6 +16,9 @@ import json import random +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from . import SMWWorld ability_rom_data = { 0xBC0003: [[0x1F1C, 0x7]], # Run 0x80 @@ -203,12 +207,6 @@ def handle_uncompressed_graphics(caller: APProcedurePatch, rom: bytes) -> bytes: order = [0x30, 0x31, 0x32, 0x33, 0x34] player_name_tiles = copy_gfx_tiles(decompressed_gfx_28, order, [4, 16]) - # Patch GFX 00 with new data - patched_gfx_00 = bsdiff4.patch(bytes(decompressed_gfx_00), caller.get_file("sprite_page_1.bsdiff4")) - patched_gfx_00 = bytearray(patched_gfx_00) - patched_gfx_01 = bsdiff4.patch(bytes(decompressed_gfx_01), caller.get_file("sprite_page_2.bsdiff4")) - patched_gfx_01 = bytearray(patched_gfx_01) - # Create inventory order = [ 0x0024,0x0024,0x0026,0x0026,0x000E,0x000E,0x0048,0x0048, @@ -217,18 +215,22 @@ def handle_uncompressed_graphics(caller: APProcedurePatch, rom: bytes) -> bytes: 0x0066,0x0066,0x0066,0x0066,0x0066,0x0066,0x0843,0x0066, ] inventory_gfx = copy_sprite_tiles(raw_sprite_graphics, order, 4) - inventory_gfx = bsdiff4.patch(bytes(inventory_gfx), caller.get_file("map_sprites.bsdiff4")) - inventory_gfx = bytearray(inventory_gfx) + + # Patch graphics with modified data + patched_sprite_graphics = bsdiff4.patch(bytes(sprite_graphics), caller.get_file("sprite_graphics.bsdiff4")) + patched_gfx_00 = bsdiff4.patch(bytes(decompressed_gfx_00), caller.get_file("sprite_page_1.bsdiff4")) + patched_gfx_01 = bsdiff4.patch(bytes(decompressed_gfx_01), caller.get_file("sprite_page_2.bsdiff4")) + patched_inventory_gfx = bsdiff4.patch(bytes(inventory_gfx), caller.get_file("map_sprites.bsdiff4")) rom[0xE0000:0xE0000 + len(decompressed_player_gfx)] = decompressed_player_gfx rom[0xE8000:0xE8000 + len(decompressed_animated_gfx)] = decompressed_animated_gfx rom[0xE6000:0xE6000 + len(player_small_tiles)] = player_small_tiles rom[0xE6400:0xE6400 + len(player_map_tiles)] = player_map_tiles rom[0xE6C00:0xE6C00 + len(player_name_tiles)] = player_name_tiles - rom[0xEC000:0xEC000 + len(inventory_gfx)] = inventory_gfx - rom[0x100000:0x100000 + len(sprite_graphics)] = sprite_graphics - rom[0x178000:0x178000 + len(patched_gfx_00)] = patched_gfx_00 - rom[0x179000:0x179000 + len(patched_gfx_01)] = patched_gfx_01 + rom[0xEC000:0xEC000 + len(patched_inventory_gfx)] = bytearray(patched_inventory_gfx) + rom[0x100000:0x100000 + len(patched_sprite_graphics)] = bytearray(patched_sprite_graphics) + rom[0x178000:0x178000 + len(patched_gfx_00)] = bytearray(patched_gfx_00) + rom[0x179000:0x179000 + len(patched_gfx_01)] = bytearray(patched_gfx_01) return bytes(rom) @@ -241,6 +243,7 @@ def generate_shuffled_header_data(caller: APProcedurePatch, rom: bytes) -> bytes from .Aesthetics import valid_foreground_palettes, valid_background_palettes, valid_background_colors rom = bytearray(rom) + random.seed(options["seed"]) for level_id in range(0, 0x200): layer1_ptr = int.from_bytes(rom[0x2E000 + level_id * 3:(0x2E000 + level_id * 3) + 3], "little") @@ -254,8 +257,6 @@ def generate_shuffled_header_data(caller: APProcedurePatch, rom: bytes) -> bytes tileset = level_header[4] & 0x0F - random.seed(options["seed"]) - if options["music_shuffle"] == 2: level_header[2] &= 0x8F level_header[2] |= (random.randint(0, 7) << 5) @@ -324,6 +325,9 @@ def replace_graphics(caller: APProcedurePatch, rom: bytes) -> bytes: if "yoshi+anim.bin" in file.namelist(): yoshi_anim_file = file.read('yoshi+anim.bin') rom[0xE8000:0xE8000 + len(yoshi_anim_file)] = yoshi_anim_file + if "sprites.bin" in file.namelist(): + sprites_file = file.read('sprites.bin') + rom[0x100000:0x100000 + len(sprites_file)] = sprites_file return bytes(rom) @@ -476,7 +480,7 @@ def handle_level_shuffle(rom, active_level_dict): rom.write_byte(0x37F00 + tile_id, level_id) -def handle_location_item_info(patch, world: World): +def handle_location_item_info(patch: SMWProcedurePatch, world: "SMWWorld"): from .Levels import location_id_to_level_id block_info = bytearray([0x00 for _ in range(582)]) @@ -512,7 +516,7 @@ def handle_location_item_info(patch, world: World): patch.write_bytes(0x88207, block_info) -def handle_music_shuffle(patch, world: World): +def handle_music_shuffle(patch: SMWProcedurePatch, world: "SMWWorld"): from .Aesthetics import generate_shuffled_level_music, generate_shuffled_ow_music, level_music_address_data, ow_music_address_data shuffled_level_music = generate_shuffled_level_music(world) @@ -525,7 +529,7 @@ def handle_music_shuffle(patch, world: World): patch.write_byte(addr, shuffled_ow_music[i]) -def handle_mario_palette(patch, world: World): +def handle_mario_palette(patch: SMWProcedurePatch, world: "SMWWorld"): from .Aesthetics import mario_palettes, fire_mario_palettes, ow_mario_palettes chosen_palette = world.options.mario_palette.value @@ -535,7 +539,7 @@ def handle_mario_palette(patch, world: World): patch.write_bytes(0x359C, bytes(ow_mario_palettes[chosen_palette])) -def handle_swap_donut_gh_exits(patch): +def handle_swap_donut_gh_exits(patch: SMWProcedurePatch): patch.write_bytes(0x2567C, bytes([0xC0])) patch.write_bytes(0x25873, bytes([0xA9])) patch.write_bytes(0x25875, bytes([0x85])) @@ -547,7 +551,7 @@ def handle_swap_donut_gh_exits(patch): patch.write_bytes(0x26371, bytes([0x32])) -def handle_bowser_rooms(patch, world: World): +def handle_bowser_rooms(patch: SMWProcedurePatch, world: "SMWWorld"): if world.options.bowser_castle_rooms == "random_two_room": chosen_rooms = world.random.sample(standard_bowser_rooms, 2) @@ -601,7 +605,7 @@ def handle_bowser_rooms(patch, world: World): patch.write_byte(bowser_rooms_copy[len(bowser_rooms_copy)-1].exitAddress, 0xBD) -def handle_boss_shuffle(patch, world: World): +def handle_boss_shuffle(patch: SMWProcedurePatch, world: "SMWWorld"): if world.options.boss_shuffle == "simple": submap_boss_rooms_copy = submap_boss_rooms.copy() ow_boss_rooms_copy = ow_boss_rooms.copy() @@ -644,11 +648,11 @@ def handle_boss_shuffle(patch, world: World): patch.write_byte(ow_boss_rooms[i].exitAddressAlt, chosen_ow_boss.roomID) -def snes_to_pc(address): +def snes_to_pc(address: int): return (address & 0x7F0000) >> 1 | (address & 0x7FFF) -def patch_rom(world: World, patch, player, active_level_dict: typing.Dict[int,int]) -> None: +def patch_rom(world: "SMWWorld", patch: SMWProcedurePatch, player: int, active_level_dict: typing.Dict[int,int]) -> None: options_dict = { "seed": world.random.getrandbits(64), "music_shuffle": world.options.music_shuffle.value, @@ -699,6 +703,16 @@ def patch_rom(world: World, patch, player, active_level_dict: typing.Dict[int,in # Handle Level Shuffle handle_level_shuffle(patch, active_level_dict) + if world.options.map_teleport_shuffle != "off": + handle_teleport_shuffle(patch, world) + + #if world.options.map_transition_shuffle: + if world.options.map_transition_shuffle: + handle_transition_shuffle(patch, world) + + if world.options.map_teleport_shuffle or world.options.map_transition_shuffle: + handle_silent_events(patch, world) + # Handle Music Shuffle if world.options.music_shuffle != "none": handle_music_shuffle(patch, world) diff --git a/worlds/smw/Teleports.py b/worlds/smw/Teleports.py new file mode 100644 index 000000000000..a7cc5177de06 --- /dev/null +++ b/worlds/smw/Teleports.py @@ -0,0 +1,565 @@ +from .Names import LocationName + +from typing import TYPE_CHECKING, Dict, List +if TYPE_CHECKING: + from . import SMWWorld, SMWProcedurePatch + + +smw_star_pairs = { + LocationName.donut_plains_star_road: LocationName.star_road_donut, + LocationName.vanilla_dome_star_road: LocationName.star_road_vanilla, + LocationName.twin_bridges_star_road: LocationName.star_road_twin_bridges, + LocationName.forest_star_road: LocationName.star_road_forest, + LocationName.valley_star_road: LocationName.star_road_valley, + LocationName.star_road_special: LocationName.special_star_road, + LocationName.special_complete: LocationName.yoshis_house_tile, +} + +smw_pipe_pairs = { + LocationName.donut_plains_entrance_pipe: LocationName.valley_donut_exit_pipe, + LocationName.valley_donut_entrance_pipe: LocationName.donut_plains_exit_pipe, + LocationName.vanilla_dome_top_entrance_pipe: LocationName.vanilla_dome_top_exit_pipe, + LocationName.vanilla_dome_bottom_entrance_pipe: LocationName.twin_bridges_exit_pipe, + LocationName.chocolate_island_entrance_pipe: LocationName.valley_chocolate_exit_pipe, + LocationName.valley_chocolate_entrance_pipe: LocationName.chocolate_island_exit_pipe, +} + +smw_offscreen_event_indexes = { + LocationName.valley_donut_exit_pipe: [0x12, 0x11, 0x03], + LocationName.donut_plains_exit_pipe: [0x14, 0x08, 0x05], + LocationName.vanilla_dome_top_exit_pipe: [0x1D, 0x0D, 0x04], + LocationName.twin_bridges_exit_pipe: [0x1C, 0x14, 0x01], + LocationName.valley_chocolate_exit_pipe: [0x47, 0x1D, 0x01], + LocationName.vanilla_dome_star_road: [0x52, 0x2C, 0x01], + LocationName.twin_bridges_star_road: [0x55, 0x2D, 0x01], + LocationName.forest_star_road: [0x58, 0x2E, 0x01], + LocationName.donut_plains_star_road: [0x5D, 0x2F, 0x01], + LocationName.star_road_special: [0x5E, 0x30, 0x01], + LocationName.special_complete: [0x6C, 0x31, 0x01], + LocationName.valley_star_road: [0x5B, 0x32, 0x04], + + LocationName.dp_from_yi: [0x06, 0x00, 0x08], + LocationName.ysp_from_yi: [0x01, 0x20, 0x01], + LocationName.vd_from_dp: [0x0F, 0x24, 0x03], + LocationName.foi_from_tw: [0x24, 0x21, 0x02], + LocationName.ci_from_foi: [0x2F, 0x15, 0x05], + LocationName.sr_from_foi: [0x34, 0x1A, 0x03], + LocationName.vob_from_ci: [0x4E, 0x1E, 0x02], + +} + +smw_teleport_data = { + LocationName.donut_plains_star_road: [0x1A, 0x78, 0x00, 0x28, 0x01], + LocationName.star_road_donut: [0x0C, 0x28, 0x0D, 0xD8, 0x01], + LocationName.vanilla_dome_star_road: [0x1E, 0x08, 0x04, 0xE8, 0x00], + LocationName.star_road_vanilla: [0x1C, 0x28, 0x0D, 0x88, 0x01], + LocationName.twin_bridges_star_road: [0x22, 0x08, 0x01, 0xF8, 0x00], + LocationName.star_road_twin_bridges: [0x20, 0x78, 0x0D, 0x68, 0x01], + LocationName.forest_star_road: [0x26, 0x48, 0x01, 0x08, 0x01], + LocationName.star_road_forest: [0x24, 0xC8, 0x0D, 0x88, 0x01], + LocationName.valley_star_road: [0x2A, 0x48, 0x09, 0x38, 0x00], + LocationName.star_road_valley: [0x32, 0xC8, 0x0D, 0xD8, 0x01], + LocationName.star_road_special: [0x2E, 0x78, 0x0D, 0x88, 0x01], + LocationName.special_star_road: [0x2C, 0x18, 0x0B, 0x38, 0x01], + LocationName.special_complete: [0x34, 0x18, 0x0B, 0x18, 0x01], + LocationName.yoshis_house_tile: [0x30, 0x68, 0x02, 0x78, 0x00], + LocationName.donut_plains_entrance_pipe: [0x12, 0x98, 0x00, 0x08, 0x01], + LocationName.valley_donut_exit_pipe: [0x04, 0x08, 0x09, 0x38, 0x00], + LocationName.valley_donut_entrance_pipe: [0x06, 0x28, 0x09, 0x18, 0x00], + LocationName.donut_plains_exit_pipe: [0x14, 0xB8, 0x00, 0xE8, 0x00], + LocationName.vanilla_dome_top_entrance_pipe: [0x02, 0x38, 0x04, 0xB8, 0x00], + LocationName.vanilla_dome_top_exit_pipe: [0x10, 0xA8, 0x00, 0x38, 0x00], + LocationName.vanilla_dome_bottom_entrance_pipe: [0x00, 0xA8, 0x04, 0x48, 0x01], + LocationName.twin_bridges_exit_pipe: [0x0E, 0x18, 0x01, 0x78, 0x00], + LocationName.chocolate_island_entrance_pipe: [0x16, 0x28 ,0x01, 0x78, 0x01], + LocationName.valley_chocolate_exit_pipe: [0x08, 0xC8, 0x09, 0x98, 0x00], + LocationName.valley_chocolate_entrance_pipe: [0x0A, 0x48, 0x09, 0x98, 0x00], + LocationName.chocolate_island_exit_pipe: [0x18, 0xA8, 0x00, 0x88, 0x01], +} + +teleport_pairs = {**smw_star_pairs, **smw_pipe_pairs} +tp_keys = list(teleport_pairs.keys()) +tp_values = list(teleport_pairs.values()) + +smw_transition_pairs = { + LocationName.yi_to_ysp: LocationName.ysp_from_yi, + LocationName.yi_to_dp: LocationName.dp_from_yi, + LocationName.dp_to_vd: LocationName.vd_from_dp, + LocationName.tw_to_foi: LocationName.foi_from_tw, + LocationName.foi_to_ci: LocationName.ci_from_foi, + LocationName.foi_to_sr: LocationName.sr_from_foi, + LocationName.ci_to_vob: LocationName.vob_from_ci, +} + +# Data order: +# 0: Offset/Index to ROM +# 1-3: Y Coords for tile +# 4-5: X Coords for tile +# 6: Submap ID +# 7-8: YX Coords >> 4 + Adjustment +# 9: Walk direction when used as destination +# 0: Up +# 1: Left +# 2: Down +# 3: Right + +smw_transition_data = { + LocationName.yi_to_ysp: [0x00, 0x00, 0x00, 0x48, 0x00, 0x01, 0x00, 0x04, 0x02], + LocationName.ysp_from_yi: [0x02, 0x50, 0x01, 0x28, 0x00, 0x00, 0x14, 0x02, 0x00], + + LocationName.yi_to_dp: [0x01, 0x00, 0x00, 0x98, 0x00, 0x01, 0x00, 0x09, 0x02], + LocationName.dp_from_yi: [0x03, 0x60, 0x01, 0x58, 0x00, 0x00, 0x15, 0x05, 0x00], + + LocationName.dp_to_vd: [0x05, 0x90, 0x00, 0xD8, 0x00, 0x00, 0x09, 0x0D, 0x02], + LocationName.vd_from_dp: [0x04, 0x50, 0x01, 0x58, 0x00, 0x02, 0x14, 0x05, 0x00], + + LocationName.tw_to_foi: [0x09, 0xB0, 0x00, 0xC8, 0x01, 0x00, 0x0A, 0x1C, 0x00], + LocationName.foi_from_tw: [0x08, 0x50, 0x01, 0x88, 0x00, 0x03, 0x15, 0x08, 0x02], + + LocationName.foi_to_ci: [0x0C, 0x00, 0x02, 0x88, 0x00, 0x03, 0x1F, 0x08, 0x00], + LocationName.ci_from_foi: [0x0D, 0x00, 0x01, 0xC8, 0x01, 0x00, 0x10, 0x1C, 0x02], + + LocationName.foi_to_sr: [0x0A, 0xE8, 0x01, 0x00, 0x00, 0x03, 0x1E, 0x00, 0x06], + LocationName.sr_from_foi: [0x0B, 0x08, 0x01, 0xA0 ,0x01, 0x00, 0x10, 0x19, 0x04], + + LocationName.ci_to_vob: [0x06, 0x50, 0x01, 0xE8, 0x00, 0x00, 0x15, 0x0E, 0x02], + LocationName.vob_from_ci: [0x07, 0xA0, 0x00, 0xE8, 0x01, 0x04, 0x09, 0x1E, 0x00], +} + +tr_keys = list(smw_transition_pairs.keys()) +tr_values = list(smw_transition_pairs.values()) + +region_mapping: Dict[str, List[str]] = { + # Let regions with excluded locations go first + # Fill everything else, with YI as a priority + LocationName.yoshis_house_tile: [ + LocationName.yi_to_ysp, + LocationName.yi_to_dp, + ], + LocationName.ysp_from_yi: [ + # dead end lol + ], + LocationName.dp_from_yi: [ + LocationName.dp_to_vd, + LocationName.donut_plains_entrance_pipe, + LocationName.donut_plains_star_road, + ], + LocationName.valley_donut_exit_pipe: [ + LocationName.valley_donut_entrance_pipe, + ], + LocationName.donut_plains_exit_pipe: [ + LocationName.dp_to_vd, + ], + LocationName.vd_from_dp: [ + LocationName.vanilla_dome_top_entrance_pipe, + LocationName.vanilla_dome_bottom_entrance_pipe, + LocationName.vanilla_dome_star_road, + ], + LocationName.twin_bridges_exit_pipe: [ + LocationName.twin_bridges_star_road, + LocationName.tw_to_foi, + ], + LocationName.vanilla_dome_top_exit_pipe: [ + LocationName.tw_to_foi, + ], + LocationName.foi_from_tw: [ + LocationName.foi_to_ci, + LocationName.foi_to_sr, + ], + LocationName.sr_from_foi: [ + LocationName.forest_star_road, + ], + LocationName.ci_from_foi: [ + LocationName.chocolate_island_entrance_pipe, + LocationName.ci_to_vob, + ], + LocationName.chocolate_island_exit_pipe: [ + LocationName.ci_to_vob, + ], + LocationName.valley_chocolate_exit_pipe: [ + LocationName.valley_chocolate_entrance_pipe, + ], + LocationName.vob_from_ci: [ + LocationName.valley_star_road, + ], + LocationName.star_road_donut: [ + LocationName.star_road_special, + ], + LocationName.star_road_vanilla: [ + LocationName.star_road_special, + ], + LocationName.star_road_twin_bridges: [ + LocationName.star_road_special, + ], + LocationName.star_road_forest: [ + LocationName.star_road_special, + ], + LocationName.star_road_valley: [ + LocationName.star_road_special, + ], + LocationName.special_star_road: [ + LocationName.special_complete, + ], + +} + +region_excluded_destinations: Dict[str, List[str]] = { + LocationName.yi_to_ysp: [ + LocationName.sr_from_foi, + LocationName.vob_from_ci, + ], + LocationName.yi_to_dp: [ + LocationName.sr_from_foi, + LocationName.vob_from_ci, + ], + LocationName.dp_to_vd: [ + ], + LocationName.tw_to_foi: [ + ], + LocationName.foi_to_ci: [], + LocationName.foi_to_sr: [], + LocationName.ci_to_vob: [], + LocationName.donut_plains_entrance_pipe: [ + LocationName.donut_plains_exit_pipe, + ], + LocationName.valley_donut_entrance_pipe: [ + LocationName.valley_donut_exit_pipe, + ], + LocationName.vanilla_dome_top_entrance_pipe: [ + LocationName.yoshis_house_tile, + ], + LocationName.vanilla_dome_bottom_entrance_pipe: [ + LocationName.yoshis_house_tile, + ], + LocationName.chocolate_island_entrance_pipe: [ + LocationName.chocolate_island_exit_pipe, + ], + LocationName.valley_chocolate_entrance_pipe: [], + LocationName.donut_plains_star_road: [], + LocationName.vanilla_dome_star_road: [], + LocationName.twin_bridges_star_road: [], + LocationName.forest_star_road: [], + LocationName.valley_star_road: [], + LocationName.star_road_special: [], + LocationName.special_complete: [ + LocationName.special_star_road, + ], +} + + +def generate_entrance_rando(world: "SMWWorld"): + # This shuffle method walks through every valid exit (starting from YI house) to assign new exits to unconnected entrances + # It attempts to swap around exits without any consideration until everything is connected + # Warning: It's very stupid and slow, feel free to refactor it LOL + # TODO: Pory + world.transition_pairs = {**smw_transition_pairs} + world.transition_data = {**smw_transition_data} + world.teleport_pairs = {**smw_star_pairs, **smw_pipe_pairs} + world.teleport_data = {**smw_teleport_data} + + local_mapping: Dict[str, str] = {} + next_exits = [LocationName.yoshis_house_tile] + processed_exits = [] + used_exits = [] + local_region_mapping = {**region_mapping} + local_excluded_destinations = {**region_excluded_destinations} + prefilled_exits: Dict[str, str] = {} + + if world.options.exclude_special_zone: + prefilled_exits[LocationName.star_road_special] = LocationName.special_star_road + prefilled_exits[LocationName.special_complete] = LocationName.yoshis_house_tile + local_region_mapping.pop(LocationName.special_star_road) + + if world.options.map_teleport_shuffle == "off": + prefilled_exits[LocationName.donut_plains_star_road] = LocationName.star_road_donut + prefilled_exits[LocationName.vanilla_dome_star_road] = LocationName.star_road_vanilla + prefilled_exits[LocationName.twin_bridges_star_road] = LocationName.star_road_twin_bridges + prefilled_exits[LocationName.forest_star_road] = LocationName.star_road_forest + prefilled_exits[LocationName.valley_star_road] = LocationName.star_road_valley + prefilled_exits[LocationName.star_road_special] = LocationName.special_star_road + prefilled_exits[LocationName.special_complete] = LocationName.yoshis_house_tile + + prefilled_exits[LocationName.donut_plains_entrance_pipe] = LocationName.valley_donut_exit_pipe + prefilled_exits[LocationName.valley_donut_entrance_pipe] = LocationName.donut_plains_exit_pipe + prefilled_exits[LocationName.vanilla_dome_top_entrance_pipe] = LocationName.vanilla_dome_top_exit_pipe + prefilled_exits[LocationName.vanilla_dome_bottom_entrance_pipe] = LocationName.twin_bridges_exit_pipe + prefilled_exits[LocationName.chocolate_island_entrance_pipe] = LocationName.valley_chocolate_exit_pipe + prefilled_exits[LocationName.valley_chocolate_entrance_pipe] = LocationName.chocolate_island_exit_pipe + + elif world.options.map_teleport_shuffle == "on_only_stars": + prefilled_exits[LocationName.donut_plains_entrance_pipe] = LocationName.valley_donut_exit_pipe + prefilled_exits[LocationName.valley_donut_entrance_pipe] = LocationName.donut_plains_exit_pipe + prefilled_exits[LocationName.vanilla_dome_top_entrance_pipe] = LocationName.vanilla_dome_top_exit_pipe + prefilled_exits[LocationName.vanilla_dome_bottom_entrance_pipe] = LocationName.twin_bridges_exit_pipe + prefilled_exits[LocationName.chocolate_island_entrance_pipe] = LocationName.valley_chocolate_exit_pipe + prefilled_exits[LocationName.valley_chocolate_entrance_pipe] = LocationName.chocolate_island_exit_pipe + + elif world.options.map_teleport_shuffle == "on_only_pipes": + prefilled_exits[LocationName.donut_plains_star_road] = LocationName.star_road_donut + prefilled_exits[LocationName.vanilla_dome_star_road] = LocationName.star_road_vanilla + prefilled_exits[LocationName.twin_bridges_star_road] = LocationName.star_road_twin_bridges + prefilled_exits[LocationName.forest_star_road] = LocationName.star_road_forest + prefilled_exits[LocationName.valley_star_road] = LocationName.star_road_valley + prefilled_exits[LocationName.star_road_special] = LocationName.special_star_road + prefilled_exits[LocationName.special_complete] = LocationName.yoshis_house_tile + + if not world.options.map_transition_shuffle: + prefilled_exits[LocationName.yi_to_ysp] = LocationName.ysp_from_yi + prefilled_exits[LocationName.yi_to_dp] = LocationName.dp_from_yi + prefilled_exits[LocationName.dp_to_vd] = LocationName.vd_from_dp + prefilled_exits[LocationName.tw_to_foi] = LocationName.foi_from_tw + prefilled_exits[LocationName.foi_to_ci] = LocationName.ci_from_foi + prefilled_exits[LocationName.foi_to_sr] = LocationName.sr_from_foi + prefilled_exits[LocationName.ci_to_vob] = LocationName.vob_from_ci + + + if world.options.map_teleport_shuffle == "off" and world.options.map_transition_shuffle: + local_excluded_destinations[LocationName.yi_to_dp].append(LocationName.ysp_from_yi) + local_excluded_destinations[LocationName.yi_to_ysp].append(LocationName.sr_from_foi) + local_excluded_destinations[LocationName.foi_to_sr].append(LocationName.ysp_from_yi) + local_excluded_destinations[LocationName.foi_to_ci].append(LocationName.sr_from_foi) + + + for entrance, exit in prefilled_exits.items(): + local_mapping[entrance] = exit + + #print (local_mapping) + + used_exits = list(prefilled_exits.values()) + + swap_count = 0 + + while len(processed_exits) != len(local_region_mapping.keys()): + if len(next_exits) == 0: + # Swap exits if we haven't met the processed exits goal + #print ("-------- SWAP ----------") + unreached_transitions = [x for x in smw_transition_pairs.values() if x not in local_mapping.values()] + unreached_teleports = [x for x in teleport_pairs.values() if x not in local_mapping.values()] + unreached_exits = unreached_transitions + unreached_teleports + #print ("UNREACHED: ", unreached_exits) + if len(unreached_exits) == 0 or swap_count >= 10: + #print (" ########################################################## RESTARTING SHUFFLE ##########################################################") + local_mapping = {} + for entrance, exit in prefilled_exits.items(): + local_mapping[entrance] = exit + next_exits = [LocationName.yoshis_house_tile] + processed_exits = [] + used_exits = list(prefilled_exits.values()) + swap_count = 0 + continue + unreached_candidate = world.random.choice(unreached_exits) + if "Transition - " in unreached_candidate: + candidates = [x for x in processed_exits if "Transition - " in x and x not in prefilled_exits.values()] + else: + if world.options.map_teleport_shuffle != "on_both_mix": + if "Pipe" in unreached_candidate: + candidates = [x for x in processed_exits if "Transition - " not in x and "Pipe" in x] + else: + candidates = [x for x in processed_exits if "Transition - " not in x and "Star Road" in x or x != LocationName.yoshis_house_tile] + else: + candidates = [x for x in processed_exits if "Transition - " not in x and x not in prefilled_exits.values()] + if len(candidates) == 0: + swap_count = 10 + continue + swap_candidate = world.random.choice(candidates) + next_exits.append(swap_candidate) + processed_exits.remove(swap_candidate) + #print ("QUEUE: ", next_exits) + + if len(processed_exits) >= 18: + swap_count += 1 + + # Removes the previous processed entrances from the cache + for entrance in local_region_mapping[swap_candidate]: + if entrance in local_mapping: + value = local_mapping.pop(entrance) + next_exits.append(value) + if value in processed_exits: + processed_exits.remove(value) + if value in used_exits: + used_exits.remove(value) + + for exit in next_exits: + #print ("------------ EXIT ----------------") + #print (f"{exit}") + next_exits.remove(exit) + if exit in processed_exits: + continue + entrances = local_region_mapping[exit] + for entrance in entrances: + if entrance in local_mapping.keys(): + selected_exit = local_mapping[entrance] + #print (f"ENTRANCE IS FULFILLED: {entrance} -> {local_mapping[entrance]}") + else: + banned_exits = used_exits.copy() + banned_exits.append(exit) + banned_exits.extend(local_excluded_destinations[entrance]) + if "Transition - " in entrance: + possible_exits = [x for x in smw_transition_pairs.values() if x not in banned_exits] + else: + if world.options.map_teleport_shuffle == "on_both_same_type": + if "Pipe" in entrance: + possible_exits = [x for x in smw_pipe_pairs.values() if x not in banned_exits] + else: + possible_exits = [x for x in smw_star_pairs.values() if x not in banned_exits] + else: + possible_exits = [x for x in teleport_pairs.values() if x not in banned_exits] + #print (exit, " -> ", entrance, " -> ", possible_exits) + if len(possible_exits) == 0: + continue + selected_exit = world.random.choice(possible_exits) + #print ("SELECTED: ", entrance, " -> ", selected_exit) + used_exits.append(selected_exit) + local_mapping[entrance] = selected_exit + next_exits.append(selected_exit) + + processed_exits.append(exit) + + #print (len(processed_exits), len(local_region_mapping.keys())) + + # Reachabilty check + if len(processed_exits) == len(local_region_mapping.keys()): + #print (" ########################################################## REACHABILTY CHECK ##########################################################") + remaining_exits = list(local_region_mapping.keys()) + check_next_exits = [LocationName.yoshis_house_tile] + + while len(remaining_exits) != 0: + cache_exits = remaining_exits.copy() + for exit in check_next_exits: + if exit not in remaining_exits: + continue + remaining_exits.remove(exit) + check_next_exits.remove(exit) + for entrance in local_region_mapping[exit]: + if entrance not in local_mapping.keys(): + continue + check_next_exits.append(local_mapping[entrance]) + #print (exit, " -> ", entrance, " -> ", local_mapping[entrance]) + #print ("PENDING: ", check_next_exits, "\n") + + if len(cache_exits) == len(remaining_exits) and len(cache_exits) != 0: + # EMERGENCY SWAP + # Marks isolated exits as unreachable + #print ("------------ EMERGENCY ----------------") + #print ("PROCESSED_EXITS: ", processed_exits) + #print ("USED_EXITS: ", used_exits) + #print ("REMAINING_EXITS: ", remaining_exits) + processed_exits = [x for x in processed_exits if x not in remaining_exits] + used_exits = [x for x in used_exits if x not in remaining_exits] + emergency_list = [x for x in processed_exits if x not in prefilled_exits.values()] + if len(emergency_list) == 0: + local_mapping = {} + for entrance, exit in prefilled_exits.items(): + local_mapping[entrance] = exit + next_exits = [LocationName.yoshis_house_tile] + processed_exits = [] + used_exits = list(prefilled_exits.values()) + #print ("PROCESSED_EXITS: ", processed_exits) + #print ("USED_EXITS: ", used_exits) + #print ("LOCAL_MAPPING: ", local_mapping) + #print (" ########################################################## RESTARTING SHUFFLE ##########################################################") + break + + emergency_swap = world.random.choice(emergency_list) + #print ("EMERGENCY_SWAP: ", emergency_swap) + processed_exits.remove(emergency_swap) + if emergency_swap in used_exits: + used_exits.remove(emergency_swap) + #print ("PROCESSED_EXITS: ", processed_exits) + #print ("USED_EXITS: ", used_exits) + #print ("LOCAL_MAPPING: ", local_mapping) + for exit, entrances in local_region_mapping.items(): + if exit not in processed_exits: + for entrance in entrances: + if entrance not in local_mapping.keys(): + continue + value = local_mapping.pop(entrance) + next_exits.append(value) + #print ("LOCAL_MAPPING: ", local_mapping) + #print (" ########################################################## RESTART REQUIRED ##########################################################") + break + + #print (" ########################################################## REACHABILTY END ##########################################################") + + for entrance, exit in local_mapping.items(): + #print (entrance, " -> " ,exit) + if "Transition - " in entrance: + world.transition_pairs[entrance] = exit + else: + world.teleport_pairs[entrance] = exit + + world.reverse_teleport_pairs = {y: x for x, y in world.teleport_pairs.items()} + world.reverse_transition_pairs = {y: x for x, y in world.transition_pairs.items()} + #print ("TELEPORTS: ", world.teleport_pairs) + #print ("TRANSITIONS: ", world.transition_pairs) + + +def handle_silent_events(patch: "SMWProcedurePatch", world: "SMWWorld"): + for connection, event_id in world.cached_connections.items(): + if connection not in smw_offscreen_event_indexes.keys(): + continue + offset = 0x8888D + smw_offscreen_event_indexes[connection][1] + size = smw_offscreen_event_indexes[connection][2] + #print (f"{offset:06X} ({smw_offscreen_event_indexes[connection][1]:02X}) | {event_id:02X} x {size} | {connection}") + patch.write_bytes(offset, bytearray([event_id for _ in range(size)])) + + +def handle_teleport_shuffle(patch: "SMWProcedurePatch", world: "SMWWorld"): + tokens = bytearray([0x00 for _ in range(0x6C)]) + + for new_entrance, new_exit in world.teleport_pairs.items(): + old_entrance = tp_keys[tp_values.index(new_exit)] + old_exit = teleport_pairs[new_entrance] + + offset = smw_teleport_data[old_entrance][0] + tokens[offset:offset+2] = bytearray(smw_teleport_data[new_entrance][1:3]) + offset = 0x36 + smw_teleport_data[old_entrance][0] + tokens[offset:offset+2] = bytearray(smw_teleport_data[new_entrance][3:5]) + offset = smw_teleport_data[old_exit][0] + tokens[offset:offset+2] = bytearray(smw_teleport_data[new_exit][1:3]) + offset = 0x36 + smw_teleport_data[old_exit][0] + tokens[offset:offset+2] = bytearray(smw_teleport_data[new_exit][3:5]) + + if new_exit in smw_offscreen_event_indexes.keys(): + offset = 0x8888D + smw_offscreen_event_indexes[new_exit][1] + size = smw_offscreen_event_indexes[new_exit][2] + patch.write_bytes(offset, bytearray([world.cached_connections[new_entrance] for _ in range(size)])) + + if world.options.map_teleport_shuffle == "on_both_mix" or world.options.map_teleport_shuffle == "on_only_stars": + patch.write_bytes(0x8888D + 0x27, bytearray([0xFF for _ in range(0x05)])) + + patch.write_bytes(0x2049D, tokens) + + +def handle_transition_shuffle(patch: "SMWProcedurePatch", world: "SMWWorld"): + tokens = bytearray([0x00 for _ in range(0x46)]) + extra_tokens = bytearray([0x00 for _ in range(0x1C)]) + + for new_entrance, new_exit in world.transition_pairs.items(): + old_entrance = tr_keys[tr_values.index(new_exit)] + old_exit = smw_transition_pairs[new_entrance] + + offset = smw_transition_data[old_entrance][0] * 0x05 + tokens[offset:offset+5] = bytearray(smw_transition_data[new_entrance][1:6]) + offset = smw_transition_data[old_entrance][0] * 0x02 + extra_tokens[offset:offset+2] = bytearray(smw_transition_data[new_entrance][6:8]) + offset = smw_transition_data[old_entrance][0] + patch.write_byte(0x889D1 + offset, smw_transition_data[new_entrance][8]) + + offset = smw_transition_data[old_exit][0] * 0x05 + tokens[offset:offset+5] = bytearray(smw_transition_data[new_exit][1:6]) + offset = smw_transition_data[old_exit][0] * 0x02 + extra_tokens[offset:offset+2] = bytearray(smw_transition_data[new_exit][6:8]) + offset = smw_transition_data[old_exit][0] + patch.write_byte(0x889D1 + offset, smw_transition_data[new_exit][8]) + + if new_exit in smw_offscreen_event_indexes.keys(): + #print (new_exit) + offset = 0x8888D + smw_offscreen_event_indexes[new_exit][1] + size = smw_offscreen_event_indexes[new_exit][2] + patch.write_bytes(offset, bytearray([world.cached_connections[new_entrance] for _ in range(size)])) + + #print (world.options.map_transition_shuffle, world.options.map_teleport_shuffle) + patch.write_bytes(0x219AA, tokens) + patch.write_bytes(0x219F0, extra_tokens) + #patch.write_byte(0x2273, 0x00) \ No newline at end of file diff --git a/worlds/smw/__init__.py b/worlds/smw/__init__.py index 35778112ee61..7bfdb5245f26 100644 --- a/worlds/smw/__init__.py +++ b/worlds/smw/__init__.py @@ -21,6 +21,7 @@ from .Regions import create_regions, connect_regions from .Rom import patch_rom, SMWProcedurePatch, USHASH from .Rules import set_rules +from .Teleports import generate_entrance_rando class SMWSettings(settings.Group): @@ -95,6 +96,8 @@ def fill_slot_data(self) -> dict: "energy_link", ) slot_data["active_levels"] = self.active_level_dict + slot_data["teleport_pairs"] = self.teleport_pairs + slot_data["transition_pairs"] = self.transition_pairs return slot_data @@ -102,6 +105,16 @@ def generate_early(self): if self.options.early_climb: self.multiworld.local_early_items[self.player][ItemName.mario_climb] = 1 + self.teleport_data = dict() + self.teleport_pairs = dict() + self.reverse_teleport_pairs = dict() + self.cached_connections = dict() + self.transition_pairs = dict() + self.reverse_transition_pairs = dict() + self.transition_data = dict() + + generate_entrance_rando(self) + self.active_level_dict = dict(zip(generate_level_list(self), full_level_list)) if hasattr(self.multiworld, "generation_is_fake"): @@ -110,13 +123,19 @@ def generate_early(self): slot_data = self.multiworld.re_gen_passthrough["Super Mario World"] for x,y in slot_data["active_levels"].items(): self.active_level_dict[int(x)] = y + self.teleport_pairs = slot_data["teleport_pairs"] + self.transition_pairs = slot_data["transition_pairs"] def interpret_slot_data(self, slot_data): local_active_levels = dict() for x, y in slot_data["active_levels"].items(): local_active_levels[x] = y - return {"active_levels": local_active_levels} + return { + "active_levels": local_active_levels, + "teleport_pairs": slot_data["teleport_pairs"], + "transition_pairs": slot_data["transition_pairs"], + } def create_regions(self): @@ -131,11 +150,14 @@ def create_regions(self): connect_regions(self, self.active_level_dict) # Add Boss Token amount requirements for Worlds - add_rule(self.multiworld.get_region(LocationName.donut_plains_1_tile, self.player).entrances[0], lambda state: state.has(ItemName.koopaling, self.player, 1)) - add_rule(self.multiworld.get_region(LocationName.vanilla_dome_1_tile, self.player).entrances[0], lambda state: state.has(ItemName.koopaling, self.player, 2)) - add_rule(self.multiworld.get_region(LocationName.forest_of_illusion_1_tile, self.player).entrances[0], lambda state: state.has(ItemName.koopaling, self.player, 4)) - add_rule(self.multiworld.get_region(LocationName.chocolate_island_1_tile, self.player).entrances[0], lambda state: state.has(ItemName.koopaling, self.player, 5)) - add_rule(self.multiworld.get_region(LocationName.valley_of_bowser_1_tile, self.player).entrances[0], lambda state: state.has(ItemName.koopaling, self.player, 6)) + add_rule(self.multiworld.get_region(LocationName.yi_to_dp, self.player).entrances[0], lambda state: state.has(ItemName.koopaling, self.player, 1)) + #add_rule(self.multiworld.get_region(LocationName.vanilla_dome_1_tile, self.player).entrances[0], lambda state: state.has(ItemName.koopaling, self.player, 2)) + #add_rule(self.multiworld.get_region(LocationName.forest_of_illusion_1_tile, self.player).entrances[0], lambda state: state.has(ItemName.koopaling, self.player, 4)) + #add_rule(self.multiworld.get_region(LocationName.chocolate_island_1_tile, self.player).entrances[0], lambda state: state.has(ItemName.koopaling, self.player, 5)) + #add_rule(self.multiworld.get_region(LocationName.valley_of_bowser_1_tile, self.player).entrances[0], lambda state: state.has(ItemName.koopaling, self.player, 6)) + + #from Utils import visualize_regions + #visualize_regions(self.multiworld.get_region("Menu", self.player), f"./plants/world_{self.player}.puml") exclusion_pool = set() if self.options.exclude_special_zone: @@ -335,6 +357,22 @@ def extend_hint_information(self, hint_data: typing.Dict[int, typing.Dict[int, s hint_data[self.player] = er_hint_data + + def write_spoiler(self, spoiler_handle: typing.TextIO) -> None: + print (self.options.map_teleport_shuffle) + if self.options.map_teleport_shuffle.value != 0: + spoiler_handle.write(f"\nSuper Mario World map teleport shuffle destinations for {self.multiworld.player_name[self.player]}:\n") + + for entrance, exit in self.teleport_pairs.items(): + spoiler_handle.write(f" {entrance} -> {exit}\n") + + if self.options.map_transition_shuffle.value != 0: + spoiler_handle.write(f"\nSuper Mario World map transition shuffle destinations for {self.multiworld.player_name[self.player]}:\n") + + for entrance, exit in self.transition_pairs.items(): + spoiler_handle.write(f" {entrance[13:]} -> {exit[13:]}\n") + + def create_item(self, name: str, force_non_progression=False) -> Item: data = item_table[name] diff --git a/worlds/smw/data/smw_basepatch.bsdiff4 b/worlds/smw/data/smw_basepatch.bsdiff4 index 65e664d32c095126cdbf47372e2c35c5fc31afe6..bfcc828f697e72a6af252200b04f9f5e33b01e74 100644 GIT binary patch literal 34793 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 $XuA{6=57oaanG@i| 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 literal 34882 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 EfZh>Ee*gdg diff --git a/worlds/smw/data/smw_sa1_basepatch.bsdiff4 b/worlds/smw/data/smw_sa1_basepatch.bsdiff4 index f33394cf7e248a0a07134b8af06425bb1fdce90f..699e5a1cd2ba49149ae8e160cbe8357600ada040 100644 GIT binary patch literal 67259 zcmZs>cT^K!)HWJ=s1jCy!eq)SJ7 z2azTy`1yOk_pW>YxX)T=oqcBSnb~L7o;hbfv*mOZRFst9f~J&!|G|Xm|Lp+)$o~j( zCXNz9vc{ac#;$m0s(?w=zyDuc|2=*4zvDM=PXDgmUH-jav!Z(Q^m^=K`)l3m@BH8s z&-U;`>GiwxWkjjEP zJKd_Q!>1Qjx^!oT1M;-D61AqE7heJ<9N`RUPFMhWp(9Z_VLT(@rTirVZ)P!bW*RX8 z|EG49eMFg=&8c2d8V*k#)}3Tc9lOPS|7=15|BgDsDNB?KSxY&y$Qj5P9jB3@ z6T(hK?2bTTJRrc4FdV=Z8jjBhu(5HR22Lhp3A4aanVFCtd_sI3mC}-D&SjW@I8B%| z^~|)URzUm%?Y(SAY07B`YiTH99+sRiDoQEzpNuE3srB#H0GtD9cKQF@0XTv<*dXl6 zBaBXa@nWU$8AnZByMW|9PDf2A(4IYb8bYqA9ZDDqm;~cmX=1+8P+a$pMmb>3EL|F4X~q@vT_E4le&^&g6*M7ytoa+9=1CPJGeN^l%& zB9g3(IgD;t43hRS_)cT8G*#4?B*B6}LHbN{R3yGH%$-MBk``Ni6!Ww{JF&XSr->$QWvuTxLJ?vXErKl+Jm=ld9pl^Q#)7V<+ z^1re+vfbVN^#qhP;wdKK%_pjx^qWRHohGUc^D}tspgcm0tt$;vXxC68tNOI!&X;@F z=c)NOk=TnsQ;qSuSHGm)#XWt846+sNaFVU{sCX&Cw44qgq=bZnfld^sBA5mQX9(jY zjwMZzFj7lVsEkM{k`YZ{UKIHp{q*>rwfRTnD;IzAJkO4=I2-q~IvaBvx8sT^lthJv z5+VD$%+0iXPQywzPoRsvk)WrLv#H_oFvAROWR&Pn+7ZU)nR+>Dh<*Je)szLTA;We` zZZXm2tSUG>+?1IkA_S+MY$msA?(C6j{S4w-;1#}_E;!Vr(7qo4?cS)I^1=X?ILK;CSAscY1tV)S4`05jGY1u@B7~i?Fm&SlJ zd5zkFY4|&i-(_RcV(-Kn=NXg>WKbhRNV`t-PVbcv%d21BxVv~1FK#X&))NZ5Eu00p z)`Ss&i+(0`j-ezcmzxQBAE2y7d&MLh^*1c4|7hXx@Hc!9ZvNHyTOhGBTBJ9;4L`RywjJFMafwoYI6B@)*%cjNpES+@%VhJf)Uu{g7rK-}p@2QCZfl zFMb}inv?<}=5;Dw7j97a>_USHx73k$jG0>cJL4eKp}}p?&fn@Mtc1g^S7mEM|9%@d zI!{%mmQJW9usz(|`PD-vt3r{O`IMQ`P}b@IWXU8BtVnsUK&i&EQ@@IPw%)6X9&Of8-_W6veNJWAenlQigO-bSeh1);Cj;4yz z-5q$^cbMd_|PS`9RCT)e~)Vxpbht`}x=NQBUiKk8LPFou#~nJUh#>v^ZvD)w*94`9&=7cz-4 zYYDHpKYS7E4(TNZa`k*HdBW9rxfI0mhCEg*+CK5YAU^2P=hJ*i5gr|`2-D2biQ4XK zS5|T6;GvF)o-8kKP+hQ_ny$)xZVN%<(OB0$IWZ7UqrE$LedvaC*EKs0ZWv+}aQh?1 z%cx|*auu6F3G_`<{WYt<)}xGXLB=7l#uZa^|M#>#I_ttTnf`s{>kn5B+YzD4O8i5t zA?K$o8M<#Md^KA#bKW__)Ny^6sy`l6aN`sd*r_s@z=?iQE$p7G>0{VMS>)B1mp_#} zc=hhd!{;3*-Vd_}hn4WGhLmvnlxswX$kSjr8^VHkGUo~;1W?XjBCHtlgD1=4ny9;& z%Y5dG-aXB(#1=?t38&t2$hY{L#dLgs7A{+1k|L))gYKdE?b9C~ECkSS#`B~ls;pux zG_|k1h_Yg6?~m$XTP^qSZCOL+yGaJL4fGL_h*&&vhIWcEC{mjclr*dV9!RRMWoo4z z$l+N*{)NKwDuuv1EB*6f{#ry?vNvZG41;0BVmH$VWxabqc9rpIP0duVAyK$2M1H0Z zIbcx#o8>>>eg&C*=+w|nqrtJ<3yn$w5XcA9$ogtXEXF8(DlEJnoxOPDs=>7T=(w4ja#TJAOVKiVshWSF9-D^(%xocb7 zMz2!HnasMmL|B!lz%Vn010}aXyH7^nDo<;Ja4tU8{(MZJ zp|2Yw62pekP<#NvR-j5*y_mlS6_I!-94C$0HmqfV|F{z`w!Y1@ku zIVv=Ym?wfmOODOtr3X713Q~y5#KaMAe|XZc{Pp>1OMk{8{yA{ zBxr&PT#hs#LQSYnnH~y#++6!XiA_igt^8hFn;FG3jTGd9VX`ypxp`Fq6pVW00L(rQ zDLzk;9u4i^<&WuqJJw&r>van0HX;sPorEBIR0X&~xNrbc6{wihM5DDlywDhApw(25 zSy)wVeS%4+(pG`!QXwMH@EY7?TsV##4OSa5phA+AHg?J%MhYI}08FfH?Ad_XA)|!t zl}(j|S_U9_kO?Y<$KV_~R~fw-k5Cjzxz)F@aGG9<@K-y@l2I4UNnymNO2JzwXi{i8 z@L_#FWKD)mlPlbgSK3|<=d1Skn{cHk0FVcX$^4ZF9M)v76}m6PTOiD@6YmcEl;Mu^)(|dhc3&}+T|>9jDb!;KfWvYSP3hKrjQSW zYpaH7Au6bvdU?i%Uq5FHWY4NqHvQ{0FgvtWo`qCgL(r{yVLfL{)Fh4`HjFB02qfJ2 z9JLldygf<-IAd~*QmEuL+PnlBmtR7+WdHmkA(t5>Zg!^Ot*jXvpd_+HP!iq@FfAs$ zSf7p4u6I|n{`R{$(LVp#&JRq%)bBWNi#ORL2-d)t^Q+#OTlE%!fw}MdZA{AwWSvR= z?0YNvb)VY~*eCJ_hExJXa}bp&G;;DHY{Ny6FYr0Ie2#_8YcG@qqp-RHS#X8-)6$aa z9ii`W*6Dvy5To=iEw4`WN+5K@-Zt9(h6|PT@te zXUDyn&xL=p1XzN3^;IK6kVi@3Ppz}_VvR9WX ztrCWtUko5S{> zZWFQ_3Uh*_N~9*6<37?=THhmtq^+?r-x7P3U(**0;J?!cGX9|1{3GTwMS^zF>?k?m zseQHO>)=jg)3kLVOVj8*d?D&dTlmRXX0?C%>#tIzvEg@rzlVgST?>!W!p#*?{f0=&e z@7m}I3Ez1DfZ_&#yF*S+4xss;D*yl_0P<425_u8)2>Rw|dZ%5Azz3z>kpx#{!d5BMP{2F3+Bx5@j`jCr$S+WTo|nwmO}i~&(I@SmF6 z2dqU?aQLOPQX=ejn7URg0xM$z?g-h4CWZ{n*;DTY_7?eaP`*iwrszC$!+e>Rv*;8fF z3xk`&qQV(JA<3W*q?O8OjY>+ri_1)Y!;8}nIqdQ5eQljlZA~%G|D$OM5qyC=Arz^u z{41GB!L#S@o)~I34jttf(F`4#Wb2b}?RR`YM;(QDJwkI;>&gjfP$wg=cYv_o;31=J z_Z|kMyb29oB)XYcPkot#Fk;S>!_uY}aru|atH4nsMz|GR-3ZBWc+xbyKZ=EtSXVXm z!pzeD+K0tNfS87<#YIJz*xWPtQo?{ZHPEEv3f22MgKbm6qKf#V%IIBQ?s8?Emn8 zzgb`W={F*wC>Jt{m6YW6S(@O;E)`sRv1$2sl-b1rl*C9erB0&YJLnGwHEsimFL8J8 zX>H#M%zAgQE#n&baQTHAs77XBcrW)0zwv}v$tK$0MrUbStpX}@ke3ry83Bl*wcWqI z&Me-kt_M%?(p9%uvhV=t6dME~6He#rp3tMEj%Il_I{nYcN)uvXYRI{H=Hr{Sh^nu) zXQRmvHS}xuO+>#+RpALn+h`QytuwG3avWb(!z*wUkYM5itRCe@QK$+3kMbvq%X#H7YpmiBoE9t-3>1nt~Pj40%(4gfcVY%1G zmaP>5mKoiqe4R0hzx7RH06n>x~X`zv7KLwczlkE}xPKr%%oPk)AdBO_;divH5!N2?1~ z)Rp-6H9KX=MmM}KdbY)TLK!JAilr(xu7syrDFp(bwiwLYg7:{uG&Qq+M0yi_AK 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�q)>`zG|B~E-sLE4gU?ze#Z#5H^&k?#a=5r=T zOg5%+7>=s=`*3=TxvyeGjX)Pbbe3y;VFwqh*~qbZ-q@U|g}Whsh-nvHT;7<7)v&0! zSAmGGGAmR)oRF)+y8)!*AI5%%s4JGUyS?J#g2NO-qgEQ}_d9gWi7D077Ht&`(d3DL z8?E645g&f$-2_7H6SW~`}5A=Q^#UB`Ds<=?4L&oJV4&h0>wis6$5c7PjQG^S)0B&lXEV#HyH*9 z{UBu}E4p>N!M{|5Ul{v*(9Qss5XcId)AhvUZ{1B)t*SPsilDYkGa|n+D|Nj>R5|A+ zvozC6IoV-g0%sy6i?~@3Z(vLMJ?l#Y&_~1p7t@h9n{&0b51nL81(o__-S#9H^fhbV}ous8(g5v0AVQ{K13f*WdnFJ@K$()1lsX_e1wVy$20D>BXN%0A_3>7{+5 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 T_&J|X|KjdQrwS4f?ZDLFqD+jA diff --git a/worlds/smw/data/sprite_graphics.bsdiff4 b/worlds/smw/data/sprite_graphics.bsdiff4 index 6ee08a0e11e4851792dcfb27f14f166b4e17d141..04a8b2b067a36c243429d7938de8e3366bae7c27 100644 GIT binary patch delta 991 zcmV<510ejd2a^a9LQ_OZMn*I+Spfh500000YmpHde_$<%A^-t>fB*g-ULRiAxkN%h zK>$GjuMt2302tAL2vraQss+LT0RylB17sSSo{0>a43NTNV?+;6Q%Kqq14)3;nhjL{ zN;KN0iGdhK03a{~z#{+x2AYWgXaE2J0000027v?tkJbu{$-c7ly=Fg%mg7c7r8wS) z8*S%fe|3s81IwynxiYu>%@GraW%T4ELew8LYbB7Mco>ChTo>j;DQ0C3g&vY0hY{ca zARz-@JKCdTKAwz{M5L*h$4)YEe$lB?aycCUVAw@S0E^u~0JanmKJv=ILCAy&1i&mmjt(L4>0bh*yaNLrSBoSG zr8%foY!vciN)U(=03?z~C>n0igcJrt@cj>7YEqa+NPqOHAC?;h55a3Bf=MU%yOJrw zgo6QWNf1I>XgM)KSte6i)kH~M008y>|NqDPM9riKs=27)CL0tujLpa1{> zG(A8700E!_Kxw9GdWQfFG|&KK001-q05kvq$N&b0fE)lc(?9``007Vc0MGyfAOIQ~ z0Mfu=8?{lDLXHk9soy$wtUXC_iiNM55)OO5KP(-rXY@U zVgy={6aj`x5E=xaAy8r<3zU#S<~p$rRZK669{_G>m#n8fcN{33jFu5kAz;;Ke=)-D z$+@5s-hyUB1xgHJgoI64TE62I0?>cO+>uTc NBsEbIS3r}3122WhluiHu delta 892 zcmV-?1B3jN2(bqdLQ_OZMn*I+RRI71000004UrKUe@WB#)Bpi$|Nr_PTEAY{*+4=- zKm))4j)6c1AQ{nsP!UxCr~$wL5d$y)<`{|wqfb*I>S$@FsgMIr12sKQNDTl02&d|5 zo}+324FRA4WY7T9KmY(qAv9`CjRQu8fChj70QCUcYCS~21Di9ak~4&x;D#r*JZT)p zzkKX0e?Md3z}&0IjS*>q+7h->ly!=0Oamr<+Nno@KssqQEHA(|L@1^=@CFBG^vVuWYP@)dWMWZ0iz%?G;Je6pae-o$eBl|ZBJ8b8Vv@9fHVLA(9_a- z8ix%u!3>6)WMsktrhqV-G|7Mj4GtPsrbPh)wLU2S7r#I!2|<(AoC)Im^_^^N9`3+4>VW7 zpeYbQhONoYH@7ZGw=F9049&Nj5Ld3%f_BPa=o19r6#Z24NQp|pocQlSQw3@FyP>dU zw92T?I%gByhn-Hm73^J=a7Z=%HXSlzXH3pG=QjZ@+jJBvA+>Tc`F0TLBKj$Qf1rWp z95UxNvbx3Bx@axDB*cgyT$Z;m!8%!RCq;yT66K15iD>;N&C35G~$-Mp~CNFad%O*ItGD?l*cs>`Fp z9P#wSOiSPf=?8{wPxMYrnh-DGUZp$R^{Y)6!M+;fyBiBaQDZw?Ut8^5%nUF%>Dvav zjQbqCvjT@_C52?yfDu5;ZY>({0w2>ByA=#E6V)_WQqJrsLPbdl76eRGnS%UoLclH$ S_`8xR!i0gimZ5l)