(svn r11728) -Fix [FS#1577]: if there are no houses that can be build in a specific year yet, force the houses with the earliest introduction year to be available.
authorrubidium
Mon, 31 Dec 2007 07:14:25 +0000
changeset 8661 18e70c2e086e
parent 8660 498f2a298b04
child 8662 ea3cdf414e87
(svn r11728) -Fix [FS#1577]: if there are no houses that can be build in a specific year yet, force the houses with the earliest introduction year to be available.
src/newgrf.cpp
--- a/src/newgrf.cpp	Mon Dec 31 04:38:11 2007 +0000
+++ b/src/newgrf.cpp	Mon Dec 31 07:14:25 2007 +0000
@@ -5326,8 +5326,11 @@
 	 * compatible with TTDPatch, where if no houses have start dates before
 	 * 1930 and the date is before 1930, the game pretends that this is 1930.
 	 * If there have been any houses defined with start dates before 1930 then
-	 * the dates are left alone. */
-	bool reset_dates = true;
+	 * the dates are left alone.
+	 * On the other hand, why 1930? Just 'fix' the houses with the lowest
+	 * minimum introduction date to 0.
+	 */
+	Year min_date = MAX_YEAR;
 
 	for (GRFFile *file = _first_grffile; file != NULL; file = file->next) {
 		if (file->housespec == NULL) continue;
@@ -5336,16 +5339,16 @@
 			HouseSpec *hs = file->housespec[i];
 			if (hs != NULL) {
 				_house_mngr.SetEntitySpec(hs);
-				if (hs->min_date < 1930) reset_dates = false;
+				if (hs->min_date < min_date) min_date = hs->min_date;
 			}
 		}
 	}
 
-	if (reset_dates) {
-		for (int i = NEW_HOUSE_OFFSET; i < HOUSE_MAX; i++) {
+	if (min_date != 0) {
+		for (int i = 0; i < HOUSE_MAX; i++) {
 			HouseSpec *hs = GetHouseSpecs(i);
 
-			if (hs->enabled && hs->min_date == 1930) hs->min_date = 0;
+			if (hs->enabled && hs->min_date == min_date) hs->min_date = 0;
 		}
 	}
 }