diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-10-09 03:34:45 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-10-09 03:34:45 +0000 |
commit | 8bde9095c5840b8d62ebafe11beaed98877d6ac2 (patch) | |
tree | 537f717a339d1247cae222eb7a354ea5dbe8babf /src/map.cpp | |
parent | a246c08cef5e4d598fc07a681eb971bfbcf01519 (diff) | |
download | mana-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.cpp | 18 |
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 |