Update to develop-rando

This commit is contained in:
aMannus 2024-08-20 12:08:15 +02:00
parent 42d0aea6f5
commit ba447276df
9 changed files with 112 additions and 131 deletions

View File

@ -275,6 +275,10 @@ hintTextTable[RHT_DODONGOS_CAVERN_BOSS_ROOM_CHEST] = HintText(CustomMessage("The
/*french*/ "Selon moi, la #peste Mojo au coeur de la Caverne Dodongo# vend #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, la #peste Mojo au coeur de la Caverne Dodongo# vend #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, un #deku custodiado por Lizalfos# vende #[[1]]#. // /*spanish*/ Según dicen, un #deku custodiado por Lizalfos# vende #[[1]]#.
hintTextTable[RHT_POT_DODONGOS_CAVERN] = HintText(CustomMessage("They say that a #pot in Dodongo's Cavern# contains #[[1]]#.",
/*german*/ "",
/*french*/ "", {QM_RED, QM_GREEN}));
/*-------------------------- /*--------------------------
| JABU JABUS BELLY | | JABU JABUS BELLY |
---------------------------*/ ---------------------------*/
@ -421,6 +425,11 @@ hintTextTable[RHT_DODONGOS_CAVERN_BOSS_ROOM_CHEST] = HintText(CustomMessage("The
/*german*/ "", /*german*/ "",
/*french*/ "Selon moi, la #peste Mojo dans le ventre du gardien# vend #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, la #peste Mojo dans le ventre du gardien# vend #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, un #deku dentro de cierta deidad# vende #[[1]]#. // /*spanish*/ Según dicen, un #deku dentro de cierta deidad# vende #[[1]]#.
hintTextTable[RHT_POT_JABU_JABUS_BELLY] = HintText(CustomMessage("They say that a #pot in Jabu Jabu's Belly# contains #[[1]]#.",
/*german*/ "",
/*french*/ "", {QM_RED, QM_GREEN}));
/*-------------------------- /*--------------------------
| FOREST TEMPLE | | FOREST TEMPLE |
---------------------------*/ ---------------------------*/
@ -638,11 +647,16 @@ hintTextTable[RHT_DODONGOS_CAVERN_BOSS_ROOM_CHEST] = HintText(CustomMessage("The
/*german*/ "", /*german*/ "",
/*french*/ "Selon moi, une #Skulltula dans le jardin du Temple de la Forêt# a #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, une #Skulltula dans le jardin du Temple de la Forêt# a #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, una #Skulltula en un borde# del Templo del Bosque otorga #[[1]]#. // /*spanish*/ Según dicen, una #Skulltula en un borde# del Templo del Bosque otorga #[[1]]#.
hintTextTable[RHT_FOREST_TEMPLE_MQ_GS_WELL] = HintText(CustomMessage("They say that #draining a well# in Forest Temple uncovers a spider with #[[1]]#.", hintTextTable[RHT_FOREST_TEMPLE_MQ_GS_WELL] = HintText(CustomMessage("They say that #draining a well# in Forest Temple uncovers a spider with #[[1]]#.",
/*german*/ "", /*german*/ "",
/*french*/ "Selon moi, une #Skulltula au fond du Puits du Temple de la Forêt# a #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, une #Skulltula au fond du Puits du Temple de la Forêt# a #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, #vaciar el pozo# del Templo del Bosque desvela una Skulltula que otorga #[[1]]#. // /*spanish*/ Según dicen, #vaciar el pozo# del Templo del Bosque desvela una Skulltula que otorga #[[1]]#.
hintTextTable[RHT_POT_FOREST_TEMPLE] = HintText(CustomMessage("They say that a #pot in Forest Temple# contains #[[1]]#.",
/*german*/ "",
/*french*/ "", {QM_RED, QM_GREEN}));
/*-------------------------- /*--------------------------
| FIRE TEMPLE | | FIRE TEMPLE |
---------------------------*/ ---------------------------*/
@ -831,6 +845,10 @@ hintTextTable[RHT_FIRE_TEMPLE_NEAR_BOSS_CHEST] = HintText(CustomMessage("They sa
/*french*/ "Selon moi, une #Skulltula près du labyrinthe enflammé du Temple du Feu# a #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, une #Skulltula près du labyrinthe enflammé du Temple du Feu# a #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, una #Skulltula junto a un ardiente laberinto# otorga #[[1]]#. // /*spanish*/ Según dicen, una #Skulltula junto a un ardiente laberinto# otorga #[[1]]#.
hintTextTable[RHT_POT_FIRE_TEMPLE] = HintText(CustomMessage("They say that a #pot in Fire Temple# contains #[[1]]#.",
/*german*/ "",
/*french*/ "", {QM_RED, QM_GREEN}));
/*-------------------------- /*--------------------------
| WATER TEMPLE | | WATER TEMPLE |
---------------------------*/ ---------------------------*/
@ -958,6 +976,10 @@ hintTextTable[RHT_FIRE_TEMPLE_NEAR_BOSS_CHEST] = HintText(CustomMessage("They sa
/*french*/ "Selon moi, une #Skulltula au dessus de la rivière du Temple de l'Eau# a #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, une #Skulltula au dessus de la rivière du Temple de l'Eau# a #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, una #Skulltula sobre un río# del Templo del Agua otorga #[[1]]#. // /*spanish*/ Según dicen, una #Skulltula sobre un río# del Templo del Agua otorga #[[1]]#.
hintTextTable[RHT_POT_WATER_TEMPLE] = HintText(CustomMessage("They say that a #pot in Water Temple# contains #[[1]]#.",
/*german*/ "",
/*french*/ "", {QM_RED, QM_GREEN}));
/*-------------------------- /*--------------------------
| SPIRIT TEMPLE | | SPIRIT TEMPLE |
---------------------------*/ ---------------------------*/
@ -1191,6 +1213,10 @@ hintTextTable[RHT_FIRE_TEMPLE_NEAR_BOSS_CHEST] = HintText(CustomMessage("They sa
/*french*/ "Selon moi, une #Skulltula sur une paroi de verre du Temple de l'Esprit# a #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, une #Skulltula sur une paroi de verre du Temple de l'Esprit# a #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, #sobre una plataforma de cristal# yace una Skulltula que otorga #[[1]]#. // /*spanish*/ Según dicen, #sobre una plataforma de cristal# yace una Skulltula que otorga #[[1]]#.
hintTextTable[RHT_POT_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that a #pot in Spirit Temple# contains #[[1]]#.",
/*german*/ "",
/*french*/ "", {QM_RED, QM_GREEN}));
/*-------------------------- /*--------------------------
| SHADOW TEMPLE | | SHADOW TEMPLE |
---------------------------*/ ---------------------------*/
@ -1434,6 +1460,10 @@ hintTextTable[RHT_SHADOW_TEMPLE_MAP_CHEST] = HintText(CustomMessage("They say th
/*french*/ "Selon moi, une #Skulltula près du repère du Temple de l'Ombre# a #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, une #Skulltula près du repère du Temple de l'Ombre# a #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, una #Skulltula flotante# del Templo de las Sombras otorga #[[1]]#. // /*spanish*/ Según dicen, una #Skulltula flotante# del Templo de las Sombras otorga #[[1]]#.
hintTextTable[RHT_POT_SHADOW_TEMPLE] = HintText(CustomMessage("They say that a #pot in Shadow Temple# contains #[[1]]#.",
/*german*/ "",
/*french*/ "", {QM_RED, QM_GREEN}));
/*-------------------------- /*--------------------------
| BOTTOM OF THE WELL | | BOTTOM OF THE WELL |
---------------------------*/ ---------------------------*/
@ -1552,6 +1582,10 @@ hintTextTable[RHT_SHADOW_TEMPLE_MAP_CHEST] = HintText(CustomMessage("They say th
/*french*/ "Selon moi, une #Skulltula embarrée dans la crypte au fonds du Puits# a #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, une #Skulltula embarrée dans la crypte au fonds du Puits# a #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, una #Skulltula encerrada en una cripta# del pozo otorga #[[1]]#. // /*spanish*/ Según dicen, una #Skulltula encerrada en una cripta# del pozo otorga #[[1]]#.
hintTextTable[RHT_POT_BOTTOM_OF_THE_WELL] = HintText(CustomMessage("They say that a #pot in Bottom of the Well# contains #[[1]]#.",
/*german*/ "",
/*french*/ "", {QM_RED, QM_GREEN}));
/*-------------------------- /*--------------------------
| ICE CAVERN | | ICE CAVERN |
---------------------------*/ ---------------------------*/
@ -1625,6 +1659,10 @@ hintTextTable[RHT_SHADOW_TEMPLE_MAP_CHEST] = HintText(CustomMessage("They say th
/*french*/ "Selon moi, une #Skulltula figée dans la glace rouge# a #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, une #Skulltula figée dans la glace rouge# a #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, una #Skulltula tras un ardiente hielo# otorga #[[1]]#. // /*spanish*/ Según dicen, una #Skulltula tras un ardiente hielo# otorga #[[1]]#.
hintTextTable[RHT_POT_ICE_CAVERN] = HintText(CustomMessage("They say that a #pot in Ice Cavern# contains #[[1]]#.",
/*german*/ "",
/*french*/ "", { QM_RED, QM_GREEN }));
/*-------------------------- /*--------------------------
| GERUDO TRAINING GROUNDS | | GERUDO TRAINING GROUNDS |
---------------------------*/ ---------------------------*/
@ -1996,54 +2034,8 @@ hintTextTable[RHT_SHADOW_TEMPLE_MAP_CHEST] = HintText(CustomMessage("They say th
/*french*/ "Selon moi, les #pestes Mojo dans le Château de Ganon# vendent #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, les #pestes Mojo dans le Château de Ganon# vendent #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, los #dekus del Castillo de Ganon# venden #[[1]]#. // /*spanish*/ Según dicen, los #dekus del Castillo de Ganon# venden #[[1]]#.
hintTable[RHT_POT_DODONGOS_CAVERN] = HintText::Exclude({ hintTextTable[RHT_POT_GANONS_CASTLE] = HintText(CustomMessage("They say that a #pot in Ganon's Castle# contains #[[1]]#.",
//obscure text /*german*/ "",
Text{ "a #pot in Dodongo's Cavern# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_JABU_JABUS_BELLY] = HintText::Exclude({
//obscure text
Text{ "a #pot in Jabu Jabu's Belly# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" },
});
hintTable[RHT_POT_FOREST_TEMPLE] = HintText::Exclude({
//obscure text
Text{ "a #pot in Forest Temple# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" },
});
hintTable[RHT_POT_FIRE_TEMPLE] = HintText::Exclude({
//obscure text
Text{ "a #pot in Fire Temple# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" },
});
hintTable[RHT_POT_WATER_TEMPLE] = HintText::Exclude({
//obscure text
Text{ "a #pot in Water Temple# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" },
});
hintTable[RHT_POT_SHADOW_TEMPLE] = HintText::Exclude({
//obscure text
Text{ "a #pot in Shadow Temple# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" },
});
hintTable[RHT_POT_SPIRIT_TEMPLE] = HintText::Exclude({
//obscure text
Text{ "a #pot in Spirit Temple# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" },
});
hintTable[RHT_POT_GANONS_CASTLE] = HintText::Exclude({
//obscure text
Text{ "a #pot in Ganon's Castle# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" },
});
hintTable[RHT_POT_BOTTOM_OF_THE_WELL] = HintText::Exclude({
//obscure text
Text{ "a #pot in Bottom of the Well# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" },
});
hintTable[RHT_POT_ICE_CAVERN] = HintText::Exclude({
//obscure text
Text{ "a #pot in Ice Cavern# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" },
});
} }
} }

View File

@ -1488,69 +1488,56 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
/*french*/ "Selon moi, #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, #[[1]]#.", {QM_RED, QM_GREEN}));
// /*spanish*/ Según dicen, una #colmena detrás del rey de los zoras# esconde #[[1]]#. // /*spanish*/ Según dicen, una #colmena detrás del rey de los zoras# esconde #[[1]]#.
hintTable[RHT_POT_KOKIRI_FOREST] = HintText::Exclude({ hintTextTable[RHT_POT_KOKIRI_FOREST] = HintText(CustomMessage("They say that a #pot in Kokiri Forest# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Kokiri Forest# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_GERUDO_FORTRESS] = HintText::Exclude({ hintTextTable[RHT_POT_GERUDO_FORTRESS] = HintText(CustomMessage("They say that a #pot in Gerudo Fortress# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Gerudo Fortress# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_WASTELAND] = HintText::Exclude({ hintTextTable[RHT_POT_WASTELAND] = HintText(CustomMessage("They say that a #pot in Haunted Wasteland# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Haunted Wasteland# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_MARKET] = HintText::Exclude({ hintTextTable[RHT_POT_MARKET] = HintText(CustomMessage("They say that a #pot in Market# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Market# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_KAKARIKO] = HintText::Exclude({ hintTextTable[RHT_POT_KAKARIKO] = HintText(CustomMessage("They say that a #pot in Kakariko Village# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Kakariko Village# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_GRAVEYARD] = HintText::Exclude({ hintTextTable[RHT_POT_GRAVEYARD] = HintText(CustomMessage("They say that a #pot in Graveyard# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Graveyard# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_GORON_CITY] = HintText::Exclude({ hintTextTable[RHT_POT_GORON_CITY] = HintText(CustomMessage("They say that a #pot in Goron City# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Goron City# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_DEATH_MOUNTAIN_CRATER] = HintText::Exclude({ hintTextTable[RHT_POT_DEATH_MOUNTAIN_CRATER] = HintText(CustomMessage("They say that a #pot in Death Mountain Crater# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Death Mountain Crater# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_ZORAS_DOMAIN] = HintText::Exclude({ hintTextTable[RHT_POT_ZORAS_DOMAIN] = HintText(CustomMessage("They say that a #pot in Zora's Domain# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Zora's Domain# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_ZORAS_FOUNTAIN] = HintText::Exclude({ hintTextTable[RHT_POT_ZORAS_FOUNTAIN] = HintText(CustomMessage("They say that a #pot in Zora's Fountain# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Zora's Fountain# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_LON_LON_RANCH] = HintText::Exclude({ hintTextTable[RHT_POT_LON_LON_RANCH] = HintText(CustomMessage("They say that a #pot in Lon Lon Ranch# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Lon Lon Ranch# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_HYRULE_FIELD] = HintText::Exclude({ hintTextTable[RHT_POT_HYRULE_FIELD] = HintText(CustomMessage("They say that a #pot in Hyrule Field# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Hyrule Field# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
hintTable[RHT_POT_HYRULE_CASTLE] = HintText::Exclude({ hintTextTable[RHT_POT_HYRULE_CASTLE] = HintText(CustomMessage("They say that a #pot in Hyrule Castle# contains #[[1]]#.",
// obscure text /*german*/ "",
Text{ "a #pot in Hyrule Castle# contains", /*french*/ "TRANSLATION NEEDED", /*spanish*/ "" }, /*french*/ "", {QM_RED, QM_GREEN}));
});
} }
} }

View File

@ -169,8 +169,8 @@ void AreaTable_Init_CastleTown() {
//Locations //Locations
LOCATION(RC_MARKET_10_BIG_POES, logic->IsAdult && logic->BigPoeKill), LOCATION(RC_MARKET_10_BIG_POES, logic->IsAdult && logic->BigPoeKill),
LOCATION(RC_MARKET_GS_GUARD_HOUSE, logic->IsChild), LOCATION(RC_MARKET_GS_GUARD_HOUSE, logic->IsChild),
LocationAccess(RC_MK_GUARD_HOUSE_CHILD_POT_1, {[]{return logic->CanBreakPots;}}), LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_1, logic->CanBreakPots),
LocationAccess(RC_MK_GUARD_HOUSE_CHILD_POT_2, {[]{return logic->CanBreakPots;}}), LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_2, logic->CanBreakPots),
}, { }, {
//Exits //Exits
Entrance(RR_MARKET_ENTRANCE, {[]{return true;}}), Entrance(RR_MARKET_ENTRANCE, {[]{return true;}}),

View File

@ -110,22 +110,22 @@ void AreaTable_Init_GerudoValley() {
LOCATION(RC_GF_GERUDO_MEMBERSHIP_CARD, logic->CanFinishGerudoFortress), LOCATION(RC_GF_GERUDO_MEMBERSHIP_CARD, logic->CanFinishGerudoFortress),
LOCATION(RC_GF_GS_ARCHERY_RANGE, logic->IsAdult && logic->HookshotOrBoomerang && logic->GerudoToken && logic->AtNight && logic->CanGetNightTimeGS), LOCATION(RC_GF_GS_ARCHERY_RANGE, logic->IsAdult && logic->HookshotOrBoomerang && logic->GerudoToken && logic->AtNight && logic->CanGetNightTimeGS),
LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->AtNight && (logic->CanJumpslash || logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->CanUse(RG_BOOMERANG) || logic->HasExplosives || logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_DINS_FIRE)) && (logic->GerudoToken || logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS) || randoCtx->GetTrickOption(RT_GF_KITCHEN) || randoCtx->GetTrickOption(RT_GF_JUMP)) && logic->CanGetNightTimeGS), LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->AtNight && (logic->CanJumpslash || logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->CanUse(RG_BOOMERANG) || logic->HasExplosives || logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_DINS_FIRE)) && (logic->GerudoToken || logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS) || randoCtx->GetTrickOption(RT_GF_KITCHEN) || randoCtx->GetTrickOption(RT_GF_JUMP)) && logic->CanGetNightTimeGS),
LocationAccess(RC_GF_BREAK_ROOM_POT_1, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_BREAK_ROOM_POT_1, logic->CanBreakPots),
LocationAccess(RC_GF_BREAK_ROOM_POT_2, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_BREAK_ROOM_POT_2, logic->CanBreakPots),
LocationAccess(RC_GF_KITCHEN_POT_1, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_KITCHEN_POT_1, logic->CanBreakPots),
LocationAccess(RC_GF_KITCHEN_POT_2, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_KITCHEN_POT_2, logic->CanBreakPots),
LocationAccess(RC_GF_NORTH_F1_CARPENTER_POT_1, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_NORTH_F1_CARPENTER_POT_1, logic->CanBreakPots),
LocationAccess(RC_GF_NORTH_F1_CARPENTER_POT_2, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_NORTH_F1_CARPENTER_POT_2, logic->CanBreakPots),
LocationAccess(RC_GF_NORTH_F1_CARPENTER_POT_3, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_NORTH_F1_CARPENTER_POT_3, logic->CanBreakPots),
LocationAccess(RC_GF_NORTH_F2_CARPENTER_POT_1, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_NORTH_F2_CARPENTER_POT_1, logic->CanBreakPots),
LocationAccess(RC_GF_NORTH_F2_CARPENTER_POT_2, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_NORTH_F2_CARPENTER_POT_2, logic->CanBreakPots),
LocationAccess(RC_GF_SOUTH_F1_CARPENTER_POT_1, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_SOUTH_F1_CARPENTER_POT_1, logic->CanBreakPots),
LocationAccess(RC_GF_SOUTH_F1_CARPENTER_POT_2, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_SOUTH_F1_CARPENTER_POT_2, logic->CanBreakPots),
LocationAccess(RC_GF_SOUTH_F1_CARPENTER_POT_3, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_SOUTH_F1_CARPENTER_POT_3, logic->CanBreakPots),
LocationAccess(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_1, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_1, logic->CanBreakPots),
LocationAccess(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_2, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_2, logic->CanBreakPots),
LocationAccess(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_3, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_3, logic->CanBreakPots),
LocationAccess(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_4, {[]{return logic->CanBreakPots;}}), LOCATION(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_4, logic->CanBreakPots),
}, { }, {
//Exits //Exits
Entrance(RR_GV_FORTRESS_SIDE, {[]{return true;}}), Entrance(RR_GV_FORTRESS_SIDE, {[]{return true;}}),

View File

@ -48,7 +48,7 @@ void AreaTable_Init_LostWoods() {
areaTable[RR_KF_LINKS_HOUSE] = Area("KF Link's House", "KF Link's House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, { areaTable[RR_KF_LINKS_HOUSE] = Area("KF Link's House", "KF Link's House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, {
//Locations //Locations
LOCATION(RC_KF_LINKS_HOUSE_COW, logic->IsAdult && logic->CanUse(RG_EPONAS_SONG) && logic->LinksCow), LOCATION(RC_KF_LINKS_HOUSE_COW, logic->IsAdult && logic->CanUse(RG_EPONAS_SONG) && logic->LinksCow),
LocationAccess(RC_KF_LINKS_HOUSE_POT, {[]{return logic->CanBreakPots;}}), LOCATION(RC_KF_LINKS_HOUSE_POT, logic->CanBreakPots),
}, { }, {
//Exits //Exits
Entrance(RR_KOKIRI_FOREST, {[]{return true;}}) Entrance(RR_KOKIRI_FOREST, {[]{return true;}})
@ -72,8 +72,8 @@ void AreaTable_Init_LostWoods() {
areaTable[RR_KF_HOUSE_OF_TWINS] = Area("KF House of Twins", "KF House of Twins", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, { areaTable[RR_KF_HOUSE_OF_TWINS] = Area("KF House of Twins", "KF House of Twins", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, {
//Locations //Locations
LocationAccess(RC_KF_TWINS_HOUSE_POT_1, {[]{return logic->CanBreakPots;}}), LOCATION(RC_KF_TWINS_HOUSE_POT_1, logic->CanBreakPots),
LocationAccess(RC_KF_TWINS_HOUSE_POT_2, {[]{return logic->CanBreakPots;}}), LOCATION(RC_KF_TWINS_HOUSE_POT_2, logic->CanBreakPots),
}, { }, {
//Exits //Exits
Entrance(RR_KOKIRI_FOREST, {[]{return true;}}), Entrance(RR_KOKIRI_FOREST, {[]{return true;}}),
@ -81,8 +81,8 @@ void AreaTable_Init_LostWoods() {
areaTable[RR_KF_KNOW_IT_ALL_HOUSE] = Area("KF Know It All House", "KF Know It All House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, { areaTable[RR_KF_KNOW_IT_ALL_HOUSE] = Area("KF Know It All House", "KF Know It All House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, {
// Locations // Locations
LocationAccess(RC_KF_BROTHERS_HOUSE_POT_1, {[]{return logic->CanBreakPots;}}), LOCATION(RC_KF_BROTHERS_HOUSE_POT_1, logic->CanBreakPots),
LocationAccess(RC_KF_BROTHERS_HOUSE_POT_2, {[]{return logic->CanBreakPots;}}), LOCATION(RC_KF_BROTHERS_HOUSE_POT_2, logic->CanBreakPots),
}, { }, {
//Exits //Exits
Entrance(RR_KOKIRI_FOREST, {[]{return true;}}), Entrance(RR_KOKIRI_FOREST, {[]{return true;}}),

View File

@ -156,7 +156,7 @@ void RandomizerCheckObjects::UpdateImGuiVisibility() {
RandomizerCheckObjects::AreaIsDungeon(location.GetArea()))) && RandomizerCheckObjects::AreaIsDungeon(location.GetArea()))) &&
(location.GetRCType() != RCTYPE_BEEHIVE || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleBeehives"), RO_GENERIC_NO)) && (location.GetRCType() != RCTYPE_BEEHIVE || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleBeehives"), RO_GENERIC_NO)) &&
(location.GetRCType() != RCTYPE_COW || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleCows"), RO_GENERIC_NO)) && (location.GetRCType() != RCTYPE_COW || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleCows"), RO_GENERIC_NO)) &&
(location.GetRCType() != RCTYPE_POT || CVarGetInteger("gRandomizeShufflePots", RO_GENERIC_NO)) && (location.GetRCType() != RCTYPE_POT || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShufflePots"), RO_GENERIC_NO)) &&
(location.GetRCType() != RCTYPE_FISH || ctx->GetFishsanity()->GetFishLocationIncluded(&location, FSO_SOURCE_CVARS)) && (location.GetRCType() != RCTYPE_FISH || ctx->GetFishsanity()->GetFishLocationIncluded(&location, FSO_SOURCE_CVARS)) &&
(location.GetRCType() != RCTYPE_ADULT_TRADE || (location.GetRCType() != RCTYPE_ADULT_TRADE ||
CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleAdultTrade"), RO_GENERIC_NO)) && CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleAdultTrade"), RO_GENERIC_NO)) &&

View File

@ -6,10 +6,6 @@
#include <vector> #include <vector>
#include <map> #include <map>
// ABS macro to use since `std::abs` is not constexpr yet
#define ABS(x) ((x) < 0 ? -(x) : (x))
#define TWO_ACTOR_PARAMS(a, b) (ABS(a) << 16) | ABS(b)
namespace RandomizerCheckObjects { namespace RandomizerCheckObjects {
bool AreaIsDungeon(RandomizerCheckArea area); bool AreaIsDungeon(RandomizerCheckArea area);
bool AreaIsOverworld(RandomizerCheckArea area); bool AreaIsOverworld(RandomizerCheckArea area);

View File

@ -1,6 +1,12 @@
#pragma once #pragma once
typedef enum { typedef enum {
RAND_INF_DUNGEONS_DONE_DEKU_TREE,
RAND_INF_DUNGEONS_DONE_DODONGOS_CAVERN,
RAND_INF_DUNGEONS_DONE_JABU_JABUS_BELLY,
RAND_INF_DUNGEONS_DONE_FOREST_TEMPLE,
RAND_INF_DUNGEONS_DONE_FIRE_TEMPLE,
RAND_INF_DUNGEONS_DONE_WATER_TEMPLE,
RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE, RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE,
RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE, RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE,

View File

@ -112,7 +112,7 @@ void Settings::CreateOptions() {
mOptions[RSK_SHUFFLE_SWIM] = Option::Bool("Shuffle Swim", CVAR_RANDOMIZER_SETTING("ShuffleSwim"), mOptionDescriptions[RSK_SHUFFLE_SWIM]); mOptions[RSK_SHUFFLE_SWIM] = Option::Bool("Shuffle Swim", CVAR_RANDOMIZER_SETTING("ShuffleSwim"), mOptionDescriptions[RSK_SHUFFLE_SWIM]);
mOptions[RSK_SHUFFLE_WEIRD_EGG] = Option::Bool("Shuffle Weird Egg", CVAR_RANDOMIZER_SETTING("ShuffleWeirdEgg"), mOptionDescriptions[RSK_SHUFFLE_WEIRD_EGG]); mOptions[RSK_SHUFFLE_WEIRD_EGG] = Option::Bool("Shuffle Weird Egg", CVAR_RANDOMIZER_SETTING("ShuffleWeirdEgg"), mOptionDescriptions[RSK_SHUFFLE_WEIRD_EGG]);
mOptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD] = Option::Bool("Shuffle Gerudo Membership Card", CVAR_RANDOMIZER_SETTING("ShuffleGerudoToken"), mOptionDescriptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD]); mOptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD] = Option::Bool("Shuffle Gerudo Membership Card", CVAR_RANDOMIZER_SETTING("ShuffleGerudoToken"), mOptionDescriptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD]);
mOptions[RSK_SHUFFLE_POTS] = Option::U8("Shuffle Pots", {"Off", "Dungeons", "Overworld", "All Pots"}, OptionCategory::Setting, "gRandomizeShufflePots", mOptionDescriptions[RSK_SHUFFLE_POTS], WidgetType::Combobox, RO_SHUFFLE_POTS_OFF); mOptions[RSK_SHUFFLE_POTS] = Option::U8("Shuffle Pots", {"Off", "Dungeons", "Overworld", "All Pots"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShufflePots"), mOptionDescriptions[RSK_SHUFFLE_POTS], WidgetType::Combobox, RO_SHUFFLE_POTS_OFF);
mOptions[RSK_SHUFFLE_FISHING_POLE] = Option::Bool("Shuffle Fishing Pole", CVAR_RANDOMIZER_SETTING("ShuffleFishingPole"), mOptionDescriptions[RSK_SHUFFLE_FISHING_POLE]); mOptions[RSK_SHUFFLE_FISHING_POLE] = Option::Bool("Shuffle Fishing Pole", CVAR_RANDOMIZER_SETTING("ShuffleFishingPole"), mOptionDescriptions[RSK_SHUFFLE_FISHING_POLE]);
mOptions[RSK_SHUFFLE_MAGIC_BEANS] = Option::Bool("Shuffle Magic Beans", CVAR_RANDOMIZER_SETTING("ShuffleBeans"), mOptionDescriptions[RSK_SHUFFLE_MAGIC_BEANS]); mOptions[RSK_SHUFFLE_MAGIC_BEANS] = Option::Bool("Shuffle Magic Beans", CVAR_RANDOMIZER_SETTING("ShuffleBeans"), mOptionDescriptions[RSK_SHUFFLE_MAGIC_BEANS]);
mOptions[RSK_SHUFFLE_MERCHANTS] = Option::U8("Shuffle Merchants", {"Off", "On (No Hints)", "On (With Hints)"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShuffleMerchants"), mOptionDescriptions[RSK_SHUFFLE_MERCHANTS], WidgetType::Combobox, RO_SHUFFLE_MERCHANTS_OFF); mOptions[RSK_SHUFFLE_MERCHANTS] = Option::U8("Shuffle Merchants", {"Off", "On (No Hints)", "On (With Hints)"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShuffleMerchants"), mOptionDescriptions[RSK_SHUFFLE_MERCHANTS], WidgetType::Combobox, RO_SHUFFLE_MERCHANTS_OFF);