(svn r1881) -Fix: [ 1119308 ] Max passengers / mail variables are now 32 bit
authorcelestar
Thu, 17 Feb 2005 10:56:19 +0000
changeset 1377 2a418162176e
parent 1376 425781645fba
child 1378 ebb8d52f0352
(svn r1881) -Fix: [ 1119308 ] Max passengers / mail variables are now 32 bit
ai_new.c
functions.h
lang/english.txt
town.h
town_cmd.c
ttd.c
--- a/ai_new.c	Thu Feb 17 07:49:31 2005 +0000
+++ b/ai_new.c	Thu Feb 17 10:56:19 2005 +0000
@@ -190,7 +190,7 @@
 	if (type == AI_CITY) {
 		Town *t = GetTown(ic);
 		Station *st;
-		int count = 0;
+		uint count = 0;
 		int j = 0;
 
 		// We don't like roadconstructions, don't even true such a city
--- a/functions.h	Thu Feb 17 07:49:31 2005 +0000
+++ b/functions.h	Thu Feb 17 10:56:19 2005 +0000
@@ -23,6 +23,7 @@
 void ClickTile(uint tile);
 void GetTileDesc(uint tile, TileDesc *td);
 void DrawTile(TileInfo *ti);
+void UpdateTownMaxPass(Town *t);
 
 bool IsValidTile(uint tile);
 
--- a/lang/english.txt	Thu Feb 17 07:49:31 2005 +0000
+++ b/lang/english.txt	Thu Feb 17 10:56:19 2005 +0000
@@ -1509,8 +1509,8 @@
 STR_200A_TOWN_NAMES_CLICK_ON_NAME				:{BLACK}Town names - click on name to centre view on town
 STR_200B_CENTER_THE_MAIN_VIEW_ON				:{BLACK}Centre the main view on town location
 STR_200C_CHANGE_TOWN_NAME					:{BLACK}Change town name
-STR_200D_PASSENGERS_LAST_MONTH_MAX				:{BLACK}Passengers last month: {ORANGE}{COMMA16}{BLACK}  max: {ORANGE}{COMMA16}
-STR_200E_MAIL_LAST_MONTH_MAX					:{BLACK}Mail last month: {ORANGE}{COMMA16}{BLACK}  max: {ORANGE}{COMMA16}
+STR_200D_PASSENGERS_LAST_MONTH_MAX				:{BLACK}Passengers last month: {ORANGE}{COMMA32}{BLACK}  max: {ORANGE}{COMMA32}
+STR_200E_MAIL_LAST_MONTH_MAX					:{BLACK}Mail last month: {ORANGE}{COMMA32}{BLACK}  max: {ORANGE}{COMMA32}
 STR_200F_TALL_OFFICE_BLOCK					:Tall office block
 STR_2010_OFFICE_BLOCK						:Office block
 STR_2011_SMALL_BLOCK_OF_FLATS					:Small block of flats
--- a/town.h	Thu Feb 17 07:49:31 2005 +0000
+++ b/town.h	Thu Feb 17 10:56:19 2005 +0000
@@ -35,14 +35,14 @@
 	int16 ratings[MAX_PLAYERS];
 
 	// Maximum amount of passengers and mail that can be transported.
-	uint16 max_pass;
-	uint16 max_mail;
-	uint16 new_max_pass;
-	uint16 new_max_mail;
-	uint16 act_pass;
-	uint16 act_mail;
-	uint16 new_act_pass;
-	uint16 new_act_mail;
+	uint32 max_pass;
+	uint32 max_mail;
+	uint32 new_max_pass;
+	uint32 new_max_mail;
+	uint32 act_pass;
+	uint32 act_mail;
+	uint32 new_act_pass;
+	uint32 new_act_mail;
 
 	// Amount of passengers that were transported.
 	byte pct_pass_transported;
--- a/town_cmd.c	Thu Feb 17 07:49:31 2005 +0000
+++ b/town_cmd.c	Thu Feb 17 10:56:19 2005 +0000
@@ -898,7 +898,7 @@
 	}
 }
 
-static void UpdateTownMaxPass(Town *t)
+void UpdateTownMaxPass(Town *t)
 {
 	t->max_pass = t->population >> 3;
 	t->max_mail = t->population >> 4;
@@ -1926,14 +1926,23 @@
 	// failed bribe attempts are stored since savegame format 4
 	SLE_CONDARR(Town,unwanted,			SLE_INT8, 8, 4,255),
 
-	SLE_VAR(Town,max_pass,		SLE_UINT16),
-	SLE_VAR(Town,max_mail,		SLE_UINT16),
-	SLE_VAR(Town,new_max_pass,SLE_UINT16),
-	SLE_VAR(Town,new_max_mail,SLE_UINT16),
-	SLE_VAR(Town,act_pass,		SLE_UINT16),
-	SLE_VAR(Town,act_mail,		SLE_UINT16),
-	SLE_VAR(Town,new_act_pass,SLE_UINT16),
-	SLE_VAR(Town,new_act_mail,SLE_UINT16),
+	SLE_CONDVAR(Town,max_pass,		SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
+	SLE_CONDVAR(Town,max_mail,		SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
+	SLE_CONDVAR(Town,new_max_pass,SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
+	SLE_CONDVAR(Town,new_max_mail,SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
+	SLE_CONDVAR(Town,act_pass,		SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
+	SLE_CONDVAR(Town,act_mail,		SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
+	SLE_CONDVAR(Town,new_act_pass,SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
+	SLE_CONDVAR(Town,new_act_mail,SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
+
+	SLE_CONDVAR(Town,max_pass,		SLE_UINT32, 9, 255),
+	SLE_CONDVAR(Town,max_mail,		SLE_UINT32, 9, 255),
+	SLE_CONDVAR(Town,new_max_pass,SLE_UINT32, 9, 255),
+	SLE_CONDVAR(Town,new_max_mail,SLE_UINT32, 9, 255),
+	SLE_CONDVAR(Town,act_pass,		SLE_UINT32, 9, 255),
+	SLE_CONDVAR(Town,act_mail,		SLE_UINT32, 9, 255),
+	SLE_CONDVAR(Town,new_act_pass,SLE_UINT32, 9, 255),
+	SLE_CONDVAR(Town,new_act_mail,SLE_UINT32, 9, 255),
 
 	SLE_VAR(Town,pct_pass_transported,SLE_UINT8),
 	SLE_VAR(Town,pct_mail_transported,SLE_UINT8),
--- a/ttd.c	Thu Feb 17 07:49:31 2005 +0000
+++ b/ttd.c	Thu Feb 17 10:56:19 2005 +0000
@@ -1345,6 +1345,13 @@
 		} END_TILE_LOOP(tile, MapSizeX(), MapSizeY(), 0);
 	}
 
+	if (version < 0x900) {
+		Town *t;
+		FOR_ALL_TOWNS(t) {
+			UpdateTownMaxPass(t);
+		}
+	}
+
 	return true;
 }