30 #include "object/interface/trace_drawing_object.h"
32 #include "sound/sound_type.h"
44 const short MAXPARTICULE = 500;
45 const short MAXPARTITYPE = 6;
46 const short MAXTRACK = 100;
47 const short MAXTRACKLEN = 10;
48 const short MAXPARTIFOG = 100;
49 const short MAXWHEELTRACE = 1000;
51 const short SH_WORLD = 0;
52 const short SH_FRONT = 1;
53 const short SH_INTERFACE = 2;
54 const short SH_MAX = 3;
167 unsigned short uniqueStamp = 0;
170 ParticlePhase phase = {};
173 float duration = 0.0f;
177 float windSensitivity = 0.0f;
182 float intensity = 0.0f;
186 float phaseTime = 0.0f;
187 float testTime = 0.0f;
199 char drawParticle = 0;
202 float intensity = 0.0f;
207 float len[MAXTRACKLEN] = {};
212 TraceColor color = TraceColor::Black;
240 ParticleType type,
float duration = 1.0f,
float mass = 0.0f,
241 float windSensitivity = 1.0f,
int sheet = 0);
245 ParticleType type,
float duration = 1.0f,
float mass = 0.0f,
246 float windSensitivity = 1.0f,
int sheet = 0);
250 float duration = 1.0f,
float mass = 0.0f,
float weight = 0.0f,
251 float windSensitivity = 1.0f,
int sheet = 0);
255 float duration = 1.0f,
int sheet = 0);
259 float duration = 1.0f,
float mass = 0.0f,
float length = 10.0f,
float width = 1.0f);
275 void SetZoom(
int channel,
float zoom);
276 void SetAngle(
int channel,
float angle);
277 void SetIntensity(
int channel,
float intensity);
279 void SetPhase(
int channel, ParticlePhase phase,
float duration);
335 CWater* m_water =
nullptr;
339 Particle m_particle[MAXPARTICULE*MAXPARTITYPE];
341 Track m_track[MAXTRACK];
342 int m_wheelTraceTotal = 0;
343 int m_wheelTraceIndex = 0;
345 int m_totalInterface[MAXPARTITYPE][SH_MAX] = {};
346 bool m_frameUpdate[SH_MAX] = {};
348 int m_fog[MAXPARTIFOG] = {};
349 int m_uniqueStamp = 0;
350 int m_exploGunCounter = 0;
351 float m_lastTimeGunDel = 0.0f;
352 float m_absTime = 0.0f;
< gravity root smoke
Definition: particle.h:138
< drag 12 (TODO: unused?)
Definition: particle.h:126
< drag 5
Definition: particle.h:119
void DrawParticle(int sheet)
Draws all the particles.
Definition: particle.cpp:3368
void Play(SoundType sound, Math::Vector pos, float amplitude)
Sounded one.
Definition: particle.cpp:3635
< black smoke
Definition: particle.h:87
< reflection
Definition: particle.h:69
< red robot lights
Definition: particle.h:77
< gas from the reactor
Definition: particle.h:72
void FlushParticle()
Removes all particles.
Definition: particle.cpp:88
< fog 4
Definition: particle.h:145
ParticleType
Definition: particle.h:63
bool CheckChannel(int &channel)
Check a channel number.
Definition: particle.cpp:638
Main graphics engine - CEngine class.
< drag 10
Definition: particle.h:124
< drag 1
Definition: particle.h:115
< dust after fall
Definition: particle.h:71
< Robby says blah
Definition: particle.h:103
< Robby's reactor
Definition: particle.h:101
int CreatePart(Math::Vector pos, Math::Vector speed, ParticleType type, float duration=1.0f, float mass=0.0f, float weight=0.0f, float windSensitivity=1.0f, int sheet=0)
Creates a new particle being a part of object.
Definition: particle.cpp:462
< shows a place
Definition: particle.h:134
< bullet destroyed by shield
Definition: particle.h:113
< black smoke
Definition: particle.h:86
< red reflection
Definition: particle.h:128
< bullet 4 (orgaball)
Definition: particle.h:81
void DrawParticleTriangle(int i)
Draws a triangular particle.
Definition: particle.cpp:2667
< drop of water
Definition: particle.h:152
bool GetPosition(int channel, Math::Vector &pos)
Returns the position of the particle.
Definition: particle.cpp:759
< drop
Definition: particle.h:140
< human blood
Definition: particle.h:89
void DrawParticleCylinder(int i)
Draws a cylindrical particle.
Definition: particle.cpp:3207
< drag 9
Definition: particle.h:123
< Robby says yes
Definition: particle.h:104
int CreateRay(Math::Vector pos, Math::Vector goal, ParticleType type, Math::Point dim, float duration=1.0f, int sheet=0)
Creates a new linear particle (radius)
Definition: particle.cpp:510
< AlienQueen blood
Definition: particle.h:90
void DrawParticleFlat(int i)
Draw a particle flat (horizontal)
Definition: particle.cpp:2792
< the engine exhaust gas
Definition: particle.h:68
< lightning recharging battery
Definition: particle.h:70
< shows if the ground is flat
Definition: particle.h:136
< brilliance 2 (yellow)
Definition: particle.h:130
< ray 3 (ExchangePost)
Definition: particle.h:95
< drag 6
Definition: particle.h:120
< inflamed tail (TODO: unused?)
Definition: particle.h:83
< brilliance 1 (orange)
Definition: particle.h:129
bool WriteWheelTrace(const char *filename, int width, int height, Math::Vector dl, Math::Vector ur)
Writes a file containing all the tire tracks.
Definition: particle.cpp:3721
< shows the limits 1
Definition: particle.h:149
< fog 6
Definition: particle.h:147
< reflection on button
Definition: particle.h:133
A triangle drawn by the graphics engine.
Definition: engine.h:155
void TrackDraw(int i, ParticleType type)
Draws a drag.
Definition: particle.cpp:2493
< information sphere (emit)
Definition: particle.h:110
< yellow robot lights
Definition: particle.h:76
< drag 11
Definition: particle.h:125
< organic ball mother
Definition: particle.h:84
bool TrackMove(int i, Math::Vector pos, float progress)
Moves a drag; returns true if the drag is finished.
Definition: particle.cpp:2452
< shows the limits 2
Definition: particle.h:150
Definition: robotmain.h:151
Particle engine.
Definition: particle.h:223
< blue ball recycler
Definition: particle.h:137
< shows the limits 3
Definition: particle.h:151
void DrawParticleNorm(int i)
Draw a normal particle.
Definition: particle.cpp:2694
< flame
Definition: particle.h:96
Definition: particle.h:210
< drag 3
Definition: particle.h:117
void DeleteRank(int rank)
Removes a particle of given rank.
Definition: particle.cpp:661
< explosion sphere
Definition: particle.h:106
< blue reflection
Definition: particle.h:127
< technology explosion
Definition: particle.h:66
< ray 1 (turn)
Definition: particle.h:93
2D point
Definition: point.h:50
void SetObjectLink(int channel, CObject *object)
Specifies the object to which the particle is bound.
Definition: particle.cpp:698
int CreateParticle(Math::Vector pos, Math::Vector speed, Math::Point dim, ParticleType type, float duration=1.0f, float mass=0.0f, float windSensitivity=1.0f, int sheet=0)
Creates a new particle.
Definition: particle.cpp:177
< drag 8
Definition: particle.h:122
< triangular fragment
Definition: particle.h:82
void SetObjectFather(int channel, CObject *object)
Specifies the parent object that created the particle.
Definition: particle.cpp:704
< Robby says no
Definition: particle.h:102
< fireball grows
Definition: particle.h:74
< circles in the water
Definition: particle.h:98
Terrain loader/generator and manager.
Definition: terrain.h:145
void CreateWheelTrace(const Math::Vector &p1, const Math::Vector &p2, const Math::Vector &p3, const Math::Vector &p4, TraceColor color)
Creates a tire mark.
Definition: particle.cpp:600
void DrawParticleFog(int i)
Draw a particle to a flat sheet of fog.
Definition: particle.cpp:2855
void SetDevice(CDevice *device)
Sets the device to use.
Definition: particle.cpp:83
Definition: particle.h:196
< black smoke
Definition: particle.h:88
< drag 4
Definition: particle.h:118
Namespace for (new) graphics code.
Definition: app.h:49
< fog 1
Definition: particle.h:142
< ball explosion 1
Definition: particle.h:153
The graphics engine.
Definition: engine.h:620
< fog 2
Definition: particle.h:143
< botanical sphere (gravity root)
Definition: particle.h:111
< splash
Definition: particle.h:139
< shock wave
Definition: particle.h:135
< waste from the reactor
Definition: particle.h:100
< fireball shrinks
Definition: particle.h:73
void DrawParticleRay(int i)
Draw a particle in the form of radius.
Definition: particle.cpp:2942
< bubble
Definition: particle.h:97
Water manager/renderer.
Definition: water.h:74
< fog 5
Definition: particle.h:146
< fog 7
Definition: particle.h:148
< energy sphere
Definition: particle.h:107
< ejection from the reactor
Definition: particle.h:99
3D (3x1) vector
Definition: vector.h:53
void SetFrameUpdate(int sheet, bool update)
Indicates whether a sheet is updated or not.
Definition: particle.cpp:766
void DeleteParticle(ParticleType type)
Removes all particles of a given type.
Definition: particle.cpp:673
Color GetFogColor(Math::Vector pos)
Returns the color if you're in the fog or black if you're not.
Definition: particle.cpp:3643
< fog 0
Definition: particle.h:141
int CreateTrack(Math::Vector pos, Math::Vector speed, Math::Point dim, ParticleType type, float duration=1.0f, float mass=0.0f, float length=10.0f, float width=1.0f)
Creates a particle with a trail.
Definition: particle.cpp:568
< organic ball daughter
Definition: particle.h:85
int CreateFrag(Math::Vector pos, Math::Vector speed, EngineTriangle *triangle, ParticleType type, float duration=1.0f, float mass=0.0f, float windSensitivity=1.0f, int sheet=0)
Creates a new triangular particle (debris)
Definition: particle.cpp:357
< object part
Definition: particle.h:114
void DrawParticleText(int i)
Draws a text particle.
Definition: particle.cpp:3293
RGBA color.
Definition: color.h:39
CObject * SearchObjectRay(Math::Vector pos, Math::Vector goal, ParticleType type, CObject *father)
Seeks if an object collided with a ray.
Definition: particle.cpp:3584
< blue ball
Definition: particle.h:75
CObject * SearchObjectGun(Math::Vector old, Math::Vector pos, ParticleType type, CObject *father)
Seeks if an object collided with a bullet.
Definition: particle.cpp:3479
< drag 7
Definition: particle.h:121
< bullet 3 (spider)
Definition: particle.h:80
< bullet 2 (ant)
Definition: particle.h:79
void FrameParticle(float rTime)
Updates all the particles.
Definition: particle.cpp:771
< shield sphere
Definition: particle.h:109
< analysis sphere
Definition: particle.h:108
< reflection crystal
Definition: particle.h:105
< organic explosion
Definition: particle.h:67
void DrawParticleSphere(int i)
Draws a spherical particle.
Definition: particle.cpp:3099
< virus (random letter)
Definition: particle.h:92
Base class for all 3D in-game objects.
Definition: object.h:59
< ray 2 (electric arc)
Definition: particle.h:94
< brilliance 3 (red)
Definition: particle.h:131
< brilliance 4 (violet)
Definition: particle.h:132
< bullet 1 (fireball)
Definition: particle.h:78
Sound plugin interface.
Definition: sound.h:57
< drag 2
Definition: particle.h:116
< steam
Definition: particle.h:91
< fog 3
Definition: particle.h:144
Abstract interface of graphics device.
Definition: device.h:268
< ball explosion 2
Definition: particle.h:154
void DrawParticleWheel(int i)
Draws a tire mark.
Definition: particle.cpp:3309
< information sphere (receive)
Definition: particle.h:112
Definition: particle.h:163