0
|
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 |