Merge 4a25a07a72
into 67ee5f8d0e
This commit is contained in:
commit
37892abebd
|
@ -283,7 +283,7 @@ typedef struct {
|
|||
// #endregion
|
||||
// #region SOH [Randomizer]
|
||||
// Upstream TODO: Move these to their own struct or name to more obviously specific to Randomizer
|
||||
/* */ u16 randomizerInf[16];
|
||||
/* */ u16 randomizerInf[25];
|
||||
/* */ u8 mqDungeonCount;
|
||||
/* */ u16 adultTradeItems;
|
||||
/* */ u8 triforcePiecesCollected;
|
||||
|
|
|
@ -348,7 +348,7 @@ const std::vector<FlagTable> flagTables = {
|
|||
{ 0x24, "Market Crowd Text Randomizer" },
|
||||
{ 0x30, "Entered the Market" },
|
||||
} },
|
||||
{ "Randomizer Inf Flags", RANDOMIZER_INF, 16, {
|
||||
{ "Randomizer Inf Flags", RANDOMIZER_INF, 25, {
|
||||
{ RAND_INF_DUNGEONS_DONE_DEKU_TREE, "DUNGEONS_DONE_DEKU_TREE" },
|
||||
{ RAND_INF_DUNGEONS_DONE_DODONGOS_CAVERN, "DUNGEONS_DONE_DODONGOS_CAVERN" },
|
||||
{ RAND_INF_DUNGEONS_DONE_JABU_JABUS_BELLY, "DUNGEONS_DONE_JABU_JABUS_BELLY" },
|
||||
|
@ -607,7 +607,157 @@ const std::vector<FlagTable> flagTables = {
|
|||
{ RAND_INF_ZD_FISH_2, "RAND_INF_ZD_FISH_2" },
|
||||
{ RAND_INF_ZD_FISH_3, "RAND_INF_ZD_FISH_3" },
|
||||
{ RAND_INF_ZD_FISH_4, "RAND_INF_ZD_FISH_4" },
|
||||
{ RAND_INF_ZD_FISH_5, "RAND_INF_ZD_FISH_5" }
|
||||
{ RAND_INF_ZD_FISH_5, "RAND_INF_ZD_FISH_5" },
|
||||
{ RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1, "RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_2, "RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_3, "RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_4, "RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_5, "RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_1, "RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_2, "RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_3, "RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_4, "RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_5, "RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_1, "RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_2, "RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_3, "RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_4, "RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_5, "RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1, "RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2, "RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3, "RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4, "RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5, "RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1, "RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2, "RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3, "RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4, "RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5, "RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1, "RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2, "RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3, "RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_4, "RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_5, "RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SPIRIT_GATE_SILVER_RUPEE_1, "RAND_INF_SPIRIT_GATE_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SPIRIT_GATE_SILVER_RUPEE_2, "RAND_INF_SPIRIT_GATE_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SPIRIT_GATE_SILVER_RUPEE_3, "RAND_INF_SPIRIT_GATE_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SPIRIT_GATE_SILVER_RUPEE_4, "RAND_INF_SPIRIT_GATE_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SPIRIT_GATE_SILVER_RUPEE_5, "RAND_INF_SPIRIT_GATE_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_1, "RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_2, "RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_3, "RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_4, "RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_5, "RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_1, "RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_2, "RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_3, "RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_4, "RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_5, "RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_1, "RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_2, "RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_3, "RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_4, "RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_5, "RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1, "RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2, "RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3, "RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4, "RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5, "RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_1, "RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_2, "RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_3, "RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_4, "RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_5, "RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_FOREST_TRIAL_SILVER_RUPEE_1, "RAND_INF_FOREST_TRIAL_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_FOREST_TRIAL_SILVER_RUPEE_2, "RAND_INF_FOREST_TRIAL_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_FOREST_TRIAL_SILVER_RUPEE_3, "RAND_INF_FOREST_TRIAL_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_FOREST_TRIAL_SILVER_RUPEE_4, "RAND_INF_FOREST_TRIAL_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_FOREST_TRIAL_SILVER_RUPEE_5, "RAND_INF_FOREST_TRIAL_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_FIRE_TRIAL_SILVER_RUPEE_1, "RAND_INF_FIRE_TRIAL_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_FIRE_TRIAL_SILVER_RUPEE_2, "RAND_INF_FIRE_TRIAL_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_FIRE_TRIAL_SILVER_RUPEE_3, "RAND_INF_FIRE_TRIAL_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_FIRE_TRIAL_SILVER_RUPEE_4, "RAND_INF_FIRE_TRIAL_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_FIRE_TRIAL_SILVER_RUPEE_5, "RAND_INF_FIRE_TRIAL_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_1, "RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_2, "RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_3, "RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_4, "RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_5, "RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_1, "RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_2, "RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_3, "RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_4, "RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_5, "RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_1, "RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_2, "RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_3, "RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_4, "RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_5, "RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_1, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_2, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_3, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_4, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_5, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_1, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_2, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_3, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_4, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_5, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_6, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_6" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_1, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_2, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_3, "RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_1, "RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_2, "RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_3, "RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_4, "RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_5, "RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_1, "RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_2, "RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_3, "RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_4, "RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_5, "RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_1, "RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_2, "RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_3, "RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_4, "RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_5, "RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_6, "RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_6" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_7, "RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_7" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_8, "RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_8" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_9, "RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_9" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_10, "RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_10" },
|
||||
{ RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1, "RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2, "RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3, "RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4, "RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5, "RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_1, "RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_2, "RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_3, "RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_4, "RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_5, "RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_6, "RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_6" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_7, "RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_7" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_8, "RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_8" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_9, "RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_9" },
|
||||
{ RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_10, "RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_10" },
|
||||
{ RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_1, "RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_2, "RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_3, "RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_4, "RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_5, "RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_1, "RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_2, "RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_3, "RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_4, "RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_5, "RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_1, "RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_1" },
|
||||
{ RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_2, "RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_2" },
|
||||
{ RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_3, "RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_3" },
|
||||
{ RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_4, "RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_4" },
|
||||
{ RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_5, "RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_5" },
|
||||
{ RAND_INF_MAGICAL_SILVER_RUPEE, "RAND_INF_MAGICAL_SILVER_RUPEE" }
|
||||
} },
|
||||
};
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ typedef enum GetItemCategory {
|
|||
/* 0x03 */ ITEM_CATEGORY_SMALL_KEY,
|
||||
/* 0x04 */ ITEM_CATEGORY_SKULLTULA_TOKEN,
|
||||
/* 0x05 */ ITEM_CATEGORY_MAJOR,
|
||||
/* 0x06 */ ITEM_CATEGORY_SILVER_RUPEE,
|
||||
} GetItemCategory;
|
||||
|
||||
#define GET_ITEM(itemId, objectId, drawId, textId, field, chestAnim, itemCategory, modIndex, getItemId) \
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include "src/overlays/actors/ovl_Obj_Switch/z_obj_switch.h"
|
||||
#include "objects/object_link_boy/object_link_boy.h"
|
||||
#include "objects/object_link_child/object_link_child.h"
|
||||
#include "soh/Enhancements/randomizer/actors/z_en_g_switch_rando.h"
|
||||
|
||||
extern "C" {
|
||||
#include <z64.h>
|
||||
|
@ -1180,6 +1181,51 @@ void RegisterRandomizerSheikSpawn() {
|
|||
});
|
||||
}
|
||||
|
||||
//Changes silver rupee update and draw functions, if silver rupees shuffle is enabled
|
||||
void RegisterSilverRupeeShuffle() {
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnActorInit>([](void* refActor) {
|
||||
if (!gPlayState) {
|
||||
return;
|
||||
}
|
||||
if (!IS_RANDO || OTRGlobals::Instance->gRandoContext->GetOption(RSK_SHUFFLE_SILVER_RUPEES).Is(RO_SILVER_SHUFFLE_VANILLA)) {
|
||||
return;
|
||||
}
|
||||
auto* actor = static_cast<Actor*>(refActor);
|
||||
if (actor->id == ACTOR_EN_G_SWITCH) {
|
||||
auto* silverRupee = reinterpret_cast<EnGSwitch*>(actor);
|
||||
if (silverRupee->type == ENGSWITCH_SILVER_RUPEE) {
|
||||
Rando::Position randoPos = {static_cast<SceneID>(gPlayState->sceneNum), ResourceMgr_IsSceneMasterQuest(gPlayState->sceneNum) ? RCQUEST_MQ : RCQUEST_VANILLA, actor->world.pos};
|
||||
silverRupee->rc = Rando::StaticData::silverRupeeMap.at(randoPos);
|
||||
Rando::Location* loc = Rando::StaticData::GetLocation(silverRupee->rc);
|
||||
silverRupee->randInfFlag = static_cast<RandomizerInf>(loc->GetCollectionCheck().flag);
|
||||
if (Flags_GetRandomizerInf(silverRupee->randInfFlag)) {
|
||||
Actor_Kill(actor);
|
||||
}
|
||||
silverRupee->rg = OTRGlobals::Instance->gRandoContext->GetItemLocation(silverRupee->rc)->GetPlacedRandomizerGet();
|
||||
silverRupee->giEntry = OTRGlobals::Instance->gRandoContext->GetItemLocation(silverRupee->rc)->GetPlacedItem().GetGIEntry().get();
|
||||
silverRupee->actionFunc = EnGSwitch_Randomizer_SilverRupeeIdle;
|
||||
silverRupee->actor.draw = EnGSwitch_Randomizer_Draw;
|
||||
} else if (silverRupee->type == ENGSWITCH_SILVER_TRACKER) {
|
||||
Rando::Identifier randoIdentifier = {
|
||||
static_cast<SceneID>(gPlayState->sceneNum),
|
||||
ResourceMgr_IsSceneMasterQuest(gPlayState->sceneNum) ? RCQUEST_MQ : RCQUEST_VANILLA, actor->params
|
||||
};
|
||||
silverRupee->rg = Rando::StaticData::silverTrackerMap.at(randoIdentifier);
|
||||
if ((OTRGlobals::Instance->gRandoContext->GetSilverRupees()->GetInfo(silverRupee->rg).GetCollected() >= silverRupee->silverCount)
|
||||
|| Flags_GetRandomizerInf(RAND_INF_MAGICAL_SILVER_RUPEE)) {
|
||||
if ((gPlayState->sceneNum == SCENE_GERUDO_TRAINING_GROUND) && (silverRupee->actor.room == 2)) {
|
||||
Flags_SetTempClear(gPlayState, silverRupee->actor.room);
|
||||
} else {
|
||||
func_80078884(NA_SE_SY_CORRECT_CHIME);
|
||||
Flags_SetSwitch(gPlayState, silverRupee->switchFlag);
|
||||
}
|
||||
Actor_Kill(&silverRupee->actor);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//Boss souls require an additional item (represented by a RAND_INF) to spawn a boss in a particular lair
|
||||
void RegisterBossSouls() {
|
||||
GameInteractor::Instance->RegisterGameHook<GameInteractor::OnActorInit>([](void* actor) {
|
||||
|
@ -1738,6 +1784,7 @@ void InitMods() {
|
|||
RegisterAltTrapTypes();
|
||||
RegisterRandomizerSheikSpawn();
|
||||
RegisterBossSouls();
|
||||
RegisterSilverRupeeShuffle();
|
||||
RegisterRandomizedEnemySizes();
|
||||
RegisterOpenAllHours();
|
||||
RegisterToTMedallions();
|
||||
|
|
|
@ -19,6 +19,7 @@ enum class Category {
|
|||
cVanillaCompass,
|
||||
cAdultTrade,
|
||||
cBeehive,
|
||||
cSilverRupee,
|
||||
};
|
||||
|
||||
enum class OptionCategory {
|
||||
|
|
|
@ -863,6 +863,11 @@ static void RandomizeOwnDungeon(const Rando::DungeonInfo* dungeon) {
|
|||
AddElementsToPool(dungeonItems, dungeonBossKey);
|
||||
}
|
||||
|
||||
if ((ctx->GetOption(RSK_SHUFFLE_SILVER_RUPEES).Is(RO_SILVER_SHUFFLE_OWN_DUNGEON) && dungeon->HasSilverRupees())) {
|
||||
auto silverRupees = FilterAndEraseFromPool(ItemPool, [dungeon](const RandomizerGet i){ return dungeon->ContainsSilverRupee(i); });
|
||||
AddElementsToPool(dungeonItems, silverRupees);
|
||||
}
|
||||
|
||||
//randomize boss key and small keys together for even distribution
|
||||
AssumedFill(dungeonItems, dungeonLocations);
|
||||
|
||||
|
@ -916,6 +921,14 @@ static void RandomizeDungeonItems() {
|
|||
auto ganonBossKey = FilterAndEraseFromPool(ItemPool, [](const auto i) { return i == RG_GANONS_CASTLE_BOSS_KEY; });
|
||||
AddElementsToPool(overworldItems, ganonBossKey);
|
||||
}
|
||||
|
||||
if (ctx->GetOption(RSK_SHUFFLE_SILVER_RUPEES).Is(RO_SILVER_SHUFFLE_ANY_DUNGEON)) {
|
||||
auto silverRupees = FilterAndEraseFromPool(ItemPool, [dungeon](const RandomizerGet i) { return dungeon->ContainsSilverRupee(i); });
|
||||
AddElementsToPool(anyDungeonItems, silverRupees);
|
||||
} else if (ctx->GetOption(RSK_SHUFFLE_SILVER_RUPEES).Is(RO_SILVER_SHUFFLE_OVERWORLD)) {
|
||||
auto silverRupees = FilterAndEraseFromPool(ItemPool, [dungeon](const RandomizerGet i){ return dungeon->ContainsSilverRupee(i); });
|
||||
AddElementsToPool(overworldItems, silverRupees);
|
||||
}
|
||||
}
|
||||
|
||||
if (ctx->GetOption(RSK_GERUDO_KEYS).Is(RO_GERUDO_KEYS_ANY_DUNGEON)) {
|
||||
|
|
|
@ -1151,6 +1151,21 @@ void HintTable_Init_Exclude_Dungeon() {
|
|||
Text{"#upon a web of glass# in the Spirit Temple sits a spider holding", /*french*/"une #Skulltula sur une paroi de verre du Temple de l'Esprit# a", /*spanish*/"#sobre una plataforma de cristal# yace una Skulltula que otorga"},
|
||||
});
|
||||
|
||||
//TODO: Translate
|
||||
hintTable[RHT_SPIRIT_GATE_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"a #gate# in the Spirit Temple guards"}
|
||||
});
|
||||
hintTable[RHT_SPIRIT_BEAMOS_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"#Beamos and blocks# in the Spirit Temple guard"}
|
||||
});
|
||||
hintTable[RHT_SPIRIT_BOULDER_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"#rolling rocks# in the Spirit Temple guard"}
|
||||
});
|
||||
//TODO: End Translation
|
||||
|
||||
/*--------------------------
|
||||
| SHADOW TEMPLE |
|
||||
---------------------------*/
|
||||
|
@ -1392,6 +1407,21 @@ void HintTable_Init_Exclude_Dungeon() {
|
|||
Text{"a #suspended spider# guards", /*french*/"une #Skulltula près du repère du Temple de l'Ombre# a", /*spanish*/"una #Skulltula flotante# del Templo de las Sombras otorga"},
|
||||
});
|
||||
|
||||
//TODO: Translate
|
||||
hintTable[RHT_SHADOW_SPINNING_SCYTHE_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"a #spinning scythe# guards"}
|
||||
});
|
||||
|
||||
hintTable[RHT_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"a #Beamos and Spike Trap# in the Shadow Temple guard"}
|
||||
});
|
||||
hintTable[RHT_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"#invisible spikes# guard"}
|
||||
});
|
||||
|
||||
/*--------------------------
|
||||
| BOTTOM OF THE WELL |
|
||||
---------------------------*/
|
||||
|
@ -1511,6 +1541,11 @@ void HintTable_Init_Exclude_Dungeon() {
|
|||
//obscure text
|
||||
Text{"a #spider locked in a crypt# within the well guards", /*french*/"une #Skulltula embarrée dans la crypte au fonds du Puits# a", /*spanish*/"una #Skulltula encerrada en una cripta# del pozo otorga"},
|
||||
});
|
||||
|
||||
hintTable[RHT_BOTTOM_OF_THE_WELL_BASEMENT_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"#Redeads in a well# guard"}
|
||||
});
|
||||
|
||||
/*--------------------------
|
||||
| ICE CAVERN |
|
||||
|
@ -1587,6 +1622,12 @@ void HintTable_Init_Exclude_Dungeon() {
|
|||
Text{"a #spider in fiery ice# hoards", /*french*/"une #Skulltula figée dans la glace rouge# a", /*spanish*/"una #Skulltula tras un ardiente hielo# otorga"},
|
||||
});
|
||||
|
||||
// TODO: Translate
|
||||
hintTable[RHT_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE] = HintText::Exclude({
|
||||
// obscure text
|
||||
Text{"#spinning ice# guards"}
|
||||
});
|
||||
|
||||
/*--------------------------
|
||||
| GERUDO TRAINING GROUNDS |
|
||||
---------------------------*/
|
||||
|
@ -1766,6 +1807,21 @@ void HintTable_Init_Exclude_Dungeon() {
|
|||
Text{"a #feat of strength# rewards thieves with", /*french*/"#derrière un bloc argent# dans le Gymnase Gerudo gît", /*spanish*/"una #hazaña de fuerza# premia a las bandidas con"},
|
||||
});
|
||||
|
||||
// TODO: Translate
|
||||
hintTable[RHT_GERUDO_TRAINING_GROUND_BOULDER_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"a #boulder maze# in the Gerudo Training Grounds guards"}
|
||||
});
|
||||
hintTable[RHT_GERUDO_TRAINING_GROUND_LAVA_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"a #fiery trial# in the Gerudo Training Grounds guards"}
|
||||
});
|
||||
hintTable[RHT_GERUDO_TRAINING_GROUND_TOILET_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"a #swirly trial# in the Gerudo Training Grounds guards"}
|
||||
});
|
||||
//TODO: End Translation
|
||||
|
||||
/*--------------------------
|
||||
| GANONS CASTLE |
|
||||
---------------------------*/
|
||||
|
@ -1961,4 +2017,22 @@ void HintTable_Init_Exclude_Dungeon() {
|
|||
//obscure text
|
||||
Text{"#scrubs in Ganon's Castle# sell", /*french*/"les #pestes Mojo dans le Château de Ganon# vendent", /*spanish*/"los #dekus del Castillo de Ganon# venden"},
|
||||
});
|
||||
|
||||
hintTable[RHT_FOREST_TRIAL_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"the #test of the wilds# holds", /*french*/"l'#épreuve des bois# contient", /*spanish*/"la #prueba de la naturaleza# brinda"},
|
||||
});
|
||||
//TODO: Translate
|
||||
hintTable[RHT_FIRE_TRIAL_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"the #test of flames# holds"}
|
||||
});
|
||||
hintTable[RHT_SPIRIT_TRIAL_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"the #test of the sands# holds", /*french*/"l'#épreuve des sables# contient", /*spanish*/"la #prueba de las arenas# brinda"}
|
||||
});
|
||||
hintTable[RHT_LIGHT_TRIAL_SILVER_RUPEE] = HintText::Exclude({
|
||||
//obscure text
|
||||
Text{"the #test of radiance# holds", /*french*/"l'#épreuve du ciel# contient", /*spanish*/"la #prueba del resplandor# brinda"}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -2113,6 +2113,73 @@ void HintTable_Init_Item() {
|
|||
Text{"a fishing pole", /*french*/"canne à pêche", /*spanish*/"caña de pescar"}
|
||||
);
|
||||
|
||||
// TODO: Translations
|
||||
hintTable[RHT_ICE_CAVERN_SILVER_RUPEE] = HintText::Item({
|
||||
//obscure text
|
||||
Text{"cold unlocking currency"},
|
||||
}, {
|
||||
//ambiguous text
|
||||
Text{"a Silver Rupee"},
|
||||
},
|
||||
Text{"an Ice Cavern Silver Rupee"}
|
||||
);
|
||||
|
||||
hintTable[RHT_BOTTOM_OF_THE_WELL_SILVER_RUPEE] = HintText::Item(
|
||||
{
|
||||
// obscure text
|
||||
Text{ "damp unlocking currency" },
|
||||
},
|
||||
{
|
||||
// ambiguous text
|
||||
Text{ "a Silver Rupee" },
|
||||
},
|
||||
Text{ "a Bottom of the Well Silver Rupee" });
|
||||
|
||||
hintTable[RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE] = HintText::Item(
|
||||
{
|
||||
// obscure text
|
||||
Text{ "stolen unlocking currency" },
|
||||
},
|
||||
{
|
||||
// ambiguous text
|
||||
Text{ "a Silver Rupee" },
|
||||
},
|
||||
Text{ "a Gerudo Training Grounds Silver Rupee" });
|
||||
|
||||
hintTable[RHT_SPIRIT_TEMPLE_SILVER_RUPEE] = HintText::Item(
|
||||
{
|
||||
// obscure text
|
||||
Text{ "spiritual unlocking currency" },
|
||||
},
|
||||
{
|
||||
// ambiguous text
|
||||
Text{ "a Silver Rupee" },
|
||||
},
|
||||
Text{ "a Spirit Temple Silver Rupee" });
|
||||
|
||||
hintTable[RHT_SHADOW_TEMPLE_SILVER_RUPEE] = HintText::Item(
|
||||
{
|
||||
// obscure text
|
||||
Text{ "dark unlocking currency" },
|
||||
},
|
||||
{
|
||||
// ambiguous text
|
||||
Text{ "a Silver Rupee" },
|
||||
},
|
||||
Text{ "a Shadow Temple Silver Rupee" });
|
||||
|
||||
hintTable[RHT_GANONS_CASTLE_SILVER_RUPEE] = HintText::Item(
|
||||
{
|
||||
// obscure text
|
||||
Text{ "evil unlocking currency" },
|
||||
},
|
||||
{
|
||||
// ambiguous text
|
||||
Text{ "a Silver Rupee" },
|
||||
},
|
||||
Text{ "a Ganon's Castle Silver Rupee" });
|
||||
// TODO: End Translation
|
||||
|
||||
hintTable[RHT_EPONA] = HintText::Item({
|
||||
//obscure text
|
||||
Text{"a horse", /*french*/"un fidèle destrier", /*spanish*/"una yegua"},
|
||||
|
|
|
@ -287,7 +287,7 @@ Text AutoFormatHintText(const Text& unformattedHintText, const std::vector<std::
|
|||
strings[i] = textStr;
|
||||
}
|
||||
|
||||
return {strings[0], strings[1], ""/*spanish*/, strings[2]};
|
||||
return {strings[0], strings[2], ""/*spanish*/, strings[1]};
|
||||
}
|
||||
|
||||
std::array<DungeonHintInfo, 10> dungeonInfoData;
|
||||
|
@ -615,6 +615,7 @@ void CreateGanonAndSheikText() {
|
|||
}
|
||||
|
||||
ctx->AddHint(RH_GANONDORF_HINT, AutoFormatHintText(ganonHintText), lightArrowLocation[0], HINT_TYPE_STATIC, "Static", lightArrowArea);
|
||||
ctx->AddHint(RH_GANONDORF_NOHINT, AutoFormatHintText(ganonText), lightArrowLocation[0], HINT_TYPE_STATIC, "Static", lightArrowArea);
|
||||
|
||||
if (!ctx->GetOption(RSK_TRIAL_COUNT).Is(0)) {
|
||||
sheikText = ::Hint(RHT_SHEIK_LIGHT_ARROW_HINT).GetText() + LightArrowAreaText + "%w.";
|
||||
|
@ -963,7 +964,7 @@ static void DistributeHints(std::vector<uint8_t>& selected, size_t stoneCount, s
|
|||
for (uint8_t distribution = 0; distribution < distTable.size(); distribution++){
|
||||
currentWeight -= distTable[distribution].weight;
|
||||
if (currentWeight <= 0){
|
||||
if (stoneCount >= distTable[distribution].copies){
|
||||
if (stoneCount >= distTable[distribution].copies || distTable[distribution].copies == 0){
|
||||
selected[distribution] += 1;
|
||||
stoneCount -= distTable[distribution].copies;
|
||||
break;
|
||||
|
@ -1074,8 +1075,9 @@ void CreateStoneHints() {
|
|||
|
||||
while(totalStones != 0){
|
||||
totalStones = PlaceHints(selectedHints, distTable);
|
||||
if (totalStones != 0){
|
||||
while (totalStones != 0){
|
||||
DistributeHints(selectedHints, totalStones, distTable, hintSetting.junkWeight, false);
|
||||
totalStones = PlaceHints(selectedHints, distTable);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1061,6 +1061,63 @@ void GenerateItemPool() {
|
|||
}
|
||||
}
|
||||
|
||||
// Silver Rupees
|
||||
|
||||
// Add the Magical Silver Rupee if the option is on
|
||||
if (ctx->GetOption(RSK_MAGICAL_SILVER_RUPEE)) {
|
||||
AddItemToMainPool(RG_MAGICAL_SILVER_RUPEE);
|
||||
}
|
||||
// The Silver Rupees to add to the pool will be different according to which dungeons are vanilla/mq.
|
||||
if (ctx->GetOption(RSK_SHUFFLE_SILVER_RUPEES).IsNot(RO_SILVER_SHUFFLE_VANILLA)) {
|
||||
std::vector<RandomizerGet> silversToAdd;
|
||||
if (ctx->GetDungeon(Rando::ICE_CAVERN)->IsVanilla()) {
|
||||
silversToAdd.push_back(RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_ICE_CAVERN_SLIDING_SILVER_RUPEE);
|
||||
}
|
||||
if (ctx->GetDungeon(Rando::BOTTOM_OF_THE_WELL)->IsVanilla()) {
|
||||
silversToAdd.push_back(RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE);
|
||||
}
|
||||
if (ctx->GetDungeon(Rando::GERUDO_TRAINING_GROUNDS)->IsVanilla()) {
|
||||
silversToAdd.push_back(RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE);
|
||||
} else {
|
||||
silversToAdd.push_back(RG_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE);
|
||||
}
|
||||
if (ctx->GetDungeon(Rando::SPIRIT_TEMPLE)->IsVanilla()) {
|
||||
silversToAdd.push_back(RG_SPIRIT_GATE_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_SPIRIT_BEAMOS_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_SPIRIT_BOULDER_SILVER_RUPEE);
|
||||
} else {
|
||||
silversToAdd.push_back(RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE);
|
||||
}
|
||||
if (ctx->GetDungeon(Rando::SHADOW_TEMPLE)->IsVanilla()) {
|
||||
silversToAdd.push_back(RG_SHADOW_SCYTHE_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE);
|
||||
} else {
|
||||
silversToAdd.push_back(RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE);
|
||||
}
|
||||
if (ctx->GetDungeon(Rando::GANONS_CASTLE)->IsVanilla()) {
|
||||
silversToAdd.push_back(RG_FOREST_TRIAL_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_FIRE_TRIAL_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_SPIRIT_TRIAL_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_LIGHT_TRIAL_SILVER_RUPEE);
|
||||
} else {
|
||||
silversToAdd.push_back(RG_FIRE_TRIAL_MQ_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_WATER_TRIAL_MQ_SILVER_RUPEE);
|
||||
silversToAdd.push_back(RG_SHADOW_TRIAL_MQ_SILVER_RUPEE);
|
||||
}
|
||||
for (auto rgid : silversToAdd) {
|
||||
AddItemToMainPool(rgid, ctx->GetSilverRupees()->GetInfo(rgid).GetTotal());
|
||||
}
|
||||
}
|
||||
|
||||
if (ctx->GetOption(RSK_ITEM_POOL).Is(RO_ITEM_POOL_PLENTIFUL)) {
|
||||
if (ctx->GetOption(RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD)) {
|
||||
AddItemToPool(PendingJunkPool, RG_GERUDO_MEMBERSHIP_CARD);
|
||||
|
|
|
@ -42,6 +42,12 @@ void AreaTable_Init_BottomOfTheWell() {
|
|||
LocationAccess(RC_BOTTOM_OF_THE_WELL_GS_WEST_INNER_ROOM, {[]{return logic->Boomerang && (randoCtx->GetTrickOption(RT_LENS_BOTW) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->SmallKeys(RR_BOTTOM_OF_THE_WELL, 3);}}),
|
||||
LocationAccess(RC_BOTTOM_OF_THE_WELL_GS_EAST_INNER_ROOM, {[]{return logic->Boomerang && (randoCtx->GetTrickOption(RT_LENS_BOTW) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->SmallKeys(RR_BOTTOM_OF_THE_WELL, 3);}}),
|
||||
LocationAccess(RC_BOTTOM_OF_THE_WELL_GS_LIKE_LIKE_CAGE, {[]{return logic->SmallKeys(RR_BOTTOM_OF_THE_WELL, 3) && (randoCtx->GetTrickOption(RT_LENS_BOTW) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->Boomerang;}}),
|
||||
LocationAccess(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_BOTTOM_OF_THE_WELL_ENTRYWAY, {[]{return true;}}),
|
||||
|
|
|
@ -233,6 +233,11 @@ void AreaTable_Init_DodongosCavern() {
|
|||
LocationAccess(RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT, {[]{return logic->CanStunDeku;}}),
|
||||
LocationAccess(RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE, {[]{return logic->CanStunDeku;}}),
|
||||
LocationAccess(RC_DODONGOS_CAVERN_GOSSIP_STONE, {[]{return true;}}),
|
||||
LocationAccess(RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DODONGOS_CAVERN_MQ_LOWER_RIGHT_SIDE, {[]{return Here(RR_DODONGOS_CAVERN_MQ_LOBBY, []{return logic->CanBlastOrSmash || (((logic->IsChild && logic->CanUse(RG_STICKS)) || logic->CanUse(RG_DINS_FIRE)) && logic->CanTakeDamage);});}}),
|
||||
|
|
|
@ -58,12 +58,23 @@ void AreaTable_Init_GanonsCastle() {
|
|||
}, {
|
||||
//Locations
|
||||
LocationAccess(RC_GANONS_CASTLE_FOREST_TRIAL_CHEST, {[]{return logic->CanAdultDamage || logic->CanChildDamage;}}),
|
||||
LocationAccess(RC_FOREST_TRIAL_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FOREST_TRIAL_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FOREST_TRIAL_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FOREST_TRIAL_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FOREST_TRIAL_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {});
|
||||
|
||||
areaTable[RR_GANONS_CASTLE_FIRE_TRIAL] = Area("Ganon's Castle Fire Trial", "Ganon's Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {
|
||||
//Events
|
||||
EventAccess(&logic->FireTrialClear, {[]{return logic->CanUse(RG_GORON_TUNIC) && logic->CanUse(RG_GOLDEN_GAUNTLETS) && logic->CanUse(RG_LIGHT_ARROWS) && logic->CanUse(RG_LONGSHOT);}}),
|
||||
}, {}, {});
|
||||
}, {
|
||||
LocationAccess(RC_FIRE_TRIAL_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FIRE_TRIAL_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FIRE_TRIAL_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FIRE_TRIAL_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FIRE_TRIAL_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {});
|
||||
|
||||
areaTable[RR_GANONS_CASTLE_WATER_TRIAL] = Area("Ganon's Castle Water Trial", "Ganon's Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {
|
||||
//Events
|
||||
|
@ -93,6 +104,11 @@ void AreaTable_Init_GanonsCastle() {
|
|||
//Locations
|
||||
LocationAccess(RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST, {[]{return (randoCtx->GetTrickOption(RT_GANON_SPIRIT_TRIAL_HOOKSHOT) || logic->CanUse(RG_HOOKSHOT)) && logic->CanJumpslash;}}),
|
||||
LocationAccess(RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST, {[]{return (randoCtx->GetTrickOption(RT_GANON_SPIRIT_TRIAL_HOOKSHOT) || logic->CanUse(RG_HOOKSHOT)) && logic->HasBombchus && (randoCtx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH));}}),
|
||||
LocationAccess(RC_SPIRIT_TRIAL_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_TRIAL_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_TRIAL_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_TRIAL_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_TRIAL_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {});
|
||||
|
||||
areaTable[RR_GANONS_CASTLE_LIGHT_TRIAL] = Area("Ganon's Castle Light Trial", "Ganon's Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {
|
||||
|
@ -108,6 +124,11 @@ void AreaTable_Init_GanonsCastle() {
|
|||
LocationAccess(RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST, {[]{return true;}}),
|
||||
LocationAccess(RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST, {[]{return randoCtx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH);}}),
|
||||
LocationAccess(RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST, {[]{return logic->CanUse(RG_ZELDAS_LULLABY) && logic->SmallKeys(RR_GANONS_CASTLE, 1);}}),
|
||||
LocationAccess(RC_LIGHT_TRIAL_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_LIGHT_TRIAL_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_LIGHT_TRIAL_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_LIGHT_TRIAL_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_LIGHT_TRIAL_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {});
|
||||
}
|
||||
|
||||
|
@ -169,7 +190,14 @@ void AreaTable_Init_GanonsCastle() {
|
|||
//Events
|
||||
EventAccess(&logic->FireTrialClear, {[]{return logic->CanUse(RG_GORON_TUNIC) && logic->CanUse(RG_GOLDEN_GAUNTLETS) && logic->CanUse(RG_LIGHT_ARROWS) && (logic->CanUse(RG_LONGSHOT) || logic->HoverBoots || (randoCtx->GetTrickOption(RT_GANON_MQ_FIRE_TRIAL) && logic->CanUse(RG_HOOKSHOT)));}}),
|
||||
//Trick: logic->CanUse(RG_GORON_TUNIC) && logic->CanUse(RG_GOLDEN_GAUNTLETS) && logic->CanUse(RG_LIGHT_ARROWS) && (logic->CanUse(RG_LONGSHOT) || logic->HoverBoots || (LogicFireTrialMQ && logic->CanUse(RG_HOOKSHOT)))
|
||||
}, {}, {});
|
||||
}, {
|
||||
// Locations
|
||||
LocationAccess(RC_FIRE_TRIAL_MQ_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FIRE_TRIAL_MQ_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FIRE_TRIAL_MQ_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FIRE_TRIAL_MQ_SILVER_RUPEE_4, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_FIRE_TRIAL_MQ_SILVER_RUPEE_5, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
}, {});
|
||||
|
||||
areaTable[RR_GANONS_CASTLE_MQ_WATER_TRIAL] = Area("Ganon's Castle MQ Water Trial", "Ganons Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {
|
||||
//Events
|
||||
|
@ -178,6 +206,11 @@ void AreaTable_Init_GanonsCastle() {
|
|||
}, {
|
||||
//Locations
|
||||
LocationAccess(RC_GANONS_CASTLE_MQ_WATER_TRIAL_CHEST, {[]{return logic->BlueFire;}}),
|
||||
LocationAccess(RC_WATER_TRIAL_MQ_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_WATER_TRIAL_MQ_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_WATER_TRIAL_MQ_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_WATER_TRIAL_MQ_SILVER_RUPEE_4, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_WATER_TRIAL_MQ_SILVER_RUPEE_5, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
}, {});
|
||||
|
||||
areaTable[RR_GANONS_CASTLE_MQ_SHADOW_TRIAL] = Area("Ganon's Castle MQ Shadow Trial", "Ganons Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {
|
||||
|
@ -189,6 +222,11 @@ void AreaTable_Init_GanonsCastle() {
|
|||
LocationAccess(RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST, {[]{return logic->IsAdult && ((logic->Bow && (logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS))) || (logic->CanUse(RG_HOVER_BOOTS) && (randoCtx->GetTrickOption(RT_LENS_GANON_MQ) || logic->CanUse(RG_LENS_OF_TRUTH)) && (logic->HasExplosives || logic->GoronBracelet || logic->CanUse(RG_DINS_FIRE))));}}),
|
||||
LocationAccess(RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_EYE_SWITCH_CHEST, {[]{return logic->IsAdult && logic->Bow && (randoCtx->GetTrickOption(RT_LENS_GANON_MQ) || logic->CanUse(RG_LENS_OF_TRUTH)) && (logic->HoverBoots || (logic->Hookshot && (logic->HasFireSource || randoCtx->GetTrickOption(RT_GANON_MQ_SHADOW_TRIAL))));}}),
|
||||
//Trick: logic->IsAdult && logic->Bow && (LogicLensCastleMQ || logic->CanUse(RG_LENS_OF_TRUTH)) && (logic->HoverBoots || (logic->Hookshot && (logic->HasFireSource || LogicShadowTrialMQ)))
|
||||
LocationAccess(RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_4, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_5, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
}, {});
|
||||
|
||||
areaTable[RR_GANONS_CASTLE_MQ_SPIRIT_TRIAL] = Area("Ganon's Castle MQ Spirit Castle", "Ganons Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {
|
||||
|
|
|
@ -59,6 +59,16 @@ void AreaTable_Init_GerudoTrainingGrounds() {
|
|||
areaTable[RR_GERUDO_TRAINING_GROUNDS_LAVA_ROOM] = Area("Gerudo Training Grounds Lava Room", "Gerudo Training Grounds", RA_GERUDO_TRAINING_GROUND, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
//Locations
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUND_UNDERWATER_SILVER_RUPEE_CHEST, {[]{return logic->CanUse(RG_HOOKSHOT) && logic->CanUse(RG_SONG_OF_TIME) && logic->IronBoots && logic->WaterTimer >= 24;}}),
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_GERUDO_TRAINING_GROUNDS_CENTRAL_MAZE_RIGHT, {[]{return logic->CanUse(RG_SONG_OF_TIME) || logic->IsChild;}}),
|
||||
|
@ -94,6 +104,12 @@ void AreaTable_Init_GerudoTrainingGrounds() {
|
|||
areaTable[RR_GERUDO_TRAINING_GROUNDS_HEAVY_BLOCK_ROOM] = Area("Gerudo Training Grounds Heavy Block Room", "Gerudo Training Grounds", RA_GERUDO_TRAINING_GROUND, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
//Locations
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUND_BEFORE_HEAVY_BLOCK_CHEST, {[]{return logic->CanJumpslash;}}),
|
||||
// TODO: Maybe a new region for the boulder maze room? Not sure if that's needed or if it's fine for them to stay here.
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_GERUDO_TRAINING_GROUNDS_EYE_STATUE_UPPER, {[]{return (randoCtx->GetTrickOption(RT_LENS_GTG) || logic->CanUse(RG_LENS_OF_TRUTH)) && (logic->CanUse(RG_HOOKSHOT) || (randoCtx->GetTrickOption(RT_GTG_FAKE_WALL) && logic->CanUse(RG_HOVER_BOOTS)));}}),
|
||||
|
@ -142,6 +158,9 @@ void AreaTable_Init_GerudoTrainingGrounds() {
|
|||
areaTable[RR_GERUDO_TRAINING_GROUNDS_MQ_UNDERWATER] = Area("Gerudo Training Grounds MQ Underwater", "Gerudo Training Grounds", RA_GERUDO_TRAINING_GROUND, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
//Locations
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST, {[]{return logic->HasFireSource && logic->IsAdult && logic->CanUse(RG_IRON_BOOTS) && logic->WaterTimer >= 24 && logic->CanTakeDamage;}}),
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
}, {});
|
||||
|
||||
areaTable[RR_GERUDO_TRAINING_GROUNDS_MQ_LEFT_SIDE] = Area("Gerudo Training Grounds MQ Left Side", "Gerudo Training Grounds", RA_GERUDO_TRAINING_GROUND, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
|
@ -160,6 +179,11 @@ void AreaTable_Init_GerudoTrainingGrounds() {
|
|||
//Locations
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUND_MQ_BEFORE_HEAVY_BLOCK_CHEST, {[]{return logic->IsAdult && (logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD));}}),
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST, {[]{return logic->CanUse(RG_SILVER_GAUNTLETS) && (logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD));}}),
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_4, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_5, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_GERUDO_TRAINING_GROUNDS_MQ_BACK_AREAS, {[]{return logic->IsAdult && (logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)) && (randoCtx->GetTrickOption(RT_LENS_GTG_MQ) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->BlueFire && (logic->CanUse(RG_SONG_OF_TIME) || (randoCtx->GetTrickOption(RT_GTG_FAKE_WALL) && logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS)));}}),
|
||||
|
@ -182,6 +206,12 @@ void AreaTable_Init_GerudoTrainingGrounds() {
|
|||
LocationAccess(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_CENTRAL_CHEST, {[]{return true;}}),
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUND_MQ_MAZE_RIGHT_SIDE_CHEST, {[]{return true;}}),
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUND_MQ_ICE_ARROWS_CHEST, {[]{return logic->SmallKeys(RR_GERUDO_TRAINING_GROUNDS, 3);}}),
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_4, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_5, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_6, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_GERUDO_TRAINING_GROUNDS_MQ_UNDERWATER, {[]{return logic->IsAdult && (logic->CanUse(RG_LONGSHOT) || (logic->CanUse(RG_HOOKSHOT) && logic->Bow));}}),
|
||||
|
|
|
@ -38,6 +38,16 @@ void AreaTable_Init_IceCavern() {
|
|||
LocationAccess(RC_ICE_CAVERN_GS_SPINNING_SCYTHE_ROOM, {[]{return logic->HookshotOrBoomerang;}}),
|
||||
LocationAccess(RC_ICE_CAVERN_GS_HEART_PIECE_ROOM, {[]{return logic->BlueFire && logic->HookshotOrBoomerang;}}),
|
||||
LocationAccess(RC_ICE_CAVERN_GS_PUSH_BLOCK_ROOM, {[]{return logic->BlueFire && (logic->HookshotOrBoomerang || (randoCtx->GetTrickOption(RT_ICE_BLOCK_GS) && logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS)));}}),
|
||||
LocationAccess(RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {});
|
||||
}
|
||||
|
||||
|
|
|
@ -39,6 +39,11 @@ void AreaTable_Init_ShadowTemple() {
|
|||
//Locations
|
||||
LocationAccess(RC_SHADOW_TEMPLE_COMPASS_CHEST, {[]{return logic->CanJumpslash;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_EARLY_SILVER_RUPEE_CHEST, {[]{return logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_HOOKSHOT);}}),
|
||||
LocationAccess(RC_SHADOW_SCYTHE_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_SCYTHE_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_SCYTHE_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_SCYTHE_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_SCYTHE_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_TEMPLE_GS_NEAR_SHIP, {[]{return false;}}),
|
||||
}, {
|
||||
//Exits
|
||||
|
@ -50,10 +55,20 @@ void AreaTable_Init_ShadowTemple() {
|
|||
//Locations
|
||||
LocationAccess(RC_SHADOW_TEMPLE_INVISIBLE_BLADES_VISIBLE_CHEST, {[]{return logic->CanJumpslash;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_INVISIBLE_BLADES_INVISIBLE_CHEST, {[]{return logic->CanJumpslash;}}),
|
||||
LocationAccess(RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_TEMPLE_FALLING_SPIKES_LOWER_CHEST, {[]{return true;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_FALLING_SPIKES_UPPER_CHEST, {[]{return (randoCtx->GetTrickOption(RT_SHADOW_UMBRELLA) && logic->HoverBoots) || logic->GoronBracelet;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_FALLING_SPIKES_SWITCH_CHEST, {[]{return (randoCtx->GetTrickOption(RT_SHADOW_UMBRELLA) && logic->HoverBoots) || logic->GoronBracelet;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_INVISIBLE_SPIKES_CHEST, {[]{return logic->SmallKeys(RR_SHADOW_TEMPLE, 2, 3) && ((randoCtx->GetTrickOption(RT_LENS_SHADOW_PLATFORM) && randoCtx->GetTrickOption(RT_LENS_SHADOW)) || logic->CanUse(RG_LENS_OF_TRUTH));}}),
|
||||
LocationAccess(RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_TEMPLE_FREESTANDING_KEY, {[]{return logic->SmallKeys(RR_SHADOW_TEMPLE, 2, 3) && ((randoCtx->GetTrickOption(RT_LENS_SHADOW_PLATFORM) && randoCtx->GetTrickOption(RT_LENS_SHADOW)) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->Hookshot && (logic->Bombs || logic->GoronBracelet || (randoCtx->GetTrickOption(RT_SHADOW_FREESTANDING_KEY) && logic->HasBombchus));}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_GS_LIKE_LIKE_ROOM, {[]{return logic->CanJumpslash;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_GS_FALLING_SPIKES_ROOM, {[]{return logic->Hookshot || (randoCtx->GetTrickOption(RT_SHADOW_UMBRELLA_GS) && logic->HoverBoots);}}),
|
||||
|
@ -109,6 +124,11 @@ void AreaTable_Init_ShadowTemple() {
|
|||
LocationAccess(RC_SHADOW_TEMPLE_MQ_MAP_CHEST, {[]{return logic->CanAdultAttack || logic->Nuts;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_MQ_EARLY_GIBDOS_CHEST, {[]{return logic->CanJumpslash;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_MQ_NEAR_SHIP_INVISIBLE_CHEST, {[]{return logic->CanAdultAttack || logic->Nuts;}}),
|
||||
LocationAccess(RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_4, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_5, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_SHADOW_TEMPLE_MQ_UPPER_HUGE_PIT, {[]{return logic->HasExplosives && logic->SmallKeys(RR_SHADOW_TEMPLE, 2);}}),
|
||||
|
@ -120,6 +140,16 @@ void AreaTable_Init_ShadowTemple() {
|
|||
//Trick: logic->CanUse(RG_SONG_OF_TIME) || (LogicShadowMQInvisibleBlades && DamageMultiplier.IsNot(DAMAGEMULTIPLIER_OHKO))
|
||||
LocationAccess(RC_SHADOW_TEMPLE_MQ_INVISIBLE_BLADES_INVISIBLE_CHEST, {[]{return logic->CanUse(RG_SONG_OF_TIME) || (randoCtx->GetTrickOption(RT_SHADOW_MQ_INVISIBLE_BLADES) && randoCtx->GetOption(RSK_DAMAGE_MULTIPLIER).IsNot(RO_DAMAGE_MULTIPLIER_OHKO));}}),
|
||||
//Trick: logic->CanUse(RG_SONG_OF_TIME) || (LogicShadowMQInvisibleBlades && DamageMultiplier.IsNot(DAMAGEMULTIPLIER_OHKO))
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_4, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_5, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_6, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_7, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_8, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_9, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_10, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_SHADOW_TEMPLE_MQ_LOWER_HUGE_PIT, {[]{return logic->HasFireSource || randoCtx->GetTrickOption(RT_SHADOW_MQ_HUGE_PIT);}}),
|
||||
|
@ -128,11 +158,26 @@ void AreaTable_Init_ShadowTemple() {
|
|||
|
||||
areaTable[RR_SHADOW_TEMPLE_MQ_LOWER_HUGE_PIT] = Area("Shadow Temple MQ Lower Huge Pit", "Shadow Temple", RA_SHADOW_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
//Locations
|
||||
LocationAccess(RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_TEMPLE_MQ_BEAMOS_SILVER_RUPEES_CHEST, {[]{return logic->IsAdult && logic->CanUse(RG_LONGSHOT);}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_LOWER_CHEST, {[]{return true;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_UPPER_CHEST, {[]{return (randoCtx->GetTrickOption(RT_SHADOW_UMBRELLA) && logic->HoverBoots) || logic->GoronBracelet;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_SWITCH_CHEST, {[]{return (randoCtx->GetTrickOption(RT_SHADOW_UMBRELLA) && logic->HoverBoots) || logic->GoronBracelet;}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_MQ_INVISIBLE_SPIKES_CHEST, {[]{return logic->CanJumpslash && logic->HoverBoots && logic->SmallKeys(RR_SHADOW_TEMPLE, 3) && ((randoCtx->GetTrickOption(RT_LENS_SHADOW_MQ) && randoCtx->GetTrickOption(RT_LENS_SHADOW_MQ_PLATFORM)) || logic->CanUse(RG_LENS_OF_TRUTH));}}),
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_4, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_5, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_6, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_7, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_8, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_9, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_10, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SHADOW_TEMPLE_MQ_STALFOS_ROOM_CHEST, {[]{return (logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)) && logic->HoverBoots && logic->SmallKeys(RR_SHADOW_TEMPLE, 3) && logic->Hookshot && ((randoCtx->GetTrickOption(RT_LENS_SHADOW_MQ) &&
|
||||
randoCtx->GetTrickOption(RT_LENS_SHADOW_MQ_INVISIBLE_BLADES) && randoCtx->GetTrickOption(RT_LENS_SHADOW_MQ_PLATFORM)) || logic->CanUse(RG_LENS_OF_TRUTH));}}),
|
||||
LocationAccess(RC_SHADOW_TEMPLE_MQ_GS_FALLING_SPIKES_ROOM, {[]{return logic->Hookshot || (randoCtx->GetTrickOption(RT_SHADOW_UMBRELLA_GS) && logic->HoverBoots);}}),
|
||||
|
|
|
@ -32,6 +32,11 @@ void AreaTable_Init_SpiritTemple() {
|
|||
}, {
|
||||
//Locations
|
||||
LocationAccess(RC_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST, {[]{return (logic->Boomerang || logic->Slingshot || (logic->HasBombchus && randoCtx->GetTrickOption(RT_SPIRIT_CHILD_CHU))) && (logic->HasExplosives || ((logic->Nuts || logic->Boomerang) && (logic->Sticks || logic->KokiriSword || logic->Slingshot)));}}),
|
||||
LocationAccess(RC_SPIRIT_GATE_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_GATE_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_GATE_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_GATE_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_GATE_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST, {[]{return (logic->Boomerang || logic->Slingshot || (logic->HasBombchus && randoCtx->GetTrickOption(RT_SPIRIT_CHILD_CHU))) && (logic->HasExplosives || ((logic->Nuts || logic->Boomerang) && (logic->Sticks || logic->KokiriSword || logic->Slingshot))) && (logic->Sticks || logic->CanUse(RG_DINS_FIRE));}}),
|
||||
LocationAccess(RC_SPIRIT_TEMPLE_GS_METAL_FENCE, {[]{return (logic->Boomerang || logic->Slingshot || (logic->HasBombchus && randoCtx->GetTrickOption(RT_SPIRIT_CHILD_CHU))) && (logic->HasExplosives || ((logic->Nuts || logic->Boomerang) && (logic->Sticks || logic->KokiriSword || logic->Slingshot)));}}),
|
||||
}, {
|
||||
|
@ -47,6 +52,11 @@ void AreaTable_Init_SpiritTemple() {
|
|||
(logic->CanTakeDamage && (logic->CanJumpslash || logic->HasProjectile(HasProjectileAge::Child))) ||
|
||||
(logic->IsChild && logic->SmallKeys(RR_SPIRIT_TEMPLE, 5) && logic->HasProjectile(HasProjectileAge::Child)) ||
|
||||
((logic->SmallKeys(RR_SPIRIT_TEMPLE, 3) || (logic->SmallKeys(RR_SPIRIT_TEMPLE, 2) && randoCtx->GetOption(RSK_BOMBCHUS_IN_LOGIC) && randoCtx->GetOption(RSK_SHUFFLE_DUNGEON_ENTRANCES).Is(RO_DUNGEON_ENTRANCE_SHUFFLE_OFF))) && logic->CanUse(RG_SILVER_GAUNTLETS) && (logic->HasProjectile(HasProjectileAge::Adult) || (logic->CanTakeDamage && logic->CanJumpslash)));}}),
|
||||
LocationAccess(RC_SPIRIT_BEAMOS_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_BEAMOS_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_BEAMOS_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_BEAMOS_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_BEAMOS_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER, {[]{return logic->HasExplosives || (randoCtx->GetOption(RSK_SUNLIGHT_ARROWS) && logic->CanUse(RG_LIGHT_ARROWS));}}),
|
||||
|
@ -59,6 +69,11 @@ void AreaTable_Init_SpiritTemple() {
|
|||
LocationAccess(RC_SPIRIT_TEMPLE_FIRST_MIRROR_LEFT_CHEST, {[]{return logic->SmallKeys(RR_SPIRIT_TEMPLE, 3);}}),
|
||||
LocationAccess(RC_SPIRIT_TEMPLE_FIRST_MIRROR_RIGHT_CHEST, {[]{return logic->SmallKeys(RR_SPIRIT_TEMPLE, 3);}}),
|
||||
LocationAccess(RC_SPIRIT_TEMPLE_GS_BOULDER_ROOM, {[]{return logic->CanUse(RG_SONG_OF_TIME) && (logic->Bow || logic->Hookshot || logic->HasBombchus || (logic->Bombs && randoCtx->GetTrickOption(RT_SPIRIT_LOWER_ADULT_SWITCH)));}}),
|
||||
LocationAccess(RC_SPIRIT_BOULDER_SILVER_RUPEE_1, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_BOULDER_SILVER_RUPEE_2, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_BOULDER_SILVER_RUPEE_3, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_BOULDER_SILVER_RUPEE_4, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_BOULDER_SILVER_RUPEE_5, {[]{return true;}}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER, {[]{return logic->SmallKeys(RR_SPIRIT_TEMPLE, 1);}}),
|
||||
|
@ -147,6 +162,11 @@ void AreaTable_Init_SpiritTemple() {
|
|||
LocationAccess(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_FRONT_LEFT_CHEST, {[]{return true;}}),
|
||||
LocationAccess(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_LEFT_CHEST, {[]{return Here(RR_SPIRIT_TEMPLE_MQ_LOBBY, []{return logic->CanBlastOrSmash;}) && ((logic->IsChild && logic->CanUse(RG_FAIRY_SLINGSHOT)) || (logic->IsAdult && logic->CanUse(RG_FAIRY_BOW)));}}),
|
||||
LocationAccess(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BACK_RIGHT_CHEST, {[]{return logic->HasBombchus || (logic->IsAdult && (logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_HOOKSHOT))) || (logic->IsChild && (logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->CanUse(RG_BOOMERANG)));}}),
|
||||
LocationAccess(RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_1, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_2, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_3, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_4, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
LocationAccess(RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_5, {[]{ return true; }}), /*TODO: Silver Rupee Logic*/
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_SPIRIT_TEMPLE_ENTRYWAY, {[]{return true;}}),
|
||||
|
|
|
@ -661,6 +661,9 @@ static void WriteAllLocations() {
|
|||
auto ctx = Rando::Context::GetInstance();
|
||||
for (const RandomizerCheck key : ctx->allLocations) {
|
||||
Rando::ItemLocation* location = ctx->GetItemLocation(key);
|
||||
if (Rando::StaticData::GetLocation(location->GetRandomizerCheck())->GetName().empty()) {
|
||||
continue;
|
||||
}
|
||||
std::string placedItemName;
|
||||
|
||||
switch (ctx->GetOption(RSK_LANGUAGE).GetSelectedOptionIndex()) {
|
||||
|
|
|
@ -13,13 +13,19 @@ public:
|
|||
: english(std::move(english_)),
|
||||
french(std::move(french_)),
|
||||
spanish(std::move(spanish_)),
|
||||
german(std::move("")) {}
|
||||
german(std::move("")) {
|
||||
// german defaults to english text until a translation is provided.
|
||||
german = english;
|
||||
}
|
||||
Text(std::string english_, std::string french_, std::string spanish_, std::string german_)
|
||||
: english(std::move(english_)),
|
||||
french(std::move(french_)),
|
||||
spanish(std::move(spanish_)),
|
||||
german(std::move(german_)) {}
|
||||
Text(std::string english_) : english(std::move(english_)), french(std::move("")), spanish(std::move("")), german(std::move("")) {}
|
||||
Text(std::string english_) : english(std::move(english_)), french(std::move("")), spanish(std::move("")), german(std::move("")) {
|
||||
// default unprovided languages to english text
|
||||
french = spanish = german = english;
|
||||
}
|
||||
|
||||
const std::string& GetEnglish() const {
|
||||
return english;
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
#include "z_en_g_switch_rando.h"
|
||||
|
||||
void EnGSwitch_Kill(EnGSwitch* this, PlayState* play);
|
||||
|
||||
void EnGSwitch_Randomizer_SilverRupeeIdle(EnGSwitch* self, PlayState* play) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
self->actor.shape.rot.y += 0x800;
|
||||
if (self->actor.xyzDistToPlayerSq < 900.0f) {
|
||||
if (IS_RANDO && Randomizer_GetSettingValue(RSK_SHUFFLE_SILVER_RUPEES) != RO_SILVER_SHUFFLE_VANILLA) {
|
||||
player->getItemEntry = *self->giEntry;
|
||||
|
||||
if (self->giEntry->getItemId == RG_ICE_TRAP) {
|
||||
Message_StartTextbox(play, 0xF8, NULL);
|
||||
} else {
|
||||
Message_StartTextbox(play, self->giEntry->textId, NULL);
|
||||
}
|
||||
if (self->giEntry->modIndex == MOD_NONE) {
|
||||
// RANDOTOD: Move this into Item_Give() or some other more central location
|
||||
if (self->giEntry->getItemId == GI_SWORD_BGS) {
|
||||
gSaveContext.bgsFlag = true;
|
||||
}
|
||||
Item_Give(play, self->giEntry->itemId);
|
||||
} else if (self->giEntry->modIndex == MOD_RANDOMIZER && self->giEntry->getItemId != RG_ICE_TRAP) {
|
||||
Randomizer_Item_Give(play, *self->giEntry);
|
||||
}
|
||||
Flags_SetRandomizerInf(self->randInfFlag);
|
||||
// if ((!CVarGetInteger("gSkulltulaFreeze", 0) || self->giEntry->itemId != ITEM_SKULL_TOKEN) &&
|
||||
// self->giEntry->getItemId != RG_ICE_TRAP) {
|
||||
// player->actor.freezeTimer = 20;
|
||||
// }
|
||||
|
||||
// if (self->giEntry->getItemId == RG_ICE_TRAP && Message_GetState(&play->msgCtx) != TEXT_STATE_CLOSING) {
|
||||
// player->actor.freezeTimer = 10;
|
||||
// }
|
||||
|
||||
if (IS_RANDO) {
|
||||
if (self->giEntry->getItemId != RG_ICE_TRAP) {
|
||||
Audio_PlayFanfare_Rando(*self->giEntry);
|
||||
} else {
|
||||
gSaveContext.pendingIceTrapCount++;
|
||||
Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET);
|
||||
}
|
||||
} else {
|
||||
Audio_PlayFanfare(NA_BGM_SMALL_ITEM_GET);
|
||||
}
|
||||
|
||||
player->getItemEntry = (GetItemEntry)GET_ITEM_NONE;
|
||||
self->killTimer = 0;
|
||||
self->actionFunc = EnGSwitch_Kill;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnGSwitch_Randomizer_Draw(Actor* thisx, PlayState* play) {
|
||||
EnGSwitch* this = (EnGSwitch*)thisx;
|
||||
if (IS_RANDO && Randomizer_GetSettingValue(RSK_SHUFFLE_SILVER_RUPEES) != RO_SILVER_SHUFFLE_VANILLA &&
|
||||
this->type == ENGSWITCH_SILVER_RUPEE) {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
Matrix_Scale(17.5f, 17.5f, 17.5f, MTXMODE_APPLY);
|
||||
GetItemEntry_Draw(play, *this->giEntry);
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef SHIP_Z_EN_G_SWITCH_RANDO_H
|
||||
#define SHIP_Z_EN_G_SWITCH_RANDO_H
|
||||
|
||||
#include "overlays/actors/ovl_En_G_Switch/z_en_g_switch.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void EnGSwitch_Randomizer_SilverRupeeIdle(EnGSwitch *self, PlayState *play);
|
||||
void EnGSwitch_Randomizer_Draw(Actor *thisx, PlayState *play);
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif //SHIP_Z_EN_G_SWITCH_RANDO_H
|
|
@ -93,6 +93,7 @@ Context::Context() {
|
|||
mTrials = std::make_shared<Trials>();
|
||||
mSettings = std::make_shared<Settings>();
|
||||
mFishsanity = std::make_shared<Fishsanity>();
|
||||
mSilverRupees = std::make_shared<SilverRupees>();
|
||||
for (auto& location : StaticData::GetLocationTable()) {
|
||||
mSpoilerfileCheckNameToEnum[location.GetName()] = location.GetRandomizerCheck();
|
||||
}
|
||||
|
@ -581,4 +582,8 @@ Option& Context::GetOption(const RandomizerSettingKey key) const {
|
|||
TrickOption& Context::GetTrickOption(const RandomizerTrick key) const {
|
||||
return mSettings->GetTrickOption(key);
|
||||
}
|
||||
|
||||
std::shared_ptr<SilverRupees> Context::GetSilverRupees() {
|
||||
return mSilverRupees;
|
||||
}
|
||||
} // namespace Rando
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "3drando/text.hpp"
|
||||
#include "hint.h"
|
||||
#include "fishsanity.h"
|
||||
#include "silver_rupee.h"
|
||||
|
||||
#include <memory>
|
||||
#include <array>
|
||||
|
@ -68,6 +69,7 @@ class Context {
|
|||
std::shared_ptr<EntranceShuffler> GetEntranceShuffler();
|
||||
std::shared_ptr<Dungeons> GetDungeons();
|
||||
std::shared_ptr<Fishsanity> GetFishsanity();
|
||||
std::shared_ptr<SilverRupees> GetSilverRupees();
|
||||
DungeonInfo* GetDungeon(size_t key) const;
|
||||
std::shared_ptr<Logic> GetLogic();
|
||||
void ResetLogic();
|
||||
|
@ -114,6 +116,7 @@ class Context {
|
|||
std::shared_ptr<Logic> mLogic;
|
||||
std::shared_ptr<Trials> mTrials;
|
||||
std::shared_ptr<Fishsanity> mFishsanity;
|
||||
std::shared_ptr<SilverRupees> mSilverRupees;
|
||||
bool mSeedGenerated = false;
|
||||
bool mSpoilerLoaded = false;
|
||||
bool mPlandoLoaded = false;
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "objects/object_gi_fire/object_gi_fire.h"
|
||||
#include "objects/object_fish/object_fish.h"
|
||||
#include "objects/object_toki_objects/object_toki_objects.h"
|
||||
#include "objects/object_gi_rupy/object_gi_rupy.h"
|
||||
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||
#include "soh_assets.h"
|
||||
#include "soh/Enhancements/cosmetics/cosmeticsTypes.h"
|
||||
|
@ -518,5 +519,25 @@ extern "C" void Randomizer_DrawFishingPoleGI(PlayState* play, GetItemEntry* getI
|
|||
|
||||
Matrix_Pop();
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
extern "C" void Randomizer_DrawSilverRupee(PlayState* play, GetItemEntry* getItemEntry) {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
Color_RGB8 silverRupeeColor =
|
||||
CVarGetColor24("gCosmetics.Consumable_SilverRupee.Value", Color_RGB8({ 255, 255, 255 }));
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0x80, silverRupeeColor.r, silverRupeeColor.g, silverRupeeColor.b, 255);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, silverRupeeColor.r / 5, silverRupeeColor.g / 5, silverRupeeColor.b / 5, 255);
|
||||
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gGiRupeeInnerDL);
|
||||
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
||||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
|
||||
G_MTX_MODELVIEW | G_MTX_LOAD);
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, 255);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, silverRupeeColor.r * 0.75f, silverRupeeColor.g * 0.75f, silverRupeeColor.b * 0.75f,
|
||||
255);
|
||||
gSPDisplayList(POLY_XLU_DISP++, (Gfx*)gGiRupeeOuterDL);
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
|
@ -21,6 +21,7 @@ void Randomizer_DrawTriforcePieceGI(PlayState* play, GetItemEntry getItemEntry);
|
|||
void Randomizer_DrawOcarinaButton(PlayState* play, GetItemEntry* getItemEntry);
|
||||
void Randomizer_DrawBronzeScale(PlayState* play, GetItemEntry* getItemEntry);
|
||||
void Randomizer_DrawFishingPoleGI(PlayState* play, GetItemEntry* getItemEntry);
|
||||
void Randomizer_DrawSilverRupee(PlayState* play, GetItemEntry* getItemEntry);
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -6,12 +6,15 @@
|
|||
|
||||
namespace Rando {
|
||||
DungeonInfo::DungeonInfo(std::string name_, const RandomizerHintTextKey hintKey_, const RandomizerGet map_,
|
||||
const RandomizerGet compass_, const RandomizerGet smallKey_, const RandomizerGet keyRing_,
|
||||
const RandomizerGet bossKey_, RandomizerArea area_, const uint8_t vanillaKeyCount_, const uint8_t mqKeyCount_,
|
||||
std::vector<RandomizerCheck> vanillaLocations_, std::vector<RandomizerCheck> mqLocations_,
|
||||
std::vector<RandomizerCheck> sharedLocations_, std::vector<RandomizerCheck> bossRoomLocations_)
|
||||
const RandomizerGet compass_, const RandomizerGet smallKey_, const RandomizerGet keyRing_,
|
||||
const RandomizerGet bossKey_, std::unordered_set<RandomizerGet> vanillaSilverRupees_,
|
||||
std::unordered_set<RandomizerGet> mqSilverRupees_, RandomizerArea area_,
|
||||
const uint8_t vanillaKeyCount_, const uint8_t mqKeyCount_,
|
||||
std::vector<RandomizerCheck> vanillaLocations_, std::vector<RandomizerCheck> mqLocations_,
|
||||
std::vector<RandomizerCheck> sharedLocations_, std::vector<RandomizerCheck> bossRoomLocations_)
|
||||
: name(std::move(name_)), hintKey(hintKey_), map(map_), compass(compass_), smallKey(smallKey_), keyRing(keyRing_),
|
||||
bossKey(bossKey_), area(area_), vanillaKeyCount(vanillaKeyCount_), mqKeyCount(mqKeyCount_),
|
||||
bossKey(bossKey_), vanillaSilverRupees(std::move(vanillaSilverRupees_)), mqSilverRupees(std::move(mqSilverRupees_)),
|
||||
area(area_), vanillaKeyCount(vanillaKeyCount_), mqKeyCount(mqKeyCount_),
|
||||
vanillaLocations(std::move(vanillaLocations_)), mqLocations(std::move(mqLocations_)),
|
||||
sharedLocations(std::move(sharedLocations_)), bossRoomLocations(std::move(bossRoomLocations_)) {
|
||||
}
|
||||
|
@ -51,6 +54,20 @@ bool DungeonInfo::IsVanilla() const {
|
|||
return !masterQuest;
|
||||
}
|
||||
|
||||
bool DungeonInfo::ContainsSilverRupee(RandomizerGet rg) const {
|
||||
if (masterQuest) {
|
||||
return mqSilverRupees.contains(rg);
|
||||
}
|
||||
return vanillaSilverRupees.contains(rg);
|
||||
}
|
||||
|
||||
bool DungeonInfo::HasSilverRupees() const {
|
||||
if (masterQuest) {
|
||||
return !mqSilverRupees.empty();
|
||||
}
|
||||
return !vanillaSilverRupees.empty();
|
||||
}
|
||||
|
||||
uint8_t DungeonInfo::GetSmallKeyCount() const {
|
||||
return masterQuest ? mqKeyCount : vanillaKeyCount;
|
||||
}
|
||||
|
@ -152,7 +169,7 @@ std::vector<RandomizerCheck> DungeonInfo::GetEveryLocation() const {
|
|||
|
||||
Dungeons::Dungeons() {
|
||||
dungeonList[DEKU_TREE] =
|
||||
DungeonInfo("Deku Tree", RHT_DEKU_TREE, RG_DEKU_TREE_MAP, RG_DEKU_TREE_COMPASS, RG_NONE, RG_NONE, RG_NONE, RA_DEKU_TREE, 0, 0,
|
||||
DungeonInfo("Deku Tree", RHT_DEKU_TREE, RG_DEKU_TREE_MAP, RG_DEKU_TREE_COMPASS, RG_NONE, RG_NONE, RG_NONE, {}, {}, RA_DEKU_TREE, 0, 0,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_DEKU_TREE_MAP_CHEST,
|
||||
|
@ -188,7 +205,7 @@ Dungeons::Dungeons() {
|
|||
RC_QUEEN_GOHMA,
|
||||
});
|
||||
dungeonList[DODONGOS_CAVERN] = DungeonInfo("Dodongo's Cavern", RHT_DODONGOS_CAVERN, RG_DODONGOS_CAVERN_MAP,
|
||||
RG_DODONGOS_CAVERN_COMPASS, RG_NONE, RG_NONE, RG_NONE, RA_DODONGOS_CAVERN, 0, 0,
|
||||
RG_DODONGOS_CAVERN_COMPASS, RG_NONE, RG_NONE, RG_NONE, {}, {RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE}, RA_DODONGOS_CAVERN, 0, 0,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_DODONGOS_CAVERN_MAP_CHEST,
|
||||
|
@ -223,6 +240,11 @@ Dungeons::Dungeons() {
|
|||
RC_DODONGOS_CAVERN_MQ_GS_LIZALFOS_ROOM,
|
||||
RC_DODONGOS_CAVERN_MQ_GS_LARVAE_ROOM,
|
||||
RC_DODONGOS_CAVERN_MQ_GS_BACK_AREA,
|
||||
RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_1,
|
||||
RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_2,
|
||||
RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_3,
|
||||
RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_4,
|
||||
RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_5,
|
||||
},
|
||||
{},
|
||||
{
|
||||
|
@ -232,7 +254,7 @@ Dungeons::Dungeons() {
|
|||
RC_KING_DODONGO,
|
||||
});
|
||||
dungeonList[JABU_JABUS_BELLY] = DungeonInfo("Jabu Jabu's Belly", RHT_JABU_JABUS_BELLY, RG_JABU_JABUS_BELLY_MAP,
|
||||
RG_JABU_JABUS_BELLY_COMPASS, RG_NONE, RG_NONE, RG_NONE, RA_JABU_JABUS_BELLY, 0, 0,
|
||||
RG_JABU_JABUS_BELLY_COMPASS, RG_NONE, RG_NONE, RG_NONE, {}, {}, RA_JABU_JABUS_BELLY, 0, 0,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_JABU_JABUS_BELLY_MAP_CHEST,
|
||||
|
@ -271,7 +293,7 @@ Dungeons::Dungeons() {
|
|||
});
|
||||
dungeonList[FOREST_TEMPLE] =
|
||||
DungeonInfo("Forest Temple", RHT_FOREST_TEMPLE, RG_FOREST_TEMPLE_MAP, RG_FOREST_TEMPLE_COMPASS,
|
||||
RG_FOREST_TEMPLE_SMALL_KEY, RG_FOREST_TEMPLE_KEY_RING, RG_FOREST_TEMPLE_BOSS_KEY, RA_FOREST_TEMPLE, 5, 6,
|
||||
RG_FOREST_TEMPLE_SMALL_KEY, RG_FOREST_TEMPLE_KEY_RING, RG_FOREST_TEMPLE_BOSS_KEY, {}, {}, RA_FOREST_TEMPLE, 5, 6,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_FOREST_TEMPLE_FIRST_ROOM_CHEST,
|
||||
|
@ -321,7 +343,7 @@ Dungeons::Dungeons() {
|
|||
});
|
||||
dungeonList[FIRE_TEMPLE] =
|
||||
DungeonInfo("Fire Temple", RHT_FIRE_TEMPLE, RG_FIRE_TEMPLE_MAP, RG_FIRE_TEMPLE_COMPASS,
|
||||
RG_FIRE_TEMPLE_SMALL_KEY, RG_FIRE_TEMPLE_KEY_RING, RG_FIRE_TEMPLE_BOSS_KEY, RA_FIRE_TEMPLE, 8, 5,
|
||||
RG_FIRE_TEMPLE_SMALL_KEY, RG_FIRE_TEMPLE_KEY_RING, RG_FIRE_TEMPLE_BOSS_KEY, {}, {}, RA_FIRE_TEMPLE, 8, 5,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_FIRE_TEMPLE_NEAR_BOSS_CHEST,
|
||||
|
@ -372,7 +394,7 @@ Dungeons::Dungeons() {
|
|||
});
|
||||
dungeonList[WATER_TEMPLE] =
|
||||
DungeonInfo("Water Temple", RHT_WATER_TEMPLE, RG_WATER_TEMPLE_MAP, RG_WATER_TEMPLE_COMPASS,
|
||||
RG_WATER_TEMPLE_SMALL_KEY, RG_WATER_TEMPLE_KEY_RING, RG_WATER_TEMPLE_BOSS_KEY, RA_WATER_TEMPLE, 6, 2,
|
||||
RG_WATER_TEMPLE_SMALL_KEY, RG_WATER_TEMPLE_KEY_RING, RG_WATER_TEMPLE_BOSS_KEY, {}, {}, RA_WATER_TEMPLE, 6, 2,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_WATER_TEMPLE_MAP_CHEST,
|
||||
|
@ -413,7 +435,13 @@ Dungeons::Dungeons() {
|
|||
});
|
||||
dungeonList[SPIRIT_TEMPLE] =
|
||||
DungeonInfo("Spirit Temple", RHT_SPIRIT_TEMPLE, RG_SPIRIT_TEMPLE_MAP, RG_SPIRIT_TEMPLE_COMPASS,
|
||||
RG_SPIRIT_TEMPLE_SMALL_KEY, RG_SPIRIT_TEMPLE_KEY_RING, RG_SPIRIT_TEMPLE_BOSS_KEY, RA_SPIRIT_TEMPLE, 5, 7,
|
||||
RG_SPIRIT_TEMPLE_SMALL_KEY, RG_SPIRIT_TEMPLE_KEY_RING, RG_SPIRIT_TEMPLE_BOSS_KEY, {
|
||||
RG_SPIRIT_BEAMOS_SILVER_RUPEE,
|
||||
RG_SPIRIT_BOULDER_SILVER_RUPEE,
|
||||
RG_SPIRIT_GATE_SILVER_RUPEE,
|
||||
}, {
|
||||
RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE,
|
||||
}, RA_SPIRIT_TEMPLE, 5, 7,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST,
|
||||
|
@ -438,6 +466,21 @@ Dungeons::Dungeons() {
|
|||
RC_SPIRIT_TEMPLE_GS_LOBBY,
|
||||
RC_SPIRIT_TEMPLE_GS_SUN_ON_FLOOR_ROOM,
|
||||
RC_SPIRIT_TEMPLE_GS_METAL_FENCE,
|
||||
RC_SPIRIT_GATE_SILVER_RUPEE_1,
|
||||
RC_SPIRIT_GATE_SILVER_RUPEE_2,
|
||||
RC_SPIRIT_GATE_SILVER_RUPEE_3,
|
||||
RC_SPIRIT_GATE_SILVER_RUPEE_4,
|
||||
RC_SPIRIT_GATE_SILVER_RUPEE_5,
|
||||
RC_SPIRIT_BEAMOS_SILVER_RUPEE_1,
|
||||
RC_SPIRIT_BEAMOS_SILVER_RUPEE_2,
|
||||
RC_SPIRIT_BEAMOS_SILVER_RUPEE_3,
|
||||
RC_SPIRIT_BEAMOS_SILVER_RUPEE_4,
|
||||
RC_SPIRIT_BEAMOS_SILVER_RUPEE_5,
|
||||
RC_SPIRIT_BOULDER_SILVER_RUPEE_1,
|
||||
RC_SPIRIT_BOULDER_SILVER_RUPEE_2,
|
||||
RC_SPIRIT_BOULDER_SILVER_RUPEE_3,
|
||||
RC_SPIRIT_BOULDER_SILVER_RUPEE_4,
|
||||
RC_SPIRIT_BOULDER_SILVER_RUPEE_5,
|
||||
},
|
||||
{
|
||||
// MQ Locations
|
||||
|
@ -466,6 +509,11 @@ Dungeons::Dungeons() {
|
|||
RC_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_WEST,
|
||||
RC_SPIRIT_TEMPLE_MQ_GS_NINE_THRONES_ROOM_NORTH,
|
||||
RC_SPIRIT_TEMPLE_MQ_GS_SUN_BLOCK_ROOM,
|
||||
RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_1,
|
||||
RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_2,
|
||||
RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_3,
|
||||
RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_4,
|
||||
RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_5,
|
||||
},
|
||||
{
|
||||
// Shared Locations
|
||||
|
@ -479,7 +527,16 @@ Dungeons::Dungeons() {
|
|||
});
|
||||
dungeonList[SHADOW_TEMPLE] =
|
||||
DungeonInfo("Shadow Temple", RHT_SHADOW_TEMPLE, RG_SHADOW_TEMPLE_MAP, RG_SHADOW_TEMPLE_COMPASS,
|
||||
RG_SHADOW_TEMPLE_SMALL_KEY, RG_SHADOW_TEMPLE_KEY_RING, RG_SHADOW_TEMPLE_BOSS_KEY, RA_SHADOW_TEMPLE, 5, 6,
|
||||
RG_SHADOW_TEMPLE_SMALL_KEY, RG_SHADOW_TEMPLE_KEY_RING, RG_SHADOW_TEMPLE_BOSS_KEY, {
|
||||
RG_SHADOW_SCYTHE_SILVER_RUPEE,
|
||||
RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE,
|
||||
RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE,
|
||||
}, {
|
||||
RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE,
|
||||
RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE,
|
||||
RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE,
|
||||
RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE,
|
||||
}, RA_SHADOW_TEMPLE, 5, 6,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_SHADOW_TEMPLE_MAP_CHEST,
|
||||
|
@ -504,6 +561,21 @@ Dungeons::Dungeons() {
|
|||
RC_SHADOW_TEMPLE_GS_TRIPLE_GIANT_POT,
|
||||
RC_SHADOW_TEMPLE_GS_LIKE_LIKE_ROOM,
|
||||
RC_SHADOW_TEMPLE_GS_NEAR_SHIP,
|
||||
RC_SHADOW_SCYTHE_SILVER_RUPEE_1,
|
||||
RC_SHADOW_SCYTHE_SILVER_RUPEE_2,
|
||||
RC_SHADOW_SCYTHE_SILVER_RUPEE_3,
|
||||
RC_SHADOW_SCYTHE_SILVER_RUPEE_4,
|
||||
RC_SHADOW_SCYTHE_SILVER_RUPEE_5,
|
||||
RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1,
|
||||
RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2,
|
||||
RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3,
|
||||
RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4,
|
||||
RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5,
|
||||
RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_1,
|
||||
RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_2,
|
||||
RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_3,
|
||||
RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_4,
|
||||
RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_5,
|
||||
},
|
||||
{
|
||||
// MQ Locations
|
||||
|
@ -532,6 +604,36 @@ Dungeons::Dungeons() {
|
|||
RC_SHADOW_TEMPLE_MQ_GS_AFTER_WIND,
|
||||
RC_SHADOW_TEMPLE_MQ_GS_AFTER_SHIP,
|
||||
RC_SHADOW_TEMPLE_MQ_GS_NEAR_BOSS,
|
||||
RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_1,
|
||||
RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_2,
|
||||
RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_3,
|
||||
RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_4,
|
||||
RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_5,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_1,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_2,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_3,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_4,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_5,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_6,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_7,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_8,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_9,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_10,
|
||||
RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1,
|
||||
RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2,
|
||||
RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3,
|
||||
RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4,
|
||||
RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_1,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_2,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_3,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_4,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_5,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_6,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_7,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_8,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_9,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_10,
|
||||
},
|
||||
{},
|
||||
{
|
||||
|
@ -541,7 +643,9 @@ Dungeons::Dungeons() {
|
|||
});
|
||||
dungeonList[BOTTOM_OF_THE_WELL] = DungeonInfo(
|
||||
"Bottom of the Well", RHT_BOTTOM_OF_THE_WELL, RG_BOTTOM_OF_THE_WELL_MAP, RG_BOTTOM_OF_THE_WELL_COMPASS,
|
||||
RG_BOTTOM_OF_THE_WELL_SMALL_KEY, RG_BOTTOM_OF_THE_WELL_KEY_RING, RG_NONE, RA_BOTTOM_OF_THE_WELL, 3, 2,
|
||||
RG_BOTTOM_OF_THE_WELL_SMALL_KEY, RG_BOTTOM_OF_THE_WELL_KEY_RING, RG_NONE, {
|
||||
RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE,
|
||||
}, {}, RA_BOTTOM_OF_THE_WELL, 3, 2,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_BOTTOM_OF_THE_WELL_FRONT_LEFT_FAKE_WALL_CHEST,
|
||||
|
@ -561,6 +665,11 @@ Dungeons::Dungeons() {
|
|||
RC_BOTTOM_OF_THE_WELL_GS_LIKE_LIKE_CAGE,
|
||||
RC_BOTTOM_OF_THE_WELL_GS_EAST_INNER_ROOM,
|
||||
RC_BOTTOM_OF_THE_WELL_GS_WEST_INNER_ROOM,
|
||||
RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1,
|
||||
RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_2,
|
||||
RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_3,
|
||||
RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_4,
|
||||
RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_5,
|
||||
},
|
||||
{
|
||||
// MQ Locations
|
||||
|
@ -575,7 +684,10 @@ Dungeons::Dungeons() {
|
|||
},
|
||||
{}, {});
|
||||
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,
|
||||
RG_NONE, RG_NONE, RG_NONE,{
|
||||
RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE,
|
||||
RG_ICE_CAVERN_SLIDING_SILVER_RUPEE,
|
||||
}, {}, RA_ICE_CAVERN, 0, 0,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_ICE_CAVERN_MAP_CHEST,
|
||||
|
@ -585,6 +697,16 @@ Dungeons::Dungeons() {
|
|||
RC_ICE_CAVERN_GS_PUSH_BLOCK_ROOM,
|
||||
RC_ICE_CAVERN_GS_SPINNING_SCYTHE_ROOM,
|
||||
RC_ICE_CAVERN_GS_HEART_PIECE_ROOM,
|
||||
RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_1,
|
||||
RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_2,
|
||||
RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_3,
|
||||
RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_4,
|
||||
RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_5,
|
||||
RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_1,
|
||||
RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_2,
|
||||
RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_3,
|
||||
RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_4,
|
||||
RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_5,
|
||||
},
|
||||
{
|
||||
// MQ Locations
|
||||
|
@ -603,7 +725,15 @@ Dungeons::Dungeons() {
|
|||
{});
|
||||
dungeonList[GERUDO_TRAINING_GROUNDS] =
|
||||
DungeonInfo("Gerudo Training Grounds", RHT_GERUDO_TRAINING_GROUND, RG_NONE, RG_NONE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_SMALL_KEY, RG_GERUDO_TRAINING_GROUNDS_KEY_RING, RG_NONE, RA_GERUDO_TRAINING_GROUND, 9, 3,
|
||||
RG_GERUDO_TRAINING_GROUNDS_SMALL_KEY, RG_GERUDO_TRAINING_GROUNDS_KEY_RING, RG_NONE, {
|
||||
RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE,
|
||||
}, {
|
||||
RG_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE,
|
||||
}, RA_GERUDO_TRAINING_GROUND, 9, 3,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_GERUDO_TRAINING_GROUND_LOBBY_LEFT_CHEST,
|
||||
|
@ -628,6 +758,21 @@ Dungeons::Dungeons() {
|
|||
RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_THIRD_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUND_HEAVY_BLOCK_FOURTH_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUND_FREESTANDING_KEY,
|
||||
RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3,
|
||||
RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4,
|
||||
RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5,
|
||||
RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3,
|
||||
RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4,
|
||||
RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5,
|
||||
RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3,
|
||||
RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_4,
|
||||
RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_5,
|
||||
},
|
||||
{
|
||||
// MQ Locations
|
||||
|
@ -648,20 +793,58 @@ Dungeons::Dungeons() {
|
|||
RC_GERUDO_TRAINING_GROUND_MQ_HIDDEN_CEILING_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUND_MQ_UNDERWATER_SILVER_RUPEE_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUND_MQ_HEAVY_BLOCK_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_3,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_4,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_5,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_3,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_4,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_5,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_6,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_3,
|
||||
},
|
||||
{}, {});
|
||||
dungeonList[GANONS_CASTLE] =
|
||||
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,
|
||||
RG_GANONS_CASTLE_KEY_RING, RG_GANONS_CASTLE_BOSS_KEY, {
|
||||
RG_FOREST_TRIAL_SILVER_RUPEE,
|
||||
RG_FIRE_TRIAL_SILVER_RUPEE,
|
||||
RG_SPIRIT_TRIAL_SILVER_RUPEE,
|
||||
RG_LIGHT_TRIAL_SILVER_RUPEE,
|
||||
}, {
|
||||
RG_FIRE_TRIAL_MQ_SILVER_RUPEE,
|
||||
RG_WATER_TRIAL_MQ_SILVER_RUPEE,
|
||||
RG_SHADOW_TRIAL_MQ_SILVER_RUPEE,
|
||||
}, RA_GANONS_CASTLE, 2, 3,
|
||||
{
|
||||
// Vanilla Locations
|
||||
RC_GANONS_CASTLE_FOREST_TRIAL_CHEST,
|
||||
RC_FOREST_TRIAL_SILVER_RUPEE_1,
|
||||
RC_FOREST_TRIAL_SILVER_RUPEE_2,
|
||||
RC_FOREST_TRIAL_SILVER_RUPEE_3,
|
||||
RC_FOREST_TRIAL_SILVER_RUPEE_4,
|
||||
RC_FOREST_TRIAL_SILVER_RUPEE_5,
|
||||
RC_FIRE_TRIAL_SILVER_RUPEE_1,
|
||||
RC_FIRE_TRIAL_SILVER_RUPEE_2,
|
||||
RC_FIRE_TRIAL_SILVER_RUPEE_3,
|
||||
RC_FIRE_TRIAL_SILVER_RUPEE_4,
|
||||
RC_FIRE_TRIAL_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST,
|
||||
RC_GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST,
|
||||
RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST,
|
||||
RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST,
|
||||
RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST,
|
||||
RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST,
|
||||
RC_SPIRIT_TRIAL_SILVER_RUPEE_1,
|
||||
RC_SPIRIT_TRIAL_SILVER_RUPEE_2,
|
||||
RC_SPIRIT_TRIAL_SILVER_RUPEE_3,
|
||||
RC_SPIRIT_TRIAL_SILVER_RUPEE_4,
|
||||
RC_SPIRIT_TRIAL_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_LIGHT_TRIAL_FIRST_LEFT_CHEST,
|
||||
RC_GANONS_CASTLE_LIGHT_TRIAL_SECOND_LEFT_CHEST,
|
||||
RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_LEFT_CHEST,
|
||||
|
@ -670,6 +853,11 @@ Dungeons::Dungeons() {
|
|||
RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST,
|
||||
RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST,
|
||||
RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST,
|
||||
RC_LIGHT_TRIAL_SILVER_RUPEE_1,
|
||||
RC_LIGHT_TRIAL_SILVER_RUPEE_2,
|
||||
RC_LIGHT_TRIAL_SILVER_RUPEE_3,
|
||||
RC_LIGHT_TRIAL_SILVER_RUPEE_4,
|
||||
RC_LIGHT_TRIAL_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_DEKU_SCRUB_LEFT,
|
||||
RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT,
|
||||
RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT,
|
||||
|
@ -678,11 +866,26 @@ Dungeons::Dungeons() {
|
|||
{
|
||||
// MQ Locations
|
||||
RC_GANONS_CASTLE_MQ_WATER_TRIAL_CHEST,
|
||||
RC_WATER_TRIAL_MQ_SILVER_RUPEE_1,
|
||||
RC_WATER_TRIAL_MQ_SILVER_RUPEE_2,
|
||||
RC_WATER_TRIAL_MQ_SILVER_RUPEE_3,
|
||||
RC_WATER_TRIAL_MQ_SILVER_RUPEE_4,
|
||||
RC_WATER_TRIAL_MQ_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_EYE_SWITCH_CHEST,
|
||||
RC_FIRE_TRIAL_MQ_SILVER_RUPEE_1,
|
||||
RC_FIRE_TRIAL_MQ_SILVER_RUPEE_2,
|
||||
RC_FIRE_TRIAL_MQ_SILVER_RUPEE_3,
|
||||
RC_FIRE_TRIAL_MQ_SILVER_RUPEE_4,
|
||||
RC_FIRE_TRIAL_MQ_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FROZEN_EYE_SWITCH_CHEST,
|
||||
RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_LULLABY_CHEST,
|
||||
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST,
|
||||
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_EYE_SWITCH_CHEST,
|
||||
RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_1,
|
||||
RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_2,
|
||||
RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_3,
|
||||
RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_4,
|
||||
RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_GOLDEN_GAUNTLETS_CHEST,
|
||||
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_RIGHT_CHEST,
|
||||
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_SUN_BACK_LEFT_CHEST,
|
||||
|
|
|
@ -6,15 +6,17 @@
|
|||
#include <vector>
|
||||
#include <string>
|
||||
#include "nlohmann/json.hpp"
|
||||
#include <unordered_set>
|
||||
|
||||
namespace Rando {
|
||||
class DungeonInfo {
|
||||
public:
|
||||
DungeonInfo(std::string name_, RandomizerHintTextKey hintKey_, RandomizerGet map_, RandomizerGet compass_,
|
||||
RandomizerGet smallKey_, RandomizerGet keyRing_, RandomizerGet bossKey_, RandomizerArea area_,
|
||||
uint8_t vanillaKeyCount_, uint8_t mqKeyCount_, std::vector<RandomizerCheck> vanillaLocations_,
|
||||
std::vector<RandomizerCheck> mqLocations_, std::vector<RandomizerCheck> sharedLocations_,
|
||||
std::vector<RandomizerCheck> bossRoomLocations_);
|
||||
RandomizerGet smallKey_, RandomizerGet keyRing_, RandomizerGet bossKey_,
|
||||
std::unordered_set<RandomizerGet> vanillaSilverRupees_, std::unordered_set<RandomizerGet> mqSilverRupees_,
|
||||
RandomizerArea area_, uint8_t vanillaKeyCount_, uint8_t mqKeyCount_,
|
||||
std::vector<RandomizerCheck> vanillaLocations_, std::vector<RandomizerCheck> mqLocations_,
|
||||
std::vector<RandomizerCheck> sharedLocations_, std::vector<RandomizerCheck> bossRoomLocations_);
|
||||
DungeonInfo();
|
||||
~DungeonInfo();
|
||||
|
||||
|
@ -26,6 +28,8 @@ class DungeonInfo {
|
|||
void ClearKeyRing();
|
||||
bool HasKeyRing() const;
|
||||
bool IsVanilla() const;
|
||||
bool ContainsSilverRupee(RandomizerGet rg) const;
|
||||
bool HasSilverRupees() const;
|
||||
uint8_t GetSmallKeyCount() const;
|
||||
RandomizerHintTextKey GetHintKey() const;
|
||||
RandomizerArea GetArea() const;
|
||||
|
@ -50,6 +54,8 @@ class DungeonInfo {
|
|||
RandomizerGet smallKey;
|
||||
RandomizerGet keyRing;
|
||||
RandomizerGet bossKey;
|
||||
std::unordered_set<RandomizerGet> vanillaSilverRupees;
|
||||
std::unordered_set<RandomizerGet> mqSilverRupees;
|
||||
uint8_t vanillaKeyCount{};
|
||||
uint8_t mqKeyCount{};
|
||||
bool masterQuest = false;
|
||||
|
|
|
@ -15,6 +15,7 @@ enum ItemType {
|
|||
ITEMTYPE_COMPASS,
|
||||
ITEMTYPE_BOSSKEY,
|
||||
ITEMTYPE_SMALLKEY,
|
||||
ITEMTYPE_SILVERRUPEE,
|
||||
ITEMTYPE_TOKEN,
|
||||
ITEMTYPE_FORTRESS_SMALLKEY,
|
||||
ITEMTYPE_EVENT,
|
||||
|
|
|
@ -290,6 +290,66 @@ void Rando::StaticData::InitItemTable() {
|
|||
|
||||
itemTable[RG_TRIFORCE] = Item(RG_TRIFORCE, Text{ "Triforce", "Triforce", "Triforce" }, ITEMTYPE_EVENT, RG_TRIFORCE, false, &logic->noVariable, RHT_NONE);
|
||||
itemTable[RG_HINT] = Item(RG_HINT, Text{ "Hint", "Indice", "Hinweis" }, ITEMTYPE_EVENT, RG_HINT, false, &logic->noVariable, RHT_NONE);
|
||||
|
||||
itemTable[RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE] = Item(RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, Text{ "Ice Cavern Spinning Blades Room Silver Rupee", "Ice Cavern Spinning Blades Room Silver Rupee", "Ice Cavern Spinning Blades Room Silver Rupee" }, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_ICE_CAVERN_SILVER_RUPEE, RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_ICE_CAVERN_SLIDING_SILVER_RUPEE] = Item(RG_ICE_CAVERN_SLIDING_SILVER_RUPEE, Text{ "Ice Cavern Block Sliding Room Silver Rupee", "Ice Cavern Block Sliding Room Silver Rupee", "Ice Cavern Block Sliding Room Silver Rupee" }, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_ICE_CAVERN_SILVER_RUPEE, RG_ICE_CAVERN_SLIDING_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_ICE_CAVERN_SLIDING_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE] = Item(RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE, Text{ "BotW Silver Rupee", "BotW Silver Rupee", "BotW Silver Rupee" }, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_BOTTOM_OF_THE_WELL_SILVER_RUPEE, RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE] = Item(RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, Text{ "GTG Boudler Maze Silver Rupee", "GTG Boulder Maze Silver Rupee", "GTG Boulder Maze Silver Rupee" }, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE] = Item(RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, Text{ "GTG Lava Room Silver Rupee", "GTG Lava Room Silver Rupee", "GTG Lava Room Silver Rupee" }, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE] = Item(RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, Text{ "GTG Toilet Room Silver Rupee", "GTG Whirlpool Room Silver Rupee", "GTG Whirlpool Room Silver Rupee" }, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SPIRIT_GATE_SILVER_RUPEE] = Item(RG_SPIRIT_GATE_SILVER_RUPEE, Text{ "Spirit Temple Child Gate Room Silver Rupee", "Spirit Temple Child Gate Room Silver Rupee", "Spirit Temple Child Gate Room Silver Rupee" }, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SPIRIT_TEMPLE_SILVER_RUPEE, RG_SPIRIT_GATE_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SPIRIT_GATE_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SPIRIT_BEAMOS_SILVER_RUPEE] = Item(RG_SPIRIT_BEAMOS_SILVER_RUPEE, Text{ "Spirit Temple Child Block Pushing Room Silver Rupee", "Spirit Temple Child Block Pushing Room Silver Rupee", "Spirit Temple Child Block Pushing Room Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SPIRIT_TEMPLE_SILVER_RUPEE, RG_SPIRIT_BEAMOS_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SPIRIT_BEAMOS_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SPIRIT_BOULDER_SILVER_RUPEE] = Item(RG_SPIRIT_BOULDER_SILVER_RUPEE, Text{ "Spirit Temple Boulder Room Silver Rupee", "Spirit Temple Boulder Room Silver Rupee", "Spirit Temple Boulder Room Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SPIRIT_TEMPLE_SILVER_RUPEE, RG_SPIRIT_BOULDER_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SPIRIT_BOULDER_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SHADOW_SCYTHE_SILVER_RUPEE] = Item(RG_SHADOW_SCYTHE_SILVER_RUPEE, Text{ "Shadow Temple Scythe Room Silver Rupee", "Shadow Temple Scythe Room Silver Rupee", "Shadow Temple Scythe Room Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_SCYTHE_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SHADOW_SCYTHE_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE] = Item(RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, Text{ "Shadow Temple Outside Falling Spikes Room Silver Rupee", "Shadow Temple Outside Falling Spikes Room Silver Rupee", "Shadow Temple Outside Falling Spikes Room Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE] = Item(RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, Text{ "Shadow Temple Invisible Spikes Room Silver Rupee", "Shadow Temple Invisible Spikes Room Silver Rupee", "Shadow Temple Invisible Spikes Room Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_FOREST_TRIAL_SILVER_RUPEE] = Item(RG_FOREST_TRIAL_SILVER_RUPEE, Text{ "Forest Trial Silver Rupee", "Forest Trial Silver Rupee", "Forest Trial Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GANONS_CASTLE_SILVER_RUPEE, RG_FOREST_TRIAL_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_FOREST_TRIAL_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_FIRE_TRIAL_SILVER_RUPEE] = Item(RG_FIRE_TRIAL_SILVER_RUPEE, Text{ "Fire Trial Silver Rupee", "Fire Trial Silver Rupee", "Fire Trial Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GANONS_CASTLE_SILVER_RUPEE, RG_FIRE_TRIAL_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_FIRE_TRIAL_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SPIRIT_TRIAL_SILVER_RUPEE] = Item(RG_SPIRIT_TRIAL_SILVER_RUPEE, Text{ "Spirit Trial Silver Rupee", "Spirit Trial Silver Rupee", "Spirit Trial Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GANONS_CASTLE_SILVER_RUPEE, RG_SPIRIT_TRIAL_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SPIRIT_TRIAL_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_LIGHT_TRIAL_SILVER_RUPEE] = Item(RG_LIGHT_TRIAL_SILVER_RUPEE, Text{ "Light Trial Silver Rupee", "Light Trial Silver Rupee", "Light Trial Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GANONS_CASTLE_SILVER_RUPEE, RG_LIGHT_TRIAL_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_LIGHT_TRIAL_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE] = Item(RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE, Text{ "Dodongo's Cavern Silver Rupee", "Dodongo's Cavern Silver Rupee", "Dodongo's Cavern Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_DODONGOS_CAVERN_SILVER_RUPEE, RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE] = Item(RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE, Text{ "Shadow Temple MQ Spinning Scythes Silver Rupee", "Shadow Temple MQ Spinning Scythes Silver Rupee", "Shadow Temple MQ Spinning Scythes Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE] = Item(RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, Text{ "Shadow Temple MQ Invisible Scythes Silver Rupee", "Shadow Temple MQ Invisible Scythes Silver Rupee", "Shadow Temple MQ Invisible Scythes Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE] = Item(RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, Text{ "Shadow Temple MQ Outside Falling Spikes Silver Rupee", "Shadow Temple MQ Outside Falling Spikes Silver Rupee", "Shadow Temple MQ Outside Falling Spikes Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE] = Item(RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, Text{ "Shadow Temple MQ Invisible Spike Room Silver Rupee", "Shadow Temple MQ Invisible Spike Room Silver Rupee", "Shadow Temple MQ Invisible Spike Room Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE] = Item(RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE, Text{ "Spirit Temple MQ Lobby Silver Rupee", "Spirit Temple MQ Lobby Silver Rupee", "Spirit Temple MQ Lobby Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_SPIRIT_TEMPLE_SILVER_RUPEE, RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE] = Item(RG_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE, Text{ "Gerudo Training Grounds MQ Boulder Maze Silver Rupee", "Gerudo Training Grounds MQ Boulder Maze Silver Rupee", "Gerudo Training Grounds MQ Boulder Maze Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE] = Item(RG_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE, Text{ "Gerudo Training Grounds MQ Lava Room Silver Rupee", "Gerudo Training Grounds MQ Lava Room Silver Rupee", "Gerudo Training Grounds MQ Lava Room Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE] = Item(RG_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE, Text{ "Gerudo Training Grounds MQ Whirlpool Room Silver Rupee", "Gerudo Training Grounds MQ Whirlpool Room Silver Rupee", "Gerudo Training Grounds MQ Whirlpool Room Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_FIRE_TRIAL_MQ_SILVER_RUPEE] = Item(RG_FIRE_TRIAL_MQ_SILVER_RUPEE, Text{ "Fire Trial MQ Silver Rupee", "Fire Trial MQ Silver Rupee", "Fire Trial MQ Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GANONS_CASTLE_SILVER_RUPEE, RG_FIRE_TRIAL_MQ_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_FIRE_TRIAL_MQ_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_WATER_TRIAL_MQ_SILVER_RUPEE] = Item(RG_WATER_TRIAL_MQ_SILVER_RUPEE, Text{ "Water Trial MQ Silver Rupee", "Water Trial MQ Silver Rupee", "Water Trial MQ Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GANONS_CASTLE_SILVER_RUPEE, RG_WATER_TRIAL_MQ_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_WATER_TRIAL_MQ_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_SHADOW_TRIAL_MQ_SILVER_RUPEE] = Item(RG_SHADOW_TRIAL_MQ_SILVER_RUPEE, Text{ "Shadow Trial MQ Silver Rupee", "Shadow Trial MQ Silver Rupee", "Shadow Trial MQ Silver Rupee"}, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_GANONS_CASTLE_SILVER_RUPEE, RG_SHADOW_TRIAL_MQ_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_SHADOW_TRIAL_MQ_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
itemTable[RG_MAGICAL_SILVER_RUPEE] = Item(RG_MAGICAL_SILVER_RUPEE, Text{ "Magical Silver Rupee", "Magical Silver Rupee", "Magical Silver Rupee" }, ITEMTYPE_SILVERRUPEE, 0, true, &logic->noVariable, RHT_MAGICAL_SILVER_RUPEE, RG_MAGICAL_SILVER_RUPEE, OBJECT_GI_RUPY, GID_RUPEE_GOLD, TEXT_RANDOMIZER_CUSTOM_ITEM, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_SILVER_RUPEE, MOD_RANDOMIZER);
|
||||
itemTable[RG_MAGICAL_SILVER_RUPEE].SetCustomDrawFunc(Randomizer_DrawSilverRupee);
|
||||
|
||||
// Individual stages of progressive items (only here for GetItemEntry purposes, not for use in seed gen)
|
||||
itemTable[RG_HOOKSHOT] = Item(RG_HOOKSHOT, Text{ "Hookshot", "Grappin", "Fanghaken" }, ITEMTYPE_ITEM, GI_HOOKSHOT, true, &logic->ProgressiveHookshot, RHT_HOOKSHOT, ITEM_HOOKSHOT, OBJECT_GI_HOOKSHOT, GID_HOOKSHOT, 0x36, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||
itemTable[RG_LONGSHOT] = Item(RG_LONGSHOT, Text{ "Longshot", "Super-Grappin", "Enterhaken" }, ITEMTYPE_ITEM, GI_LONGSHOT, true, &logic->ProgressiveHookshot, RHT_LONGSHOT, ITEM_LONGSHOT, OBJECT_GI_HOOKSHOT, GID_LONGSHOT, 0x4F, 0x80, CHEST_ANIM_LONG, ITEM_CATEGORY_MAJOR, MOD_NONE);
|
||||
|
|
|
@ -16,10 +16,10 @@ class SpoilerCollectionCheck {
|
|||
public:
|
||||
SpoilerCollectionCheckType type = SPOILER_CHK_NONE;
|
||||
uint8_t scene = 0;
|
||||
uint8_t flag = 0;
|
||||
uint16_t flag = 0;
|
||||
|
||||
SpoilerCollectionCheck() = default;
|
||||
SpoilerCollectionCheck(const SpoilerCollectionCheckType type_, const uint8_t scene_, const uint8_t flag_)
|
||||
SpoilerCollectionCheck(const SpoilerCollectionCheckType type_, const uint8_t scene_, const uint16_t flag_)
|
||||
: type(type_), scene(scene_), flag(flag_) {
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ class SpoilerCollectionCheck {
|
|||
return SpoilerCollectionCheck(SPOILER_CHK_MERCHANT, scene, flag);
|
||||
}
|
||||
|
||||
static auto RandomizerInf(const int8_t scene, const uint8_t flag) {
|
||||
static auto RandomizerInf(const int8_t scene, const uint16_t flag) {
|
||||
return SpoilerCollectionCheck(SPOILER_CHK_RANDOMIZER_INF, scene, flag);
|
||||
}
|
||||
};
|
||||
|
@ -108,6 +108,7 @@ enum class LocationType {
|
|||
GrottoScrub,
|
||||
Delayed,
|
||||
TempleReward,
|
||||
SilverRupee,
|
||||
HintStone,
|
||||
OtherHint,
|
||||
};
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "static_data.h"
|
||||
|
||||
#define TWO_ACTOR_PARAMS(a, b) (abs(a) << 16) | abs(b)
|
||||
#define THREE_ACTOR_PARAMS(a, b, c) (abs(a) << 32 | abs(b) << 16 | abs(c))
|
||||
|
||||
std::array<Rando::Location, RC_MAX> Rando::StaticData::locationTable;
|
||||
|
||||
|
@ -1512,6 +1513,183 @@ void Rando::StaticData::InitLocationTable() {
|
|||
locationTable[RC_ZD_FISH_4] = Location::Base(RC_ZD_FISH_4, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_ZORAS_DOMAIN, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 3, 0x00, "Fish 4", "ZD Fish 4", RHT_ZD_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF, SCENE_ZORAS_DOMAIN), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN);
|
||||
locationTable[RC_ZD_FISH_5] = Location::Base(RC_ZD_FISH_5, RCQUEST_BOTH, RCTYPE_FISH, RCAREA_ZORAS_DOMAIN, ACTOR_EN_FISH, SCENE_ZORAS_DOMAIN, -1 ^ 4, 0x00, "Fish 5", "ZD Fish 5", RHT_ZD_FISH, RG_FISH, { Category::cFish }, SpoilerCollectionCheck::Fish(0xFF, SCENE_ZORAS_DOMAIN), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN);
|
||||
|
||||
// Silver Rupees
|
||||
locationTable[RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_1] = Location::Base(RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_ICE_CAVERN, ACTOR_EN_G_SWITCH, SCENE_ICE_CAVERN,0, 0x0, "Spinning Blades Silver Rupee 1", "Ice Cavern Spinning Blades Silver Rupee 1", RHT_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_ICE_CAVERN, RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_1));
|
||||
locationTable[RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_2] = Location::Base(RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_ICE_CAVERN, ACTOR_EN_G_SWITCH, SCENE_ICE_CAVERN,0, 0x0, "Spinning Blades Silver Rupee 2", "Ice Cavern Spinning Blades Silver Rupee 2", RHT_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_ICE_CAVERN, RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_2));
|
||||
locationTable[RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_3] = Location::Base(RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_ICE_CAVERN, ACTOR_EN_G_SWITCH, SCENE_ICE_CAVERN,0, 0x0, "Spinning Blades Silver Rupee 3", "Ice Cavern Spinning Blades Silver Rupee 3", RHT_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_ICE_CAVERN, RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_3));
|
||||
locationTable[RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_4] = Location::Base(RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_ICE_CAVERN, ACTOR_EN_G_SWITCH, SCENE_ICE_CAVERN,0, 0x0, "Spinning Blades Silver Rupee 4", "Ice Cavern Spinning Blades Silver Rupee 4", RHT_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_ICE_CAVERN, RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_4));
|
||||
locationTable[RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_5] = Location::Base(RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_ICE_CAVERN, ACTOR_EN_G_SWITCH, SCENE_ICE_CAVERN,0, 0x0, "Spinning Blades Silver Rupee 5", "Ice Cavern Spinning Blades Silver Rupee 5", RHT_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_ICE_CAVERN, RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_1] = Location::Base(RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_ICE_CAVERN, ACTOR_EN_G_SWITCH, SCENE_ICE_CAVERN,0, 0x0, "Sliding Puzzle Silver Rupee 1", "Ice Cavern Sliding Puzzle Silver Rupee 1", RHT_ICE_CAVERN_SLIDING_SILVER_RUPEE, RG_ICE_CAVERN_SLIDING_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_ICE_CAVERN, RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_1));
|
||||
locationTable[RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_2] = Location::Base(RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_ICE_CAVERN, ACTOR_EN_G_SWITCH, SCENE_ICE_CAVERN,0, 0x0, "Sliding Puzzle Silver Rupee 2", "Ice Cavern Sliding Puzzle Silver Rupee 2", RHT_ICE_CAVERN_SLIDING_SILVER_RUPEE, RG_ICE_CAVERN_SLIDING_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_ICE_CAVERN, RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_2));
|
||||
locationTable[RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_3] = Location::Base(RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_ICE_CAVERN, ACTOR_EN_G_SWITCH, SCENE_ICE_CAVERN,0, 0x0, "Sliding Puzzle Silver Rupee 3", "Ice Cavern Sliding Puzzle Silver Rupee 3", RHT_ICE_CAVERN_SLIDING_SILVER_RUPEE, RG_ICE_CAVERN_SLIDING_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_ICE_CAVERN, RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_3));
|
||||
locationTable[RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_4] = Location::Base(RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_ICE_CAVERN, ACTOR_EN_G_SWITCH, SCENE_ICE_CAVERN,0, 0x0, "Sliding Puzzle Silver Rupee 4", "Ice Cavern Sliding Puzzle Silver Rupee 4", RHT_ICE_CAVERN_SLIDING_SILVER_RUPEE, RG_ICE_CAVERN_SLIDING_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_ICE_CAVERN, RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_4));
|
||||
locationTable[RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_5] = Location::Base(RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_ICE_CAVERN, ACTOR_EN_G_SWITCH, SCENE_ICE_CAVERN,0, 0x0, "Sliding Puzzle Silver Rupee 5", "Ice Cavern Sliding Puzzle Silver Rupee 5", RHT_ICE_CAVERN_SLIDING_SILVER_RUPEE, RG_ICE_CAVERN_SLIDING_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_ICE_CAVERN, RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1] = Location::Base(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_EN_G_SWITCH, SCENE_BOTTOM_OF_THE_WELL, 0, 0x0, "Bottom of the Well Basement Silver Rupee 1", "Bottom of the Well Basement Silver Rupee 1", RHT_BOTTOM_OF_THE_WELL_BASEMENT_SILVER_RUPEE, RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_BOTTOM_OF_THE_WELL, RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1));
|
||||
locationTable[RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_2] = Location::Base(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_EN_G_SWITCH, SCENE_BOTTOM_OF_THE_WELL, 0, 0x0, "Bottom of the Well Basement Silver Rupee 2", "Bottom of the Well Basement Silver Rupee 2", RHT_BOTTOM_OF_THE_WELL_BASEMENT_SILVER_RUPEE, RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_BOTTOM_OF_THE_WELL, RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_2));
|
||||
locationTable[RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_3] = Location::Base(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_EN_G_SWITCH, SCENE_BOTTOM_OF_THE_WELL, 0, 0x0, "Bottom of the Well Basement Silver Rupee 3", "Bottom of the Well Basement Silver Rupee 3", RHT_BOTTOM_OF_THE_WELL_BASEMENT_SILVER_RUPEE, RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_BOTTOM_OF_THE_WELL, RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_3));
|
||||
locationTable[RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_4] = Location::Base(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_EN_G_SWITCH, SCENE_BOTTOM_OF_THE_WELL, 0, 0x0, "Bottom of the Well Basement Silver Rupee 4", "Bottom of the Well Basement Silver Rupee 4", RHT_BOTTOM_OF_THE_WELL_BASEMENT_SILVER_RUPEE, RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_BOTTOM_OF_THE_WELL, RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_4));
|
||||
locationTable[RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_5] = Location::Base(RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_EN_G_SWITCH, SCENE_BOTTOM_OF_THE_WELL, 0, 0x0, "Bottom of the Well Basement Silver Rupee 5", "Bottom of the Well Basement Silver Rupee 5", RHT_BOTTOM_OF_THE_WELL_BASEMENT_SILVER_RUPEE, RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_BOTTOM_OF_THE_WELL, RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Boulder Maze Silver Rupee 1", "GTG Boulder Maze Silver Rupee 1", RHT_GERUDO_TRAINING_GROUND_BOULDER_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Boulder Maze Silver Rupee 2", "GTG Boulder Maze Silver Rupee 2", RHT_GERUDO_TRAINING_GROUND_BOULDER_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Boulder Maze Silver Rupee 3", "GTG Boulder Maze Silver Rupee 3", RHT_GERUDO_TRAINING_GROUND_BOULDER_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Boulder Maze Silver Rupee 4", "GTG Boulder Maze Silver Rupee 4", RHT_GERUDO_TRAINING_GROUND_BOULDER_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Boulder Maze Silver Rupee 5", "GTG Boulder Maze Silver Rupee 5", RHT_GERUDO_TRAINING_GROUND_BOULDER_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 1", "GTG Lava Room Silver Rupee 1", RHT_GERUDO_TRAINING_GROUND_LAVA_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 2", "GTG Lava Room Silver Rupee 2", RHT_GERUDO_TRAINING_GROUND_LAVA_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 3", "GTG Lava Room Silver Rupee 3", RHT_GERUDO_TRAINING_GROUND_LAVA_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 4", "GTG Lava Room Silver Rupee 4", RHT_GERUDO_TRAINING_GROUND_LAVA_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 5", "GTG Lava Room Silver Rupee 5", RHT_GERUDO_TRAINING_GROUND_LAVA_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Whirlpool Room Silver Rupee 1", "GTG Whirlpool Room Silver Rupee 1", RHT_GERUDO_TRAINING_GROUND_TOILET_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Whirlpool Room Silver Rupee 2", "GTG Whirlpool Room Silver Rupee 2", RHT_GERUDO_TRAINING_GROUND_TOILET_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Whirlpool Room Silver Rupee 3", "GTG Whirlpool Room Silver Rupee 3", RHT_GERUDO_TRAINING_GROUND_TOILET_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_4] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Whirlpool Room Silver Rupee 4", "GTG Whirlpool Room Silver Rupee 4", RHT_GERUDO_TRAINING_GROUND_TOILET_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_4));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_5] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Whirlpool Room Silver Rupee 5", "GTG Whirlpool Room Silver Rupee 5", RHT_GERUDO_TRAINING_GROUND_TOILET_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SPIRIT_GATE_SILVER_RUPEE_1] = Location::Base(RC_SPIRIT_GATE_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Child Gate Silver Rupee 1", "Spirit Temple Child Gate Silver Rupee 1", RHT_SPIRIT_GATE_SILVER_RUPEE, RG_SPIRIT_GATE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_GATE_SILVER_RUPEE_1));
|
||||
locationTable[RC_SPIRIT_GATE_SILVER_RUPEE_2] = Location::Base(RC_SPIRIT_GATE_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Child Gate Silver Rupee 2", "Spirit Temple Child Gate Silver Rupee 2", RHT_SPIRIT_GATE_SILVER_RUPEE, RG_SPIRIT_GATE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_GATE_SILVER_RUPEE_2));
|
||||
locationTable[RC_SPIRIT_GATE_SILVER_RUPEE_3] = Location::Base(RC_SPIRIT_GATE_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Child Gate Silver Rupee 3", "Spirit Temple Child Gate Silver Rupee 3", RHT_SPIRIT_GATE_SILVER_RUPEE, RG_SPIRIT_GATE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_GATE_SILVER_RUPEE_3));
|
||||
locationTable[RC_SPIRIT_GATE_SILVER_RUPEE_4] = Location::Base(RC_SPIRIT_GATE_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Child Gate Silver Rupee 4", "Spirit Temple Child Gate Silver Rupee 4", RHT_SPIRIT_GATE_SILVER_RUPEE, RG_SPIRIT_GATE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_GATE_SILVER_RUPEE_4));
|
||||
locationTable[RC_SPIRIT_GATE_SILVER_RUPEE_5] = Location::Base(RC_SPIRIT_GATE_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Child Gate Silver Rupee 5", "Spirit Temple Child Gate Silver Rupee 5", RHT_SPIRIT_GATE_SILVER_RUPEE, RG_SPIRIT_GATE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_GATE_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SPIRIT_BEAMOS_SILVER_RUPEE_1] = Location::Base(RC_SPIRIT_BEAMOS_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Beamos Room Silver Rupee 1", "Spirit Beamos Room Silver Rupee 1", RHT_SPIRIT_BEAMOS_SILVER_RUPEE, RG_SPIRIT_BEAMOS_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_1));
|
||||
locationTable[RC_SPIRIT_BEAMOS_SILVER_RUPEE_2] = Location::Base(RC_SPIRIT_BEAMOS_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Beamos Room Silver Rupee 2", "Spirit Beamos Room Silver Rupee 2", RHT_SPIRIT_BEAMOS_SILVER_RUPEE, RG_SPIRIT_BEAMOS_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_2));
|
||||
locationTable[RC_SPIRIT_BEAMOS_SILVER_RUPEE_3] = Location::Base(RC_SPIRIT_BEAMOS_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Beamos Room Silver Rupee 3", "Spirit Beamos Room Silver Rupee 3", RHT_SPIRIT_BEAMOS_SILVER_RUPEE, RG_SPIRIT_BEAMOS_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_3));
|
||||
locationTable[RC_SPIRIT_BEAMOS_SILVER_RUPEE_4] = Location::Base(RC_SPIRIT_BEAMOS_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Beamos Room Silver Rupee 4", "Spirit Beamos Room Silver Rupee 4", RHT_SPIRIT_BEAMOS_SILVER_RUPEE, RG_SPIRIT_BEAMOS_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_4));
|
||||
locationTable[RC_SPIRIT_BEAMOS_SILVER_RUPEE_5] = Location::Base(RC_SPIRIT_BEAMOS_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Beamos Room Silver Rupee 5", "Spirit Beamos Room Silver Rupee 5", RHT_SPIRIT_BEAMOS_SILVER_RUPEE, RG_SPIRIT_BEAMOS_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SPIRIT_BOULDER_SILVER_RUPEE_1] = Location::Base(RC_SPIRIT_BOULDER_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Boulder Room Silver Rupee 1", "Spirit Boulder Room Silver Rupee 1", RHT_SPIRIT_BOULDER_SILVER_RUPEE, RG_SPIRIT_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_1));
|
||||
locationTable[RC_SPIRIT_BOULDER_SILVER_RUPEE_2] = Location::Base(RC_SPIRIT_BOULDER_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Boulder Room Silver Rupee 2", "Spirit Boulder Room Silver Rupee 2", RHT_SPIRIT_BOULDER_SILVER_RUPEE, RG_SPIRIT_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_2));
|
||||
locationTable[RC_SPIRIT_BOULDER_SILVER_RUPEE_3] = Location::Base(RC_SPIRIT_BOULDER_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Boulder Room Silver Rupee 3", "Spirit Boulder Room Silver Rupee 3", RHT_SPIRIT_BOULDER_SILVER_RUPEE, RG_SPIRIT_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_3));
|
||||
locationTable[RC_SPIRIT_BOULDER_SILVER_RUPEE_4] = Location::Base(RC_SPIRIT_BOULDER_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Boulder Room Silver Rupee 4", "Spirit Boulder Room Silver Rupee 4", RHT_SPIRIT_BOULDER_SILVER_RUPEE, RG_SPIRIT_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_4));
|
||||
locationTable[RC_SPIRIT_BOULDER_SILVER_RUPEE_5] = Location::Base(RC_SPIRIT_BOULDER_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Boulder Room Silver Rupee 5", "Spirit Boulder Room Silver Rupee 5", RHT_SPIRIT_BOULDER_SILVER_RUPEE, RG_SPIRIT_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SHADOW_SCYTHE_SILVER_RUPEE_1] = Location::Base(RC_SHADOW_SCYTHE_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Spinning Scythe Silver Rupee 1", "Shadow Spinning Scythe Silver Rupee 1", RHT_SHADOW_SPINNING_SCYTHE_SILVER_RUPEE, RG_SHADOW_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_1));
|
||||
locationTable[RC_SHADOW_SCYTHE_SILVER_RUPEE_2] = Location::Base(RC_SHADOW_SCYTHE_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Spinning Scythe Silver Rupee 2", "Shadow Spinning Scythe Silver Rupee 2", RHT_SHADOW_SPINNING_SCYTHE_SILVER_RUPEE, RG_SHADOW_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_2));
|
||||
locationTable[RC_SHADOW_SCYTHE_SILVER_RUPEE_3] = Location::Base(RC_SHADOW_SCYTHE_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Spinning Scythe Silver Rupee 3", "Shadow Spinning Scythe Silver Rupee 3", RHT_SHADOW_SPINNING_SCYTHE_SILVER_RUPEE, RG_SHADOW_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_3));
|
||||
locationTable[RC_SHADOW_SCYTHE_SILVER_RUPEE_4] = Location::Base(RC_SHADOW_SCYTHE_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Spinning Scythe Silver Rupee 4", "Shadow Spinning Scythe Silver Rupee 4", RHT_SHADOW_SPINNING_SCYTHE_SILVER_RUPEE, RG_SHADOW_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_4));
|
||||
locationTable[RC_SHADOW_SCYTHE_SILVER_RUPEE_5] = Location::Base(RC_SHADOW_SCYTHE_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Spinning Scythe Silver Rupee 5", "Shadow Spinning Scythe Silver Rupee 5", RHT_SHADOW_SPINNING_SCYTHE_SILVER_RUPEE, RG_SHADOW_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1] = Location::Base(RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Outside Spike Rain Room Silver Rupee 1", "Shadow Outside Spike Rain Room Silver Rupee 1", RHT_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1));
|
||||
locationTable[RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2] = Location::Base(RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Outside Spike Rain Room Silver Rupee 2", "Shadow Outside Spike Rain Room Silver Rupee 2", RHT_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2));
|
||||
locationTable[RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3] = Location::Base(RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Outside Spike Rain Room Silver Rupee 3", "Shadow Outside Spike Rain Room Silver Rupee 3", RHT_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3));
|
||||
locationTable[RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4] = Location::Base(RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Outside Spike Rain Room Silver Rupee 4", "Shadow Outside Spike Rain Room Silver Rupee 4", RHT_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4));
|
||||
locationTable[RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5] = Location::Base(RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Outside Spike Rain Room Silver Rupee 5", "Shadow Outside Spike Rain Room Silver Rupee 5", RHT_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_1] = Location::Base(RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Room Silver Rupee 1", "Shadow Invisible Spikes Room Silver Rupee 1", RHT_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_1));
|
||||
locationTable[RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_2] = Location::Base(RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Room Silver Rupee 2", "Shadow Invisible Spikes Room Silver Rupee 2", RHT_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_2));
|
||||
locationTable[RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_3] = Location::Base(RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Room Silver Rupee 3", "Shadow Invisible Spikes Room Silver Rupee 3", RHT_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_3));
|
||||
locationTable[RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_4] = Location::Base(RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Room Silver Rupee 4", "Shadow Invisible Spikes Room Silver Rupee 4", RHT_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_4));
|
||||
locationTable[RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_5] = Location::Base(RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Room Silver Rupee 5", "Shadow Invisible Spikes Room Silver Rupee 5", RHT_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_FOREST_TRIAL_SILVER_RUPEE_1] = Location::Base(RC_FOREST_TRIAL_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Forest Trial Silver Rupee 1", "Inside Ganon's Castle Forest Trial Silver Rupee 1", RHT_FOREST_TRIAL_SILVER_RUPEE, RG_FOREST_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FOREST_TRIAL_SILVER_RUPEE_1));
|
||||
locationTable[RC_FOREST_TRIAL_SILVER_RUPEE_2] = Location::Base(RC_FOREST_TRIAL_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Forest Trial Silver Rupee 2", "Inside Ganon's Castle Forest Trial Silver Rupee 2", RHT_FOREST_TRIAL_SILVER_RUPEE, RG_FOREST_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FOREST_TRIAL_SILVER_RUPEE_2));
|
||||
locationTable[RC_FOREST_TRIAL_SILVER_RUPEE_3] = Location::Base(RC_FOREST_TRIAL_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Forest Trial Silver Rupee 3", "Inside Ganon's Castle Forest Trial Silver Rupee 3", RHT_FOREST_TRIAL_SILVER_RUPEE, RG_FOREST_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FOREST_TRIAL_SILVER_RUPEE_3));
|
||||
locationTable[RC_FOREST_TRIAL_SILVER_RUPEE_4] = Location::Base(RC_FOREST_TRIAL_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Forest Trial Silver Rupee 4", "Inside Ganon's Castle Forest Trial Silver Rupee 4", RHT_FOREST_TRIAL_SILVER_RUPEE, RG_FOREST_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FOREST_TRIAL_SILVER_RUPEE_4));
|
||||
locationTable[RC_FOREST_TRIAL_SILVER_RUPEE_5] = Location::Base(RC_FOREST_TRIAL_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Forest Trial Silver Rupee 5", "Inside Ganon's Castle Forest Trial Silver Rupee 5", RHT_FOREST_TRIAL_SILVER_RUPEE, RG_FOREST_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FOREST_TRIAL_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_FIRE_TRIAL_SILVER_RUPEE_1] = Location::Base(RC_FIRE_TRIAL_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Fire Trial Silver Rupee 1", "Inside Ganon's Castle Fire Trial Silver Rupee 1", RHT_FIRE_TRIAL_SILVER_RUPEE, RG_FIRE_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FIRE_TRIAL_SILVER_RUPEE_1));
|
||||
locationTable[RC_FIRE_TRIAL_SILVER_RUPEE_2] = Location::Base(RC_FIRE_TRIAL_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Fire Trial Silver Rupee 2", "Inside Ganon's Castle Fire Trial Silver Rupee 2", RHT_FIRE_TRIAL_SILVER_RUPEE, RG_FIRE_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FIRE_TRIAL_SILVER_RUPEE_2));
|
||||
locationTable[RC_FIRE_TRIAL_SILVER_RUPEE_3] = Location::Base(RC_FIRE_TRIAL_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Fire Trial Silver Rupee 3", "Inside Ganon's Castle Fire Trial Silver Rupee 3", RHT_FIRE_TRIAL_SILVER_RUPEE, RG_FIRE_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FIRE_TRIAL_SILVER_RUPEE_3));
|
||||
locationTable[RC_FIRE_TRIAL_SILVER_RUPEE_4] = Location::Base(RC_FIRE_TRIAL_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Fire Trial Silver Rupee 4", "Inside Ganon's Castle Fire Trial Silver Rupee 4", RHT_FIRE_TRIAL_SILVER_RUPEE, RG_FIRE_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FIRE_TRIAL_SILVER_RUPEE_4));
|
||||
locationTable[RC_FIRE_TRIAL_SILVER_RUPEE_5] = Location::Base(RC_FIRE_TRIAL_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Fire Trial Silver Rupee 5", "Inside Ganon's Castle Fire Trial Silver Rupee 5", RHT_FIRE_TRIAL_SILVER_RUPEE, RG_FIRE_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FIRE_TRIAL_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SPIRIT_TRIAL_SILVER_RUPEE_1] = Location::Base(RC_SPIRIT_TRIAL_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Spirit Trial Silver Rupee 1", "Inside Ganon's Castle Spirit Trial Silver Rupee 1", RHT_SPIRIT_TRIAL_SILVER_RUPEE, RG_SPIRIT_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_1));
|
||||
locationTable[RC_SPIRIT_TRIAL_SILVER_RUPEE_2] = Location::Base(RC_SPIRIT_TRIAL_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Spirit Trial Silver Rupee 2", "Inside Ganon's Castle Spirit Trial Silver Rupee 2", RHT_SPIRIT_TRIAL_SILVER_RUPEE, RG_SPIRIT_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_2));
|
||||
locationTable[RC_SPIRIT_TRIAL_SILVER_RUPEE_3] = Location::Base(RC_SPIRIT_TRIAL_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Spirit Trial Silver Rupee 3", "Inside Ganon's Castle Spirit Trial Silver Rupee 3", RHT_SPIRIT_TRIAL_SILVER_RUPEE, RG_SPIRIT_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_3));
|
||||
locationTable[RC_SPIRIT_TRIAL_SILVER_RUPEE_4] = Location::Base(RC_SPIRIT_TRIAL_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Spirit Trial Silver Rupee 4", "Inside Ganon's Castle Spirit Trial Silver Rupee 4", RHT_SPIRIT_TRIAL_SILVER_RUPEE, RG_SPIRIT_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_4));
|
||||
locationTable[RC_SPIRIT_TRIAL_SILVER_RUPEE_5] = Location::Base(RC_SPIRIT_TRIAL_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Spirit Trial Silver Rupee 5", "Inside Ganon's Castle Spirit Trial Silver Rupee 5", RHT_SPIRIT_TRIAL_SILVER_RUPEE, RG_SPIRIT_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_LIGHT_TRIAL_SILVER_RUPEE_1] = Location::Base(RC_LIGHT_TRIAL_SILVER_RUPEE_1, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Light Trial Silver Rupee 1", "Inside Ganon's Castle Light Trial Silver Rupee 1", RHT_LIGHT_TRIAL_SILVER_RUPEE, RG_LIGHT_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_1));
|
||||
locationTable[RC_LIGHT_TRIAL_SILVER_RUPEE_2] = Location::Base(RC_LIGHT_TRIAL_SILVER_RUPEE_2, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Light Trial Silver Rupee 2", "Inside Ganon's Castle Light Trial Silver Rupee 2", RHT_LIGHT_TRIAL_SILVER_RUPEE, RG_LIGHT_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_2));
|
||||
locationTable[RC_LIGHT_TRIAL_SILVER_RUPEE_3] = Location::Base(RC_LIGHT_TRIAL_SILVER_RUPEE_3, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Light Trial Silver Rupee 3", "Inside Ganon's Castle Light Trial Silver Rupee 3", RHT_LIGHT_TRIAL_SILVER_RUPEE, RG_LIGHT_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_3));
|
||||
locationTable[RC_LIGHT_TRIAL_SILVER_RUPEE_4] = Location::Base(RC_LIGHT_TRIAL_SILVER_RUPEE_4, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Light Trial Silver Rupee 4", "Inside Ganon's Castle Light Trial Silver Rupee 4", RHT_LIGHT_TRIAL_SILVER_RUPEE, RG_LIGHT_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_4));
|
||||
locationTable[RC_LIGHT_TRIAL_SILVER_RUPEE_5] = Location::Base(RC_LIGHT_TRIAL_SILVER_RUPEE_5, RCQUEST_VANILLA, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Light Trial Silver Rupee 5", "Inside Ganon's Castle Light Trial Silver Rupee 5", RHT_LIGHT_TRIAL_SILVER_RUPEE, RG_LIGHT_TRIAL_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_DODONGOS_CAVERN, ACTOR_EN_G_SWITCH, SCENE_DODONGOS_CAVERN, 0, 0x0, "Silver Rupee 1", "Dodongo's Cavern Silver Rupee 1", RHT_DODONGOS_CAVERN_SILVER_RUPEE, RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_DODONGOS_CAVERN, RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_1));
|
||||
locationTable[RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_DODONGOS_CAVERN, ACTOR_EN_G_SWITCH, SCENE_DODONGOS_CAVERN, 0, 0x0, "Silver Rupee 2", "Dodongo's Cavern Silver Rupee 2", RHT_DODONGOS_CAVERN_SILVER_RUPEE, RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_DODONGOS_CAVERN, RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_2));
|
||||
locationTable[RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_3] = Location::Base(RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_DODONGOS_CAVERN, ACTOR_EN_G_SWITCH, SCENE_DODONGOS_CAVERN, 0, 0x0, "Silver Rupee 3", "Dodongo's Cavern Silver Rupee 3", RHT_DODONGOS_CAVERN_SILVER_RUPEE, RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_DODONGOS_CAVERN, RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_3));
|
||||
locationTable[RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_4] = Location::Base(RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_DODONGOS_CAVERN, ACTOR_EN_G_SWITCH, SCENE_DODONGOS_CAVERN, 0, 0x0, "Silver Rupee 4", "Dodongo's Cavern Silver Rupee 4", RHT_DODONGOS_CAVERN_SILVER_RUPEE, RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_DODONGOS_CAVERN, RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_4));
|
||||
locationTable[RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_5] = Location::Base(RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_DODONGOS_CAVERN, ACTOR_EN_G_SWITCH, SCENE_DODONGOS_CAVERN, 0, 0x0, "Silver Rupee 5", "Dodongo's Cavern Silver Rupee 5", RHT_DODONGOS_CAVERN_SILVER_RUPEE, RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_DODONGOS_CAVERN, RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_1] = Location::Base(RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Spinning Scythe Silver Rupee 1", "Shadow Temple MQ Spinning Scythe Silver Rupee 1", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_1));
|
||||
locationTable[RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_2] = Location::Base(RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Spinning Scythe Silver Rupee 2", "Shadow Temple MQ Spinning Scythe Silver Rupee 2", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_2));
|
||||
locationTable[RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_3] = Location::Base(RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Spinning Scythe Silver Rupee 3", "Shadow Temple MQ Spinning Scythe Silver Rupee 3", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_3));
|
||||
locationTable[RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_4] = Location::Base(RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Spinning Scythe Silver Rupee 4", "Shadow Temple MQ Spinning Scythe Silver Rupee 4", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_4));
|
||||
locationTable[RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_5] = Location::Base(RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Spinning Scythe Silver Rupee 5", "Shadow Temple MQ Spinning Scythe Silver Rupee 5", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_1] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Scythe Silver Rupee 1", "Shadow Temple MQ Invisible Scythe Silver Rupee 1", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_1));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_2] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Scythe Silver Rupee 2", "Shadow Temple MQ Invisible Scythe Silver Rupee 2", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_2));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_3] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Scythe Silver Rupee 3", "Shadow Temple MQ Invisible Scythe Silver Rupee 3", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_3));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_4] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Scythe Silver Rupee 4", "Shadow Temple MQ Invisible Scythe Silver Rupee 4", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_4));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_5] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Scythe Silver Rupee 5", "Shadow Temple MQ Invisible Scythe Silver Rupee 5", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_5));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_6] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_6, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Scythe Silver Rupee 6", "Shadow Temple MQ Invisible Scythe Silver Rupee 6", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_6));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_7] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_7, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Scythe Silver Rupee 7", "Shadow Temple MQ Invisible Scythe Silver Rupee 7", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_7));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_8] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_8, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Scythe Silver Rupee 8", "Shadow Temple MQ Invisible Scythe Silver Rupee 8", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_8));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_9] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_9, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Scythe Silver Rupee 9", "Shadow Temple MQ Invisible Scythe Silver Rupee 9", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_9));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_10] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_10, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Scythe Silver Rupee 10", "Shadow Temple MQ Invisible Scythe Silver Rupee 10", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_10));
|
||||
|
||||
locationTable[RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1] = Location::Base(RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Outside Spike Rain Silver Rupee 1", "Shadow Temple MQ Outside Spike Rain Silver Rupee 1", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1));
|
||||
locationTable[RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2] = Location::Base(RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Outside Spike Rain Silver Rupee 2", "Shadow Temple MQ Outside Spike Rain Silver Rupee 2", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2));
|
||||
locationTable[RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3] = Location::Base(RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Outside Spike Rain Silver Rupee 3", "Shadow Temple MQ Outside Spike Rain Silver Rupee 3", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3));
|
||||
locationTable[RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4] = Location::Base(RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Outside Spike Rain Silver Rupee 4", "Shadow Temple MQ Outside Spike Rain Silver Rupee 4", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4));
|
||||
locationTable[RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5] = Location::Base(RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Outside Spike Rain Silver Rupee 5", "Shadow Temple MQ Outside Spike Rain Silver Rupee 5", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_1] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Silver Rupee 1", "Shadow Temple MQ Invisible Spikes Silver Rupee 1", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_1));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_2] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Silver Rupee 2", "Shadow Temple MQ Invisible Spikes Silver Rupee 2", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_2));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_3] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Silver Rupee 3", "Shadow Temple MQ Invisible Spikes Silver Rupee 3", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_3));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_4] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Silver Rupee 4", "Shadow Temple MQ Invisible Spikes Silver Rupee 4", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_4));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_5] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Silver Rupee 5", "Shadow Temple MQ Invisible Spikes Silver Rupee 5", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_5));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_6] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_6, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Silver Rupee 6", "Shadow Temple MQ Invisible Spikes Silver Rupee 6", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_6));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_7] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_7, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Silver Rupee 7", "Shadow Temple MQ Invisible Spikes Silver Rupee 7", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_7));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_8] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_8, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Silver Rupee 8", "Shadow Temple MQ Invisible Spikes Silver Rupee 8", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_8));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_9] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_9, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Silver Rupee 9", "Shadow Temple MQ Invisible Spikes Silver Rupee 9", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_9));
|
||||
locationTable[RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_10] = Location::Base(RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_10, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SHADOW_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SHADOW_TEMPLE, 0, 0x0, "Invisible Spikes Silver Rupee 10", "Shadow Temple MQ Invisible Spikes Silver Rupee 10", RHT_SHADOW_TEMPLE_SILVER_RUPEE, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SHADOW_TEMPLE, RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_10));
|
||||
|
||||
locationTable[RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_1] = Location::Base(RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Lobby Silver Rupee 1", "Spirit Temple MQ Lobby Silver Rupee 1", RHT_SPIRIT_TEMPLE_SILVER_RUPEE, RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_1));
|
||||
locationTable[RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_2] = Location::Base(RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Lobby Silver Rupee 2", "Spirit Temple MQ Lobby Silver Rupee 2", RHT_SPIRIT_TEMPLE_SILVER_RUPEE, RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_2));
|
||||
locationTable[RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_3] = Location::Base(RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Lobby Silver Rupee 3", "Spirit Temple MQ Lobby Silver Rupee 3", RHT_SPIRIT_TEMPLE_SILVER_RUPEE, RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_3));
|
||||
locationTable[RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_4] = Location::Base(RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Lobby Silver Rupee 4", "Spirit Temple MQ Lobby Silver Rupee 4", RHT_SPIRIT_TEMPLE_SILVER_RUPEE, RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_4));
|
||||
locationTable[RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_5] = Location::Base(RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_SPIRIT_TEMPLE, ACTOR_EN_G_SWITCH, SCENE_SPIRIT_TEMPLE, 0, 0x0, "Lobby Silver Rupee 5", "Spirit Temple MQ Lobby Silver Rupee 5", RHT_SPIRIT_TEMPLE_SILVER_RUPEE, RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_SPIRIT_TEMPLE, RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_1] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Boulder Maze Silver Rupee 1", "Gerduo Training Grounds MQ Boulder Maze Silver Rupee 1", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_2] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Boulder Maze Silver Rupee 2", "Gerduo Training Grounds MQ Boulder Maze Silver Rupee 2", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_3] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Boulder Maze Silver Rupee 3", "Gerduo Training Grounds MQ Boulder Maze Silver Rupee 3", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_4] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Boulder Maze Silver Rupee 4", "Gerduo Training Grounds MQ Boulder Maze Silver Rupee 4", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_5] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Boulder Maze Silver Rupee 5", "Gerduo Training Grounds MQ Boulder Maze Silver Rupee 5", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_1] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 1", "Gerduo Training Grounds MQ Lava Room Silver Rupee 1", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_2] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 2", "Gerduo Training Grounds MQ Lava Room Silver Rupee 2", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_3] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 3", "Gerduo Training Grounds MQ Lava Room Silver Rupee 3", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_4] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 4", "Gerduo Training Grounds MQ Lava Room Silver Rupee 4", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_5] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 5", "Gerduo Training Grounds MQ Lava Room Silver Rupee 5", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_6] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_6, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Lava Room Silver Rupee 6", "Gerduo Training Grounds MQ Lava Room Silver Rupee 6", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_6));
|
||||
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_1] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Toilet Room Silver Rupee 1", "Gerduo Training Grounds MQ Toilet Room Silver Rupee 1", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_2] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Toilet Room Silver Rupee 2", "Gerduo Training Grounds MQ Toilet Room Silver Rupee 2", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2));
|
||||
locationTable[RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_3] = Location::Base(RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GERUDO_TRAINING_GROUND, ACTOR_EN_G_SWITCH, SCENE_GERUDO_TRAINING_GROUND, 0, 0x0, "Toilet Room Silver Rupee 3", "Gerduo Training Grounds MQ Toilet Room Silver Rupee 3", RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_GERUDO_TRAINING_GROUND, RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3));
|
||||
|
||||
locationTable[RC_FIRE_TRIAL_MQ_SILVER_RUPEE_1] = Location::Base(RC_FIRE_TRIAL_MQ_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Fire Trial MQ Silver Rupee 1", "Ganon's Castle Fire Trial MQ Silver Rupee 1", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_FIRE_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_1));
|
||||
locationTable[RC_FIRE_TRIAL_MQ_SILVER_RUPEE_2] = Location::Base(RC_FIRE_TRIAL_MQ_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Fire Trial MQ Silver Rupee 2", "Ganon's Castle Fire Trial MQ Silver Rupee 2", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_FIRE_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_2));
|
||||
locationTable[RC_FIRE_TRIAL_MQ_SILVER_RUPEE_3] = Location::Base(RC_FIRE_TRIAL_MQ_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Fire Trial MQ Silver Rupee 3", "Ganon's Castle Fire Trial MQ Silver Rupee 3", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_FIRE_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_3));
|
||||
locationTable[RC_FIRE_TRIAL_MQ_SILVER_RUPEE_4] = Location::Base(RC_FIRE_TRIAL_MQ_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Fire Trial MQ Silver Rupee 4", "Ganon's Castle Fire Trial MQ Silver Rupee 4", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_FIRE_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_4));
|
||||
locationTable[RC_FIRE_TRIAL_MQ_SILVER_RUPEE_5] = Location::Base(RC_FIRE_TRIAL_MQ_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Fire Trial MQ Silver Rupee 5", "Ganon's Castle Fire Trial MQ Silver Rupee 5", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_FIRE_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_WATER_TRIAL_MQ_SILVER_RUPEE_1] = Location::Base(RC_WATER_TRIAL_MQ_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Water Trial MQ Silver Rupee 1", "Ganon's Castle Water Trial MQ Silver Rupee 1", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_WATER_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_1));
|
||||
locationTable[RC_WATER_TRIAL_MQ_SILVER_RUPEE_2] = Location::Base(RC_WATER_TRIAL_MQ_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Water Trial MQ Silver Rupee 2", "Ganon's Castle Water Trial MQ Silver Rupee 2", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_WATER_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_2));
|
||||
locationTable[RC_WATER_TRIAL_MQ_SILVER_RUPEE_3] = Location::Base(RC_WATER_TRIAL_MQ_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Water Trial MQ Silver Rupee 3", "Ganon's Castle Water Trial MQ Silver Rupee 3", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_WATER_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_3));
|
||||
locationTable[RC_WATER_TRIAL_MQ_SILVER_RUPEE_4] = Location::Base(RC_WATER_TRIAL_MQ_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Water Trial MQ Silver Rupee 4", "Ganon's Castle Water Trial MQ Silver Rupee 4", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_WATER_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_4));
|
||||
locationTable[RC_WATER_TRIAL_MQ_SILVER_RUPEE_5] = Location::Base(RC_WATER_TRIAL_MQ_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Water Trial MQ Silver Rupee 5", "Ganon's Castle Water Trial MQ Silver Rupee 5", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_WATER_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_5));
|
||||
|
||||
locationTable[RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_1] = Location::Base(RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_1, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Shadow Trial MQ Silver Rupee 1", "Ganon's Castle Shadow Trial MQ Silver Rupee 1", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_SHADOW_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_1));
|
||||
locationTable[RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_2] = Location::Base(RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_2, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Shadow Trial MQ Silver Rupee 2", "Ganon's Castle Shadow Trial MQ Silver Rupee 2", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_SHADOW_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_2));
|
||||
locationTable[RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_3] = Location::Base(RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_3, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Shadow Trial MQ Silver Rupee 3", "Ganon's Castle Shadow Trial MQ Silver Rupee 3", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_SHADOW_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_3));
|
||||
locationTable[RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_4] = Location::Base(RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_4, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Shadow Trial MQ Silver Rupee 4", "Ganon's Castle Shadow Trial MQ Silver Rupee 4", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_SHADOW_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_4));
|
||||
locationTable[RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_5] = Location::Base(RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_5, RCQUEST_MQ, RCTYPE_SILVER_RUPEE, RCAREA_GANONS_CASTLE, ACTOR_EN_G_SWITCH, SCENE_INSIDE_GANONS_CASTLE, 0, 0x0, "Shadow Trial MQ Silver Rupee 5", "Ganon's Castle Shadow Trial MQ Silver Rupee 5", RHT_GANONS_CASTLE_SILVER_RUPEE, RG_SHADOW_TRIAL_MQ_SILVER_RUPEE, {Category::cSilverRupee}, SpoilerCollectionCheck::RandomizerInf(SCENE_INSIDE_GANONS_CASTLE, RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_5));
|
||||
|
||||
// Gossip Stones
|
||||
// RandomizerCheck Randomizer Check Quest Area Scene Params Flag Short Name Spoiler name Categories
|
||||
|
@ -1568,7 +1746,7 @@ void Rando::StaticData::InitLocationTable() {
|
|||
locationTable[RC_FISHING_POLE_HINT] = Location::OtherHint(RC_FISHING_POLE_HINT,RCQUEST_BOTH, RCTYPE_GOSSIP_STONE, RCAREA_LAKE_HYLIA, ACTOR_FISHING, SCENE_FISHING_POND, "Fishing Pole Hint","Fishing Pole Hint");
|
||||
|
||||
locationTable[RC_TRIFORCE_COMPLETED] = Location::Reward(RC_TRIFORCE_COMPLETED, RCQUEST_BOTH, RCTYPE_STANDARD, RCAREA_MARKET, ACTOR_ID_MAX, SCENE_ID_MAX, 0x00, 0x00, "Completed Triforce", "Completed Triforce", RHT_NONE, RG_NONE, {}, SpoilerCollectionCheck::None(), SpoilerCollectionCheckGroup::GROUP_NO_GROUP);
|
||||
// clang-format on
|
||||
// clang-format on
|
||||
}
|
||||
|
||||
Location* Rando::StaticData::GetLocation(RandomizerCheck locKey) {
|
||||
|
|
|
@ -395,6 +395,17 @@ void Settings::CreateOptionDescriptions() {
|
|||
"Overworld - Boss Keys can only appear outside of dungeons.\n"
|
||||
"\n"
|
||||
"Anywhere - Boss Keys can appear anywhere in the world.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_SILVER_RUPEES] = "Vanilla - Silver Rupees will appear in their vanilla locations.\n"
|
||||
"\n"
|
||||
"Own dungeon - Silver Rupees can only appear in their respective dungeon.\n"
|
||||
"\n"
|
||||
"Any dungeon - Silver Rupees can only appear inside of any dungeon.\n"
|
||||
"\n"
|
||||
"Overworld - Silver Rupees can only appear outside of dungeons.\n"
|
||||
"\n"
|
||||
"Anywhere - Silver Rupees can appear anywhere in the world.";
|
||||
mOptionDescriptions[RSK_MAGICAL_SILVER_RUPEE] = "Adds a Magical Silver Rupee that opens all silver rupee puzzles to the item pool."
|
||||
"It is not considered in logic, so you will not be required to find it to beat the seed, but if you do find it, it is a nice bonus.";
|
||||
mOptionDescriptions[RSK_GANONS_BOSS_KEY] =
|
||||
"Vanilla - Ganon's Boss Key will appear in the vanilla location.\n"
|
||||
"\n"
|
||||
|
|
|
@ -271,7 +271,7 @@ void Randomizer::LoadHintMessages() {
|
|||
CustomMessage(ctx->GetHint(RH_GANONDORF_HINT)->GetText()));
|
||||
CustomMessageManager::Instance->CreateMessage(
|
||||
Randomizer::hintMessageTableID, TEXT_GANONDORF_NOHINT,
|
||||
CustomMessage(ctx->GetHint(RH_SARIA)->GetText()));//RANDOTODO: Change to RH_BLANK or remove {{message}} replacment
|
||||
CustomMessage(ctx->GetHint(RH_GANONDORF_NOHINT)->GetText()));
|
||||
CustomMessageManager::Instance->CreateMessage(
|
||||
Randomizer::hintMessageTableID, TEXT_SHEIK_NEED_HOOK,
|
||||
CustomMessage("{{message}}", "{{message}}", "{{message}}"));
|
||||
|
@ -2849,6 +2849,28 @@ void CreateGetItemMessages(const std::array<GetItemMessage, N>* messageEntries)
|
|||
CustomMessage(messageEntry.english, messageEntry.german, messageEntry.french, TEXTBOX_TYPE_BLUE,
|
||||
TEXTBOX_POS_BOTTOM));
|
||||
}
|
||||
// Special Case for Silver Rupees
|
||||
//TODO: AI Translated Text, get translation from native speaker.
|
||||
customMessageManager->CreateMessage(
|
||||
Randomizer::getItemMessageTableID, RG_SILVER_RUPEE_FIRST,
|
||||
CustomMessage("You got a %cSilver Rupee%w for the&%g{{location}}%w!&{{count_text}}!",
|
||||
"Du hast eine %cSilberne Rupie%w für die&%g{{location}}%w!{{count_text}}!",
|
||||
"Vous avez reçu une %cRoupie d'Argent%w pour le&%g{{location}}%w!{{count_text}}!",
|
||||
TEXTBOX_TYPE_BLUE, TEXTBOX_POS_BOTTOM));
|
||||
// Special Case for Silver Rupee Pouches
|
||||
// customMessageManager->CreateMessage(Randomizer::getItemMessageTableID, RG_SILVER_RUPEE_POUCH_FIRST,
|
||||
// { TEXTBOX_TYPE_BLUE, TEXTBOX_POS_BOTTOM,
|
||||
// "You got a %cSilver Rupee Pouch%w for the&%g{{location}}%w!",
|
||||
// "Du hast einen %cBeutel mit Silberrupien%g für die für die&%g{{location}}%w!",
|
||||
// "Vous avez reçu une %cPochette en Roupie d'Argent%w pour le&%g{{location}}%w!" });
|
||||
customMessageManager->CreateMessage(Randomizer::getItemMessageTableID, RG_MAGICAL_SILVER_RUPEE,
|
||||
CustomMessage("You found the %cMagical Silver Rupee%w!&This magical silver "
|
||||
"rupee automatically&completes all Silver Rupee Puzzles!",
|
||||
"You found the %cMagical Silver Rupee%w!&This magical silver "
|
||||
"rupee automatically&completes all Silver Rupee Puzzles!",
|
||||
"You found the %cMagical Silver Rupee%w!&This magical silver "
|
||||
"rupee automatically&completes all Silver Rupee Puzzles!",
|
||||
TEXTBOX_TYPE_BLUE, TEXTBOX_POS_BOTTOM));
|
||||
}
|
||||
|
||||
void CreateRupeeMessages() {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "z64item.h"
|
||||
#include <z64item.h>
|
||||
#include "randomizer_inf.h"
|
||||
|
||||
#define MAX_TRICK_NAME_SIZE 50
|
||||
|
@ -114,6 +114,7 @@ typedef enum {
|
|||
RCTYPE_OCARINA, // Ocarina locations
|
||||
RCTYPE_BEEHIVE, // Beehives
|
||||
RCTYPE_FISH,
|
||||
RCTYPE_SILVER_RUPEE
|
||||
} RandomizerCheckType;
|
||||
|
||||
typedef enum { RCQUEST_VANILLA, RCQUEST_MQ, RCQUEST_BOTH } RandomizerCheckQuest;
|
||||
|
@ -1044,6 +1045,11 @@ typedef enum {
|
|||
RC_DODONGOS_CAVERN_MQ_GS_LIZALFOS_ROOM,
|
||||
RC_DODONGOS_CAVERN_MQ_GS_SONG_OF_TIME_BLOCK_ROOM,
|
||||
RC_DODONGOS_CAVERN_MQ_GS_BACK_AREA,
|
||||
RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_1,
|
||||
RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_2,
|
||||
RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_3,
|
||||
RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_4,
|
||||
RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_5,
|
||||
RC_DODONGOS_CAVERN_BOSS_ROOM_CHEST,
|
||||
RC_DODONGOS_CAVERN_KING_DODONGO_HEART,
|
||||
RC_JABU_JABUS_BELLY_BOOMERANG_CHEST,
|
||||
|
@ -1088,6 +1094,11 @@ typedef enum {
|
|||
RC_BOTTOM_OF_THE_WELL_GS_WEST_INNER_ROOM,
|
||||
RC_BOTTOM_OF_THE_WELL_GS_EAST_INNER_ROOM,
|
||||
RC_BOTTOM_OF_THE_WELL_GS_LIKE_LIKE_CAGE,
|
||||
RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1,
|
||||
RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_2,
|
||||
RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_3,
|
||||
RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_4,
|
||||
RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_5,
|
||||
RC_BOTTOM_OF_THE_WELL_MQ_MAP_CHEST,
|
||||
RC_BOTTOM_OF_THE_WELL_MQ_EAST_INNER_ROOM_FREESTANDING_KEY,
|
||||
RC_BOTTOM_OF_THE_WELL_MQ_COMPASS_CHEST,
|
||||
|
@ -1213,6 +1224,21 @@ typedef enum {
|
|||
RC_SHADOW_TEMPLE_SPIKE_WALLS_LEFT_CHEST,
|
||||
RC_SHADOW_TEMPLE_BOSS_KEY_CHEST,
|
||||
RC_SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST,
|
||||
RC_SHADOW_SCYTHE_SILVER_RUPEE_1,
|
||||
RC_SHADOW_SCYTHE_SILVER_RUPEE_2,
|
||||
RC_SHADOW_SCYTHE_SILVER_RUPEE_3,
|
||||
RC_SHADOW_SCYTHE_SILVER_RUPEE_4,
|
||||
RC_SHADOW_SCYTHE_SILVER_RUPEE_5,
|
||||
RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1,
|
||||
RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2,
|
||||
RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3,
|
||||
RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4,
|
||||
RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5,
|
||||
RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_1,
|
||||
RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_2,
|
||||
RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_3,
|
||||
RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_4,
|
||||
RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_5,
|
||||
RC_SHADOW_TEMPLE_GS_LIKE_LIKE_ROOM,
|
||||
RC_SHADOW_TEMPLE_GS_FALLING_SPIKES_ROOM,
|
||||
RC_SHADOW_TEMPLE_GS_SINGLE_GIANT_POT,
|
||||
|
@ -1243,6 +1269,36 @@ typedef enum {
|
|||
RC_SHADOW_TEMPLE_MQ_GS_AFTER_WIND,
|
||||
RC_SHADOW_TEMPLE_MQ_GS_AFTER_SHIP,
|
||||
RC_SHADOW_TEMPLE_MQ_GS_NEAR_BOSS,
|
||||
RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_1,
|
||||
RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_2,
|
||||
RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_3,
|
||||
RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_4,
|
||||
RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_5,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_1,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_2,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_3,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_4,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_5,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_6,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_7,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_8,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_9,
|
||||
RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_10,
|
||||
RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1,
|
||||
RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2,
|
||||
RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3,
|
||||
RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4,
|
||||
RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_1,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_2,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_3,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_4,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_5,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_6,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_7,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_8,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_9,
|
||||
RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_10,
|
||||
RC_SHADOW_TEMPLE_BONGO_BONGO_HEART,
|
||||
RC_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST,
|
||||
RC_SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST,
|
||||
|
@ -1271,6 +1327,21 @@ typedef enum {
|
|||
RC_SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST,
|
||||
RC_SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST,
|
||||
RC_SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST,
|
||||
RC_SPIRIT_GATE_SILVER_RUPEE_1,
|
||||
RC_SPIRIT_GATE_SILVER_RUPEE_2,
|
||||
RC_SPIRIT_GATE_SILVER_RUPEE_3,
|
||||
RC_SPIRIT_GATE_SILVER_RUPEE_4,
|
||||
RC_SPIRIT_GATE_SILVER_RUPEE_5,
|
||||
RC_SPIRIT_BEAMOS_SILVER_RUPEE_1,
|
||||
RC_SPIRIT_BEAMOS_SILVER_RUPEE_2,
|
||||
RC_SPIRIT_BEAMOS_SILVER_RUPEE_3,
|
||||
RC_SPIRIT_BEAMOS_SILVER_RUPEE_4,
|
||||
RC_SPIRIT_BEAMOS_SILVER_RUPEE_5,
|
||||
RC_SPIRIT_BOULDER_SILVER_RUPEE_1,
|
||||
RC_SPIRIT_BOULDER_SILVER_RUPEE_2,
|
||||
RC_SPIRIT_BOULDER_SILVER_RUPEE_3,
|
||||
RC_SPIRIT_BOULDER_SILVER_RUPEE_4,
|
||||
RC_SPIRIT_BOULDER_SILVER_RUPEE_5,
|
||||
RC_SPIRIT_TEMPLE_MQ_CHILD_HAMMER_SWITCH_CHEST,
|
||||
RC_SPIRIT_TEMPLE_MQ_STATUE_ROOM_LULLABY_CHEST,
|
||||
RC_SPIRIT_TEMPLE_MQ_STATUE_ROOM_INVISIBLE_CHEST,
|
||||
|
@ -1283,6 +1354,11 @@ typedef enum {
|
|||
RC_SPIRIT_TEMPLE_BOSS_KEY_CHEST,
|
||||
RC_SPIRIT_TEMPLE_TOPMOST_CHEST,
|
||||
RC_SPIRIT_TEMPLE_MQ_MIRROR_PUZZLE_INVISIBLE_CHEST,
|
||||
RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_1,
|
||||
RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_2,
|
||||
RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_3,
|
||||
RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_4,
|
||||
RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_5,
|
||||
RC_SPIRIT_TEMPLE_GS_METAL_FENCE,
|
||||
RC_SPIRIT_TEMPLE_GS_SUN_ON_FLOOR_ROOM,
|
||||
RC_SPIRIT_TEMPLE_GS_HALL_AFTER_SUN_BLOCK_ROOM,
|
||||
|
@ -1301,6 +1377,16 @@ typedef enum {
|
|||
RC_ICE_CAVERN_GS_SPINNING_SCYTHE_ROOM,
|
||||
RC_ICE_CAVERN_GS_HEART_PIECE_ROOM,
|
||||
RC_ICE_CAVERN_GS_PUSH_BLOCK_ROOM,
|
||||
RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_1,
|
||||
RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_2,
|
||||
RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_3,
|
||||
RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_4,
|
||||
RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_5,
|
||||
RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_1,
|
||||
RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_2,
|
||||
RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_3,
|
||||
RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_4,
|
||||
RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_5,
|
||||
RC_ICE_CAVERN_MQ_MAP_CHEST,
|
||||
RC_ICE_CAVERN_MQ_COMPASS_CHEST,
|
||||
RC_ICE_CAVERN_MQ_FREESTANDING_POH,
|
||||
|
@ -1330,6 +1416,21 @@ typedef enum {
|
|||
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_SECOND_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_THIRD_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUND_MAZE_PATH_FINAL_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3,
|
||||
RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4,
|
||||
RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5,
|
||||
RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3,
|
||||
RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4,
|
||||
RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5,
|
||||
RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3,
|
||||
RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_4,
|
||||
RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_5,
|
||||
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_LEFT_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUND_MQ_FIRST_IRON_KNUCKLE_CHEST,
|
||||
|
@ -1347,7 +1448,31 @@ typedef enum {
|
|||
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_FIRST_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_THIRD_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUND_MQ_MAZE_PATH_SECOND_CHEST,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_3,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_4,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_5,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_3,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_4,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_5,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_6,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_1,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_2,
|
||||
RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_3,
|
||||
RC_GANONS_CASTLE_FOREST_TRIAL_CHEST,
|
||||
RC_FOREST_TRIAL_SILVER_RUPEE_1,
|
||||
RC_FOREST_TRIAL_SILVER_RUPEE_2,
|
||||
RC_FOREST_TRIAL_SILVER_RUPEE_3,
|
||||
RC_FOREST_TRIAL_SILVER_RUPEE_4,
|
||||
RC_FOREST_TRIAL_SILVER_RUPEE_5,
|
||||
RC_FIRE_TRIAL_SILVER_RUPEE_1,
|
||||
RC_FIRE_TRIAL_SILVER_RUPEE_2,
|
||||
RC_FIRE_TRIAL_SILVER_RUPEE_3,
|
||||
RC_FIRE_TRIAL_SILVER_RUPEE_4,
|
||||
RC_FIRE_TRIAL_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST,
|
||||
RC_GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST,
|
||||
RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST,
|
||||
|
@ -1360,8 +1485,18 @@ typedef enum {
|
|||
RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST,
|
||||
RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST,
|
||||
RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST,
|
||||
RC_LIGHT_TRIAL_SILVER_RUPEE_1,
|
||||
RC_LIGHT_TRIAL_SILVER_RUPEE_2,
|
||||
RC_LIGHT_TRIAL_SILVER_RUPEE_3,
|
||||
RC_LIGHT_TRIAL_SILVER_RUPEE_4,
|
||||
RC_LIGHT_TRIAL_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST,
|
||||
RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST,
|
||||
RC_SPIRIT_TRIAL_SILVER_RUPEE_1,
|
||||
RC_SPIRIT_TRIAL_SILVER_RUPEE_2,
|
||||
RC_SPIRIT_TRIAL_SILVER_RUPEE_3,
|
||||
RC_SPIRIT_TRIAL_SILVER_RUPEE_4,
|
||||
RC_SPIRIT_TRIAL_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_DEKU_SCRUB_LEFT,
|
||||
RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT,
|
||||
RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT,
|
||||
|
@ -1369,9 +1504,24 @@ typedef enum {
|
|||
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FREESTANDING_KEY,
|
||||
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_EYE_SWITCH_CHEST,
|
||||
RC_GANONS_CASTLE_MQ_FOREST_TRIAL_FROZEN_EYE_SWITCH_CHEST,
|
||||
RC_FIRE_TRIAL_MQ_SILVER_RUPEE_1,
|
||||
RC_FIRE_TRIAL_MQ_SILVER_RUPEE_2,
|
||||
RC_FIRE_TRIAL_MQ_SILVER_RUPEE_3,
|
||||
RC_FIRE_TRIAL_MQ_SILVER_RUPEE_4,
|
||||
RC_FIRE_TRIAL_MQ_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_MQ_WATER_TRIAL_CHEST,
|
||||
RC_WATER_TRIAL_MQ_SILVER_RUPEE_1,
|
||||
RC_WATER_TRIAL_MQ_SILVER_RUPEE_2,
|
||||
RC_WATER_TRIAL_MQ_SILVER_RUPEE_3,
|
||||
RC_WATER_TRIAL_MQ_SILVER_RUPEE_4,
|
||||
RC_WATER_TRIAL_MQ_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_BOMB_FLOWER_CHEST,
|
||||
RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_EYE_SWITCH_CHEST,
|
||||
RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_1,
|
||||
RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_2,
|
||||
RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_3,
|
||||
RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_4,
|
||||
RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_5,
|
||||
RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_LULLABY_CHEST,
|
||||
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_FIRST_CHEST,
|
||||
RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_INVISIBLE_CHEST,
|
||||
|
@ -1959,6 +2109,37 @@ typedef enum {
|
|||
RG_OCARINA_C_LEFT_BUTTON,
|
||||
RG_OCARINA_C_RIGHT_BUTTON,
|
||||
RG_FISHING_POLE,
|
||||
RG_SILVER_RUPEE_FIRST,
|
||||
RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE = RG_SILVER_RUPEE_FIRST, // for convenience
|
||||
RG_ICE_CAVERN_SLIDING_SILVER_RUPEE,
|
||||
RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE,
|
||||
RG_SPIRIT_GATE_SILVER_RUPEE,
|
||||
RG_SPIRIT_BEAMOS_SILVER_RUPEE,
|
||||
RG_SPIRIT_BOULDER_SILVER_RUPEE,
|
||||
RG_SHADOW_SCYTHE_SILVER_RUPEE,
|
||||
RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE,
|
||||
RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE,
|
||||
RG_FOREST_TRIAL_SILVER_RUPEE,
|
||||
RG_FIRE_TRIAL_SILVER_RUPEE,
|
||||
RG_SPIRIT_TRIAL_SILVER_RUPEE,
|
||||
RG_LIGHT_TRIAL_SILVER_RUPEE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE,
|
||||
RG_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE,
|
||||
RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE,
|
||||
RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE,
|
||||
RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE,
|
||||
RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE,
|
||||
RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE,
|
||||
RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE,
|
||||
RG_FIRE_TRIAL_MQ_SILVER_RUPEE,
|
||||
RG_WATER_TRIAL_MQ_SILVER_RUPEE,
|
||||
RG_SHADOW_TRIAL_MQ_SILVER_RUPEE,
|
||||
RG_SILVER_RUPEE_LAST = RG_SHADOW_TRIAL_MQ_SILVER_RUPEE,
|
||||
RG_MAGICAL_SILVER_RUPEE,
|
||||
RG_HINT,
|
||||
RG_TYCOON_WALLET,
|
||||
RG_BRONZE_SCALE,
|
||||
|
@ -2968,6 +3149,25 @@ typedef enum {
|
|||
RHT_BEEHIVE_SCRUB_TRIO_GROTTO,
|
||||
RHT_BEEHIVE_IN_FRONT_OF_KING_ZORA,
|
||||
RHT_BEEHIVE_BEHIND_KING_ZORA,
|
||||
// Silver Rupees
|
||||
RHT_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE,
|
||||
RHT_ICE_CAVERN_SLIDING_SILVER_RUPEE,
|
||||
RHT_BOTTOM_OF_THE_WELL_BASEMENT_SILVER_RUPEE,
|
||||
RHT_GERUDO_TRAINING_GROUND_BOULDER_SILVER_RUPEE,
|
||||
RHT_GERUDO_TRAINING_GROUND_LAVA_SILVER_RUPEE,
|
||||
RHT_GERUDO_TRAINING_GROUND_TOILET_SILVER_RUPEE,
|
||||
RHT_SPIRIT_GATE_SILVER_RUPEE,
|
||||
RHT_SPIRIT_BEAMOS_SILVER_RUPEE,
|
||||
RHT_SPIRIT_BOULDER_SILVER_RUPEE,
|
||||
RHT_SHADOW_SPINNING_SCYTHE_SILVER_RUPEE,
|
||||
RHT_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE,
|
||||
RHT_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE,
|
||||
RHT_FOREST_TRIAL_SILVER_RUPEE,
|
||||
RHT_FIRE_TRIAL_SILVER_RUPEE,
|
||||
RHT_SPIRIT_TRIAL_SILVER_RUPEE,
|
||||
RHT_LIGHT_TRIAL_SILVER_RUPEE,
|
||||
RHT_DODONGOS_CAVERN_SILVER_RUPEE,
|
||||
// TODO: MQ Silver Rupees
|
||||
// Items
|
||||
RHT_KOKIRI_SWORD,
|
||||
RHT_MASTER_SWORD,
|
||||
|
@ -3207,6 +3407,13 @@ typedef enum {
|
|||
RHT_OCARINA_C_RIGHT_BUTTON,
|
||||
RHT_BRONZE_SCALE,
|
||||
RHT_FISHING_POLE,
|
||||
RHT_ICE_CAVERN_SILVER_RUPEE,
|
||||
RHT_BOTTOM_OF_THE_WELL_SILVER_RUPEE,
|
||||
RHT_GERUDO_TRAINING_GROUNDS_SILVER_RUPEE,
|
||||
RHT_SPIRIT_TEMPLE_SILVER_RUPEE,
|
||||
RHT_SHADOW_TEMPLE_SILVER_RUPEE,
|
||||
RHT_GANONS_CASTLE_SILVER_RUPEE,
|
||||
RHT_MAGICAL_SILVER_RUPEE,
|
||||
RHT_EPONA,
|
||||
// Entrances
|
||||
RHT_DESERT_COLOSSUS_TO_COLOSSUS_GROTTO,
|
||||
|
@ -3662,6 +3869,8 @@ typedef enum {
|
|||
RSK_FISHSANITY_POND_COUNT,
|
||||
RSK_FISHSANITY_AGE_SPLIT,
|
||||
RSK_SHUFFLE_FISHING_POLE,
|
||||
RSK_SHUFFLE_SILVER_RUPEES,
|
||||
RSK_MAGICAL_SILVER_RUPEE,
|
||||
RSK_MAX
|
||||
} RandomizerSettingKey;
|
||||
|
||||
|
@ -3811,6 +4020,16 @@ typedef enum {
|
|||
RO_DUNGEON_ITEM_LOC_ANYWHERE,
|
||||
} RandoOptionDungeonItemLocation;
|
||||
|
||||
// Silver Rupees (vanilla, own dungeon, any dungeon, overworld,
|
||||
// anywhere
|
||||
typedef enum {
|
||||
RO_SILVER_SHUFFLE_VANILLA,
|
||||
RO_SILVER_SHUFFLE_OWN_DUNGEON,
|
||||
RO_SILVER_SHUFFLE_ANY_DUNGEON,
|
||||
RO_SILVER_SHUFFLE_OVERWORLD,
|
||||
RO_SILVER_SHUFFLE_ANYWHERE,
|
||||
} RandoOptionSilverRupeeLocation;
|
||||
|
||||
//Dungeon reward settings
|
||||
typedef enum {
|
||||
RO_DUNGEON_REWARDS_END_OF_DUNGEON,
|
||||
|
|
|
@ -154,7 +154,6 @@ typedef enum {
|
|||
|
||||
RAND_INF_GREG_FOUND,
|
||||
|
||||
|
||||
RAND_INF_TOT_MASTER_SWORD,
|
||||
|
||||
RAND_INF_CHILD_FISHING,
|
||||
|
@ -267,7 +266,162 @@ typedef enum {
|
|||
RAND_INF_ZD_FISH_4,
|
||||
RAND_INF_ZD_FISH_5,
|
||||
|
||||
// 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_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1,
|
||||
RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_2,
|
||||
RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_3,
|
||||
RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_4,
|
||||
RAND_INF_BOTTOM_OF_THE_WELL_SILVER_RUPEE_5,
|
||||
RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_1,
|
||||
RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_2,
|
||||
RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_3,
|
||||
RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_4,
|
||||
RAND_INF_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_5,
|
||||
RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_1,
|
||||
RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_2,
|
||||
RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_3,
|
||||
RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_4,
|
||||
RAND_INF_ICE_CAVERN_SLIDING_SILVER_RUPEE_5,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_6,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_4,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_5,
|
||||
RAND_INF_SPIRIT_GATE_SILVER_RUPEE_1,
|
||||
RAND_INF_SPIRIT_GATE_SILVER_RUPEE_2,
|
||||
RAND_INF_SPIRIT_GATE_SILVER_RUPEE_3,
|
||||
RAND_INF_SPIRIT_GATE_SILVER_RUPEE_4,
|
||||
RAND_INF_SPIRIT_GATE_SILVER_RUPEE_5,
|
||||
RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_1,
|
||||
RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_2,
|
||||
RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_3,
|
||||
RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_4,
|
||||
RAND_INF_SPIRIT_BEAMOS_SILVER_RUPEE_5,
|
||||
RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_1,
|
||||
RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_2,
|
||||
RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_3,
|
||||
RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_4,
|
||||
RAND_INF_SPIRIT_BOULDER_SILVER_RUPEE_5,
|
||||
RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_1,
|
||||
RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_2,
|
||||
RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_3,
|
||||
RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_4,
|
||||
RAND_INF_SHADOW_SCYTHE_SILVER_RUPEE_5,
|
||||
RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1,
|
||||
RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2,
|
||||
RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3,
|
||||
RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4,
|
||||
RAND_INF_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5,
|
||||
RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_1,
|
||||
RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_2,
|
||||
RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_3,
|
||||
RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_4,
|
||||
RAND_INF_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_5,
|
||||
RAND_INF_FOREST_TRIAL_SILVER_RUPEE_1,
|
||||
RAND_INF_FOREST_TRIAL_SILVER_RUPEE_2,
|
||||
RAND_INF_FOREST_TRIAL_SILVER_RUPEE_3,
|
||||
RAND_INF_FOREST_TRIAL_SILVER_RUPEE_4,
|
||||
RAND_INF_FOREST_TRIAL_SILVER_RUPEE_5,
|
||||
RAND_INF_FIRE_TRIAL_SILVER_RUPEE_1,
|
||||
RAND_INF_FIRE_TRIAL_SILVER_RUPEE_2,
|
||||
RAND_INF_FIRE_TRIAL_SILVER_RUPEE_3,
|
||||
RAND_INF_FIRE_TRIAL_SILVER_RUPEE_4,
|
||||
RAND_INF_FIRE_TRIAL_SILVER_RUPEE_5,
|
||||
RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_1,
|
||||
RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_2,
|
||||
RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_3,
|
||||
RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_4,
|
||||
RAND_INF_LIGHT_TRIAL_SILVER_RUPEE_5,
|
||||
RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_1,
|
||||
RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_2,
|
||||
RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_3,
|
||||
RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_4,
|
||||
RAND_INF_SPIRIT_TRIAL_SILVER_RUPEE_5,
|
||||
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_1,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_2,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_3,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_4,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEE_5,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_1,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_2,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_3,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_4,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_5,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_1,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_2,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_3,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_4,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_5,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_6,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_1,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_2,
|
||||
RAND_INF_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_3,
|
||||
RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_1,
|
||||
RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_2,
|
||||
RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_3,
|
||||
RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_4,
|
||||
RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEE_5,
|
||||
RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_1,
|
||||
RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_2,
|
||||
RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_3,
|
||||
RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_4,
|
||||
RAND_INF_SHADOW_MQ_SCYTHE_SILVER_RUPEE_5,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_1,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_2,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_3,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_4,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_5,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_6,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_7,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_8,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_9,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_10,
|
||||
RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1,
|
||||
RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2,
|
||||
RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3,
|
||||
RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4,
|
||||
RAND_INF_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_1,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_2,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_3,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_4,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_5,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_6,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_7,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_8,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_9,
|
||||
RAND_INF_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_10,
|
||||
RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_1,
|
||||
RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_2,
|
||||
RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_3,
|
||||
RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_4,
|
||||
RAND_INF_FIRE_TRIAL_MQ_SILVER_RUPEE_5,
|
||||
RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_1,
|
||||
RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_2,
|
||||
RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_3,
|
||||
RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_4,
|
||||
RAND_INF_WATER_TRIAL_MQ_SILVER_RUPEE_5,
|
||||
RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_1,
|
||||
RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_2,
|
||||
RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_3,
|
||||
RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_4,
|
||||
RAND_INF_SHADOW_TRIAL_MQ_SILVER_RUPEE_5,
|
||||
|
||||
RAND_INF_MAGICAL_SILVER_RUPEE,
|
||||
|
||||
// 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,
|
||||
} RandomizerInf;
|
||||
|
|
|
@ -127,6 +127,8 @@ void Settings::CreateOptions() {
|
|||
mOptions[RSK_KEYSANITY] = Option::U8("Small Keys", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeKeysanity", 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, "gRandomizeGerudoKeys", mOptionDescriptions[RSK_GERUDO_KEYS], WidgetType::Combobox, RO_GERUDO_KEYS_VANILLA);
|
||||
mOptions[RSK_BOSS_KEYSANITY] = Option::U8("Boss Keys", {"Start With", "Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeBossKeysanity", mOptionDescriptions[RSK_BOSS_KEYSANITY], WidgetType::Combobox, RO_DUNGEON_ITEM_LOC_OWN_DUNGEON);
|
||||
mOptions[RSK_SHUFFLE_SILVER_RUPEES] = Option::U8("Silver Rupees", {"Vanilla", "Own Dungeon", "Any Dungeon", "Overworld", "Anywhere"}, OptionCategory::Setting, "gRandomizeSilverRupeeShuffle", mOptionDescriptions[RSK_SHUFFLE_SILVER_RUPEES], WidgetType::Combobox, RO_SILVER_SHUFFLE_VANILLA);
|
||||
mOptions[RSK_MAGICAL_SILVER_RUPEE] = Option::Bool("Magical Silver Rupee", "gRandomizeMagicalSilverRupee", mOptionDescriptions[RSK_MAGICAL_SILVER_RUPEE]);
|
||||
mOptions[RSK_GANONS_BOSS_KEY] = Option::U8("Ganon's Boss Key", {"Vanilla", "Own Dungeon", "Start With", "Any Dungeon", "Overworld", "Anywhere", "LACS-Vanilla", "LACS-Stones", "LACS-Medallions", "LACS-Rewards", "LACS-Dungeons", "LACS-Tokens", "Triforce Hunt"}, OptionCategory::Setting, "gRandomizeShuffleGanonBossKey", mOptionDescriptions[RSK_GANONS_BOSS_KEY], WidgetType::Combobox, RO_GANON_BOSS_KEY_VANILLA);
|
||||
mOptions[RSK_LACS_STONE_COUNT] = Option::U8("Stone Count", {NumOpts(0, 4)}, OptionCategory::Setting, "gRandomizeLacsStoneCount", "", WidgetType::Slider, 3, true);
|
||||
mOptions[RSK_LACS_MEDALLION_COUNT] = Option::U8("Medallion Count", {NumOpts(0, 7)}, OptionCategory::Setting, "gRandomizeLacsMedallionCount", "", WidgetType::Slider, 6, true);
|
||||
|
@ -686,6 +688,8 @@ void Settings::CreateOptions() {
|
|||
&mOptions[RSK_KEYSANITY],
|
||||
&mOptions[RSK_GERUDO_KEYS],
|
||||
&mOptions[RSK_BOSS_KEYSANITY],
|
||||
&mOptions[RSK_SHUFFLE_SILVER_RUPEES],
|
||||
&mOptions[RSK_MAGICAL_SILVER_RUPEE],
|
||||
&mOptions[RSK_GANONS_BOSS_KEY],
|
||||
&mOptions[RSK_LACS_STONE_COUNT],
|
||||
&mOptions[RSK_LACS_MEDALLION_COUNT],
|
||||
|
@ -892,6 +896,8 @@ void Settings::CreateOptions() {
|
|||
&mOptions[RSK_KEYSANITY],
|
||||
&mOptions[RSK_GERUDO_KEYS],
|
||||
&mOptions[RSK_BOSS_KEYSANITY],
|
||||
&mOptions[RSK_SHUFFLE_SILVER_RUPEES],
|
||||
&mOptions[RSK_MAGICAL_SILVER_RUPEE],
|
||||
&mOptions[RSK_GANONS_BOSS_KEY],
|
||||
&mOptions[RSK_LACS_STONE_COUNT],
|
||||
&mOptions[RSK_LACS_MEDALLION_COUNT],
|
||||
|
@ -1647,6 +1653,13 @@ void Settings::UpdateOptionProperties() {
|
|||
} else {
|
||||
mOptions[RSK_GANONS_BOSS_KEY].Enable();
|
||||
}
|
||||
if (CVarGetInteger("gRandomizeSilverRupeeShuffle", RO_SILVER_SHUFFLE_VANILLA) != RO_SILVER_SHUFFLE_VANILLA) {
|
||||
mOptions[RSK_SHUFFLE_SILVER_RUPEES].RemoveFlag(IMFLAG_SEPARATOR_BOTTOM);
|
||||
mOptions[RSK_MAGICAL_SILVER_RUPEE].Unhide();
|
||||
} else {
|
||||
mOptions[RSK_SHUFFLE_SILVER_RUPEES].AddFlag(IMFLAG_SEPARATOR_BOTTOM);
|
||||
mOptions[RSK_MAGICAL_SILVER_RUPEE].Hide();
|
||||
}
|
||||
mOptions[RSK_GANONS_BOSS_KEY].RemoveFlag(IMFLAG_SEPARATOR_BOTTOM);
|
||||
mOptions[RSK_LACS_OPTIONS].Hide();
|
||||
mOptions[RSK_LACS_STONE_COUNT].Hide();
|
||||
|
@ -1771,6 +1784,11 @@ void Settings::FinalizeSettings(const std::set<RandomizerCheck>& excludedLocatio
|
|||
mOptions[RSK_GANONS_BOSS_KEY].SetSelectedIndex(RO_GANON_BOSS_KEY_TRIFORCE_HUNT);
|
||||
}
|
||||
|
||||
// Force Magical Silver Rupee off if Silver Rupee Shuffle is off.
|
||||
if (mOptions[RSK_SHUFFLE_SILVER_RUPEES].Is(RO_SILVER_SHUFFLE_VANILLA)) {
|
||||
mOptions[RSK_MAGICAL_SILVER_RUPEE].SetSelectedIndex(RO_GENERIC_OFF);
|
||||
}
|
||||
|
||||
// Force 100 GS Shuffle if that's where Ganon's Boss Key is
|
||||
if (mOptions[RSK_GANONS_BOSS_KEY].Is(RO_GANON_BOSS_KEY_KAK_TOKENS)) {
|
||||
mOptions[RSK_SHUFFLE_100_GS_REWARD].SetSelectedIndex(1);
|
||||
|
|
|
@ -0,0 +1,321 @@
|
|||
#include <unordered_map>
|
||||
#include "silver_rupee.h"
|
||||
#include "static_data.h"
|
||||
#include "randomizer.h"
|
||||
|
||||
namespace Rando {
|
||||
|
||||
std::unordered_map<Identifier, RandomizerGet> StaticData::silverTrackerMap = {
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, 328 }, RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE },
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, 329 }, RG_ICE_CAVERN_SLIDING_SILVER_RUPEE },
|
||||
{ { SCENE_BOTTOM_OF_THE_WELL, RCQUEST_VANILLA, 351 }, RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, 348 }, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, 332 }, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, 347 }, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, 325 }, RG_SPIRIT_GATE_SILVER_RUPEE },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, 330 }, RG_SPIRIT_BEAMOS_SILVER_RUPEE },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, 322 }, RG_SPIRIT_BOULDER_SILVER_RUPEE },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, 321 }, RG_SHADOW_SCYTHE_SILVER_RUPEE },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, 329 }, RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, 328 }, RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, 334 }, RG_FOREST_TRIAL_SILVER_RUPEE },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, 329 }, RG_FIRE_TRIAL_SILVER_RUPEE },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, 331 }, RG_SPIRIT_TRIAL_SILVER_RUPEE },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, 338 }, RG_LIGHT_TRIAL_SILVER_RUPEE },
|
||||
// MQ
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, 348 }, RG_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, 396 }, RG_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, 219 }, RG_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE },
|
||||
{ { SCENE_DODONGOS_CAVERN, RCQUEST_MQ, 357 }, RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, 321 }, RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, 643 }, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, 337 }, RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, 648 }, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_MQ, 375 }, RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, 322 }, RG_WATER_TRIAL_MQ_SILVER_RUPEE },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, 331 }, RG_SHADOW_TRIAL_MQ_SILVER_RUPEE },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, 321 }, RG_FIRE_TRIAL_MQ_SILVER_RUPEE },
|
||||
};
|
||||
|
||||
std::unordered_map<Position, RandomizerCheck> StaticData::silverRupeeMap = {
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, {389.0f, 0.0f, -382.0f } }, RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_2 },
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, {414.0f, 178.0f, -579.0f} }, RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_1 },
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, {278.0f, 0.0f, -637.0f } }, RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_3 },
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, { 198.0f, 0.0f, -388.0f } }, RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_4 },
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, { 1.0f, 0.0f, -143.0f } }, RC_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE_5 },
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, { -1040.0f, 112.0f, -485.0f } }, RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_1 },
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, { -1120.0f, 119.0f, -1577.0f } }, RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_2 },
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, { -1294.0f, 113.0f, -899.0f } }, RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_3 },
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, { -1558.0f, 41.0f, -951.0f } }, RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_4 },
|
||||
{ { SCENE_ICE_CAVERN, RCQUEST_VANILLA, { -1676.0f, 112.0f, -552.0f } }, RC_ICE_CAVERN_SLIDING_SILVER_RUPEE_5 },
|
||||
{ { SCENE_BOTTOM_OF_THE_WELL, RCQUEST_VANILLA, { -259.0f, -708.0f, -234.0f } }, RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_1 },
|
||||
{ { SCENE_BOTTOM_OF_THE_WELL, RCQUEST_VANILLA, { -402.0f, -701.0f, -401.0f } }, RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_2 },
|
||||
{ { SCENE_BOTTOM_OF_THE_WELL, RCQUEST_VANILLA, { -560.0f, -720.0f, -291.0f } }, RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_3 },
|
||||
{ { SCENE_BOTTOM_OF_THE_WELL, RCQUEST_VANILLA, { -614.0f, -465.0f, -297.0f } }, RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_4 },
|
||||
{ { SCENE_BOTTOM_OF_THE_WELL, RCQUEST_VANILLA, { -796.0f, 0.0f, -150.0f } }, RC_BOTTOM_OF_THE_WELL_SILVER_RUPEE_5 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { -1887.0f, 160.0f, -2134.0f } }, RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_1 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { -1627.0f, 182.0f, -1462.0f } }, RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_2 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { -1579.0f, 236.0f, -999.0f } }, RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_3 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { -1886.0f, -80.0f, -956.0f } }, RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_4 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { -1332.0f, -80.0f, -992.0f } }, RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { 1560.0f, -239.0f, -1861.0f } }, RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_1 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { 1437.0f, 30.0f, -2193.0f } }, RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_2 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { 1134.0f, -239.0f, -1841.0f } }, RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_3 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { 1558.0f, -239.0f, -1370.0f } }, RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_4 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { 1320.0f, -239.0f, -1248.0f } }, RC_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE_5 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { 2160.0f, -900.0f, -1315.0f } }, RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_1 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { 2078.0f, -806.0f, -1458.0f } }, RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_2 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { 2453.0f, -890.0f, -1612.0f } }, RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_3 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { 2497.0f, -605.0f, -1465.0f } }, RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_4 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_VANILLA, { 2308.0f, -961.0f, -1464.0f } }, RC_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { -335.0f, 30.0f, -1409.0f } }, RC_SPIRIT_GATE_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { -347.0f, 229.0f, -1075.0f } }, RC_SPIRIT_GATE_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { -511.0f, 50.0f, -1075.0f } }, RC_SPIRIT_GATE_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { -672.0f, 50.0f, -1075.0f } }, RC_SPIRIT_GATE_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { -766.0f, 229.0f, -1075.0f } }, RC_SPIRIT_GATE_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { -984.0f, 923.0f, -450.0f } }, RC_SPIRIT_BEAMOS_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { -1123.0f, 923.0f, 428.0f } }, RC_SPIRIT_BEAMOS_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { -1275.0f, 922.0f, -247.0f } }, RC_SPIRIT_BEAMOS_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { -1433.0f, 913.0f, -283.0f } }, RC_SPIRIT_BEAMOS_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { -1836.0f, 923.0f, -446.0f } }, RC_SPIRIT_BEAMOS_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { 1573.0f, -33.0f, -920.0f } }, RC_SPIRIT_BOULDER_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { 1856.0f, -33.0f, -1219.0f } }, RC_SPIRIT_BOULDER_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { 1856.0f, -33.0f, -944.0f } }, RC_SPIRIT_BOULDER_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { 1284.0f, -33.0f, -813.0f } }, RC_SPIRIT_BOULDER_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_VANILLA, { 1284.0f, -33.0f, -1355.0f } }, RC_SPIRIT_BOULDER_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 3399.0f, -543.0f, -838.0f } }, RC_SHADOW_SCYTHE_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 2869.0f, -543.0f, -948.0f } }, RC_SHADOW_SCYTHE_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 3554.0f, -543.0f, -1432.0f } }, RC_SHADOW_SCYTHE_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 3007.0f, -423.0f, -1222.0f } }, RC_SHADOW_SCYTHE_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 3243.0f, -543.0f, -1061.0f } }, RC_SHADOW_SCYTHE_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 1998.0f, -1343.0f, 3358.0f } }, RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 2243.0f, -1343.0f, 3361.0f } }, RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 2110.0f, -1343.0f, 3368.0f } }, RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 2115.0f, -1343.0f, 3738.0f } }, RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 2131.0f, -1343.0f, 3030.0f } }, RC_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 2254.0f, -1197.0f, 988.0f } }, RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 2135.0f, -1225.0f, 1297.0f } }, RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 2478.0f, -1343.0f, 1208.0f } }, RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 2940.0f, -1268.0f, 1069.0f } }, RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_VANILLA, { 2042.0f, -1203.0f, 849.0f } }, RC_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE_5 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { 1634.0f, 164.0f, 1550.0f } }, RC_FOREST_TRIAL_SILVER_RUPEE_1 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { 1651.0f, 30.0f, 2021.0f } }, RC_FOREST_TRIAL_SILVER_RUPEE_2 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { 1538.0f, 118.0f, 2225.0f } }, RC_FOREST_TRIAL_SILVER_RUPEE_3 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { 1361.0f, 115.0f, 1222.0f } }, RC_FOREST_TRIAL_SILVER_RUPEE_4 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { 1247.0f, 59.0f, 1787.0f } }, RC_FOREST_TRIAL_SILVER_RUPEE_5 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -1867.0f, 227.0f, -2754.0f } }, RC_FIRE_TRIAL_SILVER_RUPEE_1 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -604.0f, 133.0f, -2592.0f } }, RC_FIRE_TRIAL_SILVER_RUPEE_2 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -515.0f, 133.0f, -3253.0f } }, RC_FIRE_TRIAL_SILVER_RUPEE_3 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -1555.0f, 151.0f, -2317.0f } }, RC_FIRE_TRIAL_SILVER_RUPEE_4 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -854.0f, 152.0f, -3679.0f } }, RC_FIRE_TRIAL_SILVER_RUPEE_5 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -1142.0f, 165.0f, 639.0f } }, RC_SPIRIT_TRIAL_SILVER_RUPEE_1 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -725.0f, 165.0f, 942.0f } }, RC_SPIRIT_TRIAL_SILVER_RUPEE_2 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -865.0f, 165.0f, 656.0f } }, RC_SPIRIT_TRIAL_SILVER_RUPEE_3 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -940.0f, 165.0f, 270.0f } }, RC_SPIRIT_TRIAL_SILVER_RUPEE_4 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -829.0f, 274.0f, 591.0f } }, RC_SPIRIT_TRIAL_SILVER_RUPEE_5 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -2674.0f, -240.0f, -777.0f } }, RC_LIGHT_TRIAL_SILVER_RUPEE_1 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -2680.0f, -240.0f, -893.0f } }, RC_LIGHT_TRIAL_SILVER_RUPEE_2 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -2646.0f, -120.0f, -839.0f } }, RC_LIGHT_TRIAL_SILVER_RUPEE_3 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -2649.0f, -240.0f, -545.0f } }, RC_LIGHT_TRIAL_SILVER_RUPEE_4 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_VANILLA, { -2509.0f, -240.0f, -1091.0f } }, RC_LIGHT_TRIAL_SILVER_RUPEE_5 },
|
||||
// MQ
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { -1261.0f, -112.0f, -923.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_1 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { -1886.0f, -80.0f, -956.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_2 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { -1480.0f, 200.0f, -1000.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_3 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { -1542.0f, 53.0f, -1476.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE_4 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { -1245.0f, 160.0f, -2112.0f } }, RC_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE_5 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { 1317.0f, -239.0f, -1243.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_1 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { 1083.0f, -239.0f, -1374.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_2 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { 1560.0f, -239.0f, -1380.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_3 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { 1404.0f, -239.0f, -1653.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_4 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { 1134.0f, -239.0f, -1841.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_5 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { 1560.0f, -239.0f, -1861.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE_6 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { 2160.0f, -900.0f, -1315.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_1 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { 2302.0f, -797.0f, -1464.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_2 },
|
||||
{ { SCENE_GERUDO_TRAINING_GROUND, RCQUEST_MQ, { 2453.0f, -890.0f, -1612.0f } }, RC_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE_3 },
|
||||
{ { SCENE_DODONGOS_CAVERN, RCQUEST_MQ, { -1512.0f, 531.0f, -1083.0f } }, RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_1 },
|
||||
{ { SCENE_DODONGOS_CAVERN, RCQUEST_MQ, { -1907.0f, 627.0f, -1243.0f } }, RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_2 },
|
||||
{ { SCENE_DODONGOS_CAVERN, RCQUEST_MQ, { -2411.0f, 380.0f, -1836.0f } }, RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_3 },
|
||||
{ { SCENE_DODONGOS_CAVERN, RCQUEST_MQ, { -2189.0f, 0.0f, -1834.0f } }, RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_4 },
|
||||
{ { SCENE_DODONGOS_CAVERN, RCQUEST_MQ, { -2277.0f, 0.0f, -1362.0f } }, RC_DODONGOS_CAVERN_MQ_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 3558.0f, -543.0f, -1490.0f } }, RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 3399.0f, -543.0f, -838.0f } }, RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 3243.0f, -543.0f, -1061.0f } }, RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 3007.0f, -423.0f, -1222.0f } }, RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2810.0f, -543.0f, -961.0f } }, RC_SHADOW_MQ_SCYTHE_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 5667.0f, -1043.0f, 2686.0f } }, RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 5637.0f, -1143.0f, 2134.0f } }, RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 5601.0f, -1143.0f, 1898.0f } }, RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 5489.0f, -1143.0f, 2476.0f } }, RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 5466.0f, -1143.0f, 2243.0f } }, RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 5404.0f, -1143.0f, 1977.0f } }, RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_6 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 5270.0f, -1143.0f, 2453.0f } }, RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_7 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 5217.0f, -1143.0f, 1852.0f } }, RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_8 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 5158.0f, -1143.0f, 2315.0f } }, RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_9 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 5089.0f, -1143.0f, 2049.0f } }, RC_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE_10 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2250.0f, -1343.0f, 3372.0f } }, RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2131.0f, -1343.0f, 3030.0f } }, RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2110.0f, -970.0f, 3372.0f } }, RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2110.0f, -1092.0f, 3372.0f } }, RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 1970.0f, -1343.0f, 3372.0f } }, RC_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2940.0f, -1265.0f, 1069.0f } }, RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2730.0f, -1203.0f, 876.0f } }, RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2705.0f, -1329.0f, 1089.0f } }, RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2478.0f, -1100.0f, 1404.0f } }, RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2478.0f, -1100.0f, 1200.0f } }, RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_5 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2478.0f, -1343.0f, 1208.0f } }, RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_6 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2478.0f, -975.0f, 893.0f } }, RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_7 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2254.0f, -1203.0f, 988.0f } }, RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_8 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2135.0f, -1225.0f, 1297.0f } }, RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_9 },
|
||||
{ { SCENE_SHADOW_TEMPLE, RCQUEST_MQ, { 2042.0f, -1203.0f, 849.0f } }, RC_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE_10 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_MQ, { 744.0f, -50.0f, 4.0f } }, RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_1 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_MQ, { 967.0f, 0.0f, -547.0f } }, RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_2 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_MQ, { -160.0f, -150.0f, 270.0f } }, RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_3 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_MQ, { 160.0f, -150.0f, 268.0f } }, RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_4 },
|
||||
{ { SCENE_SPIRIT_TEMPLE, RCQUEST_MQ, { 1016.0f, -50.0f, -73.0f } }, RC_SPIRIT_MQ_LOBBY_SILVER_RUPEE_5 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { 2905.0f, -320.0f, -1263.0f } }, RC_WATER_TRIAL_MQ_SILVER_RUPEE_1 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { 3253.0f, -314.0f, -649.0f } }, RC_WATER_TRIAL_MQ_SILVER_RUPEE_2 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { 2905.0f, -120.0f, -1478.0f } }, RC_WATER_TRIAL_MQ_SILVER_RUPEE_3 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { 2912.0f, -219.0f, -971.0f } }, RC_WATER_TRIAL_MQ_SILVER_RUPEE_4 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { 2757.0f, -420.0f, -765.0f } }, RC_WATER_TRIAL_MQ_SILVER_RUPEE_5 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { 1100.0f, 150.0f, -2554.0f } }, RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_1 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { 1829.0f, 152.0f, -4071.0f } }, RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_2 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { 1529.0f, 150.0f, -4117.0f } }, RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_3 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { 1279.0f, 150.0f, -3111.0f } }, RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_4 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { 1322.0f, 150.0f, -2262.0f } }, RC_SHADOW_TRIAL_MQ_SILVER_RUPEE_5 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { -1655.0f, 120.0f, -2133.0f } }, RC_FIRE_TRIAL_MQ_SILVER_RUPEE_1 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { -686.0f, 640.0f, -2945.0f } }, RC_FIRE_TRIAL_MQ_SILVER_RUPEE_2 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { -2044.0f, 244.0f, -3354.0f } }, RC_FIRE_TRIAL_MQ_SILVER_RUPEE_3 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { -1891.0f, 222.0f, -2753.0f } }, RC_FIRE_TRIAL_MQ_SILVER_RUPEE_4 },
|
||||
{ { SCENE_INSIDE_GANONS_CASTLE, RCQUEST_MQ, { -970.0f, 152.0f, -3747.0f } }, RC_FIRE_TRIAL_MQ_SILVER_RUPEE_5 },
|
||||
};
|
||||
std::unordered_map<RandomizerGet, Text> SilverRupees::mSilverRupeeRoomNames = {
|
||||
// TODO: Translate
|
||||
// "English" "German" "French"
|
||||
{ RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE, { "Ice Cavern's Spinning Blades Room", "Ice Cavern's Spinning Blades Room", "Ice Cavern's Spinning Blades Room" } },
|
||||
{ RG_ICE_CAVERN_SLIDING_SILVER_RUPEE, { "Ice Cavern's Block Sliding Puzzle Room", "Ice Cavern's Block Sliding Puzzle Room", "Ice Cavern's Block Sliding Puzzle Room" } },
|
||||
{ RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE, { "Bottom of the Well", "Bottom of the Well", "Bottom of the Well" } },
|
||||
{ RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE, { "Boulder Maze in the Gerudo Training Grounds", "Boulder Maze in the Gerudo Training Grounds", "Boulder Maze in the Gerudo Training Grounds" } },
|
||||
{ RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE, { "Lava room in the Gerudo Training Grounds", "Lava room in the Gerudo Training Grounds", "Lava room in the Gerudo Training Grounds" } },
|
||||
{ RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE, { "Whirlpool room in the Gerudo Training Grounds", "Whirlpool room in the Gerudo Training Grounds", "Whirlpool room in the Gerudo Training Grounds" } },
|
||||
{ RG_SPIRIT_GATE_SILVER_RUPEE, { "Gate room in the Spirit Temple", "Gate room in the Spirit Temple", "Gate room in the Spirit Temple" } },
|
||||
{ RG_SPIRIT_BEAMOS_SILVER_RUPEE, { "Beamos room in the Spirit Temple", "Beamos room in the Spirit Temple", "Beamos room in the Spirit Temple" } },
|
||||
{ RG_SPIRIT_BOULDER_SILVER_RUPEE, { "Boulder room in the Spirit Temple", "Boulder room in the Spirit Temple", "Boulder room in the Spirit Temple" } },
|
||||
{ RG_SHADOW_SCYTHE_SILVER_RUPEE, { "Spinning Scythes room in the Shadow Temple", "Spinning Scythes room in the Shadow Temple", "Spinning Scythes room in the Shadow Temple" } },
|
||||
{ RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, { "door to the Falling Spikes room in the Shadow Temple", "door to the Falling Spikes room in the Shadow Temple", "door to the Falling Spikes room in the Shadow Temple" } },
|
||||
{ RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE, { "room with Invisible Spikes in the Shadow Temple", "room with Invisible Spikes in the Shadow Temple", "room with Invisible Spikes in the Shadow Temple" } },
|
||||
{ RG_FOREST_TRIAL_SILVER_RUPEE, { "Forest Trial in Ganon's Castle", "Forest Trial in Ganon's Castle", "Forest Trial in Ganon's Castle" } },
|
||||
{ RG_FIRE_TRIAL_SILVER_RUPEE, { "Fire Trial in Ganon's Castle", "Fire Trial in Ganon's Castle", "Fire Trial in Ganon's Castle" } },
|
||||
{ RG_SPIRIT_TRIAL_SILVER_RUPEE, { "Spirit Trial in Ganon's Castle", "Spirit Trial in Ganon's Castle", "Spirit Trial in Ganon's Castle" } },
|
||||
{ RG_LIGHT_TRIAL_SILVER_RUPEE, { "Light Trial in Ganon's Castle", "Light Trial in Ganon's Castle", "Light Trial in Ganon's Castle" } },
|
||||
{ RG_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE, { "Boulder Maze in the Gerudo Training Grounds", "Boulder Maze in the Gerudo Training Grounds", "Boulder Maze in the Gerudo Training Grounds" } },
|
||||
{ RG_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE, { "Lava room in the Gerudo Training Grounds", "Lava room in the Gerudo Training Grounds", "Lava room in the Gerudo Training Grounds" } },
|
||||
{ RG_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE, { "Whirlpool room in the Gerudo Training Grounds", "Whirlpool room in the Gerudo Training Grounds", "Whirlpool room in the Gerudo Training Grounds" } },
|
||||
{ RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE, { "Dodongo's Cavern Staircase Room", "Dodongo's Cavern Staircase Room", "Dodongo's Cavern Staircase Room" } },
|
||||
{ RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE, { "Spirit Temple Lobby", "Spirit Temple Lobby", "Spirit Temple Lobby" } },
|
||||
{ RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE, { "Spinning Scythes room in the Shadow Temple", "Spinning Scythes room in the Shadow Temple", "Spinning Scythes room in the Shadow Temple" } },
|
||||
{ RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE, { "door to the Falling Spikes room in the Shadow Temple", "door to the Falling Spikes room in the Shadow Temple", "door to the Falling Spikes room in the Shadow Temple" } },
|
||||
{ RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE, { "room with Invisible Spikes in the Shadow Temple", "room with Invisible Spikes in the Shadow Temple", "room with Invisible Spikes in the Shadow Temple" } },
|
||||
{ RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE, { "Invisible Scythes room in the Shadow Temple", "Invisible Scythes room in the Shadow Temple", "Invisible Scythes room in the Shadow Temple" } },
|
||||
{ RG_WATER_TRIAL_MQ_SILVER_RUPEE, { "Water Trial in Ganon's Castle", "Water Trial in Ganon's Castle", "Water Trial in Ganon's Castle" } },
|
||||
{ RG_SHADOW_TRIAL_MQ_SILVER_RUPEE, { "Shadow Trial in Ganon's Castle", "Shadow Trial in Ganon's Castle", "Shadow Trial in Ganon's Castle" } },
|
||||
{ RG_FIRE_TRIAL_MQ_SILVER_RUPEE, { "Fire Trial in Ganon's Castle", "Fire Trial in Ganon's Castle", "Fire Trial in Ganon's Castle" } },
|
||||
};
|
||||
|
||||
SilverRupees::SilverRupees() {
|
||||
mSilverRupees = {
|
||||
// Vanilla
|
||||
SilverRupeesInfo(5, RG_ICE_CAVERN_SPINNING_BLADES_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_ICE_CAVERN_SLIDING_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_BOTTOM_OF_THE_WELL_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_GERUDO_TRAINING_GROUNDS_BOULDER_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_GERUDO_TRAINING_GROUNDS_LAVA_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_GERUDO_TRAINING_GROUNDS_TOILET_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_SPIRIT_BEAMOS_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_SPIRIT_BOULDER_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_SHADOW_SCYTHE_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_SHADOW_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_SHADOW_INVISIBLE_SPIKES_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_FOREST_TRIAL_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_FIRE_TRIAL_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_SPIRIT_TRIAL_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_LIGHT_TRIAL_SILVER_RUPEE),
|
||||
// MQ
|
||||
SilverRupeesInfo(5, RG_GERUDO_TRAINING_GROUNDS_MQ_BOULDER_SILVER_RUPEE),
|
||||
SilverRupeesInfo(6, RG_GERUDO_TRAINING_GROUNDS_MQ_LAVA_SILVER_RUPEE),
|
||||
SilverRupeesInfo(3, RG_GERUDO_TRAINING_GROUNDS_MQ_TOILET_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_DODONGOS_CAVERN_MQ_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_SPIRIT_MQ_LOBBY_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_SHADOW_MQ_SCYTHE_SILVER_RUPEE),
|
||||
SilverRupeesInfo(10, RG_SHADOW_MQ_INVISIBLE_SCYTHE_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_SHADOW_MQ_OUTSIDE_SPIKE_RAIN_SILVER_RUPEE),
|
||||
SilverRupeesInfo(10, RG_SHADOW_MQ_INVISIBLE_SPIKES_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_FIRE_TRIAL_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_WATER_TRIAL_MQ_SILVER_RUPEE),
|
||||
SilverRupeesInfo(5, RG_SHADOW_TRIAL_MQ_SILVER_RUPEE),
|
||||
};
|
||||
}
|
||||
|
||||
CustomMessage SilverRupees::GetSilverRupeeMessage(u16 rgid) {
|
||||
CustomMessage messageEntry;
|
||||
if (rgid >= RG_SILVER_RUPEE_FIRST && rgid <= RG_SILVER_RUPEE_LAST) {
|
||||
messageEntry =
|
||||
CustomMessageManager::Instance->RetrieveMessage(Randomizer::getItemMessageTableID, RG_SILVER_RUPEE_FIRST);
|
||||
auto ctx = Rando::Context::GetInstance();
|
||||
// Get the collected amount + 1, since the text is retrieved before the count is incremented in `Randomizer_Item_Give`
|
||||
int srCount = ctx->GetSilverRupees()->GetInfo(static_cast<RandomizerGet>(rgid)).GetCollected() + 1;
|
||||
bool complete = ctx->GetSilverRupees()->GetInfo(static_cast<RandomizerGet>(rgid)).GetTotal() <= srCount;
|
||||
if (complete) {
|
||||
messageEntry.Replace("{{count_text}}", "That's all of them");
|
||||
} else {
|
||||
messageEntry.Replace("{{count_text}}", "You have collected %g{{count}}%w of them so far");
|
||||
messageEntry.Replace("{{count}}", std::to_string(srCount));
|
||||
}
|
||||
}/* else if (rgid >= RG_SILVER_RUPEE_POUCH_FIRST && rgid <= RG_SILVER_RUPEE_POUCH_LAST) {
|
||||
messageEntry =
|
||||
CustomMessageManager::Instance->RetrieveMessage(Randomizer::getItemMessageTableID, RG_SILVER_RUPEE_POUCH_FIRST);
|
||||
}*/
|
||||
u16 roomNameKey =
|
||||
/*(rgid >= RG_SILVER_RUPEE_POUCH_FIRST) ? (rgid - RG_SILVER_RUPEE_POUCH_FIRST) + RG_SILVER_RUPEE_FIRST :*/ rgid;
|
||||
Text locationNames = mSilverRupeeRoomNames[(RandomizerGet)roomNameKey];
|
||||
messageEntry.Replace("{{location}}", locationNames.english.c_str(), locationNames.german.c_str(), locationNames.french.c_str());
|
||||
return messageEntry;
|
||||
}
|
||||
|
||||
size_t SilverRupees::GetInfoListSize() {
|
||||
return mSilverRupees.size();
|
||||
}
|
||||
|
||||
void SilverRupees::ResetAll() {
|
||||
for (auto& silverRupee : mSilverRupees) {
|
||||
silverRupee.Reset();
|
||||
}
|
||||
}
|
||||
|
||||
SilverRupeesInfo &SilverRupees::GetInfo(RandomizerGet rgid) {
|
||||
return mSilverRupees[rgid - RG_SILVER_RUPEE_FIRST];
|
||||
}
|
||||
|
||||
SilverRupeesInfo::SilverRupeesInfo(uint8_t total, RandomizerGet randoGet) : mCollected(0), mTotal(total), mRandoGet(randoGet) {
|
||||
|
||||
}
|
||||
|
||||
uint8_t SilverRupeesInfo::GetCollected() const {
|
||||
return mCollected;
|
||||
}
|
||||
|
||||
uint8_t SilverRupeesInfo::GetTotal() const {
|
||||
return mTotal;
|
||||
}
|
||||
|
||||
SilverRupeesInfo::SilverRupeesInfo() : mCollected(0), mTotal(0), mRandoGet(RG_NONE) {
|
||||
|
||||
}
|
||||
|
||||
void SilverRupeesInfo::IncrementCollected(uint8_t amount) {
|
||||
mCollected += amount;
|
||||
}
|
||||
void SilverRupeesInfo::Reset() {
|
||||
mCollected = 0;
|
||||
}
|
||||
} // namespace Rando
|
|
@ -0,0 +1,43 @@
|
|||
#ifndef SHIP_SILVER_RUPEE_H
|
||||
#define SHIP_SILVER_RUPEE_H
|
||||
|
||||
#include <cstdint>
|
||||
#include <array>
|
||||
#include "randomizerTypes.h"
|
||||
#include "soh/Enhancements/randomizer/3drando/text.hpp"
|
||||
#include "soh/Enhancements/custom-message/CustomMessageManager.h"
|
||||
|
||||
namespace Rando {
|
||||
|
||||
class SilverRupeesInfo {
|
||||
public:
|
||||
SilverRupeesInfo();
|
||||
SilverRupeesInfo(uint8_t total, RandomizerGet randoGet);
|
||||
|
||||
uint8_t GetCollected() const;
|
||||
uint8_t GetTotal() const;
|
||||
void IncrementCollected(uint8_t amount = 1);
|
||||
void Reset();
|
||||
private:
|
||||
uint8_t mCollected = 0;
|
||||
uint8_t mTotal;
|
||||
RandomizerGet mRandoGet;
|
||||
|
||||
};
|
||||
|
||||
class SilverRupees {
|
||||
public:
|
||||
SilverRupees();
|
||||
|
||||
SilverRupeesInfo& GetInfo(RandomizerGet rgid);
|
||||
size_t GetInfoListSize();
|
||||
void ResetAll();
|
||||
static CustomMessage GetSilverRupeeMessage(u16 rgid);
|
||||
private:
|
||||
std::array<SilverRupeesInfo, RG_SILVER_RUPEE_LAST - RG_SILVER_RUPEE_FIRST + 1> mSilverRupees;
|
||||
static std::unordered_map<RandomizerGet, Text> mSilverRupeeRoomNames;
|
||||
};
|
||||
|
||||
} // Rando
|
||||
|
||||
#endif //SHIP_SILVER_RUPEE_H
|
|
@ -7,6 +7,17 @@
|
|||
#include "location.h"
|
||||
|
||||
namespace Rando {
|
||||
struct Position{
|
||||
SceneID scene;
|
||||
RandomizerCheckQuest quest;
|
||||
Vec3f pos;
|
||||
};
|
||||
|
||||
struct Identifier {
|
||||
SceneID scene;
|
||||
RandomizerCheckQuest quest;
|
||||
int16_t params;
|
||||
};
|
||||
/**
|
||||
* @brief Singleton for storing and accessing static Randomizer-related data
|
||||
*
|
||||
|
@ -37,7 +48,39 @@ class StaticData {
|
|||
static std::vector<RandomizerCheck> overworldFishLocations;
|
||||
static std::array<std::pair<RandomizerCheck, RandomizerCheck>, 17> randomizerFishingPondFish;
|
||||
static std::unordered_map<int8_t, RandomizerCheck> randomizerGrottoFishMap;
|
||||
static std::unordered_map<Position, RandomizerCheck> silverRupeeMap;
|
||||
static std::unordered_map<Identifier, RandomizerGet> silverTrackerMap;
|
||||
StaticData();
|
||||
~StaticData();
|
||||
};
|
||||
}
|
||||
|
||||
namespace std {
|
||||
template<>
|
||||
struct hash<Rando::Position> {
|
||||
inline size_t operator()(const Rando::Position& pos) const {
|
||||
return hash<int>{}(pos.scene) ^ hash<int>{}(pos.quest) ^ hash<float>{}(pos.pos.x) ^ hash<float>{}(pos.pos.y) ^ hash<float>{}(pos.pos.z);
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
struct hash<Rando::Identifier> {
|
||||
inline size_t operator()(const Rando::Identifier& id) const {
|
||||
return hash<int>{}(id.scene) ^ hash<int>{}(id.quest) ^ hash<int>{}(id.params);
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
struct equal_to<Rando::Position> {
|
||||
inline bool operator()(const Rando::Position& a, const Rando::Position& b) const {
|
||||
return a.scene == b.scene && a.pos.x == b.pos.x && a.pos.y == b.pos.y && a.pos.z == b.pos.z;
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
struct equal_to<Rando::Identifier> {
|
||||
inline bool operator()(const Rando::Identifier& a, const Rando::Identifier& b) const {
|
||||
return a.scene == b.scene && a.params == b.params && a.quest == b.quest;
|
||||
}
|
||||
};
|
||||
}
|
|
@ -2458,6 +2458,10 @@ extern "C" void Randomizer_SetPlandoLoaded(bool plandoLoaded) {
|
|||
OTRGlobals::Instance->gRandoContext->SetPlandoLoaded(plandoLoaded);
|
||||
}
|
||||
|
||||
extern "C" void Randomizer_IncrementSilverRupeeCount(RandomizerGet rgid, uint8_t amount) {
|
||||
OTRGlobals::Instance->gRandoContext->GetSilverRupees()->GetInfo(rgid).IncrementCollected(amount);
|
||||
}
|
||||
|
||||
CustomMessage Randomizer_GetCustomGetItemMessage(Player* player) {
|
||||
s16 giid;
|
||||
if (player->getItemEntry.objectId != OBJECT_INVALID) {
|
||||
|
@ -2488,6 +2492,8 @@ extern "C" int CustomMessage_RetrieveIfExists(PlayState* play) {
|
|||
}
|
||||
} else if (player->getItemEntry.getItemId == RG_TRIFORCE_PIECE) {
|
||||
messageEntry = Randomizer::GetTriforcePieceMessage();
|
||||
} else if (player->getItemEntry.getItemId >= RG_SILVER_RUPEE_FIRST && player->getItemEntry.getItemId <= RG_SILVER_RUPEE_LAST) {
|
||||
messageEntry = OTRGlobals::Instance->gRandoContext->GetSilverRupees()->GetSilverRupeeMessage(player->getItemEntry.getItemId);
|
||||
} else {
|
||||
messageEntry = Randomizer_GetCustomGetItemMessage(player);
|
||||
}
|
||||
|
|
|
@ -173,6 +173,7 @@ uint8_t Randomizer_IsSpoilerLoaded();
|
|||
void Randomizer_SetSpoilerLoaded(bool spoilerLoaded);
|
||||
uint8_t Randomizer_IsPlandoLoaded();
|
||||
void Randomizer_SetPlandoLoaded(bool plandoLoaded);
|
||||
void Randomizer_IncrementSilverRupeeCount(RandomizerGet rgid, uint8_t amount);
|
||||
int CustomMessage_RetrieveIfExists(PlayState* play);
|
||||
void Overlay_DisplayText(float duration, const char* text);
|
||||
void Overlay_DisplayText_Seconds(int seconds, const char* text);
|
||||
|
|
|
@ -429,6 +429,13 @@ void SaveManager::LoadRandomizerVersion3() {
|
|||
SaveManager::Instance->LoadData("", trialId);
|
||||
randoContext->GetTrial(trialId)->SetAsRequired();
|
||||
});
|
||||
|
||||
randoContext->GetSilverRupees()->ResetAll();
|
||||
SaveManager::Instance->LoadArray("silverRupees", randoContext->GetSilverRupees()->GetInfoListSize(), [&](size_t i) {
|
||||
size_t value;
|
||||
SaveManager::Instance->LoadData("", value);
|
||||
randoContext->GetSilverRupees()->GetInfo(static_cast<RandomizerGet>(i + RG_SILVER_RUPEE_FIRST)).IncrementCollected(value);
|
||||
});
|
||||
}
|
||||
|
||||
void SaveManager::SaveRandomizer(SaveContext* saveContext, int sectionID, bool fullSave) {
|
||||
|
@ -512,6 +519,10 @@ void SaveManager::SaveRandomizer(SaveContext* saveContext, int sectionID, bool f
|
|||
SaveManager::Instance->SaveData("", i);
|
||||
}
|
||||
});
|
||||
|
||||
SaveManager::Instance->SaveArray("silverRupees", randoContext->GetSilverRupees()->GetInfoListSize(), [&](size_t i) {
|
||||
SaveManager::Instance->SaveData("", randoContext->GetSilverRupees()->GetInfo(static_cast<RandomizerGet>(i + RG_SILVER_RUPEE_FIRST)).GetCollected());
|
||||
});
|
||||
}
|
||||
|
||||
// Init() here is an extension of InitSram, and thus not truly an initializer for SaveManager itself. don't put any class initialization stuff here
|
||||
|
|
|
@ -2694,6 +2694,17 @@ u16 Randomizer_Item_Give(PlayState* play, GetItemEntry giEntry) {
|
|||
return Return_Item_Entry(giEntry, RG_NONE);
|
||||
}
|
||||
|
||||
if (item >= RG_SILVER_RUPEE_FIRST && item <= RG_SILVER_RUPEE_LAST) {
|
||||
Randomizer_IncrementSilverRupeeCount(item, 1);
|
||||
Rupees_ChangeBy(5);
|
||||
return Return_Item_Entry(giEntry, RG_NONE);
|
||||
}
|
||||
|
||||
if (item == RG_MAGICAL_SILVER_RUPEE) {
|
||||
Flags_SetRandomizerInf(RAND_INF_MAGICAL_SILVER_RUPEE);
|
||||
return Return_Item_Entry(giEntry, RG_NONE);
|
||||
}
|
||||
|
||||
temp = gSaveContext.inventory.items[slot];
|
||||
osSyncPrintf("Item_Register(%d)=%d %d\n", slot, item, temp);
|
||||
INV_CONTENT(item) = item;
|
||||
|
|
|
@ -56,6 +56,11 @@ typedef struct EnGSwitch {
|
|||
/* 0x0178 */ s8 objIndex;
|
||||
/* 0x017C */ ColliderCylinder collider;
|
||||
/* 0x01C8 */ EnGSwitchEffect effects[100];
|
||||
// #region SOH [Randomizer]
|
||||
/* */ RandomizerCheck rc;
|
||||
/* */ RandomizerGet rg;
|
||||
/* */ GetItemEntry* giEntry;
|
||||
/* */ RandomizerInf randInfFlag;
|
||||
} EnGSwitch; // size = 0x12F8
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue