#include "TargetSelection.h"
+namespace common {
+ class Ikari;
+ class Item;
+ class Spell;
+}
+
namespace battle {
class AttackChoice {
};
public:
- explicit AttackChoice(BattleState *b = 0) : type(UNDECIDED), selection(b) { }
+ explicit AttackChoice(BattleState *b = 0) : thing(0), selection(b), type(UNDECIDED) { }
~AttackChoice() { }
public:
Type GetType() const { return type; }
void SetType(Type t) { type = t; }
+ const common::Item *GetItem() const { return (const common::Item *)thing; }
+ void SetItem(const common::Item *i) { thing = i; }
+ const common::Spell *GetSpell() const { return (const common::Spell *)thing; }
+ void SetSpell(const common::Spell *s) { thing = s; }
TargetSelection &Selection() { return selection; }
const TargetSelection &Selection() const { return selection; }
+ void Reset();
+
private:
- Type type;
+ const void *thing;
TargetSelection selection;
+ Type type;
};