feat(level-manager): GameScene pren el mapa del LevelManager
defaultConfig() llig el path del nivell actual amb Levels::LevelManager::get().currentPath() en lloc de la constant Pyramid::MAP_YAML (que desapareix). El ctor sincronitza room_index_ amb LevelManager::currentRoom() per al text d'intro de sala. Encara no hi ha progressió: cada arrencada continua a la primera sala del levels.yaml; el comportament visible és idèntic, però la responsabilitat de 'quin fitxer carreguem' ha passat al LevelManager.
This commit is contained in:
1 parent
fe17c35c67
commit
f51fe3d820
2 files changed
+15
-4
No files matched your search
@@ -32,6 +32,7 @@
|
||||
#include "game/entities/entity_loader.hpp"
|
||||
#include "game/entities/event_bus.hpp"
|
||||
#include "game/entities/player.hpp"
|
||||
#include "game/levels/level_manager.hpp"
|
||||
#include "game/map/map.hpp"
|
||||
#include "game/options.hpp"
|
||||
#include "game/ui/hud.hpp"
|
||||
@@ -221,8 +222,11 @@ namespace {
|
||||
} // namespace
|
||||
|
||||
auto GameScene::defaultConfig() -> Config {
|
||||
// El path del mapa el dicta el LevelManager (que ja ha llegit `levels.yaml`
|
||||
// a la primera invocació). Així `defaultConfig()` no coneix cap fitxer
|
||||
// concret de sala — només cap a on apunta la progressió ara mateix.
|
||||
return {
|
||||
.map_yaml = Defaults::Pyramid::MAP_YAML,
|
||||
.map_yaml = Levels::LevelManager::get().currentPath(),
|
||||
.player_sprite = Defaults::Pyramid::PLAYER_SPRITE,
|
||||
.player_yaml = Defaults::Pyramid::PLAYER_YAML,
|
||||
.player2_sprite = Defaults::Pyramid::PLAYER_SPRITE_P2,
|
||||
@@ -235,6 +239,13 @@ auto GameScene::defaultConfig() -> Config {
|
||||
GameScene::GameScene(Config config)
|
||||
: config_(std::move(config)),
|
||||
tilemap_(makeTilemap(config_.map_yaml)) {
|
||||
// Sincronitzem l'identificador de la sala amb el LevelManager (la
|
||||
// mateixa font que ha donat el `map_yaml`). El text d'intro encara
|
||||
// consumeix només `{n}` = número de sala dins de la piràmide; quan
|
||||
// afegim el placeholder de piràmide al locale, ací també caldrà
|
||||
// passar-li `currentPyramid()`.
|
||||
room_index_ = Levels::LevelManager::get().currentRoom();
|
||||
|
||||
// Convenció: el Resource::Cache indexa per basename del fitxer, perquè
|
||||
// la mateixa clau l'usa el parseador d'animació (YAML > tileSetFile).
|
||||
// Lambda perquè tenim dos conjunts d'assets (sam/morcus) i l'alta al
|
||||
|
||||
Reference in new issue
Block a user