diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-09-17 21:33:43 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-09-17 21:33:43 +0300 |
commit | 293d5be21d3f23102ed6d507fea3dc56a5df8024 (patch) | |
tree | 12701e6acf8ae1ff4dcc0efdd21c528231585140 | |
parent | 17f2adad3ba9e6a5c64d2d923d9cbb190f234b6f (diff) | |
download | mv-293d5be21d3f23102ed6d507fea3dc56a5df8024.tar.gz mv-293d5be21d3f23102ed6d507fea3dc56a5df8024.tar.bz2 mv-293d5be21d3f23102ed6d507fea3dc56a5df8024.tar.xz mv-293d5be21d3f23102ed6d507fea3dc56a5df8024.zip |
fix heights offset on spawn time.
-rw-r--r-- | src/being/being.cpp | 15 | ||||
-rw-r--r-- | src/being/being.h | 5 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp index 6d1307fab..5b1e49a8c 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -3056,3 +3056,18 @@ void Being::setLook(const int look) if (mType == PLAYER) setSubtype(mSubType, look); } + +void Being::setTileCoords(const int x, const int y) +{ + mX = x; + mY = y; + if (mMap) + mOffsetY = mMap->getHeightOffset(mX, mY); +} + +void Being::setMap(Map *const map) +{ + Actor::setMap(map); + if (mMap) + mOffsetY = mMap->getHeightOffset(mX, mY); +} diff --git a/src/being/being.h b/src/being/being.h index f6e2d3f49..8d7db49a5 100644 --- a/src/being/being.h +++ b/src/being/being.h @@ -231,8 +231,7 @@ class Being : public ActorSprite, public ConfigListener /** * Sets the tile x and y coord */ - void setTileCoords(const int x, const int y) - { mX = x; mY = y; } + void setTileCoords(const int x, const int y); /** * Puts a "speech balloon" above this being for the specified amount @@ -900,6 +899,8 @@ class Being : public ActorSprite, public ConfigListener int getSortPixelY() const A_WARN_UNUSED { return static_cast<int>(mPos.y) - mYDiff - mSortOffsetY; } + void setMap(Map *const map); + protected: /** * Updates name's location. |