mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-14 10:12:59 +02:00
2a05fbdd50
- Replaced BattleSide namespace-enum with enum class - Merged two different BattleSide enum's into one - Merged BattlePerspective enum into BattleSide enum - Changed all places that use integers to represent battle side to use BattleSide enum - Added BattleSideArray convenience wrapper for std::array that is always 2-elements in size and allows access to its elements using BattleSide enum
48 lines
1.3 KiB
C++
48 lines
1.3 KiB
C++
/*
|
|
* BattleQueries.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 "CQuery.h"
|
|
#include "../../lib/networkPacks/PacksForClientBattle.h"
|
|
#include "../../lib/battle/BattleSide.h"
|
|
|
|
VCMI_LIB_NAMESPACE_BEGIN
|
|
class IBattleInfo;
|
|
struct SideInBattle;
|
|
VCMI_LIB_NAMESPACE_END
|
|
|
|
class CBattleQuery : public CQuery
|
|
{
|
|
public:
|
|
BattleSideArray<const CArmedInstance *> belligerents;
|
|
BattleSideArray<int> initialHeroMana;
|
|
|
|
BattleID battleID;
|
|
std::optional<BattleResult> result;
|
|
|
|
CBattleQuery(CGameHandler * owner);
|
|
CBattleQuery(CGameHandler * owner, const IBattleInfo * Bi); //TODO
|
|
void notifyObjectAboutRemoval(const CObjectVisitQuery &objectVisit) const override;
|
|
bool blocksPack(const CPack *pack) const override;
|
|
void onRemoval(PlayerColor color) override;
|
|
void onExposure(QueryPtr topQuery) override;
|
|
};
|
|
|
|
class CBattleDialogQuery : public CDialogQuery
|
|
{
|
|
bool resultProcessed = false;
|
|
const IBattleInfo * bi;
|
|
std::optional<BattleResult> result;
|
|
|
|
public:
|
|
CBattleDialogQuery(CGameHandler * owner, const IBattleInfo * Bi, std::optional<BattleResult> Br);
|
|
void onRemoval(PlayerColor color) override;
|
|
};
|