Mercurial > mm7
view ParticleEngine.h @ 777:b9f6dd6f1444
Travel by Transport finally works (phew).
author | Nomad |
---|---|
date | Sun, 24 Mar 2013 00:15:01 +0200 |
parents | 574cc56e05e9 |
children | 710cf848ad24 |
line wrap: on
line source
#pragma once #include "Render.h" enum ParticleType: unsigned __int32 { ParticleType_Invalid = 0, ParticleType_1 = 0x0001, ParticleType_Rotating = 0x0004, ParticleType_8 = 0x0008, ParticleType_Diffuse = 0x0100, // colored plane ParticleType_Line = 0x0200, // line ParticleType_Bitmap = 0x0400, // textured planed ParticleType_Sprite = 0x0800 }; /* 305 */ #pragma pack(push, 1) struct Particle_sw { unsigned int type; 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 { unsigned int type; 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 union { int sZValue; struct { unsigned short object_pid; short zbuffer_depth; }; }; int sZValue2; // line end z int _screenspace_scale; 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_sw *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)