This commit is contained in:
parent
06bf236150
commit
cd381e1694
7 changed files with 287 additions and 251 deletions
|
@ -7,33 +7,68 @@
|
|||
|
||||
|
||||
/*****************************************************************************/
|
||||
class CLayerTile : public CLayer
|
||||
struct sTileMap2dElem
|
||||
{
|
||||
TSPRT_16 Tile;
|
||||
sTileMap2dElem *Right;
|
||||
sTileMap2dElem *Down;
|
||||
};
|
||||
|
||||
struct sTileMap2d
|
||||
{
|
||||
int X,Y;
|
||||
sTileMap2dElem *List;
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
class CLayerTile
|
||||
{
|
||||
public:
|
||||
enum LAYER_TILE_SUBTYPE
|
||||
{
|
||||
LAYER_TILE_SUBTYPE_BACK=0,
|
||||
LAYER_TILE_SUBTYPE_MID,
|
||||
LAYER_TILE_SUBTYPE_ACTION,
|
||||
LAYER_TILE_SUBTYPE_FORE,
|
||||
LAYER_TILE_SUBTYPE_MAX
|
||||
enum LAYER_TILE_TYPE
|
||||
{ // Stored reverse for rendering :o)
|
||||
LAYER_TILE_TYPE_FORE,
|
||||
LAYER_TILE_TYPE_ACTION,
|
||||
LAYER_TILE_TYPE_MID,
|
||||
LAYER_TILE_TYPE_BACK,
|
||||
LAYER_TILE_TYPE_MAX
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
TILE_WIDTH=16,
|
||||
TILE_HEIGHT=16,
|
||||
SCREEN_TILE_WIDTH=32, // fast bits ops :o)
|
||||
SCREEN_TILE_HEIGHT=16, // fast bits ops :o)
|
||||
SCREEN_TILE_SIZE=SCREEN_TILE_WIDTH*SCREEN_TILE_HEIGHT
|
||||
};
|
||||
|
||||
|
||||
CLayerTile(sLayerHdr *Hdr,sTile *_TileList,sTri *_TriList,sQuad *_QuadList,sVtx *_VtxList);
|
||||
~CLayerTile();
|
||||
virtual ~CLayerTile();
|
||||
|
||||
void init();
|
||||
void shutdown();
|
||||
void render();
|
||||
void think(int _frames);
|
||||
virtual void init()=0;
|
||||
virtual void shutdown()=0;
|
||||
virtual void render()=0;
|
||||
virtual void think(int _frames)=0;
|
||||
|
||||
private:
|
||||
void InitTileMap2d(int X,int Y,int Width=SCREEN_TILE_WIDTH,int Height=SCREEN_TILE_HEIGHT);
|
||||
|
||||
int GetWidth() {return(LayerHdr->Width);}
|
||||
int GetHeight() {return(LayerHdr->Height);}
|
||||
|
||||
|
||||
protected:
|
||||
void RenderTileMap2d(int X,int Y);
|
||||
|
||||
sLayerHdr *LayerHdr;
|
||||
sTile *TileList;
|
||||
sTri *TriList;
|
||||
sQuad *QuadList;
|
||||
sVtx *VtxList;
|
||||
sTileMapElem *Map;
|
||||
|
||||
int TileMapWidth,TileMapHeight;
|
||||
sTileMap2d TileMap2d[2]; // Double Buffered
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue