view ParticleEngine.h @ 145:dac041fc74e8

19.11.12
author Ritor1
date Mon, 19 Nov 2012 09:41:10 +0600
parents bcc051713d20
children
line wrap: on
line source

#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)