(svn r12896) [NoAI] -Sync: with trunk r12824:r12895.
--- a/bin/ai/regression/regression.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/bin/ai/regression/regression.txt Fri Apr 25 15:20:48 2008 +0000
@@ -9,21 +9,21 @@
abs( 21): 21
--AIBase--
- Rand(): -561136928
- Rand(): 1884901916
- Rand(): -1202945897
+ Rand(): -71599500
+ Rand(): -625161313
+ Rand(): -38326422
RandRange(0): 0
RandRange(0): 0
RandRange(0): 0
RandRange(1): 0
RandRange(1): 0
RandRange(1): 0
- RandRange(2): 0
+ RandRange(2): 1
RandRange(2): 0
RandRange(2): 1
- RandRange(9): 2
+ RandRange(9): 0
+ RandRange(9): 0
RandRange(9): 5
- RandRange(9): 4
Chance(1, 2): true
Chance(1, 2): true
Chance(1, 2): true
@@ -239,144 +239,144 @@
1098 => 4768614
1099 => 4772957
Randomize ListDump:
- 1 => -619704336
- 2 => 1166439751
- 1000 => -914833827
- 1001 => -1215386906
- 1002 => -1069187552
- 1003 => 112127200
- 1004 => 1050904874
- 1005 => -429346856
- 1006 => -608971312
- 1007 => 1169222927
- 1008 => 1369657072
- 1009 => 767111199
- 1010 => 1904874981
- 1011 => 161085759
- 1012 => 271771856
- 1013 => -533081029
- 1014 => -1409657365
- 1015 => 1563875660
- 1016 => 1113935053
- 1017 => 792268145
- 1018 => -70442569
- 1019 => -547592946
- 1020 => -778640532
- 1021 => -1375060615
- 1022 => 318449191
- 1023 => -190171711
- 1024 => 178940318
- 1025 => 442765623
- 1026 => 313145543
- 1027 => -458470184
- 1028 => -1297320844
- 1029 => 2091522683
- 1030 => 529678468
- 1031 => 548268055
- 1032 => -9350756
- 1033 => -1719797748
- 1034 => -1837545138
- 1035 => 794565562
- 1036 => 465317634
- 1037 => -1928623851
- 1038 => -330437837
- 1039 => -956974293
- 1040 => 976574875
- 1041 => -1888843242
- 1042 => -2005628326
- 1043 => -1562648047
- 1044 => -868060600
- 1045 => -403788235
- 1046 => 367414207
- 1047 => 681820797
- 1048 => -1197099260
- 1049 => -650879767
- 1051 => 941556066
- 1052 => -36585116
- 1053 => -988001222
- 1054 => -1407695456
- 1055 => 1569591207
- 1056 => 1434294956
- 1057 => -879654590
- 1058 => 6511542
- 1059 => -270940883
- 1060 => 1646156529
- 1061 => 1457378902
- 1062 => -1703288615
- 1063 => -1530193095
- 1064 => 1852649127
- 1065 => -1071976838
- 1066 => 372901081
- 1067 => 934187143
- 1068 => -516975589
- 1069 => -1086784819
- 1070 => 1484112318
- 1071 => -2061433623
- 1072 => -1787587249
- 1073 => 1528388260
- 1074 => 658189461
- 1075 => 2114811864
- 1076 => 949664695
- 1077 => -1569338881
- 1078 => 880833979
- 1079 => 883721763
- 1080 => 632697644
- 1081 => 1556076896
- 1082 => -1316111879
- 1083 => -1721672483
- 1084 => -1693824167
- 1085 => 1135419548
- 1086 => -1387302877
- 1087 => 1713624705
- 1088 => 492025163
- 1089 => 1559280427
- 1090 => 703894820
- 1091 => -1626847649
- 1092 => 1977038480
- 1093 => -1644526188
- 1094 => -640385428
- 1095 => -726109663
- 1096 => -106206677
- 1097 => 291310901
- 1098 => 647492868
- 1099 => 421056347
+ 1 => 5934189
+ 2 => -1761272564
+ 1000 => 998881475
+ 1001 => 409666838
+ 1002 => -948603759
+ 1003 => -1581773722
+ 1004 => 2104319151
+ 1005 => 64634822
+ 1006 => -671738360
+ 1007 => 1178243491
+ 1008 => 1680605747
+ 1009 => 2067858917
+ 1010 => -1906406406
+ 1011 => -1795626673
+ 1012 => 375391239
+ 1013 => -494815434
+ 1014 => -2138911669
+ 1015 => -218170941
+ 1016 => -2145147030
+ 1017 => -1889805802
+ 1018 => -188719086
+ 1019 => 254262262
+ 1020 => -1432258301
+ 1021 => 753450495
+ 1022 => 202826571
+ 1023 => 203856518
+ 1024 => 2033066803
+ 1025 => -1217026074
+ 1026 => 177237636
+ 1027 => -1862680832
+ 1028 => -809506802
+ 1029 => 799054729
+ 1030 => -870842760
+ 1031 => 1235706796
+ 1032 => 1805577366
+ 1033 => -529149597
+ 1034 => -1160496110
+ 1035 => -2112828300
+ 1036 => 1031472271
+ 1037 => -1067512395
+ 1038 => -1670717046
+ 1039 => -1893761951
+ 1040 => -1937566705
+ 1041 => 875192026
+ 1042 => -799929174
+ 1043 => 429626413
+ 1044 => -821285437
+ 1045 => 1670322612
+ 1046 => 1925605331
+ 1047 => 1705170599
+ 1048 => -256175309
+ 1049 => 651753684
+ 1051 => -1710121819
+ 1052 => 1155454929
+ 1053 => 461431108
+ 1054 => -2028561436
+ 1055 => 1977157906
+ 1056 => -54636091
+ 1057 => -669496035
+ 1058 => -959189089
+ 1059 => -1081705818
+ 1060 => 935048341
+ 1061 => 1848058144
+ 1062 => 682657049
+ 1063 => 9406967
+ 1064 => -98686165
+ 1065 => -64824797
+ 1066 => 1365042371
+ 1067 => 1754819174
+ 1068 => 933840019
+ 1069 => 1577578402
+ 1070 => 420566759
+ 1071 => -1872469035
+ 1072 => -697881323
+ 1073 => 1091027235
+ 1074 => 1001969154
+ 1075 => 315466472
+ 1076 => 840435208
+ 1077 => 2010662021
+ 1078 => -1784655975
+ 1079 => 1413073566
+ 1080 => -841240668
+ 1081 => 103625484
+ 1082 => -1658507510
+ 1083 => -102091421
+ 1084 => 1464728002
+ 1085 => 1049162075
+ 1086 => 769281991
+ 1087 => 384138993
+ 1088 => -2064287113
+ 1089 => -931746111
+ 1090 => -358850804
+ 1091 => 978513867
+ 1092 => -1756292659
+ 1093 => 73085820
+ 1094 => 284986576
+ 1095 => 1908549801
+ 1096 => 1031985888
+ 1097 => -216278913
+ 1098 => 988268067
+ 1099 => -618655226
KeepTop(10):
- 1 => -619704336
- 2 => 1166439751
- 1000 => -914833827
- 1001 => -1215386906
- 1002 => -1069187552
- 1003 => 112127200
- 1004 => 1050904874
- 1005 => -429346856
- 1006 => -608971312
- 1007 => 1169222927
+ 1 => 5934189
+ 2 => -1761272564
+ 1000 => 998881475
+ 1001 => 409666838
+ 1002 => -948603759
+ 1003 => -1581773722
+ 1004 => 2104319151
+ 1005 => 64634822
+ 1006 => -671738360
+ 1007 => 1178243491
KeepBottom(8):
- 1000 => -914833827
- 1001 => -1215386906
- 1002 => -1069187552
- 1003 => 112127200
- 1004 => 1050904874
- 1005 => -429346856
- 1006 => -608971312
- 1007 => 1169222927
+ 1000 => 998881475
+ 1001 => 409666838
+ 1002 => -948603759
+ 1003 => -1581773722
+ 1004 => 2104319151
+ 1005 => 64634822
+ 1006 => -671738360
+ 1007 => 1178243491
RemoveBottom(2):
- 1000 => -914833827
- 1001 => -1215386906
- 1002 => -1069187552
- 1003 => 112127200
- 1004 => 1050904874
- 1005 => -429346856
+ 1000 => 998881475
+ 1001 => 409666838
+ 1002 => -948603759
+ 1003 => -1581773722
+ 1004 => 2104319151
+ 1005 => 64634822
RemoveTop(2):
- 1002 => -1069187552
- 1003 => 112127200
- 1004 => 1050904874
- 1005 => -429346856
+ 1002 => -948603759
+ 1003 => -1581773722
+ 1004 => 2104319151
+ 1005 => 64634822
RemoveList({1003, 1004}):
- 1002 => -1069187552
- 1005 => -429346856
+ 1002 => -948603759
+ 1005 => 64634822
KeepList({1003, 1004, 1005}):
- 1005 => -429346856
+ 1005 => 64634822
AddList({1005, 4000, 4001, 4002}):
1005 => 1005
4000 => 4000
@@ -812,7 +812,7 @@
SetCompanyName(): false
GetLastErrorString(): ERR_NAME_IS_NOT_UNIQUE
GetCompanyName(): Regression
- GetPresidentName(): I. Campbell
+ GetPresidentName(): I. O'Donnell
SetPresidentName(): true
GetPresidentName(): Regression AI
GetCompanyValue(): 0
@@ -5435,7 +5435,7 @@
GetName(0): Benville Airport
GetLocation(1): 29253
GetLocation(1000): -1
- GetStationID(33411): 3
+ GetStationID(33411): 2
GetStationID(34411): 65535
GetCargoWaiting(0, 0): 0
GetCargoWaiting(1000, 0): -1
@@ -5447,14 +5447,14 @@
--StationList--
Count(): 2
Location ListDump:
- 4 => 33421
- 3 => 33411
+ 3 => 33421
+ 2 => 33411
CargoWaiting(0) ListDump:
- 4 => 0
3 => 0
+ 2 => 0
CargoWaiting(1) ListDump:
- 4 => 0
3 => 0
+ 2 => 0
--TileList--
Count(): 0
@@ -6373,23 +6373,23 @@
--StationList_Vehicle--
Count(): 2
Location ListDump:
- 4 => 33421
- 3 => 33411
+ 3 => 33421
+ 2 => 33411
CargoWaiting(0) ListDump:
- 4 => 0
- 3 => 0
- CargoWaiting(1) ListDump:
- 4 => 0
3 => 0
+ 2 => 0
+ CargoWaiting(1) ListDump:
+ 3 => 0
+ 2 => 0
CargoRating(1) ListDump:
- 4 => 69
3 => 69
+ 2 => 69
DistanceManhattanToTile(30000) ListDump:
- 4 => 106
- 3 => 96
+ 3 => 106
+ 2 => 96
DistanceSquareToTile(30000) ListDump:
- 4 => 8818
- 3 => 7058
+ 3 => 8818
+ 2 => 7058
--VehicleList_Station--
Count(): 1
@@ -6412,24 +6412,11 @@
IsValidSubsidy(): true
IsAwarded(): false
GetAwardedTo(): 9
- GetExpireDate(): 712619
- SourceIsTown(): false
- GetSource(): 54
- DestionationIsTown(): false
- GetDestionation(): 66
- GetCargoType(): 6
- GetNextEvent: instance
- GetEventType: 3
- EventName: SubsidyOffer
- --Subsidy (1) --
- IsValidSubsidy(): true
- IsAwarded(): false
- GetAwardedTo(): 9
GetExpireDate(): 712647
SourceIsTown(): true
- GetSource(): 0
+ GetSource(): 24
DestionationIsTown(): true
- GetDestionation(): 16
+ GetDestionation(): 21
GetCargoType(): 0
IsEventWaiting: false
ERROR: We've got a suicidal AI for player 1
--- a/config.lib Fri Apr 25 07:06:57 2008 +0000
+++ b/config.lib Fri Apr 25 15:20:48 2008 +0000
@@ -419,11 +419,11 @@
detect_awk
+ detect_os
+
check_build
check_host
- detect_os
-
# We might enable universal builds always on OSX targets.. but currently we don't
# if [ "$enable_universal" = "1" ] && [ "$os" != "OSX" ]; then
if [ "$enable_universal" = "1" ]; then
@@ -1353,13 +1353,26 @@
}
check_build() {
- check_compiler "build system type" "cc_build" "$build" "$cc_build" "$CC" "gcc" "cc" "0" "-dumpmachine"
+ if [ "$os" = "FREEBSD" ]; then
+ # FreeBSD's C compiler does not support dump machine.
+ # However, removing C support is not possible because PSP must be linked with the C compiler.
+ check_compiler "build system type" "cc_build" "$build" "$cc_build" "$CXX" "g++" "c++" "0" "-dumpmachine"
+ else
+ check_compiler "build system type" "cc_build" "$build" "$cc_build" "$CC" "gcc" "cc" "0" "-dumpmachine"
+ fi
}
check_host() {
# By default the host is the build
if [ -z "$host" ]; then host="$build"; fi
- check_compiler "host system type" "cc_host" "$host" "$cc_host" "$CC" "gcc" "cc" "0" "-dumpmachine"
+
+ if [ "$os" = "FREEBSD" ]; then
+ # FreeBSD's C compiler does not support dump machine.
+ # However, removing C support is not possible because PSP must be linked with the C compiler.
+ check_compiler "host system type" "cc_host" "$host" "$cc_host" "$CXX" "g++" "c++" "0" "-dumpmachine"
+ else
+ check_compiler "host system type" "cc_host" "$host" "$cc_host" "$CC" "gcc" "cc" "0" "-dumpmachine"
+ fi
}
check_cxx_build() {
--- a/projects/generate Fri Apr 25 07:06:57 2008 +0000
+++ b/projects/generate Fri Apr 25 15:20:48 2008 +0000
@@ -56,7 +56,7 @@
}
grep '\.h' "$ROOT_DIR/source.list" | grep -v '../objs/langs/table/strings.h' | sort > tmp.headers.source.list
-find "$ROOT_DIR/src" -iname "*.h*" -and -not -iname "*svn*" -and -not -iname "*.hpp.sq" | sed "s@$ROOT_DIR/src/@@" | sort > tmp.headers.src
+find "$ROOT_DIR/src" \( -iname "*.h" -or -iname "*.hpp" \) -and -not -ipath "*/.svn/*" | sed "s@$ROOT_DIR/src/@@" | sort > tmp.headers.src
if [ -n "`diff tmp.headers.source.list tmp.headers.src`" ]; then
echo "The following headers are missing in source.list and not in /src/ or vice versa."
diff tmp.headers.source.list tmp.headers.src | grep '[<>]' | sort
--- a/projects/generate.vbs Fri Apr 25 07:06:57 2008 +0000
+++ b/projects/generate.vbs Fri Apr 25 15:20:48 2008 +0000
@@ -52,12 +52,12 @@
' pattern for files to keep
Set rekeep = New RegExp
- rekeep.Pattern = "\.h"
+ rekeep.Pattern = "\.h(pp)?$"
rekeep.Global = True
' pattern for files to exclude
Set reskip = New RegExp
- reskip.Pattern = "\.svn|\.hpp\.sq"
+ reskip.Pattern = "\.svn"
reskip.Global = True
For Each file in dir.Files
--- a/projects/openttd_vs80.vcproj Fri Apr 25 07:06:57 2008 +0000
+++ b/projects/openttd_vs80.vcproj Fri Apr 25 15:20:48 2008 +0000
@@ -2828,14 +2828,6 @@
>
</File>
<File
- RelativePath=".\..\src\misc\autocopyptr.hpp"
- >
- </File>
- <File
- RelativePath=".\..\src\misc\autoptr.hpp"
- >
- </File>
- <File
RelativePath=".\..\src\misc\binaryheap.hpp"
>
</File>
--- a/projects/openttd_vs90.vcproj Fri Apr 25 07:06:57 2008 +0000
+++ b/projects/openttd_vs90.vcproj Fri Apr 25 15:20:48 2008 +0000
@@ -2825,14 +2825,6 @@
>
</File>
<File
- RelativePath=".\..\src\misc\autocopyptr.hpp"
- >
- </File>
- <File
- RelativePath=".\..\src\misc\autoptr.hpp"
- >
- </File>
- <File
RelativePath=".\..\src\misc\binaryheap.hpp"
>
</File>
--- a/source.list Fri Apr 25 07:06:57 2008 +0000
+++ b/source.list Fri Apr 25 15:20:48 2008 +0000
@@ -660,8 +660,6 @@
# Misc
misc/array.hpp
-misc/autocopyptr.hpp
-misc/autoptr.hpp
misc/binaryheap.hpp
misc/blob.hpp
misc/countedobj.cpp
--- a/src/ai/ai_threads.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/ai/ai_threads.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -14,8 +14,6 @@
#include "ai_threads.h"
#include "api/ai_controller.hpp"
#include "api/ai_object.hpp"
-#include "../misc/autoptr.hpp"
-#include "../misc/countedptr.hpp"
#include <map>
class AIFiber : public SimpleCountedObject {
--- a/src/aircraft.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/aircraft.h Fri Apr 25 15:20:48 2008 +0000
@@ -117,7 +117,6 @@
void MarkDirty();
void UpdateDeltaXY(Direction direction);
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_AIRCRAFT_INC : EXPENSES_AIRCRAFT_RUN; }
- WindowClass GetVehicleListWindowClass() const { return WC_AIRCRAFT_LIST; }
bool IsPrimaryVehicle() const { return IsNormalAircraft(this); }
SpriteID GetImage(Direction direction) const;
int GetDisplaySpeed() const { return this->cur_speed * 10 / 16; }
--- a/src/autoreplace_gui.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/autoreplace_gui.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -51,16 +51,20 @@
};
enum ReplaceVehicleWindowWidgets {
- RVW_WIDGET_LEFT_DETAILS = 3,
+ RVW_WIDGET_LEFT_MATRIX = 3,
+ RVW_WIDGET_LEFT_SCROLLBAR,
+ RVW_WIDGET_RIGHT_MATRIX,
+ RVW_WIDGET_RIGHT_SCROLLBAR,
+ RVW_WIDGET_LEFT_DETAILS,
+ RVW_WIDGET_RIGHT_DETAILS,
+
+ /* Button row */
RVW_WIDGET_START_REPLACE,
RVW_WIDGET_INFO_TAB,
RVW_WIDGET_STOP_REPLACE,
- RVW_WIDGET_LEFT_MATRIX,
- RVW_WIDGET_LEFT_SCROLLBAR,
- RVW_WIDGET_RIGHT_MATRIX,
- RVW_WIDGET_RIGHT_SCROLLBAR,
- RVW_WIDGET_RIGHT_DETAILS,
+ RVW_WIDGET_RESIZE,
+ /* Train only widgets */
RVW_WIDGET_TRAIN_ENGINEWAGON_TOGGLE,
RVW_WIDGET_TRAIN_FLUFF_LEFT,
RVW_WIDGET_TRAIN_RAILTYPE_DROPDOWN,
@@ -258,7 +262,7 @@
}
-void DrawEngineList(VehicleType type, int x, int y, const EngineList eng_list, uint16 min, uint16 max, EngineID selected_id, bool show_count, GroupID selected_group);
+void DrawEngineList(VehicleType type, int x, int y, const EngineList eng_list, uint16 min, uint16 max, EngineID selected_id, int count_location, GroupID selected_group);
static void ReplaceVehicleWndProc(Window *w, WindowEvent *e)
{
@@ -354,7 +358,7 @@
EngineID end = min((i == 0 ? w->vscroll.cap : w->vscroll2.cap) + start, EngList_Count(&list));
/* Do the actual drawing */
- DrawEngineList((VehicleType)w->window_number, w->widget[widget].left + 2, w->widget[widget].top + 1, list, start, end, WP(w, replaceveh_d).sel_engine[i], i == 0, selected_group);
+ DrawEngineList((VehicleType)w->window_number, w->widget[widget].left + 2, w->widget[widget].top + 1, list, start, end, WP(w, replaceveh_d).sel_engine[i], i == 0 ? w->widget[RVW_WIDGET_LEFT_MATRIX].right - 2 : 0, selected_group);
/* Also draw the details if an engine is selected */
if (WP(w, replaceveh_d).sel_engine[i] != INVALID_ENGINE) {
@@ -439,12 +443,29 @@
} break;
case WE_RESIZE:
+ {
w->vscroll.cap += e->we.sizing.diff.y / (int)w->resize.step_height;
w->vscroll2.cap += e->we.sizing.diff.y / (int)w->resize.step_height;
- w->widget[RVW_WIDGET_LEFT_MATRIX].data = (w->vscroll.cap << 8) + 1;
- w->widget[RVW_WIDGET_RIGHT_MATRIX].data = (w->vscroll2.cap << 8) + 1;
- break;
+ Widget *widget = w->widget;
+
+ widget[RVW_WIDGET_LEFT_MATRIX].data = widget[RVW_WIDGET_RIGHT_MATRIX].data = (w->vscroll2.cap << 8) + 1;
+
+ if (e->we.sizing.diff.x != 0) {
+ /* We changed the width of the window so we have to resize the lists.
+ * Because ResizeButtons() makes each widget the same size it can't be used on the lists
+ * because then the lists would have the same size as the scrollbars.
+ * Instead we use it on the detail panels.
+ * Afterwards we use the new location of the detail panels (the middle of the window)
+ * to place the lists.
+ * This way the lists will have equal size while keeping the width of the scrollbars unchanged. */
+ ResizeButtons(w, RVW_WIDGET_LEFT_DETAILS, RVW_WIDGET_RIGHT_DETAILS);
+ widget[RVW_WIDGET_RIGHT_MATRIX].left = widget[RVW_WIDGET_RIGHT_DETAILS].left;
+ widget[RVW_WIDGET_LEFT_SCROLLBAR].right = widget[RVW_WIDGET_LEFT_DETAILS].right;
+ widget[RVW_WIDGET_LEFT_SCROLLBAR].left = widget[RVW_WIDGET_LEFT_SCROLLBAR].right - 11;
+ widget[RVW_WIDGET_LEFT_MATRIX].right = widget[RVW_WIDGET_LEFT_SCROLLBAR].left - 1;
+ }
+ } break;
case WE_INVALIDATE_DATA:
if (_rebuild_left_list) WP(w, replaceveh_d).update_left = true;
@@ -459,116 +480,92 @@
}
}
-static const Widget _replace_rail_vehicle_widgets[] = {
-{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
-{ WWT_CAPTION, RESIZE_NONE, 14, 11, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{ WWT_STICKYBOX, RESIZE_NONE, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON},
-{ WWT_PANEL, RESIZE_TB, 14, 0, 227, 126, 227, 0x0, STR_NULL},
-{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 240, 251, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON},
-{ WWT_PANEL, RESIZE_TB, 14, 139, 316, 228, 239, 0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB},
-{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 306, 443, 240, 251, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON},
-{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 125, 0x801, STR_REPLACE_HELP_LEFT_ARRAY},
-{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
-{ WWT_MATRIX, RESIZE_BOTTOM, 14, 228, 443, 14, 125, 0x801, STR_REPLACE_HELP_RIGHT_ARRAY},
-{ WWT_SCROLL2BAR, RESIZE_BOTTOM, 14, 444, 455, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
-{ WWT_PANEL, RESIZE_TB, 14, 228, 455, 126, 227, 0x0, STR_NULL},
-// train specific stuff
-{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 228, 239, STR_REPLACE_ENGINE_WAGON_SELECT, STR_REPLACE_ENGINE_WAGON_SELECT_HELP}, // widget 12
-{ WWT_PANEL, RESIZE_TB, 14, 139, 153, 240, 251, 0x0, STR_NULL},
-{ WWT_DROPDOWN, RESIZE_TB, 14, 154, 289, 240, 251, 0x0, STR_REPLACE_HELP_RAILTYPE},
-{ WWT_PANEL, RESIZE_TB, 14, 290, 305, 240, 251, 0x0, STR_NULL},
-{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 317, 455, 228, 239, STR_REPLACE_REMOVE_WAGON, STR_REPLACE_REMOVE_WAGON_HELP},
-// end of train specific stuff
-{ WWT_RESIZEBOX, RESIZE_TB, 14, 444, 455, 240, 251, STR_NULL, STR_RESIZE_BUTTON},
-{ WIDGETS_END},
-};
+static const Widget _replace_vehicle_widgets[] = {
+{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
+{ WWT_CAPTION, RESIZE_RIGHT, 14, 11, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS},
+{ WWT_STICKYBOX, RESIZE_LR, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON},
-static const Widget _replace_road_vehicle_widgets[] = {
-{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
-{ WWT_CAPTION, RESIZE_NONE, 14, 11, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{ WWT_STICKYBOX, RESIZE_NONE, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON},
-{ WWT_PANEL, RESIZE_TB, 14, 0, 227, 126, 217, 0x0, STR_NULL},
-{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 218, 229, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON},
-{ WWT_PANEL, RESIZE_TB, 14, 139, 305, 218, 229, 0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB},
-{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 306, 443, 218, 229, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON},
-{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 125, 0x801, STR_REPLACE_HELP_LEFT_ARRAY},
-{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
-{ WWT_MATRIX, RESIZE_BOTTOM, 14, 228, 443, 14, 125, 0x801, STR_REPLACE_HELP_RIGHT_ARRAY},
-{ WWT_SCROLL2BAR, RESIZE_BOTTOM, 14, 444, 455, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
-{ WWT_PANEL, RESIZE_TB, 14, 228, 455, 126, 217, 0x0, STR_NULL},
-{ WWT_RESIZEBOX, RESIZE_TB, 14, 444, 455, 218, 229, STR_NULL, STR_RESIZE_BUTTON},
-{ WIDGETS_END},
-};
+{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 13, 0x1, STR_REPLACE_HELP_LEFT_ARRAY},
+{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 13, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
+{ WWT_MATRIX, RESIZE_LRB, 14, 228, 443, 14, 13, 0x1, STR_REPLACE_HELP_RIGHT_ARRAY},
+{ WWT_SCROLL2BAR, RESIZE_LRB, 14, 444, 455, 14, 13, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
+{ WWT_PANEL, RESIZE_TB, 14, 0, 227, 14, 105, 0x0, STR_NULL},
+{ WWT_PANEL, RESIZE_RTB, 14, 228, 455, 14, 105, 0x0, STR_NULL},
-static const Widget _replace_ship_aircraft_vehicle_widgets[] = {
-{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
-{ WWT_CAPTION, RESIZE_NONE, 14, 11, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{ WWT_STICKYBOX, RESIZE_NONE, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON},
-{ WWT_PANEL, RESIZE_TB, 14, 0, 227, 110, 201, 0x0, STR_NULL},
-{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 202, 213, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON},
-{ WWT_PANEL, RESIZE_TB, 14, 139, 305, 202, 213, 0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB},
-{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 306, 443, 202, 213, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON},
-{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 109, 0x401, STR_REPLACE_HELP_LEFT_ARRAY},
-{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 109, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
-{ WWT_MATRIX, RESIZE_BOTTOM, 14, 228, 443, 14, 109, 0x401, STR_REPLACE_HELP_RIGHT_ARRAY},
-{ WWT_SCROLL2BAR, RESIZE_BOTTOM, 14, 444, 455, 14, 109, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
-{ WWT_PANEL, RESIZE_TB, 14, 228, 455, 110, 201, 0x0, STR_NULL},
-{ WWT_RESIZEBOX, RESIZE_TB, 14, 444, 455, 202, 213, STR_NULL, STR_RESIZE_BUTTON},
+{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 106, 117, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON},
+{ WWT_PANEL, RESIZE_RTB, 14, 139, 305, 106, 117, 0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB},
+{ WWT_PUSHTXTBTN, RESIZE_LRTB, 14, 306, 443, 106, 117, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON},
+{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 444, 455, 106, 117, STR_NULL, STR_RESIZE_BUTTON},
+
+{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 128, 139, STR_REPLACE_ENGINE_WAGON_SELECT, STR_REPLACE_ENGINE_WAGON_SELECT_HELP},
+{ WWT_PANEL, RESIZE_TB, 14, 139, 153, 128, 139, 0x0, STR_NULL},
+{ WWT_DROPDOWN, RESIZE_RTB, 14, 154, 289, 128, 139, 0x0, STR_REPLACE_HELP_RAILTYPE},
+{ WWT_PANEL, RESIZE_LRTB, 14, 290, 305, 128, 139, 0x0, STR_NULL},
+{ WWT_PUSHTXTBTN, RESIZE_LRTB, 14, 306, 443, 128, 139, STR_REPLACE_REMOVE_WAGON, STR_REPLACE_REMOVE_WAGON_HELP},
{ WIDGETS_END},
};
static const WindowDesc _replace_rail_vehicle_desc = {
- WDP_AUTO, WDP_AUTO, 456, 252, 456, 252,
+ WDP_AUTO, WDP_AUTO, 456, 140, 456, 140,
WC_REPLACE_VEHICLE, WC_NONE,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
- _replace_rail_vehicle_widgets,
+ _replace_vehicle_widgets,
ReplaceVehicleWndProc
};
-static const WindowDesc _replace_road_vehicle_desc = {
- WDP_AUTO, WDP_AUTO, 456, 230, 456, 230,
+static const WindowDesc _replace_vehicle_desc = {
+ WDP_AUTO, WDP_AUTO, 456, 118, 456, 118,
WC_REPLACE_VEHICLE, WC_NONE,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
- _replace_road_vehicle_widgets,
- ReplaceVehicleWndProc
-};
-
-static const WindowDesc _replace_ship_aircraft_vehicle_desc = {
- WDP_AUTO, WDP_AUTO, 456, 214, 456, 214,
- WC_REPLACE_VEHICLE, WC_NONE,
- WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
- _replace_ship_aircraft_vehicle_widgets,
+ _replace_vehicle_widgets,
ReplaceVehicleWndProc
};
void ShowReplaceGroupVehicleWindow(GroupID id_g, VehicleType vehicletype)
{
- Window *w;
-
DeleteWindowById(WC_REPLACE_VEHICLE, vehicletype);
+ Window *w = vehicletype == VEH_TRAIN ? AllocateWindowDescFront(&_replace_rail_vehicle_desc, VEH_TRAIN)
+ : AllocateWindowDescFront(&_replace_vehicle_desc, vehicletype);
- switch (vehicletype) {
- default: NOT_REACHED();
- case VEH_TRAIN:
- w = AllocateWindowDescFront(&_replace_rail_vehicle_desc, vehicletype);
- w->vscroll.cap = 8;
- w->resize.step_height = 14;
- WP(w, replaceveh_d).wagon_btnstate = true;
- break;
- case VEH_ROAD:
- w = AllocateWindowDescFront(&_replace_road_vehicle_desc, vehicletype);
- w->vscroll.cap = 8;
- w->resize.step_height = 14;
- break;
- case VEH_SHIP:
- case VEH_AIRCRAFT:
- w = AllocateWindowDescFront(&_replace_ship_aircraft_vehicle_desc, vehicletype);
- w->vscroll.cap = 4;
- w->resize.step_height = 24;
- break;
+ w->resize.step_height = GetVehicleListHeight(vehicletype);
+ w->vscroll.cap = w->resize.step_height == 14 ? 8 : 4;
+
+ Widget *widget = w->widget;
+ widget[RVW_WIDGET_LEFT_MATRIX].data = widget[RVW_WIDGET_RIGHT_MATRIX].data = (w->vscroll.cap << 8) + 1;
+
+ if (vehicletype == VEH_TRAIN) {
+ WP(w, replaceveh_d).wagon_btnstate = true;
+ /* The train window is bigger so we will move some of the widgets to fit the new size.
+ * We will start by moving the resize button to the lower right corner. */
+ widget[RVW_WIDGET_RESIZE].top = widget[RVW_WIDGET_TRAIN_ENGINEWAGON_TOGGLE].top;
+ widget[RVW_WIDGET_RESIZE].bottom = widget[RVW_WIDGET_TRAIN_ENGINEWAGON_TOGGLE].bottom;
+ widget[RVW_WIDGET_STOP_REPLACE].right = widget[RVW_WIDGET_RESIZE].right;
+
+ /* The detail panel is one line taller for trains so we will move some of the widgets one line (10 pixels) down. */
+ widget[RVW_WIDGET_LEFT_DETAILS].bottom += 10;
+ widget[RVW_WIDGET_RIGHT_DETAILS].bottom += 10;
+ for (int i = RVW_WIDGET_START_REPLACE; i < RVW_WIDGET_RESIZE; i++) {
+ widget[i].top += 10;
+ widget[i].bottom += 10;
+ }
+ } else {
+ /* Since it's not a train we will hide the train only widgets. */
+ w->SetWidgetsHiddenState(true,
+ RVW_WIDGET_TRAIN_ENGINEWAGON_TOGGLE,
+ RVW_WIDGET_TRAIN_FLUFF_LEFT,
+ RVW_WIDGET_TRAIN_RAILTYPE_DROPDOWN,
+ RVW_WIDGET_TRAIN_FLUFF_RIGHT,
+ RVW_WIDGET_TRAIN_WAGONREMOVE_TOGGLE,
+ WIDGET_LIST_END);
}
+ ResizeWindow(w, 0, w->resize.step_height * w->vscroll.cap);
+
+ /* Set the minimum window size to the current window size */
+ w->resize.width = w->width;
+ w->resize.height = w->height;
+
w->caption_color = _local_player;
WP(w, replaceveh_d).sel_group = id_g;
w->vscroll2.cap = w->vscroll.cap; // these two are always the same
--- a/src/build_vehicle_gui.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/build_vehicle_gui.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -935,9 +935,9 @@
* @param min where to start in the list
* @param max where in the list to end
* @param selected_id what engine to highlight as selected, if any
- * @param show_count Display the number of vehicles (used by autoreplace)
+ * @param count_location Offset to print the engine count (used by autoreplace). 0 means it's off
*/
-void DrawEngineList(VehicleType type, int x, int y, const EngineList eng_list, uint16 min, uint16 max, EngineID selected_id, bool show_count, GroupID selected_group)
+void DrawEngineList(VehicleType type, int x, int y, const EngineList eng_list, uint16 min, uint16 max, EngineID selected_id, int count_location, GroupID selected_group)
{
byte step_size = GetVehicleListHeight(type);
byte x_offset = 0;
@@ -977,10 +977,10 @@
SetDParam(0, engine);
DrawString(x + x_offset, y, STR_ENGINE_NAME, engine == selected_id ? TC_WHITE : TC_BLACK);
- DrawVehicleEngine(type, x, y + y_offset, engine, (show_count && num_engines == 0) ? PALETTE_CRASH : GetEnginePalette(engine, _local_player));
- if (show_count) {
+ DrawVehicleEngine(type, x, y + y_offset, engine, (count_location != 0 && num_engines == 0) ? PALETTE_CRASH : GetEnginePalette(engine, _local_player));
+ if (count_location != 0) {
SetDParam(0, num_engines);
- DrawStringRightAligned(213, y + (GetVehicleListHeight(type) == 14 ? 3 : 8), STR_TINY_BLACK, TC_FROMSTRING);
+ DrawStringRightAligned(count_location, y + (GetVehicleListHeight(type) == 14 ? 3 : 8), STR_TINY_BLACK, TC_FROMSTRING);
}
}
}
@@ -1000,7 +1000,7 @@
DrawWindowWidgets(w);
- DrawEngineList(bv->vehicle_type, w->widget[BUILD_VEHICLE_WIDGET_LIST].left + 2, w->widget[BUILD_VEHICLE_WIDGET_LIST].top + 1, bv->eng_list, w->vscroll.pos, max, bv->sel_engine, false, DEFAULT_GROUP);
+ DrawEngineList(bv->vehicle_type, w->widget[BUILD_VEHICLE_WIDGET_LIST].left + 2, w->widget[BUILD_VEHICLE_WIDGET_LIST].top + 1, bv->eng_list, w->vscroll.pos, max, bv->sel_engine, 0, DEFAULT_GROUP);
if (bv->sel_engine != INVALID_ENGINE) {
const Widget *wi = &w->widget[BUILD_VEHICLE_WIDGET_PANEL];
--- a/src/core/overflowsafe_type.hpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/core/overflowsafe_type.hpp Fri Apr 25 15:20:48 2008 +0000
@@ -139,9 +139,9 @@
template <class T, int64 T_MAX, int64 T_MIN> FORCEINLINE OverflowSafeInt<T, T_MAX, T_MIN> operator / (uint a, OverflowSafeInt<T, T_MAX, T_MIN> b) { return (OverflowSafeInt<T, T_MAX, T_MIN>)a / (int)b; }
/* Sometimes we got byte operator OverflowSafeInt instead of vice versa. Handle that properly */
-template <class T, int64 T_MAX, int64 T_MIN> FORCEINLINE OverflowSafeInt<T, T_MAX, T_MIN> operator + (byte a, OverflowSafeInt<T, T_MAX, T_MIN> b) { return b + a; }
-template <class T, int64 T_MAX, int64 T_MIN> FORCEINLINE OverflowSafeInt<T, T_MAX, T_MIN> operator - (byte a, OverflowSafeInt<T, T_MAX, T_MIN> b) { return -b + a; }
-template <class T, int64 T_MAX, int64 T_MIN> FORCEINLINE OverflowSafeInt<T, T_MAX, T_MIN> operator * (byte a, OverflowSafeInt<T, T_MAX, T_MIN> b) { return b * a; }
+template <class T, int64 T_MAX, int64 T_MIN> FORCEINLINE OverflowSafeInt<T, T_MAX, T_MIN> operator + (byte a, OverflowSafeInt<T, T_MAX, T_MIN> b) { return b + (uint)a; }
+template <class T, int64 T_MAX, int64 T_MIN> FORCEINLINE OverflowSafeInt<T, T_MAX, T_MIN> operator - (byte a, OverflowSafeInt<T, T_MAX, T_MIN> b) { return -b + (uint)a; }
+template <class T, int64 T_MAX, int64 T_MIN> FORCEINLINE OverflowSafeInt<T, T_MAX, T_MIN> operator * (byte a, OverflowSafeInt<T, T_MAX, T_MIN> b) { return b * (uint)a; }
template <class T, int64 T_MAX, int64 T_MIN> FORCEINLINE OverflowSafeInt<T, T_MAX, T_MIN> operator / (byte a, OverflowSafeInt<T, T_MAX, T_MIN> b) { return (OverflowSafeInt<T, T_MAX, T_MIN>)a / (int)b; }
typedef OverflowSafeInt<int64, INT64_MAX, INT64_MIN> OverflowSafeInt64;
--- a/src/direction_func.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/direction_func.h Fri Apr 25 15:20:48 2008 +0000
@@ -168,6 +168,22 @@
}
/**
+ * Converts an Axis to a Direction
+ *
+ * This function returns the Direction which
+ * belongs to the axis. As 2 directions are mapped to an axis
+ * this function returns the one which points to south,
+ * either south-west (on X axis) or south-east (on Y axis)
+ *
+ * @param a The axis
+ * @return The direction pointed to south
+ */
+static inline Direction AxisToDirection(Axis a)
+{
+ return (Direction)(5 - 2 * a);
+}
+
+/**
* Convert an axis and a flag for north/south into a DiagDirection
* @param xy axis to convert
* @param ns north -> 0, south -> 1
--- a/src/economy.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/economy.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -1793,7 +1793,7 @@
}
if (result != 0) {
- InvalidateWindow(v->GetVehicleListWindowClass(), v->owner);
+ InvalidateWindow(GetWindowClassForVehicleType(v->type), v->owner);
InvalidateWindow(WC_VEHICLE_DETAILS, v->index);
st->MarkTilesDirty(true);
--- a/src/elrail.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/elrail.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -217,8 +217,6 @@
byte OverridePCP = 0;
byte PPPpreferred[DIAGDIR_END];
byte PPPallowed[DIAGDIR_END];
- DiagDirection i;
- Track t;
/* Find which rail bits are present, and select the override points.
* We don't draw a pylon:
@@ -232,10 +230,10 @@
AdjustTileh(ti->tile, &tileh[TS_HOME]);
- for (i = DIAGDIR_NE; i < DIAGDIR_END; i++) {
+ for (DiagDirection i = DIAGDIR_NE; i < DIAGDIR_END; i++) {
TileIndex neighbour = ti->tile + TileOffsByDiagDir(i);
Foundation foundation = FOUNDATION_NONE;
- int k;
+ byte elevation = GetPCPElevation(ti->tile, i);
/* Here's one of the main headaches. GetTileSlope does not correct for possibly
* existing foundataions, so we do have to do that manually later on.*/
@@ -245,7 +243,7 @@
/* If the neighboured tile does not smoothly connect to the current tile (because of a foundation),
* we have to draw all pillars on the current tile. */
- if (GetPCPElevation(ti->tile, i) != GetPCPElevation(neighbour, ReverseDiagDir(i))) trackconfig[TS_NEIGHBOUR] = TRACK_BIT_NONE;
+ if (elevation != GetPCPElevation(neighbour, ReverseDiagDir(i))) trackconfig[TS_NEIGHBOUR] = TRACK_BIT_NONE;
isflat[TS_NEIGHBOUR] = ((trackconfig[TS_NEIGHBOUR] & (TRACK_BIT_HORZ | TRACK_BIT_VERT)) != 0);
@@ -254,7 +252,7 @@
/* We cycle through all the existing tracks at a PCP and see what
* PPPs we want to have, or may not have at all */
- for (k = 0; k < NUM_TRACKS_AT_PCP; k++) {
+ for (uint k = 0; k < NUM_TRACKS_AT_PCP; k++) {
/* Next to us, we have a bridge head, don't worry about that one, if it shows away from us */
if (TrackSourceTile[i][k] == TS_NEIGHBOUR &&
IsBridgeTile(neighbour) &&
@@ -276,8 +274,10 @@
}
/* Deactivate all PPPs if PCP is not used */
- PPPpreferred[i] *= HasBit(PCPstatus, i);
- PPPallowed[i] *= HasBit(PCPstatus, i);
+ if (!HasBit(PCPstatus, i)) {
+ PPPpreferred[i] = 0;
+ PPPallowed[i] = 0;
+ }
/* A station is always "flat", so adjust the tileh accordingly */
if (IsTileType(neighbour, MP_STATION)) tileh[TS_NEIGHBOUR] = SLOPE_FLAT;
@@ -290,8 +290,8 @@
ApplyFoundationToSlope(foundation, &tileh[TS_NEIGHBOUR]);
- /* Half tile slopes coincide only with horizontal/vertical track.
- * Faking a flat slope results in the correct sprites on positions. */
+ /* Half tile slopes coincide only with horizontal/vertical track.
+ * Faking a flat slope results in the correct sprites on positions. */
if (IsHalftileSlope(tileh[TS_NEIGHBOUR])) tileh[TS_NEIGHBOUR] = SLOPE_FLAT;
AdjustTileh(neighbour, &tileh[TS_NEIGHBOUR]);
@@ -300,8 +300,9 @@
* Delete the PCP if this is the case. */
/* Level means that the slope is the same, or the track is flat */
if (tileh[TS_HOME] == tileh[TS_NEIGHBOUR] || (isflat[TS_HOME] && isflat[TS_NEIGHBOUR])) {
- for (k = 0; k < NUM_IGNORE_GROUPS; k++)
+ for (uint k = 0; k < NUM_IGNORE_GROUPS; k++) {
if (PPPpreferred[i] == IgnoredPCP[k][tlg][i]) ClrBit(PCPstatus, i);
+ }
}
/* Now decide where we draw our pylons. First try the preferred PPPs, but they may not exist.
@@ -321,7 +322,7 @@
}
if (PPPallowed[i] != 0 && HasBit(PCPstatus, i) && !HasBit(OverridePCP, i)) {
- for (k = 0; k < DIR_END; k++) {
+ for (Direction k = DIR_BEGIN; k < DIR_END; k++) {
byte temp = PPPorder[i][GetTLG(ti->tile)][k];
if (HasBit(PPPallowed[i], temp)) {
@@ -336,8 +337,8 @@
}
AddSortableSpriteToDraw(pylon_sprites[temp], PAL_NONE, x, y, 1, 1, BB_HEIGHT_UNDER_BRIDGE,
- GetPCPElevation(ti->tile, i),
- IsTransparencySet(TO_CATENARY), -1, -1);
+ elevation, IsTransparencySet(TO_CATENARY), -1, -1);
+
break; /* We already have drawn a pylon, bail out */
}
}
@@ -352,7 +353,7 @@
}
/* Drawing of pylons is finished, now draw the wires */
- for (t = TRACK_BEGIN; t < TRACK_END; t++) {
+ for (Track t = TRACK_BEGIN; t < TRACK_END; t++) {
if (HasBit(trackconfig[TS_HOME], t)) {
if (IsTunnelTile(ti->tile)) break; // drawn together with tunnel-roof (see DrawCatenaryOnTunnel())
byte PCPconfig = HasBit(PCPstatus, PCPpositions[t][0]) +
@@ -377,8 +378,13 @@
}
}
-static void DrawCatenaryOnBridge(const TileInfo *ti)
+void DrawCatenaryOnBridge(const TileInfo *ti)
{
+ if (_patches.disable_elrails) return;
+
+ /* Do not draw catenary if it is invisible */
+ if (IsInvisibilitySet(TO_CATENARY)) return;
+
TileIndex end = GetSouthernBridgeEnd(ti->tile);
TileIndex start = GetOtherBridgeEnd(end);
@@ -437,14 +443,6 @@
/* Do not draw catenary if it is invisible */
if (IsInvisibilitySet(TO_CATENARY)) return;
- if (MayHaveBridgeAbove(ti->tile) && IsBridgeAbove(ti->tile)) {
- TileIndex head = GetNorthernBridgeEnd(ti->tile);
-
- if (GetTunnelBridgeTransportType(head) == TRANSPORT_RAIL && HasCatenary(GetRailType(head))) {
- DrawCatenaryOnBridge(ti);
- }
- }
-
switch (GetTileType(ti->tile)) {
case MP_RAILWAY:
if (IsRailDepot(ti->tile)) {
--- a/src/engine.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/engine.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -15,7 +15,6 @@
#include "aircraft.h"
#include "newgrf_cargo.h"
#include "group.h"
-#include "misc/autoptr.hpp"
#include "strings_func.h"
#include "gfx_func.h"
#include "functions.h"
@@ -513,19 +512,15 @@
return CommandCost();
}
- er = new EngineRenew(old_engine, new_engine);
- if (er == NULL) return CMD_ERROR;
- AutoPtrT<EngineRenew> er_auto_delete = er;
-
+ if (!EngineRenew::CanAllocateItem()) return CMD_ERROR;
if (flags & DC_EXEC) {
+ er = new EngineRenew(old_engine, new_engine);
er->group_id = group;
/* Insert before the first element */
er->next = (EngineRenew *)(*erl);
*erl = (EngineRenewList)er;
-
- er_auto_delete.Detach();
}
return CommandCost();
--- a/src/fios.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/fios.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -108,50 +108,54 @@
* @return a string if we have given a file as a target, otherwise NULL */
char *FiosBrowseTo(const FiosItem *item)
{
- char *s;
char *path = _fios_path;
switch (item->type) {
+ case FIOS_TYPE_DRIVE:
#if defined(WINCE)
- case FIOS_TYPE_DRIVE: sprintf(path, PATHSEP ""); break;
+ sprintf(path, PATHSEP "");
#elif defined(WIN32) || defined(__OS2__)
- case FIOS_TYPE_DRIVE: sprintf(path, "%c:" PATHSEP, item->title[0]); break;
+ sprintf(path, "%c:" PATHSEP, item->title[0]);
#endif
-
- case FIOS_TYPE_PARENT:
- /* Check for possible NULL ptr (not required for UNIXes, but AmigaOS-alikes) */
- s = strrchr(path, PATHSEPCHAR);
- if (s != NULL && s != path) {
- s[0] = '\0'; // Remove last path separator character, so we can go up one level.
- }
- s = strrchr(path, PATHSEPCHAR);
- if (s != NULL) s[1] = '\0'; // go up a directory
-#if defined(__MORPHOS__) || defined(__AMIGAOS__)
- /* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */
- else if ((s = strrchr(path, ':')) != NULL) s[1] = '\0';
-#endif
- break;
+ /* Fallthrough */
+ case FIOS_TYPE_INVALID:
+ break;
- case FIOS_TYPE_DIR:
- strcat(path, item->name);
- strcat(path, PATHSEP);
- break;
-
- case FIOS_TYPE_DIRECT:
- sprintf(path, "%s", item->name);
- break;
+ case FIOS_TYPE_PARENT: {
+ /* Check for possible NULL ptr (not required for UNIXes, but AmigaOS-alikes) */
+ char *s = strrchr(path, PATHSEPCHAR);
+ if (s != NULL && s != path) {
+ s[0] = '\0'; // Remove last path separator character, so we can go up one level.
+ }
+ s = strrchr(path, PATHSEPCHAR);
+ if (s != NULL) s[1] = '\0'; // go up a directory
+#if defined(__MORPHOS__) || defined(__AMIGAOS__)
+ /* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */
+ else if ((s = strrchr(path, ':')) != NULL) s[1] = '\0';
+#endif
+ break;
+ }
- case FIOS_TYPE_FILE:
- case FIOS_TYPE_OLDFILE:
- case FIOS_TYPE_SCENARIO:
- case FIOS_TYPE_OLD_SCENARIO:
- case FIOS_TYPE_PNG:
- case FIOS_TYPE_BMP:
- {
- static char str_buffr[512];
- snprintf(str_buffr, lengthof(str_buffr), "%s%s", path, item->name);
- return str_buffr;
- }
+ case FIOS_TYPE_DIR:
+ strcat(path, item->name);
+ strcat(path, PATHSEP);
+ break;
+
+ case FIOS_TYPE_DIRECT:
+ sprintf(path, "%s", item->name);
+ break;
+
+ case FIOS_TYPE_FILE:
+ case FIOS_TYPE_OLDFILE:
+ case FIOS_TYPE_SCENARIO:
+ case FIOS_TYPE_OLD_SCENARIO:
+ case FIOS_TYPE_PNG:
+ case FIOS_TYPE_BMP:
+ {
+ static char str_buffr[512];
+ snprintf(str_buffr, lengthof(str_buffr), "%s%s", path, item->name);
+ return str_buffr;
+ }
}
return NULL;
@@ -208,13 +212,13 @@
#endif
}
-typedef byte fios_getlist_callback_proc(int mode, const char *filename, const char *ext, char *title);
+typedef FiosType fios_getlist_callback_proc(SaveLoadDialogMode mode, const char *filename, const char *ext, char *title);
/** Create a list of the files in a directory, according to some arbitrary rule.
* @param mode The mode we are in. Some modes don't allow 'parent'.
* @param callback_proc The function that is called where you need to do the filtering.
* @return Return the list of files. */
-static FiosItem *FiosGetFileList(int mode, fios_getlist_callback_proc *callback_proc)
+static FiosItem *FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc *callback_proc)
{
struct stat sb;
struct dirent *dirent;
@@ -277,7 +281,7 @@
if ((t = strrchr(d_name, '.')) == NULL) continue;
fios_title[0] = '\0'; // reset the title;
- byte type = callback_proc(mode, d_name, t, fios_title);
+ FiosType type = callback_proc(mode, d_name, t, fios_title);
if (type != FIOS_TYPE_INVALID) {
fios = FiosAlloc();
fios->mtime = sb.st_mtime;
@@ -313,7 +317,7 @@
* @see FiosGetFileList
* @see FiosGetSavegameList
*/
-static byte FiosGetSavegameListCallback(int mode, const char *file, const char *ext, char *title)
+static FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title)
{
/* Show savegame files
* .SAV OpenTTD saved game
@@ -339,16 +343,16 @@
* @return A pointer to an array of FiosItem representing all the files to be shown in the save/load dialog.
* @see FiosGetFileList
*/
-FiosItem *FiosGetSavegameList(int mode)
+FiosItem *FiosGetSavegameList(SaveLoadDialogMode mode)
{
- static char *_fios_save_path = NULL;
+ static char *fios_save_path = NULL;
- if (_fios_save_path == NULL) {
- _fios_save_path = MallocT<char>(MAX_PATH);
- FioGetDirectory(_fios_save_path, MAX_PATH, SAVE_DIR);
+ if (fios_save_path == NULL) {
+ fios_save_path = MallocT<char>(MAX_PATH);
+ FioGetDirectory(fios_save_path, MAX_PATH, SAVE_DIR);
}
- _fios_path = _fios_save_path;
+ _fios_path = fios_save_path;
return FiosGetFileList(mode, &FiosGetSavegameListCallback);
}
@@ -363,7 +367,7 @@
* @see FiosGetFileList
* @see FiosGetScenarioList
*/
-static byte FiosGetScenarioListCallback(int mode, const char *file, const char *ext, char *title)
+static FiosType FiosGetScenarioListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title)
{
/* Show scenario files
* .SCN OpenTTD style scenario file
@@ -387,22 +391,22 @@
* @return A pointer to an array of FiosItem representing all the files to be shown in the save/load dialog.
* @see FiosGetFileList
*/
-FiosItem *FiosGetScenarioList(int mode)
+FiosItem *FiosGetScenarioList(SaveLoadDialogMode mode)
{
- static char *_fios_scn_path = NULL;
+ static char *fios_scn_path = NULL;
/* Copy the default path on first run or on 'New Game' */
- if (_fios_scn_path == NULL) {
- _fios_scn_path = MallocT<char>(MAX_PATH);
- FioGetDirectory(_fios_scn_path, MAX_PATH, SCENARIO_DIR);
+ if (fios_scn_path == NULL) {
+ fios_scn_path = MallocT<char>(MAX_PATH);
+ FioGetDirectory(fios_scn_path, MAX_PATH, SCENARIO_DIR);
}
- _fios_path = _fios_scn_path;
+ _fios_path = fios_scn_path;
return FiosGetFileList(mode, &FiosGetScenarioListCallback);
}
-static byte FiosGetHeightmapListCallback(int mode, const char *file, const char *ext, char *title)
+static FiosType FiosGetHeightmapListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title)
{
/* Show heightmap files
* .PNG PNG Based heightmap files
@@ -419,16 +423,16 @@
}
/* Get a list of Heightmaps */
-FiosItem *FiosGetHeightmapList(int mode)
+FiosItem *FiosGetHeightmapList(SaveLoadDialogMode mode)
{
- static char *_fios_hmap_path = NULL;
+ static char *fios_hmap_path = NULL;
- if (_fios_hmap_path == NULL) {
- _fios_hmap_path = MallocT<char>(MAX_PATH);
- FioGetDirectory(_fios_hmap_path, MAX_PATH, HEIGHTMAP_DIR);
+ if (fios_hmap_path == NULL) {
+ fios_hmap_path = MallocT<char>(MAX_PATH);
+ FioGetDirectory(fios_hmap_path, MAX_PATH, HEIGHTMAP_DIR);
}
- _fios_path = _fios_hmap_path;
+ _fios_path = fios_hmap_path;
return FiosGetFileList(mode, &FiosGetHeightmapListCallback);
}
--- a/src/fios.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/fios.h Fri Apr 25 15:20:48 2008 +0000
@@ -42,23 +42,23 @@
FT_HEIGHTMAP, ///< heightmap file
};
-enum {
- FIOS_TYPE_DRIVE = 0,
- FIOS_TYPE_PARENT = 1,
- FIOS_TYPE_DIR = 2,
- FIOS_TYPE_FILE = 3,
- FIOS_TYPE_OLDFILE = 4,
- FIOS_TYPE_SCENARIO = 5,
- FIOS_TYPE_OLD_SCENARIO = 6,
- FIOS_TYPE_DIRECT = 7,
- FIOS_TYPE_PNG = 8,
- FIOS_TYPE_BMP = 9,
- FIOS_TYPE_INVALID = 255,
+enum FiosType {
+ FIOS_TYPE_DRIVE,
+ FIOS_TYPE_PARENT,
+ FIOS_TYPE_DIR,
+ FIOS_TYPE_FILE,
+ FIOS_TYPE_OLDFILE,
+ FIOS_TYPE_SCENARIO,
+ FIOS_TYPE_OLD_SCENARIO,
+ FIOS_TYPE_DIRECT,
+ FIOS_TYPE_PNG,
+ FIOS_TYPE_BMP,
+ FIOS_TYPE_INVALID = 255,
};
/* Deals with finding savegames */
struct FiosItem {
- byte type;
+ FiosType type;
uint64 mtime;
char title[64];
char name[256 - 12 - 64];
@@ -82,11 +82,11 @@
void ShowSaveLoadDialog(SaveLoadDialogMode mode);
/* Get a list of savegames */
-FiosItem *FiosGetSavegameList(int mode);
+FiosItem *FiosGetSavegameList(SaveLoadDialogMode mode);
/* Get a list of scenarios */
-FiosItem *FiosGetScenarioList(int mode);
+FiosItem *FiosGetScenarioList(SaveLoadDialogMode mode);
/* Get a list of Heightmaps */
-FiosItem *FiosGetHeightmapList(int mode);
+FiosItem *FiosGetHeightmapList(SaveLoadDialogMode mode);
/* Free the list of savegames */
void FiosFreeSavegameList();
/* Browse to. Returns a filename w/path if we reached a file. */
--- a/src/gfx_type.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/gfx_type.h Fri Apr 25 15:20:48 2008 +0000
@@ -164,7 +164,7 @@
int left, top, right, bottom;
};
-enum {
+enum Colours {
COLOUR_DARK_BLUE,
COLOUR_PALE_GREEN,
COLOUR_PINK,
@@ -180,7 +180,9 @@
COLOUR_ORANGE,
COLOUR_BROWN,
COLOUR_GREY,
- COLOUR_WHITE
+ COLOUR_WHITE,
+ COLOUR_END,
+ INVALID_COLOUR = 0xFF
};
/** Colour of the strings, see _string_colormap in table/palettes.h or docs/ottd-colourtext-palette.png */
--- a/src/group_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/group_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -12,7 +12,6 @@
#include "train.h"
#include "aircraft.h"
#include "vehicle_gui.h"
-#include "misc/autoptr.hpp"
#include "strings_func.h"
#include "functions.h"
#include "window_func.h"
@@ -71,18 +70,6 @@
}
-static WindowClass GetWCForVT(VehicleType vt)
-{
- switch (vt) {
- default:
- case VEH_TRAIN: return WC_TRAINS_LIST;
- case VEH_ROAD: return WC_ROADVEH_LIST;
- case VEH_SHIP: return WC_SHIPS_LIST;
- case VEH_AIRCRAFT: return WC_AIRCRAFT_LIST;
- }
-}
-
-
/**
* Create a new vehicle group.
* @param tile unused
@@ -94,20 +81,14 @@
VehicleType vt = (VehicleType)p1;
if (!IsPlayerBuildableVehicleType(vt)) return CMD_ERROR;
- AutoPtrT<Group> g_auto_delete;
-
- Group *g = new Group(_current_player);
- if (g == NULL) return CMD_ERROR;
-
- g_auto_delete = g;
+ if (!Group::CanAllocateItem()) return CMD_ERROR;
if (flags & DC_EXEC) {
+ Group *g = new Group(_current_player);
g->replace_protection = false;
g->vehicle_type = vt;
- InvalidateWindowData(GetWCForVT(vt), (vt << 11) | VLW_GROUP_LIST | _current_player);
-
- g_auto_delete.Detach();
+ InvalidateWindowData(GetWindowClassForVehicleType(vt), (vt << 11) | VLW_GROUP_LIST | _current_player);
}
return CommandCost();
@@ -156,7 +137,7 @@
DeleteWindowById(WC_REPLACE_VEHICLE, g->vehicle_type);
delete g;
- InvalidateWindowData(GetWCForVT(vt), (vt << 11) | VLW_GROUP_LIST | _current_player);
+ InvalidateWindowData(GetWindowClassForVehicleType(vt), (vt << 11) | VLW_GROUP_LIST | _current_player);
}
return CommandCost();
@@ -198,7 +179,7 @@
/* Assign the new one */
g->name = strdup(_cmd_text);
- InvalidateWindowData(GetWCForVT(g->vehicle_type), (g->vehicle_type << 11) | VLW_GROUP_LIST | _current_player);
+ InvalidateWindowData(GetWindowClassForVehicleType(g->vehicle_type), (g->vehicle_type << 11) | VLW_GROUP_LIST | _current_player);
}
return CommandCost();
@@ -247,7 +228,7 @@
/* Update the Replace Vehicle Windows */
InvalidateWindow(WC_REPLACE_VEHICLE, v->type);
- InvalidateWindowData(GetWCForVT(v->type), (v->type << 11) | VLW_GROUP_LIST | _current_player);
+ InvalidateWindowData(GetWindowClassForVehicleType(v->type), (v->type << 11) | VLW_GROUP_LIST | _current_player);
}
return CommandCost();
@@ -283,7 +264,7 @@
}
}
- InvalidateWindowData(GetWCForVT(type), (type << 11) | VLW_GROUP_LIST | _current_player);
+ InvalidateWindowData(GetWindowClassForVehicleType(type), (type << 11) | VLW_GROUP_LIST | _current_player);
}
return CommandCost();
@@ -319,7 +300,7 @@
}
}
- InvalidateWindowData(GetWCForVT(type), (type << 11) | VLW_GROUP_LIST | _current_player);
+ InvalidateWindowData(GetWindowClassForVehicleType(type), (type << 11) | VLW_GROUP_LIST | _current_player);
}
return CommandCost();
@@ -344,7 +325,7 @@
if (flags & DC_EXEC) {
g->replace_protection = HasBit(p2, 0);
- InvalidateWindowData(GetWCForVT(g->vehicle_type), (g->vehicle_type << 11) | VLW_GROUP_LIST | _current_player);
+ InvalidateWindowData(GetWindowClassForVehicleType(g->vehicle_type), (g->vehicle_type << 11) | VLW_GROUP_LIST | _current_player);
}
return CommandCost();
--- a/src/industry_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/industry_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -26,7 +26,6 @@
#include "newgrf_industries.h"
#include "newgrf_industrytiles.h"
#include "newgrf_callbacks.h"
-#include "misc/autoptr.hpp"
#include "autoslope.h"
#include "transparency.h"
#include "water.h"
@@ -1033,6 +1032,9 @@
if (cut) ChopLumberMillTrees(i);
}
+
+ TriggerIndustry(i, INDUSTRY_TRIGGER_INDUSTRY_TICK);
+ StartStopIndustryTileAnimation(i, IAT_INDUSTRY_TICK);
}
}
@@ -1054,8 +1056,6 @@
if (_game_mode == GM_EDITOR) return;
FOR_ALL_INDUSTRIES(i) {
- TriggerIndustry(i, INDUSTRY_TRIGGER_INDUSTRY_TICK);
- StartStopIndustryTileAnimation(i, IAT_INDUSTRY_TICK);
ProduceIndustryGoods(i);
}
}
@@ -1591,17 +1591,19 @@
if (!CheckIfIndustryIsAllowed(tile, type, t)) return NULL;
if (!CheckSuitableIndustryPos(tile)) return NULL;
- Industry *i = new Industry(tile);
- if (i == NULL) return NULL;
- AutoPtrT<Industry> i_auto_delete = i;
+ if (!Industry::CanAllocateItem()) return NULL;
if (flags & DC_EXEC) {
+ Industry *i = new Industry(tile);
if (!custom_shape_check) CheckIfCanLevelIndustryPlatform(tile, DC_EXEC, it, type);
DoCreateNewIndustry(i, tile, type, it, itspec_index, t, OWNER_NONE);
- i_auto_delete.Detach();
+
+ return i;
}
- return i;
+ /* We need to return a non-NULL pointer to tell we have created an industry.
+ * However, we haven't created a real one (no DC_EXEC), so return a fake one. */
+ return GetIndustry(0);
}
/** Build/Fund an industry
--- a/src/lang/brazilian_portuguese.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/brazilian_portuguese.txt Fri Apr 25 15:20:48 2008 +0000
@@ -19,6 +19,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} vindo de {STATION})
STR_000C_ACCEPTS :{BLACK}Aceita: {WHITE}
STR_000D_ACCEPTS :{BLACK}Aceita: {GOLD}
+STR_SUPPLIES :{BLACK}Suprimentos: {GOLD}
STR_000E :
STR_000F_PASSENGERS :{G=m}Passageiros
STR_0010_COAL :{G=m}Carvão
@@ -378,6 +379,7 @@
STR_SORT_BY_MAX_SPEED :Velocidade máxima
STR_SORT_BY_MODEL :Modelo
STR_SORT_BY_VALUE :Valor
+STR_SORT_BY_LENGTH :Tamanho
STR_SORT_BY_FACILITY :Tipo de estação
STR_SORT_BY_WAITING :Valor da carga aguardando
STR_SORT_BY_RATING_MAX :Taxa de Carga
@@ -1162,7 +1164,7 @@
STR_CONFIG_PATCHES_SMOOTH_ECONOMY :{LTBLUE}Ativar economia regular (alterações menores)
STR_CONFIG_PATCHES_ALLOW_SHARES :{LTBLUE}Permite comprar ações de outras empresas
STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY :{LTBLUE}Ao arrastar colocar sinais a cada: {ORANGE}{STRING} quadrado(s)
-STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}Automaticamente constroi semáforos anteriores: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}Construir sinaleiros até: {ORANGE}{STRING}
STR_CONFIG_PATCHES_ENABLE_SIGNAL_GUI :{LTBLUE}Ativar interface de sinais: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOWN_LAYOUT_INVALID :{WHITE}O layout de cidade "sem mais estradas" não é válido no editor
@@ -1363,6 +1365,8 @@
STR_NETWORK_GAME_NAME_TIP :{BLACK}Nome do jogo
STR_NETWORK_INFO_ICONS_TIP :{BLACK}Idioma, versão do servidor, etc.
STR_NETWORK_CLICK_GAME_TO_SELECT :{BLACK}Clique num jogo da lista para o selecionar
+STR_NETWORK_LAST_JOINED_SERVER :{BLACK}O servidor que você entrou última vez:
+STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}Clique para selecionar o servidor que você jogou da última vez
STR_NETWORK_FIND_SERVER :{BLACK}Localizar servidor
STR_NETWORK_FIND_SERVER_TIP :{BLACK}Pesquisar por um servidor na rede
@@ -2652,6 +2656,76 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Cidadãos celebram . . .{}Primeiro trem chega a {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detalhes)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Trem no caminho
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Vá para
+STR_ORDER_GO_NON_STOP_TO :Vá não parando para
+STR_ORDER_GO_VIA :Vá via
+STR_ORDER_GO_NON_STOP_VIA :Vá não parando via
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Carregar se disponível
+STR_ORDER_DROP_FULL_LOAD_ALL :Full load all cargo
+STR_ORDER_DROP_FULL_LOAD_ANY :Carregar completamente qualquer carga
+STR_ORDER_DROP_NO_LOADING :Não carregando
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Descarregar se aceito
+STR_ORDER_DROP_UNLOAD :Descarregar tudo
+STR_ORDER_DROP_TRANSFER :Transferir
+STR_ORDER_DROP_NO_UNLOADING :Não descarregar
+STR_ORDER_FULL_LOAD :(Carregar totalmente)
+STR_ORDER_FULL_LOAD_ANY :(Carregar totalmente qualquer carga)
+STR_ORDER_NO_LOAD :(Não carregando)
+STR_ORDER_UNLOAD :(Descarregar e carregar)
+STR_ORDER_UNLOAD_FULL_LOAD :(Descarregar e aguardar carga completa)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Descarregar e aguardar por qualquer tipo de carga completa)
+STR_ORDER_UNLOAD_NO_LOAD :(Descarregar e sair vazio)
+STR_ORDER_TRANSFER :(Transferir e carregar)
+STR_ORDER_TRANSFER_FULL_LOAD :(Transferir e aguardar por carga completa)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transferir e aguardar por qualquer tipo de carga completa)
+STR_ORDER_TRANSFER_NO_LOAD :(Transferir e sair vazio)
+STR_ORDER_NO_UNLOAD :(Não descarregar e carregar)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(Não descarregar e aguardar carga completa)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Não descarregar e aguardar por qualquer tipo de carga completa)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Altera a instrução de paradas da ordem selecionada
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Altera a instrução de carregamento da ordem selecionada
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Altera a instrução de descargas da ordem selecionada
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Inserir ordem avançada
+STR_ORDER_GO_TO_NEAREST_DEPOT :Ir para depósito mais próximo
+STR_ORDER_GO_TO_NEAREST_HANGAR :Ir para hangar mais próximo
+STR_ORDER_NEAREST_DEPOT :mais próximo
+STR_ORDER_NEAREST_HANGAR :hangar mais próximo
+STR_ORDER_SERVICE_AT :Manutenção no
+STR_ORDER_SERVICE_NON_STOP_AT :Manutenção sem parada no
+STR_ORDER_TRAIN_DEPOT :Deósito de Trem
+STR_ORDER_ROAD_DEPOT :Depósito de Veículos
+STR_ORDER_SHIP_DEPOT :Depósito de Navios
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} Hangar
+
+STR_ORDER_CONDITIONAL :Pulo de ordem condicional
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Dados do veículo no qual se basear para pular ordem
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Como comprarar os dados do veículo com o valor fornecido
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}O valor a comparar com os dados do veículo
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Digite o valor a ser comparado
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Percentual carregado
+STR_ORDER_CONDITIONAL_RELIABILITY :Confiabilidade
+STR_ORDER_CONDITIONAL_MAX_SPEED :Velocidade máxima
+STR_ORDER_CONDITIONAL_AGE :Idade (anos)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Necessia de manutenção
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Sempre
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :é igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :é não igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :é menor que
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :é menor ou igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :é maior que
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :é maior ou igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :é verdadeiro
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :é falso
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Saltar para a ordem {COMMA}
+STR_CONDITIONAL_NUM :Saltar para a ordem {COMMA} quando {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Saltar para a ordem {COMMA} quando {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viajar (não progamado)
STR_TIMETABLE_TRAVEL_FOR :Viajar para {STRING}
@@ -2709,6 +2783,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Valor: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Carregando / descarregando
+STR_LEAVING :{LTBLUE}Saindo
STR_TRAIN_MUST_BE_STOPPED :{WHITE}O trem deve estar parado dentro do depósito
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Impossível enviar o trem para o depósito...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Não há espaço para mais ordens
@@ -3338,6 +3413,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Alternar transparência para estruturas como faróis e antenas, talvez no futuro para efeitos visuais
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Alternar transparência para catenária. CTRL+click para travar.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Altera transparência para os indicadores de carga
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Definir objetos invisíveis ao invés de transparente
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
@@ -3453,7 +3529,7 @@
############ signal GUI
STR_SIGNAL_SELECTION :{WHITE}Seleção de Sinais
STR_SIGNAL_CAN_T_CONVERT_SIGNALS_HERE :{WHITE}Impossível converter sinais aqui...
-STR_BUILD_SIGNAL_SEMAPHORE_NORM_TIP :{BLACK}Sinais padrão (semáforos){}Sinais são necessários para manter trens de colidirem nas malhas ferroviárias com mais de um trem.
+STR_BUILD_SIGNAL_SEMAPHORE_NORM_TIP :{BLACK}Sinais padrão (semáforos){}Sinais são necessários para impedir trens de colidirem nas malhas ferroviárias com mais de um trem.
STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TIP :{BLACK}Sinal de Entrada (semáforo){}Verde contanto que haja um ou mais sinais de saída verdes na atual seção dos trilhos. Do contrário, fica vermelho.
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TIP :{BLACK}Sinal de saída (semáforo){}Funciona como um sinal normal, porém é necessário para o funcionamento correto do sistema de sinais combo ou de entrada.
STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TIP :{BLACK}Sinal combo (semáforo){}O sinal combo funciona tanto como um sinal de entrada quanto de saída. Permite construir várias ramificações.
--- a/src/lang/bulgarian.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/bulgarian.txt Fri Apr 25 15:20:48 2008 +0000
@@ -20,6 +20,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} на път от {STATION})
STR_000C_ACCEPTS :{BLACK}Приема: {WHITE}
STR_000D_ACCEPTS :{BLACK}Приема: {GOLD}
+STR_SUPPLIES :{BLACK}Запаси: {GOLD}
STR_000E :
STR_000F_PASSENGERS :Пътници
STR_0010_COAL :Въглища
@@ -379,6 +380,7 @@
STR_SORT_BY_MAX_SPEED :Максимална скорост
STR_SORT_BY_MODEL :Модел
STR_SORT_BY_VALUE :Цена
+STR_SORT_BY_LENGTH :Дължина
STR_SORT_BY_FACILITY :Вид на гарата
STR_SORT_BY_WAITING :Цена на чакащият товар
STR_SORT_BY_RATING_MAX :Рейтинг на товара
@@ -1173,6 +1175,7 @@
STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :по-добри пътища
STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :2х2 мрежа
STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID :3х3 мрежа
+STR_CONFIG_PATCHES_TOWN_LAYOUT_RANDOM :без определено
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}Позиция на лента за инструменти: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :Ляво
@@ -2652,6 +2655,61 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Хората празнуват . . .{}Първи влак пристигна на {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Подробности)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Влак на пътя
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Отиди до
+STR_ORDER_GO_NON_STOP_TO :Отиди без спиране до
+STR_ORDER_GO_VIA :Отиди чрез
+STR_ORDER_GO_NON_STOP_VIA :Отиди без спиране чрез
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Натовари ако е вазможно
+STR_ORDER_DROP_FULL_LOAD_ALL :Напълно нотовари всичкиат товар
+STR_ORDER_DROP_FULL_LOAD_ANY :Напълно нотовари какъвто и да е товар
+STR_ORDER_DROP_NO_LOADING :Ненатаваряй
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Разтовари ако позволено
+STR_ORDER_DROP_UNLOAD :Разтовари взичко
+STR_ORDER_DROP_TRANSFER :Смени
+STR_ORDER_DROP_NO_UNLOADING :Неразтаваряй
+STR_ORDER_FULL_LOAD :(Напълно натовари)
+STR_ORDER_FULL_LOAD_ANY :(Напълно натовари какъвто и да е товар)
+STR_ORDER_NO_LOAD :(Ненатоваряй)
+STR_ORDER_UNLOAD :(Ненатоваряй и вземи товар)
+STR_ORDER_UNLOAD_FULL_LOAD :(Разтовари и чакай за пълен товар)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Разтовари и чакай за какъвто и да е пълен товар)
+STR_ORDER_UNLOAD_NO_LOAD :(Разтовари и потегли празен)
+STR_ORDER_TRANSFER :(Смени и вземи товар)
+STR_ORDER_TRANSFER_FULL_LOAD :(Смени и чакай за пълен товар)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Смени и чакай за какъвто и да е пълен товар)
+STR_ORDER_TRANSFER_NO_LOAD :(Смени и потегли празен)
+STR_ORDER_NO_UNLOAD :(Неразтоваряй и вземи товар)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(Неразтоваряй и чакай за пълен товар)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Неразтоваряй и чакай за какъвто и да е пълен товар)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Промени начинат на спиране на осветената заповед
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Промени начинат на натоваряне на осветената заповед
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Промени начинат на разтоваряне на осветената заповед
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_NEAREST_DEPOT :Отиди до най-близкото депо
+STR_ORDER_GO_TO_NEAREST_HANGAR :Отиди до най-близкият хангар
+STR_ORDER_NEAREST_DEPOT :най-близкото депо
+STR_ORDER_NEAREST_HANGAR :най-близкият хангар
+STR_ORDER_TRAIN_DEPOT :Депо за влакове
+STR_ORDER_ROAD_DEPOT :Депо за пътни превозни средства
+STR_ORDER_SHIP_DEPOT :Депо за кораби
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} хангар
+
+STR_ORDER_CONDITIONAL_MAX_SPEED :Максимална скорост
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Винаги
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :е равно на
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :не е равно на
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :е по-малко от
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :е по-малко или равно на
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :е повече от
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :е повече или равно на
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :е правилно
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :е неправилно
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Патувай (без разписание)
STR_TIMETABLE_TRAVEL_FOR :Патувай за {STRING}
@@ -2709,6 +2767,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Цена: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Товарене/ Разтоварване
+STR_LEAVING :{LTBLUE}Напуска
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Влакът трябва да бъде спрян в депото
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Не може да пратиш влака в депото...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Няма повече място за още заповеди
@@ -3338,6 +3397,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Използвай прозрачност за сгради като фарове и антени, може би в бъдеще за украси
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Активирай прозрачност за висящите. CTRL+клик за фиксиране.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Вклучи прозрачност за товарещи указатели
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Направи обектите невидими вместо прозрачни
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
--- a/src/lang/catalan.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/catalan.txt Fri Apr 25 15:20:48 2008 +0000
@@ -18,6 +18,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} en ruta des de {STATION})
STR_000C_ACCEPTS :{BLACK}Accepta: {WHITE}
STR_000D_ACCEPTS :{BLACK}Accepta: {GOLD}
+STR_SUPPLIES :{BLACK}Provisions: {GOLD}
STR_000E :
STR_000F_PASSENGERS :Passatgers
STR_0010_COAL :Carbó
@@ -377,6 +378,7 @@
STR_SORT_BY_MAX_SPEED :Veloc. Màxima
STR_SORT_BY_MODEL :Model
STR_SORT_BY_VALUE :Valor
+STR_SORT_BY_LENGTH :Llargada
STR_SORT_BY_FACILITY :Tipus de estació
STR_SORT_BY_WAITING :Valor de espera de càrrega
STR_SORT_BY_RATING_MAX :Rati de càrrega
@@ -1362,6 +1364,8 @@
STR_NETWORK_GAME_NAME_TIP :{BLACK}Nom del joc
STR_NETWORK_INFO_ICONS_TIP :{BLACK}Idioma, versió de servidor, etc.
STR_NETWORK_CLICK_GAME_TO_SELECT :{BLACK}Clica en un joc de la llista per triar-lo
+STR_NETWORK_LAST_JOINED_SERVER :{BLACK}El servidor en el que has entrat per darrera vegada:
+STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}Clica per seleccionar al servidor en el que has jugat per darrera vegada:
STR_NETWORK_FIND_SERVER :{BLACK}Busca servidor
STR_NETWORK_FIND_SERVER_TIP :{BLACK}Cercant un servidor a la xarxa
@@ -2651,6 +2655,76 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Celebració popular . . .{} Arribada del 1er. tren a {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detalls)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tren en el camí
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Ves a
+STR_ORDER_GO_NON_STOP_TO :Ves sense parar a
+STR_ORDER_GO_VIA :Ves via
+STR_ORDER_GO_NON_STOP_VIA :Ves sense parar via
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Carrega si està disponible
+STR_ORDER_DROP_FULL_LOAD_ALL :Carrega del tot totes les càrregues
+STR_ORDER_DROP_FULL_LOAD_ANY :Carrega del tot qualsevol càrrega
+STR_ORDER_DROP_NO_LOADING :No carreguis
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Descarrega si s'accepta
+STR_ORDER_DROP_UNLOAD :Descarrega tot
+STR_ORDER_DROP_TRANSFER :Transfereix
+STR_ORDER_DROP_NO_UNLOADING :No descarreguis
+STR_ORDER_FULL_LOAD :(Càrrega completa)
+STR_ORDER_FULL_LOAD_ANY :(Càrrega completa de qualsevol càrrega)
+STR_ORDER_NO_LOAD :(No carregar)
+STR_ORDER_UNLOAD :(Descarrega i agafa la càrrega)
+STR_ORDER_UNLOAD_FULL_LOAD :(Descarrega i espera carregar del tot)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Descarrega i espera una càrrega completa qualsevol)
+STR_ORDER_UNLOAD_NO_LOAD :(Descarrega i deixa buit)
+STR_ORDER_TRANSFER :(Transfereix i agafa càrrega)
+STR_ORDER_TRANSFER_FULL_LOAD :(Transfereix i espera una càrrega completa)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transfereix i espera qualsevol càrrega completa)
+STR_ORDER_TRANSFER_NO_LOAD :(Transfereix i deixa buit)
+STR_ORDER_NO_UNLOAD :(No descarreguis i agafa càrrega)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(No descarreguis i espera carregar del tot)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No descarreguis i espera carregar del tot de qualsevol càrrega)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Canvia el comportament de parada de l'ordre remarcada
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Canvia el comportament de càrrega de l'ordre remarcada
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Canvia el comportament de descàrrega de l'ordre remarcada
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Insereix una ordre avançada
+STR_ORDER_GO_TO_NEAREST_DEPOT :Ves al dipòsit més proper
+STR_ORDER_GO_TO_NEAREST_HANGAR :Ves a l'hangar més proper
+STR_ORDER_NEAREST_DEPOT :el més proper
+STR_ORDER_NEAREST_HANGAR :l'hangar més proper
+STR_ORDER_SERVICE_AT :Revisió a
+STR_ORDER_SERVICE_NON_STOP_AT :Revisió sense parar a
+STR_ORDER_TRAIN_DEPOT :Cotxeres de tren
+STR_ORDER_ROAD_DEPOT :Cotxera de Vehicles
+STR_ORDER_SHIP_DEPOT :Drassanes
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} Hangar
+
+STR_ORDER_CONDITIONAL :Ordre de salt condicionada
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Dades del vehicle on basar el salt a
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Com comparar les dades del vehicle al valor donat
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}El valor amb el que comparar de les dades del vehicle
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Introdueix el valor amb el que comparar
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Percentatge de càrrega
+STR_ORDER_CONDITIONAL_RELIABILITY :Fiabilitat
+STR_ORDER_CONDITIONAL_MAX_SPEED :Velocitat màxima
+STR_ORDER_CONDITIONAL_AGE :Antiguitat del vehicle (anys)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Necessita revisió
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Sempre
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :és igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :no és igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :és més petit que
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :és més petit o igual que
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :és més gran que
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :és més gran o igual que
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :és verdader
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :és fals
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :salta a l'ordre {COMMA}
+STR_CONDITIONAL_NUM :Salta a l'ordre {COMMA} quan {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Salta a l'ordre {COMMA} quan {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viatge (fora d'horari)
STR_TIMETABLE_TRAVEL_FOR :Viatge a {STRING}
@@ -2708,6 +2782,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Valor: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Carregant / Descarregant
+STR_LEAVING :{LTBLUE}Deixant
STR_TRAIN_MUST_BE_STOPPED :{WHITE}El tren s'ha de parar dins de la cotxera
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}No pots enviar el tren a cotxeres...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}No hi ha més espai per ordres
@@ -3337,6 +3412,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Activa/Desactiva transparència de les estructures com ara fars i antenes
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Commuta la transparència de la catenària. CTRL+clic per bloquejar.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Activa/Desactiva la transparència pels indicadors de carregament
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Mostra els objectes invisibles enlloc de transparents
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
--- a/src/lang/czech.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/czech.txt Fri Apr 25 15:20:48 2008 +0000
@@ -20,6 +20,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} na cestě z{NBSP}{STATION})
STR_000C_ACCEPTS :{BLACK}Přijímá: {WHITE}
STR_000D_ACCEPTS :{BLACK}Přijímá: {GOLD}
+STR_SUPPLIES :{BLACK}Poskytuje: {GOLD}
STR_000E :
STR_000F_PASSENGERS :cestující
STR_000F_PASSENGERS.big :Cestující
@@ -231,7 +232,7 @@
STR_00CD_3 :{BLACK}3
STR_00CE_4 :{BLACK}4
STR_00CF_5 :{BLACK}5
-STR_00D0_NOTHING :Nic
+STR_00D0_NOTHING :nic
STR_00D1_DARK_BLUE :Tmavomodrá
STR_00D2_PALE_GREEN :Světlezelená
STR_00D3_PINK :Růžová
@@ -435,6 +436,7 @@
STR_SORT_BY_MAX_SPEED :max. rychlosti
STR_SORT_BY_MODEL :modelu
STR_SORT_BY_VALUE :hodnoty
+STR_SORT_BY_LENGTH :délky
STR_SORT_BY_FACILITY :druhu stanice
STR_SORT_BY_WAITING :množství čekajícího nákladu
STR_SORT_BY_RATING_MAX :hodnocení přepravy
@@ -976,7 +978,7 @@
STR_CURR_ITL :Italská lira (ITL)
STR_CURR_NLG :Holandský gulden (NLG)
STR_CURR_NOK :Norská koruna (NOK)
-STR_CURR_PLN :Polský złotý (PLN)
+STR_CURR_PLN :Polský zlotý (PLN)
STR_CURR_ROL :Rumunský lei (ROL)
STR_CURR_RUR :Ruský rubl (RUR)
STR_CURR_SIT :Slovinský tolar (SIT)
@@ -1019,8 +1021,8 @@
STR_MONTH_NOV :Listopad
STR_MONTH_DEC :Prosinec
-STR_HEADING_FOR_STATION :{LTBLUE}Mířím do {STATION}
-STR_HEADING_FOR_STATION_VEL :{LTBLUE}Mířím do {STATION}, {VELOCITY}
+STR_HEADING_FOR_STATION :{LTBLUE}Míří do {STATION}
+STR_HEADING_FOR_STATION_VEL :{LTBLUE}Míří do {STATION}, {VELOCITY}
STR_NO_ORDERS :{LTBLUE}Bez příkazů
STR_NO_ORDERS_VEL :{LTBLUE}Bez příkazů, {VELOCITY}
@@ -1229,6 +1231,7 @@
STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :lepší silnice
STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :mřížka 2x2
STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID :mřížka 3x3
+STR_CONFIG_PATCHES_TOWN_LAYOUT_RANDOM :náhodně
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}Umístění hlavní lišty: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :vlevo
@@ -1292,8 +1295,8 @@
STR_CHEAT_CHANGE_DATE :{LTBLUE}Změnit datum: {ORANGE}{DATE_SHORT}
STR_CHEAT_SETUP_PROD :{LTBLUE}Povolit změnu produkce průmyslu: {ORANGE}{STRING}
-STR_HEADING_FOR_WAYPOINT :{LTBLUE}Mířím do {WAYPOINT}
-STR_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}Mířím do {WAYPOINT}, {VELOCITY}
+STR_HEADING_FOR_WAYPOINT :{LTBLUE}Míří do {WAYPOINT}
+STR_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}Míří do {WAYPOINT}, {VELOCITY}
STR_GO_TO_WAYPOINT :Jet přes {WAYPOINT}
STR_GO_NON_STOP_TO_WAYPOINT :Jet bez zastávky přes {WAYPOINT}
@@ -1408,6 +1411,7 @@
STR_NETWORK_PLAYER_NAME :{BLACK}Jméno hráče:
STR_NETWORK_ENTER_NAME_TIP :{BLACK}Podle tohoto jména tě ostatní hráči poznají
+STR_NETWORK_PLAYER_NAME_OSKTITLE :{BLACK}Zadej své jméno
STR_NETWORK_CONNECTION :{BLACK}Připojení:
STR_NETWORK_CONNECTION_TIP :{BLACK}Vyber si mezi hrou na internetu nebo v místní síti
@@ -1418,6 +1422,8 @@
STR_NETWORK_GAME_NAME_TIP :{BLACK}Název hry
STR_NETWORK_INFO_ICONS_TIP :{BLACK}Jazyk, verze serveru, atd.
STR_NETWORK_CLICK_GAME_TO_SELECT :{BLACK}Hru vybereš kliknutím do seznamu
+STR_NETWORK_LAST_JOINED_SERVER :{BLACK}Naposledy navštívený server:
+STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}Kliknutím vybereš server, kde jsi hrál(a) naposledy
STR_NETWORK_FIND_SERVER :{BLACK}Najít server
STR_NETWORK_FIND_SERVER_TIP :{BLACK}Hledat server v síti
@@ -1451,6 +1457,7 @@
STR_NETWORK_NEW_GAME_NAME :{BLACK}Jméno hry:
STR_NETWORK_NEW_GAME_NAME_TIP :{BLACK}Jméno hry se zobrazí ostatním hráčům v menu, kde si vybírají sitovou hru
+STR_NETWORK_NEW_GAME_NAME_OSKTITLE :{BLACK}Zadej jméno této síťové hry
STR_NETWORK_SET_PASSWORD :{BLACK}Nastavit heslo
STR_NETWORK_PASSWORD_TIP :{BLACK}Svoji hru si můžeš ochránit heslem, když nechceš, aby se ti do ni hlásili jiní lidé
STR_NETWORK_SELECT_MAP :{BLACK}Vyber mapu:
@@ -1478,35 +1485,42 @@
STR_NETWORK_LOAD_GAME_TIP :{BLACK}Pokračovat ve dříve uložené hře pro více hráčů (ujisti se, že se připojuješ na správného hráče)
############ Leave those lines in this order!!
-STR_NETWORK_LANG_ANY :Jakýkoli
-STR_NETWORK_LANG_ENGLISH :Angličtina
-STR_NETWORK_LANG_GERMAN :Němčina
-STR_NETWORK_LANG_FRENCH :Francouzština
-STR_NETWORK_LANG_BRAZILIAN :Brazilská portugalština
-STR_NETWORK_LANG_BULGARIAN :Bulharština
-STR_NETWORK_LANG_CHINESE :Čínština
-STR_NETWORK_LANG_CZECH :Čeština
-STR_NETWORK_LANG_DANISH :Dánština
-STR_NETWORK_LANG_DUTCH :Nizozemština
-STR_NETWORK_LANG_ESPERANTO :Esperanto
-STR_NETWORK_LANG_FINNISH :Finština
-STR_NETWORK_LANG_HUNGARIAN :Maďarština
-STR_NETWORK_LANG_ICELANDIC :Islandština
-STR_NETWORK_LANG_ITALIAN :Italština
-STR_NETWORK_LANG_JAPANESE :Japonština
-STR_NETWORK_LANG_KOREAN :Korejština
-STR_NETWORK_LANG_LITHUANIAN :Litevština
-STR_NETWORK_LANG_NORWEGIAN :Norština
-STR_NETWORK_LANG_POLISH :Polština
-STR_NETWORK_LANG_PORTUGUESE :Portugalština
-STR_NETWORK_LANG_ROMANIAN :Rumunština
-STR_NETWORK_LANG_RUSSIAN :Ruština
-STR_NETWORK_LANG_SLOVAK :Slovenština
-STR_NETWORK_LANG_SLOVENIAN :Slovinština
-STR_NETWORK_LANG_SPANISH :Španělština
-STR_NETWORK_LANG_SWEDISH :Švédština
-STR_NETWORK_LANG_TURKISH :Turečtina
-STR_NETWORK_LANG_UKRAINIAN :Ukrajinština
+STR_NETWORK_LANG_ANY :jakýkoli
+STR_NETWORK_LANG_ENGLISH :angličtina
+STR_NETWORK_LANG_GERMAN :němčina
+STR_NETWORK_LANG_FRENCH :francouzština
+STR_NETWORK_LANG_BRAZILIAN :brazilská portugalština
+STR_NETWORK_LANG_BULGARIAN :bulharština
+STR_NETWORK_LANG_CHINESE :čínština
+STR_NETWORK_LANG_CZECH :čeština
+STR_NETWORK_LANG_DANISH :dánština
+STR_NETWORK_LANG_DUTCH :nizozemština
+STR_NETWORK_LANG_ESPERANTO :esperanto
+STR_NETWORK_LANG_FINNISH :finština
+STR_NETWORK_LANG_HUNGARIAN :maďarština
+STR_NETWORK_LANG_ICELANDIC :islandština
+STR_NETWORK_LANG_ITALIAN :italština
+STR_NETWORK_LANG_JAPANESE :japonština
+STR_NETWORK_LANG_KOREAN :korejština
+STR_NETWORK_LANG_LITHUANIAN :litevština
+STR_NETWORK_LANG_NORWEGIAN :norština
+STR_NETWORK_LANG_POLISH :polština
+STR_NETWORK_LANG_PORTUGUESE :portugalština
+STR_NETWORK_LANG_ROMANIAN :rumunština
+STR_NETWORK_LANG_RUSSIAN :ruština
+STR_NETWORK_LANG_SLOVAK :slovenština
+STR_NETWORK_LANG_SLOVENIAN :slovinština
+STR_NETWORK_LANG_SPANISH :španělština
+STR_NETWORK_LANG_SWEDISH :švédština
+STR_NETWORK_LANG_TURKISH :turečtina
+STR_NETWORK_LANG_UKRAINIAN :ukrajinština
+STR_NETWORK_LANG_AFRIKAANS :afrikánština
+STR_NETWORK_LANG_CROATIAN :chorvatština
+STR_NETWORK_LANG_CATALAN :katalánština
+STR_NETWORK_LANG_ESTONIAN :estonština
+STR_NETWORK_LANG_GALICIAN :galicijština
+STR_NETWORK_LANG_GREEK :řečtina
+STR_NETWORK_LANG_LATVIAN :lotyština
############ End of leave-in-this-order
STR_NETWORK_GAME_LOBBY :{WHITE}Vstupní místnost do multiplayerové hry
@@ -1605,6 +1619,7 @@
STR_NETWORK_CHAT_TO_CLIENT :[Osobní] pro {STRING}: {GRAY}{STRING}
STR_NETWORK_CHAT_ALL_CAPTION :[Všichni] :
STR_NETWORK_CHAT_ALL :[Všichni] {STRING}: {GRAY}{STRING}
+STR_NETWORK_CHAT_OSKTITLE :{BLACK}Zadej zprávu
STR_NETWORK_NAME_CHANGE :si změnil jméno na
STR_NETWORK_SERVER_SHUTDOWN :{WHITE}Server ukončil relaci
STR_NETWORK_SERVER_REBOOT :{WHITE}Server se restartuje...{}Počkejte prosím...
@@ -1746,7 +1761,7 @@
STR_BUILD_TRAMWAY_BRIDGE :{BLACK}Postavit tramvajový most
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Postavit silniční tunel
STR_BUILD_TRAMWAY_TUNNEL :{BLACK}Postavit tramvajový tunel
-STR_TOGGLE_ONE_WAY_ROAD :{BLACK}Povolit / zakázat jednosměrné silnice
+STR_TOGGLE_ONE_WAY_ROAD :{BLACK}Stavět / nestavět jednosměrné silnice
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Přepnout stavba / odstranění silnice
STR_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Přepínání mezi výstavbou a bouráním tramvajové tratě
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Výběr orientace garáže
@@ -2008,6 +2023,7 @@
STR_400F_SELECT_SCENARIO_GREEN_PRE :{BLACK}Zvolit scénář (zelená), přednastavenou hru (modrá), nebo novou náhodnou hru
STR_4010_GENERATE_RANDOM_NEW_GAME :Vytvořit novou náhodnou hru
STR_LOAD_HEIGHTMAP :{WHITE}Nahrát výškovou mapu
+STR_SAVE_OSKTITLE :{BLACK}Zadej jméno pro uloženou hru
##id 0x4800
STR_4800_IN_THE_WAY :{WHITE}{STRING} v cestě
@@ -2322,8 +2338,8 @@
STR_SHIPS :{WHITE}{COMMA} lo{P ď dě dí}
STR_7042_NONE :{WHITE}Nic
STR_7043_FACE_SELECTION :{WHITE}Volba tváře
-STR_7044_MALE :{BLACK}Mužské
-STR_7045_FEMALE :{BLACK}Ženské
+STR_7044_MALE :{BLACK}Mužská
+STR_7045_FEMALE :{BLACK}Ženská
STR_7046_NEW_FACE :{BLACK}Nový obličej
STR_7047_CANCEL_NEW_FACE_SELECTION :{BLACK}Zrušit volbu nového obličeje
STR_7048_ACCEPT_NEW_FACE_SELECTION :{BLACK}Potvrdit výběr obličeje
@@ -2703,6 +2719,52 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Obyvatelé oslavují...{}První vlak dorazil do {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detaily)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}V cestě je vlak
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Jet do
+STR_ORDER_GO_NON_STOP_TO :Jet bez zastavení do
+STR_ORDER_GO_VIA :Jet přes
+STR_ORDER_GO_NON_STOP_VIA :Jet bez zastavení přes
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Pokud možno naložit
+STR_ORDER_DROP_FULL_LOAD_ALL :Plně naložit vším
+STR_ORDER_DROP_FULL_LOAD_ANY :Plně naložit čímkoli
+STR_ORDER_DROP_NO_LOADING :Nenakládat
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Vyložit vyžadovaný náklad
+STR_ORDER_DROP_UNLOAD :Vyložit vše
+STR_ORDER_DROP_TRANSFER :Přeložit
+STR_ORDER_DROP_NO_UNLOADING :Nevykládat
+STR_ORDER_FULL_LOAD :(plně naložit)
+STR_ORDER_FULL_LOAD_ANY :(plně naložit cokoli)
+STR_ORDER_NO_LOAD :(nenakládat)
+STR_ORDER_UNLOAD :(vyložit a hned naložit)
+STR_ORDER_UNLOAD_FULL_LOAD :(vyložit a plně naložit)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(vyložit a plně naložit čímkoli)
+STR_ORDER_UNLOAD_NO_LOAD :(vyložit a nechat prázdné)
+STR_ORDER_TRANSFER :(přeložit a hned naložit)
+STR_ORDER_TRANSFER_FULL_LOAD :(přeložit a plně naložit)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(přeložit a plně naložit čímkoli)
+STR_ORDER_TRANSFER_NO_LOAD :(přeložit a nechat prázdné)
+STR_ORDER_NO_UNLOAD :(nevykládat a hned naložit)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(nevykládat a plně naložit)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(nevykládat a plně naložit čímkoli)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Ovlivnit zastavení u vybraného příkazu
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Ovlivnit nakládání u vybraného příkazu
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Ovlivnit vykládání u vybraného příkazu
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_NEAREST_DEPOT :Jet do nejbližšího depa
+STR_ORDER_GO_TO_NEAREST_HANGAR :Jet do nejbližšího hangáru
+STR_ORDER_NEAREST_DEPOT :nebližšího
+STR_ORDER_NEAREST_HANGAR :nejbližší hangár
+STR_ORDER_SERVICE_AT :Údržba v
+STR_ORDER_SERVICE_NON_STOP_AT :Údržba bez zastavení v
+STR_ORDER_TRAIN_DEPOT :železničním depu
+STR_ORDER_ROAD_DEPOT :silničním depu
+STR_ORDER_SHIP_DEPOT :lodním depu
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} hangár
+
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Jet do (mimo jízdní řád)
STR_TIMETABLE_TRAVEL_FOR :Jet do {STRING}
@@ -2750,6 +2812,8 @@
STR_REFIT_ORDER :(Přestavět na {STRING})
STR_TIMETABLE_VIEW :{BLACK}Jízdní řád
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Přepnout na jízdní řád
+STR_ORDER_VIEW :{BLACK}Příkazy
+STR_ORDER_VIEW_TOOLTIP :{BLACK}Přepnout na zobrazení příkazů
STR_8829_ORDERS :{WHITE}{VEHICLE} (Příkazy)
STR_882A_END_OF_ORDERS :{SETX 10}- - Konec příkazů - -
STR_SERVICE :{BLACK}Údržba
@@ -2758,6 +2822,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Hodnota: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Nakládání / vykládání
+STR_LEAVING :{LTBLUE}Odjíždí
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Vlak musí stát v depu
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Nelze poslat vlak do depa...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Nedostatek prostoru na příkazy
@@ -2865,7 +2930,7 @@
STR_900C_DETAILS :{WHITE}{VEHICLE} (Detaily)
STR_900D_AGE_RUNNING_COST_YR :{BLACK}Stáří: {LTBLUE}{STRING}{BLACK} Cena provozu: {LTBLUE}{CURRENCY} ročně
STR_900E_MAX_SPEED :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY}
-STR_900F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Příjem tento rok: {LTBLUE}{CURRENCY} (minulý rok): {CURRENCY})
+STR_900F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Příjem tento rok: {LTBLUE}{CURRENCY} (minulý rok: {CURRENCY})
STR_9010_RELIABILITY_BREAKDOWNS :{BLACK}Spolehlivost: {LTBLUE}{COMMA}% {BLACK}Poruch od posledního servisu: {LTBLUE}{COMMA}
STR_9011_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Koupen: {LTBLUE}{NUM}{BLACK} Cena: {LTBLUE}{CURRENCY}
STR_9012_CAPACITY :{BLACK}Kapacita: {LTBLUE}{CARGO}
@@ -2873,8 +2938,8 @@
STR_9014_CAN_T_SELL_ROAD_VEHICLE :{WHITE}Nemohu prodat silniční vozidlo...
STR_9015_CAN_T_STOP_START_ROAD_VEHICLE :{WHITE}Nemohu zastavit/rozjet silniční vozidlo...
STR_9016_ROAD_VEHICLE_IS_WAITING :{WHITE}Silniční vozidlo {COMMA} čeká v garáži
-STR_HEADING_FOR_ROAD_DEPOT :{ORANGE}Mířím do garáže {TOWN}
-STR_HEADING_FOR_ROAD_DEPOT_VEL :{ORANGE}Mířím do garáže {TOWN}, {VELOCITY}
+STR_HEADING_FOR_ROAD_DEPOT :{ORANGE}Míří do garáže {TOWN}
+STR_HEADING_FOR_ROAD_DEPOT_VEL :{ORANGE}Míří do garáže {TOWN}, {VELOCITY}
STR_HEADING_FOR_ROAD_DEPOT_SERVICE :{LTBLUE}Údržba v silničním depu {TOWN}
STR_HEADING_FOR_ROAD_DEPOT_SERVICE_VEL :{LTBLUE}Údržba v silničním depu {TOWN}, {VELOCITY}
STR_9018_CAN_T_SEND_VEHICLE_TO_DEPOT :{WHITE}Nemohu poslat silniční vozidlo do garáže...
@@ -2947,7 +3012,7 @@
STR_9819_CAN_T_SEND_SHIP_TO_DEPOT :{WHITE}Nelze poslat loď do depa...
STR_981A_UNABLE_TO_FIND_LOCAL_DEPOT :{WHITE}Nemohu najít místní depo
STR_HEADING_FOR_SHIP_DEPOT :{ORANGE}Jedu do depa {TOWN}
-STR_HEADING_FOR_SHIP_DEPOT_VEL :{ORANGE}Mířím do depa {TOWN}, {VELOCITY}
+STR_HEADING_FOR_SHIP_DEPOT_VEL :{ORANGE}Míří do depa {TOWN}, {VELOCITY}
STR_HEADING_FOR_SHIP_DEPOT_SERVICE :{LTBLUE}Údržba v lodním depu {TOWN}
STR_HEADING_FOR_SHIP_DEPOT_SERVICE_VEL :{LTBLUE}Údržba v lodním depu {TOWN}, {VELOCITY}
STR_981C_SHIP_IS_WAITING_IN_DEPOT :{WHITE}Loď {COMMA} čeká v depu
@@ -3294,6 +3359,7 @@
STR_WORLD_GENERATION_CAPTION :{WHITE}Tvorba krajiny
STR_RANDOM_SEED :{BLACK}Náhodné číslo:
STR_RANDOM_SEED_HELP :{BLACK}Zde můžeš zadat seed
+STR_RANDOM_SEED_OSKTITLE :{BLACK}Zadej náhodné číslo
STR_LAND_GENERATOR :{BLACK}Generátor krajiny:
STR_TREE_PLACER :{BLACK}Sázení stromů:
STR_HEIGHTMAP_ROTATION :{BLACK}Otočení výškové mapy:
@@ -3386,6 +3452,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Změna průhlednosti staveb jako majáků, vysílačů a doplňků (v budoucnosti). Nastavení se zamkne CTRL+kliknutím.
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Změna průhlednosti elektrifikace. Nastavení se zamkne CTRL+kliknutím.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Přepnout průhlednost pro ukazatele naložení. Nastavení se zamkne CTRL+kliknutím.
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Objekty budou neviditelné, ne průhledné
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
@@ -3441,6 +3508,7 @@
#### Improved sign GUI
STR_NEXT_SIGN_TOOLTIP :{BLACK}Na další signál
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Na předešlý signál
+STR_SIGN_OSKTITLE :{BLACK}Zadej název pro značku
########
@@ -3513,3 +3581,8 @@
STR_DRAG_SIGNALS_DENSITY_DECREASE_TIP :{BLACK}Snížit rozestup mezi signály
STR_DRAG_SIGNALS_DENSITY_INCREASE_TIP :{BLACK}Zvýšit rozestup mezi signály
########
+
+############ on screen keyboard
+STR_OSK_KEYBOARD_LAYOUT :"+ěščřžýáíé=-\qwertyuiopú)asdfghjklů' zxcvbnm,./ .
+STR_OSK_KEYBOARD_LAYOUT_CAPS :~1234567890_+|QWERTYUIOP/(}}ASDFGHJKL:! ZXCVBNM?:_ .
+########
--- a/src/lang/danish.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/danish.txt Fri Apr 25 15:20:48 2008 +0000
@@ -377,6 +377,7 @@
STR_SORT_BY_MAX_SPEED :Tophastighed
STR_SORT_BY_MODEL :Model
STR_SORT_BY_VALUE :Værdi
+STR_SORT_BY_LENGTH :Længde
STR_SORT_BY_FACILITY :Stationstype
STR_SORT_BY_WAITING :Værdi af ventende fragt
STR_SORT_BY_RATING_MAX :Fragtbedømmelse
@@ -1171,6 +1172,7 @@
STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :bedre veje
STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :2x2 gitter
STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID :3x3 gitter
+STR_CONFIG_PATCHES_TOWN_LAYOUT_RANDOM :tilfældig
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}Placering af værktøjslinje: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :Venstre
@@ -1350,6 +1352,7 @@
STR_NETWORK_PLAYER_NAME :{BLACK}Spiller navn:
STR_NETWORK_ENTER_NAME_TIP :{BLACK}Dette er det navn, som andre spillere vil kende dig ved
+STR_NETWORK_PLAYER_NAME_OSKTITLE :{BLACK}Indtast dit navn
STR_NETWORK_CONNECTION :{BLACK}Forbindelse:
STR_NETWORK_CONNECTION_TIP :{BLACK}Vælg mellem et internet baseret eller et lokalnet baseret spil
@@ -1449,6 +1452,10 @@
STR_NETWORK_LANG_SWEDISH :Svensk
STR_NETWORK_LANG_TURKISH :Tyrkisk
STR_NETWORK_LANG_UKRAINIAN :Ukrainsk
+STR_NETWORK_LANG_CROATIAN :Kroatisk
+STR_NETWORK_LANG_GALICIAN :Galicisk
+STR_NETWORK_LANG_GREEK :Græsk
+STR_NETWORK_LANG_LATVIAN :Lettisk
############ End of leave-in-this-order
STR_NETWORK_GAME_LOBBY :{WHITE}Netværksspils lobby
@@ -1713,6 +1720,7 @@
STR_2002_WHITE :{TINYFONT}{WHITE}{SIGN}
STR_2004_BUILDING_MUST_BE_DEMOLISHED :{WHITE}Det er nødvendigt at nedrive bygningen først
STR_2005 :{WHITE}{TOWN}
+STR_CITY :{WHITE}{TOWN} (by)
STR_2006_POPULATION :{BLACK}Indbyggere: {ORANGE}{COMMA}{BLACK} Huse: {ORANGE}{COMMA}
STR_2007_RENAME_TOWN :Omdøb byen
STR_2008_CAN_T_RENAME_TOWN :{WHITE}Kan ikke omdøbe byen...
@@ -2638,6 +2646,41 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Indbyggerne fester . . .{}Første tog ankommer til {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detaljer)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tog i vejen
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Gå til
+STR_ORDER_GO_NON_STOP_TO :Gå uden stop til
+STR_ORDER_GO_VIA :Gå via
+STR_ORDER_GO_NON_STOP_VIA :Gå uden stop via
+STR_ORDER_DROP_UNLOAD :Aflæs alt
+STR_ORDER_DROP_TRANSFER :Overfør
+STR_ORDER_TRANSFER_NO_LOAD :(Overfør og efterlad tom)
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_NEAREST_DEPOT :Gå til nærmeste depot
+STR_ORDER_NEAREST_DEPOT :det nærmeste
+STR_ORDER_NEAREST_HANGAR :den nærmeste hangar
+STR_ORDER_TRAIN_DEPOT :Remise
+STR_ORDER_ROAD_DEPOT :Værksted
+STR_ORDER_SHIP_DEPOT :Skibsdok
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} hangar
+
+STR_ORDER_CONDITIONAL_RELIABILITY :Pålidelighed
+STR_ORDER_CONDITIONAL_MAX_SPEED :Tophastighed
+STR_ORDER_CONDITIONAL_AGE :Køretøjets alder (år)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Kræver service
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Altid
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :er lig med
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :er ikke lig med
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :er mindre end
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :er mindre eller lig med
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :er større end
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :er større eller lig med
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :er sand
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :er falsk
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Rejs (ikke iflg. køreplan)
STR_TIMETABLE_TRAVEL_FOR :Rejs i {STRING}
@@ -2685,6 +2728,7 @@
STR_REFIT_ORDER :(Ombyg til {STRING})
STR_TIMETABLE_VIEW :{BLACK}Køreplan
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Skift til køreplan-visning
+STR_ORDER_VIEW :{BLACK}Ordrer
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordrer)
STR_882A_END_OF_ORDERS :{SETX 10}- - Slut på ordrer - -
STR_SERVICE :{BLACK}Service
@@ -2693,6 +2737,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Værdi: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Læsser / Aflæsser
+STR_LEAVING :{LTBLUE}Forlader
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Toget skal være stoppet inde i en remise
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Kan ikke sende toget til remise...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Ikke mere plads til ordrer
@@ -3376,6 +3421,7 @@
#### Improved sign GUI
STR_NEXT_SIGN_TOOLTIP :{BLACK}Gå til næste skilt
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Gå til forrige skilt
+STR_SIGN_OSKTITLE :{BLACK}Indtast et navn for skiltet
########
@@ -3448,3 +3494,8 @@
STR_DRAG_SIGNALS_DENSITY_DECREASE_TIP :{BLACK}Formindsk træk-og-slip signaltæthed
STR_DRAG_SIGNALS_DENSITY_INCREASE_TIP :{BLACK}Forøg træk-og-slip signaltæthed
########
+
+############ on screen keyboard
+STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ .
+STR_OSK_KEYBOARD_LAYOUT_CAPS :~!@#$%^&*()_+|QWERTYUIOP{{}}ASDFGHJKL:" ZXCVBNM<>? .
+########
--- a/src/lang/dutch.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/dutch.txt Fri Apr 25 15:20:48 2008 +0000
@@ -18,6 +18,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} opweg van {STATION})
STR_000C_ACCEPTS :{BLACK}Accepteert: {WHITE}
STR_000D_ACCEPTS :{BLACK}Accepteert: {GOLD}
+STR_SUPPLIES :{BLACK}Bied aan: {GOLD}
STR_000E :
STR_000F_PASSENGERS :Passagiers
STR_0010_COAL :Kolen
@@ -377,6 +378,7 @@
STR_SORT_BY_MAX_SPEED :Maximale snelheid
STR_SORT_BY_MODEL :Model
STR_SORT_BY_VALUE :Waarde
+STR_SORT_BY_LENGTH :Lengte
STR_SORT_BY_FACILITY :Station type
STR_SORT_BY_WAITING :Waarde van wachtende vracht
STR_SORT_BY_RATING_MAX :Vracht waardering
@@ -1362,6 +1364,8 @@
STR_NETWORK_GAME_NAME_TIP :{BLACK}Naam van het spel
STR_NETWORK_INFO_ICONS_TIP :{BLACK}Taal, serverversie, etc.
STR_NETWORK_CLICK_GAME_TO_SELECT :{BLACK}Klik op een spel uit de lijst om deze te selecteren
+STR_NETWORK_LAST_JOINED_SERVER :{BLACK}De server waarmee je het laatste verbonden was:
+STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}Klik om de server te selecteren waar je het laatste op hebt gespeeld
STR_NETWORK_FIND_SERVER :{BLACK}Server zoeken
STR_NETWORK_FIND_SERVER_TIP :{BLACK}Zoeken naar een netwerkserver
@@ -2651,6 +2655,76 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Inwoners feesten... {}Eerste trein arriveert in {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Details)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Trein in de weg
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Ga naar
+STR_ORDER_GO_NON_STOP_TO :Ga non-stop naar
+STR_ORDER_GO_VIA :Ga via
+STR_ORDER_GO_NON_STOP_VIA :Ga non-stop via
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Laden wanneer beschikbaar
+STR_ORDER_DROP_FULL_LOAD_ALL :Volledig laden
+STR_ORDER_DROP_FULL_LOAD_ANY :Volledig en stoort vracht laden
+STR_ORDER_DROP_NO_LOADING :Niet laden
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Ontladen wanneeer geaccepteerd
+STR_ORDER_DROP_UNLOAD :Alles ontladen
+STR_ORDER_DROP_TRANSFER :Transfer
+STR_ORDER_DROP_NO_UNLOADING :Niet ontladen
+STR_ORDER_FULL_LOAD :(Volledig laden)
+STR_ORDER_FULL_LOAD_ANY :(Volledig laden een soort vracht)
+STR_ORDER_NO_LOAD :(Niet laden)
+STR_ORDER_UNLOAD :(Ontladen en vracht meenemen)
+STR_ORDER_UNLOAD_FULL_LOAD :(Ontladen en wacht tot volledig vol)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Ontladen en wacht tot een soort vracht vol)
+STR_ORDER_UNLOAD_NO_LOAD :(Ontladen en vertrek leeg)
+STR_ORDER_TRANSFER :(Transfer en neem vracht mee)
+STR_ORDER_TRANSFER_FULL_LOAD :(Transfer en wacht tot volledig vol)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transfer en wacht tot een soort vol)
+STR_ORDER_TRANSFER_NO_LOAD :(Transfer en vertrek leeg)
+STR_ORDER_NO_UNLOAD :(Niet ontladen en neem vracht mee)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(Niet ontladen en wacht tot volledig vol)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Niet ontladen en wacht tot een soort vol)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Verander het stop-gedrag van de geselecteerde order
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Verander het laad/gedrag van d geselecteerde order
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Verander het ontlaad/gedrag van de geselecteerde order
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Voeg een geadvanceerde order toe
+STR_ORDER_GO_TO_NEAREST_DEPOT :Ga naar dichtstbijzijnde depot
+STR_ORDER_GO_TO_NEAREST_HANGAR :Ga naar dichtstbijzijnde hangaar
+STR_ORDER_NEAREST_DEPOT :Het dichtstbijzijnde
+STR_ORDER_NEAREST_HANGAR :De dichtstbijzijnde hangaar
+STR_ORDER_SERVICE_AT :Onderhoud bij
+STR_ORDER_SERVICE_NON_STOP_AT :Onderhoud non-stop bij
+STR_ORDER_TRAIN_DEPOT :Trein Depot
+STR_ORDER_ROAD_DEPOT :Wagen Depot
+STR_ORDER_SHIP_DEPOT :Schip dok
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} Hangaar
+
+STR_ORDER_CONDITIONAL :Conditionele order sprong
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Voertuig info voor basis springen wanneer
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Op welke manier vergelijken van de voertuiginfo bij de opgegeven waarde
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}De waarde waartegen het voertuig wordt vergeleken
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Geef waarde voor de vergelijking
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Laad percentage
+STR_ORDER_CONDITIONAL_RELIABILITY :Betrouwbaarheid
+STR_ORDER_CONDITIONAL_MAX_SPEED :Maximum snelheid
+STR_ORDER_CONDITIONAL_AGE :Voertuigleeftijd (jaren)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Heeft onderhoud nodig
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Altijd
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :is gelijk aan
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :is niet gelijjk aan
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :is minder dan
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :is minder of gelijk aan
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :is meer dan
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :is meer of gelijk aan
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :is waar
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :is niet waar
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Spring naar order {COMMA}
+STR_CONDITIONAL_NUM :Spring naar order {COMMA} wanneer {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Spring naar order {COMMA} wanneer {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Reis (geen dienstregeling)
STR_TIMETABLE_TRAVEL_FOR :Reis naar {STRING}
@@ -2708,6 +2782,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Waarde: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}In- en uitladen
+STR_LEAVING :{LTBLUE}Vertrekt van
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Trein moet gestopt zijn in depot
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Kan trein niet naar depot sturen...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Geen ruimte meer voor orders
@@ -3337,6 +3412,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Wissel doorzichtigheid voor structuren zoals vuurtoren en antennes, in de toekomst misschien voor eyecandy
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Doorzichtigheid voor bovenleiding. CTRL+klik voor onthouden.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Schakel tussen doorzichtigheid voor laad indicatoren
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Zet object op onzichtbaar in plaats van doorzichtig
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
--- a/src/lang/estonian.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/estonian.txt Fri Apr 25 15:20:48 2008 +0000
@@ -19,6 +19,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} teel jaamast {STATION})
STR_000C_ACCEPTS :{BLACK}Võtab vastu: {WHITE}
STR_000D_ACCEPTS :{BLACK}Võtab vastu: {GOLD}
+STR_SUPPLIES :{BLACK}Tarnib: {GOLD}
STR_000E :
STR_000F_PASSENGERS :Reisijad
STR_000F_PASSENGERS.g :Reisijate
@@ -369,7 +370,7 @@
STR_012D :{WHITE}{STRING}
STR_012E_CANCEL :{BLACK}Loobu
STR_012F_OK :{BLACK}OK
-STR_0130_RENAME :{BLACK}Nime muutmine
+STR_0130_RENAME :{BLACK}Nimevahetus
STR_0131_TOO_MANY_NAMES_DEFINED :{WHITE}Liiga palju määratletud nimesid
STR_0132_CHOSEN_NAME_IN_USE_ALREADY :{WHITE}Valitud nimi on juba kasutusel
@@ -442,7 +443,7 @@
############ range for menu starts
STR_0154_OPERATING_PROFIT_GRAPH :Opereerimiskasumi graafik
STR_0155_INCOME_GRAPH :Tulugraafik
-STR_0156_DELIVERED_CARGO_GRAPH :Kohaleviidud kauba graafik
+STR_0156_DELIVERED_CARGO_GRAPH :Kaubavoo graafik
STR_0157_PERFORMANCE_HISTORY_GRAPH :Tegevustulemuste graafik
STR_0158_COMPANY_VALUE_GRAPH :Firmaväärtuse graafik
STR_0159_CARGO_PAYMENT_RATES :Veotasude määrad
@@ -549,7 +550,7 @@
STR_0189 :{BLACK}{SMALLDOWNARROW}
STR_018A_CAN_T_CHANGE_SERVICING :{WHITE}Hooldusperioodi ei saa muuta...
STR_018B_CLOSE_WINDOW :{BLACK}Sulge aken
-STR_018C_WINDOW_TITLE_DRAG_THIS :{BLACK}Akna pealkiri - lohista akna liigutamiseks
+STR_018C_WINDOW_TITLE_DRAG_THIS :{BLACK}Akna pealkiri. Liigutamiseks lohista seda hiirega.
STR_STICKY_BUTTON :{BLACK}Keela selle akna sulgemine 'Sulge kõik aknad' nupu klõpsamisel
STR_RESIZE_BUTTON :{BLACK}Kliki ja venita, et akna suurust muuta
STR_SAVELOAD_HOME_BUTTON :{BLACK}Vajuta siia, et minna praegusesse vaikimisi valitud salvestamise/laadimise kausta
@@ -817,7 +818,7 @@
STR_0286_MUST_BUILD_TOWN_FIRST :{WHITE}...enne pead linna ehitama
STR_0287_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}...iga linna kohta lubatud ainult üks
STR_0288_PLANT_TREES :{BLACK}Istuta puid
-STR_0289_PLACE_SIGN :{BLACK}Paigalda silt
+STR_0289_PLACE_SIGN :{BLACK}Sildi paigaldamine
STR_028A_RANDOM_TREES :{BLACK}Suvalised puud
STR_028B_PLANT_TREES_RANDOMLY_OVER :{BLACK}Istutab puid suvaliselt üle kogu maa
STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Loo maastikule kivised alad
@@ -952,10 +953,10 @@
############ range for menu starts
STR_INDUSTRY_DIR :Tööstuste nimistu
-STR_0313_FUND_NEW_INDUSTRY :Rahasta uue tööstuse ehitamist
+STR_0313_FUND_NEW_INDUSTRY :Uue tööstuse rahastamine
############ range ends here
-STR_0314_FUND_NEW_INDUSTRY :{WHITE}Rahasta uue tööstuse ehitamist
+STR_0314_FUND_NEW_INDUSTRY :{WHITE}Uue tööstuse rahastamine
STR_JUST_STRING :{STRING}
STR_JUST_INT :{NUM}
STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...saab ehitada ainult linnadesse
@@ -1271,6 +1272,7 @@
STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :paremad teed
STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :2x2 võrgustik
STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID :3x3 võrgustik
+STR_CONFIG_PATCHES_TOWN_LAYOUT_RANDOM :suvaline
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}Tööriistariba asukoht: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :Vasakul
@@ -1399,7 +1401,7 @@
STR_SELECT_STATION_CLASS_TIP :{BLACK}Vali jaama klass mida tahad näidata
STR_SELECT_STATION_TYPE_TIP :{BLACK}Vali ehitatava jaama tüüp
-STR_FAST_FORWARD :{BLACK}Mängu aja kiiresti edasi kerimine
+STR_FAST_FORWARD :{BLACK}Mängu aja kiirendamine
STR_MESSAGE_HISTORY :{WHITE}Sõnumite ajalugu
STR_MESSAGE_HISTORY_TIP :{BLACK}Nimekiri hiljutistest uudistest
STR_MESSAGES_DISABLE_ALL :{BLACK}Lülita kõik välja
@@ -1450,6 +1452,7 @@
STR_NETWORK_PLAYER_NAME :{BLACK}Mängija nimi:
STR_NETWORK_ENTER_NAME_TIP :{BLACK}Selle nime järgi tunnevad sind teised mängijad ära
+STR_NETWORK_PLAYER_NAME_OSKTITLE :{BLACK}Sisesta enda nimi
STR_NETWORK_CONNECTION :{BLACK}Ühendus:
STR_NETWORK_CONNECTION_TIP :{BLACK}Valik internetis ja kohalikus võrgus (LAN) toimuba mängu vahel
@@ -1493,6 +1496,7 @@
STR_NETWORK_NEW_GAME_NAME :{BLACK}Mängu nimi:
STR_NETWORK_NEW_GAME_NAME_TIP :{BLACK}Mängu nime näidatakse teistele mänijatele võrgumängu serverite nimekirjas
+STR_NETWORK_NEW_GAME_NAME_OSKTITLE :{BLACK}Sisesta võrgumängu nimi
STR_NETWORK_SET_PASSWORD :{BLACK}Sea parool
STR_NETWORK_PASSWORD_TIP :{BLACK}Kaitse oma mäng parooliga, kui sa ei taha, et kõik sellele ligi pääseksid
STR_NETWORK_SELECT_MAP :{BLACK}Vali kaart:
@@ -1549,6 +1553,13 @@
STR_NETWORK_LANG_SWEDISH :Rootsi
STR_NETWORK_LANG_TURKISH :Türgi
STR_NETWORK_LANG_UKRAINIAN :Ukraina
+STR_NETWORK_LANG_AFRIKAANS :Afrikaani
+STR_NETWORK_LANG_CROATIAN :Horvaadi
+STR_NETWORK_LANG_CATALAN :Katalaani
+STR_NETWORK_LANG_ESTONIAN :Eesti
+STR_NETWORK_LANG_GALICIAN :Galeegi
+STR_NETWORK_LANG_GREEK :Kreeka
+STR_NETWORK_LANG_LATVIAN :Läti
############ End of leave-in-this-order
STR_NETWORK_GAME_LOBBY :{WHITE}Võrgumängu jututuba
@@ -1647,6 +1658,7 @@
STR_NETWORK_CHAT_TO_CLIENT :[Private] kohta {STRING}: {GRAY}{STRING}
STR_NETWORK_CHAT_ALL_CAPTION :[All] :
STR_NETWORK_CHAT_ALL :[All] {STRING}: {GRAY}{STRING}
+STR_NETWORK_CHAT_OSKTITLE :{BLACK}Sisesta tekst võrgus suhtlemiseks
STR_NETWORK_NAME_CHANGE :muutis oma nimeks
STR_NETWORK_SERVER_SHUTDOWN :{WHITE} Server sulges sessiooni
STR_NETWORK_SERVER_REBOOT :{WHITE} Server restardib...{}Palun oota...
@@ -1813,9 +1825,10 @@
STR_2002_WHITE :{TINYFONT}{WHITE}{SIGN}
STR_2004_BUILDING_MUST_BE_DEMOLISHED :{WHITE}Ehitis tuleb eelnevalt hävitada
STR_2005 :{WHITE}{TOWN}
+STR_CITY :{WHITE}{TOWN} (Linn)
STR_2006_POPULATION :{BLACK}Rahvaarv: {ORANGE}{COMMA}{BLACK} Ehitisi: {ORANGE}{COMMA}
-STR_2007_RENAME_TOWN :Linnanime muutmine
-STR_2008_CAN_T_RENAME_TOWN :{WHITE}Linnanime ei saa muuta...
+STR_2007_RENAME_TOWN :Linna nime vahetamine
+STR_2008_CAN_T_RENAME_TOWN :{WHITE}Linna nime ei saa vahetada...
STR_2009_LOCAL_AUTHORITY_REFUSES :{WHITE}{TOWN} kohalik omavalitsus keeldub seda lubamast
STR_200A_TOWN_NAMES_CLICK_ON_NAME :{BLACK}Linnanimed - vajuta linnanimele, et viia vaade linnale
STR_200B_CENTER_THE_MAIN_VIEW_ON :{BLACK}Vaate viimine linnale
@@ -1909,7 +1922,7 @@
##id 0x2800
STR_LANDSCAPING :Maapinna kujundamine
STR_2800_PLANT_TREES :Puude istutamine
-STR_2801_PLACE_SIGN :Paigalda silt
+STR_2801_PLACE_SIGN :Sildi paigaldamine
STR_2802_TREES :{WHITE}Puud
STR_2803_TREE_ALREADY_HERE :{WHITE}...siin on juba puu olemas
STR_2804_SITE_UNSUITABLE :{WHITE}...ebasobiv koht
@@ -1943,8 +1956,8 @@
STR_300D_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Liiga lähedal teisele lennuväljale
STR_300E_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Lennuväli tuleb eelnevalt lammutada
-STR_3030_RENAME_STATION_LOADING :Jaama nime muutmine
-STR_3031_CAN_T_RENAME_STATION :{WHITE}Jaama nime ei saa muuta...
+STR_3030_RENAME_STATION_LOADING :Jaama nime vahetamine
+STR_3031_CAN_T_RENAME_STATION :{WHITE}Jaama nime ei saa vahetada...
STR_3032_RATINGS :{BLACK}Hinnangud
STR_3033_ACCEPTS :{BLACK}Võtab vastu
STR_3034_LOCAL_RATING_OF_TRANSPORT :{BLACK}Kohaliku veoteenuse hinnang:
@@ -2002,7 +2015,7 @@
STR_3063_SHIP_DOCK :Laevasadam
STR_3064_HIGHLIGHT_COVERAGE_AREA :{BLACK}Lülita sisse jaama mõjupiirkonna näitamine
STR_3065_DON_T_HIGHLIGHT_COVERAGE :{BLACK}Lülita välja jaama mõjupiirkonna näitamine
-STR_3066_COVERAGE_AREA_HIGHLIGHT :{BLACK}Näita mõjupiirkonda
+STR_3066_COVERAGE_AREA_HIGHLIGHT :{BLACK}Mõjupiirkonna näitamine
STR_3068_DOCK :{WHITE}Sadam
STR_3069_BUOY :Poi
STR_306A_BUOY_IN_THE_WAY :{WHITE}...poi on ees
@@ -2049,6 +2062,7 @@
STR_400F_SELECT_SCENARIO_GREEN_PRE :{BLACK}Vali valmis kaart (roheline), eelseadistatud mäng (sinine), või juhusliku kaardiga uus mäng
STR_4010_GENERATE_RANDOM_NEW_GAME :Tekita suvaline kaart
STR_LOAD_HEIGHTMAP :{WHITE}Laadi kõrguskaart
+STR_SAVE_OSKTITLE :{BLACK}Sisesta salvestatavale mängule nimi
##id 0x4800
STR_4800_IN_THE_WAY :{WHITE}{STRING} on ees
@@ -2738,6 +2752,74 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Rahvas rõõmustab. . .{}{STATION} jaama saabus esimene rong!
STR_8802_DETAILS :{WHITE}{VEHICLE} (üksikasjad)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Rong on ees
+STR_ORDER_GO_TO :Mine
+STR_ORDER_GO_NON_STOP_TO :Mine peatumata
+STR_ORDER_GO_VIA :Mine läbi
+STR_ORDER_GO_NON_STOP_VIA :Mine peatumata läbi
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Laadi, kui saadaval
+STR_ORDER_DROP_FULL_LOAD_ALL :Laadi kõiki kaupu täis
+STR_ORDER_DROP_FULL_LOAD_ANY :Laadi ühte kaupa täis
+STR_ORDER_DROP_NO_LOADING :Mitte laadida
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Kui võetakse vastu, laadi maha
+STR_ORDER_DROP_UNLOAD :Laadi kõik maha
+STR_ORDER_DROP_TRANSFER :Laadi ümber
+STR_ORDER_DROP_NO_UNLOADING :Mitte maha laadida
+STR_ORDER_FULL_LOAD :(Laaditakse täis)
+STR_ORDER_FULL_LOAD_ANY :(Ühte kaupa laaditakse täis)
+STR_ORDER_NO_LOAD :(Ei laadita)
+STR_ORDER_UNLOAD :(Laaditakse tühjaks ja laadung võetakse peale)
+STR_ORDER_UNLOAD_FULL_LOAD :(Laaditakse tühjaks ja oodatakse täislaadungit)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Laaditakse tühjaks ja oodatakse suvalist täislaadungit)
+STR_ORDER_UNLOAD_NO_LOAD :(Laaditakse tühjaks ja jäetakse tühjaks)
+STR_ORDER_TRANSFER :(Laaditakse ümber ja laadung võetakse peale)
+STR_ORDER_TRANSFER_FULL_LOAD :(Laaditakse ümber ja oodatakse täislaadungit)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Laaditakse ümber ja oodatakse suvalist täislaadungit)
+STR_ORDER_TRANSFER_NO_LOAD :(Laaditakse ümber ja jäetakse tühjaks)
+STR_ORDER_NO_UNLOAD :(Maha ei laadita ja laadung võetakse peale)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(Maha ei laadita ja oodatakse täislaadungit)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Maha ei laadita ja oodatakse suvalist täislaadungit)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Valitud sihtpunktis peatumise protseduuri muutmine
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Valitud sihtpunktis pealelaadimise protseduuri muutmine
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Valitud sihtpunktis mahalaadimise protseduuri muutmine
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Täpsustatud käskluse lisamine
+STR_ORDER_GO_TO_NEAREST_DEPOT :Mine lähimasse depoosse
+STR_ORDER_GO_TO_NEAREST_HANGAR :Mine lähimasse angaari
+STR_ORDER_NEAREST_DEPOT :lähim
+STR_ORDER_NEAREST_HANGAR :lähim angaar
+STR_ORDER_SERVICE_AT :Teenindamine
+STR_ORDER_SERVICE_NON_STOP_AT :Teenindamine ilma peatumata
+STR_ORDER_TRAIN_DEPOT :rongidepoos
+STR_ORDER_ROAD_DEPOT :sõidukidepoos
+STR_ORDER_SHIP_DEPOT :laevadepoos
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} angaar
+
+STR_ORDER_CONDITIONAL :Tinglik sihtpunkti vahetamine
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Sõiduki andmed, millel sihtpunkti vahetamine põhineb
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Kuidas sõiduki andmeid antud väärtusega võrreldakse
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Väärtus, millega sõiduki andmeid võrreldakse
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Sisesta väärtus, millega võrrelda
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Koorem prontsentides
+STR_ORDER_CONDITIONAL_RELIABILITY :Tehnoseisund
+STR_ORDER_CONDITIONAL_MAX_SPEED :Tippkiirus
+STR_ORDER_CONDITIONAL_AGE :Sõiduki vanus (aastates)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Vajab hooldust
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Alati
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :on võrdne
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :pole võrdne
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :on vähem, kui
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :on võrdne või vähem, kui
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :on rohkem, kui
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :on võrdne või rohkem, kui
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :on tõene
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :on väär
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Mine sihtpunkti {COMMA}
+STR_CONDITIONAL_NUM :Mine sihtpunkti {COMMA}, kui {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Mine sihtpunkti{COMMA}, kui {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Sõitmine (sõiduplaanita)
STR_TIMETABLE_TRAVEL_FOR :Sõida {STRING}
@@ -2776,7 +2858,7 @@
STR_CLONE_TRAIN :{BLACK}Klooni rong
STR_CLONE_TRAIN_INFO :{BLACK}See ehitab koopia rongist koos kõikide vagunitega. CTRL-klikk jagab sihtpunkte
STR_CLONE_TRAIN_DEPOT_INFO :{BLACK}See ehitab koopia rongist koos kõikide vagunitega. Vajuta sellele nuppule, ning seejärel rongile depoo sees või väljas. CTRL-klikk jagab sihtpunkte
-STR_8820_RENAME :{BLACK}Nime muutmine
+STR_8820_RENAME :{BLACK}Nimevahetus
STR_8823_SKIP :{BLACK}Jäta vahele
STR_8824_DELETE :{BLACK}Kustuta
STR_8826_GO_TO :{BLACK}Mine
@@ -2785,6 +2867,8 @@
STR_REFIT_ORDER :(Taasseadista {STRING})
STR_TIMETABLE_VIEW :{BLACK}Sõiduplaan
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Näita sõiduplaani
+STR_ORDER_VIEW :{BLACK}Korraldused
+STR_ORDER_VIEW_TOOLTIP :{BLACK}Lülita korralduste vaatesse
STR_8829_ORDERS :{WHITE}{VEHICLE} (käsud)
STR_882A_END_OF_ORDERS :{SETX 10}- - Sihtpunktide lõpp - -
STR_SERVICE :{BLACK}Hooldus
@@ -2793,6 +2877,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Väärtus: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Veose ümberlaadimine
+STR_LEAVING :{LTBLUE}Lahkub
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Rong peab olema depoos peatatud
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Rongi ei saa depoosse saata...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Pole ruumi käskudeks
@@ -2819,7 +2904,7 @@
STR_8842_CENTER_MAIN_VIEW_ON_TRAIN :{BLACK}Keskenda põhivaade rongidepoo kohale
STR_8843_TRAIN_VEHICLE_SELECTION :{BLACK}Nimekiri raudteesõidukitest - andmete saamiseks klõpsa raudteesõidukile
STR_8844_BUILD_THE_HIGHLIGHTED_TRAIN :{BLACK}Ehita valitud raudteesõiduk
-STR_8845_RENAME_TRAIN_VEHICLE_TYPE :{BLACK}Muuda raudteesõiduki tüübinime
+STR_8845_RENAME_TRAIN_VEHICLE_TYPE :{BLACK}Vaheta raudteesõiduki tüübinime
STR_8846_CURRENT_TRAIN_ACTION_CLICK :{BLACK}Praegune rongi tegevus - vajuta siia et peatada/käivitada rong
STR_8847_SHOW_TRAIN_S_ORDERS :{BLACK}Näita rongi sihtpunkte
STR_8848_CENTER_MAIN_VIEW_ON_TRAIN :{BLACK}Vaate viimine rongi asukohale
@@ -2833,7 +2918,7 @@
STR_8850_SHOW_DETAILS_OF_TRAIN_VEHICLES :{BLACK}Näita täpsemat infot rongivagunite kohta
STR_8851_SHOW_CAPACITIES_OF_EACH :{BLACK}Näita iga rongivaguni kandevõimet
STR_SHOW_TOTAL_CARGO :{BLACK}Näita kogu rongi mahtu, jagatud kauba tüübi järgi
-STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Sihtpunktide nimekiri - vajuta käsul et see valida. CTRL + klik kerib jaama juurde
+STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Sihtpunktide nimekiri. Valimiseks klõpsa sihtpunktil. CTRL + klikk keskendab vaateakna jaama peale.
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Jäta praegune järjestus vahele ja alusta järgmisega. CTRL + klõps jätab vahele kuni valitud järjestuseni
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Kustuta valitud käsk
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Lisa uus käsk nimekirja lõppu, või enne valitud käsku
@@ -2858,8 +2943,8 @@
STR_8867_NAME_TRAIN :{BLACK}Rongi nimi
STR_8868_TRAIN_CRASH_DIE_IN_FIREBALL :{BLACK}{BIGFONT}RONGIKOKKUPÕRGE!{}{COMMA} surid tules peale kokkusõitmist
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Ei saa rongi ümber pöörata.
-STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Muuda rongivaguni tüübinime
-STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Raudteesõiduki tüübinime ei saa muuta...
+STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Vaheta rongivaguni tüübinime
+STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Raudteesõiduki tüübinime ei saa vahetada...
STR_CLEAR_TIME :{BLACK}Tühista aeg
STR_RESET_LATENESS :{BLACK}Tühista hilinemisloendur
@@ -2943,10 +3028,10 @@
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Mootorsõiduki kokkupõrge rongiga!{}{COMMA} inimest suri õnnetuses
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Transpordivahendit ei saa ümber pöörata...
STR_ONLY_TURN_SINGLE_UNIT :{WHITE}Mitmest osast koosnevaid veovahendeid ei saa ümber pöörata
-STR_9034_RENAME :{BLACK}Nime muutmine
-STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Muuda mootorsõiduki tüübinime
-STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Muuda mootorsõiduki tüübinime
-STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Mootorsõiduki tüübinime ei saa muuta...
+STR_9034_RENAME :{BLACK}Nimevahetus
+STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Vaheta mootorsõiduki tüübinime
+STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Vaheta mootorsõiduki tüübinime
+STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Mootorsõiduki tüübinime ei saa vahetada...
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Seadista mootorsõidukit kandmaks teist tüüpi veost
STR_REFIT_ROAD_VEHICLE :{BLACK}Muuda mootorsõiduki seadistust
@@ -3009,10 +3094,10 @@
STR_9833_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Rahvas rõõmustab . . .{}{STATION} terminali saabus esimene laev!
STR_9834_POSITION_BUOY_WHICH_CAN :{BLACK}Raja teemärgisena kasutatav poi
STR_9835_CAN_T_POSITION_BUOY_HERE :{WHITE}Poid ei saa siia asetada...
-STR_9836_RENAME :{BLACK}Nime muutmine
-STR_9837_RENAME_SHIP_TYPE :{BLACK}Nimeta laeva tüüp ümber
-STR_9838_RENAME_SHIP_TYPE :{WHITE}Nimeta laeva tüüp ümber
-STR_9839_CAN_T_RENAME_SHIP_TYPE :{WHITE}Ei saa laeva tüüpi ümber nimetada...
+STR_9836_RENAME :{BLACK}Nimevahetus
+STR_9837_RENAME_SHIP_TYPE :{BLACK}Laeva tüübinime vahetamine
+STR_9838_RENAME_SHIP_TYPE :{WHITE}Laeva tüübinime vahetamine
+STR_9839_CAN_T_RENAME_SHIP_TYPE :{WHITE}Laeva tüübinime ei saa vahetada...
STR_983A_REFIT_CARGO_SHIP_TO_CARRY :{BLACK}Seadista laev ümber teise kaubatüübi jaoks
STR_983B_REFIT :{WHITE}{VEHICLE} (Seadista ümber)
STR_983C_REFIT_SHIP :{BLACK}Seadista laev ümber
@@ -3080,10 +3165,10 @@
STR_A034_PLANE_CRASH_DIE_IN_FIREBALL :{BLACK}{BIGFONT}Lennuõnnetus!{}{COMMA} surid tules {STATION}s
STR_PLANE_CRASH_OUT_OF_FUEL :{BLACK}{BIGFONT}Lennuõnnetus!{}Lennukil lõppes kütus, {COMMA} surid tules!
STR_A036 :{TINYFONT}{BLACK}{STATION}
-STR_A037_RENAME :{BLACK}Nime muutmine
-STR_A038_RENAME_AIRCRAFT_TYPE :{BLACK}Nimeta lennuki tüüp ümber
-STR_A039_RENAME_AIRCRAFT_TYPE :{WHITE}Nimeta lennuki tüüp ümber
-STR_A03A_CAN_T_RENAME_AIRCRAFT_TYPE :{WHITE}Ei saa lennuki tüüpi ümber nimetada...
+STR_A037_RENAME :{BLACK}Nimevahetus
+STR_A038_RENAME_AIRCRAFT_TYPE :{BLACK}Lennuki tüübinime vahetamine
+STR_A039_RENAME_AIRCRAFT_TYPE :{WHITE}Lennuki tüübinime vahetamine
+STR_A03A_CAN_T_RENAME_AIRCRAFT_TYPE :{WHITE}Lennuki tüübinime ei saa vahetada...
STR_A03B_REFIT_AIRCRAFT_TO_CARRY :{BLACK}Seadista lennuk teistsuguse kauba kandmiseks ümber
STR_A03C_REFIT :{WHITE}{VEHICLE} (Seadista ümber)
STR_A03D_REFIT_AIRCRAFT :{BLACK}Seadista lennuk ümber
@@ -3329,6 +3414,7 @@
STR_WORLD_GENERATION_CAPTION :{WHITE}Maailma genereerimine
STR_RANDOM_SEED :{BLACK}Juhuarv:
STR_RANDOM_SEED_HELP :{BLACK}Klõpsa juhuarvu sisestamiseks
+STR_RANDOM_SEED_OSKTITLE :{BLACK}Sisesta suvaline arv
STR_LAND_GENERATOR :{BLACK}Maa generaator:
STR_TREE_PLACER :{BLACK}Puude algoritm:
STR_HEIGHTMAP_ROTATION :{BLACK}Kõrgustekaardi pööre:
@@ -3421,6 +3507,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Vaheta läbipaistvust rajatistel, nagu: majakad, antennid ja võimalik, et tulevikus ka silmailu
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Õhuliinide läbipaistvuse vahetamine. CTRL-klahvi toel klõpsamine lukustab.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Vaheta laadimisnäidikute läbipaistvust
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Muuda esemed nähtamatuks, mitte läbipaistvaks
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
@@ -3448,12 +3535,12 @@
STR_GROUP_ROADVEH_CAPTION :{WHITE}{GROUP} - {COMMA} Mootorsõiduk{P "" id}
STR_GROUP_SHIPS_CAPTION :{WHITE}{GROUP} - {COMMA} Laev{P "" ad}
STR_GROUP_AIRCRAFTS_CAPTION :{WHITE}{GROUP} - {COMMA} Lennuk{P "" id}
-STR_GROUP_RENAME_CAPTION :{BLACK}Muuda grupi nime
+STR_GROUP_RENAME_CAPTION :{BLACK}Grupi nime vahetamine
STR_GROUP_REPLACE_CAPTION :{WHITE}Vaheta kõik grupi "{GROUP}" sõidukid
STR_GROUP_CAN_T_CREATE :{WHITE}Ei saa üksust luua...
STR_GROUP_CAN_T_DELETE :{WHITE}Ei saa seda üksust eemaldada...
-STR_GROUP_CAN_T_RENAME :{WHITE}Ei saa seda üksust ümber nimetada...
+STR_GROUP_CAN_T_RENAME :{WHITE}Grupi nime ei saa vahetada...
STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Ei saa kõiki sõidukeid sellest grupist eemaldada...
STR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Ei saa sõidukit siia üksusesse lisada...
STR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Ei saa jagatud sõidukeid siia üksusesse lisada...
@@ -3461,7 +3548,7 @@
STR_GROUPS_CLICK_ON_GROUP_FOR_TIP :{BLACK}Grupid - Klõpsa grupil et kõiki seal olevaid sõidukeid järjestada
STR_GROUP_CREATE_TIP :{BLACK}Klõpsa grupi loomiseks
STR_GROUP_DELETE_TIP :{BLACK}Eemalda valitud üksus
-STR_GROUP_RENAME_TIP :{BLACK}Nimeta valitud üksus ümber
+STR_GROUP_RENAME_TIP :{BLACK}Valitud grupi nime vahetamine
STR_GROUP_REPLACE_PROTECTION_TIP :{BLACK}Klõpsa, et seda üksust üldise iseväljavahetuse eest kaitsta
STR_COMPANY_NAME :{COMPANY}
@@ -3476,6 +3563,7 @@
#### Improved sign GUI
STR_NEXT_SIGN_TOOLTIP :{BLACK}Mine järgmise märgi juurde
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Mine eelmise märgi juurde
+STR_SIGN_OSKTITLE :{BLACK}Sisesta sildile nimi
########
@@ -3548,3 +3636,8 @@
STR_DRAG_SIGNALS_DENSITY_DECREASE_TIP :{BLACK}Vähenda signalisatsioonide sagedust lohistades
STR_DRAG_SIGNALS_DENSITY_INCREASE_TIP :{BLACK}Suurenda signalisatsioonide sagedust lohistades
########
+
+############ on screen keyboard
+STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ .
+STR_OSK_KEYBOARD_LAYOUT_CAPS :~!@#$%^&*()_+|QWERTYUIOP{{}}ASDFGHJKL:" ZXCVBNM<>? .
+########
--- a/src/lang/french.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/french.txt Fri Apr 25 15:20:48 2008 +0000
@@ -19,6 +19,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} venant de {STATION})
STR_000C_ACCEPTS :{BLACK}Accepte: {WHITE}
STR_000D_ACCEPTS :{BLACK}Accepte: {GOLD}
+STR_SUPPLIES :{BLACK}Fournit: {GOLD}
STR_000E :
STR_000F_PASSENGERS :Passagers
STR_0010_COAL :Charbon
@@ -378,6 +379,7 @@
STR_SORT_BY_MAX_SPEED :Vitesse maximum
STR_SORT_BY_MODEL :Modèle
STR_SORT_BY_VALUE :Valeur
+STR_SORT_BY_LENGTH :Longueur
STR_SORT_BY_FACILITY :Type de station
STR_SORT_BY_WAITING :Marchandise en attente
STR_SORT_BY_RATING_MAX :Notation
@@ -1239,8 +1241,8 @@
STR_HEADING_FOR_WAYPOINT :{LTBLUE}En route pour {WAYPOINT}
STR_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}En route pour {WAYPOINT}, {VELOCITY}
-STR_GO_TO_WAYPOINT :Passant par {WAYPOINT}
-STR_GO_NON_STOP_TO_WAYPOINT :Aller sans-arrêt via {WAYPOINT}
+STR_GO_TO_WAYPOINT :Passer par {WAYPOINT}
+STR_GO_NON_STOP_TO_WAYPOINT :Passer sans arrêt par {WAYPOINT}
STR_WAYPOINTNAME_CITY :Point de contrôle {TOWN}
STR_WAYPOINTNAME_CITY_SERIAL :Point de contrôle {TOWN} #{COMMA}
@@ -1363,6 +1365,8 @@
STR_NETWORK_GAME_NAME_TIP :{BLACK}Nom de la partie
STR_NETWORK_INFO_ICONS_TIP :{BLACK}Langue, version du serveur, etc.
STR_NETWORK_CLICK_GAME_TO_SELECT :{BLACK}Cliquer sur une partie de la liste pour la sélectionner
+STR_NETWORK_LAST_JOINED_SERVER :{BLACK}Le dernier serveur utilisé:
+STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}Cliquer pour choisir le dernier serveur utilisé
STR_NETWORK_FIND_SERVER :{BLACK}Trouver un serveur
STR_NETWORK_FIND_SERVER_TIP :{BLACK}Cherche sur le réseau un serveur
@@ -2652,6 +2656,76 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Les habitants célèbrent{}l'arrivée du premier train à {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Détails)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Train présent
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Aller à
+STR_ORDER_GO_NON_STOP_TO :Aller sans arrêt à
+STR_ORDER_GO_VIA :Passer par
+STR_ORDER_GO_NON_STOP_VIA :Passer sans arrêt par
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Charger si possible
+STR_ORDER_DROP_FULL_LOAD_ALL :Chargement complet
+STR_ORDER_DROP_FULL_LOAD_ANY :Chargement complet par un seul type
+STR_ORDER_DROP_NO_LOADING :Pas de chargement
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Décharger si accepté
+STR_ORDER_DROP_UNLOAD :Décharger tout
+STR_ORDER_DROP_TRANSFER :Transférer
+STR_ORDER_DROP_NO_UNLOADING :Pas de déchargement
+STR_ORDER_FULL_LOAD :(Charger complètement)
+STR_ORDER_FULL_LOAD_ANY :(Charger complètement par un seul type)
+STR_ORDER_NO_LOAD :(Pas de chargement)
+STR_ORDER_UNLOAD :(Décharger)
+STR_ORDER_UNLOAD_FULL_LOAD :(Décharger et attendre pleine charge)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Décharger et attendre pleine charge par un seul type)
+STR_ORDER_UNLOAD_NO_LOAD :(Décharger et laisser vide)
+STR_ORDER_TRANSFER :(Transférer et charger)
+STR_ORDER_TRANSFER_FULL_LOAD :(Transférer et attendre pleine charge)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transférer et attendre pleine charge par un seul type)
+STR_ORDER_TRANSFER_NO_LOAD :(Transférer et laisser vide)
+STR_ORDER_NO_UNLOAD :(Charger sans décharger)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(Attendre pleine charge sans décharger)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Attendre pleine charge par un type sans décharger)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Modifier le comportement d'arrêt de l'ordre sélectionné
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Modifier le comportement de chargement de l'ordre sélectionné
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Modifier le comportement de déchargement de l'ordre sélectionné
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Insérer un ordre avancé
+STR_ORDER_GO_TO_NEAREST_DEPOT :Aller au dépôt le plus proche
+STR_ORDER_GO_TO_NEAREST_HANGAR :Aller au hangar le plus proche
+STR_ORDER_NEAREST_DEPOT :le plus proche
+STR_ORDER_NEAREST_HANGAR :hangar le plus proche
+STR_ORDER_SERVICE_AT :Entretien au
+STR_ORDER_SERVICE_NON_STOP_AT :Entretien sans arrêt au
+STR_ORDER_TRAIN_DEPOT :dépôt ferroviaire
+STR_ORDER_ROAD_DEPOT :dépôt routier
+STR_ORDER_SHIP_DEPOT :dépôt naval
+STR_GO_TO_DEPOT :{STRING} {2:STRING} de {1:TOWN}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {2:STRING} {1:STRING}
+STR_GO_TO_HANGAR :{STRING} hangar de {STATION}
+
+STR_ORDER_CONDITIONAL :Saut conditionnel d'ordre
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Données du véhicule servant de base au saut
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Comment comparer les données du véhicule à la valeur donnée
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}La valeur à comparer aux données du véhicule
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Entrer la valeur à comparer
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Pourcentage de chargement
+STR_ORDER_CONDITIONAL_RELIABILITY :Fiabilité
+STR_ORDER_CONDITIONAL_MAX_SPEED :Vitesse maximum
+STR_ORDER_CONDITIONAL_AGE :Âge du véhicule (années)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Entretien nécessaire
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Toujours
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :est égal à
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :n'est pas égal à
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :est inférieur à
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :est inférieur ou égal à
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :est supérieur à
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :est supérieur ou égal à
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :est vrai
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :est faux
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Sauter à l'ordre {COMMA}
+STR_CONDITIONAL_NUM :Sauter à l'ordre {COMMA} quand {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Sauter à l'ordre {COMMA} quand {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Voyager (sans horaires)
STR_TIMETABLE_TRAVEL_FOR :Voyager pendant {STRING}
@@ -2709,6 +2783,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Valeur: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Chargement/déchargement
+STR_LEAVING :{LTBLUE}Départ
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Le train doit être stoppé dans un dépôt
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Impossible d'envoyer le train au dépôt...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Plus de places pour les ordres
@@ -3338,6 +3413,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Transparence des structures telles que phares et antennes. Ctrl-clic pour vérouiller.
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Transparence des caténaires. Ctrl-clic pour vérouiller.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Transparence pour les indicateurs de chargement. Ctrl-clic pour vérouiller.
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Basculer transparence/invisibilité
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
--- a/src/lang/icelandic.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/icelandic.txt Fri Apr 25 15:20:48 2008 +0000
@@ -1,7 +1,7 @@
##name Icelandic
##ownname Íslenska
##isocode is_IS
-##plural 0
+##plural 9
##gender karlkyn kvenkyn hvorugkyn
#
--- a/src/lang/italian.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/italian.txt Fri Apr 25 15:20:48 2008 +0000
@@ -20,6 +20,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} in viaggio da {STATION})
STR_000C_ACCEPTS :{BLACK}Accetta: {WHITE}
STR_000D_ACCEPTS :{BLACK}Accetta: {GOLD}
+STR_SUPPLIES :{BLACK}Fornisce: {GOLD}
STR_000E :
STR_000F_PASSENGERS :{G=m}Passeggeri
STR_0010_COAL :{G=m}Carbone
@@ -379,6 +380,7 @@
STR_SORT_BY_MAX_SPEED :Velocità massima
STR_SORT_BY_MODEL :Modello
STR_SORT_BY_VALUE :Valore
+STR_SORT_BY_LENGTH :Lunghezza
STR_SORT_BY_FACILITY :Tipo di stazione
STR_SORT_BY_WAITING :Merci in attesa
STR_SORT_BY_RATING_MAX :Valutazione servizi
@@ -1043,7 +1045,7 @@
STR_CONFIG_PATCHES_LONGDATE :{LTBLUE}Mostra sempre la data lunga nella barra di stato: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SIGNALSIDE :{LTBLUE}Mostra i segnali sul lato di guida: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SHOWFINANCES :{LTBLUE}Mostra la finestra delle finanze alla fine dell'anno: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_NEW_NONSTOP :{LTBLUE}Gestisci la funzione 'non-stop' come in TTDPatch: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_NEW_NONSTOP :{LTBLUE}Gestisci la funzione 'no-stop' come in TTDPatch: {ORANGE}{STRING}
STR_CONFIG_PATCHES_ROADVEH_QUEUE :{LTBLUE}Accodamento automezzi fuori da una stazione occupata: {ORANGE}{STRING}
STR_CONFIG_PATCHES_AUTOSCROLL :{LTBLUE}Scorri la visuale quando il mouse è su un bordo: {ORANGE}{STRING}
STR_CONFIG_PATCHES_BRIBE :{LTBLUE}Consenti la corruzione dell'autorità locale: {ORANGE}{STRING}
@@ -1241,7 +1243,7 @@
STR_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}Diretto a {WAYPOINT}, {VELOCITY}
STR_GO_TO_WAYPOINT :Procedi attraverso {WAYPOINT}
-STR_GO_NON_STOP_TO_WAYPOINT :Procedi non-stop attraverso {WAYPOINT}
+STR_GO_NON_STOP_TO_WAYPOINT :Procedi no-stop attraverso {WAYPOINT}
STR_WAYPOINTNAME_CITY :Waypoint di {TOWN}
STR_WAYPOINTNAME_CITY_SERIAL :Waypoint di {TOWN} #{COMMA}
@@ -1364,6 +1366,8 @@
STR_NETWORK_GAME_NAME_TIP :{BLACK}Nome della partita
STR_NETWORK_INFO_ICONS_TIP :{BLACK}Lingua, versione del server, etc.
STR_NETWORK_CLICK_GAME_TO_SELECT :{BLACK}Fare clic su una partita in elenco per selezionarla
+STR_NETWORK_LAST_JOINED_SERVER :{BLACK}L'ultimo server utilizzato.
+STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}Fare clic per selezionare il server su cui si è giocato l'ultima volta
STR_NETWORK_FIND_SERVER :{BLACK}Trova server
STR_NETWORK_FIND_SERVER_TIP :{BLACK}Cerca un server sulla rete
@@ -2653,6 +2657,76 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}I cittadini festeggiano . . .{}Il primo treno arriva a {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Dettagli)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Treno di mezzo
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Vai a
+STR_ORDER_GO_NON_STOP_TO :Vai non-stop a
+STR_ORDER_GO_VIA :Procedi verso
+STR_ORDER_GO_NON_STOP_VIA :Procedi non-stop verso
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Carica se possibile
+STR_ORDER_DROP_FULL_LOAD_ALL :Attendi pieno carico
+STR_ORDER_DROP_FULL_LOAD_ANY :Attendi qualsiasi carico
+STR_ORDER_DROP_NO_LOADING :Non caricare
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Scarica se accettato
+STR_ORDER_DROP_UNLOAD :Scarica tutto
+STR_ORDER_DROP_TRANSFER :Trasferisci
+STR_ORDER_DROP_NO_UNLOADING :Non scaricare
+STR_ORDER_FULL_LOAD :(Attendi pieno carico)
+STR_ORDER_FULL_LOAD_ANY :(Attendi qualsiasi carico)
+STR_ORDER_NO_LOAD :(Non caricare)
+STR_ORDER_UNLOAD :(Scarica)
+STR_ORDER_UNLOAD_FULL_LOAD :(Scarica e attendi pieno carico)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Scarica e attendi qualsiasi carico)
+STR_ORDER_UNLOAD_NO_LOAD :(Scarica e parti vuoto)
+STR_ORDER_TRANSFER :(Trasferisci e carica)
+STR_ORDER_TRANSFER_FULL_LOAD :(Trasferisci e attendi pieno carico)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Trasferisci e attendi qualsiasi carico)
+STR_ORDER_TRANSFER_NO_LOAD :(Trasferisci e parti vuoto)
+STR_ORDER_NO_UNLOAD :(Non scaricare e carica)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(Non scaricare e attendi pieno carico)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Non scaricare e attendi qualsiasi carico)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Cambia la modalità di fermata alle stazioni intermedie relativa all'ordine selezionato
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Cambia la modalità di caricamento alla stazione indicata nell'ordine selezionato
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Cambia la modalità di scaricamento alla stazione indicata nell'ordine selezionato
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Inserisce un ordine avanzato
+STR_ORDER_GO_TO_NEAREST_DEPOT :Vai al deposito più vicino
+STR_ORDER_GO_TO_NEAREST_HANGAR :Vai all'hangar più vicino
+STR_ORDER_NEAREST_DEPOT :più vicino
+STR_ORDER_NEAREST_HANGAR :più vicino Hangar
+STR_ORDER_SERVICE_AT :Manutenzione al
+STR_ORDER_SERVICE_NON_STOP_AT :Manutenzione no-stop al
+STR_ORDER_TRAIN_DEPOT :Deposito ferroviario
+STR_ORDER_ROAD_DEPOT :Deposito automezzi
+STR_ORDER_SHIP_DEPOT :Deposito navale
+STR_GO_TO_DEPOT :{0:STRING} {2:STRING} di {1:TOWN}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING}l'Hangar di {STATION}
+
+STR_ORDER_CONDITIONAL :Salto condizionale a ordine
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Dato del veicolo sul quale basare il salto
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Modalità di confronto del dato del veicolo con il valore inserito
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Valore col quale confrontare il dato del veicolo
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Inserire il valore da confrontare
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Percentuale di carico
+STR_ORDER_CONDITIONAL_RELIABILITY :Affidabilità
+STR_ORDER_CONDITIONAL_MAX_SPEED :Velocità massima
+STR_ORDER_CONDITIONAL_AGE :Età del veicolo (anni)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Manutenzione richiesta
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Sempre
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :è uguale a
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :è diverso da
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :è minore di
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :è minore o uguale a
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :è maggiore di
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :è maggiore o uguale a
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :è vero
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :è falso
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Salta all'ordine {COMMA}
+STR_CONDITIONAL_NUM :Salta all'ordine {COMMA} se {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Salta all'ordine {COMMA} se {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viaggia senza orario
STR_TIMETABLE_TRAVEL_FOR :Viaggia per {STRING}
@@ -2710,6 +2784,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Valore: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Caricamento / Scaricamento
+STR_LEAVING :{LTBLUE}In partenza
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Il treno deve essere fermo in un deposito
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Impossibile mandare il treno al deposito...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Spazio per gli ordini terminato
@@ -3339,6 +3414,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Attiva/disattiva la trasparenza di strutture come fari e antenne. CTRL+clic per bloccare.
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Attiva/disattiva la trasparenza delle catenarie. CTRL+clic per bloccare.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Attiva/disattiva la trasparenza degli indicatori di caricamento. CTRL+clic per bloccare.
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Rendi gli oggetti invisibili invece che trasparenti
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
@@ -3394,7 +3470,7 @@
#### Improved sign GUI
STR_NEXT_SIGN_TOOLTIP :{BLACK}Va al cartello successivo
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Va al cartello precedente
-STR_SIGN_OSKTITLE :{BLACK}Inserire il nome del cartello
+STR_SIGN_OSKTITLE :{BLACK}Inserire il testo del cartello
########
@@ -3469,6 +3545,6 @@
########
############ on screen keyboard
-STR_OSK_KEYBOARD_LAYOUT :\1234567890'ìùqwertyuiopè+asdfghjklòà zxcvbnm,.- .
-STR_OSK_KEYBOARD_LAYOUT_CAPS :|!"£$%&/()=?^QWERTYUIOPé*§ASDFGHJKLç° ZXCVBNM;:_ .
+STR_OSK_KEYBOARD_LAYOUT :\1234567890'ì qwertyuiopè+asdfghjklòàù<zxcvbnm,.- .
+STR_OSK_KEYBOARD_LAYOUT_CAPS :|!"£$%&/()=?^ QWERTYUIOPé*ASDFGHJKLç°§>ZXCVBNM;:_ .
########
--- a/src/lang/russian.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/russian.txt Fri Apr 25 15:20:48 2008 +0000
@@ -20,6 +20,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} транзитом из {STATION})
STR_000C_ACCEPTS :{BLACK}Принимаются: {WHITE}
STR_000D_ACCEPTS :{BLACK}Принимаются: {GOLD}
+STR_SUPPLIES :{BLACK}Принимает: {GOLD}
STR_000E :
STR_000F_PASSENGERS :Пассажиры
STR_0010_COAL :Уголь
@@ -1173,6 +1174,7 @@
STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :улучшенный алгоритм
STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :решёткой 2x2
STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID :решёткой 3x3
+STR_CONFIG_PATCHES_TOWN_LAYOUT_RANDOM :случайно
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}Положение главной панели инструментов: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :слева
@@ -1352,6 +1354,7 @@
STR_NETWORK_PLAYER_NAME :{BLACK}Имя игрока:
STR_NETWORK_ENTER_NAME_TIP :{BLACK}Это имя, под которым вы представитесь другим игрокам
+STR_NETWORK_PLAYER_NAME_OSKTITLE :{BLACK}Введите ваше имя
STR_NETWORK_CONNECTION :{BLACK}Соединение:
STR_NETWORK_CONNECTION_TIP :{BLACK}Искать сервера в локальной сети, или в Интернете
@@ -1362,6 +1365,8 @@
STR_NETWORK_GAME_NAME_TIP :{BLACK}Название игры
STR_NETWORK_INFO_ICONS_TIP :{BLACK}Язык, версия сервера и т.п.
STR_NETWORK_CLICK_GAME_TO_SELECT :{BLACK}Выберите игру из списка
+STR_NETWORK_LAST_JOINED_SERVER :{BLACK}Последний сервер, к которому вы подключались:
+STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}Нажмите для выбора последнего сервера
STR_NETWORK_FIND_SERVER :{BLACK}Обновить
STR_NETWORK_FIND_SERVER_TIP :{BLACK}Обновить список серверов, которые сейчас есть в сети
@@ -1395,6 +1400,7 @@
STR_NETWORK_NEW_GAME_NAME :{BLACK}Название игры:
STR_NETWORK_NEW_GAME_NAME_TIP :{BLACK}Название игры, которое игроки увидят в меню выбора сетевой игры
+STR_NETWORK_NEW_GAME_NAME_OSKTITLE :{BLACK}Введите ваше имя для сетевой игры
STR_NETWORK_SET_PASSWORD :{BLACK}Установить пароль
STR_NETWORK_PASSWORD_TIP :{BLACK}Защитите вашу игру паролем, если вы не хотите, чтобы к ней могли подключиться все желающие
STR_NETWORK_SELECT_MAP :{BLACK}Выбор карты:
@@ -1556,6 +1562,7 @@
STR_NETWORK_CHAT_TO_CLIENT :[Лично] к {STRING}: {GRAY}{STRING}
STR_NETWORK_CHAT_ALL_CAPTION :[Всем] :
STR_NETWORK_CHAT_ALL :[Всем] {STRING}: {GRAY}{STRING}
+STR_NETWORK_CHAT_OSKTITLE :{BLACK}Введите текст для сетевого сообщения
STR_NETWORK_NAME_CHANGE :изменил свое имя на
STR_NETWORK_SERVER_SHUTDOWN :{WHITE} Сервер закрыл сессию
STR_NETWORK_SERVER_REBOOT :{WHITE} Сервер перезапускается...{}Пожалуйста, подождите...
@@ -1959,6 +1966,7 @@
STR_400F_SELECT_SCENARIO_GREEN_PRE :{BLACK}Выбрать сценарий(зеленый), предустановленную новую игру (синий) или случайную новую игру
STR_4010_GENERATE_RANDOM_NEW_GAME :Сгенерировать случайную карту
STR_LOAD_HEIGHTMAP :{WHITE}Загруз. ЛАНДШАФТ
+STR_SAVE_OSKTITLE :{BLACK}Введите имя сохраняемой игры
##id 0x4800
STR_4800_IN_THE_WAY :{WHITE}{STRING} на пути
@@ -2659,6 +2667,74 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Жители празднуют!{}Первый поезд прибыл на станцию {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Детали)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Поезд мешает
+STR_ORDER_GO_TO :Идти на
+STR_ORDER_GO_NON_STOP_TO :Идти без остановки на
+STR_ORDER_GO_VIA :Идти через
+STR_ORDER_GO_NON_STOP_VIA :Идти без остановки через
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Погрузить если доступно
+STR_ORDER_DROP_FULL_LOAD_ALL :Полная загрузка всего груза
+STR_ORDER_DROP_FULL_LOAD_ANY :Полная загрузка любым грузом
+STR_ORDER_DROP_NO_LOADING :Не грузиться
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Разгузиться если груз принимается
+STR_ORDER_DROP_UNLOAD :Выгрузить все
+STR_ORDER_DROP_TRANSFER :Передать
+STR_ORDER_DROP_NO_UNLOADING :Не разгружаться
+STR_ORDER_FULL_LOAD :(Полн. погрузка)
+STR_ORDER_FULL_LOAD_ANY :(Полная погрузка любым грузом)
+STR_ORDER_NO_LOAD :(Не грузиться)
+STR_ORDER_UNLOAD :(Разгрузка)
+STR_ORDER_UNLOAD_FULL_LOAD :(Разгрузиться и ждать полной загрузки)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Разгрузиться и ждать полной загрузки любым грузом)
+STR_ORDER_UNLOAD_NO_LOAD :(Разгрузиться и уйти пустым)
+STR_ORDER_TRANSFER :(Передать и забрать груз)
+STR_ORDER_TRANSFER_FULL_LOAD :(Передать и ждать полной загрузки)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Передать и ждать полной загрузки любым грузом)
+STR_ORDER_TRANSFER_NO_LOAD :(Передать и уйти пустым)
+STR_ORDER_NO_UNLOAD :(Не разгружаться и забрать груз)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(Не разгружаться и ждать полной загрузки)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Не разгружать и ждать полной загрузки любым грузом)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Изменить способ остановки для выделенного задания
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Изменить способ погрузки для выделенного задания
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Изменить способ разгрузки для выделенного задания
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Добавить расширенное задание
+STR_ORDER_GO_TO_NEAREST_DEPOT :Идти к ближайшему депо
+STR_ORDER_GO_TO_NEAREST_HANGAR :Идти к ближайшему ангару
+STR_ORDER_NEAREST_DEPOT :ближайший
+STR_ORDER_NEAREST_HANGAR :ближайший ангар
+STR_ORDER_SERVICE_AT :Обслуживание в
+STR_ORDER_SERVICE_NON_STOP_AT :Обслуживание без остановки в
+STR_ORDER_TRAIN_DEPOT :Депо
+STR_ORDER_ROAD_DEPOT :Гараже
+STR_ORDER_SHIP_DEPOT :Доке
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} Ангар ({STATION})
+
+STR_ORDER_CONDITIONAL :Условный переход к заданию
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Данные транспорта для перехода
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Как сравнивать данные транспорта с заданным значением
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Значение для сравнения с данными транспорта
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Введите значение для сравнения
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Процент погрузки
+STR_ORDER_CONDITIONAL_RELIABILITY :Надежность
+STR_ORDER_CONDITIONAL_MAX_SPEED :Макс. скорость
+STR_ORDER_CONDITIONAL_AGE :Возраст (лет)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Требуется обслуживание
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Всегда
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS : равно
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS : не равно
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN : Меньше чем
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :меньше или равно чем
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :больше чем
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :больше или равно чем
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :истина
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :ложь
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Перейти к заданию {COMMA}
+STR_CONDITIONAL_NUM :Перейти к заданию {COMMA} когда {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Перейти к заданию {COMMA} когда {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Путешествует (не учитывается)
STR_TIMETABLE_TRAVEL_FOR :Идти до {STRING}
@@ -2706,6 +2782,8 @@
STR_REFIT_ORDER :(Переоборуд. для {STRING})
STR_TIMETABLE_VIEW :{BLACK}Расписание
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Просмотр расписания
+STR_ORDER_VIEW :{BLACK}Задания
+STR_ORDER_VIEW_TOOLTIP :{BLACK}Переключиться на просмотр заданий
STR_8829_ORDERS :{WHITE}{VEHICLE} (Задания)
STR_882A_END_OF_ORDERS :{SETX 10}- - Конец заданий - -
STR_SERVICE :{BLACK}Обслуж.
@@ -2714,6 +2792,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Стоимость: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Разгрузка/Погрузка
+STR_LEAVING :{LTBLUE}Отъезжает
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Поезд должен быть остановлен в депо
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Невозможно отправить поезд в депо...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Нет больше места для заданий
@@ -3250,6 +3329,7 @@
STR_WORLD_GENERATION_CAPTION :{WHITE}Создание мира
STR_RANDOM_SEED :{BLACK}Начальное число:
STR_RANDOM_SEED_HELP :{BLACK}Ландшафт генерируется псевдослучайно, число - опорная точка в последовательности случайных чисел.
+STR_RANDOM_SEED_OSKTITLE :{BLACK}Введите случайное число
STR_LAND_GENERATOR :{BLACK}Генератор ландш.:
STR_TREE_PLACER :{BLACK}Генератор лесов:
STR_HEIGHTMAP_ROTATION :{BLACK}Поворот РЕЛЬЕФА:
@@ -3342,6 +3422,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Переключить прозрачность зданий, вроде антенн и маяков.
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Переключить прозрачность контактной сети. Ctrl-щелчок - запрет изменений.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Переключить прозрачность для индикаторов загрузки
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Сделать объекты не прозрачными а невидимыми
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
@@ -3397,6 +3478,7 @@
#### Improved sign GUI
STR_NEXT_SIGN_TOOLTIP :{BLACK}К следующему знаку
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}К предыдущему знаку
+STR_SIGN_OSKTITLE :{BLACK}Введите название знака
########
@@ -3469,3 +3551,8 @@
STR_DRAG_SIGNALS_DENSITY_DECREASE_TIP :{BLACK}Уменьшить плотность сигналов при протягивании
STR_DRAG_SIGNALS_DENSITY_INCREASE_TIP :{BLACK}Увеличить плотность сигналов при протягивании
########
+
+############ on screen keyboard
+STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ .
+STR_OSK_KEYBOARD_LAYOUT_CAPS :~!@#$%^&*()_+|QWERTYUIOP{{}}ASDFGHJKL:" ZXCVBNM<>? .
+########
--- a/src/lang/slovak.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/slovak.txt Fri Apr 25 15:20:48 2008 +0000
@@ -20,6 +20,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} na ceste z {STATION})
STR_000C_ACCEPTS :{BLACK}Prijíma: {WHITE}
STR_000D_ACCEPTS :{BLACK}Prijíma: {GOLD}
+STR_SUPPLIES :{BLACK}Dodáva: {GOLD}
STR_000E :
STR_000F_PASSENGERS :Cestujúcich
STR_000F_PASSENGERS.g :cestujucich
@@ -1235,6 +1236,7 @@
STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :zdokonalená
STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :bloky 2x2
STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID :bloky 3x3
+STR_CONFIG_PATCHES_TOWN_LAYOUT_RANDOM :náhodne
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}Pozícia hlavného menu: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :vlavo
@@ -2715,6 +2717,8 @@
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detaily)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Vlak v ceste
+
+
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Cesta (neurcený cas)
STR_TIMETABLE_TRAVEL_FOR :Cesta do {STRING}
STR_TIMETABLE_STAY_FOR :prestávka {STRING}
@@ -3400,6 +3404,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Prepnút priehladnost objektov ako sú majáky a antény
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Prepnút priehladnost pre trakcné vedenie. CTRL+klik pre uzamknutie.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Prepnút priehladnost pre ukazovatele nakladania a vykladania
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Nastavit objekty neviditelné namiesto priehladných
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
--- a/src/lang/slovenian.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/slovenian.txt Fri Apr 25 15:20:48 2008 +0000
@@ -19,6 +19,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} na poti iz {STATION})
STR_000C_ACCEPTS :{BLACK}Sprejema: {WHITE}
STR_000D_ACCEPTS :{BLACK}Sprejema: {GOLD}
+STR_SUPPLIES :{BLACK}Dobavlja: {GOLD}
STR_000E :
STR_000F_PASSENGERS :Potniki
STR_000F_PASSENGERS.t :Potnike
@@ -419,6 +420,7 @@
STR_SORT_BY_MAX_SPEED :Največja hitrost
STR_SORT_BY_MODEL :Model
STR_SORT_BY_VALUE :Vrednost
+STR_SORT_BY_LENGTH :Dolžina
STR_SORT_BY_FACILITY :Tip postaje
STR_SORT_BY_WAITING :Čakanje vrednosti tovora
STR_SORT_BY_RATING_MAX :Ocene tovora
@@ -1404,6 +1406,8 @@
STR_NETWORK_GAME_NAME_TIP :{BLACK}Ime igre
STR_NETWORK_INFO_ICONS_TIP :{BLACK}Jezik, različica strežnika, itd.
STR_NETWORK_CLICK_GAME_TO_SELECT :{BLACK}Klikni na igro v seznamu, da jo izbereš
+STR_NETWORK_LAST_JOINED_SERVER :{BLACK}Zadnjič obiskani strežnik:
+STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}Klikni za izbiro zadnjič obiskanega strežnika
STR_NETWORK_FIND_SERVER :{BLACK}Najdi strežnik
STR_NETWORK_FIND_SERVER_TIP :{BLACK}Poišči strežnik na mreži
@@ -2731,6 +2735,75 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Prebivalci praznujejo . . .{}Prvi vlak je slovesno pripeljal{}na postajo {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Podrobnosti)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Vlak v napoto
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Pojdi do
+STR_ORDER_GO_NON_STOP_TO :Pojdi non-stop do
+STR_ORDER_GO_VIA :Pojdi preko
+STR_ORDER_GO_NON_STOP_VIA :Pojdi non-stop preko
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Napolni, če je na voljo
+STR_ORDER_DROP_FULL_LOAD_ALL :Napolni ves tovor
+STR_ORDER_DROP_FULL_LOAD_ANY :Napolni kakršenkoli tovor
+STR_ORDER_DROP_NO_LOADING :Brez polnjenja
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Razloži, če je sprejeto
+STR_ORDER_DROP_UNLOAD :Razloži vse
+STR_ORDER_DROP_TRANSFER :Pretovori
+STR_ORDER_DROP_NO_UNLOADING :Ne razloži
+STR_ORDER_FULL_LOAD :(Napolni)
+STR_ORDER_FULL_LOAD_ANY :(Napolni katerikoli tovor)
+STR_ORDER_NO_LOAD :(Brez polnjenja)
+STR_ORDER_UNLOAD :(Razloži in vzemi tovor)
+STR_ORDER_UNLOAD_FULL_LOAD :(Razloži in počakaj na polno)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Razloži in počakaj na polno česarkoli)
+STR_ORDER_UNLOAD_NO_LOAD :(Razloži in pusti prazno)
+STR_ORDER_TRANSFER :(Pretovori in vzemi tovor)
+STR_ORDER_TRANSFER_FULL_LOAD :(Pretovori in počakaj na polno)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Pretovori in počakaj na polno česarkoli)
+STR_ORDER_TRANSFER_NO_LOAD :(Pretovori in pusti prazno)
+STR_ORDER_NO_UNLOAD :(Ne razloži in vzemi tovor)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(Ne razloži in počakaj na polno)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Ne razloži in počakaj na polno česarkoli)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Spremeni način ustavljanja za označen ukaz
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Spremeni način polnjenja označenega ukaza
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Spremeni način praznjenja označenega ukaza
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_NEAREST_DEPOT :Pojdi v najbližjo garažo
+STR_ORDER_GO_TO_NEAREST_HANGAR :Pojdi v najbližji hangar
+STR_ORDER_NEAREST_DEPOT :najbližjo
+STR_ORDER_NEAREST_HANGAR :najbližji hangar
+STR_ORDER_SERVICE_AT :Na servis v
+STR_ORDER_SERVICE_NON_STOP_AT :Na servis non-stop v
+STR_ORDER_TRAIN_DEPOT :Železniška garaža
+STR_ORDER_ROAD_DEPOT :Cestna garaža
+STR_ORDER_SHIP_DEPOT :Ladijska garaža
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} hangar
+
+STR_ORDER_CONDITIONAL :Pogojni preskok ukaza
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Podatki vozila na osnovni preskok
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Kako primerjati podatke vozila na podano vrednost
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Primerjalna vrednost za podatke vozila
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Vnesi primerjalno vrednost
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Procenti polnjenja
+STR_ORDER_CONDITIONAL_RELIABILITY :Zanesljivost
+STR_ORDER_CONDITIONAL_MAX_SPEED :Najvišja hitrost
+STR_ORDER_CONDITIONAL_AGE :Starost (leta)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Potrebuje servis
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Vedno
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :je enaka
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :ni enaka kot
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :je manjša kot
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :je manjša ali enaka kot
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :je večja kot
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :je večja ali enaka kot
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :dejavno
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :nedejavno
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Skoči na ukaz {COMMA}
+STR_CONDITIONAL_NUM :Skoči na ukaz {COMMA}, ko je {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Skoči na ukaz {COMMA}, ko je {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Potovanje (brez časovnih tabel)
STR_TIMETABLE_TRAVEL_FOR :Potuj za {STRING}
@@ -2788,6 +2861,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Vrednost: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Natovarjanje / Raztovarjanje
+STR_LEAVING :{LTBLUE}Zapušča
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Vlak mora biti ustavljen v garaži
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Vlaka ni mogoče poslati v garažo ...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Ni več prostora za ukaze
@@ -3417,6 +3491,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Prozoren ali navaden pogled struktur kot so antene, svetilniki...
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Preklop prosojnosti za pogone. CTRL+klik za zaklepanje.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Preklop na prosojnost za prikaz polnenja
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Nastavi predmete nevidne namesto prosojne
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
--- a/src/lang/spanish.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/spanish.txt Fri Apr 25 15:20:48 2008 +0000
@@ -19,6 +19,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} en ruta desde {STATION})
STR_000C_ACCEPTS :{BLACK}Acepta: {WHITE}
STR_000D_ACCEPTS :{BLACK}Acepta: {GOLD}
+STR_SUPPLIES :{BLACK}Provisiones: {GOLD}
STR_000E :
STR_000F_PASSENGERS :Pasajeros
STR_0010_COAL :Carbón
@@ -1020,7 +1021,7 @@
STR_CONFIG_PATCHES_ON :Sí
STR_CONFIG_PATCHES_VEHICLESPEED :{LTBLUE}Mostrar velocidad del vehículo en la barra de estado: {ORANGE}{STRING}
STR_CONFIG_PATCHES_BUILDONSLOPES :{LTBLUE}Permitir la construcción en cuestas y orillas: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AUTOSLOPE :{LTBLUE}Permitir pendientes bajo construcciones, carreteras, etc. (autopendiente): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AUTOSLOPE :{LTBLUE}Permitir pendientes bajo carreteras, etc. (autopendiente): {ORANGE}{STRING}
STR_CONFIG_PATCHES_CATCHMENT :{LTBLUE}Permitir tamaño del área de captación más realista: {ORANGE}{STRING}
STR_CONFIG_PATCHES_EXTRADYNAMITE :{LTBLUE}Permitir demoler más propiedades de poblaciones: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAMMOTHTRAINS :{LTBLUE}Permitir la construcción de trenes muy largos: {ORANGE}{STRING}
@@ -1172,6 +1173,7 @@
STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :mejores carreteras
STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :rejilla 2x2
STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID :rejilla 3x3
+STR_CONFIG_PATCHES_TOWN_LAYOUT_RANDOM :aleatorio
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}Posición de la barra de herramientas principal: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :Izquierda
@@ -1188,7 +1190,7 @@
STR_CONFIG_PATCHES_LARGER_TOWNS :{LTBLUE}Proporción de ciudades que crecerán el doble de rápido: {ORANGE}1 de {STRING}
STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED :{LTBLUE}Proporción de ciudades que crecerán el doble de rápido: {ORANGE}Ninguna
STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER :{LTBLUE}Multiplicador inicial tamaño de ciudad: {ORANGE}{STRING}
-STR_CONFIG_MODIFIED_ROAD_REBUILD :{LTBLUE}Quitar elementos absurdos de la carretera durante su construcción
+STR_CONFIG_MODIFIED_ROAD_REBUILD :{LTBLUE}Quitar absurdos de la carretera durante su construcción
STR_CONFIG_PATCHES_GUI :{BLACK}Interfaz
STR_CONFIG_PATCHES_CONSTRUCTION :{BLACK}Construcción
@@ -1351,6 +1353,7 @@
STR_NETWORK_PLAYER_NAME :{BLACK}Nombre del Jugador:
STR_NETWORK_ENTER_NAME_TIP :{BLACK}Este es el nombre con el que otros jugadores le identificarán
+STR_NETWORK_PLAYER_NAME_OSKTITLE :{BLACK}Introduce tu nombre
STR_NETWORK_CONNECTION :{BLACK}Conexión:
STR_NETWORK_CONNECTION_TIP :{BLACK}Seleccione entre un juego en Internet o en una Red de Área Local
@@ -1394,6 +1397,7 @@
STR_NETWORK_NEW_GAME_NAME :{BLACK}Nombre del juego:
STR_NETWORK_NEW_GAME_NAME_TIP :{BLACK}El nombre del juego será mostrado a otros jugadores en el menu de selección de juego multijugador
+STR_NETWORK_NEW_GAME_NAME_OSKTITLE :{BLACK}Introduce un nombre para el juego en red
STR_NETWORK_SET_PASSWORD :{BLACK}Establecer contraseña
STR_NETWORK_PASSWORD_TIP :{BLACK}Proteje tu juego con una contraseña si no quieres que otras personas se unan a él
STR_NETWORK_SELECT_MAP :{BLACK}Selecciona mapa:
@@ -1450,6 +1454,13 @@
STR_NETWORK_LANG_SWEDISH :Sueco
STR_NETWORK_LANG_TURKISH :Turco
STR_NETWORK_LANG_UKRAINIAN :Ucraniano
+STR_NETWORK_LANG_AFRIKAANS :Africano
+STR_NETWORK_LANG_CROATIAN :Croata
+STR_NETWORK_LANG_CATALAN :Catalán
+STR_NETWORK_LANG_ESTONIAN :Estonio
+STR_NETWORK_LANG_GALICIAN :Gallego
+STR_NETWORK_LANG_GREEK :Griego
+STR_NETWORK_LANG_LATVIAN :Letón
############ End of leave-in-this-order
STR_NETWORK_GAME_LOBBY :{WHITE}Sala de estar del juego multijugador
@@ -1548,6 +1559,7 @@
STR_NETWORK_CHAT_TO_CLIENT :[Privado] a {STRING}: {GRAY}{STRING}
STR_NETWORK_CHAT_ALL_CAPTION :[Todos] :
STR_NETWORK_CHAT_ALL :[Todos] {STRING}: {GRAY}{STRING}
+STR_NETWORK_CHAT_OSKTITLE :{BLACK}Introduce el texto para el chat en red
STR_NETWORK_NAME_CHANGE :ha cambiado su nombre a
STR_NETWORK_SERVER_SHUTDOWN :{WHITE} El servidor ha cerrado la sesión
STR_NETWORK_SERVER_REBOOT :{WHITE} Se está reiniciando el servidor...{}Espere por favor...
@@ -1714,6 +1726,7 @@
STR_2002_WHITE :{TINYFONT}{WHITE}{SIGN}
STR_2004_BUILDING_MUST_BE_DEMOLISHED :{WHITE}El edificio debe demolerse primero
STR_2005 :{WHITE}{TOWN}
+STR_CITY :{WHITE}{TOWN} (City)
STR_2006_POPULATION :{BLACK}Habitantes: {ORANGE}{COMMA}{BLACK} Casas: {ORANGE}{COMMA}
STR_2007_RENAME_TOWN :Renombrar población
STR_2008_CAN_T_RENAME_TOWN :{WHITE}No se puede renombrar población...
@@ -1950,6 +1963,7 @@
STR_400F_SELECT_SCENARIO_GREEN_PRE :{BLACK}Seleccione escenario (verde), juegos preestablecidos-set (azul), o juego al azar
STR_4010_GENERATE_RANDOM_NEW_GAME :Generar juego nuevo al azar
STR_LOAD_HEIGHTMAP :{WHITE}Cargar Mapas de altura
+STR_SAVE_OSKTITLE :{BLACK}Introduce un nombre para el juego guardado
##id 0x4800
STR_4800_IN_THE_WAY :{WHITE}{STRING} en medio
@@ -2639,6 +2653,76 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Los ciudadanos celebran . . .{}¡Primer tren llega a {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detalles)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tren en camino
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Ir a
+STR_ORDER_GO_NON_STOP_TO :Ir sin paradas a
+STR_ORDER_GO_VIA :Ir vía
+STR_ORDER_GO_NON_STOP_VIA :Ir sin paradas vía
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Cargar si está disponible
+STR_ORDER_DROP_FULL_LOAD_ALL :Carga completa de todas las cargas
+STR_ORDER_DROP_FULL_LOAD_ANY :Carga completa de cualquier carga
+STR_ORDER_DROP_NO_LOADING :Sin carga
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Descargar si es aceptado
+STR_ORDER_DROP_UNLOAD :Descargar todo
+STR_ORDER_DROP_TRANSFER :Transferir
+STR_ORDER_DROP_NO_UNLOADING :No descargar
+STR_ORDER_FULL_LOAD :(Carga completa)
+STR_ORDER_FULL_LOAD_ANY :(Carga completa cualquier carga)
+STR_ORDER_NO_LOAD :(Sin carga)
+STR_ORDER_UNLOAD :(Descargar y tomar carga)
+STR_ORDER_UNLOAD_FULL_LOAD :(Descargar y esperar a carga completa)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Descargar y esperar a cualquier carga completa)
+STR_ORDER_UNLOAD_NO_LOAD :(Descargar y dejar vacío)
+STR_ORDER_TRANSFER :(Transferir y tomar carga)
+STR_ORDER_TRANSFER_FULL_LOAD :(Transferir y esperar a carga completa)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transferior y esperar a cualquier carga completa)
+STR_ORDER_TRANSFER_NO_LOAD :(Transferir y dejar vacío)
+STR_ORDER_NO_UNLOAD :(No descargar y tomar carga)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(No descargar y esperar a carga completa)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No descargar y esperar a cualquier carga completa)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Cambiar el comportamiento de parada en la orden seleccionada
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Cambiar el comportamiento de carga en la orden seleccionada
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Cambiar el comportamiento de descarga en la orden seleccionada
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Introducir una orden avanzada
+STR_ORDER_GO_TO_NEAREST_DEPOT :Ir al depósito más cercano
+STR_ORDER_GO_TO_NEAREST_HANGAR :Ir al hangar más cercano
+STR_ORDER_NEAREST_DEPOT :el más cercano
+STR_ORDER_NEAREST_HANGAR :el hangar más cercano
+STR_ORDER_SERVICE_AT :Servicio en
+STR_ORDER_SERVICE_NON_STOP_AT :Servicio sin parada en
+STR_ORDER_TRAIN_DEPOT :Depósito de tren
+STR_ORDER_ROAD_DEPOT :Depósito de vehículo de carretera
+STR_ORDER_SHIP_DEPOT :Depósito de barcos
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} Hangar
+
+STR_ORDER_CONDITIONAL :Salto de orden condicional
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Datos del vehículo para saltarse
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Como comparar los datos del vehículo al valor dado
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}El valor a comparar de los datos del vehículo contra
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Introduce el valor a comparar
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Porcentaje de carga
+STR_ORDER_CONDITIONAL_RELIABILITY :Fiabilidad
+STR_ORDER_CONDITIONAL_MAX_SPEED :Velocidad Máxima
+STR_ORDER_CONDITIONAL_AGE :Edad del vehículo (años)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Requiere servicio
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Siempre
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :es igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :no es igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :es menos de
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :es menos o igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :es más de
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :es más o igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :es verdadero
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :es falso
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Saltar a orden {COMMA}
+STR_CONDITIONAL_NUM :Saltar a orden {COMMA} cuando {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Saltar a orden{COMMA} cuando {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viaje (sin horarios)
STR_TIMETABLE_TRAVEL_FOR :Viaje para {STRING}
@@ -2686,6 +2770,8 @@
STR_REFIT_ORDER :(Recargar en {STRING})
STR_TIMETABLE_VIEW :{BLACK}Horarios
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Cambiar a la vista de horarios
+STR_ORDER_VIEW :{BLACK}Ordenes
+STR_ORDER_VIEW_TOOLTIP :{BLACK}Cambiar a la vista de ordenes
STR_8829_ORDERS :{WHITE}{VEHICLE} (Órdenes)
STR_882A_END_OF_ORDERS :{SETX 10}- - Fin de pedidos - -
STR_SERVICE :{BLACK}Servicio
@@ -2694,6 +2780,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Valor: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Cargando / Descargando
+STR_LEAVING :{LTBLUE}Abandonando
STR_TRAIN_MUST_BE_STOPPED :{WHITE}El tren debe pararse dentro del depósito
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}No se puede enviar el tren al depósito...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}No hay más lugar para pedidos
@@ -3230,6 +3317,7 @@
STR_WORLD_GENERATION_CAPTION :{WHITE}Generación de mundo
STR_RANDOM_SEED :{BLACK}Semilla Aleatoria:
STR_RANDOM_SEED_HELP :{BLACK}Pulsa para introducir la semilla aleatoria
+STR_RANDOM_SEED_OSKTITLE :{BLACK}Introducir una semilla aleatoria
STR_LAND_GENERATOR :{BLACK}Generador terreno:
STR_TREE_PLACER :{BLACK}Algoritmo árboles:
STR_HEIGHTMAP_ROTATION :{BLACK}Rotación mapa de alturas:
@@ -3322,6 +3410,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Activar transparencias para estructuras como faros, antenas, etc.
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Activar transparencia para la catenaria. CTRL+click para bloquear.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Ajustar transparencia para los indicadores de carga
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Poner objetos invisibles en vez de transparentes
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
@@ -3377,6 +3466,7 @@
#### Improved sign GUI
STR_NEXT_SIGN_TOOLTIP :{BLACK}Ir a la siguiente señal
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Ir a la señal anterior
+STR_SIGN_OSKTITLE :{BLACK}Introduce un nombre para la señal
########
@@ -3449,3 +3539,8 @@
STR_DRAG_SIGNALS_DENSITY_DECREASE_TIP :{BLACK}Decrementar arrastre de intensidad de señales
STR_DRAG_SIGNALS_DENSITY_INCREASE_TIP :{BLACK}Incrementar arrastre de intensidad de señales
########
+
+############ on screen keyboard
+STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ .
+STR_OSK_KEYBOARD_LAYOUT_CAPS :~!@#$%^&*()_+|QWERTYUIOP{{}}ASDFGHJKL:" ZXCVBNM<>? .
+########
--- a/src/lang/swedish.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/swedish.txt Fri Apr 25 15:20:48 2008 +0000
@@ -18,6 +18,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} på väg från {STATION})
STR_000C_ACCEPTS :{BLACK}Accepterar: {WHITE}
STR_000D_ACCEPTS :{BLACK}Accepterar: {GOLD}
+STR_SUPPLIES :{BLACK}Leverar: {GOLD}
STR_000E :
STR_000F_PASSENGERS :Passagerare
STR_0010_COAL :Kol
@@ -1171,6 +1172,7 @@
STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :bättre vägar
STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :2x2 rutnät
STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID :3x3 rutnät
+STR_CONFIG_PATCHES_TOWN_LAYOUT_RANDOM :slumpmässig
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}Position av verktygsraden: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :Vänster
@@ -2650,6 +2652,76 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Invånarna firar . . .{}Första tåget ankommer till {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Details)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tåg i vägen
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Åk till
+STR_ORDER_GO_NON_STOP_TO :Åk non-stop till
+STR_ORDER_GO_VIA :Åk via
+STR_ORDER_GO_NON_STOP_VIA :Åk non-stop via
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Lasta om möjligt
+STR_ORDER_DROP_FULL_LOAD_ALL :Full last alla frakttyper
+STR_ORDER_DROP_FULL_LOAD_ANY :Full last någon frakttyp
+STR_ORDER_DROP_NO_LOADING :Lasta ej
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Lasta av om accepterat
+STR_ORDER_DROP_UNLOAD :Lasta av allt
+STR_ORDER_DROP_TRANSFER :Överför
+STR_ORDER_DROP_NO_UNLOADING :Ej avlastning
+STR_ORDER_FULL_LOAD :(Full last)
+STR_ORDER_FULL_LOAD_ANY :(Full last någon frakttyp)
+STR_ORDER_NO_LOAD :(Ingen lastning)
+STR_ORDER_UNLOAD :(Lasta av och lasta frakt)
+STR_ORDER_UNLOAD_FULL_LOAD :(Lasta av och vänta på full last)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Lasta av och vänta på någon full last)
+STR_ORDER_UNLOAD_NO_LOAD :(Ladda av och lämna tom)
+STR_ORDER_TRANSFER :(Överför och lasta frakt)
+STR_ORDER_TRANSFER_FULL_LOAD :(Överför och vänta på full last)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Överför och vänta på någon full frakttyp)
+STR_ORDER_TRANSFER_NO_LOAD :(Överför och lämna tom)
+STR_ORDER_NO_UNLOAD :(Lasta ej av men lasta på)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(Ladda ej av men vänta på full last)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Ladda ej av men vänta på full last av någon frakttyp)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Ändra stoppbeteende för markerad order
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Ändra lastningsbeteende för markerad order
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Ändra avlastningsbeteende på markerad order
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Lägg till avancerad order
+STR_ORDER_GO_TO_NEAREST_DEPOT :Åk till närmsta depå
+STR_ORDER_GO_TO_NEAREST_HANGAR :Åk till närmsta hangar
+STR_ORDER_NEAREST_DEPOT :närmsta
+STR_ORDER_NEAREST_HANGAR :närmaste hangar
+STR_ORDER_SERVICE_AT :Service vid
+STR_ORDER_SERVICE_NON_STOP_AT :Service non-stop vid
+STR_ORDER_TRAIN_DEPOT :Tågdepå
+STR_ORDER_ROAD_DEPOT :Vägfordonsdepå
+STR_ORDER_SHIP_DEPOT :Skeppsdepå
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} Hangar
+
+STR_ORDER_CONDITIONAL :Conditional order jump
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Fordonsdata att basera hoppning på
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}How-to: Jämför fordonsdata med givet värde
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Värde att jämföra fordonsdata mot
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Skriv in värde att jämföra mot
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Laddningsprocent
+STR_ORDER_CONDITIONAL_RELIABILITY :Tillförlitlighet
+STR_ORDER_CONDITIONAL_MAX_SPEED :Toppfart
+STR_ORDER_CONDITIONAL_AGE :Fordonsålder (år)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Behöver service
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Alltid
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :samma som
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :ej samma som
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :mindre än
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :mindre eller lika mycket som
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :mer än
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :mer eller lika mycket som
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :sant
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :falskt
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Skippa till order {COMMA}
+STR_CONDITIONAL_NUM :Skippa till order {COMMA} när {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Skippa till order {COMMA} när {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Avres (Inte tillagd i tidtabell)
STR_TIMETABLE_TRAVEL_FOR :Res till {STRING}
@@ -3336,6 +3408,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Växla genomskinlighet för byggnader såsom fyrar och antenner, kanske i framtiden även ögongodis
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Växla genomskinlighet för kedjebro. CTRL+klick för att låsa.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Växla genomskinlighet för lastningsindikatörer
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Gör object osynliga istället för genomskinliga
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
--- a/src/lang/traditional_chinese.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/traditional_chinese.txt Fri Apr 25 15:20:48 2008 +0000
@@ -344,7 +344,7 @@
STR_0156_DELIVERED_CARGO_GRAPH :運載報表
STR_0157_PERFORMANCE_HISTORY_GRAPH :業績歷史圖表
STR_0158_COMPANY_VALUE_GRAPH :公司市值圖表
-STR_0159_CARGO_PAYMENT_RATES :貨物收費圖表
+STR_0159_CARGO_PAYMENT_RATES :公定運費報表
STR_015A_COMPANY_LEAGUE_TABLE :公司排行榜
STR_PERFORMANCE_DETAIL_MENU :詳細營運評比
############ range for menu ends
@@ -376,6 +376,7 @@
STR_SORT_BY_MAX_SPEED :最高速度
STR_SORT_BY_MODEL :型號
STR_SORT_BY_VALUE :價值
+STR_SORT_BY_LENGTH :長度
STR_SORT_BY_FACILITY :站場種類
STR_SORT_BY_WAITING :等候貨物總值
STR_SORT_BY_RATING_MAX :酬載評價
@@ -435,8 +436,8 @@
STR_017C_DISPLAY_LIST_OF_COMPANY :{BLACK}顯示公司擁有的公車/貨車
STR_017D_DISPLAY_LIST_OF_COMPANY :{BLACK}顯示公司擁有的船隻
STR_017E_DISPLAY_LIST_OF_COMPANY :{BLACK}顯示公司擁有的飛機
-STR_017F_ZOOM_THE_VIEW_IN :{BLACK}拉近視域
-STR_0180_ZOOM_THE_VIEW_OUT :{BLACK}拉遠視域
+STR_017F_ZOOM_THE_VIEW_IN :{BLACK}拉近場景
+STR_0180_ZOOM_THE_VIEW_OUT :{BLACK}拉遠場景
STR_0181_BUILD_RAILROAD_TRACK :{BLACK}興建路軌設施
STR_0182_BUILD_ROADS :{BLACK}興建道路設施
STR_0183_BUILD_SHIP_DOCKS :{BLACK}興建碼頭設施
@@ -471,7 +472,7 @@
STR_AGE_RED :{RED}{COMMA} 年 ({COMMA})
############ range for service numbers ends
-STR_019C_ROAD_VEHICLE :車輛
+STR_019C_ROAD_VEHICLE :公車/貨車
STR_019D_AIRCRAFT :飛機
STR_019E_SHIP :船隻
STR_019F_TRAIN :列車
@@ -586,6 +587,9 @@
STR_0209_COMPANY_INFORMATION :{YELLOW}公司資訊
STR_NEWS_OPEN_CLOSE :{YELLOW}工業開張/倒閉消息
STR_020A_ECONOMY_CHANGES :{YELLOW}經濟氣候變化
+STR_INDUSTRY_CHANGES_SERVED_BY_PLAYER :{YELLOW}工業提供給玩家的產量變更
+STR_INDUSTRY_CHANGES_SERVED_BY_OTHER :{YELLOW}工業提供給競爭者的產量變更
+STR_OTHER_INDUSTRY_PRODUCTION_CHANGES :{YELLOW}其他工業產量變更
STR_020B_ADVICE_INFORMATION_ON_PLAYER :{YELLOW}給玩家的載具的建議或資訊
STR_020C_NEW_VEHICLES :{YELLOW}新載具
STR_020D_CHANGES_OF_CARGO_ACCEPTANCE :{YELLOW}接收貨物的改動
@@ -721,6 +725,7 @@
STR_028E_PLACE_TRANSMITTER :{BLACK}建立發射站
STR_028F_DEFINE_DESERT_AREA :{BLACK}定義沙漠區。{}請按住 CTRL 移除
STR_CREATE_LAKE :{BLACK}劃出湖泊範圍。{}開鑿運河。在海平面上按 CTRL 鍵則會淹沒週遭土地
+STR_CREATE_RIVER :{BLACK}劃出河流範圍
STR_0290_DELETE :{BLACK}刪除
STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}完全移除這個市鎮
STR_0292_SAVE_SCENARIO :儲存場景
@@ -930,6 +935,7 @@
STR_OPTIONS_FULLSCREEN :{BLACK}全螢幕
STR_OPTIONS_FULLSCREEN_TIP :{BLACK}勾選即可以全螢幕玩 OpenTTD
+STR_FULLSCREEN_FAILED :{WHITE}無法切換全螢幕模式
STR_OPTIONS_RES :{BLACK}螢幕解析度
STR_OPTIONS_RES_CBO :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
@@ -1043,6 +1049,7 @@
STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY :{LTBLUE}允許資金流通給其他公司:{ORANGE}{STRING}
STR_CONFIG_PATCHES_NONUNIFORM_STATIONS :{LTBLUE}不規則形狀車站:{ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}貨物重量系數,以模擬較重列車:{ORANGE}{STRING}
+STR_CONFIG_PATCHES_PLANE_SPEED :{LTBLUE}飛機速度比例:{ORANGE}{STRING} 分之一
STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}可在鎮內興建路邊車站:{ORANGE}{STRING}
STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}容許興建相鄰車站: {ORANGE}{STRING}
@@ -1164,6 +1171,7 @@
STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :較好的規劃
STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :2乘2網格
STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID :3乘3網格
+STR_CONFIG_PATCHES_TOWN_LAYOUT_RANDOM :隨機
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}主工具列位置:{ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :左
@@ -1196,6 +1204,19 @@
STR_CONFIG_PATCHES_QUERY_CAPT :{WHITE}改變設定值
STR_CONFIG_PATCHES_SERVICE_INTERVAL_INCOMPATIBLE :{WHITE}以下預設檢修期與揀選項目不相容! 合法設定為 5-90% 或 30-800 日
+STR_CONFIG_PATCHES_PATHFINDER_FOR_TRAINS :{LTBLUE}列車的路徑搜尋方式:{ORANGE}{STRING}
+STR_CONFIG_PATCHES_PATHFINDER_FOR_TRAINS_NTP :NTP {RED}(不建議)
+STR_CONFIG_PATCHES_PATHFINDER_FOR_TRAINS_NPF :NPF
+STR_CONFIG_PATCHES_PATHFINDER_FOR_TRAINS_YAPF :YAPF {BLUE}(建議)
+STR_CONFIG_PATCHES_PATHFINDER_FOR_ROADVEH :{LTBLUE}車輛的路徑搜尋方式:{ORANGE}{STRING}
+STR_CONFIG_PATCHES_PATHFINDER_FOR_ROADVEH_OPF :預設 {RED}(不建議)
+STR_CONFIG_PATCHES_PATHFINDER_FOR_ROADVEH_NPF :NPF
+STR_CONFIG_PATCHES_PATHFINDER_FOR_ROADVEH_YAPF :YAPF {BLUE}(建議)
+STR_CONFIG_PATCHES_PATHFINDER_FOR_SHIPS :{LTBLUE}船隻的路徑搜尋方式:{ORANGE}{STRING}
+STR_CONFIG_PATCHES_PATHFINDER_FOR_SHIPS_OPF :預設 {BLUE}(建議)
+STR_CONFIG_PATCHES_PATHFINDER_FOR_SHIPS_NPF :NPF
+STR_CONFIG_PATCHES_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(不建議)
+
STR_TEMPERATE_LANDSCAPE :溫帶
STR_SUB_ARCTIC_LANDSCAPE :亞北極帶
STR_SUB_TROPICAL_LANDSCAPE :亞熱帶
@@ -1330,6 +1351,7 @@
STR_NETWORK_PLAYER_NAME :{BLACK}玩家名稱:
STR_NETWORK_ENTER_NAME_TIP :{BLACK}這是其他玩家辨認您的名稱
+STR_NETWORK_PLAYER_NAME_OSKTITLE :{BLACK}輸入您的名稱
STR_NETWORK_CONNECTION :{BLACK}連線:
STR_NETWORK_CONNECTION_TIP :{BLACK}選擇 Internet 或區域網路 (LAN) 遊戲
@@ -1340,6 +1362,8 @@
STR_NETWORK_GAME_NAME_TIP :{BLACK}遊戲名稱
STR_NETWORK_INFO_ICONS_TIP :{BLACK}語言,伺服器版本等等
STR_NETWORK_CLICK_GAME_TO_SELECT :{BLACK}點選清單内的遊戲即可選擇
+STR_NETWORK_LAST_JOINED_SERVER :{BLACK}上次最後加入的伺服器:
+STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}點選您上次最後加入的伺服器
STR_NETWORK_FIND_SERVER :{BLACK}尋找伺服器
STR_NETWORK_FIND_SERVER_TIP :{BLACK}尋找網路上的伺服器
@@ -1373,6 +1397,7 @@
STR_NETWORK_NEW_GAME_NAME :{BLACK}遊戲名稱:
STR_NETWORK_NEW_GAME_NAME_TIP :{BLACK}遊戲名稱會顯示在其他玩家選擇遊戲的選單内
+STR_NETWORK_NEW_GAME_NAME_OSKTITLE :{BLACK}為連線遊戲輸入一個名稱
STR_NETWORK_SET_PASSWORD :{BLACK}設定密碼
STR_NETWORK_PASSWORD_TIP :{BLACK}如果您不想讓大眾連線的話,可以用密碼保護遊戲
STR_NETWORK_SELECT_MAP :{BLACK}選擇地圖:
@@ -1429,6 +1454,13 @@
STR_NETWORK_LANG_SWEDISH :瑞典語
STR_NETWORK_LANG_TURKISH :土耳其語
STR_NETWORK_LANG_UKRAINIAN :烏克蘭語
+STR_NETWORK_LANG_AFRIKAANS :Afrikaans
+STR_NETWORK_LANG_CROATIAN :Croatian
+STR_NETWORK_LANG_CATALAN :Catalan
+STR_NETWORK_LANG_ESTONIAN :Estonian
+STR_NETWORK_LANG_GALICIAN :Galician
+STR_NETWORK_LANG_GREEK :Greek
+STR_NETWORK_LANG_LATVIAN :Latvian
############ End of leave-in-this-order
STR_NETWORK_GAME_LOBBY :{WHITE}連線遊戲大廳
@@ -1527,6 +1559,7 @@
STR_NETWORK_CHAT_TO_CLIENT :[私人] 給 {STRING}:{GRAY}{STRING}
STR_NETWORK_CHAT_ALL_CAPTION :[全員] :
STR_NETWORK_CHAT_ALL :[全員] {STRING}:{GRAY}{STRING}
+STR_NETWORK_CHAT_OSKTITLE :{BLACK}輸入文字到連線聊天
STR_NETWORK_NAME_CHANGE :將自己的名稱改為
STR_NETWORK_SERVER_SHUTDOWN :{WHITE} 伺服器關閉連線
STR_NETWORK_SERVER_REBOOT :{WHITE} 伺服器正在重新啟動...{}請稍候...
@@ -1590,6 +1623,7 @@
STR_1005_NO_SUITABLE_RAILROAD_TRACK :{WHITE}沒有適合的鐵路軌道
STR_1007_ALREADY_BUILT :{WHITE}...已經建了
STR_1008_MUST_REMOVE_RAILROAD_TRACK :{WHITE}必須先移除鐵道
+STR_ERR_CROSSING_ON_ONEWAY_ROAD :{WHITE}道路是單行道或被阻擋
STR_100A_RAILROAD_CONSTRUCTION :{WHITE}鋪設鐵道
STR_TITLE_ELRAIL_CONSTRUCTION :{WHITE}建造電氣化鐵道
STR_100B_MONORAIL_CONSTRUCTION :{WHITE}鋪設單軌
@@ -1692,6 +1726,7 @@
STR_2002_WHITE :{TINYFONT}{WHITE}{SIGN}
STR_2004_BUILDING_MUST_BE_DEMOLISHED :{WHITE}必須先摧毀建物
STR_2005 :{WHITE}{TOWN}
+STR_CITY :{WHITE}{TOWN} (城市)
STR_2006_POPULATION :{BLACK}人口:{ORANGE}{COMMA}{BLACK} 房屋:{ORANGE}{COMMA}
STR_2007_RENAME_TOWN :修改城鎮名稱
STR_2008_CAN_T_RENAME_TOWN :{WHITE}無法修改城鎮名稱...
@@ -1928,6 +1963,7 @@
STR_400F_SELECT_SCENARIO_GREEN_PRE :{BLACK}選擇劇本 (綠色),預設遊戲 (藍),或隨機產生場景
STR_4010_GENERATE_RANDOM_NEW_GAME :隨機產生新場景
STR_LOAD_HEIGHTMAP :{WHITE}載入高度圖
+STR_SAVE_OSKTITLE :{BLACK}為存檔輸入一個名稱
##id 0x4800
STR_4800_IN_THE_WAY :{WHITE}被 {STRING} 擋住
@@ -2324,6 +2360,8 @@
STR_LIVERY_PASSENGER_WAGON_STEAM :乘客車廂 (蒸氣)
STR_LIVERY_PASSENGER_WAGON_DIESEL :乘客車廂 (柴油)
STR_LIVERY_PASSENGER_WAGON_ELECTRIC :乘客車廂 (電力)
+STR_LIVERY_PASSENGER_WAGON_MONORAIL :客車廂 (單軌)
+STR_LIVERY_PASSENGER_WAGON_MAGLEV :客車廂 (磁浮)
STR_LIVERY_FREIGHT_WAGON :貨車廂
STR_LIVERY_BUS :公車
STR_LIVERY_TRUCK :貨卡車
@@ -2615,6 +2653,53 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}市民慶賀 . . .{}首輛列車抵達 {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (詳細資料)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}前方有列車
+STR_8804 :{SETX 10}{COMMA}:{STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}:{STRING} {STRING}
+STR_ORDER_GO_TO :前往
+STR_ORDER_GO_NON_STOP_TO :直達
+STR_ORDER_GO_VIA :經由
+STR_ORDER_GO_NON_STOP_VIA :直達且經由
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :有則裝載
+STR_ORDER_DROP_FULL_LOAD_ALL :滿載各客貨
+STR_ORDER_DROP_FULL_LOAD_ANY :滿載任何客貨
+STR_ORDER_DROP_NO_LOADING :不裝載
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :接受則卸客貨
+STR_ORDER_DROP_UNLOAD :卸載
+STR_ORDER_DROP_TRANSFER :轉運
+STR_ORDER_DROP_NO_UNLOADING :不卸載
+STR_ORDER_FULL_LOAD :(滿載)
+STR_ORDER_FULL_LOAD_ANY :(滿載任何客貨)
+STR_ORDER_NO_LOAD :(不裝載)
+STR_ORDER_UNLOAD :(卸載後裝載)
+STR_ORDER_UNLOAD_FULL_LOAD :(卸載後等待滿載)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(卸載後等待任何種類滿載)
+STR_ORDER_UNLOAD_NO_LOAD :(卸載後空車離開)
+STR_ORDER_TRANSFER :(轉運且載客貨)
+STR_ORDER_TRANSFER_FULL_LOAD :(轉運且等待滿載)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(轉運且等待任何種類滿載)
+STR_ORDER_TRANSFER_NO_LOAD :(轉運後空車離開)
+STR_ORDER_NO_UNLOAD :(不卸載但裝載)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(不卸載但等待滿載)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(不卸載但等待任何滿載)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}變更選取指令的停靠行為
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}變更選取指令的裝載行為
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}變更選取指令的卸載行為
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}插入進階的指令
+STR_ORDER_GO_TO_NEAREST_DEPOT :前往最近的機廠
+STR_ORDER_GO_TO_NEAREST_HANGAR :前往最近的機棚
+STR_ORDER_NEAREST_DEPOT :最近的
+STR_ORDER_NEAREST_HANGAR :最近的機棚
+STR_ORDER_TRAIN_DEPOT :機廠
+STR_ORDER_ROAD_DEPOT :車庫
+STR_ORDER_SHIP_DEPOT :船塢
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} 機棚
+
+STR_ORDER_CONDITIONAL :條件指令
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}跳躍指令依據
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :漫遊 (無時刻表)
STR_TIMETABLE_TRAVEL_FOR :通行於 {STRING}
@@ -3190,6 +3275,9 @@
STR_PURCHASE_INFO_ALL_BUT :{GOLD}除了
STR_PURCHASE_INFO_MAX_TE :{BLACK}最大牽引力:{GOLD}{FORCE}
+########### For showing numbers in widgets
+
+
########### String for New Landscape Generator
STR_GENERATE :{WHITE}產生
@@ -3416,3 +3504,6 @@
STR_DRAG_SIGNALS_DENSITY_DECREASE_TIP :{BLACK}減少 (拉近)
STR_DRAG_SIGNALS_DENSITY_INCREASE_TIP :{BLACK}增加 (拉遠)
########
+
+############ on screen keyboard
+########
--- a/src/lang/ukrainian.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/ukrainian.txt Fri Apr 25 15:20:48 2008 +0000
@@ -20,6 +20,7 @@
STR_EN_ROUTE_FROM :{YELLOW}({SHORTCARGO} з {STATION})
STR_000C_ACCEPTS :{BLACK}Приймає: {WHITE}
STR_000D_ACCEPTS :{BLACK}Приймає: {GOLD}
+STR_SUPPLIES :{BLACK}Постачає: {GOLD}
STR_000E :
STR_000F_PASSENGERS :пасажири
STR_000F_PASSENGERS.r :пасажирів
@@ -1070,7 +1071,7 @@
STR_OPTIONS_SCREENSHOT_FORMAT_CBO :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
STR_OPTIONS_SCREENSHOT_FORMAT_TIP :{BLACK}Виберіть формат для створення копій екрану
-STR_AUTOSAVE_1_MONTH :Щомісяця
+STR_AUTOSAVE_1_MONTH :щомісяця
STR_AUTOSAVE_FAILED :{WHITE}Помилка автозбереження
STR_MONTH_JAN :Січень
@@ -1127,7 +1128,7 @@
STR_AIRCRAFT_HAS_TOO_FEW_ORDERS :{WHITE}Літак {COMMA} не має завдань
STR_AIRCRAFT_HAS_VOID_ORDER :{WHITE}Літак {COMMA} має пустий наказ
STR_AIRCRAFT_HAS_DUPLICATE_ENTRY :{WHITE}Літак {COMMA} має подвійні накази
-STR_AIRCRAFT_HAS_INVALID_ENTRY :{WHITE}Літак {COMMA} має в наказі невірну станцію
+STR_AIRCRAFT_HAS_INVALID_ENTRY :{WHITE}Літак {COMMA} має в маршруті невірну станцію
# end of order system
STR_TRAIN_AUTORENEW_FAILED :{WHITE}Помилка автооновлення поїзда {COMMA} (бракує коштів)
@@ -1296,6 +1297,7 @@
STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :кращі дороги
STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :сітка 2x2
STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID :сітка 3x3
+STR_CONFIG_PATCHES_TOWN_LAYOUT_RANDOM :випадково
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}Положення головного меню: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :Ліворуч
@@ -1486,6 +1488,8 @@
STR_NETWORK_GAME_NAME_TIP :{BLACK}Назва гри
STR_NETWORK_INFO_ICONS_TIP :{BLACK}Мова, версія сервера, та інше.
STR_NETWORK_CLICK_GAME_TO_SELECT :{BLACK}Натисніть на гру із списку, щоб вибрати її
+STR_NETWORK_LAST_JOINED_SERVER :{BLACK}Сервер, до якого під'єднувались востаннє
+STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}Натисніть, щоб вибрати сервер, на якому ви грали востаннє
STR_NETWORK_FIND_SERVER :{BLACK}Знайти сервер
STR_NETWORK_FIND_SERVER_TIP :{BLACK}Пошук мережі для сервера
@@ -1856,8 +1860,8 @@
STR_200A_TOWN_NAMES_CLICK_ON_NAME :{BLACK}Назви міст - вкажіть на місто і воно з'явиться в центрі екрану
STR_200B_CENTER_THE_MAIN_VIEW_ON :{BLACK}Показати в центрі екрану
STR_200C_CHANGE_TOWN_NAME :{BLACK}Змінити назву міста
-STR_200D_PASSENGERS_LAST_MONTH_MAX :{BLACK}Пасажирів за місяць: {ORANGE}{COMMA}{BLACK} Найбільше: {ORANGE}{COMMA}
-STR_200E_MAIL_LAST_MONTH_MAX :{BLACK}Пошти за місяць: {ORANGE}{COMMA}{BLACK} Найбільше: {ORANGE}{COMMA}
+STR_200D_PASSENGERS_LAST_MONTH_MAX :{BLACK}Пасажирів за місяць: {ORANGE}{COMMA}{BLACK} найбільше: {ORANGE}{COMMA}
+STR_200E_MAIL_LAST_MONTH_MAX :{BLACK}Пошти за місяць: {ORANGE}{COMMA}{BLACK} найбільше: {ORANGE}{COMMA}
STR_200F_TALL_OFFICE_BLOCK :Великий офіс
STR_2010_OFFICE_BLOCK :Офісний район
STR_2011_SMALL_BLOCK_OF_FLATS :Будинки
@@ -1877,15 +1881,15 @@
STR_201F_OLD_HOUSES :Старі будинки
STR_2020_LOCAL_AUTHORITY :{BLACK}Місцева влада
STR_2021_SHOW_INFORMATION_ON_LOCAL :{BLACK}Інформація про місцеву владу
-STR_2022_LOCAL_AUTHORITY :{WHITE}{TOWN} місцева влада
+STR_2022_LOCAL_AUTHORITY :{WHITE}{TOWN} - місцева влада
STR_2023_TRANSPORT_COMPANY_RATINGS :{BLACK}Рейтинги компаній:
STR_2024 :{YELLOW}{COMPANY} {COMPANYNUM}: {ORANGE}{STRING}
STR_2025_SUBSIDIES :{WHITE}Субсидії
-STR_2026_SUBSIDIES_ON_OFFER_FOR :{BLACK}Пропонуються субсидії:-
+STR_2026_SUBSIDIES_ON_OFFER_FOR :{BLACK}Пропонуються субсидії:
STR_2027_FROM_TO :{ORANGE}Перевезення {STRING.r} з {STRING} до {STRING}
STR_2028_BY :{YELLOW} ({DATE_SHORT})
STR_202A_NONE :{ORANGE}немає
-STR_202B_SERVICES_ALREADY_SUBSIDISED :{BLACK}Призначені субсидії:-
+STR_202B_SERVICES_ALREADY_SUBSIDISED :{BLACK}Призначені субсидії:
STR_202C_FROM_TO :{ORANGE}Перевезення {STRING.r} з {STATION} до {STATION}{YELLOW} ({COMPANY}
STR_202D_UNTIL :{YELLOW}, по {DATE_SHORT})
STR_202E_OFFER_OF_SUBSIDY_EXPIRED :{BLACK}{BIGFONT}Субсидію відмінено:{}{}Перевезення {STRING.r} з {STRING} до {STRING}.
@@ -2313,8 +2317,8 @@
STR_6806_COMPETITOR_START_TIME :{LTBLUE}Конкуренти починають через: {ORANGE}{STRING}
STR_6807_NO_OF_TOWNS :{LTBLUE}Кількість міст: {ORANGE}{STRING}
STR_6808_NO_OF_INDUSTRIES :{LTBLUE}Кількість підприємств: {ORANGE}{STRING}
-STR_6809_MAXIMUM_INITIAL_LOAN_000 :{LTBLUE}Початковий кредит: {ORANGE}{CURRENCY}
-STR_680A_INITIAL_INTEREST_RATE :{LTBLUE}Відсотки за кредит: {ORANGE}{COMMA}%
+STR_6809_MAXIMUM_INITIAL_LOAN_000 :{LTBLUE}Початкова позика: {ORANGE}{CURRENCY}
+STR_680A_INITIAL_INTEREST_RATE :{LTBLUE}Відсоткова ставка: {ORANGE}{COMMA}%
STR_680B_VEHICLE_RUNNING_COSTS :{LTBLUE}Транспортні витрати: {ORANGE}{STRING}
STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR :{LTBLUE}Швидкість будівництва конкурентів: {ORANGE}{STRING}
STR_680D_INTELLIGENCE_OF_COMPETITORS :{LTBLUE}Досвідченість конкурентів: {ORANGE}{STRING}
@@ -2375,7 +2379,7 @@
STR_7000 :
STR_7001 :{WHITE}{COMPANY} {BLACK}{COMPANYNUM}
STR_7002_PLAYER :(Гравець {COMMA})
-STR_7004_NEW_FACE :{BLACK}Нове лице
+STR_7004_NEW_FACE :{BLACK}Нове обличчя
STR_7005_COLOR_SCHEME :{BLACK}Колір
STR_7006_COLOR_SCHEME :{GOLD}Колір:
STR_7007_NEW_COLOR_SCHEME :{WHITE}Новий колір
@@ -2399,35 +2403,35 @@
STR_7019_ROAD_VEHICLES_INCOME :{GOLD}Дохід, автомобілі
STR_701A_AIRCRAFT_INCOME :{GOLD}Дохід, літаки
STR_701B_SHIP_INCOME :{GOLD}Дохід, кораблі
-STR_701C_LOAN_INTEREST :{GOLD}Відсотки за кредит
+STR_701C_LOAN_INTEREST :{GOLD}Відсотки за позикою
STR_701D_OTHER :{GOLD}Інше
STR_701E :{BLACK}-{CURRENCY}
STR_701F :{BLACK}+{CURRENCY}
-STR_7020_TOTAL :{WHITE}Всього:
+STR_7020_TOTAL :{WHITE}Підсумок:
STR_7021 :{COMPANY} {COMPANYNUM}
STR_7022_INCOME_GRAPH :{WHITE}Графік доходів
STR_CURRCOMPACT :{CURRCOMPACT}
STR_7024 :{COMMA}
-STR_7025_OPERATING_PROFIT_GRAPH :{WHITE}Графік прибутку від виробництва
+STR_7025_OPERATING_PROFIT_GRAPH :{WHITE}Графік операційного прибутку
STR_7026_BANK_BALANCE :{WHITE}Рахунок
-STR_7027_LOAN :{WHITE}Взято в кредит
-STR_MAX_LOAN :{WHITE}Макс. кредит: {BLACK}{CURRENCY}
+STR_7027_LOAN :{WHITE}Позика
+STR_MAX_LOAN :{WHITE}Макс. позика: {BLACK}{CURRENCY}
STR_7028 :{BLACK}{CURRENCY}
STR_7029_BORROW :{BLACK}Позичити {SKIP}{SKIP}{CURRENCY}
STR_702A_REPAY :{BLACK}Повернути {SKIP}{SKIP}{CURRENCY}
-STR_702B_MAXIMUM_PERMITTED_LOAN :{WHITE}...найбільший дозволений розмір кредиту {CURRENCY}
-STR_702C_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}Неможливо взяти кредит...
-STR_702D_LOAN_ALREADY_REPAYED :{WHITE}...кредит вже оплачено
+STR_702B_MAXIMUM_PERMITTED_LOAN :{WHITE}...найбільший дозволений розмір позики {CURRENCY}
+STR_702C_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}Неможливо взяти ще позику...
+STR_702D_LOAN_ALREADY_REPAYED :{WHITE}...позика вже повернута
STR_702E_REQUIRED :{WHITE}...потрібно {CURRENCY}
-STR_702F_CAN_T_REPAY_LOAN :{WHITE}Неможливо виплатити кредит...
-STR_INSUFFICIENT_FUNDS :{WHITE}Неможливо передати гроші, які взяли в кредит з банку...
-STR_7030_SELECT_NEW_FACE_FOR_PRESIDENT :{BLACK}Вибір нового лиця керівника
+STR_702F_CAN_T_REPAY_LOAN :{WHITE}Неможливо повернути позику...
+STR_INSUFFICIENT_FUNDS :{WHITE}Неможливо передати гроші, позичені у банку...
+STR_7030_SELECT_NEW_FACE_FOR_PRESIDENT :{BLACK}Вибрати нове обличчя керівника
STR_7031_CHANGE_THE_COMPANY_VEHICLE :{BLACK}Зміна кольору транспорту компанії
STR_7032_CHANGE_THE_PRESIDENT_S :{BLACK}Зміна імені керівника
STR_7033_CHANGE_THE_COMPANY_NAME :{BLACK}Зміна назви компанії
STR_7034_CLICK_ON_SELECTED_NEW_COLOR :{BLACK}Натисніть на колір, який вам до вподоби
-STR_7035_INCREASE_SIZE_OF_LOAN :{BLACK}Взяти кредит
-STR_7036_REPAY_PART_OF_LOAN :{BLACK}Виплатити частину кредиту
+STR_7035_INCREASE_SIZE_OF_LOAN :{BLACK}Збільшити розмір позики
+STR_7036_REPAY_PART_OF_LOAN :{BLACK}Повернути частину позики
STR_7037_PRESIDENT :{WHITE}{PLAYERNAME}{}{GOLD}(Керівник)
STR_7038_INAUGURATED :{GOLD}Засновано у: {WHITE}{NUM} році
STR_7039_VEHICLES :{GOLD}Транспорт:
@@ -2436,19 +2440,19 @@
STR_AIRCRAFT :{WHITE}{COMMA} літак{P "" и ів}
STR_SHIPS :{WHITE}{COMMA} кораб{P ель лі ів}
STR_7042_NONE :{WHITE}Нема
-STR_7043_FACE_SELECTION :{WHITE}Вибір лиця
+STR_7043_FACE_SELECTION :{WHITE}Вибір обличчя
STR_7044_MALE :{BLACK}Чоловік
STR_7045_FEMALE :{BLACK}Жінка
-STR_7046_NEW_FACE :{BLACK}Нове лице
-STR_7047_CANCEL_NEW_FACE_SELECTION :{BLACK}Відмінити вибір нового лиця
-STR_7048_ACCEPT_NEW_FACE_SELECTION :{BLACK}Підтвердити вибір нового лиця
-STR_7049_SELECT_MALE_FACES :{BLACK}Вибір чоловічого лиця
-STR_704A_SELECT_FEMALE_FACES :{BLACK}Вибір жіночого лиця
-STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Генерувати випадкове нове лице
+STR_7046_NEW_FACE :{BLACK}Нове обличчя
+STR_7047_CANCEL_NEW_FACE_SELECTION :{BLACK}Відмінити вибір нового обличчя
+STR_7048_ACCEPT_NEW_FACE_SELECTION :{BLACK}Підтвердити вибір нового обличчя
+STR_7049_SELECT_MALE_FACES :{BLACK}Вибрати чоловіче обличчя
+STR_704A_SELECT_FEMALE_FACES :{BLACK}Вибрати жіноче обличчя
+STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Генерувати нове випадкове обличчя
STR_704C_KEY :{BLACK}Ключ
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Показ ключа до графіків
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Ключ до графіків компанії
-STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Натисніть для вкл/викл окремого графіку компанії
+STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Натисніть тут для вкл./відкл. графіку окремої компанії
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Доставка одиниці вантажу
STR_7051_COMPANY_PERFORMANCE_RATINGS :{WHITE}Рейтинг продуктивності компанії (найбільший рейтинг=1000)
STR_7052_COMPANY_VALUES :{WHITE}Вартість компанії
@@ -2812,6 +2816,76 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Жителі святкують . . .{}Перший поїзд з'явився на {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Детально)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Поїзд на шляху
+STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_ORDER_GO_TO :Прямувати до
+STR_ORDER_GO_NON_STOP_TO :Прямувати без зупинок до
+STR_ORDER_GO_VIA :Прямувати через
+STR_ORDER_GO_NON_STOP_VIA :Прямувати без зупинок через
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Завантажитись при нагоді
+STR_ORDER_DROP_FULL_LOAD_ALL :Повністю завантажити всі вантажі
+STR_ORDER_DROP_FULL_LOAD_ANY :Повністю завантажити будь-який вид вантажу
+STR_ORDER_DROP_NO_LOADING :Не завантажуватись
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Розвантажитись, якщо приймають
+STR_ORDER_DROP_UNLOAD :Розвантажити все
+STR_ORDER_DROP_TRANSFER :Передати
+STR_ORDER_DROP_NO_UNLOADING :Не розвантажуватись
+STR_ORDER_FULL_LOAD :(Завантажити все)
+STR_ORDER_FULL_LOAD_ANY :(Повністю завантажити будь-який вид вантажу)
+STR_ORDER_NO_LOAD :(Не завантажуватись)
+STR_ORDER_UNLOAD :(Розвантажити)
+STR_ORDER_UNLOAD_FULL_LOAD :(Розвантажитись і чекати повного завантаження)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Розвантажитись і чекати повного завантаження будь-якого виду)
+STR_ORDER_UNLOAD_NO_LOAD :(Розвантажитись і залишитись пустим)
+STR_ORDER_TRANSFER :(Передати і взяти вантаж)
+STR_ORDER_TRANSFER_FULL_LOAD :(Передати і чекати повного завантаження)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Передати і чекати повного завантаження будь-якого виду)
+STR_ORDER_TRANSFER_NO_LOAD :(Передати і залишитись пустим)
+STR_ORDER_NO_UNLOAD :(Не розвантажуватись і взяти вантаж)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(Не розвантажуватись і чекати повного завантаження)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Не розвантажуватись і чекати повного завантаження будь-якого виду)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Змінити поведінку зупинки виділеного пункту
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Змінити поведінку завантаження виділеного пункту
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Змінити поведінку розвантаження виділеного пункту
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
+
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Додати складний наказ
+STR_ORDER_GO_TO_NEAREST_DEPOT :Прямувати до найближчого депо
+STR_ORDER_GO_TO_NEAREST_HANGAR :Прямувати до найближчого ангару
+STR_ORDER_NEAREST_DEPOT :найближчому
+STR_ORDER_NEAREST_HANGAR :найближчому ангарі
+STR_ORDER_SERVICE_AT :Техогляд у
+STR_ORDER_SERVICE_NON_STOP_AT :Техогляд без зупинки у
+STR_ORDER_TRAIN_DEPOT :Залізничне депо
+STR_ORDER_ROAD_DEPOT :Автомобільне депо
+STR_ORDER_SHIP_DEPOT :Док
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} Ангар
+
+STR_ORDER_CONDITIONAL :Зміна наказу з умовою
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Дані транспорту для базування наказу
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Як порівнювати дані транспорту з заданим значенням
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Значення, з яким порівнювати дані транспорту
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Введіть значення для порівняння
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Процент завантаження
+STR_ORDER_CONDITIONAL_RELIABILITY :Надійність
+STR_ORDER_CONDITIONAL_MAX_SPEED :Макс. швидкість
+STR_ORDER_CONDITIONAL_AGE :Вік транспорту (роки)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Потребує техогляду
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Завжди
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :дорівнює
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :не дорівнює
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :менше ніж
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :менше або дорівнює
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :більше ніж
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :більше або дорівнює
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :- так
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :- ні
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Перейти до наказу {COMMA}
+STR_CONDITIONAL_NUM :Перейти до наказу {COMMA}, якщо {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Перейти до наказу {COMMA}, якщо {STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Прямує (не за розкладом)
STR_TIMETABLE_TRAVEL_FOR :Прямує до {STRING}
@@ -2869,6 +2943,7 @@
STR_882D_VALUE :{LTBLUE}{ENGINE}{BLACK} Ціна: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
STR_882F_LOADING_UNLOADING :{LTBLUE}Завантажуюся/Розвантажуюся
+STR_LEAVING :{LTBLUE}Відправляється
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Поїзд повинен стояти в депо
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Неможливо відправити поїзд в депо...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Немає місця для наказів
@@ -3200,7 +3275,7 @@
STR_PERFORMANCE_DETAIL_CARGO :{BLACK}Вантаж:
STR_PERFORMANCE_DETAIL_MONEY :{BLACK}Кошти:
STR_PERFORMANCE_DETAIL_LOAN :{BLACK}Кредит:
-STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Всього:
+STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Підсумок:
############ End of order list
STR_PERFORMANCE_DETAIL_VEHICLES_TIP :{BLACK}Загальна кількість транспорту
STR_PERFORMANCE_DETAIL_STATIONS_TIP :{BLACK}Загальна кількість станцій.
@@ -3210,7 +3285,7 @@
STR_PERFORMANCE_DETAIL_DELIVERED_TIP :{BLACK}Кількість одиниць вантажу, доставлених за останні 4 квартали
STR_PERFORMANCE_DETAIL_CARGO_TIP :{BLACK}Кількість видів вантажу, доставлених за останній квартал
STR_PERFORMANCE_DETAIL_MONEY_TIP :{BLACK}Сума коштів на рахунку компанії
-STR_PERFORMANCE_DETAIL_LOAN_TIP :{BLACK}Сума кредиту, що надано компанії
+STR_PERFORMANCE_DETAIL_LOAN_TIP :{BLACK}Сума позики, наданої компанії
STR_PERFORMANCE_DETAIL_TOTAL_TIP :{BLACK}Загальна кількість балів
STR_NEWGRF_SETTINGS_BUTTON :{BLACK}Налаштування NewGRF
@@ -3473,7 +3548,7 @@
############ Tooltip measurment
STR_MEASURE_LENGTH :{BLACK}Довжина: {NUM}
-STR_MEASURE_AREA :{BLACK}Область: {NUM} x {NUM}
+STR_MEASURE_AREA :{BLACK}Ділянка: {NUM} x {NUM}
STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Довжина: {NUM}{}Різниця висот: {NUM} м
STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Ділянка: {NUM} x {NUM}{}Різниця висот: {NUM} м
@@ -3498,6 +3573,7 @@
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Переключити прозорість для споруд, таких як маяки та антени. CTRL+click - запам'ятати
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Переключити прозорість для ЛЕП. CTRL+click - запам'ятати
STR_TRANSPARENT_LOADING_DESC :{BLACK}Змінити прозорість індикаторів завантаження. CTRL+click - запам'ятати
+STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Зробити об'єкти невидимими, а не прозорими
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
@@ -3601,8 +3677,8 @@
STR_FACE_LIPS_MOUSTACHE_TIP :{BLACK}Змінити губи або вуса
STR_FACE_CHIN :Підборіддя:
STR_FACE_CHIN_TIP :{BLACK}Змінити підборіддя
-STR_FACE_JACKET :Жакет:
-STR_FACE_JACKET_TIP :{BLACK}Змінити жакет
+STR_FACE_JACKET :Піджак:
+STR_FACE_JACKET_TIP :{BLACK}Змінити піджак
STR_FACE_COLLAR :Комір
STR_FACE_COLLAR_TIP :{BLACK}Змінити комір
STR_FACE_TIE :Краватка:
--- a/src/lang/unfinished/latvian.txt Fri Apr 25 07:06:57 2008 +0000
+++ b/src/lang/unfinished/latvian.txt Fri Apr 25 15:20:48 2008 +0000
@@ -11,11 +11,11 @@
STR_NULL :
STR_0001_OFF_EDGE_OF_MAP :{WHITE}Ārpus kartes robežām
STR_0002_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}Pārāk tuvu kartes malai
-STR_0003_NOT_ENOUGH_CASH_REQUIRES :{WHITE}Nepietiek naudas - nepieciešami {CURRENCY}
+STR_0003_NOT_ENOUGH_CASH_REQUIRES :{WHITE}Nepietiek naudas - nepieciešams {CURRENCY}
STR_0004 :{WHITE}{CURRENCY}
STR_EMPTY :
STR_0007_FLAT_LAND_REQUIRED :{WHITE}Zemei jābūt plakanai
-STR_0008_WAITING :{BLACK}Gaidam: {WHITE}{STRING.a}
+STR_0008_WAITING :{BLACK}Gaida: {WHITE}{STRING.a}
STR_0009 :{WHITE}{CARGO}
STR_000C_ACCEPTS :{BLACK}Pieņem: {WHITE}
STR_000D_ACCEPTS :{BLACK}Pieņem: {GOLD}
@@ -24,58 +24,58 @@
STR_0010_COAL :Ogles
STR_0011_MAIL :Pasts
STR_0012_OIL :Nafta
-STR_0013_LIVESTOCK :Liellopus
+STR_0013_LIVESTOCK :Mājlopi
STR_0014_GOODS :Preces
-STR_0015_GRAIN :Graudus
-STR_0016_WOOD :Kokmateria'lus
-STR_0017_IRON_ORE :Dzelzs ru'du
-STR_0018_STEEL :Te'raudu
-STR_0019_VALUABLES :Ve'rtspapi'ri
-STR_001A_COPPER_ORE :Vara ru'da
-STR_001B_MAIZE :Kukuru'za
-STR_001C_FRUIT :Augl'i
+STR_0015_GRAIN :Graudi
+STR_0016_WOOD :Koksne
+STR_0017_IRON_ORE :Dzelzsrūda
+STR_0018_STEEL :Tērauds
+STR_0019_VALUABLES :Vērtslietas
+STR_001A_COPPER_ORE :Vara rūda
+STR_001B_MAIZE :Kukurūza
+STR_001C_FRUIT :Augļi
STR_001D_DIAMONDS :Dimanti
-STR_001E_FOOD :Pa'rtika
-STR_001F_PAPER :Papi'rs
+STR_001E_FOOD :Pārtika
+STR_001F_PAPER :Papīrs
STR_0020_GOLD :Zelts
-STR_0021_WATER :U'dens
-STR_0022_WHEAT :Kvies'i
-STR_0023_RUBBER :Gumija
+STR_0021_WATER :Ūdens
+STR_0022_WHEAT :Kvieši
+STR_0023_RUBBER :Kaučuks
STR_0024_SUGAR :Cukurs
-STR_0025_TOYS :Rotal'lietas
+STR_0025_TOYS :Rotaļlietas
STR_0026_CANDY :Saldumi
STR_0027_COLA :Kola
STR_0028_COTTON_CANDY :Cukurvate
-STR_0029_BUBBLES :Burbul'i
-STR_002A_TOFFEE :Cukurpla'ksnes
+STR_0029_BUBBLES :Burbuļi
+STR_002A_TOFFEE :Īriss
STR_002B_BATTERIES :Baterijas
STR_002C_PLASTIC :Plastmasa
-STR_002D_FIZZY_DRINKS :Burbul'u'den'i
+STR_002D_FIZZY_DRINKS :Limonāde
STR_002E :
-STR_002F_PASSENGER :Pasaz'ieris
-STR_0030_COAL :Ogle
+STR_002F_PASSENGER :Pasažieris
+STR_0030_COAL :Ogles
STR_0031_MAIL :Pasts
STR_0032_OIL :Nafta
-STR_0033_LIVESTOCK :Liellopi
+STR_0033_LIVESTOCK :Mājlopi
STR_0034_GOODS :Preces
STR_0035_GRAIN :Graudi
-STR_0036_WOOD :Kokmaterea'li
-STR_0037_IRON_ORE :Dzelzs ru'da
-STR_0038_STEEL :Te'rauds
-STR_0039_VALUABLES :Ve'rtspapi'ri
-STR_003A_COPPER_ORE :Vara ru'da
-STR_003B_MAIZE :Kukuru'za
-STR_003C_FRUIT :Augl'i
-STR_003D_DIAMOND :Dimanti
-STR_003E_FOOD :Pa'rtika
-STR_003F_PAPER :papi'rs
+STR_0036_WOOD :Koksne
+STR_0037_IRON_ORE :Dzelzsrūda
+STR_0038_STEEL :Tērauds
+STR_0039_VALUABLES :Vērtslietas
+STR_003A_COPPER_ORE :Vara rūda
+STR_003B_MAIZE :Kukurūza
+STR_003C_FRUIT :Augļi
+STR_003D_DIAMOND :Dimants
+STR_003E_FOOD :Pārtika
+STR_003F_PAPER :Papīrs
STR_0040_GOLD :Zelts
-STR_0041_WATER :U'dens
-STR_0042_WHEAT :Kvies'i
-STR_0043_RUBBER :Gumija
+STR_0041_WATER :Ūdens
+STR_0042_WHEAT :Kvieši
+STR_0043_RUBBER :Kaučuks
STR_0044_SUGAR :Cukurs
-STR_0045_TOY :Rotal'lieta
-STR_0046_CANDY :Saldumi
+STR_0045_TOY :Rotaļlieta
+STR_0046_CANDY :Saldums
STR_0047_COLA :Kola
STR_0048_COTTON_CANDY :Cukurvate
STR_0049_BUBBLE :Burbulis
@@ -1112,6 +1112,7 @@
STR_CONFIG_PATCHES_QUERY_CAPT :{WHITE}Mainīt iestatījuma vērtību
STR_CONFIG_PATCHES_SERVICE_INTERVAL_INCOMPATIBLE :{WHITE}Daži vai visi apkalpošanas intervāli ir nesavietojami ar izvēlētajiem iestatījumiem! Der 5-90% un 30-800 dienas
+
STR_TEMPERATE_LANDSCAPE :Mērenais klimats
STR_SUB_ARCTIC_LANDSCAPE :Subarktiskais klimats
STR_SUB_TROPICAL_LANDSCAPE :Subtropiskais klimats
@@ -1705,8 +1706,23 @@
STR_8036_X2001_ELECTRIC :'X2001' (Electric)
STR_8037_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' (Electric)
STR_8038_WIZZOWOW_Z99 :Wizzowow Z99
+STR_8039_PASSENGER_CAR :Pasažieru Vagons
STR_803A_MAIL_VAN :Pasta Vagons
-STR_8048_FRUIT_TRUCK :Fruktu Vagons
+STR_803B_COAL_CAR :Ogļu Platforma
+STR_803C_OIL_TANKER :Naftas Cisterna
+STR_803D_LIVESTOCK_VAN :Mājlopu Vagons
+STR_803E_GOODS_VAN :Preču Vagons
+STR_803F_GRAIN_HOPPER :Graudu Vagons
+STR_8040_WOOD_TRUCK :Kokmateriālu Platforma
+STR_8041_IRON_ORE_HOPPER :Dzelzsrūdas Vagons
+STR_8042_STEEL_TRUCK :Tērauda Platforma
+STR_8043_ARMORED_VAN :Bruņots Vagons
+STR_8044_FOOD_VAN :Pārtikas Vagons
+STR_8045_PAPER_TRUCK :Papīra Platforma
+STR_8046_COPPER_ORE_HOPPER :Vara Rūdas Vagonete
+STR_8047_WATER_TANKER :Ūdens Cisterna
+STR_8048_FRUIT_TRUCK :Augļu Platforma
+STR_8049_RUBBER_TRUCK :Gumijas Platforma
STR_8054_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (Electric)
STR_8055_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cyclops' (Electric)
STR_8056_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (Electric)
@@ -1776,10 +1792,21 @@
+
+
STR_8812_EMPTY :{LTBLUE}Tukšs
STR_8816 :{BLACK}-
+STR_8819_TRAIN_TOO_LONG :{WHITE}Vilciens ir pārāk garš
+STR_881A_TRAINS_CAN_ONLY_BE_ALTERED :{WHITE}Vilcienus ir iespējams pārveidot tikai tad, kad tie ir apstādināti depo
+STR_881C_NEW_RAIL_VEHICLES :{WHITE}Jauni Dzelzceļa Satiksmes Līdzekļi
+STR_NEW_ELRAIL_VEHICLES :{WHITE}Jauni Elektriskā Dzelzceļa Satiksmes Līdzekļi
+STR_881D_NEW_MONORAIL_VEHICLES :{WHITE}Jauni Viensliežu Dzelzeļa Satiksmes Līdzekļi
+STR_881E_NEW_MAGLEV_VEHICLES :{WHITE}Jauni Magnētiskā Dzelzceļa Satiksmes Līdzekļi
+STR_ALL_AVAIL_RAIL_VEHICLES :{WHITE}Dzelzceļa Satiksmes Līdzekļi
+STR_881F_BUILD_VEHICLE :{BLACK}Būvēt Satiksmes Līdzekli
+STR_CLONE_ROAD_VEHICLE :{BLACK}Klonēt Satiksmes Līdzekli
STR_SERVICE :{BLACK}Serviss
STR_882E :{WHITE}{VEHICLE}
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Vilciens ja'apsta'dina kad tas ierodas depo
@@ -1911,6 +1938,9 @@
STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Ietilpi'ba: {GOLD}{COMMA} pasaz'ieru, {COMMA} pasta somas
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Motor-vagoni: {GOLD}+{POWER}zs{BLACK} Sva'rs: {GOLD}+{WEIGHT_S}t
+########### For showing numbers in widgets
+
+
########### String for New Landscape Generator
@@ -1942,3 +1972,9 @@
############ Face formatting
########
+
+############ signal GUI
+########
+
+############ on screen keyboard
+########
--- a/src/misc/autocopyptr.hpp Fri Apr 25 07:06:57 2008 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/* $Id$ */
-
-/** @file autocopyptr.hpp */
-
-#ifndef AUTOCOPYPTR_HPP
-#define AUTOCOPYPTR_HPP
-
-#if 0 // reenable when needed
-/** CAutoCopyPtrT - kind of CoW (Copy on Write) pointer.
- * It is non-invasive smart pointer (reference counter is held outside
- * of Tdata).
- * When copied, its new copy shares the same underlaying structure Tdata.
- * When dereferenced, its behaviour depends on 2 factors:
- * - whether the data is shared (used by more than one pointer)
- * - type of access (read/write)
- * When shared pointer is dereferenced for write, new clone of Tdata
- * is made first.
- * Can't be used for polymorphic data types (interfaces).
- */
-template <class Tdata_>
-class CAutoCopyPtrT {
-protected:
- typedef Tdata_ Tdata;
-
- struct CItem {
- int m_ref_cnt; ///< reference counter
- Tdata m_data; ///< custom data itself
-
- FORCEINLINE CItem() : m_ref_cnt(1) {};
- FORCEINLINE CItem(const Tdata& data) : m_ref_cnt(1), m_data(data) {};
- FORCEINLINE CItem(const CItem& src) : m_ref_cnt(1), m_data(src.m_data) {};
- };
-
- mutable CItem* m_pI; ///< points to the ref-counted data
-
-public:
- FORCEINLINE CAutoCopyPtrT() : m_pI(NULL) {};
- FORCEINLINE CAutoCopyPtrT(const Tdata& data) : m_pI(new CItem(data)) {};
- FORCEINLINE CAutoCopyPtrT(const CAutoCopyPtrT& src) : m_pI(src.m_pI) {if (m_pI != NULL) m_pI->m_ref_cnt++;}
- FORCEINLINE ~CAutoCopyPtrT() {if (m_pI == NULL || (--m_pI->m_ref_cnt) > 0) return; delete m_pI; m_pI = NULL;}
-
- /** data accessor (read only) */
- FORCEINLINE const Tdata& GetDataRO() const {if (m_pI == NULL) m_pI = new CItem(); return m_pI->m_data;}
- /** data accessor (read / write) */
- FORCEINLINE Tdata& GetDataRW() {CloneIfShared(); if (m_pI == NULL) m_pI = new CItem(); return m_pI->m_data;}
-
- /** clone data if it is shared */
- FORCEINLINE void CloneIfShared()
- {
- if (m_pI != NULL && m_pI->m_ref_cnt > 1) {
- // we share data item with somebody, clone it to become an exclusive owner
- CItem* pNewI = new CItem(*m_pI);
- m_pI->m_ref_cnt--;
- m_pI = pNewI;
- }
- }
-
- /** assign pointer from the other one (maintaining ref counts) */
- FORCEINLINE void Assign(const CAutoCopyPtrT& src)
- {
- if (m_pI == src.m_pI) return;
- if (m_pI != NULL && (--m_pI->m_ref_cnt) <= 0) delete m_pI;
- m_pI = src.m_pI;
- if (m_pI != NULL) m_pI->m_ref_cnt++;
- }
-
- /** dereference operator (read only) */
- FORCEINLINE const Tdata* operator -> () const {return &GetDataRO();}
- /** dereference operator (read / write) */
- FORCEINLINE Tdata* operator -> () {return &GetDataRW();}
-
- /** assignment operator */
- FORCEINLINE CAutoCopyPtrT& operator = (const CAutoCopyPtrT& src) {Assign(src); return *this;}
-
- /** forwarding 'lower then' operator to the underlaying items */
- FORCEINLINE bool operator < (const CAutoCopyPtrT& other) const
- {
- assert(m_pI != NULL);
- assert(other.m_pI != NULL);
- return (m_pI->m_data) < (other.m_pI->m_data);
- }
-};
-
-#endif /* 0 */
-#endif /* AUTOCOPYPTR_HPP */
--- a/src/misc/autoptr.hpp Fri Apr 25 07:06:57 2008 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/* $Id$ */
-
-/** @file autoptr.hpp */
-
-#ifndef AUTOPTR_HPP
-#define AUTOPTR_HPP
-
-/** AutoPtrT - kind of smart pointer that ensures the owned object gets
- * deleted when its pointer goes out of scope.
- * It is non-invasive smart pointer (no reference counter).
- * When copied, the copy takes ownership of underlying object
- * and original becomes NULL!
- * Can be used also for polymorphic data types (interfaces).
- */
-template <class T>
-class AutoPtrT {
-public:
- typedef T obj_t;
-
-protected:
- mutable T* m_p; ///< points to the data
-
-public:
- FORCEINLINE AutoPtrT()
- : m_p(NULL)
- {};
-
- FORCEINLINE AutoPtrT(const AutoPtrT<T>& src)
- : m_p(src.m_p)
- {
- if (m_p != NULL) src.m_p = NULL;
- };
-
- FORCEINLINE AutoPtrT(T *p)
- : m_p(p)
- {}
-
- FORCEINLINE ~AutoPtrT()
- {
- if (m_p != NULL) {
- T *p = m_p;
- m_p = NULL;
- delete p;
- }
- }
-
- /** give-up ownership and NULLify the raw pointer */
- FORCEINLINE T* Detach()
- {
- T* p = m_p;
- m_p = NULL;
- return p;
- }
-
- /** raw-pointer cast operator (read only) */
- FORCEINLINE operator const T* () const
- {
- return m_p;
- }
-
- /** raw-pointer cast operator */
- FORCEINLINE operator T* ()
- {
- return m_p;
- }
-
- /** dereference operator (read only) */
- FORCEINLINE const T* operator -> () const
- {
- assert(m_p != NULL);
- return m_p;
- }
-
- /** dereference operator (read / write) */
- FORCEINLINE T* operator -> ()
- {
- assert(m_p != NULL);
- return m_p;
- }
-
- /** assignment operator */
- FORCEINLINE AutoPtrT& operator = (const AutoPtrT& src)
- {
- /* Save original pointer and replace it with the given one to avoid recursive calls. */
- T* p = m_p;
- m_p = src.m_p;
-
- if (m_p != NULL) src.m_p = NULL;
-
- if (p != NULL) {
- /* Now we can safely delete the old one. */
- delete p;
- }
- return *this;
- }
-
- /** forwarding 'lower than' operator to the underlaying items */
- FORCEINLINE bool operator < (const AutoPtrT& other) const
- {
- assert(m_p != NULL);
- assert(other.m_p != NULL);
- return (*m_p) < (*other.m_p);
- }
-};
-
-#endif /* AUTOPTR_HPP */
--- a/src/misc_gui.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/misc_gui.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -1455,6 +1455,7 @@
case FIOS_TYPE_DIR: sort_start++; break;
case FIOS_TYPE_PARENT: sort_start++; break;
case FIOS_TYPE_DRIVE: sort_end++; break;
+ default: break;
}
}
--- a/src/newgrf.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/newgrf.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -115,8 +115,13 @@
MAX_STATIONS = 256,
};
-static uint16 cargo_allowed[TOTAL_NUM_ENGINES];
-static uint16 cargo_disallowed[TOTAL_NUM_ENGINES];
+/* Temporary data used when loading only */
+struct GRFTempEngineData {
+ uint16 cargo_allowed;
+ uint16 cargo_disallowed;
+};
+
+static GRFTempEngineData *_gted;
/* Contains the GRF ID of the owner of a vehicle if it has been reserved */
static uint32 _grm_engines[TOTAL_NUM_ENGINES];
@@ -573,11 +578,11 @@
break;
case 0x28: // Cargo classes allowed
- cargo_allowed[engine + i] = grf_load_word(&buf);
+ _gted[engine + i].cargo_allowed = grf_load_word(&buf);
break;
case 0x29: // Cargo classes disallowed
- cargo_disallowed[engine + i] = grf_load_word(&buf);
+ _gted[engine + i].cargo_disallowed = grf_load_word(&buf);
break;
case 0x2A: // Long format introduction date (days since year 0)
@@ -703,11 +708,11 @@
break;
case 0x1D: // Cargo classes allowed
- cargo_allowed[ROAD_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+ _gted[ROAD_ENGINES_INDEX + engine + i].cargo_allowed = grf_load_word(&buf);
break;
case 0x1E: // Cargo classes disallowed
- cargo_disallowed[ROAD_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+ _gted[ROAD_ENGINES_INDEX + engine + i].cargo_disallowed = grf_load_word(&buf);
break;
case 0x1F: // Long format introduction date (days since year 0)
@@ -809,11 +814,11 @@
break;
case 0x18: // Cargo classes allowed
- cargo_allowed[SHIP_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+ _gted[SHIP_ENGINES_INDEX + engine + i].cargo_allowed = grf_load_word(&buf);
break;
case 0x19: // Cargo classes disallowed
- cargo_disallowed[SHIP_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+ _gted[SHIP_ENGINES_INDEX + engine + i].cargo_disallowed = grf_load_word(&buf);
break;
case 0x1A: // Long format introduction date (days since year 0)
@@ -913,11 +918,11 @@
break;
case 0x18: // Cargo classes allowed
- cargo_allowed[AIRCRAFT_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+ _gted[AIRCRAFT_ENGINES_INDEX + engine + i].cargo_allowed = grf_load_word(&buf);
break;
case 0x19: // Cargo classes disallowed
- cargo_disallowed[AIRCRAFT_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+ _gted[AIRCRAFT_ENGINES_INDEX + engine + i].cargo_disallowed = grf_load_word(&buf);
break;
case 0x1A: // Long format introduction date (days since year 0)
@@ -5218,9 +5223,8 @@
/* Copy/reset original bridge info data */
ResetBridges();
- /* Reset refit/cargo class data */
- memset(&cargo_allowed, 0, sizeof(cargo_allowed));
- memset(&cargo_disallowed, 0, sizeof(cargo_disallowed));
+ /* Allocate temporary refit/cargo class data */
+ _gted = CallocT<GRFTempEngineData>(TOTAL_NUM_ENGINES);
/* Reset GRM reservations */
memset(&_grm_engines, 0, sizeof(_grm_engines));
@@ -5423,12 +5427,12 @@
}
}
- if (cargo_allowed[engine] != 0) {
+ if (_gted[engine].cargo_allowed != 0) {
/* Build up the list of cargo types from the set cargo classes. */
for (CargoID i = 0; i < NUM_CARGO; i++) {
const CargoSpec *cs = GetCargo(i);
- if (cargo_allowed[engine] & cs->classes) SetBit(mask, i);
- if (cargo_disallowed[engine] & cs->classes) SetBit(not_mask, i);
+ if (_gted[engine].cargo_allowed & cs->classes) SetBit(mask, i);
+ if (_gted[engine].cargo_disallowed & cs->classes) SetBit(not_mask, i);
}
} else {
/* Don't apply default refit mask to wagons or engines with no capacity */
@@ -5849,6 +5853,9 @@
/* Load old shore sprites in new position, if they were replaced by ActionA */
ActivateOldShore();
+
+ /* Deallocate temporary loading data */
+ free(_gted);
}
void LoadNewGRF(uint load_index, uint file_index)
--- a/src/newgrf_engine.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/newgrf_engine.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -1100,18 +1100,6 @@
}
/**
- * Get the EngineID at position pos.
- * Used when drawing a(n unsorted) list of engines.
- * @param pos List position/
- * @return The EngineID at the requested position.
- */
-EngineID GetRailVehAtPosition(EngineID pos)
-{
- if (pos < NUM_TRAIN_ENGINES) return _engine_list_order[pos];
- return pos;
-}
-
-/**
* Get the list position of an engine.
* Used when sorting a list of engines.
* @param engine ID of the engine.
--- a/src/newgrf_engine.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/newgrf_engine.h Fri Apr 25 15:20:48 2008 +0000
@@ -57,7 +57,6 @@
void UnloadCustomEngineSprites();
void ResetEngineListOrder();
-EngineID GetRailVehAtPosition(EngineID pos);
uint16 ListPositionOfEngine(EngineID engine);
void AlterRailVehListOrder(EngineID engine, EngineID target);
--- a/src/newgrf_house.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/newgrf_house.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -547,6 +547,8 @@
HouseID hid = GetHouseType(tile);
HouseSpec *hs = GetHouseSpecs(hid);
+ if (hs->spritegroup == NULL) return;
+
NewHouseResolver(&object, hid, tile, GetTownByTile(tile));
object.callback = CBID_RANDOM_TRIGGER;
--- a/src/newgrf_industrytiles.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/newgrf_industrytiles.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -417,6 +417,8 @@
IndustryGfx gfx = GetIndustryGfx(tile);
const IndustryTileSpec *itspec = GetIndustryTileSpec(gfx);
+ if (itspec->grf_prop.spritegroup == NULL) return;
+
NewIndustryTileResolver(&object, gfx, tile, ind);
object.callback = CBID_RANDOM_TRIGGER;
--- a/src/newgrf_station.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/newgrf_station.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -676,7 +676,7 @@
{
uint i;
- if (statspec == NULL) return 0;
+ if (statspec == NULL || st == NULL) return 0;
/* Check if this spec has already been allocated */
for (i = 1; i < st->num_specs && i < MAX_SPECLIST; i++) {
--- a/src/news_gui.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/news_gui.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -16,6 +16,7 @@
#include "sound_func.h"
#include "string_func.h"
#include "widgets/dropdown_func.h"
+#include "map_func.h"
#include "table/sprites.h"
#include "table/strings.h"
@@ -45,8 +46,6 @@
* \endverbatim
*/
-/** Number of news items in the FIFO queue */
-#define MAX_NEWS 30
#define NB_WIDG_PER_SETTING 4
typedef byte NewsID;
@@ -54,7 +53,8 @@
NewsItem _statusbar_news_item;
bool _news_ticker_sound;
-static NewsItem _news_items[MAX_NEWS]; ///< The news FIFO queue
+static NewsItem *_news_items = NULL; ///< The news FIFO queue
+static uint _max_news_items = 0; ///< size of news FIFO queue
static NewsID _current_news = INVALID_NEWS; ///< points to news item that should be shown next
static NewsID _oldest_news = 0; ///< points to first item in fifo queue
static NewsID _latest_news = INVALID_NEWS; ///< points to last item in fifo queue
@@ -75,7 +75,7 @@
* _forced_news. Otherwise, \a _forced_news variable is INVALID_NEWS. */
static NewsID _forced_news = INVALID_NEWS;
-static byte _total_news = 0; ///< Number of news items in FIFO queue @see _news_items
+static uint _total_news = 0; ///< Number of news items in FIFO queue @see _news_items
void DrawNewsNewVehicleAvail(Window *w, const NewsItem *ni);
void DrawNewsBankrupcy(Window *w, const NewsItem *ni);
@@ -98,7 +98,9 @@
/** Initialize the news-items data structures */
void InitNewsItemStructs()
{
- memset(_news_items, 0, sizeof(_news_items));
+ free(_news_items);
+ _max_news_items = max(ScaleByMapSize(30), 30U);
+ _news_items = CallocT<NewsItem>(_max_news_items);
_current_news = INVALID_NEWS;
_oldest_news = 0;
_latest_news = INVALID_NEWS;
@@ -245,7 +247,7 @@
static inline NewsID IncreaseIndex(NewsID i)
{
assert(i != INVALID_NEWS);
- return (i + 1) % MAX_NEWS;
+ return (i + 1) % _max_news_items;
}
/**
@@ -255,7 +257,7 @@
static inline NewsID DecreaseIndex(NewsID i)
{
assert(i != INVALID_NEWS);
- return (i + MAX_NEWS - 1) % MAX_NEWS;
+ return (i + _max_news_items - 1) % _max_news_items;
}
/**
@@ -287,11 +289,11 @@
if (_game_mode == GM_MENU) return;
/* check the rare case that the oldest (to be overwritten) news item is open */
- if (_total_news == MAX_NEWS && (_oldest_news == _current_news || _oldest_news == _forced_news)) {
+ if (_total_news == _max_news_items && (_oldest_news == _current_news || _oldest_news == _forced_news)) {
MoveToNextItem();
}
- if (_total_news < MAX_NEWS) _total_news++;
+ if (_total_news < _max_news_items) _total_news++;
/* Increase _latest_news. If we have no news yet, use _oldest news as an
* index. We cannot use 0 as _oldest_news can jump around due to
@@ -301,7 +303,7 @@
/* If the fifo-buffer is full, overwrite the oldest entry */
if (l_news != INVALID_NEWS && _latest_news == _oldest_news) {
- assert(_total_news == MAX_NEWS);
+ assert(_total_news == _max_news_items);
_oldest_news = IncreaseIndex(_oldest_news);
}
@@ -467,7 +469,7 @@
{
NewsID item = (_forced_news == INVALID_NEWS) ? _current_news : _forced_news;
- if (item >= MAX_NEWS) return true;
+ if (item >= _max_news_items) return true;
NewsItem *ni = &_news_items[item];
/* Ticker message
@@ -575,12 +577,12 @@
if (i >= _total_news) return INVALID_NEWS;
if (_latest_news < i) {
- i = _latest_news + MAX_NEWS - i;
+ i = _latest_news + _max_news_items - i;
} else {
i = _latest_news - i;
}
- i %= MAX_NEWS;
+ i %= _max_news_items;
return i;
}
--- a/src/oldpool.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/oldpool.h Fri Apr 25 15:20:48 2008 +0000
@@ -292,6 +292,9 @@
{
return Tpool->CleaningPool();
}
+
+public:
+ static bool CanAllocateItem();
};
--- a/src/oldpool_func.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/oldpool_func.h Fri Apr 25 15:20:48 2008 +0000
@@ -31,4 +31,25 @@
return NULL;
}
+/**
+ * Check whether we can allocate an item in this pool. This to prevent the
+ * need to actually construct the object and then destructing it again,
+ * which could be *very* costly.
+ * @return true if and only if at least ONE item can be allocated.
+ */
+template<typename T, typename Tid, OldMemoryPool<T> *Tpool> bool PoolItem<T, Tid, Tpool>::CanAllocateItem()
+{
+ uint last_minus_one = Tpool->GetSize() - 1;
+
+ for (T *t = Tpool->Get(Tpool->first_free_index); t != NULL; t = (t->index < last_minus_one) ? Tpool->Get(t->index + 1U) : NULL) {
+ if (!t->IsValid()) return true;
+ Tpool->first_free_index = t->index;
+ }
+
+ /* Check if we can add a block to the pool */
+ if (Tpool->AddBlockToPool()) return CanAllocateItem();
+
+ return false;
+}
+
#endif /* OLDPOOL_FUNC_H */
--- a/src/openttd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/openttd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -978,6 +978,54 @@
CallWindowTickEvent();
NewsLoop();
} else {
+#ifdef DEBUG_DUMP_COMMANDS
+ Vehicle *v;
+ FOR_ALL_VEHICLES(v) {
+ if (v != v->First()) continue;
+
+ switch (v->type) {
+ case VEH_ROAD: {
+ extern byte GetRoadVehLength(const Vehicle *v);
+ if (GetRoadVehLength(v) != v->u.road.cached_veh_length) {
+ printf("cache mismatch: vehicle %i, player %i, unit number %i wagon %i\n", v->index, (int)v->owner, v->unitnumberlength);
+ }
+ } break;
+
+ case VEH_TRAIN: {
+ uint length = 0;
+ for (Vehicle *u = v; u != NULL; u = u->Next()) length++;
+
+ VehicleRail *wagons = MallocT<VehicleRail>(length);
+ length = 0;
+ for (Vehicle *u = v; u != NULL; u = u->Next()) wagons[length++] = u->u.rail;
+
+ TrainConsistChanged(v);
+
+ length = 0;
+ for (Vehicle *u = v; u != NULL; u = u->Next()) {
+ if (memcmp(&wagons[length], &u->u.rail, sizeof(VehicleRail)) != 0) {
+ printf("cache mismatch: vehicle %i, player %i, unit number %i wagon %i\n", v->index, (int)v->owner, v->unitnumberlength);
+ }
+ length++;
+ }
+
+ free(wagons);
+ } break;
+
+ case VEH_AIRCRAFT: {
+ uint speed = v->u.air.cached_max_speed;
+ UpdateAircraftCache(v);
+ if (speed != v->u.air.cached_max_speed) {
+ printf("cache mismatch: vehicle %i, player %i, unit number %i wagon %i\n", v->index, (int)v->owner, v->unitnumberlength);
+ }
+ } break;
+
+ default:
+ break;
+ }
+ }
+#endif
+
/* All these actions has to be done from OWNER_NONE
* for multiplayer compatibility */
PlayerID p = _current_player;
@@ -2425,13 +2473,13 @@
}
/* Convert old PF settings to new */
- if (_patches.yapf.rail_use_yapf) {
+ if (_patches.yapf.rail_use_yapf || CheckSavegameVersion(28)) {
_patches.pathfinder_for_trains = VPF_YAPF;
} else {
_patches.pathfinder_for_trains = (_patches.new_pathfinding_all ? VPF_NPF : VPF_NTP);
}
- if (_patches.yapf.road_use_yapf) {
+ if (_patches.yapf.road_use_yapf || CheckSavegameVersion(28)) {
_patches.pathfinder_for_roadvehs = VPF_YAPF;
} else {
_patches.pathfinder_for_roadvehs = (_patches.new_pathfinding_all ? VPF_NPF : VPF_OPF);
--- a/src/order_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/order_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -1663,7 +1663,7 @@
case VEH_AIRCRAFT:
case VEH_SHIP:
- InvalidateWindowClasses(v->GetVehicleListWindowClass());
+ InvalidateWindowClasses(GetWindowClassForVehicleType(v->type));
break;
}
--- a/src/players.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/players.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -352,70 +352,78 @@
}
}
-#define COLOR_SWAP(i, j) do { byte t = colors[i];colors[i] = colors[j];colors[j] = t; } while(0)
-
-static const byte _color_sort[16] = {2, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 3, 1, 1, 1};
-static const byte _color_similar_1[16] = {8, 6, 255, 12, 255, 0, 1, 1, 0, 13, 11, 10, 3, 9, 15, 14};
-static const byte _color_similar_2[16] = {5, 7, 255, 255, 255, 8, 7, 6, 5, 12, 255, 255, 9, 255, 255, 255};
+static const byte _colour_sort[COLOUR_END] = {2, 2, 3, 2, 3, 2, 3, 2, 3, 2, 2, 2, 3, 1, 1, 1};
+static const Colours _similar_colour[COLOUR_END][2] = {
+ { COLOUR_BLUE, COLOUR_LIGHT_BLUE }, // COLOUR_DARK_BLUE
+ { COLOUR_GREEN, COLOUR_DARK_GREEN }, // COLOUR_PALE_GREEN
+ { INVALID_COLOUR, INVALID_COLOUR }, // COLOUR_PINK
+ { COLOUR_ORANGE, INVALID_COLOUR }, // COLOUR_YELLOW
+ { INVALID_COLOUR, INVALID_COLOUR }, // COLOUR_RED
+ { COLOUR_DARK_BLUE, COLOUR_BLUE }, // COLOUR_LIGHT_BLUE
+ { COLOUR_PALE_GREEN, COLOUR_DARK_GREEN }, // COLOUR_GREEN
+ { COLOUR_PALE_GREEN, COLOUR_GREEN }, // COLOUR_DARK_GREEN
+ { COLOUR_BLUE, COLOUR_LIGHT_BLUE }, // COLOUR_BLUE
+ { COLOUR_BROWN, COLOUR_ORANGE }, // COLOUR_CREAM
+ { COLOUR_PURPLE, INVALID_COLOUR }, // COLOUR_MAUVE
+ { COLOUR_MAUVE, INVALID_COLOUR }, // COLOUR_PURPLE
+ { COLOUR_YELLOW, COLOUR_CREAM }, // COLOUR_ORANGE
+ { COLOUR_CREAM, INVALID_COLOUR }, // COLOUR_BROWN
+ { COLOUR_WHITE, INVALID_COLOUR }, // COLOUR_GREY
+ { COLOUR_GREY, INVALID_COLOUR }, // COLOUR_WHITE
+};
-static byte GeneratePlayerColor()
+static byte GeneratePlayerColour()
{
- byte colors[16], pcolor, t2;
- int i, j, n;
- uint32 r;
- Player *p;
+ Colours colours[COLOUR_END];
/* Initialize array */
- for (i = 0; i != 16; i++) colors[i] = i;
+ for (uint i = 0; i < COLOUR_END; i++) colours[i] = (Colours)i;
/* And randomize it */
- n = 100;
- do {
- r = Random();
- COLOR_SWAP(GB(r, 0, 4), GB(r, 4, 4));
- } while (--n);
+ for (uint i = 0; i < 100; i++) {
+ uint r = Random();
+ Swap(colours[GB(r, 0, 4)], colours[GB(r, 4, 4)]);
+ }
/* Bubble sort it according to the values in table 1 */
- i = 16;
- do {
- for (j = 0; j != 15; j++) {
- if (_color_sort[colors[j]] < _color_sort[colors[j + 1]]) {
- COLOR_SWAP(j, j + 1);
+ for (uint i = 0; i < COLOUR_END; i++) {
+ for (uint j = 1; j < COLOUR_END; j++) {
+ if (_colour_sort[colours[j - 1]] < _colour_sort[colours[j]]) {
+ Swap(colours[j - 1], colours[j]);
}
}
- } while (--i);
+ };
/* Move the colors that look similar to each player's color to the side */
- FOR_ALL_PLAYERS(p) if (p->is_active) {
- pcolor = p->player_color;
- for (i = 0; i != 16; i++) if (colors[i] == pcolor) {
- colors[i] = 0xFF;
+ Player *p;
+ FOR_ALL_PLAYERS(p) {
+ if (!p->is_active) continue;
- t2 = _color_similar_1[pcolor];
- if (t2 == 0xFF) break;
- for (i = 0; i != 15; i++) {
- if (colors[i] == t2) {
- do COLOR_SWAP(i, i + 1); while (++i != 15);
- break;
- }
- }
+ Colours pcolour = (Colours)p->player_color;
- t2 = _color_similar_2[pcolor];
- if (t2 == 0xFF) break;
- for (i = 0; i != 15; i++) {
- if (colors[i] == t2) {
- do COLOR_SWAP(i, i + 1); while (++i != 15);
- break;
- }
+ for (uint i = 0; i < COLOUR_END; i++) {
+ if (colours[i] == pcolour) {
+ colours[i] = INVALID_COLOUR;
+ break;
}
- break;
+ }
+
+ for (uint j = 0; j < 2; j++) {
+ Colours similar = _similar_colour[pcolour][j];
+ if (similar == INVALID_COLOUR) break;
+
+ for (uint i = 1; i < COLOUR_END; i++) {
+ if (colours[i - 1] == similar) Swap(colours[i - 1], colours[i]);
+ }
}
}
/* Return the first available color */
- for (i = 0;; i++) {
- if (colors[i] != 0xFF) return colors[i];
+ for (uint i = 0; i < COLOUR_END; i++) {
+ if (colours[i] != INVALID_COLOUR) return colours[i];
}
+
+ NOT_REACHED();
}
static void GeneratePresidentName(Player *p)
@@ -485,7 +493,7 @@
if (p == NULL) return NULL;
/* Make a color */
- p->player_color = GeneratePlayerColor();
+ p->player_color = GeneratePlayerColour();
ResetPlayerLivery(p);
_player_colors[p->index] = p->player_color;
p->name_1 = STR_SV_UNNAMED;
--- a/src/rail.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/rail.h Fri Apr 25 15:20:48 2008 +0000
@@ -216,6 +216,7 @@
*/
void DrawCatenary(const TileInfo *ti);
void DrawCatenaryOnTunnel(const TileInfo *ti);
+void DrawCatenaryOnBridge(const TileInfo *ti);
Foundation GetRailFoundation(Slope tileh, TrackBits bits);
--- a/src/rail_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/rail_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -30,7 +30,6 @@
#include "newgrf_callbacks.h"
#include "newgrf_station.h"
#include "train.h"
-#include "misc/autoptr.hpp"
#include "variables.h"
#include "autoslope.h"
#include "transparency.h"
@@ -44,6 +43,7 @@
#include "station_map.h"
#include "water_map.h"
#include "functions.h"
+#include "oldpool_func.h"
#include "table/sprites.h"
#include "table/strings.h"
@@ -765,12 +765,10 @@
if (MayHaveBridgeAbove(tile) && IsBridgeAbove(tile)) return_cmd_error(STR_5007_MUST_DEMOLISH_BRIDGE_FIRST);
- Depot *d = new Depot(tile);
-
- if (d == NULL) return CMD_ERROR;
- AutoPtrT<Depot> d_auto_delete = d;
+ if (!Depot::CanAllocateItem()) return CMD_ERROR;
if (flags & DC_EXEC) {
+ Depot *d = new Depot(tile);
MakeRailDepot(tile, _current_player, dir, (RailType)p1);
MarkTileDirtyByTile(tile);
@@ -778,7 +776,6 @@
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, _current_player);
YapfNotifyTrackLayoutChange(tile, TrackdirToTrack(DiagdirToDiagTrackdir(dir)));
- d_auto_delete.Detach();
}
return cost.AddCost(_price.build_train_depot);
--- a/src/road_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/road_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -23,7 +23,6 @@
#include "newgrf.h"
#include "station_map.h"
#include "tunnel_map.h"
-#include "misc/autoptr.hpp"
#include "variables.h"
#include "autoslope.h"
#include "transparency.h"
@@ -38,6 +37,7 @@
#include "cheat_func.h"
#include "functions.h"
#include "effectvehicle_func.h"
+#include "oldpool_func.h"
#include "table/sprites.h"
#include "table/strings.h"
@@ -817,16 +817,14 @@
if (MayHaveBridgeAbove(tile) && IsBridgeAbove(tile)) return_cmd_error(STR_5007_MUST_DEMOLISH_BRIDGE_FIRST);
- Depot *dep = new Depot(tile);
- if (dep == NULL) return CMD_ERROR;
- AutoPtrT<Depot> d_auto_delete = dep;
+ if (!Depot::CanAllocateItem()) return CMD_ERROR;
if (flags & DC_EXEC) {
+ Depot *dep = new Depot(tile);
dep->town_index = ClosestTownFromTile(tile, (uint)-1)->index;
MakeRoadDepot(tile, _current_player, dir, rt);
MarkTileDirtyByTile(tile);
- d_auto_delete.Detach();
}
return cost.AddCost(_price.build_road_depot);
}
--- a/src/roadveh.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/roadveh.h Fri Apr 25 15:20:48 2008 +0000
@@ -71,7 +71,6 @@
void MarkDirty();
void UpdateDeltaXY(Direction direction);
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_ROADVEH_INC : EXPENSES_ROADVEH_RUN; }
- WindowClass GetVehicleListWindowClass() const { return WC_ROADVEH_LIST; }
bool IsPrimaryVehicle() const { return IsRoadVehFront(this); }
SpriteID GetImage(Direction direction) const;
int GetDisplaySpeed() const { return this->cur_speed * 10 / 32; }
--- a/src/ship.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/ship.h Fri Apr 25 15:20:48 2008 +0000
@@ -32,14 +32,13 @@
void MarkDirty();
void UpdateDeltaXY(Direction direction);
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_SHIP_INC : EXPENSES_SHIP_RUN; }
- WindowClass GetVehicleListWindowClass() const { return WC_SHIPS_LIST; }
void PlayLeaveStationSound() const;
bool IsPrimaryVehicle() const { return true; }
SpriteID GetImage(Direction direction) const;
int GetDisplaySpeed() const { return this->cur_speed * 10 / 32; }
int GetDisplayMaxSpeed() const { return this->max_speed * 10 / 32; }
Money GetRunningCost() const { return ShipVehInfo(this->engine_type)->running_cost * _price.ship_running; }
- bool IsInDepot() const { return this->u.ship.state == 0x80; }
+ bool IsInDepot() const { return this->u.ship.state == TRACK_BIT_DEPOT; }
void Tick();
void OnNewDay();
TileIndex GetOrderStationLocation(StationID station);
--- a/src/ship_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/ship_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -28,7 +28,6 @@
#include "newgrf_text.h"
#include "newgrf_sound.h"
#include "spritecache.h"
-#include "misc/autoptr.hpp"
#include "strings_func.h"
#include "functions.h"
#include "window_func.h"
@@ -283,26 +282,22 @@
static void CheckShipLeaveDepot(Vehicle *v)
{
- TileIndex tile;
- Axis axis;
- uint m;
-
if (!v->IsInDepot()) return;
- tile = v->tile;
- axis = GetShipDepotAxis(tile);
+ TileIndex tile = v->tile;
+ Axis axis = GetShipDepotAxis(tile);
- /* Check first side */
+ /* Check first (north) side */
if (_ship_sometracks[axis] & GetTileShipTrackStatus(TILE_ADD(tile, ToTileIndexDiff(_ship_leave_depot_offs[axis])))) {
- m = (axis == AXIS_X) ? 0x101 : 0x207;
- /* Check second side */
+ v->direction = ReverseDir(AxisToDirection(axis));
+ /* Check second (south) side */
} else if (_ship_sometracks[axis + 2] & GetTileShipTrackStatus(TILE_ADD(tile, -2 * ToTileIndexDiff(_ship_leave_depot_offs[axis])))) {
- m = (axis == AXIS_X) ? 0x105 : 0x203;
+ v->direction = AxisToDirection(axis);
} else {
return;
}
- v->direction = (Direction)GB(m, 0, 8);
- v->u.ship.state = (TrackBits)GB(m, 8, 8);
+
+ v->u.ship.state = AxisToTrackBits(axis);
v->vehstatus &= ~VS_HIDDEN;
v->cur_speed = 0;
--- a/src/signs.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/signs.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -11,7 +11,6 @@
#include "saveload.h"
#include "command_func.h"
#include "variables.h"
-#include "misc/autoptr.hpp"
#include "strings_func.h"
#include "viewport_func.h"
#include "zoom_func.h"
@@ -99,12 +98,11 @@
CommandCost CmdPlaceSign(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
{
/* Try to locate a new sign */
- Sign *si = new Sign(_current_player);
- if (si == NULL) return_cmd_error(STR_2808_TOO_MANY_SIGNS);
- AutoPtrT<Sign> s_auto_delete = si;
+ if (!Sign::CanAllocateItem()) return_cmd_error(STR_2808_TOO_MANY_SIGNS);
/* When we execute, really make the sign */
if (flags & DC_EXEC) {
+ Sign *si = new Sign(_current_player);
int x = TileX(tile) * TILE_SIZE;
int y = TileY(tile) * TILE_SIZE;
@@ -117,7 +115,6 @@
_sign_sort_dirty = true;
_new_sign_id = si->index;
_total_signs++;
- s_auto_delete.Detach();
}
return CommandCost();
--- a/src/station.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/station.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -21,6 +21,7 @@
#include "yapf/yapf.h"
#include "cargotype.h"
#include "roadveh.h"
+#include "window_type.h"
#include "station_gui.h"
#include "zoom_func.h"
#include "functions.h"
--- a/src/station_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/station_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -25,7 +25,6 @@
#include "newgrf_callbacks.h"
#include "newgrf_station.h"
#include "yapf/yapf.h"
-#include "misc/autoptr.hpp"
#include "road_type.h"
#include "road_internal.h" /* For drawing catenary/checking road removal */
#include "cargotype.h"
@@ -239,7 +238,7 @@
STATIONNAMING_HELIPORT,
};
-static bool GenerateStationName(Station *st, TileIndex tile, int flag)
+static void GenerateStationName(Station *st, TileIndex tile, int flag)
{
static const uint32 _gen_station_name_bits[] = {
0, /* 0 */
@@ -344,7 +343,6 @@
done:
st->string_id = found + STR_SV_STNAME;
- return true;
}
#undef M
@@ -962,10 +960,6 @@
/* See if there is a deleted station close to us. */
if (st == NULL) st = GetClosestStationFromTile(tile_org);
- /* In case of new station if DC_EXEC is NOT set we still need to create the station
- * to test if everything is OK. In this case we need to delete it before return. */
- AutoPtrT<Station> st_auto_delete;
-
if (st != NULL) {
/* Reuse an existing station. */
if (st->owner != _current_player)
@@ -983,17 +977,17 @@
if (!st->rect.BeforeAddRect(tile_org, w_org, h_org, StationRect::ADD_TEST)) return CMD_ERROR;
} else {
/* allocate and initialize new station */
- st = new Station(tile_org);
- if (st == NULL) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
-
- /* ensure that in case of error (or no DC_EXEC) the station gets deleted upon return */
- st_auto_delete = st;
-
- st->town = ClosestTownFromTile(tile_org, (uint)-1);
- if (!GenerateStationName(st, tile_org, STATIONNAMING_RAIL)) return CMD_ERROR;
-
- if (IsValidPlayer(_current_player) && (flags & DC_EXEC) != 0) {
- SetBit(st->town->have_ratings, _current_player);
+ if (!Station::CanAllocateItem()) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
+
+ if (flags & DC_EXEC) {
+ st = new Station();
+
+ st->town = ClosestTownFromTile(tile_org, UINT_MAX);
+ GenerateStationName(st, tile_org, STATIONNAMING_RAIL);
+
+ if (IsValidPlayer(_current_player)) {
+ SetBit(st->town->have_ratings, _current_player);
+ }
}
}
@@ -1088,8 +1082,6 @@
RebuildStationLists();
InvalidateWindow(WC_STATION_LIST, st->owner);
InvalidateWindowWidget(WC_STATION_VIEW, st->index, SVW_TRAINS);
- /* success, so don't delete the new station */
- st_auto_delete.Detach();
}
return cost;
@@ -1394,23 +1386,13 @@
if (st == NULL) st = GetClosestStationFromTile(tile);
/* give us a road stop in the list, and check if something went wrong */
- RoadStop *road_stop = new RoadStop(tile);
- if (road_stop == NULL) {
- return_cmd_error(type ? STR_TOO_MANY_TRUCK_STOPS : STR_TOO_MANY_BUS_STOPS);
- }
-
- /* ensure that in case of error (or no DC_EXEC) the new road stop gets deleted upon return */
- AutoPtrT<RoadStop> rs_auto_delete(road_stop);
+ if (!RoadStop::CanAllocateItem()) return_cmd_error(type ? STR_TOO_MANY_TRUCK_STOPS : STR_TOO_MANY_BUS_STOPS);
if (st != NULL &&
GetNumRoadStopsInStation(st, ROADSTOP_BUS) + GetNumRoadStopsInStation(st, ROADSTOP_TRUCK) >= RoadStop::LIMIT) {
return_cmd_error(type ? STR_TOO_MANY_TRUCK_STOPS : STR_TOO_MANY_BUS_STOPS);
}
- /* In case of new station if DC_EXEC is NOT set we still need to create the station
- * to test if everything is OK. In this case we need to delete it before return. */
- AutoPtrT<Station> st_auto_delete;
-
if (st != NULL) {
if (st->owner != _current_player) {
return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
@@ -1419,26 +1401,25 @@
if (!st->rect.BeforeAddTile(tile, StationRect::ADD_TEST)) return CMD_ERROR;
} else {
/* allocate and initialize new station */
- st = new Station(tile);
- if (st == NULL) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
-
- /* ensure that in case of error (or no DC_EXEC) the new station gets deleted upon return */
- st_auto_delete = st;
-
-
- Town *t = st->town = ClosestTownFromTile(tile, (uint)-1);
- if (!GenerateStationName(st, tile, STATIONNAMING_ROAD)) return CMD_ERROR;
-
- if (IsValidPlayer(_current_player) && (flags & DC_EXEC) != 0) {
- SetBit(t->have_ratings, _current_player);
+ if (!Station::CanAllocateItem()) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
+
+ if (flags & DC_EXEC) {
+ st = new Station();
+
+ st->town = ClosestTownFromTile(tile, UINT_MAX);
+ GenerateStationName(st, tile, STATIONNAMING_ROAD);
+
+ if (IsValidPlayer(_current_player)) {
+ SetBit(st->town->have_ratings, _current_player);
+ }
+ st->sign.width_1 = 0;
}
-
- st->sign.width_1 = 0;
}
cost.AddCost((type) ? _price.build_truck_station : _price.build_bus_station);
if (flags & DC_EXEC) {
+ RoadStop *road_stop = new RoadStop(tile);
/* Insert into linked list of RoadStops */
RoadStop **currstop = FindRoadStopSpot(type, st);
*currstop = road_stop;
@@ -1460,9 +1441,6 @@
RebuildStationLists();
InvalidateWindow(WC_STATION_LIST, st->owner);
InvalidateWindowWidget(WC_STATION_VIEW, st->index, SVW_ROADVEHS);
- /* success, so don't delete the new station and the new road stop */
- st_auto_delete.Detach();
- rs_auto_delete.Detach();
}
return cost;
}
@@ -1563,7 +1541,7 @@
/* Rebuild the drive throuhg road stop. As a road stop can only be
* removed by the owner of the roadstop, _current_player is the
* owner of the road stop. */
- MakeRoadNormal(tile, road_bits, rts, is_towns_road ? ClosestTownFromTile(tile, (uint)-1)->index : 0,
+ MakeRoadNormal(tile, road_bits, rts, is_towns_road ? ClosestTownFromTile(tile, UINT_MAX)->index : 0,
is_towns_road ? OWNER_TOWN : _current_player, _current_player, _current_player);
}
@@ -1717,10 +1695,6 @@
return CMD_ERROR;
}
- /* In case of new station if DC_EXEC is NOT set we still need to create the station
- * to test if everything is OK. In this case we need to delete it before return. */
- AutoPtrT<Station> st_auto_delete;
-
if (st != NULL) {
if (st->owner != _current_player) {
return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
@@ -1735,24 +1709,18 @@
airport_upgrade = false;
/* allocate and initialize new station */
- st = new Station(tile);
- if (st == NULL) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
-
- /* ensure that in case of error (or no DC_EXEC) the station gets deleted upon return */
- st_auto_delete = st;
-
- st->town = t;
-
- if (IsValidPlayer(_current_player) && (flags & DC_EXEC) != 0) {
- SetBit(t->have_ratings, _current_player);
- }
-
- st->sign.width_1 = 0;
-
- /* If only helicopters may use the airport generate a helicopter related (5)
- * station name, otherwise generate a normal airport name (1) */
- if (!GenerateStationName(st, tile, !(afc->flags & AirportFTAClass::AIRPLANES) ? STATIONNAMING_HELIPORT : STATIONNAMING_AIRPORT)) {
- return CMD_ERROR;
+ if (!Station::CanAllocateItem()) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
+
+ if (flags & DC_EXEC) {
+ st = new Station();
+
+ st->town = t;
+ GenerateStationName(st, tile, !(afc->flags & AirportFTAClass::AIRPLANES) ? STATIONNAMING_HELIPORT : STATIONNAMING_AIRPORT);
+
+ if (IsValidPlayer(_current_player)) {
+ SetBit(st->town->have_ratings, _current_player);
+ }
+ st->sign.width_1 = 0;
}
}
@@ -1789,8 +1757,6 @@
RebuildStationLists();
InvalidateWindow(WC_STATION_LIST, st->owner);
InvalidateWindowWidget(WC_STATION_VIEW, st->index, SVW_PLANES);
- /* success, so don't delete the new station */
- st_auto_delete.Detach();
}
return cost;
@@ -1860,18 +1826,18 @@
if (GetTileSlope(tile, NULL) != SLOPE_FLAT) return_cmd_error(STR_304B_SITE_UNSUITABLE);
/* allocate and initialize new station */
- Station *st = new Station(tile);
- if (st == NULL) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
-
- /* ensure that in case of error (or no DC_EXEC) the station gets deleted upon return */
- AutoPtrT<Station> st_auto_delete(st);
-
- st->town = ClosestTownFromTile(tile, (uint)-1);
- st->sign.width_1 = 0;
-
- if (!GenerateStationName(st, tile, STATIONNAMING_BUOY)) return CMD_ERROR;
+ if (!Station::CanAllocateItem()) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
if (flags & DC_EXEC) {
+ Station *st = new Station();
+
+ st->town = ClosestTownFromTile(tile, UINT_MAX);
+ GenerateStationName(st, tile, STATIONNAMING_BUOY);
+
+ if (IsValidPlayer(_current_player)) {
+ SetBit(st->town->have_ratings, _current_player);
+ }
+ st->sign.width_1 = 0;
st->dock_tile = tile;
st->facilities |= FACIL_DOCK;
/* Buoys are marked in the Station struct by this flag. Yes, it is this
@@ -1888,8 +1854,6 @@
RebuildStationLists();
InvalidateWindow(WC_STATION_LIST, st->owner);
InvalidateWindowWidget(WC_STATION_VIEW, st->index, SVW_SHIPS);
- /* success, so don't delete the new station */
- st_auto_delete.Detach();
}
return CommandCost(EXPENSES_CONSTRUCTION, _price.build_dock);
@@ -2011,10 +1975,6 @@
/* Find a station close to us */
if (st == NULL) st = GetClosestStationFromTile(tile);
- /* In case of new station if DC_EXEC is NOT set we still need to create the station
- * to test if everything is OK. In this case we need to delete it before return. */
- AutoPtrT<Station> st_auto_delete;
-
if (st != NULL) {
if (st->owner != _current_player) {
return_cmd_error(STR_3009_TOO_CLOSE_TO_ANOTHER_STATION);
@@ -2025,21 +1985,19 @@
if (st->dock_tile != 0) return_cmd_error(STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK);
} else {
/* allocate and initialize new station */
- st = new Station(tile);
- if (st == NULL) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
-
- /* ensure that in case of error (or no DC_EXEC) the station gets deleted upon return */
- st_auto_delete = st;
-
- Town *t = st->town = ClosestTownFromTile(tile, (uint)-1);
-
- if (IsValidPlayer(_current_player) && (flags & DC_EXEC) != 0) {
- SetBit(t->have_ratings, _current_player);
+ /* allocate and initialize new station */
+ if (!Station::CanAllocateItem()) return_cmd_error(STR_3008_TOO_MANY_STATIONS_LOADING);
+
+ if (flags & DC_EXEC) {
+ st = new Station();
+
+ st->town = ClosestTownFromTile(tile, UINT_MAX);
+ GenerateStationName(st, tile, STATIONNAMING_DOCK);
+
+ if (IsValidPlayer(_current_player)) {
+ SetBit(st->town->have_ratings, _current_player);
+ }
}
-
- st->sign.width_1 = 0;
-
- if (!GenerateStationName(st, tile, STATIONNAMING_DOCK)) return CMD_ERROR;
}
if (flags & DC_EXEC) {
@@ -2055,8 +2013,6 @@
RebuildStationLists();
InvalidateWindow(WC_STATION_LIST, st->owner);
InvalidateWindowWidget(WC_STATION_VIEW, st->index, SVW_SHIPS);
- /* success, so don't delete the new station */
- st_auto_delete.Detach();
}
return CommandCost(EXPENSES_CONSTRUCTION, _price.build_dock);
@@ -2182,7 +2138,7 @@
DrawGroundSprite(image, HasBit(image, PALETTE_MODIFIER_COLOR) ? palette : PAL_NONE);
}
- if (HasCatenary(GetRailType(ti->tile)) && IsStationTileElectrifiable(ti->tile)) DrawCatenary(ti);
+ if (IsRailwayStation(ti->tile) && HasCatenary(GetRailType(ti->tile)) && IsStationTileElectrifiable(ti->tile)) DrawCatenary(ti);
if (HasBit(roadtypes, ROADTYPE_TRAM)) {
Axis axis = GetRoadStopDir(ti->tile) == DIAGDIR_NE ? AXIS_X : AXIS_Y;
@@ -2874,14 +2830,10 @@
return;
}
- st->town = ClosestTownFromTile(tile, (uint)-1);
+ st->town = ClosestTownFromTile(tile, UINT_MAX);
st->sign.width_1 = 0;
- if (!GenerateStationName(st, tile, STATIONNAMING_OILRIG)) {
- DEBUG(misc, 0, "Can't allocate station-name for oilrig at 0x%X, reverting to oilrig only", tile);
- delete st;
- return;
- }
+ GenerateStationName(st, tile, STATIONNAMING_OILRIG);
MakeOilrig(tile, st->index);
--- a/src/toolbar_gui.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/toolbar_gui.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -315,10 +315,7 @@
int dis = ~0;
FOR_ALL_VEHICLES(v) {
- if (v->type == veh && v->IsPrimaryVehicle()) {
- ClrBit(dis, v->owner);
- break;
- }
+ if (v->type == veh && v->IsPrimaryVehicle()) ClrBit(dis, v->owner);
}
PopupMainPlayerToolbMenu(w, 13 + veh, dis);
}
--- a/src/town.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/town.h Fri Apr 25 15:20:48 2008 +0000
@@ -124,7 +124,6 @@
PlayerByte exclusivity; ///< which player has exslusivity
uint8 exclusive_counter; ///< months till the exclusivity expires
int16 ratings[MAX_PLAYERS];
- int16 test_rating;
/* Maximum amount of passengers and mail that can be transported. */
uint32 max_pass;
--- a/src/town_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/town_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -31,7 +31,6 @@
#include "newgrf_house.h"
#include "newgrf_commons.h"
#include "newgrf_townname.h"
-#include "misc/autoptr.hpp"
#include "autoslope.h"
#include "waypoint.h"
#include "transparency.h"
@@ -1538,16 +1537,14 @@
return_cmd_error(STR_023A_TOO_MANY_TOWNS);
/* Allocate town struct */
- Town *t = new Town(tile);
- if (t == NULL) return_cmd_error(STR_023A_TOO_MANY_TOWNS);
- AutoPtrT<Town> t_auto_delete = t;
+ if (!Town::CanAllocateItem()) return_cmd_error(STR_023A_TOO_MANY_TOWNS);
/* Create the town */
if (flags & DC_EXEC) {
+ Town *t = new Town(tile);
_generating_world = true;
DoCreateTown(t, tile, townnameparts, (TownSizeMode)p2, p1);
_generating_world = false;
- t_auto_delete.Detach();
}
return CommandCost();
}
@@ -2449,14 +2446,14 @@
}
static bool _town_rating_test = false;
+std::map<const Town *, int> _town_test_ratings;
void SetTownRatingTestMode(bool mode)
{
static int ref_count = 0;
if (mode) {
if (ref_count == 0) {
- Town *t;
- FOR_ALL_TOWNS(t) t->test_rating = t->ratings[_current_player];
+ _town_test_ratings.empty();
}
ref_count++;
} else {
@@ -2466,6 +2463,17 @@
_town_rating_test = !(ref_count == 0);
}
+static int GetRating(const Town *t)
+{
+ if (_town_rating_test) {
+ std::map<const Town *, int>::iterator it = _town_test_ratings.find(t);
+ if (it != _town_test_ratings.end()) {
+ return (*it).second;
+ }
+ }
+ return t->ratings[_current_player];
+}
+
void ChangeTownRating(Town *t, int add, int max)
{
/* if magic_bulldozer cheat is active, town doesn't penaltize for removing stuff */
@@ -2477,8 +2485,7 @@
SetBit(t->have_ratings, _current_player);
- int rating = _town_rating_test ? t->test_rating : t->ratings[_current_player];
-
+ int rating = GetRating(t);
if (add < 0) {
if (rating > max) {
rating += add;
@@ -2491,7 +2498,7 @@
}
}
if (_town_rating_test) {
- t->test_rating = rating;
+ _town_test_ratings[t] = rating;
} else {
t->ratings[_current_player] = rating;
}
@@ -2517,7 +2524,7 @@
*/
int modemod = _default_rating_settings[_opt.diff.town_council_tolerance][type];
- if ((_town_rating_test ? t->test_rating : t->ratings[_current_player]) < 16 + modemod && !(flags & DC_NO_TOWN_RATING)) {
+ if (GetRating(t) < 16 + modemod && !(flags & DC_NO_TOWN_RATING)) {
SetDParam(0, t->index);
_error_message = STR_2009_LOCAL_AUTHORITY_REFUSES;
return false;
--- a/src/train.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/train.h Fri Apr 25 15:20:48 2008 +0000
@@ -293,7 +293,6 @@
void MarkDirty();
void UpdateDeltaXY(Direction direction);
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_TRAIN_INC : EXPENSES_TRAIN_RUN; }
- WindowClass GetVehicleListWindowClass() const { return WC_TRAINS_LIST; }
void PlayLeaveStationSound() const;
bool IsPrimaryVehicle() const { return IsFrontEngine(this); }
SpriteID GetImage(Direction direction) const;
--- a/src/train_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/train_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -204,12 +204,24 @@
/* Check the v->first cache. */
assert(u->First() == v);
- if (!HasBit(EngInfo(u->engine_type)->misc_flags, EF_RAIL_TILTS)) train_can_tilt = false;
-
/* update the 'first engine' */
u->u.rail.first_engine = v == u ? INVALID_ENGINE : first_engine;
u->u.rail.railtype = rvi_u->railtype;
+ /* Set user defined data to its default value */
+ u->u.rail.user_def_data = rvi_u->user_def_data;
+ }
+
+ for (Vehicle *u = v; u != NULL; u = u->Next()) {
+ /* Update user defined data (must be done before other properties) */
+ u->u.rail.user_def_data = GetVehicleProperty(u, 0x25, u->u.rail.user_def_data);
+ }
+
+ for (Vehicle *u = v; u != NULL; u = u->Next()) {
+ const RailVehicleInfo *rvi_u = RailVehInfo(u->engine_type);
+
+ if (!HasBit(EngInfo(u->engine_type)->misc_flags, EF_RAIL_TILTS)) train_can_tilt = false;
+
if (IsTrainEngine(u)) first_engine = u->engine_type;
/* Cache wagon override sprite group. NULL is returned if there is none */
@@ -218,9 +230,6 @@
/* Reset color map */
u->colormap = PAL_NONE;
- /* Set user defined data (must be done before other properties) */
- u->u.rail.user_def_data = GetVehicleProperty(u, 0x25, rvi_u->user_def_data);
-
if (rvi_u->visual_effect != 0) {
u->u.rail.cached_vis_effect = rvi_u->visual_effect;
} else {
@@ -2223,8 +2232,6 @@
SND_41_MAGLEV
};
- if (IsTileType(this->tile, MP_STATION)) StationAnimationTrigger(NULL, this->tile, STAT_ANIM_TRAIN_DEPARTS);
-
if (PlayVehicleSound(this, VSE_START)) return;
EngineID engtype = this->engine_type;
--- a/src/tunnelbridge_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/tunnelbridge_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -886,8 +886,6 @@
}
}
} else if (!IsInvisibilitySet(TO_CATENARY) && HasCatenary(GetRailType(ti->tile))) {
- DrawCatenary(ti);
-
catenary = true;
StartSpriteCombine();
DrawCatenaryOnTunnel(ti);
@@ -1089,7 +1087,7 @@
StartSpriteCombine();
}
} else if (HasCatenary(GetRailType(rampsouth))) {
- DrawCatenary(ti);
+ DrawCatenaryOnBridge(ti);
}
/* draw roof, the component of the bridge which is logically between the vehicle and the camera */
--- a/src/unix.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/unix.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -206,6 +206,8 @@
#include "debug.h"
#include "string_func.h"
+const char *GetCurrentLocale(const char *param);
+
#define INTERNALCODE "UTF-8"
/** Try and try to decipher the current locale from environmental
--- a/src/vehicle.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/vehicle.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -30,6 +30,7 @@
#include "newgrf_callbacks.h"
#include "newgrf_engine.h"
#include "newgrf_sound.h"
+#include "newgrf_station.h"
#include "group.h"
#include "order_func.h"
#include "strings_func.h"
@@ -2545,7 +2546,7 @@
VehiclePayment(this);
- InvalidateWindow(this->GetVehicleListWindowClass(), this->owner);
+ InvalidateWindow(GetWindowClassForVehicleType(this->type), this->owner);
InvalidateWindowWidget(WC_VEHICLE_VIEW, this->index, VVW_WIDGET_START_STOP_VEH);
InvalidateWindow(WC_VEHICLE_DETAILS, this->index);
InvalidateWindow(WC_STATION_VIEW, this->last_station_visited);
@@ -2562,10 +2563,14 @@
if (current_order.GetNonStopType() != ONSF_STOP_EVERYWHERE) UpdateVehicleTimetable(this, false);
current_order.MakeLeaveStation();
- GetStation(this->last_station_visited)->loading_vehicles.remove(this);
+ Station *st = GetStation(this->last_station_visited);
+ st->loading_vehicles.remove(this);
HideFillingPercent(this->fill_percent_te_id);
this->fill_percent_te_id = INVALID_TE_ID;
+
+ /* Trigger station animation for trains only */
+ if (this->type == VEH_TRAIN && IsTileType(this->tile, MP_STATION)) StationAnimationTrigger(st, this->tile, STAT_ANIM_TRAIN_DEPARTS);
}
--- a/src/vehicle_base.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/vehicle_base.h Fri Apr 25 15:20:48 2008 +0000
@@ -11,7 +11,6 @@
#include "road_type.h"
#include "cargo_type.h"
#include "direction_type.h"
-#include "window_type.h"
#include "gfx_type.h"
#include "command_type.h"
#include "date_type.h"
@@ -371,11 +370,6 @@
virtual ExpensesType GetExpenseType(bool income) const { return EXPENSES_OTHER; }
/**
- * Invalidates the vehicle list window of this type of vehicle
- */
- virtual WindowClass GetVehicleListWindowClass() const { return WC_NONE; }
-
- /**
* Play the sound associated with leaving the station
*/
virtual void PlayLeaveStationSound() const {}
--- a/src/vehicle_gui.h Fri Apr 25 07:06:57 2008 +0000
+++ b/src/vehicle_gui.h Fri Apr 25 15:20:48 2008 +0000
@@ -99,6 +99,22 @@
return (type == VEH_TRAIN || type == VEH_ROAD) ? 14 : 24;
}
+/** Get WindowClass for vehicle list of given vehicle type
+ * @param vt vehicle type to check
+ * @return corresponding window class
+ * @note works only for player buildable vehicle types
+ */
+static inline WindowClass GetWindowClassForVehicleType(VehicleType vt)
+{
+ switch (vt) {
+ default: NOT_REACHED();
+ case VEH_TRAIN: return WC_TRAINS_LIST;
+ case VEH_ROAD: return WC_ROADVEH_LIST;
+ case VEH_SHIP: return WC_SHIPS_LIST;
+ case VEH_AIRCRAFT: return WC_AIRCRAFT_LIST;
+ }
+}
+
/* Unified window procedure */
void ShowVehicleViewWindow(const Vehicle *v);
--- a/src/water_cmd.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/water_cmd.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -24,7 +24,6 @@
#include "industry_map.h"
#include "newgrf.h"
#include "newgrf_canal.h"
-#include "misc/autoptr.hpp"
#include "transparency.h"
#include "strings_func.h"
#include "functions.h"
@@ -40,6 +39,7 @@
#include "airport.h"
#include "newgrf_cargo.h"
#include "effectvehicle_func.h"
+#include "oldpool_func.h"
#include "table/sprites.h"
#include "table/strings.h"
@@ -201,18 +201,16 @@
ret = DoCommand(tile2, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
if (CmdFailed(ret)) return CMD_ERROR;
- Depot *depot = new Depot(tile);
- if (depot == NULL) return CMD_ERROR;
- AutoPtrT<Depot> d_auto_delete = depot;
+ if (!Depot::CanAllocateItem()) return CMD_ERROR;
if (flags & DC_EXEC) {
+ Depot *depot = new Depot(tile);
depot->town_index = ClosestTownFromTile(tile, (uint)-1)->index;
MakeShipDepot(tile, _current_player, DEPOT_NORTH, axis, wc1);
MakeShipDepot(tile2, _current_player, DEPOT_SOUTH, axis, wc2);
MarkTileDirtyByTile(tile);
MarkTileDirtyByTile(tile2);
- d_auto_delete.Detach();
}
return CommandCost(EXPENSES_CONSTRUCTION, _price.build_ship_depot);
--- a/src/waypoint.cpp Fri Apr 25 07:06:57 2008 +0000
+++ b/src/waypoint.cpp Fri Apr 25 15:20:48 2008 +0000
@@ -18,7 +18,6 @@
#include "variables.h"
#include "yapf/yapf.h"
#include "newgrf.h"
-#include "misc/autoptr.hpp"
#include "strings_func.h"
#include "gfx_func.h"
#include "functions.h"
@@ -191,7 +190,6 @@
CommandCost CmdBuildTrainWaypoint(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
{
Waypoint *wp;
- AutoPtrT<Waypoint> wp_auto_delete;
Slope tileh;
Axis axis;
@@ -219,35 +217,35 @@
/* Check if there is an already existing, deleted, waypoint close to us that we can reuse. */
wp = FindDeletedWaypointCloseTo(tile);
- if (wp == NULL) {
- wp = new Waypoint(tile);
- if (wp == NULL) return CMD_ERROR;
-
- wp_auto_delete = wp;
+ if (wp == NULL && !Waypoint::CanAllocateItem()) return CMD_ERROR;
- wp->town_index = INVALID_TOWN;
- wp->name = NULL;
- wp->town_cn = 0;
- } else if (flags & DC_EXEC) {
- /* Move existing (recently deleted) waypoint to the new location */
+ if (flags & DC_EXEC) {
+ if (wp == NULL) {
+ wp = new Waypoint(tile);
+ if (wp == NULL) return CMD_ERROR;
- /* First we update the destination for all vehicles that
- * have the old waypoint in their orders. */
- Vehicle *v;
- FOR_ALL_VEHICLES(v) {
- if (v->type == VEH_TRAIN &&
- v->First() == v &&
- v->current_order.IsType(OT_GOTO_WAYPOINT) &&
- v->dest_tile == wp->xy) {
- v->dest_tile = tile;
+ wp->town_index = INVALID_TOWN;
+ wp->name = NULL;
+ wp->town_cn = 0;
+ } else {
+ /* Move existing (recently deleted) waypoint to the new location */
+
+ /* First we update the destination for all vehicles that
+ * have the old waypoint in their orders. */
+ Vehicle *v;
+ FOR_ALL_VEHICLES(v) {
+ if (v->type == VEH_TRAIN &&
+ v->First() == v &&
+ v->current_order.IsType(OT_GOTO_WAYPOINT) &&
+ v->dest_tile == wp->xy) {
+ v->dest_tile = tile;
+ }
}
+
+ RedrawWaypointSign(wp);
+ wp->xy = tile;
}
- RedrawWaypointSign(wp);
- wp->xy = tile;
- }
-
- if (flags & DC_EXEC) {
const StationSpec* statspec;
MakeRailWaypoint(tile, GetTileOwner(tile), axis, GetRailType(tile), wp->index);
@@ -274,7 +272,6 @@
UpdateWaypointSign(wp);
RedrawWaypointSign(wp);
YapfNotifyTrackLayoutChange(tile, AxisToTrack(axis));
- wp_auto_delete.Detach();
}
return CommandCost(EXPENSES_CONSTRUCTION, _price.build_train_depot);