EditorCallback.h 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * EditorCallback.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/callback/MapInfoCallback.h"
  12. class EditorCallback : public MapInfoCallback
  13. {
  14. protected:
  15. const CMap * getMapConstPtr() const override;
  16. public:
  17. explicit EditorCallback(const CMap * map);
  18. void setMap(const CMap * map);
  19. // Access to full game state — not available in editor
  20. CGameState & gameState() override;
  21. const CGameState & gameState() const override;
  22. // Unused in editor — return null or dummy
  23. const StartInfo * getStartInfo() const override;
  24. int getDate(Date mode) const override;
  25. const TerrainTile * getTile(int3 tile, bool verbose) const override;
  26. const TerrainTile * getTileUnchecked(int3 tile) const override;
  27. const CGObjectInstance * getTopObj(int3 pos) const override;
  28. EDiggingStatus getTileDigStatus(int3 tile, bool verbose) const override;
  29. void calculatePaths(const std::shared_ptr<PathfinderConfig> & config) const override;
  30. int3 guardingCreaturePosition(int3 pos) const override;
  31. bool checkForVisitableDir(const int3 & src, const int3 & dst) const override;
  32. std::vector<const CGObjectInstance*> getGuardingCreatures(int3 pos) const override;
  33. void getTilesInRange(std::unordered_set<int3> & tiles, const int3 & pos, int radius, ETileVisibility mode, std::optional<PlayerColor> player, int3::EDistanceFormula formula) const override;
  34. void getAllTiles(std::unordered_set<int3> &tiles, std::optional<PlayerColor> player, int level, std::function<bool(const TerrainTile *)> filter) const override;
  35. std::vector<ObjectInstanceID> getVisibleTeleportObjects(std::vector<ObjectInstanceID> ids, PlayerColor player) const override;
  36. std::vector<ObjectInstanceID> getTeleportChannelEntrances(TeleportChannelID id, PlayerColor player) const override;
  37. std::vector<ObjectInstanceID> getTeleportChannelExits(TeleportChannelID id, PlayerColor player) const override;
  38. bool isTeleportChannelImpassable(TeleportChannelID id, PlayerColor player) const override;
  39. bool isTeleportChannelBidirectional(TeleportChannelID id, PlayerColor player) const override;
  40. bool isTeleportChannelUnidirectional(TeleportChannelID id, PlayerColor player) const override;
  41. bool isTeleportEntrancePassable(const CGTeleport * obj, PlayerColor player) const override;
  42. bool isVisibleFor(int3 pos, PlayerColor player) const;
  43. bool isVisibleFor(const CGObjectInstance * obj, PlayerColor player) const;
  44. void pickAllowedArtsSet(std::vector<ArtifactID> & out, vstd::RNG & rand) override;
  45. // Optional scripting
  46. #if SCRIPTING_ENABLED
  47. scripting::Pool * getGlobalContextPool() const override;
  48. #endif
  49. // Player-related (stub or throw)
  50. const TeamState * getTeam(TeamID teamID) const override;
  51. const TeamState * getPlayerTeam(PlayerColor color) const override;
  52. const PlayerState * getPlayerState(PlayerColor color, bool verbose) const override;
  53. const PlayerSettings * getPlayerSettings(PlayerColor color) const override;
  54. PlayerRelations getPlayerRelations(PlayerColor color1, PlayerColor color2) const override;
  55. int getHeroCount(PlayerColor player, bool includeGarrisoned) const override;
  56. EPlayerStatus getPlayerStatus(PlayerColor player, bool verbose) const override;
  57. int getResource(PlayerColor player, GameResID which) const override;
  58. private:
  59. const CMap * map;
  60. };