diff options
author | smatz <smatz@openttd.org> | 2008-07-28 15:31:11 +0000 |
---|---|---|
committer | smatz <smatz@openttd.org> | 2008-07-28 15:31:11 +0000 |
commit | cd75303d801e0debd0a7da20b09b3f7c2bbee80e (patch) | |
tree | 92adee9802fa2afd2948d6271d9d99a5c9b885dd /src/openttd.cpp | |
parent | 1adcf9c81b125e818947d3e2dfad6a678bb0ec3e (diff) | |
download | openttd-cd75303d801e0debd0a7da20b09b3f7c2bbee80e.tar.xz |
(svn r13859) -Fix: loading of TTD(Patch) savegames from the command line didn't work
Diffstat (limited to 'src/openttd.cpp')
-rw-r--r-- | src/openttd.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp index 7eb61c226..29f6bbb79 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -460,11 +460,21 @@ int ttd_main(int argc, char *argv[]) if (mgo.opt != NULL) { ttd_strlcpy(_file_to_saveload.name, mgo.opt, sizeof(_file_to_saveload.name)); _switch_mode = SM_LOAD; - } else { - _switch_mode = SM_NEWGAME; - /* Give a random map */ - generation_seed = InteractiveRandom(); + _file_to_saveload.mode = SL_LOAD; + + /* if the file doesn't exist or it is not a valid savegame, let the saveload code show an error */ + const char *t = strrchr(_file_to_saveload.name, '.'); + if (t != NULL) { + FiosType ft = FiosGetSavegameListCallback(SLD_LOAD_GAME, _file_to_saveload.name, t, NULL); + if (ft != FIOS_TYPE_INVALID) SetFiosType(ft); + } + + break; } + + _switch_mode = SM_NEWGAME; + /* Give a random map */ + generation_seed = InteractiveRandom(); break; case 'G': generation_seed = atoi(mgo.opt); break; case 'c': _config_file = strdup(mgo.opt); break; |