Changeset - r9730:db92977da47b
[Not reviewed]
master
0 3 0
smatz - 16 years ago 2008-07-28 15:31:11
smatz@openttd.org
(svn r13859) -Fix: loading of TTD(Patch) savegames from the command line didn't work
3 files changed with 19 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/fios.cpp
Show inline comments
 
@@ -297,12 +297,12 @@ static FiosItem *FiosGetFileList(SaveLoa
 
 * @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 FiosGetSavegameListCallb
 
	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;
 
		}
 
	}
src/fios.h
Show inline comments
 
@@ -105,6 +105,8 @@ StringID FiosGetDescText(const char **pa
 
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);
 

	
src/openttd.cpp
Show inline comments
 
@@ -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;
0 comments (0 inline, 0 general)