(svn r10502) -Fix [FS#1017]: trying to get the town from a tile that can never be associated with a town.
authorrubidium
Tue, 10 Jul 2007 22:45:09 +0000
changeset 7223 86922d658c89
parent 7222 d46753675bf7
child 7224 690dbe7956f0
(svn r10502) -Fix [FS#1017]: trying to get the town from a tile that can never be associated with a town.
src/road_cmd.cpp
--- a/src/road_cmd.cpp	Tue Jul 10 20:59:41 2007 +0000
+++ b/src/road_cmd.cpp	Tue Jul 10 22:45:09 2007 +0000
@@ -112,7 +112,6 @@
 	/* 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 @@
 	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 */