#pragma once
#ifdef DEBUG
#include "a83/macro.hpp"
constexpr uint DBG_HITS = 1 << 0; ///< отобразить хитбоксы
constexpr uint DBG_POS = 1 << 1; ///< отобразить корды объектов
constexpr uint DBG_GODMOD = 1 << 2; ///< бессмертие игрока
constexpr uint DBG_NO_ENEMY = 1 << 3; ///< выключить противников
//! если один из этих флагов активирован, то рисовать дебажный слой
constexpr uint DBG_DRAW_MASK = DBG_HITS | DBG_POS;
class Image;
namespace debuger {
Image dbg_layer = {}; ///< слой для вывода поверх игрового экрана
uint status = 0; ///< настройки отладчика
uint check_moves = 0; ///< check moves per.upd
uint update_physics = 0; ///< update physic per.upd
uint check_hits = 0; ///< check hits per.upd
uint collide_checks = 0; ///< intersection checks per.upd
void init(int mx, int my) { dbg_layer.init(mx, my); }
void draw(Image& dst) {
  if (status & DBG_DRAW_MASK) {
    dbg_layer.fast_print_diff(dst);
    dbg_layer.clear();
  }
}
} // debuger ns
#endif