summaryrefslogtreecommitdiff
path: root/src/openttd.cpp
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2008-07-28 15:31:11 +0000
committersmatz <smatz@openttd.org>2008-07-28 15:31:11 +0000
commitcd75303d801e0debd0a7da20b09b3f7c2bbee80e (patch)
tree92adee9802fa2afd2948d6271d9d99a5c9b885dd /src/openttd.cpp
parent1adcf9c81b125e818947d3e2dfad6a678bb0ec3e (diff)
downloadopenttd-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.cpp18
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;