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