Mercurial > might-and-magic-trilogy
comparison DecalBuilder.h @ 0:8b8875f5b359
Initial commit
author | Nomad |
---|---|
date | Fri, 05 Oct 2012 16:07:14 +0200 |
parents | |
children | bcc051713d20 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:8b8875f5b359 |
---|---|
1 #pragma once | |
2 #include "Render.h" | |
3 | |
4 | |
5 #pragma pack(push, 1) | |
6 struct DecalBuilder_stru0 | |
7 { | |
8 double _43B570(); | |
9 | |
10 int field_0; | |
11 int field_4; | |
12 int field_8; | |
13 int field_C; | |
14 int field_10; | |
15 int field_14; | |
16 int field_18; | |
17 int field_1C_flags; | |
18 __int64 field_20_time; | |
19 }; | |
20 #pragma pack(pop) | |
21 | |
22 | |
23 | |
24 /* 181 */ | |
25 #pragma pack(push, 1) | |
26 struct Decal | |
27 { | |
28 void Decal_base_ctor(); | |
29 //----- (0043B60C) -------------------------------------------------------- | |
30 inline Decal() | |
31 { | |
32 Decal_base_ctor(); | |
33 field_C1C = 0; | |
34 } | |
35 | |
36 //----- (0043B625) -------------------------------------------------------- | |
37 //void __thiscall Decal::vdtor(Decal *this, bool a2) | |
38 //----- (0043B641) -------------------------------------------------------- | |
39 virtual ~Decal() | |
40 { | |
41 } | |
42 | |
43 void (__thiscall ***vdestructor_ptr)(Decal *, bool); | |
44 int uNumVertices; | |
45 RenderVertexSoft pVertices[64]; | |
46 __int16 field_C08; | |
47 __int16 field_C0A; | |
48 __int16 field_C0C; | |
49 __int16 field_C0E; | |
50 int field_C10; | |
51 int field_C14; | |
52 DecalBuilder_stru0 *field_C18; | |
53 int field_C1C; | |
54 }; | |
55 #pragma pack(pop) | |
56 | |
57 /* 180 */ | |
58 #pragma pack(push, 1) | |
59 struct DecalBuilder | |
60 { | |
61 //----- (0049B408) -------------------------------------------------------- | |
62 DecalBuilder() | |
63 { | |
64 char *v2; // eax@1 | |
65 signed int v3; // ecx@1 | |
66 | |
67 auto v1 = this; | |
68 /*_eh_vector_constructor_iterator_( | |
69 this->std__vector_pDecals, | |
70 3104, | |
71 1024, | |
72 (void (__thiscall *)(void *))Decal::Decal, | |
73 (void (__thiscall *)(void *))Decal::dtor);*/ | |
74 v1->std__vector_pDecals_size = 0; | |
75 v1->field_308008 = 0; | |
76 v2 = (char *)&v1->pVertices[0].flt_2C; | |
77 v3 = 256; | |
78 do | |
79 { | |
80 *(float *)v2 = 0.0; | |
81 v2 += 48; | |
82 --v3; | |
83 } | |
84 while ( v3 ); | |
85 } | |
86 | |
87 //----- (0049B471) -------------------------------------------------------- | |
88 virtual ~DecalBuilder() | |
89 {} | |
90 | |
91 | |
92 bool AddBloodsplat(float x, float y, float z, float r, float g, float b, float radius, int a8, int a9); | |
93 void Reset(unsigned int bPreserveBloodsplats); | |
94 char ApplyDecals(int a2, char a3, struct stru154 *a4, int a5, struct RenderVertexSoft *a6, int a7, char a8, int a9); | |
95 char _49B790_build_decal_geometry(int a2, char a3, int a4, int a5, int a6, int a7, struct RenderVertexSoft *a8, struct stru314 *a9, signed int a10, struct RenderVertexSoft *a11, char uClipFlags); | |
96 char ApplyBloodsplatDecals_IndoorFace(unsigned int uFaceID); | |
97 char ApplyDecals_OutdoorFace(ODMFace *pFace); | |
98 bool _49BE8A(struct stru148 *a2, float a3, int a4, struct RenderVertexSoft *a5, unsigned int uStripType, char a7); | |
99 void DrawDecal(Decal *pDecal, float a2); | |
100 void DrawDecals(float a2); | |
101 void DrawBloodsplats(); | |
102 void DrawDecalDebugOutlines(); | |
103 | |
104 | |
105 | |
106 void (__thiscall ***vdestructor_ptr)(DecalBuilder *, bool); | |
107 Decal std__vector_pDecals[1024]; | |
108 unsigned int std__vector_pDecals_size; | |
109 int field_308008; | |
110 RenderVertexSoft pVertices[256]; | |
111 int std__vector_30B00C[1024]; | |
112 int uNumDecals; | |
113 float field_30C010; | |
114 float field_30C014; | |
115 float field_30C018; | |
116 float field_30C01C; | |
117 float field_30C020; | |
118 float field_30C024; | |
119 int field_30C028; | |
120 int field_30C02C; | |
121 float flt_30C030; | |
122 float field_30C034; | |
123 }; | |
124 #pragma pack(pop) | |
125 | |
126 extern struct DecalBuilder *pDecalBuilder; | |
127 | |
128 | |
129 | |
130 | |
131 | |
132 /* 158 */ | |
133 #pragma pack(push, 1) | |
134 struct Bloodsplat | |
135 { | |
136 //----- (0043B538) -------------------------------------------------------- | |
137 inline Bloodsplat() | |
138 { | |
139 this->field_1C = 0; | |
140 this->field_20 = 0; | |
141 this->field_24 = 0; | |
142 //this->vdestructor_ptr = &Bloodsplat_pvdtor; | |
143 } | |
144 | |
145 //----- (0043B54C) -------------------------------------------------------- | |
146 //void __thiscall Bloodsplat::vdtor(Bloodsplat *this, char a2) | |
147 | |
148 //----- (0043B569) -------------------------------------------------------- | |
149 virtual ~Bloodsplat() | |
150 { | |
151 } | |
152 | |
153 void (__thiscall ***vdestructor_ptr)(Bloodsplat *, bool); | |
154 float x; | |
155 float y; | |
156 float z; | |
157 float radius; | |
158 int field_14; | |
159 char r; | |
160 char g; | |
161 char b; | |
162 char field_1B; | |
163 int field_1C; | |
164 int field_20; | |
165 int field_24; | |
166 }; | |
167 #pragma pack(pop) | |
168 | |
169 /* 159 */ | |
170 #pragma pack(push, 1) | |
171 struct BloodsplatContainer | |
172 { | |
173 //----- (0043B688) -------------------------------------------------------- | |
174 inline BloodsplatContainer() | |
175 { | |
176 /*_eh_vector_constructor_iterator_( | |
177 this->std__vector_pBloodsplats, | |
178 40, | |
179 64, | |
180 (void (__thiscall *)(void *))Bloodsplat::Bloodsplat, | |
181 (void (__thiscall *)(void *))Bloodsplat::dtor); | |
182 v1->std__vector_pBloodsplats_size = 0;*/ | |
183 uNumBloodsplats = 0; | |
184 } | |
185 //----- (0043B6D6) -------------------------------------------------------- | |
186 virtual ~BloodsplatContainer() | |
187 { | |
188 //this->vdestructor_ptr = &BloodsplatContainer_pvdtor; | |
189 //_eh_vector_destructor_iterator_(this->std__vector_pBloodsplats, 40, 64, Bloodsplat::dtor); | |
190 } | |
191 | |
192 | |
193 bool AddBloodsplat(float x, float y, float z, float r, float g, float b, float radius, int a8, int a9); | |
194 bool AddBloodsplat(float x, float y, float z, float radius, char r, char g, char b); | |
195 | |
196 | |
197 void (__thiscall ***vdestructor_ptr)(BloodsplatContainer *, bool); | |
198 Bloodsplat std__vector_pBloodsplats[64]; | |
199 unsigned int std__vector_pBloodsplats_size; | |
200 int uNumBloodsplats; | |
201 }; | |
202 #pragma pack(pop) | |
203 | |
204 | |
205 | |
206 extern struct BloodsplatContainer *pBloodsplatContainer; // idb |