mirror of
https://gitlab.com/dosowisko.net/libsuperderpy.git
synced 2025-02-01 11:06:44 +01:00
little cleanup in menu handling code
This commit is contained in:
parent
13aa555481
commit
37f879c297
3 changed files with 24 additions and 63 deletions
75
src/menu.c
75
src/menu.c
|
@ -235,6 +235,12 @@ void Menu_Stop(struct Game* game) {
|
||||||
al_destroy_bitmap(game->menu.menu_fade_bitmap);
|
al_destroy_bitmap(game->menu.menu_fade_bitmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ChangeMenuState(struct Game *game, enum menustate_enum state) {
|
||||||
|
game->menu.menustate=state;
|
||||||
|
game->menu.selected=0;
|
||||||
|
PrintConsole(game, "menu state changed %d", state);
|
||||||
|
}
|
||||||
|
|
||||||
void Menu_Unload(struct Game *game) {
|
void Menu_Unload(struct Game *game) {
|
||||||
if (!game->menu.loaded) return;
|
if (!game->menu.loaded) return;
|
||||||
if (game->gamestate==GAMESTATE_MENU) Menu_Stop(game);
|
if (game->gamestate==GAMESTATE_MENU) Menu_Stop(game);
|
||||||
|
@ -264,8 +270,7 @@ void Menu_Load(struct Game *game) {
|
||||||
|
|
||||||
game->menu.cloud_position = 100;
|
game->menu.cloud_position = 100;
|
||||||
game->menu.cloud2_position = 100;
|
game->menu.cloud2_position = 100;
|
||||||
game->menu.menustate = MENUSTATE_MAIN;
|
ChangeMenuState(game,MENUSTATE_MAIN);
|
||||||
game->menu.selected = 0;
|
|
||||||
|
|
||||||
al_play_sample_instance(game->menu.music);
|
al_play_sample_instance(game->menu.music);
|
||||||
al_play_sample_instance(game->menu.rain_sound);
|
al_play_sample_instance(game->menu.rain_sound);
|
||||||
|
@ -310,9 +315,7 @@ int Menu_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
game->loadstate = GAMESTATE_INTRO;
|
game->loadstate = GAMESTATE_INTRO;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
game->menu.menustate=MENUSTATE_OPTIONS;
|
ChangeMenuState(game,MENUSTATE_OPTIONS);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
UnloadGameState(game);
|
UnloadGameState(game);
|
||||||
|
@ -349,9 +352,7 @@ int Menu_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
al_set_mixer_gain(game->audio.voice, game->voice/10.0);
|
al_set_mixer_gain(game->audio.voice, game->voice/10.0);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
game->menu.menustate=MENUSTATE_OPTIONS;
|
ChangeMenuState(game,MENUSTATE_OPTIONS);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
free(text);
|
free(text);
|
||||||
|
@ -359,38 +360,16 @@ int Menu_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
case MENUSTATE_OPTIONS:
|
case MENUSTATE_OPTIONS:
|
||||||
switch (game->menu.selected) {
|
switch (game->menu.selected) {
|
||||||
case 0:
|
case 0:
|
||||||
game->menu.menustate=MENUSTATE_CONTROLS;
|
ChangeMenuState(game,MENUSTATE_CONTROLS);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
game->menu.menustate=MENUSTATE_VIDEO;
|
ChangeMenuState(game,MENUSTATE_VIDEO);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
/* if ((game->music) && (game->fx)) { game->music=0; SetConfigOption("SuperDerpy", "music", "0");
|
ChangeMenuState(game,MENUSTATE_AUDIO);
|
||||||
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_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_set_mixer_gain(game->audio.music, 0.0);
|
|
||||||
}
|
|
||||||
else { game->music=1; game->fx=1; SetConfigOption("SuperDerpy", "music", "1"); SetConfigOption("SuperDerpy", "fx", "1");
|
|
||||||
al_set_mixer_gain(game->audio.music, 1.0);
|
|
||||||
al_set_mixer_gain(game->audio.fx, 1.0);
|
|
||||||
}*/
|
|
||||||
game->menu.menustate=MENUSTATE_AUDIO;
|
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
game->menu.menustate=MENUSTATE_MAIN;
|
ChangeMenuState(game,MENUSTATE_MAIN);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -411,9 +390,7 @@ int Menu_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
game->loadstate = GAMESTATE_MAP;
|
game->loadstate = GAMESTATE_MAP;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
game->menu.menustate=MENUSTATE_OPTIONS;
|
ChangeMenuState(game,MENUSTATE_OPTIONS);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -424,9 +401,7 @@ int Menu_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
case MENUSTATE_CONTROLS:
|
case MENUSTATE_CONTROLS:
|
||||||
switch (game->menu.selected) {
|
switch (game->menu.selected) {
|
||||||
case 3:
|
case 3:
|
||||||
game->menu.menustate=MENUSTATE_OPTIONS;
|
ChangeMenuState(game,MENUSTATE_OPTIONS);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -443,9 +418,7 @@ int Menu_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if ((game->menu.options.fullscreen==game->fullscreen) && (game->menu.options.fps==game->fps) && (game->menu.options.width==game->width) && (game->menu.options.height==game->height)) {
|
if ((game->menu.options.fullscreen==game->fullscreen) && (game->menu.options.fps==game->fps) && (game->menu.options.width==game->width) && (game->menu.options.height==game->height)) {
|
||||||
game->menu.menustate=MENUSTATE_OPTIONS;
|
ChangeMenuState(game,MENUSTATE_OPTIONS);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
} else {
|
} else {
|
||||||
PrintConsole(game, "video settings changed, restarting...");
|
PrintConsole(game, "video settings changed, restarting...");
|
||||||
game->restart = true;
|
game->restart = true;
|
||||||
|
@ -463,24 +436,16 @@ int Menu_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
} else if (ev->keyboard.keycode==ALLEGRO_KEY_ESCAPE) {
|
} else if (ev->keyboard.keycode==ALLEGRO_KEY_ESCAPE) {
|
||||||
switch (game->menu.menustate) {
|
switch (game->menu.menustate) {
|
||||||
case MENUSTATE_OPTIONS:
|
case MENUSTATE_OPTIONS:
|
||||||
game->menu.menustate=MENUSTATE_MAIN;
|
ChangeMenuState(game,MENUSTATE_MAIN);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
case MENUSTATE_VIDEO:
|
case MENUSTATE_VIDEO:
|
||||||
game->menu.menustate=MENUSTATE_OPTIONS;
|
ChangeMenuState(game,MENUSTATE_OPTIONS);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
case MENUSTATE_AUDIO:
|
case MENUSTATE_AUDIO:
|
||||||
game->menu.menustate=MENUSTATE_OPTIONS;
|
ChangeMenuState(game,MENUSTATE_OPTIONS);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
case MENUSTATE_CONTROLS:
|
case MENUSTATE_CONTROLS:
|
||||||
game->menu.menustate=MENUSTATE_OPTIONS;
|
ChangeMenuState(game,MENUSTATE_OPTIONS);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
break;
|
break;
|
||||||
case MENUSTATE_PAUSE:
|
case MENUSTATE_PAUSE:
|
||||||
PrintConsole(game,"Game resumed.");
|
PrintConsole(game,"Game resumed.");
|
||||||
|
|
|
@ -27,3 +27,4 @@ void Menu_Stop(struct Game *game);
|
||||||
void Menu_Unload(struct Game *game);
|
void Menu_Unload(struct Game *game);
|
||||||
void Menu_Load(struct Game *game);
|
void Menu_Load(struct Game *game);
|
||||||
int Menu_Keydown(struct Game *game, ALLEGRO_EVENT *ev);
|
int Menu_Keydown(struct Game *game, ALLEGRO_EVENT *ev);
|
||||||
|
void ChangeMenuState(struct Game *game, enum menustate_enum state);
|
||||||
|
|
11
src/pause.c
11
src/pause.c
|
@ -28,14 +28,10 @@
|
||||||
int Pause_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
int Pause_Keydown(struct Game *game, ALLEGRO_EVENT *ev) {
|
||||||
if ((game->menu.menustate==MENUSTATE_OPTIONS) && ((ev->keyboard.keycode==ALLEGRO_KEY_ESCAPE) || ((ev->keyboard.keycode==ALLEGRO_KEY_ENTER) && (game->menu.selected==3)))) {
|
if ((game->menu.menustate==MENUSTATE_OPTIONS) && ((ev->keyboard.keycode==ALLEGRO_KEY_ESCAPE) || ((ev->keyboard.keycode==ALLEGRO_KEY_ENTER) && (game->menu.selected==3)))) {
|
||||||
al_play_sample_instance(game->menu.click);
|
al_play_sample_instance(game->menu.click);
|
||||||
game->menu.menustate=MENUSTATE_PAUSE;
|
ChangeMenuState(game,MENUSTATE_PAUSE);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
} else if ((game->menu.menustate==MENUSTATE_VIDEO) && ((ev->keyboard.keycode==ALLEGRO_KEY_ESCAPE) || ((ev->keyboard.keycode==ALLEGRO_KEY_ENTER) && (game->menu.selected==3)))) {
|
} else if ((game->menu.menustate==MENUSTATE_VIDEO) && ((ev->keyboard.keycode==ALLEGRO_KEY_ESCAPE) || ((ev->keyboard.keycode==ALLEGRO_KEY_ENTER) && (game->menu.selected==3)))) {
|
||||||
al_play_sample_instance(game->menu.click);
|
al_play_sample_instance(game->menu.click);
|
||||||
game->menu.menustate=MENUSTATE_OPTIONS;
|
ChangeMenuState(game,MENUSTATE_OPTIONS);
|
||||||
game->menu.selected=0;
|
|
||||||
PrintConsole(game, "menu state changed %d", game->menu.menustate);
|
|
||||||
if (game->menu.options.fullscreen!=game->fullscreen) {
|
if (game->menu.options.fullscreen!=game->fullscreen) {
|
||||||
al_toggle_display_flag(game->display, ALLEGRO_FULLSCREEN_WINDOW, game->menu.options.fullscreen);
|
al_toggle_display_flag(game->display, ALLEGRO_FULLSCREEN_WINDOW, game->menu.options.fullscreen);
|
||||||
al_clear_to_color(al_map_rgb(0,0,0));
|
al_clear_to_color(al_map_rgb(0,0,0));
|
||||||
|
@ -90,8 +86,7 @@ void Pause_Load(struct Game* game) {
|
||||||
al_draw_bitmap(game->pause.derpy, 0.47*al_get_display_width(game->display), al_get_display_height(game->display)*0.396, 0);
|
al_draw_bitmap(game->pause.derpy, 0.47*al_get_display_width(game->display), al_get_display_height(game->display)*0.396, 0);
|
||||||
al_set_target_bitmap(al_get_backbuffer(game->display));
|
al_set_target_bitmap(al_get_backbuffer(game->display));
|
||||||
al_destroy_bitmap(fade);
|
al_destroy_bitmap(fade);
|
||||||
game->menu.selected=0;
|
ChangeMenuState(game,MENUSTATE_PAUSE);
|
||||||
game->menu.menustate = MENUSTATE_PAUSE;
|
|
||||||
PrintConsole(game,"Game paused.");
|
PrintConsole(game,"Game paused.");
|
||||||
al_play_sample_instance(game->menu.click);
|
al_play_sample_instance(game->menu.click);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue