e44e8348c25a946890cb6d291dad8ef9ba398a75
[rocksndiamonds.git] / src / config.c
1 // ============================================================================
2 // Rocks'n'Diamonds - McDuffin Strikes Back!
3 // ----------------------------------------------------------------------------
4 // (c) 1995-2014 by Artsoft Entertainment
5 //                  Holger Schemel
6 //                  info@artsoft.org
7 //                  http://www.artsoft.org/
8 // ----------------------------------------------------------------------------
9 // config.c
10 // ============================================================================
11
12 #include "libgame/libgame.h"
13
14 #include "config.h"
15 #include "conftime.h"
16
17
18 #define USE_EXTENDED_VERSION    1
19
20
21 char *getCompileDateString()
22 {
23   return COMPILE_DATE_STRING;
24 }
25
26 char *getProgramReleaseVersionString()
27 {
28   static char program_version_string[32];
29
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);
34 #else
35   sprintf(program_version_string, "%d.%d.%d",
36           PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH);
37 #endif
38
39   return program_version_string;
40 }
41
42 char *getProgramFullVersionString()
43 {
44   static char program_version_string[32];
45
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);
50 #else
51   sprintf(program_version_string, "%d.%d.%d-%d",
52           PROGRAM_VERSION_MAJOR, PROGRAM_VERSION_MINOR, PROGRAM_VERSION_PATCH,
53           PROGRAM_VERSION_BUILD);
54 #endif
55
56   return program_version_string;
57 }
58
59 char *getProgramVersionString()
60 {
61 #ifdef DEBUG
62   return getProgramFullVersionString();
63 #else
64   return getProgramReleaseVersionString();
65 #endif
66 }
67
68 char *getProgramInitString()
69 {
70   static char *program_init_string = NULL;
71
72 #if 1
73   // do not display compile target anymore, as it is almost always "SDL" now
74   if (program_init_string == NULL)
75   {
76     program_init_string = checked_malloc(strlen(PROGRAM_TITLE_STRING) + 1 +
77                                          strlen(getProgramVersionString()) + 1);
78
79     sprintf(program_init_string, "%s %s",
80             PROGRAM_TITLE_STRING, getProgramVersionString());
81   }
82 #else
83   if (program_init_string == NULL)
84   {
85     program_init_string = checked_malloc(strlen(PROGRAM_TITLE_STRING) + 1 +
86                                          strlen(getProgramVersionString()) + 1 +
87                                          strlen(TARGET_STRING) + 1);
88
89     sprintf(program_init_string, "%s %s %s",
90             PROGRAM_TITLE_STRING, getProgramVersionString(), TARGET_STRING);
91   }
92 #endif
93
94   return program_init_string;
95 }
96
97 char *getWindowTitleString()
98 {
99 #if 1
100   static char *window_title_string = NULL;
101
102   checked_free(window_title_string);
103
104 #ifdef DEBUG
105   window_title_string = checked_malloc(strlen(getProgramInitString()) + 20 +
106                                        strlen(getCompileDateString()) + 2 + 1);
107
108   sprintf(window_title_string, "%s (%d %%) [%s]",
109           getProgramInitString(), setup.window_scaling_percent,
110           getCompileDateString());
111 #else
112   window_title_string = checked_malloc(strlen(getProgramInitString()) + 20);
113
114   sprintf(window_title_string, "%s (%d %%)",
115           getProgramInitString(), setup.window_scaling_percent);
116 #endif
117
118   return window_title_string;
119
120 #else
121
122 #ifdef DEBUG
123   static char *window_title_string = NULL;
124
125   if (window_title_string == NULL)
126   {
127     window_title_string = checked_malloc(strlen(getProgramInitString()) + 1 +
128                                          strlen(getCompileDateString()) + 2 +1);
129
130     sprintf(window_title_string, "%s [%s]",
131             getProgramInitString(), getCompileDateString());
132   }
133
134   return window_title_string;
135 #else
136   return getProgramInitString();
137 #endif
138
139 #endif
140 }