blob: 2b73c272d904e336d1432c23aaf6b3b44b0d54ab (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
|