diff options
| author | krimtonz <33664508+krimtonz@users.noreply.github.com> | 2020-12-06 16:39:47 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-06 17:39:47 -0500 |
| commit | 321388673b4a3e763d23dec16e08e9c513869de4 (patch) | |
| tree | e43235b424e19e6f3563e73d484a7afe41365aa4 /src/code/z_camera_data.c | |
| parent | dadee87f9423fd7b06ec088bf4bde5f768598d3c (diff) | |
decompile z_camera (#398)
* cleanup
* name camera action functions
* decompile a few small functions, name a few Camera struct members
* decompile camera data, decompile a few camera functions
* Split ASM for code_800BB0A0
* removing code_800BB0A0.s
* PR Requests, Camera WIP
* remove #define NON_MATCHING from db_camera
* rename code_8007BF90.c to z_olib.c, rename functions in z_olib.c
* camera wip
* rename some struct memebers, some decomp wip
* pr updates
* camera wip
* name some fields in Camera Struct, being making sense of Camera_Update
* Camera WIP
* wip
* wip
* add z64camera.h header, begin creating CameraSetting macros
* wip
* wip
* wip
* wip
* migrate camera bss to c
* match a couple functions in db_camera
* match some small db_camera functions
* wip
* migrate db_camera rodata, match a few functions
* remote db_camera.rodata.s
* match some of db_camera
* identify types of some unknown data pieces
* some small wip
* Match Camera_Init, some function changes, some struct name changes. Change unk_C0 and unk_CC to floats from Vec3fs
* add naming for a few more Camera struct members
* wip
* match func_80043F94
* Match Camera_Jump1
* document some of Camera_Jump1
* wip
* match Camera_Jump3
* Match Camera_Update, FeelsAmazing
* wip
* wip
* match Camera_SetParam
* minor cleanup
* wip
* wip
* match Camera_KeepOn0
* some documentation, modify some matching functions to match style of others.
* match Camera_Demo1
* match camera_demo9
* document Camera_Demo1 and Camera_Demo9
* wip
* Match camera_battle4
* match camera_unique2
* Match Camera_Unique3
* match camera_special6
* match Camera_Special5
* wip
* document camera_special6
* naming updates
* match camera_Unique1
* match Camera_Unique0
* wip
* Match Camera_CalcUpFromPitchYawRoll
* match func_80045508
* document Camera_Battle4
* document several camera functions, move camera data to separate file
* rename phi/theta to pitch/yaw
* wip
* uniq9 wip
* Camera_Unqiue9 OK
* document Camera_Unique9
* name unk_160 in camera struct
* wip
* wip
* minor updates
* fix conflicts
* wip
* wip
* Olib updates
* wip
* wip
* rename most Math3D functions, few matches, documentation
* wip
* document most of math3d
* wip
* wip
* wip
* pr updates
* Match Camera_Fixed4
* match func_80058E8C
* pr updates
* add missing comment block finalizer
* Merge math3dupdates
* match Camera_ChangeSetting
* Match Camera_ChangeMode
* match func_80058148
* Match Camera_Special9
* decompile the rest of camera data
* match Camera_Demo5
* name a few camera functions in z_play
* match func_80046CB4, some work on other fucntions
* wip
* impove some non matchings
* fix function rename
* match func_800588B4
* match Camera_Subj4
* wip
* Camera_Demo3 matching, Camera_Battle1 big progress
* Camera_Normal2 OK
* wip
* match Camera_Parallel1
* normalize some things across functions
* match Camera_Normal1
* Match Camera_Normal3
* some cleanup
* more cleanup
* more cleanup , match Camera_CalcDefaultPitch
* data formatting
* Match Camera_Jump2
* document Camera_Jump2
* Match Camera_KeepOn3
* document some of Camera_KeepOn3
* improve some non_matchings
* match func_80045C74 and func_800460A8
* code cleanup, documentation
* match Camera_KeepOn1
* Match Camera_Subj3
* Match Camera_Battle1
* remove non_matching from func_80044adc and func_80046e20
* name several members of Battle1
* more documentation on Battle1
* cleanup
* renaming Camera_Vec3fScaleXYZFactor to Camera_Vec3fTranslateByUnitVector
* reorganize update structs, remove final references to params, remove CameraParams union
* implement camera enums into player
* Renaming Camera_GetDir to Camera_GetInputDir, Camera_GetRealDir to Camera_GetCamDir, etc, implement camera enum's into player
* remove non-global camera variables from variables.h
* clean up some variable declarations
* finish pr comment updates
* fix some warnings
* data formatting
* finish commenting on data
* delete unused asm
* remove asm
Co-authored-by: fig <fig02srl@gmail.com>
Diffstat (limited to 'src/code/z_camera_data.c')
| -rw-r--r-- | src/code/z_camera_data.c | 3573 |
1 files changed, 3573 insertions, 0 deletions
diff --git a/src/code/z_camera_data.c b/src/code/z_camera_data.c new file mode 100644 index 000000000..4ec44ff3d --- /dev/null +++ b/src/code/z_camera_data.c @@ -0,0 +1,3573 @@ +#include <ultra64.h> +#include <global.h> + +typedef struct { + s16 val; + s16 param; +} CameraModeValue; + +typedef struct { + s16 funcIdx; + s16 valueCnt; + CameraModeValue* values; +} CameraMode; + +typedef struct { + union { + u32 unk_00; + struct { + u32 unk_bit0 : 1; + u32 unk_bit1 : 1; + u32 validModes : 30; + }; + }; + CameraMode* cameraModes; +} CameraSetting; + +/*==================================================================*/ +// Data +s16 sOREGInit[] = { + 0, 1, 5, 5, 5, 14500, 20, 16, 150, 25, 150, 6, 10, 10, 0, 0, 1, 100, + 250, 120, 80, 30, 120, 4, 1, 50, 20, 1800, 50, 50, 50, 20, 20, -10, -5460, -9100, + -6, 8, 15, 75, 60, 12, 110, 40, 50, 250, -10, 30, 30, 70, 20, 20, 20, +}; + +s16 sOREGInitCnt = 53; + +s16 sPREGInit[] = { + -20, 200, 300, 10, 12, 10, 35, 60, 60, 3, 0, -40, 20, 25, 45, -5, 15, 15, 20, 0, 0, 0, 6, 60, 30, 0, 5, +}; + +s16 sPREGInitCnt = 27; + +char sCameraSettingNames[][12] = { + "NONE ", "NORMAL0 ", "NORMAL1 ", "DUNGEON0 ", "DUNGEON1 ", "NORMAL3 ", "HORSE0 ", + "BOSS_GOMA ", "BOSS_DODO ", "BOSS_BARI ", "BOSS_FGANON", "BOSS_BAL ", "BOSS_SHADES", "BOSS_MOFA ", + "BOSS_TWIN0 ", "BOSS_TWIN1 ", "BOSS_GANON1", "BOSS_GANON2", "TOWER0 ", "TOWER1 ", "FIXED0 ", + "FIXED1 ", "CIRCLE0 ", "CIRCLE2 ", "CIRCLE3 ", "PREREND0 ", "PREREND1 ", "PREREND3 ", + "DOOR0 ", "DOORC ", "RAIL3 ", "START0 ", "START1 ", "FREE0 ", "FREE2 ", + "CIRCLE4 ", "CIRCLE5 ", "DEMO0 ", "DEMO1 ", "MORI1 ", "ITEM0 ", "ITEM1 ", + "DEMO3 ", "DEMO4 ", "UFOBEAN ", "LIFTBEAN ", "SCENE0 ", "SCENE1 ", "HIDAN1 ", + "HIDAN2 ", "MORI2 ", "MORI3 ", "TAKO ", "SPOT05A ", "SPOT05B ", "HIDAN3 ", + "ITEM2 ", "CIRCLE6 ", "NORMAL2 ", "FISHING ", "DEMOC ", "UO_FIBER ", "DUNGEON2 ", + "TEPPEN ", "CIRCLE7 ", "NORMAL4 ", +}; + +char sCameraModeNames[][12] = { + "NORMAL ", "PARALLEL ", "KEEPON ", "TALK ", "BATTLE ", "CLIMB ", "SUBJECT ", + "BOWARROW ", "BOWARROWZ ", "FOOKSHOT ", "BOOMERANG ", "PACHINCO ", "CLIMBZ ", "JUMP ", + "HANG ", "HANGZ ", "FREEFALL ", "CHARGE ", "STILL ", "PUSHPULL ", "BOOKEEPON ", +}; + +CameraModeValue D_8011A3A0[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 10, 3 }, // pitchtarget + { 12, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 35, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011A3C8[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 250, 1 }, // distTarget + { 0, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 } // unk_1C +}; + +CameraModeValue D_8011A3F4[] = { + /* CAM_FUNC_KEEP1 */ + { -20, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 140, 2 }, // unk_08 + { 25, 13 }, // unk_0C + { 45, 14 }, // unk_10 + { -5, 15 }, // unk_14 + { 15, 16 }, // unk_18 + { 15, 17 }, // unk_1C + { 45, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2001, 9 }, // flags + { -50, 11 }, // unk_28 + { 30, 12 }, // unk_2C +}; + +CameraModeValue D_8011A428[] = { + /* CAM_FUNC_KEEP3 */ + { -30, 0 }, // yOffset + { 70, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3500, 9 }, // flags +}; + +CameraModeValue D_8011A458[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 180, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 50, 7 }, // fov + { 80, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011A488[] = { + /* CAM_FUNC_JUMP2 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // minDist + { 300, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 5, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A4AC[] = { + /* CAM_FUNC_SUBJ3 */ + { 0, 0 }, // eyeNextYOffset + { 5, 1 }, // eyeDist + { 50, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { 0, 19 }, // atOffset.x + { 0, 20 }, // atOffset.y + { 0, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A4D0[] = { + /* CAM_FUNC_SUBJ3 */ + { -7, 0 }, // eyeNextYOffset + { 14, 1 }, // eyeDist + { 50, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { 0, 19 }, // atOffset.x + { -30, 20 }, // atOffset.y + { -5, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A4F4[] = { + /* CAM_FUNC_SUBJ3 */ + { 20, 0 }, // eyeNextYOffset + { 70, 1 }, // eyeDist + { 70, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { -120, 19 }, // atOffset.x + { 20, 20 }, // atOffset.y + { 0, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A518[] = { + /* CAM_FUNC_SPEC5 */ + { -20, 0 }, // yOffset + { 80, 1 }, // eyeDist + { 250, 2 }, // minDistForRot + { 45, 3 }, // timerInit + { 60, 7 }, // pitch + { 40, 8 }, // fovTarget + { 6, 22 }, // atMaxLERPScale + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A538[] = { + /* CAM_FUNC_SUBJ3 */ + { 5, 0 }, // eyeNextYOffset + { 50, 1 }, // eyeDist + { 50, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { 0, 19 }, // atOffset.x + { 0, 20 }, // atOffset.y + { 0, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A55C[] = { + /* CAM_FUNC_SUBJ3 */ + { -7, 0 }, // eyeNextYOffset + { 14, 1 }, // eyeDist + { 50, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { -9, 19 }, // atOffset.x + { -63, 20 }, // atOffset.y + { -30, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A580[] = { + /* CAM_FUNC_JUMP2 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // minDist + { 300, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 999, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x2006, 9 }, // flags +}; + +CameraModeValue D_8011A5A4[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 12, 4 }, // yawUpdateRateTarget + { 35, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A5C4[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A5E0[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A5FC[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 15, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A61C[] = { + /* CAM_FUNC_BATT4 */ + { -20, 0 }, // yOffset + { 300, 1 }, // rTarget + { 50, 3 }, // pitchTarget + { 2, 4 }, // lerpUpdateRate + { 80, 7 }, // fovTarget + { 20, 8 }, // atLERPTarget + { 0xF000, 9 }, // flags +}; + +CameraModeValue D_8011A638[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 100, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 100, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 5, 8 }, // atLERPScaleMax + { 0xF003, 9 }, // flags +}; + +CameraModeValue D_8011A660[] = { + /* CAM_FUNC_PARA1 */ + { 0, 0 }, // unk_00 + { 250, 1 }, // distTarget + { 25, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 30, 8 }, // unk_14 + { 0x206A, 9 }, // flags + { -20, 11 }, // unk_18 + { 30, 12 }, // unk_1C +}; + +CameraModeValue D_8011A68C[] = { + /* CAM_FUNC_KEEP1 */ + { -5, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 140, 2 }, // unk_08 + { 5, 13 }, // unk_0C + { 85, 14 }, // unk_10 + { 10, 15 }, // unk_14 + { 5, 16 }, // unk_18 + { 25, 17 }, // unk_1C + { 45, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2001, 9 }, // flags + { -15, 11 }, // unk_28 + { 30, 12 }, // unk_2C +}; + +CameraModeValue sSetNorm1ModeNormVals[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 200, 1 }, // distMin + { 400, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 12, 4 }, // unk_0C + { 20, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue sSetNorm1ModeParaVals[] = { + /* CAM_FUNC_PARA1 */ + { 0, 0 }, // unk_00 + { 250, 1 }, // distTarget + { 0, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x2002, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011A714[] = { + /* CAM_FUNC_KEEP1 */ + { -20, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 140, 2 }, // unk_08 + { 25, 13 }, // unk_0C + { 45, 14 }, // unk_10 + { -5, 15 }, // unk_14 + { 15, 16 }, // unk_18 + { 15, 17 }, // unk_1C + { 45, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2001, 9 }, // flags + { -50, 11 }, // unk_28 + { 20, 12 }, // unk_2C +}; + +CameraModeValue D_8011A748[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 250, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 50, 7 }, // fov + { 65, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011A778[] = { + /* CAM_FUNC_SPEC5 */ + { -20, 0 }, // yOffset + { 80, 1 }, // eyeDist + { 250, 2 }, // minDistForRot + { 6, 22 }, // timerInit + { 45, 3 }, // pitch + { 60, 7 }, // fovTarget + { 40, 8 }, // atMaxLERPScale + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A798[] = { + /* CAM_FUNC_JUMP1 */ + { 0, 0 }, // atYOffset + { 250, 1 }, // distMin + { 400, 2 }, // distMax + { 15, 4 }, // yawUpdateRateTarget + { 50, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 30, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A7B8[] = { + /* CAM_FUNC_JUMP1 */ + { 0, 0 }, // atYOffset + { 200, 1 }, // distMin + { 400, 2 }, // distMax + { 30, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A7D8[] = { + /* CAM_FUNC_JUMP2 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // minDist + { 400, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 5, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A7FC[] = { + /* CAM_FUNC_JUMP2 */ + { -20, 0 }, // atYOffset + { 250, 1 }, // minDist + { 400, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 999, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x2006, 9 }, // flags +}; + +CameraModeValue D_8011A820[] = { + /* CAM_FUNC_BATT4 */ + { 0, 0 }, // yOffset + { 300, 1 }, // rTarget + { 50, 3 }, // pitchTarget + { 2, 4 }, // lerpUpdateRate + { 80, 7 }, // fovTarget + { 20, 8 }, // atLERPTarget + { 0xF000, 9 }, // flags +}; + +CameraModeValue D_8011A83C[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 200, 1 }, // distMin + { 400, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A858[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 400, 1 }, // distMin + { 400, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011A874[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 200, 1 }, // distMin + { 400, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 100, 4 }, // unk_0C + { 20, 5 }, // unk_10 + { 100, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 5, 8 }, // atLERPScaleMax + { 0xF003, 9 }, // flags +}; + +CameraModeValue D_8011A89C[] = { + /* CAM_FUNC_NORM1 */ + { -10, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 5, 3 }, // pitchTarget + { 10, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 30, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011A8C4[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 150, 1 }, // distTarget + { 0, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011A8F0[] = { + /* CAM_FUNC_KEEP1 */ + { -20, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 140, 2 }, // unk_08 + { 25, 13 }, // unk_0C + { 45, 14 }, // unk_10 + { -5, 15 }, // unk_14 + { 15, 16 }, // unk_18 + { 15, 17 }, // unk_1C + { 45, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2001, 9 }, // flags + { -40, 11 }, // unk_28 + { 20, 12 }, // unk_2C +}; + +CameraModeValue D_8011A924[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 180, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 80, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOnGround (PCT) +}; + +CameraModeValue D_8011A954[] = { + /* CAM_FUNC_JUMP1 */ + { -10, 0 }, // atYOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 10, 4 }, // yawUpdateRateTarget + { 50, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A974[] = { + /* CAM_FUNC_JUMP1 */ + { -10, 0 }, // atYOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 10, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A994[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 150, 1 }, // minDist + { 250, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 5, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011A9B8[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 250, 1 }, // minDist + { 250, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 999, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x2006, 9 }, // flags +}; + +CameraModeValue D_8011A9DC[] = { + /* CAM_FUNC_BATT4 */ + { -10, 0 }, // yOffset + { 300, 1 }, // rTarget + { 50, 3 }, // pitchTarget + { 2, 4 }, // lerpUpdateRate + { 80, 7 }, // fovTarget + { 20, 8 }, // atLERPTarget + { 0xF000, 9 }, // flags +}; + +CameraModeValue D_8011A9F8[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011AA14[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset */ + { 250, 1 }, // distMin */ + { 250, 2 }, // distMax */ + { 70, 3 }, // pitchTarget */ + { 45, 7 }, // fovTarget */ + { 10, 8 }, // atLERPScaleMax */ + { 0x2000, 9 }, // flags */ +}; + +CameraModeValue D_8011AA30[] = { + /* CAM_FUNC_NORM1 */ + { -10, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 5, 3 }, // pitchTarget + { 100, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 100, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 5, 8 }, // atLERPScaleMax + { 0xF003, 9 }, // flags +}; + +CameraModeValue D_8011AA58[] = { + /* CAM_FUNC_NORM1 */ + { -40, 0 }, // yOffset + { 150, 1 }, // distMin + { 150, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 10, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 30, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011AA80[] = { + /* CAM_FUNC_KEEP3 */ + { -20, 0 }, // yOffset + { 70, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3500, 9 }, // flags +}; + +CameraModeValue D_8011AAB0[] = { + /* CAM_FUNC_JUMP1 */ + { -40, 0 }, // atYOffset + { 150, 1 }, // distMin + { 150, 2 }, // distMax + { 10, 4 }, // yawUpdateRateTarget + { 50, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011AAD0[] = { + /* CAM_FUNC_JUMP1 */ + { -40, 0 }, // atYOffset + { 150, 1 }, // distMin + { 180, 2 }, // distMax + { 12, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011AAF0[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 150, 1 }, // minDist + { 150, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 5, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011AB14[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 150, 1 }, // minDist + { 150, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 999, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x2006, 9 }, // flags +}; + +CameraModeValue D_8011AB38[] = { + /* CAM_FUNC_BATT4 */ + { -40, 0 }, // yOffset + { 200, 1 }, // rTarget + { 50, 3 }, // pitchTarget + { 2, 4 }, // lerpUpdateRate + { 80, 7 }, // fovTarget + { 20, 8 }, // atLERPTarget + { 0xF000, 9 }, // flags +}; + +CameraModeValue D_8011AB54[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset */ + { 150, 1 }, // distMin */ + { 150, 2 }, // distMax */ + { 40, 3 }, // pitchTarget */ + { 60, 7 }, // fovTarget */ + { 10, 8 }, // atLERPScaleMax */ + { 0x0000, 9 }, // flags */ +}; + +CameraModeValue D_8011AB70[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 150, 1 }, // distMin + { 150, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011AB8C[] = { + /* CAM_FUNC_NORM1 */ + { -40, 0 }, // yOffset + { 150, 1 }, // distMin + { 150, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 100, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 100, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 5, 8 }, // atLERPScaleMax + { 0xF003, 9 }, // flags +}; + +CameraModeValue D_8011ABB4[] = { + /* CAM_FUNC_PARA1 */ + { -40, 0 }, // unk_00 + { 180, 1 }, // distTarget + { 25, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 60, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x206A, 9 }, // flags + { -20, 11 }, // unk_18 + { 30, 12 }, // unk_1C +}; + +CameraModeValue sSetNorm3ModeNormVals[] = { + /* CAM_FUNC_JUMP3 */ + { -20, 0 }, // yOffset + { 280, 1 }, // distMin + { 300, 2 }, // distMax + { 20, 3 }, // pitchTarget + { 15, 4 }, // swingUpdateRate + { 5, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 100, 8 }, // unk_1C + { 0x0004, 9 }, // flags +}; + +CameraModeValue D_8011AC08[] = { + /* CAM_FUNC_PARA1 */ + { -50, 0 }, // unk_00 + { 250, 1 }, // distTarget + { 70, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 15, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 60, 7 }, // fovTarget + { 100, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -50, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011AC34[] = { + /* CAM_FUNC_KEEP3 */ + { -30, 0 }, // yOffset + { 70, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 10, 15 }, // swingPitchInitial + { 20, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3500, 9 }, // flags +}; + +CameraModeValue sSetNorm3ModeBoomVals[] = { + /* CAM_FUNC_JUMP3 */ + /* mode is BOOMERANG, but these values are for when the eye + * >= OREG(45) units below the surface of the water. + */ + { -40, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { -5, 3 }, // pitchTarget + { 18, 4 }, // swingUpdateRate + { 5, 5 }, // unk_10 + { 60, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 40, 8 }, // unk_1C + { 0x0005, 9 }, // flags +}; + +CameraModeValue sSetHrse0ModeNormVals[] = { + /* CAM_FUNC_NORM3 */ + { -50, 0 }, // yOffset */ + { 220, 1 }, // distMin */ + { 250, 2 }, // distMax */ + { 10, 3 }, // pitchTarget */ + { 16, 4 }, // yawUpdateSpeed */ + { 20, 5 }, // unk_10 */ + { 60, 7 }, // fovTarget */ + { 100, 8 }, // maxAtLERPScale */ + { 0x0600, 9 }, // flags */ +}; + +CameraModeValue sSetHrse0ModeParaVals[] = { + /* CAM_FUNC_NORM3 */ + { -40, 0 }, // yOffset + { 180, 1 }, // distMin + { 220, 2 }, // distMax + { -2, 3 }, // pitchTarget + { 12, 4 }, // yawUpdateSpeed + { 100, 5 }, // unk_10 + { 45, 7 }, // fovTarget + { 100, 8 }, // maxAtLERPScale + { 0x2600, 9 }, // flags +}; + +CameraModeValue D_8011ACD4[] = { + /* CAM_FUNC_SUBJ3 */ + { -7, 0 }, // eyeNextYOffset + { 14, 1 }, // eyeDist + { 100, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { 0, 19 }, // atOffset.x + { -30, 20 }, // atOffset.y + { -5, 21 }, // atOffset.z + { 40, 7 }, // fovTarget + { 0x2600, 9 }, // flags +}; + +CameraModeValue D_8011ACF8[] = { + /* CAM_FUNC_KEEP1 */ + { -60, 0 }, // unk_00 + { 180, 1 }, // unk_04 + { 220, 2 }, // unk_08 + { 25, 13 }, // unk_0C + { 45, 14 }, // unk_10 + { -5, 15 }, // unk_14 + { 15, 16 }, // unk_18 + { 15, 17 }, // unk_1C + { 45, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2601, 9 }, // flags + { -60, 11 }, // unk_28 + { 20, 12 }, // unk_2C +}; + +CameraModeValue D_8011AD2C[] = { + /* CAM_FUNC_KEEP3 */ + { -60, 0 }, // yOffset + { 140, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3500, 9 }, // flags +}; + +CameraModeValue D_8011AD5C[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 15, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0001, 9 }, // flags +}; + +CameraModeValue D_8011AD84[] = { + /* CAM_FUNC_BATT1 */ + { -30, 0 }, // yOffset (PCT) */ + { 150, 1 }, // distance */ + { 10, 13 }, // swingYawInitial */ + { 40, 14 }, // swingYawFinal */ + { -10, 15 }, // swingPitchInitial */ + { 0, 16 }, // swingPitchFinal */ + { 25, 17 }, // swingPitchAdj (PCT) */ + { 60, 7 }, // fov */ + { 40, 8 }, // atLERPScaleOnGround (PCT) */ + { 0x2002, 9 }, // flags */ + { -50, 11 }, // yOffsetOffGround (PCT) */ + { 20, 12 }, // atLERPScaleOffGround (PCT) */ +}; + +CameraModeValue D_8011ADB4[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 150, 1 }, // distMin + { 300, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 12, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 70, 6 }, // unk_14 + { 70, 7 }, // fovTarget + { 40, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011ADDC[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 160, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 60, 14 }, // swingYawFinal + { -5, 15 }, // swingPitchInitial + { 0, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 70, 7 }, // fov + { 50, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AE0C[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 150, 1 }, // distMin + { 300, 2 }, // distMax + { -5, 3 }, // pitchTarget + { 15, 4 }, // unk_0C + { 5, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 70, 7 }, // fovTarget + { 70, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011AE34[] = { + /* CAM_FUNC_BATT1 */ + { -30, 0 }, // yOffset (PCT) + { 125, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 0, 16 }, // swingPitchFinal + { 50, 17 }, // swingPitchAdj (PCT) + { 60, 7 }, // fov + { 50, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -50, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AE64[] = { + /* CAM_FUNC_NORM1 */ + { 10, 0 }, // yOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 15, 4 }, // unk_0C + { 15, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 100, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011AE8C[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 200, 1 }, // distance + { 45, 13 }, // swingYawInitial + { 40, 14 }, // swingYawFinal + { 5, 15 }, // swingPitchInitial + { -5, 16 }, // swingPitchFinal + { 35, 17 }, // swingPitchAdj (PCT) + { 60, 7 }, // fov + { 100, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 60, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AEBC[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 16, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011AEE4[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 200, 1 }, // distance + { 20, 13 }, // swingYawInitial + { 60, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 15, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 50, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AF14[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 20, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0083, 9 }, // flags +}; + +CameraModeValue D_8011AF3C[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 200, 1 }, // distance + { 20, 13 }, // swingYawInitial + { 60, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 15, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 50, 8 }, // atLERPScaleOnGround (PCT) + { 0x2082, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AF6C[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 20, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 80, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0083, 9 }, // flags +}; + +CameraModeValue D_8011AF94[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 100, 1 }, // distMin + { 150, 2 }, // distMax + { -10, 3 }, // pitchTarget + { 15, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 80, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011AFBC[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 200, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { -10, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 70, 7 }, // fov + { 40, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011AFEC[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 150, 1 }, // distMin + { 300, 2 }, // distMax + { 0, 3 }, // pitchTarget + { 20, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011B014[] = { + /* CAM_FUNC_BATT1 */ + { 0, 0 }, // yOffset (PCT) + { 400, 1 }, // distance + { 0, 13 }, // swingYawInitial + { 60, 14 }, // swingYawFinal + { -10, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 40, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -20, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011B044[] = { + /* CAM_FUNC_NORM1 */ + { -10, 0 }, // yOffset + { 150, 1 }, // distMin + { 200, 2 }, // distMax + { -10, 3 }, // pitchTarget + { 12, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011B06C[] = { + /* CAM_FUNC_NORM1 */ + { 40, 0 }, // yOffset + { 330, 1 }, // distMin + { 330, 2 }, // distMax + { -5, 3 }, // pitchTarget + { 15, 4 }, // unk_0C + { 15, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 100, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B094[] = { + /* CAM_FUNC_BATT4 */ + { -40, 0 }, // yOffset + { 250, 1 }, // rTarget + { 0, 3 }, // pitchTarget + { 2, 4 }, // lerpUpdateRate + { 80, 7 }, // fovTarget + { 20, 8 }, // atLERPTarget + { 0xF000, 9 }, // flags +}; + +CameraModeValue D_8011B0B0[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 20, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 40, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011B0D8[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 180, 1 }, // distance + { 20, 13 }, // swingYawInitial + { 60, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 50, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; +/*start here */ +CameraModeValue D_8011B108[] = { + /* CAM_FUNC_NORM2 */ + { 0, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 280, 2 }, // unk_08 + { 60, 23 }, // unk_1C + { 8, 4 }, // unk_0C + { 40, 6 }, // unk_10 + { 60, 7 }, // unk_14 + { 50, 8 }, // unk_18 + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B12C[] = { + /* CAM_FUNC_NORM2 */ + { 0, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { 280, 2 }, // unk_08 + { 60, 23 }, // unk_1C + { 8, 4 }, // unk_0C + { 40, 6 }, // unk_10 + { 60, 7 }, // unk_14 + { 50, 8 }, // unk_18 + { 0x0080, 9 }, // flags +}; + +CameraModeValue D_8011B150[] = { + /* CAM_FUNC_NORM2 */ + { 0, 0 }, // unk_00 + { 270, 1 }, // unk_04 + { 300, 2 }, // unk_08 + { 120, 23 }, // unk_1C + { 8, 4 }, // unk_0C + { 60, 6 }, // unk_10 + { 60, 7 }, // unk_14 + { 100, 8 }, // unk_18 + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B174[] = { + /* CAM_FUNC_NORM2 */ + { 0, 0 }, // unk_00 + { 270, 1 }, // unk_04 + { 300, 2 }, // unk_08 + { 120, 23 }, // unk_1C + { 6, 4 }, // unk_0C + { 60, 6 }, // unk_10 + { 60, 7 }, // unk_14 + { 100, 8 }, // unk_18 + { 0x0000, 9 }, // flags +}; + +CameraModeValue sSetFixd0ModeNormVals[] = { + /* CAM_FUNC_FIXD1 */ + { -40, 0 }, // yOffset + { 100, 4 }, // lerpStep + { 60, 7 }, // fov + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B1A8[] = { + /* CAM_FUNC_FIXD1 */ + { -40, 0 }, // yOffset + { 100, 4 }, // lerpStep + { 60, 7 }, // fov + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011B1B8[] = { + /* CAM_FUNC_FIXD1 */ + { -40, 0 }, // yOffset + { 100, 4 }, // lerpStep + { 60, 7 }, // fov + { 0x3500, 9 }, // flags +}; + +CameraModeValue D_8011B1C8[] = { + /* CAM_FUNC_FIXD1 */ + { -40, 0 }, // yOffset + { 25, 4 }, // lerpStep + { 60, 7 }, // fov + { 0x0000, 9 }, // flags +}; + +CameraModeValue sSetCirc0ModeNormVals[] = { + /* CAM_FUNC_FIXD2 */ + { -40, 0 }, // yOffset + { 50, 4 }, // eyeStepScale + { 80, 5 }, // posStepScale + { 60, 7 }, // fov + { 0x0001, 9 }, // flags +}; + +CameraModeValue sSetCirc2ModeNormVals[] = { + /* CAM_FUNC_DATA4 */ + { -40, 0 }, // yOffset + { 60, 7 }, // fov + { 0x3F00, 9 }, // flags +}; + +CameraModeValue D_8011B1F8[] = { + /* CAM_FUNC_FIXD4 */ + { -40, 0 }, // yOffset + { 50, 4 }, // speedToEyePos + { 80, 5 }, // followSpeed + { 60, 7 }, // fov + { 0x0004, 9 }, // flags +}; + +CameraModeValue D_8011B20C[] = { + /* CAM_FUNC_UNIQ0 + CAM_FUNC_FIXD3 + CAM_FUNC_SPEC6 + CAM_FUNC_SPEC7 */ + { 0x0000, 9 }, // flags +}; + +CameraModeValue sSetPR0ModeKeepTalkVals[] = { + /* CAM_FUNC_FIXD3 */ + { 0x2000, 9 }, // flags +}; + +CameraModeValue sSetPR1ModeNormVals[] = { + /* CAM_FUNC_UNIQ7 */ + { 60, 7 }, // fov + { 0x0000, 9 }, // flags +}; + +CameraModeValue sSetPR1ModeKeepVals[] = { + /* CAM_FUNC_UNIQ7 */ + { 60, 7 }, // fov + { 0x2000, 9 }, // flags +}; + +CameraModeValue sSetPreRend1ModeTalkVals[] = { + /* CAM_FUNC_KEEP0 */ + { 30, 24 }, // fovScale + { 0, 25 }, // yawScale + { 4, 4 }, // timerInit + { 0x3500, 9 }, // flags +}; + +CameraModeValue sSetDoor0ModeNormVals[] = { + /* CAM_FUNC_UNIQ3 */ + { -40, 0 }, // yOffset + { 60, 7 }, // fov + { 0x3200, 9 }, // flags +}; + +CameraModeValue sSetDoorCModeNormVals[] = { + /* CAM_FUNC_SPEC9 */ + { -5, 0 }, // yOffset + { 60, 7 }, // unk_04 (unused) + { 0x3202, 9 }, // flags +}; + +CameraModeValue sSetDoorCModeParaVals[] = { + /* CAM_FUNC_SPEC9 */ + { -5, 0 }, // yOffset + { 60, 7 }, // unk_04 (unused) + { 0x320A, 9 }, // flags +}; + +CameraModeValue sSetRail3ModeNormVals[] = { + /* CAM_FUNC_SUBJ4 + Camera_Subj4 only reads one setting which is used for flags. */ + { 0, 0 }, // flags + { 2, 1 }, // unused + { 30, 2 }, // unused + { 10, 4 }, // unused + { 45, 7 }, // unused + { 0x3200, 9 }, // unused +}; + +CameraModeValue D_8011B270[] = { + /* CAM_FUNC_UNIQ0 */ + { 0x0001, 9 }, // flags +}; + +CameraModeValue sSetFree0ModeNormVals[] = { + /* CAM_FUNC_UNIQ6 */ + { 0xFF00, 9 }, // flags +}; + +CameraModeValue sSetFree1ModeNormVals[] = { + /* CAM_FUNC_UNIQ6 */ + { 0xFF01, 9 }, // flags +}; + +CameraModeValue sSetCirc4ModeNormVals[] = { + /* CAM_FUNC_FIXD2 */ + { -40, 0 }, // yOffset + { 100, 4 }, // eyeStepScale + { 80, 5 }, // posStepScale + { 60, 7 }, // fov + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B290[] = { + /* CAM_FUNC_UNIQ2 */ + { -40, 0 }, // yOffset + { 60, 1 }, // distTarget + { 60, 7 }, // fovTarget + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B2A0[] = { + /* CAM_FUNC_UNIQ2 */ + { -30, 0 }, // yOffset + { 45, 1 }, // distTarget + { 100, 7 }, // fovTarget + { 0x2001, 9 }, // flags +}; + +CameraModeValue D_8011B2B0[] = { + /* CAM_FUNC_DEMO1 + CAM_FUNC_DEMO4 (Not actually used in Camera_Demo4) + CAM_FUNC_DEMO6 + CAM_FUNC_SPEC4 */ + { 0x3200, 9 }, // flags +}; + +CameraModeValue sSetMori1ModeNormVals[] = { + /* CAM_FUNC_PARA1 */ + { -50, 0 }, // unk_00 + { 450, 1 }, // distTarget + { 40, 3 }, // pitchTarget3 + { 180, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 30, 8 }, // unk_14 + { 0x000C, 9 }, // flags + { -50, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011B2E0[] = { + /* CAM_FUNC_PARA3 */ + { 0x3501, 9 }, // flags +}; + +CameraModeValue D_8011B2E4[] = { + /* CAM_FUNC_DEMO3 + CAM_FUNC_DEMO4 (not actually used in Camera_Demo4) */ + { 60, 7 }, // fov + { 30, 8 }, // unk_04 + { 0x3200, 9 }, // flags +}; + +CameraModeValue sSetDemo3ModeNormVals[] = { + /* CAM_FUNC_DEMO9 */ + { 0x3212, 9 }, // flags +}; + +CameraModeValue D_8011B2F4[] = { + /* CAM_FUNC_NORM1 */ + { -50, 0 }, // yOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 50, 3 }, // pitchTarget + { 20, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 50, 6 }, // unk_14 + { 70, 7 }, // fovTarget + { 40, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B31C[] = { + /* CAM_FUNC_PARA1 */ + { -50, 0 }, // unk_00 + { 300, 1 }, // distTarget + { 10, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011B348[] = { + /* CAM_FUNC_JUMP1 */ + { -50, 0 }, // atYOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 12, 4 }, // yawUpdateRateTarget + { 35, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B368[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 60, 3 }, // fovTarget + { 70, 7 }, // pitchTarget + { 30, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B384[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 50, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011B3A0[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 300, 1 }, // distMin + { 350, 2 }, // distMax + { 50, 3 }, // pitchTarget + { 100, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 100, 6 }, // unk_14 + { 70, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0xF002, 9 }, // flags +}; + +CameraModeValue D_8011B3C8[] = { + /* CAM_FUNC_NORM1 */ + { -50, 0 }, // yOffset + { 200, 1 }, // distMin + { 200, 2 }, // distMax + { 20, 3 }, // pitchTarget + { 16, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 50, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B3F0[] = { + /* CAM_FUNC_PARA1 */ + { -50, 0 }, // unk_00 + { 200, 1 }, // distTarget + { 40, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011B41C[] = { + /* CAM_FUNC_JUMP1 */ + { -50, 0 }, // atYOffset + { 150, 1 }, // distMin + { 250, 2 }, // distMax + { 12, 4 }, // yawUpdateRateTarget + { 35, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B43C[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 200, 1 }, // distMin + { 200, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B458[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 200, 1 }, // distMin + { 200, 2 }, // distMax + { 60, 3 }, // pitchtarget + { 50, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011B474[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 200, 1 }, // distMin + { 250, 2 }, // distMax + { 20, 3 }, // unk_0C + { 100, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 100, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0xF002, 9 }, // flags +}; + +CameraModeValue sSetScn0ModeNormVals[] = { + /* CAM_FUNC_SPEC9 */ + { -30, 0 }, // yOffset + { 60, 7 }, // unk_04 (unused) + { 0x10A, 9 }, // flags +}; + +CameraModeValue D_8011B4A8[] = { + /* CAM_FUNC_UNIQ2 */ + { -20, 0 }, // yOffset + { 150, 1 }, // distTarget + { 60, 7 }, // fovTarget + { 0x0210, 9 }, // flags +}; + +CameraModeValue D_8011B4B8[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 400, 1 }, // distMin + { 500, 2 }, // distMax + { 35, 3 }, // unk_0C + { 14, 4 }, // unk_10 + { 5, 5 }, // unk_14 + { 20, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B4E0[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 250, 1 }, // distance + { 5, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 30, 15 }, // swingPitchInitial + { 20, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 60, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011B510[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 300, 1 }, // distMin + { 500, 2 }, // distMax + { 60, 3 }, // unk_0C + { 8, 4 }, // unk_10 + { 5, 5 }, // unk_14 + { 60, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 30, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B538[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 70, 6 }, // pitchTarget + { 70, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B560[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 500, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x201A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B58C[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 500, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 60, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x201A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B5B8[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 80, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 20, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B5E0[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 750, 1 }, // distMin + { 750, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 70, 6 }, // pitchTarget + { 70, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B608[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 750, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x201A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B634[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 750, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B660[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 750, 1 }, // distMin + { 750, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 80, 6 }, // pitchTarget + { 70, 7 }, // fovTarget + { 20, 8 }, // atLERPScaleMax + { 0x0012, 9 }, // flags +}; + +CameraModeValue D_8011B688[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 70, 6 }, // pitchTarget + { 70, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B6B0[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 500, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B6DC[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 500, 1 }, // distTarget + { 80, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 60, 7 }, // fovTarget + { 80, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 40, 12 }, // unk_1C +}; + +CameraModeValue D_8011B708[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 500, 1 }, // distMin + { 500, 2 }, // distMax + { 80, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 80, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 20, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B730[] = { + /* CAM_FUNC_KEEP4 */ + { -30, 0 }, // unk_00 + { 120, 1 }, // unk_04 + { -10, 3 }, // unk_08 + { 170, 10 }, // unk_0C + { 0, 21 }, // unk_10 + { 60, 7 }, // unk_18 + { 0x2502, 9 }, // flags + { 25, 4 }, // unk_14 + { 6, 22 }, // unk_1E +}; + +CameraModeValue sSetCirc6ModeNormVals[] = { + /* CAM_FUNC_SPEC0 */ + { 20, 4 }, // lerpATScale + { 0x3200, 9 }, // flags +}; + +CameraModeValue D_8011B75C[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 10, 3 }, // pitchTarget + { 12, 4 }, // unk_0C + { 10, 5 }, // unk_10 + { 35, 6 }, // unk_14 + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011B784[] = { + /* CAM_FUNC_NORM1 */ + { 0, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 20, 3 }, // unk_0C + { 12, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 35, 6 }, // pitchTarget + { 55, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0F02, 9 }, // flags +}; + +CameraModeValue D_8011B7AC[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 250, 1 }, // distTarget + { 0, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x2F0A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue D_8011B7D8[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 250, 1 }, // distance + { 0, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 0, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 55, 7 }, // fov + { 80, 8 }, // atLERPScaleOnGround (PCT) + { 0x2F02, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011B808[] = { + /* CAM_FUNC_KEEP3 */ + { -30, 0 }, // yOffset + { 70, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3F20, 9 }, // flags +}; + +CameraModeValue D_8011B838[] = { + /* CAM_FUNC_SUBJ3 */ + { 0, 0 }, // eyeNextYOffset + { 5, 1 }, // eyeDist + { 50, 2 }, // eyeNextDist + { 10, 4 }, // unk_0C + { 0, 19 }, // atOffset.x + { 0, 20 }, // atOffset.y + { 0, 21 }, // atOffset.z + { 45, 7 }, // fovTarget + { 0x0F00, 9 }, // flags +}; + +CameraModeValue D_8011B85C[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 12, 4 }, // yawUpdateRateTarget + { 35, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0F00, 9 }, // flags +}; + +CameraModeValue D_8011B87C[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 15, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0F00, 9 }, // flags +}; + +CameraModeValue D_8011B89C[] = { + /* CAM_FUNC_UNIQ1 */ + { -80, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x0F00, 9 }, // flags +}; + +CameraModeValue D_8011B8B8[] = { + /* CAM_FUNC_UNIQ1 */ + { -120, 0 }, // yOffset + { 300, 1 }, // distMin + { 300, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x2F00, 9 }, // flags +}; + +CameraModeValue sSetDemoCModeNormVals[] = { + /* CAM_FUNC_UNIQ9 */ + { 0x3F00, 9 }, /* flags */ +}; + +CameraModeValue D_8011B8D8[] = { + /* CAM_FUNC_NORM1 */ + { 30, 0 }, // yOffset + { 200, 1 }, // distMin + { 300, 2 }, // distMax + { -20, 3 }, // unk_0C + { 15, 4 }, // unk_10 + { 5, 26 }, // unk_14 + { 50, 6 }, // pitchTarget + { 70, 7 }, // fovTarget + { 70, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011B900[] = { + /* CAM_FUNC_BATT1 */ + { -30, 0 }, // yOffset (PCT) + { 160, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 0, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj (PCT) + { 60, 7 }, // fov + { 40, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -50, 11 }, // yOffsetOffGround (PCT) + { 20, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011B930[] = { + /* CAM_FUNC_NORM1 */ + { -20, 0 }, // yOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 20, 3 }, // unk_0C + { 15, 4 }, // unk_10 + { 5, 5 }, // unk_14 + { 30, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 60, 8 }, // atLERPScaleMax + { 0x0003, 9 }, // flags +}; + +CameraModeValue D_8011B958[] = { + /* CAM_FUNC_PARA1 */ + { -20, 0 }, // unk_00 + { 200, 1 }, // distTarget + { 0, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 45, 7 }, // fovTarget + { 50, 8 }, // unk_14 + { 0x200A, 9 }, // flags + { -40, 11 }, // unk_18 + { 20, 12 }, // unk_1C +}; + +CameraModeValue sSetDung2ModeBattVals[] = { + /* CAM_FUNC_BATT1 */ + { -20, 0 }, // yOffset (PCT) + { 180, 1 }, // distance + { 10, 13 }, // swingYawInitial + { 80, 14 }, // swingYawFinal + { -10, 15 }, // swingPitchInitial + { 10, 16 }, // swingPitchFinal + { 25, 17 }, // swingPitchAdj (PCT) + { 45, 7 }, // fov + { 80, 8 }, // atLERPScaleOnGround (PCT) + { 0x2002, 9 }, // flags + { -40, 11 }, // yOffsetOffGround (PCT) + { 25, 12 }, // atLERPScaleOffGround (PCT) +}; + +CameraModeValue D_8011B9B4[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 10, 4 }, // yawUpdateRateTarget + { 50, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 40, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B9D4[] = { + /* CAM_FUNC_JUMP1 */ + { -20, 0 }, // atYOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 15, 4 }, // yawUpdateRateTarget + { 80, 6 }, // maxYawUpdate + { 60, 7 }, // unk_14 + { 20, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011B9F4[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 350, 1 }, // minDist + { 350, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 5, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011BA18[] = { + /* CAM_FUNC_JUMP2 */ + { -40, 0 }, // atYOffset + { 350, 1 }, // minDist + { 350, 2 }, // maxDist + { 20, 18 }, // minMaxDistFactor + { 999, 4 }, // yawUpdRateTarget + { 5, 5 }, // xzUpdRateTarget + { 60, 7 }, // fovTarget + { 40, 8 }, // atLERPStepScale + { 0x2006, 9 }, // flags +}; + +CameraModeValue D_8011BA3C[] = { + /* CAM_FUNC_UNIQ1 */ + { -50, 0 }, // yOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 40, 3 }, // pitchTarget + { 60, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x0000, 9 }, // flags +}; + +CameraModeValue D_8011BA58[] = { + /* CAM_FUNC_UNIQ1 */ + { -100, 0 }, // yOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 70, 3 }, // pitchTarget + { 45, 7 }, // fovTarget + { 10, 8 }, // atLERPScaleMax + { 0x2000, 9 }, // flags +}; + +CameraModeValue D_8011BA74[] = { + /* CAM_FUNC_NORM1 */ + { -10, 0 }, // yOffset + { 350, 1 }, // distMin + { 350, 2 }, // distMax + { 20, 3 }, // unk_0C + { 100, 4 }, // unk_10 + { 5, 5 }, // unk_14 + { 100, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 5, 8 }, // atLERPScaleMax + { 0xF003, 9 }, // flags +}; + +CameraModeValue D_8011BA9C[] = { + /* CAM_FUNC_PARA1 */ + { 0, 0 }, // unk_00 + { 280, 1 }, // distTarget + { 25, 3 }, // pitchTarget + { 0, 10 }, // yawTarget + { 5, 4 }, // unk_08 + { 5, 5 }, // unk_0C + { 70, 7 }, // fovTarget + { 30, 8 }, // unk_14 + { 0x206A, 9 }, // flags + { -20, 11 }, // unk_18 + { 30, 12 }, // unk_1C +}; + +CameraModeValue D_8011BAC8[] = { + /* CAM_FUNC_NORM1 */ + { -10, 0 }, // yOffset + { 280, 1 }, // distMin + { 320, 2 }, // distMax + { -8, 3 }, // unk_0C + { 20, 4 }, // unk_10 + { 10, 5 }, // unk_14 + { 80, 6 }, // pitchTarget + { 60, 7 }, // fovTarget + { 80, 8 }, // atLERPScaleMax + { 0x0002, 9 }, // flags +}; + +CameraModeValue D_8011BAF0[] = { + /* CAM_FUNC_KEEP1 */ + { -20, 0 }, // unk_00 + { 180, 1 }, // unk_04 + { 200, 2 }, // unk_08 + { 35, 13 }, // unk_0C + { 45, 14 }, // unk_10 + { 0, 15 }, // unk_14 + { -5, 16 }, // unk_18 + { 20, 17 }, // unk_1C + { 50, 7 }, // unk_20 + { 50, 8 }, // unk_24 + { 0x2001, 9 }, // flags + { -50, 11 }, // unk_28 + { 30, 12 }, // unk_2C +}; + +CameraModeValue D_8011BB24[] = { + /* CAM_FUNC_KEEP3 */ + { -80, 0 }, // yOffset + { 200, 1 }, // minDist + { 250, 2 }, // maxDist + { 30, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { -8, 15 }, // swingPitchInitial + { -8, 16 }, // swingPitchFinal + { 30, 17 }, // swingPitchAdj + { 50, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x3520, 9 }, // flags +}; + +CameraModeValue D_8011BB54[] = { + /* CAM_FUNC_KEEP3 */ + { -30, 0 }, // yOffset + { 70, 1 }, // minDist + { 200, 2 }, // maxDist + { 40, 13 }, // swingYawInitial + { 10, 14 }, // swingYawFinal + { 0, 15 }, // swingPitchInitial + { 5, 16 }, // swingPitchFinal + { 70, 17 }, // swingPitchAdj + { 45, 7 }, // fovTarget + { 50, 8 }, // atLERPScaleMax + { 10, 4 }, // initTimer + { 0x35A0, 9 }, // flags +}; + +CameraMode sCamSetNorm0Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011A3A0 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A458 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5FC }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetNorm1Modes[] = { + { CAM_FUNC_NORM1, 10, sSetNorm1ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, sSetNorm1ModeParaVals }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A714 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A7D8 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A778 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A7FC }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A798 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A83C }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A858 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A7B8 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A820 }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A874 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetDungeon0Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011A89C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A8C4 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A8F0 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A924 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A994 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A778 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A9B8 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A954 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A9F8 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011AA14 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A974 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A9DC }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011AA30 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetDungeon1Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011AA58 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A8C4 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A714 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011AA80 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A924 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011AAF0 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A778 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011AB14 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011AAB0 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011AB54 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011AB70 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011AAD0 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011AB38 }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011AB8C }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011ABB4 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetNorm3Modes[] = { + { CAM_FUNC_JUMP3, 10, sSetNorm3ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011AC08 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011AC34 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A458 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_JUMP3, 10, sSetNorm3ModeBoomVals }, // CAM_MODE_BOOMERANG + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL +}; + +CameraMode sCamSetHorse0Modes[] = { + { CAM_FUNC_NORM3, 9, sSetHrse0ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_NORM3, 9, sSetHrse0ModeParaVals }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011ACF8 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011AD2C }, // CAM_MODE_TALK + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BATTLE + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_CLIMB + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011ACD4 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ +}; + +CameraMode sCamSetBossGomaModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AD5C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AD84 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A9DC }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossDodoModes[] = { + { CAM_FUNC_NORM1, 10, D_8011ADB4 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011ADDC }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossBariModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AE0C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AE34 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossFGanonModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AE64 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AE8C }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossBalModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AEBC }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AEE4 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossShadesModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AF14 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AF3C }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_NORM1, 10, D_8011AF6C }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_NORM1, 10, D_8011AF6C }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossMofaModes[] = { + { CAM_FUNC_NORM1, 10, D_8011AF94 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AFBC }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFAL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossTwin0Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011AFEC }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B014 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFAL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossTwin1Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B044 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B014 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFAL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossGanon1Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B06C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011AE8C }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFAL + { CAM_FUNC_BATT4, 7, D_8011B094 }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetBossGanon2Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B0B0 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B0D8 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT, + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFAL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetTower0Modes[] = { + { CAM_FUNC_NORM2, 9, D_8011B108 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A458 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_NORM2, 9, D_8011B12C }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetTower1Modes[] = { + { CAM_FUNC_NORM2, 9, D_8011B150 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A458 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_NORM2, 9, D_8011B174 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetFixed0Modes[] = { + { CAM_FUNC_FIXD1, 4, sSetFixd0ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_TARGET + { CAM_FUNC_FIXD1, 4, D_8011B1A8 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_FIXD1, 4, D_8011B1B8 }, // CAM_MODE_TALK +}; + +CameraMode sCamSetFixed1Modes[] = { + { CAM_FUNC_FIXD1, 4, D_8011B1C8 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc0Modes[] = { + { CAM_FUNC_FIXD2, 5, sSetCirc0ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc2Modes[] = { + { CAM_FUNC_DATA4, 3, sSetCirc2ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc3Modes[] = { + { CAM_FUNC_FIXD4, 5, D_8011B1F8 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_JUMP + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_HANG + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_HANGZ + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetPreRend0Modes[] = { + { CAM_FUNC_FIXD3, 1, D_8011B20C }, // CAM_MODE_NORMAL + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_TARGET + { CAM_FUNC_FIXD3, 1, sSetPR0ModeKeepTalkVals }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_FIXD3, 1, sSetPR0ModeKeepTalkVals }, // CAM_MODE_TALK +}; + +CameraMode sCamSetPreRend1Modes[] = { + { CAM_FUNC_UNIQ7, 2, sSetPR1ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_TARGET + { CAM_FUNC_UNIQ7, 2, sSetPR1ModeKeepVals }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP0, 4, sSetPreRend1ModeTalkVals }, // CAM_MODE_TALK +}; + +CameraMode sCamSetPreRend3Modes[] = { + { CAM_FUNC_SPEC6, 1, D_8011B20C }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDoor0Modes[] = { + { CAM_FUNC_UNIQ3, 3, sSetDoor0ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDoorCModes[] = { + { CAM_FUNC_SPEC9, 3, sSetDoorCModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_SPEC9, 3, sSetDoorCModeParaVals }, // CAM_MODE_TARGET +}; + +CameraMode sCamSetRail3Modes[] = { + { CAM_FUNC_SUBJ4, 6, sSetRail3ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetStart0Modes[] = { + { CAM_FUNC_UNIQ0, 1, D_8011B20C }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetStart1Modes[] = { + { CAM_FUNC_UNIQ0, 1, D_8011B270 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetFree0Modes[] = { + { CAM_FUNC_UNIQ6, 1, sSetFree0ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetFree1Modes[] = { + { CAM_FUNC_UNIQ6, 1, sSetFree1ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc4Modes[] = { + { CAM_FUNC_FIXD2, 5, sSetCirc4ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc5Modes[] = { + { CAM_FUNC_UNIQ2, 4, D_8011B290 }, // CAM_MODE_NORMAL + { CAM_FUNC_UNIQ2, 4, D_8011B2A0 }, // CAM_MODE_TARGET +}; + +CameraMode sCamSetDemo0Modes[] = { + { CAM_FUNC_DEMO1, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDemo1Modes[] = { + { CAM_FUNC_DEMO2, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetMori1Modes[] = { + { CAM_FUNC_PARA1, 11, sSetMori1ModeNormVals }, // CAM_MODE_NORMAL + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_TARGET + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_PARA3, 1, D_8011B2E0 }, // CAM_MODE_TALK +}; + +CameraMode sCamSetItem0Modes[] = { + { CAM_FUNC_DEMO3, 3, D_8011B2E4 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetItem1Modes[] = { + { CAM_FUNC_DEMO4, 3, D_8011B2E4 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDemo3Modes[] = { + { CAM_FUNC_DEMO9, 1, sSetDemo3ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetDemo4Modes[] = { + { CAM_FUNC_DEMO5, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetUFOBeanModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B2F4 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B31C }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011B348 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011B368 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011B384 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011B3A0 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetLiftBeanModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B3C8 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B3F0 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011B41C }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011B43C }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011B458 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011B474 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetScene0Modes[] = { + { CAM_FUNC_SPEC9, 3, sSetScn0ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetScene1Modes[] = { + { CAM_FUNC_UNIQ2, 4, D_8011B4A8 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetHidan1Modes[] = { + { CAM_FUNC_SPEC7, 1, D_8011B20C }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetHidan2Modes[] = { + { CAM_FUNC_SPEC4, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetMori2Modes[] = { + { CAM_FUNC_UNIQ5, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetMori3Modes[] = { + { CAM_FUNC_DEMO6, 1, D_8011B2B0 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetTakoModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B4B8 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A8C4 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A8F0 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B4E0 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A994 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A778 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A9B8 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A954 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A9F8 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011AA14 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A974 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A9DC }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011B510 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetSpot05AModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B538 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B560 }, // CAM_MODE_TARGET + { 0, 0, NULL }, // CAM_MODE_FOLLOWTARGET + { 0, 0, NULL }, // CAM_MODE_TALK + { CAM_FUNC_PARA1, 11, D_8011B58C }, // CAM_MODE_BATTLE + { CAM_FUNC_NORM1, 10, D_8011B5B8 }, // CAM_MODE_CLIMB +}; + +CameraMode sCamSetSpot05BModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B5E0 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B608 }, // CAM_MODE_TARGET + { 0, 0, NULL }, // CAM_MODE_FOLLOWTARGET + { 0, 0, NULL }, // CAM_MODE_TALK + { CAM_FUNC_PARA1, 11, D_8011B634 }, // CAM_MODE_BATTLE + { CAM_FUNC_NORM1, 10, D_8011B660 }, // CAM_MODE_CLIMB +}; + +CameraMode sCamSetHidan3Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B688 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B6B0 }, // CAM_MODE_TARGET + { 0, 0, NULL }, // CAM_MODE_FOLLOWTARGET + { 0, 0, NULL }, // CAM_MODE_TALK + { CAM_FUNC_PARA1, 11, D_8011B6DC }, // CAM_MODE_BATTLE + { CAM_FUNC_NORM1, 10, D_8011B708 }, // CAM_MODE_CLIMB +}; + +CameraMode sCamSetItem2Modes[] = { + { CAM_FUNC_KEEP4, 9, D_8011B730 }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetCirc6Modes[] = { + { CAM_FUNC_SPEC0, 2, sSetCirc6ModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetNorm2Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B75C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetFishingModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B784 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B7AC }, // CAM_MODE_TARGET + { CAM_FUNC_BATT1, 12, D_8011B7D8 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011B808 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B7D8 }, // CAM_MODE_BATTLE + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011B838 }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BOWARROW + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BOOMERANG + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011B85C }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011B89C }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011B8B8 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011B87C }, // CAM_MODE_FREEFALL +}; + +CameraMode sCamSetDemoCModes[] = { + { CAM_FUNC_UNIQ9, 1, sSetDemoCModeNormVals }, // CAM_MODE_NORMAL +}; + +CameraMode sCamSetUOFiberModes[] = { + { CAM_FUNC_NORM1, 10, D_8011B8D8 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011B900 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetDungeon2Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B930 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011B958 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A8F0 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, sSetDung2ModeBattVals }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011B9F4 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A778 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011BA18 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011B9B4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011BA3C }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011BA58 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011B9D4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011BA74 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011BA9C }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetTeppenModes[] = { + { CAM_FUNC_NORM1, 10, D_8011BAC8 }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011BAF0 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011BB24 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A458 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraMode sCamSetCirc7Modes[] = { + { CAM_FUNC_FIXD4, 5, D_8011B1F8 }, // CAM_MODE_NORMAL + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_TARGET + { CAM_FUNC_FIXD4, 5, D_8011B1F8 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011A428 }, // CAM_MODE_TALK + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BATTLE + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_NONE, 0, NULL }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT +}; + +CameraMode sCamSetNorm4Modes[] = { + { CAM_FUNC_NORM1, 10, D_8011B75C }, // CAM_MODE_NORMAL + { CAM_FUNC_PARA1, 11, D_8011A3C8 }, // CAM_MODE_TARGET + { CAM_FUNC_KEEP1, 13, D_8011A3F4 }, // CAM_MODE_FOLLOWTARGET + { CAM_FUNC_KEEP3, 12, D_8011BB54 }, // CAM_MODE_TALK + { CAM_FUNC_BATT1, 12, D_8011A748 }, // CAM_MODE_BATTLE + { CAM_FUNC_JUMP2, 9, D_8011A488 }, // CAM_MODE_CLIMB + { CAM_FUNC_SUBJ3, 9, D_8011A4AC }, // CAM_MODE_FIRSTPERSON + { CAM_FUNC_SUBJ3, 9, D_8011A4D0 }, // CAM_MODE_BOWARROW + { CAM_FUNC_SUBJ3, 9, D_8011A4F4 }, // CAM_MODE_BOWARROWZ + { CAM_FUNC_SPEC5, 8, D_8011A518 }, // CAM_MODE_FOOKSHOT + { CAM_FUNC_SUBJ3, 9, D_8011A538 }, // CAM_MODE_BOOMERANG + { CAM_FUNC_SUBJ3, 9, D_8011A55C }, // CAM_MODE_SLINGSHOT + { CAM_FUNC_JUMP2, 9, D_8011A580 }, // CAM_MODE_CLIMBZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_JUMP + { CAM_FUNC_UNIQ1, 7, D_8011A5C4 }, // CAM_MODE_HANG + { CAM_FUNC_UNIQ1, 7, D_8011A5E0 }, // CAM_MODE_HANGZ + { CAM_FUNC_JUMP1, 8, D_8011A5A4 }, // CAM_MODE_FREEFALL + { CAM_FUNC_BATT4, 7, D_8011A61C }, // CAM_MODE_CHARGE + { CAM_FUNC_NORM1, 10, D_8011A638 }, // CAM_MODE_STILL + { CAM_FUNC_PARA1, 11, D_8011A660 }, // CAM_MODE_PUSHPULL + { CAM_FUNC_KEEP1, 13, D_8011A68C }, // CAM_MODE_BOOMFOLLLOW +}; + +CameraSetting sCameraSettings[] = { + { { 0x00000000 }, NULL }, // CAM_SET_NONE + { { 0x051FFFFF }, sCamSetNorm0Modes }, // CAM_SET_NORMAL0 + { { 0x051FFFFF }, sCamSetNorm1Modes }, // CAM_SET_NORMAL1 + { { 0x051FFFFF }, sCamSetDungeon0Modes }, // CAM_SET_DUNGEON0 + { { 0x051FFFFF }, sCamSetDungeon1Modes }, // CAM_SET_DUNGEON1 + { { 0x050FF7FF }, sCamSetNorm3Modes }, // CAM_SET_NORMAL3 + { { 0x8500018F }, sCamSetHorse0Modes }, // CAM_SET_HORSE0 + { { 0x051FFFFF }, sCamSetBossGomaModes }, // CAM_SET_BOSS_GOMA + { { 0x051FFFFF }, sCamSetBossDodoModes }, // CAM_SET_BOSS_DODO + { { 0x051FFFFF }, sCamSetBossBariModes }, // CAM_SET_BOSS_BARI + { { 0x051FFFFF }, sCamSetBossFGanonModes }, // CAM_SET_BOSS_FGANON + { { 0x051FFFFF }, sCamSetBossBalModes }, // CAM_SET_BOSS_BAL + { { 0x051FFFFF }, sCamSetBossShadesModes }, // CAM_SET_BOSS_SHADES + { { 0x051FFFFF }, sCamSetBossMofaModes }, // CAM_SET_BOSS_MOFA + { { 0x051FFFFF }, sCamSetBossTwin0Modes }, // CAM_SET_TWIN0 + { { 0x051FFFFF }, sCamSetBossTwin1Modes }, // CAM_SET_TWIN1 + { { 0x051FFFFF }, sCamSetBossGanon1Modes }, // CAM_SET_BOSS_GANON1 + { { 0x051FFFFF }, sCamSetBossGanon2Modes }, // CAM_SET_BOSS_GANON2 + { { 0x851FFFFF }, sCamSetTower0Modes }, // CAM_SET_TOWER0 + { { 0x851FFFFF }, sCamSetTower1Modes }, // CAM_SET_TOWER1 + { { 0x8500000D }, sCamSetFixed0Modes }, // CAM_SET_FIXED0 + { { 0x85000001 }, sCamSetFixed1Modes }, // CAM_SET_FIXED1 + { { 0x85000001 }, sCamSetCirc0Modes }, // CAM_SET_CIRCLE0 + { { 0x85000001 }, sCamSetCirc2Modes }, // CAM_SET_CIRCLE2 + { { 0x851E1FFF }, sCamSetCirc3Modes }, // CAM_SET_CIRCLE3 + { { 0x8C00000D }, sCamSetPreRend0Modes }, // CAM_SET_PREREND0 + { { 0x8C00000D }, sCamSetPreRend1Modes }, // CAM_SET_PREREND1 + { { 0x8C000001 }, sCamSetPreRend3Modes }, // CAM_SET_PREREND3 + { { 0xC5000001 }, sCamSetDoor0Modes }, // CAM_SET_DOOR0 + { { 0xC5000003 }, sCamSetDoorCModes }, // CAM_SET_DOORC + { { 0xC5000001 }, sCamSetRail3Modes }, // CAM_SET_RAIL3 + { { 0xC5000001 }, sCamSetStart0Modes }, // CAM_SET_START0 + { { 0xC5000001 }, sCamSetStart1Modes }, // CAM_SET_START1 + { { 0x05000001 }, sCamSetFree0Modes }, // CAM_SET_FREE0 + { { 0x05000001 }, sCamSetFree1Modes }, // CAM_SET_FREE2 + { { 0x85000001 }, sCamSetCirc4Modes }, // CAM_SET_CIRCLE4 + { { 0x05000003 }, sCamSetCirc5Modes }, // CAM_SET_CIRCLE5 + { { 0xCE000001 }, sCamSetDemo0Modes }, // CAM_SET_DEMO0 + { { 0x4E000001 }, sCamSetDemo1Modes }, // CAM_SET_DEMO1 + { { 0x05000009 }, sCamSetMori1Modes }, // CAM_SET_MORI1 + { { 0x45000001 }, sCamSetItem0Modes }, // CAM_SET_ITEM0 + { { 0x45000001 }, sCamSetItem1Modes }, // CAM_SET_ITEM1 + { { 0x45000001 }, sCamSetDemo3Modes }, // CAM_SET_DEMO3 + { { 0x45000001 }, sCamSetDemo4Modes }, // CAM_SET_DEMO4 + { { 0x451FFFFF }, sCamSetUFOBeanModes }, // CAM_SET_UFOBEAN + { { 0x451FFFFF }, sCamSetLiftBeanModes }, // CAM_SET_LIFTBEAN + { { 0xC5000001 }, sCamSetScene0Modes }, // CAM_SET_SCENE0 + { { 0x45000001 }, sCamSetScene1Modes }, // CAM_SET_SCENE1 + { { 0x05000001 }, sCamSetHidan1Modes }, // CAM_SET_HIDAN1 + { { 0x45000001 }, sCamSetHidan2Modes }, // CAM_SET_HIDAN2 + { { 0x45000001 }, sCamSetMori2Modes }, // CAM_SET_MORI2 + { { 0x45000001 }, sCamSetMori3Modes }, // CAM_SET_MORI3 + { { 0x451FFFFF }, sCamSetTakoModes }, // CAM_SET_TAKO + { { 0x05000033 }, sCamSetSpot05AModes }, // CAM_SET_SPOT05A + { { 0x05000033 }, sCamSetSpot05BModes }, // CAM_SET_SPOT05B + { { 0x05000033 }, sCamSetHidan3Modes }, // CAM_SET_HIDAN3 + { { 0x4A000001 }, sCamSetItem2Modes }, // CAM_SET_ITEM2 + { { 0x05000001 }, sCamSetCirc6Modes }, // CAM_SET_CIRCLE6 + { { 0x051FFFFF }, sCamSetNorm2Modes }, // CAM_SET_NORMAL2 + { { 0x0501E05F }, sCamSetFishingModes }, // CAM_SET_FISHING + { { 0x45000001 }, sCamSetDemoCModes }, // CAM_SET_DEMOC + { { 0x051FFFFF }, sCamSetUOFiberModes }, // CAM_SET_UO_FIBER + { { 0x051FFFFF }, sCamSetDungeon2Modes }, // CAM_SET_DUNGEON2 + { { 0x051FFFFF }, sCamSetTeppenModes }, // CAM_SET_TEPPEN + { { 0xC5000ECD }, sCamSetCirc7Modes }, // CAM_SET_CIRCLE7 + { { 0x051FFFFF }, sCamSetNorm4Modes }, // CAM_SET_NORMAL4 +}; + +s32 Camera_Normal0(Camera* camera); +s32 Camera_Normal1(Camera* camera); +s32 Camera_Normal2(Camera* camera); +s32 Camera_Normal3(Camera* camera); +s32 Camera_Normal4(Camera* camera); +s32 Camera_Parallel0(Camera* camera); +s32 Camera_Parallel1(Camera* camera); +s32 Camera_Parallel2(Camera* camera); +s32 Camera_Parallel3(Camera* camera); +s32 Camera_Parallel4(Camera* camera); +s32 Camera_KeepOn0(Camera* camera); +s32 Camera_KeepOn1(Camera* camera); +s32 Camera_KeepOn2(Camera* camera); +s32 Camera_KeepOn3(Camera* camera); +s32 Camera_KeepOn4(Camera* camera); +s32 Camera_Subj0(Camera* camera); +s32 Camera_Subj1(Camera* camera); +s32 Camera_Subj2(Camera* camera); +s32 Camera_Subj3(Camera* camera); +s32 Camera_Subj4(Camera* camera); +s32 Camera_Jump0(Camera* camera); +s32 Camera_Jump1(Camera* camera); +s32 Camera_Jump2(Camera* camera); +s32 Camera_Jump3(Camera* camera); +s32 Camera_Jump4(Camera* camera); +s32 Camera_Battle0(Camera* camera); +s32 Camera_Battle1(Camera* camera); +s32 Camera_Battle2(Camera* camera); +s32 Camera_Battle3(Camera* camera); +s32 Camera_Battle4(Camera* camera); +s32 Camera_Fixed0(Camera* camera); +s32 Camera_Fixed1(Camera* camera); +s32 Camera_Fixed2(Camera* camera); +s32 Camera_Fixed3(Camera* camera); +s32 Camera_Fixed4(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_Unique0(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_Unique6(Camera* camera); +s32 Camera_Unique7(Camera* camera); +s32 Camera_Unique8(Camera* camera); +s32 Camera_Unique9(Camera* camera); +s32 Camera_Demo0(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_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); + +s32 (*sCameraFunctions[])(Camera*) = { + 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_Subj0, + Camera_Subj1, + Camera_Subj2, + Camera_Subj3, + Camera_Subj4, + 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, +}; + +s32 sInitRegs = 1; + +s32 gDbgCamEnabled = 0; +s32 sDbgModeIdx = -1; +s16 sNextUID = 0; + +s32 sCameraInterfaceFlags = 1; + +s32 sCameraInterfaceAlpha = 0x02; +s32 sCameraShrinkWindowVal = 0x20; +s32 D_8011D3AC = -1; + +s16 D_8011D3B0[] = { + 0x0AAA, 0xF556, 0x1555, 0xEAAB, 0x2AAA, 0xD556, 0x3FFF, 0xC001, 0x5555, 0xAAAB, 0x6AAA, 0x9556, 0x7FFF, 0x0000, +}; + +s16 D_8011D3CC[] = { + 0x0000, 0x02C6, 0x058C, 0x0000, 0x0000, 0xFD3A, 0x0000, 0x0852, 0x0000, 0x0000, 0x0B18, 0x02C6, 0xFA74, 0x0000, +}; + +s32 sUpdateCameraDirection = 0; +s32 D_8011D3EC = 0; +s32 D_8011D3F0 = 0; + +s32 sDemo5PrevAction12Frame = -16; + +char sCameraFunctionNames[][8] = { + "NONE ", "NORM0()", "NORM1()", "NORM2()", "NORM3()", "NORM4()", "PARA0()", "PARA1()", "PARA2()", "PARA3()", + "PARA4()", "KEEP0()", "KEEP1()", "KEEP2()", "KEEP3()", "KEEP4()", "SUBJ0()", "SUBJ1()", "SUBJ2()", "SUBJ3()", + "SUBJ4()", "JUMP0()", "JUMP1()", "JUMP2()", "JUMP3()", "JUMP4()", "BATT0()", "BATT1()", "BATT2()", "BATT3()", + "BATT4()", "FIXD0()", "FIXD1()", "FIXD2()", "FIXD3()", "FIXD4()", "DATA0()", "DATA1()", "DATA2()", "DATA3()", + "DATA4()", "UNIQ0()", "UNIQ1()", "UNIQ2()", "UNIQ3()", "UNIQ4()", "UNIQ5()", "UNIQ6()", "UNIQ7()", "UNIQ8()", + "UNIQ9()", "DEMO0()", "DEMO1()", "DEMO2()", "DEMO3()", "DEMO4()", "DEMO5()", "DEMO6()", "DEMO7()", "DEMO8()", + "DEMO9()", "SPEC0()", "SPEC1()", "SPEC2()", "SPEC3()", "SPEC4()", "SPEC5()", "SPEC6()", "SPEC7()", "SPEC8()", + "SPEC9()", "", "", "", "", "", +}; + +VecSph D_8011D658[] = { + { 50.0f, 0xEE3A, 0xD558 }, + { 75.0f, 0x0000, 0x8008 }, + { 80.0f, 0xEE3A, 0x8008 }, + { 15.0f, 0xEE3A, 0x8008 }, +}; + +Vec3f D_8011D678[] = { + { 0.0f, 40.0f, 20.0f }, + { 0.0f, 40.0f, 0.0f }, + { 0.0f, 3.0f, -3.0f }, + { 0.0f, 3.0f, -3.0 }, +}; + +/******************************************************* + * OnePoint initalization values for Demo5 + ********************************************************/ +s32 sDemo5PrevSfxFrame = -200; + +// target is player, far from eye +OnePointDemoFull D_8011D6AC[] = { + { // initflags & 0x00FF (at): 2, atTarget is view lookAt + atInit + // initFlags & 0xFF00 (eye): none + // action: 15, copy at, eye, roll, fov to camera + // result: eye remains in the same locaiton, at is View's lookAt + 0x8F, + 0xFF, + 0x0002, + 0x0001, + 0x0000, + 60.0f, + 1.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f } }, + { // initFlags & 0x00FF (at): 3, atTarget is camera's current at + atInit + // initFlags & 0xFF00 (eye): 3, eyeTarget is the camera's current eye + eyeInit + // action: interplate eye and at. + // result: eye and at's y interpolate to become +20 from their current location. + 0x81, + 0xFF, + 0x0303, + 0x0013, + 0x0000, + 45.0f, + 1.0f, + { 0.0f, 20.0f, 0.0f }, + { 0.0f, 20.0f, 0.0f } }, + { // initFlags & 0x00FF (at): 0 none + // initFlags & 0xFF00 (eye): 0 none + // action: 18, copy this camera to default camera. + 0x12, + 0xFF, + 0x0000, + 0x0001, + 0x0000, + 60.0f, + 1.0f, + { -1.0f, -1.0f, -1.0f }, + { -1.0f, -1.0f, -1.0f } }, +}; + +// target is player close to current eye +OnePointDemoFull D_8011D724[] = { + { 0x8F, 0xFF, 0x2424, 0x0001, 0x0000, 60.0f, 1.0f, { 0.0f, 0.0f, 0.0f }, { 0.0f, 10.0f, -20.0f } }, + { 0x81, 0xFF, 0x2121, 0x0013, 0x0000, 50.0f, 1.0f, { 0.0f, -10.0f, 0.0f }, { 0.0f, 0.0f, 60.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// target is close to player +OnePointDemoFull D_8011D79C[] = { + { 0xCF, 0xFF, 0x0002, 0x0001, 0x0000, 60.0f, 1.0f, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }, + { 0xC1, 0xFF, 0x0303, 0x0013, 0x0000, 45.0f, 1.0f, { 0.0f, -20.0f, 0.0f }, { 0.0f, -10.0f, 5.0f } }, + { + 0xC1, + 0xFF, + 0x0303, + 0x0009, + 0x0000, + 60.0f, + 1.0f, + { 0.0f, 10.0f, 0.0f }, + { 0.0f, 10.0f, 0.0f }, + }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// target is within 300 units of eye, and player is within 30 units of eye +OnePointDemoFull D_8011D83C[] = { + { 0x83, 0xFF, 0x2141, 0x0014, 0x0000, 45.0f, 0.2f, { 0.0f, 0.0f, 10.0f }, { 0.0f, 0.0f, 10.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// target is within 700 units of eye, angle between player/eye and target/eye is less than +// 76.9 degrees. The x/y coordinates of the target on screen is between (21, 41) and (300, 200), +// and the player is farther than 30 units of the eye +OnePointDemoFull D_8011D88C[] = { + { 0x81, 0xFF, 0x0303, 0x0014, 0x0000, 45.0f, 1.0f, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// same as above, but the target is NOT within the screen area. +OnePointDemoFull D_8011D8DC[] = { + { 0x8F, 0xFF, 0x0404, 0x0014, 0x0001, 50.0f, 1.0f, { 0.0f, 5.0f, 10.0f }, { 0.0f, 10.0f, -80.0f } }, + { 0x82, 0xFF, 0x2121, 0x0005, 0x0000, 60.0f, 1.0f, { 0.0f, 5.0f, 0.0f }, { 5.0f, 5.0f, -200.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// target is a door. +OnePointDemoFull D_8011D954[] = { + { 0x0F, 0xFF, 0xC1C1, 0x0014, 0x0000, 60.0f, 1.0f, { 0.0f, 0.0f, 50.0f }, { 0.0f, 0.0f, 250.0f } }, + { 0x83, 0xFF, 0x05B1, 0x0005, 0x0000, 60.0f, 0.1f, { 0.0f, 10.0f, 50.0f }, { 0.0f, 10.0f, 100.0f } }, + { 0x82, 0xFF, 0x2121, 0x0005, 0x0002, 60.0f, 1.0f, { 0.0f, 10.0f, 0.0f }, { 0.0f, 20.0f, -150.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +// otherwise +OnePointDemoFull D_8011D9F4[] = { + { 0x8F, 0xFF, 0x0504, 0x0014, 0x0002, 60.0f, 1.0f, { 0.0f, 5.0f, 50.0f }, { 0.0f, 20.0f, 300.0f } }, + { 0x82, 0xFF, 0x2121, 0x0005, 0x0002, 60.0f, 1.0f, { 0.0f, 10.0f, 0.0f }, { 0.0f, 20.0f, -150.0f } }, + { 0x12, 0xFF, 0x0000, 0x0001, 0x0000, 60.0f, 1.0f, { -1.0f, -1.0f, -1.0f }, { -1.0f, -1.0f, -1.0f } }, +}; + +Vec3f D_8011DA6C[] = { + { 3050.0f, 700.0f, 0.0f }, { 1755.0f, 3415.0f, -380.0f }, { -3120.0f, 3160.0f, 245.0f }, { 0.0f, -10.0f, 240.0f } +}; + +Vec3f D_8011DA9C[] = { + { 3160.0f, 2150.0f, 0.0f }, + { 1515.0f, 4130.0f, -835.0f }, + { -3040.0f, 4135.0f, 230.0f }, + { -50.0f, 600.0f, -75.0f }, +}; + +f32 D_8011DACC[] = { 1570.0f, 3680.0f, 3700.0f, 395.0f }; + +f32 D_8011DADC[] = { 320.0f, 320.0f, 320.0f, 0.0f }; + +s16 D_8011DAEC[] = { -2000, -1000, 0, 0, 0, 0, 0, 0 }; + +s16 D_8011DAFC[] = { + CAM_SET_NORMAL0, CAM_SET_NORMAL1, CAM_SET_NORMAL2, CAM_SET_DUNGEON0, CAM_SET_DUNGEON1, CAM_SET_DUNGEON2, +}; + +GlobalContext* D_8015BD7C; +DBCamera D_8015BD80; +CollisionPoly* playerFloorPoly; |
