fase 1: jail i game a c++ idiomàtic (raii, info::ctx, cheats arreglats)

This commit is contained in:
2026-04-15 18:03:46 +02:00
parent 2c833d086e
commit 7f85b50c63
18 changed files with 834 additions and 804 deletions

View File

@@ -7,13 +7,13 @@
#include "core/jail/jinput.hpp"
ModuleGame::ModuleGame() {
this->gfx = JD8_LoadSurface(info::pepe_activat ? "frames2.gif" : "frames.gif");
this->gfx = JD8_LoadSurface(info::ctx.pepe_activat ? "frames2.gif" : "frames.gif");
JG_SetUpdateTicks(10);
this->sam = new Prota(this->gfx);
this->mapa = new Mapa(this->gfx, this->sam);
this->marcador = new Marcador(this->gfx, this->sam);
if (info::num_piramide == 2) {
if (info::ctx.num_piramide == 2) {
this->bola = new Bola(this->gfx, this->sam);
} else {
this->bola = NULL;
@@ -42,7 +42,7 @@ ModuleGame::~ModuleGame(void) {
int ModuleGame::Go() {
this->Draw();
const char* music = info::num_piramide == 3 ? "00000008.ogg" : (info::num_piramide == 2 ? "00000007.ogg" : (info::num_piramide == 6 ? "00000002.ogg" : "00000006.ogg"));
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;
@@ -50,7 +50,7 @@ int ModuleGame::Go() {
JA_PlayMusic(JA_LoadMusic((Uint8*)buffer, size, music));
}
JD8_FadeToPal(JD8_LoadPalette(info::pepe_activat ? "frames2.gif" : "frames.gif"));
JD8_FadeToPal(JD8_LoadPalette(info::ctx.pepe_activat ? "frames2.gif" : "frames.gif"));
while (this->final == 0 && !JG_Quitting()) {
this->Draw();
@@ -60,20 +60,20 @@ int ModuleGame::Go() {
// JS_FadeOutMusic();
if (this->final == 1) {
info::num_habitacio++;
if (info::num_habitacio == 6) {
info::num_habitacio = 1;
info::num_piramide++;
info::ctx.num_habitacio++;
if (info::ctx.num_habitacio == 6) {
info::ctx.num_habitacio = 1;
info::ctx.num_piramide++;
}
if (info::num_piramide == 6 && info::num_habitacio == 2) info::num_piramide++;
if (info::ctx.num_piramide == 6 && info::ctx.num_habitacio == 2) info::ctx.num_piramide++;
} else if (this->final == 2) {
info::num_piramide = 100;
info::ctx.num_piramide = 100;
}
if (JG_Quitting()) {
return -1;
} else {
if (info::num_habitacio == 1 || info::num_piramide == 100 || info::num_piramide == 7) {
if (info::ctx.num_habitacio == 1 || info::ctx.num_piramide == 100 || info::ctx.num_piramide == 7) {
return 1;
} else {
return 0;
@@ -100,27 +100,27 @@ void ModuleGame::Update() {
Momia* seguent = this->momies->next;
delete this->momies;
this->momies = seguent;
info::momies--;
info::ctx.momies--;
}
if (this->bola != NULL) this->bola->update();
this->mapa->update();
if (this->mapa->novaMomia()) {
if (this->momies != NULL) {
this->momies->insertar(new Momia(this->gfx, true, 0, 0, this->sam));
info::momies++;
info::ctx.momies++;
} else {
this->momies = new Momia(this->gfx, true, 0, 0, this->sam);
info::momies++;
info::ctx.momies++;
}
}
if (JI_CheatActivated("reviu")) info::vida = 5;
if (JI_CheatActivated("reviu")) info::ctx.vida = 5;
if (JI_CheatActivated("alone")) {
if (this->momies != NULL) {
this->momies->clear();
delete this->momies;
this->momies = NULL;
info::momies = 0;
info::ctx.momies = 0;
}
}
if (JI_CheatActivated("obert")) {
@@ -140,17 +140,17 @@ void ModuleGame::Update() {
}
void ModuleGame::iniciarMomies() {
if (info::num_habitacio == 1) {
info::momies = 1;
if (info::ctx.num_habitacio == 1) {
info::ctx.momies = 1;
} else {
info::momies++;
info::ctx.momies++;
}
if (info::num_piramide == 6) info::momies = 8;
if (info::ctx.num_piramide == 6) info::ctx.momies = 8;
int x = 20;
int y = 170;
bool dimonis = info::num_piramide == 6;
for (int i = 0; i < info::momies; i++) {
bool dimonis = info::ctx.num_piramide == 6;
for (int i = 0; i < info::ctx.momies; i++) {
if (this->momies == NULL) {
this->momies = new Momia(this->gfx, dimonis, x, y, this->sam);
} else {