Edited map, new efence tile
[sdlbotor.git] / Tileset.cpp
blob51959a0b63b56a51d094ba60396a94b1e6e8ea20
1 #include "Tileset.h"
2 #include "Game.h"
4 namespace botor
7 Tileset::Tileset() {}
8 Tileset::Tileset( const char* ftile )
10 load( ftile );
13 //template<unsigned int TILE_WIDTH, unsigned int TILE_HEIGHT>
14 void Tileset::unload()
16 if( tileset )
17 SDL_FreeSurface( tileset );
20 //template<unsigned int TILE_WIDTH, unsigned int TILE_HEIGHT>
21 bool Tileset::load( const char* ftile )
23 if( tileset )
24 SDL_FreeSurface( tileset );
26 tileset = IMG_Load( ftile );
28 if( tileset )
30 SET_WIDTH = tileset->w / TILE_WIDTH;
31 SET_HEIGHT = tileset->h / TILE_HEIGHT;
33 return true;
35 else
36 return false;
39 //template<unsigned int TILE_WIDTH, unsigned int TILE_HEIGHT>
40 void Tileset::Draw( Sint16 x, Sint16 y, unsigned int tileID )
42 SDL_Rect tileRect;
44 if(!tileset)
45 return; //throw error?
48 tileRect.x = (tileID % SET_WIDTH) * TILE_WIDTH;
49 tileRect.y = ((int)(tileID / SET_WIDTH)) * TILE_HEIGHT;
50 tileRect.w = TILE_WIDTH;
51 tileRect.h = TILE_HEIGHT;
53 Game::getVideo()->Blit( tileset, &tileRect, x, y );