Apply LF line endings as an SVN property, this time on the JGE source files.
This commit is contained in:
+221
-221
@@ -1,221 +1,221 @@
|
||||
//-------------------------------------------------------------------------------------
|
||||
//
|
||||
// JGE++ is a hardware accelerated 2D game SDK for PSP/Windows.
|
||||
//
|
||||
// Licensed under the BSD license, see LICENSE in JGE root for details.
|
||||
//
|
||||
// Copyright (c) 2007 James Hui (a.k.a. Dr.Watson) <jhkhui@gmail.com>
|
||||
//
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#ifndef __PARTICLE_EMITTER_H__
|
||||
#define __PARTICLE_EMITTER_H__
|
||||
|
||||
#define INIT_PARTICLE_COUNT 32
|
||||
#define MAX_PARTICLE_COUNT 256
|
||||
|
||||
#include <list>
|
||||
#include <vector>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
class JParticleEffect;
|
||||
class JParticle;
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Particle emitter. This is where the particles actually generated.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
class JParticleEmitter
|
||||
{
|
||||
public:
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Constructor.
|
||||
///
|
||||
/// @param parent - Particle effect that contains this emitter.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
JParticleEmitter(JParticleEffect* parent);
|
||||
|
||||
~JParticleEmitter();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Set blending mode for rendering.
|
||||
///
|
||||
/// @param srcBlend - Blending mode for source.
|
||||
/// @param destBlend - Blending mode for destination.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void SetBlending(int srcBlend, int destBlend);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Set image quad for particles.
|
||||
///
|
||||
/// @param quad - Image quad.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void SetQuad(JQuad *quad);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Start emitting particles.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void Start();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Restart the emitter.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void ReStart();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Update the emitter.
|
||||
///
|
||||
/// @param dt - Time elapsed since last update (in second).
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void Update(float dt);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Render particles emitted by this emitter.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void Render();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Check if the emitter is done.
|
||||
///
|
||||
/// @return True if the emitter is done.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
bool Done();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Set active flag.
|
||||
///
|
||||
/// @param flag - Active flag.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void SetActive(bool flag);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Move all particles to a distance.
|
||||
///
|
||||
/// @param x - X distance to move.
|
||||
/// @param y - Y distance to move
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void MoveAllParticles(float x, float y);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Emit certain amount of particles.
|
||||
///
|
||||
/// @param count - Number of particles to emit.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void EmitParticles(int count);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Get idle particle to reuse.
|
||||
///
|
||||
/// @return Idel particle to use.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
JParticle* GetIdleParticle();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Put a particle in action.
|
||||
///
|
||||
/// @param par - Particle to start playing.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void StartParticle(JParticle *par);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Set the maximum number of particles that this emitter can emit.
|
||||
///
|
||||
/// @param count - Maximum number of particles.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void SetMaxParticleCount(int count);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// \enum JParticleEmitterMode
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
enum JParticleEmitterMode
|
||||
{
|
||||
MODE_REPEAT, ///< Emit particles and repeat when done.
|
||||
MODE_ONCE, ///< Emit once.
|
||||
MODE_NTIMES, ///< Emit N times.
|
||||
MODE_CONTINUOUS, ///< Emit particles continuously.
|
||||
MODE_COUNT
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// \enum JParticleEmitterType
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
enum JParticleEmitterType
|
||||
{
|
||||
TYPE_POINT, ///< Emit from one point.
|
||||
TYPE_AREA, ///< Emit from a rectangle area.
|
||||
TYPE_HORIZONTAL, ///< Emit from a horizontal line.
|
||||
TYPE_VERTICAL, ///< Emit from a vertical line.
|
||||
TYPE_CIRCLE, ///< Emit from a circle.
|
||||
TYPE_COUNT
|
||||
};
|
||||
|
||||
protected:
|
||||
JParticleEffect* mParent;
|
||||
JQuad* mQuad;
|
||||
|
||||
public:
|
||||
int mType;
|
||||
int mId;
|
||||
|
||||
JParticleData mQuantity;
|
||||
JParticleData mData[FIELD_COUNT];
|
||||
|
||||
float mLifeBase;
|
||||
float mLifeMax;
|
||||
|
||||
float mAngleBase;
|
||||
float mAngleMax;
|
||||
|
||||
float mSpeedBase;
|
||||
float mSpeedMax;
|
||||
|
||||
float mSizeBase;
|
||||
float mSizeMax;
|
||||
|
||||
int mWidth;
|
||||
int mHeight;
|
||||
|
||||
int mQuadIndex;
|
||||
|
||||
int mEmitterMode;
|
||||
int mRepeatTimes;
|
||||
|
||||
float mLife;
|
||||
|
||||
|
||||
private:
|
||||
bool mActive;
|
||||
float mEmitTimer;
|
||||
|
||||
int mRepeatCounter;
|
||||
int mActiveParticleCount;
|
||||
|
||||
int mSrcBlending;
|
||||
int mDestBlending;
|
||||
int mMaxParticleCount;
|
||||
|
||||
vector<JParticle*> mParticles;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
//-------------------------------------------------------------------------------------
|
||||
//
|
||||
// JGE++ is a hardware accelerated 2D game SDK for PSP/Windows.
|
||||
//
|
||||
// Licensed under the BSD license, see LICENSE in JGE root for details.
|
||||
//
|
||||
// Copyright (c) 2007 James Hui (a.k.a. Dr.Watson) <jhkhui@gmail.com>
|
||||
//
|
||||
//-------------------------------------------------------------------------------------
|
||||
|
||||
#ifndef __PARTICLE_EMITTER_H__
|
||||
#define __PARTICLE_EMITTER_H__
|
||||
|
||||
#define INIT_PARTICLE_COUNT 32
|
||||
#define MAX_PARTICLE_COUNT 256
|
||||
|
||||
#include <list>
|
||||
#include <vector>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
class JParticleEffect;
|
||||
class JParticle;
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Particle emitter. This is where the particles actually generated.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
class JParticleEmitter
|
||||
{
|
||||
public:
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Constructor.
|
||||
///
|
||||
/// @param parent - Particle effect that contains this emitter.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
JParticleEmitter(JParticleEffect* parent);
|
||||
|
||||
~JParticleEmitter();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Set blending mode for rendering.
|
||||
///
|
||||
/// @param srcBlend - Blending mode for source.
|
||||
/// @param destBlend - Blending mode for destination.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void SetBlending(int srcBlend, int destBlend);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Set image quad for particles.
|
||||
///
|
||||
/// @param quad - Image quad.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void SetQuad(JQuad *quad);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Start emitting particles.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void Start();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Restart the emitter.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void ReStart();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Update the emitter.
|
||||
///
|
||||
/// @param dt - Time elapsed since last update (in second).
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void Update(float dt);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Render particles emitted by this emitter.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void Render();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Check if the emitter is done.
|
||||
///
|
||||
/// @return True if the emitter is done.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
bool Done();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Set active flag.
|
||||
///
|
||||
/// @param flag - Active flag.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void SetActive(bool flag);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Move all particles to a distance.
|
||||
///
|
||||
/// @param x - X distance to move.
|
||||
/// @param y - Y distance to move
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void MoveAllParticles(float x, float y);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Emit certain amount of particles.
|
||||
///
|
||||
/// @param count - Number of particles to emit.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void EmitParticles(int count);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Get idle particle to reuse.
|
||||
///
|
||||
/// @return Idel particle to use.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
JParticle* GetIdleParticle();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Put a particle in action.
|
||||
///
|
||||
/// @param par - Particle to start playing.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void StartParticle(JParticle *par);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// Set the maximum number of particles that this emitter can emit.
|
||||
///
|
||||
/// @param count - Maximum number of particles.
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void SetMaxParticleCount(int count);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// \enum JParticleEmitterMode
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
enum JParticleEmitterMode
|
||||
{
|
||||
MODE_REPEAT, ///< Emit particles and repeat when done.
|
||||
MODE_ONCE, ///< Emit once.
|
||||
MODE_NTIMES, ///< Emit N times.
|
||||
MODE_CONTINUOUS, ///< Emit particles continuously.
|
||||
MODE_COUNT
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/// \enum JParticleEmitterType
|
||||
///
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
enum JParticleEmitterType
|
||||
{
|
||||
TYPE_POINT, ///< Emit from one point.
|
||||
TYPE_AREA, ///< Emit from a rectangle area.
|
||||
TYPE_HORIZONTAL, ///< Emit from a horizontal line.
|
||||
TYPE_VERTICAL, ///< Emit from a vertical line.
|
||||
TYPE_CIRCLE, ///< Emit from a circle.
|
||||
TYPE_COUNT
|
||||
};
|
||||
|
||||
protected:
|
||||
JParticleEffect* mParent;
|
||||
JQuad* mQuad;
|
||||
|
||||
public:
|
||||
int mType;
|
||||
int mId;
|
||||
|
||||
JParticleData mQuantity;
|
||||
JParticleData mData[FIELD_COUNT];
|
||||
|
||||
float mLifeBase;
|
||||
float mLifeMax;
|
||||
|
||||
float mAngleBase;
|
||||
float mAngleMax;
|
||||
|
||||
float mSpeedBase;
|
||||
float mSpeedMax;
|
||||
|
||||
float mSizeBase;
|
||||
float mSizeMax;
|
||||
|
||||
int mWidth;
|
||||
int mHeight;
|
||||
|
||||
int mQuadIndex;
|
||||
|
||||
int mEmitterMode;
|
||||
int mRepeatTimes;
|
||||
|
||||
float mLife;
|
||||
|
||||
|
||||
private:
|
||||
bool mActive;
|
||||
float mEmitTimer;
|
||||
|
||||
int mRepeatCounter;
|
||||
int mActiveParticleCount;
|
||||
|
||||
int mSrcBlending;
|
||||
int mDestBlending;
|
||||
int mMaxParticleCount;
|
||||
|
||||
vector<JParticle*> mParticles;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user