- afegides claus i portes al editor

- fix: crear una nova habitació no modificava la memoria, soles els fitxers
This commit is contained in:
2026-04-10 18:34:04 +02:00
parent 077b86ea4a
commit 8ebf7894f2
15 changed files with 633 additions and 17 deletions

View File

@@ -58,6 +58,26 @@ class DoorManager {
*/
void tryUnlock(const SDL_FRect& player_rect);
#ifdef _DEBUG
// --- API para el editor (debug) ---
[[nodiscard]] auto getCount() const -> int { return static_cast<int>(doors_.size()); }
auto getDoor(int index) -> std::shared_ptr<Door>& { return doors_.at(index); }
/**
* @brief Mueve la puerta indicada a (x, y) en píxeles
*
* Limpia los WALLs viejos del CollisionMap y, si la puerta sigue siendo
* bloqueante, escribe los nuevos. Encapsula el bookkeeping de tiles para
* que el editor nunca toque el CollisionMap directamente.
*/
void moveDoor(int index, float x, float y);
/**
* @brief Elimina la puerta indicada del vector y limpia sus WALLs del CollisionMap
*/
void removeDoor(int index);
#endif
private:
static constexpr int DOOR_TILES_HEIGHT = 4; // Una puerta ocupa 4 tiles verticalmente