X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2FTargetSelection.cpp;h=573200a799c1caf96e3819f47850e5eb67fd4a29;hb=63a2a96b70a18d08a2714571f79fe7d99612cb9e;hp=876933061528176eebd3837b1fb50605f314fc39;hpb=fde7b27297882a7f033641df92e732abd137b532;p=l2e.git diff --git a/src/battle/TargetSelection.cpp b/src/battle/TargetSelection.cpp index 8769330..573200a 100644 --- a/src/battle/TargetSelection.cpp +++ b/src/battle/TargetSelection.cpp @@ -1,25 +1,31 @@ -/* - * TargetSelection.cpp - * - * Created on: Aug 9, 2012 - * Author: holy - */ - #include "TargetSelection.h" -#include "BattleState.h" +#include "Battle.h" #include "../common/TargetingMode.h" +#include + + namespace battle { -TargetSelection::TargetSelection(BattleState *battle, bool multiple, bool atEnemy) +TargetSelection::TargetSelection() +: battle(0) +, selected() +, selection(-1) +, cursor(0) +, multiple(false) +, enemy(true) { + +} + +TargetSelection::TargetSelection(Battle *battle, bool multiple, bool atEnemy) : battle(battle) -, selected(battle ? (battle->MaxMonsters() > battle->NumHeroes() ? battle->MaxMonsters() : battle->NumHeroes()) : 0, State()) +, selected(battle->MaxMonsters() > battle->NumHeroes() ? battle->MaxMonsters() : battle->NumHeroes(), State()) , selection(-1) , cursor(0) , multiple(multiple) , enemy(atEnemy) { - if (battle && enemy) { + if (enemy) { FindNextEnemy(); } } @@ -74,6 +80,7 @@ void TargetSelection::MoveUp() { } void TargetSelection::MoveRight() { + assert(battle); if (TargetsMonsters()) { cursor = (cursor + 1) % battle->MaxMonsters(); while (!battle->MonsterPositionOccupied(cursor)) { @@ -85,6 +92,7 @@ void TargetSelection::MoveRight() { } void TargetSelection::MoveDown() { + assert(battle); if (TargetsMonsters()) { SelectHeroes(); return; @@ -96,6 +104,7 @@ void TargetSelection::MoveDown() { } void TargetSelection::MoveLeft() { + assert(battle); if (TargetsMonsters()) { cursor = (cursor + battle->MaxMonsters() - 1) % battle->MaxMonsters(); FindNextEnemy(); @@ -105,6 +114,7 @@ void TargetSelection::MoveLeft() { } void TargetSelection::FindNextEnemy() { + assert(battle); int start(cursor); while (!battle->MonsterPositionOccupied(cursor)) { cursor = (cursor + battle->MaxMonsters() - 1) % battle->MaxMonsters();