diff options
-rw-r--r-- | src/local.mk | 2 | ||||
-rw-r--r-- | src/main-menu.c | 63 | ||||
-rw-r--r-- | src/main-menu.h | 25 | ||||
-rw-r--r-- | src/main.c | 22 |
4 files changed, 91 insertions, 21 deletions
diff --git a/src/local.mk b/src/local.mk index 508b1db..fbec287 100644 --- a/src/local.mk +++ b/src/local.mk @@ -3,6 +3,8 @@ dodge_balls_SOURCES += \ %reldir%/game.h \ %reldir%/locale.c \ %reldir%/locale.h \ + %reldir%/main-menu.c \ + %reldir%/main-menu.h \ %reldir%/main.c \ %reldir%/main.h \ %reldir%/output.c \ diff --git a/src/main-menu.c b/src/main-menu.c new file mode 100644 index 0000000..f3e46bf --- /dev/null +++ b/src/main-menu.c @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2021 P. J. McDermott + * + * This file is part of Dodge Balls + * + * Dodge Balls is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Dodge Balls is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Dodge Balls. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <SDL.h> +#include <SDL_ttf.h> +#include <stdlib.h> +#include "game.h" +#include "main-menu.h" +#include "main.h" +#include "output.h" + +void +db_main_menu(void) +{ + const char *games_dir; + const char *fonts_dir; + SDL_Window *window; + SDL_Renderer *renderer; + SDL_Texture *texture; + struct db_game **games; + int n; + int i; + + games_dir = db_get_games_dir(); + fonts_dir = db_get_fonts_dir(); + + window = db_get_window(); + renderer = db_get_renderer(); + texture = db_get_texture(); + + /* Find games */ + n = db_games_find(games_dir, &games); + if (n > 0) { + printf("%d games:\n", n); + for (i = 0; i < n; ++i) { + printf("\t%s - %s\n", db_game_get_name(games[i]), + db_game_get_desc(games[i])); + db_game_free(games[i]); + } + free(games); + } + + SDL_SetRenderDrawColor(renderer, 0x7F, 0x7F, 0x7F, 0xFF); + SDL_RenderClear(renderer); + SDL_RenderPresent(renderer); + SDL_Delay(1000); +} diff --git a/src/main-menu.h b/src/main-menu.h new file mode 100644 index 0000000..cc55ca7 --- /dev/null +++ b/src/main-menu.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021 P. J. McDermott + * + * This file is part of Dodge Balls + * + * Dodge Balls is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Dodge Balls is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Dodge Balls. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef DB_MAIN_MENU_H_ +#define DB_MAIN_MENU_H_ + +void db_main_menu(void); + +#endif /* DB_MAIN_MENU_H_ */ @@ -23,7 +23,6 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#include "game.h" #include "main.h" #include "output.h" @@ -141,10 +140,6 @@ db_get_texture(void) int main(int argc, char *argv[]) { - struct db_game **games; - int n; - int i; - /* Find data directories */ _db_find_dirs(argv[0]); @@ -153,22 +148,7 @@ main(int argc, char *argv[]) return EXIT_FAILURE; } - /* Find games */ - n = db_games_find(_db_games_dir, &games); - if (n > 0) { - printf("%d games:\n", n); - for (i = 0; i < n; ++i) { - printf("\t%s - %s\n", db_game_get_name(games[i]), - db_game_get_desc(games[i])); - db_game_free(games[i]); - } - free(games); - } - - SDL_SetRenderDrawColor(_db_renderer, 0x7F, 0x7F, 0x7F, 0xFF); - SDL_RenderClear(_db_renderer); - SDL_RenderPresent(_db_renderer); - SDL_Delay(1000); + db_main_menu(); /* Quit SDL libraries */ _db_quit(); |