diff options
| author | Garrett Cox <garrettjcox@gmail.com> | 2026-02-25 11:58:00 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-25 11:58:00 -0600 |
| commit | 0fa8ba899761028f369bc4659fea4a6116281ab9 (patch) | |
| tree | a60ceca38e5d04fa75ad7af72b14e8d7241920ec | |
| parent | 3f19fb9bc041cc1f2dc5e732b2c5c67e6f60e95d (diff) | |
small logic fixes (#1577)
| -rw-r--r-- | mm/2s2h/Rando/Logic/Logic.h | 6 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/North.cpp | 4 | ||||
| -rw-r--r-- | mm/2s2h/Rando/Logic/Regions/South.cpp | 6 |
3 files changed, 8 insertions, 8 deletions
diff --git a/mm/2s2h/Rando/Logic/Logic.h b/mm/2s2h/Rando/Logic/Logic.h index 313442607..edf12ea89 100644 --- a/mm/2s2h/Rando/Logic/Logic.h +++ b/mm/2s2h/Rando/Logic/Logic.h @@ -186,9 +186,9 @@ void ValidateRegionTimeOwnership(RandoRegionId regionId, RandoCheckId checkId, u #define HAS_MAGIC (gSaveContext.save.saveInfo.playerData.isMagicAcquired) #define CAN_HOOK_SCARECROW \ (HAS_ITEM(ITEM_OCARINA_OF_TIME) && HAS_ITEM(ITEM_HOOKSHOT) && canPlaySong(OCARINA_SONG_SCARECROW_SPAWN)) -#define CAN_USE_EXPLOSIVE \ - ((HAS_ITEM(ITEM_BOMB) || HAS_ITEM(ITEM_BOMBCHU) || HAS_ITEM(ITEM_MASK_BLAST) || \ - (HAS_ITEM(ITEM_POWDER_KEG) && CAN_BE_GORON))) +#define CAN_USE_EXPLOSIVE \ + (HAS_ITEM(ITEM_BOMB) || HAS_ITEM(ITEM_BOMBCHU) || \ + (HAS_ITEM(ITEM_MASK_BLAST) && GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SHIELD) > EQUIP_VALUE_SHIELD_NONE)) #define CAN_USE_HUMAN_SWORD (GET_CUR_EQUIP_VALUE(EQUIP_TYPE_SWORD) >= EQUIP_VALUE_SWORD_KOKIRI) #define CAN_USE_SWORD (CAN_USE_HUMAN_SWORD || HAS_ITEM(ITEM_SWORD_GREAT_FAIRY) || CAN_BE_DEITY) // Be careful here, as some checks require you to play the song as a specific form diff --git a/mm/2s2h/Rando/Logic/Regions/North.cpp b/mm/2s2h/Rando/Logic/Regions/North.cpp index b7e38e41f..b5a231200 100644 --- a/mm/2s2h/Rando/Logic/Regions/North.cpp +++ b/mm/2s2h/Rando/Logic/Regions/North.cpp @@ -465,7 +465,7 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_ENEMY_DROP_MINI_BABA, CanKillEnemy(ACTOR_EN_KAREBABA)), }, .exits = { // TO FROM - EXIT(ENTRANCE(PATH_TO_SNOWHEAD, 0), ENTRANCE(GROTTOS, 25), true), + EXIT(ENTRANCE(PATH_TO_SNOWHEAD, 1), ENTRANCE(GROTTOS, 25), true), }, }; Regions[RR_PATH_TO_SNOWHEAD_LOWER] = RandoRegion{ .sceneId = SCENE_14YUKIDAMANOMITI, @@ -505,7 +505,7 @@ static RegisterShipInitFunc initFunc([]() { }, .exits = { // TO FROM EXIT(ENTRANCE(SNOWHEAD, 0), ENTRANCE(PATH_TO_SNOWHEAD, 1), true), - EXIT(ENTRANCE(GROTTOS, 25), ENTRANCE(PATH_TO_SNOWHEAD, 0), CAN_USE_EXPLOSIVE), + EXIT(ENTRANCE(GROTTOS, 25), ENTRANCE(PATH_TO_SNOWHEAD, 1), CAN_USE_EXPLOSIVE), }, .connections = { CONNECTION(RR_PATH_TO_SNOWHEAD_MIDDLE, CAN_BE_GORON && HAS_MAGIC), diff --git a/mm/2s2h/Rando/Logic/Regions/South.cpp b/mm/2s2h/Rando/Logic/Regions/South.cpp index c165e9765..2950ad592 100644 --- a/mm/2s2h/Rando/Logic/Regions/South.cpp +++ b/mm/2s2h/Rando/Logic/Regions/South.cpp @@ -228,7 +228,7 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_ROAD_TO_SOUTHERN_SWAMP] = RandoRegion{ .sceneId = SCENE_24KEMONOMITI, .checks = { - CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_PIECE_OF_HEART, CanKillEnemy(ACTOR_EN_BAT)), + CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_PIECE_OF_HEART, CanKillEnemy(ACTOR_EN_BAT) && (CAN_USE_PROJECTILE || HAS_ITEM(ITEM_BOMBCHU))), CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_TINGLE_MAP_01, CAN_USE_PROJECTILE && CAN_AFFORD(RC_ROAD_TO_SOUTHERN_SWAMP_TINGLE_MAP_01)), CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_TINGLE_MAP_02, CAN_USE_PROJECTILE && CAN_AFFORD(RC_ROAD_TO_SOUTHERN_SWAMP_TINGLE_MAP_02)), CHECK(RC_ROAD_TO_SOUTHERN_SWAMP_GRASS_01, true), @@ -293,7 +293,7 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_ENEMY_DROP_MINI_BABA, CanKillEnemy(ACTOR_EN_KAREBABA)), }, .exits = { // TO FROM - EXIT(ENTRANCE(SOUTHERN_SWAMP_POISONED, 0), ENTRANCE(GROTTOS, 21), true), + EXIT(ENTRANCE(SOUTHERN_SWAMP_POISONED, 3), ENTRANCE(GROTTOS, 21), true), }, }; Regions[RR_SOUTHERN_SWAMP_NORTH] = RandoRegion{ .name = "North Tourist Section", .sceneId = SCENE_20SICHITAI, @@ -432,7 +432,7 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_SOUTHERN_SWAMP_SOUTH] = RandoRegion{ .name = "South Section", .sceneId = SCENE_20SICHITAI, .exits = { // TO FROM - EXIT(ENTRANCE(GROTTOS, 21), ENTRANCE(SOUTHERN_SWAMP_POISONED, 0), CAN_BE_DEKU || (RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE] && CAN_TRAVERSE_WAIST_DEEP_WATER)), + EXIT(ENTRANCE(GROTTOS, 21), ENTRANCE(SOUTHERN_SWAMP_POISONED, 3), CAN_BE_DEKU || (RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE] && CAN_TRAVERSE_WAIST_DEEP_WATER)), EXIT(ENTRANCE(DEKU_PALACE, 0), ENTRANCE(SOUTHERN_SWAMP_POISONED, 3), true), EXIT(ENTRANCE(SWAMP_SPIDER_HOUSE, 0), ENTRANCE(SOUTHERN_SWAMP_POISONED, 8), CAN_LIGHT_TORCH_NEAR_ANOTHER && (CAN_BE_DEKU || (RANDO_EVENTS[RE_CLEARED_WOODFALL_TEMPLE] && (CAN_USE_ABILITY(SWIM) || CAN_BE_ZORA)))), }, |
