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