53 lines
1.8 KiB
C++
53 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#ifdef _DEBUG
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
#include <memory> // Para shared_ptr
|
|
#include <string> // Para string
|
|
|
|
class Surface;
|
|
|
|
class EditorStatusBar {
|
|
public:
|
|
EditorStatusBar(const std::string& room_number, const std::string& room_name);
|
|
~EditorStatusBar() = default;
|
|
|
|
void render();
|
|
void update(float delta_time);
|
|
void setMouseTile(int tile_x, int tile_y);
|
|
void setLine2(const std::string& text);
|
|
void setLine3(const std::string& text);
|
|
void setLine4(const std::string& text);
|
|
void setLine5(const std::string& text);
|
|
|
|
private:
|
|
void fillTexture(); // Dibuja los elementos en la surface
|
|
|
|
// Constantes de posición (en pixels dentro de la surface de 256x48)
|
|
// Font 8bithud lowercase = 6px alto → 5 líneas con 8px de separación
|
|
static constexpr int LINE1_Y = 2; // Nombre de la habitación
|
|
static constexpr int LINE2_Y = 10; // Propiedades de room / enemy info
|
|
static constexpr int LINE3_Y = 18; // Conexiones+items / enemy detail
|
|
static constexpr int LINE4_Y = 26; // Extra
|
|
static constexpr int LINE5_Y = 34; // Tile coords + drag info
|
|
static constexpr int LEFT_X = 4; // Margen izquierdo
|
|
|
|
// Objetos
|
|
std::shared_ptr<Surface> surface_; // Surface donde dibujar la barra
|
|
SDL_FRect surface_dest_{}; // Rectángulo destino en pantalla
|
|
|
|
// Variables
|
|
std::string room_number_; // Número de la habitación
|
|
std::string room_name_; // Nombre de la habitación
|
|
int mouse_tile_x_{0}; // Coordenada X del ratón en tiles
|
|
int mouse_tile_y_{0}; // Coordenada Y del ratón en tiles
|
|
std::string line2_; // Contenido de la línea 2
|
|
std::string line3_; // Contenido de la línea 3
|
|
std::string line4_; // Contenido de la línea 4
|
|
std::string line5_; // Contenido de la línea 5
|
|
};
|
|
|
|
#endif // _DEBUG
|