|
|
|
@ -2046,6 +2046,7 @@ CommandCost CmdBuildIndustry(DoCommandFlag flags, TileIndex tile, IndustryType i
|
|
|
|
|
bool prospect_success = deity_prospect || Random() <= indspec->prospecting_chance;
|
|
|
|
|
if (prospect_success) {
|
|
|
|
|
/* Prospected industries are build as OWNER_TOWN to not e.g. be build on owned land of the founder */
|
|
|
|
|
IndustryAvailabilityCallType calltype = _current_company == OWNER_DEITY ? IACT_RANDOMCREATION : IACT_PROSPECTCREATION;
|
|
|
|
|
Backup<CompanyID> cur_company(_current_company, OWNER_TOWN, FILE_LINE);
|
|
|
|
|
for (int i = 0; i < 5000; i++) {
|
|
|
|
|
/* We should not have more than one Random() in a function call
|
|
|
|
@ -2057,7 +2058,7 @@ CommandCost CmdBuildIndustry(DoCommandFlag flags, TileIndex tile, IndustryType i
|
|
|
|
|
/* Check now each layout, starting with the random one */
|
|
|
|
|
for (size_t j = 0; j < num_layouts; j++) {
|
|
|
|
|
layout = (layout + 1) % num_layouts;
|
|
|
|
|
ret = CreateNewIndustryHelper(tile, it, flags, indspec, layout, random_var8f, random_initial_bits, cur_company.GetOriginalValue(), _current_company == OWNER_DEITY ? IACT_RANDOMCREATION : IACT_PROSPECTCREATION, &ind);
|
|
|
|
|
ret = CreateNewIndustryHelper(tile, it, flags, indspec, layout, random_var8f, random_initial_bits, cur_company.GetOriginalValue(), calltype, &ind);
|
|
|
|
|
if (ret.Succeeded()) break;
|
|
|
|
|
}
|
|
|
|
|
if (ret.Succeeded()) break;
|
|
|
|
|