From 68e0916cf52206361ec03560644963cf095d853e Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 23 Aug 2017 01:48:57 -0400 Subject: [PATCH] v0.6.1b: fixed a rare ANR caused by motion interruption --- .../main/java/com/watabou/noosa/tweeners/Tweener.java | 9 +++++++++ .../shatteredpixeldungeon/sprites/CharSprite.java | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/SPD-classes/src/main/java/com/watabou/noosa/tweeners/Tweener.java b/SPD-classes/src/main/java/com/watabou/noosa/tweeners/Tweener.java index 30af46343..ae4945af1 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/tweeners/Tweener.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/tweeners/Tweener.java @@ -44,6 +44,11 @@ abstract public class Tweener extends Gizmo { @Override public void update() { + if (elapsed < 0){ + onComplete(); + kill(); + return; + } elapsed += Game.elapsed; if (elapsed >= interval) { updateValues( 1 ); @@ -54,6 +59,10 @@ abstract public class Tweener extends Gizmo { } } + public void stop( boolean complete ){ + elapsed = complete ? interval : -1; + } + protected void onComplete() { if (listener != null) { listener.onComplete( this ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java index 1559be9ce..dc66c873e 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java @@ -185,7 +185,7 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip public void interruptMotion() { if (motion != null) { - onComplete( motion ); + motion.stop(false); } }