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