/*
	이차원 배열로 게임의 배경이되는 타일 맵을 관리한다. 
*/

#ifndef cTileMap_H
#define cTileMap_H

#include <windows.h>

#include "cArray2D.h"
#include "cPicture.h"

template<class cTile, class cSpot>
class cTileMap :
public cArray2D<cSpot>{
protected:
	WORD TileCount; // 존재하는 타일들의 수
	cTile *Tiles; 

	cPicture *pBGPic;

public:

	cTileMap();
	virtual ~cTileMap();

	// 타일 맵을 생성함
	bool Create(WORD _Height, WORD _Width, cTile *_Tiles, WORD _TileCount);
	virtual void Destroy();

	void SetTile(int Index, cTile Tile){ Tiles[Index] = Tile; }
	cTile GetTile(int y, int x){ return Tiles[Get(y, x).GetTileNo()]; }

	void SetPicture(cPicture *_pBGPic);

	void ShowBack(cPicture *pDestPic, int Left, int Top, LPRECT pSrcRect);
	void ShowFront(cPicture *pDestPic, int Left, int Top, LPRECT pSrcRect);


};


#endif
