VisitQueries.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * VisitQueries.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 "CQuery.h"
  12. //Created when hero visits object.
  13. //Removed when query above is resolved (or immediately after visit if no queries were created)
  14. class VisitQuery : public CQuery
  15. {
  16. protected:
  17. VisitQuery(CGameHandler * owner, const CGObjectInstance *Obj, const CGHeroInstance *Hero);
  18. public:
  19. const CGObjectInstance *visitedObject;
  20. const CGHeroInstance *visitingHero;
  21. bool blocksPack(const CPack *pack) const final;
  22. void onExposure(QueryPtr topQuery) final;
  23. };
  24. class MapObjectVisitQuery final : public VisitQuery
  25. {
  26. public:
  27. bool removeObjectAfterVisit;
  28. MapObjectVisitQuery(CGameHandler * owner, const CGObjectInstance *Obj, const CGHeroInstance *Hero);
  29. void onRemoval(PlayerColor color) final;
  30. };
  31. class TownBuildingVisitQuery final : public VisitQuery
  32. {
  33. public:
  34. BuildingID visitedBuilding;
  35. TownBuildingVisitQuery(CGameHandler * owner, const CGObjectInstance *Obj, const CGHeroInstance *Hero, BuildingID buildingToVisit);
  36. void onRemoval(PlayerColor color) final;
  37. };