more otserv compatibilities fixes
This commit is contained in:
parent
d586bb5e93
commit
cc261931be
|
@ -376,10 +376,7 @@ void Creature::updateWalkingTile()
|
|||
|
||||
// only render creatures where bottom right is inside tile rect
|
||||
if(virtualTileRect.contains(virtualCreatureRect.bottomRight())) {
|
||||
const TilePtr& tile = g_map.getTile(m_position.translated(xi, yi, 0));
|
||||
if(!tile)
|
||||
continue;
|
||||
newWalkingTile = tile;
|
||||
newWalkingTile = g_map.getOrCreateTile(m_position.translated(xi, yi, 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -266,9 +266,6 @@ void Map::addCreature(const CreaturePtr& creature)
|
|||
|
||||
CreaturePtr Map::getCreatureById(uint32 id)
|
||||
{
|
||||
LocalPlayerPtr localPlayer = g_game.getLocalPlayer();
|
||||
if(localPlayer && localPlayer->getId() == id)
|
||||
return localPlayer;
|
||||
auto it = m_knownCreatures.find(id);
|
||||
if(it == m_knownCreatures.end())
|
||||
return nullptr;
|
||||
|
|
|
@ -170,6 +170,11 @@ ThingPtr Tile::addThing(const ThingPtr& thing, int stackPos)
|
|||
int priority = thing->getStackPriority();
|
||||
for(stackPos = 0; stackPos < (int)m_things.size(); ++stackPos) {
|
||||
int otherPriority = m_things[stackPos]->getStackPriority();
|
||||
#if PROTOCOL<=810
|
||||
// older protocols stores creatures in reverse order
|
||||
if(priority == 4 && otherPriority == 4)
|
||||
break;
|
||||
#endif
|
||||
if(otherPriority > priority)
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -388,6 +388,7 @@ void ProtocolGame::parseMapMoveWest(InputMessage& msg)
|
|||
void ProtocolGame::parseUpdateTile(InputMessage& msg)
|
||||
{
|
||||
Position tilePos = parsePosition(msg);
|
||||
g_map.cleanTile(tilePos);
|
||||
int thingId = msg.getU16(true);
|
||||
if(thingId == 0xFF01) {
|
||||
msg.getU16();
|
||||
|
@ -1161,8 +1162,6 @@ void ProtocolGame::setFloorDescription(InputMessage& msg, int32 x, int32 y, int3
|
|||
|
||||
void ProtocolGame::setTileDescription(InputMessage& msg, Position position)
|
||||
{
|
||||
g_map.cleanTile(position);
|
||||
|
||||
int stackPos = 0;
|
||||
while(true) {
|
||||
int inspectItemId = msg.getU16(true);
|
||||
|
|
Loading…
Reference in New Issue