EditorCallback.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. VCMI_LIB_NAMESPACE_BEGIN
  13. class DLL_LINKAGE EditorCallback : public MapInfoCallback
  14. {
  15. public:
  16. explicit EditorCallback(const CMap * map);
  17. void setMap(const CMap * map);
  18. const CMap * getMapConstPtr() const override;
  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. bool isTileGuardedUnchecked(int3 tile) const override;
  28. const CGObjectInstance * getTopObj(int3 pos) const override;
  29. EDiggingStatus getTileDigStatus(int3 tile, bool verbose) const override;
  30. void calculatePaths(const std::shared_ptr<PathfinderConfig> & config) const override;
  31. int3 guardingCreaturePosition(int3 pos) const override;
  32. bool checkForVisitableDir(const int3 & src, const int3 & dst) const override;
  33. std::vector<const CGObjectInstance*> getGuardingCreatures(int3 pos) const override;
  34. void getTilesInRange(FowTilesType & tiles, const int3 & pos, int radius, ETileVisibility mode, std::optional<PlayerColor> player, int3::EDistanceFormula formula) const override;
  35. void getAllTiles(FowTilesType &tiles, std::optional<PlayerColor> player, int level, const std::function<bool(const TerrainTile *)> & filter) const override;
  36. std::vector<ObjectInstanceID> getVisibleTeleportObjects(std::vector<ObjectInstanceID> ids, PlayerColor player) const override;
  37. std::vector<ObjectInstanceID> getTeleportChannelEntrances(TeleportChannelID id, PlayerColor player) const override;
  38. std::vector<ObjectInstanceID> getTeleportChannelExits(TeleportChannelID id, PlayerColor player) const override;
  39. bool isTeleportChannelImpassable(TeleportChannelID id, PlayerColor player) const override;
  40. bool isTeleportChannelBidirectional(TeleportChannelID id, PlayerColor player) const override;
  41. bool isTeleportChannelUnidirectional(TeleportChannelID id, PlayerColor player) const override;
  42. bool isTeleportEntrancePassable(const CGTeleport * obj, PlayerColor player) const override;
  43. bool isVisibleFor(int3 pos, PlayerColor player) const override;
  44. bool isVisibleFor(const CGObjectInstance * obj, PlayerColor player) const 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. virtual ~EditorCallback() = default;
  59. private:
  60. const CMap * map;
  61. };
  62. VCMI_LIB_NAMESPACE_END