Merge branch 'master' into jgrpp
# Conflicts: # src/animated_tile.cpp # src/cargopacket.h # src/cheat_gui.cpp # src/company_cmd.cpp # src/company_gui.cpp # src/date.cpp # src/disaster_vehicle.cpp # src/dock_gui.cpp # src/economy.cpp # src/engine.cpp # src/error_gui.cpp # src/fontcache/spritefontcache.cpp # src/game/game_gui.cpp # src/game/game_text.cpp # src/gfx.cpp # src/graph_gui.cpp # src/highscore_gui.cpp # src/industry_cmd.cpp # src/lang/dutch.txt # src/lang/english_AU.txt # src/lang/english_US.txt # src/lang/finnish.txt # src/lang/french.txt # src/lang/italian.txt # src/lang/portuguese.txt # src/lang/russian.txt # src/lang/turkish.txt # src/lang/vietnamese.txt # src/main_gui.cpp # src/misc_gui.cpp # src/network/network_gui.cpp # src/network/network_server.cpp # src/newgrf.cpp # src/newgrf.h # src/newgrf_generic.cpp # src/news_gui.cpp # src/openttd.cpp # src/os/unix/unix.cpp # src/os/windows/font_win32.cpp # src/os/windows/win32.cpp # src/rail_gui.cpp # src/road_gui.cpp # src/saveload/afterload.cpp # src/saveload/misc_sl.cpp # src/saveload/oldloader_sl.cpp # src/saveload/saveload.cpp # src/saveload/saveload.h # src/script/script_gui.cpp # src/settings_table.cpp # src/signs_gui.cpp # src/smallmap_gui.cpp # src/smallmap_gui.h # src/spritecache.cpp # src/spritecache.h # src/spriteloader/grf.cpp # src/station_cmd.cpp # src/statusbar_gui.cpp # src/stdafx.h # src/strgen/strgen_base.cpp # src/subsidy.cpp # src/table/settings/difficulty_settings.ini # src/texteff.cpp # src/timetable_cmd.cpp # src/timetable_gui.cpp # src/toolbar_gui.cpp # src/town_cmd.cpp # src/town_gui.cpp # src/townname.cpp # src/vehicle.cpp # src/waypoint_cmd.cpp # src/widgets/dropdown.cpp # src/window.cpp
This commit is contained in:
@@ -24,6 +24,7 @@ add_subdirectory(sound)
|
||||
add_subdirectory(spriteloader)
|
||||
add_subdirectory(table)
|
||||
add_subdirectory(tests)
|
||||
add_subdirectory(timer)
|
||||
add_subdirectory(video)
|
||||
add_subdirectory(widgets)
|
||||
|
||||
|
@@ -19,18 +19,6 @@
|
||||
*/
|
||||
class AI {
|
||||
public:
|
||||
/**
|
||||
* The default months AIs start after each other.
|
||||
*/
|
||||
enum StartNext {
|
||||
START_NEXT_EASY = DAYS_IN_YEAR * 2,
|
||||
START_NEXT_MEDIUM = DAYS_IN_YEAR,
|
||||
START_NEXT_HARD = DAYS_IN_YEAR / 2,
|
||||
START_NEXT_MIN = 0,
|
||||
START_NEXT_MAX = 3600,
|
||||
START_NEXT_DEVIATION = 60,
|
||||
};
|
||||
|
||||
/**
|
||||
* Is it possible to start a new AI company?
|
||||
* @return True if a new AI company can be started.
|
||||
@@ -124,11 +112,6 @@ public:
|
||||
*/
|
||||
static void Save(CompanyID company);
|
||||
|
||||
/**
|
||||
* Get the number of days before the next AI should start.
|
||||
*/
|
||||
static int GetStartNextTime();
|
||||
|
||||
/** Wrapper function for AIScanner::GetAIConsoleList */
|
||||
static std::string GetConsoleList(bool newest_only = false);
|
||||
/** Wrapper function for AIScanner::GetAIConsoleLibraryList */
|
||||
|
@@ -16,32 +16,6 @@
|
||||
|
||||
#include "../safeguards.h"
|
||||
|
||||
/** Configuration for AI start date, every AI has this setting. */
|
||||
ScriptConfigItem _start_date_config = {
|
||||
"start_date",
|
||||
"", // STR_AI_SETTINGS_START_DELAY
|
||||
AI::START_NEXT_MIN,
|
||||
AI::START_NEXT_MAX,
|
||||
AI::START_NEXT_MEDIUM,
|
||||
AI::START_NEXT_EASY,
|
||||
AI::START_NEXT_MEDIUM,
|
||||
AI::START_NEXT_HARD,
|
||||
AI::START_NEXT_DEVIATION,
|
||||
30,
|
||||
SCRIPTCONFIG_NONE,
|
||||
nullptr,
|
||||
false
|
||||
};
|
||||
|
||||
AIConfig::AIConfig(const AIConfig *config) : ScriptConfig(config)
|
||||
{
|
||||
/* Override start_date as per AIConfig::AddRandomDeviation().
|
||||
* This is necessary because the ScriptConfig constructor will instead call
|
||||
* ScriptConfig::AddRandomDeviation(). */
|
||||
int start_date = config->GetSetting("start_date");
|
||||
this->SetSetting("start_date", start_date != 0 ? std::max(1, this->GetSetting("start_date")) : 0);
|
||||
}
|
||||
|
||||
/* static */ AIConfig *AIConfig::GetConfig(CompanyID company, ScriptSettingSource source)
|
||||
{
|
||||
AIConfig **config;
|
||||
@@ -69,70 +43,3 @@ bool AIConfig::ResetInfo(bool force_exact_match)
|
||||
this->info = (ScriptInfo *)AI::FindInfo(this->name, force_exact_match ? this->version : -1, force_exact_match);
|
||||
return this->info != nullptr;
|
||||
}
|
||||
|
||||
void AIConfig::PushExtraConfigList()
|
||||
{
|
||||
this->config_list->push_back(_start_date_config);
|
||||
}
|
||||
|
||||
void AIConfig::ClearConfigList()
|
||||
{
|
||||
/* The special casing for start_date is here to ensure that the
|
||||
* start_date setting won't change even if you chose another Script. */
|
||||
int start_date = this->GetSetting("start_date");
|
||||
|
||||
ScriptConfig::ClearConfigList();
|
||||
|
||||
this->SetSetting("start_date", start_date);
|
||||
}
|
||||
|
||||
int AIConfig::GetSetting(const char *name) const
|
||||
{
|
||||
if (this->info == nullptr) {
|
||||
SettingValueList::const_iterator it = this->settings.find(name);
|
||||
if (it == this->settings.end()) {
|
||||
assert(strcmp("start_date", name) == 0);
|
||||
switch (GetGameSettings().script.settings_profile) {
|
||||
case SP_EASY: return AI::START_NEXT_EASY;
|
||||
case SP_MEDIUM: return AI::START_NEXT_MEDIUM;
|
||||
case SP_HARD: return AI::START_NEXT_HARD;
|
||||
case SP_CUSTOM: return AI::START_NEXT_MEDIUM;
|
||||
default: NOT_REACHED();
|
||||
}
|
||||
}
|
||||
|
||||
return (*it).second;
|
||||
}
|
||||
|
||||
return ScriptConfig::GetSetting(name);
|
||||
}
|
||||
|
||||
void AIConfig::SetSetting(const char *name, int value)
|
||||
{
|
||||
if (this->info == nullptr) {
|
||||
if (strcmp("start_date", name) != 0) return;
|
||||
value = Clamp(value, AI::START_NEXT_MIN, AI::START_NEXT_MAX);
|
||||
|
||||
SettingValueList::iterator it = this->settings.find(name);
|
||||
if (it != this->settings.end()) {
|
||||
(*it).second = value;
|
||||
} else {
|
||||
this->settings[stredup(name)] = value;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
ScriptConfig::SetSetting(name, value);
|
||||
}
|
||||
|
||||
void AIConfig::AddRandomDeviation()
|
||||
{
|
||||
int start_date = this->GetSetting("start_date");
|
||||
|
||||
ScriptConfig::AddRandomDeviation();
|
||||
|
||||
/* start_date = 0 is a special case, where random deviation does not occur.
|
||||
* If start_date was not already 0, then a minimum value of 1 must apply. */
|
||||
this->SetSetting("start_date", start_date != 0 ? std::max(1, this->GetSetting("start_date")) : 0);
|
||||
}
|
||||
|
@@ -24,14 +24,12 @@ public:
|
||||
ScriptConfig()
|
||||
{}
|
||||
|
||||
AIConfig(const AIConfig *config);
|
||||
AIConfig(const AIConfig *config) :
|
||||
ScriptConfig(config)
|
||||
{}
|
||||
|
||||
class AIInfo *GetInfo() const;
|
||||
|
||||
int GetSetting(const char *name) const override;
|
||||
void SetSetting(const char *name, int value) override;
|
||||
void AddRandomDeviation() override;
|
||||
|
||||
/**
|
||||
* When ever the AI Scanner is reloaded, all infos become invalid. This
|
||||
* function tells AIConfig about this.
|
||||
@@ -43,8 +41,6 @@ public:
|
||||
bool ResetInfo(bool force_exact_match);
|
||||
|
||||
protected:
|
||||
void PushExtraConfigList() override;
|
||||
void ClearConfigList() override;
|
||||
ScriptInfo *FindInfo(const char *name, int version, bool force_exact_match) override;
|
||||
};
|
||||
|
||||
|
@@ -287,17 +287,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* static */ int AI::GetStartNextTime()
|
||||
{
|
||||
/* Find the first company which doesn't exist yet */
|
||||
for (CompanyID c = COMPANY_FIRST; c < MAX_COMPANIES; c++) {
|
||||
if (!Company::IsValidID(c)) return AIConfig::GetConfig(c, AIConfig::SSS_FORCE_GAME)->GetSetting("start_date");
|
||||
}
|
||||
|
||||
/* Currently no AI can be started, check again in a year. */
|
||||
return DAYS_IN_YEAR;
|
||||
}
|
||||
|
||||
/* static */ std::string AI::GetConsoleList(bool newest_only)
|
||||
{
|
||||
return AI::scanner_info->GetConsoleList(newest_only);
|
||||
|
@@ -34,11 +34,17 @@ static const NWidgetPart _nested_ai_config_widgets[] = {
|
||||
NWidget(WWT_PANEL, COLOUR_MAUVE, WID_AIC_BACKGROUND),
|
||||
NWidget(NWID_VERTICAL), SetPIP(4, 4, 4),
|
||||
NWidget(NWID_HORIZONTAL), SetPIP(7, 0, 7),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_YELLOW, WID_AIC_DECREASE), SetDataTip(AWV_DECREASE, STR_NULL),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_YELLOW, WID_AIC_INCREASE), SetDataTip(AWV_INCREASE, STR_NULL),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_YELLOW, WID_AIC_DECREASE_NUMBER), SetDataTip(AWV_DECREASE, STR_NULL),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_YELLOW, WID_AIC_INCREASE_NUMBER), SetDataTip(AWV_INCREASE, STR_NULL),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(6, 0),
|
||||
NWidget(WWT_TEXT, COLOUR_MAUVE, WID_AIC_NUMBER), SetDataTip(STR_AI_CONFIG_MAX_COMPETITORS, STR_NULL), SetFill(1, 0),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL), SetPIP(7, 0, 7),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_YELLOW, WID_AIC_DECREASE_INTERVAL), SetDataTip(AWV_DECREASE, STR_NULL),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_YELLOW, WID_AIC_INCREASE_INTERVAL), SetDataTip(AWV_INCREASE, STR_NULL),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(6, 0),
|
||||
NWidget(WWT_TEXT, COLOUR_MAUVE, WID_AIC_INTERVAL), SetDataTip(STR_AI_CONFIG_COMPETITORS_INTERVAL, STR_NULL), SetFill(1, 0),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_MOVE_UP), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_AI_CONFIG_MOVE_UP, STR_AI_CONFIG_MOVE_UP_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_MOVE_DOWN), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_AI_CONFIG_MOVE_DOWN, STR_AI_CONFIG_MOVE_DOWN_TOOLTIP),
|
||||
@@ -104,14 +110,20 @@ struct AIConfigWindow : public Window {
|
||||
case WID_AIC_NUMBER:
|
||||
SetDParam(0, GetGameSettings().difficulty.max_no_competitors);
|
||||
break;
|
||||
|
||||
case WID_AIC_INTERVAL:
|
||||
SetDParam(0, GetGameSettings().difficulty.competitors_interval);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_AIC_DECREASE:
|
||||
case WID_AIC_INCREASE:
|
||||
case WID_AIC_DECREASE_NUMBER:
|
||||
case WID_AIC_INCREASE_NUMBER:
|
||||
case WID_AIC_DECREASE_INTERVAL:
|
||||
case WID_AIC_INCREASE_INTERVAL:
|
||||
*size = maxdim(*size, NWidgetScrollbar::GetHorizontalDimension());
|
||||
break;
|
||||
|
||||
@@ -177,10 +189,10 @@ struct AIConfigWindow : public Window {
|
||||
}
|
||||
|
||||
switch (widget) {
|
||||
case WID_AIC_DECREASE:
|
||||
case WID_AIC_INCREASE: {
|
||||
case WID_AIC_DECREASE_NUMBER:
|
||||
case WID_AIC_INCREASE_NUMBER: {
|
||||
int new_value;
|
||||
if (widget == WID_AIC_DECREASE) {
|
||||
if (widget == WID_AIC_DECREASE_NUMBER) {
|
||||
new_value = std::max(0, GetGameSettings().difficulty.max_no_competitors - 1);
|
||||
} else {
|
||||
new_value = std::min(MAX_COMPANIES - 1, GetGameSettings().difficulty.max_no_competitors + 1);
|
||||
@@ -189,6 +201,18 @@ struct AIConfigWindow : public Window {
|
||||
break;
|
||||
}
|
||||
|
||||
case WID_AIC_DECREASE_INTERVAL:
|
||||
case WID_AIC_INCREASE_INTERVAL: {
|
||||
int new_value;
|
||||
if (widget == WID_AIC_DECREASE_INTERVAL) {
|
||||
new_value = std::max(static_cast<int>(MIN_COMPETITORS_INTERVAL), GetGameSettings().difficulty.competitors_interval - 1);
|
||||
} else {
|
||||
new_value = std::min(static_cast<int>(MAX_COMPETITORS_INTERVAL), GetGameSettings().difficulty.competitors_interval + 1);
|
||||
}
|
||||
IConsoleSetSetting("difficulty.competitors_interval", new_value);
|
||||
break;
|
||||
}
|
||||
|
||||
case WID_AIC_LIST: { // Select a slot
|
||||
this->selected_slot = (CompanyID)this->vscroll->GetScrolledRowFromWidget(pt.y, this, widget);
|
||||
this->InvalidateData();
|
||||
@@ -249,8 +273,10 @@ struct AIConfigWindow : public Window {
|
||||
|
||||
if (!gui_scope) return;
|
||||
|
||||
this->SetWidgetDisabledState(WID_AIC_DECREASE, GetGameSettings().difficulty.max_no_competitors == 0);
|
||||
this->SetWidgetDisabledState(WID_AIC_INCREASE, GetGameSettings().difficulty.max_no_competitors == MAX_COMPANIES - 1);
|
||||
this->SetWidgetDisabledState(WID_AIC_DECREASE_NUMBER, GetGameSettings().difficulty.max_no_competitors == 0);
|
||||
this->SetWidgetDisabledState(WID_AIC_INCREASE_NUMBER, GetGameSettings().difficulty.max_no_competitors == MAX_COMPANIES - 1);
|
||||
this->SetWidgetDisabledState(WID_AIC_DECREASE_INTERVAL, GetGameSettings().difficulty.competitors_interval == MIN_COMPETITORS_INTERVAL);
|
||||
this->SetWidgetDisabledState(WID_AIC_INCREASE_INTERVAL, GetGameSettings().difficulty.competitors_interval == MAX_COMPETITORS_INTERVAL);
|
||||
this->SetWidgetDisabledState(WID_AIC_CHANGE, this->selected_slot == INVALID_COMPANY);
|
||||
this->SetWidgetDisabledState(WID_AIC_CONFIGURE, this->selected_slot == INVALID_COMPANY || AIConfig::GetConfig(this->selected_slot)->GetConfigList()->size() == 0);
|
||||
this->SetWidgetDisabledState(WID_AIC_MOVE_UP, this->selected_slot == INVALID_COMPANY || !IsEditable((CompanyID)(this->selected_slot - 1)));
|
||||
|
@@ -32,12 +32,12 @@ static bool CheckAPIVersion(const char *api_version)
|
||||
#if defined(_WIN32)
|
||||
#undef GetClassName
|
||||
#endif /* _WIN32 */
|
||||
template <> const char *GetClassName<AIInfo, ST_AI>() { return "AIInfo"; }
|
||||
template <> const char *GetClassName<AIInfo, ScriptType::AI>() { return "AIInfo"; }
|
||||
|
||||
/* static */ void AIInfo::RegisterAPI(Squirrel *engine)
|
||||
{
|
||||
/* Create the AIInfo class, and add the RegisterAI function */
|
||||
DefSQClass<AIInfo, ST_AI> SQAIInfo("AIInfo");
|
||||
DefSQClass<AIInfo, ScriptType::AI> SQAIInfo("AIInfo");
|
||||
SQAIInfo.PreRegister(engine);
|
||||
SQAIInfo.AddConstructor<void (AIInfo::*)(), 1>(engine, "x");
|
||||
SQAIInfo.DefSQAdvancedMethod(engine, &AIInfo::AddSetting, "AddSetting");
|
||||
@@ -69,11 +69,6 @@ template <> const char *GetClassName<AIInfo, ST_AI>() { return "AIInfo"; }
|
||||
SQInteger res = ScriptInfo::Constructor(vm, info);
|
||||
if (res != 0) return res;
|
||||
|
||||
ScriptConfigItem config = _start_date_config;
|
||||
config.name = stredup(config.name);
|
||||
config.description = stredup(config.description);
|
||||
info->config_list.push_front(config);
|
||||
|
||||
if (info->engine->MethodExists(*info->SQ_instance, "MinVersionToLoad")) {
|
||||
if (!info->engine->CallIntegerMethod(*info->SQ_instance, "MinVersionToLoad", &info->min_loadable_version, MAX_GET_OPS)) return SQ_ERROR;
|
||||
} else {
|
||||
|
@@ -33,7 +33,7 @@
|
||||
#include "../safeguards.h"
|
||||
|
||||
AIInstance::AIInstance() :
|
||||
ScriptInstance("AI", ST_AI)
|
||||
ScriptInstance("AI", ScriptType::AI)
|
||||
{}
|
||||
|
||||
void AIInstance::Initialize(AIInfo *info)
|
||||
|
@@ -304,7 +304,7 @@ template <bool Tpal_to_rgb> Sprite *Blitter_32bppOptimized::EncodeInternal(const
|
||||
ZoomLevel zoom_min;
|
||||
ZoomLevel zoom_max;
|
||||
|
||||
if (sprite->type == ST_FONT) {
|
||||
if (sprite->type == SpriteType::Font) {
|
||||
zoom_min = ZOOM_LVL_NORMAL;
|
||||
zoom_max = ZOOM_LVL_NORMAL;
|
||||
} else {
|
||||
|
@@ -28,7 +28,7 @@ Sprite *Blitter_32bppSSE_Base::Encode(const SpriteLoader::Sprite *sprite, Alloca
|
||||
*/
|
||||
ZoomLevel zoom_min = ZOOM_LVL_NORMAL;
|
||||
ZoomLevel zoom_max = ZOOM_LVL_NORMAL;
|
||||
if (sprite->type != ST_FONT) {
|
||||
if (sprite->type != SpriteType::Font) {
|
||||
zoom_min = _settings_client.gui.zoom_min;
|
||||
zoom_max = _settings_client.gui.zoom_max;
|
||||
if (zoom_max == zoom_min) zoom_max = ZOOM_LVL_MAX;
|
||||
|
@@ -431,7 +431,7 @@ void Blitter_40bppAnim::DrawColourMappingRect(void *dst, int width, int height,
|
||||
anim = anim - width + _screen.pitch;
|
||||
} while (--height);
|
||||
} else if (pal == PALETTE_NEWSPAPER) {
|
||||
const uint8 *remap = GetNonSprite(pal, ST_RECOLOUR) + 1;
|
||||
const uint8 *remap = GetNonSprite(pal, SpriteType::Recolour) + 1;
|
||||
do {
|
||||
for (int i = 0; i != width; i++) {
|
||||
if (*anim == 0) *udst = MakeGrey(*udst);
|
||||
@@ -443,7 +443,7 @@ void Blitter_40bppAnim::DrawColourMappingRect(void *dst, int width, int height,
|
||||
anim = anim - width + _screen.pitch;
|
||||
} while (--height);
|
||||
} else {
|
||||
const uint8 *remap = GetNonSprite(pal, ST_RECOLOUR) + 1;
|
||||
const uint8 *remap = GetNonSprite(pal, SpriteType::Recolour) + 1;
|
||||
do {
|
||||
for (int i = 0; i != width; i++) {
|
||||
*anim = remap[*anim];
|
||||
|
@@ -16,7 +16,7 @@
|
||||
|
||||
void Blitter_8bppBase::DrawColourMappingRect(void *dst, int width, int height, PaletteID pal)
|
||||
{
|
||||
const uint8 *ctab = GetNonSprite(pal, ST_RECOLOUR) + 1;
|
||||
const uint8 *ctab = GetNonSprite(pal, SpriteType::Recolour) + 1;
|
||||
|
||||
do {
|
||||
for (int i = 0; i != width; i++) *((uint8 *)dst + i) = ctab[((uint8 *)dst)[i]];
|
||||
|
@@ -128,7 +128,7 @@ Sprite *Blitter_8bppOptimized::Encode(const SpriteLoader::Sprite *sprite, Alloca
|
||||
ZoomLevel zoom_min;
|
||||
ZoomLevel zoom_max;
|
||||
|
||||
if (sprite->type == ST_FONT) {
|
||||
if (sprite->type == SpriteType::Font) {
|
||||
zoom_min = ZOOM_LVL_NORMAL;
|
||||
zoom_max = ZOOM_LVL_NORMAL;
|
||||
} else {
|
||||
|
@@ -144,10 +144,10 @@ public:
|
||||
|
||||
|
||||
/** Types of cargo source and destination */
|
||||
enum SourceType : byte {
|
||||
ST_INDUSTRY, ///< Source/destination is an industry
|
||||
ST_TOWN, ///< Source/destination is a town
|
||||
ST_HEADQUARTERS, ///< Source/destination are company headquarters
|
||||
enum class SourceType : byte {
|
||||
Industry, ///< Source/destination is an industry
|
||||
Town, ///< Source/destination is a town
|
||||
Headquarters, ///< Source/destination are company headquarters
|
||||
};
|
||||
|
||||
typedef uint16 SourceID; ///< Contains either industry ID, town ID or company ID (or INVALID_SOURCE)
|
||||
|
@@ -123,13 +123,13 @@ void AddCargoDelivery(CargoID cargo_type, CompanyID company, uint32 amount, Sour
|
||||
if (src != INVALID_SOURCE) {
|
||||
/* Handle pickup update. */
|
||||
switch (src_type) {
|
||||
case ST_INDUSTRY: {
|
||||
case SourceType::Industry: {
|
||||
CargoMonitorID num = EncodeCargoIndustryMonitor(company, cargo_type, src);
|
||||
CargoMonitorMap::iterator iter = _cargo_pickups.find(num);
|
||||
if (iter != _cargo_pickups.end()) iter->second += amount;
|
||||
break;
|
||||
}
|
||||
case ST_TOWN: {
|
||||
case SourceType::Town: {
|
||||
CargoMonitorID num = EncodeCargoTownMonitor(company, cargo_type, src);
|
||||
CargoMonitorMap::iterator iter = _cargo_pickups.find(num);
|
||||
if (iter != _cargo_pickups.end()) iter->second += amount;
|
||||
|
@@ -101,7 +101,7 @@ void DumpCargoPacketDeferredPaymentStats(char *buffer, const char *last)
|
||||
*/
|
||||
CargoPacket::CargoPacket()
|
||||
{
|
||||
this->source_type = ST_INDUSTRY;
|
||||
this->source_type = SourceType::Industry;
|
||||
this->source_id = INVALID_SOURCE;
|
||||
}
|
||||
|
||||
|
@@ -84,7 +84,7 @@ public:
|
||||
|
||||
CargoPacket();
|
||||
CargoPacket(StationID source, TileIndex source_xy, uint16 count, SourceType source_type, SourceID source_id);
|
||||
CargoPacket(uint16 count, uint16 days_in_transit, StationID source, TileIndex source_xy, TileIndex loaded_at_xy, Money feeder_share = 0, SourceType source_type = ST_INDUSTRY, SourceID source_id = INVALID_SOURCE);
|
||||
CargoPacket(uint16 count, uint16 days_in_transit, StationID source, TileIndex source_xy, TileIndex loaded_at_xy, Money feeder_share = 0, SourceType source_type = SourceType::Industry, SourceID source_id = INVALID_SOURCE);
|
||||
~CargoPacket();
|
||||
|
||||
CargoPacket *Split(uint new_size);
|
||||
|
@@ -181,7 +181,6 @@ struct Company : CompanyPool::PoolItem<&_company_pool>, CompanyProperties {
|
||||
Money CalculateCompanyValue(const Company *c, bool including_loan = true);
|
||||
Money CalculateCompanyValueExcludingShares(const Company *c, bool including_loan = true);
|
||||
|
||||
extern uint _next_competitor_start;
|
||||
extern uint _cur_company_tick_index;
|
||||
|
||||
#endif /* COMPANY_BASE_H */
|
||||
|
@@ -39,6 +39,8 @@
|
||||
#include "widgets/statusbar_widget.h"
|
||||
#include "core/backup_type.hpp"
|
||||
#include "debug_desync.h"
|
||||
#include "timer/timer.h"
|
||||
#include "timer/timer_game_tick.h"
|
||||
|
||||
#include "table/strings.h"
|
||||
|
||||
@@ -54,7 +56,6 @@ CompanyID _current_company; ///< Company currently doing an action.
|
||||
CompanyID _loaded_local_company; ///< Local company in loaded savegame
|
||||
Colours _company_colours[MAX_COMPANIES]; ///< NOSAVE: can be determined from company structs.
|
||||
CompanyManagerFace _company_manager_face; ///< for company manager face storage in openttd.cfg
|
||||
uint _next_competitor_start; ///< the number of ticks before the next AI is started
|
||||
uint _cur_company_tick_index; ///< used to generate a name for one company that doesn't have a name yet per tick
|
||||
|
||||
CompanyMask _saved_PLYP_invalid_mask;
|
||||
@@ -622,16 +623,10 @@ Company *DoStartupNewCompany(DoStartupNewCompanyFlag flags, CompanyID company)
|
||||
return c;
|
||||
}
|
||||
|
||||
/** Start the next competitor now. */
|
||||
void StartupCompanies()
|
||||
{
|
||||
_next_competitor_start = 0;
|
||||
}
|
||||
|
||||
/** Start a new competitor company if possible. */
|
||||
static bool MaybeStartNewCompany()
|
||||
{
|
||||
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return false;
|
||||
TimeoutTimer<TimerGameTick> _new_competitor_timeout(0, []() {
|
||||
if (_game_mode == GM_MENU || !AI::CanStartNew()) return;
|
||||
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return;
|
||||
|
||||
/* count number of competitors */
|
||||
uint n = 0;
|
||||
@@ -639,13 +634,26 @@ static bool MaybeStartNewCompany()
|
||||
if (c->is_ai) n++;
|
||||
}
|
||||
|
||||
if (n < (uint)_settings_game.difficulty.max_no_competitors) {
|
||||
/* Send a command to all clients to start up a new AI.
|
||||
* Works fine for Multiplayer and Singleplayer */
|
||||
return DoCommandP(0, CCA_NEW_AI | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL);
|
||||
}
|
||||
if (n >= (uint)_settings_game.difficulty.max_no_competitors) return;
|
||||
|
||||
return false;
|
||||
/* Send a command to all clients to start up a new AI.
|
||||
* Works fine for Multiplayer and Singleplayer */
|
||||
DoCommandP(0, CCA_NEW_AI | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL);
|
||||
});
|
||||
|
||||
/** Start of a new game. */
|
||||
void StartupCompanies()
|
||||
{
|
||||
/* Ensure the timeout is aborted, so it doesn't fire based on information of the last game. */
|
||||
_new_competitor_timeout.Abort();
|
||||
|
||||
/* If there is no delay till the start of the next competitor, start all competitors at the start of the game. */
|
||||
if (_settings_game.difficulty.competitors_interval == 0 && _game_mode != GM_MENU && AI::CanStartNew()) {
|
||||
for (auto i = 0; i < _settings_game.difficulty.max_no_competitors; i++) {
|
||||
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) break;
|
||||
DoCommandP(0, CCA_NEW_AI | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void ClearSavedPLYP()
|
||||
@@ -786,20 +794,15 @@ void OnTick_Companies(bool main_tick)
|
||||
if (c->bankrupt_asked != 0 && c->bankrupt_timeout == 0) HandleBankruptcyTakeover(c);
|
||||
}
|
||||
|
||||
if (_next_competitor_start == 0) {
|
||||
/* AI::GetStartNextTime() can return 0. */
|
||||
_next_competitor_start = std::max(1, AI::GetStartNextTime() * DAY_TICKS);
|
||||
}
|
||||
if (_new_competitor_timeout.HasFired() && _game_mode != GM_MENU && AI::CanStartNew()) {
|
||||
int32 timeout = _settings_game.difficulty.competitors_interval * 60 * TICKS_PER_SECOND;
|
||||
/* If the interval is zero, check every ~10 minutes if a company went bankrupt and needs replacing. */
|
||||
if (timeout == 0) timeout = 10 * 60 * TICKS_PER_SECOND;
|
||||
|
||||
if (_game_mode != GM_MENU && AI::CanStartNew() && --_next_competitor_start == 0) {
|
||||
/* Allow multiple AIs to possibly start in the same tick. */
|
||||
do {
|
||||
if (!MaybeStartNewCompany()) break;
|
||||
/* Randomize a bit when the AI is actually going to start; ranges from 87.5% .. 112.5% of indicated value. */
|
||||
timeout += ScriptObject::GetRandomizer(OWNER_NONE).Next(timeout / 4) - timeout / 8;
|
||||
|
||||
/* In networking mode, we can only send a command to start but it
|
||||
* didn't execute yet, so we cannot loop. */
|
||||
if (_networking) break;
|
||||
} while (AI::GetStartNextTime() == 0);
|
||||
_new_competitor_timeout.Reset(std::max(1, timeout));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1235,13 +1235,17 @@ void ShowCompanyLiveryWindow(CompanyID company, GroupID group)
|
||||
* Draws the face of a company manager's face.
|
||||
* @param cmf the company manager's face
|
||||
* @param colour the (background) colour of the gradient
|
||||
* @param x x-position to draw the face
|
||||
* @param y y-position to draw the face
|
||||
* @param r position to draw the face
|
||||
*/
|
||||
void DrawCompanyManagerFace(CompanyManagerFace cmf, int colour, int x, int y)
|
||||
void DrawCompanyManagerFace(CompanyManagerFace cmf, int colour, const Rect &r)
|
||||
{
|
||||
GenderEthnicity ge = (GenderEthnicity)GetCompanyManagerFaceBits(cmf, CMFV_GEN_ETHN, GE_WM);
|
||||
|
||||
/* Determine offset from centre of drawing rect. */
|
||||
Dimension d = GetSpriteSize(SPR_GRADIENT);
|
||||
int x = CenterBounds(r.left, r.right, d.width);
|
||||
int y = CenterBounds(r.top, r.bottom, d.height);
|
||||
|
||||
bool has_moustache = !HasBit(ge, GENDER_FEMALE) && GetCompanyManagerFaceBits(cmf, CMFV_HAS_MOUSTACHE, ge) != 0;
|
||||
bool has_tie_earring = !HasBit(ge, GENDER_FEMALE) || GetCompanyManagerFaceBits(cmf, CMFV_HAS_TIE_EARRING, ge) != 0;
|
||||
bool has_glasses = GetCompanyManagerFaceBits(cmf, CMFV_HAS_GLASSES, ge) != 0;
|
||||
@@ -1544,7 +1548,7 @@ public:
|
||||
break;
|
||||
|
||||
case WID_SCMF_FACE: {
|
||||
Dimension face_size = GetSpriteSize(SPR_GRADIENT);
|
||||
Dimension face_size = GetScaledSpriteSize(SPR_GRADIENT);
|
||||
size->width = std::max(size->width, face_size.width);
|
||||
size->height = std::max(size->height, face_size.height);
|
||||
break;
|
||||
@@ -1696,7 +1700,7 @@ public:
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_SCMF_FACE:
|
||||
DrawCompanyManagerFace(this->face, Company::Get((CompanyID)this->window_number)->colour, r.left, r.top);
|
||||
DrawCompanyManagerFace(this->face, Company::Get((CompanyID)this->window_number)->colour, r);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2481,7 +2485,7 @@ struct CompanyWindow : Window
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_C_FACE: {
|
||||
Dimension face_size = GetSpriteSize(SPR_GRADIENT);
|
||||
Dimension face_size = GetScaledSpriteSize(SPR_GRADIENT);
|
||||
size->width = std::max(size->width, face_size.width);
|
||||
size->height = std::max(size->height, face_size.height);
|
||||
break;
|
||||
@@ -2618,7 +2622,7 @@ struct CompanyWindow : Window
|
||||
const Company *c = Company::Get((CompanyID)this->window_number);
|
||||
switch (widget) {
|
||||
case WID_C_FACE:
|
||||
DrawCompanyManagerFace(c->face, c->colour, r.left, r.top);
|
||||
DrawCompanyManagerFace(c->face, c->colour, r);
|
||||
break;
|
||||
|
||||
case WID_C_FACE_TITLE:
|
||||
@@ -2910,7 +2914,7 @@ struct BuyCompanyWindow : Window {
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_BC_FACE:
|
||||
*size = GetSpriteSize(SPR_GRADIENT);
|
||||
*size = GetScaledSpriteSize(SPR_GRADIENT);
|
||||
break;
|
||||
|
||||
case WID_BC_QUESTION:
|
||||
@@ -2937,7 +2941,7 @@ struct BuyCompanyWindow : Window {
|
||||
switch (widget) {
|
||||
case WID_BC_FACE: {
|
||||
const Company *c = Company::Get((CompanyID)this->window_number);
|
||||
DrawCompanyManagerFace(c->face, c->colour, r.left, r.top);
|
||||
DrawCompanyManagerFace(c->face, c->colour, r);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@@ -236,6 +236,6 @@ static inline SpriteID GetCompanyManagerFaceSprite(CompanyManagerFace cmf, Compa
|
||||
return _cmf_info[cmfv].first_sprite[ge] + GB(cmf, _cmf_info[cmfv].offset, _cmf_info[cmfv].length);
|
||||
}
|
||||
|
||||
void DrawCompanyManagerFace(CompanyManagerFace face, int colour, int x, int y);
|
||||
void DrawCompanyManagerFace(CompanyManagerFace face, int colour, const Rect &r);
|
||||
|
||||
#endif /* COMPANY_MANAGER_FACE_H */
|
||||
|
@@ -42,6 +42,9 @@ static const uint MAX_LENGTH_COMPANY_NAME_CHARS = 32; ///< The maximum length
|
||||
static const uint MAX_HISTORY_QUARTERS = 24; ///< The maximum number of quarters kept as performance's history
|
||||
static const uint MAX_COMPANY_SHARE_OWNERS = 4; ///< The maximum number of shares of a company that can be owned by another company.
|
||||
|
||||
static const uint MIN_COMPETITORS_INTERVAL = 0; ///< The minimum interval (in minutes) between competitors.
|
||||
static const uint MAX_COMPETITORS_INTERVAL = 500; ///< The maximum interval (in minutes) between competitors.
|
||||
|
||||
/** Define basic enum properties */
|
||||
template <> struct EnumPropsT<Owner> : MakeEnumPropsT<Owner, byte, OWNER_BEGIN, OWNER_END, INVALID_OWNER> {};
|
||||
|
||||
|
@@ -1151,7 +1151,7 @@ uint DeliverGoodsToIndustryNearestFirst(const Station *st, CargoID cargo_type, u
|
||||
accepted += amount;
|
||||
|
||||
/* Update the cargo monitor. */
|
||||
AddCargoDelivery(cargo_type, company, amount, ST_INDUSTRY, source, st, ind->index);
|
||||
AddCargoDelivery(cargo_type, company, amount, SourceType::Industry, source, st, ind->index);
|
||||
|
||||
return num_pieces != 0;
|
||||
});
|
||||
@@ -1192,7 +1192,7 @@ uint DeliverGoodsToIndustryEqually(const Station *st, CargoID cargo_type, uint n
|
||||
include(_cargo_delivery_destinations, e.ind);
|
||||
e.ind->incoming_cargo_waiting[e.cargo_index] += e.delivered;
|
||||
e.ind->last_cargo_accepted_at[e.cargo_index] = _date;
|
||||
AddCargoDelivery(cargo_type, company, e.delivered, ST_INDUSTRY, source, st, e.ind->index);
|
||||
AddCargoDelivery(cargo_type, company, e.delivered, SourceType::Industry, source, st, e.ind->index);
|
||||
};
|
||||
|
||||
if (acceptingIndustries.size() == 1) {
|
||||
@@ -1293,7 +1293,7 @@ static Money DeliverGoods(int num_pieces, CargoID cargo_type, StationID dest, Ti
|
||||
Station *st = Station::Get(dest);
|
||||
|
||||
/* Give the goods to the industry. */
|
||||
uint accepted_ind = DeliverGoodsToIndustry(st, cargo_type, num_pieces, src_type == ST_INDUSTRY ? src : INVALID_INDUSTRY, company->index);
|
||||
uint accepted_ind = DeliverGoodsToIndustry(st, cargo_type, num_pieces, src_type == SourceType::Industry ? src : INVALID_INDUSTRY, company->index);
|
||||
|
||||
/* If this cargo type is always accepted, accept all */
|
||||
uint accepted_total = HasBit(st->always_accepted, cargo_type) ? num_pieces : accepted_ind;
|
||||
|
@@ -1339,6 +1339,9 @@ void CheckEngines()
|
||||
for (const Engine *e : Engine::Iterate()) {
|
||||
if (!e->IsEnabled()) continue;
|
||||
|
||||
/* Don't consider train wagons, we need a powered engine available. */
|
||||
if (e->type == VEH_TRAIN && e->u.rail.railveh_type == RAILVEH_WAGON) continue;
|
||||
|
||||
/* We have an available engine... yay! */
|
||||
if ((e->flags & ENGINE_AVAILABLE) != 0 && e->company_avail != 0) return;
|
||||
|
||||
|
@@ -214,7 +214,7 @@ public:
|
||||
break;
|
||||
}
|
||||
case WID_EM_FACE: {
|
||||
Dimension face_size = GetSpriteSize(SPR_GRADIENT);
|
||||
Dimension face_size = GetScaledSpriteSize(SPR_GRADIENT);
|
||||
size->width = std::max(size->width, face_size.width);
|
||||
size->height = std::max(size->height, face_size.height);
|
||||
break;
|
||||
@@ -274,7 +274,7 @@ public:
|
||||
switch (widget) {
|
||||
case WID_EM_FACE: {
|
||||
const Company *c = Company::Get(this->face);
|
||||
DrawCompanyManagerFace(c->face, c->colour, r.left, r.top);
|
||||
DrawCompanyManagerFace(c->face, c->colour, r);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@@ -243,7 +243,7 @@ const Sprite *FreeTypeFontCache::InternalGetGlyph(GlyphID key, bool aa)
|
||||
/* FreeType has rendered the glyph, now we allocate a sprite and copy the image into it */
|
||||
SpriteLoader::Sprite sprite;
|
||||
sprite.AllocateData(ZOOM_LVL_NORMAL, static_cast<size_t>(width) * height);
|
||||
sprite.type = ST_FONT;
|
||||
sprite.type = SpriteType::Font;
|
||||
sprite.colours = (aa ? SCC_PAL | SCC_ALPHA : SCC_PAL);
|
||||
sprite.width = width;
|
||||
sprite.height = height;
|
||||
|
@@ -124,14 +124,14 @@ const Sprite *SpriteFontCache::GetGlyph(GlyphID key)
|
||||
{
|
||||
SpriteID sprite = this->GetUnicodeGlyph(key);
|
||||
if (sprite == 0) sprite = this->GetUnicodeGlyph('?');
|
||||
return GetSprite(sprite, ST_FONT);
|
||||
return GetSprite(sprite, SpriteType::Font);
|
||||
}
|
||||
|
||||
uint SpriteFontCache::GetGlyphWidth(GlyphID key)
|
||||
{
|
||||
SpriteID sprite = this->GetUnicodeGlyph(key);
|
||||
if (sprite == 0) sprite = this->GetUnicodeGlyph('?');
|
||||
return SpriteExists(sprite) ? GetSprite(sprite, ST_FONT)->width + ScaleFontTrad(this->fs != FS_NORMAL ? 1 : 0) : 0;
|
||||
return SpriteExists(sprite) ? GetSprite(sprite, SpriteType::Font)->width + ScaleFontTrad(this->fs != FS_NORMAL ? 1 : 0) : 0;
|
||||
}
|
||||
|
||||
bool SpriteFontCache::GetDrawGlyphShadow()
|
||||
|
@@ -141,7 +141,7 @@ const Sprite *TrueTypeFontCache::GetGlyph(GlyphID key)
|
||||
8, // width
|
||||
0, // x_offs
|
||||
0, // y_offs
|
||||
ST_FONT,
|
||||
SpriteType::Font,
|
||||
SCC_PAL,
|
||||
builtin_questionmark_data
|
||||
};
|
||||
|
@@ -30,12 +30,12 @@ static bool CheckAPIVersion(const char *api_version)
|
||||
#if defined(_WIN32)
|
||||
#undef GetClassName
|
||||
#endif /* _WIN32 */
|
||||
template <> const char *GetClassName<GameInfo, ST_GS>() { return "GSInfo"; }
|
||||
template <> const char *GetClassName<GameInfo, ScriptType::GS>() { return "GSInfo"; }
|
||||
|
||||
/* static */ void GameInfo::RegisterAPI(Squirrel *engine)
|
||||
{
|
||||
/* Create the GSInfo class, and add the RegisterGS function */
|
||||
DefSQClass<GameInfo, ST_GS> SQGSInfo("GSInfo");
|
||||
DefSQClass<GameInfo, ScriptType::GS> SQGSInfo("GSInfo");
|
||||
SQGSInfo.PreRegister(engine);
|
||||
SQGSInfo.AddConstructor<void (GameInfo::*)(), 1>(engine, "x");
|
||||
SQGSInfo.DefSQAdvancedMethod(engine, &GameInfo::AddSetting, "AddSetting");
|
||||
|
@@ -27,7 +27,7 @@
|
||||
|
||||
|
||||
GameInstance::GameInstance() :
|
||||
ScriptInstance("GS", ST_GS)
|
||||
ScriptInstance("GS", ScriptType::GS)
|
||||
{}
|
||||
|
||||
void GameInstance::Initialize(GameInfo *info)
|
||||
|
30
src/gfx.cpp
30
src/gfx.cpp
@@ -91,7 +91,7 @@ byte _colour_value[COLOUR_END] = {
|
||||
struct GfxBlitterCtx {
|
||||
const DrawPixelInfo *dpi;
|
||||
const byte *colour_remap_ptr = nullptr;
|
||||
byte string_colourremap[3]; ///< Recoloursprite for stringdrawing. The grf loader ensures that #ST_FONT sprites only use colours 0 to 2.
|
||||
byte string_colourremap[3]; ///< Recoloursprite for stringdrawing. The grf loader ensures that #SpriteType::Font sprites only use colours 0 to 2.
|
||||
int sprite_brightness_adjust = 0;
|
||||
|
||||
GfxBlitterCtx(const DrawPixelInfo *dpi) : dpi(dpi) {}
|
||||
@@ -1031,7 +1031,7 @@ void DrawCharCentered(WChar c, const Rect &r, TextColour colour)
|
||||
*/
|
||||
Dimension GetSpriteSize(SpriteID sprid, Point *offset, ZoomLevel zoom)
|
||||
{
|
||||
const Sprite *sprite = GetSprite(sprid, ST_NORMAL);
|
||||
const Sprite *sprite = GetSprite(sprid, SpriteType::Normal);
|
||||
|
||||
if (offset != nullptr) {
|
||||
offset->x = UnScaleByZoom(sprite->x_offs, zoom);
|
||||
@@ -1077,7 +1077,7 @@ void DrawSpriteViewport(const SpritePointerHolder &sprite_store, const DrawPixel
|
||||
SpriteID real_sprite = GB(img, 0, SPRITE_WIDTH);
|
||||
if (HasBit(img, PALETTE_MODIFIER_TRANSPARENT)) {
|
||||
ctx.colour_remap_ptr = sprite_store.GetRecolourSprite(GB(pal, 0, PALETTE_WIDTH)) + 1;
|
||||
GfxMainBlitterViewport(ctx, sprite_store.GetSprite(real_sprite, ST_NORMAL), x, y, BM_TRANSPARENT, sub, real_sprite);
|
||||
GfxMainBlitterViewport(ctx, sprite_store.GetSprite(real_sprite, SpriteType::Normal), x, y, BM_TRANSPARENT, sub, real_sprite);
|
||||
} else if (pal != PAL_NONE) {
|
||||
if (HasBit(pal, PALETTE_TEXT_RECOLOUR)) {
|
||||
ctx.SetColourRemap((TextColour)GB(pal, 0, PALETTE_WIDTH));
|
||||
@@ -1090,21 +1090,21 @@ void DrawSpriteViewport(const SpritePointerHolder &sprite_store, const DrawPixel
|
||||
int sign_bit = 1 << (PALETTE_BRIGHTNESS_WIDTH - 1);
|
||||
ctx.sprite_brightness_adjust = (adjust ^ sign_bit) - sign_bit;
|
||||
}
|
||||
GfxMainBlitterViewport(ctx, sprite_store.GetSprite(real_sprite, ST_NORMAL), x, y, GetBlitterMode(pal), sub, real_sprite);
|
||||
GfxMainBlitterViewport(ctx, sprite_store.GetSprite(real_sprite, SpriteType::Normal), x, y, GetBlitterMode(pal), sub, real_sprite);
|
||||
} else {
|
||||
GfxMainBlitterViewport(ctx, sprite_store.GetSprite(real_sprite, ST_NORMAL), x, y, BM_NORMAL, sub, real_sprite);
|
||||
GfxMainBlitterViewport(ctx, sprite_store.GetSprite(real_sprite, SpriteType::Normal), x, y, BM_NORMAL, sub, real_sprite);
|
||||
}
|
||||
}
|
||||
|
||||
void PrepareDrawSpriteViewportSpriteStore(SpritePointerHolder &sprite_store, SpriteID img, PaletteID pal)
|
||||
{
|
||||
SpriteID real_sprite = GB(img, 0, SPRITE_WIDTH);
|
||||
sprite_store.CacheSprite(real_sprite, ST_NORMAL);
|
||||
sprite_store.CacheSprite(real_sprite, SpriteType::Normal);
|
||||
if (HasBit(img, PALETTE_MODIFIER_TRANSPARENT)) {
|
||||
sprite_store.CacheSprite(GB(pal, 0, PALETTE_WIDTH), ST_RECOLOUR);
|
||||
sprite_store.CacheSprite(GB(pal, 0, PALETTE_WIDTH), SpriteType::Recolour);
|
||||
} else if (pal != PAL_NONE) {
|
||||
if (!HasBit(pal, PALETTE_TEXT_RECOLOUR) && GB(pal, 0, PALETTE_WIDTH) != PAL_NONE) {
|
||||
sprite_store.CacheSprite(GB(pal, 0, PALETTE_WIDTH), ST_RECOLOUR);
|
||||
sprite_store.CacheSprite(GB(pal, 0, PALETTE_WIDTH), SpriteType::Recolour);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1123,17 +1123,17 @@ void DrawSprite(SpriteID img, PaletteID pal, int x, int y, const SubSprite *sub,
|
||||
GfxBlitterCtx ctx(_cur_dpi);
|
||||
SpriteID real_sprite = GB(img, 0, SPRITE_WIDTH);
|
||||
if (HasBit(img, PALETTE_MODIFIER_TRANSPARENT)) {
|
||||
ctx.colour_remap_ptr = GetNonSprite(GB(pal, 0, PALETTE_WIDTH), ST_RECOLOUR) + 1;
|
||||
GfxMainBlitter(ctx, GetSprite(real_sprite, ST_NORMAL), x, y, BM_TRANSPARENT, sub, real_sprite, zoom);
|
||||
ctx.colour_remap_ptr = GetNonSprite(GB(pal, 0, PALETTE_WIDTH), SpriteType::Recolour) + 1;
|
||||
GfxMainBlitter(ctx, GetSprite(real_sprite, SpriteType::Normal), x, y, BM_TRANSPARENT, sub, real_sprite, zoom);
|
||||
} else if (pal != PAL_NONE) {
|
||||
if (HasBit(pal, PALETTE_TEXT_RECOLOUR)) {
|
||||
ctx.SetColourRemap((TextColour)GB(pal, 0, PALETTE_WIDTH));
|
||||
} else {
|
||||
ctx.colour_remap_ptr = GetNonSprite(GB(pal, 0, PALETTE_WIDTH), ST_RECOLOUR) + 1;
|
||||
ctx.colour_remap_ptr = GetNonSprite(GB(pal, 0, PALETTE_WIDTH), SpriteType::Recolour) + 1;
|
||||
}
|
||||
GfxMainBlitter(ctx, GetSprite(real_sprite, ST_NORMAL), x, y, GetBlitterMode(pal), sub, real_sprite, zoom);
|
||||
GfxMainBlitter(ctx, GetSprite(real_sprite, SpriteType::Normal), x, y, GetBlitterMode(pal), sub, real_sprite, zoom);
|
||||
} else {
|
||||
GfxMainBlitter(ctx, GetSprite(real_sprite, ST_NORMAL), x, y, BM_NORMAL, sub, real_sprite, zoom);
|
||||
GfxMainBlitter(ctx, GetSprite(real_sprite, SpriteType::Normal), x, y, BM_NORMAL, sub, real_sprite, zoom);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1283,7 +1283,7 @@ std::unique_ptr<uint32[]> DrawSpriteToRgbaBuffer(SpriteID spriteId, ZoomLevel zo
|
||||
|
||||
/* Gather information about the sprite to write, reserve memory */
|
||||
const SpriteID real_sprite = GB(spriteId, 0, SPRITE_WIDTH);
|
||||
const Sprite *sprite = GetSprite(real_sprite, ST_NORMAL);
|
||||
const Sprite *sprite = GetSprite(real_sprite, SpriteType::Normal);
|
||||
Dimension dim = GetSpriteSize(real_sprite, nullptr, zoom);
|
||||
size_t dim_size = static_cast<size_t>(dim.width) * dim.height;
|
||||
std::unique_ptr<uint32[]> result(new uint32[dim_size]);
|
||||
@@ -2155,7 +2155,7 @@ void UpdateCursorSize()
|
||||
static_assert(lengthof(_cursor.sprite_seq) == lengthof(_cursor.sprite_pos));
|
||||
assert(_cursor.sprite_count <= lengthof(_cursor.sprite_seq));
|
||||
for (uint i = 0; i < _cursor.sprite_count; ++i) {
|
||||
const Sprite *p = GetSprite(GB(_cursor.sprite_seq[i].sprite, 0, SPRITE_WIDTH), ST_NORMAL);
|
||||
const Sprite *p = GetSprite(GB(_cursor.sprite_seq[i].sprite, 0, SPRITE_WIDTH), SpriteType::Normal);
|
||||
Point offs, size;
|
||||
offs.x = UnScaleGUI(p->x_offs) + _cursor.sprite_pos[i].x;
|
||||
offs.y = UnScaleGUI(p->y_offs) + _cursor.sprite_pos[i].y;
|
||||
|
@@ -309,12 +309,12 @@ enum PaletteType {
|
||||
};
|
||||
|
||||
/** Types of sprites that might be loaded */
|
||||
enum SpriteType : byte {
|
||||
ST_NORMAL = 0, ///< The most basic (normal) sprite
|
||||
ST_MAPGEN = 1, ///< Special sprite for the map generator
|
||||
ST_FONT = 2, ///< A sprite used for fonts
|
||||
ST_RECOLOUR = 3, ///< Recolour sprite
|
||||
ST_INVALID = 4, ///< Pseudosprite or other unusable sprite, used only internally
|
||||
enum class SpriteType : byte {
|
||||
Normal = 0, ///< The most basic (normal) sprite
|
||||
MapGen = 1, ///< Special sprite for the map generator
|
||||
Font = 2, ///< A sprite used for fonts
|
||||
Recolour = 3, ///< Recolour sprite
|
||||
Invalid = 4, ///< Pseudosprite or other unusable sprite, used only internally
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -74,21 +74,16 @@ IndustryBuildData _industry_builder; ///< In-game manager of industries.
|
||||
*/
|
||||
void ResetIndustries()
|
||||
{
|
||||
for (IndustryType i = 0; i < NUM_INDUSTRYTYPES; i++) {
|
||||
/* Reset the spec to default */
|
||||
if (i < lengthof(_origin_industry_specs)) {
|
||||
_industry_specs[i] = _origin_industry_specs[i];
|
||||
} else {
|
||||
_industry_specs[i] = IndustrySpec{};
|
||||
}
|
||||
auto industry_insert = std::copy(std::begin(_origin_industry_specs), std::end(_origin_industry_specs), std::begin(_industry_specs));
|
||||
std::fill(industry_insert, std::end(_industry_specs), IndustrySpec{});
|
||||
|
||||
for (IndustryType i = 0; i < lengthof(_origin_industry_specs); i++) {
|
||||
/* Enable only the current climate industries */
|
||||
_industry_specs[i].enabled = i < NEW_INDUSTRYOFFSET &&
|
||||
HasBit(_origin_industry_specs[i].climate_availability, _settings_game.game_creation.landscape);
|
||||
_industry_specs[i].enabled = HasBit(_industry_specs[i].climate_availability, _settings_game.game_creation.landscape);
|
||||
}
|
||||
|
||||
memset(&_industry_tile_specs, 0, sizeof(_industry_tile_specs));
|
||||
memcpy(&_industry_tile_specs, &_origin_industry_tile_specs, sizeof(_origin_industry_tile_specs));
|
||||
auto industry_tile_insert = std::copy(std::begin(_origin_industry_tile_specs), std::end(_origin_industry_tile_specs), std::begin(_industry_tile_specs));
|
||||
std::fill(industry_tile_insert, std::end(_industry_tile_specs), IndustryTileSpec{});
|
||||
|
||||
/* Reset any overrides that have been set. */
|
||||
_industile_mngr.ResetOverride();
|
||||
@@ -195,8 +190,8 @@ Industry::~Industry()
|
||||
DeleteWindowById(WC_INDUSTRY_VIEW, this->index);
|
||||
DeleteNewGRFInspectWindow(GSF_INDUSTRIES, this->index);
|
||||
|
||||
DeleteSubsidyWith(ST_INDUSTRY, this->index);
|
||||
CargoPacket::InvalidateAllFrom(ST_INDUSTRY, this->index);
|
||||
DeleteSubsidyWith(SourceType::Industry, this->index);
|
||||
CargoPacket::InvalidateAllFrom(SourceType::Industry, this->index);
|
||||
|
||||
for (Station *st : this->stations_near) {
|
||||
st->RemoveIndustryToDeliver(this);
|
||||
@@ -546,7 +541,7 @@ static bool TransportIndustryGoods(TileIndex tile)
|
||||
|
||||
i->this_month_production[j] = std::min<uint>(i->this_month_production[j] + cw, 0xFFFF);
|
||||
|
||||
uint am = MoveGoodsToStation(i->produced_cargo[j], cw, ST_INDUSTRY, i->index, &i->stations_near, i->exclusive_consumer);
|
||||
uint am = MoveGoodsToStation(i->produced_cargo[j], cw, SourceType::Industry, i->index, &i->stations_near, i->exclusive_consumer);
|
||||
i->this_month_transported[j] += am;
|
||||
|
||||
moved_cargo |= (am != 0);
|
||||
|
@@ -899,7 +899,7 @@ static void GenerateTerrain(int type, uint flag)
|
||||
uint32 r = Random();
|
||||
|
||||
/* Choose one of the templates from the graphics file. */
|
||||
const Sprite *templ = GetSprite((((r >> 24) * _genterrain_tbl_1[type]) >> 8) + _genterrain_tbl_2[type] + SPR_MAPGEN_BEGIN, ST_MAPGEN);
|
||||
const Sprite *templ = GetSprite((((r >> 24) * _genterrain_tbl_1[type]) >> 8) + _genterrain_tbl_2[type] + SPR_MAPGEN_BEGIN, SpriteType::MapGen);
|
||||
if (templ == nullptr) usererror("Map generator sprites could not be loaded");
|
||||
|
||||
/* Chose a random location to apply the template to. */
|
||||
|
@@ -4287,7 +4287,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Maak toe
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Herstel
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Aantal Dae om die AI te begin na die vorige een (omenby): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5146,10 +5145,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Company {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Groep {COMMA}
|
||||
|
@@ -4842,10 +4842,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :باور هيل
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :شركة {COMMA}
|
||||
STR_FORMAT_GROUP_NAME :مجموعة{COMMA}
|
||||
|
@@ -4036,7 +4036,6 @@ STR_AI_SETTINGS_CAPTION_AI :IA
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Itxi
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Berrabiarazi
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :IA hau abiarazteko pasa beharko diren egunak (gutxi gora behera): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -4878,10 +4877,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :({COMMA} Konpainia)
|
||||
STR_FORMAT_GROUP_NAME :Taldea {COMMA}
|
||||
|
@@ -4643,7 +4643,6 @@ STR_AI_SETTINGS_CAPTION_AI :ШI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Закрыць
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Ськід
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Колькасьць дзён да старту гэтага AI/ШI пасьля папярэдняга: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5618,10 +5617,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Шрубалё
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}.{STRING}.{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}.{ZEROFILL_NUM}.{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM} г.
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING.gen} {NUM} г.
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Кампанiя {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Група {COMMA}
|
||||
|
@@ -4635,7 +4635,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script de Jogo
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Fechar
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Resetar
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Número de dias para começar esta IA após a última: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5518,10 +5517,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helicóptero Po
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Companhia {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Agrupar {COMMA}
|
||||
|
@@ -4114,7 +4114,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Затвори
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Рестартиране
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Броят дни докато този ИИ бъде стартиран след предишния (give or take): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -4967,10 +4966,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Пауерна
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Компания {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Група {COMMA}
|
||||
|
@@ -4635,7 +4635,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script de la pa
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Tanca
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Restableix
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Dies des de l'inici de la IA prèvia fins que s'inicia aquesta: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5518,10 +5517,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :{G=Masculin}Hel
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :{G=Femenin}(Companyia {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :{G=Masculin}Grup {COMMA}
|
||||
|
@@ -1757,10 +1757,10 @@ STR_SV_STNAME_WAYPOINT :{STRING}
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}.{STRING}.{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}.{ZEROFILL_NUM}.{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
|
||||
###length 2
|
||||
|
@@ -4473,7 +4473,6 @@ STR_AI_SETTINGS_CAPTION_AI :UI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Zatvori
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Resetiraj
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Broj dana za start ovog UI-ja nakon prethodnog (otprilike): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5371,10 +5370,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helikopter Powe
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Tvrtka {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Groupa {COMMA}
|
||||
|
@@ -4724,7 +4724,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Herní skript
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Zavřít
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Obnovit nastavení
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Počet dní kdy se spustí tato AI po předchozí (plus/mínus): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5725,11 +5724,11 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Vrtulník Power
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_SHORT.gen :{STRING.gen} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(společnost {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Skupina {COMMA}
|
||||
|
@@ -4634,7 +4634,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Spil Script
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Luk
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Nulstil
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Antal dage denne AI skal starte efter den forrige (plus/minus): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5517,10 +5516,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Firma {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Gruppe {COMMA}
|
||||
|
@@ -1926,6 +1926,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Geen
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Beginfactor voor stadsgroei: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Gemiddelde grootte van steden in vergelijking tot normale steden bij het begin van het spel.
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Distributiegrafiek elke {STRING}{NBSP}second{P 0:2 "" en} bijwerken
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :De tijd tussen opeenvolgende herberekeningen van de koppeling-grafiek. Elke berekening berekent de plannen voor één component van de grafiek. Dat betekent dat een waarde X voor deze instelling niet betekent dat de hele grafiek elke X seconden wordt bijgewerkt. Dat geldt alleen voor één component. Hoe korter je deze waarde instelt, hoe meer CPU-tijd er nodig is voor de berekening. Hoe langer je deze waarde instelt, hoe langer het duurt voordat de vrachtdistributie start op nieuwe routes.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Besteed {STRING}{NBSP}second{P 0:2 "" en} per herberekening van de distributiegrafiek
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :De benodigde tijd voor een herbereking van een koppeling-grafiekcomponent. Wanneer een herberekening wordt gestart, start een draad die dit aantal seconden mag lopen. Hoe korter je deze waarde maakt, hoe groter de kans dat de draad is niet op tijd is afgelopen. Het spel stopt dan totdat dit alsnog gebeurt (het 'hikt'). Hoe langer je deze waarde maakt, hoe langer het duurt voor de distributie wordt bijgewerkt wanneer een route wijzigt.
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distributiemodus voor passagiers: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :'Symmetrisch' betekent dat ongeveer hetzelfde aantal passagiers van station A naar station B gaat als van B naar A. 'Asymmetrisch' betekent dat willekeurige aantallen passagiers reizen in beide richtingen. 'Handmatig' betekent dat er geen automatische distributie plaatsvindt voor passagiers.
|
||||
@@ -4588,6 +4592,7 @@ STR_AI_CONFIG_RANDOM_AI :Willekeurige AI
|
||||
STR_AI_CONFIG_NONE :(geen)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Maximaal aantal tegenstanders: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Tijdsduur tussen starts van concurrenten: {ORANGE}{COMMA} minu{P "ut" "ten"}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Omhoog verplaatsen
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Geselecteerde AI omhoog verplaatsen in de lijst
|
||||
@@ -4634,7 +4639,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Spelscript
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Sluiten
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Terugstellen
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Aantal dagen dat deze AI start na de vorige (ongeveer): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5517,10 +5521,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut-helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Bedrijf {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Groep {COMMA}
|
||||
|
@@ -1712,7 +1712,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :How much memory
|
||||
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Service intervals are in percents: {STRING2}
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Choose whether servicing of vehicles is triggered by the time passed since last service or by reliability dropping by a certain percentage of the maximum reliability
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :When enabled, vehicles try to service when their reliability drops by a given percentage of the maximum reliability.{}{}For example, if a vehicle's maximum reliability is 90% and the service interval is 20%, the vehicle will try to service when it reaches 72% reliability.
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Default service interval for trains: {STRING2}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Set the default service interval for new rail vehicles, if no explicit service interval is set for the vehicle
|
||||
@@ -4592,6 +4592,7 @@ STR_AI_CONFIG_RANDOM_AI :Random AI
|
||||
STR_AI_CONFIG_NONE :(none)
|
||||
STR_AI_CONFIG_NAME_VERSION :{RAW_STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Maximum no. competitors: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Interval between starting of competitors: {ORANGE}{COMMA} minute{P "" s}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Move Up
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Move selected AI up in the list
|
||||
@@ -4638,7 +4639,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Game Script
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Close
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Reset
|
||||
STR_AI_SETTINGS_SETTING :{RAW_STRING}: {ORANGE}{STRING1}
|
||||
STR_AI_SETTINGS_START_DELAY :Number of days to start this AI after the previous one (give or take): {ORANGE}{STRING1}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5110,6 +5110,7 @@ STR_ERROR_NO_BUOY :{WHITE}There is
|
||||
STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Can't timetable vehicle...
|
||||
STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Vehicles can only wait at stations
|
||||
STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}This vehicle is not stopping at this station
|
||||
STR_ERROR_TIMETABLE_INCOMPLETE :{WHITE}... timetable is incomplete
|
||||
|
||||
# Sign related errors
|
||||
STR_ERROR_TOO_MANY_SIGNS :{WHITE}... too many signs
|
||||
@@ -5521,10 +5522,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helic
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{RAW_STRING}-{RAW_STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:RAW_STRING}-{0:RAW_STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Company {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Group {COMMA}
|
||||
|
@@ -1712,7 +1712,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :How much memory
|
||||
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Service intervals are in percents: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Choose whether servicing of vehicles is triggered by the time passed since last service or by reliability dropping by a certain percentage of the maximum reliability
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :When enabled, vehicles try to service when their reliability drops by a given percentage of the maximum reliability.{}{}For example, if a vehicle's maximum reliability is 90% and the service interval is 20%, the vehicle will try to service when it reaches 72% reliability.
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Default service interval for trains: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Set the default service interval for new rail vehicles, if no explicit service interval is set for the vehicle
|
||||
@@ -1926,6 +1926,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING}{NBSP}second{P 0:2 "" s}
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X seconds. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING}{NBSP}second{P 0:2 "" s} for recalculation of distribution graph
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Time taken for each recalculation of a link graph component. When a recalculation is started, a thread is spawned which is allowed to run for this number of seconds. The shorter you set this the more likely it is that the thread is not finished when it's supposed to. Then the game stops until it is ("lag"). The longer you set it the longer it takes for the distribution to be updated when routes change.
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribution mode for passengers: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Symmetric" means that roughly the same number of passengers will go from a station A to a station B as from B to A. "Asymmetric" means that arbitrary numbers of passengers can go in either direction. "Manual" means that no automatic distribution will take place for passengers.
|
||||
@@ -4588,6 +4592,7 @@ STR_AI_CONFIG_RANDOM_AI :Random AI
|
||||
STR_AI_CONFIG_NONE :(none)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Maximum no. competitors: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Interval between starting of competitors: {ORANGE}{COMMA} minute{P "" s}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Move Up
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Move selected AI up in the list
|
||||
@@ -4634,7 +4639,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Game Script
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Close
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Reset
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Number of days to start this AI after the previous one (give or take): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5517,10 +5521,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helic
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Company {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Group {COMMA}
|
||||
|
@@ -1712,7 +1712,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :How much memory
|
||||
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Maintenance intervals are in percents: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Choose whether maintenance of vehicles is triggered by the time passed since last maintenance or by reliability dropping by a certain percentage of the maximum reliability
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :When enabled, vehicles try to service when their reliability drops by a given percentage of the maximum reliability.{}{}For example, if a vehicle's maximum reliability is 90% and the service interval is 20%, the vehicle will try to service when it reaches 72% reliability.
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Default maintenance interval for trains: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Set the default maintenance interval for new rail vehicles, if no explicit maintenance interval is set for the vehicle
|
||||
@@ -1926,6 +1926,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Update distribution graph every {STRING}{NBSP}second{P 0:2 "" s}
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X seconds. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Take {STRING}{NBSP}second{P 0:2 "" s} for recalculation of distribution graph
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Time taken for each recalculation of a link graph component. When a recalculation is started, a thread is spawned which is allowed to run for this number of seconds. The shorter you set this the more likely it is that the thread is not finished when it's supposed to. Then the game stops until it is ("lag"). The longer you set it the longer it takes for the distribution to be updated when routes change.
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Distribution mode for passengers: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Symmetric" means that roughly the same number of passengers will go from a station A to a station B as from B to A. "Asymmetric" means that arbitrary numbers of passengers can go in either direction. "Manual" means that no automatic distribution will take place for passengers.
|
||||
@@ -4588,6 +4592,7 @@ STR_AI_CONFIG_RANDOM_AI :Random AI
|
||||
STR_AI_CONFIG_NONE :(none)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Maximum no. competitors: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Interval between starting of competitors: {ORANGE}{COMMA} minute{P "" s}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Move Up
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Move selected AI up in the list
|
||||
@@ -4634,7 +4639,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Game Script
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Close
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Reset
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Number of days to start this AI after the previous one (give or take): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5517,10 +5521,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helic
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{1:STRING}/{0:STRING}/{2:NUM}
|
||||
STR_FORMAT_DATE_TINY :{1:ZEROFILL_NUM}/{0:ZEROFILL_NUM}/{2:NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{1:STRING} {0:STRING}, {2:NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Company {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Group {COMMA}
|
||||
|
@@ -4378,10 +4378,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helikoptero "Po
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Kompanio {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Group {COMMA}
|
||||
|
@@ -4684,7 +4684,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :GameScript
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Sulge
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Nulli
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Päevade arv pärast eelmise AI lõpetamist, millal see AI käivitub (umbkaudselt): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5555,10 +5554,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{1:NUM}. {0:STRING}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Ettevõte {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Jagu {COMMA}
|
||||
|
@@ -3690,7 +3690,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Lat aftur
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Endurstilla
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Tali av døgum til hetta AI byrjar aftaná tað fyrra (umleið): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -4522,10 +4521,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Tyrla
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Fyritøka {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Bólkur {COMMA}
|
||||
|
@@ -1926,6 +1926,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ei yhtään
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Kasvukerroin alussa: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Kaupunkien keskimääräinen koko suhteessa muihin kuntiin pelin alussa
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Päivitä yhteyskuvaaja {STRING}{NBSP}sekunnin välein
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Yhteyskuvaajan uudelleenlaskentojen välinen aika. Jokainen uudelleenlaskenta laskee suunnitelmat kuvaajan yhdelle osalle. Tämän asetuksen arvo X ei siis tarkoita, että koko kuvaaja päivittyisi X sekunnin välein, vaan ainoastaan sen yksi osa. Mitä lyhyemmäksi asetat tämän ajan, sitä enemmän suoritinaikaa kuluu laskentaan. Mitä pitemmäksi asetat ajan, sitä pitempään kestää rahdin jakautumisen alkaminen uusille reiteille.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Käytä {STRING}{NBSP}sekunti{P 0:2 "" a} yhteyskuvaajan uudelleenlaskentaan
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Yhteyskuvaajan kunkin osan uudelleenlaskentaan käytettävä aika. Uudelleenlaskennan alkaessa käynnistetään säie, jonka annetaan toimia näin monta sekuntia. Mitä lyhyemmäksi asetat tämän ajan, sitä todennäköisemmin säie ei ehdi päättymään ajoissa, jolloin peli pysähtyy (”jumii”) säikeen valmistumiseen asti. Mitä pitemmäksi asetat ajan, sitä pitempään rahdin jakautumisen päivittyminen kestää reittien muuttuessa.
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Matkustajien jakautuminen: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :”Symmetrinen” tarkoittaa, että suunnilleen sama määrä matkustajia kulkee asemalta A asemalle B kuin asemalta B asemalle A. ”Epäsymmetrinen” tarkoittaa, että matkustajia voi kulkea mielivaltainen määrä kumpaankin suuntaan. ”Manuaalinen” tarkoittaa, että automaattista jakautumista ei sovelleta matkustajiin.
|
||||
@@ -4588,6 +4592,7 @@ STR_AI_CONFIG_RANDOM_AI :Sattumanvaraine
|
||||
STR_AI_CONFIG_NONE :(ei mitään)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Vastustajien enimmäismäärä: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Kilpailijoiden käynnistämisen välinen aika: {ORANGE}{COMMA} minuutti{P "" a}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Siirrä ylöspäin
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Siirrä valittua tekoälyä ylöspäin listalla
|
||||
@@ -4634,7 +4639,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Peliskripti
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Sulje
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Palauta
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Päiviä edellisen tekoälyn aloittamisesta tämän tekoälyn aloittamiseen (arvio): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5517,10 +5521,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut-helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(yhtiö {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Ryhmä {COMMA}
|
||||
|
@@ -1927,6 +1927,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Aucune
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicateur initial pour la taille des métropoles{NBSP}: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Taille moyenne des métropoles par rapport aux villes normales au début de la partie
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Mise à jour le graphe de distribution toutes les {STRING}{NBSP}seconde{P 0:2 "" s}
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Intervalle entre les recalculs successifs du graphe de liaison. Chaque recalcul planifie un composant du graphe. Cela signifie qu'une valeur X pour ce paramètre ne signifie pas que l'ensemble du graphe sera mis à jour toutes les X secondes. Seul un composant le sera. Plus vous définissez cet intervalle court, plus le temps de processeur nécessaire pour le calcul sera important. Plus vous définissez cet intervalle long, plus il faudra de temps pour que la distribution de marchandises commence sur de nouveaux itinéraires.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Prend {STRING}{NBSP}seconde{P 0:2 "" s} pour le recalcul du graphe de distribution
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Temps pris pour chaque recalcul d'un composant du graphe de liaison. Lorsqu'un recalcul est lancé, un fil d'exécution est créé et autorisé à fonctionner pendant ce nombre de secondes. Plus vous définissez cette durée courte, plus il est probable que le fil ne soit pas terminé lorsqu'il est censé l'être. Ensuite, le jeu s'arrête jusqu'à ce qu'il le soit ("lag"). Plus vous définissez cette durée longue, plus il faut de temps pour que la distribution soit mise à jour lorsque les itinéraires changent.
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Type de distribution pour les passagers{NBSP}: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Symétrique" signifie qu'autant de passagers iront d'une station A vers une station B, que de la station B vers la station A. "Asymétrique" signifie qu'un nombre arbitraire de passagers peut être envoyé dans les deux directions. "Manuel" signifie qu'aucune distribution n'est mise en place pour les passagers.
|
||||
@@ -4589,6 +4593,7 @@ STR_AI_CONFIG_RANDOM_AI :IA aléatoire
|
||||
STR_AI_CONFIG_NONE :(aucun)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Nombre maximal de concurrents{NBSP}: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Intervalle entre le démarrage des concurrents : {ORANGE}{COMMA} minute{P "" s}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Déplacer vers le haut
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Déplacer l'IA sélectionnée vers le haut
|
||||
@@ -4635,7 +4640,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :du script de je
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Fermer
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Réinitialiser
|
||||
STR_AI_SETTINGS_SETTING :{STRING}{NBSP}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Nombre de jours avant de démarrer cette IA après la précédente (approximativement){NBSP}: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5518,10 +5522,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Hélicoptère P
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}/{STRING}/{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}/{ZEROFILL_NUM}/{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Compagnie {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Groupe {COMMA}
|
||||
|
@@ -4714,10 +4714,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Bedriuw {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Klobke {COMMA}
|
||||
|
@@ -4428,7 +4428,6 @@ STR_AI_SETTINGS_CAPTION_AI :IF
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Dùin
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Ath-shuidhich
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :An àireamh dhe làithean mus tèid an IF seo a thòiseachadh an dèidh an tè mu dheireadh (mu thimcheall): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5428,10 +5427,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :{G=m}Heileacopt
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Companaidh {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Buidheann {COMMA}
|
||||
|
@@ -4627,7 +4627,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script do xogo
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Pechar
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Restablecer
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Número de días para iniciar esta IA despois da anterior: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5498,10 +5497,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helicóptero Po
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Compañía {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grupo {COMMA}
|
||||
|
@@ -4583,6 +4583,7 @@ STR_AI_CONFIG_HUMAN_PLAYER :Menschlicher Sp
|
||||
STR_AI_CONFIG_RANDOM_AI :Zufällige KI
|
||||
STR_AI_CONFIG_NONE :-
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Max. Mitbewerber-Zahl: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Intervall zwischen Start von Wettbewerbern: {ORANGE}{COMMA} minute{P "" n}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Nach oben verschieben
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Die ausgewählte KI in der Liste nach oben verschieben
|
||||
@@ -4629,7 +4630,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Spielskript
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Schließen
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Zurücksetzen
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Wartezeit in Tagen zwischen dem Starten dieser KI und dem der vorherigen: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5512,10 +5512,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut-Hubsc
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}.{STRING}.{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}.{ZEROFILL_NUM}.{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Firma {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Gruppe {COMMA}
|
||||
|
@@ -4729,7 +4729,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Κλείσιμο
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Επαναφορά
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Αριθμός ημερών για την εκκίνηση της επόμενης AI μετά από τη προηγούμενη (περίπου): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5603,10 +5602,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Ελικόπτ
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING.date} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Εταιρία {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Ομάδα {COMMA}
|
||||
|
@@ -4332,7 +4332,6 @@ STR_AI_SETTINGS_CAPTION_AI :שחקן מחש
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}סגור
|
||||
STR_AI_SETTINGS_RESET :{BLACK}אתחל
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :מספר הימים להתחלת שחקן מחשב זה אחרי הקודם (פחות או יותר): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5194,10 +5193,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :הליקופט
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{2:NUM} ב{1:STRING} {LRM}{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :({COMMA} חברה)
|
||||
STR_FORMAT_GROUP_NAME :{COMMA} קבוצה
|
||||
|
@@ -4680,7 +4680,6 @@ STR_AI_SETTINGS_CAPTION_AI :{WHITE}MI param
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Bezárás
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Visszaállítás
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Az előző MI indításától eltelt napok száma ezen MI indításáig (megközelítőleg): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5588,10 +5587,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :SemmiErő Helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :({COMMA}. vállalat)
|
||||
STR_FORMAT_GROUP_NAME :{COMMA} csoport
|
||||
|
@@ -3923,7 +3923,6 @@ STR_AI_SETTINGS_CAPTION_AI :Gervigreindar
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Loka
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Frumstilla
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Hversu mörgum dögum eftir síðustu gervigreind á að hlaða þessari (sirka): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -4765,10 +4764,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Þyrl
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Fyrirtæki {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Hópur {COMMA}
|
||||
|
@@ -1627,10 +1627,10 @@ STR_SV_STNAME_WAYPOINT :{STRING}
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
|
||||
###length 2
|
||||
|
@@ -4616,7 +4616,6 @@ STR_AI_SETTINGS_CAPTION_AI :{WHITE}Paramete
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Tutup
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Reset
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Jalankan AI setelah berapa hari : {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5487,10 +5486,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helikopter Powe
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Perusahaan {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Kelompok {COMMA}
|
||||
|
@@ -4532,7 +4532,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Dún
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Athshocraigh
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Líon na laethanta a thógfaidh sé chun an AI seo a thosú tar éis an ceann roimhe (a bheag nó a mhór): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5396,10 +5395,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Héileacaptar P
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Cuideachta {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grúpa {COMMA}
|
||||
|
@@ -197,6 +197,7 @@ STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mp
|
||||
STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}km/h
|
||||
STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}m/s
|
||||
STR_UNITS_VELOCITY_GAMEUNITS :{DECIMAL}{NBSP}caselle/giorno
|
||||
STR_UNITS_VELOCITY_KNOTS :{COMMA}{NBSP}nodi
|
||||
|
||||
STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}hp
|
||||
STR_UNITS_POWER_METRIC :{COMMA}{NBSP}hp
|
||||
@@ -345,9 +346,9 @@ STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Apri la
|
||||
###length 31
|
||||
STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Pausa
|
||||
STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Aumenta la velocità di gioco
|
||||
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Opzioni
|
||||
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Salva la partita, abbandona la partita, esci
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Mostra la mappa, apre una mini visuale extra o mostra l'elenco dei cartelli
|
||||
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Opzioni e impostazioni
|
||||
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Salvare, caricare o abbandonare il gioco, uscire dal programma
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Visualizzazione di una mappa, di una finestra supplementare, di un flusso di carico o di un elenco di segnali.
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Mostra l'elenco delle città
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Mostra i sussidi
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Mostra l'elenco delle stazioni di una compagnia
|
||||
@@ -355,9 +356,9 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Mostra i
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Mostra informazioni generali sulle compagnie
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Mostra la storia delle compagnie
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Mostra le liste degli obiettivi
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Mostra i grafici
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Visualizzare i grafici aziendali e i tassi di pagamento del carico
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Mostra la classifica delle compagnie
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Finanzia la costruzione di una nuova industria o mostra l'elenco delle industrie
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Esaminare le industrie o finanziare la costruzione di una nuova industria
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Mostra l'elenco dei treni di una compagnia. CTRL+clic non apre la lista gruppi.
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Mostra l'elenco degli automezzi di una compagnia. CTRL+clic non apre la lista gruppi.
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Mostra l'elenco delle navi di una compagnia. CTRL+clic non apre la lista gruppi.
|
||||
@@ -371,8 +372,8 @@ STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Costruzi
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Costruzione aeroporti
|
||||
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Apre la barra di modellazione del terreno per alzare/abbassare il terreno, piantare alberi, etc.
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Mostra la finestra suoni/musica
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Mostra l'ultimo messaggio/notizia, mostra le opzioni dei messaggi
|
||||
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Informazioni area terreno, console, debug degli script, screenshot, informazioni su OpenTTD
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Mostra l'ultimo messaggio/notizia, la cronologia dei messaggi o cancella tutti i messaggi
|
||||
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Informazioni sull'area del terreno, screenshot, su OpenTTD e sugli strumenti per gli sviluppatori
|
||||
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Alterna barre degli strumenti
|
||||
|
||||
# Extra tooltips for the scenario editor toolbar
|
||||
@@ -1746,7 +1747,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Quantità massi
|
||||
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Gli intervalli di manutenzione sono in percentuale: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Determina se la manutenzione dei veicoli è controllata dal tempo trascorso dall'ultima manutenzione piuttosto che dalla riduzione dell'affidabilità di una certa frazione di quella massima
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Quando è abilitata, i veicoli tentano la manutenzione quando la loro affidabilità scende di una determinata percentuale dell'affidabilità massima.{}{}Ad esempio, se l'affidabilità massima di un veicolo è del 90% e l'intervallo di manutenzione è del 20%, il veicolo tenterà la manutenzione quando raggiunge il 72% di affidabilità.
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Intervallo manutenzione predefinito treni: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Imposta l'intervallo di manutenzione predefinito per i nuovi veicoli ferroviari, quando non viene impostato nessun intervallo esplicito
|
||||
@@ -1843,7 +1844,9 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Se abilitata, c
|
||||
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Età minima della compagnia per lo scambio delle sue azioni: {STRING}
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Imposta l'età minima di una compagnia affinchè sia possibile acquistarne o venderne le azioni.
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} {P "anno" anni}
|
||||
###setting-zero-is-special
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Nessun minimo
|
||||
|
||||
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentuale profitto da pagare per una tappa di trasferimento: {STRING}
|
||||
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentuale di ricavi assegnata ai tratti intermedi di una catena di trasferimenti, in questo si conferisce un maggiore controllo sul reddito.
|
||||
@@ -1958,6 +1961,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nessuna
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Moltiplicatore iniziale dimensioni metropoli: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Dimensione media delle metropoli in rapporto alle normali città all'inizio della partita.
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Aggiornare il grafico di distribuzione ogni {STRING}{NBSP}{P 0:2 "secondo" secondi}
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo tra i successivi ricalcoli del grafico dei collegamenti. Ogni ricalcolo calcola i piani per un componente del grafico. Ciò significa che un valore X per questa impostazione non significa che l'intero grafico verrà aggiornato ogni X secondi. Solo alcuni componenti lo saranno. Quanto più breve è l'impostazione, tanto più tempo di CPU sarà necessario per il calcolo. Più lungo è il valore impostato, più tempo ci vorrà prima che la distribuzione del carico inizi su nuove rotte.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Prendere {STRING}{NBSP}{P 0:2 "secondo" secondi} per il ricalcolo del grafico di distribuzione
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo necessario per ogni ricalcolo di un componente del grafo dei collegamenti. Quando viene avviato un ricalcolo, viene generato un thread che può essere eseguito per questo numero di secondi. Quanto più breve è il tempo impostato, tanto più è probabile che il thread non finisca quando dovrebbe. In questo caso il gioco si ferma finché non viene terminato ("lag"). Più lungo è il valore impostato, più tempo ci vuole per aggiornare la distribuzione quando i percorsi cambiano.
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modalità di distribuzione dei passeggeri: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :In modalità "Simmetrica" il numero di passeggeri che viaggiano da una stazione A ad una stazione B è approssimativamente lo stesso di quelli che viaggiano da B ad A. In modalità "Asimmetrica" è consentito il viaggio di un numero di passeggeri arbitrario in entrambe le direzioni. In modalità "Manuale" non viene effettuata alcuna distribuzione automatica dei passeggeri.
|
||||
@@ -1983,13 +1990,15 @@ STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Impostarla a me
|
||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Saturazione dei percorsi corti prima di utilizzare quelli a più alta capacità: {STRING}
|
||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :È frequente che esistano più percorsi fra due stazioni. L'algoritmo Cargodist cercherà di saturare innanzi tutto il percorso più corto, quindi il secondo più corto fino a saturazione e così via. Il grado di saturazione è determinato dalla stima della capacità e dell'utilizo programmato. Se con tutti i percorsi saturi permane ancora domanda, l'algoritmo sovraccaricherà i percorsi indipendentemente dalla lunghezza, preferendo quelli a più alta capacità. Tuttavia, il più delle volte l'algoritmo non stimerà la capacità in modo accurato. Questa impostazione permette di specificare fino a quale percentuale saturare un percorso corto durante il primo passaggio dell'algoritmo prima di sceglierne uno più lungo. Impostarlo a meno di 100% in modo da evitare sovraffollamento delle stazioni in caso di capacità sovrastimata.
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unità di velocità: {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unità di velocità (terrestre): {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL :Unità di velocità (nautica): {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Seleziona le unità di misura da utilizzare per mostrare le velocità nell'interfaccia utente
|
||||
###length 5
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperiali (mph)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metriche (km/h)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Unità di gioco (caselle/giorno)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_KNOTS :Nodi
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Unità di potenza veicoli: {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Seleziona le unità di misura da utilizzare per mostrare i valori di potenza dei veicoli nell'interfaccia utente
|
||||
@@ -4622,7 +4631,9 @@ STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}Lista de
|
||||
STR_AI_CONFIG_HUMAN_PLAYER :Giocatore umano
|
||||
STR_AI_CONFIG_RANDOM_AI :IA casuale
|
||||
STR_AI_CONFIG_NONE :(nessuno)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Numero massimo di avversari: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Intervallo tra l'inizio dei concorrenti: {ORANGE}{COMMA} {P minuto minuti}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Sposta su
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Sposta l'IA selezionata più in alto nell'elenco
|
||||
@@ -4635,7 +4646,7 @@ STR_AI_CONFIG_AI :{SILVER}IA
|
||||
|
||||
STR_AI_CONFIG_CHANGE_AI :{BLACK}Seleziona IA
|
||||
STR_AI_CONFIG_CHANGE_GAMESCRIPT :{BLACK}Seleziona lo script di gioco
|
||||
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Carica un altro script
|
||||
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Carica un altro script. Ctrl+clic per visualizzare tutte le versioni disponibili
|
||||
STR_AI_CONFIG_CONFIGURE :{BLACK}Configura
|
||||
STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Configura i parametri dello script
|
||||
|
||||
@@ -4669,7 +4680,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script di gioco
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Chiudi
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Reimposta
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Giorni da attendere per l'avvio di questa IA dopo la precedente (approssimativo): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5552,10 +5562,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Elicottero Powe
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Compagnia {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Gruppo {COMMA}
|
||||
|
@@ -4628,7 +4628,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :ゲームスク
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}閉じる
|
||||
STR_AI_SETTINGS_RESET :{BLACK}リセット
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :AI企業の設立間隔(倒産/買収後): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5511,10 +5510,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :パワーノー
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_TINY :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
STR_FORMAT_DATE_SHORT :{1:NUM}年{0:STRING}月
|
||||
STR_FORMAT_DATE_LONG :{2:NUM}年{1:STRING}月{0:STRING}日
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(会社{COMMA})
|
||||
STR_FORMAT_GROUP_NAME :グループ {COMMA}
|
||||
|
@@ -4635,7 +4635,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :게임 스크
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}닫기
|
||||
STR_AI_SETTINGS_RESET :{BLACK}초기화
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :이전 인공지능 이후 이 인공지능이 나타나기 위한 날짜수: {ORANGE}약 {STRING}일
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5518,10 +5517,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut 헬
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{2:NUM}.{1:STRING}.{0:STRING}
|
||||
STR_FORMAT_DATE_TINY :{2:NUM}.{1:ZEROFILL_NUM}.{0:ZEROFILL_NUM}
|
||||
STR_FORMAT_DATE_SHORT :{1:NUM}년 {0:STRING}
|
||||
STR_FORMAT_DATE_LONG :{2:NUM}년 {1:STRING}월 {0:STRING}일
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(회사 {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :그룹 {COMMA}
|
||||
|
@@ -4421,7 +4421,6 @@ STR_AI_SETTINGS_CAPTION_AI :IA
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Claudere
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Revertere
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Quot dies post IA priorem haec IA incipiet (plus minusve): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5385,10 +5384,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helicopterum Po
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Societas {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grex {COMMA}
|
||||
|
@@ -4633,7 +4633,6 @@ STR_AI_SETTINGS_CAPTION_AI :{WHITE}MI Param
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Aizvērt
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Atiestatīt
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Aptuvenais dienu skaits, līdz palaist šo MI pēc iepriekšējā: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5504,10 +5503,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :({COMMA}. uzņēmums)
|
||||
STR_FORMAT_GROUP_NAME :Grupa {COMMA}
|
||||
|
@@ -4827,7 +4827,6 @@ STR_AI_SETTINGS_CAPTION_AI :DI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Uždaryti
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Atstatyti
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Dienų skaičius po kurio šitas DI bus paleistas po paskutiniojo (maždaug): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5955,10 +5954,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut malun
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Kompanija {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grupė {COMMA}
|
||||
|
@@ -4626,7 +4626,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Spill-Script
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Zoumaachen
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Reset
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Unzuel un Deeg wou des KI gestart gëtt no der leschter: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5497,10 +5496,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Firma {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grupp {COMMA}
|
||||
|
@@ -1964,7 +1964,6 @@ STR_AI_LIST_CAPTION_GAMESCRIPT :GameScripts
|
||||
# Script Parameters
|
||||
STR_AI_SETTINGS_CAPTION_AI :АИ
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Број на денови за да започнете оваа Пи по претходниот (се дава или зема): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -2175,10 +2174,10 @@ STR_SV_STNAME_WAYPOINT :{STRING}
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
|
||||
###length 2
|
||||
|
@@ -3833,7 +3833,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Tutup
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Semula
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Bilangan hari Kepintaran Tiruan dimulakan selepas yang terdahulu (lebih kurang): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -4671,10 +4670,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helikopter Powe
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Company {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Group {COMMA}
|
||||
|
@@ -1671,10 +1671,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Ħelikopter Pow
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_INDUSTRY_NAME :{TOWN} {STRING}
|
||||
|
||||
|
@@ -2038,10 +2038,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :पॉवरन
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_GROUP_NAME :गट्टा {COMMA}
|
||||
STR_FORMAT_INDUSTRY_NAME :{TOWN} {STRING}
|
||||
|
@@ -4554,7 +4554,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Lukk
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Tilbakestill
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Antall dager denne AIen skal starte etter den forrige (ca): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5418,10 +5417,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut-helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Firma {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Gruppe {COMMA}
|
||||
|
@@ -4056,7 +4056,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Lukk
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Tilbakestill
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Antall dagar denne AIen skal starte etter den førre (ca): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -4907,10 +4906,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut-helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Firma {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Gruppe {COMMA}
|
||||
|
@@ -3480,7 +3480,6 @@ STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}کد ر
|
||||
STR_AI_SETTINGS_CAPTION_AI :هوش مصنوعی(AI)
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}بستن
|
||||
STR_AI_SETTINGS_RESET :{BLACK}بازنشاندن
|
||||
STR_AI_SETTINGS_START_DELAY :تعداد روزهایی که این بازیگر هوش مصنوعی پس از بازیگر هوش مصنوعی قبلی قبل از اتصال صبر می کند(کم و بیش): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -4207,10 +4206,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :هلیکوپت
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(شرکت {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :گروه {COMMA}
|
||||
|
@@ -5020,7 +5020,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Game Script
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Zamknij
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Resetuj
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Liczba dni do aktywowania tej SI po uruchomieniu poprzedniej (zwiększ lub zmniejsz): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5940,10 +5939,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helikopter Powe
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Firma {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grupa {COMMA}
|
||||
|
@@ -1713,7 +1713,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Definir o volum
|
||||
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Os intervalos de serviço são em percentagem: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Escolher se a manutenção de veículos é ativada pelo tempo decorrido deste a última manutenção, ou pela fiabilidade abaixo de uma certa percentagem da fiabilidade máxima
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Quando ativado, os veículos procuram fazer a manutenção quando sua fiabilidade reduz para uma determinada percentagem da fiabilidade máxima.{}{}Por exemplo, se a fiabilidade máxima de um veículo for 90% e o intervalo de manutenção for 20%, o veículo tentará fazer a manutenção quando atinge 72% de fiabilidade.
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Intervalo de serviço para comboios por omissão: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Definir o intervalo de manutenção por omissão para novos veículos sobre carris, se não for configurado um intervalo de manutenção explícito para o veículo
|
||||
@@ -1927,6 +1927,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nenhum
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial para a dimensão das metrópoles: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamanho relativo das cidades em relação ao tamanho normal das localidades aquando o início do jogo
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Atualizar o gráfico de distribuição a cada {STRING}{NBSP}segundo{P 0:2 "" s}
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Tempo de intervalo entre recalculos subsequentes do gráfico de ligações. Cada recalculo calcula os planos para um componente do gráfico. Isso significa que um valor X para esta configuração não significa que todo o gráfico será atualizado a cada X segundos. Apenas algum componente será. Quanto mais curto escolher, mais tempo de CPU será necessário para calcular. Quanto mais tempo for definido, mais tempo levará até que a distribuição de carga inicie nas novas rotas.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Usar {STRING}{NBSP}segundo{P 0:2 "" s} para recalcular o gráfico de distribuição
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Tempo gasto para cada recalculo de um componente de gráfico de ligação. Quando um recalculo é iniciado, um encadeamento é gerado e pode ser executado nesse número de segundos. Quanto mais curto você definir, mais provável será que o encadeamento não seja concluído quando deveria. Então o jogo pára até que seja ("lag"). Quanto mais tempo você definir, mais tempo levará para a distribuição ser atualizada quando as rotas mudarem.
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribuição para os passageiros: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Simétrico" significa que aproximadamente o mesmo numero de passageiros irá de uma estação A para uma estação B e de B para A. "Assimétrico" significa que um numero arbitrário de passageiros poderá seguir em qualquer direção. "Manual" significa que nenhuma distribuição automática terá lugar para passageiros.
|
||||
@@ -4589,6 +4593,7 @@ STR_AI_CONFIG_RANDOM_AI :IA aleatória
|
||||
STR_AI_CONFIG_NONE :(nenhum)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Número máximo de oponentes: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Intervalo entre o arranque dos competidores: {ORANGE}{COMMA} minuto{P "" s}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Mover para cima
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Move a IA seleccionada para cima
|
||||
@@ -4635,7 +4640,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script de Jogo
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Fechar
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Repor
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Número de dias para iniciar esta IA depois da anterior (aproximadamente): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5518,10 +5522,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helicóptero Po
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Empresa {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grupo {COMMA}
|
||||
|
@@ -4627,7 +4627,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script de joc
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Închide
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Resetează
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Perioada (în zile) după care această librărie IA va fi activată, după cea anterioară (valoare aproximativă): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5510,10 +5509,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Elicopter Power
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Companie {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grup {COMMA}
|
||||
|
@@ -1863,7 +1863,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Объём па
|
||||
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} МиБ
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Интервал тех. обслуживания в процентах: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Выберите, должно ли техническое обслуживание транспорта выполняться через определённые промежутки времени, либо при снижении надёжности транспортного средства на определённый процент от максимума
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :При включении транспортные средства будут отправляться на техническое обслуживание после падения надёжности на указанный процент от максимальной.{}Например, при максимальной надёжности 90% и указанном интервале ТО 20% транспортное средство уйдёт на обслуживание при падении надёжности до 72%.
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Интервал ТО по умолчанию для поездов: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Настройка периодичности технического обслуживания для новых поездов
|
||||
@@ -2077,6 +2077,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :нет
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Стартовый множитель размера мегаполисов: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Средний размер мегаполисов по сравнению с остальными городами в начале игры
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Обновлять граф распределения кажд{P 0:2 ую ые ые} {STRING}{NBSP}секунд{P 0:2 у ы ""}
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Интервалы между перерасчётами графов распределения грузов. Каждый перерасчёт обновляет один компонент графа. То есть, по истечении указанного здесь времени будет обновлён не весь граф, а только один из его компонентов. Чем ниже значение, тем выше нагрузка на процессор. Чем выше значение, тем дольше не будет работать распределение грузов на новых маршрутах.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Продолжительность перерасчёта графа распределения: {STRING}{NBSP}секунд{P 0:2 а ы ""}
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Время, выделяемое на каждый перерасчёт одного из компонентов графа распределения грузов. Расчёт выполняется в отдельном вычислительном потоке. Чем ниже значение, тем выше вероятность того, что расчёт не будет выполнен за указанное время; в таком случае игра будет приостановлена до завершения расчёта. Чем выше значение, тем медленнее будет обновляться граф распределения в случае изменения маршрутов.
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Распределение пассажиров: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :«Симметричное» означает, что примерно одинаковое количество пассажиров будет направляться по прямому и обратному маршрутам.{}«Несимметричное» означает, что пассажиропотоки в любых направлениях не будут зависеть друг от друга.{}«Вручную» - не использовать автоматическое распределение для пассажиров.
|
||||
@@ -4775,6 +4779,7 @@ STR_AI_CONFIG_RANDOM_AI :Случайн
|
||||
STR_AI_CONFIG_NONE :(нет)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Максимальное количество конкурентов: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Интервал между запуском конкурентов: {ORANGE}{COMMA} минут{P а ы ""}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Вверх
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Переместить этот модуль ИИ вверх по списку
|
||||
@@ -4821,7 +4826,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :игровых
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Закрыть
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Сброс
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Запускать этот ИИ через {ORANGE}{STRING} д{P 0:1 ень ня ней} после предыдущего
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5741,10 +5745,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Вертолё
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}.{STRING}.{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}.{ZEROFILL_NUM}.{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM} г.
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING.gen} {NUM} г.
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Компания {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Группа {COMMA}
|
||||
|
@@ -4827,7 +4827,6 @@ STR_AI_SETTINGS_CAPTION_AI :{WHITE}Parametr
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Zatvori
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Poništi
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Broj dana za pokretanje ove VI posle prethodne (otprilike): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5698,10 +5697,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Preduzeće {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grupa {COMMA}
|
||||
|
@@ -4626,7 +4626,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :游戏脚本
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}关闭
|
||||
STR_AI_SETTINGS_RESET :{BLACK}重设
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :当前AI在前一个AI运行 {ORANGE}{STRING}天之后开始运行
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5507,10 +5506,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut 直
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(公司 {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :组 {COMMA}
|
||||
|
@@ -259,6 +259,7 @@ STR_UNITS_VELOCITY_IMPERIAL :{COMMA} mph
|
||||
STR_UNITS_VELOCITY_METRIC :{COMMA} km/h
|
||||
STR_UNITS_VELOCITY_SI :{COMMA} m/s
|
||||
STR_UNITS_VELOCITY_GAMEUNITS :{DECIMAL}{NBSP}políč{P ko ka ok}/deň
|
||||
STR_UNITS_VELOCITY_KNOTS :{COMMA}{NBSP}uzlov
|
||||
|
||||
STR_UNITS_POWER_IMPERIAL :{COMMA}hp
|
||||
STR_UNITS_POWER_METRIC :{COMMA}hp
|
||||
@@ -407,9 +408,9 @@ STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Otvoriť
|
||||
###length 31
|
||||
STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Pozastaviť hru
|
||||
STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Zrýchliť priebeh hry
|
||||
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Nastavenia
|
||||
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Uložiť hru, opustiť hru, ukončiť
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Zobraziť mapu
|
||||
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Možnosti a nastavenia
|
||||
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Uložiť, načítať alebo opustiť hru, ukončiť program
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Zobraziť mapu, extra výrez, tok nákladu alebo zoznam značiek
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Zobraziť zoznam miest
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Zobraziť dotácie
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Zoznam staníc spoločnosti
|
||||
@@ -417,9 +418,9 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Finančn
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Informácie o spoločnosti
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Zobraziť knihu príbehov
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Zobraziť zoznam cieľov
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Grafy
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Zobrazte firemné grafy a sadzby platieb za náklad
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Hodnotenie spoločností
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Financovať výstavbu nového priemyslu
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Preskúmať odvetvia alebo zafinancovať výstavbu nového odvetvia
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Zoznam vlakov spoločnosti. Ctrl+klik prepína zoznam skupín/vozidiel
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Zoznam cestných vozidiel spoločnosti. Ctrl+klik prepína zoznam skupín/vozidiel
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Zoznam lodí spoločnosti. Ctrl+klik prepína zoznam skupín/vozidiel
|
||||
@@ -433,8 +434,8 @@ STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Výstavb
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Výstavba letísk
|
||||
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Otvoriť panel nástrojov pre úpravy terénu, výsadbu stromov, a pod.
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Zobraziť okno zvuku a hudby
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Zobraziť poslednú správu/novinku, nastavenia správ
|
||||
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Informácie o pozemku, konzola, ladenie skriptu, snímky obrazovky, o OpenTTD
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Zobraziť poslednú správu/novinku, históriu správ alebo vymazať všetky správy
|
||||
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Informácie o pozemku, snímka obrazovky, o OpenTTD a nástrojoch pre vývojárov
|
||||
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Prepnúť panely nástrojov
|
||||
|
||||
# Extra tooltips for the scenario editor toolbar
|
||||
@@ -1876,7 +1877,9 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ak je zapnuté,
|
||||
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimálny vek spoločnosti na obchodovanie s podielmi: {STRING}
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Určuje minimálny vek spoločnosti na to, aby od nej mohli ostatné spoločnosti kupovať a predavať podiely.
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} rok{P "" "y" "ov"}
|
||||
###setting-zero-is-special
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Žiadne minimum
|
||||
|
||||
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentáž zisku na zaplatenie podávacieho systému: {STRING}
|
||||
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percento príjmov dať na strednú ´nohu´ vo feeder systémoch, získate väčšiu kontrolu nad príjmami
|
||||
@@ -2016,13 +2019,15 @@ STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Nastavením na
|
||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Vyťaženie krátkych ciest pred použitím vysokokapacitných ciest: {STRING}
|
||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Často je viac ciest medzi dvoma stanicami. Cargodist vyťaží najprv najkratšiu cestu, potom využije druhú najkratšiu cestu až kým nebude vyťažená atď. Vyťaženie je určené podľa odhadu kapacity a plánovaného využitia. Ak sú vyťažené všetky trasy a nepostačuje to, preťaží všetky trasy, s preferenciou najkapacitnejšej. Väčšinou algoritmus neodhadne kapacitu presne. Toto nastavenie umožňuje určiť na koľko percent musí byť vyťažená prvá pred výberom nasledujúcej dlhšej. Nastavte na menej ako 100%, aby sa zabránilo preplneniu staníc v prípade nadhodnotenia kapacity.
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Jednotky rýchlosti: {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Jednotky rýchlosti (pozemné): {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL :Jednotky rýchlosti (námorné): {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Vždy, keď sa zobrazí rýchlosť v užívateľskom rozhraní, zobrazí sa vo vybraných jednotkách
|
||||
###length 5
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperiálne (mph)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrické (km/h)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Jednotky v hre (políčka/deň)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_KNOTS :Uzle
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Jednotky výkonu vozidiel: {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Vždy, keď sa zobrazí výkon vozidla v užívateľskom rozhraní, zobrazí sa vo vybraných jednotkách
|
||||
@@ -4649,6 +4654,7 @@ STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}AI, ktor
|
||||
STR_AI_CONFIG_HUMAN_PLAYER :Človek
|
||||
STR_AI_CONFIG_RANDOM_AI :Náhodná AI
|
||||
STR_AI_CONFIG_NONE :(žiadne)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Maximálny počet konkurentov: {ORANGE}{COMMA}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Posunúť vyššie
|
||||
@@ -4662,7 +4668,7 @@ STR_AI_CONFIG_AI :{SILVER}AI (ume
|
||||
|
||||
STR_AI_CONFIG_CHANGE_AI :{BLACK}Vyber AI
|
||||
STR_AI_CONFIG_CHANGE_GAMESCRIPT :{BLACK}Vyber skript
|
||||
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Spusti ďalší skript
|
||||
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Spusti ďalší skript. Ctrl+klik zobrazí všetky dostupné verzie
|
||||
STR_AI_CONFIG_CONFIGURE :{BLACK}Nastaviť
|
||||
STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Nastaviť parametre skriptu
|
||||
|
||||
@@ -4696,7 +4702,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Herný skript
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Zavrieť
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Resetovať
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Koľko dní prejde od spustenia predchádzajúcej umelej inteligencie k naštartovaniu novej: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5579,10 +5584,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helic
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Spoločnosť {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Skupina {COMMA}
|
||||
|
@@ -4310,7 +4310,6 @@ STR_AI_SETTINGS_CAPTION_AI :UI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Zapri
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Resetiraj
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Število dni zamika med zagonom sledeče po predhodni UI: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5207,10 +5206,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Podjetje {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Skupina {COMMA}
|
||||
|
@@ -4623,7 +4623,6 @@ STR_AI_SETTINGS_CAPTION_AI :{WHITE}Parámet
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Cerrar
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Reiniciar
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Número de días (aproximados) de espera antes de comenzar esta IA desde el momento en el que empezó la anterior: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5494,10 +5493,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helicóptero Po
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Empresa {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grupo {COMMA}
|
||||
|
@@ -4624,7 +4624,6 @@ STR_AI_SETTINGS_CAPTION_AI :{WHITE}Parámet
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Cerrar
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Reiniciar
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Número de días a esperar antes de comenzar esta IA desde el momento en el que empezó la anterior: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5497,10 +5496,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Helicóptero Po
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{0:STRING}/{1:STRING}/{2:NUM}
|
||||
STR_FORMAT_DATE_TINY :{0:ZEROFILL_NUM}/{1:ZEROFILL_NUM}/{2:NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{0:STRING} {1:STRING} {2:NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Empresa {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grupo {COMMA}
|
||||
|
@@ -4628,7 +4628,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Spelskript
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Stäng
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Återställ
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Ungefärligt antal dagar som denna datorspelare startar efter föregående datorspelare: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5511,10 +5510,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Företag {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grupp {COMMA}
|
||||
|
@@ -4129,7 +4129,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}மூடு
|
||||
STR_AI_SETTINGS_RESET :{BLACK}முன்னிருந்தமாதிரி மாற்று
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :இந்த AI-இனை தொடங்குவதற்கான நாட்கள், முந்தின AI-இற்கு பிறகு: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -4984,10 +4983,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :பவர்ன
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(நிறுவனம் {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :குழு {COMMA}
|
||||
|
@@ -4271,7 +4271,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}ปิด
|
||||
STR_AI_SETTINGS_RESET :{BLACK}เริ่มใหม่
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :จำนวนที่จะให้เริ่มต้น AI นี้หลังจากที่มีการเริ่มต้น AI ก่อนหน้านี้ไป: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5123,10 +5122,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helic
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(บริษัท {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :กลุ่ม {COMMA}
|
||||
|
@@ -4628,7 +4628,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :遊戲腳本
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}關閉
|
||||
STR_AI_SETTINGS_RESET :{BLACK}重設
|
||||
STR_AI_SETTINGS_SETTING :{STRING}:{ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :此 AI 與上一個 AI 的啟動時間相隔天數 (近似值):{ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5511,10 +5510,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut 直
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{2:NUM} 年 {1:STRING} 月 {0:STRING} 日
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(公司 {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :群組 {COMMA}
|
||||
|
@@ -157,7 +157,7 @@ STR_ABBREV_COLA :{TINY_FONT}KO
|
||||
STR_ABBREV_CANDYFLOSS :{TINY_FONT}PŞ
|
||||
STR_ABBREV_BUBBLES :{TINY_FONT}BA
|
||||
STR_ABBREV_TOFFEE :{TINY_FONT}ŞL
|
||||
STR_ABBREV_BATTERIES :{TINY_FONT}Pİ
|
||||
STR_ABBREV_BATTERIES :{TINY_FONT}PİL
|
||||
STR_ABBREV_PLASTIC :{TINY_FONT}PL
|
||||
STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}İÇ
|
||||
STR_ABBREV_NONE :{TINY_FONT}YO
|
||||
@@ -196,6 +196,7 @@ STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mi
|
||||
STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}km/s
|
||||
STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}m/s
|
||||
STR_UNITS_VELOCITY_GAMEUNITS :{DECIMAL}{NBSP}karo/gün
|
||||
STR_UNITS_VELOCITY_KNOTS :{COMMA}{NBSP}hava hızı
|
||||
|
||||
STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}bg
|
||||
STR_UNITS_POWER_METRIC :{COMMA}{NBSP}bg
|
||||
@@ -344,9 +345,9 @@ STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Emir gö
|
||||
###length 31
|
||||
STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Oyunu durdur
|
||||
STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Oyunu hızlandır
|
||||
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Seçenekler
|
||||
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Kaydet, oyunu terk et, çık
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Haritayı göster
|
||||
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Seçenekler ve ayarlar
|
||||
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Kaydet, oyunu yükle veya terk et, program'dan çık
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Haritayı, ekstra vitrini, kargo akşını veya işaret listesini görüntüleyin
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Şehir listesini göster
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Teşvikleri göster
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Şirkete ait istasyonları listele
|
||||
@@ -354,9 +355,9 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Şirketi
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Şirketin genel durumunu göster
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Hikaye kitabını görüntüle
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Amaç listesini görüntüle
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Grafikleri göster
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Şirket grafiğini ve kargo ödeme oranlarını görüntüleyin
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Şirketler ligini göster
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Yeni fabrika kur veya tüm fabrikaları listele
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Endüstrileri inceleyin veya yeni endüstri inşasını fonlayın
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Şirkete ait trenleri listele. Ctrl+Sol tıklama ile grup/araç listesini açar veya kapatır
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Şirkete ait karayolu taşıtlarını listele. Ctrl+Sol tıklama ile grup/araç listesini açıp kapatır
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Şirkete ait gemileri listele. Ctrl+Sol tık ile grup/araç listesini açar veya kapatır
|
||||
@@ -370,8 +371,8 @@ STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Rıhtım
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Havalimanı yapımı
|
||||
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Arazi düzenleme araç çubuğunu aç (ağaç dikme, alçaltma/yükseltme vb. için).
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Ses/müzik penceresini göster
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Son mesajı/haberi göster, mesaj ayarlarını göster
|
||||
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Arazi bilgisi, konsol, betik hata ayıklama, ekran görüntüleri, OpenTTD hakkında
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Son mesajı/haberi göster, mesaj geçmişini göster veya tüm mesajları sil
|
||||
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Arazi bilgisi, ekran görüntüsü, OpenTTD ve geliştirici araçları hakkında
|
||||
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Araç çubuklarını değiştir
|
||||
|
||||
# Extra tooltips for the scenario editor toolbar
|
||||
@@ -1712,7 +1713,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Tek bir betiği
|
||||
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Servis gecikmeleri yüzde ile: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Araçlara bakım yapılmasına bir önceki bakımın üzerinden geçen zamana göre mi, yoksa aracın güvenilirlik değerinin azami güvenilirliğe kıyasla belli bir yüzde oranında düşmesine bağlı olarak mı karar verileceğini seçin
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Etkinleştirildiğinde, araçların güvenilirlik değerinin azami güvenilirliğe kıyasla belli bir yüzde oranında düşmesine bağlı olarak bakım yapar.{}{}Örneğin, eğer aracın azami güvenirliği %90 ve bakım aralığı %20 ise araç %72 güvenilirliğe ulaştığında bakım yapmayı dener.
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Trenler için varsayılan bakım aralığı: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Yeni tren yolu araçları için varsayılan bakım aralığını ayarlar, eğer araç için özel bir bakım aralığı belirtilmemişse geçerlidir
|
||||
@@ -1809,7 +1810,9 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Etkinleştirild
|
||||
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Hisse satmak için gerekli minimum şirket yaşı: {STRING}
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Bir şirketin hisselerinin satılabileceği ve diğer şirketlerin alabileceği minimum şirket yaşını belirleyin.
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} yıl{P ""}
|
||||
###setting-zero-is-special
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Minimum yok
|
||||
|
||||
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Besleme sistemlerinde, bölümlerden elde edilen kardan ödenecek yüzde: {STRING}
|
||||
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Besleme sistemlerinde, sistemi oluşturan ara bölümlere verilen kar yüzdesi. Böylece kar miktarı üzerinde daha fazla kontrol elde edilmiş olur
|
||||
@@ -1924,6 +1927,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Hiçbiri
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Birincil şehir büyüklüğü çarpanı: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Oyun başlangıcında şehirlerin normal kasabalara kıyasla ortalama büyüklüğü
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Dağıtım grafiğini her {STRING}{NBSP}saniyede{P 0:2 ""} güncelle
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Bağlantı grafiğinin sonraki yeniden hesaplamaları arasındaki süre. Her yeniden hesaplama, grafiğin bir bileşeni için planları hesaplar. Bu, bu ayar için bir X değerinin tüm grafiğin her X saniyede bir güncelleneceği anlamına gelmediği anlamına gelir. Sadece bazı bileşenler olacaktır. Ne kadar kısa ayarlarsanız, hesaplamak için o kadar fazla CPU süresi gerekir. Ne kadar uzun ayarlarsanız, kargo dağıtımının yeni rotalarda başlaması o kadar uzun sürer.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Dağıtım grafiğinin yeniden hesaplanması için {STRING}{NBSP}saniye{P 0:2 ""} bekleyin
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Bir bağlantı grafiği bileşeninin her yeniden hesaplanması için geçen süre. Bir yeniden hesaplama başlatıldığında, bu sayıda saniye boyunca çalışmasına izin verilen bir iş parçacığı oluşturulur. Bunu ne kadar kısa ayarlarsanız, iş parçacığının olması gerektiği zamanda bitmemiş olma olasılığı o kadar artar. Ardından oyun ("gecikme") olana kadar durur. Ne kadar uzun ayarlarsanız, rotalar değiştiğinde dağıtımın güncellenmesi o kadar uzun sürer.
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Yolcular için dağıtım kipi: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Simetrik" seçildiğinde A durağından B durağına taşınan ile B'den A'ya taşınan yolcu miktarı kabaca eşit olur. "Asimetrik" seçildiğinde iki yönde de rastgele miktarda yolcu gönderilebilir. "el ile" seçildiğinde yolcular için otomatik dağıtım yapılmaz.
|
||||
@@ -1949,13 +1956,15 @@ STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Buraya %100'den
|
||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Yüksek kapasiteli güzergahları kullanmadan önce daha kısa güzergah doygunluğu: {STRING}
|
||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Sıklıkla iki durak arasında birden fazla güzergah bulunur. Kargo dağıtımı önce en kısa güzergahı doygunluğa ulaştırır, ardından ikinci en kısa güzergahı doygunluğa ulaşana kadar kullanır ve böyle devam eder. Doygunluk, kapasite tahmini ve planlanan kullanım miktarına göre hesaplanır. Tüm güzergahlar doygunluğa ulaştığında eğer hala talep varsa, yüksek kapasiteli olan güzergahları tercih ederek tüm güzergahları aşırı yükler. Fakat çoğu zaman algoritma kapasiteyi isabetli olarak hesaplayamaz. Bu değer, daha kısa bir güzergahın yüzde kaç oranında doygunluğa ulaştığı zaman bir sonraki güzergahın seçileceğini ayarlamanızı sağlar. Yanlış (büyük) kapasite tahmini ihtimaline karşı aşırı dolu durakları önlemek için %100'den daha düşük bir değer seçin.
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Hız birimi: {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Hız birimi (kara): {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL :Hız birimleri (denizcilik): {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Kullanıcı arayüzünde hız görüntülendiğinde, bunu seçili birimde göster.
|
||||
###length 5
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (İngiliz ölçü birimleri) (mph)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrik (km/s)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (Uluslararası Ölçüm Sistemi) (m/s)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Oyun birimleri (karo/gün)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_KNOTS :Hava hızı
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Araç gücü ölçü birimi: {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Kullanıcı arayüzünde bir aracın gücü görüntülendiğinde, bunu seçili ölçü biriminde göster.
|
||||
@@ -4582,7 +4591,9 @@ STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}Bir sonr
|
||||
STR_AI_CONFIG_HUMAN_PLAYER :İnsan oyuncu
|
||||
STR_AI_CONFIG_RANDOM_AI :Rastgele YZ
|
||||
STR_AI_CONFIG_NONE :(hiçbiri)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}En fazla yarışmacı sayısı: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Yarışmacıların başlama arasındaki aralık: {ORANGE}{COMMA} dakika {P ""}
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Yukarı taşı
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Seçilen YZ'yi listede yukarı taşı
|
||||
@@ -4595,7 +4606,7 @@ STR_AI_CONFIG_AI :{SILVER}YZ'ler
|
||||
|
||||
STR_AI_CONFIG_CHANGE_AI :{BLACK}YZ Seç
|
||||
STR_AI_CONFIG_CHANGE_GAMESCRIPT :{BLACK}Oyun Betiği Seç
|
||||
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Başka bir betik yükle
|
||||
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Başka bir betik yükle. Kullanılabilir tüm sürümleri göstermek için Ctrl+Tıkla
|
||||
STR_AI_CONFIG_CONFIGURE :{BLACK}Yapılandır
|
||||
STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Betik parametrelerini yapılandır
|
||||
|
||||
@@ -4629,7 +4640,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Oyun Betiği
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Kapat
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Yeniden başlat
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Bu YZ bir öncekinden kaç gün sonra başlayacak (yaklaşık): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5084,6 +5094,18 @@ STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... önc
|
||||
STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... uçağın menzili yeterli değil
|
||||
|
||||
# Extra messages which go on the third line of errors, explaining why orders failed
|
||||
STR_ERROR_NO_RAIL_STATION :{WHITE} Tren istasyonu yok
|
||||
STR_ERROR_NO_BUS_STATION :{WHITE}Otobüs istasyonu yok
|
||||
STR_ERROR_NO_TRUCK_STATION :{WHITE} Kamyon istasyonu yok
|
||||
STR_ERROR_NO_DOCK :{WHITE}Liman yok
|
||||
STR_ERROR_NO_AIRPORT :{WHITE}Havalimanı/Helikopter pisti yok
|
||||
STR_ERROR_NO_STOP_COMPATIBLE_ROAD_TYPE :{WHITE}Uyumlu bir yol tipine sahip durak yok
|
||||
STR_ERROR_NO_STOP_COMPATIBLE_TRAM_TYPE :{WHITE}Uyumlu bir tramvay tipine sahip durak yok
|
||||
STR_ERROR_NO_STOP_ARTICULATED_VEHICLE :{WHITE} Körüklü karayolu taşıtları için uygun durak yoktur.{}Körüklü karayolu taşıtları üzerinden geçme durağı gerektirir, körfez durağı değil
|
||||
STR_ERROR_AIRPORT_NO_PLANES :{WHITE}Bu uçak bu helikopter pistine inemez
|
||||
STR_ERROR_AIRPORT_NO_HELICOPTERS :{WHITE}Helikopter bu havalimanı'na inemez
|
||||
STR_ERROR_NO_RAIL_WAYPOINT :{WHITE} Demiryolu ara noktası yok
|
||||
STR_ERROR_NO_BUOY :{WHITE}Şamandıra yok
|
||||
|
||||
# Timetable related errors
|
||||
STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Aracın zaman çizelgesi oluşturulamıyor...
|
||||
@@ -5510,10 +5532,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut Helik
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Company {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grup {COMMA}
|
||||
|
@@ -4749,7 +4749,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Ігровий
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Закрити
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Скидання
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Кількість днів до запуску цього АІ після запуску попереднього АІ: {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5657,10 +5656,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Гелікоп
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Компанія {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Група {COMMA}
|
||||
|
@@ -3099,10 +3099,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut ہی
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(کمپنی {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :گروہ {COMMA}
|
||||
|
@@ -195,6 +195,7 @@ STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mp
|
||||
STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}km/h
|
||||
STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}m/s
|
||||
STR_UNITS_VELOCITY_GAMEUNITS :{DECIMAL}{NBSP}ô/ngày
|
||||
STR_UNITS_VELOCITY_KNOTS :{COMMA}{NBSP}hải lý
|
||||
|
||||
STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}hp
|
||||
STR_UNITS_POWER_METRIC :{COMMA}{NBSP}hp
|
||||
@@ -343,9 +344,9 @@ STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Mở b
|
||||
###length 31
|
||||
STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Tạm dừng trò chơi
|
||||
STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Tua nhanh trò chơi
|
||||
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Tùy chọn
|
||||
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Lưu, bỏ ván chơi, thoát chương trình
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Hiển thị bản đồ
|
||||
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Tùy chọn và thiết lập
|
||||
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Lưu, nạp hoặc bỏ ván chơi, thoát chương trình
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Hiển thị bản đồ, khung nhìn bổ sung, dòng chảy hàng hóa hoặc danh sách biển hiệu
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Hiển thị danh sách đô thị
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Hiện tiền trợ cấp
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Hiển thị danh sách công ty
|
||||
@@ -353,9 +354,9 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Hiện t
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Hiện thông tin tổng quát của công ty
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Hiển thị tình tiết
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Hiển thị danh sách mục tiêu
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Hiển thị biểu đồ
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Hiển thị biểu đồ của công ty và giá cước hàng hóa
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Hiện bảng tầm cỡ các công ty
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Bỏ vốn cho những ngành mới hoặc hiện tất cả các ngành
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Khảo sát các ngành công nghiệp hoặc bỏ vốn cho những ngành mới
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Hiện danh sách tàu hỏa của công ty. Ctrl+Click vào chốt néo để mở danh sách nhóm/phương tiện
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Hiện danh sách xe cộ của công ty. Ctrl+Click vào chốt néo để mở danh sách nhóm/phương tiện
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Hiện danh sách tàu thủy của công ty. Ctrl+Click vào chốt néo để mở danh sách nhóm/phương tiện
|
||||
@@ -369,8 +370,8 @@ STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Xây b
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Xây sân bay
|
||||
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Mở thanh địa hình để nâng cao/hạ thấp ô đất, trồng cây, etc.
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Hiện cửa sổ âm thanh/nhạc
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Hiện thông báo/tin tức cuối cùng, hiện tùy chọn thông báo
|
||||
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Thông tin vùng đất, bảng lệnh, script debug, ảnh chụp, về OpenTTD
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Hiện thông báo/tin tức cuối cùng, lịch sử thông báo hoặc xóa tất cả thông báo
|
||||
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Thông tin vùng đất, chụp màng hình, công cụ dành cho nhà phát triển và thông tin về OpenTTD
|
||||
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Chuyển thanh công cụ
|
||||
|
||||
# Extra tooltips for the scenario editor toolbar
|
||||
@@ -816,7 +817,7 @@ STR_NEWS_MESSAGE_CAPTION :{WHITE}Thông
|
||||
STR_NEWS_CUSTOM_ITEM :{BIG_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_NEWS_FIRST_TRAIN_ARRIVAL :{BIG_FONT}{BLACK}Người dân chào đón . . .{}Tàu hoả đầu tiên đến {STATION}!
|
||||
STR_NEWS_FIRST_BUS_ARRIVAL :{BIG_FONT}{BLACK}Người dân chào đón . . .{}Xe bus đầu tiên đến {STATION}!
|
||||
STR_NEWS_FIRST_BUS_ARRIVAL :{BIG_FONT}{BLACK}Người dân chào đón . . .{}Xe buýt đầu tiên đến {STATION}!
|
||||
STR_NEWS_FIRST_TRUCK_ARRIVAL :{BIG_FONT}{BLACK}Người dân chào đón . . .{}Xe tải đầu tiên đến {STATION}!
|
||||
STR_NEWS_FIRST_PASSENGER_TRAM_ARRIVAL :{BIG_FONT}{BLACK}Người dân chào đón . . .{}Xe điện chở khách đầu tiên đến {STATION}!
|
||||
STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL :{BIG_FONT}{BLACK}Người dân chào đón . . .{}Xe tải điện đầu tiên đến {STATION}!
|
||||
@@ -1287,7 +1288,7 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Sự giảm t
|
||||
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Sự giảm tốc cho ôtô tại một ô dốc. Giá trị càng cao thì càng khó leo dốc
|
||||
|
||||
STR_CONFIG_SETTING_FORBID_90_DEG :Ngăn tàu hỏa chuyển hướng 90 độ: {STRING}
|
||||
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :quay 90 độ chỉ xảy ra khi một ray ngang nối với một ray dọc ở 2 ô liền kề, khiến cho tàu hỏa cua 90 độ khi đến ô rẽ thay vì 45 độ như bình thường.
|
||||
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Chuyển hướng 90 độ chỉ xảy ra khi một ray ngang nối với một ray dọc ở 2 ô liền kề, khiến cho tàu hỏa cua 90 độ khi đến ô rẽ thay vì 45 độ như bình thường.
|
||||
|
||||
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Cho phép gộp ga, bến, cảng không sát nhau: {STRING}
|
||||
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Cho phép thêm đoạn vào ga mà không phải sửa cái hiện có. Phải bấm Ctrl+Click để thêm đoạn vào ga
|
||||
@@ -1375,9 +1376,9 @@ STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :giảm bớt
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :bình thường
|
||||
|
||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Cho phép xây điểm dừng xe buýt trên đường của thị trấn: {STRING}
|
||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Cho phép xây dựng điểm dừng xe bus trên đường sở hữu bởi địa phương
|
||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Cho phép xây dựng điểm dừng xe buýt trên đường sở hữu bởi địa phương
|
||||
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Cho phép xây điểm dừng xe buýt trên đường của đối thủ: {STRING}
|
||||
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Cho phép xây dựng điểm dừng xe bus trên đường sở hữu bởi công ty khác
|
||||
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Cho phép xây dựng điểm dừng xe buýt trên đường sở hữu bởi công ty khác
|
||||
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Không thể đổi thiết đặt này khi vẫn còn các phương tiện giao thông.
|
||||
|
||||
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Phí bảo trì cơ sở hạ tầng: {STRING}
|
||||
@@ -1711,7 +1712,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Số lượng b
|
||||
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Tần suất bảo trì theo đơn vị phần trăm: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Lựa chọn liệu rằng việc bảo trì phương tiện sẽ được tiến hành sau một khoảng thời gian nhất định hay là độ tin cậy bị giảm xuống bao nhiều phần trăm so với mức tối đa
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Khi được bật, việc bảo trì phương tiện sẽ được thực thực hiện khi độ tin cậy của phương tiện giảm xuống so với độ tin cậy tối đa.{}{}Ví dụ, nếu độ tin cậy tối đa của phương tiện là 90% và tần suất bảo trì là 20%, phương tiện sẽ được bảo trì khi độ tin cậy giảm xuống 72%.
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Tần suất bảo trì mặc định đối với tàu hỏa: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Thiết lập khoảng thời gian bảo trì tùy chọn đối với các tàu hỏa, nếu phương tiện không có riêng thời gian bảo trì này
|
||||
@@ -1808,7 +1809,9 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Nếu bật, ch
|
||||
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Tuổi công ty tối thiểu để bán cổ phần: {STRING}
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Đặt số tuổi tối thiểu của công ty để cho các bên khác có thể mua và bán cổ phần
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} năm
|
||||
###setting-zero-is-special
|
||||
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :Không có tuổi tối thiểu
|
||||
|
||||
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Tỉ lệ lợi tức cổ phiếu chi trả cho môi giới: {STRING}
|
||||
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Tỉ lệ thu nhập cho mỗi trung gian trên hệ thống vận tải, cho phép điều chỉnh thu nhập
|
||||
@@ -1923,6 +1926,10 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Không
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Hệ số quy mô đô thị coi là thành phố: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Kích thước trung bình của thành phố tỉ lệ với đô thị lúc bắt đầu trò chơi
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL :Cập nhật biểu đồ phân phối mỗi {STRING}{NBSP}giây
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT :Thời gian giữa các lần tính toán lại tiếp theo của biểu đồ liên kết. Mỗi lần tính toán lại sẽ tính toán các kế hoạch cho một thành phần của biểu đồ. Điều đó có nghĩa là giá trị X cho cài đặt này không có nghĩa là toàn bộ biểu đồ sẽ được cập nhật X giây một lần. Chỉ một số thành phần sẽ làm như vậy. Bạn đặt nó càng ngắn thì càng cần nhiều thời gian CPU để tính toán nó. Bạn đặt càng lâu thì càng mất nhiều thời gian cho đến khi việc phân phối hàng hóa bắt đầu trên các tuyến đường mới.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME :Mất {STRING}{NBSP}giây để tính toán lại biểu đồ phân phối
|
||||
STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT :Thời gian tiêu tốn cho mỗi lần tính toán lại một thành phần biểu đồ liên kết. Khi bắt đầu tính toán lại, một luồng sẽ được sinh ra và chạy trong số giây được thiết lập. Bạn đặt thông số này càng ngắn thì càng có nhiều khả luồng được tạo chưa hoàn thành công việc của nó. Sau đó, trò chơi dừng lại cho đến khi nó ("lag"). Bạn đặt càng lâu thì biểu đồ phân phối càng mất nhiều thời gian để cập nhật khi các tuyến thay đổi.
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Chế độ phân phối đối với hành khách: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Đối xứng" có nghĩa là số lượng hành khách đi từ nhà ga A đến nhà ga B và từ B đến A sẽ tương đương nhau . "Không đối xứng" có nghĩa là số lượng hành khách tùy ý có thể đi theo một trong hai hướng. "Thủ công" có nghĩa là hành khách sẽ không được phân phối tự động.
|
||||
@@ -1948,13 +1955,15 @@ STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Thiết lập g
|
||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Tỉ lệ bảo hòa (hết tải) của đường tắt trước khi chuyển sang đường khác dài hơn: {STRING}
|
||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Thường sẽ có nhiều con đường giữa 2 ga/bến. Việc vận tải hàng hóa sẽ chọn con đường ngắn nhất trước cho đến khi hết tải. Sau đó chọn con đường ngắn thứ 2, 3... cho đến khi hết tải. Việc hết tải được tính toán bằng khối lượng vận chuyển thực tế so với dự tính. Khi hết tải tất cả các con đường, nếu vẫn còn hàng hóa cần chuyển, thì nó có thể gây quá tải. Dầu vậy thuật toán này không phải lúc nào cũng chính xác trong việc tính toán năng lực vận tải. Thiết lập này cho phép bạn tinh chỉnh tỉ lệ mà một con đường sẽ hết tải trước khi chọn con đường kế tiếp. Nhỏ hơn 100% sẽ giúp tránh việc một ga bến quá đông đúc và bù trừ việc tính toán sai lệch này.
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Đơn vị tốc độ: {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Đơn vị tốc độ (đất liền): {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL :Đơn vị tốc độ (hàng hải): {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Khi thể hiện tốc độ trên giao diện, thể hiện nó bằng đơn vị đã chọn.
|
||||
###length 5
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metric (km/h)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Đơn vị trong trò chơi (ô/ngày)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_KNOTS :Hải lý
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Đơn vị công suất phương tiện: {STRING}
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Khi thể hiện công suất phương tiện, thể hiện nó bằng đơn vị đã chọn.
|
||||
@@ -3938,7 +3947,7 @@ STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Mua tàu
|
||||
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Mua máy bay đã ấn định. Shift+Click để xem giá mua dự tính
|
||||
|
||||
###length VEHICLE_TYPES
|
||||
STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Mua và cải biến toa tầu được chọn. Shift+Click để xem giá mua dự tính
|
||||
STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Mua và cải biến toa tàu được chọn. Shift+Click để xem giá mua dự tính
|
||||
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Mua và cải biến ô-tô đang chọn. Shift+Click để xem giá mua dự tính
|
||||
STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Mua và cải biến tàu thuỷ đã chọn. Shift+Click để dự tính giá mà không mua
|
||||
STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Mua và cải biến máy bay được chọn. Shift+Click để xem chi phí dự tính
|
||||
@@ -4069,7 +4078,7 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Bạn
|
||||
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Thông cáo từ nhà sản xuất phương tiện vận tải
|
||||
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Chúng tôi vừa thiết kế một {STRING} mới - bạn có muốn mua nó trước khi chúng tôi hoàn thiện 1 năm, để chúng tôi đánh giá nó trước khi bán rộng rãi?
|
||||
|
||||
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :đầu máy tầu hoả
|
||||
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :đầu máy tàu hoả
|
||||
STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :ngành vận tải đường sắt điện lực
|
||||
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :đầu máy ray đơn
|
||||
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :đầu máy đệm từ
|
||||
@@ -4581,7 +4590,9 @@ STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}Các AIs
|
||||
STR_AI_CONFIG_HUMAN_PLAYER :Nhân vật người
|
||||
STR_AI_CONFIG_RANDOM_AI :AI ngẫu nhiên
|
||||
STR_AI_CONFIG_NONE :(không)
|
||||
STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM}
|
||||
STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Số đối thủ cạnh tranh tối đa: {ORANGE}{COMMA}
|
||||
STR_AI_CONFIG_COMPETITORS_INTERVAL :{LTBLUE}Khoảng thời gian giữa các lần khởi sự của đối thủ cạnh tranh: {ORANGE}{COMMA} phút
|
||||
|
||||
STR_AI_CONFIG_MOVE_UP :{BLACK}Chuyển Lên Trên
|
||||
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Di chuyển AI lên trên danh sách
|
||||
@@ -4594,7 +4605,7 @@ STR_AI_CONFIG_AI :{SILVER}AIs
|
||||
|
||||
STR_AI_CONFIG_CHANGE_AI :{BLACK}Chọn AI
|
||||
STR_AI_CONFIG_CHANGE_GAMESCRIPT :{BLACK}Chọn Game Script
|
||||
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Chạy tập lệnh khác
|
||||
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Chạy tập lệnh khác. Ctrl+Click để hiển thị những phiên bản sẵn có
|
||||
STR_AI_CONFIG_CONFIGURE :{BLACK}Tham Số
|
||||
STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Cấu hình tham số cho AI
|
||||
|
||||
@@ -4628,7 +4639,6 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Game Script
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Đóng
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Thiết Lập Lại
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Số ngày cần chờ để chạy AI này sau cái trước (sớm hay muộn): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5084,7 +5094,16 @@ STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... máy
|
||||
|
||||
# Extra messages which go on the third line of errors, explaining why orders failed
|
||||
STR_ERROR_NO_RAIL_STATION :{WHITE}Không có ga xe lửa
|
||||
STR_ERROR_NO_BUS_STATION :{WHITE}Không có trạm xe buýt
|
||||
STR_ERROR_NO_TRUCK_STATION :{WHITE}Không có trạm xe tải
|
||||
STR_ERROR_NO_DOCK :{WHITE}Không có bến cảng
|
||||
STR_ERROR_NO_AIRPORT :{WHITE}Không có sân bay/bãi đỗ trực thăng
|
||||
STR_ERROR_NO_STOP_COMPATIBLE_ROAD_TYPE :{WHITE}Không có điểm dừng nào phù hợp với kiểu đường
|
||||
STR_ERROR_NO_STOP_COMPATIBLE_TRAM_TYPE :{WHITE}Không có điểm dừng phù hợp với kiểu tàu điện
|
||||
STR_ERROR_NO_STOP_ARTICULATED_VEHICLE :Không có điểm dừng phù hợp với ô tô kéo rơ moóc.{}Ô tô kéo rơ moóc cần điểm dừng ngắn trên đường, không phải bến dừng
|
||||
STR_ERROR_AIRPORT_NO_PLANES :{WHITE}Không thể hạ cánh máy bay tại bãi đỗ trực thăng này
|
||||
STR_ERROR_AIRPORT_NO_HELICOPTERS :{WHITE}Không thể hạ cánh trực thăng ở sân bay này
|
||||
STR_ERROR_NO_RAIL_WAYPOINT :{WHITE}Không có điểm mốc tàu hỏa
|
||||
STR_ERROR_NO_BUOY :{WHITE}Không có cái phao nào
|
||||
|
||||
# Timetable related errors
|
||||
@@ -5502,10 +5521,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Trực thăng P
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Công ty {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Nhóm {COMMA}
|
||||
|
@@ -4177,7 +4177,6 @@ STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Cau
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Ailosod
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
STR_AI_SETTINGS_START_DELAY :Nifer o ddiwrnodau i aros wedi dechrau AI blaenorol cyn dechrau hon (fwy neu lai): {ORANGE}{STRING}
|
||||
|
||||
|
||||
# Textfile window
|
||||
@@ -5031,10 +5030,10 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Hofrennydd Powe
|
||||
|
||||
##id 0x8800
|
||||
# Formatting of some strings
|
||||
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
|
||||
STR_FORMAT_DATE_TINY :{ZEROFILL_NUM}-{ZEROFILL_NUM}-{NUM}
|
||||
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
|
||||
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
|
||||
STR_FORMAT_DATE_ISO :{2:NUM}-{1:ZEROFILL_NUM}-{0:ZEROFILL_NUM}
|
||||
|
||||
STR_FORMAT_COMPANY_NUM :(Cwmni {COMMA})
|
||||
STR_FORMAT_GROUP_NAME :Grŵp {COMMA}
|
||||
|
@@ -625,7 +625,7 @@ void ShowSelectGameWindow();
|
||||
void SetupColoursAndInitialWindow()
|
||||
{
|
||||
for (uint i = 0; i != 16; i++) {
|
||||
const byte *b = GetNonSprite(PALETTE_RECOLOUR_START + i, ST_RECOLOUR);
|
||||
const byte *b = GetNonSprite(PALETTE_RECOLOUR_START + i, SpriteType::Recolour);
|
||||
|
||||
assert(b);
|
||||
memcpy(_colour_gradient[i], b + 0xC6, sizeof(_colour_gradient[i]));
|
||||
|
434
src/newgrf.cpp
434
src/newgrf.cpp
@@ -250,7 +250,7 @@ struct GRFTempEngineData {
|
||||
}
|
||||
};
|
||||
|
||||
static GRFTempEngineData *_gted; ///< Temporary engine data used during NewGRF loading
|
||||
static std::vector<GRFTempEngineData> _gted; ///< Temporary engine data used during NewGRF loading
|
||||
|
||||
/**
|
||||
* Contains the GRF ID of the owner of a vehicle if it has been reserved.
|
||||
@@ -590,11 +590,7 @@ static Engine *GetNewEngine(const GRFFile *file, VehicleType type, uint16 intern
|
||||
|
||||
if (engine_pool_size != Engine::GetPoolSize()) {
|
||||
/* Resize temporary engine data ... */
|
||||
_gted = ReallocT(_gted, Engine::GetPoolSize());
|
||||
|
||||
/* and blank the new block. */
|
||||
size_t len = (Engine::GetPoolSize() - engine_pool_size) * sizeof(*_gted);
|
||||
memset(_gted + engine_pool_size, 0, len);
|
||||
_gted.resize(Engine::GetPoolSize());
|
||||
}
|
||||
if (type == VEH_TRAIN) {
|
||||
_gted[e->index].railtypelabel = GetRailTypeInfo(e->u.rail.railtype)->label;
|
||||
@@ -1869,10 +1865,10 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, cons
|
||||
}
|
||||
|
||||
/* Allocate station specs if necessary */
|
||||
if (_cur.grffile->stations == nullptr) _cur.grffile->stations = CallocT<StationSpec*>(NUM_STATIONS_PER_GRF);
|
||||
if (_cur.grffile->stations.size() < stid + numinfo) _cur.grffile->stations.resize(stid + numinfo);
|
||||
|
||||
for (int i = 0; i < numinfo; i++) {
|
||||
StationSpec *statspec = _cur.grffile->stations[stid + i];
|
||||
StationSpec *statspec = _cur.grffile->stations[stid + i].get();
|
||||
|
||||
/* Check that the station we are modifying is defined. */
|
||||
if (statspec == nullptr && prop != 0x08) {
|
||||
@@ -1882,14 +1878,15 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, cons
|
||||
|
||||
switch (prop) {
|
||||
case 0x08: { // Class ID
|
||||
StationSpec **spec = &_cur.grffile->stations[stid + i];
|
||||
|
||||
/* Property 0x08 is special; it is where the station is allocated */
|
||||
if (*spec == nullptr) *spec = new StationSpec();
|
||||
if (statspec == nullptr) {
|
||||
_cur.grffile->stations[stid + i] = std::make_unique<StationSpec>();
|
||||
statspec = _cur.grffile->stations[stid + i].get();
|
||||
}
|
||||
|
||||
/* Swap classid because we read it in BE meaning WAYP or DFLT */
|
||||
uint32 classid = buf->ReadDWord();
|
||||
(*spec)->cls_id = StationClass::Allocate(BSWAP32(classid));
|
||||
statspec->cls_id = StationClass::Allocate(BSWAP32(classid));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1945,7 +1942,7 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, cons
|
||||
|
||||
case 0x0A: { // Copy sprite layout
|
||||
byte srcid = buf->ReadByte();
|
||||
const StationSpec *srcstatspec = srcid >= NUM_STATIONS_PER_GRF ? nullptr : _cur.grffile->stations[srcid];
|
||||
const StationSpec *srcstatspec = srcid >= _cur.grffile->stations.size() ? nullptr : _cur.grffile->stations[srcid].get();
|
||||
|
||||
if (srcstatspec == nullptr) {
|
||||
grfmsg(1, "StationChangeInfo: Station %u is not defined, cannot copy sprite layout to %u.", srcid, stid + i);
|
||||
@@ -1999,7 +1996,7 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, cons
|
||||
|
||||
case 0x0F: { // Copy custom layout
|
||||
byte srcid = buf->ReadByte();
|
||||
const StationSpec *srcstatspec = srcid >= NUM_STATIONS_PER_GRF ? nullptr : _cur.grffile->stations[srcid];
|
||||
const StationSpec *srcstatspec = srcid >= _cur.grffile->stations.size() ? nullptr : _cur.grffile->stations[srcid].get();
|
||||
|
||||
if (srcstatspec == nullptr) {
|
||||
grfmsg(1, "StationChangeInfo: Station %u is not defined, cannot copy tile layout to %u.", srcid, stid + i);
|
||||
@@ -2358,12 +2355,10 @@ static ChangeInfoResult TownHouseChangeInfo(uint hid, int numinfo, int prop, con
|
||||
}
|
||||
|
||||
/* Allocate house specs if they haven't been allocated already. */
|
||||
if (_cur.grffile->housespec == nullptr) {
|
||||
_cur.grffile->housespec = CallocT<HouseSpec*>(NUM_HOUSES_PER_GRF);
|
||||
}
|
||||
if (_cur.grffile->housespec.size() < hid + numinfo) _cur.grffile->housespec.resize(hid + numinfo);
|
||||
|
||||
for (int i = 0; i < numinfo; i++) {
|
||||
HouseSpec *housespec = _cur.grffile->housespec[hid + i];
|
||||
HouseSpec *housespec = _cur.grffile->housespec[hid + i].get();
|
||||
|
||||
if (prop != 0x08 && housespec == nullptr) {
|
||||
/* If the house property 08 is not yet set, ignore this property */
|
||||
@@ -2374,13 +2369,11 @@ static ChangeInfoResult TownHouseChangeInfo(uint hid, int numinfo, int prop, con
|
||||
|
||||
switch (prop) {
|
||||
case 0x08: { // Substitute building type, and definition of a new house
|
||||
HouseSpec **house = &_cur.grffile->housespec[hid + i];
|
||||
byte subs_id = buf->ReadByte();
|
||||
|
||||
if (subs_id == 0xFF) {
|
||||
/* Instead of defining a new house, a substitute house id
|
||||
* of 0xFF disables the old house with the current id. */
|
||||
HouseSpec::Get(hid + i)->enabled = false;
|
||||
if (hid + i < NEW_HOUSE_OFFSET) HouseSpec::Get(hid + i)->enabled = false;
|
||||
continue;
|
||||
} else if (subs_id >= NEW_HOUSE_OFFSET) {
|
||||
/* The substitute id must be one of the original houses. */
|
||||
@@ -2389,11 +2382,10 @@ static ChangeInfoResult TownHouseChangeInfo(uint hid, int numinfo, int prop, con
|
||||
}
|
||||
|
||||
/* Allocate space for this house. */
|
||||
if (*house == nullptr) *house = CallocT<HouseSpec>(1);
|
||||
|
||||
housespec = *house;
|
||||
|
||||
MemCpyT(housespec, HouseSpec::Get(subs_id));
|
||||
if (housespec == nullptr) {
|
||||
_cur.grffile->housespec[hid + i] = std::make_unique<HouseSpec>(*HouseSpec::Get(subs_id));
|
||||
housespec = _cur.grffile->housespec[hid + i].get();
|
||||
}
|
||||
|
||||
housespec->enabled = true;
|
||||
housespec->grf_prop.local_id = hid + i;
|
||||
@@ -3240,12 +3232,10 @@ static ChangeInfoResult IndustrytilesChangeInfo(uint indtid, int numinfo, int pr
|
||||
}
|
||||
|
||||
/* Allocate industry tile specs if they haven't been allocated already. */
|
||||
if (_cur.grffile->indtspec == nullptr) {
|
||||
_cur.grffile->indtspec = CallocT<IndustryTileSpec*>(NUM_INDUSTRYTILES_PER_GRF);
|
||||
}
|
||||
if (_cur.grffile->indtspec.size() < indtid + numinfo) _cur.grffile->indtspec.resize(indtid + numinfo);
|
||||
|
||||
for (int i = 0; i < numinfo; i++) {
|
||||
IndustryTileSpec *tsp = _cur.grffile->indtspec[indtid + i];
|
||||
IndustryTileSpec *tsp = _cur.grffile->indtspec[indtid + i].get();
|
||||
|
||||
if (prop != 0x08 && tsp == nullptr) {
|
||||
ChangeInfoResult cir = IgnoreIndustryTileProperty(prop, buf);
|
||||
@@ -3255,9 +3245,7 @@ static ChangeInfoResult IndustrytilesChangeInfo(uint indtid, int numinfo, int pr
|
||||
|
||||
switch (prop) {
|
||||
case 0x08: { // Substitute industry tile type
|
||||
IndustryTileSpec **tilespec = &_cur.grffile->indtspec[indtid + i];
|
||||
byte subs_id = buf->ReadByte();
|
||||
|
||||
if (subs_id >= NEW_INDUSTRYTILEOFFSET) {
|
||||
/* The substitute id must be one of the original industry tile. */
|
||||
grfmsg(2, "IndustryTilesChangeInfo: Attempt to use new industry tile %u as substitute industry tile for %u. Ignoring.", subs_id, indtid + i);
|
||||
@@ -3265,11 +3253,10 @@ static ChangeInfoResult IndustrytilesChangeInfo(uint indtid, int numinfo, int pr
|
||||
}
|
||||
|
||||
/* Allocate space for this industry. */
|
||||
if (*tilespec == nullptr) {
|
||||
*tilespec = CallocT<IndustryTileSpec>(1);
|
||||
tsp = *tilespec;
|
||||
if (tsp == nullptr) {
|
||||
_cur.grffile->indtspec[indtid + i] = std::make_unique<IndustryTileSpec>(_industry_tile_specs[subs_id]);
|
||||
tsp = _cur.grffile->indtspec[indtid + i].get();
|
||||
|
||||
memcpy(tsp, &_industry_tile_specs[subs_id], sizeof(_industry_tile_specs[subs_id]));
|
||||
tsp->enabled = true;
|
||||
|
||||
/* A copied tile should not have the animation infos copied too.
|
||||
@@ -3501,12 +3488,10 @@ static ChangeInfoResult IndustriesChangeInfo(uint indid, int numinfo, int prop,
|
||||
}
|
||||
|
||||
/* Allocate industry specs if they haven't been allocated already. */
|
||||
if (_cur.grffile->industryspec == nullptr) {
|
||||
_cur.grffile->industryspec = CallocT<IndustrySpec*>(NUM_INDUSTRYTYPES_PER_GRF);
|
||||
}
|
||||
if (_cur.grffile->industryspec.size() < indid + numinfo) _cur.grffile->industryspec.resize(indid + numinfo);
|
||||
|
||||
for (int i = 0; i < numinfo; i++) {
|
||||
IndustrySpec *indsp = _cur.grffile->industryspec[indid + i];
|
||||
IndustrySpec *indsp = _cur.grffile->industryspec[indid + i].get();
|
||||
|
||||
if (prop != 0x08 && indsp == nullptr) {
|
||||
ChangeInfoResult cir = IgnoreIndustryProperty(prop, buf);
|
||||
@@ -3516,9 +3501,7 @@ static ChangeInfoResult IndustriesChangeInfo(uint indid, int numinfo, int prop,
|
||||
|
||||
switch (prop) {
|
||||
case 0x08: { // Substitute industry type
|
||||
IndustrySpec **indspec = &_cur.grffile->industryspec[indid + i];
|
||||
byte subs_id = buf->ReadByte();
|
||||
|
||||
if (subs_id == 0xFF) {
|
||||
/* Instead of defining a new industry, a substitute industry id
|
||||
* of 0xFF disables the old industry with the current id. */
|
||||
@@ -3533,11 +3516,10 @@ static ChangeInfoResult IndustriesChangeInfo(uint indid, int numinfo, int prop,
|
||||
/* Allocate space for this industry.
|
||||
* Only need to do it once. If ever it is called again, it should not
|
||||
* do anything */
|
||||
if (*indspec == nullptr) {
|
||||
*indspec = new IndustrySpec;
|
||||
indsp = *indspec;
|
||||
if (indsp == nullptr) {
|
||||
_cur.grffile->industryspec[indid + i] = std::make_unique<IndustrySpec>(_origin_industry_specs[subs_id]);
|
||||
indsp = _cur.grffile->industryspec[indid + i].get();
|
||||
|
||||
*indsp = _origin_industry_specs[subs_id];
|
||||
indsp->enabled = true;
|
||||
indsp->grf_prop.local_id = indid + i;
|
||||
indsp->grf_prop.subst_id = subs_id;
|
||||
@@ -3913,12 +3895,10 @@ static ChangeInfoResult AirportChangeInfo(uint airport, int numinfo, int prop, c
|
||||
}
|
||||
|
||||
/* Allocate industry specs if they haven't been allocated already. */
|
||||
if (_cur.grffile->airportspec == nullptr) {
|
||||
_cur.grffile->airportspec = CallocT<AirportSpec*>(NUM_AIRPORTS_PER_GRF);
|
||||
}
|
||||
if (_cur.grffile->airportspec.size() < airport + numinfo) _cur.grffile->airportspec.resize(airport + numinfo);
|
||||
|
||||
for (int i = 0; i < numinfo; i++) {
|
||||
AirportSpec *as = _cur.grffile->airportspec[airport + i];
|
||||
AirportSpec *as = _cur.grffile->airportspec[airport + i].get();
|
||||
|
||||
if (as == nullptr && prop != 0x08 && prop != 0x09) {
|
||||
grfmsg(2, "AirportChangeInfo: Attempt to modify undefined airport %u, ignoring", airport + i);
|
||||
@@ -3928,7 +3908,6 @@ static ChangeInfoResult AirportChangeInfo(uint airport, int numinfo, int prop, c
|
||||
switch (prop) {
|
||||
case 0x08: { // Modify original airport
|
||||
byte subs_id = buf->ReadByte();
|
||||
|
||||
if (subs_id == 0xFF) {
|
||||
/* Instead of defining a new airport, an airport id
|
||||
* of 0xFF disables the old airport with the current id. */
|
||||
@@ -3940,15 +3919,13 @@ static ChangeInfoResult AirportChangeInfo(uint airport, int numinfo, int prop, c
|
||||
continue;
|
||||
}
|
||||
|
||||
AirportSpec **spec = &_cur.grffile->airportspec[airport + i];
|
||||
/* Allocate space for this airport.
|
||||
* Only need to do it once. If ever it is called again, it should not
|
||||
* do anything */
|
||||
if (*spec == nullptr) {
|
||||
*spec = MallocT<AirportSpec>(1);
|
||||
as = *spec;
|
||||
if (as == nullptr) {
|
||||
_cur.grffile->airportspec[airport + i] = std::make_unique<AirportSpec>(*AirportSpec::GetWithoutOverride(subs_id));
|
||||
as = _cur.grffile->airportspec[airport + i].get();
|
||||
|
||||
memcpy(as, AirportSpec::GetWithoutOverride(subs_id), sizeof(*as));
|
||||
as->enabled = true;
|
||||
as->grf_prop.local_id = airport + i;
|
||||
as->grf_prop.subst_id = subs_id;
|
||||
@@ -4304,7 +4281,7 @@ static ChangeInfoResult ObjectChangeInfo(uint id, int numinfo, int prop, const G
|
||||
}
|
||||
|
||||
for (int i = 0; i < numinfo; i++) {
|
||||
ObjectSpec *spec = _cur.grffile->objectspec[id + i];
|
||||
ObjectSpec *spec = _cur.grffile->objectspec[id + i].get();
|
||||
|
||||
if (prop != 0x08 && spec == nullptr) {
|
||||
/* If the object property 08 is not yet set, ignore this property */
|
||||
@@ -4315,18 +4292,17 @@ static ChangeInfoResult ObjectChangeInfo(uint id, int numinfo, int prop, const G
|
||||
|
||||
switch (prop) {
|
||||
case 0x08: { // Class ID
|
||||
ObjectSpec **ospec = &_cur.grffile->objectspec[id + i];
|
||||
|
||||
/* Allocate space for this object. */
|
||||
if (*ospec == nullptr) {
|
||||
*ospec = CallocT<ObjectSpec>(1);
|
||||
(*ospec)->views = 1; // Default for NewGRFs that don't set it.
|
||||
(*ospec)->size = OBJECT_SIZE_1X1; // Default for NewGRFs that manage to not set it (1x1)
|
||||
if (spec == nullptr) {
|
||||
_cur.grffile->objectspec[id + i] = std::make_unique<ObjectSpec>();
|
||||
spec = _cur.grffile->objectspec[id + i].get();
|
||||
spec->views = 1; // Default for NewGRFs that don't set it.
|
||||
spec->size = OBJECT_SIZE_1X1; // Default for NewGRFs that manage to not set it (1x1)
|
||||
}
|
||||
|
||||
/* Swap classid because we read it in BE. */
|
||||
uint32 classid = buf->ReadDWord();
|
||||
(*ospec)->cls_id = ObjectClass::Allocate(BSWAP32(classid));
|
||||
spec->cls_id = ObjectClass::Allocate(BSWAP32(classid));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4954,12 +4930,10 @@ static ChangeInfoResult AirportTilesChangeInfo(uint airtid, int numinfo, int pro
|
||||
}
|
||||
|
||||
/* Allocate airport tile specs if they haven't been allocated already. */
|
||||
if (_cur.grffile->airtspec == nullptr) {
|
||||
_cur.grffile->airtspec = CallocT<AirportTileSpec*>(NUM_AIRPORTTILES_PER_GRF);
|
||||
}
|
||||
if (_cur.grffile->airtspec.size() < airtid + numinfo) _cur.grffile->airtspec.resize(airtid + numinfo);
|
||||
|
||||
for (int i = 0; i < numinfo; i++) {
|
||||
AirportTileSpec *tsp = _cur.grffile->airtspec[airtid + i];
|
||||
AirportTileSpec *tsp = _cur.grffile->airtspec[airtid + i].get();
|
||||
|
||||
if (prop != 0x08 && tsp == nullptr) {
|
||||
grfmsg(2, "AirportTileChangeInfo: Attempt to modify undefined airport tile %u. Ignoring.", airtid + i);
|
||||
@@ -4968,9 +4942,7 @@ static ChangeInfoResult AirportTilesChangeInfo(uint airtid, int numinfo, int pro
|
||||
|
||||
switch (prop) {
|
||||
case 0x08: { // Substitute airport tile type
|
||||
AirportTileSpec **tilespec = &_cur.grffile->airtspec[airtid + i];
|
||||
byte subs_id = buf->ReadByte();
|
||||
|
||||
if (subs_id >= NEW_AIRPORTTILE_OFFSET) {
|
||||
/* The substitute id must be one of the original airport tiles. */
|
||||
grfmsg(2, "AirportTileChangeInfo: Attempt to use new airport tile %u as substitute airport tile for %u. Ignoring.", subs_id, airtid + i);
|
||||
@@ -4978,11 +4950,10 @@ static ChangeInfoResult AirportTilesChangeInfo(uint airtid, int numinfo, int pro
|
||||
}
|
||||
|
||||
/* Allocate space for this airport tile. */
|
||||
if (*tilespec == nullptr) {
|
||||
*tilespec = CallocT<AirportTileSpec>(1);
|
||||
tsp = *tilespec;
|
||||
if (tsp == nullptr) {
|
||||
_cur.grffile->airtspec[airtid + i] = std::make_unique<AirportTileSpec>(*AirportTileSpec::Get(subs_id));
|
||||
tsp = _cur.grffile->airtspec[airtid + i].get();
|
||||
|
||||
memcpy(tsp, AirportTileSpec::Get(subs_id), sizeof(AirportTileSpec));
|
||||
tsp->enabled = true;
|
||||
|
||||
tsp->animation.status = ANIM_STATUS_NO_ANIMATION;
|
||||
@@ -5088,7 +5059,7 @@ static ChangeInfoResult RoadStopChangeInfo(uint id, int numinfo, int prop, const
|
||||
}
|
||||
|
||||
for (int i = 0; i < numinfo; i++) {
|
||||
RoadStopSpec *rs = _cur.grffile->roadstops[id + i];
|
||||
RoadStopSpec *rs = _cur.grffile->roadstops[id + i].get();
|
||||
|
||||
if (rs == nullptr && prop != 0x08 && prop != A0RPI_ROADSTOP_CLASS_ID) {
|
||||
grfmsg(1, "RoadStopChangeInfo: Attempt to modify undefined road stop %u, ignoring", id + i);
|
||||
@@ -5102,16 +5073,14 @@ static ChangeInfoResult RoadStopChangeInfo(uint id, int numinfo, int prop, const
|
||||
if (MappedPropertyLengthMismatch(buf, 4, mapping_entry)) break;
|
||||
FALLTHROUGH;
|
||||
case 0x08: { // Road Stop Class ID
|
||||
RoadStopSpec **spec = &_cur.grffile->roadstops[id + i];
|
||||
|
||||
if (*spec == nullptr) {
|
||||
*spec = CallocT<RoadStopSpec>(1);
|
||||
new (*spec) RoadStopSpec();
|
||||
if (rs == nullptr) {
|
||||
_cur.grffile->roadstops[id + i] = std::make_unique<RoadStopSpec>();
|
||||
rs = _cur.grffile->roadstops[id + i].get();
|
||||
}
|
||||
|
||||
uint32 classid = buf->ReadDWord();
|
||||
(*spec)->cls_id = RoadStopClass::Allocate(BSWAP32(classid));
|
||||
(*spec)->spec_id = id + i;
|
||||
rs->cls_id = RoadStopClass::Allocate(BSWAP32(classid));
|
||||
rs->spec_id = id + i;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -6485,7 +6454,7 @@ static void CanalMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
|
||||
static void StationMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
{
|
||||
if (_cur.grffile->stations == nullptr) {
|
||||
if (_cur.grffile->stations.empty()) {
|
||||
grfmsg(1, "StationMapSpriteGroup: No stations defined, skipping");
|
||||
return;
|
||||
}
|
||||
@@ -6505,7 +6474,7 @@ static void StationMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
if (ctype == CT_INVALID) continue;
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
StationSpec *statspec = stations[i] >= NUM_STATIONS_PER_GRF ? nullptr : _cur.grffile->stations[stations[i]];
|
||||
StationSpec *statspec = stations[i] >= _cur.grffile->stations.size() ? nullptr : _cur.grffile->stations[stations[i]].get();
|
||||
|
||||
if (statspec == nullptr) {
|
||||
grfmsg(1, "StationMapSpriteGroup: Station with ID 0x%02X does not exist, skipping", stations[i]);
|
||||
@@ -6520,7 +6489,7 @@ static void StationMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
if (!IsValidGroupID(groupid, "StationMapSpriteGroup")) return;
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
StationSpec *statspec = stations[i] >= NUM_STATIONS_PER_GRF ? nullptr : _cur.grffile->stations[stations[i]];
|
||||
StationSpec *statspec = stations[i] >= _cur.grffile->stations.size() ? nullptr : _cur.grffile->stations[stations[i]].get();
|
||||
|
||||
if (statspec == nullptr) {
|
||||
grfmsg(1, "StationMapSpriteGroup: Station with ID 0x%02X does not exist, skipping", stations[i]);
|
||||
@@ -6542,7 +6511,7 @@ static void StationMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
|
||||
static void TownHouseMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
{
|
||||
if (_cur.grffile->housespec == nullptr) {
|
||||
if (_cur.grffile->housespec.empty()) {
|
||||
grfmsg(1, "TownHouseMapSpriteGroup: No houses defined, skipping");
|
||||
return;
|
||||
}
|
||||
@@ -6560,7 +6529,7 @@ static void TownHouseMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
if (!IsValidGroupID(groupid, "TownHouseMapSpriteGroup")) return;
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
HouseSpec *hs = houses[i] >= NUM_HOUSES_PER_GRF ? nullptr : _cur.grffile->housespec[houses[i]];
|
||||
HouseSpec *hs = houses[i] >= _cur.grffile->housespec.size() ? nullptr : _cur.grffile->housespec[houses[i]].get();
|
||||
|
||||
if (hs == nullptr) {
|
||||
grfmsg(1, "TownHouseMapSpriteGroup: House %d undefined, skipping.", houses[i]);
|
||||
@@ -6573,7 +6542,7 @@ static void TownHouseMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
|
||||
static void IndustryMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
{
|
||||
if (_cur.grffile->industryspec == nullptr) {
|
||||
if (_cur.grffile->industryspec.empty()) {
|
||||
grfmsg(1, "IndustryMapSpriteGroup: No industries defined, skipping");
|
||||
return;
|
||||
}
|
||||
@@ -6591,7 +6560,7 @@ static void IndustryMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
if (!IsValidGroupID(groupid, "IndustryMapSpriteGroup")) return;
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
IndustrySpec *indsp = industries[i] >= NUM_INDUSTRYTYPES_PER_GRF ? nullptr : _cur.grffile->industryspec[industries[i]];
|
||||
IndustrySpec *indsp = industries[i] >= _cur.grffile->industryspec.size() ? nullptr : _cur.grffile->industryspec[industries[i]].get();
|
||||
|
||||
if (indsp == nullptr) {
|
||||
grfmsg(1, "IndustryMapSpriteGroup: Industry %d undefined, skipping", industries[i]);
|
||||
@@ -6604,7 +6573,7 @@ static void IndustryMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
|
||||
static void IndustrytileMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
{
|
||||
if (_cur.grffile->indtspec == nullptr) {
|
||||
if (_cur.grffile->indtspec.empty()) {
|
||||
grfmsg(1, "IndustrytileMapSpriteGroup: No industry tiles defined, skipping");
|
||||
return;
|
||||
}
|
||||
@@ -6622,7 +6591,7 @@ static void IndustrytileMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
if (!IsValidGroupID(groupid, "IndustrytileMapSpriteGroup")) return;
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
IndustryTileSpec *indtsp = indtiles[i] >= NUM_INDUSTRYTILES_PER_GRF ? nullptr : _cur.grffile->indtspec[indtiles[i]];
|
||||
IndustryTileSpec *indtsp = indtiles[i] >= _cur.grffile->indtspec.size() ? nullptr : _cur.grffile->indtspec[indtiles[i]].get();
|
||||
|
||||
if (indtsp == nullptr) {
|
||||
grfmsg(1, "IndustrytileMapSpriteGroup: Industry tile %d undefined, skipping", indtiles[i]);
|
||||
@@ -6716,7 +6685,7 @@ static void ObjectMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
if (ctype == CT_INVALID) continue;
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
ObjectSpec *spec = (objects[i] >= _cur.grffile->objectspec.size()) ? nullptr : _cur.grffile->objectspec[objects[i]];
|
||||
ObjectSpec *spec = (objects[i] >= _cur.grffile->objectspec.size()) ? nullptr : _cur.grffile->objectspec[objects[i]].get();
|
||||
|
||||
if (spec == nullptr) {
|
||||
grfmsg(1, "ObjectMapSpriteGroup: Object with ID 0x%02X undefined, skipping", objects[i]);
|
||||
@@ -6731,7 +6700,7 @@ static void ObjectMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
if (!IsValidGroupID(groupid, "ObjectMapSpriteGroup")) return;
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
ObjectSpec *spec = (objects[i] >= _cur.grffile->objectspec.size()) ? nullptr : _cur.grffile->objectspec[objects[i]];
|
||||
ObjectSpec *spec = (objects[i] >= _cur.grffile->objectspec.size()) ? nullptr : _cur.grffile->objectspec[objects[i]].get();
|
||||
|
||||
if (spec == nullptr) {
|
||||
grfmsg(1, "ObjectMapSpriteGroup: Object with ID 0x%02X undefined, skipping", objects[i]);
|
||||
@@ -6815,7 +6784,7 @@ static void RoadTypeMapSpriteGroup(ByteReader *buf, uint8 idcount, RoadTramType
|
||||
|
||||
static void AirportMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
{
|
||||
if (_cur.grffile->airportspec == nullptr) {
|
||||
if (_cur.grffile->airportspec.empty()) {
|
||||
grfmsg(1, "AirportMapSpriteGroup: No airports defined, skipping");
|
||||
return;
|
||||
}
|
||||
@@ -6833,7 +6802,7 @@ static void AirportMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
if (!IsValidGroupID(groupid, "AirportMapSpriteGroup")) return;
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
AirportSpec *as = airports[i] >= NUM_AIRPORTS_PER_GRF ? nullptr : _cur.grffile->airportspec[airports[i]];
|
||||
AirportSpec *as = airports[i] >= _cur.grffile->airportspec.size() ? nullptr : _cur.grffile->airportspec[airports[i]].get();
|
||||
|
||||
if (as == nullptr) {
|
||||
grfmsg(1, "AirportMapSpriteGroup: Airport %d undefined, skipping", airports[i]);
|
||||
@@ -6846,7 +6815,7 @@ static void AirportMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
|
||||
static void AirportTileMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
{
|
||||
if (_cur.grffile->airtspec == nullptr) {
|
||||
if (_cur.grffile->airtspec.empty()) {
|
||||
grfmsg(1, "AirportTileMapSpriteGroup: No airport tiles defined, skipping");
|
||||
return;
|
||||
}
|
||||
@@ -6864,7 +6833,7 @@ static void AirportTileMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
if (!IsValidGroupID(groupid, "AirportTileMapSpriteGroup")) return;
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
AirportTileSpec *airtsp = airptiles[i] >= NUM_AIRPORTTILES_PER_GRF ? nullptr : _cur.grffile->airtspec[airptiles[i]];
|
||||
AirportTileSpec *airtsp = airptiles[i] >= _cur.grffile->airtspec.size() ? nullptr : _cur.grffile->airtspec[airptiles[i]].get();
|
||||
|
||||
if (airtsp == nullptr) {
|
||||
grfmsg(1, "AirportTileMapSpriteGroup: Airport tile %d undefined, skipping", airptiles[i]);
|
||||
@@ -6892,7 +6861,7 @@ static void RoadStopMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
if (ctype == CT_INVALID) continue;
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
RoadStopSpec *roadstopspec = (roadstops[i] >= _cur.grffile->roadstops.size()) ? nullptr : _cur.grffile->roadstops[roadstops[i]];
|
||||
RoadStopSpec *roadstopspec = (roadstops[i] >= _cur.grffile->roadstops.size()) ? nullptr : _cur.grffile->roadstops[roadstops[i]].get();
|
||||
|
||||
if (roadstopspec == nullptr) {
|
||||
grfmsg(1, "RoadStopMapSpriteGroup: Road stop with ID 0x%02X does not exist, skipping", roadstops[i]);
|
||||
@@ -6912,7 +6881,7 @@ static void RoadStopMapSpriteGroup(ByteReader *buf, uint8 idcount)
|
||||
}
|
||||
|
||||
for (uint i = 0; i < idcount; i++) {
|
||||
RoadStopSpec *roadstopspec = (roadstops[i] >= _cur.grffile->roadstops.size()) ? nullptr : _cur.grffile->roadstops[roadstops[i]];
|
||||
RoadStopSpec *roadstopspec = (roadstops[i] >= _cur.grffile->roadstops.size()) ? nullptr : _cur.grffile->roadstops[roadstops[i]].get();
|
||||
|
||||
if (roadstopspec == nullptr) {
|
||||
grfmsg(1, "RoadStopMapSpriteGroup: Road stop with ID 0x%02X does not exist, skipping.", roadstops[i]);
|
||||
@@ -7156,7 +7125,7 @@ static void FeatureNewName(ByteReader *buf)
|
||||
|
||||
switch (GB(id, 8, 8)) {
|
||||
case 0xC4: // Station class name
|
||||
if (GB(id, 0, 8) >= NUM_STATIONS_PER_GRF || _cur.grffile->stations == nullptr || _cur.grffile->stations[GB(id, 0, 8)] == nullptr) {
|
||||
if (GB(id, 0, 8) >= _cur.grffile->stations.size() || _cur.grffile->stations[GB(id, 0, 8)] == nullptr) {
|
||||
grfmsg(1, "FeatureNewName: Attempt to name undefined station 0x%X, ignoring", GB(id, 0, 8));
|
||||
} else {
|
||||
StationClassID cls_id = _cur.grffile->stations[GB(id, 0, 8)]->cls_id;
|
||||
@@ -7165,7 +7134,7 @@ static void FeatureNewName(ByteReader *buf)
|
||||
break;
|
||||
|
||||
case 0xC5: // Station name
|
||||
if (GB(id, 0, 8) >= NUM_STATIONS_PER_GRF || _cur.grffile->stations == nullptr || _cur.grffile->stations[GB(id, 0, 8)] == nullptr) {
|
||||
if (GB(id, 0, 8) >= _cur.grffile->stations.size() || _cur.grffile->stations[GB(id, 0, 8)] == nullptr) {
|
||||
grfmsg(1, "FeatureNewName: Attempt to name undefined station 0x%X, ignoring", GB(id, 0, 8));
|
||||
} else {
|
||||
_cur.grffile->stations[GB(id, 0, 8)]->name = AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, false, name, STR_UNDEFINED);
|
||||
@@ -7173,7 +7142,7 @@ static void FeatureNewName(ByteReader *buf)
|
||||
break;
|
||||
|
||||
case 0xC7: // Airporttile name
|
||||
if (GB(id, 0, 8) >= NUM_AIRPORTTILES_PER_GRF || _cur.grffile->airtspec == nullptr || _cur.grffile->airtspec[GB(id, 0, 8)] == nullptr) {
|
||||
if (GB(id, 0, 8) >= _cur.grffile->airtspec.size() || _cur.grffile->airtspec[GB(id, 0, 8)] == nullptr) {
|
||||
grfmsg(1, "FeatureNewName: Attempt to name undefined airport tile 0x%X, ignoring", GB(id, 0, 8));
|
||||
} else {
|
||||
_cur.grffile->airtspec[GB(id, 0, 8)]->name = AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, false, name, STR_UNDEFINED);
|
||||
@@ -7181,7 +7150,7 @@ static void FeatureNewName(ByteReader *buf)
|
||||
break;
|
||||
|
||||
case 0xC9: // House name
|
||||
if (GB(id, 0, 8) >= NUM_HOUSES_PER_GRF || _cur.grffile->housespec == nullptr || _cur.grffile->housespec[GB(id, 0, 8)] == nullptr) {
|
||||
if (GB(id, 0, 8) >= _cur.grffile->housespec.size() || _cur.grffile->housespec[GB(id, 0, 8)] == nullptr) {
|
||||
grfmsg(1, "FeatureNewName: Attempt to name undefined house 0x%X, ignoring.", GB(id, 0, 8));
|
||||
} else {
|
||||
_cur.grffile->housespec[GB(id, 0, 8)]->building_name = AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, false, name, STR_UNDEFINED);
|
||||
@@ -8648,8 +8617,8 @@ static void FeatureTownName(ByteReader *buf)
|
||||
bool new_scheme = _cur.grffile->grf_version >= 7;
|
||||
|
||||
byte lang = buf->ReadByte();
|
||||
StringID style = STR_UNDEFINED;
|
||||
|
||||
byte nb_gen = townname->nb_gen;
|
||||
do {
|
||||
ClrBit(lang, 7);
|
||||
|
||||
@@ -8658,53 +8627,48 @@ static void FeatureTownName(ByteReader *buf)
|
||||
std::string lang_name = TranslateTTDPatchCodes(grfid, lang, false, name);
|
||||
grfmsg(6, "FeatureTownName: lang 0x%X -> '%s'", lang, lang_name.c_str());
|
||||
|
||||
townname->name[nb_gen] = AddGRFString(grfid, id, lang, new_scheme, false, name, STR_UNDEFINED);
|
||||
style = AddGRFString(grfid, id, lang, new_scheme, false, name, STR_UNDEFINED);
|
||||
|
||||
lang = buf->ReadByte();
|
||||
} while (lang != 0);
|
||||
townname->id[nb_gen] = id;
|
||||
townname->nb_gen++;
|
||||
townname->styles.emplace_back(style, id);
|
||||
}
|
||||
|
||||
byte nb = buf->ReadByte();
|
||||
grfmsg(6, "FeatureTownName: %u parts", nb);
|
||||
uint8 parts = buf->ReadByte();
|
||||
grfmsg(6, "FeatureTownName: %u parts", parts);
|
||||
|
||||
townname->nbparts[id] = nb;
|
||||
townname->partlist[id] = CallocT<NamePartList>(nb);
|
||||
townname->partlists[id].reserve(parts);
|
||||
for (uint partnum = 0; partnum < parts; partnum++) {
|
||||
NamePartList &partlist = townname->partlists[id].emplace_back();
|
||||
uint8 texts = buf->ReadByte();
|
||||
partlist.bitstart = buf->ReadByte();
|
||||
partlist.bitcount = buf->ReadByte();
|
||||
partlist.maxprob = 0;
|
||||
grfmsg(6, "FeatureTownName: part %u contains %u texts and will use GB(seed, %u, %u)", partnum, texts, partlist.bitstart, partlist.bitcount);
|
||||
|
||||
for (int i = 0; i < nb; i++) {
|
||||
byte nbtext = buf->ReadByte();
|
||||
townname->partlist[id][i].bitstart = buf->ReadByte();
|
||||
townname->partlist[id][i].bitcount = buf->ReadByte();
|
||||
townname->partlist[id][i].maxprob = 0;
|
||||
townname->partlist[id][i].partcount = nbtext;
|
||||
townname->partlist[id][i].parts = CallocT<NamePart>(nbtext);
|
||||
grfmsg(6, "FeatureTownName: part %d contains %d texts and will use GB(seed, %d, %d)", i, nbtext, townname->partlist[id][i].bitstart, townname->partlist[id][i].bitcount);
|
||||
partlist.parts.reserve(texts);
|
||||
for (uint textnum = 0; textnum < texts; textnum++) {
|
||||
NamePart &part = partlist.parts.emplace_back();
|
||||
part.prob = buf->ReadByte();
|
||||
|
||||
for (int j = 0; j < nbtext; j++) {
|
||||
byte prob = buf->ReadByte();
|
||||
|
||||
if (HasBit(prob, 7)) {
|
||||
if (HasBit(part.prob, 7)) {
|
||||
byte ref_id = buf->ReadByte();
|
||||
|
||||
if (townname->nbparts[ref_id] == 0) {
|
||||
if (ref_id >= GRFTownName::MAX_LISTS || townname->partlists[ref_id].empty()) {
|
||||
grfmsg(0, "FeatureTownName: definition 0x%02X doesn't exist, deactivating", ref_id);
|
||||
DelGRFTownName(grfid);
|
||||
DisableGrf(STR_NEWGRF_ERROR_INVALID_ID);
|
||||
return;
|
||||
}
|
||||
|
||||
grfmsg(6, "FeatureTownName: part %d, text %d, uses intermediate definition 0x%02X (with probability %d)", i, j, ref_id, prob & 0x7F);
|
||||
townname->partlist[id][i].parts[j].data.id = ref_id;
|
||||
part.id = ref_id;
|
||||
grfmsg(6, "FeatureTownName: part %u, text %u, uses intermediate definition 0x%02X (with probability %u)", partnum, textnum, ref_id, part.prob & 0x7F);
|
||||
} else {
|
||||
const char *text = buf->ReadString();
|
||||
townname->partlist[id][i].parts[j].data.text = stredup(TranslateTTDPatchCodes(grfid, 0, false, text).c_str());
|
||||
grfmsg(6, "FeatureTownName: part %d, text %d, '%s' (with probability %d)", i, j, townname->partlist[id][i].parts[j].data.text, prob);
|
||||
part.text = TranslateTTDPatchCodes(grfid, 0, false, text);
|
||||
grfmsg(6, "FeatureTownName: part %u, text %u, '%s' (with probability %u)", partnum, textnum, part.text.c_str(), part.prob);
|
||||
}
|
||||
townname->partlist[id][i].parts[j].prob = prob;
|
||||
townname->partlist[id][i].maxprob += GB(prob, 0, 7);
|
||||
partlist.maxprob += GB(part.prob, 0, 7);
|
||||
}
|
||||
grfmsg(6, "FeatureTownName: part %d, total probability %d", i, townname->partlist[id][i].maxprob);
|
||||
grfmsg(6, "FeatureTownName: part %u, total probability %u", partnum, partlist.maxprob);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10313,19 +10277,7 @@ bool HasTTDPatchFlagBeenObserved(uint flag)
|
||||
static void ResetCustomStations()
|
||||
{
|
||||
for (GRFFile * const file : _grf_files) {
|
||||
StationSpec **&stations = file->stations;
|
||||
if (stations == nullptr) continue;
|
||||
for (uint i = 0; i < NUM_STATIONS_PER_GRF; i++) {
|
||||
if (stations[i] == nullptr) continue;
|
||||
StationSpec *statspec = stations[i];
|
||||
|
||||
/* Release this station */
|
||||
delete statspec;
|
||||
}
|
||||
|
||||
/* Free and reset the station data */
|
||||
free(stations);
|
||||
stations = nullptr;
|
||||
file->stations.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10333,14 +10285,7 @@ static void ResetCustomStations()
|
||||
static void ResetCustomHouses()
|
||||
{
|
||||
for (GRFFile * const file : _grf_files) {
|
||||
HouseSpec **&housespec = file->housespec;
|
||||
if (housespec == nullptr) continue;
|
||||
for (uint i = 0; i < NUM_HOUSES_PER_GRF; i++) {
|
||||
free(housespec[i]);
|
||||
}
|
||||
|
||||
free(housespec);
|
||||
housespec = nullptr;
|
||||
file->housespec.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10348,36 +10293,20 @@ static void ResetCustomHouses()
|
||||
static void ResetCustomAirports()
|
||||
{
|
||||
for (GRFFile * const file : _grf_files) {
|
||||
AirportSpec **aslist = file->airportspec;
|
||||
if (aslist != nullptr) {
|
||||
for (uint i = 0; i < NUM_AIRPORTS_PER_GRF; i++) {
|
||||
AirportSpec *as = aslist[i];
|
||||
|
||||
if (as != nullptr) {
|
||||
/* We need to remove the tiles layouts */
|
||||
for (int j = 0; j < as->num_table; j++) {
|
||||
/* remove the individual layouts */
|
||||
free(as->table[j]);
|
||||
}
|
||||
free(as->table);
|
||||
free(as->depot_table);
|
||||
free(as->rotation);
|
||||
|
||||
free(as);
|
||||
for (auto &as : file->airportspec) {
|
||||
if (as != nullptr) {
|
||||
/* We need to remove the tiles layouts */
|
||||
for (int j = 0; j < as->num_table; j++) {
|
||||
/* remove the individual layouts */
|
||||
free(as->table[j]);
|
||||
}
|
||||
free(as->table);
|
||||
free(as->depot_table);
|
||||
free(as->rotation);
|
||||
}
|
||||
free(aslist);
|
||||
file->airportspec = nullptr;
|
||||
}
|
||||
|
||||
AirportTileSpec **&airporttilespec = file->airtspec;
|
||||
if (airporttilespec != nullptr) {
|
||||
for (uint i = 0; i < NUM_AIRPORTTILES_PER_GRF; i++) {
|
||||
free(airporttilespec[i]);
|
||||
}
|
||||
free(airporttilespec);
|
||||
airporttilespec = nullptr;
|
||||
}
|
||||
file->airportspec.clear();
|
||||
file->airtspec.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10385,28 +10314,8 @@ static void ResetCustomAirports()
|
||||
static void ResetCustomIndustries()
|
||||
{
|
||||
for (GRFFile * const file : _grf_files) {
|
||||
IndustrySpec **&industryspec = file->industryspec;
|
||||
IndustryTileSpec **&indtspec = file->indtspec;
|
||||
|
||||
/* We are verifiying both tiles and industries specs loaded from the grf file
|
||||
* First, let's deal with industryspec */
|
||||
if (industryspec != nullptr) {
|
||||
for (uint i = 0; i < NUM_INDUSTRYTYPES_PER_GRF; i++) {
|
||||
IndustrySpec *ind = industryspec[i];
|
||||
delete ind;
|
||||
}
|
||||
|
||||
free(industryspec);
|
||||
industryspec = nullptr;
|
||||
}
|
||||
|
||||
if (indtspec == nullptr) continue;
|
||||
for (uint i = 0; i < NUM_INDUSTRYTILES_PER_GRF; i++) {
|
||||
free(indtspec[i]);
|
||||
}
|
||||
|
||||
free(indtspec);
|
||||
indtspec = nullptr;
|
||||
file->industryspec.clear();
|
||||
file->indtspec.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10414,24 +10323,14 @@ static void ResetCustomIndustries()
|
||||
static void ResetCustomObjects()
|
||||
{
|
||||
for (GRFFile * const file : _grf_files) {
|
||||
std::vector<ObjectSpec *> &objectspec = file->objectspec;
|
||||
for (ObjectSpec *spec : objectspec) {
|
||||
free(spec);
|
||||
}
|
||||
|
||||
objectspec.clear();
|
||||
file->objectspec.clear();
|
||||
}
|
||||
}
|
||||
|
||||
static void ResetCustomRoadStops()
|
||||
{
|
||||
for (auto file : _grf_files) {
|
||||
std::vector<RoadStopSpec *> &roadstops = file->roadstops;
|
||||
for (RoadStopSpec *spec : roadstops) {
|
||||
free(spec);
|
||||
}
|
||||
|
||||
roadstops.clear();
|
||||
file->roadstops.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10482,7 +10381,7 @@ void ResetNewGRFData()
|
||||
ResetRoadTypes();
|
||||
|
||||
/* Allocate temporary refit/cargo class data */
|
||||
_gted = CallocT<GRFTempEngineData>(Engine::GetPoolSize());
|
||||
_gted.resize(Engine::GetPoolSize());
|
||||
|
||||
/* Fill rail type label temporary data for default trains */
|
||||
for (const Engine *e : Engine::IterateType(VEH_TRAIN)) {
|
||||
@@ -11021,17 +10920,17 @@ static void FinaliseHouseArray()
|
||||
* minimum introduction date to 0.
|
||||
*/
|
||||
for (GRFFile * const file : _grf_files) {
|
||||
HouseSpec **&housespec = file->housespec;
|
||||
if (housespec == nullptr) continue;
|
||||
if (file->housespec.empty()) continue;
|
||||
|
||||
for (int i = 0; i < NUM_HOUSES_PER_GRF; i++) {
|
||||
HouseSpec *hs = housespec[i];
|
||||
size_t num_houses = file->housespec.size();
|
||||
for (size_t i = 0; i < num_houses; i++) {
|
||||
HouseSpec *hs = file->housespec[i].get();
|
||||
|
||||
if (hs == nullptr) continue;
|
||||
|
||||
const HouseSpec *next1 = (i + 1 < NUM_HOUSES_PER_GRF ? housespec[i + 1] : nullptr);
|
||||
const HouseSpec *next2 = (i + 2 < NUM_HOUSES_PER_GRF ? housespec[i + 2] : nullptr);
|
||||
const HouseSpec *next3 = (i + 3 < NUM_HOUSES_PER_GRF ? housespec[i + 3] : nullptr);
|
||||
const HouseSpec *next1 = (i + 1 < num_houses ? file->housespec[i + 1].get() : nullptr);
|
||||
const HouseSpec *next2 = (i + 2 < num_houses ? file->housespec[i + 2].get() : nullptr);
|
||||
const HouseSpec *next3 = (i + 3 < num_houses ? file->housespec[i + 3].get() : nullptr);
|
||||
|
||||
if (!IsHouseSpecValid(hs, next1, next2, next3, file->filename)) continue;
|
||||
|
||||
@@ -11039,7 +10938,7 @@ static void FinaliseHouseArray()
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < NUM_HOUSES; i++) {
|
||||
for (size_t i = 0; i < NUM_HOUSES; i++) {
|
||||
HouseSpec *hs = HouseSpec::Get(i);
|
||||
const HouseSpec *next1 = (i + 1 < NUM_HOUSES ? HouseSpec::Get(i + 1) : nullptr);
|
||||
const HouseSpec *next2 = (i + 2 < NUM_HOUSES ? HouseSpec::Get(i + 2) : nullptr);
|
||||
@@ -11083,50 +10982,41 @@ static void FinaliseHouseArray()
|
||||
static void FinaliseIndustriesArray()
|
||||
{
|
||||
for (GRFFile * const file : _grf_files) {
|
||||
IndustrySpec **&industryspec = file->industryspec;
|
||||
IndustryTileSpec **&indtspec = file->indtspec;
|
||||
if (industryspec != nullptr) {
|
||||
for (int i = 0; i < NUM_INDUSTRYTYPES_PER_GRF; i++) {
|
||||
IndustrySpec *indsp = industryspec[i];
|
||||
for (const auto &indsp : file->industryspec) {
|
||||
if (indsp == nullptr || !indsp->enabled) continue;
|
||||
|
||||
if (indsp != nullptr && indsp->enabled) {
|
||||
StringID strid;
|
||||
/* process the conversion of text at the end, so to be sure everything will be fine
|
||||
* and available. Check if it does not return undefind marker, which is a very good sign of a
|
||||
* substitute industry who has not changed the string been examined, thus using it as such */
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->name);
|
||||
if (strid != STR_UNDEFINED) indsp->name = strid;
|
||||
StringID strid;
|
||||
/* process the conversion of text at the end, so to be sure everything will be fine
|
||||
* and available. Check if it does not return undefind marker, which is a very good sign of a
|
||||
* substitute industry who has not changed the string been examined, thus using it as such */
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->name);
|
||||
if (strid != STR_UNDEFINED) indsp->name = strid;
|
||||
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->closure_text);
|
||||
if (strid != STR_UNDEFINED) indsp->closure_text = strid;
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->closure_text);
|
||||
if (strid != STR_UNDEFINED) indsp->closure_text = strid;
|
||||
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->production_up_text);
|
||||
if (strid != STR_UNDEFINED) indsp->production_up_text = strid;
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->production_up_text);
|
||||
if (strid != STR_UNDEFINED) indsp->production_up_text = strid;
|
||||
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->production_down_text);
|
||||
if (strid != STR_UNDEFINED) indsp->production_down_text = strid;
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->production_down_text);
|
||||
if (strid != STR_UNDEFINED) indsp->production_down_text = strid;
|
||||
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->new_industry_text);
|
||||
if (strid != STR_UNDEFINED) indsp->new_industry_text = strid;
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->new_industry_text);
|
||||
if (strid != STR_UNDEFINED) indsp->new_industry_text = strid;
|
||||
|
||||
if (indsp->station_name != STR_NULL) {
|
||||
/* STR_NULL (0) can be set by grf. It has a meaning regarding assignation of the
|
||||
* station's name. Don't want to lose the value, therefore, do not process. */
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->station_name);
|
||||
if (strid != STR_UNDEFINED) indsp->station_name = strid;
|
||||
}
|
||||
|
||||
_industry_mngr.SetEntitySpec(indsp);
|
||||
}
|
||||
if (indsp->station_name != STR_NULL) {
|
||||
/* STR_NULL (0) can be set by grf. It has a meaning regarding assignation of the
|
||||
* station's name. Don't want to lose the value, therefore, do not process. */
|
||||
strid = GetGRFStringID(indsp->grf_prop.grffile->grfid, indsp->station_name);
|
||||
if (strid != STR_UNDEFINED) indsp->station_name = strid;
|
||||
}
|
||||
|
||||
_industry_mngr.SetEntitySpec(indsp.get());
|
||||
}
|
||||
|
||||
if (indtspec != nullptr) {
|
||||
for (int i = 0; i < NUM_INDUSTRYTILES_PER_GRF; i++) {
|
||||
IndustryTileSpec *indtsp = indtspec[i];
|
||||
if (indtsp != nullptr) {
|
||||
_industile_mngr.SetEntitySpec(indtsp);
|
||||
}
|
||||
for (const auto &indtsp : file->indtspec) {
|
||||
if (indtsp != nullptr) {
|
||||
_industile_mngr.SetEntitySpec(indtsp.get());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11152,9 +11042,9 @@ static void FinaliseIndustriesArray()
|
||||
static void FinaliseObjectsArray()
|
||||
{
|
||||
for (GRFFile * const file : _grf_files) {
|
||||
for (ObjectSpec *spec : file->objectspec) {
|
||||
if (spec != nullptr && spec->grf_prop.grffile != nullptr && spec->IsEnabled()) {
|
||||
_object_mngr.SetEntitySpec(spec);
|
||||
for (auto &objectspec : file->objectspec) {
|
||||
if (objectspec != nullptr && objectspec->grf_prop.grffile != nullptr && objectspec->IsEnabled()) {
|
||||
_object_mngr.SetEntitySpec(objectspec.get());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11170,21 +11060,15 @@ static void FinaliseObjectsArray()
|
||||
static void FinaliseAirportsArray()
|
||||
{
|
||||
for (GRFFile * const file : _grf_files) {
|
||||
AirportSpec **&airportspec = file->airportspec;
|
||||
if (airportspec != nullptr) {
|
||||
for (int i = 0; i < NUM_AIRPORTS_PER_GRF; i++) {
|
||||
if (airportspec[i] != nullptr && airportspec[i]->enabled) {
|
||||
_airport_mngr.SetEntitySpec(airportspec[i]);
|
||||
}
|
||||
for (auto &as : file->airportspec) {
|
||||
if (as != nullptr && as->enabled) {
|
||||
_airport_mngr.SetEntitySpec(as.get());
|
||||
}
|
||||
}
|
||||
|
||||
AirportTileSpec **&airporttilespec = file->airtspec;
|
||||
if (airporttilespec != nullptr) {
|
||||
for (uint i = 0; i < NUM_AIRPORTTILES_PER_GRF; i++) {
|
||||
if (airporttilespec[i] != nullptr && airporttilespec[i]->enabled) {
|
||||
_airporttile_mngr.SetEntitySpec(airporttilespec[i]);
|
||||
}
|
||||
for (auto &ats : file->airtspec) {
|
||||
if (ats != nullptr && ats->enabled) {
|
||||
_airporttile_mngr.SetEntitySpec(ats.get());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11692,7 +11576,7 @@ static void AfterLoadGRFs()
|
||||
FinalisePriceBaseMultipliers();
|
||||
|
||||
/* Deallocate temporary loading data */
|
||||
free(_gted);
|
||||
_gted.clear();
|
||||
_grm_sprites.clear();
|
||||
}
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user