mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-03-03 10:11:51 -05:00
* Overworld pretty much done.
* Known issue with Market Night + 2 bushes in KF * Known issue with Adult bush in ZR
This commit is contained in:
parent
323ea2df96
commit
b754479ef8
@ -302,6 +302,9 @@ typedef enum {
|
|||||||
// Opt: *EnFr
|
// Opt: *EnFr
|
||||||
// Vanilla condition: this->reward == GI_NONE
|
// Vanilla condition: this->reward == GI_NONE
|
||||||
VB_FROGS_GO_TO_IDLE,
|
VB_FROGS_GO_TO_IDLE,
|
||||||
|
// Opt: *EnKusa
|
||||||
|
VB_GRASS_SETUP_DRAW,
|
||||||
|
VB_GRASS_DROP_ITEM,
|
||||||
|
|
||||||
/*** Play Cutscenes ***/
|
/*** Play Cutscenes ***/
|
||||||
|
|
||||||
|
@ -1936,5 +1936,41 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
|||||||
/*german*/ "!!!",
|
/*german*/ "!!!",
|
||||||
/*french*/ "Selon moi, jouer une mélodie orageuse pour une pierre étrange dans le côté d'un cratère révèle [[1]].", {QM_RED, QM_GREEN}));
|
/*french*/ "Selon moi, jouer une mélodie orageuse pour une pierre étrange dans le côté d'un cratère révèle [[1]].", {QM_RED, QM_GREEN}));
|
||||||
|
|
||||||
|
hintTextTable[RHT_KF_GRASS] = HintText(CustomMessage("They say that #cutting some grass in a forest# reveals #[[1]]#.",
|
||||||
|
/*german*/ "!!!",
|
||||||
|
/*french*/ "!!!", { QM_RED, QM_GREEN }));
|
||||||
|
|
||||||
|
hintTextTable[RHT_LW_GRASS] = HintText(CustomMessage("They say that #cutting some grass in the woods# reveals #[[1]]#.",
|
||||||
|
/*german*/ "!!!",
|
||||||
|
/*french*/ "!!!", { QM_RED, QM_GREEN }));
|
||||||
|
|
||||||
|
hintTextTable[RHT_MARKET_GRASS] = HintText(CustomMessage("They say that #cutting some grass in the market# reveals #[[1]]#.",
|
||||||
|
/*german*/ "!!!",
|
||||||
|
/*french*/ "!!!", { QM_RED, QM_GREEN }));
|
||||||
|
|
||||||
|
hintTextTable[RHT_HC_GRASS] = HintText(CustomMessage("They say that #cutting some grass near the castle# reveals #[[1]]#.",
|
||||||
|
/*german*/ "!!!",
|
||||||
|
/*french*/ "!!!", { QM_RED, QM_GREEN }));
|
||||||
|
|
||||||
|
hintTextTable[RHT_KAK_GRASS] = HintText(CustomMessage("They say that #cutting some grass in a village# reveals #[[1]]#.",
|
||||||
|
/*german*/ "!!!",
|
||||||
|
/*french*/ "!!!", { QM_RED, QM_GREEN }));
|
||||||
|
|
||||||
|
hintTextTable[RHT_GY_GRASS] = HintText(CustomMessage("They say that #cutting some grass in a graveyard# reveals #[[1]]#.",
|
||||||
|
/*german*/ "!!!",
|
||||||
|
/*french*/ "!!!", { QM_RED, QM_GREEN }));
|
||||||
|
|
||||||
|
hintTextTable[RHT_LH_GRASS] = HintText(CustomMessage("They say that #cutting some grass near a lake# reveals #[[1]]#.",
|
||||||
|
/*german*/ "!!!",
|
||||||
|
/*french*/ "!!!", { QM_RED, QM_GREEN }));
|
||||||
|
|
||||||
|
hintTextTable[RHT_HF_GRASS] = HintText(CustomMessage("They say that #cutting some grass on a field# reveals #[[1]]#.",
|
||||||
|
/*german*/ "!!!",
|
||||||
|
/*french*/ "!!!", { QM_RED, QM_GREEN }));
|
||||||
|
|
||||||
|
hintTextTable[RHT_ZR_GRASS] = HintText(CustomMessage("They say that #cutting some grass near a river# reveals #[[1]]#.",
|
||||||
|
/*german*/ "!!!",
|
||||||
|
/*french*/ "!!!", { QM_RED, QM_GREEN }));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -931,6 +931,15 @@ void GenerateItemPool() {
|
|||||||
PlaceItemsForType(RCTYPE_POT, overworldPotsActive, dungeonPotsActive, false);
|
PlaceItemsForType(RCTYPE_POT, overworldPotsActive, dungeonPotsActive, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Shuffle Grass
|
||||||
|
bool overworldGrassActive = ctx->GetOption(RSK_SHUFFLE_GRASS).Is(RO_SHUFFLE_GRASS_OVERWORLD) ||
|
||||||
|
ctx->GetOption(RSK_SHUFFLE_GRASS).Is(RO_SHUFFLE_GRASS_ALL);
|
||||||
|
bool dungeonGrassActive = ctx->GetOption(RSK_SHUFFLE_GRASS).Is(RO_SHUFFLE_GRASS_DUNGEONS) ||
|
||||||
|
ctx->GetOption(RSK_SHUFFLE_GRASS).Is(RO_SHUFFLE_GRASS_ALL);
|
||||||
|
if (overworldGrassActive || dungeonGrassActive) {
|
||||||
|
PlaceItemsForType(RCTYPE_GRASS, overworldGrassActive, dungeonGrassActive, false);
|
||||||
|
}
|
||||||
|
|
||||||
auto fsMode = ctx->GetOption(RSK_FISHSANITY);
|
auto fsMode = ctx->GetOption(RSK_FISHSANITY);
|
||||||
if (fsMode.IsNot(RO_FISHSANITY_OFF)) {
|
if (fsMode.IsNot(RO_FISHSANITY_OFF)) {
|
||||||
if (fsMode.Is(RO_FISHSANITY_POND) || fsMode.Is(RO_FISHSANITY_BOTH)) {
|
if (fsMode.Is(RO_FISHSANITY_POND) || fsMode.Is(RO_FISHSANITY_BOTH)) {
|
||||||
|
@ -11,7 +11,17 @@ void RegionTable_Init_CastleTown() {
|
|||||||
Entrance(RR_MARKET_GUARD_HOUSE, {[]{return true;}}),
|
Entrance(RR_MARKET_GUARD_HOUSE, {[]{return true;}}),
|
||||||
});
|
});
|
||||||
|
|
||||||
areaTable[RR_THE_MARKET] = Region("Market", "Market", {RA_THE_MARKET}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
areaTable[RR_THE_MARKET] = Region("Market", "Market", {RA_THE_MARKET}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||||
|
// Locations
|
||||||
|
LOCATION(RC_MARKET_GRASS_1, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_MARKET_GRASS_2, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_MARKET_GRASS_3, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_MARKET_GRASS_4, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_MARKET_GRASS_5, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_MARKET_GRASS_6, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_MARKET_GRASS_7, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_MARKET_GRASS_8, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_MARKET_ENTRANCE, {[]{return true;}}),
|
Entrance(RR_MARKET_ENTRANCE, {[]{return true;}}),
|
||||||
Entrance(RR_TOT_ENTRANCE, {[]{return true;}}),
|
Entrance(RR_TOT_ENTRANCE, {[]{return true;}}),
|
||||||
@ -105,6 +115,8 @@ void RegionTable_Init_CastleTown() {
|
|||||||
LOCATION(RC_HC_ROCK_WALL_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
LOCATION(RC_HC_ROCK_WALL_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||||
LOCATION(RC_HC_MALON_GOSSIP_STONE, true),
|
LOCATION(RC_HC_MALON_GOSSIP_STONE, true),
|
||||||
LOCATION(RC_HC_ROCK_WALL_GOSSIP_STONE, true),
|
LOCATION(RC_HC_ROCK_WALL_GOSSIP_STONE, true),
|
||||||
|
LOCATION(RC_HC_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HC_GRASS_2, logic->CanCutShrubs()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_CASTLE_GROUNDS, {[]{return true;}}),
|
Entrance(RR_CASTLE_GROUNDS, {[]{return true;}}),
|
||||||
|
@ -12,6 +12,54 @@ void RegionTable_Init_HyruleField() {
|
|||||||
LOCATION(RC_HF_OCARINA_OF_TIME_ITEM, logic->IsChild && logic->StoneCount() == 3 && logic->HasItem(RG_BRONZE_SCALE)),
|
LOCATION(RC_HF_OCARINA_OF_TIME_ITEM, logic->IsChild && logic->StoneCount() == 3 && logic->HasItem(RG_BRONZE_SCALE)),
|
||||||
LOCATION(RC_SONG_FROM_OCARINA_OF_TIME, logic->IsChild && logic->StoneCount() == 3 && logic->HasItem(RG_BRONZE_SCALE)),
|
LOCATION(RC_SONG_FROM_OCARINA_OF_TIME, logic->IsChild && logic->StoneCount() == 3 && logic->HasItem(RG_BRONZE_SCALE)),
|
||||||
LOCATION(RC_HF_POND_STORMS_FAIRY, logic->CanUse(RG_SONG_OF_STORMS)),
|
LOCATION(RC_HF_POND_STORMS_FAIRY, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_2, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_3, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_4, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_5, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_6, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_7, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_8, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_9, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_10, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_11, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_CENTRAL_GRASS_12, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_2, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_3, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_4, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_5, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_6, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_7, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_8, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_9, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_10, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_11, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_SOUTH_GRASS_12, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_2, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_3, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_4, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_5, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_6, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_7, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_8, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_9, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_10, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_11, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_GATE_GRASS_12, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_2, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_3, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_4, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_5, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_6, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_7, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_8, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_9, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_10, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_11, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_HF_NEAR_KF_GRASS_12, logic->CanCutShrubs()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_LW_BRIDGE, {[]{return true;}}),
|
Entrance(RR_LW_BRIDGE, {[]{return true;}}),
|
||||||
@ -175,6 +223,48 @@ void RegionTable_Init_HyruleField() {
|
|||||||
LOCATION(RC_LH_LAB_GOSSIP_STONE, true),
|
LOCATION(RC_LH_LAB_GOSSIP_STONE, true),
|
||||||
LOCATION(RC_LH_SOUTHEAST_GOSSIP_STONE, true),
|
LOCATION(RC_LH_SOUTHEAST_GOSSIP_STONE, true),
|
||||||
LOCATION(RC_LH_SOUTHWEST_GOSSIP_STONE, true),
|
LOCATION(RC_LH_SOUTHWEST_GOSSIP_STONE, true),
|
||||||
|
LOCATION(RC_LH_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_2, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_3, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_4, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_5, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_6, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_7, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_8, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_9, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_10, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_11, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_12, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_13, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_14, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_15, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_16, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_17, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_18, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_19, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_20, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_21, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_22, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_23, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_24, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_25, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_26, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_27, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_28, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_29, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_30, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_31, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_32, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_33, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_34, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_35, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_GRASS_36, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_CHILD_GRASS_1, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_CHILD_GRASS_2, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_CHILD_GRASS_3, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_CHILD_GRASS_4, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_WARP_PAD_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LH_WARP_PAD_GRASS_2, logic->CanCutShrubs()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_HYRULE_FIELD, {[]{return true;}}),
|
Entrance(RR_HYRULE_FIELD, {[]{return true;}}),
|
||||||
|
@ -30,6 +30,14 @@ void RegionTable_Init_Kakariko() {
|
|||||||
LOCATION(RC_KAK_NEAR_GUARDS_HOUSE_POT_1, logic->IsChild && logic->CanBreakPots()),
|
LOCATION(RC_KAK_NEAR_GUARDS_HOUSE_POT_1, logic->IsChild && logic->CanBreakPots()),
|
||||||
LOCATION(RC_KAK_NEAR_GUARDS_HOUSE_POT_2, logic->IsChild && logic->CanBreakPots()),
|
LOCATION(RC_KAK_NEAR_GUARDS_HOUSE_POT_2, logic->IsChild && logic->CanBreakPots()),
|
||||||
LOCATION(RC_KAK_NEAR_GUARDS_HOUSE_POT_3, logic->IsChild && logic->CanBreakPots()),
|
LOCATION(RC_KAK_NEAR_GUARDS_HOUSE_POT_3, logic->IsChild && logic->CanBreakPots()),
|
||||||
|
LOCATION(RC_KAK_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KAK_GRASS_2, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KAK_GRASS_3, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KAK_GRASS_4, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KAK_GRASS_5, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KAK_GRASS_6, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KAK_GRASS_7, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KAK_GRASS_8, logic->CanCutShrubs()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_HYRULE_FIELD, {[]{return true;}}),
|
Entrance(RR_HYRULE_FIELD, {[]{return true;}}),
|
||||||
@ -254,6 +262,18 @@ void RegionTable_Init_Kakariko() {
|
|||||||
LOCATION(RC_GRAVEYARD_BEAN_SPROUT_FAIRY_1, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
LOCATION(RC_GRAVEYARD_BEAN_SPROUT_FAIRY_1, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
||||||
LOCATION(RC_GRAVEYARD_BEAN_SPROUT_FAIRY_2, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
LOCATION(RC_GRAVEYARD_BEAN_SPROUT_FAIRY_2, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
||||||
LOCATION(RC_GRAVEYARD_BEAN_SPROUT_FAIRY_3, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
LOCATION(RC_GRAVEYARD_BEAN_SPROUT_FAIRY_3, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
||||||
|
LOCATION(RC_GY_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_2, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_3, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_4, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_5, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_6, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_7, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_8, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_9, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_10, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_11, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_GY_GRASS_12, logic->CanCutShrubs()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_GRAVEYARD_SHIELD_GRAVE, {[]{return logic->IsAdult || logic->AtNight;}}),
|
Entrance(RR_GRAVEYARD_SHIELD_GRAVE, {[]{return logic->IsAdult || logic->AtNight;}}),
|
||||||
|
@ -38,6 +38,39 @@ void RegionTable_Init_LostWoods() {
|
|||||||
LOCATION(RC_KF_SARIAS_ROOF_WEST_HEART, logic->IsChild),
|
LOCATION(RC_KF_SARIAS_ROOF_WEST_HEART, logic->IsChild),
|
||||||
LOCATION(RC_KF_SARIAS_ROOF_EAST_HEART, logic->IsChild),
|
LOCATION(RC_KF_SARIAS_ROOF_EAST_HEART, logic->IsChild),
|
||||||
LOCATION(RC_KF_SARIAS_ROOF_NORTH_HEART, logic->IsChild),
|
LOCATION(RC_KF_SARIAS_ROOF_NORTH_HEART, logic->IsChild),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_1, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_2, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_3, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_4, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_5, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_6, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_7, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_8, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_9, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_10, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_11, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_12, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_MAZE_1, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_MAZE_2, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_CHILD_GRASS_MAZE_3, logic->IsChild && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_1, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_2, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_3, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_4, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_5, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_6, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_7, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_8, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_9, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_10, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_11, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_12, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_13, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_14, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_15, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_16, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_17, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_KF_ADULT_GRASS_18, logic->IsAdult && logic->CanCutShrubs()),
|
||||||
LOCATION(RC_KF_GOSSIP_STONE, true),
|
LOCATION(RC_KF_GOSSIP_STONE, true),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
@ -193,6 +226,10 @@ void RegionTable_Init_LostWoods() {
|
|||||||
LOCATION(RC_LW_GOSSIP_STONE_FAIRY, logic->CallGossipFairyExceptSuns()),
|
LOCATION(RC_LW_GOSSIP_STONE_FAIRY, logic->CallGossipFairyExceptSuns()),
|
||||||
LOCATION(RC_LW_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
LOCATION(RC_LW_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||||
LOCATION(RC_LW_SHORTCUT_STORMS_FAIRY, logic->CanUse(RG_SONG_OF_STORMS)),
|
LOCATION(RC_LW_SHORTCUT_STORMS_FAIRY, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||||
|
LOCATION(RC_LW_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LW_GRASS_2, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LW_GRASS_3, logic->CanCutShrubs()),
|
||||||
|
|
||||||
LOCATION(RC_LW_GOSSIP_STONE, true),
|
LOCATION(RC_LW_GOSSIP_STONE, true),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
@ -217,6 +254,12 @@ void RegionTable_Init_LostWoods() {
|
|||||||
LOCATION(RC_LW_BEAN_SPROUT_NEAR_THEATER_FAIRY_1, logic->IsChild && logic->HasItem(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
LOCATION(RC_LW_BEAN_SPROUT_NEAR_THEATER_FAIRY_1, logic->IsChild && logic->HasItem(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
||||||
LOCATION(RC_LW_BEAN_SPROUT_NEAR_THEATER_FAIRY_2, logic->IsChild && logic->HasItem(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
LOCATION(RC_LW_BEAN_SPROUT_NEAR_THEATER_FAIRY_2, logic->IsChild && logic->HasItem(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
||||||
LOCATION(RC_LW_BEAN_SPROUT_NEAR_THEATER_FAIRY_3, logic->IsChild && logic->HasItem(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
LOCATION(RC_LW_BEAN_SPROUT_NEAR_THEATER_FAIRY_3, logic->IsChild && logic->HasItem(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
||||||
|
LOCATION(RC_LW_GRASS_4, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LW_GRASS_5, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LW_GRASS_6, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LW_GRASS_7, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LW_GRASS_8, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_LW_GRASS_9, logic->CanCutShrubs()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_LW_FOREST_EXIT, {[]{return true;}}),
|
Entrance(RR_LW_FOREST_EXIT, {[]{return true;}}),
|
||||||
|
@ -7,6 +7,18 @@ void RegionTable_Init_ZorasDomain() {
|
|||||||
areaTable[RR_ZR_FRONT] = Region("ZR Front", "Zora River", {RA_ZORAS_RIVER}, DAY_NIGHT_CYCLE, {}, {
|
areaTable[RR_ZR_FRONT] = Region("ZR Front", "Zora River", {RA_ZORAS_RIVER}, DAY_NIGHT_CYCLE, {}, {
|
||||||
//Locations
|
//Locations
|
||||||
LOCATION(RC_ZR_GS_TREE, logic->IsChild && logic->CanAttack()),
|
LOCATION(RC_ZR_GS_TREE, logic->IsChild && logic->CanAttack()),
|
||||||
|
LOCATION(RC_ZR_GRASS_1, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_2, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_3, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_4, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_5, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_6, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_7, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_8, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_9, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_10, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_11, logic->CanCutShrubs()),
|
||||||
|
LOCATION(RC_ZR_GRASS_12, logic->CanCutShrubs()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_ZORAS_RIVER, {[]{return logic->IsAdult || logic->BlastOrSmash();}}),
|
Entrance(RR_ZORAS_RIVER, {[]{return logic->IsAdult || logic->BlastOrSmash();}}),
|
||||||
@ -47,6 +59,7 @@ void RegionTable_Init_ZorasDomain() {
|
|||||||
LOCATION(RC_ZR_BENEATH_WATERFALL_RIGHT_RUPEE, logic->IsAdult && (logic->HasItem(RG_BRONZE_SCALE) || logic->CanUse(RG_IRON_BOOTS) || logic->CanUse(RG_BOOMERANG))),
|
LOCATION(RC_ZR_BENEATH_WATERFALL_RIGHT_RUPEE, logic->IsAdult && (logic->HasItem(RG_BRONZE_SCALE) || logic->CanUse(RG_IRON_BOOTS) || logic->CanUse(RG_BOOMERANG))),
|
||||||
LOCATION(RC_ZR_NEAR_GROTTOS_GOSSIP_STONE, true),
|
LOCATION(RC_ZR_NEAR_GROTTOS_GOSSIP_STONE, true),
|
||||||
LOCATION(RC_ZR_NEAR_DOMAIN_GOSSIP_STONE, true),
|
LOCATION(RC_ZR_NEAR_DOMAIN_GOSSIP_STONE, true),
|
||||||
|
LOCATION(RC_ZR_GRASS_13, logic->IsChild && logic->CanCutShrubs()),
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_ZR_FRONT, {[]{return true;}}),
|
Entrance(RR_ZR_FRONT, {[]{return true;}}),
|
||||||
|
95
soh/soh/Enhancements/randomizer/ShuffleGrass.cpp
Normal file
95
soh/soh/Enhancements/randomizer/ShuffleGrass.cpp
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#include "ShuffleGrass.h"
|
||||||
|
#include "soh_assets.h"
|
||||||
|
#include "static_data.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#include "variables.h"
|
||||||
|
#include "overlays/actors/ovl_En_Kusa/z_en_kusa.h"
|
||||||
|
#include <objects/gameplay_field_keep/gameplay_field_keep.h>
|
||||||
|
#include "objects/object_kusa/object_kusa.h"
|
||||||
|
extern PlayState* gPlayState;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern void EnItem00_DrawRandomizedItem(EnItem00* enItem00, PlayState* play);
|
||||||
|
|
||||||
|
|
||||||
|
extern "C" void EnKusa_RandomizerDraw(Actor* thisx, PlayState* play) {
|
||||||
|
float grassSize = 0.5f;
|
||||||
|
|
||||||
|
OPEN_DISPS(play->state.gfxCtx);
|
||||||
|
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||||
|
Matrix_Scale(grassSize, grassSize, grassSize, MTXMODE_APPLY);
|
||||||
|
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 100, 255, 0, 255);
|
||||||
|
gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, 255);
|
||||||
|
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||||
|
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||||
|
|
||||||
|
if (thisx->params == -255) {
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)object_kusa_DL_000140);
|
||||||
|
} else {
|
||||||
|
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gFieldBushDL);
|
||||||
|
}
|
||||||
|
|
||||||
|
CLOSE_DISPS(play->state.gfxCtx);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t EnKusa_RandomizerHoldsItem(EnKusa* grassActor, PlayState* play) {
|
||||||
|
RandomizerCheck rc = grassActor->grassIdentity.randomizerCheck;
|
||||||
|
//uint8_t isDungeon = Rando::StaticData::GetLocation(rc)->IsDungeon();
|
||||||
|
//uint8_t potSetting = Rando::Context::GetInstance()->GetOption(RSK_SHUFFLE_POTS).GetContextOptionIndex();
|
||||||
|
|
||||||
|
// Don't pull randomized item if pot isn't randomized or is already checked
|
||||||
|
if (!IS_RANDO || /*(potSetting == RO_SHUFFLE_POTS_OVERWORLD && isDungeon) ||*/
|
||||||
|
/*(potSetting == RO_SHUFFLE_POTS_DUNGEONS && !isDungeon) ||*/
|
||||||
|
Flags_GetRandomizerInf(grassActor->grassIdentity.randomizerInf) ||
|
||||||
|
grassActor->grassIdentity.randomizerCheck == RC_UNKNOWN_CHECK) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EnKusa_RandomizerSpawnCollectible(EnKusa* grassActor, PlayState* play) {
|
||||||
|
EnItem00* item00 = (EnItem00*)Item_DropCollectible2(play, &grassActor->actor.world.pos, ITEM00_SOH_DUMMY);
|
||||||
|
item00->randoInf = grassActor->grassIdentity.randomizerInf;
|
||||||
|
item00->itemEntry = Rando::Context::GetInstance()->GetFinalGIEntry(grassActor->grassIdentity.randomizerCheck, true, GI_NONE);
|
||||||
|
item00->actor.draw = (ActorFunc)EnItem00_DrawRandomizedItem;
|
||||||
|
item00->actor.velocity.y = 8.0f;
|
||||||
|
item00->actor.speedXZ = 2.0f;
|
||||||
|
item00->actor.world.rot.y = Rand_CenteredFloat(65536.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EnKusa_RandomizerInit(void* actorRef) {
|
||||||
|
Actor* actor = static_cast<Actor*>(actorRef);
|
||||||
|
|
||||||
|
if (actor->id != ACTOR_EN_KUSA) return;
|
||||||
|
|
||||||
|
EnKusa* grassActor = static_cast<EnKusa*>(actorRef);
|
||||||
|
|
||||||
|
grassActor->grassIdentity = OTRGlobals::Instance->gRandomizer->IdentifyGrass(gPlayState->sceneNum, (s16)actor->world.pos.x, (s16)actor->world.pos.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ShuffleGrass_OnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_list originalArgs) {
|
||||||
|
va_list args;
|
||||||
|
va_copy(args, originalArgs);
|
||||||
|
|
||||||
|
// Draw custom model for grass to indicate it holding a randomized item.
|
||||||
|
if (id == VB_GRASS_SETUP_DRAW) {
|
||||||
|
EnKusa* grassActor = va_arg(args, EnKusa*);
|
||||||
|
if (EnKusa_RandomizerHoldsItem(grassActor, gPlayState)) {
|
||||||
|
grassActor->actor.draw = (ActorFunc)EnKusa_RandomizerDraw;
|
||||||
|
*should = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do not spawn vanilla item from grass, instead spawn the randomized item.
|
||||||
|
if (id == VB_GRASS_DROP_ITEM) {
|
||||||
|
EnKusa* grassActor = va_arg(args, EnKusa*);
|
||||||
|
if (EnKusa_RandomizerHoldsItem(grassActor, gPlayState)) {
|
||||||
|
EnKusa_RandomizerSpawnCollectible(grassActor, gPlayState);
|
||||||
|
*should = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
va_end(args);
|
||||||
|
}
|
17
soh/soh/Enhancements/randomizer/ShuffleGrass.h
Normal file
17
soh/soh/Enhancements/randomizer/ShuffleGrass.h
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#ifndef SHUFFLEGRASS_H
|
||||||
|
#define SHUFFLEGRASS_H
|
||||||
|
|
||||||
|
#include <z64.h>
|
||||||
|
#include <soh/OTRGlobals.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
void EnKusa_RandomizerInit(void* actorRef);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void ShuffleGrass_OnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_list originalArgs);
|
||||||
|
|
||||||
|
#endif //SHUFFLEGRASS_H
|
@ -144,6 +144,11 @@ void Context::GenerateLocationPool() {
|
|||||||
AddLocations(StaticData::GetOverworldPotLocations());
|
AddLocations(StaticData::GetOverworldPotLocations());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mSettings->GetOption(RSK_SHUFFLE_GRASS).Is(RO_SHUFFLE_GRASS_OVERWORLD) ||
|
||||||
|
mSettings->GetOption(RSK_SHUFFLE_GRASS).Is(RO_SHUFFLE_GRASS_ALL)) {
|
||||||
|
AddLocations(StaticData::GetOverworldGrassLocations());
|
||||||
|
}
|
||||||
|
|
||||||
AddLocations(StaticData::GetAllDungeonLocations());
|
AddLocations(StaticData::GetAllDungeonLocations());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,12 +11,14 @@ DungeonInfo::DungeonInfo(std::string name_, const RandomizerHintTextKey hintKey_
|
|||||||
const RandomizerSettingKey mqSetting_,
|
const RandomizerSettingKey mqSetting_,
|
||||||
std::vector<RandomizerCheck> vanillaLocations_, std::vector<RandomizerCheck> mqLocations_,
|
std::vector<RandomizerCheck> vanillaLocations_, std::vector<RandomizerCheck> mqLocations_,
|
||||||
std::vector<RandomizerCheck> vanillaPots_, std::vector<RandomizerCheck> mqPots_,
|
std::vector<RandomizerCheck> vanillaPots_, std::vector<RandomizerCheck> mqPots_,
|
||||||
|
std::vector<RandomizerCheck> vanillaGrass_, std::vector<RandomizerCheck> mqGrass_,
|
||||||
std::vector<RandomizerCheck> sharedLocations_, std::vector<RandomizerCheck> bossRoomLocations_)
|
std::vector<RandomizerCheck> sharedLocations_, std::vector<RandomizerCheck> bossRoomLocations_)
|
||||||
: name(std::move(name_)), hintKey(hintKey_), map(map_), compass(compass_), smallKey(smallKey_), keyRing(keyRing_),
|
: name(std::move(name_)), hintKey(hintKey_), map(map_), compass(compass_), smallKey(smallKey_), keyRing(keyRing_),
|
||||||
bossKey(bossKey_), area(area_), vanillaKeyCount(vanillaKeyCount_), mqKeyCount(mqKeyCount_),
|
bossKey(bossKey_), area(area_), vanillaKeyCount(vanillaKeyCount_), mqKeyCount(mqKeyCount_),
|
||||||
mqSetting(mqSetting_),
|
mqSetting(mqSetting_),
|
||||||
vanillaLocations(std::move(vanillaLocations_)), mqLocations(std::move(mqLocations_)),
|
vanillaLocations(std::move(vanillaLocations_)), mqLocations(std::move(mqLocations_)),
|
||||||
vanillaPots(std::move(vanillaPots_)), mqPots(std::move(mqPots_)),
|
vanillaPots(std::move(vanillaPots_)), mqPots(std::move(mqPots_)),
|
||||||
|
vanillaGrass(std::move(vanillaGrass_)), mqGrass(std::move(mqGrass_)),
|
||||||
sharedLocations(std::move(sharedLocations_)), bossRoomLocations(std::move(bossRoomLocations_)) {
|
sharedLocations(std::move(sharedLocations_)), bossRoomLocations(std::move(bossRoomLocations_)) {
|
||||||
}
|
}
|
||||||
DungeonInfo::DungeonInfo() : hintKey(RHT_NONE), map(RG_NONE), compass(RG_NONE), smallKey(RG_NONE), keyRing(RG_NONE),
|
DungeonInfo::DungeonInfo() : hintKey(RHT_NONE), map(RG_NONE), compass(RG_NONE), smallKey(RG_NONE), keyRing(RG_NONE),
|
||||||
@ -212,7 +214,18 @@ Dungeons::Dungeons() {
|
|||||||
RC_DEKU_TREE_MQ_BEFORE_BOSS_MIDDLE_HEART,
|
RC_DEKU_TREE_MQ_BEFORE_BOSS_MIDDLE_HEART,
|
||||||
RC_DEKU_TREE_MQ_BEFORE_BOSS_RIGHT_HEART,
|
RC_DEKU_TREE_MQ_BEFORE_BOSS_RIGHT_HEART,
|
||||||
},
|
},
|
||||||
{}, {}, {},
|
{}, {},
|
||||||
|
{
|
||||||
|
// Vanilla Grass
|
||||||
|
RC_DEKU_TREE_LOBBY_GRASS_1,
|
||||||
|
RC_DEKU_TREE_LOBBY_GRASS_2,
|
||||||
|
RC_DEKU_TREE_LOBBY_GRASS_3,
|
||||||
|
RC_DEKU_TREE_LOBBY_GRASS_4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// MQ Grass
|
||||||
|
},
|
||||||
|
{},
|
||||||
{
|
{
|
||||||
// Boss Room Locations
|
// Boss Room Locations
|
||||||
RC_DEKU_TREE_QUEEN_GOHMA_HEART,
|
RC_DEKU_TREE_QUEEN_GOHMA_HEART,
|
||||||
@ -329,6 +342,12 @@ Dungeons::Dungeons() {
|
|||||||
RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_1,
|
RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_1,
|
||||||
RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_2,
|
RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_2,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
// Vanilla Grass
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// MQ Grass
|
||||||
|
},
|
||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
// Boss Room Locations
|
// Boss Room Locations
|
||||||
@ -416,6 +435,10 @@ Dungeons::Dungeons() {
|
|||||||
RC_JABU_JABUS_BELLY_BARINADE_POT_6,
|
RC_JABU_JABUS_BELLY_BARINADE_POT_6,
|
||||||
},
|
},
|
||||||
{},
|
{},
|
||||||
|
{
|
||||||
|
// MQ Grass
|
||||||
|
},
|
||||||
|
{},
|
||||||
{
|
{
|
||||||
// Boss Room Locations
|
// Boss Room Locations
|
||||||
RC_JABU_JABUS_BELLY_BARINADE_HEART,
|
RC_JABU_JABUS_BELLY_BARINADE_HEART,
|
||||||
@ -521,7 +544,7 @@ Dungeons::Dungeons() {
|
|||||||
RC_FOREST_TEMPLE_MQ_BASEMENT_POT_3,
|
RC_FOREST_TEMPLE_MQ_BASEMENT_POT_3,
|
||||||
RC_FOREST_TEMPLE_MQ_BASEMENT_POT_4,
|
RC_FOREST_TEMPLE_MQ_BASEMENT_POT_4,
|
||||||
},
|
},
|
||||||
{},
|
{}, {}, {},
|
||||||
{
|
{
|
||||||
// Boss Room Locations
|
// Boss Room Locations
|
||||||
RC_FOREST_TEMPLE_PHANTOM_GANON_HEART,
|
RC_FOREST_TEMPLE_PHANTOM_GANON_HEART,
|
||||||
@ -635,7 +658,7 @@ Dungeons::Dungeons() {
|
|||||||
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7,
|
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7,
|
||||||
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8,
|
RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8,
|
||||||
},
|
},
|
||||||
{},
|
{}, {}, {},
|
||||||
{
|
{
|
||||||
// Boos Room Locations
|
// Boos Room Locations
|
||||||
RC_FIRE_TEMPLE_VOLVAGIA_HEART,
|
RC_FIRE_TEMPLE_VOLVAGIA_HEART,
|
||||||
@ -743,7 +766,7 @@ Dungeons::Dungeons() {
|
|||||||
RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_4,
|
RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_4,
|
||||||
RC_WATER_TEMPLE_MQ_BOSS_KEY_POT,
|
RC_WATER_TEMPLE_MQ_BOSS_KEY_POT,
|
||||||
},
|
},
|
||||||
{},
|
{}, {}, {},
|
||||||
{
|
{
|
||||||
// Boss Room Locations
|
// Boss Room Locations
|
||||||
RC_WATER_TEMPLE_MORPHA_HEART,
|
RC_WATER_TEMPLE_MORPHA_HEART,
|
||||||
@ -863,6 +886,7 @@ Dungeons::Dungeons() {
|
|||||||
RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1,
|
RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1,
|
||||||
RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2,
|
RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2,
|
||||||
},
|
},
|
||||||
|
{}, {},
|
||||||
{
|
{
|
||||||
// Shared Locations
|
// Shared Locations
|
||||||
RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST,
|
RC_SPIRIT_TEMPLE_SILVER_GAUNTLETS_CHEST,
|
||||||
@ -993,7 +1017,7 @@ Dungeons::Dungeons() {
|
|||||||
RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1,
|
RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1,
|
||||||
RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2,
|
RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2,
|
||||||
},
|
},
|
||||||
{},
|
{}, {}, {},
|
||||||
{
|
{
|
||||||
// Boss Room Locations
|
// Boss Room Locations
|
||||||
RC_SHADOW_TEMPLE_BONGO_BONGO_HEART,
|
RC_SHADOW_TEMPLE_BONGO_BONGO_HEART,
|
||||||
@ -1082,6 +1106,12 @@ Dungeons::Dungeons() {
|
|||||||
RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_POT_2,
|
RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_POT_2,
|
||||||
RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_POT_3,
|
RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_POT_3,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
// Vanilla Grass
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// MQ Grass
|
||||||
|
},
|
||||||
{}, {});
|
{}, {});
|
||||||
dungeonList[ICE_CAVERN] = DungeonInfo("Ice Cavern", RHT_ICE_CAVERN, RG_ICE_CAVERN_MAP, RG_ICE_CAVERN_COMPASS,
|
dungeonList[ICE_CAVERN] = DungeonInfo("Ice Cavern", RHT_ICE_CAVERN, RG_ICE_CAVERN_MAP, RG_ICE_CAVERN_COMPASS,
|
||||||
RG_NONE, RG_NONE, RG_NONE, RA_ICE_CAVERN, 0, 0, RSK_MQ_ICE_CAVERN,
|
RG_NONE, RG_NONE, RG_NONE, RA_ICE_CAVERN, 0, 0, RSK_MQ_ICE_CAVERN,
|
||||||
@ -1138,6 +1168,7 @@ Dungeons::Dungeons() {
|
|||||||
RC_ICE_CAVERN_MQ_COMPASS_POT_1,
|
RC_ICE_CAVERN_MQ_COMPASS_POT_1,
|
||||||
RC_ICE_CAVERN_MQ_COMPASS_POT_2,
|
RC_ICE_CAVERN_MQ_COMPASS_POT_2,
|
||||||
},
|
},
|
||||||
|
{}, {},
|
||||||
{
|
{
|
||||||
// Shared Locations
|
// Shared Locations
|
||||||
RC_SHEIK_IN_ICE_CAVERN,
|
RC_SHEIK_IN_ICE_CAVERN,
|
||||||
@ -1201,7 +1232,7 @@ Dungeons::Dungeons() {
|
|||||||
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_POT_2,
|
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_POT_2,
|
||||||
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_1,
|
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_1,
|
||||||
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_2,
|
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_2,
|
||||||
}, {}, {});
|
}, {}, {}, {}, {});
|
||||||
dungeonList[GANONS_CASTLE] =
|
dungeonList[GANONS_CASTLE] =
|
||||||
DungeonInfo("Ganon's Castle", RHT_GANONS_CASTLE, RG_NONE, RG_NONE, RG_GANONS_CASTLE_SMALL_KEY,
|
DungeonInfo("Ganon's Castle", RHT_GANONS_CASTLE, RG_NONE, RG_NONE, RG_GANONS_CASTLE_SMALL_KEY,
|
||||||
RG_GANONS_CASTLE_KEY_RING, RG_GANONS_CASTLE_BOSS_KEY, RA_GANONS_CASTLE, 2, 3, RSK_MQ_GANONS_CASTLE,
|
RG_GANONS_CASTLE_KEY_RING, RG_GANONS_CASTLE_BOSS_KEY, RA_GANONS_CASTLE, 2, 3, RSK_MQ_GANONS_CASTLE,
|
||||||
@ -1347,6 +1378,7 @@ Dungeons::Dungeons() {
|
|||||||
RC_GANONS_CASTLE_GANONS_TOWER_POT_17,
|
RC_GANONS_CASTLE_GANONS_TOWER_POT_17,
|
||||||
RC_GANONS_CASTLE_GANONS_TOWER_POT_18,
|
RC_GANONS_CASTLE_GANONS_TOWER_POT_18,
|
||||||
},
|
},
|
||||||
|
{}, {},
|
||||||
{
|
{
|
||||||
// Shared Locations
|
// Shared Locations
|
||||||
RC_GANONS_TOWER_BOSS_KEY_CHEST,
|
RC_GANONS_TOWER_BOSS_KEY_CHEST,
|
||||||
|
@ -15,6 +15,7 @@ class DungeonInfo {
|
|||||||
uint8_t vanillaKeyCount_, uint8_t mqKeyCount_, RandomizerSettingKey mqSetting_,
|
uint8_t vanillaKeyCount_, uint8_t mqKeyCount_, RandomizerSettingKey mqSetting_,
|
||||||
std::vector<RandomizerCheck> vanillaLocations_, std::vector<RandomizerCheck> mqLocations_,
|
std::vector<RandomizerCheck> vanillaLocations_, std::vector<RandomizerCheck> mqLocations_,
|
||||||
std::vector<RandomizerCheck> vanillaPots_, std::vector<RandomizerCheck> mqPots_,
|
std::vector<RandomizerCheck> vanillaPots_, std::vector<RandomizerCheck> mqPots_,
|
||||||
|
std::vector<RandomizerCheck> vanillaGrass_, std::vector<RandomizerCheck> mqGrass_,
|
||||||
std::vector<RandomizerCheck> sharedLocations_,
|
std::vector<RandomizerCheck> sharedLocations_,
|
||||||
std::vector<RandomizerCheck> bossRoomLocations_);
|
std::vector<RandomizerCheck> bossRoomLocations_);
|
||||||
DungeonInfo();
|
DungeonInfo();
|
||||||
@ -64,6 +65,8 @@ class DungeonInfo {
|
|||||||
std::vector<RandomizerCheck> mqLocations;
|
std::vector<RandomizerCheck> mqLocations;
|
||||||
std::vector<RandomizerCheck> vanillaPots;
|
std::vector<RandomizerCheck> vanillaPots;
|
||||||
std::vector<RandomizerCheck> mqPots;
|
std::vector<RandomizerCheck> mqPots;
|
||||||
|
std::vector<RandomizerCheck> vanillaGrass;
|
||||||
|
std::vector<RandomizerCheck> mqGrass;
|
||||||
std::vector<RandomizerCheck> sharedLocations;
|
std::vector<RandomizerCheck> sharedLocations;
|
||||||
std::vector<RandomizerCheck> bossRoomLocations;
|
std::vector<RandomizerCheck> bossRoomLocations;
|
||||||
};
|
};
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "soh/Notification/Notification.h"
|
#include "soh/Notification/Notification.h"
|
||||||
#include "soh/SaveManager.h"
|
#include "soh/SaveManager.h"
|
||||||
#include "soh/Enhancements/randomizer/ShuffleFairies.h"
|
#include "soh/Enhancements/randomizer/ShuffleFairies.h"
|
||||||
|
#include "soh/Enhancements/randomizer/ShuffleGrass.h"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
@ -2361,6 +2362,9 @@ void RandomizerRegisterHooks() {
|
|||||||
|
|
||||||
static uint32_t shuffleFreestandingOnVanillaBehaviorHook = 0;
|
static uint32_t shuffleFreestandingOnVanillaBehaviorHook = 0;
|
||||||
|
|
||||||
|
static uint32_t shuffleGrassOnActorInitHook = 0;
|
||||||
|
static uint32_t shuffleGrassOnVanillaBehaviorHook = 0;
|
||||||
|
|
||||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnLoadGame>([](int32_t fileNum) {
|
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnLoadGame>([](int32_t fileNum) {
|
||||||
randomizerQueuedChecks = std::queue<RandomizerCheck>();
|
randomizerQueuedChecks = std::queue<RandomizerCheck>();
|
||||||
randomizerQueuedCheck = RC_UNKNOWN_CHECK;
|
randomizerQueuedCheck = RC_UNKNOWN_CHECK;
|
||||||
@ -2394,6 +2398,9 @@ void RandomizerRegisterHooks() {
|
|||||||
|
|
||||||
GameInteractor::Instance->UnregisterGameHook<GameInteractor::OnActorInit>(shuffleFreestandingOnVanillaBehaviorHook);
|
GameInteractor::Instance->UnregisterGameHook<GameInteractor::OnActorInit>(shuffleFreestandingOnVanillaBehaviorHook);
|
||||||
|
|
||||||
|
GameInteractor::Instance->UnregisterGameHook<GameInteractor::OnActorInit>(shuffleGrassOnActorInitHook);
|
||||||
|
GameInteractor::Instance->UnregisterGameHook<GameInteractor::OnVanillaBehavior>(shuffleGrassOnVanillaBehaviorHook);
|
||||||
|
|
||||||
onFlagSetHook = 0;
|
onFlagSetHook = 0;
|
||||||
onSceneFlagSetHook = 0;
|
onSceneFlagSetHook = 0;
|
||||||
onPlayerUpdateForRCQueueHook = 0;
|
onPlayerUpdateForRCQueueHook = 0;
|
||||||
@ -2422,6 +2429,9 @@ void RandomizerRegisterHooks() {
|
|||||||
|
|
||||||
shuffleFreestandingOnVanillaBehaviorHook = 0;
|
shuffleFreestandingOnVanillaBehaviorHook = 0;
|
||||||
|
|
||||||
|
shuffleGrassOnActorInitHook = 0;
|
||||||
|
shuffleGrassOnVanillaBehaviorHook = 0;
|
||||||
|
|
||||||
ShuffleFairies_UnregisterHooks();
|
ShuffleFairies_UnregisterHooks();
|
||||||
|
|
||||||
if (!IS_RANDO) return;
|
if (!IS_RANDO) return;
|
||||||
@ -2474,5 +2484,10 @@ void RandomizerRegisterHooks() {
|
|||||||
if (RAND_GET_OPTION(RSK_SHUFFLE_FAIRIES)) {
|
if (RAND_GET_OPTION(RSK_SHUFFLE_FAIRIES)) {
|
||||||
ShuffleFairies_RegisterHooks();
|
ShuffleFairies_RegisterHooks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (RAND_GET_OPTION(RSK_SHUFFLE_GRASS)) {
|
||||||
|
shuffleGrassOnActorInitHook = GameInteractor::Instance->RegisterGameHook<GameInteractor::OnActorInit>(EnKusa_RandomizerInit);
|
||||||
|
shuffleGrassOnVanillaBehaviorHook = GameInteractor::Instance->RegisterGameHook<GameInteractor::OnVanillaBehavior>(ShuffleGrass_OnVanillaBehaviorHandler);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -388,3 +388,10 @@ Rando::Location Rando::Location::Fairy(RandomizerCheck rc, RandomizerCheckQuest
|
|||||||
RandomizerHintTextKey hintKey, SpoilerCollectionCheck collectionCheck) {
|
RandomizerHintTextKey hintKey, SpoilerCollectionCheck collectionCheck) {
|
||||||
return {rc, quest_, RCTYPE_FAIRY, area_, ACTOR_EN_ELF, scene_, actorParams_, std::move(shortName_), std::move(spoilerName_), hintKey, RG_NONE, false, collectionCheck};
|
return {rc, quest_, RCTYPE_FAIRY, area_, ACTOR_EN_ELF, scene_, actorParams_, std::move(shortName_), std::move(spoilerName_), hintKey, RG_NONE, false, collectionCheck};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rando::Location Rando::Location::Grass(RandomizerCheck rc, RandomizerCheckQuest quest_, RandomizerCheckArea area_,
|
||||||
|
SceneID scene_, int32_t actorParams_, std::string&& shortName_,
|
||||||
|
std::string&& spoilerName_, RandomizerHintTextKey hintKey,
|
||||||
|
RandomizerGet vanillaItem, SpoilerCollectionCheck collectionCheck) {
|
||||||
|
return { rc, quest_, RCTYPE_GRASS, area_, ACTOR_EN_KUSA, scene_, actorParams_, std::move(shortName_), std::move(spoilerName_), hintKey, vanillaItem, false, collectionCheck };
|
||||||
|
}
|
||||||
|
@ -175,6 +175,11 @@ class Location {
|
|||||||
RandomizerHintTextKey hintKey, RandomizerGet vanillaItem,
|
RandomizerHintTextKey hintKey, RandomizerGet vanillaItem,
|
||||||
SpoilerCollectionCheck collectionCheck);
|
SpoilerCollectionCheck collectionCheck);
|
||||||
|
|
||||||
|
static Location Grass(RandomizerCheck rc, RandomizerCheckQuest quest_, RandomizerCheckArea area_, SceneID scene_,
|
||||||
|
int32_t actorParams_, std::string&& shortName_, std::string&& spoilerName_,
|
||||||
|
RandomizerHintTextKey hintKey, RandomizerGet vanillaItem,
|
||||||
|
SpoilerCollectionCheck collectionCheck);
|
||||||
|
|
||||||
static Location OtherHint(RandomizerCheck rc, RandomizerCheckQuest quest_, RandomizerCheckArea area_, ActorID actorId_, SceneID scene_, std::string&& shortName_,
|
static Location OtherHint(RandomizerCheck rc, RandomizerCheckQuest quest_, RandomizerCheckArea area_, ActorID actorId_, SceneID scene_, std::string&& shortName_,
|
||||||
std::string&& spoilerName_);
|
std::string&& spoilerName_);
|
||||||
|
|
||||||
|
@ -43,6 +43,16 @@ std::vector<RandomizerCheck> Rando::StaticData::GetOverworldPotLocations() {
|
|||||||
return overworldPotLocations;
|
return overworldPotLocations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<RandomizerCheck> Rando::StaticData::GetOverworldGrassLocations() {
|
||||||
|
std::vector<RandomizerCheck> overworldGrassLocations = {};
|
||||||
|
for (Location& location : locationTable) {
|
||||||
|
if (location.GetRCType() == RCTYPE_GRASS && location.IsOverworld() && location.GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
|
||||||
|
overworldGrassLocations.push_back(location.GetRandomizerCheck());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return overworldGrassLocations;
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<RandomizerCheck> Rando::StaticData::GetStaticHintLocations() {
|
std::vector<RandomizerCheck> Rando::StaticData::GetStaticHintLocations() {
|
||||||
std::vector<RandomizerCheck> staticHintLocations = {};
|
std::vector<RandomizerCheck> staticHintLocations = {};
|
||||||
for (Location& location : locationTable) {
|
for (Location& location : locationTable) {
|
||||||
@ -114,6 +124,7 @@ std::vector<RandomizerCheck> Rando::StaticData::GetOverworldLocations() {
|
|||||||
location.GetRandomizerCheck() != RC_TRIFORCE_COMPLETED && //not really an overworld check
|
location.GetRandomizerCheck() != RC_TRIFORCE_COMPLETED && //not really an overworld check
|
||||||
location.GetRCType() != RCTYPE_FISH && // temp fix while locations are properly sorted out
|
location.GetRCType() != RCTYPE_FISH && // temp fix while locations are properly sorted out
|
||||||
location.GetRCType() != RCTYPE_POT && // Same as fish
|
location.GetRCType() != RCTYPE_POT && // Same as fish
|
||||||
|
location.GetRCType() != RCTYPE_GRASS && // Same as fish
|
||||||
location.GetRCType() != RCTYPE_CHEST_GAME && //this is supposed to be excluded
|
location.GetRCType() != RCTYPE_CHEST_GAME && //this is supposed to be excluded
|
||||||
(ctx->GetOption(RSK_SHUFFLE_ADULT_TRADE) || location.GetRCType() != RCTYPE_ADULT_TRADE) && //trade is handled elsewhere in location pool
|
(ctx->GetOption(RSK_SHUFFLE_ADULT_TRADE) || location.GetRCType() != RCTYPE_ADULT_TRADE) && //trade is handled elsewhere in location pool
|
||||||
location.GetRCType() != RCTYPE_STATIC_HINT &&
|
location.GetRCType() != RCTYPE_STATIC_HINT &&
|
||||||
@ -1053,6 +1064,202 @@ void Rando::StaticData::InitLocationTable() { //
|
|||||||
locationTable[RC_ZD_FISH_4] = Location::Fish(RC_ZD_FISH_4, RCQUEST_BOTH, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 3, RAND_INF_ZD_FISH_4, "Fish 4", RHT_ZD_FISH, RG_FISH);
|
locationTable[RC_ZD_FISH_4] = Location::Fish(RC_ZD_FISH_4, RCQUEST_BOTH, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 3, RAND_INF_ZD_FISH_4, "Fish 4", RHT_ZD_FISH, RG_FISH);
|
||||||
locationTable[RC_ZD_FISH_5] = Location::Fish(RC_ZD_FISH_5, RCQUEST_BOTH, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 4, RAND_INF_ZD_FISH_5, "Fish 5", RHT_ZD_FISH, RG_FISH);
|
locationTable[RC_ZD_FISH_5] = Location::Fish(RC_ZD_FISH_5, RCQUEST_BOTH, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 4, RAND_INF_ZD_FISH_5, "Fish 5", RHT_ZD_FISH, RG_FISH);
|
||||||
|
|
||||||
|
/* +-----------------+
|
||||||
|
| SHUFFLE GRASS |
|
||||||
|
+-----------------+ */
|
||||||
|
|
||||||
|
// Overworld Grass
|
||||||
|
// Randomizer Check Randomizer Check Quest Area Scene ID Params Short Name Spoiler Name Hint Text Key Vanilla Spoiler Collection Check
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_1] = Location::Grass(RC_KF_CHILD_GRASS_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(678, 596), "KF Child Grass 1", "KF Child Grass 1", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_1));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_2] = Location::Grass(RC_KF_CHILD_GRASS_2, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(594, 542), "KF Child Grass 2", "KF Child Grass 2", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_2));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_3] = Location::Grass(RC_KF_CHILD_GRASS_3, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(572, 603), "KF Child Grass 3", "KF Child Grass 3", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_3));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_4] = Location::Grass(RC_KF_CHILD_GRASS_4, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(385, 643), "KF Child Grass 4", "KF Child Grass 4", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_4));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_5] = Location::Grass(RC_KF_CHILD_GRASS_5, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-498, 696), "KF Child/Adult Grass 5", "KF Child/Adult Grass 5", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_5));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_6] = Location::Grass(RC_KF_CHILD_GRASS_6, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-523, 771), "KF Child/Adult Grass 6", "KF Child/Adult Grass 6", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_6));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_7] = Location::Grass(RC_KF_CHILD_GRASS_7, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-612, 737), "KF Child Grass 7", "KF Child Grass 7", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_7));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_8] = Location::Grass(RC_KF_CHILD_GRASS_8, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-671, 671), "KF Child Grass 8", "KF Child Grass 8", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_8));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_9] = Location::Grass(RC_KF_CHILD_GRASS_9, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-748, 632), "KF Child Grass 9", "KF Child Grass 9", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_9));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_10] = Location::Grass(RC_KF_CHILD_GRASS_10, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-757, 708), "KF Child Grass 10", "KF Child Grass 10", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_10));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_11] = Location::Grass(RC_KF_CHILD_GRASS_11, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-823, 666), "KF Child Grass 11", "KF Child Grass 11", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_11));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_12] = Location::Grass(RC_KF_CHILD_GRASS_12, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-835, 605), "KF Child Grass 12", "KF Child Grass 12", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_12));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_MAZE_1] = Location::Grass(RC_KF_CHILD_GRASS_MAZE_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-995, 1531), "KF Child Grass Maze 1", "KF Child Grass Maze 1", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_MAZE_1));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_MAZE_2] = Location::Grass(RC_KF_CHILD_GRASS_MAZE_2, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-701, 1882), "KF Child Grass Maze 2", "KF Child Grass Maze 2", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_MAZE_2));
|
||||||
|
locationTable[RC_KF_CHILD_GRASS_MAZE_3] = Location::Grass(RC_KF_CHILD_GRASS_MAZE_3, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-295, 2297), "KF Child Grass Maze 3", "KF Child Grass Maze 3", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_CHILD_GRASS_MAZE_3));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_1] = Location::Grass(RC_KF_ADULT_GRASS_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(839, 685), "KF Adult Grass 1", "KF Adult Grass 1", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_1));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_2] = Location::Grass(RC_KF_ADULT_GRASS_2, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(809, 722), "KF Adult Grass 2", "KF Adult Grass 2", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_2));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_3] = Location::Grass(RC_KF_ADULT_GRASS_3, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(760, 714), "KF Adult Grass 3", "KF Adult Grass 3", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_3));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_4] = Location::Grass(RC_KF_ADULT_GRASS_4, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(725, 679), "KF Adult Grass 4", "KF Adult Grass 4", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_4));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_5] = Location::Grass(RC_KF_ADULT_GRASS_5, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(725, 606), "KF Adult Grass 5", "KF Adult Grass 5", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_5));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_6] = Location::Grass(RC_KF_ADULT_GRASS_6, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(797, 563), "KF Adult Grass 6", "KF Adult Grass 6", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_6));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_7] = Location::Grass(RC_KF_ADULT_GRASS_7, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(868, 606), "KF Adult Grass 7", "KF Adult Grass 7", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_7));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_8] = Location::Grass(RC_KF_ADULT_GRASS_8, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(797, 663), "KF Adult Grass 8", "KF Adult Grass 8", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_8));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_9] = Location::Grass(RC_KF_ADULT_GRASS_9, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(757, 649), "KF Adult Grass 9", "KF Adult Grass 9", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_9));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_10] = Location::Grass(RC_KF_ADULT_GRASS_10, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(773, 610), "KF Adult Grass 10", "KF Adult Grass 10", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_10));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_11] = Location::Grass(RC_KF_ADULT_GRASS_11, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(815, 607), "KF Adult Grass 11", "KF Adult Grass 11", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_11));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_12] = Location::Grass(RC_KF_ADULT_GRASS_12, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(836, 636), "KF Adult Grass 12", "KF Adult Grass 12", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_12));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_13] = Location::Grass(RC_KF_ADULT_GRASS_13, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-772, 654), "KF Adult Grass 13", "KF Adult Grass 13", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_13));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_14] = Location::Grass(RC_KF_ADULT_GRASS_14, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-785, 611), "KF Adult Grass 14", "KF Adult Grass 14", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_14));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_15] = Location::Grass(RC_KF_ADULT_GRASS_15, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-805, 691), "KF Adult Grass 15", "KF Adult Grass 15", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_15));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_16] = Location::Grass(RC_KF_ADULT_GRASS_16, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-822, 644), "KF Adult Grass 16", "KF Adult Grass 16", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_16));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_17] = Location::Grass(RC_KF_ADULT_GRASS_17, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-842, 601), "KF Adult Grass 17", "KF Adult Grass 17", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_17));
|
||||||
|
locationTable[RC_KF_ADULT_GRASS_18] = Location::Grass(RC_KF_ADULT_GRASS_18, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-867, 674), "KF Adult Grass 18", "KF Adult Grass 18", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_18));
|
||||||
|
//locationTable[RC_KF_ADULT_GRASS_19] = Location::Grass(RC_KF_ADULT_GRASS_19, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-498, 696), "KF Adult Grass 19", "KF Adult Grass 19", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_19));
|
||||||
|
//locationTable[RC_KF_ADULT_GRASS_20] = Location::Grass(RC_KF_ADULT_GRASS_20, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, TWO_ACTOR_PARAMS(-523, 771), "KF Adult Grass 20", "KF Adult Grass 29", RHT_KF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_ADULT_GRASS_20));
|
||||||
|
locationTable[RC_LW_GRASS_1] = Location::Grass(RC_LW_GRASS_1, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(676, -651), "LW Grass 1", "LW Grass 1", RHT_LW_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_GRASS_1));
|
||||||
|
locationTable[RC_LW_GRASS_2] = Location::Grass(RC_LW_GRASS_2, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(633, -676), "LW Grass 2", "LW Grass 2", RHT_LW_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_GRASS_2));
|
||||||
|
locationTable[RC_LW_GRASS_3] = Location::Grass(RC_LW_GRASS_3, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(645, -638), "LW Grass 3", "LW Grass 3", RHT_LW_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_GRASS_3));
|
||||||
|
locationTable[RC_LW_GRASS_4] = Location::Grass(RC_LW_GRASS_4, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(1476, -2251), "LW Grass 4", "LW Grass 4", RHT_LW_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_GRASS_4));
|
||||||
|
locationTable[RC_LW_GRASS_5] = Location::Grass(RC_LW_GRASS_5, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(1433, -2276), "LW Grass 5", "LW Grass 5", RHT_LW_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_GRASS_5));
|
||||||
|
locationTable[RC_LW_GRASS_6] = Location::Grass(RC_LW_GRASS_6, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(1445, -2238), "LW Grass 6", "LW Grass 6", RHT_LW_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_GRASS_6));
|
||||||
|
locationTable[RC_LW_GRASS_7] = Location::Grass(RC_LW_GRASS_7, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(926, -2232), "LW Grass 7", "LW Grass 7", RHT_LW_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_GRASS_7));
|
||||||
|
locationTable[RC_LW_GRASS_8] = Location::Grass(RC_LW_GRASS_8, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(965, -2241), "LW Grass 8", "LW Grass 8", RHT_LW_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_GRASS_8));
|
||||||
|
locationTable[RC_LW_GRASS_9] = Location::Grass(RC_LW_GRASS_9, RCQUEST_BOTH, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, TWO_ACTOR_PARAMS(952, -2275), "LW Grass 9", "LW Grass 9", RHT_LW_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LW_GRASS_9));
|
||||||
|
locationTable[RC_MARKET_GRASS_1] = Location::Grass(RC_MARKET_GRASS_1, RCQUEST_BOTH, RCAREA_MARKET, SCENE_MARKET_DAY, TWO_ACTOR_PARAMS(-106, 277), "Market Grass 1", "Market Grass 1", RHT_MARKET_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_GRASS_1));
|
||||||
|
locationTable[RC_MARKET_GRASS_2] = Location::Grass(RC_MARKET_GRASS_2, RCQUEST_BOTH, RCAREA_MARKET, SCENE_MARKET_DAY, TWO_ACTOR_PARAMS(-131, 225), "Market Grass 2", "Market Grass 2", RHT_MARKET_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_GRASS_2));
|
||||||
|
locationTable[RC_MARKET_GRASS_3] = Location::Grass(RC_MARKET_GRASS_3, RCQUEST_BOTH, RCAREA_MARKET, SCENE_MARKET_DAY, TWO_ACTOR_PARAMS(504, -546), "Market Grass 3", "Market Grass 3", RHT_MARKET_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_GRASS_3));
|
||||||
|
locationTable[RC_MARKET_GRASS_4] = Location::Grass(RC_MARKET_GRASS_4, RCQUEST_BOTH, RCAREA_MARKET, SCENE_MARKET_DAY, TWO_ACTOR_PARAMS(465, -548), "Market Grass 4", "Market Grass 4", RHT_MARKET_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_GRASS_4));
|
||||||
|
locationTable[RC_MARKET_GRASS_5] = Location::Grass(RC_MARKET_GRASS_5, RCQUEST_BOTH, RCAREA_MARKET, SCENE_MARKET_DAY, TWO_ACTOR_PARAMS(432, -548), "Market Grass 5", "Market Grass 5", RHT_MARKET_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_GRASS_5));
|
||||||
|
locationTable[RC_MARKET_GRASS_6] = Location::Grass(RC_MARKET_GRASS_6, RCQUEST_BOTH, RCAREA_MARKET, SCENE_MARKET_DAY, TWO_ACTOR_PARAMS(73, -428), "Market Grass 6", "Market Grass 6", RHT_MARKET_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_GRASS_6));
|
||||||
|
locationTable[RC_MARKET_GRASS_7] = Location::Grass(RC_MARKET_GRASS_7, RCQUEST_BOTH, RCAREA_MARKET, SCENE_MARKET_DAY, TWO_ACTOR_PARAMS(75, -310), "Market Grass 7", "Market Grass 7", RHT_MARKET_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_GRASS_7));
|
||||||
|
locationTable[RC_MARKET_GRASS_8] = Location::Grass(RC_MARKET_GRASS_8, RCQUEST_BOTH, RCAREA_MARKET, SCENE_MARKET_DAY, TWO_ACTOR_PARAMS(76, -190), "Market Grass 8", "Market Grass 8", RHT_MARKET_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MARKET_GRASS_8));
|
||||||
|
locationTable[RC_HC_GRASS_1] = Location::Grass(RC_HC_GRASS_1, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(1035, 882), "Hyrule Castle Grass 1", "Hyrule Castle Grass 1", RHT_HC_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_GRASS_1));
|
||||||
|
locationTable[RC_HC_GRASS_2] = Location::Grass(RC_HC_GRASS_2, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(975, 919), "Hyrule Castle Grass 2", "Hyrule Castle Grass 2", RHT_HC_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_GRASS_2));
|
||||||
|
locationTable[RC_KAK_GRASS_1] = Location::Grass(RC_KAK_GRASS_1, RCQUEST_BOTH, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(1116, 1581), "Kakariko Grass 1", "Kakariko Grass 1", RHT_KAK_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_GRASS_1));
|
||||||
|
locationTable[RC_KAK_GRASS_2] = Location::Grass(RC_KAK_GRASS_2, RCQUEST_BOTH, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(1103, 1532), "Kakariko Grass 2", "Kakariko Grass 2", RHT_KAK_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_GRASS_2));
|
||||||
|
locationTable[RC_KAK_GRASS_3] = Location::Grass(RC_KAK_GRASS_3, RCQUEST_BOTH, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(1072, 1592), "Kakariko Grass 3", "Kakariko Grass 3", RHT_KAK_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_GRASS_3));
|
||||||
|
locationTable[RC_KAK_GRASS_4] = Location::Grass(RC_KAK_GRASS_4, RCQUEST_BOTH, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-800, 521), "Kakariko Grass 4", "Kakariko Grass 4", RHT_KAK_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_GRASS_4));
|
||||||
|
locationTable[RC_KAK_GRASS_5] = Location::Grass(RC_KAK_GRASS_5, RCQUEST_BOTH, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-826, 585), "Kakariko Grass 5", "Kakariko Grass 5", RHT_KAK_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_GRASS_5));
|
||||||
|
locationTable[RC_KAK_GRASS_6] = Location::Grass(RC_KAK_GRASS_6, RCQUEST_BOTH, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-827, 465), "Kakariko Grass 6", "Kakariko Grass 6", RHT_KAK_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_GRASS_6));
|
||||||
|
locationTable[RC_KAK_GRASS_7] = Location::Grass(RC_KAK_GRASS_7, RCQUEST_BOTH, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-883, 582), "Kakariko Grass 7", "Kakariko Grass 7", RHT_KAK_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_GRASS_7));
|
||||||
|
locationTable[RC_KAK_GRASS_8] = Location::Grass(RC_KAK_GRASS_8, RCQUEST_BOTH, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-887, 467), "Kakariko Grass 8", "Kakariko Grass 8", RHT_KAK_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_GRASS_8));
|
||||||
|
locationTable[RC_GY_GRASS_1] = Location::Grass(RC_GY_GRASS_1, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1059, 732), "Graveyard Grass 1", "Graveyard Grass 1", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_1));
|
||||||
|
locationTable[RC_GY_GRASS_2] = Location::Grass(RC_GY_GRASS_2, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1089, 769), "Graveyard Grass 2", "Graveyard Grass 2", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_2));
|
||||||
|
locationTable[RC_GY_GRASS_3] = Location::Grass(RC_GY_GRASS_3, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1138, 761), "Graveyard Grass 3", "Graveyard Grass 3", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_3));
|
||||||
|
locationTable[RC_GY_GRASS_4] = Location::Grass(RC_GY_GRASS_4, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1173, 726), "Graveyard Grass 4", "Graveyard Grass 4", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_4));
|
||||||
|
locationTable[RC_GY_GRASS_5] = Location::Grass(RC_GY_GRASS_5, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1173, 653), "Graveyard Grass 5", "Graveyard Grass 5", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_5));
|
||||||
|
locationTable[RC_GY_GRASS_6] = Location::Grass(RC_GY_GRASS_6, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1102, 610), "Graveyard Grass 6", "Graveyard Grass 6", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_6));
|
||||||
|
locationTable[RC_GY_GRASS_7] = Location::Grass(RC_GY_GRASS_7, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1030, 653), "Graveyard Grass 7", "Graveyard Grass 7", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_7));
|
||||||
|
locationTable[RC_GY_GRASS_8] = Location::Grass(RC_GY_GRASS_8, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1102, 710), "Graveyard Grass 8", "Graveyard Grass 8", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_8));
|
||||||
|
locationTable[RC_GY_GRASS_9] = Location::Grass(RC_GY_GRASS_9, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1141, 696), "Graveyard Grass 9", "Graveyard Grass 9", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_9));
|
||||||
|
locationTable[RC_GY_GRASS_10] = Location::Grass(RC_GY_GRASS_10, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1125, 657), "Graveyard Grass 10", "Graveyard Grass 10", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_10));
|
||||||
|
locationTable[RC_GY_GRASS_11] = Location::Grass(RC_GY_GRASS_11, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1083, 654), "Graveyard Grass 11", "Graveyard Grass 11", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_11));
|
||||||
|
locationTable[RC_GY_GRASS_12] = Location::Grass(RC_GY_GRASS_12, RCQUEST_BOTH, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, TWO_ACTOR_PARAMS(-1062, 683), "Graveyard Grass 12", "Graveyard Grass 12", RHT_GY_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_GRASS_12));
|
||||||
|
locationTable[RC_LH_GRASS_1] = Location::Grass(RC_LH_GRASS_1, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1637, 2796), "LH Grass 1", "LH Grass 1", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_1));
|
||||||
|
locationTable[RC_LH_GRASS_2] = Location::Grass(RC_LH_GRASS_2, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1667, 2833), "LH Grass 2", "LH Grass 2", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_2));
|
||||||
|
locationTable[RC_LH_GRASS_3] = Location::Grass(RC_LH_GRASS_3, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1716, 2825), "LH Grass 3", "LH Grass 3", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_3));
|
||||||
|
locationTable[RC_LH_GRASS_4] = Location::Grass(RC_LH_GRASS_4, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1751, 2790), "LH Grass 4", "LH Grass 4", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_4));
|
||||||
|
locationTable[RC_LH_GRASS_5] = Location::Grass(RC_LH_GRASS_5, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1751, 2717), "LH Grass 5", "LH Grass 5", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_5));
|
||||||
|
locationTable[RC_LH_GRASS_6] = Location::Grass(RC_LH_GRASS_6, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1680, 2674), "LH Grass 6", "LH Grass 6", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_6));
|
||||||
|
locationTable[RC_LH_GRASS_7] = Location::Grass(RC_LH_GRASS_7, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1608, 2717), "LH Grass 7", "LH Grass 7", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_7));
|
||||||
|
locationTable[RC_LH_GRASS_8] = Location::Grass(RC_LH_GRASS_8, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1680, 2774), "LH Grass 8", "LH Grass 8", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_8));
|
||||||
|
locationTable[RC_LH_GRASS_9] = Location::Grass(RC_LH_GRASS_9, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1719, 2760), "LH Grass 9", "LH Grass 9", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_9));
|
||||||
|
locationTable[RC_LH_GRASS_10] = Location::Grass(RC_LH_GRASS_10, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1703, 2721), "LH Grass 10", "LH Grass 10", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_10));
|
||||||
|
locationTable[RC_LH_GRASS_11] = Location::Grass(RC_LH_GRASS_11, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1661, 2718), "LH Grass 11", "LH Grass 11", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_11));
|
||||||
|
locationTable[RC_LH_GRASS_12] = Location::Grass(RC_LH_GRASS_12, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1640, 2747), "LH Grass 12", "LH Grass 12", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_12));
|
||||||
|
locationTable[RC_LH_GRASS_13] = Location::Grass(RC_LH_GRASS_13, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2028, 2542), "LH Grass 13", "LH Grass 13", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_13));
|
||||||
|
locationTable[RC_LH_GRASS_14] = Location::Grass(RC_LH_GRASS_14, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2058, 2579), "LH Grass 14", "LH Grass 14", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_14));
|
||||||
|
locationTable[RC_LH_GRASS_15] = Location::Grass(RC_LH_GRASS_15, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2107, 2571), "LH Grass 15", "LH Grass 15", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_15));
|
||||||
|
locationTable[RC_LH_GRASS_16] = Location::Grass(RC_LH_GRASS_16, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2142, 2536), "LH Grass 16", "LH Grass 16", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_16));
|
||||||
|
locationTable[RC_LH_GRASS_17] = Location::Grass(RC_LH_GRASS_17, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2142, 2463), "LH Grass 17", "LH Grass 17", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_17));
|
||||||
|
locationTable[RC_LH_GRASS_18] = Location::Grass(RC_LH_GRASS_18, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2071, 2420), "LH Grass 18", "LH Grass 18", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_18));
|
||||||
|
locationTable[RC_LH_GRASS_19] = Location::Grass(RC_LH_GRASS_19, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-1999, 2463), "LH Grass 19", "LH Grass 19", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_19));
|
||||||
|
locationTable[RC_LH_GRASS_20] = Location::Grass(RC_LH_GRASS_20, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2071, 2520), "LH Grass 20", "LH Grass 20", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_20));
|
||||||
|
locationTable[RC_LH_GRASS_21] = Location::Grass(RC_LH_GRASS_21, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2110, 2506), "LH Grass 21", "LH Grass 21", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_21));
|
||||||
|
locationTable[RC_LH_GRASS_22] = Location::Grass(RC_LH_GRASS_22, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2094, 2467), "LH Grass 22", "LH Grass 22", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_22));
|
||||||
|
locationTable[RC_LH_GRASS_23] = Location::Grass(RC_LH_GRASS_23, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2052, 2464), "LH Grass 23", "LH Grass 23", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_23));
|
||||||
|
locationTable[RC_LH_GRASS_24] = Location::Grass(RC_LH_GRASS_24, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2031, 2493), "LH Grass 24", "LH Grass 24", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_24));
|
||||||
|
locationTable[RC_LH_GRASS_25] = Location::Grass(RC_LH_GRASS_25, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2204, 3050), "LH Grass 25", "LH Grass 25", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_25));
|
||||||
|
locationTable[RC_LH_GRASS_26] = Location::Grass(RC_LH_GRASS_26, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2234, 3087), "LH Grass 26", "LH Grass 26", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_26));
|
||||||
|
locationTable[RC_LH_GRASS_27] = Location::Grass(RC_LH_GRASS_27, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2283, 3079), "LH Grass 27", "LH Grass 27", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_27));
|
||||||
|
locationTable[RC_LH_GRASS_28] = Location::Grass(RC_LH_GRASS_28, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2318, 3044), "LH Grass 28", "LH Grass 28", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_28));
|
||||||
|
locationTable[RC_LH_GRASS_29] = Location::Grass(RC_LH_GRASS_29, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2318, 2971), "LH Grass 29", "LH Grass 29", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_29));
|
||||||
|
locationTable[RC_LH_GRASS_30] = Location::Grass(RC_LH_GRASS_30, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2247, 2928), "LH Grass 30", "LH Grass 30", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_30));
|
||||||
|
locationTable[RC_LH_GRASS_31] = Location::Grass(RC_LH_GRASS_31, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2175, 2971), "LH Grass 31", "LH Grass 31", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_31));
|
||||||
|
locationTable[RC_LH_GRASS_32] = Location::Grass(RC_LH_GRASS_32, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2247, 3028), "LH Grass 32", "LH Grass 32", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_32));
|
||||||
|
locationTable[RC_LH_GRASS_33] = Location::Grass(RC_LH_GRASS_33, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2286, 3014), "LH Grass 33", "LH Grass 33", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_33));
|
||||||
|
locationTable[RC_LH_GRASS_34] = Location::Grass(RC_LH_GRASS_34, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2270, 2975), "LH Grass 34", "LH Grass 34", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_34));
|
||||||
|
locationTable[RC_LH_GRASS_35] = Location::Grass(RC_LH_GRASS_35, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2228, 2972), "LH Grass 35", "LH Grass 35", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_35));
|
||||||
|
locationTable[RC_LH_GRASS_36] = Location::Grass(RC_LH_GRASS_36, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-2207, 3001), "LH Grass 36", "LH Grass 36", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_GRASS_36));
|
||||||
|
locationTable[RC_LH_CHILD_GRASS_1] = Location::Grass(RC_LH_CHILD_GRASS_1, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(13, 2735), "LH Child Grass 1", "LH Child Grass 1", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_CHILD_GRASS_1));
|
||||||
|
locationTable[RC_LH_CHILD_GRASS_2] = Location::Grass(RC_LH_CHILD_GRASS_2, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-77, 2891), "LH Child Grass 2", "LH Child Grass 2", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_CHILD_GRASS_2));
|
||||||
|
locationTable[RC_LH_CHILD_GRASS_3] = Location::Grass(RC_LH_CHILD_GRASS_3, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-222, 2888), "LH Child Grass 3", "LH Child Grass 3", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_CHILD_GRASS_3));
|
||||||
|
locationTable[RC_LH_CHILD_GRASS_4] = Location::Grass(RC_LH_CHILD_GRASS_4, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-295, 2973), "LH Child Grass 4", "LH Child Grass 4", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_CHILD_GRASS_4));
|
||||||
|
locationTable[RC_LH_WARP_PAD_GRASS_1] = Location::Grass(RC_LH_WARP_PAD_GRASS_1, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-613, 7369), "LH Warp Pad Grass 1", "LH Warp Pad Grass 1", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_WARP_PAD_GRASS_1));
|
||||||
|
locationTable[RC_LH_WARP_PAD_GRASS_2] = Location::Grass(RC_LH_WARP_PAD_GRASS_2, RCQUEST_BOTH, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, TWO_ACTOR_PARAMS(-662, 7352), "LH Warp Pad Grass 2", "LH Warp Pad Grass 2", RHT_LH_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LH_WARP_PAD_GRASS_2));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_1] = Location::Grass(RC_HF_NEAR_KF_GRASS_1, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3186, 7571), "HF Near KF Grass 1", "HF Near KF Grass 1", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_1));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_2] = Location::Grass(RC_HF_NEAR_KF_GRASS_2, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3156, 7608), "HF Near KF Grass 2", "HF Near KF Grass 2", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_2));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_3] = Location::Grass(RC_HF_NEAR_KF_GRASS_3, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3107, 7600), "HF Near KF Grass 3", "HF Near KF Grass 3", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_3));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_4] = Location::Grass(RC_HF_NEAR_KF_GRASS_4, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3072, 7565), "HF Near KF Grass 4", "HF Near KF Grass 4", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_4));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_5] = Location::Grass(RC_HF_NEAR_KF_GRASS_5, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3072, 7492), "HF Near KF Grass 5", "HF Near KF Grass 5", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_5));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_6] = Location::Grass(RC_HF_NEAR_KF_GRASS_6, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3144, 7449), "HF Near KF Grass 6", "HF Near KF Grass 6", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_6));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_7] = Location::Grass(RC_HF_NEAR_KF_GRASS_7, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3215, 7492), "HF Near KF Grass 7", "HF Near KF Grass 7", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_7));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_8] = Location::Grass(RC_HF_NEAR_KF_GRASS_8, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3144, 7549), "HF Near KF Grass 8", "HF Near KF Grass 8", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_8));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_9] = Location::Grass(RC_HF_NEAR_KF_GRASS_9, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3104, 7535), "HF Near KF Grass 9", "HF Near KF Grass 9", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_9));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_10] = Location::Grass(RC_HF_NEAR_KF_GRASS_10, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3120, 7496), "HF Near KF Grass 10", "HF Near KF Grass 10", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_10));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_11] = Location::Grass(RC_HF_NEAR_KF_GRASS_11, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3162, 7493), "HF Near KF Grass 11", "HF Near KF Grass 11", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_11));
|
||||||
|
locationTable[RC_HF_NEAR_KF_GRASS_12] = Location::Grass(RC_HF_NEAR_KF_GRASS_12, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(3183, 7522), "HF Near KF Grass 12", "HF Near KF Grass 12", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_KF_GRASS_12));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_1] = Location::Grass(RC_HF_NEAR_GATE_GRASS_1, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(950, 3613), "HF Near Gate Grass 1", "HF Near Gate Grass 1", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_1));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_2] = Location::Grass(RC_HF_NEAR_GATE_GRASS_2, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(920, 3650), "HF Near Gate Grass 2", "HF Near Gate Grass 2", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_2));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_3] = Location::Grass(RC_HF_NEAR_GATE_GRASS_3, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(871, 3642), "HF Near Gate Grass 3", "HF Near Gate Grass 3", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_3));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_4] = Location::Grass(RC_HF_NEAR_GATE_GRASS_4, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(836, 3607), "HF Near Gate Grass 4", "HF Near Gate Grass 4", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_4));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_5] = Location::Grass(RC_HF_NEAR_GATE_GRASS_5, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(836, 3534), "HF Near Gate Grass 5", "HF Near Gate Grass 5", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_5));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_6] = Location::Grass(RC_HF_NEAR_GATE_GRASS_6, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(908, 3491), "HF Near Gate Grass 6", "HF Near Gate Grass 6", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_6));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_7] = Location::Grass(RC_HF_NEAR_GATE_GRASS_7, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(979, 3534), "HF Near Gate Grass 7", "HF Near Gate Grass 7", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_7));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_8] = Location::Grass(RC_HF_NEAR_GATE_GRASS_8, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(908, 3591), "HF Near Gate Grass 8", "HF Near Gate Grass 8", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_8));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_9] = Location::Grass(RC_HF_NEAR_GATE_GRASS_9, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(868, 3577), "HF Near Gate Grass 9", "HF Near Gate Grass 9", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_9));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_10] = Location::Grass(RC_HF_NEAR_GATE_GRASS_10, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(884, 3538), "HF Near Gate Grass 10", "HF Near Gate Grass 10", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_10));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_11] = Location::Grass(RC_HF_NEAR_GATE_GRASS_11, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(926, 3535), "HF Near Gate Grass 11", "HF Near Gate Grass 11", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_11));
|
||||||
|
locationTable[RC_HF_NEAR_GATE_GRASS_12] = Location::Grass(RC_HF_NEAR_GATE_GRASS_12, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(947, 3564), "HF Near Gate Grass 12", "HF Near Gate Grass 12", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_NEAR_GATE_GRASS_12));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_1] = Location::Grass(RC_HF_SOUTH_GRASS_1, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-483, 11329), "HF South Grass 1", "HF South Grass 1", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_1));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_2] = Location::Grass(RC_HF_SOUTH_GRASS_2, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-518, 11294), "HF South Grass 2", "HF South Grass 2", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_2));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_3] = Location::Grass(RC_HF_SOUTH_GRASS_3, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-518, 11221), "HF South Grass 3", "HF South Grass 3", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_3));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_4] = Location::Grass(RC_HF_SOUTH_GRASS_4, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-447, 11178), "HF South Grass 4", "HF South Grass 4", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_4));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_5] = Location::Grass(RC_HF_SOUTH_GRASS_5, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-375, 11221), "HF South Grass 5", "HF South Grass 5", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_5));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_6] = Location::Grass(RC_HF_SOUTH_GRASS_6, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-447, 11278), "HF South Grass 6", "HF South Grass 6", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_6));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_7] = Location::Grass(RC_HF_SOUTH_GRASS_7, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-486, 11264), "HF South Grass 7", "HF South Grass 7", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_7));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_8] = Location::Grass(RC_HF_SOUTH_GRASS_8, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-470, 11225), "HF South Grass 8", "HF South Grass 8", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_8));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_9] = Location::Grass(RC_HF_SOUTH_GRASS_9, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-428, 11222), "HF South Grass 9", "HF South Grass 9", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_9));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_10] = Location::Grass(RC_HF_SOUTH_GRASS_10, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-407, 11251), "HF South Grass 10", "HF South Grass 10", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_10));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_11] = Location::Grass(RC_HF_SOUTH_GRASS_11, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-404, 11300), "HF South Grass 11", "HF South Grass 11", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_11));
|
||||||
|
locationTable[RC_HF_SOUTH_GRASS_12] = Location::Grass(RC_HF_SOUTH_GRASS_12, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-434, 11337), "HF South Grass 12", "HF South Grass 12", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_SOUTH_GRASS_12));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_1] = Location::Grass(RC_HF_CENTRAL_GRASS_1, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-948, 9981), "HF Central Grass 1", "HF Central Grass 1", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_1));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_2] = Location::Grass(RC_HF_CENTRAL_GRASS_2, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-978, 10018), "HF Central Grass 2", "HF Central Grass 2", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_2));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_3] = Location::Grass(RC_HF_CENTRAL_GRASS_3, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-1027, 10010), "HF Central Grass 3", "HF Central Grass 3", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_3));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_4] = Location::Grass(RC_HF_CENTRAL_GRASS_4, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-1062, 9975), "HF Central Grass 4", "HF Central Grass 4", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_4));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_5] = Location::Grass(RC_HF_CENTRAL_GRASS_5, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-1062, 9902), "HF Central Grass 5", "HF Central Grass 5", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_5));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_6] = Location::Grass(RC_HF_CENTRAL_GRASS_6, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-991, 9859), "HF Central Grass 6", "HF Central Grass 6", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_6));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_7] = Location::Grass(RC_HF_CENTRAL_GRASS_7, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-919, 9902), "HF Central Grass 7", "HF Central Grass 7", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_7));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_8] = Location::Grass(RC_HF_CENTRAL_GRASS_8, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-991, 9959), "HF Central Grass 8", "HF Central Grass 8", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_8));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_9] = Location::Grass(RC_HF_CENTRAL_GRASS_9, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-1030, 9945), "HF Central Grass 9", "HF Central Grass 9", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_9));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_10] = Location::Grass(RC_HF_CENTRAL_GRASS_10, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-1014, 9906), "HF Central Grass 10", "HF Central Grass 10", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_10));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_11] = Location::Grass(RC_HF_CENTRAL_GRASS_11, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-972, 9903), "HF Central Grass 11", "HF Central Grass 11", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_11));
|
||||||
|
locationTable[RC_HF_CENTRAL_GRASS_12] = Location::Grass(RC_HF_CENTRAL_GRASS_12, RCQUEST_BOTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, TWO_ACTOR_PARAMS(-951, 9932), "HF Central Grass 12", "HF Central Grass 12", RHT_HF_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_CENTRAL_GRASS_12));
|
||||||
|
locationTable[RC_ZR_GRASS_1] = Location::Grass(RC_ZR_GRASS_1, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1495, 1022), "ZR Grass 1", "ZR Grass 1", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_1));
|
||||||
|
locationTable[RC_ZR_GRASS_2] = Location::Grass(RC_ZR_GRASS_2, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1465, 985), "ZR Grass 2", "ZR Grass 2", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_2));
|
||||||
|
locationTable[RC_ZR_GRASS_3] = Location::Grass(RC_ZR_GRASS_3, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1544, 1014), "ZR Grass 3", "ZR Grass 3", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_3));
|
||||||
|
locationTable[RC_ZR_GRASS_4] = Location::Grass(RC_ZR_GRASS_4, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1579, 979), "ZR Grass 4", "ZR Grass 4", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_4));
|
||||||
|
locationTable[RC_ZR_GRASS_5] = Location::Grass(RC_ZR_GRASS_5, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1579, 906), "ZR Grass 5", "ZR Grass 5", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_5));
|
||||||
|
locationTable[RC_ZR_GRASS_6] = Location::Grass(RC_ZR_GRASS_6, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1508, 863), "ZR Grass 6", "ZR Grass 6", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_6));
|
||||||
|
locationTable[RC_ZR_GRASS_7] = Location::Grass(RC_ZR_GRASS_7, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1508, 963), "ZR Grass 7", "ZR Grass 7", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_7));
|
||||||
|
locationTable[RC_ZR_GRASS_8] = Location::Grass(RC_ZR_GRASS_8, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1547, 949), "ZR Grass 8", "ZR Grass 8", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_8));
|
||||||
|
locationTable[RC_ZR_GRASS_9] = Location::Grass(RC_ZR_GRASS_9, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1531, 910), "ZR Grass 9", "ZR Grass 9", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_9));
|
||||||
|
locationTable[RC_ZR_GRASS_10] = Location::Grass(RC_ZR_GRASS_10, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1489, 907), "ZR Grass 10", "ZR Grass 10", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_10));
|
||||||
|
locationTable[RC_ZR_GRASS_11] = Location::Grass(RC_ZR_GRASS_11, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1468, 936), "ZR Grass 11", "ZR Grass 11", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_11));
|
||||||
|
locationTable[RC_ZR_GRASS_12] = Location::Grass(RC_ZR_GRASS_12, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(-1436, 906), "ZR Grass 12", "ZR Grass 12", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_12));
|
||||||
|
locationTable[RC_ZR_GRASS_13] = Location::Grass(RC_ZR_GRASS_13, RCQUEST_BOTH, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, TWO_ACTOR_PARAMS(231, -1478), "ZR Grass 13", "ZR Grass 13", RHT_ZR_GRASS, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZR_GRASS_13));
|
||||||
|
// Grotto Grass
|
||||||
|
//locationTable[RC_KF_STORMS_GROTTO_GRASS_1] = Location::Grass(RC_KF_STORMS_GROTTO_GRASS_1, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_GROTTOS, TWO_ACTOR_PARAMS(3, -257), "KF Storms Grotto Grass 1", "KF Storms Grotto Grass 1", RHT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_STORMS_GROTTO_GRASS_1));
|
||||||
|
//locationTable[RC_KF_STORMS_GROTTO_GRASS_2] = Location::Grass(RC_KF_STORMS_GROTTO_GRASS_2, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_GROTTOS, TWO_ACTOR_PARAMS(88, -449), "KF Storms Grotto Grass 2", "KF Storms Grotto Grass 2", RHT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_STORMS_GROTTO_GRASS_2));
|
||||||
|
//locationTable[RC_KF_STORMS_GROTTO_GRASS_3] = Location::Grass(RC_KF_STORMS_GROTTO_GRASS_3, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_GROTTOS, TWO_ACTOR_PARAMS(-3, -454), "KF Storms Grotto Grass 3", "KF Storms Grotto Grass 3", RHT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_STORMS_GROTTO_GRASS_3));
|
||||||
|
//locationTable[RC_KF_STORMS_GROTTO_GRASS_4] = Location::Grass(RC_KF_STORMS_GROTTO_GRASS_4, RCQUEST_BOTH, RCAREA_KOKIRI_FOREST, SCENE_GROTTOS, TWO_ACTOR_PARAMS(13, -508), "KF Storms Grotto Grass 4", "KF Storms Grotto Grass 4", RHT_KOKIRI_FOREST, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_STORMS_GROTTO_GRASS_4));
|
||||||
|
// Dungeon Grass
|
||||||
|
locationTable[RC_DEKU_TREE_LOBBY_GRASS_1] = Location::Grass(RC_DEKU_TREE_LOBBY_GRASS_1, RCQUEST_BOTH, RCAREA_DEKU_TREE, SCENE_DEKU_TREE, TWO_ACTOR_PARAMS(391, -156), "Deku Tree Lobby Grass 1", "Deku Tree Lobby Grass 1", RHT_DEKU_TREE, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DEKU_TREE_LOBBY_GRASS_1));
|
||||||
|
locationTable[RC_DEKU_TREE_LOBBY_GRASS_2] = Location::Grass(RC_DEKU_TREE_LOBBY_GRASS_2, RCQUEST_BOTH, RCAREA_DEKU_TREE, SCENE_DEKU_TREE, TWO_ACTOR_PARAMS(355, -233), "Deku Tree Lobby Grass 2", "Deku Tree Lobby Grass 2", RHT_DEKU_TREE, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DEKU_TREE_LOBBY_GRASS_2));
|
||||||
|
locationTable[RC_DEKU_TREE_LOBBY_GRASS_3] = Location::Grass(RC_DEKU_TREE_LOBBY_GRASS_3, RCQUEST_BOTH, RCAREA_DEKU_TREE, SCENE_DEKU_TREE, TWO_ACTOR_PARAMS(307, -289), "Deku Tree Lobby Grass 3", "Deku Tree Lobby Grass 3", RHT_DEKU_TREE, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DEKU_TREE_LOBBY_GRASS_3));
|
||||||
|
locationTable[RC_DEKU_TREE_LOBBY_GRASS_4] = Location::Grass(RC_DEKU_TREE_LOBBY_GRASS_4, RCQUEST_BOTH, RCAREA_DEKU_TREE, SCENE_DEKU_TREE, TWO_ACTOR_PARAMS(80, -414), "Deku Tree Lobby Grass 4", "Deku Tree Lobby Grass 4", RHT_DEKU_TREE, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DEKU_TREE_LOBBY_GRASS_4));
|
||||||
|
locationTable[RC_DEKU_TREE_LOBBY_GRASS_5] = Location::Grass(RC_DEKU_TREE_LOBBY_GRASS_5, RCQUEST_BOTH, RCAREA_DEKU_TREE, SCENE_DEKU_TREE, TWO_ACTOR_PARAMS(142, -399), "Deku Tree Lobby Grass 5", "Deku Tree Lobby Grass 5", RHT_DEKU_TREE, RG_GREEN_RUPEE, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DEKU_TREE_LOBBY_GRASS_5));
|
||||||
|
// MQ Dungeon Grass
|
||||||
|
|
||||||
|
|
||||||
/* +----------------+
|
/* +----------------+
|
||||||
| SHUFFLE POTS |
|
| SHUFFLE POTS |
|
||||||
|
@ -448,6 +448,7 @@ void Settings::CreateOptionDescriptions() {
|
|||||||
"All Items - Shuffle all freestanding rupees & hearts.";
|
"All Items - Shuffle all freestanding rupees & hearts.";
|
||||||
mOptionDescriptions[RSK_SHUFFLE_FAIRIES] =
|
mOptionDescriptions[RSK_SHUFFLE_FAIRIES] =
|
||||||
"Shuffle fairy locations.";
|
"Shuffle fairy locations.";
|
||||||
|
mOptionDescriptions[RSK_SHUFFLE_GRASS] = "Shuffle grass patches.";
|
||||||
mOptionDescriptions[RSK_SHUFFLE_DUNGEON_REWARDS] =
|
mOptionDescriptions[RSK_SHUFFLE_DUNGEON_REWARDS] =
|
||||||
"Shuffles the location of Spiritual Stones and medallions.\n"
|
"Shuffles the location of Spiritual Stones and medallions.\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -1010,6 +1010,198 @@ std::map<RandomizerCheck, RandomizerInf> rcToRandomizerInf = {
|
|||||||
{ RC_ZD_FISH_4, RAND_INF_ZD_FISH_4 },
|
{ RC_ZD_FISH_4, RAND_INF_ZD_FISH_4 },
|
||||||
{ RC_ZD_FISH_5, RAND_INF_ZD_FISH_5 },
|
{ RC_ZD_FISH_5, RAND_INF_ZD_FISH_5 },
|
||||||
|
|
||||||
|
// Grass
|
||||||
|
{ RC_KF_CHILD_GRASS_1, RAND_INF_KF_CHILD_GRASS_1 },
|
||||||
|
{ RC_KF_CHILD_GRASS_2, RAND_INF_KF_CHILD_GRASS_2 },
|
||||||
|
{ RC_KF_CHILD_GRASS_3, RAND_INF_KF_CHILD_GRASS_3 },
|
||||||
|
{ RC_KF_CHILD_GRASS_4, RAND_INF_KF_CHILD_GRASS_4 },
|
||||||
|
{ RC_KF_CHILD_GRASS_5, RAND_INF_KF_CHILD_GRASS_5 },
|
||||||
|
{ RC_KF_CHILD_GRASS_6, RAND_INF_KF_CHILD_GRASS_6 },
|
||||||
|
{ RC_KF_CHILD_GRASS_7, RAND_INF_KF_CHILD_GRASS_7 },
|
||||||
|
{ RC_KF_CHILD_GRASS_8, RAND_INF_KF_CHILD_GRASS_8 },
|
||||||
|
{ RC_KF_CHILD_GRASS_9, RAND_INF_KF_CHILD_GRASS_9 },
|
||||||
|
{ RC_KF_CHILD_GRASS_10, RAND_INF_KF_CHILD_GRASS_10 },
|
||||||
|
{ RC_KF_CHILD_GRASS_11, RAND_INF_KF_CHILD_GRASS_11 },
|
||||||
|
{ RC_KF_CHILD_GRASS_12, RAND_INF_KF_CHILD_GRASS_12 },
|
||||||
|
{ RC_KF_CHILD_GRASS_MAZE_1, RAND_INF_KF_CHILD_GRASS_MAZE_1 },
|
||||||
|
{ RC_KF_CHILD_GRASS_MAZE_2, RAND_INF_KF_CHILD_GRASS_MAZE_2 },
|
||||||
|
{ RC_KF_CHILD_GRASS_MAZE_3, RAND_INF_KF_CHILD_GRASS_MAZE_3 },
|
||||||
|
{ RC_KF_ADULT_GRASS_1, RAND_INF_KF_ADULT_GRASS_1 },
|
||||||
|
{ RC_KF_ADULT_GRASS_2, RAND_INF_KF_ADULT_GRASS_2 },
|
||||||
|
{ RC_KF_ADULT_GRASS_3, RAND_INF_KF_ADULT_GRASS_3 },
|
||||||
|
{ RC_KF_ADULT_GRASS_4, RAND_INF_KF_ADULT_GRASS_4 },
|
||||||
|
{ RC_KF_ADULT_GRASS_5, RAND_INF_KF_ADULT_GRASS_5 },
|
||||||
|
{ RC_KF_ADULT_GRASS_6, RAND_INF_KF_ADULT_GRASS_6 },
|
||||||
|
{ RC_KF_ADULT_GRASS_7, RAND_INF_KF_ADULT_GRASS_7 },
|
||||||
|
{ RC_KF_ADULT_GRASS_8, RAND_INF_KF_ADULT_GRASS_8 },
|
||||||
|
{ RC_KF_ADULT_GRASS_9, RAND_INF_KF_ADULT_GRASS_9 },
|
||||||
|
{ RC_KF_ADULT_GRASS_10, RAND_INF_KF_ADULT_GRASS_10 },
|
||||||
|
{ RC_KF_ADULT_GRASS_11, RAND_INF_KF_ADULT_GRASS_11 },
|
||||||
|
{ RC_KF_ADULT_GRASS_12, RAND_INF_KF_ADULT_GRASS_12 },
|
||||||
|
{ RC_KF_ADULT_GRASS_13, RAND_INF_KF_ADULT_GRASS_13 },
|
||||||
|
{ RC_KF_ADULT_GRASS_14, RAND_INF_KF_ADULT_GRASS_14 },
|
||||||
|
{ RC_KF_ADULT_GRASS_15, RAND_INF_KF_ADULT_GRASS_15 },
|
||||||
|
{ RC_KF_ADULT_GRASS_16, RAND_INF_KF_ADULT_GRASS_16 },
|
||||||
|
{ RC_KF_ADULT_GRASS_17, RAND_INF_KF_ADULT_GRASS_17 },
|
||||||
|
{ RC_KF_ADULT_GRASS_18, RAND_INF_KF_ADULT_GRASS_18 },
|
||||||
|
//{ RC_KF_ADULT_GRASS_19, RAND_INF_KF_ADULT_GRASS_19 },
|
||||||
|
//{ RC_KF_ADULT_GRASS_20, RAND_INF_KF_ADULT_GRASS_20 },
|
||||||
|
{ RC_LW_GRASS_1, RAND_INF_LW_GRASS_1 },
|
||||||
|
{ RC_LW_GRASS_2, RAND_INF_LW_GRASS_2 },
|
||||||
|
{ RC_LW_GRASS_3, RAND_INF_LW_GRASS_3 },
|
||||||
|
{ RC_LW_GRASS_4, RAND_INF_LW_GRASS_4 },
|
||||||
|
{ RC_LW_GRASS_5, RAND_INF_LW_GRASS_5 },
|
||||||
|
{ RC_LW_GRASS_6, RAND_INF_LW_GRASS_6 },
|
||||||
|
{ RC_LW_GRASS_7, RAND_INF_LW_GRASS_7 },
|
||||||
|
{ RC_LW_GRASS_8, RAND_INF_LW_GRASS_8 },
|
||||||
|
{ RC_LW_GRASS_9, RAND_INF_LW_GRASS_9 },
|
||||||
|
{ RC_MARKET_GRASS_1, RAND_INF_MARKET_GRASS_1 },
|
||||||
|
{ RC_MARKET_GRASS_2, RAND_INF_MARKET_GRASS_2 },
|
||||||
|
{ RC_MARKET_GRASS_3, RAND_INF_MARKET_GRASS_3 },
|
||||||
|
{ RC_MARKET_GRASS_4, RAND_INF_MARKET_GRASS_4 },
|
||||||
|
{ RC_MARKET_GRASS_5, RAND_INF_MARKET_GRASS_5 },
|
||||||
|
{ RC_MARKET_GRASS_6, RAND_INF_MARKET_GRASS_6 },
|
||||||
|
{ RC_MARKET_GRASS_7, RAND_INF_MARKET_GRASS_7 },
|
||||||
|
{ RC_MARKET_GRASS_8, RAND_INF_MARKET_GRASS_8 },
|
||||||
|
{ RC_HC_GRASS_1, RAND_INF_HC_GRASS_1 },
|
||||||
|
{ RC_HC_GRASS_2, RAND_INF_HC_GRASS_2 },
|
||||||
|
{ RC_KAK_GRASS_1, RAND_INF_KAK_GRASS_1 },
|
||||||
|
{ RC_KAK_GRASS_2, RAND_INF_KAK_GRASS_2 },
|
||||||
|
{ RC_KAK_GRASS_3, RAND_INF_KAK_GRASS_3 },
|
||||||
|
{ RC_KAK_GRASS_4, RAND_INF_KAK_GRASS_4 },
|
||||||
|
{ RC_KAK_GRASS_5, RAND_INF_KAK_GRASS_5 },
|
||||||
|
{ RC_KAK_GRASS_6, RAND_INF_KAK_GRASS_6 },
|
||||||
|
{ RC_KAK_GRASS_7, RAND_INF_KAK_GRASS_7 },
|
||||||
|
{ RC_KAK_GRASS_8, RAND_INF_KAK_GRASS_8 },
|
||||||
|
{ RC_GY_GRASS_1, RAND_INF_GY_GRASS_1 },
|
||||||
|
{ RC_GY_GRASS_2, RAND_INF_GY_GRASS_2 },
|
||||||
|
{ RC_GY_GRASS_3, RAND_INF_GY_GRASS_3 },
|
||||||
|
{ RC_GY_GRASS_4, RAND_INF_GY_GRASS_4 },
|
||||||
|
{ RC_GY_GRASS_5, RAND_INF_GY_GRASS_5 },
|
||||||
|
{ RC_GY_GRASS_6, RAND_INF_GY_GRASS_6 },
|
||||||
|
{ RC_GY_GRASS_7, RAND_INF_GY_GRASS_7 },
|
||||||
|
{ RC_GY_GRASS_8, RAND_INF_GY_GRASS_8 },
|
||||||
|
{ RC_GY_GRASS_9, RAND_INF_GY_GRASS_9 },
|
||||||
|
{ RC_GY_GRASS_10, RAND_INF_GY_GRASS_10 },
|
||||||
|
{ RC_GY_GRASS_11, RAND_INF_GY_GRASS_11 },
|
||||||
|
{ RC_GY_GRASS_12, RAND_INF_GY_GRASS_12 },
|
||||||
|
{ RC_LH_GRASS_1, RAND_INF_LH_GRASS_1 },
|
||||||
|
{ RC_LH_GRASS_2, RAND_INF_LH_GRASS_2 },
|
||||||
|
{ RC_LH_GRASS_3, RAND_INF_LH_GRASS_3 },
|
||||||
|
{ RC_LH_GRASS_4, RAND_INF_LH_GRASS_4 },
|
||||||
|
{ RC_LH_GRASS_5, RAND_INF_LH_GRASS_5 },
|
||||||
|
{ RC_LH_GRASS_6, RAND_INF_LH_GRASS_6 },
|
||||||
|
{ RC_LH_GRASS_7, RAND_INF_LH_GRASS_7 },
|
||||||
|
{ RC_LH_GRASS_8, RAND_INF_LH_GRASS_8 },
|
||||||
|
{ RC_LH_GRASS_9, RAND_INF_LH_GRASS_9 },
|
||||||
|
{ RC_LH_GRASS_10, RAND_INF_LH_GRASS_10 },
|
||||||
|
{ RC_LH_GRASS_11, RAND_INF_LH_GRASS_11 },
|
||||||
|
{ RC_LH_GRASS_12, RAND_INF_LH_GRASS_12 },
|
||||||
|
{ RC_LH_GRASS_13, RAND_INF_LH_GRASS_13 },
|
||||||
|
{ RC_LH_GRASS_14, RAND_INF_LH_GRASS_14 },
|
||||||
|
{ RC_LH_GRASS_15, RAND_INF_LH_GRASS_15 },
|
||||||
|
{ RC_LH_GRASS_16, RAND_INF_LH_GRASS_16 },
|
||||||
|
{ RC_LH_GRASS_17, RAND_INF_LH_GRASS_17 },
|
||||||
|
{ RC_LH_GRASS_18, RAND_INF_LH_GRASS_18 },
|
||||||
|
{ RC_LH_GRASS_19, RAND_INF_LH_GRASS_19 },
|
||||||
|
{ RC_LH_GRASS_20, RAND_INF_LH_GRASS_20 },
|
||||||
|
{ RC_LH_GRASS_21, RAND_INF_LH_GRASS_21 },
|
||||||
|
{ RC_LH_GRASS_22, RAND_INF_LH_GRASS_22 },
|
||||||
|
{ RC_LH_GRASS_23, RAND_INF_LH_GRASS_23 },
|
||||||
|
{ RC_LH_GRASS_24, RAND_INF_LH_GRASS_24 },
|
||||||
|
{ RC_LH_GRASS_25, RAND_INF_LH_GRASS_25 },
|
||||||
|
{ RC_LH_GRASS_26, RAND_INF_LH_GRASS_26 },
|
||||||
|
{ RC_LH_GRASS_27, RAND_INF_LH_GRASS_27 },
|
||||||
|
{ RC_LH_GRASS_28, RAND_INF_LH_GRASS_28 },
|
||||||
|
{ RC_LH_GRASS_29, RAND_INF_LH_GRASS_29 },
|
||||||
|
{ RC_LH_GRASS_30, RAND_INF_LH_GRASS_30 },
|
||||||
|
{ RC_LH_GRASS_31, RAND_INF_LH_GRASS_31 },
|
||||||
|
{ RC_LH_GRASS_32, RAND_INF_LH_GRASS_32 },
|
||||||
|
{ RC_LH_GRASS_33, RAND_INF_LH_GRASS_33 },
|
||||||
|
{ RC_LH_GRASS_34, RAND_INF_LH_GRASS_34 },
|
||||||
|
{ RC_LH_GRASS_35, RAND_INF_LH_GRASS_35 },
|
||||||
|
{ RC_LH_GRASS_36, RAND_INF_LH_GRASS_36 },
|
||||||
|
{ RC_LH_CHILD_GRASS_1, RAND_INF_LH_CHILD_GRASS_1 },
|
||||||
|
{ RC_LH_CHILD_GRASS_2, RAND_INF_LH_CHILD_GRASS_2 },
|
||||||
|
{ RC_LH_CHILD_GRASS_3, RAND_INF_LH_CHILD_GRASS_3 },
|
||||||
|
{ RC_LH_CHILD_GRASS_4, RAND_INF_LH_CHILD_GRASS_4 },
|
||||||
|
{ RC_LH_WARP_PAD_GRASS_1, RAND_INF_LH_WARP_PAD_GRASS_1 },
|
||||||
|
{ RC_LH_WARP_PAD_GRASS_2, RAND_INF_LH_WARP_PAD_GRASS_2 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_1, RAND_INF_HF_NEAR_KF_GRASS_1 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_2, RAND_INF_HF_NEAR_KF_GRASS_2 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_3, RAND_INF_HF_NEAR_KF_GRASS_3 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_4, RAND_INF_HF_NEAR_KF_GRASS_4 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_5, RAND_INF_HF_NEAR_KF_GRASS_5 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_6, RAND_INF_HF_NEAR_KF_GRASS_6 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_7, RAND_INF_HF_NEAR_KF_GRASS_7 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_8, RAND_INF_HF_NEAR_KF_GRASS_8 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_9, RAND_INF_HF_NEAR_KF_GRASS_9 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_10, RAND_INF_HF_NEAR_KF_GRASS_10 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_11, RAND_INF_HF_NEAR_KF_GRASS_11 },
|
||||||
|
{ RC_HF_NEAR_KF_GRASS_12, RAND_INF_HF_NEAR_KF_GRASS_12 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_1, RAND_INF_HF_NEAR_GATE_GRASS_1 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_2, RAND_INF_HF_NEAR_GATE_GRASS_2 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_3, RAND_INF_HF_NEAR_GATE_GRASS_3 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_4, RAND_INF_HF_NEAR_GATE_GRASS_4 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_5, RAND_INF_HF_NEAR_GATE_GRASS_5 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_6, RAND_INF_HF_NEAR_GATE_GRASS_6 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_7, RAND_INF_HF_NEAR_GATE_GRASS_7 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_8, RAND_INF_HF_NEAR_GATE_GRASS_8 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_9, RAND_INF_HF_NEAR_GATE_GRASS_9 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_10, RAND_INF_HF_NEAR_GATE_GRASS_10 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_11, RAND_INF_HF_NEAR_GATE_GRASS_11 },
|
||||||
|
{ RC_HF_NEAR_GATE_GRASS_12, RAND_INF_HF_NEAR_GATE_GRASS_12 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_1, RAND_INF_HF_SOUTH_GRASS_1 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_2, RAND_INF_HF_SOUTH_GRASS_2 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_3, RAND_INF_HF_SOUTH_GRASS_3 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_4, RAND_INF_HF_SOUTH_GRASS_4 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_5, RAND_INF_HF_SOUTH_GRASS_5 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_6, RAND_INF_HF_SOUTH_GRASS_6 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_7, RAND_INF_HF_SOUTH_GRASS_7 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_8, RAND_INF_HF_SOUTH_GRASS_8 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_9, RAND_INF_HF_SOUTH_GRASS_9 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_10, RAND_INF_HF_SOUTH_GRASS_10 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_11, RAND_INF_HF_SOUTH_GRASS_11 },
|
||||||
|
{ RC_HF_SOUTH_GRASS_12, RAND_INF_HF_SOUTH_GRASS_12 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_1, RAND_INF_HF_CENTRAL_GRASS_1 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_2, RAND_INF_HF_CENTRAL_GRASS_2 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_3, RAND_INF_HF_CENTRAL_GRASS_3 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_4, RAND_INF_HF_CENTRAL_GRASS_4 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_5, RAND_INF_HF_CENTRAL_GRASS_5 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_6, RAND_INF_HF_CENTRAL_GRASS_6 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_7, RAND_INF_HF_CENTRAL_GRASS_7 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_8, RAND_INF_HF_CENTRAL_GRASS_8 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_9, RAND_INF_HF_CENTRAL_GRASS_9 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_10, RAND_INF_HF_CENTRAL_GRASS_10 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_11, RAND_INF_HF_CENTRAL_GRASS_11 },
|
||||||
|
{ RC_HF_CENTRAL_GRASS_12, RAND_INF_HF_CENTRAL_GRASS_12 },
|
||||||
|
{ RC_ZR_GRASS_1, RAND_INF_ZR_GRASS_1 },
|
||||||
|
{ RC_ZR_GRASS_2, RAND_INF_ZR_GRASS_2 },
|
||||||
|
{ RC_ZR_GRASS_3, RAND_INF_ZR_GRASS_3 },
|
||||||
|
{ RC_ZR_GRASS_4, RAND_INF_ZR_GRASS_4 },
|
||||||
|
{ RC_ZR_GRASS_5, RAND_INF_ZR_GRASS_5 },
|
||||||
|
{ RC_ZR_GRASS_6, RAND_INF_ZR_GRASS_6 },
|
||||||
|
{ RC_ZR_GRASS_7, RAND_INF_ZR_GRASS_7 },
|
||||||
|
{ RC_ZR_GRASS_8, RAND_INF_ZR_GRASS_8 },
|
||||||
|
{ RC_ZR_GRASS_9, RAND_INF_ZR_GRASS_9 },
|
||||||
|
{ RC_ZR_GRASS_10, RAND_INF_ZR_GRASS_10 },
|
||||||
|
{ RC_ZR_GRASS_11, RAND_INF_ZR_GRASS_11 },
|
||||||
|
{ RC_ZR_GRASS_12, RAND_INF_ZR_GRASS_12 },
|
||||||
|
{ RC_ZR_GRASS_13, RAND_INF_ZR_GRASS_13 },
|
||||||
|
// Grotto Grass
|
||||||
|
//{ RC_KF_STORMS_GROTTO_GRASS_1, RAND_INF_KF_STORMS_GROTTO_GRASS_1 },
|
||||||
|
//{ RC_KF_STORMS_GROTTO_GRASS_2, RAND_INF_KF_STORMS_GROTTO_GRASS_2 },
|
||||||
|
//{ RC_KF_STORMS_GROTTO_GRASS_3, RAND_INF_KF_STORMS_GROTTO_GRASS_3 },
|
||||||
|
//{ RC_KF_STORMS_GROTTO_GRASS_4, RAND_INF_KF_STORMS_GROTTO_GRASS_4 },
|
||||||
|
// Dungeon Grass
|
||||||
|
{ RC_DEKU_TREE_LOBBY_GRASS_1, RAND_INF_DEKU_TREE_LOBBY_GRASS_1 },
|
||||||
|
{ RC_DEKU_TREE_LOBBY_GRASS_2, RAND_INF_DEKU_TREE_LOBBY_GRASS_2 },
|
||||||
|
{ RC_DEKU_TREE_LOBBY_GRASS_3, RAND_INF_DEKU_TREE_LOBBY_GRASS_3 },
|
||||||
|
{ RC_DEKU_TREE_LOBBY_GRASS_4, RAND_INF_DEKU_TREE_LOBBY_GRASS_4 },
|
||||||
|
{ RC_DEKU_TREE_LOBBY_GRASS_5, RAND_INF_DEKU_TREE_LOBBY_GRASS_5 },
|
||||||
|
// MQ Dungeon Grass
|
||||||
|
// End Grass
|
||||||
|
|
||||||
{ RC_KF_LINKS_HOUSE_POT, RAND_INF_KF_LINKS_HOUSE_POT },
|
{ RC_KF_LINKS_HOUSE_POT, RAND_INF_KF_LINKS_HOUSE_POT },
|
||||||
{ RC_KF_TWINS_HOUSE_POT_1, RAND_INF_KF_TWINS_HOUSE_POT_1 },
|
{ RC_KF_TWINS_HOUSE_POT_1, RAND_INF_KF_TWINS_HOUSE_POT_1 },
|
||||||
{ RC_KF_TWINS_HOUSE_POT_2, RAND_INF_KF_TWINS_HOUSE_POT_2 },
|
{ RC_KF_TWINS_HOUSE_POT_2, RAND_INF_KF_TWINS_HOUSE_POT_2 },
|
||||||
@ -1839,6 +2031,24 @@ FishIdentity Randomizer::IdentifyFish(s32 sceneNum, s32 actorParams) {
|
|||||||
return fishIdentity;
|
return fishIdentity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GrassIdentity Randomizer::IdentifyGrass(s32 sceneNum, s32 posX, s32 posZ) {
|
||||||
|
struct GrassIdentity grassIdentity;
|
||||||
|
|
||||||
|
grassIdentity.randomizerInf = RAND_INF_MAX;
|
||||||
|
grassIdentity.randomizerCheck = RC_UNKNOWN_CHECK;
|
||||||
|
|
||||||
|
s32 actorParams = TWO_ACTOR_PARAMS(posX, posZ);
|
||||||
|
|
||||||
|
Rando::Location* location = GetCheckObjectFromActor(ACTOR_EN_KUSA, sceneNum, actorParams);
|
||||||
|
|
||||||
|
if (location->GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
|
||||||
|
grassIdentity.randomizerInf = rcToRandomizerInf[location->GetRandomizerCheck()];
|
||||||
|
grassIdentity.randomizerCheck = location->GetRandomizerCheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
return grassIdentity;
|
||||||
|
}
|
||||||
|
|
||||||
u8 Randomizer::GetRandoSettingValue(RandomizerSettingKey randoSettingKey) {
|
u8 Randomizer::GetRandoSettingValue(RandomizerSettingKey randoSettingKey) {
|
||||||
return Rando::Context::GetInstance()->GetOption(randoSettingKey).GetContextOptionIndex();
|
return Rando::Context::GetInstance()->GetOption(randoSettingKey).GetContextOptionIndex();
|
||||||
}
|
}
|
||||||
|
@ -54,6 +54,7 @@ class Randomizer {
|
|||||||
CowIdentity IdentifyCow(s32 sceneNum, s32 posX, s32 posZ);
|
CowIdentity IdentifyCow(s32 sceneNum, s32 posX, s32 posZ);
|
||||||
PotIdentity IdentifyPot(s32 sceneNum, s32 posX, s32 posZ);
|
PotIdentity IdentifyPot(s32 sceneNum, s32 posX, s32 posZ);
|
||||||
FishIdentity IdentifyFish(s32 sceneNum, s32 actorParams);
|
FishIdentity IdentifyFish(s32 sceneNum, s32 actorParams);
|
||||||
|
GrassIdentity IdentifyGrass(s32 sceneNum, s32 posX, s32 posZ);
|
||||||
GetItemEntry GetItemFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogItemId, bool checkObtainability = true);
|
GetItemEntry GetItemFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogItemId, bool checkObtainability = true);
|
||||||
GetItemEntry GetItemFromActor(s16 actorId, s16 sceneNum, s16 actorParams, GetItemID ogItemId, bool checkObtainability = true);
|
GetItemEntry GetItemFromActor(s16 actorId, s16 sceneNum, s16 actorParams, GetItemID ogItemId, bool checkObtainability = true);
|
||||||
ItemObtainability GetItemObtainabilityFromRandomizerCheck(RandomizerCheck randomizerCheck);
|
ItemObtainability GetItemObtainabilityFromRandomizerCheck(RandomizerCheck randomizerCheck);
|
||||||
|
@ -270,6 +270,7 @@ typedef enum {
|
|||||||
RCTYPE_FISH, // Fishes
|
RCTYPE_FISH, // Fishes
|
||||||
RCTYPE_FREESTANDING, // Freestanding rupees and hearts
|
RCTYPE_FREESTANDING, // Freestanding rupees and hearts
|
||||||
RCTYPE_FAIRY, // Fairies
|
RCTYPE_FAIRY, // Fairies
|
||||||
|
RCTYPE_GRASS // Grass
|
||||||
} RandomizerCheckType;
|
} RandomizerCheckType;
|
||||||
|
|
||||||
typedef enum { RCQUEST_VANILLA, RCQUEST_MQ, RCQUEST_BOTH } RandomizerCheckQuest;
|
typedef enum { RCQUEST_VANILLA, RCQUEST_MQ, RCQUEST_BOTH } RandomizerCheckQuest;
|
||||||
@ -2821,6 +2822,199 @@ typedef enum {
|
|||||||
RC_SHADOW_TEMPLE_MQ_WIND_HINT_SUN_FAIRY,
|
RC_SHADOW_TEMPLE_MQ_WIND_HINT_SUN_FAIRY,
|
||||||
RC_BOTTOM_OF_THE_WELL_MQ_CELL_SUN_FAIRY,
|
RC_BOTTOM_OF_THE_WELL_MQ_CELL_SUN_FAIRY,
|
||||||
RC_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SUN_FAIRY,
|
RC_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SUN_FAIRY,
|
||||||
|
|
||||||
|
// Overworld Grass
|
||||||
|
RC_KF_CHILD_GRASS_1,
|
||||||
|
RC_KF_CHILD_GRASS_2,
|
||||||
|
RC_KF_CHILD_GRASS_3,
|
||||||
|
RC_KF_CHILD_GRASS_4,
|
||||||
|
RC_KF_CHILD_GRASS_5,
|
||||||
|
RC_KF_CHILD_GRASS_6,
|
||||||
|
RC_KF_CHILD_GRASS_7,
|
||||||
|
RC_KF_CHILD_GRASS_8,
|
||||||
|
RC_KF_CHILD_GRASS_9,
|
||||||
|
RC_KF_CHILD_GRASS_10,
|
||||||
|
RC_KF_CHILD_GRASS_11,
|
||||||
|
RC_KF_CHILD_GRASS_12,
|
||||||
|
RC_KF_CHILD_GRASS_MAZE_1,
|
||||||
|
RC_KF_CHILD_GRASS_MAZE_2,
|
||||||
|
RC_KF_CHILD_GRASS_MAZE_3,
|
||||||
|
RC_KF_ADULT_GRASS_1,
|
||||||
|
RC_KF_ADULT_GRASS_2,
|
||||||
|
RC_KF_ADULT_GRASS_3,
|
||||||
|
RC_KF_ADULT_GRASS_4,
|
||||||
|
RC_KF_ADULT_GRASS_5,
|
||||||
|
RC_KF_ADULT_GRASS_6,
|
||||||
|
RC_KF_ADULT_GRASS_7,
|
||||||
|
RC_KF_ADULT_GRASS_8,
|
||||||
|
RC_KF_ADULT_GRASS_9,
|
||||||
|
RC_KF_ADULT_GRASS_10,
|
||||||
|
RC_KF_ADULT_GRASS_11,
|
||||||
|
RC_KF_ADULT_GRASS_12,
|
||||||
|
RC_KF_ADULT_GRASS_13,
|
||||||
|
RC_KF_ADULT_GRASS_14,
|
||||||
|
RC_KF_ADULT_GRASS_15,
|
||||||
|
RC_KF_ADULT_GRASS_16,
|
||||||
|
RC_KF_ADULT_GRASS_17,
|
||||||
|
RC_KF_ADULT_GRASS_18,
|
||||||
|
//RC_KF_ADULT_GRASS_19,
|
||||||
|
//RC_KF_ADULT_GRASS_20,
|
||||||
|
RC_LW_GRASS_1,
|
||||||
|
RC_LW_GRASS_2,
|
||||||
|
RC_LW_GRASS_3,
|
||||||
|
RC_LW_GRASS_4,
|
||||||
|
RC_LW_GRASS_5,
|
||||||
|
RC_LW_GRASS_6,
|
||||||
|
RC_LW_GRASS_7,
|
||||||
|
RC_LW_GRASS_8,
|
||||||
|
RC_LW_GRASS_9,
|
||||||
|
RC_MARKET_GRASS_1,
|
||||||
|
RC_MARKET_GRASS_2,
|
||||||
|
RC_MARKET_GRASS_3,
|
||||||
|
RC_MARKET_GRASS_4,
|
||||||
|
RC_MARKET_GRASS_5,
|
||||||
|
RC_MARKET_GRASS_6,
|
||||||
|
RC_MARKET_GRASS_7,
|
||||||
|
RC_MARKET_GRASS_8,
|
||||||
|
RC_HC_GRASS_1,
|
||||||
|
RC_HC_GRASS_2,
|
||||||
|
RC_KAK_GRASS_1,
|
||||||
|
RC_KAK_GRASS_2,
|
||||||
|
RC_KAK_GRASS_3,
|
||||||
|
RC_KAK_GRASS_4,
|
||||||
|
RC_KAK_GRASS_5,
|
||||||
|
RC_KAK_GRASS_6,
|
||||||
|
RC_KAK_GRASS_7,
|
||||||
|
RC_KAK_GRASS_8,
|
||||||
|
RC_GY_GRASS_1,
|
||||||
|
RC_GY_GRASS_2,
|
||||||
|
RC_GY_GRASS_3,
|
||||||
|
RC_GY_GRASS_4,
|
||||||
|
RC_GY_GRASS_5,
|
||||||
|
RC_GY_GRASS_6,
|
||||||
|
RC_GY_GRASS_7,
|
||||||
|
RC_GY_GRASS_8,
|
||||||
|
RC_GY_GRASS_9,
|
||||||
|
RC_GY_GRASS_10,
|
||||||
|
RC_GY_GRASS_11,
|
||||||
|
RC_GY_GRASS_12,
|
||||||
|
RC_LH_GRASS_1,
|
||||||
|
RC_LH_GRASS_2,
|
||||||
|
RC_LH_GRASS_3,
|
||||||
|
RC_LH_GRASS_4,
|
||||||
|
RC_LH_GRASS_5,
|
||||||
|
RC_LH_GRASS_6,
|
||||||
|
RC_LH_GRASS_7,
|
||||||
|
RC_LH_GRASS_8,
|
||||||
|
RC_LH_GRASS_9,
|
||||||
|
RC_LH_GRASS_10,
|
||||||
|
RC_LH_GRASS_11,
|
||||||
|
RC_LH_GRASS_12,
|
||||||
|
RC_LH_GRASS_13,
|
||||||
|
RC_LH_GRASS_14,
|
||||||
|
RC_LH_GRASS_15,
|
||||||
|
RC_LH_GRASS_16,
|
||||||
|
RC_LH_GRASS_17,
|
||||||
|
RC_LH_GRASS_18,
|
||||||
|
RC_LH_GRASS_19,
|
||||||
|
RC_LH_GRASS_20,
|
||||||
|
RC_LH_GRASS_21,
|
||||||
|
RC_LH_GRASS_22,
|
||||||
|
RC_LH_GRASS_23,
|
||||||
|
RC_LH_GRASS_24,
|
||||||
|
RC_LH_GRASS_25,
|
||||||
|
RC_LH_GRASS_26,
|
||||||
|
RC_LH_GRASS_27,
|
||||||
|
RC_LH_GRASS_28,
|
||||||
|
RC_LH_GRASS_29,
|
||||||
|
RC_LH_GRASS_30,
|
||||||
|
RC_LH_GRASS_31,
|
||||||
|
RC_LH_GRASS_32,
|
||||||
|
RC_LH_GRASS_33,
|
||||||
|
RC_LH_GRASS_34,
|
||||||
|
RC_LH_GRASS_35,
|
||||||
|
RC_LH_GRASS_36,
|
||||||
|
RC_LH_CHILD_GRASS_1,
|
||||||
|
RC_LH_CHILD_GRASS_2,
|
||||||
|
RC_LH_CHILD_GRASS_3,
|
||||||
|
RC_LH_CHILD_GRASS_4,
|
||||||
|
RC_LH_WARP_PAD_GRASS_1,
|
||||||
|
RC_LH_WARP_PAD_GRASS_2,
|
||||||
|
RC_HF_NEAR_KF_GRASS_1,
|
||||||
|
RC_HF_NEAR_KF_GRASS_2,
|
||||||
|
RC_HF_NEAR_KF_GRASS_3,
|
||||||
|
RC_HF_NEAR_KF_GRASS_4,
|
||||||
|
RC_HF_NEAR_KF_GRASS_5,
|
||||||
|
RC_HF_NEAR_KF_GRASS_6,
|
||||||
|
RC_HF_NEAR_KF_GRASS_7,
|
||||||
|
RC_HF_NEAR_KF_GRASS_8,
|
||||||
|
RC_HF_NEAR_KF_GRASS_9,
|
||||||
|
RC_HF_NEAR_KF_GRASS_10,
|
||||||
|
RC_HF_NEAR_KF_GRASS_11,
|
||||||
|
RC_HF_NEAR_KF_GRASS_12,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_1,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_2,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_3,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_4,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_5,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_6,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_7,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_8,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_9,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_10,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_11,
|
||||||
|
RC_HF_NEAR_GATE_GRASS_12,
|
||||||
|
RC_HF_SOUTH_GRASS_1,
|
||||||
|
RC_HF_SOUTH_GRASS_2,
|
||||||
|
RC_HF_SOUTH_GRASS_3,
|
||||||
|
RC_HF_SOUTH_GRASS_4,
|
||||||
|
RC_HF_SOUTH_GRASS_5,
|
||||||
|
RC_HF_SOUTH_GRASS_6,
|
||||||
|
RC_HF_SOUTH_GRASS_7,
|
||||||
|
RC_HF_SOUTH_GRASS_8,
|
||||||
|
RC_HF_SOUTH_GRASS_9,
|
||||||
|
RC_HF_SOUTH_GRASS_10,
|
||||||
|
RC_HF_SOUTH_GRASS_11,
|
||||||
|
RC_HF_SOUTH_GRASS_12,
|
||||||
|
RC_HF_CENTRAL_GRASS_1,
|
||||||
|
RC_HF_CENTRAL_GRASS_2,
|
||||||
|
RC_HF_CENTRAL_GRASS_3,
|
||||||
|
RC_HF_CENTRAL_GRASS_4,
|
||||||
|
RC_HF_CENTRAL_GRASS_5,
|
||||||
|
RC_HF_CENTRAL_GRASS_6,
|
||||||
|
RC_HF_CENTRAL_GRASS_7,
|
||||||
|
RC_HF_CENTRAL_GRASS_8,
|
||||||
|
RC_HF_CENTRAL_GRASS_9,
|
||||||
|
RC_HF_CENTRAL_GRASS_10,
|
||||||
|
RC_HF_CENTRAL_GRASS_11,
|
||||||
|
RC_HF_CENTRAL_GRASS_12,
|
||||||
|
RC_ZR_GRASS_1,
|
||||||
|
RC_ZR_GRASS_2,
|
||||||
|
RC_ZR_GRASS_3,
|
||||||
|
RC_ZR_GRASS_4,
|
||||||
|
RC_ZR_GRASS_5,
|
||||||
|
RC_ZR_GRASS_6,
|
||||||
|
RC_ZR_GRASS_7,
|
||||||
|
RC_ZR_GRASS_8,
|
||||||
|
RC_ZR_GRASS_9,
|
||||||
|
RC_ZR_GRASS_10,
|
||||||
|
RC_ZR_GRASS_11,
|
||||||
|
RC_ZR_GRASS_12,
|
||||||
|
RC_ZR_GRASS_13,
|
||||||
|
// Grotto Grass
|
||||||
|
// RC_KF_STORMS_GROTTO_GRASS_1,
|
||||||
|
// RC_KF_STORMS_GROTTO_GRASS_2,
|
||||||
|
// RC_KF_STORMS_GROTTO_GRASS_3,
|
||||||
|
// RC_KF_STORMS_GROTTO_GRASS_4,
|
||||||
|
// Dungeon Grass
|
||||||
|
RC_DEKU_TREE_LOBBY_GRASS_1,
|
||||||
|
RC_DEKU_TREE_LOBBY_GRASS_2,
|
||||||
|
RC_DEKU_TREE_LOBBY_GRASS_3,
|
||||||
|
RC_DEKU_TREE_LOBBY_GRASS_4,
|
||||||
|
RC_DEKU_TREE_LOBBY_GRASS_5,
|
||||||
|
// MQ Dungeon Grass
|
||||||
|
// End Grass
|
||||||
|
|
||||||
RC_MAX
|
RC_MAX
|
||||||
} RandomizerCheck;
|
} RandomizerCheck;
|
||||||
|
|
||||||
@ -5004,6 +5198,16 @@ typedef enum {
|
|||||||
RHT_SPIRIT_TEMPLE_MQ_DINALFOS_ROOM_SUN_FAIRY,
|
RHT_SPIRIT_TEMPLE_MQ_DINALFOS_ROOM_SUN_FAIRY,
|
||||||
RHT_BOTTOM_OF_THE_WELL_MQ_CELL_SUN_FAIRY,
|
RHT_BOTTOM_OF_THE_WELL_MQ_CELL_SUN_FAIRY,
|
||||||
RHT_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SUN_FAIRY,
|
RHT_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SUN_FAIRY,
|
||||||
|
// GRASS
|
||||||
|
RHT_KF_GRASS,
|
||||||
|
RHT_LW_GRASS,
|
||||||
|
RHT_MARKET_GRASS,
|
||||||
|
RHT_HC_GRASS,
|
||||||
|
RHT_KAK_GRASS,
|
||||||
|
RHT_GY_GRASS,
|
||||||
|
RHT_LH_GRASS,
|
||||||
|
RHT_HF_GRASS,
|
||||||
|
RHT_ZR_GRASS,
|
||||||
// MAX
|
// MAX
|
||||||
RHT_MAX
|
RHT_MAX
|
||||||
} RandomizerHintTextKey;
|
} RandomizerHintTextKey;
|
||||||
@ -5295,6 +5499,7 @@ typedef enum {
|
|||||||
RSK_SHUFFLE_DEKU_NUT_BAG,
|
RSK_SHUFFLE_DEKU_NUT_BAG,
|
||||||
RSK_SHUFFLE_FREESTANDING,
|
RSK_SHUFFLE_FREESTANDING,
|
||||||
RSK_SHUFFLE_FAIRIES,
|
RSK_SHUFFLE_FAIRIES,
|
||||||
|
RSK_SHUFFLE_GRASS,
|
||||||
RSK_MAX
|
RSK_MAX
|
||||||
} RandomizerSettingKey;
|
} RandomizerSettingKey;
|
||||||
|
|
||||||
@ -5641,6 +5846,14 @@ typedef enum {
|
|||||||
RO_SHUFFLE_POTS_ALL,
|
RO_SHUFFLE_POTS_ALL,
|
||||||
} RandoOptionShufflePots;
|
} RandoOptionShufflePots;
|
||||||
|
|
||||||
|
// Shuffle Pots settings (off, dungeons, overworld, all)
|
||||||
|
typedef enum {
|
||||||
|
RO_SHUFFLE_GRASS_OFF,
|
||||||
|
RO_SHUFFLE_GRASS_DUNGEONS,
|
||||||
|
RO_SHUFFLE_GRASS_OVERWORLD,
|
||||||
|
RO_SHUFFLE_GRASS_ALL,
|
||||||
|
} RandoOptionShuffleGrass;
|
||||||
|
|
||||||
//Link's Pocket Settings (dungeon reward, advancement, anything, nothing)
|
//Link's Pocket Settings (dungeon reward, advancement, anything, nothing)
|
||||||
typedef enum {
|
typedef enum {
|
||||||
RO_LINKS_POCKET_DUNGEON_REWARD,
|
RO_LINKS_POCKET_DUNGEON_REWARD,
|
||||||
@ -5737,6 +5950,11 @@ typedef struct FishIdentity {
|
|||||||
RandomizerCheck randomizerCheck;
|
RandomizerCheck randomizerCheck;
|
||||||
} FishIdentity;
|
} FishIdentity;
|
||||||
|
|
||||||
|
typedef struct GrassIdentity {
|
||||||
|
RandomizerInf randomizerInf;
|
||||||
|
RandomizerCheck randomizerCheck;
|
||||||
|
} GrassIdentity;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
TRACKER_WINDOW_FLOATING,
|
TRACKER_WINDOW_FLOATING,
|
||||||
TRACKER_WINDOW_WINDOW
|
TRACKER_WINDOW_WINDOW
|
||||||
|
@ -172,6 +172,7 @@ void RandomizerCheckObjects::UpdateImGuiVisibility() {
|
|||||||
(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(CVAR_RANDOMIZER_SETTING("ShufflePots"), RO_GENERIC_NO)) &&
|
(location.GetRCType() != RCTYPE_POT || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShufflePots"), RO_GENERIC_NO)) &&
|
||||||
|
(location.GetRCType() != RCTYPE_GRASS || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleGrass"), 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)) &&
|
||||||
|
@ -58,6 +58,8 @@ bool showWeirdEgg;
|
|||||||
bool showGerudoCard;
|
bool showGerudoCard;
|
||||||
bool showOverworldPots;
|
bool showOverworldPots;
|
||||||
bool showDungeonPots;
|
bool showDungeonPots;
|
||||||
|
bool showOverworldGrass;
|
||||||
|
bool showDungeonGrass;
|
||||||
bool showFrogSongRupees;
|
bool showFrogSongRupees;
|
||||||
bool showFairies;
|
bool showFairies;
|
||||||
bool showStartingMapsCompasses;
|
bool showStartingMapsCompasses;
|
||||||
@ -1233,11 +1235,20 @@ void LoadSettings() {
|
|||||||
showDungeonPots = false;
|
showDungeonPots = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_GRASS)) {
|
||||||
|
default:
|
||||||
|
showOverworldGrass = true;
|
||||||
|
showDungeonGrass = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
} else { // Vanilla
|
} else { // Vanilla
|
||||||
showOverworldTokens = true;
|
showOverworldTokens = true;
|
||||||
showDungeonTokens = true;
|
showDungeonTokens = true;
|
||||||
showOverworldPots = false;
|
showOverworldPots = false;
|
||||||
showDungeonPots = false;
|
showDungeonPots = false;
|
||||||
|
showOverworldGrass = false;
|
||||||
|
showDungeonGrass = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
fortressFast = false;
|
fortressFast = false;
|
||||||
@ -1317,6 +1328,9 @@ bool IsCheckShuffled(RandomizerCheck rc) {
|
|||||||
(loc->GetRCType() != RCTYPE_POT ||
|
(loc->GetRCType() != RCTYPE_POT ||
|
||||||
(showOverworldPots && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) ||
|
(showOverworldPots && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) ||
|
||||||
(showDungeonPots && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))) &&
|
(showDungeonPots && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))) &&
|
||||||
|
(loc->GetRCType() != RCTYPE_GRASS ||
|
||||||
|
(showOverworldGrass && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) ||
|
||||||
|
(showDungeonGrass && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))) &&
|
||||||
(loc->GetRCType() != RCTYPE_COW || showCows) &&
|
(loc->GetRCType() != RCTYPE_COW || showCows) &&
|
||||||
(loc->GetRCType() != RCTYPE_FISH || OTRGlobals::Instance->gRandoContext->GetFishsanity()->GetFishLocationIncluded(loc)) &&
|
(loc->GetRCType() != RCTYPE_FISH || OTRGlobals::Instance->gRandoContext->GetFishsanity()->GetFishLocationIncluded(loc)) &&
|
||||||
(loc->GetRCType() != RCTYPE_FREESTANDING ||
|
(loc->GetRCType() != RCTYPE_FREESTANDING ||
|
||||||
|
@ -1271,6 +1271,198 @@ typedef enum {
|
|||||||
RAND_INF_SHADOW_TEMPLE_MQ_WIND_HINT_SUN_FAIRY,
|
RAND_INF_SHADOW_TEMPLE_MQ_WIND_HINT_SUN_FAIRY,
|
||||||
RAND_INF_BOTTOM_OF_THE_WELL_MQ_CELL_SUN_FAIRY,
|
RAND_INF_BOTTOM_OF_THE_WELL_MQ_CELL_SUN_FAIRY,
|
||||||
RAND_INF_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SUN_FAIRY,
|
RAND_INF_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SUN_FAIRY,
|
||||||
|
|
||||||
|
// Overworld Grass
|
||||||
|
RAND_INF_KF_CHILD_GRASS_1,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_2,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_3,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_4,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_5,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_6,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_7,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_8,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_9,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_10,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_11,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_12,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_MAZE_1,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_MAZE_2,
|
||||||
|
RAND_INF_KF_CHILD_GRASS_MAZE_3,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_1,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_2,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_3,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_4,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_5,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_6,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_7,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_8,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_9,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_10,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_11,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_12,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_13,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_14,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_15,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_16,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_17,
|
||||||
|
RAND_INF_KF_ADULT_GRASS_18,
|
||||||
|
//RAND_INF_KF_ADULT_GRASS_19,
|
||||||
|
//RAND_INF_KF_ADULT_GRASS_20,
|
||||||
|
RAND_INF_LW_GRASS_1,
|
||||||
|
RAND_INF_LW_GRASS_2,
|
||||||
|
RAND_INF_LW_GRASS_3,
|
||||||
|
RAND_INF_LW_GRASS_4,
|
||||||
|
RAND_INF_LW_GRASS_5,
|
||||||
|
RAND_INF_LW_GRASS_6,
|
||||||
|
RAND_INF_LW_GRASS_7,
|
||||||
|
RAND_INF_LW_GRASS_8,
|
||||||
|
RAND_INF_LW_GRASS_9,
|
||||||
|
RAND_INF_MARKET_GRASS_1,
|
||||||
|
RAND_INF_MARKET_GRASS_2,
|
||||||
|
RAND_INF_MARKET_GRASS_3,
|
||||||
|
RAND_INF_MARKET_GRASS_4,
|
||||||
|
RAND_INF_MARKET_GRASS_5,
|
||||||
|
RAND_INF_MARKET_GRASS_6,
|
||||||
|
RAND_INF_MARKET_GRASS_7,
|
||||||
|
RAND_INF_MARKET_GRASS_8,
|
||||||
|
RAND_INF_HC_GRASS_1,
|
||||||
|
RAND_INF_HC_GRASS_2,
|
||||||
|
RAND_INF_KAK_GRASS_1,
|
||||||
|
RAND_INF_KAK_GRASS_2,
|
||||||
|
RAND_INF_KAK_GRASS_3,
|
||||||
|
RAND_INF_KAK_GRASS_4,
|
||||||
|
RAND_INF_KAK_GRASS_5,
|
||||||
|
RAND_INF_KAK_GRASS_6,
|
||||||
|
RAND_INF_KAK_GRASS_7,
|
||||||
|
RAND_INF_KAK_GRASS_8,
|
||||||
|
RAND_INF_GY_GRASS_1,
|
||||||
|
RAND_INF_GY_GRASS_2,
|
||||||
|
RAND_INF_GY_GRASS_3,
|
||||||
|
RAND_INF_GY_GRASS_4,
|
||||||
|
RAND_INF_GY_GRASS_5,
|
||||||
|
RAND_INF_GY_GRASS_6,
|
||||||
|
RAND_INF_GY_GRASS_7,
|
||||||
|
RAND_INF_GY_GRASS_8,
|
||||||
|
RAND_INF_GY_GRASS_9,
|
||||||
|
RAND_INF_GY_GRASS_10,
|
||||||
|
RAND_INF_GY_GRASS_11,
|
||||||
|
RAND_INF_GY_GRASS_12,
|
||||||
|
RAND_INF_LH_GRASS_1,
|
||||||
|
RAND_INF_LH_GRASS_2,
|
||||||
|
RAND_INF_LH_GRASS_3,
|
||||||
|
RAND_INF_LH_GRASS_4,
|
||||||
|
RAND_INF_LH_GRASS_5,
|
||||||
|
RAND_INF_LH_GRASS_6,
|
||||||
|
RAND_INF_LH_GRASS_7,
|
||||||
|
RAND_INF_LH_GRASS_8,
|
||||||
|
RAND_INF_LH_GRASS_9,
|
||||||
|
RAND_INF_LH_GRASS_10,
|
||||||
|
RAND_INF_LH_GRASS_11,
|
||||||
|
RAND_INF_LH_GRASS_12,
|
||||||
|
RAND_INF_LH_GRASS_13,
|
||||||
|
RAND_INF_LH_GRASS_14,
|
||||||
|
RAND_INF_LH_GRASS_15,
|
||||||
|
RAND_INF_LH_GRASS_16,
|
||||||
|
RAND_INF_LH_GRASS_17,
|
||||||
|
RAND_INF_LH_GRASS_18,
|
||||||
|
RAND_INF_LH_GRASS_19,
|
||||||
|
RAND_INF_LH_GRASS_20,
|
||||||
|
RAND_INF_LH_GRASS_21,
|
||||||
|
RAND_INF_LH_GRASS_22,
|
||||||
|
RAND_INF_LH_GRASS_23,
|
||||||
|
RAND_INF_LH_GRASS_24,
|
||||||
|
RAND_INF_LH_GRASS_25,
|
||||||
|
RAND_INF_LH_GRASS_26,
|
||||||
|
RAND_INF_LH_GRASS_27,
|
||||||
|
RAND_INF_LH_GRASS_28,
|
||||||
|
RAND_INF_LH_GRASS_29,
|
||||||
|
RAND_INF_LH_GRASS_30,
|
||||||
|
RAND_INF_LH_GRASS_31,
|
||||||
|
RAND_INF_LH_GRASS_32,
|
||||||
|
RAND_INF_LH_GRASS_33,
|
||||||
|
RAND_INF_LH_GRASS_34,
|
||||||
|
RAND_INF_LH_GRASS_35,
|
||||||
|
RAND_INF_LH_GRASS_36,
|
||||||
|
RAND_INF_LH_CHILD_GRASS_1,
|
||||||
|
RAND_INF_LH_CHILD_GRASS_2,
|
||||||
|
RAND_INF_LH_CHILD_GRASS_3,
|
||||||
|
RAND_INF_LH_CHILD_GRASS_4,
|
||||||
|
RAND_INF_LH_WARP_PAD_GRASS_1,
|
||||||
|
RAND_INF_LH_WARP_PAD_GRASS_2,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_1,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_2,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_3,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_4,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_5,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_6,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_7,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_8,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_9,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_10,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_11,
|
||||||
|
RAND_INF_HF_NEAR_KF_GRASS_12,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_1,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_2,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_3,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_4,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_5,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_6,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_7,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_8,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_9,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_10,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_11,
|
||||||
|
RAND_INF_HF_NEAR_GATE_GRASS_12,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_1,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_2,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_3,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_4,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_5,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_6,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_7,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_8,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_9,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_10,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_11,
|
||||||
|
RAND_INF_HF_SOUTH_GRASS_12,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_1,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_2,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_3,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_4,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_5,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_6,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_7,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_8,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_9,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_10,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_11,
|
||||||
|
RAND_INF_HF_CENTRAL_GRASS_12,
|
||||||
|
RAND_INF_ZR_GRASS_1,
|
||||||
|
RAND_INF_ZR_GRASS_2,
|
||||||
|
RAND_INF_ZR_GRASS_3,
|
||||||
|
RAND_INF_ZR_GRASS_4,
|
||||||
|
RAND_INF_ZR_GRASS_5,
|
||||||
|
RAND_INF_ZR_GRASS_6,
|
||||||
|
RAND_INF_ZR_GRASS_7,
|
||||||
|
RAND_INF_ZR_GRASS_8,
|
||||||
|
RAND_INF_ZR_GRASS_9,
|
||||||
|
RAND_INF_ZR_GRASS_10,
|
||||||
|
RAND_INF_ZR_GRASS_11,
|
||||||
|
RAND_INF_ZR_GRASS_12,
|
||||||
|
RAND_INF_ZR_GRASS_13,
|
||||||
|
// Grotto Grass
|
||||||
|
// RAND_INF_KF_STORMS_GROTTO_GRASS_1,
|
||||||
|
// RAND_INF_KF_STORMS_GROTTO_GRASS_2,
|
||||||
|
// RAND_INF_KF_STORMS_GROTTO_GRASS_3,
|
||||||
|
// RAND_INF_KF_STORMS_GROTTO_GRASS_4,
|
||||||
|
// Dungeon Grass
|
||||||
|
RAND_INF_DEKU_TREE_LOBBY_GRASS_1,
|
||||||
|
RAND_INF_DEKU_TREE_LOBBY_GRASS_2,
|
||||||
|
RAND_INF_DEKU_TREE_LOBBY_GRASS_3,
|
||||||
|
RAND_INF_DEKU_TREE_LOBBY_GRASS_4,
|
||||||
|
RAND_INF_DEKU_TREE_LOBBY_GRASS_5,
|
||||||
|
// MQ Dungeon Grass
|
||||||
|
// End Grass
|
||||||
// If you add anything to this list, you need to update the size of randomizerInf in z64save.h to be ceil(RAND_INF_MAX / 16)
|
// If you add anything to this list, you need to update the size of randomizerInf in z64save.h to be ceil(RAND_INF_MAX / 16)
|
||||||
|
|
||||||
RAND_INF_MAX,
|
RAND_INF_MAX,
|
||||||
|
@ -226,6 +226,7 @@ void Settings::CreateOptions() {
|
|||||||
mOptions[RSK_FISHSANITY_POND_COUNT] = Option::U8("Pond Fish Count", {NumOpts(0,17,1)}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("FishsanityPondCount"), mOptionDescriptions[RSK_FISHSANITY_POND_COUNT], WidgetType::Slider, 0, true, IMFLAG_NONE);
|
mOptions[RSK_FISHSANITY_POND_COUNT] = Option::U8("Pond Fish Count", {NumOpts(0,17,1)}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("FishsanityPondCount"), mOptionDescriptions[RSK_FISHSANITY_POND_COUNT], WidgetType::Slider, 0, true, IMFLAG_NONE);
|
||||||
mOptions[RSK_FISHSANITY_AGE_SPLIT] = Option::Bool("Pond Age Split", CVAR_RANDOMIZER_SETTING("FishsanityAgeSplit"), mOptionDescriptions[RSK_FISHSANITY_AGE_SPLIT]);
|
mOptions[RSK_FISHSANITY_AGE_SPLIT] = Option::Bool("Pond Age Split", CVAR_RANDOMIZER_SETTING("FishsanityAgeSplit"), mOptionDescriptions[RSK_FISHSANITY_AGE_SPLIT]);
|
||||||
mOptions[RSK_SHUFFLE_FAIRIES] = Option::Bool("Shuffle Fairies", CVAR_RANDOMIZER_SETTING("ShuffleFairies"), mOptionDescriptions[RSK_SHUFFLE_FAIRIES]);
|
mOptions[RSK_SHUFFLE_FAIRIES] = Option::Bool("Shuffle Fairies", CVAR_RANDOMIZER_SETTING("ShuffleFairies"), mOptionDescriptions[RSK_SHUFFLE_FAIRIES]);
|
||||||
|
mOptions[RSK_SHUFFLE_GRASS] = Option::Bool("Shuffle Grass", CVAR_RANDOMIZER_SETTING("ShuffleGrass"), mOptionDescriptions[RSK_SHUFFLE_GRASS]);
|
||||||
mOptions[RSK_SHUFFLE_MAPANDCOMPASS] = Option::U8("Maps/Compasses", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("StartingMapsCompasses"), mOptionDescriptions[RSK_SHUFFLE_MAPANDCOMPASS], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
mOptions[RSK_SHUFFLE_MAPANDCOMPASS] = Option::U8("Maps/Compasses", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("StartingMapsCompasses"), mOptionDescriptions[RSK_SHUFFLE_MAPANDCOMPASS], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
||||||
mOptions[RSK_KEYSANITY] = Option::U8("Small Key Shuffle", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("Keysanity"), mOptionDescriptions[RSK_KEYSANITY], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
mOptions[RSK_KEYSANITY] = Option::U8("Small Key Shuffle", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("Keysanity"), mOptionDescriptions[RSK_KEYSANITY], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
||||||
mOptions[RSK_GERUDO_KEYS] = Option::U8("Gerudo Fortress Keys", {"Vanilla", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("GerudoKeys"), mOptionDescriptions[RSK_GERUDO_KEYS], WidgetType::Combobox, RO_GERUDO_KEYS_VANILLA);
|
mOptions[RSK_GERUDO_KEYS] = Option::U8("Gerudo Fortress Keys", {"Vanilla", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("GerudoKeys"), mOptionDescriptions[RSK_GERUDO_KEYS], WidgetType::Combobox, RO_GERUDO_KEYS_VANILLA);
|
||||||
@ -792,6 +793,7 @@ void Settings::CreateOptions() {
|
|||||||
&mOptions[RSK_SHUFFLE_DEKU_STICK_BAG],
|
&mOptions[RSK_SHUFFLE_DEKU_STICK_BAG],
|
||||||
&mOptions[RSK_SHUFFLE_DEKU_NUT_BAG],
|
&mOptions[RSK_SHUFFLE_DEKU_NUT_BAG],
|
||||||
&mOptions[RSK_SHUFFLE_FREESTANDING],
|
&mOptions[RSK_SHUFFLE_FREESTANDING],
|
||||||
|
&mOptions[RSK_SHUFFLE_GRASS],
|
||||||
}, WidgetContainerType::COLUMN);
|
}, WidgetContainerType::COLUMN);
|
||||||
mOptionGroups[RSG_SHUFFLE_NPCS_IMGUI] = OptionGroup::SubGroup("Shuffle NPCs & Merchants", {
|
mOptionGroups[RSG_SHUFFLE_NPCS_IMGUI] = OptionGroup::SubGroup("Shuffle NPCs & Merchants", {
|
||||||
&mOptions[RSK_SHOPSANITY],
|
&mOptions[RSK_SHOPSANITY],
|
||||||
|
@ -47,6 +47,7 @@ class StaticData {
|
|||||||
static std::vector<RandomizerCheck> GetPondFishLocations();
|
static std::vector<RandomizerCheck> GetPondFishLocations();
|
||||||
static std::vector<RandomizerCheck> GetOverworldFishLocations();
|
static std::vector<RandomizerCheck> GetOverworldFishLocations();
|
||||||
static std::vector<RandomizerCheck> GetOverworldPotLocations();
|
static std::vector<RandomizerCheck> GetOverworldPotLocations();
|
||||||
|
static std::vector<RandomizerCheck> GetOverworldGrassLocations();
|
||||||
static std::vector<RandomizerCheck> GetOverworldFairyLocations();
|
static std::vector<RandomizerCheck> GetOverworldFairyLocations();
|
||||||
static std::array<std::pair<RandomizerCheck, RandomizerCheck>, 17> randomizerFishingPondFish;
|
static std::array<std::pair<RandomizerCheck, RandomizerCheck>, 17> randomizerFishingPondFish;
|
||||||
static std::unordered_map<int8_t, RandomizerCheck> randomizerGrottoFishMap;
|
static std::unordered_map<int8_t, RandomizerCheck> randomizerGrottoFishMap;
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||||
#include "objects/object_kusa/object_kusa.h"
|
#include "objects/object_kusa/object_kusa.h"
|
||||||
#include "vt.h"
|
#include "vt.h"
|
||||||
|
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
||||||
|
|
||||||
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_ALWAYS_THROWN)
|
#define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_ALWAYS_THROWN)
|
||||||
|
|
||||||
@ -124,8 +125,10 @@ s32 EnKusa_SnapToFloor(EnKusa* this, PlayState* play, f32 yOffset) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnKusa_DropCollectible(EnKusa* this, PlayState* play) {
|
void EnKusa_DropCollectible(EnKusa* this, PlayState* play) {
|
||||||
s16 dropParams;
|
s16 dropParams = this->actor.params & 0x1F;
|
||||||
|
//s16 dropParams;
|
||||||
|
|
||||||
|
if (GameInteractor_Should(VB_GRASS_DROP_ITEM, false, this)) {
|
||||||
switch (this->actor.params & 3) {
|
switch (this->actor.params & 3) {
|
||||||
case ENKUSA_TYPE_0:
|
case ENKUSA_TYPE_0:
|
||||||
case ENKUSA_TYPE_2:
|
case ENKUSA_TYPE_2:
|
||||||
@ -138,17 +141,42 @@ void EnKusa_DropCollectible(EnKusa* this, PlayState* play) {
|
|||||||
break;
|
break;
|
||||||
case ENKUSA_TYPE_1:
|
case ENKUSA_TYPE_1:
|
||||||
if (CVarGetInteger(CVAR_ENHANCEMENT("NoRandomDrops"), 0)) {
|
if (CVarGetInteger(CVAR_ENHANCEMENT("NoRandomDrops"), 0)) {
|
||||||
}
|
} else if (CVarGetInteger(CVAR_ENHANCEMENT("NoHeartDrops"), 0)) {
|
||||||
else if (CVarGetInteger(CVAR_ENHANCEMENT("NoHeartDrops"), 0)) {
|
|
||||||
Item_DropCollectible(play, &this->actor.world.pos, ITEM00_SEEDS);
|
Item_DropCollectible(play, &this->actor.world.pos, ITEM00_SEEDS);
|
||||||
}
|
} else if (Rand_ZeroOne() < 0.5f) {
|
||||||
else if (Rand_ZeroOne() < 0.5f) {
|
|
||||||
Item_DropCollectible(play, &this->actor.world.pos, ITEM00_SEEDS);
|
Item_DropCollectible(play, &this->actor.world.pos, ITEM00_SEEDS);
|
||||||
} else {
|
} else {
|
||||||
Item_DropCollectible(play, &this->actor.world.pos, ITEM00_HEART);
|
Item_DropCollectible(play, &this->actor.world.pos, ITEM00_HEART);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*if (GameInteractor_Should(VB_GRASS_DROP_ITEM, false)) {
|
||||||
|
Item_DropCollectible(play, &this->actor.world.pos, (dropParams | (((this->actor.params >> 9) & 0x3F) << 8)));
|
||||||
|
} else {
|
||||||
|
switch (this->actor.params & 3) {
|
||||||
|
case ENKUSA_TYPE_0:
|
||||||
|
case ENKUSA_TYPE_2:
|
||||||
|
dropParams = (this->actor.params >> 8) & 0xF;
|
||||||
|
|
||||||
|
if (dropParams >= 0xD) {
|
||||||
|
dropParams = 0;
|
||||||
|
}
|
||||||
|
Item_DropCollectibleRandom(play, NULL, &this->actor.world.pos, dropParams << 4);
|
||||||
|
break;
|
||||||
|
case ENKUSA_TYPE_1:
|
||||||
|
if (CVarGetInteger(CVAR_ENHANCEMENT("NoRandomDrops"), 0)) {
|
||||||
|
} else if (CVarGetInteger(CVAR_ENHANCEMENT("NoHeartDrops"), 0)) {
|
||||||
|
Item_DropCollectible(play, &this->actor.world.pos, ITEM00_SEEDS);
|
||||||
|
} else if (Rand_ZeroOne() < 0.5f) {
|
||||||
|
Item_DropCollectible(play, &this->actor.world.pos, ITEM00_SEEDS);
|
||||||
|
} else {
|
||||||
|
Item_DropCollectible(play, &this->actor.world.pos, ITEM00_HEART);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnKusa_UpdateVelY(EnKusa* this) {
|
void EnKusa_UpdateVelY(EnKusa* this) {
|
||||||
@ -288,7 +316,11 @@ void EnKusa_WaitObject(EnKusa* this, PlayState* play) {
|
|||||||
EnKusa_SetupMain(this);
|
EnKusa_SetupMain(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GameInteractor_Should(VB_GRASS_SETUP_DRAW, true, this)) {
|
||||||
this->actor.draw = EnKusa_Draw;
|
this->actor.draw = EnKusa_Draw;
|
||||||
|
}
|
||||||
|
|
||||||
|
//this->actor.draw = EnKusa_Draw;
|
||||||
this->actor.objBankIndex = this->objBankIndex;
|
this->actor.objBankIndex = this->objBankIndex;
|
||||||
this->actor.flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
|
this->actor.flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED;
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ typedef struct EnKusa {
|
|||||||
/* 0x0150 */ ColliderCylinder collider;
|
/* 0x0150 */ ColliderCylinder collider;
|
||||||
/* 0x019C */ s16 timer;
|
/* 0x019C */ s16 timer;
|
||||||
/* 0x019E */ s8 objBankIndex;
|
/* 0x019E */ s8 objBankIndex;
|
||||||
|
/* */ GrassIdentity grassIdentity;
|
||||||
} EnKusa; // size = 0x01A0
|
} EnKusa; // size = 0x01A0
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user