This commit is contained in:
Dragorn421 2025-06-12 10:01:49 +02:00
parent 5d89340e68
commit 03dafe4389
No known key found for this signature in database
GPG Key ID: 381AEBAF3D429335
10 changed files with 161 additions and 475 deletions

View File

@ -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;

View File

@ -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.

View File

@ -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);

View File

@ -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"

View File

@ -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) {

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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;