Mercurial > mm7
view ParticleEngine.h @ 1026:6afa77761a00
Слияние
author | Ritor1 |
---|---|
date | Tue, 21 May 2013 12:43:08 +0600 |
parents | 710cf848ad24 |
children | db395ce89ede |
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 rotation_speed; int angle; 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_bgr; }; #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_BLV(unsigned int uParticleID); bool ViewProject_TrueIfStillVisible_ODM(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)