changeset 13023:44ceb5ee6fed draft

(svn r17521) -Change: don't assume that there is always 'another' industry tile after two '0x18' industry tiles
author rubidium <rubidium@openttd.org>
date Sun, 13 Sep 2009 10:58:41 +0000
parents 006f65defb20
children aa1f3a190f19
files src/industry_cmd.cpp
diffstat 1 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/industry_cmd.cpp
+++ b/src/industry_cmd.cpp
@@ -729,9 +729,19 @@
 		CreateChimneySmoke(tile);
 		break;
 
-	case GFX_OILRIG_1:
-		if (GetIndustryGfx(tile + TileDiffXY(0, 1)) == GFX_OILRIG_1) BuildOilRig(tile);
-		break;
+	case GFX_OILRIG_1: {
+		/* Do not require an industry tile to be after the first two GFX_OILRIG_1
+		 * tiles (like the default oil rig). Do a proper check to ensure the
+		 * tiles belong to the same industry and based on that build the oil rig's
+		 * station. */
+		TileIndex other = tile + TileDiffXY(0, 1);
+
+		if (IsTileType(other, MP_INDUSTRY) &&
+				GetIndustryGfx(other) == GFX_OILRIG_1 &&
+				GetIndustryIndex(tile) == GetIndustryIndex(other)) {
+			BuildOilRig(tile);
+		}
+	} break;
 
 	case GFX_TOY_FACTORY:
 	case GFX_BUBBLE_CATCHER: