Stop walk animation after changing floors
This commit is contained in:
parent
b9dfc7784c
commit
a64ebc7e7b
|
@ -296,6 +296,7 @@ void Creature::onAppear()
|
|||
|
||||
// creature appeared the first time or wasn't seen for a long time
|
||||
if(m_removed) {
|
||||
stopWalk();
|
||||
m_removed = false;
|
||||
callLuaField("onAppear");
|
||||
// walk
|
||||
|
@ -304,6 +305,7 @@ void Creature::onAppear()
|
|||
callLuaField("onWalk", m_oldPosition, m_position);
|
||||
// teleport
|
||||
} else if(m_oldPosition != m_position) {
|
||||
stopWalk();
|
||||
callLuaField("onDisappear");
|
||||
callLuaField("onAppear");
|
||||
} // else turn
|
||||
|
|
|
@ -423,6 +423,15 @@ bool Tile::isWalkable()
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Tile::changesFloor()
|
||||
{
|
||||
for(const ThingPtr& thing : m_things) {
|
||||
if(thing->isTranslucent() || (thing->isOnBottom() && thing->hasElevation()))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Tile::isPathable()
|
||||
{
|
||||
if(!isWalkable())
|
||||
|
|
|
@ -92,6 +92,7 @@ public:
|
|||
int getThingCount() { return m_things.size() + m_effects.size(); }
|
||||
bool isPathable();
|
||||
bool isWalkable();
|
||||
bool changesFloor();
|
||||
bool isFullGround();
|
||||
bool isFullyOpaque();
|
||||
bool isLookPossible();
|
||||
|
|
Loading…
Reference in New Issue