DangerHitMapAnalyzer.h 502 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include "../VCAI.h"
  3. #include "../AIHelper.h"
  4. struct HitMapInfo
  5. {
  6. uint64_t danger;
  7. uint8_t turn;
  8. void reset()
  9. {
  10. danger = 0;
  11. turn = 255;
  12. }
  13. };
  14. struct HitMapNode
  15. {
  16. HitMapInfo maximumDanger;
  17. HitMapInfo fastestDanger;
  18. void reset()
  19. {
  20. maximumDanger.reset();
  21. fastestDanger.reset();
  22. }
  23. };
  24. class DangerHitMapAnalyzer
  25. {
  26. private:
  27. boost::multi_array<HitMapNode, 3> hitMap;
  28. public:
  29. void updateHitMap();
  30. uint64_t enemyCanKillOurHeroesAlongThePath(const AIPath & path) const;
  31. };