summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/being/being.cpp15
-rw-r--r--src/being/being.h5
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.