-
Notifications
You must be signed in to change notification settings - Fork 2
/
camera.h
218 lines (163 loc) · 3.55 KB
/
camera.h
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
#pragma once
#ifndef CAMERA_H
#define CAMERA_H
#include "ps2funcs.h"
#include "ob.h"
#include "vector.h"
#include "quat.h"
static int * const gCameraRelated = (int*)0x56F254;
struct SViewport
{
u8 padTop[0xC];
u16 Zoom;
u16 field_E;
};
struct SCamera
{
u32 Style;
VECTOR Position;
VECTOR Focus;
i32 Distance;
i32 Height;
SVECTOR Angles;
MATRIX Transform;
};
enum ECameraMode {
ECam_mode_0x10 = 0x10,
ECam_mode_0x11 = 0x11,
};
enum EShakeType
{
EShake_0x0 = 0x0,
EShake_0x1 = 0x1,
};
class CCamera : public CBody {
public:
EXPORT CCamera(CBody*);
EXPORT virtual ~CCamera(void);
EXPORT void SetFixedFocusMode(CVector *a2, unsigned __int16 a3, unsigned __int16 a4);
EXPORT int SetMode(ECameraMode mode);
EXPORT void SetCollisionRayLR(int a2);
EXPORT void SetCollisionRayBack(int a2);
EXPORT void SetCollisionAngLR(__int16 a2);
EXPORT void SetCollisionAngBack(__int16 a2);
EXPORT void SetZoom(int a2, unsigned __int16 a3);
EXPORT int GetZoom(void) const;
EXPORT void PushMode(void);
EXPORT void PopMode(void);
EXPORT void CM_Normal(void);
EXPORT void SetStartPosition(void);
EXPORT void SetFixedPosMode(CVector *a2, unsigned __int16 a3);
EXPORT void CM_FixedPosAngles(void);
EXPORT void CM_FixedPos(void);
EXPORT void SetCamYDistance(__int16, unsigned __int16);
EXPORT void SetCamAngle(__int16, unsigned __int16);
EXPORT void GetPosition(CVector *);
EXPORT void Shake(CVector*, EShakeType);
EXPORT void SetTripodInterpolation(i32, i32, i32);
EXPORT void SetFixedPosAnglesMode(CVector *, CQuat *, u16);
EXPORT void LoadIntoMikeCamera(void);
EXPORT void CM_TripodFocus(void);
int padTop;
unsigned char field_F8;
unsigned char field_F9;
CBody* field_FC;
unsigned char field_100;
CVector field_104;
int field_110;
int field_114;
int field_118;
int field_11C;
int field_120;
int field_124;
int field_128;
int field_12C;
int field_130;
int field_134;
int field_138;
CBody* field_13C;
unsigned char field_140;
CVector field_144;
int field_150;
int field_154;
int field_158;
int field_15C;
int field_160;
int field_164;
int field_168;
int field_16C;
int mZoom;
__int16 field_174;
unsigned char padAfter174[2];
int field_178;
int field_17C;
unsigned char padAfter17C[0x1A8-0x17C-4];
int field_1A8;
int field_1AC;
int field_1B0;
int field_1B4;
int field_1B8;
int field_1BC;
int field_1C0;
int padAfter1C0;
int field_1C8;
__int16 field_1CC;
__int16 field_1CE;
unsigned char padAfter1CE[0x8];
int field_1D8;
int field_1DC;
int field_1E0;
CQuat field_1E4;
CQuat field_1F4;
CQuat field_204;
CQuat field_214;
int field_224;
int field_228;
int field_22C;
int field_230;
i16 field_234;
i16 field_236;
i16 field_238;
i16 field_23A;
unsigned char field_23C;
int field_240;
int field_244;
int field_248;
CVector field_24C;
CVector field_258;
int field_264;
int field_268;
i16 field_26C;
i16 field_26E;
i16 field_270;
i16 field_272;
__int16 field_274;
unsigned char field_276;
unsigned char field_277;
unsigned char field_278;
__int16 field_27A;
__int16 field_27C;
__int16 field_27E;
int field_280;
CVector field_284;
CQuat field_290;
int mMode;
int field_2A4;
int field_2A8;
unsigned char field_2AC;
CVector field_2B0;
int field_2BC;
int field_2C0;
CQuat field_2C4;
CQuat field_2D4;
__int16 field_2E4;
CVector field_2E8;
};
EXPORT __int16 CalcTheta(__int16, __int16);
EXPORT extern CCamera *CameraList;
EXPORT extern SViewport gViewport;
EXPORT extern SCamera gMikeCamera[2];
void validate_CCamera(void);
void validate_SCamera(void);
void validate_SViewport(void);
#endif