From 468b0e3c99c6fe7969517f32c50c32a2f074c70f Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Mon, 4 Apr 2022 15:58:32 -0400 Subject: [PATCH] v1.2.2: fixed cases where char sprites would persist after destroyed --- .../shatteredpixeldungeon/sprites/CharSprite.java | 10 +++++++++- .../shatteredpixeldungeon/sprites/GhoulSprite.java | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) 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 22b019a7f..c8e32a924 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java @@ -160,7 +160,15 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip ch.updateSpriteState(); } - + + @Override + public void destroy() { + super.destroy(); + if (ch != null && ch.sprite == this){ + ch.sprite = null; + } + } + //used for just updating a sprite based on a given character, not linking them or placing in the game public void linkVisuals( Char ch ){ //do nothin by default diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/GhoulSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/GhoulSprite.java index ce736ee86..19f6b3b9b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/GhoulSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/GhoulSprite.java @@ -62,7 +62,7 @@ public class GhoulSprite extends MobSprite { @Override public void move(int from, int to) { if (parent == null){ - //fixme this happens rarely, likely due to ghoul life link? + //TODO this should be fixed as of v1.2.2, monitor for more reports and remove if we're clear Game.reportException(new RuntimeException("ghoul sprite tried to move with null parent! ghoul HP: " + ch.HP)); return; }