summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbelugas <belugas@openttd.org>2007-07-06 20:40:58 +0000
committerbelugas <belugas@openttd.org>2007-07-06 20:40:58 +0000
commit5f49ffa3ff2310c407fcd00b55229216b97149df (patch)
treea1b97d69f35d1870e4cce862ad69518620e2c62a
parent8df65af2d34039fbdc859e4bd0a0c6beed35890c (diff)
downloadopenttd-5f49ffa3ff2310c407fcd00b55229216b97149df.tar.xz
(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.
-rw-r--r--src/newgrf.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index c4a4895a4..e835a3e83 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -4770,6 +4770,33 @@ static void FinaliseHouseArray()
}
}
+/** 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 @@ static void AfterLoadGRFs()
/* 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();