step 5: slides_scene amb wipe suau per easing (substituix doSlides)
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
#include "scenes/mort_scene.hpp"
|
||||
#include "scenes/scene.hpp"
|
||||
#include "scenes/scene_registry.hpp"
|
||||
#include "scenes/slides_scene.hpp"
|
||||
|
||||
// Cheats del joc original — declarats a jinput.cpp
|
||||
extern void JI_moveCheats(Uint8 new_key);
|
||||
@@ -61,6 +62,16 @@ void gameFiberEntry() {
|
||||
// amb un mini-loop tick-based. El codi de la Scene no toca
|
||||
// fibers; el JD8_Flip() entre ticks és el que cedeix al Director.
|
||||
if (gameState == 1) {
|
||||
// Replica del redirect que el `ModuleSequence::Go()` vell feia
|
||||
// al principi: si el jugador arriba a la piràmide Secreta (6)
|
||||
// sense prou diners, salta directament als slides de fracàs (7).
|
||||
// Cal fer-ho ací perquè el SceneRegistry consulta num_piramide
|
||||
// abans del fallback legacy; mentres doSecreta no estiga migrada
|
||||
// també continuarà al Go() vell amb num_piramide ja corregida.
|
||||
if (info::ctx.num_piramide == 6 && info::ctx.diners < 200) {
|
||||
info::ctx.num_piramide = 7;
|
||||
}
|
||||
|
||||
if (auto scene = scenes::SceneRegistry::instance().tryCreate(info::ctx.num_piramide)) {
|
||||
scene->onEnter();
|
||||
Uint32 last = SDL_GetTicks();
|
||||
@@ -112,6 +123,12 @@ void Director::init() {
|
||||
for (int p = 2; p <= 5; ++p) {
|
||||
registry.registerScene(p, [] { return std::make_unique<scenes::BannerScene>(); });
|
||||
}
|
||||
// SlidesScene cobreix els dos states on el vell `doSlides` s'invocava:
|
||||
// - num_piramide == 1: slides narratius inicials (entrada al joc)
|
||||
// - num_piramide == 7: slides de fracàs (ve del redirect 6→7 quan
|
||||
// l'usuari no té prou diners per a la Secreta)
|
||||
registry.registerScene(1, [] { return std::make_unique<scenes::SlidesScene>(); });
|
||||
registry.registerScene(7, [] { return std::make_unique<scenes::SlidesScene>(); });
|
||||
// IntroNewLogoScene només es registra quan `use_new_logo` està actiu;
|
||||
// si no, la factory retorna nullptr i el gameFiberEntry cau al vell
|
||||
// ModuleSequence::doIntro() legacy que no ha sigut migrat encara.
|
||||
|
||||
Reference in New Issue
Block a user