annotate ParticleEngine.h @ 229:05a2d2b35ed0

m
author Gloval
date Sun, 17 Feb 2013 17:07:52 +0400
parents 8ab4484c22e0
children 574cc56e05e9
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
144
8ab4484c22e0 Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents: 0
diff changeset
64 union
8ab4484c22e0 Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents: 0
diff changeset
65 {
8ab4484c22e0 Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents: 0
diff changeset
66 int sZValue;
8ab4484c22e0 Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents: 0
diff changeset
67 struct
8ab4484c22e0 Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents: 0
diff changeset
68 {
8ab4484c22e0 Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents: 0
diff changeset
69 unsigned short object_pid;
8ab4484c22e0 Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents: 0
diff changeset
70 short zbuffer_depth;
8ab4484c22e0 Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents: 0
diff changeset
71 };
8ab4484c22e0 Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents: 0
diff changeset
72 };
0
Ritor1
parents:
diff changeset
73 int sZValue2; // line end z
144
8ab4484c22e0 Billboard drawing's up (actors, decorations, misc sprites)
Nomad
parents: 0
diff changeset
74 int _screenspace_scale;
0
Ritor1
parents:
diff changeset
75 float flt_5C;
Ritor1
parents:
diff changeset
76 float flt_60;
Ritor1
parents:
diff changeset
77 int uLightColor;
Ritor1
parents:
diff changeset
78 };
Ritor1
parents:
diff changeset
79 #pragma pack(pop)
Ritor1
parents:
diff changeset
80
Ritor1
parents:
diff changeset
81
Ritor1
parents:
diff changeset
82
Ritor1
parents:
diff changeset
83 /* 111 */
Ritor1
parents:
diff changeset
84 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
85 struct stru2_LineList
Ritor1
parents:
diff changeset
86 {
Ritor1
parents:
diff changeset
87 unsigned int uNumLines;
Ritor1
parents:
diff changeset
88 RenderVertexD3D3 pLineVertices[48];
Ritor1
parents:
diff changeset
89 char field_604[60];
Ritor1
parents:
diff changeset
90 };
Ritor1
parents:
diff changeset
91 #pragma pack(pop)
Ritor1
parents:
diff changeset
92
Ritor1
parents:
diff changeset
93
Ritor1
parents:
diff changeset
94
Ritor1
parents:
diff changeset
95
Ritor1
parents:
diff changeset
96
Ritor1
parents:
diff changeset
97 /* 110 */
Ritor1
parents:
diff changeset
98 #pragma pack(push, 1)
Ritor1
parents:
diff changeset
99 struct ParticleEngine
Ritor1
parents:
diff changeset
100 {
Ritor1
parents:
diff changeset
101 ParticleEngine();
Ritor1
parents:
diff changeset
102
Ritor1
parents:
diff changeset
103 void ResetParticles();
Ritor1
parents:
diff changeset
104 void AddParticle(Particle_ *a2);
Ritor1
parents:
diff changeset
105 void Draw();
Ritor1
parents:
diff changeset
106 void UpdateParticles();
Ritor1
parents:
diff changeset
107 bool ViewProject_TrueIfStillVisible(unsigned int uParticleID);
Ritor1
parents:
diff changeset
108 bool _48B5B3(unsigned int uID);
Ritor1
parents:
diff changeset
109 void DrawParticles_BLV();
Ritor1
parents:
diff changeset
110 void DrawParticles_ODM();
Ritor1
parents:
diff changeset
111
Ritor1
parents:
diff changeset
112 Particle pParticles[500];
Ritor1
parents:
diff changeset
113 stru2_LineList pLines;
Ritor1
parents:
diff changeset
114 char field_D160[4800];
Ritor1
parents:
diff changeset
115 float field_E420;
Ritor1
parents:
diff changeset
116 int uStartParticle;
Ritor1
parents:
diff changeset
117 int uEndParticle;
Ritor1
parents:
diff changeset
118 int uTimeElapsed;
Ritor1
parents:
diff changeset
119 };
Ritor1
parents:
diff changeset
120 #pragma pack(pop)