mock_IGameCallback.h 5.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*
  2. * {file}.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 "../../lib/IGameCallback.h"
  12. //TODO: move/rename PacketSender to better place
  13. #include "../../lib/int3.h"
  14. #include "../../lib/spells/Magic.h"
  15. class GameCallbackMock : public IGameCallback
  16. {
  17. public:
  18. using UpperCallback = ::spells::PacketSender;
  19. GameCallbackMock(const UpperCallback * upperCallback_);
  20. virtual ~GameCallbackMock();
  21. void setGameState(CGameState * gameState);
  22. ///STUBS, to be removed as long as same methods moved from GameHandler
  23. //all calls to such methods should be replaced with other object calls or actual netpacks
  24. //currently they are declared in callbacks, overridden in GameHandler and stubbed in client
  25. //TODO: fail all stub calls
  26. void changeSpells(const CGHeroInstance * hero, bool give, const std::set<SpellID> &spells) override {};
  27. bool removeObject(const CGObjectInstance * obj) override {return false;};
  28. void setBlockVis(ObjectInstanceID objid, bool bv) override {};
  29. void setOwner(const CGObjectInstance * objid, PlayerColor owner) override {};
  30. void changePrimSkill(const CGHeroInstance * hero, PrimarySkill::PrimarySkill which, si64 val, bool abs=false) override {};
  31. void changeSecSkill(const CGHeroInstance * hero, SecondarySkill which, int val, bool abs=false) override {};
  32. void showBlockingDialog(BlockingDialog *iw) override {};
  33. void showGarrisonDialog(ObjectInstanceID upobj, ObjectInstanceID hid, bool removableUnits) override {}; //cb will be called when player closes garrison window
  34. void showTeleportDialog(TeleportDialog *iw) override {};
  35. void showThievesGuildWindow(PlayerColor player, ObjectInstanceID requestingObjId) override {};
  36. void giveResource(PlayerColor player, Res::ERes which, int val) override {};
  37. void giveResources(PlayerColor player, TResources resources) override {};
  38. void giveCreatures(const CArmedInstance *objid, const CGHeroInstance * h, const CCreatureSet &creatures, bool remove) override {};
  39. void takeCreatures(ObjectInstanceID objid, const std::vector<CStackBasicDescriptor> &creatures) override {};
  40. bool changeStackCount(const StackLocation &sl, TQuantity count, bool absoluteValue = false) override {return false;};
  41. bool changeStackType(const StackLocation &sl, const CCreature *c) override {return false;};
  42. bool insertNewStack(const StackLocation &sl, const CCreature *c, TQuantity count = -1) override {return false;}; //count -1 => moves whole stack
  43. bool eraseStack(const StackLocation &sl, bool forceRemoval = false) override {return false;};
  44. bool swapStacks(const StackLocation &sl1, const StackLocation &sl2) override {return false;};
  45. bool addToSlot(const StackLocation &sl, const CCreature *c, TQuantity count) override {return false;}; //makes new stack or increases count of already existing
  46. void tryJoiningArmy(const CArmedInstance *src, const CArmedInstance *dst, bool removeObjWhenFinished, bool allowMerging) override {}; //merges army from src do dst or opens a garrison window
  47. bool moveStack(const StackLocation &src, const StackLocation &dst, TQuantity count) override {return false;};
  48. void removeAfterVisit(const CGObjectInstance *object) override {}; //object will be destroyed when interaction is over. Do not call when interaction is not ongoing!
  49. void giveHeroNewArtifact(const CGHeroInstance *h, const CArtifact *artType, ArtifactPosition pos) override {};
  50. void giveHeroArtifact(const CGHeroInstance *h, const CArtifactInstance *a, ArtifactPosition pos) override {}; //pos==-1 - first free slot in backpack=0; pos==-2 - default if available or backpack
  51. void putArtifact(const ArtifactLocation &al, const CArtifactInstance *a) override {};
  52. void removeArtifact(const ArtifactLocation &al) override {};
  53. bool moveArtifact(const ArtifactLocation &al1, const ArtifactLocation &al2) override {return false;};
  54. void synchronizeArtifactHandlerLists() override {};
  55. void showCompInfo(ShowInInfobox * comp) override {};
  56. void heroVisitCastle(const CGTownInstance * obj, const CGHeroInstance * hero) override {};
  57. void stopHeroVisitCastle(const CGTownInstance * obj, const CGHeroInstance * hero) override {};
  58. void startBattlePrimary(const CArmedInstance *army1, const CArmedInstance *army2, int3 tile, const CGHeroInstance *hero1, const CGHeroInstance *hero2, bool creatureBank = false, const CGTownInstance *town = nullptr) override {}; //use hero=nullptr for no hero
  59. void startBattleI(const CArmedInstance *army1, const CArmedInstance *army2, int3 tile, bool creatureBank = false) override {}; //if any of armies is hero, hero will be used
  60. void startBattleI(const CArmedInstance *army1, const CArmedInstance *army2, bool creatureBank = false) override {}; //if any of armies is hero, hero will be used, visitable tile of second obj is place of battle
  61. void setAmount(ObjectInstanceID objid, ui32 val) override {};
  62. bool moveHero(ObjectInstanceID hid, int3 dst, ui8 teleporting, bool transit = false, PlayerColor asker = PlayerColor::NEUTRAL) override {return false;};
  63. void giveHeroBonus(GiveBonus * bonus) override {};
  64. void setMovePoints(SetMovePoints * smp) override {};
  65. void setManaPoints(ObjectInstanceID hid, int val) override {};
  66. void giveHero(ObjectInstanceID id, PlayerColor player) override {};
  67. void changeObjPos(ObjectInstanceID objid, int3 newPos, ui8 flags) override {};
  68. void heroExchange(ObjectInstanceID hero1, ObjectInstanceID hero2) override {}; //when two heroes meet on adventure map
  69. void changeFogOfWar(int3 center, ui32 radius, PlayerColor player, bool hide) override {};
  70. void changeFogOfWar(std::unordered_set<int3, ShashInt3> &tiles, PlayerColor player, bool hide) override {};
  71. ///useful callback methods
  72. void commitPackage(CPackForClient * pack) override;
  73. void sendAndApply(CPackForClient * pack) override;
  74. private:
  75. const UpperCallback * upperCallback;
  76. };