diff --git a/include/interface.h b/include/interface.h index 5b300068bd..36bb2d2a06 100644 --- a/include/interface.h +++ b/include/interface.h @@ -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; diff --git a/src/code/z_message.c b/src/code/z_message.c index 1fc06d7407..99863f3574 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -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) { diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 7c97802888..e0ccb10d82 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -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;