(svn r3418) - Fix: When removing a town-owned tunnel the player's rating was not reduced, as it checked the ownership of the tunnel after clearing it. Now we perform the rating adjustment before clearing the tiles. (spotted by glx)
authorpeter1138
Sun, 22 Jan 2006 16:23:05 +0000
changeset 2870 32c980d2b8e9
parent 2869 5cf9acd29edd
child 2871 66b55a022d12
(svn r3418) - Fix: When removing a town-owned tunnel the player's rating was not reduced, as it checked the ownership of the tunnel after clearing it. Now we perform the rating adjustment before clearing the tiles. (spotted by glx)
tunnelbridge_cmd.c
--- a/tunnelbridge_cmd.c	Sun Jan 22 10:00:04 2006 +0000
+++ b/tunnelbridge_cmd.c	Sun Jan 22 16:23:05 2006 +0000
@@ -685,12 +685,15 @@
 		//  else the direction is always 0.. dah!! ;)
 		byte tile_dir = GB(_m[tile].m5, 0, 2);
 		byte endtile_dir = GB(_m[endtile].m5, 0, 2);
+
+		// Adjust the town's player rating. Do this before removing the tile owner info.
+		if (IsTileOwner(tile, OWNER_TOWN) && _game_mode != GM_EDITOR)
+			ChangeTownRating(t, RATING_TUNNEL_BRIDGE_DOWN_STEP, RATING_TUNNEL_BRIDGE_MINIMUM);
+
 		DoClearSquare(tile);
 		DoClearSquare(endtile);
 		UpdateSignalsOnSegment(tile, _updsignals_tunnel_dir[tile_dir]);
 		UpdateSignalsOnSegment(endtile, _updsignals_tunnel_dir[endtile_dir]);
-		if (IsTileOwner(tile, OWNER_TOWN) && _game_mode != GM_EDITOR)
-			ChangeTownRating(t, RATING_TUNNEL_BRIDGE_DOWN_STEP, RATING_TUNNEL_BRIDGE_MINIMUM);
 	}
 	return _price.clear_tunnel * (length + 1);
 }