Files
jaildoctors_dilemma/source/debug.cpp

61 lines
1.2 KiB
C++

#include "debug.h"
#include <algorithm> // for max
#include <memory> // for __shared_ptr_access, shared_ptr
#include "resource.h" // for Resource
#include "text.h" // for Text
#include "utils.h" // for Color
// [SINGLETON]
Debug *Debug::debug_ = nullptr;
// [SINGLETON] Crearemos el objeto con esta función estática
void Debug::init()
{
Debug::debug_ = new Debug();
}
// [SINGLETON] Destruiremos el objeto con esta función estática
void Debug::destroy()
{
delete Debug::debug_;
}
// [SINGLETON] Con este método obtenemos el objeto y podemos trabajar con él
Debug *Debug::get()
{
return Debug::debug_;
}
// Dibuja en pantalla
void Debug::render()
{
auto text = Resource::get()->getText("debug");
int y = y_;
int w = 0;
for (const auto &s : slot_)
{
text->write(x_, y, s);
w = (std::max(w, (int)s.length()));
y += text->getCharacterSize() + 1;
if (y > 192 - text->getCharacterSize())
{
y = y_;
x_ += w * text->getCharacterSize() + 2;
}
}
y = 0;
for (const auto &l : log_)
{
text->writeColored(x_ + 10, y, l, Color(255, 255, 255));
y += text->getCharacterSize() + 1;
}
}
// Establece la posición donde se colocará la información de debug
void Debug::setPos(SDL_Point p)
{
x_ = p.x;
y_ = p.y;
}