1 #pragma once
2 
3 /* Game resources */
4 
5 #include "Types.h"
6 #include "IEncodingCorrector.h"
7 #include "stracciatella.h"
8 
9 #include "StringEncodingTypes.h"
10 
11 #include <string_theory/string>
12 
13 #include <vector>
14 
15 /** List of supported game versions (localizations). */
16 using GameVersion = VanillaVersion;
17 
18 enum MultiLanguageGraphic
19 {
20 	MLG_AIMSYMBOL,
21 	MLG_BOBBYNAME,
22 	MLG_BOBBYRAYAD21,
23 	MLG_BOBBYRAYLINK,
24 	MLG_CLOSED,
25 	MLG_CONFIRMORDER,
26 	MLG_DESKTOP,
27 	MLG_FUNERALAD9,
28 	MLG_GOLDPIECEBUTTONS,
29 	MLG_HISTORY,
30 	MLG_IMPSYMBOL,
31 	MLG_INSURANCEAD10,
32 	MLG_INSURANCELINK,
33 	MLG_INSURANCETITLE, //LargeTitle
34 	MLG_LARGEFLORISTSYMBOL, //LargeSymbol
35 	MLG_LOADSAVEHEADER, //LoadScreenAddOns
36 	MLG_MCGILLICUTTYS,
37 	MLG_MORTUARY,
38 	MLG_MORTUARYLINK,
39 	MLG_OPTIONHEADER, //OptionScreenAddOns
40 	MLG_ORDERGRID,
41 	MLG_PREBATTLEPANEL,
42 	MLG_SMALLFLORISTSYMBOL, //SmallSymbol
43 	MLG_SMALLTITLE,
44 	MLG_SPLASH,
45 	MLG_STATSBOX,
46 	MLG_STOREPLAQUE,
47 	MLG_TITLETEXT,
48 	MLG_TOALUMNI,
49 	MLG_TOMUGSHOTS,
50 	MLG_TOSTATS,
51 	MLG_WARNING,
52 	MLG_YOURAD13,
53 	MSG__LAST
54 };
55 
56 char const* GetMLGFilename(MultiLanguageGraphic);
57 
58 /** Choose game version. */
59 void setGameVersion(GameVersion ver);
60 
61 /** Get list of resource libraries. */
62 std::vector<ST::string> GetResourceLibraries(const ST::string &dataDir);
63 
64 /**
65  * Get encoding corrector for strings in data files.
66  * @return NULL when no encoding corrector is required */
67 const IEncodingCorrector* getDataFilesEncodingCorrector();
68 
69 /** Check if this is English version of the game. */
70 bool isEnglishVersion();
71 
72 /** Check if this is German version of the game. */
73 bool isGermanVersion();
74 
75 /** Check if this is Polish version of the game. */
76 bool isPolishVersion();
77 
78 /** Check if this is Russian version of the game. */
79 bool isRussianVersion();
80 
81 /** Check if this is Russian GOLD version of the game. */
82 bool isRussianGoldVersion();
83 
84 /** Get major map version. */
85 FLOAT getMajorMapVersion();
86 
87 char32_t getZeroGlyphChar();
88 
89 /*************************************************************
90  *
91  ************************************************************/
92 
93 /** Get current string encoding type. */
94 STRING_ENC_TYPE getStringEncType();
95