Properly check tile elevation in older protocols

This commit is contained in:
Marcin Michalski
2016-01-28 16:35:08 +01:00
committed by Eduardo Bart
parent 7046fa1cdb
commit 13789c5612
4 changed files with 19 additions and 7 deletions

View File

@@ -509,9 +509,6 @@ bool Tile::isWalkable(bool ignoreCreatures)
if(!getGround())
return false;
if(g_game.getClientVersion() <= 740 && hasElevation(2))
return false;
for(const ThingPtr& thing : m_things) {
if(thing->isNotWalkable())
return false;
@@ -636,13 +633,18 @@ bool Tile::canErase()
return m_walkingCreatures.empty() && m_effects.empty() && m_things.empty() && m_flags == 0 && m_minimapColor == 0;
}
bool Tile::hasElevation(int elevation)
int Tile::getElevation() const
{
int count = 0;
int elevation = 0;
for(const ThingPtr& thing : m_things)
if(thing->getElevation() > 0)
count++;
return count >= elevation;
elevation++;
return elevation;
}
bool Tile::hasElevation(int elevation)
{
return getElevation() >= elevation;
}
void Tile::checkTranslucentLight()