(svn r9968) [0.5] -Backport from trunk (r9966): 0.5
authorrubidium
Mon, 28 May 2007 22:11:42 +0000
branch0.5
changeset 5504 520481b11c2c
parent 5503 207038be1302
child 5505 4d4738c2000f
(svn r9968) [0.5] -Backport from trunk (r9966):
- Fix: bridges and tunnels were not always removed on bankruptcy, thus leaving tunnels/bridges with an invalid owner that would crash the game when clicking with the query tool on them.
tunnelbridge_cmd.c
--- 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);
+			}
 		}
 	}
 }