--- a/tunnelbridge_cmd.c Thu May 17 19:47:04 2007 +0000
+++ b/tunnelbridge_cmd.c Mon May 28 22:11:42 2007 +0000
@@ -1349,7 +1349,13 @@
SetTileOwner(tile, OWNER_NONE);
}
} else {
- DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
+ if (CmdFailed(DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR))) {
+ /* When clearing the bridge/tunnel failed there are still vehicles on/in
+ * the bridge/tunnel. As all *our* vehicles are already removed, they
+ * must be of another owner. Therefor this must be a road bridge/tunnel.
+ * In that case we can safely reassign the ownership to OWNER_NONE. */
+ SetTileOwner(tile, OWNER_NONE);
+ }
}
}
}