aboutsummaryrefslogtreecommitdiff
path: root/archive/include/hgeparticle.h
diff options
context:
space:
mode:
Diffstat (limited to 'archive/include/hgeparticle.h')
-rw-r--r--archive/include/hgeparticle.h168
1 files changed, 0 insertions, 168 deletions
diff --git a/archive/include/hgeparticle.h b/archive/include/hgeparticle.h
deleted file mode 100644
index fd1e622..0000000
--- a/archive/include/hgeparticle.h
+++ /dev/null
@@ -1,168 +0,0 @@
-// PLEASE NOTE that this is not the 1.81 version of hgeparticle.h ...
-// the game I'm working on used an older HGE that breaks with the 1.81
-// particle system. If you want 1.81, add the "bRelative" stuff to it. --ryan.
-
-/*
-** Haaf's Game Engine 1.61
-** Copyright (C) 2003-2007, Relish Games
-** hge.relishgames.com
-**
-** hgeParticleSystem helper class header
-*/
-
-
-#ifndef HGEPARTICLE_H
-#define HGEPARTICLE_H
-
-
-#include "hge.h"
-#include "hgesprite.h"
-#include "hgevector.h"
-#include "hgecolor.h"
-#include "hgerect.h"
-
-
-#define MAX_PARTICLES 500
-#define MAX_PSYSTEMS 100
-
-struct hgeParticle
-{
- hgeVector vecLocation;
- hgeVector vecVelocity;
-
- float fGravity;
- float fRadialAccel;
- float fTangentialAccel;
-
- float fSpin;
- float fSpinDelta;
-
- float fSize;
- float fSizeDelta;
-
- hgeColor colColor; // + alpha
- hgeColor colColorDelta;
-
- float fAge;
- float fTerminalAge;
-};
-
-struct hgeParticleSystemInfo
-{
- hgeSprite* sprite; // texture + blend mode
- int nEmission; // particles per sec
- float fLifetime;
-
- float fParticleLifeMin;
- float fParticleLifeMax;
-
- float fDirection;
- float fSpread;
- BYTE bRelative; // was "bool", but that's 4 bytes on PowerPC instead of 1, and it broke loading from disk...
-
- float fSpeedMin;
- float fSpeedMax;
-
- float fGravityMin;
- float fGravityMax;
-
- float fRadialAccelMin;
- float fRadialAccelMax;
-
- float fTangentialAccelMin;
- float fTangentialAccelMax;
-
- float fSizeStart;
- float fSizeEnd;
- float fSizeVar;
-
- float fSpinStart;
- float fSpinEnd;
- float fSpinVar;
-
- hgeColor colColorStart; // + alpha
- hgeColor colColorEnd;
- float fColorVar;
- float fAlphaVar;
-};
-
-class hgeParticleSystem
-{
-public:
- hgeParticleSystemInfo info;
-
- hgeParticleSystem(const char *filename, hgeSprite *sprite, float fps=0.0f);
- hgeParticleSystem(hgeParticleSystemInfo *psi, float fps=0.0f);
- hgeParticleSystem(const hgeParticleSystem &ps);
- ~hgeParticleSystem() { hge->Release(); }
-
- hgeParticleSystem& operator= (const hgeParticleSystem &ps);
-
-
- void Render();
- void FireAt(float x, float y);
- void Fire();
- void Stop(bool bKillParticles=false);
- void Update(float fDeltaTime);
- void MoveTo(float x, float y, bool bMoveParticles=false);
- void Transpose(float x, float y) { fTx=x; fTy=y; }
- void TrackBoundingBox(bool bTrack) { bUpdateBoundingBox=bTrack; }
-
- int GetParticlesAlive() const { return nParticlesAlive; }
- float GetAge() const { return fAge; }
- void GetPosition(float *x, float *y) const { *x=vecLocation.x; *y=vecLocation.y; }
- void GetTransposition(float *x, float *y) const { *x=fTx; *y=fTy; }
- hgeRect* GetBoundingBox(hgeRect *rect) const { memcpy(rect, &rectBoundingBox, sizeof(hgeRect)); return rect; }
-
-private:
- hgeParticleSystem();
- void _update(float fDeltaTime);
-
- static HGE *hge;
-
- float fUpdSpeed;
- float fResidue;
-
- float fAge;
- float fEmissionResidue;
-
- hgeVector vecPrevLocation;
- hgeVector vecLocation;
- float fTx, fTy;
-
- int nParticlesAlive;
- hgeRect rectBoundingBox;
- bool bUpdateBoundingBox;
-
- hgeParticle particles[MAX_PARTICLES];
-};
-
-class hgeParticleManager
-{
-public:
- hgeParticleManager(float fps=0.0f);
- ~hgeParticleManager();
-
- void Update(float dt);
- void Render();
-
- hgeParticleSystem* SpawnPS(hgeParticleSystemInfo *psi, float x, float y);
- bool IsPSAlive(hgeParticleSystem *ps) const;
- void Transpose(float x, float y);
- void GetTransposition(float *dx, float *dy) const {*dx=tX; *dy=tY;}
- void KillPS(hgeParticleSystem *ps);
- void KillAll();
-
-private:
- hgeParticleManager(const hgeParticleManager &);
- hgeParticleManager& operator= (const hgeParticleManager &);
-
- float fFPS;
- int nPS;
- float tX;
- float tY;
- hgeParticleSystem* psList[MAX_PSYSTEMS];
-};
-
-
-#endif