summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/industry.h9
-rw-r--r--src/industry_cmd.cpp5
2 files changed, 12 insertions, 2 deletions
diff --git a/src/industry.h b/src/industry.h
index 364c3b31b..cdf9d0c78 100644
--- a/src/industry.h
+++ b/src/industry.h
@@ -143,4 +143,13 @@ void ReleaseDisastersTargetingIndustry(IndustryID);
#define FOR_ALL_INDUSTRIES_FROM(var, start) FOR_ALL_ITEMS_FROM(Industry, industry_index, var, start)
#define FOR_ALL_INDUSTRIES(var) FOR_ALL_INDUSTRIES_FROM(var, 0)
+/**
+ * Data for managing the number and type of industries in the game.
+ */
+struct IndustryBuildData {
+ void TryBuildNewIndustry();
+};
+
+extern IndustryBuildData _industry_builder;
+
#endif /* INDUSTRY_H */
diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp
index e7df05c18..6b19bc447 100644
--- a/src/industry_cmd.cpp
+++ b/src/industry_cmd.cpp
@@ -59,6 +59,7 @@ uint16 Industry::counts[NUM_INDUSTRYTYPES];
IndustrySpec _industry_specs[NUM_INDUSTRYTYPES];
IndustryTileSpec _industry_tile_specs[NUM_INDUSTRYTILES];
+IndustryBuildData _industry_builder; ///< In-game manager of industries.
/**
* This function initialize the spec arrays of both
@@ -2051,7 +2052,7 @@ struct ProbabilityHelper {
/**
* Try to create a random industry, during gameplay
*/
-static void MaybeNewIndustry()
+void IndustryBuildData::TryBuildNewIndustry()
{
uint num = 0;
ProbabilityHelper cumulative_probs[NUM_INDUSTRYTYPES]; // probability collector
@@ -2454,7 +2455,7 @@ void IndustryDailyLoop()
for (uint16 j = 0; j < change_loop; j++) {
/* 3% chance that we start a new industry */
if (Chance16(3, 100)) {
- MaybeNewIndustry();
+ _industry_builder.TryBuildNewIndustry();
} else {
Industry *i = Industry::GetRandom();
if (i != NULL) {