fix(whip_attack): treure entity_manager_ duplicat (ja viu a Entity)
This commit is contained in:
1 parent
2ef5968e0d
commit
f591aa82fd
2 files changed
+25
-9
No files matched your search
@@ -152,7 +152,7 @@ class WhipAttack : public Attack {
|
|||||||
// del nostre `getFeetY()` per delegar el bucket d'y-sort al jugador.
|
// del nostre `getFeetY()` per delegar el bucket d'y-sort al jugador.
|
||||||
float owner_feet_y_{0.0F};
|
float owner_feet_y_{0.0F};
|
||||||
|
|
||||||
EntityManager* entity_manager_{nullptr};
|
// `entity_manager_` viu a Entity (protected): l'utilitzem d'allà.
|
||||||
const std::vector<Player*>* players_{nullptr};
|
const std::vector<Player*>* players_{nullptr};
|
||||||
|
|
||||||
DirSprite sprite_north_;
|
DirSprite sprite_north_;
|
||||||
|
|||||||
@@ -1141,9 +1141,18 @@ void GameScene::update(int delta_ms) {
|
|||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
// Toggle de l'editor: només si no hi ha cap transició de pausa ni
|
// Toggle de l'editor: només si no hi ha cap transició de pausa ni
|
||||||
// pausa consolidada. L'editor mateix no consumeix la tecla — la
|
// pausa consolidada. L'editor mateix no consumeix la tecla — la
|
||||||
// llegim ací per decidir la coexistència.
|
// llegim ací per decidir la coexistència. Quan se surt del editor,
|
||||||
|
// recarreguem les entitats des del YAML perquè el manager torne a
|
||||||
|
// estar sincronitzat amb el que el writer acaba de desar (cada
|
||||||
|
// sessió d'edició parteix del fitxer, no de l'estat runtime previ).
|
||||||
if (pause_.state == PauseState::IDLE && detectEditorToggle()) {
|
if (pause_.state == PauseState::IDLE && detectEditorToggle()) {
|
||||||
|
const bool WAS_ACTIVE = editor_.active();
|
||||||
editor_.toggle(tilemap_);
|
editor_.toggle(tilemap_);
|
||||||
|
if (WAS_ACTIVE) {
|
||||||
|
entity_manager_.reload(Levels::LevelManager::get().currentPath());
|
||||||
|
const int ACTIVE_COUNT = std::ranges::count(players_starts_active_, true);
|
||||||
|
entity_manager_.setExpectedPlayerCount(ACTIVE_COUNT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Salts debug entre sales (`[` / `]`). Mútuament excloents amb la
|
// Salts debug entre sales (`[` / `]`). Mútuament excloents amb la
|
||||||
@@ -1242,18 +1251,25 @@ void GameScene::render() {
|
|||||||
tilemap_.render();
|
tilemap_.render();
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
// En mode editor amaguem entitats i jugador: el tilemap queda net
|
// En mode editor amaguem jugadors, sombres, paint layer, fades, HUD
|
||||||
// per a poder clicar cel·la per cel·la sense interferència visual.
|
// i textos de transició: el tilemap queda net per editar i només es
|
||||||
// El HUD futur (quan s'afegeixi) també farà cas d'aquest flag.
|
// pinten les entitats (congelades, sense tick) per que el dissenyador
|
||||||
const bool SKIP_ACTORS = editor_.active();
|
// veja on estan.
|
||||||
|
const bool EDITOR_ACTIVE = editor_.active();
|
||||||
#else
|
#else
|
||||||
constexpr bool SKIP_ACTORS = false;
|
constexpr bool EDITOR_ACTIVE = false;
|
||||||
#endif
|
#endif
|
||||||
|
if (EDITOR_ACTIVE) {
|
||||||
|
// Render barat de les entitats sense z-sort entre elles ni amb
|
||||||
|
// jugadors: ja no hi ha actors mòbils. L'ordre és el d'inserció
|
||||||
|
// del manager — suficient per editar.
|
||||||
|
entity_manager_.renderAll();
|
||||||
|
}
|
||||||
// Capa de pintat: va entre el tilemap base i els actors, perquè els
|
// Capa de pintat: va entre el tilemap base i els actors, perquè els
|
||||||
// sarcòfags i el jugador la tapen. S'amaga al mode editor (decisió
|
// sarcòfags i el jugador la tapen. S'amaga al mode editor (decisió
|
||||||
// explícita: l'editor edita el tilemap, no la capa de pintat).
|
// explícita: l'editor edita el tilemap, no la capa de pintat).
|
||||||
if (!SKIP_ACTORS && paint_layer_) { paint_layer_->render(); }
|
if (!EDITOR_ACTIVE && paint_layer_) { paint_layer_->render(); }
|
||||||
if (!SKIP_ACTORS) {
|
if (!EDITOR_ACTIVE) {
|
||||||
// Passada de sombres dels jugadors saltant. Va per davant del
|
// Passada de sombres dels jugadors saltant. Va per davant del
|
||||||
// pintat (al damunt) però per darrere de TOTS els actors —
|
// pintat (al damunt) però per darrere de TOTS els actors —
|
||||||
// entitats i jugadors, inclòs el saltador mateix— així la sombra
|
// entitats i jugadors, inclòs el saltador mateix— així la sombra
|
||||||
|
|||||||
Reference in new issue
Block a user