Change GI_VB_ to VB_ (#4116)

This commit is contained in:
Garrett Cox 2024-05-05 16:29:02 -05:00 committed by GitHub
parent 04f9ec1b78
commit b4a30f708f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
73 changed files with 597 additions and 597 deletions

View File

@ -14,13 +14,13 @@ extern PlayState* gPlayState;
void CheatsOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void* opt) { void CheatsOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void* opt) {
switch (id) { switch (id) {
case GI_VB_DEKU_STICK_BREAK: { case VB_DEKU_STICK_BREAK: {
if (CVarGetInteger("gDekuStickCheat", DEKU_STICK_NORMAL) != DEKU_STICK_NORMAL) { if (CVarGetInteger("gDekuStickCheat", DEKU_STICK_NORMAL) != DEKU_STICK_NORMAL) {
*should = false; *should = false;
} }
break; break;
} }
case GI_VB_DEKU_STICK_BE_ON_FIRE: { case VB_DEKU_STICK_BE_ON_FIRE: {
if (CVarGetInteger("gDekuStickCheat", DEKU_STICK_NORMAL) == DEKU_STICK_UNBREAKABLE_AND_ALWAYS_ON_FIRE) { if (CVarGetInteger("gDekuStickCheat", DEKU_STICK_NORMAL) == DEKU_STICK_UNBREAKABLE_AND_ALWAYS_ON_FIRE) {
Player* player = GET_PLAYER(gPlayState); Player* player = GET_PLAYER(gPlayState);
player->unk_860 = 200; // Keeps the stick's flame lit player->unk_860 = 200; // Keeps the stick's flame lit
@ -29,13 +29,13 @@ void CheatsOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void* op
} }
break; break;
} }
case GI_VB_DEKU_STICK_BURN_OUT: { case VB_DEKU_STICK_BURN_OUT: {
if (CVarGetInteger("gDekuStickCheat", DEKU_STICK_NORMAL) != DEKU_STICK_NORMAL) { if (CVarGetInteger("gDekuStickCheat", DEKU_STICK_NORMAL) != DEKU_STICK_NORMAL) {
*should = false; *should = false;
} }
break; break;
} }
case GI_VB_DEKU_STICK_BURN_DOWN: { case VB_DEKU_STICK_BURN_DOWN: {
if (CVarGetInteger("gDekuStickCheat", DEKU_STICK_NORMAL) != DEKU_STICK_NORMAL) { if (CVarGetInteger("gDekuStickCheat", DEKU_STICK_NORMAL) != DEKU_STICK_NORMAL) {
*should = false; *should = false;
} }

View File

@ -70,32 +70,32 @@ typedef enum {
typedef enum { typedef enum {
// Vanilla condition: gSaveContext.showTitleCard // Vanilla condition: gSaveContext.showTitleCard
GI_VB_SHOW_TITLE_CARD, VB_SHOW_TITLE_CARD,
// Opt: *EnWonderTalk2 // Opt: *EnWonderTalk2
GI_VB_WONDER_TALK, VB_WONDER_TALK,
// Opt: *ElfMsg // Opt: *ElfMsg
GI_VB_NAVI_TALK, VB_NAVI_TALK,
// Vanilla condition: INFTABLE_GREETED_BY_SARIA // Vanilla condition: INFTABLE_GREETED_BY_SARIA
GI_VB_NOT_BE_GREETED_BY_SARIA, VB_NOT_BE_GREETED_BY_SARIA,
// Opt: *EnMd // Opt: *EnMd
// Vanilla condition: EnMd->interactInfo.talkState == NPC_TALK_STATE_ACTION // Vanilla condition: EnMd->interactInfo.talkState == NPC_TALK_STATE_ACTION
GI_VB_MOVE_MIDO_IN_KOKIRI_FOREST, VB_MOVE_MIDO_IN_KOKIRI_FOREST,
// Opt: *EnMd // Opt: *EnMd
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) // Vanilla condition: CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)
GI_VB_MIDO_CONSIDER_DEKU_TREE_DEAD, VB_MIDO_CONSIDER_DEKU_TREE_DEAD,
// Opt: *ObjDekujr // Opt: *ObjDekujr
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST) // Vanilla condition: CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST)
GI_VB_DEKU_JR_CONSIDER_FOREST_TEMPLE_FINISHED, VB_DEKU_JR_CONSIDER_FOREST_TEMPLE_FINISHED,
// Opt: *EnKo // Opt: *EnKo
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) // Vanilla condition: CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)
GI_VB_OPEN_KOKIRI_FOREST, VB_OPEN_KOKIRI_FOREST,
// Opt: *EnOwl // Opt: *EnOwl
// Vanilla condition: EnOwl->actor.xzDistToPlayer < targetDist // Vanilla condition: EnOwl->actor.xzDistToPlayer < targetDist
GI_VB_OWL_INTERACTION, VB_OWL_INTERACTION,
// Vanilla condition: EVENTCHKINF_TALON_RETURNED_FROM_CASTLE // Vanilla condition: EVENTCHKINF_TALON_RETURNED_FROM_CASTLE
GI_VB_MALON_RETURN_FROM_CASTLE, VB_MALON_RETURN_FROM_CASTLE,
// Vanilla condition: CUR_UPG_VALUE(UPG_STRENGTH) <= 0 // Vanilla condition: CUR_UPG_VALUE(UPG_STRENGTH) <= 0
GI_VB_BE_ELIGIBLE_FOR_DARUNIAS_JOY_REWARD, VB_BE_ELIGIBLE_FOR_DARUNIAS_JOY_REWARD,
/* Vanilla condition: /* Vanilla condition:
``` ```
LINK_IS_ADULT && LINK_IS_ADULT &&
@ -105,18 +105,18 @@ typedef enum {
!Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS); !Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS);
``` ```
*/ */
GI_VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS, VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS,
// Vanilla condition: !CHECK_QUEST_ITEM(QUEST_SONG_SARIA) // Vanilla condition: !CHECK_QUEST_ITEM(QUEST_SONG_SARIA)
GI_VB_BE_ELIGIBLE_FOR_SARIAS_SONG, VB_BE_ELIGIBLE_FOR_SARIAS_SONG,
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_SONG_EPONA) // Vanilla condition: CHECK_QUEST_ITEM(QUEST_SONG_EPONA)
GI_VB_MALON_ALREADY_TAUGHT_EPONAS_SONG, VB_MALON_ALREADY_TAUGHT_EPONAS_SONG,
// Vanilla condition: CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON) && !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER) // Vanilla condition: CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON) && !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER)
GI_VB_BE_ELIGIBLE_FOR_SERENADE_OF_WATER, VB_BE_ELIGIBLE_FOR_SERENADE_OF_WATER,
// Vanilla condition: (!CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON) && !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER)) && LINK_IS_ADULT // Vanilla condition: (!CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON) && !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER)) && LINK_IS_ADULT
GI_VB_SHIEK_PREPARE_TO_GIVE_SERENADE_OF_WATER, VB_SHIEK_PREPARE_TO_GIVE_SERENADE_OF_WATER,
// Vanilla condition: !EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT and EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP // Vanilla condition: !EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT and EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP
GI_VB_BE_ELIGIBLE_FOR_PRELUDE_OF_LIGHT, VB_BE_ELIGIBLE_FOR_PRELUDE_OF_LIGHT,
GI_VB_BE_ELIGIBLE_FOR_RAINBOW_BRIDGE, VB_BE_ELIGIBLE_FOR_RAINBOW_BRIDGE,
/* Vanilla Condition: /* Vanilla Condition:
``` ```
LINK_IS_ADULT && LINK_IS_ADULT &&
@ -127,30 +127,30 @@ typedef enum {
!Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL); !Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL);
``` ```
*/ */
GI_VB_BE_ELIGIBLE_FOR_NOCTURNE_OF_SHADOW, VB_BE_ELIGIBLE_FOR_NOCTURNE_OF_SHADOW,
// Opt: *EnGo2 // Opt: *EnGo2
// Vanilla condition: CUR_CAPACITY(UPG_BOMB_BAG) >= 20 && this->waypoint > 7 && this->waypoint < 12 // Vanilla condition: CUR_CAPACITY(UPG_BOMB_BAG) >= 20 && this->waypoint > 7 && this->waypoint < 12
GI_VB_BE_ELIGIBLE_FOR_CHILD_ROLLING_GORON_REWARD, VB_BE_ELIGIBLE_FOR_CHILD_ROLLING_GORON_REWARD,
// Vanilla condition: !CHECK_OWNED_EQUIP_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BIGGORON) // Vanilla condition: !CHECK_OWNED_EQUIP_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BIGGORON)
GI_VB_BE_ELIGIBLE_FOR_GIANTS_KNIFE_PURCHASE, VB_BE_ELIGIBLE_FOR_GIANTS_KNIFE_PURCHASE,
// Opt: *EnMs // Opt: *EnMs
// Vanilla condition: gSaveContext.rupees >= sPrices[BEANS_BOUGHT] // Vanilla condition: gSaveContext.rupees >= sPrices[BEANS_BOUGHT]
GI_VB_BE_ELIGIBLE_FOR_MAGIC_BEANS_PURCHASE, VB_BE_ELIGIBLE_FOR_MAGIC_BEANS_PURCHASE,
// Opt: *EnItem00 // Opt: *EnItem00
// Vanilla condition: Flags_GetCollectible(play, this->collectibleFlag) // Vanilla condition: Flags_GetCollectible(play, this->collectibleFlag)
GI_VB_ITEM00_DESPAWN, VB_ITEM00_DESPAWN,
// Opt: *EnTk // Opt: *EnTk
// Vanilla condition: gSaveContext.dayTime <= 0xC000 || gSaveContext.dayTime >= 0xE000 || LINK_IS_ADULT || play->sceneNum != SCENE_GRAVEYARD // Vanilla condition: gSaveContext.dayTime <= 0xC000 || gSaveContext.dayTime >= 0xE000 || LINK_IS_ADULT || play->sceneNum != SCENE_GRAVEYARD
GI_VB_DAMPE_IN_GRAVEYARD_DESPAWN, VB_DAMPE_IN_GRAVEYARD_DESPAWN,
// Opt: *EnTk // Opt: *EnTk
// Vanilla condition: this->validDigHere == 1 // Vanilla condition: this->validDigHere == 1
GI_VB_BE_VALID_GRAVEDIGGING_SPOT, VB_BE_VALID_GRAVEDIGGING_SPOT,
// Opt: *EnTk // Opt: *EnTk
// Vanilla condition: this->currentReward == 3 // Vanilla condition: this->currentReward == 3
GI_VB_BE_DAMPE_GRAVEDIGGING_GRAND_PRIZE, VB_BE_DAMPE_GRAVEDIGGING_GRAND_PRIZE,
// Opt: *EnTk // Opt: *EnTk
// Vanilla condition: !Flags_GetItemGetInf(ITEMGETINF_1C) // Vanilla condition: !Flags_GetItemGetInf(ITEMGETINF_1C)
GI_VB_DAMPE_GRAVEDIGGING_GRAND_PRIZE_BE_HEART_PIECE, VB_DAMPE_GRAVEDIGGING_GRAND_PRIZE_BE_HEART_PIECE,
// Opt: *EnShopnuts // Opt: *EnShopnuts
/* Vanilla Condition: /* Vanilla Condition:
``` ```
@ -159,235 +159,235 @@ typedef enum {
((this->actor.params == 0x000A) && (Flags_GetInfTable(INFTABLE_193))) ((this->actor.params == 0x000A) && (Flags_GetInfTable(INFTABLE_193)))
``` ```
*/ */
GI_VB_BUSINESS_SCRUB_DESPAWN, VB_BUSINESS_SCRUB_DESPAWN,
// Opt: *EnCow // Opt: *EnCow
// Vanilla condition: play->sceneNum == SCENE_LINKS_HOUSE && (!LINK_IS_ADULT || !Flags_GetEventChkInf(EVENTCHKINF_WON_COW_IN_MALONS_RACE)) // Vanilla condition: play->sceneNum == SCENE_LINKS_HOUSE && (!LINK_IS_ADULT || !Flags_GetEventChkInf(EVENTCHKINF_WON_COW_IN_MALONS_RACE))
GI_VB_DESPAWN_HORSE_RACE_COW, VB_DESPAWN_HORSE_RACE_COW,
// Opt: *EnHs // Opt: *EnHs
// Vanilla condition: Flags_GetItemGetInf(ITEMGETINF_30) // Vanilla condition: Flags_GetItemGetInf(ITEMGETINF_30)
GI_VB_DESPAWN_GROG, VB_DESPAWN_GROG,
// Opt: *EnKo // Opt: *EnKo
// Vanilla condition: (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_ODD_POTION) ? true : false; // Vanilla condition: (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_ODD_POTION) ? true : false;
GI_VB_SPAWN_LW_FADO, VB_SPAWN_LW_FADO,
// Opt: *EnMk // Opt: *EnMk
GI_VB_PLAY_EYEDROP_CREATION_ANIM, VB_PLAY_EYEDROP_CREATION_ANIM,
// Opt: *EnDs // Opt: *EnDs
GI_VB_PLAY_ODD_POTION_ANIM, VB_PLAY_ODD_POTION_ANIM,
// Opt: *EnMk // Opt: *EnMk
// Vanilla condition: INV_CONTENT(ITEM_ODD_MUSHROOM) == ITEM_EYEDROPS // Vanilla condition: INV_CONTENT(ITEM_ODD_MUSHROOM) == ITEM_EYEDROPS
GI_VB_USE_EYEDROP_DIALOGUE, VB_USE_EYEDROP_DIALOGUE,
// Opt: *EnMk // Opt: *EnMk
// Vanilla condition: Flags_GetItemGetInf(ITEMGETINF_30) // Vanilla condition: Flags_GetItemGetInf(ITEMGETINF_30)
GI_VB_OFFER_BLUE_POTION, VB_OFFER_BLUE_POTION,
// Vanilla condition: Inventory_HasEmptyBottle() == 0 // Vanilla condition: Inventory_HasEmptyBottle() == 0
GI_VB_NEED_BOTTLE_FOR_GRANNYS_ITEM, VB_NEED_BOTTLE_FOR_GRANNYS_ITEM,
// Opt: *EnNiwLady // Opt: *EnNiwLady
GI_VB_SET_CUCCO_COUNT, VB_SET_CUCCO_COUNT,
// Opt: *EnKz // Opt: *EnKz
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE) // Vanilla condition: CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)
GI_VB_KING_ZORA_THANK_CHILD, VB_KING_ZORA_THANK_CHILD,
// Opt: *EnKz // Opt: *EnKz
// Vanilla condition: this->actor.textId == 0x401A // Vanilla condition: this->actor.textId == 0x401A
GI_VB_BE_ABLE_TO_EXCHANGE_RUTOS_LETTER, VB_BE_ABLE_TO_EXCHANGE_RUTOS_LETTER,
// Opt: *EnKz // Opt: *EnKz
// Vanilla condition: Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED) // Vanilla condition: Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED)
GI_VB_KING_ZORA_BE_MOVED, VB_KING_ZORA_BE_MOVED,
// Vanilla condition: gSaveState.bgsFlag // Vanilla condition: gSaveState.bgsFlag
GI_VB_BIGGORON_CONSIDER_TRADE_COMPLETE, VB_BIGGORON_CONSIDER_TRADE_COMPLETE,
// Vanilla condition: gSaveState.bgsFlag // Vanilla condition: gSaveState.bgsFlag
GI_VB_BIGGORON_CONSIDER_SWORD_COLLECTED, VB_BIGGORON_CONSIDER_SWORD_COLLECTED,
// Vanilla condition: Environment_GetBgsDayCount() >= 3 // Vanilla condition: Environment_GetBgsDayCount() >= 3
GI_VB_BIGGORON_CONSIDER_SWORD_FORGED, VB_BIGGORON_CONSIDER_SWORD_FORGED,
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) // Vanilla condition: CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE)
GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED,
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_GORON_RUBY) // Vanilla condition: CHECK_QUEST_ITEM(QUEST_GORON_RUBY)
GI_VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED, VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED,
// Opt: *uint16_t // Opt: *uint16_t
// Vanilla condition: false // Vanilla condition: false
GI_VB_OVERRIDE_LINK_THE_GORON_DIALOGUE, VB_OVERRIDE_LINK_THE_GORON_DIALOGUE,
// Vanilla condition: CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON) // Vanilla condition: CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON)
GI_VB_GORONS_CONSIDER_TUNIC_COLLECTED, VB_GORONS_CONSIDER_TUNIC_COLLECTED,
// Opt: *EnSyatekiMan // Opt: *EnSyatekiMan
// Vanilla condition: (this->getItemId == GI_QUIVER_40) || (this->getItemId == GI_QUIVER_50) // Vanilla condition: (this->getItemId == GI_QUIVER_40) || (this->getItemId == GI_QUIVER_50)
GI_VB_BE_ELIGIBLE_FOR_ADULT_SHOOTING_GAME_REWARD, VB_BE_ELIGIBLE_FOR_ADULT_SHOOTING_GAME_REWARD,
// Opt: *EnOkarinaTag // Opt: *EnOkarinaTag
// Vanilla condition: !Flags_GetEventChkInf(EVENTCHKINF_OPENED_THE_DOOR_OF_TIME) // Vanilla condition: !Flags_GetEventChkInf(EVENTCHKINF_OPENED_THE_DOOR_OF_TIME)
GI_VB_BE_ELIGIBLE_TO_OPEN_DOT, VB_BE_ELIGIBLE_TO_OPEN_DOT,
// Opt: *BgDyYoseizo // Opt: *BgDyYoseizo
// Vanilla condition: see soh/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c // Vanilla condition: see soh/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c
GI_VB_BE_ELIGIBLE_FOR_GREAT_FAIRY_REWARD, VB_BE_ELIGIBLE_FOR_GREAT_FAIRY_REWARD,
// Vanilla condition: see CheckCarpentersFreed in z_en_ge1 and z_en_ge2 // Vanilla condition: see CheckCarpentersFreed in z_en_ge1 and z_en_ge2
GI_VB_GERUDOS_BE_FRIENDLY, VB_GERUDOS_BE_FRIENDLY,
// Vanilla condition: switch // Vanilla condition: switch
GI_VB_GTG_GATE_BE_OPEN, VB_GTG_GATE_BE_OPEN,
/*** Play Cutscenes ***/ /*** Play Cutscenes ***/
GI_VB_PLAY_TRANSITION_CS, VB_PLAY_TRANSITION_CS,
// Opt: *EventChkInf flag // Opt: *EventChkInf flag
GI_VB_PLAY_ENTRANCE_CS, VB_PLAY_ENTRANCE_CS,
// Opt: *cutsceneId // Opt: *cutsceneId
GI_VB_PLAY_ONEPOINT_CS, VB_PLAY_ONEPOINT_CS,
// Opt: *actor // Opt: *actor
GI_VB_PLAY_ONEPOINT_ACTOR_CS, VB_PLAY_ONEPOINT_ACTOR_CS,
// Opt: *BgTreemouth // Opt: *BgTreemouth
GI_VB_PLAY_DEKU_TREE_INTRO_CS, VB_PLAY_DEKU_TREE_INTRO_CS,
// Vanilla condition: !EventChkInf except for spirit & shadow temple which are !medallion, and Jabu which always is true // Vanilla condition: !EventChkInf except for spirit & shadow temple which are !medallion, and Jabu which always is true
GI_VB_PLAY_BLUE_WARP_CS, VB_PLAY_BLUE_WARP_CS,
GI_VB_PLAY_DARUNIAS_JOY_CS, VB_PLAY_DARUNIAS_JOY_CS,
GI_VB_PLAY_SHIEK_BLOCK_MASTER_SWORD_CS, VB_PLAY_SHIEK_BLOCK_MASTER_SWORD_CS,
// Vanilla condition: !EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL // Vanilla condition: !EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL
GI_VB_PLAY_PULL_MASTER_SWORD_CS, VB_PLAY_PULL_MASTER_SWORD_CS,
GI_VB_PLAY_DROP_FISH_FOR_JABU_CS, VB_PLAY_DROP_FISH_FOR_JABU_CS,
// Vanilla condition: player->getItemId == GI_GAUNTLETS_SILVER // Vanilla condition: player->getItemId == GI_GAUNTLETS_SILVER
GI_VB_PLAY_NABOORU_CAPTURED_CS, VB_PLAY_NABOORU_CAPTURED_CS,
GI_VB_PLAY_ZELDAS_LULLABY_CS, VB_PLAY_ZELDAS_LULLABY_CS,
// Opt: *EnSa // Opt: *EnSa
GI_VB_PLAY_SARIAS_SONG_CS, VB_PLAY_SARIAS_SONG_CS,
GI_VB_PLAY_PRELUDE_OF_LIGHT_CS, VB_PLAY_PRELUDE_OF_LIGHT_CS,
GI_VB_PLAY_MINUET_OF_FOREST_CS, VB_PLAY_MINUET_OF_FOREST_CS,
GI_VB_PLAY_BOLERO_OF_FIRE_CS, VB_PLAY_BOLERO_OF_FIRE_CS,
GI_VB_PLAY_SERENADE_OF_WATER_CS, VB_PLAY_SERENADE_OF_WATER_CS,
GI_VB_PLAY_EYEDROPS_CS, VB_PLAY_EYEDROPS_CS,
// Opt: *EnOkarinaTag // Opt: *EnOkarinaTag
GI_VB_PLAY_DRAIN_WELL_CS, VB_PLAY_DRAIN_WELL_CS,
// Opt: *EnOkarinaTag // Opt: *EnOkarinaTag
// Vanilla condition: !CHECK_QUEST_ITEM(QUEST_SONG_SUN) // Vanilla condition: !CHECK_QUEST_ITEM(QUEST_SONG_SUN)
GI_VB_PLAY_SUNS_SONG_CS, VB_PLAY_SUNS_SONG_CS,
// Opt: *EnOkarinaTag // Opt: *EnOkarinaTag
GI_VB_PLAY_ROYAL_FAMILY_TOMB_CS, VB_PLAY_ROYAL_FAMILY_TOMB_CS,
GI_VB_PLAY_ROYAL_FAMILY_TOMB_EXPLODE, VB_PLAY_ROYAL_FAMILY_TOMB_EXPLODE,
// Opt: *EnOkarinaTag // Opt: *EnOkarinaTag
GI_VB_PLAY_DOOR_OF_TIME_CS, VB_PLAY_DOOR_OF_TIME_CS,
GI_VB_PLAY_RAINBOW_BRIDGE_CS, VB_PLAY_RAINBOW_BRIDGE_CS,
/*** Give Items ***/ /*** Give Items ***/
// Opt: *EnBox // Opt: *EnBox
GI_VB_GIVE_ITEM_FROM_CHEST, VB_GIVE_ITEM_FROM_CHEST,
GI_VB_GIVE_ITEM_FROM_BLUE_WARP, VB_GIVE_ITEM_FROM_BLUE_WARP,
// Opt: *EnItem00 // Opt: *EnItem00
GI_VB_GIVE_ITEM_FROM_ITEM_00, VB_GIVE_ITEM_FROM_ITEM_00,
// Opt: *EnSi // Opt: *EnSi
GI_VB_GIVE_ITEM_SKULL_TOKEN, VB_GIVE_ITEM_SKULL_TOKEN,
// Opt: *EnCow // Opt: *EnCow
GI_VB_GIVE_ITEM_FROM_COW, VB_GIVE_ITEM_FROM_COW,
// Opt: *EnDns // Opt: *EnDns
GI_VB_GIVE_ITEM_FROM_BUSINESS_SCRUB, VB_GIVE_ITEM_FROM_BUSINESS_SCRUB,
// Opt: *EnMk // Opt: *EnMk
GI_VB_GIVE_ITEM_FROM_LAB_DIVE, VB_GIVE_ITEM_FROM_LAB_DIVE,
// Opt: *EnDs // Opt: *EnDs
GI_VB_GIVE_ITEM_FROM_GRANNYS_SHOP, VB_GIVE_ITEM_FROM_GRANNYS_SHOP,
// Opt: *EnNiwLady // Opt: *EnNiwLady
GI_VB_GIVE_ITEM_FROM_ANJU_AS_CHILD, VB_GIVE_ITEM_FROM_ANJU_AS_CHILD,
// Opt: *EnNiwLady // Opt: *EnNiwLady
GI_VB_GIVE_ITEM_FROM_ANJU_AS_ADULT, VB_GIVE_ITEM_FROM_ANJU_AS_ADULT,
// Opt: *EnKz // Opt: *EnKz
// Vanilla condition: !CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_ZORA) // Vanilla condition: !CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_ZORA)
GI_VB_GIVE_ITEM_FROM_THAWING_KING_ZORA, VB_GIVE_ITEM_FROM_THAWING_KING_ZORA,
// Opt: *EnGo2 // Opt: *EnGo2
GI_VB_GIVE_ITEM_FROM_GORON, VB_GIVE_ITEM_FROM_GORON,
// Opt: *EnJs // Opt: *EnJs
GI_VB_GIVE_ITEM_FROM_CARPET_SALESMAN, VB_GIVE_ITEM_FROM_CARPET_SALESMAN,
// Opt: *EnGm // Opt: *EnGm
GI_VB_GIVE_ITEM_FROM_MEDIGORON, VB_GIVE_ITEM_FROM_MEDIGORON,
// Opt: *EnMs // Opt: *EnMs
GI_VB_GIVE_ITEM_FROM_MAGIC_BEAN_SALESMAN, VB_GIVE_ITEM_FROM_MAGIC_BEAN_SALESMAN,
// Opt: *EnFr // Opt: *EnFr
GI_VB_GIVE_ITEM_FROM_FROGS, VB_GIVE_ITEM_FROM_FROGS,
// Opt: *EnSkj // Opt: *EnSkj
GI_VB_GIVE_ITEM_FROM_OCARINA_MEMORY_GAME, VB_GIVE_ITEM_FROM_OCARINA_MEMORY_GAME,
// Opt: *EnSkj // Opt: *EnSkj
GI_VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG, VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG,
GI_VB_GIVE_ITEM_FROM_MAN_ON_ROOF, VB_GIVE_ITEM_FROM_MAN_ON_ROOF,
// Opt: *EnSyatekiMan // Opt: *EnSyatekiMan
GI_VB_GIVE_ITEM_FROM_SHOOTING_GALLERY, VB_GIVE_ITEM_FROM_SHOOTING_GALLERY,
// Opt: *EnExItem // Opt: *EnExItem
GI_VB_GIVE_ITEM_FROM_TARGET_IN_WOODS, VB_GIVE_ITEM_FROM_TARGET_IN_WOODS,
// Opt: *EnTa // Opt: *EnTa
GI_VB_GIVE_ITEM_FROM_TALONS_CHICKENS, VB_GIVE_ITEM_FROM_TALONS_CHICKENS,
// Opt: *EnDivingGame // Opt: *EnDivingGame
GI_VB_GIVE_ITEM_FROM_DIVING_MINIGAME, VB_GIVE_ITEM_FROM_DIVING_MINIGAME,
// Opt: *EnGe1 // Opt: *EnGe1
GI_VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY, VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY,
// Opt: *EnSth // Opt: *EnSth
GI_VB_GIVE_ITEM_FROM_SKULLTULA_REWARD, VB_GIVE_ITEM_FROM_SKULLTULA_REWARD,
// Opt: *EnHy // Opt: *EnHy
GI_VB_GIVE_ITEM_FROM_LOST_DOG, VB_GIVE_ITEM_FROM_LOST_DOG,
// Opt: *EnBomBowlPit // Opt: *EnBomBowlPit
GI_VB_GIVE_ITEM_FROM_BOMBCHU_BOWLING, VB_GIVE_ITEM_FROM_BOMBCHU_BOWLING,
GI_VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD, VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD,
GI_VB_GIVE_ITEM_FAIRY_OCARINA, VB_GIVE_ITEM_FAIRY_OCARINA,
GI_VB_GIVE_ITEM_WEIRD_EGG, VB_GIVE_ITEM_WEIRD_EGG,
GI_VB_GIVE_ITEM_LIGHT_ARROW, VB_GIVE_ITEM_LIGHT_ARROW,
GI_VB_GIVE_ITEM_STRENGTH_1, VB_GIVE_ITEM_STRENGTH_1,
GI_VB_GIVE_ITEM_ZELDAS_LETTER, VB_GIVE_ITEM_ZELDAS_LETTER,
GI_VB_GIVE_ITEM_MASTER_SWORD, VB_GIVE_ITEM_MASTER_SWORD,
GI_VB_GIVE_ITEM_OCARINA_OF_TIME, VB_GIVE_ITEM_OCARINA_OF_TIME,
GI_VB_GIVE_ITEM_KOKIRI_EMERALD, VB_GIVE_ITEM_KOKIRI_EMERALD,
GI_VB_GIVE_ITEM_GORON_RUBY, VB_GIVE_ITEM_GORON_RUBY,
GI_VB_GIVE_ITEM_ZORA_SAPPHIRE, VB_GIVE_ITEM_ZORA_SAPPHIRE,
GI_VB_GIVE_ITEM_LIGHT_MEDALLION, VB_GIVE_ITEM_LIGHT_MEDALLION,
GI_VB_GIVE_ITEM_FOREST_MEDALLION, VB_GIVE_ITEM_FOREST_MEDALLION,
GI_VB_GIVE_ITEM_FIRE_MEDALLION, VB_GIVE_ITEM_FIRE_MEDALLION,
GI_VB_GIVE_ITEM_WATER_MEDALLION, VB_GIVE_ITEM_WATER_MEDALLION,
GI_VB_GIVE_ITEM_SPIRIT_MEDALLION, VB_GIVE_ITEM_SPIRIT_MEDALLION,
GI_VB_GIVE_ITEM_SHADOW_MEDALLION, VB_GIVE_ITEM_SHADOW_MEDALLION,
/*** Give Songs ***/ /*** Give Songs ***/
GI_VB_GIVE_ITEM_ZELDAS_LULLABY, VB_GIVE_ITEM_ZELDAS_LULLABY,
GI_VB_GIVE_ITEM_SARIAS_SONG, VB_GIVE_ITEM_SARIAS_SONG,
GI_VB_GIVE_ITEM_EPONAS_SONG, VB_GIVE_ITEM_EPONAS_SONG,
GI_VB_GIVE_ITEM_SUNS_SONG, VB_GIVE_ITEM_SUNS_SONG,
GI_VB_GIVE_ITEM_SONG_OF_TIME, VB_GIVE_ITEM_SONG_OF_TIME,
GI_VB_GIVE_ITEM_SONG_OF_STORMS, VB_GIVE_ITEM_SONG_OF_STORMS,
GI_VB_GIVE_ITEM_MINUET_OF_FOREST, VB_GIVE_ITEM_MINUET_OF_FOREST,
GI_VB_GIVE_ITEM_BOLERO_OF_FIRE, VB_GIVE_ITEM_BOLERO_OF_FIRE,
GI_VB_GIVE_ITEM_SERENADE_OF_WATER, VB_GIVE_ITEM_SERENADE_OF_WATER,
GI_VB_GIVE_ITEM_REQUIEM_OF_SPIRIT, VB_GIVE_ITEM_REQUIEM_OF_SPIRIT,
GI_VB_GIVE_ITEM_NOCTURNE_OF_SHADOW, VB_GIVE_ITEM_NOCTURNE_OF_SHADOW,
GI_VB_GIVE_ITEM_PRELUDE_OF_LIGHT, VB_GIVE_ITEM_PRELUDE_OF_LIGHT,
/*** Adult Trade ***/ /*** Adult Trade ***/
// Opt: *EnNiwLady // Opt: *EnNiwLady
GI_VB_TRADE_POCKET_CUCCO, VB_TRADE_POCKET_CUCCO,
// Opt: *EnHs // Opt: *EnHs
GI_VB_TRADE_COJIRO, VB_TRADE_COJIRO,
// Opt: *EnDs // Opt: *EnDs
GI_VB_TRADE_ODD_MUSHROOM, VB_TRADE_ODD_MUSHROOM,
// Opt: *EnKo // Opt: *EnKo
GI_VB_TRADE_ODD_POTION, VB_TRADE_ODD_POTION,
// Opt: *EnToryo // Opt: *EnToryo
GI_VB_TRADE_SAW, VB_TRADE_SAW,
// Opt: *EnKz, // Opt: *EnKz,
GI_VB_TRADE_PRESCRIPTION, VB_TRADE_PRESCRIPTION,
// Opt: *EnMk // Opt: *EnMk
GI_VB_TRADE_FROG, VB_TRADE_FROG,
GI_VB_TRADE_TIMER_ODD_MUSHROOM, VB_TRADE_TIMER_ODD_MUSHROOM,
GI_VB_TRADE_TIMER_EYEDROPS, VB_TRADE_TIMER_EYEDROPS,
GI_VB_TRADE_TIMER_FROG, VB_TRADE_TIMER_FROG,
// Opt: *EnNiwLady // Opt: *EnNiwLady
GI_VB_ANJU_SET_OBTAINED_TRADE_ITEM, VB_ANJU_SET_OBTAINED_TRADE_ITEM,
/*** Fixes ***/ /*** Fixes ***/
// Vanilla condition: false // Vanilla condition: false
GI_VB_FIX_SAW_SOFTLOCK, VB_FIX_SAW_SOFTLOCK,
/*** Cheats? ***/ /*** Cheats? ***/
GI_VB_DEKU_STICK_BE_ON_FIRE, VB_DEKU_STICK_BE_ON_FIRE,
GI_VB_DEKU_STICK_BREAK, VB_DEKU_STICK_BREAK,
GI_VB_DEKU_STICK_BURN_DOWN, VB_DEKU_STICK_BURN_DOWN,
GI_VB_DEKU_STICK_BURN_OUT, VB_DEKU_STICK_BURN_OUT,
GI_VB_DEKU_UPDATE_BURNING_DEKU_STICK, VB_DEKU_UPDATE_BURNING_DEKU_STICK,
/*** Quick Boss Deaths ***/ /*** Quick Boss Deaths ***/
// Vanilla condition: true // Vanilla condition: true
GI_VB_PHANTOM_GANON_DEATH_SCENE, VB_PHANTOM_GANON_DEATH_SCENE,
GI_VB_NABOORU_KNUCKLE_DEATH_SCENE, VB_NABOORU_KNUCKLE_DEATH_SCENE,
} GIVanillaBehavior; } GIVanillaBehavior;
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -539,7 +539,7 @@ void RandomizerSetChestGameRandomizerInf(RandomizerCheck rc) {
void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void* optionalArg) { void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void* optionalArg) {
switch (id) { switch (id) {
case GI_VB_GIVE_ITEM_FROM_CHEST: { case VB_GIVE_ITEM_FROM_CHEST: {
EnBox* chest = static_cast<EnBox*>(optionalArg); EnBox* chest = static_cast<EnBox*>(optionalArg);
RandomizerCheck rc = OTRGlobals::Instance->gRandomizer->GetCheckFromActor(chest->dyna.actor.id, gPlayState->sceneNum, chest->dyna.actor.params); RandomizerCheck rc = OTRGlobals::Instance->gRandomizer->GetCheckFromActor(chest->dyna.actor.id, gPlayState->sceneNum, chest->dyna.actor.params);
@ -553,38 +553,38 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = false; *should = false;
break; break;
} }
case GI_VB_PLAY_NABOORU_CAPTURED_CS: case VB_PLAY_NABOORU_CAPTURED_CS:
// This behavior is replicated for randomizer in RandomizerOnItemReceiveHandler // This behavior is replicated for randomizer in RandomizerOnItemReceiveHandler
*should = false; *should = false;
break; break;
case GI_VB_SHIEK_PREPARE_TO_GIVE_SERENADE_OF_WATER: { case VB_SHIEK_PREPARE_TO_GIVE_SERENADE_OF_WATER: {
*should = !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER) && !Flags_GetTreasure(gPlayState, 0x2); *should = !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER) && !Flags_GetTreasure(gPlayState, 0x2);
break; break;
} }
case GI_VB_BE_ELIGIBLE_FOR_SERENADE_OF_WATER: case VB_BE_ELIGIBLE_FOR_SERENADE_OF_WATER:
*should = !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER) && Flags_GetTreasure(gPlayState, 0x2); *should = !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER) && Flags_GetTreasure(gPlayState, 0x2);
break; break;
case GI_VB_BE_ELIGIBLE_FOR_PRELUDE_OF_LIGHT: case VB_BE_ELIGIBLE_FOR_PRELUDE_OF_LIGHT:
*should = !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST); *should = !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST);
break; break;
case GI_VB_MOVE_MIDO_IN_KOKIRI_FOREST: case VB_MOVE_MIDO_IN_KOKIRI_FOREST:
if (RAND_GET_OPTION(RSK_FOREST) == RO_FOREST_OPEN) { if (RAND_GET_OPTION(RSK_FOREST) == RO_FOREST_OPEN) {
*should = true; *should = true;
} }
break; break;
case GI_VB_MIDO_CONSIDER_DEKU_TREE_DEAD: case VB_MIDO_CONSIDER_DEKU_TREE_DEAD:
*should = Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD); *should = Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD);
break; break;
case GI_VB_OPEN_KOKIRI_FOREST: case VB_OPEN_KOKIRI_FOREST:
*should = Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD) || RAND_GET_OPTION(RSK_FOREST) != RO_FOREST_CLOSED; *should = Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD) || RAND_GET_OPTION(RSK_FOREST) != RO_FOREST_CLOSED;
break; break;
case GI_VB_BE_ELIGIBLE_FOR_DARUNIAS_JOY_REWARD: case VB_BE_ELIGIBLE_FOR_DARUNIAS_JOY_REWARD:
*should = !Flags_GetRandomizerInf(RAND_INF_DARUNIAS_JOY); *should = !Flags_GetRandomizerInf(RAND_INF_DARUNIAS_JOY);
break; break;
case GI_VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS: case VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS:
*should = !Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS) && MeetsLACSRequirements(); *should = !Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS) && MeetsLACSRequirements();
break; break;
case GI_VB_BE_ELIGIBLE_FOR_NOCTURNE_OF_SHADOW: case VB_BE_ELIGIBLE_FOR_NOCTURNE_OF_SHADOW:
*should = *should =
!Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL) && !Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL) &&
LINK_IS_ADULT && LINK_IS_ADULT &&
@ -593,18 +593,18 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) && CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE) &&
CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER); CHECK_QUEST_ITEM(QUEST_MEDALLION_WATER);
break; break;
case GI_VB_BE_ELIGIBLE_FOR_CHILD_ROLLING_GORON_REWARD: { case VB_BE_ELIGIBLE_FOR_CHILD_ROLLING_GORON_REWARD: {
// Don't require a bomb bag to get prize in rando // Don't require a bomb bag to get prize in rando
*should = true; *should = true;
break; break;
} }
case GI_VB_BE_ELIGIBLE_FOR_MAGIC_BEANS_PURCHASE: { case VB_BE_ELIGIBLE_FOR_MAGIC_BEANS_PURCHASE: {
if (RAND_GET_OPTION(RSK_SHUFFLE_MAGIC_BEANS)) { if (RAND_GET_OPTION(RSK_SHUFFLE_MAGIC_BEANS)) {
*should = gSaveContext.rupees >= 60; *should = gSaveContext.rupees >= 60;
} }
break; break;
} }
case GI_VB_GIVE_ITEM_MASTER_SWORD: case VB_GIVE_ITEM_MASTER_SWORD:
if (RAND_GET_OPTION(RSK_SHUFFLE_MASTER_SWORD)) { if (RAND_GET_OPTION(RSK_SHUFFLE_MASTER_SWORD)) {
*should = false; *should = false;
} else { } else {
@ -612,7 +612,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
Rando::Context::GetInstance()->GetItemLocation(RC_TOT_MASTER_SWORD)->MarkAsObtained(); Rando::Context::GetInstance()->GetItemLocation(RC_TOT_MASTER_SWORD)->MarkAsObtained();
} }
break; break;
case GI_VB_ITEM00_DESPAWN: { case VB_ITEM00_DESPAWN: {
EnItem00* item00 = static_cast<EnItem00*>(optionalArg); EnItem00* item00 = static_cast<EnItem00*>(optionalArg);
if (item00->actor.params == ITEM00_HEART_PIECE || item00->actor.params == ITEM00_SMALL_KEY) { if (item00->actor.params == ITEM00_HEART_PIECE || item00->actor.params == ITEM00_SMALL_KEY) {
RandomizerCheck rc = OTRGlobals::Instance->gRandomizer->GetCheckFromActor(item00->actor.id, gPlayState->sceneNum, item00->ogParams); RandomizerCheck rc = OTRGlobals::Instance->gRandomizer->GetCheckFromActor(item00->actor.id, gPlayState->sceneNum, item00->ogParams);
@ -629,18 +629,18 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
} }
break; break;
} }
case GI_VB_MALON_ALREADY_TAUGHT_EPONAS_SONG: { case VB_MALON_ALREADY_TAUGHT_EPONAS_SONG: {
*should = Flags_GetRandomizerInf(RAND_INF_LEARNED_EPONA_SONG); *should = Flags_GetRandomizerInf(RAND_INF_LEARNED_EPONA_SONG);
break; break;
} }
case GI_VB_SET_CUCCO_COUNT: { case VB_SET_CUCCO_COUNT: {
EnNiwLady* enNiwLady = static_cast<EnNiwLady*>(optionalArg); EnNiwLady* enNiwLady = static_cast<EnNiwLady*>(optionalArg);
// Override starting Cucco count using setting value // Override starting Cucco count using setting value
enNiwLady->cuccosInPen = 7 - RAND_GET_OPTION(RSK_CUCCO_COUNT); enNiwLady->cuccosInPen = 7 - RAND_GET_OPTION(RSK_CUCCO_COUNT);
*should = false; *should = false;
break; break;
} }
case GI_VB_KING_ZORA_THANK_CHILD: { case VB_KING_ZORA_THANK_CHILD: {
// Allow turning in Ruto's letter even if you have already rescued her // Allow turning in Ruto's letter even if you have already rescued her
if (!Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED)) { if (!Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED)) {
GET_PLAYER(gPlayState)->exchangeItemId = EXCH_ITEM_LETTER_RUTO; GET_PLAYER(gPlayState)->exchangeItemId = EXCH_ITEM_LETTER_RUTO;
@ -648,11 +648,11 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = Flags_GetEventChkInf(EVENTCHKINF_USED_JABU_JABUS_BELLY_BLUE_WARP); *should = Flags_GetEventChkInf(EVENTCHKINF_USED_JABU_JABUS_BELLY_BLUE_WARP);
break; break;
} }
case GI_VB_BE_ABLE_TO_EXCHANGE_RUTOS_LETTER: { case VB_BE_ABLE_TO_EXCHANGE_RUTOS_LETTER: {
*should = LINK_IS_CHILD; *should = LINK_IS_CHILD;
break; break;
} }
case GI_VB_KING_ZORA_BE_MOVED: { case VB_KING_ZORA_BE_MOVED: {
*should = false; *should = false;
switch (RAND_GET_OPTION(RSK_ZORAS_FOUNTAIN)) { switch (RAND_GET_OPTION(RSK_ZORAS_FOUNTAIN)) {
case RO_ZF_CLOSED: case RO_ZF_CLOSED:
@ -673,29 +673,29 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
} }
break; break;
} }
case GI_VB_BIGGORON_CONSIDER_SWORD_COLLECTED: { case VB_BIGGORON_CONSIDER_SWORD_COLLECTED: {
*should = Flags_GetRandomizerInf(RAND_INF_ADULT_TRADES_DMT_TRADE_CLAIM_CHECK); *should = Flags_GetRandomizerInf(RAND_INF_ADULT_TRADES_DMT_TRADE_CLAIM_CHECK);
break; break;
} }
case GI_VB_BIGGORON_CONSIDER_TRADE_COMPLETE: { case VB_BIGGORON_CONSIDER_TRADE_COMPLETE: {
// This being true will prevent other biggoron trades, there are already safegaurds in place to prevent // This being true will prevent other biggoron trades, there are already safegaurds in place to prevent
// claim check from being traded multiple times, so we don't really need the quest to ever be considered "complete" // claim check from being traded multiple times, so we don't really need the quest to ever be considered "complete"
*should = false; *should = false;
break; break;
} }
case GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED: { case VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED: {
*should = Flags_GetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP); *should = Flags_GetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP);
break; break;
} }
case GI_VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED: { case VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED: {
*should = Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP); *should = Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP);
break; break;
} }
case GI_VB_GORONS_CONSIDER_TUNIC_COLLECTED: { case VB_GORONS_CONSIDER_TUNIC_COLLECTED: {
*should = Flags_GetInfTable(INFTABLE_GORON_CITY_DOORS_UNLOCKED); *should = Flags_GetInfTable(INFTABLE_GORON_CITY_DOORS_UNLOCKED);
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_ITEM_00: { case VB_GIVE_ITEM_FROM_ITEM_00: {
EnItem00* item00 = static_cast<EnItem00*>(optionalArg); EnItem00* item00 = static_cast<EnItem00*>(optionalArg);
if (item00->actor.params == ITEM00_SOH_DUMMY) { if (item00->actor.params == ITEM00_SOH_DUMMY) {
if (item00->randoInf != RAND_INF_MAX) { if (item00->randoInf != RAND_INF_MAX) {
@ -730,11 +730,11 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
} }
break; break;
} }
case GI_VB_BE_ELIGIBLE_FOR_SARIAS_SONG: { case VB_BE_ELIGIBLE_FOR_SARIAS_SONG: {
*should = !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SARIAS_SONG); *should = !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SARIAS_SONG);
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_COW: { case VB_GIVE_ITEM_FROM_COW: {
if (!RAND_GET_OPTION(RSK_SHUFFLE_COWS)) { if (!RAND_GET_OPTION(RSK_SHUFFLE_COWS)) {
break; break;
} }
@ -751,7 +751,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = false; *should = false;
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_GRANNYS_SHOP: { case VB_GIVE_ITEM_FROM_GRANNYS_SHOP: {
if (!EnDs_RandoCanGetGrannyItem()) { if (!EnDs_RandoCanGetGrannyItem()) {
break; break;
} }
@ -760,7 +760,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = false; *should = false;
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_THAWING_KING_ZORA: { case VB_GIVE_ITEM_FROM_THAWING_KING_ZORA: {
EnKz* enKz = static_cast<EnKz*>(optionalArg); EnKz* enKz = static_cast<EnKz*>(optionalArg);
// If we aren't setting up the item offer, then we're just checking if it should be possible. // If we aren't setting up the item offer, then we're just checking if it should be possible.
if (enKz->actionFunc != (EnKzActionFunc)EnKz_SetupGetItem) { if (enKz->actionFunc != (EnKzActionFunc)EnKz_SetupGetItem) {
@ -771,28 +771,28 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = false; *should = false;
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_ANJU_AS_CHILD: { case VB_GIVE_ITEM_FROM_ANJU_AS_CHILD: {
Flags_SetItemGetInf(ITEMGETINF_0C); Flags_SetItemGetInf(ITEMGETINF_0C);
*should = false; *should = false;
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_ANJU_AS_ADULT: { case VB_GIVE_ITEM_FROM_ANJU_AS_ADULT: {
Flags_SetItemGetInf(ITEMGETINF_2C); Flags_SetItemGetInf(ITEMGETINF_2C);
*should = false; *should = false;
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_CARPET_SALESMAN: { case VB_GIVE_ITEM_FROM_CARPET_SALESMAN: {
*should = RAND_GET_OPTION(RSK_SHUFFLE_MERCHANTS) == RO_SHUFFLE_MERCHANTS_OFF || *should = RAND_GET_OPTION(RSK_SHUFFLE_MERCHANTS) == RO_SHUFFLE_MERCHANTS_OFF ||
// If the rando check has already been awarded, use vanilla behavior. // If the rando check has already been awarded, use vanilla behavior.
Flags_GetRandomizerInf(RAND_INF_MERCHANTS_CARPET_SALESMAN); Flags_GetRandomizerInf(RAND_INF_MERCHANTS_CARPET_SALESMAN);
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_MEDIGORON: { case VB_GIVE_ITEM_FROM_MEDIGORON: {
// fallthrough // fallthrough
case GI_VB_BE_ELIGIBLE_FOR_GIANTS_KNIFE_PURCHASE: case VB_BE_ELIGIBLE_FOR_GIANTS_KNIFE_PURCHASE:
if (RAND_GET_OPTION(RSK_SHUFFLE_MERCHANTS) != RO_SHUFFLE_MERCHANTS_OFF && if (RAND_GET_OPTION(RSK_SHUFFLE_MERCHANTS) != RO_SHUFFLE_MERCHANTS_OFF &&
!Flags_GetRandomizerInf(RAND_INF_MERCHANTS_MEDIGORON)) { !Flags_GetRandomizerInf(RAND_INF_MERCHANTS_MEDIGORON)) {
if (id == GI_VB_GIVE_ITEM_FROM_MEDIGORON) { if (id == VB_GIVE_ITEM_FROM_MEDIGORON) {
Flags_SetInfTable(INFTABLE_B1); Flags_SetInfTable(INFTABLE_B1);
*should = false; *should = false;
} else { } else {
@ -803,7 +803,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
} }
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_MAGIC_BEAN_SALESMAN: { case VB_GIVE_ITEM_FROM_MAGIC_BEAN_SALESMAN: {
EnMs* enMs = static_cast<EnMs*>(optionalArg); EnMs* enMs = static_cast<EnMs*>(optionalArg);
if (RAND_GET_OPTION(RSK_SHUFFLE_MAGIC_BEANS)) { if (RAND_GET_OPTION(RSK_SHUFFLE_MAGIC_BEANS)) {
Rupees_ChangeBy(-60); Rupees_ChangeBy(-60);
@ -815,7 +815,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
} }
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_FROGS: { case VB_GIVE_ITEM_FROM_FROGS: {
EnFr* enFr = static_cast<EnFr*>(optionalArg); EnFr* enFr = static_cast<EnFr*>(optionalArg);
// Skip GiveReward+SetIdle action func if the reward is an ice trap // Skip GiveReward+SetIdle action func if the reward is an ice trap
@ -830,26 +830,26 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = false; *should = false;
break; break;
} }
case GI_VB_TRADE_POCKET_CUCCO: { case VB_TRADE_POCKET_CUCCO: {
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_POCKET_CUCCO); Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_POCKET_CUCCO);
// Trigger the reward now // Trigger the reward now
Flags_SetItemGetInf(ITEMGETINF_2E); Flags_SetItemGetInf(ITEMGETINF_2E);
*should = false; *should = false;
break; break;
} }
case GI_VB_TRADE_COJIRO: { case VB_TRADE_COJIRO: {
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_COJIRO); Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_COJIRO);
*should = false; *should = false;
break; break;
} }
case GI_VB_TRADE_ODD_MUSHROOM: { case VB_TRADE_ODD_MUSHROOM: {
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_ODD_MUSHROOM); Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_ODD_MUSHROOM);
// Trigger the reward now // Trigger the reward now
Flags_SetItemGetInf(ITEMGETINF_30); Flags_SetItemGetInf(ITEMGETINF_30);
*should = false; *should = false;
break; break;
} }
case GI_VB_TRADE_ODD_POTION: { case VB_TRADE_ODD_POTION: {
EnKo* enKo = static_cast<EnKo*>(optionalArg); EnKo* enKo = static_cast<EnKo*>(optionalArg);
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_ODD_POTION); Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_ODD_POTION);
// Trigger the reward now // Trigger the reward now
@ -857,12 +857,12 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = false; *should = false;
break; break;
} }
case GI_VB_TRADE_SAW: { case VB_TRADE_SAW: {
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_SAW); Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_SAW);
*should = false; *should = false;
break; break;
} }
case GI_VB_TRADE_PRESCRIPTION: { case VB_TRADE_PRESCRIPTION: {
EnKz* enKz = static_cast<EnKz*>(optionalArg); EnKz* enKz = static_cast<EnKz*>(optionalArg);
// If we aren't setting up the item offer, then we're just checking if it should be possible. // If we aren't setting up the item offer, then we're just checking if it should be possible.
if (enKz->actionFunc != (EnKzActionFunc)EnKz_SetupGetItem) { if (enKz->actionFunc != (EnKzActionFunc)EnKz_SetupGetItem) {
@ -873,12 +873,12 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = false; *should = false;
break; break;
} }
case GI_VB_TRADE_FROG: { case VB_TRADE_FROG: {
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_FROG); Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_FROG);
*should = false; *should = false;
break; break;
} }
case GI_VB_DESPAWN_HORSE_RACE_COW: { case VB_DESPAWN_HORSE_RACE_COW: {
if (!RAND_GET_OPTION(RSK_SHUFFLE_COWS)) { if (!RAND_GET_OPTION(RSK_SHUFFLE_COWS)) {
break; break;
} }
@ -887,7 +887,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
EnCow_MoveForRandomizer(enCow, gPlayState); EnCow_MoveForRandomizer(enCow, gPlayState);
break; break;
} }
case GI_VB_BUSINESS_SCRUB_DESPAWN: { case VB_BUSINESS_SCRUB_DESPAWN: {
EnShopnuts* enShopnuts = static_cast<EnShopnuts*>(optionalArg); EnShopnuts* enShopnuts = static_cast<EnShopnuts*>(optionalArg);
s16 respawnData = gSaveContext.respawn[RESPAWN_MODE_RETURN].data & ((1 << 8) - 1); s16 respawnData = gSaveContext.respawn[RESPAWN_MODE_RETURN].data & ((1 << 8) - 1);
ScrubIdentity scrubIdentity = OTRGlobals::Instance->gRandomizer->IdentifyScrub(gPlayState->sceneNum, enShopnuts->actor.params, respawnData); ScrubIdentity scrubIdentity = OTRGlobals::Instance->gRandomizer->IdentifyScrub(gPlayState->sceneNum, enShopnuts->actor.params, respawnData);
@ -897,7 +897,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
} }
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_BUSINESS_SCRUB: { case VB_GIVE_ITEM_FROM_BUSINESS_SCRUB: {
EnDns* enDns = static_cast<EnDns*>(optionalArg); EnDns* enDns = static_cast<EnDns*>(optionalArg);
*should = !enDns->sohScrubIdentity.isShuffled; *should = !enDns->sohScrubIdentity.isShuffled;
break; break;
@ -907,7 +907,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
// - If you don't have Cojiro but do have Odd Potion, spawn Fado and not Grog. // - If you don't have Cojiro but do have Odd Potion, spawn Fado and not Grog.
// - If you don't have either, spawn Grog if you haven't traded the Odd Mushroom. // - If you don't have either, spawn Grog if you haven't traded the Odd Mushroom.
// - If you don't have either but have traded the mushroom, don't spawn either. // - If you don't have either but have traded the mushroom, don't spawn either.
case GI_VB_DESPAWN_GROG: { case VB_DESPAWN_GROG: {
if (!RAND_GET_OPTION(RSK_SHUFFLE_ADULT_TRADE)) { if (!RAND_GET_OPTION(RSK_SHUFFLE_ADULT_TRADE)) {
break; break;
} }
@ -920,7 +920,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
} }
break; break;
} }
case GI_VB_SPAWN_LW_FADO: { case VB_SPAWN_LW_FADO: {
if (!RAND_GET_OPTION(RSK_SHUFFLE_ADULT_TRADE)) { if (!RAND_GET_OPTION(RSK_SHUFFLE_ADULT_TRADE)) {
break; break;
} }
@ -933,23 +933,23 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
break; break;
} }
case GI_VB_USE_EYEDROP_DIALOGUE: { case VB_USE_EYEDROP_DIALOGUE: {
// Skip eye drop text on rando if Link went in the water, so you can still receive the dive check // Skip eye drop text on rando if Link went in the water, so you can still receive the dive check
EnMk* enMk = static_cast<EnMk*>(optionalArg); EnMk* enMk = static_cast<EnMk*>(optionalArg);
*should &= enMk->swimFlag == 0; *should &= enMk->swimFlag == 0;
break; break;
} }
case GI_VB_OFFER_BLUE_POTION: { case VB_OFFER_BLUE_POTION: {
// Always offer blue potion when adult trade is off // Always offer blue potion when adult trade is off
*should |= RAND_GET_OPTION(RSK_SHUFFLE_ADULT_TRADE) == RO_GENERIC_OFF; *should |= RAND_GET_OPTION(RSK_SHUFFLE_ADULT_TRADE) == RO_GENERIC_OFF;
break; break;
} }
case GI_VB_NEED_BOTTLE_FOR_GRANNYS_ITEM: { case VB_NEED_BOTTLE_FOR_GRANNYS_ITEM: {
// Allow buying the rando item regardless of having a bottle // Allow buying the rando item regardless of having a bottle
*should &= !EnDs_RandoCanGetGrannyItem(); *should &= !EnDs_RandoCanGetGrannyItem();
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_SHOOTING_GALLERY: { case VB_GIVE_ITEM_FROM_SHOOTING_GALLERY: {
EnSyatekiMan* enSyatekiMan = static_cast<EnSyatekiMan*>(optionalArg); EnSyatekiMan* enSyatekiMan = static_cast<EnSyatekiMan*>(optionalArg);
enSyatekiMan->getItemId = GI_RUPEE_PURPLE; enSyatekiMan->getItemId = GI_RUPEE_PURPLE;
if (LINK_IS_ADULT) { if (LINK_IS_ADULT) {
@ -961,7 +961,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
} }
break; break;
} }
case GI_VB_BE_ELIGIBLE_FOR_ADULT_SHOOTING_GAME_REWARD: { case VB_BE_ELIGIBLE_FOR_ADULT_SHOOTING_GAME_REWARD: {
*should = CUR_UPG_VALUE(UPG_QUIVER) > 0; *should = CUR_UPG_VALUE(UPG_QUIVER) > 0;
if (!*should) { if (!*should) {
// In Rando without a quiver, display a message reminding the player to come back with a bow // In Rando without a quiver, display a message reminding the player to come back with a bow
@ -969,7 +969,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
} }
break; break;
} }
case GI_VB_BE_ELIGIBLE_TO_OPEN_DOT: { case VB_BE_ELIGIBLE_TO_OPEN_DOT: {
bool eligible = RAND_GET_OPTION(RSK_DOOR_OF_TIME) != RO_DOOROFTIME_CLOSED || ( bool eligible = RAND_GET_OPTION(RSK_DOOR_OF_TIME) != RO_DOOROFTIME_CLOSED || (
INV_CONTENT(ITEM_OCARINA_FAIRY) == ITEM_OCARINA_TIME && INV_CONTENT(ITEM_OCARINA_FAIRY) == ITEM_OCARINA_TIME &&
CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) &&
@ -979,7 +979,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = eligible; *should = eligible;
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY: { case VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY: {
// give both rewards at the same time // give both rewards at the same time
if (gSaveContext.minigameScore >= 1500) { if (gSaveContext.minigameScore >= 1500) {
Flags_SetItemGetInf(ITEMGETINF_0F); Flags_SetItemGetInf(ITEMGETINF_0F);
@ -987,7 +987,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = false; *should = false;
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_SKULLTULA_REWARD: { case VB_GIVE_ITEM_FROM_SKULLTULA_REWARD: {
// In z_en_sth.c the rewards are stored in sGetItemIds, the first entry // In z_en_sth.c the rewards are stored in sGetItemIds, the first entry
// in that array is GI_RUPEE_GOLD, and the reward is picked in EnSth_GivePlayerItem // in that array is GI_RUPEE_GOLD, and the reward is picked in EnSth_GivePlayerItem
// via sGetItemIds[this->actor.params]. This means if actor.params == 0 we're looking // via sGetItemIds[this->actor.params]. This means if actor.params == 0 we're looking
@ -1014,14 +1014,14 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = false; *should = false;
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_OCARINA_MEMORY_GAME: { case VB_GIVE_ITEM_FROM_OCARINA_MEMORY_GAME: {
EnSkj* enSkj = static_cast<EnSkj*>(optionalArg); EnSkj* enSkj = static_cast<EnSkj*>(optionalArg);
Flags_SetItemGetInf(ITEMGETINF_17); Flags_SetItemGetInf(ITEMGETINF_17);
enSkj->actionFunc = (EnSkjActionFunc)EnSkj_CleanupOcarinaGame; enSkj->actionFunc = (EnSkjActionFunc)EnSkj_CleanupOcarinaGame;
*should = false; *should = false;
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_LOST_DOG: { case VB_GIVE_ITEM_FROM_LOST_DOG: {
EnHy* enHy = static_cast<EnHy*>(optionalArg); EnHy* enHy = static_cast<EnHy*>(optionalArg);
Flags_SetInfTable(INFTABLE_191); Flags_SetInfTable(INFTABLE_191);
gSaveContext.dogParams = 0; gSaveContext.dogParams = 0;
@ -1030,33 +1030,33 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
*should = false; *should = false;
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_BOMBCHU_BOWLING: { case VB_GIVE_ITEM_FROM_BOMBCHU_BOWLING: {
EnBomBowlPit* enBomBowlPit = static_cast<EnBomBowlPit*>(optionalArg); EnBomBowlPit* enBomBowlPit = static_cast<EnBomBowlPit*>(optionalArg);
if (enBomBowlPit->prizeIndex == EXITEM_BOMB_BAG_BOWLING || enBomBowlPit->prizeIndex == EXITEM_HEART_PIECE_BOWLING) { if (enBomBowlPit->prizeIndex == EXITEM_BOMB_BAG_BOWLING || enBomBowlPit->prizeIndex == EXITEM_HEART_PIECE_BOWLING) {
*should = false; *should = false;
} }
break; break;
} }
case GI_VB_GERUDOS_BE_FRIENDLY: { case VB_GERUDOS_BE_FRIENDLY: {
*should = CHECK_QUEST_ITEM(QUEST_GERUDO_CARD); *should = CHECK_QUEST_ITEM(QUEST_GERUDO_CARD);
break; break;
} }
case GI_VB_GTG_GATE_BE_OPEN: { case VB_GTG_GATE_BE_OPEN: {
if (Flags_GetRandomizerInf(RAND_INF_GF_GTG_GATE_PERMANENTLY_OPEN)) { if (Flags_GetRandomizerInf(RAND_INF_GF_GTG_GATE_PERMANENTLY_OPEN)) {
*should = true; *should = true;
} }
break; break;
} }
case GI_VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD: { case VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD: {
Flags_SetRandomizerInf(RAND_INF_GF_ITEM_FROM_LEADER_OF_FORTRESS); Flags_SetRandomizerInf(RAND_INF_GF_ITEM_FROM_LEADER_OF_FORTRESS);
*should = false; *should = false;
break; break;
} }
case GI_VB_BE_ELIGIBLE_FOR_RAINBOW_BRIDGE: { case VB_BE_ELIGIBLE_FOR_RAINBOW_BRIDGE: {
*should = MeetsRainbowBridgeRequirements(); *should = MeetsRainbowBridgeRequirements();
break; break;
} }
case GI_VB_PLAY_BLUE_WARP_CS: { case VB_PLAY_BLUE_WARP_CS: {
// We need to override just these two temples because they check medallions instead of flags // We need to override just these two temples because they check medallions instead of flags
if (gPlayState->sceneNum == SCENE_SPIRIT_TEMPLE_BOSS) { if (gPlayState->sceneNum == SCENE_SPIRIT_TEMPLE_BOSS) {
*should = !Flags_GetRandomizerInf(RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE); *should = !Flags_GetRandomizerInf(RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE);
@ -1065,34 +1065,34 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void
} }
break; break;
} }
case GI_VB_TRADE_TIMER_ODD_MUSHROOM: case VB_TRADE_TIMER_ODD_MUSHROOM:
case GI_VB_TRADE_TIMER_EYEDROPS: case VB_TRADE_TIMER_EYEDROPS:
case GI_VB_TRADE_TIMER_FROG: case VB_TRADE_TIMER_FROG:
case GI_VB_ANJU_SET_OBTAINED_TRADE_ITEM: case VB_ANJU_SET_OBTAINED_TRADE_ITEM:
case GI_VB_GIVE_ITEM_FROM_TARGET_IN_WOODS: case VB_GIVE_ITEM_FROM_TARGET_IN_WOODS:
case GI_VB_GIVE_ITEM_FROM_TALONS_CHICKENS: case VB_GIVE_ITEM_FROM_TALONS_CHICKENS:
case GI_VB_GIVE_ITEM_FROM_DIVING_MINIGAME: case VB_GIVE_ITEM_FROM_DIVING_MINIGAME:
case GI_VB_GIVE_ITEM_FROM_GORON: case VB_GIVE_ITEM_FROM_GORON:
case GI_VB_GIVE_ITEM_FROM_LAB_DIVE: case VB_GIVE_ITEM_FROM_LAB_DIVE:
case GI_VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG: case VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG:
case GI_VB_GIVE_ITEM_FROM_MAN_ON_ROOF: case VB_GIVE_ITEM_FROM_MAN_ON_ROOF:
case GI_VB_GIVE_ITEM_SKULL_TOKEN: case VB_GIVE_ITEM_SKULL_TOKEN:
case GI_VB_GIVE_ITEM_FROM_BLUE_WARP: case VB_GIVE_ITEM_FROM_BLUE_WARP:
case GI_VB_GIVE_ITEM_FAIRY_OCARINA: case VB_GIVE_ITEM_FAIRY_OCARINA:
case GI_VB_GIVE_ITEM_WEIRD_EGG: case VB_GIVE_ITEM_WEIRD_EGG:
case GI_VB_GIVE_ITEM_LIGHT_ARROW: case VB_GIVE_ITEM_LIGHT_ARROW:
case GI_VB_GIVE_ITEM_STRENGTH_1: case VB_GIVE_ITEM_STRENGTH_1:
case GI_VB_GIVE_ITEM_ZELDAS_LETTER: case VB_GIVE_ITEM_ZELDAS_LETTER:
case GI_VB_GIVE_ITEM_OCARINA_OF_TIME: case VB_GIVE_ITEM_OCARINA_OF_TIME:
case GI_VB_GIVE_ITEM_KOKIRI_EMERALD: case VB_GIVE_ITEM_KOKIRI_EMERALD:
case GI_VB_GIVE_ITEM_GORON_RUBY: case VB_GIVE_ITEM_GORON_RUBY:
case GI_VB_GIVE_ITEM_ZORA_SAPPHIRE: case VB_GIVE_ITEM_ZORA_SAPPHIRE:
case GI_VB_GIVE_ITEM_LIGHT_MEDALLION: case VB_GIVE_ITEM_LIGHT_MEDALLION:
case GI_VB_GIVE_ITEM_FOREST_MEDALLION: case VB_GIVE_ITEM_FOREST_MEDALLION:
case GI_VB_GIVE_ITEM_FIRE_MEDALLION: case VB_GIVE_ITEM_FIRE_MEDALLION:
case GI_VB_GIVE_ITEM_WATER_MEDALLION: case VB_GIVE_ITEM_WATER_MEDALLION:
case GI_VB_GIVE_ITEM_SPIRIT_MEDALLION: case VB_GIVE_ITEM_SPIRIT_MEDALLION:
case GI_VB_GIVE_ITEM_SHADOW_MEDALLION: case VB_GIVE_ITEM_SHADOW_MEDALLION:
*should = false; *should = false;
break; break;
} }

View File

@ -40,7 +40,7 @@ void EnKo_MoveWhenReady(EnKo* enKo, PlayState* play) {
if ((enKo->actor.params & 0xFF) == ENKO_TYPE_CHILD_3) { if ((enKo->actor.params & 0xFF) == ENKO_TYPE_CHILD_3) {
// Typically this doesn't get get live updated in vanilla, but we need to // Typically this doesn't get get live updated in vanilla, but we need to
// live update it if we're skipping a certain cutscene or in randomizer // live update it if we're skipping a certain cutscene or in randomizer
if (GameInteractor_Should(GI_VB_OPEN_KOKIRI_FOREST, CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD), NULL)) { if (GameInteractor_Should(VB_OPEN_KOKIRI_FOREST, CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD), NULL)) {
enKo->collider.dim.height -= 200; enKo->collider.dim.height -= 200;
Path_CopyLastPoint(enKo->path, &enKo->actor.world.pos); Path_CopyLastPoint(enKo->path, &enKo->actor.world.pos);
enKo->actionFunc = func_80A99384; enKo->actionFunc = func_80A99384;
@ -140,7 +140,7 @@ void TimeSaverOnGameFrameUpdateHandler() {
void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void* opt) { void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void* opt) {
switch (id) { switch (id) {
case GI_VB_PLAY_TRANSITION_CS: { case VB_PLAY_TRANSITION_CS: {
if (CVarGetInteger("gTimeSavers.SkipCutscene.Intro", IS_RANDO) && gSaveContext.entranceIndex == ENTR_LINKS_HOUSE_0 && gSaveContext.cutsceneIndex == 0xFFF1) { if (CVarGetInteger("gTimeSavers.SkipCutscene.Intro", IS_RANDO) && gSaveContext.entranceIndex == ENTR_LINKS_HOUSE_0 && gSaveContext.cutsceneIndex == 0xFFF1) {
gSaveContext.cutsceneIndex = 0; gSaveContext.cutsceneIndex = 0;
*should = false; *should = false;
@ -160,7 +160,7 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_REQUIEM_OF_SPIRIT); Flags_SetEventChkInf(EVENTCHKINF_LEARNED_REQUIEM_OF_SPIRIT);
// Normally happens in the cutscene // Normally happens in the cutscene
gSaveContext.dayTime = gSaveContext.skyboxTime = 0xAC60; gSaveContext.dayTime = gSaveContext.skyboxTime = 0xAC60;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_REQUIEM_OF_SPIRIT, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_REQUIEM_OF_SPIRIT, true, NULL)) {
Item_Give(gPlayState, ITEM_SONG_REQUIEM); Item_Give(gPlayState, ITEM_SONG_REQUIEM);
} }
*should = false; *should = false;
@ -173,11 +173,11 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
Flags_GetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP) && Flags_GetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP) &&
Flags_GetEventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP) && Flags_GetEventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP) &&
!Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL); !Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL);
if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_NOCTURNE_OF_SHADOW, meetsBurningKakRequirements, NULL)) { if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_NOCTURNE_OF_SHADOW, meetsBurningKakRequirements, NULL)) {
Flags_SetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL); Flags_SetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL);
// Normally happens in the cutscene // Normally happens in the cutscene
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_NOCTURNE_OF_SHADOW); Flags_SetEventChkInf(EVENTCHKINF_LEARNED_NOCTURNE_OF_SHADOW);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_NOCTURNE_OF_SHADOW, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_NOCTURNE_OF_SHADOW, true, NULL)) {
Item_Give(gPlayState, ITEM_SONG_NOCTURNE); Item_Give(gPlayState, ITEM_SONG_NOCTURNE);
} }
*should = false; *should = false;
@ -255,7 +255,7 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
// Lost Woods Bridge // Lost Woods Bridge
if ((gSaveContext.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_SARIA_ON_BRIDGE)) { if ((gSaveContext.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_SARIA_ON_BRIDGE)) {
Flags_SetEventChkInf(EVENTCHKINF_SPOKE_TO_SARIA_ON_BRIDGE); Flags_SetEventChkInf(EVENTCHKINF_SPOKE_TO_SARIA_ON_BRIDGE);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FAIRY_OCARINA, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_FAIRY_OCARINA, true, NULL)) {
Item_Give(gPlayState, ITEM_OCARINA_FAIRY); Item_Give(gPlayState, ITEM_OCARINA_FAIRY);
} }
*should = false; *should = false;
@ -268,9 +268,9 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) &&
CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) &&
!Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS); !Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS);
if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS, meetsLACSRequirements, NULL)) { if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS, meetsLACSRequirements, NULL)) {
Flags_SetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS); Flags_SetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_LIGHT_ARROW, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_LIGHT_ARROW, true, NULL)) {
Item_Give(gPlayState, ITEM_ARROW_LIGHT); Item_Give(gPlayState, ITEM_ARROW_LIGHT);
} }
*should = false; *should = false;
@ -293,14 +293,14 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_PLAY_ENTRANCE_CS: { case VB_PLAY_ENTRANCE_CS: {
s32* entranceFlag = static_cast<s32*>(opt); s32* entranceFlag = static_cast<s32*>(opt);
if (CVarGetInteger("gTimeSavers.SkipCutscene.Entrances", IS_RANDO) && (*entranceFlag != EVENTCHKINF_EPONA_OBTAINED)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.Entrances", IS_RANDO) && (*entranceFlag != EVENTCHKINF_EPONA_OBTAINED)) {
*should = false; *should = false;
} }
break; break;
} }
case GI_VB_PLAY_ONEPOINT_CS: { case VB_PLAY_ONEPOINT_CS: {
if (CVarGetInteger("gTimeSavers.SkipCutscene.OnePoint", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.OnePoint", IS_RANDO)) {
s16* csId = static_cast<s16*>(opt); s16* csId = static_cast<s16*>(opt);
switch (*csId) { switch (*csId) {
@ -310,13 +310,13 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
RateLimitedSuccessChime(); RateLimitedSuccessChime();
break; break;
default: default:
SPDLOG_INFO("GI_VB_PLAY_ONEPOINT_CS {}", *csId); SPDLOG_INFO("VB_PLAY_ONEPOINT_CS {}", *csId);
break; break;
} }
} }
break; break;
} }
case GI_VB_PLAY_ONEPOINT_ACTOR_CS: { case VB_PLAY_ONEPOINT_ACTOR_CS: {
if (CVarGetInteger("gTimeSavers.SkipCutscene.OnePoint", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.OnePoint", IS_RANDO)) {
Actor* actor = static_cast<Actor*>(opt); Actor* actor = static_cast<Actor*>(opt);
@ -398,23 +398,23 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
break; break;
} }
if (*should) { if (*should) {
SPDLOG_INFO("GI_VB_PLAY_ONEPOINT_ACTOR_CS ID:{} Cat:{}", actor->id, actor->category); SPDLOG_INFO("VB_PLAY_ONEPOINT_ACTOR_CS ID:{} Cat:{}", actor->id, actor->category);
} }
} }
break; break;
} }
case GI_VB_SHOW_TITLE_CARD: case VB_SHOW_TITLE_CARD:
if (CVarGetInteger("gTimeSavers.DisableTitleCard", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.DisableTitleCard", IS_RANDO)) {
*should = false; *should = false;
} }
break; break;
case GI_VB_WONDER_TALK: { case VB_WONDER_TALK: {
if (CVarGetInteger("gTimeSavers.NoForcedDialog", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.NoForcedDialog", IS_RANDO)) {
*should = false; *should = false;
} }
break; break;
} }
case GI_VB_NAVI_TALK: { case VB_NAVI_TALK: {
if (CVarGetInteger("gTimeSavers.NoForcedDialog", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.NoForcedDialog", IS_RANDO)) {
ElfMsg* naviTalk = static_cast<ElfMsg*>(opt); ElfMsg* naviTalk = static_cast<ElfMsg*>(opt);
Flags_SetSwitch(gPlayState, (naviTalk->actor.params >> 8) & 0x3F); Flags_SetSwitch(gPlayState, (naviTalk->actor.params >> 8) & 0x3F);
@ -423,13 +423,13 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_NOT_BE_GREETED_BY_SARIA: case VB_NOT_BE_GREETED_BY_SARIA:
if (CVarGetInteger("gTimeSavers.SkipCutscene.Entrances", IS_RANDO) && !Flags_GetInfTable(INFTABLE_GREETED_BY_SARIA)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.Entrances", IS_RANDO) && !Flags_GetInfTable(INFTABLE_GREETED_BY_SARIA)) {
Flags_SetInfTable(INFTABLE_GREETED_BY_SARIA); Flags_SetInfTable(INFTABLE_GREETED_BY_SARIA);
*should = true; *should = true;
} }
break; break;
case GI_VB_MOVE_MIDO_IN_KOKIRI_FOREST: case VB_MOVE_MIDO_IN_KOKIRI_FOREST:
if ( if (
CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO) && CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO) &&
!Flags_GetEventChkInf(EVENTCHKINF_SHOWED_MIDO_SWORD_SHIELD) && !Flags_GetEventChkInf(EVENTCHKINF_SHOWED_MIDO_SWORD_SHIELD) &&
@ -440,7 +440,7 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
*should = true; *should = true;
} }
break; break;
case GI_VB_PLAY_DEKU_TREE_INTRO_CS: { case VB_PLAY_DEKU_TREE_INTRO_CS: {
if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) {
BgTreemouth* treeMouth = static_cast<BgTreemouth*>(opt); BgTreemouth* treeMouth = static_cast<BgTreemouth*>(opt);
Flags_SetEventChkInf(EVENTCHKINF_DEKU_TREE_OPENED_MOUTH); Flags_SetEventChkInf(EVENTCHKINF_DEKU_TREE_OPENED_MOUTH);
@ -450,7 +450,7 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_DEKU_JR_CONSIDER_FOREST_TEMPLE_FINISHED: { case VB_DEKU_JR_CONSIDER_FOREST_TEMPLE_FINISHED: {
// We're overriding this so that the Deku JR doesn't despawn after skipping the forest temple blue warp cutscene. // We're overriding this so that the Deku JR doesn't despawn after skipping the forest temple blue warp cutscene.
// It typically relies on the forest medallion being obtained, but that isn't given yet until after scene init // It typically relies on the forest medallion being obtained, but that isn't given yet until after scene init
if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) {
@ -458,21 +458,21 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_GIVE_ITEM_FROM_BLUE_WARP: case VB_GIVE_ITEM_FROM_BLUE_WARP:
case GI_VB_PLAY_SHIEK_BLOCK_MASTER_SWORD_CS: case VB_PLAY_SHIEK_BLOCK_MASTER_SWORD_CS:
case GI_VB_GIVE_ITEM_FAIRY_OCARINA: case VB_GIVE_ITEM_FAIRY_OCARINA:
case GI_VB_GIVE_ITEM_LIGHT_ARROW: case VB_GIVE_ITEM_LIGHT_ARROW:
if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) {
*should = false; *should = false;
} }
break; break;
case GI_VB_PLAY_NABOORU_CAPTURED_CS: case VB_PLAY_NABOORU_CAPTURED_CS:
if (*should == true && CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) { if (*should == true && CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) {
Flags_SetEventChkInf(EVENTCHKINF_NABOORU_CAPTURED_BY_TWINROVA); Flags_SetEventChkInf(EVENTCHKINF_NABOORU_CAPTURED_BY_TWINROVA);
*should = false; *should = false;
} }
break; break;
case GI_VB_PLAY_PULL_MASTER_SWORD_CS: case VB_PLAY_PULL_MASTER_SWORD_CS:
if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) {
if (!Flags_GetEventChkInf(EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL)) { if (!Flags_GetEventChkInf(EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL)) {
// Normally, these would be done in the cutscene, but we're skipping it // Normally, these would be done in the cutscene, but we're skipping it
@ -480,14 +480,14 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
Flags_SetEventChkInf(EVENTCHKINF_ENTERED_MASTER_SWORD_CHAMBER); Flags_SetEventChkInf(EVENTCHKINF_ENTERED_MASTER_SWORD_CHAMBER);
Flags_SetEventChkInf(EVENTCHKINF_SHEIK_SPAWNED_AT_MASTER_SWORD_PEDESTAL); Flags_SetEventChkInf(EVENTCHKINF_SHEIK_SPAWNED_AT_MASTER_SWORD_PEDESTAL);
Flags_SetEventChkInf(EVENTCHKINF_TIME_TRAVELED_TO_ADULT); Flags_SetEventChkInf(EVENTCHKINF_TIME_TRAVELED_TO_ADULT);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_LIGHT_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_LIGHT_MEDALLION, true, NULL)) {
Item_Give(gPlayState, ITEM_MEDALLION_LIGHT); Item_Give(gPlayState, ITEM_MEDALLION_LIGHT);
} }
} }
*should = false; *should = false;
} }
break; break;
case GI_VB_OWL_INTERACTION: { case VB_OWL_INTERACTION: {
if (CVarGetInteger("gTimeSavers.SkipOwlInteractions", IS_RANDO) && *should) { if (CVarGetInteger("gTimeSavers.SkipOwlInteractions", IS_RANDO) && *should) {
EnOwl* enOwl = static_cast<EnOwl*>(opt); EnOwl* enOwl = static_cast<EnOwl*>(opt);
s32 owlType = (enOwl->actor.params & 0xFC0) >> 6; s32 owlType = (enOwl->actor.params & 0xFC0) >> 6;
@ -501,7 +501,7 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_OVERRIDE_LINK_THE_GORON_DIALOGUE: { case VB_OVERRIDE_LINK_THE_GORON_DIALOGUE: {
if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO)) {
u16* textId = static_cast<u16*>(opt); u16* textId = static_cast<u16*>(opt);
// If the doors are not open yet, prioritize opening them // If the doors are not open yet, prioritize opening them
@ -512,15 +512,15 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_PLAY_EYEDROP_CREATION_ANIM: case VB_PLAY_EYEDROP_CREATION_ANIM:
case GI_VB_PLAY_EYEDROPS_CS: case VB_PLAY_EYEDROPS_CS:
case GI_VB_PLAY_DROP_FISH_FOR_JABU_CS: case VB_PLAY_DROP_FISH_FOR_JABU_CS:
case GI_VB_PLAY_DARUNIAS_JOY_CS: case VB_PLAY_DARUNIAS_JOY_CS:
if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO)) {
*should = false; *should = false;
} }
break; break;
case GI_VB_PLAY_ZELDAS_LULLABY_CS: { case VB_PLAY_ZELDAS_LULLABY_CS: {
if (CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) || IS_RANDO) { if (CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) || IS_RANDO) {
DemoIm* demoIm = static_cast<DemoIm*>(opt); DemoIm* demoIm = static_cast<DemoIm*>(opt);
Player* player = GET_PLAYER(gPlayState); Player* player = GET_PLAYER(gPlayState);
@ -570,7 +570,7 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_PLAY_SARIAS_SONG_CS: { case VB_PLAY_SARIAS_SONG_CS: {
if (CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) || IS_RANDO) { if (CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) || IS_RANDO) {
EnSa* enSa = static_cast<EnSa*>(opt); EnSa* enSa = static_cast<EnSa*>(opt);
enSa->actionFunc = func_80AF6B20; enSa->actionFunc = func_80AF6B20;
@ -578,13 +578,13 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_DESPAWN_HORSE_RACE_COW: { case VB_DESPAWN_HORSE_RACE_COW: {
if (Flags_GetEventChkInf(EVENTCHKINF_WON_COW_IN_MALONS_RACE) && CVarGetInteger("gCowOfTime", 0)) { if (Flags_GetEventChkInf(EVENTCHKINF_WON_COW_IN_MALONS_RACE) && CVarGetInteger("gCowOfTime", 0)) {
*should = false; *should = false;
} }
break; break;
} }
case GI_VB_PLAY_DRAIN_WELL_CS: { case VB_PLAY_DRAIN_WELL_CS: {
if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) {
*should = false; *should = false;
Flags_SetSwitch(gPlayState, 0x2); Flags_SetSwitch(gPlayState, 0x2);
@ -593,7 +593,7 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_PLAY_SUNS_SONG_CS: case VB_PLAY_SUNS_SONG_CS:
if (CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) || IS_RANDO) { if (CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) || IS_RANDO) {
*should = false; *should = false;
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_SUNS_SONG); Flags_SetEventChkInf(EVENTCHKINF_LEARNED_SUNS_SONG);
@ -602,19 +602,19 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
// When it's 0x8000, it's changed to 0xC090 // When it's 0x8000, it's changed to 0xC090
} }
break; break;
case GI_VB_PLAY_ROYAL_FAMILY_TOMB_CS: { case VB_PLAY_ROYAL_FAMILY_TOMB_CS: {
if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO)) {
*should = false; *should = false;
} }
break; break;
} }
case GI_VB_PLAY_ROYAL_FAMILY_TOMB_EXPLODE: { case VB_PLAY_ROYAL_FAMILY_TOMB_EXPLODE: {
if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO)) {
*should = Flags_GetEventChkInf(EVENTCHKINF_DESTROYED_ROYAL_FAMILY_TOMB); *should = Flags_GetEventChkInf(EVENTCHKINF_DESTROYED_ROYAL_FAMILY_TOMB);
} }
break; break;
} }
case GI_VB_PLAY_DOOR_OF_TIME_CS: { case VB_PLAY_DOOR_OF_TIME_CS: {
if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO)) {
*should = false; *should = false;
Flags_SetEnv(gPlayState, 2); Flags_SetEnv(gPlayState, 2);
@ -622,59 +622,59 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_GIVE_ITEM_MINUET_OF_FOREST: case VB_GIVE_ITEM_MINUET_OF_FOREST:
case GI_VB_GIVE_ITEM_BOLERO_OF_FIRE: case VB_GIVE_ITEM_BOLERO_OF_FIRE:
case GI_VB_GIVE_ITEM_SERENADE_OF_WATER: case VB_GIVE_ITEM_SERENADE_OF_WATER:
case GI_VB_GIVE_ITEM_REQUIEM_OF_SPIRIT: case VB_GIVE_ITEM_REQUIEM_OF_SPIRIT:
case GI_VB_GIVE_ITEM_NOCTURNE_OF_SHADOW: case VB_GIVE_ITEM_NOCTURNE_OF_SHADOW:
case GI_VB_GIVE_ITEM_PRELUDE_OF_LIGHT: case VB_GIVE_ITEM_PRELUDE_OF_LIGHT:
case GI_VB_GIVE_ITEM_ZELDAS_LULLABY: case VB_GIVE_ITEM_ZELDAS_LULLABY:
case GI_VB_GIVE_ITEM_EPONAS_SONG: case VB_GIVE_ITEM_EPONAS_SONG:
case GI_VB_GIVE_ITEM_SARIAS_SONG: case VB_GIVE_ITEM_SARIAS_SONG:
case GI_VB_GIVE_ITEM_SUNS_SONG: case VB_GIVE_ITEM_SUNS_SONG:
case GI_VB_GIVE_ITEM_SONG_OF_TIME: case VB_GIVE_ITEM_SONG_OF_TIME:
case GI_VB_GIVE_ITEM_SONG_OF_STORMS: case VB_GIVE_ITEM_SONG_OF_STORMS:
case GI_VB_PLAY_MINUET_OF_FOREST_CS: case VB_PLAY_MINUET_OF_FOREST_CS:
case GI_VB_PLAY_BOLERO_OF_FIRE_CS: case VB_PLAY_BOLERO_OF_FIRE_CS:
case GI_VB_PLAY_SERENADE_OF_WATER_CS: case VB_PLAY_SERENADE_OF_WATER_CS:
case GI_VB_PLAY_PRELUDE_OF_LIGHT_CS: case VB_PLAY_PRELUDE_OF_LIGHT_CS:
if (CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) || IS_RANDO) { if (CVarGetInteger("gTimeSavers.SkipCutscene.LearnSong", IS_RANDO) || IS_RANDO) {
*should = false; *should = false;
} }
break; break;
case GI_VB_DAMPE_IN_GRAVEYARD_DESPAWN: case VB_DAMPE_IN_GRAVEYARD_DESPAWN:
if (CVarGetInteger("gDampeAllNight", 0)) { if (CVarGetInteger("gDampeAllNight", 0)) {
*should = LINK_IS_ADULT || gPlayState->sceneNum != SCENE_GRAVEYARD; *should = LINK_IS_ADULT || gPlayState->sceneNum != SCENE_GRAVEYARD;
} }
break; break;
case GI_VB_BE_VALID_GRAVEDIGGING_SPOT: case VB_BE_VALID_GRAVEDIGGING_SPOT:
if (CVarGetInteger("gDampeWin", 0)) { if (CVarGetInteger("gDampeWin", 0)) {
EnTk *enTk = static_cast<EnTk*>(opt); EnTk *enTk = static_cast<EnTk*>(opt);
enTk->validDigHere = true; enTk->validDigHere = true;
*should = true; *should = true;
} }
break; break;
case GI_VB_BE_DAMPE_GRAVEDIGGING_GRAND_PRIZE: case VB_BE_DAMPE_GRAVEDIGGING_GRAND_PRIZE:
if (CVarGetInteger("gDampeWin", 0)) { if (CVarGetInteger("gDampeWin", 0)) {
EnTk *enTk = static_cast<EnTk*>(opt); EnTk *enTk = static_cast<EnTk*>(opt);
enTk->currentReward = 3; enTk->currentReward = 3;
*should = true; *should = true;
} }
break; break;
case GI_VB_DAMPE_GRAVEDIGGING_GRAND_PRIZE_BE_HEART_PIECE: case VB_DAMPE_GRAVEDIGGING_GRAND_PRIZE_BE_HEART_PIECE:
if (CVarGetInteger("gGravediggingTourFix", 0) || IS_RANDO) { if (CVarGetInteger("gGravediggingTourFix", 0) || IS_RANDO) {
*should = !Flags_GetCollectible(gPlayState, COLLECTFLAG_GRAVEDIGGING_HEART_PIECE); *should = !Flags_GetCollectible(gPlayState, COLLECTFLAG_GRAVEDIGGING_HEART_PIECE);
} }
break; break;
case GI_VB_FIX_SAW_SOFTLOCK: case VB_FIX_SAW_SOFTLOCK:
// Animation Count should be no more than 1 to guarantee putaway is complete after giving the saw // Animation Count should be no more than 1 to guarantee putaway is complete after giving the saw
// As this is vanilla behavior, it only applies with the Fix toggle or Skip Text enabled. // As this is vanilla behavior, it only applies with the Fix toggle or Skip Text enabled.
*should = (CVarGetInteger("gFixSawSoftlock", 0) != 0 || CVarGetInteger("gSkipText", 0) != 0) ? gPlayState->animationCtx.animationCount > 1 : *should; *should = (CVarGetInteger("gFixSawSoftlock", 0) != 0 || CVarGetInteger("gSkipText", 0) != 0) ? gPlayState->animationCtx.animationCount > 1 : *should;
break; break;
case GI_VB_BIGGORON_CONSIDER_SWORD_FORGED: case VB_BIGGORON_CONSIDER_SWORD_FORGED:
*should = Environment_GetBgsDayCount() >= CVarGetInteger("gForgeTime", 3); *should = Environment_GetBgsDayCount() >= CVarGetInteger("gForgeTime", 3);
break; break;
case GI_VB_BE_ELIGIBLE_FOR_GREAT_FAIRY_REWARD: { case VB_BE_ELIGIBLE_FOR_GREAT_FAIRY_REWARD: {
BgDyYoseizo* bgDyYoseizo = static_cast<BgDyYoseizo*>(opt); BgDyYoseizo* bgDyYoseizo = static_cast<BgDyYoseizo*>(opt);
RandomizerInf flag = RAND_INF_MAX; RandomizerInf flag = RAND_INF_MAX;
@ -715,14 +715,14 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
break; break;
} }
case GI_VB_PLAY_RAINBOW_BRIDGE_CS: { case VB_PLAY_RAINBOW_BRIDGE_CS: {
if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.Story", IS_RANDO)) {
*should = false; *should = false;
func_800F595C(NA_BGM_BRIDGE_TO_GANONS); func_800F595C(NA_BGM_BRIDGE_TO_GANONS);
} }
break; break;
} }
case GI_VB_PHANTOM_GANON_DEATH_SCENE: { case VB_PHANTOM_GANON_DEATH_SCENE: {
if (CVarGetInteger("gTimeSavers.SkipCutscene.QuickBossDeaths", IS_RANDO || IS_BOSS_RUSH)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.QuickBossDeaths", IS_RANDO || IS_BOSS_RUSH)) {
*should = false; *should = false;
BossGanondrof* pg = static_cast<BossGanondrof*>(opt); BossGanondrof* pg = static_cast<BossGanondrof*>(opt);
@ -747,7 +747,7 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, void*
} }
break; break;
} }
case GI_VB_NABOORU_KNUCKLE_DEATH_SCENE: { case VB_NABOORU_KNUCKLE_DEATH_SCENE: {
EnIk* ik = static_cast<EnIk*>(opt); EnIk* ik = static_cast<EnIk*>(opt);
if (CVarGetInteger("gTimeSavers.SkipCutscene.QuickBossDeaths", IS_RANDO)) { if (CVarGetInteger("gTimeSavers.SkipCutscene.QuickBossDeaths", IS_RANDO)) {
// Because no CS in rando, we hide the death of the knuckle by spawning flames and kill the actor // Because no CS in rando, we hide the death of the knuckle by spawning flames and kill the actor
@ -964,7 +964,7 @@ void TimeSaverOnSceneInitHandler(int16_t sceneNum) {
} }
break; break;
case SCENE_LON_LON_RANCH: case SCENE_LON_LON_RANCH:
if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO) && GameInteractor_Should(GI_VB_MALON_RETURN_FROM_CASTLE, Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE), NULL)) { if (CVarGetInteger("gTimeSavers.SkipMiscInteractions", IS_RANDO) && GameInteractor_Should(VB_MALON_RETURN_FROM_CASTLE, Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE), NULL)) {
Flags_SetEventChkInf(EVENTCHKINF_SPOKE_TO_CHILD_MALON_AT_RANCH); Flags_SetEventChkInf(EVENTCHKINF_SPOKE_TO_CHILD_MALON_AT_RANCH);
Flags_SetInfTable(INFTABLE_CHILD_MALON_SAID_EPONA_WAS_AFRAID_OF_YOU); Flags_SetInfTable(INFTABLE_CHILD_MALON_SAID_EPONA_WAS_AFRAID_OF_YOU);
Flags_SetEventChkInf(EVENTCHKINF_INVITED_TO_SING_WITH_CHILD_MALON); Flags_SetEventChkInf(EVENTCHKINF_INVITED_TO_SING_WITH_CHILD_MALON);

View File

@ -497,11 +497,11 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
bool shouldSkipCommand = false; bool shouldSkipCommand = false;
if (cmd->base == 8 && !GameInteractor_Should(GI_VB_PLAY_PULL_MASTER_SWORD_CS, true, NULL)) { if (cmd->base == 8 && !GameInteractor_Should(VB_PLAY_PULL_MASTER_SWORD_CS, true, NULL)) {
shouldSkipCommand = true; shouldSkipCommand = true;
} }
if (cmd->base == 24 && !GameInteractor_Should(GI_VB_PLAY_DROP_FISH_FOR_JABU_CS, true, NULL)) { if (cmd->base == 24 && !GameInteractor_Should(VB_PLAY_DROP_FISH_FOR_JABU_CS, true, NULL)) {
shouldSkipCommand = true; shouldSkipCommand = true;
} }
@ -631,7 +631,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
gSaveContext.fw.set = 0; gSaveContext.fw.set = 0;
gSaveContext.respawn[RESPAWN_MODE_TOP].data = 0; gSaveContext.respawn[RESPAWN_MODE_TOP].data = 0;
} }
if (GameInteractor_Should(GI_VB_PLAY_PULL_MASTER_SWORD_CS, !Flags_GetEventChkInf(EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL), NULL)) { if (GameInteractor_Should(VB_PLAY_PULL_MASTER_SWORD_CS, !Flags_GetEventChkInf(EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL), NULL)) {
Flags_SetEventChkInf(EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL); Flags_SetEventChkInf(EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL);
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START; play->transitionTrigger = TRANS_TRIGGER_START;
@ -723,7 +723,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
play->transitionType = TRANS_TYPE_FADE_WHITE; play->transitionType = TRANS_TYPE_FADE_WHITE;
break; break;
case 22: case 22:
if (GameInteractor_Should(GI_VB_GIVE_ITEM_REQUIEM_OF_SPIRIT, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_REQUIEM_OF_SPIRIT, true, NULL)) {
Item_Give(play, ITEM_SONG_REQUIEM); Item_Give(play, ITEM_SONG_REQUIEM);
} }
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0; play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0;
@ -777,7 +777,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
play->transitionTrigger = TRANS_TRIGGER_START; play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE; play->transitionType = TRANS_TYPE_FADE_WHITE;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FIRE_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_FIRE_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_FIRE); Item_Give(play, ITEM_MEDALLION_FIRE);
} }
gSaveContext.chamberCutsceneNum = 1; gSaveContext.chamberCutsceneNum = 1;
@ -859,7 +859,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break; break;
case 47: case 47:
if (GameInteractor_Should(GI_VB_GIVE_ITEM_NOCTURNE_OF_SHADOW, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_NOCTURNE_OF_SHADOW, true, NULL)) {
Item_Give(play, ITEM_SONG_NOCTURNE); Item_Give(play, ITEM_SONG_NOCTURNE);
} }
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_NOCTURNE_OF_SHADOW); Flags_SetEventChkInf(EVENTCHKINF_LEARNED_NOCTURNE_OF_SHADOW);
@ -2183,7 +2183,7 @@ void Cutscene_HandleEntranceTriggers(PlayState* play) {
(gSaveContext.cutsceneIndex < 0xFFF0) && ((u8)gSaveContext.linkAge == requiredAge) && (gSaveContext.cutsceneIndex < 0xFFF0) && ((u8)gSaveContext.linkAge == requiredAge) &&
(gSaveContext.respawnFlag <= 0)) { (gSaveContext.respawnFlag <= 0)) {
Flags_SetEventChkInf(entranceCutscene->flag); Flags_SetEventChkInf(entranceCutscene->flag);
if (GameInteractor_Should(GI_VB_PLAY_ENTRANCE_CS, true, &entranceCutscene->flag)) { if (GameInteractor_Should(VB_PLAY_ENTRANCE_CS, true, &entranceCutscene->flag)) {
Cutscene_SetSegment(play, entranceCutscene->segAddr); Cutscene_SetSegment(play, entranceCutscene->segAddr);
gSaveContext.cutsceneTrigger = 2; gSaveContext.cutsceneTrigger = 2;
gSaveContext.showTitleCard = false; gSaveContext.showTitleCard = false;
@ -2197,7 +2197,7 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) {
osSyncPrintf("\ngame_info.mode=[%d] restart_flag", ((void)0, gSaveContext.respawnFlag)); osSyncPrintf("\ngame_info.mode=[%d] restart_flag", ((void)0, gSaveContext.respawnFlag));
LUSLOG_INFO("Cutscene_HandleConditionalTriggers - entranceIndex: %#x cutsceneIndex: %#x", gSaveContext.entranceIndex, gSaveContext.cutsceneIndex); LUSLOG_INFO("Cutscene_HandleConditionalTriggers - entranceIndex: %#x cutsceneIndex: %#x", gSaveContext.entranceIndex, gSaveContext.cutsceneIndex);
if (!GameInteractor_Should(GI_VB_PLAY_TRANSITION_CS, true, NULL)) { if (!GameInteractor_Should(VB_PLAY_TRANSITION_CS, true, NULL)) {
return; return;
} }
@ -2206,7 +2206,7 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) {
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_REQUIEM_OF_SPIRIT); Flags_SetEventChkInf(EVENTCHKINF_LEARNED_REQUIEM_OF_SPIRIT);
gSaveContext.entranceIndex = ENTR_DESERT_COLOSSUS_0; gSaveContext.entranceIndex = ENTR_DESERT_COLOSSUS_0;
gSaveContext.cutsceneIndex = 0xFFF0; gSaveContext.cutsceneIndex = 0xFFF0;
} else if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_NOCTURNE_OF_SHADOW, ( } else if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_NOCTURNE_OF_SHADOW, (
(gSaveContext.entranceIndex == ENTR_KAKARIKO_VILLAGE_0) && (gSaveContext.entranceIndex == ENTR_KAKARIKO_VILLAGE_0) &&
LINK_IS_ADULT && LINK_IS_ADULT &&
Flags_GetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP) && Flags_GetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP) &&
@ -2218,12 +2218,12 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) {
gSaveContext.cutsceneIndex = 0xFFF0; gSaveContext.cutsceneIndex = 0xFFF0;
} else if ((gSaveContext.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_SARIA_ON_BRIDGE)) { } else if ((gSaveContext.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_SARIA_ON_BRIDGE)) {
Flags_SetEventChkInf(EVENTCHKINF_SPOKE_TO_SARIA_ON_BRIDGE); Flags_SetEventChkInf(EVENTCHKINF_SPOKE_TO_SARIA_ON_BRIDGE);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FAIRY_OCARINA, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_FAIRY_OCARINA, true, NULL)) {
Item_Give(play, ITEM_OCARINA_FAIRY); Item_Give(play, ITEM_OCARINA_FAIRY);
} }
gSaveContext.entranceIndex = ENTR_LOST_WOODS_0; gSaveContext.entranceIndex = ENTR_LOST_WOODS_0;
gSaveContext.cutsceneIndex = 0xFFF0; gSaveContext.cutsceneIndex = 0xFFF0;
} else if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS, ( } else if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS, (
CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) &&
CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) &&
LINK_IS_ADULT && LINK_IS_ADULT &&

