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
	
	 BeniS
						BeniS