(svn r9994) -Codechange: Add pointers for Industry and Industry Tiles in the grf file.
authorbelugas
Thu, 31 May 2007 03:35:11 +0000
changeset 7255 8b6f5524dfbc
parent 7254 6af772949b50
child 7256 ec4124cf48d3
(svn r9994) -Codechange: Add pointers for Industry and Industry Tiles in the grf file.
src/newgrf.cpp
src/newgrf.h
--- a/src/newgrf.cpp	Wed May 30 20:34:16 2007 +0000
+++ b/src/newgrf.cpp	Thu May 31 03:35:11 2007 +0000
@@ -4304,6 +4304,43 @@
 	}
 }
 
+static void ResetCustomIndustries()
+{
+	GRFFile *file;
+
+	for (file = _first_grffile; file != NULL; file = file->next) {
+		uint i;
+		/* We are verifiying both tiles and industries specs loaded from the grf file
+		 * First, let's deal with industryspec */
+		if (file->industryspec != NULL) {
+
+			for (i = 0; i < NUM_INDUSTRYTYPES; i++) {
+				IndustrySpec *ind = file->industryspec[i];
+
+				if (ind != NULL) {
+					free(ind);
+					ind = NULL;
+				}
+			}
+
+			free(file->industryspec);
+			file->industryspec = NULL;
+		}
+
+		if (file->indtspec != NULL) {
+			for (i = 0; i < NUM_INDUSTRYTILES; i++) {
+				if (file->indtspec[i] != NULL) {
+					free(file->indtspec[i]);
+					file->indtspec[i] = NULL;
+				}
+			}
+
+			free(file->indtspec);
+			file->indtspec = NULL;
+		}
+	}
+}
+
 static void ResetNewGRF()
 {
 	GRFFile *next;
@@ -4370,6 +4407,7 @@
 	ResetHouses();
 
 	/* Reset the industries structures*/
+	ResetCustomIndustries();
 	ResetIndustries();
 
 	/* Reset station classes */
--- a/src/newgrf.h	Wed May 30 20:34:16 2007 +0000
+++ b/src/newgrf.h	Thu May 31 03:35:11 2007 +0000
@@ -10,6 +10,7 @@
 #include "newgrf_config.h"
 #include "helpers.hpp"
 #include "cargotype.h"
+#include "industry.h"
 
 enum GrfLoadingStage {
 	GLS_FILESCAN,
@@ -69,6 +70,8 @@
 
 	StationSpec **stations;
 	HouseSpec **housespec;
+	IndustrySpec **industryspec;
+	IndustryTileSpec **indtspec;
 
 	uint32 param[0x80];
 	uint param_end;  ///< one more than the highest set parameter