From debcc3409e671e45fc749065b8dc50adceccabd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Valor=20Mart=C3=ADnez?= Date: Fri, 21 Feb 2025 15:55:44 +0100 Subject: [PATCH] Sanejar codi --- source/{gamestate_credits.cpp => credits.cpp} | 2 +- source/{gamestate_credits.h => credits.h} | 0 source/{gamestate_demo.cpp => demo.cpp} | 2 +- source/{gamestate_demo.h => demo.h} | 0 source/director.cpp | 72 ++-- source/director.h | 49 ++- source/{gamestate_ending.cpp => ending.cpp} | 2 +- source/{gamestate_ending.h => ending.h} | 0 source/{gamestate_ending2.cpp => ending2.cpp} | 29 +- source/{gamestate_ending2.h => ending2.h} | 30 +- source/{gamestate_game.cpp => game.cpp} | 45 ++- source/{gamestate_game.h => game.h} | 0 ...{gamestate_game_over.cpp => game_over.cpp} | 2 +- source/{gamestate_game_over.h => game_over.h} | 0 source/jail_audio.cpp | 314 +++++++++++------- source/jail_audio.h | 34 +- ..._loading_screen.cpp => loading_screen.cpp} | 25 +- ...tate_loading_screen.h => loading_screen.h} | 0 source/{gamestate_logo.cpp => logo.cpp} | 23 +- source/{gamestate_logo.h => logo.h} | 24 +- source/player.cpp | 1 + source/{gamestate_title.cpp => title.cpp} | 2 +- source/{gamestate_title.h => title.h} | 0 23 files changed, 375 insertions(+), 281 deletions(-) rename source/{gamestate_credits.cpp => credits.cpp} (99%) rename source/{gamestate_credits.h => credits.h} (100%) rename source/{gamestate_demo.cpp => demo.cpp} (99%) rename source/{gamestate_demo.h => demo.h} (100%) rename source/{gamestate_ending.cpp => ending.cpp} (99%) rename source/{gamestate_ending.h => ending.h} (100%) rename source/{gamestate_ending2.cpp => ending2.cpp} (95%) rename source/{gamestate_ending2.h => ending2.h} (87%) rename source/{gamestate_game.cpp => game.cpp} (93%) rename source/{gamestate_game.h => game.h} (100%) rename source/{gamestate_game_over.cpp => game_over.cpp} (99%) rename source/{gamestate_game_over.h => game_over.h} (100%) rename source/{gamestate_loading_screen.cpp => loading_screen.cpp} (93%) rename source/{gamestate_loading_screen.h => loading_screen.h} (100%) rename source/{gamestate_logo.cpp => logo.cpp} (92%) rename source/{gamestate_logo.h => logo.h} (82%) rename source/{gamestate_title.cpp => title.cpp} (99%) rename source/{gamestate_title.h => title.h} (100%) diff --git a/source/gamestate_credits.cpp b/source/credits.cpp similarity index 99% rename from source/gamestate_credits.cpp rename to source/credits.cpp index 0831e3a..afa6cd9 100644 --- a/source/gamestate_credits.cpp +++ b/source/credits.cpp @@ -1,4 +1,4 @@ -#include "gamestate_credits.h" +#include "credits.h" #include // Para SDL_BLENDMODE_BLEND #include // Para SDL_GetError #include // Para SDL_PIXELFORMAT_RGBA8888 diff --git a/source/gamestate_credits.h b/source/credits.h similarity index 100% rename from source/gamestate_credits.h rename to source/credits.h diff --git a/source/gamestate_demo.cpp b/source/demo.cpp similarity index 99% rename from source/gamestate_demo.cpp rename to source/demo.cpp index e2090b8..caf028d 100644 --- a/source/gamestate_demo.cpp +++ b/source/demo.cpp @@ -1,4 +1,4 @@ -#include "gamestate_demo.h" +#include "demo.h" #include // Para SDL_Rect #include // Para SDL_GetTicks #include // Para basic_ostream, basic_ios, operator<<, cout diff --git a/source/gamestate_demo.h b/source/demo.h similarity index 100% rename from source/gamestate_demo.h rename to source/demo.h diff --git a/source/director.cpp b/source/director.cpp index 8ce4c7f..749a251 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -1,41 +1,41 @@ #include "director.h" -#include // Para SDL_Init, SDL_Quit, SDL_INIT_E... -#include // Para AUDIO_S16 -#include // Para SDL_BLENDMODE_BLEND -#include // Para SDL_GetError -#include // Para SDL_CONTROLLER_BUTTON_B, SDL_C... -#include // Para SDL_SetHint, SDL_HINT_RENDER_D... -#include // Para SDL_SCANCODE_A, SDL_SCANCODE_E... -#include // Para Uint32 -#include // Para SDL_GetTicks -#include // Para errno, EEXIST, EACCES, ENAMETO... -#include // Para printf, perror -#include // Para strcmp -#include // Para mkdir, stat, S_IRWXU -#include // Para getuid -#include // Para exit, EXIT_FAILURE, srand -#include // Para basic_ofstream, basic_ifstream -#include // Para basic_ostream, operator<<, cout -#include // Para basic_string, operator+, char_... -#include // Para vector +#include // Para SDL_Init, SDL_Quit, SDL_INIT_E... +#include // Para AUDIO_S16 +#include // Para SDL_BLENDMODE_BLEND +#include // Para SDL_GetError +#include // Para SDL_CONTROLLER_BUTTON_B, SDL_C... +#include // Para SDL_SetHint, SDL_HINT_RENDER_D... +#include // Para SDL_SCANCODE_A, SDL_SCANCODE_E... +#include // Para Uint32 +#include // Para SDL_GetTicks +#include // Para errno, EEXIST, EACCES, ENAMETO... +#include // Para printf, perror +#include // Para strcmp +#include // Para mkdir, stat, S_IRWXU +#include // Para getuid +#include // Para exit, EXIT_FAILURE, srand +#include // Para basic_ofstream, basic_ifstream +#include // Para basic_ostream, operator<<, cout +#include // Para basic_string, operator+, char_... +#include // Para vector #include -#include "asset.h" // Para Asset, assetType -#include "const.h" // Para SECTION_LOGO, SECTION_TITLE -#include "debug.h" // Para Debug -#include "gamestate_credits.h" // Para Credits -#include "gamestate_demo.h" // Para Demo -#include "gamestate_ending.h" // Para Ending -#include "gamestate_ending2.h" // Para Ending2 -#include "gamestate_game.h" // Para Game -#include "gamestate_game_over.h" // Para GameOver -#include "gamestate_loading_screen.h" // Para LoadingScreen -#include "gamestate_logo.h" // Para Logo -#include "gamestate_title.h" // Para Title -#include "input.h" // Para Input, inputs_e -#include "jail_audio.h" // Para JA_GetMusicState, JA_DeleteMusic -#include "resource.h" // Para Resource -#include "screen.h" // Para Screen, FILTER_NEAREST, FILTER... -#include "utils.h" // Para options_t, section_t, op_notif... +#include "asset.h" // Para Asset, assetType +#include "const.h" // Para SECTION_LOGO, SECTION_TITLE +#include "debug.h" // Para Debug +#include "credits.h" // Para Credits +#include "demo.h" // Para Demo +#include "ending.h" // Para Ending +#include "ending2.h" // Para Ending2 +#include "game.h" // Para Game +#include "game_over.h" // Para GameOver +#include "loading_screen.h" // Para LoadingScreen +#include "logo.h" // Para Logo +#include "title.h" // Para Title +#include "input.h" // Para Input, inputs_e +#include "jail_audio.h" // Para JA_GetMusicState, JA_DeleteMusic +#include "resource.h" // Para Resource +#include "screen.h" // Para Screen, FILTER_NEAREST, FILTER... +#include "utils.h" // Para options_t, section_t, op_notif... #ifndef _WIN32 #include diff --git a/source/director.h b/source/director.h index 3c43a52..5fb6e14 100644 --- a/source/director.h +++ b/source/director.h @@ -1,39 +1,30 @@ #pragma once -#include // Para SDL_Renderer -#include // Para SDL_Window -#include // Para string, basic_string -class Asset; -class Credits; -class Debug; -class Demo; -class Ending2; -class Ending; -class Game; -class GameOver; -class Input; -class LoadingScreen; -class Logo; -class Resource; -class Screen; -class Title; -struct JA_Music_t; -struct options_t; -struct section_t; +#include // for SDL_Renderer +#include // for SDL_Window +#include // for string +class Asset; // lines 6-6 +class Debug; // lines 8-8 +class Input; // lines 14-14 +class Resource; // lines 17-17 +class Screen; // lines 18-18 +struct JA_Music_t; // lines 20-20 +struct options_t; // lines 21-21 +struct section_t; // lines 22-22 class Director { private: // Objetos y punteros - SDL_Window *window; // La ventana donde dibujamos - SDL_Renderer *renderer; // El renderizador de la ventana - Screen *screen; // Objeto encargado de dibujar en pantalla - Resource *resource; // Objeto con los recursos - Asset *asset; // Objeto que gestiona todos los ficheros de recursos - Input *input; // Objeto Input para gestionar las entradas - Debug *debug; // Objeto para getsionar la información de debug - struct options_t *options; // Variable con todas las opciones del programa - section_t *section; // Sección y subsección actual del programa; + SDL_Window *window; // La ventana donde dibujamos + SDL_Renderer *renderer; // El renderizador de la ventana + Screen *screen; // Objeto encargado de dibujar en pantalla + Resource *resource; // Objeto con los recursos + Asset *asset; // Objeto que gestiona todos los ficheros de recursos + Input *input; // Objeto Input para gestionar las entradas + Debug *debug; // Objeto para getsionar la información de debug + struct options_t *options; // Variable con todas las opciones del programa + section_t *section; // Sección y subsección actual del programa; // Variables JA_Music_t *music; // Musica del titulo diff --git a/source/gamestate_ending.cpp b/source/ending.cpp similarity index 99% rename from source/gamestate_ending.cpp rename to source/ending.cpp index 3ab6d95..40096b8 100644 --- a/source/gamestate_ending.cpp +++ b/source/ending.cpp @@ -1,4 +1,4 @@ -#include "gamestate_ending.h" +#include "ending.h" #include // Para SDL_BLENDMODE_BLEND #include // Para SDL_GetError #include // Para SDL_PIXELFORMAT_RGBA8888 diff --git a/source/gamestate_ending.h b/source/ending.h similarity index 100% rename from source/gamestate_ending.h rename to source/ending.h diff --git a/source/gamestate_ending2.cpp b/source/ending2.cpp similarity index 95% rename from source/gamestate_ending2.cpp rename to source/ending2.cpp index 4771319..977223e 100644 --- a/source/gamestate_ending2.cpp +++ b/source/ending2.cpp @@ -1,17 +1,18 @@ -#include "gamestate_ending2.h" -#include // Para SDL_BLENDMODE_BLEND -#include // Para SDL_GetTicks -#include // Para max, min, replace -#include "animatedsprite.h" // Para AnimatedSprite -#include "asset.h" // Para Asset -#include "const.h" // Para GAMECANVAS_HEIGHT, GAMECANVAS_CENTER_X -#include "input.h" // Para Input, REPEAT_FALSE, inputs_e -#include "jail_audio.h" // Para JA_SetVolume, JA_DeleteMusic, JA_Loa... -#include "movingsprite.h" // Para MovingSprite -#include "resource.h" // Para Resource -#include "screen.h" // Para Screen -#include "text.h" // Para Text -#include "texture.h" // Para Texture +#include "ending2.h" +#include // for SDL_BLENDMODE_BLEND +#include // for SDL_GetTicks +#include // for max, min, replace +#include "animatedsprite.h" // for AnimatedSprite +#include "asset.h" // for Asset +#include "const.h" // for GAMECANVAS_HEIGHT, GAMECANVAS_CENTER_X +#include "input.h" // for Input, REPEAT_FALSE, inputs_e +#include "jail_audio.h" // for JA_SetVolume, JA_DeleteMusic, JA_Loa... +#include "movingsprite.h" // for MovingSprite +#include "resource.h" // for Resource +#include "screen.h" // for Screen +#include "text.h" // for Text +#include "texture.h" // for Texture +#include "utils.h" // for color_t, stringToColor, options_t // Constructor Ending2::Ending2(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section) diff --git a/source/gamestate_ending2.h b/source/ending2.h similarity index 87% rename from source/gamestate_ending2.h rename to source/ending2.h index 1eda1ce..a2988e1 100644 --- a/source/gamestate_ending2.h +++ b/source/ending2.h @@ -1,19 +1,21 @@ #pragma once -#include // Para SDL_Event -#include // Para SDL_Renderer -#include // Para Uint32 -#include // Para string -#include // Para vector -#include "utils.h" // Para color_t -class AnimatedSprite; -class Asset; -class Input; -class MovingSprite; -class Resource; -class Screen; -class Text; -struct JA_Music_t; +#include // for SDL_Event +#include // for SDL_Renderer +#include // for Uint32 +#include // for string +#include // for vector +class AnimatedSprite; // lines 9-9 +class Asset; // lines 10-10 +class Input; // lines 11-11 +class MovingSprite; // lines 12-12 +class Resource; // lines 13-13 +class Screen; // lines 14-14 +class Text; // lines 15-15 +struct JA_Music_t; // lines 16-16 +struct color_t; +struct options_t; +struct section_t; class Ending2 { diff --git a/source/gamestate_game.cpp b/source/game.cpp similarity index 93% rename from source/gamestate_game.cpp rename to source/game.cpp index d7556d8..666d93c 100644 --- a/source/gamestate_game.cpp +++ b/source/game.cpp @@ -1,26 +1,25 @@ -#include "gamestate_game.h" -#include // Para SDL_BLENDMODE_BLEND -#include // Para SDL_GetError -#include // Para SDL_PIXELFORMAT_RGBA8888 -#include // Para SDL_SCANCODE_A, SDL_SCANCODE_D, SDL_... -#include // Para SDL_GetTicks -#include // Para char_traits, basic_ostream, operator<< -#include // Para vector -#include "asset.h" // Para Asset -#include "cheevos.h" // Para Cheevos -#include "const.h" // Para PLAY_AREA_HEIGHT, GAMECANVAS_WIDTH -#include "debug.h" // Para Debug -#include "input.h" // Para Input, REPEAT_FALSE, inputs_e -#include "item.h" // Para item_t -#include "item_tracker.h" // Para ItemTracker -#include "jail_audio.h" // Para JA_PauseMusic, JA_PlaySound, JA_Resu... -#include "resource.h" // Para res_room_t, Resource -#include "room.h" // Para Room, room_t -#include "room_tracker.h" // Para RoomTracker -#include "screen.h" // Para Screen -#include "stats.h" // Para Stats -#include "text.h" // Para Text, TXT_CENTER, TXT_COLOR -#include "utils.h" // Para options_t, color_t, cheat_t, stringT... +#include "game.h" +#include // for SDL_BLENDMODE_BLEND +#include // for SDL_GetError +#include // for SDL_PIXELFORMAT_RGBA8888 +#include // for SDL_SCANCODE_A, SDL_SCANCODE_D, SDL_... +#include // for SDL_GetTicks +#include // for basic_ostream, operator<<, cout, endl +#include // for vector +#include "asset.h" // for Asset +#include "cheevos.h" // for Cheevos +#include "const.h" // for PLAY_AREA_HEIGHT, GAMECANVAS_WIDTH +#include "debug.h" // for Debug +#include "input.h" // for Input, REPEAT_FALSE, inputs_e +#include "item_tracker.h" // for ItemTracker +#include "jail_audio.h" // for JA_PauseMusic, JA_PlaySound, JA_Resu... +#include "resource.h" // for Resource, res_room_t +#include "room.h" // for Room, room_t +#include "room_tracker.h" // for RoomTracker +#include "screen.h" // for Screen +#include "stats.h" // for Stats +#include "text.h" // for Text, TXT_CENTER, TXT_COLOR +#include "utils.h" // for options_t, cheat_t, stringToColor // Constructor Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, Input *input, section_t *section, Debug *debug) diff --git a/source/gamestate_game.h b/source/game.h similarity index 100% rename from source/gamestate_game.h rename to source/game.h diff --git a/source/gamestate_game_over.cpp b/source/game_over.cpp similarity index 99% rename from source/gamestate_game_over.cpp rename to source/game_over.cpp index 8e3372d..a005f77 100644 --- a/source/gamestate_game_over.cpp +++ b/source/game_over.cpp @@ -1,4 +1,4 @@ -#include "gamestate_game_over.h" +#include "game_over.h" #include // Para SDL_GetTicks #include // Para min, max #include // Para basic_string, operator+, to_string, char... diff --git a/source/gamestate_game_over.h b/source/game_over.h similarity index 100% rename from source/gamestate_game_over.h rename to source/game_over.h diff --git a/source/jail_audio.cpp b/source/jail_audio.cpp index 46690ea..7df6ae1 100644 --- a/source/jail_audio.cpp +++ b/source/jail_audio.cpp @@ -1,41 +1,47 @@ #include "jail_audio.h" -#include "stb_vorbis.c" -#include -#include +#include // for SDL_RWFromMem +#include // for SDL_GetTicks +#include // for uint8_t, uint32_t +#include // for NULL, fseek, fclose, fopen, fread, ftell +#include // for free, malloc +#include "stb_vorbis.c" // for stb_vorbis_decode_memory constexpr int JA_MAX_SIMULTANEOUS_CHANNELS = 20; -struct JA_Sound_t { - Uint32 length {0}; - Uint8* buffer {NULL}; +struct JA_Sound_t +{ + Uint32 length{0}; + Uint8 *buffer{NULL}; }; -struct JA_Channel_t { - JA_Sound_t *sound; - int pos {0}; - int times {0}; - JA_Channel_state state { JA_CHANNEL_FREE }; +struct JA_Channel_t +{ + JA_Sound_t *sound; + int pos{0}; + int times{0}; + JA_Channel_state state{JA_CHANNEL_FREE}; }; -struct JA_Music_t { - int samples {0}; - Uint32 length {0}; - int pos {0}; - int times {0}; - short* output {NULL}; - JA_Music_state state {JA_MUSIC_INVALID}; +struct JA_Music_t +{ + int samples{0}; + Uint32 length{0}; + int pos{0}; + int times{0}; + short *output{NULL}; + JA_Music_state state{JA_MUSIC_INVALID}; }; -JA_Music_t *current_music{NULL}; -JA_Channel_t channels[JA_MAX_SIMULTANEOUS_CHANNELS]; +JA_Music_t *current_music{NULL}; +JA_Channel_t channels[JA_MAX_SIMULTANEOUS_CHANNELS]; -int JA_freq {48000}; -SDL_AudioFormat JA_format {AUDIO_S16}; -Uint8 JA_channels {2}; -int JA_musicVolume = 128; -int JA_soundVolume = 64; -bool JA_musicEnabled = true; -bool JA_soundEnabled = true; +int JA_freq{48000}; +SDL_AudioFormat JA_format{AUDIO_S16}; +Uint8 JA_channels{2}; +int JA_musicVolume = 128; +int JA_soundVolume = 64; +bool JA_musicEnabled = true; +bool JA_soundEnabled = true; SDL_AudioDeviceID sdlAudioDevice = 0; bool fading = false; @@ -43,49 +49,67 @@ int fade_start_time; int fade_duration; int fade_initial_volume; -void audioCallback(void * userdata, uint8_t * stream, int len) { +void audioCallback(void *userdata, uint8_t *stream, int len) +{ SDL_memset(stream, 0, len); - if (current_music != NULL && current_music->state == JA_MUSIC_PLAYING) { + if (current_music != NULL && current_music->state == JA_MUSIC_PLAYING) + { int volume = JA_musicVolume; - if (fading) { + if (fading) + { int time = SDL_GetTicks(); - if (time > (fade_start_time+fade_duration)) { + if (time > (fade_start_time + fade_duration)) + { fading = false; current_music->pos = 0; current_music->state = JA_MUSIC_STOPPED; volume = 0; - } else { + } + else + { const int time_passed = time - fade_start_time; const float percent = (float)time_passed / (float)fade_duration; volume = JA_musicVolume * (1.0 - percent); } } const int size = SDL_min(len, current_music->length - current_music->pos); - SDL_MixAudioFormat(stream, (Uint8*)(current_music->output)+current_music->pos, AUDIO_S16, size, volume); + SDL_MixAudioFormat(stream, (Uint8 *)(current_music->output) + current_music->pos, AUDIO_S16, size, volume); current_music->pos += size; - if (size < len) { - if (current_music->times != 0) { - SDL_MixAudioFormat(stream+size, (Uint8*)current_music->output, AUDIO_S16, len-size, volume); - current_music->pos = len-size; - if (current_music->times > 0) current_music->times--; - } else { + if (size < len) + { + if (current_music->times != 0) + { + SDL_MixAudioFormat(stream + size, (Uint8 *)current_music->output, AUDIO_S16, len - size, volume); + current_music->pos = len - size; + if (current_music->times > 0) + current_music->times--; + } + else + { current_music->pos = 0; current_music->state = JA_MUSIC_STOPPED; } } } // Mixar els channels mi amol - for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) { - if (channels[i].state == JA_CHANNEL_PLAYING) { + for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) + { + if (channels[i].state == JA_CHANNEL_PLAYING) + { const int size = SDL_min(len, channels[i].sound->length - channels[i].pos); SDL_MixAudioFormat(stream, channels[i].sound->buffer + channels[i].pos, AUDIO_S16, size, JA_soundVolume); channels[i].pos += size; - if (size < len) { - if (channels[i].times != 0) { - SDL_MixAudioFormat(stream + size, channels[i].sound->buffer, AUDIO_S16, len-size, JA_soundVolume); - channels[i].pos = len-size; - if (channels[i].times > 0) channels[i].times--; - } else { + if (size < len) + { + if (channels[i].times != 0) + { + SDL_MixAudioFormat(stream + size, channels[i].sound->buffer, AUDIO_S16, len - size, JA_soundVolume); + channels[i].pos = len - size; + if (channels[i].times > 0) + channels[i].times--; + } + else + { JA_StopChannel(i); } } @@ -99,18 +123,21 @@ void JA_Init(const int freq, const SDL_AudioFormat format, const int channels) JA_format = format; JA_channels = channels; SDL_AudioSpec audioSpec{JA_freq, JA_format, JA_channels, 0, 1024, 0, 0, audioCallback, NULL}; - if (sdlAudioDevice != 0) SDL_CloseAudioDevice(sdlAudioDevice); + if (sdlAudioDevice != 0) + SDL_CloseAudioDevice(sdlAudioDevice); sdlAudioDevice = SDL_OpenAudioDevice(NULL, 0, &audioSpec, NULL, 0); SDL_PauseAudioDevice(sdlAudioDevice, 0); } -void JA_Quit() { +void JA_Quit() +{ SDL_PauseAudioDevice(sdlAudioDevice, 1); - if (sdlAudioDevice != 0) SDL_CloseAudioDevice(sdlAudioDevice); + if (sdlAudioDevice != 0) + SDL_CloseAudioDevice(sdlAudioDevice); sdlAudioDevice = 0; } -JA_Music_t *JA_LoadMusic(Uint8* buffer, Uint32 length) +JA_Music_t *JA_LoadMusic(Uint8 *buffer, Uint32 length) { int chan, samplerate; JA_Music_t *music = new JA_Music_t(); @@ -119,14 +146,15 @@ JA_Music_t *JA_LoadMusic(Uint8* buffer, Uint32 length) SDL_AudioCVT cvt; SDL_BuildAudioCVT(&cvt, AUDIO_S16, chan, samplerate, JA_format, JA_channels, JA_freq); - if (cvt.needed) { + if (cvt.needed) + { cvt.len = music->samples * chan * 2; music->length = cvt.len; - cvt.buf = (Uint8 *) SDL_malloc(cvt.len * cvt.len_mult); + cvt.buf = (Uint8 *)SDL_malloc(cvt.len * cvt.len_mult); SDL_memcpy(cvt.buf, music->output, cvt.len); SDL_ConvertAudio(&cvt); free(music->output); - music->output = (short*)cvt.buf; + music->output = (short *)cvt.buf; } music->length = music->samples * chan * 2; music->pos = 0; @@ -135,15 +163,16 @@ JA_Music_t *JA_LoadMusic(Uint8* buffer, Uint32 length) return music; } -JA_Music_t *JA_LoadMusic(const char* filename) +JA_Music_t *JA_LoadMusic(const char *filename) { // [RZC 28/08/22] Carreguem primer el arxiu en memòria i després el descomprimim. Es algo més rapid. FILE *f = fopen(filename, "rb"); fseek(f, 0, SEEK_END); long fsize = ftell(f); fseek(f, 0, SEEK_SET); - Uint8 *buffer = (Uint8*)malloc(fsize + 1); - if (fread(buffer, fsize, 1, f)!=1) return NULL; + Uint8 *buffer = (Uint8 *)malloc(fsize + 1); + if (fread(buffer, fsize, 1, f) != 1) + return NULL; fclose(f); JA_Music_t *music = JA_LoadMusic(buffer, fsize); @@ -155,9 +184,11 @@ JA_Music_t *JA_LoadMusic(const char* filename) void JA_PlayMusic(JA_Music_t *music, const int loop) { - if (!JA_musicEnabled) return; + if (!JA_musicEnabled) + return; - if (current_music != NULL) { + if (current_music != NULL) + { current_music->pos = 0; current_music->state = JA_MUSIC_STOPPED; } @@ -169,33 +200,41 @@ void JA_PlayMusic(JA_Music_t *music, const int loop) void JA_PauseMusic() { - if (!JA_musicEnabled) return; + if (!JA_musicEnabled) + return; - if (current_music == NULL || current_music->state == JA_MUSIC_INVALID) return; + if (current_music == NULL || current_music->state == JA_MUSIC_INVALID) + return; current_music->state = JA_MUSIC_PAUSED; } void JA_ResumeMusic() { - if (!JA_musicEnabled) return; + if (!JA_musicEnabled) + return; - if (current_music == NULL || current_music->state == JA_MUSIC_INVALID) return; + if (current_music == NULL || current_music->state == JA_MUSIC_INVALID) + return; current_music->state = JA_MUSIC_PLAYING; } void JA_StopMusic() { - if (!JA_musicEnabled) return; + if (!JA_musicEnabled) + return; - if (current_music == NULL || current_music->state == JA_MUSIC_INVALID) return; + if (current_music == NULL || current_music->state == JA_MUSIC_INVALID) + return; current_music->pos = 0; current_music->state = JA_MUSIC_STOPPED; } void JA_FadeOutMusic(const int milliseconds) { - if (!JA_musicEnabled) return; - if (current_music == NULL || current_music->state == JA_MUSIC_INVALID) return; + if (!JA_musicEnabled) + return; + if (current_music == NULL || current_music->state == JA_MUSIC_INVALID) + return; fading = true; fade_start_time = SDL_GetTicks(); @@ -203,64 +242,71 @@ void JA_FadeOutMusic(const int milliseconds) fade_initial_volume = JA_musicVolume; } -JA_Music_state JA_GetMusicState() { - if (!JA_musicEnabled) return JA_MUSIC_DISABLED; +JA_Music_state JA_GetMusicState() +{ + if (!JA_musicEnabled) + return JA_MUSIC_DISABLED; - if (current_music == NULL) return JA_MUSIC_INVALID; + if (current_music == NULL) + return JA_MUSIC_INVALID; return current_music->state; } -void JA_DeleteMusic(JA_Music_t *music) { - if (current_music == music) current_music = NULL; +void JA_DeleteMusic(JA_Music_t *music) +{ + if (current_music == music) + current_music = NULL; free(music->output); delete music; } int JA_SetMusicVolume(int volume) { - JA_musicVolume = volume > 128 ? 128 : volume < 0 ? 0 : volume; + JA_musicVolume = volume > 128 ? 128 : volume < 0 ? 0 + : volume; return JA_musicVolume; } void JA_SetMusicPosition(float value) { - if (!current_music) return; + if (!current_music) + return; current_music->pos = value * JA_freq; } float JA_GetMusicPosition() { - if (!current_music) return 0; - return float(current_music->pos)/float(JA_freq); + if (!current_music) + return 0; + return float(current_music->pos) / float(JA_freq); } void JA_EnableMusic(const bool value) { - if (!value && current_music != NULL && current_music->state==JA_MUSIC_PLAYING) JA_StopMusic(); + if (!value && current_music != NULL && current_music->state == JA_MUSIC_PLAYING) + JA_StopMusic(); JA_musicEnabled = value; } - - - - -JA_Sound_t *JA_NewSound(Uint8* buffer, Uint32 length) { +JA_Sound_t *JA_NewSound(Uint8 *buffer, Uint32 length) +{ JA_Sound_t *sound = new JA_Sound_t(); sound->buffer = buffer; sound->length = length; return sound; } -JA_Sound_t *JA_LoadSound(uint8_t* buffer, uint32_t size) { +JA_Sound_t *JA_LoadSound(uint8_t *buffer, uint32_t size) +{ JA_Sound_t *sound = new JA_Sound_t(); SDL_AudioSpec wavSpec; - SDL_LoadWAV_RW(SDL_RWFromMem(buffer, size),1, &wavSpec, &sound->buffer, &sound->length); - + SDL_LoadWAV_RW(SDL_RWFromMem(buffer, size), 1, &wavSpec, &sound->buffer, &sound->length); + SDL_AudioCVT cvt; SDL_BuildAudioCVT(&cvt, wavSpec.format, wavSpec.channels, wavSpec.freq, JA_format, JA_channels, JA_freq); cvt.len = sound->length; - cvt.buf = (Uint8 *) SDL_malloc(cvt.len * cvt.len_mult); + cvt.buf = (Uint8 *)SDL_malloc(cvt.len * cvt.len_mult); SDL_memcpy(cvt.buf, sound->buffer, sound->length); SDL_ConvertAudio(&cvt); SDL_FreeWAV(sound->buffer); @@ -270,7 +316,8 @@ JA_Sound_t *JA_LoadSound(uint8_t* buffer, uint32_t size) { return sound; } -JA_Sound_t *JA_LoadSound(const char* filename) { +JA_Sound_t *JA_LoadSound(const char *filename) +{ JA_Sound_t *sound = new JA_Sound_t(); SDL_AudioSpec wavSpec; SDL_LoadWAV(filename, &wavSpec, &sound->buffer, &sound->length); @@ -278,7 +325,7 @@ JA_Sound_t *JA_LoadSound(const char* filename) { SDL_AudioCVT cvt; SDL_BuildAudioCVT(&cvt, wavSpec.format, wavSpec.channels, wavSpec.freq, JA_format, JA_channels, JA_freq); cvt.len = sound->length; - cvt.buf = (Uint8 *) SDL_malloc(cvt.len * cvt.len_mult); + cvt.buf = (Uint8 *)SDL_malloc(cvt.len * cvt.len_mult); SDL_memcpy(cvt.buf, sound->buffer, sound->length); SDL_ConvertAudio(&cvt); SDL_FreeWAV(sound->buffer); @@ -290,11 +337,16 @@ JA_Sound_t *JA_LoadSound(const char* filename) { int JA_PlaySound(JA_Sound_t *sound, const int loop) { - if (!JA_soundEnabled) return -1; + if (!JA_soundEnabled) + return -1; int channel = 0; - while (channel < JA_MAX_SIMULTANEOUS_CHANNELS && channels[channel].state != JA_CHANNEL_FREE) { channel++; } - if (channel == JA_MAX_SIMULTANEOUS_CHANNELS) channel = 0; + while (channel < JA_MAX_SIMULTANEOUS_CHANNELS && channels[channel].state != JA_CHANNEL_FREE) + { + channel++; + } + if (channel == JA_MAX_SIMULTANEOUS_CHANNELS) + channel = 0; channels[channel].sound = sound; channels[channel].times = loop; @@ -305,9 +357,11 @@ int JA_PlaySound(JA_Sound_t *sound, const int loop) int JA_PlaySoundOnChannel(JA_Sound_t *sound, const int channel, const int loop) { - if (!JA_soundEnabled) return -1; + if (!JA_soundEnabled) + return -1; - if (channel >= JA_MAX_SIMULTANEOUS_CHANNELS) return -1; + if (channel >= JA_MAX_SIMULTANEOUS_CHANNELS) + return -1; channels[channel].sound = sound; channels[channel].times = loop; @@ -318,8 +372,10 @@ int JA_PlaySoundOnChannel(JA_Sound_t *sound, const int channel, const int loop) void JA_DeleteSound(JA_Sound_t *sound) { - for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) { - if (channels[i].sound == sound) JA_StopChannel(i); + for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) + { + if (channels[i].sound == sound) + JA_StopChannel(i); } SDL_free(sound->buffer); delete sound; @@ -327,41 +383,60 @@ void JA_DeleteSound(JA_Sound_t *sound) void JA_PauseChannel(const int channel) { - if (!JA_soundEnabled) return; + if (!JA_soundEnabled) + return; - if (channel == -1) { - for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) { - if (channels[i].state == JA_CHANNEL_PLAYING) channels[i].state = JA_CHANNEL_PAUSED; + if (channel == -1) + { + for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) + { + if (channels[i].state == JA_CHANNEL_PLAYING) + channels[i].state = JA_CHANNEL_PAUSED; } - } else if (channel >= 0 && channel < JA_MAX_SIMULTANEOUS_CHANNELS) { - if (channels[channel].state == JA_CHANNEL_PLAYING) channels[channel].state = JA_CHANNEL_PAUSED; + } + else if (channel >= 0 && channel < JA_MAX_SIMULTANEOUS_CHANNELS) + { + if (channels[channel].state == JA_CHANNEL_PLAYING) + channels[channel].state = JA_CHANNEL_PAUSED; } } void JA_ResumeChannel(const int channel) { - if (!JA_soundEnabled) return; + if (!JA_soundEnabled) + return; - if (channel == -1) { - for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) { - if (channels[i].state == JA_CHANNEL_PAUSED) channels[i].state = JA_CHANNEL_PLAYING; + if (channel == -1) + { + for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) + { + if (channels[i].state == JA_CHANNEL_PAUSED) + channels[i].state = JA_CHANNEL_PLAYING; } - } else if (channel >= 0 && channel < JA_MAX_SIMULTANEOUS_CHANNELS) { - if (channels[channel].state == JA_CHANNEL_PAUSED) channels[channel].state = JA_CHANNEL_PLAYING; + } + else if (channel >= 0 && channel < JA_MAX_SIMULTANEOUS_CHANNELS) + { + if (channels[channel].state == JA_CHANNEL_PAUSED) + channels[channel].state = JA_CHANNEL_PLAYING; } } void JA_StopChannel(const int channel) { - if (!JA_soundEnabled) return; + if (!JA_soundEnabled) + return; - if (channel == -1) { - for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) { + if (channel == -1) + { + for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) + { channels[i].state = JA_CHANNEL_FREE; channels[i].pos = 0; channels[i].sound = NULL; } - } else if (channel >= 0 && channel < JA_MAX_SIMULTANEOUS_CHANNELS) { + } + else if (channel >= 0 && channel < JA_MAX_SIMULTANEOUS_CHANNELS) + { channels[channel].state = JA_CHANNEL_FREE; channels[channel].pos = 0; channels[channel].sound = NULL; @@ -370,15 +445,18 @@ void JA_StopChannel(const int channel) JA_Channel_state JA_GetChannelState(const int channel) { - if (!JA_soundEnabled) return JA_SOUND_DISABLED; + if (!JA_soundEnabled) + return JA_SOUND_DISABLED; - if (channel < 0 || channel >= JA_MAX_SIMULTANEOUS_CHANNELS) return JA_CHANNEL_INVALID; + if (channel < 0 || channel >= JA_MAX_SIMULTANEOUS_CHANNELS) + return JA_CHANNEL_INVALID; return channels[channel].state; } int JA_SetSoundVolume(int volume) { - JA_soundVolume = volume > 128 ? 128 : volume < 0 ? 0 : volume; + JA_soundVolume = volume > 128 ? 128 : volume < 0 ? 0 + : volume; return JA_soundVolume; } @@ -386,14 +464,16 @@ void JA_EnableSound(const bool value) { for (int i = 0; i < JA_MAX_SIMULTANEOUS_CHANNELS; i++) { - if (channels[i].state == JA_CHANNEL_PLAYING) JA_StopChannel(i); + if (channels[i].state == JA_CHANNEL_PLAYING) + JA_StopChannel(i); } JA_soundEnabled = value; } int JA_SetVolume(int volume) { - JA_musicVolume = volume > 128 ? 128 : volume < 0 ? 0 : volume; - JA_soundVolume = JA_musicVolume/2; + JA_musicVolume = volume > 128 ? 128 : volume < 0 ? 0 + : volume; + JA_soundVolume = JA_musicVolume / 2; return JA_musicVolume; } \ No newline at end of file diff --git a/source/jail_audio.h b/source/jail_audio.h index 67138c7..cbb73ef 100644 --- a/source/jail_audio.h +++ b/source/jail_audio.h @@ -1,8 +1,26 @@ #pragma once -#include -enum JA_Channel_state { JA_CHANNEL_INVALID, JA_CHANNEL_FREE, JA_CHANNEL_PLAYING, JA_CHANNEL_PAUSED, JA_SOUND_DISABLED }; -enum JA_Music_state { JA_MUSIC_INVALID, JA_MUSIC_PLAYING, JA_MUSIC_PAUSED, JA_MUSIC_STOPPED, JA_MUSIC_DISABLED }; +#include // for SDL_AudioFormat +#include // for Uint32, Uint8 +struct JA_Music_t; // lines 8-8 +struct JA_Sound_t; // lines 7-7 + +enum JA_Channel_state +{ + JA_CHANNEL_INVALID, + JA_CHANNEL_FREE, + JA_CHANNEL_PLAYING, + JA_CHANNEL_PAUSED, + JA_SOUND_DISABLED +}; +enum JA_Music_state +{ + JA_MUSIC_INVALID, + JA_MUSIC_PLAYING, + JA_MUSIC_PAUSED, + JA_MUSIC_STOPPED, + JA_MUSIC_DISABLED +}; struct JA_Sound_t; struct JA_Music_t; @@ -10,8 +28,8 @@ struct JA_Music_t; void JA_Init(const int freq, const SDL_AudioFormat format, const int channels); void JA_Quit(); -JA_Music_t *JA_LoadMusic(const char* filename); -JA_Music_t *JA_LoadMusic(Uint8* buffer, Uint32 length); +JA_Music_t *JA_LoadMusic(const char *filename); +JA_Music_t *JA_LoadMusic(Uint8 *buffer, Uint32 length); void JA_PlayMusic(JA_Music_t *music, const int loop = -1); void JA_PauseMusic(); void JA_ResumeMusic(); @@ -24,9 +42,9 @@ void JA_SetMusicPosition(float value); float JA_GetMusicPosition(); void JA_EnableMusic(const bool value); -JA_Sound_t *JA_NewSound(Uint8* buffer, Uint32 length); -JA_Sound_t *JA_LoadSound(Uint8* buffer, Uint32 length); -JA_Sound_t *JA_LoadSound(const char* filename); +JA_Sound_t *JA_NewSound(Uint8 *buffer, Uint32 length); +JA_Sound_t *JA_LoadSound(Uint8 *buffer, Uint32 length); +JA_Sound_t *JA_LoadSound(const char *filename); int JA_PlaySound(JA_Sound_t *sound, const int loop = 0); int JA_PlaySoundOnChannel(JA_Sound_t *sound, const int channel, const int loop = 0); void JA_PauseChannel(const int channel); diff --git a/source/gamestate_loading_screen.cpp b/source/loading_screen.cpp similarity index 93% rename from source/gamestate_loading_screen.cpp rename to source/loading_screen.cpp index b4b4313..d170ea1 100644 --- a/source/gamestate_loading_screen.cpp +++ b/source/loading_screen.cpp @@ -1,16 +1,15 @@ -#include "gamestate_loading_screen.h" -#include // Para SDL_GetTicks -#include // Para rand -#include // Para basic_string -#include "asset.h" // Para Asset -#include "const.h" // Para SECTION_LOADING_SCREEN, SECTION_QUIT -#include "input.h" // Para Input, REPEAT_FALSE, inputs_e -#include "jail_audio.h" // Para JA_DeleteMusic, JA_LoadMusic, JA_PlayMusic -#include "resource.h" // Para Resource -#include "screen.h" // Para Screen -#include "sprite.h" // Para Sprite -#include "texture.h" // Para Texture -#include "utils.h" // Para options_t, color_t, section_t, stringToC... +#include "loading_screen.h" +#include // for SDL_GetTicks +#include // for rand +#include "asset.h" // for Asset +#include "const.h" // for SECTION_LOADING_SCREEN, SECTION_QUIT +#include "input.h" // for Input, REPEAT_FALSE, inputs_e +#include "jail_audio.h" // for JA_DeleteMusic, JA_LoadMusic, JA_PlayMusic +#include "resource.h" // for Resource +#include "screen.h" // for Screen +#include "sprite.h" // for Sprite +#include "texture.h" // for Texture +#include "utils.h" // for options_t, section_t, color_t, stringToC... // Constructor LoadingScreen::LoadingScreen(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section) diff --git a/source/gamestate_loading_screen.h b/source/loading_screen.h similarity index 100% rename from source/gamestate_loading_screen.h rename to source/loading_screen.h diff --git a/source/gamestate_logo.cpp b/source/logo.cpp similarity index 92% rename from source/gamestate_logo.cpp rename to source/logo.cpp index c3b0271..cca0404 100644 --- a/source/gamestate_logo.cpp +++ b/source/logo.cpp @@ -1,14 +1,15 @@ -#include "gamestate_logo.h" -#include // Para SDL_GetTicks -#include // Para basic_string, string -#include "const.h" // Para SECTION_LOGO, SECTION_TITLE, SUBSECTION_... -#include "input.h" // Para Input, REPEAT_FALSE, inputs_e -#include "jail_audio.h" // Para JA_StopMusic -#include "resource.h" // Para Resource -#include "screen.h" // Para Screen -#include "sprite.h" // Para Sprite -#include "texture.h" // Para Texture -class Asset; +#include "logo.h" +#include // for SDL_GetTicks +#include // for basic_string, string +#include "const.h" // for SECTION_LOGO, SECTION_TITLE, SUBSECTION_... +#include "input.h" // for Input, REPEAT_FALSE, inputs_e +#include "jail_audio.h" // for JA_StopMusic +#include "resource.h" // for Resource +#include "screen.h" // for Screen +#include "sprite.h" // for Sprite +#include "texture.h" // for Texture +#include "utils.h" // for color_t, section_t, options_t, stringToC... +class Asset; // lines 11-11 // Constructor Logo::Logo(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, Input *input, options_t *options, section_t *section) diff --git a/source/gamestate_logo.h b/source/logo.h similarity index 82% rename from source/gamestate_logo.h rename to source/logo.h index 4c72fd2..6975355 100644 --- a/source/gamestate_logo.h +++ b/source/logo.h @@ -1,16 +1,18 @@ #pragma once -#include // Para SDL_Event -#include // Para SDL_Renderer -#include // Para Uint32 -#include // Para vector -#include "utils.h" // Para color_t -class Asset; -class Input; -class Resource; -class Screen; -class Sprite; -class Texture; +#include // for SDL_Event +#include // for SDL_Renderer +#include // for Uint32 +#include // for vector +class Asset; // lines 8-8 +class Input; // lines 9-9 +class Resource; // lines 10-10 +class Screen; // lines 11-11 +class Sprite; // lines 12-12 +class Texture; // lines 13-13 +struct color_t; +struct options_t; +struct section_t; class Logo { diff --git a/source/player.cpp b/source/player.cpp index c85ebbf..0440523 100644 --- a/source/player.cpp +++ b/source/player.cpp @@ -1,3 +1,4 @@ +// IWYU pragma: no_include #include "player.h" #include // Para rand #include // Para max, min diff --git a/source/gamestate_title.cpp b/source/title.cpp similarity index 99% rename from source/gamestate_title.cpp rename to source/title.cpp index 68ce29b..a3d03a5 100644 --- a/source/gamestate_title.cpp +++ b/source/title.cpp @@ -1,4 +1,4 @@ -#include "gamestate_title.h" +#include "title.h" #include // Para SDL_BLENDMODE_BLEND #include // Para SDL_GetError #include // Para SDL_PIXELFORMAT_RGBA8888 diff --git a/source/gamestate_title.h b/source/title.h similarity index 100% rename from source/gamestate_title.h rename to source/title.h