79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef ECONOMY_H
 | |
| #define ECONOMY_H
 | |
| 
 | |
| typedef struct {
 | |
| 	// Maximum possible loan
 | |
| 	int32 max_loan;
 | |
| 	int32 max_loan_unround;
 | |
| 	// Economy fluctuation status
 | |
| 	int fluct;
 | |
| 	// Interest
 | |
| 	byte interest_rate;
 | |
| 	byte infl_amount;
 | |
| 	byte infl_amount_pr;
 | |
| } Economy;
 | |
| 
 | |
| VARDEF Economy _economy;
 | |
| 
 | |
| typedef struct Subsidy {
 | |
| 	byte cargo_type;
 | |
| 	byte age;
 | |
| 	uint16 from;
 | |
| 	uint16 to;
 | |
| } Subsidy;
 | |
| 
 | |
| 
 | |
| enum {
 | |
|     SCORE_VEHICLES = 0,
 | |
|     SCORE_STATIONS = 1,
 | |
|     SCORE_MIN_PROFIT = 2,
 | |
|     SCORE_MIN_INCOME = 3,
 | |
|     SCORE_MAX_INCOME = 4,
 | |
|     SCORE_DELIVERED = 5,
 | |
|     SCORE_CARGO = 6,
 | |
|     SCORE_MONEY = 7,
 | |
|     SCORE_LOAN = 8,
 | |
|     SCORE_TOTAL = 9, // This must always be the last entry
 | |
| 
 | |
|     NUM_SCORE = 10, // How many scores are there..
 | |
| 
 | |
|     SCORE_MAX = 1000, 	// The max score that can be in the performance history
 | |
|     					//  the scores together of score_info is allowed to be more!
 | |
| };
 | |
| 
 | |
| typedef struct ScoreInfo {
 | |
|     byte id;			// Unique ID of the score
 | |
|     int needed;			// How much you need to get the perfect score
 | |
|     int score;			// How much score it will give
 | |
| } ScoreInfo;
 | |
| 
 | |
| static const ScoreInfo score_info[] = {
 | |
|     {SCORE_VEHICLES,		120, 			100},
 | |
|     {SCORE_STATIONS,		80, 			100},
 | |
|     {SCORE_MIN_PROFIT,	10000,		100},
 | |
|     {SCORE_MIN_INCOME,	50000,		50},
 | |
|     {SCORE_MAX_INCOME,	100000,		100},
 | |
|     {SCORE_DELIVERED,		40000, 		400},
 | |
|     {SCORE_CARGO,				8,				50},
 | |
|     {SCORE_MONEY,				10000000,	50},
 | |
|     {SCORE_LOAN,				250000,		50},
 | |
|     {SCORE_TOTAL,				0,				0}
 | |
| };
 | |
| 
 | |
| int _score_part[MAX_PLAYERS][NUM_SCORE];
 | |
| 
 | |
| int UpdateCompanyRatingAndValue(Player *p, bool update);
 | |
| void UpdatePlayerHouse(Player *p, uint score);
 | |
| 
 | |
| 
 | |
| VARDEF Subsidy _subsidies[MAX_PLAYERS];
 | |
| Pair SetupSubsidyDecodeParam(Subsidy *s, bool mode);
 | |
| void DeleteSubsidyWithIndustry(uint16 index);
 | |
| void DeleteSubsidyWithStation(uint16 index);
 | |
| void RemoteSubsidyAdd(Subsidy *s_new);
 | |
| 
 | |
| int32 GetTransportedGoodsIncome(uint num_pieces, uint dist, byte transit_days, byte cargo_type);
 | |
| uint MoveGoodsToStation(uint tile, int w, int h, int type, uint amount);
 | |
| 
 | |
| #endif /* ECONOMY_H */
 | 
