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

View File

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

View File

@@ -1,4 +1,5 @@
#include "scoreboard.h"
#include <math.h>
// Constructor
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);
textScoreBoard = new Text(asset->get("8bithud.png"), asset->get("8bithud.txt"), renderer);
background = nullptr;
// Crea la textura de fondo
createBackgroundTexture();
@@ -51,7 +54,10 @@ Scoreboard::~Scoreboard()
delete gamePowerMeterTexture;
delete powerMeterSprite;
delete textScoreBoard;
SDL_DestroyTexture(background);
if (background)
{
SDL_DestroyTexture(background);
}
for (auto texture : panelTexture)
{
if (texture)
@@ -310,7 +316,7 @@ void Scoreboard::recalculateAnchors()
// Constantes para definir las zonas del panel: 4 filas y 1 columna
const int rowSize = rect.h / 4;
const int textHeight = 7;
// Filas
const int row1 = (rowSize * 0) + (textHeight / 2);
const int row2 = (rowSize * 1) + (textHeight / 2) - 1;
@@ -367,7 +373,7 @@ void Scoreboard::createPanelTextures()
// Elimina las texturas en caso de existir
for (auto texture : panelTexture)
{
if (texture)
if (texture != nullptr)
{
SDL_DestroyTexture(texture);
}

View File

@@ -245,7 +245,7 @@ void Title::checkInput()
if (index)
{
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();
postFade = index;
}