step 9: intro_sprites_scene com a sub-escena (elimina doIntroSprites + 3 variants aleatòries)
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "core/jail/jdraw8.hpp"
|
||||
#include "scenes/intro_sprites_scene.hpp"
|
||||
#include "scenes/scene.hpp"
|
||||
#include "scenes/surface_handle.hpp"
|
||||
|
||||
@@ -17,10 +20,10 @@ namespace scenes {
|
||||
// 3. Logo complet amb cursor fix 200 ms.
|
||||
// 4. Cicle de paleta de 256 passos modificant índexs 16–31 cada 20 ms.
|
||||
// 5. Espera final 20 ms.
|
||||
// 6. Delega a la funció legacy `ModuleSequence::doIntroSprites(gfx)`
|
||||
// (que s'executa dins del mateix fiber i fa els seus propis Flips
|
||||
// cooperatius). Aquesta delegació desapareixerà al Step 9 del pla,
|
||||
// quan `doIntroSprites` es reescriga com a `IntroSpritesScene`.
|
||||
// 6. Transfereix el gfx_ a una `IntroSpritesScene` com a sub-escena
|
||||
// i li delega els ticks fins que acaba (anima el prota + momia +
|
||||
// mapa, amb 3 variants aleatòries). En acabar, setzea num_piramide
|
||||
// = 0 per passar al menú.
|
||||
//
|
||||
// Registrada al SceneRegistry amb state_key = 255, amb una factory
|
||||
// condicional: només s'activa si `Options::game.use_new_logo == true`.
|
||||
@@ -43,7 +46,7 @@ class IntroNewLogoScene : public Scene {
|
||||
FullLogoFlash, // logo complet + cursor, 200 ms
|
||||
PaletteCycle, // 256 passos × 20 ms modificant paleta
|
||||
FinalWait, // 20 ms final
|
||||
Delegate, // delega a doIntroSprites legacy i marca done
|
||||
Sprites, // tick delegat a IntroSpritesScene fins que acaba
|
||||
Done,
|
||||
};
|
||||
|
||||
@@ -53,6 +56,7 @@ class IntroNewLogoScene : public Scene {
|
||||
SurfaceHandle gfx_;
|
||||
SurfaceHandle cursor_surf_;
|
||||
JD8_Palette pal_{nullptr}; // propietat transferida a main_palette via SetScreenPalette
|
||||
std::unique_ptr<IntroSpritesScene> sprites_scene_;
|
||||
|
||||
Phase phase_{Phase::Initial};
|
||||
int phase_acc_ms_{0};
|
||||
|
||||
Reference in New Issue
Block a user