Fix a lag issue with auto walking
* Auto walking on unwalkable objects was still being processed by the findPath algorithm. Ed, if this algorithm shouldn't be causing lag spikes for the client, perhaps I should find the cause in findPath. For now this will fix the issue however.
This commit is contained in:
parent
0b29a4b466
commit
725a16e38e
|
@ -66,14 +66,6 @@ function UIGameMap:onMouseRelease(mousePosition, mouseButton)
|
|||
-- happens when clicking outside of map boundaries
|
||||
if not autoWalkPos then return false end
|
||||
|
||||
local localPlayerPos = g_game.getLocalPlayer():getPosition()
|
||||
if autoWalkPos.z ~= localPlayerPos.z then
|
||||
local dz = autoWalkPos.z - localPlayerPos.z
|
||||
autoWalkPos.x = autoWalkPos.x + dz
|
||||
autoWalkPos.y = autoWalkPos.y + dz
|
||||
autoWalkPos.z = localPlayerPos.z
|
||||
end
|
||||
|
||||
local lookThing
|
||||
local useThing
|
||||
local creatureThing
|
||||
|
@ -84,6 +76,18 @@ function UIGameMap:onMouseRelease(mousePosition, mouseButton)
|
|||
lookThing = tile:getTopLookThing()
|
||||
useThing = tile:getTopUseThing()
|
||||
creatureThing = tile:getTopCreature()
|
||||
|
||||
if tile:isWalkable() then
|
||||
local localPlayerPos = g_game.getLocalPlayer():getPosition()
|
||||
if autoWalkPos.z ~= localPlayerPos.z then
|
||||
local dz = autoWalkPos.z - localPlayerPos.z
|
||||
autoWalkPos.x = autoWalkPos.x + dz
|
||||
autoWalkPos.y = autoWalkPos.y + dz
|
||||
autoWalkPos.z = localPlayerPos.z
|
||||
end
|
||||
else
|
||||
autoWalkPos = nil
|
||||
end
|
||||
end
|
||||
|
||||
local ret = modules.game_interface.processMouseAction(mousePosition, mouseButton, autoWalkPos, lookThing, useThing, creatureThing)
|
||||
|
|
|
@ -515,6 +515,7 @@ void Client::registerLuaFunctions()
|
|||
g_lua.bindClassMemberFunction<Tile>("hasCreature", &Tile::hasCreature);
|
||||
g_lua.bindClassMemberFunction<Tile>("isEmpty", &Tile::isEmpty);
|
||||
g_lua.bindClassMemberFunction<Tile>("isClickable", &Tile::isClickable);
|
||||
g_lua.bindClassMemberFunction<Tile>("isPathable", &Tile::isPathable);
|
||||
g_lua.bindClassMemberFunction<Tile>("overwriteMinimapColor", &Tile::overwriteMinimapColor);
|
||||
|
||||
g_lua.registerClass<UIItem, UIWidget>();
|
||||
|
|
Loading…
Reference in New Issue