changeset 16104:6d653b1a72fe draft

(svn r20797) -Fix: disable houses without a size that are available according to their building flags
author yexo <yexo@openttd.org>
date Mon, 13 Sep 2010 13:27:29 +0000
parents 4e3a00897570
children dc62a655c524
files src/house.h src/newgrf.cpp
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/house.h
+++ b/src/house.h
@@ -80,7 +80,8 @@
 	HZ_TEMP              = 0x1000,  ///< 12   1000        can appear in temperate climate
 	HZ_SUBARTC_BELOW     = 0x2000,  ///< 13   2000        can appear in sub-arctic climate below the snow line
 	HZ_SUBTROPIC         = 0x4000,  ///< 14   4000        can appear in subtropical climate
-	HZ_TOYLND            = 0x8000   ///< 15   8000        can appear in toyland climate
+	HZ_TOYLND            = 0x8000,  ///< 15   8000        can appear in toyland climate
+	HZ_CLIMALL           = 0xF800,  ///< Bitmask of all climate bits
 };
 DECLARE_ENUM_AS_BIT_SET(HouseZones)
 
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -7318,6 +7318,13 @@
 		return false;
 	}
 
+	/* Make sure that additional parts of multitile houses are not available. */
+	if ((hs->building_flags & BUILDING_HAS_1_TILE) == 0 && (hs->building_availability & HZ_ZONALL) != 0 && (hs->building_availability & HZ_CLIMALL) != 0) {
+		hs->enabled = false;
+		if (filename != NULL) DEBUG(grf, 1, "FinaliseHouseArray: %s defines house %d without a size but marked it as available. Disabling house.", filename, hs->grf_prop.local_id);
+		return false;
+	}
+
 	return true;
 }