Mercurial > mm7
annotate IndoorCameraD3D.h @ 2327:5e4d90305d06
EventCastSpell removing duplicate code for handling empty pObjectList->pObjects array or not finding the correct value + moving everything into the main switch
author | Grumpy7 |
---|---|
date | Tue, 01 Apr 2014 23:20:15 +0200 |
parents | 8817c398b792 |
children |
rev | line source |
---|---|
0 | 1 #pragma once |
1640
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
2 #include "VectorTypes.h" |
0 | 3 |
4 | |
5 | |
6 /* 124 */ | |
7 #pragma pack(push, 1) | |
8 struct IndoorCameraD3D_Vec3 | |
9 { | |
10 //----- (004C0376) -------------------------------------------------------- | |
11 inline IndoorCameraD3D_Vec3() {} | |
12 //----- (004C037F) -------------------------------------------------------- | |
13 virtual ~IndoorCameraD3D_Vec3() {} | |
14 //----- (004C039C) -------------------------------------------------------- | |
15 //void ~IndoorCameraD3D_Vec3() {} | |
16 | |
1458 | 17 //void ( ***vdestructor_ptr)(IndoorCameraD3D_Vec3 *, bool); |
0 | 18 |
19 union | |
20 { | |
21 struct | |
22 { | |
23 float x; | |
24 float y; | |
25 float z; | |
26 }; | |
27 float v[3]; | |
28 }; | |
29 }; | |
30 #pragma pack(pop) | |
31 | |
32 /* 125 */ | |
33 #pragma pack(push, 1) | |
34 struct IndoorCameraD3D_Vec4: public IndoorCameraD3D_Vec3 | |
35 { | |
36 //----- (00498038) -------------------------------------------------------- | |
37 inline IndoorCameraD3D_Vec4(): | |
38 IndoorCameraD3D_Vec3() | |
39 {} | |
40 | |
41 //----- (00498069) -------------------------------------------------------- | |
42 virtual ~IndoorCameraD3D_Vec4() | |
43 {} | |
44 | |
45 float dot; | |
522 | 46 int _wtf; // sizeof vec4 is 18 and first member is vdtor, but vdtor is already included in vec3 so very weird |
0 | 47 }; |
48 #pragma pack(pop) | |
49 | |
50 | |
51 | |
52 /* 199 */ | |
53 #pragma pack(push, 1) | |
54 struct IndoorCameraD3D_stru3 | |
55 { | |
56 int field_0; | |
57 int field_4; | |
58 int field_8; | |
59 int field_C; | |
60 int field_10; | |
61 int field_14; | |
62 int field_18; | |
63 int field_1C; | |
64 int field_20; | |
65 int field_24; | |
66 int field_28; | |
67 int field_2C; | |
68 float flt_30; | |
69 int field_34; | |
70 }; | |
71 #pragma pack(pop) | |
72 | |
73 | |
74 | |
75 /* 197 */ | |
76 #pragma pack(push, 1) | |
77 struct IndoorCameraD3D_stru1 | |
78 { | |
79 //----- (004363A2) -------------------------------------------------------- | |
80 IndoorCameraD3D_stru1() | |
81 { | |
82 this->flt_2C = 0.0; | |
83 } | |
84 | |
85 | |
86 int field_0; | |
87 int field_4; | |
88 int field_8; | |
89 int field_C; | |
90 int field_10; | |
91 int field_14; | |
92 int field_18; | |
93 int field_1C; | |
94 int field_20; | |
95 int field_24; | |
96 int field_28; | |
97 float flt_2C; | |
98 }; | |
99 #pragma pack(pop) | |
100 | |
101 /* 198 */ | |
102 #pragma pack(push, 1) | |
103 struct IndoorCameraD3D_stru2 | |
104 { | |
105 unsigned int mm7__vector_000004_size; | |
106 IndoorCameraD3D_stru1 mm7__vector_000004[64]; | |
107 int field_C04; | |
108 int field_C08; | |
109 int field_C0C; | |
110 }; | |
111 #pragma pack(pop) | |
112 | |
1642 | 113 |
114 | |
115 #define BLV_RENDER_DRAW_SW_OUTLINES (1 << 0) // 1 | |
116 #define BLV_RENDER_DRAW_D3D_OUTLINES (1 << 1) // 2 | |
117 #define ODM_RENDER_DRAW_D3D_OUTLINES (1 << 2) // 4 | |
118 #define ODM_RENDER_DRAW_TERRAIN_OUTLINES (1 << 3) // 8 | |
119 | |
0 | 120 /* 123 */ |
121 #pragma pack(push, 1) | |
122 struct IndoorCameraD3D | |
123 { | |
124 IndoorCameraD3D(); | |
125 | |
126 //----- (004363C6) -------------------------------------------------------- | |
127 virtual ~IndoorCameraD3D() | |
128 { | |
129 //this->vdestructor_ptr = &stru8_pvdtor; | |
130 //_eh_vector_destructor_iterator_(this->std__vector_000034_prolly_frustrum, 24, 6, IndoorCameraD3D_Vec4::dtor); | |
131 //IndoorCameraD3D_Vec3::dtor(&v1->field_24); | |
132 //IndoorCameraD3D_Vec3::dtor(&v1->field_14); | |
133 //IndoorCameraD3D_Vec3::dtor(&v1->field_4); | |
134 } | |
135 | |
136 double GetPolygonMaxZ(struct RenderVertexSoft *pVertex, unsigned int uStripType); | |
137 double GetPolygonMinZ(struct RenderVertexSoft *pVertices, unsigned int uStripType); | |
138 struct IDirect3DTexture2 *LoadTextureAndGetHardwarePtr(char *Str1); | |
139 void Project(signed int x, signed int y, signed int z, int *a5, int *a6); | |
140 void Project(struct RenderVertexSoft *pVertices, unsigned int uNumVertices, char a4); | |
141 void _436CDC_mess_with_lightmap__clipflag_2(struct RenderVertexSoft *pInVertices, int uNumInVertices, struct RenderVertexSoft *pOutVertices, unsigned int *pOutNumVertices); | |
142 void _436F09_mess_with_lightmap__clipflag_4(struct RenderVertexSoft *pInVertices, int uNumInVertices, struct RenderVertexSoft *pOutVertices, unsigned int *pOutNumVertices); | |
2245 | 143 void _437143(unsigned int uNumInVertices, struct RenderVertexSoft *pOutVertices, struct RenderVertexSoft *pInVertices, unsigned int *pOutNumVertices); |
0 | 144 bool _4371C3(struct RenderVertexSoft *pVertices, unsigned int *pOutNumVertices, int _unused); |
795 | 145 bool CalcPortalShape(struct RenderVertexSoft *a1, unsigned int *pOutNumVertices, struct RenderVertexSoft *pVertices, IndoorCameraD3D_Vec4 *a4, signed int uNumVertices, char a6, int _unused); |
0 | 146 char _437376(struct stru154 *thisa, struct RenderVertexSoft *a2, unsigned int *pOutNumVertices); |
147 void _4374E8_ProllyBuildFrustrum(); | |
148 void _437607(IndoorCameraD3D_Vec3 *a1, IndoorCameraD3D_Vec4 *a2); | |
149 void Vec3Transform(const IndoorCameraD3D_Vec3 *pVector, IndoorCameraD3D_Vec3 *pOut); | |
150 void CreateWorldMatrixAndSomeStuff(); | |
151 void MatrixMultiply(struct Matrix3x3_float_ *a1, struct Matrix3x3_float_ *a2, struct Matrix3x3_float_ *a3); | |
152 void PrepareAndDrawDebugOutline(struct BLVFace *pFace, unsigned int uDiffuse); | |
153 void debug_outline_sw(struct RenderVertexSoft *a2, unsigned int uNumVertices, unsigned int uDiffuse, float a5); | |
154 void debug_outline_d3d(const struct RenderVertexD3D3 *pLineVertices, unsigned int uNumLines, int uDiffuse, float z_stuff); | |
2006 | 155 void do_draw_debug_line_sw(struct RenderVertexSoft *pLineBegin, signed int sStartDiffuse, struct RenderVertexSoft *pLineEnd, signed int sEndDiffuse, unsigned int uOutNumVertices, float z_stuff); |
1391
cc9a3a24d61d
Moved stru11, stru12 and some SW Rendering stuff to the archives.
Nomad
parents:
871
diff
changeset
|
156 //void sr_437D4A_draw_some_vertices(float x, float y, float z, unsigned int a5, char a6, float a7); |
cc9a3a24d61d
Moved stru11, stru12 and some SW Rendering stuff to the archives.
Nomad
parents:
871
diff
changeset
|
157 //void sr_438141_draw_list_0037C(); |
cc9a3a24d61d
Moved stru11, stru12 and some SW Rendering stuff to the archives.
Nomad
parents:
871
diff
changeset
|
158 //void sr_438240_draw_lits(); |
cc9a3a24d61d
Moved stru11, stru12 and some SW Rendering stuff to the archives.
Nomad
parents:
871
diff
changeset
|
159 //void sr_Reset_list_0037C(); |
0 | 160 bool is_face_faced_to_camera(struct BLVFace *pFace, struct RenderVertexSoft *a2); |
161 bool GetFacetOrientation(char polyType, struct Vec3_float_ *a2, struct Vec3_float_ *a3, struct Vec3_float_ *a4); | |
162 void ViewTransform(struct RenderVertexSoft *a1a, unsigned int uNumVertices); | |
163 bool IsCulled(struct BLVFace *pFace); | |
164 void ViewTransfrom_OffsetUV(struct RenderVertexSoft *pVertices, unsigned int uNumVertices, struct RenderVertexSoft *pOutVertices, struct stru320 *a5); | |
1640
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
165 bool ApplyViewTransform_TrueIfStillVisible_BLV(int x, int y, int z, signed int *pOutX, int *pOutZ, int *pOutY, char bDoNotShow); |
871 | 166 float GetPickDepth(); |
1637 | 167 float GetShadingDistMist(); |
0 | 168 |
791 | 169 void DebugDrawPortal(struct BLVFace *pFace); |
170 | |
1458 | 171 //void ( ***vdestructor_ptr)(IndoorCameraD3D *, bool); |
0 | 172 IndoorCameraD3D_Vec3 field_4[3]; |
173 //IndoorCameraD3D_Vec3 field_14; | |
174 //IndoorCameraD3D_Vec3 field_24; | |
175 IndoorCameraD3D_Vec4 std__vector_000034_prolly_frustrum[6]; | |
176 float fov; | |
177 float screenCenterX; | |
178 float screenCenterY; | |
179 float fov_x; | |
180 float fov_y; | |
181 float inv_fov; | |
1640
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
182 float _unused_blv_party_x; |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
183 float _unused_blv_party_y; |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
184 float _unused_blv_party_z; |
0 | 185 char field_E8[32]; |
186 float field_108; | |
1640
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
187 float _unused_blv_party_x_2; |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
188 float _unused_blv_party_y_2; |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
189 float _unused_blv_party_z_2; |
0 | 190 char field_118[32]; |
191 float field_138; | |
192 char field_13C[44]; | |
193 float field_168; | |
194 char field_16C[44]; | |
195 float field_198; | |
196 char field_19C[44]; | |
197 float field_1C8; | |
198 char field_1CC[44]; | |
199 float field_1F8; | |
200 char field_1FC[44]; | |
201 float field_228; | |
202 char field_22C[44]; | |
203 float field_258; | |
204 char field_25C[44]; | |
205 float field_288; | |
206 char field_28C[44]; | |
207 float field_2B8; | |
208 float field_2BC; | |
209 float field_2C0; | |
210 float field_2C4; | |
211 char field_2C8[32]; | |
212 float field_2E8; | |
213 float field_2EC; | |
214 float field_2F0; | |
215 float field_2F4; | |
216 char field_2F8[32]; | |
217 float field_318; | |
218 float field_31C; | |
219 float field_320; | |
220 float field_324; | |
221 char field_328[32]; | |
222 float field_348; | |
223 float field_34C; | |
224 float field_350; | |
225 float field_354; | |
226 char field_358[32]; | |
227 float field_378; | |
228 IndoorCameraD3D_stru3 list_0037C[16384]; | |
229 unsigned int list_0037C_size; | |
230 IndoorCameraD3D_stru2 list_E0380[256]; | |
231 int list_E0380_size; | |
1642 | 232 |
233 | |
234 void CalculateRotations(int camera_rot_x, int camera_rot_y); | |
1640
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
235 int sRotationY; // moved from 157 struct IndoorCamera::18 |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
236 int sRotationX; // moved from 157 struct IndoorCamera::14 |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
237 float fRotationYSine; // moved from 157 struct IndoorCamera::2C |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
238 float fRotationYCosine; // moved from 157 struct IndoorCamera::30 |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
239 float fRotationXSine; // moved from 157 struct IndoorCamera::34 |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
240 float fRotationXCosine; // moved from 157 struct IndoorCamera::38 |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
241 Vec3<int> vPartyPos; // moved from 157 struct IndoorCamera::00 |
afc1c3514dd5
Some common code from ODM and BLV RenderParams moved to IndoorCameraD3D
Nomad
parents:
1637
diff
changeset
|
242 // merged from 162 struct BLVRenderParams::08 |
1642 | 243 int debug_flags; // moved from 157 struct IndoorCamera::4C |
244 // merged from 162 struct BLVRenderParams::04 | |
245 int int_sine_y; // moved from 157 struct ODMRenderParams::1C | |
246 // merged from 162 struct BLVRenderParams::24 | |
247 int int_cosine_y; // moved from 157 struct ODMRenderParams::20 | |
248 // merged from 162 struct BLVRenderParams::20 | |
249 int int_sine_x; // moved from 157 struct ODMRenderParams::24 | |
250 // merged from 162 struct BLVRenderParams::2C | |
251 int int_cosine_x; // moved from 157 struct ODMRenderParams::28 | |
252 // merged from 162 struct BLVRenderParams::28 | |
0 | 253 }; |
254 #pragma pack(pop) |