summaryrefslogtreecommitdiff
path: root/include/GScamera.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/GScamera.h')
-rw-r--r--include/GScamera.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/include/GScamera.h b/include/GScamera.h
new file mode 100644
index 0000000..2b73c27
--- /dev/null
+++ b/include/GScamera.h
@@ -0,0 +1,62 @@
+#ifndef POKEREVO_GSCAMERA_H
+#define POKEREVO_GSCAMERA_H
+
+#include "GSnull.h"
+#include "code_801DD5C8.h"
+
+class GScamera : public GSnull
+{
+ u32 unk104; // flags
+ gUnkClass10* unk108;
+ Mtx44 unk10C; // orthographic projection matrix. TODO: this could be a C++ wrapper for Mtx44
+
+ // TODO: Is unk14C~unk164 an array of floats initialized to 0s with an initializer list?
+ // NOTE: This hack is only needed because GScamera's constructors write 0 to unk14C~unk164
+ // as if they were s32's, yet other functions treat them as floats
+ union s32float
+ {
+ s32 i;
+ float f;
+ };
+
+ s32float unk14C;
+ s32float unk150;
+ s32float unk154;
+ s32float unk158;
+ s32float unk15C;
+ s32float unk160;
+ s32float unk164;
+
+ // view volume coordinates for the orthographic projection matrix
+ float unk168; // top
+ float unk16C; // bottom
+ float unk170; // left
+ float unk174; // right
+
+ float unk178;
+
+ Vec unk17C;
+ Vec unk188;
+ Vec unk194;
+ Vec unk1A0;
+ Point3d unk1AC; // camera position
+ Vec unk1B8; // camera up vector
+ Point3d unk1C4; // target posiiton
+ GScamera* unk1D0;
+ Mtx unk1D4; // viewing matrix
+ Mtx unk204; // inverse of the viewing matrix
+ Mtx unk234; // inverse-transpose of the viewing matrix
+public:
+ GScamera(); // 801DDF78
+ GScamera(void* p1, gUnkClass10* p2); // 801DE084
+ void func_801DE1F8();
+ void func_801DE524();
+ friend void func_801DEA3C(Mtx p1, GScamera* p2, Mtx p3, BOOL p4);
+ void lbl_801DEEF8(gUnkClass12* p1, u32 p2, float p3);
+ virtual ~GScamera(); // 801DE19C
+ virtual void func1(float p1); // 801DECBC
+ virtual void func2(BOOL p1); // 801DED3C
+ virtual void func3(); // 801DE5F8
+};
+
+#endif //POKEREVO_GSCAMERA_H