View File

@ -360,7 +360,7 @@ void EnItem00_Init(Actor* thisx, PlayState* play) {
this->actor.params &= 0xFF; this->actor.params &= 0xFF;
if (GameInteractor_Should(GI_VB_ITEM00_DESPAWN, Flags_GetCollectible(play, this->collectibleFlag), this)) { if (GameInteractor_Should(VB_ITEM00_DESPAWN, Flags_GetCollectible(play, this->collectibleFlag), this)) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
return; return;
} }
@ -512,7 +512,7 @@ void EnItem00_Init(Actor* thisx, PlayState* play) {
this->actor.velocity.y = 0.0f; this->actor.velocity.y = 0.0f;
this->actor.gravity = 0.0f; this->actor.gravity = 0.0f;
if (!GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_ITEM_00, true, this)) { if (!GameInteractor_Should(VB_GIVE_ITEM_FROM_ITEM_00, true, this)) {
return; return;
} }
@ -866,7 +866,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
return; return;
} }
if (!GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_ITEM_00, true, this)) { if (!GameInteractor_Should(VB_GIVE_ITEM_FROM_ITEM_00, true, this)) {
return; return;
} }

View File

@ -2610,18 +2610,18 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
u8 songItemId = ITEM_SONG_MINUET + gOcarinaSongItemMap[msgCtx->ocarinaStaff->state]; u8 songItemId = ITEM_SONG_MINUET + gOcarinaSongItemMap[msgCtx->ocarinaStaff->state];
if ( if (
(songItemId == ITEM_SONG_MINUET && GameInteractor_Should(GI_VB_GIVE_ITEM_MINUET_OF_FOREST, true, NULL)) || (songItemId == ITEM_SONG_MINUET && GameInteractor_Should(VB_GIVE_ITEM_MINUET_OF_FOREST, true, NULL)) ||
(songItemId == ITEM_SONG_BOLERO && GameInteractor_Should(GI_VB_GIVE_ITEM_BOLERO_OF_FIRE, true, NULL)) || (songItemId == ITEM_SONG_BOLERO && GameInteractor_Should(VB_GIVE_ITEM_BOLERO_OF_FIRE, true, NULL)) ||
(songItemId == ITEM_SONG_SERENADE && GameInteractor_Should(GI_VB_GIVE_ITEM_SERENADE_OF_WATER, true, NULL)) || (songItemId == ITEM_SONG_SERENADE && GameInteractor_Should(VB_GIVE_ITEM_SERENADE_OF_WATER, true, NULL)) ||
(songItemId == ITEM_SONG_REQUIEM && GameInteractor_Should(GI_VB_GIVE_ITEM_REQUIEM_OF_SPIRIT, true, NULL)) || (songItemId == ITEM_SONG_REQUIEM && GameInteractor_Should(VB_GIVE_ITEM_REQUIEM_OF_SPIRIT, true, NULL)) ||
(songItemId == ITEM_SONG_NOCTURNE && GameInteractor_Should(GI_VB_GIVE_ITEM_NOCTURNE_OF_SHADOW, true, NULL)) || (songItemId == ITEM_SONG_NOCTURNE && GameInteractor_Should(VB_GIVE_ITEM_NOCTURNE_OF_SHADOW, true, NULL)) ||
(songItemId == ITEM_SONG_PRELUDE && GameInteractor_Should(GI_VB_GIVE_ITEM_PRELUDE_OF_LIGHT, true, NULL)) || (songItemId == ITEM_SONG_PRELUDE && GameInteractor_Should(VB_GIVE_ITEM_PRELUDE_OF_LIGHT, true, NULL)) ||
(songItemId == ITEM_SONG_LULLABY && GameInteractor_Should(GI_VB_GIVE_ITEM_ZELDAS_LULLABY, true, NULL)) || (songItemId == ITEM_SONG_LULLABY && GameInteractor_Should(VB_GIVE_ITEM_ZELDAS_LULLABY, true, NULL)) ||
(songItemId == ITEM_SONG_EPONA && GameInteractor_Should(GI_VB_GIVE_ITEM_EPONAS_SONG, true, NULL)) || (songItemId == ITEM_SONG_EPONA && GameInteractor_Should(VB_GIVE_ITEM_EPONAS_SONG, true, NULL)) ||
(songItemId == ITEM_SONG_SARIA && GameInteractor_Should(GI_VB_GIVE_ITEM_SARIAS_SONG, true, NULL)) || (songItemId == ITEM_SONG_SARIA && GameInteractor_Should(VB_GIVE_ITEM_SARIAS_SONG, true, NULL)) ||
(songItemId == ITEM_SONG_SUN && GameInteractor_Should(GI_VB_GIVE_ITEM_SUNS_SONG, true, NULL)) || (songItemId == ITEM_SONG_SUN && GameInteractor_Should(VB_GIVE_ITEM_SUNS_SONG, true, NULL)) ||
(songItemId == ITEM_SONG_TIME && GameInteractor_Should(GI_VB_GIVE_ITEM_SONG_OF_TIME, true, NULL)) || (songItemId == ITEM_SONG_TIME && GameInteractor_Should(VB_GIVE_ITEM_SONG_OF_TIME, true, NULL)) ||
(songItemId == ITEM_SONG_STORMS && GameInteractor_Should(GI_VB_GIVE_ITEM_SONG_OF_STORMS, true, NULL)) (songItemId == ITEM_SONG_STORMS && GameInteractor_Should(VB_GIVE_ITEM_SONG_OF_STORMS, true, NULL))
) { ) {
Item_Give(play, songItemId); Item_Give(play, songItemId);
} }

