From 6d2b97d8d2c2c644c5fba01bade6e5a373b8dc29 Mon Sep 17 00:00:00 2001 From: Oskar Wiksten Date: Mon, 28 Jan 2013 00:39:49 +0100 Subject: [PATCH] Bugfix - Prevent force-close when a monster dies from a lingering actor condition (issue 336). Thanks to Xero from the forums for finding the bug! --- .../rpg/AndorsTrail/controller/ActorStatsController.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java index e1962f596..08ce6693e 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ActorStatsController.java @@ -248,9 +248,11 @@ public class ActorStatsController { public void applyConditionsToMonsters(PredefinedMap map, boolean isFullRound) { for (MonsterSpawnArea a : map.spawnAreas) { - for (Monster m : a.monsters) { - applyConditionsToMonster(m, isFullRound); - } + // Iterate the array backwards, since monsters may get removed from the array inside applyConditionsToMonster. + for (int i = a.monsters.size()-1; i >= 0; --i) { + final Monster m = a.monsters.get(i); + applyConditionsToMonster(m, isFullRound); + } } }