diff --git a/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp b/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp index 0dc68bd1044..ee861f3c2b8 100644 --- a/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp @@ -2259,27 +2259,55 @@ void StaticData::HintTable_Init_Exclude_Overworld() { hintTextTable[RHT_BUTTERFLY_FAIRY_HYRULE_CASTLE] = HintText(CustomMessage("They say that a #butterfly near the castle# reveals #[[1]]#.", /*german*/ "Man erzählt sich, daß ein #Schmetterling in der Nähe des Schlosses# #[[1]]# enthülle.", - /*french*/ "Selon moi, une #un papillon près du château# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + /*french*/ "Selon moi, #un papillon près du château# révèle #[[1]]#.", {QM_RED, QM_GREEN})); hintTextTable[RHT_BUTTERFLY_FAIRY_LOST_WOODS] = HintText(CustomMessage("They say that a #butterfly in the woods# reveals #[[1]]#.", /*german*/ "Man erzählt sich, daß ein #Schmetterling im Wald# #[[1]]# enthülle.", - /*french*/ "Selon moi, une #un papillon dans les bois# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + /*french*/ "Selon moi, #un papillon dans les bois# révèle #[[1]]#.", {QM_RED, QM_GREEN})); hintTextTable[RHT_BUTTERFLY_FAIRY_GRAVEYARD] = HintText(CustomMessage("They say that a #butterfly in the graveyard# reveals #[[1]]#.", /*german*/ "Man erzählt sich, daß ein #Schmetterling auf dem Friedhof# #[[1]]# enthülle.", - /*french*/ "Selon moi, une #un papillon dans le cimetière# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + /*french*/ "Selon moi, #un papillon dans le cimetière# révèle #[[1]]#.", {QM_RED, QM_GREEN})); hintTextTable[RHT_BUTTERFLY_FAIRY_ZORAS_RIVER] = HintText(CustomMessage("They say that a #butterfly near a river# reveals #[[1]]#.", /*german*/ "Man erzählt sich, daß ein #Schmetterling in der Nähe eines Flusses# #[[1]]# enthülle.", - /*french*/ "Selon moi, une #un papillon près d'une rivière# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + /*french*/ "Selon moi, #un papillon près d'une rivière# révèle #[[1]]#.", {QM_RED, QM_GREEN})); hintTextTable[RHT_BUTTERFLY_FAIRY_ZORAS_FOUNTAIN] = HintText(CustomMessage("They say that a #butterfly on a log# reveals #[[1]]#.", /*german*/ "Man erzählt sich, daß ein #Schmetterling auf einem Baumstamm# #[[1]]# enthülle.", - /*french*/ "Selon moi, une #un papillon sur une bûche# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + /*french*/ "Selon moi, #un papillon sur une bûche# révèle #[[1]]#.", {QM_RED, QM_GREEN})); hintTextTable[RHT_BUTTERFLY_FAIRY_LAKE_HYLIA] = HintText(CustomMessage("They say that a #butterfly near a lake# reveals #[[1]]#.", /*german*/ "Man erzählt sich, daß ein #Schmetterling in der Nähe eines Sees# #[[1]]# enthülle.", - /*french*/ "Selon moi, une #un papillon près d'un lac# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + /*french*/ "Selon moi, #un papillon près d'un lac# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_BUTTERFLY_FAIRY_KF_GROTTO] = HintText(CustomMessage("They say that a #butterfly in a forest village grotto# reveals #[[1]]#.", + /*german*/ "Man erzählt sich, daß ein #Schmetterling in einer Grotte des Walddorfes# #[[1]]# enthülle.", + /*french*/ "Selon moi, #un papillon dans une grotte du village de la forêt# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_BUTTERFLY_FAIRY_LW_GROTTO] = HintText(CustomMessage("They say that a #butterfly underground in the woods# reveals #[[1]]#.", + /*german*/ "Man erzählt sich, daß ein #Schmetterling unterirdisch im Wald# #[[1]]# enthülle.", + /*french*/ "Selon moi, #un papillon sous terre dans les bois# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_BUTTERFLY_FAIRY_DMT_GROTTO] = HintText(CustomMessage("They say that a #butterfly underground near a mountain village# reveals #[[1]]#.", + /*german*/ "Man erzählt sich, daß ein #Schmetterling unterirdisch nahe eines Bergdorfes# #[[1]]# enthülle.", + /*french*/ "Selon moi, #un papillon sous terre près d'un village de montagne# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_BUTTERFLY_FAIRY_DMC_GROTTO] = HintText(CustomMessage("They say that a #butterfly underground in a crater# reveals #[[1]]#.", + /*german*/ "Man erzählt sich, daß ein #Schmetterling unterirdisch in einem Krater# #[[1]]# enthülle.", + /*french*/ "Selon moi, #un papillon sous terre dans un cratère# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_BUTTERFLY_FAIRY_HF_GROTTO] = HintText(CustomMessage("They say that a #butterfly underground in a field# reveals #[[1]]#.", + /*german*/ "Man erzählt sich, daß ein #Schmetterling unterirdisch auf einem Feld# #[[1]]# enthülle.", + /*french*/ "Selon moi, #un papillon sous terre dans un champ# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_BUTTERFLY_FAIRY_KAK_GROTTO] = HintText(CustomMessage("They say that a #butterfly underground in Kakariko# reveals #[[1]]#.", + /*german*/ "Man erzählt sich, daß ein #Schmetterling unterirdisch in Kakariko# #[[1]]# enthülle.", + /*french*/ "Selon moi, #un papillon sous terre dans Cocorico# révèle #[[1]]#.", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_BUTTERFLY_FAIRY_ZR_GROTTO] = HintText(CustomMessage("They say that a #butterfly underground near a river# reveals #[[1]]#.", + /*german*/ "Man erzählt sich, daß ein #Schmetterling unterirdisch in der Nähe eines Flusses# #[[1]]# enthülle.", + /*french*/ "Selon moi, #un papillon sous terre près d'une rivière# révèle #[[1]]#.", {QM_RED, QM_GREEN})); hintTextTable[RHT_SIGN_KOKIRI_FOREST] = HintText(CustomMessage("They say that #reading a sign in a forest# reveals #[[1]]#.", /*german*/ "Man erzählt sich, daß das #Lesen eines Schildes in einem Wald# #[[1]]# enthülle.", diff --git a/soh/soh/Enhancements/randomizer/ShuffleFairies.cpp b/soh/soh/Enhancements/randomizer/ShuffleFairies.cpp index e424d54bc72..3c3f9bb435a 100644 --- a/soh/soh/Enhancements/randomizer/ShuffleFairies.cpp +++ b/soh/soh/Enhancements/randomizer/ShuffleFairies.cpp @@ -208,9 +208,9 @@ void RegisterShuffleFairies() { COND_VB_SHOULD(VB_SPAWN_BUTTERFLY_FAIRY, shouldRegisterButterfly, { if (*should) { EnButte* enButte = va_arg(args, EnButte*); + int32_t params = (gPlayState->sceneNum == SCENE_GROTTOS) ? Grotto_CurrentGrotto() : enButte->actor.params; if (SpawnFairy(enButte->actor.focus.pos.x, enButte->actor.focus.pos.y, enButte->actor.focus.pos.z, - TWO_ACTOR_PARAMS(enButte->actor.params, (int32_t)enButte->actor.home.pos.y), FAIRY_HEAL, - ACTOR_EN_BUTTE)) { + TWO_ACTOR_PARAMS(params, (int32_t)enButte->actor.home.pos.y), FAIRY_HEAL, ACTOR_EN_BUTTE)) { *should = false; } } @@ -421,16 +421,25 @@ void Rando::StaticData::RegisterFairyLocations() { locationTable[RC_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY] = Location::SongFairy(RC_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x1000, 741), "Deku Scrub Grotto Sun's Song Fairy", RHT_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_DEKU_SCRUB_GROTTO_SUN_FAIRY)); locationTable[RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY] = Location::SongFairy(RC_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_ROYAL_FAMILYS_TOMB, TWO_ACTOR_PARAMS(0x1000, 1476), "Royal Family's Tomb Sun's Song Fairy", RHT_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY)); - locationTable[RC_HC_NEAR_WALL_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HC_NEAR_WALL_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(1, 1476), "Near Wall Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HYRULE_CASTLE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_NEAR_WALL_BUTTERFLY_FAIRY)); - locationTable[RC_HC_NEAR_STAIRS_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HC_NEAR_STAIRS_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(1, 1493), "Near Stairs Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HYRULE_CASTLE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_NEAR_STAIRS_BUTTERFLY_FAIRY)); - locationTable[RC_HC_NEAR_BOULDER_PATH_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HC_NEAR_BOULDER_PATH_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(1, 1413), "Near Boulder Path Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HYRULE_CASTLE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_NEAR_BOULDER_PATH_BUTTERFLY_FAIRY)); - locationTable[RC_HC_NEAR_ARCHWAY_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HC_NEAR_ARCHWAY_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(1, 1478), "Near Archway Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HYRULE_CASTLE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_NEAR_ARCHWAY_BUTTERFLY_FAIRY)); - locationTable[RC_LW_MEADOW_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_LW_MEADOW_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(1, 28), "Meadow Butterfly Fairy", RHT_BUTTERFLY_FAIRY_LOST_WOODS, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_MEADOW_BUTTERFLY_FAIRY)); - locationTable[RC_GY_NEAR_HUT_GRAVE_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_GY_NEAR_HUT_GRAVE_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(1, 137), "Grave Butterfly Fairy", RHT_BUTTERFLY_FAIRY_GRAVEYARD, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_NEAR_HUT_GRAVE_BUTTERFLY_FAIRY)); - locationTable[RC_ZR_NEAR_ROCK_CIRCLE_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_ZR_NEAR_ROCK_CIRCLE_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(1, 164), "Near Rock Circle Butterfly Fairy", RHT_BUTTERFLY_FAIRY_ZORAS_RIVER, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_NEAR_ROCK_CIRCLE_BUTTERFLY_FAIRY)); - locationTable[RC_ZR_WATERFALL_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_ZR_WATERFALL_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(1, 1010), "Waterfall Butterfly Fairy", RHT_BUTTERFLY_FAIRY_ZORAS_RIVER, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_WATERFALL_BUTTERFLY_FAIRY)); - locationTable[RC_ZF_LOG_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_ZF_LOG_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_ZORAS_FOUNTAIN, SCENE_ZORAS_FOUNTAIN, TWO_ACTOR_PARAMS(1, 169), "Log Butterfly Fairy", RHT_BUTTERFLY_FAIRY_ZORAS_FOUNTAIN, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_LOG_BUTTERFLY_FAIRY)); - locationTable[RC_LH_SCARECROW_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_LH_SCARECROW_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(1, -1254), "Scarecrow Butterfly Fairy", RHT_BUTTERFLY_FAIRY_LAKE_HYLIA, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_SCARECROW_BUTTERFLY_FAIRY)); + locationTable[RC_HC_NEAR_WALL_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HC_NEAR_WALL_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(1, 1476), "Near Wall Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HYRULE_CASTLE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_NEAR_WALL_BUTTERFLY_FAIRY)); + locationTable[RC_HC_NEAR_STAIRS_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HC_NEAR_STAIRS_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(1, 1493), "Near Stairs Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HYRULE_CASTLE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_NEAR_STAIRS_BUTTERFLY_FAIRY)); + locationTable[RC_HC_NEAR_BOULDER_PATH_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HC_NEAR_BOULDER_PATH_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(1, 1413), "Near Boulder Path Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HYRULE_CASTLE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_NEAR_BOULDER_PATH_BUTTERFLY_FAIRY)); + locationTable[RC_HC_NEAR_ARCHWAY_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HC_NEAR_ARCHWAY_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(1, 1478), "Near Archway Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HYRULE_CASTLE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_NEAR_ARCHWAY_BUTTERFLY_FAIRY)); + locationTable[RC_LW_MEADOW_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_LW_MEADOW_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(1, 28), "Meadow Butterfly Fairy", RHT_BUTTERFLY_FAIRY_LOST_WOODS, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_MEADOW_BUTTERFLY_FAIRY)); + locationTable[RC_GY_NEAR_HUT_GRAVE_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_GY_NEAR_HUT_GRAVE_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(1, 137), "Grave Butterfly Fairy", RHT_BUTTERFLY_FAIRY_GRAVEYARD, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_NEAR_HUT_GRAVE_BUTTERFLY_FAIRY)); + locationTable[RC_ZR_NEAR_ROCK_CIRCLE_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_ZR_NEAR_ROCK_CIRCLE_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(1, 164), "Near Rock Circle Butterfly Fairy", RHT_BUTTERFLY_FAIRY_ZORAS_RIVER, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_NEAR_ROCK_CIRCLE_BUTTERFLY_FAIRY)); + locationTable[RC_ZR_WATERFALL_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_ZR_WATERFALL_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(1, 1010), "Waterfall Butterfly Fairy", RHT_BUTTERFLY_FAIRY_ZORAS_RIVER, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_WATERFALL_BUTTERFLY_FAIRY)); + locationTable[RC_ZF_LOG_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_ZF_LOG_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_ZORAS_FOUNTAIN, SCENE_ZORAS_FOUNTAIN, TWO_ACTOR_PARAMS(1, 169), "Log Butterfly Fairy", RHT_BUTTERFLY_FAIRY_ZORAS_FOUNTAIN, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_LOG_BUTTERFLY_FAIRY)); + locationTable[RC_LH_SCARECROW_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_LH_SCARECROW_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(1, -1254), "Scarecrow Butterfly Fairy", RHT_BUTTERFLY_FAIRY_LAKE_HYLIA, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_SCARECROW_BUTTERFLY_FAIRY)); + locationTable[RC_KF_STORMS_GROTTO_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_KF_STORMS_GROTTO_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x1B, 44), "Storms Grotto Butterfly Fairy", RHT_BUTTERFLY_FAIRY_KF_GROTTO, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_STORMS_GROTTO_BUTTERFLY_FAIRY)); + locationTable[RC_LW_TUNNEL_GROTTO_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_LW_TUNNEL_GROTTO_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x1A, 44), "Tunnel Grotto Butterfly Fairy", RHT_BUTTERFLY_FAIRY_LW_GROTTO, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_TUNNEL_GROTTO_BUTTERFLY_FAIRY)); + locationTable[RC_DMT_STORMS_GROTTO_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_DMT_STORMS_GROTTO_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x8, 44), "Storms Grotto Butterfly Fairy", RHT_BUTTERFLY_FAIRY_DMT_GROTTO, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMT_STORMS_GROTTO_BUTTERFLY_FAIRY)); + locationTable[RC_DMC_UPPER_BOULDER_GROTTO_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_DMC_UPPER_BOULDER_GROTTO_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x6, 44), "Upper Boulder Grotto Butterfly Fairy", RHT_BUTTERFLY_FAIRY_DMC_GROTTO, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMC_UPPER_BOULDER_GROTTO_BUTTERFLY_FAIRY)); + locationTable[RC_HF_NEAR_MARKET_GROTTO_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HF_NEAR_MARKET_GROTTO_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x10, 44), "Near Market Grotto Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HF_GROTTO, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_MARKET_GROTTO_BUTTERFLY_FAIRY)); + locationTable[RC_HF_SOUTHEAST_BOULDER_GROTTO_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HF_SOUTHEAST_BOULDER_GROTTO_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x14, 44), "Southeast Boulder Grotto Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HF_GROTTO, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTHEAST_BOULDER_GROTTO_BUTTERFLY_FAIRY)); + locationTable[RC_HF_OPEN_GROTTO_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_HF_OPEN_GROTTO_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x13, 44), "Open Grotto Butterfly Fairy", RHT_BUTTERFLY_FAIRY_HF_GROTTO, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_OPEN_GROTTO_BUTTERFLY_FAIRY)); + locationTable[RC_KAK_OPEN_GROTTO_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_KAK_OPEN_GROTTO_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_KAKARIKO_VILLAGE, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0xA, 44), "Open Grotto Butterfly Fairy", RHT_BUTTERFLY_FAIRY_KAK_GROTTO, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_OPEN_GROTTO_BUTTERFLY_FAIRY)); + locationTable[RC_ZR_OPEN_GROTTO_BUTTERFLY_FAIRY] = Location::ButterflyFairy(RC_ZR_OPEN_GROTTO_BUTTERFLY_FAIRY, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_GROTTOS, TWO_ACTOR_PARAMS(0x4, 44), "Open Grotto Butterfly Fairy", RHT_BUTTERFLY_FAIRY_ZR_GROTTO, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_OPEN_GROTTO_BUTTERFLY_FAIRY)); locationTable[RC_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY] = Location::SongFairy(RC_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY, RCQUEST_VANILLA,RCAREA_SPIRIT_TEMPLE, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(0x1000, -1896), "After Boulder Room Sun's Song Fairy", RHT_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY)); locationTable[RC_SPIRIT_TEMPLE_ARMOS_ROOM_SUN_FAIRY] = Location::SongFairy(RC_SPIRIT_TEMPLE_ARMOS_ROOM_SUN_FAIRY, RCQUEST_VANILLA,RCAREA_SPIRIT_TEMPLE, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(0x1000, -220), "Four Armos Room Sun's Song Fairy", RHT_SPIRIT_TEMPLE_ARMOS_ROOM_SUN_FAIRY, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_ARMOS_ROOM_SUN_FAIRY)); diff --git a/soh/soh/Enhancements/randomizer/location_access/overworld/death_mountain_crater.cpp b/soh/soh/Enhancements/randomizer/location_access/overworld/death_mountain_crater.cpp index 5d97da1d978..ef96498d51c 100644 --- a/soh/soh/Enhancements/randomizer/location_access/overworld/death_mountain_crater.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/overworld/death_mountain_crater.cpp @@ -373,17 +373,18 @@ void RegionTable_Init_DeathMountainCrater() { areaTable[RR_DMC_UPPER_GROTTO] = Region("DMC Upper Grotto", SCENE_GROTTOS, grottoEvents, { //Locations - LOCATION(RC_DMC_UPPER_GROTTO_CHEST, logic->HasItem(RG_OPEN_CHEST)), - LOCATION(RC_DMC_UPPER_GROTTO_FISH, logic->HasBottle()), - LOCATION(RC_DMC_UPPER_GROTTO_GOSSIP_STONE_FAIRY, logic->CallGossipFairy()), - LOCATION(RC_DMC_UPPER_GROTTO_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)), - LOCATION(RC_DMC_UPPER_GROTTO_GOSSIP_STONE, true), - LOCATION(RC_DMC_UPPER_GROTTO_BEEHIVE_LEFT, logic->CanBreakLowerBeehives()), - LOCATION(RC_DMC_UPPER_GROTTO_BEEHIVE_RIGHT, logic->CanBreakLowerBeehives()), - LOCATION(RC_DMC_UPPER_GROTTO_GRASS_1, logic->CanCutShrubs()), - LOCATION(RC_DMC_UPPER_GROTTO_GRASS_2, logic->CanCutShrubs()), - LOCATION(RC_DMC_UPPER_GROTTO_GRASS_3, logic->CanCutShrubs()), - LOCATION(RC_DMC_UPPER_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_DMC_UPPER_GROTTO_CHEST, logic->HasItem(RG_OPEN_CHEST)), + LOCATION(RC_DMC_UPPER_GROTTO_FISH, logic->HasBottle()), + LOCATION(RC_DMC_UPPER_GROTTO_GOSSIP_STONE_FAIRY, logic->CallGossipFairy()), + LOCATION(RC_DMC_UPPER_GROTTO_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)), + LOCATION(RC_DMC_UPPER_GROTTO_GOSSIP_STONE, true), + LOCATION(RC_DMC_UPPER_GROTTO_BEEHIVE_LEFT, logic->CanBreakLowerBeehives()), + LOCATION(RC_DMC_UPPER_GROTTO_BEEHIVE_RIGHT, logic->CanBreakLowerBeehives()), + LOCATION(RC_DMC_UPPER_GROTTO_GRASS_1, logic->CanCutShrubs()), + LOCATION(RC_DMC_UPPER_GROTTO_GRASS_2, logic->CanCutShrubs()), + LOCATION(RC_DMC_UPPER_GROTTO_GRASS_3, logic->CanCutShrubs()), + LOCATION(RC_DMC_UPPER_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_DMC_UPPER_BOULDER_GROTTO_BUTTERFLY_FAIRY, logic->CanUse(RG_STICKS)), }, { //Exits ENTRANCE(RR_DMC_ROCKS_GROTTO_ENTRY, true), diff --git a/soh/soh/Enhancements/randomizer/location_access/overworld/death_mountain_trail.cpp b/soh/soh/Enhancements/randomizer/location_access/overworld/death_mountain_trail.cpp index a3492535d86..e6d0061808d 100644 --- a/soh/soh/Enhancements/randomizer/location_access/overworld/death_mountain_trail.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/overworld/death_mountain_trail.cpp @@ -147,6 +147,7 @@ void RegionTable_Init_DeathMountainTrail() { LOCATION(RC_DMT_STORMS_GROTTO_GRASS_2, logic->CanCutShrubs()), LOCATION(RC_DMT_STORMS_GROTTO_GRASS_3, logic->CanCutShrubs()), LOCATION(RC_DMT_STORMS_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_DMT_STORMS_GROTTO_BUTTERFLY_FAIRY, logic->CanUse(RG_STICKS)), }, { //Exits ENTRANCE(RR_DEATH_MOUNTAIN_TRAIL, true), diff --git a/soh/soh/Enhancements/randomizer/location_access/overworld/hyrule_field.cpp b/soh/soh/Enhancements/randomizer/location_access/overworld/hyrule_field.cpp index 0aa70350994..bc9afbd9208 100644 --- a/soh/soh/Enhancements/randomizer/location_access/overworld/hyrule_field.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/overworld/hyrule_field.cpp @@ -221,17 +221,18 @@ void RegionTable_Init_HyruleField() { areaTable[RR_HF_SOUTHEAST_GROTTO] = Region("HF Southeast Grotto", SCENE_GROTTOS, grottoEvents, { //Locations - LOCATION(RC_HF_SOUTHEAST_GROTTO_CHEST, logic->HasItem(RG_OPEN_CHEST)), - LOCATION(RC_HF_SOUTHEAST_GROTTO_FISH, logic->HasBottle()), - LOCATION(RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE_FAIRY, logic->CallGossipFairy()), - LOCATION(RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)), - LOCATION(RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE, true), - LOCATION(RC_HF_SOUTHEAST_GROTTO_BEEHIVE_LEFT, logic->CanBreakLowerBeehives()), - LOCATION(RC_HF_SOUTHEAST_GROTTO_BEEHIVE_RIGHT, logic->CanBreakLowerBeehives()), - LOCATION(RC_HF_SOUTHEAST_GROTTO_GRASS_1, logic->CanCutShrubs()), - LOCATION(RC_HF_SOUTHEAST_GROTTO_GRASS_2, logic->CanCutShrubs()), - LOCATION(RC_HF_SOUTHEAST_GROTTO_GRASS_3, logic->CanCutShrubs()), - LOCATION(RC_HF_SOUTHEAST_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_HF_SOUTHEAST_GROTTO_CHEST, logic->HasItem(RG_OPEN_CHEST)), + LOCATION(RC_HF_SOUTHEAST_GROTTO_FISH, logic->HasBottle()), + LOCATION(RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE_FAIRY, logic->CallGossipFairy()), + LOCATION(RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)), + LOCATION(RC_HF_SOUTHEAST_GROTTO_GOSSIP_STONE, true), + LOCATION(RC_HF_SOUTHEAST_GROTTO_BEEHIVE_LEFT, logic->CanBreakLowerBeehives()), + LOCATION(RC_HF_SOUTHEAST_GROTTO_BEEHIVE_RIGHT, logic->CanBreakLowerBeehives()), + LOCATION(RC_HF_SOUTHEAST_GROTTO_GRASS_1, logic->CanCutShrubs()), + LOCATION(RC_HF_SOUTHEAST_GROTTO_GRASS_2, logic->CanCutShrubs()), + LOCATION(RC_HF_SOUTHEAST_GROTTO_GRASS_3, logic->CanCutShrubs()), + LOCATION(RC_HF_SOUTHEAST_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_HF_SOUTHEAST_BOULDER_GROTTO_BUTTERFLY_FAIRY, logic->CanUse(RG_STICKS)), }, { //Exits ENTRANCE(RR_HYRULE_FIELD, true), @@ -239,17 +240,18 @@ void RegionTable_Init_HyruleField() { areaTable[RR_HF_OPEN_GROTTO] = Region("HF Open Grotto", SCENE_GROTTOS, grottoEvents, { //Locations - LOCATION(RC_HF_OPEN_GROTTO_CHEST, logic->HasItem(RG_OPEN_CHEST)), - LOCATION(RC_HF_OPEN_GROTTO_FISH, logic->HasBottle()), - LOCATION(RC_HF_OPEN_GROTTO_GOSSIP_STONE_FAIRY, logic->CallGossipFairy()), - LOCATION(RC_HF_OPEN_GROTTO_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)), - LOCATION(RC_HF_OPEN_GROTTO_GOSSIP_STONE, true), - LOCATION(RC_HF_OPEN_GROTTO_BEEHIVE_LEFT, logic->CanBreakLowerBeehives()), - LOCATION(RC_HF_OPEN_GROTTO_BEEHIVE_RIGHT, logic->CanBreakLowerBeehives()), - LOCATION(RC_HF_OPEN_GROTTO_GRASS_1, logic->CanCutShrubs()), - LOCATION(RC_HF_OPEN_GROTTO_GRASS_2, logic->CanCutShrubs()), - LOCATION(RC_HF_OPEN_GROTTO_GRASS_3, logic->CanCutShrubs()), - LOCATION(RC_HF_OPEN_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_HF_OPEN_GROTTO_CHEST, logic->HasItem(RG_OPEN_CHEST)), + LOCATION(RC_HF_OPEN_GROTTO_FISH, logic->HasBottle()), + LOCATION(RC_HF_OPEN_GROTTO_GOSSIP_STONE_FAIRY, logic->CallGossipFairy()), + LOCATION(RC_HF_OPEN_GROTTO_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)), + LOCATION(RC_HF_OPEN_GROTTO_GOSSIP_STONE, true), + LOCATION(RC_HF_OPEN_GROTTO_BEEHIVE_LEFT, logic->CanBreakLowerBeehives()), + LOCATION(RC_HF_OPEN_GROTTO_BEEHIVE_RIGHT, logic->CanBreakLowerBeehives()), + LOCATION(RC_HF_OPEN_GROTTO_GRASS_1, logic->CanCutShrubs()), + LOCATION(RC_HF_OPEN_GROTTO_GRASS_2, logic->CanCutShrubs()), + LOCATION(RC_HF_OPEN_GROTTO_GRASS_3, logic->CanCutShrubs()), + LOCATION(RC_HF_OPEN_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_HF_OPEN_GROTTO_BUTTERFLY_FAIRY, logic->CanUse(RG_STICKS)), }, { //Exits ENTRANCE(RR_HYRULE_FIELD, true), @@ -304,6 +306,7 @@ void RegionTable_Init_HyruleField() { LOCATION(RC_HF_NEAR_MARKET_GROTTO_GRASS_2, logic->CanCutShrubs()), LOCATION(RC_HF_NEAR_MARKET_GROTTO_GRASS_3, logic->CanCutShrubs()), LOCATION(RC_HF_NEAR_MARKET_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_HF_NEAR_MARKET_GROTTO_BUTTERFLY_FAIRY, logic->CanUse(RG_STICKS)), }, { //Exits ENTRANCE(RR_HYRULE_FIELD, true), diff --git a/soh/soh/Enhancements/randomizer/location_access/overworld/kakariko.cpp b/soh/soh/Enhancements/randomizer/location_access/overworld/kakariko.cpp index 5d236c7e723..e4aeb949ad4 100644 --- a/soh/soh/Enhancements/randomizer/location_access/overworld/kakariko.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/overworld/kakariko.cpp @@ -285,6 +285,7 @@ void RegionTable_Init_Kakariko() { LOCATION(RC_KAK_OPEN_GROTTO_GRASS_2, logic->CanCutShrubs()), LOCATION(RC_KAK_OPEN_GROTTO_GRASS_3, logic->CanCutShrubs()), LOCATION(RC_KAK_OPEN_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_KAK_OPEN_GROTTO_BUTTERFLY_FAIRY, logic->CanUse(RG_STICKS)), }, { //Exits ENTRANCE(RR_KAK_BACKYARD, true), diff --git a/soh/soh/Enhancements/randomizer/location_access/overworld/kokiri_forest.cpp b/soh/soh/Enhancements/randomizer/location_access/overworld/kokiri_forest.cpp index 55c737aa38a..6dcfd046a1a 100644 --- a/soh/soh/Enhancements/randomizer/location_access/overworld/kokiri_forest.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/overworld/kokiri_forest.cpp @@ -274,6 +274,7 @@ void RegionTable_Init_KokiriForest() { LOCATION(RC_KF_STORMS_GROTTO_GRASS_2, logic->CanCutShrubs()), LOCATION(RC_KF_STORMS_GROTTO_GRASS_3, logic->CanCutShrubs()), LOCATION(RC_KF_STORMS_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_KF_STORMS_GROTTO_BUTTERFLY_FAIRY, logic->CanUse(RG_STICKS)), }, { //Exits ENTRANCE(RR_KF_OUTSIDE_LOST_WOODS, true), diff --git a/soh/soh/Enhancements/randomizer/location_access/overworld/lost_woods.cpp b/soh/soh/Enhancements/randomizer/location_access/overworld/lost_woods.cpp index 3ff805c0a9c..67c122f8511 100644 --- a/soh/soh/Enhancements/randomizer/location_access/overworld/lost_woods.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/overworld/lost_woods.cpp @@ -122,6 +122,7 @@ void RegionTable_Init_LostWoods() { LOCATION(RC_LW_NEAR_SHORTCUTS_GROTTO_GRASS_2, logic->CanCutShrubs()), LOCATION(RC_LW_NEAR_SHORTCUTS_GROTTO_GRASS_3, logic->CanCutShrubs()), LOCATION(RC_LW_NEAR_SHORTCUTS_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_LW_TUNNEL_GROTTO_BUTTERFLY_FAIRY, logic->CanUse(RG_STICKS)), }, { //Exits ENTRANCE(RR_THE_LOST_WOODS, true), diff --git a/soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp b/soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp index 7c44d02fd2c..f62362aecfa 100644 --- a/soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp +++ b/soh/soh/Enhancements/randomizer/location_access/overworld/zoras_river.cpp @@ -185,6 +185,7 @@ void RegionTable_Init_ZoraRiver() { LOCATION(RC_ZR_OPEN_GROTTO_GRASS_2, logic->CanCutShrubs()), LOCATION(RC_ZR_OPEN_GROTTO_GRASS_3, logic->CanCutShrubs()), LOCATION(RC_ZR_OPEN_GROTTO_GRASS_4, logic->CanCutShrubs()), + LOCATION(RC_ZR_OPEN_GROTTO_BUTTERFLY_FAIRY, logic->CanUse(RG_STICKS)), }, { //Exits ENTRANCE(RR_ZR_ATOP_LADDER, true), diff --git a/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerCheck.h b/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerCheck.h index 51313bfb9cd..dfdb5d22c6e 100644 --- a/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerCheck.h +++ b/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerCheck.h @@ -2703,6 +2703,15 @@ RANDO_ENUM_ITEM(RC_ZR_NEAR_ROCK_CIRCLE_BUTTERFLY_FAIRY) RANDO_ENUM_ITEM(RC_ZR_WATERFALL_BUTTERFLY_FAIRY) RANDO_ENUM_ITEM(RC_ZF_LOG_BUTTERFLY_FAIRY) RANDO_ENUM_ITEM(RC_LH_SCARECROW_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RC_KF_STORMS_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RC_LW_TUNNEL_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RC_DMT_STORMS_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RC_DMC_UPPER_BOULDER_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RC_HF_NEAR_MARKET_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RC_HF_SOUTHEAST_BOULDER_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RC_HF_OPEN_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RC_KAK_OPEN_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RC_ZR_OPEN_GROTTO_BUTTERFLY_FAIRY) RANDO_ENUM_ITEM(RC_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY) RANDO_ENUM_ITEM(RC_SPIRIT_TEMPLE_ARMOS_ROOM_SUN_FAIRY) RANDO_ENUM_ITEM(RC_SHADOW_TEMPLE_BEAMOS_STORM_FAIRY) diff --git a/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerHintTextKey.h b/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerHintTextKey.h index 75c70674bb0..b6e8eb6c5eb 100644 --- a/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerHintTextKey.h +++ b/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerHintTextKey.h @@ -1548,6 +1548,13 @@ RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_GRAVEYARD) RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_ZORAS_RIVER) RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_ZORAS_FOUNTAIN) RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_LAKE_HYLIA) +RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_KF_GROTTO) +RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_LW_GROTTO) +RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_DMT_GROTTO) +RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_DMC_GROTTO) +RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_HF_GROTTO) +RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_KAK_GROTTO) +RANDO_ENUM_ITEM(RHT_BUTTERFLY_FAIRY_ZR_GROTTO) RANDO_ENUM_ITEM(RHT_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY) RANDO_ENUM_ITEM(RHT_SPIRIT_TEMPLE_ARMOS_ROOM_SUN_FAIRY) RANDO_ENUM_ITEM(RHT_SHADOW_TEMPLE_BEAMOS_STORM_FAIRY) diff --git a/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerInf.h b/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerInf.h index d2e461d7ea6..ddf673ac489 100644 --- a/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerInf.h +++ b/soh/soh/Enhancements/randomizer/randomizerEnums/RandomizerInf.h @@ -2182,6 +2182,15 @@ RANDO_ENUM_ITEM(RAND_INF_ZR_NEAR_ROCK_CIRCLE_BUTTERFLY_FAIRY) RANDO_ENUM_ITEM(RAND_INF_ZR_WATERFALL_BUTTERFLY_FAIRY) RANDO_ENUM_ITEM(RAND_INF_ZF_LOG_BUTTERFLY_FAIRY) RANDO_ENUM_ITEM(RAND_INF_LH_SCARECROW_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RAND_INF_KF_STORMS_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RAND_INF_LW_TUNNEL_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RAND_INF_DMT_STORMS_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RAND_INF_DMC_UPPER_BOULDER_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RAND_INF_HF_NEAR_MARKET_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RAND_INF_HF_SOUTHEAST_BOULDER_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RAND_INF_HF_OPEN_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RAND_INF_KAK_OPEN_GROTTO_BUTTERFLY_FAIRY) +RANDO_ENUM_ITEM(RAND_INF_ZR_OPEN_GROTTO_BUTTERFLY_FAIRY) RANDO_ENUM_ITEM(RAND_INF_SPIRIT_TEMPLE_BOULDER_ROOM_SUN_FAIRY) RANDO_ENUM_ITEM(RAND_INF_SPIRIT_TEMPLE_ARMOS_ROOM_SUN_FAIRY)