File diff r12929:f1f4ae7c2a92 → r12930:ae0ddab1903d
src/saveload/afterload.cpp
Show inline comments
 
@@ -231,12 +231,14 @@ static void InitializeWindowsAndCaches()
 
		 * thus the MIN_YEAR (which is really nothing more than Zero, initialized value) test */
 
		if (_file_to_saveload.filetype == FT_SCENARIO && c->inaugurated_year != MIN_YEAR) {
 
			c->inaugurated_year = _cur_year;
 
		}
 
	}
 

	
 
	RecomputePrices();
 

	
 
	SetCachedEngineCounts();
 

	
 
	Station::RecomputeIndustriesNearForAll();
 
	RebuildSubsidisedSourceAndDestinationCache();
 

	
 
	/* Towns have a noise controlled number of airports system
 
@@ -527,15 +529,12 @@ bool AfterLoadGame()
 
	 * subtype to the new format */
 
	if (CheckSavegameVersionOldStyle(17, 1)) ConvertOldMultiheadToNew();
 

	
 
	/* Connect front and rear engines of multiheaded trains */
 
	ConnectMultiheadedTrains();
 

	
 
	/* reinit the landscape variables (landscape might have changed) */
 
	InitializeLandscapeVariables(true);
 

	
 
	/* Update all vehicles */
 
	AfterLoadVehicles(true);
 

	
 
	/* Make sure there is an AI attached to an AI company */
 
	{
 
		Company *c;
 
@@ -1926,12 +1925,30 @@ bool AfterLoadGame()
 
			}
 
			/* Awarded subsidy or invalid source/destination, invalidate */
 
			delete s;
 
		}
 
	}
 

	
 
	if (CheckSavegameVersion(126)) {
 
		/* Recompute inflation based on old unround loan limit
 
		 * Note: Max loan is 500000. With an inflation of 4% across 170 years
 
		 *       that results in a max loan of about 0.7 * 2^31.
 
		 *       So taking the 16 bit fractional part into account there are plenty of bits left
 
		 *       for unmodified savegames ...
 
		 */
 
		uint64 aimed_inflation = (_economy.old_max_loan_unround << 16 | _economy.old_max_loan_unround_fract) / _settings_game.difficulty.max_loan;
 

	
 
		/* ... well, just clamp it then. */
 
		if (aimed_inflation > MAX_INFLATION) aimed_inflation = MAX_INFLATION;
 

	
 
		/* Simulate the inflation, so we also get the payment inflation */
 
		while (_economy.inflation_prices < aimed_inflation) {
 
			AddInflation(false);
 
		}
 
	}
 

	
 
	AfterLoadLabelMaps();
 

	
 
	GamelogPrintDebug(1);
 

	
 
	InitializeWindowsAndCaches();
 
	/* Restore the signals */
 
@@ -1947,13 +1964,13 @@ bool AfterLoadGame()
 
 * removed or added and changed statistics */
 
void ReloadNewGRFData()
 
{
 
	/* reload grf data */
 
	GfxLoadSprites();
 
	LoadStringWidthTable();
 
	ResetEconomy();
 
	RecomputePrices();
 
	/* reload vehicles */
 
	ResetVehiclePosHash();
 
	AfterLoadVehicles(false);
 
	StartupEngines();
 
	SetCachedEngineCounts();
 
	/* update station graphics */