#ifndef GAME_HPP
#define GAME_HPP

#include "Player.hpp"
#include "BgMap.hpp"
#include "Enemy.hpp"

class Game
{
public:
	enum
	{
		ENEMY_MAX = 64,
		STAGE_MAX = 3,
	};
	Game(void);
	~Game(void);
	void Initialize(int stage);
	void Restart(int stage);
	void Finalize(void);
	bool Update(void);
	void Draw(void);
	unsigned char GetBackColor(void);
	void SpawnEnemy(void);
	void DrawNumber(int x, int y, int number, int number_of_digits);
private:
	int stage;
	BgMap bg_map;
	Player player;
	int bg_map_x;
	int bg_map_y;
	Enemy* enemy[ENEMY_MAX];
	bool stage_clear;
	int stage_clear_count;
	int stage_start_count;
	int continue_count;
	int score;
	int highscore;
	int time;
	Game(Game&);
	Game& operator = (Game&);
};

#endif
