#ifndef ENEMY_HPP
#define ENEMY_HPP

class BgMap;

class Enemy
{
public:
	enum
	{
		// Scroll
		LIMIT_LEFT = -20000,
		LIMIT_RIGHT = 96000 + 20000,
		LIMIT_TOP = -20000,
		LIMIT_BOTTOM = 64000,
		VY_MAX = 9000,
		GRAVITY = 2000,
		STATUS_DEAD = 0,
		STATUS_ALIVE,
	};
	Enemy(void);
	~Enemy(void);
	void Initialize(BgMap* bg_map, int direction, int x, int y);
	virtual void Update(void);
	virtual void Draw(void) {};
	unsigned int GetStatus(void);
	void GetPosition(int& x, int& y);
	void SetAlive(bool alive);
	bool GetAlive(void);
private:
	Enemy(Enemy&);
	Enemy& operator = (Enemy&);
protected:
	bool alive;
	int dead_count;
	int x;
	int y;
	int vx;
	int vy;
	int anime_count;
	BgMap* bg_map;
	int map_x;
	int map_y;
	int direction;
};

#endif
