diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java index 673dd09bd..b9e6be9f7 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java @@ -174,7 +174,7 @@ public final class MonsterMovementController implements EvaluateWalkable { final CoordRect previousPosition = new CoordRect(new Coord(m.position), m.rectPosition.size); m.lastPosition.set(previousPosition.topLeft); m.position.set(m.nextPosition.topLeft); - controllers.effectController.startActorMoveEffect(m, previousPosition.topLeft, m.position, duration, new VisualEffectController.VisualEffectCompletedCallback() { + controllers.effectController.startActorMoveEffect(m, map, previousPosition.topLeft, m.position, duration, new VisualEffectController.VisualEffectCompletedCallback() { @Override public void onVisualEffectCompleted(int callbackValue) { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MovementController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MovementController.java index 6c26fe2df..6695ff0ad 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MovementController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MovementController.java @@ -241,7 +241,7 @@ public final class MovementController implements TimedMessageTask.Callback { player.position.set(newPosition); controllers.combatController.setCombatSelection(null, null); - controllers.effectController.startActorMoveEffect(player, player.lastPosition, newPosition, (int) (Constants.MINIMUM_INPUT_INTERVAL / 2), new VisualEffectController.VisualEffectCompletedCallback() { + controllers.effectController.startActorMoveEffect(player, currentMap, player.lastPosition, newPosition, (int) (Constants.MINIMUM_INPUT_INTERVAL / 2), new VisualEffectController.VisualEffectCompletedCallback() { @Override public void onVisualEffectCompleted(int callbackValue) { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java index 3df37a8a9..8af21936a 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java @@ -59,9 +59,9 @@ public final class VisualEffectController { enqueuedEffectValue = 0; } - public void startActorMoveEffect(Actor actor, Coord origin, Coord destination, int duration, VisualEffectCompletedCallback callback, int callbackValue) { + public void startActorMoveEffect(Actor actor, PredefinedMap map, Coord origin, Coord destination, int duration, VisualEffectCompletedCallback callback, int callbackValue) { ++effectCount; - (new SpriteMoveAnimation(origin, destination, duration, actor, callback, callbackValue)) + (new SpriteMoveAnimation(origin, destination, duration, actor, map, callback, callbackValue)) .start(); } @@ -74,6 +74,7 @@ public final class VisualEffectController { public final int duration; public final Actor actor; + public final PredefinedMap map; public final Coord origin; public final Coord destination; @@ -88,11 +89,12 @@ public final class VisualEffectController { // } } - public SpriteMoveAnimation(Coord origin, Coord destination, int duration, Actor actor, VisualEffectCompletedCallback callback, int callbackValue) { + public SpriteMoveAnimation(Coord origin, Coord destination, int duration, Actor actor, PredefinedMap map, VisualEffectCompletedCallback callback, int callbackValue) { this.callback = callback; this.callbackValue = callbackValue; this.duration = duration; this.actor = actor; + this.map = map; this.origin = origin; this.destination = destination; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java index aa1ff2f04..b79255b11 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java @@ -787,6 +787,7 @@ public final class MainView extends SurfaceView @Override public void onSpriteMoveStarted(SpriteMoveAnimation animation) { + if (animation.map != currentMap) return; synchronized (movingSpritesRedrawTick) { movingSprites++; movingSpritesRedrawTick.start(); @@ -800,6 +801,7 @@ public final class MainView extends SurfaceView @Override public void onSpriteMoveCompleted(SpriteMoveAnimation animation) { + if (animation.map != currentMap) return; movingSprites--; redrawArea(CoordRect.getBoundingRect(animation.origin, animation.destination, animation.actor.tileSize), RedrawAreaDebugReason.EffectCompleted); }