#pragma once #include "ultra64/types.h" #include "z64camera.h" #include "z64math.h" struct SubQuakeRequest14 { /* 0x00 */ s16 unk_00; /* 0x02 */ s16 unk_02; /* 0x04 */ s16 unk_04; }; struct QuakeRequest { /* 0x00 */ s16 randIdx; /* 0x02 */ s16 countdownMax; /* 0x04 */ Camera* cam; /* 0x08 */ u32 callbackIdx; /* 0x0C */ s16 y; /* 0x0E */ s16 x; /* 0x10 */ s16 zoom; /* 0x12 */ s16 rotZ; /* 0x14 */ SubQuakeRequest14 unk_14; /* 0x1A */ s16 speed; /* 0x1C */ s16 unk_1C; /* 0x1E */ s16 countdown; /* 0x20 */ s16 camPtrIdx; }; // size = 0x24 struct ShakeInfo { /* 0x00 */ Vec3f vec1; /* 0x0C */ Vec3f vec2; /* 0x18 */ s16 rotZ; /* 0x1A */ s16 unk_1A; /* 0x1C */ s16 zoom; }; // size = 0x1E struct QuakeCamCalc { /* 0x00 */ Vec3f atOffset; /* 0x0C */ Vec3f eyeOffset; /* 0x18 */ s16 rotZ; /* 0x1A */ s16 unk_1A; /* 0x1C */ s16 zoom; /* 0x20 */ f32 unk_20; }; // size = 0x24 /* Vec3f* Quake_AddVec(Vec3f* dst, Vec3f* arg1, VecSph* arg2); void Quake_UpdateShakeInfo(QuakeRequest* req, ShakeInfo* shake, f32 y, f32 x); s16 Quake_Callback1(QuakeRequest* req, ShakeInfo* shake); s16 Quake_Callback2(QuakeRequest* req, ShakeInfo* shake); s16 Quake_Callback3(QuakeRequest* req, ShakeInfo* shake); s16 Quake_Callback4(QuakeRequest* req, ShakeInfo* shake); s16 Quake_Callback5(QuakeRequest* req, ShakeInfo* shake); s16 Quake_Callback6(QuakeRequest* req, ShakeInfo* shake); s16 Quake_GetFreeIndex(void); QuakeRequest* Quake_AddImpl(struct Camera* cam, u32 callbackIdx); void Quake_Remove(QuakeRequest* req); QuakeRequest* Quake_GetRequest(s16 idx); QuakeRequest* Quake_SetValue(s16 idx, s16 valueType, s16 value); u32 Quake_SetSpeed(s16 idx, s16 value); u32 Quake_SetCountdown(s16 idx, s16 value); s16 Quake_GetCountdown(s16 idx); u32 Quake_SetQuakeValues(s16 idx, s16 y, s16 x, s16 zoom, s16 rotZ); u32 Quake_SetUnkValues(s16 idx, s16 arg1, SubQuakeRequest14 arg2); void Quake_Init(void); s16 Quake_Add(struct Camera* cam, u32 callbackIdx); u32 Quake_RemoveFromIdx(s16 idx); s16 Quake_Calc(struct Camera* camera, QuakeCamCalc* camData); */