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