| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- /*
 
-  * PossiblePlayerBattleAction.h, part of VCMI engine
 
-  *
 
-  * Authors: listed in file AUTHORS in main folder
 
-  *
 
-  * License: GNU General Public License v2.0 or later
 
-  * Full text of license available in license.txt file, in main folder
 
-  *
 
-  */
 
- #pragma once
 
- #include "../GameConstants.h"
 
- VCMI_LIB_NAMESPACE_BEGIN
 
- class PossiblePlayerBattleAction // actions performed at l-click
 
- {
 
- public:
 
- 	enum Actions {
 
- 		INVALID = -1,
 
- 		CREATURE_INFO,
 
- 		HERO_INFO,
 
- 		MOVE_TACTICS,
 
- 		CHOOSE_TACTICS_STACK,
 
- 		MOVE_STACK,
 
- 		ATTACK,
 
- 		WALK_AND_ATTACK,
 
- 		ATTACK_AND_RETURN,
 
- 		SHOOT,
 
- 		CATAPULT,
 
- 		HEAL,
 
- 		RANDOM_GENIE_SPELL,   // random spell on a friendly creature
 
- 		NO_LOCATION,          // massive spells that affect every possible target, automatic casts
 
- 		ANY_LOCATION,
 
- 		OBSTACLE,
 
- 		TELEPORT,
 
- 		SACRIFICE,
 
- 		FREE_LOCATION,        // used with Force Field and Fire Wall - all tiles affected by spell must be free
 
- 		AIMED_SPELL_CREATURE, // spell targeted at creature
 
- 	};
 
- private:
 
- 	Actions action;
 
- 	SpellID spellToCast;
 
- public:
 
- 	bool spellcast() const
 
- 	{
 
- 		return action == ANY_LOCATION || action == NO_LOCATION || action == OBSTACLE || action == TELEPORT ||
 
- 			   action == SACRIFICE || action == FREE_LOCATION || action == AIMED_SPELL_CREATURE;
 
- 	}
 
- 	Actions get() const
 
- 	{
 
- 		return action;
 
- 	}
 
- 	SpellID spell() const
 
- 	{
 
- 		return spellToCast;
 
- 	}
 
- 	PossiblePlayerBattleAction(Actions action, SpellID spellToCast = SpellID::NONE):
 
- 		action(static_cast<Actions>(action)),
 
- 		spellToCast(spellToCast)
 
- 	{
 
- 		assert((spellToCast != SpellID::NONE) == spellcast());
 
- 	}
 
- 	bool operator == (const PossiblePlayerBattleAction & other) const
 
- 	{
 
- 		return action == other.action && spellToCast == other.spellToCast;
 
- 	}
 
- 	bool operator != (const PossiblePlayerBattleAction & other) const
 
- 	{
 
- 		return action != other.action || spellToCast != other.spellToCast;
 
- 	}
 
- };
 
- VCMI_LIB_NAMESPACE_END
 
 
  |