View File

@ -1173,11 +1173,11 @@ s16 OnePointCutscene_Init(PlayState* play, s16 csId, s16 timer, Actor* actor, s1
Camera* csCam; Camera* csCam;
if (actor != NULL && actor->id != ACTOR_PLAYER) { if (actor != NULL && actor->id != ACTOR_PLAYER) {
if (!GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, actor)) { if (!GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, actor)) {
return SUBCAM_NONE; return SUBCAM_NONE;
} }
} else { } else {
if (!GameInteractor_Should(GI_VB_PLAY_ONEPOINT_CS, true, &csId)) { if (!GameInteractor_Should(VB_PLAY_ONEPOINT_CS, true, &csId)) {
return SUBCAM_NONE; return SUBCAM_NONE;
} }
} }

View File

@ -225,7 +225,7 @@ void func_8086D4B4(BgBdanSwitch* this, PlayState* play) {
if (!Flags_GetSwitch(play, (this->dyna.actor.params >> 8) & 0x3F)) { if (!Flags_GetSwitch(play, (this->dyna.actor.params >> 8) & 0x3F)) {
type = this->dyna.actor.params & 0xFF; type = this->dyna.actor.params & 0xFF;
Flags_SetSwitch(play, (this->dyna.actor.params >> 8) & 0x3F); Flags_SetSwitch(play, (this->dyna.actor.params >> 8) & 0x3F);
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) {
if (type == BLUE || type == YELLOW_TALL_2) { if (type == BLUE || type == YELLOW_TALL_2) {
OnePointCutscene_AttentionSetSfx(play, &this->dyna.actor, NA_SE_SY_TRE_BOX_APPEAR); OnePointCutscene_AttentionSetSfx(play, &this->dyna.actor, NA_SE_SY_TRE_BOX_APPEAR);
} else { } else {
@ -239,7 +239,7 @@ void func_8086D548(BgBdanSwitch* this, PlayState* play) {
if (Flags_GetSwitch(play, (this->dyna.actor.params >> 8) & 0x3F)) { if (Flags_GetSwitch(play, (this->dyna.actor.params >> 8) & 0x3F)) {
Flags_UnsetSwitch(play, (this->dyna.actor.params >> 8) & 0x3F); Flags_UnsetSwitch(play, (this->dyna.actor.params >> 8) & 0x3F);
if ((this->dyna.actor.params & 0xFF) == YELLOW_TALL_2) { if ((this->dyna.actor.params & 0xFF) == YELLOW_TALL_2) {
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) {
OnePointCutscene_AttentionSetSfx(play, &this->dyna.actor, NA_SE_SY_TRE_BOX_APPEAR); OnePointCutscene_AttentionSetSfx(play, &this->dyna.actor, NA_SE_SY_TRE_BOX_APPEAR);
} }
} }

View File

@ -302,7 +302,7 @@ void BgBreakwall_Wait(BgBreakwall* this, PlayState* play) {
if ((wallType == BWALL_DC_ENTRANCE) && (!Flags_GetEventChkInf(EVENTCHKINF_ENTERED_DODONGOS_CAVERN))) { if ((wallType == BWALL_DC_ENTRANCE) && (!Flags_GetEventChkInf(EVENTCHKINF_ENTERED_DODONGOS_CAVERN))) {
Flags_SetEventChkInf(EVENTCHKINF_ENTERED_DODONGOS_CAVERN); Flags_SetEventChkInf(EVENTCHKINF_ENTERED_DODONGOS_CAVERN);
s32 flag = EVENTCHKINF_ENTERED_DODONGOS_CAVERN; s32 flag = EVENTCHKINF_ENTERED_DODONGOS_CAVERN;
if (GameInteractor_Should(GI_VB_PLAY_ENTRANCE_CS, true, &flag)) { if (GameInteractor_Should(VB_PLAY_ENTRANCE_CS, true, &flag)) {
Cutscene_SetSegment(play, gDcOpeningCs); Cutscene_SetSegment(play, gDcOpeningCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
Player_SetCsActionWithHaltedActors(play, NULL, 0x31); Player_SetCsActionWithHaltedActors(play, NULL, 0x31);

View File

@ -198,7 +198,7 @@ void BgDyYoseizo_CheckMagicAcquired(BgDyYoseizo* this, PlayState* play) {
} }
} }
if (!GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_GREAT_FAIRY_REWARD, isEligible, this)) { if (!GameInteractor_Should(VB_BE_ELIGIBLE_FOR_GREAT_FAIRY_REWARD, isEligible, this)) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
return; return;
} }

View File

@ -70,7 +70,7 @@ void func_808787A4(BgGjyoBridge* this, PlayState* play) {
} }
void LaunchBridgeCutscene(BgGjyoBridge* this, PlayState* play) { void LaunchBridgeCutscene(BgGjyoBridge* this, PlayState* play) {
if (GameInteractor_Should(GI_VB_PLAY_RAINBOW_BRIDGE_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_RAINBOW_BRIDGE_CS, true, NULL)) {
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gRainbowBridgeCs); play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gRainbowBridgeCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
@ -92,7 +92,7 @@ void BgGjyoBridge_TriggerCutscene(BgGjyoBridge* this, PlayState* play) {
(INV_CONTENT(ITEM_ARROW_LIGHT) == ITEM_ARROW_LIGHT) && (INV_CONTENT(ITEM_ARROW_LIGHT) == ITEM_ARROW_LIGHT) &&
CheckPlayerPosition(player, play); CheckPlayerPosition(player, play);
if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_RAINBOW_BRIDGE, vanillaBridgeCondition, NULL)) { if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_RAINBOW_BRIDGE, vanillaBridgeCondition, NULL)) {
LaunchBridgeCutscene(this, play); LaunchBridgeCutscene(this, play);
} }
} }
@ -103,7 +103,7 @@ void BgGjyoBridge_SpawnBridge(BgGjyoBridge* this, PlayState* play) {
(play->csCtx.npcActions[2] != NULL) && (play->csCtx.npcActions[2] != NULL) &&
(play->csCtx.npcActions[2]->action == 2); (play->csCtx.npcActions[2]->action == 2);
if (!GameInteractor_Should(GI_VB_PLAY_RAINBOW_BRIDGE_CS, true, NULL) || vanillaBridgeCondition) { if (!GameInteractor_Should(VB_PLAY_RAINBOW_BRIDGE_CS, true, NULL) || vanillaBridgeCondition) {
this->dyna.actor.draw = BgGjyoBridge_Draw; this->dyna.actor.draw = BgGjyoBridge_Draw;
func_8003EC50(play, &play->colCtx.dyna, this->dyna.bgId); func_8003EC50(play, &play->colCtx.dyna, this->dyna.bgId);
Flags_SetEventChkInf(EVENTCHKINF_RAINBOW_BRIDGE_BUILT); Flags_SetEventChkInf(EVENTCHKINF_RAINBOW_BRIDGE_BUILT);

View File

@ -150,7 +150,7 @@ void BgMoriBigst_StalfosFight(BgMoriBigst* this, PlayState* play) {
if ((this->dyna.actor.home.rot.z == 0) && if ((this->dyna.actor.home.rot.z == 0) &&
((this->dyna.actor.home.pos.y - 5.0f) <= GET_PLAYER(play)->actor.world.pos.y)) { ((this->dyna.actor.home.pos.y - 5.0f) <= GET_PLAYER(play)->actor.world.pos.y)) {
BgMoriBigst_SetupFall(this, play); BgMoriBigst_SetupFall(this, play);
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) {
OnePointCutscene_Init(play, 3220, 72, &this->dyna.actor, MAIN_CAM); OnePointCutscene_Init(play, 3220, 72, &this->dyna.actor, MAIN_CAM);
} }
} }
@ -166,7 +166,7 @@ void BgMoriBigst_Fall(BgMoriBigst* this, PlayState* play) {
this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y; this->dyna.actor.world.pos.y = this->dyna.actor.home.pos.y;
BgMoriBigst_SetupLanding(this, play); BgMoriBigst_SetupLanding(this, play);
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_STONE_BOUND); Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_STONE_BOUND);
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) {
OnePointCutscene_Init(play, 1020, 8, &this->dyna.actor, MAIN_CAM); OnePointCutscene_Init(play, 1020, 8, &this->dyna.actor, MAIN_CAM);
func_8002DF38(play, NULL, 0x3C); func_8002DF38(play, NULL, 0x3C);
} }

View File

@ -130,7 +130,7 @@ void func_808AC908(BgSpot02Objects* this, PlayState* play) {
static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f }; static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f };
Vec3f pos; Vec3f pos;
if (GameInteractor_Should(GI_VB_PLAY_ROYAL_FAMILY_TOMB_EXPLODE, play->csCtx.state != 0 && play->csCtx.npcActions[3] != NULL && play->csCtx.npcActions[3]->action == 2, this)) { if (GameInteractor_Should(VB_PLAY_ROYAL_FAMILY_TOMB_EXPLODE, play->csCtx.state != 0 && play->csCtx.npcActions[3] != NULL && play->csCtx.npcActions[3]->action == 2, this)) {
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_GRAVE_EXPLOSION); Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_GRAVE_EXPLOSION);
Flags_SetEventChkInf(EVENTCHKINF_DESTROYED_ROYAL_FAMILY_TOMB); Flags_SetEventChkInf(EVENTCHKINF_DESTROYED_ROYAL_FAMILY_TOMB);
this->timer = 25; this->timer = 25;

View File

@ -61,7 +61,7 @@ void BgSpot12Saku_Init(Actor* thisx, PlayState* play) {
func_808B3420(this, play, &gGerudoFortressGTGShutterCol, DPM_UNK); func_808B3420(this, play, &gGerudoFortressGTGShutterCol, DPM_UNK);
Actor_ProcessInitChain(&this->dyna.actor, sInitChain); Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
if (GameInteractor_Should(GI_VB_GTG_GATE_BE_OPEN, Flags_GetSwitch(play, this->dyna.actor.params & 0x3F), NULL)) { if (GameInteractor_Should(VB_GTG_GATE_BE_OPEN, Flags_GetSwitch(play, this->dyna.actor.params & 0x3F), NULL)) {
func_808B3714(this); func_808B3714(this);
} else { } else {
func_808B3550(this); func_808B3550(this);
@ -82,7 +82,7 @@ void func_808B3550(BgSpot12Saku* this) {
} }
void func_808B357C(BgSpot12Saku* this, PlayState* play) { void func_808B357C(BgSpot12Saku* this, PlayState* play) {
if (GameInteractor_Should(GI_VB_GTG_GATE_BE_OPEN, Flags_GetSwitch(play, this->dyna.actor.params & 0x3F), NULL)) { if (GameInteractor_Should(VB_GTG_GATE_BE_OPEN, Flags_GetSwitch(play, this->dyna.actor.params & 0x3F), NULL)) {
func_808B35E4(this); func_808B35E4(this);
this->timer = 20; this->timer = 20;
OnePointCutscene_Init(play, 4170, -99, &this->dyna.actor, MAIN_CAM); OnePointCutscene_Init(play, 4170, -99, &this->dyna.actor, MAIN_CAM);

View File

@ -117,7 +117,7 @@ void func_808BAF40(BgTokiSwd* this, PlayState* play) {
Actor_IsFacingAndNearPlayer(&this->actor, 800.0f, 0x7530) && !Play_InCsMode(play)) { Actor_IsFacingAndNearPlayer(&this->actor, 800.0f, 0x7530) && !Play_InCsMode(play)) {
Flags_SetEventChkInf(EVENTCHKINF_ENTERED_MASTER_SWORD_CHAMBER); Flags_SetEventChkInf(EVENTCHKINF_ENTERED_MASTER_SWORD_CHAMBER);
s32 flag = EVENTCHKINF_ENTERED_MASTER_SWORD_CHAMBER; s32 flag = EVENTCHKINF_ENTERED_MASTER_SWORD_CHAMBER;
if (GameInteractor_Should(GI_VB_PLAY_ENTRANCE_CS, true, &flag)) { if (GameInteractor_Should(VB_PLAY_ENTRANCE_CS, true, &flag)) {
play->csCtx.segment = D_808BBD90; play->csCtx.segment = D_808BBD90;
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
@ -126,7 +126,7 @@ void func_808BAF40(BgTokiSwd* this, PlayState* play) {
if (!LINK_IS_ADULT || (Flags_GetEventChkInf(EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT) && !IS_RANDO) || IS_RANDO) { if (!LINK_IS_ADULT || (Flags_GetEventChkInf(EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT) && !IS_RANDO) || IS_RANDO) {
if (Actor_HasParent(&this->actor, play)) { if (Actor_HasParent(&this->actor, play)) {
if (!LINK_IS_ADULT) { if (!LINK_IS_ADULT) {
if (GameInteractor_Should(GI_VB_GIVE_ITEM_MASTER_SWORD, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_MASTER_SWORD, true, NULL)) {
Item_Give(play, ITEM_SWORD_MASTER); Item_Give(play, ITEM_SWORD_MASTER);
} }
play->csCtx.segment = D_808BB2F0; play->csCtx.segment = D_808BB2F0;

View File

@ -154,7 +154,7 @@ void func_808BC8B8(BgTreemouth* this, PlayState* play) {
} }
} else if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 1658.0f, 0x4E20)) { } else if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 1658.0f, 0x4E20)) {
Flags_SetEventChkInf(EVENTCHKINF_MET_DEKU_TREE); Flags_SetEventChkInf(EVENTCHKINF_MET_DEKU_TREE);
if (GameInteractor_Should(GI_VB_PLAY_DEKU_TREE_INTRO_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_DEKU_TREE_INTRO_CS, true, this)) {
play->csCtx.segment = D_808BCE20; play->csCtx.segment = D_808BCE20;
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
BgTreemouth_SetupAction(this, func_808BC9EC); BgTreemouth_SetupAction(this, func_808BC9EC);

View File

@ -944,7 +944,7 @@ void BossGanondrof_Death(BossGanondrof* this, PlayState* play) {
case DEATH_THROES: case DEATH_THROES:
switch (this->work[GND_ACTION_STATE]) { switch (this->work[GND_ACTION_STATE]) {
case DEATH_SPASM: case DEATH_SPASM:
if (GameInteractor_Should(GI_VB_PHANTOM_GANON_DEATH_SCENE, true, this)) { if (GameInteractor_Should(VB_PHANTOM_GANON_DEATH_SCENE, true, this)) {
if (Animation_OnFrame(&this->skelAnime, this->fwork[GND_END_FRAME])) { if (Animation_OnFrame(&this->skelAnime, this->fwork[GND_END_FRAME])) {
this->fwork[GND_END_FRAME] = Animation_GetLastFrame(&gPhantomGanonAirDamageAnim); this->fwork[GND_END_FRAME] = Animation_GetLastFrame(&gPhantomGanonAirDamageAnim);
Animation_Change(&this->skelAnime, &gPhantomGanonAirDamageAnim, 0.5f, 0.0f, Animation_Change(&this->skelAnime, &gPhantomGanonAirDamageAnim, 0.5f, 0.0f,
@ -963,7 +963,7 @@ void BossGanondrof_Death(BossGanondrof* this, PlayState* play) {
bodyDecayLevel = 1; bodyDecayLevel = 1;
break; break;
} }
if (GameInteractor_Should(GI_VB_PHANTOM_GANON_DEATH_SCENE, true, NULL)) { if (GameInteractor_Should(VB_PHANTOM_GANON_DEATH_SCENE, true, NULL)) {
Math_ApproachS(&this->actor.shape.rot.y, this->work[GND_VARIANCE_TIMER] * -100, 5, 0xBB8); Math_ApproachS(&this->actor.shape.rot.y, this->work[GND_VARIANCE_TIMER] * -100, 5, 0xBB8);
Math_ApproachF(&this->cameraNextEye.z, this->targetPos.z + 60.0f, 0.02f, 0.5f); Math_ApproachF(&this->cameraNextEye.z, this->targetPos.z + 60.0f, 0.02f, 0.5f);
Math_ApproachF(&this->actor.world.pos.y, GND_BOSSROOM_CENTER_Y + 133.0f, 0.05f, 100.0f); Math_ApproachF(&this->actor.world.pos.y, GND_BOSSROOM_CENTER_Y + 133.0f, 0.05f, 100.0f);

View File

@ -185,7 +185,7 @@ void func_80969F38(DemoDu* this, PlayState* play) {
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0, Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0,
DEMO_EFFECT_MEDAL_FIRE); DEMO_EFFECT_MEDAL_FIRE);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FIRE_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_FIRE_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_FIRE); Item_Give(play, ITEM_MEDALLION_FIRE);
} }
} }
@ -204,7 +204,7 @@ void DemoDu_CsFireMedallion_AdvanceTo01(DemoDu* this, PlayState* play) {
this->updateIndex = CS_FIREMEDALLION_SUBSCENE(1); this->updateIndex = CS_FIREMEDALLION_SUBSCENE(1);
play->csCtx.segment = D_8096C1A4; play->csCtx.segment = D_8096C1A4;
gSaveContext.cutsceneTrigger = 2; gSaveContext.cutsceneTrigger = 2;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FIRE_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_FIRE_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_FIRE); Item_Give(play, ITEM_MEDALLION_FIRE);
} }

View File

@ -319,7 +319,7 @@ void func_809853B4(DemoIm* this, PlayState* play) {
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, playerX, playerY, playerZ, 0, Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, playerX, playerY, playerZ, 0,
0, 0, 0xD); 0, 0, 0xD);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_SHADOW_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_SHADOW_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_SHADOW); Item_Give(play, ITEM_MEDALLION_SHADOW);
} }
} }
@ -337,7 +337,7 @@ void func_8098544C(DemoIm* this, PlayState* play) {
this->action = 1; this->action = 1;
play->csCtx.segment = D_8098786C; play->csCtx.segment = D_8098786C;
gSaveContext.cutsceneTrigger = 2; gSaveContext.cutsceneTrigger = 2;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_SHADOW_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_SHADOW_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_SHADOW); Item_Give(play, ITEM_MEDALLION_SHADOW);
} }
player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y + 0x8000; player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y + 0x8000;
@ -910,13 +910,13 @@ void func_80986BF8(DemoIm* this, PlayState* play) {
void func_80986C30(DemoIm* this, PlayState* play) { void func_80986C30(DemoIm* this, PlayState* play) {
if (func_80986A5C(this, play)) { if (func_80986A5C(this, play)) {
if (GameInteractor_Should(GI_VB_PLAY_ZELDAS_LULLABY_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ZELDAS_LULLABY_CS, true, this)) {
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardLullabyCs); play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardLullabyCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
func_80985F54(this); func_80985F54(this);
} }
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_ZELDAS_LULLABY); Flags_SetEventChkInf(EVENTCHKINF_LEARNED_ZELDAS_LULLABY);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_ZELDAS_LULLABY, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_ZELDAS_LULLABY, true, NULL)) {
Item_Give(play, ITEM_SONG_LULLABY); Item_Give(play, ITEM_SONG_LULLABY);
} }
} }

View File

@ -242,7 +242,7 @@ void func_8098E8C8(DemoSa* this, PlayState* play) {
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0, Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0,
0xB); 0xB);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FOREST_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_FOREST_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_FOREST); Item_Give(play, ITEM_MEDALLION_FOREST);
} }
} }
@ -261,7 +261,7 @@ void func_8098E960(DemoSa* this, PlayState* play) {
this->action = 1; this->action = 1;
play->csCtx.segment = D_8099010C; play->csCtx.segment = D_8099010C;
gSaveContext.cutsceneTrigger = 2; gSaveContext.cutsceneTrigger = 2;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FOREST_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_FOREST_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_FOREST); Item_Give(play, ITEM_MEDALLION_FOREST);
} }
player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y + 0x8000; player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y + 0x8000;

