fix: havia un punter no inicialitzava a nullptr i en macos no passava res, pero en linux i windows si

This commit is contained in:
2024-08-13 20:44:23 +02:00
parent ba8e068b80
commit 054950f1d8
4 changed files with 33 additions and 27 deletions

View File

@@ -813,7 +813,7 @@ void Director::loadMusics()
} }
} }
// Descarga los sonidos del juego // Libera la memoria usada por los sonidos del juego
void Director::deleteSounds() void Director::deleteSounds()
{ {
for (auto s : sounds) for (auto s : sounds)
@@ -823,7 +823,7 @@ void Director::deleteSounds()
sounds.clear(); sounds.clear();
} }
// Descarga las músicas del juego // Libera la memoria usada por las músicas del juego
void Director::deleteMusics() void Director::deleteMusics()
{ {
for (auto m : musics) for (auto m : musics)
@@ -833,7 +833,7 @@ void Director::deleteMusics()
musics.clear(); musics.clear();
} }
// Ejecuta la seccion de juego con el logo // Ejecuta la sección con el logo
void Director::runLogo() void Director::runLogo()
{ {
logo = new Logo(screen, asset, input, param, section); logo = new Logo(screen, asset, input, param, section);
@@ -841,7 +841,7 @@ void Director::runLogo()
delete logo; delete logo;
} }
// Ejecuta la seccion de juego de la introducción // Ejecuta la sección con la secuencia de introducción
void Director::runIntro() void Director::runIntro()
{ {
intro = new Intro(screen, asset, input, lang, param, section, getMusic(musics, "intro.ogg")); intro = new Intro(screen, asset, input, lang, param, section, getMusic(musics, "intro.ogg"));
@@ -849,7 +849,7 @@ void Director::runIntro()
delete intro; delete intro;
} }
// Ejecuta la seccion de juego con el titulo y los menus // Ejecuta la sección con el titulo del juego
void Director::runTitle() void Director::runTitle()
{ {
title = new Title(screen, asset, input, options, lang, param, section, getMusic(musics, "title.ogg")); title = new Title(screen, asset, input, options, lang, param, section, getMusic(musics, "title.ogg"));
@@ -857,7 +857,7 @@ void Director::runTitle()
delete title; delete title;
} }
// Ejecuta la seccion de juego donde se juega // Ejecuta la sección donde se juega al juego
void Director::runGame() void Director::runGame()
{ {
const int playerID = section->subsection == SUBSECTION_GAME_PLAY_1P ? 0 : 1; const int playerID = section->subsection == SUBSECTION_GAME_PLAY_1P ? 0 : 1;
@@ -866,15 +866,7 @@ void Director::runGame()
delete game; delete game;
} }
// Ejecuta la parte donde se muestra la tabla de puntuaciones // Ejecuta la sección donde se muestran las instrucciones
void Director::runHiScoreTable()
{
hiScoreTable = new HiScoreTable(screen, asset, input, lang, param, options, section);
hiScoreTable->run();
delete hiScoreTable;
}
// Ejecuta la parte donde se muestran las instrucciones
void Director::runInstructions() void Director::runInstructions()
{ {
instructions = new Instructions(screen, asset, input, lang, param, section); instructions = new Instructions(screen, asset, input, lang, param, section);
@@ -882,6 +874,14 @@ void Director::runInstructions()
delete instructions; delete instructions;
} }
// Ejecuta la sección donde se muestra la tabla de puntuaciones
void Director::runHiScoreTable()
{
hiScoreTable = new HiScoreTable(screen, asset, input, lang, param, options, section);
hiScoreTable->run();
delete hiScoreTable;
}
// Ejecuta el juego en modo demo // Ejecuta el juego en modo demo
void Director::runDemoGame() void Director::runDemoGame()
{ {

View File

@@ -81,10 +81,10 @@ private:
// Carga las musicas del juego // Carga las musicas del juego
void loadMusics(); void loadMusics();
// Descarga los sonidos del juego // Libera la memoria usada por los sonidos del juego
void deleteSounds(); void deleteSounds();
// Descarga las músicas del juego // Libera la memoria usada por las músicas del juego
void deleteMusics(); void deleteMusics();
// Comprueba los parametros del programa // Comprueba los parametros del programa
@@ -93,22 +93,22 @@ private:
// Crea la carpeta del sistema donde guardar datos // Crea la carpeta del sistema donde guardar datos
void createSystemFolder(std::string folder); void createSystemFolder(std::string folder);
// Ejecuta la seccion de juego con el logo // Ejecuta la sección con el logo
void runLogo(); void runLogo();
// Ejecuta la seccion de juego de la introducción // Ejecuta la sección con la secuencia de introducción
void runIntro(); void runIntro();
// Ejecuta la seccion de juego con el titulo y los menus // Ejecuta la sección con el titulo del juego
void runTitle(); void runTitle();
// Ejecuta la seccion de juego donde se juega // Ejecuta la sección donde se juega al juego
void runGame(); void runGame();
// Ejecuta la parte donde se muestran las instrucciones // Ejecuta la sección donde se muestran las instrucciones
void runInstructions(); void runInstructions();
// Ejecuta la parte donde se muestra la tabla de puntuaciones // Ejecuta la sección donde se muestra la tabla de puntuaciones
void runHiScoreTable(); void runHiScoreTable();
// Ejecuta el juego en modo demo // Ejecuta el juego en modo demo

View File

@@ -1,4 +1,5 @@
#include "scoreboard.h" #include "scoreboard.h"
#include <math.h>
// Constructor // Constructor
Scoreboard::Scoreboard(SDL_Renderer *renderer, Screen *screen, Asset *asset, Lang *lang, options_t *options) Scoreboard::Scoreboard(SDL_Renderer *renderer, Screen *screen, Asset *asset, Lang *lang, options_t *options)
@@ -35,6 +36,8 @@ Scoreboard::Scoreboard(SDL_Renderer *renderer, Screen *screen, Asset *asset, Lan
powerMeterSprite = new Sprite(offsetPowerMeter.x - 20, offsetPowerMeter.y, 40, 7, gamePowerMeterTexture); powerMeterSprite = new Sprite(offsetPowerMeter.x - 20, offsetPowerMeter.y, 40, 7, gamePowerMeterTexture);
textScoreBoard = new Text(asset->get("8bithud.png"), asset->get("8bithud.txt"), renderer); textScoreBoard = new Text(asset->get("8bithud.png"), asset->get("8bithud.txt"), renderer);
background = nullptr;
// Crea la textura de fondo // Crea la textura de fondo
createBackgroundTexture(); createBackgroundTexture();
@@ -51,7 +54,10 @@ Scoreboard::~Scoreboard()
delete gamePowerMeterTexture; delete gamePowerMeterTexture;
delete powerMeterSprite; delete powerMeterSprite;
delete textScoreBoard; delete textScoreBoard;
if (background)
{
SDL_DestroyTexture(background); SDL_DestroyTexture(background);
}
for (auto texture : panelTexture) for (auto texture : panelTexture)
{ {
if (texture) if (texture)
@@ -367,7 +373,7 @@ void Scoreboard::createPanelTextures()
// Elimina las texturas en caso de existir // Elimina las texturas en caso de existir
for (auto texture : panelTexture) for (auto texture : panelTexture)
{ {
if (texture) if (texture != nullptr)
{ {
SDL_DestroyTexture(texture); SDL_DestroyTexture(texture);
} }

View File

@@ -245,7 +245,7 @@ void Title::checkInput()
if (index) if (index)
{ {
if (section->subsection == SUBSECTION_TITLE_2 || ALLOW_TITLE_ANIMATION_SKIP) if (section->subsection == SUBSECTION_TITLE_2 || ALLOW_TITLE_ANIMATION_SKIP)
{ // No se puede empezar a jugar durante la animación del titulo { // No se puede empezar a jugar durante la animación del titulo a menos que se permita
fade->activate(); fade->activate();
postFade = index; postFade = index;
} }