From a10e8fb45dbfb7a8761cbf8879dfc70c1150a03b Mon Sep 17 00:00:00 2001 From: Ethan Moffat Date: Mon, 7 Mar 2022 22:47:36 -0800 Subject: [PATCH] Fix rendering of other characters - Draw frames when character is walking (don't consider destination x/y for if renderer should be drawn) - Fix replay of walk animation when character is not main character --- EndlessClient/Rendering/Character/CharacterAnimator.cs | 2 +- .../MapEntityRenderers/OtherCharacterEntityRenderer.cs | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/EndlessClient/Rendering/Character/CharacterAnimator.cs b/EndlessClient/Rendering/Character/CharacterAnimator.cs index 3c9e55cee..a3a0956d3 100644 --- a/EndlessClient/Rendering/Character/CharacterAnimator.cs +++ b/EndlessClient/Rendering/Character/CharacterAnimator.cs @@ -181,7 +181,7 @@ private void AnimateCharacterWalking() { var isMainCharacter = currentCharacter == _characterRepository.MainCharacter; - if (isMainCharacter && _walkValidationActions.CanMoveToCoordinates(nextFrameRenderProperties.GetDestinationX(), nextFrameRenderProperties.GetDestinationY())) + if (!isMainCharacter || (isMainCharacter && _walkValidationActions.CanMoveToCoordinates(nextFrameRenderProperties.GetDestinationX(), nextFrameRenderProperties.GetDestinationY()))) { // send the walk packet after the game state has been updated so the correct coordinates are sent sendWalk = currentCharacter == _characterRepository.MainCharacter; diff --git a/EndlessClient/Rendering/MapEntityRenderers/OtherCharacterEntityRenderer.cs b/EndlessClient/Rendering/MapEntityRenderers/OtherCharacterEntityRenderer.cs index 346d3f48c..58bbc0023 100644 --- a/EndlessClient/Rendering/MapEntityRenderers/OtherCharacterEntityRenderer.cs +++ b/EndlessClient/Rendering/MapEntityRenderers/OtherCharacterEntityRenderer.cs @@ -59,14 +59,7 @@ public override void RenderElementAt(SpriteBatch spriteBatch, int row, int col, private bool IsAtPosition(int characterId, int row, int col) { var rp = _characterStateCache.OtherCharacters[characterId].RenderProperties; - if (!rp.IsActing(CharacterActionState.Walking)) - { - return row == rp.MapY && col == rp.MapX; - } - else - { - return row == rp.GetDestinationY() && col == rp.GetDestinationX(); - } + return row == rp.MapY && col == rp.MapX; } } } \ No newline at end of file