View File

@ -355,7 +355,7 @@ void func_80996A54(DoorShutter* this, PlayState* play) {
if (Flags_GetClear(play, this->dyna.actor.room) || Flags_GetTempClear(play, this->dyna.actor.room)) { if (Flags_GetClear(play, this->dyna.actor.room) || Flags_GetTempClear(play, this->dyna.actor.room)) {
Flags_SetClear(play, this->dyna.actor.room); Flags_SetClear(play, this->dyna.actor.room);
DoorShutter_SetupAction(this, func_80997150); DoorShutter_SetupAction(this, func_80997150);
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) {
OnePointCutscene_Attention(play, &this->dyna.actor); OnePointCutscene_Attention(play, &this->dyna.actor);
OnePointCutscene_Attention(play, &GET_PLAYER(play)->actor); OnePointCutscene_Attention(play, &GET_PLAYER(play)->actor);
this->unk_16F = -100; this->unk_16F = -100;
@ -473,7 +473,7 @@ void func_80996EE8(DoorShutter* this, PlayState* play) {
if (func_80996E08(this, play, 1.0f)) { if (func_80996E08(this, play, 1.0f)) {
if (Flags_GetSwitch(play, this->dyna.actor.params & 0x3F)) { if (Flags_GetSwitch(play, this->dyna.actor.params & 0x3F)) {
DoorShutter_SetupAction(this, func_80997150); DoorShutter_SetupAction(this, func_80997150);
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) {
OnePointCutscene_Attention(play, &this->dyna.actor); OnePointCutscene_Attention(play, &this->dyna.actor);
this->unk_16F = -100; this->unk_16F = -100;
} }

View File

@ -528,9 +528,9 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
osSyncPrintf("\n\n\nじかんがきたからおーしまい fade_direction=[%d]", play->transitionTrigger, TRANS_TRIGGER_START); osSyncPrintf("\n\n\nじかんがきたからおーしまい fade_direction=[%d]", play->transitionTrigger, TRANS_TRIGGER_START);
if (play->sceneNum == SCENE_DODONGOS_CAVERN_BOSS) { if (play->sceneNum == SCENE_DODONGOS_CAVERN_BOSS) {
if (GameInteractor_Should(GI_VB_PLAY_BLUE_WARP_CS, !Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP), EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP)) { if (GameInteractor_Should(VB_PLAY_BLUE_WARP_CS, !Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP), EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP)) {
Flags_SetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP); Flags_SetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_GORON_RUBY)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_GORON_RUBY)) {
Item_Give(play, ITEM_GORON_RUBY); Item_Give(play, ITEM_GORON_RUBY);
} }
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0; play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
@ -540,10 +540,10 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
gSaveContext.nextCutsceneIndex = 0; gSaveContext.nextCutsceneIndex = 0;
} }
} else if (play->sceneNum == SCENE_DEKU_TREE_BOSS) { } else if (play->sceneNum == SCENE_DEKU_TREE_BOSS) {
if (GameInteractor_Should(GI_VB_PLAY_BLUE_WARP_CS, !Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD), EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD)) { if (GameInteractor_Should(VB_PLAY_BLUE_WARP_CS, !Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD), EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD)) {
Flags_SetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD); Flags_SetEventChkInf(EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD);
Flags_SetEventChkInf(EVENTCHKINF_USED_DEKU_TREE_BLUE_WARP); Flags_SetEventChkInf(EVENTCHKINF_USED_DEKU_TREE_BLUE_WARP);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_KOKIRI_EMERALD)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_KOKIRI_EMERALD)) {
Item_Give(play, ITEM_KOKIRI_EMERALD); Item_Give(play, ITEM_KOKIRI_EMERALD);
} }
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0; play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
@ -645,9 +645,9 @@ void DoorWarp1_RutoWarpOut(DoorWarp1* this, PlayState* play) {
this->warpTimer++; this->warpTimer++;
if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) { if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) {
if (GameInteractor_Should(GI_VB_PLAY_BLUE_WARP_CS, true, EVENTCHKINF_USED_JABU_JABUS_BELLY_BLUE_WARP)) { if (GameInteractor_Should(VB_PLAY_BLUE_WARP_CS, true, EVENTCHKINF_USED_JABU_JABUS_BELLY_BLUE_WARP)) {
Flags_SetEventChkInf(EVENTCHKINF_USED_JABU_JABUS_BELLY_BLUE_WARP); Flags_SetEventChkInf(EVENTCHKINF_USED_JABU_JABUS_BELLY_BLUE_WARP);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_ZORA_SAPPHIRE)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_ZORA_SAPPHIRE)) {
Item_Give(play, ITEM_ZORA_SAPPHIRE); Item_Give(play, ITEM_ZORA_SAPPHIRE);
} }
gSaveContext.nextCutsceneIndex = 0xFFF0; gSaveContext.nextCutsceneIndex = 0xFFF0;
@ -762,9 +762,9 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
if (IS_BOSS_RUSH) { if (IS_BOSS_RUSH) {
BossRush_HandleBlueWarp(play, this->actor.world.pos.x, this->actor.world.pos.z); BossRush_HandleBlueWarp(play, this->actor.world.pos.x, this->actor.world.pos.z);
} else if (play->sceneNum == SCENE_FOREST_TEMPLE_BOSS) { } else if (play->sceneNum == SCENE_FOREST_TEMPLE_BOSS) {
if (GameInteractor_Should(GI_VB_PLAY_BLUE_WARP_CS, !Flags_GetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP), EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP)) { if (GameInteractor_Should(VB_PLAY_BLUE_WARP_CS, !Flags_GetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP), EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP)) {
Flags_SetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP); Flags_SetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_MEDALLION_FOREST)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_MEDALLION_FOREST)) {
Item_Give(play, ITEM_MEDALLION_FOREST); Item_Give(play, ITEM_MEDALLION_FOREST);
} }
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
@ -779,9 +779,9 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
gSaveContext.nextCutsceneIndex = 0; gSaveContext.nextCutsceneIndex = 0;
} }
} else if (play->sceneNum == SCENE_FIRE_TEMPLE_BOSS) { } else if (play->sceneNum == SCENE_FIRE_TEMPLE_BOSS) {
if (GameInteractor_Should(GI_VB_PLAY_BLUE_WARP_CS, !Flags_GetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP), EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP)) { if (GameInteractor_Should(VB_PLAY_BLUE_WARP_CS, !Flags_GetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP), EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP)) {
Flags_SetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP); Flags_SetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_MEDALLION_FIRE)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_MEDALLION_FIRE)) {
Item_Give(play, ITEM_MEDALLION_FIRE); Item_Give(play, ITEM_MEDALLION_FIRE);
} }
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0; play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
@ -795,9 +795,9 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
gSaveContext.nextCutsceneIndex = 0; gSaveContext.nextCutsceneIndex = 0;
} }
} else if (play->sceneNum == SCENE_WATER_TEMPLE_BOSS) { } else if (play->sceneNum == SCENE_WATER_TEMPLE_BOSS) {
if (GameInteractor_Should(GI_VB_PLAY_BLUE_WARP_CS, !Flags_GetEventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP), EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP)) { if (GameInteractor_Should(VB_PLAY_BLUE_WARP_CS, !Flags_GetEventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP), EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP)) {
Flags_SetEventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP); Flags_SetEventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_MEDALLION_WATER)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_MEDALLION_WATER)) {
Item_Give(play, ITEM_MEDALLION_WATER); Item_Give(play, ITEM_MEDALLION_WATER);
} }
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
@ -812,9 +812,9 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
gSaveContext.nextCutsceneIndex = 0; gSaveContext.nextCutsceneIndex = 0;
} }
} else if (play->sceneNum == SCENE_SPIRIT_TEMPLE_BOSS) { } else if (play->sceneNum == SCENE_SPIRIT_TEMPLE_BOSS) {
if (GameInteractor_Should(GI_VB_PLAY_BLUE_WARP_CS, !CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT), RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE)) { if (GameInteractor_Should(VB_PLAY_BLUE_WARP_CS, !CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT), RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE)) {
Flags_SetRandomizerInf(RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE); Flags_SetRandomizerInf(RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_MEDALLION_SPIRIT)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_MEDALLION_SPIRIT)) {
Item_Give(play, ITEM_MEDALLION_SPIRIT); Item_Give(play, ITEM_MEDALLION_SPIRIT);
} }
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
@ -829,9 +829,9 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
gSaveContext.nextCutsceneIndex = 0; gSaveContext.nextCutsceneIndex = 0;
} }
} else if (play->sceneNum == SCENE_SHADOW_TEMPLE_BOSS) { } else if (play->sceneNum == SCENE_SHADOW_TEMPLE_BOSS) {
if (GameInteractor_Should(GI_VB_PLAY_BLUE_WARP_CS, !CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW), RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE)) { if (GameInteractor_Should(VB_PLAY_BLUE_WARP_CS, !CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW), RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE)) {
Flags_SetRandomizerInf(RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE); Flags_SetRandomizerInf(RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_MEDALLION_SHADOW)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_BLUE_WARP, true, ITEM_MEDALLION_SHADOW)) {
Item_Give(play, ITEM_MEDALLION_SHADOW); Item_Give(play, ITEM_MEDALLION_SHADOW);
} }
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;

View File

