refactor: file_getfilebuffer → file_readfile (std::vector<char>) — elimina 3 leaks (paleta + música gameplay + música cinemàtica)

This commit is contained in:
2026-04-16 09:43:27 +02:00
parent d343e719ca
commit b3ff620c81
12 changed files with 83 additions and 172 deletions

View File

@@ -45,9 +45,9 @@ int ModuleGame::Go() {
const char* music = info::ctx.num_piramide == 3 ? "00000008.ogg" : (info::ctx.num_piramide == 2 ? "00000007.ogg" : (info::ctx.num_piramide == 6 ? "00000002.ogg" : "00000006.ogg"));
const char* current_music = JA_GetMusicFilename();
if ((JA_GetMusicState() != JA_MUSIC_PLAYING) || !(strcmp(music, current_music) == 0)) {
int size;
char* buffer = file_getfilebuffer(music, size);
JA_PlayMusic(JA_LoadMusic((Uint8*)buffer, size, music));
auto buffer = file_readfile(music);
JA_PlayMusic(JA_LoadMusic(reinterpret_cast<Uint8*>(buffer.data()),
static_cast<Uint32>(buffer.size()), music));
}
JD8_FadeToPal(JD8_LoadPalette(info::ctx.pepe_activat ? "frames2.gif" : "frames.gif"));

View File

@@ -1,53 +0,0 @@
#include "game/modulesequence.hpp"
#include "core/jail/jdraw8.hpp"
#include "core/jail/jgame.hpp"
ModuleSequence::ModuleSequence() {
}
ModuleSequence::~ModuleSequence(void) {
}
int ModuleSequence::Go() {
if (info::ctx.num_piramide == 6 && info::ctx.diners < 200) info::ctx.num_piramide = 7;
// Totes les branques del vell switch han estat migrades a scenes:
// case 0 (Menú) → scenes::MenuScene
// case 1 i 7 (Slides) → scenes::SlidesScene
// case 2..5 (Banner) → scenes::BannerScene
// case 6 (Secreta) → scenes::SecretaScene
// case 8 (Credits) → scenes::CreditsScene
// case 100 (Mort) → scenes::MortScene
// case 255 (Intro) → scenes::IntroScene / scenes::IntroNewLogoScene
// (amb scenes::IntroSpritesScene com a sub-escena)
// El gameFiberEntry les dispatcha via SceneRegistry abans de caure a
// aquest Go() — així que en la pràctica ja no s'arriba ací. El codi
// que queda sota (JD8_FadeOut + transicions de num_piramide) serà
// eliminat al Step 10 del pla, junt amb ModuleSequence::Go() sencer.
JD8_FadeOut();
if (JG_Quitting()) {
return -1;
} else {
if (info::ctx.num_piramide == 255) {
info::ctx.num_piramide = 0;
return 1;
} else if (info::ctx.num_piramide == 0) {
info::ctx.num_piramide = 1;
return 1;
} else if (info::ctx.num_piramide == 7) {
info::ctx.num_piramide = 8;
return 1;
} else if (info::ctx.num_piramide == 8) {
info::ctx.num_piramide = 255;
return 1;
} else if (info::ctx.num_piramide == 100) {
info::ctx.num_piramide = 0;
return 1;
} else {
return 0;
}
}
}

View File

@@ -1,17 +0,0 @@
#pragma once
#include <SDL3/SDL.h>
#include "game/info.hpp"
class ModuleSequence {
public:
ModuleSequence();
~ModuleSequence(void);
int Go();
// Totes les doX() han sigut migrades a escenes dins source/scenes/.
// El Step 10 del pla eliminarà ModuleSequence sencer, inclòs Go(),
// quan el gameFiberEntry deixe de cridar-lo com a fallback.
};