changeset 18268:b7b4ca0228f9 draft

(svn r23104) -Codechange: prepare the vehicle/sign z for some further changes to reduce casting
author rubidium <rubidium@openttd.org>
date Fri, 04 Nov 2011 11:09:06 +0000
parents bd462bea68f1
children c9db3e8df760
files src/aircraft_cmd.cpp src/disaster_cmd.cpp src/landscape.cpp src/landscape.h src/saveload/oldloader_sl.cpp src/saveload/signs_sl.cpp src/saveload/vehicle_sl.cpp src/signs_base.h src/vehicle_base.h
diffstat 9 files changed, 22 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/aircraft_cmd.cpp
+++ b/src/aircraft_cmd.cpp
@@ -993,7 +993,7 @@
 
 	/* make aircraft crash down to the ground */
 	if (v->crashed_counter < 500 && st == NULL && ((v->crashed_counter % 3) == 0) ) {
-		uint z = GetSlopePixelZ(v->x_pos, v->y_pos);
+		int z = GetSlopePixelZ(v->x_pos, v->y_pos);
 		v->z_pos -= 1;
 		if (v->z_pos == z) {
 			v->crashed_counter = 500;
--- a/src/disaster_cmd.cpp
+++ b/src/disaster_cmd.cpp
@@ -168,7 +168,7 @@
 		int safe_y = Clamp(y - 1, 0, MapMaxY() * TILE_SIZE);
 
 		u->x_pos = x;
-		u->y_pos = y - 1 - (max(z - GetSlopePixelZ(safe_x, safe_y), 0U) >> 3);
+		u->y_pos = y - 1 - (max(z - GetSlopePixelZ(safe_x, safe_y), 0) >> 3);
 		safe_y = Clamp(u->y_pos, 0, MapMaxY() * TILE_SIZE);
 		u->z_pos = GetSlopePixelZ(safe_x, safe_y);
 		u->direction = v->direction;
--- a/src/landscape.cpp
+++ b/src/landscape.cpp
@@ -274,7 +274,7 @@
 	return z;
 }
 
-uint GetSlopePixelZ(int x, int y)
+int GetSlopePixelZ(int x, int y)
 {
 	TileIndex tile = TileVirtXY(x, y);
 
--- a/src/landscape.h
+++ b/src/landscape.h
@@ -39,7 +39,7 @@
 Slope GetFoundationSlope(TileIndex tile, uint *z = NULL);
 
 uint GetPartialPixelZ(int x, int y, Slope corners);
-uint GetSlopePixelZ(int x, int y);
+int GetSlopePixelZ(int x, int y);
 void GetSlopePixelZOnEdge(Slope tileh, DiagDirection edge, int *z1, int *z2);
 
 /**
--- a/src/saveload/oldloader_sl.cpp
+++ b/src/saveload/oldloader_sl.cpp
@@ -1152,7 +1152,7 @@
 
 	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, Vehicle, x_pos ),
 	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, Vehicle, y_pos ),
-	OCL_SVAR(  OC_UINT8, Vehicle, z_pos ),
+	OCL_SVAR( OC_FILE_U8  | OC_VAR_I32, Vehicle, z_pos ),
 	OCL_SVAR(  OC_UINT8, Vehicle, direction ),
 	OCL_NULL( 2 ),         ///< x_offs and y_offs, calculated automatically
 	OCL_NULL( 2 ),         ///< x_extent and y_extent, calculated automatically
--- a/src/saveload/signs_sl.cpp
+++ b/src/saveload/signs_sl.cpp
@@ -16,14 +16,15 @@
 
 /** Description of a sign within the savegame. */
 static const SaveLoad _sign_desc[] = {
-  SLE_CONDVAR(Sign, name,  SLE_NAME,                   0, 83),
-  SLE_CONDSTR(Sign, name,  SLE_STR, 0,                84, SL_MAX_VERSION),
-  SLE_CONDVAR(Sign, x,     SLE_FILE_I16 | SLE_VAR_I32, 0, 4),
-  SLE_CONDVAR(Sign, y,     SLE_FILE_I16 | SLE_VAR_I32, 0, 4),
-  SLE_CONDVAR(Sign, x,     SLE_INT32,                  5, SL_MAX_VERSION),
-  SLE_CONDVAR(Sign, y,     SLE_INT32,                  5, SL_MAX_VERSION),
-  SLE_CONDVAR(Sign, owner, SLE_UINT8,                  6, SL_MAX_VERSION),
-      SLE_VAR(Sign, z,     SLE_UINT8),
+	SLE_CONDVAR(Sign, name,  SLE_NAME,                   0, 83),
+	SLE_CONDSTR(Sign, name,  SLE_STR, 0,                84, SL_MAX_VERSION),
+	SLE_CONDVAR(Sign, x,     SLE_FILE_I16 | SLE_VAR_I32, 0, 4),
+	SLE_CONDVAR(Sign, y,     SLE_FILE_I16 | SLE_VAR_I32, 0, 4),
+	SLE_CONDVAR(Sign, x,     SLE_INT32,                  5, SL_MAX_VERSION),
+	SLE_CONDVAR(Sign, y,     SLE_INT32,                  5, SL_MAX_VERSION),
+	SLE_CONDVAR(Sign, owner, SLE_UINT8,                  6, SL_MAX_VERSION),
+	SLE_CONDVAR(Sign, z,     SLE_FILE_U8  | SLE_VAR_I32, 0, 164),
+	SLE_CONDVAR(Sign, z,     SLE_INT32,                164, SL_MAX_VERSION),
 	SLE_END()
 };
 
--- a/src/saveload/vehicle_sl.cpp
+++ b/src/saveload/vehicle_sl.cpp
@@ -481,7 +481,8 @@
 		 SLE_CONDVAR(Vehicle, x_pos,                 SLE_UINT32,                   6, SL_MAX_VERSION),
 		 SLE_CONDVAR(Vehicle, y_pos,                 SLE_FILE_U16 | SLE_VAR_U32,   0,   5),
 		 SLE_CONDVAR(Vehicle, y_pos,                 SLE_UINT32,                   6, SL_MAX_VERSION),
-		     SLE_VAR(Vehicle, z_pos,                 SLE_UINT8),
+		 SLE_CONDVAR(Vehicle, z_pos,                 SLE_FILE_U8  | SLE_VAR_I32,   0, 164),
+		 SLE_CONDVAR(Vehicle, z_pos,                 SLE_INT32,                  164, SL_MAX_VERSION),
 		     SLE_VAR(Vehicle, direction,             SLE_UINT8),
 
 		SLE_CONDNULL(2,                                                            0,  57),
@@ -676,7 +677,8 @@
 		 SLE_CONDVAR(Vehicle, x_pos,                 SLE_INT32,                    6, SL_MAX_VERSION),
 		 SLE_CONDVAR(Vehicle, y_pos,                 SLE_FILE_I16 | SLE_VAR_I32,   0,   5),
 		 SLE_CONDVAR(Vehicle, y_pos,                 SLE_INT32,                    6, SL_MAX_VERSION),
-		     SLE_VAR(Vehicle, z_pos,                 SLE_UINT8),
+		 SLE_CONDVAR(Vehicle, z_pos,                 SLE_FILE_U8  | SLE_VAR_I32,   0, 164),
+		 SLE_CONDVAR(Vehicle, z_pos,                 SLE_INT32,                  164, SL_MAX_VERSION),
 
 		     SLE_VAR(Vehicle, cur_image,             SLE_FILE_U16 | SLE_VAR_U32),
 		SLE_CONDNULL(5,                                                            0,  57),
@@ -708,7 +710,8 @@
 		 SLE_CONDVAR(Vehicle, x_pos,                 SLE_INT32,                    6, SL_MAX_VERSION),
 		 SLE_CONDVAR(Vehicle, y_pos,                 SLE_FILE_I16 | SLE_VAR_I32,   0,   5),
 		 SLE_CONDVAR(Vehicle, y_pos,                 SLE_INT32,                    6, SL_MAX_VERSION),
-		     SLE_VAR(Vehicle, z_pos,                 SLE_UINT8),
+		 SLE_CONDVAR(Vehicle, z_pos,                 SLE_FILE_U8  | SLE_VAR_I32,   0, 164),
+		 SLE_CONDVAR(Vehicle, z_pos,                 SLE_INT32,                  164, SL_MAX_VERSION),
 		     SLE_VAR(Vehicle, direction,             SLE_UINT8),
 
 		SLE_CONDNULL(5,                                                            0,  57),
--- a/src/signs_base.h
+++ b/src/signs_base.h
@@ -25,7 +25,7 @@
 	ViewportSign sign;
 	int32        x;
 	int32        y;
-	byte         z;
+	int32        z;
 	OwnerByte    owner; // placed by this company. Anyone can delete them though. OWNER_NONE for gray signs from old games.
 
 	Sign(Owner owner = INVALID_OWNER);
--- a/src/vehicle_base.h
+++ b/src/vehicle_base.h
@@ -183,7 +183,7 @@
 
 	int32 x_pos;                        ///< x coordinate.
 	int32 y_pos;                        ///< y coordinate.
-	byte z_pos;                         ///< z coordinate.
+	int32 z_pos;                        ///< z coordinate.
 	DirectionByte direction;            ///< facing
 
 	OwnerByte owner;                    ///< Which company owns the vehicle?