mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-04 05:15:21 +00:00
(svn r13859) -Fix: loading of TTD(Patch) savegames from the command line didn't work
This commit is contained in:
parent
686019398f
commit
88637d9213
@ -297,12 +297,12 @@ static FiosItem *FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_
|
||||
* @param mode Save/load mode.
|
||||
* @param file Name of the file to check.
|
||||
* @param ext A pointer to the extension identifier inside file
|
||||
* @param title Buffer if a callback wants to lookup the title of the file
|
||||
* @param title Buffer if a callback wants to lookup the title of the file; NULL to skip the lookup
|
||||
* @return a FIOS_TYPE_* type of the found file, FIOS_TYPE_INVALID if not a savegame
|
||||
* @see FiosGetFileList
|
||||
* @see FiosGetSavegameList
|
||||
*/
|
||||
static FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title)
|
||||
FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title)
|
||||
{
|
||||
/* Show savegame files
|
||||
* .SAV OpenTTD saved game
|
||||
@ -314,7 +314,7 @@ static FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char
|
||||
if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO) {
|
||||
if (strcasecmp(ext, ".ss1") == 0 || strcasecmp(ext, ".sv1") == 0 ||
|
||||
strcasecmp(ext, ".sv2") == 0) {
|
||||
GetOldSaveGameName(title, _fios_path, file);
|
||||
if (title != NULL) GetOldSaveGameName(title, _fios_path, file);
|
||||
return FIOS_TYPE_OLDFILE;
|
||||
}
|
||||
}
|
||||
|
@ -105,6 +105,8 @@ StringID FiosGetDescText(const char **path, uint32 *total_free);
|
||||
bool FiosDelete(const char *name);
|
||||
/* Make a filename from a name */
|
||||
void FiosMakeSavegameName(char *buf, const char *name, size_t size);
|
||||
/* Determines type of savegame (or tells it is not a savegame) */
|
||||
FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title);
|
||||
|
||||
int CDECL compare_FiosItems(const void *a, const void *b);
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user