1 // ============================================================================
2 // Rocks'n'Diamonds - McDuffin Strikes Back!
3 // ----------------------------------------------------------------------------
4 // (c) 1995-2014 by Artsoft Entertainment
7 // http://www.artsoft.org/
8 // ----------------------------------------------------------------------------
10 // ============================================================================
12 #include "libgame/libgame.h"
18 #define USE_EXTENDED_VERSION 1
21 char *getCompileDateString()
23 return COMPILE_DATE_STRING;
26 char *getProgramReleaseVersionString()
28 static char program_version_string[32];
30 #if USE_EXTENDED_VERSION
31 sprintf(program_version_string, "%d.%d.%d.%d",
32 PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH,
33 PROGRAM_VERSION_BUILD);
35 sprintf(program_version_string, "%d.%d.%d",
36 PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH);
39 return program_version_string;
42 char *getProgramFullVersionString()
44 static char program_version_string[32];
46 #if USE_EXTENDED_VERSION
47 sprintf(program_version_string, "%d.%d.%d.%d",
48 PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH,
49 PROGRAM_VERSION_BUILD);
51 sprintf(program_version_string, "%d.%d.%d-%d",
52 PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH,
53 PROGRAM_VERSION_BUILD);
56 return program_version_string;
59 char *getProgramVersionString()
62 return getProgramFullVersionString();
64 return getProgramReleaseVersionString();
68 char *getProgramInitString()
70 static char *program_init_string = NULL;
73 // do not display compile target anymore, as it is almost always "SDL" now
74 if (program_init_string == NULL)
76 program_init_string = checked_malloc(strlen(PROGRAM_TITLE_STRING) + 1 +
77 strlen(getProgramVersionString()) + 1);
79 sprintf(program_init_string, "%s %s",
80 PROGRAM_TITLE_STRING, getProgramVersionString());
83 if (program_init_string == NULL)
85 program_init_string = checked_malloc(strlen(PROGRAM_TITLE_STRING) + 1 +
86 strlen(getProgramVersionString()) + 1 +
87 strlen(TARGET_STRING) + 1);
89 sprintf(program_init_string, "%s %s %s",
90 PROGRAM_TITLE_STRING, getProgramVersionString(), TARGET_STRING);
94 return program_init_string;
97 char *getWindowTitleString()
100 static char *window_title_string = NULL;
102 checked_free(window_title_string);
105 window_title_string = checked_malloc(strlen(getProgramInitString()) + 20 +
106 strlen(getCompileDateString()) + 2 + 1);
108 sprintf(window_title_string, "%s (%d %%) [%s]",
109 getProgramInitString(), setup.window_scaling_percent,
110 getCompileDateString());
112 window_title_string = checked_malloc(strlen(getProgramInitString()) + 20);
114 sprintf(window_title_string, "%s (%d %%)",
115 getProgramInitString(), setup.window_scaling_percent);
118 return window_title_string;
123 static char *window_title_string = NULL;
125 if (window_title_string == NULL)
127 window_title_string = checked_malloc(strlen(getProgramInitString()) + 1 +
128 strlen(getCompileDateString()) + 2 +1);
130 sprintf(window_title_string, "%s [%s]",
131 getProgramInitString(), getCompileDateString());
134 return window_title_string;
136 return getProgramInitString();