feat(maps): tileset propi per piràmide + reload de tilemap a loadRoom

This commit is contained in:
JailDesigner committed 2026-04-29 13:30:39 +02:00
1 parent 2879cbdb17
commit 4739354875
37 files changed
+548 -542

No files matched your search

+7 -1
View File
@@ -512,12 +512,18 @@ void GameScene::loadRoom(const std::string& yaml_path) {
// CLOSED amb visited buit, momies i altres actors a la posició inicial.
config_.map_yaml = yaml_path;
Map::loadFrom(yaml_path);
// Tilemap pre-blita els tiles a un buffer ARGB intern al ctor — sense
// reconstruir-lo, la imatge de la sala anterior es queda fixada per a
// sempre. PaintLayer captura `tileset_path_`/`tileset_cols_` per valor
// del Tilemap a la seua construcció, així que també cal recrear-lo
// perquè el rastre del jugador faça servir el tileset nou.
tilemap_ = Tilemap(yaml_path);
paint_layer_ = std::make_unique<PaintLayer>(tilemap_, &entity_manager_.getBus());
entity_manager_.reload(yaml_path);
// Tornem a fixar el comptador de "esperats" amb només els slots
// actius — un slot DISABLED permanent (single-player) no compta.
const int ACTIVE_COUNT = std::ranges::count(players_starts_active_, true);
entity_manager_.setExpectedPlayerCount(ACTIVE_COUNT);
if (paint_layer_) { paint_layer_->clear(); }
// Tornem tots els slots a DISABLED. Els actius els reactivarà el
// trigger d'spawn aeri dins de `updateRoomTransition` quan torni a