1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-04-08 23:56:26 +00:00
oot/include/db_camera.h
mzxrules cf1a39c26f
Reduce dependencies on global.h (10) (#2490)
* reduce z64.h size

* fix z_cheap_proc.inc.c

* ,bss

* remove temp delcaration
2025-02-26 17:18:30 -05:00

88 lines
2.6 KiB
C

#ifndef DB_CAMERA_H
#define DB_CAMERA_H
#include "ultra64.h"
#include "z64cutscene.h"
#include "z64math.h"
struct Camera;
typedef struct DebugCamSub {
/* 0x0000 */ s16 mode;
/* 0x0002 */ s16 nFrames;
/* 0x0004 */ s16 nPoints;
/* 0x0006 */ s16 unkIdx;
/* 0x0008 */ s16 unk_08;
/* 0x000A */ s16 unk_0A;
/* 0x000C */ s32 unk_0C; // bool: indicates position vs lookAt?
/* 0x0010 */ char unk_10[0x14];
/* 0x0024 */ CutsceneCameraPoint position[129];
/* 0x0834 */ CutsceneCameraPoint lookAt[129];
/* 0x1044 */ s16 demoCtrlMenu;
/* 0x1046 */ s16 demoCtrlActionIdx; // e (?), s (save), l (load), c (clear)
/* 0x1048 */ s16 demoCtrlToggleSwitch;
/* 0x104A */ Vec3s unk_104A;
} DebugCamSub; // size = 0x1050
typedef struct DebugCam {
/* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f at;
/* 0x10 */ Vec3f eye;
/* 0x1C */ Vec3f unk_1C;
/* 0x28 */ char unk_28[0xC];
/* 0x34 */ s32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ s32 unk_3C; // bool
/* 0x40 */ s32 unk_40;
/* 0x44 */ s32 unk_44;
/* 0x48 */ f32 fov;
/* 0x4C */ s16 roll;
/* 0x4E */ char unk_4E[0x2];
/* 0x50 */ f32 rollDegrees;
/* 0x54 */ Vec3f unk_54;
/* 0x60 */ Vec3f unk_60;
/* 0x6C */ Vec3f unk_6C;
/* 0x78 */ s16 unk_78;
/* 0x7A */ s16 unk_7A;
/* 0x7C */ DebugCamSub sub;
} DebugCam; // size = 0x10CC
typedef struct DebugCamCut {
/* 0x00 */ char letter;
/* 0x01 */ u8 unk_01;
/* 0x02 */ s16 mode;
/* 0x04 */ CutsceneCameraPoint* position;
/* 0x08 */ CutsceneCameraPoint* lookAt;
/* 0x0C */ s16 nFrames;
/* 0x0E */ s16 nPoints;
} DebugCamCut; // size = 0x10
typedef struct DebugCamAnim {
/* 0x00 */ f32 curFrame;
/* 0x04 */ f32 unk_04; // frame count?
/* 0x08 */ s16 keyframe;
/* 0x0A */ s16 unk_0A;
/* 0x0C */ s16 unk_0C;
/* 0x10 */ Vec3f positionPos; // confusing name
/* 0x1C */ Vec3f lookAtPos;
/* 0x28 */ f32 roll;
/* 0x2C */ f32 fov;
} DebugCamAnim; // size = 0x30
typedef enum DebugCamTextColor {
/* 0 */ DEBUG_CAM_TEXT_YELLOW,
/* 1 */ DEBUG_CAM_TEXT_PEACH,
/* 2 */ DEBUG_CAM_TEXT_BROWN,
/* 3 */ DEBUG_CAM_TEXT_ORANGE,
/* 4 */ DEBUG_CAM_TEXT_GOLD,
/* 5 */ DEBUG_CAM_TEXT_WHITE,
/* 6 */ DEBUG_CAM_TEXT_BLUE,
/* 7 */ DEBUG_CAM_TEXT_GREEN
} DebugCamTextColor;
void DebugCamera_Init(DebugCam* debugCam, struct Camera* cameraPtr);
void DebugCamera_Enable(DebugCam* debugCam, struct Camera* cam);
void DebugCamera_Update(DebugCam* debugCam, struct Camera* cam);
void DebugCamera_Reset(struct Camera* cam, DebugCam* debugCam);
#endif