#pragma once #ifdef _DEBUG #include #include // Para shared_ptr #include // 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 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