@ -126,7 +126,7 @@ void ElfMsg_CallNaviCuboid(ElfMsg* this, PlayState* play) {
(this->actor.world.pos.y <= player->actor.world.pos.y) && (this->actor.world.pos.y <= player->actor.world.pos.y) &&
((player->actor.world.pos.y - this->actor.world.pos.y) < (100.0f * this->actor.scale.y)) && ((player->actor.world.pos.y - this->actor.world.pos.y) < (100.0f * this->actor.scale.y)) &&
(fabsf(player->actor.world.pos.z - this->actor.world.pos.z) < (100.0f * this->actor.scale.z))) { (fabsf(player->actor.world.pos.z - this->actor.world.pos.z) < (100.0f * this->actor.scale.z))) {
if (GameInteractor_Should(GI_VB_NAVI_TALK, true, this)) { if (GameInteractor_Should(VB_NAVI_TALK, true, this)) {
player->naviTextId = ElfMsg_GetMessageId(this); player->naviTextId = ElfMsg_GetMessageId(this);
navi->elfMsg = this; navi->elfMsg = this;
} }
@ -148,7 +148,7 @@ void ElfMsg_CallNaviCylinder(ElfMsg* this, PlayState* play) {
if (ElfMsg_WithinXZDistance(&player->actor.world.pos, &this->actor.world.pos, this->actor.scale.x * 100.0f) && if (ElfMsg_WithinXZDistance(&player->actor.world.pos, &this->actor.world.pos, this->actor.scale.x * 100.0f) &&
(this->actor.world.pos.y <= player->actor.world.pos.y) && (this->actor.world.pos.y <= player->actor.world.pos.y) &&
((player->actor.world.pos.y - this->actor.world.pos.y) < (100.0f * this->actor.scale.y))) { ((player->actor.world.pos.y - this->actor.world.pos.y) < (100.0f * this->actor.scale.y))) {
if (GameInteractor_Should(GI_VB_NAVI_TALK, true, this)) { if (GameInteractor_Should(VB_NAVI_TALK, true, this)) {
player->naviTextId = ElfMsg_GetMessageId(this); player->naviTextId = ElfMsg_GetMessageId(this);
navi->elfMsg = this; navi->elfMsg = this;
} }

View File

@ -120,7 +120,7 @@ void func_809B0524(EnAni* this, PlayState* play) {
} }
void func_809B0558(EnAni* this, PlayState* play) { void func_809B0558(EnAni* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_MAN_ON_ROOF, true, NULL)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_MAN_ON_ROOF, true, NULL)) {
this->actor.parent = NULL; this->actor.parent = NULL;
if (!LINK_IS_ADULT) { if (!LINK_IS_ADULT) {
EnAni_SetupAction(this, func_809B04F0); EnAni_SetupAction(this, func_809B04F0);
@ -129,7 +129,7 @@ void func_809B0558(EnAni* this, PlayState* play) {
} }
Flags_SetItemGetInf(ITEMGETINF_15); Flags_SetItemGetInf(ITEMGETINF_15);
} else { } else {
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_MAN_ON_ROOF, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_MAN_ON_ROOF, true, NULL)) {
Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, 10000.0f, 200.0f); Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, 10000.0f, 200.0f);
} }
} }
@ -140,7 +140,7 @@ void func_809B05F0(EnAni* this, PlayState* play) {
EnAni_SetupAction(this, func_809B0558); EnAni_SetupAction(this, func_809B0558);
} }
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_MAN_ON_ROOF, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_MAN_ON_ROOF, true, NULL)) {
Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, 10000.0f, 200.0f); Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, 10000.0f, 200.0f);
} }
} }

View File

@ -185,7 +185,7 @@ void EnBomBowlPit_GivePrize(EnBomBowlPit* this, PlayState* play) {
player->stateFlags1 &= ~PLAYER_STATE1_IN_CUTSCENE; player->stateFlags1 &= ~PLAYER_STATE1_IN_CUTSCENE;
this->actor.parent = NULL; this->actor.parent = NULL;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BOMBCHU_BOWLING, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_BOMBCHU_BOWLING, true, this)) {
Actor_OfferGetItem(&this->actor, play, this->getItemId, 2000.0f, 1000.0f); Actor_OfferGetItem(&this->actor, play, this->getItemId, 2000.0f, 1000.0f);
} }
player->stateFlags1 |= PLAYER_STATE1_IN_CUTSCENE; player->stateFlags1 |= PLAYER_STATE1_IN_CUTSCENE;
@ -193,7 +193,7 @@ void EnBomBowlPit_GivePrize(EnBomBowlPit* this, PlayState* play) {
} }
void EnBomBowlPit_WaitTillPrizeGiven(EnBomBowlPit* this, PlayState* play) { void EnBomBowlPit_WaitTillPrizeGiven(EnBomBowlPit* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BOMBCHU_BOWLING, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_BOMBCHU_BOWLING, true, this)) {
this->actionFunc = EnBomBowlPit_Reset; this->actionFunc = EnBomBowlPit_Reset;
} else { } else {
Actor_OfferGetItem(&this->actor, play, this->getItemId, 2000.0f, 1000.0f); Actor_OfferGetItem(&this->actor, play, this->getItemId, 2000.0f, 1000.0f);

View File

@ -278,7 +278,7 @@ void EnBox_Fall(EnBox* this, PlayState* play) {
this->dyna.actor.shape.rot.z = 0; this->dyna.actor.shape.rot.z = 0;
this->dyna.actor.world.pos.y = this->dyna.actor.floorHeight; this->dyna.actor.world.pos.y = this->dyna.actor.floorHeight;
EnBox_SetupAction(this, EnBox_WaitOpen); EnBox_SetupAction(this, EnBox_WaitOpen);
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) {
OnePointCutscene_EndCutscene(play, this->unk_1AC); OnePointCutscene_EndCutscene(play, this->unk_1AC);
} }
} }

View File

@ -118,7 +118,7 @@ void EnCow_Init(Actor* thisx, PlayState* play) {
Collider_SetCylinder(play, &this->colliders[1], &this->actor, &sCylinderInit); Collider_SetCylinder(play, &this->colliders[1], &this->actor, &sCylinderInit);
func_809DEE9C(this); func_809DEE9C(this);
this->actionFunc = func_809DF96C; this->actionFunc = func_809DF96C;
if (GameInteractor_Should(GI_VB_DESPAWN_HORSE_RACE_COW, ( if (GameInteractor_Should(VB_DESPAWN_HORSE_RACE_COW, (
play->sceneNum == SCENE_LINKS_HOUSE && (!LINK_IS_ADULT || !Flags_GetEventChkInf(EVENTCHKINF_WON_COW_IN_MALONS_RACE)) play->sceneNum == SCENE_LINKS_HOUSE && (!LINK_IS_ADULT || !Flags_GetEventChkInf(EVENTCHKINF_WON_COW_IN_MALONS_RACE))
), this)) { ), this)) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
@ -260,7 +260,7 @@ void func_809DF96C(EnCow* this, PlayState* play) {
if ((this->actor.xzDistToPlayer < 150.0f) && if ((this->actor.xzDistToPlayer < 150.0f) &&
(ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) < 0x61A8)) { (ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) < 0x61A8)) {
DREG(53) = 0; DREG(53) = 0;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_COW, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_COW, true, this)) {
this->actionFunc = func_809DF8FC; this->actionFunc = func_809DF8FC;
this->actor.flags |= ACTOR_FLAG_WILL_TALK; this->actor.flags |= ACTOR_FLAG_WILL_TALK;
func_8002F2CC(&this->actor, play, 170.0f); func_8002F2CC(&this->actor, play, 170.0f);

View File

@ -456,7 +456,7 @@ void func_809EEA00(EnDivingGame* this, PlayState* play) {
if ((this->unk_292 == Message_GetState(&play->msgCtx) && Message_ShouldAdvance(play))) { if ((this->unk_292 == Message_GetState(&play->msgCtx) && Message_ShouldAdvance(play))) {
Message_CloseTextbox(play); Message_CloseTextbox(play);
this->actor.parent = NULL; this->actor.parent = NULL;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_DIVING_MINIGAME, true, &this->actor)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_DIVING_MINIGAME, true, &this->actor)) {
Actor_OfferGetItem(&this->actor, play, GI_SCALE_SILVER, 90.0f, 10.0f); Actor_OfferGetItem(&this->actor, play, GI_SCALE_SILVER, 90.0f, 10.0f);
} }
this->actionFunc = func_809EEA90; this->actionFunc = func_809EEA90;
@ -465,10 +465,10 @@ void func_809EEA00(EnDivingGame* this, PlayState* play) {
void func_809EEA90(EnDivingGame* this, PlayState* play) { void func_809EEA90(EnDivingGame* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_DIVING_MINIGAME, true, &this->actor)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_DIVING_MINIGAME, true, &this->actor)) {
this->actionFunc = func_809EEAF8; this->actionFunc = func_809EEAF8;
} else { } else {
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_DIVING_MINIGAME, true, &this->actor)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_DIVING_MINIGAME, true, &this->actor)) {
Actor_OfferGetItem(&this->actor, play, GI_SCALE_SILVER, 90.0f, 10.0f); Actor_OfferGetItem(&this->actor, play, GI_SCALE_SILVER, 90.0f, 10.0f);
} }
} }
@ -478,7 +478,7 @@ void func_809EEA90(EnDivingGame* this, PlayState* play) {
void func_809EEAF8(EnDivingGame* this, PlayState* play) { void func_809EEAF8(EnDivingGame* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(play)) || if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE && Message_ShouldAdvance(play)) ||
!GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_DIVING_MINIGAME, true, &this->actor)) { !GameInteractor_Should(VB_GIVE_ITEM_FROM_DIVING_MINIGAME, true, &this->actor)) {
// "Successful completion" // "Successful completion"
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST);
this->allRupeesThrown = this->state = this->phase = this->unk_2A2 = this->grabbedRupeesCounter = 0; this->allRupeesThrown = this->state = this->phase = this->unk_2A2 = this->grabbedRupeesCounter = 0;

View File

@ -397,7 +397,7 @@ void func_809EFDD0(EnDns* this, PlayState* play) {
void func_809EFEE8(EnDns* this, PlayState* play) { void func_809EFEE8(EnDns* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) { if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) {
Message_CloseTextbox(play); Message_CloseTextbox(play);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BUSINESS_SCRUB, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_BUSINESS_SCRUB, true, this)) {
func_809EFDD0(this, play); func_809EFDD0(this, play);
} }
this->actionFunc = func_809EFF50; this->actionFunc = func_809EFF50;
@ -405,7 +405,7 @@ void func_809EFEE8(EnDns* this, PlayState* play) {
} }
void func_809EFF50(EnDns* this, PlayState* play) { void func_809EFF50(EnDns* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_BUSINESS_SCRUB, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_BUSINESS_SCRUB, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = func_809EFF98; this->actionFunc = func_809EFF98;
} else { } else {

View File

@ -253,7 +253,7 @@ void EnDntNomal_TargetWait(EnDntNomal* this, PlayState* play) {
if (!LINK_IS_ADULT && !Flags_GetItemGetInf(ITEMGETINF_1D)) { if (!LINK_IS_ADULT && !Flags_GetItemGetInf(ITEMGETINF_1D)) {
this->hitCounter++; this->hitCounter++;
if (this->hitCounter >= 3) { if (this->hitCounter >= 3) {
if (!GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, &this->actor)) { if (!GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, &this->actor)) {
this->actionFunc = EnDntNomal_TargetGivePrize; this->actionFunc = EnDntNomal_TargetGivePrize;
} else { } else {
OnePointCutscene_Init(play, 4140, -99, &this->actor, MAIN_CAM); OnePointCutscene_Init(play, 4140, -99, &this->actor, MAIN_CAM);

View File

@ -90,7 +90,7 @@ void EnDs_DisplayOddPotionText(EnDs* this, PlayState* play) {
} }
void EnDs_GiveOddPotion(EnDs* this, PlayState* play) { void EnDs_GiveOddPotion(EnDs* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_TRADE_ODD_MUSHROOM, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_TRADE_ODD_MUSHROOM, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = EnDs_DisplayOddPotionText; this->actionFunc = EnDs_DisplayOddPotionText;
gSaveContext.timer2State = 0; gSaveContext.timer2State = 0;
@ -104,7 +104,7 @@ void EnDs_TalkAfterBrewOddPotion(EnDs* this, PlayState* play) {
Message_CloseTextbox(play); Message_CloseTextbox(play);
this->actionFunc = EnDs_GiveOddPotion; this->actionFunc = EnDs_GiveOddPotion;
u32 itemId = GI_ODD_POTION; u32 itemId = GI_ODD_POTION;
if (GameInteractor_Should(GI_VB_TRADE_ODD_MUSHROOM, true, this)) { if (GameInteractor_Should(VB_TRADE_ODD_MUSHROOM, true, this)) {
Actor_OfferGetItem(&this->actor, play, itemId, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, itemId, 10000.0f, 50.0f);
} }
} }
@ -127,7 +127,7 @@ void EnDs_BrewOddPotion2(EnDs* this, PlayState* play) {
this->brewTimer -= 1; this->brewTimer -= 1;
} else { } else {
this->actionFunc = EnDs_BrewOddPotion3; this->actionFunc = EnDs_BrewOddPotion3;
this->brewTimer = GameInteractor_Should(GI_VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 60 : 0; this->brewTimer = GameInteractor_Should(VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 60 : 0;
Flags_UnsetSwitch(play, 0x3F); Flags_UnsetSwitch(play, 0x3F);
} }
} }
@ -137,7 +137,7 @@ void EnDs_BrewOddPotion1(EnDs* this, PlayState* play) {
this->brewTimer -= 1; this->brewTimer -= 1;
} else { } else {
this->actionFunc = EnDs_BrewOddPotion2; this->actionFunc = EnDs_BrewOddPotion2;
this->brewTimer = GameInteractor_Should(GI_VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 20 : 0; this->brewTimer = GameInteractor_Should(VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 20 : 0;
} }
Math_StepToF(&this->unk_1E4, 1.0f, 0.01f); Math_StepToF(&this->unk_1E4, 1.0f, 0.01f);
@ -151,7 +151,7 @@ void EnDs_OfferOddPotion(EnDs* this, PlayState* play) {
switch (play->msgCtx.choiceIndex) { switch (play->msgCtx.choiceIndex) {
case 0: // yes case 0: // yes
this->actionFunc = EnDs_BrewOddPotion1; this->actionFunc = EnDs_BrewOddPotion1;
this->brewTimer = GameInteractor_Should(GI_VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 60 : 0; this->brewTimer = GameInteractor_Should(VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 60 : 0;
Flags_SetSwitch(play, 0x3F); Flags_SetSwitch(play, 0x3F);
play->msgCtx.msgMode = MSGMODE_PAUSED; play->msgCtx.msgMode = MSGMODE_PAUSED;
player->exchangeItemId = EXCH_ITEM_NONE; player->exchangeItemId = EXCH_ITEM_NONE;
@ -166,7 +166,7 @@ void EnDs_OfferOddPotion(EnDs* this, PlayState* play) {
s32 EnDs_CheckRupeesAndBottle() { s32 EnDs_CheckRupeesAndBottle() {
if (gSaveContext.rupees < 100) { if (gSaveContext.rupees < 100) {
return 0; return 0;
} else if (GameInteractor_Should(GI_VB_NEED_BOTTLE_FOR_GRANNYS_ITEM, Inventory_HasEmptyBottle() == 0, NULL)) { } else if (GameInteractor_Should(VB_NEED_BOTTLE_FOR_GRANNYS_ITEM, Inventory_HasEmptyBottle() == 0, NULL)) {
return 1; return 1;
} else { } else {
return 2; return 2;
@ -174,7 +174,7 @@ s32 EnDs_CheckRupeesAndBottle() {
} }
void EnDs_GiveBluePotion(EnDs* this, PlayState* play) { void EnDs_GiveBluePotion(EnDs* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_GRANNYS_SHOP, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_GRANNYS_SHOP, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = EnDs_Talk; this->actionFunc = EnDs_Talk;
} else { } else {
@ -198,7 +198,7 @@ void EnDs_OfferBluePotion(EnDs* this, PlayState* play) {
Rupees_ChangeBy(-100); Rupees_ChangeBy(-100);
this->actor.flags &= ~ACTOR_FLAG_WILL_TALK; this->actor.flags &= ~ACTOR_FLAG_WILL_TALK;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_GRANNYS_SHOP, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_GRANNYS_SHOP, true, this)) {
GetItemEntry itemEntry = ItemTable_Retrieve(GI_POTION_BLUE); GetItemEntry itemEntry = ItemTable_Retrieve(GI_POTION_BLUE);
Actor_OfferGetItem(&this->actor, play, GI_POTION_BLUE, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_POTION_BLUE, 10000.0f, 50.0f);
gSaveContext.pendingSale = itemEntry.itemId; gSaveContext.pendingSale = itemEntry.itemId;
@ -225,7 +225,7 @@ void EnDs_Wait(EnDs* this, PlayState* play) {
Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); Audio_PlaySoundGeneral(NA_SE_SY_TRE_BOX_APPEAR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
player->actor.textId = 0x504A; player->actor.textId = 0x504A;
this->actionFunc = EnDs_OfferOddPotion; this->actionFunc = EnDs_OfferOddPotion;
} else if (GameInteractor_Should(GI_VB_OFFER_BLUE_POTION, Flags_GetItemGetInf(ITEMGETINF_30), this)) { // Traded odd mushroom } else if (GameInteractor_Should(VB_OFFER_BLUE_POTION, Flags_GetItemGetInf(ITEMGETINF_30), this)) { // Traded odd mushroom
player->actor.textId = 0x500C; player->actor.textId = 0x500C;
this->actionFunc = EnDs_OfferBluePotion; this->actionFunc = EnDs_OfferBluePotion;
} else { } else {

View File

@ -377,7 +377,7 @@ void func_809FE4A4(EnDu* this, PlayState* play) {
play->msgCtx.ocarinaMode = OCARINA_MODE_00; play->msgCtx.ocarinaMode = OCARINA_MODE_00;
EnDu_SetupAction(this, func_809FE3C0); EnDu_SetupAction(this, func_809FE3C0);
} else if (play->msgCtx.ocarinaMode >= OCARINA_MODE_06) { } else if (play->msgCtx.ocarinaMode >= OCARINA_MODE_06) {
if (GameInteractor_Should(GI_VB_PLAY_DARUNIAS_JOY_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_DARUNIAS_JOY_CS, true, NULL)) {
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaWrongCs); play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaWrongCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
@ -386,7 +386,7 @@ void func_809FE4A4(EnDu* this, PlayState* play) {
play->msgCtx.ocarinaMode = OCARINA_MODE_04; play->msgCtx.ocarinaMode = OCARINA_MODE_04;
} else if (play->msgCtx.ocarinaMode == OCARINA_MODE_03) { } else if (play->msgCtx.ocarinaMode == OCARINA_MODE_03) {
Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
if (GameInteractor_Should(GI_VB_PLAY_DARUNIAS_JOY_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_DARUNIAS_JOY_CS, true, NULL)) {
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaCorrectCs); play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaCorrectCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
@ -554,7 +554,7 @@ void func_809FEB08(EnDu* this, PlayState* play) {
EnDu_SetupAction(this, func_809FE3C0); EnDu_SetupAction(this, func_809FE3C0);
return; return;
} }
if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_DARUNIAS_JOY_REWARD, CUR_UPG_VALUE(UPG_STRENGTH) <= 0, NULL)) { if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_DARUNIAS_JOY_REWARD, CUR_UPG_VALUE(UPG_STRENGTH) <= 0, NULL)) {
Flags_SetRandomizerInf(RAND_INF_DARUNIAS_JOY); Flags_SetRandomizerInf(RAND_INF_DARUNIAS_JOY);
this->actor.textId = 0x301C; this->actor.textId = 0x301C;
EnDu_SetupAction(this, func_809FEC14); EnDu_SetupAction(this, func_809FEC14);
@ -576,7 +576,7 @@ void func_809FEC14(EnDu* this, PlayState* play) {
} }
void func_809FEC70(EnDu* this, PlayState* play) { void func_809FEC70(EnDu* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_STRENGTH_1, true, NULL)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_STRENGTH_1, true, NULL)) {
this->actor.parent = NULL; this->actor.parent = NULL;
EnDu_SetupAction(this, func_809FECE4); EnDu_SetupAction(this, func_809FECE4);
} else { } else {

View File

@ -362,7 +362,7 @@ void EnExItem_TargetPrizeApproach(EnExItem* this, PlayState* play) {
Math_SmoothStepToS(&this->actor.shape.rot.y, -0x4000, 5, 0x1000, 0); Math_SmoothStepToS(&this->actor.shape.rot.y, -0x4000, 5, 0x1000, 0);
} }
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, &this->actor) && this->timer != 0) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, &this->actor) && this->timer != 0) {
if (this->prizeRotateTimer != 0) { if (this->prizeRotateTimer != 0) {
tmpf1 = play->view.lookAt.x - play->view.eye.x; tmpf1 = play->view.lookAt.x - play->view.eye.x;
tmpf2 = play->view.lookAt.y - 10.0f - play->view.eye.y; tmpf2 = play->view.lookAt.y - 10.0f - play->view.eye.y;
@ -388,7 +388,7 @@ void EnExItem_TargetPrizeApproach(EnExItem* this, PlayState* play) {
Player_SetCsActionWithHaltedActors(play, NULL, 7); Player_SetCsActionWithHaltedActors(play, NULL, 7);
this->actor.parent = NULL; this->actor.parent = NULL;
if (!GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, &this->actor)) { if (!GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, &this->actor)) {
GET_PLAYER(play)->stateFlags1 &= ~(PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_ITEM_OVER_HEAD); GET_PLAYER(play)->stateFlags1 &= ~(PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_ITEM_OVER_HEAD);
} }
@ -398,7 +398,7 @@ void EnExItem_TargetPrizeApproach(EnExItem* this, PlayState* play) {
getItemId = GI_BULLET_BAG_50; getItemId = GI_BULLET_BAG_50;
} }
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_TARGET_IN_WOODS, true, &this->actor)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_TARGET_IN_WOODS, true, &this->actor)) {
Actor_OfferGetItem(&this->actor, play, getItemId, 2000.0f, 1000.0f); Actor_OfferGetItem(&this->actor, play, getItemId, 2000.0f, 1000.0f);
} }
@ -407,7 +407,7 @@ void EnExItem_TargetPrizeApproach(EnExItem* this, PlayState* play) {
} }
void EnExItem_TargetPrizeGive(EnExItem* this, PlayState* play) { void EnExItem_TargetPrizeGive(EnExItem* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_TARGET_IN_WOODS, true, &this->actor)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_TARGET_IN_WOODS, true, &this->actor)) {
this->actionFunc = EnExItem_TargetPrizeFinish; this->actionFunc = EnExItem_TargetPrizeFinish;
} else { } else {
s32 getItemId = (CUR_UPG_VALUE(UPG_BULLET_BAG) == 2) ? GI_BULLET_BAG_50 : GI_BULLET_BAG_40; s32 getItemId = (CUR_UPG_VALUE(UPG_BULLET_BAG) == 2) ? GI_BULLET_BAG_50 : GI_BULLET_BAG_40;
@ -416,7 +416,7 @@ void EnExItem_TargetPrizeGive(EnExItem* this, PlayState* play) {
} }
void EnExItem_TargetPrizeFinish(EnExItem* this, PlayState* play) { void EnExItem_TargetPrizeFinish(EnExItem* this, PlayState* play) {
if (!GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_TARGET_IN_WOODS, true, &this->actor) || (Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) { if (!GameInteractor_Should(VB_GIVE_ITEM_FROM_TARGET_IN_WOODS, true, &this->actor) || (Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) {
// "Successful completion" // "Successful completion"
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST);
Flags_SetItemGetInf(ITEMGETINF_1D); Flags_SetItemGetInf(ITEMGETINF_1D);

View File

@ -947,7 +947,7 @@ void EnFr_SetReward(EnFr* this, PlayState* play) {
if (!(gSaveContext.eventChkInf[13] & sSongIndex[songIndex])) { if (!(gSaveContext.eventChkInf[13] & sSongIndex[songIndex])) {
gSaveContext.eventChkInf[13] |= sSongIndex[songIndex]; gSaveContext.eventChkInf[13] |= sSongIndex[songIndex];
GameInteractor_ExecuteOnFlagSet(FLAG_EVENT_CHECK_INF, (EVENTCHKINF_SONGS_FOR_FROGS_INDEX << 4) + sSongIndexShift[songIndex]); GameInteractor_ExecuteOnFlagSet(FLAG_EVENT_CHECK_INF, (EVENTCHKINF_SONGS_FOR_FROGS_INDEX << 4) + sSongIndexShift[songIndex]);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_FROGS, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_FROGS, true, this)) {
this->reward = GI_RUPEE_PURPLE; this->reward = GI_RUPEE_PURPLE;
} }
} else { } else {
@ -957,7 +957,7 @@ void EnFr_SetReward(EnFr* this, PlayState* play) {
if (!(gSaveContext.eventChkInf[13] & sSongIndex[songIndex])) { if (!(gSaveContext.eventChkInf[13] & sSongIndex[songIndex])) {
gSaveContext.eventChkInf[13] |= sSongIndex[songIndex]; gSaveContext.eventChkInf[13] |= sSongIndex[songIndex];
GameInteractor_ExecuteOnFlagSet(FLAG_EVENT_CHECK_INF, (EVENTCHKINF_SONGS_FOR_FROGS_INDEX << 4) + sSongIndexShift[songIndex]); GameInteractor_ExecuteOnFlagSet(FLAG_EVENT_CHECK_INF, (EVENTCHKINF_SONGS_FOR_FROGS_INDEX << 4) + sSongIndexShift[songIndex]);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_FROGS, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_FROGS, true, this)) {
this->reward = GI_HEART_PIECE; this->reward = GI_HEART_PIECE;
} }
} else { } else {
@ -967,7 +967,7 @@ void EnFr_SetReward(EnFr* this, PlayState* play) {
if (!(gSaveContext.eventChkInf[13] & sSongIndex[songIndex])) { if (!(gSaveContext.eventChkInf[13] & sSongIndex[songIndex])) {
gSaveContext.eventChkInf[13] |= sSongIndex[songIndex]; gSaveContext.eventChkInf[13] |= sSongIndex[songIndex];
GameInteractor_ExecuteOnFlagSet(FLAG_EVENT_CHECK_INF, (EVENTCHKINF_SONGS_FOR_FROGS_INDEX << 4) + sSongIndexShift[songIndex]); GameInteractor_ExecuteOnFlagSet(FLAG_EVENT_CHECK_INF, (EVENTCHKINF_SONGS_FOR_FROGS_INDEX << 4) + sSongIndexShift[songIndex]);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_FROGS, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_FROGS, true, this)) {
this->reward = GI_HEART_PIECE; this->reward = GI_HEART_PIECE;
} }
} else { } else {
@ -1019,14 +1019,14 @@ void EnFr_Deactivate(EnFr* this, PlayState* play) {
this->actionFunc = EnFr_Idle; this->actionFunc = EnFr_Idle;
} else { } else {
this->actionFunc = EnFr_GiveReward; this->actionFunc = EnFr_GiveReward;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_FROGS, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_FROGS, true, this)) {
Actor_OfferGetItem(&this->actor, play, this->reward, 30.0f, 100.0f); Actor_OfferGetItem(&this->actor, play, this->reward, 30.0f, 100.0f);
} }
} }
} }
void EnFr_GiveReward(EnFr* this, PlayState* play) { void EnFr_GiveReward(EnFr* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_FROGS, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_FROGS, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = EnFr_SetIdle; this->actionFunc = EnFr_SetIdle;
} else { } else {

View File

@ -134,7 +134,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) {
case GE1_TYPE_GATE_OPERATOR: case GE1_TYPE_GATE_OPERATOR:
this->hairstyle = GE1_HAIR_STRAIGHT; this->hairstyle = GE1_HAIR_STRAIGHT;
if (GameInteractor_Should(GI_VB_GERUDOS_BE_FRIENDLY, EnGe1_CheckCarpentersFreed(), NULL)) { if (GameInteractor_Should(VB_GERUDOS_BE_FRIENDLY, EnGe1_CheckCarpentersFreed(), NULL)) {
this->actionFunc = EnGe1_CheckGate_GateOp; this->actionFunc = EnGe1_CheckGate_GateOp;
} else { } else {
this->actionFunc = EnGe1_WatchForPlayerFrontOnly; this->actionFunc = EnGe1_WatchForPlayerFrontOnly;
@ -144,7 +144,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) {
case GE1_TYPE_NORMAL: case GE1_TYPE_NORMAL:
this->hairstyle = GE1_HAIR_STRAIGHT; this->hairstyle = GE1_HAIR_STRAIGHT;
if (GameInteractor_Should(GI_VB_GERUDOS_BE_FRIENDLY, EnGe1_CheckCarpentersFreed(), NULL)) { if (GameInteractor_Should(VB_GERUDOS_BE_FRIENDLY, EnGe1_CheckCarpentersFreed(), NULL)) {
this->actionFunc = EnGe1_SetNormalText; this->actionFunc = EnGe1_SetNormalText;
} else { } else {
this->actionFunc = EnGe1_WatchForAndSensePlayer; this->actionFunc = EnGe1_WatchForAndSensePlayer;
@ -174,7 +174,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) {
if (gSaveContext.eventInf[0] & 0x100) { if (gSaveContext.eventInf[0] & 0x100) {
this->actionFunc = EnGe1_TalkAfterGame_Archery; this->actionFunc = EnGe1_TalkAfterGame_Archery;
} else if (GameInteractor_Should(GI_VB_GERUDOS_BE_FRIENDLY, EnGe1_CheckCarpentersFreed(), NULL)) { } else if (GameInteractor_Should(VB_GERUDOS_BE_FRIENDLY, EnGe1_CheckCarpentersFreed(), NULL)) {
this->actionFunc = EnGe1_Wait_Archery; this->actionFunc = EnGe1_Wait_Archery;
} else { } else {
this->actionFunc = EnGe1_WatchForPlayerFrontOnly; this->actionFunc = EnGe1_WatchForPlayerFrontOnly;
@ -184,7 +184,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) {
case GE1_TYPE_TRAINING_GROUNDS_GUARD: case GE1_TYPE_TRAINING_GROUNDS_GUARD:
this->hairstyle = GE1_HAIR_STRAIGHT; this->hairstyle = GE1_HAIR_STRAIGHT;
if (GameInteractor_Should(GI_VB_GERUDOS_BE_FRIENDLY, EnGe1_CheckCarpentersFreed(), NULL)) { if (GameInteractor_Should(VB_GERUDOS_BE_FRIENDLY, EnGe1_CheckCarpentersFreed(), NULL)) {
this->actionFunc = EnGe1_CheckForCard_GTGGuard; this->actionFunc = EnGe1_CheckForCard_GTGGuard;
} else { } else {
this->actionFunc = EnGe1_WatchForPlayerFrontOnly; this->actionFunc = EnGe1_WatchForPlayerFrontOnly;
@ -519,7 +519,7 @@ void EnGe1_WaitTillItemGiven_Archery(EnGe1* this, PlayState* play) {
GetItemEntry getItemEntry = (GetItemEntry)GET_ITEM_NONE; GetItemEntry getItemEntry = (GetItemEntry)GET_ITEM_NONE;
s32 getItemId; s32 getItemId;
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY, true, this)) {
this->actionFunc = EnGe1_SetupWait_Archery; this->actionFunc = EnGe1_SetupWait_Archery;
if (this->stateFlags & GE1_STATE_GIVE_QUIVER) { if (this->stateFlags & GE1_STATE_GIVE_QUIVER) {
@ -542,7 +542,7 @@ void EnGe1_WaitTillItemGiven_Archery(EnGe1* this, PlayState* play) {
getItemId = GI_HEART_PIECE; getItemId = GI_HEART_PIECE;
} }
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY, true, this)) {
Actor_OfferGetItem(&this->actor, play, getItemId, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, getItemId, 10000.0f, 50.0f);
} }
} }
@ -571,7 +571,7 @@ void EnGe1_BeginGiveItem_Archery(EnGe1* this, PlayState* play) {
getItemId = GI_HEART_PIECE; getItemId = GI_HEART_PIECE;
} }
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY, true, this)) {
Actor_OfferGetItem(&this->actor, play, getItemId, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, getItemId, 10000.0f, 50.0f);
} }
} }

View File

@ -140,14 +140,14 @@ void EnGe2_Init(Actor* thisx, PlayState* play) {
switch (this->actor.params & 0xFF) { switch (this->actor.params & 0xFF) {
case GE2_TYPE_PATROLLING: case GE2_TYPE_PATROLLING:
EnGe2_ChangeAction(this, GE2_ACTION_WALK); EnGe2_ChangeAction(this, GE2_ACTION_WALK);
if (GameInteractor_Should(GI_VB_GERUDOS_BE_FRIENDLY, EnGe2_CheckCarpentersFreed(), NULL)) { if (GameInteractor_Should(VB_GERUDOS_BE_FRIENDLY, EnGe2_CheckCarpentersFreed(), NULL)) {
this->actor.update = EnGe2_UpdateFriendly; this->actor.update = EnGe2_UpdateFriendly;
this->actor.targetMode = 6; this->actor.targetMode = 6;
} }
break; break;
case GE2_TYPE_STATIONARY: case GE2_TYPE_STATIONARY:
EnGe2_ChangeAction(this, GE2_ACTION_STAND); EnGe2_ChangeAction(this, GE2_ACTION_STAND);
if (GameInteractor_Should(GI_VB_GERUDOS_BE_FRIENDLY, EnGe2_CheckCarpentersFreed(), NULL)) { if (GameInteractor_Should(VB_GERUDOS_BE_FRIENDLY, EnGe2_CheckCarpentersFreed(), NULL)) {
this->actor.update = EnGe2_UpdateFriendly; this->actor.update = EnGe2_UpdateFriendly;
this->actor.targetMode = 6; this->actor.targetMode = 6;
} }
@ -460,7 +460,7 @@ void EnGe2_WaitLookAtPlayer(EnGe2* this, PlayState* play) {
} }
void EnGe2_WaitTillCardGiven(EnGe2* this, PlayState* play) { void EnGe2_WaitTillCardGiven(EnGe2* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD, true, NULL)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD, true, NULL)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = EnGe2_SetActionAfterTalk; this->actionFunc = EnGe2_SetActionAfterTalk;
} else { } else {
@ -473,7 +473,7 @@ void EnGe2_GiveCard(EnGe2* this, PlayState* play) {
Message_CloseTextbox(play); Message_CloseTextbox(play);
this->actor.flags &= ~ACTOR_FLAG_WILL_TALK; this->actor.flags &= ~ACTOR_FLAG_WILL_TALK;
this->actionFunc = EnGe2_WaitTillCardGiven; this->actionFunc = EnGe2_WaitTillCardGiven;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD, true, NULL)) {
Actor_OfferGetItem(&this->actor, play, GI_GERUDO_CARD, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_GERUDO_CARD, 10000.0f, 50.0f);
} }
} }
@ -605,7 +605,7 @@ void EnGe2_Update(Actor* thisx, PlayState* play) {
} }
EnGe2_MoveAndBlink(this, play); EnGe2_MoveAndBlink(this, play);
if (GameInteractor_Should(GI_VB_GERUDOS_BE_FRIENDLY, EnGe2_CheckCarpentersFreed(), NULL) && !(this->stateFlags & GE2_STATE_KO)) { if (GameInteractor_Should(VB_GERUDOS_BE_FRIENDLY, EnGe2_CheckCarpentersFreed(), NULL) && !(this->stateFlags & GE2_STATE_KO)) {
this->actor.update = EnGe2_UpdateFriendly; this->actor.update = EnGe2_UpdateFriendly;
this->actor.targetMode = 6; this->actor.targetMode = 6;
} }
@ -630,7 +630,7 @@ void EnGe2_UpdateStunned(Actor* thisx, PlayState* play2) {
} }
CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base); CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base);
if (GameInteractor_Should(GI_VB_GERUDOS_BE_FRIENDLY, EnGe2_CheckCarpentersFreed(), NULL)) { if (GameInteractor_Should(VB_GERUDOS_BE_FRIENDLY, EnGe2_CheckCarpentersFreed(), NULL)) {
this->actor.update = EnGe2_UpdateFriendly; this->actor.update = EnGe2_UpdateFriendly;
this->actor.targetMode = 6; this->actor.targetMode = 6;
this->actor.colorFilterTimer = 0; this->actor.colorFilterTimer = 0;

View File

@ -141,7 +141,7 @@ void EnGe3_WaitLookAtPlayer(EnGe3* this, PlayState* play) {
} }
void EnGe3_WaitTillCardGiven(EnGe3* this, PlayState* play) { void EnGe3_WaitTillCardGiven(EnGe3* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD, true, NULL)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD, true, NULL)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = EnGe3_Wait; this->actionFunc = EnGe3_Wait;
} else { } else {
@ -154,7 +154,7 @@ void EnGe3_GiveCard(EnGe3* this, PlayState* play) {
Message_CloseTextbox(play); Message_CloseTextbox(play);
this->actor.flags &= ~ACTOR_FLAG_WILL_TALK; this->actor.flags &= ~ACTOR_FLAG_WILL_TALK;
this->actionFunc = EnGe3_WaitTillCardGiven; this->actionFunc = EnGe3_WaitTillCardGiven;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD, true, NULL)) {
Actor_OfferGetItem(&this->actor, play, GI_GERUDO_CARD, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_GERUDO_CARD, 10000.0f, 50.0f);
} }
} }

