step 2: banner_scene substituix doBanner() (piràmides 2-5) + helper playMusic compartit

This commit is contained in:
2026-04-15 23:13:05 +02:00
parent d86cb21efa
commit 2cb38ffb49
9 changed files with 158 additions and 70 deletions

View File

@@ -2,31 +2,15 @@
#include <cstdlib>
#include "core/jail/jail_audio.hpp"
#include "core/jail/jdraw8.hpp"
#include "core/jail/jfile.hpp"
#include "core/jail/jinput.hpp"
#include "game/info.hpp"
namespace {
// Helper local: carrega un OGG del disc i l'envia a JA_PlayMusic. Equivalent
// al `play_music()` del modulesequence vell. El buffer es queda huérfano
// després de passar-lo a JA_LoadMusic (que n'ha fet una còpia SDL_malloc'd).
// Leak conegut del codi original, no el fixem en aquesta escena.
void play_music(const char* music) {
int size = 0;
char* buffer = file_getfilebuffer(music, size);
if (!buffer) return;
JA_PlayMusic(JA_LoadMusic(reinterpret_cast<Uint8*>(buffer), size, music));
}
} // namespace
#include "scenes/scene_utils.hpp"
namespace scenes {
void MortScene::onEnter() {
play_music("00000001.ogg");
playMusic("00000001.ogg");
JI_DisableKeyboard(60);
info::ctx.vida = 5;
@@ -60,7 +44,7 @@ void MortScene::tick(int delta_ms) {
if (remaining_ms_ <= 0) {
// Arrenca música del següent mòdul abans del fade out,
// igual que la versió vella feia al final de doMort().
play_music("00000003.ogg");
playMusic("00000003.ogg");
info::ctx.num_piramide = 0;
fade_.startFadeOut();
phase_ = Phase::FadingOut;