diff --git a/include/interface.h b/include/interface.h index 36bb2d2a06..5b300068bd 100644 --- a/include/interface.h +++ b/include/interface.h @@ -68,77 +68,6 @@ typedef enum DoAction { /* 0x1D */ DO_ACTION_MAX } DoAction; -typedef enum RestrictionHGauge { - RESTR_HGAUGE_0, - RESTR_HGAUGE_2 = 2 -} RestrictionHGauge; - -typedef enum RestrictionBButton { - RESTR_B_BTN_0, - RESTR_B_BTN_1, - RESTR_B_BTN_2 -} RestrictionBButton; - -typedef enum RestrictionAButton { - RESTR_A_BTN_0 -} RestrictionAButton; - -typedef enum RestrictionBottles { - RESTR_BOTTLES_ON, // Bottles are allowed - RESTR_BOTTLES_OFF, // Bottles are disabled - RESTR_BOTTLES_OFF_2 // Same as RESTR_BOTTLES_OFF -} RestrictionBottles; - -typedef enum RestrictionTradeItems { - RESTR_TRADE_ITEMS_ON, // Trade items are allowed - RESTR_TRADE_ITEMS_OFF, // Trade items are disabled - RESTR_TRADE_ITEMS_OFF_2 // Same as RESTR_TRADE_ITEMS_OFF -} RestrictionTradeItems; - -typedef enum RestrictionHookshot { - RESTR_HOOKSHOT_ON, // Hookshot is allowed - RESTR_HOOKSHOT_OFF, // Hookshot is disabled - RESTR_HOOKSHOT_OFF_2 // Same as RESTR_HOOKSHOT_OFF -} RestrictionHookshot; - -typedef enum RestrictionOcarina { - RESTR_OCARINA_ON, // Ocarina is allowed - RESTR_OCARINA_OFF, // Ocarina is disabled - RESTR_OCARINA_OFF_2 // Same as RESTR_OCARINA_OFF -} RestrictionOcarina; - -typedef enum RestrictionWarpSongs { - RESTR_WARP_SONGS_ON, // Warp songs are allowed - RESTR_WARP_SONGS_ON_1, // Same as RESTR_WARP_SONGS_ON - RESTR_WARP_SONGS_ON_2, // Same as RESTR_WARP_SONGS_ON - RESTR_WARP_SONGS_OFF // Warp songs are disabled -} RestrictionWarpSongs; - -typedef enum RestrictionSunsSong { - RESTR_SUNS_SONG_0, - RESTR_SUNS_SONG_1, - RESTR_SUNS_SONG_2, - RESTR_SUNS_SONG_3 -} RestrictionSunsSong; - -typedef enum RestrictionFarores { - RESTR_FARORES_ON, // Farore's Wind is allowed - RESTR_FARORES_OFF, // Farore's Wind is disabled - RESTR_FARORES_OFF_2 // Same as RESTR_FARORES_OFF -} RestrictionFarores; - -typedef enum RestrictionDinsNayrus { - RESTR_DINS_NAYRUS_ON, // Din's Fire and Nayru's Love are allowed - RESTR_DINS_NAYRUS_OFF, // Din's Fire and Nayru's Love are disabled - RESTR_DINS_NAYRUS_OFF_2 // Same as RESTR_DINS_NAYRUS_OFF -} RestrictionDinsNayrus; - -typedef enum RestrictionAll { - RESTR_ALL_ON, // Items not covered by the other restriction flags are allowed - RESTR_ALL_OFF, // Items other than ocarina, bottles and trade items are disabled (except lens of truth in the treasure shop) - RESTR_ALL_OFF_2 // Same as RESTR_ALL_OFF -} RestrictionAll; - typedef struct InterfaceContext { /* 0x0000 */ View view; /* 0x0128 */ Vtx* actionVtx; diff --git a/src/code/graph.c b/src/code/graph.c index e864892b94..56fc7af60c 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -34,7 +34,7 @@ #define GFXPOOL_TAIL_MAGIC 0x5678 #pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:128" \ - "ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192" + "ntsc-1.0:224 ntsc-1.1:224 ntsc-1.2:224 pal-1.0:224 pal-1.1:224" /** * The time at which the previous `Graph_Update` ended. diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c index 8ea86844dc..9e71fa6287 100644 --- a/src/code/z_bgcheck.c +++ b/src/code/z_bgcheck.c @@ -14,7 +14,7 @@ #include "player.h" #include "skin_matrix.h" -#pragma increment_block_number "ntsc-1.0:112 ntsc-1.1:112 ntsc-1.2:112" +#pragma increment_block_number "ntsc-1.0:144 ntsc-1.1:144 ntsc-1.2:144" u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList* nodeList); void BgCheck_GetStaticLookupIndicesFromPos(CollisionContext* colCtx, Vec3f* pos, Vec3i* sector); diff --git a/src/code/z_kaleido_scope_call.c b/src/code/z_kaleido_scope_call.c index 1151cceac3..73d3b20dbf 100644 --- a/src/code/z_kaleido_scope_call.c +++ b/src/code/z_kaleido_scope_call.c @@ -1,5 +1,5 @@ -#pragma increment_block_number "gc-eu:48 gc-eu-mq:48 gc-jp:48 gc-jp-ce:48 gc-jp-mq:48 gc-us:48 gc-us-mq:48 ique-cn:32" \ - "ntsc-1.0:48 ntsc-1.1:48 ntsc-1.2:48 pal-1.0:48 pal-1.1:48" +#pragma increment_block_number "gc-eu:80 gc-eu-mq:80 gc-jp:80 gc-jp-ce:80 gc-jp-mq:80 gc-us:80 gc-us-mq:80 ique-cn:64" \ + "ntsc-1.0:96 ntsc-1.1:96 ntsc-1.2:96 pal-1.0:96 pal-1.1:96" #include "libu64/debug.h" #include "kaleido_manager.h" diff --git a/src/code/z_message.c b/src/code/z_message.c index 6be4956885..a4be4cbd6e 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -26,8 +26,8 @@ #include "assets/textures/parameter_static/parameter_static.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:0" \ - "ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:32" \ + "ntsc-1.1:32 ntsc-1.2:32 pal-1.0:0 pal-1.1:0" #if !PLATFORM_IQUE #define MSG_BUF_DECODED (msgCtx->msgBufDecoded) @@ -3554,7 +3554,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { if ((msgCtx->lastPlayedSong <= OCARINA_SONG_PRELUDE) && !(msgCtx->ocarinaAction >= OCARINA_ACTION_PLAYBACK_MINUET && msgCtx->ocarinaAction <= OCARINA_ACTION_PLAYBACK_PRELUDE)) { - if (msgCtx->disableWarpSongs || interfaceCtx->restrictions.warpSongs == RESTR_WARP_SONGS_OFF) { + if (msgCtx->disableWarpSongs || interfaceCtx->restrictions.warpSongs == 3) { Message_StartTextbox(play, 0x88C, NULL); // "You can't warp here!" play->msgCtx.ocarinaMode = OCARINA_MODE_04; } else if (GET_EVENTINF_INGO_RACE_STATE() != INGO_RACE_STATE_HORSE_RENTAL_PERIOD) { diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 01d01c7ae7..e056607dc9 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -38,6 +38,21 @@ typedef struct RestrictionFlags { /* 0x03 */ u8 flags3; } RestrictionFlags; // size = 0x4 +/** + * @param hGauge Flag unused, purpose unknown + * @param bButton true to disable B button + * @param aButton true to disable A button + * @param bottles true to disable bottle items + * @param tradeItems true to disable trade items + * @param hookshot true to disable hookshot + * @param ocarina true to disable ocarina + * @param warpSongs 3 to disable warp songs + * @param sunsSong 3 to disable sun's song time advance in areas where time doesn't move + * @param farores true to disable Farore's Wind + * @param dinsNayrus true to disable Din's Fire and Nayru's Love + * @param all true to disable items other than ocarina, bottles and trade items + * (except lens of truth in the treasure shop) + */ #define RESTRICTION_FLAGS(hGauge, bButton, aButton, bottles, tradeItems, hookshot, ocarina, warpSongs, sunsSong, \ farores, dinsNayrus, all) \ (((hGauge) << 6) | ((bButton) << 4) | ((aButton) << 2) | (bottles)), \ @@ -45,400 +60,143 @@ typedef struct RestrictionFlags { (((sunsSong) << 6) | ((farores) << 4) | ((dinsNayrus) << 2) | (all)) static RestrictionFlags sRestrictionFlags[] = { - { SCENE_HYRULE_FIELD, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + { SCENE_HYRULE_FIELD, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, { SCENE_KAKARIKO_VILLAGE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_GRAVEYARD, RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, - RESTR_TRADE_ITEMS_ON, RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, - RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_ZORAS_RIVER, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_KOKIRI_FOREST, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_GRAVEYARD, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_ZORAS_RIVER, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_KOKIRI_FOREST, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, { SCENE_SACRED_FOREST_MEADOW, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_LAKE_HYLIA, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_ZORAS_DOMAIN, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_ZORAS_FOUNTAIN, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_GERUDO_VALLEY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_LOST_WOODS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_DESERT_COLOSSUS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_LAKE_HYLIA, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_ZORAS_DOMAIN, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_ZORAS_FOUNTAIN, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_GERUDO_VALLEY, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_LOST_WOODS, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_DESERT_COLOSSUS, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, { SCENE_GERUDOS_FORTRESS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, { SCENE_HAUNTED_WASTELAND, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_HYRULE_CASTLE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_HYRULE_CASTLE, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, { SCENE_OUTSIDE_GANONS_CASTLE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, { SCENE_DEATH_MOUNTAIN_TRAIL, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, { SCENE_DEATH_MOUNTAIN_CRATER, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_GORON_CITY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_LON_LON_RANCH, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_TEMPLE_OF_TIME, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_CHAMBER_OF_THE_SAGES, - RESTRICTION_FLAGS(RESTR_HGAUGE_2, RESTR_B_BTN_2, RESTR_A_BTN_0, RESTR_BOTTLES_OFF_2, RESTR_TRADE_ITEMS_OFF_2, - RESTR_HOOKSHOT_OFF_2, RESTR_OCARINA_OFF_2, RESTR_WARP_SONGS_ON_2, RESTR_SUNS_SONG_2, - RESTR_FARORES_OFF_2, RESTR_DINS_NAYRUS_OFF_2, RESTR_ALL_OFF_2) }, - { SCENE_SHOOTING_GALLERY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_OFF, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_GORON_CITY, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_LON_LON_RANCH, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_TEMPLE_OF_TIME, RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_CHAMBER_OF_THE_SAGES, RESTRICTION_FLAGS(2, 2, false, 2, 2, 2, 2, 2, 2, 2, 2, 2) }, + { SCENE_SHOOTING_GALLERY, RESTRICTION_FLAGS(0, true, false, true, true, true, true, 1, 1, true, true, true) }, { SCENE_CASTLE_COURTYARD_GUARDS_DAY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_OFF, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, true, false, true, true, true, true, 1, 1, true, true, true) }, { SCENE_CASTLE_COURTYARD_GUARDS_NIGHT, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_OFF, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_REDEAD_GRAVE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_3, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, true, false, true, true, true, true, 1, 1, true, true, true) }, + { SCENE_REDEAD_GRAVE, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 3, true, false, false) }, { SCENE_GRAVE_WITH_FAIRYS_FOUNTAIN, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_3, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 3, true, false, false) }, { SCENE_ROYAL_FAMILYS_TOMB, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_3, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 3, true, false, false) }, { SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_FAIRYS_FOUNTAIN, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_3, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_FAIRYS_FOUNTAIN, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 3, true, false, false) }, { SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, { SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, true, 1, 1, true, false, false) }, { SCENE_CASTLE_COURTYARD_ZELDA, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_OFF, RESTR_ALL_ON) }, - { SCENE_FISHING_POND, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_OFF, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_BOMBCHU_BOWLING_ALLEY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_OFF, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_LON_LON_BUILDINGS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, true, 1, 1, true, true, false) }, + { SCENE_FISHING_POND, RESTRICTION_FLAGS(0, true, false, true, true, true, true, 1, 1, true, true, true) }, + { SCENE_BOMBCHU_BOWLING_ALLEY, RESTRICTION_FLAGS(0, true, false, true, true, true, true, 1, 1, true, true, true) }, + { SCENE_LON_LON_BUILDINGS, RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_MARKET_GUARD_HOUSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_ON) }, - { SCENE_POTION_SHOP_GRANNY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_TREASURE_BOX_SHOP, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_HOUSE_OF_SKULLTULA, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, false) }, + { SCENE_POTION_SHOP_GRANNY, RESTRICTION_FLAGS(0, true, false, false, false, true, true, 1, 1, true, true, true) }, + { SCENE_TREASURE_BOX_SHOP, RESTRICTION_FLAGS(0, true, false, false, false, true, true, 1, 1, true, true, true) }, + { SCENE_HOUSE_OF_SKULLTULA, RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_MARKET_ENTRANCE_DAY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_MARKET_ENTRANCE_NIGHT, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_MARKET_ENTRANCE_RUINS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_3, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_MARKET_DAY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_MARKET_NIGHT, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_MARKET_RUINS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_3, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_BACK_ALLEY_DAY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_BACK_ALLEY_NIGHT, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 3, true, true, true) }, + { SCENE_MARKET_DAY, RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_MARKET_NIGHT, RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_MARKET_RUINS, RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 3, true, true, true) }, + { SCENE_BACK_ALLEY_DAY, RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_BACK_ALLEY_NIGHT, RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_TEMPLE_OF_TIME_EXTERIOR_DAY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_TEMPLE_OF_TIME_EXTERIOR_NIGHT, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_3, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_LINKS_HOUSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 3, true, true, true) }, + { SCENE_LINKS_HOUSE, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_KAKARIKO_CENTER_GUEST_HOUSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_BACK_ALLEY_HOUSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_BACK_ALLEY_HOUSE, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_KNOW_IT_ALL_BROS_HOUSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_TWINS_HOUSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_MIDOS_HOUSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_SARIAS_HOUSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_STABLE, RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, - RESTR_TRADE_ITEMS_ON, RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, - RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_GRAVEKEEPERS_HUT, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_DOG_LADY_HOUSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_IMPAS_HOUSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_TWINS_HOUSE, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_MIDOS_HOUSE, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_SARIAS_HOUSE, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_STABLE, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_GRAVEKEEPERS_HUT, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_DOG_LADY_HOUSE, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_IMPAS_HOUSE, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_LAKESIDE_LABORATORY, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_CARPENTERS_TENT, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_BAZAAR, RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, - RESTR_TRADE_ITEMS_ON, RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, - RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_KOKIRI_SHOP, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_GORON_SHOP, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_ZORA_SHOP, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, false, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_CARPENTERS_TENT, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_BAZAAR, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_KOKIRI_SHOP, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_GORON_SHOP, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_ZORA_SHOP, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_POTION_SHOP_KAKARIKO, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_POTION_SHOP_MARKET, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_BOMBCHU_SHOP, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, - { SCENE_HAPPY_MASK_SHOP, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_1, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_OFF, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_OFF) }, + RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_POTION_SHOP_MARKET, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_BOMBCHU_SHOP, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, + { SCENE_HAPPY_MASK_SHOP, RESTRICTION_FLAGS(0, true, false, false, false, true, false, 0, 0, true, true, true) }, { SCENE_GERUDO_TRAINING_GROUND, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_OFF, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_DEKU_TREE, RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, - RESTR_TRADE_ITEMS_ON, RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, - RESTR_SUNS_SONG_0, RESTR_FARORES_ON, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_DEKU_TREE_BOSS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 3, 0, true, false, false) }, + { SCENE_DEKU_TREE, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, false, false, false) }, + { SCENE_DEKU_TREE_BOSS, RESTRICTION_FLAGS(0, false, false, false, true, false, true, 1, 1, true, false, false) }, { SCENE_DODONGOS_CAVERN, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_ON, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, false, false, false) }, { SCENE_DODONGOS_CAVERN_BOSS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_JABU_JABU, RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, - RESTR_TRADE_ITEMS_ON, RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, - RESTR_SUNS_SONG_0, RESTR_FARORES_ON, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_JABU_JABU_BOSS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_FOREST_TEMPLE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_ON, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, true, false, true, 1, 1, true, false, false) }, + { SCENE_JABU_JABU, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, false, false, false) }, + { SCENE_JABU_JABU_BOSS, RESTRICTION_FLAGS(0, false, false, false, true, false, true, 1, 1, true, false, false) }, + { SCENE_FOREST_TEMPLE, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, false, false, false) }, { SCENE_FOREST_TEMPLE_BOSS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, true, false, true, 1, 1, true, false, false) }, { SCENE_BOTTOM_OF_THE_WELL, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_ON, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_SHADOW_TEMPLE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_ON, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, false, false, false) }, + { SCENE_SHADOW_TEMPLE, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, false, false, false) }, { SCENE_SHADOW_TEMPLE_BOSS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_FIRE_TEMPLE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_ON, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_FIRE_TEMPLE_BOSS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_WATER_TEMPLE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_ON, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_WATER_TEMPLE_BOSS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_SPIRIT_TEMPLE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_ON, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, true, false, true, 1, 1, true, false, false) }, + { SCENE_FIRE_TEMPLE, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, false, false, false) }, + { SCENE_FIRE_TEMPLE_BOSS, RESTRICTION_FLAGS(0, false, false, false, true, false, true, 1, 1, true, false, false) }, + { SCENE_WATER_TEMPLE, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, false, false, false) }, + { SCENE_WATER_TEMPLE_BOSS, RESTRICTION_FLAGS(0, false, false, false, true, false, true, 1, 1, true, false, false) }, + { SCENE_SPIRIT_TEMPLE, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, false, false, false) }, { SCENE_SPIRIT_TEMPLE_BOSS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_GANONS_TOWER, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_ON, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_GANONDORF_BOSS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_ICE_CAVERN, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_3, RESTR_FARORES_ON, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, true, false, true, 1, 1, true, false, false) }, + { SCENE_GANONS_TOWER, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, false, false, false) }, + { SCENE_GANONDORF_BOSS, RESTRICTION_FLAGS(0, false, false, false, true, false, true, 1, 1, true, false, false) }, + { SCENE_ICE_CAVERN, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 3, false, false, false) }, { SCENE_WINDMILL_AND_DAMPES_GRAVE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_OFF, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_OFF, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 3, 0, true, true, false) }, { SCENE_INSIDE_GANONS_CASTLE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_OFF, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_GANON_BOSS, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_OFF, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, false, 3, 0, true, false, false) }, + { SCENE_GANON_BOSS, RESTRICTION_FLAGS(0, false, false, false, true, false, true, 1, 1, true, false, false) }, { SCENE_GANONS_TOWER_COLLAPSE_INTERIOR, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, true, 1, 1, true, false, false) }, { SCENE_INSIDE_GANONS_CASTLE_COLLAPSE, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_OFF, RESTR_WARP_SONGS_ON_1, RESTR_SUNS_SONG_1, - RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_THIEVES_HIDEOUT, - RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, RESTR_TRADE_ITEMS_ON, - RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, RESTR_SUNS_SONG_0, RESTR_FARORES_OFF, - RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, - { SCENE_GROTTOS, RESTRICTION_FLAGS(RESTR_HGAUGE_0, RESTR_B_BTN_0, RESTR_A_BTN_0, RESTR_BOTTLES_ON, - RESTR_TRADE_ITEMS_ON, RESTR_HOOKSHOT_ON, RESTR_OCARINA_ON, RESTR_WARP_SONGS_ON, - RESTR_SUNS_SONG_3, RESTR_FARORES_OFF, RESTR_DINS_NAYRUS_ON, RESTR_ALL_ON) }, + RESTRICTION_FLAGS(0, false, false, false, false, false, true, 1, 1, true, false, false) }, + { SCENE_THIEVES_HIDEOUT, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 0, true, false, false) }, + { SCENE_GROTTOS, RESTRICTION_FLAGS(0, false, false, false, false, false, false, 0, 3, true, false, false) }, { 0xFF, 0, 0, 0 }, }; @@ -1171,7 +929,7 @@ void func_80083108(PlayState* play) { Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL); } else { - if (interfaceCtx->restrictions.bButton == RESTR_B_BTN_0) { + if (!interfaceCtx->restrictions.bButton) { if ((gSaveContext.save.info.equips.buttonItems[0] == ITEM_SLINGSHOT) || (gSaveContext.save.info.equips.buttonItems[0] == ITEM_BOW) || (gSaveContext.save.info.equips.buttonItems[0] == ITEM_BOMBCHU) || @@ -1195,7 +953,7 @@ void func_80083108(PlayState* play) { gSaveContext.save.info.equips.buttonItems[0] = gSaveContext.buttonStatus[0] & 0xFF; } } - } else if (interfaceCtx->restrictions.bButton == RESTR_B_BTN_1) { + } else if (interfaceCtx->restrictions.bButton == true) { if ((gSaveContext.save.info.equips.buttonItems[0] == ITEM_SLINGSHOT) || (gSaveContext.save.info.equips.buttonItems[0] == ITEM_BOW) || (gSaveContext.save.info.equips.buttonItems[0] == ITEM_BOMBCHU) || @@ -1218,7 +976,7 @@ void func_80083108(PlayState* play) { } } - if (interfaceCtx->restrictions.bottles != RESTR_BOTTLES_ON) { + if (interfaceCtx->restrictions.bottles) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] >= ITEM_BOTTLE_EMPTY) && (gSaveContext.save.info.equips.buttonItems[i] <= ITEM_BOTTLE_POE)) { @@ -1229,7 +987,7 @@ void func_80083108(PlayState* play) { gSaveContext.buttonStatus[i] = BTN_DISABLED; } } - } else if (interfaceCtx->restrictions.bottles == RESTR_BOTTLES_ON) { + } else if (!interfaceCtx->restrictions.bottles) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] >= ITEM_BOTTLE_EMPTY) && (gSaveContext.save.info.equips.buttonItems[i] <= ITEM_BOTTLE_POE)) { @@ -1242,7 +1000,7 @@ void func_80083108(PlayState* play) { } } - if (interfaceCtx->restrictions.tradeItems != RESTR_TRADE_ITEMS_ON) { + if (interfaceCtx->restrictions.tradeItems) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] >= ITEM_WEIRD_EGG) && (gSaveContext.save.info.equips.buttonItems[i] <= ITEM_CLAIM_CHECK)) { @@ -1253,7 +1011,7 @@ void func_80083108(PlayState* play) { gSaveContext.buttonStatus[i] = BTN_DISABLED; } } - } else if (interfaceCtx->restrictions.tradeItems == RESTR_TRADE_ITEMS_ON) { + } else if (!interfaceCtx->restrictions.tradeItems) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] >= ITEM_WEIRD_EGG) && (gSaveContext.save.info.equips.buttonItems[i] <= ITEM_CLAIM_CHECK)) { @@ -1266,7 +1024,7 @@ void func_80083108(PlayState* play) { } } - if (interfaceCtx->restrictions.hookshot != RESTR_HOOKSHOT_ON) { + if (interfaceCtx->restrictions.hookshot) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] == ITEM_HOOKSHOT) || (gSaveContext.save.info.equips.buttonItems[i] == ITEM_LONGSHOT)) { @@ -1277,7 +1035,7 @@ void func_80083108(PlayState* play) { gSaveContext.buttonStatus[i] = BTN_DISABLED; } } - } else if (interfaceCtx->restrictions.hookshot == RESTR_HOOKSHOT_ON) { + } else if (!interfaceCtx->restrictions.hookshot) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] == ITEM_HOOKSHOT) || (gSaveContext.save.info.equips.buttonItems[i] == ITEM_LONGSHOT)) { @@ -1290,7 +1048,7 @@ void func_80083108(PlayState* play) { } } - if (interfaceCtx->restrictions.ocarina != RESTR_OCARINA_ON) { + if (interfaceCtx->restrictions.ocarina) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] == ITEM_OCARINA_FAIRY) || (gSaveContext.save.info.equips.buttonItems[i] == ITEM_OCARINA_OF_TIME)) { @@ -1301,7 +1059,7 @@ void func_80083108(PlayState* play) { gSaveContext.buttonStatus[i] = BTN_DISABLED; } } - } else if (interfaceCtx->restrictions.ocarina == RESTR_OCARINA_ON) { + } else if (!interfaceCtx->restrictions.ocarina) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] == ITEM_OCARINA_FAIRY) || (gSaveContext.save.info.equips.buttonItems[i] == ITEM_OCARINA_OF_TIME)) { @@ -1314,7 +1072,7 @@ void func_80083108(PlayState* play) { } } - if (interfaceCtx->restrictions.farores != RESTR_FARORES_ON) { + if (interfaceCtx->restrictions.farores) { for (i = 1; i < 4; i++) { if (gSaveContext.save.info.equips.buttonItems[i] == ITEM_FARORES_WIND) { if (gSaveContext.buttonStatus[i] == BTN_ENABLED) { @@ -1325,7 +1083,7 @@ void func_80083108(PlayState* play) { PRINTF("***(i=%d)*** ", i); } } - } else if (interfaceCtx->restrictions.farores == RESTR_FARORES_ON) { + } else if (!interfaceCtx->restrictions.farores) { for (i = 1; i < 4; i++) { if (gSaveContext.save.info.equips.buttonItems[i] == ITEM_FARORES_WIND) { if (gSaveContext.buttonStatus[i] == BTN_DISABLED) { @@ -1337,7 +1095,7 @@ void func_80083108(PlayState* play) { } } - if (interfaceCtx->restrictions.dinsNayrus != RESTR_DINS_NAYRUS_ON) { + if (interfaceCtx->restrictions.dinsNayrus) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] == ITEM_DINS_FIRE) || (gSaveContext.save.info.equips.buttonItems[i] == ITEM_NAYRUS_LOVE)) { @@ -1348,7 +1106,7 @@ void func_80083108(PlayState* play) { gSaveContext.buttonStatus[i] = BTN_DISABLED; } } - } else if (interfaceCtx->restrictions.dinsNayrus == RESTR_DINS_NAYRUS_ON) { + } else if (!interfaceCtx->restrictions.dinsNayrus) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] == ITEM_DINS_FIRE) || (gSaveContext.save.info.equips.buttonItems[i] == ITEM_NAYRUS_LOVE)) { @@ -1361,7 +1119,7 @@ void func_80083108(PlayState* play) { } } - if (interfaceCtx->restrictions.all != RESTR_ALL_ON) { + if (interfaceCtx->restrictions.all) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] != ITEM_OCARINA_FAIRY) && (gSaveContext.save.info.equips.buttonItems[i] != ITEM_OCARINA_OF_TIME) && @@ -1385,7 +1143,7 @@ void func_80083108(PlayState* play) { } } } - } else if (interfaceCtx->restrictions.all == RESTR_ALL_ON) { + } else if (!interfaceCtx->restrictions.all) { for (i = 1; i < 4; i++) { if ((gSaveContext.save.info.equips.buttonItems[i] != ITEM_DINS_FIRE) && (gSaveContext.save.info.equips.buttonItems[i] != ITEM_HOOKSHOT) && @@ -1429,18 +1187,18 @@ void Interface_SetSceneRestrictions(PlayState* play) { s32 pad2; s32 pad3; - interfaceCtx->restrictions.all = RESTR_ALL_ON; - interfaceCtx->restrictions.dinsNayrus = RESTR_DINS_NAYRUS_ON; - interfaceCtx->restrictions.farores = RESTR_FARORES_ON; - interfaceCtx->restrictions.sunsSong = RESTR_SUNS_SONG_0; - interfaceCtx->restrictions.warpSongs = RESTR_WARP_SONGS_ON; - interfaceCtx->restrictions.ocarina = RESTR_OCARINA_ON; - interfaceCtx->restrictions.hookshot = RESTR_HOOKSHOT_ON; - interfaceCtx->restrictions.tradeItems = RESTR_TRADE_ITEMS_ON; - interfaceCtx->restrictions.bottles = RESTR_BOTTLES_ON; - interfaceCtx->restrictions.aButton = RESTR_A_BTN_0; - interfaceCtx->restrictions.bButton = RESTR_B_BTN_0; - interfaceCtx->restrictions.hGauge = RESTR_HGAUGE_0; + interfaceCtx->restrictions.all = false; + interfaceCtx->restrictions.dinsNayrus = false; + interfaceCtx->restrictions.farores = false; + interfaceCtx->restrictions.sunsSong = 0; + interfaceCtx->restrictions.warpSongs = 0; + interfaceCtx->restrictions.ocarina = false; + interfaceCtx->restrictions.hookshot = false; + interfaceCtx->restrictions.tradeItems = false; + interfaceCtx->restrictions.bottles = false; + interfaceCtx->restrictions.aButton = false; + interfaceCtx->restrictions.bButton = false; + interfaceCtx->restrictions.hGauge = 0; PRINTF( T("ボタン表示関係データ設定 scene_data_ID=%d\n", "Data settings related to button display scene_data_ID=%d\n"), @@ -4709,8 +4467,7 @@ void Interface_Update(PlayState* play) { gTimeSpeed = sPrevTimeSpeed; play->msgCtx.ocarinaMode = OCARINA_MODE_04; } - } else if ((play->roomCtx.curRoom.type != ROOM_TYPE_DUNGEON) && - (interfaceCtx->restrictions.sunsSong != RESTR_SUNS_SONG_3)) { + } else if ((play->roomCtx.curRoom.type != ROOM_TYPE_DUNGEON) && (interfaceCtx->restrictions.sunsSong != 3)) { if ((gSaveContext.save.dayTime >= CLOCK_TIME(6, 30)) && (gSaveContext.save.dayTime < CLOCK_TIME(18, 0) + 1)) { gSaveContext.nextDayTime = NEXT_TIME_NIGHT; diff --git a/src/code/z_play.c b/src/code/z_play.c index c435c97e87..8d83cacb10 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -47,7 +47,7 @@ #include "save.h" #include "vis.h" -#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" \ +#pragma increment_block_number "gc-eu:216 gc-eu-mq:216 gc-jp:216 gc-jp-ce:216 gc-jp-mq:216 gc-us:216 gc-us-mq:216" \ "ique-cn:214 ntsc-1.0:240 ntsc-1.1:240 ntsc-1.2:240 pal-1.0:240 pal-1.1:240" TransitionTile gTransitionTile; diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c index 7d60455ed7..c9e41de7d7 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -125,15 +125,15 @@ static ColliderCylinderInit sLightBallCylinderInit = { static u8 D_808E4C58[] = { 0, 12, 10, 12, 14, 16, 12, 14, 16, 12, 14, 16, 12, 14, 16, 10, 16, 14 }; static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f }; -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:0" \ - "ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" static EnGanonMant* sCape; // TODO: There's probably a way to match BSS ordering with less padding by spreading the variables out and moving // data around. It would be easier if we had more options for controlling BSS ordering in debug. -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ - "ique-cn:192 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ + "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" static s32 sSeed1; static s32 sSeed2; diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 445b0d54bc..9f94310a35 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -37,8 +37,8 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ - "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:128" \ + "ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index f25a4181e9..39b0fdc654 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -363,14 +363,14 @@ void Player_Action_CsAction(Player* this, PlayState* play); // .bss part 1 #pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:0" \ - "ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:0 pal-1.1:0" + "ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" static s32 D_80858AA0; // TODO: There's probably a way to match BSS ordering with less padding by spreading the variables out and moving // data around. It would be easier if we had more options for controlling BSS ordering in debug. -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192" +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ + "ique-cn:192 ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192" static s32 sSavedCurrentMask; static Vec3f sInteractWallCheckResult;