From 2e2983f527016df021cdfd5d92a9738d93c550d4 Mon Sep 17 00:00:00 2001 From: OMGeeky Date: Sun, 15 Dec 2024 19:57:46 +0100 Subject: [PATCH] some more potential animation freeze fixes --- .../controller/VisualEffectController.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java b/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java index c6e76ab9e..095dc2966 100644 --- a/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java +++ b/AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java @@ -61,7 +61,7 @@ public final class VisualEffectController { public void run() { if(!activeAnimations.isEmpty()) { long updateInterval = getEffectUpdateInterval(); - animationHandler.postDelayed(this, updateInterval); + if(updateInterval > 0) animationHandler.postDelayed(this, updateInterval); for (int i = 0; i < activeAnimations.size(); i++) { VisualEffectAnimation animation = activeAnimations.get(i); @@ -155,6 +155,7 @@ public final class VisualEffectController { textPaint.setTextAlign(Align.CENTER); } + /// only for combat effects, movement & blood splatters etc. are handled elsewhere. public final class VisualEffectAnimation { public int tileID; public int textYOffset; @@ -188,8 +189,10 @@ public final class VisualEffectController { } public void start() { - if (!controllers.preferences.enableUiAnimations) onCompleted(); - else startAnimation(this); + if (!controllers.preferences.enableUiAnimations + || effect.duration == 0 + || controllers.preferences.attackspeed_milliseconds <= 0) onCompleted(); + else startAnimation(this); } private int currentFrame = 0; @@ -289,10 +292,10 @@ public final class VisualEffectController { return -1; } } - + public void asyncUpdateArea(CoordRect area) { visualEffectFrameListeners.onAsyncAreaUpdate(area); } - + }