feat(maps): tileset propi per piràmide + reload de tilemap a loadRoom
This commit is contained in:
1 parent
2879cbdb17
commit
4739354875
37 files changed
+548
-542
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user