(svn r10457) -Codechange: Load the newly read definitions of Industries and Industry tiles.
authorbelugas
Fri, 06 Jul 2007 20:40:58 +0000
changeset 7679 c3c44a572f6e
parent 7678 8c61d49f4447
child 7680 8b9b74983b07
(svn r10457) -Codechange: Load the newly read definitions of Industries and Industry tiles.
No, this is not the final commit for newindustries (far from it), just another step.
src/newgrf.cpp
--- a/src/newgrf.cpp	Fri Jul 06 20:36:32 2007 +0000
+++ b/src/newgrf.cpp	Fri Jul 06 20:40:58 2007 +0000
@@ -4770,6 +4770,33 @@
 	}
 }
 
+/** Add all new industries to the industry array. Industry properties can be set at any
+ * time in the GRF file, so we can only add a industry spec to the industry array
+ * after the file has finished loading. */
+static void FinaliseIndustriesArray()
+{
+	for (GRFFile *file = _first_grffile; file != NULL; file = file->next) {
+		if (file->industryspec != NULL) {
+			for (int i = 0; i < NUM_INDUSTRYTYPES; i++) {
+				IndustrySpec *indsp = file->industryspec[i];
+
+				if (indsp != NULL  && indsp->enabled) {
+					_industry_mngr.SetEntitySpec(indsp);
+					_loaded_newgrf_features.has_newindustries = true;
+				}
+			}
+		}
+
+		if (file->indtspec != NULL) {
+			for (int i = 0; i < NUM_INDUSTRYTILES; i++) {
+				IndustryTileSpec *indtsp = file->indtspec[i];
+				if (indtsp != NULL) {
+					_industile_mngr.SetEntitySpec(indtsp);
+				}
+			}
+		}
+	}
+}
 
 /** Each cargo string needs to be mapped from TTDPatch to OpenTTD string IDs.
  * This is done after loading so that strings from Action 4 will be mapped
@@ -4976,6 +5003,9 @@
 	/* Add all new houses to the house array. */
 	FinaliseHouseArray();
 
+	/* Add all new industries to the industry array. */
+	FinaliseIndustriesArray();
+
 	/* Create dynamic list of industry legends for smallmap_gui.cpp */
 	BuildIndustriesLegend();