Alchemy
Loading...
Searching...
No Matches

version.h

Go to the documentation of this file.
1#ifndef TBS_VERSION_H
2#define TBS_VERSION_H
3
4/// @file
5/// The patch levels: our groups of the measured changes from the Japanese
6/// release.
7
8#include "game/edition.h"
9
10#if (defined(TBS_EDITION_JA) + defined(TBS_EDITION_EN) + \
11 defined(TBS_EDITION_DE) + defined(TBS_EDITION_ES) + \
12 defined(TBS_EDITION_FR) + defined(TBS_EDITION_IT)) > 1
13#error Select exactly one TBS edition
14#endif
15#if (defined(TBS_EDITION_JA) && TBS_EDITION_JA != 1) || \
16 (defined(TBS_EDITION_EN) && TBS_EDITION_EN != 1) || \
17 (defined(TBS_EDITION_DE) && TBS_EDITION_DE != 1) || \
18 (defined(TBS_EDITION_ES) && TBS_EDITION_ES != 1) || \
19 (defined(TBS_EDITION_FR) && TBS_EDITION_FR != 1) || \
20 (defined(TBS_EDITION_IT) && TBS_EDITION_IT != 1)
21#error Edition definitions must be 1
22#endif
23
24// Observed cumulative logic changes from the Japanese baseline. These are our
25// patch groups, not recovered Camelot version numbers or a release chronology.
26// Each conditional stays beside the behavior it changes; language choices
27// use LANGUAGE independently of these groups.
28#if defined(TBS_EDITION_ES) || defined(TBS_EDITION_IT)
29#define TBS_PATCH_LEVEL 4
30#elif defined(TBS_EDITION_FR)
31#define TBS_PATCH_LEVEL 3
32#elif defined(TBS_EDITION_DE)
33#define TBS_PATCH_LEVEL 2
34#elif defined(TBS_EDITION_EN)
35#define TBS_PATCH_LEVEL 1
36#else
37#define TBS_PATCH_LEVEL 0
38#endif
39
40#define TBS_PATCH_1 (TBS_PATCH_LEVEL >= 1)
41#define TBS_PATCH_2 (TBS_PATCH_LEVEL >= 2)
42#define TBS_PATCH_3 (TBS_PATCH_LEVEL >= 3)
43#define TBS_PATCH_4 (TBS_PATCH_LEVEL >= 4)
44
45#endif
The edition's language, for C to compare (LANGUAGE == LANGUAGE_GERMAN).