Mercurial > mm7
annotate ParticleEngine.h @ 1081:6ea7c693a1cf
Merge
author | Gloval |
---|---|
date | Sat, 25 May 2013 23:51:56 +0400 |
parents | 710cf848ad24 |
children | db395ce89ede |
rev | line source |
---|---|
0 | 1 #pragma once |
2 #include "Render.h" | |
3 | |
4 | |
5 | |
619 | 6 enum ParticleType: unsigned __int32 |
7 { | |
8 ParticleType_Invalid = 0, | |
9 ParticleType_1 = 0x0001, | |
10 ParticleType_Rotating = 0x0004, | |
11 ParticleType_8 = 0x0008, | |
12 ParticleType_Diffuse = 0x0100, // colored plane | |
13 ParticleType_Line = 0x0200, // line | |
14 ParticleType_Bitmap = 0x0400, // textured planed | |
15 ParticleType_Sprite = 0x0800 | |
16 }; | |
17 | |
0 | 18 /* 305 */ |
19 #pragma pack(push, 1) | |
619 | 20 struct Particle_sw |
0 | 21 { |
619 | 22 unsigned int type; |
0 | 23 float x; |
24 float y; | |
25 float z; | |
26 float flt_10; | |
27 float flt_14; | |
28 float flt_18; | |
29 unsigned int uDiffuse; | |
30 int timeToLive; | |
31 unsigned int uTextureID; | |
32 float flt_28; | |
33 int field_2C; | |
34 int field_30; | |
35 int field_34; | |
36 int field_38[12]; | |
37 }; | |
38 #pragma pack(pop) | |
39 | |
40 | |
619 | 41 |
0 | 42 /* 109 */ |
43 #pragma pack(push, 1) | |
44 struct Particle | |
45 { | |
619 | 46 unsigned int type; |
0 | 47 float x; |
48 float y; | |
49 float z; | |
50 float flt_10; | |
51 float flt_14; | |
52 float flt_18; | |
53 union | |
54 { | |
55 struct | |
56 { | |
57 unsigned char r, g, b, a; | |
58 }; | |
59 unsigned int uParticleColor; | |
60 }; | |
61 int timeToLive; | |
62 unsigned int uTextureID; | |
63 float flt_28; | |
64 float _x; | |
65 float _y; | |
66 float _z; | |
871 | 67 int rotation_speed; |
68 int angle; | |
0 | 69 int uScreenSpaceX; |
70 int uScreenSpaceY; | |
71 int uScreenSpaceZ; // line end x | |
72 int uScreenSpaceW; // line end y | |
144
8ab4484c22e0
Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents:
0
diff
changeset
|
73 union |
8ab4484c22e0
Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents:
0
diff
changeset
|
74 { |
8ab4484c22e0
Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents:
0
diff
changeset
|
75 int sZValue; |
8ab4484c22e0
Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents:
0
diff
changeset
|
76 struct |
8ab4484c22e0
Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents:
0
diff
changeset
|
77 { |
8ab4484c22e0
Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents:
0
diff
changeset
|
78 unsigned short object_pid; |
8ab4484c22e0
Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents:
0
diff
changeset
|
79 short zbuffer_depth; |
8ab4484c22e0
Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents:
0
diff
changeset
|
80 }; |
8ab4484c22e0
Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents:
0
diff
changeset
|
81 }; |
0 | 82 int sZValue2; // line end z |
144
8ab4484c22e0
Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents:
0
diff
changeset
|
83 int _screenspace_scale; |
0 | 84 float flt_5C; |
85 float flt_60; | |
871 | 86 int uLightColor_bgr; |
0 | 87 }; |
88 #pragma pack(pop) | |
89 | |
90 | |
91 | |
92 /* 111 */ | |
93 #pragma pack(push, 1) | |
94 struct stru2_LineList | |
95 { | |
96 unsigned int uNumLines; | |
97 RenderVertexD3D3 pLineVertices[48]; | |
98 char field_604[60]; | |
99 }; | |
100 #pragma pack(pop) | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 /* 110 */ | |
107 #pragma pack(push, 1) | |
108 struct ParticleEngine | |
109 { | |
110 ParticleEngine(); | |
111 | |
112 void ResetParticles(); | |
619 | 113 void AddParticle(Particle_sw *a2); |
0 | 114 void Draw(); |
619 | 115 void UpdateParticles(); |
871 | 116 bool ViewProject_TrueIfStillVisible_BLV(unsigned int uParticleID); |
117 bool ViewProject_TrueIfStillVisible_ODM(unsigned int uID); | |
0 | 118 void DrawParticles_BLV(); |
119 void DrawParticles_ODM(); | |
120 | |
121 Particle pParticles[500]; | |
122 stru2_LineList pLines; | |
123 char field_D160[4800]; | |
124 float field_E420; | |
125 int uStartParticle; | |
126 int uEndParticle; | |
127 int uTimeElapsed; | |
128 }; | |
129 #pragma pack(pop) |