mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-25 22:42:04 +02:00
Rework CCallback <-> CClient interaction
- callback is now part of lib instead of weird class that is shared by client and AI while being part of client - callback interacts with client class via minimal interface class - removed no longer used unlockGsWhileWaiting field
This commit is contained in:
@@ -11,14 +11,17 @@
|
||||
#include "CBattleCallback.h"
|
||||
|
||||
#include "CGameInterface.h"
|
||||
#include "IClient.h"
|
||||
|
||||
#include "../UnlockGuard.h"
|
||||
#include "../battle/CPlayerBattleCallback.h"
|
||||
#include "../battle/IBattleState.h"
|
||||
#include "../gameState/CGameState.h"
|
||||
#include "../networkPacks/PacksForServer.h"
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
CBattleCallback::CBattleCallback(std::optional<PlayerColor> player, CClient * C):
|
||||
CBattleCallback::CBattleCallback(std::optional<PlayerColor> player, IClient * C):
|
||||
cl(C),
|
||||
player(player)
|
||||
{
|
||||
@@ -42,7 +45,7 @@ void CBattleCallback::battleMakeTacticAction(const BattleID & battleID, const Ba
|
||||
|
||||
std::optional<BattleAction> CBattleCallback::makeSurrenderRetreatDecision(const BattleID & battleID, const BattleStateInfoForRetreat & battleState)
|
||||
{
|
||||
return cl->playerint[getPlayerID().value()]->makeSurrenderRetreatDecision(battleID, battleState);
|
||||
return cl->makeSurrenderRetreatDecision(*getPlayerID(), battleID, battleState);
|
||||
}
|
||||
|
||||
std::shared_ptr<CPlayerBattleCallback> CBattleCallback::getBattle(const BattleID & battleID)
|
||||
@@ -76,4 +79,17 @@ void CBattleCallback::onBattleEnded(const BattleID & battleID)
|
||||
activeBattles.erase(battleID);
|
||||
}
|
||||
|
||||
void CBattleCallback::battleMakeSpellAction(const BattleID & battleID, const BattleAction & action)
|
||||
{
|
||||
assert(action.actionType == EActionType::HERO_SPELL);
|
||||
MakeAction mca(action);
|
||||
mca.battleID = battleID;
|
||||
sendRequest(mca);
|
||||
}
|
||||
|
||||
int CBattleCallback::sendRequest(const CPackForServer & request)
|
||||
{
|
||||
return cl->sendRequest(request, *getPlayerID(), waitTillRealize);
|
||||
}
|
||||
|
||||
VCMI_LIB_NAMESPACE_END
|
||||
|
||||
Reference in New Issue
Block a user