Mercurial > mm7
annotate DecalBuilder.h @ 2140:4c0c475917dd
drawing items in the dragon's cave and GetFloorLevel for BModels
author | Ritor1 |
---|---|
date | Thu, 02 Jan 2014 17:56:55 +0600 |
parents | c1c74df0a33e |
children | 0a1438c16c2b |
rev | line source |
---|---|
0 | 1 #pragma once |
1512 | 2 |
3 #include <cstdint> | |
4 | |
0 | 5 #include "Render.h" |
6 | |
1077 | 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) -------------------------------------------------------- | |
1458 | 21 //void Bloodsplat::vdtor(Bloodsplat *this, char a2) |
1077 | 22 |
23 //----- (0043B569) -------------------------------------------------------- | |
24 virtual ~Bloodsplat() | |
25 { | |
26 } | |
27 | |
1458 | 28 //void ( ***vdestructor_ptr)(Bloodsplat *, bool); |
1077 | 29 float x; |
30 float y; | |
31 float z; | |
32 float radius; | |
33 float dot_dist; | |
34 char r; | |
35 char g; | |
36 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, | |
1458 | 55 (void ( *)(void *))Bloodsplat::Bloodsplat, |
56 (void ( *)(void *))Bloodsplat::dtor); | |
1077 | 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 bool AddBloodsplat(float x, float y, float z, float r, float g, float b, float radius, int a8, int a9); | |
69 bool AddBloodsplat(float x, float y, float z, float radius, char r, char g, char b); | |
70 | |
71 | |
1458 | 72 //void ( ***vdestructor_ptr)(BloodsplatContainer *, bool); |
1077 | 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 | |
0 | 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) -------------------------------------------------------- | |
1458 | 113 //void Decal::vdtor(Decal *this, bool a2) |
0 | 114 //----- (0043B641) -------------------------------------------------------- |
115 virtual ~Decal() | |
116 { | |
117 } | |
118 | |
1458 | 119 //void ( ***vdestructor_ptr)(Decal *, bool); |
0 | 120 int uNumVertices; |
121 RenderVertexSoft pVertices[64]; | |
122 __int16 field_C08; | |
123 __int16 field_C0A; | |
124 __int16 field_C0C; | |
125 __int16 field_C0E; | |
1512 | 126 uint32_t uColorMultiplier; |
0 | 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 { | |
140 char *v2; // eax@1 | |
141 signed int v3; // ecx@1 | |
142 | |
1980 | 143 DecalBuilder* v1 = this; |
0 | 144 /*_eh_vector_constructor_iterator_( |
145 this->std__vector_pDecals, | |
146 3104, | |
147 1024, | |
1458 | 148 (void ( *)(void *))Decal::Decal, |
149 (void ( *)(void *))Decal::dtor);*/ | |
0 | 150 v1->std__vector_pDecals_size = 0; |
151 v1->field_308008 = 0; | |
152 v2 = (char *)&v1->pVertices[0].flt_2C; | |
153 v3 = 256; | |
154 do | |
155 { | |
156 *(float *)v2 = 0.0; | |
157 v2 += 48; | |
158 --v3; | |
159 } | |
160 while ( v3 ); | |
161 } | |
162 | |
163 //----- (0049B471) -------------------------------------------------------- | |
164 virtual ~DecalBuilder() | |
165 {} | |
166 | |
167 | |
168 bool AddBloodsplat(float x, float y, float z, float r, float g, float b, float radius, int a8, int a9); | |
169 void Reset(unsigned int bPreserveBloodsplats); | |
638 | 170 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 | 171 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 | 172 bool ApplyBloodsplatDecals_IndoorFace(unsigned int uFaceID); |
173 char ApplyDecals_OutdoorFace(ODMFace *pFace); | |
1391
cc9a3a24d61d
Moved stru11, stru12 and some SW Rendering stuff to the archives.
Nomad
parents:
1077
diff
changeset
|
174 bool _49BE8A(struct Polygon *a2, Vec3_float_ *a3, float *a4, struct RenderVertexSoft *a5, unsigned int uStripType, char a7); |
0 | 175 void DrawDecal(Decal *pDecal, float z_bias); |
176 void DrawDecals(float z_bias); | |
177 void DrawBloodsplats(); | |
178 void DrawDecalDebugOutlines(); | |
179 | |
180 | |
181 | |
1458 | 182 //void ( ***vdestructor_ptr)(DecalBuilder *, bool); |
0 | 183 Decal std__vector_pDecals[1024]; |
184 unsigned int std__vector_pDecals_size; | |
185 int field_308008; | |
186 RenderVertexSoft pVertices[256]; | |
187 int std__vector_30B00C[1024]; | |
188 int uNumDecals; | |
189 float field_30C010; | |
190 float field_30C014; | |
191 float field_30C018; | |
192 float field_30C01C; | |
193 float field_30C020; | |
194 float field_30C024; | |
1077 | 195 float field_30C028; |
196 float field_30C02C; | |
0 | 197 float flt_30C030; |
198 float field_30C034; | |
199 }; | |
200 #pragma pack(pop) | |
201 | |
202 extern struct DecalBuilder *pDecalBuilder; | |
203 | |
204 | |
205 | |
206 | |
207 |