EditorCallback.h 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. 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, const 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 override;
  43. bool isVisibleFor(const CGObjectInstance * obj, PlayerColor player) const override;
  44. // Optional scripting
  45. #if SCRIPTING_ENABLED
  46. scripting::Pool * getGlobalContextPool() const override;
  47. #endif
  48. // Player-related (stub or throw)
  49. const TeamState * getTeam(TeamID teamID) const override;
  50. const TeamState * getPlayerTeam(PlayerColor color) const override;
  51. const PlayerState * getPlayerState(PlayerColor color, bool verbose) const override;
  52. const PlayerSettings * getPlayerSettings(PlayerColor color) const override;
  53. PlayerRelations getPlayerRelations(PlayerColor color1, PlayerColor color2) const override;
  54. int getHeroCount(PlayerColor player, bool includeGarrisoned) const override;
  55. EPlayerStatus getPlayerStatus(PlayerColor player, bool verbose) const override;
  56. int getResource(PlayerColor player, GameResID which) const override;
  57. virtual ~EditorCallback() = default;
  58. private:
  59. const CMap * map;
  60. };
  61. VCMI_LIB_NAMESPACE_END