X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=b950dfd6c14c37a49febdab16d64f4db07fc45c5;hb=c8a6ab54243a4f0b45ae03e6acbf55b15fb4338f;hp=5f9c009afd39875560ed9b9f6ee846ceb0fabdd8;hpb=c75628b175a7eedae537ff482cc2dd932e250178;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 5f9c009a..b950dfd6 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -549,6 +549,40 @@ boolean getTokenValueFromString(char *string, char **token, char **value) } +// ---------------------------------------------------------------------------- +// UUID functions +// ---------------------------------------------------------------------------- + +#define UUID_BYTES 16 +#define UUID_CHARS (UUID_BYTES * 2) +#define UUID_LENGTH (UUID_CHARS + 4) + +char *getUUID(void) +{ + static char uuid[UUID_LENGTH + 1]; + int data[UUID_BYTES]; + int count = 0; + int i; + + for (i = 0; i < UUID_BYTES; i++) + data[i] = GetSimpleRandom(256); + + data[6] = 0x40 | (data[6] & 0x0f); + data[8] = 0x80 | (data[8] & 0x3f); + + for (i = 0; i < UUID_BYTES; i++) + { + sprintf(&uuid[count], "%02x", data[i]); + count += 2; + + if (i == 3 || i == 5 || i == 7 || i == 9) + strcat(&uuid[count++], "-"); + } + + return uuid; +} + + // ---------------------------------------------------------------------------- // counter functions // ---------------------------------------------------------------------------- @@ -1262,6 +1296,7 @@ void GetOptions(int argc, char *argv[], options.conf_directory = getPath2(base_path, CONF_DIRECTORY); options.execute_command = NULL; + options.tape_log_filename = NULL; options.special_flags = NULL; options.debug_mode = NULL; @@ -1428,6 +1463,15 @@ void GetOptions(int argc, char *argv[], // when doing batch processing, always enable verbose mode (warnings) options.verbose = TRUE; } + else if (strncmp(option, "-tape_logfile", option_len) == 0) + { + if (option_arg == NULL) + FailWithHelp("option '%s' requires an argument", option_str); + + options.tape_log_filename = getStringCopy(option_arg); + if (option_arg == next_option) + options_left++; + } #if defined(PLATFORM_MACOSX) else if (strPrefix(option, "-psn")) {