123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /*
- * SideInBattle.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"
- #include "../callback/GameCallbackHolder.h"
- VCMI_LIB_NAMESPACE_BEGIN
- class CGHeroInstance;
- class CArmedInstance;
- struct DLL_LINKAGE SideInBattle : public GameCallbackHolder
- {
- using GameCallbackHolder::GameCallbackHolder;
- PlayerColor color = PlayerColor::CANNOT_DETERMINE;
- ObjectInstanceID heroID; //may be empty if army is not commanded by hero
- ObjectInstanceID armyObjectID; //adv. map object with army that participates in battle; may be same as hero
- uint32_t castSpellsCount = 0; //how many spells each side has been cast this turn
- std::vector<SpellID> usedSpellsHistory; //every time hero casts spell, it's inserted here -> eagle eye skill
- int32_t enchanterCounter = 0; //tends to pass through 0, so sign is needed
- int32_t initialMana = 0;
- int32_t additionalMana = 0;
- void init(const CGHeroInstance * Hero, const CArmedInstance * Army);
- const CArmedInstance * getArmy() const;
- const CGHeroInstance * getHero() const;
- template <typename Handler> void serialize(Handler &h)
- {
- h & color;
- h & heroID;
- h & armyObjectID;
- h & castSpellsCount;
- h & usedSpellsHistory;
- h & enchanterCounter;
- h & initialMana;
- h & additionalMana;
- }
- };
- VCMI_LIB_NAMESPACE_END
|