summaryrefslogtreecommitdiff
path: root/src/map.cpp
diff options
context:
space:
mode:
authorBjørn Lindeijer <bjorn@lindeijer.nl>2005-10-09 03:34:45 +0000
committerBjørn Lindeijer <bjorn@lindeijer.nl>2005-10-09 03:34:45 +0000
commit8bde9095c5840b8d62ebafe11beaed98877d6ac2 (patch)
tree537f717a339d1247cae222eb7a354ea5dbe8babf /src/map.cpp
parenta246c08cef5e4d598fc07a681eb971bfbcf01519 (diff)
downloadmana-8bde9095c5840b8d62ebafe11beaed98877d6ac2.tar.gz
mana-8bde9095c5840b8d62ebafe11beaed98877d6ac2.tar.bz2
mana-8bde9095c5840b8d62ebafe11beaed98877d6ac2.tar.xz
mana-8bde9095c5840b8d62ebafe11beaed98877d6ac2.zip
* Made Sprite into an interface implemented by both FloorItem and Being, which
hook themselves into the map on construction. The improved fringe layer is working as expected now. * Made sure TMW compiles without warnings even when using "-Wconversion -Wshadow -Wcast-qual -Wwrite-strings -ansi -pedantic", lots of cleanups. * Added two new small tilesets that contain the desert tiles that are twice and three times the height of a normal tile. One well in new_3-1 has been converted to use the new double tiles for testing purposes.
Diffstat (limited to 'src/map.cpp')
-rw-r--r--src/map.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/map.cpp b/src/map.cpp
index 3237b54a..37b7292a 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -36,8 +36,8 @@ MetaTile::MetaTile():
}
-Location::Location(int x, int y, MetaTile *tile):
- x(x), y(y), tile(tile)
+Location::Location(int iX, int iY, MetaTile *iTile):
+ x(iX), y(iY), tile(iTile)
{
}
@@ -88,7 +88,7 @@ Map::addTileset(Tileset *tileset)
bool spriteCompare(const Sprite *a, const Sprite *b)
{
- return a->getY() < b->getY();
+ return a->getPixelY() < b->getPixelY();
}
void
@@ -118,7 +118,7 @@ Map::draw(Graphics *graphics, int scrollX, int scrollY, int layer)
// tiles have been drawn
if (layer == 1)
{
- while (si != mSprites.end() && (*si)->getY() < y * 32)
+ while (si != mSprites.end() && (*si)->getPixelY() <= y * 32 - 32)
{
(*si)->draw(graphics, -scrollX, -scrollY);
si++;
@@ -135,6 +135,16 @@ Map::draw(Graphics *graphics, int scrollX, int scrollY, int layer)
}
}
}
+
+ // Draw any remaining sprites
+ if (layer == 1)
+ {
+ while (si != mSprites.end())
+ {
+ (*si)->draw(graphics, -scrollX, -scrollY);
+ si++;
+ }
+ }
}
void