mirror of https://github.com/OpenTTD/OpenTTD
(svn r26729) -Feature: Warn about missing industries after generating a map.
parent
aaf44731fb
commit
87dd209784
|
@ -40,6 +40,7 @@
|
||||||
#include "core/backup_type.hpp"
|
#include "core/backup_type.hpp"
|
||||||
#include "object_base.h"
|
#include "object_base.h"
|
||||||
#include "game/game.hpp"
|
#include "game/game.hpp"
|
||||||
|
#include "error.h"
|
||||||
|
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
#include "table/industry_land.h"
|
#include "table/industry_land.h"
|
||||||
|
@ -2741,6 +2742,26 @@ void InitializeIndustries()
|
||||||
_industry_builder.Reset();
|
_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?
|
* Is an industry with the spec a raw industry?
|
||||||
* @return true if it should be handled as 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.
|
static const int INDUSTRY_COMPLETED = 3; ///< final stage of industry construction.
|
||||||
|
|
||||||
|
void CheckIndustries();
|
||||||
|
|
||||||
#endif /* INDUSTRY_TYPE_H */
|
#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_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_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
|
# Station construction related errors
|
||||||
STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Can't build railway station here...
|
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...
|
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);
|
if (_settings_client.gui.pause_on_newgame) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
|
||||||
|
|
||||||
CheckEngines();
|
CheckEngines();
|
||||||
|
CheckIndustries();
|
||||||
MarkWholeScreenDirty();
|
MarkWholeScreenDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue