From 9474df57053c3d151e47d037c26af8229341117a Mon Sep 17 00:00:00 2001 From: Daniel Karbach Date: Sat, 6 Oct 2012 22:35:34 +0200 Subject: [PATCH] added area bounds to debug overlay --- src/map/Area.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/map/Area.cpp b/src/map/Area.cpp index 0b25a04..84dc8a6 100644 --- a/src/map/Area.cpp +++ b/src/map/Area.cpp @@ -45,6 +45,21 @@ void Area::Render(SDL_Surface *dest, const graphics::Sprite *tileset, const Vect } void Area::RenderDebug(SDL_Surface *dest, const graphics::Sprite *tileset, const Vector &inOffset) const { + SDL_Rect destRect; + destRect.x = inOffset.X(); + destRect.y = inOffset.Y(); + destRect.w = Width() * tileset->Width(); + destRect.h = 1; + SDL_FillRect(dest, &destRect, SDL_MapRGB(dest->format, 0x00, 0x00, 0xFF)); + destRect.y += Height() * tileset->Height() - 1; + SDL_FillRect(dest, &destRect, SDL_MapRGB(dest->format, 0x00, 0x00, 0xFF)); + destRect.y = inOffset.Y(); + destRect.w = 1; + destRect.h = Height() * tileset->Height(); + SDL_FillRect(dest, &destRect, SDL_MapRGB(dest->format, 0x00, 0x00, 0xFF)); + destRect.x += Width() * tileset->Width() - 1; + SDL_FillRect(dest, &destRect, SDL_MapRGB(dest->format, 0x00, 0x00, 0xFF)); + for (int i(0); i < numTiles; ++i) { Vector offset( inOffset.X() + (i % width) * tileset->Width(), @@ -52,7 +67,6 @@ void Area::RenderDebug(SDL_Surface *dest, const graphics::Sprite *tileset, const const Tile &tile(tiles[i]); if (tile.BlocksNorth()) { - SDL_Rect destRect; destRect.x = offset.X(); destRect.y = offset.Y(); destRect.w = tileset->Width(); @@ -61,7 +75,6 @@ void Area::RenderDebug(SDL_Surface *dest, const graphics::Sprite *tileset, const } if (tile.BlocksEast()) { - SDL_Rect destRect; destRect.x = offset.X() + tileset->Width() - 1; destRect.y = offset.Y(); destRect.w = 1; @@ -70,7 +83,6 @@ void Area::RenderDebug(SDL_Surface *dest, const graphics::Sprite *tileset, const } if (tile.BlocksSouth()) { - SDL_Rect destRect; destRect.x = offset.X(); destRect.y = offset.Y() + tileset->Height() - 1; destRect.w = tileset->Width(); @@ -79,7 +91,6 @@ void Area::RenderDebug(SDL_Surface *dest, const graphics::Sprite *tileset, const } if (tile.BlocksWest()) { - SDL_Rect destRect; destRect.x = offset.X(); destRect.y = offset.Y(); destRect.w = 1; -- 2.39.2