View File

@ -97,7 +97,7 @@ void EnGm_Destroy(Actor* thisx, PlayState* play) {
s32 func_80A3D7C8(void) { s32 func_80A3D7C8(void) {
if (LINK_AGE_IN_YEARS == YEARS_CHILD) { if (LINK_AGE_IN_YEARS == YEARS_CHILD) {
return 0; return 0;
} else if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_GIANTS_KNIFE_PURCHASE, ( } else if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_GIANTS_KNIFE_PURCHASE, (
!CHECK_OWNED_EQUIP_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BIGGORON) // Don't have giant's knife !CHECK_OWNED_EQUIP_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BIGGORON) // Don't have giant's knife
), NULL)) { ), NULL)) {
return 1; return 1;
@ -249,7 +249,7 @@ void EnGm_ProcessChoiceIndex(EnGm* this, PlayState* play) {
Message_ContinueTextbox(play, 0xC8); Message_ContinueTextbox(play, 0xC8);
this->actionFunc = func_80A3DD7C; this->actionFunc = func_80A3DD7C;
} else { } else {
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_MEDIGORON, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_MEDIGORON, true, this)) {
Actor_OfferGetItem(&this->actor, play, GI_SWORD_KNIFE, 415.0f, 10.0f); Actor_OfferGetItem(&this->actor, play, GI_SWORD_KNIFE, 415.0f, 10.0f);
} }
@ -265,7 +265,7 @@ void EnGm_ProcessChoiceIndex(EnGm* this, PlayState* play) {
} }
void func_80A3DF00(EnGm* this, PlayState* play) { void func_80A3DF00(EnGm* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_MEDIGORON, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_MEDIGORON, true, this)) {
Flags_SetRandomizerInf(RAND_INF_MERCHANTS_MEDIGORON); Flags_SetRandomizerInf(RAND_INF_MERCHANTS_MEDIGORON);
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = func_80A3DF60; this->actionFunc = func_80A3DF60;

View File

@ -283,7 +283,7 @@ s32 EnGo2_SpawnDust(EnGo2* this, u8 initialTimer, f32 scale, f32 scaleStep, s32
void EnGo2_GetItem(EnGo2* this, PlayState* play, s32 getItemId) { void EnGo2_GetItem(EnGo2* this, PlayState* play, s32 getItemId) {
this->getItemId = getItemId; this->getItemId = getItemId;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_GORON, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_GORON, true, this)) {
Actor_OfferGetItem(&this->actor, play, getItemId, this->actor.xzDistToPlayer + 1.0f, Actor_OfferGetItem(&this->actor, play, getItemId, this->actor.xzDistToPlayer + 1.0f,
fabsf(this->actor.yDistToPlayer) + 1.0f); fabsf(this->actor.yDistToPlayer) + 1.0f);
} }
@ -329,7 +329,7 @@ u16 EnGo2_GoronFireGenericGetTextId(EnGo2* this) {
u16 EnGo2_GetTextIdGoronCityRollingBig(PlayState* play, EnGo2* this) { u16 EnGo2_GetTextIdGoronCityRollingBig(PlayState* play, EnGo2* this) {
if (Flags_GetInfTable(INFTABLE_11E)) { if (Flags_GetInfTable(INFTABLE_11E)) {
return 0x3013; return 0x3013;
} else if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_CHILD_ROLLING_GORON_REWARD, CUR_CAPACITY(UPG_BOMB_BAG) >= 20, this) } else if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_CHILD_ROLLING_GORON_REWARD, CUR_CAPACITY(UPG_BOMB_BAG) >= 20, this)
&& this->waypoint > 7 && this->waypoint < 12) { && this->waypoint > 7 && this->waypoint < 12) {
return 0x3012; return 0x3012;
} else { } else {
@ -407,9 +407,9 @@ s16 EnGo2_UpdateTalkStateGoronDmtRollingSmall(PlayState* play, EnGo2* this) {
} }
u16 EnGo2_GetTextIdGoronDmtDcEntrance(PlayState* play, EnGo2* this) { u16 EnGo2_GetTextIdGoronDmtDcEntrance(PlayState* play, EnGo2* this) {
if (GameInteractor_Should(GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && LINK_IS_ADULT) { if (GameInteractor_Should(VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && LINK_IS_ADULT) {
return 0x3043; return 0x3043;
} else if (GameInteractor_Should(GI_VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED, CHECK_QUEST_ITEM(QUEST_GORON_RUBY), NULL)) { } else if (GameInteractor_Should(VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED, CHECK_QUEST_ITEM(QUEST_GORON_RUBY), NULL)) {
return 0x3027; return 0x3027;
} else { } else {
return Flags_GetEventChkInf(EVENTCHKINF_BOMBED_DODONGOS_CAVERN_ENTRANCE) ? 0x3021 : Flags_GetInfTable(INFTABLE_E0) ? 0x302A : 0x3008; return Flags_GetEventChkInf(EVENTCHKINF_BOMBED_DODONGOS_CAVERN_ENTRANCE) ? 0x3021 : Flags_GetInfTable(INFTABLE_E0) ? 0x302A : 0x3008;
@ -428,9 +428,9 @@ s16 EnGo2_UpdateTalkStateGoronDmtDcEntrance(PlayState* play, EnGo2* this) {
} }
u16 EnGo2_GetTextIdGoronCityEntrance(PlayState* play, EnGo2* this) { u16 EnGo2_GetTextIdGoronCityEntrance(PlayState* play, EnGo2* this) {
if (GameInteractor_Should(GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && LINK_IS_ADULT) { if (GameInteractor_Should(VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && LINK_IS_ADULT) {
return 0x3043; return 0x3043;
} else if (GameInteractor_Should(GI_VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED, CHECK_QUEST_ITEM(QUEST_GORON_RUBY), NULL)) { } else if (GameInteractor_Should(VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED, CHECK_QUEST_ITEM(QUEST_GORON_RUBY), NULL)) {
return 0x3027; return 0x3027;
} else { } else {
return Flags_GetInfTable(INFTABLE_F0) ? 0x3015 : 0x3014; return Flags_GetInfTable(INFTABLE_F0) ? 0x3015 : 0x3014;
@ -449,9 +449,9 @@ s16 EnGo2_UpdateTalkStateGoronCityEntrance(PlayState* play, EnGo2* this) {
} }
u16 EnGo2_GetTextIdGoronCityIsland(PlayState* play, EnGo2* this) { u16 EnGo2_GetTextIdGoronCityIsland(PlayState* play, EnGo2* this) {
if (GameInteractor_Should(GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && LINK_IS_ADULT) { if (GameInteractor_Should(VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && LINK_IS_ADULT) {
return 0x3043; return 0x3043;
} else if (GameInteractor_Should(GI_VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED, CHECK_QUEST_ITEM(QUEST_GORON_RUBY), NULL)) { } else if (GameInteractor_Should(VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED, CHECK_QUEST_ITEM(QUEST_GORON_RUBY), NULL)) {
return 0x3027; return 0x3027;
} else { } else {
return Flags_GetInfTable(INFTABLE_F4) ? 0x3017 : 0x3016; return Flags_GetInfTable(INFTABLE_F4) ? 0x3017 : 0x3016;
@ -470,9 +470,9 @@ s16 EnGo2_UpdateTalkStateGoronCityIsland(PlayState* play, EnGo2* this) {
} }
u16 EnGo2_GetTextIdGoronCityLowestFloor(PlayState* play, EnGo2* this) { u16 EnGo2_GetTextIdGoronCityLowestFloor(PlayState* play, EnGo2* this) {
if (GameInteractor_Should(GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && LINK_IS_ADULT) { if (GameInteractor_Should(VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && LINK_IS_ADULT) {
return 0x3043; return 0x3043;
} else if (GameInteractor_Should(GI_VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED, CHECK_QUEST_ITEM(QUEST_GORON_RUBY), NULL)) { } else if (GameInteractor_Should(VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED, CHECK_QUEST_ITEM(QUEST_GORON_RUBY), NULL)) {
return 0x3027; return 0x3027;
} else { } else {
return CUR_UPG_VALUE(UPG_STRENGTH) != 0 ? 0x302C return CUR_UPG_VALUE(UPG_STRENGTH) != 0 ? 0x302C
@ -496,13 +496,13 @@ s16 EnGo2_UpdateTalkStateGoronCityLowestFloor(PlayState* play, EnGo2* this) {
u16 EnGo2_GetTextIdGoronCityLink(PlayState* play, EnGo2* this) { u16 EnGo2_GetTextIdGoronCityLink(PlayState* play, EnGo2* this) {
// In case a hook neglects to set the override, fall back to the first dialogue // In case a hook neglects to set the override, fall back to the first dialogue
u16 overrideTextId = 0x3030; u16 overrideTextId = 0x3030;
if (GameInteractor_Should(GI_VB_OVERRIDE_LINK_THE_GORON_DIALOGUE, false, &overrideTextId)) { if (GameInteractor_Should(VB_OVERRIDE_LINK_THE_GORON_DIALOGUE, false, &overrideTextId)) {
return overrideTextId; return overrideTextId;
} }
if (GameInteractor_Should(GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL)) { if (GameInteractor_Should(VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL)) {
return Flags_GetInfTable(INFTABLE_10F) ? 0x3042 : 0x3041; return Flags_GetInfTable(INFTABLE_10F) ? 0x3042 : 0x3041;
} else if (GameInteractor_Should(GI_VB_GORONS_CONSIDER_TUNIC_COLLECTED, CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON), NULL)) { } else if (GameInteractor_Should(VB_GORONS_CONSIDER_TUNIC_COLLECTED, CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON), NULL)) {
return Flags_GetInfTable(INFTABLE_SPOKE_TO_GORON_LINK) ? 0x3038 : 0x3037; return Flags_GetInfTable(INFTABLE_SPOKE_TO_GORON_LINK) ? 0x3038 : 0x3037;
} else if (Flags_GetInfTable(INFTABLE_STOPPED_GORON_LINKS_ROLLING)) { } else if (Flags_GetInfTable(INFTABLE_STOPPED_GORON_LINKS_ROLLING)) {
this->unk_20C = 0; this->unk_20C = 0;
@ -568,7 +568,7 @@ s16 EnGo2_UpdateTalkStateGoronCityLink(PlayState* play, EnGo2* this) {
u16 EnGo2_GetTextIdGoronDmtBiggoron(PlayState* play, EnGo2* this) { u16 EnGo2_GetTextIdGoronDmtBiggoron(PlayState* play, EnGo2* this) {
Player* player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
if (GameInteractor_Should(GI_VB_BIGGORON_CONSIDER_TRADE_COMPLETE, gSaveContext.bgsFlag, NULL)) { if (GameInteractor_Should(VB_BIGGORON_CONSIDER_TRADE_COMPLETE, gSaveContext.bgsFlag, NULL)) {
player->exchangeItemId = EXCH_ITEM_CLAIM_CHECK; player->exchangeItemId = EXCH_ITEM_CLAIM_CHECK;
return 0x305E; return 0x305E;
} else if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_CLAIM_CHECK) { } else if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_CLAIM_CHECK) {
@ -590,7 +590,7 @@ s16 EnGo2_UpdateTalkStateGoronDmtBiggoron(PlayState* play, EnGo2* this) {
switch (EnGo2_GetDialogState(this, play)) { switch (EnGo2_GetDialogState(this, play)) {
case TEXT_STATE_DONE: case TEXT_STATE_DONE:
if (this->actor.textId == 0x305E) { if (this->actor.textId == 0x305E) {
if (!GameInteractor_Should(GI_VB_BIGGORON_CONSIDER_SWORD_COLLECTED, gSaveContext.bgsFlag, NULL)) { if (!GameInteractor_Should(VB_BIGGORON_CONSIDER_SWORD_COLLECTED, gSaveContext.bgsFlag, NULL)) {
Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_DMT_TRADE_CLAIM_CHECK); Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_DMT_TRADE_CLAIM_CHECK);
EnGo2_GetItem(this, play, GI_SWORD_BGS); EnGo2_GetItem(this, play, GI_SWORD_BGS);
this->actionFunc = EnGo2_SetupGetItem; this->actionFunc = EnGo2_SetupGetItem;
@ -1022,7 +1022,7 @@ void EnGo2_BiggoronSetTextId(EnGo2* this, PlayState* play, Player* player) {
u16 textId; u16 textId;
if ((this->actor.params & 0x1F) == GORON_DMT_BIGGORON) { if ((this->actor.params & 0x1F) == GORON_DMT_BIGGORON) {
if (GameInteractor_Should(GI_VB_BIGGORON_CONSIDER_TRADE_COMPLETE, gSaveContext.bgsFlag, NULL)) { if (GameInteractor_Should(VB_BIGGORON_CONSIDER_TRADE_COMPLETE, gSaveContext.bgsFlag, NULL)) {
if (func_8002F368(play) == EXCH_ITEM_CLAIM_CHECK) { if (func_8002F368(play) == EXCH_ITEM_CLAIM_CHECK) {
this->actor.textId = 0x3003; this->actor.textId = 0x3003;
} else { } else {
@ -1031,18 +1031,18 @@ void EnGo2_BiggoronSetTextId(EnGo2* this, PlayState* play, Player* player) {
player->actor.textId = this->actor.textId; player->actor.textId = this->actor.textId;
} else if ( } else if (
!GameInteractor_Should(GI_VB_BIGGORON_CONSIDER_SWORD_COLLECTED, gSaveContext.bgsFlag, NULL) && !GameInteractor_Should(VB_BIGGORON_CONSIDER_SWORD_COLLECTED, gSaveContext.bgsFlag, NULL) &&
(INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_CLAIM_CHECK) (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_CLAIM_CHECK)
) { ) {
if (func_8002F368(play) == EXCH_ITEM_CLAIM_CHECK) { if (func_8002F368(play) == EXCH_ITEM_CLAIM_CHECK) {
if (GameInteractor_Should(GI_VB_BIGGORON_CONSIDER_SWORD_FORGED, Environment_GetBgsDayCount() >= 3, NULL)) { if (GameInteractor_Should(VB_BIGGORON_CONSIDER_SWORD_FORGED, Environment_GetBgsDayCount() >= 3, NULL)) {
textId = 0x305E; textId = 0x305E;
} else { } else {
textId = 0x305D; textId = 0x305D;
} }
this->actor.textId = textId; this->actor.textId = textId;
} else { } else {
if (GameInteractor_Should(GI_VB_BIGGORON_CONSIDER_SWORD_FORGED, Environment_GetBgsDayCount() >= 3, NULL)) { if (GameInteractor_Should(VB_BIGGORON_CONSIDER_SWORD_FORGED, Environment_GetBgsDayCount() >= 3, NULL)) {
textId = 0x3002; textId = 0x3002;
} else { } else {
textId = 0x305D; textId = 0x305D;
@ -1171,8 +1171,8 @@ s32 EnGo2_IsCameraModified(EnGo2* this, PlayState* play) {
(this->actor.params & 0x1F) == GORON_MARKET_BAZAAR) { (this->actor.params & 0x1F) == GORON_MARKET_BAZAAR) {
return true; return true;
} else if ( } else if (
!GameInteractor_Should(GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && !GameInteractor_Should(VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) &&
GameInteractor_Should(GI_VB_GORONS_CONSIDER_TUNIC_COLLECTED, CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON), NULL) GameInteractor_Should(VB_GORONS_CONSIDER_TUNIC_COLLECTED, CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON), NULL)
) { ) {
return true; return true;
} else { } else {
@ -1231,8 +1231,8 @@ void EnGo2_SelectGoronWakingUp(EnGo2* this) {
break; break;
case GORON_CITY_LINK: case GORON_CITY_LINK:
if ( if (
!GameInteractor_Should(GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && !GameInteractor_Should(VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) &&
GameInteractor_Should(GI_VB_GORONS_CONSIDER_TUNIC_COLLECTED, CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON), NULL) GameInteractor_Should(VB_GORONS_CONSIDER_TUNIC_COLLECTED, CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON), NULL)
) { ) {
EnGo2_WakingUp(this); EnGo2_WakingUp(this);
break; break;
@ -1561,7 +1561,7 @@ void EnGo2_Init(Actor* thisx, PlayState* play) {
case GORON_CITY_LOWEST_FLOOR: case GORON_CITY_LOWEST_FLOOR:
case GORON_CITY_STAIRWELL: case GORON_CITY_STAIRWELL:
case GORON_CITY_LOST_WOODS: case GORON_CITY_LOST_WOODS:
if (!GameInteractor_Should(GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && LINK_IS_ADULT) { if (!GameInteractor_Should(VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && LINK_IS_ADULT) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
} }
this->actionFunc = EnGo2_CurledUp; this->actionFunc = EnGo2_CurledUp;
@ -1577,8 +1577,8 @@ void EnGo2_Init(Actor* thisx, PlayState* play) {
Path_CopyLastPoint(this->path, &this->actor.world.pos); Path_CopyLastPoint(this->path, &this->actor.world.pos);
this->actor.home.pos = this->actor.world.pos; this->actor.home.pos = this->actor.world.pos;
if ( if (
!GameInteractor_Should(GI_VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) && !GameInteractor_Should(VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE), NULL) &&
GameInteractor_Should(GI_VB_GORONS_CONSIDER_TUNIC_COLLECTED, CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON), NULL) GameInteractor_Should(VB_GORONS_CONSIDER_TUNIC_COLLECTED, CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON), NULL)
) { ) {
EnGo2_GetItemAnimation(this, play); EnGo2_GetItemAnimation(this, play);
} else { } else {
@ -1795,7 +1795,7 @@ void EnGo2_ReverseRolling(EnGo2* this, PlayState* play) {
} }
void EnGo2_SetupGetItem(EnGo2* this, PlayState* play) { void EnGo2_SetupGetItem(EnGo2* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_GORON, true, NULL)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_GORON, true, NULL)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = EnGo2_SetGetItem; this->actionFunc = EnGo2_SetGetItem;
} else { } else {
@ -1804,7 +1804,7 @@ void EnGo2_SetupGetItem(EnGo2* this, PlayState* play) {
} }
void EnGo2_SetGetItem(EnGo2* this, PlayState* play) { void EnGo2_SetGetItem(EnGo2* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_GORON, true, NULL)) { if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_GORON, true, NULL)) {
this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
switch (this->getItemId) { switch (this->getItemId) {
case GI_CLAIM_CHECK: case GI_CLAIM_CHECK:
@ -1816,7 +1816,7 @@ void EnGo2_SetGetItem(EnGo2* this, PlayState* play) {
EnGo2_GetItemAnimation(this, play); EnGo2_GetItemAnimation(this, play);
return; return;
case GI_SWORD_BGS: case GI_SWORD_BGS:
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_GORON, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_GORON, true, NULL)) {
gSaveContext.bgsFlag = true; gSaveContext.bgsFlag = true;
} }
break; break;
@ -1837,12 +1837,12 @@ void EnGo2_BiggoronEyedrops(EnGo2* this, PlayState* play) {
this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; this->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
this->actor.shape.rot.y += 0x5B0; this->actor.shape.rot.y += 0x5B0;
this->trackingMode = NPC_TRACKING_NONE; this->trackingMode = NPC_TRACKING_NONE;
this->animTimer = !GameInteractor_Should(GI_VB_PLAY_EYEDROPS_CS, true, NULL) ? 0 : (this->skelAnime.endFrame + 60.0f + 60.0f); // eyeDrops animation timer this->animTimer = !GameInteractor_Should(VB_PLAY_EYEDROPS_CS, true, NULL) ? 0 : (this->skelAnime.endFrame + 60.0f + 60.0f); // eyeDrops animation timer
this->eyeMouthTexState = 2; this->eyeMouthTexState = 2;
this->unk_20C = 0; this->unk_20C = 0;
this->goronState++; this->goronState++;
func_800F483C(0x28, 5); func_800F483C(0x28, 5);
if (GameInteractor_Should(GI_VB_PLAY_EYEDROPS_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_EYEDROPS_CS, true, NULL)) {
OnePointCutscene_Init(play, 4190, -99, &this->actor, MAIN_CAM); OnePointCutscene_Init(play, 4190, -99, &this->actor, MAIN_CAM);
} }
break; break;

View File

@ -79,7 +79,7 @@ void EnHs_Init(Actor* thisx, PlayState* play) {
// "chicken shop (adult era)" // "chicken shop (adult era)"
osSyncPrintf(VT_FGCOL(CYAN) " ヒヨコの店(大人の時) \n" VT_RST); osSyncPrintf(VT_FGCOL(CYAN) " ヒヨコの店(大人の時) \n" VT_RST);
func_80A6E3A0(this, func_80A6E9AC); func_80A6E3A0(this, func_80A6E9AC);
if (GameInteractor_Should(GI_VB_DESPAWN_GROG, Flags_GetItemGetInf(ITEMGETINF_30), this)) { if (GameInteractor_Should(VB_DESPAWN_GROG, Flags_GetItemGetInf(ITEMGETINF_30), this)) {
// "chicken shop closed" // "chicken shop closed"
osSyncPrintf(VT_FGCOL(CYAN) " ヒヨコ屋閉店 \n" VT_RST); osSyncPrintf(VT_FGCOL(CYAN) " ヒヨコ屋閉店 \n" VT_RST);
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
@ -130,7 +130,7 @@ void func_80A6E5EC(EnHs* this, PlayState* play) {
void func_80A6E630(EnHs* this, PlayState* play) { void func_80A6E630(EnHs* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) { if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) {
if (GameInteractor_Should(GI_VB_TRADE_TIMER_ODD_MUSHROOM, true, NULL)) { if (GameInteractor_Should(VB_TRADE_TIMER_ODD_MUSHROOM, true, NULL)) {
func_80088AA0(180); func_80088AA0(180);
gSaveContext.eventInf[1] &= ~1; gSaveContext.eventInf[1] &= ~1;
} }
@ -157,7 +157,7 @@ void func_80A6E70C(EnHs* this, PlayState* play) {
} }
void func_80A6E740(EnHs* this, PlayState* play) { void func_80A6E740(EnHs* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_TRADE_COJIRO, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_TRADE_COJIRO, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_LW_TRADE_COJIRO); Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_LW_TRADE_COJIRO);
func_80A6E3A0(this, func_80A6E630); func_80A6E3A0(this, func_80A6E630);
@ -173,7 +173,7 @@ void func_80A6E7BC(EnHs* this, PlayState* play) {
switch (play->msgCtx.choiceIndex) { switch (play->msgCtx.choiceIndex) {
case 0: case 0:
func_80A6E3A0(this, func_80A6E740); func_80A6E3A0(this, func_80A6E740);
if (GameInteractor_Should(GI_VB_TRADE_COJIRO, true, this)) { if (GameInteractor_Should(VB_TRADE_COJIRO, true, this)) {
Actor_OfferGetItem(&this->actor, play, GI_ODD_MUSHROOM, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_ODD_MUSHROOM, 10000.0f, 50.0f);
} }
break; break;

View File

@ -660,7 +660,7 @@ s16 func_80A70058(PlayState* play, Actor* thisx) {
gSaveContext.dogParams = 0; gSaveContext.dogParams = 0;
break; break;
case 0x709F: case 0x709F:
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_LOST_DOG, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_LOST_DOG, true, this)) {
func_80A6F7CC(this, play, Flags_GetInfTable(INFTABLE_191) ? GI_RUPEE_BLUE : GI_HEART_PIECE); func_80A6F7CC(this, play, Flags_GetInfTable(INFTABLE_191) ? GI_RUPEE_BLUE : GI_HEART_PIECE);
this->actionFunc = func_80A714C4; this->actionFunc = func_80A714C4;
} }

View File

@ -1439,7 +1439,7 @@ void func_80A781CC(Actor* thisx, PlayState* play) {
if (!Play_InCsMode(play)) { if (!Play_InCsMode(play)) {
this->actor.update = EnIk_Update; this->actor.update = EnIk_Update;
this->actor.draw = EnIk_Draw; this->actor.draw = EnIk_Draw;
if (GameInteractor_Should(GI_VB_NABOORU_KNUCKLE_DEATH_SCENE, true, this)) { if (GameInteractor_Should(VB_NABOORU_KNUCKLE_DEATH_SCENE, true, this)) {
Cutscene_SetSegment(play, gSpiritBossNabooruKnuckleDefeatCs); Cutscene_SetSegment(play, gSpiritBossNabooruKnuckleDefeatCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
Actor_SetScale(&this->actor, 0.01f); Actor_SetScale(&this->actor, 0.01f);

View File

@ -128,7 +128,7 @@ void func_80A8910C(EnJs* this, PlayState* play) {
} }
void func_80A89160(EnJs* this, PlayState* play) { void func_80A89160(EnJs* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_CARPET_SALESMAN, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_CARPET_SALESMAN, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
En_Js_SetupAction(this, func_80A8910C); En_Js_SetupAction(this, func_80A8910C);
Flags_SetRandomizerInf(RAND_INF_MERCHANTS_CARPET_SALESMAN); Flags_SetRandomizerInf(RAND_INF_MERCHANTS_CARPET_SALESMAN);

View File

@ -1027,7 +1027,7 @@ s32 EnKo_CanSpawn(EnKo* this, PlayState* play) {
} }
case SCENE_LOST_WOODS: case SCENE_LOST_WOODS:
return GameInteractor_Should(GI_VB_SPAWN_LW_FADO, ( return GameInteractor_Should(VB_SPAWN_LW_FADO, (
(INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_ODD_POTION) ? true : false (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_ODD_POTION) ? true : false
), this); ), this);
default: default:
@ -1175,7 +1175,7 @@ void func_80A99048(EnKo* this, PlayState* play) {
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_ELF, this->actor.world.pos.x, Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_ELF, this->actor.world.pos.x,
this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 3); this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 3);
if (ENKO_TYPE == ENKO_TYPE_CHILD_3) { if (ENKO_TYPE == ENKO_TYPE_CHILD_3) {
if (!GameInteractor_Should(GI_VB_OPEN_KOKIRI_FOREST, CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD), this)) { if (!GameInteractor_Should(VB_OPEN_KOKIRI_FOREST, CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD), this)) {
this->collider.dim.height += 200; this->collider.dim.height += 200;
this->actionFunc = func_80A995CC; this->actionFunc = func_80A995CC;
return; return;
@ -1211,7 +1211,7 @@ void func_80A99438(EnKo* this, PlayState* play) {
} }
void func_80A99504(EnKo* this, PlayState* play) { void func_80A99504(EnKo* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_TRADE_ODD_POTION, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_TRADE_ODD_POTION, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = func_80A99560; this->actionFunc = func_80A99560;
} else { } else {

View File

@ -73,7 +73,7 @@ static AnimationInfo sAnimationInfo[] = {
u16 EnKz_GetTextNoMaskChild(PlayState* play, EnKz* this) { u16 EnKz_GetTextNoMaskChild(PlayState* play, EnKz* this) {
Player* player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
if (GameInteractor_Should(GI_VB_KING_ZORA_THANK_CHILD, ( if (GameInteractor_Should(VB_KING_ZORA_THANK_CHILD, (
CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE) CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)
), this)) { ), this)) {
return 0x402B; return 0x402B;
@ -91,7 +91,7 @@ u16 EnKz_GetTextNoMaskAdult(PlayState* play, EnKz* this) {
// this works because both ITEM_NONE and later trade items are > ITEM_FROG // this works because both ITEM_NONE and later trade items are > ITEM_FROG
if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_FROG) { if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_FROG) {
if (!Flags_GetInfTable(INFTABLE_139)) { if (!Flags_GetInfTable(INFTABLE_139)) {
if (!GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_THAWING_KING_ZORA, ( if (!GameInteractor_Should(VB_GIVE_ITEM_FROM_THAWING_KING_ZORA, (
!CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_ZORA) !CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_ZORA)
), this)) { ), this)) {
return 0x401F; return 0x401F;
@ -242,7 +242,7 @@ void func_80A9CB18(EnKz* this, PlayState* play) {
Player* player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
if (func_80A9C95C(play, this, &this->interactInfo.talkState, 340.0f, EnKz_GetText, func_80A9C6C0)) { if (func_80A9C95C(play, this, &this->interactInfo.talkState, 340.0f, EnKz_GetText, func_80A9C6C0)) {
if (GameInteractor_Should(GI_VB_BE_ABLE_TO_EXCHANGE_RUTOS_LETTER, (this->actor.textId == 0x401A), this) && if (GameInteractor_Should(VB_BE_ABLE_TO_EXCHANGE_RUTOS_LETTER, (this->actor.textId == 0x401A), this) &&
!Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED)) !Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED))
{ {
if (func_8002F368(play) == EXCH_ITEM_LETTER_RUTO) { if (func_8002F368(play) == EXCH_ITEM_LETTER_RUTO) {
@ -258,7 +258,7 @@ void func_80A9CB18(EnKz* this, PlayState* play) {
if (LINK_IS_ADULT) { if (LINK_IS_ADULT) {
if ((INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_PRESCRIPTION) && if ((INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_PRESCRIPTION) &&
(func_8002F368(play) == EXCH_ITEM_PRESCRIPTION)) { (func_8002F368(play) == EXCH_ITEM_PRESCRIPTION)) {
if (GameInteractor_Should(GI_VB_TRADE_PRESCRIPTION, true, this)) { if (GameInteractor_Should(VB_TRADE_PRESCRIPTION, true, this)) {
this->actor.textId = 0x4014; this->actor.textId = 0x4014;
this->sfxPlayed = false; this->sfxPlayed = false;
player->actor.textId = this->actor.textId; player->actor.textId = this->actor.textId;
@ -273,7 +273,7 @@ void func_80A9CB18(EnKz* this, PlayState* play) {
player->actor.textId = this->actor.textId; player->actor.textId = this->actor.textId;
} else { } else {
this->actor.textId = this->actor.textId =
!GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_THAWING_KING_ZORA, !GameInteractor_Should(VB_GIVE_ITEM_FROM_THAWING_KING_ZORA,
(!CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_ZORA)), this) (!CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_ZORA)), this)
? 0x401F ? 0x401F
: 0x4012; : 0x4012;
@ -345,7 +345,7 @@ void EnKz_Init(Actor* thisx, PlayState* play) {
this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
Animation_ChangeByInfo(&this->skelanime, sAnimationInfo, ENKZ_ANIM_0); Animation_ChangeByInfo(&this->skelanime, sAnimationInfo, ENKZ_ANIM_0);
if (GameInteractor_Should(GI_VB_KING_ZORA_BE_MOVED, ( if (GameInteractor_Should(VB_KING_ZORA_BE_MOVED, (
Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED) Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED)
), this)) { ), this)) {
EnKz_SetMovedPos(this, play); EnKz_SetMovedPos(this, play);
@ -448,8 +448,8 @@ void EnKz_SetupGetItem(EnKz* this, PlayState* play) {
f32 yRange; f32 yRange;
if (Actor_HasParent(&this->actor, play) || ( if (Actor_HasParent(&this->actor, play) || (
(this->isTrading && !GameInteractor_Should(GI_VB_TRADE_PRESCRIPTION, true, this)) || (this->isTrading && !GameInteractor_Should(VB_TRADE_PRESCRIPTION, true, this)) ||
(!this->isTrading && !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_THAWING_KING_ZORA, true, this)) (!this->isTrading && !GameInteractor_Should(VB_GIVE_ITEM_FROM_THAWING_KING_ZORA, true, this))
)) { )) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->interactInfo.talkState = NPC_TALK_STATE_TALKING; this->interactInfo.talkState = NPC_TALK_STATE_TALKING;
@ -469,7 +469,7 @@ void EnKz_SetupGetItem(EnKz* this, PlayState* play) {
void EnKz_StartTimer(EnKz* this, PlayState* play) { void EnKz_StartTimer(EnKz* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) { if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) {
if (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_FROG && GameInteractor_Should(GI_VB_TRADE_TIMER_FROG, true, NULL)) { if (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_FROG && GameInteractor_Should(VB_TRADE_TIMER_FROG, true, NULL)) {
func_80088AA0(180); // start timer2 with 3 minutes func_80088AA0(180); // start timer2 with 3 minutes
gSaveContext.eventInf[1] &= ~1; gSaveContext.eventInf[1] &= ~1;
} }

View File

@ -91,8 +91,8 @@ static void* sEyeTextures[] = {
}; };
u16 EnMa1_GetText(PlayState* play, Actor* thisx) { u16 EnMa1_GetText(PlayState* play, Actor* thisx) {
bool malonReturnedFromCastle = GameInteractor_Should(GI_VB_MALON_RETURN_FROM_CASTLE, Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE), NULL); bool malonReturnedFromCastle = GameInteractor_Should(VB_MALON_RETURN_FROM_CASTLE, Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE), NULL);
bool malonTaughtEponasSong = GameInteractor_Should(GI_VB_MALON_ALREADY_TAUGHT_EPONAS_SONG, CHECK_QUEST_ITEM(QUEST_SONG_EPONA), NULL); bool malonTaughtEponasSong = GameInteractor_Should(VB_MALON_ALREADY_TAUGHT_EPONAS_SONG, CHECK_QUEST_ITEM(QUEST_SONG_EPONA), NULL);
u16 faceReaction = Text_GetFaceReaction(play, 0x17); u16 faceReaction = Text_GetFaceReaction(play, 0x17);
if (faceReaction != 0) { if (faceReaction != 0) {
@ -185,7 +185,7 @@ s16 func_80AA0778(PlayState* play, Actor* thisx) {
} }
s32 func_80AA08C4(EnMa1* this, PlayState* play) { s32 func_80AA08C4(EnMa1* this, PlayState* play) {
bool malonReturnedFromCastle = GameInteractor_Should(GI_VB_MALON_RETURN_FROM_CASTLE, Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE), NULL); bool malonReturnedFromCastle = GameInteractor_Should(VB_MALON_RETURN_FROM_CASTLE, Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE), NULL);
if ((this->actor.shape.rot.z == 3) && (gSaveContext.sceneSetupIndex == 5)) { if ((this->actor.shape.rot.z == 3) && (gSaveContext.sceneSetupIndex == 5)) {
return 1; return 1;
@ -269,8 +269,8 @@ void func_80AA0B74(EnMa1* this) {
void EnMa1_Init(Actor* thisx, PlayState* play) { void EnMa1_Init(Actor* thisx, PlayState* play) {
EnMa1* this = (EnMa1*)thisx; EnMa1* this = (EnMa1*)thisx;
bool malonReturnedFromCastle = GameInteractor_Should(GI_VB_MALON_RETURN_FROM_CASTLE, Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE), NULL); bool malonReturnedFromCastle = GameInteractor_Should(VB_MALON_RETURN_FROM_CASTLE, Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE), NULL);
bool malonTaughtEponasSong = GameInteractor_Should(GI_VB_MALON_ALREADY_TAUGHT_EPONAS_SONG, CHECK_QUEST_ITEM(QUEST_SONG_EPONA), NULL); bool malonTaughtEponasSong = GameInteractor_Should(VB_MALON_ALREADY_TAUGHT_EPONAS_SONG, CHECK_QUEST_ITEM(QUEST_SONG_EPONA), NULL);
s32 pad; s32 pad;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 18.0f); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 18.0f);
@ -306,8 +306,8 @@ void EnMa1_Destroy(Actor* thisx, PlayState* play) {
} }
void func_80AA0D88(EnMa1* this, PlayState* play) { void func_80AA0D88(EnMa1* this, PlayState* play) {
bool malonReturnedFromCastle = GameInteractor_Should(GI_VB_MALON_RETURN_FROM_CASTLE, Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE), NULL); bool malonReturnedFromCastle = GameInteractor_Should(VB_MALON_RETURN_FROM_CASTLE, Flags_GetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE), NULL);
bool malonTaughtEponasSong = GameInteractor_Should(GI_VB_MALON_ALREADY_TAUGHT_EPONAS_SONG, CHECK_QUEST_ITEM(QUEST_SONG_EPONA), NULL); bool malonTaughtEponasSong = GameInteractor_Should(VB_MALON_ALREADY_TAUGHT_EPONAS_SONG, CHECK_QUEST_ITEM(QUEST_SONG_EPONA), NULL);
if (this->interactInfo.talkState != NPC_TALK_STATE_IDLE) { if (this->interactInfo.talkState != NPC_TALK_STATE_IDLE) {
if (this->skelAnime.animation != &gMalonChildIdleAnim) { if (this->skelAnime.animation != &gMalonChildIdleAnim) {
@ -331,7 +331,7 @@ void func_80AA0D88(EnMa1* this, PlayState* play) {
} }
void func_80AA0EA0(EnMa1* this, PlayState* play) { void func_80AA0EA0(EnMa1* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_WEIRD_EGG, true, NULL)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_WEIRD_EGG, true, NULL)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = func_80AA0EFC; this->actionFunc = func_80AA0EFC;
} else { } else {
@ -340,7 +340,7 @@ void func_80AA0EA0(EnMa1* this, PlayState* play) {
} }
void func_80AA0EFC(EnMa1* this, PlayState* play) { void func_80AA0EFC(EnMa1* this, PlayState* play) {
if (this->interactInfo.talkState == NPC_TALK_STATE_ITEM_GIVEN || !GameInteractor_Should(GI_VB_GIVE_ITEM_WEIRD_EGG, true, NULL)) { if (this->interactInfo.talkState == NPC_TALK_STATE_ITEM_GIVEN || !GameInteractor_Should(VB_GIVE_ITEM_WEIRD_EGG, true, NULL)) {
this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
this->actionFunc = func_80AA0D88; this->actionFunc = func_80AA0D88;
Flags_SetEventChkInf(EVENTCHKINF_OBTAINED_POCKET_EGG); Flags_SetEventChkInf(EVENTCHKINF_OBTAINED_POCKET_EGG);

View File

@ -373,7 +373,7 @@ u16 EnMd_GetTextKokiriForest(PlayState* play, EnMd* this) {
this->unk_208 = 0; this->unk_208 = 0;
this->unk_209 = TEXT_STATE_NONE; this->unk_209 = TEXT_STATE_NONE;
if (GameInteractor_Should(GI_VB_MIDO_CONSIDER_DEKU_TREE_DEAD, CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD), this)) { if (GameInteractor_Should(VB_MIDO_CONSIDER_DEKU_TREE_DEAD, CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD), this)) {
return 0x1045; return 0x1045;
} }
@ -723,7 +723,7 @@ void func_80AAB948(EnMd* this, PlayState* play) {
} }
if ( if (
(GameInteractor_Should(GI_VB_MOVE_MIDO_IN_KOKIRI_FOREST, this->interactInfo.talkState == NPC_TALK_STATE_ACTION, this) && play->sceneNum == SCENE_KOKIRI_FOREST) || (GameInteractor_Should(VB_MOVE_MIDO_IN_KOKIRI_FOREST, this->interactInfo.talkState == NPC_TALK_STATE_ACTION, this) && play->sceneNum == SCENE_KOKIRI_FOREST) ||
this->interactInfo.talkState == NPC_TALK_STATE_ACTION this->interactInfo.talkState == NPC_TALK_STATE_ACTION
) { ) {
if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && !Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_MIDO_AFTER_DEKU_TREES_DEATH) && if (CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) && !Flags_GetEventChkInf(EVENTCHKINF_SPOKE_TO_MIDO_AFTER_DEKU_TREES_DEATH) &&

View File

@ -93,11 +93,11 @@ void func_80AACA40(EnMk* this, PlayState* play) {
} }
void func_80AACA94(EnMk* this, PlayState* play) { void func_80AACA94(EnMk* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) != 0 || !GameInteractor_Should(GI_VB_TRADE_FROG, true, this)) { if (Actor_HasParent(&this->actor, play) != 0 || !GameInteractor_Should(VB_TRADE_FROG, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = func_80AACA40; this->actionFunc = func_80AACA40;
Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_LH_TRADE_FROG); Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_LH_TRADE_FROG);
if (GameInteractor_Should(GI_VB_TRADE_TIMER_EYEDROPS, true, NULL)) { if (GameInteractor_Should(VB_TRADE_TIMER_EYEDROPS, true, NULL)) {
func_80088AA0(240); func_80088AA0(240);
gSaveContext.eventInf[1] &= ~1; gSaveContext.eventInf[1] &= ~1;
} }
@ -109,7 +109,7 @@ void func_80AACA94(EnMk* this, PlayState* play) {
void func_80AACB14(EnMk* this, PlayState* play) { void func_80AACB14(EnMk* this, PlayState* play) {
if (Actor_TextboxIsClosing(&this->actor, play)) { if (Actor_TextboxIsClosing(&this->actor, play)) {
this->actionFunc = func_80AACA94; this->actionFunc = func_80AACA94;
if (GameInteractor_Should(GI_VB_TRADE_FROG, true, this)) { if (GameInteractor_Should(VB_TRADE_FROG, true, this)) {
Actor_OfferGetItem(&this->actor, play, GI_EYEDROPS, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_EYEDROPS, 10000.0f, 50.0f);
} }
} }
@ -137,7 +137,7 @@ void func_80AACC04(EnMk* this, PlayState* play) {
if (this->timer > 0) { if (this->timer > 0) {
this->timer--; this->timer--;
} else { } else {
this->timer = GameInteractor_Should(GI_VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 16 : 0; this->timer = GameInteractor_Should(VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 16 : 0;
this->actionFunc = func_80AACBAC; this->actionFunc = func_80AACBAC;
Animation_Change(&this->skelAnime, &object_mk_Anim_000D88, 1.0f, 0.0f, Animation_Change(&this->skelAnime, &object_mk_Anim_000D88, 1.0f, 0.0f,
Animation_GetLastFrame(&object_mk_Anim_000D88), ANIMMODE_LOOP, -4.0f); Animation_GetLastFrame(&object_mk_Anim_000D88), ANIMMODE_LOOP, -4.0f);
@ -150,7 +150,7 @@ void func_80AACCA0(EnMk* this, PlayState* play) {
this->timer--; this->timer--;
this->actor.shape.rot.y += 0x800; this->actor.shape.rot.y += 0x800;
} else { } else {
this->timer = GameInteractor_Should(GI_VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 120 : 0; this->timer = GameInteractor_Should(VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 120 : 0;
this->actionFunc = func_80AACC04; this->actionFunc = func_80AACC04;
Animation_Change(&this->skelAnime, &object_mk_Anim_000724, 1.0f, 0.0f, Animation_Change(&this->skelAnime, &object_mk_Anim_000724, 1.0f, 0.0f,
Animation_GetLastFrame(&object_mk_Anim_000724), ANIMMODE_LOOP, -4.0f); Animation_GetLastFrame(&object_mk_Anim_000724), ANIMMODE_LOOP, -4.0f);
@ -166,7 +166,7 @@ void func_80AACD48(EnMk* this, PlayState* play) {
this->actionFunc = func_80AACCA0; this->actionFunc = func_80AACCA0;
play->msgCtx.msgMode = MSGMODE_PAUSED; play->msgCtx.msgMode = MSGMODE_PAUSED;
player->exchangeItemId = EXCH_ITEM_NONE; player->exchangeItemId = EXCH_ITEM_NONE;
this->timer = GameInteractor_Should(GI_VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 16 : 0; this->timer = GameInteractor_Should(VB_PLAY_EYEDROP_CREATION_ANIM, true, this) ? 16 : 0;
Animation_Change(&this->skelAnime, &object_mk_Anim_000D88, 1.0f, 0.0f, Animation_Change(&this->skelAnime, &object_mk_Anim_000D88, 1.0f, 0.0f,
Animation_GetLastFrame(&object_mk_Anim_000D88), ANIMMODE_LOOP, -4.0f); Animation_GetLastFrame(&object_mk_Anim_000D88), ANIMMODE_LOOP, -4.0f);
this->flags &= ~2; this->flags &= ~2;
@ -200,7 +200,7 @@ void func_80AACEE8(EnMk* this, PlayState* play) {
} }
void func_80AACFA0(EnMk* this, PlayState* play) { void func_80AACFA0(EnMk* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_LAB_DIVE, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_LAB_DIVE, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = func_80AACA40; this->actionFunc = func_80AACA40;
Flags_SetItemGetInf(ITEMGETINF_10); Flags_SetItemGetInf(ITEMGETINF_10);
@ -212,7 +212,7 @@ void func_80AACFA0(EnMk* this, PlayState* play) {
void func_80AAD014(EnMk* this, PlayState* play) { void func_80AAD014(EnMk* this, PlayState* play) {
if (Actor_TextboxIsClosing(&this->actor, play)) { if (Actor_TextboxIsClosing(&this->actor, play)) {
this->actionFunc = func_80AACFA0; this->actionFunc = func_80AACFA0;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_LAB_DIVE, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_LAB_DIVE, true, this)) {
Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, 10000.0f, 50.0f);
} }
} }
@ -233,7 +233,7 @@ void EnMk_Wait(EnMk* this, PlayState* play) {
player->actor.textId = this->actor.textId; player->actor.textId = this->actor.textId;
this->actionFunc = func_80AACA40; this->actionFunc = func_80AACA40;
} else { } else {
if (GameInteractor_Should(GI_VB_USE_EYEDROP_DIALOGUE, ( if (GameInteractor_Should(VB_USE_EYEDROP_DIALOGUE, (
INV_CONTENT(ITEM_ODD_MUSHROOM) == ITEM_EYEDROPS INV_CONTENT(ITEM_ODD_MUSHROOM) == ITEM_EYEDROPS
), this)) { ), this)) {
player->actor.textId = 0x4032; player->actor.textId = 0x4032;

View File

@ -128,12 +128,12 @@ void EnMs_Talk(EnMs* this, PlayState* play) {
} else if (Message_ShouldAdvance(play)) { } else if (Message_ShouldAdvance(play)) {
switch (play->msgCtx.choiceIndex) { switch (play->msgCtx.choiceIndex) {
case 0: // yes case 0: // yes
if (!GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_MAGIC_BEANS_PURCHASE, (gSaveContext.rupees >= sPrices[BEANS_BOUGHT]), this)) { if (!GameInteractor_Should(VB_BE_ELIGIBLE_FOR_MAGIC_BEANS_PURCHASE, (gSaveContext.rupees >= sPrices[BEANS_BOUGHT]), this)) {
Message_ContinueTextbox(play, 0x4069); // not enough rupees text Message_ContinueTextbox(play, 0x4069); // not enough rupees text
return; return;
} }
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_MAGIC_BEAN_SALESMAN, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_MAGIC_BEAN_SALESMAN, true, this)) {
Actor_OfferGetItem(&this->actor, play, GI_BEAN, 90.0f, 10.0f); Actor_OfferGetItem(&this->actor, play, GI_BEAN, 90.0f, 10.0f);
this->actionFunc = EnMs_Sell; this->actionFunc = EnMs_Sell;
} }

View File

@ -327,7 +327,7 @@ void EnNb_GiveMedallion(EnNb* this, PlayState* play) {
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0, Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0,
0xC); 0xC);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_SPIRIT_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_SPIRIT_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_SPIRIT); Item_Give(play, ITEM_MEDALLION_SPIRIT);
} }
} }
@ -345,7 +345,7 @@ void EnNb_SetupChamberCsImpl(EnNb* this, PlayState* play) {
this->action = NB_CHAMBER_UNDERGROUND; this->action = NB_CHAMBER_UNDERGROUND;
play->csCtx.segment = &D_80AB431C; play->csCtx.segment = &D_80AB431C;
gSaveContext.cutsceneTrigger = 2; gSaveContext.cutsceneTrigger = 2;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_SPIRIT_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_SPIRIT_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_SPIRIT); Item_Give(play, ITEM_MEDALLION_SPIRIT);
} }
player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y + 0x8000; player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y + 0x8000;

View File

@ -204,7 +204,7 @@ void func_80ABA244(EnNiwLady* this, PlayState* play) {
EnNiw* currentCucco; EnNiw* currentCucco;
s32 phi_s1; s32 phi_s1;
if (GameInteractor_Should(GI_VB_SET_CUCCO_COUNT, true, this)) { if (GameInteractor_Should(VB_SET_CUCCO_COUNT, true, this)) {
this->cuccosInPen = 0; this->cuccosInPen = 0;
} }
currentCucco = (EnNiw*)play->actorCtx.actorLists[ACTORCAT_PROP].head; currentCucco = (EnNiw*)play->actorCtx.actorLists[ACTORCAT_PROP].head;
@ -312,7 +312,7 @@ void func_80ABA654(EnNiwLady* this, PlayState* play) {
if (!Flags_GetItemGetInf(ITEMGETINF_0C)) { if (!Flags_GetItemGetInf(ITEMGETINF_0C)) {
this->actor.parent = NULL; this->actor.parent = NULL;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_ANJU_AS_CHILD, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_ANJU_AS_CHILD, true, this)) {
this->getItemId = GI_BOTTLE; this->getItemId = GI_BOTTLE;
Actor_OfferGetItem(&this->actor, play, GI_BOTTLE, 100.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_BOTTLE, 100.0f, 50.0f);
} else { } else {
@ -404,7 +404,7 @@ void func_80ABA9B8(EnNiwLady* this, PlayState* play) {
Message_CloseTextbox(play); Message_CloseTextbox(play);
this->actor.parent = NULL; this->actor.parent = NULL;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_ANJU_AS_ADULT, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_ANJU_AS_ADULT, true, this)) {
Actor_OfferGetItem(&this->actor, play, GI_POCKET_EGG, 200.0f, 100.0f); Actor_OfferGetItem(&this->actor, play, GI_POCKET_EGG, 200.0f, 100.0f);
this->actionFunc = func_80ABAC00; this->actionFunc = func_80ABAC00;
} else { } else {
@ -439,7 +439,7 @@ void func_80ABAB08(EnNiwLady* this, PlayState* play) {
case 0: case 0:
Message_CloseTextbox(play); Message_CloseTextbox(play);
this->actor.parent = NULL; this->actor.parent = NULL;
if (GameInteractor_Should(GI_VB_TRADE_POCKET_CUCCO, true, this)) { if (GameInteractor_Should(VB_TRADE_POCKET_CUCCO, true, this)) {
Actor_OfferGetItem(&this->actor, play, GI_COJIRO, 200.0f, 100.0f); Actor_OfferGetItem(&this->actor, play, GI_COJIRO, 200.0f, 100.0f);
this->actionFunc = func_80ABAC00; this->actionFunc = func_80ABAC00;
} else { } else {
@ -481,7 +481,7 @@ void func_80ABAC84(EnNiwLady* this, PlayState* play) {
} }
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST);
if (LINK_IS_ADULT) { if (LINK_IS_ADULT) {
if (GameInteractor_Should(GI_VB_ANJU_SET_OBTAINED_TRADE_ITEM, true, this)) { if (GameInteractor_Should(VB_ANJU_SET_OBTAINED_TRADE_ITEM, true, this)) {
if (!Flags_GetItemGetInf(ITEMGETINF_2C)) { if (!Flags_GetItemGetInf(ITEMGETINF_2C)) {
Flags_SetItemGetInf(ITEMGETINF_2C); Flags_SetItemGetInf(ITEMGETINF_2C);
} else { } else {

View File

@ -193,7 +193,7 @@ void func_80ABF28C(EnOkarinaTag* this, PlayState* play) {
if ((this->ocarinaSong != 6) || (gSaveContext.scarecrowSpawnSongSet)) { if ((this->ocarinaSong != 6) || (gSaveContext.scarecrowSpawnSongSet)) {
if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) { if ((this->switchFlag >= 0) && Flags_GetSwitch(play, this->switchFlag)) {
this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; this->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
} else if (((this->type != 4) || GameInteractor_Should(GI_VB_BE_ELIGIBLE_TO_OPEN_DOT, !Flags_GetEventChkInf(EVENTCHKINF_OPENED_THE_DOOR_OF_TIME), this)) && } else if (((this->type != 4) || GameInteractor_Should(VB_BE_ELIGIBLE_TO_OPEN_DOT, !Flags_GetEventChkInf(EVENTCHKINF_OPENED_THE_DOOR_OF_TIME), this)) &&
((this->type != 6) || !Flags_GetEventChkInf(EVENTCHKINF_DESTROYED_ROYAL_FAMILY_TOMB)) && ((this->type != 6) || !Flags_GetEventChkInf(EVENTCHKINF_DESTROYED_ROYAL_FAMILY_TOMB)) &&
(this->actor.xzDistToPlayer < (90.0f + this->interactRange)) && (this->actor.xzDistToPlayer < (90.0f + this->interactRange)) &&
(fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 80.0f)) { (fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 80.0f)) {
@ -245,20 +245,20 @@ void func_80ABF4C8(EnOkarinaTag* this, PlayState* play) {
Flags_SetEventChkInf(EVENTCHKINF_OPENED_ZORAS_DOMAIN); Flags_SetEventChkInf(EVENTCHKINF_OPENED_ZORAS_DOMAIN);
break; break;
case 2: // Kakariko Windmill case 2: // Kakariko Windmill
if (GameInteractor_Should(GI_VB_PLAY_DRAIN_WELL_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_DRAIN_WELL_CS, true, this)) {
play->csCtx.segment = D_80ABF9D0; play->csCtx.segment = D_80ABF9D0;
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
func_800F574C(1.18921f, 0x5A); func_800F574C(1.18921f, 0x5A);
break; break;
case 4: // Door of Time case 4: // Door of Time
if (GameInteractor_Should(GI_VB_PLAY_DOOR_OF_TIME_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_DOOR_OF_TIME_CS, true, this)) {
play->csCtx.segment = D_80ABFB40; play->csCtx.segment = D_80ABFB40;
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
break; break;
case 6: // Royal Family Tomb case 6: // Royal Family Tomb
if (GameInteractor_Should(GI_VB_PLAY_ROYAL_FAMILY_TOMB_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ROYAL_FAMILY_TOMB_CS, true, this)) {
play->csCtx.segment = LINK_IS_ADULT ? SEGMENTED_TO_VIRTUAL(&spot02_scene_Cs_003C80) play->csCtx.segment = LINK_IS_ADULT ? SEGMENTED_TO_VIRTUAL(&spot02_scene_Cs_003C80)
: SEGMENTED_TO_VIRTUAL(&spot02_scene_Cs_005020); : SEGMENTED_TO_VIRTUAL(&spot02_scene_Cs_005020);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
@ -313,7 +313,7 @@ void func_80ABF7CC(EnOkarinaTag* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) { if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) {
Message_CloseTextbox(play); Message_CloseTextbox(play);
if (GameInteractor_Should(GI_VB_PLAY_SUNS_SONG_CS, !CHECK_QUEST_ITEM(QUEST_SONG_SUN), this)) { if (GameInteractor_Should(VB_PLAY_SUNS_SONG_CS, !CHECK_QUEST_ITEM(QUEST_SONG_SUN), this)) {
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gSunSongGraveSunSongTeachCs); play->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gSunSongGraveSunSongTeachCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }

View File

@ -283,7 +283,7 @@ s32 EnOwl_CheckInitTalk(EnOwl* this, PlayState* play, u16 textId, f32 targetDist
} else { } else {
this->actor.textId = textId; this->actor.textId = textId;
distCheck = (flags & 2) ? 200.0f : 1000.0f; distCheck = (flags & 2) ? 200.0f : 1000.0f;
if (GameInteractor_Should(GI_VB_OWL_INTERACTION, this->actor.xzDistToPlayer < targetDist, this)) { if (GameInteractor_Should(VB_OWL_INTERACTION, this->actor.xzDistToPlayer < targetDist, this)) {
this->actor.flags |= ACTOR_FLAG_WILL_TALK; this->actor.flags |= ACTOR_FLAG_WILL_TALK;
func_8002F1C4(&this->actor, play, targetDist, distCheck, 0); func_8002F1C4(&this->actor, play, targetDist, distCheck, 0);
} }

View File

@ -127,7 +127,7 @@ void func_80AE7590(EnRl* this, PlayState* play) {
pos.y = player->actor.world.pos.y + 80.0f; pos.y = player->actor.world.pos.y + 80.0f;
pos.z = player->actor.world.pos.z; pos.z = player->actor.world.pos.z;
Actor_Spawn(&play->actorCtx, play, ACTOR_DEMO_EFFECT, pos.x, pos.y, pos.z, 0, 0, 0, 0xE, true); Actor_Spawn(&play->actorCtx, play, ACTOR_DEMO_EFFECT, pos.x, pos.y, pos.z, 0, 0, 0, 0xE, true);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_LIGHT_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_LIGHT_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_LIGHT); Item_Give(play, ITEM_MEDALLION_LIGHT);
} }
this->lightMedallionGiven = 1; this->lightMedallionGiven = 1;

View File

@ -261,7 +261,7 @@ void func_80AF2A38(EnRu2* this, PlayState* play) {
f32 posZ = player->actor.world.pos.z; f32 posZ = player->actor.world.pos.z;
Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0, 10); Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0, 10);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_WATER_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_WATER_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_WATER); Item_Give(play, ITEM_MEDALLION_WATER);
} }
} }
@ -276,7 +276,7 @@ void func_80AF2AB4(EnRu2* this, PlayState* play) {
this->action = 1; this->action = 1;
play->csCtx.segment = &D_80AF411C; play->csCtx.segment = &D_80AF411C;
gSaveContext.cutsceneTrigger = 2; gSaveContext.cutsceneTrigger = 2;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_WATER_MEDALLION, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_WATER_MEDALLION, true, NULL)) {
Item_Give(play, ITEM_MEDALLION_WATER); Item_Give(play, ITEM_MEDALLION_WATER);
} }
temp = this->actor.world.rot.y + 0x8000; temp = this->actor.world.rot.y + 0x8000;

View File

@ -391,10 +391,10 @@ s32 func_80AF5DFC(EnSa* this, PlayState* play) {
return 1; return 1;
} }
if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW && (Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER))) { if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW && (Flags_GetEventChkInf(EVENTCHKINF_OBTAINED_ZELDAS_LETTER))) {
return GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_SARIAS_SONG, !CHECK_QUEST_ITEM(QUEST_SONG_SARIA), NULL) ? 5 : 2; return GameInteractor_Should(VB_BE_ELIGIBLE_FOR_SARIAS_SONG, !CHECK_QUEST_ITEM(QUEST_SONG_SARIA), NULL) ? 5 : 2;
} }
if (play->sceneNum == SCENE_KOKIRI_FOREST && !CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) { if (play->sceneNum == SCENE_KOKIRI_FOREST && !CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) {
if (GameInteractor_Should(GI_VB_NOT_BE_GREETED_BY_SARIA, Flags_GetInfTable(INFTABLE_GREETED_BY_SARIA), NULL)) { if (GameInteractor_Should(VB_NOT_BE_GREETED_BY_SARIA, Flags_GetInfTable(INFTABLE_GREETED_BY_SARIA), NULL)) {
return 1; return 1;
} }
return 4; return 4;
@ -626,7 +626,7 @@ void func_80AF683C(EnSa* this, PlayState* play) {
if (!(player->actor.world.pos.z >= -2220.0f) && !Play_InCsMode(play)) { if (!(player->actor.world.pos.z >= -2220.0f) && !Play_InCsMode(play)) {
// SOH [General] This flag was previously unused, but was named accordingly so we will make use of it. (Normally we should opt for soh_inf) // SOH [General] This flag was previously unused, but was named accordingly so we will make use of it. (Normally we should opt for soh_inf)
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_SARIAS_SONG); Flags_SetEventChkInf(EVENTCHKINF_LEARNED_SARIAS_SONG);
if (GameInteractor_Should(GI_VB_PLAY_SARIAS_SONG_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_SARIAS_SONG_CS, true, this)) {
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(spot05_scene_Cs_005730); play->csCtx.segment = SEGMENTED_TO_VIRTUAL(spot05_scene_Cs_005730);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
this->actionFunc = func_80AF68E4; this->actionFunc = func_80AF68E4;
@ -708,7 +708,7 @@ void func_80AF68E4(EnSa* this, PlayState* play) {
void func_80AF6B20(EnSa* this, PlayState* play) { void func_80AF6B20(EnSa* this, PlayState* play) {
if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW) { if (play->sceneNum == SCENE_SACRED_FOREST_MEADOW) {
if (GameInteractor_Should(GI_VB_GIVE_ITEM_SARIAS_SONG, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_SARIAS_SONG, true, NULL)) {
Item_Give(play, ITEM_SONG_SARIA); Item_Give(play, ITEM_SONG_SARIA);
} }
EnSa_ChangeAnim(this, ENSA_ANIM1_6); EnSa_ChangeAnim(this, ENSA_ANIM1_6);

View File

@ -70,7 +70,7 @@ void EnShopnuts_Init(Actor* thisx, PlayState* play) {
CollisionCheck_SetInfo(&this->actor.colChkInfo, NULL, &sColChkInfoInit); CollisionCheck_SetInfo(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
Collider_UpdateCylinder(&this->actor, &this->collider); Collider_UpdateCylinder(&this->actor, &this->collider);
if (GameInteractor_Should(GI_VB_BUSINESS_SCRUB_DESPAWN, if (GameInteractor_Should(VB_BUSINESS_SCRUB_DESPAWN,
((this->actor.params == 0x0002) && (Flags_GetItemGetInf(ITEMGETINF_0B))) || ((this->actor.params == 0x0002) && (Flags_GetItemGetInf(ITEMGETINF_0B))) ||
((this->actor.params == 0x0009) && (Flags_GetInfTable(INFTABLE_192))) || ((this->actor.params == 0x0009) && (Flags_GetInfTable(INFTABLE_192))) ||
((this->actor.params == 0x000A) && (Flags_GetInfTable(INFTABLE_193))), ((this->actor.params == 0x000A) && (Flags_GetInfTable(INFTABLE_193))),

View File

@ -94,7 +94,7 @@ void func_80AFB768(EnSi* this, PlayState* play) {
if (this->collider.base.ocFlags2 & OC2_HIT_PLAYER) { if (this->collider.base.ocFlags2 & OC2_HIT_PLAYER) {
this->collider.base.ocFlags2 &= ~OC2_HIT_PLAYER; this->collider.base.ocFlags2 &= ~OC2_HIT_PLAYER;
if (GameInteractor_Should(GI_VB_GIVE_ITEM_SKULL_TOKEN, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_SKULL_TOKEN, true, this)) {
Item_Give(play, ITEM_SKULL_TOKEN); Item_Give(play, ITEM_SKULL_TOKEN);
player->actor.freezeTimer = 10; player->actor.freezeTimer = 10;
Message_StartTextbox(play, 0xB4, NULL); Message_StartTextbox(play, 0xB4, NULL);
@ -118,7 +118,7 @@ void func_80AFB89C(EnSi* this, PlayState* play) {
this->actor.shape.rot.y += 0x400; this->actor.shape.rot.y += 0x400;
if (!CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_HOOKSHOT_ATTACHED)) { if (!CHECK_FLAG_ALL(this->actor.flags, ACTOR_FLAG_HOOKSHOT_ATTACHED)) {
if (GameInteractor_Should(GI_VB_GIVE_ITEM_SKULL_TOKEN, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_SKULL_TOKEN, true, this)) {
Item_Give(play, ITEM_SKULL_TOKEN); Item_Give(play, ITEM_SKULL_TOKEN);
player->actor.freezeTimer = 10; player->actor.freezeTimer = 10;
Message_StartTextbox(play, 0xB4, NULL); Message_StartTextbox(play, 0xB4, NULL);
@ -131,7 +131,7 @@ void func_80AFB89C(EnSi* this, PlayState* play) {
void func_80AFB950(EnSi* this, PlayState* play) { void func_80AFB950(EnSi* this, PlayState* play) {
Player* player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
if (Message_GetState(&play->msgCtx) != TEXT_STATE_CLOSING && GameInteractor_Should(GI_VB_GIVE_ITEM_SKULL_TOKEN, true, this)) { if (Message_GetState(&play->msgCtx) != TEXT_STATE_CLOSING && GameInteractor_Should(VB_GIVE_ITEM_SKULL_TOKEN, true, this)) {
player->actor.freezeTimer = 10; player->actor.freezeTimer = 10;
} else { } else {
SET_GS_FLAGS((this->actor.params & 0x1F00) >> 8, this->actor.params & 0xFF); SET_GS_FLAGS((this->actor.params & 0x1F00) >> 8, this->actor.params & 0xFF);

View File

@ -1039,7 +1039,7 @@ void EnSkj_SariaSongTalk(EnSkj* this, PlayState* play) {
EnSkj_SetupWaitInRange(this); EnSkj_SetupWaitInRange(this);
} else { } else {
func_80AFFE24(this); func_80AFFE24(this);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG, true, this)) {
Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, EnSkj_GetItemXzRange(this), EnSkj_GetItemYRange(this)); Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, EnSkj_GetItemXzRange(this), EnSkj_GetItemYRange(this));
} }
} }
@ -1051,11 +1051,11 @@ void func_80AFFE24(EnSkj* this) {
} }
void func_80AFFE44(EnSkj* this, PlayState* play) { void func_80AFFE44(EnSkj* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
EnSkj_SetupPostSariasSong(this); EnSkj_SetupPostSariasSong(this);
} else { } else {
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG, true, this)) {
Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, EnSkj_GetItemXzRange(this), EnSkj_GetItemYRange(this)); Actor_OfferGetItem(&this->actor, play, GI_HEART_PIECE, EnSkj_GetItemXzRange(this), EnSkj_GetItemYRange(this));
} }
} }
@ -1066,7 +1066,7 @@ void EnSkj_SetupPostSariasSong(EnSkj* this) {
} }
void EnSkj_ChangeModeAfterSong(EnSkj* this, PlayState* play) { void EnSkj_ChangeModeAfterSong(EnSkj* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG, true, this)) { if ((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG, true, this)) {
Flags_SetItemGetInf(ITEMGETINF_16); Flags_SetItemGetInf(ITEMGETINF_16);
EnSkj_SetNaviId(this); EnSkj_SetNaviId(this);
EnSkj_SetupWaitInRange(this); EnSkj_SetupWaitInRange(this);
@ -1541,7 +1541,7 @@ void EnSkj_WaitForOfferResponse(EnSkj* this, PlayState* play) {
void EnSkj_WonOcarinaMiniGame(EnSkj* this, PlayState* play) { void EnSkj_WonOcarinaMiniGame(EnSkj* this, PlayState* play) {
if (D_80B01EA0) { if (D_80B01EA0) {
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_OCARINA_MEMORY_GAME, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_OCARINA_MEMORY_GAME, true, this)) {
this->actionFunc = EnSkj_WaitToGiveReward; this->actionFunc = EnSkj_WaitToGiveReward;
} }
} else { } else {

View File

@ -277,14 +277,14 @@ void EnSth_GivePlayerItem(EnSth* this, PlayState* play) {
} }
void EnSth_GiveReward(EnSth* this, PlayState* play) { void EnSth_GiveReward(EnSth* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_SKULLTULA_REWARD, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_SKULLTULA_REWARD, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
EnSth_SetupAction(this, EnSth_RewardObtainedTalk); EnSth_SetupAction(this, EnSth_RewardObtainedTalk);
gSaveContext.eventChkInf[EVENTCHKINF_SKULLTULA_REWARD_INDEX] |= this->eventFlag; gSaveContext.eventChkInf[EVENTCHKINF_SKULLTULA_REWARD_INDEX] |= this->eventFlag;
if (this->eventFlag != 0) { if (this->eventFlag != 0) {
GameInteractor_ExecuteOnFlagSet(FLAG_EVENT_CHECK_INF, (EVENTCHKINF_SKULLTULA_REWARD_INDEX << 4) + sEventFlagsShift[this->actor.params]); GameInteractor_ExecuteOnFlagSet(FLAG_EVENT_CHECK_INF, (EVENTCHKINF_SKULLTULA_REWARD_INDEX << 4) + sEventFlagsShift[this->actor.params]);
} }
} else if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_SKULLTULA_REWARD, true, this)) { } else if (GameInteractor_Should(VB_GIVE_ITEM_FROM_SKULLTULA_REWARD, true, this)) {
EnSth_GivePlayerItem(this, play); EnSth_GivePlayerItem(this, play);
} }
EnSth_FacePlayer(this, play); EnSth_FacePlayer(this, play);
@ -294,7 +294,7 @@ void EnSth_RewardUnobtainedTalk(EnSth* this, PlayState* play) {
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) { if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) {
Message_CloseTextbox(play); Message_CloseTextbox(play);
EnSth_SetupAction(this, EnSth_GiveReward); EnSth_SetupAction(this, EnSth_GiveReward);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_SKULLTULA_REWARD, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_SKULLTULA_REWARD, true, this)) {
EnSth_GivePlayerItem(this, play); EnSth_GivePlayerItem(this, play);
} }
} }

View File

@ -386,7 +386,7 @@ void EnSyatekiMan_EndGame(EnSyatekiMan* this, PlayState* play) {
this->getItemId = GI_RUPEE_PURPLE; this->getItemId = GI_RUPEE_PURPLE;
} }
} }
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_SHOOTING_GALLERY, true, this)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_SHOOTING_GALLERY, true, this)) {
Actor_OfferGetItem(&this->actor, play, this->getItemId, 2000.0f, 1000.0f); Actor_OfferGetItem(&this->actor, play, this->getItemId, 2000.0f, 1000.0f);
} }
this->actionFunc = EnSyatekiMan_GivePrize; this->actionFunc = EnSyatekiMan_GivePrize;
@ -418,7 +418,7 @@ void EnSyatekiMan_EndGame(EnSyatekiMan* this, PlayState* play) {
void EnSyatekiMan_GivePrize(EnSyatekiMan* this, PlayState* play) { void EnSyatekiMan_GivePrize(EnSyatekiMan* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_SHOOTING_GALLERY, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_SHOOTING_GALLERY, true, this)) {
this->actionFunc = EnSyatekiMan_FinishPrize; this->actionFunc = EnSyatekiMan_FinishPrize;
} else { } else {
Actor_OfferGetItem(&this->actor, play, this->getItemId, 2000.0f, 1000.0f); Actor_OfferGetItem(&this->actor, play, this->getItemId, 2000.0f, 1000.0f);
@ -427,12 +427,12 @@ void EnSyatekiMan_GivePrize(EnSyatekiMan* this, PlayState* play) {
void EnSyatekiMan_FinishPrize(EnSyatekiMan* this, PlayState* play) { void EnSyatekiMan_FinishPrize(EnSyatekiMan* this, PlayState* play) {
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
if (((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_SHOOTING_GALLERY, true, this)) { if (((Message_GetState(&play->msgCtx) == TEXT_STATE_DONE) && Message_ShouldAdvance(play)) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_SHOOTING_GALLERY, true, this)) {
// "Successful completion" // "Successful completion"
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST);
if (!LINK_IS_ADULT) { if (!LINK_IS_ADULT) {
Flags_SetItemGetInf(ITEMGETINF_0D); Flags_SetItemGetInf(ITEMGETINF_0D);
} else if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_ADULT_SHOOTING_GAME_REWARD, (this->getItemId == GI_QUIVER_40) || (this->getItemId == GI_QUIVER_50), this)) { } else if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_ADULT_SHOOTING_GAME_REWARD, (this->getItemId == GI_QUIVER_40) || (this->getItemId == GI_QUIVER_50), this)) {
Flags_SetItemGetInf(ITEMGETINF_0E); Flags_SetItemGetInf(ITEMGETINF_0E);
} }
this->gameResult = SYATEKI_RESULT_NONE; this->gameResult = SYATEKI_RESULT_NONE;

View File

@ -467,7 +467,7 @@ void func_80B14B6C(EnTa* this, PlayState* play) {
EnTa_SetupAction(this, func_80B14AF4, EnTa_AnimRepeatCurrent); EnTa_SetupAction(this, func_80B14AF4, EnTa_AnimRepeatCurrent);
this->unk_2CC = 5; this->unk_2CC = 5;
Flags_SetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE); Flags_SetEventChkInf(EVENTCHKINF_TALON_RETURNED_FROM_CASTLE);
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) {
OnePointCutscene_EndCutscene(play, csCamIdx); OnePointCutscene_EndCutscene(play, csCamIdx);
} }
Animation_PlayOnce(&this->skelAnime, &gTalonRunTransitionAnim); Animation_PlayOnce(&this->skelAnime, &gTalonRunTransitionAnim);
@ -869,7 +869,7 @@ void EnTa_TalkGeneralInLonLonHouse(EnTa* this, PlayState* play) {
} }
void EnTa_GiveItemInLonLonHouse(EnTa* this, PlayState* play) { void EnTa_GiveItemInLonLonHouse(EnTa* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_TALONS_CHICKENS, true, &this->actor)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_FROM_TALONS_CHICKENS, true, &this->actor)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = EnTa_TalkGeneralInLonLonHouse; this->actionFunc = EnTa_TalkGeneralInLonLonHouse;
if (!(this->unk_2E0 & 0x2)) { if (!(this->unk_2E0 & 0x2)) {
@ -879,7 +879,7 @@ void EnTa_GiveItemInLonLonHouse(EnTa* this, PlayState* play) {
} else if (this->unk_2E0 & 2) { } else if (this->unk_2E0 & 2) {
Actor_OfferGetItem(&this->actor, play, GI_MILK, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_MILK, 10000.0f, 50.0f);
} else { } else {
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_TALONS_CHICKENS, true, &this->actor)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_TALONS_CHICKENS, true, &this->actor)) {
Actor_OfferGetItem(&this->actor, play, GI_MILK_BOTTLE, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_MILK_BOTTLE, 10000.0f, 50.0f);
} }
} }
@ -891,7 +891,7 @@ void EnTa_TalkAfterCuccoGameFirstWon(EnTa* this, PlayState* play) {
Message_CloseTextbox(play); Message_CloseTextbox(play);
this->unk_2E0 &= ~0x2; this->unk_2E0 &= ~0x2;
EnTa_SetupAction(this, EnTa_GiveItemInLonLonHouse, EnTa_AnimRunToEnd); EnTa_SetupAction(this, EnTa_GiveItemInLonLonHouse, EnTa_AnimRunToEnd);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_TALONS_CHICKENS, true, &this->actor)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_TALONS_CHICKENS, true, &this->actor)) {
Actor_OfferGetItem(&this->actor, play, GI_MILK_BOTTLE, 10000.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_MILK_BOTTLE, 10000.0f, 50.0f);
} }
} }

View File

@ -495,7 +495,7 @@ void EnTk_Init(Actor* thisx, PlayState* play) {
CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
if (GameInteractor_Should(GI_VB_DAMPE_IN_GRAVEYARD_DESPAWN, gSaveContext.dayTime <= 0xC000 || gSaveContext.dayTime >= 0xE000 || LINK_IS_ADULT || play->sceneNum != SCENE_GRAVEYARD, this)) { if (GameInteractor_Should(VB_DAMPE_IN_GRAVEYARD_DESPAWN, gSaveContext.dayTime <= 0xC000 || gSaveContext.dayTime >= 0xE000 || LINK_IS_ADULT || play->sceneNum != SCENE_GRAVEYARD, this)) {
Actor_Kill(&this->actor); Actor_Kill(&this->actor);
return; return;
} }
@ -601,7 +601,7 @@ void EnTk_Dig(EnTk* this, PlayState* play) {
this->rewardTimer = 0; this->rewardTimer = 0;
if (GameInteractor_Should(GI_VB_BE_VALID_GRAVEDIGGING_SPOT, this->validDigHere == 1, this)) { if (GameInteractor_Should(VB_BE_VALID_GRAVEDIGGING_SPOT, this->validDigHere == 1, this)) {
rewardOrigin.x = 0.0f; rewardOrigin.x = 0.0f;
rewardOrigin.y = 0.0f; rewardOrigin.y = 0.0f;
rewardOrigin.z = -40.0f; rewardOrigin.z = -40.0f;
@ -615,12 +615,12 @@ void EnTk_Dig(EnTk* this, PlayState* play) {
this->currentReward = EnTk_ChooseReward(this); this->currentReward = EnTk_ChooseReward(this);
if (GameInteractor_Should(GI_VB_BE_DAMPE_GRAVEDIGGING_GRAND_PRIZE, this->currentReward == 3, this)) { if (GameInteractor_Should(VB_BE_DAMPE_GRAVEDIGGING_GRAND_PRIZE, this->currentReward == 3, this)) {
/* /*
* Upgrade the purple rupee reward to the heart piece if this * Upgrade the purple rupee reward to the heart piece if this
* is the first grand prize dig. * is the first grand prize dig.
*/ */
if (GameInteractor_Should(GI_VB_DAMPE_GRAVEDIGGING_GRAND_PRIZE_BE_HEART_PIECE, !Flags_GetItemGetInf(ITEMGETINF_1C), this)) { if (GameInteractor_Should(VB_DAMPE_GRAVEDIGGING_GRAND_PRIZE_BE_HEART_PIECE, !Flags_GetItemGetInf(ITEMGETINF_1C), this)) {
Flags_SetItemGetInf(ITEMGETINF_1C); Flags_SetItemGetInf(ITEMGETINF_1C);
this->currentReward = 4; this->currentReward = 4;
} }

View File

@ -291,7 +291,7 @@ void func_80B20768(EnToryo* this, PlayState* play) {
s16 sp32; s16 sp32;
s16 sp30; s16 sp30;
if (this->unk_1E4 == 3 && !GameInteractor_Should(GI_VB_FIX_SAW_SOFTLOCK, false, NULL)) { if (this->unk_1E4 == 3 && !GameInteractor_Should(VB_FIX_SAW_SOFTLOCK, false, NULL)) {
Actor_ProcessTalkRequest(&this->actor, play); Actor_ProcessTalkRequest(&this->actor, play);
Message_ContinueTextbox(play, this->actor.textId); Message_ContinueTextbox(play, this->actor.textId);
this->unk_1E4 = 1; this->unk_1E4 = 1;
@ -312,7 +312,7 @@ void func_80B20768(EnToryo* this, PlayState* play) {
} }
if (this->unk_1E4 == 4) { if (this->unk_1E4 == 4) {
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_TRADE_SAW, true, this)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_TRADE_SAW, true, this)) {
this->actor.parent = NULL; this->actor.parent = NULL;
this->unk_1E4 = 5; this->unk_1E4 = 5;
Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_GV_TRADE_SAW); Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_GV_TRADE_SAW);

View File

@ -195,7 +195,7 @@ void func_80B3A3D4(EnWonderTalk2* this, PlayState* play) {
this->unk_15A = true; this->unk_15A = true;
} }
this->actor.flags &= ~(ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_UPDATE_WHILE_CULLED); this->actor.flags &= ~(ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_UPDATE_WHILE_CULLED);
if (GameInteractor_Should(GI_VB_WONDER_TALK, true, this)) { if (GameInteractor_Should(VB_WONDER_TALK, true, this)) {
Player_SetCsActionWithHaltedActors(play, NULL, 7); Player_SetCsActionWithHaltedActors(play, NULL, 7);
} }
this->unk_156 = true; this->unk_156 = true;
@ -255,7 +255,7 @@ void func_80B3A4F8(EnWonderTalk2* this, PlayState* play) {
} }
this->unk_158 = 0; this->unk_158 = 0;
if (!this->unk_156) { if (!this->unk_156) {
if (GameInteractor_Should(GI_VB_WONDER_TALK, true, this)) { if (GameInteractor_Should(VB_WONDER_TALK, true, this)) {
Message_StartTextbox(play, this->actor.textId, NULL); Message_StartTextbox(play, this->actor.textId, NULL);
Player_SetCsActionWithHaltedActors(play, NULL, 8); Player_SetCsActionWithHaltedActors(play, NULL, 8);
} }

View File

@ -298,15 +298,15 @@ s32 EnXc_MinuetCS(EnXc* this, PlayState* play) {
if (z < -2225.0f) { if (z < -2225.0f) {
if (!Play_InCsMode(play)) { if (!Play_InCsMode(play)) {
if (GameInteractor_Should(GI_VB_PLAY_MINUET_OF_FOREST_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_MINUET_OF_FOREST_CS, true, NULL)) {
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gMinuetCs); play->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gMinuetCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_MINUET_OF_FOREST); Flags_SetEventChkInf(EVENTCHKINF_LEARNED_MINUET_OF_FOREST);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_MINUET_OF_FOREST, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_MINUET_OF_FOREST, true, NULL)) {
Item_Give(play, ITEM_SONG_MINUET); Item_Give(play, ITEM_SONG_MINUET);
} }
if (GameInteractor_Should(GI_VB_PLAY_MINUET_OF_FOREST_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_MINUET_OF_FOREST_CS, true, NULL)) {
return true; return true;
} }
} }
@ -335,15 +335,15 @@ s32 EnXc_BoleroCS(EnXc* this, PlayState* play) {
if ((posRot->pos.x > -784.0f) && (posRot->pos.x < -584.0f) && (posRot->pos.y > 447.0f) && if ((posRot->pos.x > -784.0f) && (posRot->pos.x < -584.0f) && (posRot->pos.y > 447.0f) &&
(posRot->pos.y < 647.0f) && (posRot->pos.z > -446.0f) && (posRot->pos.z < -246.0f) && (posRot->pos.y < 647.0f) && (posRot->pos.z > -446.0f) && (posRot->pos.z < -246.0f) &&
!Play_InCsMode(play)) { !Play_InCsMode(play)) {
if (GameInteractor_Should(GI_VB_PLAY_BOLERO_OF_FIRE_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_BOLERO_OF_FIRE_CS, true, NULL)) {
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gDeathMountainCraterBoleroCs); play->csCtx.segment = SEGMENTED_TO_VIRTUAL(&gDeathMountainCraterBoleroCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_BOLERO_OF_FIRE); Flags_SetEventChkInf(EVENTCHKINF_LEARNED_BOLERO_OF_FIRE);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_BOLERO_OF_FIRE, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_BOLERO_OF_FIRE, true, NULL)) {
Item_Give(play, ITEM_SONG_BOLERO); Item_Give(play, ITEM_SONG_BOLERO);
} }
if (GameInteractor_Should(GI_VB_PLAY_BOLERO_OF_FIRE_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_BOLERO_OF_FIRE_CS, true, NULL)) {
return true; return true;
} }
} }
@ -354,7 +354,7 @@ s32 EnXc_BoleroCS(EnXc* this, PlayState* play) {
void EnXc_SetupSerenadeAction(EnXc* this, PlayState* play) { void EnXc_SetupSerenadeAction(EnXc* this, PlayState* play) {
// Player is adult and does not have iron boots and has not learned Serenade // Player is adult and does not have iron boots and has not learned Serenade
if (GameInteractor_Should(GI_VB_SHIEK_PREPARE_TO_GIVE_SERENADE_OF_WATER, (!CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON) && !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER)) && LINK_IS_ADULT, NULL)) { if (GameInteractor_Should(VB_SHIEK_PREPARE_TO_GIVE_SERENADE_OF_WATER, (!CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON) && !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER)) && LINK_IS_ADULT, NULL)) {
this->action = SHEIK_ACTION_SERENADE; this->action = SHEIK_ACTION_SERENADE;
osSyncPrintf("水のセレナーデ シーク誕生!!!!!!!!!!!!!!!!!!\n"); osSyncPrintf("水のセレナーデ シーク誕生!!!!!!!!!!!!!!!!!!\n");
} else { } else {
@ -367,18 +367,18 @@ s32 EnXc_SerenadeCS(EnXc* this, PlayState* play) {
if (this->actor.params == SHEIK_TYPE_SERENADE) { if (this->actor.params == SHEIK_TYPE_SERENADE) {
Player* player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
s32 stateFlags = player->stateFlags1; s32 stateFlags = player->stateFlags1;
if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_SERENADE_OF_WATER, CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON) && !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER), NULL) && if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_SERENADE_OF_WATER, CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON) && !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER), NULL) &&
!(stateFlags & PLAYER_STATE1_IN_CUTSCENE) && !Play_InCsMode(play)) { !(stateFlags & PLAYER_STATE1_IN_CUTSCENE) && !Play_InCsMode(play)) {
if (GameInteractor_Should(GI_VB_PLAY_SERENADE_OF_WATER_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_SERENADE_OF_WATER_CS, true, NULL)) {
Cutscene_SetSegment(play, &gIceCavernSerenadeCs); Cutscene_SetSegment(play, &gIceCavernSerenadeCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER); // Learned Serenade of Water Flag Flags_SetEventChkInf(EVENTCHKINF_LEARNED_SERENADE_OF_WATER); // Learned Serenade of Water Flag
if (GameInteractor_Should(GI_VB_GIVE_ITEM_SERENADE_OF_WATER, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_SERENADE_OF_WATER, true, NULL)) {
Item_Give(play, ITEM_SONG_SERENADE); Item_Give(play, ITEM_SONG_SERENADE);
} }
osSyncPrintf("ブーツを取った!!!!!!!!!!!!!!!!!!\n"); osSyncPrintf("ブーツを取った!!!!!!!!!!!!!!!!!!\n");
if (GameInteractor_Should(GI_VB_PLAY_SERENADE_OF_WATER_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_SERENADE_OF_WATER_CS, true, NULL)) {
return true; return true;
} }
} }
@ -2185,17 +2185,17 @@ void EnXc_InitTempleOfTime(EnXc* this, PlayState* play) {
if (LINK_IS_ADULT) { if (LINK_IS_ADULT) {
if (!Flags_GetEventChkInf(EVENTCHKINF_SHEIK_SPAWNED_AT_MASTER_SWORD_PEDESTAL)) { if (!Flags_GetEventChkInf(EVENTCHKINF_SHEIK_SPAWNED_AT_MASTER_SWORD_PEDESTAL)) {
Flags_SetEventChkInf(EVENTCHKINF_SHEIK_SPAWNED_AT_MASTER_SWORD_PEDESTAL); Flags_SetEventChkInf(EVENTCHKINF_SHEIK_SPAWNED_AT_MASTER_SWORD_PEDESTAL);
if (GameInteractor_Should(GI_VB_PLAY_SHIEK_BLOCK_MASTER_SWORD_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_SHIEK_BLOCK_MASTER_SWORD_CS, true, NULL)) {
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gTempleOfTimeFirstAdultCs); play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gTempleOfTimeFirstAdultCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }
func_80B3EBF0(this, play); func_80B3EBF0(this, play);
} else if (GameInteractor_Should(GI_VB_BE_ELIGIBLE_FOR_PRELUDE_OF_LIGHT, !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT) && Flags_GetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP), NULL)) { } else if (GameInteractor_Should(VB_BE_ELIGIBLE_FOR_PRELUDE_OF_LIGHT, !Flags_GetEventChkInf(EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT) && Flags_GetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP), NULL)) {
Flags_SetEventChkInf(EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT); Flags_SetEventChkInf(EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_PRELUDE_OF_LIGHT, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_PRELUDE_OF_LIGHT, true, NULL)) {
Item_Give(play, ITEM_SONG_PRELUDE); Item_Give(play, ITEM_SONG_PRELUDE);
} }
if (GameInteractor_Should(GI_VB_PLAY_PRELUDE_OF_LIGHT_CS, true, NULL)) { if (GameInteractor_Should(VB_PLAY_PRELUDE_OF_LIGHT_CS, true, NULL)) {
play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gTempleOfTimePreludeCs); play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gTempleOfTimePreludeCs);
gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneTrigger = 1;
} }

View File

@ -634,7 +634,7 @@ void EnZl2_GiveLightArrows(EnZl2* this, PlayState* play) {
posY = player->actor.world.pos.y + 80.0f; posY = player->actor.world.pos.y + 80.0f;
posZ = player->actor.world.pos.z; posZ = player->actor.world.pos.z;
Actor_Spawn(&play->actorCtx, play, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0, 0x17, true); Actor_Spawn(&play->actorCtx, play, ACTOR_DEMO_EFFECT, posX, posY, posZ, 0, 0, 0, 0x17, true);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_LIGHT_ARROW, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_LIGHT_ARROW, true, NULL)) {
Item_Give(play, ITEM_ARROW_LIGHT); Item_Give(play, ITEM_ARROW_LIGHT);
} }
this->unk_244 = 1; this->unk_244 = 1;

View File

@ -1108,7 +1108,7 @@ s32 EnZl4_CsMakePlan(EnZl4* this, PlayState* play) {
Camera_ChangeSetting(GET_ACTIVE_CAM(play), 1); Camera_ChangeSetting(GET_ACTIVE_CAM(play), 1);
this->talkState = 7; this->talkState = 7;
play->talkWithPlayer(play, &this->actor); play->talkWithPlayer(play, &this->actor);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_ZELDAS_LETTER, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_ZELDAS_LETTER, true, NULL)) {
Actor_OfferGetItem(&this->actor, play, GI_LETTER_ZELDA, fabsf(this->actor.xzDistToPlayer) + 1.0f, Actor_OfferGetItem(&this->actor, play, GI_LETTER_ZELDA, fabsf(this->actor.xzDistToPlayer) + 1.0f,
fabsf(this->actor.yDistToPlayer) + 1.0f); fabsf(this->actor.yDistToPlayer) + 1.0f);
} }
@ -1117,7 +1117,7 @@ s32 EnZl4_CsMakePlan(EnZl4* this, PlayState* play) {
} }
break; break;
case 7: case 7:
if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(GI_VB_GIVE_ITEM_ZELDAS_LETTER, true, NULL)) { if (Actor_HasParent(&this->actor, play) || !GameInteractor_Should(VB_GIVE_ITEM_ZELDAS_LETTER, true, NULL)) {
Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ZL4_ANIM_0); Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ZL4_ANIM_0);
this->talkState++; this->talkState++;
} else { } else {

View File

@ -179,7 +179,7 @@ void ItemOcarina_WaitInWater(ItemOcarina* this, PlayState* play) {
if ( if (
Actor_HasParent(&this->actor, play) || Actor_HasParent(&this->actor, play) ||
( (
!GameInteractor_Should(GI_VB_GIVE_ITEM_OCARINA_OF_TIME, true, NULL) && !GameInteractor_Should(VB_GIVE_ITEM_OCARINA_OF_TIME, true, NULL) &&
(this->actor.xzDistToPlayer < 20.0f) && (fabsf(this->actor.yDistToPlayer) < 10.0f) && (this->actor.xzDistToPlayer < 20.0f) && (fabsf(this->actor.yDistToPlayer) < 10.0f) &&
GET_PLAYER(play)->stateFlags2 & PLAYER_STATE2_DIVING GET_PLAYER(play)->stateFlags2 & PLAYER_STATE2_DIVING
) )
@ -189,7 +189,7 @@ void ItemOcarina_WaitInWater(ItemOcarina* this, PlayState* play) {
this->actionFunc = ItemOcarina_StartSoTCutscene; this->actionFunc = ItemOcarina_StartSoTCutscene;
this->actor.draw = NULL; this->actor.draw = NULL;
} else { } else {
if (GameInteractor_Should(GI_VB_GIVE_ITEM_OCARINA_OF_TIME, true, NULL)) { if (GameInteractor_Should(VB_GIVE_ITEM_OCARINA_OF_TIME, true, NULL)) {
Actor_OfferGetItem(&this->actor, play, GI_OCARINA_OOT, 30.0f, 50.0f); Actor_OfferGetItem(&this->actor, play, GI_OCARINA_OOT, 30.0f, 50.0f);
} }

View File

@ -57,7 +57,7 @@ void ObjDekujr_Init(Actor* thisx, PlayState* play) {
this->unk_19C = 0; this->unk_19C = 0;
this->unk_19B = 1; this->unk_19B = 1;
} }
if (!GameInteractor_Should(GI_VB_DEKU_JR_CONSIDER_FOREST_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST), this)) { if (!GameInteractor_Should(VB_DEKU_JR_CONSIDER_FOREST_TEMPLE_FINISHED, CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST), this)) {
Actor_Kill(thisx); Actor_Kill(thisx);
} else { } else {
ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f); ActorShape_Init(&thisx->shape, 0.0f, NULL, 0.0f);

View File

@ -250,7 +250,7 @@ void ObjSwitch_SetOn(ObjSwitch* this, PlayState* play) {
subType = (this->dyna.actor.params >> 4 & 7); subType = (this->dyna.actor.params >> 4 & 7);
Flags_SetSwitch(play, (this->dyna.actor.params >> 8 & 0x3F)); Flags_SetSwitch(play, (this->dyna.actor.params >> 8 & 0x3F));
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) {
if (subType == 0 || subType == 4) { if (subType == 0 || subType == 4) {
OnePointCutscene_AttentionSetSfx(play, &this->dyna.actor, NA_SE_SY_CORRECT_CHIME); OnePointCutscene_AttentionSetSfx(play, &this->dyna.actor, NA_SE_SY_CORRECT_CHIME);
} else { } else {
@ -269,7 +269,7 @@ void ObjSwitch_SetOff(ObjSwitch* this, PlayState* play) {
Flags_UnsetSwitch(play, (this->dyna.actor.params >> 8 & 0x3F)); Flags_UnsetSwitch(play, (this->dyna.actor.params >> 8 & 0x3F));
if ((this->dyna.actor.params >> 4 & 7) == 1) { if ((this->dyna.actor.params >> 4 & 7) == 1) {
if (GameInteractor_Should(GI_VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) { if (GameInteractor_Should(VB_PLAY_ONEPOINT_ACTOR_CS, true, this)) {
OnePointCutscene_AttentionSetSfx(play, &this->dyna.actor, NA_SE_SY_TRE_BOX_APPEAR); OnePointCutscene_AttentionSetSfx(play, &this->dyna.actor, NA_SE_SY_TRE_BOX_APPEAR);
} }
this->cooldownOn = true; this->cooldownOn = true;

View File

@ -6866,7 +6866,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) {
} }
func_80836898(play, this, func_8083A434); func_80836898(play, this, func_8083A434);
if (GameInteractor_Should(GI_VB_GIVE_ITEM_FROM_CHEST, true, chest)) { if (GameInteractor_Should(VB_GIVE_ITEM_FROM_CHEST, true, chest)) {
this->stateFlags1 |= PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_ITEM_OVER_HEAD | PLAYER_STATE1_IN_CUTSCENE; this->stateFlags1 |= PLAYER_STATE1_GETTING_ITEM | PLAYER_STATE1_ITEM_OVER_HEAD | PLAYER_STATE1_IN_CUTSCENE;
func_8083AE40(this, giEntry.objectId); func_8083AE40(this, giEntry.objectId);
} }
@ -8522,7 +8522,7 @@ void func_80842A88(PlayState* play, Player* this) {
s32 func_80842AC4(PlayState* play, Player* this) { s32 func_80842AC4(PlayState* play, Player* this) {
if ((this->heldItemAction == PLAYER_IA_DEKU_STICK) && (this->unk_85C > 0.5f)) { if ((this->heldItemAction == PLAYER_IA_DEKU_STICK) && (this->unk_85C > 0.5f)) {
if (GameInteractor_Should(GI_VB_DEKU_STICK_BREAK, AMMO(ITEM_STICK) != 0, NULL)) { if (GameInteractor_Should(VB_DEKU_STICK_BREAK, AMMO(ITEM_STICK) != 0, NULL)) {
EffectSsStick_Spawn(play, &this->bodyPartsPos[PLAYER_BODYPART_R_HAND], EffectSsStick_Spawn(play, &this->bodyPartsPos[PLAYER_BODYPART_R_HAND],
this->actor.shape.rot.y + 0x8000); this->actor.shape.rot.y + 0x8000);
this->unk_85C = 0.5f; this->unk_85C = 0.5f;
@ -10238,7 +10238,7 @@ void Player_Init(Actor* thisx, PlayState* play2) {
if ((sp50 == 0) || (sp50 < -1)) { if ((sp50 == 0) || (sp50 < -1)) {
titleFileSize = scene->titleFile.vromEnd - scene->titleFile.vromStart; titleFileSize = scene->titleFile.vromEnd - scene->titleFile.vromStart;
if (GameInteractor_Should(GI_VB_SHOW_TITLE_CARD, gSaveContext.showTitleCard, NULL)) { if (GameInteractor_Should(VB_SHOW_TITLE_CARD, gSaveContext.showTitleCard, NULL)) {
if ((gSaveContext.sceneSetupIndex < 4) && if ((gSaveContext.sceneSetupIndex < 4) &&
(gEntranceTable[((void)0, gSaveContext.entranceIndex) + ((void)0, gSaveContext.sceneSetupIndex)].field & (gEntranceTable[((void)0, gSaveContext.entranceIndex) + ((void)0, gSaveContext.sceneSetupIndex)].field &
ENTRANCE_INFO_DISPLAY_TITLE_CARD_FLAG) && ENTRANCE_INFO_DISPLAY_TITLE_CARD_FLAG) &&
@ -10944,21 +10944,21 @@ static Color_RGBA8 D_808547C0 = { 255, 50, 0, 0 };
void Player_UpdateBurningDekuStick(PlayState* play, Player* this) { void Player_UpdateBurningDekuStick(PlayState* play, Player* this) {
f32 temp; f32 temp;
if (GameInteractor_Should(GI_VB_DEKU_STICK_BURN_OUT, this->unk_85C == 0.0f, NULL)) { if (GameInteractor_Should(VB_DEKU_STICK_BURN_OUT, this->unk_85C == 0.0f, NULL)) {
Player_UseItem(play, this, ITEM_NONE); Player_UseItem(play, this, ITEM_NONE);
return; return;
} }
temp = 1.0f; temp = 1.0f;
uint8_t vanillaShouldBurnOutCondition = DECR(this->unk_860) == 0; uint8_t vanillaShouldBurnOutCondition = DECR(this->unk_860) == 0;
if (GameInteractor_Should(GI_VB_DEKU_STICK_BURN_OUT, vanillaShouldBurnOutCondition, NULL)) { if (GameInteractor_Should(VB_DEKU_STICK_BURN_OUT, vanillaShouldBurnOutCondition, NULL)) {
Inventory_ChangeAmmo(ITEM_STICK, -1); Inventory_ChangeAmmo(ITEM_STICK, -1);
this->unk_860 = 1; this->unk_860 = 1;
temp = 0.0f; temp = 0.0f;
this->unk_85C = temp; this->unk_85C = temp;
} else if (this->unk_860 > 200) { } else if (this->unk_860 > 200) {
temp = (210 - this->unk_860) / 10.0f; temp = (210 - this->unk_860) / 10.0f;
} else if (GameInteractor_Should(GI_VB_DEKU_STICK_BURN_DOWN, this->unk_860 < 20, NULL)) { } else if (GameInteractor_Should(VB_DEKU_STICK_BURN_DOWN, this->unk_860 < 20, NULL)) {
temp = this->unk_860 / 20.0f; temp = this->unk_860 / 20.0f;
this->unk_85C = temp; this->unk_85C = temp;
} }
@ -11260,7 +11260,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
func_80836BEC(this, play); func_80836BEC(this, play);
if (this->heldItemAction == PLAYER_IA_DEKU_STICK && if (this->heldItemAction == PLAYER_IA_DEKU_STICK &&
GameInteractor_Should(GI_VB_DEKU_STICK_BE_ON_FIRE, this->unk_860 != 0, NULL)) { GameInteractor_Should(VB_DEKU_STICK_BE_ON_FIRE, this->unk_860 != 0, NULL)) {
Player_UpdateBurningDekuStick(play, this); Player_UpdateBurningDekuStick(play, this);
} else if ((this->heldItemAction == PLAYER_IA_FISHING_POLE) && (this->unk_860 < 0)) { } else if ((this->heldItemAction == PLAYER_IA_FISHING_POLE) && (this->unk_860 < 0)) {
this->unk_860++; this->unk_860++;
@ -13545,7 +13545,7 @@ s32 func_8084DFF4(PlayState* play, Player* this) {
play->msgCtx.msgMode = MSGMODE_TEXT_DONE; play->msgCtx.msgMode = MSGMODE_TEXT_DONE;
} else { } else {
if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_CLOSING) {
if (GameInteractor_Should(GI_VB_PLAY_NABOORU_CAPTURED_CS, this->getItemId == GI_GAUNTLETS_SILVER, NULL)) { if (GameInteractor_Should(VB_PLAY_NABOORU_CAPTURED_CS, this->getItemId == GI_GAUNTLETS_SILVER, NULL)) {
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0; play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0;
play->transitionTrigger = TRANS_TRIGGER_START; play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.nextCutsceneIndex = 0xFFF1; gSaveContext.nextCutsceneIndex = 0xFFF1;