[background=rgb(250, 251, 252)]Can anyone tell me what I'm doing wrong?[/background]
The build image code:
void Map::buildImage(void)
{
std::cout << "Building Map Image...\n";
SDL_Surface* mapImg = SDL_CreateRGBSurface(SDL_SWSURFACE, 60 * 32, 60 * 32, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000); // Map Image Surface
std::string tilesetfile = "Levels/" + tilesets[0]->filename;
SDL_Surface* tileImg = IMG_Load(tilesetfile.c_str()); // Load TileSet
SDL_Rect tileRect; // TileSet Crop Rect
SDL_Rect mapRect; // Map Destination Rect
std::cout << "\tBuilding Image...\n";
/* Build Map Image */
for(int row = 0; row < 60; row++) // Rows
{
for(int col = 0; col < 60; col++) // Columns
{
int id = mapData[row][col]; // Tile ID To Put On Map
int tileCol;
int tileRow;
id--; // So Tile 1 in array is 0 on TileSheet
tileCol = (id % 16); // Get TileSheet Column Position
tileRow = id / 16; // Get TileSheet Row Position
tileRect.x = 32 * tileCol;
tileRect.y = 32 * tileRow;
tileRect.w = 32;
tileRect.h = 32;
mapRect.x = col * 32;
mapRect.y = row * 32;
mapRect.w = 32;
mapRect.h = 32;
if(SDL_BlitSurface(tileImg, &tileRect, mapImg, &mapRect) != 0)
{
std::cout << "Failed To Blit Map: " << SDL_GetError() << '\n';
}
}
}
image = graphics.convert(mapImg); // Convrt SDL_Surface* to GLuint
std::cout << "Map Image Built!\n";
}