|
|
|
@ -2377,6 +2377,16 @@ void InitializeGame(uint size_x, uint size_y, bool reset_date, bool reset_settin
|
|
|
|
|
extern bool AfterLoadGame();
|
|
|
|
|
extern bool LoadOldSaveGame(const char *file);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Clear temporary data that is passed between various saveload phases.
|
|
|
|
|
*/
|
|
|
|
|
static void ResetSaveloadData()
|
|
|
|
|
{
|
|
|
|
|
ResetTempEngineData();
|
|
|
|
|
ResetLabelMaps();
|
|
|
|
|
ResetOldWaypoints();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Clear/free saveload state.
|
|
|
|
|
*/
|
|
|
|
@ -2623,6 +2633,8 @@ static SaveOrLoadResult DoLoad(LoadFilter *reader, bool load_check)
|
|
|
|
|
_next_offs = 0;
|
|
|
|
|
|
|
|
|
|
if (!load_check) {
|
|
|
|
|
ResetSaveloadData();
|
|
|
|
|
|
|
|
|
|
/* Old maps were hardcoded to 256x256 and thus did not contain
|
|
|
|
|
* any mapsize information. Pre-initialize to 256x256 to not to
|
|
|
|
|
* confuse old games */
|
|
|
|
@ -2727,6 +2739,8 @@ SaveOrLoadResult SaveOrLoad(const char *filename, SaveLoadOperation fop, Detaile
|
|
|
|
|
try {
|
|
|
|
|
/* Load a TTDLX or TTDPatch game */
|
|
|
|
|
if (fop == SLO_LOAD && dft == DFT_OLD_GAME_FILE) {
|
|
|
|
|
ResetSaveloadData();
|
|
|
|
|
|
|
|
|
|
InitializeGame(256, 256, true, true); // set a mapsize of 256x256 for TTDPatch games or it might get confused
|
|
|
|
|
|
|
|
|
|
/* TTD/TTO savegames have no NewGRFs, TTDP savegame have them
|
|
|
|
|