diff --git a/include/enums.h b/include/enums.h index 02b9f532a..4e573581e 100644 --- a/include/enums.h +++ b/include/enums.h @@ -2426,7 +2426,9 @@ typedef enum actor_e ACTOR_3C9_FURNACE_FUN_PICK_PRICE, ACTOR_3CA_ROCK_TRAPPING_GRUNTY, ACTOR_3CB_UNKNOWN, - ACTOR_3CC_DUMMY_PLAYER_ANCHOR = 0x3CC // Lighthouse [port] network anchor dummy player + ACTOR_3CC_DUMMY_PLAYER_ANCHOR = 0x3CC, // Lighthouse [port] network anchor dummy player + ACTOR_3CD_CUSTOM_COLLECTIBLE = 0x3CD, // Lighthouse [port] rando custom collectible + } ActorID; enum bundle_e { @@ -5969,6 +5971,7 @@ enum marker_e{ MARKER_29E_BIGBUTT_KNOCKED_DOWN, MARKER_29F_DUMMY_PLAYER_ANCHOR, + MARKER_300_CUSTOM_COLLECTIBLE, }; enum hitbox_e{ diff --git a/include/functions.h b/include/functions.h index 8222da5b3..23fff6185 100644 --- a/include/functions.h +++ b/include/functions.h @@ -890,7 +890,7 @@ void chTumblar_copyPosition(s32 arg0, Struct68s *arg1, f32 arg2[3]); void chTumblar_checkMMMChecksums(void); // --- MMM/minigame_organ.c --- -int func_80389CE8(s32 arg0, s32 arg1, s32 arg2); +int func_80389CE8(Struct5Fs *arg0, Struct68s *arg1, s32 arg2); s32 func_80389BBC(void); void MMM_func_80389CD8(); void code3420_handleOrganGame(s32 arg0, s32 arg1); diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL b/port/objects/object_archipelago_item/gArchipelagoItemDL new file mode 100644 index 000000000..33e22a85f --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_0 b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_0 new file mode 100644 index 000000000..42e911411 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_0 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_1 b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_1 new file mode 100644 index 000000000..259b27c4e --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_1 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_2 b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_2 new file mode 100644 index 000000000..dc680a34a --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_2 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_3 b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_3 new file mode 100644 index 000000000..a134560fb --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_3 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_4 b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_4 new file mode 100644 index 000000000..65134138f --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_4 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_5 b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_5 new file mode 100644 index 000000000..3b458b736 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_5 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_6 b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_6 new file mode 100644 index 000000000..b21f2c4b7 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_tri_6 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_0 b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_0 new file mode 100644 index 000000000..9f4483ec6 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_0 @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_1 b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_1 new file mode 100644 index 000000000..9339e42f0 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_1 @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_2 b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_2 new file mode 100644 index 000000000..e1122533a --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_2 @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_3 b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_3 new file mode 100644 index 000000000..29c025d0f --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_3 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_4 b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_4 new file mode 100644 index 000000000..c3c88918b --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_4 @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_5 b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_5 new file mode 100644 index 000000000..70117ba12 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_5 @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_6 b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_6 new file mode 100644 index 000000000..70117ba12 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoItemDL_vtx_6 @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL b/port/objects/object_archipelago_item/gArchipelagoJunkDL new file mode 100644 index 000000000..4beef5eb3 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_0 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_0 new file mode 100644 index 000000000..f2137f135 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_0 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_1 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_1 new file mode 100644 index 000000000..ae92327e4 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_1 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_2 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_2 new file mode 100644 index 000000000..bbbc96439 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_2 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_3 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_3 new file mode 100644 index 000000000..6d11e6b1c --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_3 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_4 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_4 new file mode 100644 index 000000000..827df8c0d --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_4 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_5 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_5 new file mode 100644 index 000000000..6714bf7a4 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_5 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_6 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_6 new file mode 100644 index 000000000..3980be483 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_tri_6 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_0 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_0 new file mode 100644 index 000000000..9f4483ec6 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_0 @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_1 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_1 new file mode 100644 index 000000000..9339e42f0 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_1 @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_2 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_2 new file mode 100644 index 000000000..e1122533a --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_2 @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_3 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_3 new file mode 100644 index 000000000..29c025d0f --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_3 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_4 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_4 new file mode 100644 index 000000000..c3c88918b --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_4 @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_5 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_5 new file mode 100644 index 000000000..70117ba12 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_5 @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_6 b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_6 new file mode 100644 index 000000000..70117ba12 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoJunkDL_vtx_6 @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL new file mode 100644 index 000000000..ed07b28c9 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_0 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_0 new file mode 100644 index 000000000..1a679a463 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_0 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_1 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_1 new file mode 100644 index 000000000..f49d299ef --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_1 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_2 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_2 new file mode 100644 index 000000000..ea82a9347 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_2 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_3 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_3 new file mode 100644 index 000000000..8cfca6524 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_3 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_4 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_4 new file mode 100644 index 000000000..639c5aea4 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_4 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_5 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_5 new file mode 100644 index 000000000..99a4852cb --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_5 @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_6 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_6 new file mode 100644 index 000000000..e7ab8546c --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_6 @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_7 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_7 new file mode 100644 index 000000000..0f50ed430 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_tri_7 @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_0 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_0 new file mode 100644 index 000000000..9f4483ec6 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_0 @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_1 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_1 new file mode 100644 index 000000000..9339e42f0 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_1 @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_2 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_2 new file mode 100644 index 000000000..e1122533a --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_2 @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_3 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_3 new file mode 100644 index 000000000..29c025d0f --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_3 @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_4 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_4 new file mode 100644 index 000000000..c3c88918b --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_4 @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_5 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_5 new file mode 100644 index 000000000..70117ba12 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_5 @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_6 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_6 new file mode 100644 index 000000000..b76b5b312 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_6 @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_7 b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_7 new file mode 100644 index 000000000..b76b5b312 --- /dev/null +++ b/port/objects/object_archipelago_item/gArchipelagoProgressiveDL_vtx_7 @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_black b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_black new file mode 100644 index 000000000..7ef279db5 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_black @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_blue b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_blue new file mode 100644 index 000000000..770d70e48 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_blue @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_green b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_green new file mode 100644 index 000000000..9a57f3f8c --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_green @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_orange b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_orange new file mode 100644 index 000000000..c3da3eff1 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_orange @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_outline b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_outline new file mode 100644 index 000000000..d39d1af92 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_outline @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_pink b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_pink new file mode 100644 index 000000000..e3b896b02 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_pink @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_purple b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_purple new file mode 100644 index 000000000..64f362026 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_purple @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_red b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_red new file mode 100644 index 000000000..8cc9fec5e --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_red @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_yellow b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_yellow new file mode 100644 index 000000000..1b0d4be92 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoItemDL_yellow @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_black_junk b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_black_junk new file mode 100644 index 000000000..7ef279db5 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_black_junk @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_blue_junk b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_blue_junk new file mode 100644 index 000000000..b8f17f3bf --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_blue_junk @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_green_junk b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_green_junk new file mode 100644 index 000000000..05312bc76 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_green_junk @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_blue b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_blue new file mode 100644 index 000000000..a55a1459a --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_blue @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_green b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_green new file mode 100644 index 000000000..20d667aa3 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_green @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_orange b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_orange new file mode 100644 index 000000000..ad2a5ac38 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_orange @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_outline b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_outline new file mode 100644 index 000000000..d39d1af92 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_outline @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_pink b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_pink new file mode 100644 index 000000000..a3d546483 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_pink @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_red b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_red new file mode 100644 index 000000000..78236fa28 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_red @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_yellow b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_yellow new file mode 100644 index 000000000..8def121b7 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_grey_yellow @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_orange_junk b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_orange_junk new file mode 100644 index 000000000..17867ed9c --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_orange_junk @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_purple_junk b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_purple_junk new file mode 100644 index 000000000..7a880f3e9 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_purple_junk @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_red_junk b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_red_junk new file mode 100644 index 000000000..20b763643 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_red_junk @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_yellow_junk b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_yellow_junk new file mode 100644 index 000000000..7e88e53d7 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoJunkDL_yellow_junk @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_arrow_gold_progressive b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_arrow_gold_progressive new file mode 100644 index 000000000..fa76abb08 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_arrow_gold_progressive @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_black_progressive b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_black_progressive new file mode 100644 index 000000000..7ef279db5 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_black_progressive @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_blue_progressive b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_blue_progressive new file mode 100644 index 000000000..770d70e48 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_blue_progressive @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_green_progressive b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_green_progressive new file mode 100644 index 000000000..9a57f3f8c --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_green_progressive @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_orange_progressive b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_orange_progressive new file mode 100644 index 000000000..c3da3eff1 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_orange_progressive @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_arrow b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_arrow new file mode 100644 index 000000000..c41b05db9 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_arrow @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_blue b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_blue new file mode 100644 index 000000000..c9073d0cf --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_blue @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_green b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_green new file mode 100644 index 000000000..84e26fe7a --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_green @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_orange b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_orange new file mode 100644 index 000000000..076acfe28 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_orange @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_outline b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_outline new file mode 100644 index 000000000..d39d1af92 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_outline @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_pink b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_pink new file mode 100644 index 000000000..e3b896b02 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_pink @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_red b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_red new file mode 100644 index 000000000..930fb41e6 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_red @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_yellow b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_yellow new file mode 100644 index 000000000..383d9441c --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_progressive_yellow @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_purple_progressive b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_purple_progressive new file mode 100644 index 000000000..64f362026 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_purple_progressive @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_red_progressive b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_red_progressive new file mode 100644 index 000000000..8cc9fec5e --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_red_progressive @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_yellow_progressive b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_yellow_progressive new file mode 100644 index 000000000..1b0d4be92 --- /dev/null +++ b/port/objects/object_archipelago_item/mat_gArchipelagoProgressiveDL_yellow_progressive @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/port/objects/object_archipelago_item/model.xml b/port/objects/object_archipelago_item/model.xml new file mode 100644 index 000000000..e69de29bb diff --git a/src/MMM/minigame_organ.c b/src/MMM/minigame_organ.c index 7333e0340..0b2d0a091 100644 --- a/src/MMM/minigame_organ.c +++ b/src/MMM/minigame_organ.c @@ -280,7 +280,9 @@ void MMM_func_80389CD8() {} void func_80389CE0() {} -int func_80389CE8(s32 arg0, s32 arg1, s32 arg2){ +// [port] pointer truncation +//int func_80389CE8(s32 arg0, s32 arg1, s32 arg2){ +int func_80389CE8(Struct5Fs *arg0, Struct68s *arg1, s32 arg2){ if(Me.state == 3){ if(*Me.unk10 == arg2){ Me.unk0--; @@ -296,7 +298,8 @@ int func_80389CE8(s32 arg0, s32 arg1, s32 arg2){ return 1; }//L80389D6C else{ - func_8028F55C(0xD, func_80351794((Struct68s *)(intptr_t)arg1)); +// func_8028F55C(0xD, func_80351794((Struct68s *)(intptr_t)arg1)); + func_8028F55C(0xD, func_80351794(arg1)); return 2; } } diff --git a/src/MMM/organ_tiles.c b/src/MMM/organ_tiles.c index f9b94b5c5..42d4b2836 100644 --- a/src/MMM/organ_tiles.c +++ b/src/MMM/organ_tiles.c @@ -137,7 +137,8 @@ void func_8038B790(Struct5Fs *arg0, Struct68s *arg1, f32 arg2) { func_80351814(arg1, sp2C); if (func_803518C0(arg1) != 0) { - temp_v0 = func_80389CE8((s32)(intptr_t)arg0, (s32)(intptr_t)arg1, arg0->unk8); +// temp_v0 = func_80389CE8((s32)(intptr_t)arg0, (s32)(intptr_t)arg1, arg0->unk8); + temp_v0 = func_80389CE8(arg0, arg1, arg0->unk8); if (temp_v0 == 0) { func_8038B6FC(arg0, arg1); } diff --git a/src/core2/actor_cubepropsystem.c b/src/core2/actor_cubepropsystem.c index 7fef90277..4f778b6f4 100644 --- a/src/core2/actor_cubepropsystem.c +++ b/src/core2/actor_cubepropsystem.c @@ -1813,7 +1813,7 @@ BKSpriteDisplayData *func_80330E54(ActorMarker *marker, BKSprite **sprite_ptr) { return 0; } model_cache_ptr = &modelCache[marker_getActor(marker)->modelCacheIndex]; - if (model_cache_ptr->unk4 == 0) { + if (model_cache_ptr->unk4 == 00 || marker->id == MARKER_300_CUSTOM_COLLECTIBLE) { model_cache_ptr->unk4 = codeB3A80_getSprite(marker->modelId, &model_cache_ptr->unk8); } model_cache_ptr->unk10 = globalTimer_getTime(); @@ -2231,6 +2231,9 @@ f32 func_80331E64(ActorMarker *marker) { if (marker->modelId == 0) { return 0.0f; } + if (marker->id == MARKER_300_CUSTOM_COLLECTIBLE) { + return 150.0f; + } sp24 = func_80331D20(func_80330F50(marker)); marker->unk38[1] = (s16) (sp24 / 2); if (marker->unk3E_0) { diff --git a/src/core2/ba/marker.c b/src/core2/ba/marker.c index 82519a10e..81c8e406b 100644 --- a/src/core2/ba/marker.c +++ b/src/core2/ba/marker.c @@ -843,6 +843,9 @@ void __baMarker_resolveCollision(Prop *other_prop){ if (plyr_hitbox_type == HITBOX_1_BEAK_BUSTER) obj_collision_type = MARKER_COLLISION_FUNC_1; break; + case MARKER_300_CUSTOM_COLLECTIBLE: + marker_callCollisionFunc(playerMarker, marker, plyr_collision_type); + break; }//L8028D034 if (baiFrame_getState() == 3) { plyr_collision_type = MARKER_COLLISION_FUNC_0; diff --git a/src/core2/fx/effect_jiggy_spawn.c b/src/core2/fx/effect_jiggy_spawn.c index f50f5fa4f..7a83e79f8 100644 --- a/src/core2/fx/effect_jiggy_spawn.c +++ b/src/core2/fx/effect_jiggy_spawn.c @@ -7,6 +7,9 @@ void func_80347B10(Struct81s *arg0){ Actor *actor; actor = bundle_spawn_f32(BUNDLE_10__JIGGY, arg0->position); + if (actor == NULL) { + return; + } actor->unk54 = 3.0f; func_803333DC(arg0, actor); } diff --git a/src/core2/scorequeue/lifescore.c b/src/core2/scorequeue/lifescore.c index 0dbf6df22..840c840e4 100644 --- a/src/core2/scorequeue/lifescore.c +++ b/src/core2/scorequeue/lifescore.c @@ -35,7 +35,14 @@ struct8s D_80381ED0; /* .code */ s32 func_802FFDE0(s32 arg0){ - return D_8036A260[arg0/4]; +// [port] Off by one +// return D_8036A260[arg0/4]; + s32 idx = arg0/4; + s32 last = (s32)(sizeof(D_8036A260)/sizeof(D_8036A260[0])) - 1; + if (idx > last) { + idx = last; + } + return D_8036A260[idx]; } s32 func_802FFE04(void){ diff --git a/src/core2/sprite/rendertex.c b/src/core2/sprite/rendertex.c index 29e33f5bf..df54d589f 100644 --- a/src/core2/sprite/rendertex.c +++ b/src/core2/sprite/rendertex.c @@ -75,6 +75,9 @@ s32 spriteRender1PrimMode; void func_80347DF0(Struct81s *arg0){ Actor *actor; actor = bundle_spawn_f32(arg0->actor_id, arg0->position); + if (actor == NULL) { + return; + } if (!EventSystem_Should(VB_BUNDLE_SPAWN_SET_ACTOR_DATA, false, actor)) { actor->unk54 = 3.0f; func_803333DC(arg0, actor); diff --git a/src/port/Enhancements/Backports/TooieJiggyDance.cpp b/src/port/Enhancements/Backports/TooieJiggyDance.cpp index cc5510808..3c9da21e8 100644 --- a/src/port/Enhancements/Backports/TooieJiggyDance.cpp +++ b/src/port/Enhancements/Backports/TooieJiggyDance.cpp @@ -8,6 +8,7 @@ #include "port/UI/cvar_prefixes.h" #include "port/Enhancements/Events/Hooks/Events.h" #include "port/ShipInit.hpp" +#include "port/Rando/Rando.h" #include "functions.h" extern "C" { @@ -113,7 +114,7 @@ void emitSparkle(f32 x, f32 y, f32 z) { } } -void spawnOrbit() { +extern "C" void spawnOrbit() { clearOrbit(); f32 banjo[3]; @@ -273,7 +274,7 @@ void RegisterJiggyCollect_Init() { clearOrbit(); const bool skip = CVarGetInteger(CVAR_SKIP_JIGGY_DANCE, 0); const bool tooie = CVarGetInteger(CVAR_TOOIE_JIGGY_DANCE, 0) || sJiggyDanceForced; - const bool playOrbit = tooie && !skip; + const bool playOrbit = (tooie && !skip) || IS_RANDO; COND_VB_SHOULD(VB_PLAY_JIGGY_DANCE, EVENT_PRIORITY_NORMAL, skip || tooie, { *should = false; }); @@ -288,4 +289,4 @@ void TooieJiggyDance_ForceEnable() { } static RegisterShipInitFunc initJiggyCollect(RegisterJiggyCollect_Init, - { CVAR_TOOIE_JIGGY_DANCE, CVAR_SKIP_JIGGY_DANCE }); + { CVAR_TOOIE_JIGGY_DANCE, CVAR_SKIP_JIGGY_DANCE, "IS_RANDO" }); diff --git a/src/port/Enhancements/Cheats/Cheats.cpp b/src/port/Enhancements/Cheats/Cheats.cpp index 178e3faa8..e547ee054 100644 --- a/src/port/Enhancements/Cheats/Cheats.cpp +++ b/src/port/Enhancements/Cheats/Cheats.cpp @@ -215,11 +215,19 @@ static bool isWishyWashyUnlocked() { return (baanim_getActiveBottlesBonusMask() & BAANIM_WISHYWASHY) != 0; } +static bool jiggyCollectInFlight() { + return baflag_isTrue(BA_FLAG_7_TOUCHING_JIGGY) || bsjig_inJiggyJig((enum bs_e)bs_getState()); +} + // Transformation cycling with D-pad Up/Down // D-pad Up: Cycle forward through transformations (Banjo -> Termite -> ... -> Bee -> [Wishy] -> Banjo) // D-pad Down: Cycle backward through transformations (Banjo -> [Wishy] -> Bee -> ... -> Termite -> Banjo) void RegisterCycleTransform_Init() { COND_HOOK(GameFrameUpdate, EVENT_PRIORITY_NORMAL, CVarGetInteger(CVAR_CYCLE_TRANSFORM, 0), [](IEvent* event) { + if (jiggyCollectInFlight()) { + return; + } + s32 currentTransform = (s32)player_getTransformation(); // D-pad Up: Cycle forward through transformations diff --git a/src/port/Enhancements/Retention/JinjoRetention.cpp b/src/port/Enhancements/Retention/JinjoRetention.cpp index d820e8510..e280ed9e5 100644 --- a/src/port/Enhancements/Retention/JinjoRetention.cpp +++ b/src/port/Enhancements/Retention/JinjoRetention.cpp @@ -58,12 +58,12 @@ static bool levelInRange(int32_t level) { return level > 0 && level < JINJO_RETENTION_LEVEL_SLOTS; } -static u8 collectedBits(int32_t level) { +uint8_t collectedBits(int32_t level) { JinjoRetentionSaveData* s = store(); return (s != nullptr && levelInRange(level)) ? s->collected[level] : 0; } -static void setCollectedBits(int32_t level, u8 bits) { +void setCollectedBits(int32_t level, u8 bits) { JinjoRetentionSaveData* s = store(); if (s != nullptr && levelInRange(level)) { s->collected[level] = bits; @@ -87,7 +87,7 @@ static u8 jinjoBitFromMarker(int32_t markerId) { } } -static u8 jinjoBitFromActor(int32_t actorId) { +uint8_t jinjoBitFromActor(int32_t actorId) { switch (actorId) { case ACTOR_60_JINJO_BLUE: return 1 << 0; diff --git a/src/port/Enhancements/Retention/Retention.h b/src/port/Enhancements/Retention/Retention.h index 140dbbc7b..63a19352a 100644 --- a/src/port/Enhancements/Retention/Retention.h +++ b/src/port/Enhancements/Retention/Retention.h @@ -62,6 +62,10 @@ int32_t port_carriedSync_consumeRemoteDespawn(int32_t kind, void* marker); int32_t port_carriedSync_collectedCount(int32_t kind); +void setCollectedBits(int32_t level, u8 bits); +uint8_t jinjoBitFromActor(int32_t actorId); +uint8_t collectedBits(int32_t level); + #ifdef __cplusplus } diff --git a/src/port/Network/Anchor/HookHandlers.cpp b/src/port/Network/Anchor/HookHandlers.cpp index 58f1c8921..6963775f7 100644 --- a/src/port/Network/Anchor/HookHandlers.cpp +++ b/src/port/Network/Anchor/HookHandlers.cpp @@ -517,24 +517,6 @@ void Anchor::RegisterHooks() { anchor->SendPacket_SetCheckStatus((s32)ev->randoCheckId, (s32)ev->map); }); - COND_HOOK(SetRandoInfFlag, EVENT_PRIORITY_NORMAL, isConnected, [](IEvent* event) { - auto* anchor = Anchor::GetInstance(); - if (!anchor->IsSaveLoaded() || !anchor->roomState.syncItemsAndFlags) { - return; - } - auto ev = reinterpret_cast(event); - if (!ev->flagState) { - return; - } - switch (ev->flagId) { - case RANDO_INF_BRIDGE_REPAIRED_DIALOG_COMPLETE: - anchor->SendPacket_SetFlag((u8)ANCHOR_FLAGSPACE_RANDO_INF, (s16)ev->flagId); - break; - default: - break; - } - }); - COND_HOOK(OnJiggySpawned, EVENT_PRIORITY_NORMAL, isConnected, [](IEvent* event) { auto* anchor = Anchor::GetInstance(); if (!anchor->IsSaveLoaded() || !anchor->roomState.syncItemsAndFlags) { diff --git a/src/port/Network/Anchor/Packets/SetCheckStatus.cpp b/src/port/Network/Anchor/Packets/SetCheckStatus.cpp index 38c992f12..74e9a4698 100644 --- a/src/port/Network/Anchor/Packets/SetCheckStatus.cpp +++ b/src/port/Network/Anchor/Packets/SetCheckStatus.cpp @@ -40,7 +40,7 @@ void Anchor::SendPacket_SetCheckStatus(s32 rc, s32 map) { // notification, or re-broadcast). void Anchor::AdoptRemoteCheck(s32 rcRaw) { RandoCheckId rc = (RandoCheckId)rcRaw; - if (rc <= RC_UNKNOWN || rc >= RC_MAX || RANDO_SAVE_CHECKS[rc].obtained) { + if (rc <= RC_UNKNOWN || rc >= RC_MAX || RANDO_SAVE_CHECKS[rc].eligible) { return; } if (CustomObject::CheckSpawnedIdList(rc)) { @@ -63,7 +63,7 @@ void Anchor::HandlePacket_SetCheckStatus(nlohmann::json& payload) { if (rc <= RC_UNKNOWN || rc >= RC_MAX) { return; } - if (RANDO_SAVE_CHECKS[rc].obtained) { + if (RANDO_SAVE_CHECKS[rc].eligible) { return; } diff --git a/src/port/Network/Anchor/Packets/UpdateTeamState.cpp b/src/port/Network/Anchor/Packets/UpdateTeamState.cpp index f2e568bd4..380097a40 100644 --- a/src/port/Network/Anchor/Packets/UpdateTeamState.cpp +++ b/src/port/Network/Anchor/Packets/UpdateTeamState.cpp @@ -81,7 +81,7 @@ void Anchor::SendPacket_UpdateTeamState() { if (IS_RANDO) { std::vector checks(RC_MAX, 0); for (s32 rc = RC_UNKNOWN + 1; rc < RC_MAX; rc++) { - checks[rc] = RANDO_SAVE_CHECKS[rc].obtained ? 1 : 0; + checks[rc] = RANDO_SAVE_CHECKS[rc].eligible ? 1 : 0; } payload["state"]["randoChecks"] = checks; diff --git a/src/port/Rando/CheckTracker/CheckTracker.cpp b/src/port/Rando/CheckTracker/CheckTracker.cpp index 4ca2af711..e650188ca 100644 --- a/src/port/Rando/CheckTracker/CheckTracker.cpp +++ b/src/port/Rando/CheckTracker/CheckTracker.cpp @@ -76,10 +76,13 @@ std::vector> defaultCheckColor { CVAR_NAME_ITEM_COLOR, DEFAULT_ITEM_COLOR, "Obtained Item" }, }; +std::map checkNames; + Rando::StaticData::RandoLogicData reachableRegions[RR_MAX]; Rando::StaticData::RandoLogicData reachableEvents[RA_MAX]; Rando::StaticData::RandoLogicData reachableChecks[RC_MAX]; +bool isCheckTrackerInitialized = false; bool checkTrackerPopoutState = false; ImVec4 checkTrackerBG = ImVec4{ 0, 0, 0, 0.5f }; ImVec4 collectedChecksBG = ImVec4{ 0, 0, 0, 0.5f }; @@ -100,7 +103,7 @@ std::string GetTotalCheckCount() { uint32_t collected = 0; uint32_t totalShuffled = 0; for (auto& entry : Rando::Logic::shuffledPool) { - if (entry.obtained || entry.skipped) { + if (entry.eligible || entry.skipped) { collected++; } if (entry.isShuffled) { @@ -113,6 +116,13 @@ std::string GetTotalCheckCount() { return totalChecks; } +void CreateCheckStringList() { + checkNames.clear(); + for (auto& entry : Rando::Logic::shuffledPool) { + checkNames.insert({ entry.randoCheckId, Ship_ConvertEnumToReadableName(entry.name) }); + } +} + void UpdateWorldCheckCount(level_e world) { worldCollected = 0; worldTotalShuffled = 0; @@ -121,7 +131,7 @@ void UpdateWorldCheckCount(level_e world) { if (Rando::StaticData::Checks[entry.randoCheckId].worldId != world) { continue; } - if (entry.obtained || entry.skipped) { + if (entry.eligible || entry.skipped) { worldCollected++; } if (entry.isShuffled) { @@ -165,6 +175,11 @@ void DrawCheckTrackerList() { return; } + if (!isCheckTrackerInitialized) { + CreateCheckStringList(); + isCheckTrackerInitialized = true; + } + if (CVAR_SHOW_COLLECTED_CHECKS && !CVAR_SHOW_SEPARATE_COLLECTED_CHECKS) { DrawCheckTrackerCount(); } @@ -204,7 +219,7 @@ void DrawCheckTrackerList() { continue; } - if (CVAR_HIDE_COLLECTED && entry.obtained) { + if (CVAR_HIDE_COLLECTED && entry.eligible) { continue; } @@ -212,24 +227,24 @@ void DrawCheckTrackerList() { continue; } - ImVec4 checkTextColor = entry.obtained ? VecFromRGBA8(CVAR_COLLECTED_COLOR) + ImVec4 checkTextColor = entry.eligible ? VecFromRGBA8(CVAR_COLLECTED_COLOR) : UIWidgets::ColorValues.at(UIWidgets::Colors::White); - ImVec4 itemTextColor = entry.obtained ? VecFromRGBA8(CVAR_ITEM_COLOR) + ImVec4 itemTextColor = entry.eligible ? VecFromRGBA8(CVAR_ITEM_COLOR) : UIWidgets::ColorValues.at(UIWidgets::Colors::Indigo); if (entry.skipped) { checkTextColor = itemTextColor = VecFromRGBA8(CVAR_SKIPPED_COLOR); } - if (!entry.obtained && CVAR_SHOW_LOGIC) { + if (!entry.eligible && CVAR_SHOW_LOGIC) { checkTextColor = Rando::Logic::CanAccessCheck(entry.randoCheckId) ? UIWidgets::ColorValues.at(UIWidgets::Colors::White) : VecFromRGBA8(CVAR_LOGIC_COLOR); } ImGui::BeginGroup(); - ImGui::TextColored(checkTextColor, Ship_ConvertEnumToReadableName(entry.name).c_str()); - if (entry.obtained) { + ImGui::TextColored(checkTextColor, checkNames.at(entry.randoCheckId).c_str()); + if (entry.eligible) { ImGui::SameLine(); RandoItemId randoItemId = Rando::Logic::GetShuffledObject(entry.randoCheckId).randoItemId; const std::string& randoItemName = diff --git a/src/port/Rando/CheckTracker/CheckTracker.h b/src/port/Rando/CheckTracker/CheckTracker.h index fcc5d558f..543d5cbb6 100644 --- a/src/port/Rando/CheckTracker/CheckTracker.h +++ b/src/port/Rando/CheckTracker/CheckTracker.h @@ -4,6 +4,8 @@ #include "port/Rando/Rando.h" #include +extern bool isCheckTrackerInitialized; + namespace Rando { namespace CheckTracker { diff --git a/src/port/Rando/CustomCollectible/CustomCollectible.cpp b/src/port/Rando/CustomCollectible/CustomCollectible.cpp new file mode 100644 index 000000000..5178333cc --- /dev/null +++ b/src/port/Rando/CustomCollectible/CustomCollectible.cpp @@ -0,0 +1,243 @@ +#include "CustomCollectible.h" +#include "CustomCollectibleDrawCustom.h" +#include + +#include +#include "port/ShipInit.hpp" +#include + +extern "C" { +#include "functions.h" +#include "actor.h" +void __chJinjo_802CDC9C(Actor* thisx, s16 arg1); +Actor* func_802D94B4(ActorMarker* marker, Gfx** gfx, Mtx** mtx, Vtx** vtx); +Actor* chSnsEgg_draw(ActorMarker* marker, Gfx** gfx, Mtx** mtx, Vtx** vtx); +} + +static std::queue propQueue; + +std::unordered_map customCollectibleDrawInfo = { + { ACTOR_52_BLUE_EGG, { ASSET_36D_SPRITE_BLUE_EGG, CCT_GENERIC_SPRITE } }, + { ACTOR_47_EMPTY_HONEYCOMB, { ASSET_361_MODEL_EMPTY_HONEYCOMB, CCT_GENERIC_MODEL } }, + { ACTOR_49_EXTRA_LIFE, { ASSET_36E_MODEL_EXTRA_LIFE, CCT_GENERIC_SPRITE } }, + { ACTOR_50_HONEYCOMB, { ASSET_363_MODEL_HONEYCOMB, CCT_GENERIC_MODEL } }, + { ACTOR_46_JIGGY, { ASSET_35F_MODEL_JIGGY, CCT_GENERIC_MODEL } }, + { ACTOR_60_JINJO_BLUE, { ASSET_3C0_MODEL_JINJO_BLUE, CCT_JINJO } }, + { ACTOR_62_JINJO_GREEN, { ASSET_3C2_MODEL_JINJO_GREEN, CCT_JINJO } }, + { ACTOR_5F_JINJO_ORANGE, { ASSET_3BC_MODEL_JINJO_ORANGE, CCT_JINJO } }, + { ACTOR_61_JINJO_PINK, { ASSET_3C1_MODEL_JINJO_PINK, CCT_JINJO } }, + { ACTOR_5E_JINJO_YELLOW, { ASSET_3BB_MODEL_JINJO_YELLOW, CCT_JINJO } }, + { ACTOR_12C_MOLEHILL, { ASSET_387_MODEL_BOTTLES, CCT_MOLEHILL } }, + { ACTOR_2D_MUMBO_TOKEN, { ASSET_41A_SPRITE_MUMBO_TOKEN, CCT_GENERIC_SPRITE } }, + { ACTOR_51_MUSIC_NOTE, { ASSET_6D6_SPRITE_MUSIC_NOTE, CCT_GENERIC_SPRITE } }, + { ACTOR_25E_SNS_EGG, { ASSET_50D_MODEL_SNS_EGG, CCT_VANILLA_SNS_EGG } }, + { ACTOR_25D_ICE_KEY, { ASSET_50C_MODEL_ICE_KEY, CCT_GENERIC_MODEL } }, + { ACTOR_3CD_CUSTOM_COLLECTIBLE, { ASSET_35F_MODEL_JIGGY, CCT_CUSTOM_MODEL } }, +}; + +ActorAnimationInfo moleAnimation[] = { + { ASSET_13B_ANIM_BOTTLES_IDLE, 7.0f }, +}; + +ActorAnimationInfo chJinjoAnimation[] = { + { ASSET_2F_ANIM_JINJO_HELP, 1.5f }, +}; + +ActorInfo customActorInfo = { MARKER_300_CUSTOM_COLLECTIBLE, + ACTOR_3CD_CUSTOM_COLLECTIBLE, + ASSET_0_NONE, + 0, + NULL, + CustomCollectible_Update, + NULL, + NULL, + 0, + 0, + 0.8f, + 0 }; + +void CustomCollectible_Update(Actor* actor) { + ActorLocal_CustomCollectible* customLocal = (ActorLocal_CustomCollectible*)&actor->local; + + if (!actor->initialized) { + actor->initialized = true; + actor->marker->collidable = true; + + actor->scale = CustomCollectible::GetScale(customLocal->itemType); + } + + if (customLocal->itemType == RITYPE_MOLEHILL || customLocal->itemType == RITYPE_JINJO) { + CustomCollectible::FacePlayer(actor); + } else { + actor->yaw += 5.0f; + } + + // Sparkles + if (customCollectibleDrawInfo[customLocal->actorId].drawType != CCT_GENERIC_SPRITE) { + for (int i = 0; i < 4; i++) { + if (randf() < 0.03) { + commonParticle_add(actor->marker, i + 5, func_80329904); + commonParticle_new((common_particle_e)8, actor->marker->unk14_21); + } + } + } + + // Allows shadows + if (customLocal->itemType == RITYPE_AP_ITEM) { + actor->unk124_6 = 1; + actor->marker->unk14_21 = 1; + } +} + +f32 CustomCollectible::GetScale(RandoItemType itemType) { + switch (itemType) { + case RITYPE_MUSIC_NOTE: + case RITYPE_SNS_EGG: + return 0.42857143f; + case RITYPE_EMPTY_HONEYCOMB: + case RITYPE_MOLEHILL: + return 0.8f; + default: + return 1.0f; + } +} + +void CustomCollectible::FacePlayer(Actor* actor) { + // Copied from source code inside jinjo.c + f32 sp7C[3]; + f32 sp6C; + f32* sp30 = actor->position; + func_8028E964(sp7C); + func_80257F18(sp30, sp7C, &sp6C); + s16 sp64 = (actor->yaw * 182.04444); + s16 sp66 = (s32)(sp6C * 182.04444); + sp66 = sp64 - sp66; + s32 sp60 = func_8028AED4(sp30, 55.0f); + __chJinjo_802CDC9C(actor, sp66); +} + +Actor* CustomCollectible::AttachCustomVariables(RandoCheckId randoCheckId, Actor* customCollectible) { + ActorLocal_CustomCollectible* customLocal = (ActorLocal_CustomCollectible*)&customCollectible->local; + + RandoItemId randoItemId = RANDO_SAVE_CHECKS[randoCheckId].randoItemId; + + customLocal->randoCheckId = randoCheckId; + customLocal->randoItemId = randoItemId; + customLocal->actorId = (actor_e)Rando::StaticData::Items[randoItemId].actorId; + customLocal->itemType = Rando::StaticData::Items[randoItemId].randoItemType; + + return customCollectible; +} + +Actor* CustomCollectible::Spawn(int32_t position[3], RandoCheckId randoCheckId) { + int32_t spawnPosition[3] = { position[0], position[1], position[2] }; + + int32_t flags = ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_21; + + RandoItemId randoItemId = RANDO_SAVE_CHECKS[randoCheckId].randoItemId; + RandoItemType itemType = Rando::StaticData::Items[randoItemId].randoItemType; + + // actor_new stores the ActorInfo* permanently, so it must outlive Spawn() + static std::unordered_map sActorInfoCache; + ActorInfo& collectibleInfo = sActorInfoCache[randoItemId]; + collectibleInfo = CustomCollectible::GetActorAndDrawInfo(randoItemId); + + // Spawn actor + Actor* customCollectible = actor_new(spawnPosition, 0, &collectibleInfo, flags); + if (itemType == RITYPE_SNS_EGG) { + customCollectible->actorTypeSpecificField = CustomCollectible::GetSNSEggColor(randoItemId); + } + customCollectible->marker->collisionFunc = CustomCollectible::OnCollect; + customCollectible = CustomCollectible::AttachCustomVariables(randoCheckId, customCollectible); + + return customCollectible; +} + +uint32_t CustomCollectible::GetSNSEggColor(RandoItemId randoItemId) { + switch (randoItemId) { + case RI_STOP_N_SWOP_EGG_BLUE: + return (uint32_t)SNS_ITEM_EGG_BLUE; + case RI_STOP_N_SWOP_EGG_CYAN: + return (uint32_t)SNS_ITEM_EGG_CYAN; + case RI_STOP_N_SWOP_EGG_GREEN: + return (uint32_t)SNS_ITEM_EGG_GREEN; + case RI_STOP_N_SWOP_EGG_PINK: + return (uint32_t)SNS_ITEM_EGG_PINK; + case RI_STOP_N_SWOP_EGG_RED: + return (uint32_t)SNS_ITEM_EGG_RED; + case RI_STOP_N_SWOP_EGG_YELLOW: + return (uint32_t)SNS_ITEM_EGG_YELLOW; + default: + return (uint32_t)SNS_ITEM_EGG_CYAN; + } +} + +ActorInfo CustomCollectible::GetActorAndDrawInfo(RandoItemId randoItemId) { + ActorInfo collectibleInfo = customActorInfo; + + actor_e actorId = (actor_e)Rando::StaticData::Items[randoItemId].actorId; + auto drawInfo = customCollectibleDrawInfo[actorId]; + + collectibleInfo.modelId = drawInfo.drawModel; + + switch (drawInfo.drawType) { + case CCT_GENERIC_MODEL: + collectibleInfo.draw_func = actor_draw; + break; + case CCT_GENERIC_SPRITE: + collectibleInfo.draw_func = fxTouchSparkle_draw; + collectibleInfo.shadow_scale = 0.0f; + break; + case CCT_JINJO: + collectibleInfo.draw_func = actor_draw; + collectibleInfo.animations = chJinjoAnimation; + break; + case CCT_MOLEHILL: + collectibleInfo.draw_func = func_802D94B4; + collectibleInfo.animations = moleAnimation; + break; + case CCT_VANILLA_SNS_EGG: + collectibleInfo.draw_func = chSnsEgg_draw; + break; + case CCT_CUSTOM_MODEL: + collectibleInfo.draw_func = CustomCollectible_DrawCustomModel; + break; + default: + break; + } + return collectibleInfo; +} + +void CustomCollectible::OnCollect(struct actorMarker_s* self, struct actorMarker_s* other) { + Actor* actor = marker_getActor(self); + ActorLocal_CustomCollectible* customLocal = (ActorLocal_CustomCollectible*)&actor->local; + fxSparkle_honeycomb(&self->propPtr->x); + ItemQueue::AddCheck(customLocal->randoCheckId); + marker_despawn(self); +} + +// When regular props are spawned in BK, the game isn't fully set up yet to spawn +// actors. So we delay prop spawns until the game's ready to spawn actors. +void CustomCollectible::QueueProp(int32_t position[3], RandoCheckId randoCheckId) { + QueuedProp queuedProp; + queuedProp.position[0] = position[0]; + queuedProp.position[1] = position[1]; + queuedProp.position[2] = position[2]; + queuedProp.randoCheckId = randoCheckId; + propQueue.push(queuedProp); +} + +void CustomCollectible::ProcessPropQueue() { + while (propQueue.size() > 0) { + QueuedProp prop = propQueue.front(); + Actor* actor = CustomCollectible::Spawn(prop.position, prop.randoCheckId); + propQueue.pop(); + } +} + +void RegisterCustomCollectible() { + COND_HOOK(OnActorSpawn, EVENT_PRIORITY_NORMAL, IS_RANDO, + [](IEvent* event) { CustomCollectible::ProcessPropQueue(); }); +} + +static RegisterShipInitFunc initFunc(RegisterCustomCollectible, { "IS_RANDO" }); diff --git a/src/port/Rando/CustomCollectible/CustomCollectible.h b/src/port/Rando/CustomCollectible/CustomCollectible.h new file mode 100644 index 000000000..8b2f06bdb --- /dev/null +++ b/src/port/Rando/CustomCollectible/CustomCollectible.h @@ -0,0 +1,46 @@ +#pragma once +#include "port/Rando/ItemQueue.h" +#include "prop.h" + +typedef struct { + RandoCheckId randoCheckId; + RandoItemId randoItemId; + actor_e actorId; + RandoItemType itemType; +} ActorLocal_CustomCollectible; + +enum CustomCollectibleDrawTypes { + CCT_GENERIC_MODEL, + CCT_GENERIC_SPRITE, + CCT_JINJO, + CCT_MOLEHILL, + CCT_VANILLA_SNS_EGG, + CCT_CUSTOM_MODEL, +}; + +typedef struct { + asset_e drawModel; + CustomCollectibleDrawTypes drawType; +} CustomCollectibleDrawInfo; + +typedef struct { + s32 position[3]; + RandoCheckId randoCheckId; +} QueuedProp; + +void CustomCollectible_Update(Actor* actor); + +class CustomCollectible { +private: + static Actor* AttachCustomVariables(RandoCheckId randoItemId, Actor* customCollectible); + static void OnCollect(struct actorMarker_s* self, struct actorMarker_s* other); + static ActorInfo GetActorAndDrawInfo(RandoItemId randoItemId); + static uint32_t GetSNSEggColor(RandoItemId randoItemId); + +public: + static Actor* Spawn(int32_t position[3], RandoCheckId randoCheckId); + static f32 GetScale(RandoItemType itemType); + static void FacePlayer(Actor* actor); + static void QueueProp(int32_t position[3], RandoCheckId randoCheckId); + static void ProcessPropQueue(); +}; diff --git a/src/port/Rando/CustomCollectible/CustomCollectibleDrawCustom.cpp b/src/port/Rando/CustomCollectible/CustomCollectibleDrawCustom.cpp new file mode 100644 index 000000000..80ae1ed27 --- /dev/null +++ b/src/port/Rando/CustomCollectible/CustomCollectibleDrawCustom.cpp @@ -0,0 +1,108 @@ +// Custom item model rendering. +// +// The models live in lighthouse.o2r as XML libultraship resources under +// objects/object_X_item. +// They are untextured prim-color geometry, so they draw with a single matrix +// push and no material setup beyond what the display lists carry. + +// Include order matters here. +// 1. ResourceHelpers.h (via ship/Context.h -> spdlog) parses the Windows headers, +// which must happen before any decomp header: Events.h drags in prop.h -> +// structs.h -> bool.h, whose function-like BOOL(x) macro corrupts the +// `typedef BOOL (CALLBACK* ...)` declarations in the Windows SDK. +// 2. bridge.h/Events.h bring in the events bridge/json templates, which must be +// seen with C++ linkage before functions.h re-includes them inside the +// extern "C" block below. +#include +#include "port/ResourceHelpers.h" +#include "port/Enhancements/Events/Hooks/Events.h" +#include "port/Interpolation/FrameInterpolation.h" + +#include "CustomCollectibleDrawCustom.h" +#include "CustomCollectible.h" + +extern "C" { +#include +#include "macros.h" +#include "prop.h" +#include "functions.h" +#include "variables.h" +#include "core1/viewport.h" +#include "core1/mlmtx.h" +} + +static const char* sCustomModelPaths[] = { + "objects/object_archipelago_item/gArchipelagoItemDL", + "objects/object_archipelago_item/gArchipelagoJunkDL", + "objects/object_archipelago_item/gArchipelagoProgressiveDL", +}; + +// The models are authored at OoT world scale, which is roughly 10x too large +// for BK. Baked into every draw so callers treat scale 1.0 as "natural size". +static const f32 sCustomModelBaseScale = 0.04f; + +// BK never uploads RSP lights (its models bake shading into vertex colors), but +// these materials enable G_LIGHTING, so without our own light setup the shade +// input is garbage and the model renders black. Neutral white key light from +// the upper-front-right plus a mid ambient. +static Lights1 sCustomModelLights = gdSPDefLights1(110, 110, 110, 255, 255, 255, 40, 40, 40); + +// Pin the resources so the cached Gfx pointers stay valid across frames. +static std::shared_ptr sModelResources[ARRAY_COUNT(sCustomModelPaths)]; +static Gfx* sModelDLs[ARRAY_COUNT(sCustomModelPaths)]; + +static Gfx* CustomCollectible_GetDL(CustomItemModel model) { + if (model < 0 || model >= (s32)ARRAY_COUNT(sCustomModelPaths)) { + return nullptr; + } + if (sModelDLs[model] == nullptr) { + sModelResources[model] = GetResourceByName(sCustomModelPaths[model]); + if (sModelResources[model] == nullptr) { + return nullptr; + } + sModelDLs[model] = ResourceMgr_LoadGfxByName(sCustomModelPaths[model]); + } + return sModelDLs[model]; +} + +Actor* CustomCollectible_DrawCustomModel(ActorMarker* marker, Gfx** gfx, Mtx** mtx, Vtx** vtx) { + Actor* actor = marker_getActor(marker); + ActorLocal_CustomCollectible* customLocal = (ActorLocal_CustomCollectible*)&actor->local; + CustomItemModel model; + + switch (customLocal->randoItemId) { + case RI_AP_ITEM_PROGRESSION: + model = ARCHIPELAGO_MODEL_PROGRESSIVE; + break; + default: + break; + } + + Gfx* dl = CustomCollectible_GetDL(model); + if (dl == nullptr) { + return actor; + } + + f32 camera_position[3]; + viewport_getPosition_vec3f(camera_position); + + // The mlMtx calls below are recorded for frame interpolation; the scope key + // pairs this draw's matrix across ticks. Keyed by model, so two instances + // of the same model drawn in the same frame would need instance-keyed + // scopes instead. + FrameInterpolation_RecordOpenChild("custom_item", (uintptr_t)model); + f32 rotation[3] = { actor->pitch, actor->yaw, actor->roll }; + f32 position[3] = { actor->position[0], actor->position[1] + 50, actor->position[2] }; + // The modelview translation is camera-relative, matching modelRender_draw. + mlMtxIdent(); + func_80252AF0(camera_position, position, rotation, actor->scale * sCustomModelBaseScale, NULL); + mlMtxApply(*mtx); + gSPMatrix((*gfx)++, (*mtx)++, G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPSetLights1((*gfx)++, sCustomModelLights); + gSPDisplayList((*gfx)++, dl); + gSPPopMatrix((*gfx)++, G_MTX_MODELVIEW); + + FrameInterpolation_RecordCloseChild(); + + return actor; +} diff --git a/src/port/Rando/CustomCollectible/CustomCollectibleDrawCustom.h b/src/port/Rando/CustomCollectible/CustomCollectibleDrawCustom.h new file mode 100644 index 000000000..ce87b41bf --- /dev/null +++ b/src/port/Rando/CustomCollectible/CustomCollectibleDrawCustom.h @@ -0,0 +1,36 @@ +#ifndef PORT_ARCHIPELAGO_ITEM_H +#define PORT_ARCHIPELAGO_ITEM_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +// Forward declarations (tag structs from prop.h) so this header stays free of +// the decomp includes — including prop.h here would drag in bool.h, whose +// function-like BOOL() macro corrupts the Windows SDK headers in C++ TUs. +struct actorMarker_s; +struct actor_s; + +typedef enum CustomItemModel { + ARCHIPELAGO_MODEL_NONE = -1, // resolver sentinel: keep the vanilla model + ARCHIPELAGO_MODEL_ITEM, + ARCHIPELAGO_MODEL_JUNK, + ARCHIPELAGO_MODEL_PROGRESSIVE, +} CustomItemModel; + +// Draws an Archipelago item model at a world position. Must be called from a +// draw context that owns the display list and matrix pools (an actor draw +// callback, a world/player draw event hook, cutscene draw code, etc.). +// rotation is pitch/yaw/roll in degrees and may be NULL; scale is a relative +// multiplier where 1.0 = natural in-world size (the OoT-scale source models are +// shrunk to BK proportions internally). +Actor* CustomCollectible_DrawCustomModel(ActorMarker* marker, Gfx** gfx, Mtx** mtx, Vtx** vtx); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/port/Rando/CustomObject/CustomObject.cpp b/src/port/Rando/CustomObject/CustomObject.cpp index c635e879e..beeaa989a 100644 --- a/src/port/Rando/CustomObject/CustomObject.cpp +++ b/src/port/Rando/CustomObject/CustomObject.cpp @@ -46,6 +46,7 @@ extern ActorInfo chJiggy; extern ActorInfo chEmptyHoneycomb; extern ActorInfo chMumboToken; extern ActorInfo sumusicNote; +extern ActorInfo chExtraLife; extern ActorInfo chHoneycomb; extern ActorInfo chBlueEgg; @@ -70,7 +71,8 @@ bool shouldRemoveEX = false; std::map> actorInfoMap = { { ACTOR_2D_MUMBO_TOKEN, { chMumboToken, ACTOR_FLAG_UNKNOWN_6 } }, { ACTOR_46_JIGGY, { chJiggy, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_7 | ACTOR_FLAG_UNKNOWN_21 } }, - { ACTOR_47_EMPTY_HONEYCOMB, { chEmptyHoneycomb, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_21 } }, + { ACTOR_47_EMPTY_HONEYCOMB, { chEmptyHoneycomb, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_21 } }, + { ACTOR_49_EXTRA_LIFE, { chExtraLife, ACTOR_FLAG_UNKNOWN_21 } }, { ACTOR_51_MUSIC_NOTE, { sumusicNote, ACTOR_FLAG_UNKNOWN_21 } }, { ACTOR_5E_JINJO_YELLOW, { chJinjoYellow, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8 } }, { ACTOR_5F_JINJO_ORANGE, { chJinjoOrange, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8 } }, @@ -126,30 +128,31 @@ void CustomObject::RemoveSpawnedIdFromList(RandoCheckId randoCheckId) { } Actor* CustomObject::SetCustomActorParametersEX(RandoCheckId randoCheckId, Actor* customActor) { - RandoSaveCheck shuffledObject = Rando::Logic::GetShuffledObject(randoCheckId); + RandoSaveCheck randoSaveCheck = RANDO_SAVE_CHECKS[randoCheckId]; customActor->marker->randoCheckId = randoCheckId; - switch (shuffledObject.randoItemId) { - case RI_EMPTY_HONEYCOMB: + RandoItemType itemType = Rando::StaticData::Items[randoSaveCheck.randoItemId].randoItemType; + switch (itemType) { + case RITYPE_EMPTY_HONEYCOMB: ActorLocal_EmptyHoneycomb* honeycombLocal; honeycombLocal = (ActorLocal_EmptyHoneycomb*)&customActor->local; honeycombLocal->uid = (honeycomb_e)Rando::Logic::GetShuffledObject(randoCheckId).randoCollectionId; break; - case RI_JIGGY: + case RITYPE_JIGGY: ActorLocal_Jiggy* jiggyLocal; jiggyLocal = (ActorLocal_Jiggy*)&customActor->local; - jiggyLocal->index = shuffledObject.randoCollectionId; + jiggyLocal->index = randoSaveCheck.randoCollectionId; break; - case RI_MUMBO_TOKEN: + case RITYPE_MUMBO_TOKEN: ActorLocal_MumboToken* tokenLocal; tokenLocal = (ActorLocal_MumboToken*)&customActor->local; tokenLocal->uid = (mumbotoken_e)Rando::Logic::GetShuffledObject(randoCheckId).randoCollectionId; break; - case RI_STOP_N_SWOP_EGG: - case RI_STOP_N_SWOP_KEY: - customActor->actorTypeSpecificField = shuffledObject.randoCollectionId; + case RITYPE_SNS_EGG: + case RITYPE_SNS_KEY: + customActor->actorTypeSpecificField = randoSaveCheck.randoCollectionId; customActor->scale = 0.5f; - if (shuffledObject.randoItemId == RI_STOP_N_SWOP_KEY) { + if (itemType == RITYPE_SNS_KEY) { customActor->position_y += 50.0f; } break; @@ -203,8 +206,8 @@ void CustomObject::FlushRandoSpawnQueue() { continue; } - actor_e randoActorId = (actor_e)Rando::StaticData::Items[randoSaveCheck.randoItemId].actorId; - if (randoSaveCheck.obtained) { + actor_e randoActorId = Rando::StaticData::GetActorIdByRandoItemId(randoSaveCheck.randoItemId); + if (randoSaveCheck.eligible) { randoActorId = GetRandomJunkActorId(randoSaveCheck); } @@ -217,7 +220,7 @@ void CustomObject::FlushRandoSpawnQueue() { &actorInfoMap.at(randoActorId).first, actorInfoMap.at(randoActorId).second); - if (customActor != NULL && randoSaveCheck.obtained && + if (customActor != NULL && randoSaveCheck.eligible && RANDO_SAVE_OPTIONS[RO_SPAWN_JUNK].optionValue == RO_GENERIC_ON) { customActor->marker->unk14_21 = true; customActor->scale = 1.0f; @@ -251,7 +254,7 @@ Actor* CustomObject::ShouldCreateCustomActorEX(RandoCheckId randoCheckId, int32_ return NULL; } - if (randoSaveCheck.obtained) { + if (randoSaveCheck.eligible) { if (refActor != nullptr) { randoActorId = (actor_e)refActor->modelCacheIndex; } else { @@ -272,8 +275,8 @@ Actor* CustomObject::ShouldCreateCustomActorEX(RandoCheckId randoCheckId, int32_ } void CustomObject::ResolveCustomActorCollisionEX(RandoCheckId randoCheckId) { - RandoSaveCheck shuffledObject = Rando::Logic::GetShuffledObject(randoCheckId); - if (shuffledObject.randoCheckId == RC_UNKNOWN) { + RandoSaveCheck randoSaveCheck = RANDO_SAVE_CHECKS[randoCheckId]; + if (randoSaveCheck.randoCheckId == RC_UNKNOWN) { return; } @@ -286,26 +289,23 @@ void CustomObject::ResolveCustomActorCollisionEX(RandoCheckId randoCheckId) { spawnPosition[1] = (int32_t)playerPosF[1]; spawnPosition[2] = (int32_t)playerPosF[2]; - switch (shuffledObject.randoItemId) { - case RI_JIGGY: + Rando::StaticData::RandoStaticItem randoItem = Rando::StaticData::Items[randoSaveCheck.randoItemId]; + RandoItemType itemType = randoItem.randoItemType; + int32_t currentLevel = map_getLevel(gsworld_getMap()); + + switch (itemType) { + case RITYPE_JIGGY: if (CVarGetInteger(CVAR_ENHANCEMENT("Cutscenes.SkipJiggyDance"), 0)) { fxSparkle_musicNote(sparklePos); } break; - case RI_JINJO_BLUE: - case RI_JINJO_GREEN: - case RI_JINJO_ORANGE: - case RI_JINJO_PINK: - case RI_JINJO_YELLOW: - if (Rando::StaticData::Checks[shuffledObject.shuffledCheckId].worldId == map_getLevel(gsworld_getMap())) { - int32_t jinjoMarkerId = - GetJinjoActorMarkerId((actor_e)Rando::StaticData::Items[shuffledObject.randoItemId].actorId); + case RITYPE_JINJO: + if (randoItem.worldId == currentLevel) { + int32_t jinjoMarkerId = GetJinjoActorMarkerId((actor_e)randoItem.actorId); item_adjustByDiffWithHud(ITEM_12_JINJOS, (1 << ((jinjoMarkerId + 6) & 0x1F))); } else { - if (Rando::Logic::ShouldSpawnJinjoJiggy( - Rando::StaticData::Checks[shuffledObject.shuffledCheckId].worldId)) { - RandoCheckId jiggyCheckId = Rando::StaticData::GetJinjoJiggyCheckByLevelId( - Rando::StaticData::Checks[shuffledObject.shuffledCheckId].worldId); + if (Rando::Logic::ShouldSpawnJinjoJiggy(randoItem.worldId)) { + RandoCheckId jiggyCheckId = Rando::StaticData::GetJinjoJiggyCheckByLevelId(randoItem.worldId); if (jiggyCheckId != RC_UNKNOWN) { Actor* customActor = ShouldCreateCustomActorEX(jiggyCheckId, spawnPosition, false); @@ -316,9 +316,9 @@ void CustomObject::ResolveCustomActorCollisionEX(RandoCheckId randoCheckId) { } } break; - case RI_MUSIC_NOTE: - D_80385FF0[Rando::StaticData::Checks[shuffledObject.shuffledCheckId].worldId]++; - if (Rando::StaticData::Checks[shuffledObject.shuffledCheckId].worldId == map_getLevel(gsworld_getMap())) { + case RITYPE_MUSIC_NOTE: + D_80385FF0[randoItem.worldId]++; + if (randoItem.worldId == currentLevel) { item_set(ITEM_C_NOTE, D_80385FF0[map_getLevel(gsworld_getMap())]); } @@ -326,8 +326,8 @@ void CustomObject::ResolveCustomActorCollisionEX(RandoCheckId randoCheckId) { fxSparkle_musicNote(sparklePos); coMusicPlayer_playMusic(COMUSIC_9_NOTE_COLLECTED, 16000); break; - case RI_STOP_N_SWOP_EGG: - case RI_STOP_N_SWOP_KEY: + case RITYPE_SNS_EGG: + case RITYPE_SNS_KEY: if (Rando::Logic::GetTotalSnsItemsCollected() >= 7) { gcparade_beginFinalParade(); } @@ -339,10 +339,10 @@ void CustomObject::ResolveCustomActorCollisionEX(RandoCheckId randoCheckId) { void CustomObject::CheckObtainedEX(RandoCheckId randoCheckId, bool isInit) { for (auto& pool : Rando::Logic::shuffledPool) { - if (pool.randoCheckId == randoCheckId && !pool.obtained) { - pool.obtained = true; + if (pool.randoCheckId == randoCheckId && !pool.eligible) { + pool.eligible = true; shouldRemoveEX = true; - RANDO_SAVE_CHECKS[pool.randoCheckId].obtained = true; + RANDO_SAVE_CHECKS[pool.randoCheckId].eligible = true; CustomObject::RemoveSpawnedIdFromList(randoCheckId); if (isInit) { CustomObject::ResolveCustomActorCollisionEX(randoCheckId); @@ -365,10 +365,11 @@ void CustomObject::ObjectCollectedEX(Prop* prop) { CustomObject::CheckObtainedEX((RandoCheckId)prop->actorProp.marker->randoCheckId); if (shouldRemoveEX) { - CustomObject::ResolveCustomActorCollisionEX((RandoCheckId)prop->actorProp.marker->randoCheckId); + RandoSaveCheck randoSaveCheck = RANDO_SAVE_CHECKS[(RandoCheckId)prop->actorProp.marker->randoCheckId]; + + CustomObject::ResolveCustomActorCollisionEX(randoSaveCheck.randoCheckId); - if (Rando::Logic::GetShuffledObject((RandoCheckId)prop->actorProp.marker->randoCheckId).randoItemId == - RI_MUSIC_NOTE) { + if (Rando::StaticData::GetActorIdByRandoItemId(randoSaveCheck.randoItemId) == ACTOR_51_MUSIC_NOTE) { marker_despawn(prop->actorProp.marker); } } diff --git a/src/port/Rando/CustomObject/CustomObjectSettings.cpp b/src/port/Rando/CustomObject/CustomObjectSettings.cpp index 0bb5fdb32..aefddc5d3 100644 --- a/src/port/Rando/CustomObject/CustomObjectSettings.cpp +++ b/src/port/Rando/CustomObject/CustomObjectSettings.cpp @@ -143,7 +143,9 @@ void ApplyCustomActorPhysics(RandoCheckId randoCheckId, Actor* actor, bool isJin BundlePhysics physicsData; if ((randoCheckId >= RC_MM_NOTE_HUT_BUNDLE_1 && randoCheckId <= RC_MM_NOTE_HUT_BUNDLE_5) || - randoCheckId == RC_MM_JINJO_GREEN || randoCheckId == RC_MM_JIGGY_HUTS) { + randoCheckId == RC_MM_JINJO_GREEN || randoCheckId == RC_MM_JIGGY_HUTS || + (randoCheckId >= RC_MM_BLUE_EGG_HUT_BUNDLE_1 && randoCheckId <= RC_MM_BLUE_EGG_HUT_BUNDLE_5) || + randoCheckId == RC_MM_EXTRA_LIFE_HUT) { physicsData = GetPhysicsByCheckId(RC_MM_NOTE_HUT_BUNDLE_1); } else { physicsData = isJinjoJiggy ? jinjoJiggySpawnPhysics : GetPhysicsByCheckId(randoCheckId); diff --git a/src/port/Rando/ItemQueue.cpp b/src/port/Rando/ItemQueue.cpp new file mode 100644 index 000000000..8b2571fe7 --- /dev/null +++ b/src/port/Rando/ItemQueue.cpp @@ -0,0 +1,344 @@ +#include "ItemQueue.h" + +#include +#include +#include + +#include "port/UI/Notification.h" +#include "port/UI/UIWidgets.hpp" +#include +#include "port/ShipInit.hpp" +#include "port/Rando/Logic/Logic.h" +#include "actor.h" +#include "port/Enhancements/Retention/Retention.h" + +extern "C" { +#include "functions.h" +extern u8 sHoneycombScore[3]; +extern struct { + u8 D_803832C0[0xD]; + u8 D_803832CD[0xD]; +} jiggyscore; +#define MUMBO_TOKEN_COUNT 126 +#define MUMBOSCORE_SIZE (((MUMBO_TOKEN_COUNT - 1 + 7) & ~7) / 8) +extern u8 sMumboTokenScore[MUMBOSCORE_SIZE]; +extern u8 D_80385FF0[0xE]; + +extern ActorInfo chJinjoBlue; +extern ActorInfo chJinjoGreen; +extern ActorInfo chJinjoYellow; +extern ActorInfo chJinjoPink; +extern ActorInfo chJinjoOrange; +extern void spawnOrbit(); +} + +constexpr u8 kAllJinjos = 0x1F; // all five color bits collected + +#define CVAR_NAME_SHOW_COLLISION_NOTIFICATIONS "gRandoSettings.RandoNotifications" +#define CVAR_SHOW_COLLISION_NOTIFICATIONS CVarGetInteger(CVAR_NAME_SHOW_COLLISION_NOTIFICATIONS, 0) + +#define JIGGY_ID_MULTIPLIER(levelId) (1 + (10 * (levelId - 1))) +#define HONEYCOMB_ID_MULTIPLIER(levelId) (1 + (2 * (levelId - 1))) + +static std::queue itemQueue; + +std::unordered_map itemColors = { + { ACTOR_1_UNKNOWN, UIWidgets::Colors::Brown }, { ACTOR_52_BLUE_EGG, UIWidgets::Colors::Cyan }, + { ACTOR_47_EMPTY_HONEYCOMB, UIWidgets::Colors::Yellow }, { ACTOR_49_EXTRA_LIFE, UIWidgets::Colors::Yellow }, + { ACTOR_50_HONEYCOMB, UIWidgets::Colors::Yellow }, { ACTOR_46_JIGGY, UIWidgets::Colors::Yellow }, + { ACTOR_60_JINJO_BLUE, UIWidgets::Colors::SkyBlue }, { ACTOR_62_JINJO_GREEN, UIWidgets::Colors::Green }, + { ACTOR_5F_JINJO_ORANGE, UIWidgets::Colors::Orange }, { ACTOR_61_JINJO_PINK, UIWidgets::Colors::Pink }, + { ACTOR_5E_JINJO_YELLOW, UIWidgets::Colors::Yellow }, { ACTOR_12C_MOLEHILL, UIWidgets::Colors::Cyan }, + { ACTOR_2D_MUMBO_TOKEN, UIWidgets::Colors::Gray }, { ACTOR_51_MUSIC_NOTE, UIWidgets::Colors::Yellow }, + { ACTOR_25E_SNS_EGG, UIWidgets::Colors::Pink }, { ACTOR_25D_ICE_KEY, UIWidgets::Colors::White }, +}; + +std::unordered_map snsColors = { + { RI_STOP_N_SWOP_EGG_YELLOW, UIWidgets::Colors::Yellow }, { RI_STOP_N_SWOP_EGG_RED, UIWidgets::Colors::Red }, + { RI_STOP_N_SWOP_EGG_GREEN, UIWidgets::Colors::Green }, { RI_STOP_N_SWOP_EGG_BLUE, UIWidgets::Colors::Blue }, + { RI_STOP_N_SWOP_EGG_PINK, UIWidgets::Colors::Pink }, { RI_STOP_N_SWOP_EGG_CYAN, UIWidgets::Colors::Cyan }, + { RI_STOP_N_SWOP_ICE_KEY, UIWidgets::Colors::White }, +}; + +std::unordered_map jinjoJiggyChecks = { + { LEVEL_1_MUMBOS_MOUNTAIN, RC_MM_JIGGY_JINJO }, { LEVEL_2_TREASURE_TROVE_COVE, RC_TTC_JIGGY_JINJO }, + { LEVEL_3_CLANKERS_CAVERN, RC_CC_JIGGY_JINJO }, { LEVEL_4_BUBBLEGLOOP_SWAMP, RC_BGS_JIGGY_JINJO }, + { LEVEL_5_FREEZEEZY_PEAK, RC_FP_JIGGY_JINJO }, { LEVEL_7_GOBIS_VALLEY, RC_GV_JIGGY_JINJO }, + { LEVEL_8_CLICK_CLOCK_WOOD, RC_CCW_JIGGY_JINJO }, { LEVEL_9_RUSTY_BUCKET_BAY, RC_RBB_JIGGY_JINJO }, + { LEVEL_A_MAD_MONSTER_MANSION, RC_MMM_JIGGY_JINJO }, +}; + +void ItemQueue::Process() { + if (itemQueue.size() < 1) { + return; + } + + RandoCheckId randoCheckId = itemQueue.front(); + + // Grant item + RandoSaveCheck randoSaveCheck = RANDO_SAVE_CHECKS[randoCheckId]; + if (!randoSaveCheck.received) { + ItemQueue::GiveItem(randoSaveCheck.randoItemId); + ItemQueue::SendNotification(randoSaveCheck.randoItemId); + Rando::StaticData::ModifyRandoInfFlagState(randoCheckId); + // RANDO_SAVE_CHECKS[randoCheckId].received = true; + } + + itemQueue.pop(); +} + +void ItemQueue::GiveItem(RandoItemId randoItemId) { + RandoItemType itemType = Rando::StaticData::Items[randoItemId].randoItemType; + actor_e actorId = (actor_e)Rando::StaticData::Items[randoItemId].actorId; + int16_t worldId = Rando::StaticData::Items[randoItemId].worldId; + uint16_t combId; + uint16_t maxHoneycombs; + uint32_t jiggyId; + ActorInfo* actorInfo; + int32_t playerPosition[3]; + Actor* customActor; + uint8_t collectedJinjos; + + switch (itemType) { + case RITYPE_BLUE_EGG: + coMusicPlayer_playMusic(COMUSIC_C_EGG_COLLECTED, 32000); + item_inc(ITEM_D_EGGS); + break; + case RITYPE_EMPTY_HONEYCOMB: + combId = HONEYCOMB_ID_MULTIPLIER(worldId); + maxHoneycombs = worldId == LEVEL_B_SPIRAL_MOUNTAIN ? 6 : 2; + if (worldId > LEVEL_6_LAIR) { + combId = HONEYCOMB_ID_MULTIPLIER(worldId - 1); + } + for (int i = 0; i < (maxHoneycombs); i++) { + if ((sHoneycombScore[((combId + i) - 1) / 8] & (1 << ((combId + i) & 7))) == 0) { + honeycombscore_set((honeycomb_e)(combId + i), 1); + break; + } + } + coMusicPlayer_playMusic(COMUSIC_17_EMPTY_HONEYCOMB_COLLECTED, 28000); + item_inc(ITEM_13_EMPTY_HONEYCOMB); + if (!(item_getCount(ITEM_13_EMPTY_HONEYCOMB) < 6)) { + gcpausemenu_80314AC8(0); + } + break; + case RITYPE_EXTRA_LIFE: + coMusicPlayer_playMusic(COMUSIC_15_EXTRA_LIFE_COLLECTED, 0x7FFF); + item_inc(ITEM_16_LIFE); + break; + case RITYPE_HONEYCOMB: + coMusicPlayer_playMusic(COMUSIC_16_HONEYCOMB_COLLECTED, 28000); + item_inc(ITEM_14_HEALTH); + break; + case RITYPE_JIGGY: + jiggyId = JIGGY_ID_MULTIPLIER(worldId); + for (int32_t i = jiggyId; i <= (jiggyId + 9); i++) { + if ((jiggyscore.D_803832C0[(i - 1) / 8] & (1 << (i & 7))) == 0) { + jiggyscore_setCollected(i, 1); + break; + } + } + coMusicPlayer_playMusic(COMUSIC_D_JINGLE_JIGGY_COLLECTED, -1); + item_adjustByDiffWithoutHud(ITEM_26_JIGGY_TOTAL, 1); + item_inc(ITEM_E_JIGGY); + spawnOrbit(); + break; + case RITYPE_JINJO: + if (worldId == map_getLevel(gsworld_getMap())) { + item_adjustByDiffWithHud(ITEM_12_JINJOS, jinjoBitFromActor(actorId)); + } + collectedJinjos = collectedBits(worldId); + collectedJinjos |= jinjoBitFromActor(actorId); + if (collectedJinjos == kAllJinjos) { + ItemQueue::AddCheck(jinjoJiggyChecks[worldId]); + } + setCollectedBits(worldId, collectedJinjos); + // Spawn vanilla jinjo on top of the player because the animation is too complex to handle without doing + // this. Collection behaviour is canceled in Jinjo.cpp so that part can all be handled here in the + // ItemQueue. + switch (actorId) { + case ACTOR_5E_JINJO_YELLOW: + actorInfo = &chJinjoYellow; + break; + case ACTOR_5F_JINJO_ORANGE: + actorInfo = &chJinjoOrange; + break; + case ACTOR_60_JINJO_BLUE: + actorInfo = &chJinjoBlue; + break; + case ACTOR_61_JINJO_PINK: + actorInfo = &chJinjoPink; + break; + case ACTOR_62_JINJO_GREEN: + actorInfo = &chJinjoGreen; + break; + } + player_getPosition_s32(playerPosition); + customActor = actor_new(playerPosition, 0, actorInfo, ACTOR_FLAG_UNKNOWN_6 | ACTOR_FLAG_UNKNOWN_8); + break; + case RITYPE_MOLEHILL: + coMusicPlayer_playMusic(COMUSIC_D_JINGLE_JIGGY_COLLECTED, -1); + switch (randoItemId) { + case RI_MOLEHILL_BARGE: + ability_unlock(ABILITY_0_BARGE); + break; + case RI_MOLEHILL_BEAK_BOMB: + ability_unlock(ABILITY_1_BEAK_BOMB); + break; + case RI_MOLEHILL_BEAK_BUSTER: + ability_unlock(ABILITY_2_BEAK_BUSTER); + break; + case RI_MOLEHILL_CAMERA_CONTROL: + ability_unlock(ABILITY_3_CAMERA_CONTROL); + break; + case RI_MOLEHILL_CLAW_SWIPE: + ability_unlock(ABILITY_4_CLAW_SWIPE); + ability_unlock(ABILITY_C_ROLL); + ability_unlock(ABILITY_B_RATATAT_RAP); + break; + case RI_MOLEHILL_CLIMB: + ability_unlock(ABILITY_5_CLIMB); + break; + case RI_MOLEHILL_DIVE: + ability_unlock(ABILITY_F_DIVE); + break; + case RI_MOLEHILL_EGGS: + ability_unlock(ABILITY_6_EGGS); + item_adjustByDiffWithHud(ITEM_D_EGGS, 50); + break; + case RI_MOLEHILL_FLAP_FLIP: + ability_unlock(ABILITY_A_HOLD_A_JUMP_HIGHER); + ability_unlock(ABILITY_7_FEATHERY_FLAP); + ability_unlock(ABILITY_8_FLAP_FLIP); + break; + case RI_MOLEHILL_FLIGHT: + ability_unlock(ABILITY_9_FLIGHT); + item_adjustByDiffWithHud(ITEM_F_RED_FEATHER, 25); + break; + case RI_MOLEHILL_SHOCK_JUMP: + ability_unlock(ABILITY_D_SHOCK_JUMP); + break; + case RI_MOLEHILL_TALON_TROT: + ability_unlock(ABILITY_10_TALON_TROT); + break; + case RI_MOLEHILL_TURBO_TALON: + ability_unlock(ABILITY_11_TURBO_TALON); + break; + case RI_MOLEHILL_WADING_BOOTS: + ability_unlock(ABILITY_E_WADING_BOOTS); + break; + case RI_MOLEHILL_WONDERWING: + ability_unlock(ABILITY_12_WONDERWING); + item_adjustByDiffWithHud(ITEM_10_GOLD_FEATHER, 5); + break; + default: + break; + } + break; + case RITYPE_MUMBO_TOKEN: + func_8030E760((sfx_e)0x401, 1.0f, 0x7fff); + for (uint32_t i = MUMBOTOKEN_01_MM_STUMP_NEAR_CONGA; + i <= MUMBOTOKEN_73_CCW_WINTER_SIR_SLUSH_BETWEEN_BIG_FLOWER_AND_MUMBOS_SKULL; i++) { + if ((sMumboTokenScore[(i - 1) / 8] & (1 << (i & 7))) == 0) { + mumboscore_set((mumbotoken_e)i, true); + break; + } + } + item_inc(ITEM_1C_MUMBO_TOKEN); + break; + case RITYPE_MUSIC_NOTE: + coMusicPlayer_playMusic(COMUSIC_9_NOTE_COLLECTED, 16000); + D_80385FF0[worldId]++; + if (worldId == map_getLevel(gsworld_getMap())) { + item_set(ITEM_C_NOTE, D_80385FF0[map_getLevel(gsworld_getMap())]); + } + break; + case RITYPE_SNS_EGG: + comusic_playTrack(COMUSIC_88_BIG_SNS_FANFARE); + FUNC_8030E624(SFX_114_BRICKWALL_BREAKING, 0.8f, 15000); + switch (randoItemId) { + case RI_STOP_N_SWOP_EGG_BLUE: + sns_set_item_and_update_payload(SNS_ITEM_EGG_BLUE, 0, 1); + break; + case RI_STOP_N_SWOP_EGG_CYAN: + sns_set_item_and_update_payload(SNS_ITEM_EGG_CYAN, 0, 1); + break; + case RI_STOP_N_SWOP_EGG_GREEN: + sns_set_item_and_update_payload(SNS_ITEM_EGG_GREEN, 0, 1); + break; + case RI_STOP_N_SWOP_EGG_PINK: + sns_set_item_and_update_payload(SNS_ITEM_EGG_PINK, 0, 1); + break; + case RI_STOP_N_SWOP_EGG_RED: + sns_set_item_and_update_payload(SNS_ITEM_EGG_RED, 0, 1); + break; + case RI_STOP_N_SWOP_EGG_YELLOW: + sns_set_item_and_update_payload(SNS_ITEM_EGG_YELLOW, 0, 1); + break; + } + break; + case RITYPE_SNS_KEY: + sns_set_item_and_update_payload(SNS_ITEM_ICE_KEY, 0, 1); + comusic_playTrack(COMUSIC_88_BIG_SNS_FANFARE); + break; + case RITYPE_AP_ITEM: + break; + default: + break; + } +} + +void ItemQueue::SendNotification(RandoItemId randoItemId) { + if (CVAR_SHOW_COLLISION_NOTIFICATIONS) { + RandoItemType itemType = Rando::StaticData::Items[randoItemId].randoItemType; + actor_e actorId = (actor_e)Rando::StaticData::Items[randoItemId].actorId; + std::string prefix = ""; + std::string message = Rando::StaticData::Items[randoItemId].name; + std::string suffix = ""; + ImVec4 itemColor = UIWidgets::ColorValues.at(itemColors[actorId]); + + if (itemType == RITYPE_MOLEHILL) { + prefix = "You learned"; + } else if (itemType == RITYPE_SNS_EGG || itemType == RITYPE_SNS_KEY) { + int32_t totalsnsItems = Rando::Logic::GetTotalSnsItemsCollected(); + prefix = "You collected "; + prefix += Rando::StaticData::Items[randoItemId].article; + suffix = "("; + suffix += std::to_string(totalsnsItems); + suffix += " / 7)"; + + itemColor = UIWidgets::ColorValues.at(snsColors[randoItemId]); + } else { + prefix = "You collected "; + prefix += Rando::StaticData::Items[randoItemId].article; + } + + Notification::Emit({ + .prefix = prefix, + .prefixColor = UIWidgets::ColorValues.at(UIWidgets::Colors::White), + .message = message, + .messageColor = itemColor, + .suffix = suffix, + .suffixColor = UIWidgets::ColorValues.at(UIWidgets::Colors::White), + }); + } +} + +void ItemQueue::Clear() { + while (!itemQueue.empty()) { + itemQueue.pop(); + } +} + +void ItemQueue::AddCheck(RandoCheckId randoCheckId) { + RANDO_SAVE_CHECKS[randoCheckId].eligible = true; + itemQueue.push(randoCheckId); +} + +void RegisterItemQueue() { + COND_HOOK(GameFrameUpdate, EVENT_PRIORITY_NORMAL, IS_RANDO, [](IEvent* event) { ItemQueue::Process(); }); + + COND_HOOK(OnSaveFileLoad, EVENT_PRIORITY_NORMAL, IS_RANDO, [](IEvent* event) { ItemQueue::Clear(); }); +} + +static RegisterShipInitFunc initFunc(RegisterItemQueue, { "IS_RANDO" }); diff --git a/src/port/Rando/ItemQueue.h b/src/port/Rando/ItemQueue.h new file mode 100644 index 000000000..0e526b04d --- /dev/null +++ b/src/port/Rando/ItemQueue.h @@ -0,0 +1,10 @@ +#include "port/Rando/Rando.h" + +class ItemQueue { +public: + static void Process(); + static void Clear(); + static void GiveItem(RandoItemId randoItemId); + static void SendNotification(RandoItemId randoItemId); + static void AddCheck(RandoCheckId randoCheckId); +}; diff --git a/src/port/Rando/LighthouseMenuRando.cpp b/src/port/Rando/LighthouseMenuRando.cpp index fefdda2af..8c654a44d 100644 --- a/src/port/Rando/LighthouseMenuRando.cpp +++ b/src/port/Rando/LighthouseMenuRando.cpp @@ -135,7 +135,7 @@ void LighthouseMenu::AddMenuRando() { AddSidebarEntry("Rando", "Shuffle Options", 2); path = { "Rando", "Shuffle Options", SECTION_COLUMN_1 }; - AddWidget(path, "Shuffle Collectables", WIDGET_SEPARATOR_TEXT); + AddWidget(path, "Base Shuffles", WIDGET_SEPARATOR_TEXT); AddWidget(path, "Shuffle Empty Honeycombs", WIDGET_CVAR_CHECKBOX) .CVar(Rando::StaticData::Options[RO_SHUFFLE_EMPTY_HONEYCOMBS].cvar) @@ -146,9 +146,6 @@ void LighthouseMenu::AddMenuRando() { AddWidget(path, "Shuffle Jinjos", WIDGET_CVAR_CHECKBOX) .CVar(Rando::StaticData::Options[RO_SHUFFLE_JINJOS].cvar) .Options(CheckboxOptions().Tooltip("Shuffles Jinjos into the Pool.")); - AddWidget(path, "Shuffle Molehills", WIDGET_CVAR_CHECKBOX) - .CVar(Rando::StaticData::Options[RO_SHUFFLE_MOLEHILLS].cvar) - .Options(CheckboxOptions().Tooltip("Shuffles which abilities each Molehill unlocks.")); AddWidget(path, "Shuffle Mumbo Tokens", WIDGET_CVAR_CHECKBOX) .CVar(Rando::StaticData::Options[RO_SHUFFLE_MUMBO_TOKENS].cvar) .Options(CheckboxOptions().Tooltip("Shuffles Mumbo Tokens into the Pool.")); @@ -156,6 +153,21 @@ void LighthouseMenu::AddMenuRando() { .CVar(Rando::StaticData::Options[RO_SHUFFLE_MUSIC_NOTES].cvar) .Options(CheckboxOptions().Tooltip("Shuffles Music Notes into the Pool.")); + AddWidget(path, "Advanced Shuffles", WIDGET_SEPARATOR_TEXT); + + AddWidget(path, "Shuffle Beehive Contents", WIDGET_CVAR_CHECKBOX) + .CVar(Rando::StaticData::Options[RO_SHUFFLE_BEEHIVE_HONEYCOMBS].cvar) + .Options(CheckboxOptions().Tooltip("Shuffles Contents of Beehives into the Pool.")); + AddWidget(path, "Shuffle Blue Eggs", WIDGET_CVAR_CHECKBOX) + .CVar(Rando::StaticData::Options[RO_SHUFFLE_BLUE_EGGS].cvar) + .Options(CheckboxOptions().Tooltip("Shuffles Blue Eggs into the Pool.")); + AddWidget(path, "Shuffle Extra Lives", WIDGET_CVAR_CHECKBOX) + .CVar(Rando::StaticData::Options[RO_SHUFFLE_EXTRA_LIVES].cvar) + .Options(CheckboxOptions().Tooltip("Shuffles Extra Lives into the Pool.")); + AddWidget(path, "Shuffle Molehills", WIDGET_CVAR_CHECKBOX) + .CVar(Rando::StaticData::Options[RO_SHUFFLE_MOLEHILLS].cvar) + .Options(CheckboxOptions().Tooltip("Shuffles which abilities each Molehill unlocks.")); + path.column = SECTION_COLUMN_2; AddWidget(path, "Win Conditions", WIDGET_SEPARATOR_TEXT); @@ -256,36 +268,6 @@ void LighthouseMenu::AddMenuRando() { } }); - // Rando - Junk Options - AddSidebarEntry("Rando", "Junk Options", 1); - path = { "Rando", "Junk Options", SECTION_COLUMN_1 }; - - AddWidget(path, "Enable Junk", WIDGET_SEPARATOR_TEXT); - - AddWidget(path, "Spawn Junk For Obtained Checks", WIDGET_CVAR_CHECKBOX) - .CVar(Rando::StaticData::Options[RO_SPAWN_JUNK].cvar) - .Options(CheckboxOptions().Tooltip("Spawns a junk item in place of an object that has already been collected.")) - .Callback([](WidgetInfo& info) { UpdateJunkList(); }); - - AddWidget(path, "Junk Selection", WIDGET_SEPARATOR_TEXT); - - AddWidget(path, "Honeycomb Refills", WIDGET_CVAR_CHECKBOX) - .CVar(CVAR_RANDOMIZER_SETTING("Junk.HealthRefill")) - .Options(CheckboxOptions().Tooltip("Adds Health Refills to the Junk List.")) - .Callback([](WidgetInfo& info) { UpdateJunkList(); }); - AddWidget(path, "Blue Eggs", WIDGET_CVAR_CHECKBOX) - .CVar(CVAR_RANDOMIZER_SETTING("Junk.BlueEggs")) - .Options(CheckboxOptions().Tooltip("Adds Blue Eggs to the Junk List.")) - .Callback([](WidgetInfo& info) { UpdateJunkList(); }); - AddWidget(path, "Red Feathers", WIDGET_CVAR_CHECKBOX) - .CVar(CVAR_RANDOMIZER_SETTING("Junk.RedFeathers")) - .Options(CheckboxOptions().Tooltip("Adds Red Feathers to the Junk List.")) - .Callback([](WidgetInfo& info) { UpdateJunkList(); }); - AddWidget(path, "Gold Feathers", WIDGET_CVAR_CHECKBOX) - .CVar(CVAR_RANDOMIZER_SETTING("Junk.GoldFeathers")) - .Options(CheckboxOptions().Tooltip("Adds Gold Feathers to the Junk List.")) - .Callback([](WidgetInfo& info) { UpdateJunkList(); }); - // Rando - Check Tracker path.sidebarName = "Check Tracker"; AddSidebarEntry("Rando", path.sidebarName, 1); diff --git a/src/port/Rando/Logic/GeneratePools.cpp b/src/port/Rando/Logic/GeneratePools.cpp index 090ca8354..f6eace65e 100644 --- a/src/port/Rando/Logic/GeneratePools.cpp +++ b/src/port/Rando/Logic/GeneratePools.cpp @@ -46,11 +46,26 @@ void GenerateShufflePool(SaveData* saveData) { shuffledPool.clear(); for (auto& [randoCheckId, randoStaticCheck] : Rando::StaticData::Checks) { + if (randoStaticCheck.randoCheckType == RCTYPE_BLUE_EGG && + CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_BLUE_EGGS].cvar, 0) == RO_GENERIC_OFF) { + continue; + } + if (randoStaticCheck.randoCheckType == RCTYPE_EMPTY_HONEYCOMB && CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_EMPTY_HONEYCOMBS].cvar, 0) == RO_GENERIC_OFF) { continue; } + if (randoStaticCheck.randoCheckType == RCTYPE_EXTRA_LIFE && + CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_EXTRA_LIVES].cvar, 0) == RO_GENERIC_OFF) { + continue; + } + + if (randoStaticCheck.randoCheckType == RCTYPE_HONEYCOMB && + CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_BEEHIVE_HONEYCOMBS].cvar, 0) == RO_GENERIC_OFF) { + continue; + } + if (randoStaticCheck.randoCheckType == RCTYPE_JIGGY && CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_JIGGIES].cvar, 0) == RO_GENERIC_OFF) { continue; @@ -64,8 +79,8 @@ void GenerateShufflePool(SaveData* saveData) { if (randoStaticCheck.randoCheckType == RCTYPE_MOLEHILL) { if (CVarGetInteger(Rando::StaticData::Options[RO_SHUFFLE_MOLEHILLS].cvar, 0) == RO_GENERIC_ON) { abilityCheckPool.push_back(randoCheckId); - abilityItemPool.push_back( - { (actor_e)randoStaticCheck.actorId, randoStaticCheck.collectionId, randoCheckId }); + abilityItemPool.push_back({ Rando::StaticData::GetActorIdByRandoItemId(randoStaticCheck.randoItemId), + randoStaticCheck.collectionId, randoCheckId }); } continue; } @@ -86,7 +101,8 @@ void GenerateShufflePool(SaveData* saveData) { } checkPool.push_back(randoCheckId); - itemPool.push_back({ (actor_e)randoStaticCheck.actorId, randoStaticCheck.collectionId, randoCheckId }); + itemPool.push_back({ Rando::StaticData::GetActorIdByRandoItemId(randoStaticCheck.randoItemId), + randoStaticCheck.collectionId, randoCheckId }); } if (!itemPool.empty()) { @@ -111,16 +127,14 @@ void GenerateShufflePool(SaveData* saveData) { RandoSaveCheck randoShuffleEntry = { .name = Rando::StaticData::Checks[checkPool[i]].name, .randoCheckId = checkPool[i], - .randoItemId = Rando::StaticData::GetRandoItemByActorId(std::get<0>(itemPool[i])), - .shuffledCheckId = std::get<2>(itemPool[i]), + .randoItemId = Rando::StaticData::Checks[std::get<2>(itemPool[i])].randoItemId, .randoCollectionId = std::get<1>(itemPool[i]), .isShuffled = checkPool[i] == RC_UNKNOWN ? false : true, - .obtained = false, + .eligible = false, .skipped = false, }; shuffledPool.push_back(randoShuffleEntry); - RANDO_SAVE_CHECKS[checkPool[i]] = randoShuffleEntry; } @@ -129,11 +143,10 @@ void GenerateShufflePool(SaveData* saveData) { RandoSaveCheck randoShuffleEntry = { .name = Rando::StaticData::Checks[abilityCheckPool[a]].name, .randoCheckId = abilityCheckPool[a], - .randoItemId = Rando::StaticData::GetRandoItemByActorId(std::get<0>(abilityItemPool[a])), - .shuffledCheckId = std::get<2>(abilityItemPool[a]), + .randoItemId = Rando::StaticData::Checks[std::get<2>(abilityItemPool[a])].randoItemId, .randoCollectionId = std::get<1>(abilityItemPool[a]), .isShuffled = true, - .obtained = false, + .eligible = false, .skipped = false, }; @@ -162,10 +175,10 @@ void GeneratePoolFromSaveData(SaveData* saveData) { .name = Rando::StaticData::Checks[(RandoCheckId)i].name, .randoCheckId = randoSaveCheck.randoCheckId, .randoItemId = randoSaveCheck.randoItemId, - .shuffledCheckId = randoSaveCheck.shuffledCheckId, .randoCollectionId = randoSaveCheck.randoCollectionId, .isShuffled = randoSaveCheck.isShuffled, - .obtained = randoSaveCheck.obtained, + .eligible = randoSaveCheck.eligible, + .received = randoSaveCheck.received, .skipped = randoSaveCheck.skipped, }; diff --git a/src/port/Rando/Logic/GenerateSaveData.cpp b/src/port/Rando/Logic/GenerateSaveData.cpp index cf978ad22..2106f2302 100644 --- a/src/port/Rando/Logic/GenerateSaveData.cpp +++ b/src/port/Rando/Logic/GenerateSaveData.cpp @@ -122,11 +122,11 @@ void Rando::Logic::InitializeSaveData(SaveData* saveData) { for (auto& [randoCheckId, randoStaticCheck] : Rando::StaticData::Checks) { RandoSaveCheck randoSaveCheck = { .name = randoStaticCheck.name, - .randoItemId = Rando::StaticData::GetRandoItemByActorId((actor_e)randoStaticCheck.actorId), - .shuffledCheckId = randoCheckId, + .randoItemId = randoStaticCheck.randoItemId, + // .randoItemId = Rando::StaticData::GetRandoItemByActorId((actor_e)randoStaticCheck.actorId), .randoCollectionId = randoStaticCheck.collectionId, .isShuffled = false, - .obtained = false, + .eligible = false, .skipped = false, }; @@ -148,7 +148,7 @@ void Rando::Logic::InitializeSaveData(SaveData* saveData) { } void Rando::Logic::GenerateSaveData(SaveData* saveData) { - for (auto& object : Rando::Logic::shuffledPool) { + for (auto& object : RANDO_SAVE_CHECKS) { saveData->shipSaveData.randoSaveData.randoSaveCheck[object.randoCheckId] = object; } @@ -191,7 +191,7 @@ void Rando::Logic::GrantSpiralMountainChecks() { } CustomObject::CheckObtainedEX(smCheckId, true); - if (randoSaveCheck.randoItemId == RI_MOLEHILL) { + if (Rando::StaticData::Items[randoSaveCheck.randoItemId].randoItemType == RITYPE_MOLEHILL) { ability_setLearned((ability_e)randoSaveCheck.randoCollectionId, true); ability_setHasUsed((ability_e)randoSaveCheck.randoCollectionId); } diff --git a/src/port/Rando/Logic/Logic.h b/src/port/Rando/Logic/Logic.h index cbaa9d05b..bed9f239a 100644 --- a/src/port/Rando/Logic/Logic.h +++ b/src/port/Rando/Logic/Logic.h @@ -62,16 +62,11 @@ void GrantSpiralMountainChecks(); void RefreshReachableRegions(); inline bool IsCheckShuffled(RandoCheckId randoCheckId) { - bool isShuffled = false; - - for (auto& object : shuffledPool) { - if (object.randoCheckId == randoCheckId) { - isShuffled = object.isShuffled; - break; - } - } + return RANDO_SAVE_CHECKS[randoCheckId].isShuffled; +} - return isShuffled; +inline bool IsCheckObtained(RandoCheckId randoCheckId) { + return RANDO_SAVE_CHECKS[randoCheckId].eligible; } inline RandoSaveCheck GetShuffledObject(RandoCheckId randoCheckId) { @@ -92,33 +87,22 @@ inline RandoSaveCheck GetShuffledObject(RandoCheckId randoCheckId) { return shuffledObject; } -inline bool IsCheckObtained(RandoCheckId randoCheckId) { - bool isObtained = false; - - for (auto& object : shuffledPool) { - if (object.randoCheckId == randoCheckId) { - isObtained = object.obtained; - break; - } - } - - return isObtained; -} - inline bool ShouldSpawnJinjoJiggy(int16_t levelId) { bool shouldSpawn = false; int16_t jinjoCount = 0; - for (auto& pool : Rando::Logic::shuffledPool) { - if (!pool.obtained) { + for (auto& location : Rando::Logic::shuffledPool) { + if (!location.eligible) { continue; } - if (Rando::StaticData::Checks[pool.shuffledCheckId].worldId != levelId) { + Rando::StaticData::RandoStaticItem randoItem = Rando::StaticData::Items[location.randoItemId]; + + if (randoItem.worldId != levelId) { continue; } - if (pool.randoItemId >= RI_JINJO_BLUE && pool.randoItemId <= RI_JINJO_YELLOW) { + if (randoItem.randoItemType == RITYPE_JINJO) { jinjoCount++; } } @@ -133,12 +117,13 @@ inline bool ShouldSpawnJinjoJiggy(int16_t levelId) { inline int32_t GetTotalSnsItemsCollected() { int32_t snsCount = 0; - for (auto& pool : Rando::Logic::shuffledPool) { - if (!pool.obtained) { + for (auto& location : Rando::Logic::shuffledPool) { + if (!location.eligible) { continue; } - if (pool.randoItemId == RI_STOP_N_SWOP_EGG || pool.randoItemId == RI_STOP_N_SWOP_KEY) { + Rando::StaticData::RandoStaticItem randoItem = Rando::StaticData::Items[location.randoItemId]; + if (randoItem.randoItemType == RITYPE_SNS_EGG || randoItem.randoItemType == RITYPE_SNS_KEY) { snsCount++; } } @@ -200,12 +185,13 @@ inline bool CanCollectWorldJinjos(level_e levelId) { int32_t accessibleJinjos = 0; for (auto& entry : Rando::Logic::shuffledPool) { - if (Rando::StaticData::Checks[entry.shuffledCheckId].worldId != levelId) { + Rando::StaticData::RandoStaticItem randoItem = Rando::StaticData::Items[entry.randoItemId]; + + if (randoItem.worldId != levelId) { continue; } - - if (entry.randoItemId >= RI_JINJO_BLUE && entry.randoItemId <= RI_JINJO_YELLOW) { - if (CanAccessCheck(entry.shuffledCheckId)) { + if (randoItem.randoItemType == RITYPE_JINJO) { + if (CanAccessCheck(entry.randoCheckId)) { accessibleJinjos++; } } diff --git a/src/port/Rando/Logic/Regions/BubblegloopSwamp.cpp b/src/port/Rando/Logic/Regions/BubblegloopSwamp.cpp index 48bcf9aca..f2090606a 100644 --- a/src/port/Rando/Logic/Regions/BubblegloopSwamp.cpp +++ b/src/port/Rando/Logic/Regions/BubblegloopSwamp.cpp @@ -7,6 +7,64 @@ using namespace Rando::Logic; static RegisterShipInitFunc initFunc([]() { Regions[RR_BUBBLEGLOOP_SWAMP] = RandoRegion{ .regionName = "Bubblegloop Swamp", .mapId = MAP_D_BGS_BUBBLEGLOOP_SWAMP, .checks = { + CHECK(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_1, true), + CHECK(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_2, true), + CHECK(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_3, true), + CHECK(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_4, true), + CHECK(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_5, true), + CHECK(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_1, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_2, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_3, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_4, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_5, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_6, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_BGS_BLUE_EGG_MAZE_WALKWAY_1, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC) || CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_BGS_BLUE_EGG_MAZE_WALKWAY_2, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC) || CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_BGS_BLUE_EGG_MAZE_WALKWAY_3, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC) || CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_BGS_BLUE_EGG_MAZE_WALKWAY_4, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC) || CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_BGS_BLUE_EGG_MAZE_WALKWAY_5, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC) || CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_BGS_BLUE_EGG_POLE_NEAR_BLUE_JINJO_1, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_BGS_BLUE_EGG_POLE_NEAR_BLUE_JINJO_2, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_BGS_BLUE_EGG_POLE_NEAR_BLUE_JINJO_3, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_BGS_BLUE_EGG_POLE_NEAR_ENTRANCE_1, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_BGS_BLUE_EGG_POLE_NEAR_ENTRANCE_2, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_BGS_BLUE_EGG_POLE_NEAR_ENTRANCE_3, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_BGS_BLUE_EGG_STUMP_NEAR_BIG_EGG_1, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_BGS_BLUE_EGG_STUMP_NEAR_BIG_EGG_2, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_1, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_2, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_3, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_4, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_HUTS_1, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_HUTS_2, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_HUTS_3, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_1, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_2, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_3, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_4, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_5, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_6, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_SWITCH_1, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_SWITCH_2, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_NEAR_SWITCH_3, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_1, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_2, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_3, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_4, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_EXTRA_LIFE_ABOVE_THE_EGG, CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_BGS_EXTRA_LIFE_SWAMP_BY_THE_HUTS, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS) || CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC)), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_ELEVATED_WALKWAY_1, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) && CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_ELEVATED_WALKWAY_2, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) && CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_ELEVATED_WALKWAY_3, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) && CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_MAZE_ENTRANCE_1, CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_MAZE_ENTRANCE_2, CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_MAZE_ENTRANCE_3, CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_TANKTUP_1, CAN_EXTEND_JUMP_DISTANCE && CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_TANKTUP_2, CAN_EXTEND_JUMP_DISTANCE && CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_TANKTUP_3, CAN_EXTEND_JUMP_DISTANCE && CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_1, CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_2, CAN_ATTACK), + CHECK(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_3, CAN_ATTACK), CHECK(RC_BGS_JIGGY_CROCTUS, CAN_USE_ABILITY(ABILITY_6_EGGS) && CAN_USE_ABILITY(ABILITY_10_TALON_TROT) && CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP) && CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS) || CAN_USE_ABILITY(ABILITY_12_WONDERWING)), CHECK(RC_BGS_JIGGY_ELEVATED_WALKWAY, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), CHECK(RC_BGS_JIGGY_FLIBBITS, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC) || CAN_ATTACK), @@ -129,6 +187,11 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_BUBBLEGLOOP_SWAMP_INTERIOR_MR_VILES] = RandoRegion{ .regionName = "Mr. Vile Interior", .mapId = MAP_10_BGS_MR_VILE, .checks = { + CHECK(RC_BGS_BLUE_EGG_INSIDE_MR_VILES_1, true), + CHECK(RC_BGS_BLUE_EGG_INSIDE_MR_VILES_2, true), + CHECK(RC_BGS_EXTRA_LIFE_MR_VILE_1, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC) && CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), + CHECK(RC_BGS_EXTRA_LIFE_MR_VILE_2, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC) && CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), + CHECK(RC_BGS_EXTRA_LIFE_MR_VILE_3, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC) && CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), CHECK(RC_BGS_JIGGY_MR_VILE, CAN_USE_TRANSFORMATION(TRANSFORM_5_CROC) && CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), CHECK(RC_BGS_MUMBO_TOKEN_INSIDE_MR_VILES, true), CHECK(RC_BGS_NOTE_INSIDE_MR_VILES_LEFT_NOSTRIL_1, true), @@ -156,6 +219,10 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_BUBBLEGLOOP_SWAMP_INTERIOR_TANKTUP] = RandoRegion{ .regionName = "Tanktup Interior", .mapId = MAP_11_BGS_TIPTUP, .checks = { + CHECK(RC_BGS_BLUE_EGG_INSIDE_TANKTUP_1, true), + CHECK(RC_BGS_BLUE_EGG_INSIDE_TANKTUP_2, true), + CHECK(RC_BGS_BLUE_EGG_INSIDE_TANKTUP_3, true), + CHECK(RC_BGS_BLUE_EGG_INSIDE_TANKTUP_4, true), CHECK(RC_BGS_EMPTY_HONEYCOMB_TANKTUP, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_BGS_JIGGY_TIPTUP, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), CHECK(RC_BGS_MUMBO_TOKEN_BEHIND_TIPTUP, true), diff --git a/src/port/Rando/Logic/Regions/ClankersCavern.cpp b/src/port/Rando/Logic/Regions/ClankersCavern.cpp index 2eb19c956..df842726b 100644 --- a/src/port/Rando/Logic/Regions/ClankersCavern.cpp +++ b/src/port/Rando/Logic/Regions/ClankersCavern.cpp @@ -7,7 +7,13 @@ using namespace Rando::Logic; static RegisterShipInitFunc initFunc([]() { Regions[RR_CLANKERS_CAVERN_ENTRANCE] = RandoRegion{ .regionName = "Clanker's Cavern Entrance", .mapId = MAP_B_CC_CLANKERS_CAVERN, .checks = { - CHECK(RC_CC_JIGGY_JINJO, CAN_COLLECT_JINJOS(LEVEL_3_CLANKERS_CAVERN)), + CHECK(RC_CC_BLUE_EGG_ENTRANCE_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_ENTRANCE_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_ENTRANCE_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_ENTRANCE_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_ENTRANCE_5, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_ENTRANCE_6, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_JIGGY_JINJO, CAN_COLLECT_JINJOS(LEVEL_3_CLANKERS_CAVERN)), }, .connections = { CONNECTION(RR_CLANKERS_CAVERN_ENTRANCE_UPPER, CAN_USE_ABILITY(ABILITY_5_CLIMB) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), @@ -18,20 +24,23 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLANKERS_CAVERN_ENTRANCE_UPPER] = RandoRegion{ .regionName = "Upper Entrance", .mapId = MAP_B_CC_CLANKERS_CAVERN, .checks = { - CHECK(RC_CC_JINJO_YELLOW, CAN_EXTEND_JUMP_DISTANCE), - CHECK(RC_CC_MUMBO_TOKEN_ABOVE_LEVEL_ENTRANCE, CAN_EXTEND_JUMP_DISTANCE), - CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_1, true), - CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_2, true), - CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_3, true), - CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_4, true), - CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_5, CAN_EXTEND_JUMP_DISTANCE), - CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_6, CAN_EXTEND_JUMP_DISTANCE), - CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_7, CAN_EXTEND_JUMP_DISTANCE), - CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_8, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_ENTRANCE_1, CAN_ATTACK), + CHECK(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_ENTRANCE_2, CAN_ATTACK), + CHECK(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_ENTRANCE_3, CAN_ATTACK), + CHECK(RC_CC_JINJO_YELLOW, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_CC_MUMBO_TOKEN_ABOVE_LEVEL_ENTRANCE, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_1, true), + CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_2, true), + CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_3, true), + CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_4, true), + CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_5, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_6, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_7, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_8, CAN_EXTEND_JUMP_DISTANCE), }, .connections = { - CONNECTION(RR_CLANKERS_CAVERN_ENTRANCE, true), - CONNECTION(RR_CLANKERS_CAVERN_ENTRANCE_UNDERWATER, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CONNECTION(RR_CLANKERS_CAVERN_ENTRANCE, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CONNECTION(RR_CLANKERS_CAVERN_ENTRANCE_UNDERWATER, CAN_USE_ABILITY(ABILITY_F_DIVE)), }, }; @@ -52,6 +61,21 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLANKERS_CAVERN_INTERIOR_CLANKER] = RandoRegion{ .regionName = "Inside Clanker", .mapId = MAP_22_CC_INSIDE_CLANKER, .checks = { + CHECK(RC_CC_BLUE_EGG_NEAR_RINGS_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_RINGS_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_RINGS_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_RINGS_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_RINGS_5, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_RINGS_6, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_RINGS_7, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_RINGS_8, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_1, CAN_ACCESS_REGION(RR_CLANKERS_CAVERN_UNDERWATER_LOCK)), + CHECK(RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_2, CAN_ACCESS_REGION(RR_CLANKERS_CAVERN_UNDERWATER_LOCK)), + CHECK(RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_3, CAN_ACCESS_REGION(RR_CLANKERS_CAVERN_UNDERWATER_LOCK)), + CHECK(RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_4, CAN_ACCESS_REGION(RR_CLANKERS_CAVERN_UNDERWATER_LOCK)), + CHECK(RC_CC_HONEYCOMB_BEEHIVE_INSIDE_CLANKER_1, CAN_ATTACK), + CHECK(RC_CC_HONEYCOMB_BEEHIVE_INSIDE_CLANKER_2, CAN_ATTACK), + CHECK(RC_CC_HONEYCOMB_BEEHIVE_INSIDE_CLANKER_3, CAN_ATTACK), CHECK(RC_CC_JIGGY_RINGS, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_CC_JINJO_PINK, true), CHECK(RC_CC_JIGGY_TOOTH, true), @@ -112,7 +136,30 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLANKERS_CAVERN_NEAR_CLANKER] = RandoRegion{ .regionName = "Near Clanker", .mapId = MAP_B_CC_CLANKERS_CAVERN, .checks = { + CHECK(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_1, true), + CHECK(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_2, true), + CHECK(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_3, true), + CHECK(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_4, true), + CHECK(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_5, true), + CHECK(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_6, true), + CHECK(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_7, true), + CHECK(RC_CC_BLUE_EGG_NEAR_SNIPPETS_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_SNIPPETS_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_SNIPPETS_3, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_SNIPPETS_4, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_NEAR_SNIPPETS_5, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_UNDERWATER_PIPE_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_UNDERWATER_PIPE_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_UNDERWATER_PIPE_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_UNDERWATER_PIPE_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_UNDERWATER_PIPE_5, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CC_BLUE_EGG_YELLOW_GRATE_1, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_CC_BLUE_EGG_YELLOW_GRATE_2, CAN_EXTEND_JUMP_DISTANCE), CHECK(RC_CC_EMPTY_HONEYCOMB_UNDERWATER, true), + CHECK(RC_CC_EXTRA_LIFE_CLANKERS_LEFT_FIN, true), + CHECK(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_YELLOW_GRATES_1, CAN_ATTACK), + CHECK(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_YELLOW_GRATES_2, CAN_ATTACK), + CHECK(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_YELLOW_GRATES_3, CAN_ATTACK), CHECK(RC_CC_JIGGY_BOLT, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_CC_JIGGY_CLANKER_RAISED, true), CHECK(RC_CC_JIGGY_LONG_PIPE, true), @@ -172,7 +219,16 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLANKERS_CAVERN_NEAR_CLANKER_UPPER] = RandoRegion{ .regionName = "Upper Area Near Clanker", .mapId = MAP_B_CC_CLANKERS_CAVERN, .checks = { + CHECK(RC_CC_BLUE_EGG_ABOVEWATER_PIPE_1, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_CC_BLUE_EGG_ABOVEWATER_PIPE_2, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_CC_BLUE_EGG_ABOVEWATER_PIPE_3, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_CC_BLUE_EGG_ABOVEWATER_PIPE_4, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_CC_BLUE_EGG_ABOVEWATER_PIPE_5, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_CC_BLUE_EGG_ALCOVE_WITH_OPEN_GRATE_1, CAN_ATTACK), + CHECK(RC_CC_BLUE_EGG_ALCOVE_WITH_OPEN_GRATE_2, CAN_ATTACK), CHECK(RC_CC_EMPTY_HONEYCOMB_ABOVEWATER, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_CC_EXTRA_LIFE_YELLOW_GRATE, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_CC_EXTRA_LIFE_JINJO_PIPE, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), CHECK(RC_CC_JINJO_ORANGE, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), CHECK(RC_CC_MUMBO_TOKEN_ALCOVE_WITH_OPEN_GRATE, CAN_ATTACK), CHECK(RC_CC_NOTE_CLIMBABLE_PIPE_1, CAN_ATTACK), diff --git a/src/port/Rando/Logic/Regions/ClickClockWood.cpp b/src/port/Rando/Logic/Regions/ClickClockWood.cpp index a561b8f61..99146fae7 100644 --- a/src/port/Rando/Logic/Regions/ClickClockWood.cpp +++ b/src/port/Rando/Logic/Regions/ClickClockWood.cpp @@ -7,36 +7,62 @@ using namespace Rando::Logic; static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_AUTUMN] = RandoRegion{ .regionName = "Autumn Season", .mapId = MAP_45_CCW_AUTUMN, .checks = { - CHECK(RC_CCW_JIGGY_FLOWER, true), - CHECK(RC_CCW_JIGGY_GNAWTY, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_F_DIVE)), - CHECK(RC_CCW_JINJO_ORANGE, true), - CHECK(RC_CCW_MUMBO_TOKEN_AUTUMN_FLOATING_ABOVE_BIG_CLUCKER, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), - CHECK(RC_CCW_MUMBO_TOKEN_AUTUMN_LEAF_NEAR_TREEHOUSE, true), - CHECK(RC_CCW_MUMBO_TOKEN_AUTUMN_SNAREBEAR_NEAR_ENTRANCE, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), - CHECK(RC_CCW_MUMBO_TOKEN_AUTUMN_TOP_OF_BRANCH, true), - CHECK(RC_CCW_NOTE_AUTUMN_GNAWTYS_INTERIOR_1, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), - CHECK(RC_CCW_NOTE_AUTUMN_GNAWTYS_INTERIOR_2, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), - CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_1, true), - CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_2, true), - CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_3, true), - CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_4, true), - CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_5, true), - CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_6, true), - CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_7, true), - CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_8, true), - CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_9, true), - CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_10, true), - CHECK(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_1, true), - CHECK(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_2, true), - CHECK(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_3, true), - CHECK(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_4, true), - CHECK(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_5, true), - CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_1, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), - CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_2, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), - CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_3, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), - CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_1, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), - CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_2, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), - CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_3, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_GNAWTYS_INTERIOR_1, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_GNAWTYS_INTERIOR_2, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_GNAWTYS_INTERIOR_3, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_LEAF_NEAR_ENTRANCE_1, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_LEAF_NEAR_ENTRANCE_2, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NEAR_MUMBOS_SKULL_1, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NEAR_MUMBOS_SKULL_2, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NEAR_MUMBOS_SKULL_3, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NEAR_TREEHOUSE_1, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NEAR_TREEHOUSE_2, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_1, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_2, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_3, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_4, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_5, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_6, true), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_ABOVE_THE_LAKE_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_ABOVE_THE_LAKE_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_ABOVE_THE_LAKE_3, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_GRASS_NEAR_THE_ENTRANCE_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_GRASS_NEAR_THE_ENTRANCE_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_GRASS_NEAR_THE_ENTRANCE_3, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_IN_THE_TREEHOUSE_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_IN_THE_TREEHOUSE_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_IN_THE_TREEHOUSE_3, CAN_ATTACK), + CHECK(RC_CCW_JIGGY_FLOWER, true), + CHECK(RC_CCW_JIGGY_GNAWTY, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_EXTRA_LIFE_AUTUMN_BEHIND_GNAWTYS_FIRE, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_CCW_JINJO_ORANGE, true), + CHECK(RC_CCW_MUMBO_TOKEN_AUTUMN_FLOATING_ABOVE_BIG_CLUCKER, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_CCW_MUMBO_TOKEN_AUTUMN_LEAF_NEAR_TREEHOUSE, true), + CHECK(RC_CCW_MUMBO_TOKEN_AUTUMN_SNAREBEAR_NEAR_ENTRANCE, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), + CHECK(RC_CCW_MUMBO_TOKEN_AUTUMN_TOP_OF_BRANCH, true), + CHECK(RC_CCW_NOTE_AUTUMN_GNAWTYS_INTERIOR_1, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_CCW_NOTE_AUTUMN_GNAWTYS_INTERIOR_2, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_1, true), + CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_2, true), + CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_3, true), + CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_4, true), + CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_5, true), + CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_6, true), + CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_7, true), + CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_8, true), + CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_9, true), + CHECK(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_10, true), + CHECK(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_1, true), + CHECK(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_2, true), + CHECK(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_3, true), + CHECK(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_4, true), + CHECK(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_5, true), + CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_1, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), + CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_2, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), + CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_3, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), + CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_1, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), + CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_2, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), + CHECK(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_3, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_AUTUMN_INTERIOR_BEEHIVE, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), @@ -81,12 +107,20 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_CLICK_CLOCK_WOOD_AUTUMN_INTERIOR_NABNUTS_WINDOW] = RandoRegion{ .regionName = "Autumn - Inside the Window near Nabnut's House", .mapId = MAP_63_CCW_AUTUMN_NABNUTS_WATER_SUPPLY, + .checks = { + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NABNUTS_WINDOW_INTERIOR_1, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NABNUTS_WINDOW_INTERIOR_2, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NABNUTS_WINDOW_INTERIOR_3, true), + }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_AUTUMN_UPPER_TREE, true), }, }; Regions[RR_CLICK_CLOCK_WOOD_AUTUMN_TOP_ROOM] = RandoRegion{ .regionName = "Autumn - Top Room of the Tree", .mapId = MAP_67_CCW_AUTUMN_WHIPCRACK_ROOM, + .checks = { + CHECK(RC_CCW_EXTRA_LIFE_AUTUMN_TOP_ROOM, true), + }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_AUTUMN_UPPER_TREE, true), }, @@ -94,16 +128,20 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_AUTUMN_UPPER_TREE] = RandoRegion{ .regionName = "Autumn - Upper Portion of the Tree", .mapId = MAP_45_CCW_AUTUMN, .checks = { - CHECK(RC_CCW_JIGGY_NABNUT, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_WINDOWS) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_F_DIVE)), - CHECK(RC_CCW_MUMBO_TOKEN_AUTUMN_SNAREBEAR_TOP_OF_TREE, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), - CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_1, true), - CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_2, true), - CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_3, true), - CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_4, true), - CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_5, true), - CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_6, true), - CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_7, true), - CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_8, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NEAR_EYRIES_NEST_1, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NEAR_EYRIES_NEST_2, true), + CHECK(RC_CCW_BLUE_EGG_AUTUMN_NEAR_EYRIES_NEST_3, true), + CHECK(RC_CCW_EXTRA_LIFE_AUTUMN_SNAREBEAR_NEAR_TREEHOUSE, true), + CHECK(RC_CCW_JIGGY_NABNUT, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_WINDOWS) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_MUMBO_TOKEN_AUTUMN_SNAREBEAR_TOP_OF_TREE, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), + CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_1, true), + CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_2, true), + CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_3, true), + CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_4, true), + CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_5, true), + CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_6, true), + CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_7, true), + CHECK(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_8, true), }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_AUTUMN, true), @@ -117,11 +155,21 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_ENTRANCE] = RandoRegion{ .regionName = "Click Clock Wood Entrance", .mapId = MAP_40_CCW_HUB, .checks = { - CHECK(RC_CCW_JIGGY_JINJO, CAN_COLLECT_JINJOS(LEVEL_8_CLICK_CLOCK_WOOD)), - CHECK(RC_CCW_NOTE_ENTRANCE_HUB_1, true), - CHECK(RC_CCW_NOTE_ENTRANCE_HUB_2, true), - CHECK(RC_CCW_NOTE_ENTRANCE_HUB_3, true), - CHECK(RC_CCW_NOTE_ENTRANCE_HUB_4, true), + CHECK(RC_CCW_BLUE_EGG_ENTRANCE_HUB_1, true), + CHECK(RC_CCW_BLUE_EGG_ENTRANCE_HUB_2, true), + CHECK(RC_CCW_BLUE_EGG_ENTRANCE_HUB_3, true), + CHECK(RC_CCW_BLUE_EGG_ENTRANCE_HUB_4, true), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_LEFT_OF_SUMMER_DOOR_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_LEFT_OF_SUMMER_DOOR_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_LEFT_OF_SUMMER_DOOR_3, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_RIGHT_OF_SUMMER_DOOR_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_RIGHT_OF_SUMMER_DOOR_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_RIGHT_OF_SUMMER_DOOR_3, CAN_ATTACK), + CHECK(RC_CCW_JIGGY_JINJO, CAN_COLLECT_JINJOS(LEVEL_8_CLICK_CLOCK_WOOD)), + CHECK(RC_CCW_NOTE_ENTRANCE_HUB_1, true), + CHECK(RC_CCW_NOTE_ENTRANCE_HUB_2, true), + CHECK(RC_CCW_NOTE_ENTRANCE_HUB_3, true), + CHECK(RC_CCW_NOTE_ENTRANCE_HUB_4, true), }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_SPRING, CAN_ACCESS(RA_TRIGGER_SWITCH_CCW_SPRING)), @@ -137,6 +185,39 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_SPRING] = RandoRegion{ .regionName = "Spring Season", .mapId = MAP_43_CCW_SPRING, .checks = { + CHECK(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_1, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_2, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_3, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_4, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_5, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_6, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_7, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_8, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_9, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_10, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_1, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_2, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_3, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_4, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_5, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_6, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_7, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_8, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_EXTRA_LIFE_SPRING_BRANCHES_ABOVE_MUMBOS_SKULL, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) || CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), + CHECK(RC_CCW_EXTRA_LIFE_SPRING_SNAREBEAR_IN_THE_LAKE, CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_BY_THE_BIG_FLOWER_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_BY_THE_BIG_FLOWER_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_BY_THE_BIG_FLOWER_3, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_GRASS_NEAR_THE_ENTRANCE_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_GRASS_NEAR_THE_ENTRANCE_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_GRASS_NEAR_THE_ENTRANCE_3, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_UNDER_THE_TREEHOUSE_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_UNDER_THE_TREEHOUSE_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_UNDER_THE_TREEHOUSE_3, CAN_ATTACK), CHECK(RC_CCW_MUMBO_TOKEN_SPRING_SNAREBEAR_NEAR_BIG_FLOWER, CAN_USE_ABILITY(ABILITY_12_WONDERWING) || CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), CHECK(RC_CCW_MUMBO_TOKEN_SPRING_SNAREBEAR_NEAR_ENTRANCE, CAN_USE_ABILITY(ABILITY_12_WONDERWING) || CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), CHECK(RC_CCW_MUMBO_TOKEN_SPRING_THORN_FIELD_FRONT_OF_MUMBOS_SKULL, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), @@ -183,6 +264,11 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_CLICK_CLOCK_WOOD_SPRING_INTERIOR_MUMBOS_SKULL] = RandoRegion{ .regionName = "Spring - Inside Mumbo's Skull", .mapId = MAP_4A_CCW_SPRING_MUMBOS_SKULL, + .checks = { + CHECK(RC_CCW_BLUE_EGG_SPRING_INSIDE_MUMBOS_SKULL_1, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_INSIDE_MUMBOS_SKULL_2, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_INSIDE_MUMBOS_SKULL_3, true), + }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_SPRING, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS) || CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), }, @@ -190,7 +276,10 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_SPRING_INTERIOR_NABNUTS_HOUSE] = RandoRegion{ .regionName = "Spring - Inside Nabnut's House", .mapId = MAP_5E_CCW_SPRING_NABNUTS_HOUSE, .checks = { - CHECK(RC_CCW_MUMBO_TOKEN_SPRING_NABNUTS_HOUSE, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_INSIDE_NABNUTS_HOUSE_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_CCW_BLUE_EGG_SPRING_INSIDE_NABNUTS_HOUSE_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_CCW_BLUE_EGG_SPRING_INSIDE_NABNUTS_HOUSE_3, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_CCW_MUMBO_TOKEN_SPRING_NABNUTS_HOUSE, true), }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_SPRING_UPPER_TREE, true), @@ -199,7 +288,9 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_SPRING_TOP_ROOM] = RandoRegion{ .regionName = "Spring - Top Room of the Tree", .mapId = MAP_65_CCW_SPRING_WHIPCRACK_ROOM, .checks = { - CHECK(RC_CCW_JIGGY_TOP_ROOM, true), + CHECK(RC_CCW_EXTRA_LIFE_SPRING_TOP_ROOM_BY_THE_JIGGY, true), + CHECK(RC_CCW_EXTRA_LIFE_SPRING_TOP_ROOM_IN_THE_BRANCHES, true), + CHECK(RC_CCW_JIGGY_TOP_ROOM, true), }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_SPRING_UPPER_TREE, true), @@ -208,6 +299,18 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_SPRING_UPPER_TREE] = RandoRegion{ .regionName = "Spring - Upper Portion of the Tree", .mapId = MAP_43_CCW_SPRING, .checks = { + CHECK(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_1, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_2, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_3, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_4, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_5, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_6, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_7, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_8, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_1, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_2, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_3, true), + CHECK(RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_4, true), CHECK(RC_CCW_JIGGY_TREE_TOP, CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE) || (CAN_ACCESS(RA_TRIGGER_SWITCH_CCW_WINTER) && CAN_USE_ABILITY(ABILITY_9_FLIGHT))), CHECK(RC_CCW_JINJO_GREEN, (CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_12_WONDERWING)) || CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), CHECK(RC_CCW_MUMBO_TOKEN_SPRING_FRONT_OF_EYRIE, true), @@ -225,20 +328,41 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_SUMMER] = RandoRegion{ .regionName = "Summer Season", .mapId = MAP_44_CCW_SUMMER, .checks = { - CHECK(RC_CCW_JIGGY_SUMMER_LEAF_JUMPS, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), - CHECK(RC_CCW_JINJO_YELLOW, true), - CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_BIG_FLOWER_FIELD, true), - CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_ENTRANCE_GNAWTYS_HOUSE, CAN_ACCESS(RA_GNAWTYS_BOULDER)), - CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_FLOATING_ABOVE_BIG_CLUCKER, CAN_ATTACK && CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), - CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_SNAREBEAR_NEAR_THORN_FIELD, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), - CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_TOP_OF_BRANCH, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), - CHECK(RC_CCW_NOTE_SUMMER_GNAWTYS_ENTRANCE_1, CAN_ACCESS(RA_GNAWTYS_BOULDER)), - CHECK(RC_CCW_NOTE_SUMMER_GNAWTYS_ENTRANCE_2, CAN_ACCESS(RA_GNAWTYS_BOULDER)), - CHECK(RC_CCW_NOTE_SUMMER_LEAF_NEAR_ENTRANCE_1, true), - CHECK(RC_CCW_NOTE_SUMMER_LEAF_NEAR_ENTRANCE_2, true), - CHECK(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_1, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), - CHECK(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_2, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), - CHECK(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_3, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_1, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_2, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_3, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_4, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_5, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_6, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_7, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_8, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_1, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_2, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_3, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_4, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_5, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_6, true), + CHECK(RC_CCW_EXTRA_LIFE_SUMMER_NEAR_THE_BIG_FLOWER, true), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_DRIED_UP_LAKE_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_DRIED_UP_LAKE_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_DRIED_UP_LAKE_3, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_GRASS_NEAR_THE_ENTRANCE_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_GRASS_NEAR_THE_ENTRANCE_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_GRASS_NEAR_THE_ENTRANCE_3, CAN_ATTACK), + CHECK(RC_CCW_JIGGY_SUMMER_LEAF_JUMPS, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_CCW_JINJO_YELLOW, true), + CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_BIG_FLOWER_FIELD, true), + CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_ENTRANCE_GNAWTYS_HOUSE, CAN_ACCESS(RA_GNAWTYS_BOULDER)), + CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_FLOATING_ABOVE_BIG_CLUCKER, CAN_ATTACK && CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_SNAREBEAR_NEAR_THORN_FIELD, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), + CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_TOP_OF_BRANCH, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_CCW_NOTE_SUMMER_GNAWTYS_ENTRANCE_1, CAN_ACCESS(RA_GNAWTYS_BOULDER)), + CHECK(RC_CCW_NOTE_SUMMER_GNAWTYS_ENTRANCE_2, CAN_ACCESS(RA_GNAWTYS_BOULDER)), + CHECK(RC_CCW_NOTE_SUMMER_LEAF_NEAR_ENTRANCE_1, true), + CHECK(RC_CCW_NOTE_SUMMER_LEAF_NEAR_ENTRANCE_2, true), + CHECK(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_1, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_2, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_3, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_SUMMER_INTERIOR_MUMBOS_SKULL, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), @@ -276,6 +400,9 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_CLICK_CLOCK_WOOD_SUMMER_TOP_ROOM] = RandoRegion{ .regionName = "Summer - Top Room of the Tree", .mapId = MAP_66_CCW_SUMMER_WHIPCRACK_ROOM, + .checks = { + CHECK(RC_CCW_EXTRA_LIFE_SUMMER_TOP_ROOM, true) + }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_SUMMER_UPPER_TREE, true), }, @@ -283,6 +410,16 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_SUMMER_UPPER_TREE] = RandoRegion{ .regionName = "Summer - Upper Portion of the Tree", .mapId = MAP_44_CCW_SUMMER, .checks = { + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_1, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_2, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_3, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_4, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_5, true), + CHECK(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_6, true), + CHECK(RC_CCW_EXTRA_LIFE_SUMMER_TREEHOUSE, true), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_OUTSIDE_NABNUTS_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_OUTSIDE_NABNUTS_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_OUTSIDE_NABNUTS_3, CAN_ATTACK), CHECK(RC_CCW_JIGGY_HOUSE, true), CHECK(RC_CCW_MUMBO_TOKEN_SUMMER_PLATFORMS_BEFORE_EYRIES_NEST, true), CHECK(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_1, true), @@ -304,7 +441,15 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_WINTER] = RandoRegion{ .regionName = "Winter Season", .mapId = MAP_46_CCW_WINTER, .checks = { + CHECK(RC_CCW_EXTRA_LIFE_WINTER_BENEATH_SIR_SLUSH, CAN_USE_ABILITY(ABILITY_9_FLIGHT) && CAN_USE_ABILITY(ABILITY_1_BEAK_BOMB)), + CHECK(RC_CCW_EXTRA_LIFE_WINTER_UNDER_THE_ICY_LAKE, CAN_USE_ABILITY(ABILITY_F_DIVE)), CHECK(RC_CCW_EMPTY_HONEYCOMB_GNAWTYS, CAN_ACCESS(RA_GNAWTYS_BOULDER) && CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_AROUND_THE_TREE_BASE_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_AROUND_THE_TREE_BASE_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_AROUND_THE_TREE_BASE_3, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_OUTSIDE_THE_TREEHOUSE_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_OUTSIDE_THE_TREEHOUSE_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_OUTSIDE_THE_TREEHOUSE_3, CAN_ATTACK), CHECK(RC_CCW_JINJO_BLUE, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) || CAN_USE_ABILITY(ABILITY_9_FLIGHT)), CHECK(RC_CCW_MUMBO_TOKEN_WINTER_BIG_FLOWER, true), CHECK(RC_CCW_MUMBO_TOKEN_WINTER_BROKEN_BEEHIVE, true), @@ -321,6 +466,11 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_CLICK_CLOCK_WOOD_WINTER_INTERIOR_MUMBOS_SKULL] = RandoRegion{ .regionName = "Winter - Inside Mumbo's Skull", .mapId = MAP_4D_CCW_WINTER_MUMBOS_SKULL, + .checks = { + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_INSIDE_MUMBOS_SKULL_1, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_INSIDE_MUMBOS_SKULL_2, CAN_ATTACK), + CHECK(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_INSIDE_MUMBOS_SKULL_3, CAN_ATTACK), + }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_WINTER, true), }, @@ -328,6 +478,11 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_WINTER_INTERIOR_NABNUTS_HOUSE] = RandoRegion{ .regionName = "Winter - Inside Nabnut's House", .mapId = MAP_61_CCW_WINTER_NABNUTS_HOUSE, .checks = { + CHECK(RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_1, true), + CHECK(RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_2, true), + CHECK(RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_3, true), + CHECK(RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_4, true), + CHECK(RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_5, true), CHECK(RC_CCW_SNS_YELLOW_EGG, true), }, .connections = { @@ -336,6 +491,16 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_CLICK_CLOCK_WOOD_WINTER_INTERIOR_NABNUTS_WINDOW] = RandoRegion{ .regionName = "Winter - Inside the Window near Nabnut's House", .mapId = MAP_64_CCW_WINTER_NABNUTS_WATER_SUPPLY, + .checks = { + CHECK(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_5, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_6, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_7, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_8, CAN_USE_ABILITY(ABILITY_F_DIVE)), + }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_WINTER_UPPER_TREE, true), }, @@ -343,7 +508,10 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_CLICK_CLOCK_WOOD_WINTER_INTERIOR_WINDOW_ABOVE_NABNUT] = RandoRegion{ .regionName = "Winter - Inside the Window Above Nabnut's House", .mapId = MAP_62_CCW_WINTER_HONEYCOMB_ROOM, .checks = { - CHECK(RC_CCW_EMPTY_HONEYCOMB_NABNUTS, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_CCW_BLUE_EGG_WINTER_WINDOW_ABOVE_NABNUT_1, true), + CHECK(RC_CCW_BLUE_EGG_WINTER_WINDOW_ABOVE_NABNUT_2, true), + CHECK(RC_CCW_BLUE_EGG_WINTER_WINDOW_ABOVE_NABNUT_3, true), + CHECK(RC_CCW_EMPTY_HONEYCOMB_NABNUTS, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_WINTER_UPPER_TREE, true), diff --git a/src/port/Rando/Logic/Regions/FreezeezyPeak.cpp b/src/port/Rando/Logic/Regions/FreezeezyPeak.cpp index bda06efe3..9c8d79cf0 100644 --- a/src/port/Rando/Logic/Regions/FreezeezyPeak.cpp +++ b/src/port/Rando/Logic/Regions/FreezeezyPeak.cpp @@ -7,21 +7,26 @@ using namespace Rando::Logic; static RegisterShipInitFunc initFunc([]() { Regions[RR_FREEZEEZY_PEAK_ENTRANCE] = RandoRegion{ .regionName = "Freezeezy Peak Entrance", .mapId = MAP_27_FP_FREEZEEZY_PEAK, .checks = { - CHECK(RC_FP_JIGGY_JINJO, CAN_COLLECT_JINJOS(LEVEL_5_FREEZEEZY_PEAK)), - CHECK(RC_FP_JIGGY_SLED_TO_BOGGY, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), - CHECK(RC_FP_NOTE_FIRST_SLOPE_1, true), - CHECK(RC_FP_NOTE_FIRST_SLOPE_2, true), - CHECK(RC_FP_NOTE_FIRST_SLOPE_3, true), - CHECK(RC_FP_NOTE_FIRST_SLOPE_4, true), - CHECK(RC_FP_NOTE_FIRST_SLOPE_5, true), - CHECK(RC_FP_NOTE_NEAR_RACE_START_1, true), - CHECK(RC_FP_NOTE_NEAR_RACE_START_2, true), - CHECK(RC_FP_NOTE_NEAR_RACE_START_3, true), - CHECK(RC_FP_NOTE_NEAR_RACE_START_4, true), - CHECK(RC_FP_NOTE_SECOND_SLOPE_1, true), - CHECK(RC_FP_NOTE_SECOND_SLOPE_2, true), - CHECK(RC_FP_NOTE_SECOND_SLOPE_3, true), - CHECK(RC_FP_NOTE_SECOND_SLOPE_4, true), + CHECK(RC_FP_BLUE_EGG_BEHIND_IGLOO_1, true), + CHECK(RC_FP_BLUE_EGG_BEHIND_IGLOO_2, true), + CHECK(RC_FP_BLUE_EGG_BEHIND_IGLOO_3, true), + CHECK(RC_FP_BLUE_EGG_BEHIND_IGLOO_4, true), + CHECK(RC_FP_BLUE_EGG_BEHIND_IGLOO_5, true), + CHECK(RC_FP_JIGGY_JINJO, CAN_COLLECT_JINJOS(LEVEL_5_FREEZEEZY_PEAK)), + CHECK(RC_FP_JIGGY_SLED_TO_BOGGY, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_FP_NOTE_FIRST_SLOPE_1, true), + CHECK(RC_FP_NOTE_FIRST_SLOPE_2, true), + CHECK(RC_FP_NOTE_FIRST_SLOPE_3, true), + CHECK(RC_FP_NOTE_FIRST_SLOPE_4, true), + CHECK(RC_FP_NOTE_FIRST_SLOPE_5, true), + CHECK(RC_FP_NOTE_NEAR_RACE_START_1, true), + CHECK(RC_FP_NOTE_NEAR_RACE_START_2, true), + CHECK(RC_FP_NOTE_NEAR_RACE_START_3, true), + CHECK(RC_FP_NOTE_NEAR_RACE_START_4, true), + CHECK(RC_FP_NOTE_SECOND_SLOPE_1, true), + CHECK(RC_FP_NOTE_SECOND_SLOPE_2, true), + CHECK(RC_FP_NOTE_SECOND_SLOPE_3, true), + CHECK(RC_FP_NOTE_SECOND_SLOPE_4, true), }, .connections = { CONNECTION(RR_FREEZEEZY_PEAK_INTERIOR_BOGGYS_IGLOO, true), @@ -57,6 +62,11 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_FREEZEEZY_PEAK_INTERIOR_WOZZAS_CAVE] = RandoRegion{ .regionName = "Inside Wozza's Cave", .mapId = MAP_7F_FP_WOZZAS_CAVE, .checks = { + CHECK(RC_FP_BLUE_EGG_WOZZAS_CAVE_1, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WOZZAS_CAVE_2, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WOZZAS_CAVE_3, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WOZZAS_CAVE_4, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_EXTRA_LIFE_WOZZAS_CAVE, true), CHECK(RC_FP_JINJO_ORANGE, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_FP_EMPTY_HONEYCOMB_WOZZAS_CAVE, true), CHECK(RC_FP_SNS_ICE_KEY, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), @@ -68,7 +78,40 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_FREEZEEZY_PEAK_MAIN_LOWER] = RandoRegion{ .regionName = "Lower Area near the Snowman", .mapId = MAP_27_FP_FREEZEEZY_PEAK, .checks = { + CHECK(RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_1, true), + CHECK(RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_2, true), + CHECK(RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_3, true), + CHECK(RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_4, true), + CHECK(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_1, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_2, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_3, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_4, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_5, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_6, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_7, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_8, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_9, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_10, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_POTTED_TREE_1, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_POTTED_TREE_2, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_POTTED_TREE_3, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_POTTED_TREE_4, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_POTTED_TREE_5, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_POTTED_TREE_6, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_POTTED_TREE_7, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_BLUE_EGG_WATER_POTTED_TREE_8, CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), + CHECK(RC_FP_EXTRA_LIFE_ABOVE_MUMBOS_SKULL, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_EXTRA_LIFE_RACE_FINISH_LINE, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) || CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), CHECK(RC_FP_EMPTY_HONEYCOMB_UNDER_SIR_SLUSH, CAN_USE_ABILITY(ABILITY_1_BEAK_BOMB) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_NEAR_RACE_START_1, CAN_ATTACK), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_NEAR_RACE_START_2, CAN_ATTACK), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_NEAR_RACE_START_3, CAN_ATTACK), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_PRESENT_STACK_1, CAN_ATTACK), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_PRESENT_STACK_2, CAN_ATTACK), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_PRESENT_STACK_3, CAN_ATTACK), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_SCARF_START_1, CAN_ATTACK), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_SCARF_START_2, CAN_ATTACK), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_SCARF_START_3, CAN_ATTACK), CHECK(RC_FP_JIGGY_BOGGY_RACE_1, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) && CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS)), CHECK(RC_FP_JIGGY_BOGGY_RACE_2, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) && CAN_USE_TRANSFORMATION(TRANSFORM_4_WALRUS) && CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), CHECK(RC_FP_JIGGY_SNOWMANS_BUTTONS, CAN_USE_ABILITY(ABILITY_1_BEAK_BOMB) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), @@ -138,41 +181,51 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_FREEZEEZY_PEAK_MAIN_UPPER] = RandoRegion{ .regionName = "Upper Area near the Snowman", .mapId = MAP_27_FP_FREEZEEZY_PEAK, .checks = { - CHECK(RC_FP_JIGGY_BEAT_ALL_SIR_SLUSH, CAN_USE_ABILITY(ABILITY_1_BEAK_BOMB) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_FP_JIGGY_SNOWMANS_PIPE, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), - CHECK(RC_FP_JINJO_BLUE, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), - CHECK(RC_FP_MUMBO_TOKEN_SLED_TO_BOGGY, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), - CHECK(RC_FP_NOTE_NEAR_WOZZA_1, true), - CHECK(RC_FP_NOTE_NEAR_WOZZA_2, true), - CHECK(RC_FP_NOTE_NEAR_WOZZA_3, true), - CHECK(RC_FP_NOTE_NEAR_WOZZA_4, true), - CHECK(RC_FP_NOTE_SNOWMAN_HAT_1, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_FP_NOTE_SNOWMAN_HAT_2, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_FP_NOTE_SNOWMAN_HAT_3, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_FP_NOTE_SNOWMAN_HAT_4, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_FP_NOTE_SNOWMAN_HAT_5, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_FP_NOTE_SNOWMAN_HAT_6, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_FP_NOTE_SNOWMAN_HAT_7, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_FP_NOTE_SNOWMAN_HAT_8, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_1, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_2, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_3, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_4, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_5, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_6, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_7, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_8, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_9, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_10, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_11, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_12, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_13, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_14, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_15, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_16, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_17, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_18, true), - CHECK(RC_FP_NOTE_SNOWMAN_SCARF_19, true), + CHECK(RC_FP_BLUE_EGG_SNOWMANS_HAT_1, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_BLUE_EGG_SNOWMANS_HAT_2, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_BLUE_EGG_SNOWMANS_HAT_3, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_BLUE_EGG_SNOWMANS_HAT_4, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_BLUE_EGG_SNOWMANS_HAT_5, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_BLUE_EGG_SNOWMANS_HAT_6, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_BLUE_EGG_SNOWMANS_HAT_7, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_SCARF_END_1, CAN_ATTACK), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_SCARF_END_2, CAN_ATTACK), + CHECK(RC_FP_HONEYCOMB_BEEHIVE_SCARF_END_3, CAN_ATTACK), + CHECK(RC_FP_JIGGY_BEAT_ALL_SIR_SLUSH, CAN_USE_ABILITY(ABILITY_1_BEAK_BOMB) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_JIGGY_SNOWMANS_PIPE, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_FP_JINJO_BLUE, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_FP_MUMBO_TOKEN_SLED_TO_BOGGY, CAN_USE_ABILITY(ABILITY_10_TALON_TROT)), + CHECK(RC_FP_NOTE_NEAR_WOZZA_1, true), + CHECK(RC_FP_NOTE_NEAR_WOZZA_2, true), + CHECK(RC_FP_NOTE_NEAR_WOZZA_3, true), + CHECK(RC_FP_NOTE_NEAR_WOZZA_4, true), + CHECK(RC_FP_NOTE_SNOWMAN_HAT_1, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_NOTE_SNOWMAN_HAT_2, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_NOTE_SNOWMAN_HAT_3, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_NOTE_SNOWMAN_HAT_4, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_NOTE_SNOWMAN_HAT_5, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_NOTE_SNOWMAN_HAT_6, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_NOTE_SNOWMAN_HAT_7, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_NOTE_SNOWMAN_HAT_8, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_1, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_2, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_3, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_4, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_5, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_6, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_7, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_8, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_9, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_10, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_11, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_12, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_13, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_14, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_15, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_16, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_17, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_18, true), + CHECK(RC_FP_NOTE_SNOWMAN_SCARF_19, true), }, .connections = { CONNECTION(RR_FREEZEEZY_PEAK_MAIN_LOWER, true), @@ -181,19 +234,31 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_FREEZEEZY_PEAK_POTTED_TREE] = RandoRegion{ .regionName = "Inside the Potted Tree", .mapId = MAP_53_FP_CHRISTMAS_TREE, .checks = { - CHECK(RC_FP_JIGGY_INSIDE_THE_TREE, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER) && CAN_USE_ABILITY(ABILITY_6_EGGS) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_1, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_2, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_3, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_4, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_5, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_6, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_7, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_8, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_9, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_10, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_11, true), - CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_12, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_1, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_2, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_3, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_4, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_5, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_6, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_7, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_8, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_9, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_10, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_11, true), + CHECK(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_12, true), + CHECK(RC_FP_JIGGY_INSIDE_THE_TREE, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER) && CAN_USE_ABILITY(ABILITY_6_EGGS) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_1, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_2, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_3, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_4, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_5, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_6, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_7, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_8, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_9, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_10, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_11, true), + CHECK(RC_FP_NOTE_POTTED_TREE_INTERIOR_12, true), }, .connections = { CONNECTION(RR_FREEZEEZY_PEAK_MAIN_LOWER, true), diff --git a/src/port/Rando/Logic/Regions/GobisValley.cpp b/src/port/Rando/Logic/Regions/GobisValley.cpp index 04045bc94..41223fd72 100644 --- a/src/port/Rando/Logic/Regions/GobisValley.cpp +++ b/src/port/Rando/Logic/Regions/GobisValley.cpp @@ -7,23 +7,31 @@ using namespace Rando::Logic; static RegisterShipInitFunc initFunc([]() { Regions[RR_GOBIS_VALLEY_ENTRANCE] = RandoRegion{ .regionName = "Gobi's Valley", .mapId = MAP_12_GV_GOBIS_VALLEY, .checks = { - CHECK(RC_GV_EMPTY_HONEYCOMB_GOBI, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_GV_JIGGY_GOBI_2, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_5_CLIMB)), - CHECK(RC_GV_JIGGY_JINJO, CAN_COLLECT_JINJOS(LEVEL_7_GOBIS_VALLEY)), - CHECK(RC_GV_JINJO_BLUE, true), - CHECK(RC_GV_JINJO_YELLOW, true), - CHECK(RC_GV_MUMBO_TOKEN_BOTTOM_OF_MOAT, true), - CHECK(RC_GV_NOTE_ENTRANCE_1, true), - CHECK(RC_GV_NOTE_ENTRANCE_2, true), - CHECK(RC_GV_NOTE_ENTRANCE_3, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) || CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), - CHECK(RC_GV_NOTE_ENTRANCE_4, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) || CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), - CHECK(RC_GV_NOTE_ENTRANCE_5, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) || CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), - CHECK(RC_GV_NOTE_MOAT_BOTTOM_1, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), - CHECK(RC_GV_NOTE_MOAT_BOTTOM_2, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), - CHECK(RC_GV_NOTE_MOAT_BOTTOM_3, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), - CHECK(RC_GV_NOTE_MOAT_BOTTOM_4, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), - CHECK(RC_GV_NOTE_MOAT_BOTTOM_5, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), - CHECK(RC_GV_NOTE_MOAT_BOTTOM_6, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), + CHECK(RC_GV_BLUE_EGG_ENTRANCE_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GV_BLUE_EGG_ENTRANCE_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GV_BLUE_EGG_ENTRANCE_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GV_BLUE_EGG_ENTRANCE_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GV_BLUE_EGG_ENTRANCE_5, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GV_EMPTY_HONEYCOMB_GOBI, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_GV_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_1, CAN_ATTACK), + CHECK(RC_GV_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_2, CAN_ATTACK), + CHECK(RC_GV_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_3, CAN_ATTACK), + CHECK(RC_GV_JIGGY_GOBI_2, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_GV_JIGGY_JINJO, CAN_COLLECT_JINJOS(LEVEL_7_GOBIS_VALLEY)), + CHECK(RC_GV_JINJO_BLUE, true), + CHECK(RC_GV_JINJO_YELLOW, true), + CHECK(RC_GV_MUMBO_TOKEN_BOTTOM_OF_MOAT, true), + CHECK(RC_GV_NOTE_ENTRANCE_1, true), + CHECK(RC_GV_NOTE_ENTRANCE_2, true), + CHECK(RC_GV_NOTE_ENTRANCE_3, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) || CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), + CHECK(RC_GV_NOTE_ENTRANCE_4, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) || CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), + CHECK(RC_GV_NOTE_ENTRANCE_5, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) || CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), + CHECK(RC_GV_NOTE_MOAT_BOTTOM_1, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), + CHECK(RC_GV_NOTE_MOAT_BOTTOM_2, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), + CHECK(RC_GV_NOTE_MOAT_BOTTOM_3, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), + CHECK(RC_GV_NOTE_MOAT_BOTTOM_4, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), + CHECK(RC_GV_NOTE_MOAT_BOTTOM_5, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), + CHECK(RC_GV_NOTE_MOAT_BOTTOM_6, CAN_ACCESS(RA_DRAIN_WATER_PYRAMID)), }, .connections = { CONNECTION(RR_GOBIS_VALLEY_UPPER_AREA, CAN_USE_ABILITY(ABILITY_10_TALON_TROT) || CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), @@ -47,6 +55,21 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GOBIS_VALLEY_INTERIOR_MAZE_PYRAMID] = RandoRegion{ .regionName = "Maze Pyramid Interior", .mapId = MAP_14_GV_SANDYBUTTS_MAZE, .checks = { + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_1, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_2, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_3, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_4, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_5, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_6, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_7, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_8, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_9, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_10, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_11, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_12, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_13, true), + CHECK(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_14, true), + CHECK(RC_GV_EXTRA_LIFE_INSIDE_SANDYBUTTS_TOMB, true), CHECK(RC_GV_JIGGY_MAZE, true), CHECK(RC_GV_JINJO_PINK, true), CHECK(RC_GV_MUMBO_TOKEN_BEHIND_SANDYBUTTS_SARCOPHAGUS, true), @@ -86,6 +109,14 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GOBIS_VALLEY_INTERIOR_SPHYNX] = RandoRegion{ .regionName = "Sphynx Interior", .mapId = MAP_1A_GV_INSIDE_JINXY, .checks = { + CHECK(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_1, true), + CHECK(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_2, true), + CHECK(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_3, true), + CHECK(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_4, true), + CHECK(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_5, true), + CHECK(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_6, true), + CHECK(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_7, true), + CHECK(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_8, true), CHECK(RC_GV_JIGGY_SHYINX, CAN_USE_ABILITY(ABILITY_6_EGGS)), CHECK(RC_GV_JINJO_ORANGE, CAN_USE_ABILITY(ABILITY_6_EGGS)), CHECK(RC_GV_MUMBO_TOKEN_INSIDE_JINXY, true), @@ -105,6 +136,10 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GOBIS_VALLEY_INTERIOR_WATER_PYRAMID] = RandoRegion{ .regionName = "Water Pyramid Interior", .mapId = MAP_15_GV_WATER_PYRAMID, .checks = { + CHECK(RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), CHECK(RC_GV_JIGGY_WATER_PYRAMID, CAN_USE_ABILITY(ABILITY_F_DIVE)), CHECK(RC_GV_MUMBO_TOKEN_INSIDE_WATER_PYRAMID, true), CHECK(RC_GV_NOTE_WATER_PYRAMID_INTERIOR_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), @@ -131,75 +166,107 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GOBIS_VALLEY_UPPER_AREA] = RandoRegion{ .regionName = "Upper Areas", .mapId = MAP_12_GV_GOBIS_VALLEY, .checks = { - CHECK(RC_GV_EMPTY_HONEYCOMB_CACTUS, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_GV_JIGGY_ANCIENT_ONES, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_GV_JIGGY_GOBI_1, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), - CHECK(RC_GV_JIGGY_GRABBA, CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), - CHECK(RC_GV_JINJO_GREEN, true), - CHECK(RC_GV_MOLEHILL_TURBO_TALON, true), - CHECK(RC_GV_MUMBO_TOKEN_FRONT_OF_STAR_DOOR, true), - CHECK(RC_GV_MUMBO_TOKEN_SAND_RIGHT_OF_JINXY, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_MUMBO_TOKEN_TOP_OF_JINXYS_NOSE, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), - CHECK(RC_GV_MUMBO_TOKEN_TOP_OF_WATER_PYRAMID, CAN_USE_ABILITY(ABILITY_6_EGGS)), - CHECK(RC_GV_NOTE_DESERT_DOOR_ALCOVE_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_GV_NOTE_DESERT_DOOR_ALCOVE_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_GV_NOTE_DESERT_DOOR_ALCOVE_3, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_GV_NOTE_DESERT_DOOR_ALCOVE_4, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_GV_NOTE_DESERT_DOOR_ALCOVE_5, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), - CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_SIDE_1, true), - CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_SIDE_2, true), - CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_1, true), - CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_2, true), - CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_3, true), - CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_4, true), - CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_1, true), - CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_2, true), - CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_3, true), - CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_4, true), - CHECK(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_1, true), - CHECK(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_2, true), - CHECK(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_3, true), - CHECK(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_4, true), - CHECK(RC_GV_NOTE_MOAT_EDGE_1, true), - CHECK(RC_GV_NOTE_MOAT_EDGE_2, true), - CHECK(RC_GV_NOTE_MOAT_EDGE_3, true), - CHECK(RC_GV_NOTE_MOAT_EDGE_4, true), - CHECK(RC_GV_NOTE_MOAT_EDGE_5, true), - CHECK(RC_GV_NOTE_MOAT_EDGE_6, true), - CHECK(RC_GV_NOTE_MOAT_EDGE_7, true), - CHECK(RC_GV_NOTE_MOAT_EDGE_8, true), - CHECK(RC_GV_NOTE_MOAT_EDGE_9, true), - CHECK(RC_GV_NOTE_NEAR_GRABBA_1, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_GRABBA_2, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_GRABBA_3, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_GRABBA_4, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_GRABBA_5, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_GRABBA_6, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_GRABBA_7, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_GRABBA_8, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_GRABBA_9, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_GRABBA_10, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_GRABBA_11, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_NEAR_TURBO_TRAINERS_1, true), - CHECK(RC_GV_NOTE_NEAR_TURBO_TRAINERS_2, true), - CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_1, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_2, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_3, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_4, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_5, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_6, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_7, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_8, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), - CHECK(RC_GV_NOTE_SPHYNX_FOOT_LEFT_1, true), - CHECK(RC_GV_NOTE_SPHYNX_FOOT_LEFT_2, true), - CHECK(RC_GV_NOTE_SPHYNX_FOOT_LEFT_3, true), - CHECK(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_1, true), - CHECK(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_2, true), - CHECK(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_3, true), - CHECK(RC_GV_NOTE_WATER_PYRAMID_TOP_1, true), - CHECK(RC_GV_NOTE_WATER_PYRAMID_TOP_2, true), - CHECK(RC_GV_NOTE_WATER_PYRAMID_TOP_3, true), - CHECK(RC_GV_NOTE_WATER_PYRAMID_TOP_4, true), + CHECK(RC_GV_BLUE_EGG_BEHIND_WATER_PYRAMID_1, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_BLUE_EGG_BEHIND_WATER_PYRAMID_2, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_BLUE_EGG_BEHIND_WATER_PYRAMID_3, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_1, true), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_2, true), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_3, true), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_4, true), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_5, true), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_6, true), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_7, true), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_8, true), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_9, true), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_10, true), + CHECK(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_11, true), + CHECK(RC_GV_BLUE_EGG_SPHYNX_LEFT_1, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_GV_BLUE_EGG_SPHYNX_LEFT_2, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_GV_BLUE_EGG_SPHYNX_LEFT_3, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_GV_BLUE_EGG_SPHYNX_RIGHT_1, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_GV_BLUE_EGG_SPHYNX_RIGHT_2, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_GV_BLUE_EGG_SPHYNX_RIGHT_3, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_1, true), + CHECK(RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_2, true), + CHECK(RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_3, true), + CHECK(RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_4, true), + CHECK(RC_GV_EXTRA_LIFE_BEHIND_JINXY, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_EXTRA_LIFE_ON_TOP_OF_WATER_PYRAMID, true), + CHECK(RC_GV_EMPTY_HONEYCOMB_CACTUS, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_GV_HONEYCOMB_BEEHIVE_BEHIND_WATER_PYRAMID_1, CAN_ATTACK), + CHECK(RC_GV_HONEYCOMB_BEEHIVE_BEHIND_WATER_PYRAMID_2, CAN_ATTACK), + CHECK(RC_GV_HONEYCOMB_BEEHIVE_BEHIND_WATER_PYRAMID_3, CAN_ATTACK), + CHECK(RC_GV_HONEYCOMB_BEEHIVE_NEAR_PUZZLE_PYRAMID_1, CAN_ATTACK), + CHECK(RC_GV_HONEYCOMB_BEEHIVE_NEAR_PUZZLE_PYRAMID_2, CAN_ATTACK), + CHECK(RC_GV_HONEYCOMB_BEEHIVE_NEAR_PUZZLE_PYRAMID_3, CAN_ATTACK), + CHECK(RC_GV_JIGGY_ANCIENT_ONES, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_GV_JIGGY_GOBI_1, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_GV_JIGGY_GRABBA, CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), + CHECK(RC_GV_JINJO_GREEN, true), + CHECK(RC_GV_MOLEHILL_TURBO_TALON, true), + CHECK(RC_GV_MUMBO_TOKEN_FRONT_OF_STAR_DOOR, true), + CHECK(RC_GV_MUMBO_TOKEN_SAND_RIGHT_OF_JINXY, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_MUMBO_TOKEN_TOP_OF_JINXYS_NOSE, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_GV_MUMBO_TOKEN_TOP_OF_WATER_PYRAMID, CAN_USE_ABILITY(ABILITY_6_EGGS)), + CHECK(RC_GV_NOTE_DESERT_DOOR_ALCOVE_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_GV_NOTE_DESERT_DOOR_ALCOVE_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_GV_NOTE_DESERT_DOOR_ALCOVE_3, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_GV_NOTE_DESERT_DOOR_ALCOVE_4, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_GV_NOTE_DESERT_DOOR_ALCOVE_5, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_9_FLIGHT)), + CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_SIDE_1, true), + CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_SIDE_2, true), + CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_1, true), + CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_2, true), + CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_3, true), + CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_4, true), + CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_1, true), + CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_2, true), + CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_3, true), + CHECK(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_4, true), + CHECK(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_1, true), + CHECK(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_2, true), + CHECK(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_3, true), + CHECK(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_4, true), + CHECK(RC_GV_NOTE_MOAT_EDGE_1, true), + CHECK(RC_GV_NOTE_MOAT_EDGE_2, true), + CHECK(RC_GV_NOTE_MOAT_EDGE_3, true), + CHECK(RC_GV_NOTE_MOAT_EDGE_4, true), + CHECK(RC_GV_NOTE_MOAT_EDGE_5, true), + CHECK(RC_GV_NOTE_MOAT_EDGE_6, true), + CHECK(RC_GV_NOTE_MOAT_EDGE_7, true), + CHECK(RC_GV_NOTE_MOAT_EDGE_8, true), + CHECK(RC_GV_NOTE_MOAT_EDGE_9, true), + CHECK(RC_GV_NOTE_NEAR_GRABBA_1, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_GRABBA_2, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_GRABBA_3, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_GRABBA_4, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_GRABBA_5, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_GRABBA_6, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_GRABBA_7, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_GRABBA_8, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_GRABBA_9, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_GRABBA_10, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_GRABBA_11, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_NEAR_TURBO_TRAINERS_1, true), + CHECK(RC_GV_NOTE_NEAR_TURBO_TRAINERS_2, true), + CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_1, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_2, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_3, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_4, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_5, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_6, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_7, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_SAND_NEAR_SPHYNX_8, CAN_USE_ABILITY(ABILITY_E_WADING_BOOTS)), + CHECK(RC_GV_NOTE_SPHYNX_FOOT_LEFT_1, true), + CHECK(RC_GV_NOTE_SPHYNX_FOOT_LEFT_2, true), + CHECK(RC_GV_NOTE_SPHYNX_FOOT_LEFT_3, true), + CHECK(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_1, true), + CHECK(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_2, true), + CHECK(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_3, true), + CHECK(RC_GV_NOTE_WATER_PYRAMID_TOP_1, true), + CHECK(RC_GV_NOTE_WATER_PYRAMID_TOP_2, true), + CHECK(RC_GV_NOTE_WATER_PYRAMID_TOP_3, true), + CHECK(RC_GV_NOTE_WATER_PYRAMID_TOP_4, true), }, .connections = { CONNECTION(RR_GOBIS_VALLEY_ENTRANCE, true), diff --git a/src/port/Rando/Logic/Regions/GruntildasLair.cpp b/src/port/Rando/Logic/Regions/GruntildasLair.cpp index e0b01ffe1..a9a878ee4 100644 --- a/src/port/Rando/Logic/Regions/GruntildasLair.cpp +++ b/src/port/Rando/Logic/Regions/GruntildasLair.cpp @@ -7,7 +7,14 @@ using namespace Rando::Logic; static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_BEFORE_NOTE_DOOR_180] = RandoRegion{ .regionName = "Before Second Note Door", .mapId = MAP_6B_GL_180_NOTE_DOOR, .checks = { - CHECK(RC_GL_MUMBO_TOKEN_CCW_JIGGY_PODIUM, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_5, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_6, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_7, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_MUMBO_TOKEN_CCW_JIGGY_PODIUM, CAN_USE_ABILITY(ABILITY_F_DIVE)), }, .connections = { CONNECTION(RR_GRUNTILDAS_LAIR_BEFORE_NOTE_DOOR_260, CAN_UNLOCK_NOTE_DOOR(180)), @@ -24,7 +31,10 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_BEFORE_NOTE_DOOR_260] = RandoRegion{ .regionName = "Before Third Note Door", .mapId = MAP_71_GL_STATUE_ROOM, .checks = { - CHECK(RC_GL_JIGGY_WITCH_SWITCH_BUBBLEGLOOP_SWAMP, CAN_ACCESS(RA_TRIGGER_SWITCH_GL_SHOCK_PAD) && CAN_ACCESS(RA_WITCH_SWITCH_BUBBLEGLOOP_SWAMP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_FIRST_GRUNTY_STATUE_1, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_FIRST_GRUNTY_STATUE_2, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_FIRST_GRUNTY_STATUE_3, CAN_ATTACK), + CHECK(RC_GL_JIGGY_WITCH_SWITCH_BUBBLEGLOOP_SWAMP, CAN_ACCESS(RA_TRIGGER_SWITCH_GL_SHOCK_PAD) && CAN_ACCESS(RA_WITCH_SWITCH_BUBBLEGLOOP_SWAMP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), }, .connections = { CONNECTION(RR_GRUNTILDAS_LAIR_BEFORE_NOTE_DOOR_180, true), @@ -86,8 +96,11 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_LOBBY] = RandoRegion{ .regionName = "Lobby", .mapId = MAP_69_GL_MM_LOBBY, .checks = { - CHECK(RC_GL_JIGGY_LOBBY, true), - CHECK(RC_GL_JIGGY_WITCH_SWITCH_MUMBOS_MOUNTAIN, CAN_ACCESS(RA_WITCH_SWITCH_MUMBOS_MOUNTAIN) && CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_50_NOTE_DOOR_1, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_50_NOTE_DOOR_2, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_50_NOTE_DOOR_3, CAN_ATTACK), + CHECK(RC_GL_JIGGY_LOBBY, true), + CHECK(RC_GL_JIGGY_WITCH_SWITCH_MUMBOS_MOUNTAIN, CAN_ACCESS(RA_WITCH_SWITCH_MUMBOS_MOUNTAIN) && CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), }, .connections = { CONNECTION(RR_GRUNTILDAS_LAIR_PAST_NOTE_DOOR_50, CAN_UNLOCK_NOTE_DOOR(50)), @@ -100,6 +113,16 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_BUBBLEGLOOP_SWAMP] = RandoRegion{ .regionName = "Near Bubblegloop Swamp Entrance", .mapId = MAP_72_GL_BGS_LOBBY, + .checks = { + CHECK(RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_1, CAN_ACCESS(RA_PUZZLE_BOARD_FREEZEEZY_PEAK)), + CHECK(RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_2, CAN_ACCESS(RA_PUZZLE_BOARD_FREEZEEZY_PEAK)), + CHECK(RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_3, CAN_ACCESS(RA_PUZZLE_BOARD_FREEZEEZY_PEAK)), + CHECK(RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_4, CAN_ACCESS(RA_PUZZLE_BOARD_FREEZEEZY_PEAK)), + CHECK(RC_GL_EXTRA_LIFE_ABOVE_THE_LOG_NEAR_BUBBLEGLOOP, true), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_BGS_ENTRANCE_1, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_BGS_ENTRANCE_2, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_BGS_ENTRANCE_3, CAN_ATTACK), + }, .connections = { CONNECTION(RR_BUBBLEGLOOP_SWAMP, CAN_UNLOCK_WORLD(LEVEL_4_BUBBLEGLOOP_SWAMP)), CONNECTION(RR_GRUNTILDAS_LAIR_BEFORE_NOTE_DOOR_260, true), @@ -111,7 +134,18 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_CLANKERS_CAVERN] = RandoRegion{ .regionName = "Near Clanker's Cavern Entrance", .mapId = MAP_70_GL_CC_LOBBY, .checks = { - CHECK(RC_GL_MUMBO_TOKEN_ABOVE_CC_ENTRANCE, CAN_ACCESS(RA_TRIGGER_SWITCH_GL_UNDERWATER_PIPES) && CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_1, CAN_ACCESS(RA_PUZZLE_BOARD_BUBBLEGLOOP_SWAMP)), + CHECK(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_2, CAN_ACCESS(RA_PUZZLE_BOARD_BUBBLEGLOOP_SWAMP)), + CHECK(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_3, CAN_ACCESS(RA_PUZZLE_BOARD_BUBBLEGLOOP_SWAMP)), + CHECK(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_4, CAN_ACCESS(RA_PUZZLE_BOARD_BUBBLEGLOOP_SWAMP)), + CHECK(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_5, CAN_ACCESS(RA_PUZZLE_BOARD_BUBBLEGLOOP_SWAMP)), + CHECK(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_6, CAN_ACCESS(RA_PUZZLE_BOARD_BUBBLEGLOOP_SWAMP)), + CHECK(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_7, CAN_ACCESS(RA_PUZZLE_BOARD_BUBBLEGLOOP_SWAMP)), + CHECK(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_8, CAN_ACCESS(RA_PUZZLE_BOARD_BUBBLEGLOOP_SWAMP)), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CC_ENTRANCE_1, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CC_ENTRANCE_2, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CC_ENTRANCE_3, CAN_ATTACK), + CHECK(RC_GL_MUMBO_TOKEN_ABOVE_CC_ENTRANCE, CAN_ACCESS(RA_TRIGGER_SWITCH_GL_UNDERWATER_PIPES) && CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), }, .connections = { CONNECTION(RR_CLANKERS_CAVERN_ENTRANCE, CAN_UNLOCK_WORLD(LEVEL_3_CLANKERS_CAVERN)), @@ -127,7 +161,15 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_CLICK_CLOCK_WOOD] = RandoRegion{ .regionName = "Near Click Clock Wood Entrance", .mapId = MAP_79_GL_CCW_LOBBY, .checks = { - CHECK(RC_GL_JIGGY_WITCH_SWITCH_CLICK_CLOCK_WOOD, CAN_ACCESS(RA_WITCH_SWITCH_CLICK_CLOCK_WOOD) && CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), + CHECK(RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_1, CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), + CHECK(RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_2, CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), + CHECK(RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_3, CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), + CHECK(RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_4, CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), + CHECK(RC_GL_EXTRA_LIFE_ABOVE_CLICK_CLOCK_WOODS_ENTRANCE, CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CCW_PUZZLE_SWITCH_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CCW_PUZZLE_SWITCH_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CCW_PUZZLE_SWITCH_3, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_ATTACK), + CHECK(RC_GL_JIGGY_WITCH_SWITCH_CLICK_CLOCK_WOOD, CAN_ACCESS(RA_WITCH_SWITCH_CLICK_CLOCK_WOOD) && CAN_USE_TRANSFORMATION(TRANSFORM_6_BEE)), }, .connections = { CONNECTION(RR_CLICK_CLOCK_WOOD_ENTRANCE, CAN_UNLOCK_WORLD(LEVEL_8_CLICK_CLOCK_WOOD)), @@ -142,9 +184,22 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_FREEZEEZY_PEAK] = RandoRegion{ .regionName = "Near Freezeezy Peak Entrance", .mapId = MAP_6F_GL_FP_LOBBY, .checks = { - CHECK(RC_GL_JIGGY_WITCH_SWITCH_FREEZEEZY_PEAK, CAN_ACCESS(RA_WITCH_SWITCH_FREEZEEZY_PEAK) && CAN_ACCESS(RA_TRIGGER_SWITCH_GL_FLIGHT_PAD) && CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), - CHECK(RC_GL_JIGGY_WITCH_SWITCH_MAD_MONSTER_MANSION, CAN_ACCESS(RA_WITCH_SWITCH_MAD_MONSTER_MANSION) && CAN_BREAK_OBJECT(RA_BREAK_OBJECT_WINDOWS) && CAN_EXTEND_JUMP_DISTANCE), - CHECK(RC_GL_MUMBO_TOKEN_ADVENT_TOP_WINDOW, (CAN_EXTEND_JUMP_DISTANCE || CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_1, true), + CHECK(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_2, true), + CHECK(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_3, true), + CHECK(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_4, true), + CHECK(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_5, true), + CHECK(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_6, true), + CHECK(RC_GL_EXTRA_LIFE_BACK_OF_GRUNTY_STATUES_HAT, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_LEFT_1, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_LEFT_2, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_LEFT_3, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_RIGHT_1, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_RIGHT_2, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_RIGHT_3, CAN_ATTACK), + CHECK(RC_GL_JIGGY_WITCH_SWITCH_FREEZEEZY_PEAK, CAN_ACCESS(RA_WITCH_SWITCH_FREEZEEZY_PEAK) && CAN_ACCESS(RA_TRIGGER_SWITCH_GL_FLIGHT_PAD) && CAN_USE_ABILITY(ABILITY_11_TURBO_TALON)), + CHECK(RC_GL_JIGGY_WITCH_SWITCH_MAD_MONSTER_MANSION, CAN_ACCESS(RA_WITCH_SWITCH_MAD_MONSTER_MANSION) && CAN_BREAK_OBJECT(RA_BREAK_OBJECT_WINDOWS) && CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_GL_MUMBO_TOKEN_ADVENT_TOP_WINDOW, (CAN_EXTEND_JUMP_DISTANCE || CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), }, .connections = { CONNECTION(RR_FREEZEEZY_PEAK_ENTRANCE, CAN_UNLOCK_WORLD(LEVEL_5_FREEZEEZY_PEAK)), @@ -163,8 +218,12 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_GOBIS_VALLEY] = RandoRegion{ .regionName = "Near Gobi's Valley Entrance", .mapId = MAP_6E_GL_GV_LOBBY, .checks = { - CHECK(RC_GL_JIGGY_WITCH_SWITCH_GOBIS_VALLEY, CAN_ACCESS(RA_WITCH_SWITCH_GOBIS_VALLEY) && CAN_ACCESS(RA_TRIGGER_SWITCH_GL_SHOCK_PAD) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), - CHECK(RC_GL_MUMBO_TOKEN_BEHIND_SARCOPHAGUS, true), + CHECK(RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_1, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_BRICK_WALL)), + CHECK(RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_2, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_BRICK_WALL)), + CHECK(RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_3, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_BRICK_WALL)), + CHECK(RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_4, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_BRICK_WALL)), + CHECK(RC_GL_JIGGY_WITCH_SWITCH_GOBIS_VALLEY, CAN_ACCESS(RA_WITCH_SWITCH_GOBIS_VALLEY) && CAN_ACCESS(RA_TRIGGER_SWITCH_GL_SHOCK_PAD) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_GL_MUMBO_TOKEN_BEHIND_SARCOPHAGUS, true), }, .connections = { CONNECTION(RR_GOBIS_VALLEY_ENTRANCE, CAN_UNLOCK_WORLD(LEVEL_7_GOBIS_VALLEY)), @@ -178,7 +237,11 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_RUSTY_BUCKET_BAY] = RandoRegion{ .regionName = "Near Rusty Bucket Bay Entrance", .mapId = MAP_77_GL_RBB_LOBBY, .checks = { - CHECK(RC_GL_MUMBO_TOKEN_UNDERWATER_RBB_ENTRANCE_AREA, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_RBB_ENTRANCE_1, CAN_ACCESS(RA_TRIGGER_SWITCH_GL_WATER_LEVEL_1)), + CHECK(RC_GL_BLUE_EGG_RBB_ENTRANCE_2, CAN_ACCESS(RA_TRIGGER_SWITCH_GL_WATER_LEVEL_1)), + CHECK(RC_GL_BLUE_EGG_RBB_ENTRANCE_3, CAN_ACCESS(RA_TRIGGER_SWITCH_GL_WATER_LEVEL_1)), + CHECK(RC_GL_BLUE_EGG_RBB_ENTRANCE_4, CAN_ACCESS(RA_TRIGGER_SWITCH_GL_WATER_LEVEL_1)), + CHECK(RC_GL_MUMBO_TOKEN_UNDERWATER_RBB_ENTRANCE_AREA, CAN_USE_ABILITY(ABILITY_F_DIVE)), }, .connections = { CONNECTION(RR_GRUNTILDAS_LAIR_BEFORE_NOTE_DOOR_260, CAN_USE_ABILITY(ABILITY_F_DIVE)), @@ -192,6 +255,16 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_MAD_MONSTER_MANSION] = RandoRegion{ .regionName = "Near Mad Monster Mansion Entrance", .mapId = MAP_75_GL_MMM_LOBBY, + .checks = { + CHECK(RC_GL_BLUE_EGG_MMM_ENTRANCE_1, true), + CHECK(RC_GL_BLUE_EGG_MMM_ENTRANCE_2, true), + CHECK(RC_GL_BLUE_EGG_MMM_ENTRANCE_3, true), + CHECK(RC_GL_BLUE_EGG_MMM_ENTRANCE_4, true), + CHECK(RC_GL_EXTRA_LIFE_BEHIND_MUMBOS_SHACK, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_IRON_GATE)), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_MMM_ENTRANCE_1, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_MMM_ENTRANCE_2, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_MMM_ENTRANCE_3, CAN_ATTACK), + }, .connections = { CONNECTION(RR_GRUNTILDAS_LAIR_NEAR_PUZZLE_BOARD_GOBIS_VALLEY, true), CONNECTION(RR_GRUNTILDAS_LAIR_WATER_SWITCH_1_ROOM, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_IRON_GATE) && CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), @@ -204,7 +277,10 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_TREASURE_TROVE_COVE] = RandoRegion{ .regionName = "Near Treasure Trove Cove Entrance", .mapId = MAP_6D_GL_TTC_LOBBY, .checks = { - CHECK(RC_GL_JIGGY_WITCH_SWITCH_TREASURE_TROVE_COVE, CAN_ACCESS(RA_WITCH_SWITCH_TREASURE_TROVE_COVE) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_TTC_ENTRANCE_1, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_TTC_ENTRANCE_2, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_TTC_ENTRANCE_3, CAN_ATTACK), + CHECK(RC_GL_JIGGY_WITCH_SWITCH_TREASURE_TROVE_COVE, CAN_ACCESS(RA_WITCH_SWITCH_TREASURE_TROVE_COVE) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), }, .connections = { CONNECTION(RR_TREASURE_TROVE_COVE_ENTRANCE, CAN_UNLOCK_WORLD(LEVEL_2_TREASURE_TROVE_COVE)), @@ -236,7 +312,21 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_NEAR_PUZZLE_BOARD_MAD_MONSTER_MANSION] = RandoRegion{ .regionName = "Near Mad Monster Mansion Puzzle Board", .mapId = MAP_78_GL_RBB_AND_MMM_PUZZLE, .checks = { - CHECK(RC_GL_MUMBO_TOKEN_WHIPCRACK_NEAR_MMM_JIGGY_PODIUM, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_5, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_6, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_7, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_8, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_9, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_10, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_EXTRA_LIFE_MAD_MONSTER_MANSION_PUZZLE_ROOM, CAN_ACCESS(RA_PUZZLE_BOARD_RUSTY_BUCKET_BAY)), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_RBB_PUZZLE_1, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_RBB_PUZZLE_2, CAN_ATTACK), + CHECK(RC_GL_HONEYCOMB_BEEHIVE_NEAR_RBB_PUZZLE_3, CAN_ATTACK), + CHECK(RC_GL_MUMBO_TOKEN_WHIPCRACK_NEAR_MMM_JIGGY_PODIUM, CAN_EXTEND_JUMP_DISTANCE), }, .connections = { CONNECTION(RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_RUSTY_BUCKET_BAY, CAN_USE_ABILITY(ABILITY_F_DIVE)), @@ -248,6 +338,10 @@ static RegisterShipInitFunc initFunc([]() { }; Regions[RR_GRUNTILDAS_LAIR_NEAR_PUZZLE_BOARD_RUSTY_BUCKET_BAY] = RandoRegion{ .regionName = "Near Rusty Bucket Bay Puzzle Board", .mapId = MAP_78_GL_RBB_AND_MMM_PUZZLE, + .checks = { + CHECK(RC_GL_BLUE_EGG_RBB_PUZZLE_BOARD_1, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_GRATE)), + CHECK(RC_GL_BLUE_EGG_RBB_PUZZLE_BOARD_2, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_GRATE)), + }, .connections = { CONNECTION(RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_RUSTY_BUCKET_BAY, true), CONNECTION(RR_GRUNTILDAS_LAIR_NEAR_PUZZLE_BOARD_MAD_MONSTER_MANSION, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_GRATE)), @@ -259,8 +353,17 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_PAST_NOTE_DOOR_50] = RandoRegion{ .regionName = "Past First Note Door", .mapId = MAP_6A_GL_TTC_AND_CC_PUZZLE, .checks = { - CHECK(RC_GL_JIGGY_WITCH_SWITCH_CLANKERS_CAVERN, CAN_ACCESS(RA_WITCH_SWITCH_CLANKERS_CAVERN)), - CHECK(RC_GL_MUMBO_TOKEN_BEHIND_PURPLE_CAULDRON, true), + CHECK(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_1, true), + CHECK(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_2, true), + CHECK(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_3, true), + CHECK(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_4, true), + CHECK(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_5, true), + CHECK(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_6, true), + CHECK(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_7, true), + CHECK(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_8, true), + CHECK(RC_GL_EXTRA_LIFE_CLICK_CLOCK_WOODS_PUZZLE_ROOM, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_GL_JIGGY_WITCH_SWITCH_CLANKERS_CAVERN, CAN_ACCESS(RA_WITCH_SWITCH_CLANKERS_CAVERN)), + CHECK(RC_GL_MUMBO_TOKEN_BEHIND_PURPLE_CAULDRON, true), }, .connections = { CONNECTION(RR_GRUNTILDAS_LAIR_BEFORE_NOTE_DOOR_180, true), @@ -275,7 +378,13 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_GRUNTILDAS_LAIR_WATER_SWITCH_1_ROOM] = RandoRegion{ .regionName = "First Water Switch Room", .mapId = MAP_7A_GL_CRYPT, .checks = { - CHECK(RC_GL_MUMBO_TOKEN_BEHIND_MUMBO_IN_CRYPT, true), + CHECK(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_1, true), + CHECK(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_2, true), + CHECK(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_3, true), + CHECK(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_4, true), + CHECK(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_5, true), + CHECK(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_6, true), + CHECK(RC_GL_MUMBO_TOKEN_BEHIND_MUMBO_IN_CRYPT, true), }, .connections = { CONNECTION(RR_GRUNTILDAS_LAIR_NEAR_ENTRANCE_MAD_MONSTER_MANSION, true), diff --git a/src/port/Rando/Logic/Regions/MadMonsterMansion.cpp b/src/port/Rando/Logic/Regions/MadMonsterMansion.cpp index 02b18e728..a246d124d 100644 --- a/src/port/Rando/Logic/Regions/MadMonsterMansion.cpp +++ b/src/port/Rando/Logic/Regions/MadMonsterMansion.cpp @@ -44,6 +44,20 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MAD_MONSTER_MANSION_CHURCH_INTERIOR] = RandoRegion{ .regionName = "Church Interior", .mapId = MAP_1C_MMM_CHURCH, .checks = { + CHECK(RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHEAST_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHEAST_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHWEST_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHWEST_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHEAST_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHEAST_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHWEST_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHWEST_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_LEFT_1, CAN_ATTACK), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_LEFT_2, CAN_ATTACK), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_LEFT_3, CAN_ATTACK), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_RIGHT_1, CAN_ATTACK), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_RIGHT_2, CAN_ATTACK), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_RIGHT_3, CAN_ATTACK), CHECK(RC_MMM_MUMBO_TOKEN_TOP_OF_STOOL_INSIDE_CHURCH, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_MMM_NOTE_ORGAN_PEDALS_1, true), CHECK(RC_MMM_NOTE_ORGAN_PEDALS_2, true), @@ -60,11 +74,12 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MAD_MONSTER_MANSION_CHURCH_INTERIOR_UPPER_ORGAN] = RandoRegion{ .regionName = "Church Organ", .mapId = MAP_1C_MMM_CHURCH, .checks = { - CHECK(RC_MMM_JIGGY_MOTZAND, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), - CHECK(RC_MMM_NOTE_ORGAN_PIPES_1, true), - CHECK(RC_MMM_NOTE_ORGAN_PIPES_2, true), - CHECK(RC_MMM_NOTE_ORGAN_PIPES_3, true), - CHECK(RC_MMM_NOTE_ORGAN_PIPES_4, true), + CHECK(RC_MMM_EXTRA_LIFE_CHURCH_PIPES, true), + CHECK(RC_MMM_JIGGY_MOTZAND, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_MMM_NOTE_ORGAN_PIPES_1, true), + CHECK(RC_MMM_NOTE_ORGAN_PIPES_2, true), + CHECK(RC_MMM_NOTE_ORGAN_PIPES_3, true), + CHECK(RC_MMM_NOTE_ORGAN_PIPES_4, true), }, .connections = { CONNECTION(RR_MAD_MONSTER_MANSION_CHURCH_INTERIOR, true), @@ -74,6 +89,18 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MAD_MONSTER_MANSION_CHURCH_INTERIOR_RAFTERS] = RandoRegion{ .regionName = "Church Rafters", .mapId = MAP_1C_MMM_CHURCH, .checks = { + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_1, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_2, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_3, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_4, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_5, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_6, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_7, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_8, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_9, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_10, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_11, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_12, true), CHECK(RC_MMM_EMPTY_HONEYCOMB_CHURCH_RAFTERS, true), CHECK(RC_MMM_MUMBO_TOKEN_TOP_OF_RAFTER_INSIDE_CHURCH, true), }, @@ -85,6 +112,25 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MAD_MONSTER_MANSION_CHURCH_INTERIOR_WINDOW] = RandoRegion{ .regionName = "Church Banjo Kazooie Window", .mapId = MAP_2B_MMM_SECRET_CHURCH_ROOM, .checks = { + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_1, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_2, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_3, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_4, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_5, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_6, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_7, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_8, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_9, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_10, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_11, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_12, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_13, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_14, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_15, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_16, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_17, true), + CHECK(RC_MMM_BLUE_EGG_CHURCH_WINDOW_18, true), + CHECK(RC_MMM_EXTRA_LIFE_CHURCH_WINDOW, true), }, .connections = { CONNECTION(RR_MAD_MONSTER_MANSION_CHURCH_EXTERIOR, true), @@ -93,6 +139,27 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MAD_MONSTER_MANSION_ENTRANCE] = RandoRegion{ .regionName = "Mad Monster Mansion", .mapId = MAP_1B_MMM_MAD_MONSTER_MANSION, .checks = { + CHECK(RC_MMM_BLUE_EGG_MANSION_AWNING_1, CAN_USE_ABILITY(ABILITY_5_CLIMB) || CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), + CHECK(RC_MMM_BLUE_EGG_MANSION_AWNING_2, CAN_USE_ABILITY(ABILITY_5_CLIMB) || CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), + CHECK(RC_MMM_BLUE_EGG_MANSION_AWNING_3, CAN_USE_ABILITY(ABILITY_5_CLIMB) || CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), + CHECK(RC_MMM_BLUE_EGG_MANSION_AWNING_4, CAN_USE_ABILITY(ABILITY_5_CLIMB) || CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), + CHECK(RC_MMM_BLUE_EGG_MAZE_1, true), + CHECK(RC_MMM_BLUE_EGG_MAZE_2, true), + CHECK(RC_MMM_BLUE_EGG_MAZE_3, true), + CHECK(RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_1, true), + CHECK(RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_2, true), + CHECK(RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_3, true), + CHECK(RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_4, true), + CHECK(RC_MMM_BLUE_EGG_NEAR_WELL_1, CAN_USE_ABILITY(ABILITY_7_FEATHERY_FLAP)), + CHECK(RC_MMM_BLUE_EGG_NEAR_WELL_2, CAN_USE_ABILITY(ABILITY_7_FEATHERY_FLAP)), + CHECK(RC_MMM_BLUE_EGG_NEAR_WELL_3, CAN_USE_ABILITY(ABILITY_7_FEATHERY_FLAP)), + CHECK(RC_MMM_BLUE_EGG_NEAR_WELL_4, CAN_USE_ABILITY(ABILITY_7_FEATHERY_FLAP)), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_MAZE_1, CAN_ATTACK), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_MAZE_2, CAN_ATTACK), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_MAZE_3, CAN_ATTACK), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_TALL_GRASS_1, CAN_ATTACK), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_TALL_GRASS_2, CAN_ATTACK), + CHECK(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_TALL_GRASS_3, CAN_ATTACK), CHECK(RC_MMM_JIGGY_JINJO, CAN_COLLECT_JINJOS(LEVEL_A_MAD_MONSTER_MANSION)), CHECK(RC_MMM_JINJO_BLUE, CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), CHECK(RC_MMM_JINJO_GREEN, CAN_USE_ABILITY(ABILITY_5_CLIMB) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), @@ -182,6 +249,9 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MAD_MONSTER_MANSION_INTERIOR_BEDROOM] = RandoRegion{ .regionName = "Bedroom", .mapId = MAP_2D_MMM_BEDROOM, .checks = { + CHECK(RC_MMM_BLUE_EGG_BEDROOM_1, true), + CHECK(RC_MMM_BLUE_EGG_BEDROOM_2, true), + CHECK(RC_MMM_BLUE_EGG_BEDROOM_3, true), CHECK(RC_MMM_JINJO_YELLOW, CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), CHECK(RC_MMM_MUMBO_TOKEN_INSIDE_BEDROOM, true), CHECK(RC_MMM_NOTE_BEDROOM_1, true), @@ -196,6 +266,9 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MAD_MONSTER_MANSION_INTERIOR_CELLAR] = RandoRegion{ .regionName = "Cellar", .mapId = MAP_1D_MMM_CELLAR, .checks = { + CHECK(RC_MMM_BLUE_EGG_CELLAR_1, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_CELLAR_CASK)), + CHECK(RC_MMM_BLUE_EGG_CELLAR_2, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_CELLAR_CASK)), + CHECK(RC_MMM_BLUE_EGG_CELLAR_3, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_CELLAR_CASK)), CHECK(RC_MMM_JIGGY_CELLAR, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_CELLAR_CASK)), CHECK(RC_MMM_JINJO_PINK, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_CELLAR_CASK)), CHECK(RC_MMM_MUMBO_TOKEN_INSIDE_BARREL_IN_CELLAR, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_CELLAR_CASK)), @@ -212,6 +285,12 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MAD_MONSTER_MANSION_INTERIOR_DINING_ROOM] = RandoRegion{ .regionName = "Dining Room", .mapId = MAP_26_MMM_NAPPERS_ROOM, .checks = { + CHECK(RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_1, CAN_USE_ABILITY(ABILITY_9_FLIGHT) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_2, CAN_USE_ABILITY(ABILITY_9_FLIGHT) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_3, CAN_USE_ABILITY(ABILITY_9_FLIGHT) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_4, CAN_USE_ABILITY(ABILITY_9_FLIGHT) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_5, CAN_USE_ABILITY(ABILITY_9_FLIGHT) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_MMM_EXTRA_LIFE_DINING_ROOM_CHANDELIER, CAN_USE_ABILITY(ABILITY_9_FLIGHT)), CHECK(RC_MMM_JIGGY_MANSION_TABLE, CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), CHECK(RC_MMM_MUMBO_TOKEN_IN_CHIMNEY_INSIDE_DINING_ROOM, CAN_USE_ABILITY(ABILITY_12_WONDERWING)), CHECK(RC_MMM_NOTE_CHAIR_WEST_SIDE_1, true), @@ -288,6 +367,14 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MAD_MONSTER_MANSION_INTERIOR_WINDOW_BOTTOM_SOUTH] = RandoRegion{ .regionName = "Bottom South Window", .mapId = MAP_28_MMM_EGG_ROOM, .checks = { + CHECK(RC_MMM_BLUE_EGG_EGG_ROOM_1, true), + CHECK(RC_MMM_BLUE_EGG_EGG_ROOM_2, true), + CHECK(RC_MMM_BLUE_EGG_EGG_ROOM_3, true), + CHECK(RC_MMM_BLUE_EGG_EGG_ROOM_4, true), + CHECK(RC_MMM_BLUE_EGG_EGG_ROOM_5, true), + CHECK(RC_MMM_BLUE_EGG_EGG_ROOM_6, true), + CHECK(RC_MMM_BLUE_EGG_EGG_ROOM_7, true), + CHECK(RC_MMM_BLUE_EGG_EGG_ROOM_8, true), }, .connections = { CONNECTION(RR_MAD_MONSTER_MANSION_ENTRANCE, true), @@ -296,7 +383,12 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MAD_MONSTER_MANSION_INTERIOR_WINDOW_MIDDLE_WEST] = RandoRegion{ .regionName = "Middle West Window", .mapId = MAP_2E_MMM_HONEYCOMB_ROOM, .checks = { - CHECK(RC_MMM_EMPTY_HONEYCOMB_BENEATH_THE_FLOORBOARDS, CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), + CHECK(RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_1, CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), + CHECK(RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_2, CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), + CHECK(RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_3, CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), + CHECK(RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_4, CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), + CHECK(RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_5, CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), + CHECK(RC_MMM_EMPTY_HONEYCOMB_BENEATH_THE_FLOORBOARDS, CAN_USE_TRANSFORMATION(TRANSFORM_3_PUMPKIN)), }, .connections = { CONNECTION(RR_MAD_MONSTER_MANSION_ENTRANCE, true), diff --git a/src/port/Rando/Logic/Regions/MumbosMountain.cpp b/src/port/Rando/Logic/Regions/MumbosMountain.cpp index 5576b80dc..30920e610 100644 --- a/src/port/Rando/Logic/Regions/MumbosMountain.cpp +++ b/src/port/Rando/Logic/Regions/MumbosMountain.cpp @@ -7,8 +7,37 @@ using namespace Rando::Logic; static RegisterShipInitFunc initFunc([]() { Regions[RR_MUMBOS_MOUNTAIN_ENTRANCE] = RandoRegion{ .regionName = "Mumbo's Mountain", .mapId = MAP_2_MM_MUMBOS_MOUNTAIN, .checks = { + CHECK(RC_MM_BLUE_EGG_HUT_BUNDLE_1, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_MM_BLUE_EGG_HUT_BUNDLE_2, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_MM_BLUE_EGG_HUT_BUNDLE_3, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_MM_BLUE_EGG_HUT_BUNDLE_4, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_MM_BLUE_EGG_HUT_BUNDLE_5, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_3, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_4, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_5, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_6, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_7, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_8, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_MIDDLE_LEDGE_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_MIDDLE_LEDGE_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_UPPER_LEDGE_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_NEAR_CONGA_UPPER_LEDGE_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_BLUE_EGG_UNDER_RUINS_1, true), + CHECK(RC_MM_BLUE_EGG_UNDER_RUINS_2, true), + CHECK(RC_MM_BLUE_EGG_UNDER_RUINS_3, true), + CHECK(RC_MM_BLUE_EGG_UNDER_RUINS_4, true), + CHECK(RC_MM_BLUE_EGG_UNDER_RUINS_5, true), CHECK(RC_MM_EMPTY_HONEYCOMB_HILL, true), CHECK(RC_MM_EMPTY_HONEYCOMB_JUJU, CAN_USE_ABILITY(ABILITY_6_EGGS) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_MM_EXTRA_LIFE_HUT, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER)), + CHECK(RC_MM_HONEYCOMB_BEEHIVE_BY_BIG_BUTT_1, CAN_ATTACK), + CHECK(RC_MM_HONEYCOMB_BEEHIVE_BY_BIG_BUTT_2, CAN_ATTACK), + CHECK(RC_MM_HONEYCOMB_BEEHIVE_BY_BIG_BUTT_3, CAN_ATTACK), + CHECK(RC_MM_HONEYCOMB_BEEHIVE_BY_THE_HUTS_1, CAN_ATTACK), + CHECK(RC_MM_HONEYCOMB_BEEHIVE_BY_THE_HUTS_2, CAN_ATTACK), + CHECK(RC_MM_HONEYCOMB_BEEHIVE_BY_THE_HUTS_3, CAN_ATTACK), CHECK(RC_MM_JIGGY_CHIMPY, CAN_USE_ABILITY(ABILITY_5_CLIMB) || CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_MM_JIGGY_CONGA, CAN_USE_ABILITY(ABILITY_6_EGGS) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_MM_JIGGY_HILL, true), @@ -133,6 +162,12 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MUMBOS_MOUNTAIN_INTERIOR_TICKERS_TOWER] = RandoRegion{ .regionName = "Inside Tickers Tower", .mapId = MAP_C_MM_TICKERS_TOWER, .checks = { + CHECK(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_1, CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), + CHECK(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_2, CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), + CHECK(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_3, CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), + CHECK(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_4, CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), + CHECK(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_5, CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), + CHECK(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_6, CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), CHECK(RC_MM_MUMBO_TOKEN_INSIDE_TICKERS_TOWER, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) || CAN_USE_ABILITY(ABILITY_10_TALON_TROT) || CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), CHECK(RC_MM_NOTE_INSIDE_TICKERS_TOWER_1, CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), CHECK(RC_MM_NOTE_INSIDE_TICKERS_TOWER_2, CAN_USE_TRANSFORMATION(TRANSFORM_2_TERMITE)), @@ -149,6 +184,18 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MUMBOS_MOUNTAIN_INTERIOR_MUMBOS_SKULL] = RandoRegion{ .regionName = "Inside Mumbo's Skull", .mapId = MAP_E_MM_MUMBOS_SKULL, .checks = { + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_1, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_2, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_3, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_4, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_5, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_6, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_7, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_8, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_9, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_10, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_11, true), + CHECK(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_12, true), CHECK(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_1, true), CHECK(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_2, true), CHECK(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_3, true), @@ -161,7 +208,8 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_MUMBOS_MOUNTAIN_TICKERS_TOWER_TOP] = RandoRegion{ .regionName = "Top of Tickers Tower", .mapId = MAP_2_MM_MUMBOS_MOUNTAIN, .checks = { - CHECK(RC_MM_JIGGY_TICKERS_TOWER, true), + CHECK(RC_MM_EXTRA_LIFE_TICKERS_TOWER, true), + CHECK(RC_MM_JIGGY_TICKERS_TOWER, true), }, .connections = { CONNECTION(RR_MUMBOS_MOUNTAIN_ENTRANCE, true), diff --git a/src/port/Rando/Logic/Regions/RustyBucketBay.cpp b/src/port/Rando/Logic/Regions/RustyBucketBay.cpp index 4442ef91b..cdd7bd015 100644 --- a/src/port/Rando/Logic/Regions/RustyBucketBay.cpp +++ b/src/port/Rando/Logic/Regions/RustyBucketBay.cpp @@ -7,6 +7,31 @@ using namespace Rando::Logic; static RegisterShipInitFunc initFunc([]() { Regions[RR_RUSTY_BUCKET_BAY_ENTRANCE] = RandoRegion{ .regionName = "Rusty Bucket Bay", .mapId = MAP_31_RBB_RUSTY_BUCKET_BAY, .checks = { + CHECK(RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_1, CAN_USE_ABILITY(ABILITY_6_EGGS) && (CAN_USE_ABILITY(ABILITY_5_CLIMB) || CAN_USE_ABILITY(ABILITY_10_TALON_TROT))), + CHECK(RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_2, CAN_USE_ABILITY(ABILITY_6_EGGS) && (CAN_USE_ABILITY(ABILITY_5_CLIMB) || CAN_USE_ABILITY(ABILITY_10_TALON_TROT))), + CHECK(RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_3, CAN_USE_ABILITY(ABILITY_6_EGGS) && (CAN_USE_ABILITY(ABILITY_5_CLIMB) || CAN_USE_ABILITY(ABILITY_10_TALON_TROT))), + CHECK(RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_4, CAN_USE_ABILITY(ABILITY_6_EGGS) && (CAN_USE_ABILITY(ABILITY_5_CLIMB) || CAN_USE_ABILITY(ABILITY_10_TALON_TROT))), + CHECK(RC_RRB_BLUE_EGG_ENTRANCE_1, true), + CHECK(RC_RRB_BLUE_EGG_ENTRANCE_2, true), + CHECK(RC_RRB_BLUE_EGG_ENTRANCE_3, true), + CHECK(RC_RRB_BLUE_EGG_ENTRANCE_4, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RRB_BLUE_EGG_ENTRANCE_5, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_5, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_6, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_RBB_BLUE_EGG_ON_LIFE_BOAT_1, true), + CHECK(RC_RBB_BLUE_EGG_ON_LIFE_BOAT_2, true), + CHECK(RC_RBB_BLUE_EGG_ON_LIFE_BOAT_3, true), + CHECK(RC_RBB_BLUE_EGG_TOP_OF_SHIP_1, true), + CHECK(RC_RBB_BLUE_EGG_TOP_OF_SHIP_2, true), + CHECK(RC_RBB_BLUE_EGG_TOP_OF_SHIP_3, true), + CHECK(RC_RBB_BLUE_EGG_TOP_OF_SHIP_4, true), + CHECK(RC_RBB_HONEYCOMB_BEEHIVE_GRATE_ABOVE_PINK_JINJO_1, CAN_ATTACK), + CHECK(RC_RBB_HONEYCOMB_BEEHIVE_GRATE_ABOVE_PINK_JINJO_2, CAN_ATTACK), + CHECK(RC_RBB_HONEYCOMB_BEEHIVE_GRATE_ABOVE_PINK_JINJO_3, CAN_ATTACK), CHECK(RC_RBB_JIGGY_CRANE_CAGE, CAN_USE_ABILITY(ABILITY_0_BARGE) && CAN_USE_ABILITY(ABILITY_5_CLIMB) && CAN_USE_ABILITY(ABILITY_6_EGGS)), CHECK(RC_RBB_JIGGY_FUNNEL, CAN_USE_ABILITY(ABILITY_5_CLIMB)), CHECK(RC_RBB_JIGGY_JINJO, CAN_COLLECT_JINJOS(LEVEL_9_RUSTY_BUCKET_BAY)), @@ -92,10 +117,14 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_RUSTY_BUCKET_BAY_INTERIOR_ANCHOR] = RandoRegion{ .regionName = "Anchor Interior", .mapId = MAP_8B_RBB_ANCHOR_ROOM, .checks = { - CHECK(RC_RBB_NOTE_ANCHOR_ROOM_1, true), - CHECK(RC_RBB_NOTE_ANCHOR_ROOM_2, true), - CHECK(RC_RBB_NOTE_ANCHOR_ROOM_3, true), - CHECK(RC_RBB_NOTE_ANCHOR_ROOM_4, true), + CHECK(RC_RBB_BLUE_EGG_ANCHOR_ROOM_1, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_RBB_BLUE_EGG_ANCHOR_ROOM_2, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_RBB_BLUE_EGG_ANCHOR_ROOM_3, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_RBB_BLUE_EGG_ANCHOR_ROOM_4, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_RBB_NOTE_ANCHOR_ROOM_1, true), + CHECK(RC_RBB_NOTE_ANCHOR_ROOM_2, true), + CHECK(RC_RBB_NOTE_ANCHOR_ROOM_3, true), + CHECK(RC_RBB_NOTE_ANCHOR_ROOM_4, true), }, .connections = { CONNECTION(RR_RUSTY_BUCKET_BAY_ENTRANCE, CAN_USE_ABILITY(ABILITY_F_DIVE)), @@ -166,7 +195,15 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_RUSTY_BUCKET_BAY_INTERIOR_ENGINE_ROOM_MAIN] = RandoRegion{ .regionName = "Engine Room Main", .mapId = MAP_34_RBB_ENGINE_ROOM, .checks = { + CHECK(RC_RBB_BLUE_EGG_ENGING_ROOM_1, CAN_ACCESS(RA_TRIGGER_SWITCH_RBB_PROPELLOR_FIRST)), + CHECK(RC_RBB_BLUE_EGG_ENGING_ROOM_2, CAN_ACCESS(RA_TRIGGER_SWITCH_RBB_PROPELLOR_FIRST)), + CHECK(RC_RBB_BLUE_EGG_ENGING_ROOM_3, CAN_ACCESS(RA_TRIGGER_SWITCH_RBB_PROPELLOR_FIRST)), + CHECK(RC_RBB_BLUE_EGG_ENGING_ROOM_4, CAN_ACCESS(RA_TRIGGER_SWITCH_RBB_PROPELLOR_FIRST)), + CHECK(RC_RBB_EXTRA_LIFE_ENGINE_ROOM, CAN_ACCESS(RA_TRIGGER_SWITCH_RBB_PROPELLOR_FIRST)), CHECK(RC_RBB_EMPTY_HONEYCOMB_ENGINE_ROOM, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_HONEYCOMB_BEEHIVE_ENGINE_ROOM_ENTRANCE_1, CAN_ATTACK), + CHECK(RC_RBB_HONEYCOMB_BEEHIVE_ENGINE_ROOM_ENTRANCE_2, CAN_ATTACK), + CHECK(RC_RBB_HONEYCOMB_BEEHIVE_ENGINE_ROOM_ENTRANCE_3, CAN_ATTACK), CHECK(RC_RBB_JIGGY_ENGINE_ROOM, CAN_ACCESS(RA_TRIGGER_SWITCH_RBB_PROPELLOR_FIRST)), CHECK(RC_RBB_MUMBO_TOKEN_ENGINE_ROOM_LEFT_PIPE, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_RBB_MUMBO_TOKEN_ENGINE_ROOM_RIGHT_PIPE, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), @@ -194,6 +231,15 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_RUSTY_BUCKET_BAY_INTERIOR_KITCHEN] = RandoRegion{ .regionName = "Kitchen", .mapId = MAP_3C_RBB_KITCHEN, .checks = { + CHECK(RC_RBB_BLUE_EGG_KITCHEN_1, CAN_ATTACK), + CHECK(RC_RBB_BLUE_EGG_KITCHEN_2, CAN_ATTACK), + CHECK(RC_RBB_BLUE_EGG_KITCHEN_3, CAN_ATTACK), + CHECK(RC_RBB_BLUE_EGG_KITCHEN_4, CAN_ATTACK), + CHECK(RC_RBB_BLUE_EGG_KITCHEN_5, CAN_ATTACK), + CHECK(RC_RBB_BLUE_EGG_KITCHEN_6, CAN_ATTACK), + CHECK(RC_RBB_BLUE_EGG_KITCHEN_7, CAN_ATTACK), + CHECK(RC_RBB_BLUE_EGG_KITCHEN_8, CAN_ATTACK), + CHECK(RC_RBB_BLUE_EGG_KITCHEN_9, CAN_ATTACK), CHECK(RC_RBB_MUMBO_TOKEN_INSIDE_KITCHEN, true), CHECK(RC_RBB_NOTE_KITCHEN_1, true), CHECK(RC_RBB_NOTE_KITCHEN_2, true), @@ -208,6 +254,10 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_RUSTY_BUCKET_BAY_INTERIOR_NAVIGATION_ROOM] = RandoRegion{ .regionName = "Navigation Room", .mapId = MAP_3D_RBB_NAVIGATION_ROOM, .checks = { + CHECK(RC_RBB_BLUE_EGG_NAVIGATION_ROOM_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_BLUE_EGG_NAVIGATION_ROOM_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_BLUE_EGG_NAVIGATION_ROOM_3, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_BLUE_EGG_NAVIGATION_ROOM_4, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_RBB_MUMBO_TOKEN_INSIDE_NAVIGATION_ROOM, true), CHECK(RC_RBB_NOTE_NAVIGATION_ROOM_1, true), CHECK(RC_RBB_NOTE_NAVIGATION_ROOM_2, true), @@ -221,6 +271,9 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_RUSTY_BUCKET_BAY_INTERIOR_SHIPPING_CONTAINER_FIRST] = RandoRegion{ .regionName = "Shipping Container First", .mapId = MAP_37_RBB_CONTAINER_1, .checks = { + CHECK(RC_RBB_HONEYCOMB_BEEHIVE_FIRST_SHIPPING_CONTAINER_1, CAN_ATTACK), + CHECK(RC_RBB_HONEYCOMB_BEEHIVE_FIRST_SHIPPING_CONTAINER_2, CAN_ATTACK), + CHECK(RC_RBB_HONEYCOMB_BEEHIVE_FIRST_SHIPPING_CONTAINER_3, CAN_ATTACK), CHECK(RC_RBB_MUMBO_TOKEN_UNDER_CHOMPA_INSIDE_FIRST_BLUE_CONTAINER, true), CHECK(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_1, true), CHECK(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_2, true), @@ -248,10 +301,17 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_RUSTY_BUCKET_BAY_INTERIOR_SHIPPING_CONTAINER_THIRD] = RandoRegion{ .regionName = "Shipping Container Third", .mapId = MAP_38_RBB_CONTAINER_3, .checks = { - CHECK(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_1, true), - CHECK(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_2, true), - CHECK(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_3, true), - CHECK(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_4, true), + CHECK(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_1, true), + CHECK(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_2, true), + CHECK(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_3, true), + CHECK(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_4, true), + CHECK(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_5, true), + CHECK(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_6, true), + CHECK(RC_RBB_EXTRA_LIFE_BOOM_BOXES, CAN_ATTACK), + CHECK(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_1, true), + CHECK(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_2, true), + CHECK(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_3, true), + CHECK(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_4, true), }, .connections = { CONNECTION(RR_RUSTY_BUCKET_BAY_ENTRANCE, true), @@ -260,6 +320,11 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_RUSTY_BUCKET_BAY_INTERIOR_TNT_ROOM] = RandoRegion{ .regionName = "TNT Room", .mapId = MAP_3B_RBB_STORAGE_ROOM, .checks = { + CHECK(RC_RBB_BLUE_EGG_TNT_ROOM_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_BLUE_EGG_TNT_ROOM_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_BLUE_EGG_TNT_ROOM_3, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_BLUE_EGG_TNT_ROOM_4, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_BLUE_EGG_TNT_ROOM_5, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_RBB_MUMBO_TOKEN_TOP_OF_BOX_INSIDE_TNT_ROOM, true), CHECK(RC_RBB_NOTE_TNT_ROOM_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_RBB_NOTE_TNT_ROOM_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), @@ -274,10 +339,15 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_RUSTY_BUCKET_BAY_INTERIOR_WAREHOUSE_LOWER] = RandoRegion{ .regionName = "Warehouse Lower", .mapId = MAP_35_RBB_WAREHOUSE, .checks = { - CHECK(RC_RBB_NOTE_WAREHOUSE_INTERIOR_1, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), - CHECK(RC_RBB_NOTE_WAREHOUSE_INTERIOR_2, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), - CHECK(RC_RBB_NOTE_WAREHOUSE_INTERIOR_3, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), - CHECK(RC_RBB_NOTE_WAREHOUSE_INTERIOR_4, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_1, CAN_EXTEND_JUMP_DISTANCE || (CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP))), + CHECK(RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_2, CAN_EXTEND_JUMP_DISTANCE || (CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP))), + CHECK(RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_3, CAN_EXTEND_JUMP_DISTANCE || (CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP))), + CHECK(RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_4, CAN_EXTEND_JUMP_DISTANCE || (CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP))), + CHECK(RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_5, CAN_EXTEND_JUMP_DISTANCE || (CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP))), + CHECK(RC_RBB_NOTE_WAREHOUSE_INTERIOR_1, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_NOTE_WAREHOUSE_INTERIOR_2, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_NOTE_WAREHOUSE_INTERIOR_3, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_NOTE_WAREHOUSE_INTERIOR_4, CAN_EXTEND_JUMP_DISTANCE && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), }, .connections = { CONNECTION(RR_RUSTY_BUCKET_BAY_ENTRANCE, true), @@ -286,7 +356,8 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_RUSTY_BUCKET_BAY_INTERIOR_WAREHOUSE_UPPER] = RandoRegion{ .regionName = "Warehouse Upper", .mapId = MAP_35_RBB_WAREHOUSE, .checks = { - CHECK(RC_RBB_JIGGY_WAREHOUSE, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_EXTRA_LIFE_WAREHOUSE, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_RBB_JIGGY_WAREHOUSE, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), }, .connections = { CONNECTION(RR_RUSTY_BUCKET_BAY_ENTRANCE, true), diff --git a/src/port/Rando/Logic/Regions/SpiralMountain.cpp b/src/port/Rando/Logic/Regions/SpiralMountain.cpp index 0d52a84d6..a7480e7c1 100644 --- a/src/port/Rando/Logic/Regions/SpiralMountain.cpp +++ b/src/port/Rando/Logic/Regions/SpiralMountain.cpp @@ -13,6 +13,8 @@ static RegisterShipInitFunc initFunc([]() { CHECK(RC_SM_EMPTY_HONEYCOMB_TREE, CAN_USE_ABILITY(ABILITY_5_CLIMB) || CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), CHECK(RC_SM_EMPTY_HONEYCOMB_UNDERWATER, CAN_USE_ABILITY(ABILITY_F_DIVE)), CHECK(RC_SM_EMPTY_HONEYCOMB_WATERFALL, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_SM_EXTRA_LIFE_ABOVE_BANJOS_HOUSE, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_SM_EXTRA_LIFE_WATERFALL, CAN_EXTEND_JUMP_DISTANCE), CHECK(RC_SM_MOLEHILL_ATTACK, true), CHECK(RC_SM_MOLEHILL_BEAK_BARGE, true), CHECK(RC_SM_MOLEHILL_CAMERA_CONTROL, true), diff --git a/src/port/Rando/Logic/Regions/TreasureTroveCove.cpp b/src/port/Rando/Logic/Regions/TreasureTroveCove.cpp index 40a7a557f..1b5ef07e9 100644 --- a/src/port/Rando/Logic/Regions/TreasureTroveCove.cpp +++ b/src/port/Rando/Logic/Regions/TreasureTroveCove.cpp @@ -8,8 +8,46 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_TREASURE_TROVE_COVE_ENTRANCE] = RandoRegion{ .regionName = "Treasure Trove Cove", .mapId = MAP_7_TTC_TREASURE_TROVE_COVE, .checks = { // TODO: Logic for Flight because many checks are accessible with flight alone and don't need other methods like Shock Jump if Flight is usable + CHECK(RC_TTC_BLUE_EGG_ABOVE_SHOCK_PAD_1, CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_TTC_BLUE_EGG_ABOVE_SHOCK_PAD_2, CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_TTC_BLUE_EGG_ABOVE_SHOCK_PAD_3, CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), + CHECK(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_1, true), + CHECK(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_2, true), + CHECK(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_3, true), + CHECK(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_4, true), + CHECK(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_5, true), + CHECK(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_6, true), + CHECK(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_7, true), + CHECK(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_8, true), + CHECK(RC_TTC_BLUE_EGG_LOCKUP_1, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_TTC_BLUE_EGG_LOCKUP_2, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_TTC_BLUE_EGG_LOCKUP_3, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_TTC_BLUE_EGG_LOCKUP_4, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_TTC_BLUE_EGG_LOCKUP_5, CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP)), + CHECK(RC_TTC_BLUE_EGG_UPPER_POOL_1, true), + CHECK(RC_TTC_BLUE_EGG_UPPER_POOL_2, true), + CHECK(RC_TTC_BLUE_EGG_UPPER_POOL_3, true), + CHECK(RC_TTC_BLUE_EGG_UPPER_POOL_4, true), + CHECK(RC_TTC_BLUE_EGG_UPPER_POOL_5, true), + CHECK(RC_TTC_BLUE_EGG_UPPER_POOL_6, true), + CHECK(RC_TTC_BLUE_EGG_UPPER_POOL_7, true), CHECK(RC_TTC_EMPTY_HONEYCOMB_FLOATING_BOX, true), CHECK(RC_TTC_EMPTY_HONEYCOMB_UNDERWATER, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_TTC_EXTRA_LIFE_CLIFFSIDE_POOL, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_TTC_EXTRA_LIFE_SHARKFOOD_ISLAND_SIGN, true), + CHECK(RC_TTC_EXTRA_LIFE_SPIRAL_PATH, CAN_USE_ABILITY(ABILITY_F_DIVE)), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_BLUBBERS_SHIP_1, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_BLUBBERS_SHIP_2, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_BLUBBERS_SHIP_3, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_THE_BACK_STAIRS_1, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_THE_BACK_STAIRS_2, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_THE_BACK_STAIRS_3, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_IN_THE_CLIFFSIDE_POOL_1, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_IN_THE_CLIFFSIDE_POOL_2, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_IN_THE_CLIFFSIDE_POOL_3, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_ON_THE_BEACH_1, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_ON_THE_BEACH_2, CAN_ATTACK), + CHECK(RC_TTC_HONEYCOMB_BEEHIVE_ON_THE_BEACH_3, CAN_ATTACK), CHECK(RC_TTC_JIGGY_ALCOVE1, CAN_USE_ABILITY(ABILITY_D_SHOCK_JUMP)), CHECK(RC_TTC_JIGGY_ALCOVE2, true), CHECK(RC_TTC_JIGGY_BLUBBER, CAN_USE_ABILITY(ABILITY_2_BEAK_BUSTER) && CAN_USE_ABILITY(ABILITY_8_FLAP_FLIP) && CAN_USE_ABILITY(ABILITY_F_DIVE)), @@ -176,6 +214,28 @@ static RegisterShipInitFunc initFunc([]() { Regions[RR_TREASURE_TROVE_COVE_LIGHTHOUSE_BASE] = RandoRegion{ .regionName = "Base of the Lighthouse", .mapId = MAP_7_TTC_TREASURE_TROVE_COVE, .checks = { + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_1, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_2, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_3, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_4, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_5, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_6, CAN_EXTEND_JUMP_DISTANCE), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_1, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_2, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_3, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_4, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_5, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_6, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_7, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_8, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_9, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_10, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_11, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_12, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_13, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_14, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_15, CAN_USE_ABILITY(ABILITY_5_CLIMB)), + CHECK(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_16, CAN_USE_ABILITY(ABILITY_5_CLIMB)), CHECK(RC_TTC_JINJO_YELLOW, CAN_EXTEND_JUMP_DISTANCE), CHECK(RC_TTC_MUMBO_TOKEN_BEHIND_LIGHTHOUSE_DOOR, CAN_BREAK_OBJECT(RA_BREAK_OBJECT_WOODEN_DOOR) && CAN_EXTEND_JUMP_DISTANCE), CHECK(RC_TTC_NOTE_LIGHTHOUSE_PATH_1, CAN_EXTEND_JUMP_DISTANCE), diff --git a/src/port/Rando/MiscBehavior/OnFileLoad.cpp b/src/port/Rando/MiscBehavior/OnFileLoad.cpp index f948c808f..e6dc5abab 100644 --- a/src/port/Rando/MiscBehavior/OnFileLoad.cpp +++ b/src/port/Rando/MiscBehavior/OnFileLoad.cpp @@ -1,13 +1,25 @@ #include "MiscBehavior.h" #include +#include "src/port/ShipInit.hpp" #include "ship/Context.h" #include "port/Enhancements/Events/Hooks/Events.h" #include "port/UI/Notification.h" #include "port/Save/Types.h" +#include "port/UI/cvar_prefixes.h" #include "port/Rando/Logic/Logic.h" +#include "port/Rando/CheckTracker/CheckTracker.h" #include "port/Rando/Spoiler/Spoiler.h" +#include "port/Rando/CheckTracker/CheckTracker.h" + +extern "C" { +enum map_e gsworld_getMap(void); +} + +extern "C" { +enum map_e gsworld_getMap(void); +} void Rando::MiscBehavior::OnFileLoad() { REGISTER_LISTENER(OnGameLoad, EVENT_PRIORITY_NORMAL, [](IEvent* event) { @@ -16,6 +28,8 @@ void Rando::MiscBehavior::OnFileLoad() { Rando::Logic::shuffledPool.clear(); }); + REGISTER_LISTENER(OnGameStart, EVENT_PRIORITY_NORMAL, [](IEvent* event) { ShipInit::Init("IS_RANDO"); }); + REGISTER_LISTENER(OnSaveLoad, EVENT_PRIORITY_NORMAL, [](IEvent* event) { OnSaveLoad* ev = (OnSaveLoad*)event; SaveData* saveData = (SaveData*)ev->saveData; @@ -56,6 +70,7 @@ void Rando::MiscBehavior::OnFileLoad() { REGISTER_LISTENER(OnLoadFileSelect, EVENT_PRIORITY_NORMAL, [](IEvent* event) { OnLoadFileSelect* ev = (OnLoadFileSelect*)event; + isCheckTrackerInitialized = false; selectedFileNum = DEFAULT_FILE_NUM; }); } diff --git a/src/port/Rando/MiscBehavior/WorldState.cpp b/src/port/Rando/MiscBehavior/WorldState.cpp index 902477c3b..e42d8c144 100644 --- a/src/port/Rando/MiscBehavior/WorldState.cpp +++ b/src/port/Rando/MiscBehavior/WorldState.cpp @@ -31,8 +31,8 @@ void Rando::StaticData::ModifyRandoInfFlagState(RandoCheckId randoCheckId) { break; case RC_GV_JIGGY_WATER_PYRAMID: case RC_GV_MUMBO_TOKEN_INSIDE_WATER_PYRAMID: - if (RANDO_SAVE_CHECKS[RC_GV_JIGGY_WATER_PYRAMID].obtained && - RANDO_SAVE_CHECKS[RC_GV_MUMBO_TOKEN_INSIDE_WATER_PYRAMID].obtained) { + if (RANDO_SAVE_CHECKS[RC_GV_JIGGY_WATER_PYRAMID].eligible && + RANDO_SAVE_CHECKS[RC_GV_MUMBO_TOKEN_INSIDE_WATER_PYRAMID].eligible) { randoInfFlag = RANDO_INF_WATER_PYRAMID_DRAINED; } break; @@ -96,18 +96,18 @@ void Rando::MiscBehavior::InitWorldStateBehavior() { switch (currentLevel) { case LEVEL_1_MUMBOS_MOUNTAIN: - if (RANDO_SAVE_CHECKS[RC_MM_JIGGY_CHIMPY].obtained) { + if (RANDO_SAVE_CHECKS[RC_MM_JIGGY_CHIMPY].eligible) { if (ev->actorId == ACTOR_F_CHIMPY) { event->Cancelled = true; ev->result = NULL; } } mapSpecificFlags_set(MM_SPECIFIC_FLAG_0_CHIMPY_STUMP_RAISED, - RANDO_SAVE_CHECKS[RC_MM_JIGGY_CHIMPY].obtained); + RANDO_SAVE_CHECKS[RC_MM_JIGGY_CHIMPY].eligible); mapSpecificFlags_set(MM_SPECIFIC_FLAG_2_ORANGE_HAS_BEEN_RETURNED, - RANDO_SAVE_CHECKS[RC_MM_JIGGY_CHIMPY].obtained); + RANDO_SAVE_CHECKS[RC_MM_JIGGY_CHIMPY].eligible); mapSpecificFlags_set(MM_SPECIFIC_FLAG_3_CHIMPY_HAS_LEFT, - RANDO_SAVE_CHECKS[RC_MM_JIGGY_CHIMPY].obtained); + RANDO_SAVE_CHECKS[RC_MM_JIGGY_CHIMPY].eligible); break; case LEVEL_3_CLANKERS_CAVERN: if (currentMap == MAP_22_CC_INSIDE_CLANKER && @@ -117,11 +117,11 @@ void Rando::MiscBehavior::InitWorldStateBehavior() { break; case LEVEL_9_RUSTY_BUCKET_BAY: if (ev->actorId == 0x18F) { - mapSpecificFlags_set(0, RANDO_SAVE_CHECKS[RC_RBB_EMPTY_HONEYCOMB_BOAT_HOUSE].obtained); + mapSpecificFlags_set(0, RANDO_SAVE_CHECKS[RC_RBB_EMPTY_HONEYCOMB_BOAT_HOUSE].eligible); } break; case LEVEL_A_MAD_MONSTER_MANSION: - if (ev->actorId == ACTOR_39_NAPPER && RANDO_SAVE_CHECKS[RC_MMM_JIGGY_MANSION_TABLE].obtained) { + if (ev->actorId == ACTOR_39_NAPPER && RANDO_SAVE_CHECKS[RC_MMM_JIGGY_MANSION_TABLE].eligible) { event->Cancelled = true; ev->result = NULL; } @@ -155,7 +155,7 @@ void Rando::MiscBehavior::InitWorldStateBehavior() { if (currentMap == MAP_26_MMM_NAPPERS_ROOM && randoSaveCheck.randoCheckId != RC_MMM_JIGGY_MANSION_TABLE) { event->Cancelled = true; - ev->result = RANDO_SAVE_CHECKS[RC_MMM_JIGGY_MANSION_TABLE].obtained; + ev->result = RANDO_SAVE_CHECKS[RC_MMM_JIGGY_MANSION_TABLE].eligible; break; } } @@ -169,20 +169,20 @@ void Rando::MiscBehavior::InitWorldStateBehavior() { if (ev->jiggyId == JIGGY_2E_FP_PRESENTS) { if (currenLevel == LEVEL_5_FREEZEEZY_PEAK) { event->Cancelled = true; - ev->result = RANDO_SAVE_CHECKS[RC_FP_JIGGY_IGLOO].obtained; + ev->result = RANDO_SAVE_CHECKS[RC_FP_JIGGY_IGLOO].eligible; break; } } if (ev->jiggyId == JIGGY_37_LAIR_BGS_WITCH_SWITCH) { if (currenLevel == LEVEL_6_LAIR) { event->Cancelled = true; - ev->result = RANDO_SAVE_CHECKS[RC_GL_JIGGY_WITCH_SWITCH_BUBBLEGLOOP_SWAMP].obtained; + ev->result = RANDO_SAVE_CHECKS[RC_GL_JIGGY_WITCH_SWITCH_BUBBLEGLOOP_SWAMP].eligible; break; } } event->Cancelled = true; - ev->result = randoSaveCheck.obtained; + ev->result = randoSaveCheck.eligible; break; } } @@ -211,7 +211,7 @@ void Rando::MiscBehavior::InitWorldStateBehavior() { ev->result = RANDO_SAVE_FLAGS[RANDO_INF_MINIGAME_RINGS_COMPLETED].flagState || CustomObject::CheckSpawnedIdList(randoCheckId); } else { - ev->result = CustomObject::CheckSpawnedIdList(randoCheckId) || RANDO_SAVE_CHECKS[randoCheckId].obtained; + ev->result = CustomObject::CheckSpawnedIdList(randoCheckId) || RANDO_SAVE_CHECKS[randoCheckId].eligible; } } }) @@ -237,7 +237,9 @@ void Rando::MiscBehavior::InitWorldStateBehavior() { } for (auto& saveCheck : RANDO_SAVE_CHECKS) { - if (Rando::StaticData::Checks[saveCheck.shuffledCheckId].randoCheckType != RCTYPE_EMPTY_HONEYCOMB) { + Rando::StaticData::RandoStaticItem randoItem = Rando::StaticData::Items[saveCheck.randoItemId]; + + if (randoItem.randoItemType != RITYPE_EMPTY_HONEYCOMB) { continue; } @@ -247,7 +249,7 @@ void Rando::MiscBehavior::InitWorldStateBehavior() { if (ev->honeycombId == HONEYCOMB_17_SM_COLLIWOBBLE) { ev->result = false; } else { - ev->result = saveCheck.obtained; + ev->result = saveCheck.eligible; } break; @@ -267,13 +269,15 @@ void Rando::MiscBehavior::InitWorldStateBehavior() { } for (auto& saveCheck : RANDO_SAVE_CHECKS) { - if (Rando::StaticData::Checks[saveCheck.shuffledCheckId].randoCheckType != RCTYPE_MUMBO_TOKEN) { + Rando::StaticData::RandoStaticItem randoItem = Rando::StaticData::Items[saveCheck.randoItemId]; + + if (randoItem.randoItemType != RITYPE_MUMBO_TOKEN) { continue; } if (saveCheck.randoCollectionId == ev->tokenId) { event->Cancelled = true; - ev->result = saveCheck.obtained; + ev->result = saveCheck.eligible; break; } } diff --git a/src/port/Rando/ObjectBehavior/BlueEgg.cpp b/src/port/Rando/ObjectBehavior/BlueEgg.cpp new file mode 100644 index 000000000..7d55692d7 --- /dev/null +++ b/src/port/Rando/ObjectBehavior/BlueEgg.cpp @@ -0,0 +1,40 @@ +#include "port/ShipInit.hpp" +#include "port/Enhancements/Events/Hooks/Events.h" +#include "port/Rando/Logic/Logic.h" +#include "port/Rando/CustomCollectible/CustomCollectible.h" + +#define OPTION_ENABLED RANDO_SAVE_OPTIONS[RO_SHUFFLE_BLUE_EGGS].optionValue + +bool OverrideBlueEggSpawn(s16 spawnPosition[3], int32_t propAsset) { + if (propAsset != ASSET_6D7_SPRITE_BLUE_EGGS) { + return false; + } + + s32 position[3] = { spawnPosition[0], spawnPosition[1], spawnPosition[2] }; + RandoCheckId randoCheckId = Rando::StaticData::GetCheckByPosition(position[0], position[1], position[2]); + + if (randoCheckId == RC_UNKNOWN || !Rando::Logic::IsCheckShuffled(randoCheckId)) { + return false; + } + + // Let vanilla blue eggs spawn after check has been obtained. + if (Rando::Logic::IsCheckObtained(randoCheckId)) { + return false; + } + + CustomCollectible::QueueProp(position, randoCheckId); + return true; +} + +void RegisterRandoBlueEggs() { + COND_VB_SHOULD(VB_OVERRIDE_PROP_SPAWN, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, { + s16* spawnPosition = va_arg(args, s16*); + int32_t propAsset = va_arg(args, int32_t); + bool replaceEgg = OverrideBlueEggSpawn(spawnPosition, propAsset); + if (replaceEgg) { + *should = true; + } + }); +} + +static RegisterShipInitFunc initFunc(RegisterRandoBlueEggs, { "IS_RANDO" }); diff --git a/src/port/Rando/ObjectBehavior/Boggy.cpp b/src/port/Rando/ObjectBehavior/Boggy.cpp index 8634b420b..613d96c15 100644 --- a/src/port/Rando/ObjectBehavior/Boggy.cpp +++ b/src/port/Rando/ObjectBehavior/Boggy.cpp @@ -20,7 +20,7 @@ void Rando::ObjectBehavior::ModifyBoggyBehavior(void* boggyActor) { switch (actor->actor_info->actorId) { case ACTOR_160_BOGGY_1: case ACTOR_181_SCARF_SLED: - if (RANDO_SAVE_CHECKS[RC_FP_JIGGY_SLED_TO_BOGGY].obtained) { + if (RANDO_SAVE_CHECKS[RC_FP_JIGGY_SLED_TO_BOGGY].eligible) { marker_despawn(actor->marker); if (actor->actor_info->actorId == ACTOR_160_BOGGY_1) { func_80387760(actor->marker); @@ -28,12 +28,12 @@ void Rando::ObjectBehavior::ModifyBoggyBehavior(void* boggyActor) { } break; case ACTOR_C8_BOGGY_2: - if (!RANDO_SAVE_CHECKS[RC_FP_JIGGY_SLED_TO_BOGGY].obtained) { + if (!RANDO_SAVE_CHECKS[RC_FP_JIGGY_SLED_TO_BOGGY].eligible) { marker_despawn(actor->marker); } break; case 0x33D: - if (!RANDO_SAVE_CHECKS[RC_FP_JIGGY_BOGGY_RACE_2].obtained) { + if (!RANDO_SAVE_CHECKS[RC_FP_JIGGY_BOGGY_RACE_2].eligible) { marker_despawn(actor->marker); } break; diff --git a/src/port/Rando/ObjectBehavior/Bundle.cpp b/src/port/Rando/ObjectBehavior/Bundle.cpp index ba605d73a..739359c51 100644 --- a/src/port/Rando/ObjectBehavior/Bundle.cpp +++ b/src/port/Rando/ObjectBehavior/Bundle.cpp @@ -1,298 +1,551 @@ #include "ObjectBehavior.h" #include "port/Rando/Logic/Logic.h" #include "port/Rando/CustomObject/CustomObject.h" - -#include -#include "port/UI/cvar_prefixes.h" -#include -#include "port/Enhancements/Events/PortEnhancements.h" #include "port/Enhancements/Events/Hooks/Events.h" -#include "spdlog/spdlog.h" + +#include "port/ShipInit.hpp" +#include "port/Rando/CustomCollectible/CustomCollectible.h" extern "C" { extern f32 gBundle_yaw; - bool fileProgressFlag_get(enum file_progress_e index); -void marker_despawn(ActorMarker* marker); } -bool applyCustomPhysics = false; -std::vector bundleDespawnQueue; - -void Rando::ObjectBehavior::DespawnCollectedBundles() { - if (bundleDespawnQueue.empty()) { - return; - } - - for (auto& bundle : bundleDespawnQueue) { - marker_despawn(bundle); - } +typedef struct { + RandoCheckId randoCheckId; + bool customPhysics; +} RandoBundleInfo; - bundleDespawnQueue.clear(); -} +int32_t vileCount = 0; -void Rando::ObjectBehavior::InitBundleBehavior() { - COND_HOOK(ClearBundleDespawnQueue, EVENT_PRIORITY_NORMAL, IS_RANDO, - [](IEvent* event) { bundleDespawnQueue.clear(); }) - - COND_VB_SHOULD(VB_BUNDLE_SPAWN_SET_ACTOR_DATA, EVENT_PRIORITY_NORMAL, IS_RANDO, { - Actor* refActor = va_arg(args, Actor*); - - if (refActor == NULL) { - *should = true; - } - }) +RandoBundleInfo IdentifyBundle(bundle_e bundleId, BundleInfo* bundleInfo, s32 bundleCount, f32 spawnPosition[3]) { + map_e currentMap = gsworld_getMap(); + level_e currentLevel = map_getLevel(currentMap); + s32 position[3] = { (int32_t)spawnPosition[0], (int32_t)spawnPosition[1], (int32_t)spawnPosition[2] }; + RandoBundleInfo randoBundleInfo; + randoBundleInfo.randoCheckId = RC_UNKNOWN; + randoBundleInfo.customPhysics = false; - COND_VB_SHOULD(VB_OVERRIDE_BUNDLE_SPAWN, EVENT_PRIORITY_NORMAL, IS_RANDO, { - bundle_e bundleId = (bundle_e)va_arg(args, int); - BundleInfo* bundleInfo = va_arg(args, BundleInfo*); - s32 bundleCount = va_arg(args, s32); - f32* position = va_arg(args, f32*); - Actor** actor = va_arg(args, Actor**); - - map_e currentMap = gsworld_getMap(); - level_e currentLevel = map_getLevel(currentMap); - - int32_t spawnPosition[3]; - spawnPosition[0] = (int32_t)position[0]; - spawnPosition[1] = (int32_t)position[1]; - spawnPosition[2] = (int32_t)position[2]; - - if (bundleId == BUNDLE_16__HONEYCOMB && - (currentMap == MAP_43_CCW_SPRING || currentMap == MAP_B_CC_CLANKERS_CAVERN)) { - if (CheckEnemyOverlapPosition(spawnPosition)) { - *should = false; - return; + switch (currentLevel) { + case LEVEL_1_MUMBOS_MOUNTAIN: + switch (bundleId) { + case BUNDLE_0_MM_HUT_MUSIC_NOTE: + randoBundleInfo.randoCheckId = (RandoCheckId)((int32_t)RC_MM_NOTE_HUT_BUNDLE_1 + bundleCount); + randoBundleInfo.customPhysics = true; + break; + case BUNDLE_1_MM_HUT_BLUE_EGG: + randoBundleInfo.randoCheckId = (RandoCheckId)((int32_t)RC_MM_BLUE_EGG_HUT_BUNDLE_1 + bundleCount); + randoBundleInfo.customPhysics = true; + break; + case BUNDLE_3_MM_HUT_JINJO_GREEN: + randoBundleInfo.randoCheckId = RC_MM_JINJO_GREEN; + randoBundleInfo.customPhysics = true; + break; + case BUNDLE_4_MM_HUT_JIGGY: + if (position[1] < 2000) { + randoBundleInfo.randoCheckId = RC_MM_JIGGY_ORANGE_PADS; + } else { + randoBundleInfo.randoCheckId = RC_MM_JIGGY_HUTS; + randoBundleInfo.customPhysics = true; + } + break; + case BUNDLE_6_MM_HUT_EXTRA_LIFE: + randoBundleInfo.randoCheckId = RC_MM_EXTRA_LIFE_HUT; + randoBundleInfo.customPhysics = true; + break; + case BUNDLE_7__JIGGY: + randoBundleInfo.randoCheckId = RC_MM_JIGGY_CHIMPY; + break; + case BUNDLE_10__JIGGY: + randoBundleInfo.randoCheckId = RC_MM_JIGGY_JUJU; + break; + case BUNDLE_15__JIGGY: + randoBundleInfo.randoCheckId = RC_MM_JIGGY_CONGA; + break; + case BUNDLE_18__HONEYCOMB: + if (position[1] < 400) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_MM_HONEYCOMB_BEEHIVE_BY_BIG_BUTT_1 + bundleCount); + } else { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_MM_HONEYCOMB_BEEHIVE_BY_THE_HUTS_1 + bundleCount); + } + break; + default: + break; } - } - - RandoCheckId randoCheckId = RC_UNKNOWN; - applyCustomPhysics = false; - - switch (currentLevel) { - case LEVEL_1_MUMBOS_MOUNTAIN: - switch (bundleId) { - case BUNDLE_0_MM_HUT_MUSIC_NOTE: - randoCheckId = (RandoCheckId)((int32_t)RC_MM_NOTE_HUT_BUNDLE_1 + bundleCount); - applyCustomPhysics = true; - break; - case BUNDLE_3_MM_HUT_JINJO_GREEN: - randoCheckId = RC_MM_JINJO_GREEN; - applyCustomPhysics = true; - break; - case BUNDLE_4_MM_HUT_JIGGY: - if (spawnPosition[1] < 2000) { - randoCheckId = RC_MM_JIGGY_ORANGE_PADS; - } else { - randoCheckId = RC_MM_JIGGY_HUTS; - applyCustomPhysics = true; - } - break; - case BUNDLE_7__JIGGY: - randoCheckId = RC_MM_JIGGY_CHIMPY; - break; - case BUNDLE_10__JIGGY: - randoCheckId = RC_MM_JIGGY_JUJU; - break; - case BUNDLE_15__JIGGY: - randoCheckId = RC_MM_JIGGY_CONGA; - break; - default: - break; - } - break; - case LEVEL_2_TREASURE_TROVE_COVE: - switch (bundleId) { - case BUNDLE_4_MM_HUT_JIGGY: - randoCheckId = RC_TTC_JIGGY_RED_X; - break; - case BUNDLE_7__JIGGY: - randoCheckId = RC_TTC_JIGGY_BLUBBER; - break; - default: - break; - } - break; - case LEVEL_3_CLANKERS_CAVERN: - switch (bundleId) { - case BUNDLE_10__JIGGY: - switch (spawnPosition[1]) { - case 1536: - randoCheckId = RC_CC_JIGGY_TOOTH; - break; - default: - randoCheckId = RC_CC_JIGGY_RINGS; - break; - } - break; - default: - break; - } - break; - case LEVEL_4_BUBBLEGLOOP_SWAMP: - switch (bundleId) { - case BUNDLE_7__JIGGY: - randoCheckId = RC_BGS_JIGGY_CROCTUS; - break; - case BUNDLE_8__JIGGY: - randoCheckId = RC_BGS_JIGGY_MR_VILE; - break; - case BUNDLE_9__JIGGY: - randoCheckId = RC_BGS_JIGGY_TANKTUP; - break; - case BUNDLE_B_BGS_HUT_MUSIC_NOTE: - randoCheckId = (RandoCheckId)((int32_t)RC_BGS_NOTE_HUT_BUNDLE_1 + bundleCount); - break; - case BUNDLE_C_BGS_HUT_JIGGY: - randoCheckId = RC_BGS_JIGGY_HUTS; - break; - case BUNDLE_10__JIGGY: - switch (spawnPosition[2]) { - case 49: - randoCheckId = RC_BGS_JIGGY_ELEVATED_WALKWAY; - break; - case -1386: - randoCheckId = RC_BGS_JIGGY_FLIBBITS; - break; - case 2799: - randoCheckId = RC_BGS_JIGGY_PINKEGG; - break; - case -1020: - randoCheckId = RC_BGS_JIGGY_TIPTUP; - break; - case -6148: - randoCheckId = RC_BGS_JIGGY_MAZE; - break; - default: - break; - } - break; - default: - break; - } - break; - case LEVEL_5_FREEZEEZY_PEAK: - switch (bundleId) { - case BUNDLE_9__JIGGY: - randoCheckId = RC_FP_JIGGY_SLED_TO_BOGGY; - break; - case BUNDLE_10__JIGGY: - if (spawnPosition[1] > 1900) { - randoCheckId = RC_FP_JIGGY_BOGGY_RACE_1; - } else if (spawnPosition[1] < 850) { - randoCheckId = RC_FP_JIGGY_WOZZA; - } - break; - case BUNDLE_7__JIGGY: - randoCheckId = RC_FP_JIGGY_BOGGY_RACE_2; - break; - default: - break; - } - break; - case LEVEL_6_LAIR: - switch (bundleId) { - case BUNDLE_C_BGS_HUT_JIGGY: - if (spawnPosition[1] == - Rando::StaticData::Checks[RC_GL_JIGGY_WITCH_SWITCH_MUMBOS_MOUNTAIN].posY) { - randoCheckId = RC_GL_JIGGY_WITCH_SWITCH_MUMBOS_MOUNTAIN; + break; + case LEVEL_2_TREASURE_TROVE_COVE: + switch (bundleId) { + case BUNDLE_4_MM_HUT_JIGGY: + randoBundleInfo.randoCheckId = RC_TTC_JIGGY_RED_X; + break; + case BUNDLE_7__JIGGY: + randoBundleInfo.randoCheckId = RC_TTC_JIGGY_BLUBBER; + break; + default: + break; + case BUNDLE_18__HONEYCOMB: + if (position[1] < 900 && position[1] > 890) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_TTC_HONEYCOMB_BEEHIVE_NEAR_BLUBBERS_SHIP_1 + bundleCount); + } else if (position[1] < 1770 && position[1] > 1765) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_TTC_HONEYCOMB_BEEHIVE_NEAR_THE_BACK_STAIRS_1 + bundleCount); + } else if (position[1] < 1910 && position[1] > 1905) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_TTC_HONEYCOMB_BEEHIVE_IN_THE_CLIFFSIDE_POOL_1 + bundleCount); + } else if (position[1] < 875 && position[1] > 870) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_TTC_HONEYCOMB_BEEHIVE_ON_THE_BEACH_1 + bundleCount); + } + break; + } + break; + case LEVEL_3_CLANKERS_CAVERN: + switch (bundleId) { + case BUNDLE_10__JIGGY: + switch (position[1]) { + case 1536: + randoBundleInfo.randoCheckId = RC_CC_JIGGY_TOOTH; break; - } - if (spawnPosition[1] == - Rando::StaticData::Checks[RC_GL_JIGGY_WITCH_SWITCH_RUSTY_BUCKET_BAY].posY) { - randoCheckId = RC_GL_JIGGY_WITCH_SWITCH_RUSTY_BUCKET_BAY; + default: + randoBundleInfo.randoCheckId = RC_CC_JIGGY_RINGS; break; - } - if (spawnPosition[1] == - Rando::StaticData::Checks[RC_GL_JIGGY_WITCH_SWITCH_CLICK_CLOCK_WOOD].posY) { - randoCheckId = RC_GL_JIGGY_WITCH_SWITCH_CLICK_CLOCK_WOOD; + } + break; + case BUNDLE_18__HONEYCOMB: + if (position[1] < 1405 && position[1] > 1395) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CC_HONEYCOMB_BEEHIVE_INSIDE_CLANKER_1 + bundleCount); + } else if (position[1] < 5495 && position[1] > 5490) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_ENTRANCE_1 + bundleCount); + } else if (position[1] < 3820 && position[1] > 3810) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_YELLOW_GRATES_1 + bundleCount); + } + break; + default: + break; + } + break; + case LEVEL_4_BUBBLEGLOOP_SWAMP: + switch (bundleId) { + case BUNDLE_6_MM_HUT_EXTRA_LIFE: + randoBundleInfo.randoCheckId = (RandoCheckId)((int32_t)RC_BGS_EXTRA_LIFE_MR_VILE_1 + vileCount); + vileCount++; + randoBundleInfo.customPhysics = true; + if (vileCount >= 3) { + vileCount = 0; + } + break; + case BUNDLE_7__JIGGY: + randoBundleInfo.randoCheckId = RC_BGS_JIGGY_CROCTUS; + break; + case BUNDLE_8__JIGGY: + randoBundleInfo.randoCheckId = RC_BGS_JIGGY_MR_VILE; + break; + case BUNDLE_9__JIGGY: + randoBundleInfo.randoCheckId = RC_BGS_JIGGY_TANKTUP; + break; + case BUNDLE_B_BGS_HUT_MUSIC_NOTE: + randoBundleInfo.randoCheckId = (RandoCheckId)((int32_t)RC_BGS_NOTE_HUT_BUNDLE_1 + bundleCount); + break; + case BUNDLE_C_BGS_HUT_JIGGY: + randoBundleInfo.randoCheckId = RC_BGS_JIGGY_HUTS; + break; + case BUNDLE_10__JIGGY: + switch (position[2]) { + case 49: + randoBundleInfo.randoCheckId = RC_BGS_JIGGY_ELEVATED_WALKWAY; break; - } - if (spawnPosition[1] == - Rando::StaticData::Checks[RC_GL_JIGGY_WITCH_SWITCH_CLANKERS_CAVERN].posY) { - randoCheckId = RC_GL_JIGGY_WITCH_SWITCH_CLANKERS_CAVERN; + case -1386: + randoBundleInfo.randoCheckId = RC_BGS_JIGGY_FLIBBITS; break; - } - break; - case BUNDLE_10__JIGGY: - if (fileProgressFlag_get(FILEPROG_1A_TTC_WITCH_SWITCH_JIGGY_PRESSED) && - gsworld_getMap() == MAP_6D_GL_TTC_LOBBY) { - randoCheckId = RC_GL_JIGGY_WITCH_SWITCH_TREASURE_TROVE_COVE; - auto spawnTuple = Rando::StaticData::multiSpawnCheckMap.at(randoCheckId); - spawnPosition[0] = std::get<0>(spawnTuple); - spawnPosition[1] = std::get<1>(spawnTuple); - spawnPosition[2] = std::get<2>(spawnTuple); - } else { - applyCustomPhysics = true; - randoCheckId = Rando::StaticData::GetCheckByPosition(spawnPosition[0], spawnPosition[1], - spawnPosition[2]); - } - break; - default: - break; - } - break; - case LEVEL_7_GOBIS_VALLEY: - switch (bundleId) { - case BUNDLE_10__JIGGY: - randoCheckId = - Rando::StaticData::GetCheckByPosition(spawnPosition[0], spawnPosition[1], spawnPosition[2]); - break; - case BUNDLE_D__EMPTY_HONEYCOMB: - randoCheckId = RC_GV_EMPTY_HONEYCOMB_GOBI; + case 2799: + randoBundleInfo.randoCheckId = RC_BGS_JIGGY_PINKEGG; + break; + case -1020: + randoBundleInfo.randoCheckId = RC_BGS_JIGGY_TIPTUP; + break; + case -6148: + randoBundleInfo.randoCheckId = RC_BGS_JIGGY_MAZE; + break; + default: + break; + } + break; + case BUNDLE_18__HONEYCOMB: + if (position[1] < 1260 && position[1] > 1250) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_BGS_HONEYCOMB_BEEHIVE_ELEVATED_WALKWAY_1 + bundleCount); + } else if (position[1] < 1160 && position[1] > 1150) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_BGS_HONEYCOMB_BEEHIVE_NEAR_MAZE_ENTRANCE_1 + bundleCount); + } else if (position[0] < 4390 && position[0] > 4385) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_BGS_HONEYCOMB_BEEHIVE_NEAR_TANKTUP_1 + bundleCount); + } else if (position[0] < 2565 && position[0] > 2560) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_BGS_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_1 + bundleCount); + } + break; + default: + break; + } + break; + case LEVEL_5_FREEZEEZY_PEAK: + switch (bundleId) { + case BUNDLE_9__JIGGY: + randoBundleInfo.randoCheckId = RC_FP_JIGGY_SLED_TO_BOGGY; + break; + case BUNDLE_10__JIGGY: + if (position[1] > 1900) { + randoBundleInfo.randoCheckId = RC_FP_JIGGY_BOGGY_RACE_1; + } else if (position[1] < 850) { + randoBundleInfo.randoCheckId = RC_FP_JIGGY_WOZZA; + } + break; + case BUNDLE_7__JIGGY: + randoBundleInfo.randoCheckId = RC_FP_JIGGY_BOGGY_RACE_2; + break; + case BUNDLE_18__HONEYCOMB: + if (position[1] < 820 && position[1] > 810) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_FP_HONEYCOMB_BEEHIVE_NEAR_RACE_START_1 + bundleCount); + } else if (position[1] < 590 && position[1] > 580) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_FP_HONEYCOMB_BEEHIVE_PRESENT_STACK_1 + bundleCount); + } else if (position[1] < 1755 && position[1] > 1745) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_FP_HONEYCOMB_BEEHIVE_SCARF_END_1 + bundleCount); + } else if (position[1] < 5760 && position[1] > 5750) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_FP_HONEYCOMB_BEEHIVE_SCARF_START_1 + bundleCount); + } + break; + default: + break; + } + break; + case LEVEL_6_LAIR: + switch (bundleId) { + case BUNDLE_C_BGS_HUT_JIGGY: + if (position[1] == Rando::StaticData::Checks[RC_GL_JIGGY_WITCH_SWITCH_MUMBOS_MOUNTAIN].posY) { + randoBundleInfo.randoCheckId = RC_GL_JIGGY_WITCH_SWITCH_MUMBOS_MOUNTAIN; break; - default: + } + if (position[1] == Rando::StaticData::Checks[RC_GL_JIGGY_WITCH_SWITCH_RUSTY_BUCKET_BAY].posY) { + randoBundleInfo.randoCheckId = RC_GL_JIGGY_WITCH_SWITCH_RUSTY_BUCKET_BAY; break; - } - break; - case LEVEL_B_SPIRAL_MOUNTAIN: - switch (bundleId) { - case BUNDLE_1F_SM_EMPTY_HONEYCOMB: - if (spawnPosition[1] >= 500 && spawnPosition[1] <= 800) { - randoCheckId = RC_SM_EMPTY_HONEYCOMB_COLLIWOBBLE; - } else { - randoCheckId = RC_SM_EMPTY_HONEYCOMB_QUARRIES; - } + } + if (position[1] == Rando::StaticData::Checks[RC_GL_JIGGY_WITCH_SWITCH_CLICK_CLOCK_WOOD].posY) { + randoBundleInfo.randoCheckId = RC_GL_JIGGY_WITCH_SWITCH_CLICK_CLOCK_WOOD; break; - default: + } + if (position[1] == Rando::StaticData::Checks[RC_GL_JIGGY_WITCH_SWITCH_CLANKERS_CAVERN].posY) { + randoBundleInfo.randoCheckId = RC_GL_JIGGY_WITCH_SWITCH_CLANKERS_CAVERN; break; - } - break; - default: - return; - } + } + break; + case BUNDLE_10__JIGGY: + if (fileProgressFlag_get(FILEPROG_1A_TTC_WITCH_SWITCH_JIGGY_PRESSED) && + gsworld_getMap() == MAP_6D_GL_TTC_LOBBY) { + randoBundleInfo.randoCheckId = RC_GL_JIGGY_WITCH_SWITCH_TREASURE_TROVE_COVE; + auto spawnTuple = Rando::StaticData::multiSpawnCheckMap.at(randoBundleInfo.randoCheckId); + position[0] = std::get<0>(spawnTuple); + position[1] = std::get<1>(spawnTuple); + position[2] = std::get<2>(spawnTuple); + } else { + randoBundleInfo.customPhysics = true; + randoBundleInfo.randoCheckId = + Rando::StaticData::GetCheckByPosition(position[0], position[1], position[2]); + } + break; + case BUNDLE_18__HONEYCOMB: + switch (currentMap) { + case MAP_69_GL_MM_LOBBY: + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GL_HONEYCOMB_BEEHIVE_NEAR_50_NOTE_DOOR_1 + bundleCount); + break; + case MAP_6D_GL_TTC_LOBBY: + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GL_HONEYCOMB_BEEHIVE_NEAR_TTC_ENTRANCE_1 + bundleCount); + break; + case MAP_6F_GL_FP_LOBBY: + if (position[1] < 295 && position[1] > 285) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_LEFT_1 + + bundleCount); + } else if (position[1] < 255 && position[1] > 245) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_RIGHT_1 + + bundleCount); + } + break; + case MAP_70_GL_CC_LOBBY: + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GL_HONEYCOMB_BEEHIVE_NEAR_CC_ENTRANCE_1 + bundleCount); + break; + case MAP_71_GL_STATUE_ROOM: + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GL_HONEYCOMB_BEEHIVE_NEAR_FIRST_GRUNTY_STATUE_1 + + bundleCount); + break; + case MAP_72_GL_BGS_LOBBY: + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GL_HONEYCOMB_BEEHIVE_BEHIND_BGS_ENTRANCE_1 + bundleCount); + break; + case MAP_75_GL_MMM_LOBBY: + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GL_HONEYCOMB_BEEHIVE_BEHIND_MMM_ENTRANCE_1 + bundleCount); + break; + case MAP_78_GL_RBB_AND_MMM_PUZZLE: + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GL_HONEYCOMB_BEEHIVE_NEAR_RBB_PUZZLE_1 + bundleCount); + break; + case MAP_79_GL_CCW_LOBBY: + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GL_HONEYCOMB_BEEHIVE_NEAR_CCW_PUZZLE_SWITCH_1 + bundleCount); + break; + } + break; + default: + break; + } + break; + case LEVEL_7_GOBIS_VALLEY: + switch (bundleId) { + case BUNDLE_10__JIGGY: + randoBundleInfo.randoCheckId = + Rando::StaticData::GetCheckByPosition(position[0], position[1], position[2]); + break; + case BUNDLE_D__EMPTY_HONEYCOMB: + randoBundleInfo.randoCheckId = RC_GV_EMPTY_HONEYCOMB_GOBI; + break; + case BUNDLE_18__HONEYCOMB: + if (position[1] < 2990 && position[1] > 2980) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GV_HONEYCOMB_BEEHIVE_BEHIND_WATER_PYRAMID_1 + bundleCount); + } else if (position[1] < 1990 && position[1] > 1980) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GV_HONEYCOMB_BEEHIVE_NEAR_PUZZLE_PYRAMID_1 + bundleCount); + } else if (position[1] < 610 && position[1] > 600) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_GV_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_1 + bundleCount); + } + break; + default: + break; + } + break; + case LEVEL_8_CLICK_CLOCK_WOOD: + switch (bundleId) { + case BUNDLE_18__HONEYCOMB: + switch (currentMap) { + case MAP_40_CCW_HUB: + if (position[1] < 150 && position[1] > 140) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_LEFT_OF_SUMMER_DOOR_1 + + bundleCount); + } else if (position[1] < 160 && position[1] > 150) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_RIGHT_OF_SUMMER_DOOR_1 + + bundleCount); + } + break; + case MAP_43_CCW_SPRING: + if (position[0] < 5 && position[0] > -5) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_SPRING_BY_THE_BIG_FLOWER_1 + + bundleCount); + } else if (position[0] < -1545 && position[0] > -1555) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_SPRING_GRASS_NEAR_THE_ENTRANCE_1 + + bundleCount); + } else if (position[0] < 4345 && position[0] > 4340) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_SPRING_UNDER_THE_TREEHOUSE_1 + + bundleCount); + } + break; + case MAP_44_CCW_SUMMER: + if (position[1] < -440 && position[1] > -450) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_DRIED_UP_LAKE_1 + + bundleCount); + } else if (position[1] < 160 && position[1] > 150) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_GRASS_NEAR_THE_ENTRANCE_1 + + bundleCount); + } else if (position[1] < 4580 && position[1] > 4570) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_OUTSIDE_NABNUTS_1 + + bundleCount); + } + break; + case MAP_45_CCW_AUTUMN: + if (position[1] < 1435 && position[1] > 1425) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_ABOVE_THE_LAKE_1 + + bundleCount); + } else if (position[1] < 160 && position[1] > 150) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_GRASS_NEAR_THE_ENTRANCE_1 + + bundleCount); + } else if (position[1] < 4405 && position[1] > 4395) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_IN_THE_TREEHOUSE_1 + + bundleCount); + } + break; + case MAP_46_CCW_WINTER: + if (position[1] < 1060 && position[1] > 1050) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_WINTER_AROUND_THE_TREE_BASE_1 + + bundleCount); + } else if (position[1] < 4405 && position[1] > 4395) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_WINTER_OUTSIDE_THE_TREEHOUSE_1 + + bundleCount); + } + break; + case MAP_4D_CCW_WINTER_MUMBOS_SKULL: + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_CCW_HONEYCOMB_BEEHIVE_WINTER_INSIDE_MUMBOS_SKULL_1 + + bundleCount); + break; + } + default: + break; + } + break; + case LEVEL_9_RUSTY_BUCKET_BAY: + switch (bundleId) { + case BUNDLE_6_MM_HUT_EXTRA_LIFE: + randoBundleInfo.randoCheckId = RC_RBB_EXTRA_LIFE_BOOM_BOXES; + randoBundleInfo.customPhysics = true; + break; + case BUNDLE_18__HONEYCOMB: + if (position[0] == 0 && position[1] == 156 && position[2] == 4800) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_RBB_HONEYCOMB_BEEHIVE_ENGINE_ROOM_ENTRANCE_1 + bundleCount); + } else if (position[0] == 0 && position[1] == 156 && position[2] == -178) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_RBB_HONEYCOMB_BEEHIVE_FIRST_SHIPPING_CONTAINER_1 + bundleCount); + } else if (position[0] == 7850 && position[1] == -1019 && position[2] == 3550) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_RBB_HONEYCOMB_BEEHIVE_GRATE_ABOVE_PINK_JINJO_1 + bundleCount); + } + break; + default: + break; + } + case LEVEL_A_MAD_MONSTER_MANSION: + switch (bundleId) { + case BUNDLE_18__HONEYCOMB: + switch (currentMap) { + case MAP_1C_MMM_CHURCH: + if (position[0] < 1880 && position[0] > 1870) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_RIGHT_1 + + bundleCount); + } else if (position[0] < -1870 && position[0] > -1880) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_LEFT_1 + bundleCount); + } + break; + case MAP_1B_MMM_MAD_MONSTER_MANSION: + if (position[1] < 160 && position[1] > 150) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_MAZE_1 + bundleCount); + } else if (position[1] < 335 && position[1] > 325) { + randoBundleInfo.randoCheckId = + (RandoCheckId)((int32_t)RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_TALL_GRASS_1 + bundleCount); + } + break; + default: + break; + } + break; + default: + break; + } + break; + case LEVEL_B_SPIRAL_MOUNTAIN: + switch (bundleId) { + case BUNDLE_1F_SM_EMPTY_HONEYCOMB: + if (position[1] >= 500 && position[1] <= 800) { + randoBundleInfo.randoCheckId = RC_SM_EMPTY_HONEYCOMB_COLLIWOBBLE; + } else { + randoBundleInfo.randoCheckId = RC_SM_EMPTY_HONEYCOMB_QUARRIES; + } + break; + case BUNDLE_18__HONEYCOMB: + break; + default: + break; + } + break; + default: + return randoBundleInfo; + } - if (randoCheckId == RC_UNKNOWN) { - return; - } + return randoBundleInfo; +} - if (!Rando::Logic::IsCheckShuffled(randoCheckId)) { - return; +bool OverrideBundleSpawn(bundle_e bundleId, BundleInfo* bundleInfo, s32 bundleCount, f32 spawnPosition[3]) { + + s32 position[3] = { (int32_t)spawnPosition[0], (int32_t)spawnPosition[1], (int32_t)spawnPosition[2] }; + + if (bundleId == BUNDLE_16__HONEYCOMB && + (gsworld_getMap() == MAP_43_CCW_SPRING || gsworld_getMap() == MAP_B_CC_CLANKERS_CAVERN)) { + if (CheckEnemyOverlapPosition(position)) { + return false; } + } - RandoSaveCheck randoSaveCheck = RANDO_SAVE_CHECKS[randoCheckId]; - if (randoSaveCheck.obtained) { - actor_e actorId = (actor_e)Rando::StaticData::Items[randoSaveCheck.randoItemId].actorId; - *actor = - CustomObject::SpawnCustomActorEX(randoCheckId, spawnPosition, &actorInfoMap.at((actor_e)actorId).first, - actorInfoMap.at((actor_e)actorId).second); + RandoBundleInfo randoBundleInfo = IdentifyBundle(bundleId, bundleInfo, bundleCount, spawnPosition); - bundleDespawnQueue.push_back((*actor)->marker); - } else { - *actor = CustomObject::ShouldCreateCustomActorEX(randoCheckId, spawnPosition, false); + if (randoBundleInfo.randoCheckId == RC_UNKNOWN || !Rando::Logic::IsCheckShuffled(randoBundleInfo.randoCheckId)) { + return false; + } - if (*actor == NULL) { - *should = true; - return; - } + if (Rando::Logic::IsCheckObtained(randoBundleInfo.randoCheckId)) { + bool isConsumable = bundleInfo->actor_id == ACTOR_52_BLUE_EGG || bundleInfo->actor_id == ACTOR_50_HONEYCOMB; + return !isConsumable; + } - if (applyCustomPhysics) { - ApplyCustomActorPhysics(randoCheckId, *actor, false); - } else { - ApplyBundleActorPhysics(*actor, bundleId, (BundleInfo*)bundleInfo, gBundle_yaw); - } + Actor* actor = CustomCollectible::Spawn(position, randoBundleInfo.randoCheckId); + if (randoBundleInfo.customPhysics) { + ApplyCustomActorPhysics(randoBundleInfo.randoCheckId, actor, false); + } else { + ApplyBundleActorPhysics(actor, bundleId, (BundleInfo*)bundleInfo, gBundle_yaw); + } + + return true; +} + +void RegisterRandoBundles() { + COND_VB_SHOULD(VB_BUNDLE_SPAWN_SET_ACTOR_DATA, EVENT_PRIORITY_NORMAL, IS_RANDO, { + Actor* refActor = va_arg(args, Actor*); + if (refActor == NULL) { + *should = true; } + }); + + COND_VB_SHOULD(VB_OVERRIDE_BUNDLE_SPAWN, EVENT_PRIORITY_NORMAL, IS_RANDO, { + bundle_e bundleId = (bundle_e)va_arg(args, int); + BundleInfo* bundleInfo = va_arg(args, BundleInfo*); + s32 bundleCount = va_arg(args, s32); + f32* position = va_arg(args, f32*); - *should = true; - }) + bool replaceBundle = OverrideBundleSpawn(bundleId, bundleInfo, bundleCount, position); + if (replaceBundle) { + *should = true; + } + }); } + +static RegisterShipInitFunc initFunc(RegisterRandoBundles, { "IS_RANDO" }); diff --git a/src/port/Rando/ObjectBehavior/EmptyHoneyComb.cpp b/src/port/Rando/ObjectBehavior/EmptyHoneyComb.cpp new file mode 100644 index 000000000..90a744a80 --- /dev/null +++ b/src/port/Rando/ObjectBehavior/EmptyHoneyComb.cpp @@ -0,0 +1,38 @@ +#include "port/ShipInit.hpp" +#include "port/Enhancements/Events/Hooks/Events.h" +#include "port/Rando/Logic/Logic.h" +#include "port/Rando/CustomCollectible/CustomCollectible.h" + +#define OPTION_ENABLED RANDO_SAVE_OPTIONS[RO_SHUFFLE_EMPTY_HONEYCOMBS].optionValue + +bool OverrideEmptyHoneyCombSpawn(OnActorSpawn* ev) { + if (ev->actorId != ACTOR_47_EMPTY_HONEYCOMB) { + return false; + } + + int32_t spawnPosition[3] = { ev->posX, ev->posY, ev->posZ }; + RandoCheckId randoCheckId = Rando::StaticData::GetCheckByPosition(ev->posX, ev->posY, ev->posZ); + + if (randoCheckId == RC_UNKNOWN || !Rando::Logic::IsCheckShuffled(randoCheckId)) { + return false; + } + + if (!Rando::Logic::IsCheckObtained(randoCheckId)) { + CustomCollectible::Spawn(spawnPosition, randoCheckId); + } + + return true; +} + +void RegisterRandoEmptyHoneyCombs() { + COND_HOOK(OnActorSpawn, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, [](IEvent* event) { + OnActorSpawn* ev = (OnActorSpawn*)event; + + bool replaceEmptyHoneyComb = OverrideEmptyHoneyCombSpawn(ev); + if (replaceEmptyHoneyComb) { + event->Cancelled = true; + } + }); +} + +static RegisterShipInitFunc initFunc(RegisterRandoEmptyHoneyCombs, { "IS_RANDO" }); diff --git a/src/port/Rando/ObjectBehavior/ExtraLife.cpp b/src/port/Rando/ObjectBehavior/ExtraLife.cpp new file mode 100644 index 000000000..875e68355 --- /dev/null +++ b/src/port/Rando/ObjectBehavior/ExtraLife.cpp @@ -0,0 +1,38 @@ +#include "port/ShipInit.hpp" +#include "port/Enhancements/Events/Hooks/Events.h" +#include "port/Rando/Logic/Logic.h" +#include "port/Rando/CustomCollectible/CustomCollectible.h" + +#define OPTION_ENABLED RANDO_SAVE_OPTIONS[RO_SHUFFLE_MUMBO_TOKENS].optionValue + +bool OverrideExtraLifeSpawn(OnActorSpawn* ev) { + if (ev->actorId != ACTOR_49_EXTRA_LIFE) { + return false; + } + + int32_t spawnPosition[3] = { ev->posX, ev->posY, ev->posZ }; + RandoCheckId randoCheckId = Rando::StaticData::GetCheckByPosition(ev->posX, ev->posY, ev->posZ); + + if (randoCheckId == RC_UNKNOWN || !Rando::Logic::IsCheckShuffled(randoCheckId)) { + return false; + } + + if (!Rando::Logic::IsCheckObtained(randoCheckId)) { + CustomCollectible::Spawn(spawnPosition, randoCheckId); + } + + return true; +} + +void RegisterRandoExtraLifes() { + COND_HOOK(OnActorSpawn, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, [](IEvent* event) { + OnActorSpawn* ev = (OnActorSpawn*)event; + + bool replaceExtraLife = OverrideExtraLifeSpawn(ev); + if (replaceExtraLife) { + event->Cancelled = true; + } + }); +} + +static RegisterShipInitFunc initFunc(RegisterRandoExtraLifes, { "IS_RANDO" }); diff --git a/src/port/Rando/ObjectBehavior/Gobi.cpp b/src/port/Rando/ObjectBehavior/Gobi.cpp index abf0f6ef1..1ac60ec89 100644 --- a/src/port/Rando/ObjectBehavior/Gobi.cpp +++ b/src/port/Rando/ObjectBehavior/Gobi.cpp @@ -22,12 +22,12 @@ void Rando::ObjectBehavior::ModifyGobiBehavior(void* gobiActor) { case ACTOR_12E_GOBI_1: case ACTOR_12F_GOBI_ROPE: case ACTOR_130_GOBI_ROCK: - if (RANDO_SAVE_CHECKS[RC_GV_JIGGY_GOBI_1].obtained) { + if (RANDO_SAVE_CHECKS[RC_GV_JIGGY_GOBI_1].eligible) { marker_despawn(actor->marker); } break; case ACTOR_131_GOBI_2: - if (RANDO_SAVE_CHECKS[RC_GV_JIGGY_GOBI_1].obtained && !RANDO_SAVE_CHECKS[RC_GV_JIGGY_GOBI_2].obtained) { + if (RANDO_SAVE_CHECKS[RC_GV_JIGGY_GOBI_1].eligible && !RANDO_SAVE_CHECKS[RC_GV_JIGGY_GOBI_2].eligible) { if (actor->state == 1) { chGobi2_setState(actor, 2); actor->marker->collidable = true; @@ -41,7 +41,7 @@ void Rando::ObjectBehavior::ModifyGobiBehavior(void* gobiActor) { } break; case ACTOR_135_GOBI_3: - if (RANDO_SAVE_CHECKS[RC_GV_JIGGY_GOBI_2].obtained) { + if (RANDO_SAVE_CHECKS[RC_GV_JIGGY_GOBI_2].eligible) { if (actor->state == 0) { chGobi3_setState(actor, 2); actor->marker->collidable = true; diff --git a/src/port/Rando/ObjectBehavior/Jiggy.cpp b/src/port/Rando/ObjectBehavior/Jiggy.cpp index 5084aed7a..f473113af 100644 --- a/src/port/Rando/ObjectBehavior/Jiggy.cpp +++ b/src/port/Rando/ObjectBehavior/Jiggy.cpp @@ -1,79 +1,81 @@ #include "ObjectBehavior.h" +#include "port/ShipInit.hpp" +#include "port/Enhancements/Events/Hooks/Events.h" #include "port/Rando/Logic/Logic.h" #include "port/Rando/CustomObject/CustomObject.h" -#include "port/Enhancements/Events/Hooks/Events.h" - -#include "spdlog/spdlog.h" +#include "port/Rando/CustomCollectible/CustomCollectible.h" #define OPTION_ENABLED RANDO_SAVE_OPTIONS[RO_SHUFFLE_JIGGIES].optionValue -// Some jiggies double as the world's only memory of what opened them up: raising -// Clanker and finishing his rings are both recalled purely from -// jiggyscore_isSpawned on the jiggy that appeared. Vanilla records that in -// jiggy_spawn via jiggyscore_setSpawned, which the override below never reaches, -// and the check-obtained path only fires once the reward is actually picked up. -static void MarkWorldStateFromJiggySpawn(RandoCheckId randoCheckId) { - RandoInf randoInfFlag = RANDO_INF_UNKNOWN; - switch (randoCheckId) { - case RC_CC_JIGGY_CLANKER_RAISED: - randoInfFlag = RANDO_INF_CLANKER_RAISED; - break; - case RC_CC_JIGGY_RINGS: - randoInfFlag = RANDO_INF_MINIGAME_RINGS_COMPLETED; - break; - default: - return; +bool OverrideJiggySpawn(f32 position[3], jiggy_e jiggyId) { + RandoCheckId randoCheckId = Rando::StaticData::GetCheckByJiggyId(jiggyId); + + if (randoCheckId == RC_UNKNOWN || !Rando::Logic::IsCheckShuffled(randoCheckId)) { + return false; } - CALL_EVENT(SetRandoInfFlag, randoInfFlag, 1); -} -void Rando::ObjectBehavior::InitJiggyBehavior() { - COND_VB_SHOULD(VB_NAPPER_SET_JIGGY_POSITION, EVENT_PRIORITY_NORMAL, true, { - if (!IS_RANDO && !OPTION_ENABLED) { - return; - } + int32_t spawnPosition[3] = { (int32_t)position[0], (int32_t)position[1], (int32_t)position[2] }; - if (RANDO_SAVE_CHECKS[RC_MMM_JIGGY_MANSION_TABLE].obtained) { - *should = false; - } - }) + if (jiggyId == JIGGY_26_BGS_TANKTUP) { + spawnPosition[0] -= 300; + spawnPosition[1] += 100; + spawnPosition[2] -= 300; + } - COND_VB_SHOULD(VB_OVERRIDE_JIGGY_SPAWN, EVENT_PRIORITY_NORMAL, true, { - jiggy_e jiggyId = (jiggy_e)va_arg(args, int); - f32* position = va_arg(args, f32*); + Actor* actor = CustomCollectible::Spawn(spawnPosition, randoCheckId); + if (jiggyId != JIGGY_17_CC_CLANKER_RAISED && jiggyId != JIGGY_1B_CC_TOOTH) { + ApplyCustomActorPhysics(randoCheckId, actor, false); + } + return true; +} - if (!IS_RANDO && !OPTION_ENABLED) { - return; - } +bool OverrideJiggyActorSpawn(OnActorSpawn* ev) { + if (ev->actorId != ACTOR_46_JIGGY) { + return false; + } - RandoCheckId randoCheckId = Rando::StaticData::GetCheckByJiggyId(jiggyId); + int32_t spawnPosition[3] = { ev->posX, ev->posY, ev->posZ }; + RandoCheckId randoCheckId = Rando::StaticData::GetCheckByPosition(ev->posX, ev->posY, ev->posZ); - if (randoCheckId == RC_UNKNOWN) { - return; - } + if (randoCheckId == RC_UNKNOWN || !Rando::Logic::IsCheckShuffled(randoCheckId)) { + return false; + } - if (!Rando::Logic::IsCheckShuffled(randoCheckId)) { - return; + if (Rando::Logic::IsCheckObtained(randoCheckId)) { + return true; + } + + CustomCollectible::Spawn(spawnPosition, randoCheckId); + return true; +} + +void RegisterRandoJiggies() { + COND_VB_SHOULD(VB_NAPPER_SET_JIGGY_POSITION, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, { + if (RANDO_SAVE_CHECKS[RC_MMM_JIGGY_MANSION_TABLE].eligible) { + *should = false; } + }); - int32_t spawnPosition[3]; - spawnPosition[0] = (int32_t)position[0]; - spawnPosition[1] = (int32_t)position[1]; - spawnPosition[2] = (int32_t)position[2]; + // Jiggies can be spawned through 2 separate code paths, that's why there's 2 hooks with slight + // variations on how it identifies the jiggy. + COND_VB_SHOULD(VB_OVERRIDE_JIGGY_SPAWN, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, { + jiggy_e jiggyId = (jiggy_e)va_arg(args, int); + f32* position = va_arg(args, f32*); - if (jiggyId == JIGGY_26_BGS_TANKTUP) { - spawnPosition[0] -= 300; - spawnPosition[1] += 100; - spawnPosition[2] -= 300; + bool replaceJiggy = OverrideJiggySpawn(position, jiggyId); + if (replaceJiggy) { + *should = true; } + }); + + COND_HOOK(OnActorSpawn, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, [](IEvent* event) { + OnActorSpawn* ev = (OnActorSpawn*)event; - Actor* randoCustomActor = CustomObject::ShouldCreateCustomActorEX(randoCheckId, spawnPosition, false); - if (jiggyId != JIGGY_17_CC_CLANKER_RAISED && jiggyId != JIGGY_1B_CC_TOOTH) { - ApplyCustomActorPhysics(randoCheckId, randoCustomActor, false); + bool replaceJiggy = OverrideJiggyActorSpawn(ev); + if (replaceJiggy) { + event->Cancelled = true; } - // Stand in for the jiggyscore_setSpawned this override skips, for the - // jiggies the world reads back as state rather than as a collectable. - MarkWorldStateFromJiggySpawn(randoCheckId); - *should = true; - }) + }); } + +static RegisterShipInitFunc initFunc(RegisterRandoJiggies, { "IS_RANDO" }); diff --git a/src/port/Rando/ObjectBehavior/Jinjo.cpp b/src/port/Rando/ObjectBehavior/Jinjo.cpp index 9910261e1..3df071888 100644 --- a/src/port/Rando/ObjectBehavior/Jinjo.cpp +++ b/src/port/Rando/ObjectBehavior/Jinjo.cpp @@ -1,12 +1,8 @@ -#include "ObjectBehavior.h" -#include "port/Rando/Logic/Logic.h" -#include "port/Rando/CustomObject/CustomObject.h" - -#include -#include "port/UI/cvar_prefixes.h" -#include -#include "port/Enhancements/Events/PortEnhancements.h" +#include "port/ShipInit.hpp" #include "port/Enhancements/Events/Hooks/Events.h" +#include "port/Rando/Logic/Logic.h" +#include "port/Rando/CustomCollectible/CustomCollectible.h" +#include "port/Enhancements/Retention/Retention.h" extern "C" { s32 item_adjustByDiffWithHud(enum item_e item, s32 diff); @@ -14,28 +10,48 @@ s32 item_adjustByDiffWithHud(enum item_e item, s32 diff); #define OPTION_ENABLED RANDO_SAVE_OPTIONS[RO_SHUFFLE_JINJOS].optionValue -void Rando::ObjectBehavior::InitJinjoBehavior() { - COND_HOOK(OnSetJiggyList, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, [](IEvent* event) { - OnSetJiggyList* ev = (OnSetJiggyList*)event; +bool OverrideJinjoSpawn(OnActorSpawn* ev) { + if (ev->actorId != ACTOR_5E_JINJO_YELLOW && ev->actorId != ACTOR_5F_JINJO_ORANGE && + ev->actorId != ACTOR_60_JINJO_BLUE && ev->actorId != ACTOR_61_JINJO_PINK && + ev->actorId != ACTOR_62_JINJO_GREEN) { + return false; + } - for (auto& pool : Rando::Logic::shuffledPool) { - if (!pool.obtained) { - continue; - } + int32_t spawnPosition[3] = { ev->posX, ev->posY, ev->posZ }; + RandoCheckId randoCheckId = Rando::StaticData::GetCheckByPosition(ev->posX, ev->posY, ev->posZ); - if (Rando::StaticData::Checks[pool.shuffledCheckId].worldId != ev->levelId) { - continue; - } + if (randoCheckId == RC_UNKNOWN || !Rando::Logic::IsCheckShuffled(randoCheckId)) { + return false; + } - if (pool.randoItemId >= RI_JINJO_BLUE && pool.randoItemId <= RI_JINJO_YELLOW) { - int32_t jinjoMarkerId = - GetJinjoActorMarkerId((actor_e)Rando::StaticData::Items[pool.randoItemId].actorId); - item_adjustByDiffWithHud(ITEM_12_JINJOS, (1 << ((jinjoMarkerId + 6) & 0x1F))); - } - } - }) + if (!Rando::Logic::IsCheckObtained(randoCheckId)) { + CustomCollectible::Spawn(spawnPosition, randoCheckId); + } + + return true; +} +void RegisterRandoJinjos() { COND_VB_SHOULD(VB_UPDATE_JINJO_HUD, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, { *should = true; }) COND_VB_SHOULD(VB_SET_JINJO_COUNT, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, { *should = true; }) + + COND_HOOK(OnSetJiggyList, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, [](IEvent* event) { + OnSetJiggyList* ev = (OnSetJiggyList*)event; + u8 bits = collectedBits(ev->levelId); + if (bits != 0) { + item_adjustByDiffWithoutHud(ITEM_12_JINJOS, bits - item_getCount(ITEM_12_JINJOS)); + } + }); + + COND_HOOK(OnActorSpawn, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, [](IEvent* event) { + OnActorSpawn* ev = (OnActorSpawn*)event; + + bool replaceJinjo = OverrideJinjoSpawn(ev); + if (replaceJinjo) { + event->Cancelled = true; + } + }); } + +static RegisterShipInitFunc initFunc(RegisterRandoJinjos, { "IS_RANDO" }); diff --git a/src/port/Rando/ObjectBehavior/Molehill.cpp b/src/port/Rando/ObjectBehavior/Molehill.cpp index c85003134..cdcea42f4 100644 --- a/src/port/Rando/ObjectBehavior/Molehill.cpp +++ b/src/port/Rando/ObjectBehavior/Molehill.cpp @@ -1,45 +1,17 @@ -#include "ObjectBehavior.h" -#include "port/Rando/Logic/Logic.h" -#include "port/Rando/CustomObject/CustomObject.h" - #include -#include "port/UI/cvar_prefixes.h" -#include -#include "port/Enhancements/Events/PortEnhancements.h" +#include "port/ShipInit.hpp" #include "port/Enhancements/Events/Hooks/Events.h" +#include "port/Rando/Logic/Logic.h" +#include "port/Rando/CustomCollectible/CustomCollectible.h" -#define MOLETABLE_SIZE 16 #define BRIDGE_REQUIREMENT 6 -typedef struct { - s16 teach_text_id; - s16 refresher_text_id; - s8 camera_node; - s8 ability; -} ChMoleDescription; +extern "C" { +s32 mapSpecificFlags_get(s32 i); +void mapSpecificFlags_set(s32 i, s32 val); +} // clang-format off -ChMoleDescription moleDialogTable[MOLETABLE_SIZE] = { - //{ ASSET_DF3_DIALOG_BOTTLES_INTRODUCTION, ASSET_E08_DIALOG_BOTTLES_FIND_ANOTHER_MOLEHILL, 0x1, -1 }, - { ASSET_DF4_DIALOG_BOTTLES_CAMERA_CONTROL_LEARN, ASSET_DF5_DIALOG_BOTTLES_CAMERA_CONTROL_REFRESHER, 0x3, ABILITY_3_CAMERA_CONTROL }, - { ASSET_DFB_DIALOG_BOTTLES_DIVE_LEARN, ASSET_DFE_DIALOG_BOTTLES_DIVE_REFRESHER, 0x5, ABILITY_F_DIVE }, - { -1, ASSET_E00_DIALOG_BOTTLES_ATTACK_REFRESHER, 0x6, ABILITY_4_CLAW_SWIPE }, - { ASSET_E04_DIALOG_BOTTLES_BEAK_BARGE_LEARN, ASSET_E06_DIALOG_BOTTLES_BEAK_BARGE_REFRESHER, 0x8, ABILITY_0_BARGE }, - { -1, ASSET_DFA_DIALOG_BOTTLES_JUMP_REFRESHER, 0x4, ABILITY_8_FLAP_FLIP }, - { ASSET_E01_DIALOG_BOTTLES_CLIMB_LEARN, ASSET_E03_DIALOG_BOTTLES_CLIMB_REFRESHER, 0x7, ABILITY_5_CLIMB }, - //{ ASSET_E10_DIALOG_BOTTLES_BRIDGE_BROKEN, ASSET_E11_DIALOG_BOTTLES_BRIDGE_STILL_BROKEN, 0x11, -1 }, - { ASSET_C23_DIALOG_BEAKBOMB_LEARN, ASSET_C24_DIALOG_BEAKBOMB_REFRESHER, 0x0F, ABILITY_1_BEAK_BOMB }, - { ASSET_B47_DIALOG_EGGS_LEARN, ASSET_B4B_DIALOG_EGGS_REFRESHER, 0x16, ABILITY_6_EGGS }, - { ASSET_B48_DIALOG_BEAKBUSTER_LEARN, ASSET_B4C_DIALOG_BEAKBUSTER_REFRESHER, 0x17, ABILITY_2_BEAK_BUSTER }, - { ASSET_B49_DIALOG_TALON_TROT_LEARN, ASSET_B4A_DIALOG_TALON_TROT_REFRESHER, 0x18, ABILITY_10_TALON_TROT }, - { ASSET_A1F_DIALOG_SHOCKJUMP_LEARN, ASSET_A23_DIALOG_SHOCKJUMP_REFRESHER, 0x0C, ABILITY_D_SHOCK_JUMP }, - { ASSET_A20_DIALOG_FLY_LEARN, ASSET_A22_DIALOG_FLY_REFRESHER, 0x0D, ABILITY_9_FLIGHT }, - { ASSET_D35_DIALOG_WONDERWING_LEARN, ASSET_D36_DIALOG_WONDERWING_REFRESHER, 0x01, ABILITY_12_WONDERWING }, - { ASSET_C88_DIALOG_WADING_BOOTS_LEARN, ASSET_C89_DIALOG_WADING_BOOTS_REFRESHER, 0x10, ABILITY_E_WADING_BOOTS }, - { ASSET_A84_DIALOG_TURBOTRAINERS_LEARN, ASSET_A85_DIALOG_TURBOTRAINERS_REFRESHER, 0x19, ABILITY_11_TURBO_TALON }, - { ASSET_F64_DIALOG_NOTEDOORS_LEARN, ASSET_F65_DIALOG_NOTEDOORS_REFRESHER, 0x0E, ABILITY_13_1ST_NOTEDOOR }, -}; - std::vector spiralMountainBridge = { RC_SM_MOLEHILL_JUMP, RC_SM_MOLEHILL_CAMERA_CONTROL, @@ -50,29 +22,13 @@ std::vector spiralMountainBridge = { }; // clang-format on -ChMoleDescription result; - #define OPTION_ENABLED RANDO_SAVE_OPTIONS[RO_SHUFFLE_MOLEHILLS].optionValue -ChMoleDescription GetMoleDescriptionByAbility(int16_t abilityId) { - // Reset every field, not just ability: result is file-scope, so a miss used to - // return the previous hit's dialog ids alongside ability == -1. - result = { -1, -1, -1, -1 }; - for (int i = 0; i < MOLETABLE_SIZE; i++) { - if (moleDialogTable[i].ability == abilityId) { - result = moleDialogTable[i]; - break; - } - } - - return result; -} - bool CheckBridgeState() { int32_t smBridgeCheck = 0; if (!mapSpecificFlags_get(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED)) { for (auto& check : spiralMountainBridge) { - if (Rando::Logic::GetShuffledObject(check).obtained) { + if (RANDO_SAVE_CHECKS[check].eligible) { smBridgeCheck++; } } @@ -81,123 +37,49 @@ bool CheckBridgeState() { return smBridgeCheck == BRIDGE_REQUIREMENT ? true : false; } -void SetSpiralMountainFlags() { - mapSpecificFlags_set(SM_SPECIFIC_FLAG_1_TALKED_TO_BOTTLES, true); -} - -// CALL_EVENT expands to a braced initializer whose commas don't survive being passed through the -// COND_HOOK macro wrapper, so fire it from a plain function the listener calls instead. -static void MarkBridgeRepairedDialogComplete() { - CALL_EVENT(SetRandoInfFlag, RANDO_INF_BRIDGE_REPAIRED_DIALOG_COMPLETE, true); -} - -void Rando::ObjectBehavior::InitMolehillBehavior() { - COND_VB_SHOULD(VB_OVERRIDE_MOLEHILL_ABILITY, EVENT_PRIORITY_NORMAL, true, { - Actor* molehillActor = va_arg(args, Actor*); - s32* textId = va_arg(args, s32*); - s32* isLearned = va_arg(args, s32*); - - if (!IS_RANDO && !OPTION_ENABLED) { - return; - } - - if (molehillActor->actorTypeSpecificField == 8) { - return; - } - - RandoCheckId randoCheckId = Rando::StaticData::GetCheckByPosition( - molehillActor->position_x, molehillActor->position_y, molehillActor->position_z); - - if (randoCheckId == RC_UNKNOWN) { - return; - } - - RandoSaveCheck shuffledMolehill = Rando::Logic::GetShuffledObject(randoCheckId); - ChMoleDescription moleInfo = GetMoleDescriptionByAbility(shuffledMolehill.randoCollectionId); - *should = true; - - func_80347A14(0); - molehillActor->has_met_before = true; - - if (moleInfo.ability >= ABILITY_0_BARGE) { - switch (moleInfo.ability) { - case ABILITY_4_CLAW_SWIPE: - *textId = (s32)moleInfo.refresher_text_id; - ability_unlock(ABILITY_4_CLAW_SWIPE); - ability_unlock(ABILITY_C_ROLL); - ability_unlock(ABILITY_B_RATATAT_RAP); - break; - case ABILITY_6_EGGS: - *textId = (s32)moleInfo.refresher_text_id; - ability_unlock((ability_e)moleInfo.ability); - item_adjustByDiffWithHud(ITEM_D_EGGS, 50); - break; - case ABILITY_8_FLAP_FLIP: - *textId = (s32)moleInfo.refresher_text_id; - ability_unlock(ABILITY_A_HOLD_A_JUMP_HIGHER); - ability_unlock(ABILITY_7_FEATHERY_FLAP); - ability_unlock(ABILITY_8_FLAP_FLIP); - break; - case ABILITY_9_FLIGHT: - *textId = (s32)moleInfo.refresher_text_id; - ability_unlock((ability_e)moleInfo.ability); - item_adjustByDiffWithHud(ITEM_F_RED_FEATHER, 25); - break; - case ABILITY_12_WONDERWING: - *textId = (s32)moleInfo.refresher_text_id; - ability_unlock((ability_e)moleInfo.ability); - item_adjustByDiffWithHud(ITEM_10_GOLD_FEATHER, 5); - break; - default: - *textId = (s32)moleInfo.refresher_text_id; - ability_unlock((ability_e)moleInfo.ability); - break; - } - } else { - // Nothing in the table to say for whatever landed here, so hand the item to the shared - // dispatch every other check type grants through and keep Bottles on a generic line. - *textId = (s32)ASSET_E08_DIALOG_BOTTLES_FIND_ANOTHER_MOLEHILL; - CustomObject::ResolveCustomActorCollisionEX(randoCheckId); - } +bool OverrideMoleSpawn(OnActorSpawn* ev) { + if (ev->actorId != ACTOR_12B_TUTORIAL_BOTTLES && ev->actorId != ACTOR_37A_BOTTLES) { + return false; + } - CustomObject::CheckObtainedEX(shuffledMolehill.randoCheckId); + int32_t spawnPosition[3] = { ev->posX, ev->posY, ev->posZ }; + RandoCheckId randoCheckId = Rando::StaticData::GetCheckByPosition(ev->posX, ev->posY, ev->posZ); - if (map_getLevel(gsworld_getMap()) == LEVEL_B_SPIRAL_MOUNTAIN) { - if (CheckBridgeState()) { - SetSpiralMountainFlags(); - } - } - }) - - COND_VB_SHOULD(VB_OVERRIDE_BOTTLES_TEXT_CALLBACK, EVENT_PRIORITY_NORMAL, true, { - Actor* molehillActor = va_arg(args, Actor*); + if (randoCheckId == RC_UNKNOWN || !Rando::Logic::IsCheckShuffled(randoCheckId)) { + return false; + } - if (!IS_RANDO && !OPTION_ENABLED) { - return; - } + if (Rando::Logic::IsCheckObtained(randoCheckId)) { + return true; + } - if (CheckBridgeState() && !RANDO_SAVE_FLAGS[RANDO_INF_BRIDGE_REPAIRED_DIALOG_COMPLETE].flagState) { - *should = true; - } - }) + CustomCollectible::Spawn(spawnPosition, randoCheckId); + return true; +} - COND_HOOK(OnCheckSpiralMountainAbilities, EVENT_PRIORITY_NORMAL, IS_RANDO, [](IEvent* event) { +void RegisterRandoMolehills() { + COND_HOOK(OnCheckSpiralMountainAbilities, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, [](IEvent* event) { OnCheckSpiralMountainAbilities* ev = (OnCheckSpiralMountainAbilities*)event; - if (!IS_RANDO && !OPTION_ENABLED) { - return; - } - if (mapSpecificFlags_get(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED)) { mapSpecificFlags_set(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED, false); } if (CheckBridgeState()) { mapSpecificFlags_set(SM_SPECIFIC_FLAG_3_ALL_SM_ABILITIES_LEARNED, true); - if (!RANDO_SAVE_FLAGS[RANDO_INF_BRIDGE_REPAIRED_DIALOG_COMPLETE].flagState) { - MarkBridgeRepairedDialogComplete(); - } + mapSpecificFlags_set(SM_SPECIFIC_FLAG_1_TALKED_TO_BOTTLES, true); event->Cancelled = true; ev->result = true; } - }) + }); + + COND_HOOK(OnActorSpawn, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, [](IEvent* event) { + OnActorSpawn* ev = (OnActorSpawn*)event; + + bool replaceMole = OverrideMoleSpawn(ev); + if (replaceMole) { + event->Cancelled = true; + } + }); } + +static RegisterShipInitFunc initFunc(RegisterRandoMolehills, { "IS_RANDO" }); diff --git a/src/port/Rando/ObjectBehavior/MumboToken.cpp b/src/port/Rando/ObjectBehavior/MumboToken.cpp new file mode 100644 index 000000000..1ecbc7a12 --- /dev/null +++ b/src/port/Rando/ObjectBehavior/MumboToken.cpp @@ -0,0 +1,38 @@ +#include "port/ShipInit.hpp" +#include "port/Enhancements/Events/Hooks/Events.h" +#include "port/Rando/Logic/Logic.h" +#include "port/Rando/CustomCollectible/CustomCollectible.h" + +#define OPTION_ENABLED RANDO_SAVE_OPTIONS[RO_SHUFFLE_MUMBO_TOKENS].optionValue + +bool OverrideMumboTokenSpawn(OnActorSpawn* ev) { + if (ev->actorId != ACTOR_2D_MUMBO_TOKEN) { + return false; + } + + int32_t spawnPosition[3] = { ev->posX, ev->posY, ev->posZ }; + RandoCheckId randoCheckId = Rando::StaticData::GetCheckByPosition(ev->posX, ev->posY, ev->posZ); + + if (randoCheckId == RC_UNKNOWN || !Rando::Logic::IsCheckShuffled(randoCheckId)) { + return false; + } + + if (!Rando::Logic::IsCheckObtained(randoCheckId)) { + CustomCollectible::Spawn(spawnPosition, randoCheckId); + } + + return true; +} + +void RegisterRandoMumboTokens() { + COND_HOOK(OnActorSpawn, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, [](IEvent* event) { + OnActorSpawn* ev = (OnActorSpawn*)event; + + bool replaceMumboToken = OverrideMumboTokenSpawn(ev); + if (replaceMumboToken) { + event->Cancelled = true; + } + }); +} + +static RegisterShipInitFunc initFunc(RegisterRandoMumboTokens, { "IS_RANDO" }); diff --git a/src/port/Rando/ObjectBehavior/MusicNote.cpp b/src/port/Rando/ObjectBehavior/MusicNote.cpp index 77a42f272..ec2ec0595 100644 --- a/src/port/Rando/ObjectBehavior/MusicNote.cpp +++ b/src/port/Rando/ObjectBehavior/MusicNote.cpp @@ -1,32 +1,49 @@ -#include "ObjectBehavior.h" +#include "port/ShipInit.hpp" +#include "port/Enhancements/Events/Hooks/Events.h" #include "port/Rando/Logic/Logic.h" -#include "port/Rando/CustomObject/CustomObject.h" +#include "port/Rando/CustomCollectible/CustomCollectible.h" -#include -#include "port/UI/cvar_prefixes.h" -#include -#include "port/Enhancements/Events/PortEnhancements.h" -#include "port/Enhancements/Events/Hooks/Events.h" +extern "C" { +void item_inc(enum item_e item); +extern u8 D_80385FF0[0xE]; +} #define OPTION_ENABLED RANDO_SAVE_OPTIONS[RO_SHUFFLE_MUSIC_NOTES].optionValue -void Rando::ObjectBehavior::InitMusicNoteBehavior() { +bool OverrideMusicNoteSpawn(s16 spawnPosition[3], int32_t propAsset) { + if (propAsset != ASSET_6D6_SPRITE_MUSIC_NOTE) { + return false; + } + + s32 position[3] = { spawnPosition[0], spawnPosition[1], spawnPosition[2] }; + RandoCheckId randoCheckId = Rando::StaticData::GetCheckByPosition(position[0], position[1], position[2]); + + if (randoCheckId == RC_UNKNOWN || !Rando::Logic::IsCheckShuffled(randoCheckId)) { + return false; + } + + if (!Rando::Logic::IsCheckObtained(randoCheckId)) { + CustomCollectible::QueueProp(position, randoCheckId); + } + + return true; +} + +void RegisterRandoMusicNotes() { COND_HOOK(OnSetJiggyList, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, [](IEvent* event) { OnSetJiggyList* ev = (OnSetJiggyList*)event; - int32_t currentNotes = 0; - - for (auto& pool : Rando::Logic::shuffledPool) { - if (Rando::StaticData::Checks[pool.shuffledCheckId].worldId != ev->levelId) { - continue; - } - - if (pool.randoItemId == RI_MUSIC_NOTE) { - if (pool.obtained) { - currentNotes++; - } - } - } - item_adjustByDiffWithoutHud(ITEM_C_NOTE, currentNotes - item_getCount(ITEM_C_NOTE)); - }) + item_set(ITEM_C_NOTE, D_80385FF0[ev->levelId]); + }); + + COND_VB_SHOULD(VB_OVERRIDE_PROP_SPAWN, EVENT_PRIORITY_NORMAL, IS_RANDO && OPTION_ENABLED, { + s16* spawnPosition = va_arg(args, s16*); + int32_t propAsset = va_arg(args, int32_t); + bool replaceNote = OverrideMusicNoteSpawn(spawnPosition, propAsset); + if (replaceNote) { + *should = true; + } + }); } + +static RegisterShipInitFunc initFunc(RegisterRandoMusicNotes, { "IS_RANDO" }); diff --git a/src/port/Rando/ObjectBehavior/ObjectBehavior.cpp b/src/port/Rando/ObjectBehavior/ObjectBehavior.cpp index 0e45fed73..486c9870d 100644 --- a/src/port/Rando/ObjectBehavior/ObjectBehavior.cpp +++ b/src/port/Rando/ObjectBehavior/ObjectBehavior.cpp @@ -20,34 +20,31 @@ std::map> randoSaveState; // clang-format off std::vector actorSpawnWhitelist = { - ACTOR_2D_MUMBO_TOKEN, - ACTOR_46_JIGGY, ACTOR_47_EMPTY_HONEYCOMB, - ACTOR_51_MUSIC_NOTE, - ACTOR_5E_JINJO_YELLOW, - ACTOR_5F_JINJO_ORANGE, - ACTOR_60_JINJO_BLUE, - ACTOR_61_JINJO_PINK, - ACTOR_62_JINJO_GREEN, + ACTOR_49_EXTRA_LIFE, + ACTOR_50_HONEYCOMB, ACTOR_25E_SNS_EGG, ACTOR_25D_ICE_KEY, //ACTOR_12C_MOLEHILL, }; -std::map randoItemColors = { - { RI_UNKNOWN, UIWidgets::Colors::Brown }, - { RI_EMPTY_HONEYCOMB, UIWidgets::Colors::Yellow }, - { RI_JIGGY, UIWidgets::Colors::Yellow }, - { RI_JINJO_BLUE, UIWidgets::Colors::SkyBlue }, - { RI_JINJO_GREEN, UIWidgets::Colors::Green }, - { RI_JINJO_ORANGE, UIWidgets::Colors::Orange }, - { RI_JINJO_PINK, UIWidgets::Colors::Pink }, - { RI_JINJO_YELLOW, UIWidgets::Colors::Yellow }, - { RI_MOLEHILL, UIWidgets::Colors::Cyan }, - { RI_MUMBO_TOKEN, UIWidgets::Colors::Gray }, - { RI_MUSIC_NOTE, UIWidgets::Colors::Yellow }, - { RI_STOP_N_SWOP_EGG, UIWidgets::Colors::Pink }, - { RI_STOP_N_SWOP_KEY, UIWidgets::Colors::White }, +std::map randoItemColors = { + { ACTOR_1_UNKNOWN, UIWidgets::Colors::Brown }, + { ACTOR_52_BLUE_EGG, UIWidgets::Colors::Cyan }, + { ACTOR_47_EMPTY_HONEYCOMB, UIWidgets::Colors::Yellow }, + { ACTOR_49_EXTRA_LIFE, UIWidgets::Colors::Yellow }, + { ACTOR_50_HONEYCOMB, UIWidgets::Colors::Yellow }, + { ACTOR_46_JIGGY, UIWidgets::Colors::Yellow }, + { ACTOR_60_JINJO_BLUE, UIWidgets::Colors::SkyBlue }, + { ACTOR_62_JINJO_GREEN, UIWidgets::Colors::Green }, + { ACTOR_5F_JINJO_ORANGE, UIWidgets::Colors::Orange }, + { ACTOR_61_JINJO_PINK, UIWidgets::Colors::Pink }, + { ACTOR_5E_JINJO_YELLOW, UIWidgets::Colors::Yellow }, + { ACTOR_12C_MOLEHILL, UIWidgets::Colors::Cyan }, + { ACTOR_2D_MUMBO_TOKEN, UIWidgets::Colors::Gray }, + { ACTOR_51_MUSIC_NOTE, UIWidgets::Colors::Yellow }, + { ACTOR_25E_SNS_EGG, UIWidgets::Colors::Pink }, + { ACTOR_25D_ICE_KEY, UIWidgets::Colors::White }, }; std::map snsItemColors = { @@ -82,7 +79,7 @@ std::vector enemyKillOverlapList = { bool nextActorSaveState = false; bool IsActorWhitelisted(int32_t actorId) { - for (auto& entry : actorSpawnWhitelist) { + /*for (auto& entry : actorSpawnWhitelist) { if (entry == actorId) { return true; } @@ -94,7 +91,7 @@ bool IsActorWhitelisted(int32_t actorId) { return true; } } - } + }*/ return false; } @@ -158,12 +155,14 @@ static void EmitCheckNotification(RandoCheckId randoCheckId, const std::string& std::string prefix; std::string message; std::string suffix = ""; - ImVec4 itemColor = WIDGET_TEXT_COLOR(randoItemColors.at(randoSaveCheck.randoItemId)); + ImVec4 itemColor = + WIDGET_TEXT_COLOR(randoItemColors.at((actor_e)Rando::StaticData::Items[randoSaveCheck.randoItemId].actorId)); + RandoItemType itemType = Rando::StaticData::Items[randoSaveCheck.randoItemId].randoItemType; - if (randoSaveCheck.randoItemId == RI_MOLEHILL) { + if (itemType == RITYPE_MOLEHILL) { prefix = subject + " learned"; message = abilityNameList[randoSaveCheck.randoCollectionId].c_str(); - } else if (randoSaveCheck.randoItemId == RI_STOP_N_SWOP_EGG || randoSaveCheck.randoItemId == RI_STOP_N_SWOP_KEY) { + } else if (itemType == RITYPE_SNS_EGG || itemType == RITYPE_SNS_KEY) { int32_t totalsnsItems = Rando::Logic::GetTotalSnsItemsCollected(); prefix = subject + " collected "; prefix += Rando::StaticData::Items[randoSaveCheck.randoItemId].article; @@ -236,20 +235,12 @@ bool CheckEnemyOverlapPosition(int32_t pos[3]) { return enemyOverlap; } -// CALL_EVENT expands to a braced initializer whose commas don't survive being passed through the -// COND_HOOK macro wrapper, so fire it from a plain function the listener calls instead. static void FireClearBundleDespawnQueue() { CALL_EVENT(ClearBundleDespawnQueue); } // Entry point for the module, run once on game boot void Rando::ObjectBehavior::Init() { - InitBundleBehavior(); - InitJiggyBehavior(); - InitJinjoBehavior(); - InitMolehillBehavior(); - InitMusicNoteBehavior(); - InitPropBehavior(); InitStopNSwopBehavior(); UpdateJunkList(); @@ -259,11 +250,18 @@ void Rando::ObjectBehavior::Init() { map_e currentMap = gsworld_getMap(); CustomObject::FlushRandoSpawnQueue(); - DespawnCollectedBundles(); + + if (ev->actorId == ACTOR_12_BEEHIVE) { + SPDLOG_INFO("Actor ID: {} {}, {}, {}", ev->actorId, ev->posX, ev->posY, ev->posZ); + } + + if (ev->actorId == ACTOR_12_BEEHIVE) { + SPDLOG_INFO("Actor ID: {} {}, {}, {}", ev->actorId, ev->posX, ev->posY, ev->posZ); + } if (currentMap == MAP_12_GV_GOBIS_VALLEY) { if (ev->actorId == ACTOR_118_GRABBA) { - event->Cancelled = RANDO_SAVE_CHECKS[RC_GV_JIGGY_GRABBA].obtained; + event->Cancelled = RANDO_SAVE_CHECKS[RC_GV_JIGGY_GRABBA].eligible; ev->result = NULL; } } @@ -361,6 +359,7 @@ void Rando::ObjectBehavior::Init() { RandoItemId randoItemId = RI_UNKNOWN; if (ev->propId->markerFlag) { + RandoSaveCheck randoSaveCheck = RANDO_SAVE_CHECKS[ev->propId->actorProp.marker->randoCheckId]; Actor* markerActor = marker_getActor(ev->propId->actorProp.marker); if (markerActor->is_bundle && func_802C9C14(markerActor)) { @@ -371,17 +370,22 @@ void Rando::ObjectBehavior::Init() { switch (ev->propId->actorProp.marker->id) { case MARKER_39_MUMBO_TOKEN: if (RANDO_SAVE_OPTIONS[RO_SHUFFLE_MUMBO_TOKENS].optionValue == RO_GENERIC_ON) { - randoItemId = RI_MUMBO_TOKEN; + randoItemId = randoSaveCheck.randoItemId; } break; case MARKER_52_JIGGY: if (RANDO_SAVE_OPTIONS[RO_SHUFFLE_JIGGIES].optionValue == RO_GENERIC_ON) { - randoItemId = RI_JIGGY; + randoItemId = randoSaveCheck.randoItemId; } break; case MARKER_53_EMPTY_HONEYCOMB: if (RANDO_SAVE_OPTIONS[RO_SHUFFLE_EMPTY_HONEYCOMBS].optionValue == RO_GENERIC_ON) { - randoItemId = RI_EMPTY_HONEYCOMB; + randoItemId = randoSaveCheck.randoItemId; + } + break; + case MARKER_55_HONEYCOMB: + if (RANDO_SAVE_OPTIONS[RO_SHUFFLE_BEEHIVE_HONEYCOMBS].optionValue == RO_GENERIC_ON) { + randoItemId = randoSaveCheck.randoItemId; } break; case MARKER_5A_JINJO_BLUE: @@ -390,21 +394,30 @@ void Rando::ObjectBehavior::Init() { case MARKER_5D_JINJO_PINK: case MARKER_5E_JINJO_YELLOW: if (RANDO_SAVE_OPTIONS[RO_SHUFFLE_JINJOS].optionValue == RO_GENERIC_ON) { - randoItemId = Rando::StaticData::GetRandoItemByActorId( - jinjoMarkerMap.at(ev->propId->actorProp.marker->id)); + randoItemId = randoSaveCheck.randoItemId; } break; case MARKER_5F_MUSIC_NOTE: if (RANDO_SAVE_OPTIONS[RO_SHUFFLE_MUSIC_NOTES].optionValue == RO_GENERIC_ON) { - randoItemId = RI_MUSIC_NOTE; + randoItemId = randoSaveCheck.randoItemId; event->Cancelled = true; } break; + case MARKER_60_BLUE_EGG_COLLECTIBLE: + if (RANDO_SAVE_OPTIONS[RO_SHUFFLE_BLUE_EGGS].optionValue == RO_GENERIC_ON) { + randoItemId = randoSaveCheck.randoItemId; + } + break; + case MARKER_61_EXTRA_LIFE: + if (RANDO_SAVE_OPTIONS[RO_SHUFFLE_EXTRA_LIVES].optionValue == RO_GENERIC_ON) { + randoItemId = randoSaveCheck.randoItemId; + } + break; case MARKER_168_ICE_KEY: - randoItemId = RI_STOP_N_SWOP_KEY; + randoItemId = randoSaveCheck.randoItemId; break; case MARKER_169_SNS_EGG: - randoItemId = RI_STOP_N_SWOP_EGG; + randoItemId = randoSaveCheck.randoItemId; break; case MARKER_265_WORLD_EXIT_PAD: for (int i = LEVEL_1_MUMBOS_MOUNTAIN; i < LEVEL_A_MAD_MONSTER_MANSION; i++) { diff --git a/src/port/Rando/ObjectBehavior/ObjectBehavior.h b/src/port/Rando/ObjectBehavior/ObjectBehavior.h index 5c7fb44bb..c620a504c 100644 --- a/src/port/Rando/ObjectBehavior/ObjectBehavior.h +++ b/src/port/Rando/ObjectBehavior/ObjectBehavior.h @@ -4,7 +4,6 @@ #include "port/Rando/Rando.h" #include -bool ShouldOverrideSpawn(RandoCheckId randoCheckId); bool CheckEnemyOverlapPosition(int32_t pos[3]); int32_t GetJinjoActorMarkerId(actor_e actorId); extern std::vector enemyKillOverlapList; @@ -14,12 +13,6 @@ namespace Rando { namespace ObjectBehavior { void Init(); -void InitBundleBehavior(); -void InitJiggyBehavior(); -void InitJinjoBehavior(); -void InitMolehillBehavior(); -void InitMusicNoteBehavior(); -void InitPropBehavior(); void InitStopNSwopBehavior(); void ModifySwitchBehavior(int32_t switchActorId); @@ -27,7 +20,6 @@ void ModifyGobiBehavior(void* gobiActor); void ModifyBoggyBehavior(void* boggyActor); void ModifyPresentBehavior(void* presentActor); void ModifyStopNSwopWorldBehavior(void* snsActor); -void DespawnCollectedBundles(); } // namespace ObjectBehavior diff --git a/src/port/Rando/ObjectBehavior/Prop.cpp b/src/port/Rando/ObjectBehavior/Prop.cpp deleted file mode 100644 index 12f9bb02d..000000000 --- a/src/port/Rando/ObjectBehavior/Prop.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "ObjectBehavior.h" -#include "port/Rando/Logic/Logic.h" -#include "port/Rando/CustomObject/CustomObject.h" - -#include -#include "port/UI/cvar_prefixes.h" -#include -#include "port/Enhancements/Events/PortEnhancements.h" -#include "port/Enhancements/Events/Hooks/Events.h" - -#include "spdlog/spdlog.h" - -#define OPTION_ENABLED RANDO_SAVE_OPTIONS[RO_SHUFFLE_MUSIC_NOTES].optionValue - -void Rando::ObjectBehavior::InitPropBehavior() { - COND_VB_SHOULD(VB_OVERRIDE_PROP_SPAWN, EVENT_PRIORITY_NORMAL, true, { - s16* spawnPosition = va_arg(args, s16*); - - if (!IS_RANDO) { - return; - } - - if (!OPTION_ENABLED) { - return; - } - - int32_t position[3]; - position[0] = spawnPosition[0]; - position[1] = spawnPosition[1]; - position[2] = spawnPosition[2]; - - RandoCheckId randoCheckId = Rando::StaticData::GetCheckByPosition(position[0], position[1], position[2]); - if (randoCheckId == RC_UNKNOWN) { - *should = false; - return; - } - - if (!Rando::Logic::IsCheckShuffled(randoCheckId)) { - *should = false; - return; - } - - Actor* randoCustomActor = CustomObject::ShouldCreateCustomActorEX(randoCheckId, position, true); - *should = true; - }) -} diff --git a/src/port/Rando/StaticData/Checks.cpp b/src/port/Rando/StaticData/Checks.cpp index 2ee062e46..9ac508693 100644 --- a/src/port/Rando/StaticData/Checks.cpp +++ b/src/port/Rando/StaticData/Checks.cpp @@ -18,1214 +18,2006 @@ std::array CheckNames = std::array(); // clang-format off std::map Checks = { - RC(RC_UNKNOWN, RCTYPE_UNKNOWN, LEVEL_D_CUTSCENE, ACTOR_1_UNKNOWN, NULL, 0, 0, 0), - RC(RC_BGS_EMPTY_HONEYCOMB_MUMBOS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_7_BGS_MUMBOS, 0, 600, 0), - RC(RC_BGS_EMPTY_HONEYCOMB_TANKTUP, RCTYPE_EMPTY_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_8_BGS_TANKTUP, 0, 537, -1157), - RC(RC_BGS_JIGGY_CROCTUS, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_46_JIGGY, JIGGY_22_CROCTUS, 0, 0, 0), - RC(RC_BGS_JIGGY_ELEVATED_WALKWAY, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_46_JIGGY, JIGGY_20_BGS_ELEVATED_WALKWAY, 0, 0, 0), - RC(RC_BGS_JIGGY_FLIBBITS, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_46_JIGGY, JIGGY_24_BGS_FLIBBITS, 0, 0, 0), - RC(RC_BGS_JIGGY_HUTS, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_46_JIGGY, JIGGY_23_BGS_HUTS, 0, 0, 0), - RC(RC_BGS_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_46_JIGGY, JIGGY_1F_BGS_JINGO, 0, 0, 0), - RC(RC_BGS_JIGGY_MAZE, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_46_JIGGY, JIGGY_25_BGS_MAZE, 0, 0, 0), - RC(RC_BGS_JIGGY_MR_VILE, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_46_JIGGY, JIGGY_28_BGS_MR_VILE, 0, 0, 0), - RC(RC_BGS_JIGGY_PINKEGG, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_46_JIGGY, JIGGY_21_BGS_PINKEGG, 0, 0, 0), - RC(RC_BGS_JIGGY_TANKTUP, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_46_JIGGY, JIGGY_26_BGS_TANKTUP, 0, 0, 0), - RC(RC_BGS_JIGGY_TIPTUP, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_46_JIGGY, JIGGY_27_BGS_TIPTUP, 0, 0, 0), - RC(RC_BGS_JINJO_BLUE, RCTYPE_JINJO, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_60_JINJO_BLUE, NULL, -3061, 1146, -10052), - RC(RC_BGS_JINJO_GREEN, RCTYPE_JINJO, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_62_JINJO_GREEN, NULL, 1650, 1600, 1988), - RC(RC_BGS_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_5F_JINJO_ORANGE, NULL, 5472, 0, 2853), - RC(RC_BGS_JINJO_PINK, RCTYPE_JINJO, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_61_JINJO_PINK, NULL, 5670, 0, -4158), - RC(RC_BGS_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_5E_JINJO_YELLOW, NULL, -1606, 500, 2797), - RC(RC_BGS_MOLEHILL_WADING_BOOTS, RCTYPE_MOLEHILL, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_12C_MOLEHILL, ABILITY_E_WADING_BOOTS, 4297, 100, 6286), - RC(RC_BGS_MUMBO_TOKEN_ALCOVE_ABOVE_YELLOW_FLIBBITS, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_1B_BGS_ALCOVE_ABOVE_YELLOW_FLIBBITS, 4278, 1400, -1302), - RC(RC_BGS_MUMBO_TOKEN_BEHIND_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_1A_BGS_BEHIND_MUMBOS_SKULL, -6940, 1000, -5838), - RC(RC_BGS_MUMBO_TOKEN_BEHIND_TIPTUP, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_1C_BGS_BEHIND_TIPTUP, 0, 0, -1829), - RC(RC_BGS_MUMBO_TOKEN_BEHIND_YELLOW_JINJO, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_18_BGS_BEHIND_YELLOW_JINJO, -1855, 0, 2835), - RC(RC_BGS_MUMBO_TOKEN_FLOATING_BETWEEN_HUT_AND_CROCTUS, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_19_BGS_FLOATING_BETWEEN_HUT_AND_CROCTUS, 6546, 2992, -4697), - RC(RC_BGS_MUMBO_TOKEN_INSIDE_MR_VILES, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_1D_BGS_INSIDE_MR_VILES, 0, 300, -1754), - RC(RC_BGS_MUMBO_TOKEN_INSIDE_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_1E_BGS_INSIDE_MUMBOS_SKULL, 0, 0, -450), - RC(RC_BGS_MUMBO_TOKEN_TOP_OF_POLE_NEXT_TO_BIG_EGG, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_17_BGS_TOP_OF_POLE_NEXT_TO_BIG_EGG, -3993, 1055, 1295), - RC(RC_BGS_MUMBO_TOKEN_UNDER_HUT_1, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_15_BGS_UNDER_HUT_1, 5049, 0, -5142), - RC(RC_BGS_MUMBO_TOKEN_UNDER_HUT_2, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_16_BGS_UNDER_HUT_2, 5347, 0, -5055), - RC(RC_BGS_NOTE_ABOVE_MR_VILES_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -912, 347, -3385), - RC(RC_BGS_NOTE_ABOVE_MR_VILES_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1073, 318, -3495), - RC(RC_BGS_NOTE_ABOVE_MR_VILES_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1247, 405, -3608), - RC(RC_BGS_NOTE_ABOVE_MR_VILES_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1406, 517, -3718), - RC(RC_BGS_NOTE_ABOVE_MR_VILES_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1550, 652, -3828), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 29, 899, -2061), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 207, 948, -2346), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 587, 1023, -2412), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 847, 1049, -2243), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 1161, 1099, -2187), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_6, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 2261, 1075, -2275), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_7, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 2606, 1174, -2223), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_8, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 2904, 1125, -2136), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_9, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 3290, 1224, -1883), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_10, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 3425, 1200, -826), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_11, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 3308, 1299, -451), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_12, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 2973, 1349, -237), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_13, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 2619, 1299, -284), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_14, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 2310, 1200, -229), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_15, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 2150, 1200, 54), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_16, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 2145, 1299, 442), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_17, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 1202, 1350, 656), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_18, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 918, 1200, 687), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_19, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 575, 1249, 703), - RC(RC_BGS_NOTE_ELEVATED_WALKWAY_20, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 228, 1101, 502), - RC(RC_BGS_NOTE_FIFTH_SHORT_SWAMP_LOG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 468, 93, -2275), - RC(RC_BGS_NOTE_FIFTH_SHORT_SWAMP_LOG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 287, 93, -2417), - RC(RC_BGS_NOTE_FIFTH_SHORT_SWAMP_LOG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 105, 93, -2559), - RC(RC_BGS_NOTE_FIRST_SHORT_SWAMP_LOG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -68, 93, 1120), - RC(RC_BGS_NOTE_FIRST_SHORT_SWAMP_LOG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -74, 93, 920), - RC(RC_BGS_NOTE_FIRST_SHORT_SWAMP_LOG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -82, 93, 720), - RC(RC_BGS_NOTE_FOURTH_SHORT_SWAMP_LOG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 3178, 93, -2312), - RC(RC_BGS_NOTE_FOURTH_SHORT_SWAMP_LOG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 3355, 93, -2460), - RC(RC_BGS_NOTE_FOURTH_SHORT_SWAMP_LOG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 3529, 93, -2607), - RC(RC_BGS_NOTE_HUT_BUNDLE_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 0), - RC(RC_BGS_NOTE_HUT_BUNDLE_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 0), - RC(RC_BGS_NOTE_HUT_BUNDLE_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 0), - RC(RC_BGS_NOTE_HUT_BUNDLE_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 0), - RC(RC_BGS_NOTE_HUT_BUNDLE_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 0), - RC(RC_BGS_NOTE_INSIDE_MR_VILES_LEFT_NOSTRIL_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 280, 125, -2069), - RC(RC_BGS_NOTE_INSIDE_MR_VILES_LEFT_NOSTRIL_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 219, 125, -1941), - RC(RC_BGS_NOTE_INSIDE_MR_VILES_LEFT_NOSTRIL_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 200, 125, -1810), - RC(RC_BGS_NOTE_INSIDE_MR_VILES_RIGHT_NOSTRIL_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -280, 125, -2070), - RC(RC_BGS_NOTE_INSIDE_MR_VILES_RIGHT_NOSTRIL_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -219, 125, -1939), - RC(RC_BGS_NOTE_INSIDE_MR_VILES_RIGHT_NOSTRIL_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -199, 125, -1810), - RC(RC_BGS_NOTE_LOG_BRIDGE_NEAR_WARP_PAD_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1006, 444, 3631), - RC(RC_BGS_NOTE_LOG_BRIDGE_NEAR_WARP_PAD_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -984, 485, 3375), - RC(RC_BGS_NOTE_LOG_BRIDGE_NEAR_WARP_PAD_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -962, 524, 3114), - RC(RC_BGS_NOTE_LOG_BRIDGE_NEAR_WARP_PAD_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -912, 479, 2851), - RC(RC_BGS_NOTE_LOG_BRIDGE_NEAR_WARP_PAD_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -862, 437, 2592), - RC(RC_BGS_NOTE_MAZE_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -6304, 992, -3449), - RC(RC_BGS_NOTE_MAZE_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -5548, 992, -2204), - RC(RC_BGS_NOTE_MAZE_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -6054, 992, -2704), - RC(RC_BGS_NOTE_MAZE_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -6546, 992, -2193), - RC(RC_BGS_NOTE_MAZE_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -7047, 985, -3702), - RC(RC_BGS_NOTE_MAZE_6, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -8055, 991, -3200), - RC(RC_BGS_NOTE_MAZE_7, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -8553, 991, -2207), - RC(RC_BGS_NOTE_MAZE_8, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -8047, 991, -4700), - RC(RC_BGS_NOTE_MAZE_9, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -8548, 991, -4204), - RC(RC_BGS_NOTE_MAZE_10, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -8046, 991, -5201), - RC(RC_BGS_NOTE_MAZE_11, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -7553, 991, -5702), - RC(RC_BGS_NOTE_MAZE_12, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -6524, 1007, -4200), - RC(RC_BGS_NOTE_POLE_NEAR_BLUE_JINJO_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -4105, 1250, -8802), - RC(RC_BGS_NOTE_POLE_NEAR_BLUE_JINJO_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -4105, 1350, -8802), - RC(RC_BGS_NOTE_POLE_NEAR_BLUE_JINJO_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -4105, 1450, -8802), - RC(RC_BGS_NOTE_SECOND_SHORT_SWAMP_LOG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1345, 92, -153), - RC(RC_BGS_NOTE_SECOND_SHORT_SWAMP_LOG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1591, 92, -179), - RC(RC_BGS_NOTE_SECOND_SHORT_SWAMP_LOG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1834, 92, -204), - RC(RC_BGS_NOTE_SWAMP_BEHIND_BLUE_JINJO_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -2216, 0, -9596), - RC(RC_BGS_NOTE_SWAMP_BEHIND_BLUE_JINJO_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -2349, 0, -10049), - RC(RC_BGS_NOTE_SWAMP_BEHIND_BLUE_JINJO_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -2489, 0, -10528), - RC(RC_BGS_NOTE_SWAMP_BEHIND_BLUE_JINJO_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -3024, 0, -10719), - RC(RC_BGS_NOTE_SWAMP_BEHIND_BLUE_JINJO_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -3558, 0, -10911), - RC(RC_BGS_NOTE_SWAMP_BEHIND_HUTS_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 7253, 0, -3699), - RC(RC_BGS_NOTE_SWAMP_BEHIND_HUTS_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 7433, 0, -3931), - RC(RC_BGS_NOTE_SWAMP_BEHIND_HUTS_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 7612, 0, -4165), - RC(RC_BGS_NOTE_SWAMP_BEHIND_HUTS_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 7599, 0, -4481), - RC(RC_BGS_NOTE_SWAMP_BEHIND_HUTS_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 7585, 0, -4798), - RC(RC_BGS_NOTE_SWAMP_BEHIND_LARGE_EGG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -3501, 0, 3668), - RC(RC_BGS_NOTE_SWAMP_BEHIND_LARGE_EGG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -4017, 0, 3876), - RC(RC_BGS_NOTE_SWAMP_BEHIND_LARGE_EGG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -4544, 0, 4085), - RC(RC_BGS_NOTE_SWAMP_BEHIND_LARGE_EGG_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -4920, 0, 3823), - RC(RC_BGS_NOTE_SWAMP_BEHIND_LARGE_EGG_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -5293, 0, 3559), - RC(RC_BGS_NOTE_SWAMP_UNDER_HUTS_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 4789, 0, -4503), - RC(RC_BGS_NOTE_SWAMP_UNDER_HUTS_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 4793, 0, -4288), - RC(RC_BGS_NOTE_SWAMP_UNDER_HUTS_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 5015, 0, -4288), - RC(RC_BGS_NOTE_SWAMP_UNDER_HUTS_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 5009, 0, -4507), - RC(RC_BGS_NOTE_TANKTUP_FEET_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 3697, 176, 1632), - RC(RC_BGS_NOTE_TANKTUP_FEET_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 4351, 174, 955), - RC(RC_BGS_NOTE_TANKTUP_FEET_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 4461, 168, 2373), - RC(RC_BGS_NOTE_TANKTUP_FEET_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 5059, 170, 1758), - RC(RC_BGS_NOTE_TANKTUP_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 1006, 0, 235), - RC(RC_BGS_NOTE_TANKTUP_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 1022, 0, 0), - RC(RC_BGS_NOTE_TANKTUP_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 1005, 0, -236), - RC(RC_BGS_NOTE_TANKTUP_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1006, 0, 236), - RC(RC_BGS_NOTE_TANKTUP_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1022, 0, 0), - RC(RC_BGS_NOTE_TANKTUP_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, -1005, 0, -234), - RC(RC_BGS_NOTE_THIRD_SHORT_SWAMP_LOG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 2921, 93, -513), - RC(RC_BGS_NOTE_THIRD_SHORT_SWAMP_LOG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 3020, 93, -304), - RC(RC_BGS_NOTE_THIRD_SHORT_SWAMP_LOG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, ACTOR_51_MUSIC_NOTE, NULL, 3114, 93, -86), - RC(RC_CC_EMPTY_HONEYCOMB_ABOVEWATER, RCTYPE_EMPTY_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_6_CC_ABOVE_WATER, 7886, 4272, 1969), - RC(RC_CC_EMPTY_HONEYCOMB_UNDERWATER, RCTYPE_EMPTY_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_5_CC_UNDERWATER, 3718, 3311, 2519), - RC(RC_CC_JIGGY_BOLT, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, ACTOR_46_JIGGY, JIGGY_18_CC_BOLT, 90, 5962, -12), - RC(RC_CC_JIGGY_CLANKER_RAISED, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, ACTOR_46_JIGGY, JIGGY_17_CC_CLANKER_RAISED, 0, 0, 0), - RC(RC_CC_JIGGY_FAST_SAWBLADES, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, ACTOR_46_JIGGY, JIGGY_1E_CC_FAST_SAWBLADES, 0, -340, -1604), - RC(RC_CC_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, ACTOR_46_JIGGY, JIGGY_15_CC_JINJO, 0, 0, 0), - RC(RC_CC_JIGGY_LONG_PIPE, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, ACTOR_46_JIGGY, JIGGY_1A_CC_LONG_PIPE, 4629, 2151, 3082), - RC(RC_CC_JIGGY_RINGS, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, ACTOR_46_JIGGY, JIGGY_1C_CC_RINGS, 0, 0, 0), - RC(RC_CC_JIGGY_SLOW_SAWBLADES, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, ACTOR_46_JIGGY, JIGGY_1D_CC_SLOW_SAWBLADES, 10, -391, -2185), - RC(RC_CC_JIGGY_TAIL, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, ACTOR_46_JIGGY, JIGGY_19_CC_TAIL, 10061, 5112, 3), - RC(RC_CC_JIGGY_TOOTH, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, ACTOR_46_JIGGY, JIGGY_1B_CC_TOOTH, 0, 0, 0), - RC(RC_CC_JIGGY_SNIPPETS, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, ACTOR_46_JIGGY, JIGGY_16_CC_SNIPPETS, 0, 0, 0), - RC(RC_CC_JINJO_BLUE, RCTYPE_JINJO, LEVEL_3_CLANKERS_CAVERN, ACTOR_60_JINJO_BLUE, NULL, 4326, 2146, -4080), - RC(RC_CC_JINJO_GREEN, RCTYPE_JINJO, LEVEL_3_CLANKERS_CAVERN, ACTOR_62_JINJO_GREEN, NULL, 5017, -3085, -13), - RC(RC_CC_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_3_CLANKERS_CAVERN, ACTOR_5F_JINJO_ORANGE, NULL, 6138, 5087, 2637), - RC(RC_CC_JINJO_PINK, RCTYPE_JINJO, LEVEL_3_CLANKERS_CAVERN, ACTOR_61_JINJO_PINK, NULL, 3644, -474, 48), - RC(RC_CC_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_3_CLANKERS_CAVERN, ACTOR_5E_JINJO_YELLOW, NULL, -4726, 5337, -110), - RC(RC_CC_MOLEHILL_WONDERWING, RCTYPE_MOLEHILL, LEVEL_3_CLANKERS_CAVERN, ACTOR_12C_MOLEHILL, ABILITY_12_WONDERWING, -259, -500, 1413), - RC(RC_CC_MUMBO_TOKEN_CHOMPA_BEHIND_CLANKERS_TAIL, RCTYPE_MUMBO_TOKEN, LEVEL_3_CLANKERS_CAVERN, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_10_CC_CHOMPA_BEHIND_CLANKERS_TAIL, 9823, 4225, -19), - RC(RC_CC_MUMBO_TOKEN_ABOVE_LEVEL_ENTRANCE, RCTYPE_MUMBO_TOKEN, LEVEL_3_CLANKERS_CAVERN, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_11_CC_ABOVE_LEVEL_ENTRANCE, -9694, 5272, 1607), - RC(RC_CC_MUMBO_TOKEN_TUNNEL_RIGHT_OF_CLANKER, RCTYPE_MUMBO_TOKEN, LEVEL_3_CLANKERS_CAVERN, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_12_CC_TUNNEL_RIGHT_OF_CLANKER, 870, 2146, -3148), - RC(RC_CC_MUMBO_TOKEN_ALCOVE_WITH_OPEN_GRATE, RCTYPE_MUMBO_TOKEN, LEVEL_3_CLANKERS_CAVERN, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_13_CC_ALCOVE_WITH_OPEN_GRATE, 2028, 5456, 2344), - RC(RC_CC_MUMBO_TOKEN_CLANKERS_LEFT_TOOTH, RCTYPE_MUMBO_TOKEN, LEVEL_3_CLANKERS_CAVERN, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_14_CC_CLANKERS_LEFT_TOOTH, 532, 1424, 6632), - RC(RC_CC_NOTE_ABOVE_BOLT_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 2036, 5693, -15), - RC(RC_CC_NOTE_ABOVE_BOLT_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 1533, 5693, 381), - RC(RC_CC_NOTE_ABOVE_BOLT_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 1043, 5693, 377), - RC(RC_CC_NOTE_ABOVE_BOLT_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 939, 5693, -17), - RC(RC_CC_NOTE_CLIMBABLE_PIPE_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 3013, 4437, 2477), - RC(RC_CC_NOTE_CLIMBABLE_PIPE_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 3013, 4827, 2477), - RC(RC_CC_NOTE_CLIMBABLE_PIPE_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 3013, 5117, 2477), - RC(RC_CC_NOTE_CLIMBABLE_PIPE_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 3013, 5407, 2477), - RC(RC_CC_NOTE_ENTRANCE_TUNNEL_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -2580, 2841, 0), - RC(RC_CC_NOTE_ENTRANCE_TUNNEL_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -2030, 2466, 0), - RC(RC_CC_NOTE_ENTRANCE_TUNNEL_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -1480, 2461, 0), - RC(RC_CC_NOTE_ENTRANCE_TUNNEL_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -930, 2437, 0), - RC(RC_CC_NOTE_ENTRANCE_TUNNEL_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -380, 2236, 0), - RC(RC_CC_NOTE_ENTRANCE_TUNNEL_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 170, 2155, 0), - RC(RC_CC_NOTE_FAST_SAWBLADES_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -500, 1695), - RC(RC_CC_NOTE_FAST_SAWBLADES_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -500, 1130), - RC(RC_CC_NOTE_FAST_SAWBLADES_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -500, 555), - RC(RC_CC_NOTE_FAST_SAWBLADES_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -500, -20), - RC(RC_CC_NOTE_FAST_SAWBLADES_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -500, -600), - RC(RC_CC_NOTE_FAST_SAWBLADES_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -500, -1335), - RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, 1002, 5174), - RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 684, 999, 5391), - RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 780, 1004, 6071), - RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 566, 1007, 6712), - RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, 1008, 7036), - RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -566, 1015, 6712), - RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -792, 1005, 6071), - RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -685, 990, 5391), - RC(RC_CC_NOTE_LOWER_GILLS_TUNNEL_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -998, -387, 0), - RC(RC_CC_NOTE_LOWER_GILLS_TUNNEL_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -1399, -539, -10), - RC(RC_CC_NOTE_LOWER_GILLS_TUNNEL_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -1801, -493, -10), - RC(RC_CC_NOTE_LOWER_GILLS_TUNNEL_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -2199, -351, -10), - RC(RC_CC_NOTE_LOWER_GILLS_TUNNEL_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -2601, -8, -10), - RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -7636, 5162, -1164), - RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -8284, 5243, -911), - RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -8573, 5244, -353), - RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -9112, 5243, -182), - RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -7910, 5212, 804), - RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -7038, 5212, 754), - RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -6634, 5212, 238), - RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, -6065, 5211, 313), - RC(RC_CC_NOTE_NEAR_PINK_JINJO_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 1600, 953, 20), - RC(RC_CC_NOTE_NEAR_PINK_JINJO_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 1999, 1241, 45), - RC(RC_CC_NOTE_NEAR_PINK_JINJO_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 2399, 1258, 45), - RC(RC_CC_NOTE_NEAR_SNIPPETS_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 13028, 3362, -761), - RC(RC_CC_NOTE_NEAR_SNIPPETS_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 13540, 3362, -973), - RC(RC_CC_NOTE_NEAR_SNIPPETS_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 14096, 3362, -969), - RC(RC_CC_NOTE_NEAR_SNIPPETS_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 14602, 3362, -732), - RC(RC_CC_NOTE_NEAR_SNIPPETS_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 14590, 3362, 702), - RC(RC_CC_NOTE_NEAR_SNIPPETS_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 14105, 3361, 929), - RC(RC_CC_NOTE_NEAR_SNIPPETS_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 13538, 3362, 931), - RC(RC_CC_NOTE_NEAR_SNIPPETS_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 13018, 3362, 713), - RC(RC_CC_NOTE_NEAR_TAIL_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 8755, 4225, -1418), - RC(RC_CC_NOTE_NEAR_TAIL_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 8756, 4225, 1278), - RC(RC_CC_NOTE_NEAR_TAIL_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 9091, 4225, 1104), - RC(RC_CC_NOTE_NEAR_TAIL_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 9449, 4225, 923), - RC(RC_CC_NOTE_NEAR_TAIL_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 9636, 4225, 630), - RC(RC_CC_NOTE_NEAR_TAIL_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 9818, 4225, 339), - RC(RC_CC_NOTE_NEAR_TAIL_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 9818, 4225, -377), - RC(RC_CC_NOTE_NEAR_TAIL_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 9636, 4225, -679), - RC(RC_CC_NOTE_NEAR_TAIL_9, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 9438, 4225, -978), - RC(RC_CC_NOTE_NEAR_TAIL_10, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 9091, 4225, -1207), - RC(RC_CC_NOTE_PIPE_NEAR_SHOCK_PAD_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6582, 5284, 2536), - RC(RC_CC_NOTE_PIPE_NEAR_SHOCK_PAD_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6785, 5121, 2454), - RC(RC_CC_NOTE_PIPE_NEAR_SHOCK_PAD_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6989, 4958, 2388), - RC(RC_CC_NOTE_PIPE_NEAR_SHOCK_PAD_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 7194, 4787, 2321), - RC(RC_CC_NOTE_PIPE_NEAR_SHOCK_PAD_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 7401, 4611, 2247), - RC(RC_CC_NOTE_SLOW_SAWBLADES_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -425, 1610), - RC(RC_CC_NOTE_SLOW_SAWBLADES_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -425, 1010), - RC(RC_CC_NOTE_SLOW_SAWBLADES_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -425, 410), - RC(RC_CC_NOTE_SLOW_SAWBLADES_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -425, -190), - RC(RC_CC_NOTE_SLOW_SAWBLADES_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -425, -790), - RC(RC_CC_NOTE_SLOW_SAWBLADES_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 0, -425, -1390), - RC(RC_CC_NOTE_TOP_OF_CLANKER_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 3200, 4243, 0), - RC(RC_CC_NOTE_TOP_OF_CLANKER_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 3500, 4269, 2), - RC(RC_CC_NOTE_TOP_OF_CLANKER_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 3800, 4281, 0), - RC(RC_CC_NOTE_TOP_OF_CLANKER_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 4100, 4293, 0), - RC(RC_CC_NOTE_TOP_OF_CLANKER_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 5300, 4209, 0), - RC(RC_CC_NOTE_TOP_OF_CLANKER_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 5600, 4161, 0), - RC(RC_CC_NOTE_TOP_OF_CLANKER_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 5899, 4106, 0), - RC(RC_CC_NOTE_TOP_OF_CLANKER_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6200, 4072, 0), - RC(RC_CC_NOTE_TOP_OF_CLANKER_9, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6500, 4047, 0), - RC(RC_CC_NOTE_TOP_OF_CLANKER_10, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6800, 4063, 0), - RC(RC_CC_NOTE_UNDERWATER_LOCK_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6361, -3085, -908), - RC(RC_CC_NOTE_UNDERWATER_LOCK_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6716, -3085, -18), - RC(RC_CC_NOTE_UNDERWATER_LOCK_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6350, -3085, 866), - RC(RC_CC_NOTE_UNDERWATER_LOCK_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 5468, -3085, 1225), - RC(RC_CC_NOTE_UNDERWATER_LOCK_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 4583, -3085, 865), - RC(RC_CC_NOTE_UNDERWATER_LOCK_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 4220, -3085, -19), - RC(RC_CC_NOTE_UNDERWATER_LOCK_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 4584, -3085, -906), - RC(RC_CC_NOTE_UNDERWATER_LOCK_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 5469, -3085, -1273), - RC(RC_CC_NOTE_UNDERWATER_PIPE_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 3866, 1198, 2618), - RC(RC_CC_NOTE_UNDERWATER_PIPE_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 4427, 1188, 2637), - RC(RC_CC_NOTE_UNDERWATER_PIPE_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 4961, 1184, 2649), - RC(RC_CC_NOTE_UNDERWATER_PIPE_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 5417, 1184, 2626), - RC(RC_CC_NOTE_UNDERWATER_PIPE_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 5881, 1184, 2600), - RC(RC_CC_NOTE_UNDERWATER_PIPE_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6342, 1184, 2485), - RC(RC_CC_NOTE_UNDERWATER_PIPE_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 6804, 1184, 2361), - RC(RC_CC_NOTE_YELLOW_GRATE_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 2240, 5262, -2473), - RC(RC_CC_NOTE_YELLOW_GRATE_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, ACTOR_51_MUSIC_NOTE, NULL, 5270, 5261, -2937), - RC(RC_CCW_EMPTY_HONEYCOMB_GNAWTYS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_D_CCW_GNAWTYS, 694, 998, 632), - RC(RC_CCW_EMPTY_HONEYCOMB_NABNUTS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_E_CCW_NABNUTS, 640, 513, -202), - RC(RC_CCW_JIGGY_EYRIE, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_46_JIGGY, JIGGY_49_CCW_EYRIE, 0, 0, 0), - RC(RC_CCW_JIGGY_FLOWER, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_46_JIGGY, JIGGY_4D_CCW_FLOWER, 0, 0, 0), - RC(RC_CCW_JIGGY_GNAWTY, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_46_JIGGY, JIGGY_4B_CCW_GNAWTY, 240, 600, 75), - RC(RC_CCW_JIGGY_HOUSE, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_46_JIGGY, JIGGY_48_CCW_HOUSE, 6070, 4244, -113), - RC(RC_CCW_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_46_JIGGY, JIGGY_47_CCW_JINJO, 0, 0, 0), - RC(RC_CCW_JIGGY_NABNUT, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_46_JIGGY, JIGGY_4A_CCW_NABNUT, 0, 0, 0), - RC(RC_CCW_JIGGY_SUMMER_LEAF_JUMPS, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_46_JIGGY, JIGGY_4E_CCW_SUMMER_LEAF_JUMPS, 2215, 2616, 2142), - RC(RC_CCW_JIGGY_TOP_ROOM, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_46_JIGGY, JIGGY_50_CCW_TOP_ROOM, 0, 17, 225), - RC(RC_CCW_JIGGY_TREE_TOP, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_46_JIGGY, JIGGY_4F_CCW_TREE_TOP, 0, 7625, 3100), - RC(RC_CCW_JIGGY_ZUBBAS, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_46_JIGGY, JIGGY_4C_CCW_ZUBBAS, 0, 0, 125), - RC(RC_CCW_JINJO_BLUE, RCTYPE_JINJO, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_60_JINJO_BLUE, NULL, -6775, 1301, 0), - RC(RC_CCW_JINJO_GREEN, RCTYPE_JINJO, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_62_JINJO_GREEN, NULL, 0, 5760, -3330), - RC(RC_CCW_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_5F_JINJO_ORANGE, NULL, -1592, 900, -6073), - RC(RC_CCW_JINJO_PINK, RCTYPE_JINJO, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_61_JINJO_PINK, NULL, -225, 1039, -1100), - RC(RC_CCW_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_5E_JINJO_YELLOW, NULL, -3602, 0, 4266), - RC(RC_CCW_MUMBO_TOKEN_AUTUMN_FLOATING_ABOVE_BIG_CLUCKER, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_6A_CCW_AUTUMN_FLOATING_ABOVE_BIG_CLUCKER, 153, 1857, 2677), - RC(RC_CCW_MUMBO_TOKEN_AUTUMN_LEAF_NEAR_TREEHOUSE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_6D_CCW_AUTUMN_LEAF_NEAR_TREEHOUSE, 3405, 4107, 1003), - RC(RC_CCW_MUMBO_TOKEN_AUTUMN_SNAREBEAR_NEAR_ENTRANCE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_6B_CCW_AUTUMN_SNAREBEAR_NEAR_ENTRANCE, 500, 166, 5125), - RC(RC_CCW_MUMBO_TOKEN_AUTUMN_SNAREBEAR_TOP_OF_TREE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_6C_CCW_AUTUMN_SNAREBEAR_TOP_OF_TREE, 0, 5830, -3325), - RC(RC_CCW_MUMBO_TOKEN_AUTUMN_TOP_OF_BRANCH, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_6E_CCW_AUTUMN_TOP_OF_BRANCH, -5929, 2586, 61), - RC(RC_CCW_MUMBO_TOKEN_SPRING_FRONT_OF_EYRIE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_5D_CCW_SPRING_FRONT_OF_EYRIE, -2750, 4586, -513), - RC(RC_CCW_MUMBO_TOKEN_SPRING_NABNUTS_HOUSE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_62_CCW_SPRING_NABNUTS_HOUSE, -575, 300, -139), - RC(RC_CCW_MUMBO_TOKEN_SPRING_SNAREBEAR_NEAR_BIG_FLOWER, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_5F_CCW_SPRING_SNAREBEAR_NEAR_BIG_FLOWER, 1904, 105, -2706), - RC(RC_CCW_MUMBO_TOKEN_SPRING_SNAREBEAR_NEAR_ENTRANCE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_60_CCW_SPRING_SNAREBEAR_NEAR_ENTRANCE, 1000, 105, 5300), - RC(RC_CCW_MUMBO_TOKEN_SPRING_THORN_FIELD_FRONT_OF_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_5E_CCW_SPRING_THORN_FIELD_FRONT_OF_MUMBOS_SKULL, -2649, 0, -395), - RC(RC_CCW_MUMBO_TOKEN_SPRING_TOP_OF_BEEHIVE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_61_CCW_SPRING_TOP_OF_BEEHIVE, 0, 3513, -5240), - RC(RC_CCW_MUMBO_TOKEN_SPRING_TOP_OF_BRANCH, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_5C_CCW_SPRING_TOP_OF_BRANCH, -4053, 2894, 587), - RC(RC_CCW_MUMBO_TOKEN_SPRING_UNFINISHED_WOOD_TREEHOUSE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_5B_CCW_SPRING_UNFINISHED_WOOD_TREEHOUSE, 6134, 4244, 306), - RC(RC_CCW_MUMBO_TOKEN_SUMMER_BIG_FLOWER_FIELD, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_64_CCW_SUMMER_BIG_FLOWER_FIELD, -3578, 40, -4259), - RC(RC_CCW_MUMBO_TOKEN_SUMMER_ENTRANCE_GNAWTYS_HOUSE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_67_CCW_SUMMER_ENTRANCE_GNAWTYS_HOUSE, 2700, -600, 0), - RC(RC_CCW_MUMBO_TOKEN_SUMMER_FLOATING_ABOVE_BIG_CLUCKER, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_68_CCW_SUMMER_FLOATING_ABOVE_BIG_CLUCKER, 2043, 3534, 1799), - RC(RC_CCW_MUMBO_TOKEN_SUMMER_INSIDE_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_69_CCW_SUMMER_INSIDE_MUMBOS_SKULL, 0, 416, 500), - RC(RC_CCW_MUMBO_TOKEN_SUMMER_PLATFORMS_BEFORE_EYRIES_NEST, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_63_CCW_SUMMER_PLATFORMS_BEFORE_EYRIES_NEST, -1861, 4469, 1583), - RC(RC_CCW_MUMBO_TOKEN_SUMMER_SNAREBEAR_NEAR_THORN_FIELD, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_65_CCW_SUMMER_SNAREBEAR_NEAR_THORN_FIELD, -3855, 1428, 3840), - RC(RC_CCW_MUMBO_TOKEN_SUMMER_TOP_OF_BRANCH, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_66_CCW_SUMMER_TOP_OF_BRANCH, -4661, 2800, -1248), - RC(RC_CCW_MUMBO_TOKEN_WINTER_BIG_FLOWER, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_6F_CCW_WINTER_BIG_FLOWER, 0, 105, -5400), - RC(RC_CCW_MUMBO_TOKEN_WINTER_BROKEN_BEEHIVE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_71_CCW_WINTER_BROKEN_BEEHIVE, 0, 3138, -3696), - RC(RC_CCW_MUMBO_TOKEN_WINTER_FROZEN_RIVER_NEAR_FLIGHT_PAD, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_70_CCW_WINTER_FROZEN_RIVER_NEAR_FLIGHT_PAD, 5950, -46, 0), - RC(RC_CCW_MUMBO_TOKEN_WINTER_SIR_SLUSH_BETWEEN_BIG_FLOWER_AND_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_73_CCW_WINTER_SIR_SLUSH_BETWEEN_BIG_FLOWER_AND_MUMBOS_SKULL, -3157, 300, -3149), - RC(RC_CCW_MUMBO_TOKEN_WINTER_WALKWAY_FRONT_OF_NABNUTS_HOUSE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_72_CCW_WINTER_WALKWAY_FRONT_OF_NABNUTS_HOUSE, 40, 3969, 5000), - RC(RC_CCW_NOTE_AUTUMN_BEEHIVE_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -674, -1, 925), - RC(RC_CCW_NOTE_AUTUMN_BEEHIVE_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -674, 0, -900), - RC(RC_CCW_NOTE_AUTUMN_BEEHIVE_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 675, -2, 925), - RC(RC_CCW_NOTE_AUTUMN_BEEHIVE_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 675, 0, -674), - RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -3929, 4900, 312), - RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -4375, 4900, 765), - RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -5024, 4900, 766), - RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -5471, 4900, 312), - RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -5471, 4900, -313), - RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_6, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -5024, 4900, -766), - RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_7, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -4376, 4900, -766), - RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_8, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -3929, 4900, -313), - RC(RC_CCW_NOTE_AUTUMN_GNAWTYS_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 768, 998, 596), - RC(RC_CCW_NOTE_AUTUMN_GNAWTYS_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 613, 998, 664), - RC(RC_CCW_NOTE_AUTUMN_INSIDE_MUMBOS_SKULL_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -359, 379, -359), - RC(RC_CCW_NOTE_AUTUMN_INSIDE_MUMBOS_SKULL_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -360, 398, 375), - RC(RC_CCW_NOTE_AUTUMN_INSIDE_MUMBOS_SKULL_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 362, 379, -365), - RC(RC_CCW_NOTE_AUTUMN_INSIDE_MUMBOS_SKULL_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 363, 398, 364), - RC(RC_CCW_NOTE_AUTUMN_INSIDE_NABNUTS_HOUSE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 288, 413, -357), - RC(RC_CCW_NOTE_AUTUMN_INSIDE_NABNUTS_HOUSE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 382, 413, -296), - RC(RC_CCW_NOTE_AUTUMN_INSIDE_NABNUTS_HOUSE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 471, 413, -235), - RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -968, 900, 2578), - RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 969, 900, 2569), - RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 2569, 900, 969), - RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 2570, 900, -970), - RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 1950, 900, -1950), - RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_6, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 970, 900, -2569), - RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_7, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -50, 1100, -2750), - RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_8, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -970, 900, -2570), - RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_9, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -2584, 1100, -971), - RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_10, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -2577, 900, 972), - RC(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 950, 10, -6531), - RC(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 475, 10, -6599), - RC(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 0, 10, -6640), - RC(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -475, 10, -6599), - RC(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -950, 10, -6531), - RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 1905, 170, -2705), - RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 1905, 250, -2705), - RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 1905, 330, -2705), - RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -3801, 1452, 3790), - RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -3801, 1532, 3790), - RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -3801, 1612, 3790), - RC(RC_CCW_NOTE_ENTRANCE_HUB_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 816, 8, 3277), - RC(RC_CCW_NOTE_ENTRANCE_HUB_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 342, 2, 3477), - RC(RC_CCW_NOTE_ENTRANCE_HUB_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -342, 2, 3477), - RC(RC_CCW_NOTE_ENTRANCE_HUB_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -818, 8, 3275), - RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_BIG_FLOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -2975, 300, -2975), - RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_BIG_FLOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -3150, 307, -3150), - RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_BIG_FLOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -3325, 300, -3325), - RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_MUMBOS_SKULL_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -2700, 900, 2700), - RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_MUMBOS_SKULL_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -2900, 900, 2900), - RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_MUMBOS_SKULL_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -3100, 921, 3100), - RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 2875, 894, 2875), - RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 3075, 876, 3075), - RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 3275, 845, 3274), - RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 2826, 1275, -2825), - RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 3025, 1275, -3025), - RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_6, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 3225, 1275, -3225), - RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 0, 900, 2750), - RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 1950, 900, 1950), - RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 2750, 900, 0), - RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -1950, 937, -1950), - RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -2750, 900, 0), - RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_6, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -1950, 1350, 1950), - RC(RC_CCW_NOTE_SPRING_NEAR_BIG_FLOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 500, 59, -4950), - RC(RC_CCW_NOTE_SPRING_NEAR_BIG_FLOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -500, 48, -4950), - RC(RC_CCW_NOTE_SPRING_NEAR_BIG_FLOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -500, 52, -5850), - RC(RC_CCW_NOTE_SPRING_NEAR_BIG_FLOWER_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 500, 52, -5850), - RC(RC_CCW_NOTE_SUMMER_GNAWTYS_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 2201, -600, 0), - RC(RC_CCW_NOTE_SUMMER_GNAWTYS_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 1700, -589, 0), - RC(RC_CCW_NOTE_SUMMER_LEAF_NEAR_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -123, 308, 3059), - RC(RC_CCW_NOTE_SUMMER_LEAF_NEAR_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 115, 608, 3056), - RC(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 0, 3300, -2750), - RC(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 0, 3310, -2950), - RC(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 0, 3350, -3150), - RC(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 700, 4819, 4750), - RC(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 400, 4819, 4450), - RC(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 0, 4819, 4400), - RC(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -400, 4819, 4450), - RC(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -700, 4819, 4750), - RC(RC_CCW_NOTE_SUMMER_OUTSIDE_TREEHOUSE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 4728, 4244, -522), - RC(RC_CCW_NOTE_SUMMER_OUTSIDE_TREEHOUSE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 4671, 4243, -329), - RC(RC_CCW_NOTE_SUMMER_OUTSIDE_TREEHOUSE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 4562, 4243, 54), - RC(RC_CCW_NOTE_SUMMER_OUTSIDE_TREEHOUSE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 4507, 4244, 249), - RC(RC_CCW_NOTE_WINTER_NEAR_NABNUTS_HOUSE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -1150, 4019, 4300), - RC(RC_CCW_NOTE_WINTER_NEAR_NABNUTS_HOUSE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -1599, 4019, 4750), - RC(RC_CCW_NOTE_WINTER_NEAR_NABNUTS_HOUSE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -2051, 4019, 4300), - RC(RC_CCW_NOTE_WINTER_NEAR_NABNUTS_HOUSE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -1599, 4019, 3851), - RC(RC_CCW_NOTE_WINTER_TOP_OF_BRANCH_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -4034, 2899, -939), - RC(RC_CCW_NOTE_WINTER_TOP_OF_BRANCH_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -4654, 2800, -1243), - RC(RC_CCW_NOTE_WINTER_TOP_OF_BRANCH_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -4040, 2894, 583), - RC(RC_CCW_NOTE_WINTER_TOP_OF_BRANCH_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -4652, 2800, 647), - RC(RC_CCW_NOTE_WINTER_TOP_OF_TREEHOUSE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 4741, 4958, -106), - RC(RC_CCW_NOTE_WINTER_TOP_OF_TREEHOUSE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 5156, 4957, 13), - RC(RC_CCW_NOTE_WINTER_TOP_OF_TREEHOUSE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 5571, 4957, 132), - RC(RC_CCW_NOTE_WINTER_TOP_OF_TREEHOUSE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, 5987, 4958, 252), - RC(RC_CCW_NOTE_WINTER_TREETOP_PLATFORMS_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -2637, 4569, -871), - RC(RC_CCW_NOTE_WINTER_TREETOP_PLATFORMS_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -2308, 4869, -1528), - RC(RC_CCW_NOTE_WINTER_TREETOP_PLATFORMS_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -1691, 5210, -2199), - RC(RC_CCW_NOTE_WINTER_TREETOP_PLATFORMS_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_51_MUSIC_NOTE, NULL, -764, 5590, -2634), - RC(RC_CCW_SNS_YELLOW_EGG, RCTYPE_STOP_N_SWOP, LEVEL_8_CLICK_CLOCK_WOOD, ACTOR_25E_SNS_EGG, SNS_ITEM_EGG_YELLOW, 556, 150, 47), - RC(RC_FP_EMPTY_HONEYCOMB_UNDER_SIR_SLUSH, RCTYPE_EMPTY_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_A_FP_SIR_SLUSH, 4295, 441, 1268), - RC(RC_FP_EMPTY_HONEYCOMB_WOZZAS_CAVE, RCTYPE_EMPTY_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_9_FP_WOZZAS_CAVE, -6531, 135, 422), - RC(RC_FP_JIGGY_BEAT_ALL_SIR_SLUSH, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, ACTOR_46_JIGGY, JIGGY_31_FP_SIR_SLUSH, 0, 0 ,0), - RC(RC_FP_JIGGY_BOGGY_RACE_1, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, ACTOR_46_JIGGY, JIGGY_30_FP_BOGGY_2, 0, 0 ,0), - RC(RC_FP_JIGGY_BOGGY_RACE_2, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, ACTOR_46_JIGGY, JIGGY_2C_FP_BOGGY_3, 0, 0 ,0), - RC(RC_FP_JIGGY_IGLOO, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, ACTOR_46_JIGGY, JIGGY_2E_FP_PRESENTS, 0, 0 ,0), - RC(RC_FP_JIGGY_INSIDE_THE_TREE, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, ACTOR_46_JIGGY, JIGGY_2F_FP_XMAS_TREE, 0, 2305, 0), - RC(RC_FP_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, ACTOR_46_JIGGY, JIGGY_29_FP_JINJO, 0, 0 ,0), - RC(RC_FP_JIGGY_SLED_TO_BOGGY, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, ACTOR_46_JIGGY, JIGGY_2A_FP_BOGGY_1, 0, 0 ,0), - RC(RC_FP_JIGGY_SNOWMANS_BUTTONS, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, ACTOR_46_JIGGY, JIGGY_2D_FP_SNOWMAN_BUTTONS, 0, 0 ,0), - RC(RC_FP_JIGGY_SNOWMANS_PIPE, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, ACTOR_46_JIGGY, JIGGY_2B_FP_PIPE, -1019, 5936, 2047), - RC(RC_FP_JIGGY_WOZZA, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, ACTOR_46_JIGGY, JIGGY_32_FP_WOZZA, -4605, 822, -3938), - RC(RC_FP_JINJO_BLUE, RCTYPE_JINJO, LEVEL_5_FREEZEEZY_PEAK, ACTOR_60_JINJO_BLUE, NULL, -2588, 5684, 60), - RC(RC_FP_JINJO_GREEN, RCTYPE_JINJO, LEVEL_5_FREEZEEZY_PEAK, ACTOR_62_JINJO_GREEN, NULL, 6083, 450, 2736), - RC(RC_FP_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_5_FREEZEEZY_PEAK, ACTOR_5F_JINJO_ORANGE, NULL, 629, 366, 859), - RC(RC_FP_JINJO_PINK, RCTYPE_JINJO, LEVEL_5_FREEZEEZY_PEAK, ACTOR_61_JINJO_PINK, NULL, -6851, 1193, 930), - RC(RC_FP_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_5_FREEZEEZY_PEAK, ACTOR_5E_JINJO_YELLOW, NULL, 0, 406, -511), - RC(RC_FP_MOLEHILL_BEAK_BOMB, RCTYPE_MOLEHILL, LEVEL_5_FREEZEEZY_PEAK, ACTOR_12C_MOLEHILL, ABILITY_1_BEAK_BOMB, -7462, 250, 1324), - RC(RC_FP_MUMBO_TOKEN_INSIDE_BOGGYS_IGLOO, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_28_FP_INSIDE_BOGGYS_IGLOO, 0, 10, -215), - RC(RC_FP_MUMBO_TOKEN_PRESENT_STACK, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_21_FP_BEHIND_PILE_PRESENT_BOXES, -5904, 260, 794), - RC(RC_FP_MUMBO_TOKEN_POTTED_TREE, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_25_FP_CHRISTMAS_TREE_POT, -4590, 350, 6344), - RC(RC_FP_MUMBO_TOKEN_SIR_SLUSH_NEAR_RACE_START, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_23_FP_INSIDE_SIR_SLUSH_NEAR_SNOWMANS_LEFT_FOOT, 1413, 18, 2802), - RC(RC_FP_MUMBO_TOKEN_SIR_SLUSH_NEAR_RACE_FINISH, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_24_FP_INSIDE_SIR_SLUSH_NEAR_SNOWMANS_RIGHT_FOOT, -4527, 211, -803), - RC(RC_FP_MUMBO_TOKEN_SLED_TO_BOGGY, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_26_FP_TIP_OF_SCARF, -793, 3020, 4389), - RC(RC_FP_MUMBO_TOKEN_SNOWMAN_LEFT_FOOT, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_1F_FP_SNOWMAN_LEFT_FOOT, -1815, 4, -1019), - RC(RC_FP_MUMBO_TOKEN_SNOWMAN_RIGHT_FOOT, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_20_FP_SNOWMAN_RIGHT_FOOT, 634, 5, 769), - RC(RC_FP_MUMBO_TOKEN_VILLAGE_CHIMNEY, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_22_FP_ABOVE_CHIMNEY_FLIGHT_PAD, 5296, 2013, 2729), - RC(RC_FP_MUMBO_TOKEN_WATER_BEHIND_SNOWMAN, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_27_FP_WATER_BEHIND_SNOWMAN, -2424, -168, -4235), - RC(RC_FP_NOTE_FIRST_SLOPE_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -790, 3505, 8345), - RC(RC_FP_NOTE_FIRST_SLOPE_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -820, 3149, 7926), - RC(RC_FP_NOTE_FIRST_SLOPE_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -843, 2725, 7475), - RC(RC_FP_NOTE_FIRST_SLOPE_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -864, 2243, 7025), - RC(RC_FP_NOTE_FIRST_SLOPE_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -888, 1727, 6573), - RC(RC_FP_NOTE_HOUSE_NEAR_MUMBO_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 4268, 865, -589), - RC(RC_FP_NOTE_HOUSE_NEAR_MUMBO_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 4468, 844, -705), - RC(RC_FP_NOTE_HOUSE_NEAR_MUMBO_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 4659, 840, -815), - RC(RC_FP_NOTE_HOUSE_NEAR_SIR_SLUSH_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 3865, 843, 3023), - RC(RC_FP_NOTE_HOUSE_NEAR_SIR_SLUSH_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 3862, 844, 3237), - RC(RC_FP_NOTE_HOUSE_NEAR_SIR_SLUSH_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 3860, 861, 3464), - RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -362, 379, -362), - RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -500, 398, 0), - RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -355, 398, 362), - RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 362, 378, -362), - RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 500, 387, 0), - RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 362, 398, 363), - RC(RC_FP_NOTE_NEAR_RACE_START_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 2656, 658, 5687), - RC(RC_FP_NOTE_NEAR_RACE_START_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 2700, 658, 6100), - RC(RC_FP_NOTE_NEAR_RACE_START_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 2271, 658, 6789), - RC(RC_FP_NOTE_NEAR_RACE_START_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 1892, 658, 6955), - RC(RC_FP_NOTE_NEAR_WOZZA_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -3938, 800, -3704), - RC(RC_FP_NOTE_NEAR_WOZZA_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -3705, 800, -4019), - RC(RC_FP_NOTE_NEAR_WOZZA_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -3661, 800, -4459), - RC(RC_FP_NOTE_NEAR_WOZZA_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -3920, 800, -4807), - RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 4044, 295, 2411), - RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 4039, 294, 106), - RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 3763, 294, 320), - RC(RC_FP_NOTE_POND_AROUND_SIR_SLUCH_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 3505, 295, 679), - RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 3467, 295, 1433), - RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_6, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 3654, 295, 1906), - RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_7, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 4404, 294, 243), - RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_8, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 4559, 295, 2482), - RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_9, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 4930, 294, 1918), - RC(RC_FP_NOTE_POTTED_TREE_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -3430, 0, 6550), - RC(RC_FP_NOTE_POTTED_TREE_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -3926, 0, 7284), - RC(RC_FP_NOTE_POTTED_TREE_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -4844, 0, 7451), - RC(RC_FP_NOTE_POTTED_TREE_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -5579, 0, 6927), - RC(RC_FP_NOTE_POTTED_TREE_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -5754, 0, 6022), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -689, 600, -398), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -394, 600, -690), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 1, 600, -795), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 399, 600, -688), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 686, 600, -395), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 793, 600, 0), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_7, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 685, 600, 396), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_8, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 395, 600, 682), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_9, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 3, 600, 794), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_10, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -398, 600, 684), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_11, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -689, 600, 395), - RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_12, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -791, 600, 0), - RC(RC_FP_NOTE_PRESENTS_NEAR_FLIGHT_PAD_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -5971, 893, 900), - RC(RC_FP_NOTE_PRESENTS_NEAR_FLIGHT_PAD_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -6190, 893, 899), - RC(RC_FP_NOTE_PRESENTS_NEAR_FLIGHT_PAD_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -6409, 893, 900), - RC(RC_FP_NOTE_PRESENTS_NEAR_FLIGHT_PAD_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -6630, 893, 900), - RC(RC_FP_NOTE_SECOND_SLOPE_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -900, 1727, 5675), - RC(RC_FP_NOTE_SECOND_SLOPE_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -883, 1196, 5183), - RC(RC_FP_NOTE_SECOND_SLOPE_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -867, 578, 4693), - RC(RC_FP_NOTE_SECOND_SLOPE_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -850, 0, 4201), - RC(RC_FP_NOTE_SIR_SLUSH_NEAR_SNOWMAN_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -4394, 0, -1052), - RC(RC_FP_NOTE_SIR_SLUSH_NEAR_SNOWMAN_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -4772, 0, -948), - RC(RC_FP_NOTE_SIR_SLUSH_NEAR_SNOWMAN_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -4668, 0, -570), - RC(RC_FP_NOTE_SIR_SLUSH_NEAR_SNOWMAN_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -4290, 0, -674), - RC(RC_FP_NOTE_SNOWMAN_HAT_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -672, 8736, 1047), - RC(RC_FP_NOTE_SNOWMAN_HAT_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1517, 8633, 860), - RC(RC_FP_NOTE_SNOWMAN_HAT_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -2000, 8492, 133), - RC(RC_FP_NOTE_SNOWMAN_HAT_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1804, 8434, -734), - RC(RC_FP_NOTE_SNOWMAN_HAT_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1046, 8503, -1179), - RC(RC_FP_NOTE_SNOWMAN_HAT_6, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -195, 8574, -1023), - RC(RC_FP_NOTE_SNOWMAN_HAT_7, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 257, 8711, -275), - RC(RC_FP_NOTE_SNOWMAN_HAT_8, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 80, 8749, 591), - RC(RC_FP_NOTE_SNOWMAN_LEFT_FOOT_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1956, 5, -25), - RC(RC_FP_NOTE_SNOWMAN_LEFT_FOOT_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -2176, 5, -559), - RC(RC_FP_NOTE_SNOWMAN_LEFT_FOOT_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1254, 5, -943), - RC(RC_FP_NOTE_SNOWMAN_LEFT_FOOT_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1026, 5, -403), - RC(RC_FP_NOTE_SNOWMAN_LEFT_FOOT_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1378, 5, 47), - RC(RC_FP_NOTE_SNOWMAN_RIGHT_FOOT_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 283, 4, 1246), - RC(RC_FP_NOTE_SNOWMAN_RIGHT_FOOT_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -301, 4, 1176), - RC(RC_FP_NOTE_SNOWMAN_RIGHT_FOOT_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -515, 5, 629), - RC(RC_FP_NOTE_SNOWMAN_RIGHT_FOOT_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -154, 5, 162), - RC(RC_FP_NOTE_SNOWMAN_RIGHT_FOOT_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 426, 5, 244), - RC(RC_FP_NOTE_SNOWMAN_SCARF_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -2337, 1669, -5188), - RC(RC_FP_NOTE_SNOWMAN_SCARF_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -2704, 1958, -4154), - RC(RC_FP_NOTE_SNOWMAN_SCARF_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1952, 2278, -3614), - RC(RC_FP_NOTE_SNOWMAN_SCARF_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1192, 2772, -4242), - RC(RC_FP_NOTE_SNOWMAN_SCARF_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -615, 3247, -4985), - RC(RC_FP_NOTE_SNOWMAN_SCARF_6, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 59, 3511, -4554), - RC(RC_FP_NOTE_SNOWMAN_SCARF_7, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -387, 3764, -3875), - RC(RC_FP_NOTE_SNOWMAN_SCARF_8, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1062, 4007, -4301), - RC(RC_FP_NOTE_SNOWMAN_SCARF_9, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -631, 4267, -4977), - RC(RC_FP_NOTE_SNOWMAN_SCARF_10, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 42, 4530, -4557), - RC(RC_FP_NOTE_SNOWMAN_SCARF_11, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -20, 4790, -3699), - RC(RC_FP_NOTE_SNOWMAN_SCARF_12, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -140, 5225, -3101), - RC(RC_FP_NOTE_SNOWMAN_SCARF_13, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -248, 5452, -2390), - RC(RC_FP_NOTE_SNOWMAN_SCARF_14, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -353, 5101, -1787), - RC(RC_FP_NOTE_SNOWMAN_SCARF_15, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -491, 5430, -1199), - RC(RC_FP_NOTE_SNOWMAN_SCARF_16, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -583, 5605, -698), - RC(RC_FP_NOTE_SNOWMAN_SCARF_17, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -1514, 5605, -99), - RC(RC_FP_NOTE_SNOWMAN_SCARF_18, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, -941, 5605, 844), - RC(RC_FP_NOTE_SNOWMAN_SCARF_19, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, ACTOR_51_MUSIC_NOTE, NULL, 17, 5605, 266), - RC(RC_FP_SNS_ICE_KEY, RCTYPE_STOP_N_SWOP, LEVEL_5_FREEZEEZY_PEAK, ACTOR_25D_ICE_KEY, SNS_ITEM_ICE_KEY, 1567, 583, 2416), - RC(RC_GL_JIGGY_LOBBY, RCTYPE_JIGGY, LEVEL_6_LAIR, ACTOR_46_JIGGY, JIGGY_33_LAIR_1ST_JIGGY, -1505, 600, 123), - RC(RC_GL_JIGGY_WITCH_SWITCH_BUBBLEGLOOP_SWAMP, RCTYPE_JIGGY, LEVEL_6_LAIR, ACTOR_46_JIGGY, JIGGY_37_LAIR_BGS_WITCH_SWITCH, 0, 0, -20), - RC(RC_GL_JIGGY_WITCH_SWITCH_CLANKERS_CAVERN, RCTYPE_JIGGY, LEVEL_6_LAIR, ACTOR_46_JIGGY, JIGGY_35_LAIR_CC_WITCH_SWITCH, 0, 75, 156), - RC(RC_GL_JIGGY_WITCH_SWITCH_CLICK_CLOCK_WOOD, RCTYPE_JIGGY, LEVEL_6_LAIR, ACTOR_46_JIGGY, JIGGY_3C_LAIR_CCW_WITCH_SWITCH, 0, 3370, 2270), - RC(RC_GL_JIGGY_WITCH_SWITCH_FREEZEEZY_PEAK, RCTYPE_JIGGY, LEVEL_6_LAIR, ACTOR_46_JIGGY, JIGGY_38_LAIR_FP_WITCH_SWITCH, 4126, 2392, 6559), - RC(RC_GL_JIGGY_WITCH_SWITCH_GOBIS_VALLEY, RCTYPE_JIGGY, LEVEL_6_LAIR, ACTOR_46_JIGGY, JIGGY_3A_LAIR_GV_WITCH_SWITCH, -1290, 514, -787), - RC(RC_GL_JIGGY_WITCH_SWITCH_MAD_MONSTER_MANSION, RCTYPE_JIGGY, LEVEL_6_LAIR, ACTOR_46_JIGGY, JIGGY_39_LAIR_MMM_WITCH_SWITCH, 1597, 1011, -254), - RC(RC_GL_JIGGY_WITCH_SWITCH_MUMBOS_MOUNTAIN, RCTYPE_JIGGY, LEVEL_6_LAIR, ACTOR_46_JIGGY, JIGGY_34_LAIR_MM_WITCH_SWITCH, 4165, 1000, -2363), - RC(RC_GL_JIGGY_WITCH_SWITCH_RUSTY_BUCKET_BAY, RCTYPE_JIGGY, LEVEL_6_LAIR, ACTOR_46_JIGGY, JIGGY_3B_LAIR_RBB_WITCH_SWITCH, 0, 1200, 1650), - RC(RC_GL_JIGGY_WITCH_SWITCH_TREASURE_TROVE_COVE, RCTYPE_JIGGY, LEVEL_6_LAIR, ACTOR_46_JIGGY, JIGGY_36_LAIR_TTC_WITCH_SWITCH, 998, 783, 368), - RC(RC_GL_MUMBO_TOKEN_BEHIND_PURPLE_CAULDRON, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_51_LAIR_BEHIND_PURPLE_CAULDRON, 162, -750, 4611), - RC(RC_GL_MUMBO_TOKEN_TOP_OF_PIPE_IN_ORANGE_CAULDRON_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_53_LAIR_TOP_OF_PIPE_IN_ORANGE_CAULDRON_ROOM, -180, 351, -750), - RC(RC_GL_MUMBO_TOKEN_ABOVE_CC_ENTRANCE, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_54_LAIR_ABOVE_CC_ENTRANCE, 0, 850, -2450), - RC(RC_GL_MUMBO_TOKEN_CCW_JIGGY_PODIUM, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_52_LAIR_CCW_JIGGY_PODIUM, 4936, -478, 286), - RC(RC_GL_MUMBO_TOKEN_BEHIND_SARCOPHAGUS, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_55_LAIR_BEHIND_SARCOPHAGUS, -1486, 0, -922), - RC(RC_GL_MUMBO_TOKEN_ADVENT_TOP_WINDOW, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_56_LAIR_ADVENT_TOP_WINDOW, 4155, 1485, 6270), - RC(RC_GL_MUMBO_TOKEN_UNDERWATER_RBB_ENTRANCE_AREA, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_59_LAIR_UNDERWATER_RBB_ENTRANCE_AREA, 1764, -1400, -1136), - RC(RC_GL_MUMBO_TOKEN_WHIPCRACK_NEAR_MMM_JIGGY_PODIUM, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_5A_LAIR_WHIPCRACK_NEAR_MMM_JIGGY_PODIUM, -1140, 707, 1973), - RC(RC_GL_MUMBO_TOKEN_BEHIND_MUMBO_IN_CRYPT, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_57_LAIR_BEHIND_MUMBO_IN_CRYPT, 1488, 249, 0), - RC(RC_GL_MUMBO_TOKEN_ABOVE_NOTE_DOOR_WATER_AREA, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_58_LAIR_ABOVE_NOTE_DOOR_WATER_AREA, 1256, 2582, 0), - RC(RC_GV_EMPTY_HONEYCOMB_CACTUS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_B_GV_CACTUS, 2911, 3292, -3307), - RC(RC_GV_EMPTY_HONEYCOMB_GOBI, RCTYPE_EMPTY_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_C_GV_GOBI_3, -6885, 2383, 1335), - RC(RC_GV_JIGGY_ANCIENT_ONES, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, ACTOR_46_JIGGY, JIGGY_46_GV_ANCIENT_ONES, 0, 0, 0), - RC(RC_GV_JIGGY_GOBI_1, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, ACTOR_46_JIGGY, JIGGY_44_GV_GOBI_1, 0, 0, 0), - RC(RC_GV_JIGGY_GOBI_2, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, ACTOR_46_JIGGY, JIGGY_45_GV_GOBI_2, 0, 0, 0), - RC(RC_GV_JIGGY_GRABBA, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, ACTOR_46_JIGGY, JIGGY_3E_GV_GRABBA, -4644, 1875, -4831), - RC(RC_GV_JIGGY_HISTUP, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, ACTOR_46_JIGGY, JIGGY_43_GV_HISTUP, -3, 1359, 15), - RC(RC_GV_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, ACTOR_46_JIGGY, JIGGY_3D_GV_JINJO, 0, 0, 0), - RC(RC_GV_JIGGY_MATCHING_GAME, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, ACTOR_46_JIGGY, JIGGY_40_GV_MATCHING_GAME, 0, 0, 0), - RC(RC_GV_JIGGY_MAZE, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, ACTOR_46_JIGGY, JIGGY_41_GV_MAZE, -5008, 66, 62), - RC(RC_GV_JIGGY_SHYINX, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, ACTOR_46_JIGGY, JIGGY_3F_GV_SHYINX, -2250, 1970, -49), - RC(RC_GV_JIGGY_WATER_PYRAMID, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, ACTOR_46_JIGGY, JIGGY_42_GV_WATER_PYRAMID, -1, 145, -23), - RC(RC_GV_JINJO_BLUE, RCTYPE_JINJO, LEVEL_7_GOBIS_VALLEY, ACTOR_60_JINJO_BLUE, NULL, 58, 535, 1570), - RC(RC_GV_JINJO_GREEN, RCTYPE_JINJO, LEVEL_7_GOBIS_VALLEY, ACTOR_62_JINJO_GREEN, NULL, 4952, 2538, 439), - RC(RC_GV_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_7_GOBIS_VALLEY, ACTOR_5F_JINJO_ORANGE, NULL, 2078, 1122, -50), - RC(RC_GV_JINJO_PINK, RCTYPE_JINJO, LEVEL_7_GOBIS_VALLEY, ACTOR_61_JINJO_PINK, NULL, -4964, 0, 700), - RC(RC_GV_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_7_GOBIS_VALLEY, ACTOR_5E_JINJO_YELLOW, NULL, 3067, 447, 10270), - RC(RC_GV_MOLEHILL_TURBO_TALON, RCTYPE_MOLEHILL, LEVEL_7_GOBIS_VALLEY, ACTOR_12C_MOLEHILL, ABILITY_11_TURBO_TALON, -6445, 2831, -822), - RC(RC_GV_MUMBO_TOKEN_BEHIND_SANDYBUTTS_SARCOPHAGUS, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_2F_GV_BEHIND_SANDYBUTTS_SARCOPHAGUS, -5514, 0, 138), - RC(RC_GV_MUMBO_TOKEN_BOTTOM_OF_MOAT, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_2B_GV_BOTTOM_OF_MOAT, 91, 535, -860), - RC(RC_GV_MUMBO_TOKEN_FRONT_OF_STAR_DOOR, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_2D_GV_FRONT_OF_STAR_DOOR, -230, 2843, -3091), - RC(RC_GV_MUMBO_TOKEN_INSIDE_JINXY, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_32_GV_INSIDE_JINXY, -2550, 0, -51), - RC(RC_GV_MUMBO_TOKEN_INSIDE_MEMORY_GAME_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_2E_GV_INSIDE_MEMORY_GAME_ROOM, 715, 248, 0), - RC(RC_GV_MUMBO_TOKEN_INSIDE_WATER_PYRAMID, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_30_GV_INSIDE_WATER_PYRAMID, -300, 1439, -1194), - RC(RC_GV_MUMBO_TOKEN_NEXT_TO_RUBEE, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_31_GV_NEXT_TO_RUBEE, 0, 107, -602), - RC(RC_GV_MUMBO_TOKEN_SAND_RIGHT_OF_JINXY, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_2A_GV_SAND_RIGHT_OF_JINXY, -5386, 1420, 10034), - RC(RC_GV_MUMBO_TOKEN_TOP_OF_JINXYS_NOSE, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_29_GV_TOP_OF_JINXYS_NOSE, -2149, 3340, 5867), - RC(RC_GV_MUMBO_TOKEN_TOP_OF_WATER_PYRAMID, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_2C_GV_TOP_OF_WATER_PYRAMID, 64, 3484, 400), - RC(RC_GV_NOTE_DESERT_DOOR_ALCOVE_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -7178, 2372, 1754), - RC(RC_GV_NOTE_DESERT_DOOR_ALCOVE_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -7148, 2371, 1568), - RC(RC_GV_NOTE_DESERT_DOOR_ALCOVE_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -7123, 2371, 1404), - RC(RC_GV_NOTE_DESERT_DOOR_ALCOVE_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -7105, 2371, 1247), - RC(RC_GV_NOTE_DESERT_DOOR_ALCOVE_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -7082, 2372, 1091), - RC(RC_GV_NOTE_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 88, 460, 8403), - RC(RC_GV_NOTE_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -251, 697, 8089), - RC(RC_GV_NOTE_ENTRANCE_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -584, 894, 7778), - RC(RC_GV_NOTE_ENTRANCE_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -935, 1082, 7449), - RC(RC_GV_NOTE_ENTRANCE_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -1289, 1259, 7119), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -450, 19, -450), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -450, 19, 450), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 450, 19, -450), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 450, 19, 450), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_SIDE_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 4215, 2452, -715), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_SIDE_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 4815, 2452, -714), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 2395, 2130, -300), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 3090, 2730, -300), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 3090, 2730, 970), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 2395, 2130, 970), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 3792, 2656, 325), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 3930, 2849, 324), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 4070, 3040, 324), - RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 4211, 3233, 324), - RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -4002, 0, 43), - RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3504, 0, -190), - RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -2735, 0, 203), - RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -1913, 3, 210), - RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 4729, 0, -45), - RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 4178, 0, 205), - RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 5400, 0, 326), - RC(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -464, 2770, 1610), - RC(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -464, 2170, 2305), - RC(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 684, 2770, 1610), - RC(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 685, 2170, 2305), - RC(RC_GV_NOTE_MOAT_BOTTOM_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -908, 535, -472), - RC(RC_GV_NOTE_MOAT_BOTTOM_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -1182, 535, 457), - RC(RC_GV_NOTE_MOAT_BOTTOM_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -807, 535, 1318), - RC(RC_GV_NOTE_MOAT_BOTTOM_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 928, 535, 1291), - RC(RC_GV_NOTE_MOAT_BOTTOM_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 1234, 535, 411), - RC(RC_GV_NOTE_MOAT_BOTTOM_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 1055, 535, -458), - RC(RC_GV_NOTE_MOAT_EDGE_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -2111, 1830, 1016), - RC(RC_GV_NOTE_MOAT_EDGE_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -2100, 1830, 112), - RC(RC_GV_NOTE_MOAT_EDGE_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -2098, 1830, -785), - RC(RC_GV_NOTE_MOAT_EDGE_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -1455, 1830, -1432), - RC(RC_GV_NOTE_MOAT_EDGE_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -800, 1830, -2068), - RC(RC_GV_NOTE_MOAT_EDGE_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 110, 1830, -2068), - RC(RC_GV_NOTE_MOAT_EDGE_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 1019, 1830, -2068), - RC(RC_GV_NOTE_MOAT_EDGE_8, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 1671, 1830, -1416), - RC(RC_GV_NOTE_MOAT_EDGE_9, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 2307, 1837, -770), - RC(RC_GV_NOTE_NEAR_GRABBA_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3017, 1781, -5496), - RC(RC_GV_NOTE_NEAR_GRABBA_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3026, 1781, -5048), - RC(RC_GV_NOTE_NEAR_GRABBA_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3028, 1781, -4591), - RC(RC_GV_NOTE_NEAR_GRABBA_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3037, 1781, -4148), - RC(RC_GV_NOTE_NEAR_GRABBA_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3054, 1781, -3695), - RC(RC_GV_NOTE_NEAR_GRABBA_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3401, 1780, -3430), - RC(RC_GV_NOTE_NEAR_GRABBA_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3752, 1781, -3161), - RC(RC_GV_NOTE_NEAR_GRABBA_8, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -4116, 1780, -2895), - RC(RC_GV_NOTE_NEAR_GRABBA_9, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -4541, 1780, -2871), - RC(RC_GV_NOTE_NEAR_GRABBA_10, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -4958, 1781, -2855), - RC(RC_GV_NOTE_NEAR_GRABBA_11, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -5385, 1780, -2843), - RC(RC_GV_NOTE_NEAR_RUBEE_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -685, 0, -743), - RC(RC_GV_NOTE_NEAR_RUBEE_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -495, 0, -880), - RC(RC_GV_NOTE_NEAR_RUBEE_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -913, 0, 428), - RC(RC_GV_NOTE_NEAR_RUBEE_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -986, 0, 201), - RC(RC_GV_NOTE_NEAR_RUBEE_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 496, 0, -878), - RC(RC_GV_NOTE_NEAR_RUBEE_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 679, 0, -744), - RC(RC_GV_NOTE_NEAR_RUBEE_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 915, 0, 421), - RC(RC_GV_NOTE_NEAR_RUBEE_8, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 988, 0, 195), - RC(RC_GV_NOTE_NEAR_TURBO_TRAINERS_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 2925, 3426, -6331), - RC(RC_GV_NOTE_NEAR_TURBO_TRAINERS_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 3522, 3403, -6008), - RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3165, 1378, 7933), - RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3720, 1390, 8460), - RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -4276, 1402, 8984), - RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -4829, 1415, 9510), - RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -5713, 1379, 9342), - RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -6046, 1329, 8619), - RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -6367, 1281, 7928), - RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_8, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -6724, 1233, 7210), - RC(RC_GV_NOTE_SPHYNX_FOOT_LEFT_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -2776, 1606, 6486), - RC(RC_GV_NOTE_SPHYNX_FOOT_LEFT_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3035, 1663, 6675), - RC(RC_GV_NOTE_SPHYNX_FOOT_LEFT_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3048, 1665, 6316), - RC(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -2814, 1605, 5292), - RC(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3083, 1666, 5488), - RC(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3096, 1664, 5106), - RC(RC_GV_NOTE_SPHYNX_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3310, 0, -850), - RC(RC_GV_NOTE_SPHYNX_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -3317, 0, 748), - RC(RC_GV_NOTE_SPHYNX_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -1195, 1592, -50), - RC(RC_GV_NOTE_SPHYNX_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 95, 911, -50), - RC(RC_GV_NOTE_SPHYNX_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 1295, 274, -50), - RC(RC_GV_NOTE_SPHYNX_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 2249, 0, -829), - RC(RC_GV_NOTE_SPHYNX_INTERIOR_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 2265, 0, 753), - RC(RC_GV_NOTE_WATER_PYRAMID_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -5, 13, -757), - RC(RC_GV_NOTE_WATER_PYRAMID_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -776, 13, -3), - RC(RC_GV_NOTE_WATER_PYRAMID_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -14, 13, 734), - RC(RC_GV_NOTE_WATER_PYRAMID_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 729, 13, -11), - RC(RC_GV_NOTE_WATER_PYRAMID_TOP_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -1168, 3324, -3242), - RC(RC_GV_NOTE_WATER_PYRAMID_TOP_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, 1214, 3821, -3576), - RC(RC_GV_NOTE_WATER_PYRAMID_TOP_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -828, 3821, -3580), - RC(RC_GV_NOTE_WATER_PYRAMID_TOP_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, ACTOR_51_MUSIC_NOTE, NULL, -489, 4316, -4946), - RC(RC_GV_SNS_BLUE_EGG, RCTYPE_STOP_N_SWOP, LEVEL_7_GOBIS_VALLEY, ACTOR_25E_SNS_EGG, SNS_ITEM_EGG_BLUE, 8, 470, -4141), - RC(RC_MM_EMPTY_HONEYCOMB_HILL, RCTYPE_EMPTY_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_1_MM_HILL, 985, 484, 1681), - RC(RC_MM_EMPTY_HONEYCOMB_JUJU, RCTYPE_EMPTY_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_2_MM_JUJU, 4302, 2900, -1490), - RC(RC_MM_JIGGY_CHIMPY, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_46_JIGGY, JIGGY_9_MM_CHIMPY, 0, 0, 0), - RC(RC_MM_JIGGY_CONGA, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_46_JIGGY, JIGGY_A_MM_CONGA, 0, 0, 0), - RC(RC_MM_JIGGY_HILL, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_46_JIGGY, JIGGY_07_MM_HILL, 4335, 1485, 794), - RC(RC_MM_JIGGY_HUTS, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_46_JIGGY, JIGGY_5_MM_HUTS, 0, 0, 0), - RC(RC_MM_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_46_JIGGY, JIGGY_01_MM_JINJO, 1702, -41, 2941), - RC(RC_MM_JIGGY_JUJU, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_46_JIGGY, JIGGY_4_MM_JUJU, 4309, 2374, -1487), - RC(RC_MM_JIGGY_MUMBOS_SKULL, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_46_JIGGY, JIGGY_03_MM_MUMBOS_SKULL, 5580, 2756, -2708), - RC(RC_MM_JIGGY_ORANGE_PADS, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_46_JIGGY, JIGGY_8_MM_ORANGE_PADS, 0, 0, 0), - RC(RC_MM_JIGGY_RUINS, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_46_JIGGY, JIGGY_06_MM_RUINS, -3699, 2438, -2113), - RC(RC_MM_JIGGY_TICKERS_TOWER, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_46_JIGGY, JIGGY_02_MM_TICKERS_TOWER, 373, 4221, -906), - RC(RC_MM_JINJO_BLUE, RCTYPE_JINJO, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_60_JINJO_BLUE, NULL, 1702, -125, 2941), - RC(RC_MM_JINJO_GREEN, RCTYPE_JINJO, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_62_JINJO_GREEN, NULL, 0, 0, 0), - RC(RC_MM_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_5F_JINJO_ORANGE, NULL, -3297, 2755, -1421), - RC(RC_MM_JINJO_PINK, RCTYPE_JINJO, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_61_JINJO_PINK, NULL, 5876, 299, 2369), - RC(RC_MM_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_5E_JINJO_YELLOW, NULL, -4060, 1355, 1092), - RC(RC_MM_MOLEHILL_BEAK_BUSTER, RCTYPE_MOLEHILL, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_12C_MOLEHILL, ABILITY_2_BEAK_BUSTER, 3943, 2155, -3422), - RC(RC_MM_MOLEHILL_TALON_TROT, RCTYPE_MOLEHILL, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_12C_MOLEHILL, ABILITY_10_TALON_TROT, -2550, 2255, -1217), - RC(RC_MM_MOLEHILL_USE_EGGS, RCTYPE_MOLEHILL, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_12C_MOLEHILL, ABILITY_6_EGGS, -5926, 200, 6213), - RC(RC_MM_MUMBO_TOKEN_BEHIND_PINK_JINJO, RCTYPE_MUMBO_TOKEN, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_04_MM_BEHIND_PINK_JINJO, 5855, 0, 2169), - RC(RC_MM_MUMBO_TOKEN_BEHIND_RUINS, RCTYPE_MUMBO_TOKEN, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_02_MM_BEHIND_RUINS, -4869, 2255, -2506), - RC(RC_MM_MUMBO_TOKEN_INSIDE_TICKERS_TOWER, RCTYPE_MUMBO_TOKEN, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_05_MM_INSIDE_TICKERS_TOWER, -343, 345, -518), - RC(RC_MM_MUMBO_TOKEN_STUMP_NEAR_CONGA, RCTYPE_MUMBO_TOKEN, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_01_MM_STUMP_NEAR_CONGA, -4431, 475, 6183), - RC(RC_MM_MUMBO_TOKEN_UNDER_RAMP_TO_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_03_MM_UNDER_RAMP_TO_MUMBOS_SKULL, 5150, 2168, -2447), - RC(RC_MM_NOTE_SOUTH_SLOPE_FIRST_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 4867, 297, 1766), - RC(RC_MM_NOTE_SOUTH_SLOPE_FIRST_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 4782, 298, 1892), - RC(RC_MM_NOTE_SOUTH_SLOPE_FIRST_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 4971, 299, 1887), - RC(RC_MM_NOTE_SOUTH_SLOPE_SECOND_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 6430, 500, 1410), - RC(RC_MM_NOTE_SOUTH_SLOPE_SECOND_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 6310, 500, 1536), - RC(RC_MM_NOTE_SOUTH_SLOPE_SECOND_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 6546, 500, 1536), - RC(RC_MM_NOTE_SOUTH_SLOPE_THIRD_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 3793, 747, 1471), - RC(RC_MM_NOTE_SOUTH_SLOPE_THIRD_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 3974, 747, 1411), - RC(RC_MM_NOTE_SOUTH_SLOPE_THIRD_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 3928, 747, 1522), - RC(RC_MM_NOTE_SOUTH_SLOPE_FOURTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 5259, 1184, 656), - RC(RC_MM_NOTE_SOUTH_SLOPE_FOURTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 5469, 1184, 549), - RC(RC_MM_NOTE_SOUTH_SLOPE_FOURTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 5412, 1184, 681), - RC(RC_MM_NOTE_SOUTH_SLOPE_FIFTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 3202, 1247, 925), - RC(RC_MM_NOTE_SOUTH_SLOPE_FIFTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 3126, 1247, 1014), - RC(RC_MM_NOTE_SOUTH_SLOPE_FIFTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 3282, 1247, 1003), - RC(RC_MM_NOTE_SOUTH_SLOPE_SIXTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 5860, 1547, 62), - RC(RC_MM_NOTE_SOUTH_SLOPE_SIXTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 6098, 1547, 67), - RC(RC_MM_NOTE_SOUTH_SLOPE_SIXTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 5990, 1547, 169), - RC(RC_MM_NOTE_BRIDGE_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 2585, -20, 3800), - RC(RC_MM_NOTE_BRIDGE_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 2298, -65, 3800), - RC(RC_MM_NOTE_BRIDGE_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 2012, -90, 3800), - RC(RC_MM_NOTE_BRIDGE_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 1721, -90, 3800), - RC(RC_MM_NOTE_BRIDGE_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 1441, -90, 3800), - RC(RC_MM_NOTE_BRIDGE_6, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 1149, -62, 3800), - RC(RC_MM_NOTE_BRIDGE_7, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 854, -8, 3800), - RC(RC_MM_NOTE_NORTH_SLOPE_FIRST_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4497, 393, 2503), - RC(RC_MM_NOTE_NORTH_SLOPE_FIRST_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4583, 393, 2600), - RC(RC_MM_NOTE_NORTH_SLOPE_FIRST_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4417, 393, 2600), - RC(RC_MM_NOTE_NORTH_SLOPE_SECOND_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3730, 782, 1838), - RC(RC_MM_NOTE_NORTH_SLOPE_SECOND_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3776, 782, 1964), - RC(RC_MM_NOTE_NORTH_SLOPE_SECOND_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3624, 782, 1908), - RC(RC_MM_NOTE_NORTH_SLOPE_THIRD_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -5185, 837, 1737), - RC(RC_MM_NOTE_NORTH_SLOPE_THIRD_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -5277, 836, 1850), - RC(RC_MM_NOTE_NORTH_SLOPE_THIRD_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -5099, 836, 1850), - RC(RC_MM_NOTE_NORTH_SLOPE_FOURTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -2962, 1397, 813), - RC(RC_MM_NOTE_NORTH_SLOPE_FOURTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3053, 1397, 905), - RC(RC_MM_NOTE_NORTH_SLOPE_FOURTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -2868, 1397, 890), - RC(RC_MM_NOTE_NORTH_SLOPE_FIFTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -5154, 1489, 462), - RC(RC_MM_NOTE_NORTH_SLOPE_FIFTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -5238, 1489, 560), - RC(RC_MM_NOTE_NORTH_SLOPE_FIFTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -5068, 1489, 560), - RC(RC_MM_NOTE_NORTH_SLOPE_SIXTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4260, 1839, 208), - RC(RC_MM_NOTE_NORTH_SLOPE_SIXTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4342, 1839, 300), - RC(RC_MM_NOTE_NORTH_SLOPE_SIXTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4179, 1839, 300), - RC(RC_MM_NOTE_NORTH_SLOPE_SEVENTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3394, 1910, 171), - RC(RC_MM_NOTE_NORTH_SLOPE_SEVENTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3469, 1910, 263), - RC(RC_MM_NOTE_NORTH_SLOPE_SEVENTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3293, 1910, 247), - RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1373, 169, 1957), - RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1431, 346, 1784), - RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1497, 517, 1621), - RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1528, 638, 1424), - RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1523, 742, 1179), - RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_6, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1523, 857, 932), - RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_7, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1518, 964, 706), - RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_8, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1413, 1117, 500), - RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_9, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1284, 1295, 363), - RC(RC_MM_NOTE_NORTH_SLOPE_HIGHER_TRAIL_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1094, 1727, -1922), - RC(RC_MM_NOTE_NORTH_SLOPE_HIGHER_TRAIL_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1309, 1856, -1941), - RC(RC_MM_NOTE_NORTH_SLOPE_HIGHER_TRAIL_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1541, 1987, -1960), - RC(RC_MM_NOTE_NORTH_SLOPE_HIGHER_TRAIL_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -1758, 2111, -1974), - RC(RC_MM_NOTE_RUINS_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3047, 2755, -2669), - RC(RC_MM_NOTE_RUINS_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3314, 2755, -2802), - RC(RC_MM_NOTE_RUINS_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3603, 2755, -2923), - RC(RC_MM_NOTE_RUINS_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3885, 2755, -2901), - RC(RC_MM_NOTE_RUINS_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4161, 2755, -2858), - RC(RC_MM_NOTE_RUINS_6, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4359, 2755, -2682), - RC(RC_MM_NOTE_RUINS_7, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4542, 2755, -2495), - RC(RC_MM_NOTE_RUINS_8, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4599, 2754, -2261), - RC(RC_MM_NOTE_RUINS_9, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4649, 2755, -2009), - RC(RC_MM_NOTE_RUINS_10, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4539, 2755, -1746), - RC(RC_MM_NOTE_RUINS_11, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4416, 2755, -1509), - RC(RC_MM_NOTE_RUINS_12, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -4167, 2755, -1383), - RC(RC_MM_NOTE_RUINS_13, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3892, 2755, -1284), - RC(RC_MM_NOTE_RUINS_14, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3581, 2755, -1359), - RC(RC_MM_NOTE_UNDERWATER_RIGHT_CAVE_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 2128, -824, 2181), - RC(RC_MM_NOTE_UNDERWATER_RIGHT_CAVE_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 2034, -824, 2158), - RC(RC_MM_NOTE_UNDERWATER_RIGHT_CAVE_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 1937, -824, 2136), - RC(RC_MM_NOTE_UNDERWATER_LEFT_CAVE_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 1027, -824, 2183), - RC(RC_MM_NOTE_UNDERWATER_LEFT_CAVE_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 940, -824, 2223), - RC(RC_MM_NOTE_UNDERWATER_LEFT_CAVE_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 850, -824, 2267), - RC(RC_MM_NOTE_HUT_ROOF_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 3378, 2439, -2353), - RC(RC_MM_NOTE_HUT_ROOF_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 4137, 2439, -2649), - RC(RC_MM_NOTE_HUT_ROOF_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 5319, 2439, -1717), - RC(RC_MM_NOTE_HUT_ROOF_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 5025, 2439, -814), - RC(RC_MM_NOTE_HUT_ROOF_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 3847, 2439, -715), - RC(RC_MM_NOTE_HUT_ROOF_6, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 3255, 2438, -1091), - RC(RC_MM_NOTE_HUT_BUNDLE_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 0), - RC(RC_MM_NOTE_HUT_BUNDLE_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 0), - RC(RC_MM_NOTE_HUT_BUNDLE_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 0), - RC(RC_MM_NOTE_HUT_BUNDLE_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 0), - RC(RC_MM_NOTE_HUT_BUNDLE_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 0), - RC(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -288, 0, -154), - RC(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -127, 0, -308), - RC(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 119, 0, -298), - RC(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 286, 0, -155), - RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -74, 817, 19), - RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -3, 817, 52), - RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 67, 817, 0), - RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, 60, 817, -87), - RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -10, 817, -125), - RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_6, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, ACTOR_51_MUSIC_NOTE, NULL, -80, 817, -71), - RC(RC_MMM_EMPTY_HONEYCOMB_BENEATH_THE_FLOORBOARDS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_12_MMM_FLOORBOARD, -51, -135, 52), - RC(RC_MMM_EMPTY_HONEYCOMB_CHURCH_RAFTERS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_11_MMM_CHURCH_RAFTERS, 0, 5163, 2400), - RC(RC_MMM_JIGGY_BARREL_INTERIOR, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_46_JIGGY, JIGGY_61_MMM_RAIN_BARREL, 2, 288, -4), - RC(RC_MMM_JIGGY_CELLAR, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_46_JIGGY, JIGGY_5E_MMM_CELLAR, -516, 30, 477), - RC(RC_MMM_JIGGY_CEMETARY_POTS, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_46_JIGGY, JIGGY_63_MMM_FLOWER_POTS, 0, 0, 0), - RC(RC_MMM_JIGGY_CLOCKTOWER_TOP, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_46_JIGGY, JIGGY_5F_MMM_CHURCH_ROOF, -2800, 3175, -1601), - RC(RC_MMM_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_46_JIGGY, JIGGY_5B_MMM_JINJO, 0, 0, 0), - RC(RC_MMM_JIGGY_MANSION_TABLE, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_46_JIGGY, JIGGY_5D_MMM_NAPPER, 1, 511, 24), - RC(RC_MMM_JIGGY_MOTZAND, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_46_JIGGY, JIGGY_60_MMM_MOTZHAND, 0, 3050, -3200), - RC(RC_MMM_JIGGY_INSIDE_LOGGO, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_46_JIGGY, JIGGY_64_MMM_LOGGO, -518, 295, -468), - RC(RC_MMM_JIGGY_INSIDE_THE_WELLS_BUCKET, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_46_JIGGY, JIGGY_5C_MMM_WELL, 1, 179, 0), - RC(RC_MMM_JIGGY_TUMBLARS_PUZZLE, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_46_JIGGY, JIGGY_62_MMM_TUMBLAR, 48, 0, -58), - RC(RC_MMM_JINJO_BLUE, RCTYPE_JINJO, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_60_JINJO_BLUE, NULL, 5900, 300, 1050), - RC(RC_MMM_JINJO_GREEN, RCTYPE_JINJO, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_62_JINJO_GREEN, NULL, 1437, 2100, 248), - RC(RC_MMM_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_5F_JINJO_ORANGE, NULL, -4265, 0, 2668), - RC(RC_MMM_JINJO_PINK, RCTYPE_JINJO, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_61_JINJO_PINK, NULL, 511, 38, 203), - RC(RC_MMM_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_5E_JINJO_YELLOW, NULL, -250, 540, 300), - RC(RC_MMM_MUMBO_TOKEN_ALCOVE_CLOCK_TOWER, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_35_MMM_ALCOVE_CLOCK_TOWER, -2800, 1475, -1363), - RC(RC_MMM_MUMBO_TOKEN_BEHIND_CHURCH, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_38_MMM_BEHIND_CHURCH, -4700, 175, -5149), - RC(RC_MMM_MUMBO_TOKEN_HIDDEN_NEAR_FOUNTAIN, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_33_MMM_HIDDEN_NEAR_FOUNTAIN, 3950, -175, 325), - RC(RC_MMM_MUMBO_TOKEN_IN_CHIMNEY_INSIDE_DINING_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_3E_MMM_IN_CHIMNEY_INSIDE_DINNING_ROOM, -160, 190, -2599), - RC(RC_MMM_MUMBO_TOKEN_IN_THE_MAZE, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_37_MMM_IN_THE_MAZE, -4250, 0, 352), - RC(RC_MMM_MUMBO_TOKEN_INSIDE_BEDROOM, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_40_MMM_INSIDE_BEDROOM, 696, 0, -397), - RC(RC_MMM_MUMBO_TOKEN_INSIDE_LOGGO, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, RP_MUMBO_TOKEN_INSIDE_LOGGO, 424, 170, 304), - RC(RC_MMM_MUMBO_TOKEN_INSIDE_BARREL_IN_CELLAR, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_3D_MMM_INSIDE_LOGGO_AND_INSIDE_BARREL_IN_CELLAR, -507, 30, 199), - RC(RC_MMM_MUMBO_TOKEN_INSIDE_WELL, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_3F_MMM_INSIDE_WELL, -732, 0, -109), - RC(RC_MMM_MUMBO_TOKEN_INSIDE_WHIPCRACK_IN_FOUNTAIN, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_39_MMM_INSIDE_WHIPCRACK_IN_FOUNTAIN, 5900, -275, 798), - RC(RC_MMM_MUMBO_TOKEN_NEAR_FRONT_TUMBLARS_SHED, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_34_MMM_NEAR_FRONT_TUMBLARS_SHED, 173, 350, -3610), - RC(RC_MMM_MUMBO_TOKEN_NEXT_TO_MAZE_HEDGE_RAMP, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_36_MMM_NEXT_TO_MAZE_HEDGE_RAMP, -1643, 25, -1026), - RC(RC_MMM_MUMBO_TOKEN_IN_LOGGOS_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_41_MMM_SINK_IN_LOGGOS_ROOM, 52, 104, 512), - RC(RC_MMM_MUMBO_TOKEN_TOP_OF_RAFTER_INSIDE_CHURCH, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_3A_MMM_TOP_OF_RAFTER_INSIDE_CHURCH, 0, 4806, 341), - RC(RC_MMM_MUMBO_TOKEN_TOP_OF_STOOL_INSIDE_CHURCH, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_3B_MMM_TOP_OF_STOOL_INSIDE_CHURCH, 0, 583, -1300), - RC(RC_MMM_MUMBO_TOKEN_TOP_OF_TUMBLARS_SHED, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_3C_MMM_TOP_OF_TUMBLARS_SHED, 1796, 857, -4243), - RC(RC_MMM_NOTE_AROUND_THE_WELL_WEST_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 7150, -275, -3474), - RC(RC_MMM_NOTE_AROUND_THE_WELL_WEST_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 7150, -275, -3325), - RC(RC_MMM_NOTE_AROUND_THE_WELL_EAST_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 4200, -275, -3325), - RC(RC_MMM_NOTE_AROUND_THE_WELL_EAST_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 4201, -275, -3475), - RC(RC_MMM_NOTE_BARREL_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -266, 0, 152), - RC(RC_MMM_NOTE_BARREL_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -267, 0, -153), - RC(RC_MMM_NOTE_BARREL_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, -310), - RC(RC_MMM_NOTE_BARREL_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 270, 0, -154), - RC(RC_MMM_NOTE_BARREL_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 268, 0, 152), - RC(RC_MMM_NOTE_BASEMENT_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -375, 300, 1274), - RC(RC_MMM_NOTE_BASEMENT_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -126, 300, 1275), - RC(RC_MMM_NOTE_BASEMENT_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 125, 300, 1275), - RC(RC_MMM_NOTE_BASEMENT_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 375, 300, 1275), - RC(RC_MMM_NOTE_BEDROOM_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 760, 207, -100), - RC(RC_MMM_NOTE_BEDROOM_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 700, 207, -200), - RC(RC_MMM_NOTE_BEDROOM_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 640, 200, -100), - RC(RC_MMM_NOTE_BEDROOM_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 700, 207, 0), - RC(RC_MMM_NOTE_CHAIR_EAST_SIDE_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 736, 286, -500), - RC(RC_MMM_NOTE_CHAIR_EAST_SIDE_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 737, 286, 0), - RC(RC_MMM_NOTE_CHAIR_EAST_SIDE_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 736, 286, 499), - RC(RC_MMM_NOTE_CHAIR_NORTH_SIDE_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 11, 286, -1102), - RC(RC_MMM_NOTE_CHAIR_NORTH_SIDE_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -13, 286, -1751), - RC(RC_MMM_NOTE_CHAIR_WEST_SIDE_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -738, 286, 499), - RC(RC_MMM_NOTE_CHAIR_WEST_SIDE_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -737, 286, -1), - RC(RC_MMM_NOTE_CHAIR_WEST_SIDE_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -738, 286, -499), - RC(RC_MMM_NOTE_CHURCH_ABOVE_THE_ENTRANCE, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -2186, 662, -2498), - RC(RC_MMM_NOTE_CHURCH_PEW_NORTHEAST, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 1625, 690, 816), - RC(RC_MMM_NOTE_CHURCH_PEW_NORTHWEST, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -1625, 690, 820), - RC(RC_MMM_NOTE_CHURCH_PEW_SOUTHEAST, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 1623, 690, 2371), - RC(RC_MMM_NOTE_CHURCH_PEW_SOUTHWEST, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -1623, 690, 2373), - RC(RC_MMM_NOTE_CHURCH_ROOFTOP_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -2800, 1063, -2135), - RC(RC_MMM_NOTE_CHURCH_ROOFTOP_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -2800, 1063, -2500), - RC(RC_MMM_NOTE_CHURCH_ROOFTOP_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -2800, 1063, -2900), - RC(RC_MMM_NOTE_CHURCH_ROOFTOP_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -2800, 1063, -3301), - RC(RC_MMM_NOTE_CHURCH_ROOFTOP_5, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -2800, 1063, -3699), - RC(RC_MMM_NOTE_CHURCH_ROOFTOP_6, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -3199, 1060, -2900), - RC(RC_MMM_NOTE_CHURCH_ROOFTOP_7, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -3600, 1057, -2900), - RC(RC_MMM_NOTE_CHURCH_ROOFTOP_8, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -4000, 1054, -2900), - RC(RC_MMM_NOTE_CHURCH_ROOFTOP_9, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -4400, 1051, -2900), - RC(RC_MMM_NOTE_CLOCKTOWER_ROOF_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -3148, 2075, -1948), - RC(RC_MMM_NOTE_CLOCKTOWER_ROOF_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -3146, 2075, -1253), - RC(RC_MMM_NOTE_CLOCKTOWER_ROOF_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -2452, 2075, -1948), - RC(RC_MMM_NOTE_CLOCKTOWER_ROOF_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -2453, 2075, -1253), - RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -450, 0, -75), - RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -438, 195, -336), - RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -450, 0, 0), - RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -450, 0, 75), - RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_5, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -440, 150, 337), - RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_6, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -75, 0, 350), - RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_7, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 429, 222, -233), - RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_8, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 0, 0, 350), - RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_9, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 75, 0, 350), - RC(RC_MMM_NOTE_GRASS_BEHIND_THE_MANSION_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -200, 225, -3525), - RC(RC_MMM_NOTE_GRASS_BEHIND_THE_MANSION_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -201, 225, -3700), - RC(RC_MMM_NOTE_GRASS_BEHIND_THE_MANSION_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -200, 225, -3876), - RC(RC_MMM_NOTE_MAIN_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 556, 75, 2111), - RC(RC_MMM_NOTE_MAIN_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 734, 75, 2236), - RC(RC_MMM_NOTE_MAIN_ENTRANCE_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 1266, 75, 2236), - RC(RC_MMM_NOTE_MAIN_ENTRANCE_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 1444, 75, 2110), - RC(RC_MMM_NOTE_MANSION_EXTERIOR_LOWER_NORTHEAST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 2436, 700, -1244), - RC(RC_MMM_NOTE_MANSION_EXTERIOR_LOWER_NORTHWEST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -428, 700, -1249), - RC(RC_MMM_NOTE_MANSION_EXTERIOR_LOWER_SOUTHEAST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 2436, 702, 1743), - RC(RC_MMM_NOTE_MANSION_EXTERIOR_LOWER_SOUTHWEST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -428, 700, 1743), - RC(RC_MMM_NOTE_MANSION_EXTERIOR_UPPER_NORTHEAST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 1936, 1600, -797), - RC(RC_MMM_NOTE_MANSION_EXTERIOR_UPPER_NORTHWEST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 63, 1600, -796), - RC(RC_MMM_NOTE_MANSION_EXTERIOR_UPPER_SOUTHEAST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 1936, 1600, 1294), - RC(RC_MMM_NOTE_MANSION_EXTERIOR_UPPER_SOUTHWEST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 63, 1600, 1303), - RC(RC_MMM_NOTE_MAZE_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -2050, 7, 1755), - RC(RC_MMM_NOTE_MAZE_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -2250, 0, 2655), - RC(RC_MMM_NOTE_MAZE_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -3455, 0, 1780), - RC(RC_MMM_NOTE_MAZE_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -3455, 0, 1445), - RC(RC_MMM_NOTE_MAZE_5, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -3300, 0, 25), - RC(RC_MMM_NOTE_MAZE_6, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -3300, 0, -131), - RC(RC_MMM_NOTE_MUMBOS_SKULL_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -293, 0, -157), - RC(RC_MMM_NOTE_MUMBOS_SKULL_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 294, 0, -157), - RC(RC_MMM_NOTE_ORGAN_PEDALS_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 150, 131, -1698), - RC(RC_MMM_NOTE_ORGAN_PEDALS_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -150, 230, -1693), - RC(RC_MMM_NOTE_ORGAN_PIPES_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -1062, 2450, -3199), - RC(RC_MMM_NOTE_ORGAN_PIPES_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -529, 2750, -3200), - RC(RC_MMM_NOTE_ORGAN_PIPES_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 519, 2750, -3200), - RC(RC_MMM_NOTE_ORGAN_PIPES_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 1054, 2450, -3199), - RC(RC_MMM_NOTE_SHED_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -700, 0, 688), - RC(RC_MMM_NOTE_SHED_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -701, 0, -725), - RC(RC_MMM_NOTE_SHED_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 700, 0, -725), - RC(RC_MMM_NOTE_SHED_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 700, 0, 688), - RC(RC_MMM_NOTE_SHED_ROOF_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 1575, 988, -4460), - RC(RC_MMM_NOTE_SHED_ROOF_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 1824, 987, -4460), - RC(RC_MMM_NOTE_SHED_ROOF_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 2075, 988, -4460), - RC(RC_MMM_NOTE_SHED_ROOF_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 2325, 988, -4460), - RC(RC_MMM_NOTE_STAGNANT_FOUNTAIN_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 5378, -75, 521), - RC(RC_MMM_NOTE_STAGNANT_FOUNTAIN_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 6428, -75, 529), - RC(RC_MMM_NOTE_STAGNANT_FOUNTAIN_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 6423, -75, 1579), - RC(RC_MMM_NOTE_STAGNANT_FOUNTAIN_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 5372, -75, 1571), - RC(RC_MMM_NOTE_WELL_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -475, 0, -617), - RC(RC_MMM_NOTE_WELL_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -613, 0, 411), - RC(RC_MMM_NOTE_WELL_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -714, 0, 171), - RC(RC_MMM_NOTE_WELL_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, -217, 0, 131), - RC(RC_MMM_NOTE_WELL_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 694, 0, -186), - RC(RC_MMM_NOTE_WELL_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 79, 0, -201), - RC(RC_MMM_NOTE_WELL_INTERIOR_7, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_51_MUSIC_NOTE, NULL, 681, 0, 182), - RC(RC_MMM_SNS_CYAN_EGG, RCTYPE_STOP_N_SWOP, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_25E_SNS_EGG, SNS_ITEM_EGG_CYAN, 1995, 100, -476), - RC(RC_MMM_SNS_GREEN_EGG, RCTYPE_STOP_N_SWOP, LEVEL_A_MAD_MONSTER_MANSION, ACTOR_25E_SNS_EGG, SNS_ITEM_EGG_GREEN, 517, 350, -241), - RC(RC_RBB_EMPTY_HONEYCOMB_BOAT_HOUSE, RCTYPE_EMPTY_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_F_RBB_BOAT_HOUSE, 0, 1000, 0), - RC(RC_RBB_EMPTY_HONEYCOMB_ENGINE_ROOM, RCTYPE_EMPTY_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_10_RBB_ENGINE_ROOM, 0, 360, 3541), - RC(RC_RBB_JIGGY_BOSS_BOOM_BOX, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_46_JIGGY, JIGGY_56_RBB_BOSS_BOOM_BOX, 0, 0, 0), - RC(RC_RBB_JIGGY_CAPTAINS_CABIN, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_46_JIGGY, JIGGY_58_RBB_CAPTAINS_CABIN, -997, 273, 355), - RC(RC_RBB_JIGGY_CRANE_CAGE, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_46_JIGGY, JIGGY_59_RBB_CRANE_CAGE, -4900, 0, 0), - RC(RC_RBB_JIGGY_ENGINE_ROOM, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_46_JIGGY, JIGGY_5A_RBB_ENGINE_ROOM, 1, 809, -3718), - RC(RC_RBB_JIGGY_FUNNEL, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_46_JIGGY, JIGGY_55_RBB_FUNNEL, -2006, 2700, -2), - RC(RC_RBB_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_46_JIGGY, JIGGY_51_RBB_JINJO, 0, 0, 0 ), - RC(RC_RBB_JIGGY_PROPELLOR, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_46_JIGGY, JIGGY_57_RBB_PROPELLOR, 7750, -2007, 0), - RC(RC_RBB_JIGGY_SNORKEL, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_46_JIGGY, JIGGY_53_RBB_SNORKEL, 0, 0, 0), - RC(RC_RBB_JIGGY_WAREHOUSE, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_46_JIGGY, JIGGY_52_RBB_WAREHOUSE, 850, 850, -1150), - RC(RC_RBB_JIGGY_WHISTLE, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_46_JIGGY, JIGGY_54_RBB_WHISTLE, 0, 0, 0), - RC(RC_RBB_JINJO_BLUE, RCTYPE_JINJO, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_60_JINJO_BLUE, NULL, -8738, -1253, 4032), - RC(RC_RBB_JINJO_GREEN, RCTYPE_JINJO, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_62_JINJO_GREEN, NULL, 8903, -800, -2894), - RC(RC_RBB_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_5F_JINJO_ORANGE, NULL, -193, 0, -979), - RC(RC_RBB_JINJO_PINK, RCTYPE_JINJO, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_61_JINJO_PINK, NULL, 7850, -2613, 4026), - RC(RC_RBB_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_5E_JINJO_YELLOW, NULL, -8615, -1000, -3555), - RC(RC_RBB_MUMBO_TOKEN_TOXIC_WASTE_POND, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_46_RBB_TOXIC_WASTE_POND, -7401, -1000, -3425), - RC(RC_RBB_MUMBO_TOKEN_ON_LIFE_BOAT, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_44_RBB_ON_LIFE_BOAT, 7053, -985, -1672), - RC(RC_RBB_MUMBO_TOKEN_SHIPS_PROW, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_43_RBB_SHIPS_PROW, -6200, 150, 0), - RC(RC_RBB_MUMBO_TOKEN_UNDER_CHOMPA_IN_WITCH_SWITCH_TOWER, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_47_RBB_UNDER_CHOMPA_IN_WITCH_SWITCH_TOWER, 6200, 400, 0), - RC(RC_RBB_MUMBO_TOKEN_TOP_OF_SHIPS_CHIMNEY, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_42_RBB_TOP_OF_SHIPS_CHIMNEY, 1000, 2750, 0), - RC(RC_RBB_MUMBO_TOKEN_FRONT_OF_CHOMPA_LEFT_OF_SHIP, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_45_RBB_FRONT_OF_CHOMPA_LEFT_OF_SHIP, -3299, -457, 3800), - RC(RC_RBB_MUMBO_TOKEN_UNDER_CHOMPA_INSIDE_FIRST_BLUE_CONTAINER, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_48_RBB_UNDER_CHOMPA_INSIDE_FIRST_BLUE_CONTAINER, -650, 562, -35), - RC(RC_RBB_MUMBO_TOKEN_TOP_OF_BOX_INSIDE_SECOND_BLUE_CONTAINER, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_49_RBB_TOP_OF_BOX_INSIDE_SECOND_BLUE_CONTAINER, -278, 710, -557), - RC(RC_RBB_MUMBO_TOKEN_INSIDE_KITCHEN, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_4C_RBB_INSIDE_KITCHEN, -771, 238, -293), - RC(RC_RBB_MUMBO_TOKEN_TOP_OF_BUNK_IN_CABIN, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_4A_RBB_TOP_OF_BUNK_IN_CABIN, 583, 323, -70), - RC(RC_RBB_MUMBO_TOKEN_TOP_OF_BOX_INSIDE_TNT_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_50_RBB_TOP_OF_BOX_INSIDE_TNT_ROOM, -435, 300, -435), - RC(RC_RBB_MUMBO_TOKEN_ENGINE_ROOM_LEFT_PIPE, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_4D_RBB_ENGINE_ROOM_LEFT_PIPE, -2450, 1100, -400), - RC(RC_RBB_MUMBO_TOKEN_ENGINE_ROOM_RIGHT_PIPE, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_4E_RBB_ENGINE_ROOM_RIGHT_PIPE, 2450, 1100, -400), - RC(RC_RBB_MUMBO_TOKEN_ENGINE_ROOM_SPINNING_PLATFORM, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_4F_RBB_ENGINE_ROOM_SPINNING_PLATFORM, -319, 12, 1899), - RC(RC_RBB_MUMBO_TOKEN_INSIDE_NAVIGATION_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_4B_RBB_INSIDE_NAVIGATION_ROOM, -656, 0, -222), - RC(RC_RBB_NOTE_ANCHOR_ROOM_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 3500, 449, -501), - RC(RC_RBB_NOTE_ANCHOR_ROOM_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 3499, 449, 499), - RC(RC_RBB_NOTE_ANCHOR_ROOM_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 4499, 449, -500), - RC(RC_RBB_NOTE_ANCHOR_ROOM_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 4500, 449, 499), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_RAMP_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -50, 43, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_RAMP_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -384, 164, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_RAMP_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -717, 285, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_RAMP_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -1050, 406, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_LOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -950, 1200, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_LOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -650, 1200, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_LOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -350, 1200, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_LOWER_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -50, 1200, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_UPPER_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -50, 2207, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_UPPER_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -350, 2207, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_UPPER_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -650, 2207, 0), - RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_UPPER_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -950, 2207, 0), - RC(RC_RBB_NOTE_BUNK_CABIN_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -271, 0, -496), - RC(RC_RBB_NOTE_BUNK_CABIN_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -245, 0, 563), - RC(RC_RBB_NOTE_BUNK_CABIN_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 270, 0, -496), - RC(RC_RBB_NOTE_BUNK_CABIN_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 245, 0, 561), - RC(RC_RBB_NOTE_CAPTAINS_CABIN_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -1020, 0, -315), - RC(RC_RBB_NOTE_CAPTAINS_CABIN_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -1020, 0, -103), - RC(RC_RBB_NOTE_CAPTAINS_CABIN_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -1020, 0, 108), - RC(RC_RBB_NOTE_ENGINE_ROOM_BEHIND_GLASS_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -3039, 1160, -2485), - RC(RC_RBB_NOTE_ENGINE_ROOM_BEHIND_GLASS_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -3370, 1160, -2484), - RC(RC_RBB_NOTE_ENGINE_ROOM_BEHIND_GLASS_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -3038, 1160, -2817), - RC(RC_RBB_NOTE_ENGINE_ROOM_BEHIND_GLASS_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -3374, 1160, -2817), - RC(RC_RBB_NOTE_ENGINE_ROOM_LEFT_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -1499, 809, -199), - RC(RC_RBB_NOTE_ENGINE_ROOM_LEFT_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -1700, 809, -200), - RC(RC_RBB_NOTE_ENGINE_ROOM_LEFT_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -1700, 809, -600), - RC(RC_RBB_NOTE_ENGINE_ROOM_LEFT_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -1499, 809, -601), - RC(RC_RBB_NOTE_ENGINE_ROOM_MIDDLE_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -200, 809, -2200), - RC(RC_RBB_NOTE_ENGINE_ROOM_MIDDLE_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -200, 809, -2600), - RC(RC_RBB_NOTE_ENGINE_ROOM_MIDDLE_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 200, 809, -2600), - RC(RC_RBB_NOTE_ENGINE_ROOM_MIDDLE_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 200, 809, -2200), - RC(RC_RBB_NOTE_ENGINE_ROOM_RIGHT_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 1500, 809, -199), - RC(RC_RBB_NOTE_ENGINE_ROOM_RIGHT_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 1700, 809, -199), - RC(RC_RBB_NOTE_ENGINE_ROOM_RIGHT_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 1700, 809, -600), - RC(RC_RBB_NOTE_ENGINE_ROOM_RIGHT_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 1501, 809, -600), - RC(RC_RBB_NOTE_FENCE_NEAR_YELLOW_JINJO_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -6755, -800, 2797), - RC(RC_RBB_NOTE_FENCE_NEAR_YELLOW_JINJO_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -6755, -800, 2150), - RC(RC_RBB_NOTE_FENCE_NEAR_YELLOW_JINJO_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -6755, -800, 1554), - RC(RC_RBB_NOTE_FENCE_NEAR_YELLOW_JINJO_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -7128, -800, 1554), - RC(RC_RBB_NOTE_FENCE_NEAR_YELLOW_JINJO_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -7501, -800, 1554), - RC(RC_RBB_NOTE_GRATE_ABOVE_PINK_JINJO_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 6950, -1175, 3050), - RC(RC_RBB_NOTE_GRATE_ABOVE_PINK_JINJO_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 6950, -1175, 4050), - RC(RC_RBB_NOTE_GRATE_ABOVE_PINK_JINJO_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 8750, -1175, 4050), - RC(RC_RBB_NOTE_GRATE_ABOVE_PINK_JINJO_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 8750, -1175, 3050), - RC(RC_RBB_NOTE_JIGGY_CRANE_BASE_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -5199, -200, -2900), - RC(RC_RBB_NOTE_JIGGY_CRANE_BASE_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -4900, -200, -2900), - RC(RC_RBB_NOTE_JIGGY_CRANE_BASE_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -4600, -200, -2900), - RC(RC_RBB_NOTE_KITCHEN_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -313, 213, -1046), - RC(RC_RBB_NOTE_KITCHEN_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -400, 163, 738), - RC(RC_RBB_NOTE_KITCHEN_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -398, 163, 149), - RC(RC_RBB_NOTE_KITCHEN_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 593, 213, -898), - RC(RC_RBB_NOTE_KITCHEN_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 389, 163, 740), - RC(RC_RBB_NOTE_NAVIGATION_ROOM_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -270, 0, -719), - RC(RC_RBB_NOTE_NAVIGATION_ROOM_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -87, 0, -720), - RC(RC_RBB_NOTE_NAVIGATION_ROOM_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 96, 0, -720), - RC(RC_RBB_NOTE_NAVIGATION_ROOM_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 279, 0, -719), - RC(RC_RBB_NOTE_RAMP_TO_SHIP_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 800, -760, 2751), - RC(RC_RBB_NOTE_RAMP_TO_SHIP_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 800, -667, 2424), - RC(RC_RBB_NOTE_RAMP_TO_SHIP_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 800, -575, 2102), - RC(RC_RBB_NOTE_RAMP_TO_SHIP_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 800, -482, 1775), - RC(RC_RBB_NOTE_RAMP_TO_SHIP_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 800, -389, 1450), - RC(RC_RBB_NOTE_SHIP_BOW_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 7800, -800, -1325), - RC(RC_RBB_NOTE_SHIP_BOW_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 8050, -800, -1001), - RC(RC_RBB_NOTE_SHIP_BOW_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 8149, -799, 300), - RC(RC_RBB_NOTE_SHIP_BOW_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 8149, -799, -300), - RC(RC_RBB_NOTE_SHIP_BOW_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 8050, -800, 1001), - RC(RC_RBB_NOTE_SHIP_BOW_6, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 7800, -800, 1325), - RC(RC_RBB_NOTE_SHIP_STERN_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -3399, 800, -600), - RC(RC_RBB_NOTE_SHIP_STERN_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -3399, 800, 600), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -650, 560, -645), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -630, 175, -419), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -170, 140, -804), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -650, 560, 560), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -236, 105, 316), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_6, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 0, 595, -860), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_7, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 492, 525, -677), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_8, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 593, 105, -105), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 531, 140, 664), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 659, 140, 665), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 530, 140, 520), - RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 660, 140, 519), - RC(RC_RBB_NOTE_TNT_CRANE_BASE_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 4500, -200, -2900), - RC(RC_RBB_NOTE_TNT_CRANE_BASE_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 4200, -200, -2900), - RC(RC_RBB_NOTE_TNT_CRANE_BASE_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 3900, -200, -2900), - RC(RC_RBB_NOTE_TNT_ROOM_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -400, 750, 924), - RC(RC_RBB_NOTE_TNT_ROOM_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -400, 750, 800), - RC(RC_RBB_NOTE_TNT_ROOM_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -400, 750, 675), - RC(RC_RBB_NOTE_TNT_ROOM_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -400, 750, 550), - RC(RC_RBB_NOTE_TNT_ROOM_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -400, 750, 1050), - RC(RC_RBB_NOTE_TOXIC_WASTE_POND_BARREL_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -8144, -969, -2026), - RC(RC_RBB_NOTE_TOXIC_WASTE_POND_BARREL_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -7679, -986, -2363), - RC(RC_RBB_NOTE_TOXIC_WASTE_POND_BARREL_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, -7843, -986, -3205), - RC(RC_RBB_NOTE_WAREHOUSE_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 785, 650, 1356), - RC(RC_RBB_NOTE_WAREHOUSE_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 785, 650, 1045), - RC(RC_RBB_NOTE_WAREHOUSE_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 1005, 650, 1355), - RC(RC_RBB_NOTE_WAREHOUSE_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_51_MUSIC_NOTE, NULL, 1005, 650, 1045), - RC(RC_RBB_SNS_RED_EGG, RCTYPE_STOP_N_SWOP, LEVEL_9_RUSTY_BUCKET_BAY, ACTOR_25E_SNS_EGG, SNS_ITEM_EGG_RED, -7, 113, 164), - RC(RC_SM_EMPTY_HONEYCOMB_COLLIWOBBLE, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_17_SM_COLLIWOBBLE, 0, 0, 0), - RC(RC_SM_EMPTY_HONEYCOMB_QUARRIES, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_18_SM_QUARRIES, 0, 0, 0), - RC(RC_SM_EMPTY_HONEYCOMB_STUMP, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_13_SM_STUMP, -1400, 99, 4824), - RC(RC_SM_EMPTY_HONEYCOMB_TREE, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_16_SM_TREE, -2752, 1299, 37), - RC(RC_SM_EMPTY_HONEYCOMB_UNDERWATER, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_15_SM_UNDERWATER, -264, -442, -651), - RC(RC_SM_EMPTY_HONEYCOMB_WATERFALL, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_14_SM_WATERFALL, -6725, 1300, -1803), - RC(RC_SM_MOLEHILL_ATTACK, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_12C_MOLEHILL, ABILITY_4_CLAW_SWIPE, 4675, 400, 511), - RC(RC_SM_MOLEHILL_BEAK_BARGE, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_12C_MOLEHILL, ABILITY_0_BARGE, 3271, -110, -2673), - RC(RC_SM_MOLEHILL_CAMERA_CONTROL, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_12C_MOLEHILL, ABILITY_3_CAMERA_CONTROL, 2250, -34, 2774 ), - RC(RC_SM_MOLEHILL_CLIMB, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_12C_MOLEHILL, ABILITY_5_CLIMB, -1999, 342, -2545), - RC(RC_SM_MOLEHILL_DIVE, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_12C_MOLEHILL, ABILITY_F_DIVE, -2336, 302, 973), - RC(RC_SM_MOLEHILL_JUMP, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, ACTOR_12C_MOLEHILL, ABILITY_8_FLAP_FLIP, -164, -190, 3313), - RC(RC_TTC_EMPTY_HONEYCOMB_FLOATING_BOX, RCTYPE_EMPTY_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_4_TTC_FLOATING_BOX, 8473, 844, -2684), - RC(RC_TTC_EMPTY_HONEYCOMB_UNDERWATER, RCTYPE_EMPTY_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_47_EMPTY_HONEYCOMB, HONEYCOMB_3_TTC_UNDERWATER, -4303, 46, 115), - RC(RC_TTC_JIGGY_ALCOVE1, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_46_JIGGY, JIGGY_0D_TTC_ALCOVE_1, 2832, 2152, -1797), - RC(RC_TTC_JIGGY_ALCOVE2, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_46_JIGGY, JIGGY_0E_TTC_ALCOVE_2, -5116, 1417, -3915), - RC(RC_TTC_JIGGY_BLUBBER, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_46_JIGGY, JIGGY_14_TTC_BLUBBER, 0, 0, 0), - RC(RC_TTC_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_46_JIGGY, JIGGY_0B_TTC_JINJO, 0, 0, 0), - RC(RC_TTC_JIGGY_LIGHTHOUSE, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_46_JIGGY, JIGGY_0C_TTC_LIGHTHOUSE, 479, 8500, -2709), - RC(RC_TTC_JIGGY_LOCKUP, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_46_JIGGY, JIGGY_13_TTC_LOCKUP, -1575, 2597, -2500), - RC(RC_TTC_JIGGY_NIPPER, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_46_JIGGY, JIGGY_12_TTC_NIPPER, 385, 227, 31), - RC(RC_TTC_JIGGY_POOL, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_46_JIGGY, JIGGY_0F_TTC_POOL, -2760, 2053, -4733), - RC(RC_TTC_JIGGY_RED_X, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_46_JIGGY, JIGGY_11_TTC_RED_X, 0, 0, 0), - RC(RC_TTC_JIGGY_SANDCASTLE, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_46_JIGGY, JIGGY_10_TTC_SANDCASTLE, 0, 350, -987), - RC(RC_TTC_JINJO_BLUE, RCTYPE_JINJO, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_60_JINJO_BLUE, NULL, -875, 242, 7206), - RC(RC_TTC_JINJO_GREEN, RCTYPE_JINJO, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_62_JINJO_GREEN, NULL, -179, 3062, 889), - RC(RC_TTC_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_5F_JINJO_ORANGE, NULL, -5626, 3112, -2856), - RC(RC_TTC_JINJO_PINK, RCTYPE_JINJO, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_61_JINJO_PINK, NULL, 4848, 1340, -240), - RC(RC_TTC_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_5E_JINJO_YELLOW, NULL, -968, 5358, -776), - RC(RC_TTC_MOLEHILL_FLIGHT, RCTYPE_MOLEHILL, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_12C_MOLEHILL, ABILITY_9_FLIGHT, -288, 2161, 1314), - RC(RC_TTC_MOLEHILL_SHOCK_JUMP, RCTYPE_MOLEHILL, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_12C_MOLEHILL, ABILITY_D_SHOCK_JUMP, 2698, 1517, 3338), - RC(RC_TTC_MUMBO_TOKEN_BEHIND_PILLAR_UNDERWATER, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_0C_TTC_BEHIND_PILLAR_UNDERWATER, 6480, 597, -258), - RC(RC_TTC_MUMBO_TOKEN_BEHIND_LIGHTHOUSE_DOOR, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_0A_TTC_BEHIND_LIGHTHOUSE_DOOR, 565, 6917, -2776), - RC(RC_TTC_MUMBO_TOKEN_BEHIND_NIPPER, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_0F_TTC_BEHIND_NIPPER, -6620, 510, 4621), - RC(RC_TTC_MUMBO_TOKEN_FLOATING_ABOVE_SHOCKJUMP_PAD, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_0E_TTC_FLOATING_ABOVE_SHOCKJUMP_PAD, 2462, 2217, 2957), - RC(RC_TTC_MUMBO_TOKEN_INSIDE_LOCKUP_1, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_07_TTC_INSIDE_LOCKUP_1, -2660, 2447, -6079), - RC(RC_TTC_MUMBO_TOKEN_INSIDE_LOCKUP_2, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_08_TTC_INSIDE_LOCKUP_2, -2646, 2447, -6223), - RC(RC_TTC_MUMBO_TOKEN_INSIDE_SALTY_HIPPO, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_06_TTC_INSIDE_SALTY_HIPPO, 610, -412, 31), - RC(RC_TTC_MUMBO_TOKEN_ON_FLOATING_BOX, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_0B_TTC_ON_FLOATING_BOX, -783, 745, -3872), - RC(RC_TTC_MUMBO_TOKEN_POND_BOTTOM, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_0D_TTC_POND_BOTTOM, -4932, 1122, -1063), - RC(RC_TTC_MUMBO_TOKEN_SALTY_HIPPO_MAST, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_2D_MUMBO_TOKEN, MUMBOTOKEN_09_TTC_SALTY_HIPPO_MAST, -221, 2029, 929), - RC(RC_TTC_NOTE_BEACH_LOCKUP_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 4802, 737, -2351), - RC(RC_TTC_NOTE_BEACH_LOCKUP_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 4730, 737, -2420), - RC(RC_TTC_NOTE_BEACH_LOCKUP_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 4803, 736, -2444), - RC(RC_TTC_NOTE_BEACH_LOCKUP_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 4858, 736, -2273), - RC(RC_TTC_NOTE_BEACH_LOCKUP_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 4783, 737, -2249), - RC(RC_TTC_NOTE_INSIDE_NIPPER_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -127, -22, -1020), - RC(RC_TTC_NOTE_INSIDE_NIPPER_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 643, -22, -723), - RC(RC_TTC_NOTE_INSIDE_NIPPER_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 911, -22, -18), - RC(RC_TTC_NOTE_INSIDE_NIPPER_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 583, -21, 625), - RC(RC_TTC_NOTE_INSIDE_NIPPER_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -78, -21, 800), - RC(RC_TTC_NOTE_INSIDE_NIPPER_6, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -608, -21, 457), - RC(RC_TTC_NOTE_INSIDE_SHIP_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -870, -750, -60), - RC(RC_TTC_NOTE_INSIDE_SHIP_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -870, -750, -195), - RC(RC_TTC_NOTE_INSIDE_SHIP_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -871, -750, 198), - RC(RC_TTC_NOTE_INSIDE_SHIP_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -871, -750, 68), - RC(RC_TTC_NOTE_INSIDE_SHIP_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 870, -750, -64), - RC(RC_TTC_NOTE_INSIDE_SHIP_6, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 870, -746, -197), - RC(RC_TTC_NOTE_INSIDE_SHIP_7, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 870, -698, 200), - RC(RC_TTC_NOTE_INSIDE_SHIP_8, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 870, -750, 61), - RC(RC_TTC_NOTE_JUMP_PAD_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 2911, 1667, 1203), - RC(RC_TTC_NOTE_JUMP_PAD_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 2911, 1792, 1203), - RC(RC_TTC_NOTE_JUMP_PAD_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 2911, 1917, 1203), - RC(RC_TTC_NOTE_LIGHTHOUSE_PATH_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -363, 6087, -2487), - RC(RC_TTC_NOTE_LIGHTHOUSE_PATH_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -455, 6170, -2688), - RC(RC_TTC_NOTE_LIGHTHOUSE_PATH_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -352, 6227, -2895), - RC(RC_TTC_NOTE_LIGHTHOUSE_TOP_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 563, 8055, -2949), - RC(RC_TTC_NOTE_LIGHTHOUSE_TOP_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 731, 8056, -2702), - RC(RC_TTC_NOTE_LIGHTHOUSE_TOP_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 552, 8056, -2465), - RC(RC_TTC_NOTE_LIGHTHOUSE_TOP_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 269, 8070, -2560), - RC(RC_TTC_NOTE_LIGHTHOUSE_TOP_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 275, 8055, -2864), - RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 5447, 1817, 101), - RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 5682, 1817, 444), - RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 6246, 1817, 447), - RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 6244, 1817, -452), - RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 6498, 1817, 39), - RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_6, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 5670, 1817, -372), - RC(RC_TTC_NOTE_SANDCASTLE_TOP_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 2497, 431, 4437), - RC(RC_TTC_NOTE_SANDCASTLE_TOP_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 2318, 431, 4609), - RC(RC_TTC_NOTE_SANDCASTLE_TOP_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 2497, 431, 4609), - RC(RC_TTC_NOTE_SANDCASTLE_TOP_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 2660, 431, 4609), - RC(RC_TTC_NOTE_SANDCASTLE_TOP_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 2497, 431, 4794), - RC(RC_TTC_NOTE_SANDCASTLE_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -536, -90, 727), - RC(RC_TTC_NOTE_SANDCASTLE_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -536, -90, 892), - RC(RC_TTC_NOTE_SANDCASTLE_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 537, -90, 727), - RC(RC_TTC_NOTE_SANDCASTLE_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 537, -90, 892), - RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1364, 1084, 622), - RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1213, 1276, 665), - RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1055, 1490, 713), - RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -896, 1703, 753), - RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -734, 1915, 773), - RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_6, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -569, 2131, 795), - RC(RC_TTC_NOTE_SHIP_RIGGING_RIGHT_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 966, 1289, 1138), - RC(RC_TTC_NOTE_SHIP_RIGGING_RIGHT_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 788, 1486, 1082), - RC(RC_TTC_NOTE_SHIP_RIGGING_RIGHT_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 603, 1702, 1027), - RC(RC_TTC_NOTE_SHIP_RIGGING_RIGHT_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 414, 1916, 1000), - RC(RC_TTC_NOTE_SHIP_RIGGING_RIGHT_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 222, 2132, 979), - RC(RC_TTC_NOTE_SHIP_TREE_LEFT_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1630, 1291, 2476), - RC(RC_TTC_NOTE_SHIP_TREE_LEFT_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1539, 1291, 2621), - RC(RC_TTC_NOTE_SHIP_TREE_LEFT_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1681, 1318, 2708), - RC(RC_TTC_NOTE_SHIP_TREE_LEFT_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1769, 1321, 2578), - RC(RC_TTC_NOTE_SHIP_TREE_RIGHT_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 417, 1291, 2891), - RC(RC_TTC_NOTE_SHIP_TREE_RIGHT_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 448, 1318, 3052), - RC(RC_TTC_NOTE_SHIP_TREE_RIGHT_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 297, 1321, 3090), - RC(RC_TTC_NOTE_SHIP_TREE_RIGHT_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 251, 1292, 2927), - RC(RC_TTC_NOTE_SPIRAL_PATH_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 4656, 817, -6660), - RC(RC_TTC_NOTE_SPIRAL_PATH_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 4646, 817, -6864), - RC(RC_TTC_NOTE_SPIRAL_PATH_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 4631, 817, -7067), - RC(RC_TTC_NOTE_SPIRAL_PATH_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 4499, 817, -7216), - RC(RC_TTC_NOTE_STAIRS_TO_LIGHTHOUSE, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 2070, 2517, -2499), - RC(RC_TTC_NOTE_STAIRSET_FIRST_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 266, 911, -6564), - RC(RC_TTC_NOTE_STAIRSET_FIRST_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 86, 1117, -6563), - RC(RC_TTC_NOTE_STAIRSET_FIRST_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -85, 1313, -6564), - RC(RC_TTC_NOTE_STAIRSET_FIRST_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -263, 1516, -6564), - RC(RC_TTC_NOTE_STAIRSET_SECOND_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -653, 1713, -6370), - RC(RC_TTC_NOTE_STAIRSET_SECOND_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -826, 1913, -6343), - RC(RC_TTC_NOTE_STAIRSET_SECOND_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1001, 2116, -6315), - RC(RC_TTC_NOTE_STAIRSET_SECOND_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1175, 2317, -6288), - RC(RC_TTC_NOTE_STAIRSET_THIRD_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1936, 2528, -6112), - RC(RC_TTC_NOTE_STAIRSET_THIRD_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1854, 2731, -5955), - RC(RC_TTC_NOTE_STAIRSET_THIRD_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1773, 2928, -5803), - RC(RC_TTC_NOTE_STAIRSET_THIRD_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1691, 3130, -5647), - RC(RC_TTC_NOTE_STARTING_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1144, 846, 7476), - RC(RC_TTC_NOTE_STARTING_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -1147, 846, 6935), - RC(RC_TTC_NOTE_STARTING_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -603, 846, 6938), - RC(RC_TTC_NOTE_STARTING_PLATFORM_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -603, 846, 7478), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 688, 1617, 4709), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 700, 1617, 4907), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, 713, 1617, 5104), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -2607, 1617, 3019), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -2548, 1617, 3217), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_6, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -2488, 1617, 3417), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_7, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -719, 1617, 4183), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_8, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -520, 1617, 4172), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_9, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -319, 1617, 4160), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_10, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -2515, 1617, 4735), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_11, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -2638, 1617, 4933), - RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_12, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -2760, 1617, 5135), - RC(RC_TTC_NOTE_UPPERLEVEL_POOL_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -3235, 1840, -1696), - RC(RC_TTC_NOTE_UPPERLEVEL_POOL_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -3001, 1840, -2007), - RC(RC_TTC_NOTE_UPPERLEVEL_POOL_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_51_MUSIC_NOTE, NULL, -2906, 1840, -2329), - RC(RC_TTC_SNS_PINK_EGG, RCTYPE_STOP_N_SWOP, LEVEL_2_TREASURE_TROVE_COVE, ACTOR_25E_SNS_EGG, SNS_ITEM_EGG_PINK, 0, 1950, 0), + RC(RC_UNKNOWN, RCTYPE_UNKNOWN, LEVEL_D_CUTSCENE, RI_UNKNOWN, NULL, 0, 0, 0), + RC(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4309, 100, 6025), + RC(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4368, 100, 6106), + RC(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4428, 100, 6198), + RC(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_4, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4484, 100, 6296), + RC(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_5, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4541, 100, 6389), + RC(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4133, 1400, -1304), + RC(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4208, 1400, -1422), + RC(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4343, 1400, -1422), + RC(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_4, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4412, 1400, -1304), + RC(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_5, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4342, 1400, -1184), + RC(RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_6, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4207, 1400, -1184), + RC(RC_BGS_BLUE_EGG_INSIDE_MR_VILES_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 1185, 0, 0), + RC(RC_BGS_BLUE_EGG_INSIDE_MR_VILES_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -1189, 0, 0), + RC(RC_BGS_BLUE_EGG_INSIDE_TANKTUP_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 300, 0, -1830), + RC(RC_BGS_BLUE_EGG_INSIDE_TANKTUP_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 150, 0, -1829), + RC(RC_BGS_BLUE_EGG_INSIDE_TANKTUP_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -150, 0, -1832), + RC(RC_BGS_BLUE_EGG_INSIDE_TANKTUP_4, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -300, 0, -1831), + RC(RC_BGS_BLUE_EGG_MAZE_WALKWAY_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -7873, 1000, -6525), + RC(RC_BGS_BLUE_EGG_MAZE_WALKWAY_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -7591, 1000, -6568), + RC(RC_BGS_BLUE_EGG_MAZE_WALKWAY_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -7309, 1000, -6610), + RC(RC_BGS_BLUE_EGG_MAZE_WALKWAY_4, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -7017, 1000, -6552), + RC(RC_BGS_BLUE_EGG_MAZE_WALKWAY_5, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -6729, 1000, -6507), + RC(RC_BGS_BLUE_EGG_POLE_NEAR_BLUE_JINJO_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -3920, 1250, -7549), + RC(RC_BGS_BLUE_EGG_POLE_NEAR_BLUE_JINJO_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -3920, 1350, -7549), + RC(RC_BGS_BLUE_EGG_POLE_NEAR_BLUE_JINJO_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -3920, 1450, -7549), + RC(RC_BGS_BLUE_EGG_POLE_NEAR_ENTRANCE_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 839, 1250, 2740), + RC(RC_BGS_BLUE_EGG_POLE_NEAR_ENTRANCE_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 839, 1350, 2740), + RC(RC_BGS_BLUE_EGG_POLE_NEAR_ENTRANCE_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 839, 1450, 2740), + RC(RC_BGS_BLUE_EGG_STUMP_NEAR_BIG_EGG_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -3209, 150, -253), + RC(RC_BGS_BLUE_EGG_STUMP_NEAR_BIG_EGG_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -3403, 150, -761), + RC(RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 5917, 0, 2497), + RC(RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 5705, 0, 2672), + RC(RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 5283, 0, 3047), + RC(RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_4, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 5087, 0, 3251), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_HUTS_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 1813, 0, -2967), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_HUTS_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 1857, 0, -3096), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_HUTS_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 1889, 0, -3228), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -404, 0, -1715), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -518, 0, -1728), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -628, 0, -1744), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_4, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 1497, 0, -3242), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_5, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 1501, 0, -3121), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_6, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 1506, 0, -3005), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_SWITCH_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -635, 0, -1361), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_SWITCH_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -528, 0, -1380), + RC(RC_BGS_BLUE_EGG_SWAMP_NEAR_SWITCH_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, -427, 0, -1398), + RC(RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_1, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4592, 0, -3489), + RC(RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_2, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4586, 0, -3710), + RC(RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_3, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4809, 0, -3711), + RC(RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_4, RCTYPE_BLUE_EGG, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_BLUE_EGG, NULL, 4814, 0, -3490), + RC(RC_BGS_EMPTY_HONEYCOMB_MUMBOS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_EMPTY_HONEYCOMB_BUBBLEGLOOP_SWAMP, HONEYCOMB_7_BGS_MUMBOS, 0, 600, 0), + RC(RC_BGS_EMPTY_HONEYCOMB_TANKTUP, RCTYPE_EMPTY_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_EMPTY_HONEYCOMB_BUBBLEGLOOP_SWAMP, HONEYCOMB_8_BGS_TANKTUP, 0, 537, -1157), + RC(RC_BGS_EXTRA_LIFE_ABOVE_THE_EGG, RCTYPE_EXTRA_LIFE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_EXTRA_LIFE, NULL, -4382, 985, 2799), + RC(RC_BGS_EXTRA_LIFE_MR_VILE_1, RCTYPE_EXTRA_LIFE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_EXTRA_LIFE, NULL, 0, 0, 0), + RC(RC_BGS_EXTRA_LIFE_MR_VILE_2, RCTYPE_EXTRA_LIFE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_EXTRA_LIFE, NULL, 0, 0, 0), + RC(RC_BGS_EXTRA_LIFE_MR_VILE_3, RCTYPE_EXTRA_LIFE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_EXTRA_LIFE, NULL, 0, 0, 0), + RC(RC_BGS_EXTRA_LIFE_SWAMP_BY_THE_HUTS, RCTYPE_EXTRA_LIFE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_EXTRA_LIFE, NULL, 7149, 0, -4353), + RC(RC_BGS_HONEYCOMB_BEEHIVE_ELEVATED_WALKWAY_1, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_ELEVATED_WALKWAY_2, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_ELEVATED_WALKWAY_3, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_MAZE_ENTRANCE_1, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_MAZE_ENTRANCE_2, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_MAZE_ENTRANCE_3, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_TANKTUP_1, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_TANKTUP_2, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_TANKTUP_3, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_1, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_2, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_3, RCTYPE_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_BGS_JIGGY_CROCTUS, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JIGGY_BUBBLEGLOOP_SWAMP, JIGGY_22_CROCTUS, 0, 0, 0), + RC(RC_BGS_JIGGY_ELEVATED_WALKWAY, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JIGGY_BUBBLEGLOOP_SWAMP, JIGGY_20_BGS_ELEVATED_WALKWAY, 0, 0, 0), + RC(RC_BGS_JIGGY_FLIBBITS, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JIGGY_BUBBLEGLOOP_SWAMP, JIGGY_24_BGS_FLIBBITS, 0, 0, 0), + RC(RC_BGS_JIGGY_HUTS, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JIGGY_BUBBLEGLOOP_SWAMP, JIGGY_23_BGS_HUTS, 0, 0, 0), + RC(RC_BGS_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JIGGY_BUBBLEGLOOP_SWAMP, JIGGY_1F_BGS_JINGO, 0, 0, 0), + RC(RC_BGS_JIGGY_MAZE, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JIGGY_BUBBLEGLOOP_SWAMP, JIGGY_25_BGS_MAZE, 0, 0, 0), + RC(RC_BGS_JIGGY_MR_VILE, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JIGGY_BUBBLEGLOOP_SWAMP, JIGGY_28_BGS_MR_VILE, 0, 0, 0), + RC(RC_BGS_JIGGY_PINKEGG, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JIGGY_BUBBLEGLOOP_SWAMP, JIGGY_21_BGS_PINKEGG, 0, 0, 0), + RC(RC_BGS_JIGGY_TANKTUP, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JIGGY_BUBBLEGLOOP_SWAMP, JIGGY_26_BGS_TANKTUP, 0, 0, 0), + RC(RC_BGS_JIGGY_TIPTUP, RCTYPE_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JIGGY_BUBBLEGLOOP_SWAMP, JIGGY_27_BGS_TIPTUP, 0, 0, 0), + RC(RC_BGS_JINJO_BLUE, RCTYPE_JINJO, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JINJO_BLUE_BUBBLEGLOOP_SWAMP, NULL, -3061, 1146, -10052), + RC(RC_BGS_JINJO_GREEN, RCTYPE_JINJO, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JINJO_GREEN_BUBBLEGLOOP_SWAMP, NULL, 1650, 1600, 1988), + RC(RC_BGS_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JINJO_ORANGE_BUBBLEGLOOP_SWAMP, NULL, 5472, 0, 2853), + RC(RC_BGS_JINJO_PINK, RCTYPE_JINJO, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JINJO_PINK_BUBBLEGLOOP_SWAMP, NULL, 5670, 0, -4158), + RC(RC_BGS_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_JINJO_YELLOW_BUBBLEGLOOP_SWAMP, NULL, -1606, 500, 2797), + RC(RC_BGS_MOLEHILL_WADING_BOOTS, RCTYPE_MOLEHILL, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MOLEHILL_WADING_BOOTS, ABILITY_E_WADING_BOOTS, 4297, 100, 6286), + RC(RC_BGS_MUMBO_TOKEN_ALCOVE_ABOVE_YELLOW_FLIBBITS, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUMBO_TOKEN, MUMBOTOKEN_1B_BGS_ALCOVE_ABOVE_YELLOW_FLIBBITS, 4278, 1400, -1302), + RC(RC_BGS_MUMBO_TOKEN_BEHIND_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUMBO_TOKEN, MUMBOTOKEN_1A_BGS_BEHIND_MUMBOS_SKULL, -6940, 1000, -5838), + RC(RC_BGS_MUMBO_TOKEN_BEHIND_TIPTUP, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUMBO_TOKEN, MUMBOTOKEN_1C_BGS_BEHIND_TIPTUP, 0, 0, -1829), + RC(RC_BGS_MUMBO_TOKEN_BEHIND_YELLOW_JINJO, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUMBO_TOKEN, MUMBOTOKEN_18_BGS_BEHIND_YELLOW_JINJO, -1855, 0, 2835), + RC(RC_BGS_MUMBO_TOKEN_FLOATING_BETWEEN_HUT_AND_CROCTUS, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUMBO_TOKEN, MUMBOTOKEN_19_BGS_FLOATING_BETWEEN_HUT_AND_CROCTUS, 6546, 2992, -4697), + RC(RC_BGS_MUMBO_TOKEN_INSIDE_MR_VILES, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUMBO_TOKEN, MUMBOTOKEN_1D_BGS_INSIDE_MR_VILES, 0, 300, -1754), + RC(RC_BGS_MUMBO_TOKEN_INSIDE_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUMBO_TOKEN, MUMBOTOKEN_1E_BGS_INSIDE_MUMBOS_SKULL, 0, 0, -450), + RC(RC_BGS_MUMBO_TOKEN_TOP_OF_POLE_NEXT_TO_BIG_EGG, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUMBO_TOKEN, MUMBOTOKEN_17_BGS_TOP_OF_POLE_NEXT_TO_BIG_EGG, -3993, 1055, 1295), + RC(RC_BGS_MUMBO_TOKEN_UNDER_HUT_1, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUMBO_TOKEN, MUMBOTOKEN_15_BGS_UNDER_HUT_1, 5049, 0, -5142), + RC(RC_BGS_MUMBO_TOKEN_UNDER_HUT_2, RCTYPE_MUMBO_TOKEN, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUMBO_TOKEN, MUMBOTOKEN_16_BGS_UNDER_HUT_2, 5347, 0, -5055), + RC(RC_BGS_NOTE_ABOVE_MR_VILES_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -912, 347, -3385), + RC(RC_BGS_NOTE_ABOVE_MR_VILES_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1073, 318, -3495), + RC(RC_BGS_NOTE_ABOVE_MR_VILES_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1247, 405, -3608), + RC(RC_BGS_NOTE_ABOVE_MR_VILES_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1406, 517, -3718), + RC(RC_BGS_NOTE_ABOVE_MR_VILES_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1550, 652, -3828), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 29, 899, -2061), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 207, 948, -2346), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 587, 1023, -2412), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 847, 1049, -2243), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 1161, 1099, -2187), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_6, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 2261, 1075, -2275), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_7, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 2606, 1174, -2223), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_8, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 2904, 1125, -2136), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_9, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 3290, 1224, -1883), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_10, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 3425, 1200, -826), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_11, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 3308, 1299, -451), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_12, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 2973, 1349, -237), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_13, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 2619, 1299, -284), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_14, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 2310, 1200, -229), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_15, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 2150, 1200, 54), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_16, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 2145, 1299, 442), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_17, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 1202, 1350, 656), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_18, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 918, 1200, 687), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_19, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 575, 1249, 703), + RC(RC_BGS_NOTE_ELEVATED_WALKWAY_20, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 228, 1101, 502), + RC(RC_BGS_NOTE_FIFTH_SHORT_SWAMP_LOG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 468, 93, -2275), + RC(RC_BGS_NOTE_FIFTH_SHORT_SWAMP_LOG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 287, 93, -2417), + RC(RC_BGS_NOTE_FIFTH_SHORT_SWAMP_LOG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 105, 93, -2559), + RC(RC_BGS_NOTE_FIRST_SHORT_SWAMP_LOG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -68, 93, 1120), + RC(RC_BGS_NOTE_FIRST_SHORT_SWAMP_LOG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -74, 93, 920), + RC(RC_BGS_NOTE_FIRST_SHORT_SWAMP_LOG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -82, 93, 720), + RC(RC_BGS_NOTE_FOURTH_SHORT_SWAMP_LOG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 3178, 93, -2312), + RC(RC_BGS_NOTE_FOURTH_SHORT_SWAMP_LOG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 3355, 93, -2460), + RC(RC_BGS_NOTE_FOURTH_SHORT_SWAMP_LOG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 3529, 93, -2607), + RC(RC_BGS_NOTE_HUT_BUNDLE_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 0, 0, 0), + RC(RC_BGS_NOTE_HUT_BUNDLE_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 0, 0, 0), + RC(RC_BGS_NOTE_HUT_BUNDLE_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 0, 0, 0), + RC(RC_BGS_NOTE_HUT_BUNDLE_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 0, 0, 0), + RC(RC_BGS_NOTE_HUT_BUNDLE_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 0, 0, 0), + RC(RC_BGS_NOTE_INSIDE_MR_VILES_LEFT_NOSTRIL_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 280, 125, -2069), + RC(RC_BGS_NOTE_INSIDE_MR_VILES_LEFT_NOSTRIL_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 219, 125, -1941), + RC(RC_BGS_NOTE_INSIDE_MR_VILES_LEFT_NOSTRIL_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 200, 125, -1810), + RC(RC_BGS_NOTE_INSIDE_MR_VILES_RIGHT_NOSTRIL_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -280, 125, -2070), + RC(RC_BGS_NOTE_INSIDE_MR_VILES_RIGHT_NOSTRIL_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -219, 125, -1939), + RC(RC_BGS_NOTE_INSIDE_MR_VILES_RIGHT_NOSTRIL_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -199, 125, -1810), + RC(RC_BGS_NOTE_LOG_BRIDGE_NEAR_WARP_PAD_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1006, 444, 3631), + RC(RC_BGS_NOTE_LOG_BRIDGE_NEAR_WARP_PAD_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -984, 485, 3375), + RC(RC_BGS_NOTE_LOG_BRIDGE_NEAR_WARP_PAD_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -962, 524, 3114), + RC(RC_BGS_NOTE_LOG_BRIDGE_NEAR_WARP_PAD_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -912, 479, 2851), + RC(RC_BGS_NOTE_LOG_BRIDGE_NEAR_WARP_PAD_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -862, 437, 2592), + RC(RC_BGS_NOTE_MAZE_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -6304, 992, -3449), + RC(RC_BGS_NOTE_MAZE_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -5548, 992, -2204), + RC(RC_BGS_NOTE_MAZE_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -6054, 992, -2704), + RC(RC_BGS_NOTE_MAZE_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -6546, 992, -2193), + RC(RC_BGS_NOTE_MAZE_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -7047, 985, -3702), + RC(RC_BGS_NOTE_MAZE_6, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -8055, 991, -3200), + RC(RC_BGS_NOTE_MAZE_7, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -8553, 991, -2207), + RC(RC_BGS_NOTE_MAZE_8, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -8047, 991, -4700), + RC(RC_BGS_NOTE_MAZE_9, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -8548, 991, -4204), + RC(RC_BGS_NOTE_MAZE_10, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -8046, 991, -5201), + RC(RC_BGS_NOTE_MAZE_11, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -7553, 991, -5702), + RC(RC_BGS_NOTE_MAZE_12, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -6524, 1007, -4200), + RC(RC_BGS_NOTE_POLE_NEAR_BLUE_JINJO_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -4105, 1250, -8802), + RC(RC_BGS_NOTE_POLE_NEAR_BLUE_JINJO_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -4105, 1350, -8802), + RC(RC_BGS_NOTE_POLE_NEAR_BLUE_JINJO_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -4105, 1450, -8802), + RC(RC_BGS_NOTE_SECOND_SHORT_SWAMP_LOG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1345, 92, -153), + RC(RC_BGS_NOTE_SECOND_SHORT_SWAMP_LOG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1591, 92, -179), + RC(RC_BGS_NOTE_SECOND_SHORT_SWAMP_LOG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1834, 92, -204), + RC(RC_BGS_NOTE_SWAMP_BEHIND_BLUE_JINJO_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -2216, 0, -9596), + RC(RC_BGS_NOTE_SWAMP_BEHIND_BLUE_JINJO_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -2349, 0, -10049), + RC(RC_BGS_NOTE_SWAMP_BEHIND_BLUE_JINJO_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -2489, 0, -10528), + RC(RC_BGS_NOTE_SWAMP_BEHIND_BLUE_JINJO_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -3024, 0, -10719), + RC(RC_BGS_NOTE_SWAMP_BEHIND_BLUE_JINJO_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -3558, 0, -10911), + RC(RC_BGS_NOTE_SWAMP_BEHIND_HUTS_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 7253, 0, -3699), + RC(RC_BGS_NOTE_SWAMP_BEHIND_HUTS_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 7433, 0, -3931), + RC(RC_BGS_NOTE_SWAMP_BEHIND_HUTS_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 7612, 0, -4165), + RC(RC_BGS_NOTE_SWAMP_BEHIND_HUTS_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 7599, 0, -4481), + RC(RC_BGS_NOTE_SWAMP_BEHIND_HUTS_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 7585, 0, -4798), + RC(RC_BGS_NOTE_SWAMP_BEHIND_LARGE_EGG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -3501, 0, 3668), + RC(RC_BGS_NOTE_SWAMP_BEHIND_LARGE_EGG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -4017, 0, 3876), + RC(RC_BGS_NOTE_SWAMP_BEHIND_LARGE_EGG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -4544, 0, 4085), + RC(RC_BGS_NOTE_SWAMP_BEHIND_LARGE_EGG_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -4920, 0, 3823), + RC(RC_BGS_NOTE_SWAMP_BEHIND_LARGE_EGG_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -5293, 0, 3559), + RC(RC_BGS_NOTE_SWAMP_UNDER_HUTS_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 4789, 0, -4503), + RC(RC_BGS_NOTE_SWAMP_UNDER_HUTS_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 4793, 0, -4288), + RC(RC_BGS_NOTE_SWAMP_UNDER_HUTS_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 5015, 0, -4288), + RC(RC_BGS_NOTE_SWAMP_UNDER_HUTS_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 5009, 0, -4507), + RC(RC_BGS_NOTE_TANKTUP_FEET_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 3697, 176, 1632), + RC(RC_BGS_NOTE_TANKTUP_FEET_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 4351, 174, 955), + RC(RC_BGS_NOTE_TANKTUP_FEET_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 4461, 168, 2373), + RC(RC_BGS_NOTE_TANKTUP_FEET_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 5059, 170, 1758), + RC(RC_BGS_NOTE_TANKTUP_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 1006, 0, 235), + RC(RC_BGS_NOTE_TANKTUP_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 1022, 0, 0), + RC(RC_BGS_NOTE_TANKTUP_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 1005, 0, -236), + RC(RC_BGS_NOTE_TANKTUP_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1006, 0, 236), + RC(RC_BGS_NOTE_TANKTUP_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1022, 0, 0), + RC(RC_BGS_NOTE_TANKTUP_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, -1005, 0, -234), + RC(RC_BGS_NOTE_THIRD_SHORT_SWAMP_LOG_1, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 2921, 93, -513), + RC(RC_BGS_NOTE_THIRD_SHORT_SWAMP_LOG_2, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 3020, 93, -304), + RC(RC_BGS_NOTE_THIRD_SHORT_SWAMP_LOG_3, RCTYPE_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP, RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, NULL, 3114, 93, -86), + RC(RC_CC_BLUE_EGG_ABOVEWATER_PIPE_1, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 6379, 5087, 2586), + RC(RC_CC_BLUE_EGG_ABOVEWATER_PIPE_2, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 6582, 5047, 2536), + RC(RC_CC_BLUE_EGG_ABOVEWATER_PIPE_3, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 6785, 4876, 2454), + RC(RC_CC_BLUE_EGG_ABOVEWATER_PIPE_4, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 6989, 4703, 2388), + RC(RC_CC_BLUE_EGG_ABOVEWATER_PIPE_5, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 7194, 4526, 2321), + RC(RC_CC_BLUE_EGG_ALCOVE_WITH_OPEN_GRATE_1, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 2588, 5456, 2596), + RC(RC_CC_BLUE_EGG_ALCOVE_WITH_OPEN_GRATE_2, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 2494, 5456, 2556), + RC(RC_CC_BLUE_EGG_ENTRANCE_1, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, -5274, 3269, -270), + RC(RC_CC_BLUE_EGG_ENTRANCE_2, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, -4937, 3221, -597), + RC(RC_CC_BLUE_EGG_ENTRANCE_3, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, -4492, 3113, -449), + RC(RC_CC_BLUE_EGG_ENTRANCE_4, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, -4392, 3051, -27), + RC(RC_CC_BLUE_EGG_ENTRANCE_5, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, -4722, 3104, 299), + RC(RC_CC_BLUE_EGG_ENTRANCE_6, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, -5159, 3232, 178), + RC(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_1, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 2293, 3662, 2354), + RC(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_2, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 2360, 3662, 2231), + RC(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_3, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 2329, 3662, 2107), + RC(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_4, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 2216, 3662, 2018), + RC(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_5, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 2094, 3662, 1968), + RC(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_6, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 1970, 3662, 1998), + RC(RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_7, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 1895, 3662, 2117), + RC(RC_CC_BLUE_EGG_NEAR_RINGS_1, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, -390, -116, 1316), + RC(RC_CC_BLUE_EGG_NEAR_RINGS_2, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, -476, -192, 480), + RC(RC_CC_BLUE_EGG_NEAR_RINGS_3, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, -433, -214, -453), + RC(RC_CC_BLUE_EGG_NEAR_RINGS_4, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, -390, -160, -1300), + RC(RC_CC_BLUE_EGG_NEAR_RINGS_5, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 391, -160, -1300), + RC(RC_CC_BLUE_EGG_NEAR_RINGS_6, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 434, -214, -453), + RC(RC_CC_BLUE_EGG_NEAR_RINGS_7, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 476, -192, 480), + RC(RC_CC_BLUE_EGG_NEAR_RINGS_8, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 389, -116, 1316), + RC(RC_CC_BLUE_EGG_NEAR_SNIPPETS_1, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 15075, 3648, -20), + RC(RC_CC_BLUE_EGG_NEAR_SNIPPETS_2, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 14862, 3649, -17), + RC(RC_CC_BLUE_EGG_NEAR_SNIPPETS_3, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 14651, 3649, -20), + RC(RC_CC_BLUE_EGG_NEAR_SNIPPETS_4, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 14437, 3649, -20), + RC(RC_CC_BLUE_EGG_NEAR_SNIPPETS_5, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 14225, 3649, -20), + RC(RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_1, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 0, 2392, 5200), + RC(RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_2, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 0, 2293, 5276), + RC(RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_3, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 0, 2197, 5350), + RC(RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_4, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 0, 2099, 5425), + RC(RC_CC_BLUE_EGG_UNDERWATER_PIPE_1, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 3854, 1202, -532), + RC(RC_CC_BLUE_EGG_UNDERWATER_PIPE_2, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 3692, 1202, -356), + RC(RC_CC_BLUE_EGG_UNDERWATER_PIPE_3, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 3529, 1202, -182), + RC(RC_CC_BLUE_EGG_UNDERWATER_PIPE_4, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 3369, 1207, -10), + RC(RC_CC_BLUE_EGG_UNDERWATER_PIPE_5, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 3206, 1202, 165), + RC(RC_CC_BLUE_EGG_YELLOW_GRATE_1, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 4271, 5261, -2936), + RC(RC_CC_BLUE_EGG_YELLOW_GRATE_2, RCTYPE_BLUE_EGG, LEVEL_3_CLANKERS_CAVERN, RI_BLUE_EGG, NULL, 3247, 5262, -2842), + RC(RC_CC_EMPTY_HONEYCOMB_ABOVEWATER, RCTYPE_EMPTY_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_EMPTY_HONEYCOMB_CLANKERS_CAVERN, HONEYCOMB_6_CC_ABOVE_WATER, 7886, 4272, 1969), + RC(RC_CC_EMPTY_HONEYCOMB_UNDERWATER, RCTYPE_EMPTY_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_EMPTY_HONEYCOMB_CLANKERS_CAVERN, HONEYCOMB_5_CC_UNDERWATER, 3718, 3311, 2519), + RC(RC_CC_EXTRA_LIFE_CLANKERS_LEFT_FIN, RCTYPE_EXTRA_LIFE, LEVEL_3_CLANKERS_CAVERN, RI_EXTRA_LIFE, NULL, 4570, 3727, 2783), + RC(RC_CC_EXTRA_LIFE_JINJO_PIPE, RCTYPE_EXTRA_LIFE, LEVEL_3_CLANKERS_CAVERN, RI_EXTRA_LIFE, NULL, 7309, 4267, 2286), + RC(RC_CC_EXTRA_LIFE_YELLOW_GRATE, RCTYPE_EXTRA_LIFE, LEVEL_3_CLANKERS_CAVERN, RI_EXTRA_LIFE, NULL, 1752, 5270, -2214), + RC(RC_CC_HONEYCOMB_BEEHIVE_INSIDE_CLANKER_1, RCTYPE_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CC_HONEYCOMB_BEEHIVE_INSIDE_CLANKER_2, RCTYPE_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CC_HONEYCOMB_BEEHIVE_INSIDE_CLANKER_3, RCTYPE_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_ENTRANCE_1, RCTYPE_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_ENTRANCE_2, RCTYPE_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_ENTRANCE_3, RCTYPE_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_YELLOW_GRATES_1, RCTYPE_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_YELLOW_GRATES_2, RCTYPE_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_YELLOW_GRATES_3, RCTYPE_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CC_JIGGY_BOLT, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, RI_JIGGY_CLANKERS_CAVERN, JIGGY_18_CC_BOLT, 90, 5962, -12), + RC(RC_CC_JIGGY_CLANKER_RAISED, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, RI_JIGGY_CLANKERS_CAVERN, JIGGY_17_CC_CLANKER_RAISED, 0, 0, 0), + RC(RC_CC_JIGGY_FAST_SAWBLADES, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, RI_JIGGY_CLANKERS_CAVERN, JIGGY_1E_CC_FAST_SAWBLADES, 0, -340, -1604), + RC(RC_CC_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, RI_JIGGY_CLANKERS_CAVERN, JIGGY_15_CC_JINJO, 0, 0, 0), + RC(RC_CC_JIGGY_LONG_PIPE, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, RI_JIGGY_CLANKERS_CAVERN, JIGGY_1A_CC_LONG_PIPE, 4629, 2151, 3082), + RC(RC_CC_JIGGY_RINGS, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, RI_JIGGY_CLANKERS_CAVERN, JIGGY_1C_CC_RINGS, 0, 0, 0), + RC(RC_CC_JIGGY_SLOW_SAWBLADES, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, RI_JIGGY_CLANKERS_CAVERN, JIGGY_1D_CC_SLOW_SAWBLADES, 10, -391, -2185), + RC(RC_CC_JIGGY_TAIL, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, RI_JIGGY_CLANKERS_CAVERN, JIGGY_19_CC_TAIL, 10061, 5112, 3), + RC(RC_CC_JIGGY_TOOTH, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, RI_JIGGY_CLANKERS_CAVERN, JIGGY_1B_CC_TOOTH, 0, 0, 0), + RC(RC_CC_JIGGY_SNIPPETS, RCTYPE_JIGGY, LEVEL_3_CLANKERS_CAVERN, RI_JIGGY_CLANKERS_CAVERN, JIGGY_16_CC_SNIPPETS, 0, 0, 0), + RC(RC_CC_JINJO_BLUE, RCTYPE_JINJO, LEVEL_3_CLANKERS_CAVERN, RI_JINJO_BLUE_CLANKERS_CAVERN, NULL, 4326, 2146, -4080), + RC(RC_CC_JINJO_GREEN, RCTYPE_JINJO, LEVEL_3_CLANKERS_CAVERN, RI_JINJO_GREEN_CLANKERS_CAVERN, NULL, 5017, -3085, -13), + RC(RC_CC_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_3_CLANKERS_CAVERN, RI_JINJO_ORANGE_CLANKERS_CAVERN, NULL, 6138, 5087, 2637), + RC(RC_CC_JINJO_PINK, RCTYPE_JINJO, LEVEL_3_CLANKERS_CAVERN, RI_JINJO_PINK_CLANKERS_CAVERN, NULL, 3644, -474, 48), + RC(RC_CC_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_3_CLANKERS_CAVERN, RI_JINJO_YELLOW_CLANKERS_CAVERN, NULL, -4726, 5337, -110), + RC(RC_CC_MOLEHILL_WONDERWING, RCTYPE_MOLEHILL, LEVEL_3_CLANKERS_CAVERN, RI_MOLEHILL_WONDERWING, ABILITY_12_WONDERWING, -259, -500, 1413), + RC(RC_CC_MUMBO_TOKEN_CHOMPA_BEHIND_CLANKERS_TAIL, RCTYPE_MUMBO_TOKEN, LEVEL_3_CLANKERS_CAVERN, RI_MUMBO_TOKEN, MUMBOTOKEN_10_CC_CHOMPA_BEHIND_CLANKERS_TAIL, 9823, 4225, -19), + RC(RC_CC_MUMBO_TOKEN_ABOVE_LEVEL_ENTRANCE, RCTYPE_MUMBO_TOKEN, LEVEL_3_CLANKERS_CAVERN, RI_MUMBO_TOKEN, MUMBOTOKEN_11_CC_ABOVE_LEVEL_ENTRANCE, -9694, 5272, 1607), + RC(RC_CC_MUMBO_TOKEN_TUNNEL_RIGHT_OF_CLANKER, RCTYPE_MUMBO_TOKEN, LEVEL_3_CLANKERS_CAVERN, RI_MUMBO_TOKEN, MUMBOTOKEN_12_CC_TUNNEL_RIGHT_OF_CLANKER, 870, 2146, -3148), + RC(RC_CC_MUMBO_TOKEN_ALCOVE_WITH_OPEN_GRATE, RCTYPE_MUMBO_TOKEN, LEVEL_3_CLANKERS_CAVERN, RI_MUMBO_TOKEN, MUMBOTOKEN_13_CC_ALCOVE_WITH_OPEN_GRATE, 2028, 5456, 2344), + RC(RC_CC_MUMBO_TOKEN_CLANKERS_LEFT_TOOTH, RCTYPE_MUMBO_TOKEN, LEVEL_3_CLANKERS_CAVERN, RI_MUMBO_TOKEN, MUMBOTOKEN_14_CC_CLANKERS_LEFT_TOOTH, 532, 1424, 6632), + RC(RC_CC_NOTE_ABOVE_BOLT_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 2036, 5693, -15), + RC(RC_CC_NOTE_ABOVE_BOLT_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 1533, 5693, 381), + RC(RC_CC_NOTE_ABOVE_BOLT_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 1043, 5693, 377), + RC(RC_CC_NOTE_ABOVE_BOLT_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 939, 5693, -17), + RC(RC_CC_NOTE_CLIMBABLE_PIPE_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 3013, 4437, 2477), + RC(RC_CC_NOTE_CLIMBABLE_PIPE_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 3013, 4827, 2477), + RC(RC_CC_NOTE_CLIMBABLE_PIPE_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 3013, 5117, 2477), + RC(RC_CC_NOTE_CLIMBABLE_PIPE_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 3013, 5407, 2477), + RC(RC_CC_NOTE_ENTRANCE_TUNNEL_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -2580, 2841, 0), + RC(RC_CC_NOTE_ENTRANCE_TUNNEL_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -2030, 2466, 0), + RC(RC_CC_NOTE_ENTRANCE_TUNNEL_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -1480, 2461, 0), + RC(RC_CC_NOTE_ENTRANCE_TUNNEL_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -930, 2437, 0), + RC(RC_CC_NOTE_ENTRANCE_TUNNEL_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -380, 2236, 0), + RC(RC_CC_NOTE_ENTRANCE_TUNNEL_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 170, 2155, 0), + RC(RC_CC_NOTE_FAST_SAWBLADES_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -500, 1695), + RC(RC_CC_NOTE_FAST_SAWBLADES_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -500, 1130), + RC(RC_CC_NOTE_FAST_SAWBLADES_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -500, 555), + RC(RC_CC_NOTE_FAST_SAWBLADES_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -500, -20), + RC(RC_CC_NOTE_FAST_SAWBLADES_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -500, -600), + RC(RC_CC_NOTE_FAST_SAWBLADES_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -500, -1335), + RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, 1002, 5174), + RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 684, 999, 5391), + RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 780, 1004, 6071), + RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 566, 1007, 6712), + RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, 1008, 7036), + RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -566, 1015, 6712), + RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -792, 1005, 6071), + RC(RC_CC_NOTE_INSIDE_CLANKERS_MOUTH_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -685, 990, 5391), + RC(RC_CC_NOTE_LOWER_GILLS_TUNNEL_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -998, -387, 0), + RC(RC_CC_NOTE_LOWER_GILLS_TUNNEL_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -1399, -539, -10), + RC(RC_CC_NOTE_LOWER_GILLS_TUNNEL_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -1801, -493, -10), + RC(RC_CC_NOTE_LOWER_GILLS_TUNNEL_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -2199, -351, -10), + RC(RC_CC_NOTE_LOWER_GILLS_TUNNEL_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -2601, -8, -10), + RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -7636, 5162, -1164), + RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -8284, 5243, -911), + RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -8573, 5244, -353), + RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -9112, 5243, -182), + RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -7910, 5212, 804), + RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -7038, 5212, 754), + RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -6634, 5212, 238), + RC(RC_CC_NOTE_NEAR_LEVEL_ENTRANCE_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, -6065, 5211, 313), + RC(RC_CC_NOTE_NEAR_PINK_JINJO_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 1600, 953, 20), + RC(RC_CC_NOTE_NEAR_PINK_JINJO_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 1999, 1241, 45), + RC(RC_CC_NOTE_NEAR_PINK_JINJO_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 2399, 1258, 45), + RC(RC_CC_NOTE_NEAR_SNIPPETS_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 13028, 3362, -761), + RC(RC_CC_NOTE_NEAR_SNIPPETS_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 13540, 3362, -973), + RC(RC_CC_NOTE_NEAR_SNIPPETS_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 14096, 3362, -969), + RC(RC_CC_NOTE_NEAR_SNIPPETS_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 14602, 3362, -732), + RC(RC_CC_NOTE_NEAR_SNIPPETS_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 14590, 3362, 702), + RC(RC_CC_NOTE_NEAR_SNIPPETS_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 14105, 3361, 929), + RC(RC_CC_NOTE_NEAR_SNIPPETS_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 13538, 3362, 931), + RC(RC_CC_NOTE_NEAR_SNIPPETS_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 13018, 3362, 713), + RC(RC_CC_NOTE_NEAR_TAIL_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 8755, 4225, -1418), + RC(RC_CC_NOTE_NEAR_TAIL_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 8756, 4225, 1278), + RC(RC_CC_NOTE_NEAR_TAIL_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 9091, 4225, 1104), + RC(RC_CC_NOTE_NEAR_TAIL_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 9449, 4225, 923), + RC(RC_CC_NOTE_NEAR_TAIL_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 9636, 4225, 630), + RC(RC_CC_NOTE_NEAR_TAIL_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 9818, 4225, 339), + RC(RC_CC_NOTE_NEAR_TAIL_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 9818, 4225, -377), + RC(RC_CC_NOTE_NEAR_TAIL_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 9636, 4225, -679), + RC(RC_CC_NOTE_NEAR_TAIL_9, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 9438, 4225, -978), + RC(RC_CC_NOTE_NEAR_TAIL_10, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 9091, 4225, -1207), + RC(RC_CC_NOTE_PIPE_NEAR_SHOCK_PAD_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6582, 5284, 2536), + RC(RC_CC_NOTE_PIPE_NEAR_SHOCK_PAD_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6785, 5121, 2454), + RC(RC_CC_NOTE_PIPE_NEAR_SHOCK_PAD_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6989, 4958, 2388), + RC(RC_CC_NOTE_PIPE_NEAR_SHOCK_PAD_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 7194, 4787, 2321), + RC(RC_CC_NOTE_PIPE_NEAR_SHOCK_PAD_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 7401, 4611, 2247), + RC(RC_CC_NOTE_SLOW_SAWBLADES_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -425, 1610), + RC(RC_CC_NOTE_SLOW_SAWBLADES_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -425, 1010), + RC(RC_CC_NOTE_SLOW_SAWBLADES_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -425, 410), + RC(RC_CC_NOTE_SLOW_SAWBLADES_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -425, -190), + RC(RC_CC_NOTE_SLOW_SAWBLADES_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -425, -790), + RC(RC_CC_NOTE_SLOW_SAWBLADES_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 0, -425, -1390), + RC(RC_CC_NOTE_TOP_OF_CLANKER_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 3200, 4243, 0), + RC(RC_CC_NOTE_TOP_OF_CLANKER_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 3500, 4269, 2), + RC(RC_CC_NOTE_TOP_OF_CLANKER_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 3800, 4281, 0), + RC(RC_CC_NOTE_TOP_OF_CLANKER_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 4100, 4293, 0), + RC(RC_CC_NOTE_TOP_OF_CLANKER_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 5300, 4209, 0), + RC(RC_CC_NOTE_TOP_OF_CLANKER_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 5600, 4161, 0), + RC(RC_CC_NOTE_TOP_OF_CLANKER_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 5899, 4106, 0), + RC(RC_CC_NOTE_TOP_OF_CLANKER_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6200, 4072, 0), + RC(RC_CC_NOTE_TOP_OF_CLANKER_9, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6500, 4047, 0), + RC(RC_CC_NOTE_TOP_OF_CLANKER_10, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6800, 4063, 0), + RC(RC_CC_NOTE_UNDERWATER_LOCK_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6361, -3085, -908), + RC(RC_CC_NOTE_UNDERWATER_LOCK_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6716, -3085, -18), + RC(RC_CC_NOTE_UNDERWATER_LOCK_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6350, -3085, 866), + RC(RC_CC_NOTE_UNDERWATER_LOCK_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 5468, -3085, 1225), + RC(RC_CC_NOTE_UNDERWATER_LOCK_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 4583, -3085, 865), + RC(RC_CC_NOTE_UNDERWATER_LOCK_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 4220, -3085, -19), + RC(RC_CC_NOTE_UNDERWATER_LOCK_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 4584, -3085, -906), + RC(RC_CC_NOTE_UNDERWATER_LOCK_8, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 5469, -3085, -1273), + RC(RC_CC_NOTE_UNDERWATER_PIPE_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 3866, 1198, 2618), + RC(RC_CC_NOTE_UNDERWATER_PIPE_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 4427, 1188, 2637), + RC(RC_CC_NOTE_UNDERWATER_PIPE_3, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 4961, 1184, 2649), + RC(RC_CC_NOTE_UNDERWATER_PIPE_4, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 5417, 1184, 2626), + RC(RC_CC_NOTE_UNDERWATER_PIPE_5, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 5881, 1184, 2600), + RC(RC_CC_NOTE_UNDERWATER_PIPE_6, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6342, 1184, 2485), + RC(RC_CC_NOTE_UNDERWATER_PIPE_7, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 6804, 1184, 2361), + RC(RC_CC_NOTE_YELLOW_GRATE_1, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 2240, 5262, -2473), + RC(RC_CC_NOTE_YELLOW_GRATE_2, RCTYPE_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN, RI_MUSIC_NOTE_CLANKERS_CAVERN, NULL, 5270, 5261, -2937), + RC(RC_CCW_BLUE_EGG_AUTUMN_GNAWTYS_INTERIOR_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 825, 758, 531), + RC(RC_CCW_BLUE_EGG_AUTUMN_GNAWTYS_INTERIOR_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 682, 758, 583), + RC(RC_CCW_BLUE_EGG_AUTUMN_GNAWTYS_INTERIOR_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 536, 758, 628), + RC(RC_CCW_BLUE_EGG_AUTUMN_LEAF_NEAR_ENTRANCE_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -113, 304, 3001), + RC(RC_CCW_BLUE_EGG_AUTUMN_LEAF_NEAR_ENTRANCE_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 115, 605, 3001), + RC(RC_CCW_BLUE_EGG_AUTUMN_NABNUTS_WINDOW_INTERIOR_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -170, 0, -700), + RC(RC_CCW_BLUE_EGG_AUTUMN_NABNUTS_WINDOW_INTERIOR_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 0, -20, -630), + RC(RC_CCW_BLUE_EGG_AUTUMN_NABNUTS_WINDOW_INTERIOR_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 170, 0, -699), + RC(RC_CCW_BLUE_EGG_AUTUMN_NEAR_EYRIES_NEST_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -1362, 4419, 2014), + RC(RC_CCW_BLUE_EGG_AUTUMN_NEAR_EYRIES_NEST_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -1860, 4469, 1580), + RC(RC_CCW_BLUE_EGG_AUTUMN_NEAR_EYRIES_NEST_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -2181, 4519, 1118), + RC(RC_CCW_BLUE_EGG_AUTUMN_NEAR_MUMBOS_SKULL_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -5700, 40, -1000), + RC(RC_CCW_BLUE_EGG_AUTUMN_NEAR_MUMBOS_SKULL_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -5500, 40, -500), + RC(RC_CCW_BLUE_EGG_AUTUMN_NEAR_MUMBOS_SKULL_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -5350, 40, 0), + RC(RC_CCW_BLUE_EGG_AUTUMN_NEAR_TREEHOUSE_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 3513, 4102, -541), + RC(RC_CCW_BLUE_EGG_AUTUMN_NEAR_TREEHOUSE_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 3595, 4104, 478), + RC(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -3615, 2773, 1411), + RC(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4356, 2821, 356), + RC(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4920, 2778, 1222), + RC(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -3735, 2828, -787), + RC(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_5, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4431, 2830, -882), + RC(RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_6, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -5370, 2882, -787), + RC(RC_CCW_BLUE_EGG_ENTRANCE_HUB_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 3270, 103, -815), + RC(RC_CCW_BLUE_EGG_ENTRANCE_HUB_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 3483, 109, -341), + RC(RC_CCW_BLUE_EGG_ENTRANCE_HUB_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 3483, 99, 342), + RC(RC_CCW_BLUE_EGG_ENTRANCE_HUB_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 3270, 121, 815), + RC(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -3930, 4900, 316), + RC(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4378, 4900, 764), + RC(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -5018, 4900, 773), + RC(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -5468, 4900, 314), + RC(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_5, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -5468, 4900, -315), + RC(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_6, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -5018, 4900, -773), + RC(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_7, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4378, 4900, -764), + RC(RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_8, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -3930, 4900, -315), + RC(RC_CCW_BLUE_EGG_SPRING_INSIDE_MUMBOS_SKULL_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 510, 387, 0), + RC(RC_CCW_BLUE_EGG_SPRING_INSIDE_MUMBOS_SKULL_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 0, 398, 520), + RC(RC_CCW_BLUE_EGG_SPRING_INSIDE_MUMBOS_SKULL_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 0, 398, -520), + RC(RC_CCW_BLUE_EGG_SPRING_INSIDE_NABNUTS_HOUSE_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 472, 413, -237), + RC(RC_CCW_BLUE_EGG_SPRING_INSIDE_NABNUTS_HOUSE_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 383, 413, -295), + RC(RC_CCW_BLUE_EGG_SPRING_INSIDE_NABNUTS_HOUSE_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 287, 413, -357), + RC(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 975, 900, 2573), + RC(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 2566, 900, 968), + RC(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 2568, 900, -968), + RC(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 1950, 900, -1949), + RC(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_5, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 975, 900, -2574), + RC(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_6, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -50, 1050, -2750), + RC(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_7, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -975, 900, -2575), + RC(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_8, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -2579, 1100, -980), + RC(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_9, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -2579, 900, 980), + RC(RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_10, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -977, 900, 2573), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -2140, 2938, -1157), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -1696, 3050, -1731), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -1072, 3157, -2180), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 790, 3300, -2345), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_5, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 1427, 3300, -1995), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_6, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 1873, 3899, -1580), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_7, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 2267, 3963, -1018), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_8, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 2450, 4019, -394), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 4366, -599, -311), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 5404, -593, -734), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 5831, -589, 301), + RC(RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 4769, -600, 726), + RC(RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 4302, 3719, 583), + RC(RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 4214, 3719, 1076), + RC(RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 3653, 3719, 1587), + RC(RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 3080, 3719, 2063), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -633, 5, -4826), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -727, 5, -5426), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -635, 5, -6006), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 9, 5, -6099), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_5, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 634, 5, -6008), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_6, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 726, 5, -5426), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_7, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 636, 5, -4834), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_8, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 9, 5, -4734), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4815, 125, 200), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4930, 125, 0), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4815, 125, -201), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4585, 125, -200), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_5, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4470, 125, 0), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_6, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -4585, 125, 200), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -1153, 4019, 4293), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -1284, 4019, 4611), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -1599, 4019, 4747), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -2047, 4019, 4303), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_5, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -1920, 4019, 3996), + RC(RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_6, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -1603, 4019, 3851), + RC(RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -285, 513, -354), + RC(RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -395, 513, -280), + RC(RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -504, 513, -205), + RC(RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -577, 513, -110), + RC(RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_5, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -646, 513, -5), + RC(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 253, -500, -621), + RC(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 617, -499, -263), + RC(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 621, -499, 254), + RC(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_4, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 258, -500, 624), + RC(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_5, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -254, -500, 621), + RC(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_6, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -622, -499, 259), + RC(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_7, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -624, -499, -254), + RC(RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_8, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -262, -500, -619), + RC(RC_CCW_BLUE_EGG_WINTER_WINDOW_ABOVE_NABNUT_1, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 244, 150, -509), + RC(RC_CCW_BLUE_EGG_WINTER_WINDOW_ABOVE_NABNUT_2, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, 88, 250, 682), + RC(RC_CCW_BLUE_EGG_WINTER_WINDOW_ABOVE_NABNUT_3, RCTYPE_BLUE_EGG, LEVEL_8_CLICK_CLOCK_WOOD, RI_BLUE_EGG, NULL, -531, 450, -430), + RC(RC_CCW_EMPTY_HONEYCOMB_GNAWTYS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_EMPTY_HONEYCOMB_CLICK_CLOCK_WOOD, HONEYCOMB_D_CCW_GNAWTYS, 694, 998, 632), + RC(RC_CCW_EMPTY_HONEYCOMB_NABNUTS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_EMPTY_HONEYCOMB_CLICK_CLOCK_WOOD, HONEYCOMB_E_CCW_NABNUTS, 640, 513, -202), + RC(RC_CCW_EXTRA_LIFE_AUTUMN_BEHIND_GNAWTYS_FIRE, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, -225, 640, 506), + RC(RC_CCW_EXTRA_LIFE_AUTUMN_SNAREBEAR_NEAR_TREEHOUSE, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, 4050, 4284, 1010), + RC(RC_CCW_EXTRA_LIFE_AUTUMN_TOP_ROOM, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, -310, 730, -856), + RC(RC_CCW_EXTRA_LIFE_SPRING_BRANCHES_ABOVE_MUMBOS_SKULL, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, -4993, 2896, -944), + RC(RC_CCW_EXTRA_LIFE_SPRING_SNAREBEAR_IN_THE_LAKE, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, 5100, 425, 0), + RC(RC_CCW_EXTRA_LIFE_SPRING_TOP_ROOM_BY_THE_JIGGY, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, -693, 2, 528), + RC(RC_CCW_EXTRA_LIFE_SPRING_TOP_ROOM_IN_THE_BRANCHES, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, -310, 730, -855), + RC(RC_CCW_EXTRA_LIFE_SUMMER_NEAR_THE_BIG_FLOWER, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, 3604, 22, -4012), + RC(RC_CCW_EXTRA_LIFE_SUMMER_TREEHOUSE, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, 5848, 4244, 612), + RC(RC_CCW_EXTRA_LIFE_SUMMER_TOP_ROOM, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, 833, 441, 133), + RC(RC_CCW_EXTRA_LIFE_WINTER_BENEATH_SIR_SLUSH, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, -3157, 300, -3149), + RC(RC_CCW_EXTRA_LIFE_WINTER_UNDER_THE_ICY_LAKE, RCTYPE_EXTRA_LIFE, LEVEL_8_CLICK_CLOCK_WOOD, RI_EXTRA_LIFE, NULL, 3078, -338, 3076), + RC(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_ABOVE_THE_LAKE_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_ABOVE_THE_LAKE_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_ABOVE_THE_LAKE_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_GRASS_NEAR_THE_ENTRANCE_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_GRASS_NEAR_THE_ENTRANCE_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_GRASS_NEAR_THE_ENTRANCE_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_IN_THE_TREEHOUSE_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_IN_THE_TREEHOUSE_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_IN_THE_TREEHOUSE_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_LEFT_OF_SUMMER_DOOR_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_LEFT_OF_SUMMER_DOOR_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_LEFT_OF_SUMMER_DOOR_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_RIGHT_OF_SUMMER_DOOR_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_RIGHT_OF_SUMMER_DOOR_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_RIGHT_OF_SUMMER_DOOR_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_BY_THE_BIG_FLOWER_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_BY_THE_BIG_FLOWER_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_BY_THE_BIG_FLOWER_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_GRASS_NEAR_THE_ENTRANCE_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_GRASS_NEAR_THE_ENTRANCE_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_GRASS_NEAR_THE_ENTRANCE_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_UNDER_THE_TREEHOUSE_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_UNDER_THE_TREEHOUSE_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SPRING_UNDER_THE_TREEHOUSE_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_DRIED_UP_LAKE_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_DRIED_UP_LAKE_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_DRIED_UP_LAKE_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_GRASS_NEAR_THE_ENTRANCE_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_GRASS_NEAR_THE_ENTRANCE_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_GRASS_NEAR_THE_ENTRANCE_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_OUTSIDE_NABNUTS_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_OUTSIDE_NABNUTS_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_OUTSIDE_NABNUTS_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_AROUND_THE_TREE_BASE_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_AROUND_THE_TREE_BASE_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_AROUND_THE_TREE_BASE_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_INSIDE_MUMBOS_SKULL_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_INSIDE_MUMBOS_SKULL_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_INSIDE_MUMBOS_SKULL_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_OUTSIDE_THE_TREEHOUSE_1, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_OUTSIDE_THE_TREEHOUSE_2, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_HONEYCOMB_BEEHIVE_WINTER_OUTSIDE_THE_TREEHOUSE_3, RCTYPE_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_CCW_JIGGY_EYRIE, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, RI_JIGGY_CLICK_CLOCK_WOOD, JIGGY_49_CCW_EYRIE, 0, 0, 0), + RC(RC_CCW_JIGGY_FLOWER, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, RI_JIGGY_CLICK_CLOCK_WOOD, JIGGY_4D_CCW_FLOWER, 0, 0, 0), + RC(RC_CCW_JIGGY_GNAWTY, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, RI_JIGGY_CLICK_CLOCK_WOOD, JIGGY_4B_CCW_GNAWTY, 240, 600, 75), + RC(RC_CCW_JIGGY_HOUSE, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, RI_JIGGY_CLICK_CLOCK_WOOD, JIGGY_48_CCW_HOUSE, 6070, 4244, -113), + RC(RC_CCW_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, RI_JIGGY_CLICK_CLOCK_WOOD, JIGGY_47_CCW_JINJO, 0, 0, 0), + RC(RC_CCW_JIGGY_NABNUT, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, RI_JIGGY_CLICK_CLOCK_WOOD, JIGGY_4A_CCW_NABNUT, 0, 0, 0), + RC(RC_CCW_JIGGY_SUMMER_LEAF_JUMPS, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, RI_JIGGY_CLICK_CLOCK_WOOD, JIGGY_4E_CCW_SUMMER_LEAF_JUMPS, 2215, 2616, 2142), + RC(RC_CCW_JIGGY_TOP_ROOM, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, RI_JIGGY_CLICK_CLOCK_WOOD, JIGGY_50_CCW_TOP_ROOM, 0, 17, 225), + RC(RC_CCW_JIGGY_TREE_TOP, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, RI_JIGGY_CLICK_CLOCK_WOOD, JIGGY_4F_CCW_TREE_TOP, 0, 7625, 3100), + RC(RC_CCW_JIGGY_ZUBBAS, RCTYPE_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD, RI_JIGGY_CLICK_CLOCK_WOOD, JIGGY_4C_CCW_ZUBBAS, 0, 0, 125), + RC(RC_CCW_JINJO_BLUE, RCTYPE_JINJO, LEVEL_8_CLICK_CLOCK_WOOD, RI_JINJO_BLUE_CLICK_CLOCK_WOOD, NULL, -6775, 1301, 0), + RC(RC_CCW_JINJO_GREEN, RCTYPE_JINJO, LEVEL_8_CLICK_CLOCK_WOOD, RI_JINJO_GREEN_CLICK_CLOCK_WOOD, NULL, 0, 5760, -3330), + RC(RC_CCW_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_8_CLICK_CLOCK_WOOD, RI_JINJO_ORANGE_CLICK_CLOCK_WOOD, NULL, -1592, 900, -6073), + RC(RC_CCW_JINJO_PINK, RCTYPE_JINJO, LEVEL_8_CLICK_CLOCK_WOOD, RI_JINJO_PINK_CLICK_CLOCK_WOOD, NULL, -225, 1039, -1100), + RC(RC_CCW_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_8_CLICK_CLOCK_WOOD, RI_JINJO_YELLOW_CLICK_CLOCK_WOOD, NULL, -3602, 0, 4266), + RC(RC_CCW_MUMBO_TOKEN_AUTUMN_FLOATING_ABOVE_BIG_CLUCKER, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_6A_CCW_AUTUMN_FLOATING_ABOVE_BIG_CLUCKER, 153, 1857, 2677), + RC(RC_CCW_MUMBO_TOKEN_AUTUMN_LEAF_NEAR_TREEHOUSE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_6D_CCW_AUTUMN_LEAF_NEAR_TREEHOUSE, 3405, 4107, 1003), + RC(RC_CCW_MUMBO_TOKEN_AUTUMN_SNAREBEAR_NEAR_ENTRANCE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_6B_CCW_AUTUMN_SNAREBEAR_NEAR_ENTRANCE, 500, 166, 5125), + RC(RC_CCW_MUMBO_TOKEN_AUTUMN_SNAREBEAR_TOP_OF_TREE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_6C_CCW_AUTUMN_SNAREBEAR_TOP_OF_TREE, 0, 5830, -3325), + RC(RC_CCW_MUMBO_TOKEN_AUTUMN_TOP_OF_BRANCH, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_6E_CCW_AUTUMN_TOP_OF_BRANCH, -5929, 2586, 61), + RC(RC_CCW_MUMBO_TOKEN_SPRING_FRONT_OF_EYRIE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_5D_CCW_SPRING_FRONT_OF_EYRIE, -2750, 4586, -513), + RC(RC_CCW_MUMBO_TOKEN_SPRING_NABNUTS_HOUSE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_62_CCW_SPRING_NABNUTS_HOUSE, -575, 300, -139), + RC(RC_CCW_MUMBO_TOKEN_SPRING_SNAREBEAR_NEAR_BIG_FLOWER, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_5F_CCW_SPRING_SNAREBEAR_NEAR_BIG_FLOWER, 1904, 105, -2706), + RC(RC_CCW_MUMBO_TOKEN_SPRING_SNAREBEAR_NEAR_ENTRANCE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_60_CCW_SPRING_SNAREBEAR_NEAR_ENTRANCE, 1000, 105, 5300), + RC(RC_CCW_MUMBO_TOKEN_SPRING_THORN_FIELD_FRONT_OF_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_5E_CCW_SPRING_THORN_FIELD_FRONT_OF_MUMBOS_SKULL, -2649, 0, -395), + RC(RC_CCW_MUMBO_TOKEN_SPRING_TOP_OF_BEEHIVE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_61_CCW_SPRING_TOP_OF_BEEHIVE, 0, 3513, -5240), + RC(RC_CCW_MUMBO_TOKEN_SPRING_TOP_OF_BRANCH, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_5C_CCW_SPRING_TOP_OF_BRANCH, -4053, 2894, 587), + RC(RC_CCW_MUMBO_TOKEN_SPRING_UNFINISHED_WOOD_TREEHOUSE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_5B_CCW_SPRING_UNFINISHED_WOOD_TREEHOUSE, 6134, 4244, 306), + RC(RC_CCW_MUMBO_TOKEN_SUMMER_BIG_FLOWER_FIELD, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_64_CCW_SUMMER_BIG_FLOWER_FIELD, -3578, 40, -4259), + RC(RC_CCW_MUMBO_TOKEN_SUMMER_ENTRANCE_GNAWTYS_HOUSE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_67_CCW_SUMMER_ENTRANCE_GNAWTYS_HOUSE, 2700, -600, 0), + RC(RC_CCW_MUMBO_TOKEN_SUMMER_FLOATING_ABOVE_BIG_CLUCKER, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_68_CCW_SUMMER_FLOATING_ABOVE_BIG_CLUCKER, 2043, 3534, 1799), + RC(RC_CCW_MUMBO_TOKEN_SUMMER_INSIDE_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_69_CCW_SUMMER_INSIDE_MUMBOS_SKULL, 0, 416, 500), + RC(RC_CCW_MUMBO_TOKEN_SUMMER_PLATFORMS_BEFORE_EYRIES_NEST, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_63_CCW_SUMMER_PLATFORMS_BEFORE_EYRIES_NEST, -1861, 4469, 1583), + RC(RC_CCW_MUMBO_TOKEN_SUMMER_SNAREBEAR_NEAR_THORN_FIELD, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_65_CCW_SUMMER_SNAREBEAR_NEAR_THORN_FIELD, -3855, 1428, 3840), + RC(RC_CCW_MUMBO_TOKEN_SUMMER_TOP_OF_BRANCH, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_66_CCW_SUMMER_TOP_OF_BRANCH, -4661, 2800, -1248), + RC(RC_CCW_MUMBO_TOKEN_WINTER_BIG_FLOWER, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_6F_CCW_WINTER_BIG_FLOWER, 0, 105, -5400), + RC(RC_CCW_MUMBO_TOKEN_WINTER_BROKEN_BEEHIVE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_71_CCW_WINTER_BROKEN_BEEHIVE, 0, 3138, -3696), + RC(RC_CCW_MUMBO_TOKEN_WINTER_FROZEN_RIVER_NEAR_FLIGHT_PAD, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_70_CCW_WINTER_FROZEN_RIVER_NEAR_FLIGHT_PAD, 5950, -46, 0), + RC(RC_CCW_MUMBO_TOKEN_WINTER_SIR_SLUSH_BETWEEN_BIG_FLOWER_AND_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_73_CCW_WINTER_SIR_SLUSH_BETWEEN_BIG_FLOWER_AND_MUMBOS_SKULL, -3157, 300, -3149), + RC(RC_CCW_MUMBO_TOKEN_WINTER_WALKWAY_FRONT_OF_NABNUTS_HOUSE, RCTYPE_MUMBO_TOKEN, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUMBO_TOKEN, MUMBOTOKEN_72_CCW_WINTER_WALKWAY_FRONT_OF_NABNUTS_HOUSE, 40, 3969, 5000), + RC(RC_CCW_NOTE_AUTUMN_BEEHIVE_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -674, -1, 925), + RC(RC_CCW_NOTE_AUTUMN_BEEHIVE_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -674, 0, -900), + RC(RC_CCW_NOTE_AUTUMN_BEEHIVE_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 675, -2, 925), + RC(RC_CCW_NOTE_AUTUMN_BEEHIVE_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 675, 0, -674), + RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -3929, 4900, 312), + RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -4375, 4900, 765), + RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -5024, 4900, 766), + RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -5471, 4900, 312), + RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -5471, 4900, -313), + RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_6, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -5024, 4900, -766), + RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_7, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -4376, 4900, -766), + RC(RC_CCW_NOTE_AUTUMN_EYRIES_NEST_8, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -3929, 4900, -313), + RC(RC_CCW_NOTE_AUTUMN_GNAWTYS_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 768, 998, 596), + RC(RC_CCW_NOTE_AUTUMN_GNAWTYS_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 613, 998, 664), + RC(RC_CCW_NOTE_AUTUMN_INSIDE_MUMBOS_SKULL_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -359, 379, -359), + RC(RC_CCW_NOTE_AUTUMN_INSIDE_MUMBOS_SKULL_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -360, 398, 375), + RC(RC_CCW_NOTE_AUTUMN_INSIDE_MUMBOS_SKULL_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 362, 379, -365), + RC(RC_CCW_NOTE_AUTUMN_INSIDE_MUMBOS_SKULL_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 363, 398, 364), + RC(RC_CCW_NOTE_AUTUMN_INSIDE_NABNUTS_HOUSE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 288, 413, -357), + RC(RC_CCW_NOTE_AUTUMN_INSIDE_NABNUTS_HOUSE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 382, 413, -296), + RC(RC_CCW_NOTE_AUTUMN_INSIDE_NABNUTS_HOUSE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 471, 413, -235), + RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -968, 900, 2578), + RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 969, 900, 2569), + RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 2569, 900, 969), + RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 2570, 900, -970), + RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 1950, 900, -1950), + RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_6, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 970, 900, -2569), + RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_7, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -50, 1100, -2750), + RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_8, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -970, 900, -2570), + RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_9, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -2584, 1100, -971), + RC(RC_CCW_NOTE_AUTUMN_LOWER_TREE_LEDGE_10, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -2577, 900, 972), + RC(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 950, 10, -6531), + RC(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 475, 10, -6599), + RC(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 0, 10, -6640), + RC(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -475, 10, -6599), + RC(RC_CCW_NOTE_AUTUMN_NEAR_BIG_FLOWER_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -950, 10, -6531), + RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 1905, 170, -2705), + RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 1905, 250, -2705), + RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_BIG_FLOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 1905, 330, -2705), + RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -3801, 1452, 3790), + RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -3801, 1532, 3790), + RC(RC_CCW_NOTE_AUTUMN_SNAREBEAR_NEAR_ENTRANCE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -3801, 1612, 3790), + RC(RC_CCW_NOTE_ENTRANCE_HUB_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 816, 8, 3277), + RC(RC_CCW_NOTE_ENTRANCE_HUB_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 342, 2, 3477), + RC(RC_CCW_NOTE_ENTRANCE_HUB_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -342, 2, 3477), + RC(RC_CCW_NOTE_ENTRANCE_HUB_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -818, 8, 3275), + RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_BIG_FLOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -2975, 300, -2975), + RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_BIG_FLOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -3150, 307, -3150), + RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_BIG_FLOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -3325, 300, -3325), + RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_MUMBOS_SKULL_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -2700, 900, 2700), + RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_MUMBOS_SKULL_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -2900, 900, 2900), + RC(RC_CCW_NOTE_SPRING_LEDGE_NEAR_MUMBOS_SKULL_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -3100, 921, 3100), + RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 2875, 894, 2875), + RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 3075, 876, 3075), + RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 3275, 845, 3274), + RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 2826, 1275, -2825), + RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 3025, 1275, -3025), + RC(RC_CCW_NOTE_SPRING_LEDGE_OVER_LAKE_6, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 3225, 1275, -3225), + RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 0, 900, 2750), + RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 1950, 900, 1950), + RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 2750, 900, 0), + RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -1950, 937, -1950), + RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -2750, 900, 0), + RC(RC_CCW_NOTE_SPRING_LOWER_TREE_LEDGE_6, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -1950, 1350, 1950), + RC(RC_CCW_NOTE_SPRING_NEAR_BIG_FLOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 500, 59, -4950), + RC(RC_CCW_NOTE_SPRING_NEAR_BIG_FLOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -500, 48, -4950), + RC(RC_CCW_NOTE_SPRING_NEAR_BIG_FLOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -500, 52, -5850), + RC(RC_CCW_NOTE_SPRING_NEAR_BIG_FLOWER_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 500, 52, -5850), + RC(RC_CCW_NOTE_SUMMER_GNAWTYS_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 2201, -600, 0), + RC(RC_CCW_NOTE_SUMMER_GNAWTYS_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 1700, -589, 0), + RC(RC_CCW_NOTE_SUMMER_LEAF_NEAR_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -123, 308, 3059), + RC(RC_CCW_NOTE_SUMMER_LEAF_NEAR_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 115, 608, 3056), + RC(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 0, 3300, -2750), + RC(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 0, 3310, -2950), + RC(RC_CCW_NOTE_SUMMER_NEAR_BEEHIVE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 0, 3350, -3150), + RC(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 700, 4819, 4750), + RC(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 400, 4819, 4450), + RC(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 0, 4819, 4400), + RC(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -400, 4819, 4450), + RC(RC_CCW_NOTE_SUMMER_OUTSIDE_NABNUTS_HOUSE_5, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -700, 4819, 4750), + RC(RC_CCW_NOTE_SUMMER_OUTSIDE_TREEHOUSE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 4728, 4244, -522), + RC(RC_CCW_NOTE_SUMMER_OUTSIDE_TREEHOUSE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 4671, 4243, -329), + RC(RC_CCW_NOTE_SUMMER_OUTSIDE_TREEHOUSE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 4562, 4243, 54), + RC(RC_CCW_NOTE_SUMMER_OUTSIDE_TREEHOUSE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 4507, 4244, 249), + RC(RC_CCW_NOTE_WINTER_NEAR_NABNUTS_HOUSE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -1150, 4019, 4300), + RC(RC_CCW_NOTE_WINTER_NEAR_NABNUTS_HOUSE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -1599, 4019, 4750), + RC(RC_CCW_NOTE_WINTER_NEAR_NABNUTS_HOUSE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -2051, 4019, 4300), + RC(RC_CCW_NOTE_WINTER_NEAR_NABNUTS_HOUSE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -1599, 4019, 3851), + RC(RC_CCW_NOTE_WINTER_TOP_OF_BRANCH_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -4034, 2899, -939), + RC(RC_CCW_NOTE_WINTER_TOP_OF_BRANCH_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -4654, 2800, -1243), + RC(RC_CCW_NOTE_WINTER_TOP_OF_BRANCH_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -4040, 2894, 583), + RC(RC_CCW_NOTE_WINTER_TOP_OF_BRANCH_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -4652, 2800, 647), + RC(RC_CCW_NOTE_WINTER_TOP_OF_TREEHOUSE_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 4741, 4958, -106), + RC(RC_CCW_NOTE_WINTER_TOP_OF_TREEHOUSE_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 5156, 4957, 13), + RC(RC_CCW_NOTE_WINTER_TOP_OF_TREEHOUSE_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 5571, 4957, 132), + RC(RC_CCW_NOTE_WINTER_TOP_OF_TREEHOUSE_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, 5987, 4958, 252), + RC(RC_CCW_NOTE_WINTER_TREETOP_PLATFORMS_1, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -2637, 4569, -871), + RC(RC_CCW_NOTE_WINTER_TREETOP_PLATFORMS_2, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -2308, 4869, -1528), + RC(RC_CCW_NOTE_WINTER_TREETOP_PLATFORMS_3, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -1691, 5210, -2199), + RC(RC_CCW_NOTE_WINTER_TREETOP_PLATFORMS_4, RCTYPE_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD, RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, NULL, -764, 5590, -2634), + RC(RC_CCW_SNS_YELLOW_EGG, RCTYPE_STOP_N_SWOP, LEVEL_8_CLICK_CLOCK_WOOD, RI_STOP_N_SWOP_EGG_YELLOW, SNS_ITEM_EGG_YELLOW, 556, 150, 47), + RC(RC_FP_BLUE_EGG_BEHIND_IGLOO_1, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 1536, 3505, 9857), + RC(RC_FP_BLUE_EGG_BEHIND_IGLOO_2, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 1606, 3505, 9635), + RC(RC_FP_BLUE_EGG_BEHIND_IGLOO_3, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 1674, 3505, 9422), + RC(RC_FP_BLUE_EGG_BEHIND_IGLOO_4, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 1610, 3505, 9197), + RC(RC_FP_BLUE_EGG_BEHIND_IGLOO_5, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 1545, 3505, 8981), + RC(RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_1, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 404, 18, -2625), + RC(RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_2, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 654, 18, -3169), + RC(RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_3, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 1410, 17, -2859), + RC(RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_4, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 1185, 18, -2295), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_1, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -344, 2110, -200), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_2, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -195, 2110, -343), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_3, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -1, 2110, -399), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_4, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 199, 2110, -346), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_5, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 345, 2110, -199), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_6, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 395, 2110, 1), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_7, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 341, 2110, 196), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_8, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 199, 2110, 340), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_9, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 0, 2110, 393), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_10, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -198, 2110, 347), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_11, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -344, 2110, 198), + RC(RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_12, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -396, 2110, 0), + RC(RC_FP_BLUE_EGG_SNOWMANS_HAT_1, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -1465, 7354, 1066), + RC(RC_FP_BLUE_EGG_SNOWMANS_HAT_2, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -1961, 7227, 248), + RC(RC_FP_BLUE_EGG_SNOWMANS_HAT_3, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -1734, 7166, -667), + RC(RC_FP_BLUE_EGG_SNOWMANS_HAT_4, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -948, 7201, -1175), + RC(RC_FP_BLUE_EGG_SNOWMANS_HAT_5, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -33, 7313, -984), + RC(RC_FP_BLUE_EGG_SNOWMANS_HAT_6, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 496, 7442, -179), + RC(RC_FP_BLUE_EGG_SNOWMANS_HAT_7, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, 278, 7505, 757), + RC(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_1, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -3128, -168, -4645), + RC(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_2, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -2939, -168, -4791), + RC(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_3, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -2759, -168, -4928), + RC(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_4, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -2552, -168, -5061), + RC(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_5, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -2367, -168, -5166), + RC(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_6, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -2165, -168, -5146), + RC(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_7, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -1979, -168, -5120), + RC(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_8, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -1897, -168, -4931), + RC(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_9, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -1824, -168, -4732), + RC(RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_10, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -1758, -168, -4514), + RC(RC_FP_BLUE_EGG_WATER_POTTED_TREE_1, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -4112, -168, 5604), + RC(RC_FP_BLUE_EGG_WATER_POTTED_TREE_2, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -3753, -168, 6126), + RC(RC_FP_BLUE_EGG_WATER_POTTED_TREE_3, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -3887, -168, 6767), + RC(RC_FP_BLUE_EGG_WATER_POTTED_TREE_4, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -4440, -168, 7130), + RC(RC_FP_BLUE_EGG_WATER_POTTED_TREE_5, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -5069, -168, 6990), + RC(RC_FP_BLUE_EGG_WATER_POTTED_TREE_6, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -5424, -168, 6438), + RC(RC_FP_BLUE_EGG_WATER_POTTED_TREE_7, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -5280, -168, 5810), + RC(RC_FP_BLUE_EGG_WATER_POTTED_TREE_8, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -4753, -168, 5455), + RC(RC_FP_BLUE_EGG_WOZZAS_CAVE_1, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -6559, 0, -291), + RC(RC_FP_BLUE_EGG_WOZZAS_CAVE_2, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -7119, 0, -113), + RC(RC_FP_BLUE_EGG_WOZZAS_CAVE_3, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -7166, 0, 926), + RC(RC_FP_BLUE_EGG_WOZZAS_CAVE_4, RCTYPE_BLUE_EGG, LEVEL_5_FREEZEEZY_PEAK, RI_BLUE_EGG, NULL, -6599, 0, 1184), + RC(RC_FP_EMPTY_HONEYCOMB_UNDER_SIR_SLUSH, RCTYPE_EMPTY_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_EMPTY_HONEYCOMB_FREEZEEZY_PEAK, HONEYCOMB_A_FP_SIR_SLUSH, 4295, 441, 1268), + RC(RC_FP_EMPTY_HONEYCOMB_WOZZAS_CAVE, RCTYPE_EMPTY_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_EMPTY_HONEYCOMB_FREEZEEZY_PEAK, HONEYCOMB_9_FP_WOZZAS_CAVE, -6531, 135, 422), + RC(RC_FP_EXTRA_LIFE_ABOVE_MUMBOS_SKULL, RCTYPE_EXTRA_LIFE, LEVEL_5_FREEZEEZY_PEAK, RI_EXTRA_LIFE, NULL, 6992, 1390, -3159), + RC(RC_FP_EXTRA_LIFE_RACE_FINISH_LINE, RCTYPE_EXTRA_LIFE, LEVEL_5_FREEZEEZY_PEAK, RI_EXTRA_LIFE, NULL, -4450, 1591, -7407), + RC(RC_FP_EXTRA_LIFE_WOZZAS_CAVE, RCTYPE_EXTRA_LIFE, LEVEL_5_FREEZEEZY_PEAK, RI_EXTRA_LIFE, NULL, -7322, 0, 391), + RC(RC_FP_HONEYCOMB_BEEHIVE_NEAR_RACE_START_1, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_NEAR_RACE_START_2, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_NEAR_RACE_START_3, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_PRESENT_STACK_1, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_PRESENT_STACK_2, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_PRESENT_STACK_3, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_SCARF_START_1, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_SCARF_START_2, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_SCARF_START_3, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_SCARF_END_1, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_SCARF_END_2, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_HONEYCOMB_BEEHIVE_SCARF_END_3, RCTYPE_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_FP_JIGGY_BEAT_ALL_SIR_SLUSH, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, RI_JIGGY_FREEZEEZY_PEAK, JIGGY_31_FP_SIR_SLUSH, 0, 0 ,0), + RC(RC_FP_JIGGY_BOGGY_RACE_1, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, RI_JIGGY_FREEZEEZY_PEAK, JIGGY_30_FP_BOGGY_2, 0, 0 ,0), + RC(RC_FP_JIGGY_BOGGY_RACE_2, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, RI_JIGGY_FREEZEEZY_PEAK, JIGGY_2C_FP_BOGGY_3, 0, 0 ,0), + RC(RC_FP_JIGGY_IGLOO, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, RI_JIGGY_FREEZEEZY_PEAK, JIGGY_2E_FP_PRESENTS, 0, 0 ,0), + RC(RC_FP_JIGGY_INSIDE_THE_TREE, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, RI_JIGGY_FREEZEEZY_PEAK, JIGGY_2F_FP_XMAS_TREE, 0, 2305, 0), + RC(RC_FP_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, RI_JIGGY_FREEZEEZY_PEAK, JIGGY_29_FP_JINJO, 0, 0 ,0), + RC(RC_FP_JIGGY_SLED_TO_BOGGY, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, RI_JIGGY_FREEZEEZY_PEAK, JIGGY_2A_FP_BOGGY_1, 0, 0 ,0), + RC(RC_FP_JIGGY_SNOWMANS_BUTTONS, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, RI_JIGGY_FREEZEEZY_PEAK, JIGGY_2D_FP_SNOWMAN_BUTTONS, 0, 0 ,0), + RC(RC_FP_JIGGY_SNOWMANS_PIPE, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, RI_JIGGY_FREEZEEZY_PEAK, JIGGY_2B_FP_PIPE, -1019, 5936, 2047), + RC(RC_FP_JIGGY_WOZZA, RCTYPE_JIGGY, LEVEL_5_FREEZEEZY_PEAK, RI_JIGGY_FREEZEEZY_PEAK, JIGGY_32_FP_WOZZA, -4605, 822, -3938), + RC(RC_FP_JINJO_BLUE, RCTYPE_JINJO, LEVEL_5_FREEZEEZY_PEAK, RI_JINJO_BLUE_FREEZEEZY_PEAK, NULL, -2588, 5684, 60), + RC(RC_FP_JINJO_GREEN, RCTYPE_JINJO, LEVEL_5_FREEZEEZY_PEAK, RI_JINJO_GREEN_FREEZEEZY_PEAK, NULL, 6083, 450, 2736), + RC(RC_FP_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_5_FREEZEEZY_PEAK, RI_JINJO_ORANGE_FREEZEEZY_PEAK, NULL, 629, 366, 859), + RC(RC_FP_JINJO_PINK, RCTYPE_JINJO, LEVEL_5_FREEZEEZY_PEAK, RI_JINJO_PINK_FREEZEEZY_PEAK, NULL, -6851, 1193, 930), + RC(RC_FP_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_5_FREEZEEZY_PEAK, RI_JINJO_YELLOW_FREEZEEZY_PEAK, NULL, 0, 406, -511), + RC(RC_FP_MOLEHILL_BEAK_BOMB, RCTYPE_MOLEHILL, LEVEL_5_FREEZEEZY_PEAK, RI_MOLEHILL_BEAK_BOMB, ABILITY_1_BEAK_BOMB, -7462, 250, 1324), + RC(RC_FP_MUMBO_TOKEN_INSIDE_BOGGYS_IGLOO, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, RI_MUMBO_TOKEN, MUMBOTOKEN_28_FP_INSIDE_BOGGYS_IGLOO, 0, 10, -215), + RC(RC_FP_MUMBO_TOKEN_PRESENT_STACK, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, RI_MUMBO_TOKEN, MUMBOTOKEN_21_FP_BEHIND_PILE_PRESENT_BOXES, -5904, 260, 794), + RC(RC_FP_MUMBO_TOKEN_POTTED_TREE, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, RI_MUMBO_TOKEN, MUMBOTOKEN_25_FP_CHRISTMAS_TREE_POT, -4590, 350, 6344), + RC(RC_FP_MUMBO_TOKEN_SIR_SLUSH_NEAR_RACE_START, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, RI_MUMBO_TOKEN, MUMBOTOKEN_23_FP_INSIDE_SIR_SLUSH_NEAR_SNOWMANS_LEFT_FOOT, 1413, 18, 2802), + RC(RC_FP_MUMBO_TOKEN_SIR_SLUSH_NEAR_RACE_FINISH, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, RI_MUMBO_TOKEN, MUMBOTOKEN_24_FP_INSIDE_SIR_SLUSH_NEAR_SNOWMANS_RIGHT_FOOT, -4527, 211, -803), + RC(RC_FP_MUMBO_TOKEN_SLED_TO_BOGGY, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, RI_MUMBO_TOKEN, MUMBOTOKEN_26_FP_TIP_OF_SCARF, -793, 3020, 4389), + RC(RC_FP_MUMBO_TOKEN_SNOWMAN_LEFT_FOOT, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, RI_MUMBO_TOKEN, MUMBOTOKEN_1F_FP_SNOWMAN_LEFT_FOOT, -1815, 4, -1019), + RC(RC_FP_MUMBO_TOKEN_SNOWMAN_RIGHT_FOOT, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, RI_MUMBO_TOKEN, MUMBOTOKEN_20_FP_SNOWMAN_RIGHT_FOOT, 634, 5, 769), + RC(RC_FP_MUMBO_TOKEN_VILLAGE_CHIMNEY, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, RI_MUMBO_TOKEN, MUMBOTOKEN_22_FP_ABOVE_CHIMNEY_FLIGHT_PAD, 5296, 2013, 2729), + RC(RC_FP_MUMBO_TOKEN_WATER_BEHIND_SNOWMAN, RCTYPE_MUMBO_TOKEN, LEVEL_5_FREEZEEZY_PEAK, RI_MUMBO_TOKEN, MUMBOTOKEN_27_FP_WATER_BEHIND_SNOWMAN, -2424, -168, -4235), + RC(RC_FP_NOTE_FIRST_SLOPE_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -790, 3505, 8345), + RC(RC_FP_NOTE_FIRST_SLOPE_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -820, 3149, 7926), + RC(RC_FP_NOTE_FIRST_SLOPE_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -843, 2725, 7475), + RC(RC_FP_NOTE_FIRST_SLOPE_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -864, 2243, 7025), + RC(RC_FP_NOTE_FIRST_SLOPE_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -888, 1727, 6573), + RC(RC_FP_NOTE_HOUSE_NEAR_MUMBO_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 4268, 865, -589), + RC(RC_FP_NOTE_HOUSE_NEAR_MUMBO_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 4468, 844, -705), + RC(RC_FP_NOTE_HOUSE_NEAR_MUMBO_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 4659, 840, -815), + RC(RC_FP_NOTE_HOUSE_NEAR_SIR_SLUSH_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 3865, 843, 3023), + RC(RC_FP_NOTE_HOUSE_NEAR_SIR_SLUSH_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 3862, 844, 3237), + RC(RC_FP_NOTE_HOUSE_NEAR_SIR_SLUSH_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 3860, 861, 3464), + RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -362, 379, -362), + RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -500, 398, 0), + RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -355, 398, 362), + RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 362, 378, -362), + RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 500, 387, 0), + RC(RC_FP_NOTE_MUMBOS_SKULL_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 362, 398, 363), + RC(RC_FP_NOTE_NEAR_RACE_START_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 2656, 658, 5687), + RC(RC_FP_NOTE_NEAR_RACE_START_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 2700, 658, 6100), + RC(RC_FP_NOTE_NEAR_RACE_START_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 2271, 658, 6789), + RC(RC_FP_NOTE_NEAR_RACE_START_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 1892, 658, 6955), + RC(RC_FP_NOTE_NEAR_WOZZA_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -3938, 800, -3704), + RC(RC_FP_NOTE_NEAR_WOZZA_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -3705, 800, -4019), + RC(RC_FP_NOTE_NEAR_WOZZA_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -3661, 800, -4459), + RC(RC_FP_NOTE_NEAR_WOZZA_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -3920, 800, -4807), + RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 4044, 295, 2411), + RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 4039, 294, 106), + RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 3763, 294, 320), + RC(RC_FP_NOTE_POND_AROUND_SIR_SLUCH_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 3505, 295, 679), + RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 3467, 295, 1433), + RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_6, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 3654, 295, 1906), + RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_7, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 4404, 294, 243), + RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_8, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 4559, 295, 2482), + RC(RC_FP_NOTE_POND_AROUND_SIR_SLUSH_9, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 4930, 294, 1918), + RC(RC_FP_NOTE_POTTED_TREE_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -3430, 0, 6550), + RC(RC_FP_NOTE_POTTED_TREE_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -3926, 0, 7284), + RC(RC_FP_NOTE_POTTED_TREE_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -4844, 0, 7451), + RC(RC_FP_NOTE_POTTED_TREE_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -5579, 0, 6927), + RC(RC_FP_NOTE_POTTED_TREE_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -5754, 0, 6022), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -689, 600, -398), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -394, 600, -690), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 1, 600, -795), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 399, 600, -688), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 686, 600, -395), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 793, 600, 0), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_7, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 685, 600, 396), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_8, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 395, 600, 682), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_9, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 3, 600, 794), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_10, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -398, 600, 684), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_11, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -689, 600, 395), + RC(RC_FP_NOTE_POTTED_TREE_INTERIOR_12, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -791, 600, 0), + RC(RC_FP_NOTE_PRESENTS_NEAR_FLIGHT_PAD_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -5971, 893, 900), + RC(RC_FP_NOTE_PRESENTS_NEAR_FLIGHT_PAD_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -6190, 893, 899), + RC(RC_FP_NOTE_PRESENTS_NEAR_FLIGHT_PAD_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -6409, 893, 900), + RC(RC_FP_NOTE_PRESENTS_NEAR_FLIGHT_PAD_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -6630, 893, 900), + RC(RC_FP_NOTE_SECOND_SLOPE_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -900, 1727, 5675), + RC(RC_FP_NOTE_SECOND_SLOPE_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -883, 1196, 5183), + RC(RC_FP_NOTE_SECOND_SLOPE_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -867, 578, 4693), + RC(RC_FP_NOTE_SECOND_SLOPE_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -850, 0, 4201), + RC(RC_FP_NOTE_SIR_SLUSH_NEAR_SNOWMAN_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -4394, 0, -1052), + RC(RC_FP_NOTE_SIR_SLUSH_NEAR_SNOWMAN_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -4772, 0, -948), + RC(RC_FP_NOTE_SIR_SLUSH_NEAR_SNOWMAN_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -4668, 0, -570), + RC(RC_FP_NOTE_SIR_SLUSH_NEAR_SNOWMAN_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -4290, 0, -674), + RC(RC_FP_NOTE_SNOWMAN_HAT_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -672, 8736, 1047), + RC(RC_FP_NOTE_SNOWMAN_HAT_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1517, 8633, 860), + RC(RC_FP_NOTE_SNOWMAN_HAT_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -2000, 8492, 133), + RC(RC_FP_NOTE_SNOWMAN_HAT_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1804, 8434, -734), + RC(RC_FP_NOTE_SNOWMAN_HAT_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1046, 8503, -1179), + RC(RC_FP_NOTE_SNOWMAN_HAT_6, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -195, 8574, -1023), + RC(RC_FP_NOTE_SNOWMAN_HAT_7, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 257, 8711, -275), + RC(RC_FP_NOTE_SNOWMAN_HAT_8, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 80, 8749, 591), + RC(RC_FP_NOTE_SNOWMAN_LEFT_FOOT_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1956, 5, -25), + RC(RC_FP_NOTE_SNOWMAN_LEFT_FOOT_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -2176, 5, -559), + RC(RC_FP_NOTE_SNOWMAN_LEFT_FOOT_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1254, 5, -943), + RC(RC_FP_NOTE_SNOWMAN_LEFT_FOOT_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1026, 5, -403), + RC(RC_FP_NOTE_SNOWMAN_LEFT_FOOT_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1378, 5, 47), + RC(RC_FP_NOTE_SNOWMAN_RIGHT_FOOT_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 283, 4, 1246), + RC(RC_FP_NOTE_SNOWMAN_RIGHT_FOOT_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -301, 4, 1176), + RC(RC_FP_NOTE_SNOWMAN_RIGHT_FOOT_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -515, 5, 629), + RC(RC_FP_NOTE_SNOWMAN_RIGHT_FOOT_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -154, 5, 162), + RC(RC_FP_NOTE_SNOWMAN_RIGHT_FOOT_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 426, 5, 244), + RC(RC_FP_NOTE_SNOWMAN_SCARF_1, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -2337, 1669, -5188), + RC(RC_FP_NOTE_SNOWMAN_SCARF_2, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -2704, 1958, -4154), + RC(RC_FP_NOTE_SNOWMAN_SCARF_3, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1952, 2278, -3614), + RC(RC_FP_NOTE_SNOWMAN_SCARF_4, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1192, 2772, -4242), + RC(RC_FP_NOTE_SNOWMAN_SCARF_5, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -615, 3247, -4985), + RC(RC_FP_NOTE_SNOWMAN_SCARF_6, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 59, 3511, -4554), + RC(RC_FP_NOTE_SNOWMAN_SCARF_7, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -387, 3764, -3875), + RC(RC_FP_NOTE_SNOWMAN_SCARF_8, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1062, 4007, -4301), + RC(RC_FP_NOTE_SNOWMAN_SCARF_9, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -631, 4267, -4977), + RC(RC_FP_NOTE_SNOWMAN_SCARF_10, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 42, 4530, -4557), + RC(RC_FP_NOTE_SNOWMAN_SCARF_11, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -20, 4790, -3699), + RC(RC_FP_NOTE_SNOWMAN_SCARF_12, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -140, 5225, -3101), + RC(RC_FP_NOTE_SNOWMAN_SCARF_13, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -248, 5452, -2390), + RC(RC_FP_NOTE_SNOWMAN_SCARF_14, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -353, 5101, -1787), + RC(RC_FP_NOTE_SNOWMAN_SCARF_15, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -491, 5430, -1199), + RC(RC_FP_NOTE_SNOWMAN_SCARF_16, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -583, 5605, -698), + RC(RC_FP_NOTE_SNOWMAN_SCARF_17, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -1514, 5605, -99), + RC(RC_FP_NOTE_SNOWMAN_SCARF_18, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, -941, 5605, 844), + RC(RC_FP_NOTE_SNOWMAN_SCARF_19, RCTYPE_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK, RI_MUSIC_NOTE_FREEZEEZY_PEAK, NULL, 17, 5605, 266), + RC(RC_FP_SNS_ICE_KEY, RCTYPE_STOP_N_SWOP, LEVEL_5_FREEZEEZY_PEAK, RI_STOP_N_SWOP_ICE_KEY, SNS_ITEM_ICE_KEY, 1567, 583, 2416), + RC(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 50, 2009, -1065), + RC(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 50, 2009, -605), + RC(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 50, 2009, -145), + RC(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 50, 2009, 315), + RC(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_5, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 50, 2009, 775), + RC(RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_6, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 50, 2009, 1235), + RC(RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 2799, 0, -2071), + RC(RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 2911, 0, -1907), + RC(RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 3016, 0, -1764), + RC(RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 3120, 0, -1616), + RC(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -9, -1395, 1178), + RC(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 382, -1395, 1090), + RC(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 820, -1395, 1183), + RC(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 820, -1395, 1692), + RC(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_5, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 445, -1395, 1832), + RC(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_6, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 27, -1395, 1781), + RC(RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_7, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -185, -1395, 1477), + RC(RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 0, 800, 3600), + RC(RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 0, 800, 4001), + RC(RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 0, 800, 4400), + RC(RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 0, 800, 4800), + RC(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -6392, 122, 744), + RC(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -6732, 277, 765), + RC(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -7018, 426, 641), + RC(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -7264, 495, 389), + RC(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_5, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -7264, 496, -1392), + RC(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_6, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -7018, 426, -1640), + RC(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_7, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -6732, 277, -1767), + RC(RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_8, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -6392, 122, -1749), + RC(RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 2726, -176, -6393), + RC(RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 2986, -176, -6339), + RC(RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 3277, -176, -6332), + RC(RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 3552, -176, -6394), + RC(RC_GL_BLUE_EGG_MMM_ENTRANCE_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 1004, -800, 6827), + RC(RC_GL_BLUE_EGG_MMM_ENTRANCE_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 888, -802, 6826), + RC(RC_GL_BLUE_EGG_MMM_ENTRANCE_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -300, -792, 6800), + RC(RC_GL_BLUE_EGG_MMM_ENTRANCE_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -458, -768, 6764), + RC(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -1335, -1482, 1349), + RC(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -1835, -1486, 485), + RC(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -1832, -1486, -499), + RC(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -1344, -1492, -1346), + RC(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_5, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -499, -1492, -1836), + RC(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_6, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 491, -1490, -1832), + RC(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_7, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 1342, -1486, -1349), + RC(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_8, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 1833, -1492, -491), + RC(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_9, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 1846, -1492, 503), + RC(RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_10, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 1341, -1492, 1361), + RC(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -885, -749, 3037), + RC(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -98, -749, 3041), + RC(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 418, -750, 3577), + RC(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 422, -750, 4333), + RC(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_5, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -114, -750, 4871), + RC(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_6, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -864, -750, 4881), + RC(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_7, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -1412, -750, 4335), + RC(RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_8, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -1410, -749, 3551), + RC(RC_GL_BLUE_EGG_RBB_ENTRANCE_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -1499, 0, 310), + RC(RC_GL_BLUE_EGG_RBB_ENTRANCE_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -1630, 0, 310), + RC(RC_GL_BLUE_EGG_RBB_ENTRANCE_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -1630, 0, 180), + RC(RC_GL_BLUE_EGG_RBB_ENTRANCE_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -1499, 0, 180), + RC(RC_GL_BLUE_EGG_RBB_PUZZLE_BOARD_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 7900, 1750, -1445), + RC(RC_GL_BLUE_EGG_RBB_PUZZLE_BOARD_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 7900, 1750, -1358), + RC(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_1, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -898, 0, -630), + RC(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_2, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -126, 0, -637), + RC(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_3, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 671, 0, -637), + RC(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_4, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, 671, 0, 631), + RC(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_5, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -112, 0, 630), + RC(RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_6, RCTYPE_BLUE_EGG, LEVEL_6_LAIR, RI_BLUE_EGG, NULL, -899, 0, 630), + RC(RC_GL_EXTRA_LIFE_ABOVE_CLICK_CLOCK_WOODS_ENTRANCE, RCTYPE_EXTRA_LIFE, LEVEL_6_LAIR, RI_EXTRA_LIFE, NULL, 0, 1600, -3700), + RC(RC_GL_EXTRA_LIFE_ABOVE_THE_LOG_NEAR_BUBBLEGLOOP, RCTYPE_EXTRA_LIFE, LEVEL_6_LAIR, RI_EXTRA_LIFE, NULL, -1992, 878, -3052), + RC(RC_GL_EXTRA_LIFE_BACK_OF_GRUNTY_STATUES_HAT, RCTYPE_EXTRA_LIFE, LEVEL_6_LAIR, RI_EXTRA_LIFE, NULL, 2954, 1247, 100), + RC(RC_GL_EXTRA_LIFE_BEHIND_MUMBOS_SHACK, RCTYPE_EXTRA_LIFE, LEVEL_6_LAIR, RI_EXTRA_LIFE, NULL, -8689, -1781, -3192), + RC(RC_GL_EXTRA_LIFE_CLICK_CLOCK_WOODS_PUZZLE_ROOM, RCTYPE_EXTRA_LIFE, LEVEL_6_LAIR, RI_EXTRA_LIFE, NULL, 3599, -478, 2424), + RC(RC_GL_EXTRA_LIFE_MAD_MONSTER_MANSION_PUZZLE_ROOM, RCTYPE_EXTRA_LIFE, LEVEL_6_LAIR, RI_EXTRA_LIFE, NULL, -838, 1950, 835), + RC(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_BGS_ENTRANCE_1, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_BGS_ENTRANCE_2, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_BGS_ENTRANCE_3, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_MMM_ENTRANCE_1, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_MMM_ENTRANCE_2, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BEHIND_MMM_ENTRANCE_3, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_LEFT_1, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_LEFT_2, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_LEFT_3, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_RIGHT_1, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_RIGHT_2, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_RIGHT_3, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_50_NOTE_DOOR_1, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_50_NOTE_DOOR_2, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_50_NOTE_DOOR_3, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CCW_PUZZLE_SWITCH_1, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CCW_PUZZLE_SWITCH_2, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CCW_PUZZLE_SWITCH_3, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_FIRST_GRUNTY_STATUE_1, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_FIRST_GRUNTY_STATUE_2, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_FIRST_GRUNTY_STATUE_3, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CC_ENTRANCE_1, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CC_ENTRANCE_2, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_CC_ENTRANCE_3, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_TTC_ENTRANCE_1, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_TTC_ENTRANCE_2, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_TTC_ENTRANCE_3, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_RBB_PUZZLE_1, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_RBB_PUZZLE_2, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_HONEYCOMB_BEEHIVE_NEAR_RBB_PUZZLE_3, RCTYPE_HONEYCOMB, LEVEL_6_LAIR, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GL_JIGGY_LOBBY, RCTYPE_JIGGY, LEVEL_6_LAIR, RI_JIGGY_GRUNTILDAS_LAIR, JIGGY_33_LAIR_1ST_JIGGY, -1505, 600, 123), + RC(RC_GL_JIGGY_WITCH_SWITCH_BUBBLEGLOOP_SWAMP, RCTYPE_JIGGY, LEVEL_6_LAIR, RI_JIGGY_GRUNTILDAS_LAIR, JIGGY_37_LAIR_BGS_WITCH_SWITCH, 0, 0, -20), + RC(RC_GL_JIGGY_WITCH_SWITCH_CLANKERS_CAVERN, RCTYPE_JIGGY, LEVEL_6_LAIR, RI_JIGGY_GRUNTILDAS_LAIR, JIGGY_35_LAIR_CC_WITCH_SWITCH, 0, 75, 156), + RC(RC_GL_JIGGY_WITCH_SWITCH_CLICK_CLOCK_WOOD, RCTYPE_JIGGY, LEVEL_6_LAIR, RI_JIGGY_GRUNTILDAS_LAIR, JIGGY_3C_LAIR_CCW_WITCH_SWITCH, 0, 3370, 2270), + RC(RC_GL_JIGGY_WITCH_SWITCH_FREEZEEZY_PEAK, RCTYPE_JIGGY, LEVEL_6_LAIR, RI_JIGGY_GRUNTILDAS_LAIR, JIGGY_38_LAIR_FP_WITCH_SWITCH, 4126, 2392, 6559), + RC(RC_GL_JIGGY_WITCH_SWITCH_GOBIS_VALLEY, RCTYPE_JIGGY, LEVEL_6_LAIR, RI_JIGGY_GRUNTILDAS_LAIR, JIGGY_3A_LAIR_GV_WITCH_SWITCH, -1290, 514, -787), + RC(RC_GL_JIGGY_WITCH_SWITCH_MAD_MONSTER_MANSION, RCTYPE_JIGGY, LEVEL_6_LAIR, RI_JIGGY_GRUNTILDAS_LAIR, JIGGY_39_LAIR_MMM_WITCH_SWITCH, 1597, 1011, -254), + RC(RC_GL_JIGGY_WITCH_SWITCH_MUMBOS_MOUNTAIN, RCTYPE_JIGGY, LEVEL_6_LAIR, RI_JIGGY_GRUNTILDAS_LAIR, JIGGY_34_LAIR_MM_WITCH_SWITCH, 4165, 1000, -2363), + RC(RC_GL_JIGGY_WITCH_SWITCH_RUSTY_BUCKET_BAY, RCTYPE_JIGGY, LEVEL_6_LAIR, RI_JIGGY_GRUNTILDAS_LAIR, JIGGY_3B_LAIR_RBB_WITCH_SWITCH, 0, 1200, 1650), + RC(RC_GL_JIGGY_WITCH_SWITCH_TREASURE_TROVE_COVE, RCTYPE_JIGGY, LEVEL_6_LAIR, RI_JIGGY_GRUNTILDAS_LAIR, JIGGY_36_LAIR_TTC_WITCH_SWITCH, 998, 783, 368), + RC(RC_GL_MUMBO_TOKEN_BEHIND_PURPLE_CAULDRON, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, RI_MUMBO_TOKEN, MUMBOTOKEN_51_LAIR_BEHIND_PURPLE_CAULDRON, 162, -750, 4611), + RC(RC_GL_MUMBO_TOKEN_TOP_OF_PIPE_IN_ORANGE_CAULDRON_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, RI_MUMBO_TOKEN, MUMBOTOKEN_53_LAIR_TOP_OF_PIPE_IN_ORANGE_CAULDRON_ROOM, -180, 351, -750), + RC(RC_GL_MUMBO_TOKEN_ABOVE_CC_ENTRANCE, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, RI_MUMBO_TOKEN, MUMBOTOKEN_54_LAIR_ABOVE_CC_ENTRANCE, 0, 850, -2450), + RC(RC_GL_MUMBO_TOKEN_CCW_JIGGY_PODIUM, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, RI_MUMBO_TOKEN, MUMBOTOKEN_52_LAIR_CCW_JIGGY_PODIUM, 4936, -478, 286), + RC(RC_GL_MUMBO_TOKEN_BEHIND_SARCOPHAGUS, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, RI_MUMBO_TOKEN, MUMBOTOKEN_55_LAIR_BEHIND_SARCOPHAGUS, -1486, 0, -922), + RC(RC_GL_MUMBO_TOKEN_ADVENT_TOP_WINDOW, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, RI_MUMBO_TOKEN, MUMBOTOKEN_56_LAIR_ADVENT_TOP_WINDOW, 4155, 1485, 6270), + RC(RC_GL_MUMBO_TOKEN_UNDERWATER_RBB_ENTRANCE_AREA, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, RI_MUMBO_TOKEN, MUMBOTOKEN_59_LAIR_UNDERWATER_RBB_ENTRANCE_AREA, 1764, -1400, -1136), + RC(RC_GL_MUMBO_TOKEN_WHIPCRACK_NEAR_MMM_JIGGY_PODIUM, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, RI_MUMBO_TOKEN, MUMBOTOKEN_5A_LAIR_WHIPCRACK_NEAR_MMM_JIGGY_PODIUM, -1140, 707, 1973), + RC(RC_GL_MUMBO_TOKEN_BEHIND_MUMBO_IN_CRYPT, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, RI_MUMBO_TOKEN, MUMBOTOKEN_57_LAIR_BEHIND_MUMBO_IN_CRYPT, 1488, 249, 0), + RC(RC_GL_MUMBO_TOKEN_ABOVE_NOTE_DOOR_WATER_AREA, RCTYPE_MUMBO_TOKEN, LEVEL_6_LAIR, RI_MUMBO_TOKEN, MUMBOTOKEN_58_LAIR_ABOVE_NOTE_DOOR_WATER_AREA, 1256, 2582, 0), + RC(RC_GV_BLUE_EGG_BEHIND_WATER_PYRAMID_1, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 387, 2730, -6645), + RC(RC_GV_BLUE_EGG_BEHIND_WATER_PYRAMID_2, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 17, 2730, -6645), + RC(RC_GV_BLUE_EGG_BEHIND_WATER_PYRAMID_3, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -342, 2730, -6645), + RC(RC_GV_BLUE_EGG_ENTRANCE_1, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 1325, -59, 9447), + RC(RC_GV_BLUE_EGG_ENTRANCE_2, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 845, -55, 9275), + RC(RC_GV_BLUE_EGG_ENTRANCE_3, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 781, -51, 8805), + RC(RC_GV_BLUE_EGG_ENTRANCE_4, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 1214, -51, 8493), + RC(RC_GV_BLUE_EGG_ENTRANCE_5, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 1647, -56, 8820), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_1, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 712, 20, -1636), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_2, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 612, 20, -1636), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_3, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 511, 20, -1636), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_4, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 517, 22, -1502), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_5, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 612, 22, -1502), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_6, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 712, 22, -1502), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_7, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -856, 25, -1243), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_8, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -775, 25, -1243), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_9, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -775, 25, -1140), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_10, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -855, 25, -1140), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_11, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -1139, 25, 880), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_12, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -1139, 25, 961), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_13, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -1240, 25, 964), + RC(RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_14, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -1240, 24, 884), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_1, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -985, 2432, 994), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_2, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -1056, 2432, 466), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_3, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -1137, 2432, -58), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_4, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -814, 2431, -394), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_5, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -472, 2432, -752), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_6, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 129, 2432, -740), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_7, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 740, 2432, -729), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_8, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 945, 2432, -392), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_9, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 1151, 2431, -43), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_10, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 1099, 2432, 473), + RC(RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_11, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 1039, 2432, 970), + RC(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_1, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -2251, 0, -50), + RC(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_2, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -2347, 0, 159), + RC(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_3, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -2550, 0, 251), + RC(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_4, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -2757, 0, 137), + RC(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_5, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -2850, 0, -50), + RC(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_6, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -2756, 0, -272), + RC(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_7, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -2550, 0, -349), + RC(RC_GV_BLUE_EGG_SPHYNX_INTERIOR_8, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -2359, 0, -293), + RC(RC_GV_BLUE_EGG_SPHYNX_LEFT_1, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -4379, 1623, 6824), + RC(RC_GV_BLUE_EGG_SPHYNX_LEFT_2, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -4674, 1659, 6885), + RC(RC_GV_BLUE_EGG_SPHYNX_LEFT_3, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -4530, 1665, 6538), + RC(RC_GV_BLUE_EGG_SPHYNX_RIGHT_1, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -4402, 1618, 5076), + RC(RC_GV_BLUE_EGG_SPHYNX_RIGHT_2, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -4551, 1663, 5336), + RC(RC_GV_BLUE_EGG_SPHYNX_RIGHT_3, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -4689, 1662, 5017), + RC(RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_1, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -671, 13, -369), + RC(RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_2, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -390, 13, 655), + RC(RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_3, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 354, 13, -645), + RC(RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_4, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 645, 13, 384), + RC(RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_1, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, -1168, 3325, -5619), + RC(RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_2, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 861, 3821, -5292), + RC(RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_3, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 526, 4316, -3580), + RC(RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_4, RCTYPE_BLUE_EGG, LEVEL_7_GOBIS_VALLEY, RI_BLUE_EGG, NULL, 523, 4316, -4952), + RC(RC_GV_EMPTY_HONEYCOMB_CACTUS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_EMPTY_HONEYCOMB_GOBIS_VALLEY, HONEYCOMB_B_GV_CACTUS, 2911, 3292, -3307), + RC(RC_GV_EMPTY_HONEYCOMB_GOBI, RCTYPE_EMPTY_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_EMPTY_HONEYCOMB_GOBIS_VALLEY, HONEYCOMB_C_GV_GOBI_3, -6885, 2383, 1335), + RC(RC_GV_EXTRA_LIFE_BEHIND_JINXY, RCTYPE_EXTRA_LIFE, LEVEL_7_GOBIS_VALLEY, RI_EXTRA_LIFE, NULL, -8948, 1332, 5500), + RC(RC_GV_EXTRA_LIFE_INSIDE_SANDYBUTTS_TOMB, RCTYPE_EXTRA_LIFE, LEVEL_7_GOBIS_VALLEY, RI_EXTRA_LIFE, NULL, 1282, 18, 1971), + RC(RC_GV_EXTRA_LIFE_ON_TOP_OF_WATER_PYRAMID, RCTYPE_EXTRA_LIFE, LEVEL_7_GOBIS_VALLEY, RI_EXTRA_LIFE, NULL, -230, 4820, -4421), + RC(RC_GV_HONEYCOMB_BEEHIVE_BEHIND_WATER_PYRAMID_1, RCTYPE_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GV_HONEYCOMB_BEEHIVE_BEHIND_WATER_PYRAMID_2, RCTYPE_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GV_HONEYCOMB_BEEHIVE_BEHIND_WATER_PYRAMID_3, RCTYPE_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GV_HONEYCOMB_BEEHIVE_NEAR_PUZZLE_PYRAMID_1, RCTYPE_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GV_HONEYCOMB_BEEHIVE_NEAR_PUZZLE_PYRAMID_2, RCTYPE_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GV_HONEYCOMB_BEEHIVE_NEAR_PUZZLE_PYRAMID_3, RCTYPE_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GV_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_1, RCTYPE_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GV_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_2, RCTYPE_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GV_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_3, RCTYPE_HONEYCOMB, LEVEL_7_GOBIS_VALLEY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_GV_JIGGY_ANCIENT_ONES, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, RI_JIGGY_GOBIS_VALLEY, JIGGY_46_GV_ANCIENT_ONES, 0, 0, 0), + RC(RC_GV_JIGGY_GOBI_1, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, RI_JIGGY_GOBIS_VALLEY, JIGGY_44_GV_GOBI_1, 0, 0, 0), + RC(RC_GV_JIGGY_GOBI_2, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, RI_JIGGY_GOBIS_VALLEY, JIGGY_45_GV_GOBI_2, 0, 0, 0), + RC(RC_GV_JIGGY_GRABBA, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, RI_JIGGY_GOBIS_VALLEY, JIGGY_3E_GV_GRABBA, -4644, 1875, -4831), + RC(RC_GV_JIGGY_HISTUP, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, RI_JIGGY_GOBIS_VALLEY, JIGGY_43_GV_HISTUP, -3, 1359, 15), + RC(RC_GV_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, RI_JIGGY_GOBIS_VALLEY, JIGGY_3D_GV_JINJO, 0, 0, 0), + RC(RC_GV_JIGGY_MATCHING_GAME, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, RI_JIGGY_GOBIS_VALLEY, JIGGY_40_GV_MATCHING_GAME, 0, 0, 0), + RC(RC_GV_JIGGY_MAZE, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, RI_JIGGY_GOBIS_VALLEY, JIGGY_41_GV_MAZE, -5008, 66, 62), + RC(RC_GV_JIGGY_SHYINX, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, RI_JIGGY_GOBIS_VALLEY, JIGGY_3F_GV_SHYINX, -2250, 1970, -49), + RC(RC_GV_JIGGY_WATER_PYRAMID, RCTYPE_JIGGY, LEVEL_7_GOBIS_VALLEY, RI_JIGGY_GOBIS_VALLEY, JIGGY_42_GV_WATER_PYRAMID, -1, 145, -23), + RC(RC_GV_JINJO_BLUE, RCTYPE_JINJO, LEVEL_7_GOBIS_VALLEY, RI_JINJO_BLUE_GOBIS_VALLEY, NULL, 58, 535, 1570), + RC(RC_GV_JINJO_GREEN, RCTYPE_JINJO, LEVEL_7_GOBIS_VALLEY, RI_JINJO_GREEN_GOBIS_VALLEY, NULL, 4952, 2538, 439), + RC(RC_GV_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_7_GOBIS_VALLEY, RI_JINJO_ORANGE_GOBIS_VALLEY, NULL, 2078, 1122, -50), + RC(RC_GV_JINJO_PINK, RCTYPE_JINJO, LEVEL_7_GOBIS_VALLEY, RI_JINJO_PINK_GOBIS_VALLEY, NULL, -4964, 0, 700), + RC(RC_GV_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_7_GOBIS_VALLEY, RI_JINJO_YELLOW_GOBIS_VALLEY, NULL, 3067, 447, 10270), + RC(RC_GV_MOLEHILL_TURBO_TALON, RCTYPE_MOLEHILL, LEVEL_7_GOBIS_VALLEY, RI_MOLEHILL_TURBO_TALON, ABILITY_11_TURBO_TALON, -6445, 2831, -822), + RC(RC_GV_MUMBO_TOKEN_BEHIND_SANDYBUTTS_SARCOPHAGUS, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, RI_MUMBO_TOKEN, MUMBOTOKEN_2F_GV_BEHIND_SANDYBUTTS_SARCOPHAGUS, -5514, 0, 138), + RC(RC_GV_MUMBO_TOKEN_BOTTOM_OF_MOAT, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, RI_MUMBO_TOKEN, MUMBOTOKEN_2B_GV_BOTTOM_OF_MOAT, 91, 535, -860), + RC(RC_GV_MUMBO_TOKEN_FRONT_OF_STAR_DOOR, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, RI_MUMBO_TOKEN, MUMBOTOKEN_2D_GV_FRONT_OF_STAR_DOOR, -230, 2843, -3091), + RC(RC_GV_MUMBO_TOKEN_INSIDE_JINXY, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, RI_MUMBO_TOKEN, MUMBOTOKEN_32_GV_INSIDE_JINXY, -2550, 0, -51), + RC(RC_GV_MUMBO_TOKEN_INSIDE_MEMORY_GAME_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, RI_MUMBO_TOKEN, MUMBOTOKEN_2E_GV_INSIDE_MEMORY_GAME_ROOM, 715, 248, 0), + RC(RC_GV_MUMBO_TOKEN_INSIDE_WATER_PYRAMID, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, RI_MUMBO_TOKEN, MUMBOTOKEN_30_GV_INSIDE_WATER_PYRAMID, -300, 1439, -1194), + RC(RC_GV_MUMBO_TOKEN_NEXT_TO_RUBEE, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, RI_MUMBO_TOKEN, MUMBOTOKEN_31_GV_NEXT_TO_RUBEE, 0, 107, -602), + RC(RC_GV_MUMBO_TOKEN_SAND_RIGHT_OF_JINXY, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, RI_MUMBO_TOKEN, MUMBOTOKEN_2A_GV_SAND_RIGHT_OF_JINXY, -5386, 1420, 10034), + RC(RC_GV_MUMBO_TOKEN_TOP_OF_JINXYS_NOSE, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, RI_MUMBO_TOKEN, MUMBOTOKEN_29_GV_TOP_OF_JINXYS_NOSE, -2149, 3340, 5867), + RC(RC_GV_MUMBO_TOKEN_TOP_OF_WATER_PYRAMID, RCTYPE_MUMBO_TOKEN, LEVEL_7_GOBIS_VALLEY, RI_MUMBO_TOKEN, MUMBOTOKEN_2C_GV_TOP_OF_WATER_PYRAMID, 64, 3484, 400), + RC(RC_GV_NOTE_DESERT_DOOR_ALCOVE_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -7178, 2372, 1754), + RC(RC_GV_NOTE_DESERT_DOOR_ALCOVE_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -7148, 2371, 1568), + RC(RC_GV_NOTE_DESERT_DOOR_ALCOVE_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -7123, 2371, 1404), + RC(RC_GV_NOTE_DESERT_DOOR_ALCOVE_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -7105, 2371, 1247), + RC(RC_GV_NOTE_DESERT_DOOR_ALCOVE_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -7082, 2372, 1091), + RC(RC_GV_NOTE_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 88, 460, 8403), + RC(RC_GV_NOTE_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -251, 697, 8089), + RC(RC_GV_NOTE_ENTRANCE_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -584, 894, 7778), + RC(RC_GV_NOTE_ENTRANCE_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -935, 1082, 7449), + RC(RC_GV_NOTE_ENTRANCE_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -1289, 1259, 7119), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -450, 19, -450), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -450, 19, 450), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 450, 19, -450), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 450, 19, 450), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_SIDE_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 4215, 2452, -715), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_SIDE_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 4815, 2452, -714), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 2395, 2130, -300), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 3090, 2730, -300), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 3090, 2730, 970), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_STAIRS_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 2395, 2130, 970), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 3792, 2656, 325), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 3930, 2849, 324), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 4070, 3040, 324), + RC(RC_GV_NOTE_MATCH_GAME_PYRAMID_TOP_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 4211, 3233, 324), + RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -4002, 0, 43), + RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3504, 0, -190), + RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -2735, 0, 203), + RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -1913, 3, 210), + RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 4729, 0, -45), + RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 4178, 0, 205), + RC(RC_GV_NOTE_MAZE_PYRAMID_INTERIOR_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 5400, 0, 326), + RC(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -464, 2770, 1610), + RC(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -464, 2170, 2305), + RC(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 684, 2770, 1610), + RC(RC_GV_NOTE_MAZE_PYRAMID_STAIRS_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 685, 2170, 2305), + RC(RC_GV_NOTE_MOAT_BOTTOM_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -908, 535, -472), + RC(RC_GV_NOTE_MOAT_BOTTOM_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -1182, 535, 457), + RC(RC_GV_NOTE_MOAT_BOTTOM_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -807, 535, 1318), + RC(RC_GV_NOTE_MOAT_BOTTOM_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 928, 535, 1291), + RC(RC_GV_NOTE_MOAT_BOTTOM_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 1234, 535, 411), + RC(RC_GV_NOTE_MOAT_BOTTOM_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 1055, 535, -458), + RC(RC_GV_NOTE_MOAT_EDGE_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -2111, 1830, 1016), + RC(RC_GV_NOTE_MOAT_EDGE_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -2100, 1830, 112), + RC(RC_GV_NOTE_MOAT_EDGE_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -2098, 1830, -785), + RC(RC_GV_NOTE_MOAT_EDGE_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -1455, 1830, -1432), + RC(RC_GV_NOTE_MOAT_EDGE_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -800, 1830, -2068), + RC(RC_GV_NOTE_MOAT_EDGE_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 110, 1830, -2068), + RC(RC_GV_NOTE_MOAT_EDGE_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 1019, 1830, -2068), + RC(RC_GV_NOTE_MOAT_EDGE_8, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 1671, 1830, -1416), + RC(RC_GV_NOTE_MOAT_EDGE_9, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 2307, 1837, -770), + RC(RC_GV_NOTE_NEAR_GRABBA_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3017, 1781, -5496), + RC(RC_GV_NOTE_NEAR_GRABBA_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3026, 1781, -5048), + RC(RC_GV_NOTE_NEAR_GRABBA_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3028, 1781, -4591), + RC(RC_GV_NOTE_NEAR_GRABBA_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3037, 1781, -4148), + RC(RC_GV_NOTE_NEAR_GRABBA_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3054, 1781, -3695), + RC(RC_GV_NOTE_NEAR_GRABBA_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3401, 1780, -3430), + RC(RC_GV_NOTE_NEAR_GRABBA_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3752, 1781, -3161), + RC(RC_GV_NOTE_NEAR_GRABBA_8, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -4116, 1780, -2895), + RC(RC_GV_NOTE_NEAR_GRABBA_9, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -4541, 1780, -2871), + RC(RC_GV_NOTE_NEAR_GRABBA_10, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -4958, 1781, -2855), + RC(RC_GV_NOTE_NEAR_GRABBA_11, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -5385, 1780, -2843), + RC(RC_GV_NOTE_NEAR_RUBEE_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -685, 0, -743), + RC(RC_GV_NOTE_NEAR_RUBEE_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -495, 0, -880), + RC(RC_GV_NOTE_NEAR_RUBEE_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -913, 0, 428), + RC(RC_GV_NOTE_NEAR_RUBEE_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -986, 0, 201), + RC(RC_GV_NOTE_NEAR_RUBEE_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 496, 0, -878), + RC(RC_GV_NOTE_NEAR_RUBEE_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 679, 0, -744), + RC(RC_GV_NOTE_NEAR_RUBEE_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 915, 0, 421), + RC(RC_GV_NOTE_NEAR_RUBEE_8, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 988, 0, 195), + RC(RC_GV_NOTE_NEAR_TURBO_TRAINERS_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 2925, 3426, -6331), + RC(RC_GV_NOTE_NEAR_TURBO_TRAINERS_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 3522, 3403, -6008), + RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3165, 1378, 7933), + RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3720, 1390, 8460), + RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -4276, 1402, 8984), + RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -4829, 1415, 9510), + RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -5713, 1379, 9342), + RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -6046, 1329, 8619), + RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -6367, 1281, 7928), + RC(RC_GV_NOTE_SAND_NEAR_SPHYNX_8, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -6724, 1233, 7210), + RC(RC_GV_NOTE_SPHYNX_FOOT_LEFT_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -2776, 1606, 6486), + RC(RC_GV_NOTE_SPHYNX_FOOT_LEFT_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3035, 1663, 6675), + RC(RC_GV_NOTE_SPHYNX_FOOT_LEFT_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3048, 1665, 6316), + RC(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -2814, 1605, 5292), + RC(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3083, 1666, 5488), + RC(RC_GV_NOTE_SPHYNX_FOOT_RIGHT_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3096, 1664, 5106), + RC(RC_GV_NOTE_SPHYNX_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3310, 0, -850), + RC(RC_GV_NOTE_SPHYNX_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -3317, 0, 748), + RC(RC_GV_NOTE_SPHYNX_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -1195, 1592, -50), + RC(RC_GV_NOTE_SPHYNX_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 95, 911, -50), + RC(RC_GV_NOTE_SPHYNX_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 1295, 274, -50), + RC(RC_GV_NOTE_SPHYNX_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 2249, 0, -829), + RC(RC_GV_NOTE_SPHYNX_INTERIOR_7, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 2265, 0, 753), + RC(RC_GV_NOTE_WATER_PYRAMID_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -5, 13, -757), + RC(RC_GV_NOTE_WATER_PYRAMID_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -776, 13, -3), + RC(RC_GV_NOTE_WATER_PYRAMID_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -14, 13, 734), + RC(RC_GV_NOTE_WATER_PYRAMID_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 729, 13, -11), + RC(RC_GV_NOTE_WATER_PYRAMID_TOP_1, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -1168, 3324, -3242), + RC(RC_GV_NOTE_WATER_PYRAMID_TOP_2, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, 1214, 3821, -3576), + RC(RC_GV_NOTE_WATER_PYRAMID_TOP_3, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -828, 3821, -3580), + RC(RC_GV_NOTE_WATER_PYRAMID_TOP_4, RCTYPE_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY, RI_MUSIC_NOTE_GOBIS_VALLEY, NULL, -489, 4316, -4946), + RC(RC_GV_SNS_BLUE_EGG, RCTYPE_STOP_N_SWOP, LEVEL_7_GOBIS_VALLEY, RI_STOP_N_SWOP_EGG_BLUE, SNS_ITEM_EGG_BLUE, 8, 470, -4141), + RC(RC_MM_BLUE_EGG_HUT_BUNDLE_1, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 0, 0, 0), + RC(RC_MM_BLUE_EGG_HUT_BUNDLE_2, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 0, 0, 0), + RC(RC_MM_BLUE_EGG_HUT_BUNDLE_3, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 0, 0, 0), + RC(RC_MM_BLUE_EGG_HUT_BUNDLE_4, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 0, 0, 0), + RC(RC_MM_BLUE_EGG_HUT_BUNDLE_5, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 0, 0, 0), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_1, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -131, 398, -496), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_2, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -362, 378, -362), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_3, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -487, 398, -146), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_4, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -493, 398, 101), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_5, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -352, 398, 371), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_6, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -131, 398, 496), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_7, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 136, 398, -499), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_8, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 361, 379, -363), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_9, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 498, 394, -129), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_10, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 495, 398, 133), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_11, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 359, 398, 362), + RC(RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_12, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 134, 379, 497), + RC(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_1, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -10, 1507, -125), + RC(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_2, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -80, 1503, -71), + RC(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_3, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -74, 1521, 19), + RC(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_4, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -3, 1510, 52), + RC(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_5, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 60, 1510, -87), + RC(RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_6, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, 67, 1510, 0), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_1, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -5548, 200, 5984), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_2, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -5706, 200, 5962), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_3, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -5835, 201, 5896), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_4, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -5911, 200, 5764), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_5, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -5967, 200, 5615), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_6, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -5927, 200, 5471), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_7, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -5858, 200, 5343), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_8, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -5732, 200, 5272), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_MIDDLE_LEDGE_1, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -5061, 298, 6090), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_MIDDLE_LEDGE_2, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -4881, 299, 6135), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_UPPER_LEDGE_1, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -3958, 600, 6084), + RC(RC_MM_BLUE_EGG_NEAR_CONGA_UPPER_LEDGE_2, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -3827, 600, 5997), + RC(RC_MM_BLUE_EGG_UNDER_RUINS_1, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -2840, 2355, -2408), + RC(RC_MM_BLUE_EGG_UNDER_RUINS_2, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -2811, 2355, -2445), + RC(RC_MM_BLUE_EGG_UNDER_RUINS_3, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -2776, 2355, -2494), + RC(RC_MM_BLUE_EGG_UNDER_RUINS_4, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -2743, 2355, -2538), + RC(RC_MM_BLUE_EGG_UNDER_RUINS_5, RCTYPE_BLUE_EGG, LEVEL_1_MUMBOS_MOUNTAIN, RI_BLUE_EGG, NULL, -2713, 2355, -2576), + RC(RC_MM_EMPTY_HONEYCOMB_HILL, RCTYPE_EMPTY_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN, RI_EMPTY_HONEYCOMB_MUMBOS_MOUNTAIN, HONEYCOMB_1_MM_HILL, 985, 484, 1681), + RC(RC_MM_EMPTY_HONEYCOMB_JUJU, RCTYPE_EMPTY_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN, RI_EMPTY_HONEYCOMB_MUMBOS_MOUNTAIN, HONEYCOMB_2_MM_JUJU, 4302, 2900, -1490), + RC(RC_MM_EXTRA_LIFE_HUT, RCTYPE_EXTRA_LIFE, LEVEL_1_MUMBOS_MOUNTAIN, RI_EXTRA_LIFE, NULL, 0, 0, 0), + RC(RC_MM_EXTRA_LIFE_TICKERS_TOWER, RCTYPE_EXTRA_LIFE, LEVEL_1_MUMBOS_MOUNTAIN, RI_EXTRA_LIFE, NULL, 223, 3563, -382), + RC(RC_MM_HONEYCOMB_BEEHIVE_BY_BIG_BUTT_1, RCTYPE_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MM_HONEYCOMB_BEEHIVE_BY_BIG_BUTT_2, RCTYPE_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MM_HONEYCOMB_BEEHIVE_BY_BIG_BUTT_3, RCTYPE_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MM_HONEYCOMB_BEEHIVE_BY_THE_HUTS_1, RCTYPE_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MM_HONEYCOMB_BEEHIVE_BY_THE_HUTS_2, RCTYPE_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MM_HONEYCOMB_BEEHIVE_BY_THE_HUTS_3, RCTYPE_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MM_JIGGY_CHIMPY, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, RI_JIGGY_MUMBOS_MOUNTAIN, JIGGY_9_MM_CHIMPY, 0, 0, 0), + RC(RC_MM_JIGGY_CONGA, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, RI_JIGGY_MUMBOS_MOUNTAIN, JIGGY_A_MM_CONGA, 0, 0, 0), + RC(RC_MM_JIGGY_HILL, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, RI_JIGGY_MUMBOS_MOUNTAIN, JIGGY_07_MM_HILL, 4335, 1485, 794), + RC(RC_MM_JIGGY_HUTS, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, RI_JIGGY_MUMBOS_MOUNTAIN, JIGGY_5_MM_HUTS, 0, 0, 0), + RC(RC_MM_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, RI_JIGGY_MUMBOS_MOUNTAIN, JIGGY_01_MM_JINJO, 1702, -41, 2941), + RC(RC_MM_JIGGY_JUJU, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, RI_JIGGY_MUMBOS_MOUNTAIN, JIGGY_4_MM_JUJU, 4309, 2374, -1487), + RC(RC_MM_JIGGY_MUMBOS_SKULL, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, RI_JIGGY_MUMBOS_MOUNTAIN, JIGGY_03_MM_MUMBOS_SKULL, 5580, 2756, -2708), + RC(RC_MM_JIGGY_ORANGE_PADS, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, RI_JIGGY_MUMBOS_MOUNTAIN, JIGGY_8_MM_ORANGE_PADS, 0, 0, 0), + RC(RC_MM_JIGGY_RUINS, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, RI_JIGGY_MUMBOS_MOUNTAIN, JIGGY_06_MM_RUINS, -3699, 2438, -2113), + RC(RC_MM_JIGGY_TICKERS_TOWER, RCTYPE_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN, RI_JIGGY_MUMBOS_MOUNTAIN, JIGGY_02_MM_TICKERS_TOWER, 373, 4221, -906), + RC(RC_MM_JINJO_BLUE, RCTYPE_JINJO, LEVEL_1_MUMBOS_MOUNTAIN, RI_JINJO_BLUE_MUMBOS_MOUNTAIN, NULL, 1702, -125, 2941), + RC(RC_MM_JINJO_GREEN, RCTYPE_JINJO, LEVEL_1_MUMBOS_MOUNTAIN, RI_JINJO_GREEN_MUMBOS_MOUNTAIN, NULL, 0, 0, 0), + RC(RC_MM_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_1_MUMBOS_MOUNTAIN, RI_JINJO_ORANGE_MUMBOS_MOUNTAIN, NULL, -3297, 2755, -1421), + RC(RC_MM_JINJO_PINK, RCTYPE_JINJO, LEVEL_1_MUMBOS_MOUNTAIN, RI_JINJO_PINK_MUMBOS_MOUNTAIN, NULL, 5876, 299, 2369), + RC(RC_MM_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_1_MUMBOS_MOUNTAIN, RI_JINJO_YELLOW_MUMBOS_MOUNTAIN, NULL, -4060, 1355, 1092), + RC(RC_MM_MOLEHILL_BEAK_BUSTER, RCTYPE_MOLEHILL, LEVEL_1_MUMBOS_MOUNTAIN, RI_MOLEHILL_BEAK_BUSTER, ABILITY_2_BEAK_BUSTER, 3943, 2155, -3422), + RC(RC_MM_MOLEHILL_TALON_TROT, RCTYPE_MOLEHILL, LEVEL_1_MUMBOS_MOUNTAIN, RI_MOLEHILL_TALON_TROT, ABILITY_10_TALON_TROT, -2550, 2255, -1217), + RC(RC_MM_MOLEHILL_USE_EGGS, RCTYPE_MOLEHILL, LEVEL_1_MUMBOS_MOUNTAIN, RI_MOLEHILL_EGGS, ABILITY_6_EGGS, -5926, 200, 6213), + RC(RC_MM_MUMBO_TOKEN_BEHIND_PINK_JINJO, RCTYPE_MUMBO_TOKEN, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUMBO_TOKEN, MUMBOTOKEN_04_MM_BEHIND_PINK_JINJO, 5855, 0, 2169), + RC(RC_MM_MUMBO_TOKEN_BEHIND_RUINS, RCTYPE_MUMBO_TOKEN, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUMBO_TOKEN, MUMBOTOKEN_02_MM_BEHIND_RUINS, -4869, 2255, -2506), + RC(RC_MM_MUMBO_TOKEN_INSIDE_TICKERS_TOWER, RCTYPE_MUMBO_TOKEN, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUMBO_TOKEN, MUMBOTOKEN_05_MM_INSIDE_TICKERS_TOWER, -343, 345, -518), + RC(RC_MM_MUMBO_TOKEN_STUMP_NEAR_CONGA, RCTYPE_MUMBO_TOKEN, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUMBO_TOKEN, MUMBOTOKEN_01_MM_STUMP_NEAR_CONGA, -4431, 475, 6183), + RC(RC_MM_MUMBO_TOKEN_UNDER_RAMP_TO_MUMBOS_SKULL, RCTYPE_MUMBO_TOKEN, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUMBO_TOKEN, MUMBOTOKEN_03_MM_UNDER_RAMP_TO_MUMBOS_SKULL, 5150, 2168, -2447), + RC(RC_MM_NOTE_SOUTH_SLOPE_FIRST_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 4867, 297, 1766), + RC(RC_MM_NOTE_SOUTH_SLOPE_FIRST_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 4782, 298, 1892), + RC(RC_MM_NOTE_SOUTH_SLOPE_FIRST_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 4971, 299, 1887), + RC(RC_MM_NOTE_SOUTH_SLOPE_SECOND_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 6430, 500, 1410), + RC(RC_MM_NOTE_SOUTH_SLOPE_SECOND_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 6310, 500, 1536), + RC(RC_MM_NOTE_SOUTH_SLOPE_SECOND_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 6546, 500, 1536), + RC(RC_MM_NOTE_SOUTH_SLOPE_THIRD_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 3793, 747, 1471), + RC(RC_MM_NOTE_SOUTH_SLOPE_THIRD_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 3974, 747, 1411), + RC(RC_MM_NOTE_SOUTH_SLOPE_THIRD_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 3928, 747, 1522), + RC(RC_MM_NOTE_SOUTH_SLOPE_FOURTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 5259, 1184, 656), + RC(RC_MM_NOTE_SOUTH_SLOPE_FOURTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 5469, 1184, 549), + RC(RC_MM_NOTE_SOUTH_SLOPE_FOURTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 5412, 1184, 681), + RC(RC_MM_NOTE_SOUTH_SLOPE_FIFTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 3202, 1247, 925), + RC(RC_MM_NOTE_SOUTH_SLOPE_FIFTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 3126, 1247, 1014), + RC(RC_MM_NOTE_SOUTH_SLOPE_FIFTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 3282, 1247, 1003), + RC(RC_MM_NOTE_SOUTH_SLOPE_SIXTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 5860, 1547, 62), + RC(RC_MM_NOTE_SOUTH_SLOPE_SIXTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 6098, 1547, 67), + RC(RC_MM_NOTE_SOUTH_SLOPE_SIXTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 5990, 1547, 169), + RC(RC_MM_NOTE_BRIDGE_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 2585, -20, 3800), + RC(RC_MM_NOTE_BRIDGE_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 2298, -65, 3800), + RC(RC_MM_NOTE_BRIDGE_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 2012, -90, 3800), + RC(RC_MM_NOTE_BRIDGE_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 1721, -90, 3800), + RC(RC_MM_NOTE_BRIDGE_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 1441, -90, 3800), + RC(RC_MM_NOTE_BRIDGE_6, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 1149, -62, 3800), + RC(RC_MM_NOTE_BRIDGE_7, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 854, -8, 3800), + RC(RC_MM_NOTE_NORTH_SLOPE_FIRST_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4497, 393, 2503), + RC(RC_MM_NOTE_NORTH_SLOPE_FIRST_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4583, 393, 2600), + RC(RC_MM_NOTE_NORTH_SLOPE_FIRST_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4417, 393, 2600), + RC(RC_MM_NOTE_NORTH_SLOPE_SECOND_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3730, 782, 1838), + RC(RC_MM_NOTE_NORTH_SLOPE_SECOND_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3776, 782, 1964), + RC(RC_MM_NOTE_NORTH_SLOPE_SECOND_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3624, 782, 1908), + RC(RC_MM_NOTE_NORTH_SLOPE_THIRD_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -5185, 837, 1737), + RC(RC_MM_NOTE_NORTH_SLOPE_THIRD_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -5277, 836, 1850), + RC(RC_MM_NOTE_NORTH_SLOPE_THIRD_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -5099, 836, 1850), + RC(RC_MM_NOTE_NORTH_SLOPE_FOURTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -2962, 1397, 813), + RC(RC_MM_NOTE_NORTH_SLOPE_FOURTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3053, 1397, 905), + RC(RC_MM_NOTE_NORTH_SLOPE_FOURTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -2868, 1397, 890), + RC(RC_MM_NOTE_NORTH_SLOPE_FIFTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -5154, 1489, 462), + RC(RC_MM_NOTE_NORTH_SLOPE_FIFTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -5238, 1489, 560), + RC(RC_MM_NOTE_NORTH_SLOPE_FIFTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -5068, 1489, 560), + RC(RC_MM_NOTE_NORTH_SLOPE_SIXTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4260, 1839, 208), + RC(RC_MM_NOTE_NORTH_SLOPE_SIXTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4342, 1839, 300), + RC(RC_MM_NOTE_NORTH_SLOPE_SIXTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4179, 1839, 300), + RC(RC_MM_NOTE_NORTH_SLOPE_SEVENTH_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3394, 1910, 171), + RC(RC_MM_NOTE_NORTH_SLOPE_SEVENTH_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3469, 1910, 263), + RC(RC_MM_NOTE_NORTH_SLOPE_SEVENTH_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3293, 1910, 247), + RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1373, 169, 1957), + RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1431, 346, 1784), + RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1497, 517, 1621), + RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1528, 638, 1424), + RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1523, 742, 1179), + RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_6, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1523, 857, 932), + RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_7, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1518, 964, 706), + RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_8, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1413, 1117, 500), + RC(RC_MM_NOTE_NORTH_SLOPE_LOWER_TRAIL_9, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1284, 1295, 363), + RC(RC_MM_NOTE_NORTH_SLOPE_HIGHER_TRAIL_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1094, 1727, -1922), + RC(RC_MM_NOTE_NORTH_SLOPE_HIGHER_TRAIL_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1309, 1856, -1941), + RC(RC_MM_NOTE_NORTH_SLOPE_HIGHER_TRAIL_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1541, 1987, -1960), + RC(RC_MM_NOTE_NORTH_SLOPE_HIGHER_TRAIL_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -1758, 2111, -1974), + RC(RC_MM_NOTE_RUINS_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3047, 2755, -2669), + RC(RC_MM_NOTE_RUINS_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3314, 2755, -2802), + RC(RC_MM_NOTE_RUINS_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3603, 2755, -2923), + RC(RC_MM_NOTE_RUINS_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3885, 2755, -2901), + RC(RC_MM_NOTE_RUINS_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4161, 2755, -2858), + RC(RC_MM_NOTE_RUINS_6, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4359, 2755, -2682), + RC(RC_MM_NOTE_RUINS_7, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4542, 2755, -2495), + RC(RC_MM_NOTE_RUINS_8, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4599, 2754, -2261), + RC(RC_MM_NOTE_RUINS_9, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4649, 2755, -2009), + RC(RC_MM_NOTE_RUINS_10, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4539, 2755, -1746), + RC(RC_MM_NOTE_RUINS_11, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4416, 2755, -1509), + RC(RC_MM_NOTE_RUINS_12, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -4167, 2755, -1383), + RC(RC_MM_NOTE_RUINS_13, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3892, 2755, -1284), + RC(RC_MM_NOTE_RUINS_14, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3581, 2755, -1359), + RC(RC_MM_NOTE_UNDERWATER_RIGHT_CAVE_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 2128, -824, 2181), + RC(RC_MM_NOTE_UNDERWATER_RIGHT_CAVE_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 2034, -824, 2158), + RC(RC_MM_NOTE_UNDERWATER_RIGHT_CAVE_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 1937, -824, 2136), + RC(RC_MM_NOTE_UNDERWATER_LEFT_CAVE_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 1027, -824, 2183), + RC(RC_MM_NOTE_UNDERWATER_LEFT_CAVE_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 940, -824, 2223), + RC(RC_MM_NOTE_UNDERWATER_LEFT_CAVE_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 850, -824, 2267), + RC(RC_MM_NOTE_HUT_ROOF_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 3378, 2439, -2353), + RC(RC_MM_NOTE_HUT_ROOF_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 4137, 2439, -2649), + RC(RC_MM_NOTE_HUT_ROOF_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 5319, 2439, -1717), + RC(RC_MM_NOTE_HUT_ROOF_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 5025, 2439, -814), + RC(RC_MM_NOTE_HUT_ROOF_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 3847, 2439, -715), + RC(RC_MM_NOTE_HUT_ROOF_6, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 3255, 2438, -1091), + RC(RC_MM_NOTE_HUT_BUNDLE_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 0, 0, 0), + RC(RC_MM_NOTE_HUT_BUNDLE_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 0, 0, 0), + RC(RC_MM_NOTE_HUT_BUNDLE_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 0, 0, 0), + RC(RC_MM_NOTE_HUT_BUNDLE_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 0, 0, 0), + RC(RC_MM_NOTE_HUT_BUNDLE_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 0, 0, 0), + RC(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -288, 0, -154), + RC(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -127, 0, -308), + RC(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 119, 0, -298), + RC(RC_MM_NOTE_INSIDE_MUMBOS_SKULL_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 286, 0, -155), + RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -74, 817, 19), + RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -3, 817, 52), + RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 67, 817, 0), + RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_4, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, 60, 817, -87), + RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_5, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -10, 817, -125), + RC(RC_MM_NOTE_INSIDE_TICKERS_TOWER_6, RCTYPE_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN, RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, NULL, -80, 817, -71), + RC(RC_MMM_BLUE_EGG_BEDROOM_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -650, 175, 450), + RC(RC_MMM_BLUE_EGG_BEDROOM_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -650, 175, 300), + RC(RC_MMM_BLUE_EGG_BEDROOM_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -650, 175, 150), + RC(RC_MMM_BLUE_EGG_CELLAR_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -464, 40, -473), + RC(RC_MMM_BLUE_EGG_CELLAR_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -495, 40, -474), + RC(RC_MMM_BLUE_EGG_CELLAR_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -524, 40, -473), + RC(RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHEAST_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 950, 588, 819), + RC(RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHEAST_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 2300, 588, 819), + RC(RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHWEST_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -2299, 588, 820), + RC(RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHWEST_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -949, 588, 820), + RC(RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHEAST_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 2300, 588, 2369), + RC(RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHEAST_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 950, 588, 2369), + RC(RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHWEST_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -949, 588, 2370), + RC(RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHWEST_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -2299, 588, 2370), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 2070, 4885, -2065), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 2069, 4885, -1765), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 2069, 4885, -1464), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_4, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -2100, 4839, -2065), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_5, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -2100, 4838, -1764), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_6, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -2100, 4839, -1465), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_7, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -2100, 4813, 2730), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_8, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -2100, 4813, 2430), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_9, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -2100, 4813, 2129), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_10, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 2070, 4768, 2720), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_11, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 2070, 4768, 2420), + RC(RC_MMM_BLUE_EGG_CHURCH_RAFTERS_12, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 2070, 4768, 2119), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -700, 0, -480), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -700, 0, -280), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -701, 0, -80), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_4, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -700, 0, 121), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_5, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -700, 0, 320), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_6, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -700, 0, 520), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_7, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -600, 0, 619), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_8, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -400, 0, 620), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_9, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -199, 0, 621), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_10, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 200, 0, 620), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_11, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 401, 0, 620), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_12, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 600, 0, 620), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_13, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 700, 0, 519), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_14, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 700, 0, 320), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_15, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 700, 0, 120), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_16, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 700, 0, -78), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_17, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 700, 0, -279), + RC(RC_MMM_BLUE_EGG_CHURCH_WINDOW_18, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 700, 0, -481), + RC(RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -350, 550, -2499), + RC(RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -176, 550, -2499), + RC(RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 0, 550, -2500), + RC(RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_4, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 174, 550, -2500), + RC(RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_5, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 349, 550, -2500), + RC(RC_MMM_BLUE_EGG_EGG_ROOM_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 446, 135, -339), + RC(RC_MMM_BLUE_EGG_EGG_ROOM_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 450, 0, -35), + RC(RC_MMM_BLUE_EGG_EGG_ROOM_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 450, 0, 36), + RC(RC_MMM_BLUE_EGG_EGG_ROOM_4, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 35, 0, 351), + RC(RC_MMM_BLUE_EGG_EGG_ROOM_5, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -36, 0, 350), + RC(RC_MMM_BLUE_EGG_EGG_ROOM_6, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -442, 160, 331), + RC(RC_MMM_BLUE_EGG_EGG_ROOM_7, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -437, 150, -336), + RC(RC_MMM_BLUE_EGG_EGG_ROOM_8, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -302, 150, -336), + RC(RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 225, -135, -390), + RC(RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 61, -135, -390), + RC(RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -103, -135, -390), + RC(RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_4, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -268, -135, -390), + RC(RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_5, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -442, -135, -390), + RC(RC_MMM_BLUE_EGG_MANSION_AWNING_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 50, 1100, -760), + RC(RC_MMM_BLUE_EGG_MANSION_AWNING_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 50, 1100, 1255), + RC(RC_MMM_BLUE_EGG_MANSION_AWNING_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 1942, 1100, 1255), + RC(RC_MMM_BLUE_EGG_MANSION_AWNING_4, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 1950, 1099, -758), + RC(RC_MMM_BLUE_EGG_MAZE_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -1750, 0, 2410), + RC(RC_MMM_BLUE_EGG_MAZE_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -1951, 0, 2655), + RC(RC_MMM_BLUE_EGG_MAZE_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, -2446, 0, 760), + RC(RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 7173, -175, -103), + RC(RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 7173, -175, 452), + RC(RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 7173, -175, 1008), + RC(RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_4, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 7174, -175, 1564), + RC(RC_MMM_BLUE_EGG_NEAR_WELL_1, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 4200, -275, -2324), + RC(RC_MMM_BLUE_EGG_NEAR_WELL_2, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 4200, -275, -2474), + RC(RC_MMM_BLUE_EGG_NEAR_WELL_3, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 7150, -273, -2383), + RC(RC_MMM_BLUE_EGG_NEAR_WELL_4, RCTYPE_BLUE_EGG, LEVEL_A_MAD_MONSTER_MANSION, RI_BLUE_EGG, NULL, 7149, -273, -2233), + RC(RC_MMM_EMPTY_HONEYCOMB_BENEATH_THE_FLOORBOARDS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_EMPTY_HONEYCOMB_MAD_MONSTER_MANSION, HONEYCOMB_12_MMM_FLOORBOARD, -51, -135, 52), + RC(RC_MMM_EMPTY_HONEYCOMB_CHURCH_RAFTERS, RCTYPE_EMPTY_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_EMPTY_HONEYCOMB_MAD_MONSTER_MANSION, HONEYCOMB_11_MMM_CHURCH_RAFTERS, 0, 5163, 2400), + RC(RC_MMM_EXTRA_LIFE_CHURCH_PIPES, RCTYPE_EXTRA_LIFE, LEVEL_A_MAD_MONSTER_MANSION, RI_EXTRA_LIFE, NULL, -1, 2263, -3465), + RC(RC_MMM_EXTRA_LIFE_CHURCH_WINDOW, RCTYPE_EXTRA_LIFE, LEVEL_A_MAD_MONSTER_MANSION, RI_EXTRA_LIFE, NULL, 0, 13, 6), + RC(RC_MMM_EXTRA_LIFE_DINING_ROOM_CHANDELIER, RCTYPE_EXTRA_LIFE, LEVEL_A_MAD_MONSTER_MANSION, RI_EXTRA_LIFE, NULL, 0, 1326, 145), + RC(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_LEFT_1, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_LEFT_2, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_LEFT_3, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_RIGHT_1, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_RIGHT_2, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_RIGHT_3, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_MAZE_1, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_MAZE_2, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_MAZE_3, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_TALL_GRASS_1, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_TALL_GRASS_2, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_TALL_GRASS_3, RCTYPE_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_MMM_JIGGY_BARREL_INTERIOR, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, RI_JIGGY_MAD_MONSTER_MANSION, JIGGY_61_MMM_RAIN_BARREL, 2, 288, -4), + RC(RC_MMM_JIGGY_CELLAR, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, RI_JIGGY_MAD_MONSTER_MANSION, JIGGY_5E_MMM_CELLAR, -516, 30, 477), + RC(RC_MMM_JIGGY_CEMETARY_POTS, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, RI_JIGGY_MAD_MONSTER_MANSION, JIGGY_63_MMM_FLOWER_POTS, 0, 0, 0), + RC(RC_MMM_JIGGY_CLOCKTOWER_TOP, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, RI_JIGGY_MAD_MONSTER_MANSION, JIGGY_5F_MMM_CHURCH_ROOF, -2800, 3175, -1601), + RC(RC_MMM_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, RI_JIGGY_MAD_MONSTER_MANSION, JIGGY_5B_MMM_JINJO, 0, 0, 0), + RC(RC_MMM_JIGGY_MANSION_TABLE, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, RI_JIGGY_MAD_MONSTER_MANSION, JIGGY_5D_MMM_NAPPER, 1, 511, 24), + RC(RC_MMM_JIGGY_MOTZAND, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, RI_JIGGY_MAD_MONSTER_MANSION, JIGGY_60_MMM_MOTZHAND, 0, 3050, -3200), + RC(RC_MMM_JIGGY_INSIDE_LOGGO, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, RI_JIGGY_MAD_MONSTER_MANSION, JIGGY_64_MMM_LOGGO, -518, 295, -468), + RC(RC_MMM_JIGGY_INSIDE_THE_WELLS_BUCKET, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, RI_JIGGY_MAD_MONSTER_MANSION, JIGGY_5C_MMM_WELL, 1, 179, 0), + RC(RC_MMM_JIGGY_TUMBLARS_PUZZLE, RCTYPE_JIGGY, LEVEL_A_MAD_MONSTER_MANSION, RI_JIGGY_MAD_MONSTER_MANSION, JIGGY_62_MMM_TUMBLAR, 48, 0, -58), + RC(RC_MMM_JINJO_BLUE, RCTYPE_JINJO, LEVEL_A_MAD_MONSTER_MANSION, RI_JINJO_BLUE_MAD_MONSTER_MANSION, NULL, 5900, 300, 1050), + RC(RC_MMM_JINJO_GREEN, RCTYPE_JINJO, LEVEL_A_MAD_MONSTER_MANSION, RI_JINJO_GREEN_MAD_MONSTER_MANSION, NULL, 1437, 2100, 248), + RC(RC_MMM_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_A_MAD_MONSTER_MANSION, RI_JINJO_ORANGE_MAD_MONSTER_MANSION, NULL, -4265, 0, 2668), + RC(RC_MMM_JINJO_PINK, RCTYPE_JINJO, LEVEL_A_MAD_MONSTER_MANSION, RI_JINJO_PINK_MAD_MONSTER_MANSION, NULL, 511, 38, 203), + RC(RC_MMM_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_A_MAD_MONSTER_MANSION, RI_JINJO_YELLOW_MAD_MONSTER_MANSION, NULL, -250, 540, 300), + RC(RC_MMM_MUMBO_TOKEN_ALCOVE_CLOCK_TOWER, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_35_MMM_ALCOVE_CLOCK_TOWER, -2800, 1475, -1363), + RC(RC_MMM_MUMBO_TOKEN_BEHIND_CHURCH, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_38_MMM_BEHIND_CHURCH, -4700, 175, -5149), + RC(RC_MMM_MUMBO_TOKEN_HIDDEN_NEAR_FOUNTAIN, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_33_MMM_HIDDEN_NEAR_FOUNTAIN, 3950, -175, 325), + RC(RC_MMM_MUMBO_TOKEN_IN_CHIMNEY_INSIDE_DINING_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_3E_MMM_IN_CHIMNEY_INSIDE_DINNING_ROOM, -160, 190, -2599), + RC(RC_MMM_MUMBO_TOKEN_IN_THE_MAZE, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_37_MMM_IN_THE_MAZE, -4250, 0, 352), + RC(RC_MMM_MUMBO_TOKEN_INSIDE_BEDROOM, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_40_MMM_INSIDE_BEDROOM, 696, 0, -397), + RC(RC_MMM_MUMBO_TOKEN_INSIDE_LOGGO, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, RP_MUMBO_TOKEN_INSIDE_LOGGO, 424, 170, 304), + RC(RC_MMM_MUMBO_TOKEN_INSIDE_BARREL_IN_CELLAR, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_3D_MMM_INSIDE_LOGGO_AND_INSIDE_BARREL_IN_CELLAR, -507, 30, 199), + RC(RC_MMM_MUMBO_TOKEN_INSIDE_WELL, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_3F_MMM_INSIDE_WELL, -732, 0, -109), + RC(RC_MMM_MUMBO_TOKEN_INSIDE_WHIPCRACK_IN_FOUNTAIN, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_39_MMM_INSIDE_WHIPCRACK_IN_FOUNTAIN, 5900, -275, 798), + RC(RC_MMM_MUMBO_TOKEN_NEAR_FRONT_TUMBLARS_SHED, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_34_MMM_NEAR_FRONT_TUMBLARS_SHED, 173, 350, -3610), + RC(RC_MMM_MUMBO_TOKEN_NEXT_TO_MAZE_HEDGE_RAMP, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_36_MMM_NEXT_TO_MAZE_HEDGE_RAMP, -1643, 25, -1026), + RC(RC_MMM_MUMBO_TOKEN_IN_LOGGOS_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_41_MMM_SINK_IN_LOGGOS_ROOM, 52, 104, 512), + RC(RC_MMM_MUMBO_TOKEN_TOP_OF_RAFTER_INSIDE_CHURCH, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_3A_MMM_TOP_OF_RAFTER_INSIDE_CHURCH, 0, 4806, 341), + RC(RC_MMM_MUMBO_TOKEN_TOP_OF_STOOL_INSIDE_CHURCH, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_3B_MMM_TOP_OF_STOOL_INSIDE_CHURCH, 0, 583, -1300), + RC(RC_MMM_MUMBO_TOKEN_TOP_OF_TUMBLARS_SHED, RCTYPE_MUMBO_TOKEN, LEVEL_A_MAD_MONSTER_MANSION, RI_MUMBO_TOKEN, MUMBOTOKEN_3C_MMM_TOP_OF_TUMBLARS_SHED, 1796, 857, -4243), + RC(RC_MMM_NOTE_AROUND_THE_WELL_WEST_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 7150, -275, -3474), + RC(RC_MMM_NOTE_AROUND_THE_WELL_WEST_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 7150, -275, -3325), + RC(RC_MMM_NOTE_AROUND_THE_WELL_EAST_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 4200, -275, -3325), + RC(RC_MMM_NOTE_AROUND_THE_WELL_EAST_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 4201, -275, -3475), + RC(RC_MMM_NOTE_BARREL_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -266, 0, 152), + RC(RC_MMM_NOTE_BARREL_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -267, 0, -153), + RC(RC_MMM_NOTE_BARREL_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 0, 0, -310), + RC(RC_MMM_NOTE_BARREL_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 270, 0, -154), + RC(RC_MMM_NOTE_BARREL_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 268, 0, 152), + RC(RC_MMM_NOTE_BASEMENT_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -375, 300, 1274), + RC(RC_MMM_NOTE_BASEMENT_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -126, 300, 1275), + RC(RC_MMM_NOTE_BASEMENT_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 125, 300, 1275), + RC(RC_MMM_NOTE_BASEMENT_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 375, 300, 1275), + RC(RC_MMM_NOTE_BEDROOM_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 760, 207, -100), + RC(RC_MMM_NOTE_BEDROOM_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 700, 207, -200), + RC(RC_MMM_NOTE_BEDROOM_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 640, 200, -100), + RC(RC_MMM_NOTE_BEDROOM_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 700, 207, 0), + RC(RC_MMM_NOTE_CHAIR_EAST_SIDE_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 736, 286, -500), + RC(RC_MMM_NOTE_CHAIR_EAST_SIDE_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 737, 286, 0), + RC(RC_MMM_NOTE_CHAIR_EAST_SIDE_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 736, 286, 499), + RC(RC_MMM_NOTE_CHAIR_NORTH_SIDE_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 11, 286, -1102), + RC(RC_MMM_NOTE_CHAIR_NORTH_SIDE_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -13, 286, -1751), + RC(RC_MMM_NOTE_CHAIR_WEST_SIDE_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -738, 286, 499), + RC(RC_MMM_NOTE_CHAIR_WEST_SIDE_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -737, 286, -1), + RC(RC_MMM_NOTE_CHAIR_WEST_SIDE_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -738, 286, -499), + RC(RC_MMM_NOTE_CHURCH_ABOVE_THE_ENTRANCE, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -2186, 662, -2498), + RC(RC_MMM_NOTE_CHURCH_PEW_NORTHEAST, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 1625, 690, 816), + RC(RC_MMM_NOTE_CHURCH_PEW_NORTHWEST, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -1625, 690, 820), + RC(RC_MMM_NOTE_CHURCH_PEW_SOUTHEAST, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 1623, 690, 2371), + RC(RC_MMM_NOTE_CHURCH_PEW_SOUTHWEST, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -1623, 690, 2373), + RC(RC_MMM_NOTE_CHURCH_ROOFTOP_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -2800, 1063, -2135), + RC(RC_MMM_NOTE_CHURCH_ROOFTOP_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -2800, 1063, -2500), + RC(RC_MMM_NOTE_CHURCH_ROOFTOP_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -2800, 1063, -2900), + RC(RC_MMM_NOTE_CHURCH_ROOFTOP_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -2800, 1063, -3301), + RC(RC_MMM_NOTE_CHURCH_ROOFTOP_5, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -2800, 1063, -3699), + RC(RC_MMM_NOTE_CHURCH_ROOFTOP_6, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -3199, 1060, -2900), + RC(RC_MMM_NOTE_CHURCH_ROOFTOP_7, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -3600, 1057, -2900), + RC(RC_MMM_NOTE_CHURCH_ROOFTOP_8, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -4000, 1054, -2900), + RC(RC_MMM_NOTE_CHURCH_ROOFTOP_9, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -4400, 1051, -2900), + RC(RC_MMM_NOTE_CLOCKTOWER_ROOF_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -3148, 2075, -1948), + RC(RC_MMM_NOTE_CLOCKTOWER_ROOF_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -3146, 2075, -1253), + RC(RC_MMM_NOTE_CLOCKTOWER_ROOF_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -2452, 2075, -1948), + RC(RC_MMM_NOTE_CLOCKTOWER_ROOF_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -2453, 2075, -1253), + RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -450, 0, -75), + RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -438, 195, -336), + RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -450, 0, 0), + RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -450, 0, 75), + RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_5, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -440, 150, 337), + RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_6, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -75, 0, 350), + RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_7, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 429, 222, -233), + RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_8, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 0, 0, 350), + RC(RC_MMM_NOTE_FRONT_WINDOW_ATTIC_9, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 75, 0, 350), + RC(RC_MMM_NOTE_GRASS_BEHIND_THE_MANSION_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -200, 225, -3525), + RC(RC_MMM_NOTE_GRASS_BEHIND_THE_MANSION_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -201, 225, -3700), + RC(RC_MMM_NOTE_GRASS_BEHIND_THE_MANSION_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -200, 225, -3876), + RC(RC_MMM_NOTE_MAIN_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 556, 75, 2111), + RC(RC_MMM_NOTE_MAIN_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 734, 75, 2236), + RC(RC_MMM_NOTE_MAIN_ENTRANCE_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 1266, 75, 2236), + RC(RC_MMM_NOTE_MAIN_ENTRANCE_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 1444, 75, 2110), + RC(RC_MMM_NOTE_MANSION_EXTERIOR_LOWER_NORTHEAST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 2436, 700, -1244), + RC(RC_MMM_NOTE_MANSION_EXTERIOR_LOWER_NORTHWEST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -428, 700, -1249), + RC(RC_MMM_NOTE_MANSION_EXTERIOR_LOWER_SOUTHEAST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 2436, 702, 1743), + RC(RC_MMM_NOTE_MANSION_EXTERIOR_LOWER_SOUTHWEST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -428, 700, 1743), + RC(RC_MMM_NOTE_MANSION_EXTERIOR_UPPER_NORTHEAST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 1936, 1600, -797), + RC(RC_MMM_NOTE_MANSION_EXTERIOR_UPPER_NORTHWEST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 63, 1600, -796), + RC(RC_MMM_NOTE_MANSION_EXTERIOR_UPPER_SOUTHEAST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 1936, 1600, 1294), + RC(RC_MMM_NOTE_MANSION_EXTERIOR_UPPER_SOUTHWEST_CORNER, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 63, 1600, 1303), + RC(RC_MMM_NOTE_MAZE_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -2050, 7, 1755), + RC(RC_MMM_NOTE_MAZE_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -2250, 0, 2655), + RC(RC_MMM_NOTE_MAZE_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -3455, 0, 1780), + RC(RC_MMM_NOTE_MAZE_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -3455, 0, 1445), + RC(RC_MMM_NOTE_MAZE_5, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -3300, 0, 25), + RC(RC_MMM_NOTE_MAZE_6, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -3300, 0, -131), + RC(RC_MMM_NOTE_MUMBOS_SKULL_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -293, 0, -157), + RC(RC_MMM_NOTE_MUMBOS_SKULL_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 294, 0, -157), + RC(RC_MMM_NOTE_ORGAN_PEDALS_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 150, 131, -1698), + RC(RC_MMM_NOTE_ORGAN_PEDALS_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -150, 230, -1693), + RC(RC_MMM_NOTE_ORGAN_PIPES_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -1062, 2450, -3199), + RC(RC_MMM_NOTE_ORGAN_PIPES_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -529, 2750, -3200), + RC(RC_MMM_NOTE_ORGAN_PIPES_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 519, 2750, -3200), + RC(RC_MMM_NOTE_ORGAN_PIPES_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 1054, 2450, -3199), + RC(RC_MMM_NOTE_SHED_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -700, 0, 688), + RC(RC_MMM_NOTE_SHED_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -701, 0, -725), + RC(RC_MMM_NOTE_SHED_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 700, 0, -725), + RC(RC_MMM_NOTE_SHED_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 700, 0, 688), + RC(RC_MMM_NOTE_SHED_ROOF_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 1575, 988, -4460), + RC(RC_MMM_NOTE_SHED_ROOF_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 1824, 987, -4460), + RC(RC_MMM_NOTE_SHED_ROOF_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 2075, 988, -4460), + RC(RC_MMM_NOTE_SHED_ROOF_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 2325, 988, -4460), + RC(RC_MMM_NOTE_STAGNANT_FOUNTAIN_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 5378, -75, 521), + RC(RC_MMM_NOTE_STAGNANT_FOUNTAIN_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 6428, -75, 529), + RC(RC_MMM_NOTE_STAGNANT_FOUNTAIN_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 6423, -75, 1579), + RC(RC_MMM_NOTE_STAGNANT_FOUNTAIN_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 5372, -75, 1571), + RC(RC_MMM_NOTE_WELL_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -475, 0, -617), + RC(RC_MMM_NOTE_WELL_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -613, 0, 411), + RC(RC_MMM_NOTE_WELL_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -714, 0, 171), + RC(RC_MMM_NOTE_WELL_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, -217, 0, 131), + RC(RC_MMM_NOTE_WELL_INTERIOR_5, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 694, 0, -186), + RC(RC_MMM_NOTE_WELL_INTERIOR_6, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 79, 0, -201), + RC(RC_MMM_NOTE_WELL_INTERIOR_7, RCTYPE_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION, RI_MUSIC_NOTE_MAD_MONSTER_MANSION, NULL, 681, 0, 182), + RC(RC_MMM_SNS_CYAN_EGG, RCTYPE_STOP_N_SWOP, LEVEL_A_MAD_MONSTER_MANSION, RI_STOP_N_SWOP_EGG_CYAN, SNS_ITEM_EGG_CYAN, 1995, 100, -476), + RC(RC_MMM_SNS_GREEN_EGG, RCTYPE_STOP_N_SWOP, LEVEL_A_MAD_MONSTER_MANSION, RI_STOP_N_SWOP_EGG_GREEN, SNS_ITEM_EGG_GREEN, 517, 350, -241), + RC(RC_RBB_BLUE_EGG_ANCHOR_ROOM_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -450, 0, -750), + RC(RC_RBB_BLUE_EGG_ANCHOR_ROOM_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 450, 0, -751), + RC(RC_RBB_BLUE_EGG_ANCHOR_ROOM_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 450, 0, 750), + RC(RC_RBB_BLUE_EGG_ANCHOR_ROOM_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -450, 0, 750), + RC(RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -750, -800, -3651), + RC(RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -750, -800, -3726), + RC(RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -50, -800, -3651), + RC(RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -49, -800, -3726), + RC(RC_RBB_BLUE_EGG_ENGING_ROOM_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -2550, 1059, -3001), + RC(RC_RBB_BLUE_EGG_ENGING_ROOM_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -2550, 1059, -2300), + RC(RC_RBB_BLUE_EGG_ENGING_ROOM_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -2550, 1059, -2475), + RC(RC_RBB_BLUE_EGG_ENGING_ROOM_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -2550, 1059, -2825), + RC(RC_RRB_BLUE_EGG_ENTRANCE_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -550, -650, 3549), + RC(RC_RRB_BLUE_EGG_ENTRANCE_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -1200, -450, 3899), + RC(RC_RRB_BLUE_EGG_ENTRANCE_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -1750, -650, 3300), + RC(RC_RRB_BLUE_EGG_ENTRANCE_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 1549, -500, 3250), + RC(RC_RRB_BLUE_EGG_ENTRANCE_5, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 1900, -200, 3800), + RC(RC_RBB_BLUE_EGG_KITCHEN_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 702, 213, -596), + RC(RC_RBB_BLUE_EGG_KITCHEN_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 758, 213, -600), + RC(RC_RBB_BLUE_EGG_KITCHEN_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 647, 213, -601), + RC(RC_RBB_BLUE_EGG_KITCHEN_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 645, 213, -501), + RC(RC_RBB_BLUE_EGG_KITCHEN_5, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 705, 213, -503), + RC(RC_RBB_BLUE_EGG_KITCHEN_6, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 758, 213, -503), + RC(RC_RBB_BLUE_EGG_KITCHEN_7, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 760, 213, -408), + RC(RC_RBB_BLUE_EGG_KITCHEN_8, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 700, 213, -407), + RC(RC_RBB_BLUE_EGG_KITCHEN_9, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 646, 213, -404), + RC(RC_RBB_BLUE_EGG_NAVIGATION_ROOM_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -740, 340, 590), + RC(RC_RBB_BLUE_EGG_NAVIGATION_ROOM_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -740, 340, 409), + RC(RC_RBB_BLUE_EGG_NAVIGATION_ROOM_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -740, 340, 230), + RC(RC_RBB_BLUE_EGG_NAVIGATION_ROOM_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -740, 340, 50), + RC(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 8726, -2613, 3075), + RC(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 8726, -2613, 3550), + RC(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 8726, -2613, 4025), + RC(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 6976, -2613, 3075), + RC(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_5, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 6976, -2613, 3550), + RC(RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_6, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 6975, -2613, 4025), + RC(RC_RBB_BLUE_EGG_ON_LIFE_BOAT_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -3721, -185, -1677), + RC(RC_RBB_BLUE_EGG_ON_LIFE_BOAT_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -3953, -185, -1677), + RC(RC_RBB_BLUE_EGG_ON_LIFE_BOAT_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -4185, -185, -1678), + RC(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -651, 140, -959), + RC(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -651, 140, -1064), + RC(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -520, 140, -1064), + RC(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -390, 140, -1064), + RC(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_5, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -389, 140, -959), + RC(RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_6, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -520, 140, -959), + RC(RC_RBB_BLUE_EGG_TNT_ROOM_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -400, 400, 450), + RC(RC_RBB_BLUE_EGG_TNT_ROOM_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -400, 400, 324), + RC(RC_RBB_BLUE_EGG_TNT_ROOM_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -400, 400, 199), + RC(RC_RBB_BLUE_EGG_TNT_ROOM_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -399, 400, 74), + RC(RC_RBB_BLUE_EGG_TNT_ROOM_5, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -400, 400, -49), + RC(RC_RBB_BLUE_EGG_TOP_OF_SHIP_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 4500, -250, -1150), + RC(RC_RBB_BLUE_EGG_TOP_OF_SHIP_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 5050, 50, -1050), + RC(RC_RBB_BLUE_EGG_TOP_OF_SHIP_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 4100, -250, 1150), + RC(RC_RBB_BLUE_EGG_TOP_OF_SHIP_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 4650, 150, 1050), + RC(RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_1, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -726, 575, 125), + RC(RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_2, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -537, 575, 125), + RC(RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_3, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -350, 575, 125), + RC(RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_4, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, -163, 575, 125), + RC(RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_5, RCTYPE_BLUE_EGG, LEVEL_9_RUSTY_BUCKET_BAY, RI_BLUE_EGG, NULL, 25, 575, 124), + RC(RC_RBB_EMPTY_HONEYCOMB_BOAT_HOUSE, RCTYPE_EMPTY_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_EMPTY_HONEYCOMB_RUSTY_BUCKET_BAY, HONEYCOMB_F_RBB_BOAT_HOUSE, 0, 1000, 0), + RC(RC_RBB_EMPTY_HONEYCOMB_ENGINE_ROOM, RCTYPE_EMPTY_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_EMPTY_HONEYCOMB_RUSTY_BUCKET_BAY, HONEYCOMB_10_RBB_ENGINE_ROOM, 0, 360, 3541), + RC(RC_RBB_EXTRA_LIFE_BOOM_BOXES, RCTYPE_EXTRA_LIFE, LEVEL_9_RUSTY_BUCKET_BAY, RI_EXTRA_LIFE, NULL, -626, 140, -351), + RC(RC_RBB_EXTRA_LIFE_ENGINE_ROOM, RCTYPE_EXTRA_LIFE, LEVEL_9_RUSTY_BUCKET_BAY, RI_EXTRA_LIFE, NULL, -2551, 1065, -2650), + RC(RC_RBB_EXTRA_LIFE_WAREHOUSE, RCTYPE_EXTRA_LIFE, LEVEL_9_RUSTY_BUCKET_BAY, RI_EXTRA_LIFE, NULL, -950, 1045, -50), + RC(RC_RBB_HONEYCOMB_BEEHIVE_ENGINE_ROOM_ENTRANCE_1, RCTYPE_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_RBB_HONEYCOMB_BEEHIVE_ENGINE_ROOM_ENTRANCE_2, RCTYPE_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_RBB_HONEYCOMB_BEEHIVE_ENGINE_ROOM_ENTRANCE_3, RCTYPE_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_RBB_HONEYCOMB_BEEHIVE_FIRST_SHIPPING_CONTAINER_1, RCTYPE_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_RBB_HONEYCOMB_BEEHIVE_FIRST_SHIPPING_CONTAINER_2, RCTYPE_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_RBB_HONEYCOMB_BEEHIVE_FIRST_SHIPPING_CONTAINER_3, RCTYPE_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_RBB_HONEYCOMB_BEEHIVE_GRATE_ABOVE_PINK_JINJO_1, RCTYPE_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_RBB_HONEYCOMB_BEEHIVE_GRATE_ABOVE_PINK_JINJO_2, RCTYPE_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_RBB_HONEYCOMB_BEEHIVE_GRATE_ABOVE_PINK_JINJO_3, RCTYPE_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_RBB_JIGGY_BOSS_BOOM_BOX, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, RI_JIGGY_RUSTY_BUCKET_BAY, JIGGY_56_RBB_BOSS_BOOM_BOX, 0, 0, 0), + RC(RC_RBB_JIGGY_CAPTAINS_CABIN, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, RI_JIGGY_RUSTY_BUCKET_BAY, JIGGY_58_RBB_CAPTAINS_CABIN, -997, 273, 355), + RC(RC_RBB_JIGGY_CRANE_CAGE, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, RI_JIGGY_RUSTY_BUCKET_BAY, JIGGY_59_RBB_CRANE_CAGE, -4900, 0, 0), + RC(RC_RBB_JIGGY_ENGINE_ROOM, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, RI_JIGGY_RUSTY_BUCKET_BAY, JIGGY_5A_RBB_ENGINE_ROOM, 1, 809, -3718), + RC(RC_RBB_JIGGY_FUNNEL, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, RI_JIGGY_RUSTY_BUCKET_BAY, JIGGY_55_RBB_FUNNEL, -2006, 2700, -2), + RC(RC_RBB_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, RI_JIGGY_RUSTY_BUCKET_BAY, JIGGY_51_RBB_JINJO, 0, 0, 0 ), + RC(RC_RBB_JIGGY_PROPELLOR, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, RI_JIGGY_RUSTY_BUCKET_BAY, JIGGY_57_RBB_PROPELLOR, 7750, -2007, 0), + RC(RC_RBB_JIGGY_SNORKEL, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, RI_JIGGY_RUSTY_BUCKET_BAY, JIGGY_53_RBB_SNORKEL, 0, 0, 0), + RC(RC_RBB_JIGGY_WAREHOUSE, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, RI_JIGGY_RUSTY_BUCKET_BAY, JIGGY_52_RBB_WAREHOUSE, 850, 850, -1150), + RC(RC_RBB_JIGGY_WHISTLE, RCTYPE_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY, RI_JIGGY_RUSTY_BUCKET_BAY, JIGGY_54_RBB_WHISTLE, 0, 0, 0), + RC(RC_RBB_JINJO_BLUE, RCTYPE_JINJO, LEVEL_9_RUSTY_BUCKET_BAY, RI_JINJO_BLUE_RUSTY_BUCKET_BAY, NULL, -8738, -1253, 4032), + RC(RC_RBB_JINJO_GREEN, RCTYPE_JINJO, LEVEL_9_RUSTY_BUCKET_BAY, RI_JINJO_GREEN_RUSTY_BUCKET_BAY, NULL, 8903, -800, -2894), + RC(RC_RBB_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_9_RUSTY_BUCKET_BAY, RI_JINJO_ORANGE_RUSTY_BUCKET_BAY, NULL, -193, 0, -979), + RC(RC_RBB_JINJO_PINK, RCTYPE_JINJO, LEVEL_9_RUSTY_BUCKET_BAY, RI_JINJO_PINK_RUSTY_BUCKET_BAY, NULL, 7850, -2613, 4026), + RC(RC_RBB_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_9_RUSTY_BUCKET_BAY, RI_JINJO_YELLOW_RUSTY_BUCKET_BAY, NULL, -8615, -1000, -3555), + RC(RC_RBB_MUMBO_TOKEN_TOXIC_WASTE_POND, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_46_RBB_TOXIC_WASTE_POND, -7401, -1000, -3425), + RC(RC_RBB_MUMBO_TOKEN_ON_LIFE_BOAT, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_44_RBB_ON_LIFE_BOAT, 7053, -985, -1672), + RC(RC_RBB_MUMBO_TOKEN_SHIPS_PROW, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_43_RBB_SHIPS_PROW, -6200, 150, 0), + RC(RC_RBB_MUMBO_TOKEN_UNDER_CHOMPA_IN_WITCH_SWITCH_TOWER, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_47_RBB_UNDER_CHOMPA_IN_WITCH_SWITCH_TOWER, 6200, 400, 0), + RC(RC_RBB_MUMBO_TOKEN_TOP_OF_SHIPS_CHIMNEY, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_42_RBB_TOP_OF_SHIPS_CHIMNEY, 1000, 2750, 0), + RC(RC_RBB_MUMBO_TOKEN_FRONT_OF_CHOMPA_LEFT_OF_SHIP, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_45_RBB_FRONT_OF_CHOMPA_LEFT_OF_SHIP, -3299, -457, 3800), + RC(RC_RBB_MUMBO_TOKEN_UNDER_CHOMPA_INSIDE_FIRST_BLUE_CONTAINER, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_48_RBB_UNDER_CHOMPA_INSIDE_FIRST_BLUE_CONTAINER, -650, 562, -35), + RC(RC_RBB_MUMBO_TOKEN_TOP_OF_BOX_INSIDE_SECOND_BLUE_CONTAINER, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_49_RBB_TOP_OF_BOX_INSIDE_SECOND_BLUE_CONTAINER, -278, 710, -557), + RC(RC_RBB_MUMBO_TOKEN_INSIDE_KITCHEN, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_4C_RBB_INSIDE_KITCHEN, -771, 238, -293), + RC(RC_RBB_MUMBO_TOKEN_TOP_OF_BUNK_IN_CABIN, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_4A_RBB_TOP_OF_BUNK_IN_CABIN, 583, 323, -70), + RC(RC_RBB_MUMBO_TOKEN_TOP_OF_BOX_INSIDE_TNT_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_50_RBB_TOP_OF_BOX_INSIDE_TNT_ROOM, -435, 300, -435), + RC(RC_RBB_MUMBO_TOKEN_ENGINE_ROOM_LEFT_PIPE, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_4D_RBB_ENGINE_ROOM_LEFT_PIPE, -2450, 1100, -400), + RC(RC_RBB_MUMBO_TOKEN_ENGINE_ROOM_RIGHT_PIPE, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_4E_RBB_ENGINE_ROOM_RIGHT_PIPE, 2450, 1100, -400), + RC(RC_RBB_MUMBO_TOKEN_ENGINE_ROOM_SPINNING_PLATFORM, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_4F_RBB_ENGINE_ROOM_SPINNING_PLATFORM, -319, 12, 1899), + RC(RC_RBB_MUMBO_TOKEN_INSIDE_NAVIGATION_ROOM, RCTYPE_MUMBO_TOKEN, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUMBO_TOKEN, MUMBOTOKEN_4B_RBB_INSIDE_NAVIGATION_ROOM, -656, 0, -222), + RC(RC_RBB_NOTE_ANCHOR_ROOM_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 3500, 449, -501), + RC(RC_RBB_NOTE_ANCHOR_ROOM_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 3499, 449, 499), + RC(RC_RBB_NOTE_ANCHOR_ROOM_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 4499, 449, -500), + RC(RC_RBB_NOTE_ANCHOR_ROOM_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 4500, 449, 499), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_RAMP_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -50, 43, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_RAMP_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -384, 164, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_RAMP_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -717, 285, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_RAMP_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -1050, 406, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_LOWER_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -950, 1200, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_LOWER_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -650, 1200, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_LOWER_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -350, 1200, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_LOWER_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -50, 1200, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_UPPER_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -50, 2207, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_UPPER_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -350, 2207, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_UPPER_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -650, 2207, 0), + RC(RC_RBB_NOTE_BETWEEN_SMOKE_STACKS_BRIDGE_UPPER_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -950, 2207, 0), + RC(RC_RBB_NOTE_BUNK_CABIN_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -271, 0, -496), + RC(RC_RBB_NOTE_BUNK_CABIN_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -245, 0, 563), + RC(RC_RBB_NOTE_BUNK_CABIN_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 270, 0, -496), + RC(RC_RBB_NOTE_BUNK_CABIN_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 245, 0, 561), + RC(RC_RBB_NOTE_CAPTAINS_CABIN_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -1020, 0, -315), + RC(RC_RBB_NOTE_CAPTAINS_CABIN_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -1020, 0, -103), + RC(RC_RBB_NOTE_CAPTAINS_CABIN_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -1020, 0, 108), + RC(RC_RBB_NOTE_ENGINE_ROOM_BEHIND_GLASS_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -3039, 1160, -2485), + RC(RC_RBB_NOTE_ENGINE_ROOM_BEHIND_GLASS_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -3370, 1160, -2484), + RC(RC_RBB_NOTE_ENGINE_ROOM_BEHIND_GLASS_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -3038, 1160, -2817), + RC(RC_RBB_NOTE_ENGINE_ROOM_BEHIND_GLASS_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -3374, 1160, -2817), + RC(RC_RBB_NOTE_ENGINE_ROOM_LEFT_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -1499, 809, -199), + RC(RC_RBB_NOTE_ENGINE_ROOM_LEFT_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -1700, 809, -200), + RC(RC_RBB_NOTE_ENGINE_ROOM_LEFT_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -1700, 809, -600), + RC(RC_RBB_NOTE_ENGINE_ROOM_LEFT_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -1499, 809, -601), + RC(RC_RBB_NOTE_ENGINE_ROOM_MIDDLE_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -200, 809, -2200), + RC(RC_RBB_NOTE_ENGINE_ROOM_MIDDLE_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -200, 809, -2600), + RC(RC_RBB_NOTE_ENGINE_ROOM_MIDDLE_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 200, 809, -2600), + RC(RC_RBB_NOTE_ENGINE_ROOM_MIDDLE_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 200, 809, -2200), + RC(RC_RBB_NOTE_ENGINE_ROOM_RIGHT_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 1500, 809, -199), + RC(RC_RBB_NOTE_ENGINE_ROOM_RIGHT_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 1700, 809, -199), + RC(RC_RBB_NOTE_ENGINE_ROOM_RIGHT_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 1700, 809, -600), + RC(RC_RBB_NOTE_ENGINE_ROOM_RIGHT_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 1501, 809, -600), + RC(RC_RBB_NOTE_FENCE_NEAR_YELLOW_JINJO_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -6755, -800, 2797), + RC(RC_RBB_NOTE_FENCE_NEAR_YELLOW_JINJO_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -6755, -800, 2150), + RC(RC_RBB_NOTE_FENCE_NEAR_YELLOW_JINJO_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -6755, -800, 1554), + RC(RC_RBB_NOTE_FENCE_NEAR_YELLOW_JINJO_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -7128, -800, 1554), + RC(RC_RBB_NOTE_FENCE_NEAR_YELLOW_JINJO_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -7501, -800, 1554), + RC(RC_RBB_NOTE_GRATE_ABOVE_PINK_JINJO_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 6950, -1175, 3050), + RC(RC_RBB_NOTE_GRATE_ABOVE_PINK_JINJO_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 6950, -1175, 4050), + RC(RC_RBB_NOTE_GRATE_ABOVE_PINK_JINJO_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 8750, -1175, 4050), + RC(RC_RBB_NOTE_GRATE_ABOVE_PINK_JINJO_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 8750, -1175, 3050), + RC(RC_RBB_NOTE_JIGGY_CRANE_BASE_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -5199, -200, -2900), + RC(RC_RBB_NOTE_JIGGY_CRANE_BASE_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -4900, -200, -2900), + RC(RC_RBB_NOTE_JIGGY_CRANE_BASE_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -4600, -200, -2900), + RC(RC_RBB_NOTE_KITCHEN_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -313, 213, -1046), + RC(RC_RBB_NOTE_KITCHEN_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -400, 163, 738), + RC(RC_RBB_NOTE_KITCHEN_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -398, 163, 149), + RC(RC_RBB_NOTE_KITCHEN_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 593, 213, -898), + RC(RC_RBB_NOTE_KITCHEN_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 389, 163, 740), + RC(RC_RBB_NOTE_NAVIGATION_ROOM_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -270, 0, -719), + RC(RC_RBB_NOTE_NAVIGATION_ROOM_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -87, 0, -720), + RC(RC_RBB_NOTE_NAVIGATION_ROOM_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 96, 0, -720), + RC(RC_RBB_NOTE_NAVIGATION_ROOM_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 279, 0, -719), + RC(RC_RBB_NOTE_RAMP_TO_SHIP_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 800, -760, 2751), + RC(RC_RBB_NOTE_RAMP_TO_SHIP_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 800, -667, 2424), + RC(RC_RBB_NOTE_RAMP_TO_SHIP_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 800, -575, 2102), + RC(RC_RBB_NOTE_RAMP_TO_SHIP_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 800, -482, 1775), + RC(RC_RBB_NOTE_RAMP_TO_SHIP_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 800, -389, 1450), + RC(RC_RBB_NOTE_SHIP_BOW_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 7800, -800, -1325), + RC(RC_RBB_NOTE_SHIP_BOW_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 8050, -800, -1001), + RC(RC_RBB_NOTE_SHIP_BOW_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 8149, -799, 300), + RC(RC_RBB_NOTE_SHIP_BOW_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 8149, -799, -300), + RC(RC_RBB_NOTE_SHIP_BOW_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 8050, -800, 1001), + RC(RC_RBB_NOTE_SHIP_BOW_6, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 7800, -800, 1325), + RC(RC_RBB_NOTE_SHIP_STERN_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -3399, 800, -600), + RC(RC_RBB_NOTE_SHIP_STERN_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -3399, 800, 600), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -650, 560, -645), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -630, 175, -419), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -170, 140, -804), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -650, 560, 560), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -236, 105, 316), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_6, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 0, 595, -860), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_7, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 492, 525, -677), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_FIRST_8, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 593, 105, -105), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 531, 140, 664), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 659, 140, 665), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 530, 140, 520), + RC(RC_RBB_NOTE_SHIPPING_CONTAINER_INTERIOR_THIRD_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 660, 140, 519), + RC(RC_RBB_NOTE_TNT_CRANE_BASE_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 4500, -200, -2900), + RC(RC_RBB_NOTE_TNT_CRANE_BASE_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 4200, -200, -2900), + RC(RC_RBB_NOTE_TNT_CRANE_BASE_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 3900, -200, -2900), + RC(RC_RBB_NOTE_TNT_ROOM_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -400, 750, 924), + RC(RC_RBB_NOTE_TNT_ROOM_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -400, 750, 800), + RC(RC_RBB_NOTE_TNT_ROOM_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -400, 750, 675), + RC(RC_RBB_NOTE_TNT_ROOM_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -400, 750, 550), + RC(RC_RBB_NOTE_TNT_ROOM_5, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -400, 750, 1050), + RC(RC_RBB_NOTE_TOXIC_WASTE_POND_BARREL_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -8144, -969, -2026), + RC(RC_RBB_NOTE_TOXIC_WASTE_POND_BARREL_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -7679, -986, -2363), + RC(RC_RBB_NOTE_TOXIC_WASTE_POND_BARREL_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, -7843, -986, -3205), + RC(RC_RBB_NOTE_WAREHOUSE_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 785, 650, 1356), + RC(RC_RBB_NOTE_WAREHOUSE_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 785, 650, 1045), + RC(RC_RBB_NOTE_WAREHOUSE_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 1005, 650, 1355), + RC(RC_RBB_NOTE_WAREHOUSE_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY, RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, NULL, 1005, 650, 1045), + RC(RC_RBB_SNS_RED_EGG, RCTYPE_STOP_N_SWOP, LEVEL_9_RUSTY_BUCKET_BAY, RI_STOP_N_SWOP_EGG_RED, SNS_ITEM_EGG_RED, -7, 113, 164), + RC(RC_SM_EMPTY_HONEYCOMB_COLLIWOBBLE, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, RI_EMPTY_HONEYCOMB_SPIRAL_MOUNTAIN, HONEYCOMB_17_SM_COLLIWOBBLE, 0, 0, 0), + RC(RC_SM_EMPTY_HONEYCOMB_QUARRIES, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, RI_EMPTY_HONEYCOMB_SPIRAL_MOUNTAIN, HONEYCOMB_18_SM_QUARRIES, 0, 0, 0), + RC(RC_SM_EMPTY_HONEYCOMB_STUMP, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, RI_EMPTY_HONEYCOMB_SPIRAL_MOUNTAIN, HONEYCOMB_13_SM_STUMP, -1400, 99, 4824), + RC(RC_SM_EMPTY_HONEYCOMB_TREE, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, RI_EMPTY_HONEYCOMB_SPIRAL_MOUNTAIN, HONEYCOMB_16_SM_TREE, -2752, 1299, 37), + RC(RC_SM_EMPTY_HONEYCOMB_UNDERWATER, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, RI_EMPTY_HONEYCOMB_SPIRAL_MOUNTAIN, HONEYCOMB_15_SM_UNDERWATER, -264, -442, -651), + RC(RC_SM_EMPTY_HONEYCOMB_WATERFALL, RCTYPE_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN, RI_EMPTY_HONEYCOMB_SPIRAL_MOUNTAIN, HONEYCOMB_14_SM_WATERFALL, -6725, 1300, -1803), + RC(RC_SM_EXTRA_LIFE_ABOVE_BANJOS_HOUSE, RCTYPE_EXTRA_LIFE, LEVEL_B_SPIRAL_MOUNTAIN, RI_EXTRA_LIFE, NULL, 3656, 339, 6552), + RC(RC_SM_EXTRA_LIFE_WATERFALL, RCTYPE_EXTRA_LIFE, LEVEL_B_SPIRAL_MOUNTAIN, RI_EXTRA_LIFE, NULL, -7108, 1200, -3079), + RC(RC_SM_MOLEHILL_ATTACK, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, RI_MOLEHILL_CLAW_SWIPE, ABILITY_4_CLAW_SWIPE, 4675, 400, 511), + RC(RC_SM_MOLEHILL_BEAK_BARGE, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, RI_MOLEHILL_BARGE, ABILITY_0_BARGE, 3271, -110, -2673), + RC(RC_SM_MOLEHILL_CAMERA_CONTROL, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, RI_MOLEHILL_CAMERA_CONTROL, ABILITY_3_CAMERA_CONTROL, 2250, -34, 2774 ), + RC(RC_SM_MOLEHILL_CLIMB, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, RI_MOLEHILL_CLIMB, ABILITY_5_CLIMB, -1999, 342, -2545), + RC(RC_SM_MOLEHILL_DIVE, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, RI_MOLEHILL_DIVE, ABILITY_F_DIVE, -2336, 302, 973), + RC(RC_SM_MOLEHILL_JUMP, RCTYPE_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN, RI_MOLEHILL_FLAP_FLIP, ABILITY_8_FLAP_FLIP, -164, -190, 3313), + RC(RC_TTC_BLUE_EGG_ABOVE_SHOCK_PAD_1, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 4539, 1667, 1639), + RC(RC_TTC_BLUE_EGG_ABOVE_SHOCK_PAD_2, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 4539, 1792, 1639), + RC(RC_TTC_BLUE_EGG_ABOVE_SHOCK_PAD_3, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 4539, 1917, 1639), + RC(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_1, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -2906, 1012, -6249), + RC(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_2, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -2941, 1011, -6045), + RC(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_3, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -3580, 1062, -5526), + RC(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_4, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -3808, 1062, -5389), + RC(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_5, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -3978, 1312, -5163), + RC(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_6, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -3995, 1312, -4990), + RC(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_7, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -4215, 1411, -4547), + RC(RC_TTC_BLUE_EGG_ALCOVE_LEDGE_8, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -4413, 1412, -4482), + RC(RC_TTC_BLUE_EGG_INSIDE_NIPPER_1, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -106, -23, 186), + RC(RC_TTC_BLUE_EGG_INSIDE_NIPPER_2, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -142, -23, 315), + RC(RC_TTC_BLUE_EGG_INSIDE_NIPPER_3, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -267, -23, 318), + RC(RC_TTC_BLUE_EGG_INSIDE_NIPPER_4, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -306, -23, 212), + RC(RC_TTC_BLUE_EGG_INSIDE_NIPPER_5, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -215, -23, 117), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_1, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 1012, 5782, -2017), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_2, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 864, 5826, -1874), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_3, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 648, 5857, -1874), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_4, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 743, 6580, -3494), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_5, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 944, 6625, -3436), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_6, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 1077, 6667, -3226), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_1, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 2475, 5793, -2303), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_2, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 2357, 5791, -2182), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_3, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 2351, 5822, -2417), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_4, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 2241, 5819, -2305), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_5, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 720, 5819, -4297), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_6, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 869, 5820, -4332), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_7, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 750, 5791, -4131), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_8, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 918, 5793, -4172), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_9, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -1269, 5795, -2811), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_10, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -1147, 5822, -2700), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_11, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -1145, 5792, -2928), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_12, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -1037, 5818, -2802), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_13, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 687, 5822, -1177), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_14, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 843, 5819, -1172), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_15, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 857, 5793, -1336), + RC(RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_16, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, 689, 5794, -1347), + RC(RC_TTC_BLUE_EGG_LOCKUP_1, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -3966, 1190, 1747), + RC(RC_TTC_BLUE_EGG_LOCKUP_2, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -4051, 1190, 1793), + RC(RC_TTC_BLUE_EGG_LOCKUP_3, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -4051, 1190, 1706), + RC(RC_TTC_BLUE_EGG_LOCKUP_4, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -3882, 1190, 1795), + RC(RC_TTC_BLUE_EGG_LOCKUP_5, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -3882, 1190, 1707), + RC(RC_TTC_BLUE_EGG_UPPER_POOL_1, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -5319, 2470, -2929), + RC(RC_TTC_BLUE_EGG_UPPER_POOL_2, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -5154, 2470, -3256), + RC(RC_TTC_BLUE_EGG_UPPER_POOL_3, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -4975, 2470, -3543), + RC(RC_TTC_BLUE_EGG_UPPER_POOL_4, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -4749, 2470, -3780), + RC(RC_TTC_BLUE_EGG_UPPER_POOL_5, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -4410, 2470, -3814), + RC(RC_TTC_BLUE_EGG_UPPER_POOL_6, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -4092, 2470, -3826), + RC(RC_TTC_BLUE_EGG_UPPER_POOL_7, RCTYPE_BLUE_EGG, LEVEL_2_TREASURE_TROVE_COVE, RI_BLUE_EGG, NULL, -3957, 2470, -3586), + RC(RC_TTC_EMPTY_HONEYCOMB_FLOATING_BOX, RCTYPE_EMPTY_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_EMPTY_HONEYCOMB_TREASURE_TROVE_COVE, HONEYCOMB_4_TTC_FLOATING_BOX, 8473, 844, -2684), + RC(RC_TTC_EMPTY_HONEYCOMB_UNDERWATER, RCTYPE_EMPTY_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_EMPTY_HONEYCOMB_TREASURE_TROVE_COVE, HONEYCOMB_3_TTC_UNDERWATER, -4303, 46, 115), + RC(RC_TTC_EXTRA_LIFE_CLIFFSIDE_POOL, RCTYPE_EXTRA_LIFE, LEVEL_2_TREASURE_TROVE_COVE, RI_EXTRA_LIFE, NULL, -2442, 3158, -1706), + RC(RC_TTC_EXTRA_LIFE_SHARKFOOD_ISLAND_SIGN, RCTYPE_EXTRA_LIFE, LEVEL_2_TREASURE_TROVE_COVE, RI_EXTRA_LIFE, NULL, 5864, 677, 7898), + RC(RC_TTC_EXTRA_LIFE_SPIRAL_PATH, RCTYPE_EXTRA_LIFE, LEVEL_2_TREASURE_TROVE_COVE, RI_EXTRA_LIFE, NULL, 4710, 323, -6007), + RC(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_BLUBBERS_SHIP_1, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_BLUBBERS_SHIP_2, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_BLUBBERS_SHIP_3, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_THE_BACK_STAIRS_1, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_THE_BACK_STAIRS_2, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_NEAR_THE_BACK_STAIRS_3, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_IN_THE_CLIFFSIDE_POOL_1, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_IN_THE_CLIFFSIDE_POOL_2, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_IN_THE_CLIFFSIDE_POOL_3, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_ON_THE_BEACH_1, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_ON_THE_BEACH_2, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_HONEYCOMB_BEEHIVE_ON_THE_BEACH_3, RCTYPE_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE, RI_HONEYCOMB, NULL, 0, 0, 0), + RC(RC_TTC_JIGGY_ALCOVE1, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, RI_JIGGY_TREASURE_TROVE_COVE, JIGGY_0D_TTC_ALCOVE_1, 2832, 2152, -1797), + RC(RC_TTC_JIGGY_ALCOVE2, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, RI_JIGGY_TREASURE_TROVE_COVE, JIGGY_0E_TTC_ALCOVE_2, -5116, 1417, -3915), + RC(RC_TTC_JIGGY_BLUBBER, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, RI_JIGGY_TREASURE_TROVE_COVE, JIGGY_14_TTC_BLUBBER, 0, 0, 0), + RC(RC_TTC_JIGGY_JINJO, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, RI_JIGGY_TREASURE_TROVE_COVE, JIGGY_0B_TTC_JINJO, 0, 0, 0), + RC(RC_TTC_JIGGY_LIGHTHOUSE, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, RI_JIGGY_TREASURE_TROVE_COVE, JIGGY_0C_TTC_LIGHTHOUSE, 479, 8500, -2709), + RC(RC_TTC_JIGGY_LOCKUP, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, RI_JIGGY_TREASURE_TROVE_COVE, JIGGY_13_TTC_LOCKUP, -1575, 2597, -2500), + RC(RC_TTC_JIGGY_NIPPER, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, RI_JIGGY_TREASURE_TROVE_COVE, JIGGY_12_TTC_NIPPER, 385, 227, 31), + RC(RC_TTC_JIGGY_POOL, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, RI_JIGGY_TREASURE_TROVE_COVE, JIGGY_0F_TTC_POOL, -2760, 2053, -4733), + RC(RC_TTC_JIGGY_RED_X, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, RI_JIGGY_TREASURE_TROVE_COVE, JIGGY_11_TTC_RED_X, 0, 0, 0), + RC(RC_TTC_JIGGY_SANDCASTLE, RCTYPE_JIGGY, LEVEL_2_TREASURE_TROVE_COVE, RI_JIGGY_TREASURE_TROVE_COVE, JIGGY_10_TTC_SANDCASTLE, 0, 350, -987), + RC(RC_TTC_JINJO_BLUE, RCTYPE_JINJO, LEVEL_2_TREASURE_TROVE_COVE, RI_JINJO_BLUE_TREASURE_TROVE_COVE, NULL, -875, 242, 7206), + RC(RC_TTC_JINJO_GREEN, RCTYPE_JINJO, LEVEL_2_TREASURE_TROVE_COVE, RI_JINJO_GREEN_TREASURE_TROVE_COVE, NULL, -179, 3062, 889), + RC(RC_TTC_JINJO_ORANGE, RCTYPE_JINJO, LEVEL_2_TREASURE_TROVE_COVE, RI_JINJO_ORANGE_TREASURE_TROVE_COVE, NULL, -5626, 3112, -2856), + RC(RC_TTC_JINJO_PINK, RCTYPE_JINJO, LEVEL_2_TREASURE_TROVE_COVE, RI_JINJO_PINK_TREASURE_TROVE_COVE, NULL, 4848, 1340, -240), + RC(RC_TTC_JINJO_YELLOW, RCTYPE_JINJO, LEVEL_2_TREASURE_TROVE_COVE, RI_JINJO_YELLOW_TREASURE_TROVE_COVE, NULL, -968, 5358, -776), + RC(RC_TTC_MOLEHILL_FLIGHT, RCTYPE_MOLEHILL, LEVEL_2_TREASURE_TROVE_COVE, RI_MOLEHILL_FLIGHT, ABILITY_9_FLIGHT, -288, 2161, 1314), + RC(RC_TTC_MOLEHILL_SHOCK_JUMP, RCTYPE_MOLEHILL, LEVEL_2_TREASURE_TROVE_COVE, RI_MOLEHILL_SHOCK_JUMP, ABILITY_D_SHOCK_JUMP, 2698, 1517, 3338), + RC(RC_TTC_MUMBO_TOKEN_BEHIND_PILLAR_UNDERWATER, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, RI_MUMBO_TOKEN, MUMBOTOKEN_0C_TTC_BEHIND_PILLAR_UNDERWATER, 6480, 597, -258), + RC(RC_TTC_MUMBO_TOKEN_BEHIND_LIGHTHOUSE_DOOR, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, RI_MUMBO_TOKEN, MUMBOTOKEN_0A_TTC_BEHIND_LIGHTHOUSE_DOOR, 565, 6917, -2776), + RC(RC_TTC_MUMBO_TOKEN_BEHIND_NIPPER, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, RI_MUMBO_TOKEN, MUMBOTOKEN_0F_TTC_BEHIND_NIPPER, -6620, 510, 4621), + RC(RC_TTC_MUMBO_TOKEN_FLOATING_ABOVE_SHOCKJUMP_PAD, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, RI_MUMBO_TOKEN, MUMBOTOKEN_0E_TTC_FLOATING_ABOVE_SHOCKJUMP_PAD, 2462, 2217, 2957), + RC(RC_TTC_MUMBO_TOKEN_INSIDE_LOCKUP_1, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, RI_MUMBO_TOKEN, MUMBOTOKEN_07_TTC_INSIDE_LOCKUP_1, -2660, 2447, -6079), + RC(RC_TTC_MUMBO_TOKEN_INSIDE_LOCKUP_2, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, RI_MUMBO_TOKEN, MUMBOTOKEN_08_TTC_INSIDE_LOCKUP_2, -2646, 2447, -6223), + RC(RC_TTC_MUMBO_TOKEN_INSIDE_SALTY_HIPPO, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, RI_MUMBO_TOKEN, MUMBOTOKEN_06_TTC_INSIDE_SALTY_HIPPO, 610, -412, 31), + RC(RC_TTC_MUMBO_TOKEN_ON_FLOATING_BOX, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, RI_MUMBO_TOKEN, MUMBOTOKEN_0B_TTC_ON_FLOATING_BOX, -783, 745, -3872), + RC(RC_TTC_MUMBO_TOKEN_POND_BOTTOM, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, RI_MUMBO_TOKEN, MUMBOTOKEN_0D_TTC_POND_BOTTOM, -4932, 1122, -1063), + RC(RC_TTC_MUMBO_TOKEN_SALTY_HIPPO_MAST, RCTYPE_MUMBO_TOKEN, LEVEL_2_TREASURE_TROVE_COVE, RI_MUMBO_TOKEN, MUMBOTOKEN_09_TTC_SALTY_HIPPO_MAST, -221, 2029, 929), + RC(RC_TTC_NOTE_BEACH_LOCKUP_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 4802, 737, -2351), + RC(RC_TTC_NOTE_BEACH_LOCKUP_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 4730, 737, -2420), + RC(RC_TTC_NOTE_BEACH_LOCKUP_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 4803, 736, -2444), + RC(RC_TTC_NOTE_BEACH_LOCKUP_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 4858, 736, -2273), + RC(RC_TTC_NOTE_BEACH_LOCKUP_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 4783, 737, -2249), + RC(RC_TTC_NOTE_INSIDE_NIPPER_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -127, -22, -1020), + RC(RC_TTC_NOTE_INSIDE_NIPPER_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 643, -22, -723), + RC(RC_TTC_NOTE_INSIDE_NIPPER_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 911, -22, -18), + RC(RC_TTC_NOTE_INSIDE_NIPPER_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 583, -21, 625), + RC(RC_TTC_NOTE_INSIDE_NIPPER_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -78, -21, 800), + RC(RC_TTC_NOTE_INSIDE_NIPPER_6, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -608, -21, 457), + RC(RC_TTC_NOTE_INSIDE_SHIP_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -870, -750, -60), + RC(RC_TTC_NOTE_INSIDE_SHIP_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -870, -750, -195), + RC(RC_TTC_NOTE_INSIDE_SHIP_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -871, -750, 198), + RC(RC_TTC_NOTE_INSIDE_SHIP_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -871, -750, 68), + RC(RC_TTC_NOTE_INSIDE_SHIP_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 870, -750, -64), + RC(RC_TTC_NOTE_INSIDE_SHIP_6, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 870, -746, -197), + RC(RC_TTC_NOTE_INSIDE_SHIP_7, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 870, -698, 200), + RC(RC_TTC_NOTE_INSIDE_SHIP_8, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 870, -750, 61), + RC(RC_TTC_NOTE_JUMP_PAD_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 2911, 1667, 1203), + RC(RC_TTC_NOTE_JUMP_PAD_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 2911, 1792, 1203), + RC(RC_TTC_NOTE_JUMP_PAD_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 2911, 1917, 1203), + RC(RC_TTC_NOTE_LIGHTHOUSE_PATH_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -363, 6087, -2487), + RC(RC_TTC_NOTE_LIGHTHOUSE_PATH_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -455, 6170, -2688), + RC(RC_TTC_NOTE_LIGHTHOUSE_PATH_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -352, 6227, -2895), + RC(RC_TTC_NOTE_LIGHTHOUSE_TOP_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 563, 8055, -2949), + RC(RC_TTC_NOTE_LIGHTHOUSE_TOP_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 731, 8056, -2702), + RC(RC_TTC_NOTE_LIGHTHOUSE_TOP_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 552, 8056, -2465), + RC(RC_TTC_NOTE_LIGHTHOUSE_TOP_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 269, 8070, -2560), + RC(RC_TTC_NOTE_LIGHTHOUSE_TOP_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 275, 8055, -2864), + RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 5447, 1817, 101), + RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 5682, 1817, 444), + RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 6246, 1817, 447), + RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 6244, 1817, -452), + RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 6498, 1817, 39), + RC(RC_TTC_NOTE_PLATEAU_PAST_JUMP_PADS_6, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 5670, 1817, -372), + RC(RC_TTC_NOTE_SANDCASTLE_TOP_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 2497, 431, 4437), + RC(RC_TTC_NOTE_SANDCASTLE_TOP_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 2318, 431, 4609), + RC(RC_TTC_NOTE_SANDCASTLE_TOP_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 2497, 431, 4609), + RC(RC_TTC_NOTE_SANDCASTLE_TOP_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 2660, 431, 4609), + RC(RC_TTC_NOTE_SANDCASTLE_TOP_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 2497, 431, 4794), + RC(RC_TTC_NOTE_SANDCASTLE_INTERIOR_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -536, -90, 727), + RC(RC_TTC_NOTE_SANDCASTLE_INTERIOR_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -536, -90, 892), + RC(RC_TTC_NOTE_SANDCASTLE_INTERIOR_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 537, -90, 727), + RC(RC_TTC_NOTE_SANDCASTLE_INTERIOR_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 537, -90, 892), + RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1364, 1084, 622), + RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1213, 1276, 665), + RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1055, 1490, 713), + RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -896, 1703, 753), + RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -734, 1915, 773), + RC(RC_TTC_NOTE_SHIP_RIGGING_LEFT_6, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -569, 2131, 795), + RC(RC_TTC_NOTE_SHIP_RIGGING_RIGHT_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 966, 1289, 1138), + RC(RC_TTC_NOTE_SHIP_RIGGING_RIGHT_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 788, 1486, 1082), + RC(RC_TTC_NOTE_SHIP_RIGGING_RIGHT_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 603, 1702, 1027), + RC(RC_TTC_NOTE_SHIP_RIGGING_RIGHT_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 414, 1916, 1000), + RC(RC_TTC_NOTE_SHIP_RIGGING_RIGHT_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 222, 2132, 979), + RC(RC_TTC_NOTE_SHIP_TREE_LEFT_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1630, 1291, 2476), + RC(RC_TTC_NOTE_SHIP_TREE_LEFT_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1539, 1291, 2621), + RC(RC_TTC_NOTE_SHIP_TREE_LEFT_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1681, 1318, 2708), + RC(RC_TTC_NOTE_SHIP_TREE_LEFT_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1769, 1321, 2578), + RC(RC_TTC_NOTE_SHIP_TREE_RIGHT_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 417, 1291, 2891), + RC(RC_TTC_NOTE_SHIP_TREE_RIGHT_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 448, 1318, 3052), + RC(RC_TTC_NOTE_SHIP_TREE_RIGHT_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 297, 1321, 3090), + RC(RC_TTC_NOTE_SHIP_TREE_RIGHT_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 251, 1292, 2927), + RC(RC_TTC_NOTE_SPIRAL_PATH_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 4656, 817, -6660), + RC(RC_TTC_NOTE_SPIRAL_PATH_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 4646, 817, -6864), + RC(RC_TTC_NOTE_SPIRAL_PATH_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 4631, 817, -7067), + RC(RC_TTC_NOTE_SPIRAL_PATH_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 4499, 817, -7216), + RC(RC_TTC_NOTE_STAIRS_TO_LIGHTHOUSE, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 2070, 2517, -2499), + RC(RC_TTC_NOTE_STAIRSET_FIRST_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 266, 911, -6564), + RC(RC_TTC_NOTE_STAIRSET_FIRST_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 86, 1117, -6563), + RC(RC_TTC_NOTE_STAIRSET_FIRST_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -85, 1313, -6564), + RC(RC_TTC_NOTE_STAIRSET_FIRST_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -263, 1516, -6564), + RC(RC_TTC_NOTE_STAIRSET_SECOND_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -653, 1713, -6370), + RC(RC_TTC_NOTE_STAIRSET_SECOND_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -826, 1913, -6343), + RC(RC_TTC_NOTE_STAIRSET_SECOND_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1001, 2116, -6315), + RC(RC_TTC_NOTE_STAIRSET_SECOND_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1175, 2317, -6288), + RC(RC_TTC_NOTE_STAIRSET_THIRD_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1936, 2528, -6112), + RC(RC_TTC_NOTE_STAIRSET_THIRD_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1854, 2731, -5955), + RC(RC_TTC_NOTE_STAIRSET_THIRD_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1773, 2928, -5803), + RC(RC_TTC_NOTE_STAIRSET_THIRD_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1691, 3130, -5647), + RC(RC_TTC_NOTE_STARTING_PLATFORM_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1144, 846, 7476), + RC(RC_TTC_NOTE_STARTING_PLATFORM_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -1147, 846, 6935), + RC(RC_TTC_NOTE_STARTING_PLATFORM_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -603, 846, 6938), + RC(RC_TTC_NOTE_STARTING_PLATFORM_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -603, 846, 7478), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 688, 1617, 4709), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 700, 1617, 4907), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, 713, 1617, 5104), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_4, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -2607, 1617, 3019), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_5, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -2548, 1617, 3217), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_6, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -2488, 1617, 3417), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_7, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -719, 1617, 4183), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_8, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -520, 1617, 4172), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_9, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -319, 1617, 4160), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_10, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -2515, 1617, 4735), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_11, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -2638, 1617, 4933), + RC(RC_TTC_NOTE_UPPERLEVEL_BRIDGE_NEAR_ENTRANCE_12, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -2760, 1617, 5135), + RC(RC_TTC_NOTE_UPPERLEVEL_POOL_1, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -3235, 1840, -1696), + RC(RC_TTC_NOTE_UPPERLEVEL_POOL_2, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -3001, 1840, -2007), + RC(RC_TTC_NOTE_UPPERLEVEL_POOL_3, RCTYPE_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE, RI_MUSIC_NOTE_TREASURE_TROVE_COVE, NULL, -2906, 1840, -2329), + RC(RC_TTC_SNS_PINK_EGG, RCTYPE_STOP_N_SWOP, LEVEL_2_TREASURE_TROVE_COVE, RI_STOP_N_SWOP_EGG_PINK, SNS_ITEM_EGG_PINK, 0, 1950, 0), }; std::map> multiSpawnCheckMap = { diff --git a/src/port/Rando/StaticData/Flags.cpp b/src/port/Rando/StaticData/Flags.cpp index 4f807dd28..0fad9ae3d 100644 --- a/src/port/Rando/StaticData/Flags.cpp +++ b/src/port/Rando/StaticData/Flags.cpp @@ -17,7 +17,6 @@ namespace StaticData { std::map Flags = { RF(RANDO_INF_UNKNOWN, RO_GENERIC_OFF), RF(RANDO_INF_ANCHOR_RAISED, RO_GENERIC_OFF), - RF(RANDO_INF_BRIDGE_REPAIRED_DIALOG_COMPLETE, RO_GENERIC_OFF), RF(RANDO_INF_CLANKER_RAISED, RO_GENERIC_OFF), RF(RANDO_INF_MINIGAME_RINGS_COMPLETED, RO_GENERIC_OFF), RF(RANDO_INF_WATER_PYRAMID_DRAINED, RO_GENERIC_OFF), diff --git a/src/port/Rando/StaticData/Items.cpp b/src/port/Rando/StaticData/Items.cpp index 1e33fdbc4..65591bdeb 100644 --- a/src/port/Rando/StaticData/Items.cpp +++ b/src/port/Rando/StaticData/Items.cpp @@ -10,28 +10,117 @@ namespace Rando { namespace StaticData { -#define RI(id, article, name, type, actorId) \ - { \ - id, { \ - id, #id, article, name, type, actorId \ - } \ +#define RI(id, article, name, type, actorId, worldId) \ + { \ + id, { \ + id, #id, article, name, type, actorId, worldId \ + } \ } // clang-format off std::map Items = { - RI(RI_UNKNOWN, "", "Unknown", RITYPE_UNKNOWN, ACTOR_1_UNKNOWN), - RI(RI_EMPTY_HONEYCOMB, "an", "Empty Honeycomb", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB), - RI(RI_JIGGY, "a", "Jiggy", RITYPE_JIGGY, ACTOR_46_JIGGY), - RI(RI_JINJO_BLUE, "a", "Blue Jinjo", RITYPE_JINJO, ACTOR_60_JINJO_BLUE), - RI(RI_JINJO_GREEN, "a", "Green Jinjo", RITYPE_JINJO, ACTOR_62_JINJO_GREEN), - RI(RI_JINJO_ORANGE, "an", "Orange Jinjo", RITYPE_JINJO, ACTOR_5F_JINJO_ORANGE), - RI(RI_JINJO_PINK, "a", "Pink Jinjo", RITYPE_JINJO, ACTOR_61_JINJO_PINK), - RI(RI_JINJO_YELLOW, "a", "Yellow Jinjo", RITYPE_JINJO, ACTOR_5E_JINJO_YELLOW), - RI(RI_MOLEHILL, "a", "New Ability", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL), - RI(RI_MUMBO_TOKEN, "a", "Mumbo Token", RITYPE_MUMBO_TOKEN, ACTOR_2D_MUMBO_TOKEN), - RI(RI_MUSIC_NOTE, "a", "Note", RITYPE_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE), - RI(RI_STOP_N_SWOP_EGG, "a", "Mystery Egg", RITYPE_SNS_EGG, ACTOR_25E_SNS_EGG), - RI(RI_STOP_N_SWOP_KEY, "a", "Mystery Key", RITYPE_SNS_KEY, ACTOR_25D_ICE_KEY), + RI(RI_UNKNOWN, "", "Unknown", RITYPE_UNKNOWN, ACTOR_1_UNKNOWN, LEVEL_D_CUTSCENE), + RI(RI_BLUE_EGG, "a", "Blue Egg", RITYPE_BLUE_EGG, ACTOR_52_BLUE_EGG, LEVEL_D_CUTSCENE), + RI(RI_EMPTY_HONEYCOMB_BUBBLEGLOOP_SWAMP, "a", "Empty Honeycomb - BGS", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, LEVEL_4_BUBBLEGLOOP_SWAMP), + RI(RI_EMPTY_HONEYCOMB_CLANKERS_CAVERN, "a", "Empty Honeycomb - CC", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, LEVEL_3_CLANKERS_CAVERN), + RI(RI_EMPTY_HONEYCOMB_CLICK_CLOCK_WOOD, "a", "Empty Honeycomb - CCW", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, LEVEL_8_CLICK_CLOCK_WOOD), + RI(RI_EMPTY_HONEYCOMB_FREEZEEZY_PEAK, "a", "Empty Honeycomb - FP", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, LEVEL_5_FREEZEEZY_PEAK), + RI(RI_EMPTY_HONEYCOMB_GOBIS_VALLEY, "a", "Empty Honeycomb - GV", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, LEVEL_7_GOBIS_VALLEY), + RI(RI_EMPTY_HONEYCOMB_MAD_MONSTER_MANSION, "a", "Empty Honeycomb - MMM", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, LEVEL_A_MAD_MONSTER_MANSION), + RI(RI_EMPTY_HONEYCOMB_MUMBOS_MOUNTAIN, "a", "Empty Honeycomb - MM", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_EMPTY_HONEYCOMB_RUSTY_BUCKET_BAY, "a", "Empty Honeycomb - RBB", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, LEVEL_9_RUSTY_BUCKET_BAY), + RI(RI_EMPTY_HONEYCOMB_SPIRAL_MOUNTAIN, "a", "Empty Honeycomb - SM", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, LEVEL_B_SPIRAL_MOUNTAIN), + RI(RI_EMPTY_HONEYCOMB_TREASURE_TROVE_COVE, "a", "Empty Honeycomb - TTC", RITYPE_EMPTY_HONEYCOMB, ACTOR_47_EMPTY_HONEYCOMB, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_EXTRA_LIFE, "an", "Extra Life", RITYPE_EXTRA_LIFE, ACTOR_49_EXTRA_LIFE, LEVEL_D_CUTSCENE), + RI(RI_HONEYCOMB, "a", "Honeycomb", RITYPE_HONEYCOMB, ACTOR_50_HONEYCOMB, LEVEL_D_CUTSCENE), + RI(RI_JIGGY_BUBBLEGLOOP_SWAMP, "a", "Jiggy - BGS", RITYPE_JIGGY, ACTOR_46_JIGGY, LEVEL_4_BUBBLEGLOOP_SWAMP), + RI(RI_JIGGY_CLANKERS_CAVERN, "a", "Jiggy - CC", RITYPE_JIGGY, ACTOR_46_JIGGY, LEVEL_3_CLANKERS_CAVERN), + RI(RI_JIGGY_CLICK_CLOCK_WOOD, "a", "Jiggy - CCW", RITYPE_JIGGY, ACTOR_46_JIGGY, LEVEL_8_CLICK_CLOCK_WOOD), + RI(RI_JIGGY_FREEZEEZY_PEAK, "a", "Jiggy - FP", RITYPE_JIGGY, ACTOR_46_JIGGY, LEVEL_5_FREEZEEZY_PEAK), + RI(RI_JIGGY_GOBIS_VALLEY, "a", "Jiggy - GV", RITYPE_JIGGY, ACTOR_46_JIGGY, LEVEL_7_GOBIS_VALLEY), + RI(RI_JIGGY_GRUNTILDAS_LAIR, "a", "Jiggy - GL", RITYPE_JIGGY, ACTOR_46_JIGGY, LEVEL_6_LAIR), + RI(RI_JIGGY_MAD_MONSTER_MANSION, "a", "Jiggy - MMM", RITYPE_JIGGY, ACTOR_46_JIGGY, LEVEL_A_MAD_MONSTER_MANSION), + RI(RI_JIGGY_MUMBOS_MOUNTAIN, "a", "Jiggy - MM", RITYPE_JIGGY, ACTOR_46_JIGGY, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_JIGGY_RUSTY_BUCKET_BAY, "a", "Jiggy - RBB", RITYPE_JIGGY, ACTOR_46_JIGGY, LEVEL_9_RUSTY_BUCKET_BAY), + RI(RI_JIGGY_TREASURE_TROVE_COVE, "a", "Jiggy - TTC", RITYPE_JIGGY, ACTOR_46_JIGGY, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_JINJO_BLUE_BUBBLEGLOOP_SWAMP, "a", "Blue Jinjo - BGS", RITYPE_JINJO, ACTOR_60_JINJO_BLUE, LEVEL_4_BUBBLEGLOOP_SWAMP), + RI(RI_JINJO_BLUE_CLANKERS_CAVERN, "a", "Blue Jinjo - CC", RITYPE_JINJO, ACTOR_60_JINJO_BLUE, LEVEL_3_CLANKERS_CAVERN), + RI(RI_JINJO_BLUE_CLICK_CLOCK_WOOD, "a", "Blue Jinjo - CCW", RITYPE_JINJO, ACTOR_60_JINJO_BLUE, LEVEL_8_CLICK_CLOCK_WOOD), + RI(RI_JINJO_BLUE_FREEZEEZY_PEAK, "a", "Blue Jinjo - FP", RITYPE_JINJO, ACTOR_60_JINJO_BLUE, LEVEL_5_FREEZEEZY_PEAK), + RI(RI_JINJO_BLUE_GOBIS_VALLEY, "a", "Blue Jinjo - GV", RITYPE_JINJO, ACTOR_60_JINJO_BLUE, LEVEL_7_GOBIS_VALLEY), + RI(RI_JINJO_BLUE_MAD_MONSTER_MANSION, "a", "Blue Jinjo - MMM", RITYPE_JINJO, ACTOR_60_JINJO_BLUE, LEVEL_A_MAD_MONSTER_MANSION), + RI(RI_JINJO_BLUE_MUMBOS_MOUNTAIN, "a", "Blue Jinjo - MM", RITYPE_JINJO, ACTOR_60_JINJO_BLUE, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_JINJO_BLUE_RUSTY_BUCKET_BAY, "a", "Blue Jinjo - RBB", RITYPE_JINJO, ACTOR_60_JINJO_BLUE, LEVEL_9_RUSTY_BUCKET_BAY), + RI(RI_JINJO_BLUE_TREASURE_TROVE_COVE, "a", "Blue Jinjo - TTC", RITYPE_JINJO, ACTOR_60_JINJO_BLUE, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_JINJO_GREEN_BUBBLEGLOOP_SWAMP, "a", "Green Jinjo - BGS", RITYPE_JINJO, ACTOR_62_JINJO_GREEN, LEVEL_4_BUBBLEGLOOP_SWAMP), + RI(RI_JINJO_GREEN_CLANKERS_CAVERN, "a", "Green Jinjo - CC", RITYPE_JINJO, ACTOR_62_JINJO_GREEN, LEVEL_3_CLANKERS_CAVERN), + RI(RI_JINJO_GREEN_CLICK_CLOCK_WOOD, "a", "Green Jinjo - CCW", RITYPE_JINJO, ACTOR_62_JINJO_GREEN, LEVEL_8_CLICK_CLOCK_WOOD), + RI(RI_JINJO_GREEN_FREEZEEZY_PEAK, "a", "Green Jinjo - FP", RITYPE_JINJO, ACTOR_62_JINJO_GREEN, LEVEL_5_FREEZEEZY_PEAK), + RI(RI_JINJO_GREEN_GOBIS_VALLEY, "a", "Green Jinjo - GV", RITYPE_JINJO, ACTOR_62_JINJO_GREEN, LEVEL_7_GOBIS_VALLEY), + RI(RI_JINJO_GREEN_MAD_MONSTER_MANSION, "a", "Green Jinjo - MMM", RITYPE_JINJO, ACTOR_62_JINJO_GREEN, LEVEL_A_MAD_MONSTER_MANSION), + RI(RI_JINJO_GREEN_MUMBOS_MOUNTAIN, "a", "Green Jinjo - MM", RITYPE_JINJO, ACTOR_62_JINJO_GREEN, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_JINJO_GREEN_RUSTY_BUCKET_BAY, "a", "Green Jinjo - RBB", RITYPE_JINJO, ACTOR_62_JINJO_GREEN, LEVEL_9_RUSTY_BUCKET_BAY), + RI(RI_JINJO_GREEN_TREASURE_TROVE_COVE, "a", "Green Jinjo - TTC", RITYPE_JINJO, ACTOR_62_JINJO_GREEN, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_JINJO_ORANGE_BUBBLEGLOOP_SWAMP, "a", "Orange Jinjo - BGS", RITYPE_JINJO, ACTOR_5F_JINJO_ORANGE, LEVEL_4_BUBBLEGLOOP_SWAMP), + RI(RI_JINJO_ORANGE_CLANKERS_CAVERN, "a", "Orange Jinjo - CC", RITYPE_JINJO, ACTOR_5F_JINJO_ORANGE, LEVEL_3_CLANKERS_CAVERN), + RI(RI_JINJO_ORANGE_CLICK_CLOCK_WOOD, "a", "Orange Jinjo - CCW", RITYPE_JINJO, ACTOR_5F_JINJO_ORANGE, LEVEL_8_CLICK_CLOCK_WOOD), + RI(RI_JINJO_ORANGE_FREEZEEZY_PEAK, "a", "Orange Jinjo - FP", RITYPE_JINJO, ACTOR_5F_JINJO_ORANGE, LEVEL_5_FREEZEEZY_PEAK), + RI(RI_JINJO_ORANGE_GOBIS_VALLEY, "a", "Orange Jinjo - GV", RITYPE_JINJO, ACTOR_5F_JINJO_ORANGE, LEVEL_7_GOBIS_VALLEY), + RI(RI_JINJO_ORANGE_MAD_MONSTER_MANSION, "a", "Orange Jinjo - MMM", RITYPE_JINJO, ACTOR_5F_JINJO_ORANGE, LEVEL_A_MAD_MONSTER_MANSION), + RI(RI_JINJO_ORANGE_MUMBOS_MOUNTAIN, "a", "Orange Jinjo - MM", RITYPE_JINJO, ACTOR_5F_JINJO_ORANGE, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_JINJO_ORANGE_RUSTY_BUCKET_BAY, "a", "Orange Jinjo - RBB", RITYPE_JINJO, ACTOR_5F_JINJO_ORANGE, LEVEL_9_RUSTY_BUCKET_BAY), + RI(RI_JINJO_ORANGE_TREASURE_TROVE_COVE, "a", "Orange Jinjo - TTC", RITYPE_JINJO, ACTOR_5F_JINJO_ORANGE, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_JINJO_PINK_BUBBLEGLOOP_SWAMP, "a", "Pink Jinjo - BGS", RITYPE_JINJO, ACTOR_61_JINJO_PINK, LEVEL_4_BUBBLEGLOOP_SWAMP), + RI(RI_JINJO_PINK_CLANKERS_CAVERN, "a", "Pink Jinjo - CC", RITYPE_JINJO, ACTOR_61_JINJO_PINK, LEVEL_3_CLANKERS_CAVERN), + RI(RI_JINJO_PINK_CLICK_CLOCK_WOOD, "a", "Pink Jinjo - CCW", RITYPE_JINJO, ACTOR_61_JINJO_PINK, LEVEL_8_CLICK_CLOCK_WOOD), + RI(RI_JINJO_PINK_FREEZEEZY_PEAK, "a", "Pink Jinjo - FP", RITYPE_JINJO, ACTOR_61_JINJO_PINK, LEVEL_5_FREEZEEZY_PEAK), + RI(RI_JINJO_PINK_GOBIS_VALLEY, "a", "Pink Jinjo - GV", RITYPE_JINJO, ACTOR_61_JINJO_PINK, LEVEL_7_GOBIS_VALLEY), + RI(RI_JINJO_PINK_MAD_MONSTER_MANSION, "a", "Pink Jinjo - MMM", RITYPE_JINJO, ACTOR_61_JINJO_PINK, LEVEL_A_MAD_MONSTER_MANSION), + RI(RI_JINJO_PINK_MUMBOS_MOUNTAIN, "a", "Pink Jinjo - MM", RITYPE_JINJO, ACTOR_61_JINJO_PINK, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_JINJO_PINK_RUSTY_BUCKET_BAY, "a", "Pink Jinjo - RBB", RITYPE_JINJO, ACTOR_61_JINJO_PINK, LEVEL_9_RUSTY_BUCKET_BAY), + RI(RI_JINJO_PINK_TREASURE_TROVE_COVE, "a", "Pink Jinjo - TTC", RITYPE_JINJO, ACTOR_61_JINJO_PINK, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_JINJO_YELLOW_BUBBLEGLOOP_SWAMP, "a", "Yellow Jinjo - BGS", RITYPE_JINJO, ACTOR_5E_JINJO_YELLOW, LEVEL_4_BUBBLEGLOOP_SWAMP), + RI(RI_JINJO_YELLOW_CLANKERS_CAVERN, "a", "Yellow Jinjo - CC", RITYPE_JINJO, ACTOR_5E_JINJO_YELLOW, LEVEL_3_CLANKERS_CAVERN), + RI(RI_JINJO_YELLOW_CLICK_CLOCK_WOOD, "a", "Yellow Jinjo - CCW", RITYPE_JINJO, ACTOR_5E_JINJO_YELLOW, LEVEL_8_CLICK_CLOCK_WOOD), + RI(RI_JINJO_YELLOW_FREEZEEZY_PEAK, "a", "Yellow Jinjo - FP", RITYPE_JINJO, ACTOR_5E_JINJO_YELLOW, LEVEL_5_FREEZEEZY_PEAK), + RI(RI_JINJO_YELLOW_GOBIS_VALLEY, "a", "Yellow Jinjo - GV", RITYPE_JINJO, ACTOR_5E_JINJO_YELLOW, LEVEL_7_GOBIS_VALLEY), + RI(RI_JINJO_YELLOW_MAD_MONSTER_MANSION, "a", "Yellow Jinjo - MMM", RITYPE_JINJO, ACTOR_5E_JINJO_YELLOW, LEVEL_A_MAD_MONSTER_MANSION), + RI(RI_JINJO_YELLOW_MUMBOS_MOUNTAIN, "a", "Yellow Jinjo - MM", RITYPE_JINJO, ACTOR_5E_JINJO_YELLOW, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_JINJO_YELLOW_RUSTY_BUCKET_BAY, "a", "Yellow Jinjo - RBB", RITYPE_JINJO, ACTOR_5E_JINJO_YELLOW, LEVEL_9_RUSTY_BUCKET_BAY), + RI(RI_JINJO_YELLOW_TREASURE_TROVE_COVE, "a", "Yellow Jinjo - TTC", RITYPE_JINJO, ACTOR_5E_JINJO_YELLOW, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_MOLEHILL_BARGE, "", "Beak Barge", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN), + RI(RI_MOLEHILL_BEAK_BOMB, "", "Beak Bomb", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_5_FREEZEEZY_PEAK), + RI(RI_MOLEHILL_BEAK_BUSTER, "", "Beak Buster", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_MOLEHILL_CAMERA_CONTROL, "", "Camera Control", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN), + RI(RI_MOLEHILL_CLAW_SWIPE, "", "Claw Swipe", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN), + RI(RI_MOLEHILL_CLIMB, "", "Climb", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN), + RI(RI_MOLEHILL_DIVE, "", "Dive", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN), + RI(RI_MOLEHILL_EGGS, "", "Eggs", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_MOLEHILL_FLAP_FLIP, "", "Flap Flip", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_B_SPIRAL_MOUNTAIN), + RI(RI_MOLEHILL_FLIGHT, "", "Flight", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_MOLEHILL_SHOCK_JUMP, "", "Shock Jump", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_MOLEHILL_TALON_TROT, "", "Talon Trot", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_MOLEHILL_TURBO_TALON, "", "Turbo Talon", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_7_GOBIS_VALLEY), + RI(RI_MOLEHILL_WADING_BOOTS, "", "Wading Boots", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_4_BUBBLEGLOOP_SWAMP), + RI(RI_MOLEHILL_WONDERWING, "", "Wonderwing", RITYPE_MOLEHILL, ACTOR_12C_MOLEHILL, LEVEL_3_CLANKERS_CAVERN), + RI(RI_MUMBO_TOKEN, "a", "Mumbo Token", RITYPE_MUMBO_TOKEN, ACTOR_2D_MUMBO_TOKEN, LEVEL_D_CUTSCENE), + RI(RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, "a", "Note - BGS", RITYPE_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, LEVEL_4_BUBBLEGLOOP_SWAMP), + RI(RI_MUSIC_NOTE_CLANKERS_CAVERN, "a", "Note - CC", RITYPE_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, LEVEL_3_CLANKERS_CAVERN), + RI(RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, "a", "Note - CCW", RITYPE_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, LEVEL_8_CLICK_CLOCK_WOOD), + RI(RI_MUSIC_NOTE_FREEZEEZY_PEAK, "a", "Note - FP", RITYPE_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, LEVEL_5_FREEZEEZY_PEAK), + RI(RI_MUSIC_NOTE_GOBIS_VALLEY, "a", "Note - GV", RITYPE_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, LEVEL_7_GOBIS_VALLEY), + RI(RI_MUSIC_NOTE_MAD_MONSTER_MANSION, "a", "Note - MMM", RITYPE_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, LEVEL_A_MAD_MONSTER_MANSION), + RI(RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, "a", "Note - MM", RITYPE_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, LEVEL_1_MUMBOS_MOUNTAIN), + RI(RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, "a", "Note - RBB", RITYPE_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, LEVEL_9_RUSTY_BUCKET_BAY), + RI(RI_MUSIC_NOTE_TREASURE_TROVE_COVE, "a", "Note - TTC", RITYPE_MUSIC_NOTE, ACTOR_51_MUSIC_NOTE, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_STOP_N_SWOP_EGG_BLUE, "a", "Blue Egg", RITYPE_SNS_EGG, ACTOR_25E_SNS_EGG, LEVEL_7_GOBIS_VALLEY), + RI(RI_STOP_N_SWOP_EGG_CYAN, "a", "Cyan Egg", RITYPE_SNS_EGG, ACTOR_25E_SNS_EGG, LEVEL_A_MAD_MONSTER_MANSION), + RI(RI_STOP_N_SWOP_EGG_GREEN, "a", "Green Egg", RITYPE_SNS_EGG, ACTOR_25E_SNS_EGG, LEVEL_A_MAD_MONSTER_MANSION), + RI(RI_STOP_N_SWOP_EGG_PINK, "a", "Pink Egg", RITYPE_SNS_EGG, ACTOR_25E_SNS_EGG, LEVEL_2_TREASURE_TROVE_COVE), + RI(RI_STOP_N_SWOP_EGG_RED, "a", "Red Egg", RITYPE_SNS_EGG, ACTOR_25E_SNS_EGG, LEVEL_9_RUSTY_BUCKET_BAY), + RI(RI_STOP_N_SWOP_EGG_YELLOW, "a", "Yellow Egg", RITYPE_SNS_EGG, ACTOR_25E_SNS_EGG, LEVEL_8_CLICK_CLOCK_WOOD), + RI(RI_STOP_N_SWOP_ICE_KEY, "an", "Ice Key", RITYPE_SNS_KEY, ACTOR_25D_ICE_KEY, LEVEL_5_FREEZEEZY_PEAK), + RI(RI_AP_ITEM_PROGRESSION, "a", "AP Progression Item", RITYPE_AP_ITEM, ACTOR_3CD_CUSTOM_COLLECTIBLE, LEVEL_D_CUTSCENE), }; // clang-format on @@ -44,5 +133,14 @@ RandoItemId GetRandoItemByActorId(actor_e actorId) { return RI_UNKNOWN; } +actor_e GetActorIdByRandoItemId(RandoItemId randoItemId) { + for (auto& [itemId, randoStaticItem] : Items) { + if (itemId == randoItemId) { + return (actor_e)randoStaticItem.actorId; + } + } + return ACTOR_1_UNKNOWN; +} + } // namespace StaticData } // namespace Rando \ No newline at end of file diff --git a/src/port/Rando/StaticData/Options.cpp b/src/port/Rando/StaticData/Options.cpp index 4afa5590e..066e19c50 100644 --- a/src/port/Rando/StaticData/Options.cpp +++ b/src/port/Rando/StaticData/Options.cpp @@ -15,15 +15,18 @@ namespace StaticData { // clang-format off std::map Options = { - RO(RO_LOGIC, RO_LOGIC_GLITCHLESS), - RO(RO_SPAWN_JUNK, RO_GENERIC_OFF), - RO(RO_SHUFFLE_EMPTY_HONEYCOMBS, RO_GENERIC_OFF), - RO(RO_SHUFFLE_JIGGIES, RO_GENERIC_OFF), - RO(RO_SHUFFLE_JINJOS, RO_GENERIC_OFF), - RO(RO_SHUFFLE_MOLEHILLS, RO_GENERIC_OFF), - RO(RO_SHUFFLE_MUMBO_TOKENS, RO_GENERIC_OFF), - RO(RO_SHUFFLE_MUSIC_NOTES, RO_GENERIC_OFF), - RO(RO_SHUFFLE_STOP_N_SWOP, RO_GENERIC_OFF), + RO(RO_LOGIC, RO_LOGIC_GLITCHLESS), + RO(RO_SPAWN_JUNK, RO_GENERIC_OFF), + RO(RO_SHUFFLE_BEEHIVE_HONEYCOMBS, RO_GENERIC_OFF), + RO(RO_SHUFFLE_BLUE_EGGS, RO_GENERIC_OFF), + RO(RO_SHUFFLE_EMPTY_HONEYCOMBS, RO_GENERIC_OFF), + RO(RO_SHUFFLE_EXTRA_LIVES, RO_GENERIC_OFF), + RO(RO_SHUFFLE_JIGGIES, RO_GENERIC_OFF), + RO(RO_SHUFFLE_JINJOS, RO_GENERIC_OFF), + RO(RO_SHUFFLE_MOLEHILLS, RO_GENERIC_OFF), + RO(RO_SHUFFLE_MUMBO_TOKENS, RO_GENERIC_OFF), + RO(RO_SHUFFLE_MUSIC_NOTES, RO_GENERIC_OFF), + RO(RO_SHUFFLE_STOP_N_SWOP, RO_GENERIC_OFF), }; // clang-format on diff --git a/src/port/Rando/StaticData/StaticData.h b/src/port/Rando/StaticData/StaticData.h index 0b6e807e3..030f55954 100644 --- a/src/port/Rando/StaticData/StaticData.h +++ b/src/port/Rando/StaticData/StaticData.h @@ -2,6 +2,7 @@ #define RANDO_STATIC_DATA_H #include +#include #include #include #include "port/Rando/Types.h" @@ -26,7 +27,7 @@ struct RandoStaticCheck { const char* name; RandoCheckType randoCheckType; int32_t worldId; - int32_t actorId; + RandoItemId randoItemId; int32_t collectionId; int32_t posX; int32_t posY; @@ -50,9 +51,11 @@ struct RandoStaticItem { const char* name; RandoItemType randoItemType; int16_t actorId; + int16_t worldId; }; RandoItemId GetRandoItemByActorId(actor_e actorId); +actor_e GetActorIdByRandoItemId(RandoItemId randoItemId); extern std::map Items; @@ -88,6 +91,9 @@ extern std::map Flags; void ModifyRandoInfFlagState(RandoCheckId randoCheckId); +extern std::unordered_map locationNameToEnum; +extern std::unordered_map itemNameToEnum; + } // namespace StaticData } // namespace Rando diff --git a/src/port/Rando/Types.h b/src/port/Rando/Types.h index f5b925d42..146d7c8cc 100644 --- a/src/port/Rando/Types.h +++ b/src/port/Rando/Types.h @@ -10,7 +10,10 @@ typedef enum { typedef enum { RCTYPE_UNKNOWN, + RCTYPE_BLUE_EGG, RCTYPE_EMPTY_HONEYCOMB, + RCTYPE_EXTRA_LIFE, + RCTYPE_HONEYCOMB, RCTYPE_JIGGY, RCTYPE_JINJO, RCTYPE_MOLEHILL, @@ -22,8 +25,75 @@ typedef enum { typedef enum { RC_UNKNOWN, + RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_1, + RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_2, + RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_3, + RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_4, + RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_5, + RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_1, + RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_2, + RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_3, + RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_4, + RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_5, + RC_BGS_BLUE_EGG_ELEVATED_WALKWAY_6, + RC_BGS_BLUE_EGG_INSIDE_MR_VILES_1, + RC_BGS_BLUE_EGG_INSIDE_MR_VILES_2, + RC_BGS_BLUE_EGG_INSIDE_TANKTUP_1, + RC_BGS_BLUE_EGG_INSIDE_TANKTUP_2, + RC_BGS_BLUE_EGG_INSIDE_TANKTUP_3, + RC_BGS_BLUE_EGG_INSIDE_TANKTUP_4, + RC_BGS_BLUE_EGG_MAZE_WALKWAY_1, + RC_BGS_BLUE_EGG_MAZE_WALKWAY_2, + RC_BGS_BLUE_EGG_MAZE_WALKWAY_3, + RC_BGS_BLUE_EGG_MAZE_WALKWAY_4, + RC_BGS_BLUE_EGG_MAZE_WALKWAY_5, + RC_BGS_BLUE_EGG_POLE_NEAR_BLUE_JINJO_1, + RC_BGS_BLUE_EGG_POLE_NEAR_BLUE_JINJO_2, + RC_BGS_BLUE_EGG_POLE_NEAR_BLUE_JINJO_3, + RC_BGS_BLUE_EGG_POLE_NEAR_ENTRANCE_1, + RC_BGS_BLUE_EGG_POLE_NEAR_ENTRANCE_2, + RC_BGS_BLUE_EGG_POLE_NEAR_ENTRANCE_3, + RC_BGS_BLUE_EGG_STUMP_NEAR_BIG_EGG_1, + RC_BGS_BLUE_EGG_STUMP_NEAR_BIG_EGG_2, + RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_1, + RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_2, + RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_3, + RC_BGS_BLUE_EGG_SWAMP_BEHIND_TANKTUP_4, + RC_BGS_BLUE_EGG_SWAMP_NEAR_HUTS_1, + RC_BGS_BLUE_EGG_SWAMP_NEAR_HUTS_2, + RC_BGS_BLUE_EGG_SWAMP_NEAR_HUTS_3, + RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_1, + RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_2, + RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_3, + RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_4, + RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_5, + RC_BGS_BLUE_EGG_SWAMP_NEAR_MR_VILES_6, + RC_BGS_BLUE_EGG_SWAMP_NEAR_SWITCH_1, + RC_BGS_BLUE_EGG_SWAMP_NEAR_SWITCH_2, + RC_BGS_BLUE_EGG_SWAMP_NEAR_SWITCH_3, + RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_1, + RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_2, + RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_3, + RC_BGS_BLUE_EGG_SWAMP_UNDER_HUTS_4, RC_BGS_EMPTY_HONEYCOMB_MUMBOS, RC_BGS_EMPTY_HONEYCOMB_TANKTUP, + RC_BGS_EXTRA_LIFE_ABOVE_THE_EGG, + RC_BGS_EXTRA_LIFE_MR_VILE_1, + RC_BGS_EXTRA_LIFE_MR_VILE_2, + RC_BGS_EXTRA_LIFE_MR_VILE_3, + RC_BGS_EXTRA_LIFE_SWAMP_BY_THE_HUTS, + RC_BGS_HONEYCOMB_BEEHIVE_ELEVATED_WALKWAY_1, + RC_BGS_HONEYCOMB_BEEHIVE_ELEVATED_WALKWAY_2, + RC_BGS_HONEYCOMB_BEEHIVE_ELEVATED_WALKWAY_3, + RC_BGS_HONEYCOMB_BEEHIVE_NEAR_MAZE_ENTRANCE_1, + RC_BGS_HONEYCOMB_BEEHIVE_NEAR_MAZE_ENTRANCE_2, + RC_BGS_HONEYCOMB_BEEHIVE_NEAR_MAZE_ENTRANCE_3, + RC_BGS_HONEYCOMB_BEEHIVE_NEAR_TANKTUP_1, + RC_BGS_HONEYCOMB_BEEHIVE_NEAR_TANKTUP_2, + RC_BGS_HONEYCOMB_BEEHIVE_NEAR_TANKTUP_3, + RC_BGS_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_1, + RC_BGS_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_2, + RC_BGS_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_3, RC_BGS_JIGGY_CROCTUS, RC_BGS_JIGGY_ELEVATED_WALKWAY, RC_BGS_JIGGY_FLIBBITS, @@ -150,8 +220,64 @@ typedef enum { RC_BGS_NOTE_THIRD_SHORT_SWAMP_LOG_1, RC_BGS_NOTE_THIRD_SHORT_SWAMP_LOG_2, RC_BGS_NOTE_THIRD_SHORT_SWAMP_LOG_3, + RC_CC_BLUE_EGG_ABOVEWATER_PIPE_1, + RC_CC_BLUE_EGG_ABOVEWATER_PIPE_2, + RC_CC_BLUE_EGG_ABOVEWATER_PIPE_3, + RC_CC_BLUE_EGG_ABOVEWATER_PIPE_4, + RC_CC_BLUE_EGG_ABOVEWATER_PIPE_5, + RC_CC_BLUE_EGG_ALCOVE_WITH_OPEN_GRATE_1, + RC_CC_BLUE_EGG_ALCOVE_WITH_OPEN_GRATE_2, + RC_CC_BLUE_EGG_ENTRANCE_1, + RC_CC_BLUE_EGG_ENTRANCE_2, + RC_CC_BLUE_EGG_ENTRANCE_3, + RC_CC_BLUE_EGG_ENTRANCE_4, + RC_CC_BLUE_EGG_ENTRANCE_5, + RC_CC_BLUE_EGG_ENTRANCE_6, + RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_1, + RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_2, + RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_3, + RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_4, + RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_5, + RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_6, + RC_CC_BLUE_EGG_LEDGE_NEAR_CHOMPA_7, + RC_CC_BLUE_EGG_NEAR_RINGS_1, + RC_CC_BLUE_EGG_NEAR_RINGS_2, + RC_CC_BLUE_EGG_NEAR_RINGS_3, + RC_CC_BLUE_EGG_NEAR_RINGS_4, + RC_CC_BLUE_EGG_NEAR_RINGS_5, + RC_CC_BLUE_EGG_NEAR_RINGS_6, + RC_CC_BLUE_EGG_NEAR_RINGS_7, + RC_CC_BLUE_EGG_NEAR_RINGS_8, + RC_CC_BLUE_EGG_NEAR_SNIPPETS_1, + RC_CC_BLUE_EGG_NEAR_SNIPPETS_2, + RC_CC_BLUE_EGG_NEAR_SNIPPETS_3, + RC_CC_BLUE_EGG_NEAR_SNIPPETS_4, + RC_CC_BLUE_EGG_NEAR_SNIPPETS_5, + RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_1, + RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_2, + RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_3, + RC_CC_BLUE_EGG_SLOW_SAWBLADES_EXIT_4, + RC_CC_BLUE_EGG_UNDERWATER_PIPE_1, + RC_CC_BLUE_EGG_UNDERWATER_PIPE_2, + RC_CC_BLUE_EGG_UNDERWATER_PIPE_3, + RC_CC_BLUE_EGG_UNDERWATER_PIPE_4, + RC_CC_BLUE_EGG_UNDERWATER_PIPE_5, + RC_CC_BLUE_EGG_YELLOW_GRATE_1, + RC_CC_BLUE_EGG_YELLOW_GRATE_2, RC_CC_EMPTY_HONEYCOMB_ABOVEWATER, RC_CC_EMPTY_HONEYCOMB_UNDERWATER, + RC_CC_EXTRA_LIFE_CLANKERS_LEFT_FIN, + RC_CC_EXTRA_LIFE_JINJO_PIPE, + RC_CC_EXTRA_LIFE_YELLOW_GRATE, + RC_CC_HONEYCOMB_BEEHIVE_INSIDE_CLANKER_1, + RC_CC_HONEYCOMB_BEEHIVE_INSIDE_CLANKER_2, + RC_CC_HONEYCOMB_BEEHIVE_INSIDE_CLANKER_3, + RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_ENTRANCE_1, + RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_ENTRANCE_2, + RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_ENTRANCE_3, + RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_YELLOW_GRATES_1, + RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_YELLOW_GRATES_2, + RC_CC_HONEYCOMB_BEEHIVE_NEAR_THE_YELLOW_GRATES_3, RC_CC_JIGGY_BOLT, RC_CC_JIGGY_CLANKER_RAISED, RC_CC_JIGGY_FAST_SAWBLADES, @@ -273,8 +399,164 @@ typedef enum { RC_CC_NOTE_UNDERWATER_PIPE_7, RC_CC_NOTE_YELLOW_GRATE_1, RC_CC_NOTE_YELLOW_GRATE_2, + RC_CCW_BLUE_EGG_AUTUMN_GNAWTYS_INTERIOR_1, + RC_CCW_BLUE_EGG_AUTUMN_GNAWTYS_INTERIOR_2, + RC_CCW_BLUE_EGG_AUTUMN_GNAWTYS_INTERIOR_3, + RC_CCW_BLUE_EGG_AUTUMN_LEAF_NEAR_ENTRANCE_1, + RC_CCW_BLUE_EGG_AUTUMN_LEAF_NEAR_ENTRANCE_2, + RC_CCW_BLUE_EGG_AUTUMN_NABNUTS_WINDOW_INTERIOR_1, + RC_CCW_BLUE_EGG_AUTUMN_NABNUTS_WINDOW_INTERIOR_2, + RC_CCW_BLUE_EGG_AUTUMN_NABNUTS_WINDOW_INTERIOR_3, + RC_CCW_BLUE_EGG_AUTUMN_NEAR_EYRIES_NEST_1, + RC_CCW_BLUE_EGG_AUTUMN_NEAR_EYRIES_NEST_2, + RC_CCW_BLUE_EGG_AUTUMN_NEAR_EYRIES_NEST_3, + RC_CCW_BLUE_EGG_AUTUMN_NEAR_MUMBOS_SKULL_1, + RC_CCW_BLUE_EGG_AUTUMN_NEAR_MUMBOS_SKULL_2, + RC_CCW_BLUE_EGG_AUTUMN_NEAR_MUMBOS_SKULL_3, + RC_CCW_BLUE_EGG_AUTUMN_NEAR_TREEHOUSE_1, + RC_CCW_BLUE_EGG_AUTUMN_NEAR_TREEHOUSE_2, + RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_1, + RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_2, + RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_3, + RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_4, + RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_5, + RC_CCW_BLUE_EGG_AUTUMN_TOP_OF_BRANCH_6, + RC_CCW_BLUE_EGG_ENTRANCE_HUB_1, + RC_CCW_BLUE_EGG_ENTRANCE_HUB_2, + RC_CCW_BLUE_EGG_ENTRANCE_HUB_3, + RC_CCW_BLUE_EGG_ENTRANCE_HUB_4, + RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_1, + RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_2, + RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_3, + RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_4, + RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_5, + RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_6, + RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_7, + RC_CCW_BLUE_EGG_SPRING_EYRIES_NEST_8, + RC_CCW_BLUE_EGG_SPRING_INSIDE_MUMBOS_SKULL_1, + RC_CCW_BLUE_EGG_SPRING_INSIDE_MUMBOS_SKULL_2, + RC_CCW_BLUE_EGG_SPRING_INSIDE_MUMBOS_SKULL_3, + RC_CCW_BLUE_EGG_SPRING_INSIDE_NABNUTS_HOUSE_1, + RC_CCW_BLUE_EGG_SPRING_INSIDE_NABNUTS_HOUSE_2, + RC_CCW_BLUE_EGG_SPRING_INSIDE_NABNUTS_HOUSE_3, + RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_1, + RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_2, + RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_3, + RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_4, + RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_5, + RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_6, + RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_7, + RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_8, + RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_9, + RC_CCW_BLUE_EGG_SPRING_LOWER_TREE_LEDGE_10, + RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_1, + RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_2, + RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_3, + RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_4, + RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_5, + RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_6, + RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_7, + RC_CCW_BLUE_EGG_SPRING_NEAR_BEEHIVE_8, + RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_1, + RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_2, + RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_3, + RC_CCW_BLUE_EGG_SPRING_NEAR_GNAWTYS_HOUSE_4, + RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_1, + RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_2, + RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_3, + RC_CCW_BLUE_EGG_SPRING_UNFINISHED_BRIDGE_4, + RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_1, + RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_2, + RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_3, + RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_4, + RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_5, + RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_6, + RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_7, + RC_CCW_BLUE_EGG_SUMMER_NEAR_BIG_FLOWER_8, + RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_1, + RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_2, + RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_3, + RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_4, + RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_5, + RC_CCW_BLUE_EGG_SUMMER_NEAR_MUMBOS_SKULL_6, + RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_1, + RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_2, + RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_3, + RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_4, + RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_5, + RC_CCW_BLUE_EGG_SUMMER_NEAR_NABNUTS_HOUSE_6, + RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_1, + RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_2, + RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_3, + RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_4, + RC_CCW_BLUE_EGG_WINTER_INSIDE_NABNUTS_HOUSE_5, + RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_1, + RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_2, + RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_3, + RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_4, + RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_5, + RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_6, + RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_7, + RC_CCW_BLUE_EGG_WINTER_NABNUTS_WINDOW_INTERIOR_8, + RC_CCW_BLUE_EGG_WINTER_WINDOW_ABOVE_NABNUT_1, + RC_CCW_BLUE_EGG_WINTER_WINDOW_ABOVE_NABNUT_2, + RC_CCW_BLUE_EGG_WINTER_WINDOW_ABOVE_NABNUT_3, RC_CCW_EMPTY_HONEYCOMB_GNAWTYS, RC_CCW_EMPTY_HONEYCOMB_NABNUTS, + RC_CCW_EXTRA_LIFE_AUTUMN_BEHIND_GNAWTYS_FIRE, + RC_CCW_EXTRA_LIFE_AUTUMN_SNAREBEAR_NEAR_TREEHOUSE, + RC_CCW_EXTRA_LIFE_AUTUMN_TOP_ROOM, + RC_CCW_EXTRA_LIFE_SPRING_BRANCHES_ABOVE_MUMBOS_SKULL, + RC_CCW_EXTRA_LIFE_SPRING_SNAREBEAR_IN_THE_LAKE, + RC_CCW_EXTRA_LIFE_SPRING_TOP_ROOM_BY_THE_JIGGY, + RC_CCW_EXTRA_LIFE_SPRING_TOP_ROOM_IN_THE_BRANCHES, + RC_CCW_EXTRA_LIFE_SUMMER_NEAR_THE_BIG_FLOWER, + RC_CCW_EXTRA_LIFE_SUMMER_TREEHOUSE, + RC_CCW_EXTRA_LIFE_SUMMER_TOP_ROOM, + RC_CCW_EXTRA_LIFE_WINTER_BENEATH_SIR_SLUSH, + RC_CCW_EXTRA_LIFE_WINTER_UNDER_THE_ICY_LAKE, + RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_ABOVE_THE_LAKE_1, + RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_ABOVE_THE_LAKE_2, + RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_ABOVE_THE_LAKE_3, + RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_GRASS_NEAR_THE_ENTRANCE_1, + RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_GRASS_NEAR_THE_ENTRANCE_2, + RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_GRASS_NEAR_THE_ENTRANCE_3, + RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_IN_THE_TREEHOUSE_1, + RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_IN_THE_TREEHOUSE_2, + RC_CCW_HONEYCOMB_BEEHIVE_AUTUMN_IN_THE_TREEHOUSE_3, + RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_LEFT_OF_SUMMER_DOOR_1, + RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_LEFT_OF_SUMMER_DOOR_2, + RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_LEFT_OF_SUMMER_DOOR_3, + RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_RIGHT_OF_SUMMER_DOOR_1, + RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_RIGHT_OF_SUMMER_DOOR_2, + RC_CCW_HONEYCOMB_BEEHIVE_ENTRANCE_RIGHT_OF_SUMMER_DOOR_3, + RC_CCW_HONEYCOMB_BEEHIVE_SPRING_BY_THE_BIG_FLOWER_1, + RC_CCW_HONEYCOMB_BEEHIVE_SPRING_BY_THE_BIG_FLOWER_2, + RC_CCW_HONEYCOMB_BEEHIVE_SPRING_BY_THE_BIG_FLOWER_3, + RC_CCW_HONEYCOMB_BEEHIVE_SPRING_GRASS_NEAR_THE_ENTRANCE_1, + RC_CCW_HONEYCOMB_BEEHIVE_SPRING_GRASS_NEAR_THE_ENTRANCE_2, + RC_CCW_HONEYCOMB_BEEHIVE_SPRING_GRASS_NEAR_THE_ENTRANCE_3, + RC_CCW_HONEYCOMB_BEEHIVE_SPRING_UNDER_THE_TREEHOUSE_1, + RC_CCW_HONEYCOMB_BEEHIVE_SPRING_UNDER_THE_TREEHOUSE_2, + RC_CCW_HONEYCOMB_BEEHIVE_SPRING_UNDER_THE_TREEHOUSE_3, + RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_DRIED_UP_LAKE_1, + RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_DRIED_UP_LAKE_2, + RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_DRIED_UP_LAKE_3, + RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_GRASS_NEAR_THE_ENTRANCE_1, + RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_GRASS_NEAR_THE_ENTRANCE_2, + RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_GRASS_NEAR_THE_ENTRANCE_3, + RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_OUTSIDE_NABNUTS_1, + RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_OUTSIDE_NABNUTS_2, + RC_CCW_HONEYCOMB_BEEHIVE_SUMMER_OUTSIDE_NABNUTS_3, + RC_CCW_HONEYCOMB_BEEHIVE_WINTER_AROUND_THE_TREE_BASE_1, + RC_CCW_HONEYCOMB_BEEHIVE_WINTER_AROUND_THE_TREE_BASE_2, + RC_CCW_HONEYCOMB_BEEHIVE_WINTER_AROUND_THE_TREE_BASE_3, + RC_CCW_HONEYCOMB_BEEHIVE_WINTER_INSIDE_MUMBOS_SKULL_1, + RC_CCW_HONEYCOMB_BEEHIVE_WINTER_INSIDE_MUMBOS_SKULL_2, + RC_CCW_HONEYCOMB_BEEHIVE_WINTER_INSIDE_MUMBOS_SKULL_3, + RC_CCW_HONEYCOMB_BEEHIVE_WINTER_OUTSIDE_THE_TREEHOUSE_1, + RC_CCW_HONEYCOMB_BEEHIVE_WINTER_OUTSIDE_THE_TREEHOUSE_2, + RC_CCW_HONEYCOMB_BEEHIVE_WINTER_OUTSIDE_THE_TREEHOUSE_3, RC_CCW_JIGGY_EYRIE, RC_CCW_JIGGY_FLOWER, RC_CCW_JIGGY_GNAWTY, @@ -416,8 +698,73 @@ typedef enum { RC_CCW_NOTE_WINTER_TREETOP_PLATFORMS_3, RC_CCW_NOTE_WINTER_TREETOP_PLATFORMS_4, RC_CCW_SNS_YELLOW_EGG, + RC_FP_BLUE_EGG_BEHIND_IGLOO_1, + RC_FP_BLUE_EGG_BEHIND_IGLOO_2, + RC_FP_BLUE_EGG_BEHIND_IGLOO_3, + RC_FP_BLUE_EGG_BEHIND_IGLOO_4, + RC_FP_BLUE_EGG_BEHIND_IGLOO_5, + RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_1, + RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_2, + RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_3, + RC_FP_BLUE_EGG_NEAR_GREEN_PRESENT_4, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_1, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_2, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_3, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_4, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_5, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_6, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_7, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_8, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_9, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_10, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_11, + RC_FP_BLUE_EGG_POTTED_TREE_INTERIOR_12, + RC_FP_BLUE_EGG_SNOWMANS_HAT_1, + RC_FP_BLUE_EGG_SNOWMANS_HAT_2, + RC_FP_BLUE_EGG_SNOWMANS_HAT_3, + RC_FP_BLUE_EGG_SNOWMANS_HAT_4, + RC_FP_BLUE_EGG_SNOWMANS_HAT_5, + RC_FP_BLUE_EGG_SNOWMANS_HAT_6, + RC_FP_BLUE_EGG_SNOWMANS_HAT_7, + RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_1, + RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_2, + RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_3, + RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_4, + RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_5, + RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_6, + RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_7, + RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_8, + RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_9, + RC_FP_BLUE_EGG_WATER_BEHIND_SNOWMAN_10, + RC_FP_BLUE_EGG_WATER_POTTED_TREE_1, + RC_FP_BLUE_EGG_WATER_POTTED_TREE_2, + RC_FP_BLUE_EGG_WATER_POTTED_TREE_3, + RC_FP_BLUE_EGG_WATER_POTTED_TREE_4, + RC_FP_BLUE_EGG_WATER_POTTED_TREE_5, + RC_FP_BLUE_EGG_WATER_POTTED_TREE_6, + RC_FP_BLUE_EGG_WATER_POTTED_TREE_7, + RC_FP_BLUE_EGG_WATER_POTTED_TREE_8, + RC_FP_BLUE_EGG_WOZZAS_CAVE_1, + RC_FP_BLUE_EGG_WOZZAS_CAVE_2, + RC_FP_BLUE_EGG_WOZZAS_CAVE_3, + RC_FP_BLUE_EGG_WOZZAS_CAVE_4, RC_FP_EMPTY_HONEYCOMB_UNDER_SIR_SLUSH, RC_FP_EMPTY_HONEYCOMB_WOZZAS_CAVE, + RC_FP_EXTRA_LIFE_ABOVE_MUMBOS_SKULL, + RC_FP_EXTRA_LIFE_RACE_FINISH_LINE, + RC_FP_EXTRA_LIFE_WOZZAS_CAVE, + RC_FP_HONEYCOMB_BEEHIVE_NEAR_RACE_START_1, + RC_FP_HONEYCOMB_BEEHIVE_NEAR_RACE_START_2, + RC_FP_HONEYCOMB_BEEHIVE_NEAR_RACE_START_3, + RC_FP_HONEYCOMB_BEEHIVE_PRESENT_STACK_1, + RC_FP_HONEYCOMB_BEEHIVE_PRESENT_STACK_2, + RC_FP_HONEYCOMB_BEEHIVE_PRESENT_STACK_3, + RC_FP_HONEYCOMB_BEEHIVE_SCARF_START_1, + RC_FP_HONEYCOMB_BEEHIVE_SCARF_START_2, + RC_FP_HONEYCOMB_BEEHIVE_SCARF_START_3, + RC_FP_HONEYCOMB_BEEHIVE_SCARF_END_1, + RC_FP_HONEYCOMB_BEEHIVE_SCARF_END_2, + RC_FP_HONEYCOMB_BEEHIVE_SCARF_END_3, RC_FP_JIGGY_BEAT_ALL_SIR_SLUSH, RC_FP_JIGGY_BOGGY_RACE_1, RC_FP_JIGGY_BOGGY_RACE_2, @@ -545,6 +892,109 @@ typedef enum { RC_FP_NOTE_SNOWMAN_SCARF_18, RC_FP_NOTE_SNOWMAN_SCARF_19, RC_FP_SNS_ICE_KEY, + RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_1, + RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_2, + RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_3, + RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_4, + RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_5, + RC_GL_BLUE_EGG_ABOVE_350_NOTE_DOOR_6, + RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_1, + RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_2, + RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_3, + RC_GL_BLUE_EGG_BEFORE_GOBIS_VALLEY_ENTRANCE_4, + RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_1, + RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_2, + RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_3, + RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_4, + RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_5, + RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_6, + RC_GL_BLUE_EGG_BEFORE_SECOND_NOTE_DOOR_7, + RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_1, + RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_2, + RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_3, + RC_GL_BLUE_EGG_CCW_ENTRANCE_UPPER_TUNNEL_4, + RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_1, + RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_2, + RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_3, + RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_4, + RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_5, + RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_6, + RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_7, + RC_GL_BLUE_EGG_BGS_PUZZLE_BOARD_8, + RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_1, + RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_2, + RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_3, + RC_GL_BLUE_EGG_FP_PUZZLE_BOARD_4, + RC_GL_BLUE_EGG_MMM_ENTRANCE_1, + RC_GL_BLUE_EGG_MMM_ENTRANCE_2, + RC_GL_BLUE_EGG_MMM_ENTRANCE_3, + RC_GL_BLUE_EGG_MMM_ENTRANCE_4, + RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_1, + RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_2, + RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_3, + RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_4, + RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_5, + RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_6, + RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_7, + RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_8, + RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_9, + RC_GL_BLUE_EGG_MMM_PUZZLE_BOARD_10, + RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_1, + RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_2, + RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_3, + RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_4, + RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_5, + RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_6, + RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_7, + RC_GL_BLUE_EGG_NEAR_PURPLE_CAULDRON_8, + RC_GL_BLUE_EGG_RBB_ENTRANCE_1, + RC_GL_BLUE_EGG_RBB_ENTRANCE_2, + RC_GL_BLUE_EGG_RBB_ENTRANCE_3, + RC_GL_BLUE_EGG_RBB_ENTRANCE_4, + RC_GL_BLUE_EGG_RBB_PUZZLE_BOARD_1, + RC_GL_BLUE_EGG_RBB_PUZZLE_BOARD_2, + RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_1, + RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_2, + RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_3, + RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_4, + RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_5, + RC_GL_BLUE_EGG_WATER_SWITCH_1_ROOM_6, + RC_GL_EXTRA_LIFE_ABOVE_CLICK_CLOCK_WOODS_ENTRANCE, + RC_GL_EXTRA_LIFE_ABOVE_THE_LOG_NEAR_BUBBLEGLOOP, + RC_GL_EXTRA_LIFE_BACK_OF_GRUNTY_STATUES_HAT, + RC_GL_EXTRA_LIFE_BEHIND_MUMBOS_SHACK, + RC_GL_EXTRA_LIFE_CLICK_CLOCK_WOODS_PUZZLE_ROOM, + RC_GL_EXTRA_LIFE_MAD_MONSTER_MANSION_PUZZLE_ROOM, + RC_GL_HONEYCOMB_BEEHIVE_BEHIND_BGS_ENTRANCE_1, + RC_GL_HONEYCOMB_BEEHIVE_BEHIND_BGS_ENTRANCE_2, + RC_GL_HONEYCOMB_BEEHIVE_BEHIND_BGS_ENTRANCE_3, + RC_GL_HONEYCOMB_BEEHIVE_BEHIND_MMM_ENTRANCE_1, + RC_GL_HONEYCOMB_BEEHIVE_BEHIND_MMM_ENTRANCE_2, + RC_GL_HONEYCOMB_BEEHIVE_BEHIND_MMM_ENTRANCE_3, + RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_LEFT_1, + RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_LEFT_2, + RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_LEFT_3, + RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_RIGHT_1, + RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_RIGHT_2, + RC_GL_HONEYCOMB_BEEHIVE_BIG_GRUNTY_STATUE_RIGHT_3, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_50_NOTE_DOOR_1, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_50_NOTE_DOOR_2, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_50_NOTE_DOOR_3, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_CC_ENTRANCE_1, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_CC_ENTRANCE_2, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_CC_ENTRANCE_3, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_CCW_PUZZLE_SWITCH_1, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_CCW_PUZZLE_SWITCH_2, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_CCW_PUZZLE_SWITCH_3, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_FIRST_GRUNTY_STATUE_1, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_FIRST_GRUNTY_STATUE_2, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_FIRST_GRUNTY_STATUE_3, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_TTC_ENTRANCE_1, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_TTC_ENTRANCE_2, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_TTC_ENTRANCE_3, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_RBB_PUZZLE_1, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_RBB_PUZZLE_2, + RC_GL_HONEYCOMB_BEEHIVE_NEAR_RBB_PUZZLE_3, RC_GL_JIGGY_LOBBY, RC_GL_JIGGY_WITCH_SWITCH_BUBBLEGLOOP_SWAMP, RC_GL_JIGGY_WITCH_SWITCH_CLANKERS_CAVERN, @@ -565,8 +1015,75 @@ typedef enum { RC_GL_MUMBO_TOKEN_WHIPCRACK_NEAR_MMM_JIGGY_PODIUM, RC_GL_MUMBO_TOKEN_BEHIND_MUMBO_IN_CRYPT, RC_GL_MUMBO_TOKEN_ABOVE_NOTE_DOOR_WATER_AREA, + RC_GV_BLUE_EGG_BEHIND_WATER_PYRAMID_1, + RC_GV_BLUE_EGG_BEHIND_WATER_PYRAMID_2, + RC_GV_BLUE_EGG_BEHIND_WATER_PYRAMID_3, + RC_GV_BLUE_EGG_ENTRANCE_1, + RC_GV_BLUE_EGG_ENTRANCE_2, + RC_GV_BLUE_EGG_ENTRANCE_3, + RC_GV_BLUE_EGG_ENTRANCE_4, + RC_GV_BLUE_EGG_ENTRANCE_5, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_1, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_2, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_3, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_4, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_5, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_6, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_7, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_8, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_9, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_10, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_11, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_12, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_13, + RC_GV_BLUE_EGG_MAZE_PYRAMID_INTERIOR_14, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_1, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_2, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_3, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_4, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_5, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_6, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_7, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_8, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_9, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_10, + RC_GV_BLUE_EGG_NEAR_MAZE_PYRAMID_11, + RC_GV_BLUE_EGG_SPHYNX_INTERIOR_1, + RC_GV_BLUE_EGG_SPHYNX_INTERIOR_2, + RC_GV_BLUE_EGG_SPHYNX_INTERIOR_3, + RC_GV_BLUE_EGG_SPHYNX_INTERIOR_4, + RC_GV_BLUE_EGG_SPHYNX_INTERIOR_5, + RC_GV_BLUE_EGG_SPHYNX_INTERIOR_6, + RC_GV_BLUE_EGG_SPHYNX_INTERIOR_7, + RC_GV_BLUE_EGG_SPHYNX_INTERIOR_8, + RC_GV_BLUE_EGG_SPHYNX_LEFT_1, + RC_GV_BLUE_EGG_SPHYNX_LEFT_2, + RC_GV_BLUE_EGG_SPHYNX_LEFT_3, + RC_GV_BLUE_EGG_SPHYNX_RIGHT_1, + RC_GV_BLUE_EGG_SPHYNX_RIGHT_2, + RC_GV_BLUE_EGG_SPHYNX_RIGHT_3, + RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_1, + RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_2, + RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_3, + RC_GV_BLUE_EGG_WATER_PYRAMID_INTERIOR_4, + RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_1, + RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_2, + RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_3, + RC_GV_BLUE_EGG_WATER_PYRAMID_TOP_4, RC_GV_EMPTY_HONEYCOMB_CACTUS, RC_GV_EMPTY_HONEYCOMB_GOBI, + RC_GV_EXTRA_LIFE_BEHIND_JINXY, + RC_GV_EXTRA_LIFE_INSIDE_SANDYBUTTS_TOMB, + RC_GV_EXTRA_LIFE_ON_TOP_OF_WATER_PYRAMID, + RC_GV_HONEYCOMB_BEEHIVE_BEHIND_WATER_PYRAMID_1, + RC_GV_HONEYCOMB_BEEHIVE_BEHIND_WATER_PYRAMID_2, + RC_GV_HONEYCOMB_BEEHIVE_BEHIND_WATER_PYRAMID_3, + RC_GV_HONEYCOMB_BEEHIVE_NEAR_PUZZLE_PYRAMID_1, + RC_GV_HONEYCOMB_BEEHIVE_NEAR_PUZZLE_PYRAMID_2, + RC_GV_HONEYCOMB_BEEHIVE_NEAR_PUZZLE_PYRAMID_3, + RC_GV_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_1, + RC_GV_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_2, + RC_GV_HONEYCOMB_BEEHIVE_NEAR_WARP_PAD_3, RC_GV_JIGGY_ANCIENT_ONES, RC_GV_JIGGY_GOBI_1, RC_GV_JIGGY_GOBI_2, @@ -694,8 +1211,56 @@ typedef enum { RC_GV_NOTE_WATER_PYRAMID_TOP_3, RC_GV_NOTE_WATER_PYRAMID_TOP_4, RC_GV_SNS_BLUE_EGG, + RC_MM_BLUE_EGG_HUT_BUNDLE_1, + RC_MM_BLUE_EGG_HUT_BUNDLE_2, + RC_MM_BLUE_EGG_HUT_BUNDLE_3, + RC_MM_BLUE_EGG_HUT_BUNDLE_4, + RC_MM_BLUE_EGG_HUT_BUNDLE_5, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_1, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_2, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_3, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_4, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_5, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_6, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_7, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_8, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_9, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_10, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_11, + RC_MM_BLUE_EGG_INSIDE_MUMBOS_SKULL_12, + RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_1, + RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_2, + RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_3, + RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_4, + RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_5, + RC_MM_BLUE_EGG_INSIDE_TICKERS_TOWER_6, + RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_1, + RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_2, + RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_3, + RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_4, + RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_5, + RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_6, + RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_7, + RC_MM_BLUE_EGG_NEAR_CONGA_LOWER_LEDGE_8, + RC_MM_BLUE_EGG_NEAR_CONGA_MIDDLE_LEDGE_1, + RC_MM_BLUE_EGG_NEAR_CONGA_MIDDLE_LEDGE_2, + RC_MM_BLUE_EGG_NEAR_CONGA_UPPER_LEDGE_1, + RC_MM_BLUE_EGG_NEAR_CONGA_UPPER_LEDGE_2, + RC_MM_BLUE_EGG_UNDER_RUINS_1, + RC_MM_BLUE_EGG_UNDER_RUINS_2, + RC_MM_BLUE_EGG_UNDER_RUINS_3, + RC_MM_BLUE_EGG_UNDER_RUINS_4, + RC_MM_BLUE_EGG_UNDER_RUINS_5, RC_MM_EMPTY_HONEYCOMB_HILL, RC_MM_EMPTY_HONEYCOMB_JUJU, + RC_MM_EXTRA_LIFE_HUT, + RC_MM_EXTRA_LIFE_TICKERS_TOWER, + RC_MM_HONEYCOMB_BEEHIVE_BY_BIG_BUTT_1, + RC_MM_HONEYCOMB_BEEHIVE_BY_BIG_BUTT_2, + RC_MM_HONEYCOMB_BEEHIVE_BY_BIG_BUTT_3, + RC_MM_HONEYCOMB_BEEHIVE_BY_THE_HUTS_1, + RC_MM_HONEYCOMB_BEEHIVE_BY_THE_HUTS_2, + RC_MM_HONEYCOMB_BEEHIVE_BY_THE_HUTS_3, RC_MM_JIGGY_CHIMPY, RC_MM_JIGGY_CONGA, RC_MM_JIGGY_HILL, @@ -819,8 +1384,100 @@ typedef enum { RC_MM_NOTE_INSIDE_TICKERS_TOWER_4, RC_MM_NOTE_INSIDE_TICKERS_TOWER_5, RC_MM_NOTE_INSIDE_TICKERS_TOWER_6, + RC_MMM_BLUE_EGG_BEDROOM_1, + RC_MMM_BLUE_EGG_BEDROOM_2, + RC_MMM_BLUE_EGG_BEDROOM_3, + RC_MMM_BLUE_EGG_CELLAR_1, + RC_MMM_BLUE_EGG_CELLAR_2, + RC_MMM_BLUE_EGG_CELLAR_3, + RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHEAST_1, + RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHEAST_2, + RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHWEST_1, + RC_MMM_BLUE_EGG_CHURCH_PEW_NORTHWEST_2, + RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHEAST_1, + RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHEAST_2, + RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHWEST_1, + RC_MMM_BLUE_EGG_CHURCH_PEW_SOUTHWEST_2, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_1, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_2, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_3, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_4, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_5, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_6, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_7, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_8, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_9, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_10, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_11, + RC_MMM_BLUE_EGG_CHURCH_RAFTERS_12, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_1, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_2, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_3, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_4, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_5, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_6, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_7, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_8, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_9, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_10, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_11, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_12, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_13, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_14, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_15, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_16, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_17, + RC_MMM_BLUE_EGG_CHURCH_WINDOW_18, + RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_1, + RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_2, + RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_3, + RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_4, + RC_MMM_BLUE_EGG_DINING_ROOM_MANTLE_5, + RC_MMM_BLUE_EGG_EGG_ROOM_1, + RC_MMM_BLUE_EGG_EGG_ROOM_2, + RC_MMM_BLUE_EGG_EGG_ROOM_3, + RC_MMM_BLUE_EGG_EGG_ROOM_4, + RC_MMM_BLUE_EGG_EGG_ROOM_5, + RC_MMM_BLUE_EGG_EGG_ROOM_6, + RC_MMM_BLUE_EGG_EGG_ROOM_7, + RC_MMM_BLUE_EGG_EGG_ROOM_8, + RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_1, + RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_2, + RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_3, + RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_4, + RC_MMM_BLUE_EGG_HONEYCOMB_ROOM_5, + RC_MMM_BLUE_EGG_MANSION_AWNING_1, + RC_MMM_BLUE_EGG_MANSION_AWNING_2, + RC_MMM_BLUE_EGG_MANSION_AWNING_3, + RC_MMM_BLUE_EGG_MANSION_AWNING_4, + RC_MMM_BLUE_EGG_MAZE_1, + RC_MMM_BLUE_EGG_MAZE_2, + RC_MMM_BLUE_EGG_MAZE_3, + RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_1, + RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_2, + RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_3, + RC_MMM_BLUE_EGG_NEAR_FOUNTAIN_4, + RC_MMM_BLUE_EGG_NEAR_WELL_1, + RC_MMM_BLUE_EGG_NEAR_WELL_2, + RC_MMM_BLUE_EGG_NEAR_WELL_3, + RC_MMM_BLUE_EGG_NEAR_WELL_4, RC_MMM_EMPTY_HONEYCOMB_BENEATH_THE_FLOORBOARDS, RC_MMM_EMPTY_HONEYCOMB_CHURCH_RAFTERS, + RC_MMM_EXTRA_LIFE_CHURCH_PIPES, + RC_MMM_EXTRA_LIFE_CHURCH_WINDOW, + RC_MMM_EXTRA_LIFE_DINING_ROOM_CHANDELIER, + RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_LEFT_1, + RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_LEFT_2, + RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_LEFT_3, + RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_RIGHT_1, + RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_RIGHT_2, + RC_MMM_HONEYCOMB_BEEHIVE_CHURCH_ORGAN_RIGHT_3, + RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_MAZE_1, + RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_MAZE_2, + RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_MAZE_3, + RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_TALL_GRASS_1, + RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_TALL_GRASS_2, + RC_MMM_HONEYCOMB_BEEHIVE_IN_THE_TALL_GRASS_3, RC_MMM_JIGGY_BARREL_INTERIOR, RC_MMM_JIGGY_CELLAR, RC_MMM_JIGGY_CEMETARY_POTS, @@ -954,8 +1611,79 @@ typedef enum { RC_MMM_NOTE_WELL_INTERIOR_7, RC_MMM_SNS_CYAN_EGG, RC_MMM_SNS_GREEN_EGG, + RC_RBB_BLUE_EGG_ANCHOR_ROOM_1, + RC_RBB_BLUE_EGG_ANCHOR_ROOM_2, + RC_RBB_BLUE_EGG_ANCHOR_ROOM_3, + RC_RBB_BLUE_EGG_ANCHOR_ROOM_4, + RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_1, + RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_2, + RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_3, + RC_RBB_BLUE_EGG_BETWEEN_SHIPPING_CONTAINERS_4, + RC_RBB_BLUE_EGG_ENGING_ROOM_1, + RC_RBB_BLUE_EGG_ENGING_ROOM_2, + RC_RBB_BLUE_EGG_ENGING_ROOM_3, + RC_RBB_BLUE_EGG_ENGING_ROOM_4, + RC_RRB_BLUE_EGG_ENTRANCE_1, + RC_RRB_BLUE_EGG_ENTRANCE_2, + RC_RRB_BLUE_EGG_ENTRANCE_3, + RC_RRB_BLUE_EGG_ENTRANCE_4, + RC_RRB_BLUE_EGG_ENTRANCE_5, + RC_RBB_BLUE_EGG_KITCHEN_1, + RC_RBB_BLUE_EGG_KITCHEN_2, + RC_RBB_BLUE_EGG_KITCHEN_3, + RC_RBB_BLUE_EGG_KITCHEN_4, + RC_RBB_BLUE_EGG_KITCHEN_5, + RC_RBB_BLUE_EGG_KITCHEN_6, + RC_RBB_BLUE_EGG_KITCHEN_7, + RC_RBB_BLUE_EGG_KITCHEN_8, + RC_RBB_BLUE_EGG_KITCHEN_9, + RC_RBB_BLUE_EGG_NAVIGATION_ROOM_1, + RC_RBB_BLUE_EGG_NAVIGATION_ROOM_2, + RC_RBB_BLUE_EGG_NAVIGATION_ROOM_3, + RC_RBB_BLUE_EGG_NAVIGATION_ROOM_4, + RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_1, + RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_2, + RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_3, + RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_4, + RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_5, + RC_RBB_BLUE_EGG_NEAR_PINK_JINJO_6, + RC_RBB_BLUE_EGG_ON_LIFE_BOAT_1, + RC_RBB_BLUE_EGG_ON_LIFE_BOAT_2, + RC_RBB_BLUE_EGG_ON_LIFE_BOAT_3, + RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_1, + RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_2, + RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_3, + RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_4, + RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_5, + RC_RBB_BLUE_EGG_SHIPPING_CONTAINER_INTERIOR_THIRD_6, + RC_RBB_BLUE_EGG_TNT_ROOM_1, + RC_RBB_BLUE_EGG_TNT_ROOM_2, + RC_RBB_BLUE_EGG_TNT_ROOM_3, + RC_RBB_BLUE_EGG_TNT_ROOM_4, + RC_RBB_BLUE_EGG_TNT_ROOM_5, + RC_RBB_BLUE_EGG_TOP_OF_SHIP_1, + RC_RBB_BLUE_EGG_TOP_OF_SHIP_2, + RC_RBB_BLUE_EGG_TOP_OF_SHIP_3, + RC_RBB_BLUE_EGG_TOP_OF_SHIP_4, + RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_1, + RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_2, + RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_3, + RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_4, + RC_RBB_BLUE_EGG_WAREHOUSE_INTERIOR_5, RC_RBB_EMPTY_HONEYCOMB_BOAT_HOUSE, RC_RBB_EMPTY_HONEYCOMB_ENGINE_ROOM, + RC_RBB_EXTRA_LIFE_BOOM_BOXES, + RC_RBB_EXTRA_LIFE_ENGINE_ROOM, + RC_RBB_EXTRA_LIFE_WAREHOUSE, + RC_RBB_HONEYCOMB_BEEHIVE_ENGINE_ROOM_ENTRANCE_1, + RC_RBB_HONEYCOMB_BEEHIVE_ENGINE_ROOM_ENTRANCE_2, + RC_RBB_HONEYCOMB_BEEHIVE_ENGINE_ROOM_ENTRANCE_3, + RC_RBB_HONEYCOMB_BEEHIVE_FIRST_SHIPPING_CONTAINER_1, + RC_RBB_HONEYCOMB_BEEHIVE_FIRST_SHIPPING_CONTAINER_2, + RC_RBB_HONEYCOMB_BEEHIVE_FIRST_SHIPPING_CONTAINER_3, + RC_RBB_HONEYCOMB_BEEHIVE_GRATE_ABOVE_PINK_JINJO_1, + RC_RBB_HONEYCOMB_BEEHIVE_GRATE_ABOVE_PINK_JINJO_2, + RC_RBB_HONEYCOMB_BEEHIVE_GRATE_ABOVE_PINK_JINJO_3, RC_RBB_JIGGY_BOSS_BOOM_BOX, RC_RBB_JIGGY_CAPTAINS_CABIN, RC_RBB_JIGGY_CRANE_CAGE, @@ -1093,14 +1821,81 @@ typedef enum { RC_SM_EMPTY_HONEYCOMB_TREE, RC_SM_EMPTY_HONEYCOMB_UNDERWATER, RC_SM_EMPTY_HONEYCOMB_WATERFALL, + RC_SM_EXTRA_LIFE_ABOVE_BANJOS_HOUSE, + RC_SM_EXTRA_LIFE_WATERFALL, RC_SM_MOLEHILL_ATTACK, RC_SM_MOLEHILL_BEAK_BARGE, RC_SM_MOLEHILL_CAMERA_CONTROL, RC_SM_MOLEHILL_CLIMB, RC_SM_MOLEHILL_DIVE, RC_SM_MOLEHILL_JUMP, + RC_TTC_BLUE_EGG_ABOVE_SHOCK_PAD_1, + RC_TTC_BLUE_EGG_ABOVE_SHOCK_PAD_2, + RC_TTC_BLUE_EGG_ABOVE_SHOCK_PAD_3, + RC_TTC_BLUE_EGG_ALCOVE_LEDGE_1, + RC_TTC_BLUE_EGG_ALCOVE_LEDGE_2, + RC_TTC_BLUE_EGG_ALCOVE_LEDGE_3, + RC_TTC_BLUE_EGG_ALCOVE_LEDGE_4, + RC_TTC_BLUE_EGG_ALCOVE_LEDGE_5, + RC_TTC_BLUE_EGG_ALCOVE_LEDGE_6, + RC_TTC_BLUE_EGG_ALCOVE_LEDGE_7, + RC_TTC_BLUE_EGG_ALCOVE_LEDGE_8, + RC_TTC_BLUE_EGG_INSIDE_NIPPER_1, + RC_TTC_BLUE_EGG_INSIDE_NIPPER_2, + RC_TTC_BLUE_EGG_INSIDE_NIPPER_3, + RC_TTC_BLUE_EGG_INSIDE_NIPPER_4, + RC_TTC_BLUE_EGG_INSIDE_NIPPER_5, + RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_1, + RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_2, + RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_3, + RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_4, + RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_5, + RC_TTC_BLUE_EGG_LIGHTHOUSE_LEDGE_6, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_1, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_2, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_3, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_4, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_5, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_6, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_7, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_8, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_9, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_10, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_11, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_12, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_13, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_14, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_15, + RC_TTC_BLUE_EGG_LIGHTHOUSE_TREE_16, + RC_TTC_BLUE_EGG_LOCKUP_1, + RC_TTC_BLUE_EGG_LOCKUP_2, + RC_TTC_BLUE_EGG_LOCKUP_3, + RC_TTC_BLUE_EGG_LOCKUP_4, + RC_TTC_BLUE_EGG_LOCKUP_5, + RC_TTC_BLUE_EGG_UPPER_POOL_1, + RC_TTC_BLUE_EGG_UPPER_POOL_2, + RC_TTC_BLUE_EGG_UPPER_POOL_3, + RC_TTC_BLUE_EGG_UPPER_POOL_4, + RC_TTC_BLUE_EGG_UPPER_POOL_5, + RC_TTC_BLUE_EGG_UPPER_POOL_6, + RC_TTC_BLUE_EGG_UPPER_POOL_7, RC_TTC_EMPTY_HONEYCOMB_FLOATING_BOX, RC_TTC_EMPTY_HONEYCOMB_UNDERWATER, + RC_TTC_EXTRA_LIFE_CLIFFSIDE_POOL, + RC_TTC_EXTRA_LIFE_SHARKFOOD_ISLAND_SIGN, + RC_TTC_EXTRA_LIFE_SPIRAL_PATH, + RC_TTC_HONEYCOMB_BEEHIVE_NEAR_BLUBBERS_SHIP_1, + RC_TTC_HONEYCOMB_BEEHIVE_NEAR_BLUBBERS_SHIP_2, + RC_TTC_HONEYCOMB_BEEHIVE_NEAR_BLUBBERS_SHIP_3, + RC_TTC_HONEYCOMB_BEEHIVE_NEAR_THE_BACK_STAIRS_1, + RC_TTC_HONEYCOMB_BEEHIVE_NEAR_THE_BACK_STAIRS_2, + RC_TTC_HONEYCOMB_BEEHIVE_NEAR_THE_BACK_STAIRS_3, + RC_TTC_HONEYCOMB_BEEHIVE_IN_THE_CLIFFSIDE_POOL_1, + RC_TTC_HONEYCOMB_BEEHIVE_IN_THE_CLIFFSIDE_POOL_2, + RC_TTC_HONEYCOMB_BEEHIVE_IN_THE_CLIFFSIDE_POOL_3, + RC_TTC_HONEYCOMB_BEEHIVE_ON_THE_BEACH_1, + RC_TTC_HONEYCOMB_BEEHIVE_ON_THE_BEACH_2, + RC_TTC_HONEYCOMB_BEEHIVE_ON_THE_BEACH_3, RC_TTC_JIGGY_ALCOVE1, RC_TTC_JIGGY_ALCOVE2, RC_TTC_JIGGY_BLUBBER, @@ -1234,7 +2029,10 @@ typedef enum { typedef enum { RITYPE_UNKNOWN, + RITYPE_BLUE_EGG, RITYPE_EMPTY_HONEYCOMB, + RITYPE_EXTRA_LIFE, + RITYPE_HONEYCOMB, RITYPE_JIGGY, RITYPE_JINJO, RITYPE_MOLEHILL, @@ -1242,23 +2040,113 @@ typedef enum { RITYPE_MUSIC_NOTE, RITYPE_SNS_EGG, RITYPE_SNS_KEY, + RITYPE_AP_ITEM, RITYPE_MAX, } RandoItemType; typedef enum { RI_UNKNOWN, - RI_EMPTY_HONEYCOMB, - RI_JIGGY, - RI_JINJO_BLUE, - RI_JINJO_GREEN, - RI_JINJO_ORANGE, - RI_JINJO_PINK, - RI_JINJO_YELLOW, - RI_MOLEHILL, + RI_BLUE_EGG, + RI_EMPTY_HONEYCOMB_BUBBLEGLOOP_SWAMP, + RI_EMPTY_HONEYCOMB_CLANKERS_CAVERN, + RI_EMPTY_HONEYCOMB_CLICK_CLOCK_WOOD, + RI_EMPTY_HONEYCOMB_FREEZEEZY_PEAK, + RI_EMPTY_HONEYCOMB_GOBIS_VALLEY, + RI_EMPTY_HONEYCOMB_MAD_MONSTER_MANSION, + RI_EMPTY_HONEYCOMB_MUMBOS_MOUNTAIN, + RI_EMPTY_HONEYCOMB_RUSTY_BUCKET_BAY, + RI_EMPTY_HONEYCOMB_SPIRAL_MOUNTAIN, + RI_EMPTY_HONEYCOMB_TREASURE_TROVE_COVE, + RI_EXTRA_LIFE, + RI_HONEYCOMB, + RI_JIGGY_BUBBLEGLOOP_SWAMP, + RI_JIGGY_CLANKERS_CAVERN, + RI_JIGGY_CLICK_CLOCK_WOOD, + RI_JIGGY_FREEZEEZY_PEAK, + RI_JIGGY_GOBIS_VALLEY, + RI_JIGGY_GRUNTILDAS_LAIR, + RI_JIGGY_MAD_MONSTER_MANSION, + RI_JIGGY_MUMBOS_MOUNTAIN, + RI_JIGGY_RUSTY_BUCKET_BAY, + RI_JIGGY_TREASURE_TROVE_COVE, + RI_JINJO_BLUE_BUBBLEGLOOP_SWAMP, + RI_JINJO_BLUE_CLANKERS_CAVERN, + RI_JINJO_BLUE_CLICK_CLOCK_WOOD, + RI_JINJO_BLUE_FREEZEEZY_PEAK, + RI_JINJO_BLUE_GOBIS_VALLEY, + RI_JINJO_BLUE_MAD_MONSTER_MANSION, + RI_JINJO_BLUE_MUMBOS_MOUNTAIN, + RI_JINJO_BLUE_RUSTY_BUCKET_BAY, + RI_JINJO_BLUE_TREASURE_TROVE_COVE, + RI_JINJO_GREEN_BUBBLEGLOOP_SWAMP, + RI_JINJO_GREEN_CLANKERS_CAVERN, + RI_JINJO_GREEN_CLICK_CLOCK_WOOD, + RI_JINJO_GREEN_FREEZEEZY_PEAK, + RI_JINJO_GREEN_GOBIS_VALLEY, + RI_JINJO_GREEN_MAD_MONSTER_MANSION, + RI_JINJO_GREEN_MUMBOS_MOUNTAIN, + RI_JINJO_GREEN_RUSTY_BUCKET_BAY, + RI_JINJO_GREEN_TREASURE_TROVE_COVE, + RI_JINJO_ORANGE_BUBBLEGLOOP_SWAMP, + RI_JINJO_ORANGE_CLANKERS_CAVERN, + RI_JINJO_ORANGE_CLICK_CLOCK_WOOD, + RI_JINJO_ORANGE_FREEZEEZY_PEAK, + RI_JINJO_ORANGE_GOBIS_VALLEY, + RI_JINJO_ORANGE_MAD_MONSTER_MANSION, + RI_JINJO_ORANGE_MUMBOS_MOUNTAIN, + RI_JINJO_ORANGE_RUSTY_BUCKET_BAY, + RI_JINJO_ORANGE_TREASURE_TROVE_COVE, + RI_JINJO_PINK_BUBBLEGLOOP_SWAMP, + RI_JINJO_PINK_CLANKERS_CAVERN, + RI_JINJO_PINK_CLICK_CLOCK_WOOD, + RI_JINJO_PINK_FREEZEEZY_PEAK, + RI_JINJO_PINK_GOBIS_VALLEY, + RI_JINJO_PINK_MAD_MONSTER_MANSION, + RI_JINJO_PINK_MUMBOS_MOUNTAIN, + RI_JINJO_PINK_RUSTY_BUCKET_BAY, + RI_JINJO_PINK_TREASURE_TROVE_COVE, + RI_JINJO_YELLOW_BUBBLEGLOOP_SWAMP, + RI_JINJO_YELLOW_CLANKERS_CAVERN, + RI_JINJO_YELLOW_CLICK_CLOCK_WOOD, + RI_JINJO_YELLOW_FREEZEEZY_PEAK, + RI_JINJO_YELLOW_GOBIS_VALLEY, + RI_JINJO_YELLOW_MAD_MONSTER_MANSION, + RI_JINJO_YELLOW_MUMBOS_MOUNTAIN, + RI_JINJO_YELLOW_RUSTY_BUCKET_BAY, + RI_JINJO_YELLOW_TREASURE_TROVE_COVE, + RI_MOLEHILL_BARGE, + RI_MOLEHILL_BEAK_BOMB, + RI_MOLEHILL_BEAK_BUSTER, + RI_MOLEHILL_CAMERA_CONTROL, + RI_MOLEHILL_CLAW_SWIPE, + RI_MOLEHILL_CLIMB, + RI_MOLEHILL_DIVE, + RI_MOLEHILL_EGGS, + RI_MOLEHILL_FLAP_FLIP, + RI_MOLEHILL_FLIGHT, + RI_MOLEHILL_SHOCK_JUMP, + RI_MOLEHILL_TALON_TROT, + RI_MOLEHILL_TURBO_TALON, + RI_MOLEHILL_WADING_BOOTS, + RI_MOLEHILL_WONDERWING, RI_MUMBO_TOKEN, - RI_MUSIC_NOTE, - RI_STOP_N_SWOP_EGG, - RI_STOP_N_SWOP_KEY, + RI_MUSIC_NOTE_BUBBLEGLOOP_SWAMP, + RI_MUSIC_NOTE_CLANKERS_CAVERN, + RI_MUSIC_NOTE_CLICK_CLOCK_WOOD, + RI_MUSIC_NOTE_FREEZEEZY_PEAK, + RI_MUSIC_NOTE_GOBIS_VALLEY, + RI_MUSIC_NOTE_MAD_MONSTER_MANSION, + RI_MUSIC_NOTE_MUMBOS_MOUNTAIN, + RI_MUSIC_NOTE_RUSTY_BUCKET_BAY, + RI_MUSIC_NOTE_TREASURE_TROVE_COVE, + RI_STOP_N_SWOP_EGG_BLUE, + RI_STOP_N_SWOP_EGG_CYAN, + RI_STOP_N_SWOP_EGG_GREEN, + RI_STOP_N_SWOP_EGG_PINK, + RI_STOP_N_SWOP_EGG_RED, + RI_STOP_N_SWOP_EGG_YELLOW, + RI_STOP_N_SWOP_ICE_KEY, + RI_AP_ITEM_PROGRESSION, RI_MAX, } RandoItemId; @@ -1468,7 +2356,10 @@ typedef enum { typedef enum { RO_LOGIC, RO_SPAWN_JUNK, + RO_SHUFFLE_BEEHIVE_HONEYCOMBS, + RO_SHUFFLE_BLUE_EGGS, RO_SHUFFLE_EMPTY_HONEYCOMBS, + RO_SHUFFLE_EXTRA_LIVES, RO_SHUFFLE_JIGGIES, RO_SHUFFLE_JINJOS, RO_SHUFFLE_MOLEHILLS, @@ -1491,7 +2382,6 @@ typedef enum { typedef enum { RANDO_INF_UNKNOWN, RANDO_INF_ANCHOR_RAISED, - RANDO_INF_BRIDGE_REPAIRED_DIALOG_COMPLETE, RANDO_INF_CLANKER_RAISED, RANDO_INF_MINIGAME_RINGS_COMPLETED, RANDO_INF_WATER_PYRAMID_DRAINED, @@ -1502,10 +2392,10 @@ typedef struct RandoSaveCheck { const char* name; RandoCheckId randoCheckId; RandoItemId randoItemId; - RandoCheckId shuffledCheckId; int32_t randoCollectionId; bool isShuffled; - bool obtained; + bool eligible; + bool received; bool skipped; } RandoSaveCheck; diff --git a/src/port/ResourceHelpers.h b/src/port/ResourceHelpers.h index 87e5156bc..e1223cd95 100644 --- a/src/port/ResourceHelpers.h +++ b/src/port/ResourceHelpers.h @@ -6,6 +6,7 @@ #include //#include "ResourceManager.h" #include "ship/Context.h" +#include "ship/resource/ResourceManager.h" std::shared_ptr GetResourceByName(const char* path); diff --git a/src/port/Save/SaveManager.cpp b/src/port/Save/SaveManager.cpp index 5db6092b6..219c2cf69 100644 --- a/src/port/Save/SaveManager.cpp +++ b/src/port/Save/SaveManager.cpp @@ -139,18 +139,18 @@ static uint32_t ClampPuzzleCount(int puzzle, uint32_t value, const char* name) { } void RandoSaveCheck_to_json(nlohmann::json& j, const RandoSaveCheck& randoSaveCheck) { - j = nlohmann::json::array({ randoSaveCheck.randoCheckId, randoSaveCheck.randoItemId, randoSaveCheck.shuffledCheckId, - randoSaveCheck.randoCollectionId, randoSaveCheck.isShuffled, randoSaveCheck.obtained, - randoSaveCheck.skipped }); + j = nlohmann::json::array({ randoSaveCheck.randoCheckId, randoSaveCheck.randoItemId, + randoSaveCheck.randoCollectionId, randoSaveCheck.isShuffled, randoSaveCheck.eligible, + randoSaveCheck.received, randoSaveCheck.skipped }); } RandoSaveCheck RandoSaveCheck_from_json(const nlohmann::json& j, RandoSaveCheck& randoSaveCheck) { j.at(0).get_to(randoSaveCheck.randoCheckId); j.at(1).get_to(randoSaveCheck.randoItemId); - j.at(2).get_to(randoSaveCheck.shuffledCheckId); - j.at(3).get_to(randoSaveCheck.randoCollectionId); - j.at(4).get_to(randoSaveCheck.isShuffled); - j.at(5).get_to(randoSaveCheck.obtained); + j.at(2).get_to(randoSaveCheck.randoCollectionId); + j.at(3).get_to(randoSaveCheck.isShuffled); + j.at(4).get_to(randoSaveCheck.eligible); + j.at(5).get_to(randoSaveCheck.received); j.at(6).get_to(randoSaveCheck.skipped); return randoSaveCheck; diff --git a/src/port/ShipUtils.cpp b/src/port/ShipUtils.cpp index 36dbd47a2..8381950f8 100644 --- a/src/port/ShipUtils.cpp +++ b/src/port/ShipUtils.cpp @@ -323,8 +323,11 @@ std::vector worldOpenFlags = { FILEPROG_36_GV_OPEN, FILEPROG_37_MMM_OPEN, FILEPROG_38_RBB_OPEN, FILEPROG_39_CCW_OPEN, }; -std::vector levelAbbreviations = { - "MM", "TTC", "CC", "BGS", "FP", "GL", "GV", "CCW", "RBB", "MMM", "SM", +std::unordered_map levelAbbreviations = { + { "MM", "Mumbos Mountain" }, { "TTC", "Treasure Trove Cove" }, { "CC", "Clankers Cavern" }, + { "BGS", "Bubblegloop Swamp" }, { "FP", "Freezeezy Peak" }, { "GL", "Gruntildas Lair" }, + { "GV", "Gobis Valley" }, { "CCW", "Click Clock Wood" }, { "RBB", "Rusty Bucket Bay" }, + { "MMM", "Mad Monster Mansion" }, { "SM", "Spiral Mountain" }, }; json Ship_RetrieveSaveFile(int32_t filenum) { @@ -346,9 +349,10 @@ json Ship_RetrieveSaveFile(int32_t filenum) { return jsonSave; } -std::string Ship_ConvertEnumToReadableName(const std::string& input) { +std::string Ship_ConvertEnumToReadableName(const std::string& input, bool addPrefix) { std::string result; std::string content = input; + std::string abbreviation = ""; // Step 1: Remove "RC_" prefix if present const std::string prefix = "RC_"; @@ -358,9 +362,10 @@ std::string Ship_ConvertEnumToReadableName(const std::string& input) { // Step 2: Remove level abbreviation if present for (auto& abbr : levelAbbreviations) { - std::string prefix = abbr + "_"; + std::string prefix = abbr.first + "_"; if (content.rfind(prefix, 0) == 0) { content = content.substr(prefix.size()); + abbreviation = abbr.first; break; } } @@ -377,8 +382,10 @@ std::string Ship_ConvertEnumToReadableName(const std::string& input) { for (auto& w : words) { std::transform(w.begin(), w.end(), w.begin(), [](unsigned char c) { return std::tolower(c); }); if (!w.empty()) { - if (w == "hp") { - w = "HP"; + if (w == "rbb") { + w = "RBB"; + } else if (w == "mmm") { + w = "MMM"; } else { w[0] = std::toupper(w[0]); } @@ -393,6 +400,14 @@ std::string Ship_ConvertEnumToReadableName(const std::string& input) { } } + // Step 6: Add back full prefix if enabled + if (addPrefix && abbreviation != "") { + auto it = levelAbbreviations.find(abbreviation); + if (it != levelAbbreviations.end()) { + result = it->second + " " + result; + } + } + return result; } diff --git a/src/port/ShipUtils.h b/src/port/ShipUtils.h index 11c5b1764..90766d680 100644 --- a/src/port/ShipUtils.h +++ b/src/port/ShipUtils.h @@ -12,7 +12,7 @@ extern int32_t gSelectedFileNum; using nlohmann::json; json Ship_RetrieveSaveFile(int32_t filenum); -extern std::string Ship_ConvertEnumToReadableName(const std::string& input); +extern std::string Ship_ConvertEnumToReadableName(const std::string& input, bool addPrefix = false); extern std::vector worldOpenFlags; extern std::vector worldNameList; diff --git a/src/port/UI/DeveloperTools/GameplayTools.cpp b/src/port/UI/DeveloperTools/GameplayTools.cpp index 9daf8c844..427eedbb0 100644 --- a/src/port/UI/DeveloperTools/GameplayTools.cpp +++ b/src/port/UI/DeveloperTools/GameplayTools.cpp @@ -2,6 +2,7 @@ #include "port/Rando/Rando.h" #include "port/Rando/Logic/Logic.h" #include "port/Rando/CustomObject/CustomObject.h" +#include "port/Rando/CustomCollectible/CustomCollectible.h" #include "port/Enhancements/Events/Hooks/Events.h" #include "port/UI/UIWidgets.hpp" @@ -52,6 +53,7 @@ int32_t selectedSnsItem = SNS_ITEM_EGG_YELLOW; int32_t selectedJiggy = JIGGY_01_MM_JINJO; int32_t selectedHoneycomb = HONEYCOMB_1_MM_HILL; int32_t selectedToken = MUMBOTOKEN_01_MM_STUMP_NEAR_CONGA; +int32_t selectedCustomCollectible = RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_1; const char* mapNames[] = { "Mumbo's Mountain", "Treasure Trove Cove", "Clanker's Cavern", "Bubblegloop Swamp", "Freezeezy Peak", @@ -107,7 +109,26 @@ std::map> commonWarpMap = { { MAP_44_CCW_SUMMER, { "Click Clock Wood - Summer", 1 } }, { MAP_45_CCW_AUTUMN, { "Click Clock Wood - Autumn", 1 } }, { MAP_46_CCW_WINTER, { "Click Clock Wood - Winter", 1 } }, - { MAP_8E_GL_FURNACE_FUN, { "Grunty's Furnace Fun", WARP_GL_FURNACE_FUN_2_ENTRANCE_PAD } }, + { MAP_69_GL_MM_LOBBY, { "Gruntilda's Lair - MM Lobby", 2 } }, + { MAP_6A_GL_TTC_AND_CC_PUZZLE, { "Gruntilda's Lair - TTC and CC Puzzle", 1 } }, + { MAP_6B_GL_180_NOTE_DOOR, { "Gruntilda's Lair - 180 Note Door", 1 } }, + { MAP_6C_GL_RED_CAULDRON_ROOM, { "Gruntilda's Lair - Red Cauldron Room", 1 } }, + { MAP_6D_GL_TTC_LOBBY, { "Gruntilda's Lair - TTC Lobby", 1 } }, + { MAP_6E_GL_GV_LOBBY, { "Gruntilda's Lair - GV Lobby", 1 } }, + { MAP_6F_GL_FP_LOBBY, { "Gruntilda's Lair - FP Lobby", 1 } }, + { MAP_70_GL_CC_LOBBY, { "Gruntilda's Lair - CC Lobby", 1 } }, + { MAP_71_GL_STATUE_ROOM, { "Gruntilda's Lair - Statue Room", 1 } }, + { MAP_72_GL_BGS_LOBBY, { "Gruntilda's Lair - BGS Lobby", 1 } }, + { MAP_74_GL_GV_PUZZLE, { "Gruntilda's Lair - GV Puzzle", 1 } }, + { MAP_75_GL_MMM_LOBBY, { "Gruntilda's Lair - MMM Lobby", 1 } }, + { MAP_76_GL_640_NOTE_DOOR, { "Gruntilda's Lair - 640 Note Door", 1 } }, + { MAP_77_GL_RBB_LOBBY, { "Gruntilda's Lair - RBB Lobby", 1 } }, + { MAP_78_GL_RBB_AND_MMM_PUZZLE, { "Gruntilda's Lair - RBB and MMM Puzzle", 1 } }, + { MAP_79_GL_CCW_LOBBY, { "Gruntilda's Lair - CCW Lobby", 1 } }, + { MAP_7A_GL_CRYPT, { "Gruntilda's Lair - Crypt", 1 } }, + { MAP_80_GL_FF_ENTRANCE, { "Gruntilda's Lair - FF Entrance", 1 } }, + { MAP_8E_GL_FURNACE_FUN, { "Gruntilda's Lair - Furnace Fun", 1 } }, + { MAP_93_GL_DINGPOT, { "Gruntilda's Lair - Dingpot", 0 } }, }; // clang-format off @@ -202,7 +223,7 @@ void GameplayTools_UpdateSnsCheckboxes(StopNSwop_Item selectedSnsId) { } void GameplayTools_SpawnPosition() { - for (int i = 0; i < 2; i++) { + for (int i = 0; i <= 2; i++) { spawnPosition[i] = playerPosition[i] + spawnOffset[i]; } } @@ -384,6 +405,27 @@ void GameplayTools_ObjectSpawner() { ImGui::EndTable(); } + + ImGui::SeparatorText("Custom Collectible Testing"); + if (ImGui::BeginTable("ObjectSpawner", 2, ImGuiTableFlags_SizingStretchSame)) { + ImGui::TableNextColumn(); + if (UIWidgets::Button("Spawn Custom Collectible", { .color = THEME_COLOR })) { + Actor* newActor = CustomCollectible::Spawn(spawnPosition, (RandoCheckId)selectedCustomCollectible); + } + ImGui::TableNextColumn(); + std::string customCollectibleText = std::to_string(selectedCustomCollectible) + ": " + + Rando::StaticData::Checks[(RandoCheckId)selectedCustomCollectible].name; + + UIWidgets::SliderInt("##customCollectibleIndex", &selectedCustomCollectible, + UIWidgets::IntSliderOptions() + .Color(THEME_COLOR) + .Min(RC_UNKNOWN + 1) + .Max(RC_MAX - 1) + .DefaultValue(RC_BGS_BLUE_EGG_BEHIND_ENTRANCE_1) + .Format(customCollectibleText.c_str()) + .LabelPosition(UIWidgets::LabelPositions::None)); + ImGui::EndTable(); + } } void DrawGameplayToolsWarpList() { diff --git a/src/port/UI/DeveloperTools/SaveEditor.cpp b/src/port/UI/DeveloperTools/SaveEditor.cpp index c13d8b29c..3b079579f 100644 --- a/src/port/UI/DeveloperTools/SaveEditor.cpp +++ b/src/port/UI/DeveloperTools/SaveEditor.cpp @@ -83,38 +83,39 @@ bool SaveEditor_IsHoneycombCollected(honeycomb_e honeycombId) { } void SaveEditor_UpdateCheckTracker(RandoSaveCheck randoSaveCheck) { - if (randoSaveCheck.obtained) { + if (randoSaveCheck.eligible) { CustomObject::CheckObtainedEX(randoSaveCheck.randoCheckId); } for (auto& pool : Rando::Logic::shuffledPool) { if (pool.randoCheckId == randoSaveCheck.randoCheckId) { pool.isShuffled = randoSaveCheck.isShuffled; - pool.obtained = randoSaveCheck.obtained; + pool.eligible = randoSaveCheck.eligible; pool.skipped = randoSaveCheck.skipped; break; } } - int32_t itemIncr = randoSaveCheck.obtained ? 1 : -1; + int32_t itemIncr = randoSaveCheck.eligible ? 1 : -1; - switch (randoSaveCheck.randoItemId) { - case RI_JIGGY: - jiggyscore_setCollected(randoSaveCheck.randoCollectionId, randoSaveCheck.obtained); + Rando::StaticData::RandoStaticItem randoItem = Rando::StaticData::Items[randoSaveCheck.randoItemId]; + switch (randoItem.randoItemType) { + case RITYPE_JIGGY: + jiggyscore_setCollected(randoSaveCheck.randoCollectionId, randoSaveCheck.eligible); item_adjustByDiffWithoutHud(ITEM_26_JIGGY_TOTAL, itemIncr); break; - case RI_EMPTY_HONEYCOMB: - honeycombscore_set((honeycomb_e)randoSaveCheck.randoCollectionId, randoSaveCheck.obtained); + case RITYPE_EMPTY_HONEYCOMB: + honeycombscore_set((honeycomb_e)randoSaveCheck.randoCollectionId, randoSaveCheck.eligible); break; - case RI_MOLEHILL: - if (randoSaveCheck.obtained) { + case RITYPE_MOLEHILL: + if (randoSaveCheck.eligible) { ability_unlock((ability_e)randoSaveCheck.randoCollectionId); } else { ability_setLearned((ability_e)randoSaveCheck.randoCollectionId, 0); } break; - case RI_MUMBO_TOKEN: - mumboscore_set((mumbotoken_e)randoSaveCheck.randoCollectionId, randoSaveCheck.obtained); + case RITYPE_MUMBO_TOKEN: + mumboscore_set((mumbotoken_e)randoSaveCheck.randoCollectionId, randoSaveCheck.eligible); item_adjustByDiffWithoutHud(ITEM_1C_MUMBO_TOKEN, itemIncr); break; default: @@ -387,13 +388,16 @@ void DrawRandoCheckEditor() { } if (ImGui::BeginChild("RandoToolsChild", ImVec2(ImGui::GetContentRegionAvail().x, 0))) { - if (ImGui::BeginTable("RandoSaveEditorTable", 6)) { + if (ImGui::BeginTable("RandoSaveEditorTable", 7)) { ImGui::TableSetupColumn("shuffled", ImGuiTableColumnFlags_WidthFixed, 34.0f); - ImGui::TableSetupColumn("obtained", ImGuiTableColumnFlags_WidthFixed, 34.0f); + ImGui::TableSetupColumn("eligible", ImGuiTableColumnFlags_WidthFixed, 34.0f); + ImGui::TableSetupColumn("received", ImGuiTableColumnFlags_WidthFixed, 34.0f); ImGui::TableSetupColumn("skipped", ImGuiTableColumnFlags_WidthFixed, 34.0f); - ImGui::TableSetupColumn("checkName", ImGuiTableColumnFlags_WidthStretch, 3.5f); - ImGui::TableSetupColumn("itemName", ImGuiTableColumnFlags_WidthStretch, 1.0f); - ImGui::TableSetupColumn("collectionId", ImGuiTableColumnFlags_WidthStretch, 0.5f); + ImGui::TableSetupColumn("checkName", ImGuiTableColumnFlags_WidthFixed, + (ImGui::GetContentRegionAvail().x - 34.0f) * 0.60f); + ImGui::TableSetupColumn("itemName", ImGuiTableColumnFlags_WidthFixed, + (ImGui::GetContentRegionAvail().x - 34.0f) * 0.25f); + ImGui::TableSetupColumn("collectionId", ImGuiTableColumnFlags_WidthFixed, 34.0f); ImGui::TableNextColumn(); for (auto& check : RANDO_SAVE_CHECKS) { @@ -414,25 +418,35 @@ void DrawRandoCheckEditor() { ImGui::PushID(check.randoCheckId); bool isChanged = false; bool isShuffled = check.isShuffled; - bool obtained = check.obtained; + bool eligible = check.eligible; + bool received = check.received; bool skipped = check.skipped; + std::string checkId = std::to_string((uint32_t)check.randoCheckId); + if (UIWidgets::Checkbox( - "isShuffled", &isShuffled, + ("isShuffled##" + checkId).c_str(), &isShuffled, UIWidgets::CheckboxOptions().LabelPosition(UIWidgets::LabelPositions::None))) { RANDO_SAVE_CHECKS[check.randoCheckId].isShuffled = !check.isShuffled; isChanged = true; } ImGui::TableNextColumn(); if (UIWidgets::Checkbox( - "obtained", &obtained, + ("eligible##" + checkId).c_str(), &eligible, + UIWidgets::CheckboxOptions().LabelPosition(UIWidgets::LabelPositions::None))) { + RANDO_SAVE_CHECKS[check.randoCheckId].eligible = !check.eligible; + isChanged = true; + } + ImGui::TableNextColumn(); + if (UIWidgets::Checkbox( + ("received##" + checkId).c_str(), &received, UIWidgets::CheckboxOptions().LabelPosition(UIWidgets::LabelPositions::None))) { - RANDO_SAVE_CHECKS[check.randoCheckId].obtained = !check.obtained; + RANDO_SAVE_CHECKS[check.randoCheckId].received = !check.received; isChanged = true; } ImGui::TableNextColumn(); if (UIWidgets::Checkbox( - "skipped", &skipped, + ("skipped##" + checkId).c_str(), &skipped, UIWidgets::CheckboxOptions().LabelPosition(UIWidgets::LabelPositions::None))) { RANDO_SAVE_CHECKS[check.randoCheckId].skipped = !check.skipped; isChanged = true; @@ -446,18 +460,11 @@ void DrawRandoCheckEditor() { ImGui::TextWrapped("%s", checkName); ImGui::TableNextColumn(); - if (check.randoItemId == RI_MOLEHILL) { - TableCellCenteredText(abilityNameList[check.randoCollectionId].c_str()); - } else { - TableCellCenteredText(itemName != nullptr ? itemName : ""); - } + ImGui::TextWrapped(Rando::StaticData::Items[check.randoItemId].name); ImGui::TableNextColumn(); - auto shuffledEntry = Rando::StaticData::Checks.find(check.shuffledCheckId); - const RandoCheckType shuffledType = (shuffledEntry != Rando::StaticData::Checks.end()) - ? shuffledEntry->second.randoCheckType - : RCTYPE_UNKNOWN; - if (shuffledType != RCTYPE_JINJO && shuffledType != RCTYPE_MUSIC_NOTE) { + Rando::StaticData::RandoStaticItem randoItem = Rando::StaticData::Items[check.randoItemId]; + if (randoItem.randoItemType != RITYPE_JINJO && randoItem.randoItemType != RITYPE_MUSIC_NOTE) { TableCellCenteredText(std::to_string(check.randoCollectionId).c_str()); } ImGui::TableNextColumn();