#pragma once

#include <SDL2/SDL.h>
#include "const.h"
#include "utils.h"
#include "screen.h"
#include "asset.h"
#include "text.h"
#include <vector>
#include <string>

#ifndef DEBUG_H
#define DEBUG_H

// Clase Debug
class Debug
{
private:
	SDL_Renderer *renderer;		   // El renderizador de la ventana
	Screen *screen;				   // Objeto encargado de dibujar en pantalla
	Asset *asset;				   // Objeto con los ficheros de recursos
	Text *text;					   // Objeto encargado de escribir texto en pantalla
	std::vector<std::string> slot; // Vector con los textos a escribir
	int x;						   // Posicion donde escribir el texto de debug
	int y;						   // Posición donde escribir el texto de debug

public:
	// Constructor
	Debug(SDL_Renderer *renderer, Screen *screen, Asset *asset);

	// Destructor
	~Debug();

	// Actualiza las variables
	void update();

	// Dibuja en pantalla
	void render();

	// Establece la posición donde se colocará la información de debug
	void setPos(SDL_Point p);

	// Añade un texto para mostrar
	void add(std::string text);

	// Borra la información de debug
	void clear();
};

#endif
