diff --git a/sc2/ChangeLog b/sc2/ChangeLog index 5b16fa11e..2b7afb8be 100644 --- a/sc2/ChangeLog +++ b/sc2/ChangeLog @@ -1,4 +1,5 @@ Changes towards version 0.4: +- Check language.txt for locale, from Zap - Make it possible to specify the config dir on the command line. (bug #645) - Svdb - Speech .txt and .ts corrections, from Nic. - SvdB diff --git a/sc2/src/options.c b/sc2/src/options.c index a17ebf73d..d3231cc57 100644 --- a/sc2/src/options.c +++ b/sc2/src/options.c @@ -23,6 +23,7 @@ #include #include #include +#include #include "port.h" #include "libs/graphics/gfx_common.h" #include "compiler.h" @@ -30,6 +31,7 @@ #include "file.h" #include "config.h" #include "libs/uio.h" +#include "libs/strlib.h" int optWhichMusic; int optWhichCoarseScan; @@ -354,6 +356,23 @@ mountDirZips (uio_MountHandle *contentHandle, uio_DirHandle *dirHandle) uio_freeDirList (dirList); } +void +initLanguage (void) +{ + STRING_TABLE langDef; + STRING locString; + UNICODE *str; + langDef = LoadStringTableFile (contentDir, "language.txt"); + if (!langDef) + return; + + locString = SetAbsStringTableIndex (langDef, 0); + str = GetStringAddress (locString); + if (str) + setlocale (LC_ALL, str); + + DestroyStringTable (langDef); +} diff --git a/sc2/src/options.h b/sc2/src/options.h index f9aeb885a..30bf721bb 100644 --- a/sc2/src/options.h +++ b/sc2/src/options.h @@ -45,9 +45,10 @@ extern uio_DirHandle *saveDir; extern uio_DirHandle *meleeDir; void prepareContentDir (const char *contentDirName, const char **addons); -void prepareConfigDir(const char *configDirName); -void prepareMeleeDir(void); -void prepareSaveDir(void); +void prepareConfigDir (const char *configDirName); +void prepareMeleeDir (void); +void prepareSaveDir (void); +void initLanguage (void); #endif diff --git a/sc2/src/starcon2.c b/sc2/src/starcon2.c index 3dc410384..ac6a45070 100644 --- a/sc2/src/starcon2.c +++ b/sc2/src/starcon2.c @@ -191,14 +191,16 @@ main (int argc, char *argv[]) sfxVolumeScale = options.sfxVolumeScale; speechVolumeScale = options.speechVolumeScale; - initIO(); + initIO (); prepareContentDir (options.contentDir, options.addons); HFree ((void *) options.addons); prepareConfigDir (options.configDir); prepareMeleeDir (); prepareSaveDir (); - initTempDir(); - + initTempDir (); + + initLanguage (); + InitTimeSystem (); InitTaskSystem ();