Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
part_ldr.h
Go to the documentation of this file.
1/*
2** Command & Conquer Generals Zero Hour(tm)
3** Copyright 2025 Electronic Arts Inc.
4**
5** This program is free software: you can redistribute it and/or modify
6** it under the terms of the GNU General Public License as published by
7** the Free Software Foundation, either version 3 of the License, or
8** (at your option) any later version.
9**
10** This program is distributed in the hope that it will be useful,
11** but WITHOUT ANY WARRANTY; without even the implied warranty of
12** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13** GNU General Public License for more details.
14**
15** You should have received a copy of the GNU General Public License
16** along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19/***********************************************************************************************
20 *** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
21 ***********************************************************************************************
22 * *
23 * Project Name : WW3D *
24 * *
25 * $Archive:: /Commando/Code/ww3d2/part_ldr.h $*
26 * *
27 * Author:: Patrick Smith
28 * *
29 * $Modtime:: 8/01/01 3:35p $*
30 * *
31 * $Revision:: 7 $*
32 * *
33 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
34
35
36#if defined(_MSC_VER)
37#pragma once
38#endif
39
40#ifndef __PART_EMT_LDR_H
41#define __PART_EMT_LDR_H
42
43
44#include "proto.h"
45#include "rendobj.h"
46#include "w3d_file.h"
47#include "w3derr.h"
48#include "w3d_util.h"
49#include "part_emt.h"
50
51
52
53// Forward declarations
54class ChunkLoadClass;
55class ChunkSaveClass;
57
58
60//
61// Macros
62//
63#ifndef SAFE_FREE
64#define SAFE_FREE(pointer) \
65{ \
66 if (pointer) { \
67 ::free (pointer); \
68 pointer = 0; \
69 } \
70}
71#endif //SAFE_FREE
72
73
74#define BYTE_TO_FLOAT(byte) \
75 (((float)byte) / 255.0F) \
76
77#define FLOAT_TO_BYTE(fval) \
78 ((unsigned char)(max(fval,0.0F) * 255.0F)) \
79
80#define RGBA_TO_VECTOR3(rgba) \
81 Vector3 (BYTE_TO_FLOAT(rgba.R), BYTE_TO_FLOAT (rgba.G), BYTE_TO_FLOAT (rgba.B)) \
82
83#define VECTOR3_TO_RGBA(vector3, rgba) \
84 rgba.R = FLOAT_TO_BYTE (vector3.X); \
85 rgba.G = FLOAT_TO_BYTE (vector3.Y); \
86 rgba.B = FLOAT_TO_BYTE (vector3.Z); \
87
88
90//
91// ParticleEmitterDefClass
92//
93// Description of a general particle emitter object. Used by the asset manager
94// to construct particle emitters.
95//
97{
98 public:
99
101 //
102 // Public constructors/destructors
103 //
106 virtual ~ParticleEmitterDefClass (void);
107
108
110 //
111 // Public operators
112 //
114
115
117 //
118 // Public methods
119 //
120 virtual WW3DErrorType Load_W3D (ChunkLoadClass &chunk_load);
121 virtual WW3DErrorType Save_W3D (ChunkSaveClass &chunk_save);
122 const char * Get_Name (void) const { return m_pName; }
123 virtual void Set_Name (const char *pname);
124
125 //
126 // Informational methods
127 //
128 unsigned int Get_Version (void) const { return m_Version; }
129
130 //
131 // Inline Accessors
132 //
133 int Get_Render_Mode (void) const { return m_InfoV2.RenderMode; } // values defined in w3d_file.h
134 int Get_Frame_Mode (void) const { return m_InfoV2.FrameMode; } // values in w3d_file.h
135 const char * Get_Texture_Filename (void) const { return m_Info.TextureFilename; }
136 float Get_Lifetime (void) const { return m_Info.Lifetime; }
137 float Get_Emission_Rate (void) const { return m_Info.EmissionRate; }
138 float Get_Max_Emissions (void) const { return m_Info.MaxEmissions; }
139 float Get_Fade_Time (void) const { return m_Info.FadeTime; }
140 float Get_Gravity (void) const { return m_Info.Gravity; }
141 float Get_Elasticity (void) const { return m_Info.Elasticity; }
142 Vector3 Get_Velocity (void) const { return Vector3 (m_Info.Velocity.X, m_Info.Velocity.Y, m_Info.Velocity.Z); }
143 Vector3 Get_Acceleration (void) const { return Vector3 (m_Info.Acceleration.X, m_Info.Acceleration.Y, m_Info.Acceleration.Z); }
144 unsigned int Get_Burst_Size (void) const { return m_InfoV2.BurstSize; }
145 float Get_Outward_Vel (void) const { return m_InfoV2.OutwardVel; }
146 float Get_Vel_Inherit (void) const { return m_InfoV2.VelInherit; }
147 float Get_Future_Start_Time (void) const { return m_ExtraInfo.FutureStartTime; }
148
149 virtual void Set_Render_Mode (int mode) { m_InfoV2.RenderMode = mode; } // values in w3d_file.h
150 virtual void Set_Frame_Mode (int mode) { m_InfoV2.FrameMode = mode; } // values in w3d_file.h
151 virtual void Set_Texture_Filename (const char *pname);
152 virtual void Set_Lifetime (float value) { m_Info.Lifetime = value; }
153 virtual void Set_Emission_Rate (float value) { m_Info.EmissionRate = value; }
154 virtual void Set_Max_Emissions (float value) { m_Info.MaxEmissions = value; }
155 virtual void Set_Fade_Time (float value) { m_Info.FadeTime = value; }
156 virtual void Set_Gravity (float value) { m_Info.Gravity = value; }
157 virtual void Set_Elasticity (float value) { m_Info.Elasticity = value; }
158 virtual void Set_Velocity (const Vector3 &value) { m_Info.Velocity.X = value.X; m_Info.Velocity.Y = value.Y; m_Info.Velocity.Z = value.Z; }
159 virtual void Set_Acceleration (const Vector3 &value) { m_Info.Acceleration.X = value.X; m_Info.Acceleration.Y = value.Y; m_Info.Acceleration.Z = value.Z; }
160 virtual void Set_Burst_Size (unsigned int count) { m_InfoV2.BurstSize = count; }
161 virtual void Set_Outward_Vel (float value) { m_InfoV2.OutwardVel = value; }
162 virtual void Set_Vel_Inherit (float value) { m_InfoV2.VelInherit = value; }
163 virtual void Set_Future_Start_Time (float value) { m_ExtraInfo.FutureStartTime = value; }
164
165 void Get_Shader (ShaderClass &shader) const { W3dUtilityClass::Convert_Shader (m_InfoV2.Shader, &shader); }
166 virtual void Set_Shader (const ShaderClass &shader) { W3dUtilityClass::Convert_Shader (shader, &m_InfoV2.Shader); }
167
168 //
169 // Randomizer accessors
170 //
171 Vector3Randomizer * Get_Creation_Volume (void) const { return m_pCreationVolume->Clone (); }
172 Vector3Randomizer * Get_Velocity_Random (void) const { return m_pVelocityRandomizer->Clone (); }
173 virtual void Set_Creation_Volume (Vector3Randomizer *randomizer);
174 virtual void Set_Velocity_Random (Vector3Randomizer *randomizer);
175
176 //
177 // Keyframe accessors
178 //
179 virtual void Get_Color_Keyframes (ParticlePropertyStruct<Vector3> &keyframes) const;
180 virtual void Get_Opacity_Keyframes (ParticlePropertyStruct<float> &keyframes) const;
181 virtual void Get_Size_Keyframes (ParticlePropertyStruct<float> &keyframes) const;
182 virtual void Get_Rotation_Keyframes (ParticlePropertyStruct<float> &rotationframes) const;
183 virtual void Get_Frame_Keyframes (ParticlePropertyStruct<float> &frameframes) const;
184 virtual void Get_Blur_Time_Keyframes (ParticlePropertyStruct<float> &blurtimeframes) const;
185 virtual float Get_Initial_Orientation_Random (void) const { return m_InitialOrientationRandom; }
186
189 virtual void Set_Size_Keyframes (ParticlePropertyStruct<float> &keyframes);
190 virtual void Set_Rotation_Keyframes (ParticlePropertyStruct<float> &keyframes, float orient_rnd);
191 virtual void Set_Frame_Keyframes (ParticlePropertyStruct<float> &keyframes);
193
194 //
195 // User data accessors
196 //
197 const char * Get_User_String (void) const { return m_pUserString; }
198 int Get_User_Type (void) const { return m_iUserType; }
199 virtual void Set_User_String (const char *pstring);
200 virtual void Set_User_Type (int type) { m_iUserType = type; }
201
202 //
203 // Line Properties accessors
204 // NOTE: These properties are only used when Line rendering mode is used.
205 //
206 const W3dEmitterLinePropertiesStruct * Get_Line_Properties(void) const { return &m_LineProperties; }
207
209 int Is_Merge_Intersections(void) const { return m_LineProperties.Flags & W3D_ELINE_MERGE_INTERSECTIONS; }
210 int Is_Freeze_Random(void) const { return m_LineProperties.Flags & W3D_ELINE_FREEZE_RANDOM; }
211 int Is_Sorting_Disabled(void) const { return m_LineProperties.Flags & W3D_ELINE_DISABLE_SORTING; }
212 int Are_End_Caps_Enabled(void) const { return m_LineProperties.Flags & W3D_ELINE_END_CAPS; }
213 int Get_Subdivision_Level(void) const { return m_LineProperties.SubdivisionLevel; }
214 float Get_Noise_Amplitude(void) const { return m_LineProperties.NoiseAmplitude; }
215 float Get_Merge_Abort_Factor(void) const { return m_LineProperties.MergeAbortFactor; }
216 float Get_Texture_Tile_Factor(void) const { return m_LineProperties.TextureTileFactor; }
217 Vector2 Get_UV_Offset_Rate(void) const { return Vector2(m_LineProperties.UPerSec,m_LineProperties.VPerSec); }
218
219 virtual void Set_Line_Texture_Mapping_Mode(int mode);
220 virtual void Set_Merge_Intersections(int onoff) { if (onoff) { m_LineProperties.Flags |= W3D_ELINE_MERGE_INTERSECTIONS; } else { m_LineProperties.Flags &= ~W3D_ELINE_MERGE_INTERSECTIONS; }; }
221 virtual void Set_Freeze_Random(int onoff) { if (onoff) { m_LineProperties.Flags |= W3D_ELINE_FREEZE_RANDOM; } else { m_LineProperties.Flags &= ~W3D_ELINE_FREEZE_RANDOM; }; }
222 virtual void Set_Disable_Sorting(int onoff) { if (onoff) { m_LineProperties.Flags |= W3D_ELINE_DISABLE_SORTING; } else { m_LineProperties.Flags &= ~W3D_ELINE_DISABLE_SORTING; }; }
223 virtual void Set_End_Caps(int onoff) { if (onoff) { m_LineProperties.Flags |= W3D_ELINE_END_CAPS; } else { m_LineProperties.Flags &= ~W3D_ELINE_END_CAPS; }; }
224 virtual void Set_Subdivision_Level(int lvl) { m_LineProperties.SubdivisionLevel = lvl; }
225 virtual void Set_Noise_Amplitude(float k) { m_LineProperties.NoiseAmplitude = k; }
226 virtual void Set_Merge_Abort_Factor(float k) { m_LineProperties.MergeAbortFactor = k; }
227 virtual void Set_Texture_Tile_Factor(float k) { m_LineProperties.TextureTileFactor = k; }
228 virtual void Set_UV_Offset_Rate(const Vector2 & rate) { m_LineProperties.UPerSec = rate.X; m_LineProperties.VPerSec = rate.Y; }
229
230 protected:
231
233 //
234 // Protected methods
235 //
236
237 //
238 // Loading methods
239 //
240 virtual WW3DErrorType Read_Header (ChunkLoadClass &chunk_load);
241 virtual WW3DErrorType Read_User_Data (ChunkLoadClass &chunk_load);
242 virtual WW3DErrorType Read_Info (ChunkLoadClass &chunk_load);
243 virtual WW3DErrorType Read_InfoV2 (ChunkLoadClass &chunk_load);
244 virtual WW3DErrorType Read_Props (ChunkLoadClass &chunk_load);
249 virtual WW3DErrorType Read_Extra_Info (ChunkLoadClass &chunk_load);
250
251 virtual bool Read_Color_Keyframe (ChunkLoadClass &chunk_load, float *key_time, Vector3 *value);
252 virtual bool Read_Opacity_Keyframe (ChunkLoadClass &chunk_load, float *key_time, float *value);
253 virtual bool Read_Size_Keyframe (ChunkLoadClass &chunk_load, float *key_time, float *value);
254
255 //
256 // Saving methods
257 //
258 virtual WW3DErrorType Save_Header (ChunkSaveClass &chunk_save);
259 virtual WW3DErrorType Save_User_Data (ChunkSaveClass &chunk_save);
260 virtual WW3DErrorType Save_Info (ChunkSaveClass &chunk_save);
261 virtual WW3DErrorType Save_InfoV2 (ChunkSaveClass &chunk_save);
262 virtual WW3DErrorType Save_Props (ChunkSaveClass &chunk_save);
267 virtual WW3DErrorType Save_Extra_Info (ChunkSaveClass & chunk_save);
268
272
274 virtual void Initialize_Randomizer_Struct (const Vector3Randomizer &randomizer, W3dVolumeRandomizerStruct &info);
275
276 //
277 // Conversion methods
278 //
279 virtual void Initialize_To_Ver2 (void);
280 virtual void Convert_To_Ver2 (void);
281
282 //
283 // Misc. methods
284 //
285 virtual void Normalize_Filename (void);
286 virtual void Free_Props (void);
287
288 private:
289
291 //
292 // Private member data
293 //
295 char * m_pName;
296 char * m_pUserString;
297 int m_iUserType;
298 unsigned int m_Version;
299 ShaderClass m_Shader;
301 W3dEmitterInfoStructV2 m_InfoV2;
302 W3dEmitterExtraInfoStruct m_ExtraInfo;
303 W3dEmitterLinePropertiesStruct m_LineProperties;
304 ParticlePropertyStruct<Vector3> m_ColorKeyframes;
305 ParticlePropertyStruct<float> m_OpacityKeyframes;
306 ParticlePropertyStruct<float> m_SizeKeyframes;
307 ParticlePropertyStruct<float> m_RotationKeyframes;
308 float m_InitialOrientationRandom;
309 ParticlePropertyStruct<float> m_FrameKeyframes;
310 ParticlePropertyStruct<float> m_BlurTimeKeyframes;
311 Vector3Randomizer * m_pCreationVolume;
312 Vector3Randomizer * m_pVelocityRandomizer;
313};
314
316{
317 m_LineProperties.Flags &= ~W3D_ELINE_TEXTURE_MAP_MODE_MASK;
318 m_LineProperties.Flags |= ((mode << W3D_ELINE_TEXTURE_MAP_MODE_OFFSET) & W3D_ELINE_TEXTURE_MAP_MODE_MASK);
319}
320
321
322
324//
325// ParticleEmitterPrototypeClass
326//
328{
330 public:
331
333 //
334 // Public constructors/destructors
335 //
337
339 //
340 // Public methods
341 //
342 virtual const char * Get_Name (void) const { return m_pDefinition->Get_Name(); }
343 virtual int Get_Class_ID (void) const { return RenderObjClass::CLASSID_PARTICLEEMITTER; }
344 virtual RenderObjClass * Create (void);
345 virtual void DeleteSelf() { delete this; }
346 virtual ParticleEmitterDefClass * Get_Definition (void) const { return m_pDefinition; }
347
348 protected:
350
351 protected:
353 //
354 // Protected member data (so derived can access)
355 //
357};
358
359
361//
362// ParticleEmitterLoaderClass
363//
365{
366 public:
367
368 virtual int Chunk_Type (void) { return W3D_CHUNK_EMITTER; }
369 virtual PrototypeClass * Load_W3D (ChunkLoadClass &chunk_load);
370};
371
372
374//
375// Global variables
376//
378
379
380#endif //__PART_EMT_LDR_H
void const char * value
#define W3D_ELINE_FREEZE_RANDOM
Definition w3d_file.h:1926
#define W3D_ELINE_DISABLE_SORTING
Definition w3d_file.h:1927
#define W3D_ELINE_MERGE_INTERSECTIONS
Definition w3d_file.h:1925
#define W3D_ELINE_TEXTURE_MAP_MODE_MASK
Definition w3d_file.h:1929
#define W3D_ELINE_TEXTURE_MAP_MODE_OFFSET
Definition w3d_file.h:1931
@ W3D_CHUNK_EMITTER
Definition w3d_file.h:444
#define W3D_ELINE_END_CAPS
Definition w3d_file.h:1928
#define W3DMPO_GLUE(ARGCLASS)
Definition always.h:120
virtual WW3DErrorType Save_Color_Keyframes(ChunkSaveClass &chunk_save)
virtual void Convert_To_Ver2(void)
Definition part_ldr.cpp:460
virtual WW3DErrorType Save_W3D(ChunkSaveClass &chunk_save)
float Get_Future_Start_Time(void) const
Definition part_ldr.h:147
virtual void Get_Size_Keyframes(ParticlePropertyStruct< float > &keyframes) const
float Get_Max_Emissions(void) const
Definition part_ldr.h:138
int Get_Line_Texture_Mapping_Mode(void) const
Definition part_ldr.h:208
virtual void Set_User_Type(int type)
Definition part_ldr.h:200
int Get_Render_Mode(void) const
Definition part_ldr.h:133
virtual WW3DErrorType Save_Extra_Info(ChunkSaveClass &chunk_save)
int Is_Merge_Intersections(void) const
Definition part_ldr.h:209
virtual void Set_User_String(const char *pstring)
Definition part_ldr.cpp:288
virtual void Set_Texture_Filename(const char *pname)
Definition part_ldr.cpp:314
const char * Get_Name(void) const
Definition part_ldr.h:122
virtual void Set_Velocity(const Vector3 &value)
Definition part_ldr.h:158
virtual void Set_Frame_Keyframes(ParticlePropertyStruct< float > &keyframes)
virtual void Set_Size_Keyframes(ParticlePropertyStruct< float > &keyframes)
virtual void Set_Frame_Mode(int mode)
Definition part_ldr.h:150
float Get_Vel_Inherit(void) const
Definition part_ldr.h:146
virtual void Set_End_Caps(int onoff)
Definition part_ldr.h:223
virtual WW3DErrorType Load_W3D(ChunkLoadClass &chunk_load)
Definition part_ldr.cpp:352
const ParticleEmitterDefClass & operator=(const ParticleEmitterDefClass &src)
Definition part_ldr.cpp:170
int Are_End_Caps_Enabled(void) const
Definition part_ldr.h:212
float Get_Fade_Time(void) const
Definition part_ldr.h:139
virtual void Get_Opacity_Keyframes(ParticlePropertyStruct< float > &keyframes) const
virtual WW3DErrorType Read_Rotation_Keyframes(ChunkLoadClass &chunk_load)
virtual void Set_Lifetime(float value)
Definition part_ldr.h:152
virtual bool Read_Opacity_Keyframe(ChunkLoadClass &chunk_load, float *key_time, float *value)
Definition part_ldr.cpp:909
virtual void Set_Name(const char *pname)
Definition part_ldr.cpp:301
virtual WW3DErrorType Read_Props(ChunkLoadClass &chunk_load)
Definition part_ldr.cpp:758
virtual void Get_Color_Keyframes(ParticlePropertyStruct< Vector3 > &keyframes) const
unsigned int Get_Burst_Size(void) const
Definition part_ldr.h:144
virtual WW3DErrorType Read_Extra_Info(ChunkLoadClass &chunk_load)
float Get_Merge_Abort_Factor(void) const
Definition part_ldr.h:215
virtual void Set_Velocity_Random(Vector3Randomizer *randomizer)
Definition part_ldr.cpp:246
virtual void Set_Merge_Intersections(int onoff)
Definition part_ldr.h:220
int Get_Subdivision_Level(void) const
Definition part_ldr.h:213
virtual void Set_Disable_Sorting(int onoff)
Definition part_ldr.h:222
virtual WW3DErrorType Save_Size_Keyframes(ChunkSaveClass &chunk_save)
virtual Vector3Randomizer * Create_Randomizer(W3dVolumeRandomizerStruct &info)
Definition part_ldr.cpp:647
virtual WW3DErrorType Save_Header(ChunkSaveClass &chunk_save)
float Get_Noise_Amplitude(void) const
Definition part_ldr.h:214
virtual void Set_Merge_Abort_Factor(float k)
Definition part_ldr.h:226
virtual ~ParticleEmitterDefClass(void)
Definition part_ldr.cpp:139
int Is_Freeze_Random(void) const
Definition part_ldr.h:210
virtual WW3DErrorType Save_InfoV2(ChunkSaveClass &chunk_save)
const char * Get_User_String(void) const
Definition part_ldr.h:197
int Get_User_Type(void) const
Definition part_ldr.h:198
virtual WW3DErrorType Save_Props(ChunkSaveClass &chunk_save)
virtual WW3DErrorType Read_User_Data(ChunkLoadClass &chunk_load)
Definition part_ldr.cpp:572
virtual void Set_Max_Emissions(float value)
Definition part_ldr.h:154
const char * Get_Texture_Filename(void) const
Definition part_ldr.h:135
virtual WW3DErrorType Read_Info(ChunkLoadClass &chunk_load)
Definition part_ldr.cpp:616
virtual void Set_Noise_Amplitude(float k)
Definition part_ldr.h:225
virtual void Normalize_Filename(void)
Definition part_ldr.cpp:327
Vector3Randomizer * Get_Creation_Volume(void) const
Definition part_ldr.h:171
virtual WW3DErrorType Read_Frame_Keyframes(ChunkLoadClass &chunk_load)
virtual float Get_Initial_Orientation_Random(void) const
Definition part_ldr.h:185
virtual void Get_Rotation_Keyframes(ParticlePropertyStruct< float > &rotationframes) const
void Get_Shader(ShaderClass &shader) const
Definition part_ldr.h:165
virtual void Free_Props(void)
Definition part_ldr.cpp:215
virtual void Set_Shader(const ShaderClass &shader)
Definition part_ldr.h:166
virtual WW3DErrorType Read_Header(ChunkLoadClass &chunk_load)
Definition part_ldr.cpp:538
virtual bool Read_Size_Keyframe(ChunkLoadClass &chunk_load, float *key_time, float *value)
Definition part_ldr.cpp:947
float Get_Texture_Tile_Factor(void) const
Definition part_ldr.h:216
float Get_Gravity(void) const
Definition part_ldr.h:140
virtual WW3DErrorType Read_Line_Properties(ChunkLoadClass &chunk_load)
Definition part_ldr.cpp:984
virtual void Set_Line_Texture_Mapping_Mode(int mode)
Definition part_ldr.h:315
virtual WW3DErrorType Save_Frame_Keyframes(ChunkSaveClass &chunk_save)
Vector2 Get_UV_Offset_Rate(void) const
Definition part_ldr.h:217
int Is_Sorting_Disabled(void) const
Definition part_ldr.h:211
virtual void Set_Color_Keyframes(ParticlePropertyStruct< Vector3 > &keyframes)
virtual void Initialize_Randomizer_Struct(const Vector3Randomizer &randomizer, W3dVolumeRandomizerStruct &info)
Definition part_ldr.cpp:679
virtual void Set_UV_Offset_Rate(const Vector2 &rate)
Definition part_ldr.h:228
float Get_Elasticity(void) const
Definition part_ldr.h:141
virtual WW3DErrorType Save_Info(ChunkSaveClass &chunk_save)
virtual void Set_Acceleration(const Vector3 &value)
Definition part_ldr.h:159
int Get_Frame_Mode(void) const
Definition part_ldr.h:134
unsigned int Get_Version(void) const
Definition part_ldr.h:128
virtual WW3DErrorType Read_Blur_Time_Keyframes(ChunkLoadClass &chunk_load)
virtual void Set_Gravity(float value)
Definition part_ldr.h:156
virtual WW3DErrorType Read_InfoV2(ChunkLoadClass &chunk_load)
Definition part_ldr.cpp:719
virtual void Set_Subdivision_Level(int lvl)
Definition part_ldr.h:224
float Get_Outward_Vel(void) const
Definition part_ldr.h:145
virtual void Set_Rotation_Keyframes(ParticlePropertyStruct< float > &keyframes, float orient_rnd)
virtual void Set_Render_Mode(int mode)
Definition part_ldr.h:149
virtual void Set_Emission_Rate(float value)
Definition part_ldr.h:153
Vector3 Get_Acceleration(void) const
Definition part_ldr.h:143
virtual WW3DErrorType Save_Rotation_Keyframes(ChunkSaveClass &chunk_save)
virtual WW3DErrorType Save_Blur_Time_Keyframes(ChunkSaveClass &chunk_save)
Vector3Randomizer * Get_Velocity_Random(void) const
Definition part_ldr.h:172
virtual void Set_Freeze_Random(int onoff)
Definition part_ldr.h:221
virtual void Set_Outward_Vel(float value)
Definition part_ldr.h:161
virtual WW3DErrorType Save_Line_Properties(ChunkSaveClass &chunk_save)
float Get_Emission_Rate(void) const
Definition part_ldr.h:137
virtual void Set_Blur_Time_Keyframes(ParticlePropertyStruct< float > &keyframes)
virtual bool Read_Color_Keyframe(ChunkLoadClass &chunk_load, float *key_time, Vector3 *value)
Definition part_ldr.cpp:871
virtual void Set_Opacity_Keyframes(ParticlePropertyStruct< float > &keyframes)
virtual void Set_Fade_Time(float value)
Definition part_ldr.h:155
virtual void Set_Future_Start_Time(float value)
Definition part_ldr.h:163
virtual void Get_Frame_Keyframes(ParticlePropertyStruct< float > &frameframes) const
virtual void Initialize_To_Ver2(void)
Definition part_ldr.cpp:426
virtual void Set_Creation_Volume(Vector3Randomizer *randomizer)
Definition part_ldr.cpp:267
virtual void Get_Blur_Time_Keyframes(ParticlePropertyStruct< float > &blurtimeframes) const
virtual void Set_Elasticity(float value)
Definition part_ldr.h:157
virtual void Set_Texture_Tile_Factor(float k)
Definition part_ldr.h:227
const W3dEmitterLinePropertiesStruct * Get_Line_Properties(void) const
Definition part_ldr.h:206
Vector3 Get_Velocity(void) const
Definition part_ldr.h:142
float Get_Lifetime(void) const
Definition part_ldr.h:136
virtual void Set_Vel_Inherit(float value)
Definition part_ldr.h:162
virtual void Set_Burst_Size(unsigned int count)
Definition part_ldr.h:160
virtual WW3DErrorType Save_User_Data(ChunkSaveClass &chunk_save)
virtual WW3DErrorType Save_Opacity_Keyframes(ChunkSaveClass &chunk_save)
virtual int Chunk_Type(void)
Definition part_ldr.h:368
virtual PrototypeClass * Load_W3D(ChunkLoadClass &chunk_load)
virtual ~ParticleEmitterPrototypeClass(void)
Definition part_ldr.h:349
virtual RenderObjClass * Create(void)
virtual int Get_Class_ID(void) const
Definition part_ldr.h:343
ParticleEmitterPrototypeClass(ParticleEmitterDefClass *pdef)
Definition part_ldr.h:336
virtual ParticleEmitterDefClass * Get_Definition(void) const
Definition part_ldr.h:346
ParticleEmitterDefClass * m_pDefinition
Definition part_ldr.h:356
virtual const char * Get_Name(void) const
Definition part_ldr.h:342
PrototypeClass(void)
Definition proto.h:90
PrototypeLoaderClass(void)
Definition proto.h:139
@ CLASSID_PARTICLEEMITTER
Definition rendobj.h:214
float Y
Definition vector2.h:79
float X
Definition vector2.h:74
virtual Vector3Randomizer * Clone(void) const =0
static void Convert_Shader(const W3dShaderStruct &shader, ShaderClass *set)
Definition w3d_util.cpp:106
ParticleEmitterLoaderClass _ParticleEmitterLoader
Definition part_ldr.cpp:68
WW3DErrorType
Definition w3derr.h:51