annotate ParticleEngine.h @ 49:5a08b193507f

22.01.13
author Ritor1
date Tue, 22 Jan 2013 17:37:50 +0600
parents 9c0607679772
children 8ab4484c22e0
rev   line source
0
Ritor1
parents:
diff changeset
1 #pragma once
Ritor1
parents:
diff changeset
2 #include "Render.h"
Ritor1
parents:
diff changeset
3
Ritor1
parents:
diff changeset
4
Ritor1
parents:
diff changeset
5
Ritor1
parents:
diff changeset
6 /* 305 */
Ritor1
parents:
diff changeset
7 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
8 struct Particle_
Ritor1
parents:
diff changeset
9 {
Ritor1
parents:
diff changeset
10 int bFree;
Ritor1
parents:
diff changeset
11 float x;
Ritor1
parents:
diff changeset
12 float y;
Ritor1
parents:
diff changeset
13 float z;
Ritor1
parents:
diff changeset
14 float flt_10;
Ritor1
parents:
diff changeset
15 float flt_14;
Ritor1
parents:
diff changeset
16 float flt_18;
Ritor1
parents:
diff changeset
17 unsigned int uDiffuse;
Ritor1
parents:
diff changeset
18 int timeToLive;
Ritor1
parents:
diff changeset
19 unsigned int uTextureID;
Ritor1
parents:
diff changeset
20 float flt_28;
Ritor1
parents:
diff changeset
21 int field_2C;
Ritor1
parents:
diff changeset
22 int field_30;
Ritor1
parents:
diff changeset
23 int field_34;
Ritor1
parents:
diff changeset
24 int field_38[12];
Ritor1
parents:
diff changeset
25 };
Ritor1
parents:
diff changeset
26 #pragma pack(pop)
Ritor1
parents:
diff changeset
27
Ritor1
parents:
diff changeset
28
Ritor1
parents:
diff changeset
29 /* 109 */
Ritor1
parents:
diff changeset
30 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
31 struct Particle
Ritor1
parents:
diff changeset
32 {
Ritor1
parents:
diff changeset
33 int uType; // 0x0000: empty
Ritor1
parents:
diff changeset
34 // 0x0100: color plane
Ritor1
parents:
diff changeset
35 // 0x0200: line
Ritor1
parents:
diff changeset
36 // 0x0400: bitmap plane
Ritor1
parents:
diff changeset
37 // 0x0800: sprite plane
Ritor1
parents:
diff changeset
38 float x;
Ritor1
parents:
diff changeset
39 float y;
Ritor1
parents:
diff changeset
40 float z;
Ritor1
parents:
diff changeset
41 float flt_10;
Ritor1
parents:
diff changeset
42 float flt_14;
Ritor1
parents:
diff changeset
43 float flt_18;
Ritor1
parents:
diff changeset
44 union
Ritor1
parents:
diff changeset
45 {
Ritor1
parents:
diff changeset
46 struct
Ritor1
parents:
diff changeset
47 {
Ritor1
parents:
diff changeset
48 unsigned char r, g, b, a;
Ritor1
parents:
diff changeset
49 };
Ritor1
parents:
diff changeset
50 unsigned int uParticleColor;
Ritor1
parents:
diff changeset
51 };
Ritor1
parents:
diff changeset
52 int timeToLive;
Ritor1
parents:
diff changeset
53 unsigned int uTextureID;
Ritor1
parents:
diff changeset
54 float flt_28;
Ritor1
parents:
diff changeset
55 float _x;
Ritor1
parents:
diff changeset
56 float _y;
Ritor1
parents:
diff changeset
57 float _z;
Ritor1
parents:
diff changeset
58 int field_38;
Ritor1
parents:
diff changeset
59 int _rotation;
Ritor1
parents:
diff changeset
60 int uScreenSpaceX;
Ritor1
parents:
diff changeset
61 int uScreenSpaceY;
Ritor1
parents:
diff changeset
62 int uScreenSpaceZ; // line end x
Ritor1
parents:
diff changeset
63 int uScreenSpaceW; // line end y
Ritor1
parents:
diff changeset
64 int sZValue;
Ritor1
parents:
diff changeset
65 int sZValue2; // line end z
Ritor1
parents:
diff changeset
66 int field_58;
Ritor1
parents:
diff changeset
67 float flt_5C;
Ritor1
parents:
diff changeset
68 float flt_60;
Ritor1
parents:
diff changeset
69 int uLightColor;
Ritor1
parents:
diff changeset
70 };
Ritor1
parents:
diff changeset
71 #pragma pack(pop)
Ritor1
parents:
diff changeset
72
Ritor1
parents:
diff changeset
73
Ritor1
parents:
diff changeset
74
Ritor1
parents:
diff changeset
75 /* 111 */
Ritor1
parents:
diff changeset
76 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
77 struct stru2_LineList
Ritor1
parents:
diff changeset
78 {
Ritor1
parents:
diff changeset
79 unsigned int uNumLines;
Ritor1
parents:
diff changeset
80 RenderVertexD3D3 pLineVertices[48];
Ritor1
parents:
diff changeset
81 char field_604[60];
Ritor1
parents:
diff changeset
82 };
Ritor1
parents:
diff changeset
83 #pragma pack(pop)
Ritor1
parents:
diff changeset
84
Ritor1
parents:
diff changeset
85
Ritor1
parents:
diff changeset
86
Ritor1
parents:
diff changeset
87
Ritor1
parents:
diff changeset
88
Ritor1
parents:
diff changeset
89 /* 110 */
Ritor1
parents:
diff changeset
90 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
91 struct ParticleEngine
Ritor1
parents:
diff changeset
92 {
Ritor1
parents:
diff changeset
93 ParticleEngine();
Ritor1
parents:
diff changeset
94
Ritor1
parents:
diff changeset
95 void ResetParticles();
Ritor1
parents:
diff changeset
96 void AddParticle(Particle_ *a2);
Ritor1
parents:
diff changeset
97 void Draw();
Ritor1
parents:
diff changeset
98 void UpdateParticles();
Ritor1
parents:
diff changeset
99 bool ViewProject_TrueIfStillVisible(unsigned int uParticleID);
Ritor1
parents:
diff changeset
100 bool _48B5B3(unsigned int uID);
Ritor1
parents:
diff changeset
101 void DrawParticles_BLV();
Ritor1
parents:
diff changeset
102 void DrawParticles_ODM();
Ritor1
parents:
diff changeset
103
Ritor1
parents:
diff changeset
104 Particle pParticles[500];
Ritor1
parents:
diff changeset
105 stru2_LineList pLines;
Ritor1
parents:
diff changeset
106 char field_D160[4800];
Ritor1
parents:
diff changeset
107 float field_E420;
Ritor1
parents:
diff changeset
108 int uStartParticle;
Ritor1
parents:
diff changeset
109 int uEndParticle;
Ritor1
parents:
diff changeset
110 int uTimeElapsed;
Ritor1
parents:
diff changeset
111 };
Ritor1
parents:
diff changeset
112 #pragma pack(pop)