diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/industry.h | 9 | ||||
-rw-r--r-- | src/industry_cmd.cpp | 5 |
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) { |