(svn r21162) -Codechange: move the config "field" for the language file out of dynlang

This commit is contained in:
rubidium 2010-11-13 11:28:55 +00:00
parent f4e4056aed
commit a664227c8e
2 changed files with 7 additions and 4 deletions

View File

@ -40,10 +40,11 @@
#include "table/strings.h"
#include "table/control_codes.h"
char _config_language_file[MAX_PATH]; ///< The file (name) stored in the configuration.
const LanguageMetadata *_current_language = NULL; ///< The currently loaded language.
DynamicLanguages _dynlang; ///< Language information of the program.
TextDirection _current_text_dir; ///< Text direction of the currently selected language
TextDirection _current_text_dir; ///< Text direction of the currently selected language.
uint64 _decode_parameters[20]; ///< Global array of string parameters. To access, use #SetDParam.
static char *StationGetSpecialString(char *buff, int x, const char *last);
@ -1387,7 +1388,7 @@ bool ReadLanguagePack(int lang_index)
_current_language = &_dynlang.ent[lang_index];
_current_text_dir = (TextDirection)_current_language->text_dir;
const char *c_file = strrchr(_current_language->file, PATHSEPCHAR) + 1;
strecpy(_dynlang.curr_file, c_file, lastof(_dynlang.curr_file));
strecpy(_config_language_file, c_file, lastof(_config_language_file));
SetCurrentGrfLangID(_current_language->newgrflangid);
InitializeSortedCargoSpecs();
@ -1548,7 +1549,7 @@ void InitializeLanguagePacks()
* configuration file, local environment and last, if nothing found,
* english. If def equals -1, we have not picked a default language */
const char *lang_file = strrchr(_dynlang.ent[i].file, PATHSEPCHAR) + 1;
if (strcmp(lang_file, _dynlang.curr_file) == 0) chosen_language = i;
if (strcmp(lang_file, _config_language_file) == 0) chosen_language = i;
if (chosen_language == -1) {
if (strcmp (_dynlang.ent[i].isocode, "en_GB") == 0) en_GB_fallback = i;

View File

@ -249,6 +249,8 @@ static const SettingDescGlobVarList _win32_settings[] = {
};
#endif /* WIN32 */
extern char _config_language_file[MAX_PATH];
static const SettingDescGlobVarList _misc_settings[] = {
SDTG_MMANY("display_opt", SLE_UINT8, S, 0, _display_opt, (1 << DO_SHOW_TOWN_NAMES | 1 << DO_SHOW_STATION_NAMES | 1 << DO_SHOW_SIGNS | 1 << DO_FULL_ANIMATION | 1 << DO_FULL_DETAIL | 1 << DO_SHOW_WAYPOINT_NAMES), "SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION||FULL_DETAIL|WAYPOINTS", STR_NULL, NULL),
SDTG_BOOL("news_ticker_sound", S, 0, _news_ticker_sound, true, STR_NULL, NULL),
@ -260,7 +262,7 @@ static const SettingDescGlobVarList _misc_settings[] = {
SDTG_STR("musicdriver", SLE_STRQ, S, 0, _ini_musicdriver, NULL, STR_NULL, NULL),
SDTG_STR("sounddriver", SLE_STRQ, S, 0, _ini_sounddriver, NULL, STR_NULL, NULL),
SDTG_STR("blitter", SLE_STRQ, S, 0, _ini_blitter, NULL, STR_NULL, NULL),
SDTG_STR("language", SLE_STRB, S, 0, _dynlang.curr_file, NULL, STR_NULL, NULL),
SDTG_STR("language", SLE_STRB, S, 0, _config_language_file, NULL, STR_NULL, NULL),
SDTG_CONDLIST("resolution", SLE_INT, 2, S, 0, _cur_resolution, "640,480", STR_NULL, NULL, 0, SL_MAX_VERSION), // workaround for implicit lengthof() in SDTG_LIST
SDTG_STR("screenshot_format",SLE_STRB, S, 0, _screenshot_format_name,NULL, STR_NULL, NULL),
SDTG_STR("savegame_format", SLE_STRB, S, 0, _savegame_format, NULL, STR_NULL, NULL),