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