mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r26729) -Feature: Warn about missing industries after generating a map.
This commit is contained in:
parent
aaf44731fb
commit
87dd209784
|
@ -40,6 +40,7 @@
|
|||
#include "core/backup_type.hpp"
|
||||
#include "object_base.h"
|
||||
#include "game/game.hpp"
|
||||
#include "error.h"
|
||||
|
||||
#include "table/strings.h"
|
||||
#include "table/industry_land.h"
|
||||
|
@ -2741,6 +2742,26 @@ void InitializeIndustries()
|
|||
_industry_builder.Reset();
|
||||
}
|
||||
|
||||
/** Verify whether the generated industries are complete, and warn the user if not. */
|
||||
void CheckIndustries()
|
||||
{
|
||||
int count = 0;
|
||||
for (IndustryType it = 0; it < NUM_INDUSTRYTYPES; it++) {
|
||||
if (Industry::GetIndustryTypeCount(it) > 0) continue; // Types of existing industries can be skipped.
|
||||
|
||||
bool force_at_least_one;
|
||||
uint32 chance = GetScaledIndustryGenerationProbability(it, &force_at_least_one);
|
||||
if (chance == 0 || !force_at_least_one) continue; // Types that are not available can be skipped.
|
||||
|
||||
const IndustrySpec *is = GetIndustrySpec(it);
|
||||
SetDParam(0, is->name);
|
||||
ShowErrorMessage(STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES, STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION, WL_WARNING);
|
||||
|
||||
count++;
|
||||
if (count >= 3) break; // Don't swamp the user with errors.
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Is an industry with the spec a raw industry?
|
||||
* @return true if it should be handled as a raw industry
|
||||
|
|
|
@ -37,4 +37,6 @@ static const IndustryGfx INVALID_INDUSTRYTILE = NUM_INDUSTRYTILES; ///< one a
|
|||
|
||||
static const int INDUSTRY_COMPLETED = 3; ///< final stage of industry construction.
|
||||
|
||||
void CheckIndustries();
|
||||
|
||||
#endif /* INDUSTRY_TYPE_H */
|
||||
|
|
|
@ -4143,6 +4143,9 @@ STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... fore
|
|||
STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... can only be built above the snow-line
|
||||
STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... can only be built below the snow-line
|
||||
|
||||
STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}There were no suitable places for '{STRING}' industries
|
||||
STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Change the map generation parameters to get a better map
|
||||
|
||||
# Station construction related errors
|
||||
STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Can't build railway station here...
|
||||
STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}Can't build bus station...
|
||||
|
|
|
@ -958,6 +958,7 @@ static void MakeNewGameDone()
|
|||
if (_settings_client.gui.pause_on_newgame) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
|
||||
|
||||
CheckEngines();
|
||||
CheckIndustries();
|
||||
MarkWholeScreenDirty();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue