changeset 28:9361974e1d26 draft

(svn r29) -Fix You cannot take ownership of an oilrig by building right next to it -Fix when adding parts to a statin max size is not 15x15 anymore, but _patches.station_spread
author darkvater <darkvater@openttd.org>
date Thu, 12 Aug 2004 21:11:23 +0000
parents 321debf8498d
children 801181c487fb
files station_cmd.c
diffstat 1 files changed, 9 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/station_cmd.c
+++ b/station_cmd.c
@@ -43,6 +43,13 @@
 		if (IS_TILETYPE(tile_cur, MP_STATION)) {
 			int t;
 			t = _map2[tile_cur];
+			{
+				Station *st = DEREF_STATION(t);
+				// you cannot take control of an oilrig!!
+				if (st->airport_type == AT_OILRIG && st->facilities == (FACIL_AIRPORT|FACIL_DOCK))
+					continue;
+			}
+
 			if (closest_station == -1) {
 				closest_station = t;
 			} else if (closest_station != t) {
@@ -538,16 +545,8 @@
 static void DeleteStationIfEmpty(Station *st) {
 	if (st->facilities == 0) {
 		st->delete_ctr = 0;
+		InvalidateWindow(WC_STATION_LIST, st->owner);
 	}
-
-	// if a station next to an oilrig is removed, fix ownership
-	if (st->airport_type == AT_OILRIG && st->facilities == (FACIL_AIRPORT|FACIL_DOCK) ) {
-		_station_sort_dirty = true;
-		InvalidateWindow(WC_STATION_LIST, st->owner);
-		st->owner = 0x10;
-	}
-
-	InvalidateWindow(WC_STATION_LIST, st->owner);
 }
 
 // Tries to clear the given area. Returns the cost in case of success.
@@ -657,7 +656,7 @@
 			return false;
 	}
 	// make sure the final size is not too big.
-	if (curw > 15 || curh > 15) return false;
+	if (curw > _patches.station_spread || curh > _patches.station_spread) return false;
 
 	// now tile contains the new value for st->train_tile
 	// curw, curh contain the new value for width and height