changeset 14763:f46adc9839d3 draft

(svn r19351) -Codechange: use TileArea for AfterRemoveRect
author yexo <yexo@openttd.org>
date Sat, 06 Mar 2010 13:38:46 +0000
parents c3f866bf71f6
children 6c9a2c3f21c5
files src/base_station_base.h src/station.cpp src/station_cmd.cpp
diffstat 3 files changed, 9 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/base_station_base.h
+++ b/src/base_station_base.h
@@ -43,7 +43,7 @@
 	CommandCost BeforeAddTile(TileIndex tile, StationRectMode mode);
 	CommandCost BeforeAddRect(TileIndex tile, int w, int h, StationRectMode mode);
 	bool AfterRemoveTile(BaseStation *st, TileIndex tile);
-	bool AfterRemoveRect(BaseStation *st, TileIndex tile, int w, int h);
+	bool AfterRemoveRect(BaseStation *st, TileArea ta);
 
 	static bool ScanForStationTiles(StationID st_id, int left_a, int top_a, int right_a, int bottom_a);
 
--- a/src/station.cpp
+++ b/src/station.cpp
@@ -483,13 +483,13 @@
 	return false; // non-empty remaining rect
 }
 
-bool StationRect::AfterRemoveRect(BaseStation *st, TileIndex tile, int w, int h)
+bool StationRect::AfterRemoveRect(BaseStation *st, TileArea ta)
 {
-	assert(this->PtInExtendedRect(TileX(tile), TileY(tile)));
-	assert(this->PtInExtendedRect(TileX(tile) + w - 1, TileY(tile) + h - 1));
+	assert(this->PtInExtendedRect(TileX(ta.tile), TileY(ta.tile)));
+	assert(this->PtInExtendedRect(TileX(ta.tile) + ta.w - 1, TileY(ta.tile) + ta.h - 1));
 
-	bool empty = this->AfterRemoveTile(st, tile);
-	if (w != 1 || h != 1) empty = empty || this->AfterRemoveTile(st, TILE_ADDXY(tile, w - 1, h - 1));
+	bool empty = this->AfterRemoveTile(st, ta.tile);
+	if (ta.w != 1 || ta.h != 1) empty = empty || this->AfterRemoveTile(st, TILE_ADDXY(ta.tile, ta.w - 1, ta.h - 1));
 	return empty;
 }
 
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -1408,7 +1408,6 @@
 			DoClearSquare(tile);
 			if (keep_rail) MakeRailNormal(tile, owner, TrackToTrackBits(track), rt);
 
-			st->rect.AfterRemoveTile(st, tile);
 			AddTrackToSignalBuffer(tile, track, owner);
 			YapfNotifyTrackLayoutChange(tile, track);
 
@@ -1435,6 +1434,7 @@
 	for (T **stp = affected_stations.Begin(); stp != affected_stations.End(); stp++) {
 		T *st = *stp;
 
+		st->rect.AfterRemoveRect(st, ta);
 		/* now we need to make the "spanned" area of the railway station smaller
 		 * if we deleted something at the edges.
 		 * we also need to adjust train_tile. */
@@ -1556,7 +1556,7 @@
 	}
 
 	if (flags & DC_EXEC) {
-		st->rect.AfterRemoveRect(st, st->train_station.tile, st->train_station.w, st->train_station.h);
+		st->rect.AfterRemoveRect(st, st->train_station);
 
 		st->train_station.Clear();
 
@@ -2272,7 +2272,7 @@
 		Town *nearest = AirportGetNearestTown(as, tile);
 		nearest->noise_reached -= GetAirportNoiseLevelForTown(as, nearest->xy, tile);
 
-		st->rect.AfterRemoveRect(st, tile, st->airport.w, st->airport.h);
+		st->rect.AfterRemoveRect(st, st->airport);
 
 		st->airport.Clear();
 		st->facilities &= ~FACIL_AIRPORT;