Tile.h 957 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // ----------------------------------------------------------------
  2. // From Game Programming in C++ by Sanjay Madhav
  3. // Copyright (C) 2017 Sanjay Madhav. All rights reserved.
  4. //
  5. // Released under the BSD License
  6. // See LICENSE in root directory for full details.
  7. // ----------------------------------------------------------------
  8. #pragma once
  9. #include "Actor.h"
  10. #include <vector>
  11. class Tile : public Actor
  12. {
  13. public:
  14. friend class Grid;
  15. enum TileState
  16. {
  17. EDefault,
  18. EPath,
  19. EStart,
  20. EBase
  21. };
  22. Tile(class Game* game);
  23. void SetTileState(TileState state);
  24. TileState GetTileState() const { return mTileState; }
  25. void ToggleSelect();
  26. const Tile* GetParent() const { return mParent; }
  27. private:
  28. // For pathfinding
  29. std::vector<Tile*> mAdjacent;
  30. Tile* mParent;
  31. float f;
  32. float g;
  33. float h;
  34. bool mInOpenSet;
  35. bool mInClosedSet;
  36. bool mBlocked;
  37. void UpdateTexture();
  38. class SpriteComponent* mSprite;
  39. TileState mTileState;
  40. bool mSelected;
  41. };