Merge branch 'save_ext' into enhanced_viewport_overlay-sx
This commit is contained in:
@@ -172,6 +172,7 @@ install: bundle
|
||||
$(Q)install -d "$(INSTALL_BINARY_DIR)"
|
||||
$(Q)install -d "$(INSTALL_ICON_DIR)"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/ai"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/game"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/baseset"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/lang"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/scripts"
|
||||
@@ -182,6 +183,7 @@ else
|
||||
endif
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/lang/"* "$(INSTALL_DATA_DIR)/lang"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/ai/"* "$(INSTALL_DATA_DIR)/ai"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/game/"* "$(INSTALL_DATA_DIR)/game"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/baseset/"* "$(INSTALL_DATA_DIR)/baseset"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/scripts/"* "$(INSTALL_DATA_DIR)/scripts"
|
||||
ifndef DO_NOT_INSTALL_DOCS
|
||||
|
@@ -99,7 +99,7 @@ elif [ -d "$ROOT_DIR/.git" ]; then
|
||||
# No rev? Maybe it is a custom git-svn clone
|
||||
REV_NR=`LC_ALL=C git log --pretty=format:%b --grep="git-svn-id:.*@[0-9]*" -1 | sed "s@.*\@\([0-9]*\).*@\1@"`
|
||||
fi
|
||||
TAG="`git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null | sed 's@\^0$@@'`"
|
||||
TAG="`git describe --tags 2>/dev/null`"
|
||||
if [ -n "$TAG" ]; then
|
||||
BRANCH=""
|
||||
REV="$TAG"
|
||||
|
@@ -886,6 +886,8 @@
|
||||
<ClCompile Include="..\src\saveload\town_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\vehicle_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\waypoint_sl.cpp" />
|
||||
<ClInclude Include="..\src\saveload\extended_ver_sl.h" />
|
||||
<ClCompile Include="..\src\saveload\extended_ver_sl.cpp" />
|
||||
<ClInclude Include="..\src\table\airport_defaults.h" />
|
||||
<ClInclude Include="..\src\table\airport_movement.h" />
|
||||
<ClInclude Include="..\src\table\airporttile_ids.h" />
|
||||
|
@@ -1836,6 +1836,12 @@
|
||||
<ClCompile Include="..\src\saveload\waypoint_sl.cpp">
|
||||
<Filter>Save/Load handlers</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\src\saveload\extended_ver_sl.h">
|
||||
<Filter>Save/Load handlers</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\src\saveload\extended_ver_sl.cpp">
|
||||
<Filter>Save/Load handlers</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\src\table\airport_defaults.h">
|
||||
<Filter>Tables</Filter>
|
||||
</ClInclude>
|
||||
|
@@ -809,7 +809,7 @@ static byte AircraftGetEntryPoint(const Aircraft *v, const AirportFTAClass *apc,
|
||||
/* We are northwest or southeast of the airport */
|
||||
dir = delta_y < 0 ? DIAGDIR_NW : DIAGDIR_SE;
|
||||
}
|
||||
dir = ChangeDiagDir(dir, (DiagDirDiff)ReverseDiagDir(DirToDiagDir(rotation)));
|
||||
dir = ChangeDiagDir(dir, DiagDirDifference(DIAGDIR_NE, DirToDiagDir(rotation)));
|
||||
return apc->entry_points[dir];
|
||||
}
|
||||
|
||||
|
@@ -1764,7 +1764,8 @@ struct CompanyInfrastructureWindow : Window
|
||||
|
||||
if (this->railtypes != RAILTYPES_NONE) {
|
||||
/* Draw name of each valid railtype. */
|
||||
for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) {
|
||||
RailType rt;
|
||||
FOR_ALL_SORTED_RAILTYPES(rt) {
|
||||
if (HasBit(this->railtypes, rt)) {
|
||||
SetDParam(0, GetRailTypeInfo(rt)->strings.name);
|
||||
DrawString(r.left + offs_left, r.right - offs_right, y += FONT_HEIGHT_NORMAL, STR_WHITE_STRING);
|
||||
@@ -1781,7 +1782,8 @@ struct CompanyInfrastructureWindow : Window
|
||||
case WID_CI_RAIL_COUNT: {
|
||||
/* Draw infrastructure count for each valid railtype. */
|
||||
uint32 rail_total = c->infrastructure.GetRailTotal();
|
||||
for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) {
|
||||
RailType rt;
|
||||
FOR_ALL_SORTED_RAILTYPES(rt) {
|
||||
if (HasBit(this->railtypes, rt)) {
|
||||
this->DrawCountLine(r, y, c->infrastructure.rail[rt], RailMaintenanceCost(rt, c->infrastructure.rail[rt], rail_total));
|
||||
}
|
||||
|
@@ -229,6 +229,7 @@ struct DepotWindow : Window {
|
||||
VehicleID vehicle_over; ///< Rail vehicle over which another one is dragged, \c INVALID_VEHICLE if none.
|
||||
VehicleType type;
|
||||
bool generate_list;
|
||||
bool sell_hovered; ///< A vehicle is being dragged/hovered over the sell button.
|
||||
VehicleList vehicle_list;
|
||||
VehicleList wagon_list;
|
||||
uint unitnumber_digits;
|
||||
@@ -243,6 +244,7 @@ struct DepotWindow : Window {
|
||||
this->sel = INVALID_VEHICLE;
|
||||
this->vehicle_over = INVALID_VEHICLE;
|
||||
this->generate_list = true;
|
||||
this->sell_hovered = false;
|
||||
this->type = type;
|
||||
this->num_columns = 1; // for non-trains this gets set in FinishInitNested()
|
||||
this->unitnumber_digits = 2;
|
||||
@@ -867,11 +869,24 @@ struct DepotWindow : Window {
|
||||
this->sel = INVALID_VEHICLE;
|
||||
this->vehicle_over = INVALID_VEHICLE;
|
||||
this->SetWidgetDirty(WID_D_MATRIX);
|
||||
|
||||
if (this->sell_hovered) {
|
||||
this->SetWidgetLoweredState(WID_D_SELL, false);
|
||||
this->SetWidgetDirty(WID_D_SELL);
|
||||
this->sell_hovered = false;
|
||||
}
|
||||
}
|
||||
|
||||
virtual void OnMouseDrag(Point pt, int widget)
|
||||
{
|
||||
if (this->type != VEH_TRAIN || this->sel == INVALID_VEHICLE) return;
|
||||
if (this->sel == INVALID_VEHICLE) return;
|
||||
bool is_sell_widget = widget == WID_D_SELL;
|
||||
if (is_sell_widget != this->sell_hovered) {
|
||||
this->sell_hovered = is_sell_widget;
|
||||
this->SetWidgetLoweredState(WID_D_SELL, is_sell_widget);
|
||||
this->SetWidgetDirty(WID_D_SELL);
|
||||
}
|
||||
if (this->type != VEH_TRAIN) return;
|
||||
|
||||
/* A rail vehicle is dragged.. */
|
||||
if (widget != WID_D_MATRIX) { // ..outside of the depot matrix.
|
||||
@@ -958,7 +973,9 @@ struct DepotWindow : Window {
|
||||
default:
|
||||
this->sel = INVALID_VEHICLE;
|
||||
this->SetDirty();
|
||||
break;
|
||||
}
|
||||
this->sell_hovered = false;
|
||||
_cursor.vehchain = false;
|
||||
}
|
||||
|
||||
|
@@ -61,11 +61,11 @@ static inline Direction ReverseDir(Direction d)
|
||||
|
||||
|
||||
/**
|
||||
* Calculate the difference between to directions
|
||||
* Calculate the difference between two directions
|
||||
*
|
||||
* @param d0 The first direction as the base
|
||||
* @param d1 The second direction as the offset from the base
|
||||
* @return The difference how the second directions drifts of the first one.
|
||||
* @return The difference how the second direction drifts of the first one.
|
||||
*/
|
||||
static inline DirDiff DirDifference(Direction d0, Direction d1)
|
||||
{
|
||||
@@ -79,7 +79,7 @@ static inline DirDiff DirDifference(Direction d0, Direction d1)
|
||||
/**
|
||||
* Applies two differences together
|
||||
*
|
||||
* This function adds two differences together and return the resulting
|
||||
* This function adds two differences together and returns the resulting
|
||||
* difference. So adding two DIRDIFF_REVERSE together results in the
|
||||
* DIRDIFF_SAME difference.
|
||||
*
|
||||
@@ -123,6 +123,20 @@ static inline DiagDirection ReverseDiagDir(DiagDirection d)
|
||||
return (DiagDirection)(2 ^ d);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate the difference between two DiagDirection values
|
||||
*
|
||||
* @param d0 The first direction as the base
|
||||
* @param d1 The second direction as the offset from the base
|
||||
* @return The difference how the second direction drifts of the first one.
|
||||
*/
|
||||
static inline DiagDirDiff DiagDirDifference(DiagDirection d0, DiagDirection d1)
|
||||
{
|
||||
assert(IsValidDiagDirection(d0));
|
||||
assert(IsValidDiagDirection(d1));
|
||||
/* Cast to uint so compiler can use bitmask. Result can never be negative. */
|
||||
return (DiagDirDiff)((uint)(d0 - d1) % 4);
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies a difference on a DiagDirection
|
||||
|
@@ -16,7 +16,6 @@
|
||||
#include "fileio_func.h"
|
||||
|
||||
#if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L) || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 500)
|
||||
# define WITH_FDATASYNC
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
@@ -80,7 +79,7 @@ bool IniFile::SaveToDisk(const char *filename)
|
||||
* APIs to do so. We only need to flush the data as the metadata itself
|
||||
* (modification date etc.) is not important to us; only the real data is.
|
||||
*/
|
||||
#ifdef WITH_FDATASYNC
|
||||
#if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0
|
||||
int ret = fdatasync(fileno(f));
|
||||
fclose(f);
|
||||
if (ret != 0) return false;
|
||||
|
@@ -41,7 +41,7 @@ STR_CARGO_PLURAL_VALUABLES :مقتنيات
|
||||
STR_CARGO_PLURAL_COPPER_ORE :منجم نحاس
|
||||
STR_CARGO_PLURAL_MAIZE :ذرة
|
||||
STR_CARGO_PLURAL_FRUIT :فواكة
|
||||
STR_CARGO_PLURAL_DIAMONDS :جواهر
|
||||
STR_CARGO_PLURAL_DIAMONDS :ألماس
|
||||
STR_CARGO_PLURAL_FOOD :طعام
|
||||
STR_CARGO_PLURAL_PAPER :ورق
|
||||
STR_CARGO_PLURAL_GOLD :ذهب
|
||||
@@ -97,10 +97,10 @@ STR_CARGO_SINGULAR_FIZZY_DRINK :مشروب غا
|
||||
STR_QUANTITY_NOTHING :
|
||||
STR_QUANTITY_PASSENGERS :{COMMA} راكب
|
||||
STR_QUANTITY_COAL :{WEIGHT_LONG} من الفحم
|
||||
STR_QUANTITY_MAIL :{COMMA} صندوق من البريد
|
||||
STR_QUANTITY_MAIL :{COMMA}{NBSP} كيس بريد
|
||||
STR_QUANTITY_OIL :{VOLUME_LONG} من النفط
|
||||
STR_QUANTITY_LIVESTOCK :{COMMA}راس من الماشية
|
||||
STR_QUANTITY_GOODS :{COMMA} قفص من البضائع
|
||||
STR_QUANTITY_LIVESTOCK :{COMMA}{NBSP}رأس ماشية
|
||||
STR_QUANTITY_GOODS :{COMMA}{NBSP} صندوق بضائع
|
||||
STR_QUANTITY_GRAIN :{WEIGHT_LONG} من الحبوب
|
||||
STR_QUANTITY_WOOD :{WEIGHT_LONG} من الخشب
|
||||
STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} من خام الحديد
|
||||
@@ -109,16 +109,16 @@ STR_QUANTITY_VALUABLES :{COMMA}صندو
|
||||
STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} من خام النحاس
|
||||
STR_QUANTITY_MAIZE :{WEIGHT_LONG} من الذرة
|
||||
STR_QUANTITY_FRUIT :{WEIGHT_LONG} من الفواكة
|
||||
STR_QUANTITY_DIAMONDS :{COMMA}كيس من الجواهر
|
||||
STR_QUANTITY_DIAMONDS :{COMMA}{NBSP}كيس ألماس
|
||||
STR_QUANTITY_FOOD :{WEIGHT_LONG} من الطعام
|
||||
STR_QUANTITY_PAPER :{WEIGHT_LONG} من الورق
|
||||
STR_QUANTITY_GOLD :{COMMA}كيس من الذهب
|
||||
STR_QUANTITY_GOLD :{COMMA}{NBSP} كيس ذهب
|
||||
STR_QUANTITY_WATER :{VOLUME_LONG} من المياة
|
||||
STR_QUANTITY_WHEAT :{WEIGHT_LONG} من القمح
|
||||
STR_QUANTITY_RUBBER :{VOLUME_LONG} من المطاط
|
||||
STR_QUANTITY_SUGAR :{WEIGHT_LONG} من السكر
|
||||
STR_QUANTITY_TOYS :{COMMA}الالعاب
|
||||
STR_QUANTITY_SWEETS :{COMMA} كيس من الحلويات
|
||||
STR_QUANTITY_TOYS :{COMMA}{NBSP} لعبة
|
||||
STR_QUANTITY_SWEETS :{COMMA}{NBSP} كيس حلويات
|
||||
STR_QUANTITY_COLA :{VOLUME_LONG} من الكولا
|
||||
STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} من الحلاوة القطنية
|
||||
STR_QUANTITY_BUBBLES :{COMMA}فقاعات
|
||||
@@ -165,12 +165,12 @@ STR_ABBREV_NONE :{TINY_FONT}لا
|
||||
STR_ABBREV_ALL :{TINY_FONT}الكل
|
||||
|
||||
# 'Mode' of transport for cargoes
|
||||
STR_PASSENGERS :{COMMA} ركاب
|
||||
STR_BAGS :{COMMA} صناديق
|
||||
STR_TONS :{COMMA} اطنان/طن
|
||||
STR_LITERS :{COMMA} لتر
|
||||
STR_PASSENGERS :{COMMA}{NBSP} راكب
|
||||
STR_BAGS :{COMMA}{NBSP} كيس
|
||||
STR_TONS :{COMMA}{NBSP} طن
|
||||
STR_LITERS :{COMMA}{NBSP} لتر
|
||||
STR_ITEMS :{COMMA} وحدة
|
||||
STR_CRATES :{COMMA} صناديق
|
||||
STR_CRATES :{COMMA}{NBSP} صندوق
|
||||
|
||||
# Colours, do not shuffle
|
||||
STR_COLOUR_DARK_BLUE :ازرق غامق
|
||||
@@ -191,32 +191,32 @@ STR_COLOUR_GREY :رمادي
|
||||
STR_COLOUR_WHITE :ابيض
|
||||
|
||||
# Units used in OpenTTD
|
||||
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}ميل/س
|
||||
STR_UNITS_VELOCITY_METRIC :{COMMA}كم/س
|
||||
STR_UNITS_VELOCITY_SI :{COMMA}م/ث
|
||||
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}ميل/س
|
||||
STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}كم/س
|
||||
STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}م/ث
|
||||
|
||||
STR_UNITS_POWER_IMPERIAL :{COMMA}حصان
|
||||
STR_UNITS_POWER_METRIC :{COMMA}حصان
|
||||
STR_UNITS_POWER_SI :{COMMA}ك واط
|
||||
STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}حصان
|
||||
STR_UNITS_POWER_METRIC :{COMMA}{NBSP}حصان
|
||||
STR_UNITS_POWER_SI :{COMMA}{NBSP}ك واط
|
||||
|
||||
STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}ت
|
||||
STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}طن
|
||||
STR_UNITS_WEIGHT_SHORT_SI :{COMMA}كجم
|
||||
STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}{NBSP} طن
|
||||
STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}{NBSP}طن
|
||||
STR_UNITS_WEIGHT_SHORT_SI :{COMMA}{NBSP}كجم
|
||||
|
||||
STR_UNITS_WEIGHT_LONG_METRIC :{COMMA} طن
|
||||
STR_UNITS_WEIGHT_LONG_SI :{COMMA}كجم
|
||||
STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP} طن
|
||||
STR_UNITS_WEIGHT_LONG_SI :{COMMA}{NBSP}كجم
|
||||
|
||||
STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}غال
|
||||
STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}ل
|
||||
STR_UNITS_VOLUME_SHORT_SI :{COMMA}م3
|
||||
STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}{NBSP}غال
|
||||
STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}{NBSP}ل
|
||||
STR_UNITS_VOLUME_SHORT_SI :{COMMA}{NBSP}م3
|
||||
|
||||
STR_UNITS_VOLUME_LONG_METRIC :{COMMA} لتر
|
||||
STR_UNITS_VOLUME_LONG_SI :{COMMA}م3
|
||||
STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP} لتر
|
||||
STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}م3
|
||||
|
||||
STR_UNITS_FORCE_SI :{COMMA} كيلو نيوتن
|
||||
STR_UNITS_FORCE_SI :{COMMA}{NBSP} كيلو نيوتن
|
||||
|
||||
STR_UNITS_HEIGHT_IMPERIAL :{COMMA} قدم
|
||||
STR_UNITS_HEIGHT_SI :{COMMA} متر
|
||||
STR_UNITS_HEIGHT_IMPERIAL :{COMMA}{NBSP} قدم
|
||||
STR_UNITS_HEIGHT_SI :{COMMA}{NBSP} متر
|
||||
|
||||
# Common window strings
|
||||
STR_LIST_FILTER_OSKTITLE :{BLACK} ادخل فلتر
|
||||
@@ -286,7 +286,7 @@ STR_SORT_BY_ENGINE_ID :نوع المح
|
||||
STR_SORT_BY_COST :التكلفة
|
||||
STR_SORT_BY_POWER :الطاقة
|
||||
STR_SORT_BY_TRACTIVE_EFFORT :قوة الجذب
|
||||
STR_SORT_BY_INTRO_DATE :بداية التشغيل
|
||||
STR_SORT_BY_INTRO_DATE :بداية الإنتاج
|
||||
STR_SORT_BY_RUNNING_COST :تكلفة التشغيل
|
||||
STR_SORT_BY_POWER_VS_RUNNING_COST :القوة/تكلفة التشغيل
|
||||
STR_SORT_BY_CARGO_CAPACITY :سعة الشحن
|
||||
@@ -351,6 +351,7 @@ STR_SCENEDIT_FILE_MENU_QUIT :انهاء
|
||||
|
||||
############ range for settings menu starts
|
||||
STR_SETTINGS_MENU_GAME_OPTIONS :إعدادات اللعبه
|
||||
STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :الإعدادات
|
||||
STR_SETTINGS_MENU_SCRIPT_SETTINGS :الذكاء الصناعي/ اعدادات اللعبة
|
||||
STR_SETTINGS_MENU_NEWGRF_SETTINGS :إعدادات اﻹضافات
|
||||
STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :خيارات الشفافية
|
||||
@@ -941,7 +942,12 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}دقة
|
||||
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}اختر دقة الشاشة
|
||||
STR_GAME_OPTIONS_RESOLUTION_OTHER :اخرى
|
||||
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :حجم اللوحة
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :حدد العنصر المطلوب
|
||||
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :تقريب عادي
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :تقريب ×2
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :تقريب ×4
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK} الواجهة الرسومية الاساسية
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK} اختر مجموعة الواجهة الرسومية
|
||||
@@ -1036,6 +1042,7 @@ STR_TERRAIN_TYPE_VERY_FLAT :مسطح تما
|
||||
STR_TERRAIN_TYPE_FLAT :مسطح
|
||||
STR_TERRAIN_TYPE_HILLY :مرتفعات - هضاب
|
||||
STR_TERRAIN_TYPE_MOUNTAINOUS :جبال
|
||||
STR_TERRAIN_TYPE_ALPINIST :شاهق
|
||||
|
||||
STR_CITY_APPROVAL_PERMISSIVE :متساهل
|
||||
STR_CITY_APPROVAL_TOLERANT :متقبل
|
||||
@@ -1044,6 +1051,7 @@ STR_CITY_APPROVAL_HOSTILE :معاد
|
||||
STR_WARNING_NO_SUITABLE_AI :{WHITE}لايوجد ذكاء اصطناعي متاح ...{}تستطيع تجميل العديد من الذكاء الاصطناعي عن طريق اللانترنت
|
||||
|
||||
# Settings tree window
|
||||
STR_CONFIG_SETTING_TREE_CAPTION :الإعدادات
|
||||
STR_CONFIG_SETTING_EXPAND_ALL :مدد الكل
|
||||
STR_CONFIG_SETTING_COLLAPSE_ALL :إسحب الكل
|
||||
|
||||
@@ -1053,11 +1061,11 @@ STR_CONFIG_SETTING_RESTRICT_BASIC :اﻹعدادا
|
||||
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}احصر القائمة على انواع اعدادات محددة
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :كل الاعدادات
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :اعدادات العميل (غير مخزن في المحفوظات, يؤثر على كل الالعاب)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :اعدادات اللعبة (مخزن في المحفوظات, يؤثر على الالعاب الجديدة فقط)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :اعدادات اللعبة (مخزن في المحفوظات, يؤثر على اللعبة الحالية فقط)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :اعدادات الشركة (مخزن في المحفوظات, يؤثر على الالعاب الجديدة فقط)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :اعدادات الشركة (مخزن في المحفوظات: يؤثر على الشركة الحالية فقط)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :اعدادات العميل (لا يخزن في الحفظ ؛ يطبق على كل الالعاب)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :اعدادات اللعبة (يخزن في الحفظ ؛ يطبق على الالعاب الجديدة فقط)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :اعدادات اللعبة (يخزن في الحفظ ؛ يطبق على اللعبة الحالية فقط)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :اعدادات الشركة (يخزن في الحفظ ؛ يطبق على الالعاب الجديدة فقط)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :اعدادات الشركة (يخزن في الحفظ ؛ يطبق على الشركة الحالية فقط)
|
||||
STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}عرض جميع النتائج بالنسبة للإعداد {}{SILVER} الفئة {BLACK} إلى {WHITE}{STRING} {BLACK}و{SILVER}نوع {BLACK} إلى{WHITE} جميع انواع الإعدادات
|
||||
STR_CONFIG_SETTINGS_NONE :{WHITE} - بدون -
|
||||
|
||||
@@ -1078,7 +1086,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :متوسط
|
||||
STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :يمين
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :السماح باعادة بناء التلال تحت المباني, الطرق, الخ .-الانحدار الذاتي- {STRING}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :السماح بتحريك الأرض تحت المباني, الطرق, الخ : {STRING}
|
||||
STR_CONFIG_SETTING_CATCHMENT :السماح بحدود اكثر واقعية للمحطات بحسب الحجم: {STRING}
|
||||
STR_CONFIG_SETTING_EXTRADYNAMITE :السماح بحذف اكثر من الطرق المملوكة للمدينة و الجسور و غيرها: {STRING}
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT :كمية دخان/شرار القطارات:{STRING}
|
||||
@@ -1204,7 +1212,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :لا تصرف
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :الكل ما عدا عمليات البناء
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :الكل ما عدا خيارات تعديل الخريطة
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :كل تصرف
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :استخدام قائمة العربات المطورة: {STRING}
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :استخدام المجموعات في قائمة العربات : {STRING}
|
||||
STR_CONFIG_SETTING_LOADING_INDICATORS :تفعيل مؤشر التحميل: {STRING}
|
||||
STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :عرض جدولة الأعمال بالمهام بدلا من الأيام: {STRING}
|
||||
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :عرض الوصول و المغادرة في جدولة الاعمال: {STRING}
|
||||
@@ -1400,6 +1408,7 @@ STR_INTRO_MULTIPLAYER :{BLACK}لعب
|
||||
|
||||
STR_INTRO_GAME_OPTIONS :{BLACK}إعدادات اللعبه
|
||||
STR_INTRO_HIGHSCORE :{BLACK}قائمه المتفوقين
|
||||
STR_INTRO_CONFIG_SETTINGS_TREE :الاعدادات
|
||||
STR_INTRO_NEWGRF_SETTINGS :{BLACK} اعدادات NewGRF
|
||||
STR_INTRO_ONLINE_CONTENT :{BLACK} إبحث عن المحتوى عبر الشبكه العنكبوتيه
|
||||
STR_INTRO_SCRIPT_SETTINGS :{BLACK}إعدادات الذكاء الصناعى
|
||||
@@ -1418,6 +1427,7 @@ STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}اختي
|
||||
STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}اختيار نمط الألعاب
|
||||
|
||||
STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}عرض خيارات اللعبة
|
||||
STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :إعدادات العرض
|
||||
STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}عرض إعدادات اﻹضافات
|
||||
STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK} ابحث عن محتوى جديد او تحديث
|
||||
STR_INTRO_TOOLTIP_QUIT :{BLACK}اغلاق'OpenTTD'
|
||||
@@ -2373,6 +2383,7 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}اسم
|
||||
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}الحجم:
|
||||
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM}
|
||||
|
||||
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :تغيير أعلى ارتفاع للخريطة
|
||||
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}غير مستوى خط الثلج
|
||||
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}غير سنة البداية
|
||||
|
||||
@@ -2592,8 +2603,8 @@ STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} تم توصيلة
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{RED} (مازال مطلوب)
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{GREEN} (تم توصيلة)
|
||||
STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK} يوم
|
||||
STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK} يوم{} (مول)
|
||||
STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK}{NBSP} يوم
|
||||
STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK}{NBSP} يوم (ممول)
|
||||
STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}المدينة {RED}لا{BLACK} تنمو
|
||||
STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}حدود الضوضاء داخل المدن: {ORANGE}{COMMA}{BLACK} القصوى: {ORANGE}{COMMA}
|
||||
STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}وسط الشاشة الاساسية على موقع المدينة
|
||||
@@ -2863,7 +2874,7 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :لاتنتمي
|
||||
STR_GROUP_DEFAULT_SHIPS :مركبة لاتنتمي لأي مجموعة
|
||||
STR_GROUP_DEFAULT_AIRCRAFTS :طائرة لاتنتمي لأي مجموعة
|
||||
|
||||
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}المجموعات: اضغط على اي مجموعة لعرض المركبات التابعة لها
|
||||
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}المجموعات: اضغط على اي مجموعة لعرض مركباتها . اسحب للترتيب .
|
||||
STR_GROUP_CREATE_TOOLTIP :{BLACK}أضغط لإنشاء مجموعة
|
||||
STR_GROUP_DELETE_TOOLTIP :{BLACK}أحذف المجموعة المختارة
|
||||
STR_GROUP_RENAME_TOOLTIP :{BLACK}أعد تسمية المجموعة المختارة
|
||||
@@ -3158,7 +3169,7 @@ STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK} الس
|
||||
|
||||
STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}مقدار التحويل: {LTBLUE}{CURRENCY_LONG}
|
||||
|
||||
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}فترات الصيانة: {LTBLUE}{COMMA} يوم {BLACK} اخر صيانة: {LTBLUE}{DATE_LONG}
|
||||
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}فترات الصيانة: {LTBLUE}{COMMA}{NBSP} يوم {BLACK} اخر صيانة: {LTBLUE}{DATE_LONG}
|
||||
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}فترات الصيانة: {LTBLUE}{COMMA}% {BLACK} الصيانة الأخيرة: {LTBLUE}{DATE_LONG}
|
||||
STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}زيادة فترات الصيانة بقدر 10. ومع مفتاح كنترول بمقدار 5.
|
||||
STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK} انقاص فترات الصيانة بمعدل 10. Ctrl+ الضغط الانقاص بمعدل 5.
|
||||
@@ -3250,8 +3261,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}غير
|
||||
|
||||
STR_ORDER_REFIT :{BLACK}اعادة تهيئة
|
||||
STR_ORDER_REFIT_TOOLTIP :{BLACK}اختر نوع البضائع المنقولة لتهيئة العربات في هذا الامر. اضغط كنترول لازالة تعليمات التهيئة.
|
||||
STR_ORDER_REFIT_AUTO :{BLACK}ملائمة ذاتية
|
||||
STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}اختر اي نوع من الحملة تريد ملائمتها ذاتيا.
|
||||
STR_ORDER_REFIT_AUTO :{BLACK}ملائمة في محطة
|
||||
STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}اختر اي نوع من الحمولة تريد ملائمتها . اضغط مع ctrl لإزالة الملائمة . الملائمة في المحطات لن تكون ما لم تقبل العربة ذلك .
|
||||
STR_ORDER_DROP_REFIT_AUTO :شحنة ثابتة
|
||||
STR_ORDER_DROP_REFIT_AUTO_ANY :البضائع المتاحة
|
||||
|
||||
@@ -3342,13 +3353,13 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(عدم انز
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :-عدم انزال الشحنة و الانتظار للحمولة القصوى لاي شحنة-
|
||||
STR_ORDER_NO_UNLOAD_NO_LOAD :(لا تفريغ و لا تحميل)
|
||||
|
||||
STR_ORDER_AUTO_REFIT :(ملائمة ذاتية ل {STRING})
|
||||
STR_ORDER_FULL_LOAD_REFIT :(تحميل كلي مع الملائمة الذاتية لـ {STRING})
|
||||
STR_ORDER_FULL_LOAD_ANY_REFIT :(تحميل كلي لاي بضاعة مع الملائمة الذاتية لـ {STRING})
|
||||
STR_ORDER_UNLOAD_REFIT :(تفريغ الحمولة و شحن البضائع مع الملائمة الذاتية لـ {STRING})
|
||||
STR_ORDER_AUTO_REFIT :(ملائمة لـ {STRING})
|
||||
STR_ORDER_FULL_LOAD_REFIT :(تحميل كلي مع الملائمة لـ {STRING})
|
||||
STR_ORDER_FULL_LOAD_ANY_REFIT :(تحميل كلي لأي بضاعة مع الملائمة لـ {STRING})
|
||||
STR_ORDER_UNLOAD_REFIT :(تفريغ الحمولة و شحن البضائع مع الملائمة لـ {STRING})
|
||||
STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(تفرغ الحمولة و الانتظار للتحميل الكلي مع الملائمة لـ {STRING})
|
||||
STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(التفريغ و الانتظار للتحميل الكلي لاي بضاعة مع الملائمة الذاتية لـ {STRING})
|
||||
STR_ORDER_TRANSFER_REFIT :(تحويل البضاعة و اخذ البضاعة مع الملائمة الذاتية لـ {STRING})
|
||||
STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(التفريغ و الانتظار للتحميل الكلي لأي بضاعة مع الملائمة لـ {STRING})
|
||||
STR_ORDER_TRANSFER_REFIT :(تحويل البضاعة و أخذ البضاعة مع الملائمة لـ {STRING})
|
||||
STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(تحويل البضاعة و الانتظار للحمولة القصوى مع الملائمة الذاتية لـ {STRING})
|
||||
STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(تحويل البضاعة و الانتظار لاي حمولة كاملة مع الملائمة الذاتية لـ {STRING})
|
||||
STR_ORDER_NO_UNLOAD_REFIT :(عدم التفريغ و تحميل البضائع مع الملائمة الذاتية لـ {STRING})
|
||||
@@ -3620,7 +3631,7 @@ STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... قر
|
||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... قريبة جدا من مدينة أخرى
|
||||
STR_ERROR_TOO_MANY_TOWNS :{WHITE}... المدن كثيرة جدا
|
||||
STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... لا يوجد فراغ في الخريطة
|
||||
STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}لن تبني البلدية طرق جديدة. بامكانك تمكين البلدية من بناء الطرق الجديدة عن طريق الاعدادات المتقدمة --> الاقتصاد --> المدن
|
||||
STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}لن تبني البلدية طرق جديدة. بإمكانك تمكين بناء الطرق الجديدة عن طريق الاعدادات --> البيئة--> المدن
|
||||
STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}اعمال الطرق قيد التنفيذ
|
||||
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}لا يمكن ازالة هذه المدينة {}محطة او ورشة مرتبطة بالمدينة او هناك مربع مملوك للمدينة لا يمكن لزالته
|
||||
STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... لا يوجد مكان مناسب للمجسم بداخل هذة المدينة/البلدة
|
||||
|
@@ -1181,64 +1181,64 @@ STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :Model d'acceler
|
||||
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT :Seleccioneu el model físic per l'acceleració de trens. El model «original» penalitza les pujades per igual a tots els vehicles. El model «realista» penalitza les pujades i les corbes en funció de diverses propietats del tren, com ara la longitud i la força de tracció
|
||||
STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :Model d'acceleració per als vehicles: {STRING}
|
||||
STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :Seleccioneu el model físic per l'acceleració d'automòbils. El model «original» penalitza les pujades per igual a tots els vehicles. El model «realista» penalitza els pendents en funció de les diferents propietats de la màquina, com per exemple l'esforç de tracció.
|
||||
STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :Pendent d'inclinació per als trens: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :La inclinació d'una cel·la en pendent per a un tren. Els valors més alts fan que sigui més difícil escalar un turó
|
||||
STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :Pendent de les costes per als trens: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :El pendent de les caselles amb costes per als trens. Els valors alts fan que sigui més difícil pujar els turons.
|
||||
STR_CONFIG_SETTING_PERCENTAGE :{COMMA}%
|
||||
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Pendent d'inclinació per als automòbils: {STRING}
|
||||
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :La inclinació d'una cel·la amb pendent per a automòbils. Els valors més alts fan que sigui més difícil escalar un turó
|
||||
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Pendent de les costes per als vehicles de carretera: {STRING}
|
||||
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :El pendent de les caselles amb costes per a vehicles de carretera. Els valors alts fan que sigui més difícil pujar els turons.
|
||||
STR_CONFIG_SETTING_FORBID_90_DEG :Prohibeix fer girs de 90 graus als trens i vaixells: {STRING}
|
||||
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Els girs de 90 graus succeeixen quan una via horitzontal està seguida d'una vertical a la cel·la annexa, provocant que el tren giri 90 graus quan travessi la vora de la cel·la en lloc dels 45 graus usuals en les altres combinacions. Això també s'aplica al radi de gir dels vaixells
|
||||
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Els girs de 90 graus succeeixen quan hi ha una via horitzontal seguida d'una de vertical a la cel·la annexa, provocant que el tren giri 90 graus quan travessi la vora de la cel·la en lloc dels 45 graus usuals en les altres combinacions. Això també s'aplica al gir dels vaixells.
|
||||
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permet ajuntar estacions no annexes: {STRING}
|
||||
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permetre afegir parts a una estació sense contacte directe amb les parts existents. Fa falta Ctrl + Clic, mentre és col·loquen les peces noves
|
||||
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Aquesta opció permet afegir parts noves a una estació existent sense estar les parts noves en contacte directe amb les existents. Cal clicar Ctrl+Clic mentre es col·loquen les parts noves.
|
||||
STR_CONFIG_SETTING_INFLATION :Inflació: {STRING}
|
||||
STR_CONFIG_SETTING_INFLATION_HELPTEXT :Habilita la inflació a l'economia, on l'augment dels costos són una mica més ràpids que els dels pagaments
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Màxima longitud dels ponts: {STRING}
|
||||
STR_CONFIG_SETTING_INFLATION_HELPTEXT :Habilita la inflació a l'economia, on l'augment dels costos són una mica més ràpids que els dels pagaments.
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Longitud màxima dels ponts: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Longitud màxima per a la construcció de ponts
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :Alçada màxima dels ponts: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Alçada màxima de construcció dels ponts
|
||||
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Màxima longitud dels túnels: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Longitud màxima per a la construcció de túnels
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Mètode de construcció de la indústria primària manual: {STRING}
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Mètode de finançament d'indústria primària. 'cap' significa que no serà possible fundar-ne cap, 'prospecció' significa que serà possible fundar-ne, però la construcció succeirà en un lloc aleatori del mapa i també podria passar que fracassi, 'com les altre indústries' significa que les indústries de matèries primeres poden ser construides a qualsevol lloc per les companyies igual que les indústries manufactureres
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Cap
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Fundació de noves indústries primàries: {STRING}
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Mètode de fundació de noves indústries primàries. «Fundació desactivada» significa que no serà possible fundar-ne cap, «Amb prospeccions» significa que serà possible fundar-ne, però la construcció succeirà en un lloc aleatori del mapa i podria fracassar. «Com les altres indústries» significa que les indústries de matèries primeres poden ser construïdes en qualsevol lloc per les companyies igual que les indústries manufactureres.
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Fundació desactivada
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Com les altres indústries
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Prospeccionant
|
||||
STR_CONFIG_SETTING_INDUSTRY_PLATFORM :Àrea plana al voltant de les indústries: {STRING}
|
||||
STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Quantitat d'espai pla al voltant d'una indústira. Això assegura que quedarà espai buit al voltant de la indústria per a construir vies, etc.
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Amb prospeccions
|
||||
STR_CONFIG_SETTING_INDUSTRY_PLATFORM :Àrea anivellada al voltant de les indústries: {STRING}
|
||||
STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Quantitat d'espai pla al voltant d'una indústria. Això assegura que quedarà espai buit al voltant de la indústria per construir vies o altres infraestructures.
|
||||
STR_CONFIG_SETTING_MULTIPINDTOWN :Permet vàries indústries similars a cada població: {STRING}
|
||||
STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Normalment, una població no vol més d'un tipus d'indústria de cada tipus. Amb aquest paràmetre es permetrà diverses indústries del mateix tipus a la mateixa població
|
||||
STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Normalment, una població no vol tenir més d'una indústria de cada tipus. Amb aquest paràmetre es permet la construcció de diverses indústries del mateix tipus a la mateixa població.
|
||||
STR_CONFIG_SETTING_SIGNALSIDE :Mostra els senyals: {STRING}
|
||||
STR_CONFIG_SETTING_SIGNALSIDE_HELPTEXT :Selecciona a quin costat de la via s'han de posar els senyals
|
||||
STR_CONFIG_SETTING_SIGNALSIDE_HELPTEXT :Seleccioneu a quin costat de la via s'han de posar els senyals
|
||||
STR_CONFIG_SETTING_SIGNALSIDE_LEFT :A l'esquerra
|
||||
STR_CONFIG_SETTING_SIGNALSIDE_DRIVING_SIDE :Al costat de conducció
|
||||
STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :A la dreta
|
||||
STR_CONFIG_SETTING_SHOWFINANCES :Mostra la finestra de balanç al finalitzar cada any: {STRING}
|
||||
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si està activat, la finestra de finances apareix al final de cada any per permetre una inspecció fàcil de l'estat financer de la companyia
|
||||
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Les noves ordres predeterminades són 'sense parada': {STRING}
|
||||
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalment, un vehicle pararà a cada estació que passi. Activant aquest paràmetre no pararà a cap estació fins arribar a la seu destí. Nota, aquest paràmetre només defineix el valor predeterminat per les noves ordres. De totes maneres les ordres individuals poden establir explícitament qualsevol dels comportaments
|
||||
STR_CONFIG_SETTING_STOP_LOCATION :Noves ordres del tren: parar per defecte {STRING} de la plataforma
|
||||
STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Situa en quin lloc de la plataforma el tren pararà per defecte. 'Extrem més proper' significa a prop del punt d'entrada, 'al mig' significa al mig de la plataforma, i 'extrem més llunyà' significa lluny del punt d'entrada. Nota, aquest paràmetre només defineix el valor predeterminat per les noves ordres. De totes maneres les ordres individuals poden establir explícitament qualsevol dels comportaments
|
||||
STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :a l'extrem més proper
|
||||
STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :a la meitat
|
||||
STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :a l'extrem més llunyà
|
||||
STR_CONFIG_SETTING_AUTOSCROLL :Finestra d'avís quan el ratolí és al marc del programa: {STRING}
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Quan està activat, les vistes començaran a desplaçar-se quan el ratolí sigui a prop la vora de la finestra
|
||||
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si el paràmetre està activat, la finestra de finances apareix al final de cada any per permetre una inspecció fàcil de l'estat financer de la companyia.
|
||||
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :«Sense parada» per defecte a les noves ordres : {STRING}
|
||||
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalment, un vehicle para a cada estació per la que passa. Activant aquest paràmetre, no pararà a cap estació fins arribar al seu destí. Nota: aquest paràmetre només defineix el valor predeterminat per a les noves ordres. Un cop creada una ordre, aquesta es pot establir manualment al comportament desitjat.
|
||||
STR_CONFIG_SETTING_STOP_LOCATION :Noves ordres de trens: parar per defecte {STRING} de la plataforma
|
||||
STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Estableix en quin lloc de la plataforma els trens pararan per defecte. «Extrem més proper» significa a prop del punt d'entrada, «Al mig» significa al mig de la plataforma, i «Extrem més llunyà» significa lluny del punt d'entrada. Nota: aquest paràmetre només defineix el valor predeterminat per les noves ordres. Un cop creada una ordre, es pot modificar el comportament de forma manual.
|
||||
STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :A l'extrem més proper
|
||||
STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :Al mig
|
||||
STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :A l'extrem més llunyà
|
||||
STR_CONFIG_SETTING_AUTOSCROLL :Desplaça la finestra quan el ratolí sigui prop de la vora: {STRING}
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Quan està activat, l'àrea de visualització començarà a desplaçar-se quan el ratolí sigui prop de la vora de la finestra.
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Desactivat
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Vista principal, només pantalla completa
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Vista principal (només pantalla completa)
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Vista principal
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Cada vista
|
||||
STR_CONFIG_SETTING_BRIBE :Permet subornar a les autoritats locals: {STRING}
|
||||
STR_CONFIG_SETTING_BRIBE_HELPTEXT :Permet a les companyies intentar subornar a l'autoritat local. Si el suborn és detectat per un inspector, la companyia no podrà actuar a la població durant sis mesos
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Qualsevol vista
|
||||
STR_CONFIG_SETTING_BRIBE :Permet subornar les autoritats locals: {STRING}
|
||||
STR_CONFIG_SETTING_BRIBE_HELPTEXT :Permet a les companyies intentar subornar l'autoritat local. Si el suborn és detectat per un inspector, la companyia no podrà actuar a la població durant sis mesos.
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Permet comprar els drets del transport en exclusiva: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Si una companyia compra els drets de transport en exclusiva en una població, les estacions dels oponents (passatgers i càrrega) no rebran cap càrrega durant tot l'any
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Si una companyia compra els drets de transport en exclusiva d'una població, les estacions dels oponents (passatgers i càrrega) no rebran cap càrrega durant un any sencer.
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Permet finançar edificis: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permet a les companyies donar diners a les poblacions per a finançar nous edificis
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permet a les companyies donar diners a les poblacions per finançar nous edificis
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Permet finançar la reconstrucció dels carrers locals: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Permet a les companyies donar diners a les poblacions per a la reconstrucció de carrers i sabotejar-hi la circulació de vehicles
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Permet a les companyies donar diners a les poblacions per la reconstrucció de carrers i sabotejar la circulació de vehicles.
|
||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Permet enviar diners a altres companyies: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permet transferir diners entre companyies en el mode multijugador
|
||||
STR_CONFIG_SETTING_FREIGHT_TRAINS :Multiplicador de pes per contenidor per simular trens pesats: {STRING}
|
||||
STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Estableix l'impacte de transportar contenidors en trens. Un valor més alt fa que transportar contenidors sigui més exigent amb els trens, especialment als turons
|
||||
STR_CONFIG_SETTING_FREIGHT_TRAINS :Multiplicador de pes per simular trens pesats: {STRING}
|
||||
STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Estableix l'impacte de transportar contenidors en trens. Els valors alts fan que transportar contenidors sigui més exigent amb els trens, especialment als turons.
|
||||
STR_CONFIG_SETTING_PLANE_SPEED :Factor de velocitat dels avions: {STRING}
|
||||
STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Estableix la velocitat relativa dels avions en comparació amb els altres tipus de vehicles, per reduir la quantitat de guanys de transport dels avions
|
||||
STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA}
|
||||
|
@@ -30,7 +30,7 @@ STR_CARGO_PLURAL_NOTHING :
|
||||
STR_CARGO_PLURAL_PASSENGERS :Passagiers
|
||||
STR_CARGO_PLURAL_COAL :Kolen
|
||||
STR_CARGO_PLURAL_MAIL :Post
|
||||
STR_CARGO_PLURAL_OIL :Olie
|
||||
STR_CARGO_PLURAL_OIL :Aardolie
|
||||
STR_CARGO_PLURAL_LIVESTOCK :Vee
|
||||
STR_CARGO_PLURAL_GOODS :Goederen
|
||||
STR_CARGO_PLURAL_GRAIN :Graan
|
||||
@@ -64,7 +64,7 @@ STR_CARGO_SINGULAR_NOTHING :
|
||||
STR_CARGO_SINGULAR_PASSENGER :Passagier
|
||||
STR_CARGO_SINGULAR_COAL :Kolen
|
||||
STR_CARGO_SINGULAR_MAIL :Post
|
||||
STR_CARGO_SINGULAR_OIL :Olie
|
||||
STR_CARGO_SINGULAR_OIL :Aardolie
|
||||
STR_CARGO_SINGULAR_LIVESTOCK :Vee
|
||||
STR_CARGO_SINGULAR_GOODS :Goederen
|
||||
STR_CARGO_SINGULAR_GRAIN :Graan
|
||||
@@ -98,7 +98,7 @@ STR_QUANTITY_NOTHING :
|
||||
STR_QUANTITY_PASSENGERS :{COMMA}{NBSP}passagier{P "" s}
|
||||
STR_QUANTITY_COAL :{WEIGHT_LONG} kolen
|
||||
STR_QUANTITY_MAIL :{COMMA}{NBSP}zak{P "" ken} post
|
||||
STR_QUANTITY_OIL :{VOLUME_LONG} olie
|
||||
STR_QUANTITY_OIL :{VOLUME_LONG} Vaten Olie
|
||||
STR_QUANTITY_LIVESTOCK :{COMMA}{NBSP}stuk{P "" s} vee
|
||||
STR_QUANTITY_GOODS :{COMMA}{NBSP}krat{P "" ten} goederen
|
||||
STR_QUANTITY_GRAIN :{WEIGHT_LONG} graan
|
||||
@@ -168,7 +168,7 @@ STR_ABBREV_ALL :{TINY_FONT}ALLE
|
||||
STR_PASSENGERS :{COMMA}{NBSP}passagier{P "" s}
|
||||
STR_BAGS :{COMMA}{NBSP}zak{P "" ken}
|
||||
STR_TONS :{COMMA}{NBSP}ton
|
||||
STR_LITERS :{COMMA}{NBSP}liter
|
||||
STR_LITERS :{COMMA}{NBSP}liter{P "" s}
|
||||
STR_ITEMS :{COMMA}{NBSP}stuk{P "" s}
|
||||
STR_CRATES :{COMMA}{NBSP}krat{P "" ten}
|
||||
|
||||
@@ -3185,7 +3185,7 @@ STR_FINANCES_YEAR :{WHITE}{NUM}
|
||||
STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}Bouwkosten
|
||||
STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}Nieuwe voertuigen
|
||||
STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}Treinonderhoudskosten
|
||||
STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Wegvoertuigbrandstofkosten
|
||||
STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Wegvoertuigonderhoudskosten
|
||||
STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}Vliegtuigonderhoudskosten
|
||||
STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}Schiponderhoudskosten
|
||||
STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}Eigendomsonderhoud
|
||||
@@ -3268,7 +3268,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TRAMWAY :{WHITE}Tramrail
|
||||
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Water tegels:
|
||||
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanalen
|
||||
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Stations:
|
||||
STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}Station tegels
|
||||
STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}Stationtegels
|
||||
STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS :{WHITE}Vliegvelden
|
||||
STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENCY_LONG}/jr
|
||||
|
||||
@@ -3350,7 +3350,7 @@ STR_GROUP_DEFAULT_SHIPS :Niet gegroepeer
|
||||
STR_GROUP_DEFAULT_AIRCRAFTS :Niet gegroepeerde vliegtuigen
|
||||
|
||||
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groepen - Klik op een groep voor een lijst van alle voertuigen in deze groep. Klik en sleep om hiërarchie te beheren
|
||||
STR_GROUP_CREATE_TOOLTIP :{BLACK}Klik om een groep te maken
|
||||
STR_GROUP_CREATE_TOOLTIP :{BLACK}Klik om een groep te creëren
|
||||
STR_GROUP_DELETE_TOOLTIP :{BLACK}Verwijder de geselecteerde groep
|
||||
STR_GROUP_RENAME_TOOLTIP :{BLACK}Hernoem de geselecteerde groep
|
||||
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klik om deze groep te beschermen tegen globaal automatisch vervangen
|
||||
@@ -4357,7 +4357,7 @@ STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}Kan dit
|
||||
STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... het is al van jou!
|
||||
|
||||
# Group related errors
|
||||
STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan groep niet maken...
|
||||
STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan groep niet creëren...
|
||||
STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Kan deze groep niet verwijderen...
|
||||
STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Kan deze groep niet hernoemen...
|
||||
STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Kan huidige groep niet instellen...
|
||||
|
@@ -1901,8 +1901,8 @@ STR_FACE_TIE_EARRING_TOOLTIP :{BLACK}Change t
|
||||
|
||||
# Network server list
|
||||
STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}Multiplayer
|
||||
STR_NETWORK_SERVER_LIST_ADVERTISED :{BLACK}Advertized
|
||||
STR_NETWORK_SERVER_LIST_ADVERTISED_TOOLTIP :{BLACK}Choose between an advertized (internet) and a not advertized (Local Area Network, LAN) game
|
||||
STR_NETWORK_SERVER_LIST_ADVERTISED :{BLACK}Advertised
|
||||
STR_NETWORK_SERVER_LIST_ADVERTISED_TOOLTIP :{BLACK}Choose between an advertised (internet) and a not advertised (Local Area Network, LAN) game
|
||||
STR_NETWORK_SERVER_LIST_ADVERTISED_NO :No
|
||||
STR_NETWORK_SERVER_LIST_ADVERTISED_YES :Yes
|
||||
STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK}Player name:
|
||||
|
@@ -197,31 +197,31 @@ STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}me
|
||||
|
||||
STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}dk
|
||||
STR_UNITS_POWER_METRIC :{COMMA}{NBSP}dk
|
||||
STR_UNITS_POWER_SI :{COMMA}kW
|
||||
STR_UNITS_POWER_SI :{COMMA}{NBSP}kW
|
||||
|
||||
STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}t
|
||||
STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}t
|
||||
STR_UNITS_WEIGHT_SHORT_SI :{COMMA}kg
|
||||
STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}{NBSP}t
|
||||
STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}{NBSP}t
|
||||
STR_UNITS_WEIGHT_SHORT_SI :{COMMA}{NBSP}kg
|
||||
|
||||
STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA} ton
|
||||
STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA}{NBSP}ton
|
||||
STR_UNITS_WEIGHT_LONG_METRIC :{COMMA} ton
|
||||
STR_UNITS_WEIGHT_LONG_SI :{COMMA} kg
|
||||
STR_UNITS_WEIGHT_LONG_SI :{COMMA}{NBSP}kg
|
||||
|
||||
STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}gal
|
||||
STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}l
|
||||
STR_UNITS_VOLUME_SHORT_SI :{COMMA}m³
|
||||
STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}{NBSP}gal
|
||||
STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}{NBSP}l
|
||||
STR_UNITS_VOLUME_SHORT_SI :{COMMA}{NBSP}m³
|
||||
|
||||
STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA} gallon
|
||||
STR_UNITS_VOLUME_LONG_METRIC :{COMMA} liter
|
||||
STR_UNITS_VOLUME_LONG_SI :{COMMA} m³
|
||||
STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}gallon
|
||||
STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}litre
|
||||
STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}m³
|
||||
|
||||
STR_UNITS_FORCE_IMPERIAL :{COMMA} lbf
|
||||
STR_UNITS_FORCE_METRIC :{COMMA} kgf
|
||||
STR_UNITS_FORCE_SI :{COMMA} kN
|
||||
STR_UNITS_FORCE_IMPERIAL :{COMMA}{NBSP}lbf
|
||||
STR_UNITS_FORCE_METRIC :{COMMA}{NBSP}kgf
|
||||
STR_UNITS_FORCE_SI :{COMMA}{NBSP}kN
|
||||
|
||||
STR_UNITS_HEIGHT_IMPERIAL :{COMMA} ft
|
||||
STR_UNITS_HEIGHT_METRIC :{COMMA} m
|
||||
STR_UNITS_HEIGHT_SI :{COMMA} m
|
||||
STR_UNITS_HEIGHT_IMPERIAL :{COMMA}{NBSP}kaki
|
||||
STR_UNITS_HEIGHT_METRIC :{COMMA}{NBSP}m
|
||||
STR_UNITS_HEIGHT_SI :{COMMA}{NBSP}m
|
||||
|
||||
# Common window strings
|
||||
STR_LIST_FILTER_TITLE :{BLACK}Kata penyaring:
|
||||
@@ -1098,7 +1098,7 @@ STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Nilai s
|
||||
STR_CONFIG_SETTING_TYPE :{LTBLUE}Tipe setting: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_TYPE_CLIENT :Setting klien (tidak disimpan di penyimpanan; mempengaruhi semua permainan)
|
||||
STR_CONFIG_SETTING_TYPE_GAME_MENU :Setting permainan (disimpan dalam penyimpanan; hanya mempengaruhi permainan baru)
|
||||
STR_CONFIG_SETTING_TYPE_GAME_INGAME :Setting permainan (disimpan dalam penyimpanan; hanya mempengaruhi permainan saat ini))
|
||||
STR_CONFIG_SETTING_TYPE_GAME_INGAME :Pengaturan permainan (disimpan dalam penyimpanan; hanya mempengaruhi permainan saat ini)
|
||||
STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Setting perusahaan (disimpan dalam penyimpanan; hanya mempengaruhi permainan baru)
|
||||
STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Setting perusahaan (disimpan dalam penyimpanan; hanya mempengaruhi permainan saat ini)
|
||||
|
||||
@@ -1113,9 +1113,9 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Pengaturan deng
|
||||
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Membatasi urutan / tabel di bawah ke setting tertentu
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Semua setting
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Setting klien (tidak disimpan di penyimpanan; mempengaruhi semua permainan)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Pengaturan klien (tidak disimpan di penyimpanan; mempengaruhi semua permainan)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Pengaturan permainan (ikut tersimpan; hanya memiliki efek pada permainan baru)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Pengaturan permainan (ikut tersimpan; hanya memiliki efek pada permainan aktif)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Pengaturan permainan (ikut tersimpan; hanya memiliki efek pada permainan saat ini)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Pengaturan perusahaan (ikut tersimpan; hanya memiliki efek pada permainan baru)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Pengaturan perusahaan (ikut tersimpan; hanya memiliki efek pada perusahaan aktif)
|
||||
STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Tampilkan semua pencarian berdasarkan pengaturan{}{SILVER}Kategori {BLACK}sampai {WHITE}{STRING}
|
||||
@@ -1165,7 +1165,7 @@ STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Pilih seberapa
|
||||
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Tinggi peta maksimum: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Atur ketinggian pegunungan maksimum yang diijinkan untuk peta ini
|
||||
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Kamu tidak bisa mengubah ketinggian peta maksimum di angka itu. Setidaknya ada satu gunung di peta yang lebih tinggi
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :Ijinkan pembentukan slop dibawah bangunan, rel, dsb. (otomatiskan): {STRING}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :Ijinkan pembentukan slop dibawah bangunan, rel, dsb.: {STRING}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Ijinkan pembentukan tanah dibawah bangunan dan trek tanpa merusaknya
|
||||
STR_CONFIG_SETTING_CATCHMENT :Ijinkan ukuran jangkauan wilayah lebih realistik: {STRING}
|
||||
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Gunakan area penarikan berbeda untuk tipe stasiun dan airport yang berbeda
|
||||
@@ -1281,7 +1281,7 @@ STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Durasi penampil
|
||||
STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} detik
|
||||
STR_CONFIG_SETTING_HOVER_DELAY :Tampilkan tooltips: {STRING}
|
||||
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Delay sebelum bantuan peralatan ditampilkan saat mouse diatas sebuah ikon. Selain itu bantuan peralatan juga dapat ditampilkan dengan klik kanan
|
||||
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Melayang untuk {COMMA} detik
|
||||
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Melayang untuk {COMMA} mili detik
|
||||
STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Klik kanan
|
||||
STR_CONFIG_SETTING_POPULATION_IN_LABEL :Tampilkan populasi kota di label nama kota: {STRING}
|
||||
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Tampilkan populasi kota di label nama kota pada peta
|
||||
@@ -1343,7 +1343,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Pergeseran pand
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Menyetel bagaimana tampilan utama menggeser posisi di peta kecil. Jika dinyalakan, peta akan bergeser secara halus. Jika dimatikan, peta langsung menuju tempat yang di klik
|
||||
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Tampilkan ukuran ketika menggunakan alat pembangun: {STRING}
|
||||
STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Tampilkan perbedaan jarak dan tinggi ubin saat proses pembangunan
|
||||
STR_CONFIG_SETTING_LIVERIES :Tampilkan warna perusahaan: {STRING}
|
||||
STR_CONFIG_SETTING_LIVERIES :Tampilkan warna tergantung jenis kendaraan: {STRING}
|
||||
STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Kontrol penggunaan tipe kendaraan spesifik untuk kendaraan (dalam perusahaan tertentu)
|
||||
STR_CONFIG_SETTING_LIVERIES_NONE :Tidak ada
|
||||
STR_CONFIG_SETTING_LIVERIES_OWN :Perusahaan milik sendiri
|
||||
@@ -1390,7 +1390,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Tidak ada tinda
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Semua tindakan kecuali pembangunan
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Semua kecuali mengubah dataran
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Semua tindakan
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Gunakan daftar kendaraan tingkat lanjut: {STRING}
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Gunakan grup dalam daftar kendaraan: {STRING}
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Mengaktifkan penggunaan daftar kendaraan lebih lanjut dalam pengelompokkan kendaraan
|
||||
STR_CONFIG_SETTING_LOADING_INDICATORS :Tampilkan indikator pengangkutan: {STRING}
|
||||
STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Pilih apakah petunjuk beban ditayangkan di atas kendaran yang sedang mengisi atau menurunkan beban
|
||||
@@ -1405,7 +1405,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Jenis rel yang
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Tersedia pertama
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Tersedia terakhir
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Sering dipakai
|
||||
STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Sorot rel yang akan terpakai: {STRING}
|
||||
STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Tampilkan rel yang akan terpakai: {STRING}
|
||||
STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Beri warna yang berbeda untuk jalur-jalur yang dicadangkan untuk menolong ketika terdapat kereta yang menolak masuk ke blok menurut jalurnya
|
||||
STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Toolbar tetap aktif setelah dipakai: {STRING}
|
||||
STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Menjagakan alat pembangunan untuk jembatan, terowongan, etc. buka setelah dipakai
|
||||
@@ -1433,11 +1433,11 @@ STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Matikan infrast
|
||||
STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Jika diaktifkan, infrastruktur cuma tersedia jika ada kendaraan tersedia, mencegah buang waktu dan uang di infrastruktur yang tidak bisa digunakan
|
||||
STR_CONFIG_SETTING_MAX_TRAINS :Maks. kereta tiap pemain: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Batas jumlah kereta yang boleh dimiliki satu perusahaan
|
||||
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maks. kendaraan jalan raya tiap pemain: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maks. kendaraan jalan raya tiap perusahaan: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Batas jumlah kendaraan jalan raya yang boleh dimiliki satu perusahaan
|
||||
STR_CONFIG_SETTING_MAX_AIRCRAFT :Maks. pesawat tiap pemain: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_AIRCRAFT :Maks. pesawat tiap perusahaan: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Batas jumlah pesawat yang boleh dimiliki satu perusahaan
|
||||
STR_CONFIG_SETTING_MAX_SHIPS :Maks. kapal tiap pemain: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_SHIPS :Maks. kapal tiap perusahaan: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Jumlah maximum kapal yang boleh dimilki sebuah perusahaan
|
||||
|
||||
STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Non-aktifkan kereta bagi pemain komputer: {STRING}
|
||||
@@ -1464,7 +1464,7 @@ STR_CONFIG_SETTING_SERVINT_ISPERCENT :Jangka waktu pe
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Pilih apakah servis kendaraan dipicu oleh waktu terlewat sejak servis terakhir atau dari kehandalan menjatuh beberapa persentase dari kehandalan maximum
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Interval dasar untuk kereta: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Setel interval dasar untuk kereta, jika tidak ada interval tetap
|
||||
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} hari/%
|
||||
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}hari/%
|
||||
STR_CONFIG_SETTING_SERVINT_DISABLED :Di non-aktifkan
|
||||
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Interval dasar untuk kendaraan jalan raya: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Setel Interval perbaikan untuk kendaraan jalan raya baru, jika tidak ada interval tetap
|
||||
@@ -1604,9 +1604,9 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Tidak ada
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Faktor kali ukuran kota awal: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Ukuran rata-rata kota besar terhadap kota kecil saat permainan dimulai
|
||||
|
||||
STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Perbarui grafik distribusi setiap {STRING} hari
|
||||
STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Perbarui grafik distribusi setiap {STRING}{NBSP}hari
|
||||
STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Waktu diantara dua penghitungan linkgraph berurutan. Setiap penghitungan hanya menghitung satu komponen perencanaan dari grafik. Namun, angka yang diberikan untuk seting ini bukan berarti seluruh grafik akan diperbaharui dalam angka hari yang sama, hanya beberapa bagian. Semakin sedikit semakin banyak proses CPU yang diperlukan untuk menghitung. Semakin banyak semakin lama waktu sebelum cargo distribution dimulai pada rute baru.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_TIME :Ambil {STRING} hari untuk menghitung grafik distribusi
|
||||
STR_CONFIG_SETTING_LINKGRAPH_TIME :Ambil {STRING}{NBSP}hari untuk menghitung grafik distribusi
|
||||
STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT :Waktu dibutuhkan untuk setiap perhitungan dari komponen 'linkgraph'. Ketika perhitungan dimulai, ada utas 'dibuat' yang boleh dijalankan untuk jumlah hari ini. Semakin pendek anda mengatur ini lebih mungkin utas ini belum selesai ketika itu seharusnya. Kemudian permainan berhenti sampai itu ("lag"). Semakin lama anda mengatur semakin lama itu untuk distribusinya untuk memperbarui ketika rute mengganti.
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manual
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetris
|
||||
@@ -1618,7 +1618,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"simetris" bera
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Modus distribusi untuk kelas kargo BERLAPIS BAJA: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :Kelas kargo BERLAPIS BAJA meliputi barang berharga pada iklim sedang, intan pada sub tropis atau emas pada iklim sub arktik. NewGRF mungkin mengubah itu. "simetris" berarti bahwa jumlah kargo kira-kira akan terkirim sama dari stasiun A ke stasiun B sebagaimana dari B ke A. "asimetris" berarti jumlah kargo terkirim bisa berbeda pada kedua arah. "manual" berarti bahwa tidak ada distribusi otomatis akan dilakukan untuk kargo itu. Disarankan untuk memilih asimetris atau manual ketika bermain sub arktik, karena bank tidak mengirim emas kembali ke tambang emas. Untuk iklim tropis dan sub tropis anda juga bisah pilih simetris karena bank akan mengirim kembali beberapa barang berharga ke bank asalnya.
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Modus distribusi untuk kelas kargo yang lain: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"simetris" berarti bahwa kira-kira sama jumlah kargo akan pergi dari stasiun A ke stasiun B sebagai dari B ke A. "asimetris" berarti sewenang-wenang jumlah kargo bisa pergi di kedua arah. "manual" berarti bahwa tidak ada distribusi otomatis akan dilakukan untuk kargo. Anda mungkin mau mengaturkan ini untuk "asimetris" atau manual.
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asimetris" berarti jumlah kargo yang pergi ke kedua arah bisa berbeda-beda. "manual" berarti bahwa tidak ada distribusi otomatis akan dilakukan untuk kargo.
|
||||
STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Ketepatan distribusi: {STRING}
|
||||
STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Semakin tinggi anda mengatur ini semakin banyak waktu CPU perhitungan "linkgraph" akan mengambil. Jika waktu terlalu lama anda mungkin melihat "lag".Jika anda mengatur itu ke nilai rendah, tetapi, distribusi akan menjadi tidak akurat, dan anda mungkin melihat kargo tidak dikirim ke tempat anda berharap untuk pergi.
|
||||
STR_CONFIG_SETTING_DEMAND_DISTANCE :Efek jarak kepada permintaan : {STRING}
|
||||
@@ -1666,7 +1666,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m)
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisasi
|
||||
STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafik
|
||||
STR_CONFIG_SETTING_SOUND :{ORANGE}Efek suara
|
||||
STR_CONFIG_SETTING_SOUND :{ORANGE}Suara
|
||||
STR_CONFIG_SETTING_INTERFACE :{ORANGE}Antaramuka
|
||||
STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Umum
|
||||
STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Jendela
|
||||
@@ -1684,7 +1684,7 @@ STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Linkung
|
||||
STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Berwenang
|
||||
STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Kota
|
||||
STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industri
|
||||
STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribusi Kargo
|
||||
STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribusi kargo
|
||||
STR_CONFIG_SETTING_AI :{ORANGE}Pesaing
|
||||
STR_CONFIG_SETTING_AI_NPC :{ORANGE}Pemain Komputer
|
||||
|
||||
@@ -1966,13 +1966,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Lindungi
|
||||
STR_NETWORK_START_SERVER_UNADVERTISED :Tidak
|
||||
STR_NETWORK_START_SERVER_ADVERTISED :Ya
|
||||
STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} klien
|
||||
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maksimum klien:
|
||||
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maksimum jumlah klien:
|
||||
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Pilih jumlah klien maksimal. Tidak semua slot harus diisi
|
||||
STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} Perusahaan
|
||||
STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maksimum perusahaan:
|
||||
STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maksimum jumlah perusahaan:
|
||||
STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Batasi jumlah perusahaan pada server
|
||||
STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} Penonton
|
||||
STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maksimum penonton:
|
||||
STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maksimum jumlah penonton:
|
||||
STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Batasi jumlah penonton pada server
|
||||
STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Bahasa pembicaraan:
|
||||
STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Agar pemain lain mengetahui bahasa apa yang digunakan pada sever
|
||||
@@ -2986,8 +2986,8 @@ STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} terkirim
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{RED} (masih dibutuhkan)
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{GREEN} (terkirim)
|
||||
STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Kota tumbuh setiap {ORANGE}{COMMA}{BLACK} hari
|
||||
STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Kota tumbuh setiap {ORANGE}{COMMA}{BLACK} hari (didanai)
|
||||
STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Kota tumbuh setiap {ORANGE}{COMMA}{BLACK}{NBSP}hari
|
||||
STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Kota tumbuh setiap {ORANGE}{COMMA}{BLACK}{NBSP}hari (didanai)
|
||||
STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Kota {RED}tidak{BLACK} tumbuh
|
||||
STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Batas kebisingan di kota : {ORANGE}{COMMA}{BLACK} maks.: {ORANGE}{COMMA}
|
||||
STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Arahkan pandangan utama pada lokasi kota. Ctrl+Click akan membuka viewport baru pada lokasi kota
|
||||
@@ -3196,7 +3196,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN
|
||||
STR_FINANCES_TOTAL_CAPTION :{WHITE}Total:
|
||||
STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Saldo Bank
|
||||
STR_FINANCES_LOAN_TITLE :{WHITE}Pinjaman
|
||||
STR_FINANCES_MAX_LOAN :{WHITE}Pinjaman Maks: {BLACK}{CURRENCY_LONG}
|
||||
STR_FINANCES_MAX_LOAN :{WHITE}Pinjaman maks.: {BLACK}{CURRENCY_LONG}
|
||||
STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG}
|
||||
STR_FINANCES_BORROW_BUTTON :{BLACK}Pinjam {CURRENCY_LONG}
|
||||
STR_FINANCES_BORROW_TOOLTIP :{BLACK}Tambah jumlah pinjaman. Tekan Ctrl+Click untuk meminjam sebanyak mungkin.
|
||||
@@ -3664,7 +3664,7 @@ STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}Daya Mua
|
||||
|
||||
STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}Nilai Transfer: {LTBLUE}{CURRENCY_LONG}
|
||||
|
||||
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}Jangka waktu perbaikan: {LTBLUE}{COMMA} hari{BLACK} Perbaikan terakhir: {LTBLUE}{DATE_LONG}
|
||||
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}Jangka waktu perbaikan: {LTBLUE}{COMMA}{NBSP}hari{BLACK} Perbaikan terakhir: {LTBLUE}{DATE_LONG}
|
||||
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Jangka waktu perbaikan: {LTBLUE}{COMMA} %{BLACK} Perbaikan terakhir: {LTBLUE}{DATE_LONG}
|
||||
STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Tambah jarak waktu perbaikan dengan 10. Ctrl+Click menambah jarak waktu perbaikan dengan 5.
|
||||
STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Kurangi jarak waktu perbaikan dengan 10. Ctrl+Click mengurangi jarak waktu perbaikan dengan 5
|
||||
@@ -3900,8 +3900,8 @@ STR_TIMETABLE_STAY_FOR_ESTIMATED :(menetap untuk
|
||||
STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(perjalan untuk {STRING}, tidak berjadwal)
|
||||
STR_TIMETABLE_STAY_FOR :dan tinggal selama {STRING}
|
||||
STR_TIMETABLE_AND_TRAVEL_FOR :dan berjalan selama {STRING}
|
||||
STR_TIMETABLE_DAYS :{COMMA} hari
|
||||
STR_TIMETABLE_TICKS :{COMMA} titik
|
||||
STR_TIMETABLE_DAYS :{COMMA}{NBSP}hari
|
||||
STR_TIMETABLE_TICKS :{COMMA}{NBSP}titik
|
||||
|
||||
STR_TIMETABLE_TOTAL_TIME :{BLACK}Total durasi seluruh perjalanan akan memakan waktu {STRING}
|
||||
STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Total durasi seluruh perjalanan akan memakan waktu kurang lebih {STRING} untuk terpenuhi (blm semuanya terjadwal)
|
||||
|
@@ -2174,7 +2174,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :게임이 아
|
||||
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :게임이 아직 일시 정지된 상태입니다. ({STRING}, {STRING}, {STRING})
|
||||
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_4 :게임이 아직 일시 정지된 상태입니다. ({STRING}, {STRING}, {STRING}, {STRING})
|
||||
STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :게임이 재개되었습니다. ({STRING})
|
||||
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :충분한 플레이어가 없습니다
|
||||
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :플레이하는 사람 수
|
||||
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :접속자와 연결중
|
||||
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :수동
|
||||
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :게임 스크립트
|
||||
@@ -2988,7 +2988,7 @@ STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}지난
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}도시가 성장하기 위해 필요한 화물:
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED}{G 0 "이" "가"} 필요함
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :겨울에는 {ORANGE}{STRING}{BLACK}{G 0 "이" "가"} 필요함
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} 수송됨
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN}{G 0 "이" "가"} 수송됨
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{1:CARGO_LONG} \ {0:CARGO_TINY}{RED} (더 필요함)
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{1:CARGO_LONG} \ {0:CARGO_TINY}{GREEN} (수송됨)
|
||||
STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}도시가 {ORANGE}{COMMA}{BLACK}일마다 성장합니다.
|
||||
@@ -3009,7 +3009,7 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :도시 이름
|
||||
|
||||
# Town local authority window
|
||||
STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} 지역 당국
|
||||
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}회사 운송 성취도:
|
||||
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}회사에 대한 이 도시의 평판:
|
||||
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
|
||||
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}가능한 행동:
|
||||
STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}이 도시에 할 수 있는 일 목록 - 상세 정보를 보시려면 클릭하세요
|
||||
|
@@ -512,7 +512,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Monstrar
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Monstrare res fiscales societatis
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Monstrare facta generalia societatis
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Monstrare librum fabularum
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Monstrare indicem metarum
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Monstrare indicem propositorum
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Monstrare formulas graphicas
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Monstrare album foederis societatum
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Industriam novam condere vel monstrare indicem industriarum
|
||||
@@ -526,11 +526,11 @@ STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Struere
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Struere vias
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Struere navalia
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Struere aeroportus
|
||||
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Monstrare terrae arcam ferramentorum qua potes terram augere/minuere, arbores serere, etc.
|
||||
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Monstrare terrae arcam instrumentorum qua potes terram augere/minuere, arbores serere, etc.
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Monstrare fenestram soni musicaeque
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Monstrare nuntium novissimum sive optiones nuntii
|
||||
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Indicia terrae regionis, consola, emendatio scripti, imagines conspectus, de OpenTTD
|
||||
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Mutare inter arcas ferramentorum
|
||||
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Mutare inter arcas instrumentorum
|
||||
|
||||
# Extra tooltips for the scenario editor toolbar
|
||||
STR_SCENEDIT_TOOLBAR_TOOLTIP_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Servare scaenarium, legere scaenarium, relinquere scriptorium scaenarii, exire
|
||||
@@ -1507,7 +1507,7 @@ STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Originalis
|
||||
STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Melior
|
||||
STR_CONFIG_SETTING_ROAD_SIDE :Vehicula viaria: {STRING}
|
||||
STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Eligere latus viae gubernandi
|
||||
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Circuitus tabulae altitudinum: {STRING}
|
||||
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotatio tabulae altitudinum: {STRING}
|
||||
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Sinistrorsus
|
||||
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Dextrorsus
|
||||
STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Altitudo scaenario plano data: {STRING}
|
||||
@@ -1518,8 +1518,8 @@ STR_CONFIG_SETTING_STATION_SPREAD :Spatium station
|
||||
STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Area maxima in qua partes stationum possunt esse sita. Cave, numeris spatii magnis, ludus lentus sit
|
||||
STR_CONFIG_SETTING_SERVICEATHELIPAD :Ministrare helicoptera automatice in helicopterariis: {STRING}
|
||||
STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Ministrare helicoptera post quemque appulsum, etsi non est tugurium portui
|
||||
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Connectere terrae arcam ferramentorum arcis ferriviariae/viariae/aquariae/aeriae ferramentorum: {STRING}
|
||||
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Cum arca ferramentorum constructionis aperitur, etiam plasmationis terrae arca ferramentorum aperitur
|
||||
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Connectere terrae arcam instrumentorum arcis ferriviariae/viariae/aquariae/aeriae instrumentorum: {STRING}
|
||||
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Cum arca instrumentorum constructionis aperitur, etiam plasmationis terrae arca instrumentorum aperitur
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR :Color terrae in tabula adhibitus: {STRING}
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Color terrae in tabula geographica parva
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Viridis
|
||||
@@ -1756,8 +1756,8 @@ STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :Nulla {RED}(rum
|
||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :Modo in silvis plivualibus
|
||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :Ubique
|
||||
|
||||
STR_CONFIG_SETTING_TOOLBAR_POS :Locus primariae arcae ferramentorum: {STRING}
|
||||
STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Locus horizontalis arcae ferramentorum primariae apud apicem fenestrae
|
||||
STR_CONFIG_SETTING_TOOLBAR_POS :Locus primariae arcae instrumentorum: {STRING}
|
||||
STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Locus horizontalis arcae instrumentorum primariae apud apicem fenestrae
|
||||
STR_CONFIG_SETTING_STATUSBAR_POS :Locus serae status: {STRING}
|
||||
STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Locus horizontalis serae status apud infimam partem fenestrae
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS :Radius fenestrae adhaerendae: {STRING}
|
||||
@@ -2951,7 +2951,7 @@ STR_MAPGEN_BORDER_RANDOM :{BLACK}Fortuiti
|
||||
STR_MAPGEN_BORDER_RANDOMIZE :{BLACK}Fortuiti
|
||||
STR_MAPGEN_BORDER_MANUAL :{BLACK}Manu
|
||||
|
||||
STR_MAPGEN_HEIGHTMAP_ROTATION :{BLACK}Circuitus tabulae altitudinum:
|
||||
STR_MAPGEN_HEIGHTMAP_ROTATION :{BLACK}Rotatio tabulae altitudinum:
|
||||
STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nomen tabulae altitudinum:
|
||||
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Magnitudo:
|
||||
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
|
||||
@@ -3021,7 +3021,7 @@ STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}Mutare c
|
||||
STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Mutare coloris tabulam huius NewGRF.{}Utere cum colores huius NewGRF videntur esse rosei
|
||||
STR_NEWGRF_SETTINGS_APPLY_CHANGES :{BLACK}Confirmare mutationes
|
||||
|
||||
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Quaere res absentes in interrete
|
||||
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Quaere res absentes in interreti
|
||||
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Inspicere si res absentes in inventario Interretiale sunt
|
||||
|
||||
STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Nomen fasciculi: {SILVER}{STRING}
|
||||
@@ -3236,16 +3236,16 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Emere m
|
||||
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Largiri auctoritatem vicinalem ut tua censio augeatur, at difficultas adest: forsitan animadvertaris et graviter puniaris.{}Pretium: {CURRENCY_LONG}
|
||||
|
||||
# Goal window
|
||||
STR_GOALS_CAPTION :{WHITE}{COMPANY} Metae
|
||||
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Metae Globales
|
||||
STR_GOALS_GLOBAL_TITLE :{BLACK}Metae globales:
|
||||
STR_GOALS_CAPTION :{WHITE}{COMPANY} Proposita
|
||||
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Proposita Universalia
|
||||
STR_GOALS_GLOBAL_TITLE :{BLACK}Proposita universalia:
|
||||
STR_GOALS_TEXT :{ORANGE}{STRING}
|
||||
STR_GOALS_NONE :{ORANGE}- Nullae -
|
||||
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Non applicabiles -
|
||||
STR_GOALS_PROGRESS :{ORANGE}{STRING}
|
||||
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
|
||||
STR_GOALS_COMPANY_TITLE :{BLACK}Metae Societatis:
|
||||
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Preme in metam ut conspectus moveatur supra industriam/oppidum/tegulam. Ctrl+Preme ut nova fenestra conspectus aperiatur supra industriam/oppidum/tegulam
|
||||
STR_GOALS_COMPANY_TITLE :{BLACK}Proposita Societatis:
|
||||
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Preme in propositum ut conspectus moveatur supra industriam/oppidum/tegulam. Ctrl+Preme ut nova fenestra conspectus aperiatur supra industriam/oppidum/tegulam
|
||||
|
||||
# Goal question window
|
||||
STR_GOAL_QUESTION_CAPTION_QUESTION :Quaestio
|
||||
@@ -3285,7 +3285,7 @@ STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Preme in
|
||||
|
||||
# Story book window
|
||||
STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Librum Fabularum
|
||||
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Librum Fabularum Globalis
|
||||
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Librum Fabularum Universale
|
||||
STR_STORY_BOOK_TITLE :{YELLOW}{STRING}
|
||||
STR_STORY_BOOK_GENERIC_PAGE_ITEM :Pagina {NUM}
|
||||
STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Salire ad quamdam paginam eligendo eam in hac indice
|
||||
@@ -3293,7 +3293,7 @@ STR_STORY_BOOK_PREV_PAGE :{BLACK}Priorem
|
||||
STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}Ire ad paginam priorem
|
||||
STR_STORY_BOOK_NEXT_PAGE :{BLACK}Secundam
|
||||
STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Ire ad paginam secundam
|
||||
STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Meta irrita
|
||||
STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Propositum irritum
|
||||
|
||||
# Station list window
|
||||
STR_STATION_LIST_TOOLTIP :{BLACK}Nomina stationum - preme in nomen ut conspectus moveatur supra stationem. Ctrl+Preme ut nova fenestra conspectus aperiatur supra stationem
|
||||
@@ -3555,7 +3555,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Greges -
|
||||
STR_GROUP_CREATE_TOOLTIP :{BLACK}Preme ut grex creatur
|
||||
STR_GROUP_DELETE_TOOLTIP :{BLACK}Delere gregem electam
|
||||
STR_GROUP_RENAME_TOOLTIP :{BLACK}Renominare gregem electam
|
||||
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Preme ut vehicula huius gregis custodiantur contra autocommutationem globalem
|
||||
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Preme ut vehicula huius gregis custodiantur contra autocommutationem universalem
|
||||
|
||||
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Gregem Delere
|
||||
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Esne certus te velle delere hanc gregem eiusque descendentes?
|
||||
@@ -4374,7 +4374,7 @@ STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... nimi
|
||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... nimis prope aliud oppidum
|
||||
STR_ERROR_TOO_MANY_TOWNS :{WHITE}... nimis oppida adsunt
|
||||
STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... plus spatium tabulae deest
|
||||
STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Oppidum non vias faciet. Potest sinere vias facere in Electionibus->Circumiecta->Oppida
|
||||
STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Oppidum non vias struet. Potes hanc optionem mutare in Electionibus->Circumiecta->Oppida
|
||||
STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Constructio viaria agitur
|
||||
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Non licet oppidum delere...{}Statio receptaculumve est oppido sive non licet tegulam oppidi removere
|
||||
STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... non est locus effigiei idoneus in medio oppidi
|
||||
|
@@ -205,16 +205,16 @@ STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}{NBSP}t
|
||||
STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}{NBSP}t
|
||||
STR_UNITS_WEIGHT_SHORT_SI :{COMMA}{NBSP}kg
|
||||
|
||||
STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA}{NBSP}tonn{P "" er}
|
||||
STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP}tonn{P "" er}
|
||||
STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA}{NBSP}tonn
|
||||
STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP}tonn{P "" ""}
|
||||
STR_UNITS_WEIGHT_LONG_SI :{COMMA}{NBSP}kg
|
||||
|
||||
STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}{NBSP}gal
|
||||
STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}{NBSP}l
|
||||
STR_UNITS_VOLUME_SHORT_SI :{COMMA} m³
|
||||
|
||||
STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}gallon{P "" er}
|
||||
STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}liter{P "" er}
|
||||
STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}gallon
|
||||
STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}liter
|
||||
STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}m³
|
||||
|
||||
STR_UNITS_FORCE_IMPERIAL :{COMMA}{NBSP}lbf
|
||||
@@ -1528,7 +1528,7 @@ STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prosentandel av
|
||||
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Andel av inntekten gitt til de mellomliggende etapper i et overføringssystem, noe som gir mer kontroll over inntektene
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Når du drar en linje, plasser signaler hver: {STRING}
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Angi distansen for når signaler vil bli bygget på et spor frem til neste hinder (signal, kryss), hvis signaler blir dratt
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} kartelement{P 0 "" s}
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} kartelement{P 0 "" er}
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Når du drar en linje, oppretthold fast avstand mellom signaler: {STRING}
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Velg oppførselen til signalplassering ved Ctrl + dragning av signaler. Hvis deaktivert, blir signaler plassert ved tunneler eller broer for å unngå lange strekninger uten signaler. Hvis aktivert, blir signalene plassert for hver N ruter, noe som gjør justering av signaler på parallelle spor enklere
|
||||
STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Bygg vingesignal automatisk før: {STRING}
|
||||
@@ -1577,7 +1577,7 @@ STR_CONFIG_SETTING_STATUSBAR_POS :Statusbarens po
|
||||
STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Horisontal posisjon av status verktøylinjen på bunnen av skjermen
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS :Vinduers smekkeradius: {STRING}
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Avstanden mellom vinduer før vinduet som blir flyttet automatisk tilpasset nærliggende vinduer
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} piksel{P 0 "" s}
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} piks{P 0 el ler}
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :Deaktivert
|
||||
STR_CONFIG_SETTING_SOFT_LIMIT :Maksimalt antall flytende vinduer: {STRING}
|
||||
STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Antall ikke-klebrige åpne vinduer før gamle vinduer automatisk blir lukket for å gi plass til nye vinduer
|
||||
@@ -3908,8 +3908,8 @@ STR_TIMETABLE_STAY_FOR_ESTIMATED :(opphold i {STR
|
||||
STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(reise for {STRING}, ikke oppsatt med rutetabell)
|
||||
STR_TIMETABLE_STAY_FOR :og bli værende i {STRING}
|
||||
STR_TIMETABLE_AND_TRAVEL_FOR :og reis i {STRING}
|
||||
STR_TIMETABLE_DAYS :{COMMA}{NBSP}dag{P "" s}
|
||||
STR_TIMETABLE_TICKS :{COMMA}{NBSP}tikk{P "" s}
|
||||
STR_TIMETABLE_DAYS :{COMMA}{NBSP}dag{P "" er}
|
||||
STR_TIMETABLE_TICKS :{COMMA}{NBSP}tikk
|
||||
|
||||
STR_TIMETABLE_TOTAL_TIME :{BLACK}Det vil ta {STRING} å fullføre rutetabellen
|
||||
STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Det vil ta minst {STRING} å fullføre denne rutetabellen (rutetabell ikke fullstendig)
|
||||
|
@@ -4235,10 +4235,10 @@ STR_ORDER_UNLOAD :(Rozładuj i za
|
||||
STR_ORDER_UNLOAD_FULL_LOAD :(Rozładuj i czekaj na pełny załadunek)
|
||||
STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Rozładuj i czekaj na pełny załadunek któregoś z towarów)
|
||||
STR_ORDER_UNLOAD_NO_LOAD :(Rozładuj i pozostaw pusty)
|
||||
STR_ORDER_TRANSFER :(Przeładuj i zabierz ładunek)
|
||||
STR_ORDER_TRANSFER_FULL_LOAD :(Przeładuj i czekaj na pełny załadunek)
|
||||
STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Przeładuj i czekaj na pełny załadunek któregoś z towarów)
|
||||
STR_ORDER_TRANSFER_NO_LOAD :(Przeładuj i pozostaw pusty)
|
||||
STR_ORDER_TRANSFER :(Przeładunek i zabranie ładunku)
|
||||
STR_ORDER_TRANSFER_FULL_LOAD :(Przeładunek i oczekiwanie na pełny załadunek)
|
||||
STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Przeładunek i oczekiwanie na pełny załadunek któregoś z towarów)
|
||||
STR_ORDER_TRANSFER_NO_LOAD :(Przeładunek, pozostaw pusty)
|
||||
STR_ORDER_NO_UNLOAD :(Nie rozładowuj i zabierz ładunek)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD :(Nie rozładowuj i czekaj na pełny załadunek)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Nie rozładowuj i czekaj na pełny załadunek któregoś z towarów)
|
||||
@@ -4250,9 +4250,9 @@ STR_ORDER_FULL_LOAD_ANY_REFIT :(Przebuduj na {
|
||||
STR_ORDER_UNLOAD_REFIT :(Rozładuj, przebuduj na {STRING.b} i zabierz ładunek)
|
||||
STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Rozładuj, przebuduj na {STRING.b} i czekaj na pełny załadunek)
|
||||
STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Rozładuj, przebuduj na {STRING.b} i czekaj na pełny załadunek któregoś z towarów)
|
||||
STR_ORDER_TRANSFER_REFIT :(Przeładuj, przebuduj na {STRING.b} i zabierz ładunek)
|
||||
STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Przeładuj, przebuduj na {STRING.b} i czekaj na pełny załadunek)
|
||||
STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Przeładuj, przebuduj na {STRING.b} i czekaj na dowolny pełny załadunek)
|
||||
STR_ORDER_TRANSFER_REFIT :(Przeładunek, przebudowa na {STRING.b} i zabranie ładunku)
|
||||
STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Przeładunek, przebudowa na {STRING.b} i oczekiwanie na pełny załadunek)
|
||||
STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Przeładunek, przebudowa na {STRING.b} i oczekiwanie na dowolny pełny załadunek)
|
||||
STR_ORDER_NO_UNLOAD_REFIT :(Nie rozładowuj, przebuduj na {STRING.b} i zabierz ładunek)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Nie rozładowuj, przebuduj na {STRING.b} i czekaj na pełny załadunek)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Nie rozładowuj, przebuduj na {STRING.b} i czekaj na dowolny pełny załadunek)
|
||||
|
@@ -327,17 +327,17 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}显示
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}显示游戏目标选单
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}显示图表
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}显示公司名次表
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}建设新的工业设施
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}工业设施列表/产业链/建立新工业设施
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}显示公司的火车列表。按住 Ctrl 键单击可以切换组群和车辆列表。
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}显示公司的汽车列表。按住 Ctrl 键单击可以切换组群和汽车列表。
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}显示公司的船只列表。按住 Ctrl 键单击可以切换组群和船只列表。
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}显示公司的飞机列表。按住 Ctrl 键单击可以切换组群和飞机列表。
|
||||
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}放大视图
|
||||
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}缩小视图
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}建设铁路
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}建设公路
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}建设港口
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}建设机场
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}显示铁路建设工具
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}显示公路建设工具
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}显示水运建设工具
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}显示机场建设工具
|
||||
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}打开景观美化工具栏{}以修改地形、设置地貌等
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}显示 声音/音乐 控制菜单
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}显示最新消息新闻,消息选项,消息历史
|
||||
@@ -661,11 +661,11 @@ STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}停止
|
||||
STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}开始播放音乐
|
||||
STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}拖动滑块以调节音乐和音效的音量
|
||||
STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}选择全部乐曲
|
||||
STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}选择'旧的风格'音乐列表
|
||||
STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}选择'新的风格'音乐列表
|
||||
STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}选择'Ezy街头'风格的音乐列表
|
||||
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}选择'自定义1'(用户定义)的列表
|
||||
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}选择'自定义2'(用户定义)的列表
|
||||
STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}选择“老式音乐”列表
|
||||
STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}选择“新的风格”音乐列表
|
||||
STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}选择“Ezy街头”风格的音乐列表
|
||||
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}选择“自定义1”(用户定义)的列表
|
||||
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}选择“自定义2”(用户定义)的列表
|
||||
STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}开启/关闭 随机播放列表中的曲目
|
||||
STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}打开音乐选单窗口
|
||||
|
||||
@@ -844,7 +844,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE
|
||||
STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE}的调度计划中有无效调度命令
|
||||
STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} 有重复调度命令
|
||||
STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE}的调度计划有无效的车站
|
||||
STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} 的计划列表中有机场跑道太短不足及起降
|
||||
STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} 的计划列表中有一个机场的跑道太短而不能起降
|
||||
|
||||
STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} 即将达到报废年限
|
||||
STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} 已经达到报废年限
|
||||
@@ -1748,10 +1748,10 @@ STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}使用
|
||||
STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}创建自定义的游戏场景
|
||||
STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}开始联机游戏
|
||||
|
||||
STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}选择 '温带' 景观风格
|
||||
STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}选择 '寒带' 景观风格
|
||||
STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}选择 '沙漠' 景观风格
|
||||
STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}选择 '玩具' 景观风格
|
||||
STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}选择“温带”景观风格
|
||||
STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}选择“寒带”景观风格
|
||||
STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}选择“沙漠”景观风格
|
||||
STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}选择 “玩具”景观风格
|
||||
|
||||
STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}显示游戏选项
|
||||
STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}显示高分榜
|
||||
@@ -2424,7 +2424,7 @@ STR_STATION_BUILD_CARGO_TRAM_ORIENTATION :{WHITE}货运
|
||||
STR_STATION_BUILD_CARGO_TRAM_ORIENTATION_TOOLTIP :{BLACK}选择货运电车车站方向
|
||||
|
||||
# Waterways toolbar (last two for SE only)
|
||||
STR_WATERWAYS_TOOLBAR_CAPTION :{WHITE}码头建设
|
||||
STR_WATERWAYS_TOOLBAR_CAPTION :{WHITE}水运建设
|
||||
STR_WATERWAYS_TOOLBAR_CAPTION_SE :{WHITE}水运
|
||||
STR_WATERWAYS_TOOLBAR_BUILD_CANALS_TOOLTIP :{BLACK}修建运河
|
||||
STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP :{BLACK}建设船闸,按住 Shift 键操作可以显示所需资金
|
||||
|
@@ -434,7 +434,7 @@ STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Fundar nueva in
|
||||
|
||||
############ range for railway construction menu starts
|
||||
STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Construcción de ferrocarril
|
||||
STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construcción ferrocarril eléctrico
|
||||
STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construcción de ferrocarril eléctrico
|
||||
STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Construcción de monorraíl
|
||||
STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Construcción de maglev
|
||||
############ range ends here
|
||||
@@ -625,7 +625,7 @@ STR_PERFORMANCE_DETAIL_LOAN :{BLACK}Préstam
|
||||
STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Total:
|
||||
############ End of order list
|
||||
STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Cantidad de vehículos que obtuvieron beneficios el año pasado. Incluye vehículos de carretera, trenes, barcos y aeronaves
|
||||
STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Cantidad de partes de estación que han tenido servicio. Las estaciones de tren, paradas de autobus, aeropuertos y demás son contabilizadas por separado incluso si pertenecen a la misma estación
|
||||
STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Cantidad de partes de estación que han tenido servicio. Las estaciones de tren, paradas de autobús, aeropuertos y demás son contabilizadas por separado incluso si pertenecen a la misma estación
|
||||
STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Beneficio del vehículo con menores ingresos (de entre todos los vehículos con más de 2 años)
|
||||
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Cantidad de dinero ganado en el trimestre con el beneficio más bajo de los pasados 12 trimestres
|
||||
STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Cantidad de dinero ganado en el trimestre con el beneficio más alto de los pasados 12 trimestres
|
||||
@@ -645,8 +645,8 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLA
|
||||
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Personal 2
|
||||
STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Volumen música
|
||||
STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Volumen efectos
|
||||
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN
|
||||
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX
|
||||
STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MÍN
|
||||
STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MÁX
|
||||
STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}'
|
||||
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
|
||||
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
|
||||
@@ -656,15 +656,15 @@ STR_MUSIC_TRACK :{TINY_FONT}{BLA
|
||||
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Título
|
||||
STR_MUSIC_SHUFFLE :{TINY_FONT}{BLACK}Mezclar
|
||||
STR_MUSIC_PROGRAM :{TINY_FONT}{BLACK}Programa
|
||||
STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Pasar a pista anterior de la selección
|
||||
STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Pasar a siguiente pista de la selección
|
||||
STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Saltar a la pista anterior de la selección
|
||||
STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Saltar a la siguiente pista de la selección
|
||||
STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}Detener música
|
||||
STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}Comenzar música
|
||||
STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Mueva los cursores para fijar volumen de música y efectos
|
||||
STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}Seleccionar programa 'todas las pistas'
|
||||
STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}Seleccionar programa 'estilo antiguo'
|
||||
STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}Seleccionar programa 'estilo moderno'
|
||||
STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Elegir el programa musical de estilo 'Ezy Street'
|
||||
STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Seleccionar programa 'estilo Ezy Street'
|
||||
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Seleccionar programa 'Personal 1' (definido por el usuario)
|
||||
STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Seleccionar programa 'Personal 2' (definido por el usuario)
|
||||
STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Encender/apagar mezclador
|
||||
@@ -717,7 +717,7 @@ STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Mostrar
|
||||
STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Mostrar propietarios de terrenos en el mapa
|
||||
STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}Click en un tipo de industria para mostrarlo/ocultarlo. Ctrl+Click oculta todos los tipos excepto el seleccionado. Ctrl+Click de nuevo en el mismo tipo muestra todos los tipos de industrias
|
||||
STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}Click en una empresa para mostrar/ocultar sus propiedades. Ctrl+Click oculta todas las empresas excepto la seleccionada. Ctrl+Click de nuevo en la misma empresa muestra todas las empresas
|
||||
STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Un Click en una carga permite activar o desactivar su visualización. Ctrl+Click deshabilita todas las cargas excepto la seleccionada. Un segundo Ctrl+Click habilita la visualización de todos los tipos de carga
|
||||
STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Click en una carga permite activar o desactivar su visualización. Ctrl+Click deshabilita todas las cargas excepto la seleccionada. Un segundo Ctrl+Click habilita la visualización de todos los tipos de carga
|
||||
|
||||
STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}Carreteras
|
||||
STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}Ferrocarriles
|
||||
@@ -759,7 +759,7 @@ STR_SMALLMAP_ENABLE_ALL :{BLACK}Activar
|
||||
STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Mostrar altura
|
||||
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_INDUSTRIES :{BLACK}No mostrar industrias en el mapa
|
||||
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Mostrar todas las industrias en el mapa
|
||||
STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Mostrar / ocultar mapa de alturas
|
||||
STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Mostrar/ocultar mapa de alturas
|
||||
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}No mostrar propiedades de empresas en el mapa
|
||||
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Mostrar todas las propiedades de empresas en el mapa
|
||||
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}No muestra ninguna carga en el mapa
|
||||
@@ -942,7 +942,7 @@ STR_GAME_OPTIONS_TOWN_NAME_FRENCH :Francés
|
||||
STR_GAME_OPTIONS_TOWN_NAME_GERMAN :Alemán
|
||||
STR_GAME_OPTIONS_TOWN_NAME_ADDITIONAL_ENGLISH :Inglés (Adicional)
|
||||
STR_GAME_OPTIONS_TOWN_NAME_LATIN_AMERICAN :Latinoamericano
|
||||
STR_GAME_OPTIONS_TOWN_NAME_SILLY :Tontos
|
||||
STR_GAME_OPTIONS_TOWN_NAME_SILLY :Tontos - Absurdos
|
||||
STR_GAME_OPTIONS_TOWN_NAME_SWEDISH :Sueco
|
||||
STR_GAME_OPTIONS_TOWN_NAME_DUTCH :Holandés
|
||||
STR_GAME_OPTIONS_TOWN_NAME_FINNISH :Finlandés
|
||||
@@ -990,8 +990,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaño cuádru
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunto de gráficos base a usar
|
||||
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fichero{P "" s} perdido{P "" s} o corrupto{P "" s}
|
||||
STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Información adicional acerca de este fichero de gráficos
|
||||
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} archivo{P "" s} perdido{P "" s} o corrupto{P "" s}
|
||||
STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Información adicional sobre el set de gráficos base
|
||||
|
||||
STR_GAME_OPTIONS_BASE_SFX :{BLACK}Conjunto de sonidos base
|
||||
STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Seleccionar conjunto de sonidos base a emplear
|
||||
@@ -1031,7 +1031,7 @@ STR_CURRENCY_PREVIEW :{LTBLUE}Previa:
|
||||
STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 Libras(£) en tu moneda
|
||||
STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Cambiar parámetro de moneda personalizada
|
||||
|
||||
STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Num. Máximo de jugadores: {ORANGE}{COMMA}
|
||||
STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Núm. máximo de jugadores: {ORANGE}{COMMA}
|
||||
|
||||
STR_NONE :Ninguno
|
||||
STR_FUNDING_ONLY :Solo fundadas
|
||||
@@ -1087,7 +1087,7 @@ STR_CITY_APPROVAL_PERMISSIVE :Permisiva
|
||||
STR_CITY_APPROVAL_TOLERANT :Tolerante
|
||||
STR_CITY_APPROVAL_HOSTILE :Hostil
|
||||
|
||||
STR_WARNING_NO_SUITABLE_AI :{WHITE}No se encontraron IA apropiadas...{}Puedes descargar IA a través del sistema de 'Contenido Online'
|
||||
STR_WARNING_NO_SUITABLE_AI :{WHITE}No se encontraron IAs apropiadas...{}Puedes descargar IAs a través del sistema de 'Contenido Online'
|
||||
|
||||
# Settings tree window
|
||||
STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}Configuración
|
||||
@@ -1141,15 +1141,15 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro
|
||||
STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Derecha
|
||||
|
||||
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Máximo préstamo inicial: {STRING}
|
||||
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Máxima cantidad que una compañía puede tomar en un préstamo (sin tener en cuenta la inflación)
|
||||
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Máxima cantidad que una compañía puede recibir en un préstamo (sin tener en cuenta la inflación)
|
||||
STR_CONFIG_SETTING_INTEREST_RATE :Porcentaje de interés: {STRING}
|
||||
STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Porcentaje de interés de los préstamos; también controla la inflación en el caso de que esté activada
|
||||
STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Porcentaje de interés de los préstamos; también controla la inflación, en caso de que esté activada
|
||||
STR_CONFIG_SETTING_RUNNING_COSTS :Costes de operación: {STRING}
|
||||
STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Permite fijar el nivel de los costes de mantenimiento y operación de vehículos e infraestructuras
|
||||
STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Velocidad de construcción: {STRING}
|
||||
STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Limita la velocidad de las acciones de construcción para las IA
|
||||
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Averías de vehículos: {STRING}
|
||||
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Controla la frecuencia con la que los vehículos que no hayan tenido un mantenimiento adecuado se rompen
|
||||
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Controla la frecuencia con la que los vehículos, con mantenimiento inadecuado, se rompen
|
||||
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Multiplicador por subsidio: {STRING}
|
||||
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Permite fijar a cuanto se pagan las conexiones con subsidio
|
||||
STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Costes de construcción: {STRING}
|
||||
@@ -1157,11 +1157,11 @@ STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Fija el nivel d
|
||||
STR_CONFIG_SETTING_RECESSIONS :Recesiones: {STRING}
|
||||
STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Si se activa, ocurrirán recesiones cada pocos años. Durante una recesión, toda la producción es significativamente menor (volverá a su nivel anterior una vez acabe la recesión)
|
||||
STR_CONFIG_SETTING_TRAIN_REVERSING :Prohibir cambio de dirección de trenes en estaciones: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si se activa, los trenes no se darán la vuelta en estaciones no finales en el caso de que haya un camino más cercano si se dan la vuelta
|
||||
STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si se activa, los trenes no se darán la vuelta en estaciones no finales, ni aún existiendo un camino más corto a su próximo destino si se dan la vuelta
|
||||
STR_CONFIG_SETTING_DISASTERS :Desastres: {STRING}
|
||||
STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Activa desastres que ocasionalmente pueden bloquear o destruir vehículos o infraestructuras
|
||||
STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de los municipios frente a reestructuraciones en su zona: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Permite elegir la medida en la que el ruido y el daño ambiental causado por las compañías afecta a su calificación local en los municipios
|
||||
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Permite elegir en que medida el ruido y el daño ambiental causado por las compañías afecta a su calificación y nuevas acciones de construcción en los municipios
|
||||
|
||||
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Altura máxima del mapa: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Establece la altura máxima permitida para las montañas en el mapa
|
||||
@@ -1173,7 +1173,7 @@ STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Permite tener d
|
||||
STR_CONFIG_SETTING_EXTRADYNAMITE :Permitir eliminar más propiedades de los municipios: {STRING}
|
||||
STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Hace que sea más fácil eliminar infraestructuras y edificios de los municipios
|
||||
STR_CONFIG_SETTING_TRAIN_LENGTH :Longitud máxima de trenes: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Permite cambiar la longitud máxima de trenes
|
||||
STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Permite cambiar la longitud máxima de los trenes
|
||||
STR_CONFIG_SETTING_TILE_LENGTH :{COMMA} casilla{P 0 "" s}
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT :Cantidad de humo/chispas: {STRING}
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT :Permite indicar la cantidad de humo o chispas que son emitidos por vehículos
|
||||
@@ -1193,11 +1193,11 @@ STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permite añadir
|
||||
STR_CONFIG_SETTING_INFLATION :Inflación: {STRING}
|
||||
STR_CONFIG_SETTING_INFLATION_HELPTEXT :Activa la inflación económica, lo cual hace que los costes aumenten ligeramente más rápido que los beneficios
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Longitud máxima de puentes: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Máxima longitud permitida para puentes
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Longitud máxima permitida para los puentes
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :Altura máxima de puentes: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Altura máxima permitida al construir puentes
|
||||
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Longitud máxima de túneles: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Máxima longitud permitida para túneles
|
||||
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Longitud máxima permitida para los túneles
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Método de construcción de industria primaria: {STRING}
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Forma de fundar industrias primarias. 'ninguno' significa que no se puede crear ninguna, 'prospeccón' significa que es posible crear nuevas industrias, pero que éstas aparecen en un lugar aleatorio del mapa y pueden fallar. 'como las otras industrias' significa que las industrias primarias pueden construirse como el resto de industrias en cualquier lugar que se quiera
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Ninguno
|
||||
@@ -1213,7 +1213,7 @@ STR_CONFIG_SETTING_SIGNALSIDE_LEFT :A la izquierda
|
||||
STR_CONFIG_SETTING_SIGNALSIDE_DRIVING_SIDE :En el lado de conducción
|
||||
STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :A la derecha
|
||||
STR_CONFIG_SETTING_SHOWFINANCES :Mostrar ventana de finanzas al final del año: {STRING}
|
||||
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si se activa, la ventana de finanzas aparecerá al final de cada año para permitir inspeccionar de forma fácil el estado financiero de la compañía
|
||||
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si se activa, la ventana de finanzas aparecerá al final de cada año para permitir inspeccionar fácilmente el estado financiero de la compañía
|
||||
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Nuevas órdenes son 'sin parada' por defecto: {STRING}
|
||||
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalmente, un vehículo se detendrá en todas las estaciones por las que pase. Si se activa esta opción, pasará sin detenerse a través de todas las estaciones hasta llegar a su destino. Esta opción solamente cambia el comportamiento por defecto de las órdenes nuevas. Es posible especificar para cada orden el comportamiento que se desea
|
||||
STR_CONFIG_SETTING_STOP_LOCATION :Nuevos trenes paran por defecto en el {STRING} de la plataforma
|
||||
@@ -1236,7 +1236,7 @@ STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permite a las c
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Permitir pagar la reconstrucción de las carreteras locales: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Permite a las compañías dar dinero a los municipios para que reconstruyan sus carreteras, saboteando los servicios de carretera en la zona
|
||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Permitir enviar dinero a otras empresas: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permite la transferencia de dinero entre compañías en modo multijugador
|
||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permite la transferencia de dinero entre compañías en el modo multijugador
|
||||
STR_CONFIG_SETTING_FREIGHT_TRAINS :Multiplicador de peso para simular trenes pesados: {STRING}
|
||||
STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Permite fijar el impacto de llevar mercancías en los trenes. Un valor alto hace que a los trenes les cueste más llevar carga, especialmente en colinas
|
||||
STR_CONFIG_SETTING_PLANE_SPEED :Factor de velocidad de aeronaves: {STRING}
|
||||
@@ -1247,8 +1247,8 @@ STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Fija la probabi
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Ninguno
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reducida
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal
|
||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permite construir paradas sobre carreteras de los municipios: {STRING}
|
||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite construir estaciones de carretera de paso en carreteras que sean propiedad de municipios
|
||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permitir construir paradas sobre carreteras de los municipios: {STRING}
|
||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite construir estaciones de paso en carreteras que sean propiedad de los municipios
|
||||
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permitir pasar a través de las paradas de carretera de los competidores: {STRING}
|
||||
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Permite construir estaciones de carretera de paso en carreteras que sean propiedad de otras compañías
|
||||
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Cambiar esta opción no es posible cuando ya existen vehículos
|
||||
@@ -1820,14 +1820,14 @@ STR_LIVERY_PANEL_TOOLTIP :{BLACK}Seleccio
|
||||
|
||||
STR_LIVERY_DEFAULT :Estación normal
|
||||
STR_LIVERY_STEAM :Locomotora a Vapor
|
||||
STR_LIVERY_DIESEL :Locomotora Diesel
|
||||
STR_LIVERY_DIESEL :Locomotora Diésel
|
||||
STR_LIVERY_ELECTRIC :Locomotora Eléctrica
|
||||
STR_LIVERY_MONORAIL :Locomotora Monorraíl
|
||||
STR_LIVERY_MAGLEV :Locomotora Maglev
|
||||
STR_LIVERY_DMU :DMU
|
||||
STR_LIVERY_EMU :EMU
|
||||
STR_LIVERY_PASSENGER_WAGON_STEAM :Vagón Pasajeros (Vapor)
|
||||
STR_LIVERY_PASSENGER_WAGON_DIESEL :Vagón Pasajeros (Diesel)
|
||||
STR_LIVERY_PASSENGER_WAGON_DIESEL :Vagón Pasajeros (Diésel)
|
||||
STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Vagón Pasajeros (Eléctrico)
|
||||
STR_LIVERY_PASSENGER_WAGON_MONORAIL :Vagón Pasajeros (Monorraíl)
|
||||
STR_LIVERY_PASSENGER_WAGON_MAGLEV :Vagón Pasajeros (Maglev)
|
||||
@@ -2248,7 +2248,7 @@ STR_CONTENT_TYPE_GS_LIBRARY :Librería SJ
|
||||
|
||||
# Content downloading progress window
|
||||
STR_CONTENT_DOWNLOAD_TITLE :{WHITE}Descargando contenido...
|
||||
STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Solicitando ficheros...
|
||||
STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Solicitando archivos...
|
||||
STR_CONTENT_DOWNLOAD_FILE :{WHITE}Descargando {STRING} ({NUM} de {NUM})
|
||||
STR_CONTENT_DOWNLOAD_COMPLETE :{WHITE}Descarga completada
|
||||
STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} de {BYTES} descargadas ({NUM} %)
|
||||
@@ -2257,8 +2257,8 @@ STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES}
|
||||
STR_CONTENT_ERROR_COULD_NOT_CONNECT :{WHITE}No es posible conectarse al servidor de contenidos...
|
||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}Descarga errónea...
|
||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... conexión perdida
|
||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no se puede escribir en el fichero
|
||||
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No ha sido posible descomprimir el fichero descargado
|
||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no se puede escribir en el archivo
|
||||
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No ha sido posible descomprimir el archivo descargado
|
||||
|
||||
STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Gráficos no encontrados
|
||||
STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necesita gráficos para funcionar pero no se pudo encontrar ninguno. ¿Desea permitir que OpenTTD descargue e instale dichos gráficos?
|
||||
@@ -2802,28 +2802,28 @@ STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Borrar
|
||||
STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Borrar la programación seleccionada
|
||||
STR_NEWGRF_SETTINGS_ADD :{BLACK}Añadir
|
||||
STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Añade el NewGRF seleccionado a tu configuración
|
||||
STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Actualizar ficheros
|
||||
STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}Actualiza la lista de ficheros NewGRF disponibles
|
||||
STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Actualizar archivos
|
||||
STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}Actualiza la lista de archivos NewGRF disponibles
|
||||
STR_NEWGRF_SETTINGS_REMOVE :{BLACK}Retirar
|
||||
STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}Retirar el NewGRF seleccionado de la lista
|
||||
STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Mover Arriba
|
||||
STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Mueve el NewGRF seleccionado arriba en la lista
|
||||
STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Mover Abajo
|
||||
STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mueve el NewGRF seleccionado abajo en la lista
|
||||
STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualiza
|
||||
STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Utiliza las versiones más nuevas de los archivos NewGRF que dispongan de diversas versiones instaladas
|
||||
STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Una lista de los ficheros NewGRF instalados
|
||||
STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualizar
|
||||
STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Actualizar a la versión más reciente de los archivos NewGRF que tengan varias instaladas
|
||||
STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Una lista de los archivos NewGRF instalados
|
||||
|
||||
STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Establecer parámetros
|
||||
STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Mostrar parámetros
|
||||
STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}Seleccionar paleta
|
||||
STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Seleccionar la paleta del NewGRF seleccionado.{}Esto es necesario cuando los gráficos de este NewGRF se vean de color rosa
|
||||
STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Cambiar la paleta del NewGRF seleccionado.{}Esto es necesario cuando los gráficos de un NewGRF se ven de color rosa durante el juego
|
||||
STR_NEWGRF_SETTINGS_APPLY_CHANGES :{BLACK}Aplicar cambios
|
||||
|
||||
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Encontrar contenido que falta en línea
|
||||
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Comprobar si el contenido que falta puede ser encontrado en línea
|
||||
|
||||
STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Fichero: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Archivo: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versión: {SILVER}{NUM}
|
||||
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Mín. versión compatible: {SILVER}{NUM}
|
||||
@@ -2831,8 +2831,8 @@ STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum:
|
||||
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parámetros: {SILVER}{STRING}
|
||||
|
||||
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No tiene información disponible
|
||||
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Fichero no encontrado
|
||||
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No hay información disponible
|
||||
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Archivo no encontrado
|
||||
STR_NEWGRF_SETTINGS_DISABLED :{RED}Desactivado
|
||||
STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatible con esta versión de OpenTTD
|
||||
|
||||
@@ -2898,7 +2898,7 @@ STR_NEWGRF_ERROR_INVALID_PARAMETER :Parámetro inco
|
||||
STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING} debe ser cargado antes de {STRING}
|
||||
STR_NEWGRF_ERROR_LOAD_AFTER :{1:STRING} debe ser cargado después de {STRING}
|
||||
STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} requiere OpenTTD versión {STRING} o superior
|
||||
STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :El fichero GRF ha sido diseñado para ser traducido
|
||||
STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :El archivo GRF ha sido diseñado para ser traducido
|
||||
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Demasiados NewGRFs han sido cargados
|
||||
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Cargar {1:STRING} como NewGRF estático con {STRING} puede causar desincronizaciones
|
||||
STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Sprite inesperado (sprite {3:NUM})
|
||||
@@ -2918,19 +2918,19 @@ STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}¡Precau
|
||||
STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Se van a modificar los NewGRF de una partida ya comenzada. Esto puede provocar un error fatal en OpenTTD o romper la partida.{}No se deben crear reportes de bugs por problemas causados por esta acción.{}¿Está completamente seguro de esto?
|
||||
|
||||
STR_NEWGRF_DUPLICATE_GRFID :{WHITE}No se puede añadir: GRF ID duplicado
|
||||
STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Fichero no encontrado (GRF compatible cargado)
|
||||
STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir fichero: Límite de ficheros NewGRF alcanzado
|
||||
STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Archivo no encontrado (GRF compatible cargado)
|
||||
STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir archivo: Alcanzado el máximo de NewGRFs permitidos
|
||||
|
||||
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatibles cargados para ficheros que faltan
|
||||
STR_NEWGRF_DISABLED_WARNING :{WHITE}Fichero(s) GRF no encontrados han sido desactivados
|
||||
STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Fichero(s) GRF no encontrados
|
||||
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatibles cargados para archivos que faltan
|
||||
STR_NEWGRF_DISABLED_WARNING :{WHITE}Archivo(s) GRF no encontrados han sido desactivados
|
||||
STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Archivo(s) GRF no encontrados
|
||||
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Quitar la pausa puede hacer que se cierre OpenTTD. No notifique este error.{}¿Desea realmente quitar la pausa?
|
||||
|
||||
# NewGRF status
|
||||
STR_NEWGRF_LIST_NONE :Ninguno
|
||||
STR_NEWGRF_LIST_ALL_FOUND :Todos los ficheros presentes
|
||||
STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}Ficheros compatibles encontrados
|
||||
STR_NEWGRF_LIST_MISSING :{RED}Ficheros que faltan
|
||||
STR_NEWGRF_LIST_ALL_FOUND :Todos los archivos presentes
|
||||
STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}Archivos compatibles encontrados
|
||||
STR_NEWGRF_LIST_MISSING :{RED}Archivos que faltan
|
||||
|
||||
# NewGRF 'it's broken' warnings
|
||||
STR_NEWGRF_BROKEN :{WHITE}Es probable que el funcionamiento del NewGRF '{0:STRING}' cause desincronizaciones o fallos
|
||||
@@ -2939,8 +2939,8 @@ STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Ha cambi
|
||||
STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Ha cambiado la capacidad del vehículo para '{1:ENGINE}' fuera de un depósito o mientras no se estaba remodelando
|
||||
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Tren '{VEHICLE}' perteneciente a '{COMPANY}' tiene una longitud incorrecta. Puede ser debido a problemas con los NewGRF. El juego puede fallar
|
||||
|
||||
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}' da información incorrecta
|
||||
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Información de carga/reforma para '{1:ENGINE}' difiere tras la de la lista de compra después de la construcción. Esto puede causar que la renovación/reemplazo automáticos no reformen correctamente
|
||||
STR_NEWGRF_BUGGY :{WHITE}El NewGRF '{0:STRING}' da información incorrecta
|
||||
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}La información de carga/reforma para '{1:ENGINE}' difiere de la de lista de compra después de la construcción. Esto puede causar que la renovación/reemplazo automático no haga la reforma correcta
|
||||
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' ha causado un bucle sin fin en la 'callback' de producción
|
||||
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}'Callback' {1:HEX} devolvió el resultado desconocido o inválido {2:HEX}
|
||||
|
||||
@@ -3023,7 +3023,7 @@ STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Pagar la recons
|
||||
STR_LOCAL_AUTHORITY_ACTION_STATUE_OF_COMPANY :Poner una estatua al dueño de la empresa
|
||||
STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Pagar la construcción de nuevos edificios
|
||||
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar la exclusiva de los servicios de transporte
|
||||
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Sobornar la autoridad local
|
||||
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Sobornar a la autoridad local
|
||||
|
||||
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar una pequeña campaña publicitaria local para atraer más pasajeros y carga a sus servicios de transporte.{}Coste: {CURRENCY_LONG}
|
||||
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar una campaña publicitaria local mediana para atraer más pasajeros y carga a sus servicios de transporte.{}Coste: {CURRENCY_LONG}
|
||||
@@ -3921,7 +3921,7 @@ STR_TIMETABLE_STARTING_DATE :{BLACK}Fecha de
|
||||
STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}Selecciona una fecha como punto de partida de este horario. Ctrl+Click permite fijar el punto de partida de este horario y distribuye todos los vehículos que lo compartan siempre y cuando el horario esté completo
|
||||
|
||||
STR_TIMETABLE_CHANGE_TIME :{BLACK}Cambiar Horario
|
||||
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Cambia la cantidad de tiempo que debe tomar una orden marcada
|
||||
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Cambia la cantidad de tiempo que debe tardar una orden marcada
|
||||
|
||||
STR_TIMETABLE_CLEAR_TIME :{BLACK}Limpiar Horario
|
||||
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Limpiar la cantidad de tiempo para la orden seleccionada
|
||||
@@ -4068,13 +4068,13 @@ STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}El guard
|
||||
STR_ERROR_AUTOSAVE_FAILED :{WHITE}Error en Autoguardado
|
||||
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}No es posible leer la unidad
|
||||
STR_ERROR_GAME_SAVE_FAILED :{WHITE}Error guardando juego{}{STRING}
|
||||
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}No es posible borrar el fichero
|
||||
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}No es posible borrar el archivo
|
||||
STR_ERROR_GAME_LOAD_FAILED :{WHITE}Carga de Juego Errónea{}{STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Error interno: {STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Partida guardada corrupta - {STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :La partida guardada ha sido realizada con una versión más nueva
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :No se puede leer fichero
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :No se puede escribir en el fichero
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Archivo no legible
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :No se puede escribir en el archivo
|
||||
STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Comprobación de integridad de los datos fallida
|
||||
STR_GAME_SAVELOAD_NOT_AVAILABLE :<no disponible>
|
||||
STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}El juego ha sido guardado en una versión sin soporte para tranvías. Todos los tranvías serán eliminados
|
||||
@@ -4084,7 +4084,7 @@ STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Generaci
|
||||
STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... no hay municipios en el escenario
|
||||
|
||||
STR_ERROR_PNGMAP :{WHITE}No se pudo cargar mapa de alturas PNG...
|
||||
STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... fichero no encontrado
|
||||
STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... archivo no encontrado
|
||||
STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... no se pudo convertir tipo de imagen. Se requieren imágenes PNG de 8 o 24-bits
|
||||
STR_ERROR_PNGMAP_MISC :{WHITE}... algo ha salido mal (es probable que el fichero esté corrupto)
|
||||
|
||||
@@ -4604,7 +4604,7 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_CHANEY_JUBILEE_STEAM :Chaney 'Jubilee
|
||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_GINZU_A4_STEAM :Ginzu 'A4' (Vapor)
|
||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_8P_STEAM :SH '8P' (Vapor)
|
||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MANLEY_MOREL_DMU_DIESEL :Manley-Morel DMU (Diesel)
|
||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_DASH_DIESEL :'Dash' (Diesel)
|
||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_DASH_DIESEL :'Dash' (Diésel)
|
||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_HENDRY_25_DIESEL :SH/Hendry '25' (Diesel)
|
||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_UU_37_DIESEL :UU '37' (Diesel)
|
||||
STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_FLOSS_47_DIESEL :Floss '47' (Diesel)
|
||||
|
@@ -1258,7 +1258,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :By ynskeakeljen
|
||||
STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Warskôgje as in fiertúch it paad bjuster is: {STRING}
|
||||
STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Lit berjochten sjen at in fiertúch gjin paad nei syn bestimming fine kin
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW :Hâld fiertúchoarders yn de gaten: {STRING}
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :By ynkeakeljen wurde de oarder fan de fiertugen sa no en dan kontrolearre en wurde flater dy't dêrby nei boppe komme melden
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :By ynskeakeljen wurde de oarder fan de fiertugen sa no en dan kontrolearre en wurde flater dy't dêrby nei boppe komme melden
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :Nee
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :Ja, mar slút stilsteande fiertugen út
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_ON :Fan alle fiertugen
|
||||
@@ -1303,7 +1303,9 @@ STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Rûch
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Tige rûch
|
||||
STR_CONFIG_SETTING_VARIETY :Fariaasjedistribusje: {STRING}
|
||||
STR_CONFIG_SETTING_RIVER_AMOUNT :Tal rivieren: {STRING}
|
||||
STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Kieze hoefolle rivieren generearje moatte wurde
|
||||
STR_CONFIG_SETTING_TREE_PLACER :Algoritme foar pleatsing beamen: {STRING}
|
||||
STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Kies de spreding fan beammen op 'e kaart: 'Orizjineel' plantet beammen ferspreid oer de kaart, 'Ferbettere' plantet beammen yn kloften
|
||||
STR_CONFIG_SETTING_TREE_PLACER_NONE :Gjin
|
||||
STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Orizjineel
|
||||
STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Ferbettere
|
||||
@@ -1328,7 +1330,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Grien
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Donker grien
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Fiolet
|
||||
STR_CONFIG_SETTING_REVERSE_SCROLLING :Draai scrollrjochtig om: {STRING}
|
||||
STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :By útskeakjen beweecht de mûs de kamera. By ynskeakeljen beweecht de mûs de kaart
|
||||
STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :By útskeakeljen beweecht de mûs de kamera. By ynskeakeljen beweecht de mûs de kaart
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Loaitsfinster floeiend scrolle : {STRING}
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Bepaalt hoe it haadfinster scrollt. By ynskeakeljen sil dit floeiend wêze. By útskeakeljen ljept it byld direktst nei de selektearre lokaasje
|
||||
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Under it gebrûk fan de ferskate bou-arken diminsjes sjen litte: {STRING}
|
||||
@@ -1446,6 +1448,7 @@ STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Middel
|
||||
STR_CONFIG_SETTING_AI_PROFILE_HARD :Dreech
|
||||
|
||||
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Stea AIs ta yn multiplayer: {STRING}
|
||||
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Kompjûterspilers tastean mei te spylje yn multyspyler spullen
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT :reperaasje skemas binne yn procenten: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Standert reparaasjeskema foar treinen: {STRING}
|
||||
@@ -1560,6 +1563,7 @@ STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :langsaam
|
||||
STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :gewoan
|
||||
STR_CONFIG_SETTING_TOWN_GROWTH_FAST :snel
|
||||
STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Hiel snel
|
||||
STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 in {COMMA}
|
||||
STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Gjin
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Begjin stêdgrutte fermenigfuldiger: {STRING}
|
||||
|
||||
@@ -1646,6 +1650,7 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Feroarje
|
||||
# Config errors
|
||||
STR_CONFIG_ERROR_ARRAY :{WHITE}... flater in reeks '{STRING}'
|
||||
STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... ûnjildige wearde '{STRING}' foar '{STRING}'
|
||||
STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :koe net fûn wurde
|
||||
STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :Dat strykt net mei dizze ferzje fan OpenTTD
|
||||
STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :ûnbekind
|
||||
|
||||
@@ -3293,12 +3298,23 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(Net losse en w
|
||||
STR_ORDER_NO_UNLOAD_NO_LOAD :(net lade of losse)
|
||||
|
||||
STR_ORDER_AUTO_REFIT :(Ombouwe nei {STRING})
|
||||
STR_ORDER_NO_UNLOAD_REFIT :(Net losse en fracht meinimme mei ombou nei {STRING})
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Net losse en folslein lade mei ombou nei {STRING})
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Net losse en ien fracht folslein lade mei ombou nei {STRING})
|
||||
|
||||
STR_ORDER_AUTO_REFIT_ANY :beskikbere fracht
|
||||
|
||||
STR_ORDER_STOP_LOCATION_NEAR_END :[begjin]
|
||||
STR_ORDER_STOP_LOCATION_MIDDLE :[midden]
|
||||
STR_ORDER_STOP_LOCATION_FAR_END :[ein]
|
||||
|
||||
STR_ORDER_OUT_OF_RANGE :{RED} (Folgjende bestimming is bûten berik)
|
||||
|
||||
STR_ORDER_CONDITIONAL_UNCONDITIONAL :Ljep nei opdracht {COMMA}
|
||||
STR_ORDER_CONDITIONAL_NUM :Ljep nei opdracht {COMMA} at {STRING} {STRING} {COMMA}
|
||||
STR_ORDER_CONDITIONAL_TRUE_FALSE :Ljep nei opdracht {COMMA} at {STRING} {STRING}
|
||||
|
||||
STR_INVALID_ORDER :{RED} (Unjildige opdracht)
|
||||
|
||||
# Time table window
|
||||
STR_TIMETABLE_ORDER_VIEW :{BLACK}Opdrachten
|
||||
@@ -3314,6 +3330,7 @@ STR_TIMETABLE_DAYS :{COMMA}{NBSP}{P
|
||||
STR_TIMETABLE_TICKS :{COMMA}{NBSP}tik{P "" ken}
|
||||
|
||||
|
||||
STR_TIMETABLE_STATUS_ON_TIME :{BLACK}Dit fiertûg is op tiid
|
||||
|
||||
|
||||
STR_TIMETABLE_CHANGE_TIME :{BLACK}Tiid Feroarje
|
||||
@@ -3326,6 +3343,7 @@ STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}Feroarje
|
||||
STR_TIMETABLE_CLEAR_SPEED :{BLACK}Helje maksimum snelheid fuort
|
||||
STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Helje de maksimum reissnelheid fuort fan de opljochte oarder
|
||||
|
||||
STR_TIMETABLE_RESET_LATENESS :{BLACK}Fertragingsteller weromsette
|
||||
|
||||
|
||||
STR_TIMETABLE_EXPECTED :{BLACK}Ferwachte
|
||||
@@ -3373,7 +3391,9 @@ STR_AI_CONFIG_CHANGE_GAMESCRIPT :Spulskript
|
||||
STR_AI_LIST_CAPTION :{WHITE}Beskikber {STRING}
|
||||
STR_AI_LIST_CAPTION_AI :AIs
|
||||
STR_AI_LIST_CAPTION_GAMESCRIPT :Spulskripten
|
||||
STR_AI_LIST_TOOLTIP :{BLACK}Klik om in skript te selektearje
|
||||
|
||||
STR_AI_LIST_AUTHOR :{LTBLUE}Makker: {ORANGE}{STRING}
|
||||
STR_AI_LIST_VERSION :{LTBLUE}Ferzje: {ORANGE}{NUM}
|
||||
STR_AI_LIST_URL :{LTBLUE}URL: {ORANGE}{STRING}
|
||||
|
||||
@@ -3420,6 +3440,8 @@ STR_ERROR_GAME_SAVE_FAILED :{WHITE}Opslaan
|
||||
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Kin bestân net fuortsmite
|
||||
STR_ERROR_GAME_LOAD_FAILED :{WHITE}Laden Mislearre{}{STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Interne flater: {STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Koe bestân net lêze
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :Koe net nei bestân skriuwe
|
||||
STR_GAME_SAVELOAD_NOT_AVAILABLE :<net beskikber>
|
||||
|
||||
# Map generation messages
|
||||
@@ -3462,13 +3484,16 @@ STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}Net tast
|
||||
# Local authority errors
|
||||
STR_ERROR_LOCAL_AUTHORITY_REFUSES_TO_ALLOW_THIS :{WHITE}{TOWN} gemiente stiet dit net ta
|
||||
STR_ERROR_LOCAL_AUTHORITY_REFUSES_AIRPORT :{WHITE}{TOWN} gemeente lit it net ta dat der noch in fleanfjild bout wurd yn dizze stêd
|
||||
STR_ERROR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}{TOWN} gemeente lit it net ta dat der in fleanfjild bout wurd fanwegen lûdoerlêst
|
||||
|
||||
# Levelling errors
|
||||
STR_ERROR_CAN_T_RAISE_LAND_HERE :{WHITE}Kin it lân hjir net ferheegje...
|
||||
STR_ERROR_CAN_T_LOWER_LAND_HERE :{WHITE}Kin it lân hjir net ferleegje...
|
||||
STR_ERROR_CAN_T_LEVEL_LAND_HERE :{WHITE}Kin it lân hjir net egalisearje...
|
||||
STR_ERROR_EXCAVATION_WOULD_DAMAGE :{WHITE}Utgrave soe tunnel beskeadigje
|
||||
STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}Lân is al op seenivo
|
||||
STR_ERROR_TOO_HIGH :{WHITE}Te heech
|
||||
STR_ERROR_ALREADY_LEVELLED :{WHITE}... is al plat
|
||||
|
||||
# Company related errors
|
||||
STR_ERROR_CAN_T_CHANGE_COMPANY_NAME :{WHITE}Kin bedriuwsnamme net feroarje...
|
||||
@@ -3479,10 +3504,12 @@ STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}Kin net
|
||||
STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... gjin liening werom te betelje
|
||||
STR_ERROR_CURRENCY_REQUIRED :{WHITE}...{CURRENCY_LONG} nedich
|
||||
STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Kin liening net werombetelje...
|
||||
STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kin gjin jild dat fan de bank lient is weijaan...
|
||||
STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Kin bedriuw net keapje...
|
||||
STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Kin gjin haadkantoar boue
|
||||
STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kin net 25% oandielen fan dit bedriuw keapje...
|
||||
STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kin net 25% oandielen fan dit bedriuw ferkeapje...
|
||||
STR_ERROR_PROTECTED :{WHITE}Dit bedriuw is noch net âld genoch om oandielen te ferhannelje...
|
||||
|
||||
# Town related errors
|
||||
STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kin gjin stêd bouwe
|
||||
@@ -3493,10 +3520,13 @@ STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... te t
|
||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... te ticht by in oare stêd
|
||||
STR_ERROR_TOO_MANY_TOWNS :{WHITE}... te folle stêden
|
||||
STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... der is gjin romte mear op'e kaart
|
||||
STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Wurk oan de dyk dwaande
|
||||
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Kin dizze stêd net fuorthelje...{}In stasjon of depôt ferwiist nei dizze stêd of in tegel dy't eigendom van dizze stêd is kin net fuorthelje wurde
|
||||
STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... Gjin geskikt plak fûn foar in stânbield in dizze stêd
|
||||
|
||||
# Industry related errors
|
||||
STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... te folle yndustryen
|
||||
STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}Kin gjin yndustryen generearje...
|
||||
STR_ERROR_CAN_T_BUILD_HERE :{WHITE}Kin hjir gjin {STRING} boue...
|
||||
STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}Kin dit type yndustry hjir net boue...
|
||||
STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... te ticht by in oare yndustry
|
||||
@@ -3506,12 +3536,15 @@ STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... kin
|
||||
STR_ERROR_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}... kin allinnich yn in reinwâld bout wurde
|
||||
STR_ERROR_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}... kin allinnich yn in woastine bout wurde
|
||||
STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}... kin allinnich yn in stêd bout wurde (ferfangt besteande hûzen)
|
||||
STR_ERROR_CAN_ONLY_BE_BUILT_NEAR_TOWN_CENTER :{WHITE}... kin allinich by it sintrum van in stêd bout wurde
|
||||
STR_ERROR_CAN_ONLY_BE_BUILT_IN_LOW_AREAS :{WHITE}... kin allinnich yn lege plakken bout wurde
|
||||
STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... kin allinich pleatse wurde by de rân fan'e kaart
|
||||
STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... bosk kin allinich boppe snieline boud wurde
|
||||
STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... kin allinich boppe snieline boud wurde
|
||||
STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... kin allinich ûnder snieline boud wurde
|
||||
|
||||
STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}Der wie gjin gaadlike plak foar '{STRING}' industryen
|
||||
STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Feroarje de mapynstellings om in bettere kaart te krijen
|
||||
|
||||
# Station construction related errors
|
||||
STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Kin hjir gjin treinstasjon boue...
|
||||
@@ -3525,14 +3558,20 @@ STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}Kin hjir
|
||||
STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Ferbynt mear dan ien stasjon
|
||||
STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... stasjon is te grut
|
||||
STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Te folle stasjons
|
||||
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Te folle stasjonsdielen
|
||||
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Te folle bushaltes
|
||||
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Te folle frachtstasjons
|
||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Te ticht by in oar stasjon
|
||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Te ticht by in oare haven
|
||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Te ticht by in oar fleanfjild
|
||||
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kin namme fan stasjon net feroarje
|
||||
STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... dizze dyk is eigendom fan in stêd
|
||||
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... dyk leit in ferkearde rjochting
|
||||
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... trochriidhaltes kinne gjin bochten hawwe
|
||||
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... trochriidhaltes kinne gjin krusings hawwe
|
||||
|
||||
# Station destruction related errors
|
||||
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kin diel fan it stasjon net fourthelje...
|
||||
STR_ERROR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Treinstasjon moat earst fuorthelle wurde
|
||||
STR_ERROR_CAN_T_REMOVE_BUS_STATION :{WHITE}Kin busstasjon net fuorthelje...
|
||||
STR_ERROR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Kin frachtstasjon net fuorthelje...
|
||||
|
@@ -844,6 +844,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE
|
||||
STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} chưa có lệnh
|
||||
STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} có các lệnh trùng lặp
|
||||
STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} có trạm bất hợp lệ trong lệnh
|
||||
STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} có trong lộ trình một sân bay có đường băng quá ngắn
|
||||
|
||||
STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} đang cũ đi
|
||||
STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} đang xuống cấp
|
||||
@@ -1287,17 +1288,28 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Hiển thị d
|
||||
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Độ đậm của đường kẻ trong đồ thị: {STRING}
|
||||
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Độ đậm của đường vẽ trên đồ thị. Một đường mảnh sẽ chính xác hơn, trong khi đó đường đậm sẽ dễ nhìn hơn và màu sắc dễ phân biệt hơn
|
||||
|
||||
STR_CONFIG_SETTING_LANDSCAPE :Nền đất: {STRING}
|
||||
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Nền đất là định nghĩa cơ bản của các màn chơi với các kiểu hàng hóa và yêu cầu cho sự phát triển đô thị khác nhau. NewGRF và kịch bản chơi cho phép các điều chỉnh nhỏ hơn.
|
||||
STR_CONFIG_SETTING_LAND_GENERATOR :Tạo nền đất: {STRING}
|
||||
STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Bộ khởi tạo nguyên bản chỉ dựa vào tập hợp đồ họa đối tượng cơ bản, rồi sinh ra các dạng địa hình cố đinh. Với TerraGenesis thì dựa trên có chế nhiễu loạn (noise) kiểu Perlin và cho phép các điều chỉnh nhỏ hơn.
|
||||
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Nguyên Bản
|
||||
STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis
|
||||
STR_CONFIG_SETTING_TERRAIN_TYPE :Kiểu nền đất: {STRING}
|
||||
STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Chỉ cho TerraGenesis) Địa hình nhiều đồi núi
|
||||
STR_CONFIG_SETTING_INDUSTRY_DENSITY :Mật độ nhà máy: {STRING}
|
||||
STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Thiết lập số nhà máy sẽ được tạo ra và mức độ dùy trì trong ván chơi
|
||||
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Khoảng cách tối đa từ lề bản đồ tới nhà máy lọc dầu: {STRING}
|
||||
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Nhà máy hóa dầu chỉ có thể xây gần rìa bản đồ, tương ứng là ven biển với những bản đồ dạng đảo
|
||||
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Độ cao tuyết phủ: {STRING}
|
||||
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Điều chỉnh độ cao của tuyết phủ đối với địa hình xứ lanh. Tuyết phủ có thể ảnh hưởng tới việc tạo ra nhà máy và các yêu cầu cho sự tăng trưởng đô thị
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Độ gồ ghề của địa chất: {STRING}
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Chỉ cho TerraGenesis) Chọn mức độ trùng điệp của núi: địa hình bằng phẳng thì ít hơn, địa hình đồi núi thì nhiều hơn. Địa hình gồ ghề có nhiều núi và trông có vẻ lặp lại
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Rất Phẳng
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Phẳng
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Gồ Ghề
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Rất Gồ Ghề
|
||||
STR_CONFIG_SETTING_VARIETY :Phân bổ sự đa dạng: {STRING}
|
||||
STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Chỉ cho TerraGenesis) Điều chỉnh liệu rằng bản đồ gồm cả vùng núi cao và vùng đồng bằng. Đây chỉ là điều chỉnh cho sự bằng phẳng hơn, các thiết lập khác sẽ điều chỉnh cho vùng núi.
|
||||
STR_CONFIG_SETTING_RIVER_AMOUNT :Số lượng sông ngòi: {STRING}
|
||||
STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Chọn số lượng sông ngòi được khởi tạo
|
||||
STR_CONFIG_SETTING_TREE_PLACER :Thuật toán đặt cây: {STRING}
|
||||
@@ -1653,11 +1665,21 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m)
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Tiêu Chuẩn Đo Lường
|
||||
STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Đồ họa
|
||||
STR_CONFIG_SETTING_SOUND :{ORANGE}Âm thanh
|
||||
STR_CONFIG_SETTING_INTERFACE :{ORANGE}Giao Diện
|
||||
STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Tổng quát
|
||||
STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Vùng nhìn
|
||||
STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Xây Dựng
|
||||
STR_CONFIG_SETTING_ADVISORS :{ORANGE}Tin tức / Cố vấn
|
||||
STR_CONFIG_SETTING_COMPANY :{ORANGE}Công ty
|
||||
STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Kế toán
|
||||
STR_CONFIG_SETTING_VEHICLES :{ORANGE}Phương Tiện
|
||||
STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Vật lý
|
||||
STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Tìm đường
|
||||
STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Giới hạn
|
||||
STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Thiên tai / Tai nạn
|
||||
STR_CONFIG_SETTING_GENWORLD :{ORANGE}Khởi tạo bản đồ
|
||||
STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Môi trường
|
||||
STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Chính quyền
|
||||
STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Đô thị
|
||||
@@ -2684,6 +2706,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Lưu
|
||||
STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Lưu ván chơi hiện tại, sử dụng tên đã chọn
|
||||
STR_SAVELOAD_LOAD_BUTTON :{BLACK}Nạp
|
||||
STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Nạp ván chơi được chọn
|
||||
STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Nạp bản đồ địa hình đang chọn
|
||||
STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Chi Tiết Trò Chơi
|
||||
STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Không có thông tin gì cả.
|
||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||
@@ -2852,6 +2875,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite t
|
||||
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Xử lý sprite bình thường ở trước, bỏ qua các loại pseudo/recolour/font sprite căn theo điểm bắt đầu
|
||||
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Theo những thông tin của sprite đã chọn. Thì việc căn chỉnh khi vẽ đối với sprite này sẽ bị bỏ qua
|
||||
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Di chuyển sprite xung quanh, thay đổi X và Y offsets
|
||||
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Đặt lại tương đối
|
||||
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Đặt lại các dịch chuyển tương đối hiện tại
|
||||
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK} dịch X: {NUM}, dịch Y: {NUM} (tuyệt đối)
|
||||
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}toạ độ X: {NUM}, toạ độ Y: {NUM} (tương đối)
|
||||
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Chọn sprite
|
||||
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Chọn sprite ở bất cứ đâu trên màn hình
|
||||
|
||||
@@ -3328,6 +3355,8 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Xoá nh
|
||||
STR_GROUP_RENAME_TOOLTIP :{BLACK}Đổi tên nhóm
|
||||
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Không để nhóm này tự thay thế (thiết lập chung) khi hết hạn
|
||||
|
||||
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Xóa Nhóm
|
||||
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Bạn có chắc chắn muốn xóa nhóm này và tất cả con của nó?
|
||||
|
||||
STR_GROUP_ADD_SHARED_VEHICLE :Thêm phương tiện được chia sẻ
|
||||
STR_GROUP_REMOVE_ALL_VEHICLES :Xoá tất cả phương tiện
|
||||
@@ -3869,6 +3898,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Di chuyển (kh
|
||||
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Hành trình với tốc độ tối đa là {2:VELOCITY} (chưa dựng lịch trình)
|
||||
STR_TIMETABLE_TRAVEL_FOR :Di chuyển trong {STRING}
|
||||
STR_TIMETABLE_TRAVEL_FOR_SPEED :Lộ trình {STRING} với tốc độ tối đa {VELOCITY}
|
||||
STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Lộ trình (cho {STRING}, chưa có lịch trình)
|
||||
STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Lộ trình (cho {STRING}, chưa có lịch trình) với tốc độ đối đa {VELOCITY}
|
||||
STR_TIMETABLE_STAY_FOR_ESTIMATED :(ở lại {STRING}, chưa có lịch trình)
|
||||
STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(di chuyển đến {STRING}, chưa có lịch trình)
|
||||
STR_TIMETABLE_STAY_FOR :và ở lại trong {STRING}
|
||||
STR_TIMETABLE_AND_TRAVEL_FOR :và di chuyển trong {STRING}
|
||||
STR_TIMETABLE_DAYS :{COMMA}{NBSP}ngày
|
||||
@@ -4327,6 +4360,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... bạ
|
||||
STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Không thể tạo nhóm...
|
||||
STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Không thể xoá bỏ nhóm...
|
||||
STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Không thể đổi tên nhóm...
|
||||
STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Không thể thiết đặt nhóm cha...
|
||||
STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Không thể bỏ các phương tiện trong nhóm này...
|
||||
STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Không thể thêm phương tiện vào nhóm này...
|
||||
STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Không thể thêm phương tiện được chia sẻ vào nhóm...
|
||||
|
@@ -284,8 +284,8 @@ STR_SORT_BY_PRODUCTION :Cynyrch
|
||||
STR_SORT_BY_TYPE :Math
|
||||
STR_SORT_BY_TRANSPORTED :Wedi'i gludo
|
||||
STR_SORT_BY_NUMBER :Rhif
|
||||
STR_SORT_BY_PROFIT_LAST_YEAR :Elw eleni
|
||||
STR_SORT_BY_PROFIT_THIS_YEAR :Elw llynedd
|
||||
STR_SORT_BY_PROFIT_LAST_YEAR :Elw llynedd
|
||||
STR_SORT_BY_PROFIT_THIS_YEAR :Elw eleni
|
||||
STR_SORT_BY_AGE :Oed
|
||||
STR_SORT_BY_RELIABILITY :Dibynadwyedd
|
||||
STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Cyfanswm Gallu Cludo fesul y math o lwyth
|
||||
@@ -2875,6 +2875,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Corlun b
|
||||
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Mynd i'r corlun cyffredin blaenorol, gan hepgor unrhyw gorluniau ailliwio/ffont/llidgorluniau, ac amlapio o'r corlun cyntaf i'r olaf
|
||||
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Cynrychioliad o'r corlun a ddewiswyd. Fe anwybyddir yr aliniad wrth lunio'r corlun
|
||||
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Symud y corlun, gan newid yr atredau X ac Y
|
||||
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Ailosod perthyniad
|
||||
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Ailosod y dodiadau perthynol
|
||||
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Dodiad X: {NUM}, Dodiad Y: {NUM} (Absoliwt)
|
||||
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Dodiad X: {NUM}, Dodiad Y: {NUM} (Perthynol)
|
||||
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Dewis corlun
|
||||
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Dewis corlun o ynrhyw fan ar y sgrïn
|
||||
|
||||
|
@@ -63,7 +63,6 @@ NetworkCompanyState *_network_company_states = NULL; ///< Statistics about some
|
||||
ClientID _network_own_client_id; ///< Our client identifier.
|
||||
ClientID _redirect_console_to_client; ///< If not invalid, redirect the console output to a client.
|
||||
bool _network_need_advertise; ///< Whether we need to advertise.
|
||||
uint32 _network_last_advertise_frame; ///< Last time we did advertise.
|
||||
uint8 _network_reconnect; ///< Reconnect timeout
|
||||
StringList _network_bind_list; ///< The addresses to bind on.
|
||||
StringList _network_host_list; ///< The servers we know.
|
||||
@@ -759,7 +758,6 @@ bool NetworkServerStart()
|
||||
if (_network_dedicated) IConsoleCmdExec("exec scripts/on_dedicated.scr 0");
|
||||
|
||||
/* Try to register us to the master server */
|
||||
_network_last_advertise_frame = 0;
|
||||
_network_need_advertise = true;
|
||||
NetworkUDPAdvertise();
|
||||
|
||||
@@ -1076,7 +1074,6 @@ void NetworkStartUp()
|
||||
/* Network is available */
|
||||
_network_available = NetworkCoreInitialize();
|
||||
_network_dedicated = false;
|
||||
_network_last_advertise_frame = 0;
|
||||
_network_need_advertise = true;
|
||||
_network_advertise_retries = 0;
|
||||
|
||||
|
@@ -282,10 +282,22 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
/** Filter data for NetworkContentListWindow. */
|
||||
struct ContentListFilterData {
|
||||
StringFilter string_filter; ///< Text filter of content list
|
||||
ContentType type; ///< Content type displayed
|
||||
};
|
||||
|
||||
/** Filter criterias for NetworkContentListWindow. */
|
||||
enum ContentListFilterCriteria {
|
||||
CONTENT_FILTER_TEXT = 0, ///< Filter by query sting
|
||||
CONTENT_FILTER_TYPE_OR_SELECTED,///< Filter by being of displayed type or selected for download
|
||||
};
|
||||
|
||||
/** Window that lists the content that's at the content server */
|
||||
class NetworkContentListWindow : public Window, ContentCallback {
|
||||
/** List with content infos. */
|
||||
typedef GUIList<const ContentInfo *, StringFilter &> GUIContentList;
|
||||
typedef GUIList<const ContentInfo *, ContentListFilterData &> GUIContentList;
|
||||
|
||||
static const uint EDITBOX_MAX_SIZE = 50; ///< Maximum size of the editbox in characters.
|
||||
|
||||
@@ -295,7 +307,7 @@ class NetworkContentListWindow : public Window, ContentCallback {
|
||||
static GUIContentList::FilterFunction * const filter_funcs[]; ///< Filter functions.
|
||||
GUIContentList content; ///< List with content
|
||||
bool auto_select; ///< Automatically select all content when the meta-data becomes available
|
||||
StringFilter string_filter; ///< Filter for content list
|
||||
ContentListFilterData filter_data; ///< Filter for content list
|
||||
QueryString filter_editbox; ///< Filter editbox;
|
||||
Dimension checkbox_size; ///< Size of checkbox/"blot" sprite
|
||||
|
||||
@@ -431,20 +443,38 @@ class NetworkContentListWindow : public Window, ContentCallback {
|
||||
}
|
||||
|
||||
/** Filter content by tags/name */
|
||||
static bool CDECL TagNameFilter(const ContentInfo * const *a, StringFilter &filter)
|
||||
static bool CDECL TagNameFilter(const ContentInfo * const *a, ContentListFilterData &filter)
|
||||
{
|
||||
filter.ResetState();
|
||||
filter.string_filter.ResetState();
|
||||
for (int i = 0; i < (*a)->tag_count; i++) {
|
||||
filter.AddLine((*a)->tags[i]);
|
||||
filter.string_filter.AddLine((*a)->tags[i]);
|
||||
}
|
||||
filter.AddLine((*a)->name);
|
||||
return filter.GetState();
|
||||
filter.string_filter.AddLine((*a)->name);
|
||||
return filter.string_filter.GetState();
|
||||
}
|
||||
|
||||
/** Filter content by type, but still show content selected for download. */
|
||||
static bool CDECL TypeOrSelectedFilter(const ContentInfo * const *a, ContentListFilterData &filter)
|
||||
{
|
||||
if (filter.type == CONTENT_TYPE_END) return true;
|
||||
if ((*a)->type == filter.type) return true;
|
||||
return ((*a)->state == ContentInfo::SELECTED || (*a)->state == ContentInfo::AUTOSELECTED);
|
||||
}
|
||||
|
||||
/** Filter the content list */
|
||||
void FilterContentList()
|
||||
{
|
||||
if (!this->content.Filter(this->string_filter)) return;
|
||||
/* Apply filters. */
|
||||
bool changed = false;
|
||||
if (!this->filter_data.string_filter.IsEmpty()) {
|
||||
this->content.SetFilterType(CONTENT_FILTER_TEXT);
|
||||
changed |= this->content.Filter(this->filter_data);
|
||||
}
|
||||
if (this->filter_data.type != CONTENT_TYPE_END) {
|
||||
this->content.SetFilterType(CONTENT_FILTER_TYPE_OR_SELECTED);
|
||||
changed |= this->content.Filter(this->filter_data);
|
||||
}
|
||||
if (!changed) return;
|
||||
|
||||
/* update list position */
|
||||
for (ConstContentIterator iter = this->content.Begin(); iter != this->content.End(); iter++) {
|
||||
@@ -459,6 +489,20 @@ class NetworkContentListWindow : public Window, ContentCallback {
|
||||
this->list_pos = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update filter state based on current window state.
|
||||
* @return true if filter state was changed, otherwise false.
|
||||
*/
|
||||
bool UpdateFilterState()
|
||||
{
|
||||
Filtering old_params = this->content.GetFiltering();
|
||||
bool new_state = !this->filter_data.string_filter.IsEmpty() || this->filter_data.type != CONTENT_TYPE_END;
|
||||
if (new_state != old_params.state) {
|
||||
this->content.SetFilterState(new_state);
|
||||
}
|
||||
return new_state != old_params.state;
|
||||
}
|
||||
|
||||
/** Make sure that the currently selected content info is within the visible part of the matrix */
|
||||
void ScrollToSelected()
|
||||
{
|
||||
@@ -473,8 +517,12 @@ public:
|
||||
* Create the content list window.
|
||||
* @param desc the window description to pass to Window's constructor.
|
||||
* @param select_all Whether the select all button is allowed or not.
|
||||
* @param type the main type of content to display or #CONTENT_TYPE_END.
|
||||
* When a type other than #CONTENT_TYPE_END is given, dependencies of
|
||||
* other types are only shown when content that depend on them are
|
||||
* selected.
|
||||
*/
|
||||
NetworkContentListWindow(WindowDesc *desc, bool select_all) :
|
||||
NetworkContentListWindow(WindowDesc *desc, bool select_all, ContentType type) :
|
||||
Window(desc),
|
||||
auto_select(select_all),
|
||||
filter_editbox(EDITBOX_MAX_SIZE),
|
||||
@@ -493,12 +541,14 @@ public:
|
||||
this->filter_editbox.cancel_button = QueryString::ACTION_CLEAR;
|
||||
this->SetFocusedWidget(WID_NCL_FILTER);
|
||||
this->SetWidgetDisabledState(WID_NCL_SEARCH_EXTERNAL, this->auto_select);
|
||||
this->filter_data.type = type;
|
||||
|
||||
_network_content_client.AddCallback(this);
|
||||
this->content.SetListing(this->last_sorting);
|
||||
this->content.SetFiltering(this->last_filtering);
|
||||
this->content.SetSortFuncs(this->sorter_funcs);
|
||||
this->content.SetFilterFuncs(this->filter_funcs);
|
||||
this->UpdateFilterState();
|
||||
this->content.ForceRebuild();
|
||||
this->FilterContentList();
|
||||
this->SortContentList();
|
||||
@@ -751,6 +801,10 @@ public:
|
||||
this->content.ForceResort();
|
||||
}
|
||||
|
||||
if (this->filter_data.type != CONTENT_TYPE_END) {
|
||||
this->content.ForceRebuild();
|
||||
}
|
||||
|
||||
this->InvalidateData();
|
||||
break;
|
||||
}
|
||||
@@ -846,9 +900,13 @@ public:
|
||||
this->content.ForceResort();
|
||||
this->InvalidateData();
|
||||
}
|
||||
if (this->filter_data.type != CONTENT_TYPE_END) {
|
||||
this->content.ForceRebuild();
|
||||
this->InvalidateData();
|
||||
}
|
||||
return ES_HANDLED;
|
||||
}
|
||||
/* FALL THROUGH, space is pressed and filter isn't focused. */
|
||||
/* FALL THROUGH, space is pressed and filter is focused. */
|
||||
|
||||
default:
|
||||
return ES_NOT_HANDLED;
|
||||
@@ -856,13 +914,21 @@ public:
|
||||
|
||||
if (this->content.Length() == 0) {
|
||||
this->list_pos = 0; // above stuff may result in "-1".
|
||||
if (this->UpdateFilterState()) {
|
||||
this->content.ForceRebuild();
|
||||
this->InvalidateData();
|
||||
}
|
||||
return ES_HANDLED;
|
||||
}
|
||||
|
||||
this->selected = *this->content.Get(this->list_pos);
|
||||
|
||||
/* scroll to the new server if it is outside the current range */
|
||||
if (this->UpdateFilterState()) {
|
||||
this->content.ForceRebuild();
|
||||
} else {
|
||||
/* Scroll to the new content if it is outside the current range. */
|
||||
this->ScrollToSelected();
|
||||
}
|
||||
|
||||
/* redraw window */
|
||||
this->InvalidateData();
|
||||
@@ -872,8 +938,8 @@ public:
|
||||
virtual void OnEditboxChanged(int wid)
|
||||
{
|
||||
if (wid == WID_NCL_FILTER) {
|
||||
this->string_filter.SetFilterTerm(this->filter_editbox.text.buf);
|
||||
this->content.SetFilterState(!this->string_filter.IsEmpty());
|
||||
this->filter_data.string_filter.SetFilterTerm(this->filter_editbox.text.buf);
|
||||
this->UpdateFilterState();
|
||||
this->content.ForceRebuild();
|
||||
this->InvalidateData();
|
||||
}
|
||||
@@ -965,6 +1031,7 @@ NetworkContentListWindow::GUIContentList::SortFunction * const NetworkContentLis
|
||||
|
||||
NetworkContentListWindow::GUIContentList::FilterFunction * const NetworkContentListWindow::filter_funcs[] = {
|
||||
&TagNameFilter,
|
||||
&TypeOrSelectedFilter,
|
||||
};
|
||||
|
||||
char NetworkContentListWindow::content_type_strs[CONTENT_TYPE_END][64];
|
||||
@@ -1080,7 +1147,7 @@ void ShowNetworkContentListWindow(ContentVector *cv, ContentType type)
|
||||
}
|
||||
|
||||
DeleteWindowById(WC_NETWORK_WINDOW, WN_NETWORK_WINDOW_CONTENT_LIST);
|
||||
new NetworkContentListWindow(&_network_content_list_desc, cv != NULL);
|
||||
new NetworkContentListWindow(&_network_content_list_desc, cv != NULL, type);
|
||||
#else
|
||||
ShowErrorMessage(STR_CONTENT_NO_ZLIB, STR_CONTENT_NO_ZLIB_SUB, WL_ERROR);
|
||||
/* Connection failed... clean up the mess */
|
||||
|
@@ -34,7 +34,6 @@ extern NetworkCompanyState *_network_company_states;
|
||||
extern ClientID _network_own_client_id;
|
||||
extern ClientID _redirect_console_to_client;
|
||||
extern bool _network_need_advertise;
|
||||
extern uint32 _network_last_advertise_frame;
|
||||
extern uint8 _network_reconnect;
|
||||
extern StringList _network_bind_list;
|
||||
extern StringList _network_host_list;
|
||||
|
@@ -1863,7 +1863,9 @@ struct NetworkClientListWindow : Window {
|
||||
int selected_item;
|
||||
|
||||
uint server_client_width;
|
||||
uint company_icon_width;
|
||||
uint line_height;
|
||||
|
||||
Dimension icon_size;
|
||||
|
||||
NetworkClientListWindow(WindowDesc *desc, WindowNumber window_number) :
|
||||
Window(desc),
|
||||
@@ -1885,7 +1887,7 @@ struct NetworkClientListWindow : Window {
|
||||
if (ci->client_playas != COMPANY_INACTIVE_CLIENT) num++;
|
||||
}
|
||||
|
||||
num *= FONT_HEIGHT_NORMAL;
|
||||
num *= this->line_height;
|
||||
|
||||
int diff = (num + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM) - (this->GetWidget<NWidgetBase>(WID_CL_PANEL)->current_y);
|
||||
/* If height is changed */
|
||||
@@ -1901,7 +1903,8 @@ struct NetworkClientListWindow : Window {
|
||||
if (widget != WID_CL_PANEL) return;
|
||||
|
||||
this->server_client_width = max(GetStringBoundingBox(STR_NETWORK_SERVER).width, GetStringBoundingBox(STR_NETWORK_CLIENT).width) + WD_FRAMERECT_RIGHT;
|
||||
this->company_icon_width = GetSpriteSize(SPR_COMPANY_ICON).width + WD_FRAMERECT_LEFT;
|
||||
this->icon_size = GetSpriteSize(SPR_COMPANY_ICON);
|
||||
this->line_height = max(this->icon_size.height + 2U, (uint)FONT_HEIGHT_NORMAL);
|
||||
|
||||
uint width = 100; // Default width
|
||||
const NetworkClientInfo *ci;
|
||||
@@ -1909,7 +1912,7 @@ struct NetworkClientListWindow : Window {
|
||||
width = max(width, GetStringBoundingBox(ci->client_name).width);
|
||||
}
|
||||
|
||||
size->width = WD_FRAMERECT_LEFT + this->server_client_width + this->company_icon_width + width + WD_FRAMERECT_RIGHT;
|
||||
size->width = WD_FRAMERECT_LEFT + this->server_client_width + this->icon_size.width + WD_FRAMERECT_LEFT + width + WD_FRAMERECT_RIGHT;
|
||||
}
|
||||
|
||||
virtual void OnPaint()
|
||||
@@ -1925,11 +1928,13 @@ struct NetworkClientListWindow : Window {
|
||||
if (widget != WID_CL_PANEL) return;
|
||||
|
||||
bool rtl = _current_text_dir == TD_RTL;
|
||||
int icon_y_offset = 1 + (FONT_HEIGHT_NORMAL - 10) / 2;
|
||||
int icon_offset = (this->line_height - icon_size.height) / 2;
|
||||
int text_offset = (this->line_height - FONT_HEIGHT_NORMAL) / 2;
|
||||
|
||||
uint y = r.top + WD_FRAMERECT_TOP;
|
||||
uint left = r.left + WD_FRAMERECT_LEFT;
|
||||
uint right = r.right - WD_FRAMERECT_RIGHT;
|
||||
uint type_icon_width = this->server_client_width + this->company_icon_width;
|
||||
uint type_icon_width = this->server_client_width + this->icon_size.width + WD_FRAMERECT_LEFT;
|
||||
|
||||
|
||||
uint type_left = rtl ? right - this->server_client_width : left;
|
||||
@@ -1943,24 +1948,24 @@ struct NetworkClientListWindow : Window {
|
||||
FOR_ALL_CLIENT_INFOS(ci) {
|
||||
TextColour colour;
|
||||
if (this->selected_item == i++) { // Selected item, highlight it
|
||||
GfxFillRect(r.left + 1, y, r.right - 1, y + FONT_HEIGHT_NORMAL - 1, PC_BLACK);
|
||||
GfxFillRect(r.left + 1, y, r.right - 1, y + this->line_height - 1, PC_BLACK);
|
||||
colour = TC_WHITE;
|
||||
} else {
|
||||
colour = TC_BLACK;
|
||||
}
|
||||
|
||||
if (ci->client_id == CLIENT_ID_SERVER) {
|
||||
DrawString(type_left, type_right, y, STR_NETWORK_SERVER, colour);
|
||||
DrawString(type_left, type_right, y + text_offset, STR_NETWORK_SERVER, colour);
|
||||
} else {
|
||||
DrawString(type_left, type_right, y, STR_NETWORK_CLIENT, colour);
|
||||
DrawString(type_left, type_right, y + text_offset, STR_NETWORK_CLIENT, colour);
|
||||
}
|
||||
|
||||
/* Filter out spectators */
|
||||
if (Company::IsValidID(ci->client_playas)) DrawCompanyIcon(ci->client_playas, icon_left, y + icon_y_offset);
|
||||
if (Company::IsValidID(ci->client_playas)) DrawCompanyIcon(ci->client_playas, icon_left, y + icon_offset);
|
||||
|
||||
DrawString(name_left, name_right, y, ci->client_name, colour);
|
||||
DrawString(name_left, name_right, y + text_offset, ci->client_name, colour);
|
||||
|
||||
y += FONT_HEIGHT_NORMAL;
|
||||
y += line_height;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1993,7 +1998,7 @@ struct NetworkClientListWindow : Window {
|
||||
pt.y -= this->GetWidget<NWidgetBase>(WID_CL_PANEL)->pos_y;
|
||||
int item = -1;
|
||||
if (IsInsideMM(pt.y, WD_FRAMERECT_TOP, this->GetWidget<NWidgetBase>(WID_CL_PANEL)->current_y - WD_FRAMERECT_BOTTOM)) {
|
||||
item = (pt.y - WD_FRAMERECT_TOP) / FONT_HEIGHT_NORMAL;
|
||||
item = (pt.y - WD_FRAMERECT_TOP) / this->line_height;
|
||||
}
|
||||
|
||||
/* It did not change.. no update! */
|
||||
|
@@ -42,9 +42,9 @@ static ThreadMutex *_network_udp_mutex = ThreadMutex::New();
|
||||
/** Session key to register ourselves to the master server */
|
||||
static uint64 _session_key = 0;
|
||||
|
||||
static const uint ADVERTISE_NORMAL_INTERVAL = 30000; ///< interval between advertising in ticks (15 minutes)
|
||||
static const uint ADVERTISE_RETRY_INTERVAL = 300; ///< re-advertise when no response after this many ticks (9 seconds)
|
||||
static const uint ADVERTISE_RETRY_TIMES = 3; ///< give up re-advertising after this much failed retries
|
||||
static const uint32 ADVERTISE_NORMAL_INTERVAL = 15 * 60 * 1000; ///< interval between advertising in ms (15 minutes)
|
||||
static const uint32 ADVERTISE_RETRY_INTERVAL = 10 * 1000; ///< re-advertise when no response after this many ms (10 seconds)
|
||||
static const uint32 ADVERTISE_RETRY_TIMES = 3; ///< give up re-advertising after this much failed retries
|
||||
|
||||
NetworkUDPSocketHandler *_udp_client_socket = NULL; ///< udp client socket
|
||||
NetworkUDPSocketHandler *_udp_server_socket = NULL; ///< udp server socket
|
||||
@@ -616,25 +616,37 @@ static void NetworkUDPAdvertiseThread(void *pntr)
|
||||
*/
|
||||
void NetworkUDPAdvertise()
|
||||
{
|
||||
static uint32 _last_advertisement = 0; ///< The time of the last advertisement (used to check for wrapping of time)
|
||||
static uint32 _next_advertisement = 0; ///< The next time we should perform a normal advertisement.
|
||||
static uint32 _next_retry = 0; ///< The next time we should perform a retry of an advertisement.
|
||||
|
||||
/* Check if we should send an advertise */
|
||||
if (!_networking || !_network_server || !_network_udp_server || !_settings_client.network.server_advertise) return;
|
||||
|
||||
if (_network_need_advertise) {
|
||||
if (_network_need_advertise || _realtime_tick < _last_advertisement) {
|
||||
/* Forced advertisement, or a wrapping of time in which case we determine the advertisement/retry times again. */
|
||||
_network_need_advertise = false;
|
||||
_network_advertise_retries = ADVERTISE_RETRY_TIMES;
|
||||
} else {
|
||||
/* Only send once every ADVERTISE_NORMAL_INTERVAL ticks */
|
||||
if (_network_advertise_retries == 0) {
|
||||
if ((_network_last_advertise_frame + ADVERTISE_NORMAL_INTERVAL) > _frame_counter) return;
|
||||
if (_realtime_tick <= _next_advertisement) return;
|
||||
|
||||
_network_advertise_retries = ADVERTISE_RETRY_TIMES;
|
||||
} else {
|
||||
/* An actual retry. */
|
||||
if (_realtime_tick <= _next_retry) return;
|
||||
}
|
||||
|
||||
if ((_network_last_advertise_frame + ADVERTISE_RETRY_INTERVAL) > _frame_counter) return;
|
||||
}
|
||||
|
||||
_network_advertise_retries--;
|
||||
_network_last_advertise_frame = _frame_counter;
|
||||
_last_advertisement = _realtime_tick;
|
||||
_next_advertisement = _realtime_tick + ADVERTISE_NORMAL_INTERVAL;
|
||||
_next_retry = _realtime_tick + ADVERTISE_RETRY_INTERVAL;
|
||||
|
||||
/* Make sure we do not have an overflow when checking these; when time wraps, we simply force an advertisement. */
|
||||
if (_next_advertisement < _last_advertisement) _next_advertisement = UINT32_MAX;
|
||||
if (_next_retry < _last_advertisement) _next_retry = UINT32_MAX;
|
||||
|
||||
if (!ThreadObject::New(NetworkUDPAdvertiseThread, NULL)) {
|
||||
NetworkUDPAdvertiseThread(NULL);
|
||||
|
@@ -526,7 +526,10 @@ static WindowDesc _build_object_desc(
|
||||
*/
|
||||
void ShowBuildObjectPicker()
|
||||
{
|
||||
/* Don't show the place object button when there are no objects to place. */
|
||||
if (ObjectClass::GetUIClassCount() > 0) {
|
||||
AllocateWindowDescFront<BuildObjectWindow>(&_build_object_desc, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/** Reset all data of the object GUI. */
|
||||
|
@@ -1750,6 +1750,12 @@ void ShowOrdersWindow(const Vehicle *v)
|
||||
DeleteWindowById(WC_VEHICLE_TIMETABLE, v->index, false);
|
||||
if (BringWindowToFrontById(WC_VEHICLE_ORDERS, v->index) != NULL) return;
|
||||
|
||||
/* Using a different WindowDescs for _local_company causes problems.
|
||||
* Due to this we have to close order windows in ChangeWindowOwner/DeleteCompanyWindows,
|
||||
* because we cannot change switch the WindowDescs and keeping the old WindowDesc results
|
||||
* in crashed due to missing widges.
|
||||
* TODO Rewrite the order GUI to not use different WindowDescs.
|
||||
*/
|
||||
if (v->owner != _local_company) {
|
||||
new OrdersWindow(&_other_orders_desc, v);
|
||||
} else {
|
||||
|
@@ -14,13 +14,13 @@
|
||||
#include "../../gfx_func.h"
|
||||
#include "../../textbuf_gui.h"
|
||||
#include "../../fileio_func.h"
|
||||
#include "../../fios.h"
|
||||
#include <windows.h>
|
||||
#include <fcntl.h>
|
||||
#include <regstr.h>
|
||||
#include <shlobj.h> /* SHGetFolderPath */
|
||||
#include <shellapi.h>
|
||||
#include "win32.h"
|
||||
#include "../../fios.h"
|
||||
#include "../../core/alloc_func.hpp"
|
||||
#include "../../openttd.h"
|
||||
#include "../../core/random_func.hpp"
|
||||
|
@@ -144,7 +144,12 @@ struct CFollowTrackT
|
||||
* missing road bit, or inability to connect the
|
||||
* different bits due to slopes. */
|
||||
if (IsRoadTT() && !IsTram() && TryReverse()) return true;
|
||||
m_err = EC_NO_WAY;
|
||||
|
||||
/* CanEnterNewTile already set a reason.
|
||||
* Do NOT overwrite it (important for example for EC_RAIL_TYPE).
|
||||
* Only set a reason if CanEnterNewTile was not called */
|
||||
if (m_new_td_bits == TRACKDIR_BIT_NONE) m_err = EC_NO_WAY;
|
||||
|
||||
return false;
|
||||
}
|
||||
if (!Allow90degTurns()) {
|
||||
|
@@ -431,4 +431,13 @@ void ResetRailTypes();
|
||||
void InitRailTypes();
|
||||
RailType AllocateRailType(RailTypeLabel label);
|
||||
|
||||
extern RailType _sorted_railtypes[RAILTYPE_END];
|
||||
extern uint8 _sorted_railtypes_size;
|
||||
|
||||
/**
|
||||
* Loop header for iterating over railtypes, sorted by sortorder.
|
||||
* @param var Railtype.
|
||||
*/
|
||||
#define FOR_ALL_SORTED_RAILTYPES(var) for (uint8 index = 0; index < _sorted_railtypes_size && (var = _sorted_railtypes[index], true) ; index++)
|
||||
|
||||
#endif /* RAIL_H */
|
||||
|
@@ -44,6 +44,8 @@
|
||||
typedef SmallVector<Train *, 16> TrainList;
|
||||
|
||||
RailtypeInfo _railtypes[RAILTYPE_END];
|
||||
RailType _sorted_railtypes[RAILTYPE_END];
|
||||
uint8 _sorted_railtypes_size;
|
||||
|
||||
assert_compile(sizeof(_original_railtypes) <= sizeof(_railtypes));
|
||||
|
||||
@@ -109,6 +111,17 @@ void ResolveRailTypeGUISprites(RailtypeInfo *rti)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare railtypes based on their sorting order.
|
||||
* @param first The railtype to compare to.
|
||||
* @param second The railtype to compare.
|
||||
* @return True iff the first should be sorted before the second.
|
||||
*/
|
||||
static int CDECL CompareRailTypes(const RailType *first, const RailType *second)
|
||||
{
|
||||
return GetRailTypeInfo(*first)->sorting_order - GetRailTypeInfo(*second)->sorting_order;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve sprites of custom rail types
|
||||
*/
|
||||
@@ -118,6 +131,14 @@ void InitRailTypes()
|
||||
RailtypeInfo *rti = &_railtypes[rt];
|
||||
ResolveRailTypeGUISprites(rti);
|
||||
}
|
||||
|
||||
_sorted_railtypes_size = 0;
|
||||
for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) {
|
||||
if (_railtypes[rt].label != 0) {
|
||||
_sorted_railtypes[_sorted_railtypes_size++] = rt;
|
||||
}
|
||||
}
|
||||
QSortT(_sorted_railtypes, _sorted_railtypes_size, CompareRailTypes);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1978,17 +1978,6 @@ void InitializeRailGUI()
|
||||
ResetSignalVariant();
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare railtypes based on their sorting order.
|
||||
* @param first The railtype to compare to.
|
||||
* @param second The railtype to compare.
|
||||
* @return True iff the first should be sorted before the second.
|
||||
*/
|
||||
static int CDECL CompareRailTypes(const DropDownListItem * const *first, const DropDownListItem * const *second)
|
||||
{
|
||||
return GetRailTypeInfo((RailType)(*first)->result)->sorting_order - GetRailTypeInfo((RailType)(*second)->result)->sorting_order;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a drop down list for all the rail types of the local company.
|
||||
* @param for_replacement Whether this list is for the replacement window.
|
||||
@@ -2011,13 +2000,12 @@ DropDownList *GetRailTypeDropDownList(bool for_replacement)
|
||||
|
||||
const Company *c = Company::Get(_local_company);
|
||||
DropDownList *list = new DropDownList();
|
||||
for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) {
|
||||
RailType rt;
|
||||
FOR_ALL_SORTED_RAILTYPES(rt) {
|
||||
/* If it's not used ever, don't show it to the user. */
|
||||
if (!HasBit(used_railtypes, rt)) continue;
|
||||
|
||||
const RailtypeInfo *rti = GetRailTypeInfo(rt);
|
||||
/* Skip rail type if it has no label */
|
||||
if (rti->label == 0) continue;
|
||||
|
||||
StringID str = for_replacement ? rti->strings.replace_text : (rti->max_speed > 0 ? STR_TOOLBAR_RAILTYPE_VELOCITY : STR_JUST_STRING);
|
||||
DropDownListParamStringItem *item = new DropDownListParamStringItem(str, rt, !HasBit(c->avail_railtypes, rt));
|
||||
@@ -2025,6 +2013,5 @@ DropDownList *GetRailTypeDropDownList(bool for_replacement)
|
||||
item->SetParam(1, rti->max_speed);
|
||||
*list->Append() = item;
|
||||
}
|
||||
QSortT(list->Begin(), list->Length(), CompareRailTypes);
|
||||
return list;
|
||||
}
|
||||
|
15
src/road.cpp
15
src/road.cpp
@@ -57,6 +57,7 @@ RoadBits CleanUpRoadBits(const TileIndex tile, RoadBits org_rb)
|
||||
bool connective = false;
|
||||
const RoadBits mirrored_rb = MirrorRoadBits(target_rb);
|
||||
|
||||
if (IsValidTile(neighbor_tile)) {
|
||||
switch (GetTileType(neighbor_tile)) {
|
||||
/* Always connective ones */
|
||||
case MP_CLEAR: case MP_TREES:
|
||||
@@ -66,15 +67,17 @@ RoadBits CleanUpRoadBits(const TileIndex tile, RoadBits org_rb)
|
||||
/* The conditionally connective ones */
|
||||
case MP_TUNNELBRIDGE:
|
||||
case MP_STATION:
|
||||
case MP_ROAD: {
|
||||
case MP_ROAD:
|
||||
if (IsNormalRoadTile(neighbor_tile)) {
|
||||
/* Always connective */
|
||||
connective = true;
|
||||
} else {
|
||||
const RoadBits neighbor_rb = GetAnyRoadBits(neighbor_tile, ROADTYPE_ROAD) | GetAnyRoadBits(neighbor_tile, ROADTYPE_TRAM);
|
||||
|
||||
/* Accept only connective tiles */
|
||||
connective = (neighbor_rb & mirrored_rb) || // Neighbor has got the fitting RoadBit
|
||||
HasExactlyOneBit(neighbor_rb); // Neighbor has got only one Roadbit
|
||||
|
||||
break;
|
||||
connective = (neighbor_rb & mirrored_rb) != ROAD_NONE;
|
||||
}
|
||||
break;
|
||||
|
||||
case MP_RAILWAY:
|
||||
connective = IsPossibleCrossing(neighbor_tile, DiagDirToAxis(dir));
|
||||
@@ -88,10 +91,10 @@ RoadBits CleanUpRoadBits(const TileIndex tile, RoadBits org_rb)
|
||||
/* The definitely not connective ones */
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
/* If the neighbor tile is inconnective, remove the planed road connection to it */
|
||||
if (!connective) org_rb ^= target_rb;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -16,6 +16,7 @@
|
||||
#include "../tunnelbridge_map.h"
|
||||
#include "../tunnelbridge.h"
|
||||
#include "../station_base.h"
|
||||
#include "../settings_func.h"
|
||||
|
||||
#include "saveload.h"
|
||||
|
||||
@@ -486,6 +487,7 @@ static void Load_PLYR()
|
||||
int index;
|
||||
while ((index = SlIterateArray()) != -1) {
|
||||
Company *c = new (index) Company();
|
||||
SetDefaultCompanySettings(c->index);
|
||||
SaveLoad_PLYR(c);
|
||||
_company_colours[index] = (Colours)c->colour;
|
||||
}
|
||||
@@ -529,7 +531,25 @@ static void Ptrs_PLYR()
|
||||
}
|
||||
}
|
||||
|
||||
extern void LoadSettingsPlyx(bool skip);
|
||||
extern void SaveSettingsPlyx();
|
||||
|
||||
static void Load_PLYX()
|
||||
{
|
||||
LoadSettingsPlyx(false);
|
||||
}
|
||||
|
||||
static void Check_PLYX()
|
||||
{
|
||||
LoadSettingsPlyx(true);
|
||||
}
|
||||
|
||||
static void Save_PLYX()
|
||||
{
|
||||
SaveSettingsPlyx();
|
||||
}
|
||||
|
||||
extern const ChunkHandler _company_chunk_handlers[] = {
|
||||
{ 'PLYR', Save_PLYR, Load_PLYR, Ptrs_PLYR, Check_PLYR, CH_ARRAY | CH_LAST},
|
||||
{ 'PLYR', Save_PLYR, Load_PLYR, Ptrs_PLYR, Check_PLYR, CH_ARRAY },
|
||||
{ 'PLYX', Save_PLYX, Load_PLYX, NULL, Check_PLYX, CH_RIFF | CH_LAST},
|
||||
};
|
||||
|
@@ -165,7 +165,6 @@ static void Save_SLXI()
|
||||
SlXvSetCurrentState();
|
||||
|
||||
static const SaveLoad _xlsi_sub_chunk_desc[] = {
|
||||
SLE_VAR(SlxiSubChunkInfo, save_version, SLE_UINT16),
|
||||
SLE_STR(SlxiSubChunkInfo, name, SLE_STR, 0),
|
||||
SLE_END()
|
||||
};
|
||||
@@ -179,9 +178,9 @@ static void Save_SLXI()
|
||||
chunk_counts.resize(XSLFI_SIZE);
|
||||
const SlxiSubChunkInfo *info = _sl_xv_sub_chunk_infos;
|
||||
for (; info->index != XSLFI_NULL; ++info) {
|
||||
if (info->save_version > 0) {
|
||||
if (_sl_xv_feature_versions[info->index] > 0) {
|
||||
item_count++;
|
||||
length += 4;
|
||||
length += 6;
|
||||
length += SlCalcObjLength(info, _xlsi_sub_chunk_desc);
|
||||
if (info->save_proc) {
|
||||
uint32 extra_data_length = info->save_proc(info, true);
|
||||
@@ -209,7 +208,8 @@ static void Save_SLXI()
|
||||
// write data
|
||||
info = _sl_xv_sub_chunk_infos;
|
||||
for (; info->index != XSLFI_NULL; ++info) {
|
||||
if (info->save_version > 0) {
|
||||
uint16 save_version = _sl_xv_feature_versions[info->index];
|
||||
if (save_version > 0) {
|
||||
SlxiSubChunkFlags flags = info->flags;
|
||||
assert(!(flags & (XSCF_EXTRA_DATA_PRESENT | XSCF_CHUNK_ID_LIST_PRESENT)));
|
||||
uint32 extra_data_length = extra_data_lengths[info->index];
|
||||
@@ -217,6 +217,7 @@ static void Save_SLXI()
|
||||
if (extra_data_length > 0) flags |= XSCF_EXTRA_DATA_PRESENT;
|
||||
if (chunk_count > 0) flags |= XSCF_CHUNK_ID_LIST_PRESENT;
|
||||
SlWriteUint32(flags);
|
||||
SlWriteUint16(save_version);
|
||||
SlObject(const_cast<SlxiSubChunkInfo *>(info), _xlsi_sub_chunk_desc);
|
||||
|
||||
if (extra_data_length > 0) {
|
||||
|
@@ -566,7 +566,7 @@ void NORETURN SlError(StringID string, const char *extra_msg, bool already_mallo
|
||||
/**
|
||||
* As SlError, except that it takes a format string and additional parameters
|
||||
*/
|
||||
void CDECL NORETURN SlErrorFmt(StringID string, const char *msg, ...)
|
||||
void NORETURN CDECL SlErrorFmt(StringID string, const char *msg, ...)
|
||||
{
|
||||
va_list va;
|
||||
va_start(va, msg);
|
||||
@@ -590,7 +590,7 @@ void NORETURN SlErrorCorrupt(const char *msg, bool already_malloced)
|
||||
/**
|
||||
* As SlErrorCorruptFmt, except that it takes a format string and additional parameters
|
||||
*/
|
||||
void CDECL NORETURN SlErrorCorruptFmt(const char *msg, ...)
|
||||
void NORETURN CDECL SlErrorCorruptFmt(const char *msg, ...)
|
||||
{
|
||||
va_list va;
|
||||
va_start(va, msg);
|
||||
@@ -890,9 +890,20 @@ void SlSetLength(size_t length)
|
||||
case CH_RIFF:
|
||||
/* Ugly encoding of >16M RIFF chunks
|
||||
* The lower 24 bits are normal
|
||||
* The uppermost 4 bits are bits 24:27 */
|
||||
assert(length < (1 << 28));
|
||||
* The uppermost 4 bits are bits 24:27
|
||||
*
|
||||
* If we have more than 28 bits, use an extra uint32 and
|
||||
* signal this using the extended chunk header */
|
||||
assert(length < (1LL << 32));
|
||||
if (length >= (1 << 28)) {
|
||||
/* write out extended chunk header */
|
||||
SlWriteByte(CH_EXT_HDR);
|
||||
SlWriteUint32(static_cast<uint32>(SLCEHF_BIG_RIFF));
|
||||
}
|
||||
SlWriteUint32((uint32)((length & 0xFFFFFF) | ((length >> 24) << 28)));
|
||||
if (length >= (1 << 28)) {
|
||||
SlWriteUint32(length >> 28);
|
||||
}
|
||||
break;
|
||||
case CH_ARRAY:
|
||||
assert(_sl.last_array_index <= _sl.array_index);
|
||||
@@ -1663,6 +1674,16 @@ void SlAutolength(AutolengthProc *proc, void *arg)
|
||||
if (offs != _sl.dumper->GetSize()) SlErrorCorrupt("Invalid chunk size");
|
||||
}
|
||||
|
||||
/*
|
||||
* Notes on extended chunk header:
|
||||
*
|
||||
* If the chunk type is CH_EXT_HDR (15), then a u32 flags field follows.
|
||||
* This flag field may define additional fields which follow the flags field in future.
|
||||
* The standard chunk header follows, though it my be modified by the flags field.
|
||||
* At present SLCEHF_BIG_RIFF increases the RIFF size limit to a theoretical 60 bits,
|
||||
* by adding a further u32 field for the high bits after the existing RIFF size field.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Load a chunk of data (eg vehicles, stations, etc.)
|
||||
* @param ch The chunkhandler that will be used for the operation
|
||||
@@ -1676,6 +1697,15 @@ static void SlLoadChunk(const ChunkHandler *ch)
|
||||
_sl.block_mode = m;
|
||||
_sl.obj_len = 0;
|
||||
|
||||
SaveLoadChunkExtHeaderFlags ext_flags = static_cast<SaveLoadChunkExtHeaderFlags>(0);
|
||||
if ((m & 0xF) == CH_EXT_HDR) {
|
||||
ext_flags = static_cast<SaveLoadChunkExtHeaderFlags>(SlReadUint32());
|
||||
|
||||
/* read in real header */
|
||||
m = SlReadByte();
|
||||
_sl.block_mode = m;
|
||||
}
|
||||
|
||||
switch (m) {
|
||||
case CH_ARRAY:
|
||||
_sl.array_index = 0;
|
||||
@@ -1691,6 +1721,10 @@ static void SlLoadChunk(const ChunkHandler *ch)
|
||||
/* Read length */
|
||||
len = (SlReadByte() << 16) | ((m >> 4) << 24);
|
||||
len += SlReadUint16();
|
||||
if (ext_flags & SLCEHF_BIG_RIFF) {
|
||||
len |= SlReadUint32() << 28;
|
||||
}
|
||||
|
||||
_sl.obj_len = len;
|
||||
endoffs = _sl.reader->GetSize() + len;
|
||||
ch->load_proc();
|
||||
@@ -1716,9 +1750,21 @@ static void SlLoadCheckChunk(const ChunkHandler *ch)
|
||||
_sl.block_mode = m;
|
||||
_sl.obj_len = 0;
|
||||
|
||||
SaveLoadChunkExtHeaderFlags ext_flags = static_cast<SaveLoadChunkExtHeaderFlags>(0);
|
||||
if ((m & 0xF) == CH_EXT_HDR) {
|
||||
ext_flags = static_cast<SaveLoadChunkExtHeaderFlags>(SlReadUint32());
|
||||
|
||||
/* read in real header */
|
||||
m = SlReadByte();
|
||||
_sl.block_mode = m;
|
||||
}
|
||||
|
||||
switch (m) {
|
||||
case CH_ARRAY:
|
||||
_sl.array_index = 0;
|
||||
if (ext_flags) {
|
||||
SlErrorCorruptFmt("CH_ARRAY does not take chunk header extension flags: 0x%X", ext_flags);
|
||||
}
|
||||
if (ch && ch->load_check_proc) {
|
||||
ch->load_check_proc();
|
||||
} else {
|
||||
@@ -1726,6 +1772,9 @@ static void SlLoadCheckChunk(const ChunkHandler *ch)
|
||||
}
|
||||
break;
|
||||
case CH_SPARSE_ARRAY:
|
||||
if (ext_flags) {
|
||||
SlErrorCorruptFmt("CH_SPARSE_ARRAY does not take chunk header extension flags: 0x%X", ext_flags);
|
||||
}
|
||||
if (ch && ch->load_check_proc) {
|
||||
ch->load_check_proc();
|
||||
} else {
|
||||
@@ -1734,9 +1783,19 @@ static void SlLoadCheckChunk(const ChunkHandler *ch)
|
||||
break;
|
||||
default:
|
||||
if ((m & 0xF) == CH_RIFF) {
|
||||
if (ext_flags != (ext_flags & SLCEHF_BIG_RIFF)) {
|
||||
SlErrorCorruptFmt("Unknown chunk header extension flags for CH_RIFF: 0x%X", ext_flags);
|
||||
}
|
||||
/* Read length */
|
||||
len = (SlReadByte() << 16) | ((m >> 4) << 24);
|
||||
len += SlReadUint16();
|
||||
if (ext_flags & SLCEHF_BIG_RIFF) {
|
||||
uint64 full_len = len | (static_cast<uint64>(SlReadUint32()) << 28);
|
||||
if (full_len >= (1LL << 32)) {
|
||||
SlErrorCorrupt("Chunk size too large: " OTTD_PRINTFHEX64, full_len);
|
||||
}
|
||||
len = static_cast<size_t>(full_len);
|
||||
}
|
||||
_sl.obj_len = len;
|
||||
endoffs = _sl.reader->GetSize() + len;
|
||||
if (ch && ch->load_check_proc) {
|
||||
@@ -2469,8 +2528,6 @@ static inline void ClearSaveLoadState()
|
||||
|
||||
delete _sl.lf;
|
||||
_sl.lf = NULL;
|
||||
|
||||
SlXvSetCurrentState();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2782,6 +2839,8 @@ static SaveOrLoadResult DoLoad(LoadFilter *reader, bool load_check)
|
||||
GamelogStopAction();
|
||||
}
|
||||
|
||||
SlXvSetCurrentState();
|
||||
|
||||
return SL_OK;
|
||||
}
|
||||
|
||||
@@ -2841,6 +2900,7 @@ SaveOrLoadResult SaveOrLoad(const char *filename, int mode, Subdirectory sb, boo
|
||||
return SL_REINIT;
|
||||
}
|
||||
GamelogStopAction();
|
||||
SlXvSetCurrentState();
|
||||
return SL_OK;
|
||||
}
|
||||
|
||||
|
@@ -99,10 +99,17 @@ enum ChunkType {
|
||||
CH_ARRAY = 1,
|
||||
CH_SPARSE_ARRAY = 2,
|
||||
CH_TYPE_MASK = 3,
|
||||
CH_EXT_HDR = 15, ///< Extended chunk header
|
||||
CH_LAST = 8, ///< Last chunk in this array.
|
||||
CH_AUTO_LENGTH = 16,
|
||||
};
|
||||
|
||||
/** Flags for chunk extended headers */
|
||||
enum SaveLoadChunkExtHeaderFlags {
|
||||
SLCEHF_BIG_RIFF = 1 << 0, ///< This block uses a 60-bit RIFF chunk size
|
||||
};
|
||||
DECLARE_ENUM_AS_BIT_SET(SaveLoadChunkExtHeaderFlags)
|
||||
|
||||
/**
|
||||
* VarTypes is the general bitmasked magic type that tells us
|
||||
* certain characteristics about the variable it refers to. For example
|
||||
@@ -234,7 +241,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @note In general, it is better to use one of the SLE_* macros below.
|
||||
*/
|
||||
#define SLE_GENERAL_X(cmd, base, variable, type, length, from, to, extver) {false, cmd, type, length, from, to, (void*)cpp_offsetof(base, variable), cpp_sizeof(base, variable), extver}
|
||||
#define SLE_GENERAL(cmd, base, variable, type, length, from, to) SLE_GENERAL_X(cmd, base, variable, type, length, from, to, {})
|
||||
#define SLE_GENERAL(cmd, base, variable, type, length, from, to) SLE_GENERAL_X(cmd, base, variable, type, length, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a variable in some savegame versions.
|
||||
@@ -246,7 +253,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field
|
||||
*/
|
||||
#define SLE_CONDVAR_X(base, variable, type, from, to, extver) SLE_GENERAL_X(SL_VAR, base, variable, type, 0, from, to, extver)
|
||||
#define SLE_CONDVAR(base, variable, type, from, to) SLE_CONDVAR_X(base, variable, type, from, to, {})
|
||||
#define SLE_CONDVAR(base, variable, type, from, to) SLE_CONDVAR_X(base, variable, type, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a reference in some savegame versions.
|
||||
@@ -258,7 +265,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field
|
||||
*/
|
||||
#define SLE_CONDREF_X(base, variable, type, from, to, extver) SLE_GENERAL_X(SL_REF, base, variable, type, 0, from, to, extver)
|
||||
#define SLE_CONDREF(base, variable, type, from, to) SLE_CONDREF_X(base, variable, type, from, to, {})
|
||||
#define SLE_CONDREF(base, variable, type, from, to) SLE_CONDREF_X(base, variable, type, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of an array in some savegame versions.
|
||||
@@ -271,7 +278,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field
|
||||
*/
|
||||
#define SLE_CONDARR_X(base, variable, type, length, from, to, extver) SLE_GENERAL_X(SL_ARR, base, variable, type, length, from, to, extver)
|
||||
#define SLE_CONDARR(base, variable, type, length, from, to) SLE_CONDARR_X(base, variable, type, length, from, to, {})
|
||||
#define SLE_CONDARR(base, variable, type, length, from, to) SLE_CONDARR_X(base, variable, type, length, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a string in some savegame versions.
|
||||
@@ -284,7 +291,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field
|
||||
*/
|
||||
#define SLE_CONDSTR_X(base, variable, type, length, from, to, extver) SLE_GENERAL_X(SL_STR, base, variable, type, length, from, to, extver)
|
||||
#define SLE_CONDSTR(base, variable, type, length, from, to) SLE_CONDSTR_X(base, variable, type, length, from, to, {})
|
||||
#define SLE_CONDSTR(base, variable, type, length, from, to) SLE_CONDSTR_X(base, variable, type, length, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a list in some savegame versions.
|
||||
@@ -296,7 +303,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field
|
||||
*/
|
||||
#define SLE_CONDLST_X(base, variable, type, from, to, extver) SLE_GENERAL_X(SL_LST, base, variable, type, 0, from, to, extver)
|
||||
#define SLE_CONDLST(base, variable, type, from, to) SLE_CONDLST_X(base, variable, type, from, to, {})
|
||||
#define SLE_CONDLST(base, variable, type, from, to) SLE_CONDLST_X(base, variable, type, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a variable in every version of a savegame.
|
||||
@@ -354,16 +361,16 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have empty space
|
||||
*/
|
||||
#define SLE_CONDNULL_X(length, from, to, extver) SLE_CONDARR_X(NullStruct, null, SLE_FILE_U8 | SLE_VAR_NULL | SLF_NOT_IN_CONFIG, length, from, to, extver)
|
||||
#define SLE_CONDNULL(length, from, to) SLE_CONDNULL_X(length, from, to, {})
|
||||
#define SLE_CONDNULL(length, from, to) SLE_CONDNULL_X(length, from, to, SlXvFeatureTest())
|
||||
|
||||
/** Translate values ingame to different values in the savegame and vv. */
|
||||
#define SLE_WRITEBYTE(base, variable, value) SLE_GENERAL(SL_WRITEBYTE, base, variable, 0, 0, value, value)
|
||||
|
||||
#define SLE_VEH_INCLUDE() {false, SL_VEH_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL, 0, {}}
|
||||
#define SLE_ST_INCLUDE() {false, SL_ST_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL, 0, {}}
|
||||
#define SLE_VEH_INCLUDE() {false, SL_VEH_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL, 0, SlXvFeatureTest()}
|
||||
#define SLE_ST_INCLUDE() {false, SL_ST_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL, 0, SlXvFeatureTest()}
|
||||
|
||||
/** End marker of a struct/class save or load. */
|
||||
#define SLE_END() {false, SL_END, 0, 0, 0, 0, NULL, 0, {}}
|
||||
#define SLE_END() {false, SL_END, 0, 0, 0, 0, NULL, 0, SlXvFeatureTest()}
|
||||
|
||||
/**
|
||||
* Storage of global simple variables, references (pointers), and arrays.
|
||||
@@ -376,7 +383,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @note In general, it is better to use one of the SLEG_* macros below.
|
||||
*/
|
||||
#define SLEG_GENERAL_X(cmd, variable, type, length, from, to, extver) {true, cmd, type, length, from, to, (void*)&variable, sizeof(variable), extver}
|
||||
#define SLEG_GENERAL(cmd, variable, type, length, from, to) SLEG_GENERAL_X(cmd, variable, type, length, from, to, {})
|
||||
#define SLEG_GENERAL(cmd, variable, type, length, from, to) SLEG_GENERAL_X(cmd, variable, type, length, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a global variable in some savegame versions.
|
||||
@@ -387,7 +394,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field
|
||||
*/
|
||||
#define SLEG_CONDVAR_X(variable, type, from, to, extver) SLEG_GENERAL_X(SL_VAR, variable, type, 0, from, to, extver)
|
||||
#define SLEG_CONDVAR(variable, type, from, to) SLEG_CONDVAR_X(variable, type, from, to, {})
|
||||
#define SLEG_CONDVAR(variable, type, from, to) SLEG_CONDVAR_X(variable, type, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a global reference in some savegame versions.
|
||||
@@ -398,7 +405,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field
|
||||
*/
|
||||
#define SLEG_CONDREF_X(variable, type, from, to, extver) SLEG_GENERAL_X(SL_REF, variable, type, 0, from, to, extver)
|
||||
#define SLEG_CONDREF(variable, type, from, to) SLEG_CONDREF_X(variable, type, from, to, {})
|
||||
#define SLEG_CONDREF(variable, type, from, to) SLEG_CONDREF_X(variable, type, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a global array in some savegame versions.
|
||||
@@ -410,7 +417,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field
|
||||
*/
|
||||
#define SLEG_CONDARR_X(variable, type, length, from, to, extver) SLEG_GENERAL_X(SL_ARR, variable, type, length, from, to, extver)
|
||||
#define SLEG_CONDARR(variable, type, length, from, to) SLEG_CONDARR_X(variable, type, length, from, to, {})
|
||||
#define SLEG_CONDARR(variable, type, length, from, to) SLEG_CONDARR_X(variable, type, length, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a global string in some savegame versions.
|
||||
@@ -422,7 +429,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field
|
||||
*/
|
||||
#define SLEG_CONDSTR_X(variable, type, length, from, to, extver) SLEG_GENERAL_X(SL_STR, variable, type, length, from, to, extver)
|
||||
#define SLEG_CONDSTR(variable, type, length, from, to) SLEG_CONDSTR_X(variable, type, length, from, to, {})
|
||||
#define SLEG_CONDSTR(variable, type, length, from, to) SLEG_CONDSTR_X(variable, type, length, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a global list in some savegame versions.
|
||||
@@ -433,7 +440,7 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field
|
||||
*/
|
||||
#define SLEG_CONDLST_X(variable, type, from, to, extver) SLEG_GENERAL_X(SL_LST, variable, type, 0, from, to, extver)
|
||||
#define SLEG_CONDLST(variable, type, from, to) SLEG_CONDLST_X(variable, type, from, to, {})
|
||||
#define SLEG_CONDLST(variable, type, from, to) SLEG_CONDLST_X(variable, type, from, to, SlXvFeatureTest())
|
||||
|
||||
/**
|
||||
* Storage of a global variable in every savegame version.
|
||||
@@ -477,10 +484,10 @@ typedef SaveLoad SaveLoadGlobVarList;
|
||||
* @param to Last savegame version that has the empty space.
|
||||
* @param extver SlXvFeatureTest to test (along with from and to) which savegames have empty space
|
||||
*/
|
||||
#define SLEG_CONDNULL(length, from, to) {true, SL_ARR, SLE_FILE_U8 | SLE_VAR_NULL | SLF_NOT_IN_CONFIG, length, from, to, (void*)NULL, {}}
|
||||
#define SLEG_CONDNULL(length, from, to) {true, SL_ARR, SLE_FILE_U8 | SLE_VAR_NULL | SLF_NOT_IN_CONFIG, length, from, to, (void*)NULL, SlXvFeatureTest()}
|
||||
|
||||
/** End marker of global variables save or load. */
|
||||
#define SLEG_END() {true, SL_END, 0, 0, 0, 0, NULL, 0, {}}
|
||||
#define SLEG_END() {true, SL_END, 0, 0, 0, 0, NULL, 0, SlXvFeatureTest()}
|
||||
|
||||
/**
|
||||
* Checks whether the savegame is below \a major.\a minor.
|
||||
@@ -624,8 +631,8 @@ void SlObject(void *object, const SaveLoad *sld);
|
||||
bool SlObjectMember(void *object, const SaveLoad *sld);
|
||||
void NORETURN SlError(StringID string, const char *extra_msg = NULL, bool already_malloced = false);
|
||||
void NORETURN SlErrorCorrupt(const char *msg, bool already_malloced = false);
|
||||
void CDECL NORETURN SlErrorFmt(StringID string, const char *msg, ...) WARN_FORMAT(2, 3);
|
||||
void CDECL NORETURN SlErrorCorruptFmt(const char *msg, ...) WARN_FORMAT(1, 2);
|
||||
void NORETURN CDECL SlErrorFmt(StringID string, const char *msg, ...) WARN_FORMAT(2, 3);
|
||||
void NORETURN CDECL SlErrorCorruptFmt(const char *msg, ...) WARN_FORMAT(1, 2);
|
||||
|
||||
bool SaveloadCrashWithMissingNewGRFs();
|
||||
|
||||
|
318
src/settings.cpp
318
src/settings.cpp
@@ -2235,10 +2235,10 @@ static void SaveSettings(const SettingDesc *sd, void *object)
|
||||
*
|
||||
* The PATX chunk contents has the following format:
|
||||
*
|
||||
* uint32 chunk flags
|
||||
* uint32 chunk flags (unused)
|
||||
* uint32 number of settings
|
||||
* For each of N settings:
|
||||
* uint32 setting flags
|
||||
* uint32 setting flags (unused)
|
||||
* SLE_STR setting name
|
||||
* uint32 length of setting field
|
||||
* N bytes setting field
|
||||
@@ -2247,6 +2247,18 @@ static void SaveSettings(const SettingDesc *sd, void *object)
|
||||
/** Sorted list of PATX settings, generated by MakeSettingsPatxList */
|
||||
static std::vector<const SettingDesc *> _sorted_patx_settings;
|
||||
|
||||
/**
|
||||
* Internal structure used in LoadSettingsPatx()
|
||||
* placed outside for legacy compiler compatibility
|
||||
* this makes me miss lambdas :/
|
||||
*/
|
||||
struct StringSorter {
|
||||
bool operator()(const SettingDesc *a, const SettingDesc *b)
|
||||
{
|
||||
return strcmp(a->patx_name, b->patx_name) < 0;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Prepare a sorted list of settings to be potentially be loaded out of the PATX chunk
|
||||
* This is to enable efficient lookup of settings by name
|
||||
@@ -2257,6 +2269,7 @@ static void MakeSettingsPatxList(const SettingDesc *sd)
|
||||
static const SettingDesc *previous = NULL;
|
||||
|
||||
if (sd == previous) return;
|
||||
previous = sd;
|
||||
|
||||
_sorted_patx_settings.clear();
|
||||
for (const SettingDesc *desc = sd; desc->save.cmd != SL_END; desc++) {
|
||||
@@ -2264,54 +2277,15 @@ static void MakeSettingsPatxList(const SettingDesc *sd)
|
||||
_sorted_patx_settings.push_back(desc);
|
||||
}
|
||||
|
||||
// this makes me miss lambdas :/
|
||||
struct StringSorter {
|
||||
bool operator()(const SettingDesc *a, const SettingDesc *b)
|
||||
{
|
||||
return strcmp(a->patx_name, b->patx_name) < 0;
|
||||
}
|
||||
};
|
||||
std::sort(_sorted_patx_settings.begin(), _sorted_patx_settings.end(), StringSorter());
|
||||
}
|
||||
|
||||
/**
|
||||
* Load handler for settings which go in the PATX chunk
|
||||
* @param osd SettingDesc struct containing all information
|
||||
* @param object can be either NULL in which case we load global variables or
|
||||
* a pointer to a struct which is getting saved
|
||||
* Internal structure used in LoadSettingsPatx()
|
||||
* placed outside for legacy compiler compatibility
|
||||
* this is effectively a reference capture lambda
|
||||
*/
|
||||
static void LoadSettingsPatx(const SettingDesc *sd, void *object)
|
||||
{
|
||||
MakeSettingsPatxList(sd);
|
||||
|
||||
struct SettingsPatxLoad {
|
||||
uint32 flags;
|
||||
char name[256];
|
||||
uint32 setting_length;
|
||||
};
|
||||
SettingsPatxLoad current_setting;
|
||||
|
||||
static const SaveLoad _settings_patx_desc[] = {
|
||||
SLE_VAR(SettingsPatxLoad, flags, SLE_UINT32),
|
||||
SLE_STR(SettingsPatxLoad, name, SLE_STRB, 256),
|
||||
SLE_VAR(SettingsPatxLoad, setting_length, SLE_UINT32),
|
||||
SLE_END()
|
||||
};
|
||||
|
||||
uint32 flags = SlReadUint32();
|
||||
// flags are not in use yet, reserve for future expansion
|
||||
if (flags != 0) SlErrorCorruptFmt("PATX chunk: unknown chunk header flags: 0x%X", flags);
|
||||
|
||||
uint32 settings_count = SlReadUint32();
|
||||
for (uint32 i = 0; i < settings_count; i++) {
|
||||
SlObject(¤t_setting, _settings_patx_desc);
|
||||
|
||||
// flags are not in use yet, reserve for future expansion
|
||||
if (current_setting.flags != 0) SlErrorCorruptFmt("PATX chunk: unknown setting header flags: 0x%X", current_setting.flags);
|
||||
|
||||
// now try to find corresponding setting, this would be much easier with C++11 support...
|
||||
bool exact_match = false;
|
||||
struct StringSearcher {
|
||||
struct StringSearcher {
|
||||
bool &m_exact_match;
|
||||
|
||||
StringSearcher(bool &exact_match)
|
||||
@@ -2323,7 +2297,65 @@ static void LoadSettingsPatx(const SettingDesc *sd, void *object)
|
||||
if (result == 0) m_exact_match = true;
|
||||
return result < 0;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Internal structure used in LoadSettingsPatx() and LoadSettingsPlyx()
|
||||
*/
|
||||
struct SettingsExtLoad {
|
||||
uint32 flags;
|
||||
char name[256];
|
||||
uint32 setting_length;
|
||||
};
|
||||
|
||||
static const SaveLoad _settings_ext_load_desc[] = {
|
||||
SLE_VAR(SettingsExtLoad, flags, SLE_UINT32),
|
||||
SLE_STR(SettingsExtLoad, name, SLE_STRB, 256),
|
||||
SLE_VAR(SettingsExtLoad, setting_length, SLE_UINT32),
|
||||
SLE_END()
|
||||
};
|
||||
|
||||
/**
|
||||
* Internal structure used in SaveSettingsPatx() and SaveSettingsPlyx()
|
||||
*/
|
||||
struct SettingsExtSave {
|
||||
uint32 flags;
|
||||
const char *name;
|
||||
uint32 setting_length;
|
||||
};
|
||||
|
||||
static const SaveLoad _settings_ext_save_desc[] = {
|
||||
SLE_VAR(SettingsExtSave, flags, SLE_UINT32),
|
||||
SLE_STR(SettingsExtSave, name, SLE_STR, 0),
|
||||
SLE_VAR(SettingsExtSave, setting_length, SLE_UINT32),
|
||||
SLE_END()
|
||||
};
|
||||
|
||||
/**
|
||||
* Load handler for settings which go in the PATX chunk
|
||||
* @param osd SettingDesc struct containing all information
|
||||
* @param object can be either NULL in which case we load global variables or
|
||||
* a pointer to a struct which is getting saved
|
||||
*/
|
||||
static void LoadSettingsPatx(const SettingDesc *sd, void *object)
|
||||
{
|
||||
MakeSettingsPatxList(sd);
|
||||
|
||||
SettingsExtLoad current_setting;
|
||||
|
||||
uint32 flags = SlReadUint32();
|
||||
// flags are not in use yet, reserve for future expansion
|
||||
if (flags != 0) SlErrorCorruptFmt("PATX chunk: unknown chunk header flags: 0x%X", flags);
|
||||
|
||||
uint32 settings_count = SlReadUint32();
|
||||
for (uint32 i = 0; i < settings_count; i++) {
|
||||
SlObject(¤t_setting, _settings_ext_load_desc);
|
||||
|
||||
// flags are not in use yet, reserve for future expansion
|
||||
if (current_setting.flags != 0) SlErrorCorruptFmt("PATX chunk: unknown setting header flags: 0x%X", current_setting.flags);
|
||||
|
||||
// now try to find corresponding setting, this would be much easier with C++11 support...
|
||||
bool exact_match = false;
|
||||
std::vector<const SettingDesc *>::iterator iter = std::lower_bound(_sorted_patx_settings.begin(), _sorted_patx_settings.end(), current_setting.name, StringSearcher(exact_match));
|
||||
|
||||
if (exact_match) {
|
||||
@@ -2344,6 +2376,15 @@ static void LoadSettingsPatx(const SettingDesc *sd, void *object)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal structure used in SaveSettingsPatx()
|
||||
* placed outside for legacy compiler compatibility
|
||||
*/
|
||||
struct SettingToAdd {
|
||||
const SettingDesc *setting;
|
||||
uint32 setting_length;
|
||||
};
|
||||
|
||||
/**
|
||||
* Save handler for settings which go in the PATX chunk
|
||||
* @param sd SettingDesc struct containing all information
|
||||
@@ -2352,24 +2393,8 @@ static void LoadSettingsPatx(const SettingDesc *sd, void *object)
|
||||
*/
|
||||
static void SaveSettingsPatx(const SettingDesc *sd, void *object)
|
||||
{
|
||||
struct SettingsPatxSave {
|
||||
uint32 flags;
|
||||
const char *name;
|
||||
uint32 setting_length;
|
||||
};
|
||||
SettingsPatxSave current_setting;
|
||||
SettingsExtSave current_setting;
|
||||
|
||||
static const SaveLoad _settings_patx_desc[] = {
|
||||
SLE_VAR(SettingsPatxSave, flags, SLE_UINT32),
|
||||
SLE_STR(SettingsPatxSave, name, SLE_STR, 0),
|
||||
SLE_VAR(SettingsPatxSave, setting_length, SLE_UINT32),
|
||||
SLE_END()
|
||||
};
|
||||
|
||||
struct SettingToAdd {
|
||||
const SettingDesc *setting;
|
||||
uint32 setting_length;
|
||||
};
|
||||
std::vector<SettingToAdd> settings_to_add;
|
||||
|
||||
size_t length = 8;
|
||||
@@ -2381,12 +2406,14 @@ static void SaveSettingsPatx(const SettingDesc *sd, void *object)
|
||||
current_setting.name = desc->patx_name;
|
||||
|
||||
// add length of setting header
|
||||
length += SlCalcObjLength(¤t_setting, _settings_patx_desc);
|
||||
length += SlCalcObjLength(¤t_setting, _settings_ext_save_desc);
|
||||
|
||||
// add length of actual setting
|
||||
length += setting_length;
|
||||
|
||||
settings_to_add.push_back({ desc, setting_length });
|
||||
// duplicate copy made for compiler backwards compatibility
|
||||
SettingToAdd new_setting = { desc, setting_length };
|
||||
settings_to_add.push_back(new_setting);
|
||||
}
|
||||
SlSetLength(length);
|
||||
|
||||
@@ -2398,12 +2425,171 @@ static void SaveSettingsPatx(const SettingDesc *sd, void *object)
|
||||
current_setting.flags = 0;
|
||||
current_setting.name = desc->patx_name;
|
||||
current_setting.setting_length = settings_to_add[i].setting_length;
|
||||
SlObject(¤t_setting, _settings_patx_desc);
|
||||
SlObject(¤t_setting, _settings_ext_save_desc);
|
||||
void *ptr = GetVariableAddress(object, &desc->save);
|
||||
SlObjectMember(ptr, &desc->save);
|
||||
}
|
||||
}
|
||||
|
||||
/** @file
|
||||
*
|
||||
* The PLYX chunk stores additional company settings in an unordered
|
||||
* format which is tolerant of extra, missing or reordered settings.
|
||||
* The format is similar to the PATX chunk.
|
||||
* Additional settings generally means those that aren't in trunk.
|
||||
*
|
||||
* The PLYX chunk contents has the following format:
|
||||
*
|
||||
* uint32 chunk flags (unused)
|
||||
* uint32 number of companies
|
||||
* For each of N companies:
|
||||
* uint32 company ID
|
||||
* uint32 company flags (unused)
|
||||
* uint32 number of settings
|
||||
* For each of N settings:
|
||||
* uint32 setting flags (unused)
|
||||
* SLE_STR setting name
|
||||
* uint32 length of setting field
|
||||
* N bytes setting field
|
||||
*/
|
||||
|
||||
/**
|
||||
* Load handler for company settings which go in the PLYX chunk
|
||||
* @param check_mode Whether to skip over settings without reading
|
||||
*/
|
||||
void LoadSettingsPlyx(bool skip)
|
||||
{
|
||||
SettingsExtLoad current_setting;
|
||||
|
||||
uint32 chunk_flags = SlReadUint32();
|
||||
// flags are not in use yet, reserve for future expansion
|
||||
if (chunk_flags != 0) SlErrorCorruptFmt("PLYX chunk: unknown chunk header flags: 0x%X", chunk_flags);
|
||||
|
||||
uint32 company_count = SlReadUint32();
|
||||
for (uint32 i = 0; i < company_count; i++) {
|
||||
uint32 company_id = SlReadUint32();
|
||||
if (company_id >= MAX_COMPANIES) SlErrorCorruptFmt("PLYX chunk: invalid company ID: %u", company_id);
|
||||
|
||||
const Company *c = NULL;
|
||||
if (!skip) {
|
||||
c = Company::GetIfValid(company_id);
|
||||
if (c == NULL) SlErrorCorruptFmt("PLYX chunk: non-existant company ID: %u", company_id);
|
||||
}
|
||||
|
||||
uint32 company_flags = SlReadUint32();
|
||||
// flags are not in use yet, reserve for future expansion
|
||||
if (company_flags != 0) SlErrorCorruptFmt("PLYX chunk: unknown company flags: 0x%X", company_flags);
|
||||
|
||||
uint32 settings_count = SlReadUint32();
|
||||
for (uint32 j = 0; j < settings_count; j++) {
|
||||
SlObject(¤t_setting, _settings_ext_load_desc);
|
||||
|
||||
// flags are not in use yet, reserve for future expansion
|
||||
if (current_setting.flags != 0) SlErrorCorruptFmt("PLYX chunk: unknown setting header flags: 0x%X", current_setting.flags);
|
||||
|
||||
if (skip) {
|
||||
SlSkipBytes(current_setting.setting_length);
|
||||
continue;
|
||||
}
|
||||
|
||||
const SettingDesc *setting = NULL;
|
||||
|
||||
// not many company settings, so perform a linear scan
|
||||
for (const SettingDesc *desc = _company_settings; desc->save.cmd != SL_END; desc++) {
|
||||
if (desc->patx_name != NULL && strcmp(desc->patx_name, current_setting.name) == 0) {
|
||||
setting = desc;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (setting != NULL) {
|
||||
// found setting
|
||||
const SaveLoad *sld = &(setting->save);
|
||||
size_t read = SlGetBytesRead();
|
||||
void *ptr = GetVariableAddress(&(c->settings), sld);
|
||||
SlObjectMember(ptr, sld);
|
||||
if (SlGetBytesRead() != read + current_setting.setting_length) {
|
||||
SlErrorCorruptFmt("PLYX chunk: setting read length mismatch for setting: '%s'", current_setting.name);
|
||||
}
|
||||
if (IsNumericType(sld->conv)) Write_ValidateSetting(ptr, setting, ReadValue(ptr, sld->conv));
|
||||
} else {
|
||||
DEBUG(sl, 1, "PLYX chunk: Could not find company setting: '%s', ignoring", current_setting.name);
|
||||
SlSkipBytes(current_setting.setting_length);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Save handler for settings which go in the PLYX chunk
|
||||
*/
|
||||
void SaveSettingsPlyx()
|
||||
{
|
||||
SettingsExtSave current_setting;
|
||||
|
||||
static const SaveLoad _settings_plyx_desc[] = {
|
||||
SLE_VAR(SettingsExtSave, flags, SLE_UINT32),
|
||||
SLE_STR(SettingsExtSave, name, SLE_STR, 0),
|
||||
SLE_VAR(SettingsExtSave, setting_length, SLE_UINT32),
|
||||
SLE_END()
|
||||
};
|
||||
|
||||
std::vector<uint32> company_setting_counts;
|
||||
|
||||
size_t length = 8;
|
||||
uint32 companies_count = 0;
|
||||
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
length += 12;
|
||||
companies_count++;
|
||||
uint32 setting_count = 0;
|
||||
for (const SettingDesc *desc = _company_settings; desc->save.cmd != SL_END; desc++) {
|
||||
if (desc->patx_name == NULL) continue;
|
||||
uint32 setting_length = SlCalcObjMemberLength(&(c->settings), &desc->save);
|
||||
if (!setting_length) continue;
|
||||
|
||||
current_setting.name = desc->patx_name;
|
||||
|
||||
// add length of setting header
|
||||
length += SlCalcObjLength(¤t_setting, _settings_ext_save_desc);
|
||||
|
||||
// add length of actual setting
|
||||
length += setting_length;
|
||||
|
||||
setting_count++;
|
||||
}
|
||||
company_setting_counts.push_back(setting_count);
|
||||
}
|
||||
SlSetLength(length);
|
||||
|
||||
SlWriteUint32(0); // flags
|
||||
SlWriteUint32(companies_count); // companies count
|
||||
|
||||
size_t index = 0;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
length += 12;
|
||||
companies_count++;
|
||||
SlWriteUint32(c->index); // company ID
|
||||
SlWriteUint32(0); // flags
|
||||
SlWriteUint32(company_setting_counts[index]); // setting count
|
||||
index++;
|
||||
|
||||
for (const SettingDesc *desc = _company_settings; desc->save.cmd != SL_END; desc++) {
|
||||
if (desc->patx_name == NULL) continue;
|
||||
uint32 setting_length = SlCalcObjMemberLength(&(c->settings), &desc->save);
|
||||
if (!setting_length) continue;
|
||||
|
||||
current_setting.flags = 0;
|
||||
current_setting.name = desc->patx_name;
|
||||
current_setting.setting_length = setting_length;
|
||||
SlObject(¤t_setting, _settings_plyx_desc);
|
||||
void *ptr = GetVariableAddress(&(c->settings), &desc->save);
|
||||
SlObjectMember(ptr, &desc->save);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Load_OPTS()
|
||||
{
|
||||
/* Copy over default setting since some might not get loaded in
|
||||
|
@@ -81,7 +81,7 @@ const char *SoundDriver_Win32::Start(const char * const *parm)
|
||||
PrepareHeader(&_wave_hdr[1]);
|
||||
|
||||
if (NULL == (_thread = CreateThread(NULL, 8192, SoundThread, 0, 0, &_threadId))) throw "Failed to create thread";
|
||||
} catch (char *error) {
|
||||
} catch (const char *error) {
|
||||
this->Stop();
|
||||
return error;
|
||||
}
|
||||
|
@@ -18,8 +18,8 @@ static const SettingDesc _company_settings[] = {
|
||||
[post-amble]
|
||||
};
|
||||
[templates]
|
||||
SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL),
|
||||
SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, NULL),
|
||||
SDT_BOOL = SDT_BOOL($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname),
|
||||
SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extver, $patxname),
|
||||
SDT_END = SDT_END()
|
||||
|
||||
[defaults]
|
||||
@@ -34,7 +34,8 @@ load = NULL
|
||||
from = 0
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
extver = {}
|
||||
extver = SlXvFeatureTest()
|
||||
patxname = NULL
|
||||
|
||||
|
||||
|
||||
|
@@ -28,7 +28,7 @@ load = NULL
|
||||
from = 0
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
extver = {}
|
||||
extver = SlXvFeatureTest()
|
||||
|
||||
|
||||
|
||||
|
@@ -62,7 +62,7 @@ load = NULL
|
||||
from = 0
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
extver = {}
|
||||
extver = SlXvFeatureTest()
|
||||
|
||||
|
||||
|
||||
|
@@ -35,7 +35,7 @@ load = NULL
|
||||
from = 0
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
extver = {}
|
||||
extver = SlXvFeatureTest()
|
||||
|
||||
|
||||
|
||||
|
@@ -91,7 +91,7 @@ load = NULL
|
||||
from = 0
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
extver = {}
|
||||
extver = SlXvFeatureTest()
|
||||
patxname = NULL
|
||||
|
||||
|
||||
|
@@ -33,7 +33,7 @@ load = NULL
|
||||
from = 0
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
extver = {}
|
||||
extver = SlXvFeatureTest()
|
||||
|
||||
|
||||
|
||||
|
@@ -29,7 +29,7 @@ load = NULL
|
||||
from = 0
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
extver = {}
|
||||
extver = SlXvFeatureTest()
|
||||
|
||||
|
||||
|
||||
|
@@ -462,7 +462,7 @@ static const NWidgetPart _nested_scen_edit_land_gen_widgets[] = {
|
||||
NWidget(WWT_IMGBTN, COLOUR_GREY, WID_ETT_PLACE_DESERT), SetMinimalSize(22, 22),
|
||||
SetFill(0, 1), SetDataTip(SPR_IMG_DESERT, STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA),
|
||||
EndContainer(),
|
||||
NWidget(WWT_IMGBTN, COLOUR_GREY, WID_ETT_PLACE_OBJECT), SetMinimalSize(23, 22),
|
||||
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_ETT_PLACE_OBJECT), SetMinimalSize(23, 22),
|
||||
SetFill(0, 1), SetDataTip(SPR_IMG_TRANSMITTER, STR_SCENEDIT_TOOLBAR_PLACE_OBJECT),
|
||||
NWidget(NWID_SPACER), SetFill(1, 0),
|
||||
EndContainer(),
|
||||
@@ -704,7 +704,6 @@ struct ScenarioEditorLandscapeGenerationWindow : Window {
|
||||
{
|
||||
this->RaiseButtons();
|
||||
this->SetDirty();
|
||||
DeleteWindowById(WC_BUILD_OBJECT, 0);
|
||||
}
|
||||
|
||||
static HotkeyList hotkeys;
|
||||
|
@@ -1247,8 +1247,8 @@ static void GrowTownInTile(TileIndex *tile_ptr, RoadBits cur_rb, DiagDirection t
|
||||
/* FALL THROUGH */
|
||||
|
||||
case TL_2X2_GRID:
|
||||
rcmd = GetTownRoadGridElement(t1, house_tile, target_dir);
|
||||
allow_house = (rcmd == ROAD_NONE);
|
||||
rcmd = GetTownRoadGridElement(t1, tile, target_dir);
|
||||
allow_house = (rcmd & DiagDirToRoadBits(target_dir)) == ROAD_NONE;
|
||||
break;
|
||||
|
||||
case TL_BETTER_ROADS: // Use original afterwards!
|
||||
@@ -1378,13 +1378,12 @@ static bool GrowTownAtRoad(Town *t, TileIndex tile)
|
||||
|
||||
/* Try to grow the town from this point */
|
||||
GrowTownInTile(&tile, cur_rb, target_dir, t);
|
||||
if (_grow_town_result == GROWTH_SUCCEED) return true;
|
||||
|
||||
/* Exclude the source position from the bitmask
|
||||
* and return if no more road blocks available */
|
||||
if (IsValidDiagDirection(target_dir)) cur_rb &= ~DiagDirToRoadBits(ReverseDiagDir(target_dir));
|
||||
if (cur_rb == ROAD_NONE) {
|
||||
return _grow_town_result == GROWTH_SUCCEED;
|
||||
}
|
||||
if (cur_rb == ROAD_NONE) return false;
|
||||
|
||||
if (IsTileType(tile, MP_TUNNELBRIDGE)) {
|
||||
/* Only build in the direction away from the tunnel or bridge. */
|
||||
@@ -1419,7 +1418,7 @@ static bool GrowTownAtRoad(Town *t, TileIndex tile)
|
||||
/* Max number of times is checked. */
|
||||
} while (--_grow_town_result >= 0);
|
||||
|
||||
return _grow_town_result == GROWTH_SUCCEED - 1;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1386,13 +1386,15 @@ CommandCost CmdSellRailWagon(DoCommandFlag flags, Vehicle *t, uint16 data, uint3
|
||||
return ret;
|
||||
}
|
||||
|
||||
CommandCost cost(EXPENSES_NEW_VEHICLES);
|
||||
for (Train *t = sell_head; t != NULL; t = t->Next()) cost.AddCost(-t->value);
|
||||
|
||||
if (first->orders.list == NULL && !OrderList::CanAllocateItem()) {
|
||||
/* Restore the train we had. */
|
||||
RestoreTrainBackup(original);
|
||||
return_cmd_error(STR_ERROR_NO_MORE_SPACE_FOR_ORDERS);
|
||||
}
|
||||
|
||||
CommandCost cost(EXPENSES_NEW_VEHICLES);
|
||||
for (Train *t = sell_head; t != NULL; t = t->Next()) cost.AddCost(-t->value);
|
||||
|
||||
/* do it? */
|
||||
if (flags & DC_EXEC) {
|
||||
/* First normalise the sub types of the chain. */
|
||||
|
@@ -325,10 +325,10 @@ void GenerateTrees()
|
||||
|
||||
/**
|
||||
* Plant a tree.
|
||||
* @param tile start tile of area-drag of tree plantation
|
||||
* @param tile end tile of area-drag
|
||||
* @param flags type of operation
|
||||
* @param p1 tree type, TREE_INVALID means random.
|
||||
* @param p2 end tile of area-drag
|
||||
* @param p2 start tile of area-drag of tree plantation
|
||||
* @param text unused
|
||||
* @return the cost of this operation or an error
|
||||
*/
|
||||
|
@@ -1347,6 +1347,9 @@ void AgeVehicle(Vehicle *v)
|
||||
* @param front The front vehicle of the consist to check.
|
||||
* @param colour The string to show depending on if we are unloading or loading
|
||||
* @return A percentage of how full the Vehicle is.
|
||||
* Percentages are rounded towards 50%, so that 0% and 100% are only returned
|
||||
* if the vehicle is completely empty or full.
|
||||
* This is useful for both display and conditional orders.
|
||||
*/
|
||||
uint8 CalcPercentVehicleFilled(const Vehicle *front, StringID *colour)
|
||||
{
|
||||
@@ -1394,7 +1397,13 @@ uint8 CalcPercentVehicleFilled(const Vehicle *front, StringID *colour)
|
||||
if (max == 0) return 100;
|
||||
|
||||
/* Return the percentage */
|
||||
if (count * 2 < max) {
|
||||
/* Less than 50%; round up, so that 0% means really empty. */
|
||||
return CeilDiv(count * 100, max);
|
||||
} else {
|
||||
/* More than 50%; round down, so that 100% means really full. */
|
||||
return (count * 100) / max;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -358,8 +358,10 @@ static CommandCost RefitVehicle(Vehicle *v, bool only_this, uint8 num_vehicles,
|
||||
|
||||
bool auto_refit_allowed;
|
||||
CommandCost refit_cost = GetRefitCost(v, v->engine_type, new_cid, actual_subtype, &auto_refit_allowed);
|
||||
if (auto_refit && !auto_refit_allowed) {
|
||||
/* Sorry, auto-refitting not allowed, subtract the cargo amount again from the total. */
|
||||
if (auto_refit && (flags & DC_QUERY_COST) == 0 && !auto_refit_allowed) {
|
||||
/* Sorry, auto-refitting not allowed, subtract the cargo amount again from the total.
|
||||
* When querrying cost/capacity (for example in order refit GUI), we always assume 'allowed'.
|
||||
* It is not predictable. */
|
||||
total_capacity -= amount;
|
||||
total_mail_capacity -= mail_capacity;
|
||||
|
||||
@@ -446,8 +448,15 @@ CommandCost CmdRefitVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
|
||||
|
||||
/* Don't allow shadows and such to be refitted. */
|
||||
if (v != front && (v->type == VEH_SHIP || v->type == VEH_AIRCRAFT)) return CMD_ERROR;
|
||||
|
||||
/* Allow auto-refitting only during loading and normal refitting only in a depot. */
|
||||
if (!free_wagon && (!auto_refit || !front->current_order.IsType(OT_LOADING)) && !front->IsStoppedInDepot()) return_cmd_error(STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT + front->type);
|
||||
if ((flags & DC_QUERY_COST) == 0 && // used by the refit GUI, including the order refit GUI.
|
||||
!free_wagon && // used by autoreplace/renew
|
||||
(!auto_refit || !front->current_order.IsType(OT_LOADING)) && // refit inside stations
|
||||
!front->IsStoppedInDepot()) { // refit inside depots
|
||||
return_cmd_error(STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT + front->type);
|
||||
}
|
||||
|
||||
if (front->vehstatus & VS_CRASHED) return_cmd_error(STR_ERROR_VEHICLE_IS_DESTROYED);
|
||||
|
||||
/* Check cargo */
|
||||
|
@@ -727,7 +727,10 @@ struct RefitWindow : public Window {
|
||||
if (_returned_mail_refit_capacity > 0) {
|
||||
SetDParam(2, CT_MAIL);
|
||||
SetDParam(3, _returned_mail_refit_capacity);
|
||||
if (money <= 0) {
|
||||
if (this->order != INVALID_VEH_ORDER_ID) {
|
||||
/* No predictable cost */
|
||||
return STR_PURCHASE_INFO_AIRCRAFT_CAPACITY;
|
||||
} else if (money <= 0) {
|
||||
SetDParam(4, -money);
|
||||
return STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT;
|
||||
} else {
|
||||
@@ -735,7 +738,11 @@ struct RefitWindow : public Window {
|
||||
return STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT;
|
||||
}
|
||||
} else {
|
||||
if (money <= 0) {
|
||||
if (this->order != INVALID_VEH_ORDER_ID) {
|
||||
/* No predictable cost */
|
||||
SetDParam(2, STR_EMPTY);
|
||||
return STR_PURCHASE_INFO_CAPACITY;
|
||||
} else if (money <= 0) {
|
||||
SetDParam(2, -money);
|
||||
return STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT;
|
||||
} else {
|
||||
|
@@ -1207,6 +1207,7 @@ void ChangeWindowOwner(Owner old_owner, Owner new_owner)
|
||||
case WC_BUY_COMPANY:
|
||||
case WC_COMPANY:
|
||||
case WC_COMPANY_INFRASTRUCTURE:
|
||||
case WC_VEHICLE_ORDERS: // Changing owner would also require changing WindowDesc, which is not possible; however keeping the old one crashes because of missing widgets etc.. See ShowOrdersWindow().
|
||||
continue;
|
||||
|
||||
default:
|
||||
|
@@ -67,7 +67,7 @@ static inline int UnScaleByZoomLower(int value, ZoomLevel zoom)
|
||||
/**
|
||||
* Short-hand to apply GUI zoom level.
|
||||
* @param value Pixel amount at #ZOOM_LVL_BEGIN (full zoom in).
|
||||
* @return value Pixel amount at #ZOOM_LVL_GUI.
|
||||
* @return Pixel amount at #ZOOM_LVL_GUI (current interface size).
|
||||
*/
|
||||
static inline int UnScaleGUI(int value)
|
||||
{
|
||||
@@ -76,8 +76,8 @@ static inline int UnScaleGUI(int value)
|
||||
|
||||
/**
|
||||
* Scale traditional pixel dimensions to GUI zoom level.
|
||||
* @param value Pixel amount at 1x zoom level.
|
||||
* @return value Pixel amount at #ZOOM_LVL_GUI.
|
||||
* @param value Pixel amount at #ZOOM_LVL_BASE (traditional "normal" interface size).
|
||||
* @return Pixel amount at #ZOOM_LVL_GUI (current interface size).
|
||||
*/
|
||||
static inline int ScaleGUITrad(int value)
|
||||
{
|
||||
|
Reference in New Issue
Block a user