diff options
author | rubidium <rubidium@openttd.org> | 2007-07-10 22:45:09 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2007-07-10 22:45:09 +0000 |
commit | fd93cd0411a8b506b9d7a5d721593298f4aa3883 (patch) | |
tree | c5a2d62b6acc4b1f29d9ec357bd66b0262cbaf51 | |
parent | 3ba01bec844e80e77f9f8450c1ffe414e121202a (diff) | |
download | openttd-fd93cd0411a8b506b9d7a5d721593298f4aa3883.tar.xz |
(svn r10502) -Fix [FS#1017]: trying to get the town from a tile that can never be associated with a town.
-rw-r--r-- | src/road_cmd.cpp | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 29827b46c..c5e0622e8 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -112,7 +112,6 @@ CommandCost CmdRemoveRoad(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) /* cost for removing inner/edge -roads */ static const uint16 road_remove_cost[2] = {50, 18}; - Town *t; /* true if the roadpiece was always removeable, * false if it was a center piece. Affects town ratings drop */ bool edge_road; @@ -122,33 +121,25 @@ CommandCost CmdRemoveRoad(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) RoadType rt = (RoadType)GB(p1, 4, 2); if (!IsValidRoadType(rt)) return CMD_ERROR; - Owner owner; + Town *t = NULL; switch (GetTileType(tile)) { case MP_STREET: - owner = GetRoadOwner(tile, rt); + if (_game_mode != GM_EDITOR && GetRoadOwner(tile, rt) == OWNER_TOWN) t = GetTownByTile(tile); break; case MP_STATION: if (!IsDriveThroughStopTile(tile)) return CMD_ERROR; - owner = GetTileOwner(tile); break; case MP_TUNNELBRIDGE: if ((IsTunnel(tile) && GetTunnelTransportType(tile) != TRANSPORT_ROAD) || (IsBridge(tile) && GetBridgeTransportType(tile) != TRANSPORT_ROAD)) return CMD_ERROR; - owner = GetTileOwner(tile); break; default: return CMD_ERROR; } - if (owner == OWNER_TOWN && _game_mode != GM_EDITOR) { - t = GetTownByTile(tile); - } else { - t = NULL; - } - RoadBits pieces = Extract<RoadBits, 0>(p1); RoadTypes rts = GetRoadTypes(tile); /* The tile doesn't have the given road type */ |