-
Notifications
You must be signed in to change notification settings - Fork 3
/
CKCamera.h
149 lines (120 loc) · 4.23 KB
/
CKCamera.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
#pragma once
#include "KObject.h"
#include "CKUtils.h"
#include "CKPartlyUnknown.h"
#include "vecmat.h"
struct CKSceneNode;
struct CKCameraFogDatas;
struct CKCameraBase : CKMemberReflectable<CKSubclass<CKCategory<7>, 0>> {
uint32_t kcamUnk0 = 0;
uint32_t kcamUnk1 = 257;
float kcamFarDistance = 100.0f, kcamUnk3 = 0.1f;
float kcamFarDistance_dup = kcamFarDistance, kcamUnk3_dup = kcamUnk3; // duplicates for Romaster
float kcamUnk4 = 0.1f;
float kcamFOV = 70.0f;
Vector3 kcamPosition = { 0.0f, 0.0f, 0.0f },
kcamLookAt = { 0.0f, 0.0f, 1.0f },
kcamUpVector = { 0.0f, 1.0f, 0.0f };
float kcamFOV_dup = kcamFOV;
Vector3 kcamPosition_dup = kcamPosition, kcamLookAt_dup = kcamLookAt, kcamUpVector_dup = kcamUpVector;
// XXL2+:
uint32_t kcamX2Unk0 = 0x60;
uint8_t kcamX2Unk1 = 2, kcamX2Unk2 = 2, kcamX2Unk3 = 0;
uint8_t kcamX2Unk4 = 0;
// Arthur+:
kobjref<CKCameraFogDatas> ogFogData;
uint8_t ogUnk1 = 0;
int32_t ogUnk2a = 1; float ogUnk3a = 0.0f; float ogUnk4a = 0.0f;
int8_t ogUnk2b = 1;
kobjref<CKCameraBase> kcamNextCam;
void reflectMembers2(MemberListener &r, KEnvironment *kenv);
void init(KEnvironment* kenv) override;
};
struct CKCamera : CKMRSubclass<CKCamera, CKCameraBase, 1> {
float kcamX2DerUnk0 = 0.0f;
float kcamOgUnk1 = 0.0f;
Vector3 kcamOgUnk2 = { 0.0f, 0.0f, 1.0f };
void reflectMembers2(MemberListener& r, KEnvironment* kenv);
};
struct CKCameraRigidTrack : CKMRSubclass<CKCameraRigidTrack, CKCameraBase, 2> {
// XXL1
kobjref<CKObject> kcrtUnk1;
std::array<float, 6> kcrtUnk2;
// XXL2+:
Vector3 kcrtX2Vec1;
Vector3 kcrtX2Vec2;
float kcrtX2Flt1;
float kcrtOgFlt2;
void reflectMembers2(MemberListener& r, KEnvironment* kenv);
};
struct CKCameraClassicTrack : CKMRSubclass<CKCameraClassicTrack, CKCameraBase, 3> {
uint32_t kclscamUnk0;
std::array<float, 9> kclscamUnk1;
std::array<float, 2> kclscamUnk2;
std::array<float, 12> kclscamUnk3;
float kclscamUnk4;
// Romaster only:
uint8_t kclscamUnk5;
Vector3 kclscamUnk6;
void reflectMembers2(MemberListener &r, KEnvironment *kenv);
};
struct CKCameraPathTrack : CKMRSubclass<CKCameraPathTrack, CKCameraBase, 4> {
kobjref<CKObject> kcptSpline;
Vector3 kcptUnk2;
uint8_t kcptUnk5 = 0xDC;
std::vector<std::array<float, 2>> kcptX2FltArray;
Vector3 kcptX2UnkVector;
void reflectMembers2(MemberListener& r, KEnvironment* kenv);
};
struct CKCameraFixTrack : CKMRSubclass<CKCameraFixTrack, CKCameraBase, 6> {
float cftUnk1 = 0;
uint32_t cftRoma1 = 0, cftRoma2 = 0; // romaster only
float cftX2Unk2 = 0.0f;
void reflectMembers2(MemberListener &r, KEnvironment *kenv);
};
struct CKCameraAxisTrack : CKMRSubclass<CKCameraAxisTrack, CKCameraBase, 7> {
uint8_t catUnk1;
Vector3 catUnk2;
KPostponedRef<CKSceneNode> catNode;
float catX2Unk = 0.0f;
// Arthur:
uint32_t arUnk1; float arUnk2, arUnk3, arUnk4;
void reflectMembers2(MemberListener& r, KEnvironment* kenv);
void onLevelLoaded(KEnvironment* kenv) override;
};
struct CKCameraSpyTrack : CKMRSubclass<CKCameraSpyTrack, CKCameraBase, 8> {
std::array<float, 6> kcamspyValues;
void reflectMembers2(MemberListener& r, KEnvironment* kenv);
};
struct CKCameraPassivePathTrack : CKMRSubclass<CKCameraPassivePathTrack, CKCameraBase, 10> {
kobjref<CKObject> kcpptSpline;
float kcpptUnk1;
float kcpptUnk2;
float kcpptUnk3;
float kcpptUnk4;
float kcpptUnk5;
float kcpptUnk6;
// XXL2+:
std::array<float, 11> kcpptX2Values;
uint16_t kcpptUnk7 = 3;
// OG+:
kobjref<CKObject> kcpptSecondSpline;
float kcpptOgUnk1 = 0.0f;
float kcpptOgUnk2 = 100.0f;
void reflectMembers2(MemberListener& r, KEnvironment* kenv);
};
struct CKCameraBalistTrack : CKMRSubclass<CKCameraBalistTrack, CKCameraBase, 11> {
float cambalUnk1 = 2.0f, cambalUnk2 = 2.5f, cambalUnk3 = -10.0f, cambalUnk4 = 0.0f;
float arUnk1 = 0.0f, arUnk2 = 0.0f;
void reflectMembers2(MemberListener& r, KEnvironment* kenv);
};
struct CKCameraClassicTrack2 : CKMRSubclass<CKCameraClassicTrack2, CKCameraBase, 12> {
std::array<float, 21> values;
float arValue;
std::array<float, 33> ogValues;
void reflectMembers2(MemberListener& r, KEnvironment* kenv);
};
struct CKCameraFirstPersonTrack : CKMRSubclass<CKCameraFirstPersonTrack, CKCameraBase, 15> {
float cfptUnk1 = 1.6f, cfptUnk2 = 90.0f, cfptUnk3 = 90.0f;
void reflectMembers2(MemberListener& r, KEnvironment* kenv);
};