X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fbattle%2FTargetSelection.h;h=06d6f44198cda86c59341b314d4034a824cddd8a;hb=f552d26f537af9fa48255bd71cdc1a0a1b860bac;hp=64500b0b02aca225a117e2005d60f881f63fae11;hpb=a01c2f05b5a6493d7fe097eb15e5337a095992ae;p=l2e.git diff --git a/src/battle/TargetSelection.h b/src/battle/TargetSelection.h index 64500b0..06d6f44 100644 --- a/src/battle/TargetSelection.h +++ b/src/battle/TargetSelection.h @@ -8,20 +8,21 @@ #ifndef BATTLE_TARGETSELECTION_H_ #define BATTLE_TARGETSELECTION_H_ +#include "fwd.h" +#include "../common/fwd.h" + #include namespace battle { -class BattleState; - class TargetSelection { public: explicit TargetSelection(BattleState *battle = 0, bool multiple = false, bool atEnemy = true); public: - bool TargetsEnemies() const { return enemy; } - bool TargetsHeroes() const { return !TargetsEnemies(); } + bool TargetsMonsters() const { return enemy; } + bool TargetsHeroes() const { return !TargetsMonsters(); } bool IsSelected(int index) const { return index >= 0 && index < int(selected.size()) && selected[index].type != State::IGNORE; } bool HasSelected() const { return selection >= 0; } int SingleSelection() const { return selection; } @@ -31,7 +32,9 @@ public: bool SelectSingle() const { return !SelectMultiple(); } void SetSingle() { multiple = false; } - void SelectEnemies(); + void ReadMode(const common::TargetingMode &); + + void SelectMonsters(); void SelectHeroes(); void Select(int index) { selected[index].type = State::SELECTED; selection = index; } void Unselect(int index) { selected[index].type = State::IGNORE; } @@ -54,6 +57,9 @@ public: void SetGood(int index, int amount) { selected[index].type = State::GOOD; selected[index].number = amount; } void SetBad(int index, int amount) { selected[index].type = State::BAD; selected[index].number = amount; } int GetAmount(int index) const { return selected[index].number; } + bool Missed(int index) const { return selected[index].type == State::MISS; } + bool IsGood(int index) const { return selected[index].type == State::GOOD; } + bool IsBad(int index) const { return selected[index].type == State::BAD; } private: void FindNextEnemy();