document vb shoulds (#5004)

This commit is contained in:
briaguya 2025-02-08 10:12:13 -08:00 committed by GitHub
parent 14a14bb7ef
commit 6abf30aa2f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 1852 additions and 476 deletions

View File

@ -5,6 +5,7 @@
#include "libultraship/libultraship.h" #include "libultraship/libultraship.h"
#include "GameInteractionEffect.h" #include "GameInteractionEffect.h"
#include "vanilla-behavior/GIVanillaBehavior.h"
#include "soh/Enhancements/item-tables/ItemTableTypes.h" #include "soh/Enhancements/item-tables/ItemTableTypes.h"
#include <z64.h> #include <z64.h>
@ -63,482 +64,6 @@ typedef enum {
/* */ GI_TP_DEST_PRELUDE = ENTR_TEMPLE_OF_TIME_WARP_PAD, /* */ GI_TP_DEST_PRELUDE = ENTR_TEMPLE_OF_TIME_WARP_PAD,
} GITeleportDestinations; } GITeleportDestinations;
typedef enum {
// Vanilla condition: gSaveContext.showTitleCard
VB_SHOW_TITLE_CARD,
// Opt: *EnWonderTalk2
VB_WONDER_TALK,
// Opt: *ElfMsg
VB_NAVI_TALK,
// Vanilla condition: INFTABLE_GREETED_BY_SARIA
VB_NOT_BE_GREETED_BY_SARIA,
// Opt: *EnMd
VB_MIDO_SPAWN,
// Opt: *EnMd
// Vanilla condition: EnMd->interactInfo.talkState == NPC_TALK_STATE_ACTION
// Note: When overriding this, ensure you're not in the intro cutscene as Mido's path has not been loaded
VB_MOVE_MIDO_IN_KOKIRI_FOREST,
// Opt: *EnMd
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)
VB_MIDO_CONSIDER_DEKU_TREE_DEAD,
// Opt: *ObjDekujr
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_MEDALLION_FOREST)
VB_DEKU_JR_CONSIDER_FOREST_TEMPLE_FINISHED,
// Opt: *EnKo
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)
VB_OPEN_KOKIRI_FOREST,
// Opt: *EnOwl
// Vanilla condition: EnOwl->actor.xzDistToPlayer < targetDist
VB_OWL_INTERACTION,
// Vanilla condition: EVENTCHKINF_TALON_RETURNED_FROM_CASTLE
VB_MALON_RETURN_FROM_CASTLE,
// Vanilla condition: CUR_UPG_VALUE(UPG_STRENGTH) <= 0
VB_BE_ELIGIBLE_FOR_DARUNIAS_JOY_REWARD,
/* Vanilla condition:
```
LINK_IS_ADULT &&
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].scene == SCENE_TEMPLE_OF_TIME) &&
CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) &&
CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) &&
!Flags_GetEventChkInf(EVENTCHKINF_RETURNED_TO_TEMPLE_OF_TIME_WITH_ALL_MEDALLIONS);
```
*/
VB_BE_ELIGIBLE_FOR_LIGHT_ARROWS,
// Vanilla condition: !CHECK_QUEST_ITEM(QUEST_SONG_SARIA)
VB_BE_ELIGIBLE_FOR_SARIAS_SONG,
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_SONG_EPONA)
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)
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
VB_SHIEK_PREPARE_TO_GIVE_SERENADE_OF_WATER,
// Vanilla condition: !EVENTCHKINF_LEARNED_PRELUDE_OF_LIGHT and EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP
VB_BE_ELIGIBLE_FOR_PRELUDE_OF_LIGHT,
VB_BE_ELIGIBLE_FOR_RAINBOW_BRIDGE,
/* Vanilla Condition:
```
LINK_IS_ADULT &&
gSaveContext.entranceIndex == ENTR_KAKARIKO_VILLAGE_FRONT_GATE &&
Flags_GetEventChkInf(EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP) &&
Flags_GetEventChkInf(EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP) &&
Flags_GetEventChkInf(EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP) &&
!Flags_GetEventChkInf(EVENTCHKINF_BONGO_BONGO_ESCAPED_FROM_WELL);
```
*/
VB_BE_ELIGIBLE_FOR_NOCTURNE_OF_SHADOW,
// Opt: *EnGo2
VB_GORON_LINK_BE_SCARED,
// Vanilla condition: CUR_CAPACITY(UPG_BOMB_BAG) >= 20 && this->waypoint > 7 && this->waypoint < 12
VB_BE_ELIGIBLE_FOR_CHILD_ROLLING_GORON_REWARD,
// Vanilla condition: !CHECK_OWNED_EQUIP_ALT(EQUIP_TYPE_SWORD, EQUIP_INV_SWORD_BIGGORON)
VB_BE_ELIGIBLE_FOR_GIANTS_KNIFE_PURCHASE,
// Opt: *EnMs
// Vanilla condition: gSaveContext.rupees >= sPrices[BEANS_BOUGHT]
VB_BE_ELIGIBLE_FOR_MAGIC_BEANS_PURCHASE,
// Opt: *EnItem00
// Vanilla condition: Flags_GetCollectible(play, this->collectibleFlag)
VB_ITEM00_DESPAWN,
// Opt: *ItemBHeart
// Vanilla condition: Flags_GetCollectible(play, 0x1F)
VB_ITEM_B_HEART_DESPAWN,
// Opt: *EnTk
// Vanilla condition: gSaveContext.dayTime <= 0xC000 || gSaveContext.dayTime >= 0xE000 || LINK_IS_ADULT || play->sceneNum != SCENE_GRAVEYARD
VB_DAMPE_IN_GRAVEYARD_DESPAWN,
// Opt: *EnTk
// Vanilla condition: this->validDigHere == 1
VB_BE_VALID_GRAVEDIGGING_SPOT,
// Opt: *EnTk
// Vanilla condition: this->currentReward == 3
VB_BE_DAMPE_GRAVEDIGGING_GRAND_PRIZE,
// Opt: *EnTk
// Vanilla condition: !Flags_GetItemGetInf(ITEMGETINF_1C)
VB_DAMPE_GRAVEDIGGING_GRAND_PRIZE_BE_HEART_PIECE,
// Opt: *EnShopnuts
/* Vanilla Condition:
```
((this->actor.params == 0x0002) && (Flags_GetItemGetInf(ITEMGETINF_DEKU_SCRUB_HEART_PIECE))) ||
((this->actor.params == 0x0009) && (Flags_GetInfTable(INFTABLE_BOUGHT_STICK_UPGRADE))) ||
((this->actor.params == 0x000A) && (Flags_GetInfTable(INFTABLE_BOUGHT_NUT_UPGRADE)))
```
*/
VB_BUSINESS_SCRUB_DESPAWN,
// Opt: *EnCow
// Vanilla condition: play->sceneNum == SCENE_LINKS_HOUSE && (!LINK_IS_ADULT || !Flags_GetEventChkInf(EVENTCHKINF_WON_COW_IN_MALONS_RACE))
VB_DESPAWN_HORSE_RACE_COW,
// Opt: *EnHs
// Vanilla condition: Flags_GetItemGetInf(ITEMGETINF_30)
VB_DESPAWN_GROG,
// Opt: *EnKo
// Vanilla condition: (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_ODD_POTION) ? true : false;
VB_SPAWN_LW_FADO,
// Opt: *EnMk
VB_PLAY_EYEDROP_CREATION_ANIM,
// Opt: *EnDs
VB_PLAY_ODD_POTION_ANIM,
// Opt: *EnMk
// Vanilla condition: INV_CONTENT(ITEM_ODD_MUSHROOM) == ITEM_EYEDROPS
VB_USE_EYEDROP_DIALOGUE,
// Opt: *EnMk
// Vanilla condition: Flags_GetItemGetInf(ITEMGETINF_30)
VB_OFFER_BLUE_POTION,
VB_GRANNY_SAY_INSUFFICIENT_RUPEES,
VB_GRANNY_TAKE_MONEY,
// Vanilla condition: Inventory_HasEmptyBottle() == 0
VB_NEED_BOTTLE_FOR_GRANNYS_ITEM,
// Opt: *EnNiwLady
VB_SET_CUCCO_COUNT,
// Opt: *EnKz
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)
VB_KING_ZORA_THANK_CHILD,
// Opt: *EnKz
// Vanilla condition: this->actor.textId == 0x401A
VB_BE_ABLE_TO_EXCHANGE_RUTOS_LETTER,
// Opt: *EnKz
// Vanilla condition: Flags_GetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED)
VB_KING_ZORA_BE_MOVED,
// Opt: *EnKz,
// Vanilla condition: CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_ZORA)
VB_KING_ZORA_TUNIC_CHECK,
// Vanilla condition: gSaveState.bgsFlag
VB_BIGGORON_CONSIDER_TRADE_COMPLETE,
// Vanilla condition: gSaveState.bgsFlag
VB_BIGGORON_CONSIDER_SWORD_COLLECTED,
// Vanilla condition: Environment_GetBgsDayCount() >= 3
VB_BIGGORON_CONSIDER_SWORD_FORGED,
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_MEDALLION_FIRE)
VB_GORONS_CONSIDER_FIRE_TEMPLE_FINISHED,
// Vanilla condition: CHECK_QUEST_ITEM(QUEST_GORON_RUBY)
VB_GORONS_CONSIDER_DODONGOS_CAVERN_FINISHED,
// Opt: *uint16_t
// Vanilla condition: false
VB_OVERRIDE_LINK_THE_GORON_DIALOGUE,
// Vanilla condition: CHECK_OWNED_EQUIP(EQUIP_TYPE_TUNIC, EQUIP_INV_TUNIC_GORON)
VB_GORONS_CONSIDER_TUNIC_COLLECTED,
// Opt: *EnSyatekiMan
// Vanilla condition: (this->getItemId == GI_QUIVER_40) || (this->getItemId == GI_QUIVER_50)
VB_BE_ELIGIBLE_FOR_ADULT_SHOOTING_GAME_REWARD,
// Opt: *EnOkarinaTag
// Vanilla condition: !Flags_GetEventChkInf(EVENTCHKINF_OPENED_THE_DOOR_OF_TIME)
VB_BE_ELIGIBLE_TO_OPEN_DOT,
// Opt: *BgDyYoseizo
// Vanilla condition: see soh/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c
VB_BE_ELIGIBLE_FOR_GREAT_FAIRY_REWARD,
// Vanilla condition: see CheckCarpentersFreed in z_en_ge1 and z_en_ge2
VB_GERUDOS_BE_FRIENDLY,
// Vanilla condition: switch
VB_GTG_GATE_BE_OPEN,
// Opt: *s16 (item id)
/* Vanilla condition:
In one case:
```
true
```
In the other case:
```
(i == ITEM_STICK) ||
(i == ITEM_NUT) ||
(i == ITEM_BOMB) ||
(i == ITEM_BOW) ||
(
(i >= ITEM_BOW_ARROW_FIRE) &&
(i <= ITEM_BOW_ARROW_LIGHT)
) ||
(i == ITEM_SLINGSHOT) ||
(i == ITEM_BOMBCHU) ||
(i == ITEM_BEAN)
```
*/
VB_DRAW_AMMO_COUNT,
// Opt: *ObjTsubo
VB_POT_SETUP_DRAW,
VB_POT_DROP_ITEM,
// Opt: *ActorDoorShutter
VB_LOCK_BOSS_DOOR,
// Vanilla condition: true
VB_HAVE_OCARINA_NOTE_D4,
// Vanilla condition: true
VB_HAVE_OCARINA_NOTE_D5,
// Vanilla condition: true
VB_HAVE_OCARINA_NOTE_F4,
// Vanilla condition: true
VB_HAVE_OCARINA_NOTE_B4,
// Vanilla condition: true
VB_HAVE_OCARINA_NOTE_A4,
// Vanilla condition: false
VB_SKIP_SCARECROWS_SONG,
// Vanilla condition: true
VB_RENDER_RUPEE_COUNTER,
// Vanilla condition: true
VB_RENDER_KEY_COUNTER,
// Vanilla condition: true
VB_SPAWN_HEART_CONTAINER,
// Vanilla condition: true
VB_BE_ABLE_TO_OPEN_DOORS,
// Vanilla condition: true
VB_REVERT_SPOILING_ITEMS,
// Vanilla condition: Flags_GetEventChkInf(EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP) || BREG(2)
VB_BE_ABLE_TO_PLAY_BOMBCHU_BOWLING,
// Vanilla condition: true
VB_BE_ABLE_TO_SAVE,
// Vanilla condition: true
VB_TRANSITION_TO_SAVE_SCREEN_ON_DEATH,
// Vanilla condition: true
VB_RENDER_YES_ON_CONTINUE_PROMPT,
// Vanilla condition: CHECK_BTN_ALL(input->press.button, BTN_START)
VB_CLOSE_PAUSE_MENU,
VB_KALEIDO_UNPAUSE_CLOSE,
// Vanilla condition: true
VB_SPAWN_BLUE_WARP,
// Vanilla condition: this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF
VB_BLUE_WARP_APPLY_ENTRANCE_AND_CUTSCENE,
// Vanilla condition: SurfaceType_GetSlope(&play->colCtx, poly, bgId) == 2
// Opt: int (original next entrance index)
VB_SET_VOIDOUT_FROM_SURFACE,
// Vanilla condition: this->collider.base.acFlags & 2
VB_BG_BREAKWALL_BREAK,
// Vanilla condition: true
VB_GANON_HEAL_BEFORE_FIGHT,
VB_FREEZE_LINK_FOR_BLOCK_THROW,
VB_MOVE_THROWN_ACTOR,
// Opt: *EnFr
// Vanilla condition: this->reward == GI_NONE
VB_FROGS_GO_TO_IDLE,
// Vanilla condition: var >= gSaveContext.health) && (gSaveContext.health > 0
VB_HEALTH_METER_BE_CRITICAL,
VB_CONSUME_SMALL_KEY,
// Vanilla condition: gSaveContext.inventory.dungeonKeys[gSaveContext.mapIndex] <= 0
VB_NOT_HAVE_SMALL_KEY,
// Vanilla condition: !Flags_GetSwitch(play, this->actor.params & 0x3F)
VB_DOOR_BE_LOCKED,
// Vanilla condition: ((doorActor->params >> 7) & 7) == 3
VB_DOOR_PLAY_SCENE_TRANSITION,
/*** Play Cutscenes ***/
VB_PLAY_TRANSITION_CS,
VB_PLAY_GORON_FREE_CS,
VB_PLAY_FIRE_ARROW_CS,
// Vanilla condition: INV_CONTENT(ITEM_ARROW_FIRE) == ITEM_NONE
VB_SPAWN_FIRE_ARROW,
// Opt: s32 entranceIndex
VB_ALLOW_ENTRANCE_CS_FOR_EITHER_AGE,
// Opt: s32 flag/EventChkInf, s32 entranceIndex
VB_PLAY_ENTRANCE_CS,
// Opt: *cutsceneId
VB_PLAY_ONEPOINT_CS,
// Opt: *actor
VB_PLAY_ONEPOINT_ACTOR_CS,
// Opt: *BgTreemouth
VB_PLAY_DEKU_TREE_INTRO_CS,
// Vanilla condition: !EventChkInf except for spirit & shadow temple which are !medallion, and Jabu which always is true
VB_PLAY_BLUE_WARP_CS,
VB_PLAY_DARUNIAS_JOY_CS,
VB_PLAY_SHIEK_BLOCK_MASTER_SWORD_CS,
// Vanilla condition: !EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL
VB_PLAY_PULL_MASTER_SWORD_CS,
VB_PLAY_DROP_FISH_FOR_JABU_CS,
// Opt: *EnKz
VB_PLAY_MWEEP_CS,
// Vanilla condition: player->getItemId == GI_GAUNTLETS_SILVER
VB_PLAY_NABOORU_CAPTURED_CS,
VB_PLAY_ZELDAS_LULLABY_CS,
// Opt: *EnSa
VB_PLAY_SARIAS_SONG_CS,
VB_PLAY_PRELUDE_OF_LIGHT_CS,
VB_PLAY_MINUET_OF_FOREST_CS,
VB_PLAY_BOLERO_OF_FIRE_CS,
VB_PLAY_SERENADE_OF_WATER_CS,
VB_PLAY_EYEDROPS_CS,
// Opt: *EnOkarinaTag
VB_PLAY_DRAIN_WELL_CS,
// Opt: *EnOkarinaTag
// Vanilla condition: !CHECK_QUEST_ITEM(QUEST_SONG_SUN)
VB_PLAY_SUNS_SONG_CS,
// Opt: *EnOkarinaTag
VB_PLAY_ROYAL_FAMILY_TOMB_CS,
VB_PLAY_ROYAL_FAMILY_TOMB_EXPLODE,
// Opt: *EnOkarinaTag
VB_PLAY_DOOR_OF_TIME_CS,
VB_PLAY_RAINBOW_BRIDGE_CS,
// Opt: *EnBox
VB_PLAY_SLOW_CHEST_CS,
//*Opt f32 sFishOnHandLength
// Vanilla condition: (s16)sFishingRecordLength < (s16)sFishOnHandLength
VB_SHOULD_CHECK_FOR_FISHING_RECORD,
//*Opt f32 sFishOnHandLength
// Vanilla condition is implied from previous code that could be bypassed by above hook
VB_SHOULD_SET_FISHING_RECORD,
//*Opt *s32 getItemId
VB_SHOULD_GIVE_VANILLA_FISHING_PRIZE,
VB_GIVE_RANDO_FISHING_PRIZE,
VB_PLAY_THROW_ANIMATION,
VB_INFLICT_VOID_DAMAGE,
// Vanilla condition: Close enough & various cutscene checks
// Opt: *EnRu1
VB_PLAY_CHILD_RUTO_INTRO,
// Vanilla condition: !INFTABLE_RUTO_IN_JJ_WANTS_TO_BE_TOSSED_TO_SAPPHIRE && in the big okto room
// Opt: *EnRu1
VB_RUTO_WANT_TO_BE_TOSSED_TO_SAPPHIRE,
// Vanilla condition: Landed on the platform in the big okto room
// Opt: *EnRu1
VB_RUTO_RUN_TO_SAPPHIRE,
// Vanilla condition: !Flags_GetInfTable(INFTABLE_145)
// Opt: *EnRu1
VB_RUTO_BE_CONSIDERED_NOT_KIDNAPPED,
/*** Give Items ***/
VB_SHORT_CIRCUIT_GIVE_ITEM_PROCESS,
VB_FREEZE_ON_SKULL_TOKEN,
// Opt: *EnBox
VB_GIVE_ITEM_FROM_CHEST,
// Opt: ItemID
VB_GIVE_ITEM_FROM_BLUE_WARP,
// Opt: *EnItem00
VB_GIVE_ITEM_FROM_ITEM_00,
// Opt: *EnSi
VB_GIVE_ITEM_SKULL_TOKEN,
// Opt: *EnCow
VB_GIVE_ITEM_FROM_COW,
// Opt: *EnDns
VB_GIVE_ITEM_FROM_BUSINESS_SCRUB,
// Opt: *EnMk
VB_GIVE_ITEM_FROM_LAB_DIVE,
// Opt: *EnDs
VB_GIVE_ITEM_FROM_GRANNYS_SHOP,
// Opt: *EnNiwLady
VB_GIVE_ITEM_FROM_ANJU_AS_CHILD,
// Opt: *EnNiwLady
VB_GIVE_ITEM_FROM_ANJU_AS_ADULT,
// Opt: *EnGo2
VB_GIVE_ITEM_FROM_GORON,
// Opt: *EnGb
VB_GIVE_ITEM_FROM_POE_COLLECTOR,
// Opt: *EnJs
VB_CHECK_RANDO_PRICE_OF_CARPET_SALESMAN,
VB_GIVE_ITEM_FROM_CARPET_SALESMAN,
VB_GIVE_BOMBCHUS_FROM_CARPET_SALESMAN,
// Opt: *EnGm
VB_CHECK_RANDO_PRICE_OF_MEDIGORON,
VB_GIVE_ITEM_FROM_MEDIGORON,
// Opt: *EnMs
VB_GIVE_ITEM_FROM_MAGIC_BEAN_SALESMAN,
// Opt: *EnSkj
VB_GIVE_ITEM_FROM_OCARINA_MEMORY_GAME,
// Opt: *EnSkj
VB_GIVE_ITEM_FROM_SKULL_KID_SARIAS_SONG,
VB_GIVE_ITEM_FROM_MAN_ON_ROOF,
// Opt: *EnSyatekiMan
VB_GIVE_ITEM_FROM_SHOOTING_GALLERY,
// Opt: *EnExItem
VB_GIVE_ITEM_FROM_TARGET_IN_WOODS,
// Opt: *EnTa
VB_GIVE_ITEM_FROM_TALONS_CHICKENS,
// Opt: *EnDivingGame
VB_GIVE_ITEM_FROM_DIVING_MINIGAME,
// Opt: *EnGe1
VB_GIVE_ITEM_FROM_HORSEBACK_ARCHERY,
// Opt: *EnSth
VB_GIVE_ITEM_FROM_SKULLTULA_REWARD,
// Opt: *EnHy
VB_GIVE_ITEM_FROM_LOST_DOG,
// Opt: *EnBomBowlPit
VB_GIVE_ITEM_FROM_BOMBCHU_BOWLING,
VB_GIVE_ITEM_GERUDO_MEMBERSHIP_CARD,
VB_GIVE_ITEM_FAIRY_OCARINA,
VB_GIVE_ITEM_WEIRD_EGG,
VB_GIVE_ITEM_LIGHT_ARROW,
VB_GIVE_ITEM_STRENGTH_1,
VB_GIVE_ITEM_ZELDAS_LETTER,
VB_GIVE_ITEM_MASTER_SWORD,
VB_GIVE_ITEM_OCARINA_OF_TIME,
VB_GIVE_ITEM_KOKIRI_EMERALD,
VB_GIVE_ITEM_GORON_RUBY,
VB_GIVE_ITEM_ZORA_SAPPHIRE,
VB_GIVE_ITEM_LIGHT_MEDALLION,
VB_GIVE_ITEM_FOREST_MEDALLION,
VB_GIVE_ITEM_FIRE_MEDALLION,
VB_GIVE_ITEM_WATER_MEDALLION,
VB_GIVE_ITEM_SPIRIT_MEDALLION,
VB_GIVE_ITEM_SHADOW_MEDALLION,
/*** Give Songs ***/
VB_GIVE_ITEM_ZELDAS_LULLABY,
VB_GIVE_ITEM_SARIAS_SONG,
VB_GIVE_ITEM_EPONAS_SONG,
VB_GIVE_ITEM_SUNS_SONG,
VB_GIVE_ITEM_SONG_OF_TIME,
VB_GIVE_ITEM_SONG_OF_STORMS,
VB_GIVE_ITEM_MINUET_OF_FOREST,
VB_GIVE_ITEM_BOLERO_OF_FIRE,
VB_GIVE_ITEM_SERENADE_OF_WATER,
VB_GIVE_ITEM_REQUIEM_OF_SPIRIT,
VB_GIVE_ITEM_NOCTURNE_OF_SHADOW,
VB_GIVE_ITEM_PRELUDE_OF_LIGHT,
/*** Adult Trade ***/
// Opt: *EnNiwLady
VB_TRADE_POCKET_CUCCO,
// Opt: *EnHs
VB_TRADE_COJIRO,
// Opt: *EnDs
VB_TRADE_ODD_MUSHROOM,
// Opt: *EnKo
VB_TRADE_ODD_POTION,
// Opt: *EnToryo
VB_TRADE_SAW,
// Opt: *EnKz,
VB_ADULT_KING_ZORA_ITEM_GIVE,
// Opt: *EnMk
VB_TRADE_FROG,
VB_TRADE_TIMER_ODD_MUSHROOM,
VB_TRADE_TIMER_FROG,
VB_TRADE_TIMER_EYEDROPS,
/*** Fixes ***/
// Vanilla condition: false
VB_FIX_SAW_SOFTLOCK,
/*** Cheats? ***/
VB_DEKU_STICK_BE_ON_FIRE,
VB_DEKU_STICK_BREAK,
VB_DEKU_STICK_BURN_DOWN,
VB_DEKU_STICK_BURN_OUT,
VB_DEKU_UPDATE_BURNING_DEKU_STICK,
/*** Quick Boss Deaths ***/
// Vanilla condition: true; Opt: *BossGanondrof
VB_PHANTOM_GANON_DEATH_SCENE,
// Opt: *EnIk
VB_NABOORU_KNUCKLE_DEATH_SCENE,
/*** Fishsanity ***/
// Vanilla condition: Actor is ACTOR_EN_ELF, ACTOR_EN_FISH, ACTOR_EN_ICE_HONO, or ACTOR_EN_INSECT
// Opt: *Actor
VB_BOTTLE_ACTOR,
/*** Shuffle Fairies ***/
// Opt: *EnElf
VB_SPAWN_FOUNTAIN_FAIRIES,
VB_FAIRY_HEAL,
// Opt: *ObjBean
VB_SPAWN_BEAN_STALK_FAIRIES,
// Opt: *ShotSun
VB_SPAWN_SONG_FAIRY,
// Opt: *EnGs
VB_SPAWN_GOSSIP_STONE_FAIRY,
/*** Equippable tunics and boots ***/
VB_CHANGE_HELD_ITEM_AND_USE_ITEM,
VB_ITEM_ACTION_BE_NONE,
VB_EXECUTE_PLAYER_ACTION_FUNC,
} GIVanillaBehavior;
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif

File diff suppressed because it is too large Load Diff