diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/PotBaseNoise_8 b/soh/assets/custom/objects/gameplay_dangeon_keep/PotBaseNoise_8 new file mode 100644 index 00000000000..a278fcdff17 Binary files /dev/null and b/soh/assets/custom/objects/gameplay_dangeon_keep/PotBaseNoise_8 differ diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/PotFaceNoise_16 b/soh/assets/custom/objects/gameplay_dangeon_keep/PotFaceNoise_16 new file mode 100644 index 00000000000..302172ec0d4 Binary files /dev/null and b/soh/assets/custom/objects/gameplay_dangeon_keep/PotFaceNoise_16 differ diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/PotFaceYellow_16 b/soh/assets/custom/objects/gameplay_dangeon_keep/PotFaceYellow_16 new file mode 100644 index 00000000000..cb3e67e381c Binary files /dev/null and b/soh/assets/custom/objects/gameplay_dangeon_keep/PotFaceYellow_16 differ diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/PotFace_32 b/soh/assets/custom/objects/gameplay_dangeon_keep/PotFace_32 new file mode 100644 index 00000000000..a34be6c815f Binary files /dev/null and b/soh/assets/custom/objects/gameplay_dangeon_keep/PotFace_32 differ diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL new file mode 100644 index 00000000000..f1e794a9634 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_0 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_0 new file mode 100644 index 00000000000..e3d576ab53f --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_0 @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_1 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_1 new file mode 100644 index 00000000000..9e3577c304a --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_1 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_2 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_2 new file mode 100644 index 00000000000..957020e994c --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_2 @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_3 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_3 new file mode 100644 index 00000000000..7b2e00037e7 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_3 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_4 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_4 new file mode 100644 index 00000000000..554a34e4bcd --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_tri_4 @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0 new file mode 100644 index 00000000000..88f1059c31d --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_0 @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_1 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_1 new file mode 100644 index 00000000000..24da4e34f4c --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_1 @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_2 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_2 new file mode 100644 index 00000000000..6683ff1d25d --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_2 @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_3 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_3 new file mode 100644 index 00000000000..4394fa228c7 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_4 b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_4 new file mode 100644 index 00000000000..2ef56105ab4 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/gRandoPotDL_vtx_4 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbase b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbase new file mode 100644 index 00000000000..6c4a0fdeeff --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbase @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbottom b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbottom new file mode 100644 index 00000000000..e6917904619 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potbottom @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potface b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potface new file mode 100644 index 00000000000..0969a02d526 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potface @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potrim b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potrim new file mode 100644 index 00000000000..3c56bbc9671 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potrim @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potvoid b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potvoid new file mode 100644 index 00000000000..d39d1af92e8 --- /dev/null +++ b/soh/assets/custom/objects/gameplay_dangeon_keep/mat_gRandoPotDL_f3dlite_potvoid @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/soh/assets/soh_assets.h b/soh/assets/soh_assets.h index e8c947d0e8d..8e7d42eae25 100644 --- a/soh/assets/soh_assets.h +++ b/soh/assets/soh_assets.h @@ -74,6 +74,9 @@ static const ALIGN_ASSET(2) char gTriforcePieceCompletedDL[] = dgTriforcePieceCo #define dgBossSoulSkullDL "__OTR__objects/object_boss_soul/gGIBossSoulSkullDL" static const ALIGN_ASSET(2) char gBossSoulSkullDL[] = dgBossSoulSkullDL; +#define dgRandoPotDL "__OTR__objects/gameplay_dangeon_keep/gRandoPotDL" +static const ALIGN_ASSET(2) char gRandoPotDL[] = dgRandoPotDL; + #define dgFishingPoleGiDL "__OTR__objects/object_gi_fishing_pole/gFishingPoleGiDL" static const ALIGN_ASSET(2) char gFishingPoleGiDL[] = dgFishingPoleGiDL; diff --git a/soh/assets/sources/potshuffle/MysteryPot.blend b/soh/assets/sources/potshuffle/MysteryPot.blend new file mode 100644 index 00000000000..a3a8334cc72 Binary files /dev/null and b/soh/assets/sources/potshuffle/MysteryPot.blend differ diff --git a/soh/assets/sources/potshuffle/PotBaseNoise_8.png b/soh/assets/sources/potshuffle/PotBaseNoise_8.png new file mode 100644 index 00000000000..db1d6e91ebe Binary files /dev/null and b/soh/assets/sources/potshuffle/PotBaseNoise_8.png differ diff --git a/soh/assets/sources/potshuffle/PotFace_32.png b/soh/assets/sources/potshuffle/PotFace_32.png new file mode 100644 index 00000000000..12543fcd45b Binary files /dev/null and b/soh/assets/sources/potshuffle/PotFace_32.png differ diff --git a/soh/include/z64actor.h b/soh/include/z64actor.h index 156f1d6797d..afc3d8f283c 100644 --- a/soh/include/z64actor.h +++ b/soh/include/z64actor.h @@ -7,6 +7,7 @@ #include "z64collision_check.h" #include "z64bgcheck.h" #include "soh/Enhancements/item-tables/ItemTableTypes.h" +#include "soh/Enhancements/randomizer/randomizerTypes.h" #include "z64actor_enum.h" #include "soh/Enhancements/randomizer/randomizerTypes.h" diff --git a/soh/include/z64save.h b/soh/include/z64save.h index 617c2acf526..dea23f11ebb 100644 --- a/soh/include/z64save.h +++ b/soh/include/z64save.h @@ -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[17]; + /* */ u16 randomizerInf[RAND_INF_MAX / 16]; /* */ u8 mqDungeonCount; /* */ u16 adultTradeItems; /* */ u8 triforcePiecesCollected; diff --git a/soh/soh/Enhancements/debugger/debugSaveEditor.h b/soh/soh/Enhancements/debugger/debugSaveEditor.h index c3e01b657cd..dcf6a605005 100644 --- a/soh/soh/Enhancements/debugger/debugSaveEditor.h +++ b/soh/soh/Enhancements/debugger/debugSaveEditor.h @@ -348,7 +348,7 @@ const std::vector flagTables = { { 0x24, "Market Crowd Text Randomizer" }, { 0x30, "Entered the Market" }, } }, - { "Randomizer Inf Flags", RANDOMIZER_INF, 16, { + { "Randomizer Inf Flags", RANDOMIZER_INF, RAND_INF_MAX / 16, { { RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE, "DUNGEONS_DONE_SPIRIT_TEMPLE" }, { RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE, "DUNGEONS_DONE_SHADOW_TEMPLE" }, @@ -510,6 +510,544 @@ const std::vector flagTables = { { RAND_INF_HAS_OCARINA_C_LEFT, "RAND_INF_HAS_OCARINA_C_LEFT"}, { RAND_INF_HAS_OCARINA_C_RIGHT, "RAND_INF_HAS_OCARINA_C_RIGHT"}, + { RAND_INF_KF_LINKS_HOUSE_POT, "RAND_INF_KF_LINKS_HOUSE_POT" }, + { RAND_INF_KF_TWINS_HOUSE_POT_1, "RAND_INF_KF_TWINS_HOUSE_POT_1" }, + { RAND_INF_KF_TWINS_HOUSE_POT_2, "RAND_INF_KF_TWINS_HOUSE_POT_2" }, + { RAND_INF_KF_BROTHERS_HOUSE_POT_1, "RAND_INF_KF_BROTHERS_HOUSE_POT_1" }, + { RAND_INF_KF_BROTHERS_HOUSE_POT_2, "RAND_INF_KF_BROTHERS_HOUSE_POT_2" }, + { RAND_INF_GF_BREAK_ROOM_POT_1, "RAND_INF_GF_BREAK_ROOM_POT_1" }, + { RAND_INF_GF_BREAK_ROOM_POT_2, "RAND_INF_GF_BREAK_ROOM_POT_2" }, + { RAND_INF_GF_KITCHEN_POT_1, "RAND_INF_GF_KITCHEN_POT_1" }, + { RAND_INF_GF_KITCHEN_POT_2, "RAND_INF_GF_KITCHEN_POT_2" }, + { RAND_INF_GF_NORTH_F1_CARPENTER_POT_1, "RAND_INF_GF_NORTH_F1_CARPENTER_POT_1" }, + { RAND_INF_GF_NORTH_F1_CARPENTER_POT_2, "RAND_INF_GF_NORTH_F1_CARPENTER_POT_2" }, + { RAND_INF_GF_NORTH_F1_CARPENTER_POT_3, "RAND_INF_GF_NORTH_F1_CARPENTER_POT_3" }, + { RAND_INF_GF_NORTH_F2_CARPENTER_POT_1, "RAND_INF_GF_NORTH_F2_CARPENTER_POT_1" }, + { RAND_INF_GF_NORTH_F2_CARPENTER_POT_2, "RAND_INF_GF_NORTH_F2_CARPENTER_POT_2" }, + { RAND_INF_GF_SOUTH_F1_CARPENTER_POT_1, "RAND_INF_GF_SOUTH_F1_CARPENTER_POT_1" }, + { RAND_INF_GF_SOUTH_F1_CARPENTER_POT_2, "RAND_INF_GF_SOUTH_F1_CARPENTER_POT_2" }, + { RAND_INF_GF_SOUTH_F1_CARPENTER_POT_3, "RAND_INF_GF_SOUTH_F1_CARPENTER_POT_3" }, + { RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_1, "RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_1" }, + { RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_2, "RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_2" }, + { RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_3, "RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_3" }, + { RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_4, "RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_4" }, + { RAND_INF_WASTELAND_NEAR_GS_POT_1, "RAND_INF_WASTELAND_NEAR_GS_POT_1" }, + { RAND_INF_WASTELAND_NEAR_GS_POT_2, "RAND_INF_WASTELAND_NEAR_GS_POT_2" }, + { RAND_INF_WASTELAND_NEAR_GS_POT_3, "RAND_INF_WASTELAND_NEAR_GS_POT_3" }, + { RAND_INF_WASTELAND_NEAR_GS_POT_4, "RAND_INF_WASTELAND_NEAR_GS_POT_4" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_1, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_1" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_2, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_2" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_3, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_3" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_4, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_4" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_5, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_5" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_6, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_6" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_7, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_7" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_8, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_8" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_9, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_9" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_10, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_10" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_11, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_11" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_12, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_12" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_13, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_13" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_14, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_14" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_15, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_15" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_16, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_16" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_17, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_17" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_18, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_18" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_19, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_19" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_20, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_20" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_21, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_21" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_22, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_22" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_23, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_23" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_24, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_24" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_25, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_25" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_26, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_26" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_27, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_27" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_28, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_28" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_29, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_29" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_30, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_30" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_31, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_31" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_32, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_32" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_33, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_33" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_34, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_34" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_35, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_35" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_36, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_36" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_37, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_37" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_38, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_38" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_39, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_39" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_40, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_40" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_41, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_41" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_42, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_42" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_43, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_43" }, + { RAND_INF_MK_GUARD_HOUSE_CHILD_POT_44, "RAND_INF_MK_GUARD_HOUSE_CHILD_POT_44" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_1, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_1" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_2, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_2" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_3, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_3" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_4, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_4" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_5, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_5" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_6, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_6" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_7, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_7" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_8, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_8" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_9, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_9" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_10, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_10" }, + { RAND_INF_MK_GUARD_HOUSE_ADULT_POT_11, "RAND_INF_MK_GUARD_HOUSE_ADULT_POT_11" }, + { RAND_INF_MK_BACK_ALLEY_HOUSE_POT_1, "RAND_INF_MK_BACK_ALLEY_HOUSE_POT_1" }, + { RAND_INF_MK_BACK_ALLEY_HOUSE_POT_2, "RAND_INF_MK_BACK_ALLEY_HOUSE_POT_2" }, + { RAND_INF_MK_BACK_ALLEY_HOUSE_POT_3, "RAND_INF_MK_BACK_ALLEY_HOUSE_POT_3" }, + { RAND_INF_KAK_NEAR_POTION_SHOP_POT_1, "RAND_INF_KAK_NEAR_POTION_SHOP_POT_1" }, + { RAND_INF_KAK_NEAR_POTION_SHOP_POT_2, "RAND_INF_KAK_NEAR_POTION_SHOP_POT_2" }, + { RAND_INF_KAK_NEAR_POTION_SHOP_POT_3, "RAND_INF_KAK_NEAR_POTION_SHOP_POT_3" }, + { RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_1, "RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_1" }, + { RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_2, "RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_2" }, + { RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_3, "RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_3" }, + { RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_1, "RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_1" }, + { RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_2, "RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_2" }, + { RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_3, "RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_3" }, + { RAND_INF_KAK_NEAR_MEDICINE_SHOP_POT_1, "RAND_INF_KAK_NEAR_MEDICINE_SHOP_POT_1" }, + { RAND_INF_KAK_NEAR_MEDICINE_SHOP_POT_2, "RAND_INF_KAK_NEAR_MEDICINE_SHOP_POT_2" }, + { RAND_INF_GY_DAMPES_GRAVE_POT_1, "RAND_INF_GY_DAMPES_GRAVE_POT_1" }, + { RAND_INF_GY_DAMPES_GRAVE_POT_2, "RAND_INF_GY_DAMPES_GRAVE_POT_2" }, + { RAND_INF_GY_DAMPES_GRAVE_POT_3, "RAND_INF_GY_DAMPES_GRAVE_POT_3" }, + { RAND_INF_GY_DAMPES_GRAVE_POT_4, "RAND_INF_GY_DAMPES_GRAVE_POT_4" }, + { RAND_INF_GY_DAMPES_GRAVE_POT_5, "RAND_INF_GY_DAMPES_GRAVE_POT_5" }, + { RAND_INF_GY_DAMPES_GRAVE_POT_6, "RAND_INF_GY_DAMPES_GRAVE_POT_6" }, + { RAND_INF_GC_LOWER_STAIRCASE_POT_1, "RAND_INF_GC_LOWER_STAIRCASE_POT_1" }, + { RAND_INF_GC_LOWER_STAIRCASE_POT_2, "RAND_INF_GC_LOWER_STAIRCASE_POT_2" }, + { RAND_INF_GC_UPPER_STAIRCASE_POT_1, "RAND_INF_GC_UPPER_STAIRCASE_POT_1" }, + { RAND_INF_GC_UPPER_STAIRCASE_POT_2, "RAND_INF_GC_UPPER_STAIRCASE_POT_2" }, + { RAND_INF_GC_UPPER_STAIRCASE_POT_3, "RAND_INF_GC_UPPER_STAIRCASE_POT_3" }, + { RAND_INF_GC_MEDIGORON_POT_1, "RAND_INF_GC_MEDIGORON_POT_1" }, + { RAND_INF_GC_DARUNIA_POT_1, "RAND_INF_GC_DARUNIA_POT_1" }, + { RAND_INF_GC_DARUNIA_POT_2, "RAND_INF_GC_DARUNIA_POT_2" }, + { RAND_INF_GC_DARUNIA_POT_3, "RAND_INF_GC_DARUNIA_POT_3" }, + { RAND_INF_DMC_NEAR_GC_POT_1, "RAND_INF_DMC_NEAR_GC_POT_1" }, + { RAND_INF_DMC_NEAR_GC_POT_2, "RAND_INF_DMC_NEAR_GC_POT_2" }, + { RAND_INF_DMC_NEAR_GC_POT_3, "RAND_INF_DMC_NEAR_GC_POT_3" }, + { RAND_INF_DMC_NEAR_GC_POT_4, "RAND_INF_DMC_NEAR_GC_POT_4" }, + { RAND_INF_ZD_NEAR_SHOP_POT_1, "RAND_INF_ZD_NEAR_SHOP_POT_1" }, + { RAND_INF_ZD_NEAR_SHOP_POT_2, "RAND_INF_ZD_NEAR_SHOP_POT_2" }, + { RAND_INF_ZD_NEAR_SHOP_POT_3, "RAND_INF_ZD_NEAR_SHOP_POT_3" }, + { RAND_INF_ZD_NEAR_SHOP_POT_4, "RAND_INF_ZD_NEAR_SHOP_POT_4" }, + { RAND_INF_ZD_NEAR_SHOP_POT_5, "RAND_INF_ZD_NEAR_SHOP_POT_5" }, + { RAND_INF_ZF_HIDDEN_CAVE_POT_1, "RAND_INF_ZF_HIDDEN_CAVE_POT_1" }, + { RAND_INF_ZF_HIDDEN_CAVE_POT_2, "RAND_INF_ZF_HIDDEN_CAVE_POT_2" }, + { RAND_INF_ZF_HIDDEN_CAVE_POT_3, "RAND_INF_ZF_HIDDEN_CAVE_POT_3" }, + { RAND_INF_ZF_NEAR_JABU_POT_1, "RAND_INF_ZF_NEAR_JABU_POT_1" }, + { RAND_INF_ZF_NEAR_JABU_POT_2, "RAND_INF_ZF_NEAR_JABU_POT_2" }, + { RAND_INF_ZF_NEAR_JABU_POT_3, "RAND_INF_ZF_NEAR_JABU_POT_3" }, + { RAND_INF_ZF_NEAR_JABU_POT_4, "RAND_INF_ZF_NEAR_JABU_POT_4" }, + { RAND_INF_LLR_FRONT_POT_1, "RAND_INF_LLR_FRONT_POT_1" }, + { RAND_INF_LLR_FRONT_POT_2, "RAND_INF_LLR_FRONT_POT_2" }, + { RAND_INF_LLR_FRONT_POT_3, "RAND_INF_LLR_FRONT_POT_3" }, + { RAND_INF_LLR_FRONT_POT_4, "RAND_INF_LLR_FRONT_POT_4" }, + { RAND_INF_LLR_RAIN_SHED_POT_1, "RAND_INF_LLR_RAIN_SHED_POT_1" }, + { RAND_INF_LLR_RAIN_SHED_POT_2, "RAND_INF_LLR_RAIN_SHED_POT_2" }, + { RAND_INF_LLR_RAIN_SHED_POT_3, "RAND_INF_LLR_RAIN_SHED_POT_3" }, + { RAND_INF_LLR_TALONS_HOUSE_POT_1, "RAND_INF_LLR_TALONS_HOUSE_POT_1" }, + { RAND_INF_LLR_TALONS_HOUSE_POT_2, "RAND_INF_LLR_TALONS_HOUSE_POT_2" }, + { RAND_INF_LLR_TALONS_HOUSE_POT_3, "RAND_INF_LLR_TALONS_HOUSE_POT_3" }, + { RAND_INF_HF_COW_GROTTO_POT_1, "RAND_INF_HF_COW_GROTTO_POT_1" }, + { RAND_INF_HF_COW_GROTTO_POT_2, "RAND_INF_HF_COW_GROTTO_POT_2" }, + { RAND_INF_HC_STORMS_GROTTO_POT_1, "RAND_INF_HC_STORMS_GROTTO_POT_1" }, + { RAND_INF_HC_STORMS_GROTTO_POT_2, "RAND_INF_HC_STORMS_GROTTO_POT_2" }, + { RAND_INF_HC_STORMS_GROTTO_POT_3, "RAND_INF_HC_STORMS_GROTTO_POT_3" }, + { RAND_INF_HC_STORMS_GROTTO_POT_4, "RAND_INF_HC_STORMS_GROTTO_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_1, "RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_2, "RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_3, "RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_3" }, + { RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_4, "RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_1, "RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_2, "RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_3, "RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_3" }, + { RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_4, "RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_5, "RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_5" }, + { RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_6, "RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_6" }, + { RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_1, "RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_2, "RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_3, "RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_3" }, + { RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_4, "RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_1, "RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_2, "RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_3, "RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_3" }, + { RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_4, "RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_SINGLE_EYE_POT_1, "RAND_INF_DODONGOS_CAVERN_SINGLE_EYE_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_SINGLE_EYE_POT_2, "RAND_INF_DODONGOS_CAVERN_SINGLE_EYE_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_BLADE_POT_1, "RAND_INF_DODONGOS_CAVERN_BLADE_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_BLADE_POT_2, "RAND_INF_DODONGOS_CAVERN_BLADE_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_DOUBLE_EYE_POT_1, "RAND_INF_DODONGOS_CAVERN_DOUBLE_EYE_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_DOUBLE_EYE_POT_2, "RAND_INF_DODONGOS_CAVERN_DOUBLE_EYE_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_1, "RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_2, "RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_3, "RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_3" }, + { RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_4, "RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_4" }, + { RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1, "RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1" }, + { RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2, "RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2" }, + { RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3, "RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3" }, + { RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_1, "RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_1" }, + { RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_2, "RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_2" }, + { RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_3, "RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_3" }, + { RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_4, "RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_4" }, + { RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_5, "RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_5" }, + { RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_6, "RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_6" }, + { RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_1, "RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_1" }, + { RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_2, "RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_2" }, + { RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_3, "RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_3" }, + { RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1, "RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1" }, + { RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2, "RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2" }, + { RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3, "RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3" }, + { RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4, "RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4" }, + { RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5, "RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5" }, + { RAND_INF_FOREST_TEMPLE_LOBBY_POT_1, "RAND_INF_FOREST_TEMPLE_LOBBY_POT_1" }, + { RAND_INF_FOREST_TEMPLE_LOBBY_POT_2, "RAND_INF_FOREST_TEMPLE_LOBBY_POT_2" }, + { RAND_INF_FOREST_TEMPLE_LOBBY_POT_3, "RAND_INF_FOREST_TEMPLE_LOBBY_POT_3" }, + { RAND_INF_FOREST_TEMPLE_LOBBY_POT_4, "RAND_INF_FOREST_TEMPLE_LOBBY_POT_4" }, + { RAND_INF_FOREST_TEMPLE_LOBBY_POT_5, "RAND_INF_FOREST_TEMPLE_LOBBY_POT_5" }, + { RAND_INF_FOREST_TEMPLE_LOBBY_POT_6, "RAND_INF_FOREST_TEMPLE_LOBBY_POT_6" }, + { RAND_INF_FOREST_TEMPLE_LOWER_STALFOS_POT_1, "RAND_INF_FOREST_TEMPLE_LOWER_STALFOS_POT_1" }, + { RAND_INF_FOREST_TEMPLE_LOWER_STALFOS_POT_2, "RAND_INF_FOREST_TEMPLE_LOWER_STALFOS_POT_2" }, + { RAND_INF_FOREST_TEMPLE_GREEN_POE_POT_1, "RAND_INF_FOREST_TEMPLE_GREEN_POE_POT_1" }, + { RAND_INF_FOREST_TEMPLE_GREEN_POE_POT_2, "RAND_INF_FOREST_TEMPLE_GREEN_POE_POT_2" }, + { RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_1, "RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_1" }, + { RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_2, "RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_2" }, + { RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_3, "RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_3" }, + { RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_4, "RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_4" }, + { RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_1, "RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_1" }, + { RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_2, "RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_2" }, + { RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_3, "RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_3" }, + { RAND_INF_FOREST_TEMPLE_FROZEN_EYE_POT_1, "RAND_INF_FOREST_TEMPLE_FROZEN_EYE_POT_1" }, + { RAND_INF_FOREST_TEMPLE_FROZEN_EYE_POT_2, "RAND_INF_FOREST_TEMPLE_FROZEN_EYE_POT_2" }, + { RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_1, "RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_1" }, + { RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_2, "RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_2" }, + { RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_3, "RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_3" }, + { RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_4, "RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_4" }, + { RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_1, "RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_1" }, + { RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_2, "RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_2" }, + { RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_3, "RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_3" }, + { RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1, "RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1" }, + { RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2, "RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2" }, + { RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3, "RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3" }, + { RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4, "RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4" }, + { RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1, "RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1" }, + { RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2, "RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2" }, + { RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3, "RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3" }, + { RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4, "RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4" }, + { RAND_INF_WATER_TEMPLE_MAIN_LEVEL_2_POT_1, "RAND_INF_WATER_TEMPLE_MAIN_LEVEL_2_POT_1" }, + { RAND_INF_WATER_TEMPLE_MAIN_LEVEL_2_POT_2, "RAND_INF_WATER_TEMPLE_MAIN_LEVEL_2_POT_2" }, + { RAND_INF_WATER_TEMPLE_MAIN_LEVEL_1_POT_1, "RAND_INF_WATER_TEMPLE_MAIN_LEVEL_1_POT_1" }, + { RAND_INF_WATER_TEMPLE_MAIN_LEVEL_1_POT_2, "RAND_INF_WATER_TEMPLE_MAIN_LEVEL_1_POT_2" }, + { RAND_INF_WATER_TEMPLE_TORCH_POT_1, "RAND_INF_WATER_TEMPLE_TORCH_POT_1" }, + { RAND_INF_WATER_TEMPLE_TORCH_POT_2, "RAND_INF_WATER_TEMPLE_TORCH_POT_2" }, + { RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_1, "RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_1" }, + { RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_2, "RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_2" }, + { RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_3, "RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_3" }, + { RAND_INF_WATER_TEMPLE_CENTRAL_BOW_POT_1, "RAND_INF_WATER_TEMPLE_CENTRAL_BOW_POT_1" }, + { RAND_INF_WATER_TEMPLE_CENTRAL_BOW_POT_2, "RAND_INF_WATER_TEMPLE_CENTRAL_BOW_POT_2" }, + { RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_1, "RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_1" }, + { RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_2, "RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_2" }, + { RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_3, "RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_3" }, + { RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_4, "RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_4" }, + { RAND_INF_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1, "RAND_INF_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1" }, + { RAND_INF_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2, "RAND_INF_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2" }, + { RAND_INF_WATER_TEMPLE_RIVER_POT_1, "RAND_INF_WATER_TEMPLE_RIVER_POT_1" }, + { RAND_INF_WATER_TEMPLE_RIVER_POT_2, "RAND_INF_WATER_TEMPLE_RIVER_POT_2" }, + { RAND_INF_WATER_TEMPLE_LIKE_LIKE_POT_1, "RAND_INF_WATER_TEMPLE_LIKE_LIKE_POT_1" }, + { RAND_INF_WATER_TEMPLE_LIKE_LIKE_POT_2, "RAND_INF_WATER_TEMPLE_LIKE_LIKE_POT_2" }, + { RAND_INF_WATER_TEMPLE_BOSS_KEY_POT_1, "RAND_INF_WATER_TEMPLE_BOSS_KEY_POT_1" }, + { RAND_INF_WATER_TEMPLE_BOSS_KEY_POT_2, "RAND_INF_WATER_TEMPLE_BOSS_KEY_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1, "RAND_INF_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1, "RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2, "RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3, "RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3" }, + { RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4, "RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4" }, + { RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5, "RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5" }, + { RAND_INF_SHADOW_TEMPLE_MAP_CHEST_POT_1, "RAND_INF_SHADOW_TEMPLE_MAP_CHEST_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_MAP_CHEST_POT_2, "RAND_INF_SHADOW_TEMPLE_MAP_CHEST_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_1, "RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_2, "RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_3, "RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_3" }, + { RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_4, "RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_4" }, + { RAND_INF_SHADOW_TEMPLE_AFTER_WIND_POT_1, "RAND_INF_SHADOW_TEMPLE_AFTER_WIND_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_AFTER_WIND_POT_2, "RAND_INF_SHADOW_TEMPLE_AFTER_WIND_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_SPIKE_WALLS_POT_1, "RAND_INF_SHADOW_TEMPLE_SPIKE_WALLS_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_FLOORMASTER_POT_1, "RAND_INF_SHADOW_TEMPLE_FLOORMASTER_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_FLOORMASTER_POT_2, "RAND_INF_SHADOW_TEMPLE_FLOORMASTER_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_1, "RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_2, "RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_3, "RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_3" }, + { RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_4, "RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_4" }, + { RAND_INF_SPIRIT_TEMPLE_LOBBY_POT_1, "RAND_INF_SPIRIT_TEMPLE_LOBBY_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_LOBBY_POT_2, "RAND_INF_SPIRIT_TEMPLE_LOBBY_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_1, "RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_2, "RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_3, "RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_3" }, + { RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_4, "RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_4" }, + { RAND_INF_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1, "RAND_INF_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1, "RAND_INF_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2, "RAND_INF_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1, "RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2, "RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3, "RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3" }, + { RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4, "RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4" }, + { RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5, "RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5" }, + { RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6, "RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6" }, + { RAND_INF_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1, "RAND_INF_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1" }, + { RAND_INF_GANONS_CASTLE_FOREST_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_FOREST_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_FOREST_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_FOREST_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_FIRE_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_FIRE_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_FIRE_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_FIRE_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_3, "RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_3" }, + { RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_3, "RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_3" }, + { RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_4, "RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_4" }, + { RAND_INF_GANONS_CASTLE_SPIRIT_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_SPIRIT_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_SPIRIT_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_SPIRIT_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1, "RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1" }, + { RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_1, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_1" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_2, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_2" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_3, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_3" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_4, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_4" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_5, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_5" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_6, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_6" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_7, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_7" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_8, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_8" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_9, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_9" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_10, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_10" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_11, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_11" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_12, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_12" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_13, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_13" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_14, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_14" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_15, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_15" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_16, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_16" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_17, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_17" }, + { RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_18, "RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_18" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_1, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_1" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_2, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_2" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_3, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_3" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_4, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_4" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_5, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_5" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_6, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_6" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_7, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_7" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_8, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_8" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_9, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_9" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_10, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_10" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_11, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_11" }, + { RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_12, "RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_12" }, + { RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1, "RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1" }, + { RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2, "RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2" }, + { RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3, "RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3" }, + { RAND_INF_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1, "RAND_INF_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1" }, + { RAND_INF_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2, "RAND_INF_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2" }, + { RAND_INF_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1, "RAND_INF_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1" }, + { RAND_INF_BOTTOM_OF_THE_WELL_UNDERWATER_POT, "RAND_INF_BOTTOM_OF_THE_WELL_UNDERWATER_POT" }, + { RAND_INF_ICE_CAVERN_HALL_POT_1, "RAND_INF_ICE_CAVERN_HALL_POT_1" }, + { RAND_INF_ICE_CAVERN_HALL_POT_2, "RAND_INF_ICE_CAVERN_HALL_POT_2" }, + { RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_1, "RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_1" }, + { RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_2, "RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_2" }, + { RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_3, "RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_3" }, + { RAND_INF_ICE_CAVERN_NEAR_END_POT_1, "RAND_INF_ICE_CAVERN_NEAR_END_POT_1" }, + { RAND_INF_ICE_CAVERN_NEAR_END_POT_2, "RAND_INF_ICE_CAVERN_NEAR_END_POT_2" }, + { RAND_INF_ICE_CAVERN_FROZEN_POT_1, "RAND_INF_ICE_CAVERN_FROZEN_POT_1" }, + + { RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1, "RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1" }, + { RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2, "RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2" }, + { RAND_INF_JABU_JABUS_BELLY_MQ_GEYSER_POT_1, "RAND_INF_JABU_JABUS_BELLY_MQ_GEYSER_POT_1" }, + { RAND_INF_JABU_JABUS_BELLY_MQ_GEYSER_POT_2, "RAND_INF_JABU_JABUS_BELLY_MQ_GEYSER_POT_2" }, + { RAND_INF_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1, "RAND_INF_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1" }, + { RAND_INF_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2, "RAND_INF_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2" }, + { RAND_INF_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1, "RAND_INF_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1" }, + { RAND_INF_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2, "RAND_INF_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2" }, + { RAND_INF_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1, "RAND_INF_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1" }, + { RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_1, "RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_1" }, + { RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_2, "RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_2" }, + { RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_3, "RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_3" }, + { RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_4, "RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_4" }, + { RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_5, "RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_5" }, + { RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_6, "RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_6" }, + { RAND_INF_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_1, "RAND_INF_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_1" }, + { RAND_INF_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_2, "RAND_INF_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_2" }, + { RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1, "RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1" }, + { RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2, "RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2" }, + { RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3, "RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3" }, + { RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4, "RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4" }, + { RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_1, "RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_1" }, + { RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_2, "RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_2" }, + { RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_3, "RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_3" }, + { RAND_INF_FOREST_TEMPLE_MQ_GREEN_POE_POT_1, "RAND_INF_FOREST_TEMPLE_MQ_GREEN_POE_POT_1" }, + { RAND_INF_FOREST_TEMPLE_MQ_GREEN_POE_POT_2, "RAND_INF_FOREST_TEMPLE_MQ_GREEN_POE_POT_2" }, + { RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_1, "RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_1" }, + { RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_2, "RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_2" }, + { RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_3, "RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_3" }, + { RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_4, "RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1, "RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2, "RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3, "RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3" }, + { RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4, "RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1, "RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2, "RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3, "RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3" }, + { RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4, "RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1, "RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2, "RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3, "RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3" }, + { RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4, "RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_1, "RAND_INF_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_2, "RAND_INF_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1, "RAND_INF_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2, "RAND_INF_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_1, "RAND_INF_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_2, "RAND_INF_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1, "RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2, "RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3, "RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3" }, + { RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4, "RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_1, "RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_2, "RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_3, "RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_3" }, + { RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_4, "RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_4" }, + { RAND_INF_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_1, "RAND_INF_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_2, "RAND_INF_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_2" }, + { RAND_INF_DODONGOS_CAVERN_MQ_BACKROOM_POT_1, "RAND_INF_DODONGOS_CAVERN_MQ_BACKROOM_POT_1" }, + { RAND_INF_DODONGOS_CAVERN_MQ_BACKROOM_POT_2, "RAND_INF_DODONGOS_CAVERN_MQ_BACKROOM_POT_2" }, + { RAND_INF_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2" }, + { RAND_INF_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1, "RAND_INF_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1" }, + { RAND_INF_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2, "RAND_INF_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1, "RAND_INF_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2, "RAND_INF_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1, "RAND_INF_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2, "RAND_INF_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_1, "RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_2, "RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_3, "RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_3" }, + { RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_4, "RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_4" }, + { RAND_INF_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1, "RAND_INF_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2, "RAND_INF_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_1, "RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_2, "RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_2" }, + { RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_3, "RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_3" }, + { RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_4, "RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_4" }, + { RAND_INF_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT, "RAND_INF_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT" }, + { RAND_INF_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1, "RAND_INF_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1" }, + { RAND_INF_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2, "RAND_INF_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2" }, + { RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1, "RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1" }, + { RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2, "RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2" }, + { RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3, "RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3" }, + { RAND_INF_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT, "RAND_INF_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT" }, + { RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_1, "RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_1" }, + { RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_2, "RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_2" }, + { RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_3, "RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_3" }, + { RAND_INF_FIRE_TEMPLE_MQ_ENTRANCE_POT_1, "RAND_INF_FIRE_TEMPLE_MQ_ENTRANCE_POT_1" }, + { RAND_INF_FIRE_TEMPLE_MQ_ENTRANCE_POT_2, "RAND_INF_FIRE_TEMPLE_MQ_ENTRANCE_POT_2" }, + { RAND_INF_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1, "RAND_INF_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1" }, + { RAND_INF_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2, "RAND_INF_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2" }, + { RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_1, "RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_1" }, + { RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_2, "RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_2" }, + { RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_3, "RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_3" }, + { RAND_INF_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1, "RAND_INF_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1" }, + { RAND_INF_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2, "RAND_INF_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2" }, + { RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1, "RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1" }, + { RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2, "RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2" }, + { RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3, "RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3" }, + { RAND_INF_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1, "RAND_INF_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1" }, + { RAND_INF_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2, "RAND_INF_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2" }, + { RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_1, "RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_1" }, + { RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_2, "RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_2" }, + { RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_3, "RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_3" }, + { RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_4, "RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_4" }, + { RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_5, "RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_5" }, + { RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_6, "RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_6" }, + { RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1, "RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1" }, + { RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2, "RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2" }, + { RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3, "RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3" }, + { RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4, "RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4" }, + { RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5, "RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5" }, + { RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6, "RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6" }, + { RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7, "RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7" }, + { RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8, "RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8" }, + { RAND_INF_ICE_CAVERN_MQ_ENTRANCE_POT, "RAND_INF_ICE_CAVERN_MQ_ENTRANCE_POT" }, + { RAND_INF_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1, "RAND_INF_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1" }, + { RAND_INF_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2, "RAND_INF_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2" }, + { RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1, "RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1" }, + { RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2, "RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2" }, + { RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3, "RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3" }, + { RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4, "RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4" }, + { RAND_INF_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1, "RAND_INF_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1" }, + { RAND_INF_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2, "RAND_INF_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2" }, + { RAND_INF_ICE_CAVERN_MQ_COMPASS_POT_1, "RAND_INF_ICE_CAVERN_MQ_COMPASS_POT_1" }, + { RAND_INF_ICE_CAVERN_MQ_COMPASS_POT_2, "RAND_INF_ICE_CAVERN_MQ_COMPASS_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1, "RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2, "RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3, "RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4, "RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT, "RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1, "RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2, "RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT, "RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1, "RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2, "RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3, "RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4, "RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_1, "RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_2, "RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_3, "RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_3" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_4, "RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_4" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_5, "RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_5" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1, "RAND_INF_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2, "RAND_INF_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1, "RAND_INF_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2, "RAND_INF_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1, "RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2, "RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3, "RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4, "RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1, "RAND_INF_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2, "RAND_INF_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1, "RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1" }, + { RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2, "RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_1, "RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_1" }, + { RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_2, "RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_3, "RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_3" }, + { RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_4, "RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_4" }, + { RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_5, "RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_5" }, + { RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1, "RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1" }, + { RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2, "RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3, "RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3" }, + { RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1, "RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1" }, + { RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2, "RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_3, "RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_3" }, + { RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_4, "RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_4" }, + { RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_5, "RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_5" }, + { RAND_INF_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1, "RAND_INF_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1" }, + { RAND_INF_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2, "RAND_INF_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_RIVER_POT_1, "RAND_INF_WATER_TEMPLE_MQ_RIVER_POT_1" }, + { RAND_INF_WATER_TEMPLE_MQ_RIVER_POT_2, "RAND_INF_WATER_TEMPLE_MQ_RIVER_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1, "RAND_INF_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1" }, + { RAND_INF_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2, "RAND_INF_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1, "RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1" }, + { RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2, "RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1, "RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1" }, + { RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2, "RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3, "RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3" }, + { RAND_INF_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1, "RAND_INF_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1" }, + { RAND_INF_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2, "RAND_INF_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_1, "RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_1" }, + { RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_2, "RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_2" }, + { RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_3, "RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_3" }, + { RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_4, "RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_4" }, + { RAND_INF_WATER_TEMPLE_MQ_BOSS_KEY_POT, "RAND_INF_WATER_TEMPLE_MQ_BOSS_KEY_POT" }, + { RAND_INF_CAUGHT_LOACH, "RAND_INF_CAUGHT_LOACH" }, { RAND_INF_CAN_SWIM, "RAND_INF_CAN_SWIM" }, diff --git a/soh/soh/Enhancements/game-interactor/GameInteractor.h b/soh/soh/Enhancements/game-interactor/GameInteractor.h index 3523fa4057f..1eaf2b6d449 100644 --- a/soh/soh/Enhancements/game-interactor/GameInteractor.h +++ b/soh/soh/Enhancements/game-interactor/GameInteractor.h @@ -242,6 +242,11 @@ typedef enum { ``` */ VB_DRAW_AMMO_COUNT, + // Opt: *ObjTsubo + VB_POT_DRAW, + VB_POT_DROP_ITEM, + // Opt: *ActorDoorShutter + VB_LOCK_DOOR, /*** Play Cutscenes ***/ diff --git a/soh/soh/Enhancements/game-interactor/GameInteractor_Hooks.h b/soh/soh/Enhancements/game-interactor/GameInteractor_Hooks.h index 82deeaf8020..13a8021e771 100644 --- a/soh/soh/Enhancements/game-interactor/GameInteractor_Hooks.h +++ b/soh/soh/Enhancements/game-interactor/GameInteractor_Hooks.h @@ -64,6 +64,9 @@ void GameInteractor_RegisterOnAssetAltChange(void (*fn)(void)); //Mark: - Pause Menu void GameInteractor_ExecuteOnKaleidoUpdate(); +//Mark - Randomizer options spawning EnItem00 actors +void EnItem00_DrawRandomizedItem(EnItem00* enItem00, PlayState* play); + #ifdef __cplusplus } #endif diff --git a/soh/soh/Enhancements/mods.cpp b/soh/soh/Enhancements/mods.cpp index 8b3adca0f35..551a79ba8ed 100644 --- a/soh/soh/Enhancements/mods.cpp +++ b/soh/soh/Enhancements/mods.cpp @@ -14,6 +14,7 @@ #include "soh/Enhancements/TimeSavers/TimeSavers.h" #include "soh/Enhancements/cheat_hook_handlers.h" #include "soh/Enhancements/randomizer/hook_handlers.h" +#include "soh/Enhancements/randomizer/ShufflePots.h" #include "objects/object_gi_compass/object_gi_compass.h" #include "src/overlays/actors/ovl_En_Bb/z_en_bb.h" @@ -1828,4 +1829,5 @@ void InitMods() { RegisterHurtContainerModeHandler(); RegisterPauseMenuHooks(); RegisterSkeletonKey(); + RegisterShufflePots(); } diff --git a/soh/soh/Enhancements/randomizer/3drando/category.hpp b/soh/soh/Enhancements/randomizer/3drando/category.hpp index 22522789cfd..64b94f931b9 100644 --- a/soh/soh/Enhancements/randomizer/3drando/category.hpp +++ b/soh/soh/Enhancements/randomizer/3drando/category.hpp @@ -18,6 +18,7 @@ enum class Category { cVanillaMap, cVanillaCompass, cAdultTrade, + cPot, cBeehive, }; diff --git a/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_dungeon.cpp b/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_dungeon.cpp index 99659838b34..def53d77a3c 100644 --- a/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_dungeon.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_dungeon.cpp @@ -275,6 +275,10 @@ hintTextTable[RHT_DODONGOS_CAVERN_BOSS_ROOM_CHEST] = HintText(CustomMessage("The /*french*/ "Selon moi, la #peste Mojo au coeur de la Caverne Dodongo# vend #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, un #deku custodiado por Lizalfos# vende #[[1]]#. + hintTextTable[RHT_POT_DODONGOS_CAVERN] = HintText(CustomMessage("They say that a #pot in Dodongo's Cavern# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + /*-------------------------- | JABU JABUS BELLY | ---------------------------*/ @@ -421,6 +425,11 @@ hintTextTable[RHT_DODONGOS_CAVERN_BOSS_ROOM_CHEST] = HintText(CustomMessage("The /*german*/ "Man erzählt sich, daß ein #Deku in einer Gottheit #[[1]]# verkaufe.", /*french*/ "Selon moi, la #peste Mojo dans le ventre du gardien# vend #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, un #deku dentro de cierta deidad# vende #[[1]]#. + + hintTextTable[RHT_POT_JABU_JABUS_BELLY] = HintText(CustomMessage("They say that a #pot in Jabu Jabu's Belly# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + /*-------------------------- | FOREST TEMPLE | ---------------------------*/ @@ -638,10 +647,15 @@ hintTextTable[RHT_DODONGOS_CAVERN_BOSS_ROOM_CHEST] = HintText(CustomMessage("The /*german*/ "", /*french*/ "Selon moi, une #Skulltula dans le jardin du Temple de la Forêt# a #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, una #Skulltula en un borde# del Templo del Bosque otorga #[[1]]#. - hintTextTable[RHT_FOREST_TEMPLE_MQ_GS_WELL] = HintText(CustomMessage("They say that #draining a well# in Forest Temple uncovers a spider with #[[1]]#.", + hintTextTable[RHT_FOREST_TEMPLE_MQ_GS_WELL] = HintText(CustomMessage("They say that #draining a well# in Forest Temple uncovers a spider with #[[1]]#.", /*german*/ "", /*french*/ "Selon moi, une #Skulltula au fond du Puits du Temple de la Forêt# a #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, #vaciar el pozo# del Templo del Bosque desvela una Skulltula que otorga #[[1]]#. + + hintTextTable[RHT_POT_FOREST_TEMPLE] = HintText(CustomMessage("They say that a #pot in Forest Temple# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + /*-------------------------- | FIRE TEMPLE | @@ -831,6 +845,10 @@ hintTextTable[RHT_FIRE_TEMPLE_NEAR_BOSS_CHEST] = HintText(CustomMessage("They sa /*french*/ "Selon moi, une #Skulltula près du labyrinthe enflammé du Temple du Feu# a #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, una #Skulltula junto a un ardiente laberinto# otorga #[[1]]#. + hintTextTable[RHT_POT_FIRE_TEMPLE] = HintText(CustomMessage("They say that a #pot in Fire Temple# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + /*-------------------------- | WATER TEMPLE | ---------------------------*/ @@ -958,6 +976,10 @@ hintTextTable[RHT_FIRE_TEMPLE_NEAR_BOSS_CHEST] = HintText(CustomMessage("They sa /*french*/ "Selon moi, une #Skulltula au dessus de la rivière du Temple de l'Eau# a #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, una #Skulltula sobre un río# del Templo del Agua otorga #[[1]]#. + hintTextTable[RHT_POT_WATER_TEMPLE] = HintText(CustomMessage("They say that a #pot in Water Temple# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + /*-------------------------- | SPIRIT TEMPLE | ---------------------------*/ @@ -1191,6 +1213,10 @@ hintTextTable[RHT_FIRE_TEMPLE_NEAR_BOSS_CHEST] = HintText(CustomMessage("They sa /*french*/ "Selon moi, une #Skulltula sur une paroi de verre du Temple de l'Esprit# a #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, #sobre una plataforma de cristal# yace una Skulltula que otorga #[[1]]#. + hintTextTable[RHT_POT_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that a #pot in Spirit Temple# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + /*-------------------------- | SHADOW TEMPLE | ---------------------------*/ @@ -1434,6 +1460,10 @@ hintTextTable[RHT_SHADOW_TEMPLE_MAP_CHEST] = HintText(CustomMessage("They say th /*french*/ "Selon moi, une #Skulltula près du repère du Temple de l'Ombre# a #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, una #Skulltula flotante# del Templo de las Sombras otorga #[[1]]#. + hintTextTable[RHT_POT_SHADOW_TEMPLE] = HintText(CustomMessage("They say that a #pot in Shadow Temple# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + /*-------------------------- | BOTTOM OF THE WELL | ---------------------------*/ @@ -1552,6 +1582,10 @@ hintTextTable[RHT_SHADOW_TEMPLE_MAP_CHEST] = HintText(CustomMessage("They say th /*french*/ "Selon moi, une #Skulltula embarrée dans la crypte au fonds du Puits# a #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, una #Skulltula encerrada en una cripta# del pozo otorga #[[1]]#. + hintTextTable[RHT_POT_BOTTOM_OF_THE_WELL] = HintText(CustomMessage("They say that a #pot in Bottom of the Well# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + /*-------------------------- | ICE CAVERN | ---------------------------*/ @@ -1625,6 +1659,10 @@ hintTextTable[RHT_SHADOW_TEMPLE_MAP_CHEST] = HintText(CustomMessage("They say th /*french*/ "Selon moi, une #Skulltula figée dans la glace rouge# a #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, una #Skulltula tras un ardiente hielo# otorga #[[1]]#. + hintTextTable[RHT_POT_ICE_CAVERN] = HintText(CustomMessage("They say that a #pot in Ice Cavern# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", { QM_RED, QM_GREEN })); + /*-------------------------- | GERUDO TRAINING GROUNDS | ---------------------------*/ @@ -1995,5 +2033,9 @@ hintTextTable[RHT_SHADOW_TEMPLE_MAP_CHEST] = HintText(CustomMessage("They say th /*german*/ "", /*french*/ "Selon moi, les #pestes Mojo dans le Château de Ganon# vendent #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, los #dekus del Castillo de Ganon# venden #[[1]]#. + + hintTextTable[RHT_POT_GANONS_CASTLE] = HintText(CustomMessage("They say that a #pot in Ganon's Castle# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); } } diff --git a/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp b/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp index 84c74da8735..ad9fad01197 100644 --- a/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_overworld.cpp @@ -1487,5 +1487,57 @@ void StaticData::HintTable_Init_Exclude_Overworld() { /*german*/ "", /*french*/ "Selon moi, #[[1]]#.", {QM_RED, QM_GREEN})); // /*spanish*/ Según dicen, una #colmena detrás del rey de los zoras# esconde #[[1]]#. + + hintTextTable[RHT_POT_KOKIRI_FOREST] = HintText(CustomMessage("They say that a #pot in Kokiri Forest# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_GERUDO_FORTRESS] = HintText(CustomMessage("They say that a #pot in Gerudo Fortress# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_WASTELAND] = HintText(CustomMessage("They say that a #pot in Haunted Wasteland# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_MARKET] = HintText(CustomMessage("They say that a #pot in Market# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_KAKARIKO] = HintText(CustomMessage("They say that a #pot in Kakariko Village# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_GRAVEYARD] = HintText(CustomMessage("They say that a #pot in Graveyard# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_GORON_CITY] = HintText(CustomMessage("They say that a #pot in Goron City# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_DEATH_MOUNTAIN_CRATER] = HintText(CustomMessage("They say that a #pot in Death Mountain Crater# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_ZORAS_DOMAIN] = HintText(CustomMessage("They say that a #pot in Zora's Domain# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_ZORAS_FOUNTAIN] = HintText(CustomMessage("They say that a #pot in Zora's Fountain# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_LON_LON_RANCH] = HintText(CustomMessage("They say that a #pot in Lon Lon Ranch# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_HYRULE_FIELD] = HintText(CustomMessage("They say that a #pot in Hyrule Field# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); + + hintTextTable[RHT_POT_HYRULE_CASTLE] = HintText(CustomMessage("They say that a #pot in Hyrule Castle# contains #[[1]]#.", + /*german*/ "", + /*french*/ "", {QM_RED, QM_GREEN})); } } diff --git a/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp b/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp index f7250e17ddf..5ea318992c0 100644 --- a/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/item_pool.cpp @@ -810,6 +810,33 @@ void GenerateItemPool() { PlaceVanillaCowMilk(); } + // Shuffle Pots + if (ctx->GetOption(RSK_SHUFFLE_POTS).Is(RO_SHUFFLE_POTS_OFF)) { + for (RandomizerCheck loc : ctx->GetLocations(ctx->allLocations, Category::cPot)) { + ctx->PlaceItemInLocation(loc, Rando::StaticData::GetLocation(loc)->GetVanillaItem(), false, true); + } + } else if (ctx->GetOption(RSK_SHUFFLE_POTS).Is(RO_SHUFFLE_POTS_DUNGEONS)) { + for (RandomizerCheck loc : ctx->GetLocations(ctx->allLocations, Category::cPot)) { + if (Rando::StaticData::GetLocation(loc)->IsOverworld()) { + ctx->PlaceItemInLocation(loc, Rando::StaticData::GetLocation(loc)->GetVanillaItem(), false, true); + } else { + AddItemToMainPool(Rando::StaticData::GetLocation(loc)->GetVanillaItem()); + } + } + } else if (ctx->GetOption(RSK_SHUFFLE_POTS).Is(RO_SHUFFLE_POTS_OVERWORLD)) { + for (RandomizerCheck loc : ctx->GetLocations(ctx->allLocations, Category::cPot)) { + if (Rando::StaticData::GetLocation(loc)->IsDungeon()) { + ctx->PlaceItemInLocation(loc, Rando::StaticData::GetLocation(loc)->GetVanillaItem(), false, true); + } else { + AddItemToMainPool(Rando::StaticData::GetLocation(loc)->GetVanillaItem()); + } + } + } else { + for (RandomizerCheck loc : ctx->GetLocations(ctx->allLocations, Category::cPot)) { + AddItemToMainPool(Rando::StaticData::GetLocation(loc)->GetVanillaItem()); + } + } + auto fsMode = ctx->GetOption(RSK_FISHSANITY); if (fsMode.IsNot(RO_FISHSANITY_OFF)) { if (fsMode.Is(RO_FISHSANITY_POND) || fsMode.Is(RO_FISHSANITY_BOTH)) { diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_bottom_of_the_well.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_bottom_of_the_well.cpp index 44260c7ebe4..df833529181 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_bottom_of_the_well.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_bottom_of_the_well.cpp @@ -42,6 +42,25 @@ void AreaTable_Init_BottomOfTheWell() { LOCATION(RC_BOTTOM_OF_THE_WELL_GS_WEST_INNER_ROOM, logic->Boomerang && (randoCtx->GetTrickOption(RT_LENS_BOTW) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->SmallKeys(RR_BOTTOM_OF_THE_WELL, 3)), LOCATION(RC_BOTTOM_OF_THE_WELL_GS_EAST_INNER_ROOM, logic->Boomerang && (randoCtx->GetTrickOption(RT_LENS_BOTW) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->SmallKeys(RR_BOTTOM_OF_THE_WELL, 3)), LOCATION(RC_BOTTOM_OF_THE_WELL_GS_LIKE_LIKE_CAGE, logic->SmallKeys(RR_BOTTOM_OF_THE_WELL, 3) && (randoCtx->GetTrickOption(RT_LENS_BOTW) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->Boomerang), + LOCATION(RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1, logic->CanBreakPots && logic->SmallKeys(RR_BOTTOM_OF_THE_WELL, 3)), + LOCATION(RC_BOTTOM_OF_THE_WELL_UNDERWATER_POT, (logic->CanBreakPots && logic->CanUse(RG_ZELDAS_LULLABY)) || logic->Boomerang), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_1, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_2, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_3, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_4, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_5, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_6, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_7, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_8, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_9, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_10, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_11, logic->CanBreakPots), + LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_12, logic->CanBreakPots), }, { //Exits Entrance(RR_BOTTOM_OF_THE_WELL_ENTRYWAY, {[]{return true;}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_castle_town.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_castle_town.cpp index e809beb5472..32c9eb886e3 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_castle_town.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_castle_town.cpp @@ -127,6 +127,10 @@ void AreaTable_Init_CastleTown() { //Locations LOCATION(RC_HC_GS_STORMS_GROTTO, (logic->CanBlastOrSmash && logic->HookshotOrBoomerang) || (logic->Boomerang && randoCtx->GetTrickOption(RT_HC_STORMS_GS))), LOCATION(RC_HC_STORMS_GROTTO_GOSSIP_STONE, logic->CanBlastOrSmash), + LOCATION(RC_HC_STORMS_GROTTO_POT_1, logic->CanBlastOrSmash && logic->CanBreakPots), + LOCATION(RC_HC_STORMS_GROTTO_POT_2, logic->CanBlastOrSmash && logic->CanBreakPots), + LOCATION(RC_HC_STORMS_GROTTO_POT_3, logic->CanBlastOrSmash && logic->CanBreakPots), + LOCATION(RC_HC_STORMS_GROTTO_POT_4, logic->CanBlastOrSmash && logic->CanBreakPots), }, { //Exits Entrance(RR_CASTLE_GROUNDS, {[]{return true;}}), @@ -167,8 +171,63 @@ void AreaTable_Init_CastleTown() { areaTable[RR_MARKET_GUARD_HOUSE] = Area("Market Guard House", "Market Guard House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, { //Locations - LOCATION(RC_MARKET_10_BIG_POES, logic->IsAdult && logic->BigPoeKill), - LOCATION(RC_MARKET_GS_GUARD_HOUSE, logic->IsChild), + LOCATION(RC_MARKET_10_BIG_POES, logic->IsAdult && logic->BigPoeKill), + LOCATION(RC_MARKET_GS_GUARD_HOUSE, logic->IsChild), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_1, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_2, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_3, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_4, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_5, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_6, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_7, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_8, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_9, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_10, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_11, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_12, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_13, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_14, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_15, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_16, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_17, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_18, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_19, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_20, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_21, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_22, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_23, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_24, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_25, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_26, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_27, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_28, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_29, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_30, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_31, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_32, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_33, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_34, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_35, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_36, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_37, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_38, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_39, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_40, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_41, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_42, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_43, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_CHILD_POT_44, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_1, logic->IsAdult && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_2, logic->IsAdult && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_3, logic->IsAdult && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_4, logic->IsAdult && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_5, logic->IsAdult && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_6, logic->IsAdult && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_7, logic->IsAdult && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_8, logic->IsAdult && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_9, logic->IsAdult && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_10, logic->IsAdult && logic->CanBreakPots), + LOCATION(RC_MK_GUARD_HOUSE_ADULT_POT_11, logic->IsAdult && logic->CanBreakPots), }, { //Exits Entrance(RR_MARKET_ENTRANCE, {[]{return true;}}), @@ -277,7 +336,12 @@ void AreaTable_Init_CastleTown() { Entrance(RR_MARKET_BACK_ALLEY, {[]{return true;}}), }); - areaTable[RR_MARKET_MAN_IN_GREEN_HOUSE] = Area("Market Man in Green House", "Market Man in Green House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_MARKET_MAN_IN_GREEN_HOUSE] = Area("Market Man in Green House", "Market Man in Green House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, { + // Locations + LOCATION(RC_MK_BACK_ALLEY_HOUSE_POT_1, logic->CanBreakPots), + LOCATION(RC_MK_BACK_ALLEY_HOUSE_POT_2, logic->CanBreakPots), + LOCATION(RC_MK_BACK_ALLEY_HOUSE_POT_3, logic->CanBreakPots), + }, { //Exits Entrance(RR_MARKET_BACK_ALLEY, {[]{return true;}}), }); diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_death_mountain.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_death_mountain.cpp index 73284dbc8f5..19fb4c1f499 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_death_mountain.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_death_mountain.cpp @@ -102,6 +102,12 @@ void AreaTable_Init_DeathMountain() { LOCATION(RC_GC_MEDIGORON, logic->IsAdult && logic->AdultsWallet && (logic->CanBlastOrSmash || logic->GoronBracelet)), LOCATION(RC_GC_MAZE_GOSSIP_STONE, logic->CanBlastOrSmash || logic->CanUse(RG_SILVER_GAUNTLETS)), LOCATION(RC_GC_MEDIGORON_GOSSIP_STONE, logic->CanBlastOrSmash || logic->GoronBracelet), + LOCATION(RC_GC_LOWER_STAIRCASE_POT_1, logic->CanBreakPots), + LOCATION(RC_GC_LOWER_STAIRCASE_POT_2, logic->CanBreakPots), + LOCATION(RC_GC_UPPER_STAIRCASE_POT_1, logic->CanBreakPots), + LOCATION(RC_GC_UPPER_STAIRCASE_POT_2, logic->CanBreakPots), + LOCATION(RC_GC_UPPER_STAIRCASE_POT_3, logic->CanBreakPots), + LOCATION(RC_GC_MEDIGORON_POT_1, logic->CanBlastOrSmash || logic->GoronBracelet), }, { //Exits Entrance(RR_DEATH_MOUNTAIN_TRAIL, {[]{return true;}}), @@ -125,7 +131,10 @@ void AreaTable_Init_DeathMountain() { EventAccess(&logic->GoronCityChildFire, {[]{return logic->GoronCityChildFire || (logic->IsChild && logic->CanUse(RG_STICKS));}}), }, { //Locations - LOCATION(RC_GC_DARUNIAS_JOY, logic->IsChild && logic->CanUse(RG_SARIAS_SONG)), + LOCATION(RC_GC_DARUNIAS_JOY, logic->IsChild && logic->CanUse(RG_SARIAS_SONG)), + LOCATION(RC_GC_DARUNIA_POT_1, logic->CanBreakPots), + LOCATION(RC_GC_DARUNIA_POT_2, logic->CanBreakPots), + LOCATION(RC_GC_DARUNIA_POT_3, logic->CanBreakPots), }, { //Exits Entrance(RR_GORON_CITY, {[]{return true;}}), @@ -196,7 +205,13 @@ void AreaTable_Init_DeathMountain() { Entrance(RR_DMC_LOWER_NEARBY, {[]{return logic->Hearts >= 3 && (logic->CanUse(RG_HOVER_BOOTS) || (randoCtx->GetTrickOption(RT_DMC_BOULDER_JS) && logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)) || (randoCtx->GetTrickOption(RT_DMC_BOULDER_SKIP) && logic->IsAdult));}}), }); - areaTable[RR_DMC_LOWER_NEARBY] = Area("DMC Lower Nearby", "Death Mountain Crater", RA_DEATH_MOUNTAIN_CRATER, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_DMC_LOWER_NEARBY] = Area("DMC Lower Nearby", "Death Mountain Crater", RA_DEATH_MOUNTAIN_CRATER, NO_DAY_NIGHT_CYCLE, {}, { + // Locations + LOCATION(RC_DMC_NEAR_GC_POT_1, logic->CanBreakPots), + LOCATION(RC_DMC_NEAR_GC_POT_2, logic->CanBreakPots), + LOCATION(RC_DMC_NEAR_GC_POT_3, logic->CanBreakPots), + LOCATION(RC_DMC_NEAR_GC_POT_4, logic->CanBreakPots), + }, { //Exits Entrance(RR_DMC_LOWER_LOCAL, {[]{return logic->FireTimer >= 48;}}), Entrance(RR_GC_DARUNIAS_CHAMBER, {[]{return true;}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_dodongos_cavern.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_dodongos_cavern.cpp index 591705e51fc..e2de6983ccf 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_dodongos_cavern.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_dodongos_cavern.cpp @@ -74,7 +74,13 @@ void AreaTable_Init_DodongosCavern() { Entrance(RR_DODONGOS_CAVERN_LOWER_LIZALFOS, {[]{return true;}}), }); - areaTable[RR_DODONGOS_CAVERN_LOWER_LIZALFOS] = Area("Dodongos Cavern Lower Lizalfos", "Dodongos Cavern", RA_DODONGOS_CAVERN, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_DODONGOS_CAVERN_LOWER_LIZALFOS] = Area("Dodongos Cavern Lower Lizalfos", "Dodongos Cavern", RA_DODONGOS_CAVERN, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_DODONGOS_CAVERN_LIZALFOS_POT_1, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_LIZALFOS_POT_2, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_LIZALFOS_POT_3, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_LIZALFOS_POT_4, logic->CanBreakPots), + }, { //Exits Entrance(RR_DODONGOS_CAVERN_NEAR_LOWER_LIZALFOS, {[]{return Here(RR_DODONGOS_CAVERN_LOWER_LIZALFOS, []{return logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->CanUse(RG_STICKS) || logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD) || logic->CanUse(RG_MEGATON_HAMMER) || logic->HasExplosives;});}}), @@ -92,6 +98,10 @@ void AreaTable_Init_DodongosCavern() { areaTable[RR_DODONGOS_CAVERN_NEAR_DODONGO_ROOM] = Area("Dodongos Cavern Near Dodongo Room", "Dodongos Cavern", RA_DODONGOS_CAVERN, NO_DAY_NIGHT_CYCLE, {}, { //Locations LOCATION(RC_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS, logic->CanStunDeku), + LOCATION(RC_DODONGOS_CAVERN_TORCH_ROOM_POT_1, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_TORCH_ROOM_POT_2, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_TORCH_ROOM_POT_3, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_TORCH_ROOM_POT_4, logic->CanBreakPots), }, { //Exits Entrance(RR_DODONGOS_CAVERN_DODONGO_ROOM, {[]{return true;}}), @@ -108,6 +118,10 @@ void AreaTable_Init_DodongosCavern() { //Locations LOCATION(RC_DODONGOS_CAVERN_GS_ALCOVE_ABOVE_STAIRS, Here(RR_DODONGOS_CAVERN_FAR_BRIDGE, []{return logic->HookshotOrBoomerang;}) || logic->CanUse(RG_LONGSHOT)), LOCATION(RC_DODONGOS_CAVERN_GS_VINES_ABOVE_STAIRS, logic->IsAdult || logic->CanChildAttack || (HasAccessTo(RR_DODONGOS_CAVERN_STAIRS_LOWER) && logic->CanUse(RG_LONGSHOT) && randoCtx->GetTrickOption(RT_DC_VINES_GS))), + LOCATION(RC_DODONGOS_CAVERN_STAIRCASE_POT_1, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_STAIRCASE_POT_2, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_STAIRCASE_POT_3, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_STAIRCASE_POT_4, logic->CanBreakPots), }, { //Exits Entrance(RR_DODONGOS_CAVERN_STAIRS_LOWER, {[]{return true;}}), @@ -147,7 +161,11 @@ void AreaTable_Init_DodongosCavern() { Entrance(RR_DODONGOS_CAVERN_BOMB_ROOM_LOWER, {[]{return true;}}), }); - areaTable[RR_DODONGOS_CAVERN_FIRST_SLINGSHOT_ROOM] = Area("Dodongos Cavern First Slingshot Room", "Dodongos Cavern", RA_DODONGOS_CAVERN, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_DODONGOS_CAVERN_FIRST_SLINGSHOT_ROOM] = Area("Dodongos Cavern First Slingshot Room", "Dodongos Cavern", RA_DODONGOS_CAVERN, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_DODONGOS_CAVERN_SINGLE_EYE_POT_1, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_SINGLE_EYE_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_DODONGOS_CAVERN_BOMB_ROOM_LOWER, {[]{return true;}}), Entrance(RR_DODONGOS_CAVERN_UPPER_LIZALFOS, {[]{return logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->CanUse(RG_FAIRY_BOW) || randoCtx->GetTrickOption(RT_DC_SLINGSHOT_SKIP);}}), @@ -162,7 +180,11 @@ void AreaTable_Init_DodongosCavern() { logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD) || logic->CanUse(RG_MEGATON_HAMMER) || logic->HasExplosives;});}}), }); - areaTable[RR_DODONGOS_CAVERN_SECOND_SLINGSHOT_ROOM] = Area("Dodongos Cavern Second Slingshot Room", "Dodongos Cavern", RA_DODONGOS_CAVERN, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_DODONGOS_CAVERN_SECOND_SLINGSHOT_ROOM] = Area("Dodongos Cavern Second Slingshot Room", "Dodongos Cavern", RA_DODONGOS_CAVERN, NO_DAY_NIGHT_CYCLE, {}, { + //Location + LOCATION(RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_1, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_DODONGOS_CAVERN_UPPER_LIZALFOS, {[]{return true;}}), Entrance(RR_DODONGOS_CAVERN_BOMB_ROOM_UPPER, {[]{return logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->CanUse(RG_FAIRY_BOW) || randoCtx->GetTrickOption(RT_DC_SLINGSHOT_SKIP);}}), @@ -171,6 +193,8 @@ void AreaTable_Init_DodongosCavern() { areaTable[RR_DODONGOS_CAVERN_BOMB_ROOM_UPPER] = Area("Dodongos Cavern Bomb Room Upper", "Dodongos Cavern", RA_DODONGOS_CAVERN, NO_DAY_NIGHT_CYCLE, {}, { //Locations LOCATION(RC_DODONGOS_CAVERN_BOMB_BAG_CHEST, true), + LOCATION(RC_DODONGOS_CAVERN_BLADE_POT_1, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_BLADE_POT_2, logic->CanBreakPots), }, { //Exits Entrance(RR_DODONGOS_CAVERN_BOMB_ROOM_LOWER, {[]{return true;}}), @@ -190,7 +214,15 @@ void AreaTable_Init_DodongosCavern() { areaTable[RR_DODONGOS_CAVERN_BOSS_AREA] = Area("Dodongos Cavern Boss Area", "Dodongos Cavern", RA_DODONGOS_CAVERN, NO_DAY_NIGHT_CYCLE, { //Events EventAccess(&logic->FairyPot, {[]{return true;}}), - }, {}, { + }, { + //Locations + LOCATION(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_1, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_2, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_3, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_4, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_5, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_6, logic->CanBreakPots), + }, { //Exits Entrance(RR_DODONGOS_CAVERN_LOBBY, {[]{return true;}}), Entrance(RR_DODONGOS_CAVERN_BACK_ROOM, {[]{return Here(RR_DODONGOS_CAVERN_BOSS_AREA, []{return logic->CanBlastOrSmash;});}}), @@ -200,6 +232,10 @@ void AreaTable_Init_DodongosCavern() { areaTable[RR_DODONGOS_CAVERN_BACK_ROOM] = Area("Dodongos Cavern Back Room", "Dodongos Cavern", RA_DODONGOS_CAVERN, NO_DAY_NIGHT_CYCLE, {}, { //Locations LOCATION(RC_DODONGOS_CAVERN_GS_BACK_ROOM, logic->CanAdultAttack || logic->CanChildAttack), + LOCATION(RC_DODONGOS_CAVERN_BACK_ROOM_POT_1, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_BACK_ROOM_POT_2, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_BACK_ROOM_POT_3, logic->CanBreakPots), + LOCATION(RC_DODONGOS_CAVERN_BACK_ROOM_POT_4, logic->CanBreakPots), }, { //Exits Entrance(RR_DODONGOS_CAVERN_BOSS_AREA, {[]{return true;}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_fire_temple.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_fire_temple.cpp index b3c2e5387d1..ba0d1b382d9 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_fire_temple.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_fire_temple.cpp @@ -35,6 +35,10 @@ void AreaTable_Init_FireTemple() { }, { //Locations LOCATION(RC_FIRE_TEMPLE_NEAR_BOSS_CHEST, true), + LOCATION(RC_FIRE_TEMPLE_NEAR_BOSS_POT_1, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_NEAR_BOSS_POT_2, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_NEAR_BOSS_POT_3, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_NEAR_BOSS_POT_4, logic->CanBreakPots), }, { //Exits Entrance(RR_FIRE_TEMPLE_FIRST_ROOM, {[]{return true;}}), @@ -90,7 +94,12 @@ void AreaTable_Init_FireTemple() { Entrance(RR_FIRE_TEMPLE_LOOP_GORON_ROOM, {[]{return logic->FireLoopSwitch;}}), }); - areaTable[RR_FIRE_TEMPLE_BIG_LAVA_ROOM] = Area("Fire Temple Big Lava Room", "Fire Temple", RA_FIRE_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_FIRE_TEMPLE_BIG_LAVA_ROOM] = Area("Fire Temple Big Lava Room", "Fire Temple", RA_FIRE_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_FIRE_TEMPLE_BIG_LAVA_POT_1, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_BIG_LAVA_POT_2, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_BIG_LAVA_POT_3, logic->CanBreakPots), + }, { //Exits Entrance(RR_FIRE_TEMPLE_FIRST_ROOM, {[]{return logic->SmallKeys(RR_FIRE_TEMPLE, 2);}}), Entrance(RR_FIRE_TEMPLE_BIG_LAVA_ROOM_NORTH_GORON, {[]{return true;}}), @@ -225,7 +234,17 @@ void AreaTable_Init_FireTemple() { Entrance(RR_FIRE_TEMPLE_FIRE_MAZE_ROOM, {[]{return true;}}), }); - areaTable[RR_FIRE_TEMPLE_FIRE_MAZE_ROOM] = Area("Fire Temple Fire Maze Room", "Fire Temple", RA_FIRE_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_FIRE_TEMPLE_FIRE_MAZE_ROOM] = Area("Fire Temple Fire Maze Room", "Fire Temple", RA_FIRE_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3, logic->CanBreakPots), + LOCATION(RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4, logic->CanBreakPots), + }, { //Exits Entrance(RR_FIRE_TEMPLE_CORRIDOR, {[]{return true;}}), Entrance(RR_FIRE_TEMPLE_FIRE_MAZE_UPPER, {[]{return logic->CanUse(RG_HOVER_BOOTS);}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_forest_temple.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_forest_temple.cpp index eaaee1f36e0..44c7ecd5dd1 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_forest_temple.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_forest_temple.cpp @@ -41,6 +41,12 @@ void AreaTable_Init_ForestTemple() { }, { //Locations LOCATION(RC_FOREST_TEMPLE_GS_LOBBY, logic->HookshotOrBoomerang), + LOCATION(RC_FOREST_TEMPLE_LOBBY_POT_1, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_LOBBY_POT_2, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_LOBBY_POT_3, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_LOBBY_POT_4, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_LOBBY_POT_5, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_LOBBY_POT_6, logic->CanBreakPots), }, { //Exits Entrance(RR_FOREST_TEMPLE_SOUTH_CORRIDOR, {[]{return true;}}), @@ -65,6 +71,8 @@ void AreaTable_Init_ForestTemple() { }, { //Locations LOCATION(RC_FOREST_TEMPLE_FIRST_STALFOS_CHEST, logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD) || logic->CanUse(RG_MEGATON_HAMMER)), + LOCATION(RC_FOREST_TEMPLE_LOWER_STALFOS_POT_1, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_LOWER_STALFOS_POT_2, logic->CanBreakPots), }, { //Exits Entrance(RR_FOREST_TEMPLE_NORTH_CORRIDOR, {[]{return true;}}), @@ -203,6 +211,10 @@ void AreaTable_Init_ForestTemple() { areaTable[RR_FOREST_TEMPLE_UPPER_STALFOS] = Area("Forest Temple Upper Stalfos", "Forest Temple", RA_FOREST_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { //Locations LOCATION(RC_FOREST_TEMPLE_BOW_CHEST, logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD) || logic->CanUse(RG_MEGATON_HAMMER)), + LOCATION(RC_FOREST_TEMPLE_UPPER_STALFOS_POT_1, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_UPPER_STALFOS_POT_2, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_UPPER_STALFOS_POT_3, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_UPPER_STALFOS_POT_4, logic->CanBreakPots), }, { //Exits Entrance(RR_FOREST_TEMPLE_RED_POE_ROOM, {[]{return logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD) || logic->CanUse(RG_MEGATON_HAMMER);}}), @@ -215,6 +227,9 @@ void AreaTable_Init_ForestTemple() { }, { //Locations LOCATION(RC_FOREST_TEMPLE_BLUE_POE_CHEST, logic->ForestTempleBeth), + LOCATION(RC_FOREST_TEMPLE_BLUE_POE_POT_1, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_BLUE_POE_POT_2, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_BLUE_POE_POT_3, logic->CanBreakPots), }, { //Exits Entrance(RR_FOREST_TEMPLE_UPPER_STALFOS, {[]{return true;}}), @@ -233,7 +248,11 @@ void AreaTable_Init_ForestTemple() { Entrance(RR_FOREST_TEMPLE_FALLING_ROOM, {[]{return true;}}), }); - areaTable[RR_FOREST_TEMPLE_FROZEN_EYE_ROOM] = Area("Forest Temple Frozen Eye Room", "Forest Temple", RA_FOREST_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_FOREST_TEMPLE_FROZEN_EYE_ROOM] = Area("Forest Temple Frozen Eye Room", "Forest Temple", RA_FOREST_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_FOREST_TEMPLE_FROZEN_EYE_POT_1, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_FROZEN_EYE_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_FOREST_TEMPLE_NE_CORRIDOR_STRAIGHTENED, {[]{return logic->SmallKeys(RR_FOREST_TEMPLE, 5);}}), Entrance(RR_FOREST_TEMPLE_NE_CORRIDOR_TWISTED, {[]{return logic->SmallKeys(RR_FOREST_TEMPLE, 5) && (logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_DINS_FIRE));}}), @@ -251,7 +270,11 @@ void AreaTable_Init_ForestTemple() { areaTable[RR_FOREST_TEMPLE_GREEN_POE_ROOM] = Area("Forest Temple Green Poe Room", "Forest Temple", RA_FOREST_TEMPLE, NO_DAY_NIGHT_CYCLE, { //Events EventAccess(&logic->ForestTempleAmy, {[]{return logic->ForestTempleAmy || logic->CanUse(RG_FAIRY_BOW);}}), - }, {}, { + }, { + //Locations + LOCATION(RC_FOREST_TEMPLE_GREEN_POE_POT_1, logic->CanBreakPots), + LOCATION(RC_FOREST_TEMPLE_GREEN_POE_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_FOREST_TEMPLE_FALLING_ROOM, {[]{return true;}}), Entrance(RR_FOREST_TEMPLE_EAST_CORRIDOR, {[]{return logic->ForestTempleAmy;}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_ganons_castle.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_ganons_castle.cpp index 05249def11a..c70195b062f 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_ganons_castle.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_ganons_castle.cpp @@ -22,7 +22,7 @@ void AreaTable_Init_GanonsCastle() { if (randoCtx->GetDungeon(GANONS_CASTLE)->IsVanilla()) { areaTable[RR_GANONS_CASTLE_LOBBY] = Area("Ganon's Castle Lobby", "Ganon's Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {}, { //Locations - LOCATION(RC_SHEIK_HINT_GC, true), + LOCATION(RC_SHEIK_HINT_GC, true), }, { //Exits Entrance(RR_GANONS_CASTLE_ENTRYWAY, {[]{return true;}}), @@ -58,12 +58,18 @@ void AreaTable_Init_GanonsCastle() { }, { //Locations LOCATION(RC_GANONS_CASTLE_FOREST_TRIAL_CHEST, logic->CanAdultDamage || logic->CanChildDamage), + LOCATION(RC_GANONS_CASTLE_FOREST_TRIAL_POT_1, logic->CanBreakPots && (logic->FireArrows || logic->DinsFire)), + LOCATION(RC_GANONS_CASTLE_FOREST_TRIAL_POT_2, logic->CanBreakPots && (logic->FireArrows || logic->DinsFire)), }, {}); 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);}}), - }, {}, {}); + }, { + //Locations + LOCATION(RC_GANONS_CASTLE_FIRE_TRIAL_POT_1, logic->CanBreakPots && logic->CanUse(RG_GORON_TUNIC) && logic->CanUse(RG_GOLDEN_GAUNTLETS) && logic->CanUse(RG_LONGSHOT)), + LOCATION(RC_GANONS_CASTLE_FIRE_TRIAL_POT_2, logic->CanBreakPots && logic->CanUse(RG_GORON_TUNIC) && logic->CanUse(RG_GOLDEN_GAUNTLETS) && logic->CanUse(RG_LONGSHOT)), + }, {}); areaTable[RR_GANONS_CASTLE_WATER_TRIAL] = Area("Ganon's Castle Water Trial", "Ganon's Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, { //Events @@ -74,6 +80,9 @@ void AreaTable_Init_GanonsCastle() { //Locations LOCATION(RC_GANONS_CASTLE_WATER_TRIAL_LEFT_CHEST, true), LOCATION(RC_GANONS_CASTLE_WATER_TRIAL_RIGHT_CHEST, true), + LOCATION(RC_GANONS_CASTLE_WATER_TRIAL_POT_1, logic->CanBreakPots && logic->BlueFireAccess), + LOCATION(RC_GANONS_CASTLE_WATER_TRIAL_POT_2, logic->CanBreakPots && logic->FairyPot), + LOCATION(RC_GANONS_CASTLE_WATER_TRIAL_POT_3, logic->CanBreakPots && logic->BlueFire && logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)), }, {}); areaTable[RR_GANONS_CASTLE_SHADOW_TRIAL] = Area("Ganon's Castle Shadow Trial", "Ganon's Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, { @@ -83,6 +92,10 @@ void AreaTable_Init_GanonsCastle() { //Locations LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_FRONT_CHEST, logic->CanUse(RG_FIRE_ARROWS) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_SONG_OF_TIME) || logic->IsChild), LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_GOLDEN_GAUNTLETS_CHEST, logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_DINS_FIRE)))), + LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_1, logic->CanBreakPots && (logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_DINS_FIRE))))), + LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_2, logic->CanBreakPots && (logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_DINS_FIRE))))), + LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_3, logic->CanBreakPots && (logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_DINS_FIRE))))), + LOCATION(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_4, logic->CanBreakPots && (logic->CanUse(RG_FIRE_ARROWS) || (logic->CanUse(RG_LONGSHOT) && (logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_DINS_FIRE))))), }, {}); areaTable[RR_GANONS_CASTLE_SPIRIT_TRIAL] = Area("Ganon's Castle Spirit Trial", "Ganon's Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, { @@ -93,6 +106,8 @@ void AreaTable_Init_GanonsCastle() { //Locations LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_CRYSTAL_SWITCH_CHEST, (randoCtx->GetTrickOption(RT_GANON_SPIRIT_TRIAL_HOOKSHOT) || logic->CanUse(RG_HOOKSHOT)) && logic->CanJumpslash), LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_INVISIBLE_CHEST, (randoCtx->GetTrickOption(RT_GANON_SPIRIT_TRIAL_HOOKSHOT) || logic->CanUse(RG_HOOKSHOT)) && logic->CanUse(RG_BOMBCHU_5) && (randoCtx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH))), + LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_1, logic->CanBreakPots && logic->NutPot), + LOCATION(RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_2, logic->CanBreakPots && logic->NutPot), }, {}); areaTable[RR_GANONS_CASTLE_LIGHT_TRIAL] = Area("Ganon's Castle Light Trial", "Ganon's Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, { @@ -108,14 +123,35 @@ void AreaTable_Init_GanonsCastle() { LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_THIRD_RIGHT_CHEST, true), LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_INVISIBLE_ENEMIES_CHEST, randoCtx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH)), LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_LULLABY_CHEST, logic->CanUse(RG_ZELDAS_LULLABY) && logic->SmallKeys(RR_GANONS_CASTLE, 1)), + LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1, logic->CanBreakPots && logic->CanUse(RG_ZELDAS_LULLABY) && logic->SmallKeys(RR_GANONS_CASTLE, 1)), + LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_POT_1, logic->CanBreakPots && logic->CanUse(RG_HOOKSHOT) && logic->SmallKeys(RR_GANONS_CASTLE, 2) && (randoCtx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH))), + LOCATION(RC_GANONS_CASTLE_LIGHT_TRIAL_POT_2, logic->CanBreakPots && logic->CanUse(RG_HOOKSHOT) && logic->SmallKeys(RR_GANONS_CASTLE, 2) && (randoCtx->GetTrickOption(RT_LENS_GANON) || logic->CanUse(RG_LENS_OF_TRUTH))), }, {}); } areaTable[RR_GANONS_CASTLE_TOWER] = Area("Ganon's Castle Tower", "Ganons Castle", RA_GANONS_CASTLE, NO_DAY_NIGHT_CYCLE, {}, { //Locations - LOCATION(RC_GANONS_TOWER_BOSS_KEY_CHEST, logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), - LOCATION(RC_GANONDORF_HINT, logic->BossKeyGanonsCastle && (logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD))), - LOCATION(RC_GANON, logic->HasBossSoul(RG_GANON_SOUL) && logic->BossKeyGanonsCastle && logic->CanUse(RG_LIGHT_ARROWS) && logic->CanUse(RG_MASTER_SWORD)), + LOCATION(RC_GANONS_TOWER_BOSS_KEY_CHEST, logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONDORF_HINT, logic->BossKeyGanonsCastle && (logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD))), + LOCATION(RC_GANON, logic->HasBossSoul(RG_GANON_SOUL) && logic->BossKeyGanonsCastle && logic->CanUse(RG_LIGHT_ARROWS) && logic->CanUse(RG_MASTER_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_1, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_2, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_3, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_4, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_5, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_6, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_7, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_8, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_9, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_10, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_11, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_12, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_13, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_14, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_15, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_16, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_17, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), + LOCATION(RC_GANONS_CASTLE_GANONS_TOWER_POT_18, logic->CanBreakPots && logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD)), }, {}); /*--------------------------- diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_gerudo_valley.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_gerudo_valley.cpp index 5913e2d3b37..950c143e9bb 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_gerudo_valley.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_gerudo_valley.cpp @@ -110,6 +110,22 @@ void AreaTable_Init_GerudoValley() { LOCATION(RC_GF_GERUDO_MEMBERSHIP_CARD, logic->CanFinishGerudoFortress), LOCATION(RC_GF_GS_ARCHERY_RANGE, logic->IsAdult && logic->HookshotOrBoomerang && logic->GerudoToken && logic->AtNight && logic->CanGetNightTimeGS), LOCATION(RC_GF_GS_TOP_FLOOR, logic->IsAdult && logic->AtNight && (logic->CanJumpslash || logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->CanUse(RG_BOOMERANG) || logic->HasExplosives || logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_DINS_FIRE)) && (logic->GerudoToken || logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_HOOKSHOT) || logic->CanUse(RG_HOVER_BOOTS) || randoCtx->GetTrickOption(RT_GF_KITCHEN) || randoCtx->GetTrickOption(RT_GF_JUMP)) && logic->CanGetNightTimeGS), + LOCATION(RC_GF_BREAK_ROOM_POT_1, logic->CanBreakPots), + LOCATION(RC_GF_BREAK_ROOM_POT_2, logic->CanBreakPots), + LOCATION(RC_GF_KITCHEN_POT_1, (logic->GerudoToken || logic->Bow || logic->Hookshot) && logic->CanBreakPots), + LOCATION(RC_GF_KITCHEN_POT_2, (logic->GerudoToken || logic->Bow || logic->Hookshot) && logic->CanBreakPots), + LOCATION(RC_GF_NORTH_F1_CARPENTER_POT_1, logic->CanBreakPots), + LOCATION(RC_GF_NORTH_F1_CARPENTER_POT_2, logic->CanBreakPots), + LOCATION(RC_GF_NORTH_F1_CARPENTER_POT_3, logic->CanBreakPots), + LOCATION(RC_GF_NORTH_F2_CARPENTER_POT_1, logic->CanBreakPots), + LOCATION(RC_GF_NORTH_F2_CARPENTER_POT_2, logic->CanBreakPots), + LOCATION(RC_GF_SOUTH_F1_CARPENTER_POT_1, logic->CanBreakPots), + LOCATION(RC_GF_SOUTH_F1_CARPENTER_POT_2, logic->CanBreakPots), + LOCATION(RC_GF_SOUTH_F1_CARPENTER_POT_3, logic->CanBreakPots), + LOCATION(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_1, logic->CanBreakPots), + LOCATION(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_2, logic->CanBreakPots), + LOCATION(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_3, logic->CanBreakPots), + LOCATION(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_4, logic->CanBreakPots), }, { //Exits Entrance(RR_GV_FORTRESS_SIDE, {[]{return true;}}), @@ -151,6 +167,10 @@ void AreaTable_Init_GerudoValley() { LOCATION(RC_WASTELAND_CHEST, logic->HasFireSource), LOCATION(RC_WASTELAND_BOMBCHU_SALESMAN, logic->CarpetMerchant), LOCATION(RC_WASTELAND_GS, logic->HookshotOrBoomerang), + LOCATION(RC_WASTELAND_NEAR_GS_POT_1, logic->CanBreakPots), + LOCATION(RC_WASTELAND_NEAR_GS_POT_2, logic->CanBreakPots), + LOCATION(RC_WASTELAND_NEAR_GS_POT_3, logic->CanBreakPots), + LOCATION(RC_WASTELAND_NEAR_GS_POT_4, logic->CanBreakPots), }, { //Exits Entrance(RR_WASTELAND_NEAR_COLOSSUS, {[]{return randoCtx->GetTrickOption(RT_LENS_HW) || logic->CanUse(RG_LENS_OF_TRUTH);}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_hyrule_field.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_hyrule_field.cpp index 860b90e8b80..a68d379c4bb 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_hyrule_field.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_hyrule_field.cpp @@ -68,6 +68,8 @@ void AreaTable_Init_HyruleField() { LOCATION(RC_HF_GS_COW_GROTTO, logic->HasFireSource && logic->HookshotOrBoomerang), LOCATION(RC_HF_COW_GROTTO_COW, logic->HasFireSource && logic->CanUse(RG_EPONAS_SONG)), LOCATION(RC_HF_COW_GROTTO_GOSSIP_STONE, logic->HasFireSource), + LOCATION(RC_HF_COW_GROTTO_POT_1, logic->HasFireSource && logic->CanBreakPots), + LOCATION(RC_HF_COW_GROTTO_POT_2, logic->HasFireSource && logic->CanBreakPots), }, { //Exits Entrance(RR_HYRULE_FIELD, {[]{return true;}}), @@ -231,6 +233,13 @@ void AreaTable_Init_HyruleField() { LOCATION(RC_LLR_GS_RAIN_SHED, logic->IsChild && logic->AtNight && logic->CanGetNightTimeGS), LOCATION(RC_LLR_GS_HOUSE_WINDOW, logic->IsChild && logic->HookshotOrBoomerang && logic->AtNight && logic->CanGetNightTimeGS), LOCATION(RC_LLR_GS_BACK_WALL, logic->IsChild && logic->HookshotOrBoomerang && logic->AtNight && logic->CanGetNightTimeGS), + LOCATION(RC_LLR_FRONT_POT_1, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_LLR_FRONT_POT_2, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_LLR_FRONT_POT_3, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_LLR_FRONT_POT_4, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_LLR_RAIN_SHED_POT_1, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_LLR_RAIN_SHED_POT_2, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_LLR_RAIN_SHED_POT_3, logic->IsChild && logic->CanBreakPots), }, { //Exits Entrance(RR_HYRULE_FIELD, {[]{return true;}}), @@ -242,7 +251,10 @@ void AreaTable_Init_HyruleField() { areaTable[RR_LLR_TALONS_HOUSE] = Area("LLR Talons House", "LLR Talons House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, { //Locations - LOCATION(RC_LLR_TALONS_CHICKENS, logic->ChildsWallet && logic->IsChild && logic->AtDay && logic->ZeldasLetter), + LOCATION(RC_LLR_TALONS_CHICKENS, logic->ChildsWallet && logic->IsChild && logic->AtDay && logic->ZeldasLetter), + LOCATION(RC_LLR_TALONS_HOUSE_POT_1, logic->CanBreakPots), + LOCATION(RC_LLR_TALONS_HOUSE_POT_2, logic->CanBreakPots), + LOCATION(RC_LLR_TALONS_HOUSE_POT_3, logic->CanBreakPots), }, { //Exits Entrance(RR_LON_LON_RANCH, {[]{return true;}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_ice_cavern.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_ice_cavern.cpp index 7f5873ba17a..acff212c272 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_ice_cavern.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_ice_cavern.cpp @@ -38,6 +38,14 @@ void AreaTable_Init_IceCavern() { LOCATION(RC_ICE_CAVERN_GS_SPINNING_SCYTHE_ROOM, logic->HookshotOrBoomerang), LOCATION(RC_ICE_CAVERN_GS_HEART_PIECE_ROOM, logic->BlueFire && logic->HookshotOrBoomerang), LOCATION(RC_ICE_CAVERN_GS_PUSH_BLOCK_ROOM, logic->BlueFire && (logic->HookshotOrBoomerang || (randoCtx->GetTrickOption(RT_ICE_BLOCK_GS) && logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS)))), + LOCATION(RC_ICE_CAVERN_HALL_POT_1, logic->CanBreakPots), + LOCATION(RC_ICE_CAVERN_HALL_POT_2, logic->CanBreakPots), + LOCATION(RC_ICE_CAVERN_SPINNING_BLADE_POT_1, logic->CanBreakPots), + LOCATION(RC_ICE_CAVERN_SPINNING_BLADE_POT_2, logic->CanBreakPots), + LOCATION(RC_ICE_CAVERN_SPINNING_BLADE_POT_3, logic->CanBreakPots), + LOCATION(RC_ICE_CAVERN_NEAR_END_POT_1, logic->CanBreakPots), + LOCATION(RC_ICE_CAVERN_NEAR_END_POT_2, logic->CanBreakPots), + LOCATION(RC_ICE_CAVERN_FROZEN_POT_1, logic->CanBreakPots), }, {}); } diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_jabujabus_belly.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_jabujabus_belly.cpp index 036a522b0f7..bd0a4fc6b8d 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_jabujabus_belly.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_jabujabus_belly.cpp @@ -58,6 +58,9 @@ void AreaTable_Init_JabuJabusBelly() { }, { //Locations LOCATION(RC_JABU_JABUS_BELLY_GS_WATER_SWITCH_ROOM, true), + LOCATION(RC_JABU_JABUS_BELLY_BASEMENT_POT_1, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_BASEMENT_POT_2, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_BASEMENT_POT_3, logic->CanBreakPots), }, { //Exits Entrance(RR_JABU_JABUS_BELLY_MAIN_LOWER, {[]{return logic->Swim;}}), @@ -67,7 +70,14 @@ void AreaTable_Init_JabuJabusBelly() { areaTable[RR_JABU_JABUS_BELLY_LOWER_SIDE_ROOM] = Area("Jabu Jabus Belly Lower Side Room", "Jabu Jabus Belly", RA_JABU_JABUS_BELLY, NO_DAY_NIGHT_CYCLE, { //Events EventAccess(&logic->FairyPot, {[]{return logic->FairyPot || (logic->CanUse(RG_BOOMERANG) || logic->CanUse(RG_HOVER_BOOTS));}}), - }, {}, { + }, { + //Locations + LOCATION(RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5, logic->CanBreakPots), + }, { //Exits Entrance(RR_JABU_JABUS_BELLY_MAIN_LOWER, {[]{return true;}}), }); @@ -135,7 +145,12 @@ void AreaTable_Init_JabuJabusBelly() { //Events EventAccess(&logic->FairyPot, {[]{return true;}}), EventAccess(&logic->NutPot, {[]{return true;}}), - }, {}, { + }, { + //Locations + LOCATION(RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3, logic->CanBreakPots), + }, { //Exits Entrance(RR_JABU_JABUS_BELLY_LIFT_UPPER, {[]{return logic->CanUse(RG_BOOMERANG);}}), }); @@ -221,7 +236,15 @@ void AreaTable_Init_JabuJabusBelly() { | BOSS ROOM | ---------------------------*/ areaTable[RR_JABU_JABUS_BELLY_BOSS_ENTRYWAY] = - Area("Jabu Jabus Belly Boss Entryway", "Jabu Jabus Belly", RA_JABU_JABUS_BELLY, NO_DAY_NIGHT_CYCLE, {}, {}, + Area("Jabu Jabus Belly Boss Entryway", "Jabu Jabus Belly", RA_JABU_JABUS_BELLY, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_JABU_JABUS_BELLY_BARINADE_POT_1, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_BARINADE_POT_2, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_BARINADE_POT_3, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_BARINADE_POT_4, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_BARINADE_POT_5, logic->CanBreakPots), + LOCATION(RC_JABU_JABUS_BELLY_BARINADE_POT_6, logic->CanBreakPots), + }, { // Exits Entrance(RR_JABU_JABUS_BELLY_NEAR_BOSS_ROOM, { [] { return randoCtx->GetDungeon(JABU_JABUS_BELLY)->IsVanilla(); } }), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_kakariko.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_kakariko.cpp index b0452e41938..8081eb17bd2 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_kakariko.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_kakariko.cpp @@ -20,6 +20,17 @@ void AreaTable_Init_Kakariko() { LOCATION(RC_KAK_GS_GUARDS_HOUSE, logic->IsChild && logic->AtNight && logic->CanGetNightTimeGS), LOCATION(RC_KAK_GS_TREE, logic->IsChild && logic->AtNight && logic->CanGetNightTimeGS), LOCATION(RC_KAK_GS_WATCHTOWER, logic->IsChild && (logic->Slingshot || logic->CanUse(RG_BOMBCHU_5) || logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_LONGSHOT) || (randoCtx->GetTrickOption(RT_KAK_TOWER_GS) && logic->CanJumpslash)) && logic->AtNight && logic->CanGetNightTimeGS), + LOCATION(RC_KAK_NEAR_POTION_SHOP_POT_1, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_KAK_NEAR_POTION_SHOP_POT_2, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_KAK_NEAR_POTION_SHOP_POT_3, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_KAK_NEAR_IMPAS_HOUSE_POT_1, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_KAK_NEAR_IMPAS_HOUSE_POT_2, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_KAK_NEAR_IMPAS_HOUSE_POT_3, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_KAK_NEAR_GUARDS_HOUSE_POT_1, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_KAK_NEAR_GUARDS_HOUSE_POT_2, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_KAK_NEAR_GUARDS_HOUSE_POT_3, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_KAK_NEAR_MEDICINE_SHOP_POT_1, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_KAK_NEAR_MEDICINE_SHOP_POT_2, logic->IsChild && logic->CanBreakPots), }, { //Exits Entrance(RR_HYRULE_FIELD, {[]{return true;}}), @@ -262,6 +273,12 @@ void AreaTable_Init_Kakariko() { //Locations LOCATION(RC_GRAVEYARD_HOOKSHOT_CHEST, true), LOCATION(RC_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH, logic->IsAdult || randoCtx->GetTrickOption(RT_GY_CHILD_DAMPE_RACE_POH)), + LOCATION(RC_GY_DAMPES_GRAVE_POT_1, logic->CanBreakPots), + LOCATION(RC_GY_DAMPES_GRAVE_POT_2, logic->CanBreakPots), + LOCATION(RC_GY_DAMPES_GRAVE_POT_3, logic->CanBreakPots), + LOCATION(RC_GY_DAMPES_GRAVE_POT_4, logic->CanBreakPots), + LOCATION(RC_GY_DAMPES_GRAVE_POT_5, logic->CanBreakPots), + LOCATION(RC_GY_DAMPES_GRAVE_POT_6, logic->CanBreakPots), }, { //Exits Entrance(RR_THE_GRAVEYARD, {[]{return true;}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_lost_woods.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_lost_woods.cpp index 66c08590555..05e372af7bf 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_lost_woods.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_lost_woods.cpp @@ -48,6 +48,7 @@ void AreaTable_Init_LostWoods() { areaTable[RR_KF_LINKS_HOUSE] = Area("KF Link's House", "KF Link's House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, { //Locations LOCATION(RC_KF_LINKS_HOUSE_COW, logic->IsAdult && logic->CanUse(RG_EPONAS_SONG) && logic->LinksCow), + LOCATION(RC_KF_LINKS_HOUSE_POT, logic->CanBreakPots), }, { //Exits Entrance(RR_KOKIRI_FOREST, {[]{return true;}}) @@ -69,12 +70,20 @@ void AreaTable_Init_LostWoods() { Entrance(RR_KOKIRI_FOREST, {[]{return true;}}), }); - areaTable[RR_KF_HOUSE_OF_TWINS] = Area("KF House of Twins", "KF House of Twins", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_KF_HOUSE_OF_TWINS] = Area("KF House of Twins", "KF House of Twins", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_KF_TWINS_HOUSE_POT_1, logic->CanBreakPots), + LOCATION(RC_KF_TWINS_HOUSE_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_KOKIRI_FOREST, {[]{return true;}}), }); - areaTable[RR_KF_KNOW_IT_ALL_HOUSE] = Area("KF Know It All House", "KF Know It All House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_KF_KNOW_IT_ALL_HOUSE] = Area("KF Know It All House", "KF Know It All House", RA_NONE, NO_DAY_NIGHT_CYCLE, {}, { + // Locations + LOCATION(RC_KF_BROTHERS_HOUSE_POT_1, logic->CanBreakPots), + LOCATION(RC_KF_BROTHERS_HOUSE_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_KOKIRI_FOREST, {[]{return true;}}), }); diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_shadow_temple.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_shadow_temple.cpp index fb926506007..ea20c179a5b 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_shadow_temple.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_shadow_temple.cpp @@ -24,8 +24,16 @@ void AreaTable_Init_ShadowTemple() { EventAccess(&logic->NutPot, {[]{return true;}}), }, { //Locations - LOCATION(RC_SHADOW_TEMPLE_MAP_CHEST, logic->CanJumpslash), - LOCATION(RC_SHADOW_TEMPLE_HOVER_BOOTS_CHEST, (logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD))), + LOCATION(RC_SHADOW_TEMPLE_MAP_CHEST, logic->CanJumpslash), + LOCATION(RC_SHADOW_TEMPLE_HOVER_BOOTS_CHEST, (logic->CanUse(RG_KOKIRI_SWORD) || logic->CanUse(RG_MASTER_SWORD) || logic->CanUse(RG_BIGGORON_SWORD))), + LOCATION(RC_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_MAP_CHEST_POT_1, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_MAP_CHEST_POT_2, logic->CanBreakPots), }, { //Exits Entrance(RR_SHADOW_TEMPLE_ENTRYWAY, {[]{return true;}}), @@ -58,6 +66,10 @@ void AreaTable_Init_ShadowTemple() { LOCATION(RC_SHADOW_TEMPLE_GS_LIKE_LIKE_ROOM, logic->CanJumpslash), LOCATION(RC_SHADOW_TEMPLE_GS_FALLING_SPIKES_ROOM, logic->Hookshot || (randoCtx->GetTrickOption(RT_SHADOW_UMBRELLA_GS) && logic->HoverBoots)), LOCATION(RC_SHADOW_TEMPLE_GS_SINGLE_GIANT_POT, 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), + LOCATION(RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_1, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_2, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_3, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_4, logic->CanBreakPots), }, { //Exits Entrance(RR_SHADOW_TEMPLE_WIND_TUNNEL, {[]{return ((randoCtx->GetTrickOption(RT_LENS_SHADOW_PLATFORM) && randoCtx->GetTrickOption(RT_LENS_SHADOW)) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->Hookshot && logic->SmallKeys(RR_SHADOW_TEMPLE, 3, 4);}}), @@ -69,6 +81,8 @@ void AreaTable_Init_ShadowTemple() { LOCATION(RC_SHADOW_TEMPLE_AFTER_WIND_ENEMY_CHEST, logic->CanJumpslash), LOCATION(RC_SHADOW_TEMPLE_AFTER_WIND_HIDDEN_CHEST, true), LOCATION(RC_SHADOW_TEMPLE_GS_NEAR_SHIP, logic->CanUse(RG_LONGSHOT) && logic->SmallKeys(RR_SHADOW_TEMPLE, 4, 5)), + LOCATION(RC_SHADOW_TEMPLE_AFTER_WIND_POT_1, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_AFTER_WIND_POT_2, logic->CanBreakPots), }, { //Exits Entrance(RR_SHADOW_TEMPLE_BEYOND_BOAT, {[]{return logic->CanJumpslash && logic->CanUse(RG_ZELDAS_LULLABY) && logic->SmallKeys(RR_SHADOW_TEMPLE, 4, 5);}}), @@ -80,7 +94,14 @@ void AreaTable_Init_ShadowTemple() { LOCATION(RC_SHADOW_TEMPLE_BOSS_KEY_CHEST, logic->CanUse(RG_DINS_FIRE)), LOCATION(RC_SHADOW_TEMPLE_INVISIBLE_FLOORMASTER_CHEST, logic->CanJumpslash), LOCATION(RC_SHADOW_TEMPLE_GS_TRIPLE_GIANT_POT, logic->CanAdultAttack), - }, { + LOCATION(RC_SHADOW_TEMPLE_AFTER_BOAT_POT_1, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_AFTER_BOAT_POT_2, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_AFTER_BOAT_POT_3, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_AFTER_BOAT_POT_4, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_SPIKE_WALLS_POT_1, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_FLOORMASTER_POT_1, logic->CanBreakPots), + LOCATION(RC_SHADOW_TEMPLE_FLOORMASTER_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_SHADOW_TEMPLE_BOSS_ENTRYWAY, {[]{return (logic->CanUse(RG_FAIRY_BOW) || logic->CanUse(RG_DISTANT_SCARECROW) || (randoCtx->GetTrickOption(RT_SHADOW_STATUE) && logic->CanUse(RG_BOMBCHU_5))) && logic->SmallKeys(RR_SHADOW_TEMPLE, 5) && logic->CanUse(RG_HOVER_BOOTS) && logic->BossKeyShadowTemple;}}) }); diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_spirit_temple.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_spirit_temple.cpp index 747b5ec2f45..f80354461cb 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_spirit_temple.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_spirit_temple.cpp @@ -19,7 +19,11 @@ void AreaTable_Init_SpiritTemple() { | VANILLA DUNGEON | ---------------------------*/ if (randoCtx->GetDungeon(SPIRIT_TEMPLE)->IsVanilla()) { - areaTable[RR_SPIRIT_TEMPLE_LOBBY] = Area("Spirit Temple Lobby", "Spirit Temple", RA_SPIRIT_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_SPIRIT_TEMPLE_LOBBY] = Area("Spirit Temple Lobby", "Spirit Temple", RA_SPIRIT_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_SPIRIT_TEMPLE_LOBBY_POT_1, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_LOBBY_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_SPIRIT_TEMPLE_ENTRYWAY, {[]{return true;}}), Entrance(RR_SPIRIT_TEMPLE_CHILD, {[]{return logic->IsChild;}}), @@ -34,6 +38,10 @@ void AreaTable_Init_SpiritTemple() { LOCATION(RC_SPIRIT_TEMPLE_CHILD_BRIDGE_CHEST, (logic->Boomerang || logic->Slingshot || (logic->CanUse(RG_BOMBCHU_5) && randoCtx->GetTrickOption(RT_SPIRIT_CHILD_CHU))) && (logic->HasExplosives || ((logic->CanUse(RG_NUTS) || logic->Boomerang) && (logic->CanUse(RG_STICKS) || logic->KokiriSword || logic->Slingshot)))), LOCATION(RC_SPIRIT_TEMPLE_CHILD_EARLY_TORCHES_CHEST, (logic->Boomerang || logic->Slingshot || (logic->CanUse(RG_BOMBCHU_5) && randoCtx->GetTrickOption(RT_SPIRIT_CHILD_CHU))) && (logic->HasExplosives || ((logic->CanUse(RG_NUTS) || logic->Boomerang) && (logic->CanUse(RG_STICKS) || logic->KokiriSword || logic->Slingshot))) && (logic->CanUse(RG_STICKS) || logic->CanUse(RG_DINS_FIRE))), LOCATION(RC_SPIRIT_TEMPLE_GS_METAL_FENCE, (logic->Boomerang || logic->Slingshot || (logic->CanUse(RG_BOMBCHU_5) && randoCtx->GetTrickOption(RT_SPIRIT_CHILD_CHU))) && (logic->HasExplosives || ((logic->CanUse(RG_NUTS) || logic->Boomerang) && (logic->CanUse(RG_STICKS) || logic->KokiriSword || logic->Slingshot)))), + LOCATION(RC_SPIRIT_TEMPLE_ANUBIS_POT_1, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_ANUBIS_POT_2, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_ANUBIS_POT_3, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_ANUBIS_POT_4, logic->CanBreakPots), }, { //Exits Entrance(RR_SPIRIT_TEMPLE_CHILD_CLIMB, {[]{return logic->SmallKeys(RR_SPIRIT_TEMPLE, 1);}}), @@ -47,6 +55,7 @@ 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) && logic->BombchuRefill && 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)))), + LOCATION(RC_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1, logic->CanBreakPots), }, { //Exits Entrance(RR_SPIRIT_TEMPLE_CENTRAL_CHAMBER, {[]{return logic->HasExplosives || (randoCtx->GetOption(RSK_SUNLIGHT_ARROWS) && logic->CanUse(RG_LIGHT_ARROWS));}}), @@ -87,6 +96,14 @@ void AreaTable_Init_SpiritTemple() { randoCtx->GetTrickOption(RT_SPIRIT_LOBBY_GS) && logic->Boomerang && (logic->Hookshot || logic->HoverBoots || randoCtx->GetTrickOption(RT_SPIRIT_LOBBY_JUMP))) || (randoCtx->GetTrickOption(RT_SPIRIT_LOBBY_GS) && logic->SmallKeys(RR_SPIRIT_TEMPLE, 5) && logic->HasExplosives && logic->CanUse(RG_BOOMERANG)) || (logic->SmallKeys(RR_SPIRIT_TEMPLE, 3) && logic->CanUse(RG_SILVER_GAUNTLETS) && (logic->Hookshot || logic->HoverBoots || randoCtx->GetTrickOption(RT_SPIRIT_LOBBY_JUMP)))), + LOCATION(RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5, logic->CanBreakPots), + LOCATION(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6, logic->CanBreakPots), }, { //Exits Entrance(RR_SPIRIT_TEMPLE_OUTDOOR_HANDS, {[]{return logic->CanJumpslash || logic->HasExplosives;}}), @@ -108,6 +125,7 @@ void AreaTable_Init_SpiritTemple() { LOCATION(RC_SPIRIT_TEMPLE_NEAR_FOUR_ARMOS_CHEST, (logic->MirrorShield || (randoCtx->GetOption(RSK_SUNLIGHT_ARROWS) && logic->CanUse(RG_LIGHT_ARROWS))) && logic->HasExplosives), LOCATION(RC_SPIRIT_TEMPLE_HALLWAY_LEFT_INVISIBLE_CHEST, (randoCtx->GetTrickOption(RT_LENS_SPIRIT) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->HasExplosives), LOCATION(RC_SPIRIT_TEMPLE_HALLWAY_RIGHT_INVISIBLE_CHEST, (randoCtx->GetTrickOption(RT_LENS_SPIRIT) || logic->CanUse(RG_LENS_OF_TRUTH)) && logic->HasExplosives), + LOCATION(RC_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1, logic->CanBreakPots), }, { //Exits Entrance(RR_SPIRIT_TEMPLE_BEYOND_FINAL_LOCKED_DOOR, {[]{return logic->SmallKeys(RR_SPIRIT_TEMPLE, 5) && (randoCtx->GetTrickOption(RT_SPIRIT_WALL) || logic->CanUse(RG_LONGSHOT) || logic->CanUse(RG_BOMBCHU_5) || ((logic->Bombs || logic->CanUse(RG_NUTS) || logic->CanUse(RG_DINS_FIRE)) && (logic->Bow || logic->CanUse(RG_HOOKSHOT) || logic->Hammer)));}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_water_temple.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_water_temple.cpp index ef9c5ecd9dd..1d29fdd82ce 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_water_temple.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_water_temple.cpp @@ -20,7 +20,13 @@ void AreaTable_Init_WaterTemple() { ---------------------------*/ if (randoCtx->GetDungeon(WATER_TEMPLE)->IsVanilla()) { //Water Temple logic currently assumes that the locked door leading to the upper water raising location is unlocked from the start - areaTable[RR_WATER_TEMPLE_LOBBY] = Area("Water Temple Lobby", "Water Temple", RA_WATER_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_WATER_TEMPLE_LOBBY] = Area("Water Temple Lobby", "Water Temple", RA_WATER_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_1, logic->CanBreakPots), + LOCATION(RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_2, logic->CanBreakPots), + LOCATION(RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_1, logic->CanBreakPots), + LOCATION(RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_WATER_TEMPLE_ENTRYWAY, {[]{return true;}}), Entrance(RR_WATER_TEMPLE_EAST_LOWER, {[]{return logic->WaterTempleLow || ((randoCtx->GetTrickOption(RT_FEWER_TUNIC_REQUIREMENTS) || logic->CanUse(RG_ZORA_TUNIC)) && (logic->CanUse(RG_IRON_BOOTS) || (logic->CanUse(RG_LONGSHOT) && randoCtx->GetTrickOption(RT_WATER_LONGSHOT_TORCH))));}}), @@ -40,7 +46,11 @@ void AreaTable_Init_WaterTemple() { areaTable[RR_WATER_TEMPLE_EAST_LOWER] = Area("Water Temple East Lower", "Water Temple", RA_WATER_TEMPLE, NO_DAY_NIGHT_CYCLE, { //Events EventAccess(&logic->WaterTempleLow, {[]{return logic->WaterTempleLow || logic->CanUse(RG_ZELDAS_LULLABY);}}), - }, {}, { + }, { + //Locations + LOCATION(RC_WATER_TEMPLE_TORCH_POT_1, logic->CanBreakPots), + LOCATION(RC_WATER_TEMPLE_TORCH_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_WATER_TEMPLE_LOBBY, {[]{return logic->WaterTempleLow || ((randoCtx->GetTrickOption(RT_FEWER_TUNIC_REQUIREMENTS) || logic->CanUse(RG_ZORA_TUNIC)) && logic->CanUse(RG_IRON_BOOTS));}}), Entrance(RR_WATER_TEMPLE_MAP_ROOM, {[]{return logic->WaterTempleHigh;}}), @@ -88,7 +98,11 @@ void AreaTable_Init_WaterTemple() { Entrance(RR_WATER_TEMPLE_BOULDERS_UPPER, {[]{return (logic->IsAdult && (logic->CanUse(RG_HOVER_BOOTS) || randoCtx->GetTrickOption(RT_WATER_NORTH_BASEMENT_LEDGE_JUMP))) || (logic->CanUse(RG_HOVER_BOOTS) && logic->CanUse(RG_IRON_BOOTS));}}), }); - areaTable[RR_WATER_TEMPLE_BLOCK_ROOM] = Area("Water Temple Block Room", "Water Temple", RA_WATER_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_WATER_TEMPLE_BLOCK_ROOM] = Area("Water Temple Block Room", "Water Temple", RA_WATER_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1, logic->CanBreakPots), + LOCATION(RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_WATER_TEMPLE_BOULDERS_LOWER, {[]{return (logic->GoronBracelet && logic->HasExplosives) || logic->CanUse(RG_HOOKSHOT);}}), Entrance(RR_WATER_TEMPLE_JETS_ROOM, {[]{return (logic->GoronBracelet && logic->HasExplosives) || (logic->CanUse(RG_HOOKSHOT) && logic->CanUse(RG_HOVER_BOOTS));}}), @@ -113,6 +127,8 @@ void AreaTable_Init_WaterTemple() { }, { //Locations LOCATION(RC_WATER_TEMPLE_BOSS_KEY_CHEST, true), + LOCATION(RC_WATER_TEMPLE_BOSS_KEY_POT_1, logic->CanBreakPots), + LOCATION(RC_WATER_TEMPLE_BOSS_KEY_POT_2, logic->CanBreakPots), }, { //Exits Entrance(RR_WATER_TEMPLE_BOULDERS_UPPER, {[]{return (logic->CanUse(RG_IRON_BOOTS) || (logic->IsAdult && randoCtx->GetTrickOption(RT_WATER_BK_JUMP_DIVE)) || logic->IsChild || logic->CanDive) && logic->SmallKeys(RR_WATER_TEMPLE, 5);}}), @@ -121,6 +137,10 @@ void AreaTable_Init_WaterTemple() { areaTable[RR_WATER_TEMPLE_SOUTH_LOWER] = Area("Water Temple South Lower", "Water Temple", RA_WATER_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { //Locations LOCATION(RC_WATER_TEMPLE_GS_BEHIND_GATE, (logic->CanJumpslash || logic->CanUse(RG_MEGATON_HAMMER)) && (logic->CanUse(RG_HOOKSHOT) || (logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS)))), + LOCATION(RC_WATER_TEMPLE_BEHIND_GATE_POT_1, logic->CanBreakPots && (logic->CanJumpslash || logic->CanUse(RG_MEGATON_HAMMER)) && (logic->CanUse(RG_HOOKSHOT) || (logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS)))), + LOCATION(RC_WATER_TEMPLE_BEHIND_GATE_POT_2, logic->CanBreakPots && (logic->CanJumpslash || logic->CanUse(RG_MEGATON_HAMMER)) && (logic->CanUse(RG_HOOKSHOT) || (logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS)))), + LOCATION(RC_WATER_TEMPLE_BEHIND_GATE_POT_3, logic->CanBreakPots && (logic->CanJumpslash || logic->CanUse(RG_MEGATON_HAMMER)) && (logic->CanUse(RG_HOOKSHOT) || (logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS)))), + LOCATION(RC_WATER_TEMPLE_BEHIND_GATE_POT_4, logic->CanBreakPots && (logic->CanJumpslash || logic->CanUse(RG_MEGATON_HAMMER)) && (logic->CanUse(RG_HOOKSHOT) || (logic->IsAdult && logic->CanUse(RG_HOVER_BOOTS)))), }, { //Exits Entrance(RR_WATER_TEMPLE_LOBBY, {[]{return logic->CanUse(RG_IRON_BOOTS);}}), @@ -171,6 +191,9 @@ void AreaTable_Init_WaterTemple() { areaTable[RR_WATER_TEMPLE_EAST_MIDDLE] = Area("Water Temple East Middle", "Water Temple", RA_WATER_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { //Locations LOCATION(RC_WATER_TEMPLE_COMPASS_CHEST, logic->CanUseProjectile), + LOCATION(RC_WATER_TEMPLE_NEAR_COMPASS_POT_1, logic->CanBreakPots), + LOCATION(RC_WATER_TEMPLE_NEAR_COMPASS_POT_2, logic->CanBreakPots), + LOCATION(RC_WATER_TEMPLE_NEAR_COMPASS_POT_3, logic->CanBreakPots), }, { //Exits Entrance(RR_WATER_TEMPLE_LOBBY, {[]{return logic->CanUse(RG_IRON_BOOTS);}}), @@ -193,6 +216,8 @@ void AreaTable_Init_WaterTemple() { areaTable[RR_WATER_TEMPLE_BLOCK_CORRIDOR] = Area("Water Temple Block Corridor", "Water Temple", RA_WATER_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { //Locations LOCATION(RC_WATER_TEMPLE_CENTRAL_BOW_TARGET_CHEST, logic->GoronBracelet && (logic->WaterTempleLow || logic->WaterTempleMiddle)), + LOCATION(RC_WATER_TEMPLE_CENTRAL_BOW_POT_1, logic->CanBreakPots && logic->GoronBracelet && (logic->WaterTempleLow || logic->WaterTempleMiddle)), + LOCATION(RC_WATER_TEMPLE_CENTRAL_BOW_POT_2, logic->CanBreakPots && logic->GoronBracelet && (logic->WaterTempleLow || logic->WaterTempleMiddle)), }, { //Exits Entrance(RR_WATER_TEMPLE_LOBBY, {[]{return logic->CanUse(RG_HOOKSHOT);}}), @@ -207,7 +232,11 @@ void AreaTable_Init_WaterTemple() { Entrance(RR_WATER_TEMPLE_DRAGON_PILLARS_ROOM, {[]{return logic->CanUse(RG_HOOKSHOT) && logic->SmallKeys(RR_WATER_TEMPLE, 5);}}), }); - areaTable[RR_WATER_TEMPLE_DRAGON_PILLARS_ROOM] = Area("Water Temple Dragon Pillars Room", "Water Temple", RA_WATER_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, {}, { + areaTable[RR_WATER_TEMPLE_DRAGON_PILLARS_ROOM] = Area("Water Temple Dragon Pillars Room", "Water Temple", RA_WATER_TEMPLE, NO_DAY_NIGHT_CYCLE, {}, { + //Locations + LOCATION(RC_WATER_TEMPLE_LIKE_LIKE_POT_1, logic->CanBreakPots), + LOCATION(RC_WATER_TEMPLE_LIKE_LIKE_POT_2, logic->CanBreakPots), + }, { //Exits Entrance(RR_WATER_TEMPLE_FALLING_PLATFORM_ROOM, {[]{return logic->CanUseProjectile;}}), Entrance(RR_WATER_TEMPLE_DARK_LINK_ROOM, {[]{return logic->CanUse(RG_HOOKSHOT);}}), @@ -232,6 +261,8 @@ void AreaTable_Init_WaterTemple() { //Locations LOCATION(RC_WATER_TEMPLE_RIVER_CHEST, (logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->CanUse(RG_FAIRY_BOW)) && (logic->IsAdult || logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_HOOKSHOT))), LOCATION(RC_WATER_TEMPLE_GS_RIVER, (logic->CanUse(RG_IRON_BOOTS) && logic->CanUse(RG_HOOKSHOT)) || (randoCtx->GetTrickOption(RT_WATER_RIVER_GS) && logic->CanUse(RG_LONGSHOT))), + LOCATION(RC_WATER_TEMPLE_RIVER_POT_1, logic->CanBreakPots), + LOCATION(RC_WATER_TEMPLE_RIVER_POT_2, logic->CanBreakPots), }, { //Exits Entrance(RR_WATER_TEMPLE_DRAGON_ROOM, {[]{return (logic->CanUse(RG_FAIRY_SLINGSHOT) || logic->CanUse(RG_FAIRY_BOW)) && (logic->IsAdult || logic->CanUse(RG_HOVER_BOOTS) || logic->CanUse(RG_HOOKSHOT));}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_zoras_domain.cpp b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_zoras_domain.cpp index 49a76414718..76181b9b6b2 100644 --- a/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_zoras_domain.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/location_access/locacc_zoras_domain.cpp @@ -106,6 +106,11 @@ void AreaTable_Init_ZorasDomain() { LOCATION(RC_ZD_GOSSIP_STONE, true), LOCATION(RC_ZD_IN_FRONT_OF_KING_ZORA_BEEHIVE_LEFT, logic->CanBreakUpperBeehives), LOCATION(RC_ZD_IN_FRONT_OF_KING_ZORA_BEEHIVE_RIGHT, logic->CanBreakUpperBeehives), + LOCATION(RC_ZD_NEAR_SHOP_POT_1, logic->CanBreakPots), + LOCATION(RC_ZD_NEAR_SHOP_POT_2, logic->CanBreakPots), + LOCATION(RC_ZD_NEAR_SHOP_POT_3, logic->CanBreakPots), + LOCATION(RC_ZD_NEAR_SHOP_POT_4, logic->CanBreakPots), + LOCATION(RC_ZD_NEAR_SHOP_POT_5, logic->CanBreakPots), }, { //Exits Entrance(RR_ZR_BEHIND_WATERFALL, {[]{return true;}}), @@ -158,8 +163,15 @@ void AreaTable_Init_ZorasDomain() { LOCATION(RC_ZF_GS_TREE, logic->IsChild), LOCATION(RC_ZF_GS_ABOVE_THE_LOG, logic->IsChild && logic->HookshotOrBoomerang && logic->AtNight && logic->CanGetNightTimeGS), LOCATION(RC_ZF_GS_HIDDEN_CAVE, logic->CanUse(RG_SILVER_GAUNTLETS) && logic->CanBlastOrSmash && logic->HookshotOrBoomerang && logic->IsAdult && logic->AtNight && logic->CanGetNightTimeGS), + LOCATION(RC_ZF_HIDDEN_CAVE_POT_1, logic->CanUse(RG_SILVER_GAUNTLETS) && logic->IsAdult && logic->CanBlastOrSmash && logic->CanBreakPots), + LOCATION(RC_ZF_HIDDEN_CAVE_POT_2, logic->CanUse(RG_SILVER_GAUNTLETS) && logic->IsAdult && logic->CanBlastOrSmash && logic->CanBreakPots), + LOCATION(RC_ZF_HIDDEN_CAVE_POT_3, logic->CanUse(RG_SILVER_GAUNTLETS) && logic->IsAdult && logic->CanBlastOrSmash && logic->CanBreakPots), LOCATION(RC_ZF_FAIRY_GOSSIP_STONE, true), LOCATION(RC_ZF_JABU_GOSSIP_STONE, true), + LOCATION(RC_ZF_NEAR_JABU_POT_1, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_ZF_NEAR_JABU_POT_2, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_ZF_NEAR_JABU_POT_3, logic->IsChild && logic->CanBreakPots), + LOCATION(RC_ZF_NEAR_JABU_POT_4, logic->IsChild && logic->CanBreakPots), }, { //Exits Entrance(RR_ZD_BEHIND_KING_ZORA, {[]{return true;}}), diff --git a/soh/soh/Enhancements/randomizer/3drando/spoiler_log.cpp b/soh/soh/Enhancements/randomizer/3drando/spoiler_log.cpp index 1fa01cdd7bd..d7fdbe0cda2 100644 --- a/soh/soh/Enhancements/randomizer/3drando/spoiler_log.cpp +++ b/soh/soh/Enhancements/randomizer/3drando/spoiler_log.cpp @@ -123,6 +123,10 @@ void WriteIngameSpoilerLog() { else if (!ctx->GetOption(RSK_SHUFFLE_COWS) && loc->IsCategory(Category::cCow)) { continue; } + // Shuffle Pots + else if (ctx->GetOption(RSK_SHUFFLE_POTS).Is(RO_SHUFFLE_POTS_OFF) && loc->IsCategory(Category::cPot)) { + continue; + } // Merchants else if (ctx->GetOption(RSK_SHUFFLE_MERCHANTS).Is(RO_SHUFFLE_MERCHANTS_OFF) && loc->IsCategory(Category::cMerchant)) { continue; diff --git a/soh/soh/Enhancements/randomizer/3drando/spoiler_log.hpp b/soh/soh/Enhancements/randomizer/3drando/spoiler_log.hpp index 89b9d36bc61..a4bd2f4ba2e 100644 --- a/soh/soh/Enhancements/randomizer/3drando/spoiler_log.hpp +++ b/soh/soh/Enhancements/randomizer/3drando/spoiler_log.hpp @@ -25,6 +25,7 @@ typedef enum { SPOILER_CHK_MASTER_SWORD, SPOILER_CHK_GRAVEDIGGER, SPOILER_CHK_RANDOMIZER_INF, + SPOILER_CHK_POT, } SpoilerCollectionCheckType; // GetLocation groups for checks, used to group the checks by logical location diff --git a/soh/soh/Enhancements/randomizer/ShufflePots.cpp b/soh/soh/Enhancements/randomizer/ShufflePots.cpp new file mode 100644 index 00000000000..15a3f540480 --- /dev/null +++ b/soh/soh/Enhancements/randomizer/ShufflePots.cpp @@ -0,0 +1,121 @@ +#include "ShufflePots.h" +#include "soh_assets.h" +#include "soh/Enhancements/game-interactor/GameInteractor.h" +#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" +#include "soh/OTRGlobals.h" + +extern "C" { +#include "z64.h" +#include "variables.h" +#include "overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h" +#include "overlays/actors/ovl_Door_Shutter/z_door_shutter.h" + +u8 Randomizer_GetSettingValue(RandomizerSettingKey randoSettingKey); +GetItemEntry Randomizer_GetItemFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogId); +PotIdentity Randomizer_IdentifyPot(s32 sceneNum, s32 posX, s32 posZ); +extern PlayState* gPlayState; +} + + +extern "C" void ObjTsubo_RandomizerDraw(Actor* thisx, PlayState* play) { + float potSize = 1.0f; + + OPEN_DISPS(play->state.gfxCtx); + Gfx_SetupDL_25Opa(play->state.gfxCtx); + Matrix_Scale(potSize, potSize, potSize, MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__), + G_MTX_MODELVIEW | G_MTX_LOAD); + + gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gRandoPotDL); + CLOSE_DISPS(play->state.gfxCtx); +} + +uint8_t ObjTsubo_RandomizerHoldsItem(ObjTsubo* potActor, PlayState* play) { + uint8_t isDungeon = + play->sceneNum < SCENE_GANONS_TOWER_COLLAPSE_INTERIOR || + (play->sceneNum > SCENE_TREASURE_BOX_SHOP && play->sceneNum < SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR); + uint8_t potSetting = Randomizer_GetSettingValue(RSK_SHUFFLE_POTS); + + // Don't pull randomized item if pot isn't randomized or is already checked + if (!IS_RANDO || (potSetting == RO_SHUFFLE_POTS_OVERWORLD && isDungeon) || + (potSetting == RO_SHUFFLE_POTS_DUNGEONS && !isDungeon) || + Flags_GetRandomizerInf(potActor->potIdentity.randomizerInf) || + potActor->potIdentity.randomizerCheck == RC_UNKNOWN_CHECK) { + return false; + } else { + return true; + } +} + +void ObjTsubo_RandomizerSpawnCollectible(ObjTsubo* potActor, PlayState* play) { + EnItem00* item00 = (EnItem00*)Item_DropCollectible2(play, &potActor->actor.world.pos, ITEM00_SOH_DUMMY); + item00->randoInf = potActor->potIdentity.randomizerInf; + item00->itemEntry = + OTRGlobals::Instance->gRandomizer->GetItemFromKnownCheck(potActor->potIdentity.randomizerCheck, GI_NONE); + item00->actor.draw = (ActorFunc)EnItem00_DrawRandomizedItem; + item00->actor.velocity.y = 8.0f; + item00->actor.speedXZ = 2.0f; + item00->actor.world.rot.y = Rand_CenteredFloat(65536.0f); +} + +void ObjTsubo_RandomizerInit(void* actorRef) { + Actor* actor = static_cast(actorRef); + + if (actor->id != ACTOR_OBJ_TSUBO) return; + + ObjTsubo* potActor = static_cast(actorRef); + + potActor->potIdentity = + Randomizer_IdentifyPot(gPlayState->sceneNum, (s16)actor->world.pos.x, (s16)actor->world.pos.z); +} + +void PotOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void* optionalArg) { + // Draw custom model for pot to indicate it holding a randomized item. + if (id == VB_POT_DRAW) { + ObjTsubo* potActor = static_cast(optionalArg); + if (ObjTsubo_RandomizerHoldsItem(potActor, gPlayState)) { + potActor->actor.draw = (ActorFunc)ObjTsubo_RandomizerDraw; + *should = false; + } + } + + // Do not spawn vanilla item from pot, instead spawn the ranomized item. + if (id == VB_POT_DROP_ITEM) { + ObjTsubo* potActor = static_cast(optionalArg); + if (ObjTsubo_RandomizerHoldsItem(potActor, gPlayState)) { + ObjTsubo_RandomizerSpawnCollectible(potActor, gPlayState); + *should = false; + } + } + + // Unlock early Ganon's Boss Key doors to allow access to the pots there when pots are shuffled in dungeon + if (id == VB_LOCK_DOOR) { + DoorShutter* doorActor = static_cast(optionalArg); + uint8_t shufflePotSetting = Randomizer_GetSettingValue(RSK_SHUFFLE_POTS); + if (gPlayState->sceneNum == SCENE_GANONS_TOWER && doorActor->dyna.actor.world.pos.y == 800 && + (shufflePotSetting == RO_SHUFFLE_POTS_DUNGEONS || shufflePotSetting == RO_SHUFFLE_POTS_ALL)) { + *should = false; + } + } +} + +void RegisterShufflePots() { + static uint32_t onActorInitHook = 0; + static uint32_t onVanillaBehaviorHook = 0; + + GameInteractor::Instance->RegisterGameHook([](int32_t fileNum) { + + GameInteractor::Instance->UnregisterGameHook(onActorInitHook); + GameInteractor::Instance->UnregisterGameHook(onVanillaBehaviorHook); + + onActorInitHook = 0; + onVanillaBehaviorHook = 0; + + if (!IS_RANDO) return; + if (!Randomizer_GetSettingValue(RSK_SHUFFLE_POTS)) return; + + onActorInitHook = GameInteractor::Instance->RegisterGameHook(ObjTsubo_RandomizerInit); + onVanillaBehaviorHook = GameInteractor::Instance->RegisterGameHook(PotOnVanillaBehaviorHandler); + + }); +} diff --git a/soh/soh/Enhancements/randomizer/ShufflePots.h b/soh/soh/Enhancements/randomizer/ShufflePots.h new file mode 100644 index 00000000000..2379a8b4949 --- /dev/null +++ b/soh/soh/Enhancements/randomizer/ShufflePots.h @@ -0,0 +1,12 @@ +#ifndef SHUFFLEPOTS_H +#define SHUFFLEPOTS_H + +#ifdef __cplusplus +extern "C" { +#endif +void RegisterShufflePots(); +#ifdef __cplusplus +}; +#endif + +#endif //SHUFFLEPOTS_H diff --git a/soh/soh/Enhancements/randomizer/dungeon.cpp b/soh/soh/Enhancements/randomizer/dungeon.cpp index 0f799b03646..b04d15c9cc2 100644 --- a/soh/soh/Enhancements/randomizer/dungeon.cpp +++ b/soh/soh/Enhancements/randomizer/dungeon.cpp @@ -215,6 +215,36 @@ Dungeons::Dungeons() { RC_DODONGOS_CAVERN_GS_ALCOVE_ABOVE_STAIRS, RC_DODONGOS_CAVERN_GS_BACK_ROOM, RC_DODONGOS_CAVERN_GS_SIDE_ROOM_NEAR_LOWER_LIZALFOS, + + // Vanilla Pots + RC_DODONGOS_CAVERN_LIZALFOS_POT_1, + RC_DODONGOS_CAVERN_LIZALFOS_POT_2, + RC_DODONGOS_CAVERN_LIZALFOS_POT_3, + RC_DODONGOS_CAVERN_LIZALFOS_POT_4, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_1, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_2, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_3, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_4, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_5, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_6, + RC_DODONGOS_CAVERN_TORCH_ROOM_POT_1, + RC_DODONGOS_CAVERN_TORCH_ROOM_POT_2, + RC_DODONGOS_CAVERN_TORCH_ROOM_POT_3, + RC_DODONGOS_CAVERN_TORCH_ROOM_POT_4, + RC_DODONGOS_CAVERN_STAIRCASE_POT_1, + RC_DODONGOS_CAVERN_STAIRCASE_POT_2, + RC_DODONGOS_CAVERN_STAIRCASE_POT_3, + RC_DODONGOS_CAVERN_STAIRCASE_POT_4, + RC_DODONGOS_CAVERN_SINGLE_EYE_POT_1, + RC_DODONGOS_CAVERN_SINGLE_EYE_POT_2, + RC_DODONGOS_CAVERN_BLADE_POT_1, + RC_DODONGOS_CAVERN_BLADE_POT_2, + RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_1, + RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_2, + RC_DODONGOS_CAVERN_BACK_ROOM_POT_1, + RC_DODONGOS_CAVERN_BACK_ROOM_POT_2, + RC_DODONGOS_CAVERN_BACK_ROOM_POT_3, + RC_DODONGOS_CAVERN_BACK_ROOM_POT_4, }, { // MQ Locations @@ -233,6 +263,38 @@ Dungeons::Dungeons() { RC_DODONGOS_CAVERN_MQ_GS_LIZALFOS_ROOM, RC_DODONGOS_CAVERN_MQ_GS_LARVAE_ROOM, RC_DODONGOS_CAVERN_MQ_GS_BACK_AREA, + + // MQ Pots + RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1, + RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2, + RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3, + RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4, + RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1, + RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2, + RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3, + RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4, + RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1, + RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2, + RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3, + RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4, + RC_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_1, + RC_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_2, + RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1, + RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2, + RC_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_1, + RC_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_2, + RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1, + RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2, + RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3, + RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4, + RC_DODONGOS_CAVERN_MQ_ARMOS_POT_1, + RC_DODONGOS_CAVERN_MQ_ARMOS_POT_2, + RC_DODONGOS_CAVERN_MQ_ARMOS_POT_3, + RC_DODONGOS_CAVERN_MQ_ARMOS_POT_4, + RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_1, + RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_2, + RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_1, + RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_2, }, {}, { @@ -253,6 +315,19 @@ Dungeons::Dungeons() { RC_JABU_JABUS_BELLY_GS_LOBBY_BASEMENT_UPPER, RC_JABU_JABUS_BELLY_GS_NEAR_BOSS, RC_JABU_JABUS_BELLY_GS_WATER_SWITCH_ROOM, + + // Vanilla Pots + RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1, + RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2, + RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3, + RC_JABU_JABUS_BELLY_BASEMENT_POT_1, + RC_JABU_JABUS_BELLY_BASEMENT_POT_2, + RC_JABU_JABUS_BELLY_BASEMENT_POT_3, + RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1, + RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2, + RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3, + RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4, + RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5, }, { // MQ Locations @@ -272,12 +347,31 @@ Dungeons::Dungeons() { RC_JABU_JABUS_BELLY_MQ_GS_INVISIBLE_ENEMIES_ROOM, RC_JABU_JABUS_BELLY_MQ_GS_BOOMERANG_CHEST_ROOM, RC_JABU_JABUS_BELLY_MQ_GS_NEAR_BOSS, + + // MQ Pots + RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1, + RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2, + RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_1, + RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_2, + RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1, + RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2, + RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1, + RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2, + RC_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1, }, {}, { // Boss Room Locations RC_JABU_JABUS_BELLY_BARINADE_HEART, RC_BARINADE, + + // Boss Room Pots + RC_JABU_JABUS_BELLY_BARINADE_POT_1, + RC_JABU_JABUS_BELLY_BARINADE_POT_2, + RC_JABU_JABUS_BELLY_BARINADE_POT_3, + RC_JABU_JABUS_BELLY_BARINADE_POT_4, + RC_JABU_JABUS_BELLY_BARINADE_POT_5, + RC_JABU_JABUS_BELLY_BARINADE_POT_6, }); dungeonList[FOREST_TEMPLE] = DungeonInfo("Forest Temple", RHT_FOREST_TEMPLE, RG_FOREST_TEMPLE_MAP, RG_FOREST_TEMPLE_COMPASS, @@ -302,6 +396,27 @@ Dungeons::Dungeons() { RC_FOREST_TEMPLE_GS_LEVEL_ISLAND_COURTYARD, RC_FOREST_TEMPLE_GS_LOBBY, RC_FOREST_TEMPLE_GS_BASEMENT, + + // Vanilla Pots + RC_FOREST_TEMPLE_LOBBY_POT_1, + RC_FOREST_TEMPLE_LOBBY_POT_2, + RC_FOREST_TEMPLE_LOBBY_POT_3, + RC_FOREST_TEMPLE_LOBBY_POT_4, + RC_FOREST_TEMPLE_LOBBY_POT_5, + RC_FOREST_TEMPLE_LOBBY_POT_6, + RC_FOREST_TEMPLE_LOWER_STALFOS_POT_1, + RC_FOREST_TEMPLE_LOWER_STALFOS_POT_2, + RC_FOREST_TEMPLE_GREEN_POE_POT_1, + RC_FOREST_TEMPLE_GREEN_POE_POT_2, + RC_FOREST_TEMPLE_UPPER_STALFOS_POT_1, + RC_FOREST_TEMPLE_UPPER_STALFOS_POT_2, + RC_FOREST_TEMPLE_UPPER_STALFOS_POT_3, + RC_FOREST_TEMPLE_UPPER_STALFOS_POT_4, + RC_FOREST_TEMPLE_BLUE_POE_POT_1, + RC_FOREST_TEMPLE_BLUE_POE_POT_2, + RC_FOREST_TEMPLE_BLUE_POE_POT_3, + RC_FOREST_TEMPLE_FROZEN_EYE_POT_1, + RC_FOREST_TEMPLE_FROZEN_EYE_POT_2, }, { // MQ Locations @@ -322,6 +437,29 @@ Dungeons::Dungeons() { RC_FOREST_TEMPLE_MQ_GS_RAISED_ISLAND_COURTYARD, RC_FOREST_TEMPLE_MQ_GS_LEVEL_ISLAND_COURTYARD, RC_FOREST_TEMPLE_MQ_GS_WELL, + + // MQ Pots + RC_FOREST_TEMPLE_MQ_LOBBY_POT_1, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_2, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_3, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_4, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_5, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_6, + RC_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_1, + RC_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_2, + RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1, + RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2, + RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3, + RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4, + RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_1, + RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_2, + RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_3, + RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_1, + RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_2, + RC_FOREST_TEMPLE_MQ_BASEMENT_POT_1, + RC_FOREST_TEMPLE_MQ_BASEMENT_POT_2, + RC_FOREST_TEMPLE_MQ_BASEMENT_POT_3, + RC_FOREST_TEMPLE_MQ_BASEMENT_POT_4, }, {}, { @@ -353,6 +491,23 @@ Dungeons::Dungeons() { RC_FIRE_TEMPLE_GS_BOULDER_MAZE, RC_FIRE_TEMPLE_GS_SCARECROW_TOP, RC_FIRE_TEMPLE_GS_SCARECROW_CLIMB, + + // Vanilla Pots + RC_FIRE_TEMPLE_NEAR_BOSS_POT_1, + RC_FIRE_TEMPLE_NEAR_BOSS_POT_2, + RC_FIRE_TEMPLE_NEAR_BOSS_POT_3, + RC_FIRE_TEMPLE_NEAR_BOSS_POT_4, + RC_FIRE_TEMPLE_BIG_LAVA_POT_1, + RC_FIRE_TEMPLE_BIG_LAVA_POT_2, + RC_FIRE_TEMPLE_BIG_LAVA_POT_3, + RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1, + RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2, + RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3, + RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4, + RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1, + RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2, + RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3, + RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4, }, { // MQ Locations @@ -373,6 +528,36 @@ Dungeons::Dungeons() { RC_FIRE_TEMPLE_MQ_GS_BIG_LAVA_ROOM_OPEN_DOOR, RC_FIRE_TEMPLE_MQ_GS_FIRE_WALL_MAZE_SIDE_ROOM, RC_FIRE_TEMPLE_MQ_GS_SKULL_ON_FIRE, + + // MQ Pots + RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_1, + RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_2, + RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1, + RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2, + RC_FIRE_TEMPLE_MQ_LAVA_POT_1, + RC_FIRE_TEMPLE_MQ_LAVA_POT_2, + RC_FIRE_TEMPLE_MQ_LAVA_POT_3, + RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1, + RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2, + RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1, + RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2, + RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3, + RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1, + RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_1, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_2, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_3, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_4, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_5, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_6, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8, }, {}, { @@ -400,6 +585,31 @@ Dungeons::Dungeons() { RC_WATER_TEMPLE_GS_CENTRAL_PILLAR, RC_WATER_TEMPLE_GS_NEAR_BOSS_KEY_CHEST, RC_WATER_TEMPLE_GS_RIVER, + + // Vanilla Pots + RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_1, + RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_2, + RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_1, + RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_2, + RC_WATER_TEMPLE_TORCH_POT_1, + RC_WATER_TEMPLE_TORCH_POT_2, + RC_WATER_TEMPLE_NEAR_COMPASS_POT_1, + RC_WATER_TEMPLE_NEAR_COMPASS_POT_2, + RC_WATER_TEMPLE_NEAR_COMPASS_POT_3, + RC_WATER_TEMPLE_CENTRAL_BOW_POT_1, + RC_WATER_TEMPLE_CENTRAL_BOW_POT_2, + RC_WATER_TEMPLE_BEHIND_GATE_POT_1, + RC_WATER_TEMPLE_BEHIND_GATE_POT_2, + RC_WATER_TEMPLE_BEHIND_GATE_POT_3, + RC_WATER_TEMPLE_BEHIND_GATE_POT_4, + RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1, + RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2, + RC_WATER_TEMPLE_RIVER_POT_1, + RC_WATER_TEMPLE_RIVER_POT_2, + RC_WATER_TEMPLE_LIKE_LIKE_POT_1, + RC_WATER_TEMPLE_LIKE_LIKE_POT_2, + RC_WATER_TEMPLE_BOSS_KEY_POT_1, + RC_WATER_TEMPLE_BOSS_KEY_POT_2, }, { // MQ Locations @@ -414,6 +624,39 @@ Dungeons::Dungeons() { RC_WATER_TEMPLE_MQ_GS_LIZALFOS_HALLWAY, RC_WATER_TEMPLE_MQ_GS_RIVER, RC_WATER_TEMPLE_MQ_GS_TRIPLE_WALL_TORCH, + + // MQ Pots + RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_1, + RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_2, + RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_3, + RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_4, + RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_5, + RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1, + RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2, + RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3, + RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1, + RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2, + RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_3, + RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_4, + RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_5, + RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1, + RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2, + RC_WATER_TEMPLE_MQ_RIVER_POT_1, + RC_WATER_TEMPLE_MQ_RIVER_POT_2, + RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1, + RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2, + RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1, + RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2, + RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1, + RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2, + RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3, + RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1, + RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2, + RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_1, + RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_2, + RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_3, + RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_4, + RC_WATER_TEMPLE_MQ_BOSS_KEY_POT, }, {}, { @@ -448,6 +691,24 @@ Dungeons::Dungeons() { RC_SPIRIT_TEMPLE_GS_LOBBY, RC_SPIRIT_TEMPLE_GS_SUN_ON_FLOOR_ROOM, RC_SPIRIT_TEMPLE_GS_METAL_FENCE, + + // Vanilla Pots + RC_SPIRIT_TEMPLE_LOBBY_POT_1, + RC_SPIRIT_TEMPLE_LOBBY_POT_2, + RC_SPIRIT_TEMPLE_ANUBIS_POT_1, + RC_SPIRIT_TEMPLE_ANUBIS_POT_2, + RC_SPIRIT_TEMPLE_ANUBIS_POT_3, + RC_SPIRIT_TEMPLE_ANUBIS_POT_4, + RC_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1, + RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1, + RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6, + RC_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1, }, { // MQ Locations @@ -476,6 +737,37 @@ 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, + + // MQ Pots + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4, + RC_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT, + RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1, + RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2, + RC_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT, + RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1, + RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2, + RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3, + RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4, + RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_1, + RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_2, + RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_3, + RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_4, + RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_5, + RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1, + RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2, + RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1, + RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2, + RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1, + RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2, + RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3, + RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4, + RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1, + RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2, + RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1, + RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2, }, { // Shared Locations @@ -514,6 +806,29 @@ Dungeons::Dungeons() { RC_SHADOW_TEMPLE_GS_TRIPLE_GIANT_POT, RC_SHADOW_TEMPLE_GS_LIKE_LIKE_ROOM, RC_SHADOW_TEMPLE_GS_NEAR_SHIP, + + // Vanilla Pots + RC_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1, + RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1, + RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2, + RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3, + RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4, + RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5, + RC_SHADOW_TEMPLE_MAP_CHEST_POT_1, + RC_SHADOW_TEMPLE_MAP_CHEST_POT_2, + RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_1, + RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_2, + RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_3, + RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_4, + RC_SHADOW_TEMPLE_AFTER_WIND_POT_1, + RC_SHADOW_TEMPLE_AFTER_WIND_POT_2, + RC_SHADOW_TEMPLE_SPIKE_WALLS_POT_1, + RC_SHADOW_TEMPLE_FLOORMASTER_POT_1, + RC_SHADOW_TEMPLE_FLOORMASTER_POT_2, + RC_SHADOW_TEMPLE_AFTER_BOAT_POT_1, + RC_SHADOW_TEMPLE_AFTER_BOAT_POT_2, + RC_SHADOW_TEMPLE_AFTER_BOAT_POT_3, + RC_SHADOW_TEMPLE_AFTER_BOAT_POT_4, }, { // MQ Locations @@ -542,6 +857,25 @@ Dungeons::Dungeons() { RC_SHADOW_TEMPLE_MQ_GS_AFTER_WIND, RC_SHADOW_TEMPLE_MQ_GS_AFTER_SHIP, RC_SHADOW_TEMPLE_MQ_GS_NEAR_BOSS, + + // MQ Pots + RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1, + RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2, + RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1, + RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_1, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_2, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_3, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_4, + RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1, + RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2, + RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_1, + RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_2, + RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_3, + RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_4, + RC_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT, + RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1, + RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2, }, {}, { @@ -571,6 +905,27 @@ 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, + + // Vanilla Pots + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_1, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_2, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_3, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_4, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_5, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_6, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_7, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_8, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_9, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_10, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_11, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_12, + RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1, + RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2, + RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3, + RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1, + RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2, + RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1, + RC_BOTTOM_OF_THE_WELL_UNDERWATER_POT, }, { // MQ Locations @@ -582,6 +937,15 @@ Dungeons::Dungeons() { RC_BOTTOM_OF_THE_WELL_MQ_GS_BASEMENT, RC_BOTTOM_OF_THE_WELL_MQ_GS_COFFIN_ROOM, RC_BOTTOM_OF_THE_WELL_MQ_GS_WEST_INNER_ROOM, + + // MQ Pots + RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1, + RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2, + RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3, + RC_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT, + RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_1, + RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_2, + RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_3, }, {}, {}); dungeonList[ICE_CAVERN] = DungeonInfo("Ice Cavern", RHT_ICE_CAVERN, RG_ICE_CAVERN_MAP, RG_ICE_CAVERN_COMPASS, @@ -595,6 +959,16 @@ Dungeons::Dungeons() { RC_ICE_CAVERN_GS_PUSH_BLOCK_ROOM, RC_ICE_CAVERN_GS_SPINNING_SCYTHE_ROOM, RC_ICE_CAVERN_GS_HEART_PIECE_ROOM, + + // Vanilla Pots + RC_ICE_CAVERN_HALL_POT_1, + RC_ICE_CAVERN_HALL_POT_2, + RC_ICE_CAVERN_SPINNING_BLADE_POT_1, + RC_ICE_CAVERN_SPINNING_BLADE_POT_2, + RC_ICE_CAVERN_SPINNING_BLADE_POT_3, + RC_ICE_CAVERN_NEAR_END_POT_1, + RC_ICE_CAVERN_NEAR_END_POT_2, + RC_ICE_CAVERN_FROZEN_POT_1, }, { // MQ Locations @@ -605,6 +979,19 @@ Dungeons::Dungeons() { RC_ICE_CAVERN_MQ_GS_SCARECROW, RC_ICE_CAVERN_MQ_GS_ICE_BLOCK, RC_ICE_CAVERN_MQ_GS_RED_ICE, + + // MQ Pots + RC_ICE_CAVERN_MQ_ENTRANCE_POT, + RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1, + RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2, + RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1, + RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2, + RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3, + RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4, + RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1, + RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2, + RC_ICE_CAVERN_MQ_COMPASS_POT_1, + RC_ICE_CAVERN_MQ_COMPASS_POT_2, }, { // Shared Locations @@ -684,6 +1071,24 @@ Dungeons::Dungeons() { RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT, RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT, RC_GANONS_CASTLE_DEKU_SCRUB_RIGHT, + + // Vanilla Pots + RC_GANONS_CASTLE_FOREST_TRIAL_POT_1, + RC_GANONS_CASTLE_FOREST_TRIAL_POT_2, + RC_GANONS_CASTLE_FIRE_TRIAL_POT_1, + RC_GANONS_CASTLE_FIRE_TRIAL_POT_2, + RC_GANONS_CASTLE_WATER_TRIAL_POT_1, + RC_GANONS_CASTLE_WATER_TRIAL_POT_2, + RC_GANONS_CASTLE_WATER_TRIAL_POT_3, + RC_GANONS_CASTLE_SHADOW_TRIAL_POT_1, + RC_GANONS_CASTLE_SHADOW_TRIAL_POT_2, + RC_GANONS_CASTLE_SHADOW_TRIAL_POT_3, + RC_GANONS_CASTLE_SHADOW_TRIAL_POT_4, + RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_1, + RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_2, + RC_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1, + RC_GANONS_CASTLE_LIGHT_TRIAL_POT_1, + RC_GANONS_CASTLE_LIGHT_TRIAL_POT_2, }, { // MQ Locations @@ -705,11 +1110,45 @@ Dungeons::Dungeons() { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER, RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT, RC_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT, + + // MQ Pots + RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2, + RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2, + RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2, + RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2, + RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2, + RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2, }, { // Shared Locations RC_GANONS_TOWER_BOSS_KEY_CHEST, RC_GANON, + + // Shared Pots + RC_GANONS_CASTLE_GANONS_TOWER_POT_1, + RC_GANONS_CASTLE_GANONS_TOWER_POT_2, + RC_GANONS_CASTLE_GANONS_TOWER_POT_3, + RC_GANONS_CASTLE_GANONS_TOWER_POT_4, + RC_GANONS_CASTLE_GANONS_TOWER_POT_5, + RC_GANONS_CASTLE_GANONS_TOWER_POT_6, + RC_GANONS_CASTLE_GANONS_TOWER_POT_7, + RC_GANONS_CASTLE_GANONS_TOWER_POT_8, + RC_GANONS_CASTLE_GANONS_TOWER_POT_9, + RC_GANONS_CASTLE_GANONS_TOWER_POT_10, + RC_GANONS_CASTLE_GANONS_TOWER_POT_11, + RC_GANONS_CASTLE_GANONS_TOWER_POT_12, + RC_GANONS_CASTLE_GANONS_TOWER_POT_13, + RC_GANONS_CASTLE_GANONS_TOWER_POT_14, + RC_GANONS_CASTLE_GANONS_TOWER_POT_15, + RC_GANONS_CASTLE_GANONS_TOWER_POT_16, + RC_GANONS_CASTLE_GANONS_TOWER_POT_17, + RC_GANONS_CASTLE_GANONS_TOWER_POT_18, }, {}); } diff --git a/soh/soh/Enhancements/randomizer/location_list.cpp b/soh/soh/Enhancements/randomizer/location_list.cpp index dd31dae5c9d..bed7bc2ef70 100644 --- a/soh/soh/Enhancements/randomizer/location_list.cpp +++ b/soh/soh/Enhancements/randomizer/location_list.cpp @@ -1,8 +1,6 @@ #include "static_data.h" #include "z64save.h" -#define TWO_ACTOR_PARAMS(a, b) (abs(a) << 16) | abs(b) - std::array Rando::StaticData::locationTable; std::multimap, RandomizerCheck> Rando::StaticData::CheckFromActorMultimap; @@ -110,6 +108,11 @@ std::vector Rando::StaticData::overworldLocations = { RC_KF_MIDOS_BOTTOM_RIGHT_CHEST, RC_KF_STORMS_GROTTO_CHEST, RC_KF_LINKS_HOUSE_COW, + RC_KF_LINKS_HOUSE_POT, + RC_KF_TWINS_HOUSE_POT_1, + RC_KF_TWINS_HOUSE_POT_2, + RC_KF_BROTHERS_HOUSE_POT_1, + RC_KF_BROTHERS_HOUSE_POT_2, // Shop RC_KF_SHOP_ITEM_1, @@ -153,6 +156,8 @@ std::vector Rando::StaticData::overworldLocations = { RC_HF_TEKTITE_GROTTO_FREESTANDING_POH, RC_HF_DEKU_SCRUB_GROTTO, RC_HF_COW_GROTTO_COW, + RC_HF_COW_GROTTO_POT_1, + RC_HF_COW_GROTTO_POT_2, // Lake Hylia RC_LH_CHILD_FISHING, @@ -185,10 +190,30 @@ std::vector Rando::StaticData::overworldLocations = { RC_GF_SOUTH_F1_CARPENTER, RC_GF_SOUTH_F2_CARPENTER, RC_GF_GERUDO_MEMBERSHIP_CARD, + RC_GF_BREAK_ROOM_POT_1, + RC_GF_BREAK_ROOM_POT_2, + RC_GF_KITCHEN_POT_1, + RC_GF_KITCHEN_POT_2, + RC_GF_NORTH_F1_CARPENTER_POT_1, + RC_GF_NORTH_F1_CARPENTER_POT_2, + RC_GF_NORTH_F1_CARPENTER_POT_3, + RC_GF_NORTH_F2_CARPENTER_POT_1, + RC_GF_NORTH_F2_CARPENTER_POT_2, + RC_GF_SOUTH_F1_CARPENTER_POT_1, + RC_GF_SOUTH_F1_CARPENTER_POT_2, + RC_GF_SOUTH_F1_CARPENTER_POT_3, + RC_GF_SOUTH_F1_CARPENTER_CELL_POT_1, + RC_GF_SOUTH_F1_CARPENTER_CELL_POT_2, + RC_GF_SOUTH_F1_CARPENTER_CELL_POT_3, + RC_GF_SOUTH_F1_CARPENTER_CELL_POT_4, // Haunted Wasteland RC_WASTELAND_CHEST, RC_WASTELAND_BOMBCHU_SALESMAN, + RC_WASTELAND_NEAR_GS_POT_1, + RC_WASTELAND_NEAR_GS_POT_2, + RC_WASTELAND_NEAR_GS_POT_3, + RC_WASTELAND_NEAR_GS_POT_4, // Desert Colossus RC_SHEIK_AT_COLOSSUS, @@ -209,6 +234,64 @@ std::vector Rando::StaticData::overworldLocations = { RC_MARKET_TREASURE_CHEST_GAME_ITEM_3, RC_MARKET_TREASURE_CHEST_GAME_ITEM_4, RC_MARKET_TREASURE_CHEST_GAME_ITEM_5, + RC_MK_GUARD_HOUSE_CHILD_POT_1, + RC_MK_GUARD_HOUSE_CHILD_POT_2, + RC_MK_GUARD_HOUSE_CHILD_POT_3, + RC_MK_GUARD_HOUSE_CHILD_POT_4, + RC_MK_GUARD_HOUSE_CHILD_POT_5, + RC_MK_GUARD_HOUSE_CHILD_POT_6, + RC_MK_GUARD_HOUSE_CHILD_POT_7, + RC_MK_GUARD_HOUSE_CHILD_POT_8, + RC_MK_GUARD_HOUSE_CHILD_POT_9, + RC_MK_GUARD_HOUSE_CHILD_POT_10, + RC_MK_GUARD_HOUSE_CHILD_POT_11, + RC_MK_GUARD_HOUSE_CHILD_POT_12, + RC_MK_GUARD_HOUSE_CHILD_POT_13, + RC_MK_GUARD_HOUSE_CHILD_POT_14, + RC_MK_GUARD_HOUSE_CHILD_POT_15, + RC_MK_GUARD_HOUSE_CHILD_POT_16, + RC_MK_GUARD_HOUSE_CHILD_POT_17, + RC_MK_GUARD_HOUSE_CHILD_POT_18, + RC_MK_GUARD_HOUSE_CHILD_POT_19, + RC_MK_GUARD_HOUSE_CHILD_POT_20, + RC_MK_GUARD_HOUSE_CHILD_POT_21, + RC_MK_GUARD_HOUSE_CHILD_POT_22, + RC_MK_GUARD_HOUSE_CHILD_POT_23, + RC_MK_GUARD_HOUSE_CHILD_POT_24, + RC_MK_GUARD_HOUSE_CHILD_POT_25, + RC_MK_GUARD_HOUSE_CHILD_POT_26, + RC_MK_GUARD_HOUSE_CHILD_POT_27, + RC_MK_GUARD_HOUSE_CHILD_POT_28, + RC_MK_GUARD_HOUSE_CHILD_POT_29, + RC_MK_GUARD_HOUSE_CHILD_POT_30, + RC_MK_GUARD_HOUSE_CHILD_POT_31, + RC_MK_GUARD_HOUSE_CHILD_POT_32, + RC_MK_GUARD_HOUSE_CHILD_POT_33, + RC_MK_GUARD_HOUSE_CHILD_POT_34, + RC_MK_GUARD_HOUSE_CHILD_POT_35, + RC_MK_GUARD_HOUSE_CHILD_POT_36, + RC_MK_GUARD_HOUSE_CHILD_POT_37, + RC_MK_GUARD_HOUSE_CHILD_POT_38, + RC_MK_GUARD_HOUSE_CHILD_POT_39, + RC_MK_GUARD_HOUSE_CHILD_POT_40, + RC_MK_GUARD_HOUSE_CHILD_POT_41, + RC_MK_GUARD_HOUSE_CHILD_POT_42, + RC_MK_GUARD_HOUSE_CHILD_POT_43, + RC_MK_GUARD_HOUSE_CHILD_POT_44, + RC_MK_GUARD_HOUSE_ADULT_POT_1, + RC_MK_GUARD_HOUSE_ADULT_POT_2, + RC_MK_GUARD_HOUSE_ADULT_POT_3, + RC_MK_GUARD_HOUSE_ADULT_POT_4, + RC_MK_GUARD_HOUSE_ADULT_POT_5, + RC_MK_GUARD_HOUSE_ADULT_POT_6, + RC_MK_GUARD_HOUSE_ADULT_POT_7, + RC_MK_GUARD_HOUSE_ADULT_POT_8, + RC_MK_GUARD_HOUSE_ADULT_POT_9, + RC_MK_GUARD_HOUSE_ADULT_POT_10, + RC_MK_GUARD_HOUSE_ADULT_POT_11, + RC_MK_BACK_ALLEY_HOUSE_POT_1, + RC_MK_BACK_ALLEY_HOUSE_POT_2, + RC_MK_BACK_ALLEY_HOUSE_POT_3, RC_MARKET_TREASURE_CHEST_GAME_KEY_1, RC_MARKET_TREASURE_CHEST_GAME_KEY_2, RC_MARKET_TREASURE_CHEST_GAME_KEY_3, @@ -247,6 +330,10 @@ std::vector Rando::StaticData::overworldLocations = { RC_SONG_FROM_IMPA, RC_HC_GREAT_FAIRY_REWARD, RC_OGC_GREAT_FAIRY_REWARD, + RC_HC_STORMS_GROTTO_POT_1, + RC_HC_STORMS_GROTTO_POT_2, + RC_HC_STORMS_GROTTO_POT_3, + RC_HC_STORMS_GROTTO_POT_4, // Temple of Time RC_TOT_MASTER_SWORD, @@ -275,6 +362,17 @@ std::vector Rando::StaticData::overworldLocations = { RC_KAK_WINDMILL_FREESTANDING_POH, RC_SONG_FROM_WINDMILL, RC_KAK_IMPAS_HOUSE_COW, + RC_KAK_NEAR_POTION_SHOP_POT_1, + RC_KAK_NEAR_POTION_SHOP_POT_2, + RC_KAK_NEAR_POTION_SHOP_POT_3, + RC_KAK_NEAR_IMPAS_HOUSE_POT_1, + RC_KAK_NEAR_IMPAS_HOUSE_POT_2, + RC_KAK_NEAR_IMPAS_HOUSE_POT_3, + RC_KAK_NEAR_GUARDS_HOUSE_POT_1, + RC_KAK_NEAR_GUARDS_HOUSE_POT_2, + RC_KAK_NEAR_GUARDS_HOUSE_POT_3, + RC_KAK_NEAR_MEDICINE_SHOP_POT_1, + RC_KAK_NEAR_MEDICINE_SHOP_POT_2, // Kakariko Shops RC_KAK_POTION_SHOP_ITEM_1, @@ -303,6 +401,12 @@ std::vector Rando::StaticData::overworldLocations = { RC_GRAVEYARD_FREESTANDING_POH, RC_GRAVEYARD_DAMPE_RACE_FREESTANDING_POH, RC_GRAVEYARD_DAMPE_GRAVEDIGGING_TOUR, + RC_GY_DAMPES_GRAVE_POT_1, + RC_GY_DAMPES_GRAVE_POT_2, + RC_GY_DAMPES_GRAVE_POT_3, + RC_GY_DAMPES_GRAVE_POT_4, + RC_GY_DAMPES_GRAVE_POT_5, + RC_GY_DAMPES_GRAVE_POT_6, // Death Mountain Trail RC_DMT_CHEST, @@ -326,6 +430,15 @@ std::vector Rando::StaticData::overworldLocations = { RC_GC_DEKU_SCRUB_GROTTO_RIGHT, RC_GC_DEKU_SCRUB_GROTTO_CENTER, RC_GC_MEDIGORON, + RC_GC_LOWER_STAIRCASE_POT_1, + RC_GC_LOWER_STAIRCASE_POT_2, + RC_GC_UPPER_STAIRCASE_POT_1, + RC_GC_UPPER_STAIRCASE_POT_2, + RC_GC_UPPER_STAIRCASE_POT_3, + RC_GC_MEDIGORON_POT_1, + RC_GC_DARUNIA_POT_1, + RC_GC_DARUNIA_POT_2, + RC_GC_DARUNIA_POT_3, // Goron City Shop RC_GC_SHOP_ITEM_1, @@ -347,6 +460,10 @@ std::vector Rando::StaticData::overworldLocations = { RC_DMC_DEKU_SCRUB_GROTTO_LEFT, RC_DMC_DEKU_SCRUB_GROTTO_RIGHT, RC_DMC_DEKU_SCRUB_GROTTO_CENTER, + RC_DMC_NEAR_GC_POT_1, + RC_DMC_NEAR_GC_POT_2, + RC_DMC_NEAR_GC_POT_3, + RC_DMC_NEAR_GC_POT_4, // Zoras River RC_ZR_OPEN_GROTTO_CHEST, @@ -368,6 +485,11 @@ std::vector Rando::StaticData::overworldLocations = { RC_ZD_DIVING_MINIGAME, RC_ZD_KING_ZORA_THAWED, RC_ZD_TRADE_PRESCRIPTION, + RC_ZD_NEAR_SHOP_POT_1, + RC_ZD_NEAR_SHOP_POT_2, + RC_ZD_NEAR_SHOP_POT_3, + RC_ZD_NEAR_SHOP_POT_4, + RC_ZD_NEAR_SHOP_POT_5, // Zora's Domain Shop RC_ZD_SHOP_ITEM_1, @@ -383,6 +505,13 @@ std::vector Rando::StaticData::overworldLocations = { RC_ZF_ICEBERC_FREESTANDING_POH, RC_ZF_BOTTOM_FREESTANDING_POH, RC_ZF_GREAT_FAIRY_REWARD, + RC_ZF_HIDDEN_CAVE_POT_1, + RC_ZF_HIDDEN_CAVE_POT_2, + RC_ZF_HIDDEN_CAVE_POT_3, + RC_ZF_NEAR_JABU_POT_1, + RC_ZF_NEAR_JABU_POT_2, + RC_ZF_NEAR_JABU_POT_3, + RC_ZF_NEAR_JABU_POT_4, // Lon Lon Ranch RC_SONG_FROM_MALON, @@ -395,6 +524,16 @@ std::vector Rando::StaticData::overworldLocations = { RC_LLR_STABLES_RIGHT_COW, RC_LLR_TOWER_LEFT_COW, RC_LLR_TOWER_RIGHT_COW, + RC_LLR_FRONT_POT_1, + RC_LLR_FRONT_POT_2, + RC_LLR_FRONT_POT_3, + RC_LLR_FRONT_POT_4, + RC_LLR_RAIN_SHED_POT_1, + RC_LLR_RAIN_SHED_POT_2, + RC_LLR_RAIN_SHED_POT_3, + RC_LLR_TALONS_HOUSE_POT_1, + RC_LLR_TALONS_HOUSE_POT_2, + RC_LLR_TALONS_HOUSE_POT_3, /*------------------------------- --- GOLD SKULLTULA TOKENS --- @@ -1378,6 +1517,552 @@ void Rando::StaticData::InitLocationTable() { // locationTable[RC_GV_COW] = Location::Base(RC_GV_COW, RCQUEST_BOTH, RCTYPE_COW, RCAREA_GERUDO_VALLEY, ACTOR_EN_COW, SCENE_GERUDO_VALLEY, 0x00, 0x15, "Cow", RHT_GV_COW, RG_MILK, { Category::cCow }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_COWS_MILKED_GV_COW), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); locationTable[RC_JABU_JABUS_BELLY_MQ_COW] = Location::Base(RC_JABU_JABUS_BELLY_MQ_COW, RCQUEST_MQ, RCTYPE_COW, RCAREA_JABU_JABUS_BELLY, ACTOR_EN_COW, SCENE_JABU_JABU, 0x00, 0x15, "MQ Cow", RHT_JABU_JABUS_BELLY_MQ_COW, RG_MILK, { Category::cCow }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_COWS_MILKED_JABU_JABUS_BELLY_MQ_COW), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + // Overworld Pots + // Pots Randomizer Check Randomizer Check Quest Type Area Actor ID Scene ID Params Flags Short Name Spoiler Name Hint Text Key Vanilla Item Categories Spoiler Collection Check Collection Check Group + locationTable[RC_KF_LINKS_HOUSE_POT] = Location::Base(RC_KF_LINKS_HOUSE_POT, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KOKIRI_FOREST, ACTOR_OBJ_TSUBO, SCENE_LINKS_HOUSE, TWO_ACTOR_PARAMS(-118, 51), 0x4103, "Links House Pot", "KF Links House Pot", RHT_POT_KOKIRI_FOREST, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_LINKS_HOUSE_POT), SpoilerCollectionCheckGroup::GROUP_KOKIRI_FOREST); + locationTable[RC_KF_TWINS_HOUSE_POT_1] = Location::Base(RC_KF_TWINS_HOUSE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KOKIRI_FOREST, ACTOR_OBJ_TSUBO, SCENE_TWINS_HOUSE, TWO_ACTOR_PARAMS(33, -55), 0x4300, "Twins House Pot 1", "KF Twins House Pot 1", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_TWINS_HOUSE_POT_1), SpoilerCollectionCheckGroup::GROUP_KOKIRI_FOREST); + locationTable[RC_KF_TWINS_HOUSE_POT_2] = Location::Base(RC_KF_TWINS_HOUSE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KOKIRI_FOREST, ACTOR_OBJ_TSUBO, SCENE_TWINS_HOUSE, TWO_ACTOR_PARAMS(35, 57), 0x4501, "Twins House Pot 2", "KF Twins House Pot 2", RHT_POT_KOKIRI_FOREST, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_TWINS_HOUSE_POT_2), SpoilerCollectionCheckGroup::GROUP_KOKIRI_FOREST); + locationTable[RC_KF_BROTHERS_HOUSE_POT_1] = Location::Base(RC_KF_BROTHERS_HOUSE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KOKIRI_FOREST, ACTOR_OBJ_TSUBO, SCENE_KNOW_IT_ALL_BROS_HOUSE, TWO_ACTOR_PARAMS(-134, -29), 0x4100, "Brothers House Pot 1", "KF Brothers House Pot 1", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_BROTHERS_HOUSE_POT_1), SpoilerCollectionCheckGroup::GROUP_KOKIRI_FOREST); + locationTable[RC_KF_BROTHERS_HOUSE_POT_2] = Location::Base(RC_KF_BROTHERS_HOUSE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KOKIRI_FOREST, ACTOR_OBJ_TSUBO, SCENE_KNOW_IT_ALL_BROS_HOUSE, TWO_ACTOR_PARAMS(-68, 114), 0x4300, "Brothers House Pot 2", "KF Brothers House Pot 2", RHT_POT_KOKIRI_FOREST, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KF_BROTHERS_HOUSE_POT_2), SpoilerCollectionCheckGroup::GROUP_KOKIRI_FOREST); + locationTable[RC_GF_BREAK_ROOM_POT_1] = Location::Base(RC_GF_BREAK_ROOM_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1438, -3629), 0x5409, "Break Room Pot 1", "GF Break Room Pot 1", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_BREAK_ROOM_POT_1), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_BREAK_ROOM_POT_2] = Location::Base(RC_GF_BREAK_ROOM_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1403, -3679), 0x560e, "Break Room Pot 2", "GF Break Room Pot 2", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_BREAK_ROOM_POT_2), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_KITCHEN_POT_1] = Location::Base(RC_GF_KITCHEN_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1908, -789), 0x4609, "Kitchen Pot 1", "GF Kitchen Pot 1", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_KITCHEN_POT_1), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_KITCHEN_POT_2] = Location::Base(RC_GF_KITCHEN_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(1951, -850), 0x4803, "Kitchen Pot 2", "GF Kitchen Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_KITCHEN_POT_2), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_NORTH_F1_CARPENTER_POT_1] = Location::Base(RC_GF_NORTH_F1_CARPENTER_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-475, -2622), 0x4003, "North F1 Carpenter Pot 1", "GF North F1 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F1_CARPENTER_POT_1), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_NORTH_F1_CARPENTER_POT_2] = Location::Base(RC_GF_NORTH_F1_CARPENTER_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-512, -2621), 0x4402, "North F1 Carpenter Pot 2", "GF North F1 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F1_CARPENTER_POT_2), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_NORTH_F1_CARPENTER_POT_3] = Location::Base(RC_GF_NORTH_F1_CARPENTER_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(-511, -2582), 0x4209, "North F1 Carpenter Pot 3", "GF North F1 Carpenter Pot 3", RHT_POT_GERUDO_FORTRESS, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F1_CARPENTER_POT_3), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_NORTH_F2_CARPENTER_POT_1] = Location::Base(RC_GF_NORTH_F2_CARPENTER_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(67, -1975), 0x4a01, "North F2 Carpenter Pot 1", "GF North F2 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F2_CARPENTER_POT_1), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_NORTH_F2_CARPENTER_POT_2] = Location::Base(RC_GF_NORTH_F2_CARPENTER_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(39, -1943), 0x4c03, "North F2 Carpenter Pot 2", "GF North F2 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_NORTH_F2_CARPENTER_POT_2), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_SOUTH_F1_CARPENTER_POT_1] = Location::Base(RC_GF_SOUTH_F1_CARPENTER_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(691, 48), 0x5001, "South F1 Carpenter Pot 1", "GF South F1 Carpenter Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_POT_1), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_SOUTH_F1_CARPENTER_POT_2] = Location::Base(RC_GF_SOUTH_F1_CARPENTER_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(691, 16), 0x5202, "South F1 Carpenter Pot 2", "GF South F1 Carpenter Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_POT_2), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_SOUTH_F1_CARPENTER_POT_3] = Location::Base(RC_GF_SOUTH_F1_CARPENTER_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(661, 16), 0x4e03, "South F1 Carpenter Pot 3", "GF South F1 Carpenter Pot 3", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_POT_3), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_SOUTH_F1_CARPENTER_CELL_POT_1] = Location::Base(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(26, 524), 0x5c03, "South F1 Carpenter Cell Pot 1", "GF South F1 Carpenter Cell Pot 1", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_1), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_SOUTH_F1_CARPENTER_CELL_POT_2] = Location::Base(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(61, 549), 0x5e03, "South F1 Carpenter Cell Pot 2", "GF South F1 Carpenter Cell Pot 2", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_2), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_SOUTH_F1_CARPENTER_CELL_POT_3] = Location::Base(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(215, 549), 0x5a03, "South F1 Carpenter Cell Pot 3", "GF South F1 Carpenter Cell Pot 3", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_3), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_GF_SOUTH_F1_CARPENTER_CELL_POT_4] = Location::Base(RC_GF_SOUTH_F1_CARPENTER_CELL_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GERUDO_FORTRESS, ACTOR_OBJ_TSUBO, SCENE_THIEVES_HIDEOUT, TWO_ACTOR_PARAMS(254, 529), 0x5803, "South F1 Carpenter Cell Pot 4", "GF South F1 Carpenter Cell Pot 4", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_4), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_WASTELAND_NEAR_GS_POT_1] = Location::Base(RC_WASTELAND_NEAR_GS_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_WASTELAND, ACTOR_OBJ_TSUBO, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(488, -2424), 0x470f, "Near GS Pot 1", "Wasteland Near GS Pot 1", RHT_POT_GERUDO_FORTRESS, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_1), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_WASTELAND_NEAR_GS_POT_2] = Location::Base(RC_WASTELAND_NEAR_GS_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_WASTELAND, ACTOR_OBJ_TSUBO, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(485, -2463), 0x4512, "Near GS Pot 2", "Wasteland Near GS Pot 2", RHT_POT_GERUDO_FORTRESS, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_2), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_WASTELAND_NEAR_GS_POT_3] = Location::Base(RC_WASTELAND_NEAR_GS_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_WASTELAND, ACTOR_OBJ_TSUBO, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(806, -2426), 0x430c, "Near GS Pot 3", "Wasteland Near GS Pot 3", RHT_POT_GERUDO_FORTRESS, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_3), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_WASTELAND_NEAR_GS_POT_4] = Location::Base(RC_WASTELAND_NEAR_GS_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_WASTELAND, ACTOR_OBJ_TSUBO, SCENE_HAUNTED_WASTELAND, TWO_ACTOR_PARAMS(801, -2460), 0x4103, "Near GS Pot 4", "Wasteland Near GS Pot 4", RHT_POT_GERUDO_FORTRESS, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WASTELAND_NEAR_GS_POT_4), SpoilerCollectionCheckGroup::GROUP_GERUDO_VALLEY); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_1] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(-60, 27), 0x4100, "Guard House Child Pot 1", "MK Guard House Child Pot 1", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_1), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_2] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(-89, 28), 0x5700, "Guard House Child Pot 2", "MK Guard House Child Pot 2", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_2), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_3] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(-110, 6), 0x4700, "Guard House Child Pot 3", "MK Guard House Child Pot 3", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_3), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_4] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(-58, -7), 0x4b00, "Guard House Child Pot 4", "MK Guard House Child Pot 4", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_4), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_5] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_5, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(-80, -7), 0x7700, "Guard House Child Pot 5", "MK Guard House Child Pot 5", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_5), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_6] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_6, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(-65, -45), 0x7700, "Guard House Child Pot 6", "MK Guard House Child Pot 6", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_6), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_7] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_7, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(-85, -41), 0x5d00, "Guard House Child Pot 7", "MK Guard House Child Pot 7", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_7), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_8] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_8, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(-107, -45), 0x4300, "Guard House Child Pot 8", "MK Guard House Child Pot 8", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_8), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_9] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_9, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(-66, -79), 0x5b00, "Guard House Child Pot 9", "MK Guard House Child Pot 9", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_9), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_10] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_10, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(-88, -84), 0x4500, "Guard House Child Pot 10", "MK Guard House Child Pot 10", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_10), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_11] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_11, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(70, 215), 0x5701, "Guard House Child Pot 11", "MK Guard House Child Pot 11", RHT_POT_MARKET, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_11), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_12] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_12, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(68, 148), 0x6303, "Guard House Child Pot 12", "MK Guard House Child Pot 12", RHT_POT_MARKET, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_12), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_13] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_13, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(73, 117), 0x6900, "Guard House Child Pot 13", "MK Guard House Child Pot 13", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_13), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_14] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_14, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(40, 123), 0x6100, "Guard House Child Pot 14", "MK Guard House Child Pot 14", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_14), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_15] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_15, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(43, 89), 0x6700, "Guard House Child Pot 15", "MK Guard House Child Pot 15", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_15), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_16] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_16, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(68, 81), 0x4300, "Guard House Child Pot 16", "MK Guard House Child Pot 16", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_16), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_17] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_17, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(21, 73), 0x6500, "Guard House Child Pot 17", "MK Guard House Child Pot 17", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_17), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_18] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_18, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(64, 45), 0x6500, "Guard House Child Pot 18", "MK Guard House Child Pot 18", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_18), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_19] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_19, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(84, 31), 0x6f00, "Guard House Child Pot 19", "MK Guard House Child Pot 19", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_19), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_20] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_20, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(42, 26), 0x6d00, "Guard House Child Pot 20", "MK Guard House Child Pot 20", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_20), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_21] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_21, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(20, 34), 0x5100, "Guard House Child Pot 21", "MK Guard House Child Pot 21", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_21), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_22] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_22, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(89, -2), 0x6b00, "Guard House Child Pot 22", "MK Guard House Child Pot 22", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_22), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_23] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_23, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(70, -12), 0x6701, "Guard House Child Pot 23", "MK Guard House Child Pot 23", RHT_POT_MARKET, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_23), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_24] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_24, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(42, -5), 0x4f00, "Guard House Child Pot 24", "MK Guard House Child Pot 24", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_24), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_25] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_25, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(16, -6), 0x6100, "Guard House Child Pot 25", "MK Guard House Child Pot 25", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_25), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_26] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_26, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(68, -44), 0x6300, "Guard House Child Pot 26", "MK Guard House Child Pot 26", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_26), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_27] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_27, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(37, -40), 0x5101, "Guard House Child Pot 27", "MK Guard House Child Pot 27", RHT_POT_MARKET, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_27), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_28] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_28, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(70, -80), 0x4100, "Guard House Child Pot 28", "MK Guard House Child Pot 28", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_28), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_29] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_29, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(50, -74), 0x5900, "Guard House Child Pot 29", "MK Guard House Child Pot 29", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_29), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_30] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_30, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(28, -79), 0x5300, "Guard House Child Pot 30", "MK Guard House Child Pot 30", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_30), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_31] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_31, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(39, -111), 0x5300, "Guard House Child Pot 31", "MK Guard House Child Pot 31", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_31), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_32] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_32, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(169, 216), 0x4700, "Guard House Child Pot 32", "MK Guard House Child Pot 32", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_32), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_33] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_33, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(168, 166), 0x5d03, "Guard House Child Pot 33", "MK Guard House Child Pot 33", RHT_POT_MARKET, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_33), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_34] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_34, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(170, 120), 0x4500, "Guard House Child Pot 34", "MK Guard House Child Pot 34", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_34), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_35] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_35, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(177, 85), 0x6d1c, "Guard House Child Pot 35", "MK Guard House Child Pot 35", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_35), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_36] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_36, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(155, 39), 0x4b00, "Guard House Child Pot 36", "MK Guard House Child Pot 36", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_36), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_37] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_37, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(184, 13), 0x6f00, "Guard House Child Pot 37", "MK Guard House Child Pot 37", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_37), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_38] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_38, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(156, -1), 0x5b01, "Guard House Child Pot 38", "MK Guard House Child Pot 38", RHT_POT_MARKET, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_38), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_39] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_39, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(181, -33), 0x6d00, "Guard House Child Pot 39", "MK Guard House Child Pot 39", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_39), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_40] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_40, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(156, -45), 0x4900, "Guard House Child Pot 40", "MK Guard House Child Pot 40", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_40), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_41] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_41, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(172, -82), 0x6900, "Guard House Child Pot 41", "MK Guard House Child Pot 41", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_41), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_42] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_42, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(170, -120), 0x4f00, "Guard House Child Pot 42", "MK Guard House Child Pot 42", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_42), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_43] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_43, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(170, -166), 0x5900, "Guard House Child Pot 43", "MK Guard House Child Pot 43", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_43), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_CHILD_POT_44] = Location::Base(RC_MK_GUARD_HOUSE_CHILD_POT_44, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(170, -216), 0x4901, "Guard House Child Pot 44", "MK Guard House Child Pot 44", RHT_POT_MARKET, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_CHILD_POT_44), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_1] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(61, 204), 0x4500, "Guard House Adult Pot 1", "MK Guard House Adult Pot 1", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_1), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_2] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(71, 132), 0x433f, "Guard House Adult Pot 2", "MK Guard House Adult Pot 2", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_2), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_3] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(74, 23), 0x4d00, "Guard House Adult Pot 3", "MK Guard House Adult Pot 3", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_3), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_4] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(40, 4), 0x533f, "Guard House Adult Pot 4", "MK Guard House Adult Pot 4", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_4), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_5] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_5, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(71, -22), 0x5500, "Guard House Adult Pot 5", "MK Guard House Adult Pot 5", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_5), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_6] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_6, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(44, -151), 0x5103, "Guard House Adult Pot 6", "MK Guard House Adult Pot 6", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_6), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_7] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_7, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(79, -182), 0x4100, "Guard House Adult Pot 7", "MK Guard House Adult Pot 7", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_7), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_8] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_8, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(44, -198), 0x4f3f, "Guard House Adult Pot 8", "MK Guard House Adult Pot 8", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_8), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_9] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_9, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(168, 210), 0x4b02, "Guard House Adult Pot 9", "MK Guard House Adult Pot 9", RHT_POT_MARKET, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_9), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_10] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_10, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(167, -122), 0x493f, "Guard House Adult Pot 10", "MK Guard House Adult Pot 10", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_10), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_GUARD_HOUSE_ADULT_POT_11] = Location::Base(RC_MK_GUARD_HOUSE_ADULT_POT_11, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_MARKET_GUARD_HOUSE, TWO_ACTOR_PARAMS(167, -210), 0x4703, "Guard House Adult Pot 11", "MK Guard House Adult Pot 11", RHT_POT_MARKET, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_GUARD_HOUSE_ADULT_POT_11), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_BACK_ALLEY_HOUSE_POT_1] = Location::Base(RC_MK_BACK_ALLEY_HOUSE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_BACK_ALLEY_HOUSE, TWO_ACTOR_PARAMS(100, 45), 0x4303, "Back Alley House Pot 1", "MK Back Alley House Pot 1", RHT_POT_MARKET, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_BACK_ALLEY_HOUSE_POT_1), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_BACK_ALLEY_HOUSE_POT_2] = Location::Base(RC_MK_BACK_ALLEY_HOUSE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_BACK_ALLEY_HOUSE, TWO_ACTOR_PARAMS(12, -180), 0x470f, "Back Alley House Pot 2", "MK Back Alley House Pot 2", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_BACK_ALLEY_HOUSE_POT_2), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_MK_BACK_ALLEY_HOUSE_POT_3] = Location::Base(RC_MK_BACK_ALLEY_HOUSE_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_MARKET, ACTOR_OBJ_TSUBO, SCENE_BACK_ALLEY_HOUSE, TWO_ACTOR_PARAMS(-54, -180), 0x4503, "Back Alley House Pot 3", "MK Back Alley House Pot 3", RHT_POT_MARKET, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_MK_BACK_ALLEY_HOUSE_POT_3), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_KAK_NEAR_POTION_SHOP_POT_1] = Location::Base(RC_KAK_NEAR_POTION_SHOP_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(222, -377), 0x4103, "Near Potion Shop Pot 1", "Kak Near Potion Shop Pot 1", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_POTION_SHOP_POT_1), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_KAK_NEAR_POTION_SHOP_POT_2] = Location::Base(RC_KAK_NEAR_POTION_SHOP_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(255, -366), 0x4303, "Near Potion Shop Pot 2", "Kak Near Potion Shop Pot 2", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_POTION_SHOP_POT_2), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_KAK_NEAR_POTION_SHOP_POT_3] = Location::Base(RC_KAK_NEAR_POTION_SHOP_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(284, -356), 0x4503, "Near Potion Shop Pot 3", "Kak Near Potion Shop Pot 3", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_POTION_SHOP_POT_3), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_KAK_NEAR_IMPAS_HOUSE_POT_1] = Location::Base(RC_KAK_NEAR_IMPAS_HOUSE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-384, 1568), 0x4703, "Near Impas House Pot 1", "Kak Near Impas House Pot 1", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_1), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_KAK_NEAR_IMPAS_HOUSE_POT_2] = Location::Base(RC_KAK_NEAR_IMPAS_HOUSE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-384, 1539), 0x4903, "Near Impas House Pot 2", "Kak Near Impas House Pot 2", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_2), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_KAK_NEAR_IMPAS_HOUSE_POT_3] = Location::Base(RC_KAK_NEAR_IMPAS_HOUSE_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-384, 1510), 0x4b03, "Near Impas House Pot 3", "Kak Near Impas House Pot 3", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_3), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_KAK_NEAR_GUARDS_HOUSE_POT_1] = Location::Base(RC_KAK_NEAR_GUARDS_HOUSE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-392, -870), 0x5103, "Near Guards House Pot 1", "Kak Near Guards House Pot 1", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_1), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_KAK_NEAR_GUARDS_HOUSE_POT_2] = Location::Base(RC_KAK_NEAR_GUARDS_HOUSE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-422, -883), 0x4f03, "Near Guards House Pot 2", "Kak Near Guards House Pot 2", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_2), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_KAK_NEAR_GUARDS_HOUSE_POT_3] = Location::Base(RC_KAK_NEAR_GUARDS_HOUSE_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(-450, -895), 0x4d03, "Near Guards House Pot 3", "Kak Near Guards House Pot 3", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_3), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_KAK_NEAR_MEDICINE_SHOP_POT_1] = Location::Base(RC_KAK_NEAR_MEDICINE_SHOP_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(781, 89), 0x5303, "Near Medicine Shop Pot 1", "Kak Near Medicine Shop Pot 1", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_MEDICINE_SHOP_POT_1), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_KAK_NEAR_MEDICINE_SHOP_POT_2] = Location::Base(RC_KAK_NEAR_MEDICINE_SHOP_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_KAKARIKO_VILLAGE, ACTOR_OBJ_TSUBO, SCENE_KAKARIKO_VILLAGE, TWO_ACTOR_PARAMS(815, 89), 0x5503, "Near Medicine Shop Pot 2", "Kak Near Medicine Shop Pot 2", RHT_POT_KAKARIKO, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_KAK_NEAR_MEDICINE_SHOP_POT_2), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_GY_DAMPES_GRAVE_POT_1] = Location::Base(RC_GY_DAMPES_GRAVE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GRAVEYARD, ACTOR_OBJ_TSUBO, SCENE_WINDMILL_AND_DAMPES_GRAVE, TWO_ACTOR_PARAMS(-319, -1542), 0x4a08, "Dampes Grave Pot 1", "GY Dampes Grave Pot 1", RHT_POT_GRAVEYARD, RG_ARROWS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_DAMPES_GRAVE_POT_1), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_GY_DAMPES_GRAVE_POT_2] = Location::Base(RC_GY_DAMPES_GRAVE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GRAVEYARD, ACTOR_OBJ_TSUBO, SCENE_WINDMILL_AND_DAMPES_GRAVE, TWO_ACTOR_PARAMS(-319, -1600), 0x4804, "Dampes Grave Pot 2", "GY Dampes Grave Pot 2", RHT_POT_GRAVEYARD, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_DAMPES_GRAVE_POT_2), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_GY_DAMPES_GRAVE_POT_3] = Location::Base(RC_GY_DAMPES_GRAVE_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GRAVEYARD, ACTOR_OBJ_TSUBO, SCENE_WINDMILL_AND_DAMPES_GRAVE, TWO_ACTOR_PARAMS(-364, -1571), 0x4e02, "Dampes Grave Pot 3", "GY Dampes Grave Pot 3", RHT_POT_GRAVEYARD, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_DAMPES_GRAVE_POT_3), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_GY_DAMPES_GRAVE_POT_4] = Location::Base(RC_GY_DAMPES_GRAVE_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GRAVEYARD, ACTOR_OBJ_TSUBO, SCENE_WINDMILL_AND_DAMPES_GRAVE, TWO_ACTOR_PARAMS(198, -1540), 0x4c0f, "Dampes Grave Pot 4", "GY Dampes Grave Pot 4", RHT_POT_GRAVEYARD, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_DAMPES_GRAVE_POT_4), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_GY_DAMPES_GRAVE_POT_5] = Location::Base(RC_GY_DAMPES_GRAVE_POT_5, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GRAVEYARD, ACTOR_OBJ_TSUBO, SCENE_WINDMILL_AND_DAMPES_GRAVE, TWO_ACTOR_PARAMS(198, -1608), 0x4403, "Dampes Grave Pot 5", "GY Dampes Grave Pot 5", RHT_POT_GRAVEYARD, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_DAMPES_GRAVE_POT_5), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_GY_DAMPES_GRAVE_POT_6] = Location::Base(RC_GY_DAMPES_GRAVE_POT_6, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GRAVEYARD, ACTOR_OBJ_TSUBO, SCENE_WINDMILL_AND_DAMPES_GRAVE, TWO_ACTOR_PARAMS(239, -1577), 0x460c, "Dampes Grave Pot 6", "GY Dampes Grave Pot 6", RHT_POT_GRAVEYARD, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GY_DAMPES_GRAVE_POT_6), SpoilerCollectionCheckGroup::GROUP_KAKARIKO); + locationTable[RC_GC_LOWER_STAIRCASE_POT_1] = Location::Base(RC_GC_LOWER_STAIRCASE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GORON_CITY, ACTOR_OBJ_TSUBO, SCENE_GORON_CITY, TWO_ACTOR_PARAMS(-189, 866), 0x690d, "Lower Staircase Pot 1", "GC Lower Staircase Pot 1", RHT_POT_GORON_CITY, RG_DEKU_STICK_1, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GC_LOWER_STAIRCASE_POT_1), SpoilerCollectionCheckGroup::GROUP_GORON_CITY); + locationTable[RC_GC_LOWER_STAIRCASE_POT_2] = Location::Base(RC_GC_LOWER_STAIRCASE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GORON_CITY, ACTOR_OBJ_TSUBO, SCENE_GORON_CITY, TWO_ACTOR_PARAMS(-271, 825), 0x7903, "Lower Staircase Pot 2", "GC Lower Staircase Pot 2", RHT_POT_GORON_CITY, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GC_LOWER_STAIRCASE_POT_2), SpoilerCollectionCheckGroup::GROUP_GORON_CITY); + locationTable[RC_GC_UPPER_STAIRCASE_POT_1] = Location::Base(RC_GC_UPPER_STAIRCASE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GORON_CITY, ACTOR_OBJ_TSUBO, SCENE_GORON_CITY, TWO_ACTOR_PARAMS(-1170, 60), 0x6d00, "Upper Staircase Pot 1", "GC Upper Staircase Pot 1", RHT_POT_GORON_CITY, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GC_UPPER_STAIRCASE_POT_1), SpoilerCollectionCheckGroup::GROUP_GORON_CITY); + locationTable[RC_GC_UPPER_STAIRCASE_POT_2] = Location::Base(RC_GC_UPPER_STAIRCASE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GORON_CITY, ACTOR_OBJ_TSUBO, SCENE_GORON_CITY, TWO_ACTOR_PARAMS(-1185, 95), 0x7701, "Upper Staircase Pot 2", "GC Upper Staircase Pot 2", RHT_POT_GORON_CITY, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GC_UPPER_STAIRCASE_POT_2), SpoilerCollectionCheckGroup::GROUP_GORON_CITY); + locationTable[RC_GC_UPPER_STAIRCASE_POT_3] = Location::Base(RC_GC_UPPER_STAIRCASE_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GORON_CITY, ACTOR_OBJ_TSUBO, SCENE_GORON_CITY, TWO_ACTOR_PARAMS(-1200, 63), 0x6b01, "Upper Staircase Pot 3", "GC Upper Staircase Pot 3", RHT_POT_GORON_CITY, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GC_UPPER_STAIRCASE_POT_3), SpoilerCollectionCheckGroup::GROUP_GORON_CITY); + locationTable[RC_GC_MEDIGORON_POT_1] = Location::Base(RC_GC_MEDIGORON_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GORON_CITY, ACTOR_OBJ_TSUBO, SCENE_GORON_CITY, TWO_ACTOR_PARAMS(-694, 1196), 0x7101, "Medigoron Pot 1", "GC Medigoron Pot 1", RHT_POT_GORON_CITY, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GC_MEDIGORON_POT_1), SpoilerCollectionCheckGroup::GROUP_GORON_CITY); + locationTable[RC_GC_DARUNIA_POT_1] = Location::Base(RC_GC_DARUNIA_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GORON_CITY, ACTOR_OBJ_TSUBO, SCENE_GORON_CITY, TWO_ACTOR_PARAMS(262, -1210), 0x7108, "Darunia Pot 1", "GC Darunia Pot 1", RHT_POT_GORON_CITY, RG_ARROWS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GC_DARUNIA_POT_1), SpoilerCollectionCheckGroup::GROUP_GORON_CITY); + locationTable[RC_GC_DARUNIA_POT_2] = Location::Base(RC_GC_DARUNIA_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GORON_CITY, ACTOR_OBJ_TSUBO, SCENE_GORON_CITY, TWO_ACTOR_PARAMS(261, -1254), 0x7303, "Darunia Pot 2", "GC Darunia Pot 2", RHT_POT_GORON_CITY, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GC_DARUNIA_POT_2), SpoilerCollectionCheckGroup::GROUP_GORON_CITY); + locationTable[RC_GC_DARUNIA_POT_3] = Location::Base(RC_GC_DARUNIA_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GORON_CITY, ACTOR_OBJ_TSUBO, SCENE_GORON_CITY, TWO_ACTOR_PARAMS(262, -1386), 0x7502, "Darunia Pot 3", "GC Darunia Pot 3", RHT_POT_GORON_CITY, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GC_DARUNIA_POT_3), SpoilerCollectionCheckGroup::GROUP_GORON_CITY); + locationTable[RC_DMC_NEAR_GC_POT_2] = Location::Base(RC_DMC_NEAR_GC_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_DEATH_MOUNTAIN_CRATER, ACTOR_OBJ_TSUBO, SCENE_DEATH_MOUNTAIN_CRATER, TWO_ACTOR_PARAMS(-1546, 141), 0x470f, "Near GC Pot 2", "DMC Near GC Pot 2", RHT_POT_DEATH_MOUNTAIN_CRATER, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMC_NEAR_GC_POT_2), SpoilerCollectionCheckGroup::GROUP_DEATH_MOUNTAIN); + locationTable[RC_DMC_NEAR_GC_POT_3] = Location::Base(RC_DMC_NEAR_GC_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_DEATH_MOUNTAIN_CRATER, ACTOR_OBJ_TSUBO, SCENE_DEATH_MOUNTAIN_CRATER, TWO_ACTOR_PARAMS(-1641, -127), 0x4308, "Near GC Pot 3", "DMC Near GC Pot 3", RHT_POT_DEATH_MOUNTAIN_CRATER, RG_ARROWS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMC_NEAR_GC_POT_3), SpoilerCollectionCheckGroup::GROUP_DEATH_MOUNTAIN); + locationTable[RC_DMC_NEAR_GC_POT_1] = Location::Base(RC_DMC_NEAR_GC_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_DEATH_MOUNTAIN_CRATER, ACTOR_OBJ_TSUBO, SCENE_DEATH_MOUNTAIN_CRATER, TWO_ACTOR_PARAMS(-1590, 132), 0x4501, "Near GC Pot 1", "DMC Near GC Pot 1", RHT_POT_DEATH_MOUNTAIN_CRATER, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMC_NEAR_GC_POT_1), SpoilerCollectionCheckGroup::GROUP_DEATH_MOUNTAIN); + locationTable[RC_DMC_NEAR_GC_POT_4] = Location::Base(RC_DMC_NEAR_GC_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_DEATH_MOUNTAIN_CRATER, ACTOR_OBJ_TSUBO, SCENE_DEATH_MOUNTAIN_CRATER, TWO_ACTOR_PARAMS(-1606, -166), 0x4103, "Near GC Pot 4", "DMC Near GC Pot 4", RHT_POT_DEATH_MOUNTAIN_CRATER, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DMC_NEAR_GC_POT_4), SpoilerCollectionCheckGroup::GROUP_DEATH_MOUNTAIN); + locationTable[RC_ZD_NEAR_SHOP_POT_1] = Location::Base(RC_ZD_NEAR_SHOP_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_DOMAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_DOMAIN, TWO_ACTOR_PARAMS(676, 377), 0x4503, "Near Shop Pot 1", "ZD Near Shop Pot 1", RHT_POT_ZORAS_DOMAIN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZD_NEAR_SHOP_POT_1), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZD_NEAR_SHOP_POT_2] = Location::Base(RC_ZD_NEAR_SHOP_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_DOMAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_DOMAIN, TWO_ACTOR_PARAMS(614, 419), 0x4039, "Near Shop Pot 2", "ZD Near Shop Pot 2", RHT_POT_ZORAS_DOMAIN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZD_NEAR_SHOP_POT_2), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZD_NEAR_SHOP_POT_3] = Location::Base(RC_ZD_NEAR_SHOP_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_DOMAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_DOMAIN, TWO_ACTOR_PARAMS(289, 415), 0x4303, "Near Shop Pot 3", "ZD Near Shop Pot 3", RHT_POT_ZORAS_DOMAIN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZD_NEAR_SHOP_POT_3), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZD_NEAR_SHOP_POT_4] = Location::Base(RC_ZD_NEAR_SHOP_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_DOMAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_DOMAIN, TWO_ACTOR_PARAMS(289, 289), 0x470c, "Near Shop Pot 4", "ZD Near Shop Pot 4", RHT_POT_ZORAS_DOMAIN, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZD_NEAR_SHOP_POT_4), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZD_NEAR_SHOP_POT_5] = Location::Base(RC_ZD_NEAR_SHOP_POT_5, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_DOMAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_DOMAIN, TWO_ACTOR_PARAMS(220, 384), 0x490d, "Near Shop Pot 5", "ZD Near Shop Pot 5", RHT_POT_ZORAS_DOMAIN, RG_DEKU_STICK_1, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZD_NEAR_SHOP_POT_5), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZF_HIDDEN_CAVE_POT_1] = Location::Base(RC_ZF_HIDDEN_CAVE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_FOUNTAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_FOUNTAIN, TWO_ACTOR_PARAMS(385, 2587), 0x790e, "Hidden Cave Pot 1", "ZF Hidden Cave Pot 1", RHT_POT_ZORAS_FOUNTAIN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_HIDDEN_CAVE_POT_1), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZF_HIDDEN_CAVE_POT_2] = Location::Base(RC_ZF_HIDDEN_CAVE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_FOUNTAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_FOUNTAIN, TWO_ACTOR_PARAMS(418, 2609), 0x7b09, "Hidden Cave Pot 2", "ZF Hidden Cave Pot 2", RHT_POT_ZORAS_FOUNTAIN, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_HIDDEN_CAVE_POT_2), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZF_HIDDEN_CAVE_POT_3] = Location::Base(RC_ZF_HIDDEN_CAVE_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_FOUNTAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_FOUNTAIN, TWO_ACTOR_PARAMS(430, 2568), 0x770e, "Hidden Cave Pot 3", "ZF Hidden Cave Pot 3", RHT_POT_ZORAS_FOUNTAIN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_HIDDEN_CAVE_POT_3), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZF_NEAR_JABU_POT_1] = Location::Base(RC_ZF_NEAR_JABU_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_FOUNTAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_FOUNTAIN, TWO_ACTOR_PARAMS(-1630, 170), 0x7b03, "Near Jabu Pot 1", "ZF Near Jabu Pot 1", RHT_POT_ZORAS_FOUNTAIN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_NEAR_JABU_POT_1), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZF_NEAR_JABU_POT_2] = Location::Base(RC_ZF_NEAR_JABU_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_FOUNTAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_FOUNTAIN, TWO_ACTOR_PARAMS(-1550, 170), 0x7710, "Near Jabu Pot 2", "ZF Near Jabu Pot 2", RHT_POT_ZORAS_FOUNTAIN, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_NEAR_JABU_POT_2), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZF_NEAR_JABU_POT_3] = Location::Base(RC_ZF_NEAR_JABU_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_FOUNTAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_FOUNTAIN, TWO_ACTOR_PARAMS(-1630, -260), 0x7110, "Near Jabu Pot 3", "ZF Near Jabu Pot 3", RHT_POT_ZORAS_FOUNTAIN, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_NEAR_JABU_POT_3), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_ZF_NEAR_JABU_POT_4] = Location::Base(RC_ZF_NEAR_JABU_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_ZORAS_FOUNTAIN, ACTOR_OBJ_TSUBO, SCENE_ZORAS_FOUNTAIN, TWO_ACTOR_PARAMS(-1550, -260), 0x7310, "Near Jabu Pot 4", "ZF Near Jabu Pot 4", RHT_POT_ZORAS_FOUNTAIN, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ZF_NEAR_JABU_POT_4), SpoilerCollectionCheckGroup::GROUP_ZORAS_DOMAIN); + locationTable[RC_LLR_FRONT_POT_1] = Location::Base(RC_LLR_FRONT_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_RANCH, TWO_ACTOR_PARAMS(667, -3218), 0x4103, "Front Pot 1", "LLR Front Pot 1", RHT_POT_LON_LON_RANCH, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LLR_FRONT_POT_1), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH); + locationTable[RC_LLR_FRONT_POT_2] = Location::Base(RC_LLR_FRONT_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_RANCH, TWO_ACTOR_PARAMS(667, -3186), 0x4500, "Front Pot 2", "LLR Front Pot 2", RHT_POT_LON_LON_RANCH, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LLR_FRONT_POT_2), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH); + locationTable[RC_LLR_FRONT_POT_3] = Location::Base(RC_LLR_FRONT_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_RANCH, TWO_ACTOR_PARAMS(667, -3154), 0x4303, "Front Pot 3", "LLR Front Pot 3", RHT_POT_LON_LON_RANCH, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LLR_FRONT_POT_3), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH); + locationTable[RC_LLR_FRONT_POT_4] = Location::Base(RC_LLR_FRONT_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_RANCH, TWO_ACTOR_PARAMS(667, -3122), 0x4700, "Front Pot 4", "LLR Front Pot 4", RHT_POT_LON_LON_RANCH, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LLR_FRONT_POT_4), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH); + locationTable[RC_LLR_RAIN_SHED_POT_1] = Location::Base(RC_LLR_RAIN_SHED_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_RANCH, TWO_ACTOR_PARAMS(852, 172), 0x4d03, "Rain Shed Pot 1", "LLR Rain Shed Pot 1", RHT_POT_LON_LON_RANCH, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LLR_RAIN_SHED_POT_1), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH); + locationTable[RC_LLR_RAIN_SHED_POT_2] = Location::Base(RC_LLR_RAIN_SHED_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_RANCH, TWO_ACTOR_PARAMS(840, 212), 0x5103, "Rain Shed Pot 2", "LLR Rain Shed Pot 2", RHT_POT_LON_LON_RANCH, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LLR_RAIN_SHED_POT_2), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH); + locationTable[RC_LLR_RAIN_SHED_POT_3] = Location::Base(RC_LLR_RAIN_SHED_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_RANCH, TWO_ACTOR_PARAMS(872, 219), 0x4f03, "Rain Shed Pot 3", "LLR Rain Shed Pot 3", RHT_POT_LON_LON_RANCH, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LLR_RAIN_SHED_POT_3), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH); + locationTable[RC_LLR_TALONS_HOUSE_POT_1] = Location::Base(RC_LLR_TALONS_HOUSE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_BUILDINGS, TWO_ACTOR_PARAMS(1255, 47), 0x5700, "Talons House Pot 1", "LLR Talons House Pot 1", RHT_POT_LON_LON_RANCH, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LLR_TALONS_HOUSE_POT_1), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH); + locationTable[RC_LLR_TALONS_HOUSE_POT_2] = Location::Base(RC_LLR_TALONS_HOUSE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_BUILDINGS, TWO_ACTOR_PARAMS(1256, -51), 0x5501, "Talons House Pot 2", "LLR Talons House Pot 2", RHT_POT_LON_LON_RANCH, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LLR_TALONS_HOUSE_POT_2), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH); + locationTable[RC_LLR_TALONS_HOUSE_POT_3] = Location::Base(RC_LLR_TALONS_HOUSE_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_LON_LON_RANCH, ACTOR_OBJ_TSUBO, SCENE_LON_LON_BUILDINGS, TWO_ACTOR_PARAMS(1256, -78), 0x5301, "Talons House Pot 3", "LLR Talons House Pot 3", RHT_POT_LON_LON_RANCH, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_LLR_TALONS_HOUSE_POT_3), SpoilerCollectionCheckGroup::GROUP_LON_LON_RANCH); + locationTable[RC_HF_COW_GROTTO_POT_1] = Location::Base(RC_HF_COW_GROTTO_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_HYRULE_FIELD, ACTOR_OBJ_TSUBO, SCENE_GROTTOS, TWO_ACTOR_PARAMS(3410, -223), 0x430f, "Cow Grotto Pot 1", "HF Cow Grotto Pot 1", RHT_POT_HYRULE_FIELD, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_COW_GROTTO_POT_1), SpoilerCollectionCheckGroup::GROUP_HYRULE_FIELD); + locationTable[RC_HF_COW_GROTTO_POT_2] = Location::Base(RC_HF_COW_GROTTO_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_HYRULE_FIELD, ACTOR_OBJ_TSUBO, SCENE_GROTTOS, TWO_ACTOR_PARAMS(3390, -258), 0x410e, "Cow Grotto Pot 2", "HF Cow Grotto Pot 2", RHT_POT_HYRULE_FIELD, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HF_COW_GROTTO_POT_2), SpoilerCollectionCheckGroup::GROUP_HYRULE_FIELD); + locationTable[RC_HC_STORMS_GROTTO_POT_1] = Location::Base(RC_HC_STORMS_GROTTO_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_HYRULE_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GROTTOS, TWO_ACTOR_PARAMS(1843, 1014), 0x4502, "Storms Grotto Pot 1", "HC Storms Grotto Pot 1", RHT_POT_HYRULE_CASTLE, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_STORMS_GROTTO_POT_1), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_HC_STORMS_GROTTO_POT_2] = Location::Base(RC_HC_STORMS_GROTTO_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_HYRULE_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GROTTOS, TWO_ACTOR_PARAMS(1769, 954), 0x4908, "Storms Grotto Pot 2", "HC Storms Grotto Pot 2", RHT_POT_HYRULE_CASTLE, RG_ARROWS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_STORMS_GROTTO_POT_2), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_HC_STORMS_GROTTO_POT_3] = Location::Base(RC_HC_STORMS_GROTTO_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_HYRULE_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GROTTOS, TWO_ACTOR_PARAMS(1857, 897), 0x4704, "Storms Grotto Pot 3", "HC Storms Grotto Pot 3", RHT_POT_HYRULE_CASTLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_STORMS_GROTTO_POT_3), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + locationTable[RC_HC_STORMS_GROTTO_POT_4] = Location::Base(RC_HC_STORMS_GROTTO_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_HYRULE_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GROTTOS, TWO_ACTOR_PARAMS(1764, 847), 0x4b0c, "Storms Grotto Pot 4", "HC Storms Grotto Pot 4", RHT_POT_HYRULE_CASTLE, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_STORMS_GROTTO_POT_4), SpoilerCollectionCheckGroup::GROUP_HYRULE_CASTLE); + + // Dungeon Pots + // Pots Randomizer Check Randomizer Check Quest Type Area Actor ID Scene ID Params Flags Short Name Spoiler Name Hint Text Key Vanilla Item Categories Spoiler Collection Check Collection Check Group + locationTable[RC_DODONGOS_CAVERN_LIZALFOS_POT_3] = Location::Base(RC_DODONGOS_CAVERN_LIZALFOS_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2673, -2060), 0x5603, "Lizalfos Pot 3", "Dodongos Cavern Lizalfos Pot 3", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_LIZALFOS_POT_2] = Location::Base(RC_DODONGOS_CAVERN_LIZALFOS_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3526, -2574), 0x5801, "Lizalfos Pot 2", "Dodongos Cavern Lizalfos Pot 2", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_LIZALFOS_POT_1] = Location::Base(RC_DODONGOS_CAVERN_LIZALFOS_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3579, -2574), 0x5a01, "Lizalfos Pot 1", "Dodongos Cavern Lizalfos Pot 1", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_LIZALFOS_POT_4] = Location::Base(RC_DODONGOS_CAVERN_LIZALFOS_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2653, -2031), 0x5403, "Lizalfos Pot 4", "Dodongos Cavern Lizalfos Pot 4", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_SIDE_ROOM_POT_1] = Location::Base(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1708, -471), 0x4400, "Side Room Pot 1", "Dodongos Cavern Side Room Pot 1", RHT_POT_DODONGOS_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_SIDE_ROOM_POT_2] = Location::Base(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1746, -424), 0x4601, "Side Room Pot 2", "Dodongos Cavern Side Room Pot 2", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_SIDE_ROOM_POT_3] = Location::Base(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2573, -489), 0x4c00, "Side Room Pot 3", "Dodongos Cavern Side Room Pot 3", RHT_POT_DODONGOS_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_SIDE_ROOM_POT_4] = Location::Base(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2622, -489), 0x4e01, "Side Room Pot 4", "Dodongos Cavern Side Room Pot 4", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_SIDE_ROOM_POT_5] = Location::Base(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_5, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3507, -964), 0x5000, "Side Room Pot 5", "Dodongos Cavern Side Room Pot 5", RHT_POT_DODONGOS_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_SIDE_ROOM_POT_6] = Location::Base(RC_DODONGOS_CAVERN_SIDE_ROOM_POT_6, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3617, -911), 0x5203, "Side Room Pot 6", "Dodongos Cavern Side Room Pot 6", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_6), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_TORCH_ROOM_POT_1] = Location::Base(RC_DODONGOS_CAVERN_TORCH_ROOM_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1846, -1879), 0x6201, "Torch Room Pot 1", "Dodongos Cavern Torch Room Pot 1", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_TORCH_ROOM_POT_2] = Location::Base(RC_DODONGOS_CAVERN_TORCH_ROOM_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2050, -1964), 0x5c01, "Torch Room Pot 2", "Dodongos Cavern Torch Room Pot 2", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_TORCH_ROOM_POT_3] = Location::Base(RC_DODONGOS_CAVERN_TORCH_ROOM_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2281, -1799), 0x6403, "Torch Room Pot 3", "Dodongos Cavern Torch Room Pot 3", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_TORCH_ROOM_POT_4] = Location::Base(RC_DODONGOS_CAVERN_TORCH_ROOM_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1836, -1239), 0x5e00, "Torch Room Pot 4", "Dodongos Cavern Torch Room Pot 4", RHT_POT_DODONGOS_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_STAIRCASE_POT_1] = Location::Base(RC_DODONGOS_CAVERN_STAIRCASE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(-2414, -1823), 0x6603, "Staircase Pot 1", "Dodongos Cavern Staircase Pot 1", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_STAIRCASE_POT_2] = Location::Base(RC_DODONGOS_CAVERN_STAIRCASE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(-2368, -1827), 0x6802, "Staircase Pot 2", "Dodongos Cavern Staircase Pot 2", RHT_POT_DODONGOS_CAVERN, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_STAIRCASE_POT_3] = Location::Base(RC_DODONGOS_CAVERN_STAIRCASE_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(-1574, -1831), 0x6a02, "Staircase Pot 3", "Dodongos Cavern Staircase Pot 3", RHT_POT_DODONGOS_CAVERN, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_STAIRCASE_POT_4] = Location::Base(RC_DODONGOS_CAVERN_STAIRCASE_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(-1528, -1827), 0x6c03, "Staircase Pot 4", "Dodongos Cavern Staircase Pot 4", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_SINGLE_EYE_POT_1] = Location::Base(RC_DODONGOS_CAVERN_SINGLE_EYE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2704, -483), 0x7401, "Single Eye Pot 1", "Dodongos Cavern Single Eye Pot 1", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_SINGLE_EYE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_SINGLE_EYE_POT_2] = Location::Base(RC_DODONGOS_CAVERN_SINGLE_EYE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3195, -155), 0x7203, "Single Eye Pot 2", "Dodongos Cavern Single Eye Pot 2", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_SINGLE_EYE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_BLADE_POT_1] = Location::Base(RC_DODONGOS_CAVERN_BLADE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1656, -531), 0x6e03, "Blade Pot 1", "Dodongos Cavern Blade Pot 1", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_BLADE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_BLADE_POT_2] = Location::Base(RC_DODONGOS_CAVERN_BLADE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1831, -593), 0x7003, "Blade Pot 2", "Dodongos Cavern Blade Pot 2", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_BLADE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_1] = Location::Base(RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3329, -753), 0x7801, "Double Eye Pot 1", "Dodongos Cavern Double Eye Pot 1", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_DOUBLE_EYE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_2] = Location::Base(RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2705, -1086), 0x7603, "Double Eye Pot 2", "Dodongos Cavern Double Eye Pot 2", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_DOUBLE_EYE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_BACK_ROOM_POT_1] = Location::Base(RC_DODONGOS_CAVERN_BACK_ROOM_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1027, -3704), 0x4212, "Back Room Pot 1", "Dodongos Cavern Back Room Pot 1", RHT_POT_DODONGOS_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_BACK_ROOM_POT_2] = Location::Base(RC_DODONGOS_CAVERN_BACK_ROOM_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(966, -3704), 0x4010, "Back Room Pot 2", "Dodongos Cavern Back Room Pot 2", RHT_POT_DODONGOS_CAVERN, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_BACK_ROOM_POT_3] = Location::Base(RC_DODONGOS_CAVERN_BACK_ROOM_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(125, -3854), 0x7c03, "Back Room Pot 3", "Dodongos Cavern Back Room Pot 3", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_BACK_ROOM_POT_4] = Location::Base(RC_DODONGOS_CAVERN_BACK_ROOM_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(78, -3835), 0x7a04, "Back Room Pot 4", "Dodongos Cavern Back Room Pot 4", RHT_POT_DODONGOS_CAVERN, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1] = Location::Base(RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-1295, -3612), 0x540c, "Above Big Octo Pot 1", "Jabu Jabus Belly Above Big Octo Pot 1", RHT_POT_JABU_JABUS_BELLY, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2] = Location::Base(RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-1355, -3612), 0x5012, "Above Big Octo Pot 2", "Jabu Jabus Belly Above Big Octo Pot 2", RHT_POT_JABU_JABUS_BELLY, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3] = Location::Base(RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-1422, -3612), 0x520c, "Above Big Octo Pot 3", "Jabu Jabus Belly Above Big Octo Pot 3", RHT_POT_JABU_JABUS_BELLY, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_BARINADE_POT_1] = Location::Base(RC_JABU_JABUS_BELLY_BARINADE_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU_BOSS, TWO_ACTOR_PARAMS(-551, 33), 0x4a03, "Barinade Pot 1", "Jabu Jabus Belly Barinade Pot 1", RHT_POT_JABU_JABUS_BELLY, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_BARINADE_POT_2] = Location::Base(RC_JABU_JABUS_BELLY_BARINADE_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU_BOSS, TWO_ACTOR_PARAMS(551, 36), 0x4803, "Barinade Pot 2", "Jabu Jabus Belly Barinade Pot 2", RHT_POT_JABU_JABUS_BELLY, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_BARINADE_POT_3] = Location::Base(RC_JABU_JABUS_BELLY_BARINADE_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU_BOSS, TWO_ACTOR_PARAMS(554, -493), 0x4603, "Barinade Pot 3", "Jabu Jabus Belly Barinade Pot 3", RHT_POT_JABU_JABUS_BELLY, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_BARINADE_POT_4] = Location::Base(RC_JABU_JABUS_BELLY_BARINADE_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU_BOSS, TWO_ACTOR_PARAMS(-543, -496), 0x4403, "Barinade Pot 4", "Jabu Jabus Belly Barinade Pot 4", RHT_POT_JABU_JABUS_BELLY, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_BARINADE_POT_5] = Location::Base(RC_JABU_JABUS_BELLY_BARINADE_POT_5, RCQUEST_BOTH, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU_BOSS, TWO_ACTOR_PARAMS(-268, -786), 0x4203, "Barinade Pot 5", "Jabu Jabus Belly Barinade Pot 5", RHT_POT_JABU_JABUS_BELLY, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_BARINADE_POT_6] = Location::Base(RC_JABU_JABUS_BELLY_BARINADE_POT_6, RCQUEST_BOTH, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU_BOSS, TWO_ACTOR_PARAMS(279, -761), 0x4003, "Barinade Pot 6", "Jabu Jabus Belly Barinade Pot 6", RHT_POT_JABU_JABUS_BELLY, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_6), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_BASEMENT_POT_1] = Location::Base(RC_JABU_JABUS_BELLY_BASEMENT_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(703, -2371), 0x4c12, "Basement Pot 1", "Jabu Jabus Belly Basement Pot 1", RHT_POT_JABU_JABUS_BELLY, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_BASEMENT_POT_2] = Location::Base(RC_JABU_JABUS_BELLY_BASEMENT_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(645, -2408), 0x4a10, "Basement Pot 2", "Jabu Jabus Belly Basement Pot 2", RHT_POT_JABU_JABUS_BELLY, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_BASEMENT_POT_3] = Location::Base(RC_JABU_JABUS_BELLY_BASEMENT_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(650, -2344), 0x4dac, "Basement Pot 3", "Jabu Jabus Belly Basement Pot 3", RHT_POT_JABU_JABUS_BELLY, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1] = Location::Base(RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-1127, -2271), 0x4201, "Two Octorok Pot 1", "Jabu Jabus Belly Two Octorok Pot 1", RHT_POT_JABU_JABUS_BELLY, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2] = Location::Base(RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-1178, -2272), 0x4402, "Two Octorok Pot 2", "Jabu Jabus Belly Two Octorok Pot 2", RHT_POT_JABU_JABUS_BELLY, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3] = Location::Base(RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-1150, -2248), 0x4012, "Two Octorok Pot 3", "Jabu Jabus Belly Two Octorok Pot 3", RHT_POT_JABU_JABUS_BELLY, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4] = Location::Base(RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-1131, -2221), 0x4602, "Two Octorok Pot 4", "Jabu Jabus Belly Two Octorok Pot 4", RHT_POT_JABU_JABUS_BELLY, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5] = Location::Base(RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-1173, -2227), 0x4801, "Two Octorok Pot 5", "Jabu Jabus Belly Two Octorok Pot 5", RHT_POT_JABU_JABUS_BELLY, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_FOREST_TEMPLE_LOBBY_POT_1] = Location::Base(RC_FOREST_TEMPLE_LOBBY_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(720, -1037), 0x4403, "Lobby Pot 1", "Forest Temple Lobby Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_LOBBY_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_LOBBY_POT_2] = Location::Base(RC_FOREST_TEMPLE_LOBBY_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(675, -989), 0x400f, "Lobby Pot 2", "Forest Temple Lobby Pot 2", RHT_POT_FOREST_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_LOBBY_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_LOBBY_POT_3] = Location::Base(RC_FOREST_TEMPLE_LOBBY_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(630, -943), 0x4809, "Lobby Pot 3", "Forest Temple Lobby Pot 3", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_LOBBY_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_LOBBY_POT_4] = Location::Base(RC_FOREST_TEMPLE_LOBBY_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(-384, -937), 0x4a09, "Lobby Pot 4", "Forest Temple Lobby Pot 4", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_LOBBY_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_LOBBY_POT_5] = Location::Base(RC_FOREST_TEMPLE_LOBBY_POT_5, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(-429, -981), 0x420f, "Lobby Pot 5", "Forest Temple Lobby Pot 5", RHT_POT_FOREST_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_LOBBY_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_LOBBY_POT_6] = Location::Base(RC_FOREST_TEMPLE_LOBBY_POT_6, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(-477, -1034), 0x4603, "Lobby Pot 6", "Forest Temple Lobby Pot 6", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_LOBBY_POT_6), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_LOWER_STALFOS_POT_1] = Location::Base(RC_FOREST_TEMPLE_LOWER_STALFOS_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(90, -3583), 0x6203, "Lower Stalfos Pot 1", "Forest Temple Lower Stalfos Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_LOWER_STALFOS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_LOWER_STALFOS_POT_2] = Location::Base(RC_FOREST_TEMPLE_LOWER_STALFOS_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(142, -3583), 0x6412, "Lower Stalfos Pot 2", "Forest Temple Lower Stalfos Pot 2", RHT_POT_FOREST_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_LOWER_STALFOS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_GREEN_POE_POT_1] = Location::Base(RC_FOREST_TEMPLE_GREEN_POE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(1647, -1529), 0x5603, "Green Poe Pot 1", "Forest Temple Green Poe Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_GREEN_POE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_GREEN_POE_POT_2] = Location::Base(RC_FOREST_TEMPLE_GREEN_POE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(1645, -1588), 0x5809, "Green Poe Pot 2", "Forest Temple Green Poe Pot 2", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_GREEN_POE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_UPPER_STALFOS_POT_1] = Location::Base(RC_FOREST_TEMPLE_UPPER_STALFOS_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(32, -3012), 0x6803, "Upper Stalfos Pot 1", "Forest Temple Upper Stalfos Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_UPPER_STALFOS_POT_2] = Location::Base(RC_FOREST_TEMPLE_UPPER_STALFOS_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(202, -3012), 0x6c03, "Upper Stalfos Pot 2", "Forest Temple Upper Stalfos Pot 2", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_UPPER_STALFOS_POT_3] = Location::Base(RC_FOREST_TEMPLE_UPPER_STALFOS_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(30, -3631), 0x6a03, "Upper Stalfos Pot 3", "Forest Temple Upper Stalfos Pot 3", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_UPPER_STALFOS_POT_4] = Location::Base(RC_FOREST_TEMPLE_UPPER_STALFOS_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(206, -3631), 0x6603, "Upper Stalfos Pot 4", "Forest Temple Upper Stalfos Pot 4", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_BLUE_POE_POT_1] = Location::Base(RC_FOREST_TEMPLE_BLUE_POE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(830, -3639), 0x4c03, "Blue Poe Pot 1", "Forest Temple Blue Poe Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_BLUE_POE_POT_2] = Location::Base(RC_FOREST_TEMPLE_BLUE_POE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(883, -3640), 0x5009, "Blue Poe Pot 2", "Forest Temple Blue Poe Pot 2", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_BLUE_POE_POT_3] = Location::Base(RC_FOREST_TEMPLE_BLUE_POE_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(941, -3640), 0x4e09, "Blue Poe Pot 3", "Forest Temple Blue Poe Pot 3", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_FROZEN_EYE_POT_1] = Location::Base(RC_FOREST_TEMPLE_FROZEN_EYE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(2312, -874), 0x5203, "Frozen Eye Pot 1", "Forest Temple Frozen Eye Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_FROZEN_EYE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_FROZEN_EYE_POT_2] = Location::Base(RC_FOREST_TEMPLE_FROZEN_EYE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(2364, -873), 0x5409, "Frozen Eye Pot 2", "Forest Temple Frozen Eye Pot 2", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_FROZEN_EYE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FIRE_TEMPLE_NEAR_BOSS_POT_1] = Location::Base(RC_FIRE_TEMPLE_NEAR_BOSS_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-1086, -714), 0x5c12, "Near Boss Pot 1", "Fire Temple Near Boss Pot 1", RHT_POT_FIRE_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_NEAR_BOSS_POT_2] = Location::Base(RC_FIRE_TEMPLE_NEAR_BOSS_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-1138, -713), 0x5804, "Near Boss Pot 2", "Fire Temple Near Boss Pot 2", RHT_POT_FIRE_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_NEAR_BOSS_POT_3] = Location::Base(RC_FIRE_TEMPLE_NEAR_BOSS_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-1087, -765), 0x5a04, "Near Boss Pot 3", "Fire Temple Near Boss Pot 3", RHT_POT_FIRE_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_NEAR_BOSS_POT_4] = Location::Base(RC_FIRE_TEMPLE_NEAR_BOSS_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-1139, -766), 0x5612, "Near Boss Pot 4", "Fire Temple Near Boss Pot 4", RHT_POT_FIRE_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_BIG_LAVA_POT_1] = Location::Base(RC_FIRE_TEMPLE_BIG_LAVA_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(2226, -754), 0x4409, "Big Lava Pot 1", "Fire Temple Big Lava Pot 1", RHT_POT_FIRE_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_BIG_LAVA_POT_2] = Location::Base(RC_FIRE_TEMPLE_BIG_LAVA_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(2226, -809), 0x4203, "Big Lava Pot 2", "Fire Temple Big Lava Pot 2", RHT_POT_FIRE_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_BIG_LAVA_POT_3] = Location::Base(RC_FIRE_TEMPLE_BIG_LAVA_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(2227, -862), 0x4009, "Big Lava Pot 3", "Fire Temple Big Lava Pot 3", RHT_POT_FIRE_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1] = Location::Base(RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2388, 953), 0x5403, "Flame Maze Left Pot 1", "Fire Temple Flame Maze Left Pot 1", RHT_POT_FIRE_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2] = Location::Base(RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2423, 920), 0x5203, "Flame Maze Left Pot 2", "Fire Temple Flame Maze Left Pot 2", RHT_POT_FIRE_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3] = Location::Base(RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2442, 715), 0x4e03, "Flame Maze Left Pot 3", "Fire Temple Flame Maze Left Pot 3", RHT_POT_FIRE_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4] = Location::Base(RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2408, 680), 0x5003, "Flame Maze Left Pot 4", "Fire Temple Flame Maze Left Pot 4", RHT_POT_FIRE_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1] = Location::Base(RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2208, -168), 0x4c04, "Flame Maze Right Pot 1", "Fire Temple Flame Maze Right Pot 1", RHT_POT_FIRE_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2] = Location::Base(RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2253, -167), 0x4a03, "Flame Maze Right Pot 2", "Fire Temple Flame Maze Right Pot 2", RHT_POT_FIRE_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3] = Location::Base(RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2657, -591), 0x4803, "Flame Maze Right Pot 3", "Fire Temple Flame Maze Right Pot 3", RHT_POT_FIRE_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4] = Location::Base(RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2657, -635), 0x4604, "Flame Maze Right Pot 4", "Fire Temple Flame Maze Right Pot 4", RHT_POT_FIRE_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_1] = Location::Base(RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(330, -198), 0x4603, "Main Level 2 Pot 1", "Water Temple Main Level 2 Pot 1", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MAIN_LEVEL_2_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_2] = Location::Base(RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(331, -168), 0x4403, "Main Level 2 Pot 2", "Water Temple Main Level 2 Pot 2", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MAIN_LEVEL_2_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_1] = Location::Base(RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-241, -1193), 0x6c12, "Main Level 1 Pot 1", "Water Temple Main Level 1 Pot 1", RHT_POT_WATER_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MAIN_LEVEL_1_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_2] = Location::Base(RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-117, -1192), 0x6012, "Main Level 1 Pot 2", "Water Temple Main Level 1 Pot 2", RHT_POT_WATER_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MAIN_LEVEL_1_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_TORCH_POT_1] = Location::Base(RC_WATER_TEMPLE_TORCH_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(1123, 62), 0x4a09, "Torch Pot 1", "Water Temple Torch Pot 1", RHT_POT_WATER_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_TORCH_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_TORCH_POT_2] = Location::Base(RC_WATER_TEMPLE_TORCH_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(1123, 293), 0x4c09, "Torch Pot 2", "Water Temple Torch Pot 2", RHT_POT_WATER_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_TORCH_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_NEAR_COMPASS_POT_1] = Location::Base(RC_WATER_TEMPLE_NEAR_COMPASS_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(1222, -617), 0x4003, "Near Compass Pot 1", "Water Temple Near Compass Pot 1", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_NEAR_COMPASS_POT_2] = Location::Base(RC_WATER_TEMPLE_NEAR_COMPASS_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(1172, -617), 0x5003, "Near Compass Pot 2", "Water Temple Near Compass Pot 2", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_NEAR_COMPASS_POT_3] = Location::Base(RC_WATER_TEMPLE_NEAR_COMPASS_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(1122, -617), 0x4e03, "Near Compass Pot 3", "Water Temple Near Compass Pot 3", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_CENTRAL_BOW_POT_1] = Location::Base(RC_WATER_TEMPLE_CENTRAL_BOW_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(688, 1008), 0x6e03, "Central Bow Pot 1", "Water Temple Central Bow Pot 1", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_CENTRAL_BOW_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_CENTRAL_BOW_POT_2] = Location::Base(RC_WATER_TEMPLE_CENTRAL_BOW_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(631, 1008), 0x7e03, "Central Bow Pot 2", "Water Temple Central Bow Pot 2", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_CENTRAL_BOW_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_BEHIND_GATE_POT_1] = Location::Base(RC_WATER_TEMPLE_BEHIND_GATE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2313, 944), 0x5209, "Behind Gate Pot 1", "Water Temple Behind Gate Pot 1", RHT_POT_WATER_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_BEHIND_GATE_POT_2] = Location::Base(RC_WATER_TEMPLE_BEHIND_GATE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2313, 905), 0x6a09, "Behind Gate Pot 2", "Water Temple Behind Gate Pot 2", RHT_POT_WATER_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_BEHIND_GATE_POT_3] = Location::Base(RC_WATER_TEMPLE_BEHIND_GATE_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2314, 808), 0x4804, "Behind Gate Pot 3", "Water Temple Behind Gate Pot 3", RHT_POT_WATER_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_BEHIND_GATE_POT_4] = Location::Base(RC_WATER_TEMPLE_BEHIND_GATE_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2314, 770), 0x4204, "Behind Gate Pot 4", "Water Temple Behind Gate Pot 4", RHT_POT_WATER_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1] = Location::Base(RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-28, -3817), 0x7804, "Basement Block Puzzle Pot 1", "Water Temple Basement Block Puzzle Pot 1", RHT_POT_WATER_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2] = Location::Base(RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(28, -3817), 0x7604, "Basement Block Puzzle Pot 2", "Water Temple Basement Block Puzzle Pot 2", RHT_POT_WATER_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_RIVER_POT_1] = Location::Base(RC_WATER_TEMPLE_RIVER_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2226, -2487), 0x5e09, "River Pot 1", "Water Temple River Pot 1", RHT_POT_WATER_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_RIVER_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_RIVER_POT_2] = Location::Base(RC_WATER_TEMPLE_RIVER_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2184, -2456), 0x6212, "River Pot 2", "Water Temple River Pot 2", RHT_POT_WATER_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_RIVER_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_LIKE_LIKE_POT_1] = Location::Base(RC_WATER_TEMPLE_LIKE_LIKE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-3188, -1628), 0x560e, "Like Like Pot 1", "Water Temple Like Like Pot 1", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_LIKE_LIKE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_LIKE_LIKE_POT_2] = Location::Base(RC_WATER_TEMPLE_LIKE_LIKE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-3056, -1626), 0x580e, "Like Like Pot 2", "Water Temple Like Like Pot 2", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_LIKE_LIKE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_BOSS_KEY_POT_1] = Location::Base(RC_WATER_TEMPLE_BOSS_KEY_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-1150, -3031), 0x560e, "Boss Key Pot 1", "Water Temple Boss Key Pot 1", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_BOSS_KEY_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_BOSS_KEY_POT_2] = Location::Base(RC_WATER_TEMPLE_BOSS_KEY_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-1417, -3025), 0x580e, "Boss Key Pot 2", "Water Temple Boss Key Pot 2", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_BOSS_KEY_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1] = Location::Base(RC_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-1806, -344), 0x500F, "Near Dead Hand Pot 1", "Shadow Temple Near Dead Hand Pot 1", RHT_POT_SHADOW_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1] = Location::Base(RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-1721, 61), 0x520F, "Whispering Walls Pot 1", "Shadow Temple Whispering Walls Pot 1", RHT_POT_SHADOW_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2] = Location::Base(RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-1407, 61), 0x5403, "Whispering Walls Pot 2", "Shadow Temple Whispering Walls Pot 2", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3] = Location::Base(RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-1614, 61), 0x5E01, "Whispering Walls Pot 3", "Shadow Temple Whispering Walls Pot 3", RHT_POT_SHADOW_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4] = Location::Base(RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-1055, -257), 0x600C, "Whispering Walls Pot 4", "Shadow Temple Whispering Walls Pot 4", RHT_POT_SHADOW_TEMPLE, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5] = Location::Base(RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-1050, -130), 0x6203, "Whispering Walls Pot 5", "Shadow Temple Whispering Walls Pot 5", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MAP_CHEST_POT_1] = Location::Base(RC_SHADOW_TEMPLE_MAP_CHEST_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-665, -760), 0x4E09, "Map Chest Pot 1", "Shadow Temple Map Chest Pot 1", RHT_POT_SHADOW_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MAP_CHEST_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MAP_CHEST_POT_2] = Location::Base(RC_SHADOW_TEMPLE_MAP_CHEST_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-929, -748), 0x5803, "Map Chest Pot 2", "Shadow Temple Map Chest Pot 2", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MAP_CHEST_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_1] = Location::Base(RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(614, 3579), 0x4803, "Falling Spikes Pot 1", "Shadow Temple Falling Spikes Pot 1", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_2] = Location::Base(RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(798, 3574), 0x4A04, "Falling Spikes Pot 2", "Shadow Temple Falling Spikes Pot 2", RHT_POT_SHADOW_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_3] = Location::Base(RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(1173, 3707), 0x5603, "Falling Spikes Pot 3", "Shadow Temple Falling Spikes Pot 3", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_4] = Location::Base(RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(1173, 3605), 0x5A03, "Falling Spikes Pot 4", "Shadow Temple Falling Spikes Pot 4", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_AFTER_WIND_POT_1] = Location::Base(RC_SHADOW_TEMPLE_AFTER_WIND_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(4222, -916), 0x5C01, "After Wind Pot 1", "Shadow Temple After Wind Pot 1", RHT_POT_SHADOW_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_AFTER_WIND_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_AFTER_WIND_POT_2] = Location::Base(RC_SHADOW_TEMPLE_AFTER_WIND_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(4549, -922), 0x640C, "After Wind Pot 2", "Shadow Temple After Wind Pot 2", RHT_POT_SHADOW_TEMPLE, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_AFTER_WIND_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_SPIKE_WALLS_POT_1] = Location::Base(RC_SHADOW_TEMPLE_SPIKE_WALLS_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-4303, -2657), 0x4C0E, "Spike Walls Pot 1", "Shadow Temple Spike Walls Pot 1", RHT_POT_SHADOW_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_SPIKE_WALLS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_FLOORMASTER_POT_1] = Location::Base(RC_SHADOW_TEMPLE_FLOORMASTER_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-4575, -811), 0x6603, "Floormaster Pot 1", "Shadow Temple Floormaster Pot 1", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_FLOORMASTER_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_FLOORMASTER_POT_2] = Location::Base(RC_SHADOW_TEMPLE_FLOORMASTER_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-4036, -811), 0x680A, "Floormaster Pot 2", "Shadow Temple Floormaster Pot 2", RHT_POT_SHADOW_TEMPLE, RG_ARROWS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_FLOORMASTER_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_AFTER_BOAT_POT_1] = Location::Base(RC_SHADOW_TEMPLE_AFTER_BOAT_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-2400, -1470), 0x7009, "After Boat Pot 1", "Shadow Temple After Boat Pot 1", RHT_POT_SHADOW_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_AFTER_BOAT_POT_2] = Location::Base(RC_SHADOW_TEMPLE_AFTER_BOAT_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-2230, -1470), 0x763F, "After Boat Pot 2", "Shadow Temple After Boat Pot 2", RHT_POT_SHADOW_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_AFTER_BOAT_POT_3] = Location::Base(RC_SHADOW_TEMPLE_AFTER_BOAT_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-2859, -497), 0x7A0A, "After Boat Pot 3", "Shadow Temple After Boat Pot 3", RHT_POT_SHADOW_TEMPLE, RG_ARROWS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_AFTER_BOAT_POT_4] = Location::Base(RC_SHADOW_TEMPLE_AFTER_BOAT_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-2624, -492), 0x7C0E, "After Boat Pot 4", "Shadow Temple After Boat Pot 4", RHT_POT_SHADOW_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_LOBBY_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_LOBBY_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-181, 233), 0x4203, "Lobby Pot 1", "Spirit Temple Lobby Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_LOBBY_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_LOBBY_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_LOBBY_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(184, 231), 0x440E, "Lobby Pot 2", "Spirit Temple Lobby Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_LOBBY_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_ANUBIS_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_ANUBIS_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-975, -1751), 0x5A3F, "Anubis Pot 1", "Spirit Temple Anubis Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_ANUBIS_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_ANUBIS_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-928, -1827), 0x5C3F, "Anubis Pot 2", "Spirit Temple Anubis Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_ANUBIS_POT_3] = Location::Base(RC_SPIRIT_TEMPLE_ANUBIS_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-1211, -1530), 0x5E03, "Anubis Pot 3", "Spirit Temple Anubis Pot 3", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_ANUBIS_POT_4] = Location::Base(RC_SPIRIT_TEMPLE_ANUBIS_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-1055, -1680), 0x6015, "Anubis Pot 4", "Spirit Temple Anubis Pot 4", RHT_POT_SPIRIT_TEMPLE, RG_DEKU_SHIELD, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-1101, -1305), 0x4610, "Child Climb Pot 1", "Spirit Temple Child Climb Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-1781, 830), 0x5403, "After Sun Block Pot 1", "Spirit Temple After Sun Block Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-1617, 830), 0x5603, "After Sun Block Pot 2", "Spirit Temple After Sun Block Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-600, -1213), 0x483F, "Central Chamber Pot 1", "Spirit Temple Central Chamber Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-564, -1180), 0x4A3F, "Central Chamber Pot 2", "Spirit Temple Central Chamber Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3] = Location::Base(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-526, -1213), 0x4C3F, "Central Chamber Pot 3", "Spirit Temple Central Chamber Pot 3", RHT_POT_SPIRIT_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4] = Location::Base(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(639, -1224), 0x4E3F, "Central Chamber Pot 4", "Spirit Temple Central Chamber Pot 4", RHT_POT_SPIRIT_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5] = Location::Base(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(671, -1179), 0x503F, "Central Chamber Pot 5", "Spirit Temple Central Chamber Pot 5", RHT_POT_SPIRIT_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6] = Location::Base(RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(704, -1224), 0x523F, "Central Chamber Pot 6", "Spirit Temple Central Chamber Pot 6", RHT_POT_SPIRIT_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(819, -333), 0x580B, "Beamos Hall Pot 1", "Spirit Temple Beamos Hall Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_BOMBS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_GANONS_CASTLE_FOREST_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_FOREST_TRIAL_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(1725, 2336), 0x6A03, "Forest Trial Pot 1", "Ganons Castle Forest Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_FOREST_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_FOREST_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_FOREST_TRIAL_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(1892, 2241), 0x6C0F, "Forest Trial Pot 2", "Ganons Castle Forest Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_FOREST_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_FIRE_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_FIRE_TRIAL_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-1898, -3942), 0x620F, "Fire Trial Pot 2", "Ganons Castle Fire Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_FIRE_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_FIRE_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_FIRE_TRIAL_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-2051, -3855), 0x6003, "Fire Trial Pot 1", "Ganons Castle Fire Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_FIRE_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_WATER_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_WATER_TRIAL_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(3558, -920), 0x7203, "Water Trial Pot 1", "Ganons Castle Water Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_WATER_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_WATER_TRIAL_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(3558, -761), 0x740F, "Water Trial Pot 2", "Ganons Castle Water Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_WATER_TRIAL_POT_3] = Location::Base(RC_GANONS_CASTLE_WATER_TRIAL_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(2822, -507), 0x740F, "Water Trial Pot 3", "Ganons Castle Water Trial Pot 3", RHT_POT_GANONS_CASTLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_SHADOW_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(1234, -3418), 0x5A09, "Shadow Trial Pot 1", "Ganons Castle Shadow Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_SHADOW_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(1621, -3203), 0x5E0E, "Shadow Trial Pot 2", "Ganons Castle Shadow Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_SHADOW_TRIAL_POT_3] = Location::Base(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(2067, -4592), 0x6209, "Shadow Trial Pot 3", "Ganons Castle Shadow Trial Pot 3", RHT_POT_GANONS_CASTLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_SHADOW_TRIAL_POT_4] = Location::Base(RC_GANONS_CASTLE_SHADOW_TRIAL_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(2224, -4506), 0x640E, "Shadow Trial Pot 4", "Ganons Castle Shadow Trial Pot 4", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-1398, 1402), 0x660C, "Spirit Trial Pot 1", "Ganons Castle Spirit Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_SPIRIT_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-1237, 1494), 0x680F, "Spirit Trial Pot 2", "Ganons Castle Spirit Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_SPIRIT_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1] = Location::Base(RC_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-2581, -839), 0x4A2A, "Light Trial Boulder Pot 1", "Ganons Castle Light Trial Boulder Pot 1", RHT_POT_GANONS_CASTLE, RG_ARROWS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_LIGHT_TRIAL_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-3840, -923), 0x7603, "Light Trial Pot 1", "Ganons Castle Light Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_LIGHT_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_LIGHT_TRIAL_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-3840, -755), 0x780E, "Light Trial Pot 2", "Ganons Castle Light Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_1] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_1, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(-422, -258), 0x400E, "Ganons Tower Pot 1", "Ganons Castle Ganons Tower Pot 1", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_2] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_2, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(-382, -300), 0x4203, "Ganons Tower Pot 2", "Ganons Castle Ganons Tower Pot 2", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_3] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_3, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(-342, -341), 0x440F, "Ganons Tower Pot 3", "Ganons Castle Ganons Tower Pot 3", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_4] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_4, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(-298, -383), 0x460F, "Ganons Tower Pot 4", "Ganons Castle Ganons Tower Pot 4", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_5] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_5, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(-257, -424), 0x4803, "Ganons Tower Pot 5", "Ganons Castle Ganons Tower Pot 5", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_6] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_6, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(-382, -259), 0x4A09, "Ganons Tower Pot 6", "Ganons Castle Ganons Tower Pot 6", RHT_POT_GANONS_CASTLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_6), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_7] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_7, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(-342, -300), 0x4C09, "Ganons Tower Pot 7", "Ganons Castle Ganons Tower Pot 7", RHT_POT_GANONS_CASTLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_7), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_8] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_8, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(-301, -341), 0x4E03, "Ganons Tower Pot 8", "Ganons Castle Ganons Tower Pot 8", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_8), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_9] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_9, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(-258, -383), 0x503F, "Ganons Tower Pot 9", "Ganons Castle Ganons Tower Pot 9", RHT_POT_GANONS_CASTLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_9), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_10] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_10, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(418, -261), 0x523F, "Ganons Tower Pot 10", "Ganons Castle Ganons Tower Pot 10", RHT_POT_GANONS_CASTLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_10), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_11] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_11, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(377, -301), 0x5409, "Ganons Tower Pot 11", "Ganons Castle Ganons Tower Pot 11", RHT_POT_GANONS_CASTLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_11), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_12] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_12, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(338, -340), 0x5609, "Ganons Tower Pot 12", "Ganons Castle Ganons Tower Pot 12", RHT_POT_GANONS_CASTLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_12), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_13] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_13, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(300, -380), 0x5803, "Ganons Tower Pot 13", "Ganons Castle Ganons Tower Pot 13", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_13), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_14] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_14, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(260, -420), 0x5A03, "Ganons Tower Pot 14", "Ganons Castle Ganons Tower Pot 14", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_14), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_15] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_15, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(378, -261), 0x5C03, "Ganons Tower Pot 15", "Ganons Castle Ganons Tower Pot 15", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_15), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_16] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_16, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(337, -300), 0x5E3F, "Ganons Tower Pot 16", "Ganons Castle Ganons Tower Pot 16", RHT_POT_GANONS_CASTLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_16), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_17] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_17, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(299, -340), 0x603F, "Ganons Tower Pot 17", "Ganons Castle Ganons Tower Pot 17", RHT_POT_GANONS_CASTLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_17), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_GANONS_TOWER_POT_18] = Location::Base(RC_GANONS_CASTLE_GANONS_TOWER_POT_18, RCQUEST_BOTH, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_GANONS_TOWER, TWO_ACTOR_PARAMS(260, -380), 0x6209, "Ganons Tower Pot 18", "Ganons Castle Ganons Tower Pot 18", RHT_POT_GANONS_CASTLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_18), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_1] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(-95, -673), 0x4E03, "Basement Pot 1", "Bottom Of The Well Basement Pot 1", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_2] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(75, -598), 0x500E, "Basement Pot 2", "Bottom Of The Well Basement Pot 2", RHT_POT_BOTTOM_OF_THE_WELL, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_3] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(270, -1151), 0x5203, "Basement Pot 3", "Bottom Of The Well Basement Pot 3", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_4] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_4, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(566, -1254), 0x5400, "Basement Pot 4", "Bottom Of The Well Basement Pot 4", RHT_POT_BOTTOM_OF_THE_WELL, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_5] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_5, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(378, -1089), 0x560E, "Basement Pot 5", "Bottom Of The Well Basement Pot 5", RHT_POT_BOTTOM_OF_THE_WELL, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_6] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_6, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(665, -1252), 0x5803, "Basement Pot 6", "Bottom Of The Well Basement Pot 6", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_6), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_7] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_7, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(566, -1345), 0x5A03, "Basement Pot 7", "Bottom Of The Well Basement Pot 7", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_7), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_8] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_8, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(562, -1304), 0x5C03, "Basement Pot 8", "Bottom Of The Well Basement Pot 8", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_8), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_9] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_9, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(313, -1086), 0x5E0C, "Basement Pot 9", "Bottom Of The Well Basement Pot 9", RHT_POT_BOTTOM_OF_THE_WELL, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_9), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_10] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_10, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(618, -1254), 0x600D, "Basement Pot 10", "Bottom Of The Well Basement Pot 10", RHT_POT_BOTTOM_OF_THE_WELL, RG_DEKU_STICK_1, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_10), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_11] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_11, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(257, -1099), 0x620E, "Basement Pot 11", "Bottom Of The Well Basement Pot 11", RHT_POT_BOTTOM_OF_THE_WELL, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_11), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_12] = Location::Base(RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_12, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(296, -1206), 0x6403, "Basement Pot 12", "Bottom Of The Well Basement Pot 12", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_12), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1] = Location::Base(RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(-969, 55), 0x4203, "Left Side Pot 1", "Bottom Of The Well Left Side Pot 1", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2] = Location::Base(RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(-966, 9), 0x440F, "Left Side Pot 2", "Bottom Of The Well Left Side Pot 2", RHT_POT_BOTTOM_OF_THE_WELL, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3] = Location::Base(RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(-965, -32), 0x4603, "Left Side Pot 3", "Bottom Of The Well Left Side Pot 3", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1] = Location::Base(RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(-41, 389), 0x480D, "Near Entrance Pot 1", "Bottom Of The Well Near Entrance Pot 1", RHT_POT_BOTTOM_OF_THE_WELL, RG_DEKU_STICK_1, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2] = Location::Base(RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(36, 389), 0x4A0F, "Near Entrance Pot 2", "Bottom Of The Well Near Entrance Pot 2", RHT_POT_BOTTOM_OF_THE_WELL, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1] = Location::Base(RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(874, -1294), 0x660F, "Fire Keese Pot 1", "Bottom Of The Well Fire Keese Pot 1", RHT_POT_BOTTOM_OF_THE_WELL, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_UNDERWATER_POT] = Location::Base(RC_BOTTOM_OF_THE_WELL_UNDERWATER_POT, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(3, -1641), 0x4C04, "Underwater Pot", "Bottom Of The Well Underwater Pot", RHT_POT_BOTTOM_OF_THE_WELL, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_UNDERWATER_POT), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_ICE_CAVERN_HALL_POT_1] = Location::Base(RC_ICE_CAVERN_HALL_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(-206, 449), 0x4A03, "Hall Pot 1", "Ice Cavern Hall Pot 1", RHT_POT_ICE_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_HALL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_HALL_POT_2] = Location::Base(RC_ICE_CAVERN_HALL_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(-203, 492), 0x4C03, "Hall Pot 2", "Ice Cavern Hall Pot 2", RHT_POT_ICE_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_HALL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_SPINNING_BLADE_POT_1] = Location::Base(RC_ICE_CAVERN_SPINNING_BLADE_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(433, -732), 0x4E09, "Spinning Blade Pot 1", "Ice Cavern Spinning Blade Pot 1", RHT_POT_ICE_CAVERN, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_SPINNING_BLADE_POT_2] = Location::Base(RC_ICE_CAVERN_SPINNING_BLADE_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(569, -175), 0x5001, "Spinning Blade Pot 2", "Ice Cavern Spinning Blade Pot 2", RHT_POT_ICE_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_SPINNING_BLADE_POT_3] = Location::Base(RC_ICE_CAVERN_SPINNING_BLADE_POT_3, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(521, -131), 0x5203, "Spinning Blade Pot 3", "Ice Cavern Spinning Blade Pot 3", RHT_POT_ICE_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_NEAR_END_POT_1] = Location::Base(RC_ICE_CAVERN_NEAR_END_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(-1422, 586), 0x5403, "Near End Pot 1", "Ice Cavern Near End Pot 1", RHT_POT_ICE_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_NEAR_END_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_NEAR_END_POT_2] = Location::Base(RC_ICE_CAVERN_NEAR_END_POT_2, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(-1488, 676), 0x5603, "Near End Pot 2", "Ice Cavern Near End Pot 2", RHT_POT_ICE_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_NEAR_END_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_FROZEN_POT_1] = Location::Base(RC_ICE_CAVERN_FROZEN_POT_1, RCQUEST_VANILLA, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(366, -2036), 0x5A14, "Frozen Pot 1", "Ice Cavern Frozen Pot 1", RHT_POT_ICE_CAVERN, RG_PURPLE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_FROZEN_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + + // MQ Dungeon Pots + // Pots Randomizer Check Randomizer Check Quest Type Area Actor ID Scene ID Params Flags Short Name Spoiler Name Hint Text Key Vanilla Item Categories Spoiler Collection Check Collection Check Group + locationTable[RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1] = Location::Base(RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-183, -449), 0x7804, "MQ Entrance Pot 1", "Jabu Jabus Belly MQ Entrance Pot 1", RHT_POT_JABU_JABUS_BELLY, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2] = Location::Base(RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(202, -62), 0x640C, "MQ Entrance Pot 2", "Jabu Jabus Belly MQ Entrance Pot 2", RHT_POT_JABU_JABUS_BELLY, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_1] = Location::Base(RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-689, -1800), 0x7208, "MQ Geyser Pot 1", "Jabu Jabus Belly MQ Geyser Pot 1", RHT_POT_JABU_JABUS_BELLY, RG_ARROWS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_GEYSER_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_2] = Location::Base(RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(-693, -1614), 0x740C, "MQ Geyser Pot 2", "Jabu Jabus Belly MQ Geyser Pot 2", RHT_POT_JABU_JABUS_BELLY, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_GEYSER_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1] = Location::Base(RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(697, -2318), 0x6604, "MQ Time Block Pot 1", "Jabu Jabus Belly MQ Time Block Pot 1", RHT_POT_JABU_JABUS_BELLY, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2] = Location::Base(RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(699, -2445), 0x6808, "MQ Time Block Pot 2", "Jabu Jabus Belly MQ Time Block Pot 2", RHT_POT_JABU_JABUS_BELLY, RG_ARROWS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1] = Location::Base(RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(612, -5932), 0x7A08, "MQ Like Likes Pot 1", "Jabu Jabus Belly MQ Like Likes Pot 1", RHT_POT_JABU_JABUS_BELLY, RG_ARROWS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2] = Location::Base(RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(718, -5929), 0x7E0B, "MQ Like Likes Pot 2", "Jabu Jabus Belly MQ Like Likes Pot 2", RHT_POT_JABU_JABUS_BELLY, RG_BOMBS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1] = Location::Base(RC_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_JABU_JABUS_BELLY, ACTOR_OBJ_TSUBO, SCENE_JABU_JABU, TWO_ACTOR_PARAMS(1305, -2005), 0x6212, "MQ Before Boss Pot 1", "Jabu Jabus Belly MQ Before Boss Pot 1", RHT_POT_JABU_JABUS_BELLY, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_JABUJABUS_BELLY); + locationTable[RC_FOREST_TEMPLE_MQ_LOBBY_POT_1] = Location::Base(RC_FOREST_TEMPLE_MQ_LOBBY_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(675, -989), 0x400F, "MQ Lobby Pot 1", "Forest Temple MQ Lobby Pot 1", RHT_POT_FOREST_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_LOBBY_POT_2] = Location::Base(RC_FOREST_TEMPLE_MQ_LOBBY_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(-429, -981), 0x420F, "MQ Lobby Pot 2", "Forest Temple MQ Lobby Pot 2", RHT_POT_FOREST_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_LOBBY_POT_3] = Location::Base(RC_FOREST_TEMPLE_MQ_LOBBY_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(720, -1037), 0x4403, "MQ Lobby Pot 3", "Forest Temple MQ Lobby Pot 3", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_LOBBY_POT_4] = Location::Base(RC_FOREST_TEMPLE_MQ_LOBBY_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(-477, -1034), 0x4603, "MQ Lobby Pot 4", "Forest Temple MQ Lobby Pot 4", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_LOBBY_POT_5] = Location::Base(RC_FOREST_TEMPLE_MQ_LOBBY_POT_5, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(630, -943), 0x4809, "MQ Lobby Pot 5", "Forest Temple MQ Lobby Pot 5", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_LOBBY_POT_6] = Location::Base(RC_FOREST_TEMPLE_MQ_LOBBY_POT_6, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(-384, -937), 0x4A09, "MQ Lobby Pot 6", "Forest Temple MQ Lobby Pot 6", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_6), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_1] = Location::Base(RC_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(90, -3583), 0x6203, "MQ Lower Stalfos Pot 1", "Forest Temple MQ Lower Stalfos Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_2] = Location::Base(RC_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(142, -3583), 0x6412, "MQ Lower Stalfos Pot 2", "Forest Temple MQ Lower Stalfos Pot 2", RHT_POT_FOREST_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1] = Location::Base(RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(206, -3631), 0x6603, "MQ Upper Stalfos Pot 1", "Forest Temple MQ Upper Stalfos Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2] = Location::Base(RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(32, -3012), 0x6803, "MQ Upper Stalfos Pot 2", "Forest Temple MQ Upper Stalfos Pot 2", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3] = Location::Base(RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(30, -3631), 0x6A03, "MQ Upper Stalfos Pot 3", "Forest Temple MQ Upper Stalfos Pot 3", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4] = Location::Base(RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(202, -3012), 0x6C03, "MQ Upper Stalfos Pot 4", "Forest Temple MQ Upper Stalfos Pot 4", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_1] = Location::Base(RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(830, -3639), 0x4C03, "MQ Blue Poe Pot 1", "Forest Temple MQ Blue Poe Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_2] = Location::Base(RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(941, -3640), 0x4E09, "MQ Blue Poe Pot 2", "Forest Temple MQ Blue Poe Pot 2", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_3] = Location::Base(RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(883, -3640), 0x5009, "MQ Blue Poe Pot 3", "Forest Temple MQ Blue Poe Pot 3", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_1] = Location::Base(RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(1647, -1529), 0x5603, "MQ Green Poe Pot 1", "Forest Temple MQ Green Poe Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_GREEN_POE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_2] = Location::Base(RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(1645, -1588), 0x5809, "MQ Green Poe Pot 2", "Forest Temple MQ Green Poe Pot 2", RHT_POT_FOREST_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_GREEN_POE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_BASEMENT_POT_1] = Location::Base(RC_FOREST_TEMPLE_MQ_BASEMENT_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(-461, -1095), 0x7003, "MQ Basement Pot 1", "Forest Temple MQ Basement Pot 1", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_BASEMENT_POT_2] = Location::Base(RC_FOREST_TEMPLE_MQ_BASEMENT_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(-351, -979), 0x7203, "MQ Basement Pot 2", "Forest Temple MQ Basement Pot 2", RHT_POT_FOREST_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_BASEMENT_POT_3] = Location::Base(RC_FOREST_TEMPLE_MQ_BASEMENT_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(-387, -1018), 0x740B, "MQ Basement Pot 3", "Forest Temple MQ Basement Pot 3", RHT_POT_FOREST_TEMPLE, RG_BOMBS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_FOREST_TEMPLE_MQ_BASEMENT_POT_4] = Location::Base(RC_FOREST_TEMPLE_MQ_BASEMENT_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_FOREST_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FOREST_TEMPLE, TWO_ACTOR_PARAMS(-424, -1057), 0x7608, "MQ Basement Pot 4", "Forest Temple MQ Basement Pot 4", RHT_POT_FOREST_TEMPLE, RG_ARROWS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FOREST_TEMPLE); + locationTable[RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1727, -151), 0x4400, "MQ Right Side Pot 1", "Dodongos Cavern MQ Right Side Pot 1", RHT_POT_DODONGOS_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1815, -154), 0x4601, "MQ Right Side Pot 2", "Dodongos Cavern MQ Right Side Pot 2", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3] = Location::Base(RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3442, -469), 0x5000, "MQ Right Side Pot 3", "Dodongos Cavern MQ Right Side Pot 3", RHT_POT_DODONGOS_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4] = Location::Base(RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3682, -466), 0x5210, "MQ Right Side Pot 4", "Dodongos Cavern MQ Right Side Pot 4", RHT_POT_DODONGOS_CAVERN, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3869, -811), 0x5403, "MQ Upper Lizalfos Pot 1", "Dodongos Cavern MQ Upper Lizalfos Pot 1", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3867, -969), 0x5603, "MQ Upper Lizalfos Pot 2", "Dodongos Cavern MQ Upper Lizalfos Pot 2", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3] = Location::Base(RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(4687, -1071), 0x5801, "MQ Upper Lizalfos Pot 3", "Dodongos Cavern MQ Upper Lizalfos Pot 3", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4] = Location::Base(RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(4693, -1194), 0x5A01, "MQ Upper Lizalfos Pot 4", "Dodongos Cavern MQ Upper Lizalfos Pot 4", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1844, -1867), 0x5C03, "MQ Poe Room Pot 1", "Dodongos Cavern MQ Poe Room Pot 1", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2272, -2213), 0x5E00, "MQ Poe Room Pot 2", "Dodongos Cavern MQ Poe Room Pot 2", RHT_POT_DODONGOS_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3] = Location::Base(RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2240, -1369), 0x6201, "MQ Poe Room Pot 3", "Dodongos Cavern MQ Poe Room Pot 3", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4] = Location::Base(RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1535, -1299), 0x6403, "MQ Poe Room Pot 4", "Dodongos Cavern MQ Poe Room Pot 4", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1827, -587), 0x4C01, "MQ Block Room Pot 1", "Dodongos Cavern MQ Block Room Pot 1", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1532, -1225), 0x4E03, "MQ Block Room Pot 2", "Dodongos Cavern MQ Block Room Pot 2", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3327, -805), 0x7610, "MQ Two Flames Pot 1", "Dodongos Cavern MQ Two Flames Pot 1", RHT_POT_DODONGOS_CAVERN, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3326, -753), 0x7801, "MQ Two Flames Pot 2", "Dodongos Cavern MQ Two Flames Pot 2", RHT_POT_DODONGOS_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(3195, -155), 0x7210, "MQ Silver Block Pot 1", "Dodongos Cavern MQ Silver Block Pot 1", RHT_POT_DODONGOS_CAVERN, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(2704, -483), 0x7410, "MQ Silver Block Pot 2", "Dodongos Cavern MQ Silver Block Pot 2", RHT_POT_DODONGOS_CAVERN, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(-2391, -1804), 0x6603, "MQ Staircase Pot 1", "Dodongos Cavern MQ Staircase Pot 1", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(-2361, -1161), 0x6802, "MQ Staircase Pot 2", "Dodongos Cavern MQ Staircase Pot 2", RHT_POT_DODONGOS_CAVERN, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3] = Location::Base(RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(-1525, -1800), 0x6A02, "MQ Staircase Pot 3", "Dodongos Cavern MQ Staircase Pot 3", RHT_POT_DODONGOS_CAVERN, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4] = Location::Base(RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(-1558, -1169), 0x6C03, "MQ Staircase Pot 4", "Dodongos Cavern MQ Staircase Pot 4", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_ARMOS_POT_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_ARMOS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1005, -3711), 0x4003, "MQ Armos Pot 1", "Dodongos Cavern MQ Armos Pot 1", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_ARMOS_POT_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_ARMOS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1066, -3711), 0x4212, "MQ Armos Pot 2", "Dodongos Cavern MQ Armos Pot 2", RHT_POT_DODONGOS_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_ARMOS_POT_3] = Location::Base(RC_DODONGOS_CAVERN_MQ_ARMOS_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1758, -3194), 0x6E04, "MQ Armos Pot 3", "Dodongos Cavern MQ Armos Pot 3", RHT_POT_DODONGOS_CAVERN, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_ARMOS_POT_4] = Location::Base(RC_DODONGOS_CAVERN_MQ_ARMOS_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1223, -3197), 0x7804, "MQ Armos Pot 4", "Dodongos Cavern MQ Armos Pot 4", RHT_POT_DODONGOS_CAVERN, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(258, -3055), 0x7A04, "MQ Before Boss Pot 1", "Dodongos Cavern MQ Before Boss Pot 1", RHT_POT_DODONGOS_CAVERN, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(-265, -2499), 0x7C03, "MQ Before Boss Pot 2", "Dodongos Cavern MQ Before Boss Pot 2", RHT_POT_DODONGOS_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_1] = Location::Base(RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1663, -4311), 0x7004, "MQ Backroom Pot 1", "Dodongos Cavern MQ Backroom Pot 1", RHT_POT_DODONGOS_CAVERN, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_BACKROOM_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_2] = Location::Base(RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_DODONGOS_CAVERN, ACTOR_OBJ_TSUBO, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(1648, -4694), 0x7E04, "MQ Backroom Pot 2", "Dodongos Cavern MQ Backroom Pot 2", RHT_POT_DODONGOS_CAVERN, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_BACKROOM_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_DODONGOS_CAVERN); + locationTable[RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(1873, 2252), 0x6A03, "MQ Forest Trial Pot 1", "Ganons Castle MQ Forest Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(1726, 2326), 0x6C0F, "MQ Forest Trial Pot 2", "Ganons Castle MQ Forest Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(3544, -931), 0x7203, "MQ Water Trial Pot 1", "Ganons Castle MQ Water Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(3541, -755), 0x7409, "MQ Water Trial Pot 2", "Ganons Castle MQ Water Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(2073, -4592), 0x640E, "MQ Shadow Trial Pot 1", "Ganons Castle MQ Shadow Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(2217, -4516), 0x7009, "MQ Shadow Trial Pot 2", "Ganons Castle MQ Shadow Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-1918, -3957), 0x6E03, "MQ Fire Trial Pot 1", "Ganons Castle MQ Fire Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-2052, -3888), 0x700F, "MQ Fire Trial Pot 2", "Ganons Castle MQ Fire Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-3842, -759), 0x760E, "MQ Light Trial Pot 1", "Ganons Castle MQ Light Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-3845, -933), 0x7803, "MQ Light Trial Pot 2", "Ganons Castle MQ Light Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1] = Location::Base(RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-1402, 1414), 0x660C, "MQ Spirit Trial Pot 1", "Ganons Castle MQ Spirit Trial Pot 1", RHT_POT_GANONS_CASTLE, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2] = Location::Base(RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_GANONS_CASTLE, ACTOR_OBJ_TSUBO, SCENE_INSIDE_GANONS_CASTLE, TWO_ACTOR_PARAMS(-1256, 1500), 0x680F, "MQ Spirit Trial Pot 2", "Ganons Castle MQ Spirit Trial Pot 2", RHT_POT_GANONS_CASTLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_GANONS_CASTLE); + locationTable[RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1] = Location::Base(RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-1045, -130), 0x7003, "MQ Whispering Walls Pot 1", "Shadow Temple MQ Whispering Walls Pot 1", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2] = Location::Base(RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-1045, -240), 0x7203, "MQ Whispering Walls Pot 2", "Shadow Temple MQ Whispering Walls Pot 2", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1] = Location::Base(RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-657, -949), 0x4E03, "MQ Entrance Redead Pot 1", "Shadow Temple MQ Entrance Redead Pot 1", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2] = Location::Base(RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-713, -1016), 0x5803, "MQ Entrance Redead Pot 2", "Shadow Temple MQ Entrance Redead Pot 2", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_1] = Location::Base(RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(614, 3579), 0x4803, "MQ Falling Spikes Pot 1", "Shadow Temple MQ Falling Spikes Pot 1", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_2] = Location::Base(RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(798, 3574), 0x4A04, "MQ Falling Spikes Pot 2", "Shadow Temple MQ Falling Spikes Pot 2", RHT_POT_SHADOW_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_3] = Location::Base(RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(1173, 3707), 0x5603, "MQ Falling Spikes Pot 3", "Shadow Temple MQ Falling Spikes Pot 3", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_4] = Location::Base(RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(1173, 3605), 0x5A03, "MQ Falling Spikes Pot 4", "Shadow Temple MQ Falling Spikes Pot 4", RHT_POT_SHADOW_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1] = Location::Base(RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(4222, -916), 0x5C01, "MQ Before Boat Pot 1", "Shadow Temple MQ Before Boat Pot 1", RHT_POT_SHADOW_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2] = Location::Base(RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(4549, -922), 0x640C, "MQ Before Boat Pot 2", "Shadow Temple MQ Before Boat Pot 2", RHT_POT_SHADOW_TEMPLE, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_1] = Location::Base(RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-2400, -1470), 0x7009, "MQ After Boat Pot 1", "Shadow Temple MQ After Boat Pot 1", RHT_POT_SHADOW_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_2] = Location::Base(RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-2230, -1470), 0x7609, "MQ After Boat Pot 2", "Shadow Temple MQ After Boat Pot 2", RHT_POT_SHADOW_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_3] = Location::Base(RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-2859, -497), 0x7A0A, "MQ After Boat Pot 3", "Shadow Temple MQ After Boat Pot 3", RHT_POT_SHADOW_TEMPLE, RG_ARROWS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_4] = Location::Base(RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-2624, -492), 0x7C0E, "MQ After Boat Pot 4", "Shadow Temple MQ After Boat Pot 4", RHT_POT_SHADOW_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT] = Location::Base(RC_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-4303, -2657), 0x4C0E, "MQ Spike Baricade Pot", "Shadow Temple MQ Spike Baricade Pot", RHT_POT_SHADOW_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1] = Location::Base(RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-4575, -811), 0x660B, "MQ Dead Hand Pot 1", "Shadow Temple MQ Dead Hand Pot 1", RHT_POT_SHADOW_TEMPLE, RG_BOMBS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2] = Location::Base(RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SHADOW_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(-4036, -811), 0x680A, "MQ Dead Hand Pot 2", "Shadow Temple MQ Dead Hand Pot 2", RHT_POT_SHADOW_TEMPLE, RG_ARROWS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SHADOW_TEMPLE); + locationTable[RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1] = Location::Base(RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(339, -377), 0x4E09, "MQ Inner Lobby Pot 1", "Bottom Of The Well MQ Inner Lobby Pot 1", RHT_POT_BOTTOM_OF_THE_WELL, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2] = Location::Base(RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(416, -377), 0x500B, "MQ Inner Lobby Pot 2", "Bottom Of The Well MQ Inner Lobby Pot 2", RHT_POT_BOTTOM_OF_THE_WELL, RG_BOMBS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3] = Location::Base(RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(269, -376), 0x5203, "MQ Inner Lobby Pot 3", "Bottom Of The Well MQ Inner Lobby Pot 3", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT] = Location::Base(RC_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT, RCQUEST_MQ, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(421, -174), 0x5412, "MQ Outer Lobby Pot", "Bottom Of The Well MQ Outer Lobby Pot", RHT_POT_BOTTOM_OF_THE_WELL, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_1] = Location::Base(RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(288, -1240), 0x4803, "MQ South Key Pot 1", "Bottom Of The Well MQ South Key Pot 1", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_2] = Location::Base(RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(438, -1234), 0x4A03, "MQ South Key Pot 2", "Bottom Of The Well MQ South Key Pot 2", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_3] = Location::Base(RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_BOTTOM_OF_THE_WELL, ACTOR_OBJ_TSUBO, SCENE_BOTTOM_OF_THE_WELL, TWO_ACTOR_PARAMS(444, -1114), 0x4C03, "MQ South Key Pot 3", "Bottom Of The Well MQ South Key Pot 3", RHT_POT_BOTTOM_OF_THE_WELL, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_BOTTOM_OF_THE_WELL); + locationTable[RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_1] = Location::Base(RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-357, 957), 0x560F, "MQ Entrance Pot 1", "Fire Temple MQ Entrance Pot 1", RHT_POT_FIRE_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_ENTRANCE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_2] = Location::Base(RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(356, 959), 0x580F, "MQ Entrance Pot 2", "Fire Temple MQ Entrance Pot 2", RHT_POT_FIRE_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_ENTRANCE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1] = Location::Base(RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-1426, -711), 0x5A0E, "MQ Outside Boss Pot 1", "Fire Temple MQ Outside Boss Pot 1", RHT_POT_FIRE_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2] = Location::Base(RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-1425, -660), 0x5C0A, "MQ Outside Boss Pot 2", "Fire Temple MQ Outside Boss Pot 2", RHT_POT_FIRE_TEMPLE, RG_ARROWS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_LAVA_POT_1] = Location::Base(RC_FIRE_TEMPLE_MQ_LAVA_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(1646, -1260), 0x4009, "MQ Lava Pot 1", "Fire Temple MQ Lava Pot 1", RHT_POT_FIRE_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_LAVA_POT_2] = Location::Base(RC_FIRE_TEMPLE_MQ_LAVA_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(2226, -809), 0x420F, "MQ Lava Pot 2", "Fire Temple MQ Lava Pot 2", RHT_POT_FIRE_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_LAVA_POT_3] = Location::Base(RC_FIRE_TEMPLE_MQ_LAVA_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(1634, 1475), 0x440F, "MQ Lava Pot 3", "Fire Temple MQ Lava Pot 3", RHT_POT_FIRE_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1] = Location::Base(RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(845, -1591), 0x6E12, "MQ Lava Torch Pot 1", "Fire Temple MQ Lava Torch Pot 1", RHT_POT_FIRE_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2] = Location::Base(RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(901, -1593), 0x700F, "MQ Lava Torch Pot 2", "Fire Temple MQ Lava Torch Pot 2", RHT_POT_FIRE_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1] = Location::Base(RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(1756, -155), 0x7212, "MQ Above Lava Pot 1", "Fire Temple MQ Above Lava Pot 1", RHT_POT_FIRE_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2] = Location::Base(RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(1819, -82), 0x7409, "MQ Above Lava Pot 2", "Fire Temple MQ Above Lava Pot 2", RHT_POT_FIRE_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3] = Location::Base(RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(1789, -122), 0x760B, "MQ Above Lava Pot 3", "Fire Temple MQ Above Lava Pot 3", RHT_POT_FIRE_TEMPLE, RG_BOMBS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1] = Location::Base(RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(1493, 386), 0x5209, "MQ Flame Wall Pot 1", "Fire Temple MQ Flame Wall Pot 1", RHT_POT_FIRE_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2] = Location::Base(RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(1445, 445), 0x5409, "MQ Flame Wall Pot 2", "Fire Temple MQ Flame Wall Pot 2", RHT_POT_FIRE_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_1] = Location::Base(RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2217, -163), 0x4604, "MQ Fire Maze Pot 1", "Fire Temple MQ Fire Maze Pot 1", RHT_POT_FIRE_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_2] = Location::Base(RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2657, -591), 0x4803, "MQ Fire Maze Pot 2", "Fire Temple MQ Fire Maze Pot 2", RHT_POT_FIRE_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_3] = Location::Base(RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-1849, -1114), 0x4A03, "MQ Fire Maze Pot 3", "Fire Temple MQ Fire Maze Pot 3", RHT_POT_FIRE_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_4] = Location::Base(RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2110, -646), 0x4C04, "MQ Fire Maze Pot 4", "Fire Temple MQ Fire Maze Pot 4", RHT_POT_FIRE_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_5] = Location::Base(RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_5, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2319, 838), 0x4E12, "MQ Fire Maze Pot 5", "Fire Temple MQ Fire Maze Pot 5", RHT_POT_FIRE_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_6] = Location::Base(RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_6, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(-2285, 803), 0x500B, "MQ Fire Maze Pot 6", "Fire Temple MQ Fire Maze Pot 6", RHT_POT_FIRE_TEMPLE, RG_BOMBS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_6), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1] = Location::Base(RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(187, -1449), 0x5E12, "MQ Before Mini Boss Pot 1", "Fire Temple MQ Before Mini Boss Pot 1", RHT_POT_FIRE_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2] = Location::Base(RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(188, -1514), 0x6004, "MQ Before Mini Boss Pot 2", "Fire Temple MQ Before Mini Boss Pot 2", RHT_POT_FIRE_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3] = Location::Base(RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(487, -1450), 0x6212, "MQ Before Mini Boss Pot 3", "Fire Temple MQ Before Mini Boss Pot 3", RHT_POT_FIRE_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4] = Location::Base(RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(486, -1515), 0x6404, "MQ Before Mini Boss Pot 4", "Fire Temple MQ Before Mini Boss Pot 4", RHT_POT_FIRE_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5] = Location::Base(RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(38, -1179), 0x6604, "MQ Before Mini Boss Pot 5", "Fire Temple MQ Before Mini Boss Pot 5", RHT_POT_FIRE_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6] = Location::Base(RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(42, -1298), 0x6804, "MQ Before Mini Boss Pot 6", "Fire Temple MQ Before Mini Boss Pot 6", RHT_POT_FIRE_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7] = Location::Base(RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(520, -943), 0x6A12, "MQ Before Mini Boss Pot 7", "Fire Temple MQ Before Mini Boss Pot 7", RHT_POT_FIRE_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8] = Location::Base(RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8, RCQUEST_MQ, RCTYPE_POT, RCAREA_FIRE_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_FIRE_TEMPLE, TWO_ACTOR_PARAMS(35, -946), 0x6C12, "MQ Before Mini Boss Pot 8", "Fire Temple MQ Before Mini Boss Pot 8", RHT_POT_FIRE_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8), SpoilerCollectionCheckGroup::GROUP_DUNGEON_FIRE_TEMPLE); + locationTable[RC_ICE_CAVERN_MQ_ENTRANCE_POT] = Location::Base(RC_ICE_CAVERN_MQ_ENTRANCE_POT, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(248, 2287), 0x4003, "MQ Entrance Pot", "Ice Cavern MQ Entrance Pot", RHT_POT_ICE_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_ENTRANCE_POT), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1] = Location::Base(RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(51, 718), 0x4A03, "MQ First Crystal Pot 1", "Ice Cavern MQ First Crystal Pot 1", RHT_POT_ICE_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2] = Location::Base(RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(52, 768), 0x4C03, "MQ First Crystal Pot 2", "Ice Cavern MQ First Crystal Pot 2", RHT_POT_ICE_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1] = Location::Base(RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(433, -732), 0x4E12, "MQ Early Wolfos Pot 1", "Ice Cavern MQ Early Wolfos Pot 1", RHT_POT_ICE_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2] = Location::Base(RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(569, -175), 0x5001, "MQ Early Wolfos Pot 2", "Ice Cavern MQ Early Wolfos Pot 2", RHT_POT_ICE_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3] = Location::Base(RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(521, -131), 0x5203, "MQ Early Wolfos Pot 3", "Ice Cavern MQ Early Wolfos Pot 3", RHT_POT_ICE_CAVERN, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4] = Location::Base(RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(138, -672), 0x5812, "MQ Early Wolfos Pot 4", "Ice Cavern MQ Early Wolfos Pot 4", RHT_POT_ICE_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1] = Location::Base(RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(-1352, 639), 0x5412, "MQ Push Block Pot 1", "Ice Cavern MQ Push Block Pot 1", RHT_POT_ICE_CAVERN, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2] = Location::Base(RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(-1396, 596), 0x560E, "MQ Push Block Pot 2", "Ice Cavern MQ Push Block Pot 2", RHT_POT_ICE_CAVERN, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_MQ_COMPASS_POT_1] = Location::Base(RC_ICE_CAVERN_MQ_COMPASS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(902, -2720), 0x6E0B, "MQ Compass Pot 1", "Ice Cavern MQ Compass Pot 1", RHT_POT_ICE_CAVERN, RG_BOMBS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_COMPASS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_ICE_CAVERN_MQ_COMPASS_POT_2] = Location::Base(RC_ICE_CAVERN_MQ_COMPASS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_ICE_CAVERN, ACTOR_OBJ_TSUBO, SCENE_ICE_CAVERN, TWO_ACTOR_PARAMS(451, -2726), 0x6C0B, "MQ Compass Pot 2", "Ice Cavern MQ Compass Pot 2", RHT_POT_ICE_CAVERN, RG_BOMBS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_ICE_CAVERN_MQ_COMPASS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_ICE_CAVERN); + locationTable[RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-255, 742), 0x4203, "MQ Entrance Pot 1", "Spirit Temple MQ Entrance Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(306, 682), 0x6403, "MQ Entrance Pot 2", "Spirit Temple MQ Entrance Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3] = Location::Base(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-297, 687), 0x6204, "MQ Entrance Pot 3", "Spirit Temple MQ Entrance Pot 3", RHT_POT_SPIRIT_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4] = Location::Base(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(260, 735), 0x440E, "MQ Entrance Pot 4", "Spirit Temple MQ Entrance Pot 4", RHT_POT_SPIRIT_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-894, -50), 0x4004, "MQ Child Slugma Pot", "Spirit Temple MQ Child Slugma Pot", RHT_POT_SPIRIT_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-382, -1256), 0x6803, "MQ Child Gibdo Pot 1", "Spirit Temple MQ Child Gibdo Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-381, -1207), 0x660E, "MQ Child Gibdo Pot 2", "Spirit Temple MQ Child Gibdo Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-1035, -1240), 0x460E, "MQ Child Like Like Pot", "Spirit Temple MQ Child Like Like Pot", RHT_POT_SPIRIT_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-1166, -1931), 0x5C03, "MQ Child Stalfos Pot 1", "Spirit Temple MQ Child Stalfos Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-959, -1930), 0x5E03, "MQ Child Stalfos Pot 2", "Spirit Temple MQ Child Stalfos Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-853, -1837), 0x6010, "MQ Child Stalfos Pot 3", "Spirit Temple MQ Child Stalfos Pot 3", RHT_POT_SPIRIT_TEMPLE, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-1250, -1852), 0x5A12, "MQ Child Stalfos Pot 4", "Spirit Temple MQ Child Stalfos Pot 4", RHT_POT_SPIRIT_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(639, -1224), 0x4E03, "MQ Central Chamber Pot 1", "Spirit Temple MQ Central Chamber Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-521, -1576), 0x4C08, "MQ Central Chamber Pot 2", "Spirit Temple MQ Central Chamber Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_ARROWS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_3] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-595, -1576), 0x480E, "MQ Central Chamber Pot 3", "Spirit Temple MQ Central Chamber Pot 3", RHT_POT_SPIRIT_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_4] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-559, -1209), 0x6A0F, "MQ Central Chamber Pot 4", "Spirit Temple MQ Central Chamber Pot 4", RHT_POT_SPIRIT_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_5] = Location::Base(RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_5, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(704, -1224), 0x5210, "MQ Central Chamber Pot 5", "Spirit Temple MQ Central Chamber Pot 5", RHT_POT_SPIRIT_TEMPLE, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-1276, 432), 0x5603, "MQ Sun Blocks Pot 1", "Spirit Temple MQ Sun Blocks Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-1635, -446), 0x5410, "MQ Sun Blocks Pot 2", "Spirit Temple MQ Sun Blocks Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_DEKU_SEEDS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(829, 250), 0x0203, "MQ Long Climb Pot 1", "Spirit Temple MQ Long Climb Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(531, 249), 0x0403, "MQ Long Climb Pot 2", "Spirit Temple MQ Long Climb Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(244, -893), 0x7803, "MQ Big Mirror Pot 1", "Spirit Temple MQ Big Mirror Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-122, -741), 0x7A03, "MQ Big Mirror Pot 2", "Spirit Temple MQ Big Mirror Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3] = Location::Base(RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(250, -741), 0x7C03, "MQ Big Mirror Pot 3", "Spirit Temple MQ Big Mirror Pot 3", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4] = Location::Base(RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-123, -892), 0x760F, "MQ Big Mirror Pot 4", "Spirit Temple MQ Big Mirror Pot 4", RHT_POT_SPIRIT_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(781, -841), 0x7403, "MQ Before Mirror Pot 1", "Spirit Temple MQ Before Mirror Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(587, -844), 0x7204, "MQ Before Mirror Pot 2", "Spirit Temple MQ Before Mirror Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1] = Location::Base(RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(1204, -910), 0x6E03, "MQ Early Adult Pot 1", "Spirit Temple MQ Early Adult Pot 1", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2] = Location::Base(RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_SPIRIT_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(1204, -1028), 0x7003, "MQ Early Adult Pot 2", "Spirit Temple MQ Early Adult Pot 2", RHT_POT_SPIRIT_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_SPIRIT_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_1] = Location::Base(RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(512, 579), 0x4402, "MQ Central Gate Pot 1", "Water Temple MQ Central Gate Pot 1", RHT_POT_WATER_TEMPLE, RG_RED_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_2] = Location::Base(RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(602, 1022), 0x4609, "MQ Central Gate Pot 2", "Water Temple MQ Central Gate Pot 2", RHT_POT_WATER_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_3] = Location::Base(RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(789, 947), 0x540E, "MQ Central Gate Pot 3", "Water Temple MQ Central Gate Pot 3", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_4] = Location::Base(RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(768, 565), 0x6E03, "MQ Central Gate Pot 4", "Water Temple MQ Central Gate Pot 4", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_5] = Location::Base(RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_5, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(767, 517), 0x7E03, "MQ Central Gate Pot 5", "Water Temple MQ Central Gate Pot 5", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1] = Location::Base(RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(1222, -617), 0x4003, "MQ Storage Room A Pot 1", "Water Temple MQ Storage Room A Pot 1", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2] = Location::Base(RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(1122, -617), 0x4E03, "MQ Storage Room A Pot 2", "Water Temple MQ Storage Room A Pot 2", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3] = Location::Base(RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(1172, -617), 0x5003, "MQ Storage Room A Pot 3", "Water Temple MQ Storage Room A Pot 3", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1] = Location::Base(RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-3188, -1628), 0x560E, "MQ Before Dark Link Pot 1", "Water Temple MQ Before Dark Link Pot 1", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2] = Location::Base(RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-3056, -1626), 0x580E, "MQ Before Dark Link Pot 2", "Water Temple MQ Before Dark Link Pot 2", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_3] = Location::Base(RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-3500, -751), 0x5A0C, "MQ Before Dark Link Pot 3", "Water Temple MQ Before Dark Link Pot 3", RHT_POT_WATER_TEMPLE, RG_DEKU_NUTS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_4] = Location::Base(RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-3500, -686), 0x5C12, "MQ Before Dark Link Pot 4", "Water Temple MQ Before Dark Link Pot 4", RHT_POT_WATER_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_5] = Location::Base(RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_5, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-3500, -810), 0x6012, "MQ Before Dark Link Pot 5", "Water Temple MQ Before Dark Link Pot 5", RHT_POT_WATER_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_5), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1] = Location::Base(RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-3072, -4024), 0x640A, "MQ After Dark Link Pot 1", "Water Temple MQ After Dark Link Pot 1", RHT_POT_WATER_TEMPLE, RG_ARROWS_30, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2] = Location::Base(RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-3169, -4023), 0x6612, "MQ After Dark Link Pot 2", "Water Temple MQ After Dark Link Pot 2", RHT_POT_WATER_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_RIVER_POT_1] = Location::Base(RC_WATER_TEMPLE_MQ_RIVER_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2226, -2487), 0x5E09, "MQ River Pot 1", "Water Temple MQ River Pot 1", RHT_POT_WATER_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_RIVER_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_RIVER_POT_2] = Location::Base(RC_WATER_TEMPLE_MQ_RIVER_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2184, -2456), 0x6212, "MQ River Pot 2", "Water Temple MQ River Pot 2", RHT_POT_WATER_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_RIVER_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1] = Location::Base(RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(28, -3817), 0x7604, "MQ Mini Dodongo Pot 1", "Water Temple MQ Mini Dodongo Pot 1", RHT_POT_WATER_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2] = Location::Base(RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-28, -3817), 0x7804, "MQ Mini Dodongo Pot 2", "Water Temple MQ Mini Dodongo Pot 2", RHT_POT_WATER_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1] = Location::Base(RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-1417, -3025), 0x7A12, "MQ Storage Room B Pot 1", "Water Temple MQ Storage Room B Pot 1", RHT_POT_WATER_TEMPLE, RG_GREEN_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2] = Location::Base(RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-1150, -3031), 0x7C0E, "MQ Storage Room B Pot 2", "Water Temple MQ Storage Room B Pot 2", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1] = Location::Base(RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-989, 255), 0x7003, "MQ GS Storage Room Pot 1", "Water Temple MQ GS Storage Room Pot 1", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2] = Location::Base(RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-1026, 257), 0x7203, "MQ GS Storage Room Pot 2", "Water Temple MQ GS Storage Room Pot 2", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3] = Location::Base(RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-1062, 256), 0x7403, "MQ GS Storage Room Pot 3", "Water Temple MQ GS Storage Room Pot 3", RHT_POT_WATER_TEMPLE, RG_RECOVERY_HEART, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1] = Location::Base(RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(1123, 62), 0x4A0E, "MQ Lower Torches Pot 1", "Water Temple MQ Lower Torches Pot 1", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2] = Location::Base(RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(1123, 293), 0x4C0E, "MQ Lower Torches Pot 2", "Water Temple MQ Lower Torches Pot 2", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_1] = Location::Base(RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_1, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2314, 770), 0x4204, "MQ Lowest GS Pot 1", "Water Temple MQ Lowest GS Pot 1", RHT_POT_WATER_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_1), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_2] = Location::Base(RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_2, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2314, 808), 0x4804, "MQ Lowest GS Pot 2", "Water Temple MQ Lowest GS Pot 2", RHT_POT_WATER_TEMPLE, RG_BOMBS_5, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_2), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_3] = Location::Base(RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_3, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2313, 944), 0x5209, "MQ Lowest GS Pot 3", "Water Temple MQ Lowest GS Pot 3", RHT_POT_WATER_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_3), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_4] = Location::Base(RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_4, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-2313, 905), 0x6A09, "MQ Lowest GS Pot 4", "Water Temple MQ Lowest GS Pot 4", RHT_POT_WATER_TEMPLE, RG_ARROWS_10, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_4), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + locationTable[RC_WATER_TEMPLE_MQ_BOSS_KEY_POT] = Location::Base(RC_WATER_TEMPLE_MQ_BOSS_KEY_POT, RCQUEST_MQ, RCTYPE_POT, RCAREA_WATER_TEMPLE, ACTOR_OBJ_TSUBO, SCENE_WATER_TEMPLE, TWO_ACTOR_PARAMS(-1033, -1569), 0x680E, "MQ Boss Key Pot", "Water Temple MQ Boss Key Pot", RHT_POT_WATER_TEMPLE, RG_BLUE_RUPEE, { Category::cPot }, SpoilerCollectionCheck::RandomizerInf(RAND_INF_WATER_TEMPLE_MQ_BOSS_KEY_POT), SpoilerCollectionCheckGroup::GROUP_DUNGEON_WATER_TEMPLE); + + /*------------------------------- --- SHOPS --- 8 6 2 4 diff --git a/soh/soh/Enhancements/randomizer/logic.cpp b/soh/soh/Enhancements/randomizer/logic.cpp index edb17df0c88..2e9d44f6496 100644 --- a/soh/soh/Enhancements/randomizer/logic.cpp +++ b/soh/soh/Enhancements/randomizer/logic.cpp @@ -610,6 +610,7 @@ namespace Rando { CanFish = ChildsWallet && (HasItem(RG_FISHING_POLE) || !ctx->GetOption(RSK_SHUFFLE_FISHING_POLE)); CanGetChildFish = CanFish && (IsChild || (IsAdult && !ctx->GetOption(RSK_FISHSANITY_AGE_SPLIT))); CanGetAdultFish = CanFish && IsAdult && ctx->GetOption(RSK_FISHSANITY_AGE_SPLIT); + CanBreakPots = true; GuaranteeTradePath = ctx->GetOption(RSK_SHUFFLE_INTERIOR_ENTRANCES) || ctx->GetOption(RSK_SHUFFLE_OVERWORLD_ENTRANCES) || ctx->GetTrickOption(RT_DMT_BOLERO_BIGGORON) || CanBlastOrSmash || StopGCRollingGoronAsAdult; //GuaranteeHint = (hints == "Mask" && MaskofTruth) || (hints == "Agony") || (hints != "Mask" && hints != "Agony"); @@ -1034,6 +1035,7 @@ namespace Rando { CanGetAdultFish = false; FishingPole = false; CanFish = false; + CanBreakPots = false; BaseHearts = ctx->GetOption(RSK_STARTING_HEARTS).Value() + 1; Hearts = 0; diff --git a/soh/soh/Enhancements/randomizer/logic.h b/soh/soh/Enhancements/randomizer/logic.h index 6a669d7ebb0..7eb31cf730c 100644 --- a/soh/soh/Enhancements/randomizer/logic.h +++ b/soh/soh/Enhancements/randomizer/logic.h @@ -278,6 +278,7 @@ class Logic { bool CanGetChildFish = false; bool CanGetAdultFish = false; bool CanFish = false; + bool CanBreakPots = false; uint8_t OcarinaButtons = 0; uint8_t BaseHearts = 0; diff --git a/soh/soh/Enhancements/randomizer/option.cpp b/soh/soh/Enhancements/randomizer/option.cpp index 36fdd1f8ba4..6e89993fc0d 100644 --- a/soh/soh/Enhancements/randomizer/option.cpp +++ b/soh/soh/Enhancements/randomizer/option.cpp @@ -477,7 +477,7 @@ bool OptionGroup::RenderImGui() const { // NOLINT(*-no-recursion) ImGui::Unindent(); } if (option->HasFlag(IMFLAG_SEPARATOR_BOTTOM)) { - UIWidgets::PaddedSeparator(); + UIWidgets::PaddedSeparator(false, true); } } } diff --git a/soh/soh/Enhancements/randomizer/option_descriptions.cpp b/soh/soh/Enhancements/randomizer/option_descriptions.cpp index 597b46db605..e603739fefb 100644 --- a/soh/soh/Enhancements/randomizer/option_descriptions.cpp +++ b/soh/soh/Enhancements/randomizer/option_descriptions.cpp @@ -247,6 +247,18 @@ void Settings::CreateOptionDescriptions() { "\n" "The Gerudo Card is required to enter the Gerudo Training Grounds, opening " "the gate to Haunted Wasteland and the Horseback Archery minigame."; + mOptionDescriptions[RSK_SHUFFLE_POTS] = "Freestanding pots will drop a randomized item the first time they're broken and collected." + " Pots will have a different appearance when they hold a randomized item.\n" + "With this option enabled, Ganon's boss key door is moved further up the stairs to\n" + "allow access to the pots before obtaining Ganon's Boss Key.\n" + "\n" + "Off - Pots will not be shuffled.\n" + "\n" + "Dungeons - Only shuffle pots that are within dungeons.\n" + "\n" + "Overworld - Only shuffle pots that are outside of dungeons.\n" + "\n" + "All pots - Shuffle all pots."; mOptionDescriptions[RSK_SHUFFLE_FISHING_POLE] = "Shuffles the fishing pole into the item pool.\n" "\n" "The fishing pole is required to play the fishing pond minigame."; diff --git a/soh/soh/Enhancements/randomizer/randomizer.cpp b/soh/soh/Enhancements/randomizer/randomizer.cpp index 066faca7eed..335ec4f2d5f 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer.cpp @@ -1240,139 +1240,677 @@ bool Randomizer::CheckContainsVanillaItem(RandomizerCheck randoCheck) { // There has been some talk about potentially just using the RC identifier to store flags rather than randomizer inf, so // for now we're not going to store randomzierInf in the randomizer check objects, we're just going to map them 1:1 here std::map rcToRandomizerInf = { - { RC_KF_LINKS_HOUSE_COW, RAND_INF_COWS_MILKED_KF_LINKS_HOUSE_COW }, - { RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT, RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT }, - { RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT, RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT }, - { RC_LW_DEKU_SCRUB_NEAR_BRIDGE, RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_BRIDGE }, - { RC_LW_DEKU_SCRUB_GROTTO_REAR, RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_GROTTO_REAR }, - { RC_LW_DEKU_SCRUB_GROTTO_FRONT, RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_GROTTO_FRONT }, - { RC_SFM_DEKU_SCRUB_GROTTO_REAR, RAND_INF_SCRUBS_PURCHASED_SFM_DEKU_SCRUB_GROTTO_REAR }, - { RC_SFM_DEKU_SCRUB_GROTTO_FRONT, RAND_INF_SCRUBS_PURCHASED_SFM_DEKU_SCRUB_GROTTO_FRONT }, - { RC_HF_DEKU_SCRUB_GROTTO, RAND_INF_SCRUBS_PURCHASED_HF_DEKU_SCRUB_GROTTO }, - { RC_HF_COW_GROTTO_COW, RAND_INF_COWS_MILKED_HF_COW_GROTTO_COW }, - { RC_LH_DEKU_SCRUB_GROTTO_LEFT, RAND_INF_SCRUBS_PURCHASED_LH_DEKU_SCRUB_GROTTO_LEFT }, - { RC_LH_DEKU_SCRUB_GROTTO_RIGHT, RAND_INF_SCRUBS_PURCHASED_LH_DEKU_SCRUB_GROTTO_RIGHT }, - { RC_LH_DEKU_SCRUB_GROTTO_CENTER, RAND_INF_SCRUBS_PURCHASED_LH_DEKU_SCRUB_GROTTO_CENTER }, - { RC_GV_DEKU_SCRUB_GROTTO_REAR, RAND_INF_SCRUBS_PURCHASED_GV_DEKU_SCRUB_GROTTO_REAR }, - { RC_GV_DEKU_SCRUB_GROTTO_FRONT, RAND_INF_SCRUBS_PURCHASED_GV_DEKU_SCRUB_GROTTO_FRONT }, - { RC_GV_COW, RAND_INF_COWS_MILKED_GV_COW }, - { RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR, RAND_INF_SCRUBS_PURCHASED_COLOSSUS_DEKU_SCRUB_GROTTO_REAR }, - { RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT, RAND_INF_SCRUBS_PURCHASED_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT }, - { RC_KAK_IMPAS_HOUSE_COW, RAND_INF_COWS_MILKED_KAK_IMPAS_HOUSE_COW }, - { RC_DMT_COW_GROTTO_COW, RAND_INF_COWS_MILKED_DMT_COW_GROTTO_COW }, - { RC_GC_DEKU_SCRUB_GROTTO_LEFT, RAND_INF_SCRUBS_PURCHASED_GC_DEKU_SCRUB_GROTTO_LEFT }, - { RC_GC_DEKU_SCRUB_GROTTO_RIGHT, RAND_INF_SCRUBS_PURCHASED_GC_DEKU_SCRUB_GROTTO_RIGHT }, - { RC_GC_DEKU_SCRUB_GROTTO_CENTER, RAND_INF_SCRUBS_PURCHASED_GC_DEKU_SCRUB_GROTTO_CENTER }, - { RC_DMC_DEKU_SCRUB, RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB }, - { RC_DMC_DEKU_SCRUB_GROTTO_LEFT, RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB_GROTTO_LEFT }, - { RC_DMC_DEKU_SCRUB_GROTTO_RIGHT, RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB_GROTTO_RIGHT }, - { RC_DMC_DEKU_SCRUB_GROTTO_CENTER, RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB_GROTTO_CENTER }, - { RC_ZR_DEKU_SCRUB_GROTTO_REAR, RAND_INF_SCRUBS_PURCHASED_ZR_DEKU_SCRUB_GROTTO_REAR }, - { RC_ZR_DEKU_SCRUB_GROTTO_FRONT, RAND_INF_SCRUBS_PURCHASED_ZR_DEKU_SCRUB_GROTTO_FRONT }, - { RC_LLR_DEKU_SCRUB_GROTTO_LEFT, RAND_INF_SCRUBS_PURCHASED_LLR_DEKU_SCRUB_GROTTO_LEFT }, - { RC_LLR_DEKU_SCRUB_GROTTO_RIGHT, RAND_INF_SCRUBS_PURCHASED_LLR_DEKU_SCRUB_GROTTO_RIGHT }, - { RC_LLR_DEKU_SCRUB_GROTTO_CENTER, RAND_INF_SCRUBS_PURCHASED_LLR_DEKU_SCRUB_GROTTO_CENTER }, - { RC_LLR_STABLES_LEFT_COW, RAND_INF_COWS_MILKED_LLR_STABLES_LEFT_COW }, - { RC_LLR_STABLES_RIGHT_COW, RAND_INF_COWS_MILKED_LLR_STABLES_RIGHT_COW }, - { RC_LLR_TOWER_LEFT_COW, RAND_INF_COWS_MILKED_LLR_TOWER_LEFT_COW }, - { RC_LLR_TOWER_RIGHT_COW, RAND_INF_COWS_MILKED_LLR_TOWER_RIGHT_COW }, - { RC_DEKU_TREE_MQ_DEKU_SCRUB, RAND_INF_SCRUBS_PURCHASED_DEKU_TREE_MQ_DEKU_SCRUB }, - { RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT }, - { RC_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS }, - { RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT }, - { RC_DODONGOS_CAVERN_DEKU_SCRUB_LOBBY, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_LOBBY }, - { RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR }, - { RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT }, - { RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE }, - { RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_SIDE_ROOM_NEAR_LOWER_LIZALFOS, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_SIDE_ROOM_NEAR_LOWER_LIZALFOS }, - { RC_JABU_JABUS_BELLY_DEKU_SCRUB, RAND_INF_SCRUBS_PURCHASED_JABU_JABUS_BELLY_DEKU_SCRUB }, - { RC_JABU_JABUS_BELLY_MQ_COW, RAND_INF_COWS_MILKED_JABU_JABUS_BELLY_MQ_COW }, - { RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT }, - { RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT }, - { RC_GANONS_CASTLE_DEKU_SCRUB_RIGHT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_RIGHT }, - { RC_GANONS_CASTLE_DEKU_SCRUB_LEFT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_LEFT }, - { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT }, - { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_LEFT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_LEFT }, - { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER }, - { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT }, - { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT }, - { RC_KF_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_1 }, - { RC_KF_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_2 }, - { RC_KF_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_3 }, - { RC_KF_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_4 }, - { RC_KF_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_5 }, - { RC_KF_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_6 }, - { RC_KF_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_7 }, - { RC_KF_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_8 }, - { RC_GC_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_1 }, - { RC_GC_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_2 }, - { RC_GC_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_3 }, - { RC_GC_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_4 }, - { RC_GC_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_5 }, - { RC_GC_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_6 }, - { RC_GC_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_7 }, - { RC_GC_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_8 }, - { RC_ZD_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_1 }, - { RC_ZD_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_2 }, - { RC_ZD_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_3 }, - { RC_ZD_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_4 }, - { RC_ZD_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_5 }, - { RC_ZD_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_6 }, - { RC_ZD_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_7 }, - { RC_ZD_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_8 }, - { RC_KAK_BAZAAR_ITEM_1, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_1 }, - { RC_KAK_BAZAAR_ITEM_2, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_2 }, - { RC_KAK_BAZAAR_ITEM_3, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_3 }, - { RC_KAK_BAZAAR_ITEM_4, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_4 }, - { RC_KAK_BAZAAR_ITEM_5, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_5 }, - { RC_KAK_BAZAAR_ITEM_6, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_6 }, - { RC_KAK_BAZAAR_ITEM_7, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_7 }, - { RC_KAK_BAZAAR_ITEM_8, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_8 }, - { RC_KAK_POTION_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_1 }, - { RC_KAK_POTION_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_2 }, - { RC_KAK_POTION_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_3 }, - { RC_KAK_POTION_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_4 }, - { RC_KAK_POTION_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_5 }, - { RC_KAK_POTION_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_6 }, - { RC_KAK_POTION_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_7 }, - { RC_KAK_POTION_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_8 }, - { RC_MARKET_BAZAAR_ITEM_1, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_1 }, - { RC_MARKET_BAZAAR_ITEM_2, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_2 }, - { RC_MARKET_BAZAAR_ITEM_3, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_3 }, - { RC_MARKET_BAZAAR_ITEM_4, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_4 }, - { RC_MARKET_BAZAAR_ITEM_5, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_5 }, - { RC_MARKET_BAZAAR_ITEM_6, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_6 }, - { RC_MARKET_BAZAAR_ITEM_7, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_7 }, - { RC_MARKET_BAZAAR_ITEM_8, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_8 }, - { RC_MARKET_POTION_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_1 }, - { RC_MARKET_POTION_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_2 }, - { RC_MARKET_POTION_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_3 }, - { RC_MARKET_POTION_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_4 }, - { RC_MARKET_POTION_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_5 }, - { RC_MARKET_POTION_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_6 }, - { RC_MARKET_POTION_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_7 }, - { RC_MARKET_POTION_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_8 }, - { RC_MARKET_BOMBCHU_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_1 }, - { RC_MARKET_BOMBCHU_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_2 }, - { RC_MARKET_BOMBCHU_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_3 }, - { RC_MARKET_BOMBCHU_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_4 }, - { RC_MARKET_BOMBCHU_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_5 }, - { RC_MARKET_BOMBCHU_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_6 }, - { RC_MARKET_BOMBCHU_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_7 }, - { RC_MARKET_BOMBCHU_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_8 }, - { RC_TOT_MASTER_SWORD, RAND_INF_TOT_MASTER_SWORD }, - { RC_GC_MEDIGORON, RAND_INF_MERCHANTS_MEDIGORON }, - { RC_KAK_GRANNYS_SHOP, RAND_INF_MERCHANTS_GRANNYS_SHOP }, - { RC_WASTELAND_BOMBCHU_SALESMAN, RAND_INF_MERCHANTS_CARPET_SALESMAN }, - { RC_LW_TRADE_COJIRO, RAND_INF_ADULT_TRADES_LW_TRADE_COJIRO }, - { RC_GV_TRADE_SAW, RAND_INF_ADULT_TRADES_GV_TRADE_SAW }, - { RC_DMT_TRADE_BROKEN_SWORD, RAND_INF_ADULT_TRADES_DMT_TRADE_BROKEN_SWORD }, - { RC_LH_TRADE_FROG, RAND_INF_ADULT_TRADES_LH_TRADE_FROG }, - { RC_DMT_TRADE_EYEDROPS, RAND_INF_ADULT_TRADES_DMT_TRADE_EYEDROPS }, - { RC_LH_CHILD_FISHING, RAND_INF_CHILD_FISHING }, - { RC_LH_ADULT_FISHING, RAND_INF_ADULT_FISHING }, - { RC_MARKET_10_BIG_POES, RAND_INF_10_BIG_POES }, - { RC_KAK_100_GOLD_SKULLTULA_REWARD, RAND_INF_KAK_100_GOLD_SKULLTULA_REWARD }, + { RC_KF_LINKS_HOUSE_COW, RAND_INF_COWS_MILKED_KF_LINKS_HOUSE_COW }, + { RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT, RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_RIGHT }, + { RC_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT, RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_DEKU_THEATER_LEFT }, + { RC_LW_DEKU_SCRUB_NEAR_BRIDGE, RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_BRIDGE }, + { RC_LW_DEKU_SCRUB_GROTTO_REAR, RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_GROTTO_REAR }, + { RC_LW_DEKU_SCRUB_GROTTO_FRONT, RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_GROTTO_FRONT }, + { RC_SFM_DEKU_SCRUB_GROTTO_REAR, RAND_INF_SCRUBS_PURCHASED_SFM_DEKU_SCRUB_GROTTO_REAR }, + { RC_SFM_DEKU_SCRUB_GROTTO_FRONT, RAND_INF_SCRUBS_PURCHASED_SFM_DEKU_SCRUB_GROTTO_FRONT }, + { RC_HF_DEKU_SCRUB_GROTTO, RAND_INF_SCRUBS_PURCHASED_HF_DEKU_SCRUB_GROTTO }, + { RC_HF_COW_GROTTO_COW, RAND_INF_COWS_MILKED_HF_COW_GROTTO_COW }, + { RC_LH_DEKU_SCRUB_GROTTO_LEFT, RAND_INF_SCRUBS_PURCHASED_LH_DEKU_SCRUB_GROTTO_LEFT }, + { RC_LH_DEKU_SCRUB_GROTTO_RIGHT, RAND_INF_SCRUBS_PURCHASED_LH_DEKU_SCRUB_GROTTO_RIGHT }, + { RC_LH_DEKU_SCRUB_GROTTO_CENTER, RAND_INF_SCRUBS_PURCHASED_LH_DEKU_SCRUB_GROTTO_CENTER }, + { RC_GV_DEKU_SCRUB_GROTTO_REAR, RAND_INF_SCRUBS_PURCHASED_GV_DEKU_SCRUB_GROTTO_REAR }, + { RC_GV_DEKU_SCRUB_GROTTO_FRONT, RAND_INF_SCRUBS_PURCHASED_GV_DEKU_SCRUB_GROTTO_FRONT }, + { RC_GV_COW, RAND_INF_COWS_MILKED_GV_COW }, + { RC_COLOSSUS_DEKU_SCRUB_GROTTO_REAR, RAND_INF_SCRUBS_PURCHASED_COLOSSUS_DEKU_SCRUB_GROTTO_REAR }, + { RC_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT, RAND_INF_SCRUBS_PURCHASED_COLOSSUS_DEKU_SCRUB_GROTTO_FRONT }, + { RC_KAK_IMPAS_HOUSE_COW, RAND_INF_COWS_MILKED_KAK_IMPAS_HOUSE_COW }, + { RC_DMT_COW_GROTTO_COW, RAND_INF_COWS_MILKED_DMT_COW_GROTTO_COW }, + { RC_GC_DEKU_SCRUB_GROTTO_LEFT, RAND_INF_SCRUBS_PURCHASED_GC_DEKU_SCRUB_GROTTO_LEFT }, + { RC_GC_DEKU_SCRUB_GROTTO_RIGHT, RAND_INF_SCRUBS_PURCHASED_GC_DEKU_SCRUB_GROTTO_RIGHT }, + { RC_GC_DEKU_SCRUB_GROTTO_CENTER, RAND_INF_SCRUBS_PURCHASED_GC_DEKU_SCRUB_GROTTO_CENTER }, + { RC_DMC_DEKU_SCRUB, RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB }, + { RC_DMC_DEKU_SCRUB_GROTTO_LEFT, RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB_GROTTO_LEFT }, + { RC_DMC_DEKU_SCRUB_GROTTO_RIGHT, RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB_GROTTO_RIGHT }, + { RC_DMC_DEKU_SCRUB_GROTTO_CENTER, RAND_INF_SCRUBS_PURCHASED_DMC_DEKU_SCRUB_GROTTO_CENTER }, + { RC_ZR_DEKU_SCRUB_GROTTO_REAR, RAND_INF_SCRUBS_PURCHASED_ZR_DEKU_SCRUB_GROTTO_REAR }, + { RC_ZR_DEKU_SCRUB_GROTTO_FRONT, RAND_INF_SCRUBS_PURCHASED_ZR_DEKU_SCRUB_GROTTO_FRONT }, + { RC_LLR_DEKU_SCRUB_GROTTO_LEFT, RAND_INF_SCRUBS_PURCHASED_LLR_DEKU_SCRUB_GROTTO_LEFT }, + { RC_LLR_DEKU_SCRUB_GROTTO_RIGHT, RAND_INF_SCRUBS_PURCHASED_LLR_DEKU_SCRUB_GROTTO_RIGHT }, + { RC_LLR_DEKU_SCRUB_GROTTO_CENTER, RAND_INF_SCRUBS_PURCHASED_LLR_DEKU_SCRUB_GROTTO_CENTER }, + { RC_LLR_STABLES_LEFT_COW, RAND_INF_COWS_MILKED_LLR_STABLES_LEFT_COW }, + { RC_LLR_STABLES_RIGHT_COW, RAND_INF_COWS_MILKED_LLR_STABLES_RIGHT_COW }, + { RC_LLR_TOWER_LEFT_COW, RAND_INF_COWS_MILKED_LLR_TOWER_LEFT_COW }, + { RC_LLR_TOWER_RIGHT_COW, RAND_INF_COWS_MILKED_LLR_TOWER_RIGHT_COW }, + { RC_DEKU_TREE_MQ_DEKU_SCRUB, RAND_INF_SCRUBS_PURCHASED_DEKU_TREE_MQ_DEKU_SCRUB }, + { RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_LEFT }, + { RC_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_SIDE_ROOM_NEAR_DODONGOS }, + { RC_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_NEAR_BOMB_BAG_RIGHT }, + { RC_DODONGOS_CAVERN_DEKU_SCRUB_LOBBY, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_DEKU_SCRUB_LOBBY }, + { RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR }, + { RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT }, + { RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_STAIRCASE }, + { RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_SIDE_ROOM_NEAR_LOWER_LIZALFOS, RAND_INF_SCRUBS_PURCHASED_DODONGOS_CAVERN_MQ_DEKU_SCRUB_SIDE_ROOM_NEAR_LOWER_LIZALFOS }, + { RC_JABU_JABUS_BELLY_DEKU_SCRUB, RAND_INF_SCRUBS_PURCHASED_JABU_JABUS_BELLY_DEKU_SCRUB }, + { RC_JABU_JABUS_BELLY_MQ_COW, RAND_INF_COWS_MILKED_JABU_JABUS_BELLY_MQ_COW }, + { RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_CENTER_LEFT }, + { RC_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_CENTER_RIGHT }, + { RC_GANONS_CASTLE_DEKU_SCRUB_RIGHT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_RIGHT }, + { RC_GANONS_CASTLE_DEKU_SCRUB_LEFT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_DEKU_SCRUB_LEFT }, + { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT }, + { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_LEFT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_LEFT }, + { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER }, + { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT }, + { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT, RAND_INF_SCRUBS_PURCHASED_GANONS_CASTLE_MQ_DEKU_SCRUB_LEFT }, + { RC_KF_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_1 }, + { RC_KF_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_2 }, + { RC_KF_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_3 }, + { RC_KF_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_4 }, + { RC_KF_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_5 }, + { RC_KF_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_6 }, + { RC_KF_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_7 }, + { RC_KF_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_KF_SHOP_ITEM_8 }, + { RC_GC_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_1 }, + { RC_GC_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_2 }, + { RC_GC_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_3 }, + { RC_GC_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_4 }, + { RC_GC_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_5 }, + { RC_GC_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_6 }, + { RC_GC_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_7 }, + { RC_GC_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_GC_SHOP_ITEM_8 }, + { RC_ZD_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_1 }, + { RC_ZD_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_2 }, + { RC_ZD_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_3 }, + { RC_ZD_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_4 }, + { RC_ZD_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_5 }, + { RC_ZD_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_6 }, + { RC_ZD_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_7 }, + { RC_ZD_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_ZD_SHOP_ITEM_8 }, + { RC_KAK_BAZAAR_ITEM_1, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_1 }, + { RC_KAK_BAZAAR_ITEM_2, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_2 }, + { RC_KAK_BAZAAR_ITEM_3, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_3 }, + { RC_KAK_BAZAAR_ITEM_4, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_4 }, + { RC_KAK_BAZAAR_ITEM_5, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_5 }, + { RC_KAK_BAZAAR_ITEM_6, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_6 }, + { RC_KAK_BAZAAR_ITEM_7, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_7 }, + { RC_KAK_BAZAAR_ITEM_8, RAND_INF_SHOP_ITEMS_KAK_BAZAAR_ITEM_8 }, + { RC_KAK_POTION_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_1 }, + { RC_KAK_POTION_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_2 }, + { RC_KAK_POTION_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_3 }, + { RC_KAK_POTION_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_4 }, + { RC_KAK_POTION_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_5 }, + { RC_KAK_POTION_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_6 }, + { RC_KAK_POTION_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_7 }, + { RC_KAK_POTION_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_KAK_POTION_SHOP_ITEM_8 }, + { RC_MARKET_BAZAAR_ITEM_1, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_1 }, + { RC_MARKET_BAZAAR_ITEM_2, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_2 }, + { RC_MARKET_BAZAAR_ITEM_3, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_3 }, + { RC_MARKET_BAZAAR_ITEM_4, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_4 }, + { RC_MARKET_BAZAAR_ITEM_5, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_5 }, + { RC_MARKET_BAZAAR_ITEM_6, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_6 }, + { RC_MARKET_BAZAAR_ITEM_7, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_7 }, + { RC_MARKET_BAZAAR_ITEM_8, RAND_INF_SHOP_ITEMS_MARKET_BAZAAR_ITEM_8 }, + { RC_MARKET_POTION_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_1 }, + { RC_MARKET_POTION_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_2 }, + { RC_MARKET_POTION_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_3 }, + { RC_MARKET_POTION_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_4 }, + { RC_MARKET_POTION_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_5 }, + { RC_MARKET_POTION_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_6 }, + { RC_MARKET_POTION_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_7 }, + { RC_MARKET_POTION_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_MARKET_POTION_SHOP_ITEM_8 }, + { RC_MARKET_BOMBCHU_SHOP_ITEM_1, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_1 }, + { RC_MARKET_BOMBCHU_SHOP_ITEM_2, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_2 }, + { RC_MARKET_BOMBCHU_SHOP_ITEM_3, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_3 }, + { RC_MARKET_BOMBCHU_SHOP_ITEM_4, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_4 }, + { RC_MARKET_BOMBCHU_SHOP_ITEM_5, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_5 }, + { RC_MARKET_BOMBCHU_SHOP_ITEM_6, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_6 }, + { RC_MARKET_BOMBCHU_SHOP_ITEM_7, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_7 }, + { RC_MARKET_BOMBCHU_SHOP_ITEM_8, RAND_INF_SHOP_ITEMS_MARKET_BOMBCHU_SHOP_ITEM_8 }, + { RC_TOT_MASTER_SWORD, RAND_INF_TOT_MASTER_SWORD }, + { RC_GC_MEDIGORON, RAND_INF_MERCHANTS_MEDIGORON }, + { RC_KAK_GRANNYS_SHOP, RAND_INF_MERCHANTS_GRANNYS_SHOP }, + { RC_WASTELAND_BOMBCHU_SALESMAN, RAND_INF_MERCHANTS_CARPET_SALESMAN }, + { RC_LW_TRADE_COJIRO, RAND_INF_ADULT_TRADES_LW_TRADE_COJIRO }, + { RC_GV_TRADE_SAW, RAND_INF_ADULT_TRADES_GV_TRADE_SAW }, + { RC_DMT_TRADE_BROKEN_SWORD, RAND_INF_ADULT_TRADES_DMT_TRADE_BROKEN_SWORD }, + { RC_LH_TRADE_FROG, RAND_INF_ADULT_TRADES_LH_TRADE_FROG }, + { RC_DMT_TRADE_EYEDROPS, RAND_INF_ADULT_TRADES_DMT_TRADE_EYEDROPS }, + { RC_LH_CHILD_FISHING, RAND_INF_CHILD_FISHING }, + { RC_LH_ADULT_FISHING, RAND_INF_ADULT_FISHING }, + { RC_MARKET_10_BIG_POES, RAND_INF_10_BIG_POES }, + { RC_KAK_100_GOLD_SKULLTULA_REWARD, RAND_INF_KAK_100_GOLD_SKULLTULA_REWARD }, + { RC_KF_LINKS_HOUSE_POT, RAND_INF_KF_LINKS_HOUSE_POT }, + { RC_KF_TWINS_HOUSE_POT_1, RAND_INF_KF_TWINS_HOUSE_POT_1 }, + { RC_KF_TWINS_HOUSE_POT_2, RAND_INF_KF_TWINS_HOUSE_POT_2 }, + { RC_KF_BROTHERS_HOUSE_POT_1, RAND_INF_KF_BROTHERS_HOUSE_POT_1 }, + { RC_KF_BROTHERS_HOUSE_POT_2, RAND_INF_KF_BROTHERS_HOUSE_POT_2 }, + { RC_GF_BREAK_ROOM_POT_1, RAND_INF_GF_BREAK_ROOM_POT_1 }, + { RC_GF_BREAK_ROOM_POT_2, RAND_INF_GF_BREAK_ROOM_POT_2 }, + { RC_GF_KITCHEN_POT_1, RAND_INF_GF_KITCHEN_POT_1 }, + { RC_GF_KITCHEN_POT_2, RAND_INF_GF_KITCHEN_POT_2 }, + { RC_GF_NORTH_F1_CARPENTER_POT_1, RAND_INF_GF_NORTH_F1_CARPENTER_POT_1 }, + { RC_GF_NORTH_F1_CARPENTER_POT_2, RAND_INF_GF_NORTH_F1_CARPENTER_POT_2 }, + { RC_GF_NORTH_F1_CARPENTER_POT_3, RAND_INF_GF_NORTH_F1_CARPENTER_POT_3 }, + { RC_GF_NORTH_F2_CARPENTER_POT_1, RAND_INF_GF_NORTH_F2_CARPENTER_POT_1 }, + { RC_GF_NORTH_F2_CARPENTER_POT_2, RAND_INF_GF_NORTH_F2_CARPENTER_POT_2 }, + { RC_GF_SOUTH_F1_CARPENTER_POT_1, RAND_INF_GF_SOUTH_F1_CARPENTER_POT_1 }, + { RC_GF_SOUTH_F1_CARPENTER_POT_2, RAND_INF_GF_SOUTH_F1_CARPENTER_POT_2 }, + { RC_GF_SOUTH_F1_CARPENTER_POT_3, RAND_INF_GF_SOUTH_F1_CARPENTER_POT_3 }, + { RC_GF_SOUTH_F1_CARPENTER_CELL_POT_1, RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_1 }, + { RC_GF_SOUTH_F1_CARPENTER_CELL_POT_2, RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_2 }, + { RC_GF_SOUTH_F1_CARPENTER_CELL_POT_3, RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_3 }, + { RC_GF_SOUTH_F1_CARPENTER_CELL_POT_4, RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_4 }, + { RC_WASTELAND_NEAR_GS_POT_1, RAND_INF_WASTELAND_NEAR_GS_POT_1 }, + { RC_WASTELAND_NEAR_GS_POT_2, RAND_INF_WASTELAND_NEAR_GS_POT_2 }, + { RC_WASTELAND_NEAR_GS_POT_3, RAND_INF_WASTELAND_NEAR_GS_POT_3 }, + { RC_WASTELAND_NEAR_GS_POT_4, RAND_INF_WASTELAND_NEAR_GS_POT_4 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_1, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_1 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_2, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_2 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_3, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_3 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_4, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_4 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_5, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_5 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_6, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_6 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_7, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_7 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_8, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_8 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_9, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_9 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_10, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_10 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_11, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_11 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_12, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_12 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_13, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_13 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_14, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_14 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_15, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_15 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_16, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_16 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_17, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_17 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_18, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_18 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_19, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_19 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_20, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_20 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_21, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_21 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_22, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_22 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_23, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_23 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_24, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_24 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_25, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_25 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_26, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_26 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_27, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_27 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_28, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_28 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_29, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_29 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_30, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_30 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_31, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_31 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_32, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_32 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_33, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_33 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_34, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_34 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_35, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_35 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_36, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_36 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_37, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_37 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_38, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_38 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_39, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_39 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_40, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_40 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_41, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_41 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_42, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_42 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_43, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_43 }, + { RC_MK_GUARD_HOUSE_CHILD_POT_44, RAND_INF_MK_GUARD_HOUSE_CHILD_POT_44 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_1, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_1 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_2, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_2 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_3, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_3 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_4, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_4 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_5, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_5 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_6, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_6 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_7, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_7 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_8, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_8 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_9, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_9 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_10, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_10 }, + { RC_MK_GUARD_HOUSE_ADULT_POT_11, RAND_INF_MK_GUARD_HOUSE_ADULT_POT_11 }, + { RC_MK_BACK_ALLEY_HOUSE_POT_1, RAND_INF_MK_BACK_ALLEY_HOUSE_POT_1 }, + { RC_MK_BACK_ALLEY_HOUSE_POT_2, RAND_INF_MK_BACK_ALLEY_HOUSE_POT_2 }, + { RC_MK_BACK_ALLEY_HOUSE_POT_3, RAND_INF_MK_BACK_ALLEY_HOUSE_POT_3 }, + { RC_KAK_NEAR_POTION_SHOP_POT_1, RAND_INF_KAK_NEAR_POTION_SHOP_POT_1 }, + { RC_KAK_NEAR_POTION_SHOP_POT_2, RAND_INF_KAK_NEAR_POTION_SHOP_POT_2 }, + { RC_KAK_NEAR_POTION_SHOP_POT_3, RAND_INF_KAK_NEAR_POTION_SHOP_POT_3 }, + { RC_KAK_NEAR_IMPAS_HOUSE_POT_1, RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_1 }, + { RC_KAK_NEAR_IMPAS_HOUSE_POT_2, RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_2 }, + { RC_KAK_NEAR_IMPAS_HOUSE_POT_3, RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_3 }, + { RC_KAK_NEAR_GUARDS_HOUSE_POT_1, RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_1 }, + { RC_KAK_NEAR_GUARDS_HOUSE_POT_2, RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_2 }, + { RC_KAK_NEAR_GUARDS_HOUSE_POT_3, RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_3 }, + { RC_KAK_NEAR_MEDICINE_SHOP_POT_1, RAND_INF_KAK_NEAR_MEDICINE_SHOP_POT_1 }, + { RC_KAK_NEAR_MEDICINE_SHOP_POT_2, RAND_INF_KAK_NEAR_MEDICINE_SHOP_POT_2 }, + { RC_GY_DAMPES_GRAVE_POT_1, RAND_INF_GY_DAMPES_GRAVE_POT_1 }, + { RC_GY_DAMPES_GRAVE_POT_2, RAND_INF_GY_DAMPES_GRAVE_POT_2 }, + { RC_GY_DAMPES_GRAVE_POT_3, RAND_INF_GY_DAMPES_GRAVE_POT_3 }, + { RC_GY_DAMPES_GRAVE_POT_4, RAND_INF_GY_DAMPES_GRAVE_POT_4 }, + { RC_GY_DAMPES_GRAVE_POT_5, RAND_INF_GY_DAMPES_GRAVE_POT_5 }, + { RC_GY_DAMPES_GRAVE_POT_6, RAND_INF_GY_DAMPES_GRAVE_POT_6 }, + { RC_GC_LOWER_STAIRCASE_POT_1, RAND_INF_GC_LOWER_STAIRCASE_POT_1 }, + { RC_GC_LOWER_STAIRCASE_POT_2, RAND_INF_GC_LOWER_STAIRCASE_POT_2 }, + { RC_GC_UPPER_STAIRCASE_POT_1, RAND_INF_GC_UPPER_STAIRCASE_POT_1 }, + { RC_GC_UPPER_STAIRCASE_POT_2, RAND_INF_GC_UPPER_STAIRCASE_POT_2 }, + { RC_GC_UPPER_STAIRCASE_POT_3, RAND_INF_GC_UPPER_STAIRCASE_POT_3 }, + { RC_GC_MEDIGORON_POT_1, RAND_INF_GC_MEDIGORON_POT_1 }, + { RC_GC_DARUNIA_POT_1, RAND_INF_GC_DARUNIA_POT_1 }, + { RC_GC_DARUNIA_POT_2, RAND_INF_GC_DARUNIA_POT_2 }, + { RC_GC_DARUNIA_POT_3, RAND_INF_GC_DARUNIA_POT_3 }, + { RC_DMC_NEAR_GC_POT_1, RAND_INF_DMC_NEAR_GC_POT_1 }, + { RC_DMC_NEAR_GC_POT_2, RAND_INF_DMC_NEAR_GC_POT_2 }, + { RC_DMC_NEAR_GC_POT_3, RAND_INF_DMC_NEAR_GC_POT_3 }, + { RC_DMC_NEAR_GC_POT_4, RAND_INF_DMC_NEAR_GC_POT_4 }, + { RC_ZD_NEAR_SHOP_POT_1, RAND_INF_ZD_NEAR_SHOP_POT_1 }, + { RC_ZD_NEAR_SHOP_POT_2, RAND_INF_ZD_NEAR_SHOP_POT_2 }, + { RC_ZD_NEAR_SHOP_POT_3, RAND_INF_ZD_NEAR_SHOP_POT_3 }, + { RC_ZD_NEAR_SHOP_POT_4, RAND_INF_ZD_NEAR_SHOP_POT_4 }, + { RC_ZD_NEAR_SHOP_POT_5, RAND_INF_ZD_NEAR_SHOP_POT_5 }, + { RC_ZF_HIDDEN_CAVE_POT_1, RAND_INF_ZF_HIDDEN_CAVE_POT_1 }, + { RC_ZF_HIDDEN_CAVE_POT_2, RAND_INF_ZF_HIDDEN_CAVE_POT_2 }, + { RC_ZF_HIDDEN_CAVE_POT_3, RAND_INF_ZF_HIDDEN_CAVE_POT_3 }, + { RC_ZF_NEAR_JABU_POT_1, RAND_INF_ZF_NEAR_JABU_POT_1 }, + { RC_ZF_NEAR_JABU_POT_2, RAND_INF_ZF_NEAR_JABU_POT_2 }, + { RC_ZF_NEAR_JABU_POT_3, RAND_INF_ZF_NEAR_JABU_POT_3 }, + { RC_ZF_NEAR_JABU_POT_4, RAND_INF_ZF_NEAR_JABU_POT_4 }, + { RC_LLR_FRONT_POT_1, RAND_INF_LLR_FRONT_POT_1 }, + { RC_LLR_FRONT_POT_2, RAND_INF_LLR_FRONT_POT_2 }, + { RC_LLR_FRONT_POT_3, RAND_INF_LLR_FRONT_POT_3 }, + { RC_LLR_FRONT_POT_4, RAND_INF_LLR_FRONT_POT_4 }, + { RC_LLR_RAIN_SHED_POT_1, RAND_INF_LLR_RAIN_SHED_POT_1 }, + { RC_LLR_RAIN_SHED_POT_2, RAND_INF_LLR_RAIN_SHED_POT_2 }, + { RC_LLR_RAIN_SHED_POT_3, RAND_INF_LLR_RAIN_SHED_POT_3 }, + { RC_LLR_TALONS_HOUSE_POT_1, RAND_INF_LLR_TALONS_HOUSE_POT_1 }, + { RC_LLR_TALONS_HOUSE_POT_2, RAND_INF_LLR_TALONS_HOUSE_POT_2 }, + { RC_LLR_TALONS_HOUSE_POT_3, RAND_INF_LLR_TALONS_HOUSE_POT_3 }, + { RC_HF_COW_GROTTO_POT_1, RAND_INF_HF_COW_GROTTO_POT_1 }, + { RC_HF_COW_GROTTO_POT_2, RAND_INF_HF_COW_GROTTO_POT_2 }, + { RC_HC_STORMS_GROTTO_POT_1, RAND_INF_HC_STORMS_GROTTO_POT_1 }, + { RC_HC_STORMS_GROTTO_POT_2, RAND_INF_HC_STORMS_GROTTO_POT_2 }, + { RC_HC_STORMS_GROTTO_POT_3, RAND_INF_HC_STORMS_GROTTO_POT_3 }, + { RC_HC_STORMS_GROTTO_POT_4, RAND_INF_HC_STORMS_GROTTO_POT_4 }, + { RC_DODONGOS_CAVERN_LIZALFOS_POT_1, RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_1 }, + { RC_DODONGOS_CAVERN_LIZALFOS_POT_2, RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_2 }, + { RC_DODONGOS_CAVERN_LIZALFOS_POT_3, RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_3 }, + { RC_DODONGOS_CAVERN_LIZALFOS_POT_4, RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_4 }, + { RC_DODONGOS_CAVERN_SIDE_ROOM_POT_1, RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_1 }, + { RC_DODONGOS_CAVERN_SIDE_ROOM_POT_2, RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_2 }, + { RC_DODONGOS_CAVERN_SIDE_ROOM_POT_3, RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_3 }, + { RC_DODONGOS_CAVERN_SIDE_ROOM_POT_4, RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_4 }, + { RC_DODONGOS_CAVERN_SIDE_ROOM_POT_5, RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_5 }, + { RC_DODONGOS_CAVERN_SIDE_ROOM_POT_6, RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_6 }, + { RC_DODONGOS_CAVERN_TORCH_ROOM_POT_1, RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_1 }, + { RC_DODONGOS_CAVERN_TORCH_ROOM_POT_2, RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_2 }, + { RC_DODONGOS_CAVERN_TORCH_ROOM_POT_3, RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_3 }, + { RC_DODONGOS_CAVERN_TORCH_ROOM_POT_4, RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_4 }, + { RC_DODONGOS_CAVERN_STAIRCASE_POT_1, RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_1 }, + { RC_DODONGOS_CAVERN_STAIRCASE_POT_2, RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_2 }, + { RC_DODONGOS_CAVERN_STAIRCASE_POT_3, RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_3 }, + { RC_DODONGOS_CAVERN_STAIRCASE_POT_4, RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_4 }, + { RC_DODONGOS_CAVERN_SINGLE_EYE_POT_1, RAND_INF_DODONGOS_CAVERN_SINGLE_EYE_POT_1 }, + { RC_DODONGOS_CAVERN_SINGLE_EYE_POT_2, RAND_INF_DODONGOS_CAVERN_SINGLE_EYE_POT_2 }, + { RC_DODONGOS_CAVERN_BLADE_POT_1, RAND_INF_DODONGOS_CAVERN_BLADE_POT_1 }, + { RC_DODONGOS_CAVERN_BLADE_POT_2, RAND_INF_DODONGOS_CAVERN_BLADE_POT_2 }, + { RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_1, RAND_INF_DODONGOS_CAVERN_DOUBLE_EYE_POT_1 }, + { RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_2, RAND_INF_DODONGOS_CAVERN_DOUBLE_EYE_POT_2 }, + { RC_DODONGOS_CAVERN_BACK_ROOM_POT_1, RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_1 }, + { RC_DODONGOS_CAVERN_BACK_ROOM_POT_2, RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_2 }, + { RC_DODONGOS_CAVERN_BACK_ROOM_POT_3, RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_3 }, + { RC_DODONGOS_CAVERN_BACK_ROOM_POT_4, RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_4 }, + { RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1, RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1 }, + { RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2, RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2 }, + { RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3, RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3 }, + { RC_JABU_JABUS_BELLY_BARINADE_POT_1, RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_1 }, + { RC_JABU_JABUS_BELLY_BARINADE_POT_2, RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_2 }, + { RC_JABU_JABUS_BELLY_BARINADE_POT_3, RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_3 }, + { RC_JABU_JABUS_BELLY_BARINADE_POT_4, RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_4 }, + { RC_JABU_JABUS_BELLY_BARINADE_POT_5, RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_5 }, + { RC_JABU_JABUS_BELLY_BARINADE_POT_6, RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_6 }, + { RC_JABU_JABUS_BELLY_BASEMENT_POT_1, RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_1 }, + { RC_JABU_JABUS_BELLY_BASEMENT_POT_2, RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_2 }, + { RC_JABU_JABUS_BELLY_BASEMENT_POT_3, RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_3 }, + { RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1, RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1 }, + { RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2, RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2 }, + { RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3, RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3 }, + { RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4, RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4 }, + { RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5, RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5 }, + { RC_FOREST_TEMPLE_LOBBY_POT_1, RAND_INF_FOREST_TEMPLE_LOBBY_POT_1 }, + { RC_FOREST_TEMPLE_LOBBY_POT_2, RAND_INF_FOREST_TEMPLE_LOBBY_POT_2 }, + { RC_FOREST_TEMPLE_LOBBY_POT_3, RAND_INF_FOREST_TEMPLE_LOBBY_POT_3 }, + { RC_FOREST_TEMPLE_LOBBY_POT_4, RAND_INF_FOREST_TEMPLE_LOBBY_POT_4 }, + { RC_FOREST_TEMPLE_LOBBY_POT_5, RAND_INF_FOREST_TEMPLE_LOBBY_POT_5 }, + { RC_FOREST_TEMPLE_LOBBY_POT_6, RAND_INF_FOREST_TEMPLE_LOBBY_POT_6 }, + { RC_FOREST_TEMPLE_LOWER_STALFOS_POT_1, RAND_INF_FOREST_TEMPLE_LOWER_STALFOS_POT_1 }, + { RC_FOREST_TEMPLE_LOWER_STALFOS_POT_2, RAND_INF_FOREST_TEMPLE_LOWER_STALFOS_POT_2 }, + { RC_FOREST_TEMPLE_GREEN_POE_POT_1, RAND_INF_FOREST_TEMPLE_GREEN_POE_POT_1 }, + { RC_FOREST_TEMPLE_GREEN_POE_POT_2, RAND_INF_FOREST_TEMPLE_GREEN_POE_POT_2 }, + { RC_FOREST_TEMPLE_UPPER_STALFOS_POT_1, RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_1 }, + { RC_FOREST_TEMPLE_UPPER_STALFOS_POT_2, RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_2 }, + { RC_FOREST_TEMPLE_UPPER_STALFOS_POT_3, RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_3 }, + { RC_FOREST_TEMPLE_UPPER_STALFOS_POT_4, RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_4 }, + { RC_FOREST_TEMPLE_BLUE_POE_POT_1, RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_1 }, + { RC_FOREST_TEMPLE_BLUE_POE_POT_2, RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_2 }, + { RC_FOREST_TEMPLE_BLUE_POE_POT_3, RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_3 }, + { RC_FOREST_TEMPLE_FROZEN_EYE_POT_1, RAND_INF_FOREST_TEMPLE_FROZEN_EYE_POT_1 }, + { RC_FOREST_TEMPLE_FROZEN_EYE_POT_2, RAND_INF_FOREST_TEMPLE_FROZEN_EYE_POT_2 }, + { RC_FIRE_TEMPLE_NEAR_BOSS_POT_1, RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_1 }, + { RC_FIRE_TEMPLE_NEAR_BOSS_POT_2, RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_2 }, + { RC_FIRE_TEMPLE_NEAR_BOSS_POT_3, RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_3 }, + { RC_FIRE_TEMPLE_NEAR_BOSS_POT_4, RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_4 }, + { RC_FIRE_TEMPLE_BIG_LAVA_POT_1, RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_1 }, + { RC_FIRE_TEMPLE_BIG_LAVA_POT_2, RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_2 }, + { RC_FIRE_TEMPLE_BIG_LAVA_POT_3, RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_3 }, + { RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1, RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1 }, + { RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2, RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2 }, + { RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3, RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3 }, + { RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4, RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4 }, + { RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1, RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1 }, + { RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2, RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2 }, + { RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3, RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3 }, + { RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4, RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4 }, + { RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_1, RAND_INF_WATER_TEMPLE_MAIN_LEVEL_2_POT_1 }, + { RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_2, RAND_INF_WATER_TEMPLE_MAIN_LEVEL_2_POT_2 }, + { RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_1, RAND_INF_WATER_TEMPLE_MAIN_LEVEL_1_POT_1 }, + { RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_2, RAND_INF_WATER_TEMPLE_MAIN_LEVEL_1_POT_2 }, + { RC_WATER_TEMPLE_TORCH_POT_1, RAND_INF_WATER_TEMPLE_TORCH_POT_1 }, + { RC_WATER_TEMPLE_TORCH_POT_2, RAND_INF_WATER_TEMPLE_TORCH_POT_2 }, + { RC_WATER_TEMPLE_NEAR_COMPASS_POT_1, RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_1 }, + { RC_WATER_TEMPLE_NEAR_COMPASS_POT_2, RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_2 }, + { RC_WATER_TEMPLE_NEAR_COMPASS_POT_3, RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_3 }, + { RC_WATER_TEMPLE_CENTRAL_BOW_POT_1, RAND_INF_WATER_TEMPLE_CENTRAL_BOW_POT_1 }, + { RC_WATER_TEMPLE_CENTRAL_BOW_POT_2, RAND_INF_WATER_TEMPLE_CENTRAL_BOW_POT_2 }, + { RC_WATER_TEMPLE_BEHIND_GATE_POT_1, RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_1 }, + { RC_WATER_TEMPLE_BEHIND_GATE_POT_2, RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_2 }, + { RC_WATER_TEMPLE_BEHIND_GATE_POT_3, RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_3 }, + { RC_WATER_TEMPLE_BEHIND_GATE_POT_4, RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_4 }, + { RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1, RAND_INF_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1 }, + { RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2, RAND_INF_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2 }, + { RC_WATER_TEMPLE_RIVER_POT_1, RAND_INF_WATER_TEMPLE_RIVER_POT_1 }, + { RC_WATER_TEMPLE_RIVER_POT_2, RAND_INF_WATER_TEMPLE_RIVER_POT_2 }, + { RC_WATER_TEMPLE_LIKE_LIKE_POT_1, RAND_INF_WATER_TEMPLE_LIKE_LIKE_POT_1 }, + { RC_WATER_TEMPLE_LIKE_LIKE_POT_2, RAND_INF_WATER_TEMPLE_LIKE_LIKE_POT_2 }, + { RC_WATER_TEMPLE_BOSS_KEY_POT_1, RAND_INF_WATER_TEMPLE_BOSS_KEY_POT_1 }, + { RC_WATER_TEMPLE_BOSS_KEY_POT_2, RAND_INF_WATER_TEMPLE_BOSS_KEY_POT_2 }, + { RC_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1, RAND_INF_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1 }, + { RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1, RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1 }, + { RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2, RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2 }, + { RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3, RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3 }, + { RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4, RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4 }, + { RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5, RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5 }, + { RC_SHADOW_TEMPLE_MAP_CHEST_POT_1, RAND_INF_SHADOW_TEMPLE_MAP_CHEST_POT_1 }, + { RC_SHADOW_TEMPLE_MAP_CHEST_POT_2, RAND_INF_SHADOW_TEMPLE_MAP_CHEST_POT_2 }, + { RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_1, RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_1 }, + { RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_2, RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_2 }, + { RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_3, RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_3 }, + { RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_4, RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_4 }, + { RC_SHADOW_TEMPLE_AFTER_WIND_POT_1, RAND_INF_SHADOW_TEMPLE_AFTER_WIND_POT_1 }, + { RC_SHADOW_TEMPLE_AFTER_WIND_POT_2, RAND_INF_SHADOW_TEMPLE_AFTER_WIND_POT_2 }, + { RC_SHADOW_TEMPLE_SPIKE_WALLS_POT_1, RAND_INF_SHADOW_TEMPLE_SPIKE_WALLS_POT_1 }, + { RC_SHADOW_TEMPLE_FLOORMASTER_POT_1, RAND_INF_SHADOW_TEMPLE_FLOORMASTER_POT_1 }, + { RC_SHADOW_TEMPLE_FLOORMASTER_POT_2, RAND_INF_SHADOW_TEMPLE_FLOORMASTER_POT_2 }, + { RC_SHADOW_TEMPLE_AFTER_BOAT_POT_1, RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_1 }, + { RC_SHADOW_TEMPLE_AFTER_BOAT_POT_2, RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_2 }, + { RC_SHADOW_TEMPLE_AFTER_BOAT_POT_3, RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_3 }, + { RC_SHADOW_TEMPLE_AFTER_BOAT_POT_4, RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_4 }, + { RC_SPIRIT_TEMPLE_LOBBY_POT_1, RAND_INF_SPIRIT_TEMPLE_LOBBY_POT_1 }, + { RC_SPIRIT_TEMPLE_LOBBY_POT_2, RAND_INF_SPIRIT_TEMPLE_LOBBY_POT_2 }, + { RC_SPIRIT_TEMPLE_ANUBIS_POT_1, RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_1 }, + { RC_SPIRIT_TEMPLE_ANUBIS_POT_2, RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_2 }, + { RC_SPIRIT_TEMPLE_ANUBIS_POT_3, RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_3 }, + { RC_SPIRIT_TEMPLE_ANUBIS_POT_4, RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_4 }, + { RC_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1, RAND_INF_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1 }, + { RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1, RAND_INF_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1 }, + { RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2, RAND_INF_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2 }, + { RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1, RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1 }, + { RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2, RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2 }, + { RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3, RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3 }, + { RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4, RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4 }, + { RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5, RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5 }, + { RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6, RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6 }, + { RC_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1, RAND_INF_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1 }, + { RC_GANONS_CASTLE_FOREST_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_FOREST_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_FOREST_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_FOREST_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_FIRE_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_FIRE_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_FIRE_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_FIRE_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_WATER_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_WATER_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_WATER_TRIAL_POT_3, RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_3 }, + { RC_GANONS_CASTLE_SHADOW_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_SHADOW_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_SHADOW_TRIAL_POT_3, RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_3 }, + { RC_GANONS_CASTLE_SHADOW_TRIAL_POT_4, RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_4 }, + { RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_SPIRIT_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_SPIRIT_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1, RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1 }, + { RC_GANONS_CASTLE_LIGHT_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_LIGHT_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_1, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_1 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_2, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_2 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_3, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_3 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_4, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_4 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_5, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_5 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_6, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_6 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_7, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_7 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_8, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_8 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_9, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_9 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_10, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_10 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_11, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_11 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_12, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_12 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_13, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_13 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_14, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_14 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_15, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_15 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_16, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_16 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_17, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_17 }, + { RC_GANONS_CASTLE_GANONS_TOWER_POT_18, RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_18 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_1, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_1 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_2, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_2 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_3, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_3 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_4, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_4 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_5, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_5 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_6, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_6 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_7, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_7 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_8, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_8 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_9, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_9 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_10, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_10 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_11, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_11 }, + { RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_12, RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_12 }, + { RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1, RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1 }, + { RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2, RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2 }, + { RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3, RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3 }, + { RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1, RAND_INF_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1 }, + { RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2, RAND_INF_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2 }, + { RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1, RAND_INF_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1 }, + { RC_BOTTOM_OF_THE_WELL_UNDERWATER_POT, RAND_INF_BOTTOM_OF_THE_WELL_UNDERWATER_POT }, + { RC_ICE_CAVERN_HALL_POT_1, RAND_INF_ICE_CAVERN_HALL_POT_1 }, + { RC_ICE_CAVERN_HALL_POT_2, RAND_INF_ICE_CAVERN_HALL_POT_2 }, + { RC_ICE_CAVERN_SPINNING_BLADE_POT_1, RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_1 }, + { RC_ICE_CAVERN_SPINNING_BLADE_POT_2, RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_2 }, + { RC_ICE_CAVERN_SPINNING_BLADE_POT_3, RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_3 }, + { RC_ICE_CAVERN_NEAR_END_POT_1, RAND_INF_ICE_CAVERN_NEAR_END_POT_1 }, + { RC_ICE_CAVERN_NEAR_END_POT_2, RAND_INF_ICE_CAVERN_NEAR_END_POT_2 }, + { RC_ICE_CAVERN_FROZEN_POT_1, RAND_INF_ICE_CAVERN_FROZEN_POT_1 }, + + { RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1, RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1 }, + { RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2, RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2 }, + { RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_1, RAND_INF_JABU_JABUS_BELLY_MQ_GEYSER_POT_1 }, + { RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_2, RAND_INF_JABU_JABUS_BELLY_MQ_GEYSER_POT_2 }, + { RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1, RAND_INF_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1 }, + { RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2, RAND_INF_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2 }, + { RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1, RAND_INF_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1 }, + { RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2, RAND_INF_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2 }, + { RC_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1, RAND_INF_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1 }, + { RC_FOREST_TEMPLE_MQ_LOBBY_POT_1, RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_1 }, + { RC_FOREST_TEMPLE_MQ_LOBBY_POT_2, RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_2 }, + { RC_FOREST_TEMPLE_MQ_LOBBY_POT_3, RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_3 }, + { RC_FOREST_TEMPLE_MQ_LOBBY_POT_4, RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_4 }, + { RC_FOREST_TEMPLE_MQ_LOBBY_POT_5, RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_5 }, + { RC_FOREST_TEMPLE_MQ_LOBBY_POT_6, RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_6 }, + { RC_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_1, RAND_INF_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_1 }, + { RC_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_2, RAND_INF_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_2 }, + { RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1, RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1 }, + { RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2, RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2 }, + { RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3, RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3 }, + { RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4, RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4 }, + { RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_1, RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_1 }, + { RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_2, RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_2 }, + { RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_3, RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_3 }, + { RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_1, RAND_INF_FOREST_TEMPLE_MQ_GREEN_POE_POT_1 }, + { RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_2, RAND_INF_FOREST_TEMPLE_MQ_GREEN_POE_POT_2 }, + { RC_FOREST_TEMPLE_MQ_BASEMENT_POT_1, RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_1 }, + { RC_FOREST_TEMPLE_MQ_BASEMENT_POT_2, RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_2 }, + { RC_FOREST_TEMPLE_MQ_BASEMENT_POT_3, RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_3 }, + { RC_FOREST_TEMPLE_MQ_BASEMENT_POT_4, RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_4 }, + { RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1, RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1 }, + { RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2, RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2 }, + { RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3, RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3 }, + { RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4, RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4 }, + { RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1, RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1 }, + { RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2, RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2 }, + { RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3, RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3 }, + { RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4, RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4 }, + { RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1, RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1 }, + { RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2, RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2 }, + { RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3, RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3 }, + { RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4, RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4 }, + { RC_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_1, RAND_INF_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_1 }, + { RC_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_2, RAND_INF_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_2 }, + { RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1, RAND_INF_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1 }, + { RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2, RAND_INF_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2 }, + { RC_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_1, RAND_INF_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_1 }, + { RC_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_2, RAND_INF_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_2 }, + { RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1, RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1 }, + { RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2, RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2 }, + { RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3, RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3 }, + { RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4, RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4 }, + { RC_DODONGOS_CAVERN_MQ_ARMOS_POT_1, RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_1 }, + { RC_DODONGOS_CAVERN_MQ_ARMOS_POT_2, RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_2 }, + { RC_DODONGOS_CAVERN_MQ_ARMOS_POT_3, RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_3 }, + { RC_DODONGOS_CAVERN_MQ_ARMOS_POT_4, RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_4 }, + { RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_1, RAND_INF_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_1 }, + { RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_2, RAND_INF_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_2 }, + { RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_1, RAND_INF_DODONGOS_CAVERN_MQ_BACKROOM_POT_1 }, + { RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_2, RAND_INF_DODONGOS_CAVERN_MQ_BACKROOM_POT_2 }, + { RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2 }, + { RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1, RAND_INF_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1 }, + { RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2, RAND_INF_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2 }, + { RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1, RAND_INF_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1 }, + { RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2, RAND_INF_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2 }, + { RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1, RAND_INF_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1 }, + { RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2, RAND_INF_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2 }, + { RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_1, RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_1 }, + { RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_2, RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_2 }, + { RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_3, RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_3 }, + { RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_4, RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_4 }, + { RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1, RAND_INF_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1 }, + { RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2, RAND_INF_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2 }, + { RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_1, RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_1 }, + { RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_2, RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_2 }, + { RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_3, RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_3 }, + { RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_4, RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_4 }, + { RC_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT, RAND_INF_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT }, + { RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1, RAND_INF_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1 }, + { RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2, RAND_INF_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2 }, + { RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1, RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1 }, + { RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2, RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2 }, + { RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3, RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3 }, + { RC_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT, RAND_INF_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT }, + { RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_1, RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_1 }, + { RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_2, RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_2 }, + { RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_3, RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_3 }, + { RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_1, RAND_INF_FIRE_TEMPLE_MQ_ENTRANCE_POT_1 }, + { RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_2, RAND_INF_FIRE_TEMPLE_MQ_ENTRANCE_POT_2 }, + { RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1, RAND_INF_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1 }, + { RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2, RAND_INF_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2 }, + { RC_FIRE_TEMPLE_MQ_LAVA_POT_1, RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_1 }, + { RC_FIRE_TEMPLE_MQ_LAVA_POT_2, RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_2 }, + { RC_FIRE_TEMPLE_MQ_LAVA_POT_3, RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_3 }, + { RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1, RAND_INF_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1 }, + { RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2, RAND_INF_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2 }, + { RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1, RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1 }, + { RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2, RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2 }, + { RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3, RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3 }, + { RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1, RAND_INF_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1 }, + { RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2, RAND_INF_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2 }, + { RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_1, RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_1 }, + { RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_2, RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_2 }, + { RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_3, RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_3 }, + { RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_4, RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_4 }, + { RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_5, RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_5 }, + { RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_6, RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_6 }, + { RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1, RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1 }, + { RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2, RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2 }, + { RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3, RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3 }, + { RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4, RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4 }, + { RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5, RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5 }, + { RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6, RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6 }, + { RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7, RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7 }, + { RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8, RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8 }, + { RC_ICE_CAVERN_MQ_ENTRANCE_POT, RAND_INF_ICE_CAVERN_MQ_ENTRANCE_POT }, + { RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1, RAND_INF_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1 }, + { RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2, RAND_INF_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2 }, + { RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1, RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1 }, + { RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2, RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2 }, + { RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3, RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3 }, + { RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4, RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4 }, + { RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1, RAND_INF_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1 }, + { RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2, RAND_INF_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2 }, + { RC_ICE_CAVERN_MQ_COMPASS_POT_1, RAND_INF_ICE_CAVERN_MQ_COMPASS_POT_1 }, + { RC_ICE_CAVERN_MQ_COMPASS_POT_2, RAND_INF_ICE_CAVERN_MQ_COMPASS_POT_2 }, + { RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1, RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1 }, + { RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2, RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2 }, + { RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3, RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3 }, + { RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4, RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4 }, + { RC_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT, RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT }, + { RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1, RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1 }, + { RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2, RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2 }, + { RC_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT, RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT }, + { RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1, RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1 }, + { RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2, RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2 }, + { RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3, RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3 }, + { RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4, RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4 }, + { RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_1, RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_1 }, + { RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_2, RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_2 }, + { RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_3, RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_3 }, + { RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_4, RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_4 }, + { RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_5, RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_5 }, + { RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1, RAND_INF_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1 }, + { RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2, RAND_INF_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2 }, + { RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1, RAND_INF_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1 }, + { RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2, RAND_INF_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2 }, + { RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1, RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1 }, + { RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2, RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2 }, + { RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3, RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3 }, + { RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4, RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4 }, + { RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1, RAND_INF_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1 }, + { RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2, RAND_INF_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2 }, + { RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1, RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1 }, + { RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2, RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2 }, + { RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_1, RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_1 }, + { RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_2, RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_2 }, + { RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_3, RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_3 }, + { RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_4, RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_4 }, + { RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_5, RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_5 }, + { RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1, RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1 }, + { RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2, RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2 }, + { RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3, RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3 }, + { RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1, RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1 }, + { RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2, RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2 }, + { RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_3, RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_3 }, + { RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_4, RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_4 }, + { RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_5, RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_5 }, + { RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1, RAND_INF_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1 }, + { RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2, RAND_INF_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2 }, + { RC_WATER_TEMPLE_MQ_RIVER_POT_1, RAND_INF_WATER_TEMPLE_MQ_RIVER_POT_1 }, + { RC_WATER_TEMPLE_MQ_RIVER_POT_2, RAND_INF_WATER_TEMPLE_MQ_RIVER_POT_2 }, + { RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1, RAND_INF_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1 }, + { RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2, RAND_INF_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2 }, + { RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1, RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1 }, + { RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2, RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2 }, + { RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1, RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1 }, + { RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2, RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2 }, + { RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3, RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3 }, + { RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1, RAND_INF_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1 }, + { RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2, RAND_INF_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2 }, + { RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_1, RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_1 }, + { RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_2, RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_2 }, + { RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_3, RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_3 }, + { RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_4, RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_4 }, + { RC_WATER_TEMPLE_MQ_BOSS_KEY_POT, RAND_INF_WATER_TEMPLE_MQ_BOSS_KEY_POT }, + { RC_KF_STORMS_GROTTO_BEEHIVE_LEFT, RAND_INF_BEEHIVE_KF_STORMS_GROTTO_LEFT }, { RC_KF_STORMS_GROTTO_BEEHIVE_RIGHT, RAND_INF_BEEHIVE_KF_STORMS_GROTTO_RIGHT }, { RC_LW_NEAR_SHORTCUTS_GROTTO_BEEHIVE_LEFT, RAND_INF_BEEHIVE_LW_NEAR_SHORTCUTS_GROTTO_LEFT }, @@ -1698,6 +2236,29 @@ CowIdentity Randomizer::IdentifyCow(s32 sceneNum, s32 posX, s32 posZ) { return cowIdentity; } +PotIdentity Randomizer::IdentifyPot(s32 sceneNum, s32 posX, s32 posZ) { + struct PotIdentity potIdentity; + uint32_t potSceneNum = sceneNum; + + if (sceneNum == SCENE_GANONDORF_BOSS) { + potSceneNum = SCENE_GANONS_TOWER; + } + + potIdentity.randomizerInf = RAND_INF_MAX; + potIdentity.randomizerCheck = RC_UNKNOWN_CHECK; + + s32 actorParams = TWO_ACTOR_PARAMS(posX, posZ); + + Rando::Location* location = GetCheckObjectFromActor(ACTOR_OBJ_TSUBO, potSceneNum, actorParams); + + if (location->GetRandomizerCheck() != RC_UNKNOWN_CHECK) { + potIdentity.randomizerInf = rcToRandomizerInf[location->GetRandomizerCheck()]; + potIdentity.randomizerCheck = location->GetRandomizerCheck(); + } + + return potIdentity; +} + FishIdentity Randomizer::IdentifyFish(s32 sceneNum, s32 actorParams) { struct FishIdentity fishIdentity; diff --git a/soh/soh/Enhancements/randomizer/randomizer.h b/soh/soh/Enhancements/randomizer/randomizer.h index 3e6df621335..26abb85415a 100644 --- a/soh/soh/Enhancements/randomizer/randomizer.h +++ b/soh/soh/Enhancements/randomizer/randomizer.h @@ -54,6 +54,7 @@ class Randomizer { BeehiveIdentity IdentifyBeehive(s32 sceneNum, s16 xPosition, s32 respawnData); ShopItemIdentity IdentifyShopItem(s32 sceneNum, u8 slotIndex); CowIdentity IdentifyCow(s32 sceneNum, s32 posX, s32 posZ); + PotIdentity IdentifyPot(s32 sceneNum, s32 posX, s32 posZ); FishIdentity IdentifyFish(s32 sceneNum, s32 actorParams); GetItemEntry GetItemFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogItemId, bool checkObtainability = true); GetItemEntry GetItemFromActor(s16 actorId, s16 sceneNum, s16 actorParams, GetItemID ogItemId, bool checkObtainability = true); diff --git a/soh/soh/Enhancements/randomizer/randomizerTypes.h b/soh/soh/Enhancements/randomizer/randomizerTypes.h index 507ae5fec2b..240307261a0 100644 --- a/soh/soh/Enhancements/randomizer/randomizerTypes.h +++ b/soh/soh/Enhancements/randomizer/randomizerTypes.h @@ -6,6 +6,8 @@ #define MAX_TRICK_NAME_SIZE 50 +#define TWO_ACTOR_PARAMS(a, b) ((((a)&0xFFFF) << 16) | ((b)&0xFFFF)) + // This should probably go in a less rando-specific location // but the best location will probably be in the modding engine // which doesn't exist yet. @@ -270,6 +272,7 @@ typedef enum { RCTYPE_GOSSIP_STONE, // RANDOTODO make these into event access RCTYPE_SONG_LOCATION, // Song locations RCTYPE_BOSS_HEART_OR_OTHER_REWARD, // Boss heart container or lesser dungeon rewards (lens, ice arrow) + RCTYPE_POT, // Shuffle Pots RCTYPE_DUNGEON_REWARD, // Dungeon rewards (blue warps) RCTYPE_OCARINA, // Ocarina locations RCTYPE_BEEHIVE, // Beehives @@ -1550,6 +1553,550 @@ typedef enum { RC_GANONS_CASTLE_MQ_DEKU_SCRUB_CENTER_RIGHT, RC_GANONS_CASTLE_MQ_DEKU_SCRUB_RIGHT, RC_GANONS_TOWER_BOSS_KEY_CHEST, + + // Overworld Pots + RC_KF_LINKS_HOUSE_POT, + RC_KF_TWINS_HOUSE_POT_1, + RC_KF_TWINS_HOUSE_POT_2, + RC_KF_BROTHERS_HOUSE_POT_1, + RC_KF_BROTHERS_HOUSE_POT_2, + RC_GF_BREAK_ROOM_POT_1, + RC_GF_BREAK_ROOM_POT_2, + RC_GF_KITCHEN_POT_1, + RC_GF_KITCHEN_POT_2, + RC_GF_NORTH_F1_CARPENTER_POT_1, + RC_GF_NORTH_F1_CARPENTER_POT_2, + RC_GF_NORTH_F1_CARPENTER_POT_3, + RC_GF_NORTH_F2_CARPENTER_POT_1, + RC_GF_NORTH_F2_CARPENTER_POT_2, + RC_GF_SOUTH_F1_CARPENTER_POT_1, + RC_GF_SOUTH_F1_CARPENTER_POT_2, + RC_GF_SOUTH_F1_CARPENTER_POT_3, + RC_GF_SOUTH_F1_CARPENTER_CELL_POT_1, + RC_GF_SOUTH_F1_CARPENTER_CELL_POT_2, + RC_GF_SOUTH_F1_CARPENTER_CELL_POT_3, + RC_GF_SOUTH_F1_CARPENTER_CELL_POT_4, + RC_WASTELAND_NEAR_GS_POT_1, + RC_WASTELAND_NEAR_GS_POT_2, + RC_WASTELAND_NEAR_GS_POT_3, + RC_WASTELAND_NEAR_GS_POT_4, + RC_HF_COW_GROTTO_POT_1, + RC_HF_COW_GROTTO_POT_2, + RC_MK_GUARD_HOUSE_CHILD_POT_1, + RC_MK_GUARD_HOUSE_CHILD_POT_2, + RC_MK_GUARD_HOUSE_CHILD_POT_3, + RC_MK_GUARD_HOUSE_CHILD_POT_4, + RC_MK_GUARD_HOUSE_CHILD_POT_5, + RC_MK_GUARD_HOUSE_CHILD_POT_6, + RC_MK_GUARD_HOUSE_CHILD_POT_7, + RC_MK_GUARD_HOUSE_CHILD_POT_8, + RC_MK_GUARD_HOUSE_CHILD_POT_9, + RC_MK_GUARD_HOUSE_CHILD_POT_10, + RC_MK_GUARD_HOUSE_CHILD_POT_11, + RC_MK_GUARD_HOUSE_CHILD_POT_12, + RC_MK_GUARD_HOUSE_CHILD_POT_13, + RC_MK_GUARD_HOUSE_CHILD_POT_14, + RC_MK_GUARD_HOUSE_CHILD_POT_15, + RC_MK_GUARD_HOUSE_CHILD_POT_16, + RC_MK_GUARD_HOUSE_CHILD_POT_17, + RC_MK_GUARD_HOUSE_CHILD_POT_18, + RC_MK_GUARD_HOUSE_CHILD_POT_19, + RC_MK_GUARD_HOUSE_CHILD_POT_20, + RC_MK_GUARD_HOUSE_CHILD_POT_21, + RC_MK_GUARD_HOUSE_CHILD_POT_22, + RC_MK_GUARD_HOUSE_CHILD_POT_23, + RC_MK_GUARD_HOUSE_CHILD_POT_24, + RC_MK_GUARD_HOUSE_CHILD_POT_25, + RC_MK_GUARD_HOUSE_CHILD_POT_26, + RC_MK_GUARD_HOUSE_CHILD_POT_27, + RC_MK_GUARD_HOUSE_CHILD_POT_28, + RC_MK_GUARD_HOUSE_CHILD_POT_29, + RC_MK_GUARD_HOUSE_CHILD_POT_30, + RC_MK_GUARD_HOUSE_CHILD_POT_31, + RC_MK_GUARD_HOUSE_CHILD_POT_32, + RC_MK_GUARD_HOUSE_CHILD_POT_33, + RC_MK_GUARD_HOUSE_CHILD_POT_34, + RC_MK_GUARD_HOUSE_CHILD_POT_35, + RC_MK_GUARD_HOUSE_CHILD_POT_36, + RC_MK_GUARD_HOUSE_CHILD_POT_37, + RC_MK_GUARD_HOUSE_CHILD_POT_38, + RC_MK_GUARD_HOUSE_CHILD_POT_39, + RC_MK_GUARD_HOUSE_CHILD_POT_40, + RC_MK_GUARD_HOUSE_CHILD_POT_41, + RC_MK_GUARD_HOUSE_CHILD_POT_42, + RC_MK_GUARD_HOUSE_CHILD_POT_43, + RC_MK_GUARD_HOUSE_CHILD_POT_44, + RC_MK_GUARD_HOUSE_ADULT_POT_1, + RC_MK_GUARD_HOUSE_ADULT_POT_2, + RC_MK_GUARD_HOUSE_ADULT_POT_3, + RC_MK_GUARD_HOUSE_ADULT_POT_4, + RC_MK_GUARD_HOUSE_ADULT_POT_5, + RC_MK_GUARD_HOUSE_ADULT_POT_6, + RC_MK_GUARD_HOUSE_ADULT_POT_7, + RC_MK_GUARD_HOUSE_ADULT_POT_8, + RC_MK_GUARD_HOUSE_ADULT_POT_9, + RC_MK_GUARD_HOUSE_ADULT_POT_10, + RC_MK_GUARD_HOUSE_ADULT_POT_11, + RC_MK_BACK_ALLEY_HOUSE_POT_1, + RC_MK_BACK_ALLEY_HOUSE_POT_2, + RC_MK_BACK_ALLEY_HOUSE_POT_3, + RC_HC_STORMS_GROTTO_POT_1, + RC_HC_STORMS_GROTTO_POT_2, + RC_HC_STORMS_GROTTO_POT_3, + RC_HC_STORMS_GROTTO_POT_4, + RC_LLR_FRONT_POT_1, + RC_LLR_FRONT_POT_2, + RC_LLR_FRONT_POT_3, + RC_LLR_FRONT_POT_4, + RC_LLR_RAIN_SHED_POT_1, + RC_LLR_RAIN_SHED_POT_2, + RC_LLR_RAIN_SHED_POT_3, + RC_LLR_TALONS_HOUSE_POT_1, + RC_LLR_TALONS_HOUSE_POT_2, + RC_LLR_TALONS_HOUSE_POT_3, + RC_KAK_NEAR_POTION_SHOP_POT_1, + RC_KAK_NEAR_POTION_SHOP_POT_2, + RC_KAK_NEAR_POTION_SHOP_POT_3, + RC_KAK_NEAR_IMPAS_HOUSE_POT_1, + RC_KAK_NEAR_IMPAS_HOUSE_POT_2, + RC_KAK_NEAR_IMPAS_HOUSE_POT_3, + RC_KAK_NEAR_GUARDS_HOUSE_POT_1, + RC_KAK_NEAR_GUARDS_HOUSE_POT_2, + RC_KAK_NEAR_GUARDS_HOUSE_POT_3, + RC_KAK_NEAR_MEDICINE_SHOP_POT_1, + RC_KAK_NEAR_MEDICINE_SHOP_POT_2, + RC_GY_DAMPES_GRAVE_POT_1, + RC_GY_DAMPES_GRAVE_POT_2, + RC_GY_DAMPES_GRAVE_POT_3, + RC_GY_DAMPES_GRAVE_POT_4, + RC_GY_DAMPES_GRAVE_POT_5, + RC_GY_DAMPES_GRAVE_POT_6, + RC_GC_LOWER_STAIRCASE_POT_1, + RC_GC_LOWER_STAIRCASE_POT_2, + RC_GC_UPPER_STAIRCASE_POT_1, + RC_GC_UPPER_STAIRCASE_POT_2, + RC_GC_UPPER_STAIRCASE_POT_3, + RC_GC_MEDIGORON_POT_1, + RC_GC_DARUNIA_POT_1, + RC_GC_DARUNIA_POT_2, + RC_GC_DARUNIA_POT_3, + RC_DMC_NEAR_GC_POT_1, + RC_DMC_NEAR_GC_POT_2, + RC_DMC_NEAR_GC_POT_3, + RC_DMC_NEAR_GC_POT_4, + RC_ZD_NEAR_SHOP_POT_1, + RC_ZD_NEAR_SHOP_POT_2, + RC_ZD_NEAR_SHOP_POT_3, + RC_ZD_NEAR_SHOP_POT_4, + RC_ZD_NEAR_SHOP_POT_5, + RC_ZF_HIDDEN_CAVE_POT_1, + RC_ZF_HIDDEN_CAVE_POT_2, + RC_ZF_HIDDEN_CAVE_POT_3, + RC_ZF_NEAR_JABU_POT_1, + RC_ZF_NEAR_JABU_POT_2, + RC_ZF_NEAR_JABU_POT_3, + RC_ZF_NEAR_JABU_POT_4, + + // Dungeon Pots + RC_DODONGOS_CAVERN_LIZALFOS_POT_1, + RC_DODONGOS_CAVERN_LIZALFOS_POT_2, + RC_DODONGOS_CAVERN_LIZALFOS_POT_3, + RC_DODONGOS_CAVERN_LIZALFOS_POT_4, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_1, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_2, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_3, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_4, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_5, + RC_DODONGOS_CAVERN_SIDE_ROOM_POT_6, + RC_DODONGOS_CAVERN_TORCH_ROOM_POT_1, + RC_DODONGOS_CAVERN_TORCH_ROOM_POT_2, + RC_DODONGOS_CAVERN_TORCH_ROOM_POT_3, + RC_DODONGOS_CAVERN_TORCH_ROOM_POT_4, + RC_DODONGOS_CAVERN_STAIRCASE_POT_1, + RC_DODONGOS_CAVERN_STAIRCASE_POT_2, + RC_DODONGOS_CAVERN_STAIRCASE_POT_3, + RC_DODONGOS_CAVERN_STAIRCASE_POT_4, + RC_DODONGOS_CAVERN_SINGLE_EYE_POT_1, + RC_DODONGOS_CAVERN_SINGLE_EYE_POT_2, + RC_DODONGOS_CAVERN_BLADE_POT_1, + RC_DODONGOS_CAVERN_BLADE_POT_2, + RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_1, + RC_DODONGOS_CAVERN_DOUBLE_EYE_POT_2, + RC_DODONGOS_CAVERN_BACK_ROOM_POT_1, + RC_DODONGOS_CAVERN_BACK_ROOM_POT_2, + RC_DODONGOS_CAVERN_BACK_ROOM_POT_3, + RC_DODONGOS_CAVERN_BACK_ROOM_POT_4, + RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1, + RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2, + RC_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3, + RC_JABU_JABUS_BELLY_BARINADE_POT_1, + RC_JABU_JABUS_BELLY_BARINADE_POT_2, + RC_JABU_JABUS_BELLY_BARINADE_POT_3, + RC_JABU_JABUS_BELLY_BARINADE_POT_4, + RC_JABU_JABUS_BELLY_BARINADE_POT_5, + RC_JABU_JABUS_BELLY_BARINADE_POT_6, + RC_JABU_JABUS_BELLY_BASEMENT_POT_1, + RC_JABU_JABUS_BELLY_BASEMENT_POT_2, + RC_JABU_JABUS_BELLY_BASEMENT_POT_3, + RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1, + RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2, + RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3, + RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4, + RC_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_1, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_2, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_3, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_4, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_5, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_6, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_7, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_8, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_9, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_10, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_11, + RC_BOTTOM_OF_THE_WELL_BASEMENT_POT_12, + RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1, + RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2, + RC_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3, + RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1, + RC_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2, + RC_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1, + RC_BOTTOM_OF_THE_WELL_UNDERWATER_POT, + RC_FOREST_TEMPLE_LOBBY_POT_1, + RC_FOREST_TEMPLE_LOBBY_POT_2, + RC_FOREST_TEMPLE_LOBBY_POT_3, + RC_FOREST_TEMPLE_LOBBY_POT_4, + RC_FOREST_TEMPLE_LOBBY_POT_5, + RC_FOREST_TEMPLE_LOBBY_POT_6, + RC_FOREST_TEMPLE_LOWER_STALFOS_POT_1, + RC_FOREST_TEMPLE_LOWER_STALFOS_POT_2, + RC_FOREST_TEMPLE_GREEN_POE_POT_1, + RC_FOREST_TEMPLE_GREEN_POE_POT_2, + RC_FOREST_TEMPLE_UPPER_STALFOS_POT_1, + RC_FOREST_TEMPLE_UPPER_STALFOS_POT_2, + RC_FOREST_TEMPLE_UPPER_STALFOS_POT_3, + RC_FOREST_TEMPLE_UPPER_STALFOS_POT_4, + RC_FOREST_TEMPLE_BLUE_POE_POT_1, + RC_FOREST_TEMPLE_BLUE_POE_POT_2, + RC_FOREST_TEMPLE_BLUE_POE_POT_3, + RC_FOREST_TEMPLE_FROZEN_EYE_POT_1, + RC_FOREST_TEMPLE_FROZEN_EYE_POT_2, + RC_FIRE_TEMPLE_NEAR_BOSS_POT_1, + RC_FIRE_TEMPLE_NEAR_BOSS_POT_2, + RC_FIRE_TEMPLE_NEAR_BOSS_POT_3, + RC_FIRE_TEMPLE_NEAR_BOSS_POT_4, + RC_FIRE_TEMPLE_BIG_LAVA_POT_1, + RC_FIRE_TEMPLE_BIG_LAVA_POT_2, + RC_FIRE_TEMPLE_BIG_LAVA_POT_3, + RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1, + RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2, + RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3, + RC_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4, + RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1, + RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2, + RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3, + RC_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4, + RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_1, + RC_WATER_TEMPLE_MAIN_LEVEL_2_POT_2, + RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_1, + RC_WATER_TEMPLE_MAIN_LEVEL_1_POT_2, + RC_WATER_TEMPLE_TORCH_POT_1, + RC_WATER_TEMPLE_TORCH_POT_2, + RC_WATER_TEMPLE_NEAR_COMPASS_POT_1, + RC_WATER_TEMPLE_NEAR_COMPASS_POT_2, + RC_WATER_TEMPLE_NEAR_COMPASS_POT_3, + RC_WATER_TEMPLE_CENTRAL_BOW_POT_1, + RC_WATER_TEMPLE_CENTRAL_BOW_POT_2, + RC_WATER_TEMPLE_BEHIND_GATE_POT_1, + RC_WATER_TEMPLE_BEHIND_GATE_POT_2, + RC_WATER_TEMPLE_BEHIND_GATE_POT_3, + RC_WATER_TEMPLE_BEHIND_GATE_POT_4, + RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1, + RC_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2, + RC_WATER_TEMPLE_RIVER_POT_1, + RC_WATER_TEMPLE_RIVER_POT_2, + RC_WATER_TEMPLE_LIKE_LIKE_POT_1, + RC_WATER_TEMPLE_LIKE_LIKE_POT_2, + RC_WATER_TEMPLE_BOSS_KEY_POT_1, + RC_WATER_TEMPLE_BOSS_KEY_POT_2, + RC_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1, + RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1, + RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2, + RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3, + RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4, + RC_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5, + RC_SHADOW_TEMPLE_MAP_CHEST_POT_1, + RC_SHADOW_TEMPLE_MAP_CHEST_POT_2, + RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_1, + RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_2, + RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_3, + RC_SHADOW_TEMPLE_FALLING_SPIKES_POT_4, + RC_SHADOW_TEMPLE_AFTER_WIND_POT_1, + RC_SHADOW_TEMPLE_AFTER_WIND_POT_2, + RC_SHADOW_TEMPLE_SPIKE_WALLS_POT_1, + RC_SHADOW_TEMPLE_FLOORMASTER_POT_1, + RC_SHADOW_TEMPLE_FLOORMASTER_POT_2, + RC_SHADOW_TEMPLE_AFTER_BOAT_POT_1, + RC_SHADOW_TEMPLE_AFTER_BOAT_POT_2, + RC_SHADOW_TEMPLE_AFTER_BOAT_POT_3, + RC_SHADOW_TEMPLE_AFTER_BOAT_POT_4, + RC_SPIRIT_TEMPLE_LOBBY_POT_1, + RC_SPIRIT_TEMPLE_LOBBY_POT_2, + RC_SPIRIT_TEMPLE_ANUBIS_POT_1, + RC_SPIRIT_TEMPLE_ANUBIS_POT_2, + RC_SPIRIT_TEMPLE_ANUBIS_POT_3, + RC_SPIRIT_TEMPLE_ANUBIS_POT_4, + RC_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1, + RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1, + RC_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5, + RC_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6, + RC_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1, + RC_ICE_CAVERN_HALL_POT_1, + RC_ICE_CAVERN_HALL_POT_2, + RC_ICE_CAVERN_SPINNING_BLADE_POT_1, + RC_ICE_CAVERN_SPINNING_BLADE_POT_2, + RC_ICE_CAVERN_SPINNING_BLADE_POT_3, + RC_ICE_CAVERN_NEAR_END_POT_1, + RC_ICE_CAVERN_NEAR_END_POT_2, + RC_ICE_CAVERN_FROZEN_POT_1, + RC_GANONS_CASTLE_FOREST_TRIAL_POT_1, + RC_GANONS_CASTLE_FOREST_TRIAL_POT_2, + RC_GANONS_CASTLE_FIRE_TRIAL_POT_1, + RC_GANONS_CASTLE_FIRE_TRIAL_POT_2, + RC_GANONS_CASTLE_WATER_TRIAL_POT_1, + RC_GANONS_CASTLE_WATER_TRIAL_POT_2, + RC_GANONS_CASTLE_WATER_TRIAL_POT_3, + RC_GANONS_CASTLE_SHADOW_TRIAL_POT_1, + RC_GANONS_CASTLE_SHADOW_TRIAL_POT_2, + RC_GANONS_CASTLE_SHADOW_TRIAL_POT_3, + RC_GANONS_CASTLE_SHADOW_TRIAL_POT_4, + RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_1, + RC_GANONS_CASTLE_SPIRIT_TRIAL_POT_2, + RC_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1, + RC_GANONS_CASTLE_LIGHT_TRIAL_POT_1, + RC_GANONS_CASTLE_LIGHT_TRIAL_POT_2, + RC_GANONS_CASTLE_GANONS_TOWER_POT_1, + RC_GANONS_CASTLE_GANONS_TOWER_POT_2, + RC_GANONS_CASTLE_GANONS_TOWER_POT_3, + RC_GANONS_CASTLE_GANONS_TOWER_POT_4, + RC_GANONS_CASTLE_GANONS_TOWER_POT_5, + RC_GANONS_CASTLE_GANONS_TOWER_POT_6, + RC_GANONS_CASTLE_GANONS_TOWER_POT_7, + RC_GANONS_CASTLE_GANONS_TOWER_POT_8, + RC_GANONS_CASTLE_GANONS_TOWER_POT_9, + RC_GANONS_CASTLE_GANONS_TOWER_POT_10, + RC_GANONS_CASTLE_GANONS_TOWER_POT_11, + RC_GANONS_CASTLE_GANONS_TOWER_POT_12, + RC_GANONS_CASTLE_GANONS_TOWER_POT_13, + RC_GANONS_CASTLE_GANONS_TOWER_POT_14, + RC_GANONS_CASTLE_GANONS_TOWER_POT_15, + RC_GANONS_CASTLE_GANONS_TOWER_POT_16, + RC_GANONS_CASTLE_GANONS_TOWER_POT_17, + RC_GANONS_CASTLE_GANONS_TOWER_POT_18, + + // MQ Dungeon Pots + RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1, + RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2, + RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3, + RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4, + RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1, + RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2, + RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3, + RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4, + RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1, + RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2, + RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3, + RC_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4, + RC_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_1, + RC_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_2, + RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1, + RC_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2, + RC_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_1, + RC_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_2, + RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1, + RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2, + RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3, + RC_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4, + RC_DODONGOS_CAVERN_MQ_ARMOS_POT_1, + RC_DODONGOS_CAVERN_MQ_ARMOS_POT_2, + RC_DODONGOS_CAVERN_MQ_ARMOS_POT_3, + RC_DODONGOS_CAVERN_MQ_ARMOS_POT_4, + RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_1, + RC_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_2, + RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_1, + RC_DODONGOS_CAVERN_MQ_BACKROOM_POT_2, + RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1, + RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2, + RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_1, + RC_JABU_JABUS_BELLY_MQ_GEYSER_POT_2, + RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1, + RC_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2, + RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1, + RC_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2, + RC_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1, + RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1, + RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2, + RC_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3, + RC_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT, + RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_1, + RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_2, + RC_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_3, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_1, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_2, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_3, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_4, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_5, + RC_FOREST_TEMPLE_MQ_LOBBY_POT_6, + RC_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_1, + RC_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_2, + RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1, + RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2, + RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3, + RC_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4, + RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_1, + RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_2, + RC_FOREST_TEMPLE_MQ_BLUE_POE_POT_3, + RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_1, + RC_FOREST_TEMPLE_MQ_GREEN_POE_POT_2, + RC_FOREST_TEMPLE_MQ_BASEMENT_POT_1, + RC_FOREST_TEMPLE_MQ_BASEMENT_POT_2, + RC_FOREST_TEMPLE_MQ_BASEMENT_POT_3, + RC_FOREST_TEMPLE_MQ_BASEMENT_POT_4, + RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_1, + RC_FIRE_TEMPLE_MQ_ENTRANCE_POT_2, + RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1, + RC_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2, + RC_FIRE_TEMPLE_MQ_LAVA_POT_1, + RC_FIRE_TEMPLE_MQ_LAVA_POT_2, + RC_FIRE_TEMPLE_MQ_LAVA_POT_3, + RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1, + RC_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2, + RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1, + RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2, + RC_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3, + RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1, + RC_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_1, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_2, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_3, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_4, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_5, + RC_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_6, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7, + RC_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8, + RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_1, + RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_2, + RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_3, + RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_4, + RC_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_5, + RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1, + RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2, + RC_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3, + RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1, + RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2, + RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_3, + RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_4, + RC_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_5, + RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1, + RC_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2, + RC_WATER_TEMPLE_MQ_RIVER_POT_1, + RC_WATER_TEMPLE_MQ_RIVER_POT_2, + RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1, + RC_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2, + RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1, + RC_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2, + RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1, + RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2, + RC_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3, + RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1, + RC_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2, + RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_1, + RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_2, + RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_3, + RC_WATER_TEMPLE_MQ_LOWEST_GS_POT_4, + RC_WATER_TEMPLE_MQ_BOSS_KEY_POT, + RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1, + RC_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2, + RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1, + RC_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_1, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_2, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_3, + RC_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_4, + RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1, + RC_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2, + RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_1, + RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_2, + RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_3, + RC_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_4, + RC_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT, + RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1, + RC_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3, + RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4, + RC_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT, + RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1, + RC_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2, + RC_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT, + RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1, + RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2, + RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3, + RC_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4, + RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_1, + RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_2, + RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_3, + RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_4, + RC_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_5, + RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1, + RC_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2, + RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1, + RC_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2, + RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1, + RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2, + RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3, + RC_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4, + RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1, + RC_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2, + RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1, + RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2, + RC_ICE_CAVERN_MQ_ENTRANCE_POT, + RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1, + RC_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2, + RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1, + RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2, + RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3, + RC_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4, + RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1, + RC_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2, + RC_ICE_CAVERN_MQ_COMPASS_POT_1, + RC_ICE_CAVERN_MQ_COMPASS_POT_2, + RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2, + RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2, + RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2, + RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2, + RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2, + RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1, + RC_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2, + // End Pots + RC_PIERRE, RC_DELIVER_RUTOS_LETTER, RC_MASTER_SWORD_PEDESTAL, @@ -3620,6 +4167,30 @@ typedef enum { RHT_OOT_HINT, RHT_SKULLS_HINT, RHT_MASK_SHOP_HINT, + // Shuffle Pots + RHT_POT_KOKIRI_FOREST, + RHT_POT_GERUDO_FORTRESS, + RHT_POT_WASTELAND, + RHT_POT_MARKET, + RHT_POT_KAKARIKO, + RHT_POT_GRAVEYARD, + RHT_POT_GORON_CITY, + RHT_POT_DEATH_MOUNTAIN_CRATER, + RHT_POT_ZORAS_DOMAIN, + RHT_POT_ZORAS_FOUNTAIN, + RHT_POT_LON_LON_RANCH, + RHT_POT_HYRULE_FIELD, + RHT_POT_HYRULE_CASTLE, + RHT_POT_DODONGOS_CAVERN, + RHT_POT_JABU_JABUS_BELLY, + RHT_POT_FOREST_TEMPLE, + RHT_POT_FIRE_TEMPLE, + RHT_POT_WATER_TEMPLE, + RHT_POT_SHADOW_TEMPLE, + RHT_POT_SPIRIT_TEMPLE, + RHT_POT_GANONS_CASTLE, + RHT_POT_BOTTOM_OF_THE_WELL, + RHT_POT_ICE_CAVERN, // Ganon Line RHT_GANON_JOKE01, RHT_GANON_JOKE02, @@ -3636,6 +4207,7 @@ typedef enum { RHT_YOUR_POCKET, RHT_DUNGEON_ORDINARY, RHT_DUNGEON_MASTERFUL, + // MAX RHT_MAX } RandomizerHintTextKey; @@ -3763,6 +4335,7 @@ typedef enum { RSK_SHUFFLE_COWS, RSK_SHUFFLE_WEIRD_EGG, RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD, + RSK_SHUFFLE_POTS, RSK_SHUFFLE_FROG_SONG_RUPEES, RSK_ITEM_POOL, RSK_ICE_TRAPS, @@ -4204,6 +4777,14 @@ typedef enum { RO_TOKENSANITY_ALL, } RandoOptionTokensanity; +// Shuffle Pots settings (off, dungeons, overworld, all) +typedef enum { + RO_SHUFFLE_POTS_OFF, + RO_SHUFFLE_POTS_DUNGEONS, + RO_SHUFFLE_POTS_OVERWORLD, + RO_SHUFFLE_POTS_ALL, +} RandoOptionShufflePots; + //Link's Pocket Settings (dungeon reward, advancement, anything, nothing) typedef enum { RO_LINKS_POCKET_DUNGEON_REWARD, @@ -4290,6 +4871,11 @@ typedef struct CowIdentity { RandomizerCheck randomizerCheck; } CowIdentity; +typedef struct PotIdentity { + RandomizerInf randomizerInf; + RandomizerCheck randomizerCheck; +} PotIdentity; + typedef struct FishIdentity { RandomizerInf randomizerInf; RandomizerCheck randomizerCheck; diff --git a/soh/soh/Enhancements/randomizer/randomizer_check_objects.cpp b/soh/soh/Enhancements/randomizer/randomizer_check_objects.cpp index 3b5eed450f7..ba8f306d25e 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_check_objects.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer_check_objects.cpp @@ -156,6 +156,7 @@ void RandomizerCheckObjects::UpdateImGuiVisibility() { RandomizerCheckObjects::AreaIsDungeon(location.GetArea()))) && (location.GetRCType() != RCTYPE_BEEHIVE || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleBeehives"), RO_GENERIC_NO)) && (location.GetRCType() != RCTYPE_COW || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleCows"), RO_GENERIC_NO)) && + (location.GetRCType() != RCTYPE_POT || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShufflePots"), RO_GENERIC_NO)) && (location.GetRCType() != RCTYPE_FISH || ctx->GetFishsanity()->GetFishLocationIncluded(&location, FSO_SOURCE_CVARS)) && (location.GetRCType() != RCTYPE_ADULT_TRADE || CVarGetInteger(CVAR_RANDOMIZER_SETTING("ShuffleAdultTrade"), RO_GENERIC_NO)) && diff --git a/soh/soh/Enhancements/randomizer/randomizer_check_objects.h b/soh/soh/Enhancements/randomizer/randomizer_check_objects.h index bf9cc98f729..6ab5b8314a9 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_check_objects.h +++ b/soh/soh/Enhancements/randomizer/randomizer_check_objects.h @@ -6,10 +6,6 @@ #include #include -// ABS macro to use since `std::abs` is not constexpr yet -#define ABS(x) ((x) < 0 ? -(x) : (x)) -#define TWO_ACTOR_PARAMS(a, b) (ABS(a) << 16) | ABS(b) - namespace RandomizerCheckObjects { bool AreaIsDungeon(RandomizerCheckArea area); bool AreaIsOverworld(RandomizerCheckArea area); diff --git a/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp b/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp index 29b99106b93..794a94b0f06 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp +++ b/soh/soh/Enhancements/randomizer/randomizer_check_tracker.cpp @@ -68,6 +68,8 @@ bool showMasterSword; bool showHyruleLoach; bool showWeirdEgg; bool showGerudoCard; +bool showOverworldPots; +bool showDungeonPots; bool showFrogSongRupees; bool showStartingMapsCompasses; bool showKeysanity; @@ -472,6 +474,7 @@ bool HasItemBeenCollected(RandomizerCheck rc) { case SpoilerCollectionCheckType::SPOILER_CHK_FISH: case SpoilerCollectionCheckType::SPOILER_CHK_RANDOMIZER_INF: case SpoilerCollectionCheckType::SPOILER_CHK_MASTER_SWORD: + case SpoilerCollectionCheckType::SPOILER_CHK_POT: return Flags_GetRandomizerInf(OTRGlobals::Instance->gRandomizer->GetRandomizerInfFromCheck(rc)); case SpoilerCollectionCheckType::SPOILER_CHK_EVENT_CHK_INF: return gSaveContext.eventChkInf[flag / 16] & (0x01 << flag % 16); @@ -805,6 +808,7 @@ void CheckTrackerFlagSet(int16_t flagType, int32_t flag) { if (checkMatchType == SpoilerCollectionCheckType::SPOILER_CHK_RANDOMIZER_INF && (scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_SHOP_ITEM || scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_FISH || + scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_POT || scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_MASTER_SWORD || scCheckType == SpoilerCollectionCheckType::SPOILER_CHK_RANDOMIZER_INF)) { if (flag == OTRGlobals::Instance->gRandomizer->GetRandomizerInfFromCheck(loc.GetRandomizerCheck())) { @@ -1253,9 +1257,30 @@ void LoadSettings() { showDungeonTokens = false; break; } + + switch (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_POTS)) { + case RO_SHUFFLE_POTS_ALL: + showOverworldPots = true; + showDungeonPots = true; + break; + case RO_SHUFFLE_POTS_OVERWORLD: + showOverworldPots = true; + showDungeonPots = false; + break; + case RO_SHUFFLE_POTS_DUNGEONS: + showOverworldPots = false; + showDungeonPots = true; + break; + default: + showOverworldPots = false; + showDungeonPots = false; + break; + } } else { // Vanilla showOverworldTokens = true; showDungeonTokens = true; + showOverworldPots = false; + showDungeonPots = false; } fortressFast = false; @@ -1308,6 +1333,9 @@ bool IsCheckShuffled(RandomizerCheck rc) { (showOverworldTokens && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) || (showDungeonTokens && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea())) ) && + (loc->GetRCType() != RCTYPE_POT || + (showOverworldPots && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) || + (showDungeonPots && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))) && (loc->GetRCType() != RCTYPE_COW || showCows) && (loc->GetRCType() != RCTYPE_FISH || OTRGlobals::Instance->gRandoContext->GetFishsanity()->GetFishLocationIncluded(loc)) && (loc->GetRCType() != RCTYPE_ADULT_TRADE || diff --git a/soh/soh/Enhancements/randomizer/randomizer_inf.h b/soh/soh/Enhancements/randomizer/randomizer_inf.h index 20aab303209..1421ff72854 100644 --- a/soh/soh/Enhancements/randomizer/randomizer_inf.h +++ b/soh/soh/Enhancements/randomizer/randomizer_inf.h @@ -202,6 +202,545 @@ typedef enum { RAND_INF_HAS_OCARINA_C_LEFT, RAND_INF_HAS_OCARINA_C_RIGHT, + RAND_INF_KF_LINKS_HOUSE_POT, + RAND_INF_KF_TWINS_HOUSE_POT_1, + RAND_INF_KF_TWINS_HOUSE_POT_2, + RAND_INF_KF_BROTHERS_HOUSE_POT_1, + RAND_INF_KF_BROTHERS_HOUSE_POT_2, + RAND_INF_GF_BREAK_ROOM_POT_1, + RAND_INF_GF_BREAK_ROOM_POT_2, + RAND_INF_GF_KITCHEN_POT_1, + RAND_INF_GF_KITCHEN_POT_2, + RAND_INF_GF_NORTH_F1_CARPENTER_POT_1, + RAND_INF_GF_NORTH_F1_CARPENTER_POT_2, + RAND_INF_GF_NORTH_F1_CARPENTER_POT_3, + RAND_INF_GF_NORTH_F2_CARPENTER_POT_1, + RAND_INF_GF_NORTH_F2_CARPENTER_POT_2, + RAND_INF_GF_SOUTH_F1_CARPENTER_POT_1, + RAND_INF_GF_SOUTH_F1_CARPENTER_POT_2, + RAND_INF_GF_SOUTH_F1_CARPENTER_POT_3, + RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_1, + RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_2, + RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_3, + RAND_INF_GF_SOUTH_F1_CARPENTER_CELL_POT_4, + RAND_INF_WASTELAND_NEAR_GS_POT_1, + RAND_INF_WASTELAND_NEAR_GS_POT_2, + RAND_INF_WASTELAND_NEAR_GS_POT_3, + RAND_INF_WASTELAND_NEAR_GS_POT_4, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_1, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_2, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_3, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_4, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_5, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_6, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_7, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_8, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_9, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_10, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_11, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_12, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_13, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_14, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_15, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_16, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_17, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_18, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_19, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_20, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_21, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_22, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_23, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_24, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_25, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_26, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_27, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_28, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_29, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_30, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_31, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_32, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_33, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_34, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_35, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_36, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_37, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_38, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_39, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_40, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_41, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_42, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_43, + RAND_INF_MK_GUARD_HOUSE_CHILD_POT_44, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_1, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_2, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_3, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_4, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_5, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_6, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_7, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_8, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_9, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_10, + RAND_INF_MK_GUARD_HOUSE_ADULT_POT_11, + RAND_INF_MK_BACK_ALLEY_HOUSE_POT_1, + RAND_INF_MK_BACK_ALLEY_HOUSE_POT_2, + RAND_INF_MK_BACK_ALLEY_HOUSE_POT_3, + RAND_INF_KAK_NEAR_POTION_SHOP_POT_1, + RAND_INF_KAK_NEAR_POTION_SHOP_POT_2, + RAND_INF_KAK_NEAR_POTION_SHOP_POT_3, + RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_1, + RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_2, + RAND_INF_KAK_NEAR_IMPAS_HOUSE_POT_3, + RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_1, + RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_2, + RAND_INF_KAK_NEAR_GUARDS_HOUSE_POT_3, + RAND_INF_KAK_NEAR_MEDICINE_SHOP_POT_1, + RAND_INF_KAK_NEAR_MEDICINE_SHOP_POT_2, + RAND_INF_GY_DAMPES_GRAVE_POT_1, + RAND_INF_GY_DAMPES_GRAVE_POT_2, + RAND_INF_GY_DAMPES_GRAVE_POT_3, + RAND_INF_GY_DAMPES_GRAVE_POT_4, + RAND_INF_GY_DAMPES_GRAVE_POT_5, + RAND_INF_GY_DAMPES_GRAVE_POT_6, + RAND_INF_GC_LOWER_STAIRCASE_POT_1, + RAND_INF_GC_LOWER_STAIRCASE_POT_2, + RAND_INF_GC_UPPER_STAIRCASE_POT_1, + RAND_INF_GC_UPPER_STAIRCASE_POT_2, + RAND_INF_GC_UPPER_STAIRCASE_POT_3, + RAND_INF_GC_MEDIGORON_POT_1, + RAND_INF_GC_DARUNIA_POT_1, + RAND_INF_GC_DARUNIA_POT_2, + RAND_INF_GC_DARUNIA_POT_3, + RAND_INF_DMC_NEAR_GC_POT_1, + RAND_INF_DMC_NEAR_GC_POT_2, + RAND_INF_DMC_NEAR_GC_POT_3, + RAND_INF_DMC_NEAR_GC_POT_4, + RAND_INF_ZD_NEAR_SHOP_POT_1, + RAND_INF_ZD_NEAR_SHOP_POT_2, + RAND_INF_ZD_NEAR_SHOP_POT_3, + RAND_INF_ZD_NEAR_SHOP_POT_4, + RAND_INF_ZD_NEAR_SHOP_POT_5, + RAND_INF_ZF_HIDDEN_CAVE_POT_1, + RAND_INF_ZF_HIDDEN_CAVE_POT_2, + RAND_INF_ZF_HIDDEN_CAVE_POT_3, + RAND_INF_ZF_NEAR_JABU_POT_1, + RAND_INF_ZF_NEAR_JABU_POT_2, + RAND_INF_ZF_NEAR_JABU_POT_3, + RAND_INF_ZF_NEAR_JABU_POT_4, + RAND_INF_LLR_FRONT_POT_1, + RAND_INF_LLR_FRONT_POT_2, + RAND_INF_LLR_FRONT_POT_3, + RAND_INF_LLR_FRONT_POT_4, + RAND_INF_LLR_RAIN_SHED_POT_1, + RAND_INF_LLR_RAIN_SHED_POT_2, + RAND_INF_LLR_RAIN_SHED_POT_3, + RAND_INF_LLR_TALONS_HOUSE_POT_1, + RAND_INF_LLR_TALONS_HOUSE_POT_2, + RAND_INF_LLR_TALONS_HOUSE_POT_3, + RAND_INF_HF_COW_GROTTO_POT_1, + RAND_INF_HF_COW_GROTTO_POT_2, + RAND_INF_HC_STORMS_GROTTO_POT_1, + RAND_INF_HC_STORMS_GROTTO_POT_2, + RAND_INF_HC_STORMS_GROTTO_POT_3, + RAND_INF_HC_STORMS_GROTTO_POT_4, + + RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_1, + RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_2, + RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_3, + RAND_INF_DODONGOS_CAVERN_LIZALFOS_POT_4, + RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_1, + RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_2, + RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_3, + RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_4, + RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_5, + RAND_INF_DODONGOS_CAVERN_SIDE_ROOM_POT_6, + RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_1, + RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_2, + RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_3, + RAND_INF_DODONGOS_CAVERN_TORCH_ROOM_POT_4, + RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_1, + RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_2, + RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_3, + RAND_INF_DODONGOS_CAVERN_STAIRCASE_POT_4, + RAND_INF_DODONGOS_CAVERN_SINGLE_EYE_POT_1, + RAND_INF_DODONGOS_CAVERN_SINGLE_EYE_POT_2, + RAND_INF_DODONGOS_CAVERN_BLADE_POT_1, + RAND_INF_DODONGOS_CAVERN_BLADE_POT_2, + RAND_INF_DODONGOS_CAVERN_DOUBLE_EYE_POT_1, + RAND_INF_DODONGOS_CAVERN_DOUBLE_EYE_POT_2, + RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_1, + RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_2, + RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_3, + RAND_INF_DODONGOS_CAVERN_BACK_ROOM_POT_4, + RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_1, + RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_2, + RAND_INF_JABU_JABUS_BELLY_ABOVE_BIG_OCTO_POT_3, + RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_1, + RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_2, + RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_3, + RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_4, + RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_5, + RAND_INF_JABU_JABUS_BELLY_BARINADE_POT_6, + RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_1, + RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_2, + RAND_INF_JABU_JABUS_BELLY_BASEMENT_POT_3, + RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_1, + RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_2, + RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_3, + RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_4, + RAND_INF_JABU_JABUS_BELLY_TWO_OCTOROK_POT_5, + RAND_INF_FOREST_TEMPLE_LOBBY_POT_1, + RAND_INF_FOREST_TEMPLE_LOBBY_POT_2, + RAND_INF_FOREST_TEMPLE_LOBBY_POT_3, + RAND_INF_FOREST_TEMPLE_LOBBY_POT_4, + RAND_INF_FOREST_TEMPLE_LOBBY_POT_5, + RAND_INF_FOREST_TEMPLE_LOBBY_POT_6, + RAND_INF_FOREST_TEMPLE_LOWER_STALFOS_POT_1, + RAND_INF_FOREST_TEMPLE_LOWER_STALFOS_POT_2, + RAND_INF_FOREST_TEMPLE_GREEN_POE_POT_1, + RAND_INF_FOREST_TEMPLE_GREEN_POE_POT_2, + RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_1, + RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_2, + RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_3, + RAND_INF_FOREST_TEMPLE_UPPER_STALFOS_POT_4, + RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_1, + RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_2, + RAND_INF_FOREST_TEMPLE_BLUE_POE_POT_3, + RAND_INF_FOREST_TEMPLE_FROZEN_EYE_POT_1, + RAND_INF_FOREST_TEMPLE_FROZEN_EYE_POT_2, + RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_1, + RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_2, + RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_3, + RAND_INF_FIRE_TEMPLE_NEAR_BOSS_POT_4, + RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_1, + RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_2, + RAND_INF_FIRE_TEMPLE_BIG_LAVA_POT_3, + RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_1, + RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_2, + RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_3, + RAND_INF_FIRE_TEMPLE_FLAME_MAZE_LEFT_POT_4, + RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_1, + RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_2, + RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_3, + RAND_INF_FIRE_TEMPLE_FLAME_MAZE_RIGHT_POT_4, + RAND_INF_WATER_TEMPLE_MAIN_LEVEL_2_POT_1, + RAND_INF_WATER_TEMPLE_MAIN_LEVEL_2_POT_2, + RAND_INF_WATER_TEMPLE_MAIN_LEVEL_1_POT_1, + RAND_INF_WATER_TEMPLE_MAIN_LEVEL_1_POT_2, + RAND_INF_WATER_TEMPLE_TORCH_POT_1, + RAND_INF_WATER_TEMPLE_TORCH_POT_2, + RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_1, + RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_2, + RAND_INF_WATER_TEMPLE_NEAR_COMPASS_POT_3, + RAND_INF_WATER_TEMPLE_CENTRAL_BOW_POT_1, + RAND_INF_WATER_TEMPLE_CENTRAL_BOW_POT_2, + RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_1, + RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_2, + RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_3, + RAND_INF_WATER_TEMPLE_BEHIND_GATE_POT_4, + RAND_INF_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_1, + RAND_INF_WATER_TEMPLE_BASEMENT_BLOCK_PUZZLE_POT_2, + RAND_INF_WATER_TEMPLE_RIVER_POT_1, + RAND_INF_WATER_TEMPLE_RIVER_POT_2, + RAND_INF_WATER_TEMPLE_LIKE_LIKE_POT_1, + RAND_INF_WATER_TEMPLE_LIKE_LIKE_POT_2, + RAND_INF_WATER_TEMPLE_BOSS_KEY_POT_1, + RAND_INF_WATER_TEMPLE_BOSS_KEY_POT_2, + RAND_INF_SHADOW_TEMPLE_NEAR_DEAD_HAND_POT_1, + RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_1, + RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_2, + RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_3, + RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_4, + RAND_INF_SHADOW_TEMPLE_WHISPERING_WALLS_POT_5, + RAND_INF_SHADOW_TEMPLE_MAP_CHEST_POT_1, + RAND_INF_SHADOW_TEMPLE_MAP_CHEST_POT_2, + RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_1, + RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_2, + RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_3, + RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_POT_4, + RAND_INF_SHADOW_TEMPLE_AFTER_WIND_POT_1, + RAND_INF_SHADOW_TEMPLE_AFTER_WIND_POT_2, + RAND_INF_SHADOW_TEMPLE_SPIKE_WALLS_POT_1, + RAND_INF_SHADOW_TEMPLE_FLOORMASTER_POT_1, + RAND_INF_SHADOW_TEMPLE_FLOORMASTER_POT_2, + RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_1, + RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_2, + RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_3, + RAND_INF_SHADOW_TEMPLE_AFTER_BOAT_POT_4, + RAND_INF_SPIRIT_TEMPLE_LOBBY_POT_1, + RAND_INF_SPIRIT_TEMPLE_LOBBY_POT_2, + RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_1, + RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_2, + RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_3, + RAND_INF_SPIRIT_TEMPLE_ANUBIS_POT_4, + RAND_INF_SPIRIT_TEMPLE_CHILD_CLIMB_POT_1, + RAND_INF_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_1, + RAND_INF_SPIRIT_TEMPLE_AFTER_SUN_BLOCK_POT_2, + RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_1, + RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_2, + RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_3, + RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_4, + RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_5, + RAND_INF_SPIRIT_TEMPLE_CENTRAL_CHAMBER_POT_6, + RAND_INF_SPIRIT_TEMPLE_BEAMOS_HALL_POT_1, + RAND_INF_GANONS_CASTLE_FOREST_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_FOREST_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_FIRE_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_FIRE_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_WATER_TRIAL_POT_3, + RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_3, + RAND_INF_GANONS_CASTLE_SHADOW_TRIAL_POT_4, + RAND_INF_GANONS_CASTLE_SPIRIT_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_SPIRIT_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_BOULDER_POT_1, + RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_LIGHT_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_1, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_2, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_3, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_4, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_5, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_6, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_7, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_8, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_9, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_10, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_11, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_12, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_13, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_14, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_15, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_16, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_17, + RAND_INF_GANONS_CASTLE_GANONS_TOWER_POT_18, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_1, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_2, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_3, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_4, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_5, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_6, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_7, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_8, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_9, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_10, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_11, + RAND_INF_BOTTOM_OF_THE_WELL_BASEMENT_POT_12, + RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_1, + RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_2, + RAND_INF_BOTTOM_OF_THE_WELL_LEFT_SIDE_POT_3, + RAND_INF_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_1, + RAND_INF_BOTTOM_OF_THE_WELL_NEAR_ENTRANCE_POT_2, + RAND_INF_BOTTOM_OF_THE_WELL_FIRE_KEESE_POT_1, + RAND_INF_BOTTOM_OF_THE_WELL_UNDERWATER_POT, + RAND_INF_ICE_CAVERN_HALL_POT_1, + RAND_INF_ICE_CAVERN_HALL_POT_2, + RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_1, + RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_2, + RAND_INF_ICE_CAVERN_SPINNING_BLADE_POT_3, + RAND_INF_ICE_CAVERN_NEAR_END_POT_1, + RAND_INF_ICE_CAVERN_NEAR_END_POT_2, + RAND_INF_ICE_CAVERN_FROZEN_POT_1, + + RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_1, + RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2, + RAND_INF_JABU_JABUS_BELLY_MQ_GEYSER_POT_1, + RAND_INF_JABU_JABUS_BELLY_MQ_GEYSER_POT_2, + RAND_INF_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_1, + RAND_INF_JABU_JABUS_BELLY_MQ_TIME_BLOCK_POT_2, + RAND_INF_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_1, + RAND_INF_JABU_JABUS_BELLY_MQ_LIKE_LIKES_POT_2, + RAND_INF_JABU_JABUS_BELLY_MQ_BEFORE_BOSS_POT_1, + RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_1, + RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_2, + RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_3, + RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_4, + RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_5, + RAND_INF_FOREST_TEMPLE_MQ_LOBBY_POT_6, + RAND_INF_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_1, + RAND_INF_FOREST_TEMPLE_MQ_LOWER_STALFOS_POT_2, + RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_1, + RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_2, + RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_3, + RAND_INF_FOREST_TEMPLE_MQ_UPPER_STALFOS_POT_4, + RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_1, + RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_2, + RAND_INF_FOREST_TEMPLE_MQ_BLUE_POE_POT_3, + RAND_INF_FOREST_TEMPLE_MQ_GREEN_POE_POT_1, + RAND_INF_FOREST_TEMPLE_MQ_GREEN_POE_POT_2, + RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_1, + RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_2, + RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_3, + RAND_INF_FOREST_TEMPLE_MQ_BASEMENT_POT_4, + RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_1, + RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2, + RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3, + RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4, + RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_1, + RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_2, + RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3, + RAND_INF_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4, + RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_1, + RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_2, + RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_3, + RAND_INF_DODONGOS_CAVERN_MQ_POE_ROOM_POT_4, + RAND_INF_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_1, + RAND_INF_DODONGOS_CAVERN_MQ_BLOCK_ROOM_POT_2, + RAND_INF_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_1, + RAND_INF_DODONGOS_CAVERN_MQ_TWO_FLAMES_POT_2, + RAND_INF_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_1, + RAND_INF_DODONGOS_CAVERN_MQ_SILVER_BLOCK_POT_2, + RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_1, + RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_2, + RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_3, + RAND_INF_DODONGOS_CAVERN_MQ_STAIRCASE_POT_4, + RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_1, + RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_2, + RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_3, + RAND_INF_DODONGOS_CAVERN_MQ_ARMOS_POT_4, + RAND_INF_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_1, + RAND_INF_DODONGOS_CAVERN_MQ_BEFORE_BOSS_POT_2, + RAND_INF_DODONGOS_CAVERN_MQ_BACKROOM_POT_1, + RAND_INF_DODONGOS_CAVERN_MQ_BACKROOM_POT_2, + RAND_INF_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_MQ_FOREST_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_MQ_WATER_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_MQ_WATER_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_MQ_SHADOW_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_MQ_FIRE_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_MQ_LIGHT_TRIAL_POT_2, + RAND_INF_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_1, + RAND_INF_GANONS_CASTLE_MQ_SPIRIT_TRIAL_POT_2, + RAND_INF_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_1, + RAND_INF_SHADOW_TEMPLE_MQ_WHISPERING_WALLS_POT_2, + RAND_INF_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_1, + RAND_INF_SHADOW_TEMPLE_MQ_ENTRANCE_REDEAD_POT_2, + RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_1, + RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_2, + RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_3, + RAND_INF_SHADOW_TEMPLE_MQ_FALLING_SPIKES_POT_4, + RAND_INF_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_1, + RAND_INF_SHADOW_TEMPLE_MQ_BEFORE_BOAT_POT_2, + RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_1, + RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_2, + RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_3, + RAND_INF_SHADOW_TEMPLE_MQ_AFTER_BOAT_POT_4, + RAND_INF_SHADOW_TEMPLE_MQ_SPIKE_BARICADE_POT, + RAND_INF_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_1, + RAND_INF_SHADOW_TEMPLE_MQ_DEAD_HAND_POT_2, + RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_1, + RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_2, + RAND_INF_BOTTOM_OF_THE_WELL_MQ_INNER_LOBBY_POT_3, + RAND_INF_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT, + RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_1, + RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_2, + RAND_INF_BOTTOM_OF_THE_WELL_MQ_SOUTH_KEY_POT_3, + RAND_INF_FIRE_TEMPLE_MQ_ENTRANCE_POT_1, + RAND_INF_FIRE_TEMPLE_MQ_ENTRANCE_POT_2, + RAND_INF_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_1, + RAND_INF_FIRE_TEMPLE_MQ_OUTSIDE_BOSS_POT_2, + RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_1, + RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_2, + RAND_INF_FIRE_TEMPLE_MQ_LAVA_POT_3, + RAND_INF_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_1, + RAND_INF_FIRE_TEMPLE_MQ_LAVA_TORCH_POT_2, + RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_1, + RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_2, + RAND_INF_FIRE_TEMPLE_MQ_ABOVE_LAVA_POT_3, + RAND_INF_FIRE_TEMPLE_MQ_FLAME_WALL_POT_1, + RAND_INF_FIRE_TEMPLE_MQ_FLAME_WALL_POT_2, + RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_1, + RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_2, + RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_3, + RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_4, + RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_5, + RAND_INF_FIRE_TEMPLE_MQ_FIRE_MAZE_POT_6, + RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_1, + RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_2, + RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_3, + RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_4, + RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_5, + RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_6, + RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_7, + RAND_INF_FIRE_TEMPLE_MQ_BEFORE_MINI_BOSS_POT_8, + RAND_INF_ICE_CAVERN_MQ_ENTRANCE_POT, + RAND_INF_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_1, + RAND_INF_ICE_CAVERN_MQ_FIRST_CRYSTAL_POT_2, + RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_1, + RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_2, + RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_3, + RAND_INF_ICE_CAVERN_MQ_EARLY_WOLFOS_POT_4, + RAND_INF_ICE_CAVERN_MQ_PUSH_BLOCK_POT_1, + RAND_INF_ICE_CAVERN_MQ_PUSH_BLOCK_POT_2, + RAND_INF_ICE_CAVERN_MQ_COMPASS_POT_1, + RAND_INF_ICE_CAVERN_MQ_COMPASS_POT_2, + RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_1, + RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2, + RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3, + RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4, + RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT, + RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_1, + RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_GIBDO_POT_2, + RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_LIKE_LIKE_POT, + RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_1, + RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_2, + RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_3, + RAND_INF_SPIRIT_TEMPLE_MQ_CHILD_STALFOS_POT_4, + RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_1, + RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_2, + RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_3, + RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_4, + RAND_INF_SPIRIT_TEMPLE_MQ_CENTRAL_CHAMBER_POT_5, + RAND_INF_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_1, + RAND_INF_SPIRIT_TEMPLE_MQ_SUN_BLOCKS_POT_2, + RAND_INF_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_1, + RAND_INF_SPIRIT_TEMPLE_MQ_LONG_CLIMB_POT_2, + RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_1, + RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_2, + RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_3, + RAND_INF_SPIRIT_TEMPLE_MQ_BIG_MIRROR_POT_4, + RAND_INF_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_1, + RAND_INF_SPIRIT_TEMPLE_MQ_BEFORE_MIRROR_POT_2, + RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1, + RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2, + RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_1, + RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_2, + RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_3, + RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_4, + RAND_INF_WATER_TEMPLE_MQ_CENTRAL_GATE_POT_5, + RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_1, + RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_2, + RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_A_POT_3, + RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_1, + RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_2, + RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_3, + RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_4, + RAND_INF_WATER_TEMPLE_MQ_BEFORE_DARK_LINK_POT_5, + RAND_INF_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_1, + RAND_INF_WATER_TEMPLE_MQ_AFTER_DARK_LINK_POT_2, + RAND_INF_WATER_TEMPLE_MQ_RIVER_POT_1, + RAND_INF_WATER_TEMPLE_MQ_RIVER_POT_2, + RAND_INF_WATER_TEMPLE_MQ_MINI_DODONGO_POT_1, + RAND_INF_WATER_TEMPLE_MQ_MINI_DODONGO_POT_2, + RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_1, + RAND_INF_WATER_TEMPLE_MQ_STORAGE_ROOM_B_POT_2, + RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_1, + RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_2, + RAND_INF_WATER_TEMPLE_MQ_GS_STORAGE_ROOM_POT_3, + RAND_INF_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_1, + RAND_INF_WATER_TEMPLE_MQ_LOWER_TORCHES_POT_2, + RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_1, + RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_2, + RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_3, + RAND_INF_WATER_TEMPLE_MQ_LOWEST_GS_POT_4, + RAND_INF_WATER_TEMPLE_MQ_BOSS_KEY_POT, + RAND_INF_CAUGHT_LOACH, RAND_INF_CAN_SWIM, diff --git a/soh/soh/Enhancements/randomizer/settings.cpp b/soh/soh/Enhancements/randomizer/settings.cpp index f3f860800bc..9792fda604a 100644 --- a/soh/soh/Enhancements/randomizer/settings.cpp +++ b/soh/soh/Enhancements/randomizer/settings.cpp @@ -112,6 +112,7 @@ void Settings::CreateOptions() { mOptions[RSK_SHUFFLE_SWIM] = Option::Bool("Shuffle Swim", CVAR_RANDOMIZER_SETTING("ShuffleSwim"), mOptionDescriptions[RSK_SHUFFLE_SWIM]); mOptions[RSK_SHUFFLE_WEIRD_EGG] = Option::Bool("Shuffle Weird Egg", CVAR_RANDOMIZER_SETTING("ShuffleWeirdEgg"), mOptionDescriptions[RSK_SHUFFLE_WEIRD_EGG]); mOptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD] = Option::Bool("Shuffle Gerudo Membership Card", CVAR_RANDOMIZER_SETTING("ShuffleGerudoToken"), mOptionDescriptions[RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD]); + mOptions[RSK_SHUFFLE_POTS] = Option::U8("Shuffle Pots", {"Off", "Dungeons", "Overworld", "All Pots"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShufflePots"), mOptionDescriptions[RSK_SHUFFLE_POTS], WidgetType::Combobox, RO_SHUFFLE_POTS_OFF); mOptions[RSK_SHUFFLE_FISHING_POLE] = Option::Bool("Shuffle Fishing Pole", CVAR_RANDOMIZER_SETTING("ShuffleFishingPole"), mOptionDescriptions[RSK_SHUFFLE_FISHING_POLE]); mOptions[RSK_SHUFFLE_MAGIC_BEANS] = Option::Bool("Shuffle Magic Beans", CVAR_RANDOMIZER_SETTING("ShuffleBeans"), mOptionDescriptions[RSK_SHUFFLE_MAGIC_BEANS]); mOptions[RSK_SHUFFLE_MERCHANTS] = Option::U8("Shuffle Merchants", {"Off", "On (No Hints)", "On (With Hints)"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShuffleMerchants"), mOptionDescriptions[RSK_SHUFFLE_MERCHANTS], WidgetType::Combobox, RO_SHUFFLE_MERCHANTS_OFF); @@ -678,6 +679,7 @@ void Settings::CreateOptions() { &mOptions[RSK_FISHSANITY_POND_COUNT], &mOptions[RSK_FISHSANITY_AGE_SPLIT], &mOptions[RSK_SHUFFLE_SCRUBS], + &mOptions[RSK_SHUFFLE_POTS], &mOptions[RSK_SHUFFLE_BEEHIVES], &mOptions[RSK_SHUFFLE_COWS], &mOptions[RSK_SHUFFLE_MAGIC_BEANS], @@ -884,6 +886,7 @@ void Settings::CreateOptions() { &mOptions[RSK_SHUFFLE_FISHING_POLE], &mOptions[RSK_SHUFFLE_TOKENS], &mOptions[RSK_SHUFFLE_SCRUBS], + &mOptions[RSK_SHUFFLE_POTS], &mOptions[RSK_SHUFFLE_BEEHIVES], &mOptions[RSK_SHUFFLE_COWS], &mOptions[RSK_SHUFFLE_KOKIRI_SWORD], @@ -1074,6 +1077,7 @@ void Settings::CreateOptions() { &mOptions[RSK_FISHSANITY_POND_COUNT], &mOptions[RSK_FISHSANITY_AGE_SPLIT], &mOptions[RSK_SHUFFLE_SCRUBS], + &mOptions[RSK_SHUFFLE_POTS], &mOptions[RSK_SHUFFLE_BEEHIVES], &mOptions[RSK_SHUFFLE_COWS], &mOptions[RSK_SHUFFLE_MAGIC_BEANS], @@ -1108,6 +1112,7 @@ void Settings::CreateOptions() { { "Shuffle Settings:Link's Pocket", RSK_LINKS_POCKET }, { "Shuffle Settings:Shuffle Songs", RSK_SHUFFLE_SONGS }, { "Shuffle Settings:Shuffle Gerudo Membership Card", RSK_SHUFFLE_GERUDO_MEMBERSHIP_CARD }, + { "Shuffle Settings:Shuffle Pots", RSK_SHUFFLE_POTS }, { "Shuffle Settings:Shopsanity", RSK_SHOPSANITY }, { "Shuffle Settings:Shopsanity Prices", RSK_SHOPSANITY_PRICES }, { "Shuffle Settings:Affordable Prices", RSK_SHOPSANITY_PRICES_AFFORDABLE }, @@ -2677,6 +2682,17 @@ void Settings::ParseJson(nlohmann::json spoilerFileJson) { mOptions[index].SetSelectedIndex(RO_TOKENSANITY_ALL); } break; + case RSK_SHUFFLE_POTS: + if (it.value() == "Off") { + mOptions[index].SetSelectedIndex(RO_SHUFFLE_POTS_OFF); + } else if (it.value() == "Dungeons") { + mOptions[index].SetSelectedIndex(RO_SHUFFLE_POTS_DUNGEONS); + } else if (it.value() == "Overworld") { + mOptions[index].SetSelectedIndex(RO_SHUFFLE_POTS_OVERWORLD); + } else if (it.value() == "All Pots") { + mOptions[index].SetSelectedIndex(RO_SHUFFLE_POTS_ALL); + } + break; case RSK_LINKS_POCKET: if (it.value() == "Dungeon Reward") { mOptions[index].SetSelectedIndex(RO_LINKS_POCKET_DUNGEON_REWARD); diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp index 85b5e1ea25a..939d09dc18f 100644 --- a/soh/soh/OTRGlobals.cpp +++ b/soh/soh/OTRGlobals.cpp @@ -2416,9 +2416,14 @@ extern "C" CowIdentity Randomizer_IdentifyCow(s32 sceneNum, s32 posX, s32 posZ) return OTRGlobals::Instance->gRandomizer->IdentifyCow(sceneNum, posX, posZ); } +extern "C" PotIdentity Randomizer_IdentifyPot(s32 sceneNum, s32 posX, s32 posZ) { + return OTRGlobals::Instance->gRandomizer->IdentifyPot(sceneNum, posX, posZ); +} + extern "C" FishIdentity Randomizer_IdentifyFish(s32 sceneNum, s32 actorParams) { return OTRGlobals::Instance->gRandomizer->IdentifyFish(sceneNum, actorParams); } + extern "C" GetItemEntry ItemTable_Retrieve(int16_t getItemID) { GetItemEntry giEntry = ItemTableManager::Instance->RetrieveItemEntry(MOD_NONE, getItemID); return giEntry; diff --git a/soh/soh/OTRGlobals.h b/soh/soh/OTRGlobals.h index e392af4be99..ebe8f28ece7 100644 --- a/soh/soh/OTRGlobals.h +++ b/soh/soh/OTRGlobals.h @@ -172,6 +172,7 @@ ScrubIdentity Randomizer_IdentifyScrub(s32 sceneNum, s32 actorParams, s32 respaw BeehiveIdentity Randomizer_IdentifyBeehive(s32 sceneNum, s16 xPosition, s32 respawnData); ShopItemIdentity Randomizer_IdentifyShopItem(s32 sceneNum, u8 slotIndex); CowIdentity Randomizer_IdentifyCow(s32 sceneNum, s32 posX, s32 posZ); +PotIdentity Randomizer_IdentifyPot(s32 sceneNum, s32 posX, s32 posZ); FishIdentity Randomizer_IdentifyFish(s32 sceneNum, s32 actorParams); void Randomizer_ParseSpoiler(const char* fileLoc); void Randomizer_LoadHintMessages(); diff --git a/soh/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/soh/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c index 843e95f25c4..fcd5ac865c7 100644 --- a/soh/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/soh/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -261,7 +261,7 @@ void DoorShutter_Init(Actor* thisx, PlayState* play2) { DoorShutter_SetupAction(this, DoorShutter_SetupType); this->unk_16B = phi_a3; if (this->doorType == SHUTTER_KEY_LOCKED || this->doorType == SHUTTER_BOSS) { - if (!Flags_GetSwitch(play, this->dyna.actor.params & 0x3F)) { + if (GameInteractor_Should(VB_LOCK_DOOR, !Flags_GetSwitch(play, this->dyna.actor.params & 0x3F), this)) { this->unk_16E = 10; } Actor_SetFocus(&this->dyna.actor, 60.0f); diff --git a/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c index 0dd03a5bef9..23b02607a84 100644 --- a/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -8,6 +8,7 @@ #include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h" #include "objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "objects/object_tsubo/object_tsubo.h" +#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h" #define FLAGS (ACTOR_FLAG_UPDATE_WHILE_CULLED | ACTOR_FLAG_ALWAYS_THROWN) @@ -86,9 +87,11 @@ static InitChainEntry sInitChain[] = { void ObjTsubo_SpawnCollectible(ObjTsubo* this, PlayState* play) { s16 dropParams = this->actor.params & 0x1F; - if ((dropParams >= ITEM00_RUPEE_GREEN) && (dropParams <= ITEM00_BOMBS_SPECIAL)) { - Item_DropCollectible(play, &this->actor.world.pos, - (dropParams | (((this->actor.params >> 9) & 0x3F) << 8))); + if (GameInteractor_Should(VB_POT_DROP_ITEM, true, this)) { + if ((dropParams >= ITEM00_RUPEE_GREEN) && (dropParams <= ITEM00_BOMBS_SPECIAL)) { + Item_DropCollectible(play, &this->actor.world.pos, + (dropParams | (((this->actor.params >> 9) & 0x3F) << 8))); + } } } @@ -231,7 +234,9 @@ void ObjTsubo_SetupWaitForObject(ObjTsubo* this) { void ObjTsubo_WaitForObject(ObjTsubo* this, PlayState* play) { if (Object_IsLoaded(&play->objectCtx, this->objTsuboBankIndex)) { - this->actor.draw = ObjTsubo_Draw; + if (GameInteractor_Should(VB_POT_DRAW, true, this)) { + this->actor.draw = ObjTsubo_Draw; + } this->actor.objBankIndex = this->objTsuboBankIndex; ObjTsubo_SetupIdle(this); this->actor.flags &= ~ACTOR_FLAG_UPDATE_WHILE_CULLED; diff --git a/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h b/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h index a83d43a47aa..74dbf6ebb53 100644 --- a/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h +++ b/soh/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.h @@ -13,6 +13,7 @@ typedef struct ObjTsubo { /* 0x014C */ ObjTsuboActionFunc actionFunc; /* 0x0150 */ ColliderCylinder collider; /* 0x019C */ s8 objTsuboBankIndex; + /* */ PotIdentity potIdentity; } ObjTsubo; // size = 0x01A0 #endif