| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836 | /* * NetPacksLib.cpp, 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 * */#include "StdInc.h"#include "PacksForClient.h"#include "PacksForClientBattle.h"#include "PacksForServer.h"#include "SaveLocalState.h"#include "SetRewardableConfiguration.h"#include "PacksForLobby.h"#include "SetStackEffect.h"#include "NetPackVisitor.h"VCMI_LIB_NAMESPACE_BEGINvoid CPack::visit(ICPackVisitor & visitor){	visitBasic(visitor);	// visitBasic may destroy this and in such cases we do not want to call visitTyped	if(visitor.callTyped())	{		visitTyped(visitor);	}}void CPack::visitBasic(ICPackVisitor & visitor){}void CPack::visitTyped(ICPackVisitor & visitor){	throw std::runtime_error(std::string("CPack::visitTyped called for class ") + typeid(*this).name());}void CPackForClient::visitBasic(ICPackVisitor & visitor){	visitor.visitForClient(*this);}void CPackForServer::visitBasic(ICPackVisitor & visitor){	visitor.visitForServer(*this);}void CPackForLobby::visitBasic(ICPackVisitor & visitor){	visitor.visitForLobby(*this);}bool CPackForLobby::isForServer() const{	return false;}bool CLobbyPackToServer::isForServer() const{	return true;}void SaveLocalState::visitTyped(ICPackVisitor & visitor){	visitor.visitSaveLocalState(*this);}void PackageApplied::visitTyped(ICPackVisitor & visitor){	visitor.visitPackageApplied(*this);}void SystemMessage::visitTyped(ICPackVisitor & visitor){	visitor.visitSystemMessage(*this);}void PlayerBlocked::visitTyped(ICPackVisitor & visitor){	visitor.visitPlayerBlocked(*this);}void PlayerCheated::visitTyped(ICPackVisitor & visitor){	visitor.visitPlayerCheated(*this);}void PlayerStartsTurn::visitTyped(ICPackVisitor & visitor){	visitor.visitPlayerStartsTurn(*this);}void DaysWithoutTown::visitTyped(ICPackVisitor & visitor){	visitor.visitDaysWithoutTown(*this);}void EntitiesChanged::visitTyped(ICPackVisitor & visitor){	visitor.visitEntitiesChanged(*this);}void SetRewardableConfiguration::visitTyped(ICPackVisitor & visitor){	visitor.visitSetRewardableConfiguration(*this);}void SetResources::visitTyped(ICPackVisitor & visitor){	visitor.visitSetResources(*this);}void SetPrimSkill::visitTyped(ICPackVisitor & visitor){	visitor.visitSetPrimSkill(*this);}void SetSecSkill::visitTyped(ICPackVisitor & visitor){	visitor.visitSetSecSkill(*this);}void HeroVisitCastle::visitTyped(ICPackVisitor & visitor){	visitor.visitHeroVisitCastle(*this);}void ChangeSpells::visitTyped(ICPackVisitor & visitor){	visitor.visitChangeSpells(*this);}void SetResearchedSpells::visitTyped(ICPackVisitor & visitor){	visitor.visitSetResearchedSpells(*this);}void SetMana::visitTyped(ICPackVisitor & visitor){	visitor.visitSetMana(*this);}void SetMovePoints::visitTyped(ICPackVisitor & visitor){	visitor.visitSetMovePoints(*this);}void FoWChange::visitTyped(ICPackVisitor & visitor){	visitor.visitFoWChange(*this);}void SetAvailableHero::visitTyped(ICPackVisitor & visitor){	visitor.visitSetAvailableHero(*this);}void GiveBonus::visitTyped(ICPackVisitor & visitor){	visitor.visitGiveBonus(*this);}void ChangeObjPos::visitTyped(ICPackVisitor & visitor){	visitor.visitChangeObjPos(*this);}void PlayerEndsTurn::visitTyped(ICPackVisitor & visitor){	visitor.visitPlayerEndsTurn(*this);}void PlayerEndsGame::visitTyped(ICPackVisitor & visitor){	visitor.visitPlayerEndsGame(*this);}void PlayerReinitInterface::visitTyped(ICPackVisitor & visitor){	visitor.visitPlayerReinitInterface(*this);}void RemoveBonus::visitTyped(ICPackVisitor & visitor){	visitor.visitRemoveBonus(*this);}void SetCommanderProperty::visitTyped(ICPackVisitor & visitor){	visitor.visitSetCommanderProperty(*this);}void AddQuest::visitTyped(ICPackVisitor & visitor){	visitor.visitAddQuest(*this);}void ChangeFormation::visitTyped(ICPackVisitor & visitor){	visitor.visitChangeFormation(*this);}void RemoveObject::visitTyped(ICPackVisitor & visitor){	visitor.visitRemoveObject(*this);}void TryMoveHero::visitTyped(ICPackVisitor & visitor){	visitor.visitTryMoveHero(*this);}void NewStructures::visitTyped(ICPackVisitor & visitor){	visitor.visitNewStructures(*this);}void RazeStructures::visitTyped(ICPackVisitor & visitor){	visitor.visitRazeStructures(*this);}void SetAvailableCreatures::visitTyped(ICPackVisitor & visitor){	visitor.visitSetAvailableCreatures(*this);}void SetHeroesInTown::visitTyped(ICPackVisitor & visitor){	visitor.visitSetHeroesInTown(*this);}void HeroRecruited::visitTyped(ICPackVisitor & visitor){	visitor.visitHeroRecruited(*this);}void GiveHero::visitTyped(ICPackVisitor & visitor){	visitor.visitGiveHero(*this);}void OpenWindow::visitTyped(ICPackVisitor & visitor){	visitor.visitOpenWindow(*this);}void NewObject::visitTyped(ICPackVisitor & visitor){	visitor.visitNewObject(*this);}void SetAvailableArtifacts::visitTyped(ICPackVisitor & visitor){	visitor.visitSetAvailableArtifacts(*this);}void NewArtifact::visitTyped(ICPackVisitor & visitor){	visitor.visitNewArtifact(*this);}void ChangeStackCount::visitTyped(ICPackVisitor & visitor){	visitor.visitChangeStackCount(*this);}void SetStackType::visitTyped(ICPackVisitor & visitor){	visitor.visitSetStackType(*this);}void EraseStack::visitTyped(ICPackVisitor & visitor){	visitor.visitEraseStack(*this);}void SwapStacks::visitTyped(ICPackVisitor & visitor){	visitor.visitSwapStacks(*this);}void InsertNewStack::visitTyped(ICPackVisitor & visitor){	visitor.visitInsertNewStack(*this);}void RebalanceStacks::visitTyped(ICPackVisitor & visitor){	visitor.visitRebalanceStacks(*this);}void BulkRebalanceStacks::visitTyped(ICPackVisitor & visitor){	visitor.visitBulkRebalanceStacks(*this);}void GrowUpArtifact::visitTyped(ICPackVisitor & visitor){	visitor.visitGrowUpArtifact(*this);}void PutArtifact::visitTyped(ICPackVisitor & visitor){	visitor.visitPutArtifact(*this);}void BulkEraseArtifacts::visitTyped(ICPackVisitor & visitor){	visitor.visitBulkEraseArtifacts(*this);}void BulkMoveArtifacts::visitTyped(ICPackVisitor & visitor){	visitor.visitBulkMoveArtifacts(*this);}void AssembledArtifact::visitTyped(ICPackVisitor & visitor){	visitor.visitAssembledArtifact(*this);}void DischargeArtifact::visitTyped(ICPackVisitor & visitor){	visitor.visitDischargeArtifact(*this);}void DisassembledArtifact::visitTyped(ICPackVisitor & visitor){	visitor.visitDisassembledArtifact(*this);}void HeroVisit::visitTyped(ICPackVisitor & visitor){	visitor.visitHeroVisit(*this);}void NewTurn::visitTyped(ICPackVisitor & visitor){	visitor.visitNewTurn(*this);}void InfoWindow::visitTyped(ICPackVisitor & visitor){	visitor.visitInfoWindow(*this);}void SetObjectProperty::visitTyped(ICPackVisitor & visitor){	visitor.visitSetObjectProperty(*this);}void ChangeObjectVisitors::visitTyped(ICPackVisitor & visitor){	visitor.visitChangeObjectVisitors(*this);}void ChangeArtifactsCostume::visitTyped(ICPackVisitor & visitor){	visitor.visitChangeArtifactsCostume(*this);}void HeroLevelUp::visitTyped(ICPackVisitor & visitor){	visitor.visitHeroLevelUp(*this);}void CommanderLevelUp::visitTyped(ICPackVisitor & visitor){	visitor.visitCommanderLevelUp(*this);}void BlockingDialog::visitTyped(ICPackVisitor & visitor){	visitor.visitBlockingDialog(*this);}void GarrisonDialog::visitTyped(ICPackVisitor & visitor){	visitor.visitGarrisonDialog(*this);}void ExchangeDialog::visitTyped(ICPackVisitor & visitor){	visitor.visitExchangeDialog(*this);}void TeleportDialog::visitTyped(ICPackVisitor & visitor){	visitor.visitTeleportDialog(*this);}void MapObjectSelectDialog::visitTyped(ICPackVisitor & visitor){	visitor.visitMapObjectSelectDialog(*this);}void BattleStart::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleStart(*this);}void BattleNextRound::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleNextRound(*this);}void BattleSetActiveStack::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleSetActiveStack(*this);}void BattleResult::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleResult(*this);}void BattleLogMessage::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleLogMessage(*this);}void BattleStackMoved::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleStackMoved(*this);}void BattleUnitsChanged::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleUnitsChanged(*this);}void BattleAttack::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleAttack(*this);}void StartAction::visitTyped(ICPackVisitor & visitor){	visitor.visitStartAction(*this);}void EndAction::visitTyped(ICPackVisitor & visitor){	visitor.visitEndAction(*this);}void BattleSpellCast::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleSpellCast(*this);}void SetStackEffect::visitTyped(ICPackVisitor & visitor){	visitor.visitSetStackEffect(*this);}void StacksInjured::visitTyped(ICPackVisitor & visitor){	visitor.visitStacksInjured(*this);}void BattleResultsApplied::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleResultsApplied(*this);}void BattleObstaclesChanged::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleObstaclesChanged(*this);}void BattleSetStackProperty::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleSetStackProperty(*this);}void BattleTriggerEffect::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleTriggerEffect(*this);}void BattleUpdateGateState::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleUpdateGateState(*this);}void AdvmapSpellCast::visitTyped(ICPackVisitor & visitor){	visitor.visitAdvmapSpellCast(*this);}void ShowWorldViewEx::visitTyped(ICPackVisitor & visitor){	visitor.visitShowWorldViewEx(*this);}void EndTurn::visitTyped(ICPackVisitor & visitor){	visitor.visitEndTurn(*this);}void GamePause::visitTyped(ICPackVisitor & visitor){	visitor.visitGamePause(*this);}void DismissHero::visitTyped(ICPackVisitor & visitor){	visitor.visitDismissHero(*this);}void MoveHero::visitTyped(ICPackVisitor & visitor){	visitor.visitMoveHero(*this);}void CastleTeleportHero::visitTyped(ICPackVisitor & visitor){	visitor.visitCastleTeleportHero(*this);}void ArrangeStacks::visitTyped(ICPackVisitor & visitor){	visitor.visitArrangeStacks(*this);}void BulkMoveArmy::visitTyped(ICPackVisitor & visitor){	visitor.visitBulkMoveArmy(*this);}void BulkSplitStack::visitTyped(ICPackVisitor & visitor){	visitor.visitBulkSplitStack(*this);}void BulkMergeStacks::visitTyped(ICPackVisitor & visitor){	visitor.visitBulkMergeStacks(*this);}void BulkSplitAndRebalanceStack::visitTyped(ICPackVisitor & visitor){	visitor.visitBulkSplitAndRebalanceStack(*this);}void DisbandCreature::visitTyped(ICPackVisitor & visitor){	visitor.visitDisbandCreature(*this);}void BuildStructure::visitTyped(ICPackVisitor & visitor){	visitor.visitBuildStructure(*this);}void VisitTownBuilding::visitTyped(ICPackVisitor & visitor){	visitor.visitVisitTownBuilding(*this);}void RazeStructure::visitTyped(ICPackVisitor & visitor){	visitor.visitRazeStructure(*this);}void SpellResearch::visitTyped(ICPackVisitor & visitor){	visitor.visitSpellResearch(*this);}void RecruitCreatures::visitTyped(ICPackVisitor & visitor){	visitor.visitRecruitCreatures(*this);}void UpgradeCreature::visitTyped(ICPackVisitor & visitor){	visitor.visitUpgradeCreature(*this);}void GarrisonHeroSwap::visitTyped(ICPackVisitor & visitor){	visitor.visitGarrisonHeroSwap(*this);}void ExchangeArtifacts::visitTyped(ICPackVisitor & visitor){	visitor.visitExchangeArtifacts(*this);}void BulkExchangeArtifacts::visitTyped(ICPackVisitor & visitor){	visitor.visitBulkExchangeArtifacts(*this);}void ManageBackpackArtifacts::visitTyped(ICPackVisitor & visitor){	visitor.visitManageBackpackArtifacts(*this);}void ManageEquippedArtifacts::visitTyped(ICPackVisitor & visitor){	visitor.visitManageEquippedArtifacts(*this);}void AssembleArtifacts::visitTyped(ICPackVisitor & visitor){	visitor.visitAssembleArtifacts(*this);}void EraseArtifactByClient::visitTyped(ICPackVisitor & visitor){	visitor.visitEraseArtifactByClient(*this);}void BuyArtifact::visitTyped(ICPackVisitor & visitor){	visitor.visitBuyArtifact(*this);}void TradeOnMarketplace::visitTyped(ICPackVisitor & visitor){	visitor.visitTradeOnMarketplace(*this);}void SetFormation::visitTyped(ICPackVisitor & visitor){	visitor.visitSetFormation(*this);}void HireHero::visitTyped(ICPackVisitor & visitor){	visitor.visitHireHero(*this);}void BuildBoat::visitTyped(ICPackVisitor & visitor){	visitor.visitBuildBoat(*this);}void QueryReply::visitTyped(ICPackVisitor & visitor){	visitor.visitQueryReply(*this);}void MakeAction::visitTyped(ICPackVisitor & visitor){	visitor.visitMakeAction(*this);}void DigWithHero::visitTyped(ICPackVisitor & visitor){	visitor.visitDigWithHero(*this);}void CastAdvSpell::visitTyped(ICPackVisitor & visitor){	visitor.visitCastAdvSpell(*this);}void SaveGame::visitTyped(ICPackVisitor & visitor){	visitor.visitSaveGame(*this);}void PlayerMessage::visitTyped(ICPackVisitor & visitor){	visitor.visitPlayerMessage(*this);}void PlayerMessageClient::visitTyped(ICPackVisitor & visitor){	visitor.visitPlayerMessageClient(*this);}void CenterView::visitTyped(ICPackVisitor & visitor){	visitor.visitCenterView(*this);}void LobbyClientConnected::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyClientConnected(*this);}void LobbyClientDisconnected::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyClientDisconnected(*this);}void LobbyChatMessage::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyChatMessage(*this);}void LobbyGuiAction::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyGuiAction(*this);}void LobbyLoadProgress::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyLoadProgress(*this);}void LobbyRestartGame::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyRestartGame(*this);}void LobbyStartGame::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyStartGame(*this);}void LobbyPrepareStartGame::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyPrepareStartGame(*this);}void LobbyChangeHost::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyChangeHost(*this);}void LobbyUpdateState::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyUpdateState(*this);}void LobbySetMap::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetMap(*this);}void LobbySetCampaign::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetCampaign(*this);}void LobbySetCampaignMap::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetCampaignMap(*this);}void LobbySetCampaignBonus::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetCampaignBonus(*this);}void LobbyChangePlayerOption::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyChangePlayerOption(*this);}void LobbySetPlayer::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetPlayer(*this);}void LobbySetPlayerName::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetPlayerName(*this);}void LobbySetPlayerHandicap::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetPlayerHandicap(*this);}void LobbySetSimturns::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetSimturns(*this);}void LobbySetTurnTime::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetTurnTime(*this);}void LobbySetExtraOptions::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetExtraOptions(*this);}void LobbySetDifficulty::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbySetDifficulty(*this);}void LobbyForceSetPlayer::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyForceSetPlayer(*this);}void LobbyShowMessage::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyShowMessage(*this);}void LobbyPvPAction::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyPvPAction(*this);}void LobbyDelete::visitTyped(ICPackVisitor & visitor){	visitor.visitLobbyDelete(*this);}void CatapultAttack::visitTyped(ICPackVisitor & visitor){	visitor.visitCatapultAttack(*this);}void BattleResultAccepted::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleResultAccepted(*this);}void BattleCancelled::visitTyped(ICPackVisitor & visitor){	visitor.visitBattleCancelled(*this);}void TurnTimeUpdate::visitTyped(ICPackVisitor & visitor){	visitor.visitTurnTimeUpdate(*this);}VCMI_LIB_NAMESPACE_END
 |