mirror of
https://github.com/zeldaret/oot
synced 2026-09-01 17:49:54 -04:00
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>
This commit is contained in:
+59
-121
@@ -395,7 +395,7 @@ f32 func_8002DB8C(Actor* actorA, Actor* actorB);
|
||||
f32 func_8002DBB0(Actor* actor, Vec3f* arg1);
|
||||
void func_8002DBD0(Actor* actor, Vec3f* result, Vec3f* arg2);
|
||||
f32 Actor_HeightDiff(Actor* actorA, Actor* actorB);
|
||||
f32 Player_GetCameraYOffset(Player* player);
|
||||
f32 Player_GetHeight(Player* player);
|
||||
f32 func_8002DCE4(Player* player);
|
||||
s32 func_8002DD6C(Player* player);
|
||||
s32 func_8002DD78(Player* player);
|
||||
@@ -597,7 +597,8 @@ s32 func_8003D594(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, f32, CollisionPoly*
|
||||
s32 func_8003D7A0(CollisionContext*, f32*, Vec3f*, f32, UNK_PTR, u32*, Actor*);
|
||||
// ? func_8003D7F0(?);
|
||||
// ? func_8003DD28(?);
|
||||
// ? func_8003DD6C(?);
|
||||
s32 func_8003DD6C(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, UNK_TYPE, UNK_TYPE, UNK_TYPE, UNK_TYPE,
|
||||
UNK_PTR);
|
||||
s32 func_8003DE84(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*);
|
||||
s32 func_8003DF10(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*, Actor*);
|
||||
s32 func_8003DFA0(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*, Actor*, f32);
|
||||
@@ -651,13 +652,13 @@ void DynaPolyInfo_Free(GlobalContext* globalCtx, DynaCollisionContext* dynaColCt
|
||||
void DynaPolyInfo_Alloc(UNK_PTR arg0, UNK_PTR arg1);
|
||||
// ? func_80041978(?);
|
||||
// ? func_800419B0(?);
|
||||
// ? func_80041A28(?);
|
||||
// ? func_80041A4C(?);
|
||||
s32 func_80041A28(CollisionContext* colCtx, CollisionPoly*, u32);
|
||||
s32 func_80041A4C(CollisionContext* colCtx, s32 camDataIdx, s32 arg2);
|
||||
// ? func_80041B24(?);
|
||||
// ? func_80041B80(?);
|
||||
struct_80041C10_ret* func_80041C10(CollisionContext* colCtx, s32, s32);
|
||||
// ? func_80041C98(?);
|
||||
UNK_TYPE func_80041D4C(CollisionContext*, CollisionPoly*, CollisionPoly*);
|
||||
u16 func_80041B80(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
Vec3s* func_80041C10(CollisionContext* colCtx, s32, s32);
|
||||
Vec3s* func_80041C98(CollisionContext* colCtx, CollisionPoly*, s32);
|
||||
u32 func_80041D4C(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId);
|
||||
// ? func_80041D94(?);
|
||||
// ? func_80041DB8(?);
|
||||
// ? func_80041EC8(?);
|
||||
@@ -665,15 +666,14 @@ UNK_TYPE func_80041D4C(CollisionContext*, CollisionPoly*, CollisionPoly*);
|
||||
u16 func_80041F34(CollisionContext*, CollisionPoly*, u32);
|
||||
s32 func_80041FA0(CollisionContext*, CollisionPoly*, u32);
|
||||
s32 func_80042048(CollisionContext*, CollisionPoly*, s32);
|
||||
s32 func_80042108(CollisionContext*, CollisionPoly*, u32);
|
||||
s32 func_8004213C(GlobalContext*, CollisionContext*, f32, f32, f32*, UNK_PTR);
|
||||
// ? func_80042108(?);
|
||||
s32 func_8004213C(GlobalContext*, CollisionContext*, f32, f32, f32*, WaterBox**);
|
||||
s32 func_8004239C(GlobalContext* globalCtx, CollisionContext* colCtx, Vec3f* arg2, f32 arg3, WaterBox** arg4);
|
||||
s32 func_80042244(GlobalContext* globalCtx, CollisionContext* colCtx, f32 x, f32 z, f32* ySurface,
|
||||
WaterBox** outWaterBox);
|
||||
// ? func_80042538(?);
|
||||
// ? func_80042548(?);
|
||||
// ? func_8004259C(?);
|
||||
s32 func_800427B4(CollisionPoly*, CollisionPoly*, s32, s32, Vec3f*);
|
||||
s32 func_80042244(GlobalContext* globalCtx, CollisionContext* colCtx, f32 x, f32 z, f32* ySurface, WaterBox** outWaterBox);
|
||||
u32 func_80042538(CollisionContext* colCtx, WaterBox* waterBox);
|
||||
u16 func_80042548(CollisionContext* colCtx, WaterBox* waterBox);
|
||||
u32 func_8004259C(CollisionContext* colCtx, WaterBox* waterBox);
|
||||
s32 func_800427B4(CollisionPoly*, CollisionPoly*, Vec3f*, Vec3f*, Vec3f*);
|
||||
// ? func_80042868(?);
|
||||
// ? func_80042B2C(?);
|
||||
void func_80042C3C(GlobalContext*, CollisionContext*);
|
||||
@@ -695,94 +695,30 @@ s32 func_8004356C(DynaPolyActor* dynaActor);
|
||||
s32 func_80043590(DynaPolyActor* dynaActor);
|
||||
s32 func_800435B4(DynaPolyActor* dynaActor);
|
||||
s32 func_800435D8(GlobalContext* globalCtx, DynaPolyActor* dyna, s16 arg2, s16 arg3, s16 arg4);
|
||||
f32 func_800437F0(f32, f32);
|
||||
// ? func_8004389C(?);
|
||||
// ? func_800438DC(?);
|
||||
// ? func_8004391C(?);
|
||||
// ? func_800439AC(?);
|
||||
// ? func_80043A3C(?);
|
||||
// ? func_80043ABC(?);
|
||||
// ? func_80043B60(?);
|
||||
// ? func_80043BC4(?);
|
||||
// ? func_80043C28(?);
|
||||
// ? func_80043CAC(?);
|
||||
// ? func_80043D18(?);
|
||||
// ? func_80043F34(?);
|
||||
// ? func_80043F94(?);
|
||||
// ? func_80044340(?);
|
||||
// ? func_800443A0(?);
|
||||
// ? func_80044434(?);
|
||||
// ? func_80044510(?);
|
||||
// ? func_80044568(?);
|
||||
// ? func_80044740(?);
|
||||
// ? func_8004476C(?);
|
||||
// ? func_8004479C(?);
|
||||
// ? func_8004481C(?);
|
||||
// ? func_800448CC(?);
|
||||
// ? func_800449AC(?);
|
||||
// ? func_80044A74(?);
|
||||
// ? func_80044ADC(?);
|
||||
// ? func_80044E68(?);
|
||||
// ? func_800450A4(?);
|
||||
// ? Camera_CopyModeValuesToPREG(?);
|
||||
// ? Camera_CopyPREGToModeValues(?);
|
||||
// ? func_80045350(?);
|
||||
// ? func_8004545C(?);
|
||||
// ? func_80045508(?);
|
||||
// ? func_80045714(?);
|
||||
// ? func_800457A8(?);
|
||||
// ? func_800458D4(?);
|
||||
// ? func_80045B08(?);
|
||||
// ? func_80045C74(?);
|
||||
// ? func_800460A8(?);
|
||||
// ? func_800466F8(?);
|
||||
// ? func_800468CC(?);
|
||||
// ? func_800469C0(?);
|
||||
// ? func_80046B44(?);
|
||||
// ? func_80046CB4(?);
|
||||
// ? func_80046E20(?);
|
||||
// ? func_80047394(?);
|
||||
// ? Camera_Normal1(?);
|
||||
// ? Camera_Unique2(?);
|
||||
// ? Camera_Unique9(?);
|
||||
// ? func_80054314(?);
|
||||
// ? func_8005445C(?);
|
||||
// ? func_80054478(?);
|
||||
void func_80057C6C(Camera* camera, View* view, CollisionContext* colCtx, GlobalContext* globalCtx);
|
||||
// ? func_80057FC4(?);
|
||||
// ? func_80058148(?);
|
||||
void Camera_ChangeStatus(Camera* camera, s16 status);
|
||||
// ? func_800584E8(?);
|
||||
// ? func_800588B4(?);
|
||||
// ? func_80058CF8(?);
|
||||
// ? func_80058D34(?);
|
||||
// ? func_80058E8C(?);
|
||||
// ? func_800591EC(?);
|
||||
void func_80059EC8(Camera* camera);
|
||||
// ? func_8005A02C(?);
|
||||
// ? Camera_ChangeMode(?);
|
||||
s32 func_8005A444(Camera* camera, s16 arg1);
|
||||
s32 func_8005A470(Camera* camera, s16 arg1);
|
||||
// ? Camera_ChangeSetting(?);
|
||||
s32 func_8005A77C(Camera* camera, s16 button);
|
||||
// ? func_8005A7A8(?);
|
||||
// ? func_8005A8C4(?);
|
||||
s16 func_8005A948(Camera* camera);
|
||||
Vec3s* func_8005A970(Vec3s*, Camera*);
|
||||
s16 func_8005A9CC(s32 arg0);
|
||||
s16 func_8005A9F4(Camera* camera);
|
||||
s32 func_8005AA1C(Camera* camera, s32, s16, s32);
|
||||
s32 Camera_SetParam(Camera*, s32, void*);
|
||||
// ? func_8005AC48(?);
|
||||
// ? func_8005AC60(?);
|
||||
// ? func_8005AC6C(?);
|
||||
s32 func_8005AD40(Camera* camera, Actor* doorActor, s16 arg2, f32 arg3, s16 arg4, s16 arg5, s16 arg6);
|
||||
// ? func_8005AE64(?);
|
||||
Vec3f* func_8005AFB4(Vec3f* dst, Camera* camera);
|
||||
void Camera_SetCameraData(Camera*, s16, CutsceneCameraPoint*, CutsceneCameraPoint*, s16, s16, s32);
|
||||
// ? func_8005B044(?);
|
||||
s32 func_8005B198();
|
||||
s16 func_8005B1A4(Camera* camera);
|
||||
void Camera_Init(Camera* camera, View* view, CollisionContext* colCtx, GlobalContext* globalCtx);
|
||||
void Camera_InitPlayerSettings(Camera* camera, Player* player);
|
||||
s16 Camera_ChangeStatus(Camera* camera, s16 status);
|
||||
Vec3s* Camera_Update(Vec3s* outDir, Camera* camera);
|
||||
void Camera_Finish(Camera* camera);
|
||||
s32 Camera_ChangeMode(Camera* camera, s16 mode);
|
||||
s32 Camera_ChangeSetting(Camera* camera, s16 setting);
|
||||
s32 Camera_ChangeDataIdx(Camera* camera, s32 camDataIdx);
|
||||
s16 Camera_GetInputDirYaw(Camera* camera);
|
||||
Vec3s* Camera_GetCamDir(Vec3s* dir, Camera* camera);
|
||||
s16 Camera_GetCamDirPitch(Camera* camera);
|
||||
s16 Camera_GetCamDirYaw(Camera* camera);
|
||||
s32 Camera_AddQuake(Camera* camera, s32 arg1, s16 y, s32 countdown);
|
||||
s32 Camera_SetParam(Camera* camera, s32 param, void* value);
|
||||
s32 func_8005AC48(Camera* camera, s16 arg1);
|
||||
s32 Camera_ResetAnim(Camera* camera);
|
||||
s32 Camera_SetCSParams(Camera* camera, CutsceneCameraPoint* atPoints, CutsceneCameraPoint* eyePoints, Player* player,
|
||||
s16 relativeToPlayer);
|
||||
s32 Camera_ChangeDoorCam(Camera* camera, Actor* doorActor, s16 camDataIdx, f32 arg3, s16 timer1, s16 timer2,
|
||||
s16 timer3);
|
||||
s32 Camera_Copy(Camera* dstCamera, Camera* srcCamera);
|
||||
Vec3f* Camera_GetSkyboxOffset(Vec3f* dst, Camera* camera);
|
||||
void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0,
|
||||
void* data1, s16 data2, s16 data3, UNK_TYPE arg6);
|
||||
DamageTable* DamageTable_Get(s32 index);
|
||||
// ? func_8005B280(?);
|
||||
void func_8005B2AC(GraphicsContext* gfx, Vec3f* vA, Vec3f* vB, Vec3f* vC, u8 r, u8 g, u8 b);
|
||||
@@ -906,7 +842,8 @@ void func_80061EFC(CollisionCheckInfo* info, DamageTable* damageTable, Collision
|
||||
// ? func_800622E4(?);
|
||||
s32 CollisionCheck_GeneralLineOcCheck(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Vec3f* camera_3C,
|
||||
Vec3f* arg3, Actor** arg4, s32 arg5);
|
||||
// ? func_800626B0(?);
|
||||
s32 func_800626B0(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Vec3f* camera_3C, Vec3f* arg3,
|
||||
Actor** arg4, s32 arg5);
|
||||
void Collider_CylinderUpdate(Actor* actor, ColliderCylinder* collider);
|
||||
void func_80062718(ColliderCylinder* collider, Vec3s* pos);
|
||||
void func_80062734(ColliderQuad* collider, Vec3f* a, Vec3f* b, Vec3f* c, Vec3f* d);
|
||||
@@ -923,6 +860,7 @@ s32 func_80062ECC(f32, f32, f32, Vec3f*, Vec3f*, Vec3f*, Vec3f*, Vec3f*);
|
||||
void SaveContext_Init(void);
|
||||
// ? func_800636C0(?);
|
||||
void func_8006375C(s32 arg0, s32 arg1, const char* text);
|
||||
void func_8006376C(u8 x, u8 y, u8 colorId, const char* text);
|
||||
// ? func_8006376C(?);
|
||||
// ? func_80063828(?);
|
||||
void func_8006390C(Input* input);
|
||||
@@ -988,8 +926,8 @@ f32 func_8006F93C(u16, u16, u16);
|
||||
f32 func_8006F9BC(u16 endFrame, u16 startFrame, u16 frames, u16, u16);
|
||||
// ? func_8006FB94(?);
|
||||
// ? func_8006FC88(?);
|
||||
// ? func_80070600(?);
|
||||
// ? func_800706A0(?);
|
||||
void func_80070600(GlobalContext* globalCtx, s32 waterboxProperties);
|
||||
void func_800706A0(GlobalContext* globalCtx);
|
||||
// ? func_80070718(?);
|
||||
// ? func_80070C24(?);
|
||||
// ? func_800730DC(?);
|
||||
@@ -1119,7 +1057,7 @@ Vec3f* OLib_Vec3fDiffRad(Vec3f* dest, Vec3f* a, Vec3f* b);
|
||||
// ? func_8007C850(?);
|
||||
// ? func_8007FFE0(?);
|
||||
// ? func_80080024(?);
|
||||
s16 func_800800F8(GlobalContext* globalCtx, s16 arg1, s16 arg2, Actor* actor, s16 arg4);
|
||||
s16 func_800800F8(GlobalContext* globalCtx, s16 csID, s16 timer, Actor* actor, s16 camIdx);
|
||||
void func_800803F0(GlobalContext* globalCtx, s16 camId);
|
||||
s16 func_80080480(GlobalContext* globalCtx, Actor* actor);
|
||||
void func_800806BC(GlobalContext* globalCtx, Actor* actor, u16 sfxId);
|
||||
@@ -1238,7 +1176,7 @@ u32 Quake_SetUnkValues(s16 idx, s16 arg1, SubQuakeRequest14 arg2);
|
||||
void Quake_Init();
|
||||
s16 Quake_Add(Camera* cam, u32 callbackIdx);
|
||||
u32 Quake_RemoveFromIdx(s16 idx);
|
||||
s16 Quake_Calc(Camera* camera, UnkQuakeCalcStruct* camData);
|
||||
s16 Quake_Calc(Camera* camera, QuakeCamCalc* camData);
|
||||
Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
|
||||
Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
|
||||
Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 n, s32 f);
|
||||
@@ -1557,9 +1495,9 @@ void ShrinkWindow_Update(s32 updateRate);
|
||||
// ? func_800B4AA8(?);
|
||||
// ? func_800B4AE4(?);
|
||||
// ? func_800B4B20(?);
|
||||
// ? func_800B4D58(?);
|
||||
// ? func_800B4DE4(?);
|
||||
// ? func_800B4E7C(?);
|
||||
void DbgCamera_Init(DBCamera* dbCamera, Camera* camera);
|
||||
void DbgCamera_Enable(DBCamera* dbCamera, Camera* camera);
|
||||
void DbgCamera_Update(DBCamera* dbCamera, Camera* camera);
|
||||
// ? func_800B8730(?);
|
||||
// ? func_800B87D8(?);
|
||||
// ? func_800B8978(?);
|
||||
@@ -1568,10 +1506,10 @@ void ShrinkWindow_Update(s32 updateRate);
|
||||
// ? func_800B8F58(?);
|
||||
// ? func_800B9060(?);
|
||||
// ? func_800B91B0(?);
|
||||
// ? func_800B958C(?);
|
||||
void DbgCamera_FirstInit(Camera* camera, DBCamera* dbCamera);
|
||||
// ? func_800B9638(?);
|
||||
// ? func_800BB0A0(?);
|
||||
// ? func_800BB2B4(?);
|
||||
s32 func_800BB2B4(Vec3f* pos, f32* roll, f32* fov, CutsceneCameraPoint* point, s16* keyframe, f32* curFrame);
|
||||
s32 Mempak_Init(s32 controllerNb);
|
||||
s32 Mempak_GetFreeBytes(s32 controllerNb);
|
||||
s32 Mempak_FindFile(s32 controllerNb, char start, char end);
|
||||
@@ -1609,13 +1547,13 @@ s16 Gameplay_ChangeCameraStatus(GlobalContext* globalCtx, s16 camId, s16 status)
|
||||
void Gameplay_ClearCamera(GlobalContext* globalCtx, s16 camId);
|
||||
void Gameplay_ClearAllSubCameras(GlobalContext* globalCtx);
|
||||
Camera* Gameplay_GetCamera(GlobalContext* globalCtx, s16 camId);
|
||||
s32 func_800C04D8(GlobalContext* globalCtx, s16 camId, Vec3f* arg2, Vec3f* arg3);
|
||||
s32 func_800C05E4(GlobalContext* globalCtx, s16 camId, Vec3f* arg2, Vec3f* arg3, Vec3f* arg4);
|
||||
s32 func_800C0704(GlobalContext* globalCtx, s16 camId, f32 arg2);
|
||||
s32 func_800C0744(GlobalContext* globalCtx, s16 camId, s16 arg2);
|
||||
void func_800C078C(GlobalContext* globalCtx, s16 camId1, s16 camId2);
|
||||
s32 Gameplay_CameraSetAtEye(GlobalContext* globalCtx, s16 camId, Vec3f* arg2, Vec3f* arg3);
|
||||
s32 Gameplay_CameraSetAtEyeUp(GlobalContext* globalCtx, s16 camId, Vec3f* at, Vec3f* eye, Vec3f* up);
|
||||
s32 Gameplay_CameraSetFov(GlobalContext* globalCtx, s16 camId, f32 fov);
|
||||
s32 Gameplay_SetCameraRoll(GlobalContext* globalCtx, s16 camId, s16 roll);
|
||||
void Gameplay_CopyCamera(GlobalContext* globalCtx, s16 camId1, s16 camId2);
|
||||
s32 func_800C0808(GlobalContext* globalCtx, s16 camId, Player* player, s16 arg3);
|
||||
void func_800C0874(GlobalContext* globalCtx, s16 camId, s16 arg2);
|
||||
s32 Gameplay_CameraChangeSetting(GlobalContext* globalCtx, s16 camId, s16 arg2);
|
||||
void func_800C08AC(GlobalContext* globalCtx, s16 camId, s16 arg2);
|
||||
void Gameplay_SaveSceneFlags(GlobalContext* globalCtx);
|
||||
void Gameplay_SetupRespawnPoint(GlobalContext* globalCtx, s32 respawnMode, s32 playerParams);
|
||||
@@ -2307,7 +2245,7 @@ void func_800F6584(UNK_TYPE);
|
||||
void func_800F66DC(s8);
|
||||
void func_800F6700(s8 outputMode);
|
||||
void func_800F67A0(u8);
|
||||
// ? func_800F6828(?);
|
||||
void func_800F6828(u8);
|
||||
void func_800F68BC(s8);
|
||||
// ? func_800F68D4(?);
|
||||
// ? func_800F691C(?);
|
||||
|
||||
@@ -48,6 +48,18 @@
|
||||
#define R_FB_FILTER_ENV_COLOR(c) SREG(85 + c)
|
||||
#define R_ENABLE_FB_FILTER SREG(88)
|
||||
#define R_PAUSE_MENU_MODE SREG(94)
|
||||
#define R_CAM_MAX_PHI OREG(5)
|
||||
#define R_CAM_DEFA_PHI_UPDRATE OREG(7)
|
||||
#define R_DEFA_CAM_ANIM_TIME OREG(23)
|
||||
#define R_CAM_MIN_PHI OREG(34)
|
||||
#define R_CAM_MIN_PHI2 OREG(35)
|
||||
#define R_AT_LERP_MIN OREG(41)
|
||||
#define R_AT_LERP_SCALE OREG(42)
|
||||
#define R_CAM_YOFFSET_NORM OREG(46)
|
||||
#define R_CAM_FIXED3_FOV PREG(7)
|
||||
#define R_DBG_CAM_UPDATE PREG(80)
|
||||
#define R_DBG_REG_UPDATE PREG(82)
|
||||
#define R_RELOAD_CAM_PARAMS QREG(0)
|
||||
#define R_C_UP_ICON_X YREG(88)
|
||||
#define R_C_UP_ICON_Y YREG(89)
|
||||
#define R_MAGIC_FILL_COLOR(i) ZREG(0 + i)
|
||||
|
||||
+3
-40
@@ -183,44 +183,7 @@ extern s32 gMaxActorId; // original name: "MaxProfile"
|
||||
//extern ? D_80119E54;
|
||||
//extern ? D_80119E94;
|
||||
//extern ? D_80119EAC;
|
||||
//extern ? sOREGInit;
|
||||
//extern ? sOREGInitCnt;
|
||||
//extern ? sPREGInit;
|
||||
//extern ? sPREGInitCnt;
|
||||
//extern ? sCameraSettingNames;
|
||||
//extern ? sCameraModeNames;
|
||||
//extern ? sCameraSettings;
|
||||
//extern ? sInitRegs;
|
||||
extern s32 D_8011D394;
|
||||
//extern ? D_8011D398;
|
||||
//extern ? D_8011D39C;
|
||||
//extern ? D_8011D3A0;
|
||||
//extern ? D_8011D3A2;
|
||||
//extern ? D_8011D3A4;
|
||||
//extern ? D_8011D3A8;
|
||||
extern s32 D_8011D3AC;
|
||||
//extern ? D_8011D3E8;
|
||||
//extern ? D_8011D3F0;
|
||||
//extern ? D_8011D3F4;
|
||||
//extern ? sCameraFunctionNames;
|
||||
//extern ? D_8011D658;
|
||||
//extern ? D_8011D678;
|
||||
//extern ? D_8011D6A8;
|
||||
//extern ? D_8011D6AC;
|
||||
//extern ? D_8011D6D8;
|
||||
//extern ? D_8011D724;
|
||||
//extern ? D_8011D79C;
|
||||
//extern ? D_8011D83C;
|
||||
//extern ? D_8011D88C;
|
||||
//extern ? D_8011D8DC;
|
||||
//extern ? D_8011D954;
|
||||
//extern ? D_8011D9F4;
|
||||
//extern ? D_8011DA6C;
|
||||
//extern ? D_8011DA9C;
|
||||
//extern ? D_8011DB08;
|
||||
//extern ? D_8011DB0C;
|
||||
//extern ? D_8011DB10;
|
||||
//extern ? D_8011DB14;
|
||||
extern s32 gDbgCamEnabled;
|
||||
//extern ? D_8011DB20;
|
||||
//extern ? D_8011DE00;
|
||||
//extern ? D_8011DE18;
|
||||
@@ -3268,7 +3231,7 @@ extern u8 D_80157D30[];
|
||||
//extern ? D_8015BD90;
|
||||
//extern ? D_8015BD9C;
|
||||
//extern ? D_8015CE46;
|
||||
//extern ? D_8015CE4C;
|
||||
//extern ? playerFloorPoly;
|
||||
//extern ? D_8015CE58;
|
||||
//extern ? D_8015CE80;
|
||||
//extern ? D_8015CE8C;
|
||||
@@ -3385,7 +3348,7 @@ extern u8 D_801610DA;
|
||||
//extern ? D_80161144;
|
||||
//extern ? D_80161148;
|
||||
//extern ? D_8016114A;
|
||||
//extern ? D_80161150;
|
||||
//extern ? sDbgEditorSlots;
|
||||
//extern ? D_8016115E;
|
||||
//extern ? D_80161160;
|
||||
//extern ? D_8016116E;
|
||||
|
||||
+6
-174
@@ -9,6 +9,7 @@
|
||||
#include "z64player.h"
|
||||
#include "z64audio.h"
|
||||
#include "z64object.h"
|
||||
#include "z64camera.h"
|
||||
#include "z64cutscene.h"
|
||||
#include "z64collision_check.h"
|
||||
#include "z64scene.h"
|
||||
@@ -176,176 +177,6 @@ typedef struct {
|
||||
/* 0x0124 */ s32 unk_124;
|
||||
} View; // size = 0x128
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00;
|
||||
/* 0x0004 */ f32 unk_04;
|
||||
/* 0x0008 */ s16 unk_08;
|
||||
} Special9; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Actor* door;
|
||||
/* 0x0004 */ s16 unk_04;
|
||||
/* 0x0006 */ s16 unk_06;
|
||||
/* 0x0008 */ s16 unk_08;
|
||||
/* 0x000A */ s16 unk_0A;
|
||||
/* 0x000C */ Special9 spec9;
|
||||
/* 0x0018 */ s16 unk_18;
|
||||
} DoorCamera; // size = 0x1C
|
||||
|
||||
typedef struct {
|
||||
f32 unk_00;
|
||||
s16 unk_04;
|
||||
} Special0;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00;
|
||||
/* 0x0004 */ s16 unk_04;
|
||||
} Demo1_unk_04; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 unk_00;
|
||||
/* 0x0002 */ s16 unk_02;
|
||||
/* 0x0004 */ Demo1_unk_04 unk_04;
|
||||
} Demo1; // size = 0x18
|
||||
|
||||
typedef struct {
|
||||
char unk_00[0xC];
|
||||
s32 unk_0C;
|
||||
f32 unk_10;
|
||||
s16 unk_14;
|
||||
s16 unk_16;
|
||||
s16 unk_18;
|
||||
s16 unk_1A;
|
||||
f32 unk_1C;
|
||||
f32 unk_20;
|
||||
s16 unk_24;
|
||||
s16 unk_26;
|
||||
s16 unk_28;
|
||||
s16 unk_2A;
|
||||
} Normal3_Unk20;
|
||||
|
||||
typedef struct {
|
||||
f32 unk_00;
|
||||
f32 unk_04; // distance
|
||||
f32 unk_08;
|
||||
f32 unk_0C;
|
||||
f32 unk_10;
|
||||
f32 unk_14; // fov
|
||||
f32 unk_18;
|
||||
s16 unk_1C; // theta
|
||||
s16 unk_1E;
|
||||
Normal3_Unk20 unk_20;
|
||||
} Normal3;
|
||||
|
||||
typedef union {
|
||||
char data[0x50];
|
||||
s16 sh[2];
|
||||
s32 w;
|
||||
f32 f;
|
||||
DoorCamera doorCam;
|
||||
Special0 spec0;
|
||||
Demo1 demo1;
|
||||
Normal3 normal3;
|
||||
} camera_unk_00;
|
||||
|
||||
typedef struct {
|
||||
Vec3s unk_00;
|
||||
Vec3s unk_06;
|
||||
s16 unk_0C;
|
||||
s16 unk_0E;
|
||||
} struct_80041C10_ret;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ camera_unk_00 unk_00;
|
||||
/* 0x0050 */ Vec3f at;
|
||||
/* 0x005C */ Vec3f eye;
|
||||
/* 0x0068 */ Vec3f unk_68;
|
||||
/* 0x0074 */ Vec3f eyeNext;
|
||||
/* 0x0080 */ Vec3f unk_80;
|
||||
/* 0x008C */ struct GlobalContext* globalCtx;
|
||||
/* 0x0090 */ Player* player;
|
||||
/* 0x0094 */ PosRot playerPosRot;
|
||||
/* 0x00A8 */ Actor* target;
|
||||
/* 0x00AC */ PosRot targetPosRot;
|
||||
/* 0x00C0 */ Vec3f unk_C0; // has to do with how quickly the camera rotates link.
|
||||
/* 0x00CC */ Vec3f unk_CC; // has to do with how quickly the camera zooms
|
||||
/* 0x00D8 */ f32 unk_D8;
|
||||
/* 0x00DC */ f32 dist; // possibly a Vec3f
|
||||
/* 0x00E0 */ f32 unk_E0;
|
||||
/* 0x00E4 */ Vec3f unk_E4;
|
||||
/* 0x00F0 */ Vec3f unk_F0;
|
||||
/* 0x00FC */ f32 fov;
|
||||
/* 0x0100 */ f32 unk_100; // update rate of distance from link?
|
||||
/* 0x0104 */ f32 unk_104;
|
||||
/* 0x0108 */ Vec3f unk_108;
|
||||
/* 0x0114 */ char unk_114[0x4];
|
||||
/* 0x0118 */ s32 unk_118;
|
||||
/* 0x011C */ s32 unk_11C;
|
||||
/* 0x0120 */ char unk_120[0x4];
|
||||
/* 0x0124 */ CutsceneCameraPoint* atPoints;
|
||||
/* 0x0128 */ CutsceneCameraPoint* eyePoints;
|
||||
/* 0x012C */ s16 relativeToPlayer; // camera Cutscene points are relative to player's position
|
||||
/* 0x012E */ s16 unk_12E;
|
||||
/* 0x0130 */ s16 uid; // Unique identifier of the camera.
|
||||
/* 0x0132 */ char unk_132[0x02];
|
||||
/* 0x0134 */ Vec3s unk_134;
|
||||
/* 0x013A */ Vec3s unk_13A; // seems to be a copy of unk_134, but unused for anything different?
|
||||
/* 0x0140 */ s16 status;
|
||||
/* 0x0142 */ s16 setting; // referred to as set
|
||||
/* 0x0144 */ s16 mode;
|
||||
/* 0x0146 */ s16 unk_146; // unknown if used
|
||||
/* 0x0148 */ s16 unk_148; // ID for door camera? (see func_8005AD40)
|
||||
/* 0x014A */ s16 unk_14A; // unknown if used
|
||||
/* 0x014C */ s16 unk_14C;
|
||||
/* 0x014E */ s16 unk_14E;
|
||||
/* 0x0150 */ s16 unk_150; // unknown if used
|
||||
/* 0x0152 */ s16 unk_152;
|
||||
/* 0x0154 */ u16 unk_154; // appears to be some clone of setting?
|
||||
/* 0x0156 */ s16 unk_156;
|
||||
/* 0x0158 */ s16 unk_158; // unknown if used
|
||||
/* 0x015A */ s16 roll;
|
||||
/* 0x015C */ s16 unk_15C; // unknown if used
|
||||
/* 0x015E */ s16 unk_15E;
|
||||
/* 0x0160 */ s16 unk_160;
|
||||
/* 0x0162 */ s16 unk_162;
|
||||
/* 0x0164 */ s16 unk_164;
|
||||
/* 0x0166 */ s16 unk_166; // unknown if used
|
||||
/* 0x0168 */ s16 unk_168;
|
||||
/* 0x016A */ s16 unk_16A; // unknown if used
|
||||
} Camera; // size = 0x16C
|
||||
|
||||
typedef struct {
|
||||
s32 unk_00;
|
||||
char unk_04[0x30];
|
||||
s32 unk_34;
|
||||
s32 unk_38;
|
||||
s32 unk_3C;
|
||||
s32 unk_40;
|
||||
s32 unk_44;
|
||||
f32 unk_48;
|
||||
s16 unk_4C;
|
||||
f32 unk_50;
|
||||
char unk_54[0x18];
|
||||
f32 unk_6C;
|
||||
f32 unk_70;
|
||||
f32 unk_74;
|
||||
s16 unk_78;
|
||||
s16 unk_7A;
|
||||
s16 unk_7C;
|
||||
s16 unk_7E;
|
||||
s16 unk_80;
|
||||
s16 unk_82;
|
||||
s16 unk_84;
|
||||
s16 unk_86;
|
||||
char unk_88[0x1038];
|
||||
s16 unk_10C0;
|
||||
s16 unk_10C2;
|
||||
s16 unk_10C4;
|
||||
s16 unk_10C6;
|
||||
s16 unk_10C8;
|
||||
s16 unk_10CA;
|
||||
} DbgCamera; // size = 0x10CC;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 seqIndex;
|
||||
/* 0x01 */ u8 nightSeqIndex;
|
||||
@@ -360,7 +191,8 @@ typedef struct {
|
||||
typedef struct {
|
||||
/* 0x00 */ char unk_00[0x2];
|
||||
/* 0x02 */ s16 unk_02;
|
||||
/* 0x04 */ char unk_04[0xC];
|
||||
/* 0x04 */ char unk_04[0x8];
|
||||
/* 0x0C */ u32 unk_0C;
|
||||
} WaterBox; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
@@ -1723,13 +1555,13 @@ typedef struct {
|
||||
} ShakeInfo; // size = 0x1E
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f vec1;
|
||||
/* 0x0C */ Vec3f vec2;
|
||||
/* 0x00 */ Vec3f atOffset;
|
||||
/* 0x0C */ Vec3f eyeOffset;
|
||||
/* 0x18 */ s16 rotZ;
|
||||
/* 0x1A */ s16 unk_1A;
|
||||
/* 0x1C */ s16 zoom;
|
||||
/* 0x20 */ f32 unk_20;
|
||||
} UnkQuakeCalcStruct; // size = 0x24
|
||||
} QuakeCamCalc; // size = 0x24
|
||||
|
||||
|
||||
#define UCODE_NULL 0
|
||||
|
||||
@@ -0,0 +1,950 @@
|
||||
#ifndef _Z64CAMERA_H_
|
||||
#define _Z64CAMERA_H_
|
||||
|
||||
#include <ultra64.h>
|
||||
#include <z64cutscene.h>
|
||||
|
||||
#define CAM_STAT_CUT 0
|
||||
#define CAM_STAT_WAIT 1
|
||||
#define CAM_STAT_UNK3 3
|
||||
#define CAM_STAT_ACTIVE 7
|
||||
#define CAM_STAT_UNK100 0x100
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ CAM_SET_NONE,
|
||||
/* 0x01 */ CAM_SET_NORMAL0,
|
||||
/* 0x02 */ CAM_SET_NORMAL1,
|
||||
/* 0x03 */ CAM_SET_DUNGEON0,
|
||||
/* 0x04 */ CAM_SET_DUNGEON1,
|
||||
/* 0x05 */ CAM_SET_NORMAL3,
|
||||
/* 0x06 */ CAM_SET_HORSE0,
|
||||
/* 0x07 */ CAM_SET_BOSS_GOMA,
|
||||
/* 0x08 */ CAM_SET_BOSS_DODO,
|
||||
/* 0x09 */ CAM_SET_BOSS_BARI,
|
||||
/* 0x0A */ CAM_SET_BOSS_FGANON,
|
||||
/* 0x0B */ CAM_SET_BOSS_BAL,
|
||||
/* 0x0C */ CAM_SET_BOSS_SHADES,
|
||||
/* 0x0D */ CAM_SET_BOSS_MOFA,
|
||||
/* 0x0E */ CAM_SET_TWIN0,
|
||||
/* 0x0F */ CAM_SET_TWIN1,
|
||||
/* 0x10 */ CAM_SET_BOSS_GANON1,
|
||||
/* 0x11 */ CAM_SET_BOSS_GANON2,
|
||||
/* 0x12 */ CAM_SET_TOWER0,
|
||||
/* 0x13 */ CAM_SET_TOWER1,
|
||||
/* 0x14 */ CAM_SET_FIXED0,
|
||||
/* 0x15 */ CAM_SET_FIXED1,
|
||||
/* 0x16 */ CAM_SET_CIRCLE0,
|
||||
/* 0x17 */ CAM_SET_CIRCLE2,
|
||||
/* 0x18 */ CAM_SET_CIRCLE3,
|
||||
/* 0x19 */ CAM_SET_PREREND0,
|
||||
/* 0x1A */ CAM_SET_PREREND1,
|
||||
/* 0x1B */ CAM_SET_PREREND3,
|
||||
/* 0x1C */ CAM_SET_DOOR0,
|
||||
/* 0x1D */ CAM_SET_DOORC,
|
||||
/* 0x1E */ CAM_SET_RAIL3,
|
||||
/* 0x1F */ CAM_SET_START0,
|
||||
/* 0x20 */ CAM_SET_START1,
|
||||
/* 0x21 */ CAM_SET_FREE0,
|
||||
/* 0x22 */ CAM_SET_FREE2,
|
||||
/* 0x23 */ CAM_SET_CIRCLE4,
|
||||
/* 0x24 */ CAM_SET_CIRCLE5,
|
||||
/* 0x25 */ CAM_SET_DEMO0,
|
||||
/* 0x26 */ CAM_SET_DEMO1,
|
||||
/* 0x27 */ CAM_SET_MORI1,
|
||||
/* 0x28 */ CAM_SET_ITEM0,
|
||||
/* 0x29 */ CAM_SET_ITEM1,
|
||||
/* 0x2A */ CAM_SET_DEMO3,
|
||||
/* 0x2B */ CAM_SET_DEMO4,
|
||||
/* 0x2C */ CAM_SET_UFOBEAN,
|
||||
/* 0x2D */ CAM_SET_LIFTBEAN,
|
||||
/* 0x2E */ CAM_SET_SCENE0,
|
||||
/* 0x2F */ CAM_SET_SCENE1,
|
||||
/* 0x30 */ CAM_SET_HIDAN1,
|
||||
/* 0x31 */ CAM_SET_HIDAN2,
|
||||
/* 0x32 */ CAM_SET_MORI2,
|
||||
/* 0x33 */ CAM_SET_MORI3,
|
||||
/* 0x34 */ CAM_SET_TAKO,
|
||||
/* 0x35 */ CAM_SET_SPOT05A,
|
||||
/* 0x36 */ CAM_SET_SPOT05B,
|
||||
/* 0x37 */ CAM_SET_HIDAN3,
|
||||
/* 0x38 */ CAM_SET_ITEM2,
|
||||
/* 0x39 */ CAM_SET_CIRCLE6,
|
||||
/* 0x3A */ CAM_SET_NORMAL2,
|
||||
/* 0x3B */ CAM_SET_FISHING,
|
||||
/* 0x3C */ CAM_SET_DEMOC,
|
||||
/* 0x3D */ CAM_SET_UO_FIBER,
|
||||
/* 0x3E */ CAM_SET_DUNGEON2,
|
||||
/* 0x3F */ CAM_SET_TEPPEN,
|
||||
/* 0x40 */ CAM_SET_CIRCLE7,
|
||||
/* 0x41 */ CAM_SET_NORMAL4,
|
||||
/* 0x42 */ CAM_SET_MAX
|
||||
} CameraSettingType;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ CAM_MODE_NORMAL,
|
||||
/* 0x01 */ CAM_MODE_TARGET, // Original: CAM_MODE_PARALLEL
|
||||
/* 0x02 */ CAM_MODE_FOLLOWTARGET, // Original: CAM_MODE_KEEPON
|
||||
/* 0x03 */ CAM_MODE_TALK,
|
||||
/* 0x04 */ CAM_MODE_BATTLE,
|
||||
/* 0x05 */ CAM_MODE_CLIMB,
|
||||
/* 0x06 */ CAM_MODE_FIRSTPERSON, // Original: CAM_MODE_SUBJECT
|
||||
/* 0x07 */ CAM_MODE_BOWARROW,
|
||||
/* 0x08 */ CAM_MODE_BOWARROWZ,
|
||||
/* 0x09 */ CAM_MODE_FOOKSHOT,
|
||||
/* 0x0A */ CAM_MODE_BOOMERANG,
|
||||
/* 0x0B */ CAM_MODE_SLINGSHOT, // Original: CasdfsAM_MODE_PACHINCO
|
||||
/* 0x0C */ CAM_MODE_CLIMBZ,
|
||||
/* 0x0D */ CAM_MODE_JUMP,
|
||||
/* 0x0E */ CAM_MODE_HANG,
|
||||
/* 0x0F */ CAM_MODE_HANGZ,
|
||||
/* 0x10 */ CAM_MODE_FREEFALL,
|
||||
/* 0x11 */ CAM_MODE_CHARGE,
|
||||
/* 0x12 */ CAM_MODE_STILL,
|
||||
/* 0x13 */ CAM_MODE_PUSHPULL,
|
||||
/* 0x14 */ CAM_MODE_BOOMFOLLLOW, // Original: CAM_MODE_BOOKEEPON
|
||||
/* 0x15 */ CAM_MODE_MAX
|
||||
} CameraModeType;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ CAM_FUNC_NONE,
|
||||
/* 0x01 */ CAM_FUNC_NORM0,
|
||||
/* 0x02 */ CAM_FUNC_NORM1,
|
||||
/* 0x03 */ CAM_FUNC_NORM2,
|
||||
/* 0x04 */ CAM_FUNC_NORM3,
|
||||
/* 0x05 */ CAM_FUNC_NORM4,
|
||||
/* 0x06 */ CAM_FUNC_PARA0,
|
||||
/* 0x07 */ CAM_FUNC_PARA1,
|
||||
/* 0x08 */ CAM_FUNC_PARA2,
|
||||
/* 0x09 */ CAM_FUNC_PARA3,
|
||||
/* 0x0A */ CAM_FUNC_PARA4,
|
||||
/* 0x0B */ CAM_FUNC_KEEP0,
|
||||
/* 0x0C */ CAM_FUNC_KEEP1,
|
||||
/* 0x0D */ CAM_FUNC_KEEP2,
|
||||
/* 0x0E */ CAM_FUNC_KEEP3,
|
||||
/* 0x0F */ CAM_FUNC_KEEP4,
|
||||
/* 0x10 */ CAM_FUNC_SUBJ0,
|
||||
/* 0x11 */ CAM_FUNC_SUBJ1,
|
||||
/* 0x12 */ CAM_FUNC_SUBJ2,
|
||||
/* 0x13 */ CAM_FUNC_SUBJ3,
|
||||
/* 0x14 */ CAM_FUNC_SUBJ4,
|
||||
/* 0x15 */ CAM_FUNC_JUMP0,
|
||||
/* 0x16 */ CAM_FUNC_JUMP1,
|
||||
/* 0x17 */ CAM_FUNC_JUMP2,
|
||||
/* 0x18 */ CAM_FUNC_JUMP3,
|
||||
/* 0x19 */ CAM_FUNC_JUMP4,
|
||||
/* 0x1A */ CAM_FUNC_BATT0,
|
||||
/* 0x1B */ CAM_FUNC_BATT1,
|
||||
/* 0x1C */ CAM_FUNC_BATT2,
|
||||
/* 0x1D */ CAM_FUNC_BATT3,
|
||||
/* 0x1E */ CAM_FUNC_BATT4,
|
||||
/* 0x1F */ CAM_FUNC_FIXD0,
|
||||
/* 0x20 */ CAM_FUNC_FIXD1,
|
||||
/* 0x21 */ CAM_FUNC_FIXD2,
|
||||
/* 0x22 */ CAM_FUNC_FIXD3,
|
||||
/* 0x23 */ CAM_FUNC_FIXD4,
|
||||
/* 0x24 */ CAM_FUNC_DATA0,
|
||||
/* 0x25 */ CAM_FUNC_DATA1,
|
||||
/* 0x26 */ CAM_FUNC_DATA2,
|
||||
/* 0x27 */ CAM_FUNC_DATA3,
|
||||
/* 0x28 */ CAM_FUNC_DATA4,
|
||||
/* 0x29 */ CAM_FUNC_UNIQ0,
|
||||
/* 0x2A */ CAM_FUNC_UNIQ1,
|
||||
/* 0x2B */ CAM_FUNC_UNIQ2,
|
||||
/* 0x2C */ CAM_FUNC_UNIQ3,
|
||||
/* 0x2D */ CAM_FUNC_UNIQ4,
|
||||
/* 0x2E */ CAM_FUNC_UNIQ5,
|
||||
/* 0x2F */ CAM_FUNC_UNIQ6,
|
||||
/* 0x30 */ CAM_FUNC_UNIQ7,
|
||||
/* 0x31 */ CAM_FUNC_UNIQ8,
|
||||
/* 0x32 */ CAM_FUNC_UNIQ9,
|
||||
/* 0x33 */ CAM_FUNC_DEMO0,
|
||||
/* 0x34 */ CAM_FUNC_DEMO1,
|
||||
/* 0x35 */ CAM_FUNC_DEMO2,
|
||||
/* 0x36 */ CAM_FUNC_DEMO3,
|
||||
/* 0x37 */ CAM_FUNC_DEMO4,
|
||||
/* 0x38 */ CAM_FUNC_DEMO5,
|
||||
/* 0x39 */ CAM_FUNC_DEMO6,
|
||||
/* 0x3A */ CAM_FUNC_DEMO7,
|
||||
/* 0x3B */ CAM_FUNC_DEMO8,
|
||||
/* 0x3C */ CAM_FUNC_DEMO9,
|
||||
/* 0x3D */ CAM_FUNC_SPEC0,
|
||||
/* 0x3E */ CAM_FUNC_SPEC1,
|
||||
/* 0x3F */ CAM_FUNC_SPEC2,
|
||||
/* 0x40 */ CAM_FUNC_SPEC3,
|
||||
/* 0x41 */ CAM_FUNC_SPEC4,
|
||||
/* 0x42 */ CAM_FUNC_SPEC5,
|
||||
/* 0x43 */ CAM_FUNC_SPEC6,
|
||||
/* 0x44 */ CAM_FUNC_SPEC7,
|
||||
/* 0x45 */ CAM_FUNC_SPEC8,
|
||||
/* 0x46 */ CAM_FUNC_SPEC9,
|
||||
/* 0x47 */ CAM_FUNC_MAX
|
||||
} CameraFuncType;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Vec3f collisionClosePoint;
|
||||
/* 0x000C */ CollisionPoly* atEyePoly;
|
||||
/* 0x0010 */ f32 swingUpdateRate;
|
||||
/* 0x0014 */ s16 unk_14;
|
||||
/* 0x0016 */ s16 unk_16;
|
||||
/* 0x0018 */ s16 unk_18;
|
||||
/* 0x001A */ s16 swingUpdateRateTimer;
|
||||
} SwingAnimation; // size = 0x1C
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ SwingAnimation swing;
|
||||
/* 0x001C */ f32 yOffset;
|
||||
/* 0x0020 */ f32 unk_20;
|
||||
/* 0x0024 */ s16 slopePitchAdj;
|
||||
/* 0x0026 */ s16 swingYawTarget;
|
||||
/* 0x0028 */ s16 unk_28;
|
||||
/* 0x002A */ s16 startSwingTimer;
|
||||
} Normal1Anim; // size = 0x2C
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 distMin;
|
||||
/* 0x0008 */ f32 distMax;
|
||||
/* 0x000C */ f32 unk_0C;
|
||||
/* 0x0010 */ f32 unk_10;
|
||||
/* 0x0014 */ f32 unk_14;
|
||||
/* 0x0018 */ f32 fovTarget;
|
||||
/* 0x001C */ f32 atLERPScaleMax;
|
||||
/* 0x0020 */ s16 pitchTarget;
|
||||
/* 0x0022 */ s16 interfaceFlags;
|
||||
/* 0x0024 */ Normal1Anim anim;
|
||||
} Normal1; // size = 0x50
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Vec3f unk_00;
|
||||
/* 0x000C */ Vec3f unk_0C;
|
||||
/* 0x0018 */ f32 unk_18;
|
||||
/* 0x001C */ f32 unk_1C;
|
||||
/* 0x0020 */ s16 unk_20;
|
||||
/* 0x0022 */ s16 unk_22;
|
||||
/* 0x0024 */ f32 unk_24;
|
||||
/* 0x0028 */ s16 unk_28;
|
||||
} Normal2Anim; // size = 0x2A
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00;
|
||||
/* 0x0004 */ f32 unk_04;
|
||||
/* 0x0008 */ f32 unk_08;
|
||||
/* 0x000C */ f32 unk_0C;
|
||||
/* 0x0010 */ f32 unk_10;
|
||||
/* 0x0014 */ f32 unk_14;
|
||||
/* 0x0018 */ f32 unk_18;
|
||||
/* 0x001C */ s16 unk_1C;
|
||||
/* 0x001E */ s16 interfaceFlags;
|
||||
/* 0x0020 */ Normal2Anim anim;
|
||||
} Normal2; // size = 0x4A
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ SwingAnimation swing;
|
||||
/* 0x001C */ f32 unk_1C;
|
||||
/* 0x0020 */ f32 unk_20;
|
||||
/* 0x0024 */ s16 curPitch;
|
||||
/* 0x0026 */ s16 yawUpdAmt;
|
||||
/* 0x0028 */ s16 yawTimer;
|
||||
/* 0x002A */ s16 distTimer;
|
||||
} Normal3Anim; // size = 0x2C
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 distMin;
|
||||
/* 0x0008 */ f32 distMax;
|
||||
/* 0x000C */ f32 yawUpdateSpeed;
|
||||
/* 0x0010 */ f32 unk_10;
|
||||
/* 0x0014 */ f32 fovTarget;
|
||||
/* 0x0018 */ f32 maxAtLERPScale;
|
||||
/* 0x001C */ s16 pitchTarget;
|
||||
/* 0x001E */ s16 interfaceFlags;
|
||||
/* 0x0020 */ Normal3Anim anim;
|
||||
} Normal3; // size = 0x4C
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Vec3f unk_00;
|
||||
/* 0x000C */ f32 yTarget;
|
||||
/* 0x0010 */ s16 unk_10;
|
||||
/* 0x0012 */ s16 yawTarget;
|
||||
/* 0x0014 */ s16 pitchTarget;
|
||||
/* 0x0016 */ s16 unk_16;
|
||||
/* 0x0018 */ s16 animTimer;
|
||||
} Parallel1Anim; // size = 0x1A
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00;
|
||||
/* 0x0004 */ f32 distTarget;
|
||||
/* 0x0008 */ f32 unk_08;
|
||||
/* 0x000C */ f32 unk_0C;
|
||||
/* 0x0010 */ f32 fovTarget;
|
||||
/* 0x0014 */ f32 unk_14;
|
||||
/* 0x0018 */ f32 unk_18;
|
||||
/* 0x001C */ f32 unk_1C;
|
||||
/* 0x0020 */ s16 pitchTarget;
|
||||
/* 0x0022 */ s16 yawTarget;
|
||||
/* 0x0024 */ s16 interfaceFlags;
|
||||
/* 0x0028 */ Parallel1Anim anim;
|
||||
} Parallel1;
|
||||
|
||||
typedef struct {
|
||||
|
||||
/* 0x0000 */ SwingAnimation swing;
|
||||
/* 0x001C */ f32 unk_1C;
|
||||
/* 0x0020 */ VecSph unk_20;
|
||||
} Jump1Anim; // size = 0x28
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 atYOffset;
|
||||
/* 0x0004 */ f32 distMin;
|
||||
/* 0x0008 */ f32 distMax;
|
||||
/* 0x000C */ f32 yawUpateRateTarget;
|
||||
/* 0x0010 */ f32 maxYawUpdate;
|
||||
/* 0x0014 */ f32 unk_14; // never used.
|
||||
/* 0x0018 */ f32 atLERPScaleMax;
|
||||
/* 0x001C */ s16 interfaceFlags;
|
||||
/* 0x0020 */ Jump1Anim anim;
|
||||
} Jump1; // size 0x48
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 floorY;
|
||||
/* 0x0004 */ s16 yawTarget;
|
||||
/* 0x0006 */ s16 initYawDiff; // unused, set but not read.
|
||||
/* 0x0008 */ s16 yawAdj;
|
||||
/* 0x000A */ s16 onFloor; // unused, set but not read
|
||||
/* 0x000C */ s16 animTimer;
|
||||
} Jump2Anim; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 atYOffset;
|
||||
/* 0x0004 */ f32 minDist;
|
||||
/* 0x0008 */ f32 maxDist;
|
||||
/* 0x000C */ f32 minMaxDistFactor;
|
||||
/* 0x0010 */ f32 yawUpdRateTarget;
|
||||
/* 0x0014 */ f32 xzUpdRateTarget;
|
||||
/* 0x0018 */ f32 fovTarget;
|
||||
/* 0x001C */ f32 atLERPStepScale;
|
||||
/* 0x0020 */ s16 interfaceFlags;
|
||||
/* 0x0024 */ Jump2Anim anim;
|
||||
} Jump2; // size = 0x34
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ SwingAnimation swing;
|
||||
/* 0x001C */ f32 unk_1C;
|
||||
/* 0x0020 */ s16 animTimer;
|
||||
/* 0x0022 */ s16 mode;
|
||||
} Jump3Anim; // size = 0x24
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 distMin;
|
||||
/* 0x0008 */ f32 distMax;
|
||||
/* 0x000C */ f32 swingUpdateRate;
|
||||
/* 0x0010 */ f32 unk_10;
|
||||
/* 0x0014 */ f32 unk_14;
|
||||
/* 0x0018 */ f32 fovTarget;
|
||||
/* 0x001C */ f32 unk_1C;
|
||||
/* 0x0020 */ s16 pitchTarget;
|
||||
/* 0x0022 */ s16 interfaceFlags;
|
||||
/* 0x0024 */ Jump3Anim anim;
|
||||
} Jump3; // size = 0x48
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 initialEyeToAtDist;
|
||||
/* 0x0004 */ f32 roll;
|
||||
/* 0x0008 */ f32 yPosOffset;
|
||||
/* 0x000C */ Actor* target;
|
||||
/* 0x0010 */ f32 unk_10;
|
||||
/* 0x0014 */ s16 unk_14; // unused
|
||||
/* 0x0016 */ s16 initialEyeToAtYaw;
|
||||
/* 0x0018 */ s16 initialEyeToAtPitch;
|
||||
/* 0x001A */ s16 animTimer;
|
||||
/* 0x001C */ s16 chargeTimer;
|
||||
} Battle1Anim; // size = 0x1E
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 distance;
|
||||
/* 0x0008 */ f32 swingYawInitial;
|
||||
/* 0x000C */ f32 swingYawFinal;
|
||||
/* 0x0010 */ f32 swingPitchInitial;
|
||||
/* 0x0014 */ f32 swingPitchFinal;
|
||||
/* 0x0018 */ f32 swingPitchAdj;
|
||||
/* 0x001C */ f32 fov;
|
||||
/* 0x0020 */ f32 atLERPScaleOnGround;
|
||||
/* 0x0024 */ f32 yOffsetOffGround;
|
||||
/* 0x0028 */ f32 atLERPScaleOffGround;
|
||||
/* 0x002C */ s16 flags;
|
||||
/* 0x0030 */ Battle1Anim anim;
|
||||
} Battle1; // size = 0x50
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 animTimer;
|
||||
} Battle4Anim; // size = 0x2
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 rTarget;
|
||||
/* 0x0008 */ s16 pitchTarget;
|
||||
/* 0x000C */ f32 lerpUpdateRate;
|
||||
/* 0x0010 */ f32 fovTarget;
|
||||
/* 0x0014 */ f32 atLERPTarget;
|
||||
/* 0x0018 */ s16 interfaceFlags;
|
||||
/* 0x001A */ s16 unk_1A;
|
||||
/* 0x001C */ Battle4Anim anim;
|
||||
} Battle4; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00;
|
||||
/* 0x0004 */ f32 unk_04;
|
||||
/* 0x0008 */ f32 unk_08;
|
||||
/* 0x000C */ Actor* unk_0C;
|
||||
/* 0x0010 */ s16 unk_10;
|
||||
/* 0x0012 */ s16 unk_12;
|
||||
/* 0x0014 */ s16 unk_14;
|
||||
/* 0x0016 */ s16 unk_16;
|
||||
} Keep1Anim; // size = 0x18
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00;
|
||||
/* 0x0004 */ f32 unk_04;
|
||||
/* 0x0008 */ f32 unk_08;
|
||||
/* 0x000C */ f32 unk_0C;
|
||||
/* 0x0010 */ f32 unk_10;
|
||||
/* 0x0014 */ f32 unk_14;
|
||||
/* 0x0018 */ f32 unk_18;
|
||||
/* 0x001C */ f32 unk_1C;
|
||||
/* 0x0020 */ f32 unk_20;
|
||||
/* 0x0024 */ f32 unk_24;
|
||||
/* 0x0028 */ f32 unk_28;
|
||||
/* 0x002C */ f32 unk_2C;
|
||||
/* 0x0030 */ s16 interfaceFlags;
|
||||
/* 0x0034 */ Keep1Anim anim;
|
||||
} KeepOn1; // size = 0x4C
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Vec3f eyeToAtTarget; // esentially a VecSph, but all floats.
|
||||
/* 0x000C */ Actor* target;
|
||||
/* 0x0010 */ Vec3f atTarget;
|
||||
/* 0x001C */ s16 animTimer;
|
||||
} Keep3Anim; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 minDist;
|
||||
/* 0x0008 */ f32 maxDist;
|
||||
/* 0x000C */ f32 swingYawInital;
|
||||
/* 0x0010 */ f32 swingYawFinal;
|
||||
/* 0x0014 */ f32 swingPitchInitial;
|
||||
/* 0x0018 */ f32 swingPitchFinal;
|
||||
/* 0x001C */ f32 swingPitchAdj;
|
||||
/* 0x0020 */ f32 fovTarget;
|
||||
/* 0x0024 */ f32 atLERPScaleMax;
|
||||
/* 0x0028 */ s16 initTimer;
|
||||
/* 0x002A */ s16 flags;
|
||||
/* 0x002C */ Keep3Anim anim;
|
||||
} KeepOn3; // size = 0x4C
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00;
|
||||
/* 0x0004 */ f32 unk_04;
|
||||
/* 0x0008 */ f32 unk_08;
|
||||
/* 0x000C */ s16 unk_0C;
|
||||
/* 0x000E */ s16 unk_0E;
|
||||
/* 0x0010 */ s16 unk_10;
|
||||
/* 0x0012 */ s16 unk_12;
|
||||
/* 0x0014 */ s16 unk_14;
|
||||
} KeepOn4_Unk20; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00;
|
||||
/* 0x0004 */ f32 unk_04;
|
||||
/* 0x0008 */ f32 unk_08;
|
||||
/* 0x000C */ f32 unk_0C;
|
||||
/* 0x0010 */ f32 unk_10;
|
||||
/* 0x0014 */ f32 unk_14;
|
||||
/* 0x0018 */ f32 unk_18;
|
||||
/* 0x001C */ s16 unk_1C;
|
||||
/* 0x001E */ s16 unk_1E;
|
||||
/* 0x0020 */ KeepOn4_Unk20 unk_20;
|
||||
} KeepOn4; // size = 0x34
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 fovTarget;
|
||||
/* 0x0004 */ s16 animTimer;
|
||||
} KeepOn0Anim; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 fovScale;
|
||||
/* 0x0004 */ f32 yawScale;
|
||||
/* 0x0008 */ s16 timerInit;
|
||||
/* 0x000A */ s16 interfaceFlags;
|
||||
/* 0x000C */ KeepOn0Anim anim;
|
||||
} KeepOn0; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ PosRot eyePosRotTarget;
|
||||
/* 0x0014 */ s16 fov;
|
||||
} Fixed1Anim; // size = 0x18
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00; // seems to be unused?
|
||||
/* 0x0004 */ f32 lerpStep;
|
||||
/* 0x0008 */ f32 fov;
|
||||
/* 0x000C */ s16 interfaceFlags;
|
||||
/* 0x0010 */ Fixed1Anim anim;
|
||||
} Fixed1; // size = 0x28
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Vec3f eye;
|
||||
/* 0x000C */ s16 fov;
|
||||
} Fixed2InitParams; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 eyeStepScale;
|
||||
/* 0x0008 */ f32 posStepScale;
|
||||
/* 0x000C */ f32 fov;
|
||||
/* 0x0010 */ s16 interfaceFlags;
|
||||
/* 0x0014 */ Fixed2InitParams initParams;
|
||||
} Fixed2; // size = 0x24
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Vec3s rot;
|
||||
/* 0x0006 */ s16 fov;
|
||||
/* 0x0008 */ s16 updDirTimer;
|
||||
/* 0x000A */ s16 jfifId;
|
||||
} Fixed3Anim; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ s16 interfaceFlags;
|
||||
/* 0x0004 */ Fixed3Anim anim;
|
||||
} Fixed3; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Vec3f eyeTarget;
|
||||
/* 0x000C */ f32 followSpeed;
|
||||
} Fixed4Anim; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 speedToEyePos;
|
||||
/* 0x0008 */ f32 followSpeed;
|
||||
/* 0x000C */ f32 fov;
|
||||
/* 0x0010 */ s16 interfaceFlags;
|
||||
/* 0x0014 */ Fixed4Anim anim;
|
||||
} Fixed4; // size = 0x24
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 r;
|
||||
/* 0x0004 */ s16 yaw;
|
||||
/* 0x0006 */ s16 pitch;
|
||||
/* 0x0008 */ s16 animTimer;
|
||||
} Subj3Anim; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 eyeNextYOffset;
|
||||
/* 0x0004 */ f32 eyeDist;
|
||||
/* 0x0008 */ f32 eyeNextDist;
|
||||
/* 0x000C */ f32 unk_0C; // unused
|
||||
/* 0x0010 */ Vec3f atOffset;
|
||||
/* 0x001C */ f32 fovTarget;
|
||||
/* 0x0020 */ s16 interfaceFlags;
|
||||
/* 0x0024 */ Subj3Anim anim;
|
||||
} Subj3; // size = 0x30
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Linef unk_00;
|
||||
/* 0x0018 */ f32 unk_18;
|
||||
/* 0x001C */ f32 unk_1C;
|
||||
/* 0x0020 */ f32 unk_20;
|
||||
/* 0x0024 */ f32 unk_24;
|
||||
/* 0x0028 */ f32 unk_28;
|
||||
/* 0x002C */ s16 unk_2C;
|
||||
/* 0x002E */ s16 unk_2E;
|
||||
/* 0x0030 */ s16 unk_30;
|
||||
/* 0x0032 */ s16 unk_32;
|
||||
} Subj4Anim; // size = 0x34
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 interfaceFlags;
|
||||
/* 0x0004 */ Subj4Anim anim;
|
||||
} Subj4; // size = 0x38
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ PosRot eyePosRot;
|
||||
/* 0x0014 */ char unk_14[0x8];
|
||||
/* 0x001C */ s16 fov;
|
||||
/* 0x001E */ s16 jfifId;
|
||||
} Data4InitParams; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 fov;
|
||||
/* 0x0008 */ s16 interfaceFlags;
|
||||
/* 0x000C */ Data4InitParams initParams;
|
||||
} Data4; // size = 0x2C
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00; // unused
|
||||
/* 0x0004 */ s16 yawTarget;
|
||||
/* 0x0006 */ s16 yawTargetAdj;
|
||||
/* 0x0008 */ s16 timer;
|
||||
} Unique1Anim; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 distMin;
|
||||
/* 0x0008 */ f32 distMax;
|
||||
/* 0x000C */ char unk_0C[4]; // unused
|
||||
/* 0x0010 */ f32 fovTarget;
|
||||
/* 0x0014 */ f32 atLERPScaleMax;
|
||||
/* 0x0018 */ s16 pitchTarget;
|
||||
/* 0x001A */ s16 interfaceFlags;
|
||||
/* 0x001C */ Unique1Anim anim;
|
||||
} Unique1; // size = 0x28
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 unk_00;
|
||||
/* 0x0004 */ s16 unk_04;
|
||||
} Unique2Unk10; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 distTarget;
|
||||
/* 0x0008 */ f32 fovTarget;
|
||||
/* 0x000C */ s16 interfaceFlags;
|
||||
/* 0x0010 */ Unique2Unk10 unk_10; // unused, values set but not read.
|
||||
} Unique2; // size = 0x18
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 initialFov;
|
||||
/* 0x0004 */ f32 initialDist;
|
||||
} Unique3Anim; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 fov;
|
||||
/* 0x0008 */ s16 interfaceFlags;
|
||||
} Unique3Params; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ struct Actor* doorActor;
|
||||
/* 0x0004 */ s16 camDataIdx;
|
||||
/* 0x0006 */ s16 timer1;
|
||||
/* 0x0008 */ s16 timer2;
|
||||
/* 0x000A */ s16 timer3;
|
||||
} DoorParams; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ DoorParams doorParams;
|
||||
/* 0x000C */ Unique3Params params;
|
||||
/* 0x0018 */ Unique3Anim anim;
|
||||
} Unique3; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Vec3f initalPos;
|
||||
/* 0x000C */ s16 animTimer;
|
||||
/* 0x0010 */ Linef sceneCamPosPlayerLine;
|
||||
} Unique0Anim; // size = 0x28
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 interfaceFlags;
|
||||
/* 0x0004 */ Unique0Anim anim;
|
||||
} Unique0Params; // size = 0x2C
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ DoorParams doorParams;
|
||||
/* 0x000C */ Unique0Params uniq0;
|
||||
} Unique0; // size = 0x38
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 interfaceFlags;
|
||||
} Unique6; // size = 0x4
|
||||
|
||||
typedef union {
|
||||
/* 0x0000 */ Vec3s unk_00;
|
||||
} Unique7Unk8; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 fov;
|
||||
/* 0x0004 */ s16 interfaceFlags;
|
||||
/* 0x0006 */ s16 align;
|
||||
// unk_08 goes unused.
|
||||
/* 0x0008 */ Unique7Unk8 unk_08;
|
||||
} Unique7; // size = 0x10
|
||||
|
||||
/** initFlags
|
||||
* & 0x00FF = atInitFlags
|
||||
* & 0xFF00 = eyeInitFlags
|
||||
* 0x1: Direct Copy of atTargetInit
|
||||
* if initFlags & 0x6060: use posRot2 for focus point
|
||||
* 0x2: Add atTargetInit to view's lookAt
|
||||
* if initFlags & 0x6060: use posRot for focus point
|
||||
* 0x3: Add atTargetInit to camera's at
|
||||
* 0x4: Don't update targets?
|
||||
* 0x8: flag to use atTagetInit as f32 pitch, yaw, r
|
||||
* 0x10: ? unused
|
||||
* 0x20: focus on player
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x0000 */ u8 actionFlags;
|
||||
/* 0x0001 */ u8 unk_01;
|
||||
/* 0x0002 */ s16 initFlags;
|
||||
/* 0x0004 */ s16 timerInit;
|
||||
/* 0x0006 */ s16 rollTargetInit;
|
||||
/* 0x0008 */ f32 fovTargetInit;
|
||||
/* 0x000C */ f32 lerpStepScale;
|
||||
/* 0x0010 */ Vec3f atTargetInit;
|
||||
/* 0x001C */ Vec3f eyeTargetInit;
|
||||
} OnePointDemoFull; /* size = 0x28 */
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ OnePointDemoFull* curKeyFrame;
|
||||
/* 0x0004 */ Vec3f atTarget;
|
||||
/* 0x0010 */ Vec3f eyeTarget;
|
||||
/* 0x001C */ Vec3f playerPos;
|
||||
/* 0x0028 */ f32 fovTarget;
|
||||
/* 0x002C */ VecSph atEyeOffsetTarget;
|
||||
/* 0x0034 */ s16 rollTarget;
|
||||
/* 0x0036 */ s16 curKeyFrameIdx;
|
||||
/* 0x0038 */ s16 unk_38;
|
||||
/* 0x003A */ s16 isNewKeyFrame;
|
||||
/* 0x003C */ s16 keyFrameTimer;
|
||||
} Unique9Anim; // size = 0x3E
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 interfaceFlags;
|
||||
/* 0x0004 */ Unique9Anim anim;
|
||||
} Unique9; // size = 0x40
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s32 keyFrameCnt;
|
||||
/* 0x0004 */ OnePointDemoFull* keyFrames;
|
||||
/* 0x0008 */ Unique9 uniq9;
|
||||
} Unique9OnePointDemo; // size = 0x48
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 curFrame;
|
||||
/* 0x0004 */ s16 keyframe;
|
||||
} Demo1Anim; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 interfaceFlags;
|
||||
/* 0x0004 */ Demo1Anim anim;
|
||||
} Demo1; // size = 0x18
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Vec3f initialAt;
|
||||
/* 0x000C */ f32 unk_0C;
|
||||
/* 0x0010 */ s16 animFrame;
|
||||
/* 0x0012 */ s16 yawDir;
|
||||
} Demo3Anim; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 fov;
|
||||
/* 0x0004 */ f32 unk_04; // unused
|
||||
/* 0x0008 */ s16 interfaceFlags;
|
||||
/* 0x000C */ Demo3Anim anim;
|
||||
} Demo3; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 animTimer;
|
||||
/* 0x0004 */ Vec3f atTarget;
|
||||
} Demo6Anim; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 interfaceFlags;
|
||||
/* 0x0002 */ s16 unk_02;
|
||||
/* 0x0004 */ Demo6Anim anim;
|
||||
} Demo6; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 curFrame;
|
||||
/* 0x0004 */ s16 keyframe;
|
||||
/* 0x0006 */ s16 doLERPAt;
|
||||
/* 0x0008 */ s16 finishAction;
|
||||
/* 0x000A */ s16 animTimer;
|
||||
} Demo9Anim; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 interfaceFlags;
|
||||
/* 0x0004 */ Demo9Anim anim;
|
||||
} Demo9;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ CutsceneCameraPoint* atPoints;
|
||||
/* 0x0004 */ CutsceneCameraPoint* eyePoints;
|
||||
/* 0x0008 */ s16 actionParameters;
|
||||
/* 0x000A */ s16 initTimer;
|
||||
} OnePointDemoCamera; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ OnePointDemoCamera onePointDemo;
|
||||
/* 0x000C */ Demo9 demo9;
|
||||
} Demo9OnePointDemo; // size = 0x1C
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 lerpAtScale;
|
||||
/* 0x0004 */ s16 interfaceFlags;
|
||||
} Special0; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 initalTimer;
|
||||
} Special4; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 animTimer;
|
||||
} Special5Anim; // size = 0x2
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 eyeDist;
|
||||
/* 0x0008 */ f32 minDistForRot;
|
||||
/* 0x000C */ f32 fovTarget;
|
||||
/* 0x0010 */ f32 atMaxLERPScale;
|
||||
/* 0x0014 */ s16 timerInit;
|
||||
/* 0x0016 */ s16 pitch;
|
||||
/* 0x0018 */ s16 interfaceFlags;
|
||||
/* 0x001A */ s16 unk_1A;
|
||||
/* 0x001C */ Special5Anim anim;
|
||||
} Special5; // size = 0x20
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 idx;
|
||||
} Special7; // size = 0x4
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 initalPlayerY;
|
||||
/* 0x0004 */ s16 animTimer;
|
||||
} Special6Anim; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 interfaceFlags;
|
||||
/* 0x0004 */ Special6Anim anim;
|
||||
} Special6; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 targetYaw;
|
||||
} Special9Anim; // size = 0x2
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ f32 yOffset;
|
||||
/* 0x0004 */ f32 unk_04;
|
||||
/* 0x0008 */ s16 interfaceFlags;
|
||||
/* 0x000A */ s16 unk_0A;
|
||||
/* 0x000C */ Special9Anim anim;
|
||||
} Special9Params; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ DoorParams doorParams;
|
||||
/* 0x000C */ Special9Params params;
|
||||
} Special9; // size = 0x1C
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ Vec3f pos;
|
||||
/* 0x000C */ Vec3f norm;
|
||||
/* 0x0018 */ CollisionPoly* poly;
|
||||
/* 0x001C */ VecSph sphNorm;
|
||||
/* 0x0024 */ u32 bgId;
|
||||
} CamColChk; // size = 0x28
|
||||
|
||||
typedef struct {
|
||||
char paramData[0x50];
|
||||
/* 0x0050 */ Vec3f at;
|
||||
/* 0x005C */ Vec3f eye;
|
||||
/* 0x0068 */ Vec3f up;
|
||||
/* 0x0074 */ Vec3f eyeNext;
|
||||
/* 0x0080 */ Vec3f skyboxOffset;
|
||||
/* 0x008C */ struct GlobalContext* globalCtx;
|
||||
/* 0x0090 */ struct Player* player;
|
||||
/* 0x0094 */ PosRot playerPosRot;
|
||||
/* 0x00A8 */ struct Actor* target;
|
||||
/* 0x00AC */ PosRot targetPosRot;
|
||||
/* 0x00C0 */ f32 rUpdateRateInv;
|
||||
/* 0x00C4 */ f32 pitchUpdateRateInv;
|
||||
/* 0x00C8 */ f32 yawUpdateRateInv;
|
||||
/* 0x00CC */ f32 xzOffsetUpdateRate;
|
||||
/* 0x00D0 */ f32 yOffsetUpdateRate;
|
||||
/* 0x00D4 */ f32 fovUpdateRate;
|
||||
/* 0x00D8 */ f32 xzSpeed;
|
||||
/* 0x00DC */ f32 dist;
|
||||
/* 0x00E0 */ f32 speedRatio;
|
||||
/* 0x00E4 */ Vec3f posOffset;
|
||||
/* 0x00F0 */ Vec3f playerPosDelta;
|
||||
/* 0x00FC */ f32 fov;
|
||||
/* 0x0100 */ f32 atLERPStepScale;
|
||||
/* 0x0104 */ f32 playerGroundY;
|
||||
/* 0x0108 */ Vec3f floorNorm;
|
||||
/* 0x0114 */ f32 waterYPos;
|
||||
/* 0x0118 */ s32 waterPrevCamIdx;
|
||||
/* 0x011C */ s32 waterPrevCamSetting;
|
||||
/* 0x0120 */ s32 waterQuakeId;
|
||||
/* 0x0124 */ void* data0;
|
||||
/* 0x0128 */ void* data1;
|
||||
/* 0x012C */ s16 data2;
|
||||
/* 0x012E */ s16 data3;
|
||||
/* 0x0130 */ s16 uid;
|
||||
/* 0x0132 */ char unk_132[0x02];
|
||||
/* 0x0134 */ Vec3s inputDir;
|
||||
/* 0x013A */ Vec3s camDir;
|
||||
/* 0x0140 */ s16 status;
|
||||
/* 0x0142 */ s16 setting;
|
||||
/* 0x0144 */ s16 mode;
|
||||
/* 0x0146 */ s16 bgCheckId;
|
||||
/* 0x0148 */ s16 camDataIdx;
|
||||
/* 0x014A */ s16 unk_14A;
|
||||
/* 0x014C */ s16 unk_14C;
|
||||
/* 0x014E */ s16 childCamIdx;
|
||||
/* 0x0150 */ s16 unk_150;
|
||||
/* 0x0152 */ s16 unk_152;
|
||||
/* 0x0154 */ s16 prevSetting;
|
||||
/* 0x0156 */ s16 nextCamDataIdx;
|
||||
/* 0x0158 */ s16 nextBGCheckId;
|
||||
/* 0x015A */ s16 roll;
|
||||
/* 0x015C */ s16 paramFlags;
|
||||
/* 0x015E */ s16 animState;
|
||||
/* 0x0160 */ s16 timer;
|
||||
/* 0x0162 */ s16 parentCamIdx;
|
||||
/* 0x0164 */ s16 thisIdx;
|
||||
/* 0x0166 */ s16 prevCamDataIdx;
|
||||
/* 0x0168 */ s16 unk_168;
|
||||
/* 0x016A */ s16 unk_16A;
|
||||
} Camera; // size = 0x16C
|
||||
|
||||
/**
|
||||
* Debug Camera
|
||||
*/
|
||||
typedef struct {
|
||||
/* 0x0000 */ UNK_TYPE unk_00;
|
||||
/* 0x0004 */ Vec3f at;
|
||||
/* 0x0010 */ Vec3f eye;
|
||||
/* 0x001C */ Vec3f up;
|
||||
/* 0x0028 */ Vec3f unk_28;
|
||||
/* 0x0034 */ UNK_TYPE unk_34;
|
||||
/* 0x0038 */ UNK_TYPE unk_38;
|
||||
/* 0x003C */ UNK_TYPE unk_3C;
|
||||
/* 0x0040 */ UNK_TYPE unk_40;
|
||||
/* 0x0044 */ UNK_TYPE unk_44;
|
||||
/* 0x0048 */ f32 fov;
|
||||
/* 0x004C */ s16 unk_4C;
|
||||
/* 0x0050 */ f32 unk_50;
|
||||
/* 0x0054 */ Vec3f unk_54;
|
||||
/* 0x0054 */ Vec3f unk_60;
|
||||
/* 0x006C */ f32 unk_6C;
|
||||
/* 0x0070 */ f32 unk_70;
|
||||
/* 0x0074 */ f32 unk_74;
|
||||
/* 0x0078 */ s16 unk_78;
|
||||
/* 0x007A */ s16 unk_7A;
|
||||
/* 0x007C */ s16 unk_7C;
|
||||
/* 0x007E */ s16 unk_7E;
|
||||
/* 0x0080 */ s16 unk_80;
|
||||
/* 0x0082 */ s16 unk_82;
|
||||
/* 0x0084 */ s16 unk_84;
|
||||
/* 0x0086 */ s16 unk_86;
|
||||
/* 0x0088 */ s32 unk_88;
|
||||
/* 0x008A */ char unk_8C[0x1034];
|
||||
/* 0x10C0 */ Vec3s unk_10C0;
|
||||
/* 0x10C6 */ Vec3s unk_10C6;
|
||||
} DBCamera; // size = 0x10CC
|
||||
|
||||
#endif
|
||||
+19
-2
@@ -35,7 +35,6 @@ typedef struct {
|
||||
f32 radius;
|
||||
} Spheref; // size = 0x10
|
||||
|
||||
|
||||
typedef struct {
|
||||
Vec3f normal;
|
||||
f32 originDist;
|
||||
@@ -77,13 +76,31 @@ typedef struct {
|
||||
/* 0x06 */ s16 yaw; // azimuthal angle
|
||||
} VecSph; // size = 0x08
|
||||
|
||||
#define F32_LERP(v0,v1,t) ((1.0f - (t)) * (v0) + (t) * (v1))
|
||||
#define F32_LERPIMP(v0, v1, t) (v0 + ((v1 - v0) * t))
|
||||
#define F32_LERPIMPINV(v0, v1, t) ((v0) + (((v1) - (v0)) / (t)))
|
||||
#define BINANG_LERPIMP(v0, v1, t) ((v0) + (s16)(BINANG_SUB((v1), (v0)) * (t)))
|
||||
#define BINANG_LERPIMPINV(v0, v1, t) ((v0) + BINANG_SUB((v1), (v0)) / (t))
|
||||
|
||||
#define VEC3F_LERPIMPDST(dst, v0, v1, t){ \
|
||||
(dst)->x = (v0)->x + (((v1)->x - (v0)->x) * t); \
|
||||
(dst)->y = (v0)->y + (((v1)->y - (v0)->y) * t); \
|
||||
(dst)->z = (v0)->z + (((v1)->z - (v0)->z) * t); \
|
||||
}
|
||||
|
||||
#define IS_ZERO(f) (fabsf(f) < 0.008f)
|
||||
#define COLPOLY_NORM_FRAC (1.0f / 32767)
|
||||
#define BGCHECK_Y_MIN -32000.0f
|
||||
|
||||
/**
|
||||
* Trig macros
|
||||
*/
|
||||
#define DEGF_TO_BINANG(degreesf) ((s16)(degreesf * (65535.0f / 360.0f) + 0.5f))
|
||||
#define DEGF_TO_BINANG(degreesf) (s16)(degreesf * 182.04167f + 0.5f)
|
||||
#define RADF_TO_DEGF(radf) (radf * (180.0f / M_PI))
|
||||
#define DEGF_TO_RADF(degf) (degf * (M_PI / 180.0f))
|
||||
#define BINANG_ROT180(angle) ((s16)(angle - 0x7FFF))
|
||||
#define BINANG_SUB(a, b) ((s16)(a - b))
|
||||
#define DEG_TO_RAD(degrees) ((degrees) * (M_PI / 180.0f))
|
||||
#define BINANG_TO_DEGF(binang) ((f32)binang * (360.0001525f / 65535.0f))
|
||||
|
||||
#endif
|
||||
|
||||
+12
-12
@@ -282,10 +282,18 @@ typedef struct {
|
||||
} ColHeader;
|
||||
|
||||
typedef struct {
|
||||
s16 cameraSType; // 0x00
|
||||
s16 numCameras; // 0x02
|
||||
s32 camPosDataSeg; // 0x04
|
||||
} CamData;
|
||||
/* 0x0000 */ Vec3s pos;
|
||||
/* 0x0006 */ Vec3s rot;
|
||||
/* 0x000C */ s16 fov;
|
||||
/* 0x000E */ s16 jfifId;
|
||||
/* 0x0010 */ s16 unk_10;
|
||||
} CamPosData; // size = 0x12
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ s16 cameraSType;
|
||||
/* 0x0002 */ s16 numCameras;
|
||||
/* 0x0004 */ CamPosData* camPosDataSeg;
|
||||
} CamData; // size = 0x08
|
||||
|
||||
typedef struct {
|
||||
u32 unknown;
|
||||
@@ -300,14 +308,6 @@ typedef union {
|
||||
} CamData;
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
s16 posX, posY, posZ;
|
||||
s16 rotX, rotY, rotZ;
|
||||
s16 fov;
|
||||
s16 jfifId;
|
||||
s16 unk;
|
||||
} CamPosData;
|
||||
|
||||
/*
|
||||
typedef union {
|
||||
_CamPosData data;
|
||||
|
||||
Reference in New Issue
Block a user