| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /*
- * 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
- 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;
- }
- };
- VCMI_LIB_NAMESPACE_END
|