GameStatePackVisitor.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /*
  2. * GameStatePackVisitor.h, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #pragma once
  11. #include "../networkPacks/NetPackVisitor.h"
  12. VCMI_LIB_NAMESPACE_BEGIN
  13. class CGameState;
  14. class GameStatePackVisitor final : public ICPackVisitor
  15. {
  16. void restorePreBattleState(BattleID battleID);
  17. private:
  18. CGameState & gs;
  19. public:
  20. GameStatePackVisitor(CGameState & gs)
  21. : gs(gs)
  22. {
  23. }
  24. void visitSetResources(SetResources & pack) override;
  25. void visitSetPrimarySkill(SetPrimarySkill & pack) override;
  26. void visitSetHeroExperience(SetHeroExperience & pack) override;
  27. void visitGiveStackExperience(GiveStackExperience & pack) override;
  28. void visitSetSecSkill(SetSecSkill & pack) override;
  29. void visitHeroVisitCastle(HeroVisitCastle & pack) override;
  30. void visitSetMana(SetMana & pack) override;
  31. void visitSetMovePoints(SetMovePoints & pack) override;
  32. void visitSetResearchedSpells(SetResearchedSpells & pack) override;
  33. void visitFoWChange(FoWChange & pack) override;
  34. void visitChangeStackCount(ChangeStackCount & pack) override;
  35. void visitSetStackType(SetStackType & pack) override;
  36. void visitEraseStack(EraseStack & pack) override;
  37. void visitSwapStacks(SwapStacks & pack) override;
  38. void visitInsertNewStack(InsertNewStack & pack) override;
  39. void visitRebalanceStacks(RebalanceStacks & pack) override;
  40. void visitBulkRebalanceStacks(BulkRebalanceStacks & pack) override;
  41. void visitGrowUpArtifact(GrowUpArtifact & pack) override;
  42. void visitPutArtifact(PutArtifact & pack) override;
  43. void visitBulkEraseArtifacts(BulkEraseArtifacts & pack) override;
  44. void visitBulkMoveArtifacts(BulkMoveArtifacts & pack) override;
  45. void visitAssembledArtifact(AssembledArtifact & pack) override;
  46. void visitDisassembledArtifact(DisassembledArtifact & pack) override;
  47. void visitDischargeArtifact(DischargeArtifact & pack) override;
  48. void visitHeroVisit(HeroVisit & pack) override;
  49. void visitNewTurn(NewTurn & pack) override;
  50. void visitGiveBonus(GiveBonus & pack) override;
  51. void visitChangeObjPos(ChangeObjPos & pack) override;
  52. void visitPlayerEndsTurn(PlayerEndsTurn & pack) override;
  53. void visitPlayerEndsGame(PlayerEndsGame & pack) override;
  54. void visitRemoveBonus(RemoveBonus & pack) override;
  55. void visitRemoveObject(RemoveObject & pack) override;
  56. void visitTryMoveHero(TryMoveHero & pack) override;
  57. void visitNewStructures(NewStructures & pack) override;
  58. void visitRazeStructures(RazeStructures & pack) override;
  59. void visitSetAvailableCreatures(SetAvailableCreatures & pack) override;
  60. void visitSetHeroesInTown(SetHeroesInTown & pack) override;
  61. void visitHeroRecruited(HeroRecruited & pack) override;
  62. void visitGiveHero(GiveHero & pack) override;
  63. void visitSetObjectProperty(SetObjectProperty & pack) override;
  64. void visitHeroLevelUp(HeroLevelUp & pack) override;
  65. void visitCommanderLevelUp(CommanderLevelUp & pack) override;
  66. void visitBattleStart(BattleStart & pack) override;
  67. void visitBattleSetActiveStack(BattleSetActiveStack & pack) override;
  68. void visitBattleTriggerEffect(BattleTriggerEffect & pack) override;
  69. void visitBattleAttack(BattleAttack & pack) override;
  70. void visitBattleSpellCast(BattleSpellCast & pack) override;
  71. void visitSetStackEffect(SetStackEffect & pack) override;
  72. void visitStacksInjured(StacksInjured & pack) override;
  73. void visitBattleUnitsChanged(BattleUnitsChanged & pack) override;
  74. void visitBattleObstaclesChanged(BattleObstaclesChanged & pack) override;
  75. void visitBattleStackMoved(BattleStackMoved & pack) override;
  76. void visitCatapultAttack(CatapultAttack & pack) override;
  77. void visitPlayerStartsTurn(PlayerStartsTurn & pack) override;
  78. void visitNewObject(NewObject & pack) override;
  79. void visitSetAvailableArtifacts(SetAvailableArtifacts & pack) override;
  80. void visitEntitiesChanged(EntitiesChanged & pack) override;
  81. void visitSetCommanderProperty(SetCommanderProperty & pack) override;
  82. void visitAddQuest(AddQuest & pack) override;
  83. void visitChangeFormation(ChangeFormation & pack) override;
  84. void visitChangeSpells(ChangeSpells & pack) override;
  85. void visitSetAvailableHero(SetAvailableHero & pack) override;
  86. void visitChangeObjectVisitors(ChangeObjectVisitors & pack) override;
  87. void visitChangeArtifactsCostume(ChangeArtifactsCostume & pack) override;
  88. void visitNewArtifact(NewArtifact & pack) override;
  89. void visitBattleUpdateGateState(BattleUpdateGateState & pack) override;
  90. void visitPlayerCheated(PlayerCheated & pack) override;
  91. void visitDaysWithoutTown(DaysWithoutTown & pack) override;
  92. void visitStartAction(StartAction & pack) override;
  93. void visitSetRewardableConfiguration(SetRewardableConfiguration & pack) override;
  94. void visitBattleSetStackProperty(BattleSetStackProperty & pack) override;
  95. void visitBattleNextRound(BattleNextRound & pack) override;
  96. void visitBattleCancelled(BattleCancelled & pack) override;
  97. void visitBattleResultsApplied(BattleResultsApplied & pack) override;
  98. void visitBattleResultAccepted(BattleResultAccepted & pack) override;
  99. void visitTurnTimeUpdate(TurnTimeUpdate & pack) override;
  100. };
  101. class DLL_LINKAGE BattleStatePackVisitor final : public ICPackVisitor
  102. {
  103. IBattleState & battleState;
  104. public:
  105. BattleStatePackVisitor(IBattleState & battleState)
  106. :battleState(battleState)
  107. {}
  108. void visitSetStackEffect(SetStackEffect & pack) override;
  109. void visitStacksInjured(StacksInjured & pack) override;
  110. void visitBattleUnitsChanged(BattleUnitsChanged & pack) override;
  111. void visitBattleObstaclesChanged(BattleObstaclesChanged & pack) override;
  112. void visitCatapultAttack(CatapultAttack & pack) override;
  113. void visitBattleStackMoved(BattleStackMoved & pack) override;
  114. };
  115. VCMI_LIB_NAMESPACE_END