712 if (_m[c].m5 & 0x20) { |
712 if (_m[c].m5 & 0x20) { |
713 // transport under bridge |
713 // transport under bridge |
714 if (GB(_m[c].m5, 3, 2) == TRANSPORT_RAIL) { |
714 if (GB(_m[c].m5, 3, 2) == TRANSPORT_RAIL) { |
715 MakeRailNormal(c, GetTileOwner(c), _m[c].m5 & 1 ? TRACK_BIT_X : TRACK_BIT_Y, GB(_m[c].m3, 0, 3)); |
715 MakeRailNormal(c, GetTileOwner(c), _m[c].m5 & 1 ? TRACK_BIT_X : TRACK_BIT_Y, GB(_m[c].m3, 0, 3)); |
716 } else { |
716 } else { |
717 MakeRoadNormal(c, GetTileOwner(c), _m[c].m5 & 1 ? ROAD_X : ROAD_Y, 0); // XXX Determine town, missing till now |
717 uint town = IsTileOwner(c, OWNER_TOWN) ? ClosestTownFromTile(c, (uint)-1)->index : 0; |
|
718 MakeRoadNormal(c, GetTileOwner(c), _m[c].m5 & 1 ? ROAD_X : ROAD_Y, town); |
718 } |
719 } |
719 MarkTileDirtyByTile(c); |
720 MarkTileDirtyByTile(c); |
720 } else { |
721 } else { |
721 // clear under bridge |
722 // clear under bridge |
722 if (GB(_m[c].m5, 3, 2) == 0) { |
723 if (GB(_m[c].m5, 3, 2) == 0) { |