/*
IsoHexTile is a 'Tile' for a several types of maps...

	'Square'
	'IsoSquare'		- Square tile that has been rotated 45-degrees
	'IsoMetric'		- Phombus diamond laying on its side
	'HexaMetric'	- Hexagon shaped tiles
*/
#pragma once
#include <string>
using std::string;

#include "C:\L\Avatars\Avatar.h"

enum IsoDirection
{
	ISO_N = 0, ISO_NE, ISO_E, ISO_SE, ISO_S, ISO_SW, ISO_W, ISO_NW, TOTAL_FACINGS
};
class IsoHexTile
{
public:
					IsoHexTile();
					~IsoHexTile();
	const			IsoHexTile&	operator=	(const IsoHexTile &other);
	const			IsoHexTile*	operator=	(const IsoHexTile *other);
	void			RESET					();
	void			SetBG					(int Data);
	int				GetBG					() const;
	void			SetCoastX				(int Data);
	int				GetCoastX				() const;
	void			SetCoastY				(int Data);
	int				GetCoastY				() const;
	void			SetForest				(int Data);
	int				GetForest				() const;
	void			SetRoadRiver			(int Data);
	int				GetRoadRiver			() const;
	void			SetCity					(int Data);
	int				GetCity					() const;
	void			SetWall					(int Data);
	int				GetWall					() const;
	void			SetVisited				(bool Data);
	bool			GetVisited				() const;

	IsoHexTile* getThis() { return this; };
	int				AvatarIndex;

private:
	int				Ground;
	int				CoastX;
	int				CoastY;
	int				Forest;
	int				RiverRoad;
	int				City;
	int				Wall;
	bool			visited;
};