From 30c38502254e4fabdbc2364216d6181fffb86aef Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 25 Jan 2012 20:46:51 +0000 Subject: (svn r23851) -Fix: infrastructure cache could get out of sync when overbuilding a drive through road stop --- src/station_cmd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index b22630717..2763f7c06 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1801,9 +1801,9 @@ CommandCost CmdBuildRoadStop(TileIndex tile, DoCommandFlag flags, uint32 p1, uin * road tile, count only the new road bits needed to get a full diagonal road. */ RoadType rt; FOR_EACH_SET_ROADTYPE(rt, cur_rts | rts) { - Company *c = Company::GetIfValid(IsNormalRoadTile(cur_tile) && HasBit(cur_rts, rt) ? GetRoadOwner(cur_tile, rt) : _current_company); + Company *c = Company::GetIfValid(rt == ROADTYPE_ROAD ? road_owner : tram_owner); if (c != NULL) { - c->infrastructure.road[rt] += 2 - (IsNormalRoadTile(cur_tile) ? CountBits(GetRoadBits(cur_tile, rt)) : 0); + c->infrastructure.road[rt] += 2 - (IsNormalRoadTile(cur_tile) && HasBit(cur_rts, rt) ? CountBits(GetRoadBits(cur_tile, rt)) : 0); DirtyCompanyInfrastructureWindows(c->index); } } -- cgit v1.2.3-70-g09d2