X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fconfig.c;h=bb1c6ee4a7d1154a0e2fce8295394088e934332c;hb=3c53030b9e20c59004046274e94eff2ee90d0ab5;hp=2d21f40887c2e754e3caef2aa705ff6f49ce12d5;hpb=c9433eab5c4317ed4f89164b386a7d33562e29be;p=rocksndiamonds.git diff --git a/src/config.c b/src/config.c index 2d21f408..bb1c6ee4 100644 --- a/src/config.c +++ b/src/config.c @@ -1,7 +1,7 @@ /*********************************************************** * Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* (c) 1995-2002 Artsoft Entertainment * +* (c) 1995-2006 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -16,15 +16,102 @@ #include "config.h" #include "conftime.h" -/* use timestamp created at compile-time */ -#define PROGRAM_BUILD_STRING PROGRAM_IDENT_STRING " " COMPILE_DATE_STRING + +#define USE_EXTENDED_VERSION 1 + + +char *getCompileDateString() +{ + return COMPILE_DATE_STRING; +} + +char *getProgramReleaseVersionString() +{ + static char program_version_string[32]; + +#if USE_EXTENDED_VERSION + sprintf(program_version_string, "%d.%d.%d.%d", + PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH, + PROGRAM_VERSION_BUILD); +#else + sprintf(program_version_string, "%d.%d.%d", + PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH); +#endif + + return program_version_string; +} + +char *getProgramFullVersionString() +{ + static char program_version_string[32]; + +#if USE_EXTENDED_VERSION + sprintf(program_version_string, "%d.%d.%d.%d", + PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH, + PROGRAM_VERSION_BUILD); +#else + sprintf(program_version_string, "%d.%d.%d-%d", + PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH, + PROGRAM_VERSION_BUILD); +#endif + + return program_version_string; +} + +char *getProgramVersionString() +{ #ifdef DEBUG -#undef WINDOW_TITLE_STRING -#define WINDOW_TITLE_STRING PROGRAM_TITLE_STRING " " PROGRAM_BUILD_STRING + return getProgramFullVersionString(); +#else + return getProgramReleaseVersionString(); +#endif +} + +char *getProgramInitString() +{ + static char *program_init_string = NULL; + +#if 1 + // do not display compile target anymore, as it is almost always "SDL" now + if (program_init_string == NULL) + { + program_init_string = checked_malloc(strlen(PROGRAM_TITLE_STRING) + 1 + + strlen(getProgramVersionString()) + 1); + + sprintf(program_init_string, "%s %s", + PROGRAM_TITLE_STRING, getProgramVersionString()); + } +#else + if (program_init_string == NULL) + { + program_init_string = checked_malloc(strlen(PROGRAM_TITLE_STRING) + 1 + + strlen(getProgramVersionString()) + 1 + + strlen(TARGET_STRING) + 1); + + sprintf(program_init_string, "%s %s %s", + PROGRAM_TITLE_STRING, getProgramVersionString(), TARGET_STRING); + } #endif + return program_init_string; +} char *getWindowTitleString() { - return WINDOW_TITLE_STRING; +#ifdef DEBUG + static char *window_title_string = NULL; + + if (window_title_string == NULL) + { + window_title_string = checked_malloc(strlen(getProgramInitString()) + 1 + + strlen(getCompileDateString()) + 2 +1); + + sprintf(window_title_string, "%s [%s]", + getProgramInitString(), getCompileDateString()); + } + + return window_title_string; +#else + return getProgramInitString(); +#endif }