diff --git a/TODO b/TODO index 1334eb4..7f65596 100644 --- a/TODO +++ b/TODO @@ -1,8 +1,7 @@ - moar documentation -- control settings -- video settings +- moar video settings - command line options +- sound volume settings - playable levels :D - -- get allegro 5.1 Windows build and use al_set_mixer_gain +- control settings diff --git a/src/main.c b/src/main.c index 38aa37f..c1470d3 100644 --- a/src/main.c +++ b/src/main.c @@ -343,8 +343,10 @@ int main(int argc, char **argv){ game.audio.fx = al_create_mixer(44100, ALLEGRO_AUDIO_DEPTH_FLOAT32, ALLEGRO_CHANNEL_CONF_2); game.audio.music = al_create_mixer(44100, ALLEGRO_AUDIO_DEPTH_FLOAT32, ALLEGRO_CHANNEL_CONF_2); al_attach_mixer_to_voice(game.audio.mixer, game.audio.voice); - if (game.fx) al_attach_mixer_to_mixer(game.audio.fx, game.audio.mixer); - if (game.music) al_attach_mixer_to_mixer(game.audio.music, game.audio.mixer); + al_attach_mixer_to_mixer(game.audio.fx, game.audio.mixer); + al_attach_mixer_to_mixer(game.audio.music, game.audio.mixer); + if (!game.fx) al_set_mixer_gain(game.audio.fx, 0.0); + if (!game.music) al_set_mixer_gain(game.audio.music, 0.0); al_register_event_source(game.event_queue, al_get_display_event_source(game.display)); al_register_event_source(game.event_queue, al_get_timer_event_source(game.timer)); diff --git a/src/menu.c b/src/menu.c index a0c15af..5687117 100644 --- a/src/menu.c +++ b/src/menu.c @@ -327,18 +327,18 @@ int Menu_Keydown(struct Game *game, ALLEGRO_EVENT *ev) { break; case 2: if ((game->music) && (game->fx)) { game->music=0; SetConfigOption("SuperDerpy", "music", "0"); - al_detach_mixer(game->audio.music); + al_set_mixer_gain(game->audio.music, 0.0); } else if (game->fx) { game->music=1; game->fx=0; SetConfigOption("SuperDerpy", "music", "1"); SetConfigOption("SuperDerpy", "fx", "0"); - al_attach_mixer_to_mixer(game->audio.music, game->audio.mixer); - al_detach_mixer(game->audio.fx); + al_set_mixer_gain(game->audio.music, 1.0); + al_set_mixer_gain(game->audio.fx, 0.0); } else if (game->music) { game->music=0; SetConfigOption("SuperDerpy", "music", "0"); - al_detach_mixer(game->audio.music); + al_set_mixer_gain(game->audio.music, 0.0); } else { game->music=1; game->fx=1; SetConfigOption("SuperDerpy", "music", "1"); SetConfigOption("SuperDerpy", "fx", "1"); - al_attach_mixer_to_mixer(game->audio.fx, game->audio.mixer); - al_attach_mixer_to_mixer(game->audio.music, game->audio.mixer); + al_set_mixer_gain(game->audio.music, 1.0); + al_set_mixer_gain(game->audio.fx, 1.0); } break; case 3: