Macrofiy and partial docs on restriction flags

This commit is contained in:
Dragorn421 2025-06-09 22:57:19 +02:00
parent d4a87889ff
commit 07c0027942
No known key found for this signature in database
GPG Key ID: 381AEBAF3D429335
3 changed files with 510 additions and 133 deletions

View File

@ -68,6 +68,77 @@ 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

@ -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 == 3) {
if (msgCtx->disableWarpSongs || interfaceCtx->restrictions.warpSongs == RESTR_WARP_SONGS_OFF) {
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,108 +38,413 @@ typedef struct RestrictionFlags {
/* 0x03 */ u8 flags3;
} RestrictionFlags; // size = 0x4
#define RESTRICTION_FLAGS(hGauge, bButton, aButton, bottles, tradeItems, hookshot, ocarina, warpSongs, sunsSong, \
farores, dinsNayrus, all) \
(((hGauge) << 6) | ((bButton) << 4) | ((aButton) << 2) | (bottles)), \
(((tradeItems) << 6) | ((hookshot) << 4) | ((ocarina) << 2) | (warpSongs)), \
(((sunsSong) << 6) | ((farores) << 4) | ((dinsNayrus) << 2) | (all))
static RestrictionFlags sRestrictionFlags[] = {
{ SCENE_HYRULE_FIELD, 0x00, 0x00, 0x10 },
{ SCENE_KAKARIKO_VILLAGE, 0x00, 0x00, 0x10 },
{ SCENE_GRAVEYARD, 0x00, 0x00, 0x10 },
{ SCENE_ZORAS_RIVER, 0x00, 0x00, 0x10 },
{ SCENE_KOKIRI_FOREST, 0x00, 0x00, 0x10 },
{ SCENE_SACRED_FOREST_MEADOW, 0x00, 0x00, 0x10 },
{ SCENE_LAKE_HYLIA, 0x00, 0x00, 0x10 },
{ SCENE_ZORAS_DOMAIN, 0x00, 0x00, 0x10 },
{ SCENE_ZORAS_FOUNTAIN, 0x00, 0x00, 0x10 },
{ SCENE_GERUDO_VALLEY, 0x00, 0x00, 0x10 },
{ SCENE_LOST_WOODS, 0x00, 0x00, 0x10 },
{ SCENE_DESERT_COLOSSUS, 0x00, 0x00, 0x10 },
{ SCENE_GERUDOS_FORTRESS, 0x00, 0x00, 0x10 },
{ SCENE_HAUNTED_WASTELAND, 0x00, 0x00, 0x10 },
{ SCENE_HYRULE_CASTLE, 0x00, 0x00, 0x10 },
{ SCENE_OUTSIDE_GANONS_CASTLE, 0x00, 0x00, 0x10 },
{ SCENE_DEATH_MOUNTAIN_TRAIL, 0x00, 0x00, 0x10 },
{ SCENE_DEATH_MOUNTAIN_CRATER, 0x00, 0x00, 0x10 },
{ SCENE_GORON_CITY, 0x00, 0x00, 0x10 },
{ SCENE_LON_LON_RANCH, 0x00, 0x00, 0x10 },
{ SCENE_TEMPLE_OF_TIME, 0x00, 0x10, 0x15 },
{ SCENE_CHAMBER_OF_THE_SAGES, 0xA2, 0xAA, 0xAA },
{ SCENE_SHOOTING_GALLERY, 0x11, 0x55, 0x55 },
{ SCENE_CASTLE_COURTYARD_GUARDS_DAY, 0x11, 0x55, 0x55 },
{ SCENE_CASTLE_COURTYARD_GUARDS_NIGHT, 0x11, 0x55, 0x55 },
{ SCENE_REDEAD_GRAVE, 0x00, 0x00, 0xD0 },
{ SCENE_GRAVE_WITH_FAIRYS_FOUNTAIN, 0x00, 0x00, 0xD0 },
{ SCENE_ROYAL_FAMILYS_TOMB, 0x00, 0x00, 0xD0 },
{ SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC, 0x00, 0x00, 0x10 },
{ SCENE_FAIRYS_FOUNTAIN, 0x00, 0x00, 0xD0 },
{ SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS, 0x00, 0x00, 0x10 },
{ SCENE_GANONS_TOWER_COLLAPSE_EXTERIOR, 0x00, 0x05, 0x50 },
{ SCENE_CASTLE_COURTYARD_ZELDA, 0x00, 0x05, 0x54 },
{ SCENE_FISHING_POND, 0x11, 0x55, 0x55 },
{ SCENE_BOMBCHU_BOWLING_ALLEY, 0x11, 0x55, 0x55 },
{ SCENE_LON_LON_BUILDINGS, 0x00, 0x10, 0x15 },
{ SCENE_MARKET_GUARD_HOUSE, 0x00, 0x10, 0x14 },
{ SCENE_POTION_SHOP_GRANNY, 0x10, 0x15, 0x55 },
{ SCENE_TREASURE_BOX_SHOP, 0x10, 0x15, 0x55 },
{ SCENE_HOUSE_OF_SKULLTULA, 0x00, 0x10, 0x15 },
{ SCENE_MARKET_ENTRANCE_DAY, 0x00, 0x10, 0x15 },
{ SCENE_MARKET_ENTRANCE_NIGHT, 0x00, 0x10, 0x15 },
{ SCENE_MARKET_ENTRANCE_RUINS, 0x00, 0x10, 0xD5 },
{ SCENE_MARKET_DAY, 0x00, 0x10, 0x15 },
{ SCENE_MARKET_NIGHT, 0x00, 0x10, 0x15 },
{ SCENE_MARKET_RUINS, 0x00, 0x10, 0xD5 },
{ SCENE_BACK_ALLEY_DAY, 0x00, 0x10, 0x15 },
{ SCENE_BACK_ALLEY_NIGHT, 0x00, 0x10, 0x15 },
{ SCENE_TEMPLE_OF_TIME_EXTERIOR_DAY, 0x00, 0x10, 0x15 },
{ SCENE_TEMPLE_OF_TIME_EXTERIOR_NIGHT, 0x00, 0x10, 0x15 },
{ SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS, 0x00, 0x10, 0xD5 },
{ SCENE_LINKS_HOUSE, 0x10, 0x10, 0x15 },
{ SCENE_KAKARIKO_CENTER_GUEST_HOUSE, 0x10, 0x10, 0x15 },
{ SCENE_BACK_ALLEY_HOUSE, 0x10, 0x10, 0x15 },
{ SCENE_KNOW_IT_ALL_BROS_HOUSE, 0x10, 0x10, 0x15 },
{ SCENE_TWINS_HOUSE, 0x10, 0x10, 0x15 },
{ SCENE_MIDOS_HOUSE, 0x10, 0x10, 0x15 },
{ SCENE_SARIAS_HOUSE, 0x10, 0x10, 0x15 },
{ SCENE_STABLE, 0x10, 0x10, 0x15 },
{ SCENE_GRAVEKEEPERS_HUT, 0x10, 0x10, 0x15 },
{ SCENE_DOG_LADY_HOUSE, 0x10, 0x10, 0x15 },
{ SCENE_IMPAS_HOUSE, 0x10, 0x10, 0x15 },
{ SCENE_LAKESIDE_LABORATORY, 0x00, 0x10, 0x15 },
{ SCENE_CARPENTERS_TENT, 0x10, 0x10, 0x15 },
{ SCENE_BAZAAR, 0x10, 0x10, 0x15 },
{ SCENE_KOKIRI_SHOP, 0x10, 0x10, 0x15 },
{ SCENE_GORON_SHOP, 0x10, 0x10, 0x15 },
{ SCENE_ZORA_SHOP, 0x10, 0x10, 0x15 },
{ SCENE_POTION_SHOP_KAKARIKO, 0x10, 0x10, 0x15 },
{ SCENE_POTION_SHOP_MARKET, 0x10, 0x10, 0x15 },
{ SCENE_BOMBCHU_SHOP, 0x10, 0x10, 0x15 },
{ SCENE_HAPPY_MASK_SHOP, 0x10, 0x10, 0x15 },
{ SCENE_GERUDO_TRAINING_GROUND, 0x00, 0x03, 0x10 },
{ SCENE_DEKU_TREE, 0x00, 0x00, 0x00 },
{ SCENE_DEKU_TREE_BOSS, 0x00, 0x45, 0x50 },
{ SCENE_DODONGOS_CAVERN, 0x00, 0x00, 0x00 },
{ SCENE_DODONGOS_CAVERN_BOSS, 0x00, 0x45, 0x50 },
{ SCENE_JABU_JABU, 0x00, 0x00, 0x00 },
{ SCENE_JABU_JABU_BOSS, 0x00, 0x45, 0x50 },
{ SCENE_FOREST_TEMPLE, 0x00, 0x00, 0x00 },
{ SCENE_FOREST_TEMPLE_BOSS, 0x00, 0x45, 0x50 },
{ SCENE_BOTTOM_OF_THE_WELL, 0x00, 0x00, 0x00 },
{ SCENE_SHADOW_TEMPLE, 0x00, 0x00, 0x00 },
{ SCENE_SHADOW_TEMPLE_BOSS, 0x00, 0x45, 0x50 },
{ SCENE_FIRE_TEMPLE, 0x00, 0x00, 0x00 },
{ SCENE_FIRE_TEMPLE_BOSS, 0x00, 0x45, 0x50 },
{ SCENE_WATER_TEMPLE, 0x00, 0x00, 0x00 },
{ SCENE_WATER_TEMPLE_BOSS, 0x00, 0x45, 0x50 },
{ SCENE_SPIRIT_TEMPLE, 0x00, 0x00, 0x00 },
{ SCENE_SPIRIT_TEMPLE_BOSS, 0x00, 0x45, 0x50 },
{ SCENE_GANONS_TOWER, 0x00, 0x00, 0x00 },
{ SCENE_GANONDORF_BOSS, 0x00, 0x45, 0x50 },
{ SCENE_ICE_CAVERN, 0x00, 0x00, 0xC0 },
{ SCENE_WINDMILL_AND_DAMPES_GRAVE, 0x00, 0x03, 0x14 },
{ SCENE_INSIDE_GANONS_CASTLE, 0x00, 0x03, 0x10 },
{ SCENE_GANON_BOSS, 0x00, 0x45, 0x50 },
{ SCENE_GANONS_TOWER_COLLAPSE_INTERIOR, 0x00, 0x05, 0x50 },
{ SCENE_INSIDE_GANONS_CASTLE_COLLAPSE, 0x00, 0x05, 0x50 },
{ SCENE_THIEVES_HIDEOUT, 0x00, 0x00, 0x10 },
{ SCENE_GROTTOS, 0x00, 0x00, 0xD0 },
{ 0xFF, 0x00, 0x00, 0x00 },
{ 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_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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 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) },
{ 0xFF, 0, 0, 0 },
};
static s16 sHBAScoreTier = 0;
@ -871,7 +1176,7 @@ void func_80083108(PlayState* play) {
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL);
} else {
if (interfaceCtx->restrictions.bButton == 0) {
if (interfaceCtx->restrictions.bButton == RESTR_B_BTN_0) {
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) ||
@ -895,7 +1200,7 @@ void func_80083108(PlayState* play) {
gSaveContext.save.info.equips.buttonItems[0] = gSaveContext.buttonStatus[0] & 0xFF;
}
}
} else if (interfaceCtx->restrictions.bButton == 1) {
} else if (interfaceCtx->restrictions.bButton == RESTR_B_BTN_1) {
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) ||
@ -918,7 +1223,7 @@ void func_80083108(PlayState* play) {
}
}
if (interfaceCtx->restrictions.bottles != 0) {
if (interfaceCtx->restrictions.bottles != RESTR_BOTTLES_ON) {
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)) {
@ -929,7 +1234,7 @@ void func_80083108(PlayState* play) {
gSaveContext.buttonStatus[i] = BTN_DISABLED;
}
}
} else if (interfaceCtx->restrictions.bottles == 0) {
} else if (interfaceCtx->restrictions.bottles == RESTR_BOTTLES_ON) {
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)) {
@ -942,7 +1247,7 @@ void func_80083108(PlayState* play) {
}
}
if (interfaceCtx->restrictions.tradeItems != 0) {
if (interfaceCtx->restrictions.tradeItems != RESTR_TRADE_ITEMS_ON) {
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)) {
@ -953,7 +1258,7 @@ void func_80083108(PlayState* play) {
gSaveContext.buttonStatus[i] = BTN_DISABLED;
}
}
} else if (interfaceCtx->restrictions.tradeItems == 0) {
} else if (interfaceCtx->restrictions.tradeItems == RESTR_TRADE_ITEMS_ON) {
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)) {
@ -966,7 +1271,7 @@ void func_80083108(PlayState* play) {
}
}
if (interfaceCtx->restrictions.hookshot != 0) {
if (interfaceCtx->restrictions.hookshot != RESTR_HOOKSHOT_ON) {
for (i = 1; i < 4; i++) {
if ((gSaveContext.save.info.equips.buttonItems[i] == ITEM_HOOKSHOT) ||
(gSaveContext.save.info.equips.buttonItems[i] == ITEM_LONGSHOT)) {
@ -977,7 +1282,7 @@ void func_80083108(PlayState* play) {
gSaveContext.buttonStatus[i] = BTN_DISABLED;
}
}
} else if (interfaceCtx->restrictions.hookshot == 0) {
} else if (interfaceCtx->restrictions.hookshot == RESTR_HOOKSHOT_ON) {
for (i = 1; i < 4; i++) {
if ((gSaveContext.save.info.equips.buttonItems[i] == ITEM_HOOKSHOT) ||
(gSaveContext.save.info.equips.buttonItems[i] == ITEM_LONGSHOT)) {
@ -990,7 +1295,7 @@ void func_80083108(PlayState* play) {
}
}
if (interfaceCtx->restrictions.ocarina != 0) {
if (interfaceCtx->restrictions.ocarina != RESTR_OCARINA_ON) {
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)) {
@ -1001,7 +1306,7 @@ void func_80083108(PlayState* play) {
gSaveContext.buttonStatus[i] = BTN_DISABLED;
}
}
} else if (interfaceCtx->restrictions.ocarina == 0) {
} else if (interfaceCtx->restrictions.ocarina == RESTR_OCARINA_ON) {
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)) {
@ -1014,7 +1319,7 @@ void func_80083108(PlayState* play) {
}
}
if (interfaceCtx->restrictions.farores != 0) {
if (interfaceCtx->restrictions.farores != RESTR_FARORES_ON) {
for (i = 1; i < 4; i++) {
if (gSaveContext.save.info.equips.buttonItems[i] == ITEM_FARORES_WIND) {
if (gSaveContext.buttonStatus[i] == BTN_ENABLED) {
@ -1025,7 +1330,7 @@ void func_80083108(PlayState* play) {
PRINTF("***(i=%d)*** ", i);
}
}
} else if (interfaceCtx->restrictions.farores == 0) {
} else if (interfaceCtx->restrictions.farores == RESTR_FARORES_ON) {
for (i = 1; i < 4; i++) {
if (gSaveContext.save.info.equips.buttonItems[i] == ITEM_FARORES_WIND) {
if (gSaveContext.buttonStatus[i] == BTN_DISABLED) {
@ -1037,7 +1342,7 @@ void func_80083108(PlayState* play) {
}
}
if (interfaceCtx->restrictions.dinsNayrus != 0) {
if (interfaceCtx->restrictions.dinsNayrus != RESTR_DINS_NAYRUS_ON) {
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)) {
@ -1048,7 +1353,7 @@ void func_80083108(PlayState* play) {
gSaveContext.buttonStatus[i] = BTN_DISABLED;
}
}
} else if (interfaceCtx->restrictions.dinsNayrus == 0) {
} else if (interfaceCtx->restrictions.dinsNayrus == RESTR_DINS_NAYRUS_ON) {
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)) {
@ -1061,7 +1366,7 @@ void func_80083108(PlayState* play) {
}
}
if (interfaceCtx->restrictions.all != 0) {
if (interfaceCtx->restrictions.all != RESTR_ALL_ON) {
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) &&
@ -1069,8 +1374,8 @@ void func_80083108(PlayState* play) {
(gSaveContext.save.info.equips.buttonItems[i] <= ITEM_BOTTLE_POE)) &&
!((gSaveContext.save.info.equips.buttonItems[i] >= ITEM_WEIRD_EGG) &&
(gSaveContext.save.info.equips.buttonItems[i] <= ITEM_CLAIM_CHECK))) {
if ((play->sceneId != SCENE_TREASURE_BOX_SHOP) ||
(gSaveContext.save.info.equips.buttonItems[i] != ITEM_LENS_OF_TRUTH)) {
if (!((play->sceneId == SCENE_TREASURE_BOX_SHOP) &&
(gSaveContext.save.info.equips.buttonItems[i] == ITEM_LENS_OF_TRUTH))) {
if (gSaveContext.buttonStatus[i] == BTN_ENABLED) {
sp28 = true;
}
@ -1085,7 +1390,7 @@ void func_80083108(PlayState* play) {
}
}
}
} else if (interfaceCtx->restrictions.all == 0) {
} else if (interfaceCtx->restrictions.all == RESTR_ALL_ON) {
for (i = 1; i < 4; i++) {
if ((gSaveContext.save.info.equips.buttonItems[i] != ITEM_DINS_FIRE) &&
(gSaveContext.save.info.equips.buttonItems[i] != ITEM_HOOKSHOT) &&
@ -1129,18 +1434,18 @@ void Interface_SetSceneRestrictions(PlayState* play) {
s32 pad2;
s32 pad3;
interfaceCtx->restrictions.all = 0;
interfaceCtx->restrictions.dinsNayrus = 0;
interfaceCtx->restrictions.farores = 0;
interfaceCtx->restrictions.sunsSong = 0;
interfaceCtx->restrictions.warpSongs = 0;
interfaceCtx->restrictions.ocarina = 0;
interfaceCtx->restrictions.hookshot = 0;
interfaceCtx->restrictions.tradeItems = 0;
interfaceCtx->restrictions.bottles = 0;
interfaceCtx->restrictions.aButton = 0;
interfaceCtx->restrictions.bButton = 0;
interfaceCtx->restrictions.hGauge = 0;
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;
PRINTF(
T("ボタン表示関係データ設定 scene_data_ID=%d\n", "Data settings related to button display scene_data_ID=%d\n"),
@ -4409,7 +4714,8 @@ 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 != 3)) {
} else if ((play->roomCtx.curRoom.type != ROOM_TYPE_DUNGEON) &&
(interfaceCtx->restrictions.sunsSong != RESTR_SUNS_SONG_3)) {
if ((gSaveContext.save.dayTime >= CLOCK_TIME(6, 30)) &&
(gSaveContext.save.dayTime < CLOCK_TIME(18, 0) + 1)) {
gSaveContext.nextDayTime = NEXT_TIME_NIGHT;