diff options
author | darkvater <darkvater@openttd.org> | 2005-03-28 13:30:51 +0000 |
---|---|---|
committer | darkvater <darkvater@openttd.org> | 2005-03-28 13:30:51 +0000 |
commit | 6bca4c041a243de1750f660aec7b386bdfce335e (patch) | |
tree | 6cffe0e6190cbdddbfde21540b0a10de2eadcef2 /misc_gui.c | |
parent | 4573a9f872ca0f384d9db513687fcf35f664863f (diff) | |
download | openttd-6bca4c041a243de1750f660aec7b386bdfce335e.tar.xz |
(svn r2100) - Fix: [1024703]: Infinite access for A:\ (win32). Patch [1171208]. Only requery drive(s) if the user changes a directory, also surpress the OS error box that pops up on some windows machines. Tron + glx (and me)
Diffstat (limited to 'misc_gui.c')
-rw-r--r-- | misc_gui.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/misc_gui.c b/misc_gui.c index acfc5e83c..0860246f8 100644 --- a/misc_gui.c +++ b/misc_gui.c @@ -20,6 +20,7 @@ #include "hal.h" // for file list +static bool _fios_path_changed; static bool _savegame_sort_dirty; bool _query_string_active; @@ -1126,25 +1127,30 @@ static const Widget _save_dialog_scen_widgets[] = { void BuildFileList(void) { + _fios_path_changed = true; FiosFreeSavegameList(); - if(_saveload_mode==SLD_NEW_GAME || _saveload_mode==SLD_LOAD_SCENARIO || _saveload_mode==SLD_SAVE_SCENARIO) + if (_saveload_mode == SLD_NEW_GAME || _saveload_mode == SLD_LOAD_SCENARIO || _saveload_mode == SLD_SAVE_SCENARIO) { _fios_list = FiosGetScenarioList(&_fios_num, _saveload_mode); - else + } else _fios_list = FiosGetSavegameList(&_fios_num, _saveload_mode); } static void DrawFiosTexts(void) { - const char *path; - StringID str; + static const char *path = NULL; + static StringID str = STR_4006_UNABLE_TO_READ_DRIVE; + static uint32 tot = 0; - str = FiosGetDescText(&path); - if (str != 0) - DrawString(2, 37, str, 0); + if (_fios_path_changed) { + str = FiosGetDescText(&path, &tot); + _fios_path_changed = false; + } + + if (str != STR_4006_UNABLE_TO_READ_DRIVE) SetDParam(0, tot); + DrawString(2, 37, str, 0); DoDrawString(path, 2, 27, 16); } - static void MakeSortedSaveGameList(void) { /* Directories are always above the files (FIOS_TYPE_DIR) |