X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=701d38fb83b3b1c246aa375634f504538b9f0452;hb=97edb8ddb87d3abe1496a0fee11a20cf2830daf6;hp=271a8dfbb884946c0f3acfcba022b40d9ba0fa84;hpb=25c22434b11938e230719d6f73df4ed7813570be;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 271a8dfb..701d38fb 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -571,7 +571,7 @@ char *getLoginName() if (GetUserName(login_name, &buffer_size) == 0) strcpy(login_name, ANONYMOUS_NAME); } -#else +#elif defined(PLATFORM_UNIX) && !defined(PLATFORM_ANDROID) if (login_name == NULL) { struct passwd *pwd; @@ -581,6 +581,8 @@ char *getLoginName() else login_name = getStringCopy(pwd->pw_name); } +#else + login_name = ANONYMOUS_NAME; #endif return login_name; @@ -680,66 +682,18 @@ char *getBasePath(char *filename) char *basepath = getStringCopy(filename); char *last_separator = getLastPathSeparatorPtr(basepath); - if (last_separator != NULL) - *last_separator = '\0'; /* separator found: strip basename */ - else - basepath = "."; /* no separator found: use current path */ - - return basepath; -} - -static char *getProgramMainDataPath() -{ - char *main_data_path = getStringCopy(program.command_basepath); - -#if defined(PLATFORM_MACOSX) - static char *main_data_binary_subdir = NULL; - static char *main_data_files_subdir = NULL; - - if (main_data_binary_subdir == NULL) + /* if no separator was found, use current directory */ + if (last_separator == NULL) { - main_data_binary_subdir = checked_malloc(strlen(program.program_title) + 1 + - strlen("app") + 1 + - strlen(MAC_APP_BINARY_SUBDIR) + 1); + free(basepath); - sprintf(main_data_binary_subdir, "%s.app/%s", - program.program_title, MAC_APP_BINARY_SUBDIR); + return getStringCopy("."); } - if (main_data_files_subdir == NULL) - { - main_data_files_subdir = checked_malloc(strlen(program.program_title) + 1 + - strlen("app") + 1 + - strlen(MAC_APP_FILES_SUBDIR) + 1); - - sprintf(main_data_files_subdir, "%s.app/%s", - program.program_title, MAC_APP_FILES_SUBDIR); - } - - if (strSuffix(main_data_path, main_data_binary_subdir)) - { - char *main_data_path_old = main_data_path; - - // cut relative path to Mac OS X application binary directory from path - main_data_path[strlen(main_data_path) - - strlen(main_data_binary_subdir)] = '\0'; + /* separator found: strip basename */ + *last_separator = '\0'; - // cut trailing path separator from path (but not if path is root directory) - if (strSuffix(main_data_path, "/") && !strEqual(main_data_path, "/")) - main_data_path[strlen(main_data_path) - 1] = '\0'; - - // replace empty path with current directory - if (strEqual(main_data_path, "")) - main_data_path = "."; - - // add relative path to Mac OS X application resources directory to path - main_data_path = getPath2(main_data_path, main_data_files_subdir); - - free(main_data_path_old); - } -#endif - - return main_data_path; + return basepath; } @@ -955,8 +909,8 @@ void GetOptions(int argc, char *argv[], void (*print_usage_function)(void), void (*print_version_function)(void)) { - char *ro_base_path = RO_BASE_PATH; - char *rw_base_path = RW_BASE_PATH; + char *ro_base_path = getProgramMainDataPath(argv[0], RO_BASE_PATH); + char *rw_base_path = getProgramMainDataPath(argv[0], RW_BASE_PATH); char **argvplus = checked_calloc((argc + 1) * sizeof(char **)); char **options_left = &argvplus[1]; @@ -964,16 +918,6 @@ void GetOptions(int argc, char *argv[], while (argc--) argvplus[argc] = argv[argc]; - /* if the program is configured to start from current directory (default), - determine program package directory from program binary (some versions - of KDE/Konqueror and Mac OS X (especially "Mavericks") apparently do not - set the current working directory to the program package directory) */ - - if (strEqual(ro_base_path, ".")) - ro_base_path = getProgramMainDataPath(); - if (strEqual(rw_base_path, ".")) - rw_base_path = getProgramMainDataPath(); - /* initialize global program options */ options.server_host = NULL; options.server_port = 0; @@ -1003,6 +947,12 @@ void GetOptions(int argc, char *argv[], if (*options_left == NULL) /* no options given -- enable verbose mode */ options.verbose = TRUE; #endif +#endif + +#if DEBUG +#if defined(PLATFORM_ANDROID) + options.debug = TRUE; +#endif #endif while (*options_left) @@ -1212,6 +1162,10 @@ void Error(int mode, char *format, ...) ANDROID_LOG_UNKNOWN); #endif + /* display debug messages only when running in debug mode */ + if (mode & ERR_DEBUG && !options.debug) + return; + /* display warnings only when running in verbose mode */ if (mode & ERR_WARN && !options.verbose) return; @@ -2910,6 +2864,9 @@ int get_parameter_value(char *value_raw, char *suffix, int type) if (string_has_parameter(value, "inner_corners")) result |= STYLE_INNER_CORNERS; + + if (string_has_parameter(value, "reverse")) + result |= STYLE_REVERSE; } else if (strEqual(suffix, ".fade_mode")) {