Mercurial > might-and-magic-trilogy
view DecalBuilder.h @ 0:8b8875f5b359
Initial commit
author | Nomad |
---|---|
date | Fri, 05 Oct 2012 16:07:14 +0200 |
parents | |
children | bcc051713d20 |
line wrap: on
line source
#pragma once #include "Render.h" #pragma pack(push, 1) struct DecalBuilder_stru0 { double _43B570(); int field_0; int field_4; int field_8; int field_C; int field_10; int field_14; int field_18; int field_1C_flags; __int64 field_20_time; }; #pragma pack(pop) /* 181 */ #pragma pack(push, 1) struct Decal { void Decal_base_ctor(); //----- (0043B60C) -------------------------------------------------------- inline Decal() { Decal_base_ctor(); field_C1C = 0; } //----- (0043B625) -------------------------------------------------------- //void __thiscall Decal::vdtor(Decal *this, bool a2) //----- (0043B641) -------------------------------------------------------- virtual ~Decal() { } void (__thiscall ***vdestructor_ptr)(Decal *, bool); int uNumVertices; RenderVertexSoft pVertices[64]; __int16 field_C08; __int16 field_C0A; __int16 field_C0C; __int16 field_C0E; int field_C10; int field_C14; DecalBuilder_stru0 *field_C18; int field_C1C; }; #pragma pack(pop) /* 180 */ #pragma pack(push, 1) struct DecalBuilder { //----- (0049B408) -------------------------------------------------------- DecalBuilder() { char *v2; // eax@1 signed int v3; // ecx@1 auto v1 = this; /*_eh_vector_constructor_iterator_( this->std__vector_pDecals, 3104, 1024, (void (__thiscall *)(void *))Decal::Decal, (void (__thiscall *)(void *))Decal::dtor);*/ v1->std__vector_pDecals_size = 0; v1->field_308008 = 0; v2 = (char *)&v1->pVertices[0].flt_2C; v3 = 256; do { *(float *)v2 = 0.0; v2 += 48; --v3; } while ( v3 ); } //----- (0049B471) -------------------------------------------------------- virtual ~DecalBuilder() {} bool AddBloodsplat(float x, float y, float z, float r, float g, float b, float radius, int a8, int a9); void Reset(unsigned int bPreserveBloodsplats); char ApplyDecals(int a2, char a3, struct stru154 *a4, int a5, struct RenderVertexSoft *a6, int a7, char a8, int a9); 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); char ApplyBloodsplatDecals_IndoorFace(unsigned int uFaceID); char ApplyDecals_OutdoorFace(ODMFace *pFace); bool _49BE8A(struct stru148 *a2, float a3, int a4, struct RenderVertexSoft *a5, unsigned int uStripType, char a7); void DrawDecal(Decal *pDecal, float a2); void DrawDecals(float a2); void DrawBloodsplats(); void DrawDecalDebugOutlines(); void (__thiscall ***vdestructor_ptr)(DecalBuilder *, bool); Decal std__vector_pDecals[1024]; unsigned int std__vector_pDecals_size; int field_308008; RenderVertexSoft pVertices[256]; int std__vector_30B00C[1024]; int uNumDecals; float field_30C010; float field_30C014; float field_30C018; float field_30C01C; float field_30C020; float field_30C024; int field_30C028; int field_30C02C; float flt_30C030; float field_30C034; }; #pragma pack(pop) extern struct DecalBuilder *pDecalBuilder; /* 158 */ #pragma pack(push, 1) struct Bloodsplat { //----- (0043B538) -------------------------------------------------------- inline Bloodsplat() { this->field_1C = 0; this->field_20 = 0; this->field_24 = 0; //this->vdestructor_ptr = &Bloodsplat_pvdtor; } //----- (0043B54C) -------------------------------------------------------- //void __thiscall Bloodsplat::vdtor(Bloodsplat *this, char a2) //----- (0043B569) -------------------------------------------------------- virtual ~Bloodsplat() { } void (__thiscall ***vdestructor_ptr)(Bloodsplat *, bool); float x; float y; float z; float radius; int field_14; char r; char g; char b; char field_1B; int field_1C; int field_20; int field_24; }; #pragma pack(pop) /* 159 */ #pragma pack(push, 1) struct BloodsplatContainer { //----- (0043B688) -------------------------------------------------------- inline BloodsplatContainer() { /*_eh_vector_constructor_iterator_( this->std__vector_pBloodsplats, 40, 64, (void (__thiscall *)(void *))Bloodsplat::Bloodsplat, (void (__thiscall *)(void *))Bloodsplat::dtor); v1->std__vector_pBloodsplats_size = 0;*/ uNumBloodsplats = 0; } //----- (0043B6D6) -------------------------------------------------------- virtual ~BloodsplatContainer() { //this->vdestructor_ptr = &BloodsplatContainer_pvdtor; //_eh_vector_destructor_iterator_(this->std__vector_pBloodsplats, 40, 64, Bloodsplat::dtor); } bool AddBloodsplat(float x, float y, float z, float r, float g, float b, float radius, int a8, int a9); bool AddBloodsplat(float x, float y, float z, float radius, char r, char g, char b); void (__thiscall ***vdestructor_ptr)(BloodsplatContainer *, bool); Bloodsplat std__vector_pBloodsplats[64]; unsigned int std__vector_pBloodsplats_size; int uNumBloodsplats; }; #pragma pack(pop) extern struct BloodsplatContainer *pBloodsplatContainer; // idb