diff --git a/src/main.c b/src/main.c index 7976d94e..9c757847 100644 --- a/src/main.c +++ b/src/main.c @@ -21,7 +21,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -*/ + */ /* * Initial main.c file generated by Glade. Edit as required. @@ -33,11 +33,10 @@ #include #ifdef G_OS_WIN32 - #include - #include +#include +#include #endif -#include "bygfoot.h" #include "bet_struct.h" #include "debug.h" #include "file.h" @@ -71,11 +70,11 @@ #endif /** Whether the last save gets loaded at startup - (cl switch -l). */ + (cl switch -l). */ gboolean load_last_save; /** Parse the command line arguments given by the user. */ -void + void main_parse_cl_arguments(gint *argc, gchar ***argv) { #ifdef DEBUG @@ -84,53 +83,53 @@ main_parse_cl_arguments(gint *argc, gchar ***argv) gboolean testcom = FALSE, calodds = FALSE; gchar *support_dir = NULL, *lang = NULL, - *testcom_file = NULL, *token_file = NULL, - *event_name = NULL, - *country_sid = NULL; + *testcom_file = NULL, *token_file = NULL, + *event_name = NULL, + *country_sid = NULL; gint number_of_passes = 1, - num_matches = 100, skilldiffmax = 20; + num_matches = 100, skilldiffmax = 20; GError *error = NULL; GOptionContext *context = NULL; GOptionEntry entries[] = - {{ "last-save", 'l', 0, G_OPTION_ARG_NONE, &load_last_save, _("Load last savegame"), NULL }, + {{ "last-save", 'l', 0, G_OPTION_ARG_NONE, &load_last_save, _("Load last savegame"), NULL }, - { "support-dir", 's', 0, G_OPTION_ARG_STRING, &support_dir, - _("Specify additional support directory (takes priority over default ones)"), "DIR" }, + { "support-dir", 's', 0, G_OPTION_ARG_STRING, &support_dir, + _("Specify additional support directory (takes priority over default ones)"), "DIR" }, - { "country", 'c', 0, G_OPTION_ARG_STRING, &country_sid, _("String id of the country to load"), "SID" }, + { "country", 'c', 0, G_OPTION_ARG_STRING, &country_sid, _("String id of the country to load"), "SID" }, - { "lang", 'L', 0, G_OPTION_ARG_STRING, &lang, _("Language to use (a code like 'de')"), "CODE" }, + { "lang", 'L', 0, G_OPTION_ARG_STRING, &lang, _("Language to use (a code like 'de')"), "CODE" }, - { "testcom", 't', 0, G_OPTION_ARG_NONE, &testcom, _("Test an XML commentary file"), NULL }, + { "testcom", 't', 0, G_OPTION_ARG_NONE, &testcom, _("Test an XML commentary file"), NULL }, - { "commentary-file", 'C', 0, G_OPTION_ARG_STRING, &testcom_file, - _("Commentary file name (may be in a support dir)"), "FILE" }, + { "commentary-file", 'C', 0, G_OPTION_ARG_STRING, &testcom_file, + _("Commentary file name (may be in a support dir)"), "FILE" }, - { "token-file", 'T', 0, G_OPTION_ARG_STRING, &token_file, - /* Live game tokens are strings like _AT_ in live game commentary files - which will be filled in by the program during runtime; e.g. _AT_ becomes - the attendace for the match. */ - _("File containing live game tokens (may be in a support dir)"), "FILE" }, + { "token-file", 'T', 0, G_OPTION_ARG_STRING, &token_file, + /* Live game tokens are strings like _AT_ in live game commentary files + which will be filled in by the program during runtime; e.g. _AT_ becomes + the attendace for the match. */ + _("File containing live game tokens (may be in a support dir)"), "FILE" }, - { "event-name", 'e', 0, G_OPTION_ARG_STRING, &event_name, - _("Commentary event to test; leave out to test all commentaries"), "EVENTNAME" }, + { "event-name", 'e', 0, G_OPTION_ARG_STRING, &event_name, + _("Commentary event to test; leave out to test all commentaries"), "EVENTNAME" }, - { "num-passes", 'n', 0, G_OPTION_ARG_INT, &number_of_passes, - _("How many commentaries to generate per event"), "N" }, + { "num-passes", 'n', 0, G_OPTION_ARG_INT, &number_of_passes, + _("How many commentaries to generate per event"), "N" }, - { "calodds", 'O', 0, G_OPTION_ARG_NONE, &calodds, - "[developer] Calibrate the betting odds by simulating a lot of matches", NULL }, + { "calodds", 'O', 0, G_OPTION_ARG_NONE, &calodds, + "[developer] Calibrate the betting odds by simulating a lot of matches", NULL }, - { "num-matches", 'm', 0, G_OPTION_ARG_INT, &num_matches, - "[developer] How many matches to simulate per skill diff step", "N" }, + { "num-matches", 'm', 0, G_OPTION_ARG_INT, &num_matches, + "[developer] How many matches to simulate per skill diff step", "N" }, - { "num-skilldiff", 'S', 0, G_OPTION_ARG_INT, &skilldiffmax, - "[developer] How many skill diff steps to take", "N" }, + { "num-skilldiff", 'S', 0, G_OPTION_ARG_INT, &skilldiffmax, + "[developer] How many skill diff steps to take", "N" }, - {NULL}}; + {NULL}}; if(argc == NULL || argv == NULL) - return; + return; context = g_option_context_new(_("- a simple and addictive GTK2 football manager")); g_option_context_add_main_entries(context, entries, GETTEXT_PACKAGE); @@ -146,31 +145,31 @@ main_parse_cl_arguments(gint *argc, gchar ***argv) if(calodds) { - option_add(&options, "int_opt_calodds", 1, NULL); - option_add(&options, "int_opt_calodds_skilldiffmax", skilldiffmax, NULL); - option_add(&options, "int_opt_calodds_matches", num_matches, NULL); + option_add(&options, "int_opt_calodds", 1, NULL); + option_add(&options, "int_opt_calodds_skilldiffmax", skilldiffmax, NULL); + option_add(&options, "int_opt_calodds_matches", num_matches, NULL); } if(testcom) { - lg_commentary_test(testcom_file, token_file, event_name, number_of_passes); - main_exit_program(EXIT_OK, NULL); + lg_commentary_test(testcom_file, token_file, event_name, number_of_passes); + main_exit_program(EXIT_OK, NULL); } if(support_dir != NULL) { - gchar *fullpath = (support_dir[strlen(support_dir)] == G_DIR_SEPARATOR) ? + gchar *fullpath = (support_dir[strlen(support_dir)] == G_DIR_SEPARATOR) ? g_path_get_dirname(support_dir) : g_strdup_printf("%s%s", support_dir, G_DIR_SEPARATOR_S); - file_add_support_directory_recursive(fullpath); - g_free(fullpath); - g_free(support_dir); + file_add_support_directory_recursive(fullpath); + g_free(fullpath); + g_free(support_dir); } if(lang != NULL) { - language_set(language_get_code_index(lang) + 1); - file_load_hints_file(); + language_set(language_get_code_index(lang) + 1); + file_load_hints_file(); g_free(lang); } @@ -182,7 +181,7 @@ main_parse_cl_arguments(gint *argc, gchar ***argv) } /** Parse the command line arguments given by the user. */ -void + void main_parse_debug_cl_arguments(gint *argc, gchar ***argv) { #ifdef DEBUG @@ -190,22 +189,22 @@ main_parse_debug_cl_arguments(gint *argc, gchar ***argv) #endif gint deb_level = -1, - deb_output = -1; + deb_output = -1; gchar *debug_text = NULL; GError *error = NULL; GOptionContext *context = NULL; GOptionEntry entries[] = - {{ "debug-level", 'd', 0, G_OPTION_ARG_INT, &deb_level, "[developer] Debug level to use", "N" }, - { "debug-output", 'o', 0, G_OPTION_ARG_INT, &deb_output, "[developer] Debug output to use", "0, 1 or 2" }, - { "deb", 'D', 0, G_OPTION_ARG_STRING, &debug_text, - "[developer] A debug command like 'deb100 to set the debug level'; see the debug window and debug.c", "STRING" }, - {NULL}}; + {{ "debug-level", 'd', 0, G_OPTION_ARG_INT, &deb_level, "[developer] Debug level to use", "N" }, + { "debug-output", 'o', 0, G_OPTION_ARG_INT, &deb_output, "[developer] Debug output to use", "0, 1 or 2" }, + { "deb", 'D', 0, G_OPTION_ARG_STRING, &debug_text, + "[developer] A debug command like 'deb100 to set the debug level'; see the debug window and debug.c", "STRING" }, + {NULL}}; debug_level = DEBUG_LEVEL_DEFAULT; debug_output = DEBUG_OUTPUT_DEFAULT; if(argc == NULL || argv == NULL) - return; + return; context = g_option_context_new(_("- a simple and addictive GTK2 football manager")); g_option_context_set_ignore_unknown_options(context, TRUE); @@ -227,16 +226,16 @@ main_parse_debug_cl_arguments(gint *argc, gchar ***argv) } if(deb_output != -1) - debug_output = deb_output; + debug_output = deb_output; if(debug_text != NULL) - statp = debug_text; + statp = debug_text; } /** - Initialize some global variables. Most of them get nullified. -*/ -void + Initialize some global variables. Most of them get nullified. + */ + void main_init_variables(void) { #ifdef DEBUG @@ -255,20 +254,20 @@ main_init_variables(void) season = week = week_round = 1; for(i=0;i 1 && !load_game_from_command_line(argv[1]))))) + (!load_last_save && (argc == 1 || + (argc > 1 && !load_game_from_command_line(argv[1]))))) { if(country.sid == NULL) { @@ -431,11 +430,11 @@ main (gint argc, gchar *argv[]) } /** Exit the program with the given exit code and message. Try to - destroy all widgets and free all memory first. - @param exit_code The number we return to the shell. - @param exit_message The message we print. - @return The exit code of the program. */ -void + destroy all widgets and free all memory first. + @param exit_code The number we return to the shell. + @param exit_message The message we print. + @return The exit code of the program. */ + void main_exit_program(gint exit_code, gchar *format, ...) { #ifdef DEBUG @@ -447,21 +446,21 @@ main_exit_program(gint exit_code, gchar *format, ...) if(format != NULL) { - va_start (args, format); - g_vsprintf(text, format, args); - va_end (args); - debug_print_message(text, NULL); + va_start (args, format); + g_vsprintf(text, format, args); + va_end (args); + debug_print_message(text, NULL); } if(gtk_main_level() > 0) - gtk_main_quit(); + gtk_main_quit(); free_memory(); if(!os_is_unix && exit_code != EXIT_OK) { - debug_print_message("Press RETURN. Program will exit."); - getchar(); + debug_print_message("Press RETURN. Program will exit."); + getchar(); } exit(exit_code);