summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/industry_gui.cpp23
1 files changed, 9 insertions, 14 deletions
diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp
index 70160936d..682b61641 100644
--- a/src/industry_gui.cpp
+++ b/src/industry_gui.cpp
@@ -112,28 +112,23 @@ static void BuildDynamicIndustryWndProc(Window *w, WindowEvent *e)
WP(w, fnd_d).timer_enabled = false;
}
- /* We'll perform two distinct loops, one for secondary industries, and the other one for
- * primary ones. Each loop will fill the _fund_gui structure. */
+ /* Fill the _fund_gui structure with industries.
+ * The tests performed after the enabled allow to load the industries
+ * In the same way they are inserted by grf (if any)
+ */
for (ind = 0; ind < NUM_INDUSTRYTYPES; ind++) {
indsp = GetIndustrySpec(ind);
- if (indsp->enabled && (!indsp->IsRawIndustry() || _game_mode == GM_EDITOR)) {
+ if (indsp->enabled){
+ /* Rule is that editor mode loads all industries.
+ * In game mode, all non raw industries are loaded too
+ * and raw ones are loaded only when setting allows it */
+ if (_game_mode != GM_EDITOR && indsp->IsRawIndustry() && _patches.raw_industry_construction == 0) continue;
_fund_gui.index[_fund_gui.count] = ind;
_fund_gui.enabled[_fund_gui.count] = (_game_mode == GM_EDITOR) || CheckIfCallBackAllowsAvailability(ind, IACT_USERCREATION);
_fund_gui.count++;
}
}
- if (_patches.raw_industry_construction != 0 && _game_mode != GM_EDITOR) {
- for (ind = 0; ind < NUM_INDUSTRYTYPES; ind++) {
- indsp = GetIndustrySpec(ind);
- if (indsp->enabled && indsp->IsRawIndustry()) {
- _fund_gui.index[_fund_gui.count] = ind;
- _fund_gui.enabled[_fund_gui.count] = (_game_mode == GM_EDITOR) || CheckIfCallBackAllowsAvailability(ind, IACT_USERCREATION);
- _fund_gui.count++;
- }
- }
- }
-
/* first indutry type is selected.
* I'll be damned if there are none available ;) */
WP(w, fnd_d).index = 0;