-/***********************************************************
-* Rocks'n'Diamonds -- McDuffin Strikes Back! *
-*----------------------------------------------------------*
-* (c) 1995-2002 Artsoft Entertainment *
-* Holger Schemel *
-* Detmolder Strasse 189 *
-* 33604 Bielefeld *
-* Germany *
-* e-mail: info@artsoft.org *
-*----------------------------------------------------------*
-* config.c *
-***********************************************************/
+// ============================================================================
+// Rocks'n'Diamonds - McDuffin Strikes Back!
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+// Holger Schemel
+// info@artsoft.org
+// http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// config.c
+// ============================================================================
#include "libgame/libgame.h"
#include "config.h"
#include "conftime.h"
-/* use timestamp created at compile-time */
-#define PROGRAM_BUILD_STRING PROGRAM_IDENT_STRING " " COMPILE_DATE_STRING
-#ifdef DEBUG
-#undef WINDOW_TITLE_STRING
-#define WINDOW_TITLE_STRING PROGRAM_TITLE_STRING " " PROGRAM_BUILD_STRING
-#endif
+char *getCompileDateString()
+{
+ return COMPILE_DATE_STRING;
+}
+
+char *getProgramTitleString()
+{
+ return program.program_title;
+}
+
+char *getProgramVersionString()
+{
+ static char program_version_string[32];
+
+ sprintf(program_version_string, "%d.%d.%d.%d%s",
+ PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH,
+ PROGRAM_VERSION_BUILD, PROGRAM_VERSION_EXTRA);
+
+ return program_version_string;
+}
+
+char *getProgramInitString()
+{
+ static char *program_init_string = NULL;
+
+ if (program_init_string == NULL)
+ {
+ program_init_string = checked_malloc(strlen(getProgramTitleString()) + 1 +
+ strlen(getProgramVersionString()) + 1);
+
+ sprintf(program_init_string, "%s %s",
+ getProgramTitleString(), getProgramVersionString());
+ }
+
+ return program_init_string;
+}
char *getWindowTitleString()
{
- return WINDOW_TITLE_STRING;
+ static char *window_title_string = NULL;
+
+ checked_free(window_title_string);
+
+#if defined(TARGET_SDL2)
+
+#ifdef DEBUG
+ window_title_string = checked_malloc(strlen(getProgramInitString()) + 20 +
+ strlen(getCompileDateString()) + 2 + 1);
+
+ sprintf(window_title_string, "%s (%d %%) [%s]",
+ getProgramInitString(), video.window_scaling_percent,
+ getCompileDateString());
+#else
+ window_title_string = checked_malloc(strlen(getProgramInitString()) + 20);
+
+ sprintf(window_title_string, "%s (%d %%)",
+ getProgramInitString(), video.window_scaling_percent);
+#endif
+
+#else
+
+#ifdef DEBUG
+ window_title_string = checked_malloc(strlen(getProgramInitString()) + 1 +
+ strlen(getCompileDateString()) + 2 + 1);
+
+ sprintf(window_title_string, "%s [%s]",
+ getProgramInitString(), getCompileDateString());
+#else
+ window_title_string = checked_malloc(strlen(getProgramInitString()) + 1);
+
+ sprintf(window_title_string, "%s",
+ getProgramInitString());
+#endif
+
+#endif
+
+ return window_title_string;
}