Load all SFX at start of game

This commit is contained in:
Lucas S. Vieira 2025-04-10 23:47:52 -03:00
parent a89a40342c
commit e968e44507
4 changed files with 68 additions and 37 deletions

View file

@ -111,4 +111,9 @@ void sound_bgm_play(BGMOption);
const BGMTableEntry *sound_bgm_get_data(BGMOption);
void sound_bgm_check_stop(BGMOption);
/* SFX audio */
void sound_sfx_init();
#endif

View file

@ -68,6 +68,7 @@ main(void)
// Initial loads from disc
render_loading_logo();
sound_sfx_init();
sound_bgm_init();
// Set first scene

View file

@ -60,24 +60,25 @@
extern int debug_mode;
SoundEffect sfx_jump = { 0 };
SoundEffect sfx_skid = { 0 };
SoundEffect sfx_roll = { 0 };
SoundEffect sfx_dash = { 0 };
SoundEffect sfx_relea = { 0 };
SoundEffect sfx_dropd = { 0 };
SoundEffect sfx_ring = { 0 };
SoundEffect sfx_pop = { 0 };
SoundEffect sfx_sprn = { 0 };
SoundEffect sfx_chek = { 0 };
SoundEffect sfx_death = { 0 };
SoundEffect sfx_ringl = { 0 };
SoundEffect sfx_shield = { 0 };
SoundEffect sfx_yea = { 0 };
SoundEffect sfx_switch = { 0 };
SoundEffect sfx_splash = { 0 };
SoundEffect sfx_count = { 0 };
SoundEffect sfx_bubble = { 0 };
// Reference to sound effects
extern SoundEffect sfx_jump;
extern SoundEffect sfx_skid;
extern SoundEffect sfx_roll;
extern SoundEffect sfx_dash;
extern SoundEffect sfx_relea;
extern SoundEffect sfx_dropd;
extern SoundEffect sfx_ring;
extern SoundEffect sfx_pop;
extern SoundEffect sfx_sprn;
extern SoundEffect sfx_chek;
extern SoundEffect sfx_death;
extern SoundEffect sfx_ringl;
extern SoundEffect sfx_shield;
extern SoundEffect sfx_yea;
extern SoundEffect sfx_switch;
extern SoundEffect sfx_splash;
extern SoundEffect sfx_count;
extern SoundEffect sfx_bubble;
// TODO: Maybe shouldn't be extern?
extern TileMap16 map16;
@ -159,25 +160,6 @@ load_player(Player *player,
player->col_ledge = 0;
player->action = ACTION_NONE;
if(sfx_jump.addr == 0) sfx_jump = sound_load_vag("\\SFX\\JUMP.VAG;1");
if(sfx_skid.addr == 0) sfx_skid = sound_load_vag("\\SFX\\SKIDDING.VAG;1");
if(sfx_roll.addr == 0) sfx_roll = sound_load_vag("\\SFX\\ROLL.VAG;1");
if(sfx_dash.addr == 0) sfx_dash = sound_load_vag("\\SFX\\DASH.VAG;1");
if(sfx_relea.addr == 0) sfx_relea = sound_load_vag("\\SFX\\RELEA.VAG;1");
if(sfx_dropd.addr == 0) sfx_dropd = sound_load_vag("\\SFX\\DROPD.VAG;1");
if(sfx_ring.addr == 0) sfx_ring = sound_load_vag("\\SFX\\RING.VAG;1");
if(sfx_pop.addr == 0) sfx_pop = sound_load_vag("\\SFX\\POP.VAG;1");
if(sfx_sprn.addr == 0) sfx_sprn = sound_load_vag("\\SFX\\SPRN.VAG;1");
if(sfx_chek.addr == 0) sfx_chek = sound_load_vag("\\SFX\\CHEK.VAG;1");
if(sfx_death.addr == 0) sfx_death = sound_load_vag("\\SFX\\DEATH.VAG;1");
if(sfx_ringl.addr == 0) sfx_ringl = sound_load_vag("\\SFX\\RINGLOSS.VAG;1");
if(sfx_shield.addr == 0) sfx_shield = sound_load_vag("\\SFX\\SHIELD.VAG;1");
if(sfx_yea.addr == 0) sfx_yea = sound_load_vag("\\SFX\\YEA.VAG;1");
if(sfx_switch.addr == 0) sfx_switch = sound_load_vag("\\SFX\\SWITCH.VAG;1");
if(sfx_splash.addr == 0) sfx_splash = sound_load_vag("\\SFX\\SPLASH.VAG;1");
if(sfx_count.addr == 0) sfx_count = sound_load_vag("\\SFX\\COUNT.VAG;1");
if(sfx_bubble.addr == 0) sfx_bubble = sound_load_vag("\\SFX\\BUBBLE.VAG;1");
}
void

