src/industry_cmd.cpp
changeset 7320 052da893fbd9
parent 7315 f1b2591ad082
child 7335 027d2caa4646
--- a/src/industry_cmd.cpp	Fri Jun 08 09:35:39 2007 +0000
+++ b/src/industry_cmd.cpp	Fri Jun 08 15:48:48 2007 +0000
@@ -37,6 +37,12 @@
 static byte _industry_sound_ctr;
 static TileIndex _industry_sound_tile;
 
+int _total_industries;                      //general counter
+uint16 _industry_counts[NUM_INDUSTRYTYPES]; // Number of industries per type ingame
+
+const Industry **_industry_sort;
+bool _industry_sort_dirty;
+
 IndustrySpec _industry_specs[NUM_INDUSTRYTYPES];
 IndustryTileSpec _industry_tile_specs[NUM_INDUSTRYTILES];
 
@@ -142,6 +148,8 @@
 
 	_industry_sort_dirty = true;
 	_total_industries--;
+	DecIndustryTypeCount(i->type);
+
 	DeleteSubsidyWithIndustry(i->index);
 	DeleteWindowById(WC_INDUSTRY_VIEW, i->index);
 	InvalidateWindow(WC_INDUSTRY_DIRECTORY, 0);
@@ -1351,6 +1359,7 @@
 	i->xy = tile;
 	i->width = i->height = 0;
 	i->type = type;
+	IncIndustryTypeCount(type);
 
 	i->production_rate[0] = indspec->production_rate[0];
 	i->production_rate[1] = indspec->production_rate[1];
@@ -1849,6 +1858,7 @@
 	AddBlockToPool(&_Industry_pool);
 
 	_total_industries = 0;
+	memset(&_industry_counts, 0, sizeof(_industry_counts));
 	_industry_sort_dirty = true;
 	_industry_sound_tile = 0;
 }
@@ -1926,6 +1936,7 @@
 
 		i = GetIndustry(index);
 		SlObject(i, _industry_desc);
+		IncIndustryTypeCount(i->type);
 
 		_total_industries++;
 	}