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