#pragma once

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 Game
{
public:
	void SetTarget( Surface* surface ) { screen = surface; }
	void Init();
	void BuildBackdrop();
	void SpawnParticle( int n );
	void UpdateBlackHoles();
	void UpdateParticles();
	void Shutdown() {}
	void Tick( float deltaTime );
	void MouseUp( int button ) { /* implement if you want to detect mouse button presses */ }
	void MouseDown( int button ) { /* implement if you want to detect mouse button presses */ }
	void MouseMove( int x, int y ) { /* implement if you want to detect mouse movement */ }
	void KeyUp( int key ) { /* implement if you want to handle keys */ }
	void KeyDown( int key ) { /* implement if you want to handle keys */ }
private:
	Surface* screen;
	BlackHole** m_Hole;
	Particle** m_Particle;
};

}; // namespace Tmpl8