// Template, major revision 3, beta
// IGAD/NHTV - Jacco Bikker - 2006-2009

#pragma once

#define	SCRWIDTH	800
#define SCRHEIGHT	512

namespace Tmpl8 {

class BlackHole
{
public:
	BlackHole( float px, float py, float pg );
	float ox, oy, x, y;
	float g;
};

class Particle
{
public:
	Particle() : alive( false ), m( 1.0f ) {};
	float x, y, vx, vy, m;
	bool alive;
	unsigned int c;
};

class Surface;
class Game
{
public:
	void SetTarget( Surface* a_Surface ) { m_Surface = a_Surface; }
	void BuildBackdrop();
	void SpawnParticle( int n );
	void UpdateBlackHoles();
	void UpdateParticles();
	void Init();
	void Tick( float a_DT );
	void KeyDown( int dummy ) {};
	void KeyUp( int dummy ) {};
	void MouseMove( int x, int y ) {};
	void MouseUp( int dummy ) {};
	void MouseDown( int dummy ) {};
private:
	Surface* m_Surface, *m_Backdrop;
	BlackHole** m_Hole;
	Particle** m_Particle;
};

}; // namespace Tmpl8