Changeset - r9623:9213348794ca
[Not reviewed]
master
0 3 0
rubidium - 16 years ago 2008-07-07 09:23:54
rubidium@openttd.org
(svn r13679) -Fix [FS#2131]: saving TTD imported games in recession failed due to wrong (and unneeded) type conversions in the saveload code.
3 files changed with 3 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/economy.cpp
Show inline comments
 
@@ -1900,25 +1900,25 @@ static void SaveLoad_CAPR()
 
	uint num_cargo = CheckSavegameVersion(55) ? 12 : NUM_CARGO;
 
	int vt = CheckSavegameVersion(65) ? (SLE_FILE_I32 | SLE_VAR_I64) : SLE_INT64;
 
	SlArray(&_cargo_payment_rates,      num_cargo, vt);
 
	SlArray(&_cargo_payment_rates_frac, num_cargo, SLE_UINT16);
 
}
 

	
 
static const SaveLoad _economy_desc[] = {
 
	SLE_CONDVAR(Economy, max_loan,         SLE_FILE_I32 | SLE_VAR_I64,  0, 64),
 
	SLE_CONDVAR(Economy, max_loan,         SLE_INT64,                  65, SL_MAX_VERSION),
 
	SLE_CONDVAR(Economy, max_loan_unround, SLE_FILE_I32 | SLE_VAR_I64,  0, 64),
 
	SLE_CONDVAR(Economy, max_loan_unround, SLE_INT64,                  65, SL_MAX_VERSION),
 
	SLE_CONDVAR(Economy, max_loan_unround_fract, SLE_UINT16,           70, SL_MAX_VERSION),
 
	    SLE_VAR(Economy, fluct,            SLE_FILE_I16 | SLE_VAR_I32),
 
	    SLE_VAR(Economy, fluct,            SLE_INT16),
 
	    SLE_VAR(Economy, interest_rate,    SLE_UINT8),
 
	    SLE_VAR(Economy, infl_amount,      SLE_UINT8),
 
	    SLE_VAR(Economy, infl_amount_pr,   SLE_UINT8),
 
	    SLE_END()
 
};
 

	
 
/** Economy variables */
 
static void SaveLoad_ECMY()
 
{
 
	SlObject(&_economy, _economy_desc);
 
}
 

	
src/economy_type.h
Show inline comments
 
@@ -6,25 +6,25 @@
 
#define ECONOMY_TYPE_H
 

	
 
#include "core/overflowsafe_type.hpp"
 
#include "core/enum_type.hpp"
 
#include "cargo_type.h"
 

	
 
typedef OverflowSafeInt64 Money;
 

	
 
struct Economy {
 
	Money max_loan;         ///< Maximum possible loan
 
	Money max_loan_unround; ///< Economy fluctuation status
 
	uint16 max_loan_unround_fract; ///< Fraction of the unrounded max loan
 
	int fluct;
 
	int16 fluct;
 
	byte interest_rate;     ///< Interest
 
	byte infl_amount;       ///< inflation amount
 
	byte infl_amount_pr;    ///< inflation rate for payment rates
 
};
 

	
 
struct Subsidy {
 
	CargoID cargo_type;
 
	byte age;
 
	/* from and to can either be TownID, StationID or IndustryID */
 
	uint16 from;
 
	uint16 to;
 
};
src/oldloader.cpp
Show inline comments
 
@@ -1554,25 +1554,25 @@ static const OldChunks main_chunk[] = {
 

	
 
	OCL_VAR ( OC_UINT16,    1, &_vehicle_id_ctr_day ),
 

	
 
	OCL_CHUNK(  8, LoadOldSubsidy ),
 

	
 
	OCL_VAR ( OC_FILE_U16 | OC_VAR_U32,   1, &_next_competitor_start ),
 
	OCL_VAR ( OC_FILE_I16 | OC_VAR_I32,   1, &_saved_scrollpos_x ),
 
	OCL_VAR ( OC_FILE_I16 | OC_VAR_I32,   1, &_saved_scrollpos_y ),
 
	OCL_VAR ( OC_FILE_U16 | OC_VAR_U8,    1, &_saved_scrollpos_zoom ),
 

	
 
	OCL_VAR ( OC_FILE_U32 | OC_VAR_I64,   1, &_economy.max_loan ),
 
	OCL_VAR ( OC_FILE_U32 | OC_VAR_I64,   1, &_economy.max_loan_unround ),
 
	OCL_VAR ( OC_FILE_U16 | OC_VAR_U32,   1, &_economy.fluct ),
 
	OCL_VAR (  OC_INT16,    1, &_economy.fluct ),
 

	
 
	OCL_VAR ( OC_UINT16,    1, &_disaster_delay ),
 

	
 
	OCL_NULL( 144 ),             ///< cargo-stuff, calculated in InitializeLandscapeVariables
 

	
 
	OCL_CHUNK(256, LoadOldEngineName ),
 

	
 
	OCL_NULL( 144 ),             ///< AI cargo-stuff, calculated in InitializeLandscapeVariables
 
	OCL_NULL( 2 ),               ///< Company indexes of players, no longer in use
 

	
 
	OCL_VAR ( OC_FILE_U8 | OC_VAR_U16,    1, &_station_tick_ctr ),
 

	
0 comments (0 inline, 0 general)