From d0836f9ec81082ad8807eb5617ebbef343edcf88 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sun, 13 Sep 2009 10:58:41 +0000 Subject: (svn r17521) -Change: don't assume that there is always 'another' industry tile after two '0x18' industry tiles --- src/industry_cmd.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 05e9cb1b7..b31b82e3f 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -729,9 +729,19 @@ static void MakeIndustryTileBigger(TileIndex tile) 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: -- cgit v1.2.3-54-g00ecf