Mercurial > mm7
diff ParticleEngine.h @ 0:9c0607679772
init
author | Ritor1 |
---|---|
date | Sat, 12 Jan 2013 09:45:18 +0600 |
parents | |
children | 8ab4484c22e0 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ParticleEngine.h Sat Jan 12 09:45:18 2013 +0600 @@ -0,0 +1,112 @@ +#pragma once +#include "Render.h" + + + +/* 305 */ +#pragma pack(push, 1) +struct Particle_ +{ + int bFree; + float x; + float y; + float z; + float flt_10; + float flt_14; + float flt_18; + unsigned int uDiffuse; + int timeToLive; + unsigned int uTextureID; + float flt_28; + int field_2C; + int field_30; + int field_34; + int field_38[12]; +}; +#pragma pack(pop) + + +/* 109 */ +#pragma pack(push, 1) +struct Particle +{ + int uType; // 0x0000: empty + // 0x0100: color plane + // 0x0200: line + // 0x0400: bitmap plane + // 0x0800: sprite plane + float x; + float y; + float z; + float flt_10; + float flt_14; + float flt_18; + union + { + struct + { + unsigned char r, g, b, a; + }; + unsigned int uParticleColor; + }; + int timeToLive; + unsigned int uTextureID; + float flt_28; + float _x; + float _y; + float _z; + int field_38; + int _rotation; + int uScreenSpaceX; + int uScreenSpaceY; + int uScreenSpaceZ; // line end x + int uScreenSpaceW; // line end y + int sZValue; + int sZValue2; // line end z + int field_58; + float flt_5C; + float flt_60; + int uLightColor; +}; +#pragma pack(pop) + + + +/* 111 */ +#pragma pack(push, 1) +struct stru2_LineList +{ + unsigned int uNumLines; + RenderVertexD3D3 pLineVertices[48]; + char field_604[60]; +}; +#pragma pack(pop) + + + + + +/* 110 */ +#pragma pack(push, 1) +struct ParticleEngine +{ + ParticleEngine(); + + void ResetParticles(); + void AddParticle(Particle_ *a2); + void Draw(); + void UpdateParticles(); + bool ViewProject_TrueIfStillVisible(unsigned int uParticleID); + bool _48B5B3(unsigned int uID); + void DrawParticles_BLV(); + void DrawParticles_ODM(); + + Particle pParticles[500]; + stru2_LineList pLines; + char field_D160[4800]; + float field_E420; + int uStartParticle; + int uEndParticle; + int uTimeElapsed; +}; +#pragma pack(pop) \ No newline at end of file