TargetSelection::TargetSelection(BattleState *battle, bool multiple, bool atEnemy)
: battle(battle)
-, selected(battle ? ((int)battle->MonsterPositions().size() > battle->NumHeroes() ? (int)battle->MonsterPositions().size() : battle->NumHeroes()) : 0, false)
+, selected(battle ? ((int)battle->MonsterPositions().size() > battle->NumHeroes() ? (int)battle->MonsterPositions().size() : battle->NumHeroes()) : 0, State())
, selection(-1)
, cursor(0)
, multiple(multiple)
SelectHeroes();
return;
}
- int newCursor(cursor + 2 % 4);
+ int newCursor((cursor + 2) % 4);
if (newCursor < battle->NumHeroes()) {
cursor = newCursor;
}
}
void TargetSelection::FindNextEnemy() {
+ int start(cursor);
while (!battle->MonsterPositionOccupied(cursor)) {
cursor = (cursor + battle->MonsterPositions().size() - 1) % battle->MonsterPositions().size();
+ if (cursor == start) break;
}
}