Systems are working correctly, but needs cleaning
This commit is contained in:
+6
-13
@@ -40,18 +40,11 @@ SDL_Surface* TileSheet::LoadSurface(std::string fname, Uint16 w, Uint16 h) {
|
||||
|
||||
//cache the name
|
||||
name = truncatePath(fname);
|
||||
}
|
||||
|
||||
SDL_Surface* TileSheet::SetSurface(SDL_Surface* const ptr, Uint16 w, Uint16 h) {
|
||||
//setup the image
|
||||
image.SetSurface(ptr);
|
||||
image.SetClipW(w);
|
||||
image.SetClipH(h);
|
||||
|
||||
//get the tile counts
|
||||
xCount = image.GetSurface()->w / w;
|
||||
yCount = image.GetSurface()->h / h;
|
||||
totalCount = xCount * yCount;
|
||||
//set the range
|
||||
begin = rangeEnd;
|
||||
end = begin + totalCount;
|
||||
rangeEnd += totalCount;
|
||||
}
|
||||
|
||||
SDL_Surface* TileSheet::GetSurface() {
|
||||
@@ -69,8 +62,8 @@ void TileSheet::DrawTo(SDL_Surface* const dest, int x, int y, int tileIndex) {
|
||||
if (!InRange(tileIndex)) {
|
||||
throw(std::runtime_error("Tile index out of range of Tile Sheet"));
|
||||
}
|
||||
Sint16 clipX = tileIndex % xCount * image.GetClipW();
|
||||
Sint16 clipY = tileIndex / xCount * image.GetClipH();
|
||||
Sint16 clipX = (tileIndex-begin) % xCount * image.GetClipW();
|
||||
Sint16 clipY = (tileIndex-begin) / xCount * image.GetClipH();
|
||||
|
||||
image.SetClipX(clipX);
|
||||
image.SetClipY(clipY);
|
||||
|
||||
Reference in New Issue
Block a user