43
src/sound_sfxtable.c Normal file
View file

@ -0,0 +1,43 @@
#include "sound.h"
SoundEffect sfx_jump = { 0 };
SoundEffect sfx_skid = { 0 };
SoundEffect sfx_roll = { 0 };
SoundEffect sfx_dash = { 0 };
SoundEffect sfx_relea = { 0 };
SoundEffect sfx_dropd = { 0 };
SoundEffect sfx_ring = { 0 };
SoundEffect sfx_pop = { 0 };
SoundEffect sfx_sprn = { 0 };
SoundEffect sfx_chek = { 0 };
SoundEffect sfx_death = { 0 };
SoundEffect sfx_ringl = { 0 };
SoundEffect sfx_shield = { 0 };
SoundEffect sfx_yea = { 0 };
SoundEffect sfx_switch = { 0 };
SoundEffect sfx_splash = { 0 };
SoundEffect sfx_count = { 0 };
SoundEffect sfx_bubble = { 0 };
void
sound_sfx_init()
{
if(sfx_jump.addr == 0) sfx_jump = sound_load_vag("\\SFX\\JUMP.VAG;1");
if(sfx_skid.addr == 0) sfx_skid = sound_load_vag("\\SFX\\SKIDDING.VAG;1");
if(sfx_roll.addr == 0) sfx_roll = sound_load_vag("\\SFX\\ROLL.VAG;1");
if(sfx_dash.addr == 0) sfx_dash = sound_load_vag("\\SFX\\DASH.VAG;1");
if(sfx_relea.addr == 0) sfx_relea = sound_load_vag("\\SFX\\RELEA.VAG;1");
if(sfx_dropd.addr == 0) sfx_dropd = sound_load_vag("\\SFX\\DROPD.VAG;1");
if(sfx_ring.addr == 0) sfx_ring = sound_load_vag("\\SFX\\RING.VAG;1");
if(sfx_pop.addr == 0) sfx_pop = sound_load_vag("\\SFX\\POP.VAG;1");
if(sfx_sprn.addr == 0) sfx_sprn = sound_load_vag("\\SFX\\SPRN.VAG;1");
if(sfx_chek.addr == 0) sfx_chek = sound_load_vag("\\SFX\\CHEK.VAG;1");
if(sfx_death.addr == 0) sfx_death = sound_load_vag("\\SFX\\DEATH.VAG;1");
if(sfx_ringl.addr == 0) sfx_ringl = sound_load_vag("\\SFX\\RINGLOSS.VAG;1");
if(sfx_shield.addr == 0) sfx_shield = sound_load_vag("\\SFX\\SHIELD.VAG;1");
if(sfx_yea.addr == 0) sfx_yea = sound_load_vag("\\SFX\\YEA.VAG;1");
if(sfx_switch.addr == 0) sfx_switch = sound_load_vag("\\SFX\\SWITCH.VAG;1");
if(sfx_splash.addr == 0) sfx_splash = sound_load_vag("\\SFX\\SPLASH.VAG;1");
if(sfx_count.addr == 0) sfx_count = sound_load_vag("\\SFX\\COUNT.VAG;1");
if(sfx_bubble.addr == 0) sfx_bubble = sound_load_vag("\\SFX\\BUBBLE.VAG;1");
}