(svn r4014) -Backport from trunk: Slope and height information returned for some tile types is wrong 0.4.5
authorcelestar
Wed, 22 Mar 2006 11:13:20 +0000
branch0.4.5
changeset 9944 4f027626dbf6
parent 9943 bedd1ceaa101
child 9945 10025bb0aff2
(svn r4014) -Backport from trunk: Slope and height information returned for some tile types is wrong
dummy_land.c
industry_cmd.c
station_cmd.c
town_cmd.c
unmovable_cmd.c
--- a/dummy_land.c	Wed Mar 22 11:11:52 2006 +0000
+++ b/dummy_land.c	Wed Mar 22 11:13:20 2006 +0000
@@ -16,12 +16,12 @@
 
 static uint GetSlopeZ_Dummy(const TileInfo* ti)
 {
-	return GetPartialZ(ti->x & 0xF, ti->y & 0xF, ti->tileh) + ti->z;
+	return 0;
 }
 
 static uint GetSlopeTileh_Dummy(const TileInfo* ti)
 {
-	return ti->tileh;
+	return 0;
 }
 
 static int32 ClearTile_Dummy(TileIndex tile, byte flags)
--- a/industry_cmd.c	Wed Mar 22 11:11:52 2006 +0000
+++ b/industry_cmd.c	Wed Mar 22 11:13:20 2006 +0000
@@ -398,7 +398,7 @@
 
 static uint GetSlopeZ_Industry(const TileInfo* ti)
 {
-	return GetPartialZ(ti->x & 0xF, ti->y & 0xF, ti->tileh) + ti->z;
+	return ti->z + (ti->tileh == 0 ? 0 : 8);
 }
 
 static uint GetSlopeTileh_Industry(const TileInfo* ti)
--- a/station_cmd.c	Wed Mar 22 11:11:52 2006 +0000
+++ b/station_cmd.c	Wed Mar 22 11:13:20 2006 +0000
@@ -2111,7 +2111,7 @@
 
 static uint GetSlopeZ_Station(const TileInfo* ti)
 {
-	return (ti->tileh != 0) ? ti->z + 8 : ti->z;
+	return ti->z + (ti->tileh == 0 ? 0 : 8);
 }
 
 static uint GetSlopeTileh_Station(const TileInfo *ti)
--- a/town_cmd.c	Wed Mar 22 11:11:52 2006 +0000
+++ b/town_cmd.c	Wed Mar 22 11:13:20 2006 +0000
@@ -143,14 +143,12 @@
 
 static uint GetSlopeZ_Town(const TileInfo* ti)
 {
-	uint z = GetPartialZ(ti->x & 0xF, ti->y & 0xF, ti->tileh) + ti->z;
-	if (ti->tileh != 0) z = (z & ~7) + 4;
-	return (uint16) z;
+	return ti->z + (ti->tileh == 0 ? 0 : 8);
 }
 
 static uint GetSlopeTileh_Town(const TileInfo *ti)
 {
-	return ti->tileh;
+	return 0;
 }
 
 static void AnimateTile_Town(TileIndex tile)
--- a/unmovable_cmd.c	Wed Mar 22 11:11:52 2006 +0000
+++ b/unmovable_cmd.c	Wed Mar 22 11:13:20 2006 +0000
@@ -182,12 +182,16 @@
 
 static uint GetSlopeZ_Unmovable(const TileInfo* ti)
 {
-	return GetPartialZ(ti->x & 0xF, ti->y & 0xF, ti->tileh) + ti->z;
+	if (_m[ti->tile].m5 == 3) {
+		return ti->z + GetPartialZ(ti->x & 0xF, ti->y & 0xF, ti->tileh);
+	} else {
+		return ti->z + (ti->tileh == 0 ? 0 : 8);
+	}
 }
 
 static uint GetSlopeTileh_Unmovable(const TileInfo *ti)
 {
-	return 0;
+	return _m[ti->tile].m5 == 3 ? ti->tileh : 0;
 }
 
 static int32 ClearTile_Unmovable(TileIndex tile, byte flags)