From b1bbc2bb8b00bb48b9e27dc0c5f4d7a91f4a0489 Mon Sep 17 00:00:00 2001 From: Demur Rumed Date: Mon, 11 Aug 2025 12:54:36 +0000 Subject: [PATCH] feedback --- .../dungeons/gerudo_training_ground.cpp | 154 +++++++++--------- .../Enhancements/randomizer/randomizerTypes.h | 16 +- 2 files changed, 85 insertions(+), 85 deletions(-) diff --git a/soh/soh/Enhancements/randomizer/location_access/dungeons/gerudo_training_ground.cpp b/soh/soh/Enhancements/randomizer/location_access/dungeons/gerudo_training_ground.cpp index 08b992e04..dd1a01953 100644 --- a/soh/soh/Enhancements/randomizer/location_access/dungeons/gerudo_training_ground.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/dungeons/gerudo_training_ground.cpp @@ -38,7 +38,7 @@ void RegionTable_Init_GerudoTrainingGround() { Entrance(RR_GERUDO_TRAINING_GROUND_BOULDER_ROOM, []{return Here(RR_GERUDO_TRAINING_GROUND_SAND_ROOM, []{return logic->CanKillEnemy(RE_STALFOS, ED_CLOSE, true, 2, true);});}), }); - areaTable[RR_GERUDO_TRAINING_GROUND_BOULDER_ROOM] = Region("Gerudo Training Ground Left Side", SCENE_GERUDO_TRAINING_GROUND, {}, {}, { + areaTable[RR_GERUDO_TRAINING_GROUND_BOULDER_ROOM] = Region("Gerudo Training Ground Boulder Room", SCENE_GERUDO_TRAINING_GROUND, {}, {}, { Entrance(RR_GERUDO_TRAINING_GROUND_SAND_ROOM, []{return true;}), Entrance(RR_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_ROOM, []{return logic->CanUse(RG_HOOKSHOT) || ctx->GetTrickOption(RT_GTG_WITHOUT_HOOKSHOT);}), }); @@ -64,83 +64,10 @@ void RegionTable_Init_GerudoTrainingGround() { }, { //Exits Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return true;}), - Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_NORTH_LEDGE, []{return logic->CanUse(RG_HOOKSHOT);}), + Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_UPPER_LEDGE, []{return logic->CanUse(RG_HOOKSHOT);}), Entrance(RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE, []{return logic->SmallKeys(RR_GERUDO_TRAINING_GROUND, 9);}), }); - areaTable[RR_GERUDO_TRAINING_GROUND_DINALFOS] = Region("Gerudo Training Dinalfos", SCENE_GERUDO_TRAINING_GROUND, {}, { - //Locations - LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST, logic->CanKillEnemy(RE_BEAMOS) && logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true)), - LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_SOUTH_HEART, true), - LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_EAST_HEART, true), - }, { - //Exits - Entrance(RR_GERUDO_TRAINING_GROUND_LOBBY, []{return true;}), - Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return Here(RR_GERUDO_TRAINING_GROUND_DINALFOS, []{return logic->CanKillEnemy(RE_BEAMOS) && logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true);});}), - }); - - areaTable[RR_GERUDO_TRAINING_GROUND_LAVA_ROOM] = Region("Gerudo Training Ground Lava Room", SCENE_GERUDO_TRAINING_GROUND, { - EventAccess(&logic->GTGPlatformSilverRupees, []{return logic->CanUse(RG_HOOKSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME));}), - }, {}, { - //Exits - Entrance(RR_GERUDO_TRAINING_GROUND_DINALFOS, []{return true;}), - Entrance(RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT, []{return logic->CanUse(RG_SONG_OF_TIME) || logic->IsChild;}), - // possible to make across with adult's rolling jump, only requiring hookshot - Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_NORTH_LEDGE, []{return logic->CanUse(RG_LONGSHOT) || (logic->CanUse(RG_HOOKSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME)));}), - Entrance(RR_GERUDO_TRAINING_GROUND_UNDERWATER, []{return logic->GTGPlatformSilverRupees;}), - }); - - areaTable[RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_NORTH_LEDGE] = Region("Gerudo Training Ground Lava Room", SCENE_GERUDO_TRAINING_GROUND, {}, {}, { - //Exits - // possible to make across with as adult's rolling jump, no hookshot necessary - Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME);}), - Entrance(RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM, []{return true;}), - }); - - areaTable[RR_GERUDO_TRAINING_GROUND_UNDERWATER] = Region("Gerudo Training Ground Underwater", SCENE_GERUDO_TRAINING_GROUND, {}, { - //Locations - LOCATION(RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST, logic->CanUse(RG_SONG_OF_TIME) && logic->CanUse(RG_IRON_BOOTS) && logic->HasItem(RG_BRONZE_SCALE) && logic->WaterTimer() >= 24), - }, { - //Exits - Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return true;}), - }); - - areaTable[RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM] = Region("Gerudo Training Ground Hammer Room", SCENE_GERUDO_TRAINING_GROUND, {}, { - //Locations - LOCATION(RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST, logic->CanAttack()), - LOCATION(RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST, logic->CanUse(RG_MEGATON_HAMMER) || (logic->TakeDamage() && ctx->GetTrickOption(RT_FLAMING_CHESTS))), - }, { - //Exits - Entrance(RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER, []{return logic->CanUse(RG_MEGATON_HAMMER) && logic->CanUse(RG_FAIRY_BOW);}), - Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return true;}), - }); - - areaTable[RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER] = Region("Gerudo Training Ground Eye Statue Lower", SCENE_GERUDO_TRAINING_GROUND, { - //Events - EventAccess(&logic->GTGClearedEyeStatue, []{return logic->CanUse(RG_FAIRY_BOW);}), - }, { - //Locations - LOCATION(RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST, logic->GTGClearedEyeStatue), - }, { - //Exits - Entrance(RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM, []{return true;}), - }); - - areaTable[RR_GERUDO_TRAINING_GROUND_EYE_STATUE_UPPER] = Region("Gerudo Training Ground Eye Statue Upper", SCENE_GERUDO_TRAINING_GROUND, {}, {}, { - //Exits - Entrance(RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER, []{return true;}), - Entrance(RR_GERUDO_TRAINING_GROUND_ABOVE_HEAVY_BLOCK_ROOM, []{return true;}), - Entrance(RR_GERUDO_TRAINING_GROUND_ABOVE_MAZE, []{return logic->GTGClearedEyeStatue;}), - }); - - areaTable[RR_GERUDO_TRAINING_GROUND_ABOVE_MAZE] = Region("Gerudo Training Ground Above Eye", SCENE_GERUDO_TRAINING_GROUND, {}, { - //Locations - LOCATION(RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST, true), - }, { - //Exits - Entrance(RR_GERUDO_TRAINING_GROUND_EYE_STATUE_UPPER, []{return true;}), - }); - areaTable[RR_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_ROOM] = Region("Gerudo Training Ground Heavy Block Room", SCENE_GERUDO_TRAINING_GROUND, { //Events EventAccess(&logic->GTGPushedHeavyBlock, []{return logic->CanUse(RG_SILVER_GAUNTLETS);}), @@ -180,6 +107,79 @@ void RegionTable_Init_GerudoTrainingGround() { Entrance(RR_GERUDO_TRAINING_GROUND_BEHIND_HEAVY_BLOCK, []{return true;}), }); + areaTable[RR_GERUDO_TRAINING_GROUND_EYE_STATUE_UPPER] = Region("Gerudo Training Ground Eye Statue Upper", SCENE_GERUDO_TRAINING_GROUND, {}, {}, { + //Exits + Entrance(RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER, []{return true;}), + Entrance(RR_GERUDO_TRAINING_GROUND_ABOVE_HEAVY_BLOCK_ROOM, []{return true;}), + Entrance(RR_GERUDO_TRAINING_GROUND_ABOVE_MAZE, []{return logic->GTGClearedEyeStatue;}), + }); + + areaTable[RR_GERUDO_TRAINING_GROUND_ABOVE_MAZE] = Region("Gerudo Training Ground Above Eye", SCENE_GERUDO_TRAINING_GROUND, {}, { + //Locations + LOCATION(RC_GERUDO_TRAINING_GROUND_NEAR_SCARECROW_CHEST, true), + }, { + //Exits + Entrance(RR_GERUDO_TRAINING_GROUND_EYE_STATUE_UPPER, []{return true;}), + }); + + areaTable[RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER] = Region("Gerudo Training Ground Eye Statue Lower", SCENE_GERUDO_TRAINING_GROUND, { + //Events + EventAccess(&logic->GTGClearedEyeStatue, []{return logic->CanUse(RG_FAIRY_BOW);}), + }, { + //Locations + LOCATION(RC_GERUDO_TRAINING_GROUND_EYE_STATUE_CHEST, logic->GTGClearedEyeStatue), + }, { + //Exits + Entrance(RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM, []{return true;}), + }); + + areaTable[RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM] = Region("Gerudo Training Ground Hammer Room", SCENE_GERUDO_TRAINING_GROUND, {}, { + //Locations + LOCATION(RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_CLEAR_CHEST, logic->CanAttack()), + LOCATION(RC_GERUDO_TRAINING_GROUND_HAMMER_ROOM_SWITCH_CHEST, logic->CanUse(RG_MEGATON_HAMMER) || (logic->TakeDamage() && ctx->GetTrickOption(RT_FLAMING_CHESTS))), + }, { + //Exits + Entrance(RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER, []{return logic->CanUse(RG_MEGATON_HAMMER) && logic->CanUse(RG_FAIRY_BOW);}), + Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return true;}), + }); + + areaTable[RR_GERUDO_TRAINING_GROUND_LAVA_ROOM] = Region("Gerudo Training Ground Lava Room", SCENE_GERUDO_TRAINING_GROUND, { + EventAccess(&logic->GTGPlatformSilverRupees, []{return logic->CanUse(RG_HOOKSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME));}), + }, {}, { + //Exits + Entrance(RR_GERUDO_TRAINING_GROUND_DINALFOS, []{return true;}), + Entrance(RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT, []{return logic->CanUse(RG_SONG_OF_TIME) || logic->IsChild;}), + // possible to make across with adult's rolling jump, only requiring hookshot + Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_UPPER_LEDGE, []{return logic->CanUse(RG_LONGSHOT) || (logic->CanUse(RG_HOOKSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME)));}), + Entrance(RR_GERUDO_TRAINING_GROUND_UNDERWATER, []{return logic->GTGPlatformSilverRupees;}), + }); + + areaTable[RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_UPPER_LEDGE] = Region("Gerudo Training Ground Lava Room", SCENE_GERUDO_TRAINING_GROUND, {}, {}, { + //Exits + // possible to make across with as adult's rolling jump, no hookshot necessary + Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME);}), + Entrance(RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM, []{return true;}), + }); + + areaTable[RR_GERUDO_TRAINING_GROUND_UNDERWATER] = Region("Gerudo Training Ground Underwater", SCENE_GERUDO_TRAINING_GROUND, {}, { + //Locations + LOCATION(RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST, logic->CanUse(RG_SONG_OF_TIME) && logic->CanUse(RG_IRON_BOOTS) && logic->HasItem(RG_BRONZE_SCALE) && logic->WaterTimer() >= 24), + }, { + //Exits + Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return true;}), + }); + + areaTable[RR_GERUDO_TRAINING_GROUND_DINALFOS] = Region("Gerudo Training Dinalfos", SCENE_GERUDO_TRAINING_GROUND, {}, { + //Locations + LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_CHEST, logic->CanKillEnemy(RE_BEAMOS) && logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true)), + LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_SOUTH_HEART, true), + LOCATION(RC_GERUDO_TRAINING_GROUND_BEAMOS_EAST_HEART, true), + }, { + //Exits + Entrance(RR_GERUDO_TRAINING_GROUND_LOBBY, []{return true;}), + Entrance(RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, []{return Here(RR_GERUDO_TRAINING_GROUND_DINALFOS, []{return logic->CanKillEnemy(RE_BEAMOS) && logic->CanKillEnemy(RE_DINOLFOS, ED_CLOSE, true, 2, true);});}), + }); + #pragma endregion #pragma region MQ @@ -250,9 +250,9 @@ void RegionTable_Init_GerudoTrainingGround() { areaTable[RR_GERUDO_TRAINING_GROUND_MQ_STALFOS_ROOM] = Region("Gerudo Training Ground MQ Stalfos Room", SCENE_GERUDO_TRAINING_GROUND, { //Events - EventAccess(&logic->BlueFireAccess, []{return true;}), + EventAccess(&logic->BlueFireAccess, []{return true;}), EventAccess(&logic->GTGUnlockedDoorBehindHeavyBlock, []{return Here(RR_GERUDO_TRAINING_GROUND_MQ_STALFOS_ROOM, []{return logic->CanKillEnemy(RE_STALFOS, ED_CLOSE, true, 2, true);});}), - EventAccess(&logic->GTGPushedHeavyBlock, []{return logic->CanUse(RG_SILVER_GAUNTLETS);}), + EventAccess(&logic->GTGPushedHeavyBlock, []{return logic->CanUse(RG_SILVER_GAUNTLETS) && logic->CanAvoidEnemy(RE_STALFOS, true, 2);}), }, { //Locations //implies logic->CanKillEnemy(RE_BIG_SKULLTULA) diff --git a/soh/soh/Enhancements/randomizer/randomizerTypes.h b/soh/soh/Enhancements/randomizer/randomizerTypes.h index bc5cd5878..71f5c7ff5 100644 --- a/soh/soh/Enhancements/randomizer/randomizerTypes.h +++ b/soh/soh/Enhancements/randomizer/randomizerTypes.h @@ -1005,18 +1005,18 @@ typedef enum { RR_GERUDO_TRAINING_GROUND_BOULDER_ROOM, RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE, RR_GERUDO_TRAINING_GROUND_CENTRAL_MAZE_RIGHT, - RR_GERUDO_TRAINING_GROUND_DINALFOS, - RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, - RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_NORTH_LEDGE, - RR_GERUDO_TRAINING_GROUND_UNDERWATER, - RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM, - RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER, - RR_GERUDO_TRAINING_GROUND_EYE_STATUE_UPPER, - RR_GERUDO_TRAINING_GROUND_ABOVE_MAZE, RR_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_ROOM, RR_GERUDO_TRAINING_GROUND_ABOVE_HEAVY_BLOCK_ROOM, RR_GERUDO_TRAINING_GROUND_BEHIND_HEAVY_BLOCK, RR_GERUDO_TRAINING_GROUND_LIKE_LIKE_ROOM, + RR_GERUDO_TRAINING_GROUND_EYE_STATUE_UPPER, + RR_GERUDO_TRAINING_GROUND_ABOVE_MAZE, + RR_GERUDO_TRAINING_GROUND_EYE_STATUE_LOWER, + RR_GERUDO_TRAINING_GROUND_HAMMER_ROOM, + RR_GERUDO_TRAINING_GROUND_LAVA_ROOM, + RR_GERUDO_TRAINING_GROUND_LAVA_ROOM_UPPER_LEDGE, + RR_GERUDO_TRAINING_GROUND_UNDERWATER, + RR_GERUDO_TRAINING_GROUND_DINALFOS, RR_GERUDO_TRAINING_GROUND_MQ_LOBBY, RR_GERUDO_TRAINING_GROUND_MQ_MAZE_BY_LOBBY,