Memory leaks regarding sound hopefully solved...

This commit is contained in:
2021-02-21 12:43:23 +01:00
parent a5e3cb172e
commit b59e3e46c4

View File

@@ -8,6 +8,9 @@
#include "volcano.h"
#include <iostream>
#define CLOSE_SOUND(a) if (a != nullptr) JA_DeleteSound(a); a = nullptr
#define CLOSE_MUSIC(a) if (a != nullptr) JA_DeleteMusic(a); a = nullptr
void allocatePointers()
{
// Textures
@@ -47,13 +50,13 @@ void deletePointers()
delete prog.sprite;
// Sounds
JA_DeleteSound(game.sound_drop_enemy);
JA_DeleteSound(game.sound_drop_splat);
JA_DeleteSound(menu.sound_logo);
JA_DeleteSound(menu.sound_start);
JA_DeleteSound(player.sound_coin);
JA_DeleteSound(player.sound_death);
JA_DeleteSound(player.sound_jump);
CLOSE_SOUND(game.sound_drop_enemy);
CLOSE_SOUND(game.sound_drop_splat);
CLOSE_SOUND(menu.sound_logo);
CLOSE_SOUND(menu.sound_start);
CLOSE_SOUND(player.sound_coin);
CLOSE_SOUND(player.sound_death);
CLOSE_SOUND(player.sound_jump);
// Music
//game.music = new Mix_Music();
@@ -75,7 +78,7 @@ bool loadTextureFromFile(LTexture *texture, std::string path, SDL_Renderer *rend
return success;
}
void CloseSound(JA_Sound sound)
/*void CloseSound(JA_Sound sound)
{
if (sound != nullptr)
JA_DeleteSound(sound);
@@ -87,7 +90,7 @@ void CloseMusic(JA_Music music)
if (music != nullptr)
JA_DeleteMusic(music);
music = nullptr;
}
}*/
void ClosePicture(LTexture *picture)
{
@@ -612,9 +615,10 @@ void IniMenu()
void EndMenu()
{
CloseSound(menu.sound_logo);
CloseSound(menu.sound_start);
CloseMusic(menu.music);
CLOSE_SOUND(menu.sound_logo);
CLOSE_SOUND(menu.sound_start);
CLOSE_MUSIC(menu.music);
ClosePicture(menu.sprite);
ClosePicture(menu.sprite_animation);
menu.enabled = false;
@@ -780,9 +784,9 @@ void IniPlayer()
void EndPlayer()
{
ClosePicture(player.sprite);
CloseSound(player.sound_jump);
CloseSound(player.sound_death);
CloseSound(player.sound_coin);
CLOSE_SOUND(player.sound_jump);
CLOSE_SOUND(player.sound_death);
CLOSE_SOUND(player.sound_coin);
}
void IniHud()
@@ -857,11 +861,11 @@ void EndGame()
EndPlayer();
EndHud();
EndMap();
CloseSound(game.sound_drop_enemy);
CloseSound(game.sound_drop_splat);
CLOSE_SOUND(game.sound_drop_enemy);
CLOSE_SOUND(game.sound_drop_splat);
if (JA_GetMusicState() == JA_MUSIC_PLAYING)
JA_StopMusic();
CloseMusic(game.music);
CLOSE_MUSIC(game.music);
game.enabled = false;
}
@@ -2292,18 +2296,18 @@ int main(int argc, char *args[])
}
}
// Finalitzar la m<>sica, els samples i el audio
CloseSound(player.sound_jump);
CloseSound(player.sound_death);
CloseSound(player.sound_coin);
CloseSound(menu.sound_logo);
CloseSound(menu.sound_start);
CloseSound(game.sound_drop_enemy);
CloseSound(game.sound_drop_splat);
CLOSE_SOUND(player.sound_jump);
CLOSE_SOUND(player.sound_death);
CLOSE_SOUND(player.sound_coin);
CLOSE_SOUND(menu.sound_logo);
CLOSE_SOUND(menu.sound_start);
CLOSE_SOUND(game.sound_drop_enemy);
CLOSE_SOUND(game.sound_drop_splat);
JA_StopMusic();
CloseMusic(game.music);
CloseMusic(menu.music);
CLOSE_MUSIC(game.music);
CLOSE_MUSIC(menu.music);
//Mix_CloseAudio();