mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-04-28 13:17:58 +03:00
Merge 21b89a9175
into fbbfc07ff1
This commit is contained in:
commit
51c12c1247
44 changed files with 2449 additions and 58 deletions
|
@ -1091,6 +1091,307 @@ const std::vector<FlagTable> flagTables = {
|
|||
"RAND_INF_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_1" },
|
||||
{ RAND_INF_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_2,
|
||||
"RAND_INF_GERUDO_TRAINING_GROUND_MQ_LOBBY_RIGHT_POT_2" },
|
||||
{ RAND_INF_KF_CIRCLE_ROCK_1, "RAND_INF_KF_CIRCLE_ROCK_1" },
|
||||
{ RAND_INF_KF_CIRCLE_ROCK_2, "RAND_INF_KF_CIRCLE_ROCK_2" },
|
||||
{ RAND_INF_KF_CIRCLE_ROCK_3, "RAND_INF_KF_CIRCLE_ROCK_3" },
|
||||
{ RAND_INF_KF_CIRCLE_ROCK_4, "RAND_INF_KF_CIRCLE_ROCK_4" },
|
||||
{ RAND_INF_KF_CIRCLE_ROCK_5, "RAND_INF_KF_CIRCLE_ROCK_5" },
|
||||
{ RAND_INF_KF_CIRCLE_ROCK_6, "RAND_INF_KF_CIRCLE_ROCK_6" },
|
||||
{ RAND_INF_KF_CIRCLE_ROCK_7, "RAND_INF_KF_CIRCLE_ROCK_7" },
|
||||
{ RAND_INF_KF_CIRCLE_ROCK_8, "RAND_INF_KF_CIRCLE_ROCK_8" },
|
||||
{ RAND_INF_KF_ROCK_BY_SARIAS_HOUSE, "RAND_INF_KF_ROCK_BY_SARIAS_HOUSE" },
|
||||
{ RAND_INF_KF_ROCK_BEHIND_SARIAS_HOUSE, "RAND_INF_KF_ROCK_BEHIND_SARIAS_HOUSE" },
|
||||
{ RAND_INF_KF_ROCK_BY_MIDOS_HOUSE, "RAND_INF_KF_ROCK_BY_MIDOS_HOUSE" },
|
||||
{ RAND_INF_KF_ROCK_BY_KNOW_IT_ALLS_HOUSE, "RAND_INF_KF_ROCK_BY_KNOW_IT_ALLS_HOUSE" },
|
||||
{ RAND_INF_LW_BOULDER_BY_GORON_CITY, "RAND_INF_LW_BOULDER_BY_GORON_CITY" },
|
||||
{ RAND_INF_LW_BOULDER_BY_SACRED_FOREST_MEADOW, "RAND_INF_LW_BOULDER_BY_SACRED_FOREST_MEADOW" },
|
||||
{ RAND_INF_LW_RUPEE_BOULDER, "RAND_INF_LW_RUPEE_BOULDER" },
|
||||
{ RAND_INF_HC_ROCK_1, "RAND_INF_HC_ROCK_1" },
|
||||
{ RAND_INF_HC_ROCK_2, "RAND_INF_HC_ROCK_2" },
|
||||
{ RAND_INF_HC_ROCK_3, "RAND_INF_HC_ROCK_3" },
|
||||
{ RAND_INF_HC_BOULDER, "RAND_INF_HC_BOULDER" },
|
||||
{ RAND_INF_OGC_BRONZE_BOULDER_1, "RAND_INF_OGC_BRONZE_BOULDER_1" },
|
||||
{ RAND_INF_OGC_BRONZE_BOULDER_2, "RAND_INF_OGC_BRONZE_BOULDER_2" },
|
||||
{ RAND_INF_OGC_BRONZE_BOULDER_3, "RAND_INF_OGC_BRONZE_BOULDER_3" },
|
||||
{ RAND_INF_OGC_SILVER_BOULDER_1, "RAND_INF_OGC_SILVER_BOULDER_1" },
|
||||
{ RAND_INF_OGC_SILVER_BOULDER_2, "RAND_INF_OGC_SILVER_BOULDER_2" },
|
||||
{ RAND_INF_OGC_SILVER_BOULDER_3, "RAND_INF_OGC_SILVER_BOULDER_3" },
|
||||
{ RAND_INF_OGC_SILVER_BOULDER_4, "RAND_INF_OGC_SILVER_BOULDER_4" },
|
||||
{ RAND_INF_DMC_CIRCLE_ROCK_1, "RAND_INF_DMC_CIRCLE_ROCK_1" },
|
||||
{ RAND_INF_DMC_CIRCLE_ROCK_2, "RAND_INF_DMC_CIRCLE_ROCK_2" },
|
||||
{ RAND_INF_DMC_CIRCLE_ROCK_3, "RAND_INF_DMC_CIRCLE_ROCK_3" },
|
||||
{ RAND_INF_DMC_CIRCLE_ROCK_4, "RAND_INF_DMC_CIRCLE_ROCK_4" },
|
||||
{ RAND_INF_DMC_CIRCLE_ROCK_5, "RAND_INF_DMC_CIRCLE_ROCK_5" },
|
||||
{ RAND_INF_DMC_CIRCLE_ROCK_6, "RAND_INF_DMC_CIRCLE_ROCK_6" },
|
||||
{ RAND_INF_DMC_CIRCLE_ROCK_7, "RAND_INF_DMC_CIRCLE_ROCK_7" },
|
||||
{ RAND_INF_DMC_CIRCLE_ROCK_8, "RAND_INF_DMC_CIRCLE_ROCK_8" },
|
||||
{ RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_1, "RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_1" },
|
||||
{ RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_2, "RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_2" },
|
||||
{ RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_3, "RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_3" },
|
||||
{ RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_4, "RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_4" },
|
||||
{ RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_5, "RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_5" },
|
||||
{ RAND_INF_DMC_GOSSIP_ROCK_1, "RAND_INF_DMC_GOSSIP_ROCK_1" },
|
||||
{ RAND_INF_DMC_GOSSIP_ROCK_2, "RAND_INF_DMC_GOSSIP_ROCK_2" },
|
||||
{ RAND_INF_DMC_BOULDER_1, "RAND_INF_DMC_BOULDER_1" },
|
||||
{ RAND_INF_DMC_BOULDER_2, "RAND_INF_DMC_BOULDER_2" },
|
||||
{ RAND_INF_DMC_BOULDER_3, "RAND_INF_DMC_BOULDER_3" },
|
||||
{ RAND_INF_DMC_BRONZE_BOULDER_1, "RAND_INF_DMC_BRONZE_BOULDER_1" },
|
||||
{ RAND_INF_DMC_BRONZE_BOULDER_2, "RAND_INF_DMC_BRONZE_BOULDER_2" },
|
||||
{ RAND_INF_DMC_BRONZE_BOULDER_3, "RAND_INF_DMC_BRONZE_BOULDER_3" },
|
||||
{ RAND_INF_DMC_BRONZE_BOULDER_4, "RAND_INF_DMC_BRONZE_BOULDER_4" },
|
||||
{ RAND_INF_GV_SILVER_BOULDER, "RAND_INF_GV_SILVER_BOULDER" },
|
||||
{ RAND_INF_GV_ROCK_1, "RAND_INF_GV_ROCK_1" },
|
||||
{ RAND_INF_GV_ROCK_2, "RAND_INF_GV_ROCK_2" },
|
||||
{ RAND_INF_GV_ROCK_3, "RAND_INF_GV_ROCK_3" },
|
||||
{ RAND_INF_GV_UNDERWATER_ROCK_1, "RAND_INF_GV_UNDERWATER_ROCK_1" },
|
||||
{ RAND_INF_GV_UNDERWATER_ROCK_2, "RAND_INF_GV_UNDERWATER_ROCK_2" },
|
||||
{ RAND_INF_GV_UNDERWATER_ROCK_3, "RAND_INF_GV_UNDERWATER_ROCK_3" },
|
||||
{ RAND_INF_GV_ROCK_ACROSS_BRIDGE_1, "RAND_INF_GV_ROCK_ACROSS_BRIDGE_1" },
|
||||
{ RAND_INF_GV_ROCK_ACROSS_BRIDGE_2, "RAND_INF_GV_ROCK_ACROSS_BRIDGE_2" },
|
||||
{ RAND_INF_GV_ROCK_ACROSS_BRIDGE_3, "RAND_INF_GV_ROCK_ACROSS_BRIDGE_3" },
|
||||
{ RAND_INF_GV_ROCK_ACROSS_BRIDGE_4, "RAND_INF_GV_ROCK_ACROSS_BRIDGE_4" },
|
||||
{ RAND_INF_GV_BOULDER_1, "RAND_INF_GV_BOULDER_1" },
|
||||
{ RAND_INF_GV_BOULDER_2, "RAND_INF_GV_BOULDER_2" },
|
||||
{ RAND_INF_GV_BOULDER_ACROSS_BRIDGE, "RAND_INF_GV_BOULDER_ACROSS_BRIDGE" },
|
||||
{ RAND_INF_GV_BRONZE_BOULDER_1, "RAND_INF_GV_BRONZE_BOULDER_1" },
|
||||
{ RAND_INF_GV_BRONZE_BOULDER_2, "RAND_INF_GV_BRONZE_BOULDER_2" },
|
||||
{ RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_1, "RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_1" },
|
||||
{ RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_2, "RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_2" },
|
||||
{ RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_3, "RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_3" },
|
||||
{ RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_4, "RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_4" },
|
||||
{ RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_5, "RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_5" },
|
||||
{ RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_6, "RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_6" },
|
||||
{ RAND_INF_HF_SILVER_BOULDER, "RAND_INF_HF_SILVER_BOULDER" },
|
||||
{ RAND_INF_HF_ROCK_1, "RAND_INF_HF_ROCK_1" },
|
||||
{ RAND_INF_HF_ROCK_2, "RAND_INF_HF_ROCK_2" },
|
||||
{ RAND_INF_HF_ROCK_3, "RAND_INF_HF_ROCK_3" },
|
||||
{ RAND_INF_HF_ROCK_4, "RAND_INF_HF_ROCK_4" },
|
||||
{ RAND_INF_HF_ROCK_5, "RAND_INF_HF_ROCK_5" },
|
||||
{ RAND_INF_HF_ROCK_6, "RAND_INF_HF_ROCK_6" },
|
||||
{ RAND_INF_HF_ROCK_7, "RAND_INF_HF_ROCK_7" },
|
||||
{ RAND_INF_HF_ROCK_8, "RAND_INF_HF_ROCK_8" },
|
||||
{ RAND_INF_HF_BOULDER_NORTH, "RAND_INF_HF_BOULDER_NORTH" },
|
||||
{ RAND_INF_HF_BOULDER_BY_MARKET, "RAND_INF_HF_BOULDER_BY_MARKET" },
|
||||
{ RAND_INF_HF_BOULDER_SOUTH, "RAND_INF_HF_BOULDER_SOUTH" },
|
||||
{ RAND_INF_HF_BRONZE_BOULDER_1, "RAND_INF_HF_BRONZE_BOULDER_1" },
|
||||
{ RAND_INF_HF_BRONZE_BOULDER_2, "RAND_INF_HF_BRONZE_BOULDER_2" },
|
||||
{ RAND_INF_HF_BRONZE_BOULDER_3, "RAND_INF_HF_BRONZE_BOULDER_3" },
|
||||
{ RAND_INF_HF_BRONZE_BOULDER_4, "RAND_INF_HF_BRONZE_BOULDER_4" },
|
||||
{ RAND_INF_KAK_SILVER_BOULDER, "RAND_INF_KAK_SILVER_BOULDER" },
|
||||
{ RAND_INF_KAK_ROCK_1, "RAND_INF_KAK_ROCK_1" },
|
||||
{ RAND_INF_KAK_ROCK_2, "RAND_INF_KAK_ROCK_2" },
|
||||
{ RAND_INF_GY_ROCK, "RAND_INF_GY_ROCK" },
|
||||
{ RAND_INF_LA_ROCK, "RAND_INF_LA_ROCK" },
|
||||
{ RAND_INF_ZD_CIRCLE_ROCK_1, "RAND_INF_ZD_CIRCLE_ROCK_1" },
|
||||
{ RAND_INF_ZD_CIRCLE_ROCK_2, "RAND_INF_ZD_CIRCLE_ROCK_2" },
|
||||
{ RAND_INF_ZD_CIRCLE_ROCK_3, "RAND_INF_ZD_CIRCLE_ROCK_3" },
|
||||
{ RAND_INF_ZD_CIRCLE_ROCK_4, "RAND_INF_ZD_CIRCLE_ROCK_4" },
|
||||
{ RAND_INF_ZD_CIRCLE_ROCK_5, "RAND_INF_ZD_CIRCLE_ROCK_5" },
|
||||
{ RAND_INF_ZD_CIRCLE_ROCK_6, "RAND_INF_ZD_CIRCLE_ROCK_6" },
|
||||
{ RAND_INF_ZD_CIRCLE_ROCK_7, "RAND_INF_ZD_CIRCLE_ROCK_7" },
|
||||
{ RAND_INF_ZD_CIRCLE_ROCK_8, "RAND_INF_ZD_CIRCLE_ROCK_8" },
|
||||
{ RAND_INF_ZF_BOULDER, "RAND_INF_ZF_BOULDER" },
|
||||
{ RAND_INF_ZF_SILVER_BOULDER, "RAND_INF_ZF_SILVER_BOULDER" },
|
||||
{ RAND_INF_ZF_UNDERGROUND_BOULDER, "RAND_INF_ZF_UNDERGROUND_BOULDER" },
|
||||
{ RAND_INF_ZR_BOULDER_1, "RAND_INF_ZR_BOULDER_1" },
|
||||
{ RAND_INF_ZR_BOULDER_2, "RAND_INF_ZR_BOULDER_2" },
|
||||
{ RAND_INF_ZR_BOULDER_3, "RAND_INF_ZR_BOULDER_3" },
|
||||
{ RAND_INF_ZR_BOULDER_4, "RAND_INF_ZR_BOULDER_4" },
|
||||
{ RAND_INF_ZR_CIRCLE_ROCK_1, "RAND_INF_ZR_CIRCLE_ROCK_1" },
|
||||
{ RAND_INF_ZR_CIRCLE_ROCK_2, "RAND_INF_ZR_CIRCLE_ROCK_2" },
|
||||
{ RAND_INF_ZR_CIRCLE_ROCK_3, "RAND_INF_ZR_CIRCLE_ROCK_3" },
|
||||
{ RAND_INF_ZR_CIRCLE_ROCK_4, "RAND_INF_ZR_CIRCLE_ROCK_4" },
|
||||
{ RAND_INF_ZR_CIRCLE_ROCK_5, "RAND_INF_ZR_CIRCLE_ROCK_5" },
|
||||
{ RAND_INF_ZR_CIRCLE_ROCK_6, "RAND_INF_ZR_CIRCLE_ROCK_6" },
|
||||
{ RAND_INF_ZR_CIRCLE_ROCK_7, "RAND_INF_ZR_CIRCLE_ROCK_7" },
|
||||
{ RAND_INF_ZR_CIRCLE_ROCK_8, "RAND_INF_ZR_CIRCLE_ROCK_8" },
|
||||
{ RAND_INF_ZR_UPPER_CIRCLE_BOULDER, "RAND_INF_ZR_UPPER_CIRCLE_BOULDER" },
|
||||
{ RAND_INF_ZR_UPPER_CIRCLE_ROCK_1, "RAND_INF_ZR_UPPER_CIRCLE_ROCK_1" },
|
||||
{ RAND_INF_ZR_UPPER_CIRCLE_ROCK_2, "RAND_INF_ZR_UPPER_CIRCLE_ROCK_2" },
|
||||
{ RAND_INF_ZR_UPPER_CIRCLE_ROCK_3, "RAND_INF_ZR_UPPER_CIRCLE_ROCK_3" },
|
||||
{ RAND_INF_ZR_UPPER_CIRCLE_ROCK_4, "RAND_INF_ZR_UPPER_CIRCLE_ROCK_4" },
|
||||
{ RAND_INF_ZR_UPPER_CIRCLE_ROCK_5, "RAND_INF_ZR_UPPER_CIRCLE_ROCK_5" },
|
||||
{ RAND_INF_ZR_UPPER_CIRCLE_ROCK_6, "RAND_INF_ZR_UPPER_CIRCLE_ROCK_6" },
|
||||
{ RAND_INF_ZR_UPPER_CIRCLE_ROCK_7, "RAND_INF_ZR_UPPER_CIRCLE_ROCK_7" },
|
||||
{ RAND_INF_ZR_UPPER_CIRCLE_ROCK_8, "RAND_INF_ZR_UPPER_CIRCLE_ROCK_8" },
|
||||
{ RAND_INF_ZR_ROCK, "RAND_INF_ZR_ROCK" },
|
||||
{ RAND_INF_ZR_UNDERWATER_ROCK_1, "RAND_INF_ZR_UNDERWATER_ROCK_1" },
|
||||
{ RAND_INF_ZR_UNDERWATER_ROCK_2, "RAND_INF_ZR_UNDERWATER_ROCK_2" },
|
||||
{ RAND_INF_ZR_UNDERWATER_ROCK_3, "RAND_INF_ZR_UNDERWATER_ROCK_3" },
|
||||
{ RAND_INF_ZR_UNDERWATER_ROCK_4, "RAND_INF_ZR_UNDERWATER_ROCK_4" },
|
||||
{ RAND_INF_DMT_ROCK_1, "RAND_INF_DMT_ROCK_1" },
|
||||
{ RAND_INF_DMT_ROCK_2, "RAND_INF_DMT_ROCK_2" },
|
||||
{ RAND_INF_DMT_ROCK_3, "RAND_INF_DMT_ROCK_3" },
|
||||
{ RAND_INF_DMT_ROCK_4, "RAND_INF_DMT_ROCK_4" },
|
||||
{ RAND_INF_DMT_ROCK_5, "RAND_INF_DMT_ROCK_5" },
|
||||
{ RAND_INF_DMT_SUMMIT_ROCK, "RAND_INF_DMT_SUMMIT_ROCK" },
|
||||
{ RAND_INF_DMT_CIRCLE_ROCK_1, "RAND_INF_DMT_CIRCLE_ROCK_1" },
|
||||
{ RAND_INF_DMT_CIRCLE_ROCK_2, "RAND_INF_DMT_CIRCLE_ROCK_2" },
|
||||
{ RAND_INF_DMT_CIRCLE_ROCK_3, "RAND_INF_DMT_CIRCLE_ROCK_3" },
|
||||
{ RAND_INF_DMT_CIRCLE_ROCK_4, "RAND_INF_DMT_CIRCLE_ROCK_4" },
|
||||
{ RAND_INF_DMT_CIRCLE_ROCK_5, "RAND_INF_DMT_CIRCLE_ROCK_5" },
|
||||
{ RAND_INF_DMT_CIRCLE_ROCK_6, "RAND_INF_DMT_CIRCLE_ROCK_6" },
|
||||
{ RAND_INF_DMT_CIRCLE_ROCK_7, "RAND_INF_DMT_CIRCLE_ROCK_7" },
|
||||
{ RAND_INF_DMT_CIRCLE_ROCK_8, "RAND_INF_DMT_CIRCLE_ROCK_8" },
|
||||
{ RAND_INF_DMT_BOULDER_1, "RAND_INF_DMT_BOULDER_1" },
|
||||
{ RAND_INF_DMT_BOULDER_2, "RAND_INF_DMT_BOULDER_2" },
|
||||
{ RAND_INF_DMT_BOULDER_3, "RAND_INF_DMT_BOULDER_3" },
|
||||
{ RAND_INF_DMT_COW_BOULDER, "RAND_INF_DMT_COW_BOULDER" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_1, "RAND_INF_DMT_BRONZE_BOULDER_1" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_2, "RAND_INF_DMT_BRONZE_BOULDER_2" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_3, "RAND_INF_DMT_BRONZE_BOULDER_3" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_4, "RAND_INF_DMT_BRONZE_BOULDER_4" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_5, "RAND_INF_DMT_BRONZE_BOULDER_5" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_6, "RAND_INF_DMT_BRONZE_BOULDER_6" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_7, "RAND_INF_DMT_BRONZE_BOULDER_7" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_8, "RAND_INF_DMT_BRONZE_BOULDER_8" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_9, "RAND_INF_DMT_BRONZE_BOULDER_9" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_10, "RAND_INF_DMT_BRONZE_BOULDER_10" },
|
||||
{ RAND_INF_DMT_BRONZE_BOULDER_11, "RAND_INF_DMT_BRONZE_BOULDER_11" },
|
||||
{ RAND_INF_GC_LW_BOULDER_1, "RAND_INF_GC_LW_BOULDER_1" },
|
||||
{ RAND_INF_GC_LW_BOULDER_2, "RAND_INF_GC_LW_BOULDER_2" },
|
||||
{ RAND_INF_GC_LW_BOULDER_3, "RAND_INF_GC_LW_BOULDER_3" },
|
||||
{ RAND_INF_GC_ENTRANCE_BOULDER_1, "RAND_INF_GC_ENTRANCE_BOULDER_1" },
|
||||
{ RAND_INF_GC_ENTRANCE_BOULDER_2, "RAND_INF_GC_ENTRANCE_BOULDER_2" },
|
||||
{ RAND_INF_GC_ENTRANCE_BOULDER_3, "RAND_INF_GC_ENTRANCE_BOULDER_3" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_1, "RAND_INF_GC_MAZE_SILVER_BOULDER_1" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_2, "RAND_INF_GC_MAZE_SILVER_BOULDER_2" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_3, "RAND_INF_GC_MAZE_SILVER_BOULDER_3" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_4, "RAND_INF_GC_MAZE_SILVER_BOULDER_4" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_5, "RAND_INF_GC_MAZE_SILVER_BOULDER_5" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_6, "RAND_INF_GC_MAZE_SILVER_BOULDER_6" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_7, "RAND_INF_GC_MAZE_SILVER_BOULDER_7" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_8, "RAND_INF_GC_MAZE_SILVER_BOULDER_8" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_9, "RAND_INF_GC_MAZE_SILVER_BOULDER_9" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_10, "RAND_INF_GC_MAZE_SILVER_BOULDER_10" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_11, "RAND_INF_GC_MAZE_SILVER_BOULDER_11" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_12, "RAND_INF_GC_MAZE_SILVER_BOULDER_12" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_13, "RAND_INF_GC_MAZE_SILVER_BOULDER_13" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_14, "RAND_INF_GC_MAZE_SILVER_BOULDER_14" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_15, "RAND_INF_GC_MAZE_SILVER_BOULDER_15" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_16, "RAND_INF_GC_MAZE_SILVER_BOULDER_16" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_17, "RAND_INF_GC_MAZE_SILVER_BOULDER_17" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_18, "RAND_INF_GC_MAZE_SILVER_BOULDER_18" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_19, "RAND_INF_GC_MAZE_SILVER_BOULDER_19" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_20, "RAND_INF_GC_MAZE_SILVER_BOULDER_20" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_21, "RAND_INF_GC_MAZE_SILVER_BOULDER_21" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_22, "RAND_INF_GC_MAZE_SILVER_BOULDER_22" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_23, "RAND_INF_GC_MAZE_SILVER_BOULDER_23" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_24, "RAND_INF_GC_MAZE_SILVER_BOULDER_24" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_25, "RAND_INF_GC_MAZE_SILVER_BOULDER_25" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_26, "RAND_INF_GC_MAZE_SILVER_BOULDER_26" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_27, "RAND_INF_GC_MAZE_SILVER_BOULDER_27" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_28, "RAND_INF_GC_MAZE_SILVER_BOULDER_28" },
|
||||
{ RAND_INF_GC_MAZE_SILVER_BOULDER_29, "RAND_INF_GC_MAZE_SILVER_BOULDER_29" },
|
||||
{ RAND_INF_GC_MAZE_BOULDER_1, "RAND_INF_GC_MAZE_BOULDER_1" },
|
||||
{ RAND_INF_GC_MAZE_BOULDER_2, "RAND_INF_GC_MAZE_BOULDER_2" },
|
||||
{ RAND_INF_GC_MAZE_BOULDER_3, "RAND_INF_GC_MAZE_BOULDER_3" },
|
||||
{ RAND_INF_GC_MAZE_BOULDER_4, "RAND_INF_GC_MAZE_BOULDER_4" },
|
||||
{ RAND_INF_GC_MAZE_BOULDER_5, "RAND_INF_GC_MAZE_BOULDER_5" },
|
||||
{ RAND_INF_GC_MAZE_BOULDER_6, "RAND_INF_GC_MAZE_BOULDER_6" },
|
||||
{ RAND_INF_GC_MAZE_BOULDER_7, "RAND_INF_GC_MAZE_BOULDER_7" },
|
||||
{ RAND_INF_GC_MAZE_BOULDER_8, "RAND_INF_GC_MAZE_BOULDER_8" },
|
||||
{ RAND_INF_GC_MAZE_BOULDER_9, "RAND_INF_GC_MAZE_BOULDER_9" },
|
||||
{ RAND_INF_GC_MAZE_BOULDER_10, "RAND_INF_GC_MAZE_BOULDER_10" },
|
||||
{ RAND_INF_GC_MAZE_BRONZE_BOULDER_1, "RAND_INF_GC_MAZE_BRONZE_BOULDER_1" },
|
||||
{ RAND_INF_GC_MAZE_BRONZE_BOULDER_2, "RAND_INF_GC_MAZE_BRONZE_BOULDER_2" },
|
||||
{ RAND_INF_GC_MAZE_BRONZE_BOULDER_3, "RAND_INF_GC_MAZE_BRONZE_BOULDER_3" },
|
||||
{ RAND_INF_GC_MAZE_BRONZE_BOULDER_4, "RAND_INF_GC_MAZE_BRONZE_BOULDER_4" },
|
||||
{ RAND_INF_GC_MAZE_BRONZE_BOULDER_5, "RAND_INF_GC_MAZE_BRONZE_BOULDER_5" },
|
||||
{ RAND_INF_GC_MAZE_ROCK, "RAND_INF_GC_MAZE_ROCK" },
|
||||
{ RAND_INF_COLOSSUS_SILVER_BOULDER, "RAND_INF_COLOSSUS_SILVER_BOULDER" },
|
||||
{ RAND_INF_COLOSSUS_ROCK, "RAND_INF_COLOSSUS_ROCK" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_1_ROCK_1, "RAND_INF_COLOSSUS_CIRCLE_1_ROCK_1" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_1_ROCK_2, "RAND_INF_COLOSSUS_CIRCLE_1_ROCK_2" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_1_ROCK_3, "RAND_INF_COLOSSUS_CIRCLE_1_ROCK_3" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_1_ROCK_4, "RAND_INF_COLOSSUS_CIRCLE_1_ROCK_4" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_1_ROCK_5, "RAND_INF_COLOSSUS_CIRCLE_1_ROCK_5" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_1_ROCK_6, "RAND_INF_COLOSSUS_CIRCLE_1_ROCK_6" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_1_ROCK_7, "RAND_INF_COLOSSUS_CIRCLE_1_ROCK_7" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_1_ROCK_8, "RAND_INF_COLOSSUS_CIRCLE_1_ROCK_8" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_2_ROCK_1, "RAND_INF_COLOSSUS_CIRCLE_2_ROCK_1" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_2_ROCK_2, "RAND_INF_COLOSSUS_CIRCLE_2_ROCK_2" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_2_ROCK_3, "RAND_INF_COLOSSUS_CIRCLE_2_ROCK_3" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_2_ROCK_4, "RAND_INF_COLOSSUS_CIRCLE_2_ROCK_4" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_2_ROCK_5, "RAND_INF_COLOSSUS_CIRCLE_2_ROCK_5" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_2_ROCK_6, "RAND_INF_COLOSSUS_CIRCLE_2_ROCK_6" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_2_ROCK_7, "RAND_INF_COLOSSUS_CIRCLE_2_ROCK_7" },
|
||||
{ RAND_INF_COLOSSUS_CIRCLE_2_ROCK_8, "RAND_INF_COLOSSUS_CIRCLE_2_ROCK_8" },
|
||||
{ RAND_INF_HC_STORMS_GROTTO_ROCK_1, "RAND_INF_HC_STORMS_GROTTO_ROCK_1" },
|
||||
{ RAND_INF_HC_STORMS_GROTTO_ROCK_2, "RAND_INF_HC_STORMS_GROTTO_ROCK_2" },
|
||||
{ RAND_INF_HC_STORMS_GROTTO_ROCK_3, "RAND_INF_HC_STORMS_GROTTO_ROCK_3" },
|
||||
{ RAND_INF_HC_STORMS_GROTTO_ROCK_4, "RAND_INF_HC_STORMS_GROTTO_ROCK_4" },
|
||||
{ RAND_INF_HC_STORMS_GROTTO_ROCK_5, "RAND_INF_HC_STORMS_GROTTO_ROCK_5" },
|
||||
{ RAND_INF_HC_STORMS_GROTTO_ROCK_6, "RAND_INF_HC_STORMS_GROTTO_ROCK_6" },
|
||||
{ RAND_INF_HC_STORMS_GROTTO_ROCK_7, "RAND_INF_HC_STORMS_GROTTO_ROCK_7" },
|
||||
{ RAND_INF_HC_STORMS_GROTTO_ROCK_8, "RAND_INF_HC_STORMS_GROTTO_ROCK_8" },
|
||||
{ RAND_INF_BOTW_BOULDER_1, "RAND_INF_BOTW_BOULDER_1" },
|
||||
{ RAND_INF_BOTW_BOULDER_2, "RAND_INF_BOTW_BOULDER_2" },
|
||||
{ RAND_INF_BOTW_BOULDER_3, "RAND_INF_BOTW_BOULDER_3" },
|
||||
{ RAND_INF_BOTW_BOULDER_4, "RAND_INF_BOTW_BOULDER_4" },
|
||||
{ RAND_INF_BOTW_BOULDER_5, "RAND_INF_BOTW_BOULDER_5" },
|
||||
{ RAND_INF_BOTW_BOULDER_6, "RAND_INF_BOTW_BOULDER_6" },
|
||||
{ RAND_INF_DEKU_TREE_MQ_BOULDER_1, "RAND_INF_DEKU_TREE_MQ_BOULDER_1" },
|
||||
{ RAND_INF_DEKU_TREE_MQ_BOULDER_2, "RAND_INF_DEKU_TREE_MQ_BOULDER_2" },
|
||||
{ RAND_INF_DEKU_TREE_MQ_BOULDER_3, "RAND_INF_DEKU_TREE_MQ_BOULDER_3" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_1, "RAND_INF_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_1" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_2, "RAND_INF_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_2" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_1,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_1" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_2,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_2" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_3,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_3" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_1, "RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_1" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_2, "RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_2" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_1,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_1" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_2,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_2" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_3,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_3" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_4,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_4" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_5,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_5" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_6,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_6" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_7,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_7" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_8,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_8" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_9,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_9" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_10,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_10" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_11,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_11" },
|
||||
{ RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_12,
|
||||
"RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_12" },
|
||||
{ RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER, "RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER" },
|
||||
{ RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1, "RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1" },
|
||||
{ RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2, "RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2" },
|
||||
{ RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1,
|
||||
"RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1" },
|
||||
{ RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2,
|
||||
"RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2" },
|
||||
{ RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3,
|
||||
"RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3" },
|
||||
{ RAND_INF_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1,
|
||||
"RAND_INF_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1" },
|
||||
{ RAND_INF_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2,
|
||||
"RAND_INF_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2" },
|
||||
{ RAND_INF_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER, "RAND_INF_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER" },
|
||||
{ RAND_INF_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER,
|
||||
"RAND_INF_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER" },
|
||||
{ RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_1, "RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_1" },
|
||||
{ RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_2, "RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_2" },
|
||||
{ RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_3, "RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_3" },
|
||||
{ RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_CEILING_BOULDER, "RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_CEILING_BOULDER" },
|
||||
{ RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_BOULDER, "RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_BOULDER" },
|
||||
{ RAND_INF_BOTW_MQ_BOULDER_1, "RAND_INF_BOTW_MQ_BOULDER_1" },
|
||||
{ RAND_INF_BOTW_MQ_BOULDER_2, "RAND_INF_BOTW_MQ_BOULDER_2" },
|
||||
{ RAND_INF_BOTW_MQ_BOULDER_3, "RAND_INF_BOTW_MQ_BOULDER_3" },
|
||||
|
||||
{ RAND_INF_CAUGHT_LOACH, "RAND_INF_CAUGHT_LOACH" },
|
||||
|
||||
|
|
|
@ -228,6 +228,15 @@ typedef enum {
|
|||
// - `*Actor` (interactRangeActor)
|
||||
VB_BOTTLE_ACTOR,
|
||||
|
||||
// #### `result`
|
||||
// Actor is ACTOR_OBJ_BOMBIWA, or ACTOR_OBJ_HAMISHI
|
||||
// ```c
|
||||
// Flags_GetSwitch(play, this->actor.params & 0x3F)
|
||||
// ```
|
||||
// #### `args`
|
||||
// - `*Actor` (interactRangeActor)
|
||||
VB_BOULDER_BREAK_FLAG,
|
||||
|
||||
// #### `result`
|
||||
// ```c
|
||||
// ((this->actor.params == DNS_TYPE_HEART_PIECE) && (Flags_GetItemGetInf(ITEMGETINF_DEKU_SCRUB_HEART_PIECE))) ||
|
||||
|
@ -1635,6 +1644,14 @@ typedef enum {
|
|||
// - None
|
||||
VB_REVERT_SPOILING_ITEMS,
|
||||
|
||||
// #### `result`
|
||||
// ```c
|
||||
// false
|
||||
// ```
|
||||
// #### `args`
|
||||
// - `*EnIshi`
|
||||
VB_ROCK_DROP_ITEM,
|
||||
|
||||
// #### `result`
|
||||
// ```c
|
||||
// !Flags_GetInfTable(INFTABLE_145)
|
||||
|
|
|
@ -131,6 +131,10 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
|||
/*german*/ "Man erzählt sich, daß eine #Kiste im Deku-Baum# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans l'Arbre Mojo# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_DEKU_BOULDER] = HintText(CustomMessage("They say that a #boulder in the Deku Tree# contains #[[1]]#.",
|
||||
/*german*/ "!!!",
|
||||
/*french*/ "!!!", {QM_RED, QM_GREEN}));
|
||||
|
||||
/*--------------------------
|
||||
| DODONGOS CAVERN |
|
||||
---------------------------*/
|
||||
|
@ -313,6 +317,10 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
|||
/*german*/ "Man erzählt sich, daß eine #Kiste in Dodongos Höhle# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans la Caverne Dodongo# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_DODONGOS_BOULDER] = HintText(CustomMessage("They say that a #boulder in Dodongo's Cavern# contains #[[1]]#.",
|
||||
/*german*/ "!!!",
|
||||
/*french*/ "!!!", {QM_RED, QM_GREEN}));
|
||||
|
||||
/*--------------------------
|
||||
| JABU JABUS BELLY |
|
||||
---------------------------*/
|
||||
|
@ -480,6 +488,9 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
|||
/*german*/ "Man erzählt sich, daß eine #Kiste in Jabu-Jabus Bauch# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans le Ventre de Jabu-Jabu# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_JABU_BOULDER] = HintText(CustomMessage("They say that a #boulder in Jabu Jabu's Belly# contains #[[1]]#.",
|
||||
/*german*/ "!!!",
|
||||
/*french*/ "!!!", {QM_RED, QM_GREEN}));
|
||||
/*--------------------------
|
||||
| FOREST TEMPLE |
|
||||
---------------------------*/
|
||||
|
@ -1322,6 +1333,9 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
|||
/*german*/ "Man erzählt sich, daß eine #Kiste im Geistertempel# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans le Temple de l'Esprit# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_SPIRIT_TEMPLE_BOULDER] = HintText(CustomMessage("They say that a #boulder in the Spirit Temple# contains #[[1]]#.",
|
||||
/*german*/ "!!!",
|
||||
/*french*/ "!!!", {QM_RED, QM_GREEN}));
|
||||
/*--------------------------
|
||||
| SHADOW TEMPLE |
|
||||
---------------------------*/
|
||||
|
@ -1735,6 +1749,9 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
|
|||
/*german*/ "Man erzählt sich, daß etwas #Gras auf dem Grund des Brunnens# #[[1]]# verstecke.",
|
||||
/*french*/ "Selon moi, de l'#herbe dans le Puits# cache #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_BOTW_BOULDER] = HintText(CustomMessage("They say that a #boulder in Bottom of the Well# contains #[[1]]#.",
|
||||
/*german*/ "!!!",
|
||||
/*french*/ "!!!", {QM_RED, QM_GREEN}));
|
||||
|
||||
/*--------------------------
|
||||
| ICE CAVERN |
|
||||
|
|
|
@ -2053,6 +2053,127 @@ void StaticData::HintTable_Init_Exclude_Overworld() {
|
|||
/*german*/ "Man erzählt sich, daß eine #Kiste im Laboratorium# #[[1]]# enthielte.",
|
||||
/*french*/ "Selon moi, une #caisse dans un laboratoire# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_GRAVEYARD_ROYAL_FAMILYS_TOMB_SUN_FAIRY] = HintText(CustomMessage("They say that #calling the sun in a royal tomb# reveals #[[1]]#.", { QM_RED, QM_GREEN }));
|
||||
|
||||
hintTextTable[RHT_KF_ROCK] = HintText(CustomMessage("They say that a #rock in Kokiri Forest# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "Selon moi, une #roche dans la Fôret Kokiri# contient #[[1]]#.", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_LW_BOULDER] = HintText(CustomMessage("They say that a #boulder in the Lost Woods# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_HC_ROCK] = HintText(CustomMessage("They say that a #rock at Hyrule Castle# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_HC_BOULDER] = HintText(CustomMessage("They say that a #boulder at Hyrule Castle# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_OGC_BRONZE_BOULDER] = HintText(CustomMessage("They say that a #bronze boulder outside Ganon's Castle# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_OGC_SILVER_BOULDER] = HintText(CustomMessage("They say that a #silver boulder outside Ganon's Castle# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_DMC_ROCK] = HintText(CustomMessage("They say that a #rock in Death Mountain Crater# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_DMC_BOULDER] = HintText(CustomMessage("They say that a #boulder in Death Mountain Crater# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_DMC_BRONZE_BOULDER] = HintText(CustomMessage("They say that a #bronze boulder in Death Mountain Crater# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_GV_SILVER_BOULDER] = HintText(CustomMessage("They say that a #silver boulder in Gerudo Valley# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_GV_ROCK] = HintText(CustomMessage("They say that a #rock in Gerudo Valley# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_GV_BOULDER] = HintText(CustomMessage("They say that a #boulder in Gerudo Valley# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_GV_BRONZE_BOULDER] = HintText(CustomMessage("They say that a #bronze boulder in Gerudo Valley# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_HF_SILVER_BOULDER] = HintText(CustomMessage("They say that a #silver boulder on Hyrule Field# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_HF_ROCK] = HintText(CustomMessage("They say that a #rock on Hyrule Field# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_HF_BOULDER] = HintText(CustomMessage("They say that a #boulder on Hyrule Field# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_HF_BRONZE_BOULDER] = HintText(CustomMessage("They say that a #bronze boulder on Hyrule Field# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_KAK_SILVER_BOULDER] = HintText(CustomMessage("They say that a #silver boulder at Kakariko Village# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_KAK_ROCK] = HintText(CustomMessage("They say that a #rock at Kakariko Village# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_GY_ROCK] = HintText(CustomMessage("They say that a #rock in a graveyard# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_LA_ROCK] = HintText(CustomMessage("They say that a #rock at Lake Hylia# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_ZD_ROCK] = HintText(CustomMessage("They say that a #rock in Zora's Domain# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_ZF_BOULDER] = HintText(CustomMessage("They say that a #boulder in Zora's Fountain# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_ZF_SILVER_BOULDER] = HintText(CustomMessage("They say that a #silver boulder in Zora's Fountain# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_ZR_ROCK] = HintText(CustomMessage("They say that a #rock along a river# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_ZR_BOULDER] = HintText(CustomMessage("They say that a #boulder along a river# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_DMT_ROCK] = HintText(CustomMessage("They say that a #rock on Death Mountain Trail# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_DMT_BOULDER] = HintText(CustomMessage("They say that a #boulder on Death Mountain Trail# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_DMT_BRONZE_BOULDER] = HintText(CustomMessage("They say that a #bronze boulder on Death Mountain Trail# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_GC_ROCK] = HintText(CustomMessage("They say that a #rock in Goron City# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_GC_BOULDER] = HintText(CustomMessage("They say that a #boulder in Goron City# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_GC_BRONZE_BOULDER] = HintText(CustomMessage("They say that a #bronze boulder in Goron City# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_GC_SILVER_BOULDER] = HintText(CustomMessage("They say that a #silver boulder in Goron City# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
|
||||
hintTextTable[RHT_COLOSSUS_SILVER_BOULDER] = HintText(CustomMessage("They say that a #silver boulder in a desert# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
hintTextTable[RHT_COLOSSUS_ROCK] = HintText(CustomMessage("They say that a #rock in a desert# contains #[[1]]#.",
|
||||
/*german*/ "",
|
||||
/*french*/ "", {QM_RED, QM_GREEN}));
|
||||
// clang-format on
|
||||
}
|
||||
} // namespace Rando
|
||||
|
|
|
@ -616,6 +616,17 @@ void GenerateItemPool() {
|
|||
PlaceItemsForType(RCTYPE_NLCRATE, overworldNLCratesActive, dungeonCratesActive);
|
||||
PlaceItemsForType(RCTYPE_SMALL_CRATE, overworldCratesActive, dungeonCratesActive);
|
||||
|
||||
// Shuffle Rocks
|
||||
bool rocksActive = ctx->GetOption(RSK_SHUFFLE_ROCKS).Get();
|
||||
PlaceItemsForType(RCTYPE_ROCK, rocksActive, rocksActive);
|
||||
|
||||
// Shuffle Boulders
|
||||
bool overworldBouldersActive = ctx->GetOption(RSK_SHUFFLE_BOULDERS).Is(RO_SHUFFLE_BOULDERS_OVERWORLD) ||
|
||||
ctx->GetOption(RSK_SHUFFLE_BOULDERS).Is(RO_SHUFFLE_BOULDERS_ALL);
|
||||
bool dungeonBouldersActive = ctx->GetOption(RSK_SHUFFLE_BOULDERS).Is(RO_SHUFFLE_BOULDERS_DUNGEONS) ||
|
||||
ctx->GetOption(RSK_SHUFFLE_BOULDERS).Is(RO_SHUFFLE_BOULDERS_ALL);
|
||||
PlaceItemsForType(RCTYPE_BOULDER, overworldBouldersActive, dungeonBouldersActive);
|
||||
|
||||
auto fsMode = ctx->GetOption(RSK_FISHSANITY);
|
||||
if (fsMode.IsNot(RO_FISHSANITY_OFF)) {
|
||||
if (fsMode.Is(RO_FISHSANITY_POND) || fsMode.Is(RO_FISHSANITY_BOTH)) {
|
||||
|
|
630
soh/soh/Enhancements/randomizer/ShuffleRocks.cpp
Normal file
630
soh/soh/Enhancements/randomizer/ShuffleRocks.cpp
Normal file
|
@ -0,0 +1,630 @@
|
|||
#include "ShuffleRocks.h"
|
||||
#include "soh_assets.h"
|
||||
#include "static_data.h"
|
||||
|
||||
extern "C" {
|
||||
#include "variables.h"
|
||||
#include "overlays/actors/ovl_En_Ishi/z_en_ishi.h"
|
||||
#include "overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.h"
|
||||
#include "overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.h"
|
||||
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||
#include "objects/object_bombiwa/object_bombiwa.h"
|
||||
extern PlayState* gPlayState;
|
||||
}
|
||||
|
||||
#define RAND_GET_OPTION(option) Rando::Context::GetInstance()->GetOption(option).Get()
|
||||
|
||||
extern void EnItem00_DrawRandomizedItem(EnItem00* enItem00, PlayState* play);
|
||||
|
||||
extern "C" void EnIshi_RandomizerDraw(Actor* thisx, PlayState* play) {
|
||||
auto rockActor = ((EnIshi*)thisx);
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gDPSetGrayscaleColor(POLY_OPA_DISP++, 175, 255, 0, 255);
|
||||
|
||||
if (rockActor->rockIdentity.randomizerCheck != RC_MAX &&
|
||||
Flags_GetRandomizerInf(rockActor->rockIdentity.randomizerInf) == 0) {
|
||||
gSPGrayscale(POLY_OPA_DISP++, true);
|
||||
}
|
||||
|
||||
if (rockActor->actor.params & 1) {
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
|
||||
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gSilverRockDL);
|
||||
} else {
|
||||
Gfx_DrawDListOpa(play, (Gfx*)gFieldKakeraDL);
|
||||
}
|
||||
|
||||
gSPGrayscale(POLY_OPA_DISP++, false);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
extern "C" void ObjBombiwa_RandomizerDraw(Actor* thisx, PlayState* play) {
|
||||
auto rockActor = ((ObjBombiwa*)thisx);
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gDPSetGrayscaleColor(POLY_OPA_DISP++, 175, 255, 0, 255);
|
||||
|
||||
if (rockActor->rockIdentity.randomizerCheck != RC_MAX &&
|
||||
Flags_GetRandomizerInf(rockActor->rockIdentity.randomizerInf) == 0) {
|
||||
gSPGrayscale(POLY_OPA_DISP++, true);
|
||||
}
|
||||
|
||||
Gfx_DrawDListOpa(play, (Gfx*)object_bombiwa_DL_0009E0);
|
||||
|
||||
gSPGrayscale(POLY_OPA_DISP++, false);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
extern "C" void ObjHamishi_RandomizerDraw(Actor* thisx, PlayState* play) {
|
||||
auto rockActor = ((ObjHamishi*)thisx);
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gDPSetGrayscaleColor(POLY_OPA_DISP++, 175, 255, 0, 255);
|
||||
|
||||
if (rockActor->rockIdentity.randomizerCheck != RC_MAX &&
|
||||
Flags_GetRandomizerInf(rockActor->rockIdentity.randomizerInf) == 0) {
|
||||
gSPGrayscale(POLY_OPA_DISP++, true);
|
||||
}
|
||||
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
|
||||
gSPMatrix(POLY_OPA_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 170, 130, 255);
|
||||
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gSilverRockDL);
|
||||
|
||||
gSPGrayscale(POLY_OPA_DISP++, false);
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
uint8_t Rock_RandomizerHoldsItem(RockIdentity rockIdentity, PlayState* play, bool isBoulder) {
|
||||
RandomizerCheck rc = rockIdentity.randomizerCheck;
|
||||
if (rc == RC_MAX)
|
||||
return false;
|
||||
|
||||
uint8_t isDungeon = Rando::StaticData::GetLocation(rc)->IsDungeon();
|
||||
uint8_t setting =
|
||||
Rando::Context::GetInstance()->GetOption(isBoulder ? RSK_SHUFFLE_BOULDERS : RSK_SHUFFLE_ROCKS).Get();
|
||||
|
||||
// Don't pull randomized item if rock isn't randomized or is already checked
|
||||
return IS_RANDO &&
|
||||
((!isBoulder && setting) || (isBoulder && (setting == RO_SHUFFLE_BOULDERS_ALL ||
|
||||
(isDungeon && setting == RO_SHUFFLE_BOULDERS_DUNGEONS) ||
|
||||
(!isDungeon && setting == RO_SHUFFLE_BOULDERS_OVERWORLD)))) &&
|
||||
!Flags_GetRandomizerInf(rockIdentity.randomizerInf) && rockIdentity.randomizerCheck != RC_UNKNOWN_CHECK;
|
||||
}
|
||||
|
||||
void Rock_RandomizerSpawnCollectible(Actor* actor, RockIdentity rockIdentity, PlayState* play) {
|
||||
LUSLOG_INFO("ROCKdrop %d\t:\t%d, %d", rockIdentity.randomizerCheck, (s16)actor->world.pos.x,
|
||||
(s16)actor->world.pos.z);
|
||||
EnItem00* item00 = (EnItem00*)Item_DropCollectible2(play, &actor->world.pos, ITEM00_SOH_DUMMY);
|
||||
item00->randoInf = rockIdentity.randomizerInf;
|
||||
item00->itemEntry = Rando::Context::GetInstance()->GetFinalGIEntry(rockIdentity.randomizerCheck, true, GI_NONE);
|
||||
item00->actor.draw = (ActorFunc)EnItem00_DrawRandomizedItem;
|
||||
item00->actor.velocity.y = 9.0f;
|
||||
item00->actor.speedXZ = 2.0f;
|
||||
item00->actor.world.rot.y = Rand_CenteredFloat(65536.0f);
|
||||
}
|
||||
|
||||
void EnIshi_RandomizerInit(void* actorRef) {
|
||||
Actor* actor = static_cast<Actor*>(actorRef);
|
||||
|
||||
if (actor->id != ACTOR_EN_ISHI)
|
||||
return;
|
||||
|
||||
EnIshi* rockActor = static_cast<EnIshi*>(actorRef);
|
||||
|
||||
rockActor->rockIdentity = OTRGlobals::Instance->gRandomizer->IdentifyRock(
|
||||
gPlayState->sceneNum, (s16)actor->world.pos.x, (s16)actor->world.pos.z);
|
||||
if (rockActor->rockIdentity.randomizerCheck == RC_MAX) {
|
||||
LUSLOG_WARN("ROCK ishi %d\t:\t%d, %d", rockActor->rockIdentity.randomizerCheck, actor->params & 1,
|
||||
(s16)actor->world.pos.x, (s16)actor->world.pos.z);
|
||||
} else {
|
||||
LUSLOG_INFO("ROCK ishi%d %d\t:\t%d, %d", rockActor->rockIdentity.randomizerCheck, actor->params & 1,
|
||||
(s16)actor->world.pos.x, (s16)actor->world.pos.z);
|
||||
}
|
||||
|
||||
if (Rock_RandomizerHoldsItem(rockActor->rockIdentity, gPlayState, actor->params & 1)) {
|
||||
rockActor->actor.draw = EnIshi_RandomizerDraw;
|
||||
}
|
||||
}
|
||||
|
||||
void ObjBombiwa_RandomizerInit(void* actorRef) {
|
||||
Actor* actor = static_cast<Actor*>(actorRef);
|
||||
|
||||
if (actor->id != ACTOR_OBJ_BOMBIWA)
|
||||
return;
|
||||
|
||||
ObjBombiwa* rockActor = static_cast<ObjBombiwa*>(actorRef);
|
||||
|
||||
rockActor->rockIdentity = OTRGlobals::Instance->gRandomizer->IdentifyRock(
|
||||
gPlayState->sceneNum, (s16)actor->world.pos.x, (s16)actor->world.pos.z);
|
||||
if (rockActor->rockIdentity.randomizerCheck == RC_MAX) {
|
||||
LUSLOG_INFO("ROCK bombiwa\t:\t%d, %d", rockActor->rockIdentity.randomizerCheck, (s16)actor->world.pos.x,
|
||||
(s16)actor->world.pos.z);
|
||||
} else {
|
||||
LUSLOG_INFO("ROCK bombiwa%d\t:\t%d, %d", rockActor->rockIdentity.randomizerCheck, (s16)actor->world.pos.x,
|
||||
(s16)actor->world.pos.z);
|
||||
}
|
||||
if (Rock_RandomizerHoldsItem(rockActor->rockIdentity, gPlayState, true)) {
|
||||
rockActor->actor.draw = ObjBombiwa_RandomizerDraw;
|
||||
}
|
||||
}
|
||||
|
||||
void ObjHamishi_RandomizerInit(void* actorRef) {
|
||||
Actor* actor = static_cast<Actor*>(actorRef);
|
||||
|
||||
if (actor->id != ACTOR_OBJ_HAMISHI)
|
||||
return;
|
||||
|
||||
ObjHamishi* rockActor = static_cast<ObjHamishi*>(actorRef);
|
||||
|
||||
rockActor->rockIdentity = OTRGlobals::Instance->gRandomizer->IdentifyRock(
|
||||
gPlayState->sceneNum, (s16)actor->world.pos.x, (s16)actor->world.pos.z);
|
||||
if (rockActor->rockIdentity.randomizerCheck == RC_MAX) {
|
||||
LUSLOG_WARN("ROCK hamishi\t:\t%d, %d", rockActor->rockIdentity.randomizerCheck, (s16)actor->world.pos.x,
|
||||
(s16)actor->world.pos.z);
|
||||
} else {
|
||||
LUSLOG_INFO("ROCK hamishi%d\t:\t%d, %d", rockActor->rockIdentity.randomizerCheck, (s16)actor->world.pos.x,
|
||||
(s16)actor->world.pos.z);
|
||||
}
|
||||
if (Rock_RandomizerHoldsItem(rockActor->rockIdentity, gPlayState, true)) {
|
||||
rockActor->actor.draw = ObjHamishi_RandomizerDraw;
|
||||
}
|
||||
}
|
||||
|
||||
void ObjBombiwa_RandomizerKill(void* actorRef) {
|
||||
Actor* actor = static_cast<Actor*>(actorRef);
|
||||
|
||||
if (actor->id != ACTOR_OBJ_BOMBIWA)
|
||||
return;
|
||||
|
||||
ObjBombiwa* rockActor = static_cast<ObjBombiwa*>(actorRef);
|
||||
|
||||
if (Rock_RandomizerHoldsItem(rockActor->rockIdentity, gPlayState, true)) {
|
||||
Rock_RandomizerSpawnCollectible(&rockActor->actor, rockActor->rockIdentity, gPlayState);
|
||||
rockActor->rockIdentity.randomizerCheck = RC_MAX;
|
||||
rockActor->rockIdentity.randomizerInf = RAND_INF_MAX;
|
||||
}
|
||||
}
|
||||
|
||||
void ObjHamishi_RandomizerKill(void* actorRef) {
|
||||
Actor* actor = static_cast<Actor*>(actorRef);
|
||||
|
||||
if (actor->id != ACTOR_OBJ_HAMISHI)
|
||||
return;
|
||||
|
||||
ObjHamishi* rockActor = static_cast<ObjHamishi*>(actorRef);
|
||||
|
||||
if (Rock_RandomizerHoldsItem(rockActor->rockIdentity, gPlayState, true)) {
|
||||
Rock_RandomizerSpawnCollectible(&rockActor->actor, rockActor->rockIdentity, gPlayState);
|
||||
rockActor->rockIdentity.randomizerCheck = RC_MAX;
|
||||
rockActor->rockIdentity.randomizerInf = RAND_INF_MAX;
|
||||
}
|
||||
}
|
||||
|
||||
void RegisterShuffleRock() {
|
||||
bool shouldRegister = IS_RANDO && (RAND_GET_OPTION(RSK_SHUFFLE_ROCKS) || RAND_GET_OPTION(RSK_SHUFFLE_BOULDERS));
|
||||
|
||||
COND_ID_HOOK(OnActorInit, ACTOR_EN_ISHI, shouldRegister, EnIshi_RandomizerInit);
|
||||
COND_ID_HOOK(OnActorInit, ACTOR_OBJ_BOMBIWA, shouldRegister, ObjBombiwa_RandomizerInit);
|
||||
COND_ID_HOOK(OnActorInit, ACTOR_OBJ_HAMISHI, shouldRegister, ObjHamishi_RandomizerInit);
|
||||
COND_ID_HOOK(OnActorKill, ACTOR_OBJ_BOMBIWA, shouldRegister, ObjBombiwa_RandomizerKill);
|
||||
COND_ID_HOOK(OnActorKill, ACTOR_OBJ_HAMISHI, shouldRegister, ObjHamishi_RandomizerKill);
|
||||
|
||||
COND_VB_SHOULD(VB_ROCK_DROP_ITEM, shouldRegister, {
|
||||
EnIshi* rockActor = va_arg(args, EnIshi*);
|
||||
if (Rock_RandomizerHoldsItem(rockActor->rockIdentity, gPlayState, rockActor->actor.params & 1)) {
|
||||
Rock_RandomizerSpawnCollectible(&rockActor->actor, rockActor->rockIdentity, gPlayState);
|
||||
rockActor->rockIdentity.randomizerCheck = RC_MAX;
|
||||
rockActor->rockIdentity.randomizerInf = RAND_INF_MAX;
|
||||
*should = false;
|
||||
}
|
||||
});
|
||||
|
||||
COND_VB_SHOULD(VB_BOULDER_BREAK_FLAG, shouldRegister, {
|
||||
Actor* rockActor = va_arg(args, Actor*);
|
||||
auto rockIdentity = OTRGlobals::Instance->gRandomizer->IdentifyRock(
|
||||
gPlayState->sceneNum, (s16)rockActor->world.pos.x, (s16)rockActor->world.pos.z);
|
||||
if (Rock_RandomizerHoldsItem(rockIdentity, gPlayState, true)) {
|
||||
Flags_UnsetSwitch(gPlayState, rockActor->params & 0x3F);
|
||||
*should = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
static RegisterShipInitFunc initFunc(RegisterShuffleRock, { "IS_RANDO" });
|
||||
|
||||
void Rando::StaticData::RegisterRockLocations() {
|
||||
#define ROCKLOC(id, area, scene, hint, x, z) \
|
||||
(locationTable[RC_##id] = Location::Rock(RC_##id, RCQUEST_BOTH, area, scene, TWO_ACTOR_PARAMS(x, z), #id, hint, \
|
||||
RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_##id)))
|
||||
#define BOLDLOC(id, area, scene, hint, x, z) \
|
||||
(locationTable[RC_##id] = Location::Boulder(RC_##id, RCQUEST_BOTH, area, scene, TWO_ACTOR_PARAMS(x, z), #id, hint, \
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_##id)))
|
||||
ROCKLOC(KF_CIRCLE_ROCK_1, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, -292, -350);
|
||||
ROCKLOC(KF_CIRCLE_ROCK_2, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, -235, -373);
|
||||
ROCKLOC(KF_CIRCLE_ROCK_3, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, -212, -430);
|
||||
ROCKLOC(KF_CIRCLE_ROCK_4, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, -235, -486);
|
||||
ROCKLOC(KF_CIRCLE_ROCK_5, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, -292, -510);
|
||||
ROCKLOC(KF_CIRCLE_ROCK_6, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, -348, -486);
|
||||
ROCKLOC(KF_CIRCLE_ROCK_7, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, -372, -430);
|
||||
ROCKLOC(KF_CIRCLE_ROCK_8, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, -348, -373);
|
||||
ROCKLOC(KF_ROCK_BY_SARIAS_HOUSE, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, 248, 601);
|
||||
ROCKLOC(KF_ROCK_BEHIND_SARIAS_HOUSE, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, 726, 961);
|
||||
ROCKLOC(KF_ROCK_BY_MIDOS_HOUSE, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, -672, -623);
|
||||
ROCKLOC(KF_ROCK_BY_KNOW_IT_ALLS_HOUSE, RCAREA_KOKIRI_FOREST, SCENE_KOKIRI_FOREST, RHT_KF_ROCK, -1361, 145);
|
||||
BOLDLOC(LW_BOULDER_BY_GORON_CITY, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, RHT_LW_BOULDER, 915, -925);
|
||||
BOLDLOC(LW_BOULDER_BY_SACRED_FOREST_MEADOW, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, RHT_LW_BOULDER, 670, -2520);
|
||||
BOLDLOC(LW_RUPEE_BOULDER, RCAREA_LOST_WOODS, SCENE_LOST_WOODS, RHT_LW_BOULDER, 1720, -2510);
|
||||
|
||||
locationTable[RC_HC_ROCK_1] = Location::Rock(
|
||||
RC_HC_ROCK_1, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(-216, 2977),
|
||||
"HC Rock 1", RHT_HC_ROCK, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_ROCK_1));
|
||||
locationTable[RC_HC_ROCK_2] = Location::Rock(
|
||||
RC_HC_ROCK_2, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(-110, 3006),
|
||||
"HC Rock 2", RHT_HC_ROCK, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_ROCK_2));
|
||||
locationTable[RC_HC_ROCK_3] = Location::Rock(
|
||||
RC_HC_ROCK_3, RCQUEST_BOTH, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, TWO_ACTOR_PARAMS(-129, 2897),
|
||||
"HC Rock 3", RHT_HC_ROCK, RG_RECOVERY_HEART, SpoilerCollectionCheck::RandomizerInf(RAND_INF_HC_ROCK_3));
|
||||
BOLDLOC(HC_BOULDER, RCAREA_HYRULE_CASTLE, SCENE_HYRULE_CASTLE, RHT_HC_BOULDER, 2730, 2540);
|
||||
BOLDLOC(OGC_BRONZE_BOULDER_1, RCAREA_HYRULE_CASTLE, SCENE_OUTSIDE_GANONS_CASTLE, RHT_OGC_BRONZE_BOULDER, 2324, 533);
|
||||
BOLDLOC(OGC_BRONZE_BOULDER_2, RCAREA_HYRULE_CASTLE, SCENE_OUTSIDE_GANONS_CASTLE, RHT_OGC_BRONZE_BOULDER, 1590, 787);
|
||||
BOLDLOC(OGC_BRONZE_BOULDER_3, RCAREA_HYRULE_CASTLE, SCENE_OUTSIDE_GANONS_CASTLE, RHT_OGC_BRONZE_BOULDER, 1661, 748);
|
||||
BOLDLOC(OGC_SILVER_BOULDER_1, RCAREA_HYRULE_CASTLE, SCENE_OUTSIDE_GANONS_CASTLE, RHT_OGC_SILVER_BOULDER, 1606, 685);
|
||||
BOLDLOC(OGC_SILVER_BOULDER_2, RCAREA_HYRULE_CASTLE, SCENE_OUTSIDE_GANONS_CASTLE, RHT_OGC_SILVER_BOULDER, 1766, 726);
|
||||
BOLDLOC(OGC_SILVER_BOULDER_3, RCAREA_HYRULE_CASTLE, SCENE_OUTSIDE_GANONS_CASTLE, RHT_OGC_SILVER_BOULDER, 1701, 661);
|
||||
BOLDLOC(OGC_SILVER_BOULDER_4, RCAREA_HYRULE_CASTLE, SCENE_OUTSIDE_GANONS_CASTLE, RHT_OGC_SILVER_BOULDER, 2260, 560);
|
||||
|
||||
ROCKLOC(DMC_ROCK_BY_FIRE_TEMPLE_1, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, -50,
|
||||
-714);
|
||||
ROCKLOC(DMC_ROCK_BY_FIRE_TEMPLE_2, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, -26,
|
||||
-807);
|
||||
ROCKLOC(DMC_ROCK_BY_FIRE_TEMPLE_3, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, 61,
|
||||
-763);
|
||||
ROCKLOC(DMC_ROCK_BY_FIRE_TEMPLE_4, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, 71,
|
||||
-610);
|
||||
ROCKLOC(DMC_ROCK_BY_FIRE_TEMPLE_5, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, 79,
|
||||
-700);
|
||||
ROCKLOC(DMC_CIRCLE_ROCK_1, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, 40, 1850);
|
||||
ROCKLOC(DMC_CIRCLE_ROCK_2, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, 96, 1826);
|
||||
ROCKLOC(DMC_CIRCLE_ROCK_3, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, 120, 1770);
|
||||
ROCKLOC(DMC_CIRCLE_ROCK_4, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, 96, 1713);
|
||||
ROCKLOC(DMC_CIRCLE_ROCK_5, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, 40, 1690);
|
||||
ROCKLOC(DMC_CIRCLE_ROCK_6, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, -16, 1713);
|
||||
ROCKLOC(DMC_CIRCLE_ROCK_7, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, -40, 1770);
|
||||
ROCKLOC(DMC_CIRCLE_ROCK_8, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, -16, 1826);
|
||||
ROCKLOC(DMC_GOSSIP_ROCK_1, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, 1261, 1533);
|
||||
ROCKLOC(DMC_GOSSIP_ROCK_2, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_ROCK, 1356, 1541);
|
||||
BOLDLOC(DMC_BOULDER_1, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_BOULDER, -504, 1070);
|
||||
BOLDLOC(DMC_BOULDER_2, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_BOULDER, 236, 1199);
|
||||
BOLDLOC(DMC_BOULDER_3, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_BOULDER, 40, 1770);
|
||||
BOLDLOC(DMC_BRONZE_BOULDER_1, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_BRONZE_BOULDER,
|
||||
-1699, -472);
|
||||
BOLDLOC(DMC_BRONZE_BOULDER_2, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_BRONZE_BOULDER,
|
||||
-1332, 921);
|
||||
BOLDLOC(DMC_BRONZE_BOULDER_3, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_BRONZE_BOULDER,
|
||||
-1303, 975);
|
||||
BOLDLOC(DMC_BRONZE_BOULDER_4, RCAREA_DEATH_MOUNTAIN_CRATER, SCENE_DEATH_MOUNTAIN_CRATER, RHT_DMC_BRONZE_BOULDER,
|
||||
-1060, 944);
|
||||
|
||||
BOLDLOC(GV_SILVER_BOULDER, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_SILVER_BOULDER, 280, 1470);
|
||||
ROCKLOC(GV_ROCK_1, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_ROCK, 2738, 297);
|
||||
ROCKLOC(GV_ROCK_2, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_ROCK, 2715, 316);
|
||||
ROCKLOC(GV_ROCK_3, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_ROCK, 2699, 275);
|
||||
ROCKLOC(GV_UNDERWATER_ROCK_1, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_ROCK, 1559, -63);
|
||||
ROCKLOC(GV_UNDERWATER_ROCK_2, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_ROCK, 1605, 26);
|
||||
ROCKLOC(GV_UNDERWATER_ROCK_3, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_ROCK, 1686, -33);
|
||||
ROCKLOC(GV_ROCK_ACROSS_BRIDGE_1, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_ROCK, -666, -899);
|
||||
ROCKLOC(GV_ROCK_ACROSS_BRIDGE_2, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_ROCK, -526, -890);
|
||||
ROCKLOC(GV_ROCK_ACROSS_BRIDGE_3, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_ROCK, -607, -791);
|
||||
ROCKLOC(GV_ROCK_ACROSS_BRIDGE_4, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_ROCK, -458, -782);
|
||||
BOLDLOC(GV_BOULDER_1, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BOULDER, 751, 569);
|
||||
BOLDLOC(GV_BOULDER_2, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BOULDER, 545, -510);
|
||||
BOLDLOC(GV_BOULDER_ACROSS_BRIDGE, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BOULDER, -954, 577);
|
||||
BOLDLOC(GV_BRONZE_BOULDER_1, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BRONZE_BOULDER, 861, -778);
|
||||
BOLDLOC(GV_BRONZE_BOULDER_2, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BRONZE_BOULDER, 735, 375);
|
||||
BOLDLOC(GV_BRONZE_BOULDER_ACROSS_BRIDGE_1, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BRONZE_BOULDER, -1352,
|
||||
767);
|
||||
BOLDLOC(GV_BRONZE_BOULDER_ACROSS_BRIDGE_2, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BRONZE_BOULDER, -1695,
|
||||
-350);
|
||||
BOLDLOC(GV_BRONZE_BOULDER_ACROSS_BRIDGE_3, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BRONZE_BOULDER, -1001,
|
||||
637);
|
||||
BOLDLOC(GV_BRONZE_BOULDER_ACROSS_BRIDGE_4, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BRONZE_BOULDER, -1291,
|
||||
787);
|
||||
BOLDLOC(GV_BRONZE_BOULDER_ACROSS_BRIDGE_5, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BRONZE_BOULDER, -1416,
|
||||
778);
|
||||
BOLDLOC(GV_BRONZE_BOULDER_ACROSS_BRIDGE_6, RCAREA_GERUDO_VALLEY, SCENE_GERUDO_VALLEY, RHT_GV_BRONZE_BOULDER, -1256,
|
||||
856);
|
||||
|
||||
BOLDLOC(HF_SILVER_BOULDER, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_SILVER_BOULDER, 674, 8256);
|
||||
ROCKLOC(HF_ROCK_1, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_ROCK, -7875, 6995);
|
||||
ROCKLOC(HF_ROCK_2, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_ROCK, -7818, 6971);
|
||||
ROCKLOC(HF_ROCK_3, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_ROCK, -7795, 6915);
|
||||
ROCKLOC(HF_ROCK_4, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_ROCK, -7818, 6858);
|
||||
ROCKLOC(HF_ROCK_5, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_ROCK, -7875, 6835);
|
||||
ROCKLOC(HF_ROCK_6, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_ROCK, -7931, 6858);
|
||||
ROCKLOC(HF_ROCK_7, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_ROCK, -7955, 6915);
|
||||
ROCKLOC(HF_ROCK_8, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_ROCK, -7931, 6971);
|
||||
BOLDLOC(HF_BOULDER_NORTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_BOULDER, -4450, -425);
|
||||
BOLDLOC(HF_BOULDER_BY_MARKET, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_BOULDER, -1425, 810);
|
||||
BOLDLOC(HF_BOULDER_SOUTH, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_BOULDER, -270, 12350);
|
||||
BOLDLOC(HF_BRONZE_BOULDER_1, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_BRONZE_BOULDER, -7870, 6920);
|
||||
BOLDLOC(HF_BRONZE_BOULDER_2, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_BRONZE_BOULDER, -7804, 7983);
|
||||
BOLDLOC(HF_BRONZE_BOULDER_3, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_BRONZE_BOULDER, -8397, 7947);
|
||||
BOLDLOC(HF_BRONZE_BOULDER_4, RCAREA_HYRULE_FIELD, SCENE_HYRULE_FIELD, RHT_HF_BRONZE_BOULDER, -6461, 8220);
|
||||
|
||||
BOLDLOC(KAK_SILVER_BOULDER, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, RHT_KAK_SILVER_BOULDER, 1436, 1361);
|
||||
ROCKLOC(KAK_ROCK_1, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, RHT_KAK_ROCK, 220, -1236);
|
||||
ROCKLOC(KAK_ROCK_2, RCAREA_KAKARIKO_VILLAGE, SCENE_KAKARIKO_VILLAGE, RHT_KAK_ROCK, -664, 1288);
|
||||
ROCKLOC(GY_ROCK, RCAREA_GRAVEYARD, SCENE_GRAVEYARD, RHT_GY_ROCK, -1193, 693);
|
||||
ROCKLOC(LA_ROCK, RCAREA_LAKE_HYLIA, SCENE_LAKE_HYLIA, RHT_LA_ROCK, 1222, 3953);
|
||||
|
||||
ROCKLOC(ZD_CIRCLE_ROCK_1, RCAREA_ZORAS_DOMAIN, SCENE_ZORAS_DOMAIN, RHT_ZD_ROCK, 462, -696);
|
||||
ROCKLOC(ZD_CIRCLE_ROCK_2, RCAREA_ZORAS_DOMAIN, SCENE_ZORAS_DOMAIN, RHT_ZD_ROCK, 518, -719);
|
||||
ROCKLOC(ZD_CIRCLE_ROCK_3, RCAREA_ZORAS_DOMAIN, SCENE_ZORAS_DOMAIN, RHT_ZD_ROCK, 542, -776);
|
||||
ROCKLOC(ZD_CIRCLE_ROCK_4, RCAREA_ZORAS_DOMAIN, SCENE_ZORAS_DOMAIN, RHT_ZD_ROCK, 518, -832);
|
||||
ROCKLOC(ZD_CIRCLE_ROCK_5, RCAREA_ZORAS_DOMAIN, SCENE_ZORAS_DOMAIN, RHT_ZD_ROCK, 462, -856);
|
||||
ROCKLOC(ZD_CIRCLE_ROCK_6, RCAREA_ZORAS_DOMAIN, SCENE_ZORAS_DOMAIN, RHT_ZD_ROCK, 405, -832);
|
||||
ROCKLOC(ZD_CIRCLE_ROCK_7, RCAREA_ZORAS_DOMAIN, SCENE_ZORAS_DOMAIN, RHT_ZD_ROCK, 382, -776);
|
||||
ROCKLOC(ZD_CIRCLE_ROCK_8, RCAREA_ZORAS_DOMAIN, SCENE_ZORAS_DOMAIN, RHT_ZD_ROCK, 405, -719);
|
||||
BOLDLOC(ZF_BOULDER, RCAREA_ZORAS_FOUNTAIN, SCENE_ZORAS_FOUNTAIN, RHT_ZF_BOULDER, 189, 2586);
|
||||
BOLDLOC(ZF_SILVER_BOULDER, RCAREA_ZORAS_FOUNTAIN, SCENE_ZORAS_FOUNTAIN, RHT_ZF_SILVER_BOULDER, 316, 2634);
|
||||
BOLDLOC(ZF_UNDERGROUND_BOULDER, RCAREA_ZORAS_FOUNTAIN, SCENE_ZORAS_FOUNTAIN, RHT_ZF_BOULDER, 317, 2631);
|
||||
BOLDLOC(ZR_BOULDER_1, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_BOULDER, -1456, 434);
|
||||
BOLDLOC(ZR_BOULDER_2, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_BOULDER, -1518, 435);
|
||||
BOLDLOC(ZR_BOULDER_3, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_BOULDER, -1576, 430);
|
||||
BOLDLOC(ZR_BOULDER_4, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_BOULDER, -1400, 482);
|
||||
ROCKLOC(ZR_CIRCLE_ROCK_1, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, -1635, -53);
|
||||
ROCKLOC(ZR_CIRCLE_ROCK_2, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, -1578, -76);
|
||||
ROCKLOC(ZR_CIRCLE_ROCK_3, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, -1555, -133);
|
||||
ROCKLOC(ZR_CIRCLE_ROCK_4, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, -1578, -189);
|
||||
ROCKLOC(ZR_CIRCLE_ROCK_5, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, -1635, -213);
|
||||
ROCKLOC(ZR_CIRCLE_ROCK_6, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, -1691, -189);
|
||||
ROCKLOC(ZR_CIRCLE_ROCK_7, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, -1715, -133);
|
||||
ROCKLOC(ZR_CIRCLE_ROCK_8, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, -1691, -76);
|
||||
ROCKLOC(ZR_UPPER_CIRCLE_BOULDER, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_BOULDER, 672, -366);
|
||||
ROCKLOC(ZR_UPPER_CIRCLE_ROCK_1, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 668, -290);
|
||||
ROCKLOC(ZR_UPPER_CIRCLE_ROCK_2, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 724, -313);
|
||||
ROCKLOC(ZR_UPPER_CIRCLE_ROCK_3, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 748, -370);
|
||||
ROCKLOC(ZR_UPPER_CIRCLE_ROCK_4, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 724, -426);
|
||||
ROCKLOC(ZR_UPPER_CIRCLE_ROCK_5, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 668, -450);
|
||||
ROCKLOC(ZR_UPPER_CIRCLE_ROCK_6, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 611, -426);
|
||||
ROCKLOC(ZR_UPPER_CIRCLE_ROCK_7, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 588, -370);
|
||||
ROCKLOC(ZR_UPPER_CIRCLE_ROCK_8, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 611, -313);
|
||||
ROCKLOC(ZR_ROCK, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 2044, -786);
|
||||
ROCKLOC(ZR_UNDERWATER_ROCK_1, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 2425, -446);
|
||||
ROCKLOC(ZR_UNDERWATER_ROCK_2, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 2425, -524);
|
||||
ROCKLOC(ZR_UNDERWATER_ROCK_3, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 2503, -571);
|
||||
ROCKLOC(ZR_UNDERWATER_ROCK_4, RCAREA_ZORAS_RIVER, SCENE_ZORAS_RIVER, RHT_ZR_ROCK, 2550, -415);
|
||||
|
||||
// 5 rocks by dc
|
||||
ROCKLOC(DMT_ROCK_1, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -1816, -513);
|
||||
ROCKLOC(DMT_ROCK_2, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -1831, -614);
|
||||
ROCKLOC(DMT_ROCK_3, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -1857, -536);
|
||||
ROCKLOC(DMT_ROCK_4, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -1878, -465);
|
||||
ROCKLOC(DMT_ROCK_5, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -1787, -550);
|
||||
// child only
|
||||
ROCKLOC(DMT_SUMMIT_ROCK, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -327, -4286);
|
||||
// ring in front of gc
|
||||
ROCKLOC(DMT_CIRCLE_ROCK_1, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -383, -1126);
|
||||
ROCKLOC(DMT_CIRCLE_ROCK_2, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -326, -1149);
|
||||
ROCKLOC(DMT_CIRCLE_ROCK_3, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -303, -1206);
|
||||
ROCKLOC(DMT_CIRCLE_ROCK_4, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -326, -1262);
|
||||
ROCKLOC(DMT_CIRCLE_ROCK_5, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -383, -1286);
|
||||
ROCKLOC(DMT_CIRCLE_ROCK_6, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -439, -1262);
|
||||
ROCKLOC(DMT_CIRCLE_ROCK_7, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -463, -1206);
|
||||
ROCKLOC(DMT_CIRCLE_ROCK_8, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_ROCK, -439, -1149);
|
||||
BOLDLOC(DMT_BOULDER_1, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BOULDER, -625, -55);
|
||||
BOLDLOC(DMT_BOULDER_2, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BOULDER, -808, -59);
|
||||
BOLDLOC(DMT_BOULDER_3, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BOULDER, -1060, -51);
|
||||
BOLDLOC(DMT_COW_BOULDER, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BOULDER, -688, -285);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_1, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER,
|
||||
-1175, -803);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_2, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER,
|
||||
-1948, 1706);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_3, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER,
|
||||
-2019, 1101);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_4, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER,
|
||||
-1658, -88);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_5, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER,
|
||||
-1753, 445);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_6, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER,
|
||||
-1018, 1283);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_7, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER,
|
||||
-1986, 727);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_8, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER, -23,
|
||||
-3196);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_9, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER, -343,
|
||||
-2794);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_10, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER,
|
||||
-154, -2484);
|
||||
BOLDLOC(DMT_BRONZE_BOULDER_11, RCAREA_DEATH_MOUNTAIN_TRAIL, SCENE_DEATH_MOUNTAIN_TRAIL, RHT_DMT_BRONZE_BOULDER,
|
||||
-1590, -402);
|
||||
BOLDLOC(GC_LW_BOULDER_1, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, 416, 1049);
|
||||
BOLDLOC(GC_LW_BOULDER_2, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, 470, 1031);
|
||||
BOLDLOC(GC_LW_BOULDER_3, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, 367, 1078);
|
||||
BOLDLOC(GC_ENTRANCE_BOULDER_1, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -670, 470);
|
||||
BOLDLOC(GC_ENTRANCE_BOULDER_2, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -607, 419);
|
||||
BOLDLOC(GC_ENTRANCE_BOULDER_3, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -756, 474);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_1, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1479, -794);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_2, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1478, -855);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_3, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1474, -624);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_4, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1471, -993);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_5, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1467, -1064);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_6, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1460, -1121);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_7, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1451, -567);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_8, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1448, -672);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_9, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1440, -1174);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_10, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1437, -1342);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_11, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1424, -1245);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_12, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1424, -609);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_13, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1399, -1300);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_14, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1394, -654);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_15, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1343, -698);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_16, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1319, -1086);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_17, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1312, -1039);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_18, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1306, -837);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_19, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1279, -656);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_20, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1255, -840);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_21, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1246, -1075);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_22, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1244, -589);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_23, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1210, -852);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_24, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1206, -627);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_25, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1187, -896);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_26, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1157, -954);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_27, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1130, -1137);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_28, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1120, -1001);
|
||||
BOLDLOC(GC_MAZE_SILVER_BOULDER_29, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_SILVER_BOULDER, -1179, -1098);
|
||||
BOLDLOC(GC_MAZE_BOULDER_1, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -1342, -628);
|
||||
BOLDLOC(GC_MAZE_BOULDER_2, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -1456, -501);
|
||||
BOLDLOC(GC_MAZE_BOULDER_3, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -1233, -511);
|
||||
BOLDLOC(GC_MAZE_BOULDER_4, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -1137, -657);
|
||||
BOLDLOC(GC_MAZE_BOULDER_5, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -1124, -913);
|
||||
BOLDLOC(GC_MAZE_BOULDER_6, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -1326, -771);
|
||||
BOLDLOC(GC_MAZE_BOULDER_7, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -1469, -737);
|
||||
BOLDLOC(GC_MAZE_BOULDER_8, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -1476, -921);
|
||||
BOLDLOC(GC_MAZE_BOULDER_9, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -1391, -1087);
|
||||
BOLDLOC(GC_MAZE_BOULDER_10, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BOULDER, -1222, -997);
|
||||
BOLDLOC(GC_MAZE_BRONZE_BOULDER_1, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BRONZE_BOULDER, -1541, -631);
|
||||
BOLDLOC(GC_MAZE_BRONZE_BOULDER_2, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BRONZE_BOULDER, -1536, -861);
|
||||
BOLDLOC(GC_MAZE_BRONZE_BOULDER_3, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BRONZE_BOULDER, -1536, -1102);
|
||||
BOLDLOC(GC_MAZE_BRONZE_BOULDER_4, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BRONZE_BOULDER, -1534, -752);
|
||||
BOLDLOC(GC_MAZE_BRONZE_BOULDER_5, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_BRONZE_BOULDER, -1536, -991);
|
||||
ROCKLOC(GC_MAZE_ROCK, RCAREA_GORON_CITY, SCENE_GORON_CITY, RHT_GC_ROCK, -1197, -1329);
|
||||
BOLDLOC(COLOSSUS_SILVER_BOULDER, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_SILVER_BOULDER, 61,
|
||||
-1301);
|
||||
ROCKLOC(COLOSSUS_ROCK, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, 1537, 667);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_1_ROCK_1, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -250, -1272);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_1_ROCK_2, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -193, -1295);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_1_ROCK_3, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -170, -1352);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_1_ROCK_4, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -193, -1408);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_1_ROCK_5, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -250, -1432);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_1_ROCK_6, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -306, -1408);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_1_ROCK_7, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -330, -1352);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_1_ROCK_8, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -306, -1295);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_2_ROCK_1, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -834, -766);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_2_ROCK_2, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -777, -789);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_2_ROCK_3, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -754, -846);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_2_ROCK_4, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -777, -902);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_2_ROCK_5, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -834, -926);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_2_ROCK_6, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -890, -902);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_2_ROCK_7, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -914, -846);
|
||||
ROCKLOC(COLOSSUS_CIRCLE_2_ROCK_8, RCAREA_DESERT_COLOSSUS, SCENE_DESERT_COLOSSUS, RHT_COLOSSUS_ROCK, -890, -789);
|
||||
ROCKLOC(HC_STORMS_GROTTO_ROCK_1, RCAREA_HYRULE_CASTLE, SCENE_GROTTOS, RHT_HC_STORMS_GROTTO_ROCK, 1811, 813);
|
||||
ROCKLOC(HC_STORMS_GROTTO_ROCK_2, RCAREA_HYRULE_CASTLE, SCENE_GROTTOS, RHT_HC_STORMS_GROTTO_ROCK, 1867, 789);
|
||||
ROCKLOC(HC_STORMS_GROTTO_ROCK_3, RCAREA_HYRULE_CASTLE, SCENE_GROTTOS, RHT_HC_STORMS_GROTTO_ROCK, 1891, 733);
|
||||
ROCKLOC(HC_STORMS_GROTTO_ROCK_4, RCAREA_HYRULE_CASTLE, SCENE_GROTTOS, RHT_HC_STORMS_GROTTO_ROCK, 1867, 676);
|
||||
ROCKLOC(HC_STORMS_GROTTO_ROCK_5, RCAREA_HYRULE_CASTLE, SCENE_GROTTOS, RHT_HC_STORMS_GROTTO_ROCK, 1811, 653);
|
||||
ROCKLOC(HC_STORMS_GROTTO_ROCK_6, RCAREA_HYRULE_CASTLE, SCENE_GROTTOS, RHT_HC_STORMS_GROTTO_ROCK, 1754, 676);
|
||||
ROCKLOC(HC_STORMS_GROTTO_ROCK_7, RCAREA_HYRULE_CASTLE, SCENE_GROTTOS, RHT_HC_STORMS_GROTTO_ROCK, 1731, 733);
|
||||
ROCKLOC(HC_STORMS_GROTTO_ROCK_8, RCAREA_HYRULE_CASTLE, SCENE_GROTTOS, RHT_HC_STORMS_GROTTO_ROCK, 1754, 789);
|
||||
locationTable[RC_BOTW_BOULDER_1] =
|
||||
Location::Boulder(RC_BOTW_BOULDER_1, RCQUEST_VANILLA, RCAREA_BOTTOM_OF_THE_WELL, SCENE_BOTTOM_OF_THE_WELL,
|
||||
TWO_ACTOR_PARAMS(-684, -734), "BOTW Boulder 1", RHT_BOTW_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTW_BOULDER_1));
|
||||
locationTable[RC_BOTW_BOULDER_2] =
|
||||
Location::Boulder(RC_BOTW_BOULDER_2, RCQUEST_VANILLA, RCAREA_BOTTOM_OF_THE_WELL, SCENE_BOTTOM_OF_THE_WELL,
|
||||
TWO_ACTOR_PARAMS(-632, -805), "BOTW Boulder 2", RHT_BOTW_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTW_BOULDER_2));
|
||||
locationTable[RC_BOTW_BOULDER_3] =
|
||||
Location::Boulder(RC_BOTW_BOULDER_3, RCQUEST_VANILLA, RCAREA_BOTTOM_OF_THE_WELL, SCENE_BOTTOM_OF_THE_WELL,
|
||||
TWO_ACTOR_PARAMS(333, -681), "BOTW Boulder 3", RHT_BOTW_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTW_BOULDER_3));
|
||||
locationTable[RC_BOTW_BOULDER_4] =
|
||||
Location::Boulder(RC_BOTW_BOULDER_4, RCQUEST_VANILLA, RCAREA_BOTTOM_OF_THE_WELL, SCENE_BOTTOM_OF_THE_WELL,
|
||||
TWO_ACTOR_PARAMS(409, -637), "BOTW Boulder 4", RHT_BOTW_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTW_BOULDER_4));
|
||||
locationTable[RC_BOTW_BOULDER_5] =
|
||||
Location::Boulder(RC_BOTW_BOULDER_5, RCQUEST_VANILLA, RCAREA_BOTTOM_OF_THE_WELL, SCENE_BOTTOM_OF_THE_WELL,
|
||||
TWO_ACTOR_PARAMS(334, -8), "BOTW Boulder 5", RHT_BOTW_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTW_BOULDER_5));
|
||||
locationTable[RC_BOTW_BOULDER_6] =
|
||||
Location::Boulder(RC_BOTW_BOULDER_6, RCQUEST_VANILLA, RCAREA_BOTTOM_OF_THE_WELL, SCENE_BOTTOM_OF_THE_WELL,
|
||||
TWO_ACTOR_PARAMS(312, 64), "BOTW Boulder 6", RHT_BOTW_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_BOTW_BOULDER_6));
|
||||
#define MQBOLD(id, area, hint, x, z) \
|
||||
(locationTable[RC_##id] = \
|
||||
Location::Boulder(RC_##id, RCQUEST_MQ, RCAREA_##area, SCENE_##area, TWO_ACTOR_PARAMS(x, z), #id, hint, \
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_##id)))
|
||||
MQBOLD(DEKU_TREE_MQ_BOULDER_1, DEKU_TREE, RHT_DEKU_BOULDER, -1237, 1558);
|
||||
MQBOLD(DEKU_TREE_MQ_BOULDER_2, DEKU_TREE, RHT_DEKU_BOULDER, -1183, 1522);
|
||||
MQBOLD(DEKU_TREE_MQ_BOULDER_3, DEKU_TREE, RHT_DEKU_BOULDER, -1129, 1469);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LOBBY_BOULDER_1, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, -435, -1720);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LOBBY_BOULDER_2, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 432, -1719);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_1, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 807, -874);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_2, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 802, -972);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_3, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 783, -923);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_1, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 2464, -402);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_2, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 2942, -495);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_1, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 4219, -1651);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_2, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 4178, -1602);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_3, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 4162, -1581);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_4, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 4133, -1561);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_5, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 4091, -1510);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_6, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 4067, -1487);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_7, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 4028, -1472);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_8, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 3965, -1473);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_9, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 3898, -1467);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_10, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 3832, -1437);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_11, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 3799, -1383);
|
||||
MQBOLD(DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_12, DODONGOS_CAVERN, RHT_DODONGOS_BOULDER, 3760, -1318);
|
||||
locationTable[RC_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER] =
|
||||
Location::Boulder(RC_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER, RCQUEST_MQ, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU,
|
||||
TWO_ACTOR_PARAMS(-1, -296), "RC_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER", RHT_JABU_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER));
|
||||
locationTable[RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1] = Location::Boulder(
|
||||
RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1, RCQUEST_MQ, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU,
|
||||
TWO_ACTOR_PARAMS(350, -3533), "RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1", RHT_JABU_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1));
|
||||
locationTable[RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2] = Location::Boulder(
|
||||
RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2, RCQUEST_MQ, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU,
|
||||
TWO_ACTOR_PARAMS(-192, -3211), "RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2", RHT_JABU_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2));
|
||||
locationTable[RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1] = Location::Boulder(
|
||||
RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1, RCQUEST_MQ, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU,
|
||||
TWO_ACTOR_PARAMS(245, -2792), "RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1", RHT_JABU_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1));
|
||||
locationTable[RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2] = Location::Boulder(
|
||||
RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2, RCQUEST_MQ, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU,
|
||||
TWO_ACTOR_PARAMS(220, -2790), "RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2", RHT_JABU_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2));
|
||||
locationTable[RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3] = Location::Boulder(
|
||||
RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3, RCQUEST_MQ, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU,
|
||||
TWO_ACTOR_PARAMS(274, -2790), "RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3", RHT_JABU_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3));
|
||||
locationTable[RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1] = Location::Boulder(
|
||||
RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1, RCQUEST_MQ, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU,
|
||||
TWO_ACTOR_PARAMS(31, -5177), "RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1", RHT_JABU_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1));
|
||||
locationTable[RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2] = Location::Boulder(
|
||||
RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2, RCQUEST_MQ, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU,
|
||||
TWO_ACTOR_PARAMS(-37, -5173), "RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2", RHT_JABU_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2));
|
||||
locationTable[RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER] = Location::Boulder(
|
||||
RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER, RCQUEST_MQ, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU,
|
||||
TWO_ACTOR_PARAMS(-885, -5907), "RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER", RHT_JABU_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER));
|
||||
locationTable[RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER] = Location::Boulder(
|
||||
RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER, RCQUEST_MQ, RCAREA_JABU_JABUS_BELLY, SCENE_JABU_JABU,
|
||||
TWO_ACTOR_PARAMS(-411, -5682), "RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER", RHT_JABU_BOULDER,
|
||||
SpoilerCollectionCheck::RandomizerInf(RAND_INF_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER));
|
||||
// skip spirit temple boulder, so adult can clear without collecting check for child to pass
|
||||
MQBOLD(SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_1, SPIRIT_TEMPLE, RHT_SPIRIT_TEMPLE_BOULDER, -160, 270);
|
||||
MQBOLD(SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_2, SPIRIT_TEMPLE, RHT_SPIRIT_TEMPLE_BOULDER, 160, 270);
|
||||
MQBOLD(SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_3, SPIRIT_TEMPLE, RHT_SPIRIT_TEMPLE_BOULDER, 350, 220);
|
||||
MQBOLD(SPIRIT_TEMPLE_MQ_ENTRANCE_CEILING_BOULDER, SPIRIT_TEMPLE, RHT_SPIRIT_TEMPLE_BOULDER, 0, -60);
|
||||
MQBOLD(SPIRIT_TEMPLE_MQ_EARLY_ADULT_BOULDER, SPIRIT_TEMPLE, RHT_SPIRIT_TEMPLE_BOULDER, 1070, -290);
|
||||
MQBOLD(BOTW_MQ_BOULDER_1, BOTTOM_OF_THE_WELL, RHT_BOTW_BOULDER, -370, -160);
|
||||
MQBOLD(BOTW_MQ_BOULDER_2, BOTTOM_OF_THE_WELL, RHT_BOTW_BOULDER, -521, -353);
|
||||
MQBOLD(BOTW_MQ_BOULDER_3, BOTTOM_OF_THE_WELL, RHT_BOTW_BOULDER, -541, -404);
|
||||
}
|
||||
|
||||
static RegisterShipInitFunc initFunc2(Rando::StaticData::RegisterRockLocations);
|
15
soh/soh/Enhancements/randomizer/ShuffleRocks.h
Normal file
15
soh/soh/Enhancements/randomizer/ShuffleRocks.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#ifndef SHUFFLEROCKS_H
|
||||
#define SHUFFLEROCKS_H
|
||||
|
||||
#include <z64.h>
|
||||
#include <soh/OTRGlobals.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
void EnIshi_RandomizerInit(void* actorRef);
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif // SHUFFLEROCKS_H
|
|
@ -46,6 +46,8 @@ Context::Context() {
|
|||
&mOptions[RSK_SHUFFLE_COWS],
|
||||
&mOptions[RSK_SHUFFLE_POTS],
|
||||
&mOptions[RSK_SHUFFLE_CRATES],
|
||||
&mOptions[RSK_SHUFFLE_ROCKS],
|
||||
&mOptions[RSK_SHUFFLE_BOULDERS],
|
||||
&mOptions[RSK_SHUFFLE_FREESTANDING],
|
||||
&mOptions[RSK_SHUFFLE_MERCHANTS],
|
||||
&mOptions[RSK_SHUFFLE_FROG_SONG_RUPEES],
|
||||
|
@ -189,6 +191,8 @@ void Context::GenerateLocationPool() {
|
|||
(location.GetRCType() == RCTYPE_NLCRATE && (mOptions[RSK_SHUFFLE_CRATES].Is(RO_SHUFFLE_CRATES_OFF) ||
|
||||
!mOptions[RSK_LOGIC_RULES].Is(RO_LOGIC_NO_LOGIC))) ||
|
||||
(location.GetRCType() == RCTYPE_SMALL_CRATE && mOptions[RSK_SHUFFLE_CRATES].Is(RO_SHUFFLE_CRATES_OFF)) ||
|
||||
(location.GetRCType() == RCTYPE_ROCK && !mOptions[RSK_SHUFFLE_ROCKS]) ||
|
||||
(location.GetRCType() == RCTYPE_BOULDER && mOptions[RSK_SHUFFLE_BOULDERS].Is(RO_SHUFFLE_BOULDERS_OFF)) ||
|
||||
(location.GetRCType() == RCTYPE_FAIRY && !mOptions[RSK_SHUFFLE_FAIRIES]) ||
|
||||
(location.GetRCType() == RCTYPE_FREESTANDING &&
|
||||
mOptions[RSK_SHUFFLE_FREESTANDING].Is(RO_SHUFFLE_FREESTANDING_OFF)) ||
|
||||
|
@ -208,7 +212,9 @@ void Context::GenerateLocationPool() {
|
|||
mOptions[RSK_SHUFFLE_CRATES].Is(RO_SHUFFLE_CRATES_DUNGEONS) &&
|
||||
mOptions[RSK_LOGIC_RULES].Is(RO_LOGIC_NO_LOGIC)) ||
|
||||
(location.GetRCType() == RCTYPE_SMALL_CRATE &&
|
||||
mOptions[RSK_SHUFFLE_CRATES].Is(RO_SHUFFLE_CRATES_DUNGEONS))) {
|
||||
mOptions[RSK_SHUFFLE_CRATES].Is(RO_SHUFFLE_CRATES_DUNGEONS)) &&
|
||||
(location.GetRCType() == RCTYPE_BOULDER &&
|
||||
mOptions[RSK_SHUFFLE_BOULDERS].Is(RO_SHUFFLE_BOULDERS_DUNGEONS))) {
|
||||
continue;
|
||||
}
|
||||
// If we've gotten past all the conditions where an overworld location should not be
|
||||
|
@ -229,7 +235,9 @@ void Context::GenerateLocationPool() {
|
|||
mOptions[RSK_SHUFFLE_CRATES].Is(RO_SHUFFLE_CRATES_OVERWORLD) &&
|
||||
mOptions[RSK_LOGIC_RULES].Is(RO_LOGIC_NO_LOGIC)) ||
|
||||
(location.GetRCType() == RCTYPE_SMALL_CRATE &&
|
||||
mOptions[RSK_SHUFFLE_CRATES].Is(RO_SHUFFLE_CRATES_OVERWORLD))) {
|
||||
mOptions[RSK_SHUFFLE_CRATES].Is(RO_SHUFFLE_CRATES_OVERWORLD)) &&
|
||||
(location.GetRCType() == RCTYPE_BOULDER &&
|
||||
mOptions[RSK_SHUFFLE_BOULDERS].Is(RO_SHUFFLE_BOULDERS_OVERWORLD))) {
|
||||
continue;
|
||||
}
|
||||
// also add to that dungeon's location list.
|
||||
|
|
|
@ -566,6 +566,23 @@ Rando::Location Rando::Location::SmallCrate(RandomizerCheck rc, RandomizerCheckQ
|
|||
false, collectionCheck };
|
||||
}
|
||||
|
||||
Rando::Location Rando::Location::Rock(RandomizerCheck rc, RandomizerCheckQuest quest_, RandomizerCheckArea area_,
|
||||
SceneID scene_, int32_t actorParams_, std::string&& shortName_,
|
||||
RandomizerHintTextKey hintKey, RandomizerGet vanillaItem,
|
||||
SpoilerCollectionCheck collectionCheck) {
|
||||
return { rc, quest_, RCTYPE_ROCK, area_, ACTOR_EN_ISHI,
|
||||
scene_, actorParams_, std::move(shortName_), hintKey, vanillaItem,
|
||||
false, collectionCheck };
|
||||
}
|
||||
|
||||
Rando::Location Rando::Location::Boulder(RandomizerCheck rc, RandomizerCheckQuest quest_, RandomizerCheckArea area_,
|
||||
SceneID scene_, int32_t actorParams_, std::string&& shortName_,
|
||||
RandomizerHintTextKey hintKey, SpoilerCollectionCheck collectionCheck) {
|
||||
return { rc, quest_, RCTYPE_BOULDER, area_, ACTOR_EN_ISHI,
|
||||
scene_, actorParams_, std::move(shortName_), hintKey, RG_BOMBS_5,
|
||||
false, collectionCheck };
|
||||
}
|
||||
|
||||
Rando::Location Rando::Location::HintStone(RandomizerCheck rc, RandomizerCheckQuest quest_, RandomizerCheckArea area_,
|
||||
SceneID scene_, int32_t actorParams_, std::string&& shortName_) {
|
||||
return { rc, quest_, RCTYPE_GOSSIP_STONE, area_, ACTOR_EN_GS,
|
||||
|
|
|
@ -67,15 +67,7 @@ class Location {
|
|||
actorParams(actorParams_), shortName(std::move(shortName_)), spoilerName(std::move(spoilerName_)),
|
||||
hintKey(hintKey_), vanillaItem(vanillaItem_), isVanillaCompletion(isVanillaCompletion_),
|
||||
collectionCheck(collectionCheck_), vanillaPrice(vanillaPrice_) {
|
||||
if (spoilerName.length() < 23) {
|
||||
excludedOption = LocationOption(rc, spoilerName);
|
||||
} else {
|
||||
const size_t lastSpace = spoilerName.rfind(' ', 23);
|
||||
std::string settingText = spoilerName;
|
||||
settingText.replace(lastSpace, 1, "\n ");
|
||||
|
||||
excludedOption = LocationOption(rc, spoilerName);
|
||||
}
|
||||
excludedOption = LocationOption(rc, spoilerName);
|
||||
}
|
||||
|
||||
Location(const RandomizerCheck rc_, const RandomizerCheckQuest quest_, const RandomizerCheckType checkType_,
|
||||
|
@ -87,15 +79,7 @@ class Location {
|
|||
actorParams(actorParams_), shortName(shortName_), spoilerName(SpoilerNameFromShortName(shortName_, area_)),
|
||||
hintKey(hintKey_), vanillaItem(vanillaItem_), isVanillaCompletion(isVanillaCompletion_),
|
||||
collectionCheck(collectionCheck_), vanillaPrice(vanillaPrice_) {
|
||||
if (spoilerName.length() < 23) {
|
||||
excludedOption = LocationOption(rc, spoilerName);
|
||||
} else {
|
||||
const size_t lastSpace = spoilerName.rfind(' ', 23);
|
||||
std::string settingText = spoilerName;
|
||||
settingText.replace(lastSpace, 1, "\n ");
|
||||
|
||||
excludedOption = LocationOption(rc, spoilerName);
|
||||
}
|
||||
excludedOption = LocationOption(rc, spoilerName);
|
||||
}
|
||||
|
||||
static std::string SpoilerNameFromShortName(std::string shortName, RandomizerCheckArea area) {
|
||||
|
@ -246,6 +230,14 @@ class Location {
|
|||
RandomizerHintTextKey hintKey, RandomizerGet vanillaItem,
|
||||
SpoilerCollectionCheck collectionCheck);
|
||||
|
||||
static Location Rock(RandomizerCheck rc, RandomizerCheckQuest quest_, RandomizerCheckArea area_, SceneID scene_,
|
||||
int32_t actorParams_, std::string&& shortName_, RandomizerHintTextKey hintKey,
|
||||
RandomizerGet vanillaItem, SpoilerCollectionCheck collectionCheck);
|
||||
|
||||
static Location Boulder(RandomizerCheck rc, RandomizerCheckQuest quest_, RandomizerCheckArea area_, SceneID scene_,
|
||||
int32_t actorParams_, std::string&& shortName_, RandomizerHintTextKey hintKey,
|
||||
SpoilerCollectionCheck collectionCheck);
|
||||
|
||||
static Location OtherHint(RandomizerCheck rc, RandomizerCheckQuest quest_, RandomizerCheckArea area_,
|
||||
ActorID actorId_, SceneID scene_, std::string&& shortName_, std::string&& spoilerName_);
|
||||
|
||||
|
|
|
@ -157,6 +157,12 @@ void RegionTable_Init_BottomOfTheWell() {
|
|||
LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_7, logic->CanCutShrubs() && logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_8, logic->CanCutShrubs() && logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_BASEMENT_BEHIND_ROCKS_GRASS_9, logic->CanCutShrubs() && logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTW_BOULDER_1, logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTW_BOULDER_2, logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTW_BOULDER_3, logic->BlastOrSmash() || logic->CanUse(RG_DINS_FIRE) || (logic->CanUse(RG_STICKS) && ctx->GetTrickOption(RT_BOTW_BASEMENT))),
|
||||
LOCATION(RC_BOTW_BOULDER_4, logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTW_BOULDER_5, logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTW_BOULDER_6, logic->BlastOrSmash()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_BOTTOM_OF_THE_WELL_SOUTHWEST_ROOM, []{return logic->IsChild && logic->CanPassEnemy(RE_BIG_SKULLTULA);}),
|
||||
|
@ -169,6 +175,12 @@ void RegionTable_Init_BottomOfTheWell() {
|
|||
//Locations
|
||||
//Assumes RR_BOTTOM_OF_THE_WELL_BASEMENT access
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_MAP_CHEST, logic->HasItem(RG_GORONS_BRACELET)),
|
||||
LOCATION(RC_BOTW_BOULDER_1, logic->HasItem(RG_GORONS_BRACELET)),
|
||||
LOCATION(RC_BOTW_BOULDER_2, logic->HasItem(RG_GORONS_BRACELET)),
|
||||
LOCATION(RC_BOTW_BOULDER_3, logic->HasItem(RG_GORONS_BRACELET)),
|
||||
LOCATION(RC_BOTW_BOULDER_4, logic->HasItem(RG_GORONS_BRACELET)),
|
||||
LOCATION(RC_BOTW_BOULDER_5, logic->HasItem(RG_GORONS_BRACELET)),
|
||||
LOCATION(RC_BOTW_BOULDER_6, logic->HasItem(RG_GORONS_BRACELET)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_BOTTOM_OF_THE_WELL_BASEMENT, []{return logic->CanDetonateUprightBombFlower();}),
|
||||
|
@ -204,6 +216,9 @@ void RegionTable_Init_BottomOfTheWell() {
|
|||
LOCATION(RC_BOTTOM_OF_THE_WELL_MQ_OUTER_LOBBY_POT, Here(RR_BOTTOM_OF_THE_WELL_MQ_PERIMETER, []{return logic->BlastOrSmash();}) && logic->CanHitEyeTargets()),
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_MQ_BOMB_LEFT_HEART, logic->HasExplosives()),
|
||||
LOCATION(RC_BOTTOM_OF_THE_WELL_MQ_BOMB_RIGHT_HEART, logic->HasExplosives()),
|
||||
LOCATION(RC_BOTW_MQ_BOULDER_1, logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTW_MQ_BOULDER_2, logic->BlastOrSmash()),
|
||||
LOCATION(RC_BOTW_MQ_BOULDER_3, logic->BlastOrSmash()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_BOTTOM_OF_THE_WELL_ENTRYWAY, []{return logic->IsChild;}),
|
||||
|
|
|
@ -286,6 +286,9 @@ void RegionTable_Init_DekuTree() {
|
|||
//Locations
|
||||
LOCATION(RC_DEKU_TREE_MQ_GS_PAST_BOULDER_VINES, logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_BOOMERANG)),
|
||||
LOCATION(RC_DEKU_TREE_MQ_COMPASS_ROOM_HEART, true),
|
||||
LOCATION(RC_DEKU_TREE_MQ_BOULDER_1, true),
|
||||
LOCATION(RC_DEKU_TREE_MQ_BOULDER_2, true),
|
||||
LOCATION(RC_DEKU_TREE_MQ_BOULDER_3, true),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DEKU_TREE_MQ_COMPASS_ROOM, []{return logic->BlastOrSmash();}),
|
||||
|
|
|
@ -266,6 +266,8 @@ void RegionTable_Init_DodongosCavern() {
|
|||
LOCATION(RC_DODONGOS_CAVERN_MQ_MAP_CHEST, logic->CanBreakMudWalls() || logic->HasItem(RG_GORONS_BRACELET)),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_REAR, logic->CanStunDeku()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_DEKU_SCRUB_LOBBY_FRONT, logic->CanStunDeku()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_1, logic->BlastOrSmash() || logic->HasItem(RG_GORONS_BRACELET)),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_2, logic->BlastOrSmash() || logic->HasItem(RG_GORONS_BRACELET)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DODONGOS_CAVERN_MQ_GOSSIP_STONE, []{return Here(RR_DODONGOS_CAVERN_MQ_LOBBY, []{return logic->CanBreakMudWalls() || logic->HasItem(RG_GORONS_BRACELET);});}),
|
||||
|
@ -292,7 +294,12 @@ void RegionTable_Init_DodongosCavern() {
|
|||
areaTable[RR_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE] = Region("Dodongos Cavern MQ Mouth Side Bridge", "Dodongos Cavern", {RA_DODONGOS_CAVERN}, NO_DAY_NIGHT_CYCLE, {
|
||||
//Events
|
||||
EventAccess(&logic->ClearMQDCUpperLobbyRocks, []{return logic->BlastOrSmash() || logic->CanUse(RG_DINS_FIRE);}),
|
||||
}, {}, {
|
||||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_1, logic->ClearMQDCUpperLobbyRocks),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_2, logic->ClearMQDCUpperLobbyRocks),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_3, logic->ClearMQDCUpperLobbyRocks),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DODONGOS_CAVERN_MQ_LOBBY, []{return true;}),
|
||||
Entrance(RR_DODONGOS_CAVERN_MQ_TORCH_PUZZLE_UPPER, []{return logic->ClearMQDCUpperLobbyRocks;}),
|
||||
|
@ -419,6 +426,18 @@ void RegionTable_Init_DodongosCavern() {
|
|||
LOCATION(RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_3, logic->CanBreakPots()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_UPPER_LIZALFOS_POT_4, logic->CanBreakPots()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_HEART, logic->BlastOrSmash()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_1, logic->BlastOrSmash() && logic->TakeDamage()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_2, logic->BlastOrSmash() && logic->TakeDamage()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_3, logic->BlastOrSmash() && logic->TakeDamage()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_4, logic->BlastOrSmash() && logic->TakeDamage()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_5, logic->BlastOrSmash()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_6, logic->BlastOrSmash()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_7, logic->BlastOrSmash() && logic->TakeDamage()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_8, logic->BlastOrSmash() && logic->TakeDamage()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_9, logic->BlastOrSmash() && logic->TakeDamage()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_10, logic->BlastOrSmash() && logic->TakeDamage()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_11, logic->BlastOrSmash() && logic->TakeDamage()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_12, logic->BlastOrSmash() && logic->TakeDamage()),
|
||||
}, {
|
||||
//Exits
|
||||
//Falling down gets you stuck with nothing there, not a useful exit for logic
|
||||
|
@ -460,6 +479,8 @@ void RegionTable_Init_DodongosCavern() {
|
|||
LOCATION(RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_2, logic->CanBreakPots()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_3, logic->CanBreakPots()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_POT_4, logic->CanBreakPots()),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_1, logic->BlastOrSmash() || logic->HasItem(RG_GORONS_BRACELET) || logic->CanUse(RG_DINS_FIRE)),
|
||||
LOCATION(RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_2, logic->CanDetonateBombFlowers() || logic->HasItem(RG_GORONS_BRACELET)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DODONGOS_CAVERN_MQ_LOBBY, []{return true;}),
|
||||
|
|
|
@ -177,6 +177,7 @@ void RegionTable_Init_JabuJabusBelly() {
|
|||
LOCATION(RC_JABU_JABUS_BELLY_MQ_ENTRANCE_POT_2, logic->CanBreakPots()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_FIRST_GRASS_1, logic->CanCutShrubs()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_FIRST_GRASS_2, logic->CanCutShrubs()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER, logic->BlastOrSmash()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_JABU_JABUS_BELLY_ENTRYWAY, []{return true;}),
|
||||
|
@ -229,6 +230,11 @@ void RegionTable_Init_JabuJabusBelly() {
|
|||
LOCATION(RC_JABU_JABUS_BELLY_MQ_BASEMENT_GRASS_1, logic->CanCutShrubs()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_BASEMENT_GRASS_2, logic->CanCutShrubs()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_BASEMENT_GRASS_3, logic->CanCutShrubs()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1, logic->BlastOrSmash()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2, logic->BlastOrSmash()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1, logic->HasExplosives()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2, logic->HasExplosives()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3, logic->HasExplosives()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_JABU_JABUS_BELLY_MQ_LIFT_ROOM, []{return true;}),
|
||||
|
@ -267,6 +273,8 @@ void RegionTable_Init_JabuJabusBelly() {
|
|||
LOCATION(RC_JABU_JABUS_BELLY_MQ_FALLING_LIKE_LIKE_GRASS, logic->CanCutShrubs()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_TRIPLE_HALLWAY_SMALL_CRATE_1, logic->CanBreakSmallCrates()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_TRIPLE_HALLWAY_SMALL_CRATE_2, logic->CanBreakSmallCrates()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1, logic->BlastOrSmash()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2, logic->BlastOrSmash()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_JABU_JABUS_BELLY_MQ_HOLES_ROOM, []{return logic->CanUse(RG_BOOMERANG);}),
|
||||
|
@ -280,6 +288,8 @@ void RegionTable_Init_JabuJabusBelly() {
|
|||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_GS_TAILPASARAN_ROOM, Here(RR_JABU_JABUS_BELLY_MQ_WEST_FORKED_ROOMS, []{return logic->HasExplosives();}) && logic->CanGetEnemyDrop(RE_GOLD_SKULLTULA, ED_BOOMERANG)),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER, logic->BlastOrSmash()),
|
||||
LOCATION(RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER, logic->HasExplosives()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR, []{return true;}),
|
||||
|
|
|
@ -162,6 +162,10 @@ void RegionTable_Init_SpiritTemple() {
|
|||
LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2, logic->CanBreakPots()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3, logic->CanBreakPots()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4, logic->CanBreakPots()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_1, logic->BlastOrSmash()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_2, logic->BlastOrSmash()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_3, logic->BlastOrSmash()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_CEILING_BOULDER, logic->CanUse(RG_BOMBCHU_5)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_SPIRIT_TEMPLE_ENTRYWAY, []{return true;}),
|
||||
|
@ -179,6 +183,7 @@ void RegionTable_Init_SpiritTemple() {
|
|||
LOCATION(RC_SPIRIT_TEMPLE_MQ_CHILD_SLUGMA_POT, logic->CanBreakPots()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_CHILD_LEFT_HEART, logic->CanHitEyeTargets()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_CHILD_RIGHT_HEART, logic->CanHitEyeTargets()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_CHILD_HAMMER_SWITCH_CHEST, logic->MQSpiritTimeTravelChest),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_SPIRIT_TEMPLE_MQ_1F_GIBDO_ROOM_SOUTH, []{return Here(RR_SPIRIT_TEMPLE_MQ_1F_WEST, []{return logic->CanKillEnemy(RE_TORCH_SLUG);});}),
|
||||
|
@ -394,6 +399,7 @@ void RegionTable_Init_SpiritTemple() {
|
|||
//Locations
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_1, logic->CanBreakPots()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_POT_2, logic->CanBreakPots()),
|
||||
LOCATION(RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_BOULDER, logic->BlastOrSmash()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_SPIRIT_TEMPLE_MQ_LOBBY, []{return logic->CanUse(RG_MEGATON_HAMMER);}),
|
||||
|
|
|
@ -27,6 +27,10 @@ void RegionTable_Init_CastleGrounds() {
|
|||
LOCATION(RC_HC_MALON_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_HC_ROCK_WALL_GOSSIP_STONE_FAIRY, logic->CallGossipFairy()),
|
||||
LOCATION(RC_HC_ROCK_WALL_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_HC_ROCK_1, true),
|
||||
LOCATION(RC_HC_ROCK_2, true),
|
||||
LOCATION(RC_HC_ROCK_3, true),
|
||||
LOCATION(RC_HC_BOULDER, logic->BlastOrSmash()),
|
||||
LOCATION(RC_HC_MALON_GOSSIP_STONE, true),
|
||||
LOCATION(RC_HC_ROCK_WALL_GOSSIP_STONE, true),
|
||||
LOCATION(RC_HC_GRASS_1, logic->CanCutShrubs()),
|
||||
|
@ -80,6 +84,14 @@ void RegionTable_Init_CastleGrounds() {
|
|||
LOCATION(RC_HC_STORMS_GROTTO_POT_2, logic->CanBreakPots()),
|
||||
LOCATION(RC_HC_STORMS_GROTTO_POT_3, logic->CanBreakPots()),
|
||||
LOCATION(RC_HC_STORMS_GROTTO_POT_4, logic->CanBreakPots()),
|
||||
LOCATION(RC_HC_STORMS_GROTTO_ROCK_1, true),
|
||||
LOCATION(RC_HC_STORMS_GROTTO_ROCK_2, true),
|
||||
LOCATION(RC_HC_STORMS_GROTTO_ROCK_3, true),
|
||||
LOCATION(RC_HC_STORMS_GROTTO_ROCK_4, true),
|
||||
LOCATION(RC_HC_STORMS_GROTTO_ROCK_5, true),
|
||||
LOCATION(RC_HC_STORMS_GROTTO_ROCK_6, true),
|
||||
LOCATION(RC_HC_STORMS_GROTTO_ROCK_7, true),
|
||||
LOCATION(RC_HC_STORMS_GROTTO_ROCK_8, true),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_HC_STORMS_GROTTO, []{return true;}),
|
||||
|
@ -90,7 +102,14 @@ void RegionTable_Init_CastleGrounds() {
|
|||
EventAccess(&logic->BuiltRainbowBridge, []{return logic->CanBuildRainbowBridge();}),
|
||||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_OGC_GS, logic->CanJumpslashExceptHammer() || logic->CanUseProjectile() || (logic->CanShield() && logic->CanUse(RG_MEGATON_HAMMER)) || logic->CanUse(RG_DINS_FIRE)),
|
||||
LOCATION(RC_OGC_GS, logic->CanJumpslashExceptHammer() || logic->CanUseProjectile() || (logic->CanShield() && logic->CanUse(RG_MEGATON_HAMMER)) || logic->CanUse(RG_DINS_FIRE)),
|
||||
LOCATION(RC_OGC_BRONZE_BOULDER_1, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_OGC_BRONZE_BOULDER_2, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_OGC_BRONZE_BOULDER_3, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_OGC_SILVER_BOULDER_1, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_OGC_SILVER_BOULDER_2, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_OGC_SILVER_BOULDER_3, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_OGC_SILVER_BOULDER_4, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_CASTLE_GROUNDS, []{return logic->AtNight;}),
|
||||
|
|
|
@ -5,7 +5,21 @@ using namespace Rando;
|
|||
|
||||
void RegionTable_Init_DeathMountainCrater() {
|
||||
// clang-format off
|
||||
areaTable[RR_DMC_UPPER_NEARBY] = Region("DMC Upper Nearby", "Death Mountain Crater", {RA_DEATH_MOUNTAIN_CRATER}, NO_DAY_NIGHT_CYCLE, {}, {}, {
|
||||
areaTable[RR_DMC_UPPER_NEARBY] = Region("DMC Upper Nearby", "Death Mountain Crater", {RA_DEATH_MOUNTAIN_CRATER}, NO_DAY_NIGHT_CYCLE, {}, {
|
||||
LOCATION(RC_DMC_CIRCLE_ROCK_1, true),
|
||||
LOCATION(RC_DMC_CIRCLE_ROCK_2, true),
|
||||
LOCATION(RC_DMC_CIRCLE_ROCK_3, true),
|
||||
LOCATION(RC_DMC_CIRCLE_ROCK_4, true),
|
||||
LOCATION(RC_DMC_CIRCLE_ROCK_5, true),
|
||||
LOCATION(RC_DMC_CIRCLE_ROCK_6, true),
|
||||
LOCATION(RC_DMC_CIRCLE_ROCK_7, true),
|
||||
LOCATION(RC_DMC_CIRCLE_ROCK_8, true),
|
||||
LOCATION(RC_DMC_GOSSIP_ROCK_1, logic->IsChild),
|
||||
LOCATION(RC_DMC_GOSSIP_ROCK_2, logic->IsChild),
|
||||
LOCATION(RC_DMC_BOULDER_1, logic->BlastOrSmash()),
|
||||
LOCATION(RC_DMC_BOULDER_2, logic->BlastOrSmash()),
|
||||
LOCATION(RC_DMC_BOULDER_3, logic->BlastOrSmash()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DMC_UPPER_LOCAL, []{return logic->FireTimer() >= 48;}),
|
||||
Entrance(RR_DEATH_MOUNTAIN_SUMMIT, []{return true;}),
|
||||
|
@ -44,10 +58,14 @@ void RegionTable_Init_DeathMountainCrater() {
|
|||
|
||||
areaTable[RR_DMC_LOWER_NEARBY] = Region("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()),
|
||||
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()),
|
||||
LOCATION(RC_DMC_BRONZE_BOULDER_1, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMC_BRONZE_BOULDER_2, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMC_BRONZE_BOULDER_3, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMC_BRONZE_BOULDER_4, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DMC_LOWER_LOCAL, []{return logic->FireTimer() >= 48;}),
|
||||
|
@ -90,6 +108,11 @@ void RegionTable_Init_DeathMountainCrater() {
|
|||
LOCATION(RC_DMC_BEAN_SPROUT_FAIRY_1, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->FireTimer() >= 8 || logic->Hearts() >= 3)),
|
||||
LOCATION(RC_DMC_BEAN_SPROUT_FAIRY_2, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->FireTimer() >= 8 || logic->Hearts() >= 3)),
|
||||
LOCATION(RC_DMC_BEAN_SPROUT_FAIRY_3, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->FireTimer() >= 8 || logic->Hearts() >= 3)),
|
||||
LOCATION(RC_DMC_ROCK_BY_FIRE_TEMPLE_1, logic->IsAdult),
|
||||
LOCATION(RC_DMC_ROCK_BY_FIRE_TEMPLE_2, logic->IsAdult),
|
||||
LOCATION(RC_DMC_ROCK_BY_FIRE_TEMPLE_3, logic->IsAdult),
|
||||
LOCATION(RC_DMC_ROCK_BY_FIRE_TEMPLE_4, logic->IsAdult),
|
||||
LOCATION(RC_DMC_ROCK_BY_FIRE_TEMPLE_5, logic->IsAdult),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DMC_CENTRAL_NEARBY, []{return true;}),
|
||||
|
|
|
@ -21,6 +21,33 @@ void RegionTable_Init_DeathMountainTrail() {
|
|||
LOCATION(RC_DMT_BEAN_SPROUT_FAIRY_2, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET))),
|
||||
LOCATION(RC_DMT_BEAN_SPROUT_FAIRY_3, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS) && (logic->HasExplosives() || logic->HasItem(RG_GORONS_BRACELET))),
|
||||
LOCATION(RC_DMT_FLAG_SUN_FAIRY, logic->CanUse(RG_SUNS_SONG)),
|
||||
LOCATION(RC_DMT_ROCK_1, true),
|
||||
LOCATION(RC_DMT_ROCK_2, true),
|
||||
LOCATION(RC_DMT_ROCK_3, true),
|
||||
LOCATION(RC_DMT_ROCK_4, true),
|
||||
LOCATION(RC_DMT_ROCK_5, true),
|
||||
LOCATION(RC_DMT_CIRCLE_ROCK_1, true),
|
||||
LOCATION(RC_DMT_CIRCLE_ROCK_2, true),
|
||||
LOCATION(RC_DMT_CIRCLE_ROCK_3, true),
|
||||
LOCATION(RC_DMT_CIRCLE_ROCK_4, true),
|
||||
LOCATION(RC_DMT_CIRCLE_ROCK_5, true),
|
||||
LOCATION(RC_DMT_CIRCLE_ROCK_6, true),
|
||||
LOCATION(RC_DMT_CIRCLE_ROCK_7, true),
|
||||
LOCATION(RC_DMT_CIRCLE_ROCK_8, true),
|
||||
LOCATION(RC_DMT_BOULDER_1, logic->BlastOrSmash()),
|
||||
LOCATION(RC_DMT_BOULDER_2, logic->BlastOrSmash()),
|
||||
LOCATION(RC_DMT_BOULDER_3, logic->IsChild && logic->BlastOrSmash()),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_1, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_2, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_3, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_4, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_5, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_6, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_7, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_8, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_9, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_10, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_DMT_BRONZE_BOULDER_11, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_KAK_BEHIND_GATE, []{return true;}),
|
||||
|
@ -33,7 +60,7 @@ void RegionTable_Init_DeathMountainTrail() {
|
|||
areaTable[RR_DEATH_MOUNTAIN_SUMMIT] = Region("Death Mountain Summit", "Death Mountain", {RA_DEATH_MOUNTAIN_TRAIL}, DAY_NIGHT_CYCLE, {
|
||||
//Events
|
||||
EventAccess(&logic->GossipStoneFairy, []{return logic->CallGossipFairy();}),
|
||||
EventAccess(&logic->BugRock, []{return logic->BugRock || logic->IsChild;}),
|
||||
EventAccess(&logic->BugRock, []{return logic->BugRock || logic->IsChild;}),
|
||||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_DMT_TRADE_BROKEN_SWORD, logic->IsAdult && logic->CanUse(RG_BROKEN_SWORD)),
|
||||
|
@ -42,6 +69,8 @@ void RegionTable_Init_DeathMountainTrail() {
|
|||
LOCATION(RC_DMT_GS_FALLING_ROCKS_PATH, logic->IsAdult && logic->AtNight && (logic->CanUse(RG_MEGATON_HAMMER) || ctx->GetTrickOption(RT_DMT_UPPER_GS)) && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_DMT_GOSSIP_STONE_FAIRY, logic->CallGossipFairy()),
|
||||
LOCATION(RC_DMT_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_DMT_COW_BOULDER, logic->BlastOrSmash()),
|
||||
LOCATION(RC_DMT_SUMMIT_ROCK, logic->IsChild),
|
||||
LOCATION(RC_DMT_GOSSIP_STONE, true),
|
||||
}, {
|
||||
//Exits
|
||||
|
|
|
@ -20,6 +20,24 @@ void RegionTable_Init_DesertColossus() {
|
|||
LOCATION(RC_COLOSSUS_BEAN_SPROUT_FAIRY_3, logic->IsChild && logic->CanUse(RG_MAGIC_BEAN) && logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_COLOSSUS_GOSSIP_STONE_FAIRY, logic->CallGossipFairy()),
|
||||
LOCATION(RC_COLOSSUS_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_COLOSSUS_SILVER_BOULDER, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_COLOSSUS_ROCK, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_1_ROCK_1, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_1_ROCK_2, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_1_ROCK_3, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_1_ROCK_4, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_1_ROCK_5, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_1_ROCK_6, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_1_ROCK_7, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_1_ROCK_8, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_2_ROCK_1, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_2_ROCK_2, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_2_ROCK_3, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_2_ROCK_4, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_2_ROCK_5, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_2_ROCK_6, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_2_ROCK_7, true),
|
||||
LOCATION(RC_COLOSSUS_CIRCLE_2_ROCK_8, true),
|
||||
LOCATION(RC_COLOSSUS_GOSSIP_STONE, true),
|
||||
}, {
|
||||
//Exits
|
||||
|
|
|
@ -10,7 +10,17 @@ void RegionTable_Init_GerudoValley() {
|
|||
EventAccess(&logic->BugRock, []{return logic->BugRock || logic->IsChild;}),
|
||||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_GV_GS_SMALL_BRIDGE, logic->IsChild && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_GV_GS_SMALL_BRIDGE, logic->IsChild && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_GV_ROCK_1, true),
|
||||
LOCATION(RC_GV_ROCK_2, true),
|
||||
LOCATION(RC_GV_ROCK_3, true),
|
||||
LOCATION(RC_GV_UNDERWATER_ROCK_1, logic->IsAdult || logic->CanUse(RG_BOMBCHU_5)),
|
||||
LOCATION(RC_GV_UNDERWATER_ROCK_2, logic->IsAdult || logic->CanUse(RG_BOMBCHU_5)),
|
||||
LOCATION(RC_GV_UNDERWATER_ROCK_3, logic->IsAdult || logic->CanUse(RG_BOMBCHU_5)),
|
||||
LOCATION(RC_GV_BOULDER_1, logic->IsAdult && logic->BlastOrSmash()),
|
||||
LOCATION(RC_GV_BOULDER_2, logic->IsAdult && logic->BlastOrSmash()),
|
||||
LOCATION(RC_GV_BRONZE_BOULDER_1, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GV_BRONZE_BOULDER_2, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_HYRULE_FIELD, []{return true;}),
|
||||
|
@ -48,7 +58,10 @@ void RegionTable_Init_GerudoValley() {
|
|||
Entrance(RR_LAKE_HYLIA, []{return true;}),
|
||||
});
|
||||
|
||||
areaTable[RR_GV_GROTTO_LEDGE] = Region("GV Grotto Ledge", "Gerudo Valley", {RA_GERUDO_VALLEY}, DAY_NIGHT_CYCLE, {}, {}, {
|
||||
areaTable[RR_GV_GROTTO_LEDGE] = Region("GV Grotto Ledge", "Gerudo Valley", {RA_GERUDO_VALLEY}, DAY_NIGHT_CYCLE, {}, {
|
||||
//Locations
|
||||
LOCATION(RC_GV_SILVER_BOULDER, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_GV_UPPER_STREAM, []{return ctx->GetTrickOption(RT_DAMAGE_BOOST_SIMPLE) && logic->HasExplosives();}),
|
||||
Entrance(RR_GV_LOWER_STREAM, []{return logic->HasItem(RG_BRONZE_SCALE) || logic->CanUse(RG_IRON_BOOTS);}),
|
||||
|
@ -68,14 +81,29 @@ void RegionTable_Init_GerudoValley() {
|
|||
|
||||
areaTable[RR_GV_FORTRESS_SIDE] = Region("GV Fortress Side", "Gerudo Valley", {RA_GERUDO_VALLEY}, DAY_NIGHT_CYCLE, {}, {
|
||||
//Locations
|
||||
LOCATION(RC_GV_CHEST, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GV_TRADE_SAW, logic->IsAdult && logic->CanUse(RG_POACHERS_SAW)),
|
||||
LOCATION(RC_GV_GS_BEHIND_TENT, logic->IsAdult && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_GV_GS_PILLAR, logic->IsAdult && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_GV_CRATE_BRIDGE_1, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_GV_CRATE_BRIDGE_2, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_GV_CRATE_BRIDGE_3, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_GV_CRATE_BRIDGE_4, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_GV_CHEST, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GV_TRADE_SAW, logic->IsAdult && logic->CanUse(RG_POACHERS_SAW)),
|
||||
LOCATION(RC_GV_GS_BEHIND_TENT, logic->IsAdult && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_GV_GS_PILLAR, logic->IsAdult && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_GV_CRATE_BRIDGE_1, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_GV_CRATE_BRIDGE_2, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_GV_CRATE_BRIDGE_3, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_GV_CRATE_BRIDGE_4, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_GV_CHEST, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GV_TRADE_SAW, logic->IsAdult && logic->CanUse(RG_POACHERS_SAW)),
|
||||
LOCATION(RC_GV_GS_BEHIND_TENT, logic->IsAdult && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_GV_GS_PILLAR, logic->IsAdult && logic->HookshotOrBoomerang() && logic->CanGetNightTimeGS()),
|
||||
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_1, logic->IsAdult),
|
||||
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_2, logic->IsAdult),
|
||||
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_3, logic->IsAdult),
|
||||
LOCATION(RC_GV_ROCK_ACROSS_BRIDGE_4, logic->IsAdult),
|
||||
LOCATION(RC_GV_BOULDER_ACROSS_BRIDGE, logic->IsAdult && logic->BlastOrSmash()),
|
||||
LOCATION(RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_1, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_2, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_3, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_4, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_5, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_6, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_GERUDO_FORTRESS, []{return true;}),
|
||||
|
|
|
@ -17,8 +17,8 @@ void RegionTable_Init_GoronCity() {
|
|||
}, {
|
||||
//Locations
|
||||
LOCATION(RC_GC_MAZE_LEFT_CHEST, logic->CanUse(RG_MEGATON_HAMMER) || logic->CanUse(RG_SILVER_GAUNTLETS) || (ctx->GetTrickOption(RT_GC_LEFTMOST) && logic->HasExplosives() && logic->CanUse(RG_HOVER_BOOTS))),
|
||||
LOCATION(RC_GC_MAZE_CENTER_CHEST, logic->BlastOrSmash() || logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_RIGHT_CHEST, logic->BlastOrSmash() || logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_CENTER_CHEST, logic->BlastOrSmash() || logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_RIGHT_CHEST, logic->BlastOrSmash() || logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_POT_FREESTANDING_POH, logic->IsChild && logic->GoronCityChildFire && (logic->CanUse(RG_BOMB_BAG) || (logic->HasItem(RG_GORONS_BRACELET) && ctx->GetTrickOption(RT_GC_POT_STRENGTH)) || (logic->CanUse(RG_BOMBCHU_5) && ctx->GetTrickOption(RT_GC_POT)))),
|
||||
LOCATION(RC_GC_ROLLING_GORON_AS_CHILD, logic->IsChild && (logic->HasExplosives() || (logic->HasItem(RG_GORONS_BRACELET) && ctx->GetTrickOption(RT_GC_ROLLING_STRENGTH)))),
|
||||
LOCATION(RC_GC_ROLLING_GORON_AS_ADULT, logic->StopGCRollingGoronAsAdult),
|
||||
|
@ -34,7 +34,57 @@ void RegionTable_Init_GoronCity() {
|
|||
LOCATION(RC_GC_UPPER_STAIRCASE_POT_2, logic->CanBreakPots()),
|
||||
LOCATION(RC_GC_UPPER_STAIRCASE_POT_3, logic->CanBreakPots()),
|
||||
LOCATION(RC_GC_MAZE_CRATE, logic->BlastOrSmash() || (logic->CanUse(RG_SILVER_GAUNTLETS) && logic->CanBreakCrates())),
|
||||
|
||||
LOCATION(RC_GC_ENTRANCE_BOULDER_1, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_ENTRANCE_BOULDER_2, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_ENTRANCE_BOULDER_3, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_LW_BOULDER_1, logic->GCWoodsWarpOpen),
|
||||
LOCATION(RC_GC_LW_BOULDER_2, logic->GCWoodsWarpOpen),
|
||||
LOCATION(RC_GC_LW_BOULDER_3, logic->GCWoodsWarpOpen),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_1, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_2, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_3, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_4, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_5, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_6, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_7, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_8, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_9, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_10, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_11, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_12, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_13, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_14, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_15, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_16, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_17, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_18, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_19, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_20, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_21, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_22, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_23, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_24, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_25, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_26, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_27, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_28, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_SILVER_BOULDER_29, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_GC_MAZE_BOULDER_1, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_MAZE_BOULDER_2, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_MAZE_BOULDER_3, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_MAZE_BOULDER_4, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_MAZE_BOULDER_5, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_MAZE_BOULDER_6, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_MAZE_BOULDER_7, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_MAZE_BOULDER_8, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_MAZE_BOULDER_9, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_MAZE_BOULDER_10, logic->BlastOrSmash()),
|
||||
LOCATION(RC_GC_MAZE_BRONZE_BOULDER_1, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GC_MAZE_BRONZE_BOULDER_2, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GC_MAZE_BRONZE_BOULDER_3, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GC_MAZE_BRONZE_BOULDER_4, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GC_MAZE_BRONZE_BOULDER_5, logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_GC_MAZE_ROCK, logic->BlastOrSmash() || logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_DEATH_MOUNTAIN_TRAIL, []{return true;}),
|
||||
|
|
|
@ -32,6 +32,7 @@ void RegionTable_Init_Graveyard() {
|
|||
LOCATION(RC_GY_GRASS_11, logic->CanCutShrubs()),
|
||||
LOCATION(RC_GY_GRASS_12, logic->CanCutShrubs()),
|
||||
LOCATION(RC_GRAVEYARD_CRATE, ((logic->IsAdult && CanPlantBean(RR_THE_GRAVEYARD)) || logic->CanUse(RG_LONGSHOT)) && logic->CanBreakCrates()),
|
||||
LOCATION(RC_GY_ROCK, true),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_GRAVEYARD_SHIELD_GRAVE, []{return logic->IsAdult || logic->AtNight;}),
|
||||
|
|
|
@ -61,6 +61,22 @@ void RegionTable_Init_HyruleField() {
|
|||
LOCATION(RC_HF_NEAR_KF_GRASS_10, logic->CanCutShrubs()),
|
||||
LOCATION(RC_HF_NEAR_KF_GRASS_11, logic->CanCutShrubs()),
|
||||
LOCATION(RC_HF_NEAR_KF_GRASS_12, logic->CanCutShrubs()),
|
||||
LOCATION(RC_HF_SILVER_BOULDER, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_HF_ROCK_1, true),
|
||||
LOCATION(RC_HF_ROCK_2, true),
|
||||
LOCATION(RC_HF_ROCK_3, true),
|
||||
LOCATION(RC_HF_ROCK_4, true),
|
||||
LOCATION(RC_HF_ROCK_5, true),
|
||||
LOCATION(RC_HF_ROCK_6, true),
|
||||
LOCATION(RC_HF_ROCK_7, true),
|
||||
LOCATION(RC_HF_ROCK_8, true),
|
||||
LOCATION(RC_HF_BOULDER_NORTH, logic->BlastOrSmash()),
|
||||
LOCATION(RC_HF_BOULDER_BY_MARKET, logic->BlastOrSmash()),
|
||||
LOCATION(RC_HF_BOULDER_SOUTH, logic->BlastOrSmash()),
|
||||
LOCATION(RC_HF_BRONZE_BOULDER_1, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_HF_BRONZE_BOULDER_2, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_HF_BRONZE_BOULDER_3, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
LOCATION(RC_HF_BRONZE_BOULDER_4, logic->IsAdult && logic->CanUse(RG_MEGATON_HAMMER)),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_LW_BRIDGE, []{return true;}),
|
||||
|
|
|
@ -57,6 +57,9 @@ void RegionTable_Init_Kakariko() {
|
|||
LOCATION(RC_KAK_NEAR_FENCE_CHILD_CRATE, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_KAK_NEAR_BOARDING_HOUSE_CHILD_CRATE, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_KAK_NEAR_BAZAAR_CHILD_CRATE, logic->IsChild && logic->CanBreakCrates()),
|
||||
LOCATION(RC_KAK_SILVER_BOULDER, logic->IsAdult && logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_KAK_ROCK_1, true),
|
||||
LOCATION(RC_KAK_ROCK_2, true),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_HYRULE_FIELD, []{return true;}),
|
||||
|
|
|
@ -75,6 +75,18 @@ void RegionTable_Init_KokiriForest() {
|
|||
LOCATION(RC_KF_ADULT_GRASS_18, logic->IsAdult && logic->CanCutShrubs()),
|
||||
LOCATION(RC_KF_ADULT_GRASS_19, logic->IsAdult && logic->CanCutShrubs()),
|
||||
LOCATION(RC_KF_ADULT_GRASS_20, logic->IsAdult && logic->CanCutShrubs()),
|
||||
LOCATION(RC_KF_CIRCLE_ROCK_1, true),
|
||||
LOCATION(RC_KF_CIRCLE_ROCK_2, true),
|
||||
LOCATION(RC_KF_CIRCLE_ROCK_3, true),
|
||||
LOCATION(RC_KF_CIRCLE_ROCK_4, true),
|
||||
LOCATION(RC_KF_CIRCLE_ROCK_5, true),
|
||||
LOCATION(RC_KF_CIRCLE_ROCK_6, true),
|
||||
LOCATION(RC_KF_CIRCLE_ROCK_7, true),
|
||||
LOCATION(RC_KF_CIRCLE_ROCK_8, true),
|
||||
LOCATION(RC_KF_ROCK_BY_SARIAS_HOUSE, logic->IsChild),
|
||||
LOCATION(RC_KF_ROCK_BEHIND_SARIAS_HOUSE, logic->IsChild),
|
||||
LOCATION(RC_KF_ROCK_BY_MIDOS_HOUSE, logic->IsChild),
|
||||
LOCATION(RC_KF_ROCK_BY_KNOW_IT_ALLS_HOUSE, logic->IsChild),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_KF_LINKS_HOUSE, []{return true;}),
|
||||
|
|
|
@ -92,7 +92,10 @@ void RegionTable_Init_LakeHylia() {
|
|||
Entrance(RR_LH_GROTTO, []{return true;}),
|
||||
});
|
||||
|
||||
areaTable[RR_LH_FISHING_ISLAND] = Region("LH Fishing Island", "Lake Hylia", {RA_LAKE_HYLIA}, DAY_NIGHT_CYCLE, {}, {}, {
|
||||
areaTable[RR_LH_FISHING_ISLAND] = Region("LH Fishing Island", "Lake Hylia", {RA_LAKE_HYLIA}, DAY_NIGHT_CYCLE, {}, {
|
||||
//Locations
|
||||
LOCATION(RC_LA_ROCK, true),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_LAKE_HYLIA, []{return logic->HasItem(RG_BRONZE_SCALE);}),
|
||||
Entrance(RR_LH_FISHING_POND, []{return logic->CanOpenOverworldDoor(RG_FISHING_HOLE_KEY);}),
|
||||
|
|
|
@ -48,6 +48,7 @@ void RegionTable_Init_LostWoods() {
|
|||
LOCATION(RC_LW_GOSSIP_STONE_FAIRY, logic->CallGossipFairyExceptSuns()),
|
||||
LOCATION(RC_LW_GOSSIP_STONE_FAIRY_BIG, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_LW_SHORTCUT_STORMS_FAIRY, logic->CanUse(RG_SONG_OF_STORMS)),
|
||||
LOCATION(RC_LW_BOULDER_BY_GORON_CITY, logic->BlastOrSmash()),
|
||||
LOCATION(RC_LW_GOSSIP_STONE, true),
|
||||
LOCATION(RC_LW_GRASS_1, logic->CanCutShrubs()),
|
||||
LOCATION(RC_LW_GRASS_2, logic->CanCutShrubs()),
|
||||
|
@ -81,6 +82,8 @@ void RegionTable_Init_LostWoods() {
|
|||
LOCATION(RC_LW_GRASS_7, logic->CanCutShrubs()),
|
||||
LOCATION(RC_LW_GRASS_8, logic->CanCutShrubs()),
|
||||
LOCATION(RC_LW_GRASS_9, logic->CanCutShrubs()),
|
||||
LOCATION(RC_LW_BOULDER_BY_SACRED_FOREST_MEADOW, logic->BlastOrSmash()),
|
||||
LOCATION(RC_LW_RUPEE_BOULDER, logic->BlastOrSmash()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_LW_FOREST_EXIT, []{return true;}),
|
||||
|
|
|
@ -35,6 +35,14 @@ void RegionTable_Init_ZorasDomain() {
|
|||
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()),
|
||||
LOCATION(RC_ZD_CIRCLE_ROCK_1, true),
|
||||
LOCATION(RC_ZD_CIRCLE_ROCK_2, true),
|
||||
LOCATION(RC_ZD_CIRCLE_ROCK_3, true),
|
||||
LOCATION(RC_ZD_CIRCLE_ROCK_4, true),
|
||||
LOCATION(RC_ZD_CIRCLE_ROCK_5, true),
|
||||
LOCATION(RC_ZD_CIRCLE_ROCK_6, true),
|
||||
LOCATION(RC_ZD_CIRCLE_ROCK_7, true),
|
||||
LOCATION(RC_ZD_CIRCLE_ROCK_8, true),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_ZR_BEHIND_WATERFALL, []{return true;}),
|
||||
|
|
|
@ -23,6 +23,9 @@ void RegionTable_Init_ZorasFountain() {
|
|||
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()),
|
||||
LOCATION(RC_ZF_BOULDER, logic->BlastOrSmash()),
|
||||
LOCATION(RC_ZF_SILVER_BOULDER, logic->CanUse(RG_SILVER_GAUNTLETS)),
|
||||
LOCATION(RC_ZF_UNDERGROUND_BOULDER, logic->CanUse(RG_SILVER_GAUNTLETS) && logic->BlastOrSmash()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_ZD_BEHIND_KING_ZORA, []{return true;}),
|
||||
|
|
|
@ -7,19 +7,23 @@ void RegionTable_Init_ZoraRiver() {
|
|||
// clang-format off
|
||||
areaTable[RR_ZR_FRONT] = Region("ZR Front", "Zora River", {RA_ZORAS_RIVER}, DAY_NIGHT_CYCLE, {}, {
|
||||
//Locations
|
||||
LOCATION(RC_ZR_GS_TREE, logic->IsChild && logic->CanKillEnemy(RE_GOLD_SKULLTULA, ED_CLOSE)),
|
||||
LOCATION(RC_ZR_GRASS_1, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_2, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_3, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_4, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_5, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_6, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_7, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_8, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_9, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_10, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_11, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_12, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GS_TREE, logic->IsChild && logic->CanKillEnemy(RE_GOLD_SKULLTULA, ED_CLOSE)),
|
||||
LOCATION(RC_ZR_GRASS_1, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_2, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_3, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_4, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_5, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_6, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_7, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_8, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_9, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_10, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_11, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_GRASS_12, logic->CanCutShrubs()),
|
||||
LOCATION(RC_ZR_BOULDER_1, logic->IsChild && logic->BlastOrSmash()),
|
||||
LOCATION(RC_ZR_BOULDER_2, logic->IsChild && logic->BlastOrSmash()),
|
||||
LOCATION(RC_ZR_BOULDER_3, logic->IsChild && logic->BlastOrSmash()),
|
||||
LOCATION(RC_ZR_BOULDER_4, logic->IsChild && logic->BlastOrSmash()),
|
||||
}, {
|
||||
//Exits
|
||||
Entrance(RR_ZORAS_RIVER, []{return logic->IsAdult || logic->BlastOrSmash();}),
|
||||
|
@ -58,6 +62,28 @@ void RegionTable_Init_ZoraRiver() {
|
|||
LOCATION(RC_ZR_BENEATH_WATERFALL_MIDDLE_LEFT_RUPEE, logic->IsAdult && (logic->HasItem(RG_BRONZE_SCALE) || logic->CanUse(RG_IRON_BOOTS) || logic->CanUse(RG_BOOMERANG))),
|
||||
LOCATION(RC_ZR_BENEATH_WATERFALL_MIDDLE_RIGHT_RUPEE, logic->IsAdult && (logic->HasItem(RG_BRONZE_SCALE) || logic->CanUse(RG_IRON_BOOTS) || logic->CanUse(RG_BOOMERANG))),
|
||||
LOCATION(RC_ZR_BENEATH_WATERFALL_RIGHT_RUPEE, logic->IsAdult && (logic->HasItem(RG_BRONZE_SCALE) || logic->CanUse(RG_IRON_BOOTS) || logic->CanUse(RG_BOOMERANG))),
|
||||
LOCATION(RC_ZR_CIRCLE_ROCK_1, true),
|
||||
LOCATION(RC_ZR_CIRCLE_ROCK_2, true),
|
||||
LOCATION(RC_ZR_CIRCLE_ROCK_3, true),
|
||||
LOCATION(RC_ZR_CIRCLE_ROCK_4, true),
|
||||
LOCATION(RC_ZR_CIRCLE_ROCK_5, true),
|
||||
LOCATION(RC_ZR_CIRCLE_ROCK_6, true),
|
||||
LOCATION(RC_ZR_CIRCLE_ROCK_7, true),
|
||||
LOCATION(RC_ZR_CIRCLE_ROCK_8, true),
|
||||
LOCATION(RC_ZR_UPPER_CIRCLE_BOULDER, logic->BlastOrSmash()),
|
||||
LOCATION(RC_ZR_UPPER_CIRCLE_ROCK_1, true),
|
||||
LOCATION(RC_ZR_UPPER_CIRCLE_ROCK_2, true),
|
||||
LOCATION(RC_ZR_UPPER_CIRCLE_ROCK_3, true),
|
||||
LOCATION(RC_ZR_UPPER_CIRCLE_ROCK_4, true),
|
||||
LOCATION(RC_ZR_UPPER_CIRCLE_ROCK_5, true),
|
||||
LOCATION(RC_ZR_UPPER_CIRCLE_ROCK_6, true),
|
||||
LOCATION(RC_ZR_UPPER_CIRCLE_ROCK_7, true),
|
||||
LOCATION(RC_ZR_UPPER_CIRCLE_ROCK_8, true),
|
||||
LOCATION(RC_ZR_ROCK, true),
|
||||
LOCATION(RC_ZR_UNDERWATER_ROCK_1, logic->IsAdult || logic->CanUse(RG_BOMBCHU_5)),
|
||||
LOCATION(RC_ZR_UNDERWATER_ROCK_2, logic->IsAdult || logic->CanUse(RG_BOMBCHU_5)),
|
||||
LOCATION(RC_ZR_UNDERWATER_ROCK_3, logic->IsAdult || logic->CanUse(RG_BOMBCHU_5)),
|
||||
LOCATION(RC_ZR_UNDERWATER_ROCK_4, logic->IsAdult || logic->CanUse(RG_BOMBCHU_5)),
|
||||
LOCATION(RC_ZR_NEAR_GROTTOS_GOSSIP_STONE, true),
|
||||
LOCATION(RC_ZR_NEAR_DOMAIN_GOSSIP_STONE, true),
|
||||
LOCATION(RC_ZR_NEAR_FREESTANDING_POH_GRASS, logic->CanCutShrubs()),
|
||||
|
|
|
@ -484,6 +484,8 @@ void Settings::CreateOptionDescriptions() {
|
|||
"Overworld - Only shuffle grass/bushes that are outside of dungeons.\n"
|
||||
"\n"
|
||||
"All Grass/Bushes - Shuffle all grass/bushes.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_ROCKS] = "Shuffle rock locations.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_BOULDERS] = "Shuffle boulder locations.";
|
||||
mOptionDescriptions[RSK_SHUFFLE_DUNGEON_REWARDS] =
|
||||
"Shuffles the location of Spiritual Stones and medallions.\n"
|
||||
"Vanilla - Spiritual Stones and medallions will be given from their respective boss.\n"
|
||||
|
|
|
@ -3123,6 +3123,286 @@ std::map<RandomizerCheck, RandomizerInf> rcToRandomizerInf = {
|
|||
RC_SPIRIT_TEMPLE_MQ_BEAMOS_SMALL_CRATE,
|
||||
RAND_INF_SPIRIT_TEMPLE_MQ_BEAMOS_SMALL_CRATE,
|
||||
},
|
||||
{ RC_KF_CIRCLE_ROCK_1, RAND_INF_KF_CIRCLE_ROCK_1 },
|
||||
{ RC_KF_CIRCLE_ROCK_2, RAND_INF_KF_CIRCLE_ROCK_2 },
|
||||
{ RC_KF_CIRCLE_ROCK_3, RAND_INF_KF_CIRCLE_ROCK_3 },
|
||||
{ RC_KF_CIRCLE_ROCK_4, RAND_INF_KF_CIRCLE_ROCK_4 },
|
||||
{ RC_KF_CIRCLE_ROCK_5, RAND_INF_KF_CIRCLE_ROCK_5 },
|
||||
{ RC_KF_CIRCLE_ROCK_6, RAND_INF_KF_CIRCLE_ROCK_6 },
|
||||
{ RC_KF_CIRCLE_ROCK_7, RAND_INF_KF_CIRCLE_ROCK_7 },
|
||||
{ RC_KF_CIRCLE_ROCK_8, RAND_INF_KF_CIRCLE_ROCK_8 },
|
||||
{ RC_KF_ROCK_BY_SARIAS_HOUSE, RAND_INF_KF_ROCK_BY_SARIAS_HOUSE },
|
||||
{ RC_KF_ROCK_BEHIND_SARIAS_HOUSE, RAND_INF_KF_ROCK_BEHIND_SARIAS_HOUSE },
|
||||
{ RC_KF_ROCK_BY_MIDOS_HOUSE, RAND_INF_KF_ROCK_BY_MIDOS_HOUSE },
|
||||
{ RC_KF_ROCK_BY_KNOW_IT_ALLS_HOUSE, RAND_INF_KF_ROCK_BY_KNOW_IT_ALLS_HOUSE },
|
||||
{ RC_LW_BOULDER_BY_GORON_CITY, RAND_INF_LW_BOULDER_BY_GORON_CITY },
|
||||
{ RC_LW_BOULDER_BY_SACRED_FOREST_MEADOW, RAND_INF_LW_BOULDER_BY_SACRED_FOREST_MEADOW },
|
||||
{ RC_LW_RUPEE_BOULDER, RAND_INF_LW_RUPEE_BOULDER },
|
||||
{ RC_HC_ROCK_1, RAND_INF_HC_ROCK_1 },
|
||||
{ RC_HC_ROCK_2, RAND_INF_HC_ROCK_2 },
|
||||
{ RC_HC_ROCK_3, RAND_INF_HC_ROCK_3 },
|
||||
{ RC_HC_BOULDER, RAND_INF_HC_BOULDER },
|
||||
{ RC_OGC_BRONZE_BOULDER_1, RAND_INF_OGC_BRONZE_BOULDER_1 },
|
||||
{ RC_OGC_BRONZE_BOULDER_2, RAND_INF_OGC_BRONZE_BOULDER_2 },
|
||||
{ RC_OGC_BRONZE_BOULDER_3, RAND_INF_OGC_BRONZE_BOULDER_3 },
|
||||
{ RC_OGC_SILVER_BOULDER_1, RAND_INF_OGC_SILVER_BOULDER_1 },
|
||||
{ RC_OGC_SILVER_BOULDER_2, RAND_INF_OGC_SILVER_BOULDER_2 },
|
||||
{ RC_OGC_SILVER_BOULDER_3, RAND_INF_OGC_SILVER_BOULDER_3 },
|
||||
{ RC_OGC_SILVER_BOULDER_4, RAND_INF_OGC_SILVER_BOULDER_4 },
|
||||
{ RC_DMC_CIRCLE_ROCK_1, RAND_INF_DMC_CIRCLE_ROCK_1 },
|
||||
{ RC_DMC_CIRCLE_ROCK_2, RAND_INF_DMC_CIRCLE_ROCK_2 },
|
||||
{ RC_DMC_CIRCLE_ROCK_3, RAND_INF_DMC_CIRCLE_ROCK_3 },
|
||||
{ RC_DMC_CIRCLE_ROCK_4, RAND_INF_DMC_CIRCLE_ROCK_4 },
|
||||
{ RC_DMC_CIRCLE_ROCK_5, RAND_INF_DMC_CIRCLE_ROCK_5 },
|
||||
{ RC_DMC_CIRCLE_ROCK_6, RAND_INF_DMC_CIRCLE_ROCK_6 },
|
||||
{ RC_DMC_CIRCLE_ROCK_7, RAND_INF_DMC_CIRCLE_ROCK_7 },
|
||||
{ RC_DMC_CIRCLE_ROCK_8, RAND_INF_DMC_CIRCLE_ROCK_8 },
|
||||
{ RC_DMC_ROCK_BY_FIRE_TEMPLE_1, RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_1 },
|
||||
{ RC_DMC_ROCK_BY_FIRE_TEMPLE_2, RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_2 },
|
||||
{ RC_DMC_ROCK_BY_FIRE_TEMPLE_3, RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_3 },
|
||||
{ RC_DMC_ROCK_BY_FIRE_TEMPLE_4, RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_4 },
|
||||
{ RC_DMC_ROCK_BY_FIRE_TEMPLE_5, RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_5 },
|
||||
{ RC_DMC_GOSSIP_ROCK_1, RAND_INF_DMC_GOSSIP_ROCK_1 },
|
||||
{ RC_DMC_GOSSIP_ROCK_2, RAND_INF_DMC_GOSSIP_ROCK_2 },
|
||||
{ RC_DMC_BOULDER_1, RAND_INF_DMC_BOULDER_1 },
|
||||
{ RC_DMC_BOULDER_2, RAND_INF_DMC_BOULDER_2 },
|
||||
{ RC_DMC_BOULDER_3, RAND_INF_DMC_BOULDER_3 },
|
||||
{ RC_DMC_BRONZE_BOULDER_1, RAND_INF_DMC_BRONZE_BOULDER_1 },
|
||||
{ RC_DMC_BRONZE_BOULDER_2, RAND_INF_DMC_BRONZE_BOULDER_2 },
|
||||
{ RC_DMC_BRONZE_BOULDER_3, RAND_INF_DMC_BRONZE_BOULDER_3 },
|
||||
{ RC_DMC_BRONZE_BOULDER_4, RAND_INF_DMC_BRONZE_BOULDER_4 },
|
||||
{ RC_GV_SILVER_BOULDER, RAND_INF_GV_SILVER_BOULDER },
|
||||
{ RC_GV_ROCK_1, RAND_INF_GV_ROCK_1 },
|
||||
{ RC_GV_ROCK_2, RAND_INF_GV_ROCK_2 },
|
||||
{ RC_GV_ROCK_3, RAND_INF_GV_ROCK_3 },
|
||||
{ RC_GV_UNDERWATER_ROCK_1, RAND_INF_GV_UNDERWATER_ROCK_1 },
|
||||
{ RC_GV_UNDERWATER_ROCK_2, RAND_INF_GV_UNDERWATER_ROCK_2 },
|
||||
{ RC_GV_UNDERWATER_ROCK_3, RAND_INF_GV_UNDERWATER_ROCK_3 },
|
||||
{ RC_GV_ROCK_ACROSS_BRIDGE_1, RAND_INF_GV_ROCK_ACROSS_BRIDGE_1 },
|
||||
{ RC_GV_ROCK_ACROSS_BRIDGE_2, RAND_INF_GV_ROCK_ACROSS_BRIDGE_2 },
|
||||
{ RC_GV_ROCK_ACROSS_BRIDGE_3, RAND_INF_GV_ROCK_ACROSS_BRIDGE_3 },
|
||||
{ RC_GV_ROCK_ACROSS_BRIDGE_4, RAND_INF_GV_ROCK_ACROSS_BRIDGE_4 },
|
||||
{ RC_GV_BOULDER_1, RAND_INF_GV_BOULDER_1 },
|
||||
{ RC_GV_BOULDER_2, RAND_INF_GV_BOULDER_2 },
|
||||
{ RC_GV_BOULDER_ACROSS_BRIDGE, RAND_INF_GV_BOULDER_ACROSS_BRIDGE },
|
||||
{ RC_GV_BRONZE_BOULDER_1, RAND_INF_GV_BRONZE_BOULDER_1 },
|
||||
{ RC_GV_BRONZE_BOULDER_2, RAND_INF_GV_BRONZE_BOULDER_2 },
|
||||
{ RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_1, RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_1 },
|
||||
{ RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_2, RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_2 },
|
||||
{ RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_3, RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_3 },
|
||||
{ RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_4, RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_4 },
|
||||
{ RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_5, RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_5 },
|
||||
{ RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_6, RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_6 },
|
||||
{ RC_HF_SILVER_BOULDER, RAND_INF_HF_SILVER_BOULDER },
|
||||
{ RC_HF_ROCK_1, RAND_INF_HF_ROCK_1 },
|
||||
{ RC_HF_ROCK_2, RAND_INF_HF_ROCK_2 },
|
||||
{ RC_HF_ROCK_3, RAND_INF_HF_ROCK_3 },
|
||||
{ RC_HF_ROCK_4, RAND_INF_HF_ROCK_4 },
|
||||
{ RC_HF_ROCK_5, RAND_INF_HF_ROCK_5 },
|
||||
{ RC_HF_ROCK_6, RAND_INF_HF_ROCK_6 },
|
||||
{ RC_HF_ROCK_7, RAND_INF_HF_ROCK_7 },
|
||||
{ RC_HF_ROCK_8, RAND_INF_HF_ROCK_8 },
|
||||
{ RC_HF_BOULDER_NORTH, RAND_INF_HF_BOULDER_NORTH },
|
||||
{ RC_HF_BOULDER_BY_MARKET, RAND_INF_HF_BOULDER_BY_MARKET },
|
||||
{ RC_HF_BOULDER_SOUTH, RAND_INF_HF_BOULDER_SOUTH },
|
||||
{ RC_HF_BRONZE_BOULDER_1, RAND_INF_HF_BRONZE_BOULDER_1 },
|
||||
{ RC_HF_BRONZE_BOULDER_2, RAND_INF_HF_BRONZE_BOULDER_2 },
|
||||
{ RC_HF_BRONZE_BOULDER_3, RAND_INF_HF_BRONZE_BOULDER_3 },
|
||||
{ RC_HF_BRONZE_BOULDER_4, RAND_INF_HF_BRONZE_BOULDER_4 },
|
||||
{ RC_KAK_SILVER_BOULDER, RAND_INF_KAK_SILVER_BOULDER },
|
||||
{ RC_KAK_ROCK_1, RAND_INF_KAK_ROCK_1 },
|
||||
{ RC_KAK_ROCK_2, RAND_INF_KAK_ROCK_2 },
|
||||
{ RC_GY_ROCK, RAND_INF_GY_ROCK },
|
||||
{ RC_LA_ROCK, RAND_INF_LA_ROCK },
|
||||
{ RC_ZD_CIRCLE_ROCK_1, RAND_INF_ZD_CIRCLE_ROCK_1 },
|
||||
{ RC_ZD_CIRCLE_ROCK_2, RAND_INF_ZD_CIRCLE_ROCK_2 },
|
||||
{ RC_ZD_CIRCLE_ROCK_3, RAND_INF_ZD_CIRCLE_ROCK_3 },
|
||||
{ RC_ZD_CIRCLE_ROCK_4, RAND_INF_ZD_CIRCLE_ROCK_4 },
|
||||
{ RC_ZD_CIRCLE_ROCK_5, RAND_INF_ZD_CIRCLE_ROCK_5 },
|
||||
{ RC_ZD_CIRCLE_ROCK_6, RAND_INF_ZD_CIRCLE_ROCK_6 },
|
||||
{ RC_ZD_CIRCLE_ROCK_7, RAND_INF_ZD_CIRCLE_ROCK_7 },
|
||||
{ RC_ZD_CIRCLE_ROCK_8, RAND_INF_ZD_CIRCLE_ROCK_8 },
|
||||
{ RC_ZF_BOULDER, RAND_INF_ZF_BOULDER },
|
||||
{ RC_ZF_SILVER_BOULDER, RAND_INF_ZF_SILVER_BOULDER },
|
||||
{ RC_ZF_UNDERGROUND_BOULDER, RAND_INF_ZF_UNDERGROUND_BOULDER },
|
||||
{ RC_ZR_BOULDER_1, RAND_INF_ZR_BOULDER_1 },
|
||||
{ RC_ZR_BOULDER_2, RAND_INF_ZR_BOULDER_2 },
|
||||
{ RC_ZR_BOULDER_3, RAND_INF_ZR_BOULDER_3 },
|
||||
{ RC_ZR_BOULDER_4, RAND_INF_ZR_BOULDER_4 },
|
||||
{ RC_ZR_CIRCLE_ROCK_1, RAND_INF_ZR_CIRCLE_ROCK_1 },
|
||||
{ RC_ZR_CIRCLE_ROCK_2, RAND_INF_ZR_CIRCLE_ROCK_2 },
|
||||
{ RC_ZR_CIRCLE_ROCK_3, RAND_INF_ZR_CIRCLE_ROCK_3 },
|
||||
{ RC_ZR_CIRCLE_ROCK_4, RAND_INF_ZR_CIRCLE_ROCK_4 },
|
||||
{ RC_ZR_CIRCLE_ROCK_5, RAND_INF_ZR_CIRCLE_ROCK_5 },
|
||||
{ RC_ZR_CIRCLE_ROCK_6, RAND_INF_ZR_CIRCLE_ROCK_6 },
|
||||
{ RC_ZR_CIRCLE_ROCK_7, RAND_INF_ZR_CIRCLE_ROCK_7 },
|
||||
{ RC_ZR_CIRCLE_ROCK_8, RAND_INF_ZR_CIRCLE_ROCK_8 },
|
||||
{ RC_ZR_UPPER_CIRCLE_BOULDER, RAND_INF_ZR_UPPER_CIRCLE_BOULDER },
|
||||
{ RC_ZR_UPPER_CIRCLE_ROCK_1, RAND_INF_ZR_UPPER_CIRCLE_ROCK_1 },
|
||||
{ RC_ZR_UPPER_CIRCLE_ROCK_2, RAND_INF_ZR_UPPER_CIRCLE_ROCK_2 },
|
||||
{ RC_ZR_UPPER_CIRCLE_ROCK_3, RAND_INF_ZR_UPPER_CIRCLE_ROCK_3 },
|
||||
{ RC_ZR_UPPER_CIRCLE_ROCK_4, RAND_INF_ZR_UPPER_CIRCLE_ROCK_4 },
|
||||
{ RC_ZR_UPPER_CIRCLE_ROCK_5, RAND_INF_ZR_UPPER_CIRCLE_ROCK_5 },
|
||||
{ RC_ZR_UPPER_CIRCLE_ROCK_6, RAND_INF_ZR_UPPER_CIRCLE_ROCK_6 },
|
||||
{ RC_ZR_UPPER_CIRCLE_ROCK_7, RAND_INF_ZR_UPPER_CIRCLE_ROCK_7 },
|
||||
{ RC_ZR_UPPER_CIRCLE_ROCK_8, RAND_INF_ZR_UPPER_CIRCLE_ROCK_8 },
|
||||
{ RC_ZR_ROCK, RAND_INF_ZR_ROCK },
|
||||
{ RC_ZR_UNDERWATER_ROCK_1, RAND_INF_ZR_UNDERWATER_ROCK_1 },
|
||||
{ RC_ZR_UNDERWATER_ROCK_2, RAND_INF_ZR_UNDERWATER_ROCK_2 },
|
||||
{ RC_ZR_UNDERWATER_ROCK_3, RAND_INF_ZR_UNDERWATER_ROCK_3 },
|
||||
{ RC_ZR_UNDERWATER_ROCK_4, RAND_INF_ZR_UNDERWATER_ROCK_4 },
|
||||
{ RC_DMT_ROCK_1, RAND_INF_DMT_ROCK_1 },
|
||||
{ RC_DMT_ROCK_2, RAND_INF_DMT_ROCK_2 },
|
||||
{ RC_DMT_ROCK_3, RAND_INF_DMT_ROCK_3 },
|
||||
{ RC_DMT_ROCK_4, RAND_INF_DMT_ROCK_4 },
|
||||
{ RC_DMT_ROCK_5, RAND_INF_DMT_ROCK_5 },
|
||||
{ RC_DMT_SUMMIT_ROCK, RAND_INF_DMT_SUMMIT_ROCK },
|
||||
{ RC_DMT_CIRCLE_ROCK_1, RAND_INF_DMT_CIRCLE_ROCK_1 },
|
||||
{ RC_DMT_CIRCLE_ROCK_2, RAND_INF_DMT_CIRCLE_ROCK_2 },
|
||||
{ RC_DMT_CIRCLE_ROCK_3, RAND_INF_DMT_CIRCLE_ROCK_3 },
|
||||
{ RC_DMT_CIRCLE_ROCK_4, RAND_INF_DMT_CIRCLE_ROCK_4 },
|
||||
{ RC_DMT_CIRCLE_ROCK_5, RAND_INF_DMT_CIRCLE_ROCK_5 },
|
||||
{ RC_DMT_CIRCLE_ROCK_6, RAND_INF_DMT_CIRCLE_ROCK_6 },
|
||||
{ RC_DMT_CIRCLE_ROCK_7, RAND_INF_DMT_CIRCLE_ROCK_7 },
|
||||
{ RC_DMT_CIRCLE_ROCK_8, RAND_INF_DMT_CIRCLE_ROCK_8 },
|
||||
{ RC_DMT_BOULDER_1, RAND_INF_DMT_BOULDER_1 },
|
||||
{ RC_DMT_BOULDER_2, RAND_INF_DMT_BOULDER_2 },
|
||||
{ RC_DMT_BOULDER_3, RAND_INF_DMT_BOULDER_3 },
|
||||
{ RC_DMT_COW_BOULDER, RAND_INF_DMT_COW_BOULDER },
|
||||
{ RC_DMT_BRONZE_BOULDER_1, RAND_INF_DMT_BRONZE_BOULDER_1 },
|
||||
{ RC_DMT_BRONZE_BOULDER_2, RAND_INF_DMT_BRONZE_BOULDER_2 },
|
||||
{ RC_DMT_BRONZE_BOULDER_3, RAND_INF_DMT_BRONZE_BOULDER_3 },
|
||||
{ RC_DMT_BRONZE_BOULDER_4, RAND_INF_DMT_BRONZE_BOULDER_4 },
|
||||
{ RC_DMT_BRONZE_BOULDER_5, RAND_INF_DMT_BRONZE_BOULDER_5 },
|
||||
{ RC_DMT_BRONZE_BOULDER_6, RAND_INF_DMT_BRONZE_BOULDER_6 },
|
||||
{ RC_DMT_BRONZE_BOULDER_7, RAND_INF_DMT_BRONZE_BOULDER_7 },
|
||||
{ RC_DMT_BRONZE_BOULDER_8, RAND_INF_DMT_BRONZE_BOULDER_8 },
|
||||
{ RC_DMT_BRONZE_BOULDER_9, RAND_INF_DMT_BRONZE_BOULDER_9 },
|
||||
{ RC_DMT_BRONZE_BOULDER_10, RAND_INF_DMT_BRONZE_BOULDER_10 },
|
||||
{ RC_DMT_BRONZE_BOULDER_11, RAND_INF_DMT_BRONZE_BOULDER_11 },
|
||||
{ RC_GC_LW_BOULDER_1, RAND_INF_GC_LW_BOULDER_1 },
|
||||
{ RC_GC_LW_BOULDER_2, RAND_INF_GC_LW_BOULDER_2 },
|
||||
{ RC_GC_LW_BOULDER_3, RAND_INF_GC_LW_BOULDER_3 },
|
||||
{ RC_GC_ENTRANCE_BOULDER_1, RAND_INF_GC_ENTRANCE_BOULDER_1 },
|
||||
{ RC_GC_ENTRANCE_BOULDER_2, RAND_INF_GC_ENTRANCE_BOULDER_2 },
|
||||
{ RC_GC_ENTRANCE_BOULDER_3, RAND_INF_GC_ENTRANCE_BOULDER_3 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_1, RAND_INF_GC_MAZE_SILVER_BOULDER_1 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_2, RAND_INF_GC_MAZE_SILVER_BOULDER_2 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_3, RAND_INF_GC_MAZE_SILVER_BOULDER_3 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_4, RAND_INF_GC_MAZE_SILVER_BOULDER_4 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_5, RAND_INF_GC_MAZE_SILVER_BOULDER_5 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_6, RAND_INF_GC_MAZE_SILVER_BOULDER_6 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_7, RAND_INF_GC_MAZE_SILVER_BOULDER_7 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_8, RAND_INF_GC_MAZE_SILVER_BOULDER_8 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_9, RAND_INF_GC_MAZE_SILVER_BOULDER_9 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_10, RAND_INF_GC_MAZE_SILVER_BOULDER_10 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_11, RAND_INF_GC_MAZE_SILVER_BOULDER_11 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_12, RAND_INF_GC_MAZE_SILVER_BOULDER_12 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_13, RAND_INF_GC_MAZE_SILVER_BOULDER_13 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_14, RAND_INF_GC_MAZE_SILVER_BOULDER_14 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_15, RAND_INF_GC_MAZE_SILVER_BOULDER_15 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_16, RAND_INF_GC_MAZE_SILVER_BOULDER_16 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_17, RAND_INF_GC_MAZE_SILVER_BOULDER_17 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_18, RAND_INF_GC_MAZE_SILVER_BOULDER_18 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_19, RAND_INF_GC_MAZE_SILVER_BOULDER_19 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_20, RAND_INF_GC_MAZE_SILVER_BOULDER_20 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_21, RAND_INF_GC_MAZE_SILVER_BOULDER_21 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_22, RAND_INF_GC_MAZE_SILVER_BOULDER_22 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_23, RAND_INF_GC_MAZE_SILVER_BOULDER_23 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_24, RAND_INF_GC_MAZE_SILVER_BOULDER_24 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_25, RAND_INF_GC_MAZE_SILVER_BOULDER_25 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_26, RAND_INF_GC_MAZE_SILVER_BOULDER_26 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_27, RAND_INF_GC_MAZE_SILVER_BOULDER_27 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_28, RAND_INF_GC_MAZE_SILVER_BOULDER_28 },
|
||||
{ RC_GC_MAZE_SILVER_BOULDER_29, RAND_INF_GC_MAZE_SILVER_BOULDER_29 },
|
||||
{ RC_GC_MAZE_BOULDER_1, RAND_INF_GC_MAZE_BOULDER_1 },
|
||||
{ RC_GC_MAZE_BOULDER_2, RAND_INF_GC_MAZE_BOULDER_2 },
|
||||
{ RC_GC_MAZE_BOULDER_3, RAND_INF_GC_MAZE_BOULDER_3 },
|
||||
{ RC_GC_MAZE_BOULDER_4, RAND_INF_GC_MAZE_BOULDER_4 },
|
||||
{ RC_GC_MAZE_BOULDER_5, RAND_INF_GC_MAZE_BOULDER_5 },
|
||||
{ RC_GC_MAZE_BOULDER_6, RAND_INF_GC_MAZE_BOULDER_6 },
|
||||
{ RC_GC_MAZE_BOULDER_7, RAND_INF_GC_MAZE_BOULDER_7 },
|
||||
{ RC_GC_MAZE_BOULDER_8, RAND_INF_GC_MAZE_BOULDER_8 },
|
||||
{ RC_GC_MAZE_BOULDER_9, RAND_INF_GC_MAZE_BOULDER_9 },
|
||||
{ RC_GC_MAZE_BOULDER_10, RAND_INF_GC_MAZE_BOULDER_10 },
|
||||
{ RC_GC_MAZE_BRONZE_BOULDER_1, RAND_INF_GC_MAZE_BRONZE_BOULDER_1 },
|
||||
{ RC_GC_MAZE_BRONZE_BOULDER_2, RAND_INF_GC_MAZE_BRONZE_BOULDER_2 },
|
||||
{ RC_GC_MAZE_BRONZE_BOULDER_3, RAND_INF_GC_MAZE_BRONZE_BOULDER_3 },
|
||||
{ RC_GC_MAZE_BRONZE_BOULDER_4, RAND_INF_GC_MAZE_BRONZE_BOULDER_4 },
|
||||
{ RC_GC_MAZE_BRONZE_BOULDER_5, RAND_INF_GC_MAZE_BRONZE_BOULDER_5 },
|
||||
{ RC_GC_MAZE_ROCK, RAND_INF_GC_MAZE_ROCK },
|
||||
{ RC_COLOSSUS_SILVER_BOULDER, RAND_INF_COLOSSUS_SILVER_BOULDER },
|
||||
{ RC_COLOSSUS_ROCK, RAND_INF_COLOSSUS_ROCK },
|
||||
{ RC_COLOSSUS_CIRCLE_1_ROCK_1, RAND_INF_COLOSSUS_CIRCLE_1_ROCK_1 },
|
||||
{ RC_COLOSSUS_CIRCLE_1_ROCK_2, RAND_INF_COLOSSUS_CIRCLE_1_ROCK_2 },
|
||||
{ RC_COLOSSUS_CIRCLE_1_ROCK_3, RAND_INF_COLOSSUS_CIRCLE_1_ROCK_3 },
|
||||
{ RC_COLOSSUS_CIRCLE_1_ROCK_4, RAND_INF_COLOSSUS_CIRCLE_1_ROCK_4 },
|
||||
{ RC_COLOSSUS_CIRCLE_1_ROCK_5, RAND_INF_COLOSSUS_CIRCLE_1_ROCK_5 },
|
||||
{ RC_COLOSSUS_CIRCLE_1_ROCK_6, RAND_INF_COLOSSUS_CIRCLE_1_ROCK_6 },
|
||||
{ RC_COLOSSUS_CIRCLE_1_ROCK_7, RAND_INF_COLOSSUS_CIRCLE_1_ROCK_7 },
|
||||
{ RC_COLOSSUS_CIRCLE_1_ROCK_8, RAND_INF_COLOSSUS_CIRCLE_1_ROCK_8 },
|
||||
{ RC_COLOSSUS_CIRCLE_2_ROCK_1, RAND_INF_COLOSSUS_CIRCLE_2_ROCK_1 },
|
||||
{ RC_COLOSSUS_CIRCLE_2_ROCK_2, RAND_INF_COLOSSUS_CIRCLE_2_ROCK_2 },
|
||||
{ RC_COLOSSUS_CIRCLE_2_ROCK_3, RAND_INF_COLOSSUS_CIRCLE_2_ROCK_3 },
|
||||
{ RC_COLOSSUS_CIRCLE_2_ROCK_4, RAND_INF_COLOSSUS_CIRCLE_2_ROCK_4 },
|
||||
{ RC_COLOSSUS_CIRCLE_2_ROCK_5, RAND_INF_COLOSSUS_CIRCLE_2_ROCK_5 },
|
||||
{ RC_COLOSSUS_CIRCLE_2_ROCK_6, RAND_INF_COLOSSUS_CIRCLE_2_ROCK_6 },
|
||||
{ RC_COLOSSUS_CIRCLE_2_ROCK_7, RAND_INF_COLOSSUS_CIRCLE_2_ROCK_7 },
|
||||
{ RC_COLOSSUS_CIRCLE_2_ROCK_8, RAND_INF_COLOSSUS_CIRCLE_2_ROCK_8 },
|
||||
{ RC_HC_STORMS_GROTTO_ROCK_1, RAND_INF_HC_STORMS_GROTTO_ROCK_1 },
|
||||
{ RC_HC_STORMS_GROTTO_ROCK_2, RAND_INF_HC_STORMS_GROTTO_ROCK_2 },
|
||||
{ RC_HC_STORMS_GROTTO_ROCK_3, RAND_INF_HC_STORMS_GROTTO_ROCK_3 },
|
||||
{ RC_HC_STORMS_GROTTO_ROCK_4, RAND_INF_HC_STORMS_GROTTO_ROCK_4 },
|
||||
{ RC_HC_STORMS_GROTTO_ROCK_5, RAND_INF_HC_STORMS_GROTTO_ROCK_5 },
|
||||
{ RC_HC_STORMS_GROTTO_ROCK_6, RAND_INF_HC_STORMS_GROTTO_ROCK_6 },
|
||||
{ RC_HC_STORMS_GROTTO_ROCK_7, RAND_INF_HC_STORMS_GROTTO_ROCK_7 },
|
||||
{ RC_HC_STORMS_GROTTO_ROCK_8, RAND_INF_HC_STORMS_GROTTO_ROCK_8 },
|
||||
{ RC_BOTW_BOULDER_1, RAND_INF_BOTW_BOULDER_1 },
|
||||
{ RC_BOTW_BOULDER_2, RAND_INF_BOTW_BOULDER_2 },
|
||||
{ RC_BOTW_BOULDER_3, RAND_INF_BOTW_BOULDER_3 },
|
||||
{ RC_BOTW_BOULDER_4, RAND_INF_BOTW_BOULDER_4 },
|
||||
{ RC_BOTW_BOULDER_5, RAND_INF_BOTW_BOULDER_5 },
|
||||
{ RC_BOTW_BOULDER_6, RAND_INF_BOTW_BOULDER_6 },
|
||||
{ RC_DEKU_TREE_MQ_BOULDER_1, RAND_INF_DEKU_TREE_MQ_BOULDER_1 },
|
||||
{ RC_DEKU_TREE_MQ_BOULDER_2, RAND_INF_DEKU_TREE_MQ_BOULDER_2 },
|
||||
{ RC_DEKU_TREE_MQ_BOULDER_3, RAND_INF_DEKU_TREE_MQ_BOULDER_3 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_1, RAND_INF_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_1 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_2, RAND_INF_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_2 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_1, RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_1 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_2, RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_2 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_3, RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_3 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_1, RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_1 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_2, RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_2 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_1, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_1 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_2, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_2 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_3, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_3 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_4, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_4 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_5, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_5 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_6, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_6 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_7, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_7 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_8, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_8 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_9, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_9 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_10, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_10 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_11, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_11 },
|
||||
{ RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_12, RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_12 },
|
||||
{ RC_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER, RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER },
|
||||
{ RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1, RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1 },
|
||||
{ RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2, RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2 },
|
||||
{ RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1, RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1 },
|
||||
{ RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2, RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2 },
|
||||
{ RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3, RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3 },
|
||||
{ RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1, RAND_INF_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1 },
|
||||
{ RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2, RAND_INF_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2 },
|
||||
{ RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER, RAND_INF_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER },
|
||||
{ RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER, RAND_INF_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER },
|
||||
{ RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_1, RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_1 },
|
||||
{ RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_2, RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_2 },
|
||||
{ RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_3, RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_3 },
|
||||
{ RC_SPIRIT_TEMPLE_MQ_ENTRANCE_CEILING_BOULDER, RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_CEILING_BOULDER },
|
||||
{ RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_BOULDER, RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_BOULDER },
|
||||
{ RC_BOTW_MQ_BOULDER_1, RAND_INF_BOTW_MQ_BOULDER_1 },
|
||||
{ RC_BOTW_MQ_BOULDER_2, RAND_INF_BOTW_MQ_BOULDER_2 },
|
||||
{ RC_BOTW_MQ_BOULDER_3, RAND_INF_BOTW_MQ_BOULDER_3 },
|
||||
};
|
||||
|
||||
BeehiveIdentity Randomizer::IdentifyBeehive(s32 sceneNum, s16 xPosition, s32 respawnData) {
|
||||
|
@ -3148,7 +3428,6 @@ BeehiveIdentity Randomizer::IdentifyBeehive(s32 sceneNum, s16 xPosition, s32 res
|
|||
}
|
||||
|
||||
Rando::Location* Randomizer::GetCheckObjectFromActor(s16 actorId, s16 sceneNum, s32 actorParams = 0x00) {
|
||||
auto fs = OTRGlobals::Instance->gRandoContext->GetFishsanity();
|
||||
RandomizerCheck specialRc = RC_UNKNOWN_CHECK;
|
||||
// TODO: Migrate these special cases into table, or at least document why they are special
|
||||
switch (sceneNum) {
|
||||
|
@ -3544,6 +3823,22 @@ SmallCrateIdentity Randomizer::IdentifySmallCrate(s32 sceneNum, s32 posX, s32 po
|
|||
return smallCrateIdentity;
|
||||
}
|
||||
|
||||
RockIdentity Randomizer::IdentifyRock(s32 sceneNum, s32 posX, s32 posZ) {
|
||||
struct RockIdentity rockIdentity;
|
||||
|
||||
rockIdentity.randomizerInf = RAND_INF_MAX;
|
||||
rockIdentity.randomizerCheck = RC_UNKNOWN_CHECK;
|
||||
|
||||
Rando::Location* location = GetCheckObjectFromActor(ACTOR_EN_ISHI, sceneNum, TWO_ACTOR_PARAMS(posX, posZ));
|
||||
|
||||
if (location->GetRandomizerCheck() != RC_UNKNOWN_CHECK) {
|
||||
rockIdentity.randomizerInf = rcToRandomizerInf[location->GetRandomizerCheck()];
|
||||
rockIdentity.randomizerCheck = location->GetRandomizerCheck();
|
||||
}
|
||||
|
||||
return rockIdentity;
|
||||
}
|
||||
|
||||
u8 Randomizer::GetRandoSettingValue(RandomizerSettingKey randoSettingKey) {
|
||||
return Rando::Context::GetInstance()->GetOption(randoSettingKey).Get();
|
||||
}
|
||||
|
|
|
@ -57,6 +57,7 @@ class Randomizer {
|
|||
GrassIdentity IdentifyGrass(s32 sceneNum, s32 posX, s32 posZ, s32 respawnData, s32 linkAge);
|
||||
CrateIdentity IdentifyCrate(s32 sceneNum, s32 posX, s32 posZ);
|
||||
SmallCrateIdentity IdentifySmallCrate(s32 sceneNum, s32 posX, s32 posZ);
|
||||
RockIdentity IdentifyRock(s32 sceneNum, s32 posX, s32 posZ);
|
||||
GetItemEntry GetItemFromKnownCheck(RandomizerCheck randomizerCheck, GetItemID ogItemId,
|
||||
bool checkObtainability = true);
|
||||
GetItemEntry GetItemFromActor(s16 actorId, s16 sceneNum, s16 actorParams, GetItemID ogItemId,
|
||||
|
|
|
@ -298,6 +298,8 @@ typedef enum {
|
|||
RCTYPE_FREESTANDING, // Freestanding rupees and hearts
|
||||
RCTYPE_FAIRY, // Fairies
|
||||
RCTYPE_GRASS, // Grass
|
||||
RCTYPE_ROCK, // Rocks
|
||||
RCTYPE_BOULDER, // Boulders
|
||||
} RandomizerCheckType;
|
||||
|
||||
typedef enum { RCQUEST_VANILLA, RCQUEST_MQ, RCQUEST_BOTH } RandomizerCheckQuest;
|
||||
|
@ -3470,6 +3472,287 @@ typedef enum {
|
|||
RC_DEKU_TREE_QUEEN_GOHMA_GRASS_8,
|
||||
// End Grass
|
||||
|
||||
RC_KF_CIRCLE_ROCK_1,
|
||||
RC_KF_CIRCLE_ROCK_2,
|
||||
RC_KF_CIRCLE_ROCK_3,
|
||||
RC_KF_CIRCLE_ROCK_4,
|
||||
RC_KF_CIRCLE_ROCK_5,
|
||||
RC_KF_CIRCLE_ROCK_6,
|
||||
RC_KF_CIRCLE_ROCK_7,
|
||||
RC_KF_CIRCLE_ROCK_8,
|
||||
RC_KF_ROCK_BY_SARIAS_HOUSE,
|
||||
RC_KF_ROCK_BEHIND_SARIAS_HOUSE,
|
||||
RC_KF_ROCK_BY_MIDOS_HOUSE,
|
||||
RC_KF_ROCK_BY_KNOW_IT_ALLS_HOUSE,
|
||||
RC_LW_BOULDER_BY_GORON_CITY,
|
||||
RC_LW_BOULDER_BY_SACRED_FOREST_MEADOW,
|
||||
RC_LW_RUPEE_BOULDER,
|
||||
RC_HC_ROCK_1,
|
||||
RC_HC_ROCK_2,
|
||||
RC_HC_ROCK_3,
|
||||
RC_HC_BOULDER,
|
||||
RC_OGC_BRONZE_BOULDER_1,
|
||||
RC_OGC_BRONZE_BOULDER_2,
|
||||
RC_OGC_BRONZE_BOULDER_3,
|
||||
RC_OGC_SILVER_BOULDER_1,
|
||||
RC_OGC_SILVER_BOULDER_2,
|
||||
RC_OGC_SILVER_BOULDER_3,
|
||||
RC_OGC_SILVER_BOULDER_4,
|
||||
RC_DMC_CIRCLE_ROCK_1,
|
||||
RC_DMC_CIRCLE_ROCK_2,
|
||||
RC_DMC_CIRCLE_ROCK_3,
|
||||
RC_DMC_CIRCLE_ROCK_4,
|
||||
RC_DMC_CIRCLE_ROCK_5,
|
||||
RC_DMC_CIRCLE_ROCK_6,
|
||||
RC_DMC_CIRCLE_ROCK_7,
|
||||
RC_DMC_CIRCLE_ROCK_8,
|
||||
RC_DMC_ROCK_BY_FIRE_TEMPLE_1,
|
||||
RC_DMC_ROCK_BY_FIRE_TEMPLE_2,
|
||||
RC_DMC_ROCK_BY_FIRE_TEMPLE_3,
|
||||
RC_DMC_ROCK_BY_FIRE_TEMPLE_4,
|
||||
RC_DMC_ROCK_BY_FIRE_TEMPLE_5,
|
||||
RC_DMC_GOSSIP_ROCK_1,
|
||||
RC_DMC_GOSSIP_ROCK_2,
|
||||
RC_DMC_BOULDER_1,
|
||||
RC_DMC_BOULDER_2,
|
||||
RC_DMC_BOULDER_3,
|
||||
RC_DMC_BRONZE_BOULDER_1,
|
||||
RC_DMC_BRONZE_BOULDER_2,
|
||||
RC_DMC_BRONZE_BOULDER_3,
|
||||
RC_DMC_BRONZE_BOULDER_4,
|
||||
RC_GV_SILVER_BOULDER,
|
||||
RC_GV_ROCK_1,
|
||||
RC_GV_ROCK_2,
|
||||
RC_GV_ROCK_3,
|
||||
RC_GV_UNDERWATER_ROCK_1,
|
||||
RC_GV_UNDERWATER_ROCK_2,
|
||||
RC_GV_UNDERWATER_ROCK_3,
|
||||
RC_GV_ROCK_ACROSS_BRIDGE_1,
|
||||
RC_GV_ROCK_ACROSS_BRIDGE_2,
|
||||
RC_GV_ROCK_ACROSS_BRIDGE_3,
|
||||
RC_GV_ROCK_ACROSS_BRIDGE_4,
|
||||
RC_GV_BOULDER_1,
|
||||
RC_GV_BOULDER_2,
|
||||
RC_GV_BOULDER_ACROSS_BRIDGE,
|
||||
RC_GV_BRONZE_BOULDER_1,
|
||||
RC_GV_BRONZE_BOULDER_2,
|
||||
RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_1,
|
||||
RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_2,
|
||||
RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_3,
|
||||
RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_4,
|
||||
RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_5,
|
||||
RC_GV_BRONZE_BOULDER_ACROSS_BRIDGE_6,
|
||||
RC_HF_SILVER_BOULDER,
|
||||
RC_HF_ROCK_1,
|
||||
RC_HF_ROCK_2,
|
||||
RC_HF_ROCK_3,
|
||||
RC_HF_ROCK_4,
|
||||
RC_HF_ROCK_5,
|
||||
RC_HF_ROCK_6,
|
||||
RC_HF_ROCK_7,
|
||||
RC_HF_ROCK_8,
|
||||
RC_HF_BOULDER_NORTH,
|
||||
RC_HF_BOULDER_BY_MARKET,
|
||||
RC_HF_BOULDER_SOUTH,
|
||||
RC_HF_BRONZE_BOULDER_1,
|
||||
RC_HF_BRONZE_BOULDER_2,
|
||||
RC_HF_BRONZE_BOULDER_3,
|
||||
RC_HF_BRONZE_BOULDER_4,
|
||||
RC_KAK_SILVER_BOULDER,
|
||||
RC_KAK_ROCK_1,
|
||||
RC_KAK_ROCK_2,
|
||||
RC_GY_ROCK,
|
||||
RC_LA_ROCK,
|
||||
RC_ZD_CIRCLE_ROCK_1,
|
||||
RC_ZD_CIRCLE_ROCK_2,
|
||||
RC_ZD_CIRCLE_ROCK_3,
|
||||
RC_ZD_CIRCLE_ROCK_4,
|
||||
RC_ZD_CIRCLE_ROCK_5,
|
||||
RC_ZD_CIRCLE_ROCK_6,
|
||||
RC_ZD_CIRCLE_ROCK_7,
|
||||
RC_ZD_CIRCLE_ROCK_8,
|
||||
RC_ZF_BOULDER,
|
||||
RC_ZF_SILVER_BOULDER,
|
||||
RC_ZF_UNDERGROUND_BOULDER,
|
||||
RC_ZR_BOULDER_1,
|
||||
RC_ZR_BOULDER_2,
|
||||
RC_ZR_BOULDER_3,
|
||||
RC_ZR_BOULDER_4,
|
||||
RC_ZR_CIRCLE_ROCK_1,
|
||||
RC_ZR_CIRCLE_ROCK_2,
|
||||
RC_ZR_CIRCLE_ROCK_3,
|
||||
RC_ZR_CIRCLE_ROCK_4,
|
||||
RC_ZR_CIRCLE_ROCK_5,
|
||||
RC_ZR_CIRCLE_ROCK_6,
|
||||
RC_ZR_CIRCLE_ROCK_7,
|
||||
RC_ZR_CIRCLE_ROCK_8,
|
||||
RC_ZR_UPPER_CIRCLE_BOULDER,
|
||||
RC_ZR_UPPER_CIRCLE_ROCK_1,
|
||||
RC_ZR_UPPER_CIRCLE_ROCK_2,
|
||||
RC_ZR_UPPER_CIRCLE_ROCK_3,
|
||||
RC_ZR_UPPER_CIRCLE_ROCK_4,
|
||||
RC_ZR_UPPER_CIRCLE_ROCK_5,
|
||||
RC_ZR_UPPER_CIRCLE_ROCK_6,
|
||||
RC_ZR_UPPER_CIRCLE_ROCK_7,
|
||||
RC_ZR_UPPER_CIRCLE_ROCK_8,
|
||||
RC_ZR_ROCK,
|
||||
RC_ZR_UNDERWATER_ROCK_1,
|
||||
RC_ZR_UNDERWATER_ROCK_2,
|
||||
RC_ZR_UNDERWATER_ROCK_3,
|
||||
RC_ZR_UNDERWATER_ROCK_4,
|
||||
RC_DMT_ROCK_1,
|
||||
RC_DMT_ROCK_2,
|
||||
RC_DMT_ROCK_3,
|
||||
RC_DMT_ROCK_4,
|
||||
RC_DMT_ROCK_5,
|
||||
RC_DMT_SUMMIT_ROCK,
|
||||
RC_DMT_CIRCLE_ROCK_1,
|
||||
RC_DMT_CIRCLE_ROCK_2,
|
||||
RC_DMT_CIRCLE_ROCK_3,
|
||||
RC_DMT_CIRCLE_ROCK_4,
|
||||
RC_DMT_CIRCLE_ROCK_5,
|
||||
RC_DMT_CIRCLE_ROCK_6,
|
||||
RC_DMT_CIRCLE_ROCK_7,
|
||||
RC_DMT_CIRCLE_ROCK_8,
|
||||
RC_DMT_BOULDER_1,
|
||||
RC_DMT_BOULDER_2,
|
||||
RC_DMT_BOULDER_3,
|
||||
RC_DMT_COW_BOULDER,
|
||||
RC_DMT_BRONZE_BOULDER_1,
|
||||
RC_DMT_BRONZE_BOULDER_2,
|
||||
RC_DMT_BRONZE_BOULDER_3,
|
||||
RC_DMT_BRONZE_BOULDER_4,
|
||||
RC_DMT_BRONZE_BOULDER_5,
|
||||
RC_DMT_BRONZE_BOULDER_6,
|
||||
RC_DMT_BRONZE_BOULDER_7,
|
||||
RC_DMT_BRONZE_BOULDER_8,
|
||||
RC_DMT_BRONZE_BOULDER_9,
|
||||
RC_DMT_BRONZE_BOULDER_10,
|
||||
RC_DMT_BRONZE_BOULDER_11,
|
||||
RC_GC_LW_BOULDER_1,
|
||||
RC_GC_LW_BOULDER_2,
|
||||
RC_GC_LW_BOULDER_3,
|
||||
RC_GC_ENTRANCE_BOULDER_1,
|
||||
RC_GC_ENTRANCE_BOULDER_2,
|
||||
RC_GC_ENTRANCE_BOULDER_3,
|
||||
RC_GC_MAZE_SILVER_BOULDER_1,
|
||||
RC_GC_MAZE_SILVER_BOULDER_2,
|
||||
RC_GC_MAZE_SILVER_BOULDER_3,
|
||||
RC_GC_MAZE_SILVER_BOULDER_4,
|
||||
RC_GC_MAZE_SILVER_BOULDER_5,
|
||||
RC_GC_MAZE_SILVER_BOULDER_6,
|
||||
RC_GC_MAZE_SILVER_BOULDER_7,
|
||||
RC_GC_MAZE_SILVER_BOULDER_8,
|
||||
RC_GC_MAZE_SILVER_BOULDER_9,
|
||||
RC_GC_MAZE_SILVER_BOULDER_10,
|
||||
RC_GC_MAZE_SILVER_BOULDER_11,
|
||||
RC_GC_MAZE_SILVER_BOULDER_12,
|
||||
RC_GC_MAZE_SILVER_BOULDER_13,
|
||||
RC_GC_MAZE_SILVER_BOULDER_14,
|
||||
RC_GC_MAZE_SILVER_BOULDER_15,
|
||||
RC_GC_MAZE_SILVER_BOULDER_16,
|
||||
RC_GC_MAZE_SILVER_BOULDER_17,
|
||||
RC_GC_MAZE_SILVER_BOULDER_18,
|
||||
RC_GC_MAZE_SILVER_BOULDER_19,
|
||||
RC_GC_MAZE_SILVER_BOULDER_20,
|
||||
RC_GC_MAZE_SILVER_BOULDER_21,
|
||||
RC_GC_MAZE_SILVER_BOULDER_22,
|
||||
RC_GC_MAZE_SILVER_BOULDER_23,
|
||||
RC_GC_MAZE_SILVER_BOULDER_24,
|
||||
RC_GC_MAZE_SILVER_BOULDER_25,
|
||||
RC_GC_MAZE_SILVER_BOULDER_26,
|
||||
RC_GC_MAZE_SILVER_BOULDER_27,
|
||||
RC_GC_MAZE_SILVER_BOULDER_28,
|
||||
RC_GC_MAZE_SILVER_BOULDER_29,
|
||||
RC_GC_MAZE_BOULDER_1,
|
||||
RC_GC_MAZE_BOULDER_2,
|
||||
RC_GC_MAZE_BOULDER_3,
|
||||
RC_GC_MAZE_BOULDER_4,
|
||||
RC_GC_MAZE_BOULDER_5,
|
||||
RC_GC_MAZE_BOULDER_6,
|
||||
RC_GC_MAZE_BOULDER_7,
|
||||
RC_GC_MAZE_BOULDER_8,
|
||||
RC_GC_MAZE_BOULDER_9,
|
||||
RC_GC_MAZE_BOULDER_10,
|
||||
RC_GC_MAZE_BRONZE_BOULDER_1,
|
||||
RC_GC_MAZE_BRONZE_BOULDER_2,
|
||||
RC_GC_MAZE_BRONZE_BOULDER_3,
|
||||
RC_GC_MAZE_BRONZE_BOULDER_4,
|
||||
RC_GC_MAZE_BRONZE_BOULDER_5,
|
||||
RC_GC_MAZE_ROCK,
|
||||
RC_COLOSSUS_SILVER_BOULDER,
|
||||
RC_COLOSSUS_ROCK,
|
||||
RC_COLOSSUS_CIRCLE_1_ROCK_1,
|
||||
RC_COLOSSUS_CIRCLE_1_ROCK_2,
|
||||
RC_COLOSSUS_CIRCLE_1_ROCK_3,
|
||||
RC_COLOSSUS_CIRCLE_1_ROCK_4,
|
||||
RC_COLOSSUS_CIRCLE_1_ROCK_5,
|
||||
RC_COLOSSUS_CIRCLE_1_ROCK_6,
|
||||
RC_COLOSSUS_CIRCLE_1_ROCK_7,
|
||||
RC_COLOSSUS_CIRCLE_1_ROCK_8,
|
||||
RC_COLOSSUS_CIRCLE_2_ROCK_1,
|
||||
RC_COLOSSUS_CIRCLE_2_ROCK_2,
|
||||
RC_COLOSSUS_CIRCLE_2_ROCK_3,
|
||||
RC_COLOSSUS_CIRCLE_2_ROCK_4,
|
||||
RC_COLOSSUS_CIRCLE_2_ROCK_5,
|
||||
RC_COLOSSUS_CIRCLE_2_ROCK_6,
|
||||
RC_COLOSSUS_CIRCLE_2_ROCK_7,
|
||||
RC_COLOSSUS_CIRCLE_2_ROCK_8,
|
||||
RC_HC_STORMS_GROTTO_ROCK_1,
|
||||
RC_HC_STORMS_GROTTO_ROCK_2,
|
||||
RC_HC_STORMS_GROTTO_ROCK_3,
|
||||
RC_HC_STORMS_GROTTO_ROCK_4,
|
||||
RC_HC_STORMS_GROTTO_ROCK_5,
|
||||
RC_HC_STORMS_GROTTO_ROCK_6,
|
||||
RC_HC_STORMS_GROTTO_ROCK_7,
|
||||
RC_HC_STORMS_GROTTO_ROCK_8,
|
||||
RC_BOTW_BOULDER_1,
|
||||
RC_BOTW_BOULDER_2,
|
||||
RC_BOTW_BOULDER_3,
|
||||
RC_BOTW_BOULDER_4,
|
||||
RC_BOTW_BOULDER_5,
|
||||
RC_BOTW_BOULDER_6,
|
||||
RC_DEKU_TREE_MQ_BOULDER_1,
|
||||
RC_DEKU_TREE_MQ_BOULDER_2,
|
||||
RC_DEKU_TREE_MQ_BOULDER_3,
|
||||
RC_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_1,
|
||||
RC_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_2,
|
||||
RC_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_1,
|
||||
RC_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_2,
|
||||
RC_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_3,
|
||||
RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_1,
|
||||
RC_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_2,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_1,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_2,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_3,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_4,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_5,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_6,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_7,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_8,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_9,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_10,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_11,
|
||||
RC_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_12,
|
||||
RC_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER,
|
||||
RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1,
|
||||
RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2,
|
||||
RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1,
|
||||
RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2,
|
||||
RC_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3,
|
||||
RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1,
|
||||
RC_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2,
|
||||
RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER,
|
||||
RC_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER,
|
||||
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_1,
|
||||
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_2,
|
||||
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_3,
|
||||
RC_SPIRIT_TEMPLE_MQ_ENTRANCE_CEILING_BOULDER,
|
||||
RC_SPIRIT_TEMPLE_MQ_EARLY_ADULT_BOULDER,
|
||||
RC_BOTW_MQ_BOULDER_1,
|
||||
RC_BOTW_MQ_BOULDER_2,
|
||||
RC_BOTW_MQ_BOULDER_3,
|
||||
|
||||
RC_MAX
|
||||
} RandomizerCheck;
|
||||
|
||||
|
@ -5592,6 +5875,48 @@ typedef enum {
|
|||
RHT_DODONGOS_CAVERN_GRASS,
|
||||
RHT_BOTTOM_OF_THE_WELL_GRASS,
|
||||
RHT_JABU_JABUS_BELLY_GRASS,
|
||||
|
||||
RHT_KF_ROCK,
|
||||
RHT_LW_BOULDER,
|
||||
RHT_HC_ROCK,
|
||||
RHT_HC_BOULDER,
|
||||
RHT_OGC_BRONZE_BOULDER,
|
||||
RHT_OGC_SILVER_BOULDER,
|
||||
RHT_DMC_ROCK,
|
||||
RHT_DMC_BOULDER,
|
||||
RHT_DMC_BRONZE_BOULDER,
|
||||
RHT_GV_SILVER_BOULDER,
|
||||
RHT_GV_ROCK,
|
||||
RHT_GV_BOULDER,
|
||||
RHT_GV_BRONZE_BOULDER,
|
||||
RHT_HF_SILVER_BOULDER,
|
||||
RHT_HF_ROCK,
|
||||
RHT_HF_BOULDER,
|
||||
RHT_HF_BRONZE_BOULDER,
|
||||
RHT_KAK_SILVER_BOULDER,
|
||||
RHT_KAK_ROCK,
|
||||
RHT_GY_ROCK,
|
||||
RHT_LA_ROCK,
|
||||
RHT_ZD_ROCK,
|
||||
RHT_ZF_BOULDER,
|
||||
RHT_ZF_SILVER_BOULDER,
|
||||
RHT_ZR_BOULDER,
|
||||
RHT_ZR_ROCK,
|
||||
RHT_DMT_ROCK,
|
||||
RHT_DMT_BOULDER,
|
||||
RHT_DMT_BRONZE_BOULDER,
|
||||
RHT_GC_BOULDER,
|
||||
RHT_GC_SILVER_BOULDER,
|
||||
RHT_GC_BRONZE_BOULDER,
|
||||
RHT_GC_ROCK,
|
||||
RHT_COLOSSUS_SILVER_BOULDER,
|
||||
RHT_COLOSSUS_ROCK,
|
||||
RHT_HC_STORMS_GROTTO_ROCK,
|
||||
RHT_BOTW_BOULDER,
|
||||
RHT_DEKU_BOULDER,
|
||||
RHT_DODONGOS_BOULDER,
|
||||
RHT_JABU_BOULDER,
|
||||
RHT_SPIRIT_TEMPLE_BOULDER,
|
||||
// MAX
|
||||
RHT_MAX,
|
||||
} RandomizerHintTextKey;
|
||||
|
@ -5885,6 +6210,8 @@ typedef enum {
|
|||
RSK_SHUFFLE_FAIRIES,
|
||||
RSK_LOCK_OVERWORLD_DOORS,
|
||||
RSK_SHUFFLE_GRASS,
|
||||
RSK_SHUFFLE_ROCKS,
|
||||
RSK_SHUFFLE_BOULDERS,
|
||||
RSK_MAX
|
||||
} RandomizerSettingKey;
|
||||
|
||||
|
@ -6247,6 +6574,14 @@ typedef enum {
|
|||
RO_SHUFFLE_CRATES_ALL,
|
||||
} RandoOptionShuffleCrates;
|
||||
|
||||
// Shuffle Boulder settings (off, dungeons, overworld, all)
|
||||
typedef enum {
|
||||
RO_SHUFFLE_BOULDERS_OFF,
|
||||
RO_SHUFFLE_BOULDERS_DUNGEONS,
|
||||
RO_SHUFFLE_BOULDERS_OVERWORLD,
|
||||
RO_SHUFFLE_BOULDERS_ALL,
|
||||
} RandoOptionShuffleBoulders;
|
||||
|
||||
// Link's Pocket Settings (dungeon reward, advancement, anything, nothing)
|
||||
typedef enum {
|
||||
RO_LINKS_POCKET_DUNGEON_REWARD,
|
||||
|
@ -6357,6 +6692,11 @@ typedef struct SmallCrateIdentity {
|
|||
RandomizerCheck randomizerCheck;
|
||||
} SmallCrateIdentity;
|
||||
|
||||
typedef struct RockIdentity {
|
||||
RandomizerInf randomizerInf;
|
||||
RandomizerCheck randomizerCheck;
|
||||
} RockIdentity;
|
||||
|
||||
typedef enum {
|
||||
TRACKER_WINDOW_FLOATING,
|
||||
TRACKER_WINDOW_WINDOW,
|
||||
|
|
|
@ -67,6 +67,9 @@ bool showOverworldGrass;
|
|||
bool showDungeonGrass;
|
||||
bool showOverworldCrates;
|
||||
bool showDungeonCrates;
|
||||
bool showRocks;
|
||||
bool showOverworldBoulders;
|
||||
bool showDungeonBoulders;
|
||||
bool showFrogSongRupees;
|
||||
bool showFairies;
|
||||
bool showStartingMapsCompasses;
|
||||
|
@ -1428,6 +1431,27 @@ void LoadSettings() {
|
|||
showDungeonCrates = false;
|
||||
break;
|
||||
}
|
||||
|
||||
showRocks = OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_ROCKS);
|
||||
|
||||
switch (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_BOULDERS)) {
|
||||
case RO_SHUFFLE_BOULDERS_ALL:
|
||||
showOverworldBoulders = true;
|
||||
showDungeonBoulders = true;
|
||||
break;
|
||||
case RO_SHUFFLE_BOULDERS_OVERWORLD:
|
||||
showOverworldBoulders = true;
|
||||
showDungeonBoulders = false;
|
||||
break;
|
||||
case RO_SHUFFLE_BOULDERS_DUNGEONS:
|
||||
showOverworldBoulders = false;
|
||||
showDungeonBoulders = true;
|
||||
break;
|
||||
default:
|
||||
showOverworldBoulders = false;
|
||||
showDungeonBoulders = false;
|
||||
break;
|
||||
}
|
||||
} else { // Vanilla
|
||||
showOverworldTokens = true;
|
||||
showDungeonTokens = true;
|
||||
|
@ -1437,6 +1461,9 @@ void LoadSettings() {
|
|||
showDungeonGrass = false;
|
||||
showOverworldCrates = false;
|
||||
showDungeonCrates = false;
|
||||
showRocks = false;
|
||||
showOverworldBoulders = false;
|
||||
showDungeonBoulders = false;
|
||||
}
|
||||
|
||||
fortressFast = false;
|
||||
|
@ -1527,6 +1554,10 @@ bool IsCheckShuffled(RandomizerCheck rc) {
|
|||
(loc->GetRCType() != RCTYPE_SMALL_CRATE ||
|
||||
(showOverworldCrates && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) ||
|
||||
(showDungeonCrates && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))) &&
|
||||
(loc->GetRCType() != RCTYPE_ROCK || showRocks) &&
|
||||
(loc->GetRCType() != RCTYPE_BOULDER ||
|
||||
(showOverworldBoulders && RandomizerCheckObjects::AreaIsOverworld(loc->GetArea())) ||
|
||||
(showDungeonBoulders && RandomizerCheckObjects::AreaIsDungeon(loc->GetArea()))) &&
|
||||
(loc->GetRCType() != RCTYPE_COW || showCows) &&
|
||||
(loc->GetRCType() != RCTYPE_FISH ||
|
||||
OTRGlobals::Instance->gRandoContext->GetFishsanity()->GetFishLocationIncluded(loc)) &&
|
||||
|
|
|
@ -1529,6 +1529,287 @@ typedef enum {
|
|||
RAND_INF_BOTTOM_OF_THE_WELL_MQ_CELL_SUN_FAIRY,
|
||||
RAND_INF_BOTTOM_OF_THE_WELL_MQ_BASEMENT_SUN_FAIRY,
|
||||
|
||||
RAND_INF_KF_CIRCLE_ROCK_1,
|
||||
RAND_INF_KF_CIRCLE_ROCK_2,
|
||||
RAND_INF_KF_CIRCLE_ROCK_3,
|
||||
RAND_INF_KF_CIRCLE_ROCK_4,
|
||||
RAND_INF_KF_CIRCLE_ROCK_5,
|
||||
RAND_INF_KF_CIRCLE_ROCK_6,
|
||||
RAND_INF_KF_CIRCLE_ROCK_7,
|
||||
RAND_INF_KF_CIRCLE_ROCK_8,
|
||||
RAND_INF_KF_ROCK_BY_SARIAS_HOUSE,
|
||||
RAND_INF_KF_ROCK_BEHIND_SARIAS_HOUSE,
|
||||
RAND_INF_KF_ROCK_BY_MIDOS_HOUSE,
|
||||
RAND_INF_KF_ROCK_BY_KNOW_IT_ALLS_HOUSE,
|
||||
RAND_INF_LW_BOULDER_BY_GORON_CITY,
|
||||
RAND_INF_LW_BOULDER_BY_SACRED_FOREST_MEADOW,
|
||||
RAND_INF_LW_RUPEE_BOULDER,
|
||||
RAND_INF_HC_ROCK_1,
|
||||
RAND_INF_HC_ROCK_2,
|
||||
RAND_INF_HC_ROCK_3,
|
||||
RAND_INF_HC_BOULDER,
|
||||
RAND_INF_OGC_BRONZE_BOULDER_1,
|
||||
RAND_INF_OGC_BRONZE_BOULDER_2,
|
||||
RAND_INF_OGC_BRONZE_BOULDER_3,
|
||||
RAND_INF_OGC_SILVER_BOULDER_1,
|
||||
RAND_INF_OGC_SILVER_BOULDER_2,
|
||||
RAND_INF_OGC_SILVER_BOULDER_3,
|
||||
RAND_INF_OGC_SILVER_BOULDER_4,
|
||||
RAND_INF_DMC_CIRCLE_ROCK_1,
|
||||
RAND_INF_DMC_CIRCLE_ROCK_2,
|
||||
RAND_INF_DMC_CIRCLE_ROCK_3,
|
||||
RAND_INF_DMC_CIRCLE_ROCK_4,
|
||||
RAND_INF_DMC_CIRCLE_ROCK_5,
|
||||
RAND_INF_DMC_CIRCLE_ROCK_6,
|
||||
RAND_INF_DMC_CIRCLE_ROCK_7,
|
||||
RAND_INF_DMC_CIRCLE_ROCK_8,
|
||||
RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_1,
|
||||
RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_2,
|
||||
RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_3,
|
||||
RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_4,
|
||||
RAND_INF_DMC_ROCK_BY_FIRE_TEMPLE_5,
|
||||
RAND_INF_DMC_GOSSIP_ROCK_1,
|
||||
RAND_INF_DMC_GOSSIP_ROCK_2,
|
||||
RAND_INF_DMC_BOULDER_1,
|
||||
RAND_INF_DMC_BOULDER_2,
|
||||
RAND_INF_DMC_BOULDER_3,
|
||||
RAND_INF_DMC_BRONZE_BOULDER_1,
|
||||
RAND_INF_DMC_BRONZE_BOULDER_2,
|
||||
RAND_INF_DMC_BRONZE_BOULDER_3,
|
||||
RAND_INF_DMC_BRONZE_BOULDER_4,
|
||||
RAND_INF_GV_SILVER_BOULDER,
|
||||
RAND_INF_GV_ROCK_1,
|
||||
RAND_INF_GV_ROCK_2,
|
||||
RAND_INF_GV_ROCK_3,
|
||||
RAND_INF_GV_UNDERWATER_ROCK_1,
|
||||
RAND_INF_GV_UNDERWATER_ROCK_2,
|
||||
RAND_INF_GV_UNDERWATER_ROCK_3,
|
||||
RAND_INF_GV_ROCK_ACROSS_BRIDGE_1,
|
||||
RAND_INF_GV_ROCK_ACROSS_BRIDGE_2,
|
||||
RAND_INF_GV_ROCK_ACROSS_BRIDGE_3,
|
||||
RAND_INF_GV_ROCK_ACROSS_BRIDGE_4,
|
||||
RAND_INF_GV_BOULDER_1,
|
||||
RAND_INF_GV_BOULDER_2,
|
||||
RAND_INF_GV_BOULDER_ACROSS_BRIDGE,
|
||||
RAND_INF_GV_BRONZE_BOULDER_1,
|
||||
RAND_INF_GV_BRONZE_BOULDER_2,
|
||||
RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_1,
|
||||
RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_2,
|
||||
RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_3,
|
||||
RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_4,
|
||||
RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_5,
|
||||
RAND_INF_GV_BRONZE_BOULDER_ACROSS_BRIDGE_6,
|
||||
RAND_INF_HF_SILVER_BOULDER,
|
||||
RAND_INF_HF_ROCK_1,
|
||||
RAND_INF_HF_ROCK_2,
|
||||
RAND_INF_HF_ROCK_3,
|
||||
RAND_INF_HF_ROCK_4,
|
||||
RAND_INF_HF_ROCK_5,
|
||||
RAND_INF_HF_ROCK_6,
|
||||
RAND_INF_HF_ROCK_7,
|
||||
RAND_INF_HF_ROCK_8,
|
||||
RAND_INF_HF_BOULDER_NORTH,
|
||||
RAND_INF_HF_BOULDER_BY_MARKET,
|
||||
RAND_INF_HF_BOULDER_SOUTH,
|
||||
RAND_INF_HF_BRONZE_BOULDER_1,
|
||||
RAND_INF_HF_BRONZE_BOULDER_2,
|
||||
RAND_INF_HF_BRONZE_BOULDER_3,
|
||||
RAND_INF_HF_BRONZE_BOULDER_4,
|
||||
RAND_INF_KAK_SILVER_BOULDER,
|
||||
RAND_INF_KAK_ROCK_1,
|
||||
RAND_INF_KAK_ROCK_2,
|
||||
RAND_INF_GY_ROCK,
|
||||
RAND_INF_LA_ROCK,
|
||||
RAND_INF_ZD_CIRCLE_ROCK_1,
|
||||
RAND_INF_ZD_CIRCLE_ROCK_2,
|
||||
RAND_INF_ZD_CIRCLE_ROCK_3,
|
||||
RAND_INF_ZD_CIRCLE_ROCK_4,
|
||||
RAND_INF_ZD_CIRCLE_ROCK_5,
|
||||
RAND_INF_ZD_CIRCLE_ROCK_6,
|
||||
RAND_INF_ZD_CIRCLE_ROCK_7,
|
||||
RAND_INF_ZD_CIRCLE_ROCK_8,
|
||||
RAND_INF_ZF_BOULDER,
|
||||
RAND_INF_ZF_SILVER_BOULDER,
|
||||
RAND_INF_ZF_UNDERGROUND_BOULDER,
|
||||
RAND_INF_ZR_BOULDER_1,
|
||||
RAND_INF_ZR_BOULDER_2,
|
||||
RAND_INF_ZR_BOULDER_3,
|
||||
RAND_INF_ZR_BOULDER_4,
|
||||
RAND_INF_ZR_CIRCLE_ROCK_1,
|
||||
RAND_INF_ZR_CIRCLE_ROCK_2,
|
||||
RAND_INF_ZR_CIRCLE_ROCK_3,
|
||||
RAND_INF_ZR_CIRCLE_ROCK_4,
|
||||
RAND_INF_ZR_CIRCLE_ROCK_5,
|
||||
RAND_INF_ZR_CIRCLE_ROCK_6,
|
||||
RAND_INF_ZR_CIRCLE_ROCK_7,
|
||||
RAND_INF_ZR_CIRCLE_ROCK_8,
|
||||
RAND_INF_ZR_UPPER_CIRCLE_BOULDER,
|
||||
RAND_INF_ZR_UPPER_CIRCLE_ROCK_1,
|
||||
RAND_INF_ZR_UPPER_CIRCLE_ROCK_2,
|
||||
RAND_INF_ZR_UPPER_CIRCLE_ROCK_3,
|
||||
RAND_INF_ZR_UPPER_CIRCLE_ROCK_4,
|
||||
RAND_INF_ZR_UPPER_CIRCLE_ROCK_5,
|
||||
RAND_INF_ZR_UPPER_CIRCLE_ROCK_6,
|
||||
RAND_INF_ZR_UPPER_CIRCLE_ROCK_7,
|
||||
RAND_INF_ZR_UPPER_CIRCLE_ROCK_8,
|
||||
RAND_INF_ZR_ROCK,
|
||||
RAND_INF_ZR_UNDERWATER_ROCK_1,
|
||||
RAND_INF_ZR_UNDERWATER_ROCK_2,
|
||||
RAND_INF_ZR_UNDERWATER_ROCK_3,
|
||||
RAND_INF_ZR_UNDERWATER_ROCK_4,
|
||||
RAND_INF_DMT_ROCK_1,
|
||||
RAND_INF_DMT_ROCK_2,
|
||||
RAND_INF_DMT_ROCK_3,
|
||||
RAND_INF_DMT_ROCK_4,
|
||||
RAND_INF_DMT_ROCK_5,
|
||||
RAND_INF_DMT_SUMMIT_ROCK,
|
||||
RAND_INF_DMT_CIRCLE_ROCK_1,
|
||||
RAND_INF_DMT_CIRCLE_ROCK_2,
|
||||
RAND_INF_DMT_CIRCLE_ROCK_3,
|
||||
RAND_INF_DMT_CIRCLE_ROCK_4,
|
||||
RAND_INF_DMT_CIRCLE_ROCK_5,
|
||||
RAND_INF_DMT_CIRCLE_ROCK_6,
|
||||
RAND_INF_DMT_CIRCLE_ROCK_7,
|
||||
RAND_INF_DMT_CIRCLE_ROCK_8,
|
||||
RAND_INF_DMT_BOULDER_1,
|
||||
RAND_INF_DMT_BOULDER_2,
|
||||
RAND_INF_DMT_BOULDER_3,
|
||||
RAND_INF_DMT_COW_BOULDER,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_1,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_2,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_3,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_4,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_5,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_6,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_7,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_8,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_9,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_10,
|
||||
RAND_INF_DMT_BRONZE_BOULDER_11,
|
||||
RAND_INF_GC_LW_BOULDER_1,
|
||||
RAND_INF_GC_LW_BOULDER_2,
|
||||
RAND_INF_GC_LW_BOULDER_3,
|
||||
RAND_INF_GC_ENTRANCE_BOULDER_1,
|
||||
RAND_INF_GC_ENTRANCE_BOULDER_2,
|
||||
RAND_INF_GC_ENTRANCE_BOULDER_3,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_1,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_2,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_3,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_4,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_5,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_6,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_7,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_8,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_9,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_10,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_11,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_12,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_13,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_14,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_15,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_16,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_17,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_18,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_19,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_20,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_21,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_22,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_23,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_24,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_25,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_26,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_27,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_28,
|
||||
RAND_INF_GC_MAZE_SILVER_BOULDER_29,
|
||||
RAND_INF_GC_MAZE_BOULDER_1,
|
||||
RAND_INF_GC_MAZE_BOULDER_2,
|
||||
RAND_INF_GC_MAZE_BOULDER_3,
|
||||
RAND_INF_GC_MAZE_BOULDER_4,
|
||||
RAND_INF_GC_MAZE_BOULDER_5,
|
||||
RAND_INF_GC_MAZE_BOULDER_6,
|
||||
RAND_INF_GC_MAZE_BOULDER_7,
|
||||
RAND_INF_GC_MAZE_BOULDER_8,
|
||||
RAND_INF_GC_MAZE_BOULDER_9,
|
||||
RAND_INF_GC_MAZE_BOULDER_10,
|
||||
RAND_INF_GC_MAZE_BRONZE_BOULDER_1,
|
||||
RAND_INF_GC_MAZE_BRONZE_BOULDER_2,
|
||||
RAND_INF_GC_MAZE_BRONZE_BOULDER_3,
|
||||
RAND_INF_GC_MAZE_BRONZE_BOULDER_4,
|
||||
RAND_INF_GC_MAZE_BRONZE_BOULDER_5,
|
||||
RAND_INF_GC_MAZE_ROCK,
|
||||
RAND_INF_COLOSSUS_SILVER_BOULDER,
|
||||
RAND_INF_COLOSSUS_ROCK,
|
||||
RAND_INF_COLOSSUS_CIRCLE_1_ROCK_1,
|
||||
RAND_INF_COLOSSUS_CIRCLE_1_ROCK_2,
|
||||
RAND_INF_COLOSSUS_CIRCLE_1_ROCK_3,
|
||||
RAND_INF_COLOSSUS_CIRCLE_1_ROCK_4,
|
||||
RAND_INF_COLOSSUS_CIRCLE_1_ROCK_5,
|
||||
RAND_INF_COLOSSUS_CIRCLE_1_ROCK_6,
|
||||
RAND_INF_COLOSSUS_CIRCLE_1_ROCK_7,
|
||||
RAND_INF_COLOSSUS_CIRCLE_1_ROCK_8,
|
||||
RAND_INF_COLOSSUS_CIRCLE_2_ROCK_1,
|
||||
RAND_INF_COLOSSUS_CIRCLE_2_ROCK_2,
|
||||
RAND_INF_COLOSSUS_CIRCLE_2_ROCK_3,
|
||||
RAND_INF_COLOSSUS_CIRCLE_2_ROCK_4,
|
||||
RAND_INF_COLOSSUS_CIRCLE_2_ROCK_5,
|
||||
RAND_INF_COLOSSUS_CIRCLE_2_ROCK_6,
|
||||
RAND_INF_COLOSSUS_CIRCLE_2_ROCK_7,
|
||||
RAND_INF_COLOSSUS_CIRCLE_2_ROCK_8,
|
||||
RAND_INF_HC_STORMS_GROTTO_ROCK_1,
|
||||
RAND_INF_HC_STORMS_GROTTO_ROCK_2,
|
||||
RAND_INF_HC_STORMS_GROTTO_ROCK_3,
|
||||
RAND_INF_HC_STORMS_GROTTO_ROCK_4,
|
||||
RAND_INF_HC_STORMS_GROTTO_ROCK_5,
|
||||
RAND_INF_HC_STORMS_GROTTO_ROCK_6,
|
||||
RAND_INF_HC_STORMS_GROTTO_ROCK_7,
|
||||
RAND_INF_HC_STORMS_GROTTO_ROCK_8,
|
||||
RAND_INF_BOTW_BOULDER_1,
|
||||
RAND_INF_BOTW_BOULDER_2,
|
||||
RAND_INF_BOTW_BOULDER_3,
|
||||
RAND_INF_BOTW_BOULDER_4,
|
||||
RAND_INF_BOTW_BOULDER_5,
|
||||
RAND_INF_BOTW_BOULDER_6,
|
||||
RAND_INF_DEKU_TREE_MQ_BOULDER_1,
|
||||
RAND_INF_DEKU_TREE_MQ_BOULDER_2,
|
||||
RAND_INF_DEKU_TREE_MQ_BOULDER_3,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_1,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LOBBY_BOULDER_2,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_1,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_2,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_MOUTH_SIDE_BRIDGE_BOULDER_3,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_1,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_RIGHT_SIDE_BOULDER_2,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_1,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_2,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_3,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_4,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_5,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_6,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_7,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_8,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_9,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_10,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_11,
|
||||
RAND_INF_DODONGOS_CAVERN_MQ_LIZALFOS_ROOM_BOULDER_12,
|
||||
RAND_INF_JABU_JABUS_BELLY_MQ_ENTRANCE_BOULDER,
|
||||
RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_1,
|
||||
RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_BOULDER_2,
|
||||
RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_1,
|
||||
RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_2,
|
||||
RAND_INF_JABU_JABUS_BELLY_MQ_HOLES_ROOM_WALL_BOULDER_3,
|
||||
RAND_INF_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_1,
|
||||
RAND_INF_JABU_JABUS_BELLY_MQ_FORKED_CORRIDOR_BOULDER_2,
|
||||
RAND_INF_JABU_JABUS_BELLY_MQ_TAILPASARAN_BOULDER,
|
||||
RAND_INF_JABU_JABUS_BELLY_MQ_TAILPASARAN_WALL_BOULDER,
|
||||
RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_1,
|
||||
RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_2,
|
||||
RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_BOULDER_3,
|
||||
RAND_INF_SPIRIT_TEMPLE_MQ_ENTRANCE_CEILING_BOULDER,
|
||||
RAND_INF_SPIRIT_TEMPLE_MQ_EARLY_ADULT_BOULDER,
|
||||
RAND_INF_BOTW_MQ_BOULDER_1,
|
||||
RAND_INF_BOTW_MQ_BOULDER_2,
|
||||
RAND_INF_BOTW_MQ_BOULDER_3,
|
||||
|
||||
RAND_INF_GUARD_HOUSE_UNLOCKED,
|
||||
RAND_INF_GUARD_HOUSE_KEY_OBTAINED,
|
||||
RAND_INF_MARKET_BAZAAR_UNLOCKED,
|
||||
|
|
|
@ -216,6 +216,8 @@ void Settings::CreateOptions() {
|
|||
OPT_U8(RSK_SHUFFLE_POTS, "Shuffle Pots", {"Off", "Dungeons", "Overworld", "All Pots"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShufflePots"), mOptionDescriptions[RSK_SHUFFLE_POTS], WidgetType::Combobox, RO_SHUFFLE_POTS_OFF);
|
||||
OPT_U8(RSK_SHUFFLE_GRASS, "Shuffle Grass", {"Off", "Dungeons", "Overworld", "All Grass/Bushes"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShuffleGrass"), mOptionDescriptions[RSK_SHUFFLE_GRASS], WidgetType::Combobox, RO_SHUFFLE_GRASS_OFF);
|
||||
OPT_U8(RSK_SHUFFLE_CRATES, "Shuffle Crates", {"Off", "Dungeons", "Overworld", "All Crates"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShuffleCrates"), mOptionDescriptions[RSK_SHUFFLE_CRATES], WidgetType::Combobox, RO_SHUFFLE_CRATES_OFF);
|
||||
OPT_BOOL(RSK_SHUFFLE_ROCKS, "Shuffle Rocks", CVAR_RANDOMIZER_SETTING("ShuffleRocks"), mOptionDescriptions[RSK_SHUFFLE_ROCKS]);
|
||||
OPT_U8(RSK_SHUFFLE_BOULDERS, "Shuffle Boulders", {"Off", "Dungeons", "Overworld", "All Boulders"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShuffleBoulders"), mOptionDescriptions[RSK_SHUFFLE_BOULDERS], WidgetType::Combobox, RO_SHUFFLE_BOULDERS_OFF);
|
||||
OPT_BOOL(RSK_SHUFFLE_FISHING_POLE, "Shuffle Fishing Pole", CVAR_RANDOMIZER_SETTING("ShuffleFishingPole"), mOptionDescriptions[RSK_SHUFFLE_FISHING_POLE]);
|
||||
OPT_U8(RSK_SHUFFLE_MERCHANTS, "Shuffle Merchants", {"Off", "Bean Merchant Only", "All But Beans", "All"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("ShuffleMerchants"), mOptionDescriptions[RSK_SHUFFLE_MERCHANTS], WidgetType::Combobox, RO_SHUFFLE_MERCHANTS_OFF, IMFLAG_NONE);
|
||||
OPT_U8(RSK_MERCHANT_PRICES, "Merchant Prices", {"Vanilla", "Cheap Balanced", "Balanced", "Fixed", "Range", "Set By Wallet"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("MerchantPrices"), mOptionDescriptions[RSK_MERCHANT_PRICES], WidgetType::Combobox, RO_PRICE_VANILLA, false, IMFLAG_NONE);
|
||||
|
@ -1255,6 +1257,8 @@ void Settings::CreateOptions() {
|
|||
&mOptions[RSK_SHUFFLE_COWS],
|
||||
&mOptions[RSK_SHUFFLE_POTS],
|
||||
&mOptions[RSK_SHUFFLE_CRATES],
|
||||
&mOptions[RSK_SHUFFLE_ROCKS],
|
||||
&mOptions[RSK_SHUFFLE_BOULDERS],
|
||||
&mOptions[RSK_SHUFFLE_MERCHANTS],
|
||||
&mOptions[RSK_MERCHANT_PRICES],
|
||||
&mOptions[RSK_MERCHANT_PRICES_FIXED_PRICE],
|
||||
|
|
|
@ -56,6 +56,7 @@ class StaticData {
|
|||
static void RegisterFreestandingLocations();
|
||||
static void RegisterGrassLocations();
|
||||
static void RegisterCrateLocations();
|
||||
static void RegisterRockLocations();
|
||||
static void InitHashMaps();
|
||||
static std::array<std::pair<RandomizerCheck, RandomizerCheck>, 17> randomizerFishingPondFish;
|
||||
static std::unordered_map<int8_t, RandomizerCheck> randomizerGrottoFishMap;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||
#include "soh/OTRGlobals.h"
|
||||
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
||||
|
||||
#include "vt.h"
|
||||
|
||||
|
@ -251,6 +252,10 @@ void EnIshi_SpawnDustLarge(EnIshi* this, PlayState* play) {
|
|||
void EnIshi_DropCollectible(EnIshi* this, PlayState* play) {
|
||||
s16 dropParams;
|
||||
|
||||
if (!GameInteractor_Should(VB_ROCK_DROP_ITEM, true, this)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((this->actor.params & 1) == ROCK_SMALL) {
|
||||
dropParams = (this->actor.params >> 8) & 0xF;
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ typedef struct EnIshi {
|
|||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ EnIshiActionFunc actionFunc;
|
||||
/* 0x0150 */ ColliderCylinder collider;
|
||||
/* */ RockIdentity rockIdentity;
|
||||
} EnIshi; // size = 0x019C
|
||||
|
||||
#endif
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "z_obj_bombiwa.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
|
||||
#include "objects/object_bombiwa/object_bombiwa.h"
|
||||
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
||||
|
||||
#define FLAGS 0
|
||||
|
||||
|
@ -75,7 +76,7 @@ void ObjBombiwa_InitCollision(Actor* thisx, PlayState* play) {
|
|||
void ObjBombiwa_Init(Actor* thisx, PlayState* play) {
|
||||
Actor_ProcessInitChain(thisx, sInitChain);
|
||||
ObjBombiwa_InitCollision(thisx, play);
|
||||
if ((Flags_GetSwitch(play, thisx->params & 0x3F) != 0)) {
|
||||
if (GameInteractor_Should(VB_BOULDER_BREAK_FLAG, Flags_GetSwitch(play, thisx->params & 0x3F), thisx)) {
|
||||
Actor_Kill(thisx);
|
||||
} else {
|
||||
CollisionCheck_SetInfo(&thisx->colChkInfo, NULL, &sColChkInfoInit);
|
||||
|
|
|
@ -9,6 +9,7 @@ struct ObjBombiwa;
|
|||
typedef struct ObjBombiwa {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ ColliderCylinder collider;
|
||||
/* */ RockIdentity rockIdentity;
|
||||
} ObjBombiwa; // size = 0x0198
|
||||
|
||||
#endif
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "z_obj_hamishi.h"
|
||||
#include "objects/gameplay_field_keep/gameplay_field_keep.h"
|
||||
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
||||
|
||||
#define FLAGS 0
|
||||
|
||||
|
@ -150,7 +151,7 @@ void ObjHamishi_Init(Actor* thisx, PlayState* play) {
|
|||
ObjHamishi_InitCollision(&this->actor, play);
|
||||
CollisionCheck_SetInfo(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
|
||||
|
||||
if (Flags_GetSwitch(play, this->actor.params & 0x3F)) {
|
||||
if (GameInteractor_Should(VB_BOULDER_BREAK_FLAG, Flags_GetSwitch(play, this->actor.params & 0x3F), this)) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ typedef struct ObjHamishi {
|
|||
/* 0x01A2 */ s16 shakePosPhase;
|
||||
/* 0x01A4 */ s16 shakeRotPhase;
|
||||
/* 0x01A6 */ s16 hitCount;
|
||||
/* */ RockIdentity rockIdentity;
|
||||
} ObjHamishi; // size = 0x01A8
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue