From 868029b213128eaa24d0b80f854f71704cfafe8c Mon Sep 17 00:00:00 2001 From: engineer124 <47598039+engineer124@users.noreply.github.com> Date: Wed, 12 Oct 2022 23:26:35 -0400 Subject: [PATCH] Import Camera Data (#1097) * import camera data * cleanup * easier-to-read cam-hud-visibility * PR Suggestions * fix camflag macros * fix bss * camera data summary * small cleanup * cleanup camera data * cam data mode enums --- include/functions.h | 112 +- include/variables.h | 391 +--- include/z64.h | 11 - include/z64bgcheck.h | 4 +- include/z64camera.h | 1270 ++++++++++- include/z64scene.h | 2 +- spec | 2 - src/boot_O2_g3/idle.c | 1 + src/code/z_camera.c | 198 +- src/code/z_camera_data.inc.c | 3810 ++++++++++++++++++++++++++++++++ tools/disasm/functions.txt | 142 +- tools/disasm/variables.txt | 592 ++--- tools/sizes/code_functions.csv | 142 +- 13 files changed, 5631 insertions(+), 1046 deletions(-) create mode 100644 src/code/z_camera_data.inc.c diff --git a/include/functions.h b/include/functions.h index f238824d55..0c5948ed8b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -960,115 +960,6 @@ s32 DynaPolyActor_IsInSwitchPressedState(DynaPolyActor* dynaActor); s32 DynaPolyActor_IsInHeavySwitchPressedState(DynaPolyActor* dynaActor); s32 DynaPolyActor_ValidateMove(PlayState* play, DynaPolyActor* dynaActor, s16 startRadius, s16 endRadius, s16 startHeight); -// void func_800CBC84(void); -// void func_800CBFA4(void); -// void func_800CC000(void); -// void func_800CC128(void); -// void func_800CC1C4(void); -// void func_800CC260(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE2 param_6); -// void func_800CC488(void); -// void func_800CC56C(void); -// void func_800CC5C8(void); -// void Camera_GetBgCamOrActorCsCamSetting(void); -// void Camera_GetBgCamOrActorCsCamFuncData(void); -// void Camera_GetBgCamIndex(void); -// void Camera_GetWaterBoxBgCamSetting(void); -// void func_800CC938(void); -// void func_800CC958(void); -// void func_800CC9C0(void); -// void func_800CCCEC(void); -// void func_800CD04C(void); -// void func_800CD288(void); -// void func_800CD2E0(void); -// void func_800CD2F0(void); -// void func_800CD3E4(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); -// void func_800CD44C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5); -// void func_800CD634(void); -// void func_800CD6CC(void); -// void func_800CD6F8(void); -// void func_800CD834(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); -// void func_800CDA14(void); -// void func_800CDB6C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE2 param_6); -// void func_800CDE6C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE2 param_8); -// void func_800CE2B8(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7, UNK_TYPE4 param_8, UNK_TYPE2 param_9); -// void func_800CE5E0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5); -// void func_800CE79C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5); -// void func_800CE930(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE2 param_5); -// void func_800CEAD8(void); -// void func_800CEC38(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); -// void func_800CED90(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7); -s32 Camera_ModeNop(Camera* camera); -s32 Camera_ModeNORM1(Camera* camera); -s32 Camera_ModeNORM2(Camera* camera); -s32 Camera_ModeNORM3(Camera* camera); -s32 Camera_ModeNORM4(Camera* camera); -s32 Camera_ModeNORM0(Camera* camera); -s32 Camera_ModePARA1(Camera* camera); -s32 Camera_ModePARA2(Camera* camera); -s32 Camera_ModePARA3(Camera* camera); -s32 Camera_ModePARA4(Camera* camera); -s32 Camera_ModePARA0(Camera* camera); -s32 Camera_ModeJUMP1(Camera* camera); -s32 Camera_ModeJUMP2(Camera* camera); -s32 Camera_ModeJUMP3(Camera* camera); -s32 Camera_ModeJUMP4(Camera* camera); -s32 Camera_ModeJUMP0(Camera* camera); -s32 Camera_ModeBATT1(Camera* camera); -s32 Camera_ModeBATT2(Camera* camera); -s32 Camera_ModeBATT3(Camera* camera); -s32 Camera_ModeBATT4(Camera* camera); -s32 Camera_ModeBATT0(Camera* camera); -s32 Camera_ModeKEEP1(Camera* camera); -s32 Camera_ModeKEEP2(Camera* camera); -s32 Camera_ModeKEEP3(Camera* camera); -s32 Camera_ModeKEEP4(Camera* camera); -// void func_800D7C44(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE1 param_5, UNK_TYPE1 param_6, UNK_TYPE1 param_7, UNK_TYPE1 param_8, UNK_TYPE1 param_9, UNK_TYPE1 param_10, UNK_TYPE2 param_11, UNK_TYPE2 param_12); -s32 Camera_ModeKEEP0(Camera* camera); -s32 Camera_ModeFIXD1(Camera* camera); -s32 Camera_ModeFIXD2(Camera* camera); -s32 Camera_ModeFIXD3(Camera* camera); -s32 Camera_ModeFIXD4(Camera* camera); -s32 Camera_ModeFIXD0(Camera* camera); -s32 Camera_ModeSUBJ1(Camera* camera); -s32 Camera_ModeSUBJ2(Camera* camera); -s32 Camera_ModeSUBJ3(Camera* camera); -s32 Camera_ModeSUBJ4(Camera* camera); -s32 Camera_ModeSUBJ0(Camera* camera); -s32 Camera_ModeDATA0(Camera* camera); -s32 Camera_ModeDATA1(Camera* camera); -s32 Camera_ModeDATA2(Camera* camera); -s32 Camera_ModeDATA3(Camera* camera); -s32 Camera_ModeDATA4(Camera* camera); -s32 Camera_ModeUNIQ1(Camera* camera); -s32 Camera_ModeUNIQ2(Camera* camera); -s32 Camera_ModeUNIQ3(Camera* camera); -s32 Camera_ModeUNIQ4(Camera* camera); -s32 Camera_ModeUNIQ5(Camera* camera); -s32 Camera_ModeUNIQ0(Camera* camera); -s32 Camera_ModeUNIQ6(Camera* camera); -s32 Camera_ModeUNIQ7(Camera* camera); -s32 Camera_ModeUNIQ8(Camera* camera); -s32 Camera_ModeUNIQ9(Camera* camera); -s32 Camera_ModeDEMO1(Camera* camera); -s32 Camera_ModeDEMO2(Camera* camera); -s32 Camera_ModeDEMO3(Camera* camera); -s32 Camera_ModeDEMO4(Camera* camera); -s32 Camera_ModeDEMO5(Camera* camera); -s32 Camera_ModeDEMO6(Camera* camera); -s32 Camera_ModeDEMO7(Camera* camera); -s32 Camera_ModeDEMO8(Camera* camera); -s32 Camera_ModeDEMO9(Camera* camera); -s32 Camera_ModeDEMO0(Camera* camera); -s32 Camera_ModeSPEC0(Camera* camera); -s32 Camera_ModeSPEC1(Camera* camera); -s32 Camera_ModeSPEC2(Camera* camera); -s32 Camera_ModeSPEC3(Camera* camera); -s32 Camera_ModeSPEC4(Camera* camera); -s32 Camera_ModeSPEC5(Camera* camera); -s32 Camera_ModeSPEC6(Camera* camera); -s32 Camera_ModeSPEC7(Camera* camera); -s32 Camera_ModeSPEC8(Camera* camera); -s32 Camera_ModeSPEC9(Camera* camera); Camera* Camera_Alloc(View* view, CollisionContext* bg, PlayState* play); void Camera_Free(Camera* camera); void Camera_Init(Camera* camera, View* view, CollisionContext* bg, PlayState* play); @@ -1102,7 +993,7 @@ s32 Camera_SetViewParam(Camera* camera, s32 viewFlag, void* param); // UNK_TYPE4 func_800DFF44(void); s16 Camera_SetFlags(Camera* iParm1, s16 flags); s16 Camera_ClearFlags(Camera* camera, s16 flags); -s32 Camera_ChangeDoorCam(Camera* camera, Actor* doorActor, s16 bgCamDataId, f32 arg3, s16 timer1, s16 timer2, s16 timer3); +s32 Camera_ChangeDoorCam(Camera* camera, Actor* doorActor, s16 bgCamIndex, f32 arg3, s16 timer1, s16 timer2, s16 timer3); s32 Camera_Copy(Camera* dstCamera, Camera* srcCamera); // UNK_TYPE4 func_800E01AC(void); Vec3f* Camera_GetQuakeOffset(Vec3f* dst, Camera* camera); @@ -1113,6 +1004,7 @@ void Camera_SetToTrackActor(Camera* camera, Actor* actor); void Camera_SetTargetActor(Camera* camera, Actor* actor); f32 Camera_GetWaterYPos(Camera* camera); void func_800E0348(Camera* camera); + DamageTable* DamageTable_Get(s32 index); void DamageTable_Clear(DamageTable* damageTable); f32 CollisionCheck_GetDamageAndEffectOnBumper(Collider* at, ColliderInfo* atInfo, Collider* ac, ColliderInfo* acInfo, u32* effect); diff --git a/include/variables.h b/include/variables.h index e865f890ef..e223fe65e7 100644 --- a/include/variables.h +++ b/include/variables.h @@ -433,392 +433,7 @@ extern s32 gMaxActorId; extern BgCheckSceneSubdivisionEntry sSceneSubdivisionList[]; extern BgSpecialSceneMaxObjects sCustomDynapolyMem[]; // extern UNK_TYPE1 D_801B4708; -// extern UNK_TYPE1 D_801B4710; -// extern UNK_TYPE1 D_801B4738; -// extern UNK_TYPE1 D_801B4768; -// extern UNK_TYPE1 D_801B4798; -// extern UNK_TYPE1 D_801B47CC; -// extern UNK_TYPE1 D_801B47F0; -// extern UNK_TYPE1 D_801B4824; -// extern UNK_TYPE1 D_801B4848; -// extern UNK_TYPE1 D_801B486C; -// extern UNK_TYPE1 D_801B4890; -// extern UNK_TYPE1 D_801B48B0; -// extern UNK_TYPE1 D_801B48D4; -// extern UNK_TYPE1 D_801B48F8; -// extern UNK_TYPE1 D_801B491C; -// extern UNK_TYPE1 D_801B4944; -// extern UNK_TYPE1 D_801B4974; -// extern UNK_TYPE1 D_801B49A4; -// extern UNK_TYPE1 D_801B49D4; -// extern UNK_TYPE1 D_801B4A04; -// extern UNK_TYPE1 D_801B4A34; -// extern UNK_TYPE1 D_801B4A5C; -// extern UNK_TYPE1 D_801B4A8C; -// extern UNK_TYPE1 D_801B4ABC; -// extern UNK_TYPE1 D_801B4AE0; -// extern UNK_TYPE1 D_801B4B08; -// extern UNK_TYPE1 D_801B4B38; -// extern UNK_TYPE1 D_801B4B60; -// extern UNK_TYPE1 D_801B4B90; -// extern UNK_TYPE1 D_801B4BB8; -// extern UNK_TYPE1 D_801B4BDC; -// extern UNK_TYPE1 D_801B4C04; -// extern UNK_TYPE1 D_801B4C34; -// extern UNK_TYPE1 D_801B4C5C; -// extern UNK_TYPE1 D_801B4C84; -// extern UNK_TYPE1 D_801B4CAC; -// extern UNK_TYPE1 D_801B4CD4; -// extern UNK_TYPE1 D_801B4CFC; -// extern UNK_TYPE1 D_801B4D24; -// extern UNK_TYPE1 D_801B4D34; -// extern UNK_TYPE1 D_801B4D44; -// extern UNK_TYPE1 D_801B4D68; -// extern UNK_TYPE1 D_801B4D8C; -// extern UNK_TYPE1 D_801B4DB0; -// extern UNK_TYPE1 D_801B4DD4; -// extern UNK_TYPE1 D_801B4DF8; -// extern UNK_TYPE1 D_801B4E2C; -// extern UNK_TYPE1 D_801B4E5C; -// extern UNK_TYPE1 D_801B4E90; -// extern UNK_TYPE1 D_801B4EB4; -// extern UNK_TYPE1 D_801B4ED8; -// extern UNK_TYPE1 D_801B4EDC; -// extern UNK_TYPE1 D_801B4EE4; -// extern UNK_TYPE1 D_801B4EF0; -// extern UNK_TYPE1 D_801B4EF4; -// extern UNK_TYPE1 D_801B4EF8; -// extern UNK_TYPE1 D_801B4F20; -// extern UNK_TYPE1 D_801B4F50; -// extern UNK_TYPE1 D_801B4F78; -// extern UNK_TYPE1 D_801B4FA0; -// extern UNK_TYPE1 D_801B4FC8; -// extern UNK_TYPE1 D_801B4FF0; -// extern UNK_TYPE1 D_801B5018; -// extern UNK_TYPE1 D_801B5034; -// extern UNK_TYPE1 D_801B5050; -// extern UNK_TYPE1 D_801B506C; -// extern UNK_TYPE1 D_801B507C; -// extern UNK_TYPE1 D_801B5094; -// extern UNK_TYPE1 D_801B50BC; -// extern UNK_TYPE1 D_801B50EC; -// extern UNK_TYPE1 D_801B511C; -// extern UNK_TYPE1 D_801B5150; -// extern UNK_TYPE1 D_801B5180; -// extern UNK_TYPE1 D_801B51A8; -// extern UNK_TYPE1 D_801B51D8; -// extern UNK_TYPE1 D_801B51FC; -// extern UNK_TYPE1 D_801B5220; -// extern UNK_TYPE1 D_801B5250; -// extern UNK_TYPE1 D_801B5280; -// extern UNK_TYPE1 D_801B52B0; -// extern UNK_TYPE1 D_801B52E0; -// extern UNK_TYPE1 D_801B5308; -// extern UNK_TYPE1 D_801B5338; -// extern UNK_TYPE1 D_801B535C; -// extern UNK_TYPE1 D_801B5380; -// extern UNK_TYPE1 D_801B53A4; -// extern UNK_TYPE1 D_801B53C8; -// extern UNK_TYPE1 D_801B53EC; -// extern UNK_TYPE1 D_801B5410; -// extern UNK_TYPE1 D_801B5434; -// extern UNK_TYPE1 D_801B5458; -// extern UNK_TYPE1 D_801B547C; -// extern UNK_TYPE1 D_801B54A0; -// extern UNK_TYPE1 D_801B54C4; -// extern UNK_TYPE1 D_801B54E8; -// extern UNK_TYPE1 D_801B550C; -// extern UNK_TYPE1 D_801B5530; -// extern UNK_TYPE1 D_801B5554; -// extern UNK_TYPE1 D_801B5578; -// extern UNK_TYPE1 D_801B559C; -// extern UNK_TYPE1 D_801B55C0; -// extern UNK_TYPE1 D_801B55E4; -// extern UNK_TYPE1 D_801B5608; -// extern UNK_TYPE1 D_801B562C; -// extern UNK_TYPE1 D_801B5650; -// extern UNK_TYPE1 D_801B5674; -// extern UNK_TYPE1 D_801B5698; -// extern UNK_TYPE1 D_801B56BC; -// extern UNK_TYPE1 D_801B56E0; -// extern UNK_TYPE1 D_801B5704; -// extern UNK_TYPE1 D_801B5728; -// extern UNK_TYPE1 D_801B574C; -// extern UNK_TYPE1 D_801B5770; -// extern UNK_TYPE1 D_801B577C; -// extern UNK_TYPE1 D_801B57A4; -// extern UNK_TYPE1 D_801B57CC; -// extern UNK_TYPE1 D_801B57F4; -// extern UNK_TYPE1 D_801B5824; -// extern UNK_TYPE1 D_801B5834; -// extern UNK_TYPE1 D_801B5844; -// extern UNK_TYPE1 D_801B5864; -// extern UNK_TYPE1 D_801B5884; -// extern UNK_TYPE1 D_801B58A0; -// extern UNK_TYPE1 D_801B58BC; -// extern UNK_TYPE1 D_801B58D8; -// extern UNK_TYPE1 D_801B58F4; -// extern UNK_TYPE1 D_801B5904; -// extern UNK_TYPE1 D_801B5928; -// extern UNK_TYPE1 D_801B5950; -// extern UNK_TYPE1 D_801B5978; -// extern UNK_TYPE1 D_801B59A8; -// extern UNK_TYPE1 D_801B59D0; -// extern UNK_TYPE1 D_801B59F4; -// extern UNK_TYPE1 D_801B5A00; -// extern UNK_TYPE1 D_801B5A0C; -// extern UNK_TYPE1 D_801B5A30; -// extern UNK_TYPE1 D_801B5A64; -// extern UNK_TYPE1 D_801B5A94; -// extern UNK_TYPE1 D_801B5ABC; -// extern UNK_TYPE1 D_801B5AF0; -// extern UNK_TYPE1 D_801B5B18; -// extern UNK_TYPE1 D_801B5B40; -// extern UNK_TYPE1 D_801B5B70; -// extern UNK_TYPE1 D_801B5B98; -// extern UNK_TYPE1 D_801B5BC8; -// extern UNK_TYPE1 D_801B5BFC; -// extern UNK_TYPE1 D_801B5C30; -// extern UNK_TYPE1 D_801B5C58; -// extern UNK_TYPE1 D_801B5C80; -// extern UNK_TYPE1 D_801B5CB0; -// extern UNK_TYPE1 D_801B5CCC; -// extern UNK_TYPE1 D_801B5CE8; -// extern UNK_TYPE1 D_801B5D10; -// extern UNK_TYPE1 D_801B5D40; -// extern UNK_TYPE1 D_801B5D74; -// extern UNK_TYPE1 D_801B5D9C; -// extern UNK_TYPE1 D_801B5DC4; -// extern UNK_TYPE1 D_801B5DD4; -// extern UNK_TYPE1 D_801B5DFC; -// extern UNK_TYPE1 D_801B5E2C; -// extern UNK_TYPE1 D_801B5E48; -// extern UNK_TYPE1 D_801B5E64; -// extern UNK_TYPE1 D_801B5E8C; -// extern UNK_TYPE1 D_801B5EB4; -// extern UNK_TYPE1 D_801B5EDC; -// extern UNK_TYPE1 D_801B5F0C; -// extern UNK_TYPE1 D_801B5F34; -// extern UNK_TYPE1 D_801B5F5C; -// extern UNK_TYPE1 D_801B5F8C; -// extern UNK_TYPE1 D_801B5FB0; -// extern UNK_TYPE1 D_801B5FD4; -// extern UNK_TYPE1 D_801B5FF8; -// extern UNK_TYPE1 D_801B601C; -// extern UNK_TYPE1 D_801B6044; -// extern UNK_TYPE1 D_801B6074; -// extern UNK_TYPE1 D_801B60A4; -// extern UNK_TYPE1 D_801B60D8; -// extern UNK_TYPE1 D_801B610C; -// extern UNK_TYPE1 D_801B6130; -// extern UNK_TYPE1 D_801B6154; -// extern UNK_TYPE1 D_801B617C; -// extern UNK_TYPE1 D_801B61AC; -// extern UNK_TYPE1 D_801B61DC; -// extern UNK_TYPE1 D_801B620C; -// extern UNK_TYPE1 D_801B623C; -// extern UNK_TYPE1 D_801B626C; -// extern UNK_TYPE1 D_801B6294; -// extern UNK_TYPE1 D_801B62C4; -// extern UNK_TYPE1 D_801B62F4; -// extern UNK_TYPE1 D_801B631C; -// extern UNK_TYPE1 D_801B634C; -// extern UNK_TYPE1 D_801B6374; -// extern UNK_TYPE1 D_801B63A4; -// extern UNK_TYPE1 D_801B63CC; -// extern UNK_TYPE1 D_801B63FC; -// extern UNK_TYPE1 D_801B6418; -// extern UNK_TYPE1 D_801B6434; -// extern UNK_TYPE1 D_801B645C; -// extern UNK_TYPE1 D_801B648C; -// extern UNK_TYPE1 D_801B64B4; -// extern UNK_TYPE1 D_801B64D8; -// extern UNK_TYPE1 D_801B64FC; -// extern UNK_TYPE1 D_801B652C; -// extern UNK_TYPE1 D_801B655C; -// extern UNK_TYPE1 D_801B6584; -// extern UNK_TYPE1 D_801B65AC; -// extern UNK_TYPE1 D_801B65DC; -// extern UNK_TYPE1 D_801B660C; -// extern UNK_TYPE1 D_801B6640; -// extern UNK_TYPE1 D_801B6674; -// extern UNK_TYPE1 D_801B6698; -// extern UNK_TYPE1 D_801B66C0; -// extern UNK_TYPE1 D_801B66E8; -// extern UNK_TYPE1 D_801B6710; -// extern UNK_TYPE1 D_801B6740; -// extern UNK_TYPE1 D_801B6774; -// extern UNK_TYPE1 D_801B679C; -// extern UNK_TYPE1 D_801B67C4; -// extern UNK_TYPE1 D_801B67EC; -// extern UNK_TYPE1 D_801B681C; -// extern UNK_TYPE1 D_801B684C; -// extern UNK_TYPE1 D_801B6880; -// extern UNK_TYPE1 D_801B68A8; -// extern UNK_TYPE1 D_801B68D0; -// extern UNK_TYPE1 D_801B68F8; -// extern UNK_TYPE1 D_801B692C; -// extern UNK_TYPE1 D_801B6954; -// extern UNK_TYPE1 D_801B697C; -// extern UNK_TYPE1 D_801B69A4; -// extern UNK_TYPE1 D_801B69CC; -// extern UNK_TYPE1 D_801B69FC; -// extern UNK_TYPE1 D_801B6A30; -// extern UNK_TYPE1 D_801B6A58; -// extern UNK_TYPE1 D_801B6A80; -// extern UNK_TYPE1 D_801B6AA8; -// extern UNK_TYPE1 D_801B6AD0; -// extern UNK_TYPE1 D_801B6AF8; -// extern UNK_TYPE1 D_801B6B28; -// extern UNK_TYPE1 D_801B6B50; -// extern UNK_TYPE1 D_801B6B78; -// extern UNK_TYPE1 D_801B6BA0; -// extern UNK_TYPE1 D_801B6BC8; -// extern UNK_TYPE1 D_801B6BF0; -// extern UNK_TYPE1 D_801B6C18; -// extern UNK_TYPE1 D_801B6C48; -// extern UNK_TYPE1 D_801B6C70; -// extern UNK_TYPE1 D_801B6C98; -// extern UNK_TYPE1 D_801B6CC0; -// extern UNK_TYPE1 D_801B6CF0; -// extern UNK_TYPE1 D_801B6D24; -// extern UNK_TYPE1 D_801B6D4C; -// extern UNK_TYPE1 D_801B6D74; -// extern UNK_TYPE1 D_801B6D90; -// extern UNK_TYPE1 D_801B6DB8; -// extern UNK_TYPE1 D_801B6DE0; -// extern UNK_TYPE1 D_801B6E08; -// extern UNK_TYPE1 D_801B6E30; -// extern UNK_TYPE1 D_801B6E58; -// extern UNK_TYPE1 D_801B6E80; -// extern UNK_TYPE1 D_801B6EA8; -// extern UNK_TYPE1 D_801B6ED0; -// extern UNK_TYPE1 D_801B6EF8; -// extern UNK_TYPE1 D_801B6F20; -// extern UNK_TYPE1 D_801B6F50; -// extern UNK_TYPE1 D_801B6F78; -// extern UNK_TYPE1 D_801B6FA0; -// extern UNK_TYPE1 D_801B6FB0; -// extern UNK_TYPE1 D_801B6FD8; -// extern UNK_TYPE1 D_801B7008; -// extern UNK_TYPE1 D_801B703C; -// extern UNK_TYPE1 D_801B7064; -// extern UNK_TYPE1 D_801B708C; -// extern UNK_TYPE1 D_801B70BC; -// extern UNK_TYPE1 D_801B70E4; -// extern UNK_TYPE1 D_801B7114; -// extern UNK_TYPE1 D_801B7148; -// extern UNK_TYPE1 D_801B7170; -// extern UNK_TYPE1 D_801B71A0; -// extern UNK_TYPE1 D_801B71D4; -// extern UNK_TYPE1 D_801B7204; -// extern UNK_TYPE1 D_801B7210; -// extern UNK_TYPE1 D_801B7244; -// extern UNK_TYPE1 D_801B7278; -// extern UNK_TYPE1 D_801B729C; -// extern UNK_TYPE1 D_801B72C0; -// extern UNK_TYPE1 D_801B72E4; -// extern UNK_TYPE1 D_801B7308; -// extern UNK_TYPE1 D_801B732C; -// extern UNK_TYPE1 D_801B7354; -// extern UNK_TYPE1 D_801B7384; -// extern UNK_TYPE1 D_801B73AC; -// extern UNK_TYPE1 D_801B73D4; -// extern UNK_TYPE1 D_801B74C4; -// extern UNK_TYPE1 D_801B759C; -// extern UNK_TYPE1 D_801B75F4; -// extern UNK_TYPE1 D_801B767C; -// extern UNK_TYPE1 D_801B7684; -// extern UNK_TYPE1 D_801B768C; -// extern UNK_TYPE1 D_801B7694; -// extern UNK_TYPE1 D_801B769C; -// extern UNK_TYPE1 D_801B76A4; -// extern UNK_TYPE1 D_801B76AC; -// extern UNK_TYPE1 D_801B777C; -// extern UNK_TYPE1 D_801B784C; -// extern UNK_TYPE1 D_801B791C; -// extern UNK_TYPE1 D_801B7984; -// extern UNK_TYPE1 D_801B79EC; -// extern UNK_TYPE1 D_801B79F4; -// extern UNK_TYPE1 D_801B7AE4; -// extern UNK_TYPE1 D_801B7B14; -// extern UNK_TYPE1 D_801B7B44; -// extern UNK_TYPE1 D_801B7B74; -// extern UNK_TYPE1 D_801B7BA4; -// extern UNK_TYPE1 D_801B7BAC; -// extern UNK_TYPE1 D_801B7BDC; -// extern UNK_TYPE1 D_801B7C0C; -// extern UNK_TYPE1 D_801B7C3C; -// extern UNK_TYPE1 D_801B7C44; -// extern UNK_TYPE1 D_801B7C54; -// extern UNK_TYPE1 D_801B7C5C; -// extern UNK_TYPE1 D_801B7C64; -// extern UNK_TYPE1 D_801B7D34; -// extern UNK_TYPE1 D_801B7D3C; -// extern UNK_TYPE1 D_801B7D44; -// extern UNK_TYPE1 D_801B7D4C; -// extern UNK_TYPE1 D_801B7D54; -// extern UNK_TYPE1 D_801B7D5C; -// extern UNK_TYPE1 D_801B7D64; -// extern UNK_TYPE1 D_801B7DCC; -// extern UNK_TYPE1 D_801B7DD4; -// extern UNK_TYPE1 D_801B7E3C; -// extern UNK_TYPE1 D_801B7F0C; -// extern UNK_TYPE1 D_801B7F14; -// extern UNK_TYPE1 D_801B7F1C; -// extern UNK_TYPE1 D_801B7F24; -// extern UNK_TYPE1 D_801B7F2C; -// extern UNK_TYPE1 D_801B7F34; -// extern UNK_TYPE1 D_801B7F3C; -// extern UNK_TYPE1 D_801B7FAC; -// extern UNK_TYPE1 D_801B807C; -// extern UNK_TYPE1 D_801B8084; -// extern UNK_TYPE1 D_801B8154; -// extern UNK_TYPE1 D_801B8224; -// extern UNK_TYPE1 D_801B82F4; -// extern UNK_TYPE1 D_801B82FC; -// extern UNK_TYPE1 D_801B8304; -// extern UNK_TYPE1 D_801B83D4; -// extern UNK_TYPE1 D_801B83DC; -// extern UNK_TYPE1 D_801B8434; -// extern UNK_TYPE1 D_801B843C; -// extern UNK_TYPE1 D_801B8444; -// extern UNK_TYPE1 D_801B8514; -// extern UNK_TYPE1 D_801B85E4; -// extern UNK_TYPE1 D_801B8664; -// extern UNK_TYPE1 D_801B8754; -// extern UNK_TYPE1 D_801B875C; -// extern UNK_TYPE1 D_801B87C4; -// extern UNK_TYPE1 D_801B8894; -// extern UNK_TYPE1 D_801B8964; -// extern UNK_TYPE1 D_801B8A34; -// extern UNK_TYPE1 D_801B8B04; -// extern UNK_TYPE1 D_801B8BD4; -// extern UNK_TYPE1 D_801B8CAC; -// extern UNK_TYPE1 D_801B8CB4; -// extern UNK_TYPE1 D_801B8D8C; -// extern UNK_TYPE1 D_801B8E5C; -// extern UNK_TYPE1 D_801B8F2C; -// extern UNK_TYPE1 D_801B8F34; -// extern UNK_TYPE1 D_801B900C; -// extern UNK_TYPE1 D_801B90D4; -// extern UNK_TYPE1 D_801B91A4; -// extern UNK_TYPE1 D_801B91AC; -// extern UNK_TYPE1 D_801B927C; -// extern UNK_TYPE1 D_801B9354; -// extern UNK_TYPE1 D_801B9424; -// extern UNK_TYPE1 D_801B94F4; -// extern UNK_TYPE1 D_801B95C4; -// extern UNK_TYPE1 D_801B95CC; -// extern UNK_TYPE1 D_801B969C; -// extern UNK_TYPE1 D_801B976C; -// extern UNK_TYPE1 D_801B979C; -// extern CameraStateParams cameraStates[91]; -// extern UNK_TYPE1 D_801B9CE2; -// extern UNK_PTR D_801B9CE4; -// extern camera_update_func cameraUpdateFuncs[71]; -// extern UNK_TYPE2 D_801B9E04; -// extern UNK_TYPE4 D_801B9E08; + // extern UNK_TYPE4 D_801B9E0C; // extern UNK_TYPE4 D_801B9E10; // extern UNK_TYPE4 D_801B9E14; @@ -833,8 +448,8 @@ extern BgSpecialSceneMaxObjects sCustomDynapolyMem[]; // extern UNK_TYPE1 D_801B9E84; // extern UNK_TYPE4 D_801B9EB4; // extern UNK_TYPE4 D_801B9ED4; -// extern UNK_TYPE4 D_801B9F04; -// extern UNK_TYPE2 D_801B9F0C; +// extern UNK_TYPE4 sEarthquakeFreq; +// extern UNK_TYPE2 sEarthquakeTimer; extern UNK_TYPE4 D_801B9F10; extern DamageTable sDamageTablePresets[23]; extern f32 damageMultipliers[16]; diff --git a/include/z64.h b/include/z64.h index b18ab8d869..dc01a5dc78 100644 --- a/include/z64.h +++ b/include/z64.h @@ -111,17 +111,6 @@ typedef struct { /* 0x8 */ void* end; } PolygonType2; // size = 0xC -typedef struct { - /* 0x0 */ s16 func; - /* 0x2 */ UNK_TYPE1 pad2[0x6]; -} CameraModeParams; // size = 0x8 - -typedef struct { - /* 0x0 */ u32 validModes; - /* 0x4 */ UNK_TYPE1 pad4[0x4]; - /* 0x8 */ CameraModeParams* modes; -} CameraStateParams; // size = 0xC - typedef struct { /* 0x0 */ s16 x; /* 0x2 */ s16 y; diff --git a/include/z64bgcheck.h b/include/z64bgcheck.h index c2a9bab7ce..ad5d4c4fb6 100644 --- a/include/z64bgcheck.h +++ b/include/z64bgcheck.h @@ -108,7 +108,7 @@ typedef struct { // 0x0008_0000 = ? // 0x0007_E000 = room index, 0x3F = all rooms // 0x0000_1F00 = lighting setting index - // 0x0000_00FF = CamData index + // 0x0000_00FF = bgCam index } WaterBox; // size = 0x10 typedef struct { @@ -122,7 +122,7 @@ typedef struct { // 0x001C_0000 = ? // 0x0003_E000 = ? // 0x0000_1F00 = scene exit index - // 0x0000_00FF = CamData index + // 0x0000_00FF = bgCam index // Word 1 // 0x0800_0000 = wall damage // 0x07E0_0000 = conveyor direction diff --git a/include/z64camera.h b/include/z64camera.h index e3b3a44838..9c101bf73b 100644 --- a/include/z64camera.h +++ b/include/z64camera.h @@ -2,6 +2,7 @@ #define Z64CAMERA_H #include "ultra64.h" +#include "z64save.h" // these two angle conversion macros are slightly inaccurate #define CAM_DEG_TO_BINANG(degrees) (s16)((degrees) * ((f32)0xFFFF / 360) + .5f) @@ -16,6 +17,72 @@ #define SUB_CAM_ID_DONE 0 // Used in some actors for variables holding sub camera IDs to indicate "subcam is finished" +#define CAM_HUD_VISIBILITY_SHIFT 8 +#define CAM_HUD_VISIBILITY_MASK (0x0F00) +#define CAM_HUD_VISIBILITY(hudVisibility) (((hudVisibility) & 0xF) << CAM_HUD_VISIBILITY_SHIFT) + +#define CAM_HUD_VISIBILITY_ALL \ + CAM_HUD_VISIBILITY(0) // HUD_VISIBILITY_ALL +#define CAM_HUD_VISIBILITY_NONE \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_NONE) +#define CAM_HUD_VISIBILITY_NONE_ALT \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_NONE_ALT) +#define CAM_HUD_VISIBILITY_HEARTS_WITH_OVERWRITE \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_HEARTS_WITH_OVERWRITE) +#define CAM_HUD_VISIBILITY_A \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_A) +#define CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE) +#define CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_WITH_OVERWRITE \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_WITH_OVERWRITE) +#define CAM_HUD_VISIBILITY_ALL_NO_MINIMAP_W_DISABLED \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_ALL_NO_MINIMAP_W_DISABLED) +#define CAM_HUD_VISIBILITY_B \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_B) +#define CAM_HUD_VISIBILITY_HEARTS_MAGIC \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_HEARTS_MAGIC) +#define CAM_HUD_VISIBILITY_B_ALT \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_B_ALT) +#define CAM_HUD_VISIBILITY_HEARTS \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_HEARTS) +#define CAM_HUD_VISIBILITY_A_B_MINIMAP \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_A_B_MINIMAP) +#define CAM_HUD_VISIBILITY_HEARTS_MAGIC_WITH_OVERWRITE \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_HEARTS_MAGIC_WITH_OVERWRITE) +#define CAM_HUD_VISIBILITY_HEARTS_MAGIC_C \ + CAM_HUD_VISIBILITY(HUD_VISIBILITY_HEARTS_MAGIC_C) +// HUD_VISIBILITY_ALL_NO_MINIMAP and above can not be set using `CAM_HUD_VISIBILITY` +#define CAM_HUD_VISIBILITY_IGNORE \ + CAM_HUD_VISIBILITY(0xF) + +/** + * letterboxFlag: determines the size of the letter-box window. See CAM_LETTERBOX_* enums. + * Can also add on the flag ( | CAM_LETTERBOX_INSTANT) to make the size change immediately + * hudVisibility: hides certain hud icons + * - A value of 0 in camera is translated to a hudVisibility of 50, + * which is the value to restore all hud icons to the screen (CAM_HUD_VISIBILITY_ALL) + * - A value of 0xF in camera results in no change in the hudVisibility (CAM_HUD_VISIBILITY_IGNORE) + * funcFlags: Custom flags for functions + */ +#define CAM_INTERFACE_FLAGS(letterboxFlag, hudVisibility, funcFlags) \ + (((letterboxFlag) & CAM_LETTERBOX_MASK) | (hudVisibility) | ((funcFlags) & 0xFF)) + +// Shrinking the window from the top and bottom with black borders (letterboxing) +#define CAM_LETTERBOX_MASK 0xF000 + +#define CAM_LETTERBOX_SIZE_MASK 0x7000 +#define CAM_LETTERBOX_NONE 0x0000 +// small/medium/large black borders +#define CAM_LETTERBOX_SMALL 0x1000 +#define CAM_LETTERBOX_MEDIUM 0x2000 +#define CAM_LETTERBOX_LARGE 0x3000 +#define CAM_LETTERBOX_NONE_4 0x4000 + +#define CAM_LETTERBOX_INSTANT 0x8000 // Bit to determine whether to set the current value directly (on), or to set the size target (off) + +#define CAM_LETTERBOX_IGNORE 0xF000 // No change in letterbox size, keep the previous size + + // Camera behaviorFlags. Flags specifically for settings, modes, and bgCam // Used to store current state, only CAM_BEHAVIOR_SETTING_1 and CAM_BEHAVIOR_BG_2 are read from and used in logic // Setting (0x1, 0x10) @@ -280,9 +347,9 @@ typedef enum { /* 0x04 */ CAM_DATA_04, /* 0x05 */ CAM_DATA_05, /* 0x06 */ CAM_DATA_06, - /* 0x07 */ CAM_DATA_07, + /* 0x07 */ CAM_DATA_FOV, /* 0x08 */ CAM_DATA_08, - /* 0x09 */ CAM_DATA_09, + /* 0x09 */ CAM_DATA_INTERFACE_FLAGS, /* 0x0A */ CAM_DATA_10, /* 0x0B */ CAM_DATA_11, /* 0x0C */ CAM_DATA_12, @@ -297,31 +364,1188 @@ typedef enum { /* 0x15 */ CAM_DATA_21, } CameraDataType; -typedef struct { - /* 0x0 */ s16 val; - /* 0x2 */ s16 param; -} CameraModeValue; // size = 0x4 - -typedef struct { - /* 0x0 */ s16 funcId; - /* 0x2 */ s16 numValues; - /* 0x4 */ CameraModeValue* values; -} CameraMode; // size = 0x8 - -/** - * Flags: - * (flags & 0xF): Priority (lower value has higher priority) - * (flags & 0x40000000): Store previous setting and bgCamData, also ignores water checks - * (flags & 0x80000000): Set camera setting based on bg/scene data and reset action function state +/*================================ + * MISC DATA + *================================ */ + +// Camera Collision Check typedef struct { - /* 0x0 */ u32 validModes; - /* 0x4 */ u32 flags; - /* 0x8 */ CameraMode* cameraModes; -} CameraSetting; // size = 0xC + /* 0x00 */ Vec3f pos; + /* 0x0C */ Vec3f norm; + /* 0x18 */ CollisionPoly* poly; + /* 0x1C */ VecSph sphNorm; + /* 0x24 */ s32 bgId; +} CameraCollision; // size = 0x28 + +typedef struct { + /* 0x00 */ Vec3f collisionClosePoint; + /* 0x0C */ CameraCollision atEyeColChk; + /* 0x34 */ CameraCollision eyeAtColChk; + /* 0x5C */ f32 swingUpdateRate; + /* 0x60 */ s16 pitch; + /* 0x62 */ s16 yaw; + /* 0x64 */ s16 unk_64; + /* 0x66 */ s16 timer; // startSwingTimer +} SwingAnimation; // size = 0x68 + + +/*================================ + * Camera Update-Function Data + *================================ + */ + +#define CAM_FUNCDATA_INTERFACE_FLAGS(interfaceFlags) \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + + +/*================================ + * Camera_Normal1() Data + *================================ + */ + +#define CAM_FUNCDATA_NORM1(yOffset, data01, data02, pitchTarget, eyeStepScale, posStepScale, yawDiffRange, fov, data08, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { pitchTarget, CAM_DATA_03 }, \ + { eyeStepScale, CAM_DATA_04 }, \ + { posStepScale, CAM_DATA_05 }, \ + { yawDiffRange, CAM_DATA_06 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 unk_00; // yOffset + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; // attenuationYawDiffRange + /* 0x18 */ f32 unk_18; // fovTarget + /* 0x1C */ f32 unk_1C; + /* 0x20 */ s16 unk_20; // pitchTarget + /* 0x22 */ s16 interfaceFlags; +} Normal1ReadOnlyData; // size = 0x24 + +typedef struct { + /* 0x00 */ f32 unk_00; // yPos + /* 0x04 */ f32 unk_04; // xzSpeed + /* 0x08 */ s16 unk_08; + /* 0x0A */ s16 unk_0A; // angle + /* 0x0C */ s16 unk_0C; // flags (May be s32) + /* 0x0E */ s16 unk_0E; + /* 0x10 */ f32 unk_10; // set to float +} Normal1ReadWriteData; // size = 0x14 + +typedef struct { + /* 0x00 */ Normal1ReadOnlyData roData; + /* 0x24 */ Normal1ReadWriteData rwData; +} Normal1; // size = 0x38 + +#define NORMAL1_FLAG_0 (1 << 0) +#define NORMAL1_FLAG_1 (1 << 1) +#define NORMAL1_FLAG_2 (1 << 2) +#define NORMAL1_FLAG_3 (1 << 3) +#define NORMAL1_FLAG_4 (1 << 4) +#define NORMAL1_FLAG_5 (1 << 5) +#define NORMAL1_FLAG_6 (1 << 6) +#define NORMAL1_FLAG_7 (1 << 7) + + +/*================================ + * Camera_Normal2() Data + *================================ + */ + +// Unused Camera RemoteBomb Setting + +#define CAM_FUNCDATA_NORM2(yOffset, data01, data02, pitchTarget, data04, fov, data08, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { pitchTarget, CAM_DATA_03 }, \ + { data04, CAM_DATA_04 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +#define NORMAL2_FLAG_1 (1 << 1) + + +/*================================ + * Camera_Normal3() Data + *================================ + */ + +#define CAM_FUNCDATA_NORM3(yOffset, data01, data02, pitchTarget, eyeStepScale, posStepScale, fov, data08, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { pitchTarget, CAM_DATA_03 }, \ + { eyeStepScale, CAM_DATA_04 }, \ + { posStepScale, CAM_DATA_05 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 yOffset; + /* 0x04 */ f32 distMin; + /* 0x08 */ f32 distMax; + /* 0x0C */ f32 yawUpdateRateInv; + /* 0x10 */ f32 pitchUpdateRateInv; + /* 0x14 */ f32 fovTarget; + /* 0x18 */ f32 maxAtLERPScale; + /* 0x1C */ s16 pitchTarget; + /* 0x1E */ s16 interfaceFlags; +} Normal3ReadOnlyData; // size = 0x20 + +typedef struct { + /* 0x00 */ f32 isZero; // set but unused + /* 0x04 */ f32 yPosOffset; + /* 0x08 */ s16 curPitch; + /* 0x0A */ s16 yawUpdateRate; + /* 0x0C */ s16 yawTimer; + /* 0x0E */ s16 distTimer; + /* 0x10 */ s16 flag; + /* 0x12 */ s16 is1200; // set but unused +} Normal3ReadWriteData; // size = 0x14 + +typedef struct { + /* 0x00 */ Normal3ReadOnlyData roData; + /* 0x20 */ Normal3ReadWriteData rwData; +} Normal3; // size = 0x34 + +#define NORMAL3_FLAG_1 (1 << 1) +#define NORMAL3_FLAG_5 (1 << 5) +#define NORMAL3_FLAG_6 (1 << 6) +#define NORMAL3_FLAG_7 (1 << 7) + + +/*================================ + * Camera_Normal0() Data + *================================ + */ + +#define CAM_FUNCDATA_NORM0(yOffset, data01, data02, data21, data04, yawDiffRange, fov, data08, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { data21, CAM_DATA_21 }, \ + { data04, CAM_DATA_04 }, \ + { yawDiffRange, CAM_DATA_06 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ s16 unk_1C; + /* 0x1E */ s16 interfaceFlags; +} Normal0ReadOnlyData; // size = 0x20 + +typedef struct { + /* 0x00 */ Vec3f unk_00; + /* 0x0C */ Vec3f unk_0C; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ s16 unk_20; + /* 0x22 */ s16 unk_22; + /* 0x24 */ f32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ s16 unk_2C; +} Normal0ReadWriteData; // size = 0x30 + +typedef struct { + /* 0x00 */ Normal0ReadOnlyData roData; + /* 0x20 */ Normal0ReadWriteData rwData; +} Normal0; // size = 0x50 + +#define NORMAL0_FLAG_0 (1 << 0) +#define NORMAL0_FLAG_2 (1 << 2) +#define NORMAL0_FLAG_4 (1 << 4) +#define NORMAL0_FLAG_7 (1 << 7) + + +/*================================ + * Camera_Parallel1() Data + *================================ + */ + +#define CAM_FUNCDATA_PARA1(yOffset, data01, data02, pitchTarget, data10, data04, data05, fov, data08, interfaceFlags, data11, data12) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { pitchTarget, CAM_DATA_03 }, \ + { data10, CAM_DATA_10 }, \ + { data04, CAM_DATA_04 }, \ + { data05, CAM_DATA_05 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS }, \ + { data11, CAM_DATA_11 }, \ + { data12, CAM_DATA_12 } + +// Same as above but with extra unused entry +#define CAM_FUNCDATA_PARA1_ALT(yOffset, data01, data02, pitchTarget, data10, data04, data05, fov, data08, interfaceFlags, data11, data12, data18) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { pitchTarget, CAM_DATA_03 }, \ + { data10, CAM_DATA_10 }, \ + { data04, CAM_DATA_04 }, \ + { data05, CAM_DATA_05 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS }, \ + { data11, CAM_DATA_11 }, \ + { data12, CAM_DATA_12 }, \ + { data18, CAM_DATA_18 } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ s16 unk_20; + /* 0x22 */ s16 unk_22; + /* 0x24 */ s16 unk_24; + /* 0x26 */ s16 interfaceFlags; +} Parallel1ReadOnlyData; // size = 0x28 + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 timer1; + /* 0x10 */ Vec3f unk_10; + /* 0x1C */ s16 unk_1C; + /* 0x1E */ s16 unk_1E; + /* 0x20 */ s16 unk_20; + /* 0x22 */ s16 timer2; + /* 0x24 */ s16 timer3; + /* 0x26 */ s16 unk_26; +} Parallel1ReadWriteData; // size = 0x28 + +typedef struct { + /* 0x00 */ Parallel1ReadOnlyData roData; + /* 0x28 */ Parallel1ReadWriteData rwData; +} Parallel1; // size = 0x50 + +#define PARALLEL1_FLAG_0 (1 << 0) +#define PARALLEL1_FLAG_1 (1 << 1) +#define PARALLEL1_FLAG_2 (1 << 2) +#define PARALLEL1_FLAG_3 (1 << 3) +#define PARALLEL1_FLAG_4 (1 << 4) +#define PARALLEL1_FLAG_5 (1 << 5) +#define PARALLEL1_FLAG_6 (1 << 6) +#define PARALLEL1_FLAG_7 (1 << 7) + + +/*================================ + * Camera_Parallel2() Data + *================================ + */ + +// Unused Camera Maze Setting + +#define CAM_FUNCDATA_PARA2(yOffset, data02, data01, pitchTarget, data04, fov, data08, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data02, CAM_DATA_02 }, \ + { data01, CAM_DATA_01 }, \ + { pitchTarget, CAM_DATA_03 }, \ + { data04, CAM_DATA_04 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +#define PARALLEL2_FLAG_1 (1 << 1) + + +/*================================ + * Camera_Jump2() Data + *================================ + */ + +#define CAM_FUNCDATA_JUMP2(yOffset, data01, data02, data20, data04, data05, fov, data08, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { data20, CAM_DATA_20 }, \ + { data04, CAM_DATA_04 }, \ + { data05, CAM_DATA_05 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ s16 interfaceFlags; +} Jump2ReadOnlyData; // size = 0x24 + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ s16 unk_04; + /* 0x06 */ s16 unk_06; + /* 0x08 */ s16 unk_08; + /* 0x0A */ s16 unk_0A; + /* 0x0C */ s16 timer; + /* 0x0E */ s16 unk_0E; + /* 0x10 */ s32 unk_10; // unused? + /* 0x1C */ s16 unk_1C; +} Jump2ReadWriteData; // size = 0x20 + +typedef struct { + /* 0x00 */ Jump2ReadOnlyData roData; + /* 0x24 */ Jump2ReadWriteData rwData; +} Jump2; // size = 0x44 + +#define JUMP2_FLAG_1 (1 << 1) +#define JUMP2_FLAG_2 (1 << 2) + + +/*================================ + * Camera_Jump3() Data + *================================ + */ + +#define CAM_FUNCDATA_JUMP3(yOffset, data01, data02, pitchTarget, data04, data05, yawDiffRange, fov, data08, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { pitchTarget, CAM_DATA_03 }, \ + { data04, CAM_DATA_04 }, \ + { data05, CAM_DATA_05 }, \ + { yawDiffRange, CAM_DATA_06 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 unk_00; // yOffset + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; // attenuationYawDiffRange + /* 0x18 */ f32 unk_18; // fovTarget + /* 0x1C */ f32 unk_1C; + /* 0x20 */ s16 unk_20; + /* 0x22 */ s16 interfaceFlags; +} Jump3ReadOnlyData; // size = 0x24 + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ s16 unk_04; + /* 0x06 */ s16 unk_06; + /* 0x08 */ s16 timer1; + /* 0x0A */ s16 unk_0A; + /* 0x0C */ s32 timer2; + /* 0x10 */ s16 unk_10; + /* 0x12 */ s16 unk_12; + /* 0x1C */ s16 unk_1C; +} Jump3ReadWriteData; // size = 0x20 + +typedef struct { + /* 0x00 */ Jump3ReadOnlyData roData; // yOffset + /* 0x24 */ Jump3ReadWriteData rwData; +} Jump3; // size = 0x44 + +#define JUMP3_FLAG_0 (1 << 0) +#define JUMP3_FLAG_2 (1 << 2) +#define JUMP3_FLAG_3 (1 << 3) +#define JUMP3_FLAG_4 (1 << 4) +#define JUMP3_FLAG_5 (1 << 5) +#define JUMP3_FLAG_6 (1 << 6) +#define JUMP3_FLAG_7 (1 << 7) + + +/*================================ + * Camera_Battle1() Data + *================================ + */ + +#define CAM_FUNCDATA_BATT1(yOffset, data01, data02, data13, data14, data15, data16, data17, fov, data08, interfaceFlags, data11, data18) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { data13, CAM_DATA_13 }, \ + { data14, CAM_DATA_14 }, \ + { data15, CAM_DATA_15 }, \ + { data16, CAM_DATA_16 }, \ + { data17, CAM_DATA_17 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS }, \ + { data11, CAM_DATA_11 }, \ + { data18, CAM_DATA_18 } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ f32 unk_20; + /* 0x24 */ f32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ f32 unk_2C; + /* 0x30 */ s16 interfaceFlags; +} Battle1ReadOnlyData; // size = 0x34 + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ Actor* unk_08; // targe3t + /* 0x0C */ s32 unk_0C; // unused? + /* 0x10 */ s16 unk_10; + /* 0x12 */ s16 unk_12; + /* 0x14 */ s16 unk_14; + /* 0x16 */ s16 unk_16; + /* 0x18 */ s16 unk_18; + /* 0x1A */ s16 unk_1A; +} Battle1ReadWriteData; // size = 0x1C + +typedef struct { + /* 0x00 */ Battle1ReadOnlyData roData; + /* 0x24 */ Battle1ReadWriteData rwData; +} Battle1; // size = 0x50 + +#define BATTLE1_FLAG_0 (1 << 0) +#define BATTLE1_FLAG_1 (1 << 1) +#define BATTLE1_FLAG_4 (1 << 4) +#define BATTLE1_FLAG_7 (1 << 7) + + +/*================================ + * Camera_KeepOn1() Data + *================================ + */ + +#define CAM_FUNCDATA_KEEP1(yOffset, data01, data02, data13, data14, data15, data16, data17, fov, data08, interfaceFlags, data11) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { data13, CAM_DATA_13 }, \ + { data14, CAM_DATA_14 }, \ + { data15, CAM_DATA_15 }, \ + { data16, CAM_DATA_16 }, \ + { data17, CAM_DATA_17 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS }, \ + { data11, CAM_DATA_11 } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ f32 unk_20; + /* 0x24 */ f32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ s16 interfaceFlags; +} KeepOn1ReadOnlyData; // size = 0x30 + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ Actor* unk_0C; + /* 0x10 */ s16 unk_10; + /* 0x12 */ s16 unk_12; + /* 0x14 */ s16 unk_14; + /* 0x16 */ s16 unk_16; + /* 0x18 */ s16 unk_18; +} KeepOn1ReadWriteData; // size = 0x1C + +typedef struct { + /* 0x00 */ KeepOn1ReadOnlyData roData; + /* 0x30 */ KeepOn1ReadWriteData rwData; +} KeepOn1; // size = 0x4C + +#define KEEPON1_FLAG_0 (1 << 0) +#define KEEPON1_FLAG_1 (1 << 1) +#define KEEPON1_FLAG_4 (1 << 4) +#define KEEPON1_FLAG_7 (1 << 7) + + +/*================================ + * Camera_KeepOn3() Data + *================================ + */ + +#define CAM_FUNCDATA_KEEP3(yOffset, data01, data02, data13, data14, data15, data16, data17, fov, data08, timer, interfaceFlags, data18) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { data13, CAM_DATA_13 }, \ + { data14, CAM_DATA_14 }, \ + { data15, CAM_DATA_15 }, \ + { data16, CAM_DATA_16 }, \ + { data17, CAM_DATA_17 }, \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { timer, CAM_DATA_04 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS }, \ + { data18, CAM_DATA_18 } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ f32 unk_20; + /* 0x24 */ f32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ s16 timer; // initial timer, stored at twice the value used in code + /* 0x2E */ s16 interfaceFlags; +} KeepOn3ReadOnlyData; // size = 0x30 + +typedef struct { + /* 0x00 */ f32 unk_00; // Vec3f? + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ Actor* unk_0C; + /* 0x10 */ Vec3f unk_10; + /* 0x1C */ s16 timer; +} KeepOn3ReadWriteData; // size = 0x20 + +typedef struct { + /* 0x00 */ KeepOn3ReadOnlyData roData; + /* 0x30 */ KeepOn3ReadWriteData rwData; +} KeepOn3; // size = 0x50 + +#define KEEPON3_FLAG_5 (1 << 5) +#define KEEPON3_FLAG_6 (1 << 6) +#define KEEPON3_FLAG_7 (1 << 7) + + +/*================================ + * Camera_KeepOn4() Data + *================================ + */ + +#define CAM_FUNCDATA_KEEP4(yOffset, data01, pitchTarget, data10, data18, fov, interfaceFlags, data04, timer) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { pitchTarget, CAM_DATA_03 }, \ + { data10, CAM_DATA_10 }, \ + { data18, CAM_DATA_18 }, \ + { fov, CAM_DATA_FOV }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS }, \ + { data04, CAM_DATA_04 }, \ + { timer, CAM_DATA_12 } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ s16 interfaceFlags; + /* 0x1E */ s16 timer; +} KeepOn4ReadOnlyData; // size = 0x20 + +typedef struct { + /* 0x00 */ f32 unk_00; // Vec3f? + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ Actor* unk_0C; + /* 0x10 */ s16 unk_10; + /* 0x12 */ s16 unk_12; + /* 0x14 */ s16 timer; + /* 0x16 */ s16 unk_16; + /* 0x18 */ s16 unk_18; +} KeepOn4ReadWriteData; // size = 0x1C + +typedef struct { + /* 0x00 */ KeepOn4ReadOnlyData roData; + /* 0x20 */ KeepOn4ReadWriteData rwData; +} KeepOn4; // size = 0x3C + +#define KEEPON4_FLAG_1 (1 << 1) +#define KEEPON4_FLAG_2 (1 << 2) +#define KEEPON4_FLAG_3 (1 << 3) +#define KEEPON4_FLAG_6 (1 << 6) + + +/*================================ + * Camera_Fixed1() Data + *================================ + */ + +#define CAM_FUNCDATA_FIXD1(yOffset, data04, fov, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data04, CAM_DATA_04 }, \ + { fov, CAM_DATA_FOV }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 fov; + /* 0x0C */ s16 interfaceFlags; +} Fixed1ReadOnlyData; // size = 0x10 + +typedef struct { + /* 0x00 */ PosRot eyePosRotTarget; + /* 0x14 */ s16 fov; + /* 0x18 */ Actor* focalActor; +} Fixed1ReadWriteData; // size = 0x1C + +typedef struct { + /* 0x00 */ Fixed1ReadOnlyData roData; + /* 0x10 */ Fixed1ReadWriteData rwData; +} Fixed1; // size = 0x2C + +#define FIXED1_FLAG_4 (1 << 4) + + +/*================================ + * Camera_Fixed2() Data + *================================ + */ + +#define CAM_FUNCDATA_FIXD2(yOffset, data01, data02, data04, data05, fov, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { data04, CAM_DATA_04 }, \ + { data05, CAM_DATA_05 }, \ + { fov, CAM_DATA_FOV }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ s16 interfaceFlags; +} Fixed2ReadOnlyData; // size = 0x1C + +typedef struct { + /* 0x00 */ Vec3f unk_00; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ s16 unk_1C; +} Fixed2ReadWriteData; // size = 0x20 + +typedef struct { + /* 0x00 */ Fixed2ReadOnlyData roData; + /* 0x1C */ Fixed2ReadWriteData rwData; +} Fixed2; // size = 0x3C + +#define FIXED2_FLAG_0 (1 << 0) +#define FIXED2_FLAG_1 (1 << 1) +#define FIXED2_FLAG_2 (1 << 2) +#define FIXED2_FLAG_3 (1 << 3) +#define FIXED2_FLAG_4 (1 << 4) +#define FIXED2_FLAG_5 (1 << 5) +#define FIXED2_FLAG_6 (1 << 6) +#define FIXED2_FLAG_7 (1 << 7) + + +/*================================ + * Camera_Fixed3() Data + *================================ + */ + +#define CAM_FUNCDATA_FIXD3(interfaceFlags) \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + + +/*================================ + * Camera_Subject1() Data + *================================ + */ + +#define CAM_FUNCDATA_SUBJ1(yOffset, data01, data02, data04, data19, data17, data18, fov, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { data02, CAM_DATA_02 }, \ + { data04, CAM_DATA_04 }, \ + { data19, CAM_DATA_19 }, \ + { data17, CAM_DATA_17 }, \ + { data18, CAM_DATA_18 }, \ + { fov, CAM_DATA_FOV }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ f32 unk_1C; + /* 0x20 */ s16 interfaceFlags; +} Subject1ReadOnlyData; // size = 0x24 + +typedef struct { + /* 0x0 */ f32 unk_00; + /* 0x4 */ s16 unk_04; // yaw + /* 0x6 */ s16 unk_06; // pitch + /* 0x8 */ s16 timer; +} Subject1ReadWriteData; // size = 0xC + +typedef struct { + /* 0x00 */ Subject1ReadOnlyData roData; + /* 0x24 */ Subject1ReadWriteData rwData; +} Subject1; // size = 0x30 + +#define SUBJECT1_FLAG_4 (1 << 4) + + +/*================================ + * Camera_Unique2() Data + *================================ + */ + +#define CAM_FUNCDATA_UNIQ2(yOffset, data01, fov, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data01, CAM_DATA_01 }, \ + { fov, CAM_DATA_FOV }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ s16 interfaceFlags; +} Unique2ReadOnlyData; // size = 0x14 + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ s16 unk_04; +} Unique2ReadWriteData; // size = 0x8 + +typedef struct { + /* 0x00 */ Unique2ReadOnlyData roData; + /* 0x14 */ Unique2ReadWriteData rwData; +} Unique2; // size = 0x1C + +#define UNIQUE2_FLAG_0 (1 << 0) +#define UNIQUE2_FLAG_1 (1 << 1) +#define UNIQUE2_FLAG_4 (1 << 4) +#define UNIQUE2_FLAG_5 (1 << 5) + + +/*================================ + * Camera_Unique0() Data + *================================ + */ + +#define CAM_FUNCDATA_UNIQ0(yOffset, data04, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { data04, CAM_DATA_04 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x0 */ f32 unk_00; + /* 0x4 */ f32 unk_04; + /* 0x8 */ s16 interfaceFlags; +} Unique0ReadOnlyData; // size = 0xC + +typedef struct { + /* 0x00 */ Vec3f unk_00; + /* 0x0C */ Vec3f unk_0C; + /* 0x18 */ f32 unk_18; + /* 0x1C */ Vec3f unk_1C; + /* 0x28 */ Vec3f unk_28; + /* 0x34 */ Vec3s unk_34; + /* 0x3A */ s16 unk_3A; + /* 0x3C */ s16 timer; + /* 0x3E */ s16 unk_3E; +} Unique0ReadWriteData; // size = 0x40 + +typedef struct { + /* 0x00 */ Unique0ReadOnlyData roData; + /* 0x0C */ Unique0ReadWriteData rwData; +} Unique0; // size = 0x4C + +#define UNIQUE0_FLAG_0 (1 << 0) +#define UNIQUE0_FLAG_1 (1 << 1) +#define UNIQUE0_FLAG_4 (1 << 4) + + +/*================================ + * Camera_Unique6() Data + *================================ + */ + +typedef struct { + /* 0x00 */ s16 interfaceFlags; +} Unique6ReadOnlyData; // size = 0x4 + +typedef struct { + /* 0x00 */ Unique6ReadOnlyData roData; +} Unique6; // size = 0x4 + +#define UNIQUE6_FLAG_0 (1 << 0) + + +/*================================ + * Camera_Unique7() Data + *================================ + */ + +#define CAM_FUNCDATA_UNIQ7(fov, interfaceFlags) \ + { fov, CAM_DATA_FOV }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + + +/*================================ + * Camera_Demo1() Data + *================================ + */ + +typedef struct { + /* 0x00 */ s16 interfaceFlags; +} Demo1ReadOnlyData; // size = 0x4 + +typedef struct { + /* 0x00 */ Vec3f unk_00; + /* 0x0C */ VecSph unk_0C; + /* 0x14 */ VecSph unk_14; + /* 0x1C */ s16 unk_1C; +} Demo1ReadWriteData; // size = 0x20 + +typedef struct { + /* 0x00 */ Demo1ReadOnlyData roData; + /* 0x04 */ Demo1ReadWriteData rwData; +} Demo1; // size = 0x24 + + +/*================================ + * Camera_Demo2() Data + *================================ + */ + +#define CAM_FUNCDATA_DEMO2(fov, data08, interfaceFlags) \ + { fov, CAM_DATA_FOV }, \ + { data08, CAM_DATA_08 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 fov; + /* 0x04 */ f32 unk_04; // unused + /* 0x08 */ s16 interfaceFlags; +} Demo2ReadOnlyData; // size = 0xC + +typedef struct { + /* 0x00 */ Vec3f initialAt; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ s16 animFrame; + /* 0x12 */ s16 yawDir; +} Demo2ReadWriteData; // size = 0x14 + +typedef struct { + /* 0x08 */ Demo2ReadOnlyData roData; + /* 0x0C */ Demo2ReadWriteData rwData; +} Demo2; // size = 0x20 + + +/*================================ + * Camera_Demo3() Data + *================================ + */ + +typedef struct { + /* 0x00 */ s16 interfaceFlags; +} Demo3ReadOnlyData; // size = 0x4 + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ s16 unk_04; + /* 0x06 */ s16 timer; +} Demo3ReadWriteData; // size = 0x8 + +typedef struct { + /* 0x00 */ Demo3ReadOnlyData roData; + /* 0x04 */ Demo3ReadWriteData rwData; +} Demo3; // size = 0xC + + +/*================================ + * Camera_Demo4() Data + *================================ + */ + +typedef struct { + /* 0x00 */ s16 interfaceFlags; +} Demo4ReadOnlyData; // size = 0x4 + +typedef struct { + /* 0x00 */ Vec3f unk_00; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ VecSph unk_18; // sp18-1C-20--24-26-28 // CutsceneCameraPoint? + /* 0x20 */ s16 unk_20; + /* 0x22 */ s16 timer; +} Demo4ReadWriteData; // size = 0x24 + +typedef struct { + /* 0x00 */ Demo4ReadOnlyData roData; + /* 0x04 */ Demo4ReadWriteData rwData; +} Demo4; // size = 0x28 + + +/*================================ + * Camera_Demo5() Data + *================================ + */ + +typedef struct { + /* 0x00 */ s16 interfaceFlags; +} Demo5ReadOnlyData; // size = 0x4 + +typedef struct { + /* 0x00 */ Vec3f unk_00; + /* 0x0C */ f32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ VecSph unk_1C; + /* 0x24 */ s16 unk_24; + /* 0x26 */ s16 timer; +} Demo5ReadWriteData; // size = 0x28 + +typedef struct { + /* 0x00 */ Demo5ReadOnlyData roData; + /* 0x04 */ Demo5ReadWriteData rwData; +} Demo5; // size = 0x2C + + +/*================================ + * Camera_Demo0() Data + *================================ + */ + +typedef struct { + /* 0x00 */ s16 interfaceFlags; +} Demo0ReadOnlyData; // size = 0x4 + +typedef struct { + /* 0x00 */ f32 unk_00; + /* 0x04 */ VecSph subAtToEye; + /* 0x0C */ VecSph atToEye; + /* 0x14 */ s16 unk_14; + /* 0x16 */ s16 unk_16; + /* 0x18 */ s16 unk_18; + /* 0x1A */ s16 timer; +} Demo0ReadWriteData; // size = 0x1C + +typedef struct { + /* 0x00 */ Demo0ReadOnlyData roData; + /* 0x04 */ Demo0ReadWriteData rwData; +} Demo0; // size = 0x20 + + +/*================================ + * Camera_Special5() Data + *================================ + */ + +#define CAM_FUNCDATA_SPEC5(yOffset, eyeDist, minDistForRot, fov, atMaxLERPScale, timerInit, pitch, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { eyeDist, CAM_DATA_01 }, \ + { minDistForRot, CAM_DATA_02 }, \ + { fov, CAM_DATA_03 }, \ + { atMaxLERPScale, CAM_DATA_FOV }, \ + { timerInit, CAM_DATA_08 }, \ + { pitch, CAM_DATA_12 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 yOffset; + /* 0x04 */ f32 eyeDist; + /* 0x08 */ f32 minDistForRot; + /* 0x0C */ f32 fovTarget; + /* 0x10 */ f32 atMaxLERPScale; + /* 0x14 */ s16 timerInit; + /* 0x16 */ s16 pitch; + /* 0x18 */ s16 interfaceFlags; +} Special5ReadOnlyData; // size = 0x1C + +typedef struct { + /* 0x00 */ s16 animTimer; +} Special5ReadWriteData; // size = 0x4 + +typedef struct { + /* 0x00 */ Special5ReadOnlyData roData; + /* 0x1C */ Special5ReadWriteData rwData; +} Special5; // size = 0x20 + + +/*================================ + * DOOR Data + *================================ + */ + +// For functions that deal with doors, an extra struct is added to the paramData + +typedef struct { + /* 0x00 */ Actor* doorActor; + /* 0x04 */ s16 bgCamIndex; + /* 0x06 */ union { + Vec3s eye; // position of the camera while exiting a spiral staircase + struct { + s16 timer1; // timer while camera is fixed in front of the door + s16 timer2; // timer while camera is behind the door looking at player + s16 timer3; // timer while camera turns around to face forward + }; + }; +} DoorParams; // size = 0xC + +#define CAM_GET_DOOR_PARAMS(type) &((type*)camera->paramData)->doorParams + + +/*================================ + * Camera_Special8() Data + *================================ + */ + +#define CAM_FUNCDATA_SPEC8(yOffset, eyeStepScale, posStepScale, fov, spiralDoorCsLength, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { eyeStepScale, CAM_DATA_04 }, \ + { posStepScale, CAM_DATA_05 }, \ + { fov, CAM_DATA_FOV }, \ + { spiralDoorCsLength, CAM_DATA_12 }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 yOffset; + /* 0x04 */ f32 eyeStepScale; + /* 0x08 */ f32 posStepScale; + /* 0x0C */ f32 fov; + /* 0x10 */ s16 spiralDoorCsLength; + /* 0x12 */ s16 interfaceFlags; +} Special8ReadOnlyData; // size = 0x14 + +typedef struct { + /* 0x00 */ Vec3f eye; + /* 0x0C */ s16 spiralDoorCsFrame; // 1/5th of the length of the cutscene + /* 0x0E */ s16 fov; +} Special8ReadWriteData; // size = 0x10 + +typedef struct { + /* 0x00 */ Special8ReadOnlyData roData; + /* 0x14 */ Special8ReadWriteData rwData; +} Special8; // size = 0x24 + +#define SPECIAL8_FLAG_0 (1 << 0) +#define SPECIAL8_FLAG_3 (1 << 3) + + +/*================================ + * Camera_Special9() Data + *================================ + */ + +#define CAM_FUNCDATA_SPEC9(yOffset, fov, interfaceFlags) \ + { yOffset, CAM_DATA_00 }, \ + { fov, CAM_DATA_FOV }, \ + { interfaceFlags, CAM_DATA_INTERFACE_FLAGS } + +typedef struct { + /* 0x00 */ f32 yOffset; + /* 0x04 */ f32 fov; + /* 0x08 */ s16 interfaceFlags; +} Special9ReadOnlyData; // size = 0xC + +typedef struct { + /* 0x00 */ s16 unk_00; +} Special9ReadWriteData; // size = 0x4 + +typedef struct { + /* 0x00 */ Special9ReadOnlyData roData; + /* 0x0C */ Special9ReadWriteData rwData; +} Special9; // size = 0x10 + +#define SPECIAL9_FLAG_0 (1 << 0) +#define SPECIAL9_FLAG_1 (1 << 1) +#define SPECIAL9_FLAG_3 (1 << 3) + +typedef union { + Normal1 norm1; + Normal3 norm3; + Normal0 norm0; + Parallel1 para1; + Jump2 jump2; + Jump3 jump3; + Battle1 batt1; + KeepOn1 keep1; + KeepOn3 keep3; + KeepOn4 keep4; + Fixed1 fixd1; + Fixed2 fixd2; + Subject1 subj1; + Unique2 uniq2; + Unique0 uniq0; + Unique6 uniq6; + Demo1 demo1; + Demo2 demo2; + Demo3 demo3; + Demo4 demo4; + Demo5 demo5; + Demo0 demo0; + Special5 spec5; + struct { + /* 0x0 */ DoorParams doorParams; + /* 0xC */ union { + Special8 spec8; + Special9 spec9; + }; + }; +} CamParamData; // size = 0x50 + +/*================================ + * MAIN CAMERA STRUCT + *================================ + */ typedef struct Camera { - /* 0x000 */ u8 paramData[0x50]; // function Data, acts like a heap that's reset every time a new action function is switched to + /* 0x000 */ CamParamData paramData; // update function data that's reset every time a new update function is switched to /* 0x050 */ Vec3f at; /* 0x05C */ Vec3f eye; /* 0x068 */ Vec3f up; diff --git a/include/z64scene.h b/include/z64scene.h index bb82574f8f..3af90e02ce 100644 --- a/include/z64scene.h +++ b/include/z64scene.h @@ -289,7 +289,7 @@ typedef struct { typedef struct { struct { s8 room; // Room to switch to - s8 bgCamDataId; // How the camera reacts during the transition. -2 for spiral staircase. -1 for generic door. 0+ will index scene CamData + s8 bgCamIndex; // How the camera reacts during the transition. -2 for spiral staircase. -1 for generic door. 0+ will index scene CamData } /* 0x0 */ sides[2]; // 0 = front, 1 = back /* 0x4 */ s16 id; /* 0x6 */ Vec3s pos; diff --git a/spec b/spec index 428de2321e..52dfd5ba89 100644 --- a/spec +++ b/spec @@ -451,8 +451,6 @@ beginseg include "build/src/code/z_bg_collect.o" include "build/src/code/z_bg_item.o" include "build/src/code/z_camera.o" - include "build/data/code/z_camera.data.o" - include "build/data/code/z_camera.bss.o" include "build/src/code/z_collision_btltbls.o" pad_text include "build/src/code/z_collision_check.o" diff --git a/src/boot_O2_g3/idle.c b/src/boot_O2_g3/idle.c index 942435fa7b..da93f13fdb 100644 --- a/src/boot_O2_g3/idle.c +++ b/src/boot_O2_g3/idle.c @@ -1,3 +1,4 @@ +#include "prevent_bss_reordering.h" #include "global.h" u8 D_80096B20 = 1; diff --git a/src/code/z_camera.c b/src/code/z_camera.c index da8a5f35aa..b4b6e57858 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -1,8 +1,23 @@ +#include "prevent_bss_reordering.h" #include "global.h" #include "z64quake.h" #include "z64shrink_window.h" #include "z64view.h" +#include "z_camera_data.inc.c" + +// BSS +s16 D_801EDBF0; +f32 D_801EDBF4; +f32 D_801EDBF8; +CameraCollision D_801EDC00; + +PlayState* sCamPlayState; +SwingAnimation D_801EDC30[4]; +Vec3f D_801EDDD0; +Vec3f D_801EDDE0; +Vec3f D_801EDDF0; + /** * Returns the absolute value for floats */ @@ -535,6 +550,9 @@ s32 Camera_GetWaterBoxBgCamSetting(Camera* camera, f32* waterY) { #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800CC9C0.s") +s32 D_801B9E5C = 0; +f32 D_801B9E60 = 0.0f; + #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800CCCEC.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800CD04C.s") @@ -577,147 +595,175 @@ s32 Camera_GetWaterBoxBgCamSetting(Camera* camera, f32* waterY) { #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800CED90.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeNop.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Noop.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeNORM1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeNORM2.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeNORM3.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeNORM4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeNORM0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Normal0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModePARA1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Parallel1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModePARA2.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Parallel2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModePARA3.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Parallel3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModePARA4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Parallel4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModePARA0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Parallel0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeJUMP1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeJUMP2.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeJUMP3.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeJUMP4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeJUMP0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Jump0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeBATT1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Battle1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeBATT2.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Battle2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeBATT3.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Battle3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeBATT4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Battle4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeBATT0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Battle0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeKEEP1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeKEEP2.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeKEEP3.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeKEEP4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeKEEP0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_KeepOn0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeFIXD1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeFIXD2.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeFIXD3.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeFIXD4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeFIXD0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Fixed0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSUBJ1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Subject1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSUBJ2.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Subject2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSUBJ3.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Subject3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSUBJ4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Subject4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSUBJ0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Subject0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDATA0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Data0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDATA1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Data1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDATA2.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Data2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDATA3.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Data3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDATA4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Data4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeUNIQ1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeUNIQ2.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeUNIQ3.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeUNIQ4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeUNIQ5.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique5.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeUNIQ0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeUNIQ6.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique6.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeUNIQ7.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique7.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeUNIQ8.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique8.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeUNIQ9.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Unique9.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDEMO1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDEMO2.s") +// Data for opening chests (default) +VecSph D_801B9E64[] = { + { 50.0f, 0xEE3A, 0xD558 }, + { 75.0f, 0x0000, 0x8008 }, + { 80.0f, 0xEE3A, 0x8008 }, + { 15.0f, 0xEE3A, 0x8008 }, +}; +Vec3f D_801B9E84[] = { + { 0.0f, 40.0f, 20.0f }, + { 0.0f, 40.0f, 0.0f }, + { 0.0f, 3.0f, -3.0f }, + { 0.0f, 3.0f, -3.0f }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDEMO3.s") +// Data for opening chests (goron) +VecSph D_801B9EB4[] = { + { 60.0f, 0xEE3A, 0xD558 }, + { 95.0f, 0x0000, 0x8008 }, + { 90.0f, 0xEE3A, 0x8008 }, + { 20.0f, 0xEE3A, 0x8008 }, +}; +Vec3f D_801B9ED4[] = { + { 0.0f, 40.0f, 20.0f }, + { 0.0f, 40.0f, 0.0f }, + { 0.0f, 3.0f, -3.0f }, + { 0.0f, 3.0f, -3.0f }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDEMO4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDEMO5.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDEMO6.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDEMO7.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo5.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDEMO8.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo6.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDEMO9.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo7.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeDEMO0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo8.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSPEC0.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo9.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSPEC1.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Demo0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSPEC2.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special0.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSPEC3.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special1.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSPEC4.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special2.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSPEC5.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special3.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSPEC6.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSPEC7.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special5.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSPEC8.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special6.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_ModeSPEC9.s") +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special7.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special8.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Special9.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Alloc.s") @@ -735,6 +781,14 @@ s32 Camera_GetWaterBoxBgCamSetting(Camera* camera, f32* waterY) { #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800DE324.s") +s16 sEarthquakeFreq[] = { + 0xFFC, // 1 Large Earthquake between CLOCK_TIME(0, 00) to CLOCK_TIME(1, 30) + 0x7FC, // 2 Large Earthquakes between CLOCK_TIME(1, 30) to CLOCK_TIME(3, 00) + 0x3FC, // 4 Large Earthquakes between CLOCK_TIME(3, 00) to CLOCK_TIME(4, 30) + 0x1FC, // 8 Large Earthquakes between CLOCK_TIME(4, 30) to CLOCK_TIME(6, 00) +}; +s16 sEarthquakeTimer = 0; + #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800DE62C.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800DE840.s") @@ -745,6 +799,8 @@ s32 Camera_GetWaterBoxBgCamSetting(Camera* camera, f32* waterY) { #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_Update.s") +s32 sModeChangeFlags = 0; + #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800DF498.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/Camera_SetMode.s") diff --git a/src/code/z_camera_data.inc.c b/src/code/z_camera_data.inc.c new file mode 100644 index 0000000000..a8e9fbb80a --- /dev/null +++ b/src/code/z_camera_data.inc.c @@ -0,0 +1,3810 @@ +#include "ultra64.h" +#include "global.h" + +/** + * All the data from `CameraSetting`, `CameraMode`, `sCameraUpdateHandlers`, and `CameraModeValue` below + * can be thought of as a single 2D ragged array table with holes in it, indexed by `[camSetting][camMode]`. + * + * The `CameraSetting` and `CameraMode` together build this 2D table, with data/functions/flags for each entry. + * + * Each entry in this 2D table consists of a both a camera-update function to run (`sCameraUpdateHandlers`), + * and a set of data to accompany that camera-update function (`CameraModeValue`). Often, `CameraModeValue` + * data entries are reused. Not every entry is valid, and the flags in the entry are used to indicate this. + */ + +typedef s32 (*CameraUpdateFunc)(Camera*); + +typedef struct { + /* 0x0 */ s16 val; + /* 0x2 */ s16 param; +} CameraModeValue; // size = 0x4 + +typedef struct { + /* 0x0 */ s16 funcId; + /* 0x2 */ s16 numValues; + /* 0x4 */ CameraModeValue* values; +} CameraMode; // size = 0x8 + +/** + * Flags: + * (flags & 0xF): Priority (lower value has higher priority) + * (flags & 0x40000000): Store previous setting and bgCamData, also ignores water checks + * (flags & 0x80000000): Set camera setting based on bg/scene data and reset action function state + */ +typedef struct { + /* 0x0 */ u32 validModes; + /* 0x4 */ u32 flags; + /* 0x8 */ CameraMode* cameraModes; +} CameraSetting; // size = 0xC + +/*===================================================================== + * Default Data: NORMAL0 Setting + *===================================================================== + */ + +CameraModeValue sSetNormal0ModeNormalData[] = { + CAM_FUNCDATA_NORM1(-20, 280, 320, 10, 22, 15, 40, 60, 84, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetNormal0ModeTargetData[] = { + CAM_FUNCDATA_PARA1(0, 350, 50, 0, 0, 5, 5, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 60, 0), +}; + +CameraModeValue sSetNormal0ModeFollowTargetData[] = { + CAM_FUNCDATA_KEEP1(-30, 180, 200, 20, 40, -5, 10, 15, 45, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 30), +}; + +CameraModeValue sSetNormal0ModeBattleData[] = { + CAM_FUNCDATA_BATT1(-30, 150, 250, 10, 60, -5, 20, 35, 55, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 25, 40), +}; + +CameraModeValue sSetNormal0ModeFirstPersonData[] = { + CAM_FUNCDATA_SUBJ1(0, 5, 50, 10, 0, 0, 0, 45, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue sSetNormal0ModeTalkData[] = { + CAM_FUNCDATA_KEEP3(-20, 80, 150, 50, 5, 20, 5, 40, 35, 50, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE, 0), + 60), +}; + +CameraModeValue sSetNormal0ModeClimbData[] = { + CAM_FUNCDATA_JUMP2(-20, 280, 320, 20, 5, 5, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue sSetNormal0ModeBowArrowData[] = { + CAM_FUNCDATA_SUBJ1(0xFFF9, 0xE, 50, 10, 0, -30, -5, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue sSetNormal0ModeBowArrowZData[] = { + CAM_FUNCDATA_SUBJ1(20, 70, 70, 10, 0xFF88, 20, 0, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue sSetNormal0ModeHookshotData[] = { + CAM_FUNCDATA_SPEC5(-20, 80, 250, 45, 60, 40, 6, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue sSetNormal0ModeBoomerangData[] = { + CAM_FUNCDATA_SUBJ1(5, 50, 50, 10, 0, 0, 0, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue sSetNormal0ModeSlingshotData[] = { + CAM_FUNCDATA_SUBJ1(0xFFF9, 14, 50, 10, 0, -50, -10, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue sSetNormal0ModeClimbZData[] = { + CAM_FUNCDATA_JUMP2(-20, 280, 320, 20, 999, 5, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, JUMP2_FLAG_2 | JUMP2_FLAG_1)), +}; + +CameraModeValue sSetNormal0ModeJumpData[] = { + CAM_FUNCDATA_NORM1(-20, 240, 340, 10, 30, 12, 40, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetNormal0ModeHangData[] = { + CAM_FUNCDATA_PARA1(-40, 320, 50, 40, 0, 8, 5, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_7 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 60, 12), +}; + +CameraModeValue sSetNormal0ModeHangZData[] = { + CAM_FUNCDATA_PARA1(0xFFB0, 300, 50, 70, 0, 12, 5, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_7 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 60, 2), +}; + +CameraModeValue sSetNormal0ModeFreeFallData[] = { + CAM_FUNCDATA_PARA1( + -10, 320, 100, 70, 0, 4, 5, 70, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_7 | PARALLEL1_FLAG_3), 60, 12), +}; + +CameraModeValue sSetNormal0ModeChargeData[] = { + CAM_FUNCDATA_PARA1(0xFFB0, 300, -20, 50, 0, 50, 5, 80, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0), 60, 10), +}; + +CameraModeValue sSetNormal0ModeChargeZData[] = { + CAM_FUNCDATA_PARA1(0xFFB0, 300, -20, 40, 0, 50, 5, 80, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 60, 0), +}; + +CameraModeValue sSetNormal0ModeStillData[] = { + CAM_FUNCDATA_NORM1(-20, 280, 320, 10, 100, 100, 100, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetNormal0ModePushPullData[] = { + CAM_FUNCDATA_PARA1( + 0, 350, 5, 45, 0, 5, 5, 70, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_5 | PARALLEL1_FLAG_1), 80, 0), +}; + +CameraModeValue sSetNormal0ModeFollowBoomerangData[] = { + CAM_FUNCDATA_KEEP1(-5, 220, 240, 5, 75, 10, 5, 40, 50, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 30), +}; + +CameraModeValue sSetNormal0ModeDekuShootData[] = { + CAM_FUNCDATA_SUBJ1(0, 5, 50, 10, 0, 50, 65, 45, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue sSetNormal0ModeGoronDashData[] = { + CAM_FUNCDATA_NORM1(50, 160, 255, -2, 12, 10, 40, 92, 88, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_2 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetNormal0ModeDekuHideData[] = { + CAM_FUNCDATA_PARA1( + 100, 300, -20, 40, 0, 4, 5, 80, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, PARALLEL1_FLAG_5 | PARALLEL1_FLAG_1), 80, + 20), +}; + +CameraModeValue sSetNormal0ModeDekuFlyData[] = { + CAM_FUNCDATA_NORM1(0xFFB0, 280, 320, 40, 20, 12, 40, 80, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetNormal0ModeDekuFlyZData[] = { + CAM_FUNCDATA_PARA1(0xFFBA, 350, 10, 10, 0, 5, 5, 70, 90, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_3 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 90, 0), +}; + +CameraModeValue sSetNormal0ModeGoronJumpData[] = { + CAM_FUNCDATA_NORM1( + -10, 160, 400, 0, 18, 12, 40, 80, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_2 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetNormal0ModeZoraFinData[] = { + CAM_FUNCDATA_SUBJ1(5, 100, 100, 10, 0, 0, 0, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +/*===================================================================== + * Custom Data: NORMAL3 Setting + *===================================================================== + */ + +CameraModeValue sSetNormal3ModeNormalData[] = { + CAM_FUNCDATA_JUMP3(-40, 280, 300, 20, 15, 5, 40, 60, 100, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_7 | JUMP3_FLAG_2)), +}; + +CameraModeValue sSetNormal3ModeTargetData[] = { + CAM_FUNCDATA_PARA1( + -50, 280, 40, 10, 0, 15, 5, 60, 100, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1 | PARALLEL1_FLAG_0), 80, 0), +}; + +CameraModeValue sSetNormal3ModeFreeFallData[] = { + CAM_FUNCDATA_JUMP3(0, 80, 100, 30, 10, 5, 40, 80, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_2)), +}; + +CameraModeValue sSetNormal3ModeGoronJumpData[] = { + CAM_FUNCDATA_JUMP3(-40, 150, 240, -5, 18, 5, 40, 70, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_3 | JUMP3_FLAG_2)), +}; + +CameraModeValue sSetNormal3ModeDekuFlyData[] = { + CAM_FUNCDATA_JUMP3(-40, 150, 250, 10, 18, 5, 60, 60, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_2 | JUMP3_FLAG_0)), +}; + +CameraModeValue sSetNormal3ModeDekuHideData[] = { + CAM_FUNCDATA_JUMP3( + 0xFFC4, 150, 250, -15, 18, 5, 60, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_7 | JUMP3_FLAG_2 | JUMP3_FLAG_0)), +}; + +CameraModeValue sSetNormal3ModeStillData[] = { + CAM_FUNCDATA_NORM1(-40, 80, 300, 20, 100, 100, 100, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetNormal3ModeGoronDashData[] = { + CAM_FUNCDATA_JUMP3(-40, 180, 200, 5, 20, 5, 40, 80, 35, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_3 | JUMP3_FLAG_2)), +}; + +/*===================================================================== + * Custom Data: PIVOT_DIVING Setting + *===================================================================== + */ + +CameraModeValue sSetPivotDivingModeNormalData[] = { + CAM_FUNCDATA_UNIQ2(-40, 60, 60, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, UNIQUE2_FLAG_1)), +}; + +CameraModeValue sSetPivotDivingModeTargetData[] = { + CAM_FUNCDATA_UNIQ2(-30, 45, 100, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, UNIQUE2_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: HORSE Setting + *===================================================================== + */ + +CameraModeValue sSetHorseModeNormalData[] = { + CAM_FUNCDATA_NORM3(-50, 220, 250, 10, 10, 20, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_WITH_OVERWRITE, + NORMAL3_FLAG_5)), +}; + +CameraModeValue sSetHorseModeTargetData[] = { + CAM_FUNCDATA_NORM3(-40, 180, 200, -3, 2, 100, 50, 90, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, + CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_WITH_OVERWRITE, NORMAL3_FLAG_1)), +}; + +CameraModeValue sSetHorseModeJumpData[] = { + CAM_FUNCDATA_NORM3( + -50, 220, 260, 10, 10, 20, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_WITH_OVERWRITE, 0)), +}; + +CameraModeValue sSetHorseModeBowArrowData[] = { + CAM_FUNCDATA_SUBJ1( + 0xFFF9, 14, 100, 10, 0, -30, -5, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_WITH_OVERWRITE, 0)), +}; + +CameraModeValue sSetHorseModeSlingShotData[] = { + CAM_FUNCDATA_SUBJ1(0xFFF9, 14, 100, 10, 0, -50, -10, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue sSetHorseModeBattleData[] = { + CAM_FUNCDATA_BATT1(0xFFC4, 180, 280, 10, 60, -5, 20, 60, 60, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 25, 40), +}; + +CameraModeValue sSetHorseModeFollowTargetData[] = { + CAM_FUNCDATA_KEEP1(0xFFC4, 180, 220, 25, 45, -5, 15, 15, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, + CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_WITH_OVERWRITE, KEEPON1_FLAG_0), + 20), +}; + +CameraModeValue sSetHorseModeTalkData[] = { + CAM_FUNCDATA_KEEP3(-50, 140, 200, 40, 10, 0, 5, 100, 45, 50, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE, 0), + 60), +}; + +CameraModeValue sSetHorseModeStillData[] = { + CAM_FUNCDATA_NORM3(-40, 180, 200, -3, 100, 100, 60, 10, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, NORMAL3_FLAG_7)), +}; + +/*===================================================================== + * Custom Data: ZORA_DIVING Setting + *===================================================================== + */ + +CameraModeValue sSetZoraDivingModeNormalData[] = { + CAM_FUNCDATA_NORM3(-20, 250, 250, 0, 20, 20, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_WITH_OVERWRITE, + NORMAL3_FLAG_7)), +}; + +/*===================================================================== + * Custom Data: PREREND_FIXED Setting + *===================================================================== + */ + +CameraModeValue sSetPrerendFixedModeNormalData[] = { + CAM_FUNCDATA_FIXD3(CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +/*===================================================================== + * Custom Data: PREREND_PIVOT Setting + *===================================================================== + */ + +CameraModeValue sSetPrerendPivotModeNormalData[] = { + CAM_FUNCDATA_UNIQ7(60, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +/*===================================================================== + * Custom Data: DOORC Setting + *===================================================================== + */ + +CameraModeValue sSetDoorCModeNormalData[] = { + CAM_FUNCDATA_SPEC9(-5, 60, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE_4, CAM_HUD_VISIBILITY_NONE_ALT, SPECIAL9_FLAG_1)), +}; + +/*===================================================================== + * Custom Data: DEMO0 Setting + *===================================================================== + */ + +CameraModeValue D_801B4EF0[] = { + CAM_FUNCDATA_INTERFACE_FLAGS(CAM_INTERFACE_FLAGS(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NONE_ALT, 0)), +}; + +/*===================================================================== + * Custom Data: Various Cutscenes + *===================================================================== + */ + +// Camera Settings: FREE0, NAVI, TRANSFORM, ATTENTION, WARP1, STOP0, CONNECT0 +CameraModeValue sSetCutscenesModeNormalData[] = { + CAM_FUNCDATA_INTERFACE_FLAGS(CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0)), +}; + +/*===================================================================== + * Custom Data: FUKAN0 Setting + *===================================================================== + */ + +CameraModeValue D_801B4EF8[] = { + CAM_FUNCDATA_NORM1( + -40, 600, 600, 45, 50, 10, 50, 45, 90, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_6 | NORMAL1_FLAG_1)), +}; + +CameraModeValue D_801B4F20[] = { + CAM_FUNCDATA_PARA1(-40, 400, 25, 60, 0, 5, 5, 60, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 80, 0), +}; + +CameraModeValue D_801B4F50[] = { + CAM_FUNCDATA_NORM1(-40, 600, 600, 45, 50, 10, 50, 45, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B4F78[] = { + CAM_FUNCDATA_NORM1(-40, 600, 600, 45, 100, 100, 100, 45, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: NORMAL1 Setting + *===================================================================== + */ + +CameraModeValue sSetNormal1ModeNormalData[] = { + CAM_FUNCDATA_NORM1(-20, 280, 320, 15, 18, 12, 70, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1)), +}; + +CameraModeValue sSetNormal1ModeStillData[] = { + CAM_FUNCDATA_NORM1(-20, 280, 320, 15, 100, 100, 100, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: NANAME Setting + *===================================================================== + */ + +// Normal4 +CameraModeValue D_801B4FF0[] = { + CAM_FUNCDATA_NORM1( + -20, 280, 320, 10, 18, 12, 40, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: CIRCLE0 Setting + *===================================================================== + */ + +CameraModeValue D_801B5018[] = { + CAM_FUNCDATA_FIXD2(-40, 40, 0x3200, 10, 20, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, FIXED2_FLAG_0)), +}; + +CameraModeValue D_801B5034[] = { + CAM_FUNCDATA_FIXD2(-40, 40, 0x3200, 100, 80, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, FIXED2_FLAG_6)), +}; + +CameraModeValue D_801B5050[] = { + CAM_FUNCDATA_FIXD2(-40, 40, 200, 100, 50, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, FIXED2_FLAG_7)), +}; + +/*===================================================================== + * Custom Data: FIXED0 Setting + *===================================================================== + */ + +CameraModeValue D_801B506C[] = { + CAM_FUNCDATA_FIXD1(-40, 10, 60, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +/*===================================================================== + * Custom Data: SPIRAL_DOOR Setting + *===================================================================== + */ + +CameraModeValue sSetSpiralDoorModeNormalData[] = { + CAM_FUNCDATA_SPEC8(-40, 50, 80, 60, 10, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, SPECIAL8_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: DUNGEON0 Setting + *===================================================================== + */ + +CameraModeValue sSetDungeon0ModeNormalData[] = { + CAM_FUNCDATA_NORM1(-20, 150, 250, 5, 18, 5, 45, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon0ModeTargetData[] = { + CAM_FUNCDATA_PARA1( + 0, 200, 25, 5, 0, 5, 5, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_6 | PARALLEL1_FLAG_1), 80, 0), +}; + +CameraModeValue sSetDungeon0ModeFollowTargetData[] = { + CAM_FUNCDATA_KEEP1(-20, 120, 140, 25, 45, -5, 15, 15, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 20), +}; + +CameraModeValue sSetDungeon0ModeBattleData[] = { + CAM_FUNCDATA_BATT1(-30, 150, 240, 10, 50, 5, 10, 25, 50, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 25, 50), +}; + +CameraModeValue sSetDungeon0ModeFollowBoomerangData[] = { + CAM_FUNCDATA_KEEP1(-5, 150, 240, 5, 65, 10, 5, 40, 55, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 30), +}; + +CameraModeValue sSetDungeon0ModeJumpData[] = { + CAM_FUNCDATA_NORM1(-20, 150, 250, 5, 24, 5, 50, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon0ModeFreeFallData[] = { + CAM_FUNCDATA_PARA1( + -10, 250, 100, 70, 0, 4, 5, 70, 10, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_7 | PARALLEL1_FLAG_3), 70, 12), +}; + +CameraModeValue sSetDungeon0ModeClimbData[] = { + CAM_FUNCDATA_JUMP2(-40, 150, 250, 20, 5, 5, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue sSetDungeon0ModeClimbZData[] = { + CAM_FUNCDATA_JUMP2(-40, 250, 250, 20, 999, 5, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, JUMP2_FLAG_2 | JUMP2_FLAG_1)), +}; + +CameraModeValue sSetDungeon0ModeChargeData[] = { + CAM_FUNCDATA_PARA1(0, 250, -20, 50, 0, 50, 5, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0), 60, 10), +}; + +CameraModeValue sSetDungeon0ModeChargeZData[] = { + CAM_FUNCDATA_PARA1(50, 250, -20, 40, 0, 50, 5, 80, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 60, 0), +}; + +CameraModeValue sSetDungeon0ModeHangData[] = { + CAM_FUNCDATA_PARA1(-40, 220, 50, 40, 0, 12, 5, 60, 10, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_7 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 60, 12), +}; + +CameraModeValue sSetDungeon0ModeHangZData[] = { + CAM_FUNCDATA_PARA1(0xFFB0, 250, 50, 70, 0, 10, 5, 45, 10, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_7 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 60, 2), +}; + +CameraModeValue sSetDungeon0ModeStillData[] = { + CAM_FUNCDATA_NORM1( + -10, 180, 220, 10, 100, 100, 100, 60, 10, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon0ModePushPullData[] = { + CAM_FUNCDATA_PARA1( + 0, 250, 5, 30, 0, 5, 5, 70, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_5 | PARALLEL1_FLAG_1), 80, 0), +}; + +/*===================================================================== + * Custom Data: ITEM0 Setting + *===================================================================== + */ + +CameraModeValue D_801B5338[] = { + CAM_FUNCDATA_KEEP4(5, 70, 25, 0, 0, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B535C[] = { + CAM_FUNCDATA_KEEP4(-30, 35, 40, 0, 6, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B5380[] = { + CAM_FUNCDATA_KEEP4(-15, 90, -8, 0, 0, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B53A4[] = { + CAM_FUNCDATA_KEEP4(20, 45, 0x0037, 0, 12, 55, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B53C8[] = { + CAM_FUNCDATA_KEEP4(10, 70, 30, 0, 4, 42, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +/*===================================================================== + * Custom Data: ITEM1 Setting + *===================================================================== + */ + +CameraModeValue D_801B53EC[] = { + CAM_FUNCDATA_KEEP4(-45, 75, 0xFFF4, 165, 5, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B5410[] = { + CAM_FUNCDATA_KEEP4(-40, 70, 20, 140, 5, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B5434[] = { + CAM_FUNCDATA_KEEP4(-20, 85, -5, 140, 15, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B5458[] = { + CAM_FUNCDATA_KEEP4(-50, 0x005F, -15, 160, 6, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B547C[] = { + CAM_FUNCDATA_KEEP4( + 0xFFC4, 70, -15, 0xFF74, 30, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3 | KEEPON4_FLAG_2), 25, 6), +}; + +/*===================================================================== + * Custom Data: ITEM2 Setting + *===================================================================== + */ + +CameraModeValue D_801B54A0[] = { + CAM_FUNCDATA_KEEP4(-40, 0x006E, 5, 150, 5, 65, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B54C4[] = { + CAM_FUNCDATA_KEEP4(0xFFC4, 0x0082, -10, 0x00AA, 5, 65, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B54E8[] = { + CAM_FUNCDATA_KEEP4(-40, 0x006E, 0, 140, 5, 65, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B550C[] = { + CAM_FUNCDATA_KEEP4(-50, 140, -10, 160, 5, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B5530[] = { + CAM_FUNCDATA_KEEP4(0xFFC4, 120, -8, 150, 5, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +/*===================================================================== + * Custom Data: ITEM3 Setting + *===================================================================== + */ + +CameraModeValue D_801B5554[] = { + CAM_FUNCDATA_KEEP4( + -15, 65, 50, 0xFF65, 5, 75, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3 | KEEPON4_FLAG_2), 25, 6), +}; + +CameraModeValue D_801B5578[] = { + CAM_FUNCDATA_KEEP4( + -20, 60, 50, 0xFF65, 5, 75, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3 | KEEPON4_FLAG_2), 25, 6), +}; + +CameraModeValue D_801B559C[] = { + CAM_FUNCDATA_KEEP4(-15, 60, 40, 0x00AA, 5, 75, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 6), +}; + +CameraModeValue D_801B55C0[] = { + CAM_FUNCDATA_KEEP4( + -25, 0x005F, 50, 0xFF65, 5, 75, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3 | KEEPON4_FLAG_2), 25, 6), +}; + +CameraModeValue D_801B55E4[] = { + CAM_FUNCDATA_KEEP4( + -20, 75, 45, 0xFF6A, -5, 75, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3 | KEEPON4_FLAG_2), 25, 6), +}; + +/*===================================================================== + * Custom Data: WARP0 Setting + *===================================================================== + */ + +CameraModeValue D_801B5608[] = { + CAM_FUNCDATA_KEEP4(-45, 165, 0, 0x00B2, 0, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, + KEEPON4_FLAG_6 | KEEPON4_FLAG_3 | KEEPON4_FLAG_2 | KEEPON4_FLAG_1), + 30, 10), +}; + +CameraModeValue D_801B562C[] = { + CAM_FUNCDATA_KEEP4(0xFFC9, 180, 0, 0x00B2, 0, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, + KEEPON4_FLAG_6 | KEEPON4_FLAG_3 | KEEPON4_FLAG_2 | KEEPON4_FLAG_1), + 30, 10), +}; + +CameraModeValue D_801B5650[] = { + CAM_FUNCDATA_KEEP4(-20, 0x00AF, 0, 0x00B2, 0, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, + KEEPON4_FLAG_6 | KEEPON4_FLAG_3 | KEEPON4_FLAG_2 | KEEPON4_FLAG_1), + 30, 10), +}; + +CameraModeValue D_801B5674[] = { + CAM_FUNCDATA_KEEP4(-50, 220, 0, 0x00B2, 0, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, + KEEPON4_FLAG_6 | KEEPON4_FLAG_3 | KEEPON4_FLAG_2 | KEEPON4_FLAG_1), + 30, 10), +}; + +CameraModeValue D_801B5698[] = { + CAM_FUNCDATA_KEEP4(0xFFC4, 200, 0, 0x00B2, 0, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, + KEEPON4_FLAG_6 | KEEPON4_FLAG_3 | KEEPON4_FLAG_2 | KEEPON4_FLAG_1), + 30, 10), +}; + +/*===================================================================== + * Custom Data: DEATH Setting + *===================================================================== + */ + +CameraModeValue sSetDeathModeNormalData[] = { + CAM_FUNCDATA_KEEP4(0xFFBA, 160, 0, 0, 10, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0), 5, 100), +}; + +CameraModeValue sSetDeathModeJumpData[] = { + CAM_FUNCDATA_KEEP4(0xFFBA, 160, 0, 0, 5, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0), 5, 100), +}; + +CameraModeValue sSetDeathModeDekuShootData[] = { + CAM_FUNCDATA_KEEP4(0xFFBA, 150, 0, 0, 5, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0), 5, 100), +}; + +/*===================================================================== + * Custom Data: REBIRTH Setting + *===================================================================== + */ + +CameraModeValue D_801B5728[] = { + CAM_FUNCDATA_KEEP4( + 0xFFC4, 160, 30, 160, 10, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_2 | KEEPON4_FLAG_1), 5, 100), +}; + +CameraModeValue D_801B574C[] = { + CAM_FUNCDATA_KEEP4( + -20, 140, 30, 160, 10, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_2 | KEEPON4_FLAG_1), 5, 100), +}; + +/*===================================================================== + * Custom Data: LONG_CHEST_OPENING Setting + *===================================================================== + */ + +CameraModeValue sSetLongChestOpeningModeNormalData[] = { + CAM_FUNCDATA_DEMO2(60, 30, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0)), +}; + +/*===================================================================== + * Custom Data: DUNGEON1 Setting + *===================================================================== + */ + +CameraModeValue sSetDungeon1ModeNormalData[] = { + CAM_FUNCDATA_NORM1(-20, 350, 400, 45, 50, 20, 70, 50, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon1ModeJumpData[] = { + CAM_FUNCDATA_NORM1(-20, 350, 400, 40, 50, 20, 50, 50, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon1ModeStillData[] = { + CAM_FUNCDATA_NORM1(-20, 350, 400, 45, 100, 100, 100, 50, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon1ModePushPullData[] = { + CAM_FUNCDATA_PARA1( + 0, 250, 5, 30, 0, 5, 5, 70, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_5 | PARALLEL1_FLAG_1), 30, 0), +}; + +/*===================================================================== + * Custom Data: FIXED1 Setting + *===================================================================== + */ + +CameraModeValue D_801B5824[] = { + CAM_FUNCDATA_FIXD1(-40, 100, 60, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0)), +}; + +/*===================================================================== + * Custom Data: FIXED2 Setting + *===================================================================== + */ + +CameraModeValue D_801B5834[] = { + CAM_FUNCDATA_FIXD1(-40, 10, 60, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0)), +}; + +/*===================================================================== + * Custom Data: MAZE Setting + *===================================================================== + */ + +CameraModeValue sSetMazeModeNormalData[] = { + CAM_FUNCDATA_PARA2(0xFFDD, 160, 65, -5, 2, 70, 99, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, PARALLEL2_FLAG_1)), +}; + +/*===================================================================== + * Custom Data: REMOTEBOMB Setting + *===================================================================== + */ + +CameraModeValue sSetRemoteBombModeNormalData[] = { + CAM_FUNCDATA_NORM2(20, 200, 800, 15, 6, 70, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL2_FLAG_1)), +}; + +/*===================================================================== + * Custom Data: CIRCLE1 Setting + *===================================================================== + */ + +CameraModeValue D_801B5884[] = { + CAM_FUNCDATA_FIXD2(-40, 40, 0x3200, 10, 20, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, FIXED2_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: CIRCLE2 Setting + *===================================================================== + */ + +CameraModeValue D_801B58A0[] = { + CAM_FUNCDATA_FIXD2(-40, 40, 0x3200, 100, 80, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0)), +}; + +/*===================================================================== + * Custom Data: CIRCLE3 Setting + *===================================================================== + */ + +CameraModeValue D_801B58BC[] = { + CAM_FUNCDATA_FIXD2(-40, 40, 0x3200, 100, 80, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +/*===================================================================== + * Custom Data: CIRCLE4 Setting + *===================================================================== + */ + +CameraModeValue D_801B58D8[] = { + CAM_FUNCDATA_FIXD2( + -40, 40, 0x3200, 100, 10, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, FIXED2_FLAG_3 | FIXED2_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: FIXED3 Setting + *===================================================================== + */ + +CameraModeValue D_801B58F4[] = { + CAM_FUNCDATA_FIXD1(-40, 100, 60, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +/*===================================================================== + * Custom Data: CAM_SET_TOWER_ASCENT Setting + *===================================================================== + */ + +CameraModeValue sSetTowerClimbModeNormalData[] = { + CAM_FUNCDATA_NORM0(0, 350, 400, 20, 20, 50, 65, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL0_FLAG_0)), +}; + +CameraModeValue sSetTowerClimbModeJumpData[] = { + CAM_FUNCDATA_NORM1(-20, 340, 400, 10, 30, 12, 40, 65, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetTowerClimbModeStillData[] = { + CAM_FUNCDATA_NORM1(0, 350, 400, 10, 100, 100, 100, 65, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: PARALLEL0 Setting + *===================================================================== + */ + +CameraModeValue D_801B5978[] = { + CAM_FUNCDATA_PARA1( + 0, 400, 20, 0, 0, 20, 5, 70, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), 80, 0), +}; + +/*===================================================================== + * Custom Data: NORMALD Setting + *===================================================================== + */ + +CameraModeValue D_801B59A8[] = { + CAM_FUNCDATA_NORM1( + 0, 400, 0x01F4, 15, 18, 12, 35, 70, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: SUBJECTD Setting + *===================================================================== + */ + +CameraModeValue D_801B59D0[] = { + CAM_FUNCDATA_SUBJ1(0, 5, 50, 10, 0, 0, 10, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, 0)), +}; + +/*===================================================================== + * Custom Data: START0 Setting + *===================================================================== + */ + +CameraModeValue D_801B59F4[] = { + CAM_FUNCDATA_UNIQ0(0, 100, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, UNIQUE0_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: START2 Setting + *===================================================================== + */ + +CameraModeValue D_801B5A00[] = { + CAM_FUNCDATA_UNIQ0( + 0, 30, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, UNIQUE0_FLAG_4 | UNIQUE0_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: BOAT_CRUISE Setting + *===================================================================== + */ + +CameraModeValue sSetBoatCruiseModeNormalData[] = { + CAM_FUNCDATA_SUBJ1(20, 90, 80, 10, 0, 50, 0xFF38, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +/*===================================================================== + * Custom Data: VERTICAL_CLIMB Setting + *===================================================================== + */ + +CameraModeValue sSetVerticalClimbModeClimbData[] = { + CAM_FUNCDATA_PARA1_ALT(0, 400, 50, 0, 0, 5, 5, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 70, 0, + 50), +}; + +/*===================================================================== + * Custom Data: SIDED Setting + *===================================================================== + */ + +CameraModeValue D_801B5A64[] = { + CAM_FUNCDATA_PARA1(0, 400, 10, 0, 0xFFA6, 20, 5, 70, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_5 | PARALLEL1_FLAG_3 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 70, 0), +}; + +/*===================================================================== + * Custom Data: DUNGEON2 Setting + *===================================================================== + */ + +CameraModeValue sSetDungeon2ModeNormalData[] = { + CAM_FUNCDATA_NORM1(-10, 270, 300, 20, 0x001C, 20, 65, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon2ModeBattleData[] = { + CAM_FUNCDATA_BATT1(-40, 200, 240, 50, 20, 5, 10, 20, 50, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 25, 40), +}; + +CameraModeValue sSetDungeon2ModeJumpData[] = { + CAM_FUNCDATA_NORM1(-20, 270, 300, 40, 50, 20, 50, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon2ModeStillData[] = { + CAM_FUNCDATA_NORM1(-10, 270, 300, 20, 100, 100, 100, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon2ModePushPullData[] = { + CAM_FUNCDATA_PARA1( + 0, 200, 5, 15, 0, 5, 5, 70, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_5 | PARALLEL1_FLAG_1), 30, 0), +}; + +/*===================================================================== + * Custom Data: BOSS_ODOLWA Setting + *===================================================================== + */ + +CameraModeValue sSetBossOdolwaModeNormalData[] = { + CAM_FUNCDATA_NORM1(-20, 250, 350, 10, 24, 12, 40, 65, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetBossOdolwaModeFollowTargetData[] = { + CAM_FUNCDATA_KEEP1(-50, 300, 350, 10, 20, 5, 12, 70, 60, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0), 20), +}; + +CameraModeValue sSetBossOdolwaModeTalkData[] = { + CAM_FUNCDATA_KEEP3( + -20, 230, 260, 20, 10, 20, 15, 40, 55, 20, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE, KEEPON3_FLAG_5), 40), +}; + +CameraModeValue sSetBossOdolwaModeBattleData[] = { + CAM_FUNCDATA_BATT1(0xFFC4, 200, 220, 20, 10, 0, 10, 60, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 10, 40), +}; + +CameraModeValue sSetBossOdolwaModeJumpData[] = { + CAM_FUNCDATA_NORM1(-20, 250, 350, 10, 30, 12, 40, 65, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetBossOdolwaModeStillData[] = { + CAM_FUNCDATA_NORM1(-20, 250, 350, 10, 100, 100, 100, 65, 15, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: KEEP_BACK Setting + *===================================================================== + */ + +CameraModeValue D_801B5C80[] = { + CAM_FUNCDATA_PARA1( + 100, 300, -20, 40, 0, 4, 5, 80, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_5 | PARALLEL1_FLAG_1), 60, 20), +}; + +/*===================================================================== + * Custom Data: CIRCLE6 Setting + *===================================================================== + */ + +CameraModeValue D_801B5CB0[] = { + CAM_FUNCDATA_FIXD2( + -40, 60, 0x3200, 10, 20, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, FIXED2_FLAG_1 | FIXED2_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: CIRCLE7 Setting + *===================================================================== + */ + +CameraModeValue D_801B5CCC[] = { + CAM_FUNCDATA_FIXD2(-40, 40, 200, 10, 20, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, FIXED2_FLAG_5)), +}; + +/*===================================================================== + * Custom Data: MINI_BOSS Setting + *===================================================================== + */ + +CameraModeValue sSetMiniBossModeNormalData[] = { + CAM_FUNCDATA_NORM1(-15, 220, 280, 17, 14, 5, 65, 70, 75, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetMiniBossModeFollowTargetData[] = { + CAM_FUNCDATA_KEEP1(0, 200, 250, 25, 45, 40, 15, 40, 60, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 20), +}; + +CameraModeValue sSetMiniBossModeBattleData[] = { + CAM_FUNCDATA_BATT1(-25, 180, 220, 10, 40, 10, 0, 40, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 20, 50), +}; + +CameraModeValue sSetMiniBossModeJumpData[] = { + CAM_FUNCDATA_NORM1(-15, 220, 280, 16, 12, 5, 60, 70, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetMiniBossModeStillData[] = { + CAM_FUNCDATA_NORM1(-15, 220, 280, 16, 100, 100, 100, 70, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: RFIXED1 Setting + *===================================================================== + */ + +CameraModeValue D_801B5DC4[] = { + CAM_FUNCDATA_FIXD1(-40, 10, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, FIXED1_FLAG_4)), +}; + +/*===================================================================== + * Custom Data: TRESURE1 Setting + *===================================================================== + */ + +CameraModeValue sSetTreasureChestMinigameModeNormalData[] = { + CAM_FUNCDATA_NORM1( + -20, 80, 120, -10, 15, 20, 40, 70, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_7 | NORMAL1_FLAG_1)), +}; + +CameraModeValue sSetTreasureChestMinigameModeTargetData[] = { + CAM_FUNCDATA_PARA1( + 0xFFC4, 0x0226, 0, 65, 0, 5, 5, 75, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_6 | PARALLEL1_FLAG_1), 60, 0), +}; + +/*===================================================================== + * Custom Data: BOMBBASKET Setting + *===================================================================== + */ + +CameraModeValue D_801B5E2C[] = { + CAM_FUNCDATA_FIXD2(70, 50, 0x3200, 100, 30, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, FIXED2_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: CIRCLE8 Setting + *===================================================================== + */ + +CameraModeValue D_801B5E48[] = { + CAM_FUNCDATA_FIXD2(-40, 40, 0x3200, 100, 20, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, FIXED2_FLAG_3)), +}; + +/*===================================================================== + * Custom Data: BIRDS_EYE_VIEW_1 Setting + *===================================================================== + */ + +CameraModeValue D_801B5E64[] = { + CAM_FUNCDATA_NORM1( + -20, 800, 800, 60, 50, 10, 50, 45, 90, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_6 | NORMAL1_FLAG_1)), +}; + +CameraModeValue D_801B5E8C[] = { + CAM_FUNCDATA_NORM1(-20, 800, 800, 60, 100, 100, 100, 45, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: DUNGEON3 Setting + *===================================================================== + */ + +CameraModeValue sSetDungeon3ModeNormalData[] = { + CAM_FUNCDATA_NORM1( + -30, 180, 250, -5, 18, 20, 60, 55, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_7 | NORMAL1_FLAG_1)), +}; + +CameraModeValue sSetDungeon3ModeTargetData[] = { + CAM_FUNCDATA_PARA1( + -30, 180, 20, 0, 0, 5, 5, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_6 | PARALLEL1_FLAG_1), 80, 0), +}; + +CameraModeValue sSetDungeon3ModeJumpData[] = { + CAM_FUNCDATA_NORM1(-30, 160, 190, 0, 30, 20, 60, 55, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon3ModeStillData[] = { + CAM_FUNCDATA_NORM1(-40, 0x00AA, 200, 0, 100, 100, 100, 55, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon3ModePushPullData[] = { + CAM_FUNCDATA_PARA1( + 0, 180, 5, 5, 0, 5, 5, 70, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_5 | PARALLEL1_FLAG_1), 30, 0), +}; + +/*===================================================================== + * Custom Data: TELESCOPE Setting + *===================================================================== + */ + +CameraModeValue sSetTelescopeModeNormalData[] = { + CAM_FUNCDATA_SUBJ1(0, 5, 50, 10, 0, 0, 0, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_NONE_ALT, 0)), +}; + +CameraModeValue sSetTelescopeModeTargetData[] = { + CAM_FUNCDATA_SUBJ1(0, 5, 50, 10, 0, 0, 0, 15, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_NONE_ALT, 0)), +}; + +CameraModeValue sSetTelescopeModeFirstPersonData[] = { + CAM_FUNCDATA_SUBJ1(0, 5, 50, 10, 0, 0, 0, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_NONE_ALT, SUBJECT1_FLAG_4)), +}; + +CameraModeValue sSetTelescopeModeDekuHideData[] = { + CAM_FUNCDATA_SUBJ1(0, 5, 50, 0x0001, 0, 0, 0, 45, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_NONE_ALT, SUBJECT1_FLAG_4)), +}; + +/*===================================================================== + * Custom Data: ROOM0 Setting + *===================================================================== + */ + +CameraModeValue D_801B601C[] = { + CAM_FUNCDATA_NORM1(0xFFDD, 100, 220, 15, 0x0011, 12, 35, 65, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B6044[] = { + CAM_FUNCDATA_PARA1(-10, 200, 50, 0, 0, 5, 5, 65, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_6 | PARALLEL1_FLAG_4 | PARALLEL1_FLAG_1), + 60, 0), +}; + +CameraModeValue D_801B6074[] = { + CAM_FUNCDATA_KEEP1(-30, 60, 200, 20, 40, -5, 10, 30, 45, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 30), +}; + +CameraModeValue D_801B60A4[] = { + CAM_FUNCDATA_KEEP3( + -20, 50, 100, 50, 5, 20, 5, 40, 35, 50, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE, KEEPON3_FLAG_5), 60), +}; + +CameraModeValue D_801B60D8[] = { + CAM_FUNCDATA_BATT1(-25, 100, 140, 10, 40, -2, 10, 25, 50, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 25, 50), +}; + +CameraModeValue D_801B610C[] = { + CAM_FUNCDATA_JUMP2(-20, 100, 220, 20, 5, 5, 65, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue D_801B6130[] = { + CAM_FUNCDATA_JUMP2(-20, 120, 240, 20, 999, 5, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, JUMP2_FLAG_2 | JUMP2_FLAG_1)), +}; + +CameraModeValue D_801B6154[] = { + CAM_FUNCDATA_NORM1(-30, 100, 220, 10, 30, 12, 80, 65, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B617C[] = { + CAM_FUNCDATA_PARA1(-40, 200, 50, 40, 0, 8, 5, 65, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_7 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 60, 12), +}; + +CameraModeValue D_801B61AC[] = { + CAM_FUNCDATA_PARA1(0xFFB0, 240, 50, 70, 0, 12, 5, 45, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_7 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 60, 2), +}; + +CameraModeValue D_801B61DC[] = { + CAM_FUNCDATA_PARA1( + -10, 200, 100, 70, 0, 4, 5, 70, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_7 | PARALLEL1_FLAG_3), 65, 12), +}; + +CameraModeValue D_801B620C[] = { + CAM_FUNCDATA_PARA1(0xFFB0, 240, -20, 50, 0, 50, 5, 80, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0), 65, 10), +}; + +CameraModeValue D_801B623C[] = { + CAM_FUNCDATA_PARA1(0xFFB0, 240, -20, 40, 0, 50, 5, 80, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 65, 0), +}; + +CameraModeValue D_801B626C[] = { + CAM_FUNCDATA_NORM1(-20, 100, 220, 10, 100, 100, 100, 65, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B6294[] = { + CAM_FUNCDATA_PARA1(0, 200, 5, 45, 0, 5, 5, 70, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_5 | PARALLEL1_FLAG_4 | PARALLEL1_FLAG_1), + 80, 0), +}; + +CameraModeValue D_801B62C4[] = { + CAM_FUNCDATA_KEEP1(-5, 120, 140, 5, 85, 10, 5, 25, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 30), +}; + +CameraModeValue D_801B62F4[] = { + CAM_FUNCDATA_NORM1(50, 140, 220, 0, 0xC, 10, 40, 90, 90, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_2 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B631C[] = { + CAM_FUNCDATA_PARA1( + 100, 220, -20, 40, 0, 4, 5, 80, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, PARALLEL1_FLAG_5 | PARALLEL1_FLAG_1), 80, + 20), +}; + +CameraModeValue D_801B634C[] = { + CAM_FUNCDATA_NORM1(0xFFC4, 150, 250, 40, 20, 12, 40, 80, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B6374[] = { + CAM_FUNCDATA_PARA1(0xFFC4, 220, 20, 10, 0, 5, 5, 60, 90, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_3 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 90, 0), +}; + +CameraModeValue D_801B63A4[] = { + CAM_FUNCDATA_NORM1( + -10, 120, 240, 0, 18, 12, 40, 80, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_2 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B63CC[] = { + CAM_FUNCDATA_PARA1(0, 220, 50, 0, 0, 5, 5, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 60, 0), +}; + +/*===================================================================== + * Custom Data: RCIRC0 Setting + *===================================================================== + */ + +CameraModeValue D_801B63FC[] = { + CAM_FUNCDATA_FIXD2( + -10, 40, 0x3200, 100, 20, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, FIXED2_FLAG_4 | FIXED2_FLAG_3)), +}; + +/*===================================================================== + * Custom Data: CIRC9 Setting + *===================================================================== + */ + +CameraModeValue D_801B6418[] = { + CAM_FUNCDATA_FIXD2(-40, 40, 0x3200, 5, 25, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, FIXED2_FLAG_2 | FIXED2_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: ONTHEPOLE Setting + *===================================================================== + */ + +CameraModeValue D_801B6434[] = { + CAM_FUNCDATA_NORM1(-15, 60, 600, 35, 40, 20, 60, 45, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1)), +}; + +CameraModeValue D_801B645C[] = { + CAM_FUNCDATA_PARA1( + 0, 300, 5, 35, 0, 5, 5, 60, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_6 | PARALLEL1_FLAG_1), 80, 0), +}; + +CameraModeValue D_801B648C[] = { + CAM_FUNCDATA_NORM1(-10, 320, 0x017C, 30, 0x0016, 10, 0x0020, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B64B4[] = { + CAM_FUNCDATA_JUMP2(-20, 280, 320, 20, 5, 5, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue D_801B64D8[] = { + CAM_FUNCDATA_JUMP2(-20, 280, 320, 20, 999, 5, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, JUMP2_FLAG_2 | JUMP2_FLAG_1)), +}; + +CameraModeValue D_801B64FC[] = { + CAM_FUNCDATA_PARA1(-40, 320, 50, 40, 0, 8, 5, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_7 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 50, 12), +}; + +CameraModeValue D_801B652C[] = { + CAM_FUNCDATA_PARA1(0xFFB0, 300, 50, 70, 0, 12, 5, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, + PARALLEL1_FLAG_7 | PARALLEL1_FLAG_2 | PARALLEL1_FLAG_1), + 50, 2), +}; + +CameraModeValue D_801B655C[] = { + CAM_FUNCDATA_NORM1(-15, 340, 350, 30, 100, 100, 100, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: INBUSH Setting + *===================================================================== + */ + +CameraModeValue D_801B6584[] = { + CAM_FUNCDATA_NORM1( + 0, 260, 280, 20, 20, 12, 50, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_7 | NORMAL1_FLAG_1)), +}; + +CameraModeValue D_801B65AC[] = { + CAM_FUNCDATA_PARA1(10, 260, 50, 15, 0, 5, 5, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 60, 0), +}; + +CameraModeValue D_801B65DC[] = { + CAM_FUNCDATA_KEEP1(10, 200, 220, 20, 40, 20, 30, 15, 45, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 30), +}; + +CameraModeValue D_801B660C[] = { + CAM_FUNCDATA_KEEP3( + 10, 180, 200, 30, 10, 30, 30, 70, 45, 50, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE, KEEPON3_FLAG_6), 60), +}; + +CameraModeValue D_801B6640[] = { + CAM_FUNCDATA_BATT1(10, 220, 220, 10, 80, 20, 30, 25, 50, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 25, 60), +}; + +CameraModeValue D_801B6674[] = { + CAM_FUNCDATA_SUBJ1(0, 10, 60, 10, 0, 50, 0, 45, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, 0)), +}; + +CameraModeValue D_801B6698[] = { + CAM_FUNCDATA_NORM1(0, 260, 280, 40, 20, 12, 40, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1)), +}; + +CameraModeValue D_801B66C0[] = { + CAM_FUNCDATA_NORM1(0, 260, 280, 20, 100, 100, 100, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: BOSS_MAJORA Setting + *===================================================================== + */ + +CameraModeValue sSetBossMajoraModeNormalData[] = { + CAM_FUNCDATA_NORM1(0, 280, 320, -5, 24, 12, 0x0020, 65, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetBossMajoraModeFollowTargetData[] = { + CAM_FUNCDATA_KEEP1(-30, 240, 260, 20, 40, 10, 5, 60, 50, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0), 30), +}; + +CameraModeValue sSetBossMajoraModeBattleData[] = { + CAM_FUNCDATA_BATT1(0xFFC4, 180, 200, 10, 20, 20, 10, 20, 70, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 10, 40), +}; + +CameraModeValue sSetBossMajoraModeJumpData[] = { + CAM_FUNCDATA_NORM1(-20, 280, 320, 10, 30, 12, 40, 65, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetBossMajoraModeStillData[] = { + CAM_FUNCDATA_NORM1(0, 280, 320, 0, 100, 100, 100, 65, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: BOSS_TWINMOLD Setting + *===================================================================== + */ + +CameraModeValue sSetBossTwinmoldModeNormalData[] = { + CAM_FUNCDATA_NORM1(20, 350, 400, 0, 0x001A, 12, 0x0020, 75, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetBossTwinmoldModeTargetData[] = { + CAM_FUNCDATA_PARA1(0, 400, 50, 0, 0, 5, 5, 55, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 60, 0), +}; + +CameraModeValue sSetBossTwinmoldModeFollowTargetData[] = { + CAM_FUNCDATA_KEEP1(-30, 250, 300, 20, 40, 10, 5, 60, 50, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, 0), 30), +}; + +CameraModeValue sSetBossTwinmoldModeBattleData[] = { + CAM_FUNCDATA_BATT1(0, 150, 200, 10, 30, 10, 0, 20, 70, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 10, 40), +}; + +CameraModeValue sSetBossTwinmoldModeJumpData[] = { + CAM_FUNCDATA_NORM1(-20, 350, 400, 10, 30, 12, 40, 75, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetBossTwinmoldModeStillData[] = { + CAM_FUNCDATA_NORM1(-20, 280, 320, 10, 100, 100, 100, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_4 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: BOSS_GOHT Setting + *===================================================================== + */ + +CameraModeValue sSetBossGohtModeNormalData[] = { + CAM_FUNCDATA_NORM1(-20, 280, 320, 10, 20, 12, 50, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetBossGohtModeBattleData[] = { + CAM_FUNCDATA_BATT1(-25, 220, 220, 10, 80, -2, 10, 25, 50, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 25, 50), +}; + +CameraModeValue sSetBossGohtModeJumpData[] = { + CAM_FUNCDATA_NORM1(-20, 280, 320, 10, 30, 12, 40, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetBossGohtModeStillData[] = { + CAM_FUNCDATA_NORM1(-20, 280, 320, 10, 100, 100, 100, 60, 15, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetBossGohtModeGoronDashData[] = { + CAM_FUNCDATA_NORM1(60, 200, 340, 10, 15, 10, 50, 85, 90, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_2 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: BOSS_GYORG Setting + *===================================================================== + */ + +CameraModeValue sSetBossGyorgModeNormalData[] = { + CAM_FUNCDATA_JUMP3(-20, 280, 320, 10, 20, 12, 40, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_7 | JUMP3_FLAG_2)), +}; + +CameraModeValue sSetBossGyorgModeFollowTargetData[] = { + CAM_FUNCDATA_KEEP1(-30, 200, 240, 20, 40, -5, 10, 15, 45, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 30), +}; + +CameraModeValue sSetBossGyorgModeBattleData[] = { + CAM_FUNCDATA_BATT1(-30, 190, 250, 10, 50, 0, 10, 20, 50, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 25, 50), +}; + +CameraModeValue sSetBossGyorgModeGoronJumpData[] = { + CAM_FUNCDATA_JUMP3(-40, 160, 260, -5, 18, 5, 40, 70, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_3 | JUMP3_FLAG_2)), +}; + +CameraModeValue sSetBossGyorgModeDekuFlyData[] = { + CAM_FUNCDATA_JUMP3(-30, 220, 280, 0, 18, 5, 60, 60, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_2 | JUMP3_FLAG_0)), +}; + +CameraModeValue sSetBossGyorgModeDekuHideData[] = { + CAM_FUNCDATA_JUMP3( + 0xFFC4, 160, 280, -15, 18, 5, 60, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_7 | JUMP3_FLAG_2 | JUMP3_FLAG_0)), +}; + +CameraModeValue sSetBossGyorgModeStillData[] = { + CAM_FUNCDATA_NORM1(-40, 100, 320, 20, 100, 100, 100, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: PINNACLE_ROCK Setting + *===================================================================== + */ + +CameraModeValue sSetPinnacleRockModeNormalData[] = { + CAM_FUNCDATA_JUMP3(-40, 250, 350, 30, 15, 5, 40, 60, 100, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_7 | JUMP3_FLAG_2)), +}; + +CameraModeValue sSetPinnacleRockModeTargetData[] = { + CAM_FUNCDATA_PARA1( + -50, 350, 40, 10, 0, 15, 5, 60, 100, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1 | PARALLEL1_FLAG_0), 80, 0), +}; + +CameraModeValue sSetPinnacleRockModeGoronJumpData[] = { + CAM_FUNCDATA_JUMP3(-40, 320, 400, -5, 18, 5, 40, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_3 | JUMP3_FLAG_2)), +}; + +CameraModeValue sSetPinnacleRockModeDekuFlyData[] = { + CAM_FUNCDATA_JUMP3(-40, 300, 350, 10, 18, 5, 60, 60, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_2 | JUMP3_FLAG_0)), +}; + +CameraModeValue sSetPinnacleRockModeDekuHideData[] = { + CAM_FUNCDATA_JUMP3( + 0xFFC4, 150, 250, -18, 18, 5, 60, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_7 | JUMP3_FLAG_2 | JUMP3_FLAG_0)), +}; + +CameraModeValue sSetPinnacleRockModeStillData[] = { + CAM_FUNCDATA_NORM1(-40, 250, 350, 30, 100, 100, 100, 60, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetPinnacleRockModeGoronDashData[] = { + CAM_FUNCDATA_JUMP3(-40, 250, 280, 5, 0x0011, 5, 40, 75, 35, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_3 | JUMP3_FLAG_2)), +}; + +/*===================================================================== + * Custom Data: NORMAL2 Setting + *===================================================================== + */ + +CameraModeValue sSetNormal2ModeNormalData[] = { + CAM_FUNCDATA_NORM1(-10, 350, 400, 14, 25, 14, 60, 65, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetNormal2ModeTargetData[] = { + CAM_FUNCDATA_PARA1(0, 350, 80, 0, 0, 5, 5, 50, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 60, 0), +}; + +CameraModeValue sSetNormal2ModeJumpData[] = { + CAM_FUNCDATA_NORM1(-10, 350, 0x01A4, 10, 30, 10, 40, 65, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetNormal2ModeStillData[] = { + CAM_FUNCDATA_NORM1(-10, 350, 400, 14, 100, 100, 100, 65, 16, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: BOMBBOWL Setting + *===================================================================== + */ + +CameraModeValue D_801B6C98[] = { + CAM_FUNCDATA_NORM1(-30, 300, 320, 15, 0x0016, 12, 30, 55, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B6CC0[] = { + CAM_FUNCDATA_KEEP1(-30, 180, 200, 20, 30, -5, 10, 40, 45, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 30), +}; + +CameraModeValue D_801B6CF0[] = { + CAM_FUNCDATA_KEEP3( + -30, 65, 70, 10, 10, 5, 5, 20, 45, 50, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE, KEEPON3_FLAG_5), 50), +}; + +CameraModeValue D_801B6D24[] = { + CAM_FUNCDATA_NORM1(-20, 300, 320, 10, 30, 12, 40, 55, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B6D4C[] = { + CAM_FUNCDATA_NORM1(-30, 300, 320, 15, 100, 100, 100, 55, 25, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: CIRCA Setting + *===================================================================== + */ + +CameraModeValue D_801B6D74[] = { + CAM_FUNCDATA_FIXD2(-40, 60, 0x3200, 100, 20, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, + FIXED2_FLAG_3 | FIXED2_FLAG_1 | FIXED2_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: WHIRLPOOL Setting + *===================================================================== + */ + +CameraModeValue sSetWhirlpoolModeNormalData[] = { + CAM_FUNCDATA_JUMP3( + -10, 280, 350, 50, 12, 5, 30, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_7 | JUMP3_FLAG_5 | JUMP3_FLAG_2)), +}; + +CameraModeValue sSetWhirlpoolModeFreeFallData[] = { + CAM_FUNCDATA_JUMP3(0, 180, 300, 30, 12, 5, 25, 75, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_4 | JUMP3_FLAG_2)), +}; + +CameraModeValue sSetWhirlpoolModeGoronJumpData[] = { + CAM_FUNCDATA_JUMP3( + -40, 320, 350, -5, 12, 5, 25, 65, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_4 | JUMP3_FLAG_3 | JUMP3_FLAG_2)), +}; + +CameraModeValue sSetWhirlpoolModeDekuFlyData[] = { + CAM_FUNCDATA_JUMP3( + -40, 300, 350, 10, 15, 5, 30, 65, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_5 | JUMP3_FLAG_2 | JUMP3_FLAG_0)), +}; + +CameraModeValue sSetWhirlpoolModeDekuHideData[] = { + CAM_FUNCDATA_JUMP3( + 0xFFC4, 150, 250, -18, 15, 5, 30, 60, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_7 | JUMP3_FLAG_4 | JUMP3_FLAG_2)), +}; + +CameraModeValue sSetWhirlpoolModeGoronDashData[] = { + CAM_FUNCDATA_JUMP3( + -40, 220, 260, 5, 8, 5, 20, 75, 35, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_4 | JUMP3_FLAG_3 | JUMP3_FLAG_2)), +}; + +/*===================================================================== + * Custom Data: CUCCO_SHACK Setting + *===================================================================== + */ + +CameraModeValue sSetCuccoShackModeNormalData[] = { + CAM_FUNCDATA_NORM1(0xFFBA, 250, 0x01F4, 5, 30, 12, 45, 50, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetCuccoShackModeStillData[] = { + CAM_FUNCDATA_NORM1(-40, 250, 0x01F4, 5, 100, 100, 100, 50, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetCuccoShackModeDekuHideData[] = { + CAM_FUNCDATA_NORM1(-40, 250, 0x01F4, 5, 25, 12, 40, 50, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: GIANT Setting + *===================================================================== + */ + +CameraModeValue sSetGiantModeNormalData[] = { + CAM_FUNCDATA_NORM1(-40, 150, 160, -15, 25, 14, 50, 50, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetGiantModeTargetData[] = { + CAM_FUNCDATA_PARA1(-40, 180, 80, 0, 0, 5, 5, 50, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 60, 0), +}; + +CameraModeValue sSetGiantModeJumpData[] = { + CAM_FUNCDATA_NORM1(-10, 100, 150, 10, 30, 10, 40, 70, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetGiantModeStillData[] = { + CAM_FUNCDATA_NORM1(-40, 150, 160, 0xFFF4, 25, 14, 50, 50, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/*===================================================================== + * Custom Data: SCENE0 Setting + *===================================================================== + */ + +CameraModeValue D_801B6FA0[] = { + CAM_FUNCDATA_UNIQ2(-40, 20, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + UNIQUE2_FLAG_5 | UNIQUE2_FLAG_4 | UNIQUE2_FLAG_1)), +}; + +/*===================================================================== + * Custom Data: ROOM1 Setting + *===================================================================== + */ + +CameraModeValue D_801B6FB0[] = { + CAM_FUNCDATA_NORM1(-15, 120, 250, 16, 16, 5, 65, 60, 75, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B6FD8[] = { + CAM_FUNCDATA_KEEP1(-20, 100, 150, 0, 4, 20, 10, 40, 60, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_0), 20), +}; + +CameraModeValue D_801B7008[] = { + CAM_FUNCDATA_BATT1(-25, 100, 180, 10, 40, 10, 0, 40, 60, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_1), 20, 50), +}; + +CameraModeValue D_801B703C[] = { + CAM_FUNCDATA_NORM1(-15, 120, 250, 16, 12, 5, 60, 70, 40, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B7064[] = { + CAM_FUNCDATA_NORM1(-15, 120, 250, 16, 100, 100, 100, 70, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_5 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue D_801B708C[] = { + CAM_FUNCDATA_PARA1( + 0, 200, 5, 30, 0, 5, 5, 70, 30, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_5 | PARALLEL1_FLAG_1), 80, 0), +}; + +/*===================================================================== + * Custom Data: WATER2 Setting + *===================================================================== + */ + +CameraModeValue D_801B70BC[] = { + CAM_FUNCDATA_JUMP3(-10, 270, 300, 20, 30, 20, 65, 60, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_7 | JUMP3_FLAG_2)), +}; + +CameraModeValue D_801B70E4[] = { + CAM_FUNCDATA_PARA1( + -30, 280, 40, 10, 0, 15, 5, 60, 100, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1 | PARALLEL1_FLAG_0), 60, 0), +}; + +CameraModeValue D_801B7114[] = { + CAM_FUNCDATA_KEEP3(-20, 50, 100, 50, 5, 20, 10, 40, 45, 50, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE, 0), + 60), +}; + +CameraModeValue D_801B7148[] = { + CAM_FUNCDATA_JUMP3(-40, 180, 200, 5, 20, 5, 40, 75, 35, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, JUMP3_FLAG_3 | JUMP3_FLAG_2)), +}; + +/*===================================================================== + * Custom Data: FORCEKEEP Setting + *===================================================================== + */ + +CameraModeValue D_801B7170[] = { + CAM_FUNCDATA_KEEP1( + -30, 180, 200, 20, 40, -5, 10, 15, 45, 60, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON1_FLAG_4 | KEEPON1_FLAG_0), 30), +}; + +CameraModeValue D_801B71A0[] = { + CAM_FUNCDATA_BATT1( + -30, 150, 250, 10, 60, -5, 20, 35, 55, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, BATTLE1_FLAG_4 | BATTLE1_FLAG_1), 25, 40), +}; + +/*===================================================================== + * Custom Data: PARALLEL1 Setting + *===================================================================== + */ + +CameraModeValue D_801B71D4[] = { + CAM_FUNCDATA_PARA1( + 0, 400, 20, 20, 0, 20, 5, 70, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_3 | PARALLEL1_FLAG_1), 80, 0), +}; + +/*===================================================================== + * Custom Data: START1 Setting + *===================================================================== + */ + +CameraModeValue D_801B7204[] = { + CAM_FUNCDATA_UNIQ0(0, 100, CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, UNIQUE0_FLAG_1)), +}; + +/*===================================================================== + * Custom Data: ROOM2 Setting + *===================================================================== + */ + +CameraModeValue D_801B7210[] = { + CAM_FUNCDATA_KEEP3( + -10, 120, 180, 50, 5, 10, 5, 70, 35, 50, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE, KEEPON3_FLAG_5), 60), +}; + +/*===================================================================== + * Custom Data: NORMAL4 Setting + *===================================================================== + */ + +CameraModeValue sSetNormal4ModeTalkData[] = { + CAM_FUNCDATA_KEEP3( + -20, 0x006E, 160, 80, 15, 10, 0, 70, 40, 50, 20, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_WITH_OVERWRITE, KEEPON3_FLAG_5), 50), +}; + +/*===================================================================== + * Custom Data: ELEGY_SHELL Setting + *===================================================================== + */ + +CameraModeValue sSetElegyShellModeNormalData[] = { + CAM_FUNCDATA_KEEP4(-45, 150, -10, 165, 5, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 30), +}; + +CameraModeValue sSetElegyShellModeJumpData[] = { + CAM_FUNCDATA_KEEP4(-40, 150, 18, 140, 5, 70, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 30), +}; + +CameraModeValue sSetElegyShellModeDekuShootData[] = { + CAM_FUNCDATA_KEEP4(-20, 150, -2, 140, 15, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 30), +}; + +CameraModeValue sSetElegyShellModeGoronDashData[] = { + CAM_FUNCDATA_KEEP4(-50, 150, 0xFFF4, 160, 6, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1), 25, 30), +}; + +CameraModeValue sSetElegyShellModeDekuFlyData[] = { + CAM_FUNCDATA_KEEP4( + 0xFFC4, 150, 0xFFF4, 0xFF74, 30, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3 | KEEPON4_FLAG_2), 25, 30), +}; + +/*===================================================================== + * Custom Data: DUNGEON4 Setting + *===================================================================== + */ + +CameraModeValue sSetDungeon4ModeNormalData[] = { + CAM_FUNCDATA_NORM1(0, 150, 250, -5, 16, 5, 0x0034, 55, 80, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon4ModeTargetData[] = { + CAM_FUNCDATA_PARA1(0, 200, 25, 5, 0, 5, 5, 45, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, PARALLEL1_FLAG_1), 80, 0), +}; + +CameraModeValue sSetDungeon4ModeJumpData[] = { + CAM_FUNCDATA_NORM1(0, 150, 250, 0, 24, 5, 50, 55, 50, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_NONE, CAM_HUD_VISIBILITY_ALL, + NORMAL1_FLAG_7 | NORMAL1_FLAG_3 | NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +CameraModeValue sSetDungeon4ModeStillData[] = { + CAM_FUNCDATA_NORM1( + 0, 180, 220, 5, 100, 100, 100, 55, 10, + CAM_INTERFACE_FLAGS(CAM_LETTERBOX_IGNORE, CAM_HUD_VISIBILITY_ALL, NORMAL1_FLAG_1 | NORMAL1_FLAG_0)), +}; + +/** + * ===================================================================== + * CAMERA SETTINGS: USAGE OF FUNCTIONS AND DATA FOR SPECIFIC MODES + * ===================================================================== + */ + +#define CAM_SETTING_MODE_ENTRY(func, data) \ + { func, ARRAY_COUNT(data), data } + +#define CAM_SETTING_MODE_NULL \ + { CAM_FUNC_NONE, 0, NULL } + +CameraMode sCamSetNormal0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronJumpData), // CAM_MODE_GORONJUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBoomerangData), // CAM_MODE_BOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeZData), // CAM_MODE_CHARGEZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_ZORAFINZ +}; + +CameraMode sCamSetNormal3Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal3ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_NULL, // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal3ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLYZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeGoronJumpData), // CAM_MODE_GORONJUMP +}; + +CameraMode sCamSetPivotDivingModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE2, sSetPivotDivingModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_NULL, // CAM_MODE_JUMP + CAM_SETTING_MODE_NULL, // CAM_MODE_GORONDASH + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_NULL, // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_NULL, // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE2, sSetPivotDivingModeTargetData), // CAM_MODE_TARGET +}; + +CameraMode sCamSetHorseModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL3, sSetHorseModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL3, sSetHorseModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_NULL, // CAM_MODE_GORONDASH + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_NULL, // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_NULL, // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetHorseModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL3, sSetHorseModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetHorseModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetHorseModeSlingShotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetHorseModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetHorseModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL3, sSetHorseModeStillData), // CAM_MODE_STILL +}; + +CameraMode sCamSetZoraDivingModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL3, sSetZoraDivingModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetPreRendFixedModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED3, sSetPrerendFixedModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetPreRendPivotModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE7, sSetPrerendPivotModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDoorCModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL9, sSetDoorCModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDemo0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO1, D_801B4EF0), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetFree0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE6, sSetCutscenesModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetFukan0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B4EF8), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B4F50), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B4F20), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B4F78), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B4EF8), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetNormal1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal1ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal1ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetNanameModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL4, D_801B4FF0), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetCirc0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5018), // CAM_MODE_NORMAL + CAM_SETTING_MODE_NULL, // CAM_MODE_JUMP + CAM_SETTING_MODE_NULL, // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5034), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_NULL, // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5050), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT +}; + +CameraMode sCamSetFixed0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED1, D_801B506C), // CAM_MODE_NORMAL + CAM_SETTING_MODE_NULL, // CAM_MODE_JUMP + CAM_SETTING_MODE_NULL, // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_NULL, // CAM_MODE_TARGET + CAM_SETTING_MODE_NULL, // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT +}; + +CameraMode sCamSetSpiralDoorModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL8, sSetSpiralDoorModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDungeon0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon0ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetDungeon0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon0ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronJumpData), // CAM_MODE_GORONJUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBoomerangData), // CAM_MODE_BOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeZData), // CAM_MODE_CHARGEZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_ZORAFINZ +}; + +CameraMode sCamSetItem0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5338), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B535C), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B53A4), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5380), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B53C8), // CAM_MODE_DEKUFLY +}; + +CameraMode sCamSetItem1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B53EC), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5410), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5458), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5434), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B547C), // CAM_MODE_DEKUFLY +}; + +CameraMode sCamSetItem2Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B54A0), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B54C4), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B550C), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B54E8), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5530), // CAM_MODE_DEKUFLY +}; + +CameraMode sCamSetItem3Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5554), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5578), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B55C0), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B559C), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B55E4), // CAM_MODE_DEKUFLY +}; + +CameraMode sCamSetNaviModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE6, sSetCutscenesModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetWarp0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5608), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B562C), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5674), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5650), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5698), // CAM_MODE_DEKUFLY +}; + +CameraMode sCamSetDeathModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, sSetDeathModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, sSetDeathModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, sSetDeathModeJumpData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, sSetDeathModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, sSetDeathModeJumpData), // CAM_MODE_DEKUFLY +}; + +CameraMode sCamSetRebirthModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5728), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5728), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5728), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B574C), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, D_801B5728), // CAM_MODE_DEKUFLY +}; + +CameraMode sCamSetLongChestOpeningModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO2, sSetLongChestOpeningModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetMaskTransformationModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO4, sSetCutscenesModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO5, sSetCutscenesModeNormalData), // CAM_MODE_JUMP +}; + +CameraMode sCamSetAttentionModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO1, sSetCutscenesModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetWarp1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO3, sSetCutscenesModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDungeon1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon1ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon1ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetDungeon0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon1ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon1ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetFixed1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED1, D_801B5824), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetFixed2Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED1, D_801B5834), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetMazeModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL2, sSetMazeModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetRemoteBombModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL2, sSetRemoteBombModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5884), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc2Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B58A0), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc3Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B58BC), // CAM_MODE_NORMAL + CAM_SETTING_MODE_NULL, // CAM_MODE_JUMP + CAM_SETTING_MODE_NULL, // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5034), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_NULL, // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5050), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT +}; + +CameraMode sCamSetCirc4Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B58D8), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetFixed3Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED1, D_801B58F4), // CAM_MODE_NORMAL + CAM_SETTING_MODE_NULL, // CAM_MODE_JUMP + CAM_SETTING_MODE_NULL, // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_NULL, // CAM_MODE_TARGET + CAM_SETTING_MODE_NULL, // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT +}; + +CameraMode sCamSetTowerClimbModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL0, sSetTowerClimbModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetTowerClimbModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetTowerClimbModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetParallel0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B5978), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetNormDModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B59A8), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetSubjectDModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, D_801B59D0), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetStart0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE0, D_801B59F4), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetStart2Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE0, D_801B5A00), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetStop0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE6, sSetCutscenesModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetBoatCruiseModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetBoatCruiseModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_NULL, // CAM_MODE_JUMP + CAM_SETTING_MODE_NULL, // CAM_MODE_GORONDASH + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_NULL, // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_NULL, // CAM_MODE_TARGET + CAM_SETTING_MODE_NULL, // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW +}; + +CameraMode sCamSetVerticalClimbModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetVerticalClimbModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetVerticalClimbModeClimbData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetSidedModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B5A64), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDungeon2Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon2ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon2ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetDungeon2ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon2ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon2ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetBossOdolwaModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossOdolwaModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossOdolwaModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetBossOdolwaModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetBossOdolwaModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetBossOdolwaModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossOdolwaModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetKeepBackModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B5C80), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetVerticalClimbModeClimbData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetCirc6Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5CB0), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc7Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5CCC), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetMiniBossModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetMiniBossModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetMiniBossModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetMiniBossModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetMiniBossModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetMiniBossModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetRFixed1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED1, D_801B5DC4), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetTreasureChestMinigameModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetTreasureChestMinigameModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_NULL, // CAM_MODE_JUMP + CAM_SETTING_MODE_NULL, // CAM_MODE_GORONDASH + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_NULL, // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_NULL, // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetTreasureChestMinigameModeTargetData), // CAM_MODE_TARGET +}; + +CameraMode sCamSetBombBasketModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5E2C), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc8Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5E48), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetFukan1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B5E64), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B4F50), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B4F20), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B5E8C), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B4EF8), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetDungeon3Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon3ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon3ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon3ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetDungeon0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon3ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon3ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetTelescopeModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetTelescopeModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_NULL, // CAM_MODE_JUMP + CAM_SETTING_MODE_NULL, // CAM_MODE_GORONDASH + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetTelescopeModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_NULL, // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_NULL, // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetTelescopeModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_NULL, // CAM_MODE_TALK + CAM_SETTING_MODE_NULL, // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROW + CAM_SETTING_MODE_NULL, // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetTelescopeModeDekuHideData), // CAM_MODE_DEKUHIDE +}; + +CameraMode sCamSetRoom0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B601C), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B6154), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B62F4), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B634C), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B62C4), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B6074), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B6044), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, D_801B60A4), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, D_801B60D8), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B631C), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B626C), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B620C), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, D_801B610C), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, D_801B6130), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B61DC), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B617C), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B61AC), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B6294), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B6374), // CAM_MODE_DEKUFLYZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B63A4), // CAM_MODE_GORONJUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBoomerangData), // CAM_MODE_BOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B623C), // CAM_MODE_CHARGEZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B63CC), // CAM_MODE_ZORAFINZ +}; + +CameraMode sCamSetRCirc0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B63FC), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc9Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B6418), // CAM_MODE_NORMAL + CAM_SETTING_MODE_NULL, // CAM_MODE_JUMP + CAM_SETTING_MODE_NULL, // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5034), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_NULL, // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B5050), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT +}; + +CameraMode sCamSetOnThePoleModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B6434), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B648C), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B645C), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetDungeon0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B655C), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, D_801B64B4), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, D_801B64D8), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B64FC), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B652C), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon1ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetInBushModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B6584), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B6698), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, D_801B6674), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B65DC), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B65AC), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, D_801B660C), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, D_801B6640), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B66C0), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B4EF8), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetBossMajoraModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossMajoraModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossMajoraModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetBossMajoraModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetBossMajoraModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossMajoraModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetBossTwinmoldModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossTwinmoldModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossTwinmoldModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetBossTwinmoldModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetBossTwinmoldModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetBossTwinmoldModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossTwinmoldModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetBossGohtModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossGohtModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossGohtModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossGohtModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetBossGohtModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossGohtModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetBossGyorgModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetBossGyorgModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetBossGyorgModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetBossGyorgModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_NULL, // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetBossGyorgModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetBossGyorgModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetBossGyorgModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLYZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetBossGyorgModeGoronJumpData), // CAM_MODE_GORONJUMP +}; + +CameraMode sCamSetConnect0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_DEMO0, sSetCutscenesModeNormalData), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetPinnacleRockModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetPinnacleRockModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetPinnacleRockModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetPinnacleRockModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetPinnacleRockModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_NULL, // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetPinnacleRockModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetPinnacleRockModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLYZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetPinnacleRockModeGoronJumpData), // CAM_MODE_GORONJUMP +}; + +CameraMode sCamSetNormal2Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal2ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal2ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal2ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal2ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetBombBowlModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B6C98), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B6D24), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B62F4), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B634C), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B62C4), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B6CC0), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B6044), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, D_801B6CF0), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, D_801B60D8), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B631C), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B6D4C), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B620C), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, D_801B610C), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, D_801B6130), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B61DC), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B617C), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B61AC), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B6294), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B6374), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetCircAModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_FIXED2, D_801B6D74), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetWhirlpoolModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetWhirlpoolModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetWhirlpoolModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetWhirlpoolModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetPinnacleRockModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_NULL, // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetWhirlpoolModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetWhirlpoolModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLYZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetWhirlpoolModeGoronJumpData), // CAM_MODE_GORONJUMP +}; + +CameraMode sCamSetCuccoShackModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetCuccoShackModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal2ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal2ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetCuccoShackModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetCuccoShackModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL +}; + +CameraMode sCamSetGiantModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetGiantModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetGiantModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetGiantModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetGiantModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetScene0Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE2, D_801B6FA0), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetRoom1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B6FB0), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B703C), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B62C4), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B6FD8), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, D_801B60A4), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, D_801B7008), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B7064), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B708C), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetWater2Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, D_801B70BC), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, D_801B7148), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B70E4), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, D_801B7114), // CAM_MODE_TALK + CAM_SETTING_MODE_NULL, // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal3ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_NULL, // CAM_MODE_DEKUFLYZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP3, sSetNormal3ModeGoronJumpData), // CAM_MODE_GORONJUMP +}; + +CameraMode sCamSetWoodfallSwampModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE3, D_801B6584), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE3, D_801B6698), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE3, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE3, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, D_801B6674), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B65DC), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE4, D_801B65AC), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, D_801B660C), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE5, D_801B6640), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE4, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE3, D_801B66C0), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE4, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE4, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE4, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE4, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE3, D_801B6584), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE4, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetForceKeepModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B7170), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, D_801B71A0), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetParallel1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B71D4), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetStart1Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_UNIQUE0, D_801B7204), // CAM_MODE_NORMAL +}; + +CameraMode sCamSetRoom2Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B6FB0), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B703C), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B62C4), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, D_801B6FD8), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, D_801B7210), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, D_801B7008), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, D_801B7064), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, D_801B708C), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetNorm4Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetNormal0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal4ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetNormal0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetNormal0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraMode sCamSetElegyShellModes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, sSetElegyShellModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, sSetElegyShellModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, sSetElegyShellModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, sSetElegyShellModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_NULL, // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON4, sSetElegyShellModeDekuFlyData), // CAM_MODE_DEKUFLY +}; + +CameraMode sCamSetDungeon4Modes[] = { + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon4ModeNormalData), // CAM_MODE_NORMAL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon4ModeJumpData), // CAM_MODE_JUMP + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeGoronDashData), // CAM_MODE_GORONDASH + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeDekuShootData), // CAM_MODE_DEKUSHOOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowZData), // CAM_MODE_BOWARROWZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetNormal0ModeDekuFlyData), // CAM_MODE_DEKUFLY + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeFirstPersonData), // CAM_MODE_FIRSTPERSON + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowBoomerangData), // CAM_MODE_FOLLOWBOOMERANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeZoraFinData), // CAM_MODE_ZORAFIN + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON1, sSetDungeon0ModeFollowTargetData), // CAM_MODE_FOLLOWTARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon4ModeTargetData), // CAM_MODE_TARGET + CAM_SETTING_MODE_ENTRY(CAM_FUNC_KEEPON3, sSetNormal0ModeTalkData), // CAM_MODE_TALK + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeSlingshotData), // CAM_MODE_SLINGSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SUBJECT1, sSetNormal0ModeBowArrowData), // CAM_MODE_BOWARROW + CAM_SETTING_MODE_ENTRY(CAM_FUNC_BATTLE1, sSetDungeon0ModeBattleData), // CAM_MODE_BATTLE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuHideData), // CAM_MODE_DEKUHIDE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_NORMAL1, sSetDungeon4ModeStillData), // CAM_MODE_STILL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeChargeData), // CAM_MODE_CHARGE + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbData), // CAM_MODE_CLIMB + CAM_SETTING_MODE_ENTRY(CAM_FUNC_JUMP2, sSetDungeon0ModeClimbZData), // CAM_MODE_CLIMBZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_SPECIAL5, sSetNormal0ModeHookshotData), // CAM_MODE_HOOKSHOT + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeFreeFallData), // CAM_MODE_FREEFALL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangData), // CAM_MODE_HANG + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModeHangZData), // CAM_MODE_HANGZ + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetDungeon0ModePushPullData), // CAM_MODE_PUSHPULL + CAM_SETTING_MODE_ENTRY(CAM_FUNC_PARALLEL1, sSetNormal0ModeDekuFlyZData), // CAM_MODE_DEKUFLYZ +}; + +CameraSetting sCameraSettings[] = { + { 0x00000000, 0x00000000, NULL }, // CAM_SET_NONE + { 0x3FFFFFFF, 0x00000005, sCamSetNormal0Modes }, // CAM_SET_NORMAL0 + { 0x05FFEFF7, 0x00000005, sCamSetNormal3Modes }, // CAM_SET_NORMAL3 + { 0x00000401, 0x00000005, sCamSetPivotDivingModes }, // CAM_SET_PIVOT_DIVING + { 0x00017E13, 0x80000005, sCamSetHorseModes }, // CAM_SET_HORSE + { 0x00000001, 0x80000005, sCamSetZoraDivingModes }, // CAM_SET_ZORA_DIVING + { 0x00000001, 0x8000000C, sCamSetPreRendFixedModes }, // CAM_SET_PREREND_FIXED + { 0x00000001, 0x8000000C, sCamSetPreRendPivotModes }, // CAM_SET_PREREND_PIVOT + { 0x00000001, 0xC0000007, sCamSetDoorCModes }, // CAM_SET_DOORC + { 0x00000001, 0xC000000E, sCamSetDemo0Modes }, // CAM_SET_DEMO0 + { 0x00000001, 0x80000005, sCamSetFree0Modes }, // CAM_SET_FREE0 + { 0x03FFFFFF, 0x00000005, sCamSetFukan0Modes }, // CAM_SET_BIRDS_EYE_VIEW_0 + { 0x03FFFFFF, 0x00000005, sCamSetNormal1Modes }, // CAM_SET_NORMAL1 + { 0x03FFFFFF, 0x80000005, sCamSetNanameModes }, // CAM_SET_NANAME + { 0x00001BD9, 0x80000005, sCamSetCirc0Modes }, // CAM_SET_CIRCLE0 + { 0x000011D9, 0x80000005, sCamSetFixed0Modes }, // CAM_SET_FIXED0 + { 0x00000001, 0x40000005, sCamSetSpiralDoorModes }, // CAM_SET_SPIRAL_DOOR + { 0x3FFFFFFF, 0x00000005, sCamSetDungeon0Modes }, // CAM_SET_DUNGEON0 + { 0x0000002F, 0x00000005, sCamSetItem0Modes }, // CAM_SET_ITEM0 + { 0x0000002F, 0x00000005, sCamSetItem1Modes }, // CAM_SET_ITEM1 + { 0x0000002F, 0x00000005, sCamSetItem2Modes }, // CAM_SET_ITEM2 + { 0x0000002F, 0x00000005, sCamSetItem3Modes }, // CAM_SET_ITEM3 + { 0x00000001, 0x00000005, sCamSetNaviModes }, // CAM_SET_NAVI + { 0x0000002F, 0x00000005, sCamSetWarp0Modes }, // CAM_SET_WARP_PAD_MOON + { 0x0000002F, 0x00000005, sCamSetDeathModes }, // CAM_SET_DEATH + { 0x0000002F, 0x00000005, sCamSetRebirthModes }, // CAM_SET_REBIRTH + { 0x00000001, 0x40000005, sCamSetLongChestOpeningModes }, // CAM_SET_LONG_CHEST_OPENING + { 0x00000003, 0x00000005, sCamSetMaskTransformationModes }, // CAM_SET_MASK_TRANSFORMATION + { 0x00000001, 0x00000005, sCamSetAttentionModes }, // CAM_SET_ATTENTION + { 0x00000001, 0x00000005, sCamSetWarp1Modes }, // CAM_SET_WARP_PAD_ENTRANCE + { 0x03FFFFFF, 0x00000005, sCamSetDungeon1Modes }, // CAM_SET_DUNGEON1 + { 0x00000001, 0x80000005, sCamSetFixed1Modes }, // CAM_SET_FIXED1 + { 0x00000001, 0x80000005, sCamSetFixed2Modes }, // CAM_SET_FIXED2 + { 0x00000001, 0x00000005, sCamSetMazeModes }, // CAM_SET_MAZE + { 0x00000001, 0x00000005, sCamSetRemoteBombModes }, // CAM_SET_REMOTEBOMB + { 0x00000001, 0x80000005, sCamSetCirc1Modes }, // CAM_SET_CIRCLE1 + { 0x00000001, 0x80000005, sCamSetCirc2Modes }, // CAM_SET_CIRCLE2 + { 0x00001BD9, 0x80000005, sCamSetCirc3Modes }, // CAM_SET_CIRCLE3 + { 0x00000001, 0x80000005, sCamSetCirc4Modes }, // CAM_SET_CIRCLE4 + { 0x000011D9, 0x80000005, sCamSetFixed3Modes }, // CAM_SET_FIXED3 + { 0x03FFFFFF, 0x80000005, sCamSetTowerClimbModes }, // CAM_SET_TOWER_ASCENT + { 0x00000001, 0x80000005, sCamSetParallel0Modes }, // CAM_SET_PARALLEL0 + { 0x00000001, 0x00000005, sCamSetNormDModes }, // CAM_SET_NORMALD + { 0x00000001, 0x00000005, sCamSetSubjectDModes }, // CAM_SET_SUBJECTD + { 0x00000001, 0xC0000008, sCamSetStart0Modes }, // CAM_SET_START0 + { 0x00000001, 0xC0000008, sCamSetStart2Modes }, // CAM_SET_START2 + { 0x00000001, 0x00000005, sCamSetStop0Modes }, // CAM_SET_STOP0 + { 0x00003051, 0x00000005, sCamSetBoatCruiseModes }, // CAM_SET_BOAT_CRUISE + { 0x03FFFFFF, 0x00000005, sCamSetVerticalClimbModes }, // CAM_SET_VERTICAL_CLIMB + { 0x00000001, 0x00000005, sCamSetSidedModes }, // CAM_SET_SIDED + { 0x03FFFFFF, 0x00000005, sCamSetDungeon2Modes }, // CAM_SET_DUNGEON2 + { 0x03FFFFFF, 0x00000005, sCamSetBossOdolwaModes }, // CAM_SET_BOSS_ODOLWA + { 0x03FFFFFF, 0x80000005, sCamSetKeepBackModes }, // CAM_SET_KEEPBACK + { 0x00000001, 0x80000005, sCamSetCirc6Modes }, // CAM_SET_CIRCLE6 + { 0x00000001, 0x80000005, sCamSetCirc7Modes }, // CAM_SET_CIRCLE7 + { 0x03FFFFFF, 0x00000005, sCamSetMiniBossModes }, // CAM_SET_MINI_BOSS + { 0x00000001, 0x80000005, sCamSetRFixed1Modes }, // CAM_SET_RFIXED1 + { 0x00000401, 0x00000005, sCamSetTreasureChestMinigameModes }, // CAM_SET_TREASURE_CHEST_MINIGAME + { 0x00000001, 0x80000005, sCamSetBombBasketModes }, // CAM_SET_HONEY_AND_DARLING_1 + { 0x00000001, 0x80000005, sCamSetCirc8Modes }, // CAM_SET_CIRCLE8 + { 0x03FFFFFF, 0x00000005, sCamSetFukan1Modes }, // CAM_SET_BIRDS_EYE_VIEW_1 + { 0x03FFFFFF, 0x00000005, sCamSetDungeon3Modes }, // CAM_SET_DUNGEON3 + { 0x00008441, 0x0000000A, sCamSetTelescopeModes }, // CAM_SET_TELESCOPE + { 0x3FFFFFFF, 0x00000005, sCamSetRoom0Modes }, // CAM_SET_ROOM0 + { 0x00000001, 0x80000005, sCamSetRCirc0Modes }, // CAM_SET_RCIRC0 + { 0x00001BD9, 0x80000005, sCamSetCirc9Modes }, // CAM_SET_CIRCLE9 + { 0x03FFFFFF, 0x00000005, sCamSetOnThePoleModes }, // CAM_SET_ONTHEPOLE + { 0x03FFFFFF, 0x00000005, sCamSetInBushModes }, // CAM_SET_INBUSH + { 0x03FFFFFF, 0x00000005, sCamSetBossMajoraModes }, // CAM_SET_BOSS_MAJORA + { 0x03FFFFFF, 0x00000005, sCamSetBossTwinmoldModes }, // CAM_SET_BOSS_TWINMOLD + { 0x03FFFFFF, 0x00000005, sCamSetBossGohtModes }, // CAM_SET_BOSS_GOHT + { 0x05FFEFF7, 0x00000005, sCamSetBossGyorgModes }, // CAM_SET_BOSS_GYORG + { 0x00000001, 0x00000005, sCamSetConnect0Modes }, // CAM_SET_CONNECT0 + { 0x05FFEFF7, 0x00000005, sCamSetPinnacleRockModes }, // CAM_SET_PINNACLE_ROCK + { 0x03FFFFFF, 0x00000005, sCamSetNormal2Modes }, // CAM_SET_NORMAL2 + { 0x03FFFFFF, 0x00000005, sCamSetBombBowlModes }, // CAM_SET_HONEY_AND_DARLING_2 + { 0x00000001, 0x80000005, sCamSetCircAModes }, // CAM_SET_CIRCLEA + { 0x05FFEFF7, 0x00000005, sCamSetWhirlpoolModes }, // CAM_SET_WHIRLPOOL + { 0x01FFFFDF, 0x00000005, sCamSetCuccoShackModes }, // CAM_SET_CUCCO_SHACK + { 0x03FFFFFF, 0x00000005, sCamSetGiantModes }, // CAM_SET_GIANT + { 0x00000001, 0x00000008, sCamSetScene0Modes }, // CAM_SET_SCENE0 + { 0x03FFFFFF, 0x00000005, sCamSetRoom1Modes }, // CAM_SET_ROOM1 + { 0x05FFEFF7, 0x00000005, sCamSetWater2Modes }, // CAM_SET_WATER2 + { 0x03FFFFFF, 0x00000005, sCamSetWoodfallSwampModes }, // CAM_SET_WOODFALL_SWAMP + { 0x03FFFFFF, 0x00000005, sCamSetForceKeepModes }, // CAM_SET_FORCEKEEP + { 0x03FFFFFF, 0x80000005, sCamSetParallel1Modes }, // CAM_SET_PARALLEL1 + { 0x00000001, 0xC0000008, sCamSetStart1Modes }, // CAM_SET_START1 + { 0x03FFFFFF, 0x00000005, sCamSetRoom2Modes }, // CAM_SET_ROOM2 + { 0x03FFFFFF, 0x00000005, sCamSetNorm4Modes }, // CAM_SET_NORMAL4 + { 0x0000002F, 0x00000005, sCamSetElegyShellModes }, // CAM_SET_ELEGY_SHELL + { 0x03FFFFFF, 0x00000005, sCamSetDungeon4Modes }, // CAM_SET_DUNGEON4 +}; + +s16 sGlobalCamDataSettings[] = { + /* -25 */ CAM_SET_ELEGY_SHELL, + /* -24 */ CAM_SET_SIDED, + /* -23 */ CAM_SET_BOAT_CRUISE, + /* -22 */ CAM_SET_NONE, + /* -21 */ CAM_SET_SUBJECTD, + /* -20 */ CAM_SET_NORMALD, + /* -19 */ CAM_SET_NONE, + /* -18 */ CAM_SET_NONE, + /* -17 */ CAM_SET_NONE, + /* -16 */ CAM_SET_WARP_PAD_ENTRANCE, + /* -15 */ CAM_SET_ATTENTION, + /* -14 */ CAM_SET_CONNECT0, + /* -13 */ CAM_SET_REMOTEBOMB, + /* -12 */ CAM_SET_NONE, + /* -11 */ CAM_SET_MASK_TRANSFORMATION, + /* -10 */ CAM_SET_LONG_CHEST_OPENING, + /* -9 */ CAM_SET_REBIRTH, + /* -8 */ CAM_SET_DEATH, + /* -7 */ CAM_SET_WARP_PAD_MOON, + /* -6 */ CAM_SET_NAVI, + /* -5 */ CAM_SET_ITEM3, + /* -4 */ CAM_SET_ITEM2, + /* -3 */ CAM_SET_ITEM1, + /* -2 */ CAM_SET_ITEM0, + /* -1 */ CAM_SET_STOP0, + /* 0 */ CAM_SET_NONE, +}; + +s16* sGlobalCamDataSettingsPtr = &sGlobalCamDataSettings[ARRAY_COUNT(sGlobalCamDataSettings) - 1]; + +s32 Camera_Noop(Camera* camera); +s32 Camera_Normal1(Camera* camera); +s32 Camera_Normal2(Camera* camera); +s32 Camera_Normal3(Camera* camera); +s32 Camera_Normal4(Camera* camera); +s32 Camera_Normal0(Camera* camera); +s32 Camera_Parallel1(Camera* camera); +s32 Camera_Parallel2(Camera* camera); +s32 Camera_Parallel3(Camera* camera); +s32 Camera_Parallel4(Camera* camera); +s32 Camera_Parallel0(Camera* camera); +s32 Camera_Jump1(Camera* camera); +s32 Camera_Jump2(Camera* camera); +s32 Camera_Jump3(Camera* camera); +s32 Camera_Jump4(Camera* camera); +s32 Camera_Jump0(Camera* camera); +s32 Camera_Battle1(Camera* camera); +s32 Camera_Battle2(Camera* camera); +s32 Camera_Battle3(Camera* camera); +s32 Camera_Battle4(Camera* camera); +s32 Camera_Battle0(Camera* camera); +s32 Camera_KeepOn1(Camera* camera); +s32 Camera_KeepOn2(Camera* camera); +s32 Camera_KeepOn3(Camera* camera); +s32 Camera_KeepOn4(Camera* camera); +s32 Camera_KeepOn0(Camera* camera); +s32 Camera_Fixed1(Camera* camera); +s32 Camera_Fixed2(Camera* camera); +s32 Camera_Fixed3(Camera* camera); +s32 Camera_Fixed4(Camera* camera); +s32 Camera_Fixed0(Camera* camera); +s32 Camera_Subject1(Camera* camera); +s32 Camera_Subject2(Camera* camera); +s32 Camera_Subject3(Camera* camera); +s32 Camera_Subject4(Camera* camera); +s32 Camera_Subject0(Camera* camera); +s32 Camera_Data0(Camera* camera); +s32 Camera_Data1(Camera* camera); +s32 Camera_Data2(Camera* camera); +s32 Camera_Data3(Camera* camera); +s32 Camera_Data4(Camera* camera); +s32 Camera_Unique1(Camera* camera); +s32 Camera_Unique2(Camera* camera); +s32 Camera_Unique3(Camera* camera); +s32 Camera_Unique4(Camera* camera); +s32 Camera_Unique5(Camera* camera); +s32 Camera_Unique0(Camera* camera); +s32 Camera_Unique6(Camera* camera); +s32 Camera_Unique7(Camera* camera); +s32 Camera_Unique8(Camera* camera); +s32 Camera_Unique9(Camera* camera); +s32 Camera_Demo1(Camera* camera); +s32 Camera_Demo2(Camera* camera); +s32 Camera_Demo3(Camera* camera); +s32 Camera_Demo4(Camera* camera); +s32 Camera_Demo5(Camera* camera); +s32 Camera_Demo6(Camera* camera); +s32 Camera_Demo7(Camera* camera); +s32 Camera_Demo8(Camera* camera); +s32 Camera_Demo9(Camera* camera); +s32 Camera_Demo0(Camera* camera); +s32 Camera_Special0(Camera* camera); +s32 Camera_Special1(Camera* camera); +s32 Camera_Special2(Camera* camera); +s32 Camera_Special3(Camera* camera); +s32 Camera_Special4(Camera* camera); +s32 Camera_Special5(Camera* camera); +s32 Camera_Special6(Camera* camera); +s32 Camera_Special7(Camera* camera); +s32 Camera_Special8(Camera* camera); +s32 Camera_Special9(Camera* camera); + +CameraUpdateFunc sCameraUpdateHandlers[] = { + NULL, + Camera_Normal0, + Camera_Normal1, + Camera_Normal2, + Camera_Normal3, + Camera_Normal4, + Camera_Parallel0, + Camera_Parallel1, + Camera_Parallel2, + Camera_Parallel3, + Camera_Parallel4, + Camera_KeepOn0, + Camera_KeepOn1, + Camera_KeepOn2, + Camera_KeepOn3, + Camera_KeepOn4, + Camera_Subject0, + Camera_Subject1, + Camera_Subject2, + Camera_Subject3, + Camera_Subject4, + Camera_Jump0, + Camera_Jump1, + Camera_Jump2, + Camera_Jump3, + Camera_Jump4, + Camera_Battle0, + Camera_Battle1, + Camera_Battle2, + Camera_Battle3, + Camera_Battle4, + Camera_Fixed0, + Camera_Fixed1, + Camera_Fixed2, + Camera_Fixed3, + Camera_Fixed4, + Camera_Data0, + Camera_Data1, + Camera_Data2, + Camera_Data3, + Camera_Data4, + Camera_Unique0, + Camera_Unique1, + Camera_Unique2, + Camera_Unique3, + Camera_Unique4, + Camera_Unique5, + Camera_Unique6, + Camera_Unique7, + Camera_Unique8, + Camera_Unique9, + Camera_Demo0, + Camera_Demo1, + Camera_Demo2, + Camera_Demo3, + Camera_Demo4, + Camera_Demo5, + Camera_Demo6, + Camera_Demo7, + Camera_Demo8, + Camera_Demo9, + Camera_Special0, + Camera_Special1, + Camera_Special2, + Camera_Special3, + Camera_Special4, + Camera_Special5, + Camera_Special6, + Camera_Special7, + Camera_Special8, + Camera_Special9, +}; + +s16 sCameraNextUID = 0; +s32 sCameraInterfaceFlags = 1; +s32 sCameraHudVisibility = 2; +s32 sCameraLetterboxSize = 32; +s32 sCameraNegOne = -1; + +// VecSph yaw data +s16 D_801B9E18[] = { + 0x0AAA, 0xF556, 0x1555, 0xEAAB, 0x2AAA, 0xD556, 0x3FFF, 0xC001, 0x5555, 0xAAAB, 0x6AAA, 0x9556, 0x7FFF, 0x0000, +}; + +// VecSph pitch data +s16 D_801B9E34[] = { + 0x0000, 0x02C6, 0x058C, 0x0000, 0x0000, 0xFD3A, 0x0000, 0x0852, 0x0000, 0x0000, 0x0B18, 0x02C6, 0xFA74, 0x0000, +}; + +s32 sUpdateCameraDirection = false; +static s32 sIsFalse = false; +s32 sCameraInitSceneTimer = 0; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 4165363f84..e6ace2b97b 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -1182,77 +1182,77 @@ 0x800CEAD8:("func_800CEAD8",), 0x800CEC38:("func_800CEC38",), 0x800CED90:("func_800CED90",), - 0x800CF3A4:("Camera_ModeNop",), - 0x800CF3B4:("Camera_ModeNORM1",), - 0x800D0874:("Camera_ModeNORM2",), - 0x800D0894:("Camera_ModeNORM3",), - 0x800D1228:("Camera_ModeNORM4",), - 0x800D12B8:("Camera_ModeNORM0",), - 0x800D1A78:("Camera_ModePARA1",), - 0x800D2AA8:("Camera_ModePARA2",), - 0x800D2AC8:("Camera_ModePARA3",), - 0x800D2AE8:("Camera_ModePARA4",), - 0x800D2B08:("Camera_ModePARA0",), - 0x800D2B28:("Camera_ModeJUMP1",), - 0x800D2B48:("Camera_ModeJUMP2",), - 0x800D3520:("Camera_ModeJUMP3",), - 0x800D41E0:("Camera_ModeJUMP4",), - 0x800D4200:("Camera_ModeJUMP0",), - 0x800D4220:("Camera_ModeBATT1",), - 0x800D55A8:("Camera_ModeBATT2",), - 0x800D55C8:("Camera_ModeBATT3",), - 0x800D55E8:("Camera_ModeBATT4",), - 0x800D5608:("Camera_ModeBATT0",), - 0x800D5628:("Camera_ModeKEEP1",), - 0x800D67DC:("Camera_ModeKEEP2",), - 0x800D67FC:("Camera_ModeKEEP3",), - 0x800D73C8:("Camera_ModeKEEP4",), - 0x800D7FA4:("Camera_ModeKEEP0",), - 0x800D7FC4:("Camera_ModeFIXD1",), - 0x800D83C8:("Camera_ModeFIXD2",), - 0x800D8E08:("Camera_ModeFIXD3",), - 0x800D8E28:("Camera_ModeFIXD4",), - 0x800D8E48:("Camera_ModeFIXD0",), - 0x800D8E68:("Camera_ModeSUBJ1",), - 0x800D947C:("Camera_ModeSUBJ2",), - 0x800D949C:("Camera_ModeSUBJ3",), - 0x800D94BC:("Camera_ModeSUBJ4",), - 0x800D94DC:("Camera_ModeSUBJ0",), - 0x800D94FC:("Camera_ModeDATA0",), - 0x800D951C:("Camera_ModeDATA1",), - 0x800D953C:("Camera_ModeDATA2",), - 0x800D955C:("Camera_ModeDATA3",), - 0x800D957C:("Camera_ModeDATA4",), - 0x800D959C:("Camera_ModeUNIQ1",), - 0x800D95BC:("Camera_ModeUNIQ2",), - 0x800D99D0:("Camera_ModeUNIQ3",), - 0x800D9A2C:("Camera_ModeUNIQ4",), - 0x800D9A88:("Camera_ModeUNIQ5",), - 0x800D9AE4:("Camera_ModeUNIQ0",), - 0x800DA3B8:("Camera_ModeUNIQ6",), - 0x800DA4EC:("Camera_ModeUNIQ7",), - 0x800DA50C:("Camera_ModeUNIQ8",), - 0x800DA52C:("Camera_ModeUNIQ9",), - 0x800DA54C:("Camera_ModeDEMO1",), - 0x800DAD10:("Camera_ModeDEMO2",), - 0x800DB804:("Camera_ModeDEMO3",), - 0x800DBB14:("Camera_ModeDEMO4",), - 0x800DC270:("Camera_ModeDEMO5",), - 0x800DC718:("Camera_ModeDEMO6",), - 0x800DC738:("Camera_ModeDEMO7",), - 0x800DC758:("Camera_ModeDEMO8",), - 0x800DC778:("Camera_ModeDEMO9",), - 0x800DC798:("Camera_ModeDEMO0",), - 0x800DCC90:("Camera_ModeSPEC0",), - 0x800DCCB0:("Camera_ModeSPEC1",), - 0x800DCCD0:("Camera_ModeSPEC2",), - 0x800DCCF0:("Camera_ModeSPEC3",), - 0x800DCD10:("Camera_ModeSPEC4",), - 0x800DCD30:("Camera_ModeSPEC5",), - 0x800DD0FC:("Camera_ModeSPEC6",), - 0x800DD11C:("Camera_ModeSPEC7",), - 0x800DD13C:("Camera_ModeSPEC8",), - 0x800DD5B8:("Camera_ModeSPEC9",), + 0x800CF3A4:("Camera_Noop",), + 0x800CF3B4:("Camera_Normal1",), + 0x800D0874:("Camera_Normal2",), + 0x800D0894:("Camera_Normal3",), + 0x800D1228:("Camera_Normal4",), + 0x800D12B8:("Camera_Normal0",), + 0x800D1A78:("Camera_Parallel1",), + 0x800D2AA8:("Camera_Parallel2",), + 0x800D2AC8:("Camera_Parallel3",), + 0x800D2AE8:("Camera_Parallel4",), + 0x800D2B08:("Camera_Parallel0",), + 0x800D2B28:("Camera_Jump1",), + 0x800D2B48:("Camera_Jump2",), + 0x800D3520:("Camera_Jump3",), + 0x800D41E0:("Camera_Jump4",), + 0x800D4200:("Camera_Jump0",), + 0x800D4220:("Camera_Battle1",), + 0x800D55A8:("Camera_Battle2",), + 0x800D55C8:("Camera_Battle3",), + 0x800D55E8:("Camera_Battle4",), + 0x800D5608:("Camera_Battle0",), + 0x800D5628:("Camera_KeepOn1",), + 0x800D67DC:("Camera_KeepOn2",), + 0x800D67FC:("Camera_KeepOn3",), + 0x800D73C8:("Camera_KeepOn4",), + 0x800D7FA4:("Camera_KeepOn0",), + 0x800D7FC4:("Camera_Fixed1",), + 0x800D83C8:("Camera_Fixed2",), + 0x800D8E08:("Camera_Fixed3",), + 0x800D8E28:("Camera_Fixed4",), + 0x800D8E48:("Camera_Fixed0",), + 0x800D8E68:("Camera_Subject1",), + 0x800D947C:("Camera_Subject2",), + 0x800D949C:("Camera_Subject3",), + 0x800D94BC:("Camera_Subject4",), + 0x800D94DC:("Camera_Subject0",), + 0x800D94FC:("Camera_Data0",), + 0x800D951C:("Camera_Data1",), + 0x800D953C:("Camera_Data2",), + 0x800D955C:("Camera_Data3",), + 0x800D957C:("Camera_Data4",), + 0x800D959C:("Camera_Unique1",), + 0x800D95BC:("Camera_Unique2",), + 0x800D99D0:("Camera_Unique3",), + 0x800D9A2C:("Camera_Unique4",), + 0x800D9A88:("Camera_Unique5",), + 0x800D9AE4:("Camera_Unique0",), + 0x800DA3B8:("Camera_Unique6",), + 0x800DA4EC:("Camera_Unique7",), + 0x800DA50C:("Camera_Unique8",), + 0x800DA52C:("Camera_Unique9",), + 0x800DA54C:("Camera_Demo1",), + 0x800DAD10:("Camera_Demo2",), + 0x800DB804:("Camera_Demo3",), + 0x800DBB14:("Camera_Demo4",), + 0x800DC270:("Camera_Demo5",), + 0x800DC718:("Camera_Demo6",), + 0x800DC738:("Camera_Demo7",), + 0x800DC758:("Camera_Demo8",), + 0x800DC778:("Camera_Demo9",), + 0x800DC798:("Camera_Demo0",), + 0x800DCC90:("Camera_Special0",), + 0x800DCCB0:("Camera_Special1",), + 0x800DCCD0:("Camera_Special2",), + 0x800DCCF0:("Camera_Special3",), + 0x800DCD10:("Camera_Special4",), + 0x800DCD30:("Camera_Special5",), + 0x800DD0FC:("Camera_Special6",), + 0x800DD11C:("Camera_Special7",), + 0x800DD13C:("Camera_Special8",), + 0x800DD5B8:("Camera_Special9",), 0x800DDD58:("Camera_Alloc",), 0x800DDDA8:("Camera_Free",), 0x800DDDD0:("Camera_Init",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index f8023eb2c1..ae80ee3681 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -454,87 +454,100 @@ 0x801B46DC:("sSceneSubdivisionList","BgCheckSceneSubdivisionEntry","[3]",0x24), 0x801B4700:("sCustomDynapolyMem","BgSpecialSceneMaxObjects","[1]",0x8), 0x801B4708:("D_801B4708","UNK_TYPE1","",0x1), - 0x801B4710:("D_801B4710","UNK_TYPE1","",0x1), - 0x801B4738:("D_801B4738","UNK_TYPE1","",0x1), - 0x801B4768:("D_801B4768","UNK_TYPE1","",0x1), - 0x801B4798:("D_801B4798","UNK_TYPE1","",0x1), - 0x801B47CC:("D_801B47CC","UNK_TYPE1","",0x1), - 0x801B47F0:("D_801B47F0","UNK_TYPE1","",0x1), - 0x801B4824:("D_801B4824","UNK_TYPE1","",0x1), - 0x801B4848:("D_801B4848","UNK_TYPE1","",0x1), - 0x801B486C:("D_801B486C","UNK_TYPE1","",0x1), - 0x801B4890:("D_801B4890","UNK_TYPE1","",0x1), - 0x801B48B0:("D_801B48B0","UNK_TYPE1","",0x1), - 0x801B48D4:("D_801B48D4","UNK_TYPE1","",0x1), - 0x801B48F8:("D_801B48F8","UNK_TYPE1","",0x1), - 0x801B491C:("D_801B491C","UNK_TYPE1","",0x1), - 0x801B4944:("D_801B4944","UNK_TYPE1","",0x1), - 0x801B4974:("D_801B4974","UNK_TYPE1","",0x1), - 0x801B49A4:("D_801B49A4","UNK_TYPE1","",0x1), - 0x801B49D4:("D_801B49D4","UNK_TYPE1","",0x1), - 0x801B4A04:("D_801B4A04","UNK_TYPE1","",0x1), - 0x801B4A34:("D_801B4A34","UNK_TYPE1","",0x1), - 0x801B4A5C:("D_801B4A5C","UNK_TYPE1","",0x1), - 0x801B4A8C:("D_801B4A8C","UNK_TYPE1","",0x1), - 0x801B4ABC:("D_801B4ABC","UNK_TYPE1","",0x1), - 0x801B4AE0:("D_801B4AE0","UNK_TYPE1","",0x1), - 0x801B4B08:("D_801B4B08","UNK_TYPE1","",0x1), - 0x801B4B38:("D_801B4B38","UNK_TYPE1","",0x1), - 0x801B4B60:("D_801B4B60","UNK_TYPE1","",0x1), - 0x801B4B90:("D_801B4B90","UNK_TYPE1","",0x1), - 0x801B4BB8:("D_801B4BB8","UNK_TYPE1","",0x1), - 0x801B4BDC:("D_801B4BDC","UNK_TYPE1","",0x1), - 0x801B4C04:("D_801B4C04","UNK_TYPE1","",0x1), - 0x801B4C34:("D_801B4C34","UNK_TYPE1","",0x1), - 0x801B4C5C:("D_801B4C5C","UNK_TYPE1","",0x1), - 0x801B4C84:("D_801B4C84","UNK_TYPE1","",0x1), - 0x801B4CAC:("D_801B4CAC","UNK_TYPE1","",0x1), - 0x801B4CD4:("D_801B4CD4","UNK_TYPE1","",0x1), - 0x801B4CFC:("D_801B4CFC","UNK_TYPE1","",0x1), - 0x801B4D24:("D_801B4D24","UNK_TYPE1","",0x1), - 0x801B4D34:("D_801B4D34","UNK_TYPE1","",0x1), - 0x801B4D44:("D_801B4D44","UNK_TYPE1","",0x1), - 0x801B4D68:("D_801B4D68","UNK_TYPE1","",0x1), - 0x801B4D8C:("D_801B4D8C","UNK_TYPE1","",0x1), - 0x801B4DB0:("D_801B4DB0","UNK_TYPE1","",0x1), - 0x801B4DD4:("D_801B4DD4","UNK_TYPE1","",0x1), - 0x801B4DF8:("D_801B4DF8","UNK_TYPE1","",0x1), - 0x801B4E2C:("D_801B4E2C","UNK_TYPE1","",0x1), - 0x801B4E5C:("D_801B4E5C","UNK_TYPE1","",0x1), - 0x801B4E90:("D_801B4E90","UNK_TYPE1","",0x1), - 0x801B4EB4:("D_801B4EB4","UNK_TYPE1","",0x1), - 0x801B4ED8:("D_801B4ED8","UNK_TYPE1","",0x1), - 0x801B4EDC:("D_801B4EDC","UNK_TYPE1","",0x1), - 0x801B4EE4:("D_801B4EE4","UNK_TYPE1","",0x1), + 0x801B4710:("sSetNormal0ModeNormalData","UNK_TYPE1","",0x1), + 0x801B4738:("sSetNormal0ModeTargetData","UNK_TYPE1","",0x1), + 0x801B4768:("sSetNormal0ModeFollowTargetData","UNK_TYPE1","",0x1), + 0x801B4798:("sSetNormal0ModeBattleData","UNK_TYPE1","",0x1), + 0x801B47CC:("sSetNormal0ModeFirstPersonData","UNK_TYPE1","",0x1), + 0x801B47F0:("sSetNormal0ModeTalkData","UNK_TYPE1","",0x1), + 0x801B4824:("sSetNormal0ModeClimbData","UNK_TYPE1","",0x1), + 0x801B4848:("sSetNormal0ModeBowArrowData","UNK_TYPE1","",0x1), + 0x801B486C:("sSetNormal0ModeBowArrowZData","UNK_TYPE1","",0x1), + 0x801B4890:("sSetNormal0ModeHookshotData","UNK_TYPE1","",0x1), + 0x801B48B0:("sSetNormal0ModeBoomerangData","UNK_TYPE1","",0x1), + 0x801B48D4:("sSetNormal0ModeSlingshotData","UNK_TYPE1","",0x1), + 0x801B48F8:("sSetNormal0ModeClimbZData","UNK_TYPE1","",0x1), + 0x801B4710:("sSetNormal0ModeNormalData","UNK_TYPE1","",0x1), + 0x801B4738:("sSetNormal0ModeTargetData","UNK_TYPE1","",0x1), + 0x801B4768:("sSetNormal0ModeFollowTargetData","UNK_TYPE1","",0x1), + 0x801B4798:("sSetNormal0ModeBattleData","UNK_TYPE1","",0x1), + 0x801B47CC:("sSetNormal0ModeFirstPersonData","UNK_TYPE1","",0x1), + 0x801B47F0:("sSetNormal0ModeTalkData","UNK_TYPE1","",0x1), + 0x801B4824:("sSetNormal0ModeClimbData","UNK_TYPE1","",0x1), + 0x801B4848:("sSetNormal0ModeBowArrowData","UNK_TYPE1","",0x1), + 0x801B486C:("sSetNormal0ModeBowArrowZData","UNK_TYPE1","",0x1), + 0x801B4890:("sSetNormal0ModeHookshotData","UNK_TYPE1","",0x1), + 0x801B48B0:("sSetNormal0ModeBoomerangData","UNK_TYPE1","",0x1), + 0x801B48D4:("sSetNormal0ModeSlingshotData","UNK_TYPE1","",0x1), + 0x801B48F8:("sSetNormal0ModeClimbZData","UNK_TYPE1","",0x1), + 0x801B491C:("sSetNormal0ModeJumpData","UNK_TYPE1","",0x1), + 0x801B4944:("sSetNormal0ModeHangData","UNK_TYPE1","",0x1), + 0x801B4974:("sSetNormal0ModeHangZData","UNK_TYPE1","",0x1), + 0x801B49A4:("sSetNormal0ModeFreeFallData","UNK_TYPE1","",0x1), + 0x801B49D4:("sSetNormal0ModeChargeData","UNK_TYPE1","",0x1), + 0x801B4A04:("sSetNormal0ModeChargeZData","UNK_TYPE1","",0x1), + 0x801B4A34:("sSetNormal0ModeStillData","UNK_TYPE1","",0x1), + 0x801B4A5C:("sSetNormal0ModePushPullData","UNK_TYPE1","",0x1), + 0x801B4A8C:("sSetNormal0ModeFollowBoomerangData","UNK_TYPE1","",0x1), + 0x801B4ABC:("sSetNormal0ModeDekuShootData","UNK_TYPE1","",0x1), + 0x801B4AE0:("sSetNormal0ModeGoronDashData","UNK_TYPE1","",0x1), + 0x801B4B08:("sSetNormal0ModeDekuHideData","UNK_TYPE1","",0x1), + 0x801B4B38:("sSetNormal0ModeDekuFlyData","UNK_TYPE1","",0x1), + 0x801B4B60:("sSetNormal0ModeDekuFlyZData","UNK_TYPE1","",0x1), + 0x801B4B90:("sSetNormal0ModeGoronJumpData","UNK_TYPE1","",0x1), + 0x801B4BB8:("sSetNormal0ModeZoraFinData","UNK_TYPE1","",0x1), + 0x801B4BDC:("sSetNormal3ModeNormalData","UNK_TYPE1","",0x1), + 0x801B4C04:("sSetNormal3ModeTargetData","UNK_TYPE1","",0x1), + 0x801B4C34:("sSetNormal3ModeFreeFallData","UNK_TYPE1","",0x1), + 0x801B4C5C:("sSetNormal3ModeGoronJumpData","UNK_TYPE1","",0x1), + 0x801B4C84:("sSetNormal3ModeDekuFlyData","UNK_TYPE1","",0x1), + 0x801B4CAC:("sSetNormal3ModeDekuHideData","UNK_TYPE1","",0x1), + 0x801B4CD4:("sSetNormal3ModeStillData","UNK_TYPE1","",0x1), + 0x801B4CFC:("sSetNormal3ModeGoronDashData","UNK_TYPE1","",0x1), + 0x801B4D24:("sSetPivotDivingModeNormalData","UNK_TYPE1","",0x1), + 0x801B4D34:("sSetPivotDivingModeTargetData","UNK_TYPE1","",0x1), + 0x801B4D44:("sSetHorseModeNormalData","UNK_TYPE1","",0x1), + 0x801B4D68:("sSetHorseModeTargetData","UNK_TYPE1","",0x1), + 0x801B4D8C:("sSetHorseModeJumpData","UNK_TYPE1","",0x1), + 0x801B4DB0:("sSetHorseModeBowArrowData","UNK_TYPE1","",0x1), + 0x801B4DD4:("sSetHorseModeSlingShotData","UNK_TYPE1","",0x1), + 0x801B4DF8:("sSetHorseModeBattleData","UNK_TYPE1","",0x1), + 0x801B4E2C:("sSetHorseModeFollowTargetData","UNK_TYPE1","",0x1), + 0x801B4E5C:("sSetHorseModeTalkData","UNK_TYPE1","",0x1), + 0x801B4E90:("sSetHorseModeStillData","UNK_TYPE1","",0x1), + 0x801B4EB4:("sSetZoraDivingModeNormalData","UNK_TYPE1","",0x1), + 0x801B4ED8:("sSetPrerendFixedModeNormalData","UNK_TYPE1","",0x1), + 0x801B4EDC:("sSetPrerendPivotModeNormalData","UNK_TYPE1","",0x1), + 0x801B4EE4:("sSetDoorCModeNormalData","UNK_TYPE1","",0x1), 0x801B4EF0:("D_801B4EF0","UNK_TYPE1","",0x1), - 0x801B4EF4:("D_801B4EF4","UNK_TYPE1","",0x1), + 0x801B4EF4:("sSetCutscenesModeNormalData","UNK_TYPE1","",0x1), 0x801B4EF8:("D_801B4EF8","UNK_TYPE1","",0x1), 0x801B4F20:("D_801B4F20","UNK_TYPE1","",0x1), 0x801B4F50:("D_801B4F50","UNK_TYPE1","",0x1), 0x801B4F78:("D_801B4F78","UNK_TYPE1","",0x1), - 0x801B4FA0:("D_801B4FA0","UNK_TYPE1","",0x1), - 0x801B4FC8:("D_801B4FC8","UNK_TYPE1","",0x1), + 0x801B4FA0:("sSetNormal1ModeNormalData","UNK_TYPE1","",0x1), + 0x801B4FC8:("sSetNormal1ModeStillData","UNK_TYPE1","",0x1), 0x801B4FF0:("D_801B4FF0","UNK_TYPE1","",0x1), 0x801B5018:("D_801B5018","UNK_TYPE1","",0x1), 0x801B5034:("D_801B5034","UNK_TYPE1","",0x1), 0x801B5050:("D_801B5050","UNK_TYPE1","",0x1), 0x801B506C:("D_801B506C","UNK_TYPE1","",0x1), - 0x801B507C:("D_801B507C","UNK_TYPE1","",0x1), - 0x801B5094:("D_801B5094","UNK_TYPE1","",0x1), - 0x801B50BC:("D_801B50BC","UNK_TYPE1","",0x1), - 0x801B50EC:("D_801B50EC","UNK_TYPE1","",0x1), - 0x801B511C:("D_801B511C","UNK_TYPE1","",0x1), - 0x801B5150:("D_801B5150","UNK_TYPE1","",0x1), - 0x801B5180:("D_801B5180","UNK_TYPE1","",0x1), - 0x801B51A8:("D_801B51A8","UNK_TYPE1","",0x1), - 0x801B51D8:("D_801B51D8","UNK_TYPE1","",0x1), - 0x801B51FC:("D_801B51FC","UNK_TYPE1","",0x1), - 0x801B5220:("D_801B5220","UNK_TYPE1","",0x1), - 0x801B5250:("D_801B5250","UNK_TYPE1","",0x1), - 0x801B5280:("D_801B5280","UNK_TYPE1","",0x1), - 0x801B52B0:("D_801B52B0","UNK_TYPE1","",0x1), - 0x801B52E0:("D_801B52E0","UNK_TYPE1","",0x1), - 0x801B5308:("D_801B5308","UNK_TYPE1","",0x1), + 0x801B507C:("sSetSpiralDoorModeNormalData","UNK_TYPE1","",0x1), + 0x801B5094:("sSetDungeon0ModeNormalData","UNK_TYPE1","",0x1), + 0x801B50BC:("sSetDungeon0ModeTargetData","UNK_TYPE1","",0x1), + 0x801B50EC:("sSetDungeon0ModeFollowTargetData","UNK_TYPE1","",0x1), + 0x801B511C:("sSetDungeon0ModeBattleData","UNK_TYPE1","",0x1), + 0x801B5150:("sSetDungeon0ModeFollowBoomerangData","UNK_TYPE1","",0x1), + 0x801B5180:("sSetDungeon0ModeJumpData","UNK_TYPE1","",0x1), + 0x801B51A8:("sSetDungeon0ModeFreeFallData","UNK_TYPE1","",0x1), + 0x801B51D8:("sSetDungeon0ModeClimbData","UNK_TYPE1","",0x1), + 0x801B51FC:("sSetDungeon0ModeClimbZData","UNK_TYPE1","",0x1), + 0x801B5220:("sSetDungeon0ModeChargeData","UNK_TYPE1","",0x1), + 0x801B5250:("sSetDungeon0ModeChargeZData","UNK_TYPE1","",0x1), + 0x801B5280:("sSetDungeon0ModeHangData","UNK_TYPE1","",0x1), + 0x801B52B0:("sSetDungeon0ModeHangZData","UNK_TYPE1","",0x1), + 0x801B52E0:("sSetDungeon0ModeStillData","UNK_TYPE1","",0x1), + 0x801B5308:("sSetDungeon0ModePushPullData","UNK_TYPE1","",0x1), 0x801B5338:("D_801B5338","UNK_TYPE1","",0x1), 0x801B535C:("D_801B535C","UNK_TYPE1","",0x1), 0x801B5380:("D_801B5380","UNK_TYPE1","",0x1), @@ -560,71 +573,71 @@ 0x801B5650:("D_801B5650","UNK_TYPE1","",0x1), 0x801B5674:("D_801B5674","UNK_TYPE1","",0x1), 0x801B5698:("D_801B5698","UNK_TYPE1","",0x1), - 0x801B56BC:("D_801B56BC","UNK_TYPE1","",0x1), - 0x801B56E0:("D_801B56E0","UNK_TYPE1","",0x1), - 0x801B5704:("D_801B5704","UNK_TYPE1","",0x1), + 0x801B56BC:("sSetDeathModeNormalData","UNK_TYPE1","",0x1), + 0x801B56E0:("sSetDeathModeJumpData","UNK_TYPE1","",0x1), + 0x801B5704:("sSetDeathModeDekuShootData","UNK_TYPE1","",0x1), 0x801B5728:("D_801B5728","UNK_TYPE1","",0x1), 0x801B574C:("D_801B574C","UNK_TYPE1","",0x1), - 0x801B5770:("D_801B5770","UNK_TYPE1","",0x1), - 0x801B577C:("D_801B577C","UNK_TYPE1","",0x1), - 0x801B57A4:("D_801B57A4","UNK_TYPE1","",0x1), - 0x801B57CC:("D_801B57CC","UNK_TYPE1","",0x1), - 0x801B57F4:("D_801B57F4","UNK_TYPE1","",0x1), + 0x801B5770:("sSetLongChestOpeningModeNormalData","UNK_TYPE1","",0x1), + 0x801B577C:("sSetDungeon1ModeNormalData","UNK_TYPE1","",0x1), + 0x801B57A4:("sSetDungeon1ModeJumpData","UNK_TYPE1","",0x1), + 0x801B57CC:("sSetDungeon1ModeStillData","UNK_TYPE1","",0x1), + 0x801B57F4:("sSetDungeon1ModePushPullData","UNK_TYPE1","",0x1), 0x801B5824:("D_801B5824","UNK_TYPE1","",0x1), 0x801B5834:("D_801B5834","UNK_TYPE1","",0x1), - 0x801B5844:("D_801B5844","UNK_TYPE1","",0x1), - 0x801B5864:("D_801B5864","UNK_TYPE1","",0x1), + 0x801B5844:("sSetMazeModeNormalData","UNK_TYPE1","",0x1), + 0x801B5864:("sSetRemoteBombModeNormalData","UNK_TYPE1","",0x1), 0x801B5884:("D_801B5884","UNK_TYPE1","",0x1), 0x801B58A0:("D_801B58A0","UNK_TYPE1","",0x1), 0x801B58BC:("D_801B58BC","UNK_TYPE1","",0x1), 0x801B58D8:("D_801B58D8","UNK_TYPE1","",0x1), 0x801B58F4:("D_801B58F4","UNK_TYPE1","",0x1), - 0x801B5904:("D_801B5904","UNK_TYPE1","",0x1), - 0x801B5928:("D_801B5928","UNK_TYPE1","",0x1), - 0x801B5950:("D_801B5950","UNK_TYPE1","",0x1), + 0x801B5904:("sSetTowerClimbModeNormalData","UNK_TYPE1","",0x1), + 0x801B5928:("sSetTowerClimbModeJumpData","UNK_TYPE1","",0x1), + 0x801B5950:("sSetTowerClimbModeStillData","UNK_TYPE1","",0x1), 0x801B5978:("D_801B5978","UNK_TYPE1","",0x1), 0x801B59A8:("D_801B59A8","UNK_TYPE1","",0x1), 0x801B59D0:("D_801B59D0","UNK_TYPE1","",0x1), 0x801B59F4:("D_801B59F4","UNK_TYPE1","",0x1), 0x801B5A00:("D_801B5A00","UNK_TYPE1","",0x1), - 0x801B5A0C:("D_801B5A0C","UNK_TYPE1","",0x1), - 0x801B5A30:("D_801B5A30","UNK_TYPE1","",0x1), + 0x801B5A0C:("sSetBoatCruiseModeNormalData","UNK_TYPE1","",0x1), + 0x801B5A30:("sSetVerticalClimbModeClimbData","UNK_TYPE1","",0x1), 0x801B5A64:("D_801B5A64","UNK_TYPE1","",0x1), - 0x801B5A94:("D_801B5A94","UNK_TYPE1","",0x1), - 0x801B5ABC:("D_801B5ABC","UNK_TYPE1","",0x1), - 0x801B5AF0:("D_801B5AF0","UNK_TYPE1","",0x1), - 0x801B5B18:("D_801B5B18","UNK_TYPE1","",0x1), - 0x801B5B40:("D_801B5B40","UNK_TYPE1","",0x1), - 0x801B5B70:("D_801B5B70","UNK_TYPE1","",0x1), - 0x801B5B98:("D_801B5B98","UNK_TYPE1","",0x1), - 0x801B5BC8:("D_801B5BC8","UNK_TYPE1","",0x1), - 0x801B5BFC:("D_801B5BFC","UNK_TYPE1","",0x1), - 0x801B5C30:("D_801B5C30","UNK_TYPE1","",0x1), - 0x801B5C58:("D_801B5C58","UNK_TYPE1","",0x1), + 0x801B5A94:("sSetDungeon2ModeNormalData","UNK_TYPE1","",0x1), + 0x801B5ABC:("sSetDungeon2ModeBattleData","UNK_TYPE1","",0x1), + 0x801B5AF0:("sSetDungeon2ModeJumpData","UNK_TYPE1","",0x1), + 0x801B5B18:("sSetDungeon2ModeStillData","UNK_TYPE1","",0x1), + 0x801B5B40:("sSetDungeon2ModePushPullData","UNK_TYPE1","",0x1), + 0x801B5B70:("sSetBossOdolwaModeNormalData","UNK_TYPE1","",0x1), + 0x801B5B98:("sSetBossOdolwaModeFollowTargetData","UNK_TYPE1","",0x1), + 0x801B5BC8:("sSetBossOdolwaModeTalkData","UNK_TYPE1","",0x1), + 0x801B5BFC:("sSetBossOdolwaModeBattleData","UNK_TYPE1","",0x1), + 0x801B5C30:("sSetBossOdolwaModeJumpData","UNK_TYPE1","",0x1), + 0x801B5C58:("sSetBossOdolwaModeStillData","UNK_TYPE1","",0x1), 0x801B5C80:("D_801B5C80","UNK_TYPE1","",0x1), 0x801B5CB0:("D_801B5CB0","UNK_TYPE1","",0x1), 0x801B5CCC:("D_801B5CCC","UNK_TYPE1","",0x1), - 0x801B5CE8:("D_801B5CE8","UNK_TYPE1","",0x1), - 0x801B5D10:("D_801B5D10","UNK_TYPE1","",0x1), - 0x801B5D40:("D_801B5D40","UNK_TYPE1","",0x1), - 0x801B5D74:("D_801B5D74","UNK_TYPE1","",0x1), - 0x801B5D9C:("D_801B5D9C","UNK_TYPE1","",0x1), + 0x801B5CE8:("sSetMiniBossModeNormalData","UNK_TYPE1","",0x1), + 0x801B5D10:("sSetMiniBossModeFollowTargetData","UNK_TYPE1","",0x1), + 0x801B5D40:("sSetMiniBossModeBattleData","UNK_TYPE1","",0x1), + 0x801B5D74:("sSetMiniBossModeJumpData","UNK_TYPE1","",0x1), + 0x801B5D9C:("sSetMiniBossModeStillData","UNK_TYPE1","",0x1), 0x801B5DC4:("D_801B5DC4","UNK_TYPE1","",0x1), - 0x801B5DD4:("D_801B5DD4","UNK_TYPE1","",0x1), - 0x801B5DFC:("D_801B5DFC","UNK_TYPE1","",0x1), + 0x801B5DD4:("sSetTreasureChestMinigameModeNormalData","UNK_TYPE1","",0x1), + 0x801B5DFC:("sSetTreasureChestMinigameModeTargetData","UNK_TYPE1","",0x1), 0x801B5E2C:("D_801B5E2C","UNK_TYPE1","",0x1), 0x801B5E48:("D_801B5E48","UNK_TYPE1","",0x1), 0x801B5E64:("D_801B5E64","UNK_TYPE1","",0x1), 0x801B5E8C:("D_801B5E8C","UNK_TYPE1","",0x1), - 0x801B5EB4:("D_801B5EB4","UNK_TYPE1","",0x1), - 0x801B5EDC:("D_801B5EDC","UNK_TYPE1","",0x1), - 0x801B5F0C:("D_801B5F0C","UNK_TYPE1","",0x1), - 0x801B5F34:("D_801B5F34","UNK_TYPE1","",0x1), - 0x801B5F5C:("D_801B5F5C","UNK_TYPE1","",0x1), - 0x801B5F8C:("D_801B5F8C","UNK_TYPE1","",0x1), - 0x801B5FB0:("D_801B5FB0","UNK_TYPE1","",0x1), - 0x801B5FD4:("D_801B5FD4","UNK_TYPE1","",0x1), - 0x801B5FF8:("D_801B5FF8","UNK_TYPE1","",0x1), + 0x801B5EB4:("sSetDungeon3ModeNormalData","UNK_TYPE1","",0x1), + 0x801B5EDC:("sSetDungeon3ModeTargetData","UNK_TYPE1","",0x1), + 0x801B5F0C:("sSetDungeon3ModeJumpData","UNK_TYPE1","",0x1), + 0x801B5F34:("sSetDungeon3ModeStillData","UNK_TYPE1","",0x1), + 0x801B5F5C:("sSetDungeon3ModePushPullData","UNK_TYPE1","",0x1), + 0x801B5F8C:("sSetTelescopeModeNormalData","UNK_TYPE1","",0x1), + 0x801B5FB0:("sSetTelescopeModeTargetData","UNK_TYPE1","",0x1), + 0x801B5FD4:("sSetTelescopeModeFirstPersonData","UNK_TYPE1","",0x1), + 0x801B5FF8:("sSetTelescopeModeDekuHideData","UNK_TYPE1","",0x1), 0x801B601C:("D_801B601C","UNK_TYPE1","",0x1), 0x801B6044:("D_801B6044","UNK_TYPE1","",0x1), 0x801B6074:("D_801B6074","UNK_TYPE1","",0x1), @@ -665,59 +678,59 @@ 0x801B6674:("D_801B6674","UNK_TYPE1","",0x1), 0x801B6698:("D_801B6698","UNK_TYPE1","",0x1), 0x801B66C0:("D_801B66C0","UNK_TYPE1","",0x1), - 0x801B66E8:("D_801B66E8","UNK_TYPE1","",0x1), - 0x801B6710:("D_801B6710","UNK_TYPE1","",0x1), - 0x801B6740:("D_801B6740","UNK_TYPE1","",0x1), - 0x801B6774:("D_801B6774","UNK_TYPE1","",0x1), - 0x801B679C:("D_801B679C","UNK_TYPE1","",0x1), - 0x801B67C4:("D_801B67C4","UNK_TYPE1","",0x1), - 0x801B67EC:("D_801B67EC","UNK_TYPE1","",0x1), - 0x801B681C:("D_801B681C","UNK_TYPE1","",0x1), - 0x801B684C:("D_801B684C","UNK_TYPE1","",0x1), - 0x801B6880:("D_801B6880","UNK_TYPE1","",0x1), - 0x801B68A8:("D_801B68A8","UNK_TYPE1","",0x1), - 0x801B68D0:("D_801B68D0","UNK_TYPE1","",0x1), - 0x801B68F8:("D_801B68F8","UNK_TYPE1","",0x1), - 0x801B692C:("D_801B692C","UNK_TYPE1","",0x1), - 0x801B6954:("D_801B6954","UNK_TYPE1","",0x1), - 0x801B697C:("D_801B697C","UNK_TYPE1","",0x1), - 0x801B69A4:("D_801B69A4","UNK_TYPE1","",0x1), - 0x801B69CC:("D_801B69CC","UNK_TYPE1","",0x1), - 0x801B69FC:("D_801B69FC","UNK_TYPE1","",0x1), - 0x801B6A30:("D_801B6A30","UNK_TYPE1","",0x1), - 0x801B6A58:("D_801B6A58","UNK_TYPE1","",0x1), - 0x801B6A80:("D_801B6A80","UNK_TYPE1","",0x1), - 0x801B6AA8:("D_801B6AA8","UNK_TYPE1","",0x1), - 0x801B6AD0:("D_801B6AD0","UNK_TYPE1","",0x1), - 0x801B6AF8:("D_801B6AF8","UNK_TYPE1","",0x1), - 0x801B6B28:("D_801B6B28","UNK_TYPE1","",0x1), - 0x801B6B50:("D_801B6B50","UNK_TYPE1","",0x1), - 0x801B6B78:("D_801B6B78","UNK_TYPE1","",0x1), - 0x801B6BA0:("D_801B6BA0","UNK_TYPE1","",0x1), - 0x801B6BC8:("D_801B6BC8","UNK_TYPE1","",0x1), - 0x801B6BF0:("D_801B6BF0","UNK_TYPE1","",0x1), - 0x801B6C18:("D_801B6C18","UNK_TYPE1","",0x1), - 0x801B6C48:("D_801B6C48","UNK_TYPE1","",0x1), - 0x801B6C70:("D_801B6C70","UNK_TYPE1","",0x1), + 0x801B66E8:("sSetBossMajoraModeNormalData","UNK_TYPE1","",0x1), + 0x801B6710:("sSetBossMajoraModeFollowTargetData","UNK_TYPE1","",0x1), + 0x801B6740:("sSetBossMajoraModeBattleData","UNK_TYPE1","",0x1), + 0x801B6774:("sSetBossMajoraModeJumpData","UNK_TYPE1","",0x1), + 0x801B679C:("sSetBossMajoraModeStillData","UNK_TYPE1","",0x1), + 0x801B67C4:("sSetBossTwinmoldModeNormalData","UNK_TYPE1","",0x1), + 0x801B67EC:("sSetBossTwinmoldModeTargetData","UNK_TYPE1","",0x1), + 0x801B681C:("sSetBossTwinmoldModeFollowTargetData","UNK_TYPE1","",0x1), + 0x801B684C:("sSetBossTwinmoldModeBattleData","UNK_TYPE1","",0x1), + 0x801B6880:("sSetBossTwinmoldModeJumpData","UNK_TYPE1","",0x1), + 0x801B68A8:("sSetBossTwinmoldModeStillData","UNK_TYPE1","",0x1), + 0x801B68D0:("sSetBossGohtModeNormalData","UNK_TYPE1","",0x1), + 0x801B68F8:("sSetBossGohtModeBattleData","UNK_TYPE1","",0x1), + 0x801B692C:("sSetBossGohtModeJumpData","UNK_TYPE1","",0x1), + 0x801B6954:("sSetBossGohtModeStillData","UNK_TYPE1","",0x1), + 0x801B697C:("sSetBossGohtModeGoronDashData","UNK_TYPE1","",0x1), + 0x801B69A4:("sSetBossGyorgModeNormalData","UNK_TYPE1","",0x1), + 0x801B69CC:("sSetBossGyorgModeFollowTargetData","UNK_TYPE1","",0x1), + 0x801B69FC:("sSetBossGyorgModeBattleData","UNK_TYPE1","",0x1), + 0x801B6A30:("sSetBossGyorgModeGoronJumpData","UNK_TYPE1","",0x1), + 0x801B6A58:("sSetBossGyorgModeDekuFlyData","UNK_TYPE1","",0x1), + 0x801B6A80:("sSetBossGyorgModeDekuHideData","UNK_TYPE1","",0x1), + 0x801B6AA8:("sSetBossGyorgModeStillData","UNK_TYPE1","",0x1), + 0x801B6AD0:("sSetPinnacleRockModeNormalData","UNK_TYPE1","",0x1), + 0x801B6AF8:("sSetPinnacleRockModeTargetData","UNK_TYPE1","",0x1), + 0x801B6B28:("sSetPinnacleRockModeGoronJumpData","UNK_TYPE1","",0x1), + 0x801B6B50:("sSetPinnacleRockModeDekuFlyData","UNK_TYPE1","",0x1), + 0x801B6B78:("sSetPinnacleRockModeDekuHideData","UNK_TYPE1","",0x1), + 0x801B6BA0:("sSetPinnacleRockModeStillData","UNK_TYPE1","",0x1), + 0x801B6BC8:("sSetPinnacleRockModeGoronDashData","UNK_TYPE1","",0x1), + 0x801B6BF0:("sSetNormal2ModeNormalData","UNK_TYPE1","",0x1), + 0x801B6C18:("sSetNormal2ModeTargetData","UNK_TYPE1","",0x1), + 0x801B6C48:("sSetNormal2ModeJumpData","UNK_TYPE1","",0x1), + 0x801B6C70:("sSetNormal2ModeStillData","UNK_TYPE1","",0x1), 0x801B6C98:("D_801B6C98","UNK_TYPE1","",0x1), 0x801B6CC0:("D_801B6CC0","UNK_TYPE1","",0x1), 0x801B6CF0:("D_801B6CF0","UNK_TYPE1","",0x1), 0x801B6D24:("D_801B6D24","UNK_TYPE1","",0x1), 0x801B6D4C:("D_801B6D4C","UNK_TYPE1","",0x1), 0x801B6D74:("D_801B6D74","UNK_TYPE1","",0x1), - 0x801B6D90:("D_801B6D90","UNK_TYPE1","",0x1), - 0x801B6DB8:("D_801B6DB8","UNK_TYPE1","",0x1), - 0x801B6DE0:("D_801B6DE0","UNK_TYPE1","",0x1), - 0x801B6E08:("D_801B6E08","UNK_TYPE1","",0x1), - 0x801B6E30:("D_801B6E30","UNK_TYPE1","",0x1), - 0x801B6E58:("D_801B6E58","UNK_TYPE1","",0x1), - 0x801B6E80:("D_801B6E80","UNK_TYPE1","",0x1), - 0x801B6EA8:("D_801B6EA8","UNK_TYPE1","",0x1), - 0x801B6ED0:("D_801B6ED0","UNK_TYPE1","",0x1), - 0x801B6EF8:("D_801B6EF8","UNK_TYPE1","",0x1), - 0x801B6F20:("D_801B6F20","UNK_TYPE1","",0x1), - 0x801B6F50:("D_801B6F50","UNK_TYPE1","",0x1), - 0x801B6F78:("D_801B6F78","UNK_TYPE1","",0x1), + 0x801B6D90:("sSetWhirlpoolModeNormalData","UNK_TYPE1","",0x1), + 0x801B6DB8:("sSetWhirlpoolModeFreeFallData","UNK_TYPE1","",0x1), + 0x801B6DE0:("sSetWhirlpoolModeGoronJumpData","UNK_TYPE1","",0x1), + 0x801B6E08:("sSetWhirlpoolModeDekuFlyData","UNK_TYPE1","",0x1), + 0x801B6E30:("sSetWhirlpoolModeDekuHideData","UNK_TYPE1","",0x1), + 0x801B6E58:("sSetWhirlpoolModeGoronDashData","UNK_TYPE1","",0x1), + 0x801B6E80:("sSetCuccoShackModeNormalData","UNK_TYPE1","",0x1), + 0x801B6EA8:("sSetCuccoShackModeStillData","UNK_TYPE1","",0x1), + 0x801B6ED0:("sSetCuccoShackModeDekuHideData","UNK_TYPE1","",0x1), + 0x801B6EF8:("sSetGiantModeNormalData","UNK_TYPE1","",0x1), + 0x801B6F20:("sSetGiantModeTargetData","UNK_TYPE1","",0x1), + 0x801B6F50:("sSetGiantModeJumpData","UNK_TYPE1","",0x1), + 0x801B6F78:("sSetGiantModeStillData","UNK_TYPE1","",0x1), 0x801B6FA0:("D_801B6FA0","UNK_TYPE1","",0x1), 0x801B6FB0:("D_801B6FB0","UNK_TYPE1","",0x1), 0x801B6FD8:("D_801B6FD8","UNK_TYPE1","",0x1), @@ -734,130 +747,129 @@ 0x801B71D4:("D_801B71D4","UNK_TYPE1","",0x1), 0x801B7204:("D_801B7204","UNK_TYPE1","",0x1), 0x801B7210:("D_801B7210","UNK_TYPE1","",0x1), - 0x801B7244:("D_801B7244","UNK_TYPE1","",0x1), - 0x801B7278:("D_801B7278","UNK_TYPE1","",0x1), - 0x801B729C:("D_801B729C","UNK_TYPE1","",0x1), - 0x801B72C0:("D_801B72C0","UNK_TYPE1","",0x1), - 0x801B72E4:("D_801B72E4","UNK_TYPE1","",0x1), - 0x801B7308:("D_801B7308","UNK_TYPE1","",0x1), - 0x801B732C:("D_801B732C","UNK_TYPE1","",0x1), - 0x801B7354:("D_801B7354","UNK_TYPE1","",0x1), - 0x801B7384:("D_801B7384","UNK_TYPE1","",0x1), - 0x801B73AC:("D_801B73AC","UNK_TYPE1","",0x1), - 0x801B73D4:("D_801B73D4","UNK_TYPE1","",0x1), - 0x801B74C4:("D_801B74C4","UNK_TYPE1","",0x1), - 0x801B759C:("D_801B759C","UNK_TYPE1","",0x1), - 0x801B75F4:("D_801B75F4","UNK_TYPE1","",0x1), - 0x801B767C:("D_801B767C","UNK_TYPE1","",0x1), - 0x801B7684:("D_801B7684","UNK_TYPE1","",0x1), - 0x801B768C:("D_801B768C","UNK_TYPE1","",0x1), - 0x801B7694:("D_801B7694","UNK_TYPE1","",0x1), - 0x801B769C:("D_801B769C","UNK_TYPE1","",0x1), - 0x801B76A4:("D_801B76A4","UNK_TYPE1","",0x1), - 0x801B76AC:("D_801B76AC","UNK_TYPE1","",0x1), - 0x801B777C:("D_801B777C","UNK_TYPE1","",0x1), - 0x801B784C:("D_801B784C","UNK_TYPE1","",0x1), - 0x801B791C:("D_801B791C","UNK_TYPE1","",0x1), - 0x801B7984:("D_801B7984","UNK_TYPE1","",0x1), - 0x801B79EC:("D_801B79EC","UNK_TYPE1","",0x1), - 0x801B79F4:("D_801B79F4","UNK_TYPE1","",0x1), - 0x801B7AE4:("D_801B7AE4","UNK_TYPE1","",0x1), - 0x801B7B14:("D_801B7B14","UNK_TYPE1","",0x1), - 0x801B7B44:("D_801B7B44","UNK_TYPE1","",0x1), - 0x801B7B74:("D_801B7B74","UNK_TYPE1","",0x1), - 0x801B7BA4:("D_801B7BA4","UNK_TYPE1","",0x1), - 0x801B7BAC:("D_801B7BAC","UNK_TYPE1","",0x1), - 0x801B7BDC:("D_801B7BDC","UNK_TYPE1","",0x1), - 0x801B7C0C:("D_801B7C0C","UNK_TYPE1","",0x1), - 0x801B7C3C:("D_801B7C3C","UNK_TYPE1","",0x1), - 0x801B7C44:("D_801B7C44","UNK_TYPE1","",0x1), - 0x801B7C54:("D_801B7C54","UNK_TYPE1","",0x1), - 0x801B7C5C:("D_801B7C5C","UNK_TYPE1","",0x1), - 0x801B7C64:("D_801B7C64","UNK_TYPE1","",0x1), - 0x801B7D34:("D_801B7D34","UNK_TYPE1","",0x1), - 0x801B7D3C:("D_801B7D3C","UNK_TYPE1","",0x1), - 0x801B7D44:("D_801B7D44","UNK_TYPE1","",0x1), - 0x801B7D4C:("D_801B7D4C","UNK_TYPE1","",0x1), - 0x801B7D54:("D_801B7D54","UNK_TYPE1","",0x1), - 0x801B7D5C:("D_801B7D5C","UNK_TYPE1","",0x1), - 0x801B7D64:("D_801B7D64","UNK_TYPE1","",0x1), - 0x801B7DCC:("D_801B7DCC","UNK_TYPE1","",0x1), - 0x801B7DD4:("D_801B7DD4","UNK_TYPE1","",0x1), - 0x801B7E3C:("D_801B7E3C","UNK_TYPE1","",0x1), - 0x801B7F0C:("D_801B7F0C","UNK_TYPE1","",0x1), - 0x801B7F14:("D_801B7F14","UNK_TYPE1","",0x1), - 0x801B7F1C:("D_801B7F1C","UNK_TYPE1","",0x1), - 0x801B7F24:("D_801B7F24","UNK_TYPE1","",0x1), - 0x801B7F2C:("D_801B7F2C","UNK_TYPE1","",0x1), - 0x801B7F34:("D_801B7F34","UNK_TYPE1","",0x1), - 0x801B7F3C:("D_801B7F3C","UNK_TYPE1","",0x1), - 0x801B7FAC:("D_801B7FAC","UNK_TYPE1","",0x1), - 0x801B807C:("D_801B807C","UNK_TYPE1","",0x1), - 0x801B8084:("D_801B8084","UNK_TYPE1","",0x1), - 0x801B8154:("D_801B8154","UNK_TYPE1","",0x1), - 0x801B8224:("D_801B8224","UNK_TYPE1","",0x1), - 0x801B82F4:("D_801B82F4","UNK_TYPE1","",0x1), - 0x801B82FC:("D_801B82FC","UNK_TYPE1","",0x1), - 0x801B8304:("D_801B8304","UNK_TYPE1","",0x1), - 0x801B83D4:("D_801B83D4","UNK_TYPE1","",0x1), - 0x801B83DC:("D_801B83DC","UNK_TYPE1","",0x1), - 0x801B8434:("D_801B8434","UNK_TYPE1","",0x1), - 0x801B843C:("D_801B843C","UNK_TYPE1","",0x1), - 0x801B8444:("D_801B8444","UNK_TYPE1","",0x1), - 0x801B8514:("D_801B8514","UNK_TYPE1","",0x1), - 0x801B85E4:("D_801B85E4","UNK_TYPE1","",0x1), - 0x801B8664:("D_801B8664","UNK_TYPE1","",0x1), - 0x801B8754:("D_801B8754","UNK_TYPE1","",0x1), - 0x801B875C:("D_801B875C","UNK_TYPE1","",0x1), - 0x801B87C4:("D_801B87C4","UNK_TYPE1","",0x1), - 0x801B8894:("D_801B8894","UNK_TYPE1","",0x1), - 0x801B8964:("D_801B8964","UNK_TYPE1","",0x1), - 0x801B8A34:("D_801B8A34","UNK_TYPE1","",0x1), - 0x801B8B04:("D_801B8B04","UNK_TYPE1","",0x1), - 0x801B8BD4:("D_801B8BD4","UNK_TYPE1","",0x1), - 0x801B8CAC:("D_801B8CAC","UNK_TYPE1","",0x1), - 0x801B8CB4:("D_801B8CB4","UNK_TYPE1","",0x1), - 0x801B8D8C:("D_801B8D8C","UNK_TYPE1","",0x1), - 0x801B8E5C:("D_801B8E5C","UNK_TYPE1","",0x1), - 0x801B8F2C:("D_801B8F2C","UNK_TYPE1","",0x1), - 0x801B8F34:("D_801B8F34","UNK_TYPE1","",0x1), - 0x801B900C:("D_801B900C","UNK_TYPE1","",0x1), - 0x801B90D4:("D_801B90D4","UNK_TYPE1","",0x1), - 0x801B91A4:("D_801B91A4","UNK_TYPE1","",0x1), - 0x801B91AC:("D_801B91AC","UNK_TYPE1","",0x1), - 0x801B927C:("D_801B927C","UNK_TYPE1","",0x1), - 0x801B9354:("D_801B9354","UNK_TYPE1","",0x1), - 0x801B9424:("D_801B9424","UNK_TYPE1","",0x1), - 0x801B94F4:("D_801B94F4","UNK_TYPE1","",0x1), - 0x801B95C4:("D_801B95C4","UNK_TYPE1","",0x1), - 0x801B95CC:("D_801B95CC","UNK_TYPE1","",0x1), - 0x801B969C:("D_801B969C","UNK_TYPE1","",0x1), - 0x801B976C:("D_801B976C","UNK_TYPE1","",0x1), - 0x801B979C:("D_801B979C","UNK_TYPE1","",0x1), - 0x801B986C:("cameraStates","CameraStateParams","[91]",0x444), - 0x801B9CB0:("D_801B9CB0","UNK_TYPE1","",0x1), - 0x801B9CE2:("D_801B9CE2","UNK_TYPE1","",0x1), - 0x801B9CE4:("D_801B9CE4","UNK_PTR","",0x4), - 0x801B9CE8:("cameraUpdateFuncs","camera_update_func","[71]",0x11c), - 0x801B9E04:("D_801B9E04","UNK_TYPE2","",0x2), - 0x801B9E08:("D_801B9E08","UNK_TYPE4","",0x4), - 0x801B9E0C:("D_801B9E0C","UNK_TYPE4","",0x4), - 0x801B9E10:("D_801B9E10","UNK_TYPE4","",0x4), - 0x801B9E14:("D_801B9E14","UNK_TYPE4","",0x4), + 0x801B7244:("sSetNormal4ModeTalkData","UNK_TYPE1","",0x1), + 0x801B7278:("sSetElegyShellModeNormalData","UNK_TYPE1","",0x1), + 0x801B729C:("sSetElegyShellModeJumpData","UNK_TYPE1","",0x1), + 0x801B72C0:("sSetElegyShellModeDekuShootData","UNK_TYPE1","",0x1), + 0x801B72E4:("sSetElegyShellModeGoronDashData","UNK_TYPE1","",0x1), + 0x801B7308:("sSetElegyShellModeDekuFlyData","UNK_TYPE1","",0x1), + 0x801B732C:("sSetDungeon4ModeNormalData","UNK_TYPE1","",0x1), + 0x801B7354:("sSetDungeon4ModeTargetData","UNK_TYPE1","",0x1), + 0x801B7384:("sSetDungeon4ModeJumpData","UNK_TYPE1","",0x1), + 0x801B73AC:("sSetDungeon4ModeStillData","UNK_TYPE1","",0x1), + 0x801B73D4:("sCamSetNormal0Modes","UNK_TYPE1","",0x1), + 0x801B74C4:("sCamSetNormal3Modes","UNK_TYPE1","",0x1), + 0x801B759C:("sCamSetPivotDivingModes","UNK_TYPE1","",0x1), + 0x801B75F4:("sCamSetHorseModes","UNK_TYPE1","",0x1), + 0x801B767C:("sCamSetZoraDivingModes","UNK_TYPE1","",0x1), + 0x801B7684:("sCamSetPreRendFixedModes","UNK_TYPE1","",0x1), + 0x801B768C:("sCamSetPreRendPivotModes","UNK_TYPE1","",0x1), + 0x801B7694:("sCamSetDoorCModes","UNK_TYPE1","",0x1), + 0x801B769C:("sCamSetDemo0Modes","UNK_TYPE1","",0x1), + 0x801B76A4:("sCamSetFree0Modes","UNK_TYPE1","",0x1), + 0x801B76AC:("sCamSetFukan0Modes","UNK_TYPE1","",0x1), + 0x801B777C:("sCamSetNormal1Modes","UNK_TYPE1","",0x1), + 0x801B784C:("sCamSetNanameModes","UNK_TYPE1","",0x1), + 0x801B791C:("sCamSetCirc0Modes","UNK_TYPE1","",0x1), + 0x801B7984:("sCamSetFixed0Modes","UNK_TYPE1","",0x1), + 0x801B79EC:("sCamSetSpiralDoorModes","UNK_TYPE1","",0x1), + 0x801B79F4:("sCamSetDungeon0Modes","UNK_TYPE1","",0x1), + 0x801B7AE4:("sCamSetItem0Modes","UNK_TYPE1","",0x1), + 0x801B7B14:("sCamSetItem1Modes","UNK_TYPE1","",0x1), + 0x801B7B44:("sCamSetItem2Modes","UNK_TYPE1","",0x1), + 0x801B7B74:("sCamSetItem3Modes","UNK_TYPE1","",0x1), + 0x801B7BA4:("sCamSetNaviModes","UNK_TYPE1","",0x1), + 0x801B7BAC:("sCamSetWarp0Modes","UNK_TYPE1","",0x1), + 0x801B7BDC:("sCamSetDeathModes","UNK_TYPE1","",0x1), + 0x801B7C0C:("sCamSetRebirthModes","UNK_TYPE1","",0x1), + 0x801B7C3C:("sCamSetLongChestOpeningModes","UNK_TYPE1","",0x1), + 0x801B7C44:("sCamSetMaskTransformationModes","UNK_TYPE1","",0x1), + 0x801B7C54:("sCamSetAttentionModes","UNK_TYPE1","",0x1), + 0x801B7C5C:("sCamSetWarp1Modes","UNK_TYPE1","",0x1), + 0x801B7C64:("sCamSetDungeon1Modes","UNK_TYPE1","",0x1), + 0x801B7D34:("sCamSetFixed1Modes","UNK_TYPE1","",0x1), + 0x801B7D3C:("sCamSetFixed2Modes","UNK_TYPE1","",0x1), + 0x801B7D44:("sCamSetMazeModes","UNK_TYPE1","",0x1), + 0x801B7D4C:("sCamSetRemoteBombModes","UNK_TYPE1","",0x1), + 0x801B7D54:("sCamSetCirc1Modes","UNK_TYPE1","",0x1), + 0x801B7D5C:("sCamSetCirc2Modes","UNK_TYPE1","",0x1), + 0x801B7D64:("sCamSetCirc3Modes","UNK_TYPE1","",0x1), + 0x801B7DCC:("sCamSetCirc4Modes","UNK_TYPE1","",0x1), + 0x801B7DD4:("sCamSetFixed3Modes","UNK_TYPE1","",0x1), + 0x801B7E3C:("sCamSetTowerClimbModes","UNK_TYPE1","",0x1), + 0x801B7F0C:("sCamSetParallel0Modes","UNK_TYPE1","",0x1), + 0x801B7F14:("sCamSetNormDModes","UNK_TYPE1","",0x1), + 0x801B7F1C:("sCamSetSubjectDModes","UNK_TYPE1","",0x1), + 0x801B7F24:("sCamSetStart0Modes","UNK_TYPE1","",0x1), + 0x801B7F2C:("sCamSetStart2Modes","UNK_TYPE1","",0x1), + 0x801B7F34:("sCamSetStop0Modes","UNK_TYPE1","",0x1), + 0x801B7F3C:("sCamSetBoatCruiseModes","UNK_TYPE1","",0x1), + 0x801B7FAC:("sCamSetVerticalClimbModes","UNK_TYPE1","",0x1), + 0x801B807C:("sCamSetSidedModes","UNK_TYPE1","",0x1), + 0x801B8084:("sCamSetDungeon2Modes","UNK_TYPE1","",0x1), + 0x801B8154:("sCamSetBossOdolwaModes","UNK_TYPE1","",0x1), + 0x801B8224:("sCamSetKeepBackModes","UNK_TYPE1","",0x1), + 0x801B82F4:("sCamSetCirc6Modes","UNK_TYPE1","",0x1), + 0x801B82FC:("sCamSetCirc7Modes","UNK_TYPE1","",0x1), + 0x801B8304:("sCamSetMiniBossModes","UNK_TYPE1","",0x1), + 0x801B83D4:("sCamSetRFixed1Modes","UNK_TYPE1","",0x1), + 0x801B83DC:("sCamSetTreasureChestMinigameModes","UNK_TYPE1","",0x1), + 0x801B8434:("sCamSetBombBasketModes","UNK_TYPE1","",0x1), + 0x801B843C:("sCamSetCirc8Modes","UNK_TYPE1","",0x1), + 0x801B8444:("sCamSetFukan1Modes","UNK_TYPE1","",0x1), + 0x801B8514:("sCamSetDungeon3Modes","UNK_TYPE1","",0x1), + 0x801B85E4:("sCamSetTelescopeModes","UNK_TYPE1","",0x1), + 0x801B8664:("sCamSetRoom0Modes","UNK_TYPE1","",0x1), + 0x801B8754:("sCamSetRCirc0Modes","UNK_TYPE1","",0x1), + 0x801B875C:("sCamSetCirc9Modes","UNK_TYPE1","",0x1), + 0x801B87C4:("sCamSetOnThePoleModes","UNK_TYPE1","",0x1), + 0x801B8894:("sCamSetInBushModes","UNK_TYPE1","",0x1), + 0x801B8964:("sCamSetBossMajoraModes","UNK_TYPE1","",0x1), + 0x801B8A34:("sCamSetBossTwinmoldModes","UNK_TYPE1","",0x1), + 0x801B8B04:("sCamSetBossGohtModes","UNK_TYPE1","",0x1), + 0x801B8BD4:("sCamSetBossGyorgModes","UNK_TYPE1","",0x1), + 0x801B8CAC:("sCamSetConnect0Modes","UNK_TYPE1","",0x1), + 0x801B8CB4:("sCamSetPinnacleRockModes","UNK_TYPE1","",0x1), + 0x801B8D8C:("sCamSetNormal2Modes","UNK_TYPE1","",0x1), + 0x801B8E5C:("sCamSetBombBowlModes","UNK_TYPE1","",0x1), + 0x801B8F2C:("sCamSetCircAModes","UNK_TYPE1","",0x1), + 0x801B8F34:("sCamSetWhirlpoolModes","UNK_TYPE1","",0x1), + 0x801B900C:("sCamSetCuccoShackModes","UNK_TYPE1","",0x1), + 0x801B90D4:("sCamSetGiantModes","UNK_TYPE1","",0x1), + 0x801B91A4:("sCamSetScene0Modes","UNK_TYPE1","",0x1), + 0x801B91AC:("sCamSetRoom1Modes","UNK_TYPE1","",0x1), + 0x801B927C:("sCamSetWater2Modes","UNK_TYPE1","",0x1), + 0x801B9354:("sCamSetWoodfallSwampModes","UNK_TYPE1","",0x1), + 0x801B9424:("sCamSetForceKeepModes","UNK_TYPE1","",0x1), + 0x801B94F4:("sCamSetParallel1Modes","UNK_TYPE1","",0x1), + 0x801B95C4:("sCamSetStart1Modes","UNK_TYPE1","",0x1), + 0x801B95CC:("sCamSetRoom2Modes","UNK_TYPE1","",0x1), + 0x801B969C:("sCamSetNorm4Modes","UNK_TYPE1","",0x1), + 0x801B976C:("sCamSetElegyShellModes","UNK_TYPE1","",0x1), + 0x801B979C:("sCamSetDungeon4Modes","UNK_TYPE1","",0x1), + 0x801B986C:("sCameraSettings","CameraSetting","[91]",0x444), + 0x801B9CB0:("sGlobalCamDataSettings","s16","[26]",0x34), + 0x801B9CE4:("sGlobalCamDataSettingsPtr","s16*","",0x4), + 0x801B9CE8:("sCameraUpdateHandlers","camera_update_func","[71]",0x11c), + 0x801B9E04:("sCameraNextUID","UNK_TYPE2","",0x2), + 0x801B9E08:("sCameraInterfaceFlags","UNK_TYPE4","",0x4), + 0x801B9E0C:("sCameraHudVisibility","UNK_TYPE4","",0x4), + 0x801B9E10:("sCameraLetterboxSize","UNK_TYPE4","",0x4), + 0x801B9E14:("sCameraNegOne","UNK_TYPE4","",0x4), 0x801B9E18:("D_801B9E18","UNK_TYPE2","",0x2), 0x801B9E34:("D_801B9E34","UNK_TYPE2","",0x2), - 0x801B9E50:("D_801B9E50","UNK_TYPE4","",0x4), - 0x801B9E54:("D_801B9E54","UNK_TYPE4","",0x4), - 0x801B9E58:("D_801B9E58","UNK_TYPE4","",0x4), + 0x801B9E50:("sUpdateCameraDirection","UNK_TYPE4","",0x4), + 0x801B9E54:("sIsFalse","UNK_TYPE4","",0x4), + 0x801B9E58:("sCameraInitSceneTimer","UNK_TYPE4","",0x4), 0x801B9E5C:("D_801B9E5C","UNK_TYPE4","",0x4), 0x801B9E60:("D_801B9E60","f32","",0x4), 0x801B9E64:("D_801B9E64","UNK_TYPE1","",0x1), 0x801B9E84:("D_801B9E84","UNK_TYPE1","",0x1), 0x801B9EB4:("D_801B9EB4","UNK_TYPE4","",0x4), 0x801B9ED4:("D_801B9ED4","UNK_TYPE4","",0x4), - 0x801B9F04:("D_801B9F04","UNK_TYPE4","",0x4), - 0x801B9F0C:("D_801B9F0C","UNK_TYPE2","",0x2), - 0x801B9F10:("D_801B9F10","UNK_TYPE4","",0x4), + 0x801B9F04:("sEarthquakeFreq","UNK_TYPE4","",0x4), + 0x801B9F0C:("sEarthquakeTimer","UNK_TYPE2","",0x2), + 0x801B9F10:("sModeChangeFlags","UNK_TYPE4","",0x4), 0x801B9F20:("sDamageTablePresets","DamageTable","[23]",0x2e0), 0x801BA200:("damageMultipliers","f32","[16]",0x40), 0x801BA240:("defaultCollider","Collider","",0x18), @@ -3861,26 +3873,14 @@ 0x801EDBA8:("D_801EDBA8","Sphere16","",0x8), 0x801EDBB0:("D_801EDBB0","TriNorm","",0x34), 0x801EDBF0:("D_801EDBF0","s16","",0x2), - 0x801EDBF4:("D_801EDBF4","UNK_TYPE1","",0x1), - 0x801EDBF8:("D_801EDBF8","UNK_TYPE1","",0x1), - 0x801EDC00:("D_801EDC00","UNK_TYPE1","",0x1), - 0x801EDC04:("D_801EDC04","UNK_TYPE1","",0x1), - 0x801EDC08:("D_801EDC08","UNK_TYPE1","",0x1), - 0x801EDC0C:("D_801EDC0C","UNK_TYPE1","",0x1), - 0x801EDC10:("D_801EDC10","UNK_TYPE1","",0x1), - 0x801EDC14:("D_801EDC14","UNK_TYPE1","",0x1), - 0x801EDC28:("D_801EDC28","UNK_TYPE1","",0x1), - 0x801EDC30:("D_801EDC30","UNK_TYPE1","",0x1), - 0x801EDC8C:("D_801EDC8C","UNK_TYPE1","",0x1), - 0x801EDC90:("D_801EDC90","UNK_TYPE1","",0x1), - 0x801EDC92:("D_801EDC92","UNK_TYPE1","",0x1), - 0x801EDC94:("D_801EDC94","UNK_TYPE1","",0x1), - 0x801EDC96:("D_801EDC96","UNK_TYPE1","",0x1), - 0x801EDDD0:("D_801EDDD0","UNK_TYPE1","",0x1), - 0x801EDDD4:("D_801EDDD4","UNK_TYPE1","",0x1), - 0x801EDDD8:("D_801EDDD8","UNK_TYPE1","",0x1), - 0x801EDDE0:("D_801EDDE0","UNK_TYPE1","",0x1), - 0x801EDDF0:("D_801EDDF0","UNK_TYPE1","",0x1), + 0x801EDBF4:("D_801EDBF4","f32","",0x4), + 0x801EDBF8:("D_801EDBF8","f32","",0x4), + 0x801EDC00:("D_801EDC00","CameraCollision","",0x28), + 0x801EDC28:("sCamPlayState","PlayState*","",0x4), + 0x801EDC30:("D_801EDC30","SwingAnimation","[4]",0x1A0), + 0x801EDDD0:("D_801EDDD0","Vec3f","",0xc), + 0x801EDDE0:("D_801EDDE0","Vec3f","",0xc), + 0x801EDDF0:("D_801EDDF0","Vec3f","",0xc), 0x801EDE00:("D_801EDE00","Vec3f","",0xc), 0x801EDE10:("D_801EDE10","Vec3f","",0xc), 0x801EDE20:("D_801EDE20","Vec3f","",0xc), diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index d18b02616d..f1d994d115 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -696,77 +696,77 @@ asm/non_matchings/code/z_camera/func_800CE930.s,func_800CE930,0x800CE930,0x6A asm/non_matchings/code/z_camera/func_800CEAD8.s,func_800CEAD8,0x800CEAD8,0x58 asm/non_matchings/code/z_camera/func_800CEC38.s,func_800CEC38,0x800CEC38,0x56 asm/non_matchings/code/z_camera/func_800CED90.s,func_800CED90,0x800CED90,0x185 -asm/non_matchings/code/z_camera/Camera_ModeNop.s,Camera_ModeNop,0x800CF3A4,0x4 -asm/non_matchings/code/z_camera/Camera_ModeNORM1.s,Camera_ModeNORM1,0x800CF3B4,0x530 -asm/non_matchings/code/z_camera/Camera_ModeNORM2.s,Camera_ModeNORM2,0x800D0874,0x8 -asm/non_matchings/code/z_camera/Camera_ModeNORM3.s,Camera_ModeNORM3,0x800D0894,0x265 -asm/non_matchings/code/z_camera/Camera_ModeNORM4.s,Camera_ModeNORM4,0x800D1228,0x24 -asm/non_matchings/code/z_camera/Camera_ModeNORM0.s,Camera_ModeNORM0,0x800D12B8,0x1F0 -asm/non_matchings/code/z_camera/Camera_ModePARA1.s,Camera_ModePARA1,0x800D1A78,0x40C -asm/non_matchings/code/z_camera/Camera_ModePARA2.s,Camera_ModePARA2,0x800D2AA8,0x8 -asm/non_matchings/code/z_camera/Camera_ModePARA3.s,Camera_ModePARA3,0x800D2AC8,0x8 -asm/non_matchings/code/z_camera/Camera_ModePARA4.s,Camera_ModePARA4,0x800D2AE8,0x8 -asm/non_matchings/code/z_camera/Camera_ModePARA0.s,Camera_ModePARA0,0x800D2B08,0x8 -asm/non_matchings/code/z_camera/Camera_ModeJUMP1.s,Camera_ModeJUMP1,0x800D2B28,0x8 -asm/non_matchings/code/z_camera/Camera_ModeJUMP2.s,Camera_ModeJUMP2,0x800D2B48,0x276 -asm/non_matchings/code/z_camera/Camera_ModeJUMP3.s,Camera_ModeJUMP3,0x800D3520,0x330 -asm/non_matchings/code/z_camera/Camera_ModeJUMP4.s,Camera_ModeJUMP4,0x800D41E0,0x8 -asm/non_matchings/code/z_camera/Camera_ModeJUMP0.s,Camera_ModeJUMP0,0x800D4200,0x8 -asm/non_matchings/code/z_camera/Camera_ModeBATT1.s,Camera_ModeBATT1,0x800D4220,0x4E2 -asm/non_matchings/code/z_camera/Camera_ModeBATT2.s,Camera_ModeBATT2,0x800D55A8,0x8 -asm/non_matchings/code/z_camera/Camera_ModeBATT3.s,Camera_ModeBATT3,0x800D55C8,0x8 -asm/non_matchings/code/z_camera/Camera_ModeBATT4.s,Camera_ModeBATT4,0x800D55E8,0x8 -asm/non_matchings/code/z_camera/Camera_ModeBATT0.s,Camera_ModeBATT0,0x800D5608,0x8 -asm/non_matchings/code/z_camera/Camera_ModeKEEP1.s,Camera_ModeKEEP1,0x800D5628,0x46D -asm/non_matchings/code/z_camera/Camera_ModeKEEP2.s,Camera_ModeKEEP2,0x800D67DC,0x8 -asm/non_matchings/code/z_camera/Camera_ModeKEEP3.s,Camera_ModeKEEP3,0x800D67FC,0x2F3 -asm/non_matchings/code/z_camera/Camera_ModeKEEP4.s,Camera_ModeKEEP4,0x800D73C8,0x2F7 -asm/non_matchings/code/z_camera/Camera_ModeKEEP0.s,Camera_ModeKEEP0,0x800D7FA4,0x8 -asm/non_matchings/code/z_camera/Camera_ModeFIXD1.s,Camera_ModeFIXD1,0x800D7FC4,0x101 -asm/non_matchings/code/z_camera/Camera_ModeFIXD2.s,Camera_ModeFIXD2,0x800D83C8,0x290 -asm/non_matchings/code/z_camera/Camera_ModeFIXD3.s,Camera_ModeFIXD3,0x800D8E08,0x8 -asm/non_matchings/code/z_camera/Camera_ModeFIXD4.s,Camera_ModeFIXD4,0x800D8E28,0x8 -asm/non_matchings/code/z_camera/Camera_ModeFIXD0.s,Camera_ModeFIXD0,0x800D8E48,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSUBJ1.s,Camera_ModeSUBJ1,0x800D8E68,0x185 -asm/non_matchings/code/z_camera/Camera_ModeSUBJ2.s,Camera_ModeSUBJ2,0x800D947C,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSUBJ3.s,Camera_ModeSUBJ3,0x800D949C,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSUBJ4.s,Camera_ModeSUBJ4,0x800D94BC,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSUBJ0.s,Camera_ModeSUBJ0,0x800D94DC,0x8 -asm/non_matchings/code/z_camera/Camera_ModeDATA0.s,Camera_ModeDATA0,0x800D94FC,0x8 -asm/non_matchings/code/z_camera/Camera_ModeDATA1.s,Camera_ModeDATA1,0x800D951C,0x8 -asm/non_matchings/code/z_camera/Camera_ModeDATA2.s,Camera_ModeDATA2,0x800D953C,0x8 -asm/non_matchings/code/z_camera/Camera_ModeDATA3.s,Camera_ModeDATA3,0x800D955C,0x8 -asm/non_matchings/code/z_camera/Camera_ModeDATA4.s,Camera_ModeDATA4,0x800D957C,0x8 -asm/non_matchings/code/z_camera/Camera_ModeUNIQ1.s,Camera_ModeUNIQ1,0x800D959C,0x8 -asm/non_matchings/code/z_camera/Camera_ModeUNIQ2.s,Camera_ModeUNIQ2,0x800D95BC,0x105 -asm/non_matchings/code/z_camera/Camera_ModeUNIQ3.s,Camera_ModeUNIQ3,0x800D99D0,0x17 -asm/non_matchings/code/z_camera/Camera_ModeUNIQ4.s,Camera_ModeUNIQ4,0x800D9A2C,0x17 -asm/non_matchings/code/z_camera/Camera_ModeUNIQ5.s,Camera_ModeUNIQ5,0x800D9A88,0x17 -asm/non_matchings/code/z_camera/Camera_ModeUNIQ0.s,Camera_ModeUNIQ0,0x800D9AE4,0x235 -asm/non_matchings/code/z_camera/Camera_ModeUNIQ6.s,Camera_ModeUNIQ6,0x800DA3B8,0x4D -asm/non_matchings/code/z_camera/Camera_ModeUNIQ7.s,Camera_ModeUNIQ7,0x800DA4EC,0x8 -asm/non_matchings/code/z_camera/Camera_ModeUNIQ8.s,Camera_ModeUNIQ8,0x800DA50C,0x8 -asm/non_matchings/code/z_camera/Camera_ModeUNIQ9.s,Camera_ModeUNIQ9,0x800DA52C,0x8 -asm/non_matchings/code/z_camera/Camera_ModeDEMO1.s,Camera_ModeDEMO1,0x800DA54C,0x1F1 -asm/non_matchings/code/z_camera/Camera_ModeDEMO2.s,Camera_ModeDEMO2,0x800DAD10,0x2BD -asm/non_matchings/code/z_camera/Camera_ModeDEMO3.s,Camera_ModeDEMO3,0x800DB804,0xC4 -asm/non_matchings/code/z_camera/Camera_ModeDEMO4.s,Camera_ModeDEMO4,0x800DBB14,0x1D7 -asm/non_matchings/code/z_camera/Camera_ModeDEMO5.s,Camera_ModeDEMO5,0x800DC270,0x12A -asm/non_matchings/code/z_camera/Camera_ModeDEMO6.s,Camera_ModeDEMO6,0x800DC718,0x8 -asm/non_matchings/code/z_camera/Camera_ModeDEMO7.s,Camera_ModeDEMO7,0x800DC738,0x8 -asm/non_matchings/code/z_camera/Camera_ModeDEMO8.s,Camera_ModeDEMO8,0x800DC758,0x8 -asm/non_matchings/code/z_camera/Camera_ModeDEMO9.s,Camera_ModeDEMO9,0x800DC778,0x8 -asm/non_matchings/code/z_camera/Camera_ModeDEMO0.s,Camera_ModeDEMO0,0x800DC798,0x13E -asm/non_matchings/code/z_camera/Camera_ModeSPEC0.s,Camera_ModeSPEC0,0x800DCC90,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSPEC1.s,Camera_ModeSPEC1,0x800DCCB0,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSPEC2.s,Camera_ModeSPEC2,0x800DCCD0,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSPEC3.s,Camera_ModeSPEC3,0x800DCCF0,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSPEC4.s,Camera_ModeSPEC4,0x800DCD10,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSPEC5.s,Camera_ModeSPEC5,0x800DCD30,0xF3 -asm/non_matchings/code/z_camera/Camera_ModeSPEC6.s,Camera_ModeSPEC6,0x800DD0FC,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSPEC7.s,Camera_ModeSPEC7,0x800DD11C,0x8 -asm/non_matchings/code/z_camera/Camera_ModeSPEC8.s,Camera_ModeSPEC8,0x800DD13C,0x11F -asm/non_matchings/code/z_camera/Camera_ModeSPEC9.s,Camera_ModeSPEC9,0x800DD5B8,0x1E8 +asm/non_matchings/code/z_camera/Camera_Noop.s,Camera_Noop,0x800CF3A4,0x4 +asm/non_matchings/code/z_camera/Camera_Normal1.s,Camera_Normal1,0x800CF3B4,0x530 +asm/non_matchings/code/z_camera/Camera_Normal2.s,Camera_Normal2,0x800D0874,0x8 +asm/non_matchings/code/z_camera/Camera_Normal3.s,Camera_Normal3,0x800D0894,0x265 +asm/non_matchings/code/z_camera/Camera_Normal4.s,Camera_Normal4,0x800D1228,0x24 +asm/non_matchings/code/z_camera/Camera_Normal0.s,Camera_Normal0,0x800D12B8,0x1F0 +asm/non_matchings/code/z_camera/Camera_Parallel1.s,Camera_Parallel1,0x800D1A78,0x40C +asm/non_matchings/code/z_camera/Camera_Parallel2.s,Camera_Parallel2,0x800D2AA8,0x8 +asm/non_matchings/code/z_camera/Camera_Parallel3.s,Camera_Parallel3,0x800D2AC8,0x8 +asm/non_matchings/code/z_camera/Camera_Parallel4.s,Camera_Parallel4,0x800D2AE8,0x8 +asm/non_matchings/code/z_camera/Camera_Parallel0.s,Camera_Parallel0,0x800D2B08,0x8 +asm/non_matchings/code/z_camera/Camera_Jump1.s,Camera_Jump1,0x800D2B28,0x8 +asm/non_matchings/code/z_camera/Camera_Jump2.s,Camera_Jump2,0x800D2B48,0x276 +asm/non_matchings/code/z_camera/Camera_Jump3.s,Camera_Jump3,0x800D3520,0x330 +asm/non_matchings/code/z_camera/Camera_Jump4.s,Camera_Jump4,0x800D41E0,0x8 +asm/non_matchings/code/z_camera/Camera_Jump0.s,Camera_Jump0,0x800D4200,0x8 +asm/non_matchings/code/z_camera/Camera_Battle1.s,Camera_Battle1,0x800D4220,0x4E2 +asm/non_matchings/code/z_camera/Camera_Battle2.s,Camera_Battle2,0x800D55A8,0x8 +asm/non_matchings/code/z_camera/Camera_Battle3.s,Camera_Battle3,0x800D55C8,0x8 +asm/non_matchings/code/z_camera/Camera_Battle4.s,Camera_Battle4,0x800D55E8,0x8 +asm/non_matchings/code/z_camera/Camera_Battle0.s,Camera_Battle0,0x800D5608,0x8 +asm/non_matchings/code/z_camera/Camera_KeepOn1.s,Camera_KeepOn1,0x800D5628,0x46D +asm/non_matchings/code/z_camera/Camera_KeepOn2.s,Camera_KeepOn2,0x800D67DC,0x8 +asm/non_matchings/code/z_camera/Camera_KeepOn3.s,Camera_KeepOn3,0x800D67FC,0x2F3 +asm/non_matchings/code/z_camera/Camera_KeepOn4.s,Camera_KeepOn4,0x800D73C8,0x2F7 +asm/non_matchings/code/z_camera/Camera_KeepOn0.s,Camera_KeepOn0,0x800D7FA4,0x8 +asm/non_matchings/code/z_camera/Camera_Fixed1.s,Camera_Fixed1,0x800D7FC4,0x101 +asm/non_matchings/code/z_camera/Camera_Fixed2.s,Camera_Fixed2,0x800D83C8,0x290 +asm/non_matchings/code/z_camera/Camera_Fixed3.s,Camera_Fixed3,0x800D8E08,0x8 +asm/non_matchings/code/z_camera/Camera_Fixed4.s,Camera_Fixed4,0x800D8E28,0x8 +asm/non_matchings/code/z_camera/Camera_Fixed0.s,Camera_Fixed0,0x800D8E48,0x8 +asm/non_matchings/code/z_camera/Camera_Subject1.s,Camera_Subject1,0x800D8E68,0x185 +asm/non_matchings/code/z_camera/Camera_Subject2.s,Camera_Subject2,0x800D947C,0x8 +asm/non_matchings/code/z_camera/Camera_Subject3.s,Camera_Subject3,0x800D949C,0x8 +asm/non_matchings/code/z_camera/Camera_Subject4.s,Camera_Subject4,0x800D94BC,0x8 +asm/non_matchings/code/z_camera/Camera_Subject0.s,Camera_Subject0,0x800D94DC,0x8 +asm/non_matchings/code/z_camera/Camera_Data0.s,Camera_Data0,0x800D94FC,0x8 +asm/non_matchings/code/z_camera/Camera_Data1.s,Camera_Data1,0x800D951C,0x8 +asm/non_matchings/code/z_camera/Camera_Data2.s,Camera_Data2,0x800D953C,0x8 +asm/non_matchings/code/z_camera/Camera_Data3.s,Camera_Data3,0x800D955C,0x8 +asm/non_matchings/code/z_camera/Camera_Data4.s,Camera_Data4,0x800D957C,0x8 +asm/non_matchings/code/z_camera/Camera_Unique1.s,Camera_Unique1,0x800D959C,0x8 +asm/non_matchings/code/z_camera/Camera_Unique2.s,Camera_Unique2,0x800D95BC,0x105 +asm/non_matchings/code/z_camera/Camera_Unique3.s,Camera_Unique3,0x800D99D0,0x17 +asm/non_matchings/code/z_camera/Camera_Unique4.s,Camera_Unique4,0x800D9A2C,0x17 +asm/non_matchings/code/z_camera/Camera_Unique5.s,Camera_Unique5,0x800D9A88,0x17 +asm/non_matchings/code/z_camera/Camera_Unique0.s,Camera_Unique0,0x800D9AE4,0x235 +asm/non_matchings/code/z_camera/Camera_Unique6.s,Camera_Unique6,0x800DA3B8,0x4D +asm/non_matchings/code/z_camera/Camera_Unique7.s,Camera_Unique7,0x800DA4EC,0x8 +asm/non_matchings/code/z_camera/Camera_Unique8.s,Camera_Unique8,0x800DA50C,0x8 +asm/non_matchings/code/z_camera/Camera_Unique9.s,Camera_Unique9,0x800DA52C,0x8 +asm/non_matchings/code/z_camera/Camera_Demo1.s,Camera_Demo1,0x800DA54C,0x1F1 +asm/non_matchings/code/z_camera/Camera_Demo2.s,Camera_Demo2,0x800DAD10,0x2BD +asm/non_matchings/code/z_camera/Camera_Demo3.s,Camera_Demo3,0x800DB804,0xC4 +asm/non_matchings/code/z_camera/Camera_Demo4.s,Camera_Demo4,0x800DBB14,0x1D7 +asm/non_matchings/code/z_camera/Camera_Demo5.s,Camera_Demo5,0x800DC270,0x12A +asm/non_matchings/code/z_camera/Camera_Demo6.s,Camera_Demo6,0x800DC718,0x8 +asm/non_matchings/code/z_camera/Camera_Demo7.s,Camera_Demo7,0x800DC738,0x8 +asm/non_matchings/code/z_camera/Camera_Demo8.s,Camera_Demo8,0x800DC758,0x8 +asm/non_matchings/code/z_camera/Camera_Demo9.s,Camera_Demo9,0x800DC778,0x8 +asm/non_matchings/code/z_camera/Camera_Demo0.s,Camera_Demo0,0x800DC798,0x13E +asm/non_matchings/code/z_camera/Camera_Special0.s,Camera_Special0,0x800DCC90,0x8 +asm/non_matchings/code/z_camera/Camera_Special1.s,Camera_Special1,0x800DCCB0,0x8 +asm/non_matchings/code/z_camera/Camera_Special2.s,Camera_Special2,0x800DCCD0,0x8 +asm/non_matchings/code/z_camera/Camera_Special3.s,Camera_Special3,0x800DCCF0,0x8 +asm/non_matchings/code/z_camera/Camera_Special4.s,Camera_Special4,0x800DCD10,0x8 +asm/non_matchings/code/z_camera/Camera_Special5.s,Camera_Special5,0x800DCD30,0xF3 +asm/non_matchings/code/z_camera/Camera_Special6.s,Camera_Special6,0x800DD0FC,0x8 +asm/non_matchings/code/z_camera/Camera_Special7.s,Camera_Special7,0x800DD11C,0x8 +asm/non_matchings/code/z_camera/Camera_Special8.s,Camera_Special8,0x800DD13C,0x11F +asm/non_matchings/code/z_camera/Camera_Special9.s,Camera_Special9,0x800DD5B8,0x1E8 asm/non_matchings/code/z_camera/Camera_Alloc.s,Camera_Alloc,0x800DDD58,0x14 asm/non_matchings/code/z_camera/Camera_Free.s,Camera_Free,0x800DDDA8,0xA asm/non_matchings/code/z_camera/Camera_Init.s,Camera_Init,0x800DDDD0,0x84