#pragma once #ifdef _DEBUG #include #include // Para shared_ptr #include // Para string class Surface; class EditorStatusBar { public: explicit EditorStatusBar(std::string room_number); ~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 256x24) // Font 8bithud lowercase = 6px alto → 3 líneas con 8px de separación static constexpr int LINE1_Y = 1; // Room number + tile coords + extra static constexpr int LINE2_Y = 9; // Propiedades de room / enemy info static constexpr int LINE3_Y = 17; // Conexiones+items / enemy detail static constexpr int LEFT_X = 4; // Margen izquierdo // Objetos std::shared_ptr 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 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 (mostrado en la línea 1 a la derecha) std::string line5_; // Contenido de la línea 5 (mostrado en la línea 1 al centro) }; #endif // _DEBUG