Maps
[sdlbotor.git] / Map.cpp
blob0e3ee95d43e9fe91fdb67cd923003011cfc1f053
1 #include <cstdio>
3 #include "Map.h"
4 #include "Game.h"
5 #include "Tile.h"
7 namespace botor
10 Map::Map() : tiles( MAP_WIDTH, std::vector<Tile>( MAP_HEIGHT ) )
13 bool Map::load( const char *fmap )
15 char tilefile[255];
16 FILE *in = fopen( fmap, "r" );
17 if( !in )
18 return false;
20 fscanf( in, "%s", (char*)tilefile );
22 if( !tileset.load( tilefile ) )
23 return false;
25 for( int y = 0; y < MAP_HEIGHT; y++ )
27 for( int x = 0; x < MAP_WIDTH; x++ )
29 Tile temp;
31 fscanf( in, "%d:%d ", &temp.tileID, &temp.typeMask );
33 tiles[x][y] = temp;
35 fscanf( in, "\n" );
38 fclose( in );
40 return true;
44 void Map::unload()
46 tileset.unload();
49 void Map::Draw( Sint16 mapX, Sint16 mapY )
52 for( int x = 0; x < MAP_WIDTH; x++ )
54 for( int y = 0; y < MAP_HEIGHT; y++ )
56 if( tiles[x][y].tileID == -1 )
57 continue;
59 tileset.Draw( mapX + ((Sint16)x * Tileset::TILE_WIDTH), mapY + ((Sint16)y * Tileset::TILE_HEIGHT), tiles[x][y].tileID );