diff --git a/source/background.h b/source/background.h index 0ea98b8..960d2cc 100644 --- a/source/background.h +++ b/source/background.h @@ -1,12 +1,14 @@ #pragma once -#include // para SDL_Rect -#include // para SDL_Renderer, SDL_Texture -#include // para unique_ptr, shared_ptr -#include "utils.h" // para Color -class MovingSprite; -class Sprite; -class Texture; +#include // Para SDL_Rect, SDL_Point +#include // Para SDL_Texture, SDL_Renderer +#include // Para size_t +#include // Para unique_ptr, shared_ptr +#include // Para vector +#include "utils.h" // Para Color +class MovingSprite; // lines 7-7 +class Sprite; // lines 8-8 +class Texture; // lines 9-9 /* Esta clase es la encargada de dibujar el fondo que aparece durante la sección diff --git a/source/credits.cpp b/source/credits.cpp index 5864d01..dbaba8c 100644 --- a/source/credits.cpp +++ b/source/credits.cpp @@ -1,28 +1,32 @@ +// IWYU pragma: no_include #include "credits.h" #include // Para SDL_BLENDMODE_BLEND #include // Para SDL_PollEvent, SDL_Event, SDL_QUIT #include // Para SDL_PIXELFORMAT_RGBA8888 -#include // Para SDL_Rect #include // Para SDL_GetTicks -#include -#include -#include // Para basic_string, string -#include // Para vector -#include "balloon_manager.h" // Para BalloonManager -#include "global_inputs.h" // Para check -#include "input.h" // Para Input -#include "jail_audio.h" // Para JA_PlayMusic, JA_StopMusic -#include "param.h" // Para Param, ParamGame, param -#include "resource.h" // Para Resource -#include "screen.h" // Para Screen -#include "section.h" // Para Name, name, Options, options -#include "text.h" // Para Text, TEXT_CENTER, TEXT_SHADOW -#include "tiled_bg.h" // Para TiledBG, TiledBGMode -#include "utils.h" // Para Color, no_color, shdw_txt_color, Zone -#include "player.h" -#include "fade.h" -#include "lang.h" -#include "mouse.h" +#include // Para abs +#include // Para max, min, clamp +#include // Para abs +#include // Para runtime_error +#include // Para basic_string, string +#include // Para vector +#include "balloon_manager.h" // Para BalloonManager +#include "fade.h" // Para Fade, FadeType, FadeMode +#include "global_inputs.h" // Para check, update +#include "input.h" // Para Input +#include "jail_audio.h" // Para JA_GetMusicState, JA_SetMusicVolume +#include "lang.h" // Para getText +#include "mouse.h" // Para handleEvent +#include "param.h" // Para Param, ParamGame, param +#include "player.h" // Para Player, PlayerState +#include "resource.h" // Para Resource +#include "screen.h" // Para Screen +#include "section.h" // Para Name, name, Options, options +#include "sprite.h" // Para Sprite +#include "text.h" // Para Text, TEXT_CENTER, TEXT_SHADOW +#include "texture.h" // Para Texture +#include "tiled_bg.h" // Para TiledBG, TiledBGMode +#include "utils.h" // Para Color, Zone, shdw_txt_color, no_color // Textos constexpr const char TEXT_COPYRIGHT[] = "@2020,2025 JailDesigner"; @@ -115,7 +119,7 @@ void Credits::render() Screen::get()->start(); // Copia la textura con la zona de juego a la pantalla - SDL_RenderCopy(Screen::get()->getRenderer(), canvas_, nullptr, nullptr); + SDL_RenderCopy(Screen::get()->getRenderer(), canvas_, nullptr, nullptr); // Vuelca el contenido del renderizador en pantalla Screen::get()->blit(); diff --git a/source/credits.h b/source/credits.h index c8f0fcf..7ca2125 100644 --- a/source/credits.h +++ b/source/credits.h @@ -1,14 +1,17 @@ #pragma once +#include // Para SDL_Rect #include // Para SDL_Texture #include // Para Uint32 -#include // Para unique_ptr -#include "param.h" -#include "options.h" -class BalloonManager; -class TiledBG; -class Player; -class Fade; +#include // Para unique_ptr, shared_ptr +#include // Para vector +#include "options.h" // Para Options, OptionsAudio, OptionsMusic +#include "param.h" // Para Param, ParamGame, param +#include "utils.h" // Para Zone +class BalloonManager; // lines 8-8 +class Fade; // lines 11-11 +class Player; // lines 10-10 +class TiledBG; // lines 9-9 constexpr int PLAY_AREA_HEIGHT = 200; diff --git a/source/director.cpp b/source/director.cpp index 5fa848c..64f4b11 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -8,12 +8,12 @@ #include // Para SDL_SetHint, SDL_HINT_RENDER_DR... #include // Para SDL_SCANCODE_0, SDL_SCANCODE_DOWN #include // Para SDL_bool, Uint32 -#include // Para duration, system_clock #include // Para errno, EEXIST, EACCES, ENAMETOO... #include // Para printf, perror #include // Para mkdir, stat, S_IRWXU #include // Para getuid #include // Para min +#include // Para chrono #include // Para exit, EXIT_FAILURE, size_t, rand #include // Para basic_ostream, operator<<, basi... #include // Para make_unique, unique_ptr @@ -24,7 +24,6 @@ #include "credits.h" // Para Credits #include "dbgtxt.h" // Para dbg_init #include "game.h" // Para Game, GAME_MODE_DEMO_OFF, GAME_... -#include "global_inputs.h" // Para init #include "hiscore_table.h" // Para HiScoreTable #include "input.h" // Para Input, InputType #include "instructions.h" // Para Instructions @@ -35,7 +34,7 @@ #include "manage_hiscore_table.h" // Para ManageHiScoreTable #include "notifier.h" // Para Notifier #include "on_screen_help.h" // Para OnScreenHelp -#include "options.h" // Para Options, OptionsController, opt... +#include "options.h" // Para Options, options, OptionsContro... #include "param.h" // Para Param, ParamGame, param, loadPa... #include "resource.h" // Para Resource #include "screen.h" // Para Screen diff --git a/source/game.cpp b/source/game.cpp index 294abeb..a82a4c9 100644 --- a/source/game.cpp +++ b/source/game.cpp @@ -15,13 +15,14 @@ #include "balloon_manager.h" // Para BalloonManager #include "bullet.h" // Para Bullet, BulletType, BulletMoveStatus #include "enter_name.h" // Para NAME_LENGHT -#include "fade.h" // Para Fade, FadeType -#include "global_inputs.h" // Para check +#include "fade.h" // Para Fade, FadeType, FadeMode +#include "global_inputs.h" // Para check, update #include "input.h" // Para InputType, Input, INPUT_DO_NOT_ALL... #include "item.h" // Para Item, ItemType #include "jail_audio.h" // Para JA_PlaySound, JA_GetMusicState #include "lang.h" // Para getText #include "manage_hiscore_table.h" // Para ManageHiScoreTable, HiScoreEntry +#include "mouse.h" // Para handleEvent #include "notifier.h" // Para Notifier #include "param.h" // Para Param, param, ParamGame, ParamFade #include "path_sprite.h" // Para Path, PathSprite, createPath, Path... @@ -29,15 +30,12 @@ #include "resource.h" // Para Resource #include "scoreboard.h" // Para Scoreboard, ScoreboardMode, SCOREB... #include "screen.h" // Para Screen -#include "section.h" // Para Name, name, Options, options +#include "section.h" // Para Name, name, AttractMode, Options #include "smart_sprite.h" // Para SmartSprite -#include "stage.h" // Para number, get, Stage, power, total_p... +#include "stage.h" // Para number, get, Stage, total_power #include "tabe.h" // Para Tabe #include "text.h" // Para Text #include "texture.h" // Para Texture -#include "mouse.h" -#include "dbgtxt.h" -struct JA_Sound_t; // lines 37-37 // Constructor Game::Game(int player_id, int current_stage, bool demo) diff --git a/source/game_logo.cpp b/source/game_logo.cpp index 77f0089..c2848f5 100644 --- a/source/game_logo.cpp +++ b/source/game_logo.cpp @@ -1,15 +1,15 @@ #include "game_logo.h" -#include #include // Para SDL_FLIP_HORIZONTAL #include // Para max #include "animated_sprite.h" // Para AnimatedSprite #include "jail_audio.h" // Para JA_PlaySound #include "param.h" // Para Param, param, ParamGame, ParamTitle #include "resource.h" // Para Resource +#include "screen.h" // Para Screen #include "smart_sprite.h" // Para SmartSprite #include "sprite.h" // Para Sprite #include "texture.h" // Para Texture -#include "screen.h" +#include "utils.h" // Para Color constexpr int ZOOM_FACTOR = 5; constexpr int FLASH_DELAY = 3; diff --git a/source/global_inputs.cpp b/source/global_inputs.cpp index 10b5b67..60825f9 100644 --- a/source/global_inputs.cpp +++ b/source/global_inputs.cpp @@ -1,15 +1,16 @@ #include "global_inputs.h" -#include // Para operator+, string -#include "input.h" // Para Input, InputType, INPUT_DO_NOT_ALLOW_REPEAT -#include "asset.h" -#include "jail_audio.h" // Para JA_EnableMusic, JA_EnableSound -#include "lang.h" // Para getText +#include // Para operator+, string, to_string, basic_string +#include // Para vector +#include "asset.h" // Para Asset +#include "input.h" // Para Input, InputDeviceToUse, InputType, INPU... +#include "jail_audio.h" // Para JA_SetMusicVolume, JA_SetSoundVolume +#include "lang.h" // Para Code, getText, change, loadFromFile #include "notifier.h" // Para Notifier #include "on_screen_help.h" // Para OnScreenHelp -#include "options.h" // Para Options, OptionsAudio, options, OptionsM... +#include "options.h" // Para Options, options, OptionsGame, OptionsAudio +#include "screen.h" // Para Screen, ScreenVideoMode #include "section.h" // Para Name, Options, name, options #include "utils.h" // Para boolToOnOff, stringInVector -#include "screen.h" namespace globalInputs { diff --git a/source/global_inputs.h b/source/global_inputs.h index 2a65193..f8976b0 100644 --- a/source/global_inputs.h +++ b/source/global_inputs.h @@ -1,4 +1,3 @@ -#include namespace globalInputs { extern int service_pressed_counter; diff --git a/source/jail_audio.cpp b/source/jail_audio.cpp index a03278f..5449a42 100644 --- a/source/jail_audio.cpp +++ b/source/jail_audio.cpp @@ -1,42 +1,48 @@ #ifndef JA_USESDLMIXER #include "jail_audio.h" -#include "stb_vorbis.c" -#include -#include +#include // Para SDL_RWFromMem +#include // Para SDL_GetTicks +#include // Para uint8_t, uint32_t +#include // Para NULL, fseek, fclose, fopen, fread, ftell +#include // Para free, malloc +#include "stb_vorbis.c" // Para stb_vorbis_decode_memory #define 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; @@ -44,49 +50,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); } } @@ -100,36 +124,40 @@ 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(); music->samples = stb_vorbis_decode_memory(buffer, length, &chan, &samplerate, &music->output); // [RZC 28/08/22] Abans el descomprimiem mentre el teniem obert -// music->samples = stb_vorbis_decode_filename(filename, &chan, &samplerate, &music->output); + // music->samples = stb_vorbis_decode_filename(filename, &chan, &samplerate, &music->output); 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; @@ -138,15 +166,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); @@ -158,9 +187,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; } @@ -172,33 +203,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(); @@ -206,64 +245,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); @@ -273,7 +319,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); @@ -281,7 +328,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); @@ -293,11 +340,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; @@ -308,9 +360,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; @@ -321,8 +375,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; @@ -330,41 +386,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; @@ -373,15 +448,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; } @@ -389,15 +467,17 @@ 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; } diff --git a/source/jail_audio.h b/source/jail_audio.h index 67138c7..ecee426 100644 --- a/source/jail_audio.h +++ b/source/jail_audio.h @@ -1,8 +1,25 @@ #pragma once -#include +#include // Para SDL_AudioFormat +#include // Para 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 }; +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 +27,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 +41,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/mouse.cpp b/source/mouse.cpp index 728eb66..5fd857c 100644 --- a/source/mouse.cpp +++ b/source/mouse.cpp @@ -1,5 +1,4 @@ #include "mouse.h" -#include namespace Mouse { diff --git a/source/mouse.h b/source/mouse.h index a856fe5..392ff8d 100644 --- a/source/mouse.h +++ b/source/mouse.h @@ -1,5 +1,5 @@ #pragma once -#include +#include namespace Mouse { diff --git a/source/notifier.h b/source/notifier.h index 45d240f..c4652f4 100644 --- a/source/notifier.h +++ b/source/notifier.h @@ -1,15 +1,14 @@ #pragma once -#include // para SDL_Rect -#include // para SDL_Renderer -#include // para shared_ptr, unique_ptr -#include // para string, basic_string -#include // para vector -#include "utils.h" // para Color -class Sprite; -class Text; -class Texture; -struct JA_Sound_t; // lines 12-12 +#include // Para SDL_Rect +#include // Para SDL_Renderer +#include // Para shared_ptr +#include // Para string, basic_string +#include // Para vector +#include "utils.h" // Para Color +class Sprite; // lines 9-9 +class Text; // lines 10-10 +class Texture; // lines 11-11 class Notifier { diff --git a/source/path_sprite.cpp b/source/path_sprite.cpp index 1d158d6..4c28778 100644 --- a/source/path_sprite.cpp +++ b/source/path_sprite.cpp @@ -1,3 +1,4 @@ +// IWYU pragma: no_include #include "path_sprite.h" #include // Para abs #include // Para function @@ -101,7 +102,7 @@ void PathSprite::enable() } enabled_ = true; - + // Establece la posición auto &path = paths_.at(current_path_); const auto &p = path.spots.at(path.counter); diff --git a/source/sprite.cpp b/source/sprite.cpp index 7037b3a..6b9ba84 100644 --- a/source/sprite.cpp +++ b/source/sprite.cpp @@ -1,4 +1,5 @@ #include "sprite.h" +#include "texture.h" // Para Texture // Constructor Sprite::Sprite(std::shared_ptr texture, int x, int y, int w, int h) diff --git a/source/sprite.h b/source/sprite.h index f329951..5534996 100644 --- a/source/sprite.h +++ b/source/sprite.h @@ -1,8 +1,8 @@ #pragma once -#include // para SDL_Rect, SDL_Point -#include "texture.h" -#include +#include // Para SDL_Rect, SDL_Point +#include // Para shared_ptr +class Texture; // Clase sprite class Sprite diff --git a/source/tabe.cpp b/source/tabe.cpp index 6f59316..3464593 100644 --- a/source/tabe.cpp +++ b/source/tabe.cpp @@ -1,8 +1,11 @@ +// IWYU pragma: no_include #include "tabe.h" -#include "resource.h" -#include "param.h" -#include "jail_audio.h" -#include +#include // Para SDL_FLIP_HORIZONTAL, SDL_FLIP_NONE +#include // Para rand, abs +#include "jail_audio.h" // Para JA_PlaySound +#include "param.h" // Para Param, ParamGame, param +#include "resource.h" // Para Resource +#include "utils.h" // Para Zone // Constructor Tabe::Tabe() diff --git a/source/title.cpp b/source/title.cpp index f66e037..cfdd779 100644 --- a/source/title.cpp +++ b/source/title.cpp @@ -1,7 +1,6 @@ #include "title.h" #include // Para SDL_PollEvent, SDL_Event, SDL_KEYDOWN #include // Para SDLK_1, SDLK_2, SDLK_3, SDLK_4, SDLK_5 -#include // Para SDL_Rect #include // Para SDL_GetTicks #include // Para size_t #include // Para char_traits, operator+, basic_string @@ -9,22 +8,22 @@ #include "define_buttons.h" // Para DefineButtons #include "fade.h" // Para Fade, FadeType #include "game_logo.h" // Para GameLogo -#include "global_inputs.h" // Para check +#include "global_inputs.h" // Para check, update #include "input.h" // Para Input, InputType, INPUT_DO_NOT_ALLOW_R... -#include "jail_audio.h" // Para JA_GetMusicState, JA_Music_state, JA_P... +#include "jail_audio.h" // Para JA_GetMusicState, JA_FadeOutMusic, JA_... #include "lang.h" // Para getText +#include "mouse.h" // Para handleEvent #include "notifier.h" // Para Notifier #include "options.h" // Para OptionsController, Options, options #include "param.h" // Para Param, param, ParamGame, ParamTitle #include "resource.h" // Para Resource #include "screen.h" // Para Screen -#include "section.h" // Para Options, options, Name, name, AttractMode +#include "section.h" // Para Options, Name, name, AttractMode, options #include "sprite.h" // Para Sprite #include "text.h" // Para TEXT_CENTER, TEXT_SHADOW, Text #include "texture.h" // Para Texture #include "tiled_bg.h" // Para TiledBG, TiledBGMode #include "utils.h" // Para Color, Zone, fade_color, no_color, BLOCK -#include "mouse.h" // Constructor Title::Title() diff --git a/source/title.h b/source/title.h index 138e22a..2bd89f1 100644 --- a/source/title.h +++ b/source/title.h @@ -2,14 +2,13 @@ #include // Para Uint32 #include // Para unique_ptr, shared_ptr -class DefineButtons; // lines 6-6 -class Fade; // lines 7-7 -class GameLogo; // lines 8-8 -class Sprite; // lines 9-9 -class Text; // lines 10-10 -class Texture; // lines 11-11 -class TiledBG; // lines 12-12 -#include "section.h" +#include "section.h" // Para Options +class DefineButtons; // lines 5-5 +class Fade; // lines 6-6 +class GameLogo; // lines 7-7 +class Sprite; // lines 8-8 +class Text; // lines 9-9 +class TiledBG; // lines 11-11 // Textos constexpr const char TEXT_COPYRIGHT[] = "@2020,2025 JailDesigner";