src/industry.h
changeset 7335 027d2caa4646
parent 7321 2a9af837d423
child 7344 72e3e8607419
--- a/src/industry.h	Sat Jun 09 18:31:04 2007 +0000
+++ b/src/industry.h	Sun Jun 10 01:25:21 2007 +0000
@@ -208,14 +208,14 @@
 	return GetIndustryPoolSize() - 1;
 }
 
+extern int _total_industries;  // general counter
+extern uint16 _industry_counts[NUM_INDUSTRYTYPES]; // Number of industries per type ingame
+
 static inline uint GetNumIndustries()
 {
-	extern int _total_industries;  // general counter
 	return _total_industries;
 }
 
-extern uint16 _industry_counts[NUM_INDUSTRYTYPES]; // Number of industries per type ingame
-
 /** Increment the count of industries for this type
  * @param type IndustryType to increment
  * @pre type < INVALID_INDUSTRYTYPE */
@@ -223,6 +223,7 @@
 {
 	assert(type < INVALID_INDUSTRYTYPE);
 	_industry_counts[type]++;
+	_total_industries++;
 }
 
 /** Decrement the count of industries for this type
@@ -232,6 +233,7 @@
 {
 	assert(type < INVALID_INDUSTRYTYPE);
 	_industry_counts[type]--;
+	_total_industries--;
 }
 
 /** get the count of industries for this type
@@ -243,6 +245,14 @@
 	return min(_industry_counts[type], 0xFF); // callback expects only a byte, so cut it
 }
 
+/** Resets both the total_industries and the _industry_counts
+ * This way, we centralize all counts activities */
+static inline void ResetIndustryCounts()
+{
+	_total_industries = 0;
+	memset(&_industry_counts, 0, sizeof(_industry_counts));
+}
+
 /**
  * Return a random valid industry.
  */