Codebase list openttd / upstream/1.0.1
New upstream release 1.0.1. Matthijs Kooijman 14 years ago
176 changed file(s) with 2284 addition(s) and 1468 deletion(s). Raw diff Collapse all Expand all
0 /* $Id: regression.nut 19300 2010-03-02 00:38:01Z rubidium $ */
0 /* $Id: regression.nut 19653 2010-04-17 12:00:59Z rubidium $ */
11
22 class Regression extends AIController {
33 function Start();
191191 print(" RandRange(2): " + AIBase.RandRange(2));
192192 print(" RandRange(2): " + AIBase.RandRange(2));
193193 print(" RandRange(2): " + AIBase.RandRange(2));
194 print(" RandRange(9): " + AIBase.RandRange(9));
195 print(" RandRange(9): " + AIBase.RandRange(9));
196 print(" RandRange(9): " + AIBase.RandRange(9));
194 print(" RandRange(1000000): " + AIBase.RandRange(1000000)); // 32 bit tests
195 print(" RandRange(1000000): " + AIBase.RandRange(1000000));
196 print(" RandRange(1000000): " + AIBase.RandRange(1000000));
197197 print(" Chance(1, 2): " + AIBase.Chance(1, 2));
198198 print(" Chance(1, 2): " + AIBase.Chance(1, 2));
199199 print(" Chance(1, 2): " + AIBase.Chance(1, 2));
10261026 for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
10271027 print(" RailType: " + i);
10281028 print(" IsRailTypeAvailable(): " + AIRail.IsRailTypeAvailable(i));
1029 print(" GetMaxSpeed(): " + AIRail.GetMaxSpeed(i));
10291030 }
10301031 }
10311032
9595 RandRange(1): 0
9696 RandRange(2): 0
9797 RandRange(2): 0
98 RandRange(2): 1
99 RandRange(9): 6
100 RandRange(9): 7
101 RandRange(9): 4
98 RandRange(2): 0
99 RandRange(1000000): 987346
100 RandRange(1000000): 781750
101 RandRange(1000000): 191841
102102 Chance(1, 2): true
103103 Chance(1, 2): false
104104 Chance(1, 2): false
72077207 ListDump:
72087208 RailType: 0
72097209 IsRailTypeAvailable(): true
7210 GetMaxSpeed(): 0
72107211
72117212 --Road--
72127213 Road
0 1.0.1 (2010-05-01)
1 ------------------------------------------------------------------------
2 - Fix: Crash when using restart via rcon (r19722)
3 - Fix: Leaking a file descriptor [CVE-2010-0406] [FS#3785] (r19695)
4 - Fix: Crash when the music/graphics metadata files were unreadable [FS#3774] (r19674)
5
6
7 1.0.1-RC2 (2010-04-22)
8 ------------------------------------------------------------------------
9 - Fix: Desync when joining the game because of using the wrong variable (r19687)
10 - Fix: Truncated archives were not detected when using zlib 1.2.3. This also fixes zlib 1.2.4 compatibility, zlib 1.2.5 is bugfree (r19686)
11 - Fix: Towns with 3x3 and 2x2 road layouts could not expand (r19683)
12 - Fix: When joining a MP game all clients with company ID > 0 would be shown as if they were a spectator [FS#3775] (r19680)
13 - Fix: Client status was shown incorrect in the console (r19678)
14
15
16 1.0.1-RC1 (2010-04-17)
17 ------------------------------------------------------------------------
18 - Feature: [NewGRF] Support for extended text code 0x9A 11, print qword (r19570)
19 - Feature: Give more detailed error message when trying to build a too long bridge (r19561)
20 - Feature: Add rail speed limit to land area information window (r19556, r19434)
21 - Add: [NoAI] AIRail::GetMaxSpeed(RailType) to get the speed limit of railtypes (r19591)
22 - Change: Sync Debian packaging updates from Debian, but keep building a single package (r19572)
23 - Fix: Crash of a dedicated server if the null blitter is overridden and (after a while) there is no company 0 on new year anymore [FS#3749] (r19664)
24 - Fix: In rare cases, update of signals could be missed (r19663)
25 - Fix: Various improvements of command handling, missing error messages, improper validation causing crashes [CVE-2010-0402] [FS#3748] (r19658, r19657, r19656, r19655, r19654, r19637, r19633, r19621, r19616, r19605, r19604)
26 - Fix: Industry generation failed for large maps and lots of industry types (r19652, r19643)
27 - Fix: When a company is sold, move connected clients to spectators [FS#3745] (r19651)
28 - Fix: A client would not be properly moved when moved while joining, e.g. when entering a company's password. This caused the client to be in the wrong company (according to the rest of the clients) and the client being kicked on the first command [FS#3760] (r19648)
29 - Fix: Trains loaded above the original IDs did not have a default railtypelabel assigned to them, causing them to be unavailable. Could cause desyncs if the multiplayer game was not started from a savegame [FS#3768] (r19647)
30 - Fix: Do not allow building cacti outside of the desert or rain forest trees outside of the rain forest area. This to prevent people from thinking planting rain forest trees makes the rain forest bigger and thus adds more place to build a lumber mill [FS#3728] (r19644, r19635, r19634)
31 - Fix: Desync when taking over companies (r19636)
32 - Fix: Chat message caused glitch when rejoining a network game [FS#3757] (r19629)
33 - Fix: Desync when a command is received and in the queue while a client starts joining, i.e. save the game state. This can happen in two ways: with frame_freq > 1 a command received in a previous frame might not be executed yet or when a command is received in the same frame as the join but before the savegame is made. In both cases the joining client would not get all commands to get in-sync with the server (and the other clients) (r19620)
34 - Fix: Company related graphs were not updated correctly after changing the company colour [FS#3763] (r19615)
35 - Fix: Possible invalid read when server moves client to spectators before he finishes joining [FS#3755] (r19613)
36 - Fix: Crash when opening a savegame with a waypoint from around 0.4.0 [FS#3756] (r19612)
37 - Fix: Improve joining behaviour; kicking clients when entering passwords that was just cleared, 'connection lost' for people failing the password, access restriction circumvention [CVE-2010-0401] [FS#3754] (r19610, r19609, r19608, r19607, r19606)
38 - Fix: Desync debugging; false positives in the cache validity checks and saving/loading the command stream (r19619, r19617, r19602, r19601, r19600, r19596, r19593, r19592, r19589, r19587, r19586)
39 - Fix: Presence of online content was not properly updated after download due to duplicate slashes in the path (r19600)
40 - Fix: [NewGRF] Setting industry prop 0x24 to 0 caused empty station names (r19590)
41 - Fix: Crash when pressing 'h' (non-stop) in the order window of a ship or aircraft [FS#3744] (r19584)
42 - Fix: Graphs were not properly updated when going toggling keys (i.e. companies) (r19574)
43 - Fix: The timetable button was not automatically raised [FS#3739] (r19571)
44 - Fix: [NewGRF] Possible buffer underflow in NewGRF string code (r19569)
45 - Fix: [NewGRF] Do not return a random colour for unowned industries in var 45; TTDPatch does not seem to set the colour data in that case either and it could lead to desyncs (r19566)
46 - Fix: Window::OnResize() was not always called while resizing a window causing incorrect windows [FS#3730] (r19563, r19558)
47 - Fix: Bridge build error message should not show the same message twice (r19560, r19559)
48 - Fix: [NewGRF] During NewGRF loading, store rail type labels in temporary data and process after loading has finished. This avoids deactivated rail vehicles being reactivated if the climate property is set after the rail type property (r19557, r19502)
49 - Fix: Improperly scaled cargo payment graph when having lots of cargo (r19550, 19543)
50 - Fix: [NewGRF] Properties set before property 08 (house, industry, industry tiles) should be ignored, not trigger the NewGRF to be disabled [FS#3725] (r19547)
51 - Fix: Sorting industries by production was broken for NewGRF industries (r19538)
52 - Fix: Vehicle details window did not resize correctly after refitting a road vehicle to a longer variant [FS#3720] (r19533)
53 - Fix: Prevent drawing industries disabled at the smallmap as land tiles when they are built on water (r19523)
54 - Fix: Tunnels, bridges and roadstops are build with only one roadtype (r19506)
55 - Fix: Remove same_industry_close setting did not do what it said and caused NewGRF trouble (r19499)
56 - Fix: Keep number padding intact when cloning vehicle names [FS#3710] (r19498)
57 - Fix: [NewGRF] Bytes and words get sign-extended for temporary/persistent storage (r19497)
58 - Fix: Stop reducing the size of the vehicle list after selecting a vehicle with a long description (r19480)
59 - Fix: Implement custom sound effect for helicopter take-off [FS#3668] (r19364)
60 - Update: Plural type of Slovak (r19452)
61
62
063 1.0.0 (2010-04-01)
164 ------------------------------------------------------------------------
265 - Fix: Network clients would crash while connecting to a server with AIs (r19526)
0 # $Id: config.lib 19530 2010-03-31 22:12:30Z rubidium $
0 # $Id: config.lib 19742 2010-04-30 21:24:33Z rubidium $
11
22 # This file is part of OpenTTD.
33 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
1010 }
1111
1212 set_default() {
13 released_version="1.0.0"
13 released_version="1.0.1"
1414
1515 ignore_extra_parameters="0"
1616 # We set all kinds of defaults for params. Later on the user can override
31533153 echo " --with-midi=midi define which midi-player to use"
31543154 echo " --with-midi-arg=arg define which args to use for the"
31553155 echo " midi-player"
3156 echo " --with-libtimidity enables libtimidity support"
31563157 echo " --with-allegrol[=allegro-config]"
31573158 echo " enables Allegro video driver support"
31583159 echo " --with-cocoa enables COCOA video driver (OSX ONLY)"
00 OpenTTD's known bugs
1 Last updated: 2010-04-01
2 Release version: 1.0.0
1 Last updated: 2010-05-01
2 Release version: 1.0.1
33 ------------------------------------------------------------------------
44
55
3333 If the bugs are closed but still listed here it means that the bug is fixed
3434 and that the nightlies and next major release will not have that bug.
3535
36 - 3725 [NewGRF] Incorrect handling of some house action0s
37 - 3720 When refitting to a vehicle with more trailers, the details view is not made bigger
3836 - 3714 Some corrupted savegames can cause crashes
3937 - 3695 Behaviour inconsistency building railway/road down towards water
4038 - 3651 [OSX] Crash when selecting full screen
0 openttd (1.0.0~rc3-2) unstable; urgency=low
1
2 The openttd package has been moved from contrib into main. Since the
3 OpenGFX free graphics set has been packaged for Debian, one can now run
4 OpenTTD without needing any of the resources from the original game
5 (though the original resources are still supported).
6
7 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 18 Mar 2010 13:09:35 +0100
8
9 openttd (0.7.0-1) unstable; urgency=low
10
11 Handling of AI players has changed in 0.7.0. This package no longer
12 contains any AI players, so playing against the computer is not possible
13 out of the box any longer. However, you can easily download AI players
14 through the new "Content Downloading Service", after which playing with
15 computer players is possible.
16
17 Loading old savegames with computer players is supported (AI players will
18 be converted according to the current AI settings), but at this moment
19 there are no AIs that completely handle any existing infrastructure built
20 by the old AI, so starting a new game might be more fun (especially since
21 most of the new AIs are a lot less erratic).
22
23 -- Matthijs Kooijman <matthijs@stdin.nl> Mon, 13 Apr 2009 15:11:20 +0200
24
11 ------------------
22
33 To properly play this game, you need a base graphics and sound set.
4 Currently, the graphics files from the original Transport Tycoon Deluxe
5 game (Windows and DOS versions) are supported, as well as the free
6 graphics replacement set "OpenGFX".
4 Currently, the graphics, sound and music files from the original
5 Transport Tycoon Deluxe game (Windows and DOS versions) are supported,
6 as well as the free graphics replacement set "OpenGFX", sound
7 replacement set "OpenSFX" (which is in non-free due to a restrictive
8 license) and the free music replacement set "OpenMSX".
79
8 See readme.txt, section 4.1 for instructions on how to install these
9 files.
10 Normally, installing the openttd package should automatically install
11 openttd-opengfx as well, allowing OpenTTD to run out of the box. If you
12 want sound, you'll have to enable non-free sources and install the
13 openttd-opensfx package manually (or install the original Transport
14 Tyccon Deluxe sound files).
1015
11 -Music
12 For in game music (optional), you should copy all files in the gm/
13 subdir of your ttd installation to /usr/share/games/openttd/gm. You
14 should also install timidity and a soundfont (freepats is packaged in
15 Debian and works out of the box).
16 The easiest way to install the OpenMSX music files is to use the in-game
17 content download system, which should offer the latest version of the
18 music files.
1619
17 Don't forget to use -m extmidi if you want music, and if you have
18 problems, remember that not all audio devices support multiple
19 audiostreams (music and sound), so you might have to use alsa
20 software mixing or pulseaudio.
20 To find out how to install the original Transport Tycoon Deluxe graphics
21 sound files and music files, see readme.txt, section 4.1.
22
23 -Playing Music
24 In addition to installing a music set (see above), you'll also need
25 to install the timidity midi player, available in the timidity
26 package.
27
28 Remember that not all audio devices support multiple audiostreams
29 (music and sound), so you might have to use alsa software mixing or
30 pulseaudio.
2131
2232 -Scenarios
2333 There are no scenarios included in this release. Scenarios can be
24 downloaded using openttd's content service, which is available from
25 openttd's main menu. If you have obtained a scenario through other
34 downloaded using OpenTTD's content service, which is available from
35 OpenTTD's main menu. If you have obtained a scenario through other
2636 means, you can place it either in your ~/.openttd/scenario directory
2737 or in the system-wide /usr/share/games/openttd/scenario directory.
2838
0 openttd (1.0.0) unstable; urgency=low
1
2 * New upstream release.
3
4 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 01 Apr 2010 00:01:02 +0200
5
6 openttd (1.0.0~RC3) unstable; urgency=low
7
8 * New upstream release.
9
10 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 18 Mar 2010 00:01:02 +0100
11
12 openttd (1.0.0~RC2) unstable; urgency=low
13
14 * New upstream release.
15
16 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 04 Mar 2010 00:01:02 +0100
17
18 openttd (1.0.0~RC1) unstable; urgency=low
19
20 * New upstream release.
21
22 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 18 Feb 2010 00:01:02 +0100
23
24 openttd (1.0.0~beta4) unstable; urgency=low
25
26 * New upstream release.
27
28 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 04 Feb 2010 18:36:02 +0100
29
30 openttd (1.0.0~beta3) unstable; urgency=low
31
32 * New upstream release.
33
34 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 21 Jan 2010 00:01:02 +0100
35
36 openttd (1.0.0~beta2) unstable; urgency=low
37
38 * New upstream release.
39
40 -- Matthijs Kooijman <matthijs@stdin.nl> Tue, 05 Jan 2010 21:36:51 +0100
41
42 openttd (1.0.0~beta1) unstable; urgency=low
43
44 * New upstream release.
45
46 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Dec 2009 01:01:01 +0100
47
48 openttd (0.7.5) unstable; urgency=low
49
50 * New upstream release.
51
52 -- Matthijs Kooijman <matthijs@stdin.nl> Wed, 23 Dec 2009 20:52:34 +0100
53
54 openttd (0.7.5~RC1) unstable; urgency=low
55
56 * New upstream release.
57
58 -- Matthijs Kooijman <matthijs@stdin.nl> Mon, 14 Dec 2009 19:28:37 +0100
59
60 openttd (0.7.4) unstable; urgency=low
61
62 * New upstream release.
63
64 -- Matthijs Kooijman <matthijs@stdin.nl> Tue, 01 Dec 2009 01:23:45 +0100
65
66 openttd (0.7.4~RC1) unstable; urgency=low
67
68 * New upstream release.
69
70 -- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 Nov 2009 16:30:07 +0100
71
72 openttd (0.7.3) unstable; urgency=low
73
74 * New upstream release.
75
76 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 01 Oct 2009 12:35:47 +0200
77
78 openttd (0.7.3~RC2) unstable; urgency=low
79
80 * New upstream release.
81
82 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Sep 2009 21:30:43 +0200
83
84 openttd (0.7.3~RC1) unstable; urgency=low
85
86 * New upstream release.
87
88 -- Matthijs Kooijman <matthijs@stdin.nl> Sun, 13 Sep 2009 10:25:56 +0200
89
90 openttd (0.7.2) unstable; urgency=low
91
92 * New upstream release.
93
94 -- Matthijs Kooijman <matthijs@stdin.nl> Sat, 01 Aug 2009 00:19:43 +0200
95
96 openttd (0.7.2~RC2) unstable; urgency=low
97
98 * New upstream release.
99
100 -- Matthijs Kooijman <matthijs@stdin.nl> Tue, 21 Jul 2009 20:25:56 +0200
101
102 openttd (0.7.2~RC1) unstable; urgency=low
103
104 * New upstream release.
105
106 -- Matthijs Kooijman <matthijs@stdin.nl> Wed, 15 Jul 2009 22:25:56 +0200
107
108 openttd (0.7.1) unstable; urgency=low
109
110 * New upstream release.
111
112 -- Matthijs Kooijman <matthijs@stdin.nl> Tue, 09 Jun 2009 01:34:56 +0200
113
114 openttd (0.7.1~RC3) unstable; urgency=low
115
116 * New upstream release.
117
118 -- Matthijs Kooijman <matthijs@stdin.nl> Wed, 03 Jun 2009 15:34:56 +0200
119
120 openttd (0.7.1~RC2) unstable; urgency=low
121
122 * New upstream release.
123
124 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 21 Mar 2009 14:34:56 +0200
125
126 openttd (0.7.1~RC1) unstable; urgency=low
127
128 * New upstream release.
129
130 -- Matthijs Kooijman <matthijs@stdin.nl> Mon, 11 Mar 2009 17:34:56 +0200
131
132 openttd (0.7.0) unstable; urgency=low
133
134 * New upstream release.
135
136 -- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Apr 2009 13:37:42 +0000
137
138 openttd (0.7.0~RC2) unstable; urgency=low
139
140 * New upstream release.
141
142 -- Matthijs Kooijman <matthijs@stdin.nl> Mon, 23 Mar 2009 00:42:00 +0200
143
144 openttd (0.7.0~RC1) unstable; urgency=low
145
146 * New upstream release.
147
148 -- Matthijs Kooijman <matthijs@stdin.nl> Mon, 16 Mar 2009 00:07:00 +0200
149
150 openttd (0.7.0~beta2) unstable; urgency=low
151
152 * New upstream release.
153
154 -- Matthijs Kooijman <matthijs@stdin.nl> Tue, 10 Mar 2009 00:33:05 +0100
155
156 openttd (0.7.0~beta1) unstable; urgency=low
157
158 * New upstream release.
159
160 -- Matthijs Kooijman <matthijs@stdin.nl> Mon, 16 Feb 2009 23:07:05 +0100
0 openttd (1.0.1-0) unstable; urgency=low
1
2 * New upstream release 1.0.1
3
4 -- Matthijs Kooijman <matthijs@stdin.nl> Sat, 01 May 2010 00:00:00 +0200
5
6 openttd (1.0.1~rc2-0) unstable; urgency=low
7
8 * New upstream release 1.0.1-RC2
9
10 -- Matthijs Kooijman <matthijs@stdin.nl> Wed, 21 Apr 2010 21:36:21 +0200
11
12 openttd (1.0.1~rc1-0) unstable; urgency=low
13
14 * New upstream release 1.0.1-RC1
15
16 -- Matthijs Kooijman <matthijs@stdin.nl> Sat, 17 Apr 2010 23:36:21 +0000
17
18 openttd (1.0.0-1) unstable; urgency=low
19
20 * [30a2162] New upstream release 1.0.0. (Closes: #570104)
21 * [102698a] Make openttd-wrapper work with older mktemp versions.
22
23 -- Matthijs Kooijman <matthijs@stdin.nl> Fri, 02 Apr 2010 23:36:21 +0200
24
25 openttd (1.0.0~rc3-2) unstable; urgency=low
26
27 * [279c5ef] Recommend openttd-opengfx and suggest openttd-opensfx.
28 * [9330ad7] Update README.Debian concerning music files.
29 * [07bde24] Move openttd from contrib to main. (Closes: #560810)
30
31 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 18 Mar 2010 13:16:32 +0100
32
33 openttd (1.0.0~rc3-1) unstable; urgency=low
34
35 * [412d153] New upstream release 1.0.0~rc3.
36
37 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 18 Mar 2010 10:09:33 +0100
38
39 openttd (1.0.0~rc2-1) unstable; urgency=low
40
41 * [9c99af4] New upstream release 1.0.0~rc2.
42
43 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 04 Mar 2010 12:22:28 +0100
44
45 openttd (1.0.0~rc1-1) unstable; urgency=low
46
47 * [fe4eb51] New upstream release 1.0.0~rc1.
48 * [6aa2be0] Note that the embedded md5 implementation has a different
49 license.
50 * [39eb336] Remove lintian override for empty gm directory.
51
52 -- Matthijs Kooijman <matthijs@stdin.nl> Fri, 19 Feb 2010 13:00:53 +0100
53
54 openttd (1.0.0~beta4-1) unstable; urgency=low
55
56 * [6718224] New upstream release 1.0.0~beta4.
57 * [7b0fa8d] Remove some more docs that we don't want in the package.
58 * [bb9d744] Use liblzo2 instead of an embedded minilzo version.
59 * [949c06b] Explicitly disable iconv support.
60
61 -- Matthijs Kooijman <matthijs@stdin.nl> Fri, 19 Feb 2010 12:59:27 +0100
62
63 openttd (0.7.5-4) unstable; urgency=low
64
65 * [174d0b1] Don't use deprecated < in Replaces.
66
67 -- Matthijs Kooijman <matthijs@stdin.nl> Mon, 15 Feb 2010 00:35:33 +0100
68
69 openttd (0.7.5-3) unstable; urgency=low
70
71 * [d12fc5a] Make openttd-data replace openttd (< 0.7.5-2).
72 (Closes: #569679)
73
74 -- Matthijs Kooijman <matthijs@stdin.nl> Sun, 14 Feb 2010 16:56:31 +0100
75
76 openttd (0.7.5-2) unstable; urgency=low
77
78 [ Matthijs Kooijman ]
79 * [fbab21d] Switch to source format 3.0 (quilt).
80 * [85c0c7d] No longer check for (and complain about missing) datafiles
81 on installation and upgrades. (Closes: #524651, 562574)
82 * [827eb61] Split the architecture independent data into openttd-data.
83 (Closes: #492462)
84 * [6fbd9c7] Update README.Debian.
85 * [76a5148] Support cross compilation. (Closes: #550951)
86 * [2005bf8] Simplify the rules file, make debhelper do more stuff.
87 * [fc0500e] Remove some configure arguments.
88 * [8ca38bb] Explicitly enable or disable all of the dependencies.
89 * [e38fb3e] Let the upstream Makefile install documentation.
90 * [5954fcf] Update the watch file to the new upstream url scheme.
91 * [7249594] Fix typo in copyright file.
92 * [660fb61] Bump the Standards-Version to 3.8.4, with no changes
93 required.
94 * [f94ab89] Move the packaging git repository to git.debian.org.
95
96 -- Jordi Mallach <jordi@debian.org> Tue, 09 Feb 2010 21:40:24 +0100
97
98 openttd (0.7.5-1) unstable; urgency=high
99
100 * [cdcb73a] Imported Upstream version 0.7.5. This release fixes
101 CVE-2009-4007.
102
103 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Dec 2009 00:55:45 +0100
104
105 openttd (0.7.4-1) unstable; urgency=low
106
107 * [a2c297b0] Imported Upstream version 0.7.4
108 * [0232a645] Make Debian-specific patches executable.
109 * [76be04b] Switch the Debian packaging to git.
110
111 -- Matthijs Kooijman <matthijs@stdin.nl> Tue, 15 Dec 2009 22:11:52 +0100
112
113 openttd (0.7.3-1) unstable; urgency=low
114
115 [ Matthijs Kooijman ]
116 * New upstream release
117 * Use printf instead of echo -en in openttd-wrapper to make it POSIX
118 compatible (Closes: #547758).
119 * Remove three patches that are now included in upstream.
120
121 -- Matthijs Kooijman <matthijs@stdin.nl> Thu, 01 Oct 2009 22:52:59 +0200
122
123 openttd (0.7.2-1) unstable; urgency=low
124
125 [ Matthijs Kooijman ]
126 * New upstream release
127 * Bump Standards-Version to 3.8.3, with no changes required.
128 * Clean up the rules file a bit and add some lintian overrides.
129 * Explain why openttd is in contrib (Closes: #539381).
130 * Add the DM-Upload-Allowed control field.
131 * Re-add dpatch infrastructure.
132 * Fix the copyright file, since upstream only allows GPLv2, not later
133 versions.
134 * Add a section to the copyright file on the different license used by the
135 "Squirrel" programming language, which is shipped with OpenTTD since
136 0.7.0.
137 * Backport upstream r17226, which removes the deprecated Encoding entry from
138 the .desktop file.
139 * Add a wrapper script for openttd, which captures any stderr output and
140 displays it when openttd returns an error code (Closes: #533557).
141 * Recommend x11-utils, since we use xmessage for displaying errors. Don't
142 depend on it, since openttd will still run fine without it, you just won't
143 see any errors.
144 * Backport upstream r17227 and r17229, which prevents terminal escape codes
145 from ending up in the captured error output.
146 * Backport upstream r17240, which improves stderr output when files are
147 missing or corrupt.
148
149 -- Jordi Mallach <jordi@debian.org> Fri, 21 Aug 2009 15:27:26 +0200
150
151 openttd (0.7.1-1) unstable; urgency=low
152
153 [ Matthijs Kooijman ]
154 * New upstream release.
155 * Link against libicu to enable right-to-left language support.
156
157 -- Jordi Mallach <jordi@debian.org> Tue, 09 Jun 2009 21:46:28 +0200
158
159 openttd (0.7.0-1) unstable; urgency=low
160
161 [ Matthijs Kooijman ]
162 * New upstream release.
163 * Remove Debian specific desktop file, upstream provides one now.
164 * Add debian/watch file.
165
166 [ Jordi Mallach ]
167 * Bump Standards-Version to 3.8.1, with no changes required.
168 * Move to debhelper compat 7. Bump Build-Depends accordingly.
169 * Use dh_prep.
170 * Add "set -e" to config script.
171 * Remove a few extra doc files that get installed by upstream Makefile.
172 * Add more complete copyright information.
173
174 -- Jordi Mallach <jordi@debian.org> Wed, 15 Apr 2009 18:22:10 +0200
161175
162176 openttd (0.6.3-1) unstable; urgency=low
163177
166180
167181 [ Jordi Mallach ]
168182 * Add Spanish Debconf template translation, after fixing its corrupted
169 encoding.
183 encoding (thanks, Germana Oliveira, closes: #499214).
170184
171185 -- Jordi Mallach <jordi@debian.org> Thu, 02 Oct 2008 16:59:03 +0200
172186
00 Source: openttd
1 Section: contrib/games
1 Section: games
22 Priority: optional
33 Maintainer: Matthijs Kooijman <matthijs@stdin.nl>
44 Uploaders: Jordi Mallach <jordi@debian.org>
5 Build-Depends: debhelper (>= 7.0.50), libsdl-dev, zlib1g-dev, libpng-dev, libfreetype6-dev, libfontconfig-dev, liblzo2-dev, libicu-dev
5 DM-Upload-Allowed: yes
6 Build-Depends: debhelper (>= 7.0.50), libsdl-dev, zlib1g-dev, libpng-dev, libfreetype6-dev, libfontconfig-dev, libicu-dev, liblzo2-dev
67 Standards-Version: 3.8.4
78 Vcs-Browser: http://git.debian.org/?p=collab-maint/openttd.git
89 Vcs-Git: git://git.debian.org/collab-maint/openttd.git
1112 Package: openttd
1213 Architecture: any
1314 Depends: ${shlibs:Depends}, ${misc:Depends}
15 Recommends: openttd-opengfx, x11-utils
1416 Replaces: openttd-data
1517 Conflicts: openttd-data
16 Suggests: timidity, freepats
18 Suggests: openttd-opensfx, timidity, freepats
1719 Description: reimplementation of Transport Tycoon Deluxe with enhancements
1820 OpenTTD is a reimplementation of the Microprose game "Transport
19 Tycoon Deluxe" with lots of new features and enhancements. The data
20 files of the original Transport Tycoon Deluxe for Windows are
21 mandatory to play the game. They must be manually copied to the game
22 data directory (see README.Debian for details).
21 Tycoon Deluxe" with lots of new features and enhancements.
22 .
23 OpenTTD is playable with the free graphics files from the openttd-opengfx
24 package and optional sound files from the openttd-opensfx package (which is in
25 non-free). Alternatively, OpenTTD can use the graphics files from the original
26 Transport Tycoon Deluxe game (See README.Debian on how to set this up).
00 This package was debianized by Matthijs Kooijman <matthijs@stdin.nl>
11 on Wed, 15 Sep 2004 00:24:01 +0200.
2
3 This package is not part of the main Debian GNU/Linux distribution, but
4 uploaded to the contrib section. This is because the openttd program is
5 non-functional by itself, it needs (non-free) graphical and sound
6 resources from the Transport Tycoon Deluxe game to work.
72
83 Upstream author: Ludvig Strigeus (ludde) and many others.
94 Upstream homepage: http://www.openttd.org
5853
5954 3. This notice may not be removed or
6055 altered from any source distribution.
56
57 This package contains an implementation of the md5 hash algorithm, which
58 is shipped under the following license:
59
60 Copyright (C) 1999, 2000, 2002 Aladdin Enterprises. All rights reserved.
61
62 This software is provided 'as-is', without any express or implied
63 warranty. In no event will the authors be held liable for any damages
64 arising from the use of this software.
65
66 Permission is granted to anyone to use this software for any purpose,
67 including commercial applications, and to alter it and redistribute it
68 freely, subject to the following restrictions:
69
70 1. The origin of this software must not be misrepresented; you must not
71 claim that you wrote the original software. If you use this software
72 in a product, an acknowledgment in the product documentation would be
73 appreciated but is not required.
74 2. Altered source versions must be plainly marked as such, and must not be
75 misrepresented as being the original software.
76 3. This notice may not be removed or altered from any source distribution.
0 [DEFAULT]
1 # Use pristine-tar
2 pristine-tar = True
3
4 [git-dch]
5 # We use metaheaders in commit messages.
6 meta = True
7 # Put git commit ids in the debian changelog.
8 id-length = 7
9
10 [git-import-orig]
11 # Use a custom commit message for upstream imports.
12 import-msg = New upstream release %(version)s.
11 # This is a wrapper script that checks openttd's exit status and
22 # displays its stderr output
33
4 # Get a file to capture stderr to
5 TMPFILE=`mktemp --tmpdir openttd.errout.XXXXXXXXX`
4 # Get a file to capture stderr to. Use the deprecated -t option, so this
5 # works on the old mktemp from the mktemp package (which has been
6 # replaced by the version from the coreutils package).
7 TMPFILE=`mktemp -t openttd.errout.XXXXXXXXX`
68
79 if [ ! -w "$TMPFILE" ]; then
810 xmessage "Could not create temporary file for error messages. Not starting OpenTTD."
0 From: Matthijs Kooijman <matthijs@stdin.nl>
1 Subject: Use a wrapper script for running openttd
2
3 The wrapper script captures stderr from openttd and displays this in
4 case of an error. This patch makes the the .desktop file call the
5 wrapper instead of the openttd binary directly.
6
7 Index: media/openttd.desktop.in
8 ===================================================================
9 --- a/media/openttd.desktop.in (revision 17228)
10 +++ b/media/openttd.desktop.in (working copy)
11 @@ -6,6 +6,6 @@
12 Name=!!MENU_NAME!!
13 Comment=A clone of Transport Tycoon Deluxe
14 Icon=openttd
15 -Exec=!!TTD!!
16 +Exec=/usr/share/games/openttd/openttd-wrapper
17 Terminal=false
18 Categories=!!MENU_GROUP!!
0 run-openttd-wrapper.patch
1616 # to be explicit about the dependencies, in case we're not running in a
1717 # clean build root.
1818 override_dh_auto_configure:
19 ./configure $(CROSS) --prefix-dir=/usr --install-dir=debian/openttd --without-allegro --with-zlib --with-lzo2 --with-sdl --with-png --with-freetype --with-fontconfig --with-icu
19 ./configure $(CROSS) --prefix-dir=/usr --install-dir=debian/openttd --without-allegro --with-zlib --with-sdl --with-png --with-freetype --with-fontconfig --with-icu --with-liblzo2 --without-iconv
2020
2121 # Do some extra installation
2222 override_dh_auto_install:
0 version=3
1
2 options=downloadurlmangle=s/(.*)\/index.html$/\1\/openttd-\1-source.tar.gz/ \
3 http://master.binaries.openttd.org/releases/ \
4 (\d+(?:\.\d+)*)/index.html
00 @echo off
11
2 set OPENTTD_VERSION=1.0.0
2 set OPENTTD_VERSION=1.0.1
33 set OPENSFX_VERSION=0.8.0
44 set NOSOUND_VERSION=0.8.0
55 set OPENGFX_VERSION=0.7.0
00 # Version numbers to update
11 !define APPV_MAJOR 1
22 !define APPV_MINOR 0
3 !define APPV_MAINT 0
4 !define APPV_BUILD 7
3 !define APPV_MAINT 1
4 !define APPV_BUILD 2
55 !define APPV_EXTRA ""
66
77 !define APPNAME "OpenTTD" ; Define application name
00 Option Explicit
11
2 ' $Id: determineversion.vbs 19530 2010-03-31 22:12:30Z rubidium $
2 ' $Id: determineversion.vbs 19742 2010-04-30 21:24:33Z rubidium $
33 '
44 ' This file is part of OpenTTD.
55 ' OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
3838 modified = Mid(version, InStrRev(version, Chr(9)) + 1)
3939 version = Mid(version, 1, InStr(version, Chr(9)) - 1)
4040 Else
41 version = "1.0.0"
41 version = "1.0.1"
4242 revision = 0
4343 modified = 1
4444 End If
00 OpenTTD README
1 Last updated: 2010-04-01
2 Release version: 1.0.0
1 Last updated: 2010-05-01
2 Release version: 1.0.1
33 ------------------------------------------------------------------------
44
55
0 /* $Id: ai_changelog.hpp 19014 2010-02-04 23:18:19Z yexo $ */
0 /* $Id: ai_changelog.hpp 19623 2010-04-13 21:32:29Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1313 * functions may still be available if you return an older API version
1414 * in GetAPIVersion() in info.nut.
1515 *
16 * \b 1.0.1
17 *
18 * API additions:
19 * \li AIRail::GetMaxSpeed
20 *
1621 * \b 1.0.0
17 *
18 * 1.0.0 is not yet released. The following changes are not set in stone yet.
1922 *
2023 * API additions:
2124 * \li AIBaseStation
0 /* $Id: ai_rail.cpp 18987 2010-02-02 22:27:03Z terkhen $ */
0 /* $Id: ai_rail.cpp 19623 2010-04-13 21:32:29Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
468468 default: return -1;
469469 }
470470 }
471
472 /* static */ int32 AIRail::GetMaxSpeed(RailType railtype)
473 {
474 if (!AIRail::IsRailTypeAvailable(railtype)) return -1;
475
476 return ::GetRailTypeInfo((::RailType)railtype)->max_speed;
477 }
0 /* $Id: ai_rail.hpp 18987 2010-02-02 22:27:03Z terkhen $ */
0 /* $Id: ai_rail.hpp 19623 2010-04-13 21:32:29Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
439439 * @return The baseprice of building the given object.
440440 */
441441 static Money GetBuildCost(RailType railtype, BuildType build_type);
442
443 /**
444 * Get the maximum speed of trains running on this railtype.
445 * @param railtype The railtype to get the maximum speed of.
446 * @pre IsRailTypeAvailable(railtype)
447 * @return The maximum speed trains can run on this railtype
448 * or 0 if there is no limit.
449 * @note The speed is in OpenTTD's internal speed unit.
450 * This is mph / 1.6, which is roughly km/h.
451 * To get km/h multiply this number by 1.00584.
452 */
453 static int32 GetMaxSpeed(RailType railtype);
442454 };
443455
444456 #endif /* AI_RAIL_HPP */
0 /* $Id: ai_rail.hpp.sq 18955 2010-01-29 23:56:42Z yexo $ */
0 /* $Id: ai_rail.hpp.sq 19623 2010-04-13 21:32:29Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
105105 SQAIRail.DefSQStaticMethod(engine, &AIRail::BuildSignal, "BuildSignal", 4, ".iii");
106106 SQAIRail.DefSQStaticMethod(engine, &AIRail::RemoveSignal, "RemoveSignal", 3, ".ii");
107107 SQAIRail.DefSQStaticMethod(engine, &AIRail::GetBuildCost, "GetBuildCost", 3, ".ii");
108 SQAIRail.DefSQStaticMethod(engine, &AIRail::GetMaxSpeed, "GetMaxSpeed", 2, ".i");
108109
109110 SQAIRail.PostRegister(engine);
110111 }
0 /* $Id: ai_tile.cpp 19019 2010-02-05 17:05:58Z smatz $ */
0 /* $Id: ai_tile.cpp 19646 2010-04-16 22:02:33Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
247247 {
248248 EnforcePrecondition(false, ::IsValidTile(tile));
249249
250 return AIObject::DoCommand(tile, UINT_MAX, tile, CMD_PLANT_TREE);
250 return AIObject::DoCommand(tile, TREE_INVALID, tile, CMD_PLANT_TREE);
251251 }
252252
253253 /* static */ bool AITile::PlantTreeRectangle(TileIndex tile, uint width, uint height)
257257 EnforcePrecondition(false, height >= 1 && height <= 20);
258258 TileIndex end_tile = tile + ::TileDiffXY(width - 1, height - 1);
259259
260 return AIObject::DoCommand(tile, UINT_MAX, end_tile, CMD_PLANT_TREE);
260 return AIObject::DoCommand(tile, TREE_INVALID, end_tile, CMD_PLANT_TREE);
261261 }
262262
263263 /* static */ bool AITile::IsWithinTownInfluence(TileIndex tile, TownID town_id)
0 /* $Id: ai_tunnel.cpp 17693 2009-10-04 17:16:41Z rubidium $ */
0 /* $Id: ai_tunnel.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
7676
7777 uint type = 0;
7878 if (vehicle_type == AIVehicle::VT_ROAD) {
79 type |= (TRANSPORT_ROAD << 9);
79 type |= (TRANSPORT_ROAD << 8);
8080 type |= ::RoadTypeToRoadTypes((::RoadType)AIObject::GetRoadType());
8181 } else {
82 type |= (TRANSPORT_RAIL << 9);
82 type |= (TRANSPORT_RAIL << 8);
8383 type |= AIRail::GetCurrentRailType();
8484 }
8585
0 /* $Id: aircraft_cmd.cpp 19132 2010-02-14 16:31:35Z alberth $ */
0 /* $Id: aircraft_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
236236 */
237237 CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
238238 {
239 if (!IsEngineBuildable(p1, VEH_AIRCRAFT, _current_company)) return_cmd_error(STR_ERROR_AIRCRAFT_NOT_AVAILABLE);
240
241 const Engine *e = Engine::Get(p1);
239 EngineID eid = GB(p1, 0, 16);
240 if (!IsEngineBuildable(eid, VEH_AIRCRAFT, _current_company)) return_cmd_error(STR_ERROR_AIRCRAFT_NOT_AVAILABLE);
241
242 const Engine *e = Engine::Get(eid);
242243 const AircraftVehicleInfo *avi = &e->u.air;
243244 CommandCost value(EXPENSES_NEW_VEHICLES, e->GetCost());
244245
251252 if (!IsHangarTile(tile) || !IsTileOwner(tile, _current_company)) return CMD_ERROR;
252253
253254 /* Prevent building aircraft types at places which can't handle them */
254 if (!CanVehicleUseStation(p1, Station::GetByTile(tile))) return CMD_ERROR;
255 if (!CanVehicleUseStation(eid, Station::GetByTile(tile))) return CMD_ERROR;
255256
256257 /* We will need to allocate 2 or 3 vehicle structs, depending on type */
257258 if (!Vehicle::CanAllocateItem(avi->subtype & AIR_CTOL ? 2 : 3)) {
298299
299300 v->max_speed = avi->max_speed;
300301 v->acceleration = avi->acceleration;
301 v->engine_type = p1;
302 u->engine_type = p1;
302 v->engine_type = eid;
303 u->engine_type = eid;
303304
304305 v->subtype = (avi->subtype & AIR_CTOL ? AIR_AIRCRAFT : AIR_HELICOPTER);
305306 v->UpdateDeltaXY(INVALID_DIR);
361362 /* Aircraft with 3 vehicles (chopper)? */
362363 if (v->subtype == AIR_HELICOPTER) {
363364 Aircraft *w = new Aircraft();
364 w->engine_type = p1;
365 w->engine_type = eid;
365366 w->direction = DIR_N;
366367 w->owner = _current_company;
367368 w->x_pos = v->x_pos;
386387 if (IsLocalCompany())
387388 InvalidateAutoreplaceWindow(v->engine_type, v->group_id); // updates the replace Aircraft window
388389
389 Company::Get(_current_company)->num_engines[p1]++;
390 Company::Get(_current_company)->num_engines[eid]++;
390391 }
391392
392393 return value;
875876 /* Make sure the rotors don't rotate too fast */
876877 if (u->cur_speed > 32) {
877878 v->cur_speed = 0;
878 if (--u->cur_speed == 32) SndPlayVehicleFx(SND_18_HELICOPTER, v);
879 if (--u->cur_speed == 32) {
880 if (!PlayVehicleSound(v, VSE_START)) {
881 SndPlayVehicleFx(SND_18_HELICOPTER, v);
882 }
883 }
879884 } else {
880885 u->cur_speed = 32;
881886 count = UpdateAircraftSpeed(v);
0 /* $Id: base_media_base.h 19278 2010-02-27 16:41:10Z rubidium $ */
0 /* $Id: base_media_base.h 19741 2010-04-30 21:01:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
107107 * Read the set information from a loaded ini.
108108 * @param ini the ini to read from
109109 * @param path the path to this ini file (for filenames)
110 * @param full_filename the full filename of the loaded file (for error reporting purposes)
110111 * @param allow_empty_filename empty filenames are valid
111112 * @return true if loading was successful.
112113 */
113 bool FillSetDetails(IniFile *ini, const char *path, bool allow_empty_filename = true);
114 bool FillSetDetails(IniFile *ini, const char *path, const char *full_filename, bool allow_empty_filename = true);
114115
115116 /**
116117 * Get the description for the given ISO code.
237238 struct GraphicsSet : BaseSet<GraphicsSet, MAX_GFT, DATA_DIR> {
238239 PaletteType palette; ///< Palette of this graphics set
239240
240 bool FillSetDetails(struct IniFile *ini, const char *path);
241 bool FillSetDetails(struct IniFile *ini, const char *path, const char *full_filename);
241242 };
242243
243244 /** All data/functions related with replacing the base graphics. */
275276 byte track_nr[NUM_SONGS_AVAILABLE];
276277 byte num_available;
277278
278 bool FillSetDetails(struct IniFile *ini, const char *path);
279 bool FillSetDetails(struct IniFile *ini, const char *path, const char *full_filename);
279280 };
280281
281282 /** All data/functions related with replacing the base music */
0 /* $Id: base_media_func.h 19223 2010-02-23 23:26:37Z rubidium $ */
0 /* $Id: base_media_func.h 19741 2010-04-30 21:01:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2424 #define fetch_metadata(name) \
2525 item = metadata->GetItem(name, false); \
2626 if (item == NULL || StrEmpty(item->value)) { \
27 DEBUG(grf, 0, "Base " SET_TYPE "set detail loading: %s field missing", name); \
27 DEBUG(grf, 0, "Base " SET_TYPE "set detail loading: %s field missing.", name); \
28 DEBUG(grf, 0, " Is %s readable for the user running OpenTTD?", full_filename); \
2829 return false; \
2930 }
3031
3132 template <class T, size_t Tnum_files, Subdirectory Tsubdir>
32 bool BaseSet<T, Tnum_files, Tsubdir>::FillSetDetails(IniFile *ini, const char *path, bool allow_empty_filename)
33 bool BaseSet<T, Tnum_files, Tsubdir>::FillSetDetails(IniFile *ini, const char *path, const char *full_filename, bool allow_empty_filename)
3334 {
3435 memset(this, 0, sizeof(*this));
3536
6970 /* Find the filename first. */
7071 item = files->GetItem(BaseSet<T, Tnum_files, Tsubdir>::file_names[i], false);
7172 if (item == NULL || (item->value == NULL && !allow_empty_filename)) {
72 DEBUG(grf, 0, "No " SET_TYPE " file for: %s", BaseSet<T, Tnum_files, Tsubdir>::file_names[i]);
73 DEBUG(grf, 0, "No " SET_TYPE " file for: %s (in %s)", BaseSet<T, Tnum_files, Tsubdir>::file_names[i], full_filename);
7374 return false;
7475 }
7576
8788 /* Then find the MD5 checksum */
8889 item = md5s->GetItem(filename, false);
8990 if (item == NULL) {
90 DEBUG(grf, 0, "No MD5 checksum specified for: %s", filename);
91 DEBUG(grf, 0, "No MD5 checksum specified for: %s (in %s)", filename, full_filename);
9192 return false;
9293 }
9394 char *c = item->value;
100101 } else if ('A' <= *c && *c <= 'F') {
101102 j = *c - 'A' + 10;
102103 } else {
103 DEBUG(grf, 0, "Malformed MD5 checksum specified for: %s", filename);
104 DEBUG(grf, 0, "Malformed MD5 checksum specified for: %s (in %s)", filename, full_filename);
104105 return false;
105106 }
106107 if (i % 2 == 0) {
154155 *path = '\0';
155156 }
156157
157 if (set->FillSetDetails(ini, path)) {
158 if (set->FillSetDetails(ini, path, filename)) {
158159 Tbase_set *duplicate = NULL;
159160 for (Tbase_set *c = BaseMedia<Tbase_set>::available_sets; c != NULL; c = c->next) {
160161 if (strcmp(c->name, set->name) == 0 || c->shortname == set->shortname) {
0 /* $Id: bridge.h 18872 2010-01-21 01:38:13Z rubidium $ */
0 /* $Id: bridge.h 19567 2010-04-05 21:34:47Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
6666
6767 void DrawBridgeMiddle(const TileInfo *ti);
6868
69 bool CheckBridge_Stuff(BridgeType bridge_type, uint bridge_len, DoCommandFlag flags = DC_NONE);
69 CommandCost CheckBridgeAvailability(BridgeType bridge_type, uint bridge_len, DoCommandFlag flags = DC_NONE);
7070 int CalcBridgeLenCostFactor(int x);
7171
7272 void ResetBridges();
0 /* $Id: bridge_gui.cpp 19087 2010-02-10 20:20:18Z rubidium $ */
0 /* $Id: bridge_gui.cpp 19567 2010-04-05 21:34:47Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
374374 case TRANSPORT_RAIL: last_bridge_type = _last_railbridge_type; break;
375375 default: break; // water ways and air routes don't have bridge types
376376 }
377 if (_ctrl_pressed && CheckBridge_Stuff(last_bridge_type, bridge_len)) {
377 if (_ctrl_pressed && CheckBridgeAvailability(last_bridge_type, bridge_len).Succeeded()) {
378378 DoCommandP(end, start, type | last_bridge_type, CMD_BUILD_BRIDGE | CMD_MSG(STR_ERROR_CAN_T_BUILD_BRIDGE_HERE), CcBuildBridge);
379379 return;
380380 }
395395
396396 /* loop for all bridgetypes */
397397 for (BridgeType brd_type = 0; brd_type != MAX_BRIDGES; brd_type++) {
398 if (CheckBridge_Stuff(brd_type, bridge_len)) {
398 if (CheckBridgeAvailability(brd_type, bridge_len).Succeeded()) {
399399 /* bridge is accepted, add to list */
400400 BuildBridgeData *item = bl->Append();
401401 item->index = brd_type;
0 /* $Id: build_vehicle_gui.cpp 19087 2010-02-10 20:20:18Z rubidium $ */
0 /* $Id: build_vehicle_gui.cpp 19551 2010-04-03 19:48:01Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
11211121 }
11221122 }
11231123 if (needed_height != this->details_height) { // Details window are not high enough, enlarge them.
1124 int resize = needed_height - this->details_height;
11241125 this->details_height = needed_height;
1125 this->ReInit();
1126 this->ReInit(0, resize);
11261127 return;
11271128 }
11281129 }
0 /* $Id: cmd_helper.h 17248 2009-08-21 20:21:05Z rubidium $ */
0 /* $Id: cmd_helper.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1111 #ifndef CMD_HELPER_H
1212 #define CMD_HELPER_H
1313
14 #include "direction_type.h"
15 #include "road_type.h"
14 #include "core/enum_type.hpp"
1615
17
18 template<uint N> static inline void ExtractValid();
19 template<> inline void ExtractValid<1>() {}
20
21
22 template<typename T> struct ExtractBits;
23 template<> struct ExtractBits<Axis> { static const uint Count = 1; };
24 template<> struct ExtractBits<DiagDirection> { static const uint Count = 2; };
25 template<> struct ExtractBits<RoadBits> { static const uint Count = 4; };
26
27
28 template<typename T, uint N, typename U> static inline T Extract(U v)
16 template<typename T, uint S, uint N, typename U> static inline T Extract(U v)
2917 {
3018 /* Check if there are enough bits in v */
31 ExtractValid<N + ExtractBits<T>::Count <= sizeof(U) * 8>();
32 return (T)GB(v, N, ExtractBits<T>::Count);
19 assert_tcompile(N == EnumPropsT<T>::num_bits);
20 assert_tcompile(S + N <= sizeof(U) * 8);
21 assert_tcompile(EnumPropsT<T>::end <= (1 << N));
22 U masked = GB(v, S, N);
23 return IsInsideMM(masked, EnumPropsT<T>::begin, EnumPropsT<T>::end) ? (T)masked : EnumPropsT<T>::invalid;
3324 }
3425
3526 #endif
0 /* $Id: command.cpp 19130 2010-02-14 15:44:21Z alberth $ */
0 /* $Id: command.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
187187 CommandProc CmdAutofillTimetable;
188188 CommandProc CmdSetTimetableStart;
189189
190 #define DEF_CMD(proc, flags) {proc, #proc, flags}
191
190192 /**
191193 * The master command table
192194 *
195197 * as the value from the CMD_* enums.
196198 */
197199 static const Command _command_proc_table[] = {
198 {CmdBuildRailroadTrack, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_RAILROAD_TRACK
199 {CmdRemoveRailroadTrack, CMD_AUTO}, // CMD_REMOVE_RAILROAD_TRACK
200 {CmdBuildSingleRail, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_SINGLE_RAIL
201 {CmdRemoveSingleRail, CMD_AUTO}, // CMD_REMOVE_SINGLE_RAIL
202 {CmdLandscapeClear, 0}, // CMD_LANDSCAPE_CLEAR
203 {CmdBuildBridge, CMD_AUTO}, // CMD_BUILD_BRIDGE
204 {CmdBuildRailStation, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_RAIL_STATION
205 {CmdBuildTrainDepot, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_TRAIN_DEPOT
206 {CmdBuildSingleSignal, CMD_AUTO}, // CMD_BUILD_SIGNALS
207 {CmdRemoveSingleSignal, CMD_AUTO}, // CMD_REMOVE_SIGNALS
208 {CmdTerraformLand, CMD_ALL_TILES | CMD_AUTO}, // CMD_TERRAFORM_LAND
209 {CmdPurchaseLandArea, CMD_NO_WATER | CMD_AUTO}, // CMD_PURCHASE_LAND_AREA
210 {CmdSellLandArea, 0}, // CMD_SELL_LAND_AREA
211 {CmdBuildTunnel, CMD_AUTO}, // CMD_BUILD_TUNNEL
212 {CmdRemoveFromRailStation, 0}, // CMD_REMOVE_FROM_RAIL_STATION
213 {CmdConvertRail, 0}, // CMD_CONVERT_RAILD
214 {CmdBuildRailWaypoint, 0}, // CMD_BUILD_RAIL_WAYPOINT
215 {CmdRenameWaypoint, 0}, // CMD_RENAME_WAYPOINT
216 {CmdRemoveFromRailWaypoint, 0}, // CMD_REMOVE_FROM_RAIL_WAYPOINT
217
218 {CmdBuildRoadStop, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_ROAD_STOP
219 {CmdRemoveRoadStop, 0}, // CMD_REMOVE_ROAD_STOP
220 {CmdBuildLongRoad, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_LONG_ROAD
221 {CmdRemoveLongRoad, CMD_NO_TEST | CMD_AUTO}, // CMD_REMOVE_LONG_ROAD; towns may disallow removing road bits (as they are connected) in test, but in exec they're removed and thus removing is allowed.
222 {CmdBuildRoad, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_ROAD
223 {CmdBuildRoadDepot, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_ROAD_DEPOT
224
225 {CmdBuildAirport, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_AIRPORT
226 {CmdBuildDock, CMD_AUTO}, // CMD_BUILD_DOCK
227 {CmdBuildShipDepot, CMD_AUTO}, // CMD_BUILD_SHIP_DEPOT
228 {CmdBuildBuoy, CMD_AUTO}, // CMD_BUILD_BUOY
229 {CmdPlantTree, CMD_AUTO}, // CMD_PLANT_TREE
230 {CmdBuildRailVehicle, 0}, // CMD_BUILD_RAIL_VEHICLE
231 {CmdMoveRailVehicle, 0}, // CMD_MOVE_RAIL_VEHICLE
232
233 {CmdSellRailWagon, 0}, // CMD_SELL_RAIL_WAGON
234 {CmdSendTrainToDepot, 0}, // CMD_SEND_TRAIN_TO_DEPOT
235 {CmdForceTrainProceed, 0}, // CMD_FORCE_TRAIN_PROCEED
236 {CmdReverseTrainDirection, 0}, // CMD_REVERSE_TRAIN_DIRECTION
237
238 {CmdModifyOrder, 0}, // CMD_MODIFY_ORDER
239 {CmdSkipToOrder, 0}, // CMD_SKIP_TO_ORDER
240 {CmdDeleteOrder, 0}, // CMD_DELETE_ORDER
241 {CmdInsertOrder, 0}, // CMD_INSERT_ORDER
242
243 {CmdChangeServiceInt, 0}, // CMD_CHANGE_SERVICE_INT
244
245 {CmdBuildIndustry, 0}, // CMD_BUILD_INDUSTRY
246 {CmdBuildCompanyHQ, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_COMPANY_HQ
247 {CmdSetCompanyManagerFace, 0}, // CMD_SET_COMPANY_MANAGER_FACE
248 {CmdSetCompanyColour, 0}, // CMD_SET_COMPANY_COLOUR
249
250 {CmdIncreaseLoan, 0}, // CMD_INCREASE_LOAN
251 {CmdDecreaseLoan, 0}, // CMD_DECREASE_LOAN
252
253 {CmdWantEnginePreview, 0}, // CMD_WANT_ENGINE_PREVIEW
254
255 {CmdRenameVehicle, 0}, // CMD_RENAME_VEHICLE
256 {CmdRenameEngine, 0}, // CMD_RENAME_ENGINE
257
258 {CmdRenameCompany, 0}, // CMD_RENAME_COMPANY
259 {CmdRenamePresident, 0}, // CMD_RENAME_PRESIDENT
260
261 {CmdRenameStation, 0}, // CMD_RENAME_STATION
262
263 {CmdSellAircraft, 0}, // CMD_SELL_AIRCRAFT
264
265 {CmdBuildAircraft, 0}, // CMD_BUILD_AIRCRAFT
266 {CmdSendAircraftToHangar, 0}, // CMD_SEND_AIRCRAFT_TO_HANGAR
267 {CmdRefitAircraft, 0}, // CMD_REFIT_AIRCRAFT
268
269 {CmdPlaceSign, 0}, // CMD_PLACE_SIGN
270 {CmdRenameSign, 0}, // CMD_RENAME_SIGN
271
272 {CmdBuildRoadVeh, 0}, // CMD_BUILD_ROAD_VEH
273 {CmdSellRoadVeh, 0}, // CMD_SELL_ROAD_VEH
274 {CmdSendRoadVehToDepot, 0}, // CMD_SEND_ROADVEH_TO_DEPOT
275 {CmdTurnRoadVeh, 0}, // CMD_TURN_ROADVEH
276 {CmdRefitRoadVeh, 0}, // CMD_REFIT_ROAD_VEH
277
278 {CmdPause, CMD_SERVER}, // CMD_PAUSE
279
280 {CmdBuyShareInCompany, 0}, // CMD_BUY_SHARE_IN_COMPANY
281 {CmdSellShareInCompany, 0}, // CMD_SELL_SHARE_IN_COMPANY
282 {CmdBuyCompany, 0}, // CMD_BUY_COMANY
283
284 {CmdFoundTown, CMD_NO_TEST}, // CMD_FOUND_TOWN; founding random town can fail only in exec run
285 {CmdRenameTown, CMD_SERVER}, // CMD_RENAME_TOWN
286 {CmdDoTownAction, 0}, // CMD_DO_TOWN_ACTION
287
288 {CmdSellShip, 0}, // CMD_SELL_SHIP
289 {CmdBuildShip, 0}, // CMD_BUILD_SHIP
290 {CmdSendShipToDepot, 0}, // CMD_SEND_SHIP_TO_DEPOT
291 {CmdRefitShip, 0}, // CMD_REFIT_SHIP
292
293 {CmdOrderRefit, 0}, // CMD_ORDER_REFIT
294 {CmdCloneOrder, 0}, // CMD_CLONE_ORDER
295
296 {CmdClearArea, CMD_NO_TEST}, // CMD_CLEAR_AREA; destroying multi-tile houses makes town rating differ between test and execution
297
298 {CmdMoneyCheat, CMD_OFFLINE}, // CMD_MONEY_CHEAT
299 {CmdBuildCanal, CMD_AUTO}, // CMD_BUILD_CANAL
300 {CmdCompanyCtrl, CMD_SPECTATOR}, // CMD_COMPANY_CTRL
301
302 {CmdLevelLand, CMD_ALL_TILES | CMD_NO_TEST | CMD_AUTO}, // CMD_LEVEL_LAND; test run might clear tiles multiple times, in execution that only happens once
303
304 {CmdRefitRailVehicle, 0}, // CMD_REFIT_RAIL_VEHICLE
305 {CmdRestoreOrderIndex, 0}, // CMD_RESTORE_ORDER_INDEX
306 {CmdBuildLock, CMD_AUTO}, // CMD_BUILD_LOCK
307
308 {CmdBuildSignalTrack, CMD_AUTO}, // CMD_BUILD_SIGNAL_TRACK
309 {CmdRemoveSignalTrack, CMD_AUTO}, // CMD_REMOVE_SIGNAL_TRACK
310
311 {CmdGiveMoney, 0}, // CMD_GIVE_MONEY
312 {CmdChangeSetting, CMD_SERVER}, // CMD_CHANGE_SETTING
313 {CmdChangeCompanySetting, 0}, // CMD_CHANGE_COMPANY_SETTING
314 {CmdSetAutoReplace, 0}, // CMD_SET_AUTOREPLACE
315 {CmdCloneVehicle, CMD_NO_TEST}, // CMD_CLONE_VEHICLE; NewGRF callbacks influence building and refitting making it impossible to correctly estimate the cost
316 {CmdStartStopVehicle, 0}, // CMD_START_STOP_VEHICLE
317 {CmdMassStartStopVehicle, 0}, // CMD_MASS_START_STOP
318 {CmdAutoreplaceVehicle, 0}, // CMD_AUTOREPLACE_VEHICLE
319 {CmdDepotSellAllVehicles, 0}, // CMD_DEPOT_SELL_ALL_VEHICLES
320 {CmdDepotMassAutoReplace, 0}, // CMD_DEPOT_MASS_AUTOREPLACE
321 {CmdCreateGroup, 0}, // CMD_CREATE_GROUP
322 {CmdDeleteGroup, 0}, // CMD_DELETE_GROUP
323 {CmdRenameGroup, 0}, // CMD_RENAME_GROUP
324 {CmdAddVehicleGroup, 0}, // CMD_ADD_VEHICLE_GROUP
325 {CmdAddSharedVehicleGroup, 0}, // CMD_ADD_SHARE_VEHICLE_GROUP
326 {CmdRemoveAllVehiclesGroup, 0}, // CMD_REMOVE_ALL_VEHICLES_GROUP
327 {CmdSetGroupReplaceProtection, 0}, // CMD_SET_GROUP_REPLACE_PROTECTION
328 {CmdMoveOrder, 0}, // CMD_MOVE_ORDER
329 {CmdChangeTimetable, 0}, // CMD_CHANGE_TIMETABLE
330 {CmdSetVehicleOnTime, 0}, // CMD_SET_VEHICLE_ON_TIME
331 {CmdAutofillTimetable, 0}, // CMD_AUTOFILL_TIMETABLE
332 {CmdSetTimetableStart, 0}, // CMD_SET_TIMETABLE_START
200 DEF_CMD(CmdBuildRailroadTrack, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_RAILROAD_TRACK
201 DEF_CMD(CmdRemoveRailroadTrack, CMD_AUTO), // CMD_REMOVE_RAILROAD_TRACK
202 DEF_CMD(CmdBuildSingleRail, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_SINGLE_RAIL
203 DEF_CMD(CmdRemoveSingleRail, CMD_AUTO), // CMD_REMOVE_SINGLE_RAIL
204 DEF_CMD(CmdLandscapeClear, 0), // CMD_LANDSCAPE_CLEAR
205 DEF_CMD(CmdBuildBridge, CMD_AUTO), // CMD_BUILD_BRIDGE
206 DEF_CMD(CmdBuildRailStation, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_RAIL_STATION
207 DEF_CMD(CmdBuildTrainDepot, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_TRAIN_DEPOT
208 DEF_CMD(CmdBuildSingleSignal, CMD_AUTO), // CMD_BUILD_SIGNALS
209 DEF_CMD(CmdRemoveSingleSignal, CMD_AUTO), // CMD_REMOVE_SIGNALS
210 DEF_CMD(CmdTerraformLand, CMD_ALL_TILES | CMD_AUTO), // CMD_TERRAFORM_LAND
211 DEF_CMD(CmdPurchaseLandArea, CMD_NO_WATER | CMD_AUTO), // CMD_PURCHASE_LAND_AREA
212 DEF_CMD(CmdSellLandArea, 0), // CMD_SELL_LAND_AREA
213 DEF_CMD(CmdBuildTunnel, CMD_AUTO), // CMD_BUILD_TUNNEL
214 DEF_CMD(CmdRemoveFromRailStation, 0), // CMD_REMOVE_FROM_RAIL_STATION
215 DEF_CMD(CmdConvertRail, 0), // CMD_CONVERT_RAILD
216 DEF_CMD(CmdBuildRailWaypoint, 0), // CMD_BUILD_RAIL_WAYPOINT
217 DEF_CMD(CmdRenameWaypoint, 0), // CMD_RENAME_WAYPOINT
218 DEF_CMD(CmdRemoveFromRailWaypoint, 0), // CMD_REMOVE_FROM_RAIL_WAYPOINT
219
220 DEF_CMD(CmdBuildRoadStop, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_ROAD_STOP
221 DEF_CMD(CmdRemoveRoadStop, 0), // CMD_REMOVE_ROAD_STOP
222 DEF_CMD(CmdBuildLongRoad, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_LONG_ROAD
223 DEF_CMD(CmdRemoveLongRoad, CMD_NO_TEST | CMD_AUTO), // CMD_REMOVE_LONG_ROAD; towns may disallow removing road bits (as they are connected) in test, but in exec they're removed and thus removing is allowed.
224 DEF_CMD(CmdBuildRoad, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_ROAD
225 DEF_CMD(CmdBuildRoadDepot, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_ROAD_DEPOT
226
227 DEF_CMD(CmdBuildAirport, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_AIRPORT
228 DEF_CMD(CmdBuildDock, CMD_AUTO), // CMD_BUILD_DOCK
229 DEF_CMD(CmdBuildShipDepot, CMD_AUTO), // CMD_BUILD_SHIP_DEPOT
230 DEF_CMD(CmdBuildBuoy, CMD_AUTO), // CMD_BUILD_BUOY
231 DEF_CMD(CmdPlantTree, CMD_AUTO), // CMD_PLANT_TREE
232 DEF_CMD(CmdBuildRailVehicle, 0), // CMD_BUILD_RAIL_VEHICLE
233 DEF_CMD(CmdMoveRailVehicle, 0), // CMD_MOVE_RAIL_VEHICLE
234
235 DEF_CMD(CmdSellRailWagon, 0), // CMD_SELL_RAIL_WAGON
236 DEF_CMD(CmdSendTrainToDepot, 0), // CMD_SEND_TRAIN_TO_DEPOT
237 DEF_CMD(CmdForceTrainProceed, 0), // CMD_FORCE_TRAIN_PROCEED
238 DEF_CMD(CmdReverseTrainDirection, 0), // CMD_REVERSE_TRAIN_DIRECTION
239
240 DEF_CMD(CmdModifyOrder, 0), // CMD_MODIFY_ORDER
241 DEF_CMD(CmdSkipToOrder, 0), // CMD_SKIP_TO_ORDER
242 DEF_CMD(CmdDeleteOrder, 0), // CMD_DELETE_ORDER
243 DEF_CMD(CmdInsertOrder, 0), // CMD_INSERT_ORDER
244
245 DEF_CMD(CmdChangeServiceInt, 0), // CMD_CHANGE_SERVICE_INT
246
247 DEF_CMD(CmdBuildIndustry, 0), // CMD_BUILD_INDUSTRY
248 DEF_CMD(CmdBuildCompanyHQ, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_COMPANY_HQ
249 DEF_CMD(CmdSetCompanyManagerFace, 0), // CMD_SET_COMPANY_MANAGER_FACE
250 DEF_CMD(CmdSetCompanyColour, 0), // CMD_SET_COMPANY_COLOUR
251
252 DEF_CMD(CmdIncreaseLoan, 0), // CMD_INCREASE_LOAN
253 DEF_CMD(CmdDecreaseLoan, 0), // CMD_DECREASE_LOAN
254
255 DEF_CMD(CmdWantEnginePreview, 0), // CMD_WANT_ENGINE_PREVIEW
256
257 DEF_CMD(CmdRenameVehicle, 0), // CMD_RENAME_VEHICLE
258 DEF_CMD(CmdRenameEngine, 0), // CMD_RENAME_ENGINE
259
260 DEF_CMD(CmdRenameCompany, 0), // CMD_RENAME_COMPANY
261 DEF_CMD(CmdRenamePresident, 0), // CMD_RENAME_PRESIDENT
262
263 DEF_CMD(CmdRenameStation, 0), // CMD_RENAME_STATION
264
265 DEF_CMD(CmdSellAircraft, 0), // CMD_SELL_AIRCRAFT
266
267 DEF_CMD(CmdBuildAircraft, 0), // CMD_BUILD_AIRCRAFT
268 DEF_CMD(CmdSendAircraftToHangar, 0), // CMD_SEND_AIRCRAFT_TO_HANGAR
269 DEF_CMD(CmdRefitAircraft, 0), // CMD_REFIT_AIRCRAFT
270
271 DEF_CMD(CmdPlaceSign, 0), // CMD_PLACE_SIGN
272 DEF_CMD(CmdRenameSign, 0), // CMD_RENAME_SIGN
273
274 DEF_CMD(CmdBuildRoadVeh, 0), // CMD_BUILD_ROAD_VEH
275 DEF_CMD(CmdSellRoadVeh, 0), // CMD_SELL_ROAD_VEH
276 DEF_CMD(CmdSendRoadVehToDepot, 0), // CMD_SEND_ROADVEH_TO_DEPOT
277 DEF_CMD(CmdTurnRoadVeh, 0), // CMD_TURN_ROADVEH
278 DEF_CMD(CmdRefitRoadVeh, 0), // CMD_REFIT_ROAD_VEH
279
280 DEF_CMD(CmdPause, CMD_SERVER), // CMD_PAUSE
281
282 DEF_CMD(CmdBuyShareInCompany, 0), // CMD_BUY_SHARE_IN_COMPANY
283 DEF_CMD(CmdSellShareInCompany, 0), // CMD_SELL_SHARE_IN_COMPANY
284 DEF_CMD(CmdBuyCompany, 0), // CMD_BUY_COMANY
285
286 DEF_CMD(CmdFoundTown, CMD_NO_TEST), // CMD_FOUND_TOWN; founding random town can fail only in exec run
287 DEF_CMD(CmdRenameTown, CMD_SERVER), // CMD_RENAME_TOWN
288 DEF_CMD(CmdDoTownAction, 0), // CMD_DO_TOWN_ACTION
289
290 DEF_CMD(CmdSellShip, 0), // CMD_SELL_SHIP
291 DEF_CMD(CmdBuildShip, 0), // CMD_BUILD_SHIP
292 DEF_CMD(CmdSendShipToDepot, 0), // CMD_SEND_SHIP_TO_DEPOT
293 DEF_CMD(CmdRefitShip, 0), // CMD_REFIT_SHIP
294
295 DEF_CMD(CmdOrderRefit, 0), // CMD_ORDER_REFIT
296 DEF_CMD(CmdCloneOrder, 0), // CMD_CLONE_ORDER
297
298 DEF_CMD(CmdClearArea, CMD_NO_TEST), // CMD_CLEAR_AREA; destroying multi-tile houses makes town rating differ between test and execution
299
300 DEF_CMD(CmdMoneyCheat, CMD_OFFLINE), // CMD_MONEY_CHEAT
301 DEF_CMD(CmdBuildCanal, CMD_AUTO), // CMD_BUILD_CANAL
302 DEF_CMD(CmdCompanyCtrl, CMD_SPECTATOR), // CMD_COMPANY_CTRL
303
304 DEF_CMD(CmdLevelLand, CMD_ALL_TILES | CMD_NO_TEST | CMD_AUTO), // CMD_LEVEL_LAND; test run might clear tiles multiple times, in execution that only happens once
305
306 DEF_CMD(CmdRefitRailVehicle, 0), // CMD_REFIT_RAIL_VEHICLE
307 DEF_CMD(CmdRestoreOrderIndex, 0), // CMD_RESTORE_ORDER_INDEX
308 DEF_CMD(CmdBuildLock, CMD_AUTO), // CMD_BUILD_LOCK
309
310 DEF_CMD(CmdBuildSignalTrack, CMD_AUTO), // CMD_BUILD_SIGNAL_TRACK
311 DEF_CMD(CmdRemoveSignalTrack, CMD_AUTO), // CMD_REMOVE_SIGNAL_TRACK
312
313 DEF_CMD(CmdGiveMoney, 0), // CMD_GIVE_MONEY
314 DEF_CMD(CmdChangeSetting, CMD_SERVER), // CMD_CHANGE_SETTING
315 DEF_CMD(CmdChangeCompanySetting, 0), // CMD_CHANGE_COMPANY_SETTING
316 DEF_CMD(CmdSetAutoReplace, 0), // CMD_SET_AUTOREPLACE
317 DEF_CMD(CmdCloneVehicle, CMD_NO_TEST), // CMD_CLONE_VEHICLE; NewGRF callbacks influence building and refitting making it impossible to correctly estimate the cost
318 DEF_CMD(CmdStartStopVehicle, 0), // CMD_START_STOP_VEHICLE
319 DEF_CMD(CmdMassStartStopVehicle, 0), // CMD_MASS_START_STOP
320 DEF_CMD(CmdAutoreplaceVehicle, 0), // CMD_AUTOREPLACE_VEHICLE
321 DEF_CMD(CmdDepotSellAllVehicles, 0), // CMD_DEPOT_SELL_ALL_VEHICLES
322 DEF_CMD(CmdDepotMassAutoReplace, 0), // CMD_DEPOT_MASS_AUTOREPLACE
323 DEF_CMD(CmdCreateGroup, 0), // CMD_CREATE_GROUP
324 DEF_CMD(CmdDeleteGroup, 0), // CMD_DELETE_GROUP
325 DEF_CMD(CmdRenameGroup, 0), // CMD_RENAME_GROUP
326 DEF_CMD(CmdAddVehicleGroup, 0), // CMD_ADD_VEHICLE_GROUP
327 DEF_CMD(CmdAddSharedVehicleGroup, 0), // CMD_ADD_SHARE_VEHICLE_GROUP
328 DEF_CMD(CmdRemoveAllVehiclesGroup, 0), // CMD_REMOVE_ALL_VEHICLES_GROUP
329 DEF_CMD(CmdSetGroupReplaceProtection, 0), // CMD_SET_GROUP_REPLACE_PROTECTION
330 DEF_CMD(CmdMoveOrder, 0), // CMD_MOVE_ORDER
331 DEF_CMD(CmdChangeTimetable, 0), // CMD_CHANGE_TIMETABLE
332 DEF_CMD(CmdSetVehicleOnTime, 0), // CMD_SET_VEHICLE_ON_TIME
333 DEF_CMD(CmdAutofillTimetable, 0), // CMD_AUTOFILL_TIMETABLE
334 DEF_CMD(CmdSetTimetableStart, 0), // CMD_SET_TIMETABLE_START
333335 };
334336
335337 /*!
359361 assert(IsValidCommand(cmd));
360362
361363 return _command_proc_table[cmd & CMD_ID_MASK].flags;
364 }
365
366 /*!
367 * This function mask the parameter with CMD_ID_MASK and returns
368 * the name which belongs to the given command.
369 *
370 * @param cmd The integer value of the command
371 * @return The name for this command
372 */
373 const char *GetCommandName(uint32 cmd)
374 {
375 assert(IsValidCommand(cmd));
376
377 return _command_proc_table[cmd & CMD_ID_MASK].name;
362378 }
363379
364380 static int _docommand_recursive = 0;
639655 return_dcpi(CommandCost(), false);
640656 }
641657 #endif /* ENABLE_NETWORK */
642 DEBUG(desync, 1, "cmd: %08x; %08x; %1x; %06x; %08x; %08x; %04x; %s\n", _date, _date_fract, (int)_current_company, tile, p1, p2, cmd & ~CMD_NETWORK_COMMAND, text);
658 DEBUG(desync, 1, "cmd: %08x; %02x; %02x; %06x; %08x; %08x; %08x; \"%s\" (%s)", _date, _date_fract, (int)_current_company, tile, p1, p2, cmd & ~CMD_NETWORK_COMMAND, text, GetCommandName(cmd));
643659
644660 /* Actually try and execute the command. If no cost-type is given
645661 * use the construction one */
661677 /* If we're needing more money and we haven't done
662678 * anything yet, ask for the money! */
663679 if (_additional_cash_required != 0 && res2.GetCost() == 0) {
680 /* It could happen we removed rail, thus gained money, and deleted something else.
681 * So make sure the signal buffer is empty even in this case */
682 UpdateSignalsInBuffer();
664683 SetDParam(0, _additional_cash_required);
665684 return_dcpi(CommandCost(STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY), false);
666685 }
0 /* $Id: command_func.h 18866 2010-01-18 22:57:21Z rubidium $ */
0 /* $Id: command_func.h 19603 2010-04-11 10:57:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
6767 */
6868 byte GetCommandFlags(uint32 cmd);
6969 /**
70 * Returns the name of a given command.
71 */
72 const char *GetCommandName(uint32 cmd);
73 /**
7074 * Returns the current money available which can be used for a command.
7175 */
7276 Money GetAvailableMoneyForCommand();
0 /* $Id: command_type.h 19130 2010-02-14 15:44:21Z alberth $ */
0 /* $Id: command_type.h 19603 2010-04-11 10:57:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
381381 * the #CMD_AUTO, #CMD_OFFLINE and #CMD_SERVER values.
382382 */
383383 struct Command {
384 CommandProc *proc;
385 byte flags;
384 CommandProc *proc; ///< The procedure to actually executing
385 const char *name; ///< A human readable name for the procedure
386 byte flags; ///< The (command) flags to that apply to this command
386387 };
387388
388389 /**
0 /* $Id: company_cmd.cpp 19376 2010-03-08 22:19:39Z rubidium $ */
0 /* $Id: company_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1414 #include "company_gui.h"
1515 #include "town.h"
1616 #include "news_func.h"
17 #include "cmd_helper.h"
1718 #include "command_func.h"
1819 #include "network/network.h"
1920 #include "network/network_func.h"
590591
591592 SetBit(c->bankrupt_asked, best->index);
592593
593 if (IsInteractiveCompany(best->index)) {
594 c->bankrupt_timeout = TAKE_OVER_TIMEOUT;
595 ShowBuyCompanyDialog(c->index);
596 return;
597 }
598
594 c->bankrupt_timeout = TAKE_OVER_TIMEOUT;
599595 if (best->is_ai) {
600596 AI::NewEvent(best->index, new AIEventCompanyAskMerger(c->index, ClampToI32(c->bankrupt_value)));
597 } else if (IsInteractiveCompany(best->index)) {
598 ShowBuyCompanyDialog(c->index);
601599 }
602600 }
603601
896894 */
897895 CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
898896 {
899 if (p2 >= 16) return CMD_ERROR; // max 16 colours
900
901 Colours colour = (Colours)p2;
902
903 LiveryScheme scheme = (LiveryScheme)GB(p1, 0, 8);
897 Colours colour = Extract<Colours, 0, 4>(p2);
898 LiveryScheme scheme = Extract<LiveryScheme, 0, 8>(p1);
904899 byte state = GB(p1, 8, 2);
905900
906 if (scheme >= LS_END || state >= 3) return CMD_ERROR;
901 if (scheme >= LS_END || state >= 3 || colour == INVALID_COLOUR) return CMD_ERROR;
907902
908903 Company *c = Company::Get(_current_company);
909904
964959 ResetVehicleColourMap();
965960 MarkWholeScreenDirty();
966961
962 /* All graph related to companies use the company colour. */
963 InvalidateWindowData(WC_INCOME_GRAPH, 0);
964 InvalidateWindowData(WC_OPERATING_PROFIT, 0);
965 InvalidateWindowData(WC_DELIVERED_CARGO, 0);
966 InvalidateWindowData(WC_PERFORMANCE_HISTORY, 0);
967 InvalidateWindowData(WC_COMPANY_VALUE, 0);
968
967969 /* Company colour data is indirectly cached. */
968970 Vehicle *v;
969971 FOR_ALL_VEHICLES(v) {
0 /* $Id: console_cmds.cpp 19376 2010-03-08 22:19:39Z rubidium $ */
0 /* $Id: console_cmds.cpp 19741 2010-04-30 21:01:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
988988 /* Don't copy the _newgame pointers to the real pointers, so call SwitchToMode directly */
989989 _settings_game.game_creation.map_x = MapLogX();
990990 _settings_game.game_creation.map_y = FindFirstBit(MapSizeY());
991 SwitchToMode(SM_RESTARTGAME);
991 _switch_mode = SM_RESTARTGAME;
992992 return true;
993993 }
994994
0 /* $Id: enum_type.hpp 17248 2009-08-21 20:21:05Z rubidium $ */
0 /* $Id: enum_type.hpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
5757 * @param Tbegin first valid value from the contiguous range (i.e. TRACK_BEGIN)
5858 * @param Tend one past the last valid value from the contiguous range (i.e. TRACK_END)
5959 * @param Tinvalid value used as invalid value marker (i.e. INVALID_TRACK)
60 * @param Tnum_bits Number of bits for storing the enum in command parameters
6061 */
61 template <typename Tenum_t, typename Tstorage_t, Tenum_t Tbegin, Tenum_t Tend, Tenum_t Tinvalid>
62 template <typename Tenum_t, typename Tstorage_t, Tenum_t Tbegin, Tenum_t Tend, Tenum_t Tinvalid, uint Tnum_bits = 8 * sizeof(Tstorage_t)>
6263 struct MakeEnumPropsT {
6364 typedef Tenum_t type; ///< enum type (i.e. Trackdir)
6465 typedef Tstorage_t storage; ///< storage type (i.e. byte)
6566 static const Tenum_t begin = Tbegin; ///< lowest valid value (i.e. TRACKDIR_BEGIN)
6667 static const Tenum_t end = Tend; ///< one after the last valid value (i.e. TRACKDIR_END)
6768 static const Tenum_t invalid = Tinvalid; ///< what value is used as invalid value (i.e. INVALID_TRACKDIR)
69 static const uint num_bits = Tnum_bits; ///< Number of bits for storing the enum in command parameters
6870 };
6971
7072
0 /* $Id: random_func.cpp 19125 2010-02-13 20:13:34Z frosch $ */
0 /* $Id: random_func.cpp 19653 2010-04-17 12:00:59Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2323 return this->state[1] = ROR(s, 3) - 1;
2424 }
2525
26 uint32 Randomizer::Next(uint16 max)
26 uint32 Randomizer::Next(uint32 max)
2727 {
28 return GB(this->Next(), 0, 16) * max >> 16;
28 return ((uint64)this->Next() * (uint64)max) >> 32;
2929 }
3030
3131 void Randomizer::SetSeed(uint32 seed)
5454 return _random.Next();
5555 }
5656
57 uint DoRandomRange(uint max, int line, const char *file)
57 uint32 DoRandomRange(uint32 max, int line, const char *file)
5858 {
59 return GB(DoRandom(line, file), 0, 16) * max >> 16;
59 return ((uint64)DoRandom(line, file) * (uint64)max) >> 32;
6060 }
6161 #endif /* RANDOM_DEBUG */
0 /* $Id: random_func.hpp 19133 2010-02-14 16:52:15Z rubidium $ */
0 /* $Id: random_func.hpp 19653 2010-04-17 12:00:59Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
4747 * @param max the maximum value of the returned random number
4848 * @return the random number
4949 */
50 uint32 Next(uint16 max);
50 uint32 Next(uint32 max);
5151
5252 /**
5353 * (Re)set the state of the random number generator.
9191 #endif
9292 uint32 DoRandom(int line, const char *file);
9393 #define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__)
94 uint DoRandomRange(uint max, int line, const char *file);
94 uint32 DoRandomRange(uint32 max, int line, const char *file);
9595 #else
9696 static FORCEINLINE uint32 Random()
9797 {
9898 return _random.Next();
9999 }
100100
101 static FORCEINLINE uint32 RandomRange(uint16 max)
101 static FORCEINLINE uint32 RandomRange(uint32 max)
102102 {
103103 return _random.Next(max);
104104 }
109109 return _interactive_random.Next();
110110 }
111111
112 static FORCEINLINE uint32 InteractiveRandomRange(uint16 max)
112 static FORCEINLINE uint32 InteractiveRandomRange(uint32 max)
113113 {
114114 return _interactive_random.Next(max);
115115 }
0 /* $Id: date.cpp 18433 2009-12-08 19:59:21Z frosch $ */
0 /* $Id: date.cpp 19603 2010-04-11 10:57:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
217217 */
218218 static void OnNewMonth()
219219 {
220 if (_debug_desync_level > 2) {
221 char name[MAX_PATH];
222 snprintf(name, lengthof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date);
223 SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR);
224 }
225
226220 if (_settings_client.gui.autosave != 0 && (_cur_month % _autosave_months[_settings_client.gui.autosave]) == 0) {
227221 _do_autosave = true;
228222 RedrawAutosave();
0 /* $Id: debug.cpp 19080 2010-02-10 16:12:54Z smatz $ */
0 /* $Id: debug.cpp 19603 2010-04-11 10:57:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
9292 static FILE *f = FioFOpenFile("commands-out.log", "wb", AUTOSAVE_DIR);
9393 if (f == NULL) return;
9494
95 fprintf(f, "%s%s", GetLogPrefix(), buf);
95 fprintf(f, "%s%s\n", GetLogPrefix(), buf);
9696 fflush(f);
9797 }
9898 }
0 /* $Id: direction_type.h 17248 2009-08-21 20:21:05Z rubidium $ */
0 /* $Id: direction_type.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
4040 DECLARE_POSTFIX_INCREMENT(Direction);
4141
4242 /** Define basic enum properties */
43 template <> struct EnumPropsT<Direction> : MakeEnumPropsT<Direction, byte, DIR_BEGIN, DIR_END, INVALID_DIR> {};
43 template <> struct EnumPropsT<Direction> : MakeEnumPropsT<Direction, byte, DIR_BEGIN, DIR_END, INVALID_DIR, 3> {};
4444 typedef TinyEnumT<Direction> DirectionByte; // typedefing-enumification of Direction
4545
4646
9090 DECLARE_POSTFIX_INCREMENT(DiagDirection);
9191
9292 /** Define basic enum properties */
93 template <> struct EnumPropsT<DiagDirection> : MakeEnumPropsT<DiagDirection, byte, DIAGDIR_BEGIN, DIAGDIR_END, INVALID_DIAGDIR> {};
93 template <> struct EnumPropsT<DiagDirection> : MakeEnumPropsT<DiagDirection, byte, DIAGDIR_BEGIN, DIAGDIR_END, INVALID_DIAGDIR, 2> {};
9494 typedef TinyEnumT<DiagDirection> DiagDirectionByte; // typedefing-enumification of DiagDirection
9595
9696
129129 AXIS_END, ///< Used for iterations
130130 INVALID_AXIS = 0xFF, ///< Flag for an invalid Axis
131131 };
132 template <> struct EnumPropsT<Axis> : MakeEnumPropsT<Axis, byte, AXIS_X, AXIS_END, INVALID_AXIS, 1> {};
132133
133134 #endif /* DIRECTION_TYPE_H */
0 /* $Id: economy.cpp 19278 2010-02-27 16:41:10Z rubidium $ */
0 /* $Id: economy.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
296296 /* use INVALID_OWNER as new_owner to delete the company. */
297297 void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
298298 {
299 #ifdef ENABLE_NETWORK
300 /* In all cases, make spectators of clients connected to that company */
301 if (_networking) NetworkClientsToSpectators(old_owner);
302 #endif /* ENABLE_NETWORK */
303
299304 Town *t;
300305 CompanyID old = _current_company;
301306
468473 _current_company = old;
469474
470475 MarkWholeScreenDirty();
471 }
472
473 static void ChangeNetworkOwner(Owner current_owner, Owner new_owner)
474 {
475 #ifdef ENABLE_NETWORK
476 if (!_networking) return;
477
478 if (current_owner == _local_company) {
479 SetLocalCompany(new_owner);
480 }
481
482 if (!_network_server) return;
483
484 NetworkServerChangeOwner(current_owner, new_owner);
485 #endif /* ENABLE_NETWORK */
486476 }
487477
488478 static void CompanyCheckBankrupt(Company *c)
546536 SetDParamStr(2, cni->company_name);
547537 AddCompanyNewsItem(STR_MESSAGE_NEWS_FORMAT, NS_COMPANY_BANKRUPT, cni);
548538
549 /* Remove the company */
550 ChangeNetworkOwner(c->index, COMPANY_SPECTATOR);
551539 ChangeOwnershipOfCompanyItems(c->index, INVALID_OWNER);
552540
553541 if (c->is_ai) AI::Stop(c->index);
14581446 AddCompanyNewsItem(STR_MESSAGE_NEWS_FORMAT, NS_COMPANY_MERGER, cni);
14591447 AI::BroadcastNewEvent(new AIEventCompanyMerger(ci, _current_company));
14601448
1461 /* original code does this a little bit differently */
1462 ChangeNetworkOwner(ci, _current_company);
14631449 ChangeOwnershipOfCompanyItems(ci, _current_company);
14641450
14651451 if (c->bankrupt_value == 0) {
15011487 CommandCost CmdBuyShareInCompany(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
15021488 {
15031489 CommandCost cost(EXPENSES_OTHER);
1504
1505 Company *c = Company::GetIfValid(p1);
1490 CompanyID target_company = (CompanyID)p1;
1491 Company *c = Company::GetIfValid(target_company);
15061492
15071493 /* Check if buying shares is allowed (protection against modified clients)
15081494 * Cannot buy own shares */
1509 if (c == NULL || !_settings_game.economy.allow_shares || _current_company == (CompanyID)p1) return CMD_ERROR;
1495 if (c == NULL || !_settings_game.economy.allow_shares || _current_company == target_company) return CMD_ERROR;
15101496
15111497 /* Protect new companies from hostile takeovers */
15121498 if (_cur_year - c->inaugurated_year < 6) return_cmd_error(STR_ERROR_PROTECTED);
15321518 break;
15331519 }
15341520 }
1535 SetWindowDirty(WC_COMPANY, p1);
1521 SetWindowDirty(WC_COMPANY, target_company);
15361522 }
15371523 return cost;
15381524 }
15471533 */
15481534 CommandCost CmdSellShareInCompany(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
15491535 {
1550 Company *c = Company::GetIfValid(p1);
1536 CompanyID target_company = (CompanyID)p1;
1537 Company *c = Company::GetIfValid(target_company);
15511538
15521539 /* Check if selling shares is allowed (protection against modified clients)
15531540 * Cannot sell own shares */
1554 if (c == NULL || !_settings_game.economy.allow_shares || _current_company == (CompanyID)p1) return CMD_ERROR;
1541 if (c == NULL || !_settings_game.economy.allow_shares || _current_company == target_company) return CMD_ERROR;
15551542
15561543 /* Those lines are here for network-protection (clients can be slow) */
15571544 if (GetAmountOwnedBy(c, _current_company) == 0) return CommandCost();
15641551 OwnerByte *b = c->share_owners;
15651552 while (*b != _current_company) b++; // share owners is guaranteed to contain company
15661553 *b = COMPANY_SPECTATOR;
1567 SetWindowDirty(WC_COMPANY, p1);
1554 SetWindowDirty(WC_COMPANY, target_company);
15681555 }
15691556 return CommandCost(EXPENSES_OTHER, cost);
15701557 }
15821569 */
15831570 CommandCost CmdBuyCompany(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
15841571 {
1585 Company *c = Company::GetIfValid(p1);
1572 CompanyID target_company = (CompanyID)p1;
1573 Company *c = Company::GetIfValid(target_company);
15861574 if (c == NULL) return CMD_ERROR;
15871575
15881576 /* Disable takeovers when not asked */
15921580 if (!_networking && _local_company == c->index) return CMD_ERROR;
15931581
15941582 /* Do not allow companies to take over themselves */
1595 if ((CompanyID)p1 == _current_company) return CMD_ERROR;
1583 if (target_company == _current_company) return CMD_ERROR;
15961584
15971585 /* Get the cost here as the company is deleted in DoAcquireCompany. */
15981586 CommandCost cost(EXPENSES_OTHER, c->bankrupt_value);
0 /* $Id: genworld.cpp 18861 2010-01-18 14:58:32Z smatz $ */
0 /* $Id: genworld.cpp 19603 2010-04-11 10:57:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
175175 ShowNewGRFError();
176176
177177 if (_network_dedicated) DEBUG(net, 0, "Map generated, starting game");
178 DEBUG(desync, 1, "new_map: %i\n", _settings_game.game_creation.generation_seed);
178 DEBUG(desync, 1, "new_map: %08x", _settings_game.game_creation.generation_seed);
179179
180180 if (_settings_client.gui.pause_on_newgame && _game_mode == GM_NORMAL) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
181181 if (_debug_desync_level > 0) {
0 /* $Id: gfx_type.h 18872 2010-01-21 01:38:13Z rubidium $ */
0 /* $Id: gfx_type.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
195195 COLOUR_END,
196196 INVALID_COLOUR = 0xFF,
197197 };
198 template <> struct EnumPropsT<Colours> : MakeEnumPropsT<Colours, byte, COLOUR_DARK_BLUE, COLOUR_END, INVALID_COLOUR, 4> {};
198199
199200 /** Colour of the strings, see _string_colourmap in table/palettes.h or docs/ottd-colourtext-palette.png */
200201 enum TextColour {
0 /* $Id: gfxinit.cpp 19223 2010-02-23 23:26:37Z rubidium $ */
0 /* $Id: gfxinit.cpp 19741 2010-04-30 21:01:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
202202 GfxInitPalettes();
203203 }
204204
205 bool GraphicsSet::FillSetDetails(IniFile *ini, const char *path)
206 {
207 bool ret = this->BaseSet<GraphicsSet, MAX_GFT, DATA_DIR>::FillSetDetails(ini, path, false);
205 bool GraphicsSet::FillSetDetails(IniFile *ini, const char *path, const char *full_filename)
206 {
207 bool ret = this->BaseSet<GraphicsSet, MAX_GFT, DATA_DIR>::FillSetDetails(ini, path, full_filename, false);
208208 if (ret) {
209209 IniGroup *metadata = ini->GetGroup("metadata");
210210 IniItem *item;
212212 fetch_metadata("palette");
213213 this->palette = (*item->value == 'D' || *item->value == 'd') ? PAL_DOS : PAL_WINDOWS;
214214 }
215 return true;
215 return ret;
216216 }
217217
218218
0 /* $Id: graph_gui.cpp 19090 2010-02-10 21:06:05Z rubidium $ */
0 /* $Id: graph_gui.cpp 19623 2010-04-13 21:32:29Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
8787 ToggleBit(_legend_excluded_companies, widget - GLW_FIRST_COMPANY);
8888 this->ToggleWidgetLoweredState(widget);
8989 this->SetDirty();
90 SetWindowDirty(WC_INCOME_GRAPH, 0);
91 SetWindowDirty(WC_OPERATING_PROFIT, 0);
92 SetWindowDirty(WC_DELIVERED_CARGO, 0);
93 SetWindowDirty(WC_PERFORMANCE_HISTORY, 0);
94 SetWindowDirty(WC_COMPANY_VALUE, 0);
90 InvalidateWindowData(WC_INCOME_GRAPH, 0);
91 InvalidateWindowData(WC_OPERATING_PROFIT, 0);
92 InvalidateWindowData(WC_DELIVERED_CARGO, 0);
93 InvalidateWindowData(WC_PERFORMANCE_HISTORY, 0);
94 InvalidateWindowData(WC_COMPANY_VALUE, 0);
9595 }
9696
9797 virtual void OnInvalidateData(int data)
198198 byte colours[GRAPH_MAX_DATASETS];
199199 OverflowSafeInt64 cost[GRAPH_MAX_DATASETS][GRAPH_NUM_MONTHS]; ///< Stored costs for the last #GRAPH_NUM_MONTHS months
200200
201 int64 GetHighestValue(int initial_highest_value) const
202 {
203 OverflowSafeInt64 highest_value = initial_highest_value;
201 /**
202 * Get the highest value of the graph's data. Excluded data is ignored to allow showing smaller values in
203 * better detail when disabling higher ones.
204 * @return Highest value of the graph (ignoring disabled data).
205 */
206 int64 GetHighestValue() const
207 {
208 OverflowSafeInt64 highest_value = 0;
204209
205210 for (int i = 0; i < this->num_dataset; i++) {
206 if (!HasBit(this->excluded_data, i)) {
207 for (int j = 0; j < this->num_on_x_axis; j++) {
208 OverflowSafeInt64 datapoint = this->cost[i][j];
209
210 if (datapoint != INVALID_DATAPOINT) {
211 /* For now, if the graph has negative values the scaling is
212 * symmetrical about the x axis, so take the absolute value
213 * of each data point. */
214 highest_value = max(highest_value, abs(datapoint));
215 }
211 if (HasBit(this->excluded_data, i)) continue;
212 for (int j = 0; j < this->num_on_x_axis; j++) {
213 OverflowSafeInt64 datapoint = this->cost[i][j];
214
215 if (datapoint != INVALID_DATAPOINT) {
216 /* For now, if the graph has negative values the scaling is
217 * symmetrical about the x axis, so take the absolute value
218 * of each data point. */
219 highest_value = max(highest_value, abs(datapoint));
216220 }
217221 }
218222 }
219223
224 /* Prevent showing the highest value too close to the graph upper limit. */
225 highest_value = (11 * highest_value) / 10;
226 /* Avoid using zero as the highest value. */
227 if (highest_value == 0) highest_value = GRAPH_NUM_LINES_Y - 1;
220228 /* Round up highest_value so that it will divide cleanly into the number of
221229 * axis labels used. */
222230 int round_val = highest_value % (GRAPH_NUM_LINES_Y - 1);
273281 r.left += 9;
274282 r.right -= 5;
275283
276 /* Start of with a highest_value of twice the height of the graph in pixels.
277 * It's a bit arbitrary, but it makes the cargo payment graph look a little
278 * nicer, and prevents division by zero when calculating where the datapoint
279 * should be drawn. */
280 highest_value = r.bottom - r.top + 1;
281 if (!this->has_negative_values) highest_value *= 2;
282 highest_value = GetHighestValue(highest_value);
284 highest_value = GetHighestValue();
283285
284286 /* Get width for Y labels */
285287 int label_width = GetYLabelWidth(highest_value);
523525 this->UpdateStatistics(false);
524526 }
525527
528 virtual void OnInvalidateData(int data)
529 {
530 this->UpdateStatistics(true);
531 }
532
526533 /**
527534 * Update the statistics.
528535 * @param initialize Initialize the data structure.
893900 virtual void OnTick()
894901 {
895902 /* Override default OnTick */
903 }
904
905 virtual void OnInvalidateData(int data)
906 {
907 this->OnHundredthTick();
896908 }
897909
898910 virtual void OnHundredthTick()
0 /* $Id: group_cmd.cpp 18494 2009-12-13 22:17:12Z rubidium $ */
0 /* $Id: group_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
99 /** @file group_cmd.cpp Handling of the engine groups */
1010
1111 #include "stdafx.h"
12 #include "cmd_helper.h"
1213 #include "command_func.h"
1314 #include "group.h"
1415 #include "train.h"
8182 */
8283 CommandCost CmdCreateGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
8384 {
84 VehicleType vt = (VehicleType)p1;
85 VehicleType vt = Extract<VehicleType, 0, 3>(p1);
8586 if (!IsCompanyBuildableVehicleType(vt)) return CMD_ERROR;
8687
8788 if (!Group::CanAllocateItem()) return CMD_ERROR;
257258 */
258259 CommandCost CmdAddSharedVehicleGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
259260 {
260 VehicleType type = (VehicleType)p2;
261 if (!Group::IsValidID(p1) || !IsCompanyBuildableVehicleType(type)) return CMD_ERROR;
261 VehicleType type = Extract<VehicleType, 0, 3>(p2);
262 GroupID id_g = p1;
263 if (!Group::IsValidID(id_g) || !IsCompanyBuildableVehicleType(type)) return CMD_ERROR;
262264
263265 if (flags & DC_EXEC) {
264266 Vehicle *v;
265 VehicleType type = (VehicleType)p2;
266 GroupID id_g = p1;
267267
268268 /* Find the first front engine which belong to the group id_g
269269 * then add all shared vehicles of this front engine to the group id_g */
297297 */
298298 CommandCost CmdRemoveAllVehiclesGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
299299 {
300 Group *g = Group::GetIfValid(p1);
301 VehicleType type = (VehicleType)p2;
300 GroupID old_g = p1;
301 Group *g = Group::GetIfValid(old_g);
302 VehicleType type = Extract<VehicleType, 0, 3>(p2);
302303
303304 if (g == NULL || g->owner != _current_company || !IsCompanyBuildableVehicleType(type)) return CMD_ERROR;
304305
305306 if (flags & DC_EXEC) {
306 GroupID old_g = p1;
307307 Vehicle *v;
308308
309309 /* Find each Vehicle that belongs to the group old_g and add it to the default group */
0 /* $Id: industry.h 19062 2010-02-08 21:19:41Z terkhen $ */
0 /* $Id: industry.h 19551 2010-04-03 19:48:01Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2525 * Defines the internal data of a functionnal industry
2626 */
2727 struct Industry : IndustryPool::PoolItem<&_industry_pool> {
28 typedef PersistentStorageArray<uint32, 16> PersistentStorage;
28 typedef PersistentStorageArray<int32, 16> PersistentStorage;
2929
3030 TileArea location; ///< Location of the industry
3131 const Town *town; ///< Nearest town
0 /* $Id: industry_cmd.cpp 19446 2010-03-17 22:21:03Z rubidium $ */
0 /* $Id: industry_cmd.cpp 19653 2010-04-17 12:00:59Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
15111511 }
15121512
15131513
1514 static bool CheckIfFarEnoughFromIndustry(TileIndex tile, int type)
1514 static bool CheckIfFarEnoughFromConflictingIndustry(TileIndex tile, int type)
15151515 {
15161516 const IndustrySpec *indspec = GetIndustrySpec(type);
15171517 const Industry *i;
1518
1519 if (_settings_game.economy.same_industry_close && indspec->IsRawIndustry())
1520 /* Allow primary industries to be placed close to any other industry */
1521 return true;
1522
15231518 FOR_ALL_INDUSTRIES(i) {
15241519 /* Within 14 tiles from another industry is considered close */
15251520 bool in_low_distance = DistanceMax(tile, i->location.tile) <= 14;
1526
1527 /* check if an industry that accepts the same goods is nearby */
1528 if (in_low_distance &&
1529 !indspec->IsRawIndustry() && // not a primary industry?
1530 indspec->accepts_cargo[0] == i->accepts_cargo[0] && (
1531 /* at least one of those options must be true */
1532 _game_mode != GM_EDITOR || // editor must not be stopped
1533 !_settings_game.economy.same_industry_close ||
1534 !_settings_game.economy.multiple_industry_per_town)) {
1535 _error_message = STR_ERROR_INDUSTRY_TOO_CLOSE;
1536 return false;
1537 }
15381521
15391522 /* check if there are any conflicting industry types around */
15401523 if ((i->type == indspec->conflicting[0] ||
17041687 }
17051688
17061689 if (!custom_shape_check && _settings_game.game_creation.land_generator == LG_TERRAGENESIS && _generating_world && !_ignore_restrictions && !CheckIfCanLevelIndustryPlatform(tile, DC_NO_WATER, it, type)) return NULL;
1707 if (!CheckIfFarEnoughFromIndustry(tile, type)) return NULL;
1690 if (!CheckIfFarEnoughFromConflictingIndustry(tile, type)) return NULL;
17081691
17091692 const Town *t = FindTownForIndustry(tile, type);
17101693 if (t == NULL) return NULL;
0 /* $Id: industry_gui.cpp 19222 2010-02-23 23:18:41Z rubidium $ */
0 /* $Id: industry_gui.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
954954 /** Sort industries by production and name */
955955 static int CDECL IndustryProductionSorter(const Industry * const *a, const Industry * const *b)
956956 {
957 int r = 0;
958
959 if ((*a)->produced_cargo[0] == CT_INVALID) {
960 if ((*b)->produced_cargo[0] != CT_INVALID) return -1;
961 } else {
962 if ((*b)->produced_cargo[0] == CT_INVALID) return 1;
963
964 r = ((*a)->last_month_production[0] + (*a)->last_month_production[1]) -
965 ((*b)->last_month_production[0] + (*b)->last_month_production[1]);
966 }
967
968 return (r == 0) ? IndustryNameSorter(a, b) : r;
957 uint prod_a = 0, prod_b = 0;
958 for (uint i = 0; i < lengthof((*a)->produced_cargo); i++) {
959 if ((*a)->produced_cargo[i] != CT_INVALID) prod_a += (*a)->last_month_production[i];
960 if ((*b)->produced_cargo[i] != CT_INVALID) prod_b += (*b)->last_month_production[i];
961 }
962 int r = prod_a - prod_b;
963
964 return (r == 0) ? IndustryTypeSorter(a, b) : r;
969965 }
970966
971967 /** Sort industries by transported cargo and name */
0 /* $Id: landscape.cpp 18866 2010-01-18 22:57:21Z rubidium $ */
0 /* $Id: landscape.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
603603
604604 /** Clear a big piece of landscape
605605 * @param tile end tile of area dragging
606 * @param flags of operation to conduct
606607 * @param p1 start tile of area dragging
607 * @param flags of operation to conduct
608608 * @param p2 unused
609609 * @param text unused
610610 * @return the cost of this operation or an error
1010 ##gender male
1111
1212
13 # $Id: afrikaans.txt 19411 2010-03-13 18:47:58Z rubidium $
13 # $Id: afrikaans.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :as ander nywerhede
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :vooruitsigting
11001100 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Laat meer as een soortgelyke nywerhede per dorp toe: {ORANGE}{STRING}
1101 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Nywerhede van die selfde tipe kan naby aan mekaar gebou word: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Toon altyd lang datum in die standbaan: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Toon seine op die bestuur kant: {ORANGE}{STRING}
11041103 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Toon finansies venster op die einde van die jaar: {ORANGE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NuweGRF: {LTBLUE}{STRING}
21252124 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Vrag aangeneem: {LTBLUE}
21262125 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2126 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Spoorlyn spoed limiet: {LTBLUE}{VELOCITY}
21272127
21282128 # Description of land area of different tiles
21292129 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rotse
41094109 STR_LORRY :{BLACK}{LORRY}
41104110 STR_PLANE :{BLACK}{PLANE}
41114111 STR_SHIP :{BLACK}{SHIP}
4112
4113 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
99 ##grflangid 0x14
1010
1111
12 # $Id: arabic_egypt.txt 19446 2010-03-17 22:21:03Z rubidium $
12 # $Id: arabic_egypt.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :ككل المصانع الأخرى
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :تنقيب
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}السماح بوجود اكثر من مصنع من نفس النوع في المدينة الواحدة: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}من الممكن بناء مصانع من نفس النوع بجوار بعض: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}استخدام التاريخ الطويل في لوحة العرض دائما: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}اظهار الاشارات على جهة السائق: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}أعرض نافذة المالية في آخر السنه: {ORANGE}{STRING}
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}الشحنة المقبولة: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA} /8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}حدود سرعة سكة الحديد: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :صخور
41084108 STR_LORRY :{BLACK}{LORRY}
41094109 STR_PLANE :{BLACK}{PLANE}
41104110 STR_SHIP :{BLACK}{SHIP}
4111
4112 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
1010 ##gender m f
1111
1212
13 # $Id: brazilian_portuguese.txt 19411 2010-03-13 18:47:58Z rubidium $
13 # $Id: brazilian_portuguese.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :como as outras indústrias
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :em prospecção
11001100 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Permitir várias indústrias semelhantes por cidade: {ORANGE}{STRING}
1101 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Indústrias do mesmo tipo podem ser construídas próximas: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Sempre exibir a data completa na barra de estado: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Exibir sinais no lado da circulação: {ORANGE}{STRING}
11041103 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Exibir janela das finanças no fim do ano: {ORANGE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21252124 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceita: {LTBLUE}
21262125 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2126 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Velocidade limite do trilho: {LTBLUE}{VELOCITY}
21272127
21282128 # Description of land area of different tiles
21292129 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rochas
35183518 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Ponte é muito baixa para o terreno
35193519 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Inicio e fim devem estar alinhados
35203520 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... os extremos da ponte devem estar sobre a terra
3521 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... ponte muito longa
35213522
35223523 # Tunnel related errors
35233524 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Impossível construir túnel aqui...
41094110 STR_LORRY :{BLACK}{LORRY}
41104111 STR_PLANE :{BLACK}{PLANE}
41114112 STR_SHIP :{BLACK}{SHIP}
4113
4114 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
1111 ##case m f n p
1212
1313
14 # $Id: bulgarian.txt 19446 2010-03-17 22:21:03Z rubidium $
14 # $Id: bulgarian.txt 19555 2010-04-03 20:19:26Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :като други промишлености
11001100 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :предстоящ
11011101 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Няколко еднакви индустрии на град: {ORANGE}{STRING}
1102 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Индустрии от еднакъв тип могат да бъдат строени близо една до друга: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Дълга дата в лента за състоянието: {ORANGE}{STRING.f}
11041103 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Семафорите от страната на пътното движение: {ORANGE}{STRING.n}
11051104 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Финансов отчет в края на годината: {ORANGE}{STRING.m}
1010 ##gender Masculin Femenin
1111
1212
13 # $Id: catalan.txt 19446 2010-03-17 22:21:03Z rubidium $
13 # $Id: catalan.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
604604 STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Selecciona el programa 'Ezy Street style music'
605605 STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Selecciona el programa 'Opcional 1' (definit per l'usuari)
606606 STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Selecciona el programa 'Opcional 2' (definit per l'usuari)
607 STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Control de programa aleatori actiu/inactiu
607 STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Commuta el programa aleatori actiu/inactiu
608608 STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Mostra la finestra de selecció de pistes de música
609609
610610 STR_ERROR_NO_SONGS :{WHITE}S'ha seleccionat un conjunt de músiques sense cançons. No es reproduiran cançons
691691 STR_SMALLMAP_CENTER :{BLACK}Centra el mapa petit a la posició actual
692692 STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRING} ({NUM})
693693 STR_SMALLMAP_TOWN :{TINYFONT}{WHITE}{TOWN}
694 STR_SMALLMAP_DISABLE_ALL :{BLACK}Desactiva tots
695 STR_SMALLMAP_ENABLE_ALL :{BLACK}Activa tots
694 STR_SMALLMAP_DISABLE_ALL :{BLACK}Desactiva-ho tot
695 STR_SMALLMAP_ENABLE_ALL :{BLACK}Activa-ho tot
696696 STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Mostra alçada
697697 STR_SMALLMAP_TOOLTIP_DISABLE_ALL :{BLACK}No mostris les indústries al mapa
698698 STR_SMALLMAP_TOOLTIP_ENABLE_ALL :{BLACK}Mostra totes les indústries al mapa
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :com les altres indústries
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospeccionant
11001100 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Permet vàries indústries similars a cada població: {ORANGE}{STRING}
1101 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Permet construir indústries del mateix tipus unes aprop de les altres: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Mostra sempre la data llarga a la barra d'estat: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Mostra senyals en el sentit de la marxa: {ORANGE}{STRING}
11041103 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Mostra la finestra de balanç al finalitzar cada any: {ORANGE}{STRING}
19371936 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Incrementa la densitat de senyals en arrossegar
19381937
19391938 # Bridge selection window
1940 STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Selecciona pont per la via
1941 STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Selecciona un Pont per Carretera
1939 STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Selecciona pont de tren
1940 STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Selecciona un Pont de carretera
19421941 STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Selecció de pont - clica sobre el pont triat per construir-lo
19431942 STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
19441943 STR_BRIDGE_NAME_SUSPENSION_STEEL :Suspensió, Acer
21242123 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21252124 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Càrrega acceptada: {LTBLUE}
21262125 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2126 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límit de velocitat de la via: {LTBLUE}{VELOCITY}
21272127
21282128 # Description of land area of different tiles
21292129 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Roques
35183518 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}El pont és massa baix pel terreny
35193519 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Inici i final han d'estar en línia recta
35203520 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... els extrems del pont han d'estar tots dos a terra
3521 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... el pont és massa llarg
35213522
35223523 # Tunnel related errors
35233524 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Aquí no es pot construir el túnel...
1111 ##case nom gen dat aku vok lok ins
1212
1313
14 # $Id: croatian.txt 19446 2010-03-17 22:21:03Z rubidium $
14 # $Id: croatian.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
11931193 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :kao i druge industrije
11941194 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prosperirajuća
11951195 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Dopusti više sličnih industrija po gradu: {ORANGE}{STRING}
1196 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industrije iste vrste mogu biti izgrađene u blizini jedna druge: {ORANGE}{STRING}
11971196 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Uvijek pokaži dugi datum u statusnoj traci: {ORANGE}{STRING}
11981197 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Pokaži signale na vozačkoj strani: {ORANGE}{STRING}
11991198 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Pokaži financijski prozor na kraju godine: {ORANGE}{STRING}
22192218 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
22202219 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Prihvaćeni teret: {LTBLUE}
22212220 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2221 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Najveća brzina željeznice: {LTBLUE}{VELOCITY}
22222222
22232223 # Description of land area of different tiles
22242224 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Stijenje
36133613 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Most je prenizak za teren
36143614 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Početak i kraj moraju biti u ravnini
36153615 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... oba kraja mosta moraju biti na zemlji
3616 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... predugačak most
36163617
36173618 # Tunnel related errors
36183619 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Ovdje nije moguće izgraditi tunel...
1111 ##case nom gen dat acc voc loc ins big small
1212
1313
14 # $Id: czech.txt 19446 2010-03-17 22:21:03Z rubidium $
14 # $Id: czech.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
11651165 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :jako u ostatniho průmyslu
11661166 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :průzkum
11671167 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Povolit více stejného průmyslu kolem jednoho města: {ORANGE}{STRING}
1168 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Průmysl stejného druhu může být budován poblíž sebe: {ORANGE}{STRING}
11691168 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Ukazovat dlouhé datum ve stavové liště: {ORANGE}{STRING}
11701169 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Ukazovat semafory na straně, kde jezdí silniční vozidla: {ORANGE}{STRING}
11711170 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Ukazovat finanční okno na konci každého roku: {ORANGE}{STRING}
21912190 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21922191 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Přijímané zboží: {LTBLUE}
21932192 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2193 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Rychlostní omezení tratě: {LTBLUE}{VELOCITY}
21942194
21952195 # Description of land area of different tiles
21962196 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Kamení
29762976 STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Ukázat detaily lodi
29772977 STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Ukázat detaily letadla
29782978
2979 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Současná činnost vlaku - vlak se zastaví nebo rozjede, když sem klikneš
2980 STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Současná činnost silničního vozidla - klikni sem pro zastavení/rozjetí vozidla. Ctrl+kliknutí pro zobrazení cíle
2981 STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Činnost lodi - na rozjetí nebo zastavení lodi klepni sem
2979 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Současná činnost vlaku - když sem klikneš, vlak se zastaví nebo rozjede. Když ještě podržíš Ctrl, pohled se posune na cílovou stanici.
2980 STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Současná činnost vozidla - klikni sem pro zastavení/rozjetí.
2981 STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Současná činnost plavidla - pro zastavení či rozjetí, klikni sem
29822982 STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Činnost letadla - stiskni pro rozjetí/zastavení letadla
29832983
29842984 # Messages in the start stop button in the vehicle view
33813381 STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Tak velká zmena velikosti zdrojové mapy není doporučena. Pokračovat s generováním?
33823382
33833383 # Soundset messages
3384 STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Byl nalezen pouze nouzový zvukový soubor. Pokud chcete zvuky, nainstalujte prosim zvukové soubory skrze systém stahování obsahu
33843385
33853386 # Screenshot related messages
33863387 STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Screenshot úspěšně uložen jako '{STRING}'
35903591 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Most je pro terén moc nízký
35913592 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Začátek a konec musí být ve stejné výšce
35923593 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... oba konce mostu musí být na zemi
3594 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... most je příliš dlouhý
35933595
35943596 # Tunnel related errors
35953597 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Zde nelze postavit tunel...
41824184 STR_PLANE :{BLACK}{PLANE}
41834185 STR_SHIP :{BLACK}{SHIP}
41844186
4187 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
99 ##grflangid 0x2d
1010
1111
12 # $Id: danish.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: danish.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :som andre industrier
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :efterforskning
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Tillad flere af samme slags industri per by: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Tillad flere af samme type industri tæt på hinanden: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Vis altid lang dato i statusbaren: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Vis signaler i kørselssiden: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Vis finansvinduet i slutningen af året: {ORANGE}{STRING}
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Accepteret last: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Togspors hastighedsgrænse: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Klipper
35173517 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Broen er for lav til terrænet
35183518 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Start- og slutposition skal være på linje
35193519 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... begge ender af en bro skal være på land
3520 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... broen er for lang
35203521
35213522 # Tunnel related errors
35223523 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Kan ikke bygge en tunnel her...
41084109 STR_LORRY :{BLACK}{LORRY}
41094110 STR_PLANE :{BLACK}{PLANE}
41104111 STR_SHIP :{BLACK}{SHIP}
4112
4113 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
99 ##grflangid 0x1f
1010
1111
12 # $Id: dutch.txt 19446 2010-03-17 22:21:03Z rubidium $
12 # $Id: dutch.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :zoals andere industrieën
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :proberen
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Meerdere vergelijkbare industrieën per stad toestaan: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industrieën van hetzelfde type dicht bij elkaar toestaan: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Altijd lange datum in statusbalk weergeven: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Seinen aan rijzijde plaatsen: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Financieel overzicht aan het eind van het jaar weergeven: {ORANGE}{STRING}
17501749 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :protocolfout
17511750 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :Ongelijke NewGRF-instelling
17521751 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :niet toegestaan
1753 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :raar pakket ontvangen
1752 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :ongeldig of onverwacht pakket ontvangen
17541753 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :foute revisie
17551754 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :naam al in gebruik
17561755 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :fout spelwachtwoord
17681767 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Spel nog steeds gepauzeerd ({STRING}, {STRING})
17691768 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Spel nog steeds gepauzeerd ({STRING}, {STRING}, {STRING})
17701769 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Spel vervolgd ({STRING})
1771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :niet genoeg spelers
1770 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :aantal spelers
17721771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :spelers maken verbinding
17731772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :handmatig
17741773 ############ End of leave-in-this-order
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Geaccepteerde vracht: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Spoor snelheidslimiet: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rotsen
35173517 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Brug is te laag voor dit terrein
35183518 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Begin en einde moeten op een lijn staan
35193519 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... uiteinden van brug moeten beiden op land zijn
3520 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... brug te lang
35203521
35213522 # Tunnel related errors
35223523 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Kan hier geen tunnel bouwen...
99 ##grflangid 0x01
1010
1111
12 # $Id: english.txt 19439 2010-03-16 20:54:26Z rubidium $
12 # $Id: english.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :as other industries
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospecting
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Allow multiple similar industries per town: {ORANGE}{STRING1}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industries of the same type can be built close to each other: {ORANGE}{STRING1}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Always show long date in the status bar: {ORANGE}{STRING1}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Show signals on the drive side: {ORANGE}{STRING1}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Show finances window at the end of the year: {ORANGE}{STRING1}
17501749 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :protocol error
17511750 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :NewGRF mismatch
17521751 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :not authorized
1753 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :received strange packet
1752 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :received invalid or unexpected packet
17541753 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :wrong revision
17551754 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :name already in use
17561755 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :wrong password
17681767 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Game still paused ({STRING}, {STRING})
17691768 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Game still paused ({STRING}, {STRING}, {STRING})
17701769 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Game unpaused ({STRING})
1771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :not enough players
1770 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :number of players
17721771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :connecting clients
17731772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manual
17741773 ############ End of leave-in-this-order
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{RAW_STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargo accepted: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Rail speed limit: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rocks
35073507
35083508 # Tree related errors
35093509 STR_ERROR_TREE_ALREADY_HERE :{WHITE}... tree already here
3510 STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... wrong terrain for tree type
35103511 STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}Can't plant tree here...
35113512
35123513 # Bridge related errors
35173518 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Bridge is too low for the terrain
35183519 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Start and end must be in line
35193520 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... ends of bridge must both be on land
3521 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... bridge too long
35203522
35213523 # Tunnel related errors
35223524 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Can't build tunnel here...
99 ##grflangid 0x00
1010
1111
12 # $Id: english_US.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: english_US.txt 19555 2010-04-03 20:19:26Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :as other industries
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospecting
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Allow multiple similar industries per town: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industries of the same type can be built close to each other: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Always show long date in the status bar: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Show signals on the drive side: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Show finances window at the end of the year: {ORANGE}{STRING}
1010 ##case n
1111
1212
13 # $Id: esperanto.txt 19411 2010-03-13 18:47:58Z rubidium $
13 # $Id: esperanto.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
894894 STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP :{BLACK}Elektu stilon de urbonomoj
895895
896896 ############ start of townname region
897 STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH :Angle (Origine)
897 STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH :Angle (Originale)
898898 STR_GAME_OPTIONS_TOWN_NAME_FRENCH :France
899899 STR_GAME_OPTIONS_TOWN_NAME_GERMAN :Germane
900900 STR_GAME_OPTIONS_TOWN_NAME_ADDITIONAL_ENGLISH :Angle (Aldone)
10771077 STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}Permesu forigon de pli da urbaj stratoj, pontoj ktp: {ORANGE}{STRING}
10781078 STR_CONFIG_SETTING_MAMMOTHTRAINS :{LTBLUE}Permesu konstrui tre longajn trajnojn: {ORANGE}{STRING}
10791079 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :{LTBLUE}Modelo de trajnakcelado: {ORANGE}{STRING}
1080 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_ORIGINAL :Originala
1081 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_REALISTIC :Realisma
1080 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_ORIGINAL :Originale
1081 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_REALISTIC :Realisme
10821082 STR_CONFIG_SETTING_FORBID_90_DEG :{LTBLUE}Trajnoj kaj ŝipoj ne ort-turniĝu: {ORANGE}{STRING} {LTBLUE} (bezonas NPF)
10831083 STR_CONFIG_SETTING_JOINSTATIONS :{LTBLUE}Ligu stacidomojn konstruatajn unu apud la alia: {ORANGE}{STRING}
10841084 STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :{LTBLUE}Permesu ligi staciojn ne rekte najbarajn: {ORANGE}{STRING}
10931093 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :kiel aliaj industrioj
10941094 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospektori
10951095 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Permesu pliajn similajn industriojn en la sama urbo: {ORANGE}{STRING}
1096 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Samtipaj industrioj povas esti konstruataj proksime unu de la alia: {ORANGE}{STRING}
10971096 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Ĉiam montru longan daton en la statbreto: {ORANGE}{STRING}
10981097 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Montru signalojn veturflanke: {ORANGE}{STRING}
10991098 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Montru financan fenestron fine de la jaro: {ORANGE}{STRING}
11361135 STR_CONFIG_SETTING_POPULATION_IN_LABEL :{LTBLUE}Montru enloĝantaron en urbnomindikilo: {ORANGE}{STRING}
11371136
11381137 STR_CONFIG_SETTING_LAND_GENERATOR :{LTBLUE}Landgenerilo: {ORANGE}{STRING}
1139 STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Origina
1138 STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Originale
11401139 STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis
11411140 STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :{LTBLUE}Maksimuma distanco de rando por Oleproduktejoj {ORANGE}{STRING}
11421141 STR_CONFIG_SETTING_SNOWLINE_HEIGHT :{LTBLUE}Neĝregiona alto: {ORANGE}{STRING}
11471146 STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Malregule
11481147 STR_CONFIG_SETTING_TREE_PLACER :{LTBLUE}Arbometa algoritmo: {ORANGE}{STRING}
11491148 STR_CONFIG_SETTING_TREE_PLACER_NONE :Neniu
1150 STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Origina
1149 STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Originale
11511150 STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Plibonigita
11521151 STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :{LTBLUE}Altecmapa turniĝo: {ORANGE}{STRING}
11531152 STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Maldekstrume
12541253 STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :ĉiom
12551254
12561255 STR_CONFIG_SETTING_TOWN_LAYOUT :{LTBLUE}Strataranĝo por novaj urboj: {ORANGE}{STRING}
1257 STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :defaŭlte
1256 STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :originale
12581257 STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :pli bonaj stratoj
12591258 STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :kvadrataro de 2x2
12601259 STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :kvadrataro de 3x3
12631262 STR_CONFIG_SETTING_NOISE_LEVEL :{LTBLUE}Permesu urbe kontrolatan laŭtecon por flughavenoj: {ORANGE}{STRING}
12641263 STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :prohibita
12651264 STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :permesita
1265 STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :permesite, propra urbomapo
12661266
12671267 STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :nur en pluvarbaroj
12681268 STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :ĉie
13061306
13071307 STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}Padtrovilo por trajnoj: {ORANGE}{STRING}
13081308 STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NPF :NPF
1309 STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_YAPF :YAPF {BLUE}(Rekomendita)
1309 STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_YAPF :YAPF {BLUE}(Rekomendite)
13101310 STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES :{LTBLUE}Padtrovilo por stratveturiloj: {ORANGE}{STRING}
13111311 STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_NPF :NPF
13121312 STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_YAPF :YAPF {BLUE}(Rekomendita)
13131313 STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :{LTBLUE}Padtrovilo por ŝipoj: {ORANGE}{STRING}
1314 STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :Originala {BLUE}(Rekomendita)
1314 STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :Originale {BLUE}(Rekomendite)
13151315 STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_NPF :NPF
1316 STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(malrekomenda)
1316 STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(Nerekomendite)
13171317
13181318 STR_CONFIG_SETTING_MAP_X :{LTBLUE}X-grandeco de la mapo: {ORANGE}{STRING}
13191319 STR_CONFIG_SETTING_MAP_Y :{LTBLUE}Y-grandeco de la mapo: {ORANGE}{STRING}
20542054
20552055 STR_FOUND_TOWN_ROAD_LAYOUT :{YELLOW}Urba strataranĝo:
20562056 STR_FOUND_TOWN_SELECT_TOWN_ROAD_LAYOUT :{BLACK}Selektu strataranĝon uzendan por ĉi tiu urbo
2057 STR_FOUND_TOWN_SELECT_LAYOUT_ORIGINAL :{BLACK}Originalo
2057 STR_FOUND_TOWN_SELECT_LAYOUT_ORIGINAL :{BLACK}Originale
20582058 STR_FOUND_TOWN_SELECT_LAYOUT_BETTER_ROADS :{BLACK}Pli bonaj stratoj
20592059 STR_FOUND_TOWN_SELECT_LAYOUT_2X2_GRID :{BLACK}2x2 krado
20602060 STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}3x3 krado
20892089 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
20902090 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Ŝarĝo akceptata: {LTBLUE}
20912091 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2092 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Rela rapideclimo: {LTBLUE}{VELOCITY}
20922093
20932094 # Description of land area of different tiles
20942095 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rokoj
22422243 STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Grandeco:
22432244 STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM}
22442245
2246 STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Enigu hazardan semon
22452247 STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Ŝanĝu altecon de la neĝlinio
22462248 STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Ŝanĝu komencjaron
22472249
40294031 STR_LORRY :{BLACK}{LORRY}
40304032 STR_PLANE :{BLACK}{PLANE}
40314033 STR_SHIP :{BLACK}{SHIP}
4034
4035 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
1010 ##case g in sü
1111
1212
13 # $Id: estonian.txt 19446 2010-03-17 22:21:03Z rubidium $
13 # $Id: estonian.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
11401140 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_ORIGINAL :Algupärane
11411141 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_REALISTIC :Realistlik
11421142 STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :{LTBLUE}Järsakute kalde suurus rongide jaoks {ORANGE}{STRING}%
1143 STR_CONFIG_SETTING_FORBID_90_DEG :{LTBLUE}Rongidel ja laevadel keelatakse 90 kraadised pöörded: {ORANGE}{STRING} {LTBLUE} (vajab NPF)
1143 STR_CONFIG_SETTING_FORBID_90_DEG :{LTBLUE}Rongidel ja laevadel keelatakse 90 kraadised pöörded: {ORANGE}{STRING} {LTBLUE} (ei tööta OPF-ga)
11441144 STR_CONFIG_SETTING_JOINSTATIONS :{LTBLUE}Kõrvuti ehitatud jaamade ühendamine: {ORANGE}{STRING}
11451145 STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :{LTBLUE}Mitte kõrvuti asetsevate jaamade liitmine: {ORANGE}{STRING}
11461146 STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}Täiustatud laadimisalgoritm: {ORANGE}{STRING}
11541154 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :nagu muud tööstused
11551155 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :eeluuringutega
11561156 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Samalaadsed tööstused ühes linnas: {ORANGE}{STRING}
1157 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Samalaadsed tööstused lähestiku: {ORANGE}{STRING}
11581157 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Täispikk kuupäev olekuribal: {ORANGE}{STRING}
11591158 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Signaalide paigutamine sõidusuunda: {ORANGE}{STRING}
11601159 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Aastalõpu rahavoogude aruanne: {ORANGE}{STRING}
14051404 STR_INTRO_AI_SETTINGS :{BLACK}Tehismõistuse seaded
14061405 STR_INTRO_QUIT :{BLACK}Välju
14071406
1408 STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Alusta uut mängu
1407 STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Alusta uut mängu. Ctrl+Klikk jätab kaardi seadistamise vahele
14091408 STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Laadi salvestatud mäng
14101409 STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Alusta uut mängu kasutades kõrguskaarti maastikuna
14111410 STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Alusta omatehtud stsenaariumit kasutades uut mängu
15911590 STR_NETWORK_SERVER_LIST_LANGUAGE :{SILVER}Keel: {WHITE}{STRING}
15921591 STR_NETWORK_SERVER_LIST_LANDSCAPE :{SILVER}Maastik: {WHITE}{STRING}
15931592 STR_NETWORK_SERVER_LIST_MAP_SIZE :{SILVER}Kaardi suurus: {WHITE}{COMMA}x{COMMA}
1594 STR_NETWORK_SERVER_LIST_SERVER_VERSION :{SILVER}Osa serveris: {WHITE}{STRING}
1593 STR_NETWORK_SERVER_LIST_SERVER_VERSION :{SILVER}Serveri versioon: {WHITE}{STRING}
15951594 STR_NETWORK_SERVER_LIST_SERVER_ADDRESS :{SILVER}Serveri aadress: {WHITE}{STRING}
15961595 STR_NETWORK_SERVER_LIST_START_DATE :{SILVER}Aeg alguses: {WHITE}{DATE_SHORT}
15971596 STR_NETWORK_SERVER_LIST_CURRENT_DATE :{SILVER}Aeg hetkel: {WHITE}{DATE_SHORT}
17371736 # Network company list added strings
17381737 STR_NETWORK_COMPANY_LIST_CLIENT_LIST :{WHITE}Klientide nimekiri
17391738 STR_NETWORK_COMPANY_LIST_SPECTATE :{WHITE}Jälgi
1740 STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Uus Ettevõte
1739 STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Uus ettevõte
17411740
17421741 # Network client list
17431742 STR_NETWORK_CLIENTLIST_KICK :Viska välja
19371936 STR_RAIL_TOOLBAR_MONORAIL_CONSTRUCTION_CAPTION :{WHITE}Monorelsi ehitamine
19381937 STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :{WHITE}Magnethõljuktee ehitamine
19391938
1940 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Ehita rööbasteed
1939 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Ehita raudteed. Ctrl vahetab ehitamise eemaldamise vastu
19411940 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Rööbaste ehitamine kasutades "lohistamist"
19421941 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Ehita rongidepoo (rongide ehitamiseks ja hoolduseks)
19431942 STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Muuda rööpad meldepunktiks
21802179 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21812180 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Vastuvõetavad veosed: {LTBLUE}
21822181 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2182 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Raudtee kiirusepiirang: {LTBLUE}{VELOCITY}
21832183
21842184 # Description of land area of different tiles
21852185 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Kaljud
33613361 STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... ei suutnud muuta pildi tüüpi.
33623362
33633363 STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}Skaala hoiatus
3364 STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Kaardi suuruse muutmine pole soovitatav. Jätka?
3364 STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Kaardi suuruse liigne muutmine pole soovitatav. Jätka?
33653365
33663366 # Soundset messages
33673367 STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Mäng ei leidnud helisid. Helid saad paigaldada Internetisisu laadimise aknast.
35743574 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Sild on maastiku suhtes liiga madal
35753575 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Algus ja lõpp peavad samal joonel olema
35763576 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... mõlemad sillaotsad peavad olema maal
3577 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}.. sild on liiga pik
35773578
35783579 # Tunnel related errors
35793580 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Siia ei saa tunnelit ehitada...
41654166 STR_LORRY :{BLACK}{LORRY}
41664167 STR_PLANE :{BLACK}{PLANE}
41674168 STR_SHIP :{BLACK}{SHIP}
4169
4170 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
99 ##grflangid 0x35
1010
1111
12 # $Id: finnish.txt 19446 2010-03-17 22:21:03Z rubidium $
12 # $Id: finnish.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :kuten muut tehtaat
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :koekaivaus
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Kaupungissa voi olla useita samanlaisia teollisuustyyppejä: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Samantyyppistä teollisuutta voidaan rakentaa lähekkäin: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Näytä aina koko päiväys tilapalkissa: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Näytä opastimet ajokaistalla: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Näytä rahoitusikkuna vuoden lopussa: {ORANGE}{STRING}
17501749 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :protokollavirhe
17511750 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :NewGRF-virhe
17521751 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :ei valtuutettu
1753 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :vastaanotettiin omituinen paketti
1752 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :vastaanotettiin viallinen tai odottamaton paketti
17541753 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :väärä revisio
17551754 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :nimi on jo käytössä
17561755 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :väärä salasana
17681767 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Peli yhä pysäytetty ({STRING}, {STRING})
17691768 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Peli yhä pysäytetty ({STRING}, {STRING}, {STRING})
17701769 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Peliä jatketaan ({STRING})
1771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :ei tarpeeksi pelaajia
1770 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :pelaajien määrä
17721771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :yhdistäviä pelaajia
17731772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manuaalinen
17741773 ############ End of leave-in-this-order
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Vastaanottaa rahtia: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Raiteiden nopeusrajoitus: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Kalliota
35073507
35083508 # Tree related errors
35093509 STR_ERROR_TREE_ALREADY_HERE :{WHITE}... tässä on jo puu.
3510 STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... väärä maasto puulle
35103511 STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}Puuta ei voi istuttaa.
35113512
35123513 # Bridge related errors
35173518 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Silta on liian matalalla maastoa varten
35183519 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Alku- ja päätepisteen pitää olla linjassa.
35193520 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... sillan molempien päiden pitää sijaita maalla.
3521 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... silta liian pitkä
35203522
35213523 # Tunnel related errors
35223524 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Tunnelia ei voi rakentaa...
1010 ##gender m m2 f
1111
1212
13 # $Id: french.txt 19446 2010-03-17 22:21:03Z rubidium $
13 # $Id: french.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :comme les autres industries
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospection
11001100 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Permettre plusieurs industries similaires par ville{NBSP}: {ORANGE}{STRING}
1101 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Permettre plusieurs industries similaires à proximité{NBSP}: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Afficher la date complète dans la barre d'état{NBSP}: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Signaux ferroviaires du côté du sens de conduite{NBSP}: {ORANGE}{STRING}
11041103 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Afficher le bilan de finances en fin d'année{NBSP}: {ORANGE}{STRING}
17511750 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :erreur de protocole
17521751 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :NewGRF requis
17531752 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :non autorisé
1754 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :paquet étrange reçu
1753 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :paquet invalide ou inattendu reçu
17551754 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :révision incorrecte
17561755 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :nom déjà utilisé
17571756 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :mot de passe de partie incorrect
17691768 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Partie toujours suspendue ({STRING}, {STRING})
17701769 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Partie toujours suspendue ({STRING}, {STRING}, {STRING})
17711770 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Partie reprise ({STRING})
1772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :pas assez de joueurs
1771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :nombre de joueurs
17731772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :connexion de clients
17741773 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manuel
17751774 ############ End of leave-in-this-order
21242123 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF{NBSP}: {LTBLUE}{STRING}
21252124 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargaison acceptée{NBSP}: {LTBLUE}
21262125 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2126 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Vitesse limite de la voie{NBSP}: {LTBLUE}{VELOCITY}
21272127
21282128 # Description of land area of different tiles
21292129 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Roches
35083508
35093509 # Tree related errors
35103510 STR_ERROR_TREE_ALREADY_HERE :{WHITE}... il y a déjà des arbres
3511 STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... mauvais terrain pour ce type d'arbre
35113512 STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}Plantation impossible...
35123513
35133514 # Bridge related errors
35183519 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Le pont est trop bas pour le terrain
35193520 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Le début et la fin doivent être alignés
35203521 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... les deux extrémités du pont doivent être sur la terre ferme
3522 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... pont trop long
35213523
35223524 # Tunnel related errors
35233525 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Impossible de construire un tunnel ici...
1010 ##gender m f n
1111
1212
13 # $Id: galician.txt 19411 2010-03-13 18:47:58Z rubidium $
13 # $Id: galician.txt 19555 2010-04-03 20:19:26Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10811081 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :coma outras industrias
10821082 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospección
10831083 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Permitir múltiples industrias similares en cada cidade: {ORANGE}{STRING}
1084 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Permiti-la construción de industrias iguais cercanas: {ORANGE}{STRING}
10851084 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Mostrar sempre a data longa na barra de estado: {ORANGE}{STRING}
10861085 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Mostrar sinais no lado de conducción: {ORANGE}{STRING}
10871086 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Mostra-la fiestra de finanzas ó final do ano: {ORANGE}{STRING}
1010 ##gender m w n p
1111
1212
13 # $Id: german.txt 19446 2010-03-17 22:21:03Z rubidium $
13 # $Id: german.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Wie andere Industrien
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Durch Prospektion
11001100 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Mehrere gleichartige Industrien pro Stadt erlauben: {ORANGE}{STRING}
1101 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Gleiche Industrien können nahe beieinander gebaut werden: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Lange Datumsanzeige in der Statusleiste (links unten): {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Signale auf der Seite der Straßenverkehrsrichtung anzeigen: {ORANGE}{STRING}
11041103 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Zeige Firmenfinanzen am Ende des Jahres: {ORANGE}{STRING}
17511750 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :Protokollfehler
17521751 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :NewGRF-Versionen stimmen nicht überein
17531752 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :nicht autorisiert
1754 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :Unerwartetes Datenpaket empfangen
1753 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :Ungültiges oder unerwartetes Datenpaket empfangen
17551754 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :Falsche Version
17561755 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :Name wird bereits verwendet
17571756 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :Falsches Spielpasswort
17691768 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Spiel weiterhin angehalten ({STRING}, {STRING})
17701769 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Spiel weiterhin angehalten ({STRING}, {STRING}, {STRING})
17711770 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Spiel fortgesetzt ({STRING})
1772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :nicht genug Spieler
1771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :Spieleranzahl
17731772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :Teilnehmer meldet sich an
17741773 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manuell
17751774 ############ End of leave-in-this-order
21242123 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21252124 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Akzeptierte Fracht: {LTBLUE}
21262125 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2126 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Geschwindigkeitsbegrenzung auf Gleisen: {LTBLUE}{VELOCITY}
21272127
21282128 # Description of land area of different tiles
21292129 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Felsen
29032903 STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Zeige Einzelheiten des Schiffes
29042904 STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Zeige Einzelheiten des Flugzeuges
29052905
2906 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Laufende Zugbewegung - Klicke hier, um den Zug anzuhalten / zu starten
2907 STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Laufende Fahrzeugbewegung - Klick zum Anhalten bzw. Losschicken
2908 STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Laufende Schiffsbewegung - Klicke hier, um das Schiff anzuhalten / zu starten
2909 STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Laufende Flugzeugbewegung - Klick zum Anhalten bzw. losschicken
2906 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Laufende Zugbewegung - Klicke hier, um den Zug anzuhalten / zu starten. Strg + Klick scrollt zum Bestimmungsort
2907 STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Laufende Fahrzeugbewegung - Klick zum Anhalten bzw. Losschicken. Strg + Klick scrollt zum Bestimmungsort
2908 STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Laufende Schiffsbewegung - Klicke hier, um das Schiff anzuhalten / zu starten. Strg + Klick scrollt zum Bestimmungsort
2909 STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Laufende Flugzeugbewegung - Klick zum Anhalten bzw. losschicken. Strg + Klick scrollt zum Bestimmungsort
29102910
29112911 # Messages in the start stop button in the vehicle view
29122912 STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Laden / Entladen
35183518 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Die Brücke ist zu niedrig für diese Umgebung
35193519 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Anfang und Ende müssen auf einer Linie liegen
35203520 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... Brücke muss an beiden Seiten auf Land enden
3521 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... Brücke zu lang
35213522
35223523 # Tunnel related errors
35233524 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Tunnel kann hier nicht gebaut werden...
1111 ##case subs date geniki
1212
1313
14 # $Id: greek.txt 19446 2010-03-17 22:21:03Z rubidium $
14 # $Id: greek.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
11921192 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :όπως σε άλλες βιομηχανίες
11931193 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :επικείμενη
11941194 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Επιτρέπονται πολλαπλές όμοιες βιομηχανίες ανα πόλη: {ORANGE}{STRING}
1195 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Βιομηχανίες ίδου τύπου μπορούν να χτιστούν κοντά η μία στην άλλη: {ORANGE}{STRING}
11961195 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Εμφάνιση ολόκληρης ημερομηνίας στη γραμμή κατάστασης: {ORANGE}{STRING}
11971196 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Εμφάνιση σήμανσης στην πλευρά οδήγησης: {ORANGE}{STRING}
11981197 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Εμφάνιση παράθυρου οικονομικών στο τέλος του έτους: {ORANGE}{STRING}
17261725 ############ End of leave-in-this-order
17271726
17281727 # Network game lobby
1729 STR_NETWORK_GAME_LOBBY_CAPTION :{WHITE}Αίθουσας παιχνιδιού για πολλούς παίκτες
1728 STR_NETWORK_GAME_LOBBY_CAPTION :{WHITE}Αίθουσα παιχνιδιού για πολλούς παίκτες
17301729
17311730 STR_NETWORK_GAME_LOBBY_PREPARE_TO_JOIN :{BLACK}Προετοιμασία για συμμετοχή: {ORANGE}{STRING}
17321731 STR_NETWORK_GAME_LOBBY_COMPANY_LIST_TOOLTIP :{BLACK}Λίστα όλων των εταιριών αυτή τη στιγμή στο παιχνίδι. Μπορείτε είτε να συμμετάσχετε σε μία ή να δημιουργήσετε μια νέα αν υπάρχει κενή θέση
18731872 STR_NETWORK_MESSAGE_CLIENT_COMPANY_JOIN :*** {STRING} συμμετέχει στην εταιρία #{2:NUM}
18741873 STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} συμμετέχει στους θεατές
18751874 STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} ξεκίνησε μια νεα εταιρία (#{2:NUM})
1876 STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} αποχώρηση από το παιχνίδι ({2:STRING})
1875 STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} αποχώρησε από το παιχνίδι ({2:STRING})
18771876 STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} άλλαξε το όνομα του/της σε {STRING}
18781877 STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} έδωσε στην εταιρία σας {2:CURRENCY}
18791878 STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** Δώσατε {1:STRING} {2:CURRENCY}
22182217 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
22192218 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Αποδεκτό Εμπόρευμα: {LTBLUE}
22202219 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2220 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}'Οριο ταχυτητας: {LTBLUE}{VELOCITY}
22212221
22222222 # Description of land area of different tiles
22232223 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Πέτρες
36083608
36093609 # Tree related errors
36103610 STR_ERROR_TREE_ALREADY_HERE :{WHITE}... υπάρχει ήδη δέντρο εδώ
3611 STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... λάθος έδαφος για αυτό το τύπο δέντρου
36113612 STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}Δεν γίνεται να φυτευθεί δέντρο εδώ...
36123613
36133614 # Bridge related errors
36183619 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Η γέφυρα είναι πολύ χαμηλή για το έδαφος
36193620 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Η αρχή και το τέλος πρέπει να είναι σε ευθεία
36203621 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... και τα δύο άκρα της γέφυρας πρέπει να είναι σε έδαφος
3622 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... γέφυρα πολλή μεγάλη
36213623
36223624 # Tunnel related errors
36233625 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Δεν μπορεί να χτιστεί τούνελ εδώ...
42144216 STR_PLANE :{BLACK}{PLANE}
42154217 STR_SHIP :{BLACK}{SHIP}
42164218
4219 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
1111 ##case singular plural gen
1212
1313
14 # $Id: hebrew.txt 19411 2010-03-13 18:47:58Z rubidium $
14 # $Id: hebrew.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
11111111 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :כמו שאר התעשיות
11121112 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :חיפוש אחר התעשיות
11131113 STR_CONFIG_SETTING_MULTIPINDTOWN :{ORANGE}{STRING}{LTBLUE} :אפשר יצירת מספר תעשיות זהות בשטחה של עיר אחת
1114 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}:תעשיות מאותו הסוג יכולים להבנות אחד ליד השני {ORANGE}{STRING}
11151114 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}תמיד תראה תאריך מלא בסגל הסטטוס: {ORANGE}{STRING}
11161115 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}הראה רמזורים בצד הנהיגה: {ORANGE}{STRING}
11171116 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}הראה את חלון מערך הכספים בכל סוף שנה : {ORANGE}{STRING}
21372136 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}{LTBLUE}{STRING}: שדרוג גראפי
21382137 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK} :מקבל {LTBLUE}
21392138 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({1:STRING} {0:COMMA}/8 )
2139 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}מגבלת מהירות על המסילה: {LTBLUE}{VELOCITY}
21402140
21412141 # Description of land area of different tiles
21422142 STR_LAI_CLEAR_DESCRIPTION_ROCKS :סלעים
35313531 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}גשר נמוך מידי עבור השטח
35323532 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}התחלה וסיום חייבים להיות באותו הקו
35333533 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... קצות הגשר צריכים להיות על קרקע
3534 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... גשר ארוך מידי
35343535
35353536 # Tunnel related errors
35363537 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}לא ניתן להקים מנהרה כאן...
41244125 STR_LORRY :{BLACK}{LORRY}
41254126 STR_PLANE :{BLACK}{PLANE}
41264127 STR_SHIP :{BLACK}{SHIP}
4128
4129 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
1010 ##case t ba
1111
1212
13 # $Id: hungarian.txt 19446 2010-03-17 22:21:03Z rubidium $
13 # $Id: hungarian.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
11611161 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :mint általában
11621162 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :kutatás támogatása
11631163 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Több ugyanolyan gazdasági épület településenként: {ORANGE}{STRING}
1164 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Több ugyanolyan gazdasági épület építhető közel egymáshoz: {ORANGE}{STRING}
11651164 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Mindig teljes dátum a képernyőn: {ORANGE}{STRING}
11661165 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Jelzők a menetirány szerinti oldalon legyenek: {ORANGE}{STRING}
11671166 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Pénzügyi összesítés minden év végén: {ORANGE}{STRING}
21872186 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21882187 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Elfogad: {LTBLUE}
21892188 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2189 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Vasúti pályasebesség: {LTBLUE}{VELOCITY}
21902190
21912191 # Description of land area of different tiles
21922192 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Kövek
1010 ##gender karlkyn kvenkyn hvorugkyn
1111
1212
13 # $Id: icelandic.txt 19446 2010-03-17 22:21:03Z rubidium $
13 # $Id: icelandic.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10861086 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :eins og annarra iðnaða
10871087 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :með jarðefnisleit
10881088 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Leyfa marga svipaða iðnaði í sama bæ: {ORANGE}{STRING}
1089 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Má byggja iðnaði af sömu gerð nálægt hvor öðrum: {ORANGE}{STRING}
10901089 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Sýna alltaf fulla dagsetningu á upplýsingaslá: {ORANGE}{STRING}
10911090 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Sýna umferðarljós akstursmegin: {ORANGE}{STRING}
10921091 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Sýna fjármálaglugga í lok árs: {ORANGE}{STRING}
20722071 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
20732072 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Tekið á móti: {LTBLUE}
20742073 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2074 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Hámarkshraði járnbrautar: {LTBLUE}{VELOCITY}
20752075
20762076 # Description of land area of different tiles
20772077 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Klettar
99 ##grflangid 0x5a
1010
1111
12 # $Id: indonesian.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: indonesian.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :seperti industri lainnya
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :lebih prospektif
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Ijinkan lebih dari satu industri sejenis dalam satu kota: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industri dengan tipe sama dapat dibangun saling berdekatan: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Selalu tampilkan tgl lengkap pada status bar: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Tampilkan sinyal pada lajur kendara: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Tampilkan laporan keuangan pada akhir tahun: {ORANGE}{STRING}
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Muatan diterima: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Batasan kecepatan rel: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Bebatuan
35173517 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Jembatan lebih rendah dari daratan
35183518 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Awal dan akhir harus segaris
35193519 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... kedua ujung jembatan harus berada di daratan
3520 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... jembatan terlalu panjang
35203521
35213522 # Tunnel related errors
35223523 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Tidak dapat membangun terowongan disini...
41084109 STR_LORRY :{BLACK}{LORRY}
41094110 STR_PLANE :{BLACK}{PLANE}
41104111 STR_SHIP :{BLACK}{SHIP}
4112
4113 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
1111 ##case ms mp fs fp
1212
1313
14 # $Id: italian.txt 19446 2010-03-17 22:21:03Z rubidium $
14 # $Id: italian.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Come le altre industrie
11001100 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Previa prospezione
11011101 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Consenti più industrie dello stesso tipo nella stessa città: {ORANGE}{STRING}
1102 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Consenti la costruzione di industrie uguali anche molto vicine: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Mostra sempre la data lunga nella barra di stato: {ORANGE}{STRING}
11041103 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Mostra i segnali sul lato di guida: {ORANGE}{STRING}
11051104 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Mostra la finestra delle finanze alla fine dell'anno: {ORANGE}{STRING}
17521751 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :errore di protocollo
17531752 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :file NewGRF non corrispondenti
17541753 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :non autorizzato
1755 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :ricevuto un pacchetto inatteso
1754 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :ricevuto un pacchetto non validto o inatteso
17561755 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :revisione differente
17571756 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :nome già in uso
17581757 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :password errata
17701769 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Partita ancora in pausa ({STRING}, {STRING})
17711770 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Partita ancora in pausa ({STRING}, {STRING}, {STRING})
17721771 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Partita ripresa ({STRING})
1773 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :giocatori insufficienti
1772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :numero di giocatori
17741773 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :connessione client in corso
17751774 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manuale
17761775 ############ End of leave-in-this-order
21252124 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21262125 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Merce accettata: {LTBLUE}
21272126 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2127 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limite di velocità rotaie: {LTBLUE}{VELOCITY}
21282128
21292129 # Description of land area of different tiles
21302130 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rocce
35193519 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Il ponte è troppo basso per il terreno
35203520 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Inizio e fine devono essere allineati
35213521 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... gli estremi del ponte devono trovarsi entrambi sul terreno
3522 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... ponte troppo lungo
35223523
35233524 # Tunnel related errors
35243525 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Impossibile costruire il tunnel qui...
99 ##grflangid 0x39
1010
1111
12 # $Id: japanese.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: japanese.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :他の産業と同様
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :探鉱
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}町内に重複している産業の建設を許容:{ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}同類の産業を近くに建設することを許容:{ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}常に状況バーに長型日付を表示:{ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}信号を運転側に表示:{ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}年末に財政ウインドウを表示:{ORANGE}{STRING}
11581157 STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :時計回り
11591158 STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :{LTBLUE}平地シナリオの高さ:{ORANGE}{STRING}
11601159 STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :{LTBLUE}マップの端のタイルの地形変更を有効にする: {ORANGE}{STRING}
1160 STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}北端の1箇所以上のタイルが空白ではありません。
1161 STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}マップ端の1箇所以上のタイルが水域ではありません
11611162
11621163 STR_CONFIG_SETTING_STATION_SPREAD :{LTBLUE}駅の幅の上限:{ORANGE}{STRING} {RED}注意:高い数はパフォーマンスに悪影響を与えます
11631164 STR_CONFIG_SETTING_SERVICEATHELIPAD :{LTBLUE}ヘリコプターを自動的ヘリパッドで修理:{ORANGE}{STRING}
12111212 STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :最も使われている鉄道種類
12121213 STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :{LTBLUE}予約済みの線路を表示: {ORANGE}{STRING}
12131214 STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :{LTBLUE}ビルドのツールバーは使用後に表示したままにする:{ORANGE}{STRING}
1215 STR_CONFIG_SETTING_EXPENSES_LAYOUT :{LTBLUE}財政ウィンドウ内でグループ分けされた費用表示をする: {ORANGE}{STRING}
12141216
12151217 STR_CONFIG_SETTING_ALWAYS_BUILD_INFRASTRUCTURE :{LTBLUE}適当な車両がまだ購入不可能であっても、基礎の建設を許容:{ORANGE}{STRING}
12161218 STR_CONFIG_SETTING_MAX_TRAINS :{LTBLUE}一人のプレヤーの列車数上限:{ORANGE}{STRING}
12421244 STR_CONFIG_SETTING_STARTING_YEAR :{LTBLUE}開始年:{ORANGE}{STRING}
12431245 STR_CONFIG_SETTING_SMOOTH_ECONOMY :{LTBLUE}スムーズな経済を使用:{ORANGE}{STRING}
12441246 STR_CONFIG_SETTING_ALLOW_SHARES :{LTBLUE}他社所有株式の購入を許容する:{ORANGE}{STRING}
1247 STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :{LTBLUE}フィーダーシステムの末端で支払われる収益比率: {ORANGE}{STRING}%
12451248 STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :{LTBLUE}ドラッグで自動建設する信号設備間隔: {ORANGE}{STRING} タイル
12461249 STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}次の年まで腕木式信号を建設:{ORANGE}{STRING}
12471250 STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :{LTBLUE}信号のGUIを使用: {ORANGE}{STRING}
12611264 STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :格子状(3x3)
12621265 STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :ランダム
12631266 STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :{LTBLUE}町は道路建設を許容: {ORANGE}{STRING}
1267 STR_CONFIG_SETTING_NOISE_LEVEL :{LTBLUE}空港建設に対する街の騒音レベル規制を許可する: {ORANGE}{STRING}
1268 STR_CONFIG_SETTING_TOWN_FOUNDING :{LTBLUE}インゲームで街の新設に出資: {ORANGE}{STRING}
12641269 STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :不可能
12651270 STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :可能
12661271 STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :可能、町を設定もできます
12671272
1273 STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :{LTBLUE}インゲームでの植樹: {ORANGE}{STRING}
12681274 STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :なし {RED}(製剤所は使えなくなります)
12691275 STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :雨林の中だけ
12701276 STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :各地
12751281 STR_CONFIG_SETTING_TOOLBAR_POS_RIGHT :右
12761282 STR_CONFIG_SETTING_SNAP_RADIUS :{LTBLUE}ウィンドウスナップ範囲:{ORANGE}{STRING} px
12771283 STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :{LTBLUE}ウィンドウスナップ範囲:{ORANGE}切
1284 STR_CONFIG_SETTING_SOFT_LIMIT :{LTBLUE}ウィンドウ数のソフトウェア制限 (non-sticky): {ORANGE}{STRING}
1285 STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :{LTBLUE}ウィンドウ数のソフトウェア制限 (non-sticky): {ORANGE}無効
12781286 STR_CONFIG_SETTING_TOWN_GROWTH :{LTBLUE}市町村の展開:{ORANGE}{STRING}
12791287 STR_CONFIG_SETTING_TOWN_GROWTH_NONE :なし
12801288 STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :遅い
13281336 STR_INTRO_PLAY_SCENARIO :{BLACK}シナリオをプレイ
13291337 STR_INTRO_PLAY_HEIGHTMAP :{BLACK}ハイトマップをプレイ
13301338 STR_INTRO_SCENARIO_EDITOR :{BLACK}シナリオエディタ
1331 STR_INTRO_MULTIPLAYER :{BLACK}多人数プレイ
1339 STR_INTRO_MULTIPLAYER :{BLACK}マルチプレイヤーゲーム
13321340
13331341 STR_INTRO_GAME_OPTIONS :{BLACK}ゲームの基本設定
13341342 STR_INTRO_DIFFICULTY :{BLACK} 難易度 ({STRING})
13541362 STR_INTRO_TOOLTIP_DIFFICULTY_OPTIONS :{BLACK}難易度の設定を表示します
13551363 STR_INTRO_TOOLTIP_ADVANCED_SETTINGS :{BLACK}パッチ・拡張設定を表示
13561364 STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}NewGRF の設定を表示
1365 STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}コンテンツの新規追加または更新のチェックとダウンロード
13571366 STR_INTRO_TOOLTIP_AI_SETTINGS :{BLACK}AI の設定を表示します
13581367 STR_INTRO_TOOLTIP_QUIT :{BLACK}OpenTTD を終了します
13591368
14511460 STR_FACE_SIMPLE_TOOLTIP :{BLACK}顔を簡単に選択します。
14521461 STR_FACE_LOAD :{BLACK}開く
14531462 STR_FACE_LOAD_TOOLTIP :{BLACK}お好みの顔を開きます。
1454 STR_FACE_LOAD_DONE :{WHITE}お好みの顔は OpenTTD の設定ファイルから読み込みました。
1455 STR_FACE_FACECODE :{BLACK}プレヤーの顔番号
1463 STR_FACE_LOAD_DONE :{WHITE}お好みの顔を OpenTTD の設定ファイルから読み込みました。
1464 STR_FACE_FACECODE :{BLACK}プレーヤーの顔番号
14561465 STR_FACE_FACECODE_TOOLTIP :{BLACK}プレヤーの顔番号を表示/変更
14571466 STR_FACE_FACECODE_CAPTION :{WHITE}プレヤーの顔番号を表示/変更
14581467 STR_FACE_FACECODE_SET :{WHITE}新しい顔番号が設定されました。
16731682
16741683 # Network client list
16751684 STR_NETWORK_CLIENTLIST_KICK :蹴る
1685 STR_NETWORK_CLIENTLIST_BAN :BAN
16761686 STR_NETWORK_CLIENTLIST_GIVE_MONEY :送金
16771687 STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :全員へ発言
16781688 STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :チームへ発言
17011711 # Network chat
17021712 STR_NETWORK_CHAT_SEND :{BLACK}送信
17031713 STR_NETWORK_CHAT_COMPANY_CAPTION :『チーム』:
1714 STR_NETWORK_CHAT_CLIENT_CAPTION :[プライベート] {STRING}:
17041715 STR_NETWORK_CHAT_ALL_CAPTION :『全員』:
17051716
17061717 STR_NETWORK_CHAT_COMPANY :『チーム』{STRING}:{WHITE}{STRING}
17481759 ############ End of leave-in-this-order
17491760
17501761 # Network related errors
1762 STR_NETWORK_SERVER_MESSAGE :*** {1:STRING}
17511763 ############ Leave those lines in this order!!
17521764 STR_NETWORK_SERVER_MESSAGE_GAME_PAUSED :ゲームはポーズされました。 ({STRING})
17531765 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_1 :ゲームはまだポーズされています。 ({STRING})
17601772 ############ End of leave-in-this-order
17611773 STR_NETWORK_MESSAGE_CLIENT_LEAVING :退出
17621774 STR_NETWORK_MESSAGE_CLIENT_JOINED :*** {STRING} は参加してきました
1775 STR_NETWORK_MESSAGE_CLIENT_JOINED_ID :*** {STRING} がゲームに参加しました (クライアント #{2:NUM})
17631776 STR_NETWORK_MESSAGE_CLIENT_COMPANY_JOIN :*** {STRING} が 会社 #{2:NUM} の経営に参加しました。
17641777 STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} が傍観者として参加しました。
17651778 STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} が新会社 (#{2:NUM}) を設立しました。
17681781 STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} は {2:CURRENCY} を送金してくれました
17691782 STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** {1:STRING} に {2:CURRENCY} を送金しました
17701783 STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}サーバがセッションを終了しました
1771 STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}サーバが再起道中...{}しばらくお待ちください...
1784 STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}このサーバは再起動中です...{}しばらくお待ちください...
17721785
17731786 # Content downloading window
17741787 STR_CONTENT_TITLE :{WHITE}ダウンロード中
17901803 STR_CONTENT_DETAIL_TITLE :{SILVER}項目の情報
17911804 STR_CONTENT_DETAIL_SUBTITLE_UNSELECTED :{SILVER}これはダウンロードをするために選択しませんでした
17921805 STR_CONTENT_DETAIL_SUBTITLE_SELECTED :{SILVER}これをダウンロードをするために選択しました
1806 STR_CONTENT_DETAIL_SUBTITLE_AUTOSELECTED :{SILVER}依存性によりダウンロードを選択されます
17931807 STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}これはもうダウンロードされました
17941808 STR_CONTENT_DETAIL_NAME :{SILVER}項目名:{WHITE}{STRING}
17951809 STR_CONTENT_DETAIL_VERSION :{SILVER}バージョン:{WHITE}{STRING}
21032117 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:{LTBLUE}{STRING}
21042118 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}受入れる貨物:{LTBLUE}
21052119 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2120 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}線路の制限速度: {LTBLUE}{VELOCITY}
21062121
21072122 # Description of land area of different tiles
21082123 STR_LAI_CLEAR_DESCRIPTION_ROCKS :岩石
23372352 STR_NEWGRF_ERROR_MSG_WARNING :{RED}警告:{SILVER}{STRING}
23382353 STR_NEWGRF_ERROR_MSG_ERROR :{RED}エラー:{SILVER}{STRING}
23392354 STR_NEWGRF_ERROR_MSG_FATAL :{RED}エラー:{SILVER}{STRING}
2355 STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}致命的な NewGRF エラーが発生しました: {}{STRING}
23402356 STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING}はOpenTTDのTTDPatchバージョンに対応していません。
23412357 STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING}はTTDの{STRING}バージョンのみに対応しています。
23422358 STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING}を使用時に、{STRING}を入にしなければなりません
23512367 STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :不明な Action 0 プロパティ。
23522368 STR_NEWGRF_ERROR_INVALID_ID :無効な ID が含む
23532369 STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} は壊れたスプライトを含みます。壊れたスプライトは赤疑問符として表示されます。
2354 STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :複数の Action 8 の項目が含む
2370 STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :複数の Action 8 の項目を含んでいます。
2371 STR_NEWGRF_ERROR_READ_BOUNDS :擬似スプライト読込:既に終端に達しました
23552372
23562373 # NewGRF related 'general' warnings
23572374 STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}注意!
2358 STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}実行中のゲームに変更を適用して、クラッシュのリスクがあります。{}続けてもよろしいですか?
2375 STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}実行中のゲームに変更を適用すると、クラッシュのリスクがあります。{}続けてもよろしいですか?
23592376
23602377 STR_NEWGRF_DUPLICATE_GRFID :{WHITE}ファイルが追加できません:重複のGRF ID
23612378 STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}一致しているファイルが見つかりません(代替 GRF を使用中)
23692386 STR_NEWGRF_BROKEN :{WHITE}NewGRF '{0:STRING}' のビヘービアは desync もしくはクラッシュを行わせる可能性があります!
23702387 STR_BROKEN_VEHICLE_LENGTH :{WHITE}「{1:COMPANY}」が所有している「{0:VEHICLE}」という電車は無効な長さがあります。使用している NewGRF が原因であるかもしれません。desync もしくはクラッシュが行う可能性があります!
23712388
2389 STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' は生産コールバック内で無限ループを起こしました.
23722390
23732391 # Sign list window
23742392 STR_SIGN_LIST_CAPTION :{WHITE}標示のリスト - {COMMA}つの標示
25442562 STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({1:COMPANY}が{0:COMMA}%株式保有)
25452563
25462564 STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}本部ビルを建設
2565 STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}本社を建てます
25472566 STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}本部ビルを見る
2567 STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}本社を見ます
25482568 STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}本部ビルを移動
25492569 STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}会社の本部ビルを移動します(価格:会社の価値の1%)
25502570
27962816 STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁気浮上式鉄道車両
27972817
27982818 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}価格:{CURRENCY} 重量:{WEIGHT_S}{}最大速度:{VELOCITY} 出力:{POWER}{}運転費:一年間{CURRENCY}{}容量:{CARGO}
2819 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}価格: {CURRENCY} 重量: {WEIGHT_S}{}速度: {VELOCITY} 出力: {POWER} 最大牽引力: {6:FORCE}{}運転費用: {4:CURRENCY}/年{}容量: {5:CARGO}
27992820 STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}値段:{CURRENCY} 最高速度:{VELOCITY}{}収容能力:{CARGO}、{CARGO}{}維持費:一年間{CURRENCY}
28002821 STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}値段:{CURRENCY} 最高速度:{VELOCITY}{}収容能力:{CARGO}{}維持費:一年間{CURRENCY}
28012822
30233044 STR_ORDER_TOGGLE_UNLOAD :{BLACK}全て降ろす
30243045 STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :受入有なら降ろす
30253046 STR_ORDER_DROP_UNLOAD :全て降ろす
3047 STR_ORDER_DROP_TRANSFER :転送
30263048 STR_ORDER_DROP_NO_UNLOADING :降ろさない
30273049 STR_ORDER_TOOLTIP_UNLOAD :{BLACK}選択した指令の降ろす方法を変更します
30283050
30983120 STR_ORDER_UNLOAD_FULL_LOAD :(降ろして全積載まで待つ)
30993121 STR_ORDER_UNLOAD_FULL_LOAD_ANY :(降ろしていずれか一種のを全積載)
31003122 STR_ORDER_UNLOAD_NO_LOAD :(降ろして空荷のまま出発)
3101 STR_ORDER_NO_UNLOAD :(積み荷を降ろせずに貨物を積む)
3102 STR_ORDER_NO_UNLOAD_FULL_LOAD :(積み荷を降ろせずに満載する)
3103 STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(積み荷を降ろせずにいかに満載する)
3123 STR_ORDER_NO_UNLOAD :(積み荷を降ろさずに貨物を積む)
3124 STR_ORDER_NO_UNLOAD_FULL_LOAD :(積み荷を降ろさずに満載するまで待つ)
3125 STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(積み荷を降ろさずにいずれかを満載するまで待つ)
31043126
31053127
31063128 STR_ORDER_CONDITIONAL_UNCONDITIONAL :指令{COMMA}に飛ぶ
31603182 STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}AI を停止して、スクリプトを読み込んで、AI を再起動します。
31613183
31623184 STR_ERROR_NO_AI :{WHITE}この OpenTTD は AI のサポートが入っていません...
3163 STR_ERROR_NO_AI_SUB :{WHITE}... 使用可能のAIがありません!
3164
3165 STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}実行中の AI の一つは予期せずに終了しました。AI の作者に AI デバッグのウインドウのスクリーンショットが含む電子メールをご送信ください。
3185 STR_ERROR_NO_AI_SUB :{WHITE}... 使用可能なAIがありません!
3186
3187 STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}実行中の AI の一つが予期せずに終了しました。AI の作者に AI デバッグのウインドウのスクリーンショットが含む電子メールをご送信ください。
31663188 STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI デバッグウインドウはサーバのみで使用することができます。
31673189
31683190 # AI configuration window
31693191 STR_AI_CONFIG_CAPTION :{WHITE}AI の設定
3170 STR_AI_CONFIG_LIST_TOOLTIP :{BLACK}次のゲームにすべての使用する AI を表示します。
3171 STR_AI_CONFIG_HUMAN_PLAYER :人間のプレヤー
3192 STR_AI_CONFIG_LIST_TOOLTIP :{BLACK}次のゲームに使用するすべての AI を表示します。
3193 STR_AI_CONFIG_HUMAN_PLAYER :人間のプレーヤー
31723194 STR_AI_CONFIG_RANDOM_AI :ランダムな AI
31733195
31743196 STR_AI_CONFIG_MOVE_UP :{BLACK}上にします
32333255 STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}このゲームは路面電車に対応していないバージョンで保存されましたので、すべての路面電車が削除されました。
32343256
32353257 # Map generation messages
3258 STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}マップ生成中止...{}... 適合する街の配置がありません
32363259 STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... このシナリオに市町村がありません
32373260
32383261 STR_ERROR_PNGMAP :{WHITE}PNG ファイルから地形が読み込めません...
40404063 STR_LORRY :{BLACK}{LORRY}
40414064 STR_PLANE :{BLACK}{PLANE}
40424065 STR_SHIP :{BLACK}{SHIP}
4066
1010 ##gender m f
1111
1212
13 # $Id: korean.txt 19446 2010-03-17 22:21:03Z rubidium $
13 # $Id: korean.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
539539 STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR :{G=f}노선 관리자
540540 STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR :{G=f}이사
541541 STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE :{G=m}이사장
542 STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN :{G=m}의장
542 STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN :{G=m}회장
543543 STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :{G=m}회장
544544 STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON :{G=m}타이쿤!
545545
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :건설 가능 (위치 선택 가능, 7배 비용)
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :건설 가능 (무작위 위치)
11001100 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}한 도시에 비슷한 산업시설을 여러 개 건설할 수 있게 허용 : {ORANGE}{STRING}
1101 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}같은 종류의 산업 시설을 가깝게 지을 수 있게 허용 : {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}날짜를 일(日)단위까지 상세하게 표시 : {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}신호기를 차량 통행 방향에 설치 : {ORANGE}{STRING}
11041103 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}연말에 재정 창을 띄움 : {ORANGE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21252124 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}화물 인수: {LTBLUE}
21262125 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2126 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}철도 속도 제한: {LTBLUE}{VELOCITY}
21272127
21282128 # Description of land area of different tiles
21292129 STR_LAI_CLEAR_DESCRIPTION_ROCKS :암석
35183518 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}그 지형은 다리를 건설하기에 너무 낮습니다
35193519 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}시작과 끝은 한 줄 위에 있어야 합니다
35203520 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... 다리의 양 끝은 모두 땅이어야합니다.
3521 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... 다리가 너무 깁니다!
35213522
35223523 # Tunnel related errors
35233524 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}여기에 터널을 지을 수 없습니다...
1111 ##case kas
1212
1313
14 # $Id: latvian.txt 19411 2010-03-13 18:47:58Z rubidium $
14 # $Id: latvian.txt 19555 2010-04-03 20:19:26Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10741074 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :kā citas industrijas
10751075 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :ienesīga
10761076 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Atļaut vairākas līdzīgas rūpnīcas vienā pilsētā : {ORANGE}{STRING}
1077 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Viena veida rūpnīcas var būvēt tuvu vienu otrai: {ORANGE}{STRING}
10781077 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Vienmēr rādīt garu datumu statusa joslā: {ORANGE}{STRING}
10791078 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Rādīt signālus braukšanas pusē: {ORANGE}{STRING}
10801079 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Gada beigās rādīt finanšu pārskatu: {ORANGE}{STRING}
1111 ##case kas ko kam ka kuo kur kreip
1212
1313
14 # $Id: lithuanian.txt 19446 2010-03-17 22:21:03Z rubidium $
14 # $Id: lithuanian.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
2424 STR_EMPTY :
2525 STR_UNDEFINED :(neapibrėžta eilutė)
2626 STR_JUST_NOTHING :Nieko
27 STR_JUST_NOTHING.kas :Niekas
2728 STR_JUST_NOTHING.ko :Nieko
29 STR_JUST_NOTHING.kam :Niekui
2830 STR_JUST_NOTHING.ka :Nieką
31 STR_JUST_NOTHING.kuo :Nieku
32 STR_JUST_NOTHING.kur :Niekur
2933
3034 # Cargo related strings
3135 # Plural cargo name
3236 STR_CARGO_PLURAL_NOTHING :
3337 STR_CARGO_PLURAL_PASSENGERS :Keleiviai
38 STR_CARGO_PLURAL_PASSENGERS.kas :Keleiviai
3439 STR_CARGO_PLURAL_PASSENGERS.ko :Keleivių
40 STR_CARGO_PLURAL_PASSENGERS.kam :Keleiviams
3541 STR_CARGO_PLURAL_PASSENGERS.ka :Keleivius
42 STR_CARGO_PLURAL_PASSENGERS.kuo :Keleiviais
3643 STR_CARGO_PLURAL_COAL :Anglis
3744 STR_CARGO_PLURAL_COAL.kas :Anglis
3845 STR_CARGO_PLURAL_COAL.ko :Anglies
11651172 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :kaip kitos gamyklos
11661173 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :vaizdavimas
11671174 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Leisti kelias panašias pramonės įmones viename mieste: {ORANGE}{STRING}
1168 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Leisti statyti to paties tipo fabrikus arti vienas kito: {ORANGE}{STRING}
11691175 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Rodyti pilną datą būsenos eilutėje: {ORANGE}{STRING}
11701176 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Šviesoforus rodyti vairuotojo pusėje: {ORANGE}{STRING}
11711177 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Rodyti finansinę ataskaitą metų pabaigoje: {ORANGE}{STRING}
21912197 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21922198 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Krovinys priimtas: {LTBLUE}
21932199 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2200 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Geležinkelių greičio limitas: {LTBLUE}{VELOCITY}
21942201
21952202 # Description of land area of different tiles
21962203 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Akmenys
24092416
24102417 STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Informacijos nėra
24112418 STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Atitinkamas failas nerastas
2412 STR_NEWGRF_SETTINGS_DISABLED :{RED}Uždrausta
2419 STR_NEWGRF_SETTINGS_DISABLED :{RED}Išjungta
24132420
24142421 STR_NEWGRF_SETTINGS_PARAMETER_QUERY :{BLACK}Įveskite Papild. grafikos parametrus
24152422
28902897 STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Mes ką tik sukūrėme naują {STRING.ka}! Ar norėtumėt vienerius metus išskirtinėmis teisėmis bandyti šią transporto priemonęm, kol dar nepradėta jos serijinė gamyba?
28912898 STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :lokomotyvas
28922899 STR_ENGINE_PREVIEW_ROAD_VEHICLE :automobilis
2900 STR_ENGINE_PREVIEW_ROAD_VEHICLE.kas :automobilis
2901 STR_ENGINE_PREVIEW_ROAD_VEHICLE.ka :automobilį
28932902 STR_ENGINE_PREVIEW_AIRCRAFT :lėktuvas
28942903 STR_ENGINE_PREVIEW_SHIP :laivas
28952904 STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :vienbegis lokomotyvas
29042913 STR_REPLACE_VEHICLES_WHITE :{WHITE}Keisti tr. priemones {STRING}
29052914 STR_REPLACE_VEHICLE_TRAIN :Traukinys
29062915 STR_REPLACE_VEHICLE_ROAD_VEHICLE :Automobilis
2916 STR_REPLACE_VEHICLE_ROAD_VEHICLE.kas :automobilis
2917 STR_REPLACE_VEHICLE_ROAD_VEHICLE.ka :Automobilį
29072918 STR_REPLACE_VEHICLE_SHIP :Laivas
29082919 STR_REPLACE_VEHICLE_AIRCRAFT :Lėktuvas
29092920
31953206
31963207 STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
31973208
3198 STR_ORDER_FULL_LOAD :(Pilanai pasikrauti)
3209 STR_ORDER_FULL_LOAD :(Pilnai pasikrauti)
31993210 STR_ORDER_FULL_LOAD_ANY :(Pilnai pasikrauti, bet kurio krovinio)
32003211 STR_ORDER_NO_LOAD :(Nepakrauti)
32013212 STR_ORDER_UNLOAD :(Iškrauti ir pasiimti krovinį)
35853596 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Tiltas per žemas reljefui
35863597 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Pradžia ir pabaiga turi būti vienoje linijoje
35873598 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... abu tilto galai turi būti ant žemės
3599 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... tiltas per ilgas
35883600
35893601 # Tunnel related errors
35903602 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Negalima čia statyti tunelio...
99 ##grflangid 0x23
1010
1111
12 # $Id: luxembourgish.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: luxembourgish.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :wei aaner Industrien
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Erkundung
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Erlaabt méi der selwecht Industrien pro Stad: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industrien vum gläichen Typ kënnen méi no beieneen gebaut ginn: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Emmer den laangen Datum an der Statusbar uweisen: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Weis d'Signaler op der Fuerersäit: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Weis d'Finanzen um Ënn vum Joër: {ORANGE}{STRING}
14831482 STR_FACE_EYEBROWS :Aaenbraaen:
14841483 STR_FACE_EYEBROWS_TOOLTIP :{BLACK}Aaenbraaen Ouerréng
14851484 STR_FACE_EYECOLOUR :Aaenfaarw:
1486 STR_FACE_EYECOLOUR_TOOLTIP :{BLACK}Aaenfaarw Ouerréng
1485 STR_FACE_EYECOLOUR_TOOLTIP :{BLACK}Aanfaarw änneren
14871486 STR_FACE_GLASSES :Brëll:
14881487 STR_FACE_GLASSES_TOOLTIP :{BLACK}Brëll anschalten
14891488 STR_FACE_GLASSES_TOOLTIP_2 :{BLACK}Brëll änneren
15321531 STR_NETWORK_SERVER_LIST_GAME_INFO :{SILVER}SPILL INFO
15331532 STR_NETWORK_SERVER_LIST_CLIENTS :{SILVER}Spiller: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
15341533 STR_NETWORK_SERVER_LIST_LANGUAGE :{SILVER}Sprooch: {WHITE}{STRING}
1535 STR_NETWORK_SERVER_LIST_LANDSCAPE :{SILVER}Umgebung: {WHITE}{STRING}
1534 STR_NETWORK_SERVER_LIST_LANDSCAPE :{SILVER}Landschaft: {WHITE}{STRING}
15361535 STR_NETWORK_SERVER_LIST_MAP_SIZE :{SILVER}Kaartegréisst: {WHITE}{COMMA}x{COMMA}
15371536 STR_NETWORK_SERVER_LIST_SERVER_VERSION :{SILVER}Serverversioun: {WHITE}{STRING}
15381537 STR_NETWORK_SERVER_LIST_SERVER_ADDRESS :{SILVER}Serveradress: {WHITE}{STRING}
17501749 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :Protokollfehler
17511750 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :NewGRF ënnerscheedlech
17521751 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :net authoriséiert
1753 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :komëschen Pak erhaalen
1752 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :invaliden oder onerwaarte Packet kritt
17541753 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :Falsch Versioun
17551754 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :Numm gët schon benotzt
17561755 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :falscht Passwuert
17681767 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Spill nach ëmmer pauséiert ({STRING}, {STRING})
17691768 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Spill nach ëmmer pauséiert ({STRING}, {STRING}, {STRING})
17701769 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Spill geet weider ({STRING})
1771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :net genuch Spiller
1770 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :Unzuel Spiller
17721771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :Klienten verbannen
17731772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manuell
17741773 ############ End of leave-in-this-order
18081807 STR_CONTENT_DETAIL_SUBTITLE_AUTOSELECTED :{SILVER}Dës Ofhängegkeet gouf ausgewielt fir den download
18091808 STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}Du hues des schon
18101809 STR_CONTENT_DETAIL_SUBTITLE_DOES_NOT_EXIST :{SILVER}Dësen Inhalt ass net bekannt an kann net an OpenTTD downgeload gin
1811 STR_CONTENT_DETAIL_UPDATE :{SILVER}Dëst ass en Austosch fir eng existent {STRING}
1810 STR_CONTENT_DETAIL_UPDATE :{SILVER}Dëst ass en Austausch fir eng existent {STRING}
18121811 STR_CONTENT_DETAIL_NAME :{SILVER}Numm: {WHITE}{STRING}
18131812 STR_CONTENT_DETAIL_VERSION :{SILVER}Versioun: {WHITE}{STRING}
18141813 STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}Beschreiwung: {WHITE}{STRING}
20262025
20272026 STR_STATION_BUILD_AIRPORT_SMALL_AIRPORTS :{BLACK}Kleng Fluchhäfen
20282027 STR_STATION_BUILD_AIRPORT_LARGE_AIRPORTS :{BLACK}Grouss Fluchhäfen
2029 STR_STATION_BUILD_AIRPORT_HUB_AIRPORTS :{BLACK} Fluchhafen Verdeeler
2028 STR_STATION_BUILD_AIRPORT_HUB_AIRPORTS :{BLACK}Fluchhafen Verdeeler
20302029 STR_STATION_BUILD_AIRPORT_HELIPORTS :{BLACK}Helicopter Fluchhafen
20312030
20322031 STR_STATION_BUILD_NOISE :{BLACK}Kaméidi: {GOLD}{COMMA}
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Akzeptéiert Luedung: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Schinnen Geschw.-Limit: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Fielsen
25332533 STR_FINANCES_EXPENDITURE_INCOME_TITLE :{WHITE}Ausgaben/Ankommen
25342534 STR_FINANCES_YEAR :{WHITE}{NUM}
25352535 STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}Konstruktioun
2536 STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}Nei Gefieher
2536 STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}Nei Gefierer
25372537 STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}Zuch Betriebskäschten
25382538 STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Stroossengefierer Betriebskäschten
25392539 STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}Fliger Betriebskäschten
25402540 STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}Schëff Betriebskäschten
2541 STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}Besëtzt Ennerhalt
2541 STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}Besëtz Ennerhalt
25422542 STR_FINANCES_SECTION_TRAIN_INCOME :{GOLD}Zuch Ankommen
25432543 STR_FINANCES_SECTION_ROAD_VEHICLE_INCOME :{GOLD}Stroossengefierer Ankommen
25442544 STR_FINANCES_SECTION_AIRCRAFT_INCOME :{GOLD}Fliger Ankommen
29022902 STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Weist Schëffdetailer
29032903 STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Weist d'Fligerdetailer
29042904
2905 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Momentan Aktioun - klickt hei fir den Zuch ze stopen/starten
2906 STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Momentan Aktioun - klickt hei fir d'Gefiert ze stoppen/starten
2907 STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Momentan Aktioun - Klickt hei fir d'Schëff ze stoppen/starten
2908 STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Momentan Aktioun - Klickt hei fir den Fliger ze stoppen/starten
2905 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Momentan Aktioun - klickt hei fir den Zuch ze stopen/starten. Ctrl+Klick fir op Destinatioun ze scrollen
2906 STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Momentan Aktioun - klickt hei fir d'Gefiert ze stoppen/starten. Ctrl+Klick fir op Destinatioun ze scrollen
2907 STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Momentan Aktioun - Klickt hei fir d'Schëff ze stoppen/starten. Ctrl+Klick fir op Destinatioun ze scrollen
2908 STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Momentan Aktioun - Klickt hei fir den Fliger ze stoppen/starten. Ctrl+Klick fir op Destinatioun ze scrollen
29092909
29102910 # Messages in the start stop button in the vehicle view
29112911 STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Lueden / Entlueden
35173517 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Bréckass ze déif fir dësen Terrain
35183518 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Start an Enn mussen op enger Linn sinn
35193519 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... dei zwee Enner vun der Bréck mussen um Land sinn
3520 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... Bréck ze laang
35203521
35213522 # Tunnel related errors
35223523 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Kann den Tunnel hei net bauen...
41084109 STR_LORRY :{BLACK}{LORRY}
41094110 STR_PLANE :{BLACK}{PLANE}
41104111 STR_SHIP :{BLACK}{SHIP}
4112
4113 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
99 ##grflangid 0x3c
1010
1111
12 # $Id: malay.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: malay.txt 19555 2010-04-03 20:19:26Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :seperti industri lain
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :sedang prospek
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Benarkan pelbagai industri sejenis di setiap bandar: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industri sejenis boleh dibina berhampiran satu sama lain: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Sentiasa paparkan tarikh panjang di status bar: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Paparkan isyarat di sebelah pemandu: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Paparkan tetingkap kewangan setiap penghujung tahun: {ORANGE}{STRING}
99 ##grflangid 0x2f
1010
1111
12 # $Id: norwegian_bokmal.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: norwegian_bokmal.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :som andre næringer
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospekterer
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Tillat flere like industrier i samme by: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industrier av samme type kan bygges nær hverandre: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Vis alltid lang dato på statuslinjen: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Vis signaler på kjøresiden: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Vis regnskap ved nyttår: {ORANGE}{STRING}
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Godtatte varer: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Fartsgrense for jernbanespor: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Steiner
35173517 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Broen er for lav for terrenget
35183518 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Start og slutt må være på linje
35193519 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... broens ender må være på land
3520 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... broen er for lang
35203521
35213522 # Tunnel related errors
35223523 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Kan ikke bygge tunnel her...
41084109 STR_LORRY :{BLACK}{LORRY}
41094110 STR_PLANE :{BLACK}{PLANE}
41104111 STR_SHIP :{BLACK}{SHIP}
4112
4113 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
1010 ##gender masculine feminine neuter
1111
1212
13 # $Id: norwegian_nynorsk.txt 19411 2010-03-13 18:47:58Z rubidium $
13 # $Id: norwegian_nynorsk.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
514514
515515 STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Graf over overskot
516516 STR_GRAPH_INCOME_CAPTION :{WHITE}Graf over inntekter
517 STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Antal leverte varer
517 STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Leverte einingar
518518 STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Prestasjonsvurdering av firma (maks. poeng=1000)
519519 STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Firmaverdi
520520
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :som andre industriar
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospekterar
11001100 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Tillet fleire like industriar i samme by: {ORANGE}{STRING}
1101 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industriar av same type kan byggjast nær einannan: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Syne alltid lang dato på statuslinja: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Syne signal i køyreretninga: {ORANGE}{STRING}
11041103 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Syne rekneskap ved nyttår: {ORANGE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21252124 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Godtekne varer: {LTBLUE}
21262125 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2126 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Fartsgrense for jernbanespor: {LTBLUE}{VELOCITY}
21272127
21282128 # Description of land area of different tiles
21292129 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Steinar
35183518 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Brua er for låg for terrenget
35193519 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Start og slutt må vere på linje
35203520 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... endane på brua må vere på land
3521 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... brua er for lang
35213522
35223523 # Tunnel related errors
35233524 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Kan ikkje byggje tunnel her...
41094110 STR_LORRY :{BLACK}{LORRY}
41104111 STR_PLANE :{BLACK}{PLANE}
41114112 STR_SHIP :{BLACK}{SHIP}
4113
4114 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
1111 ##case d c b n m w
1212
1313
14 # $Id: polish.txt 19446 2010-03-17 22:21:03Z rubidium $
14 # $Id: polish.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
14771477 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :jak inne przedsiębiorstwa
14781478 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :przez poszukiwanie
14791479 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Pozwól na wiele podobnych przedsiębiorstw w mieście: {ORANGE}{STRING}
1480 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Przedsiębiorstwa jednego typu mogą być budowane obok siebie: {ORANGE}{STRING}
14811480 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Zawsze pokazuj datę w długim formacie w pasku statusu: {ORANGE}{STRING}
14821481 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Pokazuj sygnały po stronie jazdy: {ORANGE}{STRING}
14831482 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Pokazuj okno finansów na koniec roku: {ORANGE}{STRING}
25032502 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
25042503 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Akceptowany ładunek: {LTBLUE}
25052504 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2505 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limit prędkości torowiska {LTBLUE}{VELOCITY}
25062506
25072507 # Description of land area of different tiles
25082508 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Skały
39013901 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Most jest za nisko dla tego terenu
39023902 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Początek i koniec muszą być w jednej linii
39033903 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... końce mostu muszą znajdować się na lądzie
3904 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... za długi most
39043905
39053906 # Tunnel related errors
39063907 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Nie można tutaj wybudować tunelu...
99 ##grflangid 0x36
1010
1111
12 # $Id: portuguese.txt 19446 2010-03-17 22:21:03Z rubidium $
12 # $Id: portuguese.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
770770
771771 STR_NEWS_NEW_TOWN :{BLACK}{BIGFONT}{STRING} subsidiou a construção da nova cidade de {TOWN}!
772772
773 STR_NEWS_INDUSTRY_CONSTRUCTION :{BIGFONT}{BLACK}Nova {STRING} em construção em {TOWN}!
774 STR_NEWS_INDUSTRY_PLANTED :{BIGFONT}{BLACK}Nova {STRING} está a ser plantada em {TOWN}!
773 STR_NEWS_INDUSTRY_CONSTRUCTION :{BIGFONT}{BLACK}{STRING} em construção em {TOWN}!
774 STR_NEWS_INDUSTRY_PLANTED :{BIGFONT}{BLACK}{STRING} está a ser plantada em {TOWN}!
775775
776776 STR_NEWS_INDUSTRY_CLOSURE_GENERAL :{BIGFONT}{BLACK}{STRING} anuncia fecho iminente!
777777 STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS :{BIGFONT}{BLACK}Problemas no abastecimento levam {STRING} a anunciar fecho iminente!
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :como as outras indústrias
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospecção
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Permitir várias indústrias semelhantes por cidade: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Indústrias do mesmo tipo podem ser construídas perto: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Mostrar sempre a data completa na barra de estado: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Mostrar sinais no lado da circulação: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Mostrar janela das finanças no fim do ano: {ORANGE}{STRING}
12481247 STR_CONFIG_SETTING_ALLOW_SHARES :{LTBLUE}Permite comprar acções de outras empresas: {ORANGE}{STRING}
12491248 STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :{LTBLUE}Percentagem do lucro total a pagar em transferências: {ORANGE}{STRING}%
12501249 STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :{LTBLUE}Ao arrastar colocar sinais a cada: {ORANGE}{STRING} quadrado(s)
1251 STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}Construir automaticamente semáforos antes de: {ORANGE}{STRING}
1250 STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}Usar automaticamente sinais clássicos antes de: {ORANGE}{STRING}
12521251 STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :{LTBLUE}Activar ferramenta de sinais: {ORANGE}{STRING}
12531252 STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :{LTBLUE}Tipo de farol padrão para construir: {ORANGE}{STRING}
12541253 STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Faróis de obstrução
17501749 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :erro de protocolo
17511750 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :NewGRF incompatível
17521751 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :não autorizado
1753 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :recebido um pacote estranho
1752 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :foi recebido um pacote inesperado ou inválido
17541753 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :revisão incorrecta
17551754 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :nome já está a ser utilizado
17561755 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :palavra-chave incorrecta
17681767 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Jogo ainda em pausa ({STRING}, {STRING})
17691768 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Jogo ainda em pausa ({STRING}, {STRING}, {STRING})
17701769 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Jogo a Correr ({STRING})
1771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :jogadores insuficientes
1770 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :número de jogadores
17721771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :a ligar clientes
17731772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manual
17741773 ############ End of leave-in-this-order
18851884 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Construir depósito ferroviário (para compra e manutenção de comboios)
18861885 STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Converter linha em ponto de passagem. Ctrl permite juntar pontos de passagem
18871886 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Construir estação ferroviária. Ctrl permite juntar estações
1888 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Construir sinais ferroviários. Ctrl alterna entre semáforos/sinais luminosos{}Arrastar constrói sinais numa linha de caminho-de-ferro. Ctrl constrói sinais até a próxima junção{}Ctrl+Clique alterna abrir a janela de selecção de sinais
1887 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Construir sinais ferroviários. Ctrl alterna entre s. clássicos/luminosos{}Arrastar constrói sinais numa linha de caminho-de-ferro. Ctrl constrói sinais até a próxima junção{}Ctrl+Clique alterna abrir a janela de selecção de sinais
18891888 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Construir ponte ferroviária
18901889 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Construir túnel ferroviário
18911890 STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Alternar entre construir/remover linha férrea, sinais, pontos de passagem e estações. Fixar o Ctrl também remove a linha férrea de pontos de passagem e estações
19181917
19191918 # Signal window
19201919 STR_BUILD_SIGNAL_CAPTION :{WHITE}Selecção de Sinal
1921 STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Sinal Normal (semáforo){}Este é o tipo mais básico de sinal, que só permite um comboio dentro da mesma linha ferroviária ao mesmo tempo.
1922 STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Sinal de Entrada (semáforo){}Verde enquanto existir um ou mais sinais de saída verdes no seguimento da linha. De outro modo ficará vermelho.
1923 STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Sinal de Saída (semáforo){}Funciona da mesma forma que o sinal normal mas é necessário para conseguir a cor correcta nos pré-sinais de entrada e combinado.
1924 STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Sinal Combinado (semáforo){}O sinal combinado funciona como um sinal de entrada e de saída. Este permite construir grandes "árvores" de pré-sinais.
1925 STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Sinal (semáforo){}Os sinais permitem que vários comboios utilizem a mesma linha desde que consigam chegar aos seus destinos em segurança.
1926 STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Sinais de sentido único (semáforo){}Os sinais permitem que vários comboios utilizem a mesma linha desde que consigam chegar aos seus destinos em segurança. Os comboios apenas podem passar no sentido dos semáforos.
1920 STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Sinal Normal (clássico){}Este é o tipo mais básico de sinal, que só permite um comboio dentro da mesma linha ferroviária ao mesmo tempo.
1921 STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Sinal de Entrada (clássico){}Verde enquanto existir um ou mais sinais de saída verdes no seguimento da linha. De outro modo ficará vermelho.
1922 STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Sinal de Saída (clássico){}Funciona da mesma forma que o sinal normal mas é necessário para conseguir a cor correcta nos pré-sinais de entrada e combinado.
1923 STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Sinal Combinado (clássico){}O sinal combinado funciona como um sinal de entrada e de saída. Este permite construir grandes "árvores" de pré-sinais.
1924 STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Sinal para encaminhar (clássico){}Os sinais permitem que vários comboios utilizem a mesma linha desde que consigam chegar aos seus destinos em segurança.
1925 STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Sinal para encaminhar de sentido único (clássico){}Os sinais permitem que vários comboios utilizem a mesma linha desde que consigam chegar aos seus destinos em segurança. Os comboios não podem passar no sentido oposto dos sinais.
19271926 STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Sinal Normal(eléctrico){}Este é o tipo mais básico de sinal, que só permite um comboio dentro da mesma linha ferroviária ao mesmo tempo.
19281927 STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Sinal de Entrada (eléctrico){}Verde enquanto existir um ou mais sinais de saída verdes no seguimento da linha. De outro modo ficará vermelho.
19291928 STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Sinal de Saída (eléctrico){}Funciona da mesma forma que o sinal normal mas é necessário para conseguir a cor correcta nos pré-sinais de entrada e combinado.
19301929 STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Sinal Combinado (eléctrico){}O sinal combinado funciona como um sinal de entrada e de saída. Este permite construir grandes "árvores" de pré-sinais.
1931 STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Sinal (eléctrico){}Os sinais permitem que vários comboios entrem na mesma linha ao mesmo tempo, desde que consigam chegar ao seu destino em segurança.
1932 STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Um sinal de sentido único (eléctrico){}Um sinal de trajecto permite que mais de um comboio passe ao mesmo tempo um sinal se, o comboio conseguir reservar um caminho para onde posteriormente possa parar sem prejudicar o seguinte. Sinais de um único sentido não podem ser passados no sentido contrário.
1930 STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Sinal para encaminhar (eléctrico){}Os sinais permitem que vários comboios entrem na mesma linha ao mesmo tempo, desde que consigam chegar ao seu destino em segurança.
1931 STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Sinal para encaminhar de sentido único (eléctrico){}Um sinal de trajecto permite que mais de um comboio passe ao mesmo tempo um sinal se, o comboio conseguir reservar um caminho para onde posteriormente possa parar sem prejudicar o seguinte. Sinais de um único sentido não podem ser passados no sentido contrário.
19331932 STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Converter Sinal{}Quando seleccionado, ao fazer clique num sinal existente este será convertido no tipo e variante de sinal seleccionado, Ctrl+clique irá comutar a variante existente.
19341933 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Densidade de sinais
19351934 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Diminuir densidade de sinais
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceite: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limite de velocidade da linha: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rochas
35073507
35083508 # Tree related errors
35093509 STR_ERROR_TREE_ALREADY_HERE :{WHITE}... árvore já plantada aqui
3510 STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... terreno não indicado para este tipo de árvore
35103511 STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}Impossível plantar árvore aqui...
35113512
35123513 # Bridge related errors
35173518 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Ponte muito baixa para o terreno
35183519 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Início e fim devem estar alinhados
35193520 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... ambos os extremos da ponte devem estar em terra
3521 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... ponte demasiado longa
35203522
35213523 # Tunnel related errors
35223524 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Não é possível construir túnel aqui...
99 ##grflangid 0x28
1010
1111
12 # $Id: romanian.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: romanian.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :ca alte industrii
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :de prospecţie
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Permite mai multe industrii similare în acelaşi oras: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industrii identice pot fi construite în apropiere una de cealaltă: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Afişează întotdeauna data în format lung în bara de stare: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Afişează semafoarele pe partea de circulaţie: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Afişează finanţele la sfârşitul fiecărui an: {ORANGE}{STRING}
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NouGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Încărcături acceptate: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limită viteză pe calea ferată: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Stânci
35173517 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Podul este prea jos pentru terenul corespunzator
35183518 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Cele două capete trebuie să se situeze în linie
35193519 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... ambele capete ale podului trebuie să se situeze pe uscat
3520 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... podul este prea lung
35203521
35213522 # Tunnel related errors
35223523 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Nu se poate construi tunel aici...
41084109 STR_LORRY :{BLACK}{LORRY}
41094110 STR_PLANE :{BLACK}{PLANE}
41104111 STR_SHIP :{BLACK}{SHIP}
4112
4113 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
1111 ##case m f n p nom gen dat acc abl pre
1212
1313
14 # $Id: russian.txt 19446 2010-03-17 22:21:03Z rubidium $
14 # $Id: russian.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
12511251 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :как и остальные
12521252 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :геологоразведка
12531253 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Разрешить несколько предприятий одного типа на город: {ORANGE}{STRING}
1254 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Одинаковые предприятия могут быть рядом друг с другом: {ORANGE}{STRING}
12551254 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Всегда полная дата в панели состояния: {ORANGE}{STRING}
12561255 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Показывать светофоры на стороне движения: {ORANGE}{STRING}
12571256 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Показывать финансовую статистику каждый год: {ORANGE}{STRING}
19041903 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :ошибка протокола
19051904 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :Несоответствие NewGRF
19061905 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :не авторизован
1907 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :получен странный пакет
1906 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :получен неверно сформированный пакет
19081907 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :версии не совпадают
19091908 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :это имя уже используется
19101909 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :неверный пароль
19221921 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Игра всё ещё остановлена ({STRING}, {STRING})
19231922 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Игра всё ещё остановлена ({STRING}, {STRING}, {STRING})
19241923 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Игра продолжена ({STRING})
1925 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :недостаточно игроков
1924 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :количество игроков
19261925 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :подключение клиентов
19271926 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :вручную
19281927 ############ End of leave-in-this-order
19761975 STR_CONTENT_NO_ZLIB_SUB :{WHITE}... загрузка контента невозможна!
19771976
19781977 # Order of these is important!
1979 STR_CONTENT_TYPE_BASE_GRAPHICS :{G=f}Базовая графика
1978 STR_CONTENT_TYPE_BASE_GRAPHICS :{G=m}Базовая графика
19801979 STR_CONTENT_TYPE_BASE_GRAPHICS.gen :{G=m}набора базовой графики
19811980 STR_CONTENT_TYPE_BASE_GRAPHICS.acc :{G=m}набор базовой графики
19821981 STR_CONTENT_TYPE_NEWGRF :{G=m}NewGRF
22932292 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
22942293 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Принимает: {LTBLUE}
22952294 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2295 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Макс. скорость ж/д: {LTBLUE}{VELOCITY}
22962296
22972297 # Description of land area of different tiles
22982298 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Скалы
36873687
36883688 # Tree related errors
36893689 STR_ERROR_TREE_ALREADY_HERE :{WHITE}... уже есть дерево
3690 STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... эти деревья здесь не растут
36903691 STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}Невозможно высадить деревья...
36913692
36923693 # Bridge related errors
36973698 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Слишком низкий мост
36983699 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Начало и конец должны быть на одной линии
36993700 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... оба конца моста должны опираться на землю
3701 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... мост слишком длинный
37003702
37013703 # Tunnel related errors
37023704 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Здесь невозможно построить туннель...
1111 ##case nom big gen dat aku vok lok ins
1212
1313
14 # $Id: serbian.txt 19446 2010-03-17 22:21:03Z rubidium $
14 # $Id: serbian.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
12921292 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :uobičajan
12931293 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :istraživački
12941294 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Dozvoljeno više industrija iste vrste na teritoriji jednog naselja: {ORANGE}{STRING}
1295 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Dozvoljena gradnja industrije iste vrste u blizini jeda drugoj: {ORANGE}{STRING}
12961295 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Uvek prikazan pun datum na statusnoj liniji: {ORANGE}{STRING}
12971296 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Prikazivanje semafora na strani smera voženje: {ORANGE}{STRING}
12981297 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Prikazivanje finansijskog stanja na kraju godine: {ORANGE}{STRING}
23182317 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
23192318 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Tovar prihvaćen: {LTBLUE}
23202319 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2320 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Najveća brzina na pruzi: {LTBLUE}{VELOCITY}
23212321
23222322 # Description of land area of different tiles
23232323 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Stene
30143014
30153015 # Engine preview window
30163016 STR_ENGINE_PREVIEW_CAPTION :{WHITE}Poruka od proizvođača vozila
3017 STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Upravo smo završili projektovanje novog vozila {STRING} - da li ste zainteresovani za jednogodišnja eksluzivna prava upotrebe ovog vozila, kako bi smo proverili radne osobine pre puštanja u masovnu proizvodnju?
3017 STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Upravo smo završili projektovanje novog {STRING.gen} - da li ste zainteresovani za jednogodišnja eksluzivna prava upotrebe ovog vozila, kako bi smo proverili radne osobine pre puštanja u masovnu proizvodnju?
30183018 STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :železničko vučno vozilo
30193019 STR_ENGINE_PREVIEW_ROAD_VEHICLE :drumsko vozilo
30203020 STR_ENGINE_PREVIEW_AIRCRAFT :letilica
37223722 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Most je nizak u odnosu na teren
37233723 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Početak i kraj moraju biti u istoj liniji
37243724 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... oba kraja mosta moraju biti na čvrstom tlu
3725 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... most je previše dugačak
37253726
37263727 # Tunnel related errors
37273728 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Nije moguće ovde izgraditi tunel...
99 ##grflangid 0x56
1010
1111
12 # $Id: simplified_chinese.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: simplified_chinese.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
563563 STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}上一年盈利的车船总数;包括火车、汽车、船只和飞机
564564 STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}最近仍然使用的车站组件数量。车站的每个组件(火车站、公交站、机场)即使是连接成为一个车站,也会被独立计数。
565565 STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}单一运输工具最低年利润(只计算使用两年以上的车辆、船只和飞机)
566 STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}在过去 12 个月中{}利润最少的月份的现金收入
567 STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}在过去 12 个月中{}利润最多的月份的现金收入
566 STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}在过去 12 个季度中{}利润最少的季度的现金收入
567 STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}在过去 12 个季度中{}利润最多的季度的现金收入
568568 STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}在过去 4 个季度中运输的货物总数
569569 STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}在上一个季度中运输的货物种类数
570570 STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}银行中存款的数量
687687 STR_SMALLMAP_LEGENDA_SNOW :{TINYFONT}{BLACK}雪地
688688
689689 STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}切换是否显示城镇名称
690 STR_SMALLMAP_CENTER :{BLACK}把地图显示的中心点对准屏幕中心位置
690 STR_SMALLMAP_CENTER :{BLACK}把当前位置在地图中心点显示
691691 STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRING} ({NUM})
692692 STR_SMALLMAP_TOWN :{TINYFONT}{WHITE}{TOWN}
693693 STR_SMALLMAP_DISABLE_ALL :{BLACK}全部禁用
10941094 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :同其他工业
10951095 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :探矿式
10961096 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}允许在一个城镇中建设多个同类工业设施:{ORANGE}{STRING}
1097 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}工业设施可以相邻:{ORANGE}{STRING}
10981097 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}永远在状态栏中显示长日期:{ORANGE}{STRING}
10991098 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}在列车前进的方向显示信号灯:{ORANGE}{STRING}
11001099 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}在年终显示财务报表:{ORANGE}{STRING}
14591458 STR_FACE_FACECODE_ERR :{WHITE}编号必须在 0 ~ 4,294,967,295 范围内!
14601459 STR_FACE_SAVE :{BLACK}储存头像
14611460 STR_FACE_SAVE_TOOLTIP :{BLACK}储存喜好的头像
1462 STR_FACE_SAVE_DONE :{WHITE}该头像已被储存至 OpenTTD 配置文件中
1461 STR_FACE_SAVE_DONE :{WHITE}该头像将作为你的喜好储存至 OpenTTD 配置文件中
14631462 STR_FACE_EUROPEAN :{BLACK}欧洲人
14641463 STR_FACE_SELECT_EUROPEAN :{BLACK}使用欧洲人面孔
14651464 STR_FACE_AFRICAN :{BLACK}非洲人
17971796 STR_CONTENT_DETAIL_SUBTITLE_AUTOSELECTED :{SILVER}此依存组件已被选择下载。
17981797 STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}您已经下载过该扩展包
17991798 STR_CONTENT_DETAIL_SUBTITLE_DOES_NOT_EXIST :{SILVER}该扩展包无法识别,OpenTTD无法下载该扩展包
1800 STR_CONTENT_DETAIL_UPDATE :{SILVER}该扩展包将会影响到当前使用的 {STRING}
1799 STR_CONTENT_DETAIL_UPDATE :{SILVER}该扩展包将会替换到当前使用的 {STRING}
18011800 STR_CONTENT_DETAIL_NAME :{SILVER}名称: {WHITE}{STRING}
18021801 STR_CONTENT_DETAIL_VERSION :{SILVER}版本: {WHITE}{STRING}
18031802 STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}描述: {WHITE}{STRING}
19101909 STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}标准信号(悬臂){}信号灯是多列车铁路系统的必备设施
19111910 STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}入口信号(悬臂){}在下一轨道区间上{}当至少有一个出口信号是绿色时{}此信号亮绿灯 否则亮红灯
19121911 STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}出口信号(悬臂){}运作等同与普通信号{}但是对于触发入口及复合信号灯{}来说是必要的
1913 STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}复合信号(悬臂){}复合信号灯可完全担当{}入口信号灯和出口信号灯的功能{}并可建立大的树状信号灯系统
1912 STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}复合信号(悬臂){}复合信号灯可完全担当{}入口信号灯和出口信号灯的功能{}并可建立树状预警信号灯系统
19141913 STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}双向高级信号(悬臂){}高级信号允许列车在一个信号区间内{}预留一条到安全停止位的路径{}因此高级信号可以允许一列以上列车{}同时进入和通过一个信号区间
19151914 STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}单向高级信号(悬臂){}高级信号允许列车在一个信号区间内{}预留一条到安全停止位的路径{}因此高级信号可以允许一列以上列车{}同时进入和通过一个信号区间
19161915 STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}标准信号(电子){}信号灯是多列车铁路系统的必备设施
19171916 STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}入口信号(电子){}在下一轨道区间上{}当至少有一个出口信号是绿色时{}此信号亮绿灯 否则亮红灯
19181917 STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}出口信号(电子){}运作等同与普通信号{}但是对于触发入口及复合信号灯{}来说是必要的
1919 STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}复合信号(电子){}复合信号灯可完全担当{}入口信号灯和出口信号灯的功能{}并可建立大的树状信号灯系统
1918 STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}复合信号(电子){}复合信号灯可完全担当{}入口信号灯和出口信号灯的功能{}并可建立树状预警信号灯系统
19201919 STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}双向高级信号(电子){}高级信号允许列车在一个信号区间内{}预留一条到安全停止位的路径{}因此高级信号可以允许一列以上列车{}同时进入和通过一个信号区间
19211920 STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}单向高级信号(电子){}高级信号允许列车在一个信号区间内{}预留一条到安全停止位的路径{}因此高级信号可以允许一列以上列车{}同时进入和通过一个信号区间
19221921 STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}信号灯转换工具{}当此按钮按下时再选择信号灯种类{}就可以转换信号灯为选择的种类{}CTRL+点击{}可以把现有信号灯在电子和旗帜间转换
19271926 # Bridge selection window
19281927 STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}选择铁路桥
19291928 STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}选择公路桥梁
1930 STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}选择桥梁 - 点击喜欢的桥梁即可建设
1929 STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}选择桥梁 - 点击选择喜欢的桥梁进行建设
19311930 STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
19321931 STR_BRIDGE_NAME_SUSPENSION_STEEL :钢制悬索
19331932 STR_BRIDGE_NAME_GIRDER_STEEL :钢制桁桥
20542053 # Town generation window (SE)
20552054 STR_FOUND_TOWN_CAPTION :{WHITE}生成城镇
20562055 STR_FOUND_TOWN_NEW_TOWN_BUTTON :{BLACK}新建城镇
2057 STR_FOUND_TOWN_NEW_TOWN_TOOLTIP :{BLACK}在指定位置设置一个新的城镇
2056 STR_FOUND_TOWN_NEW_TOWN_TOOLTIP :{BLACK}在指定位置建设新的城镇
20582057 STR_FOUND_TOWN_RANDOM_TOWN_BUTTON :{BLACK}随机城镇
20592058 STR_FOUND_TOWN_RANDOM_TOWN_TOOLTIP :{BLACK}随机新增一个城镇
20602059 STR_FOUND_TOWN_MANY_RANDOM_TOWNS :{BLACK}大量随机城镇
21022101 STR_LAND_AREA_INFORMATION_OWNER :{BLACK}产权所属:{LTBLUE}{STRING}
21032102 STR_LAND_AREA_INFORMATION_ROAD_OWNER :{BLACK}道路所属:{LTBLUE}{STRING}
21042103 STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}有轨电车道路所属:{LTBLUE}{STRING}
2105 STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}铁路所属:{LTBLUE}{STRING}
2104 STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}铁路归属:{LTBLUE}{STRING}
21062105 STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}地方政府:{LTBLUE}{STRING}
21072106 STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :没有
21082107 STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}坐标: {LTBLUE}{NUM}x{NUM}x{NUM} ({STRING})
25232522 STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}建设费用
25242523 STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}购置交通工具
25252524 STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}铁路运行费用
2526 STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}公路运行费用
2525 STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}汽车运行费用
25272526 STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}航空运行费用
25282527 STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}船舶运行费用
25292528 STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}固定资产维护
28902889 STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}显示船只的详情
28912890 STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}显示飞机的详情
28922891
2893 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}当前列车状态{}点击可以 启动/停止 列车
2894 STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}当前车辆的状态{}单击这里可以 停止/启动 车辆
2895 STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}船只当前的状态{}点击可以 启动/停止 船只
2896 STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}飞机当前的状态{}点击可以 启动/停止 已降落的飞机
2892 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}当前列车状态{}点击可以 启动/停止 列车。Ctrl+点击切换至目的地。
2893 STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}当前车辆的任务{}单击这里可以 停止/启动 车辆。Ctrl+点击切换至目的地。
2894 STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}当前船只的任务{}点击可以 启动/停止 船只。Ctrl+点击切换至目的地。
2895 STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}飞机当前的状态{}点击可以 停止/启动 飞机。 Ctrl+点击 切换至目的地
28972896
28982897 # Messages in the start stop button in the vehicle view
28992898 STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}装载/卸货
40884087 STR_LORRY :{BLACK}{LORRY}
40894088 STR_PLANE :{BLACK}{PLANE}
40904089 STR_SHIP :{BLACK}{SHIP}
4090
00 ##name Slovak
11 ##ownname Slovensky
22 ##isocode sk_SK
3 ##plural 6
3 ##plural 10
44 ##textdir ltr
55 ##digitsep .
66 ##digitsepcur .
1111 ##case g
1212
1313
14 # $Id: slovak.txt 19446 2010-03-17 22:21:03Z rubidium $
14 # $Id: slovak.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
697697 STR_HIGHSCORE_PERFORMANCE_TITLE_TYCOON_OF_THE_CENTURY :Tycoon
698698 STR_HIGHSCORE_NAME :{BIGFONT}{PRESIDENTNAME}, {COMPANY}
699699 STR_HIGHSCORE_STATS :{BIGFONT}'{STRING}' ({COMMA})
700 STR_HIGHSCORE_COMPANY_ACHIEVES_STATUS :{BIGFONT}{BLACK}{COMPANY} ziskal oznacenie '{STRING}' !
701 STR_HIGHSCORE_PRESIDENT_OF_COMPANY_ACHIEVES_STATUS :{BIGFONT}{WHITE}{PRESIDENTNAME} z {COMPANY} ziskal oznacenie '{STRING}' !
700 STR_HIGHSCORE_COMPANY_ACHIEVES_STATUS :{BIGFONT}{BLACK}{COMPANY} získal označenie '{STRING}'!
701 STR_HIGHSCORE_PRESIDENT_OF_COMPANY_ACHIEVES_STATUS :{BIGFONT}{WHITE}{PRESIDENTNAME} z {COMPANY} získal označenie '{STRING}'!
702702
703703 # Smallmap window
704704 STR_SMALLMAP_CAPTION :{WHITE}Mapa - {STRING}
757757 STR_SMALLMAP_CENTER :{BLACK}Vycentrovať malú mapu na aktuálnu pozíciu
758758 STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRING} ({NUM})
759759 STR_SMALLMAP_TOWN :{TINYFONT}{WHITE}{TOWN}
760 STR_SMALLMAP_DISABLE_ALL :{BLACK}Zakazat vsetky
760 STR_SMALLMAP_DISABLE_ALL :{BLACK}zakázať všetky
761761 STR_SMALLMAP_ENABLE_ALL :{BLACK}Povolit vsetky
762762 STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Ukázať výšku
763763 STR_SMALLMAP_TOOLTIP_DISABLE_ALL :{BLACK}Nezobraziť žiadny priemysel na mape
902902 # Extra view window
903903 STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Pohlad {COMMA}
904904 STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Pohlad podla mapy
905 STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Nastavit pohlad podla hlavneho pohladu
905 STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Nastaviť pohľad podľa hlavného pohľadu
906906 STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Mapa podla pohladu
907 STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Nastavit hlavny pohlad na mapu podla tohto pohladu
907 STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Nastaviť hlavný pohľad na mapu podľa tohto pohľadu
908908
909909 # Game options window
910910 STR_GAME_OPTIONS_CAPTION :{WHITE}Nastavenia hry
11391139
11401140 STR_CONFIG_SETTING_OFF :nie
11411141 STR_CONFIG_SETTING_ON :áno
1142 STR_CONFIG_SETTING_DISABLED :zakazane
1142 STR_CONFIG_SETTING_DISABLED :zakázané
11431143 STR_CONFIG_SETTING_VEHICLESPEED :{LTBLUE}Zobraziť rýchlosť vozidla v stavovej lište: {ORANGE}{STRING}
11441144 STR_CONFIG_SETTING_BUILDONSLOPES :{LTBLUE}Umožniť výstavbu na svahoch a na pobreží: {ORANGE}{STRING}
11451145 STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Povoliť úpravy terénu pod budovami, koľajami, a pod.: {ORANGE}{STRING}
11481148 STR_CONFIG_SETTING_MAMMOTHTRAINS :{LTBLUE}Umožniť stavbu dlhých vlakov: {ORANGE}{STRING}
11491149 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :{LTBLUE}Model akcelerácie vlaku: {ORANGE}{STRING}
11501150 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_ORIGINAL :Originál
1151 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_REALISTIC :Realistický
1151 STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_REALISTIC :realistický
11521152 STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :{LTBLUE}Strmosť svahu pre vlaky {ORANGE}{STRING}%
1153 STR_CONFIG_SETTING_FORBID_90_DEG :{LTBLUE}Zakázať vlakom a lodiam otáčanie o 90 stupňov: {ORANGE}{STRING} {LTBLUE} (vyžaduje NPF)
1153 STR_CONFIG_SETTING_FORBID_90_DEG :{LTBLUE}Zakázať vlakom a lodiam otáčanie o 90°: {ORANGE}{STRING} {LTBLUE} (vyžaduje NPF)
11541154 STR_CONFIG_SETTING_JOINSTATIONS :{LTBLUE}Umoznit spajanie stanic: {ORANGE}{STRING}
11551155 STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :{LTBLUE}Povoliť spájať stanice nepriamo hraničiace: {ORANGE}{STRING}
11561156 STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}Použiť vylepšený algoritmus nakladania: {ORANGE}{STRING}
11571157 STR_CONFIG_SETTING_GRADUAL_LOADING :{LTBLUE}Postupné nakladanie vozidiel: {ORANGE}{STRING}
11581158 STR_CONFIG_SETTING_INFLATION :{LTBLUE}Inflácia: {ORANGE}{STRING}
1159 STR_CONFIG_SETTING_SELECTGOODS :{LTBLUE}Vykladat náklad len v stanici kde je dopyt: {ORANGE}{STRING}
1159 STR_CONFIG_SETTING_SELECTGOODS :{LTBLUE}Vykladať náklad len v stanici kde je dopyt: {ORANGE}{STRING}
11601160 STR_CONFIG_SETTING_LONGBRIDGES :{LTBLUE}Umožniť stavbu dlhých mostov: {ORANGE}{STRING}
11611161 STR_CONFIG_SETTING_GOTODEPOT :{LTBLUE}Umožnit zaradenie depa do zoznamu príkazov: {ORANGE}{STRING}
11621162 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}Spôsob výstavby priemyslu produkujúceho suroviny: {ORANGE}{STRING}
11641164 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :normálny
11651165 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :vyhladávací
11661166 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Umožniť viac priemyslu rovnakého typu pri jednom meste: {ORANGE}{STRING}
1167 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Rovnaky priemysel moze byt stavany blizko seba: {ORANGE}{STRING}
11681167 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Vždy zobraziť dlhý formát dátumu v stavovej lište: {ORANGE}{STRING}
1169 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Zobrazovať železničné signály na rovnakej strane ako jazdia vozidlá: {ORANGE}{STRING}
1168 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Zobraziť železničné signály na tej strane, ako jazdia vozidlá: {ORANGE}{STRING}
11701169 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Zobraziť rozpočet na konci roku: {ORANGE}{STRING}
11711170 STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :{LTBLUE}Nové príkazy sú štandardne 'non-stop': {ORANGE}{STRING}
1172 STR_CONFIG_SETTING_STOP_LOCATION :{LTBLUE}Nové príkazy vlaku na zastavenie štandardne v {ORANGE}{STRING}{LTBLUE} stanici
1173 STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :blízky cieľ
1174 STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :stred
1175 STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :ďaleký cieľ
1176 STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :{LTBLUE}Radenie cestných vozidiel (podla množstva nákladu): {ORANGE}{STRING}
1177 STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}Posúvať pohľad ked je kurzor myši na okraji okna: {ORANGE}{STRING}
1171 STR_CONFIG_SETTING_STOP_LOCATION :{LTBLUE}Vlaky zastavujú štandardne {ORANGE}{STRING}{LTBLUE} stanice.
1172 STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :na začiatku
1173 STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :v strede
1174 STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :na konci
1175 STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :{LTBLUE}Zaradenie cestných vozidiel (podľa množstva nákladu): {ORANGE}{STRING}
1176 STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}Posúvať pohľad, keď je kurzor myši na okraji okna: {ORANGE}{STRING}
11781177 STR_CONFIG_SETTING_BRIBE :{LTBLUE}Umožniť podplácanie miestnej správy: {ORANGE}{STRING}
11791178 STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :{LTBLUE}Povoliť zakúpenie exkluzívnych dopravných práv: {ORANGE}{STRING}
1180 STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Umožnit posielanie penazí ostatným spolocnostiam: {ORANGE}{STRING}
1179 STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Umožniť posielanie peňazí ostatným spoločnostiam: {ORANGE}{STRING}
11811180 STR_CONFIG_SETTING_NONUNIFORM_STATIONS :{LTBLUE}Roznorode stanice: {ORANGE}{STRING}
11821181 STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Váhový násobok pre nákladné vlaky: {ORANGE}{STRING}
11831182 STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Faktor rýchlosti lietadiel: {ORANGE}1 / {STRING}
11871186 STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :normálny
11881187 STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{LTBLUE}Povoliť prejazdné zastávky na mestských cestách: {ORANGE}{STRING}
11891188 STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :{LTBLUE}Povoliť prechádzanie cez stop značky na cestách vlastnené konkurenciou: {ORANGE}{STRING}
1190 STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Povolit stavbu oddelených staníc: {ORANGE}{STRING}
1189 STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Povoliť stavbu oddelených staníc: {ORANGE}{STRING}
11911190 STR_CONFIG_SETTING_DYNAMIC_ENGINES :{LTBLUE}Povoliť viaceré NewGRF sety s rušňami: {ORANGE}{STRING}
11921191 STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Zmena tohto nastavenia nie je možná, pokiaľ sa tu nachádzajú vozidlá.
11931192
11941193 STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :{LTBLUE}Letiská nikdy neexiprujú: {ORANGE}{STRING}
11951194
1196 STR_CONFIG_SETTING_WARN_LOST_TRAIN :{LTBLUE}Upozornit ak vlak nedokáže nájst cestu: {ORANGE}{STRING}
1195 STR_CONFIG_SETTING_WARN_LOST_TRAIN :{LTBLUE}Upozorniť, ak vlak nedokáže nájsť cestu: {ORANGE}{STRING}
11971196 STR_CONFIG_SETTING_ORDER_REVIEW :{LTBLUE}Obnovenie prikazov vozidla: {ORANGE}{STRING}
11981197 STR_CONFIG_SETTING_ORDER_REVIEW_OFF :nie
11991198 STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :ano, okrem zastavenych vozidiel
12011200 STR_CONFIG_SETTING_WARN_INCOME_LESS :{LTBLUE}Varovať, ak je vozidlo stratové: {ORANGE}{STRING}
12021201 STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :{LTBLUE}Nikdy neprestat s vyrobou starych vozidiel: {ORANGE}{STRING}
12031202 STR_CONFIG_SETTING_AUTORENEW_VEHICLE :{LTBLUE}Automatická obnova dopravných prostriedkov, keď sú staré: {ORANGE}{STRING}
1204 STR_CONFIG_SETTING_AUTORENEW_MONTHS :{LTBLUE}Obnoviť vozidlo {ORANGE}{STRING}{LTBLUE} mesiacov pred/po dosiahnutí max. veku
1205 STR_CONFIG_SETTING_AUTORENEW_MONEY :{LTBLUE}Min. mnozstvo penazi pre aut. obnovovanie vozidiel: {ORANGE}{STRING}
1206 STR_CONFIG_SETTING_ERRMSG_DURATION :{LTBLUE}Dlžka zobrazenia chybovej správy: {ORANGE}{STRING}
1203 STR_CONFIG_SETTING_AUTORENEW_MONTHS :{LTBLUE}Obnoviť vozidlo {ORANGE}{STRING}{LTBLUE} mesiac{P "" e ov} pred/po dosiahnutí max. veku.
1204 STR_CONFIG_SETTING_AUTORENEW_MONEY :{LTBLUE}Potrebné financie pre automatickú obnovu vozidiel: {ORANGE}{STRING}
1205 STR_CONFIG_SETTING_ERRMSG_DURATION :{LTBLUE}Dĺžka zobrazenia chybovej správy: {ORANGE}{STRING}
12071206 STR_CONFIG_SETTING_POPULATION_IN_LABEL :{LTBLUE}Zobraziť počet obyvateľov mesta v jeho názve: {ORANGE}{STRING}
12081207
12091208 STR_CONFIG_SETTING_LAND_GENERATOR :{LTBLUE}Generátor uzemia: {ORANGE}{STRING}
12291228 STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Jedna alebo viacero kociek na jedom z okrajov nie je voda
12301229
12311230 STR_CONFIG_SETTING_STATION_SPREAD :{LTBLUE}Max. rozsah stanice: {ORANGE}{STRING} {RED}Pozor: Vysoke hodnoty spomaluju hru
1232 STR_CONFIG_SETTING_SERVICEATHELIPAD :{LTBLUE}Automatické opravy vrtulníkov v heliporte: {ORANGE}{STRING}
1233 STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Otvárat panel úprav terénu s panelmi výstavby: {ORANGE}{STRING}
1231 STR_CONFIG_SETTING_SERVICEATHELIPAD :{LTBLUE}Automatické opravy vrtuľníkov v heliporte: {ORANGE}{STRING}
1232 STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Otvárať panel úprav terénu s panelmi výstavby: {ORANGE}{STRING}
12341233 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR :{LTBLUE}Farba krajiny použitá na malej mape: {ORANGE}{STRING}
12351234 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Zelená
12361235 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Tmavozelená
12371236 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Fialová
1238 STR_CONFIG_SETTING_REVERSE_SCROLLING :{LTBLUE}Pri posúvaní pohladu myšou posúvat mapu opacným smerom: {ORANGE}{STRING}
1239 STR_CONFIG_SETTING_SMOOTH_SCROLLING :{LTBLUE}Plynulé posúvanie pohladu: {ORANGE}{STRING}
1237 STR_CONFIG_SETTING_REVERSE_SCROLLING :{LTBLUE}Posúvať mapu opačným smerom: {ORANGE}{STRING}
1238 STR_CONFIG_SETTING_SMOOTH_SCROLLING :{LTBLUE}Plynulé posúvanie pohľadu: {ORANGE}{STRING}
12401239 STR_CONFIG_SETTING_MEASURE_TOOLTIP :{LTBLUE}Zobraziť údaje o rozmeroch pri výstavbe: {ORANGE}{STRING}
12411240 STR_CONFIG_SETTING_LIVERIES :{LTBLUE}Zobraziť farebné schémy spoločnosti: {ORANGE}{STRING}
12421241 STR_CONFIG_SETTING_LIVERIES_NONE :žiadne
1243 STR_CONFIG_SETTING_LIVERIES_OWN :vlastná spolocnost
1244 STR_CONFIG_SETTING_LIVERIES_ALL :všetky spolocnosti
1245 STR_CONFIG_SETTING_PREFER_TEAMCHAT :{LTBLUE}Preferovaný teamový chat: {ORANGE}{STRING}
1246 STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :{LTBLUE}Funkcia scrolovacieho kolieska: {ORANGE}{STRING}
1242 STR_CONFIG_SETTING_LIVERIES_OWN :vlastná spoločnosť
1243 STR_CONFIG_SETTING_LIVERIES_ALL :všetky spoločnosti
1244 STR_CONFIG_SETTING_PREFER_TEAMCHAT :{LTBLUE}Preferovať tímový chat s klávesou <ENTER>: {ORANGE}{STRING}
1245 STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :{LTBLUE}Funkcia rolovacieho kolieska myši: {ORANGE}{STRING}
12471246 STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :zvacšit mapu
1248 STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :posúvat pohlad
1247 STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Posúvať pohľad
12491248 STR_CONFIG_SETTING_SCROLLWHEEL_OFF :vypnuté
1250 STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Rychlost posúvania pohladu: {ORANGE}{STRING}
1249 STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Rýchlosť posúvania pohľadu: {ORANGE}{STRING}
12511250
12521251 STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU :{LTBLUE}Funkcia pravého tlacidla myši: {ORANGE}{STRING}
12531252 STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND :Príkaz - klik
12541253 STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Control - klik
12551254 STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Ziadna
12561255
1257 STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :{LTBLUE}Skrolovať ľavým tlačidlom: {ORANGE}{STRING}
1256 STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :{LTBLUE}Posúvať pohľad ľavým tlačidlom myši: {ORANGE}{STRING}
12581257
12591258 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :{LTBLUE}Použiť {ORANGE}{STRING}{LTBLUE} formát dátumu v názve uloženej hry.
12601259 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :dlhý (31st Dec 2008)
12641263 STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :{LTBLUE}Automatická pauza pri štarte novej hry: {ORANGE}{STRING}
12651264 STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :{LTBLUE}Použit vylepšený zoznam vozidiel: {ORANGE}{STRING}
12661265 STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_OFF :Vypnutý
1267 STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_OWN :Vlastná spolocnost
1268 STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_ALL :Všetky spolocnosti
1266 STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_OWN :vlastná spoločnosť
1267 STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_ALL :všetky spoločnosti
12691268 STR_CONFIG_SETTING_LOADING_INDICATORS :{LTBLUE}Zobraziť ukazovatele nakladania/vykladania: {ORANGE}{STRING}
12701269 STR_CONFIG_SETTING_LOADING_INDICATORS_OFF :vypnuté
1271 STR_CONFIG_SETTING_LOADING_INDICATORS_OWN :vlastná spolocnost
1272 STR_CONFIG_SETTING_LOADING_INDICATORS_ALL :všetky spolocnosti
1270 STR_CONFIG_SETTING_LOADING_INDICATORS_OWN :vlastná spoločnosť
1271 STR_CONFIG_SETTING_LOADING_INDICATORS_ALL :všetky spoločnosti
12731272 STR_CONFIG_SETTING_TIMETABLE_ALLOW :{LTBLUE}Používat cestovné poriadky pre vozidlá: {ORANGE}{STRING}
12741273 STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}Zobraziť cestovné poriadky v tikoch namiesto dní: {ORANGE}{STRING}
12751274 STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :{LTBLUE}Zobraziť príchody a odchody v cestovných poriadkoch: {ORANGE}{STRING}
12831282 STR_CONFIG_SETTING_EXPENSES_LAYOUT :{LTBLUE}Zoskupiť výdavky v okne financií spoločnosti: {ORANGE}{STRING}
12841283
12851284 STR_CONFIG_SETTING_ALWAYS_BUILD_INFRASTRUCTURE :{LTBLUE}Zobraziť nástroje výstavby ak nie sú dostupné vhodné vozidlá: {ORANGE}{STRING}
1286 STR_CONFIG_SETTING_MAX_TRAINS :{LTBLUE}Maximalny pocet vlakov hraca: {ORANGE}{STRING}
1285 STR_CONFIG_SETTING_MAX_TRAINS :{LTBLUE}Maximálny počet vlakov hráča: {ORANGE}{STRING}
12871286 STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :{LTBLUE}Maximalny pocet automobilov hraca: {ORANGE}{STRING}
12881287 STR_CONFIG_SETTING_MAX_AIRCRAFT :{LTBLUE}Maximálny pocet lietadiel hráca: {ORANGE}{STRING}
1289 STR_CONFIG_SETTING_MAX_SHIPS :{LTBLUE}Maximalny pocet lodi hraca: {ORANGE}{STRING}
1290
1291 STR_CONFIG_SETTING_AI_BUILDS_TRAINS :{LTBLUE}Zakazat vlaky pre pocitac: {ORANGE}{STRING}
1292 STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :{LTBLUE}Zakazat automobily pre pocitac: {ORANGE}{STRING}
1293 STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :{LTBLUE}Zakazat lietadla pre pocitac: {ORANGE}{STRING}
1294 STR_CONFIG_SETTING_AI_BUILDS_SHIPS :{LTBLUE}Zakazat lode pre pocitac: {ORANGE}{STRING}
1288 STR_CONFIG_SETTING_MAX_SHIPS :{LTBLUE}Maximálny počet lodí hráča: {ORANGE}{STRING}
1289
1290 STR_CONFIG_SETTING_AI_BUILDS_TRAINS :{LTBLUE}Zakázať vlaky pre počítač: {ORANGE}{STRING}
1291 STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :{LTBLUE}Zakázať automobily pre počítač: {ORANGE}{STRING}
1292 STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :{LTBLUE}Zakázať lietadlá pre počítač: {ORANGE}{STRING}
1293 STR_CONFIG_SETTING_AI_BUILDS_SHIPS :{LTBLUE}Zakázať lode pre počítač: {ORANGE}{STRING}
12951294
12961295 STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :{LTBLUE}Povoliť AI v hre viacerých hráčov (experimentálne): {ORANGE}{STRING}
12971296 STR_CONFIG_SETTING_AI_MAX_OPCODES :{LTBLUE}#opcodes pred AI sú suspendované: {ORANGE}{STRING}
13071306 STR_CONFIG_SETTING_SERVINT_SHIPS_DISABLED :{LTBLUE}Implicitný servisný interval pre lode: {ORANGE}vypnutý
13081307 STR_CONFIG_SETTING_NOSERVICE :{LTBLUE}Vypnúť servisy, ak sú vypnuté poruchy: {ORANGE}{STRING}
13091308 STR_CONFIG_SETTING_WAGONSPEEDLIMITS :{LTBLUE}Obmedzenie rýchlosti pre vagóny: {ORANGE}{STRING}
1310 STR_CONFIG_SETTING_DISABLE_ELRAILS :{LTBLUE}Zakázat elektrifikovanú železnicu: {ORANGE}{STRING}
1309 STR_CONFIG_SETTING_DISABLE_ELRAILS :{LTBLUE}Zakázať elektrifikovanú železnicu: {ORANGE}{STRING}
13111310
13121311 STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :{LTBLUE}Zobraziť správy farebne od roku: {ORANGE}{STRING}
13131312 STR_CONFIG_SETTING_STARTING_YEAR :{LTBLUE}Začiatok hry v roku: {ORANGE}{STRING}
13141313 STR_CONFIG_SETTING_SMOOTH_ECONOMY :{LTBLUE}Povoliť zmeny ekonomiky (viac menších zmien): {ORANGE}{STRING}
13151314 STR_CONFIG_SETTING_ALLOW_SHARES :{LTBLUE}Povoliť kupovanie podielov v ostatných spoločnostiach: {ORANGE}{STRING}
13161315 STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :{LTBLUE}Percento z časti zisku na zaplatenie v dopravnom systéme: {ORANGE}{STRING}%
1317 STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :{LTBLUE}Pri stavbe tahaním umiestnit signály na každé: {ORANGE}{STRING}. pole
1318 STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}Automaticky stavat semafóry namiesto signálov pred rokom: {ORANGE}{STRING}
1316 STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :{LTBLUE}Pri stavbe ťahaním umiestniť signály na každé: {ORANGE}{STRING}. pole
1317 STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}Automaticky stavať semafóry namiesto signálov pred rokom: {ORANGE}{STRING}
13191318 STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :{LTBLUE}Zapnúť grafické rozhranie stavby signálov: {ORANGE}{STRING}
13201319 STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :{LTBLUE}Štandardne budovaný typ signálov: {ORANGE}{STRING}
13211320 STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Blokové signály
13221321 STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :Obojsmerné signály
13231322 STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :Jednosmerné signály
1324 STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :{LTBLUE}Cyklovať typom signálov: {ORANGE}{STRING}
1325 STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Iba blokovacie signály
1326 STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Iba obojsmerné signály
1327 STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Všetky
1323 STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :{LTBLUE}Prepínanie medzi typmi signálov: {ORANGE}{STRING}
1324 STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :len blokové
1325 STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :len obojsmerné
1326 STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :všetky
13281327
13291328 STR_CONFIG_SETTING_TOWN_LAYOUT :{LTBLUE}Návrh ciest pre nové mestá: {ORANGE}{STRING}
13301329 STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :štandardná
13481347 STR_CONFIG_SETTING_TOOLBAR_POS_LEFT :vlavo
13491348 STR_CONFIG_SETTING_TOOLBAR_POS_CENTER :v strede
13501349 STR_CONFIG_SETTING_TOOLBAR_POS_RIGHT :vpravo
1351 STR_CONFIG_SETTING_SNAP_RADIUS :{LTBLUE}Vzdialenosť pre prichytenie okna: {ORANGE}{STRING} bodov
1350 STR_CONFIG_SETTING_SNAP_RADIUS :{LTBLUE}Vzdialenosť pre prichytenie okna: {ORANGE}{STRING} bod{P "" y ov}
13521351 STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :{LTBLUE}Vzdialenosť pre prichytenie okna: {ORANGE}vypnuté
1353 STR_CONFIG_SETTING_SOFT_LIMIT :{LTBLUE}Jemný limit okna (nie dôležité): {ORANGE}{STRING}
1354 STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :{LTBLUE}Jemný limit okna (nie dôležité): {ORANGE}nepovolený
1352 STR_CONFIG_SETTING_SOFT_LIMIT :{LTBLUE}Jemný limit okna (nie je dôležitý): {ORANGE}{STRING}
1353 STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :{LTBLUE}Jemný limit okna (nie je dôležitý): {ORANGE}vypnutý
13551354 STR_CONFIG_SETTING_TOWN_GROWTH :{LTBLUE}Rozvoj miest: {ORANGE}{STRING}
13561355 STR_CONFIG_SETTING_TOWN_GROWTH_NONE :žiadny
13571356 STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :pomalý
16311630 STR_NETWORK_START_SERVER_NEW_GAME_NAME :{BLACK}Nazov hry:
16321631 STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}Nazov hry, ktory uvidia ostatni v zozname sietovych hier
16331632 STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Nastavit heslo
1634 STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Ochran hru heslom, ak nechcec aby sa pripajali ostatni ludia
1633 STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Zabezpeč hru heslom, ak nechceš povoliť verejný prístup
16351634 STR_NETWORK_START_SERVER_SELECT_MAP :{BLACK}Vyber mapu:
16361635 STR_NETWORK_START_SERVER_SELECT_MAP_TOOLTIP :{BLACK}Ktoru mapu chces hrat?
16371636 STR_NETWORK_START_SERVER_SERVER_RANDOM_GAME :Vygenerovať náhodnú novú hru
17531752 STR_NETWORK_CLIENTLIST_KICK :Vyhodit
17541753 STR_NETWORK_CLIENTLIST_BAN :Ban
17551754 STR_NETWORK_CLIENTLIST_GIVE_MONEY :Previest peniaze
1756 STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Napisat vsetkym
1757 STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :Napisat spolocnosti
1755 STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Napísať správu všetkým
1756 STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :Napísať spoločnosti správu
17581757 STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT :Privatna sprava
17591758
17601759 STR_NETWORK_SERVER :Server
17741773 STR_COMPANY_VIEW_JOIN :{BLACK}Pridať sa
17751774 STR_COMPANY_VIEW_JOIN_TOOLTIP :{BLACK}Pridať sa a hrať za túto spoločnosť
17761775 STR_COMPANY_VIEW_PASSWORD :{BLACK}Heslo
1777 STR_COMPANY_VIEW_PASSWORD_TOOLTIP :{BLACK}Heslo-ochrana vasej spolocnosti proti neautorizovanemu pripojeniu hracov
1776 STR_COMPANY_VIEW_PASSWORD_TOOLTIP :{BLACK}Ochráň svoju spoločnosť heslom, aby sa nepripájali neautorizovaný hráči.
17781777 STR_COMPANY_VIEW_SET_PASSWORD :{BLACK}Nastavte heslo spolocnosti
17791778
17801779 # Network chat
19511950 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Automaticka stavba zeleznicnych kolaji
19521951 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Postavit zeleznicne depo (pre vyrobu a opravu vlakov)
19531952 STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Konvertovat zeleznicu na smerove body
1954 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Postavit zeleznicnu stanicu
1953 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Postaviť železničnú stanicu
19551954 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Postavit zeleznicne semafory
1956 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Postavit zeleznicny most
1955 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Postaviť železničný most
19571956 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Postavit zeleznicny tunel
19581957 STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Prepnut stavbu/odstranenie zeleznicnych kolaji a semaforov
19591958 STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Konvertovat/vylepsit typ zeleznice
19981997 STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Obojstranné signály (electric){}Obojstranné signály umožnujú vstúpiť viacerým vlakom na trať súčasne, iba ak vlak dokáže zastaviť pred brzdiacim bodom. Obojstranné signály umožňujú vlakom prechádzať trať z oboch strán.
19991998 STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Jednosmerné signály (electric){}Jednosmerné signály umožnujú vstúpiť viacerým vlakom na trať súčasne, iba ak vlak dokáže zastaviť pred brzdiacim bodom. Jednosmerné signály umožňujú vlakom prechádzať trať iba z jednej strany.
20001999 STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Konverzia signálu{}Pri vybraní, kliknutie na existujúci signál ho zmení na vybraný typ a variant, CTRL+klik prepne existujúci variant.
2001 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Hustota signálov pri stavbe tahaním
2000 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Hustota signálov pri stavbe ťahaním
20022001 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Znižit hustotu signálov
20032002 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Zvýšit hustotu signálov
20042003
20052004 # Bridge selection window
2006 STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Vyber zeleznicny most
2005 STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Vyber železničný most
20072006 STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Vyber cestny most
20082007 STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Výber mostu - pre postavanie zvoľ typ mostu
20092008 STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
20262025 STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}Stavať časti električkovej trate použitím automatického módu. Ctrl prepína stavanie/odstránenie električkovej trate
20272026 STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Postaviť depo pre cestné vozidlá (na výrobu a opravy vozidiel)
20282027 STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Postaviť električkové depo
2029 STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}Postavit autobusovu zastavku
2028 STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}Postaviť autobusovú zastávku
20302029 STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}Postavit osobnú elektrickovú stanicu
20312030 STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}Postavit vykladku
20322031 STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}Postavit nákladnú elektrickovú stanicu
21902189 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21912190 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Prijíma náklad: {LTBLUE}
21922191 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2192 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Rýchlostný limit koľají: {LTBLUE}{VELOCITY}
21932193
21942194 # Description of land area of different tiles
21952195 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Skaly
24772477 STR_TOWN_DIRECTORY_CAPTION :{WHITE}Mesta
24782478 STR_TOWN_DIRECTORY_NONE :{ORANGE}- Nič -
24792479 STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA})
2480 STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Názvy miest - kliknite na názov pre pohlad mesto
2480 STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Názvy miest - kliknite na názov pre pohľad na mesto. Ctrl+klik otvorí nové okno s pohľadom na mesto
24812481 STR_TOWN_POPULATION :{BLACK}Svetova populacia: {COMMA}
24822482
24832483 # Town view window
26442644 STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}Pozriet sidlo
26452645 STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}Pozrieť sídlo firmy
26462646 STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Premiestnit sidlo
2647 STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Sidlo spolocnosti je mozne premiestnit za 1% hodnoty spolocnosti
2647 STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Sídlo spoločnosti je možné premiestniť za 1% hodnoty spoločnosti
26482648
26492649 STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nová tvár
26502650 STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Vybrat novu tvar prezidenta
27012701 STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Lietad{P lo la iel}
27022702
27032703 STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Vlaky - kliknut na vlak pre informacie
2704 STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Automobily - kliknut pre detaily
2704 STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Automobily - kliknúť pre detaily
27052705 STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Lode - kliknut pre informacie
27062706 STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Lietadlo - kliknut pre informacie
27072707
28632863 STR_DEPOT_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW :{BLACK}Vytvori kopiu lietadla. Klikni na toto tlacidlo a potom na lietadlo v hangari alebo mimo neho. Stlacenim Control budu prikazy zdielane
28642864
28652865 STR_DEPOT_TRAIN_LOCATION_TOOLTIP :{BLACK}Vycentrovať pohľad na pozíciu depa. Ctrl+klik otvorí nové okno s pohľadom na depo
2866 STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Centrovat pohlad na poziciu garaze
2866 STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Centrovať pohľad na pozíciu garáže
28672867 STR_DEPOT_SHIP_LOCATION_TOOLTIP :{BLACK}Vycentrovať pohľad na lodenicu. Ctrl+klik otvorí nové okno s pohľadom na lodenicu
28682868 STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Vycentrovať pohľad na hangár. Ctrl+klik otvorí nové okno s pohľadom na hangár
28692869
33713371 STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... nie je mozne zkonvertovat format obrazku.
33723372
33733373 STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}Upozornenie na stupnicu
3374 STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Prilis velka zmena velkosti zdrojovej mapy sa neodporuca. Pokracovat s generovanim?
3374 STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Príliš veľká zmena veľkosti zdrojovej mapy sa neodporúča. Pokračovať s generovaním?
33753375
33763376 # Soundset messages
33773377 STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Bola nájdená len núdzová sada zvukov. Pre plnú podporu zvukových efektov je potrebné nainštalovať zvukovú sadu cez online obsah.
35843584 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Most je príliš nízky pre tento terén
35853585 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Začiatok a koniec musí byť v rovine
35863586 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... konce mostu musia byť na pevnine
3587 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... most je príliš dlhý
35873588
35883589 # Tunnel related errors
35893590 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Tu sa nedá postaviť tunel...
1010 ##case r d t
1111
1212
13 # $Id: slovenian.txt 19446 2010-03-17 22:21:03Z rubidium $
13 # $Id: slovenian.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
11391139 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :kot ostale industrije
11401140 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :obetaven
11411141 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Dovoli več enakih industrij na mesto: {ORANGE}{STRING}
1142 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industrije enakega tipa lahko stojijo skupaj: {ORANGE}{STRING}
11431142 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Vedno prikaži dolg datum v vrstici stanja: {ORANGE}{STRING}
11441143 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Prikaz signalov na vozni smeri: {ORANGE}{STRING}
11451144 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Prikaz okna financ na koncu leta: {ORANGE}{STRING}
17921791 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :napaka protokola
17931792 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :NewGRF neskladje
17941793 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :nepooblaščen
1795 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :sprejet je bil čuden paket
1794 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :sprejet je bil neveljaven oz. nepričakovan paket
17961795 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :napačna različica
17971796 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :ime je že v uporabi
17981797 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :napačno geslo
18101809 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Igra je še vedno prekinjena ({STRING}, {STRING})
18111810 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Igra je še vedno prekinjena ({STRING}, {STRING}, {STRING})
18121811 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Igra ponovno teče ({STRING})
1813 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :ni dovolj igralcev
1812 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :število igralcev
18141813 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :povezujem goste
18151814 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :ročno
18161815 ############ End of leave-in-this-order
21652164 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21662165 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Sprejet tovor: {LTBLUE}
21672166 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2167 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Omejitev hitrosti vlakov: {LTBLUE}{VELOCITY}
21682168
21692169 # Description of land area of different tiles
21702170 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Kamenje
35493549
35503550 # Tree related errors
35513551 STR_ERROR_TREE_ALREADY_HERE :{WHITE}... drevo je že posajeno
3552 STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... napačen teren za to vrsto drevesa
35523553 STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}Tukaj ne moreš posaditi drevesa...
35533554
35543555 # Bridge related errors
35593560 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Most je prenizek za teren
35603561 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Začetek in konec morata biti na isti višini
35613562 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... oba priključka mostu morata biti na kopnem
3563 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... predolg most
35623564
35633565 # Tunnel related errors
35643566 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Tukaj ni mogoče zgraditi predora...
1010 ##gender masculino femenino
1111
1212
13 # $Id: spanish.txt 19411 2010-03-13 18:47:58Z rubidium $
13 # $Id: spanish.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
145145 STR_ABBREV_MAIZE :{TINYFONT}MZ
146146 STR_ABBREV_FRUIT :{TINYFONT}FT
147147 STR_ABBREV_DIAMONDS :{TINYFONT}DM
148 STR_ABBREV_FOOD :{TINYFONT}CM
148 STR_ABBREV_FOOD :{TINYFONT}AL
149149 STR_ABBREV_PAPER :{TINYFONT}PP
150150 STR_ABBREV_GOLD :{TINYFONT}OR
151151 STR_ABBREV_WATER :{TINYFONT}AG
276276 STR_SORT_BY_LIFE_TIME :Tiempo de vida remanente
277277 STR_SORT_BY_TIMETABLE_DELAY :Retraso en horarios
278278 STR_SORT_BY_FACILITY :Tipo de estación
279 STR_SORT_BY_WAITING :Esperando valor de la carga
279 STR_SORT_BY_WAITING :Carga en espera
280280 STR_SORT_BY_RATING_MAX :Clasificación de carga más alta
281281 STR_SORT_BY_RATING_MIN :Clasificación de carga más baja
282 STR_SORT_BY_ENGINE_ID :ID Locomotora (ordenación clásica)
282 STR_SORT_BY_ENGINE_ID :ID Motor (ordenación clásica)
283283 STR_SORT_BY_COST :Coste
284284 STR_SORT_BY_POWER :Potencia
285285 STR_SORT_BY_INTRO_DATE :Fecha Introducción
521521 STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Tasas de pago por carga
522522 STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINYFONT}{BLACK}Días en tránsito
523523 STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINYFONT}{BLACK}Pago por entregar 10 unidades (o 1,000 litros) de mercancía a una distancia de 20 cuadros
524 STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Intercambiar gráfico para tipo de carga
524 STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Mostrar / ocultar gráfico de este tipo de carga
525525 STR_GRAPH_CARGO_PAYMENT_CARGO :{TINYFONT}{BLACK}{STRING}
526526
527527 STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Mostrar detalles de rendimiento
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :como las otras industrias
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospección
11001100 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Construcción de más de una industria similar por pueblo: {ORANGE}{STRING}
1101 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industrias mismo tipo pueden construirse unas junto a otras: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Mostrar siempre fecha larga en la barra de estado: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Mostrar señales en el lado de conducción: {ORANGE}{STRING}
11041103 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Mostrar ventana de finanzas al final del año: {ORANGE}{STRING}
17511750 STR_NETWORK_ERROR_CLIENT_PROTOCOL_ERROR :error de protocolo
17521751 STR_NETWORK_ERROR_CLIENT_NEWGRF_MISMATCH :NewGRF erróneo
17531752 STR_NETWORK_ERROR_CLIENT_NOT_AUTHORIZED :no autorizado
1754 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :recibido paquete extraño
1753 STR_NETWORK_ERROR_CLIENT_NOT_EXPECTED :recibido paquete inválido o inesperado
17551754 STR_NETWORK_ERROR_CLIENT_WRONG_REVISION :versión incorrecta
17561755 STR_NETWORK_ERROR_CLIENT_NAME_IN_USE :nombre en uso
17571756 STR_NETWORK_ERROR_CLIENT_WRONG_PASSWORD :contraseña incorrecta
17691768 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Juego todavía pausado ({STRING}, {STRING})
17701769 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Juego todavía pausado ({STRING}, {STRING}, {STRING})
17711770 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Juego reanudado ({STRING})
1772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :no hay suficientes jugadores
1771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :numero de jugadores
17731772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :clientes conectándose
17741773 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manual
17751774 ############ End of leave-in-this-order
21242123 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21252124 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceptada: {LTBLUE}
21262125 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2126 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límite de velocidad del raíl: {LTBLUE}{VELOCITY}
21272127
21282128 # Description of land area of different tiles
21292129 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rocas
35183518 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}El puente es demasiado bajo para el terreno
35193519 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Comienzo y final deben estar en línea
35203520 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... los dos extremos de un puente han de estar sobre tierra
3521 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... puente demasiado largo
35213522
35223523 # Tunnel related errors
35233524 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}No se puede construir túnel aquí...
41094110 STR_LORRY :{BLACK}{LORRY}
41104111 STR_PLANE :{BLACK}{PLANE}
41114112 STR_SHIP :{BLACK}{SHIP}
4113
4114 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
99 ##grflangid 0x2e
1010
1111
12 # $Id: swedish.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: swedish.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
435435 STR_ABOUT_MENU_LAND_BLOCK_INFO :Information om mark
436436 STR_ABOUT_MENU_SEPARATOR :
437437 STR_ABOUT_MENU_TOGGLE_CONSOLE :Visa/dölj konsolen
438 STR_ABOUT_MENU_AI_DEBUG :AI-debug
438 STR_ABOUT_MENU_AI_DEBUG :AI-felsökning
439439 STR_ABOUT_MENU_SCREENSHOT :Skärmdump (Ctrl-S)
440440 STR_ABOUT_MENU_GIANT_SCREENSHOT :Gigantisk skärmdump (Ctrl-G)
441441 STR_ABOUT_MENU_ABOUT_OPENTTD :Om 'OpenTTD'
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Som andra industrier
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Prospekterande
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Tillåt flera industrier av samma typ per stad: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Industrier av samma typ kan byggas nära varandra: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Visa alltid långt datum i statusfältet: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Visa signaler på körsidan: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Visa finansfönstret vid slutet av året: {ORANGE}{STRING}
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Accepterat gods: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Hastighetsgräns för järnvägsspår: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Stenar
22482248 STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snölinjens höjd:
22492249 STR_MAPGEN_SNOW_LINE_UP :{BLACK}Höj snölinjens höjd ett upp
22502250 STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Sänk snölinjens höjd ett ner
2251 STR_MAPGEN_RANDOM_SEED :{BLACK}Slump-nummer:
2251 STR_MAPGEN_RANDOM_SEED :{BLACK}Slumpnummer:
22522252 STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klicka för att mata in ett slump-nummer
22532253 STR_MAPGEN_RANDOM :{BLACK}Slumpa
2254 STR_MAPGEN_RANDOM_HELP :{BLACK}Ändra slump-nummer som används för terräng-generering
2254 STR_MAPGEN_RANDOM_HELP :{BLACK}Ändra slumpnummer som används för terräng-generering
22552255 STR_MAPGEN_LAND_GENERATOR :{BLACK}Landgenerator:
22562256 STR_MAPGEN_TREE_PLACER :{BLACK}Trädalgoritm:
22572257 STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrängtyp:
27332733 STR_BUY_VEHICLE_AIRCRAFT_RENAME_BUTTON :{BLACK}Byt namn på
27342734
27352735 STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}Byt namn på tågvagn
2736 STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Byt namn på vägfordon typ
2736 STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Byt namn på vägfordonstyp
27372737 STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Byt namn på skeppstyp
27382738 STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Byt namn på flygplanstyp
27392739
27402740 STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Byt namn på tågets fordonstyp
2741 STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Byt namn på vägfordon typ
2741 STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Byt namn på vägfordonstyp
27422742 STR_QUERY_RENAME_SHIP_TYPE_CAPTION :{WHITE}Byt namn på skeppstyp
27432743 STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}Byt namn på flygplanstyp
27442744
35173517 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Bro är för låg för terrängen
35183518 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Start- och slutpunkt måste ligga i linje
35193519 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... brons båda ändar måste vara på land
3520 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... för lång bro
35203521
35213522 # Tunnel related errors
35223523 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Kan inte bygga tunnel här...
41084109 STR_LORRY :{BLACK}{LORRY}
41094110 STR_PLANE :{BLACK}{PLANE}
41104111 STR_SHIP :{BLACK}{SHIP}
4112
4113 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
99 ##grflangid 0x0c
1010
1111
12 # $Id: traditional_chinese.txt 19446 2010-03-17 22:21:03Z rubidium $
12 # $Id: traditional_chinese.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
382382 STR_GRAPH_MENU_DELIVERED_CARGO_GRAPH :運載報表
383383 STR_GRAPH_MENU_PERFORMANCE_HISTORY_GRAPH :業績歷史圖表
384384 STR_GRAPH_MENU_COMPANY_VALUE_GRAPH :公司市值圖表
385 STR_GRAPH_MENU_CARGO_PAYMENT_RATES :公定運費表
385 STR_GRAPH_MENU_CARGO_PAYMENT_RATES :貨物運費表
386386 ############ range ends here
387387
388388 ############ range for company league menu starts
517517 STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}公司效率指標 (最高 1000)
518518 STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}公司價值
519519
520 STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}貨物運價
520 STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}貨物運費表
521521 STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINYFONT}{BLACK}運輸日數
522522 STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINYFONT}{BLACK}將 10 單位 (或 10,000 升) 貨物運送 20 格的費用
523523 STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}切換貨物圖示開關
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :與其他工業相同
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :需探勘
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}每個市鎮可擁有多個同類工業:{ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}同類工業興建距離不受限制:{ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}永遠於狀態列顯示長日期格式:{ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}於駕駛側顯示號誌:{ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}於年末顯示財政視窗:{ORANGE}{STRING}
11241123 STR_CONFIG_SETTING_DYNAMIC_ENGINES :{LTBLUE}允許載入多個 NewGRF 車輛組:{ORANGE}{STRING}
11251124 STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}當此項目為交通工具時不能變更此設定。
11261125
1127 STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :{LTBLUE}機場永不過期: {ORANGE}{STRING}
1126 STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :{LTBLUE}機場永不過期:{ORANGE}{STRING}
11281127
11291128 STR_CONFIG_SETTING_WARN_LOST_TRAIN :{LTBLUE}列車迷路時警告:{ORANGE}{STRING}
11301129 STR_CONFIG_SETTING_ORDER_REVIEW :{LTBLUE}檢查交通工具指令:{ORANGE}{STRING}
12291228 STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :{LTBLUE}多人遊戲中允許電腦 AI 加入:{ORANGE}{STRING}
12301229 STR_CONFIG_SETTING_AI_MAX_OPCODES :{LTBLUE}在 AI 中止前的最大 #opcodes 數:{ORANGE}{STRING}
12311230
1232 STR_CONFIG_SETTING_SERVINT_ISPERCENT :{LTBLUE}維護間隔以百分比計算:{ORANGE}{STRING}
1231 STR_CONFIG_SETTING_SERVINT_ISPERCENT :{LTBLUE}維護間隔以百分比 (%) 計算:{ORANGE}{STRING}
12331232 STR_CONFIG_SETTING_SERVINT_TRAINS :{LTBLUE}列車預設維護間隔:{ORANGE}{STRING} 天/%
12341233 STR_CONFIG_SETTING_SERVINT_TRAINS_DISABLED :{LTBLUE}列車預設維護間隔:{ORANGE}關閉
12351234 STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :{LTBLUE}汽車預設維護間隔:{ORANGE}{STRING} 天/%
12461245 STR_CONFIG_SETTING_STARTING_YEAR :{LTBLUE}開始年份:{ORANGE}{STRING}
12471246 STR_CONFIG_SETTING_SMOOTH_ECONOMY :{LTBLUE}開啟平滑經濟模式 (更多、更小的變動):{ORANGE}{STRING}
12481247 STR_CONFIG_SETTING_ALLOW_SHARES :{LTBLUE}允許購買其它公司的股票:{ORANGE}{STRING}
1249 STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :{LTBLUE}原料投入工廠生產的比例:{ORANGE}{STRING}%
1248 STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :{LTBLUE}轉運時每段旅程支付的運費比例 (避免虧損):{ORANGE}{STRING}%
12501249 STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :{LTBLUE}拖拉時每隔:{ORANGE}{STRING} 格自動建造號誌
12511250 STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}自動在指定年份前建造懸臂號誌:{ORANGE}{STRING}
12521251 STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :{LTBLUE}啟用號誌介面:{ORANGE}{STRING}
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:{LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}接收貨物:{LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}軌道速限:{LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :石頭
31223122 STR_ORDER_GO_TO_HANGAR_FORMAT :{STRING} {STATION} 機棚
31233123
31243124 STR_ORDER_REFIT_ORDER :(改裝成 {STRING})
3125 STR_ORDER_REFIT_STOP_ORDER :(裝載 {STRING} 並停止)
3125 STR_ORDER_REFIT_STOP_ORDER :(裝載 {STRING} 並停止)
31263126 STR_ORDER_STOP_ORDER :(停止)
31273127
31283128 STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
32853285 STR_ERROR_GAME_LOAD_FAILED :{WHITE}遊戲載入失敗{}{STRING}
32863286 STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :內部錯誤:{STRING}
32873287 STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :損壞的存檔 - {STRING}
3288 STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :存檔是由更新版的遊戲所建立
3288 STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :該存檔是由較新版本的遊戲所產生
32893289 STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :檔案無法讀取
32903290 STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :檔案無法寫入
32913291 STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :資料完整性檢查失敗
33463346 STR_ERROR_CAN_T_LEVEL_LAND_HERE :{WHITE}無法變更此處地形...
33473347 STR_ERROR_EXCAVATION_WOULD_DAMAGE :{WHITE}挖掘工作會摧毀隧道
33483348 STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}已到海平面
3349 STR_ERROR_TOO_HIGH :{WHITE}太高
3349 STR_ERROR_TOO_HIGH :{WHITE}... 太高
33503350 STR_ERROR_ALREADY_LEVELLED :{WHITE}... 已經平了
33513351
33523352 # Company related errors
33613361 STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}無法把貸款的錢流通出去...
33623362 STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}無法購買公司...
33633363 STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}無法建造公司總部...
3364 STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}無法購買這間�司的股份...
3364 STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}無法購買這間公司的股份...
33653365 STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}無法出售這間公司的股份...
33663366 STR_ERROR_PROTECTED :{WHITE}這間公司才剛成立,還不能交易股票...
33673367
35173517 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}橋樑太接近地面
35183518 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}開始與結束位置必須在同一直線上
35193519 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... 橋樑的兩端應在陸地上
3520 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... 橋樑過長
35203521
35213522 # Tunnel related errors
35223523 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}無法在此挖掘隧道...
36243625 STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}此交通工具將不停靠此車站
36253626
36263627 # Sign related errors
3627 STR_ERROR_TOO_MANY_SIGNS :{WHITE}... 太多標誌了
3628 STR_ERROR_TOO_MANY_SIGNS :{WHITE}... 已有太多標誌
36283629 STR_ERROR_CAN_T_PLACE_SIGN_HERE :{WHITE}不能在這邊放置標誌...
36293630 STR_ERROR_CAN_T_CHANGE_SIGN_NAME :{WHITE}不能修改標誌名稱...
36303631 STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}無法刪除標誌...
1010 ##case tamlanan
1111
1212
13 # $Id: turkish.txt 19446 2010-03-17 22:21:03Z rubidium $
13 # $Id: turkish.txt 19666 2010-04-17 22:39:17Z rubidium $
1414
1515 # This file is part of OpenTTD.
1616 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
229229
230230 STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Pencereyi kapat
231231 STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Pencere başlığı - pencereyi hareket ettirmek için sürükle
232 STR_TOOLTIP_SHADE :{BLACK}Pencereyi gizle - Yalnız başlık çubuğunu göster
232 STR_TOOLTIP_SHADE :{BLACK}Pencereyi gizle - yalnız başlık çubuğunu göster
233233 STR_TOOLTIP_STICKY :{BLACK}'Tüm pencereleri kapat' tuşuyla kapanmasın
234234 STR_TOOLTIP_RESIZE :{BLACK}Pencereyi boyutlandirmak için tıklayıp sürükle
235235 STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Pencere boyutunu büyült/küçült
294294 STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Kaydet, ana menüye dön, çık
295295 STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Haritayı göster
296296 STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Şehir listesini göster
297 STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Sübvansiyonları göster
297 STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Teşvikleri göster
298298 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Şirkete ait istasyonları listele
299299 STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Şirketin ekonomik durumunu göster
300300 STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Şirketin genel durumunu göster
303303 STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Yeni fabrika kur veya tüm fabrikaları listele
304304 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Şirkete ait trenleri listele. Ctrl+sol tuş ile grup/araç listesini aç/kapa
305305 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Şirkete ait karayolu taşıtlarını listele. Ctrl-tık grup/araç listesini açıp kapatır
306 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Şirkete ait gemileri listele
307 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}Şirkete ait uçakları listele
306 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Şirkete ait gemileri listele. Ctrl+Tık grup/araç listesini açar/kapatır
307 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}Şirkete ait uçakları listele. Ctrl+Tık grup/araç listesini açar/kapatır
308308 STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Yakınlaş
309309 STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Uzaklaş
310310 STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Tren rayı yapımı
314314 STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Arazi düzenleme araç çubuğunu aç (ağaç dikme, alçaltma/yükseltme vb. için).
315315 STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Ses/müzik penceresini göster
316316 STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Son mesajı/haberi göster, mesaj ayarlarını göster
317 STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Arazi bilgisi
317 STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Arazi bilgisi, konsol, YZ hata ayıklama, ekran görüntüsü yakalama, OpenTTD hakkında
318318 STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Araç çubuklarını değiştir
319319
320320 # Extra tooltips for the scenario editor toolbar
374374 ############ end of the 'Town' dropdown
375375
376376 ############ range for subsidies menu starts
377 STR_SUBSIDIES_MENU_SUBSIDIES :Sübvansiyonlar
377 STR_SUBSIDIES_MENU_SUBSIDIES :Teşvikler
378378 ############ range ends here
379379
380380 ############ range for graph menu starts
392392 ############ range ends here
393393
394394 ############ range for industry menu starts
395 STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY :Fabrika Listesi
395 STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY :Fabrika listesi
396396 STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Yeni fabrika kur
397397 ############ range ends here
398398
399399 ############ range for railway construction menu starts
400400 STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Demiryolu yapımı
401 STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Elektrikli Ray Yapımı
401 STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Elektrikli ray yapımı
402402 STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Monoray yapımı
403403 STR_RAIL_MENU_MAGLEV_CONSTRUCTION :MagLev yapımı
404404 ############ range ends here
435435 ############ range for about menu starts
436436 STR_ABOUT_MENU_LAND_BLOCK_INFO :Arazi bilgisi
437437 STR_ABOUT_MENU_SEPARATOR :
438 STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsol Aç/Kapa
439 STR_ABOUT_MENU_AI_DEBUG :YZ Hata Ayıklama
438 STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsol aç/kapa
439 STR_ABOUT_MENU_AI_DEBUG :YZ hata ayıklama
440440 STR_ABOUT_MENU_SCREENSHOT :Ekran Görüntüsü (Ctrl-S)
441 STR_ABOUT_MENU_GIANT_SCREENSHOT :Dev Ekran Görüntüsü (Ctrl-G)
441 STR_ABOUT_MENU_GIANT_SCREENSHOT :Dev ekran görüntüsü (Ctrl-G)
442442 STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD' Hakkında
443443 ############ range ends here
444444
561561 STR_PERFORMANCE_DETAIL_LOAN :{BLACK}Kredi:
562562 STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Toplam:
563563 ############ End of order list
564 STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Araç sayısı; araba, tren uçak ve gemiler dahil
565 STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}İstasyon parçaları. Tek bir istasyon halinde olsa bile istasyonun her parçasi ayri olarak sayılir (ör: tren istasyonu, otobüs durağı, havalimanı)
564 STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Geçen yıl kar eden araç sayısı. Araba, tren, uçak ve gemileri kapsar
565 STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Yakın zamanda hizmet almış istasyon parçaları. Tek bir istasyon halinde olsa bile istasyonun her parçası ayrı olarak sayılır (ör: tren istasyonu, otobüs durağı, havalimanı)
566566 STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}En az gelirli aracın kârı (Sadece 2 yıldan yaşlı araçlar için)
567 STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Son 12 çeyrekte en az kârlı aydaki gelir
567 STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Son 12 çeyrek içindeki en az kârlı çeyrekteki gelir
568568 STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Son 12 çeyreğin en kârlı olanında kazanılan para
569569 STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}Son 4 çeyrekte taşınan kargo miktar
570570 STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}Son çeyrekte taşınan farkli kargo türleri
688688 STR_SMALLMAP_LEGENDA_SNOW :{TINYFONT}{BLACK}Karlı
689689
690690 STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}Harita üzerinde şehir isimlerini göster/gizle
691 STR_SMALLMAP_CENTER :{BLACK}Küçük haritayı burada ortala
691 STR_SMALLMAP_CENTER :{BLACK}Küçük haritayı mevcut konumda ortala
692692 STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRING} ({NUM})
693693 STR_SMALLMAP_TOWN :{TINYFONT}{WHITE}{TOWN}
694694 STR_SMALLMAP_DISABLE_ALL :{BLACK}Hepsini kapa
733733 STR_NEWS_MESSAGE_TYPE_ADVICE_INFORMATION_ON_COMPANY :{YELLOW}Şirketin araçları hakkında tavsiye / bilgi
734734 STR_NEWS_MESSAGE_TYPE_NEW_VEHICLES :{YELLOW}Yeni araçlar
735735 STR_NEWS_MESSAGE_TYPE_CHANGES_OF_CARGO_ACCEPTANCE :{YELLOW}Kargo isteğindeki değişiklikler
736 STR_NEWS_MESSAGE_TYPE_SUBSIDIES :{YELLOW}Sübvansiyonlar
736 STR_NEWS_MESSAGE_TYPE_SUBSIDIES :{YELLOW}Teşvikler
737737 STR_NEWS_MESSAGE_TYPE_GENERAL_INFORMATION :{YELLOW}Genel bilgi
738738
739739 STR_NEWS_FIRST_TRAIN_ARRIVAL :{BIGFONT}{BLACK}Kutlama Yapıldı . . .{} {STATION} istasyonuna ilk kez tren geldi!
748748 STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIGFONT}{BLACK}Trafik kazasi!{}Trenle çarpisan aracın soförü feci şekilde can verdi
749749 STR_NEWS_ROAD_VEHICLE_CRASH :{BIGFONT}{BLACK}Trafik kazasi!{}{COMMA} kişi patlamadan kurtulamadı
750750 STR_NEWS_AIRCRAFT_CRASH :{BIGFONT}{BLACK}Uçak Kazasi!{}{COMMA} ölü var - {STATION}
751 STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIGFONT}{BLACK}Uçak Kazasi!{}Benzin yetmedi, {COMMA} kisi öldü!
751 STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIGFONT}{BLACK}Uçak Kazası!{}Uçağın havada yakıtı bitti, {COMMA} kişi hayatını kaybetti
752752
753753 STR_NEWS_DISASTER_ZEPPELIN :{BIGFONT}{BLACK}Zeplin düştü - {STATION}!
754754 STR_NEWS_DISASTER_SMALL_UFO :{BIGFONT}{BLACK}UFO'yla çarpışan araba parçalandı!
786786 STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIGFONT}{BLACK}{INDUSTRY}nde yeni kömür tabakasi bulundu!{} Üretimin ikiye katlanması bekleniyor!
787787 STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL :{BIGFONT}{BLACK}{INDUSTRY}nda yeni petrol rezervi bulundu!{} Üretimin ikiye katlanması bekleniyor!
788788 STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM :{BIGFONT}{BLACK}{INDUSTRY}ndeki yeni tarim tekniklerinin üretimi ikiye katlamasi bekleniyor!
789 STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_SMOOTH :{1:INDUSTRY}'nin {BIGFONT}{BLACK}{0:STRING} üretimi %{2:COMMA} arttı!
789 STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_SMOOTH :{BIGFONT}{1:INDUSTRY}'nin {BLACK}{0:STRING} üretimi %{2:COMMA} arttı!
790790 STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL :{BIGFONT}{BLACK}{INDUSTRY} üretimi %50 düşürdü
791791 STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIGFONT}{BLACK}{INDUSTRY} bölgesine böcek sürüsü girdi !{} Üretim %50 düştü
792 STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{1:INDUSTRY}'nin {BIGFONT}{BLACK}{0:STRING} üretimi %{2:COMMA} azaldı!
792 STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{BIGFONT}{1:INDUSTRY}'nin {BLACK}{0:STRING} üretimi %{2:COMMA} azaldı!
793793
794794 STR_NEWS_TRAIN_IS_WAITING :{WHITE}{VEHICLE} garajda bekliyor
795795 STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE} garajda bekliyor
823823 STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} artık {STRING} istiyor
824824 STR_NEWS_STATION_NOW_ACCEPTS_CARGO_AND_CARGO :{WHITE}{STATION} artık {STRING} ve {STRING} istiyor
825825
826 STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED :{BIGFONT}{BLACK}Sübvansiyon zamanı doldu: {}{}{STRING} {STRING} -> {STRING} artık fazla gelir getirmeyecek.
827 STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE :{BIGFONT}{BLACK}Sübvansiyon geri çekildi:{}{}{STRING} servisi {STRING} -> {STRING} arasında fazla gelir getirmeyecek.
828 STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIGFONT}{BLACK}Servis ihalesi önerildi: {}{} ilk {STRING} servisi {STRING} -> {STRING} arasında belediyeden prim alacak!
829 STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF :{BIGFONT}{BLACK}Sübvansiyon {STRING} şirketine verildi!{}{}{STRING} servisi {STRING} -> {STRING} aralığında bir yıl boyunca %50 fazla gelir sağlayacak!
830 STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE :{BIGFONT}{BLACK}Sübvansiyon {STRING} şirketine verildi!{}{}{STRING} servisi {STRING} -> {STRING} aralığında bir yıl boyunca iki kat fazla gelir sağlayacak!
831 STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIGFONT}{BLACK}Sübvansiyon {STRING} şirketine verildi!{}{}{STRING} servisi {STRING} -> {STRING} aralığında bir yıl boyunca üç kat fazla gelir sağlayacak!
832 STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE :{BIGFONT}{BLACK}Sübvansiyon {STRING} şirketine verildi!{}{}{STRING} servisi {STRING} -> {STRING} aralığında bir yıl boyunca dört kat fazla gelir sağlayacak!
826 STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED :{BIGFONT}{BLACK}Teşvik önerisinin süresi doldu: {}{}{STRING} {STRING} -> {STRING} artık teşvik almayacak.
827 STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE :{BIGFONT}{BLACK}Teşvik geri çekildi:{}{}{1:STRING} -> {2:STRING} arasındaki {0:STRING} taşıma hizmeti artık teşvik almayacak.
828 STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIGFONT}{BLACK}Hizmet teşviği önerildi: {}{} {1:STRING} -> {2:STRING} arası ilk {0:STRING} taşıma hizmeti belediyeden teşvik alacak!
829 STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF :{BIGFONT}{BLACK}Hizmet teşviği {0:STRING} şirketine verildi!{}{}{2:STRING} -> {3:STRING} arasındaki {1:STRING} taşıma hizmeti bir yıl boyunca %50 fazla gelir sağlayacak!
830 STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE :{BIGFONT}{BLACK}Hizmet teşviği {0:STRING} şirketine verildi!{}{}{2:STRING} -> {3:STRING} arasındaki {1:STRING} taşıma hizmeti bir yıl boyunca iki kat fazla gelir sağlayacak!
831 STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIGFONT}{BLACK}Hizmet teşviği {0:STRING} şirketine verildi!{}{}{2:STRING} -> {3:STRING} arasındaki {1:STRING} taşıma hizmeti bir yıl boyunca üç kat fazla gelir sağlayacak!
832 STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE :{BIGFONT}{BLACK}Hizmet teşviği {0:STRING} şirketine verildi!{}{}{2:STRING} -> {3:STRING} arasındaki {1:STRING} taşıma hizmeti bir yıl boyunca dört kat fazla gelir sağlayacak!
833833
834834 STR_NEWS_ROAD_REBUILDING :{BIGFONT}{BLACK} {TOWN} şehrinde trafik durdu!{}{} {STRING} şirketinin yol yapım çalışmaları başladı!
835835
10031003 STR_DIFFICULTY_LEVEL_SETTING_VEHICLE_RUNNING_COSTS :{LTBLUE}Bakım ücretleri: {ORANGE}{STRING}
10041004 STR_DIFFICULTY_LEVEL_SETTING_CONSTRUCTION_SPEED_OF_COMPETITOR :{LTBLUE}Rakip inşa hızı: {ORANGE}{STRING}
10051005 STR_DIFFICULTY_LEVEL_SETTING_VEHICLE_BREAKDOWNS :{LTBLUE}Araç bozulmaları: {ORANGE}{STRING}
1006 STR_DIFFICULTY_LEVEL_SETTING_SUBSIDY_MULTIPLIER :{LTBLUE}İhale çarpanı: {ORANGE}{STRING}
1006 STR_DIFFICULTY_LEVEL_SETTING_SUBSIDY_MULTIPLIER :{LTBLUE}Teşvik çarpanı: {ORANGE}{STRING}
10071007 STR_DIFFICULTY_LEVEL_SETTING_COST_OF_CONSTRUCTION :{LTBLUE}İnşa fiyatları: {ORANGE}{STRING}
10081008 STR_DIFFICULTY_LEVEL_SETTING_TERRAIN_TYPE :{LTBLUE}Yer tipi: {ORANGE}{STRING}
10091009 STR_DIFFICULTY_LEVEL_SETTING_QUANTITY_OF_SEA_LAKES :{LTBLUE}Su miktarı: {ORANGE}{STRING}
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :diğer fabrikalar gibi
10991099 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :tetkik aramayla
11001100 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Bir şehirde birden fazla aynı fabrika olması izinli: {ORANGE}{STRING}
1101 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Aynı tür fabrikalar yan yana yapılabilir: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Durum çubuğunda uzun tarih göster: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Sinyalizasyon sürüş yönünde olsun: {ORANGE}{STRING}
11041103 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Sene sonunda ekonomik durumu göster: {ORANGE}{STRING}
13491348 STR_INTRO_AI_SETTINGS :{BLACK}YZ Ayarları
13501349 STR_INTRO_QUIT :{BLACK}Çıkış
13511350
1352 STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Yeni oyuna başla
1351 STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Yeni oyuna başla. Ctrl+Click harita ayarlamasını atlar.
13531352 STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Oyun yükle
13541353 STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Yükseklik haritasını kullanarak yeni oyun başlat
13551354 STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Özel bir senaryo kullanarak yeni oyun başlat
1356 STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Kendi dünyani/senoryonu yarat
1355 STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Kendi dünyanı/senaryonu yarat
13571356 STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}Çok oyunculu oyun başlat
13581357
13591358 STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}'ılıman' yer stilini seç
14631462 STR_FACE_SIMPLE_TOOLTIP :{BLACK}Basit yüz seçimi.
14641463 STR_FACE_LOAD :{BLACK}Yükle
14651464 STR_FACE_LOAD_TOOLTIP :{BLACK}Tercih edilen yüzü yükle
1466 STR_FACE_LOAD_DONE :{WHITE}Tercih edilen yüz OpenTTD ayar dosyasından yüklendi.
1465 STR_FACE_LOAD_DONE :{WHITE}Tercih edilen yüz OpenTTD ayar dosyasından yüklendi
14671466 STR_FACE_FACECODE :{BLACK}Oyuncu yüzü no.
14681467 STR_FACE_FACECODE_TOOLTIP :{BLACK}Oyuncu suratının numarasını göster/değiştir
14691468 STR_FACE_FACECODE_CAPTION :{WHITE}Oyuncu suratının numarasını göster/değiştir
14711470 STR_FACE_FACECODE_ERR :{WHITE}Oyuncu surat numarası ayarlanamadı - 0 ve 4.294.967.295 arasında bir sayı olmalı!
14721471 STR_FACE_SAVE :{BLACK}Kaydet
14731472 STR_FACE_SAVE_TOOLTIP :{BLACK}Tercih edilen yüzü kaydet
1474 STR_FACE_SAVE_DONE :{WHITE}Bu surat OpenTTD ayar dosyasına kaydedilecek.
1473 STR_FACE_SAVE_DONE :{WHITE}Bu yüz OpenTTD ayar dosyasına favoriniz olarak kaydedilecek
14751474 STR_FACE_EUROPEAN :{BLACK}Avrupalı
1476 STR_FACE_SELECT_EUROPEAN :{BLACK}Beyaz yüz seç
1475 STR_FACE_SELECT_EUROPEAN :{BLACK}Avrupalı yüz seç
14771476 STR_FACE_AFRICAN :{BLACK}Afrikalı
14781477 STR_FACE_SELECT_AFRICAN :{BLACK}Siyah yüz seç
14791478 STR_FACE_YES :Evet
15331532 STR_NETWORK_SERVER_LIST_GAME_INFO :{SILVER}OYUN BİLGİSİ
15341533 STR_NETWORK_SERVER_LIST_CLIENTS :{SILVER}İstemciler: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
15351534 STR_NETWORK_SERVER_LIST_LANGUAGE :{SILVER}Dil: {WHITE}{STRING}
1536 STR_NETWORK_SERVER_LIST_LANDSCAPE :{SILVER}Set: {WHITE}{STRING}
1535 STR_NETWORK_SERVER_LIST_LANDSCAPE :{SILVER}Yer yüzü: {WHITE}{STRING}
15371536 STR_NETWORK_SERVER_LIST_MAP_SIZE :{SILVER}Harita boyutu: {WHITE}{COMMA}x{COMMA}
15381537 STR_NETWORK_SERVER_LIST_SERVER_VERSION :{SILVER}Sunucu sürümü: {WHITE}{STRING}
15391538 STR_NETWORK_SERVER_LIST_SERVER_ADDRESS :{SILVER}Sunucu adresi: {WHITE}{STRING}
18091808 STR_CONTENT_DETAIL_SUBTITLE_AUTOSELECTED :{SILVER}Bu bağımlılık indirilmek üzere seçildi
18101809 STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}Bu zaten var
18111810 STR_CONTENT_DETAIL_SUBTITLE_DOES_NOT_EXIST :{SILVER}Bu içerik bilinmiyor ve OpenTTD'ye indirilemez
1812 STR_CONTENT_DETAIL_UPDATE :{SILVER}Bu mevcut {STRING} için bir yenilemedir
1811 STR_CONTENT_DETAIL_UPDATE :{SILVER}Bu, mevcut {STRING} için bir yenilemedir
18131812 STR_CONTENT_DETAIL_NAME :{SILVER}Ad: {WHITE}{STRING}
18141813 STR_CONTENT_DETAIL_VERSION :{SILVER}Sürüm: {WHITE}{STRING}
18151814 STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}Tanım: {WHITE}{STRING}
19221921 STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Blok Sinyali (semafor){}Bu en temel sinyal tipidir, bir blok içinde aynı anda yalnız bir tren bulunmasına izin verir.
19231922 STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Giriş-Sinyali (semafor){}Yolun devam eden bölümünde en az bir yeşil çıkış sinyali olduğu sürece yeşil yanar. Aksi halde kırmızı yanar.
19241923 STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Çıkış Sinyali (semafor){}Blok sinyali ile aynı şekilde çalışır ancak giriş ve karışık ön sinyaller ile doğru rengi tetiklemek gerekmektedir.
1925 STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Karışık Sinyal (semafor){}Karışık sinyal hem giriş hem de çıkış sinyali gibi davranır. Bu büyük ön sinyal "ağaçları" yapmanızı sağlar.
1924 STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Karışık Sinyal (semafor){}Karışık sinyal hem giriş hem de çıkış sinyali gibi davranır. Bu şekilde büyük ön sinyal "ağaçları" yapabilirsiniz
19261925 STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Yol Sinyali (semafor){}Yol sinyali, gelen tren güvenli bir durma noktasına yol ayırabiliyor ise bir sinyal bloğuna aynı anda birden fazla trenin girmesine izin verir. Standart yol sinyalleri arka taraftan geçişe izin verir.
19271926 STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Tek Yön Yol Sinyali (semafor){}Yol sinyali, gelen tren güvenli bir durma noktasına yol ayırabiliyor ise bir sinyal bloğuna aynı anda birden fazla trenin girmesine izin verir. Tek yön yol sinyalleri arka taraftan geçişe izin vermez.
19281927 STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Blok Sinyali (elektrikli){}En temel sinyal tipidir, bir blok içinde aynı anda yalnız bir tren bulunmasına izin verir.
19291928 STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Giriş-Sinyali (elektrikli){}Yolun devam eden bölümünde en az bir yeşil çıkış sinyali olduğu sürece yeşil yanar. Aksi halde kırmızı yanar.
19301929 STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Çıkış Sinyali (elektrikli){}Blok sinyali ile aynı şekilde çalışır ancak giriş ve karışık ön sinyaller ile doğru rengi tetiklemek gerekmektedir.
1931 STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Karışık Sinyal (elektrikli){}Karışık sinyal hem giriş hem de çıkış sinyali gibi davranır. Bu büyük ön sinyal "ağaçları" yapmanızı sağlar.
1930 STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Karışık Sinyal (elektrikli){}Karışık sinyal hem giriş hem de çıkış sinyali gibi davranır. Bu şekilde büyük ön sinyal "ağaçları" yapabilirsiniz.
19321931 STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Yol Sinyali (elektrikli){}Yol sinyali, gelen tren güvenli bir durma noktasına yol ayırabiliyor ise bir sinyal bloğuna aynı anda birden fazla trenin girmesine izin verir. Standart yol sinyalleri arka taraftan geçişe izin verir.
19331932 STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Tek Yön Yol Sinyali (elektrikli){}Yol sinyali, gelen tren güvenli bir durma noktasına yol ayırabiliyor ise bir sinyal bloğuna aynı anda birden fazla trenin girmesine izin verir. Tek yön yol sinyalleri arka taraftan geçişe izin vermez.
19341933 STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Sinyal Dönüştür{}Seçildiğinde, tıklama var olan sinyali seçili sinyal tür ve alt türüne çevirir, CTRL ile tıklama mevcut alt türü değiştirir.
19391938 # Bridge selection window
19401939 STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Tren Köprüsü Seç
19411940 STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Köprü Seç
1942 STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Köprü seçimi - yapacağınız köprüyü seçin
1941 STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Köprü seçimi - tercih ettiğiniz köprüyü yapmak için tıklayın
19431942 STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
19441943 STR_BRIDGE_NAME_SUSPENSION_STEEL :Çelik, Asma
19451944 STR_BRIDGE_NAME_GIRDER_STEEL :Çelik, Kirişli
21142113 STR_LAND_AREA_INFORMATION_OWNER :{BLACK}Sahibi: {LTBLUE}{STRING}
21152114 STR_LAND_AREA_INFORMATION_ROAD_OWNER :{BLACK}Yolun sahibi: {LTBLUE}{STRING}
21162115 STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Tramvayın sahibi: {LTBLUE}{STRING}
2117 STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Demiryolunun sahibi: {LTBLUE}{STRING}
2116 STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Demiryolu sahibi: {LTBLUE}{STRING}
21182117 STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Belediyesi: {LTBLUE}{STRING}
21192118 STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :Hiçbiri
21202119 STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}Koordinatlar: {LTBLUE}{NUM}x{NUM}x{NUM} ({STRING})
21242123 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21252124 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}İstenen: {LTBLUE}
21262125 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2126 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Ray hız sınırı: {LTBLUE}{VELOCITY}
21272127
21282128 # Description of land area of different tiles
21292129 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Kayalar
21592159 STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Tren garı
21602160
21612161 STR_LAI_ROAD_DESCRIPTION_ROAD :Yol
2162 STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Lambali yol
2162 STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Sokak lambalı yol
21632163 STR_LAI_ROAD_DESCRIPTION_TREE_LINED_ROAD :Ağaçli yol
21642164 STR_LAI_ROAD_DESCRIPTION_ROAD_VEHICLE_DEPOT :Araba garı
21652165 STR_LAI_ROAD_DESCRIPTION_ROAD_RAIL_LEVEL_CROSSING :Hemzemin geçit
23782378
23792379 # NewGRF related 'general' warnings
23802380 STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Uyarı!
2381 STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Çalışan bir oyunu değiştirmek üzeresiniz; bu OpenTTD'yi çökertebilir.{}Emin misiniz?
2381 STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Çalışan bir oyunu değiştirmek üzeresiniz. Bu OpenTTD'yi çökertebilir.{}Bundan kesinlikle emin misiniz?
23822382
23832383 STR_NEWGRF_DUPLICATE_GRFID :{WHITE}Dosya eklenemiyor: GRF ID çakışması
23842384 STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Eşleşen dosya bulunamadı (uyumlu GRF yüklendi)
24652465 STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Yakalanma riskini göze alarak belediyeye rüşvet ver.{} Fiyat: {CURRENCY}
24662466
24672467 # Subsidies window
2468 STR_SUBSIDIES_CAPTION :{WHITE}Sübvansiyonlar
2469 STR_SUBSIDIES_OFFERED_TITLE :{BLACK}Teklif edilmiş sübvansiyonlar:
2468 STR_SUBSIDIES_CAPTION :{WHITE}Teşvikler
2469 STR_SUBSIDIES_OFFERED_TITLE :{BLACK}Teklif edilmiş teşvikler:
24702470 STR_SUBSIDIES_OFFERED_FROM_TO :{ORANGE}{STRING} {STRING} -> {STRING}{YELLOW} ({DATE_SHORT} tarihinden itibaren)
24712471 STR_SUBSIDIES_NONE :{ORANGE}Yok
2472 STR_SUBSIDIES_SUBSIDISED_TITLE :{BLACK}Verilen sübvansiyonlar:
2472 STR_SUBSIDIES_SUBSIDISED_TITLE :{BLACK}Teşvik almakta olan hizmetler:
24732473 STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING} {STRING} -> {STRING}{YELLOW} ({COMPANY}{YELLOW}, {DATE_SHORT} tarihine kadar)
24742474 STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Görüntüyü ortalamak için servisi tıklayın
24752475
25362536 STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}İnşaat
25372537 STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}Yeni araçlar
25382538 STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}Tren Bakımları
2539 STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Araba Bakımları
2539 STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Kara Taşıtı Çalıştırma Giderleri
25402540 STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}Uçak Bakımları
25412541 STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}Gemi Bakımları
25422542 STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}İnşaat bakımları
29032903 STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Gemi ayrıntılarını göster
29042904 STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Uçak ayrıntılarını göster
29052905
2906 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Tren durumu - treni durdurmak/başlatmak için buraya tıklayın
2907 STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Aracın durumu - durdurmak/başlatmak için tıklayın
2908 STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Geminin durumu - durdurmak/başlatmak için buraya tıkla
2909 STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Uçağın durumu - uçağı durdurmak/başlatmak için tıkla
2906 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Trenin mevcut hareketi - treni durdurmak/başlatmak için buraya tıklayın. Hedefe gitmek için CTRL+Tıkla
2907 STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Aracın mevcut hareketi - durdurmak/başlatmak için tıklayın. Hedefe gitmek için CTRL+Tıkla
2908 STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Geminin mevcut hareketi - durdurmak/başlatmak için buraya tıkla. Hedefe gitmek için CTRL+Tıkla
2909 STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Uçağın durumu - uçağı durdurmak/başlatmak için tıkla. Ctrl+Tık ile hedefe git
29102910
29112911 # Messages in the start stop button in the vehicle view
29122912 STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Yükleme / Boşaltma
35183518 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Köprü bu arazi için çok alçakta
35193519 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Başlangıç ve bitiş aynı çizgi üzerinde olmalı
35203520 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... köprünün her iki ucu da karada olmalı
3521 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... köprü çok uzun
35213522
35223523 # Tunnel related errors
35233524 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Buraya tünel yapılamaz...
1111 ##case r d z
1212
1313
14 # $Id: ukrainian.txt 19411 2010-03-13 18:47:58Z rubidium $
14 # $Id: ukrainian.txt 19666 2010-04-17 22:39:17Z rubidium $
1515
1616 # This file is part of OpenTTD.
1717 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
915915 STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIGFONT}{BLACK}Нашестя саранчі призвело до спустошення на {INDUSTRY}!{}Виробництво впало на 50%
916916 STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{BIGFONT}{BLACK}{1:INDUSTRY}: Виробництво {0:STRING.r} впало на {2:COMMA}%!
917917
918 STR_NEWS_TRAIN_IS_WAITING :{WHITE}{VEHICLE} чакає в депо
919 STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE} чакає в депо
920 STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} чакає в депо
921 STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} чакає в ангарі
918 STR_NEWS_TRAIN_IS_WAITING :{WHITE}{VEHICLE} чекає в депо
919 STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE} чекає в депо
920 STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} чекає в депо
921 STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} чекає в ангарі
922922
923923 # Start of order review system.
924924 # DON'T ADD OR REMOVE LINES HERE
12221222 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :як інша промисловість
12231223 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :перспективний
12241224 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Подібна промисловість в одному місті: {ORANGE}{STRING}
1225 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Будувати промисловість однакового типу поруч: {ORANGE}{STRING}
12261225 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Завжди показувати повну дату в рядку стану: {ORANGE}{STRING}
12271226 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Показувати сигнали за напрямом руху: {ORANGE}{STRING}
12281227 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Показувати вікно фінансів в кінці року: {ORANGE}{STRING}
22482247 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
22492248 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Приймає: {LTBLUE}
22502249 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2250 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Ліміт швидкості залізниці: {LTBLUE}{VELOCITY}
22512251
22522252 # Description of land area of different tiles
22532253 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Каміння
27382738 STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Показати підприємство у центрі екрану. Утримання Ctrl відкриє нове вікно з видом підприємства
27392739
27402740 ############ range for requires starts
2741 STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Потребує: {YELLOW}{STRING}{STRING}
2742 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Потребує: {YELLOW}{STRING}{STRING}, {STRING}{STRING}
2743 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Потребує: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
2741 STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Потребує: {YELLOW}{STRING.z}{STRING.z}
2742 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Потребує: {YELLOW}{STRING.z}{STRING.z}, {STRING.z}{STRING.z}
2743 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Потребує: {YELLOW}{STRING.z}{STRING.z}, {STRING.z}{STRING.z}, {STRING.z}{STRING.z}
27442744 ############ range for requires ends
27452745
27462746 ############ range for produces starts
36423642 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Міст дуже низький для цього місця
36433643 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Початок та кінець мають бути на одній лінії
36443644 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... обидва кінці мосту мають бути на землі
3645 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... міст надто довгий
36453646
36463647 # Tunnel related errors
36473648 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Неможливо збудувати тунель...
42704271 STR_LORRY :{BLACK}{LORRY}
42714272 STR_PLANE :{BLACK}{PLANE}
42724273 STR_SHIP :{BLACK}{SHIP}
4274
4275 STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
99 ##grflangid 0x32
1010
1111
12 # $Id: frisian.txt 19446 2010-03-17 22:21:03Z rubidium $
12 # $Id: frisian.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
285285 STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Lit grafyken sjen
286286 STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Lit de bedriuwskompetysjetabel sjen
287287 STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Betelje de bou fan in nije yndustry
288 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Lit in list sjen fan de treinen fan dit bedriuw
289 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Lit in list sjen fan de auto's fan dit bedriuw
290 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Lit in list sjen fan de skepen fan dit bedriuw
288 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Lit in list sjen fan de treinen fan dit bedriuw. Ctrl + klik ipent of slût de groep/fiertúg list sjen
289 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Lit in list sjen fan de auto's fan dit bedriuw. Ctrl + klik ipent of slût de groep/fiertúg list sjen
290 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Lit in list sjen fan de skepen fan dit bedriuw. Ctrl + klik ipent of slût de groep/fiertúg list sjen
291291 STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}Lit in list sjen fan de fleantúgen fan dit bedriuw.
292292 STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Zoom it byld yn
293293 STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Zoom it byld út
957957 STR_INTRO_DIFFICULTY :{BLACK}Moeilikhyd ({STRING})
958958 STR_INTRO_QUIT :{BLACK}Ôfslúte
959959
960 STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Begjin in nei spul
960 STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Begjin in nei spul. Ctrl + klik slaat kaartynstelling oer
961961 STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Laad in opslein spul
962962 STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Begjin in nij spul, mei de hichtekaart as lânskip
963963 STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Start in nei spul, mei in selsmakke lânskip
99 ##grflangid 0x42
1010
1111
12 # $Id: thai.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: thai.txt 19555 2010-04-03 20:19:26Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10491049 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :ไม่เลย
10501050 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :ตามอุตสาหกรรมอื่นๆ
10511051 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}อนุญาตให้มีหลายอุตสาหกรรมต่อหนึ่งเมือง: {ORANGE}{STRING}
1052 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}อุตสาหกรรมชนิดเดียวกันสามารถสร้างใกล้กันได้: {ORANGE}{STRING}
10531052 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}แสดงวันที่แบบยาวบนแถบสถานะเสมอ: {ORANGE}{STRING}
10541053 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}แสดงสัญญาณบนฝั่งถนนมีการขับ: {ORANGE}{STRING}
10551054 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}แสดงหน้าต่างการเงินเมื่อสิ้นสุดแต่ละปี: {ORANGE}{STRING}
99 ##grflangid 0x54
1010
1111
12 # $Id: vietnamese.txt 19446 2010-03-17 22:21:03Z rubidium $
12 # $Id: vietnamese.txt 19666 2010-04-17 22:39:17Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10971097 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :như nhà máy khác
10981098 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :hứa hẹn
10991099 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Cho phép nhiều nhà máy tương tự nhau trong mỗi đô thị: {ORANGE}{STRING}
1100 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Nhà máy cùng kiểu có thể xây sát nhau: {ORANGE}{STRING}
11011100 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Luôn luôn hiện ngày tháng đầy đủ trên thanh trạng thái: {ORANGE}{STRING}
11021101 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Hiển thị tín hiệu cùng phía làn đường: {ORANGE}{STRING}
11031102 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Hiện bảng tài chính vào cuối năm: {ORANGE}{STRING}
17671766 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_1 :Game đang dừng ({STRING})
17681767 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Game đang dừng ({STRING}, {STRING})
17691768 STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Game vẫn đang dừng ({STRING}, {STRING}, {STRING})
1770 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Bỏ tạm dừng game ({STRING})
1769 STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Game được tiếp tục ({STRING})
17711770 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :không đủ người chơi
17721771 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :máy trạm kết nối đến
17731772 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :tự chọn
21232122 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
21242123 STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Hàng hoá chấp nhận: {LTBLUE}
21252124 STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
2125 STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Giới hạn tốc độ đường ray: {LTBLUE}{VELOCITY}
21262126
21272127 # Description of land area of different tiles
21282128 STR_LAI_CLEAR_DESCRIPTION_ROCKS :Đá
35173517 STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Cầu thấp quá so với mặt đất
35183518 STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Điểu đầu và cuối phải trên 1 đường thẳng
35193519 STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... hai đầu cầu phải được gá vào đất
3520 STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... cầu quá dài
35203521
35213522 # Tunnel related errors
35223523 STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Không thể đào hầm ở đây...
99 ##grflangid 0x0f
1010
1111
12 # $Id: welsh.txt 19411 2010-03-13 18:47:58Z rubidium $
12 # $Id: welsh.txt 19555 2010-04-03 20:19:26Z rubidium $
1313
1414 # This file is part of OpenTTD.
1515 # OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
10661066 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :fel diwydiannau eraill
10671067 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :chwilio am adnoddau crai
10681068 STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Caniatáu nifer o ddiwydiannau bach i bob tref: {ORANGE}{STRING}
1069 STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Gall diwydiannau o'r un math gael eu hadeiladu'n agos i'w gilydd: {ORANGE}{STRING}
10701069 STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Dangos y dyddiad hir yn y bar statws drwy'r amser: {ORANGE}{STRING}
10711070 STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Dangos signalau ar yr ochr yrru: {ORANGE}{STRING}
10721071 STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Dangos y ffenestr gyllid ar ddechrau'r flwyddyn: {ORANGE}{STRING}
0 /* $Id: livery.h 17248 2009-08-21 20:21:05Z rubidium $ */
0 /* $Id: livery.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
5454 };
5555
5656 DECLARE_POSTFIX_INCREMENT(LiveryScheme);
57 template <> struct EnumPropsT<LiveryScheme> : MakeEnumPropsT<LiveryScheme, byte, LS_BEGIN, LS_END, LS_END, 8> {};
5758
5859 /* List of different livery classes, used only by the livery GUI. */
5960 enum LiveryClass {
0 /* $Id: misc_cmd.cpp 18732 2010-01-05 17:11:56Z rubidium $ */
0 /* $Id: misc_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
9696 loan -= loan % LOAN_INTERVAL;
9797 break;
9898 case 2: // Repay the given amount of loan
99 if ((p1 % LOAN_INTERVAL != 0) || ((int32)p1 < LOAN_INTERVAL)) return CMD_ERROR; // Invalid amount to loan
99 if (p1 % LOAN_INTERVAL != 0 || (int32)p1 < LOAN_INTERVAL || p1 > c->current_loan) return CMD_ERROR; // Invalid amount to loan
100100 loan = p1;
101101 break;
102102 }
0 /* $Id: misc_gui.cpp 19439 2010-03-16 20:54:26Z rubidium $ */
0 /* $Id: misc_gui.cpp 19551 2010-04-03 19:48:01Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
156156
157157 td.station_class = STR_NULL;
158158 td.station_name = STR_NULL;
159 td.rail_speed = 0;
159160
160161 td.grf = NULL;
161162
239240 if (td.station_name != STR_NULL) {
240241 SetDParam(0, td.station_name);
241242 GetString(this->landinfo_data[line_nr], STR_LAND_AREA_INFORMATION_STATION_TYPE, lastof(this->landinfo_data[line_nr]));
243 line_nr++;
244 }
245
246 /* Rail speed limit */
247 if (td.rail_speed != 0) {
248 SetDParam(0, td.rail_speed);
249 GetString(this->landinfo_data[line_nr], STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT, lastof(this->landinfo_data[line_nr]));
242250 line_nr++;
243251 }
244252
0 /* $Id: music.cpp 19223 2010-02-23 23:26:37Z rubidium $ */
0 /* $Id: music.cpp 19741 2010-04-30 21:01:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
5656 return BaseMedia<Tbase_set>::used_set != NULL;
5757 }
5858
59 bool MusicSet::FillSetDetails(IniFile *ini, const char *path)
59 bool MusicSet::FillSetDetails(IniFile *ini, const char *path, const char *full_filename)
6060 {
61 bool ret = this->BaseSet<MusicSet, NUM_SONGS_AVAILABLE, GM_DIR>::FillSetDetails(ini, path);
61 bool ret = this->BaseSet<MusicSet, NUM_SONGS_AVAILABLE, GM_DIR>::FillSetDetails(ini, path, full_filename);
6262 if (ret) {
6363 this->num_available = 0;
6464 IniGroup *names = ini->GetGroup("names");
9292 this->num_available++;
9393 }
9494 }
95 return true;
95 return ret;
9696 }
0 /* $Id: tcp_game.h 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: tcp_game.h 19690 2010-04-21 19:20:28Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
3434 PACKET_CLIENT_COMPANY_INFO,
3535 PACKET_SERVER_COMPANY_INFO,
3636 PACKET_SERVER_CLIENT_INFO,
37 PACKET_SERVER_NEED_PASSWORD,
38 PACKET_CLIENT_PASSWORD,
37 PACKET_SERVER_NEED_GAME_PASSWORD,
38 PACKET_SERVER_NEED_COMPANY_PASSWORD,
39 PACKET_CLIENT_GAME_PASSWORD,
40 PACKET_CLIENT_COMPANY_PASSWORD,
3941 PACKET_SERVER_WELCOME,
4042 PACKET_CLIENT_GETMAP,
4143 PACKET_SERVER_WAIT,
7375
7476 /** Status of a client */
7577 enum ClientStatus {
76 STATUS_INACTIVE, ///< The client is not connected nor active
77 STATUS_AUTHORIZING,///< The client is authorizing
78 STATUS_AUTH, ///< The client is authorized
79 STATUS_MAP_WAIT, ///< The client is waiting as someone else is downloading the map
80 STATUS_MAP, ///< The client is downloading the map
81 STATUS_DONE_MAP, ///< The client has downloaded the map
82 STATUS_PRE_ACTIVE, ///< The client is catching up the delayed frames
83 STATUS_ACTIVE, ///< The client is active within in the game
78 STATUS_INACTIVE, ///< The client is not connected nor active
79 STATUS_AUTH_GAME, ///< The client is authorizing with game (server) password
80 STATUS_AUTH_COMPANY, ///< The client is authorizing with company password
81 STATUS_AUTHORIZED, ///< The client is authorized
82 STATUS_MAP_WAIT, ///< The client is waiting as someone else is downloading the map
83 STATUS_MAP, ///< The client is downloading the map
84 STATUS_DONE_MAP, ///< The client has downloaded the map
85 STATUS_PRE_ACTIVE, ///< The client is catching up the delayed frames
86 STATUS_ACTIVE, ///< The client is active within in the game
87 STATUS_END ///< Must ALWAYS be on the end of this list!! (period)
8488 };
8589
8690 class NetworkClientSocket;
0 /* $Id: network.cpp 19376 2010-03-08 22:19:39Z rubidium $ */
0 /* $Id: network.cpp 19624 2010-04-13 21:40:24Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
3434 #include "../rev.h"
3535 #include "../core/pool_func.hpp"
3636 #include "../gfx_func.h"
37 #include "table/strings.h"
38
3739 #ifdef DEBUG_DUMP_COMMANDS
38 #include "../fileio_func.h"
40 #include "../fileio_func.h"
41 /** When running the server till the wait point, run as fast as we can! */
42 bool _ddc_fastforward = true;
3943 #endif /* DEBUG_DUMP_COMMANDS */
40 #include "table/strings.h"
4144
4245 DECLARE_POSTFIX_INCREMENT(ClientID);
4346
248251 SetDParam(2, data);
249252 GetString(message, strid, lastof(message));
250253
251 DEBUG(desync, 1, "msg: %d; %d; %s\n", _date, _date_fract, message);
254 DEBUG(desync, 1, "msg: %08x; %02x; %s", _date, _date_fract, message);
252255 IConsolePrintF(colour, "%s", message);
253256 NetworkAddChatMessage((TextColour)colour, duration, "%s", message);
254257 }
448451 {
449452 const NetworkClientSocket *cs;
450453 FOR_ALL_CLIENT_SOCKETS(cs) {
451 if (cs->status >= STATUS_AUTH && cs->status < STATUS_ACTIVE) return true;
454 if (cs->status >= STATUS_AUTHORIZED && cs->status < STATUS_ACTIVE) return true;
452455 }
453456
454457 return false;
544547 */
545548 if (cs->sock == INVALID_SOCKET) return status;
546549
547 if (status != NETWORK_RECV_STATUS_CONN_LOST && !cs->HasClientQuit() && _network_server && cs->status > STATUS_INACTIVE) {
550 if (status != NETWORK_RECV_STATUS_CONN_LOST && !cs->HasClientQuit() && _network_server && cs->status >= STATUS_AUTHORIZED) {
548551 /* We did not receive a leave message from this client... */
549552 char client_name[NETWORK_CLIENT_NAME_LENGTH];
550553 NetworkClientSocket *new_cs;
555558
556559 /* Inform other clients of this... strange leaving ;) */
557560 FOR_ALL_CLIENT_SOCKETS(new_cs) {
558 if (new_cs->status > STATUS_AUTH && cs != new_cs) {
561 if (new_cs->status > STATUS_AUTHORIZED && cs != new_cs) {
559562 SEND_COMMAND(PACKET_SERVER_ERROR_QUIT)(new_cs, cs->client_id, NETWORK_ERROR_CONNECTION_LOST);
560563 }
561564 }
565568
566569 if (_network_server) {
567570 /* We just lost one client :( */
568 if (cs->status >= STATUS_AUTH) _network_game_info.clients_on--;
571 if (cs->status >= STATUS_AUTHORIZED) _network_game_info.clients_on--;
569572 _network_clients_connected--;
570573
571574 SetWindowDirty(WC_CLIENT_LIST, 0);
10231026 if (_sync_seed_1 != _random.state[0]) {
10241027 #endif
10251028 NetworkError(STR_NETWORK_ERROR_DESYNC);
1026 DEBUG(desync, 1, "sync_err: %d; %d\n", _date, _date_fract);
1029 DEBUG(desync, 1, "sync_err: %08x; %02x", _date, _date_fract);
10271030 DEBUG(net, 0, "Sync error detected!");
10281031 NetworkClientError(NETWORK_RECV_STATUS_DESYNC, NetworkClientSocket::Get(0));
10291032 return false;
10731076 if (!NetworkReceive()) return;
10741077
10751078 if (_network_server) {
1079 /* Log the sync state to check for in-syncedness of replays. */
1080 if (_date_fract == 0) {
1081 /* We don't want to log multiple times if paused. */
1082 static Date last_log;
1083 if (last_log != _date) {
1084 DEBUG(desync, 1, "sync: %08x; %02x; %08x; %08x", _date, _date_fract, _random.state[0], _random.state[1]);
1085 last_log = _date;
1086 }
1087 }
1088
10761089 #ifdef DEBUG_DUMP_COMMANDS
1090 /* Loading of the debug commands from -ddesync>=1 */
10771091 static FILE *f = FioFOpenFile("commands.log", "rb", SAVE_DIR);
10781092 static Date next_date = 0;
10791093 static uint32 next_date_fract;
10801094 static CommandPacket *cp = NULL;
1095 static bool check_sync_state = false;
1096 static uint32 sync_state[2];
10811097 if (f == NULL && next_date == 0) {
1082 printf("Cannot open commands.log\n");
1098 DEBUG(net, 0, "Cannot open commands.log");
10831099 next_date = 1;
10841100 }
10851101
10861102 while (f != NULL && !feof(f)) {
1087 if (cp != NULL && _date == next_date && _date_fract == next_date_fract) {
1088 _current_company = cp->company;
1089 DoCommandP(cp->tile, cp->p1, cp->p2, cp->cmd, NULL, cp->text);
1090 free(cp);
1091 cp = NULL;
1103 if (_date == next_date && _date_fract == next_date_fract) {
1104 if (cp != NULL) {
1105 NetworkSend_Command(cp->tile, cp->p1, cp->p2, cp->cmd & ~CMD_FLAGS_MASK, NULL, cp->text, cp->company);
1106 DEBUG(net, 0, "injecting: %08x; %02x; %02x; %06x; %08x; %08x; %08x; \"%s\" (%s)", _date, _date_fract, (int)_current_company, cp->tile, cp->p1, cp->p2, cp->cmd, cp->text, GetCommandName(cp->cmd));
1107 free(cp);
1108 cp = NULL;
1109 }
1110 if (check_sync_state) {
1111 if (sync_state[0] == _random.state[0] && sync_state[1] == _random.state[1]) {
1112 DEBUG(net, 0, "sync check: %08x; %02x; match", _date, _date_fract);
1113 } else {
1114 DEBUG(net, 0, "sync check: %08x; %02x; mismatch expected {%08x, %08x}, got {%08x, %08x}",
1115 _date, _date_fract, sync_state[0], sync_state[1], _random.state[0], _random.state[1]);
1116 NOT_REACHED();
1117 }
1118 check_sync_state = false;
1119 }
10921120 }
10931121
1094 if (cp != NULL) break;
1122 if (cp != NULL || check_sync_state) break;
10951123
10961124 char buff[4096];
10971125 if (fgets(buff, lengthof(buff), f) == NULL) break;
1098 if (strncmp(buff, "cmd: ", 8) != 0) continue;
1099 cp = MallocT<CommandPacket>(1);
1100 int company;
1101 sscanf(&buff[8], "%d; %d; %d; %d; %d; %d; %d; %s", &next_date, &next_date_fract, &company, &cp->tile, &cp->p1, &cp->p2, &cp->cmd, cp->text);
1102 cp->company = (CompanyID)company;
1126
1127 char *p = buff;
1128 /* Ignore the "[date time] " part of the message */
1129 if (*p == '[') {
1130 p = strchr(p, ']');
1131 if (p == NULL) break;
1132 p += 2;
1133 }
1134
1135 if (strncmp(p, "cmd: ", 5) == 0) {
1136 cp = CallocT<CommandPacket>(1);
1137 int company;
1138 int ret = sscanf(p + 5, "%x; %x; %x; %x; %x; %x; %x; \"%[^\"]\"", &next_date, &next_date_fract, &company, &cp->tile, &cp->p1, &cp->p2, &cp->cmd, cp->text);
1139 /* There are 8 pieces of data to read, however the last is a
1140 * string that might or might not exist. Ignore it if that
1141 * string misses because in 99% of the time it's not used. */
1142 assert(ret == 8 || ret == 7);
1143 cp->company = (CompanyID)company;
1144 } else if (strncmp(p, "join: ", 6) == 0) {
1145 /* Manually insert a pause when joining; this way the client can join at the exact right time. */
1146 int ret = sscanf(p + 6, "%x; %x", &next_date, &next_date_fract);
1147 assert(ret == 2);
1148 DEBUG(net, 0, "injecting pause for join at %08x:%02x; please join when paused", next_date, next_date_fract);
1149 cp = CallocT<CommandPacket>(1);
1150 cp->company = COMPANY_SPECTATOR;
1151 cp->cmd = CMD_PAUSE;
1152 cp->p1 = PM_PAUSED_NORMAL;
1153 cp->p2 = 1;
1154 _ddc_fastforward = false;
1155 } else if (strncmp(p, "sync: ", 6) == 0) {
1156 int ret = sscanf(p + 6, "%x; %x; %x; %x", &next_date, &next_date_fract, &sync_state[0], &sync_state[1]);
1157 assert(ret == 4);
1158 check_sync_state = true;
1159 } else if (strncmp(p, "msg: ", 5) == 0 || strncmp(p, "client: ", 8) == 0 ||
1160 strncmp(p, "load: ", 6) == 0 || strncmp(p, "save: ", 6) == 0) {
1161 /* A message that is not very important to the log playback, but part of the log. */
1162 } else {
1163 /* Can't parse a line; what's wrong here? */
1164 DEBUG(net, 0, "trying to parse: %s", p);
1165 NOT_REACHED();
1166 }
1167 }
1168 if (f != NULL && feof(f)) {
1169 DEBUG(net, 0, "End of commands.log");
1170 fclose(f);
1171 f = NULL;
11031172 }
11041173 #endif /* DEBUG_DUMP_COMMANDS */
11051174 if (_frame_counter >= _frame_counter_max) {
0 /* $Id: network_chat_gui.cpp 18966 2010-01-30 18:34:48Z frosch $ */
0 /* $Id: network_chat_gui.cpp 19646 2010-04-16 22:02:33Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
115115
116116 void NetworkInitChatMessage()
117117 {
118 MAX_CHAT_MESSAGES = _settings_client.gui.network_chat_box_height;
119
120 _chatmsg_list = ReallocT(_chatmsg_list, _settings_client.gui.network_chat_box_height);
121 _chatmsg_box.x = 10;
122 _chatmsg_box.y = 3 * FONT_HEIGHT_NORMAL;
123 _chatmsg_box.width = _settings_client.gui.network_chat_box_width;
124 _chatmsg_box.height = _settings_client.gui.network_chat_box_height * (FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING) + 2;
125 _chatmessage_backup = ReallocT(_chatmessage_backup, _chatmsg_box.width * _chatmsg_box.height * BlitterFactoryBase::GetCurrentBlitter()->GetBytesPerPixel());
118 MAX_CHAT_MESSAGES = _settings_client.gui.network_chat_box_height;
119
120 _chatmsg_list = ReallocT(_chatmsg_list, _settings_client.gui.network_chat_box_height);
121 _chatmsg_box.x = 10;
122 _chatmsg_box.y = 3 * FONT_HEIGHT_NORMAL;
123 _chatmsg_box.width = _settings_client.gui.network_chat_box_width;
124 _chatmsg_box.height = _settings_client.gui.network_chat_box_height * (FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING) + 2;
125 _chatmessage_backup = ReallocT(_chatmessage_backup, _chatmsg_box.width * _chatmsg_box.height * BlitterFactoryBase::GetCurrentBlitter()->GetBytesPerPixel());
126 _chatmessage_visible = false;
126127
127128 for (uint i = 0; i < MAX_CHAT_MESSAGES; i++) {
128129 _chatmsg_list[i].message[0] = '\0';
0 /* $Id: network_client.cpp 19132 2010-02-14 16:31:35Z alberth $ */
0 /* $Id: network_client.cpp 19690 2010-04-21 19:20:28Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
166166 return NETWORK_RECV_STATUS_OKAY;
167167 }
168168
169 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_PASSWORD)(NetworkPasswordType type, const char *password)
170 {
171 /*
172 * Packet: CLIENT_PASSWORD
169 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_GAME_PASSWORD)(const char *password)
170 {
171 /*
172 * Packet: CLIENT_GAME_PASSWORD
173173 * Function: Send a password to the server to authorize
174174 * Data:
175175 * uint8: NetworkPasswordType
176176 * String: Password
177177 */
178 Packet *p = new Packet(PACKET_CLIENT_PASSWORD);
179 p->Send_uint8 (type);
180 p->Send_string(type == NETWORK_GAME_PASSWORD ? password : GenerateCompanyPasswordHash(password));
178 Packet *p = new Packet(PACKET_CLIENT_GAME_PASSWORD);
179 p->Send_string(password);
180 MY_CLIENT->Send_Packet(p);
181 return NETWORK_RECV_STATUS_OKAY;
182 }
183
184 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMPANY_PASSWORD)(const char *password)
185 {
186 /*
187 * Packet: CLIENT_COMPANY_PASSWORD
188 * Function: Send a password to the server to authorize
189 * Data:
190 * uint8: NetworkPasswordType
191 * String: Password
192 */
193 Packet *p = new Packet(PACKET_CLIENT_COMPANY_PASSWORD);
194 p->Send_string(GenerateCompanyPasswordHash(password));
181195 MY_CLIENT->Send_Packet(p);
182196 return NETWORK_RECV_STATUS_OKAY;
183197 }
447461 /* The client changed from client-player..
448462 * Do not display that for now */
449463 }
464
465 /* Make sure we're in the company the server tells us to be in,
466 * for the rare case that we get moved while joining. */
467 if (client_id == _network_own_client_id) SetLocalCompany(!Company::IsValidID(playas) ? COMPANY_SPECTATOR : playas);
450468
451469 ci->client_playas = playas;
452470 strecpy(ci->client_name, name, lastof(ci->client_name));
534552 return ret;
535553 }
536554
537 DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_NEED_PASSWORD)
538 {
539 NetworkPasswordType type = (NetworkPasswordType)p->Recv_uint8();
540
555 DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_NEED_GAME_PASSWORD)
556 {
541557 const char *password = _network_join_server_password;
542
543 switch (type) {
544 case NETWORK_COMPANY_PASSWORD:
545 /* Initialize the password hash salting variables. */
546 _password_game_seed = p->Recv_uint32();
547 p->Recv_string(_password_server_id, sizeof(_password_server_id));
548 if (MY_CLIENT->HasClientQuit()) return NETWORK_RECV_STATUS_MALFORMED_PACKET;
549 password = _network_join_company_password;
550 /* FALL THROUGH */
551 case NETWORK_GAME_PASSWORD:
552 if (StrEmpty(password)) {
553 ShowNetworkNeedPassword(type);
554 } else {
555 return SEND_COMMAND(PACKET_CLIENT_PASSWORD)(type, password);
556 }
557 return NETWORK_RECV_STATUS_OKAY;
558
559 default: return NETWORK_RECV_STATUS_MALFORMED_PACKET;
560 }
558 if (!StrEmpty(password)) {
559 return SEND_COMMAND(PACKET_CLIENT_GAME_PASSWORD)(password);
560 }
561
562 ShowNetworkNeedPassword(NETWORK_GAME_PASSWORD);
563
564 return NETWORK_RECV_STATUS_OKAY;
565 }
566
567 DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_NEED_COMPANY_PASSWORD)
568 {
569 _password_game_seed = p->Recv_uint32();
570 p->Recv_string(_password_server_id, sizeof(_password_server_id));
571 if (MY_CLIENT->HasClientQuit()) return NETWORK_RECV_STATUS_MALFORMED_PACKET;
572
573 const char *password = _network_join_company_password;
574 if (!StrEmpty(password)) {
575 return SEND_COMMAND(PACKET_CLIENT_COMPANY_PASSWORD)(password);
576 }
577
578 ShowNetworkNeedPassword(NETWORK_COMPANY_PASSWORD);
579
580 return NETWORK_RECV_STATUS_OKAY;
561581 }
562582
563583 DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_WELCOME)
920940 NULL, // PACKET_CLIENT_COMPANY_INFO,
921941 RECEIVE_COMMAND(PACKET_SERVER_COMPANY_INFO),
922942 RECEIVE_COMMAND(PACKET_SERVER_CLIENT_INFO),
923 RECEIVE_COMMAND(PACKET_SERVER_NEED_PASSWORD),
924 NULL, // PACKET_CLIENT_PASSWORD,
943 RECEIVE_COMMAND(PACKET_SERVER_NEED_GAME_PASSWORD),
944 RECEIVE_COMMAND(PACKET_SERVER_NEED_COMPANY_PASSWORD),
945 NULL, // PACKET_CLIENT_GAME_PASSWORD,
946 NULL, // PACKET_CLIENT_COMPANY_PASSWORD,
925947 RECEIVE_COMMAND(PACKET_SERVER_WELCOME),
926948 NULL, // PACKET_CLIENT_GETMAP,
927949 RECEIVE_COMMAND(PACKET_SERVER_WAIT),
10041026 SEND_COMMAND(PACKET_CLIENT_MOVE)(company_id, pass);
10051027 }
10061028
1029 void NetworkClientsToSpectators(CompanyID cid)
1030 {
1031 /* If our company is changing owner, go to spectators */
1032 if (cid == _local_company) SetLocalCompany(COMPANY_SPECTATOR);
1033
1034 NetworkClientInfo *ci;
1035 FOR_ALL_CLIENT_INFOS(ci) {
1036 if (ci->client_playas != cid) continue;
1037 NetworkTextMessage(NETWORK_ACTION_COMPANY_SPECTATOR, CC_DEFAULT, false, ci->client_name);
1038 ci->client_playas = COMPANY_SPECTATOR;
1039 }
1040 }
1041
10071042 void NetworkUpdateClientName()
10081043 {
10091044 NetworkClientInfo *ci = NetworkFindClientInfoFromClientID(_network_own_client_id);
0 /* $Id: network_client.h 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: network_client.h 19624 2010-04-13 21:40:24Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2121 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_ERROR)(NetworkErrorCode errorno);
2222 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_QUIT)();
2323 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_CHAT)(NetworkAction action, DestType desttype, int dest, const char *msg, int64 data);
24 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_PASSWORD)(NetworkPasswordType type, const char *password);
24 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_GAME_PASSWORD)(const char *password);
25 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_COMPANY_PASSWORD)(const char *password);
2526 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_SET_PASSWORD)(const char *password);
2627 DEF_CLIENT_SEND_COMMAND_PARAM(PACKET_CLIENT_SET_NAME)(const char *name);
2728 DEF_CLIENT_SEND_COMMAND(PACKET_CLIENT_ACK);
0 /* $Id: network_command.cpp 19081 2010-02-10 16:24:05Z rubidium $ */
0 /* $Id: network_command.cpp 19622 2010-04-13 19:30:51Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
127127 }
128128
129129 /**
130 * Sync our local command queue to the command queue of the given
131 * socket. This is needed for the case where we receive a command
132 * before saving the game for a joining client, but without the
133 * execution of those commands. Not syncing those commands means
134 * that the client will never get them and as such will be in a
135 * desynced state from the time it started with joining.
136 * @param cs The client to sync the queue to.
137 */
138 void NetworkSyncCommandQueue(NetworkClientSocket *cs)
139 {
140 for (CommandPacket *p = _local_command_queue; p != NULL; p = p->next) {
141 CommandPacket c = *p;
142 c.callback = 0;
143 NetworkAddCommandQueue(c, cs);
144 }
145 }
146
147 /**
130148 * Execute all commands on the local command queue that ought to be executed this frame.
131149 */
132150 void NetworkExecuteLocalCommandQueue()
0 /* $Id: network_content.cpp 19278 2010-02-27 16:41:10Z rubidium $ */
0 /* $Id: network_content.cpp 19690 2010-04-21 19:20:28Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
372372
373373 if (fin == NULL || fout == NULL) {
374374 ret = false;
375 goto exit;
376 }
377
378 byte buff[8192];
379 while (!gzeof(fin)) {
380 int read = gzread(fin, buff, sizeof(buff));
381 if (read < 0 || (size_t)read != fwrite(buff, 1, read, fout)) {
382 ret = false;
383 break;
384 }
385 }
386
387 exit:
375 } else {
376 byte buff[8192];
377 while (1) {
378 int read = gzread(fin, buff, sizeof(buff));
379 if (read == 0) {
380 /* If gzread() returns 0, either the end-of-file has been
381 * reached or an underlying read error has occurred.
382 *
383 * gzeof() can't be used, because:
384 * 1.2.5 - it is safe, 1 means 'everything was OK'
385 * 1.2.3.5, 1.2.4 - 0 or 1 is returned 'randomly'
386 * 1.2.3.3 - 1 is returned for truncated archive
387 *
388 * So we use gzerror(). When proper end of archive
389 * has been reached, then:
390 * errnum == Z_STREAM_END in 1.2.3.3,
391 * errnum == 0 in 1.2.4 and 1.2.5 */
392 int errnum;
393 gzerror(fin, &errnum);
394 if (errnum != 0 && errnum != Z_STREAM_END) ret = false;
395 break;
396 }
397 if (read < 0 || (size_t)read != fwrite(buff, 1, read, fout)) {
398 /* If gzread() returns -1, there was an error in archive */
399 ret = false;
400 break;
401 }
402 /* DO NOT DO THIS! It will fail to detect broken archive with 1.2.3.3!
403 * if (read < sizeof(buff)) break; */
404 }
405 }
406
388407 if (fin != NULL) {
389408 /* Closes ftmp too! */
390409 gzclose(fin);
603622
604623 p = strrchr(str, '/');
605624 check_not_null(p);
625 p++; // Start after the '/'
606626
607627 char tmp[MAX_PATH];
608628 if (strecpy(tmp, p, lastof(tmp)) == lastof(tmp)) {
0 /* $Id: network_func.h 19075 2010-02-10 15:17:27Z smatz $ */
0 /* $Id: network_func.h 19653 2010-04-17 12:00:59Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
4646 void NetworkPopulateCompanyStats(NetworkCompanyStats *stats);
4747
4848 void NetworkUpdateClientInfo(ClientID client_id);
49 void NetworkClientsToSpectators(CompanyID cid);
4950 void NetworkClientConnectGame(NetworkAddress address, CompanyID join_as, const char *join_server_password = NULL, const char *join_company_password = NULL);
5051 void NetworkClientRequestMove(CompanyID company, const char *pass = "");
5152 void NetworkClientSendRcon(const char *password, const char *command);
6061 /*** Commands ran by the server ***/
6162 void NetworkServerMonthlyLoop();
6263 void NetworkServerYearlyLoop();
63 void NetworkServerChangeOwner(Owner current_owner, Owner new_owner);
6464 void NetworkServerSendConfigUpdate();
6565 void NetworkServerShowStatusToConsole();
6666 bool NetworkServerStart();
0 /* $Id: network_gui.cpp 19132 2010-02-14 16:31:35Z alberth $ */
0 /* $Id: network_gui.cpp 19624 2010-04-13 21:40:24Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
21152115 AllocateWindowDescFront<NetworkClientListWindow>(&_client_list_desc, 0);
21162116 }
21172117
2118
2119 static NetworkPasswordType pw_type;
2120
2121
2122 void ShowNetworkNeedPassword(NetworkPasswordType npt)
2123 {
2124 StringID caption;
2125
2126 pw_type = npt;
2127 switch (npt) {
2128 default: NOT_REACHED();
2129 case NETWORK_GAME_PASSWORD: caption = STR_NETWORK_NEED_GAME_PASSWORD_CAPTION; break;
2130 case NETWORK_COMPANY_PASSWORD: caption = STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION; break;
2131 }
2132 ShowQueryString(STR_EMPTY, caption, 20, 180, FindWindowById(WC_NETWORK_STATUS_WINDOW, 0), CS_ALPHANUMERAL, QSF_NONE);
2133 }
2134
21352118 /* Vars needed for the join-GUI */
21362119 NetworkJoinStatus _network_join_status;
21372120 uint8 _network_join_waiting;
21452128 };
21462129
21472130 struct NetworkJoinStatusWindow : Window {
2131 NetworkPasswordType password_type;
2132
21482133 NetworkJoinStatusWindow(const WindowDesc *desc) : Window()
21492134 {
21502135 this->parent = FindWindowById(WC_NETWORK_WINDOW, 0);
22242209 if (StrEmpty(str)) {
22252210 NetworkDisconnect();
22262211 ShowNetworkGameWindow();
2227 } else {
2228 SEND_COMMAND(PACKET_CLIENT_PASSWORD)(pw_type, str);
2212 return;
2213 }
2214
2215 switch (this->password_type) {
2216 case NETWORK_GAME_PASSWORD: SEND_COMMAND(PACKET_CLIENT_GAME_PASSWORD) (str); break;
2217 case NETWORK_COMPANY_PASSWORD: SEND_COMMAND(PACKET_CLIENT_COMPANY_PASSWORD)(str); break;
2218 default: NOT_REACHED();
22292219 }
22302220 }
22312221 };
22542244 {
22552245 DeleteWindowById(WC_NETWORK_STATUS_WINDOW, 0);
22562246 new NetworkJoinStatusWindow(&_network_join_status_window_desc);
2247 }
2248
2249 void ShowNetworkNeedPassword(NetworkPasswordType npt)
2250 {
2251 NetworkJoinStatusWindow *w = (NetworkJoinStatusWindow *)FindWindowById(WC_NETWORK_STATUS_WINDOW, 0);
2252 if (w == NULL) return;
2253 w->password_type = npt;
2254
2255 StringID caption;
2256 switch (npt) {
2257 default: NOT_REACHED();
2258 case NETWORK_GAME_PASSWORD: caption = STR_NETWORK_NEED_GAME_PASSWORD_CAPTION; break;
2259 case NETWORK_COMPANY_PASSWORD: caption = STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION; break;
2260 }
2261 ShowQueryString(STR_EMPTY, caption, 20, 180, w, CS_ALPHANUMERAL, QSF_NONE);
22572262 }
22582263
22592264
0 /* $Id: network_internal.h 19072 2010-02-09 23:49:19Z rubidium $ */
0 /* $Id: network_internal.h 19622 2010-04-13 19:30:51Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
3636 */
3737 #define NETWORK_SEND_DOUBLE_SEED
3838 #endif /* RANDOM_DEBUG */
39
40 /**
41 * Helper variable to make the dedicated server go fast until the (first) join.
42 * Used to load the desync debug logs, i.e. for reproducing a desync.
43 * There's basically no need to ever enable this, unless you really know what
44 * you are doing, i.e. debugging a desync.
45 */
46 #ifdef DEBUG_DUMP_COMMANDS
47 extern bool _ddc_fastforward;
48 #else
49 #define _ddc_fastforward (false)
50 #endif /* DEBUG_DUMP_COMMANDS */
3951
4052 enum MapPacket {
4153 MAP_PACKET_START,
150162 void NetworkAddCommandQueue(CommandPacket cp, NetworkClientSocket *cs = NULL);
151163 void NetworkExecuteLocalCommandQueue();
152164 void NetworkFreeLocalCommandQueue();
165 void NetworkSyncCommandQueue(NetworkClientSocket *cs);
153166
154167 /* from network.c */
155168 NetworkRecvStatus NetworkCloseClient(NetworkClientSocket *cs, NetworkRecvStatus status);
0 /* $Id: network_server.cpp 19072 2010-02-09 23:49:19Z rubidium $ */
0 /* $Id: network_server.cpp 19741 2010-04-30 21:01:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
151151 GetString(str, strid, lastof(str));
152152
153153 /* Only send when the current client was in game */
154 if (cs->status > STATUS_AUTH) {
154 if (cs->status > STATUS_AUTHORIZED) {
155155 NetworkClientSocket *new_cs;
156156 char client_name[NETWORK_CLIENT_NAME_LENGTH];
157157
162162 NetworkTextMessage(NETWORK_ACTION_LEAVE, CC_DEFAULT, false, client_name, NULL, strid);
163163
164164 FOR_ALL_CLIENT_SOCKETS(new_cs) {
165 if (new_cs->status > STATUS_AUTH && new_cs != cs) {
165 if (new_cs->status > STATUS_AUTHORIZED && new_cs != cs) {
166166 /* Some errors we filter to a more general error. Clients don't have to know the real
167167 * reason a joining failed. */
168168 if (error == NETWORK_ERROR_NOT_AUTHORIZED || error == NETWORK_ERROR_NOT_EXPECTED || error == NETWORK_ERROR_WRONG_REVISION)
208208 return NETWORK_RECV_STATUS_OKAY;
209209 }
210210
211 DEF_SERVER_SEND_COMMAND_PARAM(PACKET_SERVER_NEED_PASSWORD)(NetworkClientSocket *cs, NetworkPasswordType type)
211 DEF_SERVER_SEND_COMMAND_PARAM(PACKET_SERVER_NEED_GAME_PASSWORD)(NetworkClientSocket *cs)
212212 {
213213 /*
214 * Packet: SERVER_NEED_PASSWORD
215 * Function: Indication to the client that the server needs a password
214 * Packet: PACKET_SERVER_NEED_GAME_PASSWORD
215 * Function: Indication to the client that the server needs a game password
216 */
217
218 /* Invalid packet when status is STATUS_AUTH_GAME or higher */
219 if (cs->status >= STATUS_AUTH_GAME) return NetworkCloseClient(cs, NETWORK_RECV_STATUS_MALFORMED_PACKET);
220
221 cs->status = STATUS_AUTH_GAME;
222
223 Packet *p = new Packet(PACKET_SERVER_NEED_GAME_PASSWORD);
224 cs->Send_Packet(p);
225 return NETWORK_RECV_STATUS_OKAY;
226 }
227
228 DEF_SERVER_SEND_COMMAND_PARAM(PACKET_SERVER_NEED_COMPANY_PASSWORD)(NetworkClientSocket *cs)
229 {
230 /*
231 * Packet: PACKET_SERVER_NEED_COMPANY_PASSWORD
232 * Function: Indication to the client that the server needs a company password
216233 * Data:
217 * uint8: Type of password
218 */
219
220 /* Invalid packet when status is AUTH or higher */
221 if (cs->status >= STATUS_AUTH) return NetworkCloseClient(cs, NETWORK_RECV_STATUS_MALFORMED_PACKET);
222
223 cs->status = STATUS_AUTHORIZING;
224
225 Packet *p = new Packet(PACKET_SERVER_NEED_PASSWORD);
226 p->Send_uint8(type);
234 * uint32: Generation seed
235 * string: Network ID of the server
236 */
237
238 /* Invalid packet when status is STATUS_AUTH_COMPANY or higher */
239 if (cs->status >= STATUS_AUTH_COMPANY) return NetworkCloseClient(cs, NETWORK_RECV_STATUS_MALFORMED_PACKET);
240
241 cs->status = STATUS_AUTH_COMPANY;
242
243 Packet *p = new Packet(PACKET_SERVER_NEED_COMPANY_PASSWORD);
227244 p->Send_uint32(_settings_game.game_creation.generation_seed);
228245 p->Send_string(_settings_client.network.network_id);
229246 cs->Send_Packet(p);
243260 NetworkClientSocket *new_cs;
244261
245262 /* Invalid packet when status is AUTH or higher */
246 if (cs->status >= STATUS_AUTH) return NetworkCloseClient(cs, NETWORK_RECV_STATUS_MALFORMED_PACKET);
247
248 cs->status = STATUS_AUTH;
263 if (cs->status >= STATUS_AUTHORIZED) return NetworkCloseClient(cs, NETWORK_RECV_STATUS_MALFORMED_PACKET);
264
265 cs->status = STATUS_AUTHORIZED;
249266 _network_game_info.clients_on++;
250267
251268 p = new Packet(PACKET_SERVER_WELCOME);
256273
257274 /* Transmit info about all the active clients */
258275 FOR_ALL_CLIENT_SOCKETS(new_cs) {
259 if (new_cs != cs && new_cs->status > STATUS_AUTH)
276 if (new_cs != cs && new_cs->status > STATUS_AUTHORIZED)
260277 SEND_COMMAND(PACKET_SERVER_CLIENT_INFO)(cs, new_cs->GetInfo());
261278 }
262279 /* Also send the info of the server */
304321 * nothing
305322 */
306323
307 static FILE *file_pointer;
324 static FILE *file_pointer = NULL;
308325 static uint sent_packets; // How many packets we did send succecfully last time
309326
310 if (cs->status < STATUS_AUTH) {
327 if (cs->status < STATUS_AUTHORIZED) {
311328 /* Illegal call, return error and ignore the packet */
312329 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_NOT_AUTHORIZED);
313330 }
314331
315 if (cs->status == STATUS_AUTH) {
332 if (cs->status == STATUS_AUTHORIZED) {
316333 const char *filename = "network_server.tmp";
317334 Packet *p;
318335
319336 /* Make a dump of the current game */
320337 if (SaveOrLoad(filename, SL_SAVE, AUTOSAVE_DIR) != SL_OK) usererror("network savedump failed");
321338
339 if (file_pointer != NULL) fclose(file_pointer);
340
322341 file_pointer = FioFOpenFile(filename, "rb", AUTOSAVE_DIR);
342 if (file_pointer == NULL) usererror("network savedump failed - could not open just saved dump");
343
323344 fseek(file_pointer, 0, SEEK_END);
324
325345 if (ftell(file_pointer) == 0) usererror("network savedump failed - zero sized savegame?");
326346
327347 /* Now send the _frame_counter and how many packets are coming */
335355
336356 sent_packets = 4; // We start with trying 4 packets
337357
358 NetworkSyncCommandQueue(cs);
338359 cs->status = STATUS_MAP;
339360 /* Mark the start of download */
340361 cs->last_frame = _frame_counter;
363384 * to send it is ready (maybe that happens like never ;)) */
364385 cs->status = STATUS_DONE_MAP;
365386 fclose(file_pointer);
387 file_pointer = NULL;
366388
367389 NetworkClientSocket *new_cs;
368390 bool new_map_client = false;
373395 /* Check if we already have a new client to send the map to */
374396 if (!new_map_client) {
375397 /* If not, this client will get the map */
376 new_cs->status = STATUS_AUTH;
398 new_cs->status = STATUS_AUTHORIZED;
377399 new_map_client = true;
378400 SEND_COMMAND(PACKET_SERVER_MAP)(new_cs);
379401 } else {
646668
647669 /* We now want a password from the client else we do not allow him in! */
648670 if (!StrEmpty(_settings_client.network.server_password)) {
649 return SEND_COMMAND(PACKET_SERVER_NEED_PASSWORD)(cs, NETWORK_GAME_PASSWORD);
671 return SEND_COMMAND(PACKET_SERVER_NEED_GAME_PASSWORD)(cs);
650672 }
651673
652674 if (Company::IsValidID(ci->client_playas) && !StrEmpty(_network_company_states[ci->client_playas].password)) {
653 return SEND_COMMAND(PACKET_SERVER_NEED_PASSWORD)(cs, NETWORK_COMPANY_PASSWORD);
675 return SEND_COMMAND(PACKET_SERVER_NEED_COMPANY_PASSWORD)(cs);
654676 }
655677
656678 return SEND_COMMAND(PACKET_SERVER_WELCOME)(cs);
715737 strecpy(ci->client_name, name, lastof(ci->client_name));
716738 ci->client_playas = playas;
717739 ci->client_lang = client_lang;
740 DEBUG(desync, 1, "client: %08x; %02x; %02x; %04x", _date, _date_fract, (int)ci->client_playas, ci->index);
718741
719742 /* Make sure companies to which people try to join are not autocleaned */
720743 if (Company::IsValidID(playas)) _network_company_states[playas].months_empty = 0;
726749 return SEND_COMMAND(PACKET_SERVER_CHECK_NEWGRFS)(cs);
727750 }
728751
729 DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_PASSWORD)
730 {
731 NetworkPasswordType type;
752 DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_GAME_PASSWORD)
753 {
754 if (cs->status != STATUS_AUTH_GAME) {
755 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_NOT_EXPECTED);
756 }
757
732758 char password[NETWORK_PASSWORD_LENGTH];
733 const NetworkClientInfo *ci;
734
735 type = (NetworkPasswordType)p->Recv_uint8();
736759 p->Recv_string(password, sizeof(password));
737760
738 if (cs->status == STATUS_AUTHORIZING && type == NETWORK_GAME_PASSWORD) {
739 /* Check game-password */
740 if (strcmp(password, _settings_client.network.server_password) != 0) {
741 /* Password is invalid */
742 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_WRONG_PASSWORD);
743 }
744
745 ci = cs->GetInfo();
746
747 if (Company::IsValidID(ci->client_playas) && !StrEmpty(_network_company_states[ci->client_playas].password)) {
748 return SEND_COMMAND(PACKET_SERVER_NEED_PASSWORD)(cs, NETWORK_COMPANY_PASSWORD);
749 }
750
751 /* Valid password, allow user */
752 return SEND_COMMAND(PACKET_SERVER_WELCOME)(cs);
753 } else if (cs->status == STATUS_AUTHORIZING && type == NETWORK_COMPANY_PASSWORD) {
754 ci = cs->GetInfo();
755
756 if (strcmp(password, _network_company_states[ci->client_playas].password) != 0) {
757 /* Password is invalid */
758 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_WRONG_PASSWORD);
759 }
760
761 return SEND_COMMAND(PACKET_SERVER_WELCOME)(cs);
762 }
763
764 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_NOT_EXPECTED);
761 /* Check game password. Allow joining if we cleared the password meanwhile */
762 if (!StrEmpty(_settings_client.network.server_password) &&
763 strcmp(password, _settings_client.network.server_password) != 0) {
764 /* Password is invalid */
765 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_WRONG_PASSWORD);
766 }
767
768 const NetworkClientInfo *ci = cs->GetInfo();
769 if (Company::IsValidID(ci->client_playas) && !StrEmpty(_network_company_states[ci->client_playas].password)) {
770 return SEND_COMMAND(PACKET_SERVER_NEED_COMPANY_PASSWORD)(cs);
771 }
772
773 /* Valid password, allow user */
774 return SEND_COMMAND(PACKET_SERVER_WELCOME)(cs);
775 }
776
777 DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_COMPANY_PASSWORD)
778 {
779 if (cs->status != STATUS_AUTH_COMPANY) {
780 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_NOT_EXPECTED);
781 }
782
783 char password[NETWORK_PASSWORD_LENGTH];
784 p->Recv_string(password, sizeof(password));
785
786 /* Check company password. Allow joining if we cleared the password meanwhile.
787 * Also, check the company is still valid - client could be moved to spectators
788 * in the middle of the authorization process */
789 CompanyID playas = cs->GetInfo()->client_playas;
790 if (Company::IsValidID(playas) && !StrEmpty(_network_company_states[playas].password) &&
791 strcmp(password, _network_company_states[playas].password) != 0) {
792 /* Password is invalid */
793 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_WRONG_PASSWORD);
794 }
795
796 return SEND_COMMAND(PACKET_SERVER_WELCOME)(cs);
765797 }
766798
767799 DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_GETMAP)
789821
790822 /* The client was never joined.. so this is impossible, right?
791823 * Ignore the packet, give the client a warning, and close his connection */
792 if (cs->status < STATUS_AUTH || cs->HasClientQuit()) {
824 if (cs->status < STATUS_AUTHORIZED || cs->HasClientQuit()) {
793825 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_NOT_AUTHORIZED);
794826 }
795827
830862 cs->last_frame_server = _frame_counter;
831863
832864 FOR_ALL_CLIENT_SOCKETS(new_cs) {
833 if (new_cs->status > STATUS_AUTH) {
865 if (new_cs->status > STATUS_AUTHORIZED) {
834866 SEND_COMMAND(PACKET_SERVER_CLIENT_INFO)(new_cs, cs->GetInfo());
835867 SEND_COMMAND(PACKET_SERVER_JOIN)(new_cs, cs->client_id);
836868 }
963995 NetworkTextMessage(NETWORK_ACTION_LEAVE, CC_DEFAULT, false, client_name, NULL, strid);
964996
965997 FOR_ALL_CLIENT_SOCKETS(new_cs) {
966 if (new_cs->status > STATUS_AUTH) {
998 if (new_cs->status > STATUS_AUTHORIZED) {
967999 SEND_COMMAND(PACKET_SERVER_ERROR_QUIT)(new_cs, cs->client_id, errorno);
9681000 }
9691001 }
9901022 NetworkTextMessage(NETWORK_ACTION_LEAVE, CC_DEFAULT, false, client_name, NULL, STR_NETWORK_MESSAGE_CLIENT_LEAVING);
9911023
9921024 FOR_ALL_CLIENT_SOCKETS(new_cs) {
993 if (new_cs->status > STATUS_AUTH) {
1025 if (new_cs->status > STATUS_AUTHORIZED) {
9941026 SEND_COMMAND(PACKET_SERVER_QUIT)(new_cs, cs->client_id);
9951027 }
9961028 }
10011033
10021034 DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_ACK)
10031035 {
1004 if (cs->status < STATUS_AUTH) {
1036 if (cs->status < STATUS_AUTHORIZED) {
10051037 /* Illegal call, return error and ignore the packet */
10061038 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_NOT_AUTHORIZED);
10071039 }
10701102 }
10711103 break;
10721104 case DESTTYPE_TEAM: {
1073 bool show_local = true; // If this is false, the message is already displayed
1074 /* on the client who did sent it.
1075 * Find all clients that belong to this company */
1105 /* If this is false, the message is already displayed on the client who sent it. */
1106 bool show_local = true;
1107 /* Find all clients that belong to this company */
10761108 ci_to = NULL;
10771109 FOR_ALL_CLIENT_SOCKETS(cs) {
10781110 ci = cs->GetInfo();
11281160
11291161 DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_CHAT)
11301162 {
1131 if (cs->status < STATUS_AUTH) {
1163 if (cs->status < STATUS_AUTHORIZED) {
11321164 /* Illegal call, return error and ignore the packet */
11331165 return SEND_COMMAND(PACKET_SERVER_ERROR)(cs, NETWORK_ERROR_NOT_AUTHORIZED);
11341166 }
12691301 RECEIVE_COMMAND(PACKET_CLIENT_COMPANY_INFO),
12701302 NULL, // PACKET_SERVER_COMPANY_INFO,
12711303 NULL, // PACKET_SERVER_CLIENT_INFO,
1272 NULL, // PACKET_SERVER_NEED_PASSWORD,
1273 RECEIVE_COMMAND(PACKET_CLIENT_PASSWORD),
1304 NULL, // PACKET_SERVER_NEED_GAME_PASSWORD,
1305 NULL, // PACKET_SERVER_NEED_COMPANY_PASSWORD,
1306 RECEIVE_COMMAND(PACKET_CLIENT_GAME_PASSWORD),
1307 RECEIVE_COMMAND(PACKET_CLIENT_COMPANY_PASSWORD),
12741308 NULL, // PACKET_SERVER_WELCOME,
12751309 RECEIVE_COMMAND(PACKET_CLIENT_GETMAP),
12761310 NULL, // PACKET_SERVER_WAIT,
13951429
13961430 if (ci == NULL) return;
13971431
1432 DEBUG(desync, 1, "client: %08x; %02x; %02x; %04x", _date, _date_fract, (int)ci->client_playas, client_id);
1433
13981434 FOR_ALL_CLIENT_SOCKETS(cs) {
13991435 SEND_COMMAND(PACKET_SERVER_CLIENT_INFO)(cs, ci);
14001436 }
16611697 NetworkAutoCleanCompanies();
16621698 }
16631699
1664 void NetworkServerChangeOwner(Owner current_owner, Owner new_owner)
1665 {
1666 /* The server has to handle all administrative issues, for example
1667 * updating and notifying all clients of what has happened */
1668 NetworkClientInfo *ci = NetworkFindClientInfoFromClientID(CLIENT_ID_SERVER);
1669
1670 /* The server has just changed from owner */
1671 if (current_owner == ci->client_playas) {
1672 ci->client_playas = new_owner;
1673 NetworkUpdateClientInfo(CLIENT_ID_SERVER);
1674 }
1675
1676 /* Find all clients that were in control of this company, and mark them as new_owner */
1677 FOR_ALL_CLIENT_INFOS(ci) {
1678 if (current_owner == ci->client_playas) {
1679 ci->client_playas = new_owner;
1680 NetworkUpdateClientInfo(ci->client_id);
1681 }
1682 }
1683 }
1684
16851700 const char *GetClientIP(NetworkClientInfo *ci)
16861701 {
16871702 return ci->client_address.GetHostname();
16911706 {
16921707 static const char * const stat_str[] = {
16931708 "inactive",
1694 "authorizing",
1709 "authorizing (server password)",
1710 "authorizing (company password)",
16951711 "authorized",
16961712 "waiting",
16971713 "loading map",
16991715 "ready",
17001716 "active"
17011717 };
1718 assert_compile(lengthof(stat_str) == STATUS_END);
17021719
17031720 NetworkClientSocket *cs;
17041721 FOR_ALL_CLIENT_SOCKETS(cs) {
0 /* $Id: newgrf.cpp 19376 2010-03-08 22:19:39Z rubidium $ */
0 /* $Id: newgrf.cpp 19653 2010-04-17 12:00:59Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
185185 struct GRFTempEngineData {
186186 uint16 cargo_allowed;
187187 uint16 cargo_disallowed;
188 RailTypeLabel railtypelabel;
188189 bool refitmask_valid; ///< Did the newgrf set any refittability property? If not, default refittability will be applied.
189190 uint8 rv_max_speed; ///< Temporary storage of RV prop 15, maximum speed in mph/0.8
190191 };
400401 size_t len = (Engine::GetPoolSize() - engine_pool_size) * sizeof(*_gted);
401402 memset(_gted + engine_pool_size, 0, len);
402403 }
404 if (type == VEH_TRAIN) {
405 _gted[e->index].railtypelabel = GetRailTypeInfo(e->u.rail.railtype)->label;
406 }
403407
404408 grfmsg(5, "Created new engine at index %d for GRFID %x, type %d, index %d", e->index, BSWAP32(file->grfid), type, internal_id);
405409
526530 uint8 tracktype = buf->ReadByte();
527531
528532 if (tracktype < _cur_grffile->railtype_max) {
529 RailType railtype = GetRailTypeByLabel(_cur_grffile->railtype_list[tracktype]);
530 if (railtype == INVALID_RAILTYPE) {
531 /* Rail type is not available, so disable this engine */
532 ei[i].climates = 0x80;
533 } else {
534 rvi[i].railtype = railtype;
535 }
533 _gted[e->index].railtypelabel = _cur_grffile->railtype_list[tracktype];
536534 break;
537535 }
538536
539537 switch (tracktype) {
540 case 0: rvi->railtype = rvi->engclass >= 2 ? RAILTYPE_ELECTRIC : RAILTYPE_RAIL; break;
541 case 1: rvi->railtype = RAILTYPE_MONO; break;
542 case 2: rvi->railtype = RAILTYPE_MAGLEV; break;
538 case 0: _gted[e->index].railtypelabel = rvi->engclass >= 2 ? RAILTYPE_ELECTRIC_LABEL : RAILTYPE_RAIL_LABEL; break;
539 case 1: _gted[e->index].railtypelabel = RAILTYPE_MONO_LABEL; break;
540 case 2: _gted[e->index].railtypelabel = RAILTYPE_MAGLEV_LABEL; break;
543541 default:
544542 grfmsg(1, "RailVehicleChangeInfo: Invalid track type %d specified, ignoring", tracktype);
545543 break;
660658 if (_cur_grffile->railtype_max == 0) {
661659 /* Use traction type to select between normal and electrified
662660 * rail only when no translation list is in place. */
663 if (rvi->railtype == RAILTYPE_RAIL && engclass >= EC_ELECTRIC) rvi->railtype = RAILTYPE_ELECTRIC;
664 if (rvi->railtype == RAILTYPE_ELECTRIC && engclass < EC_ELECTRIC) rvi->railtype = RAILTYPE_RAIL;
661 if (_gted[e->index].railtypelabel == RAILTYPE_RAIL_LABEL && engclass >= EC_ELECTRIC) _gted[e->index].railtypelabel = RAILTYPE_ELECTRIC_LABEL;
662 if (_gted[e->index].railtypelabel == RAILTYPE_ELECTRIC_LABEL && engclass < EC_ELECTRIC) _gted[e->index].railtypelabel = RAILTYPE_RAIL_LABEL;
665663 }
666664
667665 rvi->engclass = engclass;
14581456 return ret;
14591457 }
14601458
1459 static ChangeInfoResult IgnoreTownHouseProperty(int prop, ByteReader *buf)
1460 {
1461 ChangeInfoResult ret = CIR_SUCCESS;
1462
1463 switch (prop) {
1464 case 0x09:
1465 case 0x0B:
1466 case 0x0C:
1467 case 0x0D:
1468 case 0x0E:
1469 case 0x0F:
1470 case 0x11:
1471 case 0x14:
1472 case 0x15:
1473 case 0x16:
1474 case 0x18:
1475 case 0x19:
1476 case 0x1A:
1477 case 0x1B:
1478 case 0x1C:
1479 case 0x1D:
1480 case 0x1F:
1481 buf->ReadByte();
1482 break;
1483
1484 case 0x0A:
1485 case 0x10:
1486 case 0x12:
1487 case 0x13:
1488 case 0x21:
1489 case 0x22:
1490 buf->ReadWord();
1491 break;
1492
1493 case 0x1E:
1494 buf->ReadDWord();
1495 break;
1496
1497 case 0x17:
1498 for (uint j = 0; j < 4; j++) buf->ReadByte();
1499 break;
1500
1501 case 0x20: {
1502 byte count = buf->ReadByte();
1503 for (byte j = 0; j < count; j++) buf->ReadByte();
1504 ret = CIR_UNHANDLED;
1505 } break;
1506
1507 default:
1508 ret = CIR_UNKNOWN;
1509 break;
1510 }
1511 return ret;
1512 }
1513
14611514 static ChangeInfoResult TownHouseChangeInfo(uint hid, int numinfo, int prop, ByteReader *buf)
14621515 {
14631516 ChangeInfoResult ret = CIR_SUCCESS;
14761529 HouseSpec *housespec = _cur_grffile->housespec[hid + i];
14771530
14781531 if (prop != 0x08 && housespec == NULL) {
1479 grfmsg(2, "TownHouseChangeInfo: Attempt to modify undefined house %u. Ignoring.", hid + i);
1480 return CIR_INVALID_ID;
1532 /* If the house property 08 is not yet set, ignore this property */
1533 ChangeInfoResult cir = IgnoreTownHouseProperty(prop, buf);
1534 if (cir > ret) ret = cir;
1535 continue;
14811536 }
14821537
14831538 switch (prop) {
20642119 return ret;
20652120 }
20662121
2122 static ChangeInfoResult IgnoreIndustryTileProperty(int prop, ByteReader *buf)
2123 {
2124 ChangeInfoResult ret = CIR_SUCCESS;
2125
2126 switch (prop) {
2127 case 0x09:
2128 case 0x0D:
2129 case 0x0E:
2130 case 0x10:
2131 case 0x11:
2132 case 0x12:
2133 buf->ReadByte();
2134 break;
2135
2136 case 0x0A:
2137 case 0x0B:
2138 case 0x0C:
2139 case 0x0F:
2140 buf->ReadWord();
2141 break;
2142
2143 default:
2144 ret = CIR_UNKNOWN;
2145 break;
2146 }
2147 return ret;
2148 }
2149
20672150 static ChangeInfoResult IndustrytilesChangeInfo(uint indtid, int numinfo, int prop, ByteReader *buf)
20682151 {
20692152 ChangeInfoResult ret = CIR_SUCCESS;
20822165 IndustryTileSpec *tsp = _cur_grffile->indtspec[indtid + i];
20832166
20842167 if (prop != 0x08 && tsp == NULL) {
2085 grfmsg(2, "IndustryTilesChangeInfo: Attempt to modify undefined industry tile %u. Ignoring.", indtid + i);
2086 return CIR_INVALID_ID;
2168 ChangeInfoResult cir = IgnoreIndustryTileProperty(prop, buf);
2169 if (cir > ret) ret = cir;
2170 continue;
20872171 }
20882172
20892173 switch (prop) {
21722256 return ret;
21732257 }
21742258
2259 static ChangeInfoResult IgnoreIndustryProperty(int prop, ByteReader *buf)
2260 {
2261 ChangeInfoResult ret = CIR_SUCCESS;
2262
2263 switch (prop) {
2264 case 0x09:
2265 case 0x0B:
2266 case 0x0F:
2267 case 0x12:
2268 case 0x13:
2269 case 0x14:
2270 case 0x17:
2271 case 0x18:
2272 case 0x19:
2273 case 0x21:
2274 case 0x22:
2275 buf->ReadByte();
2276 break;
2277
2278 case 0x0C:
2279 case 0x0D:
2280 case 0x0E:
2281 case 0x10:
2282 case 0x1B:
2283 case 0x1F:
2284 case 0x24:
2285 buf->ReadWord();
2286 break;
2287
2288 case 0x1A:
2289 case 0x1C:
2290 case 0x1D:
2291 case 0x1E:
2292 case 0x20:
2293 case 0x23:
2294 buf->ReadDWord();
2295 break;
2296
2297 case 0x0A: {
2298 byte num_table = buf->ReadByte();
2299 for (byte j = 0; j < num_table; j++) {
2300 for (uint k = 0;; k++) {
2301 byte x = buf->ReadByte();
2302 if (x == 0xFE && k == 0) {
2303 buf->ReadByte();
2304 buf->ReadByte();
2305 break;
2306 }
2307
2308 byte y = buf->ReadByte();
2309 if (x == 0 && y == 0x80) break;
2310
2311 byte gfx = buf->ReadByte();
2312 if (gfx == 0xFE) buf->ReadWord();
2313 }
2314 }
2315 } break;
2316
2317 case 0x11:
2318 case 0x16:
2319 for (byte j = 0; j < 3; j++) buf->ReadByte();
2320 break;
2321
2322 case 0x15: {
2323 byte number_of_sounds = buf->ReadByte();
2324 for (uint8 j = 0; j < number_of_sounds; j++) {
2325 buf->ReadByte();
2326 }
2327 } break;
2328
2329 default:
2330 ret = CIR_UNKNOWN;
2331 break;
2332 }
2333 return ret;
2334 }
2335
21752336 /**
21762337 * Validate the industry layout; e.g. to prevent duplicate tiles.
21772338 * @param layout the layout to check
22112372 IndustrySpec *indsp = _cur_grffile->industryspec[indid + i];
22122373
22132374 if (prop != 0x08 && indsp == NULL) {
2214 grfmsg(2, "IndustriesChangeInfo: Attempt to modify undefined industry %u. Ignoring.", indid + i);
2215 return CIR_INVALID_ID;
2375 ChangeInfoResult cir = IgnoreIndustryProperty(prop, buf);
2376 if (cir > ret) ret = cir;
2377 continue;
22162378 }
22172379
22182380 switch (prop) {
24762638
24772639 case 0x24: // name for nearby station
24782640 indsp->station_name = buf->ReadWord();
2479 _string_to_grf_mapping[&indsp->station_name] = _cur_grffile->grfid;
2641 if (indsp->station_name != STR_NULL) _string_to_grf_mapping[&indsp->station_name] = _cur_grffile->grfid;
24802642 break;
24812643
24822644 default:
57305892
57315893 /* Allocate temporary refit/cargo class data */
57325894 _gted = CallocT<GRFTempEngineData>(Engine::GetPoolSize());
5895
5896 /* Fill rail type label temporary data for default trains */
5897 Engine *e;
5898 FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
5899 _gted[e->index].railtypelabel = GetRailTypeInfo(e->u.rail.railtype)->label;
5900 }
57335901
57345902 /* Reset GRM reservations */
57355903 memset(&_grm_engines, 0, sizeof(_grm_engines));
64766644 }
64776645 }
64786646
6647 FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
6648 RailType railtype = GetRailTypeByLabel(_gted[e->index].railtypelabel);
6649 if (railtype == INVALID_RAILTYPE) {
6650 /* Rail type is not available, so disable this engine */
6651 e->info.climates = 0x80;
6652 } else {
6653 e->u.rail.railtype = railtype;
6654 }
6655 }
6656
64796657 SetYearEngineAgingStops();
64806658
64816659 FinalisePriceBaseMultipliers();
0 /* $Id: newgrf_industries.cpp 18988 2010-02-02 23:11:10Z yexo $ */
0 /* $Id: newgrf_industries.cpp 19567 2010-04-05 21:34:47Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
217217
218218 /* Company info */
219219 case 0x45: {
220 byte colours;
220 byte colours = 0;
221221 bool is_ai = false;
222222
223223 const Company *c = Company::GetIfValid(industry->founder);
226226
227227 is_ai = c->is_ai;
228228 colours = l->colour1 + l->colour2 * 16;
229 } else {
230 colours = GB(Random(), 0, 8);
231229 }
232230
233231 return industry->founder | (is_ai ? 0x10000 : 0) | (colours << 24);
0 /* $Id: newgrf_spritegroup.cpp 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: newgrf_spritegroup.cpp 19551 2010-04-03 19:48:01Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
4141 free(this->dts);
4242 }
4343
44 TemporaryStorageArray<uint32, 0x110> _temp_store;
44 TemporaryStorageArray<int32, 0x110> _temp_store;
4545
4646
4747 static inline uint32 GetVariable(const ResolverObject *object, byte variable, byte parameter, bool *available)
117117 case DSGA_OP_AND: return last_value & value;
118118 case DSGA_OP_OR: return last_value | value;
119119 case DSGA_OP_XOR: return last_value ^ value;
120 case DSGA_OP_STO: _temp_store.Store(value, last_value); return last_value;
120 case DSGA_OP_STO: _temp_store.Store((U)value, (S)last_value); return last_value;
121121 case DSGA_OP_RST: return value;
122 case DSGA_OP_STOP: if (object->psa != NULL) object->psa->Store(value, last_value); return last_value;
122 case DSGA_OP_STOP: if (object->psa != NULL) object->psa->Store((U)value, (S)last_value); return last_value;
123123 case DSGA_OP_ROR: return RotateRight(last_value, value);
124124 case DSGA_OP_SCMP: return ((S)last_value == (S)value) ? 1 : ((S)last_value < (S)value ? 0 : 2);
125125 case DSGA_OP_UCMP: return ((U)last_value == (U)value) ? 1 : ((U)last_value < (U)value ? 0 : 2);
0 /* $Id: newgrf_spritegroup.h 19056 2010-02-07 22:22:54Z peter1138 $ */
0 /* $Id: newgrf_spritegroup.h 19551 2010-04-03 19:48:01Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
3030 */
3131 static inline uint32 GetRegister(uint i)
3232 {
33 extern TemporaryStorageArray<uint32, 0x110> _temp_store;
33 extern TemporaryStorageArray<int32, 0x110> _temp_store;
3434 return _temp_store.Get(i);
3535 }
3636
0 /* $Id: newgrf_station.h 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: newgrf_station.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2626 STAT_CLASS_MAX = 32, ///< Maximum number of classes.
2727 };
2828 typedef SimpleTinyEnumT<StationClassID, byte> StationClassIDByte;
29 template <> struct EnumPropsT<StationClassID> : MakeEnumPropsT<StationClassID, byte, STAT_CLASS_BEGIN, STAT_CLASS_MAX, STAT_CLASS_MAX, 8> {};
2930
3031 /** Allow incrementing of StationClassID variables */
3132 DECLARE_POSTFIX_INCREMENT(StationClassID);
0 /* $Id: newgrf_storage.h 17248 2009-08-21 20:21:05Z rubidium $ */
0 /* $Id: newgrf_storage.h 19551 2010-04-03 19:48:01Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
3636 * @param pos the position to write at
3737 * @param value the value to write
3838 */
39 virtual void Store(uint pos, uint32 value) = 0;
39 virtual void Store(uint pos, int32 value) = 0;
4040 };
4141
4242 /**
6969 * @param pos the position to write at
7070 * @param value the value to write
7171 */
72 void Store(uint pos, uint32 value)
72 void Store(uint pos, int32 value)
7373 {
7474 /* Out of the scope of the array */
7575 if (pos >= SIZE) return;
137137 * @param pos the position to write at
138138 * @param value the value to write
139139 */
140 void Store(uint pos, uint32 value)
140 void Store(uint pos, int32 value)
141141 {
142142 /* Out of the scope of the array */
143143 if (pos >= SIZE) return;
0 /* $Id: newgrf_text.cpp 18492 2009-12-13 21:12:36Z alberth $ */
0 /* $Id: newgrf_text.cpp 19585 2010-04-08 15:40:46Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
290290 case 8:
291291 d += Utf8Encode(d, SCC_NEWGRF_PRINT_HEX_DWORD);
292292 break;
293 case 0x0B:
294 d += Utf8Encode(d, SCC_NEWGRF_PRINT_HEX_QWORD);
295 break;
293296
294297 default:
295298 grfmsg(1, "missing handler for extended format code");
570573 */
571574 void PrepareTextRefStackUsage(byte numEntries)
572575 {
573 extern TemporaryStorageArray<uint32, 0x110> _temp_store;
576 extern TemporaryStorageArray<int32, 0x110> _temp_store;
574577
575578 _newgrf_textrefstack->ResetStack();
576579
609612 * @param argv the OpenTTD stack of values
610613 * @return the string control code to "execute" now
611614 */
612 uint RemapNewGRFStringControlCode(uint scc, char **buff, const char **str, int64 *argv)
615 uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const char **str, int64 *argv)
613616 {
614617 if (_newgrf_textrefstack->used) {
615618 switch (scc) {
623626
624627 case SCC_NEWGRF_PRINT_HEX_BYTE: *argv = _newgrf_textrefstack->PopUnsignedByte(); break;
625628 case SCC_NEWGRF_PRINT_HEX_DWORD: *argv = _newgrf_textrefstack->PopUnsignedDWord(); break;
629 case SCC_NEWGRF_PRINT_HEX_QWORD: *argv = _newgrf_textrefstack->PopSignedQWord(); break;
626630
627631 case SCC_NEWGRF_PRINT_HEX_WORD:
628632 case SCC_NEWGRF_PRINT_WORD_SPEED:
636640
637641 case SCC_NEWGRF_ROTATE_TOP_4_WORDS: _newgrf_textrefstack->RotateTop4Words(); break;
638642 case SCC_NEWGRF_PUSH_WORD: _newgrf_textrefstack->PushWord(Utf8Consume(str)); break;
639 case SCC_NEWGRF_UNPRINT: *buff -= Utf8Consume(str); break;
643 case SCC_NEWGRF_UNPRINT: *buff = max(*buff - Utf8Consume(str), buf_start); break;
640644
641645 case SCC_NEWGRF_PRINT_STRING_ID:
642646 *argv = TTDPStringIDToOTTDStringIDMapping(_newgrf_textrefstack->PopUnsignedWord());
655659 case SCC_NEWGRF_PRINT_HEX_BYTE:
656660 case SCC_NEWGRF_PRINT_HEX_WORD:
657661 case SCC_NEWGRF_PRINT_HEX_DWORD:
662 case SCC_NEWGRF_PRINT_HEX_QWORD:
658663 return SCC_HEX;
659664
660665 case SCC_NEWGRF_PRINT_DWORD_CURRENCY:
0 /* $Id: newgrf_text.h 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: newgrf_text.h 19585 2010-04-08 15:40:46Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2727 void SwitchToNormalRefStack();
2828 void SwitchToErrorRefStack();
2929 void RewindTextRefStack();
30 uint RemapNewGRFStringControlCode(uint scc, char **buff, const char **str, int64 *argv);
30 uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const char **str, int64 *argv);
3131
3232 StringID TTDPStringIDToOTTDStringIDMapping(StringID string);
3333
0 /* $Id: openttd.cpp 19430 2010-03-15 22:52:39Z rubidium $ */
0 /* $Id: openttd.cpp 19690 2010-04-21 19:20:28Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
796796 SettingsDisableElrail(_settings_game.vehicle.disable_elrails);
797797
798798 /* In a dedicated server, the server does not play */
799 if (BlitterFactoryBase::GetCurrentBlitter()->GetScreenDepth() == 0) {
799 if (_network_dedicated || BlitterFactoryBase::GetCurrentBlitter()->GetScreenDepth() == 0) {
800800 SetLocalCompany(COMPANY_SPECTATOR);
801801 IConsoleCmdExec("exec scripts/game_start.scr 0");
802802 return;
11091109
11101110 Vehicle *v;
11111111 FOR_ALL_VEHICLES(v) {
1112 if (v != v->First()) continue;
1112 if (v != v->First() || v->vehstatus & VS_CRASHED) continue;
11131113
11141114 switch (v->type) {
11151115 case VEH_ROAD: {
11161116 RoadVehicle *rv = RoadVehicle::From(v);
1117 RoadVehicleCache cache = rv->rcache;
1117 RoadVehicleCache cache;
1118 memset(&cache, 0, sizeof(cache));
1119 cache = rv->rcache;
11181120 RoadVehUpdateCache(rv);
11191121
11201122 if (memcmp(&cache, &rv->rcache, sizeof(RoadVehicleCache)) != 0) {
1121 DEBUG(desync, 2, "cache mismatch: vehicle %i, company %i, unit number %i\n", v->index, (int)v->owner, v->unitnumber);
1123 DEBUG(desync, 2, "cache mismatch: vehicle %i, company %i, unit number %i", v->index, (int)v->owner, v->unitnumber);
11221124 }
11231125 } break;
11241126
11271129 Train *t = Train::From(v);
11281130 for (Vehicle *u = t; u != NULL; u = u->Next()) length++;
11291131
1130 TrainCache *wagons = MallocT<TrainCache>(length);
1132 TrainCache *wagons = CallocT<TrainCache>(length);
11311133 length = 0;
11321134 for (Train *u = t; u != NULL; u = u->Next()) wagons[length++] = u->tcache;
11331135
11361138 length = 0;
11371139 for (Train *u = t; u != NULL; u = u->Next()) {
11381140 if (memcmp(&wagons[length], &u->tcache, sizeof(TrainCache)) != 0) {
1139 DEBUG(desync, 2, "cache mismatch: vehicle %i, company %i, unit number %i, wagon %i\n", v->index, (int)v->owner, v->unitnumber, length);
1141 DEBUG(desync, 2, "cache mismatch: vehicle %i, company %i, unit number %i, wagon %i", v->index, (int)v->owner, v->unitnumber, length);
11401142 }
11411143 length++;
11421144 }
11461148
11471149 case VEH_AIRCRAFT: {
11481150 Aircraft *a = Aircraft::From(v);
1149 AircraftCache cache = a->acache;
1151 AircraftCache cache;
1152 memset(&cache, 0, sizeof(cache));
1153 cache = a->acache;
11501154 UpdateAircraftCache(a);
11511155
11521156 if (memcmp(&cache, &a->acache, sizeof(AircraftCache)) != 0) {
1153 DEBUG(desync, 2, "cache mismatch: vehicle %i, company %i, unit number %i\n", v->index, (int)v->owner, v->unitnumber);
1157 DEBUG(desync, 2, "cache mismatch: vehicle %i, company %i, unit number %i", v->index, (int)v->owner, v->unitnumber);
11541158 }
11551159 } break;
11561160
12031207 CallWindowTickEvent();
12041208 NewsLoop();
12051209 } else {
1210 if (_debug_desync_level > 2 && _date_fract == 0 && (_date & 0x1F) == 0) {
1211 /* Save the desync savegame if needed. */
1212 char name[MAX_PATH];
1213 snprintf(name, lengthof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date);
1214 SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR);
1215 }
1216
12061217 CheckCaches();
12071218
12081219 /* All these actions has to be done from OWNER_NONE
0 /* $Id: order_cmd.cpp 19223 2010-02-23 23:26:37Z rubidium $ */
0 /* $Id: order_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1010
1111 #include "stdafx.h"
1212 #include "debug.h"
13 #include "cmd_helper.h"
1314 #include "command_func.h"
1415 #include "company_func.h"
1516 #include "news_func.h"
467468 Order new_order(p2);
468469
469470 Vehicle *v = Vehicle::GetIfValid(veh);
470 if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
471 if (v == NULL || !v->IsPrimaryVehicle() || !CheckOwnership(v->owner)) return CMD_ERROR;
471472
472473 /* Check if the inserted order is to the correct destination (owner, type),
473474 * and has the correct flags if any */
546547 default: return CMD_ERROR;
547548 }
548549 }
549 } else {
550 if (!IsCompanyBuildableVehicleType(v)) return CMD_ERROR;
551550 }
552551
553552 if (new_order.GetNonStopType() != ONSF_STOP_EVERYWHERE && v->type != VEH_TRAIN && v->type != VEH_ROAD) return CMD_ERROR;
728727
729728 Vehicle *v = Vehicle::GetIfValid(veh_id);
730729
731 if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
730 if (v == NULL || !v->IsPrimaryVehicle() || !CheckOwnership(v->owner)) return CMD_ERROR;
732731
733732 /* If we did not select an order, we maybe want to de-clone the orders */
734733 if (sel_ord >= v->GetNumOrders())
794793
795794 Vehicle *v = Vehicle::GetIfValid(veh_id);
796795
797 if (v == NULL || !CheckOwnership(v->owner) || sel_ord == v->cur_order_index ||
798 sel_ord >= v->GetNumOrders() || v->GetNumOrders() < 2) {
799 return CMD_ERROR;
800 }
796 if (v == NULL || !v->IsPrimaryVehicle() || !CheckOwnership(v->owner) || sel_ord == v->cur_order_index || sel_ord >= v->GetNumOrders() || v->GetNumOrders() < 2) return CMD_ERROR;
801797
802798 if (flags & DC_EXEC) {
803799 v->cur_order_index = sel_ord;
834830 VehicleOrderID target_order = GB(p2, 16, 16);
835831
836832 Vehicle *v = Vehicle::GetIfValid(veh);
837 if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
833 if (v == NULL || !v->IsPrimaryVehicle() || !CheckOwnership(v->owner)) return CMD_ERROR;
838834
839835 /* Don't make senseless movements */
840836 if (moving_order >= v->GetNumOrders() || target_order >= v->GetNumOrders() ||
909905 {
910906 VehicleOrderID sel_ord = GB(p1, 16, 16); // XXX - automatically truncated to 8 bits.
911907 VehicleID veh = GB(p1, 0, 16);
912 ModifyOrderFlags mof = (ModifyOrderFlags)GB(p2, 0, 4);
913 uint16 data = GB(p2, 4, 11);
908 ModifyOrderFlags mof = Extract<ModifyOrderFlags, 0, 4>(p2);
909 uint16 data = GB(p2, 4, 11);
914910
915911 if (mof >= MOF_END) return CMD_ERROR;
916912
917913 Vehicle *v = Vehicle::GetIfValid(veh);
918 if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
914 if (v == NULL || !v->IsPrimaryVehicle() || !CheckOwnership(v->owner)) return CMD_ERROR;
919915
920916 /* Is it a valid order? */
921917 if (sel_ord >= v->GetNumOrders()) return CMD_ERROR;
11381134 VehicleID veh_dst = GB(p1, 0, 16);
11391135
11401136 Vehicle *dst = Vehicle::GetIfValid(veh_dst);
1141
1142 if (dst == NULL || !CheckOwnership(dst->owner)) return CMD_ERROR;
1137 if (dst == NULL || !dst->IsPrimaryVehicle() || !CheckOwnership(dst->owner)) return CMD_ERROR;
11431138
11441139 switch (p2) {
11451140 case CO_SHARE: {
11461141 Vehicle *src = Vehicle::GetIfValid(veh_src);
11471142
11481143 /* Sanity checks */
1149 if (src == NULL || !CheckOwnership(src->owner) || dst->type != src->type || dst == src) {
1150 return CMD_ERROR;
1151 }
1144 if (src == NULL || !src->IsPrimaryVehicle() || !CheckOwnership(src->owner) || dst->type != src->type || dst == src) return CMD_ERROR;
11521145
11531146 /* Trucks can't share orders with busses (and visa versa) */
11541147 if (src->type == VEH_ROAD && RoadVehicle::From(src)->IsBus() != RoadVehicle::From(dst)->IsBus()) {
11871180 Vehicle *src = Vehicle::GetIfValid(veh_src);
11881181
11891182 /* Sanity checks */
1190 if (src == NULL || !CheckOwnership(src->owner) || dst->type != src->type || dst == src) {
1191 return CMD_ERROR;
1192 }
1183 if (src == NULL || !src->IsPrimaryVehicle() || !CheckOwnership(src->owner) || dst->type != src->type || dst == src) return CMD_ERROR;
11931184
11941185 /* Trucks can't copy all the orders from busses (and visa versa),
11951186 * and neither can helicopters and aircarft. */
12621253 CargoID cargo = GB(p2, 0, 8);
12631254 byte subtype = GB(p2, 8, 8);
12641255
1256 if (cargo >= NUM_CARGO) return CMD_ERROR;
1257
12651258 const Vehicle *v = Vehicle::GetIfValid(veh);
1266 if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
1259 if (v == NULL || !v->IsPrimaryVehicle() || !CheckOwnership(v->owner)) return CMD_ERROR;
12671260
12681261 Order *order = v->GetOrder(order_number);
12691262 if (order == NULL) return CMD_ERROR;
14151408
14161409 Vehicle *v = Vehicle::GetIfValid(p1);
14171410 /* Check the vehicle type and ownership, and if the service interval and order are in range */
1418 if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
1411 if (v == NULL || !v->IsPrimaryVehicle() || !CheckOwnership(v->owner)) return CMD_ERROR;
1412
14191413 if (serv_int != GetServiceIntervalClamped(serv_int, v->owner) || cur_ord >= v->GetNumOrders()) return CMD_ERROR;
14201414
14211415 if (flags & DC_EXEC) {
0 /* $Id: order_gui.cpp 19393 2010-03-12 21:12:35Z rubidium $ */
0 /* $Id: order_gui.cpp 19585 2010-04-08 15:40:46Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
620620 */
621621 void OrderClick_Nonstop(int non_stop)
622622 {
623 if (this->vehicle->type != VEH_TRAIN && this->vehicle->type != VEH_ROAD) return;
624
623625 VehicleOrderID sel_ord = this->OrderGetSel();
624626 const Order *order = this->vehicle->GetOrder(sel_ord);
625627
12761278 virtual void OnTimeout()
12771279 {
12781280 static const int raise_widgets[] = {
1279 ORDER_WIDGET_SKIP, ORDER_WIDGET_DELETE, ORDER_WIDGET_REFIT, ORDER_WIDGET_SHARED_ORDER_LIST, WIDGET_LIST_END,
1281 ORDER_WIDGET_TIMETABLE_VIEW, ORDER_WIDGET_SKIP, ORDER_WIDGET_DELETE, ORDER_WIDGET_REFIT, ORDER_WIDGET_SHARED_ORDER_LIST, WIDGET_LIST_END,
12801282 };
12811283
12821284 /* Unclick all buttons in raise_widgets[]. */
0 /* $Id: order_type.h 18518 2009-12-16 21:31:21Z yexo $ */
0 /* $Id: order_type.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
148148 MOF_COND_DESTINATION,///< Change the destination of a conditional order.
149149 MOF_END
150150 };
151 template <> struct EnumPropsT<ModifyOrderFlags> : MakeEnumPropsT<ModifyOrderFlags, byte, MOF_NON_STOP, MOF_END, MOF_END, 4> {};
151152
152153 /**
153154 * Depot action to switch to when doing a MOF_DEPOT_ACTION.
00 //Microsoft Developer Studio generated resource script.
1 // $Id: ottdres.rc.in 19530 2010-03-31 22:12:30Z rubidium $
1 // $Id: ottdres.rc.in 19742 2010-04-30 21:24:33Z rubidium $
22 //
33 // This file is part of OpenTTD.
44 // OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
7878 //
7979
8080 VS_VERSION_INFO VERSIONINFO
81 FILEVERSION 1,0,0,19530
82 PRODUCTVERSION 1,0,0,19530
81 FILEVERSION 1,0,1,19742
82 PRODUCTVERSION 1,0,1,19742
8383 FILEFLAGSMASK 0x3fL
8484 #ifdef _DEBUG
8585 FILEFLAGS 0x1L
9797 VALUE "Comments", "This program is licensed under the GNU General Public License version 2.\0"
9898 VALUE "CompanyName", "OpenTTD Development Team\0"
9999 VALUE "FileDescription", "OpenTTD\0"
100 VALUE "FileVersion", "1.0.0\0"
100 VALUE "FileVersion", "1.0.1\0"
101101 VALUE "InternalName", "openttd\0"
102102 VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2010. All Rights Reserved.\0"
103103 VALUE "LegalTrademarks", "\0"
104104 VALUE "OriginalFilename", "openttd.exe\0"
105105 VALUE "PrivateBuild", "\0"
106106 VALUE "ProductName", "OpenTTD\0"
107 VALUE "ProductVersion", "1.0.0\0"
107 VALUE "ProductVersion", "1.0.1\0"
108108 VALUE "SpecialBuild", "-\0"
109109 END
110110 END
0 /* $Id: rail.cpp 17693 2009-10-04 17:16:41Z rubidium $ */
0 /* $Id: rail.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
180180
181181 bool ValParamRailtype(const RailType rail)
182182 {
183 return HasRailtypeAvail(_current_company, rail);
183 return rail < RAILTYPE_END && HasRailtypeAvail(_current_company, rail);
184184 }
185185
186186 RailType GetBestRailtype(const CompanyID company)
0 /* $Id: rail_cmd.cpp 19439 2010-03-16 20:54:26Z rubidium $ */
0 /* $Id: rail_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
368368 */
369369 CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
370370 {
371 RailType railtype = (RailType)p1;
372 Track track = (Track)p2;
371 RailType railtype = Extract<RailType, 0, 4>(p1);
372 Track track = Extract<Track, 0, 3>(p2);
373373 CommandCost cost(EXPENSES_CONSTRUCTION);
374374
375375 if (!ValParamRailtype(railtype) || !ValParamTrackOrientation(track)) return CMD_ERROR;
508508 */
509509 CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
510510 {
511 Track track = (Track)p2;
511 Track track = Extract<Track, 0, 3>(p2);
512512 CommandCost cost(EXPENSES_CONSTRUCTION);
513513 bool crossing = false;
514514
515 if (!ValParamTrackOrientation((Track)p2)) return CMD_ERROR;
515 if (!ValParamTrackOrientation(track)) return CMD_ERROR;
516516 TrackBits trackbit = TrackToTrackBits(track);
517517
518518 /* Need to read tile owner now because it may change when the rail is removed
742742 static CommandCost CmdRailTrackHelper(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
743743 {
744744 CommandCost ret, total_cost(EXPENSES_CONSTRUCTION);
745 Track track = (Track)GB(p2, 4, 3);
745 Track track = Extract<Track, 4, 3>(p2);
746746 bool remove = HasBit(p2, 7);
747 RailType railtype = (RailType)GB(p2, 0, 4);
747 RailType railtype = Extract<RailType, 0, 4>(p2);
748748
749749 if (!ValParamRailtype(railtype) || !ValParamTrackOrientation(track)) return CMD_ERROR;
750750 if (p1 >= MapSize()) return CMD_ERROR;
829829 CommandCost CmdBuildTrainDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
830830 {
831831 /* check railtype and valid direction for depot (0 through 3), 4 in total */
832 if (!ValParamRailtype((RailType)p1)) return CMD_ERROR;
832 RailType railtype = Extract<RailType, 0, 4>(p1);
833 if (!ValParamRailtype(railtype)) return CMD_ERROR;
833834
834835 Slope tileh = GetTileSlope(tile, NULL);
835836
836 DiagDirection dir = Extract<DiagDirection, 0>(p2);
837 DiagDirection dir = Extract<DiagDirection, 0, 2>(p2);
837838
838839 /* Prohibit construction if
839840 * The tile is non-flat AND
861862 Depot *d = new Depot(tile);
862863 d->town_index = ClosestTownFromTile(tile, UINT_MAX)->index;
863864
864 MakeRailDepot(tile, _current_company, d->index, dir, (RailType)p1);
865 MakeRailDepot(tile, _current_company, d->index, dir, railtype);
865866 MarkTileDirtyByTile(tile);
866867
867868 AddSideToSignalBuffer(tile, INVALID_DIAGDIR, _current_company);
894895 */
895896 CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
896897 {
897 Track track = (Track)GB(p1, 0, 3);
898 Track track = Extract<Track, 0, 3>(p1);
898899 bool ctrl_pressed = HasBit(p1, 3); // was the CTRL button pressed
899900 SignalVariant sigvar = (ctrl_pressed ^ HasBit(p1, 4)) ? SIG_SEMAPHORE : SIG_ELECTRIC; // the signal variant of the new signal
900 SignalType sigtype = (SignalType)GB(p1, 5, 3); // the signal type of the new signal
901 SignalType sigtype = Extract<SignalType, 5, 3>(p1); // the signal type of the new signal
901902 bool convert_signal = HasBit(p1, 8); // convert button pressed
902 SignalType cycle_start = (SignalType)GB(p1, 9, 3);
903 SignalType cycle_stop = (SignalType)GB(p1, 12, 3);
903 SignalType cycle_start = Extract<SignalType, 9, 3>(p1);
904 SignalType cycle_stop = Extract<SignalType, 12, 3>(p1);
904905 uint num_dir_cycle = GB(p1, 15, 2);
905906
906907 if (sigtype > SIGTYPE_LAST) return CMD_ERROR;
908 if (cycle_start > cycle_stop || cycle_stop > SIGTYPE_LAST) return CMD_ERROR;
907909
908910 /* You can only build signals on plain rail tiles, and the selected track must exist */
909911 if (!ValParamTrackOrientation(track) || !IsPlainRailTile(tile) ||
11211123 bool err = true;
11221124 TileIndex start_tile = tile;
11231125
1124 Track track = (Track)GB(p2, 0, 3);
1126 Track track = Extract<Track, 0, 3>(p2);
11251127 bool mode = HasBit(p2, 3);
11261128 bool semaphores = HasBit(p2, 4);
11271129 bool remove = HasBit(p2, 5);
11281130 bool autofill = HasBit(p2, 6);
1129 Trackdir trackdir = TrackToTrackdir(track);
11301131 byte signal_density = GB(p2, 24, 8);
11311132
1132 if (p1 >= MapSize()) return CMD_ERROR;
1133 if (p1 >= MapSize() || !ValParamTrackOrientation(track)) return CMD_ERROR;
11331134 TileIndex end_tile = p1;
11341135 if (signal_density == 0 || signal_density > 20) return CMD_ERROR;
11351136
11391140 * since the original amount will be too dense (shorter tracks) */
11401141 signal_density *= 2;
11411142
1143 Trackdir trackdir = TrackToTrackdir(track);
11421144 if (ValidateAutoDrag(&trackdir, tile, end_tile).Failed()) return CMD_ERROR;
11431145
11441146 track = TrackdirToTrack(trackdir); // trackdir might have changed, keep track in sync
12601262 */
12611263 CommandCost CmdRemoveSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
12621264 {
1263 Track track = (Track)GB(p1, 0, 3);
1265 Track track = Extract<Track, 0, 3>(p1);
12641266
12651267 if (!ValParamTrackOrientation(track) ||
12661268 !IsPlainRailTile(tile) ||
13601362 CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
13611363 {
13621364 CommandCost cost(EXPENSES_CONSTRUCTION);
1363 RailType totype = (RailType)p2;
1365 RailType totype = Extract<RailType, 0, 4>(p2);
13641366
13651367 if (!ValParamRailtype(totype)) return CMD_ERROR;
13661368 if (p1 >= MapSize()) return CMD_ERROR;
25222524
25232525 static void GetTileDesc_Track(TileIndex tile, TileDesc *td)
25242526 {
2527 const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
2528 td->rail_speed = rti->max_speed;
25252529 td->owner[0] = GetTileOwner(tile);
25262530 switch (GetRailTileType(tile)) {
25272531 case RAIL_TILE_NORMAL:
25952599
25962600 case RAIL_TILE_DEPOT:
25972601 td->str = STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT;
2602 if (_settings_game.vehicle.train_acceleration_model != AM_ORIGINAL) {
2603 if (td->rail_speed > 0) {
2604 td->rail_speed = min(td->rail_speed, 61);
2605 } else {
2606 td->rail_speed = 61;
2607 }
2608 }
25982609 break;
25992610
26002611 default:
0 /* $Id: rail_gui.cpp 19439 2010-03-16 20:54:26Z rubidium $ */
0 /* $Id: rail_gui.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
269269
270270 static void PlaceRail_Tunnel(TileIndex tile)
271271 {
272 DoCommandP(tile, _cur_railtype, 0, CMD_BUILD_TUNNEL | CMD_MSG(STR_ERROR_CAN_T_BUILD_TUNNEL_HERE), CcBuildRailTunnel);
272 DoCommandP(tile, _cur_railtype | (TRANSPORT_RAIL << 8), 0, CMD_BUILD_TUNNEL | CMD_MSG(STR_ERROR_CAN_T_BUILD_TUNNEL_HERE), CcBuildRailTunnel);
273273 }
274274
275275 static void PlaceRail_ConvertRail(TileIndex tile)
813813
814814 virtual void OnPlacePresize(Point pt, TileIndex tile)
815815 {
816 DoCommand(tile, _cur_railtype, 0, DC_AUTO, CMD_BUILD_TUNNEL);
816 DoCommand(tile, _cur_railtype | (TRANSPORT_RAIL << 8), 0, DC_AUTO, CMD_BUILD_TUNNEL);
817817 VpSetPresizeRange(tile, _build_tunnel_endtile == 0 ? tile : _build_tunnel_endtile);
818818 }
819819
0 /* $Id: rail_type.h 18970 2010-01-30 21:59:22Z peter1138 $ */
0 /* $Id: rail_type.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1414 #include "core/enum_type.hpp"
1515
1616 typedef uint32 RailTypeLabel;
17
18 static const RailTypeLabel RAILTYPE_RAIL_LABEL = 'RAIL';
19 static const RailTypeLabel RAILTYPE_ELECTRIC_LABEL = 'ELRL';
20 static const RailTypeLabel RAILTYPE_MONO_LABEL = 'MONO';
21 static const RailTypeLabel RAILTYPE_MAGLEV_LABEL = 'MGLV';
1722
1823 /**
1924 * Enumeration for all possible railtypes.
3742 /** Allow incrementing of Track variables */
3843 DECLARE_POSTFIX_INCREMENT(RailType);
3944 /** Define basic enum properties */
40 template <> struct EnumPropsT<RailType> : MakeEnumPropsT<RailType, byte, RAILTYPE_BEGIN, RAILTYPE_END, INVALID_RAILTYPE> {};
45 template <> struct EnumPropsT<RailType> : MakeEnumPropsT<RailType, byte, RAILTYPE_BEGIN, RAILTYPE_END, INVALID_RAILTYPE, 4> {};
4146 typedef TinyEnumT<RailType> RailTypeByte;
4247
4348 /**
0 /* $Id: rev.cpp.in 19530 2010-03-31 22:12:30Z rubidium $ */
0 /* $Id: rev.cpp.in 19742 2010-04-30 21:24:33Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2626 * norev000 is for non-releases that are made on systems without
2727 * subversion or sources that are not a checkout of subversion.
2828 */
29 const char _openttd_revision[] = "1.0.0";
29 const char _openttd_revision[] = "1.0.1";
3030
3131 /**
3232 * The text version of OpenTTD's build date.
5959 * final release will always have a lower version number than the released
6060 * version, thus making comparisions on specific revisions easy.
6161 */
62 const uint32 _openttd_newgrf_version = 1 << 28 | 0 << 24 | 0 << 20 | 1 << 19 | (19530 & ((1 << 19) - 1));
62 const uint32 _openttd_newgrf_version = 1 << 28 | 0 << 24 | 1 << 20 | 1 << 19 | (19742 & ((1 << 19) - 1));
6363
6464 #ifdef __MORPHOS__
6565 /**
6666 * Variable used by MorphOS to show the version.
6767 */
68 extern const char morphos_versions_tag[] = "$VER: OpenTTD 1.0.0 (!!DATE!!) OpenTTD Team [MorphOS, PowerPC]";
68 extern const char morphos_versions_tag[] = "$VER: OpenTTD 1.0.1 (!!DATE!!) OpenTTD Team [MorphOS, PowerPC]";
6969 #endif
0 /* $Id: road_cmd.cpp 19439 2010-03-16 20:54:26Z rubidium $ */
0 /* $Id: road_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
454454 p2 = (town != NULL) ? town->index : (TownID)INVALID_TOWN;
455455 }
456456
457 RoadBits pieces = Extract<RoadBits, 0>(p1);
457 RoadBits pieces = Extract<RoadBits, 0, 4>(p1);
458458
459459 /* do not allow building 'zero' road bits, code wouldn't handle it */
460460 if (pieces == ROAD_NONE) return CMD_ERROR;
461461
462 RoadType rt = (RoadType)GB(p1, 4, 2);
462 RoadType rt = Extract<RoadType, 4, 2>(p1);
463463 if (!IsValidRoadType(rt) || !ValParamRoadType(rt)) return CMD_ERROR;
464464
465 DisallowedRoadDirections toggle_drd = (DisallowedRoadDirections)GB(p1, 6, 2);
465 DisallowedRoadDirections toggle_drd = Extract<DisallowedRoadDirections, 6, 2>(p1);
466466
467467 Slope tileh = GetTileSlope(tile, NULL);
468468
713713 if (p1 >= MapSize()) return CMD_ERROR;
714714
715715 TileIndex end_tile = p1;
716 RoadType rt = (RoadType)GB(p2, 3, 2);
716 RoadType rt = Extract<RoadType, 3, 2>(p2);
717717 if (!IsValidRoadType(rt) || !ValParamRoadType(rt)) return CMD_ERROR;
718718
719 Axis axis = Extract<Axis, 2>(p2);
719 Axis axis = Extract<Axis, 2, 1>(p2);
720720 /* Only drag in X or Y direction dictated by the direction variable */
721721 if (axis == AXIS_X && TileY(start_tile) != TileY(end_tile)) return CMD_ERROR; // x-axis
722722 if (axis == AXIS_Y && TileX(start_tile) != TileX(end_tile)) return CMD_ERROR; // y-axis
800800 if (p1 >= MapSize()) return CMD_ERROR;
801801
802802 TileIndex end_tile = p1;
803 RoadType rt = (RoadType)GB(p2, 3, 2);
803 RoadType rt = Extract<RoadType, 3, 2>(p2);
804804 if (!IsValidRoadType(rt)) return CMD_ERROR;
805805
806 Axis axis = Extract<Axis, 2>(p2);
806 Axis axis = Extract<Axis, 2, 1>(p2);
807807 /* Only drag in X or Y direction dictated by the direction variable */
808808 if (axis == AXIS_X && TileY(start_tile) != TileY(end_tile)) return CMD_ERROR; // x-axis
809809 if (axis == AXIS_Y && TileX(start_tile) != TileX(end_tile)) return CMD_ERROR; // y-axis
863863 */
864864 CommandCost CmdBuildRoadDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
865865 {
866 DiagDirection dir = Extract<DiagDirection, 0>(p1);
867 RoadType rt = (RoadType)GB(p1, 2, 2);
866 DiagDirection dir = Extract<DiagDirection, 0, 2>(p1);
867 RoadType rt = Extract<RoadType, 2, 2>(p1);
868868
869869 if (!IsValidRoadType(rt) || !ValParamRoadType(rt)) return CMD_ERROR;
870870
14991499 rail_owner = GetTileOwner(tile);
15001500 if (HasBit(rts, ROADTYPE_ROAD)) road_owner = GetRoadOwner(tile, ROADTYPE_ROAD);
15011501 if (HasBit(rts, ROADTYPE_TRAM)) tram_owner = GetRoadOwner(tile, ROADTYPE_TRAM);
1502
1503 const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
1504 td->rail_speed = rti->max_speed;
1505
15021506 break;
15031507 }
15041508
0 /* $Id: road_func.h 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: road_func.h 19552 2010-04-03 19:57:23Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2525 static inline bool IsValidRoadType(RoadType rt)
2626 {
2727 return rt == ROADTYPE_ROAD || rt == ROADTYPE_TRAM;
28 }
29
30 /**
31 * Are the given bits pointing to valid roadtypes?
32 * @param rts the roadtypes to check for validness
33 * @return true if and only if valid
34 */
35 static inline bool AreValidRoadTypes(RoadTypes rts)
36 {
37 return HasBit(rts, ROADTYPE_ROAD) || HasBit(rts, ROADTYPE_TRAM);
3828 }
3929
4030 /**
0 /* $Id: road_gui.cpp 18966 2010-01-30 18:34:48Z frosch $ */
0 /* $Id: road_gui.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
173173
174174 static void PlaceRoad_Tunnel(TileIndex tile)
175175 {
176 DoCommandP(tile, 0x200 | RoadTypeToRoadTypes(_cur_roadtype), 0, CMD_BUILD_TUNNEL | CMD_MSG(STR_ERROR_CAN_T_BUILD_TUNNEL_HERE), CcBuildRoadTunnel);
176 DoCommandP(tile, RoadTypeToRoadTypes(_cur_roadtype) | (TRANSPORT_ROAD << 8), 0, CMD_BUILD_TUNNEL | CMD_MSG(STR_ERROR_CAN_T_BUILD_TUNNEL_HERE), CcBuildRoadTunnel);
177177 }
178178
179179 static void BuildRoadOutsideStation(TileIndex tile, DiagDirection direction)
612612
613613 virtual void OnPlacePresize(Point pt, TileIndex tile)
614614 {
615 DoCommand(tile, 0x200 | RoadTypeToRoadTypes(_cur_roadtype), 0, DC_AUTO, CMD_BUILD_TUNNEL);
615 DoCommand(tile, RoadTypeToRoadTypes(_cur_roadtype) | (TRANSPORT_ROAD << 8), 0, DC_AUTO, CMD_BUILD_TUNNEL);
616616 VpSetPresizeRange(tile, _build_tunnel_endtile == 0 ? tile : _build_tunnel_endtile);
617617 }
618618
0 /* $Id: road_map.h 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: road_map.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
167167 DRD_END
168168 };
169169 DECLARE_ENUM_AS_BIT_SET(DisallowedRoadDirections);
170 template <> struct EnumPropsT<DisallowedRoadDirections> : MakeEnumPropsT<DisallowedRoadDirections, byte, DRD_NONE, DRD_END, DRD_END, 2> {};
170171
171172 /**
172173 * Gets the disallowed directions
0 /* $Id: road_type.h 17248 2009-08-21 20:21:05Z rubidium $ */
0 /* $Id: road_type.h 19690 2010-04-21 19:20:28Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2626 INVALID_ROADTYPE = 0xFF ///< flag for invalid roadtype
2727 };
2828 DECLARE_POSTFIX_INCREMENT(RoadType);
29 template <> struct EnumPropsT<RoadType> : MakeEnumPropsT<RoadType, byte, ROADTYPE_BEGIN, ROADTYPE_END, INVALID_ROADTYPE, 2> {};
2930
3031 /**
3132 * The different roadtypes we support, but then a bitmask of them
4041 INVALID_ROADTYPES = 0xFF ///< Invalid roadtypes
4142 };
4243 DECLARE_ENUM_AS_BIT_SET(RoadTypes);
44 template <> struct EnumPropsT<RoadTypes> : MakeEnumPropsT<RoadTypes, byte, ROADTYPES_NONE, ROADTYPES_END, INVALID_ROADTYPES, 2> {};
4345 typedef SimpleTinyEnumT<RoadTypes, byte> RoadTypesByte;
4446
4547
6365 ROAD_S = ROAD_SE | ROAD_SW, ///< Road at the two southern edges
6466 ROAD_W = ROAD_NW | ROAD_SW, ///< Road at the two western edges
6567
66 ROAD_ALL = ROAD_X | ROAD_Y ///< Full 4-way crossing
68 ROAD_ALL = ROAD_X | ROAD_Y, ///< Full 4-way crossing
69
70 ROAD_END = ROAD_ALL + 1 ///< Out-of-range roadbits, used for iterations
6771 };
6872 DECLARE_ENUM_AS_BIT_SET(RoadBits);
73 template <> struct EnumPropsT<RoadBits> : MakeEnumPropsT<RoadBits, byte, ROAD_NONE, ROAD_END, ROAD_NONE, 4> {};
6974
7075 #endif /* ROAD_TYPE_H */
0 /* $Id: roadveh_cmd.cpp 19091 2010-02-10 21:28:26Z rubidium $ */
0 /* $Id: roadveh_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
199199 */
200200 CommandCost CmdBuildRoadVeh(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
201201 {
202 if (!IsEngineBuildable(p1, VEH_ROAD, _current_company)) return_cmd_error(STR_ERROR_ROAD_VEHICLE_NOT_AVAILABLE);
203
204 const Engine *e = Engine::Get(p1);
202 EngineID eid = GB(p1, 0, 16);
203 if (!IsEngineBuildable(eid, VEH_ROAD, _current_company)) return_cmd_error(STR_ERROR_ROAD_VEHICLE_NOT_AVAILABLE);
204
205 const Engine *e = Engine::Get(eid);
205206 /* Engines without valid cargo should not be available */
206207 if (e->GetDefaultCargoType() == CT_INVALID) return CMD_ERROR;
207208
215216
216217 if (HasTileRoadType(tile, ROADTYPE_TRAM) != HasBit(e->info.misc_flags, EF_ROAD_TRAM)) return_cmd_error(STR_ERROR_DEPOT_WRONG_DEPOT_TYPE);
217218
218 uint num_vehicles = 1 + CountArticulatedParts(p1, false);
219 uint num_vehicles = 1 + CountArticulatedParts(eid, false);
219220
220221 /* Allow for the front and the articulated parts */
221222 if (!Vehicle::CanAllocateItem(num_vehicles)) {
253254
254255 v->last_station_visited = INVALID_STATION;
255256 v->max_speed = rvi->max_speed;
256 v->engine_type = (EngineID)p1;
257 v->engine_type = eid;
257258 v->rcache.first_engine = INVALID_ENGINE; // needs to be set before first callback
258259
259260 v->reliability = e->reliability;
296297 InvalidateAutoreplaceWindow(v->engine_type, v->group_id); // updates the replace Road window
297298 }
298299
299 Company::Get(_current_company)->num_engines[p1]++;
300 Company::Get(_current_company)->num_engines[eid]++;
300301
301302 CheckConsistencyOfArticulatedVehicle(v);
302303 }
17361737 if (flags & DC_EXEC) {
17371738 RoadVehicle *front = v->First();
17381739 RoadVehUpdateCache(front);
1739 SetWindowDirty(WC_VEHICLE_DETAILS, front->index);
1740 InvalidateWindowData(WC_VEHICLE_DETAILS, front->index);
17401741 SetWindowDirty(WC_VEHICLE_DEPOT, front->tile);
17411742 InvalidateWindowClassesData(WC_ROADVEH_LIST, 0);
17421743 } else {
0 /* $Id: saveload.cpp 19044 2010-02-06 17:26:21Z rubidium $ */
0 /* $Id: saveload.cpp 19646 2010-04-16 22:02:33Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
18811881 /* General tactic is to first save the game to memory, then use an available writer
18821882 * to write it to file, either in threaded mode if possible, or single-threaded */
18831883 if (mode == SL_SAVE) { // SAVE game
1884 DEBUG(desync, 1, "save: %s\n", filename);
1884 DEBUG(desync, 1, "save: %08x; %02x; %s", _date, _date_fract, filename);
18851885
18861886 _sl.write_bytes = WriteMem;
18871887 _sl.excpt_uninit = UnInitMem;
19051905 }
19061906 } else { // LOAD game
19071907 assert(mode == SL_LOAD);
1908 DEBUG(desync, 1, "load: %s\n", filename);
1908 DEBUG(desync, 1, "load: %s", filename);
19091909
19101910 /* Can't fseek to 0 as in tar files that is not correct */
19111911 long pos = ftell(_sl.fh);
0 /* $Id: waypoint_sl.cpp 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: waypoint_sl.cpp 19741 2010-04-30 21:01:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
6969 * waypoint struct. */
7070 if (CheckSavegameVersion(17)) {
7171 for (OldWaypoint *wp = _old_waypoints.Begin(); wp != _old_waypoints.End(); wp++) {
72 if (wp->delete_ctr == 0 && HasBit(_m[wp->xy].m3, 4)) {
72 if (wp->delete_ctr != 0) continue; // The waypoint was deleted
73
74 /* Waypoint indices were not added to the map prior to this. */
75 _m[wp->xy].m2 = (StationID)wp->index;
76
77 if (HasBit(_m[wp->xy].m3, 4)) {
7378 wp->spec = GetCustomStationSpec(STAT_CLASS_WAYP, _m[wp->xy].m4 + 1);
7479 }
7580 }
0 /* $Id: settings_gui.cpp 19081 2010-02-10 16:24:05Z rubidium $ */
0 /* $Id: settings_gui.cpp 19555 2010-04-03 20:19:26Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
13681368 static SettingEntry _settings_economy_industries[] = {
13691369 SettingEntry("construction.raw_industry_construction"),
13701370 SettingEntry("economy.multiple_industry_per_town"),
1371 SettingEntry("economy.same_industry_close"),
13721371 SettingEntry("game_creation.oil_refinery_limit"),
13731372 };
13741373 /** Industries sub-page */
0 /* $Id: settings_type.h 19082 2010-02-10 17:01:03Z smatz $ */
0 /* $Id: settings_type.h 19555 2010-04-03 20:19:26Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
337337 bool give_money; ///< allow giving other companies money
338338 bool mod_road_rebuild; ///< roadworks remove unneccesary RoadBits
339339 bool multiple_industry_per_town; ///< allow many industries of the same type per town
340 bool same_industry_close; ///< allow same type industries to be built close to each other
341340 uint8 town_growth_rate; ///< town growth rate
342341 uint8 larger_towns; ///< the number of cities to build. These start off larger and grow twice as fast
343342 uint8 initial_city_size; ///< multiplier for the initial size of the cities compared to towns
0 /* $Id: ship_cmd.cpp 19091 2010-02-10 21:28:26Z rubidium $ */
0 /* $Id: ship_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
610610 */
611611 CommandCost CmdBuildShip(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
612612 {
613 EngineID eid = GB(p1, 0, 16);
613614 UnitID unit_num;
614615
615 if (!IsEngineBuildable(p1, VEH_SHIP, _current_company)) return_cmd_error(STR_ERROR_SHIP_NOT_AVAILABLE);
616
617 const Engine *e = Engine::Get(p1);
616 if (!IsEngineBuildable(eid, VEH_SHIP, _current_company)) return_cmd_error(STR_ERROR_SHIP_NOT_AVAILABLE);
617
618 const Engine *e = Engine::Get(eid);
618619 CommandCost value(EXPENSES_NEW_VEHICLES, e->GetCost());
619620
620621 /* Engines without valid cargo should not be available */
659660
660661 v->last_station_visited = INVALID_STATION;
661662 v->max_speed = svi->max_speed;
662 v->engine_type = p1;
663 v->engine_type = eid;
663664
664665 v->reliability = e->reliability;
665666 v->reliability_spd_dec = e->reliability_spd_dec;
691692 InvalidateAutoreplaceWindow(v->engine_type, v->group_id); // updates the replace Ship window
692693 }
693694
694 Company::Get(_current_company)->num_engines[p1]++;
695 Company::Get(_current_company)->num_engines[eid]++;
695696 }
696697
697698 return value;
0 /* $Id: signal_type.h 17248 2009-08-21 20:21:05Z rubidium $ */
0 /* $Id: signal_type.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2626 SIGTYPE_COMBO = 3, ///< presignal inter-block
2727 SIGTYPE_PBS = 4, ///< normal pbs signal
2828 SIGTYPE_PBS_ONEWAY = 5, ///< no-entry signal
29
30 SIGTYPE_END,
2931 SIGTYPE_LAST = SIGTYPE_PBS_ONEWAY,
3032 SIGTYPE_LAST_NOPBS = SIGTYPE_COMBO
3133 };
34 template <> struct EnumPropsT<SignalType> : MakeEnumPropsT<SignalType, byte, SIGTYPE_NORMAL, SIGTYPE_END, SIGTYPE_END, 3> {};
3235
3336
3437 #endif /* SIGNAL_TYPE_H */
0 /* $Id: smallmap_gui.cpp 19376 2010-03-08 22:19:39Z rubidium $ */
0 /* $Id: smallmap_gui.cpp 19552 2010-04-03 19:57:23Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
391391 if (_legend_from_industries[_industry_to_list_pos[Industry::GetByTile(tile)->type]].show_on_map) {
392392 return GetIndustrySpec(Industry::GetByTile(tile)->type)->map_colour * 0x01010101;
393393 } else {
394 /* Otherwise, return the colour of the clear tiles, which will make it disappear */
395 t = MP_CLEAR;
394 /* Otherwise, return the colour which will make it disappear */
395 t = (GetWaterClass(tile) == WATER_CLASS_INVALID) ? MP_CLEAR : MP_WATER;
396396 }
397397 }
398398
0 /* $Id: station_cmd.cpp 19393 2010-03-12 21:12:35Z rubidium $ */
0 /* $Id: station_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
972972 CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
973973 {
974974 /* Unpack parameters */
975 RailType rt = (RailType)GB(p1, 0, 4);
976 Axis axis = Extract<Axis, 4>(p1);
975 RailType rt = Extract<RailType, 0, 4>(p1);
976 Axis axis = Extract<Axis, 4, 1>(p1);
977977 byte numtracks = GB(p1, 8, 8);
978978 byte plat_len = GB(p1, 16, 8);
979979 bool adjacent = HasBit(p1, 24);
980980
981 StationClassID spec_class = (StationClassID)GB(p2, 0, 8);
981 StationClassID spec_class = Extract<StationClassID, 0, 8>(p2);
982982 byte spec_index = GB(p2, 8, 8);
983983 StationID station_to_join = GB(p2, 16, 16);
984984
987987 if (!ValParamRailtype(rt)) return CMD_ERROR;
988988
989989 /* Check if the given station class is valid */
990 if ((uint)spec_class >= GetNumStationClasses()) return CMD_ERROR;
990 if ((uint)spec_class >= GetNumStationClasses() || spec_class == STAT_CLASS_WAYP) return CMD_ERROR;
991991 if (spec_index >= GetNumCustomStations(spec_class)) return CMD_ERROR;
992992 if (plat_len == 0 || numtracks == 0) return CMD_ERROR;
993993
15231523 bool type = HasBit(p2, 0);
15241524 bool is_drive_through = HasBit(p2, 1);
15251525 bool build_over_road = is_drive_through && IsNormalRoadTile(tile);
1526 RoadTypes rts = (RoadTypes)GB(p2, 2, 2);
1526 RoadTypes rts = Extract<RoadTypes, 2, 2>(p2);
15271527 StationID station_to_join = GB(p2, 16, 16);
15281528 bool reuse = (station_to_join != NEW_STATION);
15291529 if (!reuse) station_to_join = INVALID_STATION;
15331533
15341534 if (distant_join && (!_settings_game.station.distant_join_stations || !Station::IsValidID(station_to_join))) return CMD_ERROR;
15351535
1536 if (!AreValidRoadTypes(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
1536 if (!HasExactlyOneBit(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
15371537
15381538 /* Trams only have drive through stops */
15391539 if (!is_drive_through && HasBit(rts, ROADTYPE_TRAM)) return CMD_ERROR;
25742574 td->grf = gc->name;
25752575 }
25762576 }
2577
2578 const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
2579 td->rail_speed = rti->max_speed;
25772580 }
25782581
25792582 StringID str;
0 /* $Id: stdafx.h 19258 2010-02-25 21:18:38Z rubidium $ */
0 /* $Id: stdafx.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
275275 /* MSVCRT of course has to have a different syntax for long long *sigh* */
276276 #if defined(_MSC_VER) || defined(__MINGW32__)
277277 #define OTTD_PRINTF64 "%I64d"
278 #define OTTD_PRINTFHEX64 "%I64x"
278279 #define PRINTF_SIZE "%Iu"
279280 #else
280281 #define OTTD_PRINTF64 "%lld"
282 #define OTTD_PRINTFHEX64 "%llx"
281283 #define PRINTF_SIZE "%zu"
282284 #endif
283285
310312 #define PERSONAL_DIR ""
311313 #endif
312314
313 /* Compile time assertions. Prefer c++0x static_assert() */
315 /* Compile time assertions. Prefer c++0x static_assert().
316 * Older compilers cannot evaluate some expressions at compile time,
317 * typically when templates are involved, try assert_tcompile() in those cases. */
314318 #if defined(__STDCXX_VERSION__) || defined(__GXX_EXPERIMENTAL_CXX0X__) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(static_assert)
315319 /* __STDCXX_VERSION__ is c++0x feature macro, __GXX_EXPERIMENTAL_CXX0X__ is used by gcc, __GXX_EXPERIMENTAL_CPP0X__ by icc */
316320 #define assert_compile(expr) static_assert(expr, #expr )
321 #define assert_tcompile(expr) assert_compile(expr)
317322 #elif defined(__OS2__)
318323 /* Disabled for OS/2 */
319324 #define assert_compile(expr)
325 #define assert_tcompile(expr) assert_compile(expr)
320326 #else
321327 #define assert_compile(expr) typedef int __ct_assert__[1 - 2 * !(expr)]
328 #define assert_tcompile(expr) assert(expr)
322329 #endif
323330
324331 /* Check if the types have the bitsizes like we are using them */
0 /* $Id: strings.cpp 19223 2010-02-23 23:26:37Z rubidium $ */
0 /* $Id: strings.cpp 19653 2010-04-17 12:00:59Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
230230 return FormatNumber(buff, number, last, "", 20 - count);
231231 }
232232
233 static char *FormatHexNumber(char *buff, int64 number, const char *last)
234 {
235 return buff + seprintf(buff, last, "0x%x", (uint32)number);
233 static char *FormatHexNumber(char *buff, uint64 number, const char *last)
234 {
235 return buff + seprintf(buff, last, "0x" OTTD_PRINTFHEX64, number);
236236 }
237237
238238 /**
389389 case 2:
390390 return n > 1;
391391
392 /* Three forms, special case for zero
392 /* Three forms, special case for 0 and ending in 1, except those ending in 11
393393 * Used in:
394394 * Latvian */
395395 case 3:
396396 return n % 10 == 1 && n % 100 != 11 ? 0 : n != 0 ? 1 : 2;
397397
398 /* Three forms, special case for one and two
398 /* Five forms, special case for one, two, 3 to 6 and 7 to 10
399399 * Used in:
400400 * Gaelige (Irish) */
401401 case 4:
402 return n == 1 ? 0 : n == 2 ? 1 : 2;
402 return n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4;
403403
404404 /* Three forms, special case for numbers ending in 1[2-9]
405405 * Used in:
409409
410410 /* Three forms, special cases for numbers ending in 1 and 2, 3, 4, except those ending in 1[1-4]
411411 * Used in:
412 * Croatian, Russian, Slovak, Ukrainian */
412 * Croatian, Russian, Ukrainian */
413413 case 6:
414414 return n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2;
415415
433433
434434 /* Three forms, special cases for one and 2, 3, or 4
435435 * Used in:
436 * Czech */
436 * Czech, Slovak */
437437 case 10:
438438 return n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2;
439439
462462 default:
463463 NOT_REACHED();
464464 }
465
466 /* Four forms: one, 0 and everything ending in 02..10, everything ending in 11..19.
467 * Used in:
468 * Maltese */
469 case 12:
470 return (n == 1 ? 0 : n == 0 || (n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20) ? 2 : 3);
465471 }
466472 }
467473
551557 WChar b;
552558 int64 *argv_orig = argv;
553559 uint modifier = 0;
560 char *buf_start = buff;
554561
555562 while ((b = Utf8Consume(&str)) != '\0') {
556563 if (SCC_NEWGRF_FIRST <= b && b <= SCC_NEWGRF_LAST) {
557564 /* We need to pass some stuff as it might be modified; oh boy. */
558 b = RemapNewGRFStringControlCode(b, &buff, &str, argv);
565 b = RemapNewGRFStringControlCode(b, buf_start, &buff, &str, argv);
559566 if (b == 0) continue;
560567 }
561568
855862 } break;
856863
857864 case SCC_HEX: // {HEX}
858 buff = FormatHexNumber(buff, GetInt64(&argv), last);
865 buff = FormatHexNumber(buff, (uint64)GetInt64(&argv), last);
859866 break;
860867
861868 case SCC_BYTES: // {BYTES}
0 /* $Id: control_codes.h 18339 2009-11-29 17:24:39Z rubidium $ */
0 /* $Id: control_codes.h 19585 2010-04-08 15:40:46Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
122122 SCC_NEWGRF_PRINT_HEX_BYTE, ///< Read 1 byte from the stack and print it as hex
123123 SCC_NEWGRF_PRINT_HEX_WORD, ///< Read 2 bytes from the stack and print it as hex
124124 SCC_NEWGRF_PRINT_HEX_DWORD, ///< Read 4 bytes from the stack and print it as hex
125 SCC_NEWGRF_PRINT_HEX_QWORD, ///< Read 8 bytes from the stack and print it as hex
125126 SCC_NEWGRF_PUSH_WORD, ///< Pushes 2 bytes onto the stack
126127 SCC_NEWGRF_UNPRINT, ///< "Unprints" the given number of bytes from the string
127128 SCC_NEWGRF_DISCARD_WORD, ///< Discard the next two bytes
0 /* $Id: settings.h 19393 2010-03-12 21:12:35Z rubidium $ */
0 /* $Id: settings.h 19555 2010-04-03 20:19:26Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
424424 SDT_BOOL(GameSettings, economy.inflation, 0, 0, true, STR_CONFIG_SETTING_INFLATION, NULL),
425425 SDT_VAR(GameSettings, construction.raw_industry_construction, SLE_UINT8, 0,MS, 0, 0, 2, 0, STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD, InvalidateBuildIndustryWindow),
426426 SDT_BOOL(GameSettings, economy.multiple_industry_per_town, 0, 0, false, STR_CONFIG_SETTING_MULTIPINDTOWN, NULL),
427 SDT_BOOL(GameSettings, economy.same_industry_close, 0, 0, false, STR_CONFIG_SETTING_SAMEINDCLOSE, NULL),
427 SDT_CONDNULL( 1, 0, 140),
428428 SDT_BOOL(GameSettings, economy.bribe, 0, 0, true, STR_CONFIG_SETTING_BRIBE, NULL),
429429 SDT_CONDBOOL(GameSettings, economy.exclusive_rights, 79, SL_MAX_VERSION, 0, 0, true, STR_CONFIG_SETTING_ALLOW_EXCLUSIVE, NULL),
430430 SDT_CONDBOOL(GameSettings, economy.give_money, 79, SL_MAX_VERSION, 0, 0, true, STR_CONFIG_SETTING_ALLOW_GIVE_MONEY, NULL),
0 /* $Id: strgen_tables.h 19223 2010-02-23 23:26:37Z rubidium $ */
0 /* $Id: strgen_tables.h 19653 2010-04-17 12:00:59Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
154154 { 1, "Only one form" },
155155 { 2, "Two forms, singular used for zero and 1" },
156156 { 3, "Three forms, special case for 0 and ending in 1, except those ending in 11" },
157 { 3, "Three forms, special case for 1 and 2" },
157 { 5, "Five forms, special case for one, two, 3 to 6 and 7 to 10" },
158158 { 3, "Three forms, special case for numbers ending in 1[2-9]" },
159159 { 3, "Three forms, special cases for numbers ending in 1 and 2, 3, 4, except those ending in 1[1-4]" },
160160 { 3, "Three forms, special case for 1 and some numbers ending in 2, 3, or 4" },
162162 { 2, "Two forms, singular used for everything ending in 1 but not in 11" },
163163 { 3, "Three forms, special case for 1 and 2, 3, or 4" },
164164 { 2, "Two forms, cases for numbers ending with a consonant and with a vowel" },
165 { 4, "Four forms: one, 0 and everything ending in 02..10, everything ending in 11..19" },
165166 };
166167
167168 /* Flags:
0 /* $Id: terraform_cmd.cpp 18866 2010-01-18 22:57:21Z rubidium $ */
0 /* $Id: terraform_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
371371 uint oldh = TileHeight(p1);
372372
373373 /* compute new height */
374 uint h = oldh + p2;
374 uint h = oldh + (int8)p2;
375375
376376 /* Check range of destination height */
377377 if (h > MAX_TILE_HEIGHT) return_cmd_error((oldh == 0) ? STR_ERROR_ALREADY_AT_SEA_LEVEL : STR_ERROR_TOO_HIGH);
0 /* $Id: tile_cmd.h 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: tile_cmd.h 19551 2010-04-03 19:48:01Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
5858 StringID station_name; ///< Type of station within the class
5959 const char *grf; ///< newGRF used for the tile contents
6060 uint64 dparam[2]; ///< Parameters of the \a str string
61 uint16 rail_speed; ///< Speed limit of rail
6162 };
6263
6364 /**
0 /* $Id: town_cmd.cpp 18866 2010-01-18 22:57:21Z rubidium $ */
0 /* $Id: town_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1313 #include "road_cmd.h"
1414 #include "landscape.h"
1515 #include "viewport_func.h"
16 #include "cmd_helper.h"
1617 #include "command_func.h"
1718 #include "industry.h"
1819 #include "station_base.h"
14441445 t->larger_town = city;
14451446
14461447 int x = (int)size * 16 + 3;
1447 if (size == TS_RANDOM) x = (Random() & 0xF) + 8;
1448 if (size == TSZ_RANDOM) x = (Random() & 0xF) + 8;
14481449 /* Don't create huge cities when founding town in-game */
14491450 if (city && (!manual || _game_mode == GM_EDITOR)) x *= _settings_game.economy.initial_city_size;
14501451
15171518 */
15181519 CommandCost CmdFoundTown(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
15191520 {
1520 TownSize size = (TownSize)GB(p1, 0, 2);
1521 TownSize size = Extract<TownSize, 0, 2>(p1);
15211522 bool city = HasBit(p1, 2);
1522 TownLayout layout = (TownLayout)GB(p1, 3, 3);
1523 TownLayout layout = Extract<TownLayout, 3, 3>(p1);
15231524 TownNameParams par(_settings_game.game_creation.town_name);
15241525 bool random = HasBit(p1, 6);
15251526 uint32 townnameparts = p2;
15261527
1527 if (size > TS_RANDOM) return CMD_ERROR;
1528 if (size > TSZ_RANDOM) return CMD_ERROR;
15281529 if (layout > TL_RANDOM) return CMD_ERROR;
15291530
15301531 /* Some things are allowed only in the scenario editor */
15311532 if (_game_mode != GM_EDITOR) {
15321533 if (_settings_game.economy.found_town == TF_FORBIDDEN) return CMD_ERROR;
1533 if (size == TS_LARGE) return CMD_ERROR;
1534 if (size == TSZ_LARGE) return CMD_ERROR;
15341535 if (random) return CMD_ERROR;
15351536 if (_settings_game.economy.found_town != TF_CUSTOM_LAYOUT && layout != _settings_game.economy.town_layout) {
15361537 return CMD_ERROR;
15541555 if (ret.Failed()) return ret;
15551556 }
15561557
1557 static const byte price_mult[][TS_RANDOM + 1] = {{ 15, 25, 40, 25 }, { 20, 35, 55, 35 }};
1558 static const byte price_mult[][TSZ_RANDOM + 1] = {{ 15, 25, 40, 25 }, { 20, 35, 55, 35 }};
15581559 /* multidimensional arrays have to have defined length of non-first dimension */
15591560 assert_compile(lengthof(price_mult[0]) == 4);
15601561
17811782 /* Get a unique name for the town. */
17821783 if (!GenerateTownName(&townnameparts)) continue;
17831784 /* try 20 times to create a random-sized town for the first loop. */
1784 if (CreateRandomTown(20, townnameparts, TS_RANDOM, city, layout) != NULL) num++; // if creation successfull, raise a flag
1785 if (CreateRandomTown(20, townnameparts, TSZ_RANDOM, city, layout) != NULL) num++; // If creation was successful, raise a flag.
17851786 } while (--n);
17861787
17871788 if (num != 0) return true;
17891790 /* If num is still zero at this point, it means that not a single town has been created.
17901791 * So give it a last try, but now more aggressive */
17911792 if (GenerateTownName(&townnameparts) &&
1792 CreateRandomTown(10000, townnameparts, TS_RANDOM, _settings_game.economy.larger_towns != 0, layout) != NULL) {
1793 CreateRandomTown(10000, townnameparts, TSZ_RANDOM, _settings_game.economy.larger_towns != 0, layout) != NULL) {
17931794 return true;
17941795 }
17951796
0 /* $Id: town_gui.cpp 19119 2010-02-13 14:02:36Z rubidium $ */
0 /* $Id: town_gui.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
10521052 public:
10531053 FoundTownWindow(const WindowDesc *desc, WindowNumber window_number) :
10541054 QueryStringBaseWindow(MAX_LENGTH_TOWN_NAME_BYTES),
1055 town_size(TS_MEDIUM),
1055 town_size(TSZ_MEDIUM),
10561056 town_layout(_settings_game.economy.town_layout),
10571057 params(_settings_game.game_creation.town_name)
10581058 {
0 /* $Id: town_type.h 18281 2009-11-24 21:18:11Z smatz $ */
0 /* $Id: town_type.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1818
1919 /** Supported initial town sizes */
2020 enum TownSize {
21 TS_SMALL, ///< small town
22 TS_MEDIUM, ///< medium town
23 TS_LARGE, ///< large town
24 TS_RANDOM, ///< random size, bigger than small, smaller than large
21 TSZ_SMALL, ///< Small town.
22 TSZ_MEDIUM, ///< Medium town.
23 TSZ_LARGE, ///< Large town.
24 TSZ_RANDOM, ///< Random size, bigger than small, smaller than large.
25
26 TSZ_END, ///< Number of available town sizes.
2527 };
28 template <> struct EnumPropsT<TownSize> : MakeEnumPropsT<TownSize, byte, TSZ_SMALL, TSZ_END, TSZ_END, 2> {};
2629
2730 enum {
2831 /* These refer to the maximums, so Appalling is -1000 to -400
8689
8790 NUM_TLS, ///< Number of town layouts
8891 };
92 template <> struct EnumPropsT<TownLayout> : MakeEnumPropsT<TownLayout, byte, TL_BEGIN, NUM_TLS, NUM_TLS, 3> {};
8993 /** It needs to be 8bits, because we save and load it as such */
9094 typedef SimpleTinyEnumT<TownLayout, byte> TownLayoutByte; // typedefing-enumification of TownLayout
9195
0 /* $Id: track_type.h 17248 2009-08-21 20:21:05Z rubidium $ */
0 /* $Id: track_type.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
3232 /** Allow incrementing of Track variables */
3333 DECLARE_POSTFIX_INCREMENT(Track);
3434 /** Define basic enum properties */
35 template <> struct EnumPropsT<Track> : MakeEnumPropsT<Track, byte, TRACK_BEGIN, TRACK_END, INVALID_TRACK> {};
35 template <> struct EnumPropsT<Track> : MakeEnumPropsT<Track, byte, TRACK_BEGIN, TRACK_END, INVALID_TRACK, 3> {};
3636 typedef TinyEnumT<Track> TrackByte;
3737
3838
9393 };
9494
9595 /** Define basic enum properties */
96 template <> struct EnumPropsT<Trackdir> : MakeEnumPropsT<Trackdir, byte, TRACKDIR_BEGIN, TRACKDIR_END, INVALID_TRACKDIR> {};
96 template <> struct EnumPropsT<Trackdir> : MakeEnumPropsT<Trackdir, byte, TRACKDIR_BEGIN, TRACKDIR_END, INVALID_TRACKDIR, 4> {};
9797 typedef TinyEnumT<Trackdir> TrackdirByte;
9898
9999 /**
0 /* $Id: train_cmd.cpp 19300 2010-03-02 00:38:01Z rubidium $ */
0 /* $Id: train_cmd.cpp 19690 2010-04-21 19:20:28Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
480480 int st_max_speed = 120;
481481
482482 int delta_v = this->cur_speed / (distance_to_go + 1);
483 if (this->max_speed > (this->cur_speed - delta_v)) {
483 if (max_speed > (this->cur_speed - delta_v)) {
484484 st_max_speed = this->cur_speed - (delta_v / 10);
485485 }
486486
815815 */
816816 CommandCost CmdBuildRailVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
817817 {
818 EngineID eid = GB(p1, 0, 16);
818819 /* Check if the engine-type is valid (for the company) */
819 if (!IsEngineBuildable(p1, VEH_TRAIN, _current_company)) return_cmd_error(STR_ERROR_RAIL_VEHICLE_NOT_AVAILABLE);
820
821 const Engine *e = Engine::Get(p1);
820 if (!IsEngineBuildable(eid, VEH_TRAIN, _current_company)) return_cmd_error(STR_ERROR_RAIL_VEHICLE_NOT_AVAILABLE);
821
822 const Engine *e = Engine::Get(eid);
822823 const RailVehicleInfo *rvi = &e->u.rail;
823824 CommandCost value(EXPENSES_NEW_VEHICLES, e->GetCost());
824825
832833 if (!IsRailDepotTile(tile)) return CMD_ERROR;
833834 if (!IsTileOwner(tile, _current_company)) return CMD_ERROR;
834835
835 if (rvi->railveh_type == RAILVEH_WAGON) return CmdBuildRailWagon(p1, tile, flags);
836 if (rvi->railveh_type == RAILVEH_WAGON) return CmdBuildRailWagon(eid, tile, flags);
836837
837838 uint num_vehicles =
838839 (rvi->railveh_type == RAILVEH_MULTIHEAD ? 2 : 1) +
839 CountArticulatedParts(p1, false);
840 CountArticulatedParts(eid, false);
840841
841842 /* Check if depot and new engine uses the same kind of tracks *
842843 * We need to see if the engine got power on the tile to avoid eletric engines in non-electric depots */
874875 v->value = value.GetCost();
875876 v->last_station_visited = INVALID_STATION;
876877
877 v->engine_type = p1;
878 v->engine_type = eid;
878879 v->tcache.first_engine = INVALID_ENGINE; // needs to be set before first callback
879880
880881 v->reliability = e->reliability;
919920 InvalidateAutoreplaceWindow(v->engine_type, v->group_id); // updates the replace Train window
920921 }
921922
922 Company::Get(_current_company)->num_engines[p1]++;
923 Company::Get(_current_company)->num_engines[eid]++;
923924
924925 CheckConsistencyOfArticulatedVehicle(v);
925926 }
0 /* $Id: transport_type.h 17248 2009-08-21 20:21:05Z rubidium $ */
0 /* $Id: transport_type.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2929 TRANSPORT_END,
3030 INVALID_TRANSPORT = 0xff,
3131 };
32 template <> struct EnumPropsT<TransportType> : MakeEnumPropsT<TransportType, byte, TRANSPORT_BEGIN, TRANSPORT_END, INVALID_TRANSPORT, 2> {};
3233
3334 #endif /* TRANSPORT_TYPE_H */
0 /* $Id: tree_cmd.cpp 18872 2010-01-21 01:38:13Z rubidium $ */
0 /* $Id: tree_cmd.cpp 19646 2010-04-16 22:02:33Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
335335 /** Plant a tree.
336336 * @param tile start tile of area-drag of tree plantation
337337 * @param flags type of operation
338 * @param p1 tree type, -1 means random.
338 * @param p1 tree type, TREE_INVALID means random.
339339 * @param p2 end tile of area-drag
340340 * @param text unused
341341 * @return the cost of this operation or an error
344344 {
345345 StringID msg = INVALID_STRING_ID;
346346 CommandCost cost(EXPENSES_OTHER);
347 const byte tree_to_plant = GB(p1, 0, 8); // We cannot use Extract as min and max are climate specific.
347348
348349 if (p2 >= MapSize()) return CMD_ERROR;
349 /* Check the tree type. It can be random or some valid value within the current climate */
350 if (p1 != UINT_MAX && p1 - _tree_base_by_landscape[_settings_game.game_creation.landscape] >= _tree_count_by_landscape[_settings_game.game_creation.landscape]) return CMD_ERROR;
350 /* Check the tree type within the current climate */
351 if (tree_to_plant != TREE_INVALID && !IsInsideBS(tree_to_plant, _tree_base_by_landscape[_settings_game.game_creation.landscape], _tree_count_by_landscape[_settings_game.game_creation.landscape])) return CMD_ERROR;
351352
352353 TileArea ta(tile, p2);
353354 TILE_AREA_LOOP(tile, ta) {
373374 continue;
374375 }
375376 /* FALL THROUGH */
376 case MP_CLEAR:
377 case MP_CLEAR: {
377378 if (IsBridgeAbove(tile)) {
378379 msg = STR_ERROR_SITE_UNSUITABLE;
380 continue;
381 }
382
383 TreeType treetype = (TreeType)tree_to_plant;
384 /* Be a bit picky about which trees go where. */
385 if (_settings_game.game_creation.landscape == LT_TROPIC && treetype != TREE_INVALID && (
386 /* No cacti outside the desert */
387 (treetype == TREE_CACTUS && GetTropicZone(tile) != TROPICZONE_DESERT) ||
388 /* No rain forest trees outside the rain forest, except in the editor mode where it makes those tiles rain forest tile */
389 (IsInsideMM(treetype, TREE_RAINFOREST, TREE_CACTUS) && GetTropicZone(tile) != TROPICZONE_RAINFOREST && _game_mode != GM_EDITOR) ||
390 /* And no subtropical trees in the desert/rain forest */
391 (IsInsideMM(treetype, TREE_SUB_TROPICAL, TREE_TOYLAND) && GetTropicZone(tile) != TROPICZONE_NORMAL))) {
392 msg = STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE;
379393 continue;
380394 }
381395
400414 }
401415
402416 if (flags & DC_EXEC) {
403 TreeType treetype;
404
405 treetype = (TreeType)p1;
406417 if (treetype == TREE_INVALID) {
407418 treetype = GetRandomTreeType(tile, GB(Random(), 24, 8));
408419 if (treetype == TREE_INVALID) treetype = TREE_CACTUS;
413424 MarkTileDirtyByTile(tile);
414425
415426 /* When planting rainforest-trees, set tropiczone to rainforest in editor. */
416 if (_game_mode == GM_EDITOR && IsInsideMM(treetype, TREE_RAINFOREST, TREE_CACTUS))
427 if (_game_mode == GM_EDITOR && IsInsideMM(treetype, TREE_RAINFOREST, TREE_CACTUS)) {
417428 SetTropicZone(tile, TROPICZONE_RAINFOREST);
429 }
418430 }
419431 cost.AddCost(_price[PR_BUILD_TREES]);
420 break;
432 } break;
421433
422434 default:
423435 msg = STR_ERROR_SITE_UNSUITABLE;
0 /* $Id: tree_gui.cpp 18966 2010-01-30 18:34:48Z frosch $ */
0 /* $Id: tree_gui.cpp 19646 2010-04-16 22:02:33Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1717 #include "company_base.h"
1818 #include "command_func.h"
1919 #include "sound_func.h"
20 #include "tree_map.h"
2021
2122 #include "table/sprites.h"
2223 #include "table/strings.h"
4950 {
5051 uint16 base; ///< Base tree number used for drawing the window.
5152 uint16 count; ///< Number of different trees available.
52 uint tree_to_plant; ///< Tree number to plant, \c UINT_MAX for a random tree.
53 TreeType tree_to_plant; ///< Tree number to plant, \c TREE_INVALID for a random tree.
5354
5455 public:
5556 BuildTreesWindow(const WindowDesc *desc, WindowNumber window_number) : Window()
104105 if (widget - BTW_TYPE_11 >= this->count) break;
105106
106107 if (HandlePlacePushButton(this, widget, SPR_CURSOR_TREE, HT_RECT, NULL)) {
107 this->tree_to_plant = this->base + widget - BTW_TYPE_11;
108 this->tree_to_plant = (TreeType)(this->base + widget - BTW_TYPE_11);
108109 }
109110 break;
110111
111112 case BTW_TYPE_RANDOM: // tree of random type.
112113 if (HandlePlacePushButton(this, BTW_TYPE_RANDOM, SPR_CURSOR_TREE, HT_RECT, NULL)) {
113 this->tree_to_plant = UINT_MAX;
114 this->tree_to_plant = TREE_INVALID;
114115 }
115116 break;
116117
0 /* $Id: tree_map.h 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: tree_map.h 19741 2010-04-30 21:01:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2121 * offsets from the grfs files. These points to the start of
2222 * the tree list for a landscape. See the TREE_COUNT_* enumerations
2323 * for the amount of different trees for a specific landscape.
24 *
25 * @note TREE_INVALID may be 0xFF according to the coding style, not -1 (Progman)
2624 */
2725 enum TreeType {
28 TREE_INVALID = -1, ///< An invalid tree
2926 TREE_TEMPERATE = 0x00, ///< temperate tree
3027 TREE_SUB_ARCTIC = 0x0C, ///< tree on a sub_arctic landscape
3128 TREE_RAINFOREST = 0x14, ///< tree on the 'green part' on a sub-tropical map
3229 TREE_CACTUS = 0x1B, ///< a catus for the 'desert part' on a sub-tropical map
3330 TREE_SUB_TROPICAL = 0x1C, ///< tree on a sub-tropical map, non-rainforest, non-desert
3431 TREE_TOYLAND = 0x20, ///< tree on a toyland map
32 TREE_INVALID = 0xFF, ///< An invalid tree
3533 };
3634
3735 /**
4240 * got two types of area, one for normal trees and one only for cacti.
4341 */
4442 enum {
45 TREE_COUNT_TEMPERATE = TREE_SUB_ARCTIC - TREE_TEMPERATE, ///< number of treetypes on a temperate map
46 TREE_COUNT_SUB_ARCTIC = TREE_RAINFOREST - TREE_SUB_ARCTIC, ///< number of treetypes on a sub arctic map
47 TREE_COUNT_RAINFOREST = TREE_CACTUS - TREE_RAINFOREST, ///< number of treetypes for the 'green part' of a sub tropic map
48 TREE_COUNT_SUB_TROPICAL = TREE_SUB_TROPICAL - TREE_CACTUS, ///< number of treetypes for the 'desert part' of a sub tropic map
43 TREE_COUNT_TEMPERATE = TREE_SUB_ARCTIC - TREE_TEMPERATE, ///< number of treetypes on a temperate map
44 TREE_COUNT_SUB_ARCTIC = TREE_RAINFOREST - TREE_SUB_ARCTIC, ///< number of treetypes on a sub arctic map
45 TREE_COUNT_RAINFOREST = TREE_CACTUS - TREE_RAINFOREST, ///< number of treetypes for the 'rainforrest part' of a sub-tropic map
46 TREE_COUNT_SUB_TROPICAL = TREE_TOYLAND - TREE_SUB_TROPICAL, ///< number of treetypes for the 'sub-tropic part' of a sub-tropic map
4947 TREE_COUNT_TOYLAND = 9 ///< number of treetypes on a toyland map
5048 };
5149
0 /* $Id: tunnelbridge_cmd.cpp 19393 2010-03-12 21:12:35Z rubidium $ */
0 /* $Id: tunnelbridge_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1616 #include "landscape.h"
1717 #include "unmovable_map.h"
1818 #include "viewport_func.h"
19 #include "cmd_helper.h"
1920 #include "command_func.h"
2021 #include "town.h"
2122 #include "variables.h"
159160 return CommandCost(EXPENSES_CONSTRUCTION, _price[PR_BUILD_FOUNDATION]);
160161 }
161162
162 bool CheckBridge_Stuff(BridgeType bridge_type, uint bridge_len, DoCommandFlag flags)
163 /** Is a bridge of the specified type and length available?
164 * @param bridge_type Wanted type of bridge.
165 * @param bridge_len Wanted length of the bridge.
166 * @return A succeeded (the requested bridge is available) or failed (it cannot be built) command.
167 */
168 CommandCost CheckBridgeAvailability(BridgeType bridge_type, uint bridge_len, DoCommandFlag flags)
163169 {
164170 if (flags & DC_QUERY_COST) {
165 return bridge_len <= (_settings_game.construction.longbridges ? 100U : 16U);
166 }
167
168 if (bridge_type >= MAX_BRIDGES) return false;
171 if (bridge_len <= (_settings_game.construction.longbridges ? 100U : 16U)) return CommandCost();
172 return_cmd_error(STR_ERROR_BRIDGE_TOO_LONG);
173 }
174
175 if (bridge_type >= MAX_BRIDGES) return CMD_ERROR;
169176
170177 const BridgeSpec *b = GetBridgeSpec(bridge_type);
171 if (b->avail_year > _cur_year) return false;
178 if (b->avail_year > _cur_year) return CMD_ERROR;
172179
173180 uint max = b->max_length;
174181 if (max >= 16 && _settings_game.construction.longbridges) max = 100;
175182
176 return b->min_length <= bridge_len && bridge_len <= max;
183 if (b->min_length > bridge_len) return CMD_ERROR;
184 if (bridge_len <= max) return CommandCost();
185 return_cmd_error(STR_ERROR_BRIDGE_TOO_LONG);
177186 }
178187
179188 /** Build a Bridge
182191 * @param p1 packed start tile coords (~ dx)
183192 * @param p2 various bitstuffed elements
184193 * - p2 = (bit 0- 7) - bridge type (hi bh)
185 * - p2 = (bit 8-14) - rail type or road types.
194 * - p2 = (bit 8-11) - rail type or road types.
186195 * - p2 = (bit 15-16) - transport type.
187196 * @param text unused
188197 * @return the cost of this operation or an error
199208
200209 if (p1 >= MapSize()) return CMD_ERROR;
201210
202 TransportType transport_type = (TransportType)GB(p2, 15, 2);
211 TransportType transport_type = Extract<TransportType, 15, 2>(p2);
203212
204213 /* type of bridge */
205214 switch (transport_type) {
206215 case TRANSPORT_ROAD:
207 roadtypes = (RoadTypes)GB(p2, 8, 2);
208 if (!AreValidRoadTypes(roadtypes) || !HasRoadTypesAvail(_current_company, roadtypes)) return CMD_ERROR;
216 roadtypes = Extract<RoadTypes, 8, 2>(p2);
217 if (!HasExactlyOneBit(roadtypes) || !HasRoadTypesAvail(_current_company, roadtypes)) return CMD_ERROR;
209218 break;
210219
211220 case TRANSPORT_RAIL:
212 railtype = (RailType)GB(p2, 8, 7);
221 railtype = Extract<RailType, 8, 4>(p2);
213222 if (!ValParamRailtype(railtype)) return CMD_ERROR;
214223 break;
215224
241250 uint bridge_len = GetTunnelBridgeLength(tile_start, tile_end);
242251 if (transport_type != TRANSPORT_WATER) {
243252 /* set and test bridge length, availability */
244 if (!CheckBridge_Stuff(bridge_type, bridge_len, flags)) return_cmd_error(STR_ERROR_CAN_T_BUILD_BRIDGE_HERE);
253 CommandCost ret = CheckBridgeAvailability(bridge_type, bridge_len, flags);
254 if (ret.Failed()) return ret;
245255 } else {
246 if (bridge_len > (_settings_game.construction.longbridges ? 100U : 16U)) return_cmd_error(STR_ERROR_CAN_T_BUILD_BRIDGE_HERE);
256 if (bridge_len > (_settings_game.construction.longbridges ? 100U : 16U)) return_cmd_error(STR_ERROR_BRIDGE_TOO_LONG);
247257 }
248258
249259 /* retrieve landscape height and ensure it's on land */
469479 /** Build Tunnel.
470480 * @param start_tile start tile of tunnel
471481 * @param flags type of operation
472 * @param p1 railtype or roadtypes. bit 9 set means road tunnel
482 * @param p1 bit 0-3 railtype or roadtypes
483 * bit 8-9 transport type
473484 * @param p2 unused
474485 * @param text unused
475486 * @return the cost of this operation or an error
476487 */
477488 CommandCost CmdBuildTunnel(TileIndex start_tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
478489 {
479 TransportType transport_type = (TransportType)GB(p1, 9, 1);
490 TransportType transport_type = Extract<TransportType, 8, 2>(p1);
480491 CommandCost cost(EXPENSES_CONSTRUCTION);
481492
493 RailType railtype = INVALID_RAILTYPE;
494 RoadTypes rts = ROADTYPES_NONE;
482495 _build_tunnel_endtile = 0;
483 if (transport_type == TRANSPORT_RAIL) {
484 if (!ValParamRailtype((RailType)p1)) return CMD_ERROR;
485 } else {
486 const RoadTypes rts = (RoadTypes)GB(p1, 0, 2);
487 if (!AreValidRoadTypes(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
496 switch (transport_type) {
497 case TRANSPORT_RAIL:
498 railtype = Extract<RailType, 0, 4>(p1);
499 if (!ValParamRailtype(railtype)) return CMD_ERROR;
500 break;
501
502 case TRANSPORT_ROAD:
503 rts = Extract<RoadTypes, 0, 2>(p1);
504 if (!HasExactlyOneBit(rts) || !HasRoadTypesAvail(_current_company, rts)) return CMD_ERROR;
505 break;
506
507 default: return CMD_ERROR;
488508 }
489509
490510 uint start_z;
571591
572592 if (flags & DC_EXEC) {
573593 if (transport_type == TRANSPORT_RAIL) {
574 MakeRailTunnel(start_tile, _current_company, direction, (RailType)GB(p1, 0, 4));
575 MakeRailTunnel(end_tile, _current_company, ReverseDiagDir(direction), (RailType)GB(p1, 0, 4));
594 MakeRailTunnel(start_tile, _current_company, direction, railtype);
595 MakeRailTunnel(end_tile, _current_company, ReverseDiagDir(direction), railtype);
576596 AddSideToSignalBuffer(start_tile, INVALID_DIAGDIR, _current_company);
577597 YapfNotifyTrackLayoutChange(start_tile, DiagDirToDiagTrack(direction));
578598 } else {
579 MakeRoadTunnel(start_tile, _current_company, direction, (RoadTypes)GB(p1, 0, 2));
580 MakeRoadTunnel(end_tile, _current_company, ReverseDiagDir(direction), (RoadTypes)GB(p1, 0, 2));
599 MakeRoadTunnel(start_tile, _current_company, direction, rts);
600 MakeRoadTunnel(end_tile, _current_company, ReverseDiagDir(direction), rts);
581601 }
582602 }
583603
13111331 td->owner[i] = tram_owner;
13121332 }
13131333 }
1334
1335 if (tt == TRANSPORT_RAIL) {
1336 const RailtypeInfo *rti = GetRailTypeInfo(GetRailType(tile));
1337 td->rail_speed = rti->max_speed;
1338
1339 if (!IsTunnel(tile)) {
1340 uint16 spd = GetBridgeSpec(GetBridgeType(tile))->speed;
1341 if (td->rail_speed == 0 || spd < td->rail_speed) {
1342 td->rail_speed = spd;
1343 }
1344 }
1345 }
13141346 }
13151347
13161348
0 /* $Id: vehicle_cmd.cpp 19024 2010-02-05 21:51:26Z rubidium $ */
0 /* $Id: vehicle_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1212 #include "roadveh.h"
1313 #include "news_func.h"
1414 #include "airport.h"
15 #include "cmd_helper.h"
1516 #include "command_func.h"
1617 #include "company_func.h"
1718 #include "vehicle_gui.h"
122123 * - bit 0-4 Vehicle type
123124 * - bit 5 false = start vehicles, true = stop vehicles
124125 * - bit 6 if set, then it's a vehicle list window, not a depot and Tile is ignored in this case
125 * - bit 8-11 Vehicle List Window type (ignored unless bit 1 is set)
126 * - bit 8-11 Vehicle List Window type (ignored unless bit 6 is set)
126127 * @param text unused
127128 * @return the cost of this operation or an error
128129 */
129130 CommandCost CmdMassStartStopVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
130131 {
131132 VehicleList list;
132 VehicleType vehicle_type = (VehicleType)GB(p2, 0, 5);
133 VehicleType vehicle_type = Extract<VehicleType, 0, 3>(p2);
133134 bool start_stop = HasBit(p2, 5);
134135 bool vehicle_list_window = HasBit(p2, 6);
136
137 if (!IsCompanyBuildableVehicleType(vehicle_type)) return CMD_ERROR;
135138
136139 if (vehicle_list_window) {
137140 uint32 id = p1;
138141 uint16 window_type = p2 & VLW_MASK;
139142
140 GenerateVehicleSortList(&list, vehicle_type, _current_company, id, window_type);
143 if (!GenerateVehicleSortList(&list, vehicle_type, _current_company, id, window_type)) return CMD_ERROR;
141144 } else {
142145 /* Get the list of vehicles in the depot */
143146 BuildDepotVehicleList(vehicle_type, tile, &list, NULL);
176179 VehicleList list;
177180
178181 CommandCost cost(EXPENSES_NEW_VEHICLES);
179 VehicleType vehicle_type = (VehicleType)GB(p1, 0, 8);
182 VehicleType vehicle_type = Extract<VehicleType, 0, 3>(p1);
180183 uint sell_command = GetCmdSellVeh(vehicle_type);
184
185 if (!IsCompanyBuildableVehicleType(vehicle_type)) return CMD_ERROR;
181186
182187 /* Get the list of vehicles in the depot */
183188 BuildDepotVehicleList(vehicle_type, tile, &list, &list);
204209 {
205210 VehicleList list;
206211 CommandCost cost = CommandCost(EXPENSES_NEW_VEHICLES);
207 VehicleType vehicle_type = (VehicleType)GB(p1, 0, 8);
208
212 VehicleType vehicle_type = Extract<VehicleType, 0, 3>(p1);
213
214 if (!IsCompanyBuildableVehicleType(vehicle_type)) return CMD_ERROR;
209215 if (!IsDepotTile(tile) || !IsTileOwner(tile, _current_company)) return CMD_ERROR;
210216
211217 /* Get the list of vehicles in the depot */
349355
350356 /* Format buffer and determine starting number. */
351357 int num;
358 byte padding = 0;
352359 if (number_position == strlen(src->name)) {
353360 /* No digit at the end, so start at number 2. */
354361 strecpy(buf, src->name, lastof(buf));
359366 /* Found digits, parse them and start at the next number. */
360367 strecpy(buf, src->name, lastof(buf));
361368 buf[number_position] = '\0';
362 num = strtol(&src->name[number_position], NULL, 10) + 1;
369 char *endptr;
370 num = strtol(&src->name[number_position], &endptr, 10) + 1;
371 padding = endptr - &src->name[number_position];
363372 }
364373
365374 /* Check if this name is already taken. */
366375 for (int max_iterations = 1000; max_iterations > 0; max_iterations--, num++) {
367376 /* Attach the number to the temporary name. */
368 seprintf(&buf[number_position], lastof(buf), "%d", num);
377 seprintf(&buf[number_position], lastof(buf), "%0*d", padding, num);
369378
370379 /* Check the name is unique. */
371380 if (IsUniqueVehicleName(buf)) {
391400 uint32 build_argument = 2;
392401
393402 Vehicle *v = Vehicle::GetIfValid(p1);
394 if (v == NULL) return CMD_ERROR;
403 if (v == NULL || !v->IsPrimaryVehicle()) return CMD_ERROR;
395404 Vehicle *v_front = v;
396405 Vehicle *w = NULL;
397406 Vehicle *w_front = NULL;
576585 {
577586 VehicleList list;
578587
579 GenerateVehicleSortList(&list, type, owner, id, vlw_flag);
588 if (!GenerateVehicleSortList(&list, type, owner, id, vlw_flag)) return CMD_ERROR;
580589
581590 /* Send all the vehicles to a depot */
582591 for (uint i = 0; i < list.Length(); i++) {
606615 CommandCost CmdRenameVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
607616 {
608617 Vehicle *v = Vehicle::GetIfValid(p1);
609 if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
618 if (v == NULL || !v->IsPrimaryVehicle() || !CheckOwnership(v->owner)) return CMD_ERROR;
610619
611620 bool reset = StrEmpty(text);
612621
637646 CommandCost CmdChangeServiceInt(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
638647 {
639648 Vehicle *v = Vehicle::GetIfValid(p1);
640 if (v == NULL || !CheckOwnership(v->owner)) return CMD_ERROR;
649 if (v == NULL || !v->IsPrimaryVehicle() || !CheckOwnership(v->owner)) return CMD_ERROR;
641650
642651 uint16 serv_int = GetServiceIntervalClamped(p2, v->owner); // Double check the service interval from the user-input
643652 if (serv_int != p2) return CMD_ERROR;
0 /* $Id: vehicle_gui.cpp 19223 2010-02-23 23:26:37Z rubidium $ */
0 /* $Id: vehicle_gui.cpp 19554 2010-04-03 20:09:19Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
13971397 this->tab = TDW_TAB_CARGO;
13981398 }
13991399
1400 virtual void OnInvalidateData(int data)
1401 {
1402 const Vehicle *v = Vehicle::Get(this->window_number);
1403 if (v->type == VEH_ROAD) {
1404 const NWidgetBase *nwid_info = this->GetWidget<NWidgetBase>(VLD_WIDGET_MIDDLE_DETAILS);
1405 uint aimed_height = this->GetRoadVehDetailsHeight(v);
1406 /* If the number of articulated parts changes, the size of the window must change too. */
1407 if (aimed_height != nwid_info->current_y) {
1408 this->ReInit();
1409 }
1410 }
1411 }
1412
1413 /**
1414 * Gets the desired height for the road vehicle details panel.
1415 * @param v Road vehicle being shown.
1416 * @return Desired height in pixels.
1417 */
1418 uint GetRoadVehDetailsHeight(const Vehicle *v)
1419 {
1420 uint desired_height;
1421 if (RoadVehicle::From(v)->HasArticulatedPart()) {
1422 /* An articulated RV has its text drawn under the sprite instead of after it, hence 15 pixels extra. */
1423 desired_height = WD_FRAMERECT_TOP + 15 + 3 * FONT_HEIGHT_NORMAL + 2 + WD_FRAMERECT_BOTTOM;
1424 /* Add space for the cargo amount for each part. */
1425 for (const Vehicle *u = v; u != NULL; u = u->Next()) {
1426 if (u->cargo_cap != 0) desired_height += FONT_HEIGHT_NORMAL + 1;
1427 }
1428 } else {
1429 desired_height = WD_FRAMERECT_TOP + 4 * FONT_HEIGHT_NORMAL + 3 + WD_FRAMERECT_BOTTOM;
1430 }
1431 return desired_height;
1432 }
1433
14001434 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
14011435 {
14021436 switch (widget) {
14241458 const Vehicle *v = Vehicle::Get(this->window_number);
14251459 switch (v->type) {
14261460 case VEH_ROAD:
1427 if (RoadVehicle::From(v)->HasArticulatedPart()) {
1428 /* An articulated RV has its text drawn under the sprite instead of after it, hence 15 pixels extra. */
1429 size->height = WD_FRAMERECT_TOP + 15 + 3 * FONT_HEIGHT_NORMAL + 2 + WD_FRAMERECT_BOTTOM;
1430 /* Add space for the cargo amount for each part. */
1431 for (const Vehicle *u = v; u != NULL; u = u->Next()) {
1432 if (u->cargo_cap != 0) size->height += FONT_HEIGHT_NORMAL + 1;
1433 }
1434 } else {
1435 size->height = WD_FRAMERECT_TOP + 4 * FONT_HEIGHT_NORMAL + 3 + WD_FRAMERECT_BOTTOM;
1436 }
1461 size->height = this->GetRoadVehDetailsHeight(v);
14371462 break;
14381463
14391464 case VEH_SHIP:
0 /* $Id: vehicle_type.h 18963 2010-01-30 16:27:35Z terkhen $ */
0 /* $Id: vehicle_type.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
2727 VEH_INVALID = 0xFF, ///< Non-existing type of vehicle.
2828 };
2929 DECLARE_POSTFIX_INCREMENT(VehicleType);
30 template <> struct EnumPropsT<VehicleType> : MakeEnumPropsT<VehicleType, byte, VEH_TRAIN, VEH_END, VEH_INVALID, 3> {};
3031 /** It needs to be 8bits, because we save and load it as such */
3132 typedef SimpleTinyEnumT<VehicleType, byte> VehicleTypeByte;
3233
0 /* $Id: vehiclelist.cpp 17248 2009-08-21 20:21:05Z rubidium $ */
0 /* $Id: vehiclelist.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
7575 * <li>VLW_WAYPOINT_LIST: index of waypoint to generate a list for</li>
7676 * </ul>
7777 * @param window_type The type of window the list is for, using the VLW_ flags in vehicle_gui.h
78 * @return false if invalid list is requested
7879 */
79 void GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, uint32 index, uint16 window_type)
80 bool GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, uint32 index, uint16 window_type)
8081 {
8182 list->Clear();
8283
100101
101102 case VLW_SHARED_ORDERS:
102103 /* Add all vehicles from this vehicle's shared order list */
103 for (v = Vehicle::Get(index); v != NULL; v = v->NextShared()) {
104 v = Vehicle::GetIfValid(index);
105 if (v == NULL || v->type != type || !v->IsPrimaryVehicle()) return false;
106
107 for (; v != NULL; v = v->NextShared()) {
104108 *list->Append() = v;
105109 }
106110 break;
152156 }
153157 break;
154158
155 default: NOT_REACHED();
159 default: return false;
156160 }
157161
158162 list->Compact();
163 return true;
159164 }
0 /* $Id: vehiclelist.h 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: vehiclelist.h 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1818
1919 typedef SmallVector<const Vehicle *, 32> VehicleList;
2020
21 void GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, uint32 index, uint16 window_type);
21 bool GenerateVehicleSortList(VehicleList *list, VehicleType type, Owner owner, uint32 index, uint16 window_type);
2222 void BuildDepotVehicleList(VehicleType type, TileIndex tile, VehicleList *engine_list, VehicleList *wagon_list, bool individual_wagons = false);
2323
2424 #endif /* VEHICLELIST_H */
0 /* $Id: dedicated_v.cpp 18809 2010-01-15 16:41:15Z rubidium $ */
0 /* $Id: dedicated_v.cpp 19603 2010-04-11 10:57:21Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
299299
300300 cur_ticks = GetTime();
301301 _realtime_tick += cur_ticks - prev_cur_ticks;
302 if (cur_ticks >= next_tick || cur_ticks < prev_cur_ticks) {
302 if (cur_ticks >= next_tick || cur_ticks < prev_cur_ticks || _ddc_fastforward) {
303303 next_tick = cur_ticks + 30;
304304
305305 GameLoop();
306306 UpdateWindows();
307307 }
308 CSleep(1);
308
309 /* Don't sleep when fast forwarding (for desync debugging) */
310 if (!_ddc_fastforward) CSleep(1);
309311 }
310312 }
311313
0 /* $Id: water_cmd.cpp 18872 2010-01-21 01:38:13Z rubidium $ */
0 /* $Id: water_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
103103 */
104104 CommandCost CmdBuildShipDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
105105 {
106 TileIndex tile2;
107
108 CommandCost ret;
109
110 Axis axis = Extract<Axis, 0>(p1);
111
112 tile2 = tile + (axis == AXIS_X ? TileDiffXY(1, 0) : TileDiffXY(0, 1));
106 Axis axis = Extract<Axis, 0, 1>(p1);
107
108 TileIndex tile2 = tile + (axis == AXIS_X ? TileDiffXY(1, 0) : TileDiffXY(0, 1));
113109
114110 if (!IsWaterTile(tile) || !IsWaterTile(tile2)) {
115111 return_cmd_error(STR_ERROR_MUST_BE_BUILT_ON_WATER);
124120
125121 WaterClass wc1 = GetWaterClass(tile);
126122 WaterClass wc2 = GetWaterClass(tile2);
127 ret = DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
123 CommandCost ret = DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
128124 if (ret.Failed()) return CMD_ERROR;
129125 ret = DoCommand(tile2, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
130126 if (ret.Failed()) return CMD_ERROR;
290286 {
291287 CommandCost cost(EXPENSES_CONSTRUCTION);
292288
293 if (p1 >= MapSize()) return CMD_ERROR;
289 if (p1 >= MapSize() || p2 > 2) return CMD_ERROR;
294290
295291 /* Outside of the editor you can only build canals, not oceans */
296292 if (p2 != 0 && _game_mode != GM_EDITOR) return CMD_ERROR;
0 /* $Id: waypoint_cmd.cpp 18921 2010-01-26 23:03:47Z yexo $ */
0 /* $Id: waypoint_cmd.cpp 19665 2010-04-17 22:27:49Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
1010
1111 #include "stdafx.h"
1212
13 #include "cmd_helper.h"
1314 #include "command_func.h"
1415 #include "landscape.h"
1516 #include "bridge_map.h"
213214 CommandCost CmdBuildRailWaypoint(TileIndex start_tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
214215 {
215216 /* Unpack parameters */
216 Axis axis = (Axis)GB(p1, 4, 1);
217 Axis axis = Extract<Axis, 4, 1>(p1);
217218 byte width = GB(p1, 8, 8);
218219 byte height = GB(p1, 16, 8);
219220 bool adjacent = HasBit(p1, 24);
220221
221 StationClassID spec_class = (StationClassID)GB(p2, 0, 8);
222 StationClassID spec_class = Extract<StationClassID, 0, 8>(p2);
222223 byte spec_index = GB(p2, 8, 8);
223224 StationID station_to_join = GB(p2, 16, 16);
224225
0 /* $Id: window.cpp 19258 2010-02-25 21:18:38Z rubidium $ */
0 /* $Id: window.cpp 19567 2010-04-05 21:34:47Z rubidium $ */
11
22 /*
33 * This file is part of OpenTTD.
547547 if (this->resize.step_height > 1) dy -= dy % (int)this->resize.step_height;
548548
549549 ResizeWindow(this, dx, dy);
550 this->OnResize();
551 this->SetDirty();
550 /* ResizeWindow() does this->SetDirty() already, no need to do it again here. */
552551 }
553552
554553 /** Set the shaded state of the window to \a make_shaded.
961960 if (this->resize.step_height > 1) enlarge_y -= enlarge_y % (int)this->resize.step_height;
962961
963962 ResizeWindow(this, enlarge_x, enlarge_y);
964 }
965
966 /* Always call OnResize; that way the scrollbars and matrices get initialized */
967 this->OnResize();
963 /* ResizeWindow() calls this->OnResize(). */
964 } else {
965 /* Always call OnResize; that way the scrollbars and matrices get initialized. */
966 this->OnResize();
967 }
968968
969969 int nx = this->left;
970970 int ny = this->top;
14121412 */
14131413 void ResizeWindow(Window *w, int delta_x, int delta_y)
14141414 {
1415 if (delta_x == 0 && delta_y == 0) return;
1416
1417 w->SetDirty();
1418
1419 uint new_xinc = max(0, (w->nested_root->resize_x == 0) ? 0 : (int)(w->nested_root->current_x - w->nested_root->smallest_x) + delta_x);
1420 uint new_yinc = max(0, (w->nested_root->resize_y == 0) ? 0 : (int)(w->nested_root->current_y - w->nested_root->smallest_y) + delta_y);
1421 assert(w->nested_root->resize_x == 0 || new_xinc % w->nested_root->resize_x == 0);
1422 assert(w->nested_root->resize_y == 0 || new_yinc % w->nested_root->resize_y == 0);
1423
1424 w->nested_root->AssignSizePosition(ST_RESIZE, 0, 0, w->nested_root->smallest_x + new_xinc, w->nested_root->smallest_y + new_yinc, _dynlang.text_dir == TD_RTL);
1425 w->width = w->nested_root->current_x;
1426 w->height = w->nested_root->current_y;
1415 if (delta_x != 0 || delta_y != 0) {
1416 w->SetDirty();
1417
1418 uint new_xinc = max(0, (w->nested_root->resize_x == 0) ? 0 : (int)(w->nested_root->current_x - w->nested_root->smallest_x) + delta_x);
1419 uint new_yinc = max(0, (w->nested_root->resize_y == 0) ? 0 : (int)(w->nested_root->current_y - w->nested_root->smallest_y) + delta_y);
1420 assert(w->nested_root->resize_x == 0 || new_xinc % w->nested_root->resize_x == 0);
1421 assert(w->nested_root->resize_y == 0 || new_yinc % w->nested_root->resize_y == 0);
1422
1423 w->nested_root->AssignSizePosition(ST_RESIZE, 0, 0, w->nested_root->smallest_x + new_xinc, w->nested_root->smallest_y + new_yinc, _dynlang.text_dir == TD_RTL);
1424 w->width = w->nested_root->current_x;
1425 w->height = w->nested_root->current_y;
1426 }
1427
1428 /* Always call OnResize to make sure everything is initialised correctly if it needs to be. */
1429 w->OnResize();
14271430 w->SetDirty();
14281431 }
14291432
16781681
16791682 /* ResizeWindow sets both pre- and after-size to dirty for redrawal */
16801683 ResizeWindow(w, x, y);
1681 w->OnResize();
16821684 return false;
16831685 }
16841686 }
25472549 * in a 'backup'-desc that the window should always be centred. */
25482550 switch (w->window_class) {
25492551 case WC_MAIN_TOOLBAR:
2550 if (neww - w->width != 0) {
2551 ResizeWindow(w, min(neww, 640) - w->width, 0);
2552 w->OnResize();
2553 }
2552 if (neww - w->width != 0) ResizeWindow(w, min(neww, 640) - w->width, 0);
25542553
25552554 top = w->top;
25562555 left = PositionMainToolbar(w); // changes toolbar orientation