mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-10 22:31:40 +02:00
Remove CPack::applyGs method in favor of GameStatePackVisitor class
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
#include "../../lib/battle/BattleLayout.h"
|
||||
#include "../../lib/CStack.h"
|
||||
#include "../../lib/ScriptHandler.h"
|
||||
#include "../../lib/gameState/GameStatePackVisitor.h"
|
||||
#include "../../lib/networkPacks/PacksForClientBattle.h"
|
||||
#include "../../lib/networkPacks/SetStackEffect.h"
|
||||
|
||||
@@ -538,37 +539,44 @@ void HypotheticBattle::HypotheticServerCallback::apply(CPackForClient & pack)
|
||||
|
||||
void HypotheticBattle::HypotheticServerCallback::apply(BattleLogMessage & pack)
|
||||
{
|
||||
pack.applyBattle(owner);
|
||||
BattleStatePackVisitor visitor(*owner);
|
||||
pack.visit(visitor);
|
||||
}
|
||||
|
||||
void HypotheticBattle::HypotheticServerCallback::apply(BattleStackMoved & pack)
|
||||
{
|
||||
pack.applyBattle(owner);
|
||||
BattleStatePackVisitor visitor(*owner);
|
||||
pack.visit(visitor);
|
||||
}
|
||||
|
||||
void HypotheticBattle::HypotheticServerCallback::apply(BattleUnitsChanged & pack)
|
||||
{
|
||||
pack.applyBattle(owner);
|
||||
BattleStatePackVisitor visitor(*owner);
|
||||
pack.visit(visitor);
|
||||
}
|
||||
|
||||
void HypotheticBattle::HypotheticServerCallback::apply(SetStackEffect & pack)
|
||||
{
|
||||
pack.applyBattle(owner);
|
||||
BattleStatePackVisitor visitor(*owner);
|
||||
pack.visit(visitor);
|
||||
}
|
||||
|
||||
void HypotheticBattle::HypotheticServerCallback::apply(StacksInjured & pack)
|
||||
{
|
||||
pack.applyBattle(owner);
|
||||
BattleStatePackVisitor visitor(*owner);
|
||||
pack.visit(visitor);
|
||||
}
|
||||
|
||||
void HypotheticBattle::HypotheticServerCallback::apply(BattleObstaclesChanged & pack)
|
||||
{
|
||||
pack.applyBattle(owner);
|
||||
BattleStatePackVisitor visitor(*owner);
|
||||
pack.visit(visitor);
|
||||
}
|
||||
|
||||
void HypotheticBattle::HypotheticServerCallback::apply(CatapultAttack & pack)
|
||||
{
|
||||
pack.applyBattle(owner);
|
||||
BattleStatePackVisitor visitor(*owner);
|
||||
pack.visit(visitor);
|
||||
}
|
||||
|
||||
HypotheticBattle::HypotheticEnvironment::HypotheticEnvironment(HypotheticBattle * owner_, const Environment * upperEnvironment)
|
||||
|
@@ -47,7 +47,7 @@ public:
|
||||
void visitRebalanceStacks(RebalanceStacks & pack) override;
|
||||
void visitBulkRebalanceStacks(BulkRebalanceStacks & pack) override;
|
||||
void visitPutArtifact(PutArtifact & pack) override;
|
||||
void visitEraseArtifact(BulkEraseArtifacts & pack) override;
|
||||
void visitBulkEraseArtifacts(BulkEraseArtifacts & pack) override;
|
||||
void visitBulkMoveArtifacts(BulkMoveArtifacts & pack) override;
|
||||
void visitAssembledArtifact(AssembledArtifact & pack) override;
|
||||
void visitDisassembledArtifact(DisassembledArtifact & pack) override;
|
||||
|
@@ -270,7 +270,7 @@ void ApplyClientNetPackVisitor::visitPutArtifact(PutArtifact & pack)
|
||||
callInterfaceIfPresent(cl, cl.getOwner(pack.al.artHolder), &IGameEventsReceiver::askToAssembleArtifact, pack.al);
|
||||
}
|
||||
|
||||
void ApplyClientNetPackVisitor::visitEraseArtifact(BulkEraseArtifacts & pack)
|
||||
void ApplyClientNetPackVisitor::visitBulkEraseArtifacts(BulkEraseArtifacts & pack)
|
||||
{
|
||||
for(const auto & slotErase : pack.posPack)
|
||||
callInterfaceIfPresent(cl, cl.getOwner(pack.artHolder), &IGameEventsReceiver::artifactRemoved, ArtifactLocation(pack.artHolder, slotErase));
|
||||
|
@@ -112,6 +112,7 @@ set(lib_MAIN_SRCS
|
||||
|
||||
gameState/CGameState.cpp
|
||||
gameState/CGameStateCampaign.cpp
|
||||
gameState/GameStatePackVisitor.cpp
|
||||
gameState/HighScore.cpp
|
||||
gameState/InfoAboutArmy.cpp
|
||||
gameState/QuestInfo.cpp
|
||||
@@ -498,6 +499,7 @@ set(lib_MAIN_HEADERS
|
||||
gameState/CGameState.h
|
||||
gameState/CGameStateCampaign.h
|
||||
gameState/EVictoryLossCheckResult.h
|
||||
gameState/GameStatePackVisitor.h
|
||||
gameState/HighScore.h
|
||||
gameState/InfoAboutArmy.h
|
||||
gameState/RumorState.h
|
||||
|
@@ -14,6 +14,7 @@
|
||||
#include "InfoAboutArmy.h"
|
||||
#include "TavernHeroesPool.h"
|
||||
#include "CGameStateCampaign.h"
|
||||
#include "GameStatePackVisitor.h"
|
||||
#include "SThievesGuildInfo.h"
|
||||
#include "QuestInfo.h"
|
||||
|
||||
@@ -1119,7 +1120,8 @@ PlayerRelations CGameState::getPlayerRelations( PlayerColor color1, PlayerColor
|
||||
|
||||
void CGameState::apply(CPackForClient & pack)
|
||||
{
|
||||
pack.applyGs(this);
|
||||
GameStatePackVisitor visitor(*this);
|
||||
pack.visit(visitor);
|
||||
}
|
||||
|
||||
void CGameState::calculatePaths(const std::shared_ptr<PathfinderConfig> & config) const
|
||||
|
@@ -17,11 +17,6 @@
|
||||
#include "RumorState.h"
|
||||
#include "GameStatistics.h"
|
||||
|
||||
namespace boost
|
||||
{
|
||||
class shared_mutex;
|
||||
}
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
class EVictoryLossCheckResult;
|
||||
|
1575
lib/gameState/GameStatePackVisitor.cpp
Normal file
1575
lib/gameState/GameStatePackVisitor.cpp
Normal file
File diff suppressed because it is too large
Load Diff
121
lib/gameState/GameStatePackVisitor.h
Normal file
121
lib/gameState/GameStatePackVisitor.h
Normal file
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* GameStatePackVisitor.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 "../networkPacks/NetPackVisitor.h"
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
class CGameState;
|
||||
|
||||
class GameStatePackVisitor final : public ICPackVisitor
|
||||
{
|
||||
private:
|
||||
CGameState & gs;
|
||||
|
||||
public:
|
||||
GameStatePackVisitor(CGameState & gs)
|
||||
: gs(gs)
|
||||
{
|
||||
}
|
||||
|
||||
void visitSetResources(SetResources & pack) override;
|
||||
void visitSetPrimSkill(SetPrimSkill & pack) override;
|
||||
void visitSetSecSkill(SetSecSkill & pack) override;
|
||||
void visitHeroVisitCastle(HeroVisitCastle & pack) override;
|
||||
void visitSetMana(SetMana & pack) override;
|
||||
void visitSetMovePoints(SetMovePoints & pack) override;
|
||||
void visitSetResearchedSpells(SetResearchedSpells & pack) override;
|
||||
void visitFoWChange(FoWChange & pack) override;
|
||||
void visitChangeStackCount(ChangeStackCount & pack) override;
|
||||
void visitSetStackType(SetStackType & pack) override;
|
||||
void visitEraseStack(EraseStack & pack) override;
|
||||
void visitSwapStacks(SwapStacks & pack) override;
|
||||
void visitInsertNewStack(InsertNewStack & pack) override;
|
||||
void visitRebalanceStacks(RebalanceStacks & pack) override;
|
||||
void visitBulkRebalanceStacks(BulkRebalanceStacks & pack) override;
|
||||
void visitPutArtifact(PutArtifact & pack) override;
|
||||
void visitBulkEraseArtifacts(BulkEraseArtifacts & pack) override;
|
||||
void visitBulkMoveArtifacts(BulkMoveArtifacts & pack) override;
|
||||
void visitAssembledArtifact(AssembledArtifact & pack) override;
|
||||
void visitDisassembledArtifact(DisassembledArtifact & pack) override;
|
||||
void visitHeroVisit(HeroVisit & pack) override;
|
||||
void visitNewTurn(NewTurn & pack) override;
|
||||
void visitGiveBonus(GiveBonus & pack) override;
|
||||
void visitChangeObjPos(ChangeObjPos & pack) override;
|
||||
void visitPlayerEndsTurn(PlayerEndsTurn & pack) override;
|
||||
void visitPlayerEndsGame(PlayerEndsGame & pack) override;
|
||||
void visitPlayerReinitInterface(PlayerReinitInterface & pack) override;
|
||||
void visitRemoveBonus(RemoveBonus & pack) override;
|
||||
void visitRemoveObject(RemoveObject & pack) override;
|
||||
void visitTryMoveHero(TryMoveHero & pack) override;
|
||||
void visitNewStructures(NewStructures & pack) override;
|
||||
void visitRazeStructures(RazeStructures & pack) override;
|
||||
void visitSetAvailableCreatures(SetAvailableCreatures & pack) override;
|
||||
void visitSetHeroesInTown(SetHeroesInTown & pack) override;
|
||||
void visitHeroRecruited(HeroRecruited & pack) override;
|
||||
void visitGiveHero(GiveHero & pack) override;
|
||||
void visitSetObjectProperty(SetObjectProperty & pack) override;
|
||||
void visitHeroLevelUp(HeroLevelUp & pack) override;
|
||||
void visitCommanderLevelUp(CommanderLevelUp & pack) override;
|
||||
void visitBattleStart(BattleStart & pack) override;
|
||||
void visitBattleSetActiveStack(BattleSetActiveStack & pack) override;
|
||||
void visitBattleTriggerEffect(BattleTriggerEffect & pack) override;
|
||||
void visitBattleAttack(BattleAttack & pack) override;
|
||||
void visitBattleSpellCast(BattleSpellCast & pack) override;
|
||||
void visitSetStackEffect(SetStackEffect & pack) override;
|
||||
void visitStacksInjured(StacksInjured & pack) override;
|
||||
void visitBattleUnitsChanged(BattleUnitsChanged & pack) override;
|
||||
void visitBattleObstaclesChanged(BattleObstaclesChanged & pack) override;
|
||||
void visitBattleStackMoved(BattleStackMoved & pack) override;
|
||||
void visitCatapultAttack(CatapultAttack & pack) override;
|
||||
void visitPlayerStartsTurn(PlayerStartsTurn & pack) override;
|
||||
void visitNewObject(NewObject & pack) override;
|
||||
void visitSetAvailableArtifacts(SetAvailableArtifacts & pack) override;
|
||||
void visitEntitiesChanged(EntitiesChanged & pack) override;
|
||||
void visitSetCommanderProperty(SetCommanderProperty & pack) override;
|
||||
void visitAddQuest(AddQuest & pack) override;
|
||||
void visitUpdateArtHandlerLists(UpdateArtHandlerLists & pack) override;
|
||||
void visitChangeFormation(ChangeFormation & pack) override;
|
||||
void visitChangeSpells(ChangeSpells & pack) override;
|
||||
void visitSetAvailableHero(SetAvailableHero & pack) override;
|
||||
void visitChangeObjectVisitors(ChangeObjectVisitors & pack) override;
|
||||
void visitChangeArtifactsCostume(ChangeArtifactsCostume & pack) override;
|
||||
void visitNewArtifact(NewArtifact & pack) override;
|
||||
void visitBattleUpdateGateState(BattleUpdateGateState & pack) override;
|
||||
void visitPlayerCheated(PlayerCheated & pack) override;
|
||||
void visitDaysWithoutTown(DaysWithoutTown & pack) override;
|
||||
void visitStartAction(StartAction & pack) override;
|
||||
void visitSetRewardableConfiguration(SetRewardableConfiguration & pack) override;
|
||||
void visitBattleSetStackProperty(BattleSetStackProperty & pack) override;
|
||||
void visitBattleNextRound(BattleNextRound & pack) override;
|
||||
void visitBattleCancelled(BattleCancelled & pack) override;
|
||||
void visitBattleResultsApplied(BattleResultsApplied & pack) override;
|
||||
void visitBattleResultAccepted(BattleResultAccepted & pack) override;
|
||||
void visitTurnTimeUpdate(TurnTimeUpdate & pack) override;
|
||||
};
|
||||
|
||||
class DLL_LINKAGE BattleStatePackVisitor final : public ICPackVisitor
|
||||
{
|
||||
IBattleState & battleState;
|
||||
public:
|
||||
BattleStatePackVisitor(IBattleState & battleState)
|
||||
:battleState(battleState)
|
||||
{}
|
||||
|
||||
void visitSetStackEffect(SetStackEffect & pack) override;
|
||||
void visitStacksInjured(StacksInjured & pack) override;
|
||||
void visitBattleUnitsChanged(BattleUnitsChanged & pack) override;
|
||||
void visitBattleObstaclesChanged(BattleObstaclesChanged & pack) override;
|
||||
void visitCatapultAttack(CatapultAttack & pack) override;
|
||||
void visitBattleStackMoved(BattleStackMoved & pack) override;
|
||||
};
|
||||
|
||||
VCMI_LIB_NAMESPACE_END
|
@@ -15,6 +15,7 @@
|
||||
#include "CGHeroInstance.h"
|
||||
#include "../networkPacks/PacksForClient.h"
|
||||
#include "../mapObjectConstructors/FlaggableInstanceConstructor.h"
|
||||
#include "../gameState/GameStatePackVisitor.h"
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
@@ -88,7 +89,10 @@ void FlaggableMapObject::giveBonusTo(const PlayerColor & player, bool onInit) co
|
||||
// Proper fix would be to make FlaggableMapObject into bonus system node
|
||||
// Unfortunately this will cause saves breakage
|
||||
if(onInit)
|
||||
gb.applyGs(&cb->gameState());
|
||||
{
|
||||
GameStatePackVisitor visitor(cb->gameState());
|
||||
gb.visit(visitor);
|
||||
}
|
||||
else
|
||||
cb->sendAndApply(gb);
|
||||
}
|
||||
|
@@ -46,7 +46,7 @@ public:
|
||||
virtual void visitSetMana(SetMana & pack) {}
|
||||
virtual void visitSetMovePoints(SetMovePoints & pack) {}
|
||||
virtual void visitFoWChange(FoWChange & pack) {}
|
||||
virtual void visitSetAvailableHeroes(SetAvailableHero & pack) {}
|
||||
virtual void visitSetAvailableHero(SetAvailableHero & pack) {}
|
||||
virtual void visitGiveBonus(GiveBonus & pack) {}
|
||||
virtual void visitChangeObjPos(ChangeObjPos & pack) {}
|
||||
virtual void visitPlayerEndsTurn(PlayerEndsTurn & pack) {};
|
||||
@@ -78,7 +78,7 @@ public:
|
||||
virtual void visitRebalanceStacks(RebalanceStacks & pack) {}
|
||||
virtual void visitBulkRebalanceStacks(BulkRebalanceStacks & pack) {}
|
||||
virtual void visitPutArtifact(PutArtifact & pack) {}
|
||||
virtual void visitEraseArtifact(BulkEraseArtifacts & pack) {}
|
||||
virtual void visitBulkEraseArtifacts(BulkEraseArtifacts & pack) {}
|
||||
virtual void visitBulkMoveArtifacts(BulkMoveArtifacts & pack) {}
|
||||
virtual void visitAssembledArtifact(AssembledArtifact & pack) {}
|
||||
virtual void visitDisassembledArtifact(DisassembledArtifact & pack) {}
|
||||
@@ -123,7 +123,7 @@ public:
|
||||
virtual void visitBulkMoveArmy(BulkMoveArmy & pack) {}
|
||||
virtual void visitBulkSplitStack(BulkSplitStack & pack) {}
|
||||
virtual void visitBulkMergeStacks(BulkMergeStacks & pack) {}
|
||||
virtual void visitBulkSmartSplitStack(BulkSplitAndRebalanceStack & pack) {}
|
||||
virtual void visitBulkSplitAndRebalanceStack(BulkSplitAndRebalanceStack & pack) {}
|
||||
virtual void visitDisbandCreature(DisbandCreature & pack) {}
|
||||
virtual void visitBuildStructure(BuildStructure & pack) {}
|
||||
virtual void visitVisitTownBuilding(VisitTownBuilding & pack) {}
|
||||
@@ -178,6 +178,9 @@ public:
|
||||
virtual void visitLobbyPvPAction(LobbyPvPAction & pack) {}
|
||||
virtual void visitLobbyDelete(LobbyDelete & pack) {}
|
||||
virtual void visitSaveLocalState(SaveLocalState & pack) {}
|
||||
virtual void visitBattleCancelled(BattleCancelled & pack) {}
|
||||
virtual void visitBattleResultAccepted(BattleResultAccepted & pack) {}
|
||||
virtual void visitBattleStackMoved(BattleLogMessage & pack) {}
|
||||
};
|
||||
|
||||
VCMI_LIB_NAMESPACE_END
|
||||
|
@@ -33,21 +33,15 @@ struct DLL_LINKAGE CPack : public Serializeable
|
||||
void visit(ICPackVisitor & cpackVisitor);
|
||||
|
||||
protected:
|
||||
/// <summary>
|
||||
/// For basic types of netpacks hierarchy like CPackForClient. Called first.
|
||||
/// </summary>
|
||||
virtual void visitBasic(ICPackVisitor & cpackVisitor);
|
||||
|
||||
/// <summary>
|
||||
/// For leaf types of netpacks hierarchy. Called after visitBasic.
|
||||
/// </summary>
|
||||
virtual void visitTyped(ICPackVisitor & cpackVisitor);
|
||||
};
|
||||
|
||||
struct DLL_LINKAGE CPackForClient : public CPack
|
||||
{
|
||||
virtual void applyGs(CGameState * gs) = 0;
|
||||
|
||||
protected:
|
||||
void visitBasic(ICPackVisitor & cpackVisitor) override;
|
||||
};
|
||||
@@ -57,6 +51,13 @@ struct DLL_LINKAGE Query : public CPackForClient
|
||||
QueryID queryID; // equals to -1 if it is not an actual query (and should not be answered)
|
||||
};
|
||||
|
||||
struct PackForClientBattle : public CPackForClient
|
||||
{
|
||||
BattleID battleID;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
};
|
||||
|
||||
struct DLL_LINKAGE CPackForServer : public CPack
|
||||
{
|
||||
mutable PlayerColor player = PlayerColor::NEUTRAL;
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -57,7 +57,6 @@ struct DLL_LINKAGE PackageApplied : public CPackForClient
|
||||
{
|
||||
}
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState *gs) override {}
|
||||
|
||||
ui8 result = 0; //0 - something went wrong, request hasn't been realized; 1 - OK
|
||||
ui32 packType = 0; //type id of applied package
|
||||
@@ -82,7 +81,6 @@ struct DLL_LINKAGE SystemMessage : public CPackForClient
|
||||
SystemMessage() = default;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState *gs) override {}
|
||||
|
||||
MetaString text;
|
||||
|
||||
@@ -102,7 +100,6 @@ struct DLL_LINKAGE PlayerBlocked : public CPackForClient
|
||||
PlayerColor player;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState *gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
@@ -114,8 +111,6 @@ struct DLL_LINKAGE PlayerBlocked : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE PlayerCheated : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
PlayerColor player;
|
||||
bool losingCheatCode = false;
|
||||
bool winningCheatCode = false;
|
||||
@@ -132,8 +127,6 @@ struct DLL_LINKAGE PlayerCheated : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE TurnTimeUpdate : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
PlayerColor player;
|
||||
TurnTimerInfo turnTimer;
|
||||
|
||||
@@ -146,8 +139,6 @@ struct DLL_LINKAGE TurnTimeUpdate : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE PlayerStartsTurn : public Query
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
PlayerColor player;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
@@ -161,8 +152,6 @@ struct DLL_LINKAGE PlayerStartsTurn : public Query
|
||||
|
||||
struct DLL_LINKAGE DaysWithoutTown : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
PlayerColor player;
|
||||
std::optional<int32_t> daysWithoutCastle;
|
||||
|
||||
@@ -179,8 +168,6 @@ struct DLL_LINKAGE EntitiesChanged : public CPackForClient
|
||||
{
|
||||
std::vector<EntityChanges> changes;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -191,8 +178,6 @@ struct DLL_LINKAGE EntitiesChanged : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE SetResources : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
bool abs = true; //false - changes by value; 1 - sets to value
|
||||
@@ -209,8 +194,6 @@ struct DLL_LINKAGE SetResources : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE SetPrimSkill : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
ui8 abs = 0; //0 - changes by value; 1 - sets to value
|
||||
@@ -229,8 +212,6 @@ struct DLL_LINKAGE SetPrimSkill : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE SetSecSkill : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
ui8 abs = 0; //0 - changes by value; 1 - sets to value
|
||||
@@ -249,8 +230,6 @@ struct DLL_LINKAGE SetSecSkill : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE HeroVisitCastle : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
ui8 flags = 0; //1 - start
|
||||
@@ -272,8 +251,6 @@ struct DLL_LINKAGE HeroVisitCastle : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE ChangeSpells : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
ui8 learn = 1; //1 - gives spell, 0 - takes
|
||||
@@ -290,8 +267,6 @@ struct DLL_LINKAGE ChangeSpells : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE SetResearchedSpells : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
ui8 level = 0;
|
||||
@@ -310,8 +285,6 @@ struct DLL_LINKAGE SetResearchedSpells : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE SetMana : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
SetMana() = default;
|
||||
@@ -335,8 +308,6 @@ struct DLL_LINKAGE SetMana : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE SetMovePoints : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
SetMovePoints() = default;
|
||||
SetMovePoints(ObjectInstanceID hid, si32 val, bool absolute)
|
||||
: hid(hid)
|
||||
@@ -360,8 +331,6 @@ struct DLL_LINKAGE SetMovePoints : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE FoWChange : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
std::unordered_set<int3> tiles;
|
||||
PlayerColor player;
|
||||
ETileVisibility mode;
|
||||
@@ -384,7 +353,6 @@ struct DLL_LINKAGE SetAvailableHero : public CPackForClient
|
||||
{
|
||||
army.clearSlots();
|
||||
}
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
TavernHeroSlot slotID;
|
||||
TavernSlotRole roleID;
|
||||
@@ -429,8 +397,6 @@ struct DLL_LINKAGE GiveBonus : public CPackForClient
|
||||
{
|
||||
}
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
ETarget who = ETarget::OBJECT;
|
||||
VariantType id;
|
||||
Bonus bonus;
|
||||
@@ -448,8 +414,6 @@ struct DLL_LINKAGE GiveBonus : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE ChangeObjPos : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
/// Object to move
|
||||
ObjectInstanceID objid;
|
||||
/// New position of visitable tile of an object
|
||||
@@ -469,8 +433,6 @@ struct DLL_LINKAGE ChangeObjPos : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE PlayerEndsTurn : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
PlayerColor player;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
@@ -483,8 +445,6 @@ struct DLL_LINKAGE PlayerEndsTurn : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE PlayerEndsGame : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
PlayerColor player;
|
||||
EVictoryLossCheckResult victoryLossCheckResult;
|
||||
StatisticDataSet statistic;
|
||||
@@ -501,8 +461,6 @@ struct DLL_LINKAGE PlayerEndsGame : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE PlayerReinitInterface : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
std::vector<PlayerColor> players;
|
||||
ui8 playerConnectionId; //PLAYER_AI for AI player
|
||||
|
||||
@@ -522,8 +480,6 @@ struct DLL_LINKAGE RemoveBonus : public CPackForClient
|
||||
{
|
||||
}
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
GiveBonus::ETarget who; //who receives bonus
|
||||
VariantIdentifier<HeroTypeID, PlayerColor, BattleID, ObjectInstanceID> whoID;
|
||||
|
||||
@@ -549,8 +505,6 @@ struct DLL_LINKAGE SetCommanderProperty : public CPackForClient
|
||||
{
|
||||
enum ECommanderProperty { ALIVE, BONUS, SECONDARY_SKILL, EXPERIENCE, SPECIAL_SKILL };
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
ObjectInstanceID heroid;
|
||||
|
||||
ECommanderProperty which = ALIVE;
|
||||
@@ -572,8 +526,6 @@ struct DLL_LINKAGE SetCommanderProperty : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE AddQuest : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
PlayerColor player;
|
||||
QuestInfo quest;
|
||||
|
||||
@@ -590,7 +542,6 @@ struct DLL_LINKAGE UpdateArtHandlerLists : public CPackForClient
|
||||
{
|
||||
std::map<ArtifactID, int> allocatedArtifacts;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -604,7 +555,6 @@ struct DLL_LINKAGE ChangeFormation : public CPackForClient
|
||||
ObjectInstanceID hid;
|
||||
EArmyFormation formation{};
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -623,7 +573,6 @@ struct DLL_LINKAGE RemoveObject : public CPackForClient
|
||||
{
|
||||
}
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
/// ID of removed object
|
||||
@@ -641,8 +590,6 @@ struct DLL_LINKAGE RemoveObject : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE TryMoveHero : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
enum EResult
|
||||
{
|
||||
FAILED,
|
||||
@@ -689,8 +636,6 @@ struct DLL_LINKAGE TryMoveHero : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE NewStructures : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
ObjectInstanceID tid;
|
||||
std::set<BuildingID> bid;
|
||||
si16 built = 0;
|
||||
@@ -707,8 +652,6 @@ struct DLL_LINKAGE NewStructures : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE RazeStructures : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
ObjectInstanceID tid;
|
||||
std::set<BuildingID> bid;
|
||||
si16 destroyed = 0;
|
||||
@@ -725,8 +668,6 @@ struct DLL_LINKAGE RazeStructures : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE SetAvailableCreatures : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
ObjectInstanceID tid;
|
||||
std::vector<std::pair<ui32, std::vector<CreatureID> > > creatures;
|
||||
|
||||
@@ -741,8 +682,6 @@ struct DLL_LINKAGE SetAvailableCreatures : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE SetHeroesInTown : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
ObjectInstanceID tid; //id of town
|
||||
ObjectInstanceID visiting; //id of visiting hero
|
||||
ObjectInstanceID garrison; //id of hero in garrison
|
||||
@@ -759,8 +698,6 @@ struct DLL_LINKAGE SetHeroesInTown : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE HeroRecruited : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
HeroTypeID hid; //subID of hero
|
||||
ObjectInstanceID tid;
|
||||
ObjectInstanceID boatId;
|
||||
@@ -781,8 +718,6 @@ struct DLL_LINKAGE HeroRecruited : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE GiveHero : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
ObjectInstanceID id; //object id
|
||||
ObjectInstanceID boatId;
|
||||
PlayerColor player;
|
||||
@@ -804,7 +739,6 @@ struct DLL_LINKAGE OpenWindow : public Query
|
||||
ObjectInstanceID visitor;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState *gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
@@ -817,8 +751,6 @@ struct DLL_LINKAGE OpenWindow : public Query
|
||||
|
||||
struct DLL_LINKAGE NewObject : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
/// Object ID to create
|
||||
std::shared_ptr<CGObjectInstance> newObject;
|
||||
/// Which player initiated creation of this object
|
||||
@@ -835,8 +767,6 @@ struct DLL_LINKAGE NewObject : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE SetAvailableArtifacts : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
//two variants: id < 0: set artifact pool for Artifact Merchants in towns; id >= 0: set pool for adv. map Black Market (id is the id of Black Market instance then)
|
||||
ObjectInstanceID id;
|
||||
std::vector<ArtifactID> arts;
|
||||
@@ -861,8 +791,6 @@ struct DLL_LINKAGE ChangeStackCount : CGarrisonOperationPack
|
||||
TQuantity count;
|
||||
bool absoluteValue; //if not -> count will be added (or subtracted if negative)
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -880,8 +808,6 @@ struct DLL_LINKAGE SetStackType : CGarrisonOperationPack
|
||||
SlotID slot;
|
||||
CreatureID type;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -897,7 +823,6 @@ struct DLL_LINKAGE EraseStack : CGarrisonOperationPack
|
||||
ObjectInstanceID army;
|
||||
SlotID slot;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -914,7 +839,6 @@ struct DLL_LINKAGE SwapStacks : CGarrisonOperationPack
|
||||
SlotID srcSlot;
|
||||
SlotID dstSlot;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -933,7 +857,6 @@ struct DLL_LINKAGE InsertNewStack : CGarrisonOperationPack
|
||||
CreatureID type;
|
||||
TQuantity count = 0;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -955,7 +878,6 @@ struct DLL_LINKAGE RebalanceStacks : CGarrisonOperationPack
|
||||
|
||||
TQuantity count;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -972,7 +894,6 @@ struct DLL_LINKAGE BulkRebalanceStacks : CGarrisonOperationPack
|
||||
{
|
||||
std::vector<RebalanceStacks> moves;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler>
|
||||
@@ -998,7 +919,6 @@ struct DLL_LINKAGE PutArtifact : CArtifactOperationPack
|
||||
bool askAssemble;
|
||||
ArtifactInstanceID id;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -1016,7 +936,6 @@ struct DLL_LINKAGE NewArtifact : public CArtifactOperationPack
|
||||
SpellID spellId;
|
||||
ArtifactPosition pos;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -1034,7 +953,6 @@ struct DLL_LINKAGE BulkEraseArtifacts : CArtifactOperationPack
|
||||
std::vector<ArtifactPosition> posPack;
|
||||
std::optional<SlotID> creature;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -1070,8 +988,6 @@ struct DLL_LINKAGE BulkMoveArtifacts : CArtifactOperationPack
|
||||
{
|
||||
}
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
std::vector<MoveArtifactInfo> artsPack0;
|
||||
std::vector<MoveArtifactInfo> artsPack1;
|
||||
|
||||
@@ -1094,8 +1010,6 @@ struct DLL_LINKAGE AssembledArtifact : CArtifactOperationPack
|
||||
ArtifactLocation al;
|
||||
ArtifactID artId;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -1109,8 +1023,6 @@ struct DLL_LINKAGE DisassembledArtifact : CArtifactOperationPack
|
||||
{
|
||||
ArtifactLocation al;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -1127,8 +1039,6 @@ struct DLL_LINKAGE HeroVisit : public CPackForClient
|
||||
|
||||
bool starting; //false -> ending
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -1149,7 +1059,6 @@ struct DLL_LINKAGE InfoWindow : public CPackForClient //103 - displays simple i
|
||||
ui16 soundID = 0;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState * gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
@@ -1164,8 +1073,6 @@ struct DLL_LINKAGE InfoWindow : public CPackForClient //103 - displays simple i
|
||||
|
||||
struct DLL_LINKAGE NewTurn : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
ui32 day = 0;
|
||||
@@ -1197,7 +1104,6 @@ struct DLL_LINKAGE NewTurn : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE SetObjectProperty : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
ObjectInstanceID id;
|
||||
ObjProperty what{};
|
||||
|
||||
@@ -1228,8 +1134,6 @@ struct DLL_LINKAGE ChangeObjectVisitors : public CPackForClient
|
||||
ObjectInstanceID object;
|
||||
ObjectInstanceID hero; // note: hero owner will be also marked as "visited" this object
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
ChangeObjectVisitors() = default;
|
||||
@@ -1255,7 +1159,6 @@ struct DLL_LINKAGE ChangeArtifactsCostume : public CPackForClient
|
||||
uint32_t costumeIdx = 0;
|
||||
const PlayerColor player = PlayerColor::NEUTRAL;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
ChangeArtifactsCostume() = default;
|
||||
@@ -1281,8 +1184,6 @@ struct DLL_LINKAGE HeroLevelUp : public Query
|
||||
PrimarySkill primskill = PrimarySkill::ATTACK;
|
||||
std::vector<SecondarySkill> skills;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -1302,8 +1203,6 @@ struct DLL_LINKAGE CommanderLevelUp : public Query
|
||||
|
||||
std::vector<ui32> skills; //0-5 - secondary skills, val-100 - special skill
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -1349,7 +1248,6 @@ struct DLL_LINKAGE BlockingDialog : public Query
|
||||
BlockingDialog() = default;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState * gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
@@ -1369,7 +1267,6 @@ struct DLL_LINKAGE GarrisonDialog : public Query
|
||||
bool removableUnits = false;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState * gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
@@ -1388,7 +1285,6 @@ struct DLL_LINKAGE ExchangeDialog : public Query
|
||||
ObjectInstanceID hero2;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState * gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
@@ -1414,7 +1310,6 @@ struct DLL_LINKAGE TeleportDialog : public Query
|
||||
bool impassable = false;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState * gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
@@ -1435,7 +1330,6 @@ struct DLL_LINKAGE MapObjectSelectDialog : public Query
|
||||
std::vector<ObjectInstanceID> objects;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState * gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
@@ -1460,7 +1354,6 @@ struct DLL_LINKAGE AdvmapSpellCast : public CPackForClient
|
||||
|
||||
protected:
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState * gs) override {}
|
||||
};
|
||||
|
||||
struct DLL_LINKAGE ShowWorldViewEx : public CPackForClient
|
||||
@@ -1470,8 +1363,6 @@ struct DLL_LINKAGE ShowWorldViewEx : public CPackForClient
|
||||
|
||||
std::vector<ObjectPosInfo> objectPositions;
|
||||
|
||||
void applyGs(CGameState * gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
h & player;
|
||||
@@ -1492,7 +1383,6 @@ struct DLL_LINKAGE PlayerMessageClient : public CPackForClient
|
||||
{
|
||||
}
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState * gs) override {}
|
||||
|
||||
PlayerColor player;
|
||||
std::string text;
|
||||
@@ -1511,7 +1401,6 @@ struct DLL_LINKAGE CenterView : public CPackForClient
|
||||
ui32 focusTime = 0; //ms
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState * gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
|
@@ -29,8 +29,6 @@ class BattleInfo;
|
||||
|
||||
struct DLL_LINKAGE BattleStart : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
std::unique_ptr<BattleInfo> info;
|
||||
|
||||
@@ -46,8 +44,6 @@ struct DLL_LINKAGE BattleStart : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE BattleNextRound : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
@@ -61,8 +57,6 @@ struct DLL_LINKAGE BattleNextRound : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE BattleSetActiveStack : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
uint32_t stack = 0;
|
||||
BattleUnitTurnReason reason;
|
||||
@@ -80,8 +74,6 @@ struct DLL_LINKAGE BattleSetActiveStack : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE BattleCancelled: public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -93,8 +85,6 @@ struct DLL_LINKAGE BattleCancelled: public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE BattleResultAccepted : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
struct HeroBattleResults
|
||||
{
|
||||
ObjectInstanceID heroID;
|
||||
@@ -126,8 +116,6 @@ struct DLL_LINKAGE BattleResultAccepted : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE BattleResult : public Query
|
||||
{
|
||||
void applyFirstCl(CClient * cl);
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
EBattleResult result = EBattleResult::NORMAL;
|
||||
BattleSide winner = BattleSide::NONE; //0 - attacker, 1 - defender, [2 - draw (should be possible?)]
|
||||
@@ -135,7 +123,6 @@ struct DLL_LINKAGE BattleResult : public Query
|
||||
BattleSideArray<TExpType> exp{0,0}; //exp for attacker and defender
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState *gs) override {}
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
@@ -154,9 +141,6 @@ struct DLL_LINKAGE BattleLogMessage : public CPackForClient
|
||||
BattleID battleID = BattleID::NONE;
|
||||
std::vector<MetaString> lines;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void applyBattle(IBattleState * battleState);
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -175,9 +159,6 @@ struct DLL_LINKAGE BattleStackMoved : public CPackForClient
|
||||
int distance = 0;
|
||||
bool teleporting = false;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void applyBattle(IBattleState * battleState);
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -193,9 +174,6 @@ struct DLL_LINKAGE BattleStackMoved : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE BattleUnitsChanged : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
void applyBattle(IBattleState * battleState);
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
std::vector<UnitChanges> changedStacks;
|
||||
|
||||
@@ -211,10 +189,6 @@ struct DLL_LINKAGE BattleUnitsChanged : public CPackForClient
|
||||
|
||||
struct BattleStackAttacked
|
||||
{
|
||||
DLL_LINKAGE void applyGs(CGameState * gs);
|
||||
DLL_LINKAGE void applyBattle(IBattleState * battleState);
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
ui32 stackAttacked = 0, attackerID = 0;
|
||||
ui32 killedAmount = 0;
|
||||
int64_t damageAmount = 0;
|
||||
@@ -251,7 +225,6 @@ struct BattleStackAttacked
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
h & battleID;
|
||||
h & stackAttacked;
|
||||
h & attackerID;
|
||||
h & newState;
|
||||
@@ -259,7 +232,6 @@ struct BattleStackAttacked
|
||||
h & killedAmount;
|
||||
h & damageAmount;
|
||||
h & spellID;
|
||||
assert(battleID != BattleID::NONE);
|
||||
}
|
||||
bool operator<(const BattleStackAttacked & b) const
|
||||
{
|
||||
@@ -269,7 +241,6 @@ struct BattleStackAttacked
|
||||
|
||||
struct DLL_LINKAGE BattleAttack : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
BattleUnitsChanged attackerChanges;
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
@@ -336,8 +307,6 @@ struct DLL_LINKAGE StartAction : public CPackForClient
|
||||
: ba(std::move(act))
|
||||
{
|
||||
}
|
||||
void applyFirstCl(CClient * cl);
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
BattleAction ba;
|
||||
@@ -355,7 +324,6 @@ struct DLL_LINKAGE StartAction : public CPackForClient
|
||||
struct DLL_LINKAGE EndAction : public CPackForClient
|
||||
{
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState *gs) override {}
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
|
||||
@@ -367,8 +335,6 @@ struct DLL_LINKAGE EndAction : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE BattleSpellCast : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
bool activeCast = true;
|
||||
BattleSide side = BattleSide::NONE; //which hero did cast spell
|
||||
@@ -402,9 +368,6 @@ struct DLL_LINKAGE BattleSpellCast : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE StacksInjured : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
void applyBattle(IBattleState * battleState);
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
std::vector<BattleStackAttacked> stacks;
|
||||
|
||||
@@ -427,7 +390,6 @@ struct DLL_LINKAGE BattleResultsApplied : public CPackForClient
|
||||
std::vector<BulkMoveArtifacts> artifacts;
|
||||
CStackBasicDescriptor raisedStack;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
void applyGs(CGameState *gs) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
{
|
||||
@@ -443,9 +405,6 @@ struct DLL_LINKAGE BattleResultsApplied : public CPackForClient
|
||||
|
||||
struct DLL_LINKAGE BattleObstaclesChanged : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
void applyBattle(IBattleState * battleState);
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
std::vector<ObstacleChanges> changes;
|
||||
|
||||
@@ -475,12 +434,6 @@ struct DLL_LINKAGE CatapultAttack : public CPackForClient
|
||||
}
|
||||
};
|
||||
|
||||
CatapultAttack();
|
||||
~CatapultAttack() override;
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
void applyBattle(IBattleState * battleState);
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
std::vector< AttackInfo > attackedParts;
|
||||
int attacker = -1; //if -1, then a spell caused this
|
||||
@@ -500,8 +453,6 @@ struct DLL_LINKAGE BattleSetStackProperty : public CPackForClient
|
||||
{
|
||||
enum BattleStackProperty { CASTS, ENCHANTER_COUNTER, UNBIND, CLONED, HAS_CLONE };
|
||||
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
int stackID = 0;
|
||||
BattleStackProperty which = CASTS;
|
||||
@@ -525,8 +476,6 @@ protected:
|
||||
///activated at the beginning of turn
|
||||
struct DLL_LINKAGE BattleTriggerEffect : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override; //effect
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
int stackID = 0;
|
||||
int effect = 0; //use corresponding Bonus type
|
||||
@@ -549,8 +498,6 @@ protected:
|
||||
|
||||
struct DLL_LINKAGE BattleUpdateGateState : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
EGateState state = EGateState::NONE;
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
|
@@ -732,8 +732,6 @@ struct DLL_LINKAGE SaveGame : public CPackForServer
|
||||
}
|
||||
std::string fname;
|
||||
|
||||
void applyGs(CGameState * gs) {};
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
template <typename Handler> void serialize(Handler & h)
|
||||
@@ -752,8 +750,6 @@ struct DLL_LINKAGE PlayerMessage : public CPackForServer
|
||||
{
|
||||
}
|
||||
|
||||
void applyGs(CGameState * gs) {};
|
||||
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
std::string text;
|
||||
|
@@ -17,7 +17,6 @@ VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
struct DLL_LINKAGE SetRewardableConfiguration : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
void visitTyped(ICPackVisitor & visitor) override;
|
||||
|
||||
ObjectInstanceID objectID;
|
||||
|
@@ -19,9 +19,6 @@ class IBattleState;
|
||||
|
||||
struct DLL_LINKAGE SetStackEffect : public CPackForClient
|
||||
{
|
||||
void applyGs(CGameState * gs) override;
|
||||
void applyBattle(IBattleState * battleState);
|
||||
|
||||
BattleID battleID = BattleID::NONE;
|
||||
std::vector<std::pair<ui32, std::vector<Bonus>>> toAdd;
|
||||
std::vector<std::pair<ui32, std::vector<Bonus>>> toUpdate;
|
||||
|
@@ -59,10 +59,10 @@ void registerTypes(Serializer &s)
|
||||
static_assert(std::is_abstract_v<CGTeleport>, "If this type is no longer abstract consider registering it for serialization with ID 3");
|
||||
static_assert(std::is_abstract_v<IQuestObject>, "If this type is no longer abstract consider registering it for serialization with ID 11");
|
||||
static_assert(std::is_abstract_v<CArtifactSet>, "If this type is no longer abstract consider registering it for serialization with ID 29");
|
||||
static_assert(std::is_abstract_v<CPackForClient>, "If this type is no longer abstract consider registering it for serialization with ID 83");
|
||||
static_assert(std::is_abstract_v<Query>, "If this type is no longer abstract consider registering it for serialization with ID 153");
|
||||
static_assert(std::is_abstract_v<CGarrisonOperationPack>, "If this type is no longer abstract consider registering it for serialization with ID 161");
|
||||
static_assert(std::is_abstract_v<CArtifactOperationPack>, "If this type is no longer abstract consider registering it for serialization with ID 168");
|
||||
// static_assert(std::is_abstract_v<CPackForClient>, "If this type is no longer abstract consider registering it for serialization with ID 83");
|
||||
// static_assert(std::is_abstract_v<Query>, "If this type is no longer abstract consider registering it for serialization with ID 153");
|
||||
// static_assert(std::is_abstract_v<CGarrisonOperationPack>, "If this type is no longer abstract consider registering it for serialization with ID 161");
|
||||
// static_assert(std::is_abstract_v<CArtifactOperationPack>, "If this type is no longer abstract consider registering it for serialization with ID 168");
|
||||
|
||||
s.template registerType<CGObjectInstance>(2);
|
||||
s.template registerType<CGMonolith>(4);
|
||||
|
@@ -53,7 +53,6 @@ void Damage::apply(ServerCallback * server, const Mechanics * m, const EffectTar
|
||||
if(unit && unit->alive())
|
||||
{
|
||||
BattleStackAttacked bsa;
|
||||
bsa.battleID = m->battle()->getBattle()->getBattleID();
|
||||
bsa.damageAmount = damageForTarget(targetIndex, m, unit);
|
||||
bsa.stackAttacked = unit->unitId();
|
||||
bsa.attackerID = -1;
|
||||
|
@@ -124,7 +124,7 @@ void ApplyGhNetPackVisitor::visitBulkMergeStacks(BulkMergeStacks & pack)
|
||||
result = gh.bulkMergeStacks(pack.src, pack.srcOwner);
|
||||
}
|
||||
|
||||
void ApplyGhNetPackVisitor::visitBulkSmartSplitStack(BulkSplitAndRebalanceStack & pack)
|
||||
void ApplyGhNetPackVisitor::visitBulkSplitAndRebalanceStack(BulkSplitAndRebalanceStack & pack)
|
||||
{
|
||||
gh.throwIfWrongPlayer(connection, &pack);
|
||||
gh.throwIfPlayerNotActive(connection, &pack);
|
||||
|
@@ -41,7 +41,7 @@ public:
|
||||
void visitBulkMoveArmy(BulkMoveArmy & pack) override;
|
||||
void visitBulkSplitStack(BulkSplitStack & pack) override;
|
||||
void visitBulkMergeStacks(BulkMergeStacks & pack) override;
|
||||
void visitBulkSmartSplitStack(BulkSplitAndRebalanceStack & pack) override;
|
||||
void visitBulkSplitAndRebalanceStack(BulkSplitAndRebalanceStack & pack) override;
|
||||
void visitDisbandCreature(DisbandCreature & pack) override;
|
||||
void visitBuildStructure(BuildStructure & pack) override;
|
||||
void visitSpellResearch(SpellResearch & pack) override;
|
||||
|
@@ -1037,9 +1037,6 @@ void BattleActionProcessor::makeAttack(const CBattleInfoCallback & battle, const
|
||||
if (healInfo.healedHealthPoints > 0)
|
||||
bat.flags |= BattleAttack::LIFE_DRAIN;
|
||||
|
||||
for (BattleStackAttacked & bsa : bat.bsa)
|
||||
bsa.battleID = battle.getBattle()->getBattleID();
|
||||
|
||||
gameHandler->sendAndApply(bat);
|
||||
|
||||
{
|
||||
@@ -1097,7 +1094,6 @@ void BattleActionProcessor::makeAttack(const CBattleInfoCallback & battle, const
|
||||
{
|
||||
BattleStackAttacked bsa;
|
||||
|
||||
bsa.battleID = battle.getBattle()->getBattleID();
|
||||
bsa.flags |= BattleStackAttacked::FIRE_SHIELD;
|
||||
bsa.stackAttacked = attacker->unitId(); //invert
|
||||
bsa.attackerID = defender->unitId();
|
||||
|
@@ -20,6 +20,7 @@
|
||||
#endif
|
||||
|
||||
#include "../../lib/battle/CBattleInfoCallback.h"
|
||||
#include "../../lib/gameState/GameStatePackVisitor.h"
|
||||
|
||||
namespace test
|
||||
{
|
||||
@@ -83,7 +84,8 @@ public:
|
||||
template <typename T>
|
||||
void accept(T & pack)
|
||||
{
|
||||
pack.applyBattle(this);
|
||||
BattleStatePackVisitor visitor(*this);
|
||||
pack.visit(visitor);
|
||||
}
|
||||
|
||||
const IBattleInfo * getBattle() const override
|
||||
|
Reference in New Issue
Block a user