#pragma once

#include "../core/debug_flags.h"
#include "../data/level_definition.h"

#include <frostbite2D/types/type_math.h>
#include <vector>

namespace ns_game {

class DebugOverlay {
public:
  void Render(const LevelDefinition& level, const DebugFlags& flags,
              const frostbite2D::Rect* playerBounds,
              const std::vector<BattleZoneDebugInfo>* battleZoneDebug) const;

private:
  void drawCollision(const LevelDefinition& level) const;
  void drawActorBounds(const frostbite2D::Rect& bounds) const;
  void drawBattleZones(
      const LevelDefinition& level,
      const std::vector<BattleZoneDebugInfo>* battleZoneDebug) const;
  void drawSpawnPoints(const LevelDefinition& level) const;
};

} // namespace ns_game
