(svn r10016) [NoAI] -Sync with trunk r9914:r10015.
Binary file bin/data/oneway.grf has changed
Binary file bin/data/tramtrkw.grf has changed
--- a/changelog.txt Fri May 25 00:25:08 2007 +0000
+++ b/changelog.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1,7 +1,38 @@
+0.5.2 (2007-05-29)
+------------------------------------------------------------------------
+- Feature: Add threading support for MorphOS (r9759)
+- Fix: Bridges and tunnels were not always removed on bankruptcy, thus leaving tunnels/bridges with an invalid owner that would crash the game when clicking with the query tool on them (r9966)
+- Fix: Null pointer dereference under MorphOS and AmigaOS (r9861)
+
+
+0.5.2-RC1 (2007-05-16)
+------------------------------------------------------------------------
+- Feature: Windows 95/98/ME check in Windows 2000/XP/2003/Vista builds (r9834)
+- Feature: Add password protected status to 'players' (network server) console command (r9771)
+- Feature: Add server_lang in [network] section of openttd.cfg (r9716)
+- Fix: Loading some TTDP savegames caused an instant assertion on loading (r9857)
+- Fix: [NewGRF] Catch occurance of division-by-zero in varaction handling (r9837)
+- Fix: Only non dedicated servers cannot have 0 players [FS#765] (r9785)
+- Fix: Remove arbitrary limit on length of NewGRF strings (r9775)
+- Fix: [NewGRF] Ignore axis-bit of station tile layouts [FS#756] (r9758)
+- Fix: [win32] Dead key and open/close console. (r9728)
+- Fix: When you have closed the "Load game"/"New game" windows which you started from the "start server" menu, you shouldn't start a server when starting a new game [SF#1244842] (r9757)
+- Fix: Trains were lost after autorenewal/autoreplace [FS#732] (r9753)
+- Fix: Stop flooded towns from building roads on water [FS#598] (r9743)
+- Fix: Station signs were not resized when the language changed [FS#672] (r9741)
+- Fix: In news history, newlines were not replaced with spaces [FS#677] (r9731)
+- Fix: Crash when destroying bridge with train partially on it [FS#738] (r9726)
+- Fix: Planes made a 270 degree turn instead of a 90 degree turn on the southern runway of the intercontinental airport [FS#743] (r9725)
+- Fix: In-game private messages did not work for clients with high ClientIDs (r9719)
+- Fix: Do not allow building of rail vehicles whose railtype is not available (r9718)
+- Fix: [YAPF] The guessed path was ignored for ships [FS#736] (r9694)
+
+
0.5.1 (2007-04-20)
------------------------------------------------------------------------
(None)
+
0.5.1-RC3 (2007-04-17)
------------------------------------------------------------------------
- Feature: Add list_patches to console commands; shows all patches and values (r9565)
--- a/docs/landscape.html Fri May 25 00:25:08 2007 +0000
+++ b/docs/landscape.html Fri Jun 01 20:54:09 2007 +0000
@@ -355,9 +355,9 @@
</li>
<li>m5 bit 6 set = with signals:
<ul>
- <li>m2 bits 7..4: bit clear = signal shows red; same bits as in m3</li>
- <li>m2 bit 2: set = semaphore signals, clear = light signals </li>
- <li>m2 bits 1..0 : type of signal
+ <li>m4 bits 7..4: bit clear = signal shows red; same bits as in m3</li>
+ <li>m2 bit 2 <i>(6)</i>: set = semaphore signals, clear = light signals <i>(lower and right tracks)</i></li>
+ <li>m2 bits 1..0 <i>(5..4)</i>: type of signal <i>(lower and right tracks)</i>
<table>
<tr>
<td nowrap="nowrap" valign="top"><tt>00</tt>: </td>
@@ -534,7 +534,8 @@
</table>
</li>
<li>m4 bits 7..4: road layout road type #2
- <li>m5 bits 4..0: owner of road type #2
+ <li>m5 bits 5..4: bits to disallow vehicles to go a specific direction
+ <li>m5 bits 3..0: owner of road type #2
<li>m6 bits 5..2: road layout road type #3
<li>m7 bits 7..5: road types
<li>m7 bits 4..0: owner of road type #3
@@ -559,7 +560,7 @@
<li>m4 bit 6: clear - road in the X direction, set - road in the Y direction (railway track always perpendicular)</li>
<li>m4 bit 5: set if crossing lights are on</li>
<li>m4 bits 4..0: <a href="#OwnershipInfo">owner</a> of the road type #1</li>
- <li>m5 bits 4..0: owner of road type #2
+ <li>m5 bits 3..0: owner of road type #2
<li>m7 bits 7..5: road types
<li>m7 bits 4..0: owner of road type #3
</ul>
--- a/docs/landscape_grid.html Fri May 25 00:25:08 2007 +0000
+++ b/docs/landscape_grid.html Fri Jun 01 20:54:09 2007 +0000
@@ -88,9 +88,9 @@
<td class="caption">rail</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
- <td class="bits"><span class="free">OOOO OOOO</span> XXXX XXXX</td>
+ <td class="bits"><span class="free">OOOO OOOO O</span>XXX <span class="free">O</span>XXX</td>
<td class="bits">XXXX XXXX</td>
- <td class="bits"><span class="free">OOOO O</span>XXX</td>
+ <td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
@@ -125,7 +125,7 @@
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
- <td class="bits">XX<span class="free">OO</span> XXXX</td>
+ <td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
</tr>
--- a/docs/openttd.6 Fri May 25 00:25:08 2007 +0000
+++ b/docs/openttd.6 Fri Jun 01 20:54:09 2007 +0000
@@ -1,6 +1,6 @@
.\" Hey, EMACS: -*- nroff -*-
.\" Please adjust this date whenever revising the manpage.
-.Dd April 20, 2007
+.Dd May 29, 2007
.Dt OPENTTD 6
.Sh NAME
.Nm openttd
--- a/known-bugs.txt Fri May 25 00:25:08 2007 +0000
+++ b/known-bugs.txt Fri Jun 01 20:54:09 2007 +0000
@@ -15,16 +15,13 @@
If the bug report is closed, it has been fixed, which then can be verified
in the latest SVN version.
-Bugs for 0.5.1
+Bugs for 0.5.2
------------------------------------------------------------------------
URL: http://bugs.openttd.org
-735 Plural rule not expanded correctly when non-numeric placeholder uses
--732 Trains are lost after autorenewal/autoreplace
-716 Train Crash in Depot
--677 Badspacing in news summaries
-674 Map signs allow less nonenglish characters than english ones
--672 Non-transparent station names' backgrounds do not resize properly upon language change
-669 Docks/Airports/RV Stations can be built without available vehicles
-646 AI builds useless stations
-601 Airports can't get flooded when they have planes in them
@@ -36,7 +33,7 @@
-546 Overflows due to inflation
-540 Planes vanished when offered exclusive
-539 Trains can cash the same cargo multiple times
--522 overflow on vehicle costs
+-522 Overflow on vehicle costs
-508 Destroying trees and replanting => raised rating
-502 OSX can incorrectly print "dbg: [sl] Cannot open savegame 'data/opntitle.dat' for saving/loading."
-501 Mouse pointer gets hidden, when draging out of window and back again. Only affects Wacom etc.
@@ -52,7 +49,7 @@
-355 graphics bugs with trains - water, tunnels
-354 Maglev Trains faster than All Planes
-339 Crash in Quicktime when exiting game
--299 disable 90 deg turns patch - AI builds 90 deg turns
+-299 Disable 90 deg turns patch - AI builds 90 deg turns
-290 NPF - no path to depot from tunnel
-282 AI Players do not clear loans as soon as they could
-274 Autoclean ignores any share holdings
@@ -61,11 +58,11 @@
-216 AI build train vans one van less
-202 2 Locomotives in 1 Train - Selling one results in Age of the other one Being 0
-193 Inconsistent directory usage on Mac OS X
--165 vehicle length not taken into account
+-165 Vehicle length not taken into account
-153 Language crash with app renaming OSX
-119 Clipping problems with vehicles on slopes
- 89 Able to build railways/stations before engines become available
-- 65 short wagons bug
+- 65 Short wagons bug
- 51 Windows doesn't support CUSTOM_LANG_DIR
- 47 Low rating calculation and cargo loading priority
@@ -77,30 +74,25 @@
-1459262 Towns building too many roads way too long now
-1458995 Another bug with smooth_economy
-1393415 NPF & one-way sigs
--1244842 Multiplayer interface bug (0.4.0.1)
--1212267 station visited twice when servicing
+-1212267 Station visited twice when servicing
-1208170 Duplicate station names can be created
-1116638 "More, but smaller changes" deficiency
--1106356 re-offered prototypes
+-1106356 Re-offered prototypes
-Minor Bugs for 0.5.1
------------------------------------------------------------------------
URL: http://sourceforge.net/tracker/?atid=669662&group_id=103924&func=browse
-1461629 [r4180]Subsidy calculated wrong
--1412031 fast forward scrolling is also fast forward :)
--1387424 overtake insolvent company is to cheap
+-1412031 Fast forward scrolling is also fast forward :)
-1382782 Loan interest calculated 'wrong'
--1201284 permanent hilight in a depot
+-1201284 Permanent hilight in a depot
-1185852 Scrollbars get arbitrarily small
--1160732 little bug with transparency
--1117731 Editor-StartingDate
--1108046 game freezes
+-1160732 Little bug with transparency
+-1108046 Game freezes
-1102174 Bug if 3 people buy 25% shares in one company
-1084620 Minor bug considering buses/trucks
--1034310 color mauve in diagrams
+-1034310 Color mauve in diagrams
-1030661 It's possible to build a tunnel under oil wells
-- 987891 Large UFO destruction bug
- 987883 Aircraft landing/taking off
-- 987880 company league table updating
-- 985924 aircraft taxi speed
+- 987880 Company league table updating
+- 985924 Aircraft taxi speed
--- a/os/debian/changelog Fri May 25 00:25:08 2007 +0000
+++ b/os/debian/changelog Fri Jun 01 20:54:09 2007 +0000
@@ -4,17 +4,29 @@
-- Matthijs Kooijman <m.kooijman@student.utwente.nl> Mon, 26 Feb 2007 21:07:05 +0100
+openttd (0.5.2-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Matthijs Kooijman <m.kooijman@student.utwente.nl> Tue, 29 May 2007 20:00:00 +0100
+
+openttd (0.5.2~rc1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Matthijs Kooijman <m.kooijman@student.utwente.nl> Wed, 16 May 2007 23:35:39 +0100
+
openttd (0.5.1-1) unstable; urgency=low
* New upstream release.
- -- Matthijs Kooijman <m.kooijman@student.utwente.nl> Fri, 20 Aprr 2007 21:45:32 +0100
+ -- Matthijs Kooijman <m.kooijman@student.utwente.nl> Fri, 20 Apr 2007 21:45:32 +0100
openttd (0.5.1~rc3-1) unstable; urgency=low
* New upstream release.
- -- Matthijs Kooijman <m.kooijman@student.utwente.nl> Tue, 17 Aprr 2007 22:00:46 +0100
+ -- Matthijs Kooijman <m.kooijman@student.utwente.nl> Tue, 17 Apr 2007 22:00:46 +0100
openttd (0.5.1~rc2-1) unstable; urgency=low
--- a/os/win32/installer/install.nsi Fri May 25 00:25:08 2007 +0000
+++ b/os/win32/installer/install.nsi Fri Jun 01 20:54:09 2007 +0000
@@ -1,6 +1,6 @@
!define APPNAME "OpenTTD" ; Define application name
-!define APPVERSION "0.5.1" ; Define application version
-!define INSTALLERVERSION 32 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
+!define APPVERSION "0.5.2" ; Define application version
+!define INSTALLERVERSION 34 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
!define APPURLLINK "http://www.openttd.org"
!define APPNAMEANDVERSION "${APPNAME} ${APPVERSION}"
@@ -81,6 +81,7 @@
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\readme.txt"
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
+!define MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT DisableBack
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
@@ -355,26 +356,30 @@
hasCD:
FunctionEnd
-;---------------------------------------------------------------------
-; Custom page function to show notices for running OpenTTD
+;----------------------------------------------------------------------------------
+; Disable the "Back" button on finish page if the installer is run on Win9x systems
+Function DisableBack
+ Call GetWindowsVersion
+ Pop $R0
+ StrCmp $R0 "win9x" 0 WinNT
+ !insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "BackEnabled" "0"
+WinNT:
+ ClearErrors
+FunctionEnd
+
+;----------------------------------------------------------------------------------
+; Custom page function to show notices for running OpenTTD (only for win32 systems)
; We have extracted this custom page as Notice in the .onInit function
Function ShowWarningsPage
+ Call GetWindowsVersion
+ Pop $R0
+ ; Don't show the UNICODE notice if the installer is run on Win9x systems
+ StrCmp $R0 "win9x" 0 WinNT
+ Abort
+WinNT:
!insertmacro MUI_HEADER_TEXT "Installation Complete" "Important notices for OpenTTD usage."
!insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "notice.ini" "Notice"
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "Notice"
-
- Call GetWindowsVersion
- Pop $R0
-
- ; Hide the MSLU text if the installer is not run on Win9x systems
- StrCmp $R0 "winnt" 0 Win9x
- !insertmacro MUI_INSTALLOPTIONS_READ $R1 "Notice" "Field 1" "HWND" ; MSLU groupbox
- ShowWindow $R1 0
- !insertmacro MUI_INSTALLOPTIONS_READ $R1 "Notice" "Field 2" "HWND" ; MSLU text
- ShowWindow $R1 0
- !insertmacro MUI_INSTALLOPTIONS_READ $R1 "Notice" "Field 3" "HWND" ; MSLU link
- ShowWindow $R1 0
-Win9x:
ClearErrors
!insertmacro MUI_INSTALLOPTIONS_SHOW
FunctionEnd
--- a/os/win32/installer/notice.ini Fri May 25 00:25:08 2007 +0000
+++ b/os/win32/installer/notice.ini Fri Jun 01 20:54:09 2007 +0000
@@ -1,41 +1,17 @@
; Ini file generated by the HM NIS Edit IO designer.
[Settings]
-NumFields=6
+NumFields=3
+CancelEnabled=0
[Field 1]
Type=Groupbox
-Text=Notice for Windows 9x/ME users!
-Left=8
-Right=292
-Top=80
-Bottom=138
-
-[Field 2]
-Type=Label
-Text=OpenTTD will not work without the Microsoft Layer for Unicode installed.\r\nDue to licensing issues we cannot bundle this file with the installer. Please download MSLU from the Microsoft website and extract UnicoWS.dll to the same directory as the openttd executabe.
-Left=13
-Right=284
-Top=91
-Bottom=127
-
-[Field 3]
-Type=Link
-Text=Microsoft Layer for Unicode
-State=http://www.microsoft.com/downloads/details.aspx?FamilyId=73BA7BD7-ED06-4F0D-80A4-2A7EEAEE17E2&displaylang=en
-Left=197
-Right=284
-Top=127
-Bottom=135
-
-[Field 4]
-Type=Groupbox
Text=UNICODE support
Left=8
Right=292
Top=0
Bottom=75
-[Field 5]
+[Field 2]
Type=Label
Text=This version of OpenTTD has support for UNICODE, allowing users to use non-ASCII character sets such as Russian or Japanese.\r\nSelecting such a language will result in an unusable and garbled interface. You will need to specify a font that has support for these characters in openttd.cfg, or alternatively use an appropiate grf file.\r\n\r\nFor more information please refer to the readme or the wiki.
Left=13
@@ -43,7 +19,7 @@
Top=9
Bottom=65
-[Field 6]
+[Field 3]
Type=Link
Text=OpenTTD wiki
Left=238
--- a/projects/openttd.vcproj Fri May 25 00:25:08 2007 +0000
+++ b/projects/openttd.vcproj Fri Jun 01 20:54:09 2007 +0000
@@ -164,6 +164,9 @@
RelativePath=".\..\src\airport.cpp">
</File>
<File
+ RelativePath=".\..\src\articulated_vehicles.cpp">
+ </File>
+ <File
RelativePath=".\..\src\autoreplace_cmd.cpp">
</File>
<File
@@ -393,6 +396,12 @@
RelativePath=".\..\src\airport_movement.h">
</File>
<File
+ RelativePath=".\..\src\articulated_vehicles.h">
+ </File>
+ <File
+ RelativePath=".\..\src\autoreplace_cmd.h">
+ </File>
+ <File
RelativePath=".\..\src\aystar.h">
</File>
<File
--- a/projects/openttd_vs80.vcproj Fri May 25 00:25:08 2007 +0000
+++ b/projects/openttd_vs80.vcproj Fri Jun 01 20:54:09 2007 +0000
@@ -448,6 +448,10 @@
>
</File>
<File
+ RelativePath=".\..\src\articulated_vehicles.cpp"
+ >
+ </File>
+ <File
RelativePath=".\..\src\autoreplace_cmd.cpp"
>
</File>
@@ -752,6 +756,14 @@
>
</File>
<File
+ RelativePath=".\..\src\articulated_vehicles.h"
+ >
+ </File>
+ <File
+ RelativePath=".\..\src\autoreplace_cmd.h"
+ >
+ </File>
+ <File
RelativePath=".\..\src\aystar.h"
>
</File>
--- a/readme.txt Fri May 25 00:25:08 2007 +0000
+++ b/readme.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1,6 +1,6 @@
OpenTTD README
-Last updated: 2007-04-20
-Release version: 0.5.1
+Last updated: 2007-05-29
+Release version: 0.5.2
------------------------------------------------------------------------
@@ -317,6 +317,7 @@
Richard Kempton (RichK67) - Additional airports, initial TGP implementation
Michael Blunck - For revolutionizing TTD with awesome graphics
George - Canal graphics
+ David Dallaston (Pikka) - Tram tracks
All Translators - For their support to make OpenTTD a truly international game
Bug Reporters - Thanks for all bug reports
Chris Sawyer - For an amazing game!
--- a/source.list Fri May 25 00:25:08 2007 +0000
+++ b/source.list Fri Jun 01 20:54:09 2007 +0000
@@ -1,5 +1,6 @@
# Source Files
airport.cpp
+articulated_vehicles.cpp
autoreplace_cmd.cpp
aystar.cpp
bmp.cpp
@@ -98,6 +99,8 @@
aircraft.h
airport.h
airport_movement.h
+articulated_vehicles.h
+autoreplace_cmd.h
aystar.h
bmp.h
cargotype.h
--- a/src/ai/ai_squirrel.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/ai/ai_squirrel.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -138,7 +138,7 @@
ttd_strlcpy(d_name, FS2OTTD(dirent->d_name), sizeof(d_name));
/* Found file must be directory, but not '.' or '..' */
- if (FiosIsValidFile("ai", dirent, &sb) && (sb.st_mode & S_IFDIR) &&
+ if (FiosIsValidFile("ai/", dirent, &sb) && (sb.st_mode & S_IFDIR) &&
(!FiosIsHiddenFile(dirent) || strncasecmp(d_name, PERSONAL_DIR, strlen(d_name)) == 0) &&
strcmp(d_name, ".") != 0 && strcmp(d_name, "..") != 0) {
/* Create the full-length script-name */
--- a/src/aircraft.h Fri May 25 00:25:08 2007 +0000
+++ b/src/aircraft.h Fri Jun 01 20:54:09 2007 +0000
@@ -135,6 +135,7 @@
void UpdateDeltaXY(Direction direction);
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_AIRCRAFT_INC : EXPENSES_AIRCRAFT_RUN; }
WindowClass GetVehicleListWindowClass() const { return WC_AIRCRAFT_LIST; }
+ bool IsPrimaryVehicle() const { return IsNormalAircraft(this); }
};
#endif /* AIRCRAFT_H */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/articulated_vehicles.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -0,0 +1,84 @@
+/* $Id$ */
+
+/** @file articulated_vehicles.cpp */
+
+#include "stdafx.h"
+#include "openttd.h"
+#include "debug.h"
+#include "functions.h"
+#include "command.h"
+#include "vehicle.h"
+#include "articulated_vehicles.h"
+#include "engine.h"
+#include "train.h"
+#include "newgrf_callbacks.h"
+#include "newgrf_engine.h"
+
+uint CountArticulatedParts(EngineID engine_type)
+{
+ if (!HASBIT(EngInfo(engine_type)->callbackmask, CBM_ARTIC_ENGINE)) return 0;
+
+ uint i;
+ for (i = 1; i < 10; i++) {
+ uint16 callback = GetVehicleCallback(CBID_TRAIN_ARTIC_ENGINE, i, 0, engine_type, NULL);
+ if (callback == CALLBACK_FAILED || callback == 0xFF) break;
+ }
+
+ return i - 1;
+}
+
+void AddArticulatedParts(Vehicle **vl)
+{
+ const Vehicle *v = vl[0];
+ Vehicle *u = vl[0];
+
+ if (!HASBIT(EngInfo(v->engine_type)->callbackmask, CBM_ARTIC_ENGINE)) return;
+
+ for (uint i = 1; i < 10; i++) {
+ uint16 callback = GetVehicleCallback(CBID_TRAIN_ARTIC_ENGINE, i, 0, v->engine_type, v);
+ if (callback == CALLBACK_FAILED || callback == 0xFF) return;
+
+ /* Attempt to use pre-allocated vehicles until they run out. This can happen
+ * if the callback returns different values depending on the cargo type. */
+ u->next = vl[i];
+ if (u->next == NULL) u->next = AllocateVehicle();
+ if (u->next == NULL) return;
+
+ u = u->next;
+
+ EngineID engine_type = GB(callback, 0, 7);
+ bool flip_image = HASBIT(callback, 7);
+ const RailVehicleInfo *rvi_artic = RailVehInfo(engine_type);
+
+ /* get common values from first engine */
+ u->direction = v->direction;
+ u->owner = v->owner;
+ u->tile = v->tile;
+ u->x_pos = v->x_pos;
+ u->y_pos = v->y_pos;
+ u->z_pos = v->z_pos;
+ u->u.rail.track = v->u.rail.track;
+ u->u.rail.railtype = v->u.rail.railtype;
+ u->build_year = v->build_year;
+ u->vehstatus = v->vehstatus & ~VS_STOPPED;
+ u->u.rail.first_engine = v->engine_type;
+
+ /* get more settings from rail vehicle info */
+ u->spritenum = rvi_artic->image_index;
+ if (flip_image) u->spritenum++;
+ u->cargo_type = rvi_artic->cargo_type;
+ u->cargo_subtype = 0;
+ u->cargo_cap = rvi_artic->capacity;
+ u->max_speed = 0;
+ u->max_age = 0;
+ u->engine_type = engine_type;
+ u->value = 0;
+ u = new (u) Train();
+ u->subtype = 0;
+ SetArticulatedPart(u);
+ u->cur_image = 0xAC2;
+ u->random_bits = VehicleRandomBits();
+
+ VehiclePositionChanged(u);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/articulated_vehicles.h Fri Jun 01 20:54:09 2007 +0000
@@ -0,0 +1,11 @@
+/* $Id$ */
+
+/** @file articulated_vehicles.h */
+
+#ifndef ARTICULATED_VEHICLES_H
+#define ARTICULATED_VEHICLES_H
+
+uint CountArticulatedParts(EngineID engine_type);
+void AddArticulatedParts(Vehicle **vl);
+
+#endif /* ARTICULATED_VEHICLES_H */
--- a/src/autoreplace_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/autoreplace_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -171,7 +171,12 @@
return cost;
}
- if (replacement_cargo_type != CT_NO_REFIT) cost += GetRefitCost(new_engine_type); // add refit cost
+ if (replacement_cargo_type != CT_NO_REFIT) {
+ /* add refit cost */
+ int32 refit_cost = GetRefitCost(new_engine_type);
+ if (old_v->type == VEH_TRAIN && IsMultiheaded(old_v)) refit_cost += refit_cost; // pay for both ends
+ cost += refit_cost;
+ }
if (flags & DC_EXEC) {
new_v = GetVehicle(_new_vehicle_id);
@@ -195,9 +200,14 @@
* We add the new engine after the old one instead of replacing it. It will give the same result anyway when we
* sell the old engine in a moment
*/
- DoCommand(0, (GetPrevVehicleInChain(old_v)->index << 16) | new_v->index, 1, DC_EXEC, CMD_MOVE_RAIL_VEHICLE);
+ /* Get the vehicle in front of the one we move out */
+ Vehicle *front = GetPrevVehicleInChain(old_v);
+ /* If the vehicle in front is the rear end of a dualheaded engine, then we need to use the one in front of that one */
+ if (IsMultiheaded(front) && !IsTrainEngine(front)) front = GetPrevVehicleInChain(front);
/* Now we move the old one out of the train */
DoCommand(0, (INVALID_VEHICLE << 16) | old_v->index, 0, DC_EXEC, CMD_MOVE_RAIL_VEHICLE);
+ /* Add the new vehicle */
+ DoCommand(0, (front->index << 16) | new_v->index, 1, DC_EXEC, CMD_MOVE_RAIL_VEHICLE);
} else {
// copy/clone the orders
DoCommand(0, (old_v->index << 16) | new_v->index, IsOrderListShared(old_v) ? CO_SHARE : CO_COPY, DC_EXEC, CMD_CLONE_ORDER);
@@ -224,10 +234,6 @@
if (temp_v != NULL) {
DoCommand(0, (new_v->index << 16) | temp_v->index, 1, DC_EXEC, CMD_MOVE_RAIL_VEHICLE);
}
- } else if (!IsDefaultGroupID(old_v->group_id) && IsValidGroupID(old_v->group_id)) {
- /* Increase the new num engines of the group for the ships, aircraft, and road vehicles
- The old new num engine is decrease in the destroyvehicle function */
- GetGroup(old_v->group_id)->num_engines[new_v->engine_type]++;
}
}
/* We are done setting up the new vehicle. Now we move the cargo from the old one to the new one */
--- a/src/autoreplace_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/autoreplace_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -160,6 +160,9 @@
/* This is for engines we can replace to and they should depend on what we selected to replace from */
if (!IsEngineBuildable(e, type, _local_player)) continue; // we need to be able to build the engine
if (!EnginesGotCargoInCommon(e, WP(w, replaceveh_d).sel_engine[0])) continue; // the engines needs to be able to carry the same cargo
+
+ /* Road vehicles can't be replaced by trams and vice-versa */
+ if (type == VEH_ROAD && HASBIT(EngInfo(WP(w, replaceveh_d).sel_engine[0])->misc_flags, EF_ROAD_TRAM) != HASBIT(EngInfo(e)->misc_flags, EF_ROAD_TRAM)) continue;
if (e == WP(w, replaceveh_d).sel_engine[0]) continue; // we can't replace an engine into itself (that would be autorenew)
}
--- a/src/build_vehicle_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/build_vehicle_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -15,6 +15,7 @@
#include "window.h"
#include "gui.h"
#include "vehicle.h"
+#include "articulated_vehicles.h"
#include "gfx.h"
#include "station.h"
#include "command.h"
@@ -28,6 +29,7 @@
#include "strings.h"
#include "cargotype.h"
#include "group.h"
+#include "road_map.h"
enum BuildVehicleWidgets {
@@ -666,6 +668,7 @@
for (eid = ROAD_ENGINES_INDEX; eid < ROAD_ENGINES_INDEX + NUM_ROAD_ENGINES; eid++) {
if (!IsEngineBuildable(eid, VEH_ROAD, _local_player)) continue;
+ if (!HASBIT(bv->filter.roadtypes, HASBIT(EngInfo(eid)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD)) continue;
EngList_Add(&bv->eng_list, eid);
if (eid == bv->sel_engine) sel_id = eid;
@@ -1019,6 +1022,7 @@
ResizeWindow(w, 0, 16);
break;
case VEH_ROAD:
+ WP(w, buildvehicle_d).filter.roadtypes = (tile == 0) ? ROADTYPES_ALL : GetRoadTypes(tile);
ResizeWindow(w, 0, 16);
case VEH_SHIP:
break;
--- a/src/clear_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/clear_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -291,24 +291,24 @@
for (count = ts.tile_table_count; count != 0; count--, ti++) {
TileIndex tile = *ti;
- if (MayHaveBridgeAbove(tile) && IsBridgeAbove(tile)) {
+ uint z_min = TerraformGetHeightOfTile(&ts, tile + TileDiffXY(0, 0));
+ uint z_max = z_min;
+ uint t = TerraformGetHeightOfTile(&ts, tile + TileDiffXY(1, 0));
+ z_min = min(z_min, t);
+ z_max = max(z_max, t);
+ t = TerraformGetHeightOfTile(&ts, tile + TileDiffXY(1, 1));
+ z_min = min(z_min, t);
+ z_max = max(z_max, t);
+ t = TerraformGetHeightOfTile(&ts, tile + TileDiffXY(0, 1));
+ z_min = min(z_min, t);
+ z_max = max(z_max, t);
+
+ if (direction == 1 && MayHaveBridgeAbove(tile) && IsBridgeAbove(tile) &&
+ GetBridgeHeight(GetSouthernBridgeEnd(tile)) <= z_max * TILE_HEIGHT) {
return_cmd_error(STR_5007_MUST_DEMOLISH_BRIDGE_FIRST);
}
-
- if (direction == -1) {
- uint z, t;
-
- z = TerraformGetHeightOfTile(&ts, tile + TileDiffXY(0, 0));
- t = TerraformGetHeightOfTile(&ts, tile + TileDiffXY(1, 0));
- if (t <= z) z = t;
- t = TerraformGetHeightOfTile(&ts, tile + TileDiffXY(1, 1));
- if (t <= z) z = t;
- t = TerraformGetHeightOfTile(&ts, tile + TileDiffXY(0, 1));
- if (t <= z) z = t;
-
- if (IsTunnelInWay(tile, z * TILE_HEIGHT)) {
- return_cmd_error(STR_1002_EXCAVATION_WOULD_DAMAGE);
- }
+ if (direction == -1 && IsTunnelInWay(tile, z_min * TILE_HEIGHT)) {
+ return_cmd_error(STR_1002_EXCAVATION_WOULD_DAMAGE);
}
}
}
--- a/src/depot_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/depot_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -488,10 +488,10 @@
if (v == NULL) return;
- if (v->type == VEH_TRAIN && !IsFrontEngine(v)) {
+ if (v->HasFront() && !v->IsPrimaryVehicle()) {
v = GetFirstVehicleInChain(v);
/* Do nothing when clicking on a train in depot with no loc attached */
- if (!IsFrontEngine(v)) return;
+ if (v->type == VEH_TRAIN && !IsFrontEngine(v)) return;
}
switch (v->type) {
--- a/src/economy.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/economy.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -117,10 +117,7 @@
FOR_ALL_VEHICLES(v) {
if (v->owner != owner) continue;
- if ((v->type == VEH_TRAIN && IsFrontEngine(v)) ||
- v->type == VEH_ROAD ||
- (v->type == VEH_AIRCRAFT && IsNormalAircraft(v)) ||
- v->type == VEH_SHIP) {
+ if (IsPlayerBuildableVehicleType(v->type) && v->IsPrimaryVehicle()) {
num++;
if (v->age > 730) {
/* Find the vehicle with the lowest amount of profit */
@@ -1581,7 +1578,7 @@
/* Skip loading this vehicle if another train/vehicle is already handling
* the same cargo type at this station */
- if (_patches.improved_load && cargo_left[v->cargo_type] < 0) {
+ if (_patches.improved_load && cargo_left[v->cargo_type] <= 0) {
SETBIT(cargo_not_full, v->cargo_type);
continue;
}
--- a/src/elrail.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/elrail.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -249,7 +249,7 @@
Track bridgetrack = GetBridgeAxis(ti->tile) == AXIS_X ? TRACK_X : TRACK_Y;
uint height = GetBridgeHeight(GetNorthernBridgeEnd(ti->tile));
- if ((height <= TilePixelHeight(ti->tile) + TILE_HEIGHT) &&
+ if ((height <= GetTileMaxZ(ti->tile) + TILE_HEIGHT) &&
(i == PCPpositions[bridgetrack][0] || i == PCPpositions[bridgetrack][1])) {
SETBIT(OverridePCP, i);
}
@@ -289,7 +289,7 @@
if (MayHaveBridgeAbove(ti->tile) && IsBridgeAbove(ti->tile) && !HASBIT(_transparent_opt, TO_BUILDINGS)) {
uint height = GetBridgeHeight(GetNorthernBridgeEnd(ti->tile));
- if (height <= TilePixelHeight(ti->tile) + TILE_HEIGHT) return;
+ if (height <= GetTileMaxZ(ti->tile) + TILE_HEIGHT) return;
}
/* Drawing of pylons is finished, now draw the wires */
--- a/src/engine.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/engine.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -178,14 +178,16 @@
static void AcceptEnginePreview(EngineID eid, PlayerID player)
{
Engine *e = GetEngine(eid);
+ Player *p = GetPlayer(player);
SETBIT(e->player_avail, player);
if (e->type == VEH_TRAIN) {
const RailVehicleInfo *rvi = RailVehInfo(eid);
- Player *p = GetPlayer(player);
assert(rvi->railtype < RAILTYPE_END);
SETBIT(p->avail_railtypes, rvi->railtype);
+ } else if (e->type == VEH_ROAD) {
+ SETBIT(p->avail_roadtypes, HASBIT(EngInfo(eid)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD);
}
e->preview_player = INVALID_PLAYER;
@@ -330,6 +332,12 @@
if (p->is_active) SETBIT(p->avail_railtypes, railtype);
}
}
+ if ((index - NUM_TRAIN_ENGINES) < NUM_ROAD_ENGINES) {
+ /* maybe make another road type available */
+ FOR_ALL_PLAYERS(p) {
+ if (p->is_active) SETBIT(p->avail_roadtypes, HASBIT(EngInfo(index)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD);
+ }
+ }
AddNewsItem(index, NEWS_FLAGS(NM_CALLBACK, 0, NT_NEW_VEHICLES, DNC_VEHICLEAVAIL), 0, 0);
}
--- a/src/engine.h Fri May 25 00:25:08 2007 +0000
+++ b/src/engine.h Fri Jun 01 20:54:09 2007 +0000
@@ -127,8 +127,8 @@
* EngineInfo.misc_flags is a bitmask, with the following values
*/
enum {
- EF_RAIL_TILTS = 0, ///< Rail vehicle tilts in curves (unsupported)
- EF_ROAD_TRAM = 0, ///< Road vehicle is a tram/light rail vehicle (unsup)
+ EF_RAIL_TILTS = 0, ///< Rail vehicle tilts in curves
+ EF_ROAD_TRAM = 0, ///< Road vehicle is a tram/light rail vehicle
EF_USES_2CC = 1, ///< Vehicle uses two company colours
EF_RAIL_IS_MU = 2, ///< Rail vehicle is a multiple-unit (DMU/EMU)
};
--- a/src/fileio.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/fileio.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -359,10 +359,10 @@
{
DetermineBasePaths(exe);
- _paths.save_dir = str_fmt("%ssave", _paths.personal_dir);
- _paths.autosave_dir = str_fmt("%s" PATHSEP "autosave", _paths.save_dir);
- _paths.scenario_dir = str_fmt("%sscenario", _paths.personal_dir);
- _paths.heightmap_dir = str_fmt("%s" PATHSEP "heightmap", _paths.scenario_dir);
+ _paths.save_dir = str_fmt("%ssave" PATHSEP, _paths.personal_dir);
+ _paths.autosave_dir = str_fmt("%s" PATHSEP "autosave" PATHSEP, _paths.save_dir);
+ _paths.scenario_dir = str_fmt("%sscenario" PATHSEP, _paths.personal_dir);
+ _paths.heightmap_dir = str_fmt("%s" PATHSEP "heightmap" PATHSEP, _paths.scenario_dir);
_paths.gm_dir = str_fmt("%sgm" PATHSEP, _paths.game_data_dir);
_paths.data_dir = str_fmt("%sdata" PATHSEP, _paths.game_data_dir);
#if defined(CUSTOM_LANG_DIR)
--- a/src/fios.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/fios.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -114,10 +114,12 @@
case FIOS_TYPE_PARENT:
/* Check for possible NULL ptr (not required for UNIXes, but AmigaOS-alikes) */
- if ((s = strrchr(path, PATHSEPCHAR)) != NULL) {
- s[1] = '\0'; // go up a directory
- if (!FiosIsRoot(path)) s[0] = '\0';
+ s = strrchr(path, PATHSEPCHAR);
+ if (s != NULL && s != path) {
+ s[0] = '\0'; // Remove last path separator character, so we can go up one level.
}
+ s = strrchr(path, PATHSEPCHAR);
+ if (s != NULL) s[1] = '\0'; // go up a directory
#if defined(__MORPHOS__) || defined(__AMIGAOS__)
/* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */
else if ((s = strrchr(path, ':')) != NULL) s[1] = '\0';
@@ -125,14 +127,12 @@
break;
case FIOS_TYPE_DIR:
- if (!FiosIsRoot(path)) strcat(path, PATHSEP);
strcat(path, item->name);
+ strcat(path, PATHSEP);
break;
case FIOS_TYPE_DIRECT:
- sprintf(path, "%s" PATHSEP, item->name);
- s = strrchr(path, PATHSEPCHAR);
- if (s != NULL && s[1] == '\0') s[0] = '\0'; // strip trailing slash
+ sprintf(path, "%s", item->name);
break;
case FIOS_TYPE_FILE:
@@ -150,7 +150,7 @@
snprintf(str_buffr, lengthof(str_buffr), "%s:%s", path, item->name);
} else // XXX - only next line!
#endif
- snprintf(str_buffr, lengthof(str_buffr), "%s" PATHSEP "%s", path, item->name);
+ snprintf(str_buffr, lengthof(str_buffr), "%s%s", path, item->name);
return str_buffr;
}
--- a/src/functions.h Fri May 25 00:25:08 2007 +0000
+++ b/src/functions.h Fri Jun 01 20:54:09 2007 +0000
@@ -131,10 +131,10 @@
void ResetObjectToPlace();
-bool ScrollWindowTo(int x, int y, Window * w);
+bool ScrollWindowTo(int x, int y, Window * w, bool instant = false);
-bool ScrollMainWindowToTile(TileIndex tile);
-bool ScrollMainWindowTo(int x, int y);
+bool ScrollMainWindowToTile(TileIndex tile, bool instant = false);
+bool ScrollMainWindowTo(int x, int y, bool instant = false);
void DrawSprite(SpriteID img, SpriteID pal, int x, int y);
bool EnsureNoVehicle(TileIndex tile);
bool EnsureNoVehicleOnGround(TileIndex tile);
--- a/src/genworld.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/genworld.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -290,6 +290,6 @@
/* Centre the view on the map */
if (FindWindowById(WC_MAIN_WINDOW, 0) != NULL) {
- ScrollMainWindowToTile(TileXY(MapSizeX() / 2, MapSizeY() / 2));
+ ScrollMainWindowToTile(TileXY(MapSizeX() / 2, MapSizeY() / 2), true);
}
}
--- a/src/gfx.h Fri May 25 00:25:08 2007 +0000
+++ b/src/gfx.h Fri Jun 01 20:54:09 2007 +0000
@@ -73,7 +73,7 @@
/* backquote is the key left of "1"
* we only store this key here, no matter what character is really mapped to it
- * on a particular keyboard. (US keyboard: ` and ~ ; German keyboard: ^ and °) */
+ * on a particular keyboard. (US keyboard: ` and ~ ; German keyboard: ^ and °) */
WKC_BACKQUOTE = 45,
WKC_PAUSE = 46,
@@ -244,7 +244,6 @@
/* window.cpp */
void DrawOverlappedWindowForAll(int left, int top, int right, int bottom);
-void SetMouseCursor(CursorID cursor);
void SetMouseCursor(SpriteID sprite, SpriteID pal);
void SetAnimatedMouseCursor(const AnimCursor *table);
void CursorTick();
--- a/src/gfxinit.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/gfxinit.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -208,7 +208,7 @@
/* Medium font */
2, 92, ///< ' ' till 'z'
SKIP, 36,
- 160, 160, ///< Move ¾ to the correct position
+ 160, 160, ///< Move Ÿ to the correct position
98, 98, ///< Up arrow
131, 133,
SKIP, 1, ///< skip currency sign
@@ -233,7 +233,7 @@
/* Small font */
226, 316, ///< ' ' till 'z'
SKIP, 36,
- 384, 384, ///< Move ¾ to the correct position
+ 384, 384, ///< Move Ÿ to the correct position
322, 322, ///< Up arrow
355, 357,
SKIP, 1, ///< skip currency sign
@@ -255,7 +255,7 @@
/* Big font */
450, 540, ///< ' ' till 'z'
SKIP, 36,
- 608, 608, ///< Move ¾ to the correct position
+ 608, 608, ///< Move Ÿ to the correct position
SKIP, 1,
579, 581,
SKIP, 1,
@@ -294,47 +294,47 @@
582, 582, ///< euro symbol large size
358, 358, ///< euro symbol tiny
SPR_CURSOR_CANAL, SPR_IMG_FASTFORWARD, // more icons
- 648, 648, ///< nordic char: æ
- 616, 616, ///< nordic char: Æ
- 666, 666, ///< nordic char: ø
- 634, 634, ///< nordic char: Ø
+ 648, 648, ///< nordic char: æ
+ 616, 616, ///< nordic char: Æ
+ 666, 666, ///< nordic char: ø
+ 634, 634, ///< nordic char: Ø
SPR_PIN_UP, SPR_CURSOR_CLONE_TRAIN, // more icons
- 382, 383, ///< ¼ ½ tiny
- 158, 159, ///< ¼ ½ medium
- 606, 607, ///< ¼ ½ large
- 360, 360, ///< ¦ tiny
- 362, 362, ///< ¨ tiny
- 136, 136, ///< ¦ medium
- 138, 138, ///< ¨ medium
- 584, 584, ///< ¦ large
- 586, 586, ///< ¨ large
- 626, 626, ///< Ð large
- 658, 658, ///< ð large
- 374, 374, ///< ´ tiny
- 378, 378, ///< ¸ tiny
- 150, 150, ///< ´ medium
- 154, 154, ///< ¸ medium
- 598, 598, ///< ´ large
- 602, 602, ///< ¸ large
- 640, 640, ///< Þ large
- 672, 672, ///< þ large
- 380, 380, ///< º tiny
- 156, 156, ///< º medium
- 604, 604, ///< º large
+ 382, 383, ///< Å’ Å“ tiny
+ 158, 159, ///< Å’ Å“ medium
+ 606, 607, ///< Å’ Å“ large
+ 360, 360, ///< Å tiny
+ 362, 362, ///< Å¡ tiny
+ 136, 136, ///< Å medium
+ 138, 138, ///< Å¡ medium
+ 584, 584, ///< Å large
+ 586, 586, ///< Å¡ large
+ 626, 626, ///< Ã large
+ 658, 658, ///< ð large
+ 374, 374, ///< Ž tiny
+ 378, 378, ///< ž tiny
+ 150, 150, ///< Ž medium
+ 154, 154, ///< ž medium
+ 598, 598, ///< Ž large
+ 602, 602, ///< ž large
+ 640, 640, ///< Þ large
+ 672, 672, ///< þ large
+ 380, 380, ///< º tiny
+ 156, 156, ///< º medium
+ 604, 604, ///< º large
317, 320, ///< { | } ~ tiny
93, 96, ///< { | } ~ medium
541, 544, ///< { | } ~ large
SPR_HOUSE_ICON, SPR_HOUSE_ICON,
- 585, 585, ///< § large
- 587, 587, ///< © large
- 592, 592, ///< ® large
- 594, 597, ///< ° ± ² ³ large
- 633, 633, ///< × large
- 665, 665, ///< ÷ large
+ 585, 585, ///< § large
+ 587, 587, ///< © large
+ 592, 592, ///< ® large
+ 594, 597, ///< ° ± ² ³ large
+ 633, 633, ///< × large
+ 665, 665, ///< ÷ large
SPR_SELL_TRAIN, SPR_SHARED_ORDERS_ICON,
- 377, 377, ///< · small
- 153, 153, ///< · medium
- 601, 601, ///< · large
+ 377, 377, ///< · small
+ 153, 153, ///< · medium
+ 601, 601, ///< · large
SPR_WARNING_SIGN, SPR_WARNING_SIGN,
END
};
@@ -396,6 +396,12 @@
assert(load_index == SPR_GROUP_BASE);
load_index += LoadGrfFile("group.grf", load_index, i++);
+ assert(load_index == SPR_TRAMWAY_BASE);
+ load_index += LoadGrfFile("tramtrkw.grf", load_index, i++);
+
+ assert(load_index == SPR_ONEWAY_BASE);
+ load_index += LoadGrfFile("oneway.grf", load_index, i++);
+
/* Initialize the unicode to sprite mapping table */
InitializeUnicodeGlyphMap();
--- a/src/group_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/group_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -211,7 +211,7 @@
}
Vehicle *v = GetVehicle(p2);
- if (v->owner != _current_player || (v->type == VEH_TRAIN && !IsFrontEngine(v))) return CMD_ERROR;
+ if (v->owner != _current_player || !v->IsPrimaryVehicle()) return CMD_ERROR;
if (flags & DC_EXEC) {
DecreaseGroupNumVehicle(v->group_id);
@@ -254,14 +254,11 @@
Vehicle *v;
VehicleType type = (VehicleType)p2;
GroupID id_g = p1;
- uint subtype = (type == VEH_AIRCRAFT) ? AIR_AIRCRAFT : 0;
/* Find the first front engine which belong to the group id_g
* then add all shared vehicles of this front engine to the group id_g */
FOR_ALL_VEHICLES(v) {
- if ((v->type == type) && (
- (type == VEH_TRAIN && IsFrontEngine(v)) ||
- (type != VEH_TRAIN && v->subtype <= subtype))) {
+ if (v->type == type && v->IsPrimaryVehicle()) {
if (v->group_id != id_g) continue;
/* For each shared vehicles add it to the group */
@@ -295,14 +292,11 @@
if (flags & DC_EXEC) {
GroupID old_g = p1;
- uint subtype = (type == VEH_AIRCRAFT) ? AIR_AIRCRAFT : 0;
Vehicle *v;
/* Find each Vehicle that belongs to the group old_g and add it to the default group */
FOR_ALL_VEHICLES(v) {
- if ((v->type == type) && (
- (type == VEH_TRAIN && IsFrontEngine(v)) ||
- (type != VEH_TRAIN && v->subtype <= subtype))) {
+ if (v->type == type && v->IsPrimaryVehicle()) {
if (v->group_id != old_g) continue;
/* Add The Vehicle to the default group */
@@ -348,7 +342,7 @@
*/
void RemoveVehicleFromGroup(const Vehicle *v)
{
- if (!IsValidVehicle(v) || v->type != VEH_TRAIN || !IsFrontEngine(v)) return;
+ if (!IsValidVehicle(v) || !(v->HasFront() && v->IsPrimaryVehicle())) return;
if (!IsDefaultGroupID(v->group_id)) DecreaseGroupNumVehicle(v->group_id);
}
--- a/src/industry.h Fri May 25 00:25:08 2007 +0000
+++ b/src/industry.h Fri Jun 01 20:54:09 2007 +0000
@@ -12,10 +12,19 @@
typedef uint8 IndustryType;
enum {
- INVALID_INDUSTRY = 0xFFFF,
- NUM_INDUSTRYTYPES = 37,
- INDUTILE_NOANIM = 0xFF, ///< flag to mark industry tiles as having no animation
- INVALID_INDUSTRYTYPE = NUM_INDUSTRYTYPES, ///< one above amount is considered invalid
+ INVALID_INDUSTRY = 0xFFFF,
+ NEW_INDUSTRYOFFSET = 37, ///< original number of industries
+ NUM_INDUSTRYTYPES = 37, ///< total number of industries, new and old
+ INDUSTRYTILE_NOANIM = 0xFF, ///< flag to mark industry tiles as having no animation
+ NEW_INDUSTRYTILEOFFSET = 175, ///< original number of tiles
+ INVALID_INDUSTRYTYPE = NUM_INDUSTRYTYPES, ///< one above amount is considered invalid
+ NUM_INDUSTRYTILES = NEW_INDUSTRYTILEOFFSET, ///< total number of industry tiles, new and old
+ INVALID_INDUSTRYTILE = NUM_INDUSTRYTILES, ///< one above amount is considered invalid
+};
+
+enum {
+ CLEAN_RANDOMSOUNDS, ///< Free the dynamically allocated sounds table
+ CLEAN_TILELSAYOUT, ///< Free the dynamically allocated tile layout structure
};
enum IndustryLifeType {
@@ -99,7 +108,6 @@
struct SpriteGroup *spritegroup; ///< pointer to the different sprites of the industry
const struct GRFFile *grffile; ///< grf file that introduced this house
uint8 override; ///< id of the entity been replaced by
- bool enabled; ///< entity still avaible (by default true).newgrf can disable it, though
};
/**
@@ -132,6 +140,8 @@
const uint8 *random_sounds; ///< array of random sounds.
/* Newgrf data */
uint16 callback_flags; ///< Flags telling which grf callback is set
+ uint8 cleanup_flag; ///< flags indicating which data should be freed upon cleaning up
+ bool enabled; ///< entity still avaible (by default true).newgrf can disable it, though
struct GRFFileProps grf_prop; ///< properties related the the grf file
};
@@ -140,22 +150,28 @@
*/
struct IndustryTileSpec {
CargoID accepts_cargo[3]; ///< Cargo accepted by this tile
+ uint8 acceptance[3]; ///< Level of aceptance per cargo type
Slope slopes_refused; ///< slope pattern on which this tile cannot be built
byte anim_production; ///< Animation frame to start when goods are produced
byte anim_next; ///< Next frame in an animation
bool anim_state; ///< When true, the tile has to be drawn using the animation
///< state instead of the construction state
/* Newgrf data */
- uint8 callback_flags; ///< Flags telling which grf callback is set
+ uint8 callback_flags; ///< Flags telling which grf callback is set
+ bool enabled; ///< entity still avaible (by default true).newgrf can disable it, though
struct GRFFileProps grf_prop;
};
/* industry_cmd.cpp*/
-const IndustrySpec *GetIndustrySpec(IndustryType thistype); ///< Array of industries default data
-const IndustryTileSpec *GetIndustryTileSpec(IndustryGfx gfx); ///< Array of industry tiles default data
+const IndustrySpec *GetIndustrySpec(IndustryType thistype); ///< Array of industries data
+const IndustryTileSpec *GetIndustryTileSpec(IndustryGfx gfx); ///< Array of industry tiles data
void ResetIndustries();
void PlantRandomFarmField(const Industry *i);
+/* writable arrays of specs */
+extern IndustrySpec _industry_specs[NUM_INDUSTRYTYPES];
+extern IndustryTileSpec _industry_tile_specs[NUM_INDUSTRYTILES];
+
/* smallmap_gui.cpp */
void BuildIndustriesLegend();
--- a/src/industry_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/industry_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -37,6 +37,28 @@
static byte _industry_sound_ctr;
static TileIndex _industry_sound_tile;
+IndustrySpec _industry_specs[NUM_INDUSTRYTYPES];
+IndustryTileSpec _industry_tile_specs[NUM_INDUSTRYTILES];
+
+/** This function initialize the spec arrays of both
+ * industry and industry tiles.
+ * It adjusts the enabling of the industry too, based on climate availability.
+ * This will allow for clearer testings */
+void ResetIndustries()
+{
+ memset(&_industry_specs, 0, sizeof(_industry_specs));
+ memcpy(&_industry_specs, &_origin_industry_specs, sizeof(_origin_industry_specs));
+
+ /* once performed, enable only the current climate industries */
+ for (IndustryType i = 0; i < NUM_INDUSTRYTYPES; i++) {
+ _industry_specs[i].enabled = HASBIT(_origin_industry_specs[i].climate_availability, _opt.landscape);
+ }
+
+
+ memset(&_industry_tile_specs, 0, sizeof(_industry_tile_specs));
+ memcpy(&_industry_tile_specs, &_origin_industry_tile_specs, sizeof(_origin_industry_tile_specs));
+}
+
/**
* Called if a new block is added to the industry-pool
*/
@@ -86,12 +108,12 @@
* This will ensure at once : proper access and
* not allowing modifications of it.
* @param gfx of industrytile (which is the index in _industry_specs)
- * @pre gfx < NUM_INDUSTRY_GFXES
+ * @pre gfx < INVALID_INDUSTRYTILE
* @return a pointer to the corresponding industrytile spec
**/
const IndustryTileSpec *GetIndustryTileSpec(IndustryGfx gfx)
{
- assert(gfx < NUM_INDUSTRY_GFXES);
+ assert(gfx < INVALID_INDUSTRYTILE);
return &_industry_tile_specs[gfx];
}
@@ -287,14 +309,10 @@
const IndustryTileSpec *itspec = GetIndustryTileSpec(GetIndustryGfx(tile));
CargoID a;
- a = itspec->accepts_cargo[0];
- if (a != CT_INVALID) ac[a] = (a == CT_PASSENGERS) ? 1 : 8;
-
- a = itspec->accepts_cargo[1];
- if (a != CT_INVALID) ac[a] = 8;
-
- a = itspec->accepts_cargo[2];
- if (a != CT_INVALID) ac[a] = 8;
+ for (byte i = 0; i < lengthof(itspec->accepts_cargo); i++) {
+ a = itspec->accepts_cargo[i];
+ if (a != CT_INVALID) ac[a] = itspec->acceptance[i];
+ }
}
static void GetTileDesc_Industry(TileIndex tile, TileDesc *td)
@@ -350,7 +368,7 @@
if (am != 0) {
uint newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_production;
- if (newgfx != INDUTILE_NOANIM) {
+ if (newgfx != INDUSTRYTILE_NOANIM) {
ResetIndustryConstructionStage(tile);
SetIndustryCompleted(tile, true);
SetIndustryGfx(tile, newgfx);
@@ -636,7 +654,7 @@
TransportIndustryGoods(tile);
newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_next;
- if (newgfx != INDUTILE_NOANIM) {
+ if (newgfx != INDUSTRYTILE_NOANIM) {
ResetIndustryConstructionStage(tile);
SetIndustryGfx(tile, newgfx);
MarkTileDirtyByTile(tile);
@@ -1452,7 +1470,9 @@
indspec = GetIndustrySpec(p1);
/* Check if the to-be built/founded industry is available for this climate. */
- if (!HASBIT(indspec->climate_availability, _opt_ptr->landscape)) return CMD_ERROR;
+ if (!indspec->enabled) {
+ return CMD_ERROR;
+ }
/* If the patch for raw-material industries is not on, you cannot build raw-material industries.
* Raw material industries are industries that do not accept cargo (at least for now)
@@ -1461,7 +1481,7 @@
indspec->accepts_cargo[0] == CT_INVALID &&
indspec->accepts_cargo[1] == CT_INVALID &&
indspec->accepts_cargo[2] == CT_INVALID &&
- p1 != IT_LUMBER_MILL) {
+ !(indspec->behaviour & INDUSTRYBEH_CUT_TREES)) {
return CMD_ERROR;
}
@@ -1502,9 +1522,10 @@
static void PlaceInitialIndustry(IndustryType type, int amount)
{
int num = _numof_industry_table[_opt.diff.number_industries][amount];
+ const IndustrySpec *ind_spc = GetIndustrySpec(type);
/* These are always placed next to the coastline, so we scale by the perimeter instead. */
- num = (type == IT_OIL_REFINERY || type == IT_OIL_RIG) ? ScaleByMapSize1D(num) : ScaleByMapSize(num);
+ num = (ind_spc->check_proc == CHECK_REFINERY || ind_spc->check_proc == CHECK_OIL_RIG) ? ScaleByMapSize1D(num) : ScaleByMapSize(num);
if (_opt.diff.number_industries != 0) {
PlayerID old_player = _current_player;
@@ -1536,20 +1557,20 @@
/* Find the total amount of industries */
for (it = IT_COAL_MINE; it < NUM_INDUSTRYTYPES; it++) {
- int num;
ind_spc = GetIndustrySpec(it);
- chance = ind_spc->appear_creation[_opt.landscape];
+ if (ind_spc->enabled) {
+ chance = ind_spc->appear_creation[_opt.landscape];
+ if (chance > 0) {
+ /* once the chance of appearance is determind, it have to be scaled by
+ * the difficulty level. The "chance" in question is more an index into
+ * the _numof_industry_table,in fact */
+ int num = _numof_industry_table[_opt.diff.number_industries][chance];
- if (chance > 0) {
- /* once the chance of appearance is determind, it have to be scaled by
- * the difficulty level. The "chance" in question is more an index into
- * the _numof_industry_table,in fact */
- num = _numof_industry_table[_opt.diff.number_industries][chance];
-
- /* These are always placed next to the coastline, so we scale by the perimeter instead. */
- num = (it == IT_OIL_REFINERY || it == IT_OIL_RIG) ? ScaleByMapSize1D(num) : ScaleByMapSize(num);
- i += num;
+ /* These are always placed next to the coastline, so we scale by the perimeter instead. */
+ num = (ind_spc->check_proc == CHECK_REFINERY || ind_spc->check_proc == CHECK_OIL_RIG) ? ScaleByMapSize1D(num) : ScaleByMapSize(num);
+ i += num;
+ }
}
}
@@ -1561,8 +1582,11 @@
* for this landscape.
* @todo : Do we really have to pass chance as un-scaled value, since we've already
* processed that scaling above? No, don't think so. Will find a way. */
- chance = GetIndustrySpec(it)->appear_creation[_opt.landscape];
- if (chance > 0) PlaceInitialIndustry(it, chance);
+ ind_spc = GetIndustrySpec(it);
+ if (ind_spc->enabled) {
+ chance = ind_spc->appear_creation[_opt.landscape];
+ if (chance > 0) PlaceInitialIndustry(it, chance);
+ }
};
}
--- a/src/industry_map.h Fri May 25 00:25:08 2007 +0000
+++ b/src/industry_map.h Fri Jun 01 20:54:09 2007 +0000
@@ -48,7 +48,6 @@
GFX_BUBBLE_CATCHER = 162,
GFX_TOFFEE_QUARY = 165,
GFX_SUGAR_MINE_SIEVE = 174,
- NUM_INDUSTRY_GFXES = 175,
};
/**
@@ -201,12 +200,6 @@
_m[tile].m1 = 0;
}
-/** Structure used to make a mapping from industry gfx to industry type */
-struct IndustryTypeSolver {
- IndustryGfx MinGfx; ///< The first gfx index for the industry type
- IndustryGfx MaxGfx; ///< The last gfx index for the industry type
-};
-
/**
* Get the animation loop number
* @param tile the tile to get the animation loop number of
--- a/src/lang/american.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/american.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1089,6 +1089,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Service helicopters at helipads automatically: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Link landscape toolbar to rail/road/water/airport toolbars: {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}Reverse scroll direction: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}Smooth viewport scrolling: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}Show a measurement tooltip when using various build-tools: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Show company liveries: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :None
@@ -1589,6 +1590,12 @@
STR_RAILROAD_TRACK_WITH_PRESIGNALS :Railroad track with pre-signals
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Railroad track with exit-signals
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Railroad track with combo-signals
+STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS :Railway track with normal and pre-signals
+STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS :Railway track with normal and exit-signals
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS :Railway track with normal and combo-signals
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS :Railway track with pre- and exit-signals
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS :Railway track with pre- and combo-signals
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS :Railway track with exit- and combo-signals
STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Must remove railway station first
@@ -1597,22 +1604,39 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Must remove road first
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Road works in progress
STR_1802_ROAD_CONSTRUCTION :{WHITE}Road Construction
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Tramway Construction
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Select Road Bridge
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... one way roads can't have junctions
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Can't build road here...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Can't build tramway here...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Can't remove road from here...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Can't remove tramway from here...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Road Depot Orientation
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Tram Depot Orientation
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Can't build road vehicle depot here...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Can't build tram vehicle depot here...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Can't build bus station...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Can't build truck station...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Can't build passenger tram station...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Can't build freight tram station...
STR_180A_ROAD_CONSTRUCTION :Road construction
+STR_180A_TRAMWAY_CONSTRUCTION :Tramway construction
STR_180B_BUILD_ROAD_SECTION :{BLACK}Build road section
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Build tramway section
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Build road vehicle depot (for building and servicing vehicles)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Build tram vehicle depot (for building and servicing trams)
STR_180D_BUILD_BUS_STATION :{BLACK}Build bus station
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Build truck loading bay
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Build passenger tram station
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Build freight tram station
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Build road bridge
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Build tramway bridge
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Build road tunnel
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Build tramway tunnel
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Toggle build/remove for road construction
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Toggle build/remove for tramway construction
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Select road vehicle depot orientation
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Select tram vehicle depot orientation
STR_1814_ROAD :Road
STR_1815_ROAD_WITH_STREETLIGHTS :Road with streetlights
STR_1816_TREE_LINED_ROAD :Tree-lined road
@@ -1620,6 +1644,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Road/rail grade crossing
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Can't remove bus station...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Can't remove truck station...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Can't remove passenger tram station...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Can't remove freight tram station...
##id 0x2000
STR_2000_TOWNS :{WHITE}Towns
@@ -1784,8 +1810,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} now accepts {STRING} and {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Bus Station Orientation
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Truck Station Orient.
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Passenger Tram Orientation
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Freight Tram Orientation
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Must demolish bus station first
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Must demolish truck station first
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Must demolish passenger tram station first
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Must demolish freight tram station first
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Station{P "" s}
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- None -
@@ -1797,6 +1827,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Select length of railroad station
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Select bus station orientation
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Select truck loading bay orientation
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Select passenger tram station orientation
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Select freight tram station orientation
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Center main view on station location
STR_3054_SHOW_STATION_RATINGS :{BLACK}Show station ratings
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Change name of station
@@ -2247,6 +2279,8 @@
STR_LIVERY_HELICOPTER :Helicopter
STR_LIVERY_SMALL_PLANE :Small Airplane
STR_LIVERY_LARGE_PLANE :Large Airplane
+STR_LIVERY_PASSENGER_TRAM :Passenger Tram
+STR_LIVERY_FREIGHT_TRAM :Freight Tram
STR_LIVERY_GENERAL_TIP :{BLACK}Show general color schemes
STR_LIVERY_TRAIN_TIP :{BLACK}Show train color schemes
@@ -2720,6 +2754,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Name road vehicle
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Citizens celebrate . . .{}First bus arrives at {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Citizens celebrate . . .{}First truck arrives at {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Citizens celebrate . . .{}First passenger tram arrives at {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Citizens celebrate . . .{}First freight tram arrives at {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Road Vehicle Crash!{}Driver dies in fireball after collision with train
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Road Vehicle Crash!{}{COMMA} die in fireball after collision with train
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Can't make vehicle turn around...
@@ -3004,6 +3040,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}You are about to sell all the vehicles in the depot. Are you sure?
+STR_DEPOT_WRONG_DEPOT_TYPE :Wrong depot type
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Sell all trains in the depot
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Sell all road vehicles in the depot
--- a/src/lang/brazilian_portuguese.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/brazilian_portuguese.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1599,22 +1599,38 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Precisa remover a rodovia primeiro
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Recapeamento rodoviário em progresso
STR_1802_ROAD_CONSTRUCTION :{WHITE}Construir rodovias
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Construção de Bonde
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Selecionar Ponte Rodoviária
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}ImpossÃvel construir rodovia aqui...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}ImpossÃvel construir bonde aqui...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}ImpossÃvel remover rodovia daqui...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}ImpossÃvel remover bonde daqui...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Orientação da Garagem
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Orientação do Depósito
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}ImpossÃvel construir garagem aqui...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}ImpossÃvel construir depósito aqui...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}ImpossÃvel construir estação de ônibus...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}ImpossÃvel construir estação de caminhão
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}ImpossÃvel construir estação de bonde...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}ImpossÃvel construir estação de bonde
STR_180A_ROAD_CONSTRUCTION :Construir rodovias
+STR_180A_TRAMWAY_CONSTRUCTION :Construção de Bonde
STR_180B_BUILD_ROAD_SECTION :{BLACK}Construir trecho rodoviário
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Construir linha de bonde
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Construir garagem (para construção e manutenção de automóveis)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Construir depósito de bonde (para construção e manutenção de bondes)
STR_180D_BUILD_BUS_STATION :{BLACK}Construir estação de ônibus
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Construir carga de caminhões
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Constuir estação de bonde para passageiros
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Constuir estação de bonde para carga
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Construir ponte rodoviária
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Construir ponte de bonde
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Construir túnel rodoviário
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Construir túnel de bonde
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Alternar construir/remover para contrução rodoviária
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Alternar construir/remover linhas de bonde e sinais
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Selecionar a orientação da garagem
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Selecionar a orientação do depósito de bonde
STR_1814_ROAD :Rodovia
STR_1815_ROAD_WITH_STREETLIGHTS :Rodovia iluminada
STR_1816_TREE_LINED_ROAD :Rodovia arborizada
@@ -1622,6 +1638,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Passagem de nÃvel
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}ImpossÃvel remover estação de ônibus
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}ImpossÃvel remover parada de caminhões
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}ImpossÃvel remover estação de bonde...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}ImpossÃvel remover estação de bonde...
##id 0x2000
STR_2000_TOWNS :{WHITE}Cidades
@@ -1788,8 +1806,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} agora aceita {STRING} e {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Orientação do estação de ônibus
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Orientação da estação de caminhão
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Orientação da Estação de Bonde
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Orientação da Estação de Bonde
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Precisa demolir a estação de ônibus primeiro
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Precisa demolir a estação de caminhão
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Precisa demolir estação de bonde primeiro
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Precisa demolir estação de bonde primeiro
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Estações
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- Nenhuma -
@@ -1801,6 +1823,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Selecionar o tamanho da estação ferroviária
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Selecionar orientação do estação de ônibus
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Selecionar orientação da área de carga
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Selecionar orientação da estação de bonde
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Selecionar orientação da estação de bonde
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Centralizar visualização no local estação
STR_3054_SHOW_STATION_RATINGS :{BLACK}Exibir avaliações da estação
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Alterar o nome da estação
@@ -2251,6 +2275,8 @@
STR_LIVERY_HELICOPTER :Helicóptero
STR_LIVERY_SMALL_PLANE :Aeronave Pequena
STR_LIVERY_LARGE_PLANE :Aeronave Grande
+STR_LIVERY_PASSENGER_TRAM :Bonde de Passageiros
+STR_LIVERY_FREIGHT_TRAM :Bonde de Carga
STR_LIVERY_GENERAL_TIP :{BLACK}Exibir esquemas de cor gerais
STR_LIVERY_TRAIN_TIP :{BLACK}Exibir esquemas de cor de trens
@@ -2724,6 +2750,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Renomear automóvel
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Cidadãos celebram . . .{}Primeiro ônibus chega a {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Cidadãos celebram . . .{}Primeiro caminhão chega a {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Cidadãos celebram . . .{}Primeiro bonde de passageiros chega a {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Cidadãos celebram . . .{}Primeiro bonde de carga chega a {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Acidente Rodoviário!{} Condutor morre numa explosão após a colisão com um trem
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Acidente Rodoviário!{} {COMMA} mortos numa explosão após a colisão com um trem
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}ImpossÃvel fazer o veÃculo dar a volta...
@@ -3008,6 +3036,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Você está prestes a vender todos os automóveis da garagem. Você tem certeza?
+STR_DEPOT_WRONG_DEPOT_TYPE :Tipo de depósito errado
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Vender todos os trens no depósito
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Vender todos os automóveis na garagem
--- a/src/lang/catalan.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/catalan.txt Fri Jun 01 20:54:09 2007 +0000
@@ -3,6 +3,8 @@
##isocode ca_ES
##plural 0
+#
+
##id 0x0000
STR_NULL :
STR_0001_OFF_EDGE_OF_MAP :{WHITE}Fora del marc del mapa
@@ -991,10 +993,10 @@
STR_TRAIN_HAS_VOID_ORDER :{WHITE}Tren {COMMA} té una ordre buida
STR_TRAIN_HAS_DUPLICATE_ENTRY :{WHITE}Tren {COMMA} té ordres duplicades
STR_TRAIN_HAS_INVALID_ENTRY :{WHITE}Tren {COMMA} té una estació incorrecta en les ordres
-STR_ROADVEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}Vehicle Rodat {COMMA} té massa poques ordres a la planificació
-STR_ROADVEHICLE_HAS_VOID_ORDER :{WHITE}Vehicle Rodat {COMMA} té una ordre buida
-STR_ROADVEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}Vehicle Rodat {COMMA} té ordres duplicades
-STR_ROADVEHICLE_HAS_INVALID_ENTRY :{WHITE}Vehicle Rodat {COMMA} té una estació incorrecta en les ordres
+STR_ROADVEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}Vehicle {COMMA} té massa poques ordres a la planificació
+STR_ROADVEHICLE_HAS_VOID_ORDER :{WHITE}Vehicle {COMMA} té una ordre buida
+STR_ROADVEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}Vehicle {COMMA} té ordres duplicades
+STR_ROADVEHICLE_HAS_INVALID_ENTRY :{WHITE}Vehicle {COMMA} té una estació incorrecta en les ordres
STR_SHIP_HAS_TOO_FEW_ORDERS :{WHITE}Vaixell {COMMA} té massa poques ordres a la planificació
STR_SHIP_HAS_VOID_ORDER :{WHITE}Vaixell {COMMA} té una ordre buida
STR_SHIP_HAS_DUPLICATE_ENTRY :{WHITE}Vaixell {COMMA} té ordres duplicades
@@ -1046,6 +1048,7 @@
STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL :{LTBLUE}Nova cerca de rutes global (NPF, anul·la NTP): {ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}Multiplicador de pes per contenidor per simular trens pesats: {ORANGE}{STRING}
STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}Permet situar parades en carreteres que són propietat del poble: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}Permetre construir estacions annexes: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SMALL_AIRPORTS :{LTBLUE}Permet sempre aeroports petits: {ORANGE}{STRING}
@@ -1086,6 +1089,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Manteniment dels helicopters als heliports automà ticament: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Enllaça la barra d'eines del paisatge a les barres d'eines de vies/carreteres/aigua/aeroports {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}En desplaçar la pantalla amb el ratolà mou la vista en la direcció contrà ria: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}Desplaçament suau de la vista: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}Mostra un cartell de mesura quan estiguis utilitzant và ries eines de construcció: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Mostra la decoració de la companyia: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :Cap
@@ -1098,6 +1102,7 @@
STR_CONFIG_PATCHES_SCROLLWHEEL_OFF :Off
STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Velocitat del mapa amb la rodeta del ratolÃ: {ORANGE}{STRING}
STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME :{LTBLUE}Posa en pausa automà ticament en començar un joc nou: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS :{LTBLUE}Utilitza la llista de vehicles avançada: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_TRAINS :{LTBLUE}Max trens per jugador: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_ROADVEH :{LTBLUE}Max automòbils per jugador: {ORANGE}{STRING}
@@ -1585,6 +1590,7 @@
STR_RAILROAD_TRACK_WITH_PRESIGNALS :Via de tren amb pre-senyals
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Via de tren amb senyals de sortida
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Via de tren amb senyals combinades
+STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Primer has de treure la via de l'estació
@@ -1592,22 +1598,39 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}S'ha de treure la carretera primer
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Obres en progrés
STR_1802_ROAD_CONSTRUCTION :{WHITE}Construcció de Carreteres
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Construcció de via de tramvia
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Selecciona un Pont per Carretera
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... les carreteres de sentit únic no poden tenir encreuaments
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Aquà no es pot construir una carretera...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}No puc construir la via de tramvia aquÃ...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Aquà no es pot treure una carretera...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}No puc treure la via de tramvia d'aquÃ...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Cotxeres
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Orientació de les cotxeres de tramvies
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Aquà no es pot construir una cotxera...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Aquà no puc construir les cotxeres de tramvies...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}No es pot construir una parada d'autobús...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}No es pot construir estació de mercaderies...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}No puc construir l'estació de tramvies de passatgers
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}No puc construir l'estació de tramvies de cà rrega
STR_180A_ROAD_CONSTRUCTION :Construcció de Carreteres
+STR_180A_TRAMWAY_CONSTRUCTION :Construcció de vies de tramvia
STR_180B_BUILD_ROAD_SECTION :{BLACK}Construeix una secció de carretera
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Construeix secció de via de tramvia
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Construeix una cotxera (per construir i mantenir vehicles)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Construeix cotxeres de tramvies (per construir i revisar tramvies)
STR_180D_BUILD_BUS_STATION :{BLACK}Constueix una parada d'autobús
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Construeix un moll de cà rrega
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Construeix una estació de tramvies de passatgers
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Construeix una estació de tramvies de mercaderies
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Construeix un pont per carretera
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Construeix pont per tramvies
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Construeix un túnel per carretera
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Construeix túnel per tramvies
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Intercanvia funció construeix/treu per la construcció de carreteres
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Canvia construeix/treu de la construcció de vies de tramvia
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Selecciona la orientació de les Cotxeres
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Selecciona l'orientació de les cotxeres de tramvies
STR_1814_ROAD :Carretera
STR_1815_ROAD_WITH_STREETLIGHTS :Carretera amb fanals
STR_1816_TREE_LINED_ROAD :Carretera de tres carrils
@@ -1615,6 +1638,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Pas a nivell
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}No es pot treure l'estació d'autobusos...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}No es pot treure l'estació de camions...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}No puc treure l'estació de tramvies de passatgers
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}No puc treure l'estació de tramvies de mercaderies
##id 0x2000
STR_2000_TOWNS :{WHITE}Poblacions
@@ -1779,8 +1804,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} ara accepta {STRING} i {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Parada d'autobús
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Estació de Mercaderies
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Orientació estació passatgers
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Orientació estació mercaderies
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Primer has d'enderrocar la parada d'autobús
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Primer has d'enderrocar l'estació de mercaderies
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Primer has de demolir l'estació de tramvies de passatgers
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Primer has de demolir l'estació de tramvies de mercaderies
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Estacions/Parades
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- Cap -
@@ -1792,6 +1821,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Selecciona la mida de les andanes de l'estació de tren
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Selecciona l'orientació de la parada d'autobús
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Selecciona l'orientació del moll de cà rrega de camions
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Selecciona l'orientació de l'estació de tramvies de passatgers
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Selecciona l'orientació de l'estació de tramvies de mercaderies
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Centra la pantalla principal al lloc de l'estació
STR_3054_SHOW_STATION_RATINGS :{BLACK}Mostra els ratis de l'estació
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Canvia el nom de l'estació
@@ -1974,7 +2005,7 @@
STR_SV_EMPTY :
STR_SV_UNNAMED :Sense Nom
STR_SV_TRAIN_NAME :Tren {COMMA}
-STR_SV_ROADVEH_NAME :Vehicle Rodat {COMMA}
+STR_SV_ROADVEH_NAME :Vehicle {COMMA}
STR_SV_SHIP_NAME :Vaixell {COMMA}
STR_SV_AIRCRAFT_NAME :Aeronau {COMMA}
@@ -2012,6 +2043,8 @@
STR_SV_STNAME_HELIPORT :{STRING} Heliport
STR_SV_STNAME_FOREST :{STRING} Bosc
+STR_SV_GROUP_NAME :{GROUP}
+
############ end of savegame specific region!
##id 0x6800
@@ -2108,12 +2141,12 @@
STR_7011_CONSTRUCTION :{GOLD}Construcció
STR_7012_NEW_VEHICLES :{GOLD}Nous Vehicles
STR_7013_TRAIN_RUNNING_COSTS :{GOLD}Desp. de Circ. de Trens
-STR_7014_ROAD_VEH_RUNNING_COSTS :{GOLD}Desp. de Circ. de Vehicles Rodats
+STR_7014_ROAD_VEH_RUNNING_COSTS :{GOLD}Desp. de Circ. de Vehicles
STR_7015_AIRCRAFT_RUNNING_COSTS :{GOLD}Desp. de Circ. d'Aeronaus
STR_7016_SHIP_RUNNING_COSTS :{GOLD}Desp. de Circ. de Vaixells
STR_7017_PROPERTY_MAINTENANCE :{GOLD}Manteniment de Propietats
STR_7018_TRAIN_INCOME :{GOLD}Ingressos de Tren
-STR_7019_ROAD_VEHICLES_INCOME :{GOLD}Ingressos de Vehicles Rodats
+STR_7019_ROAD_VEHICLES_INCOME :{GOLD}Ingressos de Vehicles
STR_701A_AIRCRAFT_INCOME :{GOLD}Ingressos d'Aeronaus
STR_701B_SHIP_INCOME :{GOLD}Ingressos de Vaixells
STR_701C_LOAN_INTEREST :{GOLD}Interessos del Prèstec
@@ -2240,6 +2273,8 @@
STR_LIVERY_HELICOPTER :Helicòpter
STR_LIVERY_SMALL_PLANE :Avió petit
STR_LIVERY_LARGE_PLANE :Avió gran
+STR_LIVERY_PASSENGER_TRAM :Tramvia de passatgers
+STR_LIVERY_FREIGHT_TRAM :Tramvia de cà rrega
STR_LIVERY_GENERAL_TIP :{BLACK}Mostra esquemes de colors generals
STR_LIVERY_TRAIN_TIP :{BLACK}Mostra els esquemes de colors dels trens
@@ -2668,11 +2703,11 @@
##id 0x9000
STR_9000_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Automòbil en camÃ
-STR_9001_ROAD_VEHICLES :{WHITE}{COMPANY} - {COMMA} Vehicles Rodats
+STR_9001_ROAD_VEHICLES :{WHITE}{COMPANY} - {COMMA} Vehicles
STR_9002 :{WHITE}{VEHICLE}
-STR_9003_ROAD_VEHICLE_DEPOT :{WHITE}{TOWN} Cotxera de Vehicles Rodats
+STR_9003_ROAD_VEHICLE_DEPOT :{WHITE}{TOWN} Cotxera de Vehicles
STR_9004_NEW_VEHICLES :{BLACK}Nous Vehicles
-STR_9006_NEW_ROAD_VEHICLES :{WHITE}Nous Vehicles Rodats
+STR_9006_NEW_ROAD_VEHICLES :{WHITE}Nous Vehicles
STR_9007_BUILD_VEHICLE :{BLACK}Construeix Vehicle
STR_9009_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}No es pot construir l'automòbil...
STR_900C_DETAILS :{WHITE}{VEHICLE} (Detalls)
@@ -2685,7 +2720,7 @@
STR_9013_MUST_BE_STOPPED_INSIDE :{WHITE}...s'ha de parar dins d'una cotxera
STR_9014_CAN_T_SELL_ROAD_VEHICLE :{WHITE}No pots vendre l'automòbil...
STR_9015_CAN_T_STOP_START_ROAD_VEHICLE :{WHITE}No es pot parar/arrencar l'automòbil...
-STR_9016_ROAD_VEHICLE_IS_WAITING :{WHITE}Vehicle Rodat {COMMA} esperant en cotxera
+STR_9016_ROAD_VEHICLE_IS_WAITING :{WHITE}Vehicle {COMMA} esperant en cotxera
STR_HEADING_FOR_ROAD_DEPOT :{ORANGE}Cap a la cotxera de {TOWN}.
STR_HEADING_FOR_ROAD_DEPOT_VEL :{ORANGE}Cap a la cotxera de {TOWN}, a {VELOCITY}
STR_HEADING_FOR_ROAD_DEPOT_SERVICE :{LTBLUE}Revisió a la cotxera de {TOWN}
@@ -2704,7 +2739,7 @@
STR_9023_BUILD_NEW_ROAD_VEHICLE :{BLACK}Construeix un nou automòbil
STR_9024_DRAG_ROAD_VEHICLE_TO_HERE :{BLACK}Arrossega el vehicle fins aquà per vendre'l
STR_9025_CENTER_MAIN_VIEW_ON_ROAD :{BLACK}Centra la pantalla principal en la situació de la cotxera
-STR_9026_ROAD_VEHICLE_SELECTION :{BLACK}Llista de selecció de Vehicles Rodats - clica en un vehicle per informació
+STR_9026_ROAD_VEHICLE_SELECTION :{BLACK}Llista de selecció de Vehicles - clica en un vehicle per informació
STR_9027_BUILD_THE_HIGHLIGHTED_ROAD :{BLACK}Construeix l'automòbil seleccionat
STR_902A_COST_SPEED_RUNNING_COST :{BLACK}Cost: {CURRENCY}{}Velocitat: {VELOCITY}{}Cost de circulació: {CURRENCY}/any{}Capacitat: {CARGO}
@@ -2713,8 +2748,10 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Anomena automòbil
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Celebració popular . . .{}Primer autobús arriba a {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Celebració popular . . .{}Primer camió arriba a {STATION}!
-STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Accident de Vehicle Rodat!{}El conductor mor en una bola de foc després de la colisió amb un tren
-STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Accident de Vehicle Rodat!{}{COMMA} moren en una bola de foc després d'una colisió amb un tren
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Els ciutadans celebren . . .{}El primer tramvia de passatgers arriba a {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Els ciutadans celebren . . .{}El primer tramvia de mercaderies arriba a {STATION}!
+STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Accident de Vehicle!{}El conductor mor en una bola de foc després de la colisió amb un tren
+STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Accident de Vehicle!{}{COMMA} moren en una bola de foc després d'una colisió amb un tren
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}No es pot fer que el vehicle torni...
STR_ONLY_TURN_SINGLE_UNIT :{WHITE}No es poden girar vehicles que estan formats per múltiples unitats
STR_9034_RENAME :{BLACK}Reanomena
@@ -2997,6 +3034,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Estàs a punt de vendre tots els vehicles de la cotxera. N'estàs segur?
+STR_DEPOT_WRONG_DEPOT_TYPE :Tipus de cotxera incorrecta
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Vendre tots els trens de la cotxera
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Vendre tots els vehicles de la cotxera
@@ -3006,7 +3044,7 @@
STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TIP :{BLACK}Treure una llista de tots els trens amb aquesta cotxera en les seves ordres
STR_DEPOT_VEHICLE_ORDER_LIST_ROADVEH_TIP :{BLACK}Treure una llista de tots els vehicles amb aquesta cotxera en les seves ordres
STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TIP :{BLACK}Treure una llista de tots els vaixells amb aquesta drassana en les seves ordres
-STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TIP :{BLACK}Treu una llista de tots els avions amb algun hangar en aquest aeroport en les seves ordres
+STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TIP :{BLACK}Treu una llista de tots les aeronaus amb algun hangar en aquest aeroport en les seves ordres
STR_DEPOT_AUTOREPLACE_TRAIN_TIP :{BLACK}Autosubstitueix tots els trens de la cotxera
STR_DEPOT_AUTOREPLACE_ROADVEH_TIP :{BLACK}Autosubstitueix tots els vehicles de la cotxera
@@ -3187,3 +3225,41 @@
STR_TRANSPARENT_BUILDINGS_DESC :{BLACK}Activa/Desactiva transparència dels edificis com ara estacions, cotxeres, punts de trobada i catenà ries
STR_TRANSPARENT_BRIDGES_DESC :{BLACK}Activa/Desactiva transparència dels ponts
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Activa/Desactiva transparència de les estructures com ara fars i antenes
+
+##### Mass Order
+STR_GROUP_NAME_FORMAT :Grup {COMMA}
+STR_GROUP_TINY_NAME :{TINYFONT}{GROUP}
+STR_GROUP_ALL_TRAINS :Tots els trens
+STR_GROUP_ALL_ROADS :Tots els vehicles
+STR_GROUP_ALL_SHIPS :Tots els vaixells
+STR_GROUP_ALL_AIRCRAFTS :Totes les aeronaus
+STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
+STR_GROUP_ADD_SHARED_VEHICLE :Afegeix vehicles compartits
+STR_GROUP_REMOVE_ALL_VEHICLES :Treu tots els vehicles
+
+STR_GROUP_TRAINS_CAPTION :{WHITE}{GROUP} - {COMMA} Tren{P "" s}
+STR_GROUP_ROADVEH_CAPTION :{WHITE}{GROUP} - {COMMA} Vehicle{P "" s}
+STR_GROUP_SHIPS_CAPTION :{WHITE}{GROUP} - {COMMA} Vaixell{P "" s}
+STR_GROUP_AIRCRAFTS_CAPTION :{WHITE}{GROUP} - {COMMA} Aeronau
+STR_GROUP_RENAME_CAPTION :{BLACK}Canvia de nom el grup
+STR_GROUP_REPLACE_CAPTION :{WHITE}Substitueix els Vehicles de "{GROUP}"
+
+STR_GROUP_CAN_T_CREATE :{WHITE}No puc crear el grup...
+STR_GROUP_CAN_T_DELETE :{WHITE}No puc eliminar aquest grup...
+STR_GROUP_CAN_T_RENAME :{WHITE}No puc canviar el nom del grup...
+STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}No puc eliminar tots els vehicles d'aquest grup...
+STR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}No puc afegir el vehicle a aquest grup...
+STR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}No puc afegir vehicles compartits al grup...
+
+STR_GROUPS_CLICK_ON_GROUP_FOR_TIP :{BLACK}Grups - Clica en un grup per llistar tots els vehicles d'aquest grup
+STR_GROUP_CREATE_TIP :{BLACK}Clica per crear un grup
+STR_GROUP_DELETE_TIP :{BLACK}Elimina el grup seleccionat
+STR_GROUP_RENAME_TIP :{BLACK}Canvia el nom del grup seleccionat
+STR_GROUP_REPLACE_PROTECTION_TIP :{BLACK}Clica per protegir aquest grup de l'autosubstitueix global
+
+STR_PROFIT_GOOD_THIS_YEAR_GOOD_LAST_YEAR :{TINYFONT}{BLACK}Benefici aquest any: {GREEN}{CURRENCY} {BLACK}(any passat: {GREEN}{CURRENCY}{BLACK})
+STR_PROFIT_BAD_THIS_YEAR_GOOD_LAST_YEAR :{TINYFONT}{BLACK}Benefici aquest any: {RED}{CURRENCY} {BLACK}(any passat: {GREEN}{CURRENCY}{BLACK})
+STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Benefici aquest any: {GREEN}{CURRENCY} {BLACK}(any passat: {RED}{CURRENCY}{BLACK})
+STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Benefici aquest any: {RED}{CURRENCY} {BLACK}(any passat: {RED}{CURRENCY}{BLACK})
+
+########
--- a/src/lang/danish.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/danish.txt Fri Jun 01 20:54:09 2007 +0000
@@ -3,6 +3,8 @@
##isocode da_DA
##plural 0
+#
+
##id 0x0000
STR_NULL :
STR_0001_OFF_EDGE_OF_MAP :{WHITE}Ude over kanten af kortet
@@ -462,7 +464,7 @@
STR_018D_DEMOLISH_BUILDINGS_ETC :{BLACK}Nedriv bygninger osv. på et stykke land
STR_018E_LOWER_A_CORNER_OF_LAND :{BLACK}Sænk et hjørne af landet
STR_018F_RAISE_A_CORNER_OF_LAND :{BLACK}Hæv et hjørne af landet
-STR_0190_SCROLL_BAR_SCROLLS_LIST :{BLACK}Scroll bar - scroller listen op/ned
+STR_0190_SCROLL_BAR_SCROLLS_LIST :{BLACK}Scrollbar - scroller listen op/ned
STR_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Scroll bar - flytter listen mod venstre/højre
STR_0191_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Vis landskabskonturer på kortet
STR_0192_SHOW_VEHICLES_ON_MAP :{BLACK}Vis køretøjer på kortet
@@ -1046,6 +1048,7 @@
STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL :{LTBLUE}Ny global ruteplanlægger (NPF, tilsidesætter NTP): {ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}Vægtfaktor for fragt for at simulere tunge tog: {ORANGE}{STRING}
STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}Tillad gennemkørsels-stop på veje ejet af en by: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}Tillad bygning af tilstødende stationer: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SMALL_AIRPORTS :{LTBLUE}Tillad altid små lufthavne: {ORANGE}{STRING}
@@ -1565,7 +1568,7 @@
STR_1011_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Kan ikke bygge jernbane her...
STR_1012_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Kan ikke fjerne jernbane herfra...
STR_1013_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}Kan ikke fjerne signaler herfra...
-STR_1014_TRAIN_DEPOT_ORIENTATION :{WHITE}Retning for remise
+STR_1014_TRAIN_DEPOT_ORIENTATION :{WHITE}Retning af remise
STR_1015_RAILROAD_CONSTRUCTION :Jernbanekonstruktion
STR_TOOLB_ELRAIL_CONSTRUCTION :Elektrisk jernbanekonstruktion
STR_1016_MONORAIL_CONSTRUCTION :Monorailkonstruktion
@@ -1583,9 +1586,16 @@
STR_1023_RAILROAD_TRAIN_DEPOT :Remise
STR_1024_AREA_IS_OWNED_BY_ANOTHER :{WHITE}...området ejes af et andet selskab
STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS :Jernbane med almindelige signaler
-STR_RAILROAD_TRACK_WITH_PRESIGNALS :Jernbane med indkørselssignaler
-STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Jernbane med udkørselssignaler
-STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Jernbane med kombinerede ind- og udkørselssignaler
+STR_RAILROAD_TRACK_WITH_PRESIGNALS :Jernbane med præ-signaler
+STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Jernbane med exit-signaler
+STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Jernbane med kombi-signaler
+STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS :Jernbanespor med normale og præ-signaler
+STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS :Jernbanespor med normale og exit-signaler
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbanespor med normale og kombi-signaler
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS :Jernbanespor med præ- og exit-signaler
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS :Jernbanespor med præ- og kombi-signaler
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS :Jernbanespor med exit- og kombi-signaler
+STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Jernbanestation skal fjernes først
@@ -1593,22 +1603,39 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Det er nødvendigt at fjerne vejen først
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Vejarbejde i gang
STR_1802_ROAD_CONSTRUCTION :{WHITE}Vejkonstruktion
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Sporvejskonstruktion
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Vælg vejbro
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... ensrettede veje kan ikke have kryds
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Kan ikke bygge vej her...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Kan ikke bygge sporvej her...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Kan ikke fjerne vej herfra...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Kan ikke fjerne sporvej her...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Retning af værksted
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Retning af sporvognsremise
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Kan ikke bygge værksted her...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Kan ikke bygge sporvognsremise her...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Kan ikke bygge rutebilstation...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Kan ikke bygge fragtcentral...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Kan ikke bygge passager-sporvognsstation...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Kan ikke bygge fragt-sporvognsstation...
STR_180A_ROAD_CONSTRUCTION :Vejkonstruktion
+STR_180A_TRAMWAY_CONSTRUCTION :Sporvejskonstruktion
STR_180B_BUILD_ROAD_SECTION :{BLACK}Byg en sektion vej
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Byg sporvejssektion
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Byg værksted (til bygning og servicering af vejkøretøjer)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Byg sporvognsremise (til konstruktion og service af vogne)
STR_180D_BUILD_BUS_STATION :{BLACK}Byg rutebilstation
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Byg fragtcentral
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Byg passager-sporvognsstation
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Byg fragt-sporvognsstation
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Byg bro
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Byg sporvejsbro
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Byg tunnel
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Byg sporvejstunnel
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Skift mellem bygning/fjernelse af veje
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Skift mellem bygning/fjernelse af sporveje
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Vælg retning for værksted
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Vælg retning af sporvognsremise
STR_1814_ROAD :Vej
STR_1815_ROAD_WITH_STREETLIGHTS :Vej med gadelygter
STR_1816_TREE_LINED_ROAD :Vej med vejtræer
@@ -1616,6 +1643,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Jernbaneoverskæring
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Kan ikke fjerne rutebilstation...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Kan ikke fjerne fragtcentral...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Kan ikke fjerne passager-sporvognsstation
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Kan ikke fjerne fragt-sporvognsstation
##id 0x2000
STR_2000_TOWNS :{WHITE}Byer
@@ -1780,8 +1809,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} accepterer nu {STRING} og {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Retning af rutebilstation
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Retning af fragtcentral
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Retning af sporvognsstation
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Retning af sporvognsstation
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Det er nødvendigt at nedrive rutebilstationen først
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Det er nødvendigt at rive fragtcentralen ned først
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Passager-sporvognsstation skal fjernes først
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Fragt-sporvognsstation skal fjernes først
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Stationer
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- Ingen -
@@ -1793,6 +1826,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Vælg længde af banegård
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Vælg retning af rutebilstation
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Vælg retning af fragtcentral
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Vælg retning af sporvognsstation
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Vælg retning af sporvognsstation
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Centrer skærmen over stationens lokalitet
STR_3054_SHOW_STATION_RATINGS :{BLACK}Vis stationens bedømmelse
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Ændre stationens navn
@@ -1822,10 +1857,10 @@
STR_STAT_CLASS_WAYP :Kontrolsteder
##id 0x3800
-STR_3800_SHIP_DEPOT_ORIENTATION :{WHITE}Skibsdok orientering
+STR_3800_SHIP_DEPOT_ORIENTATION :{WHITE}Retning af skibsdok
STR_3801_MUST_BE_BUILT_ON_WATER :{WHITE}...skal bygges på vand
STR_3802_CAN_T_BUILD_SHIP_DEPOT :{WHITE}Kan ikke bygge en skibsdok her...
-STR_3803_SELECT_SHIP_DEPOT_ORIENTATION :{BLACK}Vælg orientering af skibsdok
+STR_3803_SELECT_SHIP_DEPOT_ORIENTATION :{BLACK}Vælg retning af skibsdok
STR_3804_WATER :Vand
STR_3805_COAST_OR_RIVERBANK :Kyst eller flodbred
STR_3806_SHIP_DEPOT :Skibsdok
@@ -2243,6 +2278,8 @@
STR_LIVERY_HELICOPTER :Helikopter
STR_LIVERY_SMALL_PLANE :Lille fly
STR_LIVERY_LARGE_PLANE :Stort fly
+STR_LIVERY_PASSENGER_TRAM :Passager-sporvogn
+STR_LIVERY_FREIGHT_TRAM :Fragt-sporvogn
STR_LIVERY_GENERAL_TIP :{BLACK}Vis generelle farveskemaer
STR_LIVERY_TRAIN_TIP :{BLACK}Vis farveskemaer for tog
@@ -2716,6 +2753,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Giv køretøjet et navn
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Indbyggerne fester . . .{}Første bus ankommer til {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Indbyggerne fester . . .{}Første lastbil ankommer til {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Indbyggerne fester . . .{}Første passager-sporvogn ankommer til {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Indbyggerne fester . . .{}Første fragt-sporvogn ankommer til {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Lastbil forulykket!{}Chauffør dør i flammerne efter sammenstød med tog
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Bus forulykket!{}{COMMA} dør i flammerne efter kollision med et tog
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Kan ikke få køretøjet til at vende...
@@ -3000,6 +3039,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Du er ved at sælge alle køretøjer i depotet. Er du sikker?
+STR_DEPOT_WRONG_DEPOT_TYPE :Forkert depottype
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Sælg alle toge i remisen
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Sælg alle køretøjer i værkstedet
--- a/src/lang/dutch.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/dutch.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1089,6 +1089,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Helikopters automatisch repareren op helipads: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Verbind de landschaptoolbar met de trein/weg/water/vliegveld toolbars: {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}Omgekeerde scrollrichting: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}Vloeiend scrollen kijkvenster: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}Toon dimensie informatie bij het gebruik van diverse bouw-tools: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Laat all bedrijfslogo's zien: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :Niets
@@ -1597,22 +1598,38 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Moet weg eerst weghalen
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Er wordt aan de weg gewerkt
STR_1802_ROAD_CONSTRUCTION :{WHITE}Wegenbouw
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Bouw tramrails
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Kies brug
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Kan hier geen weg bouwen...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Kan geen tramrails bouwen hier...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Kan hier geen weg weghalen...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Kan de tramrails hier niet verwijderen...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Bouw wegvoertuigdepot
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Tram depot richting
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Kan hier geen vrachtwagendepot bouwen...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Kan geen tram voertuig depot bouwen hier...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Kan hier geen bushalte bouwen...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Kan hier geen laadstation bouwen...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Kan geen passagiers tram station bouwen...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Kan geen vracht tram station bouwen...
STR_180A_ROAD_CONSTRUCTION :Wegenbouw
+STR_180A_TRAMWAY_CONSTRUCTION :Tramrails constructie
STR_180B_BUILD_ROAD_SECTION :{BLACK}Bouw weg
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Bouw tramrails onderdeel
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Bouw wegvoertuigdepot (om voertuigen te bouwen en te repareren)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Bouw tram voertuig depot (voor de bouw en onderhoud)
STR_180D_BUILD_BUS_STATION :{BLACK}Bouw bushalte
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Bouw vrachtwagen laadhal
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Bouw passagiers tram station
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Bouw vracht tram station
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Bouw brug voor wegvoertuigen
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Bouw tramrails brug
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Bouw wegtunnel
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Bouw tramrails tunnel
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Schakel tussen bouwen en verwijderen voor wegbouw
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Schakelaar tussen bouwen/verwijderen van tramrails
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Selecteer richting van wegvoertuigdepot
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Selecteer tram voertuig depot richting
STR_1814_ROAD :Weg
STR_1815_ROAD_WITH_STREETLIGHTS :Weg met straatlantaarns
STR_1816_TREE_LINED_ROAD :Weg met bomenrij
@@ -1620,6 +1637,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Gelijke weg/spoorweg kruising
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Kan busstation niet verwijderen...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Kan vrachtwagenstation niet verwijderen...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Kan passagiers tram station niet verwijderen...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Kan vracht tram station niet verwijderen...
##id 0x2000
STR_2000_TOWNS :{WHITE}Steden
@@ -1784,8 +1803,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} accepteert voortaan {STRING} en {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Bouw bushalte
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Bouw Vrachtwagenstation
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Passagiers tram richting
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Vracht tram richting
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Verwijder eerst bushalte
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Verwijder eerst vrachtwagenstation
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Verwijder eerst passagiers tram station
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Verwijder eerst vracht tram station
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Stations
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- Geen -
@@ -1797,6 +1820,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Selecteer lengte van station
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Selecteer richting van bushalte
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Selecteer richting van vrachtwagenstation
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Selecteer passagiers tram station richting
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Selecteer vracht tram station richting
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Centreer hoofdbeeld op lokatie van station
STR_3054_SHOW_STATION_RATINGS :{BLACK}Bekijk stationsreputaties
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Hernoem station
@@ -2247,6 +2272,8 @@
STR_LIVERY_HELICOPTER :Helikopter
STR_LIVERY_SMALL_PLANE :Klein Vliegtuig
STR_LIVERY_LARGE_PLANE :Groot Vliegtuig
+STR_LIVERY_PASSENGER_TRAM :Passagiers tram
+STR_LIVERY_FREIGHT_TRAM :Vracht tram
STR_LIVERY_GENERAL_TIP :{BLACK}Laat de algemene kleurschema's zien
STR_LIVERY_TRAIN_TIP :{BLACK}Laat trein kleurschema's zien
@@ -2720,6 +2747,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Benoem wegvoertuig
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Inwoners feesten...{}Eerste bus arriveert in {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Inwoners feesten...{}Eerste vrachtwagen arriveert in {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Infwoners feesten . . .{}Eerste passagiers tram arriveert in {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Inwoners feesten . . .{}Eerste vracht tram arriveert in {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Wegvoertuig gebotst!{}Bestuurder verongelukt door treinbotsing
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Wegvoertuig gebotst!{}{COMMA} verongelukt door treinbotsing
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Kan voertuig niet omdraaien...
@@ -2970,8 +2999,8 @@
STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Bijbehorend bestand niet gevonden (compatibel GRF geladen)
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Compatibele GRF(s) geladen voor ontbrekende bestanden
-STR_NEWGRF_DISABLED_WARNING :{WHITE}Ontbrekende GRF bestand(en) zijn uitgeschakeld
-STR_NEWGRF_NOT_FOUND_WARNING :{WHITE}GRF bestand(en) om dit spel te kunnen laden ontbreken
+STR_NEWGRF_DISABLED_WARNING :{WHITE}Missend(e) GRF bestand(en) zijn uitgeschakeld
+STR_NEWGRF_NOT_FOUND_WARNING :{WHITE}Er zijn missende GRF bestanden om het spel te laden
STR_CURRENCY_WINDOW :{WHITE}Aangepaste valuta
STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Wisselkoers: {ORANGE}{CURRENCY} = £ {COMMA}
@@ -3004,6 +3033,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Je staat op het punt alle voertuigen in het depot te verkopen. Weet je het zeker?
+STR_DEPOT_WRONG_DEPOT_TYPE :Verkeerd depot type
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Verkoop alle treinen in het depot
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Verkoop alle weg voertuigen in het depot
--- a/src/lang/english.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/english.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1089,6 +1089,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Service helicopters at helipads automatically: {ORANGE}{STRING1}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Link landscape toolbar to rail/road/water/airport toolbars: {ORANGE}{STRING1}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}Reverse scroll direction: {ORANGE}{STRING1}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}Smooth viewport scrolling: {ORANGE}{STRING1}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}Show a measurement tooltip when using various build-tools: {ORANGE}{STRING1}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Show company liveries: {ORANGE}{STRING1}
STR_CONFIG_PATCHES_LIVERIES_NONE :None
@@ -1589,6 +1590,12 @@
STR_RAILROAD_TRACK_WITH_PRESIGNALS :Railway track with pre-signals
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Railway track with exit-signals
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Railway track with combo-signals
+STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS :Railway track with normal and pre-signals
+STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS :Railway track with normal and exit-signals
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS :Railway track with normal and combo-signals
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS :Railway track with pre- and exit-signals
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS :Railway track with pre- and combo-signals
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS :Railway track with exit- and combo-signals
STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Must remove railway station first
@@ -1597,22 +1604,39 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Must remove road first
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Road works in progress
STR_1802_ROAD_CONSTRUCTION :{WHITE}Road Construction
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Tramway Construction
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Select Road Bridge
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... one way roads can't have junctions
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Can't build road here...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Can't build tramway here...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Can't remove road from here...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Can't remove tramway from here...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Road Depot Orientation
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Tram Depot Orientation
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Can't build road vehicle depot here...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Can't build tram vehicle depot here...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Can't build bus station...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Can't build lorry station...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Can't build passenger tram station...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Can't build freight tram station...
STR_180A_ROAD_CONSTRUCTION :Road construction
+STR_180A_TRAMWAY_CONSTRUCTION :Tramway construction
STR_180B_BUILD_ROAD_SECTION :{BLACK}Build road section
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Build tramway section
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Build road vehicle depot (for building and servicing vehicles)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Build tram vehicle depot (for building and servicing vehicles)
STR_180D_BUILD_BUS_STATION :{BLACK}Build bus station
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Build lorry loading bay
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Build passenger tram station
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Build freight tram station
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Build road bridge
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Build tramway bridge
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Build road tunnel
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Build tramway tunnel
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Toggle build/remove for road construction
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Toggle build/remove for tramway construction
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Select road vehicle depot orientation
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Select tram vehicle depot orientation
STR_1814_ROAD :Road
STR_1815_ROAD_WITH_STREETLIGHTS :Road with streetlights
STR_1816_TREE_LINED_ROAD :Tree-lined road
@@ -1620,6 +1644,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Road/rail level crossing
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Can't remove bus station...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Can't remove lorry station...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Can't remove passenger tram station...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Can't remove freight tram station...
##id 0x2000
STR_2000_TOWNS :{WHITE}Towns
@@ -1783,9 +1809,13 @@
STR_3040_NOW_ACCEPTS :{WHITE}{STATION} now accepts {STRING}
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} now accepts {STRING} and {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Bus Station Orientation
-STR_3043_TRUCK_STATION_ORIENT :{WHITE}Lorry Station Orient.
+STR_3043_TRUCK_STATION_ORIENT :{WHITE}Lorry Station Orientation
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Passenger Tram Orientation
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Freight Tram Orientation
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Must demolish bus station first
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Must demolish lorry station first
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Must demolish passenger tram station first
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Must demolish freight tram station first
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Station{P "" s}
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- None -
@@ -1797,6 +1827,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Select length of railway station
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Select bus station orientation
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Select lorry loading bay orientation
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Select passenger tram station orientation
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Select freight tram station orientation
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Centre main view on station location
STR_3054_SHOW_STATION_RATINGS :{BLACK}Show station ratings
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Change name of station
@@ -2247,6 +2279,8 @@
STR_LIVERY_HELICOPTER :Helicopter
STR_LIVERY_SMALL_PLANE :Small Aeroplane
STR_LIVERY_LARGE_PLANE :Large Aeroplane
+STR_LIVERY_PASSENGER_TRAM :Passenger Tram
+STR_LIVERY_FREIGHT_TRAM :Freight Tram
STR_LIVERY_GENERAL_TIP :{BLACK}Show general colour schemes
STR_LIVERY_TRAIN_TIP :{BLACK}Show train colour schemes
@@ -2720,6 +2754,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Name road vehicle
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Citizens celebrate . . .{}First bus arrives at {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Citizens celebrate . . .{}First truck arrives at {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Citizens celebrate . . .{}First passenger tram arrives at {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Citizens celebrate . . .{}First freight tram arrives at {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Road Vehicle Crash!{}Driver dies in fireball after collision with train
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Road Vehicle Crash!{}{COMMA} die in fireball after collision with train
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Can't make vehicle turn around...
@@ -3004,6 +3040,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}You are about to sell all the vehicles in the depot. Are you sure?
+STR_DEPOT_WRONG_DEPOT_TYPE :Wrong depot type
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Sell all trains in the depot
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Sell all road vehicles in the depot
--- a/src/lang/french.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/french.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1090,6 +1090,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Entretenir automatiquement les hélicoptères à l'héliport: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Relier la barre d'outils Paysage avec celle des rails/routes/eau et aéroport: {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}Inverser la direction lors du défilement avec la souris : {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}Défilement régulier de la vue: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}Montrer une infobulle de mesure lors de l'utilisation de divers outils de construction: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Affichage des livrées de compagnie : {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :Aucune
@@ -1569,7 +1570,7 @@
STR_1011_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Impossible de construire des rails ici...
STR_1012_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Impossible de retirer les rails d'ici...
STR_1013_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}Impossible de retirer les signaux d'ici...
-STR_1014_TRAIN_DEPOT_ORIENTATION :{WHITE}Orientation du Dépôt
+STR_1014_TRAIN_DEPOT_ORIENTATION :{WHITE}Orientation du dépôt
STR_1015_RAILROAD_CONSTRUCTION :Construction de voie ferrée
STR_TOOLB_ELRAIL_CONSTRUCTION :Construction de voie ferrée électrifiée
STR_1016_MONORAIL_CONSTRUCTION :Construction de Monorail
@@ -1587,9 +1588,15 @@
STR_1023_RAILROAD_TRAIN_DEPOT :Dépôt ferroviaire
STR_1024_AREA_IS_OWNED_BY_ANOTHER :{WHITE}...appartient à une autre compagnie
STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS :Rails avec des signaux normaux
-STR_RAILROAD_TRACK_WITH_PRESIGNALS :Rails avec des pré-signaux
+STR_RAILROAD_TRACK_WITH_PRESIGNALS :Rails avec des signaux d'entrée
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Rails avec des signaux de sortie
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Rails avec des signaux combinés
+STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS :Rails avec des signaux normaux et d'entrée
+STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS :Rails avec des signaux normaux et de sortie
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS :Rails avec des signaux normaux et combinés
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS :Rails avec des signaux d'entrée et de sortie
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS :Rails avec des signaux d'entrée et combinés
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS :Rails avec des signaux de sortie et combinés
STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Vous devez d'abord retirer la gare
@@ -1598,22 +1605,39 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Vous devez d'abord retirer la route
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Route en travaux
STR_1802_ROAD_CONSTRUCTION :{WHITE}Construction routière
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Construction de tramway
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Choisir Pont Routier
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... les routes à sens unique ne peuvent pas avoir de jonctions
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Impossible de construire la route ici...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Impossible de construire une section de tramway ici...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Impossible de retirer la route ici...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Impossible de retirer la section de tramway d'ici...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Orientation du dépôt
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Orientation du dépôt
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Impossible de construire un dépôt routier ici...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Impossible de construire un dépôt de tramway ici...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Impossible de construire un arrêt d'autobus...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Impossible de construire une aire de chargement...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Impossible de construire une station de tramway pour passagers...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Impossible de construire une station de tramway pour fret...
STR_180A_ROAD_CONSTRUCTION :Construction routière
+STR_180A_TRAMWAY_CONSTRUCTION :Construction de tramway
STR_180B_BUILD_ROAD_SECTION :{BLACK}Construire une section de route
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Construire une section de tramway
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Construire un dépôt routier (pour construire et entretenir les véhicules routiers)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Construire un dépôt de tramway (pour la construction et l'entretien des véhicules)
STR_180D_BUILD_BUS_STATION :{BLACK}Construire un arrêt d'autobus
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Construire une aire de chargement
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Construire une station de tramway pour passagers
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Construire une station de tramway pour fret
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Construire un pont routier
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Construire un pont
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Construire un tunnel routier
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Construire un tunnel
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Basculer construire/détruire routes
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Basculer construire/retirer pour tramways
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Choisir orientation du dépôt routier
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Choisir l'orientation du dépôt de tramway
STR_1814_ROAD :Route
STR_1815_ROAD_WITH_STREETLIGHTS :Route avec lampadaires
STR_1816_TREE_LINED_ROAD :Route avec lignée d'arbustres
@@ -1621,6 +1645,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Route/rail Croisement à niveau
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Impossible de supprimer la station de bus...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Impossible de supprimer la station de camions...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Impossible de retirer la station de tramway pour passagers...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Impossible de retirer la station de tramway pour fret...
##id 0x2000
STR_2000_TOWNS :{WHITE}Villes
@@ -1785,9 +1811,13 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} accepte désormais: {STRING} et {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Arrêt d'autobus
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Aire de chargement
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Tramway pour passagers
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Tramway pour fret
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Vous devez d'abord détruire l'arrêt d'autobus
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Vous devez d'abord détruire l'aire de chargement
-STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Station{P "" s}
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Vous devez d'abord démolir la station de tramway pour passagers
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Vous devez d'abord démolir la station de tramway pour fret
+STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Station{P 2 "" s}
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- Aucun -
STR_304B_SITE_UNSUITABLE :{WHITE}...l'endroit ne convient pas
@@ -1798,6 +1828,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Choisir la longueur de la gare
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Choisir l'orientation de l'arrêt d'autobus
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Choix de l'orientation de l'aire de chargement
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Choisir l'orientation de la station de tramway pour passagers
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Choisir l'orientation de la station de tramway pour fret
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Centrer la vue sur la station
STR_3054_SHOW_STATION_RATINGS :{BLACK}Afficher la notation de la station
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Renommer la station
@@ -1827,7 +1859,7 @@
STR_STAT_CLASS_WAYP :Points de passage
##id 0x3800
-STR_3800_SHIP_DEPOT_ORIENTATION :{WHITE}Orientation du dépot naval
+STR_3800_SHIP_DEPOT_ORIENTATION :{WHITE}Orientation du dépôt
STR_3801_MUST_BE_BUILT_ON_WATER :{WHITE}...doit être construit sur l'eau
STR_3802_CAN_T_BUILD_SHIP_DEPOT :{WHITE}Impossible de construire le dépôt naval ici...
STR_3803_SELECT_SHIP_DEPOT_ORIENTATION :{BLACK}Choisir l'orientation du dépôt naval
@@ -2248,6 +2280,8 @@
STR_LIVERY_HELICOPTER :Hélicoptère
STR_LIVERY_SMALL_PLANE :Petit porteur
STR_LIVERY_LARGE_PLANE :Gros porteur
+STR_LIVERY_PASSENGER_TRAM :Tramway pour passagers
+STR_LIVERY_FREIGHT_TRAM :Tramway pour fret
STR_LIVERY_GENERAL_TIP :{BLACK}Montrer les livrées générales
STR_LIVERY_TRAIN_TIP :{BLACK}Montrer les livrées de trains
@@ -2721,6 +2755,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Renommer le véhicule
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Les habitants célèbrent . . .{}Le premier bus arrive à {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Les habitants célèbrent . . .{}Le premier camion arrive à {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Les habitants célèbrent . . .{}Le premier tramway arrive à {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Les habitants célèbrent . . .{}Le premier tramway arrive à {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Accident routier!{}Un automobiliste meurt brûlé vif lors d'une collision avec un train
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Accident routier!{}{COMMA} mort{P "" s} lors d'une collision avec un train
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Impossible de faire faire demi-tour au véhicule...
@@ -3005,6 +3041,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Vous êtes sur le point de vendre tous les véhicules du dépôt. Etes-vous sûr ?
+STR_DEPOT_WRONG_DEPOT_TYPE :Dépôt incompatible
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Vendre tous les trains du dépôt
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Vendre tous les véhicules routiers du dépôt
--- a/src/lang/hungarian.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/hungarian.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1155,6 +1155,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Helikopterek automatikus javÃtása a helikopter-leszállókon: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}TájrendezÅ‘ eszköztár megnyitása a közúti/vasúti/vÃzi/légi eszköztárakkal: {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}Egeres mozgáskor a táj a másik irányba mozdul el: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}FinomÃtott nézÅ‘pont-görgetés: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}ÉpÃtési eszközök használata esetén területinformációk mutatása: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Cégek járműveinek mutatása: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :Egyikét sem
@@ -1663,22 +1664,37 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Előbb le kell rombolnod az utat
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Útkarbantartás folyamatban
STR_1802_ROAD_CONSTRUCTION :{WHITE}ÚtépÃtés
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Villamospálya épÃtés
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Közúti hÃd épÃtése
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Nem épÃthetsz ide utat...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Nem lehet villamossÃnt épÃteni itt...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Nem rombolhatod le innen az utat...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Nem lehet villamossÃnt eltávolÃtani innen...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Garázs helyzete
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Villamos-depó iránya
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Nem épÃthetsz ide garázst...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Nem lehet villamos-depót épÃteni ide...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Nem épÃthetsz ide buszmegállót...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Nem épÃthetsz ide teherautó-rakodóhelyet...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Nem lehet villamos utasvárót épÃteni...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Nem lehet tehervillamos-állomást épÃteni...
STR_180A_ROAD_CONSTRUCTION :ÚtépÃtés
+STR_180A_TRAMWAY_CONSTRUCTION :Villamospálya épÃtés
STR_180B_BUILD_ROAD_SECTION :{BLACK}Út épÃtése
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Garázs épÃtése (járművek vételére és karbantartására)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Villamos-depó épÃtése (járművek megépÃtésére és szervizelésére)
STR_180D_BUILD_BUS_STATION :{BLACK}Buszmegálló épÃtése
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Teherautó-rakodóhely épÃtése
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Villamos utasváró épÃtése
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Tehervillamos-állomás épÃtése
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Közúti hÃd épÃtése
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Villamos-hÃd épÃtése
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Közúti alagút épÃtése
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Villamos-alagút épÃtése
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}ÉpÃtés/felszedés közötti váltás utaknál
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}ÉpÃtÅ‘/bontó üzemmód váltása a villamospályákhoz
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Válaszd ki a garázs helyzetét
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Válassz villamos-depó irányt
STR_1814_ROAD :Út
STR_1815_ROAD_WITH_STREETLIGHTS :Út lámpákkal
STR_1816_TREE_LINED_ROAD :Fával szegélyezett út
@@ -1686,6 +1702,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Út/vasút kereszteződés
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Nem távolÃthatod el ezt a buszmegállót...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Nem távolÃthatod el ezt a teherautó megállót...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Nem lehet a villamos utasvárót eltávolÃtani...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Nem lehet a tehervillamos-állomást eltávolÃtani
##id 0x2000
STR_2000_TOWNS :{WHITE}Városok
@@ -1850,8 +1868,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} most már elfogad {STRING} és {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Buszmegálló helyzete
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Rakodóhely helyzete
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}UtasszállÃtó villamos irány
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}TeherszállÃtó-villamos irány
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Előbb le kell rombolnod a buszmegállót
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Előbb le kell rombolnod a teherautó-rakodóhelyet
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Előbb le kell rombolni a villamos utasvárót
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Előbb le kell rombolni a tehervillamos-állomást
STR_3048_STATIONS :{WHITE}{COMPANY} állomásai - {COMMA}
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- Nincs -
@@ -1863,6 +1885,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}A vasútállomás hossza
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Buszmegálló helyzetének kiválasztása
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Teherautó-rakodó helyzetének kiválasztása
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Válassz villamos utasváró irányt
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Válassz tehervillamos-állomás irányt
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}A fÅ‘ nézetet az állomásra állÃtja
STR_3054_SHOW_STATION_RATINGS :{BLACK}Vélemény megmutatása az állomásról
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Az állomás nevének megváltoztatása
@@ -2350,6 +2374,8 @@
STR_LIVERY_HELICOPTER :Helikopter
STR_LIVERY_SMALL_PLANE :Kis repülőgép
STR_LIVERY_LARGE_PLANE :Nagy repülőgép
+STR_LIVERY_PASSENGER_TRAM :UtasszállÃtó villamos
+STR_LIVERY_FREIGHT_TRAM :TeherszállÃtó villamos
STR_LIVERY_GENERAL_TIP :{BLACK}Ãltalános szinsémák mutatása
STR_LIVERY_TRAIN_TIP :{BLACK}Vonat szinsémák mutatása
@@ -2823,6 +2849,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Közúti jármű átnevezése
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Az emberek ünnepelnek . . .{}Megérkezett az első busz {STATION} állomásra!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Az emberek ünnepelnek . . .{}Megérkezett az első teherautó {STATION} állomásra!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}A lakosság ünnepel . . .{}ElsÅ‘ utasszállÃtó villamos megérkezett {STATION} állomásra!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}A lakosság ünnepel . . .{}ElsÅ‘ teherszállÃtó-villamos megérkezett {STATION} állomásra!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Közúti baleset!{}A vezető meghalt a vonattal való ütközéskor
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Közúti baleset!{}{COMMA} ember meghalt a vonattal való ütközéskor
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Nem fordÃthatod vissza a járművet...
@@ -3107,6 +3135,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Biztosan eladod a depóban lévő összes járművet?
+STR_DEPOT_WRONG_DEPOT_TYPE :Rossz depó tÃpus
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Összes depóbeli vonat eladása
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Összes depóbeli jármű eladása
--- a/src/lang/italian.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/italian.txt Fri Jun 01 20:54:09 2007 +0000
@@ -5,6 +5,8 @@
##case ms mp fs fp
##gender m f
+#
+
##id 0x0000
STR_NULL :
STR_0001_OFF_EDGE_OF_MAP :{WHITE}Fuori dal bordo della mappa
@@ -53,7 +55,7 @@
STR_002C_PLASTIC :{G=f}Plastica
STR_002D_FIZZY_DRINKS :{G=f}Bibite frizzanti
STR_002E :
-STR_002F_PASSENGER :{G=m}Passeggero
+STR_002F_PASSENGER :{G=m}Passeggeri
STR_0030_COAL :{G=m}Carbone
STR_0031_MAIL :{G=f}Posta
STR_0032_OIL :{G=m}Petrolio
@@ -79,11 +81,11 @@
STR_0046_CANDY :{G=f}Caramella
STR_0047_COLA :{G=f}Cola
STR_0048_COTTON_CANDY :{G=m}Zucchero filato
-STR_0049_BUBBLE :{G=f}Bollicina
+STR_0049_BUBBLE :{G=f}Bollicine
STR_004A_TOFFEE :{G=m}Toffee
-STR_004B_BATTERY :{G=f}Batteria
+STR_004B_BATTERY :{G=f}Batterie
STR_004C_PLASTIC :{G=f}Plastica
-STR_004D_FIZZY_DRINK :{G=f}Bevanda frizzante
+STR_004D_FIZZY_DRINK :{G=f}Bevande frizzanti
STR_QUANTITY_NOTHING :
STR_QUANTITY_PASSENGERS :{COMMA} passegger{P o i}
STR_QUANTITY_COAL :{WEIGHT} di carbone
@@ -1048,6 +1050,7 @@
STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL :{LTBLUE}Nuovo pathfinding globale (NPF, sovrascrive NTP): {ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}Moltiplicatore di peso per simulare treni merci pesanti: {ORANGE}{STRING}
STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}Consenti fermate passanti sulle strade delle città : {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}Consenti la costruzione di stazioni adiacenti: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SMALL_AIRPORTS :{LTBLUE}Consenti sempre la costruzione di piccoli aeroporti: {ORANGE}{STRING}
@@ -1088,6 +1091,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Manutieni automaticamente gli elicotteri presso gli eliporti: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Apri strumenti terreno assieme a quelli di costruzione: {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}Inverti direzione di scorrimento della mappa: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}Scorrimento morbido delle visuali: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}Mostra un tooltip di misura durante la costruzione: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Mostra le livree della società : {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :Nessuna
@@ -1588,6 +1592,13 @@
STR_RAILROAD_TRACK_WITH_PRESIGNALS :Ferrovia con pre-segnali
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Ferrovia con segnali di uscita
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Ferrovia con segnali combinati
+STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS :Ferrovia con segnali normali e pre-segnali
+STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrovia con segnali normali e di uscita
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS :Ferrovia con segnali normali e combinati
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS :Ferrovia con pre-segnali e segnali di uscita
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS :Ferrovia con pre-segnali e segnali combinati
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS :Ferrovia con segnali di uscita e combinati
+STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Bisogna rimuovere la stazione prima
@@ -1595,22 +1606,39 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Bisogna rimuovere la strada prima
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Lavori stradali in corso
STR_1802_ROAD_CONSTRUCTION :{WHITE}Costruzione strade
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Costruzione tranvie
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Seleziona ponte stradale
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}...le strade a senso unico non possono avere raccordi
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Impossibile costruire la strada qui...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Impossibile costruire la tranvia qui...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Impossibile rimuovere la strada da qui...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Impossibile rimuovere la tranvia da qui...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Orientamento deposito
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Orientamento deposito
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Impossibile costruire il deposito qui...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Impossibile costruire il deposito qui...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Impossibile costruire la stazione degli autobus qui...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Impossibile costruire la stazione dei camion qui...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Impossibile costruire la stazione tram passeggeri...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Impossibile costruire la stazione tram merci...
STR_180A_ROAD_CONSTRUCTION :Costruzione strade
+STR_180A_TRAMWAY_CONSTRUCTION :Costruzione tranvie
STR_180B_BUILD_ROAD_SECTION :{BLACK}Costruisce una sezione di strada
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Costruisce una sezione di tranvia
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Costruisce un deposito automezzi (per costruire e manutenere i veicoli)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Costruisce un deposito tranviario (per costruire e manutenere i veicoli)
STR_180D_BUILD_BUS_STATION :{BLACK}Costruisce una stazione degli autobus
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Costruisce un'area di carico per camion
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Costruisce una stazione tram passeggeri
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Costruisce una stazione tram merci
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Costruisce un ponte stradale
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Costruisce un ponte tranviario
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Costruisce un tunnel stradale
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Costruisce un tunnel tranviario
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Seleziona fra costruzione/rimozione di strade
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Seleziona fra costruzione/rimozione di tranvie
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Seleziona l'orientamento del deposito automezzi
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Seleziona l'orientamento del deposito tranviario
STR_1814_ROAD :Strada
STR_1815_ROAD_WITH_STREETLIGHTS :Strada con lampioni
STR_1816_TREE_LINED_ROAD :Strada alberata
@@ -1618,6 +1646,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Passaggio a livello
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Impossibile rimuovere la stazione degli autobus...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Impossibile rimuovere l'area di carico per camion...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Impossibile rimuovere la stazione tram passeggeri...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Impossibile rimuovere la stazione tram merci...
##id 0x2000
STR_2000_TOWNS :{WHITE}CittÃ
@@ -1782,9 +1812,13 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} adesso accetta {STRING} e {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Orientamento stazione
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Orient. area carico
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Orient. stazione tram passeggeri
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Orient. stazione tram merci
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Bisogna demolire la stazione degli autobus prima
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Bisogna demolire l'area di carico per camion prima
-STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} stazion{P e i}
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Bisogna demolire la stazione tram passeggeri prima
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Bisogna demolire la stazione tram merci prima
+STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} stazion{P 2 e i}
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- Nessuna -
STR_304B_SITE_UNSUITABLE :{WHITE}...sito inadatto
@@ -1795,6 +1829,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Seleziona la lunghezza della stazione ferroviaria
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Seleziona l'orientamento della stazione degli autobus
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Seleziona l'orientamento dell'area di carico per camion
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Seleziona l'orientamento della stazione tram passeggeri
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Seleziona l'orientamento della stazione tram merci
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Centra la visuale principale sulla posizione della stazione
STR_3054_SHOW_STATION_RATINGS :{BLACK}Mostra la valutazione della stazione
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Cambia il nome della stazione
@@ -1904,16 +1940,16 @@
STR_482B_TRANSPORTED :{YELLOW}{CARGO}{BLACK} ({COMMA}% trasportato)
STR_482C_CENTER_THE_MAIN_VIEW_ON :{BLACK}Centra la visuale principale sulla posizione dell'industria
STR_482D_NEW_UNDER_CONSTRUCTION :{BLACK}{BIGFONT}Nuov{G o a} {STRING} in costruzione vicino a {TOWN}!
-STR_482E_NEW_BEING_PLANTED_NEAR :{BLACK}{BIGFONT}Un{G "" a} nuov{G o a} {STRING} è stat{G o a} piantat{G o a} vicino a {TOWN}!
+STR_482E_NEW_BEING_PLANTED_NEAR :{BLACK}{BIGFONT}Nuov{G o a} {STRING} piantat{G o a} vicino a {TOWN}!
STR_482F_COST :{BLACK}Costo: {YELLOW}{CURRENCY}
STR_4830_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}Impossibile costruire questo tipo di industria qui...
STR_4831_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}...una foresta può essere piantata solo in una zona innevata
STR_4832_ANNOUNCES_IMMINENT_CLOSURE :{BLACK}{BIGFONT}{INDUSTRY} annuncia imminente chiusura!!
-STR_4833_SUPPLY_PROBLEMS_CAUSE_TO :{BLACK}{BIGFONT}Per problemi di rifornimenti {G il la} {INDUSTRY} annuncia imminente chiusura!
+STR_4833_SUPPLY_PROBLEMS_CAUSE_TO :{BLACK}{BIGFONT}Per problemi di rifornimenti {INDUSTRY} annuncia imminente chiusura!
STR_4834_LACK_OF_NEARBY_TREES_CAUSES :{BLACK}{BIGFONT}La mancanza di alberi vicini costringe la {INDUSTRY} ad imminente chiusura!
STR_4835_INCREASES_PRODUCTION :{BLACK}{BIGFONT}{INDUSTRY} incrementa la produzione!
-STR_4836_NEW_COAL_SEAM_FOUND_AT :{BLACK}{BIGFONT}Nuovo giacimento di carbone trovato alla {INDUSTRY}!{}Atteso un raddoppiamento della produzione!
-STR_4837_NEW_OIL_RESERVES_FOUND :{BLACK}{BIGFONT}Nuovo giacimento di petrolio trovato a {INDUSTRY}!{}Atteso un raddoppiamento della produzione!
+STR_4836_NEW_COAL_SEAM_FOUND_AT :{BLACK}{BIGFONT}Trovato nuovo giacimento di carbone alla {INDUSTRY}!{}Atteso un raddoppiamento della produzione!
+STR_4837_NEW_OIL_RESERVES_FOUND :{BLACK}{BIGFONT}Trovato nuovo giacimento di petrolio al {INDUSTRY}!{}Atteso un raddoppiamento della produzione!
STR_4838_IMPROVED_FARMING_METHODS :{BLACK}{BIGFONT}Grazie a metodi di coltivazione migliorati alla {INDUSTRY} è atteso un raddoppiamento della produzione!
STR_4839_PRODUCTION_DOWN_BY_50 :{BLACK}{BIGFONT}La produzione a {INDUSTRY} scende del 50%
STR_483A_INSECT_INFESTATION_CAUSES :{BLACK}{BIGFONT}Infestazione di insetti devasta la {INDUSTRY}!{}Produzione scesa del 50%
@@ -2027,7 +2063,7 @@
STR_6801_EASY :{BLACK}Facile
STR_6802_MEDIUM :{BLACK}Medio
STR_6803_HARD :{BLACK}Difficile
-STR_6804_CUSTOM :{BLACK}Personalizzata
+STR_6804_CUSTOM :{BLACK}Personalizzato
############ range for difficulty levels ends
############ range for difficulty settings starts
@@ -2245,6 +2281,8 @@
STR_LIVERY_HELICOPTER :Elicottero
STR_LIVERY_SMALL_PLANE :Aeroplano piccolo
STR_LIVERY_LARGE_PLANE :Aeroplano grande
+STR_LIVERY_PASSENGER_TRAM :Tram passeggeri
+STR_LIVERY_FREIGHT_TRAM :Tram merci
STR_LIVERY_GENERAL_TIP :{BLACK}Mostra gli schemi di colorazione generali
STR_LIVERY_TRAIN_TIP :{BLACK}Mostra gli schemi di colorazione dei treni
@@ -2561,7 +2599,7 @@
STR_8816 :{BLACK}-
STR_8819_TRAIN_TOO_LONG :{WHITE}Treno troppo lungo
STR_881A_TRAINS_CAN_ONLY_BE_ALTERED :{WHITE}Un treno può essere modificato solo quando è fermo in un deposito
-STR_881B_TRAINS :{WHITE}{COMPANY} - {COMMA} tren{P o i}
+STR_881B_TRAINS :{WHITE}{COMPANY} - {COMMA} tren{P 2 o i}
STR_881C_NEW_RAIL_VEHICLES :{WHITE}Nuovi veicoli ferroviari
STR_NEW_ELRAIL_VEHICLES :{WHITE}Nuovi veicoli ferroviari elettrici
@@ -2673,7 +2711,7 @@
##id 0x9000
STR_9000_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Automezzo di mezzo
-STR_9001_ROAD_VEHICLES :{WHITE}{COMPANY} - {COMMA} automezz{P o i}
+STR_9001_ROAD_VEHICLES :{WHITE}{COMPANY} - {COMMA} automezz{P 2 o i}
STR_9002 :{WHITE}{VEHICLE}
STR_9003_ROAD_VEHICLE_DEPOT :{WHITE}Deposito automezzi di {TOWN}
STR_9004_NEW_VEHICLES :{BLACK}Nuovi veicoli
@@ -2717,7 +2755,9 @@
STR_902D_CAN_T_NAME_ROAD_VEHICLE :{WHITE}Impossibile rinominare l'automezzo...
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Rinomina l'automezzo
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}I cittadini festeggiano . . .{}Il primo autobus arriva a {STATION}!
-STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}I cittadini festeggiano. . .{}Il primo camion arriva a {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}I cittadini festeggiano . . .{}Il primo camion arriva a {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}I cittadini festeggiano . . .{}Il primo tram passeggeri arriva a {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}I cittadini festeggiano . . .{}Il primo tram merci arriva a {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Incidente stradale!{}Il conducente muore nell'incendio seguito alla collisione con un treno
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Incidente stradale!{}In {COMMA} muoiono nell'incendio seguito alla collisione con un treno
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Impossibile far girare il veicolo...
@@ -2741,7 +2781,7 @@
STR_9802_CAN_T_BUILD_DOCK_HERE :{WHITE}Impossibile costruire il molo qui...
STR_9803_SHIP_DEPOT :{WHITE}Deposito navale di {TOWN}
STR_9804_NEW_SHIPS :{BLACK}Nuove navi
-STR_9805_SHIPS :{WHITE}{COMPANY} - {COMMA} nav{P e i}
+STR_9805_SHIPS :{WHITE}{COMPANY} - {COMMA} nav{P 2 e i}
STR_9808_NEW_SHIPS :{WHITE}Nuove navi
STR_9809_BUILD_SHIP :{BLACK}Costruisci nave
STR_CLONE_SHIP :{BLACK}Clona nave
@@ -2817,7 +2857,7 @@
STR_A005_NEW_AIRCRAFT :{WHITE}Nuovo aeromobile
STR_A006_BUILD_AIRCRAFT :{BLACK}Costruisci aeromobile
STR_A008_CAN_T_BUILD_AIRCRAFT :{WHITE}Impossibile costruire l'aeromobile...
-STR_A009_AIRCRAFT :{WHITE}{COMPANY} - {COMMA} aeromobil{P e i}
+STR_A009_AIRCRAFT :{WHITE}{COMPANY} - {COMMA} aeromobil{P 2 e i}
STR_A00A :{WHITE}{VEHICLE}
STR_A00B_ORDERS :{WHITE}{VEHICLE} (Ordini)
STR_A00C_DETAILS :{WHITE}{VEHICLE} (Dettagli)
@@ -2987,10 +3027,10 @@
STR_PLANE :{BLACK}{PLANE}
STR_SHIP :{BLACK}{SHIP}
-STR_SCHEDULED_TRAINS :{WHITE}{STATION} - {COMMA} tren{P o i}
-STR_SCHEDULED_ROAD_VEHICLES :{WHITE}{STATION} - {COMMA} automezz{P o i}
-STR_SCHEDULED_AIRCRAFT :{WHITE}{STATION} - {COMMA} aeromobil{P e i}
-STR_SCHEDULED_SHIPS :{WHITE}{STATION} - {COMMA} nav{P e i}
+STR_SCHEDULED_TRAINS :{WHITE}{STATION} - {COMMA} tren{P 2 o i}
+STR_SCHEDULED_ROAD_VEHICLES :{WHITE}{STATION} - {COMMA} automezz{P 2 o i}
+STR_SCHEDULED_AIRCRAFT :{WHITE}{STATION} - {COMMA} aeromobil{P 2 e i}
+STR_SCHEDULED_SHIPS :{WHITE}{STATION} - {COMMA} nav{P 2 e i}
STR_SCHEDULED_TRAINS_TIP :{BLACK}Mostra tutti i treni che hanno questa stazione pianificata
STR_SCHEDULED_ROAD_VEHICLES_TIP :{BLACK}Mostra tutti gli automezzi che hanno questa stazione pianificata
@@ -3002,6 +3042,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Stai per vendere tutti i veicoli nel deposito. Sei sicuro?
+STR_DEPOT_WRONG_DEPOT_TYPE :Tipo di deposito errato
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Vende tutti i treni nel deposito
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Vende tutti gli automezzi nel deposito
@@ -3018,10 +3059,10 @@
STR_DEPOT_AUTOREPLACE_SHIP_TIP :{BLACK}Rimpiazza automaticamente tutte le navi nel deposito
STR_DEPOT_AUTOREPLACE_AIRCRAFT_TIP :{BLACK}Rimpiazza automaticamente tutti gli aeromobili nell'hangar
-STR_VEHICLE_LIST_TRAIN_DEPOT :{BLACK}{STRING} - {COMMA} tren{P o i}
-STR_VEHICLE_LIST_ROADVEH_DEPOT :{BLACK}{STRING} - {COMMA} automezz{P o i}
-STR_VEHICLE_LIST_SHIP_DEPOT :{BLACK}{STRING} - {COMMA} nav{P e i}
-STR_VEHICLE_LIST_AIRCRAFT_DEPOT :{BLACK}{STRING} - {COMMA} aeromobil{P e i}
+STR_VEHICLE_LIST_TRAIN_DEPOT :{BLACK}{STRING} - {COMMA} tren{P 2 o i}
+STR_VEHICLE_LIST_ROADVEH_DEPOT :{BLACK}{STRING} - {COMMA} automezz{P 2 o i}
+STR_VEHICLE_LIST_SHIP_DEPOT :{BLACK}{STRING} - {COMMA} nav{P 2 e i}
+STR_VEHICLE_LIST_AIRCRAFT_DEPOT :{BLACK}{STRING} - {COMMA} aeromobil{P 2 e i}
STR_REPLACE_VEHICLES_WHITE :{WHITE}Rimpiazza {STRING}
STR_REPLACE_VEHICLES_START :{BLACK}Inizia rimpiazzamento
@@ -3101,7 +3142,7 @@
STR_WORLD_GENERATION_CAPTION :{WHITE}Generazione mondo
STR_RANDOM_SEED :{BLACK}Seme casuale:
STR_RANDOM_SEED_HELP :{BLACK}Fare clic per introdurre un seme casuale
-STR_LAND_GENERATOR :{BLACK}Generatore terreno:
+STR_LAND_GENERATOR :{BLACK}Generatore:
STR_TREE_PLACER :{BLACK}Algoritmo alberi:
STR_HEIGHTMAP_ROTATION :{BLACK}Rotazione heightmap:
STR_TERRAIN_TYPE :{BLACK}Tipo di terreno:
--- a/src/lang/japanese.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/japanese.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1609,10 +1609,15 @@
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}(ãƒã‚¹ã€ãƒˆãƒ©ãƒƒã‚¯ã®å»ºè¨ã€æ•´å‚™ã®ãŸã‚ã®ï¼‰è»Šåº«ã‚’建è¨ã—ã¾ã™
STR_180D_BUILD_BUS_STATION :{BLACK}ãƒã‚¹åœã‚’建è¨ã—ã¾ã™
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}è·å½¹æ‰€ã‚’建è¨ã—ã¾ã™
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}乗客用路é¢é›»è»Šé§…を建è¨
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}貨物用路é¢é›»è»Šé§…を建è¨
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}é“è·¯ã®ç«¯ã‚’建è¨ã—ã¾ã™
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}è·¯é¢é›»è»Šç”¨æ©‹ã‚’建è¨
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}é“è·¯ã®ãƒˆãƒ³ãƒãƒ«ã‚’建è¨ã—ã¾ã™
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}è·¯é¢é›»è»Šç”¨ãƒˆãƒ³ãƒãƒ«ã‚’建è¨
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}é“è·¯ã®å»ºè¨ï¼ç ´å£Šã‚’切り替ãˆã¾ã™
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}車庫ã®é…ç½®ã®é¸æŠž
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}è·¯é¢é›»è»Šåº«ã®é…置をé¸æŠž
STR_1814_ROAD :é“è·¯
STR_1815_ROAD_WITH_STREETLIGHTS :街路照明ã®ã‚ã‚‹é“è·¯
STR_1816_TREE_LINED_ROAD :並木é“
@@ -1620,6 +1625,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :è¸åˆ‡
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}ãƒã‚¹åœãŒç ´å£Šã§ãã¾ã›ã‚“...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}è·å½¹æ‰€ãŒç ´å£Šã§ãã¾ã›ã‚“...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}乗客用路é¢é›»è»Šé§…ãŒç ´å£Šã§ãã¾ã›ã‚“...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}貨物用路é¢é›»è»Šé§…ãŒç ´å£Šã§ãã¾ã›ã‚“...
##id 0x2000
STR_2000_TOWNS :{WHITE}市町æ‘
@@ -1784,8 +1791,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION}ã¯ä»Šå¾Œ{STRING}ã¨{STRING}ãŒå—入れã¾ã™
STR_3042_BUS_STATION_ORIENTATION :{WHITE}ãƒã‚¹åœã®é…ç½®
STR_3043_TRUCK_STATION_ORIENT :{WHITE}è·å½¹æ‰€ã®é…ç½®
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}乗客用路é¢é›»è»Šé§…ã®é…ç½®
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}貨物用路é¢é›»è»Šé§…ã®é…ç½®
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}å…ˆã«ãƒã‚¹åœã‚’ç ´å£Šã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}å…ˆã«ãƒã‚¹åœã‚’ç ´å£Šã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}å…ˆã«ä¹—客用路é¢é›»è»Šé§…ã‚’ç ´å£Šã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}å…ˆã«è²¨ç‰©ç”¨è·¯é¢é›»è»Šé§…ã‚’ç ´å£Šã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA}è»’ã®é§…
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- ãªã— -
@@ -1797,6 +1808,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}駅ã®ãƒ›ãƒ¼ãƒ ã®é•·ã•ã‚’é¸æŠžã—ã¾ã™
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}ãƒã‚¹åœã®é…置をé¸æŠžã—ã¾ã™
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}è·å½¹æ‰€ã®é…置をé¸æŠžã—ã¾ã™
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}乗客用路é¢é›»è»Šé§…ã®é…置をé¸æŠž
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}貨物用路é¢é›»è»Šé§…ã®é…置をé¸æŠž
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}主ã®ç”»é¢ã‚’駅ã®å ´æ‰€ã«ç§»å‹•ã—ã¾ã™
STR_3054_SHOW_STATION_RATINGS :{BLACK}駅ã®è©•ä¾¡ã‚’表示ã—ã¾ã™
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}駅åを変更ã—ã¾ã™
@@ -2247,6 +2260,8 @@
STR_LIVERY_HELICOPTER :ヘリコプター
STR_LIVERY_SMALL_PLANE :å°åž‹é£›è¡Œæ©Ÿ
STR_LIVERY_LARGE_PLANE :大型飛行機
+STR_LIVERY_PASSENGER_TRAM :乗客用路é¢é›»è»Š
+STR_LIVERY_FREIGHT_TRAM :貨物用路é¢é›»è»Š
STR_LIVERY_GENERAL_TIP :{BLACK}一般ã®ã‚«ãƒ©ãƒ¼ã‚¹ã‚ームを表示ã—ã¾ã™
STR_LIVERY_TRAIN_TIP :{BLACK}列車ã®ã‚«ãƒ©ãƒ¼ã‚¹ã‚ームを表示ã—ã¾ã™
@@ -2720,6 +2735,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}é“路車両をå付ã‘ã‚‹
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}町民ã®ç¥è³€ï¼{}åˆãƒã‚¹ãŒ{STATION}ãƒã‚¹åœã«åˆ°ç€ï¼
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}町民ã®ç¥è³€ï¼{}åˆãƒˆãƒ©ãƒƒã‚¯ãŒ{STATION}è·å½¹æ‰€ã«åˆ°ç€ï¼
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}町民ã®ç¥è³€{}åˆä¹—客用路é¢é›»è»ŠãŒ{STATION}駅ã«åˆ°ç€ï¼
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}町民ã®ç¥è³€{}åˆè²¨ç‰©ç”¨è·¯é¢é›»è»ŠãŒ{STATION}駅ã«åˆ°ç€ï¼
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}交通事故ï¼{}列車ã«è¡çªã€é‹è»¢è€…ãŒæ»äº¡
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}交通事故ï¼{}列車ã«è¡çªã€{COMMA}人ãŒæ»äº¡
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}車両ãŒé€†è»¢ã•ã›ã‚‰ã‚Œã¾ã›ã‚“...
@@ -3004,6 +3021,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}車庫ï¼æ ¼ç´åº«ï¼é€ 船所内ã®ã™ã¹ã¦ã®è»Šä¸¡ã‚’販売ã—ã¾ã™ã€‚続ã‘ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ
+STR_DEPOT_WRONG_DEPOT_TYPE :電車庫ã®ç¨®é¡žãŒä¸€è‡´ã—ã¦ã„ã¾ã›ã‚“
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}電車庫内ã®ã™ã¹ã¦ã®åˆ—車を販売ã—ã¾ã™
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}車庫内ã®ã™ã¹ã¦ã®é“路車両を販売ã—ã¾ã™
--- a/src/lang/korean.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/korean.txt Fri Jun 01 20:54:09 2007 +0000
@@ -4,6 +4,8 @@
##plural 1
##gender a b
+#
+
##id 0x0000
STR_NULL :
STR_0001_OFF_EDGE_OF_MAP :{WHITE}맵 가장ìžë¦¬ì—ì„œ 너무 멉니다!
@@ -1047,6 +1049,7 @@
STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL :{LTBLUE}í–¥ìƒëœ 글로벌 경로íƒìƒ‰ (NPF, NTP ìš°ì„ ) : {ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}무거운 열차를 운행하기 위해 í™”ë¬¼ì— ë¬´ê²Œë¥¼ 가함 : {ORANGE}{STRING}
STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}마ì„ì´ ì†Œìœ ì¤‘ì¸ ë„로를 통과하는 버스 ì •ë¥˜ìž¥ 건설 허용: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}ì •ê±°ìž¥ ê·¼ì²˜ì— ê±´ë¬¼ 짓기 허용: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SMALL_AIRPORTS :{LTBLUE}소형 ê³µí•ì˜ ê±´ì„¤ì„ í—ˆìš© : {ORANGE}{STRING}
@@ -1087,6 +1090,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}헬리콥터를 발착장ì—ì„œ ìžë™ìœ¼ë¡œ ì ê²€ : {ORANGE}{STRING}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}ì² ë„/ë„ë¡œ/í•ë§Œ/ê³µí• íˆ´ë°”ì— ì§€í˜• ì •ë³´ ë§í¬ : {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}스í¬ë¡¤ ë°©í–¥ 뒤집기 : {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}부드러운 ë·°í¬ì¸íŠ¸ 스í¬ë¡¤: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}다양한 건설ë„구를 ì‚¬ìš©ì‹œì— ê±°ë¦¬ì¸¡ì • íˆ´íŒ í‘œì‹œ : {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}회사 ì¡°í•©ì› í‘œì‹œ : {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :ì—†ìŒ
@@ -1587,6 +1591,13 @@
STR_RAILROAD_TRACK_WITH_PRESIGNALS :PRE ì‹ í˜¸ë“±ì´ ì„¤ì¹˜ëœ ì² ë„
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :출구 ì‹ í˜¸ë“±ì´ ì„¤ì¹˜ëœ ì² ë„
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :ê²°í•© ì‹ í˜¸ë“±ì´ ì„¤ì¹˜ëœ ì² ë„
+STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS :ì¼ë°˜ ì‹ í˜¸ë“±ê³¼ PREì‹ í˜¸ë“±ì´ ì„¤ì¹˜ëœ ì² ë„
+STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS :ì¼ë°˜ ì‹ í˜¸ë“±ê³¼ ì¶œêµ¬ì‹ í˜¸ë“±ì´ ì„¤ì¹˜ëœ ì² ë„
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS :ì¼ë°˜ ì‹ í˜¸ë“±ê³¼ ê²°í•©ì‹ í˜¸ë“±ì´ ì„¤ì¹˜ëœ ì² ë„
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS :PRE ì‹ í˜¸ë“±ê³¼ ì¶œêµ¬ì‹ í˜¸ë“±ì´ ì„¤ì¹˜ëœ ì² ë„
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS :PRE ì‹ í˜¸ë“±ê³¼ ê²°í•©ì‹ í˜¸ë“±ì´ ì„¤ì¹˜ëœ ì² ë„
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS :출구 ì‹ í˜¸ë“±ê³¼ ê²°í•©ì‹ í˜¸ë“±ì´ ì„¤ì¹˜ëœ ì² ë„
+STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}ë¨¼ì € 기차 ì •ê±°ìž¥ì„ ì œê±°í•´ì•¼ 합니다
@@ -1594,22 +1605,39 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}ë„로를 ë¨¼ì € ì œê±°í•˜ì‹ì‹œì˜¤
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}ë„ë¡œ ìž‘ì—…ì´ ì§„í–‰ì¤‘ìž…ë‹ˆë‹¤
STR_1802_ROAD_CONSTRUCTION :{WHITE}ë„ë¡œ 건설
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}ì „ì°»ê¸¸ 건설
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}êµëŸ‰ì„ ì„ íƒí•˜ì‹ì‹œì˜¤
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... ì¼ë°©í†µí–‰ ë„로는 êµì°¨ë¡œë¥¼ 만들 수 없습니다
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}ë„로를 ê±´ì„¤í• ìˆ˜ 없습니다...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}ì—¬ê¸°ì— ì „ì°»ê¸¸ì„ ê±´ì„¤í• ìˆ˜ 없습니다...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}ë„로를 ì œê±°í• ìˆ˜ 없습니다...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}ì´ê³³ì˜ ì „ì°»ê¸¸ì„ ì œê±°í• ìˆ˜ 없습니다...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}ì°¨ê³ ë°©í–¥
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}차량기지 방향
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}ì—¬ê¸°ì— ì°¨ê³ ë¥¼ ì§€ì„ ìˆ˜ 없습니다...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}ì—¬ê¸°ì— ì°¨ëŸ‰ê¸°ì§€ë¥¼ ê±´ì„¤í• ìˆ˜ 없습니다...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}버스 ì •ë¥˜ìž¥ì„ ì§€ì„ ìˆ˜ 없습니다...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}íŠ¸ëŸ ì í•˜ìž¥ì„ ì§€ì„ ìˆ˜ 없습니다...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}ì—¬ê¸°ì— ìŠ¹ê° ì „ì°¨ ì •ê±°ìž¥ì„ ê±´ì„¤í• ìˆ˜ 없습니다...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}ì—¬ê¸°ì— í™”ë¬¼ ì „ì°¨ ì •ê±°ìž¥ì„ ê±´ì„¤í• ìˆ˜ 없습니다...
STR_180A_ROAD_CONSTRUCTION :ë„ë¡œ 건설
+STR_180A_TRAMWAY_CONSTRUCTION :ì „ì°»ê¸¸ 건설
STR_180B_BUILD_ROAD_SECTION :{BLACK}ë„ë¡œ 섹션 건설
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}ì „ì°»ê¸¸ 섹션 건설
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}ì°¨ê³ ê±´ì„¤ (ì°¨ëŸ‰ì˜ ì œìž‘/ì 검용)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}차량기지 건설 (차량 건설/ì 검용)
STR_180D_BUILD_BUS_STATION :{BLACK}버스 ì •ë¥˜ìž¥ 건설
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}íŠ¸ëŸ ì 하장 건설
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}ìŠ¹ê° ì „ì°¨ ì •ê±°ìž¥ 건설
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}화물 ì „ì°¨ ì „ê±°ìž¥ 건설
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}êµëŸ‰ 건설
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}ì² êµ ê±´ì„¤
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}í„°ë„ ê±´ì„¤
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}í„°ë„ ê±´ì„¤
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}ë„ë¡œ ì œê±°íˆ´ 켜기/ë„기
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}ì „ì°»ê¸¸/ì‹ í˜¸ë“± ì œê±°íˆ´ 켜기/ë„기
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}ì°¨ê³ ì˜ ë°©í–¥ì„ ì„ íƒí•˜ì‹ì‹œì˜¤
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}ì°¨ëŸ‰ê¸°ì§€ì˜ ë°©í–¥ì„ ì„ íƒí•˜ì„¸ìš”
STR_1814_ROAD :ë„ë¡œ
STR_1815_ROAD_WITH_STREETLIGHTS :ì‹ í˜¸ë“±ì´ ìžˆëŠ” ë„ë¡œ
STR_1816_TREE_LINED_ROAD :가로수가 있는 ë„ë¡œ
@@ -1617,6 +1645,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :ì² ë„ ê±´ë„목
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}ë²„ìŠ¤ì •ë¥˜ìž¥ì„ ì œê±°í• ìˆ˜ 없습니다...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}íŠ¸ëŸ í„°ë¯¸ë„ì„ ì œê±°í• ìˆ˜ 없습니다...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}ìŠ¹ê° ì „ì°¨ ì •ê±°ìž¥ì„ ì œê±°í• ìˆ˜ 없습니다...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}화물 ì „ì°¨ ì •ê±°ìž¥ì„ ì œê±°í• ìˆ˜ 없습니다...
##id 0x2000
STR_2000_TOWNS :{WHITE}ë„ì‹œ
@@ -1781,8 +1811,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION}ì—ì„œ {STRING}/{STRING}ì„/를 받습니다.
STR_3042_BUS_STATION_ORIENTATION :{WHITE}버스 ì •ë¥˜ìž¥ ë°©í–¥
STR_3043_TRUCK_STATION_ORIENT :{WHITE}íŠ¸ëŸ ì 하장 ë°©í–¥
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}ìŠ¹ê° ì „ì°¨ ì •ê±°ìž¥ ë°©í–¥
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}화물 ì „ì°¨ ì •ê±°ìž¥ ë°©í–¥
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}버스 ì •ë¥˜ìž¥ì„ ë¨¼ì € ì œê±°í•˜ì‹ì‹œì˜¤.
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}íŠ¸ëŸ ì í•˜ìž¥ì„ ë¨¼ì € ì œê±°í•˜ì‹ì‹œì˜¤.
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}ìŠ¹ê° ì „ì°¨ ì •ê±°ìž¥ì„ ë¨¼ì € ì œê±°í•˜ì‹ì‹œì˜¤.
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}화물 ì „ì°¨ ì •ê±°ìž¥ì„ ë¨¼ì € ì œê±°í•˜ì‹ì‹œì˜¤.
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA}ê°œ ì—사
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- ì—†ìŒ -
@@ -1794,6 +1828,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}기차ì—ì˜ ê¸¸ì´ë¥¼ ì„ íƒí•©ë‹ˆë‹¤.
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}버스 ì •ë¥˜ìž¥ì˜ ë°©í–¥ì„ ì„ íƒí•©ë‹ˆë‹¤.
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}íŠ¸ëŸ ì í•˜ìž¥ì˜ ë°©í–¥ì„ ì„ íƒí•©ë‹ˆë‹¤.
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}ìŠ¹ê° ì „ì°¨ ì •ê±°ìž¥ì˜ ë°©í–¥ì„ ì„ íƒí•˜ì„¸ìš”.
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}화물 ì „ì°¨ ì •ê±°ìž¥ì˜ ë°©í–¥ì„ ì„ íƒí•˜ì„¸ìš”.
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}ì´ ì—ì´ ìžˆëŠ” 곳으로 ì´ë™í•©ë‹ˆë‹¤.
STR_3054_SHOW_STATION_RATINGS :{BLACK}ì—ì˜ ë“±ê¸‰ 표시
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}ì— ì´ë¦„ 변경
@@ -2244,6 +2280,8 @@
STR_LIVERY_HELICOPTER :헬리콥터
STR_LIVERY_SMALL_PLANE :소형 í•ê³µê¸°
STR_LIVERY_LARGE_PLANE :대형 í•ê³µê¸°
+STR_LIVERY_PASSENGER_TRAM :ìŠ¹ê° ì „ì°¨
+STR_LIVERY_FREIGHT_TRAM :화물 ì „ì°¨
STR_LIVERY_GENERAL_TIP :{BLACK}ì¼ë°˜ ìƒ‰ìƒ ì„ íƒ
STR_LIVERY_TRAIN_TIP :{BLACK}ì—´ì°¨ ìƒ‰ìƒ ì„ íƒ
@@ -2717,6 +2755,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}ìžë™ì°¨ ì´ë¦„ ì§€ì •
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}첫 버스가 {STATION} ì •ë¥˜ìž¥ì— ë„착했습니다!{}ì‹œë¯¼ë“¤ì´ í™˜í˜¸í•˜ê³ ìžˆìŠµë‹ˆë‹¤!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}첫 트ëŸì´ {STATION} ì •ë¥˜ìž¥ì— ë„착했습니다!{}ì‹œë¯¼ë“¤ì´ í™˜í˜¸í•˜ê³ ìžˆìŠµë‹ˆë‹¤!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}{STATION}ì— ì²˜ìŒìœ¼ë¡œ ìŠ¹ê° ì „ì°¨ê°€ ë„착했습니다!{}ì‚¬ëžŒë“¤ì´ í™˜í˜¸ì„±ì„ ì§€ë¦…ë‹ˆë‹¤!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}{STATION}ì— ì²˜ìŒìœ¼ë¡œ 화물 ì „ì°¨ê°€ ë„착했습니다!{}ì‚¬ëžŒë“¤ì´ í™˜í˜¸ì„±ì„ ì§€ë¦…ë‹ˆë‹¤!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}ìžë™ì°¨ 충ëŒ!{}ì—´ì°¨ì™€ì˜ ì¶©ëŒë¡œ ìš´ì „ì‚¬ê°€ 사ë§í–ˆìŠµë‹ˆë‹¤!
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}ìžë™ì°¨ 충ëŒ!{}ì—´ì°¨ì™€ì˜ ì¶©ëŒë¡œ {COMMA}ëª…ì´ ì‚¬ë§í–ˆìŠµë‹ˆë‹¤!
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}ìžë™ì°¨ë¥¼ 회차시킬 수 없습니다...
@@ -3001,6 +3041,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}ì´ ì•ˆì— ìžˆëŠ” ëª¨ë“ ì°¨ëŸ‰ì„ íŒë§¤í•˜ë ¤ê³ 합니다. ì •ë§ íŒë§¤í•˜ì‹œê² 습니까?
+STR_DEPOT_WRONG_DEPOT_TYPE :ìž˜ëª»ëœ ì°¨ëŸ‰ê¸°ì§€ 종류
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}ì´ ì°¨ëŸ‰ê¸°ì§€ì— ìžˆëŠ” ëª¨ë“ ì—´ì°¨ë¥¼ íŒë‹ˆë‹¤.
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}ì´ ì°¨ëŸ‰ê¸°ì§€ì— ìžˆëŠ” ëª¨ë“ ìžë™ì°¨ë¥¼ íŒë‹ˆë‹¤.
@@ -3203,6 +3244,9 @@
STR_GROUP_ADD_SHARED_VEHICLE :ëª¨ë“ ê³µìœ ëœ ì°¨ëŸ‰
STR_GROUP_REMOVE_ALL_VEHICLES :ëª¨ë“ ì°¨ëŸ‰ ì œê±°
+STR_GROUP_TRAINS_CAPTION :{WHITE}{GROUP} - {COMMA} 기차
+STR_GROUP_ROADVEH_CAPTION :{WHITE}{GROUP} - {COMMA} ìžë™ì°¨
+STR_GROUP_SHIPS_CAPTION :{WHITE}{GROUP} - {COMMA} ì„ ë°•
STR_GROUP_AIRCRAFTS_CAPTION :{WHITE}{GROUP} - {COMMA} í•ê³µê¸°
STR_GROUP_RENAME_CAPTION :{BLACK}그룹 ì´ë¦„ 바꾸기
STR_GROUP_REPLACE_CAPTION :{WHITE}"{GROUP}"ì˜ ì°¨ëŸ‰ êµì²´
--- a/src/lang/norwegian_bokmal.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/norwegian_bokmal.txt Fri Jun 01 20:54:09 2007 +0000
@@ -3,6 +3,8 @@
##isocode nb_NO
##plural 0
+#
+
##id 0x0000
STR_NULL :
STR_0001_OFF_EDGE_OF_MAP :{WHITE}Utenfor kartet
@@ -1046,6 +1048,7 @@
STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL :{LTBLUE}Ny global rutesøking (NGR, overstyrer NTK): {ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}Vektmultiplikator for frakt til å simulere tunge tog: {ORANGE}{STRING}
STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}Tillat gjennomkjøring av stoppesteder på veier som er eid av byene: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}Tillat bygging av nærliggende stasjoner: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SMALL_AIRPORTS :{LTBLUE}Alltid tillat bygging av små flyplasser: {ORANGE}{STRING}
@@ -1097,6 +1100,8 @@
STR_CONFIG_PATCHES_SCROLLWHEEL_SCROLL :Rull kartet
STR_CONFIG_PATCHES_SCROLLWHEEL_OFF :Av
STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Rullehjulets hastighet på kartet: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME :{LTBLUE}Pause automatisk ved start av nytt spill: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS :{LTBLUE}Bruk den avanserte kjøretøyslisten: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_TRAINS :{LTBLUE}Maks antall tog per spiller: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_ROADVEH :{LTBLUE}Maks antall kjøretøy per spiller: {ORANGE}{STRING}
@@ -1130,6 +1135,13 @@
STR_CONFIG_PATCHES_ALLOW_SHARES :{LTBLUE}Tillat kjøping av aksjer i andre selskaper
STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY :{LTBLUE}Ved opptrekking plasser signal hver: {ORANGE}{STRING} rute(r)
STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}Bygg signalsystem med mast automatisk før: {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_TOWN_LAYOUT :{LTBLUE}Velg byvei-layout: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TOWN_LAYOUT_NO_ROADS :ingen flere veier
+STR_CONFIG_PATCHES_TOWN_LAYOUT_DEFAULT :default
+STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS :bedre veier
+STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID :2x2 rutenett
+
STR_CONFIG_PATCHES_TOOLBAR_POS :{LTBLUE}Plassering av hovedverktøylinje: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT :Venstre
STR_CONFIG_PATCHES_TOOLBAR_POS_CENTER :Midtstilt
@@ -2002,6 +2014,7 @@
STR_SV_STNAME_HELIPORT :{STRING} helikopterstasjon
STR_SV_STNAME_FOREST :{STRING}skogen
+
############ end of savegame specific region!
##id 0x6800
@@ -3174,3 +3187,11 @@
STR_TRANSPARENT_BUILDINGS_DESC :{BLACK}Skru på gjennomsiktighet for stasjoner, depoter, lokalstasjoner og skinner
STR_TRANSPARENT_BRIDGES_DESC :{BLACK}Skru på gjennomsiktighet for broer
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Skru på gjennomsiktighet for fyrtårn og antenner
+
+##### Mass Order
+
+
+
+
+
+########
--- a/src/lang/portuguese.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/portuguese.txt Fri Jun 01 20:54:09 2007 +0000
@@ -3,6 +3,8 @@
##isocode pt_PT
##plural 0
+#
+
##id 0x0000
STR_NULL :
STR_0001_OFF_EDGE_OF_MAP :{WHITE}Fora da borda do mapa
@@ -1046,6 +1048,7 @@
STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL :{LTBLUE}Nova procura de caminho global (NPF, substitui NTP): {ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}Multiplicador de peso para simular comboios pesados: {ORANGE}{STRING}
STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}Permitir estações de passagem em estradas das cidades: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}Permitir construção de estações adjacentes: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SMALL_AIRPORTS :{LTBLUE}Permitir sempre aeroportos pequenos: {ORANGE}{STRING}
@@ -1585,6 +1588,7 @@
STR_RAILROAD_TRACK_WITH_PRESIGNALS :Caminhos-de-ferro com pre-sinais
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Caminhos-de-ferro com sinais de saÃda
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Caminhos-de-ferro com sinais combinados
+STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}É preciso remover a estação primeiro
@@ -2012,6 +2016,8 @@
STR_SV_STNAME_HELIPORT :Heliporto de {STRING}
STR_SV_STNAME_FOREST :Floresta de {STRING}
+STR_SV_GROUP_NAME :{GROUP}
+
############ end of savegame specific region!
##id 0x6800
@@ -3187,3 +3193,13 @@
STR_TRANSPARENT_BUILDINGS_DESC :{BLACK}Comutar transparência para edificações como estações, depósitos, pontos-de-passagem e catenárias
STR_TRANSPARENT_BRIDGES_DESC :{BLACK}Comutar transparência para pontes
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Comutar transparência para estruturas como faróis-terrestres e antenas (talvez, no futuro, para embelezamentos)
+
+##### Mass Order
+STR_GROUP_TINY_NAME :{TINYFONT}{GROUP}
+STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
+
+
+
+
+
+########
--- a/src/lang/romanian.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/romanian.txt Fri Jun 01 20:54:09 2007 +0000
@@ -3,32 +3,34 @@
##isocode ro_RO
##plural 0
+#
+
##id 0x0000
STR_NULL :
-STR_0001_OFF_EDGE_OF_MAP :{WHITE}Depãseste limita hãrtii
-STR_0002_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}Prea aproape de marginea hãrtii
-STR_0003_NOT_ENOUGH_CASH_REQUIRES :{WHITE}Nu ai destui bani - îti trebuie {CURRENCY}
+STR_0001_OFF_EDGE_OF_MAP :{WHITE}Depăşeşte limita hărţii
+STR_0002_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}Prea aproape de marginea hărţii
+STR_0003_NOT_ENOUGH_CASH_REQUIRES :{WHITE}Nu ai destui bani - îţi trebuie {CURRENCY}
STR_0004 :{WHITE}{CURRENCY64}
STR_0005 :{RED}{CURRENCY64}
STR_EMPTY :
-STR_0007_FLAT_LAND_REQUIRED :{WHITE}Necesitã teren plat
-STR_0008_WAITING :{BLACK}ÃŽn asteptare: {WHITE}{STRING}
+STR_0007_FLAT_LAND_REQUIRED :{WHITE}Necesită teren plat
+STR_0008_WAITING :{BLACK}ÃŽn aÅŸteptare: {WHITE}{STRING}
STR_0009 :{WHITE}{CARGO}
STR_000A_EN_ROUTE_FROM :{WHITE}{CARGO}{YELLOW} (plecat de la
STR_000B :{YELLOW}{STATION})
-STR_000C_ACCEPTS :{BLACK}Acceptã: {WHITE}
-STR_000D_ACCEPTS :{BLACK}Acceptã: {GOLD}
+STR_000C_ACCEPTS :{BLACK}Acceptă: {WHITE}
+STR_000D_ACCEPTS :{BLACK}Acceptă: {GOLD}
STR_000E :
-STR_000F_PASSENGERS :cãlãtori
-STR_0010_COAL :cãrbuni
-STR_0011_MAIL :colete postale
+STR_000F_PASSENGERS :călători
+STR_0010_COAL :cărbuni
+STR_0011_MAIL :colete poÅŸtale
STR_0012_OIL :petrol
STR_0013_LIVESTOCK :animale
STR_0014_GOODS :bunuri
STR_0015_GRAIN :cereale
STR_0016_WOOD :lemne
STR_0017_IRON_ORE :minereu de fier
-STR_0018_STEEL :otel
+STR_0018_STEEL :oţel
STR_0019_VALUABLES :valori
STR_001A_COPPER_ORE :minereu de cupru
STR_001B_MAIZE :porumb
@@ -37,30 +39,30 @@
STR_001E_FOOD :alimente
STR_001F_PAPER :hârtie
STR_0020_GOLD :aur
-STR_0021_WATER :apã
+STR_0021_WATER :apă
STR_0022_WHEAT :grâu
STR_0023_RUBBER :cauciuc
-STR_0024_SUGAR :zahãr
-STR_0025_TOYS :jucãrii
+STR_0024_SUGAR :zahăr
+STR_0025_TOYS :jucării
STR_0026_CANDY :bomboane
STR_0027_COLA :cola
-STR_0028_COTTON_CANDY :vatã de zahãr
-STR_0029_BUBBLES :balonase
+STR_0028_COTTON_CANDY :vată de zahăr
+STR_0029_BUBBLES :balonaÅŸe
STR_002A_TOFFEE :caramel
STR_002B_BATTERIES :baterii
STR_002C_PLASTIC :plastic
STR_002D_FIZZY_DRINKS :sucuri
STR_002E :
-STR_002F_PASSENGER :cãlãtori
-STR_0030_COAL :cãrbuni
-STR_0031_MAIL :colete postale
+STR_002F_PASSENGER :călător
+STR_0030_COAL :cărbuni
+STR_0031_MAIL :colete poÅŸtale
STR_0032_OIL :petrol
STR_0033_LIVESTOCK :animale
STR_0034_GOODS :bunuri
STR_0035_GRAIN :cereale
STR_0036_WOOD :lemne
STR_0037_IRON_ORE :minereu de fier
-STR_0038_STEEL :otel
+STR_0038_STEEL :oţel
STR_0039_VALUABLES :valori
STR_003A_COPPER_ORE :minereu de cupru
STR_003B_MAIZE :porumb
@@ -69,15 +71,15 @@
STR_003E_FOOD :alimente
STR_003F_PAPER :hârtie
STR_0040_GOLD :aur
-STR_0041_WATER :apã
+STR_0041_WATER :apă
STR_0042_WHEAT :grâu
STR_0043_RUBBER :cauciuc
-STR_0044_SUGAR :zahãr
-STR_0045_TOY :jucãrii
+STR_0044_SUGAR :zahăr
+STR_0045_TOY :jucării
STR_0046_CANDY :bomboane
STR_0047_COLA :cola
-STR_0048_COTTON_CANDY :vatã de zahãr
-STR_0049_BUBBLE :balonase
+STR_0048_COTTON_CANDY :vată de zahăr
+STR_0049_BUBBLE :balonaÅŸe
STR_004A_TOFFEE :caramel
STR_004B_BATTERY :baterii
STR_004C_PLASTIC :plastic
@@ -151,12 +153,12 @@
STR_00AE :{WHITE}{DATE_SHORT}
STR_00AF :{WHITE}{DATE_LONG}
STR_00B0_MAP :{WHITE}Harta - {STRING}
-STR_00B1_GAME_OPTIONS :{WHITE}Optiuni
+STR_00B1_GAME_OPTIONS :{WHITE}Opţiuni
STR_00B2_MESSAGE :{YELLOW}Mesaj
STR_00B3_MESSAGE_FROM :{YELLOW}Mesaj de la {STRING}
STR_POPUP_CAUTION_CAPTION :{WHITE}Atentie!
STR_00B4_CAN_T_DO_THIS :{WHITE}Nu pot face asta....
-STR_00B5_CAN_T_CLEAR_THIS_AREA :{WHITE}Nu pot curãta terenul....
+STR_00B5_CAN_T_CLEAR_THIS_AREA :{WHITE}Nu pot curăţa terenul....
STR_00B6_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, toate drepturile rezervate
STR_00B7_VERSION :{BLACK}OpenTTD versiunea {REV}
STR_00BA_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2007 Echipa OpenTTD
@@ -164,10 +166,10 @@
STR_00C5 :{BLACK}{CROSS}
STR_00C6 :{SILVER}{CROSS}
-STR_00C7_QUIT :{WHITE}Iesire din joc
+STR_00C7_QUIT :{WHITE}IeÅŸire din joc
STR_00C8_YES :{BLACK}Da
STR_00C9_NO :{BLACK}Nu
-STR_00CA_ARE_YOU_SURE_YOU_WANT_TO :{YELLOW}Esti sigur cã vrei sã abandonezi jocul curent si sã revii în {STRING}?
+STR_00CA_ARE_YOU_SURE_YOU_WANT_TO :{YELLOW}Eşti sigur că vrei să abandonezi jocul curent şi să revii în {STRING}?
STR_00CB_1 :{BLACK}1
STR_00CC_2 :{BLACK}2
STR_00CD_3 :{BLACK}3
@@ -200,7 +202,7 @@
STR_00E8_ROUTES :Rute
STR_00E9_VEGETATION :Vegetatie
STR_00EA_OWNERS :Proprietari
-STR_00EB_ROADS :{BLACK}{TINYFONT}Strãzi
+STR_00EB_ROADS :{BLACK}{TINYFONT}Drumuri
STR_00EC_RAILROADS :{BLACK}{TINYFONT}Cãi ferate
STR_00ED_STATIONS_AIRPORTS_DOCKS :{BLACK}{TINYFONT}Statii/Aeroporturi/Porturi
STR_00EE_BUILDINGS_INDUSTRIES :{BLACK}{TINYFONT}Clãdiri/Industrii
@@ -223,7 +225,7 @@
STR_00FF_FARM :{BLACK}{TINYFONT}Fermã
STR_0100_FACTORY :{BLACK}{TINYFONT}Fabricã de conserve
STR_0101_PRINTING_WORKS :{BLACK}{TINYFONT}Tipografie
-STR_0102_OIL_WELLS :{BLACK}{TINYFONT}Sonde
+STR_0102_OIL_WELLS :{BLACK}{TINYFONT}Sonde de petrol
STR_0103_IRON_ORE_MINE :{BLACK}{TINYFONT}Minã de fier
STR_0104_STEEL_MILL :{BLACK}{TINYFONT}Otelãrie
STR_0105_BANK :{BLACK}{TINYFONT}Bancã
@@ -347,7 +349,7 @@
############ range for menu starts
STR_0154_OPERATING_PROFIT_GRAPH :Profitul operational
-STR_0155_INCOME_GRAPH :Cifra de afaceri
+STR_0155_INCOME_GRAPH :Venituri
STR_0156_DELIVERED_CARGO_GRAPH :Numãr încãrcãturi livrate
STR_0157_PERFORMANCE_HISTORY_GRAPH :Evolutia performantei
STR_0158_COMPANY_VALUE_GRAPH :Valoarea companiei
@@ -445,7 +447,7 @@
STR_017F_ZOOM_THE_VIEW_IN :{BLACK}Mãreste imaginea
STR_0180_ZOOM_THE_VIEW_OUT :{BLACK}Micsoreazã imaginea
STR_0181_BUILD_RAILROAD_TRACK :{BLACK}Construieste cãi ferate
-STR_0182_BUILD_ROADS :{BLACK}Construieste strãzi
+STR_0182_BUILD_ROADS :{BLACK}Construieste drumuri
STR_0183_BUILD_SHIP_DOCKS :{BLACK}Construieste porturi
STR_0184_BUILD_AIRPORTS :{BLACK}Construieste aeroporturi
STR_0185_PLANT_TREES_PLACE_SIGNS :{BLACK}Planteazã arbori, plaseazã semne, etc.
@@ -453,7 +455,7 @@
STR_0187_OPTIONS :{BLACK}Optiuni
STR_0188 :{BLACK}{SMALLUPARROW}
STR_0189 :{BLACK}{SMALLDOWNARROW}
-STR_018A_CAN_T_CHANGE_SERVICING :{WHITE}Nu pot schimba intervalul de service...
+STR_018A_CAN_T_CHANGE_SERVICING :{WHITE}Nu pot schimba intervalul de întreţinere...
STR_018B_CLOSE_WINDOW :{BLACK}ÃŽnchide fereastra
STR_018C_WINDOW_TITLE_DRAG_THIS :{BLACK}Titlul ferestrei - trage de aici pentru a muta fereastra
STR_STICKY_BUTTON :{BLACK}Mark this window as undeletable for the 'Close All Windows' key
@@ -470,7 +472,7 @@
STR_0194_SHOW_TRANSPORT_ROUTES_ON :{BLACK}Aratã rutele de transport pe hartã
STR_0195_SHOW_VEGETATION_ON_MAP :{BLACK}Aratã vegetatia pe hartã
STR_0196_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Aratã proprietãtile pe hartã
-STR_0197_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}Activeazã afisarea numelor oraselor pe hartã
+STR_0197_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}Activeazã/Dezactiveazã afisarea numelor oraselor pe hartã
STR_0198_PROFIT_THIS_YEAR_LAST_YEAR :{TINYFONT}{BLACK}Profit anul acesta: {CURRENCY} (anul trecut: {CURRENCY})
############ range for service numbers starts
@@ -486,9 +488,9 @@
STR_01A1_IS_GETTING_VERY_OLD :{WHITE}{STRING} {COMMA} este foarte vechi
STR_01A2_IS_GETTING_VERY_OLD_AND :{WHITE}{STRING} {COMMA} este foarte vechi si trebuie înlocuit urgent
STR_01A3_LAND_AREA_INFORMATION :{WHITE}Informatii teren
-STR_01A4_COST_TO_CLEAR_N_A :{BLACK}Costul demolãrii: {LTBLUE}N/A
+STR_01A4_COST_TO_CLEAR_N_A :{BLACK}Costul demolãrii: {LTBLUE}nu este cazul
STR_01A5_COST_TO_CLEAR :{BLACK}Costul demolãrii: {LTBLUE}{CURRENCY}
-STR_01A6_N_A :N/A
+STR_01A6_N_A :nu este cazul
STR_01A7_OWNER :{BLACK}Proprietar: {LTBLUE}{STRING}
STR_01A8_LOCAL_AUTHORITY :{BLACK}Autoritatea localã: {LTBLUE}{STRING}
STR_01A9_NONE :nici una
@@ -550,7 +552,7 @@
STR_01DF_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Sãri la piesa urmãtoare din selectie
STR_01E0_STOP_PLAYING_MUSIC :{BLACK}Opreste muzica
STR_01E1_START_PLAYING_MUSIC :{BLACK}Porneste muzica
-STR_01E2_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Foloseste acest indicator pentru a regla volumul muzicii si al efectelor sonore
+STR_01E2_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Foloseste aceste indicatoare pentru a regla volumul muzicii si al efectelor sonore
STR_01E3 :{DKGREEN}{TINYFONT}--
STR_01E4_0 :{DKGREEN}{TINYFONT}0{COMMA}
STR_01E5 :{DKGREEN}{TINYFONT}{COMMA}
@@ -574,7 +576,7 @@
STR_01F7_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Selecteazã programul personal 2
STR_01F8_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Sterge programul curent (doar pentru cele personale)
STR_01F9_SAVE_MUSIC_SETTINGS :{BLACK}Salveaza setarile pentru muzica
-STR_01FA_CLICK_ON_MUSIC_TRACK_TO :{BLACK}Click pe o melodie pentru a adãuga-o in programul personal curent
+STR_01FA_CLICK_ON_MUSIC_TRACK_TO :{BLACK}Click pe o melodie pentru a o adãuga in programul personal curent
STR_CLICK_ON_TRACK_TO_REMOVE :{BLACK}Apasa pe pista audio pentru a o elimina din programul actual (doar Custom1 sau Custom2)
STR_01FB_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Comutator pentru amestecarea melodiilor (da/nu)
STR_01FC_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Afiseaza fereastra pentru selectia melodiilor
@@ -617,7 +619,7 @@
STR_021C_OF_ACHIEVES_STATUS :{WHITE}{BIGFONT}{PLAYERNAME} al {COMPANY} dobandeste titlul de '{STRING}'!
STR_021F :{BLUE}{COMMA}
STR_0221_OPENTTD :{YELLOW}OpenTTD
-STR_0222_SCENARIO_EDITOR :{YELLOW}Editor scenarii
+STR_0222_SCENARIO_EDITOR :{YELLOW}Editor de scenarii
STR_0223_LAND_GENERATION :{WHITE}Generator suprafatã uscat
STR_0224 :{BLACK}{UPARROW}
STR_0225 :{BLACK}{DOWNARROW}
@@ -631,180 +633,180 @@
STR_022E_LANDSCAPE_GENERATION :{BLACK}Generare peisaj
STR_022F_TOWN_GENERATION :{BLACK}Generare oras
STR_0230_INDUSTRY_GENERATION :{BLACK}Generare industrii
-STR_0231_ROAD_CONSTRUCTION :{BLACK}Constructii rutiere
+STR_0231_ROAD_CONSTRUCTION :{BLACK}Construcţii rutiere
STR_0233_TOWN_GENERATION :{WHITE}Generare oras
STR_0234_NEW_TOWN :{BLACK}Oras nou
STR_0235_CONSTRUCT_NEW_TOWN :{BLACK}Construieste un oras nou
STR_0236_CAN_T_BUILD_TOWN_HERE :{WHITE}Nu pot construi un oras aici...
STR_0237_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}...prea aproape de marginea hãrtii
STR_0238_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}...prea aproape de alt oras
-STR_0239_SITE_UNSUITABLE :{WHITE}...locatie nepotrivitã
-STR_023A_TOO_MANY_TOWNS :{WHITE}...prea multe orase
+STR_0239_SITE_UNSUITABLE :{WHITE}...locaţie nepotrivită
+STR_023A_TOO_MANY_TOWNS :{WHITE}...prea multe oraÅŸe
STR_CANNOT_GENERATE_TOWN :{WHITE}Nu pot construi nici un oras
STR_NO_SPACE_FOR_TOWN :{WHITE}...nu mai este loc pe hartã
-STR_023B_INCREASE_SIZE_OF_TOWN :{BLACK}Mãreste dimensiunile orasului
+STR_023B_INCREASE_SIZE_OF_TOWN :{BLACK}Măreşte dimensiunile oraşului
STR_023C_EXPAND :{BLACK}Extinde
-STR_023D_RANDOM_TOWN :{BLACK}Oras aleator
-STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION :{BLACK}Construieste un oras într-o locatie aleatoare
+STR_023D_RANDOM_TOWN :{BLACK}OraÅŸ aleator
+STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION :{BLACK}Construieşte un oraş într-o locaţie aleatoare
STR_023F_INDUSTRY_GENERATION :{WHITE}Generare industrii
-STR_0240_COAL_MINE :{BLACK}Minã de cãrbune
-STR_0241_POWER_STATION :{BLACK}Termocentralã
-STR_0242_SAWMILL :{BLACK}Exploatatie forestierã
-STR_0243_FOREST :{BLACK}Pãdure
-STR_0244_OIL_REFINERY :{BLACK}Rafinãrie
-STR_0245_OIL_RIG :{BLACK}Platformã petrolierã
-STR_0246_FACTORY :{BLACK}Fabricã de conserve
-STR_0247_STEEL_MILL :{BLACK}Otelãrie
-STR_0248_FARM :{BLACK}Fermã
-STR_0249_IRON_ORE_MINE :{BLACK}Minã de fier
-STR_024A_OIL_WELLS :{BLACK}Sonde
-STR_024B_BANK :{BLACK}Bancã
-STR_024C_PAPER_MILL :{BLACK}Fabricã de hârtie
+STR_0240_COAL_MINE :{BLACK}Mină de cărbune
+STR_0241_POWER_STATION :{BLACK}Termocentrală
+STR_0242_SAWMILL :{BLACK}Exploataţie forestieră
+STR_0243_FOREST :{BLACK}Pădure
+STR_0244_OIL_REFINERY :{BLACK}Rafinărie
+STR_0245_OIL_RIG :{BLACK}Platformă petrolieră
+STR_0246_FACTORY :{BLACK}Fabrică de conserve
+STR_0247_STEEL_MILL :{BLACK}Oţelărie
+STR_0248_FARM :{BLACK}Fermă
+STR_0249_IRON_ORE_MINE :{BLACK}Mină de fier
+STR_024A_OIL_WELLS :{BLACK}Sonde de petrol
+STR_024B_BANK :{BLACK}Bancă
+STR_024C_PAPER_MILL :{BLACK}Fabrică de hârtie
STR_024D_FOOD_PROCESSING_PLANT :{BLACK}Combinat alimentar
STR_024E_PRINTING_WORKS :{BLACK}Tipografie
-STR_024F_GOLD_MINE :{BLACK}Minã de aur
-STR_0250_LUMBER_MILL :{BLACK}Fabricã de cherestea
-STR_0251_FRUIT_PLANTATION :{BLACK}Livadã
-STR_0252_RUBBER_PLANTATION :{BLACK}Plantatie de cauciuc
-STR_0253_WATER_SUPPLY :{BLACK}Rezervor de apã
-STR_0254_WATER_TOWER :{BLACK}Turn de apã
-STR_0255_DIAMOND_MINE :{BLACK}Minã de diamante
-STR_0256_COPPER_ORE_MINE :{BLACK}Minã de cupru
-STR_0257_COTTON_CANDY_FOREST :{BLACK}Pãdure de vatã de zahãr
-STR_0258_CANDY_FACTORY :{BLACK}Fabricã de bomboane
-STR_0259_BATTERY_FARM :{BLACK}Fermã de baterii
+STR_024F_GOLD_MINE :{BLACK}Mină de aur
+STR_0250_LUMBER_MILL :{BLACK}Fabrică de cherestea
+STR_0251_FRUIT_PLANTATION :{BLACK}Livadă
+STR_0252_RUBBER_PLANTATION :{BLACK}Plantaţie de cauciuc
+STR_0253_WATER_SUPPLY :{BLACK}Rezervor de apă
+STR_0254_WATER_TOWER :{BLACK}Turn de apă
+STR_0255_DIAMOND_MINE :{BLACK}Mină de diamante
+STR_0256_COPPER_ORE_MINE :{BLACK}Mină de cupru
+STR_0257_COTTON_CANDY_FOREST :{BLACK}Pădure de vată de zahăr
+STR_0258_CANDY_FACTORY :{BLACK}Fabrică de bomboane
+STR_0259_BATTERY_FARM :{BLACK}Fermă de baterii
STR_025A_COLA_WELLS :{BLACK}Fântâni de cola
-STR_025B_TOY_SHOP :{BLACK}Magazin de jucãrii
-STR_025C_TOY_FACTORY :{BLACK}Fabricã de jucãrii
+STR_025B_TOY_SHOP :{BLACK}Magazin de jucării
+STR_025C_TOY_FACTORY :{BLACK}Fabrică de jucării
STR_025D_PLASTIC_FOUNTAINS :{BLACK}Fântâni de plastic
-STR_025E_FIZZY_DRINK_FACTORY :{BLACK}Fabricã de sucuri
-STR_025F_BUBBLE_GENERATOR :{BLACK}Generator de balonase
-STR_0260_TOFFEE_QUARRY :{BLACK}Carierã de caramel
-STR_0261_SUGAR_MINE :{BLACK}Minã de zahãr
-STR_0262_CONSTRUCT_COAL_MINE :{BLACK}Construieste minã de cupru
-STR_0263_CONSTRUCT_POWER_STATION :{BLACK}Construieste termocentralã
-STR_0264_CONSTRUCT_SAWMILL :{BLACK}Înfiinteazã exploatatie forestierã
-STR_0265_PLANT_FOREST :{BLACK}Planteazã pãdure
-STR_0266_CONSTRUCT_OIL_REFINERY :{BLACK}Construieste rafinãrie
-STR_0267_CONSTRUCT_OIL_RIG_CAN_ONLY :{BLACK}Construieste platformã petrolierã (doar în apropierea marginilor hãrtii)
-STR_0268_CONSTRUCT_FACTORY :{BLACK}Construieste fabricã de conserve
-STR_0269_CONSTRUCT_STEEL_MILL :{BLACK}Construieste otelãrie
-STR_026A_CONSTRUCT_FARM :{BLACK}Înfiinteazã fermã
-STR_026B_CONSTRUCT_IRON_ORE_MINE :{BLACK}Construieste minã de fier
-STR_026C_CONSTRUCT_OIL_WELLS :{BLACK}Construieste sonde
-STR_026D_CONSTRUCT_BANK_CAN_ONLY :{BLACK}Construieste bancã (doar în orasele cu o populatie de cel putin 1200 locuitori)
-STR_026E_CONSTRUCT_PAPER_MILL :{BLACK}Construieste fabricã de hârtie
-STR_026F_CONSTRUCT_FOOD_PROCESSING :{BLACK}Construieste combinat alimentar
-STR_0270_CONSTRUCT_PRINTING_WORKS :{BLACK}Construieste tipografie
-STR_0271_CONSTRUCT_GOLD_MINE :{BLACK}Construieste minã de aur
-STR_0272_CONSTRUCT_BANK_CAN_ONLY :{BLACK}Construieste bancã (doar în orase)
-STR_0273_CONSTRUCT_LUMBER_MILL_TO :{BLACK}Construieste fabricã de cherestea (taie arborii din jur pentru a produce lemne)
-STR_0274_PLANT_FRUIT_PLANTATION :{BLACK}Planteazã livadã
-STR_0275_PLANT_RUBBER_PLANTATION :{BLACK}Înfiinteazã plantatie de cauciuc
-STR_0276_CONSTRUCT_WATER_SUPPLY :{BLACK}Construieste rezervor de apã
-STR_0277_CONSTRUCT_WATER_TOWER_CAN :{BLACK}Construieste turn de apã (doar în orase)
-STR_0278_CONSTRUCT_DIAMOND_MINE :{BLACK}Construieste minã de diamante
-STR_0279_CONSTRUCT_COPPER_ORE_MINE :{BLACK}Construieste minã de cupru
-STR_027A_PLANT_COTTON_CANDY_FOREST :{BLACK}Planteazã pãdure de vatã de zahãr
-STR_027B_CONSTRUCT_CANDY_FACTORY :{BLACK}Construieste fabricã de bomboane
-STR_027C_CONSTRUCT_BATTERY_FARM :{BLACK}Înfiinteazã fermã de baterii
-STR_027D_CONSTRUCT_COLA_WELLS :{BLACK}Construieste fântâni de cola
-STR_027E_CONSTRUCT_TOY_SHOP :{BLACK}Construieste magazin de jucãrii
-STR_027F_CONSTRUCT_TOY_FACTORY :{BLACK}Construieste fabricã de jucãrii
-STR_0280_CONSTRUCT_PLASTIC_FOUNTAINS :{BLACK}Construieste fântþni de plastic
-STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY :{BLACK}Construieste fabricã de sucuri
-STR_0282_CONSTRUCT_BUBBLE_GENERATOR :{BLACK}Construieste generator de balonase
-STR_0283_CONSTRUCT_TOFFEE_QUARRY :{BLACK}Construieste carierã de caramel
-STR_0284_CONSTRUCT_SUGAR_MINE :{BLACK}Construieste minã de zahãr
+STR_025E_FIZZY_DRINK_FACTORY :{BLACK}Fabrică de sucuri
+STR_025F_BUBBLE_GENERATOR :{BLACK}Generator de balonaÅŸe
+STR_0260_TOFFEE_QUARRY :{BLACK}Carieră de caramel
+STR_0261_SUGAR_MINE :{BLACK}Mină de zahăr
+STR_0262_CONSTRUCT_COAL_MINE :{BLACK}Construieşte mină de cupru
+STR_0263_CONSTRUCT_POWER_STATION :{BLACK}Construieşte termocentrală
+STR_0264_CONSTRUCT_SAWMILL :{BLACK}Înfiinţează exploataţie forestieră
+STR_0265_PLANT_FOREST :{BLACK}Plantează pădure
+STR_0266_CONSTRUCT_OIL_REFINERY :{BLACK}Construieşte rafinărie
+STR_0267_CONSTRUCT_OIL_RIG_CAN_ONLY :{BLACK}Construieşte platformă petrolieră (doar în apropierea marginilor hărţii)
+STR_0268_CONSTRUCT_FACTORY :{BLACK}Construieşte fabrică de conserve
+STR_0269_CONSTRUCT_STEEL_MILL :{BLACK}Construieşte oţelărie
+STR_026A_CONSTRUCT_FARM :{BLACK}Înfiinţează fermă
+STR_026B_CONSTRUCT_IRON_ORE_MINE :{BLACK}Construieşte mină de fier
+STR_026C_CONSTRUCT_OIL_WELLS :{BLACK}ConstruieÅŸte sonde de petrol
+STR_026D_CONSTRUCT_BANK_CAN_ONLY :{BLACK}Construieşte bancă (doar în oraşele cu o populaţie de cel puţin 1200 locuitori)
+STR_026E_CONSTRUCT_PAPER_MILL :{BLACK}Construieşte fabrică de hârtie
+STR_026F_CONSTRUCT_FOOD_PROCESSING :{BLACK}ConstruieÅŸte combinat alimentar
+STR_0270_CONSTRUCT_PRINTING_WORKS :{BLACK}ConstruieÅŸte tipografie
+STR_0271_CONSTRUCT_GOLD_MINE :{BLACK}Construieşte mină de aur
+STR_0272_CONSTRUCT_BANK_CAN_ONLY :{BLACK}Construieşte bancă (doar în oraşe)
+STR_0273_CONSTRUCT_LUMBER_MILL_TO :{BLACK}Construieşte fabrică de cherestea (taie arborii din jur pentru a produce lemne)
+STR_0274_PLANT_FRUIT_PLANTATION :{BLACK}Plantează livadă
+STR_0275_PLANT_RUBBER_PLANTATION :{BLACK}Înfiinţează plantaţie de cauciuc
+STR_0276_CONSTRUCT_WATER_SUPPLY :{BLACK}Construieşte rezervor de apă
+STR_0277_CONSTRUCT_WATER_TOWER_CAN :{BLACK}Construieşte turn de apă (doar în oraşe)
+STR_0278_CONSTRUCT_DIAMOND_MINE :{BLACK}Construieşte mină de diamante
+STR_0279_CONSTRUCT_COPPER_ORE_MINE :{BLACK}Construieşte mină de cupru
+STR_027A_PLANT_COTTON_CANDY_FOREST :{BLACK}Plantează pădure de vată de zahăr
+STR_027B_CONSTRUCT_CANDY_FACTORY :{BLACK}Construieşte fabrică de bomboane
+STR_027C_CONSTRUCT_BATTERY_FARM :{BLACK}Înfiinţează fermă de baterii
+STR_027D_CONSTRUCT_COLA_WELLS :{BLACK}Construieşte fântâni de cola
+STR_027E_CONSTRUCT_TOY_SHOP :{BLACK}Construieşte magazin de jucării
+STR_027F_CONSTRUCT_TOY_FACTORY :{BLACK}Construieşte fabrică de jucării
+STR_0280_CONSTRUCT_PLASTIC_FOUNTAINS :{BLACK}Construieşte fântâni de plastic
+STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY :{BLACK}Construieşte fabrică de sucuri
+STR_0282_CONSTRUCT_BUBBLE_GENERATOR :{BLACK}ConstruieÅŸte generator de balonaÅŸe
+STR_0283_CONSTRUCT_TOFFEE_QUARRY :{BLACK}Construieşte carieră de caramel
+STR_0284_CONSTRUCT_SUGAR_MINE :{BLACK}Construieşte mină de zahăr
STR_0285_CAN_T_BUILD_HERE :{WHITE}Nu pot construi {STRING} aici...
-STR_0286_MUST_BUILD_TOWN_FIRST :{WHITE}...mai intâi trebuie creat un oras
-STR_0287_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}...un singur obiectiv de acest tip este permis intr-un oras
-STR_0288_PLANT_TREES :{BLACK}Planteazã arbori
-STR_0289_PLACE_SIGN :{BLACK}Plaseazã semn
+STR_0286_MUST_BUILD_TOWN_FIRST :{WHITE}...mai întâi trebuie creat un oraş
+STR_0287_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}...un singur obiectiv de acest tip este permis într-un oraş
+STR_0288_PLANT_TREES :{BLACK}Plantează arbori
+STR_0289_PLACE_SIGN :{BLACK}Plasează semn
STR_028A_RANDOM_TREES :{BLACK}Arbori aleatori
-STR_028B_PLANT_TREES_RANDOMLY_OVER :{BLACK}Planteazã aleator arbori pe uscat
-STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Plaseaza formatiuni pietroase
-STR_028D_PLACE_LIGHTHOUSE :{BLACK}Plaseazã far
-STR_028E_PLACE_TRANSMITTER :{BLACK}Plaseazã transmitãtor
-STR_028F_DEFINE_DESERT_AREA :{BLACK}Defineste suprafata de desert.{}Apasã si mentine apasat CTRL pentru a o sterge
+STR_028B_PLANT_TREES_RANDOMLY_OVER :{BLACK}Plantează aleator arbori pe uscat
+STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Plasează formaţiuni pietroase
+STR_028D_PLACE_LIGHTHOUSE :{BLACK}Plasează far
+STR_028E_PLACE_TRANSMITTER :{BLACK}Plasează transmiţător
+STR_028F_DEFINE_DESERT_AREA :{BLACK}Defineşte suprafaţa de deşert.{}Apasă şi menţine apăsat CTRL pentru a o şterge
STR_CREATE_LAKE :{BLACK}Defineste zona apei.{}Creeaza un canal, mai putin cand CTRL este apasat la nivelul marii, cand va inunda, in loc, imprejurimile
-STR_0290_DELETE :{BLACK}Sterge
-STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}Sterge acest oras
-STR_0292_SAVE_SCENARIO :Salveazã scenariul
-STR_0293_LOAD_SCENARIO :Încarcã scenariu
+STR_0290_DELETE :{BLACK}Åžterge
+STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}Åžterge acest oraÅŸ
+STR_0292_SAVE_SCENARIO :Salvează scenariul
+STR_0293_LOAD_SCENARIO :Încarcă scenariu
STR_LOAD_HEIGHTMAP :Incarca harta de inaltimi
-STR_0294_QUIT_EDITOR :Iesire din editor
+STR_0294_QUIT_EDITOR :IeÅŸire din editor
STR_0295 :
-STR_0296_QUIT :Iesire din joc
-STR_0297_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Salveazã/încarcã scenariu, abandoneazã editorul, iesire din joc
-STR_0298_LOAD_SCENARIO :{WHITE}Încarcã scenariu
-STR_0299_SAVE_SCENARIO :{WHITE}Salveazã scenariu
-STR_029A_PLAY_SCENARIO :{BLACK}Joacã scenariu
+STR_0296_QUIT :IeÅŸire din joc
+STR_0297_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Salvează/încarcă scenariu, abandonează editorul, ieşire din joc
+STR_0298_LOAD_SCENARIO :{WHITE}Încarcă scenariu
+STR_0299_SAVE_SCENARIO :{WHITE}Salvează scenariu
+STR_029A_PLAY_SCENARIO :{BLACK}Joacă scenariu
STR_PLAY_HEIGHTMAP :{BLACK}Reda harta inaltimi
STR_PLAY_HEIGHTMAP_HINT :{BLACK}Porneste un nou joc, folosind o scara de inaltimi ca peisaj
STR_QUIT_SCENARIO_QUERY :{YELLOW}Esti sigur cã vrei sã renunti la acest scenariu?
-STR_029C_QUIT_EDITOR :{WHITE}Iesire din editor
-STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...Se poate construi doar in orase cu populatia de cel putin 1200
-STR_029E_MOVE_THE_STARTING_DATE :{BLACK}Schimbã data de start cu un an în urmã
-STR_029F_MOVE_THE_STARTING_DATE :{BLACK}Schimbã data de start înainte cu un an
-STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}...ambele capete ale podului trebuie sã se situeze pe uscat
+STR_029C_QUIT_EDITOR :{WHITE}IeÅŸire din editor
+STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...Se poate construi doar în oraşe cu populaţia de cel puţin 1200
+STR_029E_MOVE_THE_STARTING_DATE :{BLACK}Schimbă data de start cu un an în urmă
+STR_029F_MOVE_THE_STARTING_DATE :{BLACK}Schimbă data de start înainte cu un an
+STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}...ambele capete ale podului trebuie să se situeze pe uscat
STR_02A1_SMALL :{BLACK}Mic
STR_02A2_MEDIUM :{BLACK}Mediu
STR_02A3_LARGE :{BLACK}Mare
STR_SCENARIO_EDITOR_CITY :{BLACK}Oras
-STR_02A4_SELECT_TOWN_SIZE :{BLACK}Alege mãrimea orasului
-STR_02A5_TOWN_SIZE :{YELLOW}Mãrime oras:
+STR_02A4_SELECT_TOWN_SIZE :{BLACK}Alege mărimea oraşului
+STR_02A5_TOWN_SIZE :{YELLOW}Mărime oraş:
STR_02B6 :{STRING} - {STRING}
-STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS :{BLACK}Re-afiseazã ultimul mesaj
+STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS :{BLACK}Re-afişează ultimul mesaj
STR_OFF :Oprit
STR_SUMMARY :Pe scurt
STR_FULL :Pe larg
STR_02BA :{SILVER}- - {COMPANY} - -
-STR_02BB_TOWN_DIRECTORY :Lista oraselor (F5)
-STR_02BC_VEHICLE_DESIGN_NAMES :{BLACK}Numele vehiculelor si modelelor
+STR_02BB_TOWN_DIRECTORY :Lista oraÅŸelor (F5)
+STR_02BC_VEHICLE_DESIGN_NAMES :{BLACK}Numele vehiculelor
STR_02BD :{BLACK}{STRING}
STR_02BE_DEFAULT :Prestabilit
STR_02BF_CUSTOM :Propriu
-STR_02C0_SAVE_CUSTOM_NAMES :{BLACK}Salveaza numele proprii
-STR_02C1_VEHICLE_DESIGN_NAMES_SELECTION :{BLACK}Selecteazã numele modelelor
-STR_02C2_SAVE_CUSTOMIZED_VEHICLE :{BLACK}Salveazã pe disc numele personalizate de mãrci si modele
+STR_02C0_SAVE_CUSTOM_NAMES :{BLACK}Salvează numele proprii
+STR_02C1_VEHICLE_DESIGN_NAMES_SELECTION :{BLACK}Selectează numele modelelor
+STR_02C2_SAVE_CUSTOMIZED_VEHICLE :{BLACK}Salvează pe disc numele personalizate de mărci şi modele
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
-STR_02C3_GAME_OPTIONS :Optiunile jocului (F2)
-STR_02C5_DIFFICULTY_SETTINGS :Setãri dificultate
+STR_02C3_GAME_OPTIONS :Opţiunile jocului (F2)
+STR_02C5_DIFFICULTY_SETTINGS :Setări dificultate
STR_02C7_CONFIG_PATCHES :Configurare patch
STR_NEWGRF_SETTINGS :Setari Newgrf
STR_GAMEOPTMENU_0A :
-STR_02CA_TOWN_NAMES_DISPLAYED :{SETX 12}Afiseazã numele oraselor
-STR_02CC_STATION_NAMES_DISPLAYED :{SETX 12}Afiseazã numele statiilor
-STR_02CE_SIGNS_DISPLAYED :{SETX 12}Afiseazã semnele de pe hartã
+STR_02CA_TOWN_NAMES_DISPLAYED :{SETX 12}Afişează numele oraşelor
+STR_02CC_STATION_NAMES_DISPLAYED :{SETX 12}Afişează numele staţiilor
+STR_02CE_SIGNS_DISPLAYED :{SETX 12}Afişează semnele de pe hartă
STR_WAYPOINTS_DISPLAYED2 :{SETX 12}Afisare puncte de tranzit
-STR_02D0_FULL_ANIMATION :{SETX 12}Animatie completã
+STR_02D0_FULL_ANIMATION :{SETX 12}Animaţie completă
STR_02D2_FULL_DETAIL :{SETX 12}Detalii grafice complete
STR_02D4_TRANSPARENT_BUILDINGS :{SETX 12}Peisaj transparent (X)
STR_TRANSPARENT_SIGNS :{SETX 12}Semne statii, transparente
############ range ends here
############ range for menu starts
-STR_02D5_LAND_BLOCK_INFO :Informatii despre teren
+STR_02D5_LAND_BLOCK_INFO :Informaţii despre teren
STR_02D6 :
STR_CONSOLE_SETTING :Consola On/Off
-STR_02D7_SCREENSHOT_CTRL_S :Screenshot (Ctrl-S)
-STR_02D8_GIANT_SCREENSHOT_CTRL_G :Screenshot gigant(Ctrl-G)
+STR_02D7_SCREENSHOT_CTRL_S :Capturează ecranul (Ctrl-S)
+STR_02D8_GIANT_SCREENSHOT_CTRL_G :Capturează toată harta (Ctrl-G)
STR_02D9_ABOUT_OPENTTD :Despre 'OpenTTD'
############ range ends here
STR_02DB_OFF :{BLACK}inactiv
STR_02DA_ON :{BLACK}activ
-STR_02DC_DISPLAY_SUBSIDIES :{BLACK}Afiseazã subventiile (F6)
-STR_02DD_SUBSIDIES :Subventii (F6)
+STR_02DC_DISPLAY_SUBSIDIES :{BLACK}Afişează subvenţiile (F6)
+STR_02DD_SUBSIDIES :Subvenţii (F6)
STR_02DE_MAP_OF_WORLD :Harta lumii (F4)
STR_EXTRA_VIEW_PORT :Extra ecran
STR_SIGN_LIST :Lista de semne
STR_TRANSPARENCY_OPTIONS :Optiuni transparenta
-STR_02DF_TOWN_DIRECTORY :Lista oraselor
+STR_02DF_TOWN_DIRECTORY :Lista oraÅŸelor
STR_TOWN_POPULATION :{BLACK}Populatia totala: {COMMA}
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Ecran{COMMA}
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Copiaza pe ecranul principal
@@ -812,66 +814,66 @@
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Importa din ecran
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Importa locatia acestui ecran in ecranul principal
-STR_02E0_CURRENCY_UNITS :{BLACK}Unitãti monetare
+STR_02E0_CURRENCY_UNITS :{BLACK}Unităţi monetare
STR_02E1 :{BLACK}{SKIP}{STRING}
-STR_02E2_CURRENCY_UNITS_SELECTION :{BLACK}Alege unitatea monetarã
+STR_02E2_CURRENCY_UNITS_SELECTION :{BLACK}Alege unitatea monetară
STR_MEASURING_UNITS :{BLACK}Unitãti de mãsurã
STR_02E4 :{BLACK}{SKIP}{SKIP}{STRING}
STR_MEASURING_UNITS_SELECTION :{BLACK}Selectie unitãti de mãsurã
-STR_02E6_ROAD_VEHICLES :{BLACK}Autovehiculele circulã..
+STR_02E6_ROAD_VEHICLES :{BLACK}Autovehiculele circulă...
STR_02E7 :{BLACK}{SKIP}{SKIP}{SKIP}{STRING}
-STR_02E8_SELECT_SIDE_OF_ROAD_FOR :{BLACK}Alege partea strãzii pe care se circulã
-STR_02E9_DRIVE_ON_LEFT :Pe partea stângã
-STR_02EA_DRIVE_ON_RIGHT :Pe partea dreaptã
-STR_02EB_TOWN_NAMES :{BLACK}Numele oraselor
+STR_02E8_SELECT_SIDE_OF_ROAD_FOR :{BLACK}Alege partea străzii pe care se circulă
+STR_02E9_DRIVE_ON_LEFT :Pe partea stângă
+STR_02EA_DRIVE_ON_RIGHT :Pe partea dreaptă
+STR_02EB_TOWN_NAMES :{BLACK}Numele oraÅŸelor
STR_02EC :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_02ED_SELECT_STYLE_OF_TOWN_NAMES :{BLACK}Alege nationalitatea numelor oraselor
+STR_02ED_SELECT_STYLE_OF_TOWN_NAMES :{BLACK}Alege naţionalitatea numelor oraşelor
-STR_02F4_AUTOSAVE :{BLACK}Salvare automatã
+STR_02F4_AUTOSAVE :{BLACK}Salvare automată
STR_02F5 :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_02F6_SELECT_INTERVAL_BETWEEN :{BLACK}Alege intervalul scurs între salvãrile automate
-STR_02F7_OFF :Dezactivatã
+STR_02F6_SELECT_INTERVAL_BETWEEN :{BLACK}Alege intervalul de timp dintre salvările automate
+STR_02F7_OFF :Dezactivată
STR_02F8_EVERY_3_MONTHS :La fiecare 3 luni
STR_02F9_EVERY_6_MONTHS :La fiecare 6 luni
STR_02FA_EVERY_12_MONTHS :La fiecare 12 luni
STR_02FB_START_A_NEW_GAME :{BLACK}ÃŽncepere joc nou
-STR_02FC_LOAD_A_SAVED_GAME :{BLACK}Incarca un joc salvat
-STR_02FE_CREATE_A_CUSTOMIZED_GAME :{BLACK}Creeazã un joc/scenariu propriu
-STR_02FF_SELECT_SINGLE_PLAYER_GAME :{BLACK}Alege un joc cu un singur jucãtor
-STR_0300_SELECT_MULTIPLAYER_GAME :{BLACK}Alege un joc multiplayer cu 2-8 jucatori
-STR_0301_DISPLAY_GAME_OPTIONS :{BLACK}Afiseazã optiunile jocului
-STR_0302_DISPLAY_DIFFICULTY_OPTIONS :{BLACK}Afiseaza optiunile pentru alegerea dificultãtii
+STR_02FC_LOAD_A_SAVED_GAME :{BLACK}Încarcă un joc salvat
+STR_02FE_CREATE_A_CUSTOMIZED_GAME :{BLACK}Creează un joc/scenariu propriu
+STR_02FF_SELECT_SINGLE_PLAYER_GAME :{BLACK}Alege un joc cu un singur jucător
+STR_0300_SELECT_MULTIPLAYER_GAME :{BLACK}Alege un joc multiplayer cu 2-8 jucători
+STR_0301_DISPLAY_GAME_OPTIONS :{BLACK}Afişează opţiunile jocului
+STR_0302_DISPLAY_DIFFICULTY_OPTIONS :{BLACK}Afişează opţiunile pentru alegerea dificultăţii
STR_0303_START_A_NEW_GAME_USING :{BLACK}ÃŽnceperea unui joc nou folosind un scenariu deja existent
-STR_0304_QUIT :{BLACK}Iesire
-STR_0305_QUIT_OPENTTD :{BLACK}Iesi din 'OpenTTD'
+STR_0304_QUIT :{BLACK}IeÅŸire
+STR_0305_QUIT_OPENTTD :{BLACK}IeÅŸi din 'OpenTTD'
STR_0307_OPENTTD :{WHITE}OpenTTD {REV}
-STR_030D_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...se poate construi doar în orase
-STR_030E_SELECT_TEMPERATE_LANDSCAPE :{BLACK}Alege peisajul 'climã temperatã'
-STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE :{BLACK}Alege peisajul 'climã sub-arcticã'
-STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE :{BLACK}Alege peisajul 'climã sub-tropicalã'
-STR_0311_SELECT_TOYLAND_LANDSCAPE :{BLACK}Alege peisajul 'tara jucãriilor'
-STR_0312_FUND_CONSTRUCTION_OF_NEW :{BLACK}Finanteazã constructia de industrii noi
+STR_030D_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...se poate construi doar în oraşe
+STR_030E_SELECT_TEMPERATE_LANDSCAPE :{BLACK}Alege peisajul 'climă temperată'
+STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE :{BLACK}Alege peisajul 'climă sub-arctică'
+STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE :{BLACK}Alege peisajul 'climă sub-tropicală'
+STR_0311_SELECT_TOYLAND_LANDSCAPE :{BLACK}Alege peisajul 'ţara jucăriilor'
+STR_0312_FUND_CONSTRUCTION_OF_NEW :{BLACK}Finanţează construcţia de industrii noi
############ range for menu starts
STR_INDUSTRY_DIR :Lista industriilor
STR_0313_FUND_NEW_INDUSTRY :Obiectiv industrial nou
############ range ends here
-STR_0314_FUND_NEW_INDUSTRY :{WHITE}Construieste un nou obiectiv ind.
+STR_0314_FUND_NEW_INDUSTRY :{WHITE}ConstruieÅŸte un nou obiectiv industrial
STR_JUST_STRING :{STRING}
-STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...se poate construi doar in orase
+STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...se poate construi doar în oraşe
STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}...se poate construi doar in padurile ecuatoriale
-STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}...se poate construi doar in zonele de desert
-STR_0319_PAUSED :{YELLOW}* * PAUZÃ (F1) * *
+STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}...se poate construi doar în zonele de deşert
+STR_0319_PAUSED :{YELLOW}* * PAUZÄ‚ (F1) * *
-STR_031B_SCREENSHOT_SUCCESSFULLY :{WHITE}Screenshot salvat cu succes pe disc în fisierul '{STRING}'
-STR_031C_SCREENSHOT_FAILED :{WHITE}Screenshot nerealizat!
+STR_031B_SCREENSHOT_SUCCESSFULLY :{WHITE}Imagine salvată cu succes pe disc în fişierul '{STRING}'
+STR_031C_SCREENSHOT_FAILED :{WHITE}Imaginea nu a putut fi capturată!
-STR_0329_PURCHASE_LAND_FOR_FUTURE :{BLACK}Cumpãrã teren pentru folosire ulterioarã
-STR_032F_AUTOSAVE :{RED}SALVARE AUTOMATÃ
+STR_0329_PURCHASE_LAND_FOR_FUTURE :{BLACK}Cumpără teren pentru folosire ulterioară
+STR_032F_AUTOSAVE :{RED}SALVARE AUTOMATÄ‚
STR_SAVING_GAME :{RED}* * SALVARE JOC * *
STR_SAVE_STILL_IN_PROGRESS :{WHITE}Salvarea se efectueaza încã,{}vã rugãm asteptati pânã se încheie!
-STR_0330_SELECT_EZY_STREET_STYLE :{BLACK}Selecteazã programul muzical 'Ezy Street'
+STR_0330_SELECT_EZY_STREET_STYLE :{BLACK}Selectează programul muzical 'Ezy Street'
STR_0335_6 :{BLACK}6
STR_0336_7 :{BLACK}7
@@ -1046,6 +1048,7 @@
STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL :{LTBLUE}Nou pathfinding global(NPF, dezactiveaza NTP): {ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}Multiplicator greutate pt marfar pt simularea trenurilor grele: {ORANGE}{STRING}
STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}Permite semafoare in intersectiile drumurilor din proprietatea orasului: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}Permite construirea de statii adiacente: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SMALL_AIRPORTS :{LTBLUE}Permite întotdeauna aeroporturi mici: {ORANGE}{STRING}
@@ -1157,7 +1160,7 @@
STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER :{LTBLUE}Multiplicator initial dimensiune oras: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GUI :{BLACK}Interfatã
-STR_CONFIG_PATCHES_CONSTRUCTION :{BLACK}Constructie
+STR_CONFIG_PATCHES_CONSTRUCTION :{BLACK}Construcţie
STR_CONFIG_PATCHES_VEHICLES :{BLACK}Vehicule
STR_CONFIG_PATCHES_STATIONS :{BLACK}Statii
STR_CONFIG_PATCHES_ECONOMY :{BLACK}Economie
@@ -1195,7 +1198,7 @@
STR_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}Merge spre {WAYPOINT}, {VELOCITY}
STR_GO_TO_WAYPOINT :Mergi via {WAYPOINT}
-STR_GO_NON_STOP_TO_WAYPOINT :Mergi non-stop via {WAYPOINT}
+STR_GO_NON_STOP_TO_WAYPOINT :Mergi fără oprire via {WAYPOINT}
STR_WAYPOINTNAME_CITY :Halta {TOWN}
STR_WAYPOINTNAME_CITY_SERIAL :Halta {TOWN} #{COMMA}
@@ -1528,190 +1531,205 @@
##id 0x0800
STR_0800_COST :{TINYFONT}{RED}Cheltuieli: {CURRENCY}
STR_0801_COST :{RED}Cheltuieli: {CURRENCY}
-STR_0802_INCOME :{TINYFONT}{GREEN}Încasãri: {CURRENCY}
-STR_0803_INCOME :{GREEN}Încasãri: {CURRENCY}
+STR_0802_INCOME :{TINYFONT}{GREEN}Venituri: {CURRENCY}
+STR_0803_INCOME :{GREEN}Venituri: {CURRENCY}
STR_FEEDER_TINY :{TINYFONT}{YELLOW}Transferã: {CURRENCY}
STR_FEEDER :{YELLOW}Transferã: {CURRENCY}
STR_0805_ESTIMATED_COST :{WHITE}Cost estimat: {CURRENCY}
STR_0807_ESTIMATED_INCOME :{WHITE}Venit estimat: {CURRENCY}
-STR_0808_CAN_T_RAISE_LAND_HERE :{WHITE}Nu pot înãlta terenul...
-STR_0809_CAN_T_LOWER_LAND_HERE :{WHITE}Nu pot sãpa terenul...
+STR_0808_CAN_T_RAISE_LAND_HERE :{WHITE}Nu pot înălţa terenul...
+STR_0809_CAN_T_LOWER_LAND_HERE :{WHITE}Nu pot coborî terenul...
STR_080A_ROCKS :Stânci
STR_080B_ROUGH_LAND :Teren pietros
STR_080C_BARE_LAND :Teren viran
-STR_080D_GRASS :Verdeatã
+STR_080D_GRASS :Verdeaţă
STR_080E_FIELDS :Teren agricol
-STR_080F_SNOW_COVERED_LAND :Zãpadã
-STR_0810_DESERT :Desert
+STR_080F_SNOW_COVERED_LAND :Teren înzăpezit
+STR_0810_DESERT :DeÅŸert
##id 0x1000
-STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Terenul are o înclinatie nepotrivitã
-STR_1001_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Combinatie de linii imposibilã
-STR_1002_EXCAVATION_WOULD_DAMAGE :{WHITE}Sãpãturile ar afecta tunelul
-STR_1003_ALREADY_AT_SEA_LEVEL :{WHITE}Te afli deja la nivelul mãrii
+STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Terenul are o înclinaţie nepotrivită
+STR_1001_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Combinaţie de linii imposibilă
+STR_1002_EXCAVATION_WOULD_DAMAGE :{WHITE}Săpăturile ar afecta tunelul
+STR_1003_ALREADY_AT_SEA_LEVEL :{WHITE}Deja la nivelul mării
STR_1004_TOO_HIGH :{WHITE}Prea înalt
-STR_1005_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Cale feratã nepotrivitã
+STR_1005_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Cale ferată nepotrivită
STR_1007_ALREADY_BUILT :{WHITE}...deja construit
-STR_1008_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Mai intâi trebuie demolatã calea feratã
-STR_100A_RAILROAD_CONSTRUCTION :{WHITE}Constructii feroviare
-STR_TITLE_ELRAIL_CONSTRUCTION :{WHITE}Constructie Cale Feratã Electrificatã
-STR_100B_MONORAIL_CONSTRUCTION :{WHITE}Constructii monorail
-STR_100C_MAGLEV_CONSTRUCTION :{WHITE}Constructii maglev
-STR_100D_SELECT_RAIL_BRIDGE :{WHITE}Alege podul de cale feratã
-STR_100E_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}Nu pot construi un depou aici...
-STR_100F_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Nu pot construi o garã aici...
+STR_1008_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Mai întâi trebuie înlăturată calea ferată
+STR_100A_RAILROAD_CONSTRUCTION :{WHITE}Construcţii feroviare
+STR_TITLE_ELRAIL_CONSTRUCTION :{WHITE}Construcţie Cale Ferată Electrificată
+STR_100B_MONORAIL_CONSTRUCTION :{WHITE}Construcţii monoşină
+STR_100C_MAGLEV_CONSTRUCTION :{WHITE}Construcţii maglev
+STR_100D_SELECT_RAIL_BRIDGE :{WHITE}Alege podul de cale ferată
+STR_100E_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}Nu pot construi un depou feroviar aici...
+STR_100F_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Nu pot construi o gară aici...
STR_1010_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Nu pot plasa semnale aici...
-STR_1011_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Nu pot construi cale feratã aici...
-STR_1012_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Nu pot demola calea feratã...
-STR_1013_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}Nu pot demola semnalele de aici...
-STR_1014_TRAIN_DEPOT_ORIENTATION :{WHITE}Orientarea depoului
-STR_1015_RAILROAD_CONSTRUCTION :Constructii feroviare
-STR_TOOLB_ELRAIL_CONSTRUCTION :Constructie cale feratã electrificatã
-STR_1016_MONORAIL_CONSTRUCTION :Constructii monorail
-STR_1017_MAGLEV_CONSTRUCTION :Constructii maglev
-STR_1018_BUILD_RAILROAD_TRACK :{BLACK}Construieste cale feratã
-STR_1019_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Construieste un depou feroviar (pentru construire/service trenuri)
-STR_101A_BUILD_RAILROAD_STATION :{BLACK}Construieste garã
-STR_101B_BUILD_RAILROAD_SIGNALS :{BLACK}Plaseazã semnale feroviare
-STR_101C_BUILD_RAILROAD_BRIDGE :{BLACK}Construieste pod de cale feratã
-STR_101D_BUILD_RAILROAD_TUNNEL :{BLACK}Construieste tunel feroviar
-STR_101E_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Comutator pentru constructie/demolare cãi ferate si semnale
+STR_1011_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Nu pot construi cale ferată aici...
+STR_1012_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Nu pot înlătura calea ferată...
+STR_1013_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}Nu pot înlătura semnalele de aici...
+STR_1014_TRAIN_DEPOT_ORIENTATION :{WHITE}Orientarea depoului feroviar
+STR_1015_RAILROAD_CONSTRUCTION :Construcţii feroviare
+STR_TOOLB_ELRAIL_CONSTRUCTION :Construcţie cale ferată electrificată
+STR_1016_MONORAIL_CONSTRUCTION :Construcţii monoşină
+STR_1017_MAGLEV_CONSTRUCTION :Construcţii maglev
+STR_1018_BUILD_RAILROAD_TRACK :{BLACK}Construieşte cale ferată
+STR_1019_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Construieşte un depou feroviar (pentru construire şi întreţinere de trenuri)
+STR_101A_BUILD_RAILROAD_STATION :{BLACK}Construieşte gară
+STR_101B_BUILD_RAILROAD_SIGNALS :{BLACK}Plasează semnale feroviare
+STR_101C_BUILD_RAILROAD_BRIDGE :{BLACK}Construieşte pod de cale ferată
+STR_101D_BUILD_RAILROAD_TUNNEL :{BLACK}ConstruieÅŸte tunel feroviar
+STR_101E_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Comutator pentru construcţie/înlăturare căi ferate şi semnale
STR_101F_BRIDGE_SELECTION_CLICK :{BLACK}Alegere pod - clic pe podul selectat pentru a-l construi
STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO :{BLACK}Alege orientarea depoului
-STR_1021_RAILROAD_TRACK :Cale feratã
-STR_1023_RAILROAD_TRAIN_DEPOT :Depou de cale feratã
-STR_1024_AREA_IS_OWNED_BY_ANOTHER :{WHITE}...terenul se aflã in posesia altei companii
+STR_1021_RAILROAD_TRACK :Cale ferată
+STR_1023_RAILROAD_TRAIN_DEPOT :Depou de cale ferată
+STR_1024_AREA_IS_OWNED_BY_ANOTHER :{WHITE}...terenul se află în proprietatea altei companii
STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS :Cale feratã cu semnale normale
STR_RAILROAD_TRACK_WITH_PRESIGNALS :Cale feratã cu pre-semnalizare
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Cale feratã cu semnale de iesire
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Cale feratã cu semnale combinate
+STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Trebuie mai intai sa demolati gara
##id 0x1800
-STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Mai întâi trebuie demolatã soseaua
+STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Mai întâi trebuie înlăturată şoseaua
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Lucrari la drum in curs de desfasurare
-STR_1802_ROAD_CONSTRUCTION :{WHITE}Constructii rutiere
+STR_1802_ROAD_CONSTRUCTION :{WHITE}Construcţii rutiere
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Construcţie Tramvai
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Alege pod rutier
-STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Nu pot construi sosea aici...
-STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Nu pot demola soseaua...
+STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Nu pot construi ÅŸosea aici...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Nu pot construi şină de tramvai aici...
+STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Nu pot înlătura şoseaua...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Nu pot înlătura şina de tramvai de aici...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Orientarea autobazei
-STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Nu pot construi autobazã aici...
-STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Nu pot construi statie de autobuz...
-STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Nu pot construi platformã pentru camioane...
-STR_180A_ROAD_CONSTRUCTION :Constructii rutiere
-STR_180B_BUILD_ROAD_SECTION :{BLACK}Construieste sectiune de sosea
-STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Construieste o autobazã (pentru construire/service autovehicule)
-STR_180D_BUILD_BUS_STATION :{BLACK}Plaseazã statie de autobuz
-STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Construieste platformã pentru camioane
-STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Construieste pod rutier
-STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Construieste tunel rutier
-STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Comutator pentru constructie/demolare sosele
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Orientarea Depoului de Tramvaie
+STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Nu pot construi autobază aici...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Nu pot construi depou de tramvaie aici...
+STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Nu pot construi staţie de autobuz...
+STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Nu pot construi platformă pentru camioane...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Nu pot construi staţie de tramvai aici...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Nu pot construi staţie de tramvai aici...
+STR_180A_ROAD_CONSTRUCTION :Construcţii rutiere
+STR_180A_TRAMWAY_CONSTRUCTION :Construcţie tramvai
+STR_180B_BUILD_ROAD_SECTION :{BLACK}Construieşte secţiune de şosea
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Construcieşte şină de tramvai
+STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Construieşte o autobază (pentru construire şi întreţinere de autovehicule)
+STR_180D_BUILD_BUS_STATION :{BLACK}Plasează staţie de autobuz
+STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Construieşte platformă pentru camioane
+STR_180F_BUILD_ROAD_BRIDGE :{BLACK}ConstruieÅŸte pod rutier
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}ConstruieÅŸte pod pentru tramvaie
+STR_1810_BUILD_ROAD_TUNNEL :{BLACK}ConstruieÅŸte tunel rutier
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}ConstruieÅŸte tunel pentru tramvaie
+STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Comutator pentru construcţie/înlăturare şosele
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Alege orientarea autobazei
-STR_1814_ROAD :Stradã
-STR_1815_ROAD_WITH_STREETLIGHTS :Stradã iluminatã
-STR_1816_TREE_LINED_ROAD :Stradã cu copaci pe margine
-STR_1817_ROAD_VEHICLE_DEPOT :Autobazã
-STR_1818_ROAD_RAIL_LEVEL_CROSSING :Traversare la nivel cu calea feratã
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Alege orientarea depoului de tramvaie
+STR_1814_ROAD :Åžosea
+STR_1815_ROAD_WITH_STREETLIGHTS :Stradă iluminată
+STR_1816_TREE_LINED_ROAD :Stradă cu copaci pe margine
+STR_1817_ROAD_VEHICLE_DEPOT :Autobază
+STR_1818_ROAD_RAIL_LEVEL_CROSSING :Trecere la nivel cu calea ferată
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Nu pot elimina statia de autobus...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Nu pot elimina statia de camioane...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Nu pot înlătura staţia de tramvai...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Nu pot înlătura staţia de tramvai...
##id 0x2000
-STR_2000_TOWNS :{WHITE}Orase
+STR_2000_TOWNS :{WHITE}OraÅŸe
STR_TOWN_LABEL_POP :{WHITE}{TOWN} ({COMMA})
STR_TOWN_LABEL :{WHITE}{TOWN}
STR_TOWN_LABEL_TINY_BLACK :{TINYFONT}{BLACK}{TOWN}
STR_TOWN_LABEL_TINY_WHITE :{TINYFONT}{WHITE}{TOWN}
STR_2002 :{TINYFONT}{BLACK}{STRING}
-STR_2004_BUILDING_MUST_BE_DEMOLISHED :{WHITE}Mai întâi trebuie sã demolezi clãdirea
+STR_2004_BUILDING_MUST_BE_DEMOLISHED :{WHITE}Mai întâi trebuie demolată clădirea
STR_2005 :{WHITE}{TOWN}
-STR_2006_POPULATION :{BLACK}Populatia: {ORANGE}{COMMA}{BLACK} Locuinte: {ORANGE}{COMMA}
-STR_2007_RENAME_TOWN :Redenumire
-STR_2008_CAN_T_RENAME_TOWN :{WHITE}Nu pot redenumi orasul...
-STR_2009_LOCAL_AUTHORITY_REFUSES :{WHITE}Autoritãtile locale din {TOWN} refuzã sã permitã acest lucru
-STR_200A_TOWN_NAMES_CLICK_ON_NAME :{BLACK}Numele oraselor - clic pe un nume pentru a centra imaginea pe orasul respectiv
-STR_200B_CENTER_THE_MAIN_VIEW_ON :{BLACK}Mutã imaginea pe locatia orasului
-STR_200C_CHANGE_TOWN_NAME :{BLACK}Schimbã numele orasului
-STR_200D_PASSENGERS_LAST_MONTH_MAX :{BLACK}Calatori luna trecuta: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA}
-STR_200E_MAIL_LAST_MONTH_MAX :{BLACK}Colete postale luna trecuta: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA}
-STR_200F_TALL_OFFICE_BLOCK :Clãdire înaltã de birouri
-STR_2010_OFFICE_BLOCK :Clãdire de birouri
-STR_2011_SMALL_BLOCK_OF_FLATS :Clãdire micã de birouri
-STR_2012_CHURCH :Bisericã
-STR_2013_LARGE_OFFICE_BLOCK :Clãdire mare de birouri
+STR_2006_POPULATION :{BLACK}Populaţia: {ORANGE}{COMMA}{BLACK} Locuinţe: {ORANGE}{COMMA}
+STR_2007_RENAME_TOWN :Redenumire oraÅŸ
+STR_2008_CAN_T_RENAME_TOWN :{WHITE}Nu pot redenumi oraÅŸul...
+STR_2009_LOCAL_AUTHORITY_REFUSES :{WHITE}Autorităţile locale din {TOWN} refuză să permită această acţiune
+STR_200A_TOWN_NAMES_CLICK_ON_NAME :{BLACK}Numele oraÅŸelor - clic pe un nume pentru a centra imaginea pe oraÅŸul respectiv
+STR_200B_CENTER_THE_MAIN_VIEW_ON :{BLACK}Mută imaginea pe locaţia oraşului
+STR_200C_CHANGE_TOWN_NAME :{BLACK}Schimbă numele oraşului
+STR_200D_PASSENGERS_LAST_MONTH_MAX :{BLACK}Călători luna trecută: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA}
+STR_200E_MAIL_LAST_MONTH_MAX :{BLACK}Colete poştale luna trecută: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA}
+STR_200F_TALL_OFFICE_BLOCK :Clădire înaltă de birouri
+STR_2010_OFFICE_BLOCK :Clădire de birouri
+STR_2011_SMALL_BLOCK_OF_FLATS :Bloc mic de apartamente
+STR_2012_CHURCH :Biserică
+STR_2013_LARGE_OFFICE_BLOCK :Clădire mare de birouri
STR_2014_TOWN_HOUSES :Case
STR_2015_HOTEL :Hotel
STR_2016_STATUE :Statuie
-STR_2017_FOUNTAIN :Fântânã
+STR_2017_FOUNTAIN :Fântână
STR_2018_PARK :Parc
-STR_2019_OFFICE_BLOCK :Clãdire de birouri
-STR_201A_SHOPS_AND_OFFICES :Magazine si birouri
-STR_201B_MODERN_OFFICE_BUILDING :Clãdire modernã de birouri
+STR_2019_OFFICE_BLOCK :Clădire de birouri
+STR_201A_SHOPS_AND_OFFICES :Magazine ÅŸi birouri
+STR_201B_MODERN_OFFICE_BUILDING :Clădire modernă de birouri
STR_201C_WAREHOUSE :Depozit
STR_201D_OFFICE_BLOCK :Bloc de birouri
STR_201E_STADIUM :Stadion
STR_201F_OLD_HOUSES :Case vechi
-STR_2020_LOCAL_AUTHORITY :{BLACK}Autoritate loc.
-STR_2021_SHOW_INFORMATION_ON_LOCAL :{BLACK}Afiseazã informatii referitoare la autoritatea localã
-STR_2022_LOCAL_AUTHORITY :{WHITE}Autoritatea localã din {TOWN}
-STR_2023_TRANSPORT_COMPANY_RATINGS :{BLACK}Ratingul companiilor de transport:
+STR_2020_LOCAL_AUTHORITY :{BLACK}Autoritate locală
+STR_2021_SHOW_INFORMATION_ON_LOCAL :{BLACK}Afişează informaţii referitoare la autoritatea locală
+STR_2022_LOCAL_AUTHORITY :{WHITE}Autoritatea locală din {TOWN}
+STR_2023_TRANSPORT_COMPANY_RATINGS :{BLACK}Evaluarea companiilor de transport:
STR_2024 :{YELLOW}{COMPANY}{PLAYERNAME}: {ORANGE}{STRING}
-STR_2025_SUBSIDIES :{WHITE}Subventii (F6)
-STR_2026_SUBSIDIES_ON_OFFER_FOR :{BLACK}Subventii disponibile:
+STR_2025_SUBSIDIES :{WHITE}Subvenţii (F6)
+STR_2026_SUBSIDIES_ON_OFFER_FOR :{BLACK}Subvenţii disponibile:
STR_2027_FROM_TO :{ORANGE}- {STRING} de la {STRING} la {STRING}
-STR_2028_BY :{YELLOW} (data limitã: {DATE_SHORT})
+STR_2028_BY :{YELLOW} (data limită: {DATE_SHORT})
STR_202A_NONE :{ORANGE}- nici una
-STR_202B_SERVICES_ALREADY_SUBSIDISED :{BLACK}Subventii acordate la ora actualã:
+STR_202B_SERVICES_ALREADY_SUBSIDISED :{BLACK}Subvenţii acordate la ora actuală:
STR_202C_FROM_TO :{ORANGE}- {STRING} de la {STATION} la {STATION}{YELLOW} ({COMPANY}
-STR_202D_UNTIL :{YELLOW}, pânã în {DATE_SHORT})
-STR_202E_OFFER_OF_SUBSIDY_EXPIRED :{BLACK}{BIGFONT}Ofertã expiratã:{}{}Transportul de {STRING} de la {STRING} la {STRING} nu va mai fi subventionat
-STR_202F_SUBSIDY_WITHDRAWN_SERVICE :{BLACK}{BIGFONT}Ofertã închisã:{}{}Transportul de {STRING} de la {STATION} la {STATION} nu va mai fi subventionat
-STR_2030_SERVICE_SUBSIDY_OFFERED :{BLACK}{BIGFONT}Subventie oferitã:{}{}Primul transport de {STRING} de la {STRING} la {STRING} va atrage subventionarea pe un an din partea autoritãtilor locale
-STR_2031_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Subventie acordatã companiei {COMPANY}!{}{}Transportul de {STRING} de la {STATION} la {STATION} va aduce încasãri cu 50% mai mari timp de un an!
-STR_2032_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Subventie acordatã companiei {COMPANY}!{}{}Transportul de {STRING} de la {STATION} la {STATION} va aduce încasãri duble timp de un an!
-STR_2033_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Subventie acordatã companiei {COMPANY}!{}{}Transportul de {STRING} de la {STATION} la {STATION} va aduce încasãri triple timp de un an!
-STR_2034_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Subventie acordatã companiei {COMPANY}!{}{}Transportul de {STRING} de la {STATION} la {STATION} va aduce încasãri de patru ori mai mari timp de un an!
-STR_2035_LOCAL_AUTHORITY_REFUSES :{WHITE}Autoritatea localã din {TOWN} refuzã sã permitã construirea unui nou aeroport în acest oras
-STR_2036_COTTAGES :Cãsute
+STR_202D_UNTIL :{YELLOW}, până în {DATE_SHORT})
+STR_202E_OFFER_OF_SUBSIDY_EXPIRED :{BLACK}{BIGFONT}Ofertă expirată:{}{}Transportul de {STRING} de la {STRING} la {STRING} nu va mai primi subvenţie
+STR_202F_SUBSIDY_WITHDRAWN_SERVICE :{BLACK}{BIGFONT}Ofertă închisă:{}{}Transportul de {STRING} de la {STATION} la {STATION} nu va mai fi subvenţionat
+STR_2030_SERVICE_SUBSIDY_OFFERED :{BLACK}{BIGFONT}Subvenţie oferită:{}{}Primul transport de {STRING} de la {STRING} la {STRING} va primi o subvenţie pe un an din partea autorităţilor locale
+STR_2031_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Subvenţie acordată companiei {COMPANY}!{}{}Transportul de {STRING} de la {STATION} la {STATION} va aduce încasări cu 50% mai mari timp de un an!
+STR_2032_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Subvenţie acordată companiei {COMPANY}!{}{}Transportul de {STRING} de la {STATION} la {STATION} va aduce încasări duble timp de un an!
+STR_2033_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Subvenţie acordată companiei {COMPANY}!{}{}Transportul de {STRING} de la {STATION} la {STATION} va aduce încasări triple timp de un an!
+STR_2034_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Subvenţie acordată companiei {COMPANY}!{}{}Transportul de {STRING} de la {STATION} la {STATION} va aduce încasări de patru ori mai mari timp de un an!
+STR_2035_LOCAL_AUTHORITY_REFUSES :{WHITE}Autoritatea locală din {TOWN} refuză să permită construirea unui nou aeroport în acest oraş
+STR_2036_COTTAGES :Căsuţe
STR_2037_HOUSES :Case
STR_2038_FLATS :Blocuri
-STR_2039_TALL_OFFICE_BLOCK :Clãdire înaltã de birouri
-STR_203A_SHOPS_AND_OFFICES :Magazine si birouri
-STR_203B_SHOPS_AND_OFFICES :Magazine si birouri
+STR_2039_TALL_OFFICE_BLOCK :Clădire înaltă de birouri
+STR_203A_SHOPS_AND_OFFICES :Magazine ÅŸi birouri
+STR_203B_SHOPS_AND_OFFICES :Magazine ÅŸi birouri
STR_203C_THEATER :Teatru
STR_203D_STADIUM :Stadion
STR_203E_OFFICES :Birouri
STR_203F_HOUSES :Case
-STR_2040_CINEMA :Cinema
+STR_2040_CINEMA :Cinematograf
STR_2041_SHOPPING_MALL :Centru comercial
STR_2042_DO_IT :{BLACK}Alege
-STR_2043_LIST_OF_THINGS_TO_DO_AT :{BLACK}Lista de actiuni disponibile pentru acest oras - clic pe fiecare pentru mai multe detalii
-STR_2044_CARRY_OUT_THE_HIGHLIGHTED :{BLACK}Activeazã actiunea selectatã din listã
-STR_2045_ACTIONS_AVAILABLE :{BLACK}Actiuni disponibile:
-STR_2046_SMALL_ADVERTISING_CAMPAIGN :Campanie publicitarã micã
-STR_2047_MEDIUM_ADVERTISING_CAMPAIGN :Campanie publicitarã medie
-STR_2048_LARGE_ADVERTISING_CAMPAIGN :Campanie publicitarã mare
-STR_2049_FUND_LOCAL_ROAD_RECONSTRUCTION :Finanteazã reconstructia strãzilor
-STR_204A_BUILD_STATUE_OF_COMPANY :Ridicã un monument dedicat presedintelui companiei
-STR_204B_FUND_NEW_BUILDINGS :Finanteazã constructia de noi clãdiri
-STR_204C_BUY_EXCLUSIVE_TRANSPORT :Cumpãrã drepturile exclusive de transport
+STR_2043_LIST_OF_THINGS_TO_DO_AT :{BLACK}Lista de acţiuni disponibile pentru acest oraş - clic pe fiecare pentru mai multe detalii
+STR_2044_CARRY_OUT_THE_HIGHLIGHTED :{BLACK}Activează acţiunea selectată din listă
+STR_2045_ACTIONS_AVAILABLE :{BLACK}Acţiuni disponibile:
+STR_2046_SMALL_ADVERTISING_CAMPAIGN :Campanie publicitară mică
+STR_2047_MEDIUM_ADVERTISING_CAMPAIGN :Campanie publicitară medie
+STR_2048_LARGE_ADVERTISING_CAMPAIGN :Campanie publicitară mare
+STR_2049_FUND_LOCAL_ROAD_RECONSTRUCTION :Finanţează reconstrucţia străzilor
+STR_204A_BUILD_STATUE_OF_COMPANY :Ridică un monument dedicat preşedintelui companiei
+STR_204B_FUND_NEW_BUILDINGS :Finanţează construcţia de noi clădiri
+STR_204C_BUY_EXCLUSIVE_TRANSPORT :Cumpără drepturi exclusive de transport
STR_TOWN_BRIBE_THE_LOCAL_AUTHORITY :Mituieste autoritatea localã
-STR_204D_INITIATE_A_SMALL_LOCAL :{WHITE}{STRING}{}{YELLOW} Initiazã o campanie publicitarã micã pentru a atrage mai multi pasageri si mai multe mãrfuri spre compania ta.{} Cost: {CURRENCY}
-STR_204E_INITIATE_A_MEDIUM_LOCAL :{WHITE}{STRING}{}{YELLOW} Initiazã o campanie publicitarã medie pentru a atrage mai multi pasageri si mai multe mãrfuri spre compania ta.{} Cost: {CURRENCY}
-STR_204F_INITIATE_A_LARGE_LOCAL :{WHITE}{STRING}{}{YELLOW} Initiazã o mare campanie publicitarã pentru a atrage mai multi pasageri si mai multe mãrfuri spre compania ta.{} Cost: {CURRENCY}
-STR_2050_FUND_THE_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW} Finanteazã reconstructia strãzilor locale. Acest lucru cauzeazã devieri majore ale traficului rutier timp de 6 luni.{} Cost: {CURRENCY}
-STR_2051_BUILD_A_STATUE_IN_HONOR :{WHITE}{STRING}{}{YELLOW} Înaltã o statuie în cinstea companiei tale.{} Cost: {CURRENCY}
-STR_2052_FUND_THE_CONSTRUCTION_OF :{WHITE}{STRING}{}{YELLOW} Finanteazã constructia de noi clãdiri comerciale în oras.{} Cost: {CURRENCY}
-STR_2053_BUY_1_YEAR_S_EXCLUSIVE :{WHITE}{STRING}{}{YELLOW} Cumpãrã drepturile exclusive în acest oras pe o perioadã de un an. Autoritãtile locale vor folosi doar compania ta pentru transportul de pasageri si mãrfuri.{} Cost: {CURRENCY}
+STR_204D_INITIATE_A_SMALL_LOCAL :{WHITE}{STRING}{}{YELLOW} Iniţiază o campanie publicitară mică pentru a atrage mai mulţi călători şi mai multe mărfuri spre compania ta.{} Cost: {CURRENCY}
+STR_204E_INITIATE_A_MEDIUM_LOCAL :{WHITE}{STRING}{}{YELLOW} Iniţiază o campanie publicitară medie pentru a atrage mai mulţi călători şi mai multe mărfuri spre compania ta.{} Cost: {CURRENCY}
+STR_204F_INITIATE_A_LARGE_LOCAL :{WHITE}{STRING}{}{YELLOW} Iniţiază o mare campanie publicitară pentru a atrage mai mulţi călători şi mai multe mărfuri spre compania ta.{} Cost: {CURRENCY}
+STR_2050_FUND_THE_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW} Finanţează reconstrucţia străzilor locale. Acest lucru cauzează perturbări majore ale traficului rutier timp de până la 6 luni.{} Cost: {CURRENCY}
+STR_2051_BUILD_A_STATUE_IN_HONOR :{WHITE}{STRING}{}{YELLOW} Înalţă o statuie în cinstea companiei tale.{} Cost: {CURRENCY}
+STR_2052_FUND_THE_CONSTRUCTION_OF :{WHITE}{STRING}{}{YELLOW} Finanţează construcţia de noi clădiri comerciale în oraş.{} Cost: {CURRENCY}
+STR_2053_BUY_1_YEAR_S_EXCLUSIVE :{WHITE}{STRING}{}{YELLOW} Cumpără drepturi exclusive în acest oraş pe o perioadă de un an. Autorităţile locale vor permite doar companiei tale să transporte călători şi mărfuri.{} Cost: {CURRENCY}
STR_TOWN_BRIBE_THE_LOCAL_AUTHORITY_DESC :{WHITE}{STRING}{}{YELLOW} Mituieste autoritãtile locale pentru a-ti îmbunãtãti ratingul, dar cu riscul de a fi prins si de a plãti amenzi serioase.{} Cost: {CURRENCY}
-STR_2055_TRAFFIC_CHAOS_IN_ROAD_REBUILDING :{BIGFONT}{BLACK}Haos pe strãzile din {TOWN}!{}{}Programul finantat de {COMPANY} pentru reconstructia strãzilor, aduce 6 luni de haos participantilor la trafic!
+STR_2055_TRAFFIC_CHAOS_IN_ROAD_REBUILDING :{BIGFONT}{BLACK}Haos pe străzile din {TOWN}!{}{}Programul finanţat de {COMPANY} pentru reconstrucţia străzilor aduce 6 luni de haos participanţilor la trafic!
STR_2056 :{TINYFONT}{WHITE}{TOWN}
STR_2057 :{ORANGE}{TOWN}{BLACK} ({COMMA})
-STR_2058_UNDER_CONSTRUCTION :{STRING} (în constructie)
+STR_2058_UNDER_CONSTRUCTION :{STRING} (în construcţie)
STR_2059_IGLOO :Iglu
STR_205A_TEPEES :Corturi
-STR_205B_TEAPOT_HOUSE :Casã-ceainic
-STR_205C_PIGGY_BANK :Pusculitã
+STR_205B_TEAPOT_HOUSE :Casă-ceainic
+STR_205C_PIGGY_BANK :Puşculiţă
STR_INDUSTRY :{INDUSTRY}
STR_TOWN :{TOWN}
@@ -1720,50 +1738,50 @@
##id 0x2800
STR_LANDSCAPING :Modificare peisaj
-STR_2800_PLANT_TREES :Planteazã arbori
-STR_2801_PLACE_SIGN :Plaseazã semn
+STR_2800_PLANT_TREES :Plantează arbori
+STR_2801_PLACE_SIGN :Plasează semn
STR_2802_TREES :{WHITE}Arbori
-STR_2803_TREE_ALREADY_HERE :{WHITE}...sunt deja plantati arbori
-STR_2804_SITE_UNSUITABLE :{WHITE}...locatie nepotrivitã
+STR_2803_TREE_ALREADY_HERE :{WHITE}...sunt deja plantaţi arbori
+STR_2804_SITE_UNSUITABLE :{WHITE}...locaţie nepotrivită
STR_2805_CAN_T_PLANT_TREE_HERE :{WHITE}Nu pot planta arbori aici...
STR_2806 :{WHITE}{STRING}
STR_2808_TOO_MANY_SIGNS :{WHITE}...prea multe semne
STR_2809_CAN_T_PLACE_SIGN_HERE :{WHITE}Nu pot plasa un semn aici...
STR_280A_SIGN :Semn
-STR_280B_EDIT_SIGN_TEXT :{WHITE}Editeazã textul semnului
+STR_280B_EDIT_SIGN_TEXT :{WHITE}Editează textul semnului
STR_280C_CAN_T_CHANGE_SIGN_NAME :{WHITE}Nu pot schimba numele semnului...
-STR_280D_SELECT_TREE_TYPE_TO_PLANT :{BLACK}Alege specia de arbori plantati
+STR_280D_SELECT_TREE_TYPE_TO_PLANT :{BLACK}Alege specia de arbori de plantat
STR_280E_TREES :Arbori
-STR_280F_RAINFOREST :Pãdure tropicalã
-STR_2810_CACTUS_PLANTS :Cactusi
+STR_280F_RAINFOREST :Pădure tropicală
+STR_2810_CACTUS_PLANTS :CactuÅŸi
##id 0x3000
-STR_3000_RAIL_STATION_SELECTION :{WHITE}Alege tipul de garã
+STR_3000_RAIL_STATION_SELECTION :{WHITE}Alege tipul de gară
STR_3001_AIRPORT_SELECTION :{WHITE}Alege tipul de aeroport
STR_3002_ORIENTATION :{BLACK}Orientarea
-STR_3003_NUMBER_OF_TRACKS :{BLACK}Numãr de linii
+STR_3003_NUMBER_OF_TRACKS :{BLACK}Număr de linii
STR_3004_PLATFORM_LENGTH :{BLACK}Lungimea liniilor
-STR_3005_TOO_CLOSE_TO_ANOTHER_RAILROAD :{WHITE}Prea aproape de altã garã
-STR_3006_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Este adiacentã mai multor statii
-STR_3007_TOO_MANY_STATIONS_LOADING :{WHITE}Prea multe statii in acest oras
-STR_3008_TOO_MANY_STATIONS_LOADING :{WHITE}Prea multe statii
-STR_3008A_TOO_MANY_BUS_STOPS :{WHITE}Prea multe statii de autobuz
-STR_3008B_TOO_MANY_TRUCK_STOPS :{WHITE}Prea multe statii de camion
-STR_3009_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Prea aproape de altã statie
+STR_3005_TOO_CLOSE_TO_ANOTHER_RAILROAD :{WHITE}Prea aproape de altă gară
+STR_3006_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Este adiacentă mai multor staţii
+STR_3007_TOO_MANY_STATIONS_LOADING :{WHITE}Prea multe staţii în acest oraş
+STR_3008_TOO_MANY_STATIONS_LOADING :{WHITE}Prea multe staţii
+STR_3008A_TOO_MANY_BUS_STOPS :{WHITE}Prea multe staţii de autobuz
+STR_3008B_TOO_MANY_TRUCK_STOPS :{WHITE}Prea multe staţii de camion
+STR_3009_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Prea aproape de altă staţie
STR_300A_0 :{WHITE}{STATION} {STATIONFEATURES}
-STR_300B_MUST_DEMOLISH_RAILROAD :{WHITE}Mai întâi trebuie demolatã gara
+STR_300B_MUST_DEMOLISH_RAILROAD :{WHITE}Mai întâi trebuie demolată gara
STR_300D_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Prea aproape de alt aeroport
STR_300E_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Mai întâi trebuie demolat aeroportul
-STR_3030_RENAME_STATION_LOADING :Redenumeste statia
-STR_3031_CAN_T_RENAME_STATION :{WHITE}Nu pot redenumi statia...
-STR_3032_RATINGS :{BLACK}Ratinguri
-STR_3033_ACCEPTS :{BLACK}Acceptã
-STR_3034_LOCAL_RATING_OF_TRANSPORT :{BLACK}Ratingul serviciilor de transport local:
+STR_3030_RENAME_STATION_LOADING :Redenumeşte staţia
+STR_3031_CAN_T_RENAME_STATION :{WHITE}Nu pot redenumi staţia...
+STR_3032_RATINGS :{BLACK}Evaluări
+STR_3033_ACCEPTS :{BLACK}Acceptă
+STR_3034_LOCAL_RATING_OF_TRANSPORT :{BLACK}Evaluarea serviciilor de transport local:
############ range for rating starts
STR_3035_APPALLING :Deplorabil
-STR_3036_VERY_POOR :Foarte scãzut
+STR_3036_VERY_POOR :Foarte scăzut
STR_3037_POOR :Slab
STR_3038_MEDIOCRE :Mediocru
STR_3039_GOOD :Bun
@@ -1773,47 +1791,53 @@
############ range for rating ends
STR_303D :{WHITE}{STRING}: {YELLOW}{STRING} ({COMMA}%)
-STR_303E_NO_LONGER_ACCEPTS :{WHITE}{STATION} nu mai acceptã {STRING}
-STR_303F_NO_LONGER_ACCEPTS_OR :{WHITE}{STATION} nu mai acceptã {STRING} sau {STRING}
-STR_3040_NOW_ACCEPTS :{WHITE}{STATION} acceptã acum {STRING}
-STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} acceptã acum {STRING} si {STRING}
-STR_3042_BUS_STATION_ORIENTATION :{WHITE}Orientarea statiei
-STR_3043_TRUCK_STATION_ORIENT :{WHITE}Orientarea statiei
-STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Mai intâi trebuie demolatã statia de autbuz
-STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Mai intâi trebuie demolatã platforma pentru camioane
-STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Statii
+STR_303E_NO_LONGER_ACCEPTS :{WHITE}{STATION} nu mai acceptă {STRING}
+STR_303F_NO_LONGER_ACCEPTS_OR :{WHITE}{STATION} nu mai acceptă {STRING} sau {STRING}
+STR_3040_NOW_ACCEPTS :{WHITE}{STATION} acceptă acum {STRING}
+STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} acceptă acum {STRING} si {STRING}
+STR_3042_BUS_STATION_ORIENTATION :{WHITE}Orientarea staţiei
+STR_3043_TRUCK_STATION_ORIENT :{WHITE}Orientarea platformei de camioane
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Orientarea staţiei de tramvai pentru călători
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Orientarea staţiei de tramvai pentru marfă
+STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Mai întâi trebuie demolată staţia de autobuz
+STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Mai întâi trebuie demolată platforma pentru camioane
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Mai întâi trebuie demolată staţia de tramvai
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Mai întâi trebuie demolată staţia de tramvai
+STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Staţi{P e i}
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- Nici una -
-STR_304B_SITE_UNSUITABLE :{WHITE}...locatie nepotrivitã
+STR_304B_SITE_UNSUITABLE :{WHITE}...locaţie nepotrivită
STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Prea aproape de alt port
-STR_304D_MUST_DEMOLISH_DOCK_FIRST :{WHITE}Mai intai trebuie demolat portul
-STR_304E_SELECT_RAILROAD_STATION :{BLACK}Alege orientarea gãrii
-STR_304F_SELECT_NUMBER_OF_PLATFORMS :{BLACK}Alege numãrul de linii al gãrii
-STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Alege lungimea liniilor gãrii
-STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Alege orientarea statiei de autobuz
+STR_304D_MUST_DEMOLISH_DOCK_FIRST :{WHITE}Mai întâi trebuie demolat portul
+STR_304E_SELECT_RAILROAD_STATION :{BLACK}Alege orientarea gării
+STR_304F_SELECT_NUMBER_OF_PLATFORMS :{BLACK}Alege numărul de linii al gării
+STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Alege lungimea liniilor gării
+STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Alege orientarea staţiei de autobuz
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Alege orientarea platformei pentru camioane
-STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Centreazã imaginea pe locatia statiei
-STR_3054_SHOW_STATION_RATINGS :{BLACK}Afiseazã ratingurile statiei
-STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Schimbã numele statiei
-STR_3056_SHOW_LIST_OF_ACCEPTED_CARGO :{BLACK}Afiseazã lista de încarcãturi acceptate
-STR_3057_STATION_NAMES_CLICK_ON :{BLACK}Numele statiilor - clic pe un nume pentru a centra imaginea pe statia respectivã
-STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT :{BLACK}Alege tipul de aeroport
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Alege orientarea staţiei de tramvai
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Alege orientarea staţiei de tramvai
+STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Centrează imaginea pe locaţia staţiei
+STR_3054_SHOW_STATION_RATINGS :{BLACK}Afişează evaluările staţiei
+STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Schimbă numele staţiei
+STR_3056_SHOW_LIST_OF_ACCEPTED_CARGO :{BLACK}Afişează lista de încărcături acceptate
+STR_3057_STATION_NAMES_CLICK_ON :{BLACK}Numele staţiilor - clic pe un nume pentru a centra imaginea pe staţia respectivă
+STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT :{BLACK}Alege tipul şi mărimea aeroportului
STR_305C_0 :{STATION} {STATIONFEATURES}
STR_STATION_SIGN_TINY :{TINYFONT}{STATION}
-STR_305E_RAILROAD_STATION :Garã
+STR_305E_RAILROAD_STATION :Gară
STR_305F_AIRCRAFT_HANGAR :Hangar
STR_3060_AIRPORT :Aeroport
-STR_3061_TRUCK_LOADING_AREA :Platformã pentru camioane
-STR_3062_BUS_STATION :Statie de autobuz
+STR_3061_TRUCK_LOADING_AREA :Platformă pentru camioane
+STR_3062_BUS_STATION :Staţie de autobuz
STR_3063_SHIP_DOCK :Port
-STR_3064_HIGHLIGHT_COVERAGE_AREA :{BLACK}Aratã aria de acoperire a locatiei propuse
-STR_3065_DON_T_HIGHLIGHT_COVERAGE :{BLACK}Nu arãta aria de acoperire a locatiei propuse
-STR_3066_COVERAGE_AREA_HIGHLIGHT :{BLACK}Aratã aria de acoperire
+STR_3064_HIGHLIGHT_COVERAGE_AREA :{BLACK}Arată aria de acoperire a locaţiei propuse
+STR_3065_DON_T_HIGHLIGHT_COVERAGE :{BLACK}Nu arăta aria de acoperire a locaţiei propuse
+STR_3066_COVERAGE_AREA_HIGHLIGHT :{BLACK}Aria de acoperire
STR_3068_DOCK :{WHITE}Port
-STR_3069_BUOY :Balizã
-STR_306A_BUOY_IN_THE_WAY :{WHITE}...balizã în cale
-STR_306C_STATION_TOO_SPREAD_OUT :{WHITE}...statie prea mare
-STR_306D_NONUNIFORM_STATIONS_DISALLOWED :{WHITE}...statii neuniforme dezactivat
+STR_3069_BUOY :Baliză
+STR_306A_BUOY_IN_THE_WAY :{WHITE}...baliză în cale
+STR_306C_STATION_TOO_SPREAD_OUT :{WHITE}...staţie prea mare
+STR_306D_NONUNIFORM_STATIONS_DISALLOWED :{WHITE}...staţiile neuniforme nu sunt permise
STR_USE_CTRL_TO_SELECT_MORE :{BLACK}Tine apãsat CTRL pentru a alege mai mult decât un obiect
STR_UNDEFINED :(sir nedefinit)
@@ -1821,75 +1845,75 @@
STR_STAT_CLASS_WAYP :Punct itinerar
##id 0x3800
-STR_3800_SHIP_DEPOT_ORIENTATION :{WHITE}Orientarea santierului naval
-STR_3801_MUST_BE_BUILT_ON_WATER :{WHITE}...trebuie construit pe apã
-STR_3802_CAN_T_BUILD_SHIP_DEPOT :{WHITE}Nu pot construi un santier naval aici...
-STR_3803_SELECT_SHIP_DEPOT_ORIENTATION :{BLACK}Alege orientarea santierului naval
-STR_3804_WATER :Apã
-STR_3805_COAST_OR_RIVERBANK :Mal/Coastã
-STR_3806_SHIP_DEPOT :Santier naval
-STR_3807_CAN_T_BUILD_ON_WATER :{WHITE}...Nu pot construi pe apã
+STR_3800_SHIP_DEPOT_ORIENTATION :{WHITE}Orientarea ÅŸantierului naval
+STR_3801_MUST_BE_BUILT_ON_WATER :{WHITE}...trebuie construit pe apă
+STR_3802_CAN_T_BUILD_SHIP_DEPOT :{WHITE}Nu pot construi un ÅŸantier naval aici...
+STR_3803_SELECT_SHIP_DEPOT_ORIENTATION :{BLACK}Alege orientarea ÅŸantierului naval
+STR_3804_WATER :Apă
+STR_3805_COAST_OR_RIVERBANK :Mal/Coastă
+STR_3806_SHIP_DEPOT :Åžantier naval
+STR_3807_CAN_T_BUILD_ON_WATER :{WHITE}...Nu pot construi pe apă
##id 0x4000
-STR_4000_SAVE_GAME :{WHITE}Salveazã joc
-STR_4001_LOAD_GAME :{WHITE}Încarcã joc
-STR_4002_SAVE :{BLACK}Salveazã
-STR_4003_DELETE :{BLACK}Sterge
+STR_4000_SAVE_GAME :{WHITE}Salvează joc
+STR_4001_LOAD_GAME :{WHITE}Încarcă joc
+STR_4002_SAVE :{BLACK}Salvează
+STR_4003_DELETE :{BLACK}Åžterge
STR_4004 :{COMPANY}, {DATE_LONG}
-STR_4005_BYTES_FREE :{BLACK}{COMMA} megabytes liberi
-STR_4006_UNABLE_TO_READ_DRIVE :{BLACK}Nu pot citi acest drive
-STR_4007_GAME_SAVE_FAILED :{WHITE}Salvarea jocului esuatã
-STR_4008_UNABLE_TO_DELETE_FILE :{WHITE}Stergerea jocului esuatã
-STR_4009_GAME_LOAD_FAILED :{WHITE}Încãrcarea jocului esuatã
-STR_400A_LIST_OF_DRIVES_DIRECTORIES :{BLACK}Lista de drive-uri, directoare si fisiere cu jocuri salvate
+STR_4005_BYTES_FREE :{BLACK}{COMMA} megabyte{P "" s} liberi
+STR_4006_UNABLE_TO_READ_DRIVE :{BLACK}Nu pot citi acest disc
+STR_4007_GAME_SAVE_FAILED :{WHITE}Salvarea jocului eşuată
+STR_4008_UNABLE_TO_DELETE_FILE :{WHITE}Ştergerea jocului eşuată
+STR_4009_GAME_LOAD_FAILED :{WHITE}Încărcarea jocului eşuată
+STR_400A_LIST_OF_DRIVES_DIRECTORIES :{BLACK}Lista de discuri, directoare ÅŸi fiÅŸiere cu jocuri salvate
STR_400B_CURRENTLY_SELECTED_NAME :{BLACK}Numele selectat pentru un joc salvat
-STR_400C_DELETE_THE_CURRENTLY_SELECTED :{BLACK}Sterge jocul salvat selectat
-STR_400D_SAVE_THE_CURRENT_GAME_USING :{BLACK}Salveazã cu numele selectat jocul curent
+STR_400C_DELETE_THE_CURRENTLY_SELECTED :{BLACK}Åžterge jocul salvat selectat
+STR_400D_SAVE_THE_CURRENT_GAME_USING :{BLACK}Salvează cu numele selectat jocul curent
STR_400E_SELECT_NEW_GAME_TYPE :{WHITE}Alege tipul noului joc
-STR_400F_SELECT_SCENARIO_GREEN_PRE :{BLACK}Alege un scenariu (verde), joc predefinit (albastru) sau o hartã aleatoare
-STR_4010_GENERATE_RANDOM_NEW_GAME :Genereazã o hartã aleatoare
-STR_4011_LOAD_HEIGHTMAP :{WHITE}Incarca harta inaltimilor
+STR_400F_SELECT_SCENARIO_GREEN_PRE :{BLACK}Alege un scenariu (verde), un joc predefinit (albastru) sau o hartă aleatoare
+STR_4010_GENERATE_RANDOM_NEW_GAME :Generează o hartă aleatoare
+STR_4011_LOAD_HEIGHTMAP :{WHITE}Încarcă harta înălţimilor
##id 0x4800
STR_4800_IN_THE_WAY :{WHITE}{STRING} în cale
STR_4801 :{WHITE}{INDUSTRY}
-STR_4802_COAL_MINE :Minã de cãrbune
-STR_4803_POWER_STATION :Termocentralã
-STR_4804_SAWMILL :Exploatatie forestierã
-STR_4805_FOREST :Pãdure
-STR_4806_OIL_REFINERY :Rafinãrie
-STR_4807_OIL_RIG :Platformã petrolierã
-STR_4808_FACTORY :Fabricã de conserve
+STR_4802_COAL_MINE :Mină de cărbune
+STR_4803_POWER_STATION :Termocentrală
+STR_4804_SAWMILL :Exploataţie forestieră
+STR_4805_FOREST :Pădure
+STR_4806_OIL_REFINERY :Rafinărie
+STR_4807_OIL_RIG :Platformă petrolieră
+STR_4808_FACTORY :Fabrică de conserve
STR_4809_PRINTING_WORKS :Tipografie
-STR_480A_STEEL_MILL :Otelãrie
-STR_480B_FARM :Fermã
-STR_480C_COPPER_ORE_MINE :Minã de cupru
-STR_480D_OIL_WELLS :Sonde
-STR_480E_BANK :Bancã
+STR_480A_STEEL_MILL :Oţelărie
+STR_480B_FARM :Fermă
+STR_480C_COPPER_ORE_MINE :Mină de cupru
+STR_480D_OIL_WELLS :Sonde de petrol
+STR_480E_BANK :Bancă
STR_480F_FOOD_PROCESSING_PLANT :Combinat alimentar
-STR_4810_PAPER_MILL :Fabricã de hârtie
-STR_4811_GOLD_MINE :Minã de aur
-STR_4812_BANK :Bancã
-STR_4813_DIAMOND_MINE :Minã de diamante
-STR_4814_IRON_ORE_MINE :Minã de fier
-STR_4815_FRUIT_PLANTATION :Livadã
-STR_4816_RUBBER_PLANTATION :Plantatie de cauciuc
+STR_4810_PAPER_MILL :Fabrică de hârtie
+STR_4811_GOLD_MINE :Mină de aur
+STR_4812_BANK :Bancă
+STR_4813_DIAMOND_MINE :Mină de diamante
+STR_4814_IRON_ORE_MINE :Mină de fier
+STR_4815_FRUIT_PLANTATION :Livadă
+STR_4816_RUBBER_PLANTATION :Plantaţie de cauciuc
STR_4817_WATER_SUPPLY :Rezervor
-STR_4818_WATER_TOWER :Turn de apã
-STR_4819_FACTORY :Fabricã de conserve
-STR_481A_FARM :Fermã
-STR_481B_LUMBER_MILL :Fabricã de cherestea
-STR_481C_COTTON_CANDY_FOREST :Pãdure de vatã de zahãr
-STR_481D_CANDY_FACTORY :Fabricã de bomboane
-STR_481E_BATTERY_FARM :Fermã de baterii
+STR_4818_WATER_TOWER :Turn de apă
+STR_4819_FACTORY :Fabrică de conserve
+STR_481A_FARM :Fermă
+STR_481B_LUMBER_MILL :Fabrică de cherestea
+STR_481C_COTTON_CANDY_FOREST :Pădure de vată de zahăr
+STR_481D_CANDY_FACTORY :Fabrică de bomboane
+STR_481E_BATTERY_FARM :Fermă de baterii
STR_481F_COLA_WELLS :Fântâni de cola
-STR_4820_TOY_SHOP :Magazin de jucãrii
-STR_4821_TOY_FACTORY :Fabricã de jucãrii
+STR_4820_TOY_SHOP :Magazin de jucării
+STR_4821_TOY_FACTORY :Fabrică de jucării
STR_4822_PLASTIC_FOUNTAINS :Fântâni de plastic
-STR_4823_FIZZY_DRINK_FACTORY :Fabricã de sucuri
-STR_4824_BUBBLE_GENERATOR :Generator de balonase
-STR_4825_TOFFEE_QUARRY :Carierã de caramel
-STR_4826_SUGAR_MINE :Minã de zahãr
+STR_4823_FIZZY_DRINK_FACTORY :Fabrică de sucuri
+STR_4824_BUBBLE_GENERATOR :Generator de balonaÅŸe
+STR_4825_TOFFEE_QUARRY :Carieră de caramel
+STR_4826_SUGAR_MINE :Mină de zahăr
############ range for requires starts
STR_4827_REQUIRES :{BLACK}Are nevoie de: {YELLOW}{STRING}
@@ -1897,75 +1921,75 @@
STR_4829_REQUIRES :{BLACK}Are nevoie de: {YELLOW}{STRING}, {STRING}, {STRING}
############ range for requires ends
-STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Productia luna trecutã:
+STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Producţia lunii trecute:
STR_482B_TRANSPORTED :{YELLOW}{CARGO}{BLACK} ({COMMA}% transportat)
-STR_482C_CENTER_THE_MAIN_VIEW_ON :{BLACK}Centreazã imaginea pe locatia industriei
-STR_482D_NEW_UNDER_CONSTRUCTION :{BLACK}{BIGFONT}Un nou obiectiv industrial ({STRING}) se construieste lângã {TOWN}!
-STR_482E_NEW_BEING_PLANTED_NEAR :{BLACK}{BIGFONT}O nouã {STRING} se planteazã lângã {TOWN}!
+STR_482C_CENTER_THE_MAIN_VIEW_ON :{BLACK}Centrează imaginea pe locaţia industriei
+STR_482D_NEW_UNDER_CONSTRUCTION :{BLACK}{BIGFONT}Un nou obiectiv industrial ({STRING}) se construieşte lângă {TOWN}!
+STR_482E_NEW_BEING_PLANTED_NEAR :{BLACK}{BIGFONT}O nouă {STRING} se plantează lângă {TOWN}!
STR_482F_COST :{BLACK}Cost: {YELLOW}{CURRENCY}
STR_4830_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}Acest tip de industrie nu se poate construi aici...
-STR_4831_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}...pãdurile pot fi plantate doar in zonele inzãpezite
-STR_4832_ANNOUNCES_IMMINENT_CLOSURE :{BLACK}{BIGFONT}{INDUSTRY} anuntã inchiderea iminentã!
-STR_4833_SUPPLY_PROBLEMS_CAUSE_TO :{BLACK}{BIGFONT}Problemele de aprovizionare provoacã închiderea {INDUSTRY}!
-STR_4834_LACK_OF_NEARBY_TREES_CAUSES :{BLACK}{BIGFONT}Lipsa de teren împãdurit provoacã închiderea {INDUSTRY}!
-STR_4835_INCREASES_PRODUCTION :{BLACK}{BIGFONT}{INDUSTRY} mãreste productia!
-STR_4836_NEW_COAL_SEAM_FOUND_AT :{BLACK}{BIGFONT}Rezerve noi de cãrbune la {INDUSTRY}!{}Se asteaptã dublarea productiei!
-STR_4837_NEW_OIL_RESERVES_FOUND :{BLACK}{BIGFONT}Rezerve noi de petrol la {INDUSTRY}!{}Se asteaptã dublarea productiei!
-STR_4838_IMPROVED_FARMING_METHODS :{BLACK}{BIGFONT}Noile tehnologii folosite la {INDUSTRY} vor aduce dublarea productiei!
-STR_4839_PRODUCTION_DOWN_BY_50 :{BLACK}{BIGFONT}{INDUSTRY} scade productia cu 50%
-STR_483A_INSECT_INFESTATION_CAUSES :{BLACK}{BIGFONT}Insectele cauzeazã distrugeri masive la {INDUSTRY}!{}Productia scade cu 50%
-STR_483B_CAN_ONLY_BE_POSITIONED :{WHITE}...se poate construi doar la marginea hãrtii
+STR_4831_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}...pădurile pot fi plantate doar în zonele înzăpezite
+STR_4832_ANNOUNCES_IMMINENT_CLOSURE :{BLACK}{BIGFONT}{INDUSTRY} anunţă închidere iminentă!
+STR_4833_SUPPLY_PROBLEMS_CAUSE_TO :{BLACK}{BIGFONT}Problemele de aprovizionare provoacă închiderea {INDUSTRY}!
+STR_4834_LACK_OF_NEARBY_TREES_CAUSES :{BLACK}{BIGFONT}Lipsa de teren împădurit provoacă închiderea {INDUSTRY}!
+STR_4835_INCREASES_PRODUCTION :{BLACK}{BIGFONT}{INDUSTRY} măreşte producţia!
+STR_4836_NEW_COAL_SEAM_FOUND_AT :{BLACK}{BIGFONT}Rezerve noi de cărbune la {INDUSTRY}!{}Se preconizează dublarea producţiei!
+STR_4837_NEW_OIL_RESERVES_FOUND :{BLACK}{BIGFONT}Rezerve noi de petrol la {INDUSTRY}!{}Se preconizează dublarea producţiei!
+STR_4838_IMPROVED_FARMING_METHODS :{BLACK}{BIGFONT}Noile tehnologii folosite la {INDUSTRY} vor aduce dublarea producţiei!
+STR_4839_PRODUCTION_DOWN_BY_50 :{BLACK}{BIGFONT}{INDUSTRY} scade producţia cu 50%
+STR_483A_INSECT_INFESTATION_CAUSES :{BLACK}{BIGFONT}Insectele cauzează distrugeri masive la {INDUSTRY}!{}Producţia scade cu 50%
+STR_483B_CAN_ONLY_BE_POSITIONED :{WHITE}...se poate construi doar la marginea hărţii
STR_INDUSTRY_PROD_GOUP :{BLACK}{BIGFONT}Productia de {STRING} de la {INDUSTRY} creste cu {COMMA}%!
STR_INDUSTRY_PROD_GODOWN :{BLACK}{BIGFONT}Productia de {STRING} de la {INDUSTRY} scade cu {COMMA}%!
##id 0x5000
STR_5000_TRAIN_IN_TUNNEL :{WHITE}Tren în tunel
-STR_5001_ROAD_VEHICLE_IN_TUNNEL :{WHITE}Autovehicul în tunnel
+STR_5001_ROAD_VEHICLE_IN_TUNNEL :{WHITE}Autovehicul în tunel
STR_5003_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Intersectare cu alt tunel
-STR_5005_UNABLE_TO_EXCAVATE_LAND :{WHITE}Terenul de la celãlalt capãt al tunelului este imposibil de excavat
-STR_5006_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Mai intâi trebuie demolat tunelul
-STR_5007_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Mai intâi trebuie demolat podul
-STR_5008_CANNOT_START_AND_END_ON :{WHITE}Cele douã capete nu se pot situa în acelasi loc
-STR_5009_LEVEL_LAND_OR_WATER_REQUIRED :{WHITE}Sub pod trebuie sã existe teren nivelat
-STR_500A_START_AND_END_MUST_BE_IN :{WHITE}Cele douã capete trebuie sã se situeze în linie
+STR_5005_UNABLE_TO_EXCAVATE_LAND :{WHITE}Terenul de la celălalt capăt al tunelului este imposibil de excavat
+STR_5006_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Mai întâi trebuie demolat tunelul
+STR_5007_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Mai întâi trebuie demolat podul
+STR_5008_CANNOT_START_AND_END_ON :{WHITE}Cele două capete nu se pot situa în acelaşi loc
+STR_5009_LEVEL_LAND_OR_WATER_REQUIRED :{WHITE}Sub pod trebuie să existe teren plat sau apă
+STR_500A_START_AND_END_MUST_BE_IN :{WHITE}Cele două capete trebuie să se situeze în linie
STR_500B_SITE_UNSUITABLE_FOR_TUNNEL :{WHITE}Loc nepotrivit pentru intrarea într-un tunel
STR_500D :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
-STR_500E_SUSPENSION_STEEL :Suspensie (otel)
-STR_500F_GIRDER_STEEL :Grindã (otel)
-STR_5010_CANTILEVER_STEEL :Arc (otel)
+STR_500E_SUSPENSION_STEEL :Suspensie (oţel)
+STR_500F_GIRDER_STEEL :Grindă (oţel)
+STR_5010_CANTILEVER_STEEL :Arc (oţel)
STR_5011_SUSPENSION_CONCRETE :Suspensie (beton)
STR_5012_WOODEN :Lemn
STR_5013_CONCRETE :Beton
-STR_5014_TUBULAR_STEEL :Tubular (otel)
+STR_5014_TUBULAR_STEEL :Tubular (oţel)
STR_BRIDGE_TUBULAR_SILICON :Tubular (silicon)
STR_5015_CAN_T_BUILD_BRIDGE_HERE :{WHITE}Nu pot construi pod aici...
STR_5016_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Nu pot construi tunel aici...
STR_5017_RAILROAD_TUNNEL :Tunel feroviar
STR_5018_ROAD_TUNNEL :Tunel rutier
-STR_501B_STEEL_SUSPENSION_RAIL_BRIDGE :Pod feroviar suspendat din otel
-STR_501C_STEEL_GIRDER_RAIL_BRIDGE :Pod feroviar tip grindã din otel
-STR_501D_STEEL_CANTILEVER_RAIL_BRIDGE :Pod feroviar tip arc din otel
+STR_501B_STEEL_SUSPENSION_RAIL_BRIDGE :Pod feroviar suspendat din oţel
+STR_501C_STEEL_GIRDER_RAIL_BRIDGE :Pod feroviar tip grindă din oţel
+STR_501D_STEEL_CANTILEVER_RAIL_BRIDGE :Pod feroviar tip arc din oţel
STR_501E_REINFORCED_CONCRETE_SUSPENSION :Pod feroviar suspendat din beton
STR_501F_WOODEN_RAIL_BRIDGE :Pod feroviar din lemn
STR_5020_CONCRETE_RAIL_BRIDGE :Pod feroviar din beton
-STR_5021_STEEL_SUSPENSION_ROAD_BRIDGE :Pod rutier suspendat din otel
-STR_5022_STEEL_GIRDER_ROAD_BRIDGE :Pod rutier tip grindã din otel
-STR_5023_STEEL_CANTILEVER_ROAD_BRIDGE :Pod rutier tip arc din otel
-STR_5024_REINFORCED_CONCRETE_SUSPENSION :Pod rutier suspendat din beton
+STR_5021_STEEL_SUSPENSION_ROAD_BRIDGE :Pod rutier suspendat din oţel
+STR_5022_STEEL_GIRDER_ROAD_BRIDGE :Pod rutier tip grindă din oţel
+STR_5023_STEEL_CANTILEVER_ROAD_BRIDGE :Pod rutier tip arc din oţel
+STR_5024_REINFORCED_CONCRETE_SUSPENSION :Pod rutier suspendat din beton armat
STR_5025_WOODEN_ROAD_BRIDGE :Pod rutier din lemn
STR_5026_CONCRETE_ROAD_BRIDGE :Pod rutier din beton
STR_5027_TUBULAR_RAIL_BRIDGE :Pod feroviar tubular
STR_5028_TUBULAR_ROAD_BRIDGE :Pod rutier tubular
##id 0x5800
-STR_5800_OBJECT_IN_THE_WAY :{WHITE}Obiect in cale
-STR_5801_TRANSMITTER :Transmitãtor
+STR_5800_OBJECT_IN_THE_WAY :{WHITE}Obiect în cale
+STR_5801_TRANSMITTER :Transmiţător
STR_5802_LIGHTHOUSE :Far
STR_5803_COMPANY_HEADQUARTERS :Sediu companie
-STR_5804_COMPANY_HEADQUARTERS_IN :{WHITE}...sediu de companie in cale
-STR_5805_COMPANY_OWNED_LAND :Teren in posesia unei companii
-STR_5806_CAN_T_PURCHASE_THIS_LAND :{WHITE}Nu poti cumpãra teren aici...
-STR_5807_YOU_ALREADY_OWN_IT :{WHITE}...este deja in posesia ta!
+STR_5804_COMPANY_HEADQUARTERS_IN :{WHITE}...sediu de companie în cale
+STR_5805_COMPANY_OWNED_LAND :Teren în proprietatea unei companii
+STR_5806_CAN_T_PURCHASE_THIS_LAND :{WHITE}Nu poţi cumpăra teren aici...
+STR_5807_YOU_ALREADY_OWN_IT :{WHITE}...este deja în proprietatea ta!
############ WARNING, using range 0x6000 for strings that are stored in the savegame
@@ -2012,6 +2036,8 @@
STR_SV_STNAME_HELIPORT :Heliportul {STRING}
STR_SV_STNAME_FOREST :Pãdurea {STRING}
+STR_SV_GROUP_NAME :{GROUP}
+
############ end of savegame specific region!
##id 0x6800
@@ -2019,53 +2045,53 @@
STR_OPTIONS_SAVE_CHANGES :{BLACK}Salveazã
############ range for difficulty levels starts
-STR_6801_EASY :{BLACK}Usor
+STR_6801_EASY :{BLACK}UÅŸor
STR_6802_MEDIUM :{BLACK}Mediu
STR_6803_HARD :{BLACK}Greu
-STR_6804_CUSTOM :{BLACK}Propriu
+STR_6804_CUSTOM :{BLACK}Personalizat
############ range for difficulty levels ends
############ range for difficulty settings starts
-STR_6805_MAXIMUM_NO_COMPETITORS :{LTBLUE}Numãrul maxim de companii concurente: {ORANGE}{COMMA}
-STR_6806_COMPETITOR_START_TIME :{LTBLUE}Când intrã concurentii pe piatã: {ORANGE}{STRING}
-STR_6807_NO_OF_TOWNS :{LTBLUE}Numãrul de orase de pe hartã: {ORANGE}{STRING}
-STR_6808_NO_OF_INDUSTRIES :{LTBLUE}Numãrul de obiective industriale: {ORANGE}{STRING}
-STR_6809_MAXIMUM_INITIAL_LOAN_000 :{LTBLUE}Valoarea maximã a împrumutului initial: {ORANGE}{CURRENCY}
-STR_680A_INITIAL_INTEREST_RATE :{LTBLUE}Rata initialã a dobânzii: {ORANGE}{COMMA}%
+STR_6805_MAXIMUM_NO_COMPETITORS :{LTBLUE}Numărul maxim de companii concurente: {ORANGE}{COMMA}
+STR_6806_COMPETITOR_START_TIME :{LTBLUE}Când intră concurenţii pe piaţă: {ORANGE}{STRING}
+STR_6807_NO_OF_TOWNS :{LTBLUE}Numărul de oraşe de pe hartă: {ORANGE}{STRING}
+STR_6808_NO_OF_INDUSTRIES :{LTBLUE}Numărul de obiective industriale: {ORANGE}{STRING}
+STR_6809_MAXIMUM_INITIAL_LOAN_000 :{LTBLUE}Valoarea maximă a împrumutului iniţial: {ORANGE}{CURRENCY}
+STR_680A_INITIAL_INTEREST_RATE :{LTBLUE}Rata iniţială a dobânzii: {ORANGE}{COMMA}%
STR_680B_VEHICLE_RUNNING_COSTS :{LTBLUE}Costul de exploatare al vehiculelor: {ORANGE}{STRING}
-STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR :{LTBLUE}Viteza de constructie a concurentilor: {ORANGE}{STRING}
-STR_680D_INTELLIGENCE_OF_COMPETITORS :{LTBLUE}Gradul de inteligentã al concurentilor: {ORANGE}{STRING}
-STR_680E_VEHICLE_BREAKDOWNS :{LTBLUE}Defectiunile vehiculelor: {ORANGE}{STRING}
-STR_680F_SUBSIDY_MULTIPLIER :{LTBLUE}Multiplicarea veniturilor subventionate: {ORANGE}{STRING}
-STR_6810_COST_OF_CONSTRUCTION :{LTBLUE}Costul constructiilor: {ORANGE}{STRING}
+STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR :{LTBLUE}Viteza de construcţie a concurenţilor: {ORANGE}{STRING}
+STR_680D_INTELLIGENCE_OF_COMPETITORS :{LTBLUE}Gradul de inteligenţă al concurenţilor: {ORANGE}{STRING}
+STR_680E_VEHICLE_BREAKDOWNS :{LTBLUE}Defecţiunile vehiculelor: {ORANGE}{STRING}
+STR_680F_SUBSIDY_MULTIPLIER :{LTBLUE}Multiplicatorul pentru veniturile subvenţionate: {ORANGE}{STRING}
+STR_6810_COST_OF_CONSTRUCTION :{LTBLUE}Costul construcţiilor: {ORANGE}{STRING}
STR_6811_TERRAIN_TYPE :{LTBLUE}Tipul de teren: {ORANGE}{STRING}
-STR_6812_QUANTITY_OF_SEA_LAKES :{LTBLUE}Volumul de apã pe hartã: {ORANGE}{STRING}
+STR_6812_QUANTITY_OF_SEA_LAKES :{LTBLUE}Volumul de apă pe hartă: {ORANGE}{STRING}
STR_6813_ECONOMY :{LTBLUE}Economie: {ORANGE}{STRING}
STR_6814_TRAIN_REVERSING :{LTBLUE}Trenurile întorc: {ORANGE}{STRING}
STR_6815_DISASTERS :{LTBLUE}Dezastre: {ORANGE}{STRING}
-STR_16816_CITY_APPROVAL :{LTBLUE}Reactia autoritãtilor la modificãrea mediului: {ORANGE}{STRING}
+STR_16816_CITY_APPROVAL :{LTBLUE}Reacţia autorităţilor la modificarea mediului: {ORANGE}{STRING}
############ range for difficulty settings ends
STR_26816_NONE :zero
STR_NUM_VERY_LOW :Foarte putine
-STR_6816_LOW :scãzut
+STR_6816_LOW :scăzut
STR_6817_NORMAL :normal
STR_6818_HIGH :ridicat
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
-STR_681B_VERY_SLOW :foarte incet
-STR_681C_SLOW :Incet
+STR_681B_VERY_SLOW :foarte încet
+STR_681C_SLOW :încet
STR_681D_MEDIUM :mediu
STR_681E_FAST :repede
STR_681F_VERY_FAST :foarte repede
STR_VERY_LOW :foarte scãzut
-STR_6820_LOW :scãzut
+STR_6820_LOW :scăzut
STR_6821_MEDIUM :mediu
STR_6822_HIGH :ridicat
STR_6823_NONE :deloc
STR_6824_REDUCED :rare
-STR_6825_NORMAL :frecventã normalã
-STR_6826_X1_5 :x1.5
+STR_6825_NORMAL :frecvenţă normală
+STR_6826_X1_5 :x1,5
STR_6827_X2 :x2
STR_6828_X3 :x3
STR_6829_X4 :x4
@@ -2073,45 +2099,45 @@
STR_682B_FLAT :plat
STR_682C_HILLY :deluros
STR_682D_MOUNTAINOUS :muntos
-STR_682E_STEADY :stabilã
-STR_682F_FLUCTUATING :fluctuantã
+STR_682E_STEADY :stabilă
+STR_682F_FLUCTUATING :fluctuantă
STR_6830_IMMEDIATE :imediat
-STR_6831_3_MONTHS_AFTER_PLAYER :la 3 luni dupã jucãtor
-STR_6832_6_MONTHS_AFTER_PLAYER :la 6 luni dupã jucãtor
-STR_6833_9_MONTHS_AFTER_PLAYER :la 9 luni dupã jucãtor
-STR_6834_AT_END_OF_LINE_AND_AT_STATIONS :la capãt de linie si în garã
-STR_6835_AT_END_OF_LINE_ONLY :doar la capãt de linie
+STR_6831_3_MONTHS_AFTER_PLAYER :la 3 luni după jucător
+STR_6832_6_MONTHS_AFTER_PLAYER :la 6 luni după jucător
+STR_6833_9_MONTHS_AFTER_PLAYER :la 9 luni după jucător
+STR_6834_AT_END_OF_LINE_AND_AT_STATIONS :la capăt de linie şi în gară
+STR_6835_AT_END_OF_LINE_ONLY :doar la capăt de linie
STR_6836_OFF :inactiv
STR_6837_ON :activ
-STR_6838_SHOW_HI_SCORE_CHART :{BLACK}Afiseazã clasamentul celor mai bune punctaje
-STR_6839_PERMISSIVE :permisivã
-STR_683A_TOLERANT :tolerantã
-STR_683B_HOSTILE :ostilã
+STR_6838_SHOW_HI_SCORE_CHART :{BLACK}Afişează clasamentul celor mai bune punctaje
+STR_6839_PERMISSIVE :permisivă
+STR_683A_TOLERANT :tolerantă
+STR_683B_HOSTILE :ostilă
##id 0x7000
STR_7000 :
STR_7001 :{WHITE}{COMPANY} {BLACK}{PLAYERNAME}
-STR_7002_PLAYER :(Jucãtorul {COMMA})
-STR_7004_NEW_FACE :{BLACK}Schimbã foto
+STR_7002_PLAYER :(Jucătorul {COMMA})
+STR_7004_NEW_FACE :{BLACK}Schimbă poza
STR_7005_COLOR_SCHEME :{BLACK}Culoare
STR_7006_COLOR_SCHEME :{GOLD}Culoare:
STR_7007_NEW_COLOR_SCHEME :{WHITE}Alege noua culoare
-STR_7008_COMPANY_NAME :{BLACK}Nume companie
-STR_7009_PRESIDENT_NAME :{BLACK}Presedinte
+STR_7008_COMPANY_NAME :{BLACK}Numele companiei
+STR_7009_PRESIDENT_NAME :{BLACK}Numele preÅŸedintelui
STR_700A_COMPANY_NAME :Noul nume al companiei
-STR_700B_PRESIDENT_S_NAME :Numele noului presedinte
+STR_700B_PRESIDENT_S_NAME :Noul nume al preÅŸedintelui
STR_700C_CAN_T_CHANGE_COMPANY_NAME :{WHITE}Nu pot schimba numele companiei...
-STR_700D_CAN_T_CHANGE_PRESIDENT :{WHITE}Nu pot schimba numele presedintelui...
-STR_700E_FINANCES :{WHITE}Situatia financiarã a companiei {COMPANY} {BLACK}{PLAYERNAME}
+STR_700D_CAN_T_CHANGE_PRESIDENT :{WHITE}Nu pot schimba numele preÅŸedintelui...
+STR_700E_FINANCES :{WHITE}Situaţia financiară a companiei {COMPANY} {BLACK}{PLAYERNAME}
STR_700F_EXPENDITURE_INCOME :{WHITE}Cheltuieli/Venituri
STR_7010 :{WHITE}{NUM}
-STR_7011_CONSTRUCTION :{GOLD}Constructii
+STR_7011_CONSTRUCTION :{GOLD}Construcţii
STR_7012_NEW_VEHICLES :{GOLD}Vehicule noi
STR_7013_TRAIN_RUNNING_COSTS :{GOLD}Costuri trenuri
STR_7014_ROAD_VEH_RUNNING_COSTS :{GOLD}Costuri autovehicule
STR_7015_AIRCRAFT_RUNNING_COSTS :{GOLD}Costuri aeronave
STR_7016_SHIP_RUNNING_COSTS :{GOLD}Costuri nave
-STR_7017_PROPERTY_MAINTENANCE :{GOLD}Întretinere proprietãti
+STR_7017_PROPERTY_MAINTENANCE :{GOLD}Întreţinere proprietăţi
STR_7018_TRAIN_INCOME :{GOLD}Venituri trenuri
STR_7019_ROAD_VEHICLES_INCOME :{GOLD}Venituri autovehicule
STR_701A_AIRCRAFT_INCOME :{GOLD}Venituri aeronave
@@ -2126,67 +2152,67 @@
STR_CURRCOMPACT :{CURRCOMPACT64}
STR_7024 :{COMMA}
STR_7025_OPERATING_PROFIT_GRAPH :{WHITE}Graficul profitului din operare
-STR_7026_BANK_BALANCE :{WHITE}Balantã curentã
+STR_7026_BANK_BALANCE :{WHITE}Balanţă curentă
STR_7027_LOAN :{WHITE}Credite
STR_MAX_LOAN :{WHITE}Limita credite: {BLACK}{CURRENCY64}
STR_7028 :{BLACK}{CURRENCY64}
-STR_7029_BORROW :{BLACK}Împrumutã {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
-STR_702A_REPAY :{BLACK}Plãteste înapoi {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
+STR_7029_BORROW :{BLACK}Împrumută {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
+STR_702A_REPAY :{BLACK}Plăteşte înapoi {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
STR_702B_MAXIMUM_PERMITTED_LOAN :{WHITE}...creditul maxim permis este de {CURRENCY}
-STR_702C_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}Nu mai poti imprumuta bani...
-STR_702D_LOAN_ALREADY_REPAYED :{WHITE}...nu ai nici un credit de plãtit
+STR_702C_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}Nu mai poţi împrumuta bani...
+STR_702D_LOAN_ALREADY_REPAYED :{WHITE}...nu ai nici un credit de plătit
STR_702E_REQUIRED :{WHITE}...ai nevoie de {CURRENCY}
-STR_702F_CAN_T_REPAY_LOAN :{WHITE}Nu poti plãti creditul...
+STR_702F_CAN_T_REPAY_LOAN :{WHITE}Nu poţi plăti creditul...
STR_INSUFFICIENT_FUNDS :{WHITE}Nu poti dona din banii împrumutati de bancã...
-STR_7030_SELECT_NEW_FACE_FOR_PRESIDENT :{BLACK}Alege o nouã fotografie a presedintelui
-STR_7031_CHANGE_THE_COMPANY_VEHICLE :{BLACK}Schimbã culoarea care îti reprezintã compania
-STR_7032_CHANGE_THE_PRESIDENT_S :{BLACK}Schimbã numele presedintelui
-STR_7033_CHANGE_THE_COMPANY_NAME :{BLACK}Schimbã numele companiei
-STR_7034_CLICK_ON_SELECTED_NEW_COLOR :{BLACK}Clic pe culoarea selectatã
-STR_7035_INCREASE_SIZE_OF_LOAN :{BLACK}Împrumutã o nouã sumã de bani
-STR_7036_REPAY_PART_OF_LOAN :{BLACK}Plãteste inapoi o parte din credite
-STR_7037_PRESIDENT :{WHITE}{PLAYERNAME}{}{GOLD}(Presedinte)
-STR_7038_INAUGURATED :{GOLD}Anul înfiintãrii: {WHITE}{NUM}
+STR_7030_SELECT_NEW_FACE_FOR_PRESIDENT :{BLACK}Alege o nouă poză a preşedintelui
+STR_7031_CHANGE_THE_COMPANY_VEHICLE :{BLACK}Schimbă culoarea care îţi reprezintă compania
+STR_7032_CHANGE_THE_PRESIDENT_S :{BLACK}Schimbă numele preşedintelui
+STR_7033_CHANGE_THE_COMPANY_NAME :{BLACK}Schimbă numele companiei
+STR_7034_CLICK_ON_SELECTED_NEW_COLOR :{BLACK}Clic pe culoarea dorită
+STR_7035_INCREASE_SIZE_OF_LOAN :{BLACK}Împrumută o nouă sumă de bani
+STR_7036_REPAY_PART_OF_LOAN :{BLACK}Plăteşte înapoi o parte din credite
+STR_7037_PRESIDENT :{WHITE}{PLAYERNAME}{}{GOLD}(PreÅŸedinte)
+STR_7038_INAUGURATED :{GOLD}Anul înfiinţării: {WHITE}{NUM}
STR_7039_VEHICLES :{GOLD}Vehicule:
STR_TRAINS :{WHITE}{COMMA} tren{P "" uri}
STR_ROAD_VEHICLES :{WHITE}{COMMA} autovehicul{P "" e}
STR_AIRCRAFT :{WHITE}{COMMA} aeronav{P ã e}
STR_SHIPS :{WHITE}{COMMA} nav{P ã e}
STR_7042_NONE :{WHITE}Nici unul
-STR_7043_FACE_SELECTION :{WHITE}Alegerea fotografiei
-STR_7044_MALE :{BLACK}Bãrbat
+STR_7043_FACE_SELECTION :{WHITE}Alegerea pozei
+STR_7044_MALE :{BLACK}Bărbat
STR_7045_FEMALE :{BLACK}Femeie
-STR_7046_NEW_FACE :{BLACK}Foto nouã
-STR_7047_CANCEL_NEW_FACE_SELECTION :{BLACK}Anuleazã alegerea unei noi fotografii
-STR_7048_ACCEPT_NEW_FACE_SELECTION :{BLACK}Acceptã fotografia selectatã
-STR_7049_SELECT_MALE_FACES :{BLACK}Alege figurã masculinã
-STR_704A_SELECT_FEMALE_FACES :{BLACK}Alege figurã femininã
-STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Genereazã foto aleatoare
+STR_7046_NEW_FACE :{BLACK}Poză nouă
+STR_7047_CANCEL_NEW_FACE_SELECTION :{BLACK}Anulează alegerea unei noi poze
+STR_7048_ACCEPT_NEW_FACE_SELECTION :{BLACK}Acceptă poza selectată
+STR_7049_SELECT_MALE_FACES :{BLACK}Alege figură masculină
+STR_704A_SELECT_FEMALE_FACES :{BLACK}Alege figură feminină
+STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Generează poză aleatoare
STR_704C_KEY :{BLACK}Legenda
-STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Afiseazã legenda graficelor
+STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Afişează legenda graficelor
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Legenda graficelor
-STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Clic aici pentru a comuta afisarea informatiilor despre companie
-STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Unitãti de marfã livratã
-STR_7051_COMPANY_PERFORMANCE_RATINGS :{WHITE}Ratingul performantelor companiilor (rating maxim=1000)
+STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Clic aici pentru a comuta afişarea informaţiilor despre companie
+STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Unităţi de marfă livrate
+STR_7051_COMPANY_PERFORMANCE_RATINGS :{WHITE}Evaluarea performanţelor companiilor (maxim=1000)
STR_7052_COMPANY_VALUES :{WHITE}Valorile companiilor
STR_7053_COMPANY_LEAGUE_TABLE :{WHITE}Clasamentul companiilor
STR_7054 :{WHITE}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{PLAYERNAME} '{STRING}'
STR_7055 :{YELLOW}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{PLAYERNAME} '{STRING}'
STR_7056_TRANSPORT_COMPANY_IN_TROUBLE :{BLACK}{BIGFONT}Companie de transport cu probleme!
-STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED :{BLACK}{BIGFONT}{COMPANY} va fi vândutã dacã situatia nu se va îmbunãtãti curând!
-STR_7058_PRESIDENT :{BLACK}{PLAYERNAME}{}(Presedinte)
-STR_7059_TRANSPORT_COMPANY_MERGER :{BLACK}{BIGFONT}Fuziune între companiile de transport!
-STR_705A_HAS_BEEN_SOLD_TO_FOR :{BLACK}{BIGFONT}{COMPANY} a fost vândutã companiei {COMPANY} la pretul de {CURRENCY}!
-STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT :{WHITE}Cãutãm o companie de transport care sã preia societatea noastrã {}{}Doriti sã cumpãrati {COMPANY} la pretul de {CURRENCY}?
+STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED :{BLACK}{BIGFONT}{COMPANY} va fi vândută dacă situaţia financiară nu se va îmbunătăţi curând!
+STR_7058_PRESIDENT :{BLACK}{PLAYERNAME}{}(PreÅŸedinte)
+STR_7059_TRANSPORT_COMPANY_MERGER :{BLACK}{BIGFONT}Fuziune între companii de transport!
+STR_705A_HAS_BEEN_SOLD_TO_FOR :{BLACK}{BIGFONT}{COMPANY} a fost vândută companiei {COMPANY} la preţul de {CURRENCY}!
+STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT :{WHITE}Căutăm o companie de transport care să preia societatea noastră {}{}Doriţi să cumpăraţi {COMPANY} la preţul de {CURRENCY}?
STR_705C_BANKRUPT :{BLACK}{BIGFONT}Faliment!
-STR_705D_HAS_BEEN_CLOSED_DOWN_BY :{BLACK}{BIGFONT}Compania {COMPANY} a fost închisã si toate activele au fost valorificate de creditori!
-STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED :{BLACK}{BIGFONT}A apãrut o nouã companie!
-STR_705F_STARTS_CONSTRUCTION_NEAR :{BLACK}{BIGFONT}{COMPANY} si-a stabilit sediul lângã {TOWN}!
-STR_7060_CAN_T_BUY_COMPANY :{WHITE}Nu pot cumpãra compania...
-STR_7061_CARGO_PAYMENT_RATES :{WHITE}Preturile transportului de cãlãtori si mãrfuri
+STR_705D_HAS_BEEN_CLOSED_DOWN_BY :{BLACK}{BIGFONT}Compania {COMPANY} a fost închisă şi toate activele au fost valorificate de creditori!
+STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED :{BLACK}{BIGFONT}A apărut o nouă companie!
+STR_705F_STARTS_CONSTRUCTION_NEAR :{BLACK}{BIGFONT}{COMPANY} şi-a stabilit sediul lângă {TOWN}!
+STR_7060_CAN_T_BUY_COMPANY :{WHITE}Nu pot cumpăra compania...
+STR_7061_CARGO_PAYMENT_RATES :{WHITE}Preţurile transportului de călători şi mărfuri
STR_7062_DAYS_IN_TRANSIT :{BLACK}{TINYFONT}Zile în tranzit
-STR_7063_PAYMENT_FOR_DELIVERING :{BLACK}{TINYFONT}Plata pentru livrarea a 10 unitãti (sau 10,000 de litri) de marfã pe o distantã de 20 de pãtrãtele
-STR_7064_TOGGLE_GRAPH_FOR_CARGO :{BLACK}Comutator pentru afisarea graficului pentru marfã
+STR_7063_PAYMENT_FOR_DELIVERING :{BLACK}{TINYFONT}Plata pentru livrarea a 10 unităţi (sau 10.000 de litri) de marfă pe o distanţă de 20 de pătrăţele
+STR_7064_TOGGLE_GRAPH_FOR_CARGO :{BLACK}Comutator pentru afişarea graficului pentru marfă
STR_7065 :{BLACK}{TINYFONT}{STRING}
STR_7066_ENGINEER :Inginer
STR_7067_TRAFFIC_MANAGER :Manager de trafic
@@ -2195,10 +2221,10 @@
STR_706A_DIRECTOR :Director
STR_706B_CHIEF_EXECUTIVE :Director executiv
STR_706C_CHAIRMAN :Director general
-STR_706D_PRESIDENT :Presedinte
+STR_706D_PRESIDENT :PreÅŸedinte
STR_706E_TYCOON :Magnat
-STR_706F_BUILD_HQ :{BLACK}Constr. sediu
-STR_7070_BUILD_COMPANY_HEADQUARTERS :{BLACK}Construieste/aratã sediul companiei
+STR_706F_BUILD_HQ :{BLACK}ConstruieÅŸte sediu
+STR_7070_BUILD_COMPANY_HEADQUARTERS :{BLACK}Construieşte sau arată sediul companiei
STR_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Muta sediul companiei (costa 1% din valoarea companiei)
STR_7071_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Nu pot construi sediul...
STR_7072_VIEW_HQ :{BLACK}Vezi sediul
@@ -2206,20 +2232,20 @@
STR_COMPANY_PASSWORD :{BLACK}Parola
STR_COMPANY_PASSWORD_TOOLTIP :{BLACK}Protejeaza-ti compania cu o parola pentru a preveni accesul neautorizat.
STR_SET_COMPANY_PASSWORD :Alege parola companiei
-STR_7073_WORLD_RECESSION_FINANCIAL :{BIGFONT}{BLACK}Recesiune mondialã!{}{}Expertii financiari se tem de ceea ce e mai rãu odatã cu prãbusirea economicã!
-STR_7074_RECESSION_OVER_UPTURN_IN :{BIGFONT}{BLACK}Recesiunea s-a încheiat!{}{}Cresterea comertului dã încredere industriei, iar economia se redreseazã!
-STR_7075_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Comutator pentru mãrimea ferestrei
+STR_7073_WORLD_RECESSION_FINANCIAL :{BIGFONT}{BLACK}Recesiune mondială!{}{}Experţii financiari se tem de ceea ce e mai rău odată cu prăbuşirea economică!
+STR_7074_RECESSION_OVER_UPTURN_IN :{BIGFONT}{BLACK}Recesiunea s-a încheiat!{}{}Creşterea comerţului dă încredere industriei, iar economia se redresează!
+STR_7075_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Comutator pentru mărimea ferestrei
STR_7076_COMPANY_VALUE :{GOLD}Valoarea companiei: {WHITE}{CURRENCY64}
-STR_7077_BUY_25_SHARE_IN_COMPANY :{BLACK}Cumpãrã 25% din companie
-STR_7078_SELL_25_SHARE_IN_COMPANY :{BLACK}Vinde 25% din companie
-STR_7079_BUY_25_SHARE_IN_THIS_COMPANY :{BLACK}Cumpãrã 25% din actiunile aceste companii
-STR_707A_SELL_25_SHARE_IN_THIS_COMPANY :{BLACK}Vinde 25% din actiunile aceste companii
-STR_707B_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Nu pot cumpãra 25% din aceastã companie...
-STR_707C_CAN_T_SELL_25_SHARE_IN :{WHITE}Nu pot vinde 25% din aceastã companie...
-STR_707D_OWNED_BY :{WHITE}({COMMA}% detinute de {COMPANY})
-STR_707E_OWNED_BY_OWNED_BY :{WHITE}({COMMA}% detinute de {COMPANY}{} {COMMA}% detinute de {COMPANY})
-STR_707F_HAS_BEEN_TAKEN_OVER_BY :{BLACK}{BIGFONT}{COMPANY} a fost preluatã de {COMPANY}!
-STR_7080_PROTECTED :{WHITE}Aceasta companie inca nu vinde actiuni...
+STR_7077_BUY_25_SHARE_IN_COMPANY :{BLACK}Cumpără 25% din acţiunile companiei
+STR_7078_SELL_25_SHARE_IN_COMPANY :{BLACK}Vinde 25% din acţiunile companiei
+STR_7079_BUY_25_SHARE_IN_THIS_COMPANY :{BLACK}Cumpără 25% din acţiunile acestei companii
+STR_707A_SELL_25_SHARE_IN_THIS_COMPANY :{BLACK}Vinde 25% din acţiunile acestei companii
+STR_707B_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Nu pot cumpăra 25% din acţiunile acestei companii...
+STR_707C_CAN_T_SELL_25_SHARE_IN :{WHITE}Nu pot vinde 25% din acţiunile acestei companii...
+STR_707D_OWNED_BY :{WHITE}({COMMA}% deţinute de {COMPANY})
+STR_707E_OWNED_BY_OWNED_BY :{WHITE}({COMMA}% deţinute de {COMPANY}{} {COMMA}% deţinute de {COMPANY})
+STR_707F_HAS_BEEN_TAKEN_OVER_BY :{BLACK}{BIGFONT}{COMPANY} a fost preluată de {COMPANY}!
+STR_7080_PROTECTED :{WHITE}Această companie încă nu vinde acţiuni...
STR_LIVERY_DEFAULT :Uniforma standard
STR_LIVERY_STEAM :Motor cu abur
@@ -2229,9 +2255,9 @@
STR_LIVERY_MAGLEV :Motor Maglev
STR_LIVERY_DMU :DMU
STR_LIVERY_EMU :EMU
-STR_LIVERY_PASSENGER_WAGON_STEAM :Trasura de pasageri (Aburi)
-STR_LIVERY_PASSENGER_WAGON_DIESEL :Trasura de pasageri (Diesel)
-STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Trasura de pasageri (Electrica)
+STR_LIVERY_PASSENGER_WAGON_STEAM :Vagon de călători (Aburi)
+STR_LIVERY_PASSENGER_WAGON_DIESEL :Vagon de călători (Diesel)
+STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Vagon de călători (Electric)
STR_LIVERY_FREIGHT_WAGON :Vagon de marfa
STR_LIVERY_BUS :Autobus
STR_LIVERY_TRUCK :Camion
@@ -2278,60 +2304,60 @@
STR_8018_SH_40_ELECTRIC :SH '40' (Electric)
STR_8019_T_I_M_ELECTRIC :'T.I.M.' (Electric)
STR_801A_ASIASTAR_ELECTRIC :'AsiaStar' (Electric)
-STR_801B_PASSENGER_CAR :Vagon pentru cãlãtori
-STR_801C_MAIL_VAN :Vagon pentru postã
-STR_801D_COAL_CAR :Vagon pentru cãrbuni
-STR_801E_OIL_TANKER :Cisternã pentru petrol
+STR_801B_PASSENGER_CAR :Vagon pentru călători
+STR_801C_MAIL_VAN :Vagon pentru poştă
+STR_801D_COAL_CAR :Vagon pentru cărbuni
+STR_801E_OIL_TANKER :Cisternă pentru petrol
STR_801F_LIVESTOCK_VAN :Vagon pentru animale
STR_8020_GOODS_VAN :Vagon pentru bunuri
STR_8021_GRAIN_HOPPER :Vagon pentru cereale
STR_8022_WOOD_TRUCK :Vagon pentru lemne
STR_8023_IRON_ORE_HOPPER :Vagon pentru minereu de fier
-STR_8024_STEEL_TRUCK :Vagon pentru otel
+STR_8024_STEEL_TRUCK :Vagon pentru oţel
STR_8025_ARMORED_VAN :Vagon blindat
STR_8026_FOOD_VAN :Vagon pentru alimente
STR_8027_PAPER_TRUCK :Vagon pentru hârtie
STR_8028_COPPER_ORE_HOPPER :Vagon pentru minereu de cupru
-STR_8029_WATER_TANKER :Cisternã pentru apã
+STR_8029_WATER_TANKER :Cisternă pentru apă
STR_802A_FRUIT_TRUCK :Vagon penru fructe
STR_802B_RUBBER_TRUCK :Vagon pentru cauciuc
-STR_802C_SUGAR_TRUCK :Vagon pentru zahãr
-STR_802D_COTTON_CANDY_HOPPER :Vagon pentru vatã de zahãr
+STR_802C_SUGAR_TRUCK :Vagon pentru zahăr
+STR_802D_COTTON_CANDY_HOPPER :Vagon pentru vată de zahăr
STR_802E_TOFFEE_HOPPER :Vagon pentru caramel
-STR_802F_BUBBLE_VAN :Vagon pentru balonase
-STR_8030_COLA_TANKER :Cisternã pentru cola
+STR_802F_BUBBLE_VAN :Vagon pentru balonaÅŸe
+STR_8030_COLA_TANKER :Cisternă pentru cola
STR_8031_CANDY_VAN :Vagon pentru bomboane
-STR_8032_TOY_VAN :Vagon pentru jucãrii
+STR_8032_TOY_VAN :Vagon pentru jucării
STR_8033_BATTERY_TRUCK :Vagon pentru baterii
STR_8034_FIZZY_DRINK_TRUCK :Vagon pentru sucuri
STR_8035_PLASTIC_TRUCK :Vagon pentru plastic
STR_8036_X2001_ELECTRIC :'X2001' (Electric)
STR_8037_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' (Electric)
STR_8038_WIZZOWOW_Z99 :Wizzowow Z99
-STR_8039_PASSENGER_CAR :Vagon pentru cãlãtori
-STR_803A_MAIL_VAN :Vagon pentru postã
-STR_803B_COAL_CAR :Vagon pentru cãrbuni
-STR_803C_OIL_TANKER :Cisternã pentru petrol
+STR_8039_PASSENGER_CAR :Vagon pentru călători
+STR_803A_MAIL_VAN :Vagon pentru poştă
+STR_803B_COAL_CAR :Vagon pentru cărbuni
+STR_803C_OIL_TANKER :Cisternă pentru petrol
STR_803D_LIVESTOCK_VAN :Vagon pentru animale
STR_803E_GOODS_VAN :Vagon pentru bunuri
STR_803F_GRAIN_HOPPER :Vagon pentru cereale
STR_8040_WOOD_TRUCK :Vagon pentru lemne
STR_8041_IRON_ORE_HOPPER :Vagon pentru minereu de fier
-STR_8042_STEEL_TRUCK :Vagon pentru otel
+STR_8042_STEEL_TRUCK :Vagon pentru oţel
STR_8043_ARMORED_VAN :Vagon blindat
STR_8044_FOOD_VAN :Vagon pentru alimente
STR_8045_PAPER_TRUCK :Vagon pentru hârtie
STR_8046_COPPER_ORE_HOPPER :Vagon pentru minereu de cupru
-STR_8047_WATER_TANKER :Cisternã pentru apã
+STR_8047_WATER_TANKER :Cisternă pentru apă
STR_8048_FRUIT_TRUCK :Vagon pentru fructe
STR_8049_RUBBER_TRUCK :Vagon pentru cauciuc
-STR_804A_SUGAR_TRUCK :Vagon pentru zahãr
-STR_804B_COTTON_CANDY_HOPPER :Vagon pentru vatã de zahãr
+STR_804A_SUGAR_TRUCK :Vagon pentru zahăr
+STR_804B_COTTON_CANDY_HOPPER :Vagon pentru vată de zahăr
STR_804C_TOFFEE_HOPPER :Vagon pentru caramel
-STR_804D_BUBBLE_VAN :Vagon pentru balonase
-STR_804E_COLA_TANKER :Cisternã pentru cola
+STR_804D_BUBBLE_VAN :Vagon pentru balonaÅŸe
+STR_804E_COLA_TANKER :Cisternă pentru cola
STR_804F_CANDY_VAN :Vagon pentru bomboane
-STR_8050_TOY_VAN :Vagon pentru jucãrii
+STR_8050_TOY_VAN :Vagon pentru jucării
STR_8051_BATTERY_TRUCK :Vagon pentru baterii
STR_8052_FIZZY_DRINK_TRUCK :Vagon pentru sucuri
STR_8053_PLASTIC_TRUCK :Vagon pentru plastic
@@ -2340,30 +2366,30 @@
STR_8056_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (Electric)
STR_8057_LEV4_CHIMAERA_ELECTRIC :Lev4 'Chimaera' (Electric)
STR_8058_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer
-STR_8059_PASSENGER_CAR :Vagon pentru cãlãtori
-STR_805A_MAIL_VAN :Vagon pentru postã
-STR_805B_COAL_CAR :Vagon pentru cãrbuni
-STR_805C_OIL_TANKER :Cisternã pentru petrol
+STR_8059_PASSENGER_CAR :Vagon pentru călători
+STR_805A_MAIL_VAN :Vagon pentru poştă
+STR_805B_COAL_CAR :Vagon pentru cărbuni
+STR_805C_OIL_TANKER :Cisternă pentru petrol
STR_805D_LIVESTOCK_VAN :Vagon pentru animale
STR_805E_GOODS_VAN :Vagon pentru bunuri
STR_805F_GRAIN_HOPPER :Vagon pentru cereale
STR_8060_WOOD_TRUCK :Vagon pentru lemne
STR_8061_IRON_ORE_HOPPER :Vagon pentru minereu de fier
-STR_8062_STEEL_TRUCK :Vagon pentru otel
+STR_8062_STEEL_TRUCK :Vagon pentru oţel
STR_8063_ARMORED_VAN :Vagon blindat
STR_8064_FOOD_VAN :Vagon pentru alimente
STR_8065_PAPER_TRUCK :Vagon pentru hârtie
STR_8066_COPPER_ORE_HOPPER :Vagon pentru minereu de cupru
-STR_8067_WATER_TANKER :Cisternã pentru apã
+STR_8067_WATER_TANKER :Cisternă pentru apă
STR_8068_FRUIT_TRUCK :Vagon pentru fructe
STR_8069_RUBBER_TRUCK :Vagon pentru cauciuc
-STR_806A_SUGAR_TRUCK :Vagon pentru zahãr
-STR_806B_COTTON_CANDY_HOPPER :Vagon pentru vatã de zahãr
+STR_806A_SUGAR_TRUCK :Vagon pentru zahăr
+STR_806B_COTTON_CANDY_HOPPER :Vagon pentru vată de zahăr
STR_806C_TOFFEE_HOPPER :Vagon pentru caramel
-STR_806D_BUBBLE_VAN :Vagon pentru balonase
-STR_806E_COLA_TANKER :Cisternã pentru cola
+STR_806D_BUBBLE_VAN :Vagon pentru balonaÅŸe
+STR_806E_COLA_TANKER :Cisternă pentru cola
STR_806F_CANDY_VAN :Vagon pentru bomboane
-STR_8070_TOY_VAN :Vagon pentru jucãrii
+STR_8070_TOY_VAN :Vagon pentru jucării
STR_8071_BATTERY_TRUCK :Vagon pentru baterii
STR_8072_FIZZY_DRINK_TRUCK :Vagon pentru sucuri
STR_8073_PLASTIC_TRUCK :Vagon pentru plastic
@@ -2374,18 +2400,18 @@
STR_8078_PLODDYPHUT_MKI_BUS :Autobuz Ploddyphut MkI
STR_8079_PLODDYPHUT_MKII_BUS :Autobuz Ploddyphut MkII
STR_807A_PLODDYPHUT_MKIII_BUS :Autobuz Ploddyphut MkIII
-STR_807B_BALOGH_COAL_TRUCK :Camion pentru cãrbuni Balogh
-STR_807C_UHL_COAL_TRUCK :Camion pentru cãrbuni Uhl
-STR_807D_DW_COAL_TRUCK :Camion pentru cãrbuni DW
-STR_807E_MPS_MAIL_TRUCK :Camion postal MPS
-STR_807F_REYNARD_MAIL_TRUCK :Camion postal Reynard
-STR_8080_PERRY_MAIL_TRUCK :Camion postal Perry
-STR_8081_MIGHTYMOVER_MAIL_TRUCK :Camion postal MightyMover
-STR_8082_POWERNAUGHT_MAIL_TRUCK :Camion postal Powernaught
-STR_8083_WIZZOWOW_MAIL_TRUCK :Camion postal Wizzowow
-STR_8084_WITCOMBE_OIL_TANKER :Cisternã pentru petrol Witcombe
-STR_8085_FOSTER_OIL_TANKER :Cisternã pentru petrol Foster
-STR_8086_PERRY_OIL_TANKER :Cisternã pentru petrol Perry
+STR_807B_BALOGH_COAL_TRUCK :Camion pentru cărbuni Balogh
+STR_807C_UHL_COAL_TRUCK :Camion pentru cărbuni Uhl
+STR_807D_DW_COAL_TRUCK :Camion pentru cărbuni DW
+STR_807E_MPS_MAIL_TRUCK :Camion poÅŸtal MPS
+STR_807F_REYNARD_MAIL_TRUCK :Camion poÅŸtal Reynard
+STR_8080_PERRY_MAIL_TRUCK :Camion poÅŸtal Perry
+STR_8081_MIGHTYMOVER_MAIL_TRUCK :Camion poÅŸtal MightyMover
+STR_8082_POWERNAUGHT_MAIL_TRUCK :Camion poÅŸtal Powernaught
+STR_8083_WIZZOWOW_MAIL_TRUCK :Camion poÅŸtal Wizzowow
+STR_8084_WITCOMBE_OIL_TANKER :Cisternă pentru petrol Witcombe
+STR_8085_FOSTER_OIL_TANKER :Cisternă pentru petrol Foster
+STR_8086_PERRY_OIL_TANKER :Cisternă pentru petrol Perry
STR_8087_TALBOTT_LIVESTOCK_VAN :Camion pentru animale Talbott
STR_8088_UHL_LIVESTOCK_VAN :Camion pentru animale Uhl
STR_8089_FOSTER_LIVESTOCK_VAN :Camion pentru animale Foster
@@ -2401,9 +2427,9 @@
STR_8093_MPS_IRON_ORE_TRUCK :Camion pentru fier MPS
STR_8094_UHL_IRON_ORE_TRUCK :Camion pentru fier Uhl
STR_8095_CHIPPY_IRON_ORE_TRUCK :Camion pentru fier Chippy
-STR_8096_BALOGH_STEEL_TRUCK :Camion pentru otel Balogh
-STR_8097_UHL_STEEL_TRUCK :Camion pentru otel Uhl
-STR_8098_KELLING_STEEL_TRUCK :Camion pentru otel Kelling
+STR_8096_BALOGH_STEEL_TRUCK :Camion pentru oţel Balogh
+STR_8097_UHL_STEEL_TRUCK :Camion pentru oţel Uhl
+STR_8098_KELLING_STEEL_TRUCK :Camion pentru oţel Kelling
STR_8099_BALOGH_ARMORED_TRUCK :Camion blindat Balogh
STR_809A_UHL_ARMORED_TRUCK :Camion blindat Uhl
STR_809B_FOSTER_ARMORED_TRUCK :Camion blindat Foster
@@ -2416,56 +2442,56 @@
STR_80A2_MPS_COPPER_ORE_TRUCK :Camion pentru cupru MPS
STR_80A3_UHL_COPPER_ORE_TRUCK :Camion pentru cupru Uhl
STR_80A4_GOSS_COPPER_ORE_TRUCK :Camion pentru cupru Goss
-STR_80A5_UHL_WATER_TANKER :Cisternã pentru apã Uhl
-STR_80A6_BALOGH_WATER_TANKER :Cisternã pentru apã Balogh
-STR_80A7_MPS_WATER_TANKER :Cisternã pentru apã MPS
+STR_80A5_UHL_WATER_TANKER :Cisternă pentru apă Uhl
+STR_80A6_BALOGH_WATER_TANKER :Cisternă pentru apă Balogh
+STR_80A7_MPS_WATER_TANKER :Cisternă pentru apă MPS
STR_80A8_BALOGH_FRUIT_TRUCK :Camion pentru fructe Balogh
STR_80A9_UHL_FRUIT_TRUCK :Camion pentru fructe Uhl
STR_80AA_KELLING_FRUIT_TRUCK :Camion pentru fructe Kelling
STR_80AB_BALOGH_RUBBER_TRUCK :Camion pentru cauciuc Balogh
STR_80AC_UHL_RUBBER_TRUCK :Camion pentru cauciuc Uhl
STR_80AD_RMT_RUBBER_TRUCK :Camion pentru cauciuc RMT
-STR_80AE_MIGHTYMOVER_SUGAR_TRUCK :Camion pt. zahãr MightyMover
-STR_80AF_POWERNAUGHT_SUGAR_TRUCK :Camion pt. zahãr Powernaught
-STR_80B0_WIZZOWOW_SUGAR_TRUCK :Camion pentru zahãr Wizzowow
-STR_80B1_MIGHTYMOVER_COLA_TRUCK :Cola Camion MightyMover
-STR_80B2_POWERNAUGHT_COLA_TRUCK :Cola Camion Powernaught
-STR_80B3_WIZZOWOW_COLA_TRUCK :Cola Camion Wizzowow
-STR_80B4_MIGHTYMOVER_COTTON_CANDY :Camion pt. vatã zahãr MightyMover
-STR_80B5_POWERNAUGHT_COTTON_CANDY :Camion pt. vatã zahãr Powernaught
-STR_80B6_WIZZOWOW_COTTON_CANDY_TRUCK :Camion pt. vatã zahãr Wizzowow
-STR_80B7_MIGHTYMOVER_TOFFEE_TRUCK :Camion pt. caramel MightyMover
-STR_80B8_POWERNAUGHT_TOFFEE_TRUCK :Camion pt. caramel Powernaught
+STR_80AE_MIGHTYMOVER_SUGAR_TRUCK :Camion pentru zahăr MightyMover
+STR_80AF_POWERNAUGHT_SUGAR_TRUCK :Camion pentru zahăr Powernaught
+STR_80B0_WIZZOWOW_SUGAR_TRUCK :Camion pentru zahăr Wizzowow
+STR_80B1_MIGHTYMOVER_COLA_TRUCK :Camion pentru cola MightyMover
+STR_80B2_POWERNAUGHT_COLA_TRUCK :Camion pentru cola Powernaught
+STR_80B3_WIZZOWOW_COLA_TRUCK :Camion pentru cola Wizzowow
+STR_80B4_MIGHTYMOVER_COTTON_CANDY :Camion pentru vată de zahăr MightyMover
+STR_80B5_POWERNAUGHT_COTTON_CANDY :Camion pentru vată de zahăr Powernaught
+STR_80B6_WIZZOWOW_COTTON_CANDY_TRUCK :Camion pentru vată de zahăr Wizzowow
+STR_80B7_MIGHTYMOVER_TOFFEE_TRUCK :Camion pentru caramel MightyMover
+STR_80B8_POWERNAUGHT_TOFFEE_TRUCK :Camion pentru caramel Powernaught
STR_80B9_WIZZOWOW_TOFFEE_TRUCK :Camion pentru caramel Wizzowow
-STR_80BA_MIGHTYMOVER_TOY_VAN :Camion pt. jucãrii MightyMover
-STR_80BB_POWERNAUGHT_TOY_VAN :Camion pt. jucãrii Powernaught
-STR_80BC_WIZZOWOW_TOY_VAN :Camion pentru jucãrii Wizzowow
-STR_80BD_MIGHTYMOVER_CANDY_TRUCK :Camion pt. bomboane MightyMover
-STR_80BE_POWERNAUGHT_CANDY_TRUCK :Camion pt. bomboane Powernaught
+STR_80BA_MIGHTYMOVER_TOY_VAN :Camion pentru jucării MightyMover
+STR_80BB_POWERNAUGHT_TOY_VAN :Camion pentru jucării Powernaught
+STR_80BC_WIZZOWOW_TOY_VAN :Camion pentru jucării Wizzowow
+STR_80BD_MIGHTYMOVER_CANDY_TRUCK :Camion pentru bomboane MightyMover
+STR_80BE_POWERNAUGHT_CANDY_TRUCK :Camion pentru bomboane Powernaught
STR_80BF_WIZZOWOW_CANDY_TRUCK :Camion pentru bomboane Wizzowow
-STR_80C0_MIGHTYMOVER_BATTERY_TRUCK :Camion pt. baterii MightyMover
-STR_80C1_POWERNAUGHT_BATTERY_TRUCK :Camion pt. baterii Powernaught
+STR_80C0_MIGHTYMOVER_BATTERY_TRUCK :Camion pentru baterii MightyMover
+STR_80C1_POWERNAUGHT_BATTERY_TRUCK :Camion pentru baterii Powernaught
STR_80C2_WIZZOWOW_BATTERY_TRUCK :Camion pentru baterii Wizzowow
-STR_80C3_MIGHTYMOVER_FIZZY_DRINK :Camion pt. sucuri MightyMover
-STR_80C4_POWERNAUGHT_FIZZY_DRINK :Camion pt. sucuri Powernaught
+STR_80C3_MIGHTYMOVER_FIZZY_DRINK :Camion pentru sucuri MightyMover
+STR_80C4_POWERNAUGHT_FIZZY_DRINK :Camion pentru sucuri Powernaught
STR_80C5_WIZZOWOW_FIZZY_DRINK_TRUCK :Camion pentru sucuri Wizzowow
-STR_80C6_MIGHTYMOVER_PLASTIC_TRUCK :Camion pt. plastic MightyMover
-STR_80C7_POWERNAUGHT_PLASTIC_TRUCK :Camion pt. plastic Powernaught
+STR_80C6_MIGHTYMOVER_PLASTIC_TRUCK :Camion pentru plastic MightyMover
+STR_80C7_POWERNAUGHT_PLASTIC_TRUCK :Camion pentru plastic Powernaught
STR_80C8_WIZZOWOW_PLASTIC_TRUCK :Camion pentru plastic Wizzowow
-STR_80C9_MIGHTYMOVER_BUBBLE_TRUCK :Camion pt. balonase MightyMover
-STR_80CA_POWERNAUGHT_BUBBLE_TRUCK :Camion pt. balonase Powernaught
-STR_80CB_WIZZOWOW_BUBBLE_TRUCK :Camion pentru balonase Wizzowow
+STR_80C9_MIGHTYMOVER_BUBBLE_TRUCK :Camion pentru balonaÅŸe MightyMover
+STR_80CA_POWERNAUGHT_BUBBLE_TRUCK :Camion pentru balonaÅŸe Powernaught
+STR_80CB_WIZZOWOW_BUBBLE_TRUCK :Camion pentru balonaÅŸe Wizzowow
STR_80CC_MPS_OIL_TANKER :Tanc petrolier MPS
STR_80CD_CS_INC_OIL_TANKER :Tanc petrolier CS-Inc.
-STR_80CE_MPS_PASSENGER_FERRY :Vas de pasageri MPS
-STR_80CF_FFP_PASSENGER_FERRY :Vas de pasageri FFP
-STR_80D0_BAKEWELL_300_HOVERCRAFT :Vas de pasageri Bakewell 300
-STR_80D1_CHUGGER_CHUG_PASSENGER :Vas de pasageri Chugger-Chug
-STR_80D2_SHIVERSHAKE_PASSENGER_FERRY :Vas de pasageri Shivershake
-STR_80D3_YATE_CARGO_SHIP :Navã de marfã Yate Cargo
-STR_80D4_BAKEWELL_CARGO_SHIP :Navã de marfã Bakewell
-STR_80D5_MIGHTYMOVER_CARGO_SHIP :Navã de marfã Mightymover
-STR_80D6_POWERNAUT_CARGO_SHIP :Navã de marfã Powernaut
+STR_80CE_MPS_PASSENGER_FERRY :Feribot de călători MPS
+STR_80CF_FFP_PASSENGER_FERRY :Feribot de călători FFP
+STR_80D0_BAKEWELL_300_HOVERCRAFT :Aeroglisor Bakewell 300
+STR_80D1_CHUGGER_CHUG_PASSENGER :Feribot de călători Chugger-Chug
+STR_80D2_SHIVERSHAKE_PASSENGER_FERRY :Feribot de călători Shivershake
+STR_80D3_YATE_CARGO_SHIP :Navă de marfă Yate
+STR_80D4_BAKEWELL_CARGO_SHIP :Navă de marfă Bakewell
+STR_80D5_MIGHTYMOVER_CARGO_SHIP :Navă de marfă Mightymover
+STR_80D6_POWERNAUT_CARGO_SHIP :Navă de marfă Powernaut
STR_80D7_SAMPSON_U52 :Sampson U52
STR_80D8_COLEMAN_COUNT :Coleman Count
STR_80D9_FFP_DART :FFP Dart
@@ -2507,37 +2533,37 @@
STR_80FD_TRICARIO_HELICOPTER :Elicopter Tricario
STR_80FE_GURU_X2_HELICOPTER :Elicopter Guru X2
STR_80FF_POWERNAUT_HELICOPTER :Elicopter Powernaut
-STR_8100_MESSAGE_FROM_VEHICLE_MANUFACTURE :{WHITE}Mesaj de la producãtorul de vehicule
+STR_8100_MESSAGE_FROM_VEHICLE_MANUFACTURE :{WHITE}Mesaj de la producătorul de vehicule
STR_8101_WE_HAVE_JUST_DESIGNED_A :{GOLD}Am creat un nou tip de {STRING}. Ati fi interesati de folosirea exclusivã pentru un an a acestui vehicul, astfel ca noi sa putem observa rezultatele înaintea lansãrii oficiale?
-STR_8102_RAILROAD_LOCOMOTIVE :vehicul feroviar
+STR_8102_RAILROAD_LOCOMOTIVE :locomotivă
STR_8103_ROAD_VEHICLE :autovehicul
-STR_8104_AIRCRAFT :aeronavã
-STR_8105_SHIP :navã
-STR_8106_MONORAIL_LOCOMOTIVE :vehicul monorail
-STR_8107_MAGLEV_LOCOMOTIVE :vehicul maglev
+STR_8104_AIRCRAFT :aeronavă
+STR_8105_SHIP :navă
+STR_8106_MONORAIL_LOCOMOTIVE :locomotivă monoşină
+STR_8107_MAGLEV_LOCOMOTIVE :locomotivă maglev
##id 0x8800
STR_8800_TRAIN_DEPOT :{WHITE}Depoul {TOWN}
-STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Cetãtenii sãrbãtoresc {}sosirea primului tren la {STATION}!
+STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Cetăţenii sărbătoresc {}sosirea primului tren la {STATION}!
STR_8802_DETAILS :{WHITE}{STRING} (Detalii)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tren în drum
STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
STR_8806_GO_TO :Mergi la {STATION}
-STR_8807_GO_TO_TRANSFER :Mergi la {STATION} (Transferã si preia încãrcãtura)
-STR_8808_GO_TO_UNLOAD :Mergi la {STATION} (Descarcã)
-STR_8809_GO_TO_TRANSFER_UNLOAD :Mergi la {STATION} (Transferã si lasã descãrcat)
-STR_880A_GO_TO_LOAD :Mergi la {STATION} (Încarcã)
-STR_880B_GO_TO_TRANSFER_LOAD :Mergi la {STATION} (Transferã si încarcã 100%)
-STR_880C_GO_NON_STOP_TO :Mergi non-stop la {STATION}
+STR_8807_GO_TO_TRANSFER :Mergi la {STATION} (Transferă şi preia încărcătura)
+STR_8808_GO_TO_UNLOAD :Mergi la {STATION} (Descarcă)
+STR_8809_GO_TO_TRANSFER_UNLOAD :Mergi la {STATION} (Transferă şi lasă descărcat)
+STR_880A_GO_TO_LOAD :Mergi la {STATION} (Încarcă)
+STR_880B_GO_TO_TRANSFER_LOAD :Mergi la {STATION} (Transferă şi încarcă 100%)
+STR_880C_GO_NON_STOP_TO :Mergi fără oprire la {STATION}
STR_880D_GO_TO_NON_STOP_TRANSFER :Mergi non-stop la {STATION} (Transferã si ia încãrcãtura)
-STR_880E_GO_NON_STOP_TO_UNLOAD :Mergi non-stop la {STATION} (Descarcã)
-STR_880F_GO_TO_NON_STOP_TRANSFER_UNLOAD :Mergi non-stop la {STATION} (Transferã si lasã descãrcat)
-STR_8810_GO_NON_STOP_TO_LOAD :Mergi non-stop la {STATION} (Încarcã)
-STR_8811_GO_TO_NON_STOP_TRANSFER_LOAD :Mergi non-stop la {STATION} (Transferã si încarcã 100%)
+STR_880E_GO_NON_STOP_TO_UNLOAD :Mergi fără oprire la {STATION} (Descarcă)
+STR_880F_GO_TO_NON_STOP_TRANSFER_UNLOAD :Mergi fără oprire la {STATION} (Transferă şi lasă descărcat)
+STR_8810_GO_NON_STOP_TO_LOAD :Mergi fără oprire la {STATION} (Încarcă)
+STR_8811_GO_TO_NON_STOP_TRANSFER_LOAD :Mergi fără oprire la {STATION} (Transferă şi încarcă 100%)
STR_GO_TO_TRAIN_DEPOT :Mergi la depoul {TOWN}
STR_SERVICE_AT_TRAIN_DEPOT :Service la Depoul {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Mergi non-stop la Depoul {TOWN}
+STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Mergi fără oprire la Depoul {TOWN}
STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Non-stop pt. service la Depoul {TOWN}
STR_HEADING_FOR_TRAIN_DEPOT :{ORANGE}Merge la Depoul {TOWN}
@@ -2551,65 +2577,65 @@
STR_8812_EMPTY :{LTBLUE}Gol
STR_8813_FROM :{LTBLUE}{CARGO} de la {STATION}
STR_FROM_MULT :{LTBLUE}{CARGO} de la {STATION} (x{NUM})
-STR_8814_TRAIN_IS_WAITING_IN_DEPOT :{WHITE}Trenul {COMMA} asteaptã în depou
+STR_8814_TRAIN_IS_WAITING_IN_DEPOT :{WHITE}Trenul {COMMA} aşteaptă în depou
STR_8815_NEW_VEHICLES :{BLACK}Vehicule noi
STR_8816 :{BLACK}-
STR_8819_TRAIN_TOO_LONG :{WHITE}Tren prea lung
-STR_881A_TRAINS_CAN_ONLY_BE_ALTERED :{WHITE}Trenurile pot fi modificate doar când se aflã într-un depou
-STR_881B_TRAINS :{WHITE}{COMPANY} - {COMMA} Trenuri
+STR_881A_TRAINS_CAN_ONLY_BE_ALTERED :{WHITE}Trenurile pot fi modificate doar când staţionează într-un depou
+STR_881B_TRAINS :{WHITE}{COMPANY} - {COMMA} Tren{P "" uri}
STR_881C_NEW_RAIL_VEHICLES :{WHITE}Noi vehicule feroviare
STR_NEW_ELRAIL_VEHICLES :{WHITE}Noi Vehicule Electrice pe Sine
-STR_881D_NEW_MONORAIL_VEHICLES :{WHITE}Noi vehicule monorail
+STR_881D_NEW_MONORAIL_VEHICLES :{WHITE}Noi vehicule monoşină
STR_881E_NEW_MAGLEV_VEHICLES :{WHITE}Noi vehicule maglev
STR_ALL_AVAIL_RAIL_VEHICLES :{WHITE}Vehicule pe sine
-STR_881F_BUILD_VEHICLE :{BLACK}Cumpãrã vehicul
+STR_881F_BUILD_VEHICLE :{BLACK}Cumpără vehicul
STR_CLONE_ROAD_VEHICLE :{BLACK}Cloneazã vehiculul
STR_CLONE_ROAD_VEHICLE_INFO :{BLACK}Acest buton va crea o copie a autovehiculului. Control+click pentru comenzi comune
STR_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}Acest buton va crea o copie a autovehiculului. Apasã acest buton, apoi fã click pe un autovehicul de pe hartã. Control+click pentru a-i da ordine comune
STR_CLONE_TRAIN :{BLACK}Cloneazã trenul
STR_CLONE_TRAIN_INFO :{BLACK}Acest buton va crea o copie a întregului tren. Control+click pentru comenzi comune
STR_CLONE_TRAIN_DEPOT_INFO :{BLACK}Acest buton va crea o copie a întregului tren. Apasã acest buton, apoi fã click pe un tren de pe hartã. Control+click pentru a-i da ordine comune
-STR_8820_RENAME :{BLACK}Redenumeste
+STR_8820_RENAME :{BLACK}RedenumeÅŸte
STR_8823_SKIP :{BLACK}Sãri peste
-STR_8824_DELETE :{BLACK}Sterge
-STR_8825_NON_STOP :{BLACK}Non-stop
+STR_8824_DELETE :{BLACK}Åžterge
+STR_8825_NON_STOP :{BLACK}Fără oprire
STR_8826_GO_TO :{BLACK}Mergi la
-STR_8827_FULL_LOAD :{BLACK}Full-load
-STR_8828_UNLOAD :{BLACK}Descãrcare
+STR_8827_FULL_LOAD :{BLACK}Încarcă 100%
+STR_8828_UNLOAD :{BLACK}Descarcă
STR_REFIT :{BLACK}Rearanjeaza
STR_REFIT_TIP :{BLACK}Alege tipul de marfa pentru rearanjare. Control+click pt a anula rearanjarea
STR_REFIT_ORDER :(Rearanjeaza in {STRING})
STR_8829_ORDERS :{WHITE}{VEHICLE} (Comenzi)
-STR_882A_END_OF_ORDERS :{SETX 10}- - Sfârsitul comenzilor - -
+STR_882A_END_OF_ORDERS :{SETX 10}- - Sfârşitul comenzilor - -
STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Service
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Nu pot construi vehiculul...
-STR_882C_BUILT_VALUE :{LTBLUE}{STRING}{BLACK} Cumpãrat: {LTBLUE}{NUM}{BLACK} Valoare: {LTBLUE}{CURRENCY}
+STR_882C_BUILT_VALUE :{LTBLUE}{STRING}{BLACK} Cumpărat: {LTBLUE}{NUM}{BLACK} Valoare: {LTBLUE}{CURRENCY}
STR_882D_VALUE :{LTBLUE}{STRING}{BLACK} Valoare: {LTBLUE}{CURRENCY}
STR_882E :{WHITE}{VEHICLE}
-STR_882F_LOADING_UNLOADING :{LTBLUE}Încarcã / Descarcã
+STR_882F_LOADING_UNLOADING :{LTBLUE}Încărcare / Descărcare
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Trenul trebuie oprit intr-un depou
STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Nu pot trimite trenul la depou...
STR_8831_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Nu mai este loc pentru comenzi
STR_8832_TOO_MANY_ORDERS :{WHITE}Prea multe comenzi
-STR_8833_CAN_T_INSERT_NEW_ORDER :{WHITE}Nu pot adãuga o comandã nouã...
-STR_8834_CAN_T_DELETE_THIS_ORDER :{WHITE}Nu pot sterge aceastã comandã...
-STR_8835_CAN_T_MODIFY_THIS_ORDER :{WHITE}Nu pot modifica aceastã comandã...
+STR_8833_CAN_T_INSERT_NEW_ORDER :{WHITE}Nu pot adăuga o comandă nouă...
+STR_8834_CAN_T_DELETE_THIS_ORDER :{WHITE}Nu pot şterge această comandă...
+STR_8835_CAN_T_MODIFY_THIS_ORDER :{WHITE}Nu pot modifica această comandă...
STR_8837_CAN_T_MOVE_VEHICLE :{WHITE}Nu pot muta vehiculul...
STR_REAR_ENGINE_FOLLOW_FRONT_ERROR :{WHITE}Al doilea vagon+motor va avea mereu aceeasi destinatie ca si primul
STR_8838_N_A :N/A{SKIP}
STR_8839_CAN_T_SELL_RAILROAD_VEHICLE :{WHITE}Nu pot vinde vehiculul...
-STR_883A_UNABLE_TO_FIND_ROUTE_TO :{WHITE}Nu pot gãsi un drum spre un depou local
+STR_883A_UNABLE_TO_FIND_ROUTE_TO :{WHITE}Nu pot găsi un drum spre un depou local
STR_883B_CAN_T_STOP_START_TRAIN :{WHITE}Nu pot opri-porni trenul...
-STR_883C_SERVICING_INTERVAL_DAYS :{BLACK}Intervalul pt. service: {LTBLUE}{COMMA}zile{BLACK} Ultimul service: {LTBLUE}{DATE_LONG}
+STR_883C_SERVICING_INTERVAL_DAYS :{BLACK}Intervalul pentru întreţinere: {LTBLUE}{COMMA}zile{BLACK} Ultima întreţinere: {LTBLUE}{DATE_LONG}
STR_SERVICING_INTERVAL_PERCENT :{BLACK}Intervalul de service: {LTBLUE}{COMMA}%{BLACK} Ultimul service: {LTBLUE}{DATE_LONG}
-STR_883D_TRAINS_CLICK_ON_TRAIN_FOR :{BLACK}Trenuri - apasã aici pentru informatii despre trenuri
-STR_883E_BUILD_NEW_TRAINS_REQUIRES :{BLACK}Cumpãrã trenuri noi (necesitã un depou)
-STR_883F_TRAINS_CLICK_ON_TRAIN_FOR :{BLACK}Trenuri - clic pe tren pentru informatii, mutã vehiculele pentru adaugare scoatere din tren
-STR_8840_BUILD_NEW_TRAIN_VEHICLE :{BLACK}Construieste un nou vehicul feroviar
-STR_8841_DRAG_TRAIN_VEHICLE_TO_HERE :{BLACK}Mutã un vehicul aici pentru a-l vinde
+STR_883D_TRAINS_CLICK_ON_TRAIN_FOR :{BLACK}Trenuri - apasă aici pentru informaţii despre trenuri
+STR_883E_BUILD_NEW_TRAINS_REQUIRES :{BLACK}Cumpără trenuri noi (necesită un depou)
+STR_883F_TRAINS_CLICK_ON_TRAIN_FOR :{BLACK}Trenuri - clic pe tren pentru informaţii, mută vehiculele pentru adăugare-scoatere din tren
+STR_8840_BUILD_NEW_TRAIN_VEHICLE :{BLACK}ConstruieÅŸte un nou vehicul feroviar
+STR_8841_DRAG_TRAIN_VEHICLE_TO_HERE :{BLACK}Mută un vehicul aici pentru a-l vinde
STR_8842_CENTER_MAIN_VIEW_ON_TRAIN :{BLACK}Centreazã imaginea pe locatia depoului
STR_8843_TRAIN_VEHICLE_SELECTION :{BLACK}Lista de selectie a componentelor trenului - clic pe vehicule pt. informatii
STR_8844_BUILD_THE_HIGHLIGHTED_TRAIN :{BLACK}Cumpãrã vehiculul selectat
@@ -2630,7 +2656,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Lista de comenzi - clic pe comandã pentru a o selecta
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Sãri peste comanda curentã si treci la urmãtoarea
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Sterge comanda selectatã
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Mergi non-stop pânã la destinatia din comanda selectatã
+STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Circulă fără oprire până la destinaţia selectată
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Introdu o comandã înaintea celei selectate sau adaugã o comandã la sfârsitul listei
STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Forteazã trenul sã astepte la destinatia selectatã pânã la umplerea la capacitate maximã
STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Forteazã trenul sã descarce marfa la destinatia selectatã
@@ -2713,6 +2739,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Numele autovehiculului
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Cetãtenii sãrbãtoresc{}sosirea primului autobuz la {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Cetãtenii sãrbãtoresc{}sosirea primului camion la {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Cetăţenii sărbătoresc . . .{}sosirea primului primul tramvai pentru călători la {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Cetăţenii sărbătoresc . . .{}sosirea primului primul tramvai pentru marfă la {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Accident rutier!{}Soferul decedat in urma coliziunii cu un tren
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Accident rutier!{}{COMMA} victime in urma coliziunii cu un tren
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Nu pot schimba întoarce autvehiculul...
@@ -2731,8 +2759,8 @@
STR_ROAD_SELECT_TYPE_OF_CARGO_FOR :{BLACK}Alege tipul de marfa pentru transport cu autovehiculul
##id 0x9800
-STR_9800_DOCK_CONSTRUCTION :Constructii navale
-STR_9801_DOCK_CONSTRUCTION :{WHITE}Constructie port
+STR_9800_DOCK_CONSTRUCTION :Construcţii navale
+STR_9801_DOCK_CONSTRUCTION :{WHITE}Construcţie port
STR_9802_CAN_T_BUILD_DOCK_HERE :{WHITE}Nu pot construi port aici...
STR_9803_SHIP_DEPOT :{WHITE}Santierul Naval {TOWN}
STR_9804_NEW_SHIPS :{BLACK}Nave noi
@@ -2799,7 +2827,7 @@
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Nu pot schimba tipul navei...
STR_9842_REFITTABLE :(suportã alte mãrfuri)
STR_GO_TO_SHIP_DEPOT :Mergi la Santierul Naval {TOWN}
-SERVICE_AT_SHIP_DEPOT :Service la Santierul Naval {TOWN}
+SERVICE_AT_SHIP_DEPOT :Întreţinere la şantierul naval {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Airoporturi
@@ -2834,7 +2862,7 @@
STR_A01A_CAPACITY :{BLACK}Capacitate: {LTBLUE}{CARGO}
STR_A01B_AIRCRAFT_MUST_BE_STOPPED :{WHITE}Aeronava trebuie sã se afle într-un hangar
STR_A01C_CAN_T_SELL_AIRCRAFT :{WHITE}Nu pot vinde aeronava...
-STR_A01D_AIRPORT_CONSTRUCTION :Constructie aeroport
+STR_A01D_AIRPORT_CONSTRUCTION :Construcţie aeroport
STR_A01E_BUILD_AIRPORT :{BLACK}Constr. aeroport
STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT :{BLACK}Aeronavã - clic pe aeronavã pentru informatii
STR_A020_BUILD_NEW_AIRCRAFT_REQUIRES :{BLACK}Cumpãrã o nouã aeronavã (necesitã un aeroport)
@@ -2871,7 +2899,7 @@
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Noua capacitate: {GOLD}{STRING}{}{BLACK}Costul transformãrii: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Nu pot schimba tipul de încãrcãturã...
STR_GO_TO_AIRPORT_HANGAR :Mergi la Hangarul {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Service la Hangarul {STATION}
+SERVICE_AT_AIRPORT_HANGAR :Întreţinere la hangarul {STATION}
##id 0xB000
STR_B000_ZEPPELIN_DISASTER_AT :{BLACK}{BIGFONT}Accident de zepelin la{STATION}!
@@ -2997,6 +3025,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Esti pe cale sa vinzi toate vehiculele din depou. Esti sigur?
+STR_DEPOT_WRONG_DEPOT_TYPE :Tip incorect de depou
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Vinde toate trenurile din the depou
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Vinde toate autovehiculele din depou
@@ -3187,3 +3216,25 @@
STR_TRANSPARENT_BUILDINGS_DESC :{BLACK}Comuta transparenta pentru construibile, precum statii, depouri, indicatoare si linii electrificate
STR_TRANSPARENT_BRIDGES_DESC :{BLACK}Comuta transparenta pentru poduri
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Comuta transparenta pentru structuri ca farurile si antenele - poate in viitor, pentru efect
+
+##### Mass Order
+STR_GROUP_TINY_NAME :{TINYFONT}{GROUP}
+STR_GROUP_ALL_TRAINS :Toate trenurile
+STR_GROUP_ALL_ROADS :Toate autovehiculele
+STR_GROUP_ALL_SHIPS :Toate navele
+STR_GROUP_ALL_AIRCRAFTS :Toate aeronavele
+STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
+
+STR_GROUP_TRAINS_CAPTION :{WHITE}{GROUP} - {COMMA} Tren{P "" uri}
+STR_GROUP_ROADVEH_CAPTION :{WHITE}{GROUP} - {COMMA} Autovehicul{P "" e}
+STR_GROUP_SHIPS_CAPTION :{WHITE}{GROUP} - {COMMA} Nav{P a e}
+STR_GROUP_AIRCRAFTS_CAPTION :{WHITE}{GROUP} - {COMMA} Aeronav{P a e}
+
+
+
+STR_PROFIT_GOOD_THIS_YEAR_GOOD_LAST_YEAR :{TINYFONT}{BLACK}Profit anul acesta: {GREEN}{CURRENCY} {BLACK}(anul trecut: {GREEN}{CURRENCY}{BLACK})
+STR_PROFIT_BAD_THIS_YEAR_GOOD_LAST_YEAR :{TINYFONT}{BLACK}Profit anul acesta: {RED}{CURRENCY} {BLACK}(anul trecut: {GREEN}{CURRENCY}{BLACK})
+STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Profit anul acesta: {GREEN}{CURRENCY} {BLACK}(anul trecut: {RED}{CURRENCY}{BLACK})
+STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Profit anul acesta: {RED}{CURRENCY} {BLACK}(anul trecut: {RED}{CURRENCY}{BLACK})
+
+########
--- a/src/lang/swedish.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/swedish.txt Fri Jun 01 20:54:09 2007 +0000
@@ -3,6 +3,8 @@
##isocode sv_SE
##plural 0
+#
+
##id 0x0000
STR_NULL :
STR_0001_OFF_EDGE_OF_MAP :{WHITE}Utanför kanten
@@ -1046,6 +1048,7 @@
STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL :{LTBLUE}Ny globalt sätt att hitta rutt (NPF, åsidosätter NTP): {ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}Godsfaktor för att simulera tunga tåg: {ORANGE}{STRING}
STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}Tillåt genomfarts-stop på stadsägda vägar: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}Tillåt byggande av närliggande stationer: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SMALL_AIRPORTS :{LTBLUE}Tillåt alltid små flygplatser: {ORANGE}{STRING}
@@ -1086,6 +1089,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Serva helikoptrar vid landningplattor automatiskt: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Koppla landskapsverktyget till övriga verktygsfält: {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}Omvänd scrollriktning: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}Mjuk skrollning av vy: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}Visa måtthjälptext vid användning av byggverktyg: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Visa färgschema för företag: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :Inga
@@ -1586,6 +1590,13 @@
STR_RAILROAD_TRACK_WITH_PRESIGNALS :Järnväg med för-signaler
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Järnväg med utgående signaler
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Järnväg med kombinerade signaler
+STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS :Järnväg med normala signaler och för-signaler
+STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS :Järnväg med normala signaler och utfarts-signaler
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS :Järnväg med normala signaler och kombo-signaler
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS :Järnväg med för- och utfarts-signaler
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS :Järnväg med för- och kombo-signaler
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS :Järnväg med utfards-signaler och kombo-signaler
+STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Måste ta bort tågstationen först
@@ -1593,22 +1604,39 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Måste ta bort väg först
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Vägarbete pågår
STR_1802_ROAD_CONSTRUCTION :{WHITE}Bygg väg
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Byggnation av spårvagn
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Välj vägbro
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... enkelriktade vägar kan inte ha korsningar
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Kan inte bygga väg här...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Kan inte bygga spårvagnsräls här...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Kan inte ta bort väg här...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Kan inte ta bort spårvagnsrälsen härifrån...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Riktning för bussgarage
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Spårvagnsdepåns orientering
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Kan inte bygga bussgarage här...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Kan inte bygga spårvagnsdepå här...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Kan inte bygga busshållplats...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Kan inte bygga lastbilsstation...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Kan inte bygga passagerar-spårvagnsstation...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Kan inte bygga frakt-spårvagnsstation...
STR_180A_ROAD_CONSTRUCTION :Bygg väg
+STR_180A_TRAMWAY_CONSTRUCTION :Spårvagnskonstruktion
STR_180B_BUILD_ROAD_SECTION :{BLACK}Bygg väg
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Bygg spårvagnssektion
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Bygg bussgarage (för att bygga eller reparera vägfordon)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Bygg spårvagnsdepå (för att konstruera och serva fordon)
STR_180D_BUILD_BUS_STATION :{BLACK}Bygg busshållplats
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Bygg lastbilsstation
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Bygg passagerar-spårvagnsstation
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Bygg frakt-spårvagnsstation
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Bygg vägbro
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Bygg spårvagnsbro
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Bygg vägtunnel
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Bygg spårvagnstunnel
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Växla mellan att bygga/ta bort väg
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Växla byggande/rivande av spårvagnskonstruktion
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Välj riktning för bussgarage
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Välj spårvagnsdepåns orientering
STR_1814_ROAD :Väg
STR_1815_ROAD_WITH_STREETLIGHTS :Väg med gatubelysning
STR_1816_TREE_LINED_ROAD :Väg med träd
@@ -1616,6 +1644,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Väg-/Järnvägskorsning
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Kan inte ta bort busstation...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Kan inte ta bort lastbilsstation...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Kan inte ta bort passagerar-spårvagnsstation...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Kan inte ta bort frakt-spårvagnsstation...
##id 0x2000
STR_2000_TOWNS :{WHITE}Städer
@@ -1780,8 +1810,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} tar nu emot {STRING} och {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Busshållplatsriktning
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Lastbilsbryggsriktning
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Passagerar-spårvagns riktning
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Frakt-spårvagns riktning
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Måste riva busshållplats först
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Måste riva lastbilsbrygga först
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Måste ta bort passagerar-spårvagnsstation först
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Måste ta bort frakt-spårvagnsstation först
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Station{P "" er}
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- Inga -
@@ -1793,6 +1827,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Välj längden på järnvägsstation
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Välj riktning för busshållplats
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Välj riktning för lastbilsbrygga
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Välj passagerar-spårvagnsstationens orientering
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Välj frakt-spårvagnsstationens orientering
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Centrera vyn på stationen
STR_3054_SHOW_STATION_RATINGS :{BLACK}Visa stationens klassificering
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Byt namn på stationen
@@ -2243,6 +2279,8 @@
STR_LIVERY_HELICOPTER :Helikopter
STR_LIVERY_SMALL_PLANE :Litet flygplan
STR_LIVERY_LARGE_PLANE :Stort Flygplan
+STR_LIVERY_PASSENGER_TRAM :Passagerarspårvagn
+STR_LIVERY_FREIGHT_TRAM :Fraktspårvagn
STR_LIVERY_GENERAL_TIP :{BLACK}Visa generellt färgschema
STR_LIVERY_TRAIN_TIP :{BLACK}Visa färgscheman för tåg
@@ -2716,6 +2754,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Byt namn på vägfordon
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Invånarna firar . . .{}Första bussen ankommer till {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Invånarna firar . . .{}Första lastbilen ankommer till {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Invånarna firar . . .{}Första passagerar-spårvagnen anländer på {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Invånarna firar . . .{}Första frakt-spårvagnen anländer på {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Vägfordonskrash!{}förare dör i eldklot efter kollision med tåg
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Vägfordonskrash!{}{COMMA} dör i eldklot efter kollision med tåg
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Kan inte tvinga fordonet att vända om...
@@ -3000,6 +3040,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Du är på väg att sälja alla fordon i depån. Är du säker?
+STR_DEPOT_WRONG_DEPOT_TYPE :Felaktig depå-typ
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Sälj alla tåg i depån
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Sälj alla vägfordon i depån
--- a/src/lang/traditional_chinese.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/traditional_chinese.txt Fri Jun 01 20:54:09 2007 +0000
@@ -3,6 +3,8 @@
##isocode zh_TW
##plural 1
+#
+
##id 0x0000
STR_NULL :
STR_0001_OFF_EDGE_OF_MAP :{WHITE}超越版圖邊緣
@@ -1046,6 +1048,7 @@
STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL :{LTBLUE}新路徑æœå°‹æ¼”算法 (NPF 將覆蓋 NTP):{ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}貨物é‡é‡ç³»æ•¸ï¼Œä»¥æ¨¡æ“¬è¼ƒé‡åˆ—車:{ORANGE}{STRING}
STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}å¯åœ¨éŽ®å…§èˆˆå»ºè·¯é‚Šè»Šç«™ï¼š{ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}容許興建相鄰車站: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SMALL_AIRPORTS :{LTBLUE}æ°¸é å¯ä»¥èˆˆå»ºå°åž‹æ©Ÿå ´ï¼š{ORANGE}{STRING}
@@ -1098,6 +1101,7 @@
STR_CONFIG_PATCHES_SCROLLWHEEL_OFF :關閉
STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER :{LTBLUE}滾輪地圖æ²å‹•é€Ÿåº¦ï¼š {ORANGE}{STRING}
STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME :{LTBLUE}自動在開始新éŠæˆ²æ™‚æš«åœï¼š{ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS :{LTBLUE}使用進階載具å單: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_TRAINS :{LTBLUE}æ¯ä½çŽ©å®¶å¯æ“有列車數目:{ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_ROADVEH :{LTBLUE}æ¯ä½çŽ©å®¶å¯æ“有車輛數目:{ORANGE}{STRING}
@@ -1585,6 +1589,7 @@
STR_RAILROAD_TRACK_WITH_PRESIGNALS :有入å£è™ŸèªŒçš„éµè»Œ
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :有出å£è™ŸèªŒçš„éµè»Œ
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :有綜åˆè™ŸèªŒçš„éµè»Œ
+STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}å¿…é ˆå…ˆç§»é™¤ç«è»Šç«™
@@ -1592,22 +1597,38 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}å¿…é ˆå…ˆç§»é™¤é“è·¯
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}é“路施工ä¸
STR_1802_ROAD_CONSTRUCTION :{WHITE}鋪è¨é“è·¯
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}鋪è¨é›»è»Šè»Œ
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}é¸æ“‡é“路橋樑
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}ä¸èƒ½åœ¨æ¤é‹ªè¨é“è·¯...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}ä¸å¯ä»¥åœ¨é€™è£é‹ªè¨é›»è»Šè»Œ...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}ä¸èƒ½å¾žæ¤ç§»é™¤é“è·¯...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}ä¸å¯ä»¥ç§»é™¤é€™è£çš„電車軌...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}車庫方å‘
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}電車
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}ä¸èƒ½åœ¨æ¤å»ºç¯‰è»Šåº«...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}ä¸å¯ä»¥åœ¨é€™è£èˆˆå»ºé›»è»Šç¶ä¿®å» ...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}無法建築公車站...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}無法建築貨é‹ç«™...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}ä¸å¯ä»¥èˆˆå»ºé›»è»Šç«™...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}ä¸å¯èˆˆå»ºè¼‰è²¨é›»è»Šç«™...
STR_180A_ROAD_CONSTRUCTION :鋪è¨é“è·¯
+STR_180A_TRAMWAY_CONSTRUCTION :鋪è¨é›»è»Šè»Œ
STR_180B_BUILD_ROAD_SECTION :{BLACK}鋪è¨ä¸€æ®µå…¬è·¯
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}興建電車站
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}建築車庫 (ç”¨ä¾†è£½é€ èˆ‡ç¶è·å…¬è·¯è»Šè¼›)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}興建電車ç¶ä¿®å» (ä¾›è£½é€ åŠç¶ä¿®ç”¨)
STR_180D_BUILD_BUS_STATION :{BLACK}建築公車站
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}建築貨é‹ç«™
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}興建載客電車站
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}興建載貨電車站
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}建築公路橋樑
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}架è¨é›»è»Šæ©‹
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}建築公路隧é“
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}é–‹é…電車隧é“
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}切æ›å»ºç¯‰/移除公路
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}鋪è¨é›»è»Šè»Œé–‹é—œ
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}é¸æ“‡è»Šåº«æ–¹å‘
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}é¸æ“‡é›»è»Šç¶ä¿®å» æ–¹å‘
STR_1814_ROAD :公路
STR_1815_ROAD_WITH_STREETLIGHTS :有路燈的公路
STR_1816_TREE_LINED_ROAD :有行é“樹的公路
@@ -1615,6 +1636,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :公路/éµé“平交é“
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}ä¸èƒ½å¾žé€™é‚Šç§»é™¤å…¬è»Šç«™...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}ä¸èƒ½å¾žé€™é‚Šç§»é™¤è²¨é‹ç«™...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}ä¸å¯ç§»é™¤è¼‰å®¢é›»è»Šç«™...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}ä¸å¯ç§»é™¤è¼‰è²¨é›»è»Šç«™...
##id 0x2000
STR_2000_TOWNS :{WHITE}城鎮
@@ -1779,8 +1802,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} ç¾åœ¨æŽ¥å— {STRING} 與 {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}公車站方å‘
STR_3043_TRUCK_STATION_ORIENT :{WHITE}貨é‹ç«™æ–¹å‘
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}載客電車方å‘
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}載貨電車方å‘
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}å¿…é ˆå…ˆæ‘§æ¯€å…¬è»Šç«™
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}å¿…é ˆå…ˆæ‘§æ¯€è²¨é‹ç«™
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}å¿…é ˆå…ˆç§»é™¤è¼‰å®¢é›»è»Šè»Šç«™
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}å¿…é ˆå…ˆç§»é™¤è¼‰è²¨é›»è»Šè»Šç«™
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} 座車站
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- ç„¡ -
@@ -1792,6 +1819,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}é¸æ“‡éµé“車站的長度
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}é¸æ“‡å…¬è»Šç«™æ–¹å‘
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}é¸æ“‡è²¨é‹ç«™æ–¹å‘
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}é¸æ“‡è¼‰å®¢é›»è»Šæ–¹å‘
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}é¸æ“‡è¼‰è²¨é›»è»Šæ–¹å‘
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}將主視野帶到車站ä½ç½®
STR_3054_SHOW_STATION_RATINGS :{BLACK}顯示車站評價
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}變更車站å稱
@@ -2012,6 +2041,8 @@
STR_SV_STNAME_HELIPORT :{STRING} ç›´å‡æ©Ÿå ´
STR_SV_STNAME_FOREST :{STRING} 森林
+STR_SV_GROUP_NAME :{GROUP}
+
############ end of savegame specific region!
##id 0x6800
@@ -3187,3 +3218,40 @@
STR_TRANSPARENT_BUILDINGS_DESC :{BLACK}å°‡é€æ˜Žåº¦å¥—用於建物,如車站ã€å» 棚ã€è·¯æ¨™åŠé›»ç·š
STR_TRANSPARENT_BRIDGES_DESC :{BLACK}å°‡é€æ˜Žåº¦å¥—用於橋樑
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}å°‡é€æ˜Žåº¦å¥—用於è¨æ–½ï¼Œå¦‚燈塔ã€å¤©ç·šå¡”ç‰
+
+##### Mass Order
+STR_GROUP_NAME_FORMAT :群組 {COMMA}
+STR_GROUP_TINY_NAME :{TINYFONT}{GROUP}
+STR_GROUP_ALL_TRAINS :所有列車
+STR_GROUP_ALL_ROADS :所有車輛
+STR_GROUP_ALL_SHIPS :所有船舶
+STR_GROUP_ALL_AIRCRAFTS :所有飛機
+STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
+STR_GROUP_ADD_SHARED_VEHICLE :åŠ å…¥å…±ç”¨è¼‰å…·
+STR_GROUP_REMOVE_ALL_VEHICLES :移除所有載具
+
+STR_GROUP_TRAINS_CAPTION :{WHITE}{GROUP} - {COMMA} 列車
+STR_GROUP_ROADVEH_CAPTION :{WHITE}{GROUP} - {COMMA} 車輛
+STR_GROUP_SHIPS_CAPTION :{WHITE}{GROUP} - {COMMA} 船舶
+STR_GROUP_AIRCRAFTS_CAPTION :{WHITE}{GROUP} - {COMMA} 飛機
+STR_GROUP_RENAME_CAPTION :{BLACK}為群組é‡æ–°å‘½å
+STR_GROUP_REPLACE_CAPTION :{WHITE}ç½®æ› "{GROUP}" 載具
+
+STR_GROUP_CAN_T_CREATE :{WHITE}ä¸èƒ½å»ºç«‹ç¾¤çµ„...
+STR_GROUP_CAN_T_DELETE :{WHITE}ä¸èƒ½ç§»é™¤ç¾¤çµ„...
+STR_GROUP_CAN_T_RENAME :{WHITE}ä¸èƒ½é‡æ–°å‘½å群組...
+STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}ä¸èƒ½å¾žç¾¤çµ„移除所有載具...
+STR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}ä¸èƒ½åŠ 入載具到這群組...
+STR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}ä¸èƒ½åŠ 入共用載具到這群組...
+
+STR_GROUPS_CLICK_ON_GROUP_FOR_TIP :{BLACK}群組 - 單擊群組以顯示載具åå–®
+STR_GROUP_CREATE_TIP :{BLACK}單擊建立群組
+STR_GROUP_DELETE_TIP :{BLACK}移除é¸æ“‡ç¾¤çµ„
+STR_GROUP_RENAME_TIP :{BLACK}為群組é‡æ–°å‘½å
+
+STR_PROFIT_GOOD_THIS_YEAR_GOOD_LAST_YEAR :{TINYFONT}{BLACK}本年盈餘: {GREEN}{CURRENCY} {BLACK}(去年: {GREEN}{CURRENCY}{BLACK})
+STR_PROFIT_BAD_THIS_YEAR_GOOD_LAST_YEAR :{TINYFONT}{BLACK}本年盈餘:{RED}{CURRENCY} {BLACK}(去年: {GREEN}{CURRENCY}{BLACK})
+STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}本年盈餘: {GREEN}{CURRENCY} {BLACK}(去年: {RED}{CURRENCY}{BLACK})
+STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}本年盈餘: {RED}{CURRENCY} {BLACK}(去年:{RED}{CURRENCY}{BLACK})
+
+########
--- a/src/lang/turkish.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/turkish.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1592,20 +1592,34 @@
STR_1802_ROAD_CONSTRUCTION :{WHITE}Yol Yapımı
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Köprü Seç
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Yol yapılamıyor...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Buraya tramvay yapılamaz...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Yol kaldırılamıyor...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Tramvay kaldırılamaz...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}Garaj Yönü
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}Tramvay Garı Yönü
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Buraya Garaj yapılamaz...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Buraya tramvay garı yapılamaz...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Otobüs durağı yapılamaz...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Kamyon durağı yapılamaz...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Yolcu tramvayı istasyonu yapılamaz...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Yük tramvayı istasyonu yapılamaz...
STR_180A_ROAD_CONSTRUCTION :Yol yapımı
+STR_180A_TRAMWAY_CONSTRUCTION :Tramvay yapımı
STR_180B_BUILD_ROAD_SECTION :{BLACK}Yol bölmesi yap
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Tramvay yolu yap
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Garaj yap (araç alımı ve bakımlar için)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Tramvay garı yap (araç alımı ve tamiri için)
STR_180D_BUILD_BUS_STATION :{BLACK}Otobüs durağı yap
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Kamyon yükleme bölgesi yap
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Yolcu tramvayı istasyonu yap
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Yük tramvayı istasyonu yap
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Köprü yap
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Tramvay köprüsü yap
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Tünel Yap
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Tramvay tüneli yap
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Yol yap/sil arasında geçiş yap
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Garaj yönünü seç
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Tramvay garı yönü
STR_1814_ROAD :Yol
STR_1815_ROAD_WITH_STREETLIGHTS :Lambali yol
STR_1816_TREE_LINED_ROAD :Ağaçli yol
@@ -1613,6 +1627,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Hemzemin geçit
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Otobüs durağı kaldırılamaz...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Kamyon durağı kaldırılamaz...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Yolcu tramvayı istasyonu kaldırılamıyor...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Yük tramvayı istasyonu kaldırılamıyor...
##id 0x2000
STR_2000_TOWNS :{WHITE}Åžehirler
@@ -1777,8 +1793,11 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} artık {STRING} ve {STRING} istiyor
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Otobüs Durağı Yönü
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Kamyon Durağı Yönü
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Yolcu Tramvayı Yönü
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Yük Tramvayı Yönü
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Önce otobüs durağı yıkılmalı
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Önce kamyon durağı yıkılmalı
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Önce yolcu tramvayı istasyonu yıkılmalı
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} istasyonları
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- Yok -
@@ -2010,6 +2029,7 @@
STR_SV_STNAME_HELIPORT :{STRING} Heliport
STR_SV_STNAME_FOREST :{STRING} Ormanı
+STR_SV_GROUP_NAME :{GROUP}
############ end of savegame specific region!
@@ -2046,6 +2066,7 @@
############ range for difficulty settings ends
STR_26816_NONE :Hiç
+STR_NUM_VERY_LOW :Çok az
STR_6816_LOW :Düşük
STR_6817_NORMAL :Normal
STR_6818_HIGH :Yüksek
@@ -2238,6 +2259,8 @@
STR_LIVERY_HELICOPTER :Helikopter
STR_LIVERY_SMALL_PLANE :Küçük Uçak
STR_LIVERY_LARGE_PLANE :Büyük Uçak
+STR_LIVERY_PASSENGER_TRAM :Yolcu Tramvayı
+STR_LIVERY_FREIGHT_TRAM :Yük Tramvayı
STR_LIVERY_GENERAL_TIP :{BLACK}Genel renk şemalarını göster
STR_LIVERY_TRAIN_TIP :{BLACK}Tren renk düzenlerini göster
--- a/src/lang/ukrainian.txt Fri May 25 00:25:08 2007 +0000
+++ b/src/lang/ukrainian.txt Fri Jun 01 20:54:09 2007 +0000
@@ -1215,6 +1215,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Ðвтоматичний техоглÑд гелікоптерів на площадках: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Включити меню рельєфу до меню будуваннÑ: {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}Протилежний напрÑмок прокрутки: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}Плавна прокрутка у вікні: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}Показувати розміри будівництва в підказці: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Показати кольори компаній: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :Жодна
@@ -1723,22 +1724,39 @@
STR_1801_MUST_REMOVE_ROAD_FIRST :{WHITE}Спочатку зруйнуйте дорогу
STR_ROAD_WORKS_IN_PROGRESS :{WHITE}Дорога ремонтуєтьÑÑ
STR_1802_ROAD_CONSTRUCTION :{WHITE}Будівництво дороги
+STR_1802_TRAMWAY_CONSTRUCTION :{WHITE}Будівництво трамвайної колії
STR_1803_SELECT_ROAD_BRIDGE :{WHITE}Виберіть дорожний міÑÑ‚
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... одноÑторонні дороги не можуть перетинатиÑÑŒ
STR_1804_CAN_T_BUILD_ROAD_HERE :{WHITE}Ðеможливо тут побудувати дорогу ...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Тут не можна побудувати трамвайну колію...
STR_1805_CAN_T_REMOVE_ROAD_FROM :{WHITE}Ðеможливо прибрати дорогу звідÑи...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Ðе можна прибрати трамвайну колію звідÑи...
STR_1806_ROAD_DEPOT_ORIENTATION :{WHITE}ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ð´ÐµÐ¿Ð¾
+STR_1806_TRAM_DEPOT_ORIENTATION :{WHITE}ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ñ‚Ñ€Ð°Ð¼Ð²Ð°Ð¹Ð½Ð¾Ð³Ð¾ депо
STR_1807_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}Ðеможливо будувати депо тут...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE :{WHITE}Тут не можна побудувати трамвайне депо...
STR_1808_CAN_T_BUILD_BUS_STATION :{WHITE}Ðеможливо будувати зупинку тут...
STR_1809_CAN_T_BUILD_TRUCK_STATION :{WHITE}Ðеможливо будувати вантажну Ñтанцію тут...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Ðе можна побудувати паÑажирÑьку трамвайну Ñтанцію...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Ðе можна побудувати вантажну трамвайну Ñтанцію...
STR_180A_ROAD_CONSTRUCTION :Будувати дороги
+STR_180A_TRAMWAY_CONSTRUCTION :Будівництво трамвайної колії
STR_180B_BUILD_ROAD_SECTION :{BLACK}Будувати дорогу
+STR_180B_BUILD_TRAMWAY_SECTION :{BLACK}Будувати трамвайну колію
STR_180C_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Будувати автомобільне депо
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Будувати трамвайне депо (Ð´Ð»Ñ Ð±ÑƒÐ´Ñ–Ð²Ð½Ð¸Ñ†Ñ‚Ð²Ð° та обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð°Ð¼Ð²Ð°Ñ—Ð²)
STR_180D_BUILD_BUS_STATION :{BLACK}Будувати зупинку
STR_180E_BUILD_TRUCK_LOADING_BAY :{BLACK}Будувати вантажну Ñтанцію
+STR_180D_BUILD_PASSENGER_TRAM_STATION :{BLACK}Побудувати паÑажирÑьку трамвайну Ñтанцію
+STR_180E_BUILD_CARGO_TRAM_STATION :{BLACK}Побудувати вантажну трамвайну Ñтанцію
STR_180F_BUILD_ROAD_BRIDGE :{BLACK}Будувати міÑÑ‚
+STR_180F_BUILD_TRAMWAY_BRIDGE :{BLACK}Побудувати трамвайний міÑÑ‚
STR_1810_BUILD_ROAD_TUNNEL :{BLACK}Будувати тунель
+STR_1810_BUILD_TRAMWAY_TUNNEL :{BLACK}Побудувати трамвайний тунель
STR_1811_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Будувати/зруйнувати дорогу
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Будувати/демонтувати колію
STR_1813_SELECT_ROAD_VEHICLE_DEPOT :{BLACK}Виберіть Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð´ÐµÐ¿Ð¾
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT :{BLACK}Виберіть орієнтацію трамвайного депо
STR_1814_ROAD :Дорога
STR_1815_ROAD_WITH_STREETLIGHTS :Дорога з вуличними ліхтарÑми
STR_1816_TREE_LINED_ROAD :Дорога з наÑадженнÑми
@@ -1746,6 +1764,8 @@
STR_1818_ROAD_RAIL_LEVEL_CROSSING :Залізничний переїзд
STR_CAN_T_REMOVE_BUS_STATION :{WHITE}Ðе можна знеÑти автобуÑну Ñтанцію...
STR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Ðе можна знеÑти грузову Ñтанцію...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Ðе можна знеÑти паÑажирÑьку трамвайну Ñтанцію...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Ðе можна знеÑти вантажну трамвайну Ñтанцію...
##id 0x2000
STR_2000_TOWNS :{WHITE}МіÑта
@@ -1910,8 +1930,12 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} тепер приймає {STRING} і {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ð·ÑƒÐ¿Ð¸Ð½ÐºÐ¸
STR_3043_TRUCK_STATION_ORIENT :{WHITE}ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ñтанції
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ð¿Ð°ÑажирÑької трамвайної Ñтанції
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð½Ð¾Ñ— трамвайної Ñтанції
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Спочатку зруйнуйте зупинку
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Спочатку зруйнуйте вантажну Ñтанцію
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Спочатку треба знеÑти паÑажирÑьку трамвайну Ñтанцію
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION :{WHITE}Спочатку треба знеÑти вантажну трамвайну Ñтанцію
STR_3048_STATIONS :{WHITE}{COMPANY} - {COMMA} Ñтанці{P Ñ Ñ— й}
STR_3049_0 :{YELLOW}{STATION} {STATIONFEATURES}
STR_304A_NONE :{YELLOW}- нема -
@@ -1923,6 +1947,8 @@
STR_3050_SELECT_LENGTH_OF_RAILROAD :{BLACK}Виберіть довжину залізничної Ñтанції
STR_3051_SELECT_BUS_STATION_ORIENTATION :{BLACK}Виберіть орієнтацію зупинки
STR_3052_SELECT_TRUCK_LOADING_BAY :{BLACK}Виберіть орієнтацію вантажної Ñтанції
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION :{BLACK}Виберіть орієнтацію паÑажирÑької трамвайної Ñтанції
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION :{BLACK}Виберіть орієнтацію вантажної трамвайної Ñтанції
STR_3053_CENTER_MAIN_VIEW_ON_STATION :{BLACK}Показати Ñтанцію в центрі екрану
STR_3054_SHOW_STATION_RATINGS :{BLACK}Показати рейтинг Ñтанції
STR_3055_CHANGE_NAME_OF_STATION :{BLACK}Перейменувати Ñтанцію
@@ -2410,6 +2436,8 @@
STR_LIVERY_HELICOPTER :Гелікоптер
STR_LIVERY_SMALL_PLANE :Малий літак
STR_LIVERY_LARGE_PLANE :Великий літак
+STR_LIVERY_PASSENGER_TRAM :ПаÑажирÑький трамвай
+STR_LIVERY_FREIGHT_TRAM :Вантажний трамвай
STR_LIVERY_GENERAL_TIP :{BLACK}Показати оÑновні кольорові Ñхеми
STR_LIVERY_TRAIN_TIP :{BLACK}Показати кольорову Ñхему поїздів
@@ -2883,6 +2911,8 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Ðазвати авто
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Жителі ÑвÑткують . . .{}Перший Ð°Ð²Ñ‚Ð¾Ð±ÑƒÑ Ð·'ÑвивÑÑ Ð½Ð° {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Жителі ÑвÑткують . . .{}Перша вантажівка з'ÑвилаÑÑ Ð½Ð° {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Жителі ÑвÑткують . . .{}Перший паÑажирÑький трамвай прибув на {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Жителі ÑвÑткують . . .{}Перший вантажний трамвай прибув на {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}ÐваріÑ!{}Водій загинув при зіткненні авто з поїздом
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}ÐваріÑ!{}{COMMA} загинуло при зіткненні авто з поїздом
STR_9033_CAN_T_MAKE_VEHICLE_TURN :{WHITE}Ðеможливо розвернути авто...
@@ -3167,6 +3197,7 @@
### depot strings
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Ви впевнені, що хочете продати уÑÑ– машини в депо?
+STR_DEPOT_WRONG_DEPOT_TYPE :Ðеправильний тип депо
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP :{BLACK}Продати вÑÑ– поїзди з депо
STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP :{BLACK}Продати вÑÑ– автомобілі з депо
--- a/src/livery.h Fri May 25 00:25:08 2007 +0000
+++ b/src/livery.h Fri Jun 01 20:54:09 2007 +0000
@@ -38,6 +38,10 @@
LS_SMALL_PLANE,
LS_LARGE_PLANE,
+ /* Trams (appear on Road Vehicles tab) */
+ LS_PASSENGER_TRAM,
+ LS_FREIGHT_TRAM,
+
LS_END
};
--- a/src/main_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/main_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -889,6 +889,8 @@
WP(w,vp_d).scrollpos_x += vp->virtual_width >> 1;
WP(w,vp_d).scrollpos_y += vp->virtual_height >> 1;
+ WP(w,vp_d).dest_scrollpos_x = WP(w,vp_d).scrollpos_x;
+ WP(w,vp_d).dest_scrollpos_y = WP(w,vp_d).scrollpos_y;
break;
case ZOOM_OUT:
if (vp->zoom == ZOOM_LVL_MAX) return false;
@@ -896,6 +898,8 @@
WP(w,vp_d).scrollpos_x -= vp->virtual_width >> 1;
WP(w,vp_d).scrollpos_y -= vp->virtual_height >> 1;
+ WP(w,vp_d).dest_scrollpos_x = WP(w,vp_d).scrollpos_x;
+ WP(w,vp_d).dest_scrollpos_y = WP(w,vp_d).scrollpos_y;
vp->virtual_width <<= 1;
vp->virtual_height <<= 1;
@@ -930,14 +934,15 @@
static void ToolbarBuildRailClick(Window *w)
{
const Player *p = GetPlayer(_local_player);
- Window *w2;
- w2 = PopupMainToolbMenu(w, 19, STR_1015_RAILROAD_CONSTRUCTION, RAILTYPE_END, ~p->avail_railtypes);
+ Window *w2 = PopupMainToolbMenu(w, 19, STR_1015_RAILROAD_CONSTRUCTION, RAILTYPE_END, ~p->avail_railtypes);
WP(w2, menu_d).sel_index = _last_built_railtype;
}
static void ToolbarBuildRoadClick(Window *w)
{
- Window *w2 = PopupMainToolbMenu(w, 20, STR_180A_ROAD_CONSTRUCTION, 1, 0);
+ const Player *p = GetPlayer(_local_player);
+ /* The standard road button is *always* available */
+ Window *w2 = PopupMainToolbMenu(w, 20, STR_180A_ROAD_CONSTRUCTION, 2, ~(p->avail_roadtypes | 1));
WP(w2, menu_d).sel_index = _last_built_roadtype;
}
@@ -1057,7 +1062,7 @@
pt = GetTileZoomCenterWindow(in,w);
if (pt.x != -1) {
- ScrollWindowTo(pt.x, pt.y, w);
+ ScrollWindowTo(pt.x, pt.y, w, true);
DoZoomInOutWindow(in ? ZOOM_IN : ZOOM_OUT, w);
}
@@ -2437,6 +2442,8 @@
WP(w, vp_d).scrollpos_x += ScaleByZoom(e->we.scroll.delta.x, vp->zoom);
WP(w, vp_d).scrollpos_y += ScaleByZoom(e->we.scroll.delta.y, vp->zoom);
+ WP(w, vp_d).dest_scrollpos_x = WP(w, vp_d).scrollpos_x;
+ WP(w, vp_d).dest_scrollpos_y = WP(w, vp_d).scrollpos_y;
} break;
case WE_MOUSEWHEEL:
--- a/src/misc_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/misc_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -239,6 +239,7 @@
"",
" Michael Blunck - Pre-Signals and Semaphores © 2003",
" George - Canal/Lock graphics © 2003-2004",
+ " David Dallaston - Tram tracks",
" Marcin Grzegorczyk - Foundations for Tracks on Slopes",
" All Translators - Who made OpenTTD a truly international game",
" Bug Reporters - Without whom OpenTTD would still be full of bugs!",
--- a/src/newgrf.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/newgrf.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -74,12 +74,8 @@
/* Used by Action 0x06 to preload a pseudo sprite and modify its content */
static byte *_preload_sprite = NULL;
-/* Set if any vehicle is loaded which uses 2cc (two company colours) */
-bool _have_2cc = false;
-
-/* Set if there are any newhouses loaded. */
-bool _have_newhouses = false;
-
+/* Indicates which are the newgrf features currently loaded ingame */
+uint8 _loaded_newgrf_features;
enum GrfDataType {
GDT_SOUND,
@@ -539,7 +535,7 @@
case 0x27: // Miscellaneous flags
FOR_EACH_OBJECT {
ei[i].misc_flags = grf_load_byte(&buf);
- if (HASBIT(ei[i].misc_flags, EF_USES_2CC)) _have_2cc = true;
+ if (HASBIT(ei[i].misc_flags, EF_USES_2CC)) SETBIT(_loaded_newgrf_features, GRFLOADED_2CC);
}
break;
@@ -661,7 +657,7 @@
case 0x1C: // Miscellaneous flags
FOR_EACH_OBJECT {
ei[i].misc_flags = grf_load_byte(&buf);
- if (HASBIT(ei[i].misc_flags, EF_USES_2CC)) _have_2cc = true;
+ if (HASBIT(ei[i].misc_flags, EF_USES_2CC)) SETBIT(_loaded_newgrf_features, GRFLOADED_2CC);
}
break;
@@ -772,7 +768,7 @@
case 0x17: // Miscellaneous flags
FOR_EACH_OBJECT {
ei[i].misc_flags = grf_load_byte(&buf);
- if (HASBIT(ei[i].misc_flags, EF_USES_2CC)) _have_2cc = true;
+ if (HASBIT(ei[i].misc_flags, EF_USES_2CC)) SETBIT(_loaded_newgrf_features, GRFLOADED_2CC);
}
break;
@@ -888,7 +884,7 @@
case 0x17: // Miscellaneous flags
FOR_EACH_OBJECT {
ei[i].misc_flags = grf_load_byte(&buf);
- if (HASBIT(ei[i].misc_flags, EF_USES_2CC)) _have_2cc = true;
+ if (HASBIT(ei[i].misc_flags, EF_USES_2CC)) SETBIT(_loaded_newgrf_features, GRFLOADED_2CC);
}
break;
@@ -1297,7 +1293,7 @@
* FinaliseHouseArray() for more details. */
if (housespec[i]->min_date < 1930) housespec[i]->min_date = 1930;
}
- _have_newhouses = true;
+ SETBIT(_loaded_newgrf_features, GRFLOADED_NEWHOUSES);
break;
case 0x09: // Building flags
@@ -2897,6 +2893,14 @@
replace = SPR_CANALS_BASE + 5;
break;
+ case 0x09: // One way graphics
+ if (num != 6) {
+ grfmsg(1, "GraphicsNew: One way road graphics sprite count must be 6, skipping");
+ return;
+ }
+ replace = SPR_ONEWAY_BASE;
+ break;
+
case 0x0A: // 2CC colour maps
if (num != 256) {
grfmsg(1, "GraphicsNew: 2CC colour maps sprite count must be 256, skipping");
@@ -2905,6 +2909,14 @@
replace = SPR_2CCMAP_BASE;
break;
+ case 0x0B: // tramways
+ if (num != 113) {
+ grfmsg(1, "GraphicsNews: Tramway graphics sprite count must be 113, skipping");
+ return;
+ }
+ replace = SPR_TRAMWAY_BASE;
+ break;
+
case 0x0D: // Coast graphics
if (num != 16) {
grfmsg(1, "GraphicsNew: Coast graphics sprite count must be 16, skipping");
@@ -4237,7 +4249,7 @@
| (1 << 0x11) // autoreplace
| (1 << 0x12) // autoslope
| (0 << 0x13) // followvehicle
- | (0 << 0x14) // trams
+ | (1 << 0x14) // trams
| (0 << 0x15) // enhancetunnels
| (0 << 0x16) // shortrvs
| (0 << 0x17) // articulatedrvs
@@ -4296,6 +4308,61 @@
}
}
+static void ResetCustomIndustries()
+{
+ GRFFile *file;
+
+ for (file = _first_grffile; file != NULL; file = file->next) {
+ uint i;
+ /* We are verifiying both tiles and industries specs loaded from the grf file
+ * First, let's deal with industryspec */
+ if (file->industryspec != NULL) {
+
+ for (i = 0; i < NUM_INDUSTRYTYPES; i++) {
+ IndustrySpec *ind = file->industryspec[i];
+
+ if (ind != NULL) {
+ /* We need to remove the sounds array */
+ if (HASBIT(ind->cleanup_flag, CLEAN_RANDOMSOUNDS)) {
+ free((void*)ind->random_sounds);
+ }
+
+ /* We need to remove the tiles layouts */
+ if (HASBIT(ind->cleanup_flag, CLEAN_TILELSAYOUT) && ind->table != NULL) {
+ for (int j = 0; j < ind->num_table; j++) {
+ /* remove the individual layouts */
+ if (ind->table[j] != NULL) {
+ free((IndustryTileTable*)ind->table[j]);
+ }
+ }
+ /* remove the layouts pointers */
+ free((IndustryTileTable**)ind->table);
+ ind->table = NULL;
+ }
+
+ free(ind);
+ ind = NULL;
+ }
+ }
+
+ free(file->industryspec);
+ file->industryspec = NULL;
+ }
+
+ if (file->indtspec != NULL) {
+ for (i = 0; i < NUM_INDUSTRYTILES; i++) {
+ if (file->indtspec[i] != NULL) {
+ free(file->indtspec[i]);
+ file->indtspec[i] = NULL;
+ }
+ }
+
+ free(file->indtspec);
+ file->indtspec = NULL;
+ }
+ }
+}
+
static void ResetNewGRF()
{
GRFFile *next;
@@ -4304,6 +4371,7 @@
next = f->next;
free(f->filename);
+ free(f->cargo_list);
free(f);
}
@@ -4360,6 +4428,10 @@
ResetCustomHouses();
ResetHouses();
+ /* Reset the industries structures*/
+ ResetCustomIndustries();
+ ResetIndustries();
+
/* Reset station classes */
ResetStationClasses();
ResetCustomStations();
@@ -4383,8 +4455,9 @@
_misc_grf_features = 0;
_traininfo_vehicle_pitch = 0;
_traininfo_vehicle_width = 29;
- _have_2cc = false;
- _have_newhouses = false;
+
+ _loaded_newgrf_features = 0;
+
_signal_base = 0;
_coast_base = 0;
@@ -4807,6 +4880,13 @@
static void AfterLoadGRFs()
{
+ /* Update the bitmasks for the vehicle lists */
+ Player *p;
+ FOR_ALL_PLAYERS(p) {
+ p->avail_railtypes = GetPlayerRailtypes(p->index);
+ p->avail_roadtypes = GetPlayerRoadtypes(p->index);
+ }
+
/* Pre-calculate all refit masks after loading GRF files. */
CalculateRefitMasks();
--- a/src/newgrf.h Fri May 25 00:25:08 2007 +0000
+++ b/src/newgrf.h Fri Jun 01 20:54:09 2007 +0000
@@ -10,6 +10,7 @@
#include "newgrf_config.h"
#include "helpers.hpp"
#include "cargotype.h"
+#include "industry.h"
enum GrfLoadingStage {
GLS_FILESCAN,
@@ -69,6 +70,8 @@
StationSpec **stations;
HouseSpec **housespec;
+ IndustrySpec **industryspec;
+ IndustryTileSpec **indtspec;
uint32 param[0x80];
uint param_end; ///< one more than the highest set parameter
@@ -84,8 +87,15 @@
extern SpriteID _signal_base;
extern SpriteID _coast_base;
-extern bool _have_2cc;
-extern bool _have_newhouses;
+
+enum GRFLoadedFeatures {
+ GRFLOADED_2CC, // Set if any vehicle is loaded which uses 2cc (two company colours).
+ GRFLOADED_NEWHOUSES, // Set if there are any newhouses loaded.
+ GRFLOADED_NEWINDUSTRIES, // Set if there are any newindustries loaded.
+};
+
+/* Indicates which are the newgrf features currently loaded ingame */
+extern uint8 _loaded_newgrf_features;
void LoadNewGRFFile(GRFConfig *config, uint file_index, GrfLoadingStage stage);
void LoadNewGRF(uint load_index, uint file_index);
--- a/src/newgrf_house.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/newgrf_house.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -83,7 +83,7 @@
{
HouseClassID class_id = GetHouseSpecs(house_id)->class_id;
- if (!_have_newhouses) return;
+ if (!HASBIT(_loaded_newgrf_features, GRFLOADED_NEWHOUSES)) return;
/* If there are 255 buildings of this type in this town, there are also
* at least that many houses of the same class in the town, and
@@ -111,7 +111,7 @@
{
HouseClassID class_id = GetHouseSpecs(house_id)->class_id;
- if (!_have_newhouses) return;
+ if (!HASBIT(_loaded_newgrf_features, GRFLOADED_NEWHOUSES)) return;
if (t->building_counts.id_count[house_id] > 0) t->building_counts.id_count[house_id]--;
if (_building_counts.id_count[house_id] > 0) _building_counts.id_count[house_id]--;
@@ -129,7 +129,7 @@
*/
void AfterLoadCountBuildings()
{
- if (!_have_newhouses) return;
+ if (!HASBIT(_loaded_newgrf_features, GRFLOADED_NEWHOUSES)) return;
for (TileIndex t = 0; t < MapSize(); t++) {
if (!IsTileType(t, MP_HOUSE)) continue;
--- a/src/npf.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/npf.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -357,7 +357,7 @@
* encounter, if it is red */
/* Is this a presignal exit or combo? */
- SignalType sigtype = GetSignalType(tile);
+ SignalType sigtype = GetSignalType(tile, TrackdirToTrack(trackdir));
if (sigtype == SIGTYPE_EXIT || sigtype == SIGTYPE_COMBO) {
/* Penalise exit and combo signals differently (heavier) */
cost += _patches.npf_rail_firstred_exit_penalty;
--- a/src/openttd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/openttd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -1000,8 +1000,8 @@
Window *w = FindWindowById(WC_MAIN_WINDOW, 0);
assert(w);
- WP(w,vp_d).scrollpos_x += ScaleByZoom(x, w->viewport->zoom);
- WP(w,vp_d).scrollpos_y += ScaleByZoom(y, w->viewport->zoom);
+ WP(w,vp_d).dest_scrollpos_x += ScaleByZoom(x, w->viewport->zoom);
+ WP(w,vp_d).dest_scrollpos_y += ScaleByZoom(y, w->viewport->zoom);
}
}
@@ -1293,6 +1293,8 @@
WP(w,vp_d).scrollpos_x = _saved_scrollpos_x;
WP(w,vp_d).scrollpos_y = _saved_scrollpos_y;
+ WP(w,vp_d).dest_scrollpos_x = _saved_scrollpos_x;
+ WP(w,vp_d).dest_scrollpos_y = _saved_scrollpos_y;
vp = w->viewport;
vp->zoom = _saved_scrollpos_zoom;
@@ -1453,6 +1455,7 @@
if (CheckSavegameVersion(61)) {
/* Added the RoadType */
+ bool old_bridge = CheckSavegameVersion(42);
for (TileIndex t = 0; t < map_size; t++) {
switch(GetTileType(t)) {
case MP_STREET:
@@ -1477,7 +1480,9 @@
break;
case MP_TUNNELBRIDGE:
- if ((IsTunnel(t) ? GetTunnelTransportType(t) : GetBridgeTransportType(t)) == TRANSPORT_ROAD) {
+ /* Middle part of "old" bridges */
+ if (old_bridge && IsBridgeTile(t) && HASBIT(_m[t].m5, 6)) break;
+ if ((IsTunnel(t) ? GetTunnelTransportType(t) : (old_bridge ? (TransportType)GB(_m[t].m5, 1, 2) : GetBridgeTransportType(t))) == TRANSPORT_ROAD) {
SetRoadTypes(t, ROADTYPES_ROAD);
}
break;
@@ -1668,10 +1673,10 @@
case MP_RAILWAY:
if (HasSignals(t)) {
/* convert PBS signals to combo-signals */
- if (HASBIT(_m[t].m2, 2)) SetSignalType(t, SIGTYPE_COMBO);
+ if (HASBIT(_m[t].m2, 2)) SetSignalType(t, TRACK_X, SIGTYPE_COMBO);
/* move the signal variant back */
- SetSignalVariant(t, HASBIT(_m[t].m2, 3) ? SIG_SEMAPHORE : SIG_ELECTRIC);
+ SetSignalVariant(t, TRACK_X, HASBIT(_m[t].m2, 3) ? SIG_SEMAPHORE : SIG_ELECTRIC);
CLRBIT(_m[t].m2, 3);
}
@@ -1725,7 +1730,10 @@
if (CheckSavegameVersion(34)) FOR_ALL_PLAYERS(p) ResetPlayerLivery(p);
- FOR_ALL_PLAYERS(p) p->avail_railtypes = GetPlayerRailtypes(p->index);
+ FOR_ALL_PLAYERS(p) {
+ p->avail_railtypes = GetPlayerRailtypes(p->index);
+ p->avail_roadtypes = GetPlayerRoadtypes(p->index);
+ }
if (!CheckSavegameVersion(27)) AfterLoadStations();
@@ -1782,7 +1790,7 @@
FOR_ALL_INDUSTRIES(i) {
uint j;
- if (i->type == IT_FARM || i->type == IT_FARM_2) {
+ if (GetIndustrySpec(i->type)->behaviour & INDUSTRYBEH_PLANT_ON_BUILT) {
for (j = 0; j != 50; j++) PlantRandomFarmField(i);
}
}
@@ -2002,6 +2010,18 @@
_opt.diff.number_towns++;
}
+ if (CheckSavegameVersion(64)) {
+ /* copy the signal type/variant and move signal states bits */
+ for (TileIndex t = 0; t < map_size; t++) {
+ if (IsTileType(t, MP_RAILWAY) && HasSignals(t)) {
+ SetSignalStates(t, GB(_m[t].m2, 4, 4));
+ SetSignalVariant(t, INVALID_TRACK, GetSignalVariant(t, TRACK_X));
+ SetSignalType(t, INVALID_TRACK, GetSignalType(t, TRACK_X));
+ CLRBIT(_m[t].m2, 7);
+ }
+ }
+ }
+
/* Recalculate */
Group *g;
FOR_ALL_GROUPS(g) {
--- a/src/order_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/order_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -320,9 +320,9 @@
{
if (u->type != v->type) return false;
- if (u->type == VEH_TRAIN && !IsFrontEngine(u)) {
+ if (u->HasFront() && !u->IsPrimaryVehicle()) {
u = GetFirstVehicleInChain(u);
- if (!IsFrontEngine(u)) return false;
+ if (!u->IsPrimaryVehicle()) return false;
}
// v is vehicle getting orders. Only copy/clone orders if vehicle doesn't have any orders yet
--- a/src/player.h Fri May 25 00:25:08 2007 +0000
+++ b/src/player.h Fri Jun 01 20:54:09 2007 +0000
@@ -43,6 +43,7 @@
Livery livery[LS_END];
byte player_money_fraction;
byte avail_railtypes;
+ byte avail_roadtypes;
byte block_preview;
PlayerByte index;
@@ -122,6 +123,7 @@
}
byte GetPlayerRailtypes(PlayerID p);
+byte GetPlayerRoadtypes(PlayerID p);
/** Finds out if a Player has a certain railtype available */
static inline bool HasRailtypeAvail(const Player *p, RailType Railtype)
--- a/src/player_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/player_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -277,13 +277,14 @@
LC_ROAD, LC_ROAD,
LC_SHIP, LC_SHIP,
LC_AIRCRAFT, LC_AIRCRAFT, LC_AIRCRAFT,
+ LC_ROAD, LC_ROAD,
};
/* Number of liveries in each class, used to determine the height of the livery window */
static const byte livery_height[] = {
1,
11,
- 2,
+ 4,
2,
3,
};
@@ -323,7 +324,7 @@
switch (e->event) {
case WE_CREATE:
LowerWindowWidget(w, WP(w, livery_d).livery_class + 2);
- if (!_have_2cc) {
+ if (!HASBIT(_loaded_newgrf_features, GRFLOADED_2CC)) {
HideWindowWidget(w, 11);
HideWindowWidget(w, 12);
}
@@ -365,7 +366,7 @@
DrawSprite(SPR_SQUARE, GENERAL_SPRITE_COLOR(p->livery[scheme].colour1), 152, y);
DrawString(165, y, STR_00D1_DARK_BLUE + p->livery[scheme].colour1, sel ? 0xC : 2);
- if (_have_2cc) {
+ if (HASBIT(_loaded_newgrf_features, GRFLOADED_2CC)) {
DrawSprite(SPR_SQUARE, GENERAL_SPRITE_COLOR(p->livery[scheme].colour2), 277, y);
DrawString(290, y, STR_00D1_DARK_BLUE + p->livery[scheme].colour2, sel ? 0xC : 2);
}
@@ -793,7 +794,7 @@
}
case PCW_WIDGET_COLOR_SCHEME: {
- Window *wf = AllocateWindowDescFront(_have_2cc ? &_select_player_livery_2cc_desc : &_select_player_livery_desc, w->window_number);
+ Window *wf = AllocateWindowDescFront(HASBIT(_loaded_newgrf_features, GRFLOADED_2CC) ? &_select_player_livery_2cc_desc : &_select_player_livery_desc, w->window_number);
if (wf != NULL) {
wf->caption_color = wf->window_number;
WP(wf, livery_d).livery_class = LC_OTHER;
--- a/src/players.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/players.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -472,6 +472,7 @@
p->share_owners[0] = p->share_owners[1] = p->share_owners[2] = p->share_owners[3] = PLAYER_SPECTATOR;
p->avail_railtypes = GetPlayerRailtypes(p->index);
+ p->avail_roadtypes = GetPlayerRoadtypes(p->index);
p->inaugurated_year = _cur_year;
p->face = ConvertFromOldPlayerFace(Random());
@@ -608,6 +609,24 @@
return rt;
}
+byte GetPlayerRoadtypes(PlayerID p)
+{
+ byte rt = 0;
+ EngineID i;
+
+ for (i = 0; i != TOTAL_NUM_ENGINES; i++) {
+ const Engine* e = GetEngine(i);
+ const EngineInfo *ei = EngInfo(i);
+
+ if (e->type == VEH_ROAD && HASBIT(ei->climates, _opt.landscape) &&
+ (HASBIT(e->player_avail, p) || _date >= e->intro_date + 365)) {
+ SETBIT(rt, HASBIT(ei->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD);
+ }
+ }
+
+ return rt;
+}
+
static void DeletePlayerStuff(PlayerID pi)
{
Player *p;
@@ -1249,9 +1268,16 @@
}
/* Write each livery entry. */
- for (i = 0; i < LS_END; i++) {
+ int num_liveries = CheckSavegameVersion(63) ? LS_END - 2 : LS_END;
+ for (i = 0; i < num_liveries; i++) {
SlObject(&p->livery[i], _player_livery_desc);
}
+
+ if (num_liveries == LS_END - 2) {
+ /* Copy bus/truck liveries over to trams */
+ p->livery[LS_PASSENGER_TRAM] = p->livery[LS_BUS];
+ p->livery[LS_FREIGHT_TRAM] = p->livery[LS_TRUCK];
+ }
}
static void Save_PLYR()
--- a/src/rail.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/rail.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -13,21 +13,21 @@
/* Maps a trackdir to the bit that stores its status in the map arrays, in the
* direction along with the trackdir */
extern const byte _signal_along_trackdir[] = {
- 0x80, 0x80, 0x80, 0x20, 0x40, 0x10, 0, 0,
- 0x40, 0x40, 0x40, 0x10, 0x80, 0x20
+ 0x8, 0x8, 0x8, 0x2, 0x4, 0x1, 0, 0,
+ 0x4, 0x4, 0x4, 0x1, 0x8, 0x2
};
/* Maps a trackdir to the bit that stores its status in the map arrays, in the
* direction against the trackdir */
extern const byte _signal_against_trackdir[] = {
- 0x40, 0x40, 0x40, 0x10, 0x80, 0x20, 0, 0,
- 0x80, 0x80, 0x80, 0x20, 0x40, 0x10
+ 0x4, 0x4, 0x4, 0x1, 0x8, 0x2, 0, 0,
+ 0x8, 0x8, 0x8, 0x2, 0x4, 0x1
};
/* Maps a Track to the bits that store the status of the two signals that can
* be present on the given track */
extern const byte _signal_on_track[] = {
- 0xC0, 0xC0, 0xC0, 0x30, 0xC0, 0x30
+ 0xC, 0xC, 0xC, 0x3, 0xC, 0x3
};
/* Maps a diagonal direction to the all trackdirs that are connected to any
--- a/src/rail_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/rail_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -300,6 +300,12 @@
RoadBits tram = GetRoadBits(tile, ROADTYPE_TRAM);
switch (roadtypes) {
default: break;
+ case ROADTYPES_TRAM:
+ /* Tram crossings must always have road. */
+ SetRoadOwner(tile, ROADTYPE_ROAD, _current_player);
+ roadtypes |= ROADTYPES_ROAD;
+ break;
+
case ROADTYPES_ROADTRAM: if (road == tram) break;
/* FALL THROUGH */
case ROADTYPES_ROADHWAY: // Road and highway are incompatible in this case
@@ -685,7 +691,7 @@
/* build new signals */
cost = _price.build_signals;
} else {
- if (p2 != 0 && sigvar != GetSignalVariant(tile)) {
+ if (p2 != 0 && sigvar != GetSignalVariant(tile, track)) {
/* convert signals <-> semaphores */
cost = _price.build_signals + _price.remove_signals;
} else {
@@ -698,22 +704,24 @@
if (!HasSignals(tile)) {
/* there are no signals at all on this tile yet */
SetHasSignals(tile, true);
- _m[tile].m2 |= 0xF0; // all signals are on
- _m[tile].m3 &= ~0xF0; // no signals built by default
- SetSignalType(tile, SIGTYPE_NORMAL);
- SetSignalVariant(tile, sigvar);
+ SetSignalStates(tile, 0xF); // all signals are on
+ SetPresentSignals(tile, 0); // no signals built by default
+ SetSignalType(tile, track, SIGTYPE_NORMAL);
+ SetSignalVariant(tile, track, sigvar);
}
if (p2 == 0) {
if (!HasSignalOnTrack(tile, track)) {
/* build new signals */
- _m[tile].m3 |= SignalOnTrack(track);
+ SetPresentSignals(tile, GetPresentSignals(tile) | SignalOnTrack(track));
+ SetSignalType(tile, track, SIGTYPE_NORMAL);
+ SetSignalVariant(tile, track, sigvar);
} else {
if (pre_signal) {
/* cycle between normal -> pre -> exit -> combo -> ... */
- SignalType type = GetSignalType(tile);
+ SignalType type = GetSignalType(tile, track);
- SetSignalType(tile, type == SIGTYPE_COMBO ? SIGTYPE_NORMAL : (SignalType)(type + 1));
+ SetSignalType(tile, track, type == SIGTYPE_COMBO ? SIGTYPE_NORMAL : (SignalType)(type + 1));
} else {
CycleSignalSide(tile, track);
}
@@ -721,9 +729,8 @@
} else {
/* If CmdBuildManySignals is called with copying signals, just copy the
* direction of the first signal given as parameter by CmdBuildManySignals */
- _m[tile].m3 &= ~SignalOnTrack(track);
- _m[tile].m3 |= p2 & SignalOnTrack(track);
- SetSignalVariant(tile, sigvar);
+ SetPresentSignals(tile, (GetPresentSignals(tile) & ~SignalOnTrack(track)) | (p2 & SignalOnTrack(track)));
+ SetSignalVariant(tile, track, sigvar);
}
MarkTileDirtyByTile(tile);
@@ -777,11 +784,11 @@
/* copy the signal-style of the first rail-piece if existing */
if (HasSignals(tile)) {
- signals = _m[tile].m3 & SignalOnTrack(track);
+ signals = GetPresentSignals(tile) & SignalOnTrack(track);
if (signals == 0) signals = SignalOnTrack(track); /* Can this actually occur? */
/* copy signal/semaphores style (independent of CTRL) */
- semaphores = GetSignalVariant(tile) != SIG_ELECTRIC;
+ semaphores = GetSignalVariant(tile, track) != SIG_ELECTRIC;
} else { // no signals exist, drag a two-way signal stretch
signals = SignalOnTrack(track);
}
@@ -867,13 +874,13 @@
/* Do it? */
if (flags & DC_EXEC) {
- _m[tile].m3 &= ~SignalOnTrack(track);
+ SetPresentSignals(tile, GetPresentSignals(tile) & ~SignalOnTrack(track));
/* removed last signal from tile? */
- if (GB(_m[tile].m3, 4, 4) == 0) {
- SB(_m[tile].m2, 4, 4, 0);
+ if (GetPresentSignals(tile) == 0) {
+ SetSignalStates(tile, 0);
SetHasSignals(tile, false);
- SetSignalVariant(tile, SIG_ELECTRIC); // remove any possible semaphores
+ SetSignalVariant(tile, INVALID_TRACK, SIG_ELECTRIC); // remove any possible semaphores
}
SetSignalsOnBothDir(tile, track);
@@ -1084,7 +1091,7 @@
#include "table/track_land.h"
-static void DrawSingleSignal(TileIndex tile, byte condition, uint image, uint pos)
+static void DrawSingleSignal(TileIndex tile, Track track, byte condition, uint image, uint pos)
{
bool side = (_opt.road_side != 0) && _patches.signal_side;
static const Point SignalPositions[2][12] = {
@@ -1121,10 +1128,10 @@
/* _signal_base is set by our NewGRF Action 5 loader. If it is 0 then we
* just draw the standard signals, else we get the offset from _signal_base
* and draw that sprite. All the signal sprites are loaded sequentially. */
- if (_signal_base == 0 || (GetSignalType(tile) == 0 && GetSignalVariant(tile) == SIG_ELECTRIC)) {
- sprite = SignalBase[side][GetSignalVariant(tile)][GetSignalType(tile)] + image + condition;
+ if (_signal_base == 0 || (GetSignalType(tile, track) == SIGTYPE_NORMAL && GetSignalVariant(tile, track) == SIG_ELECTRIC)) {
+ sprite = SignalBase[side][GetSignalVariant(tile, track)][GetSignalType(tile, track)] + image + condition;
} else {
- sprite = _signal_base + (GetSignalType(tile) - 1) * 16 + GetSignalVariant(tile) * 64 + image + condition;
+ sprite = _signal_base + (GetSignalType(tile, track) - 1) * 16 + GetSignalVariant(tile, track) * 64 + image + condition;
}
AddSortableSpriteToDraw(sprite, PAL_NONE, x, y, 1, 1, 10, GetSlopeZ(x,y));
@@ -1294,33 +1301,33 @@
static void DrawSignals(TileIndex tile, TrackBits rails)
{
-#define MAYBE_DRAW_SIGNAL(x,y,z) if (IsSignalPresent(tile, x)) DrawSingleSignal(tile, GetSingleSignalState(tile, x), y - 0x4FB, z)
+#define MAYBE_DRAW_SIGNAL(x,y,z,t) if (IsSignalPresent(tile, x)) DrawSingleSignal(tile, t, GetSingleSignalState(tile, x), y - 0x4FB, z)
if (!(rails & TRACK_BIT_Y)) {
if (!(rails & TRACK_BIT_X)) {
if (rails & TRACK_BIT_LEFT) {
- MAYBE_DRAW_SIGNAL(2, 0x509, 0);
- MAYBE_DRAW_SIGNAL(3, 0x507, 1);
+ MAYBE_DRAW_SIGNAL(2, 0x509, 0, TRACK_LEFT);
+ MAYBE_DRAW_SIGNAL(3, 0x507, 1, TRACK_LEFT);
}
if (rails & TRACK_BIT_RIGHT) {
- MAYBE_DRAW_SIGNAL(0, 0x509, 2);
- MAYBE_DRAW_SIGNAL(1, 0x507, 3);
+ MAYBE_DRAW_SIGNAL(0, 0x509, 2, TRACK_RIGHT);
+ MAYBE_DRAW_SIGNAL(1, 0x507, 3, TRACK_RIGHT);
}
if (rails & TRACK_BIT_UPPER) {
- MAYBE_DRAW_SIGNAL(3, 0x505, 4);
- MAYBE_DRAW_SIGNAL(2, 0x503, 5);
+ MAYBE_DRAW_SIGNAL(3, 0x505, 4, TRACK_UPPER);
+ MAYBE_DRAW_SIGNAL(2, 0x503, 5, TRACK_UPPER);
}
if (rails & TRACK_BIT_LOWER) {
- MAYBE_DRAW_SIGNAL(1, 0x505, 6);
- MAYBE_DRAW_SIGNAL(0, 0x503, 7);
+ MAYBE_DRAW_SIGNAL(1, 0x505, 6, TRACK_LOWER);
+ MAYBE_DRAW_SIGNAL(0, 0x503, 7, TRACK_LOWER);
}
} else {
- MAYBE_DRAW_SIGNAL(3, 0x4FB, 8);
- MAYBE_DRAW_SIGNAL(2, 0x4FD, 9);
+ MAYBE_DRAW_SIGNAL(3, 0x4FB, 8, TRACK_X);
+ MAYBE_DRAW_SIGNAL(2, 0x4FD, 9, TRACK_X);
}
} else {
- MAYBE_DRAW_SIGNAL(3, 0x4FF, 10);
- MAYBE_DRAW_SIGNAL(2, 0x501, 11);
+ MAYBE_DRAW_SIGNAL(3, 0x4FF, 10, TRACK_Y);
+ MAYBE_DRAW_SIGNAL(2, 0x501, 11, TRACK_Y);
}
}
@@ -1504,11 +1511,12 @@
static bool SetSignalsEnumProc(TileIndex tile, void* data, Trackdir trackdir, uint length, byte* state)
{
SetSignalsData* ssd = (SetSignalsData*)data;
+ Track track = TrackdirToTrack(trackdir);
if (!IsTileType(tile, MP_RAILWAY)) return false;
/* the tile has signals? */
- if (HasSignalOnTrack(tile, TrackdirToTrack(trackdir))) {
+ if (HasSignalOnTrack(tile, track)) {
if (HasSignalOnTrackdir(tile, ReverseTrackdir(trackdir))) {
/* yes, add the signal to the list of signals */
if (ssd->cur != NUM_SSD_ENTRY) {
@@ -1518,10 +1526,10 @@
}
/* remember if this block has a presignal. */
- ssd->has_presignal |= IsPresignalEntry(tile);
+ ssd->has_presignal |= IsPresignalEntry(tile, track);
}
- if (HasSignalOnTrackdir(tile, trackdir) && IsPresignalExit(tile)) {
+ if (HasSignalOnTrackdir(tile, trackdir) && IsPresignalExit(tile, track)) {
/* this is an exit signal that points out from the segment */
ssd->presignal_exits++;
if (GetSignalStateByTrackdir(tile, trackdir) != SIGNAL_STATE_RED)
@@ -1659,14 +1667,15 @@
for (i = 0; i != ssd->cur; i++) {
TileIndex tile = ssd->tile[i];
byte bit = SignalAgainstTrackdir(ssd->bit[i]);
- uint16 m2 = _m[tile].m2;
+ uint signals = GetSignalStates(tile);
+ Track track = TrackdirToTrack(ssd->bit[i]);
/* presignals don't turn green if there is at least one presignal exit and none are free */
- if (IsPresignalEntry(tile)) {
+ if (IsPresignalEntry(tile, track)) {
int ex = ssd->presignal_exits, exfree = ssd->presignal_exits_free;
/* subtract for dual combo signals so they don't count themselves */
- if (IsPresignalExit(tile) && HasSignalOnTrackdir(tile, ssd->bit[i])) {
+ if (IsPresignalExit(tile, track) && HasSignalOnTrackdir(tile, ssd->bit[i])) {
ex--;
if (GetSignalStateByTrackdir(tile, ssd->bit[i]) != SIGNAL_STATE_RED) exfree--;
}
@@ -1679,14 +1688,14 @@
if (ssd->stop) {
make_red:
/* turn red */
- if ((bit & m2) == 0) continue;
+ if ((bit & signals) == 0) continue;
} else {
/* turn green */
- if ((bit & m2) != 0) continue;
+ if ((bit & signals) != 0) continue;
}
/* Update signals on the other side of this exit-combo signal; it changed. */
- if (IsPresignalExit(tile)) {
+ if (IsPresignalExit(tile, track)) {
if (ssd->cur_stack != NUM_SSD_STACK) {
ssd->next_tile[ssd->cur_stack] = tile;
ssd->next_dir[ssd->cur_stack] = _dir_from_track[ssd->bit[i]];
@@ -1697,7 +1706,7 @@
}
/* it changed, so toggle it */
- _m[tile].m2 = m2 ^ bit;
+ SetSignalStates(tile, signals ^ bit);
MarkTileDirtyByTile(tile);
}
}
@@ -1921,11 +1930,8 @@
case RAIL_TILE_SIGNALS: {
uint32 ret = GetTrackBits(tile) * 0x101;
- byte a;
- uint16 b;
-
- a = _m[tile].m3;
- b = _m[tile].m2;
+ byte a = GetPresentSignals(tile);
+ uint b = GetSignalStates(tile);
b &= a;
@@ -1933,13 +1939,13 @@
* direction), we pretend them to be green. (So if
* signals are only one way, the other way will
* implicitely become `red' */
- if ((a & 0xC0) == 0) b |= 0xC0;
- if ((a & 0x30) == 0) b |= 0x30;
+ if ((a & 0xC) == 0) b |= 0xC;
+ if ((a & 0x3) == 0) b |= 0x3;
- if ((b & 0x80) == 0) ret |= 0x10070000;
- if ((b & 0x40) == 0) ret |= 0x07100000;
- if ((b & 0x20) == 0) ret |= 0x20080000;
- if ((b & 0x10) == 0) ret |= 0x08200000;
+ if ((b & 0x8) == 0) ret |= 0x10070000;
+ if ((b & 0x4) == 0) ret |= 0x07100000;
+ if ((b & 0x2) == 0) ret |= 0x20080000;
+ if ((b & 0x1) == 0) ret |= 0x08200000;
return ret;
}
@@ -1967,14 +1973,34 @@
break;
case RAIL_TILE_SIGNALS: {
- const StringID signal_type[] = {
- STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS,
- STR_RAILROAD_TRACK_WITH_PRESIGNALS,
- STR_RAILROAD_TRACK_WITH_EXITSIGNALS,
- STR_RAILROAD_TRACK_WITH_COMBOSIGNALS
+ const StringID signal_type[4][4] = {
+ {
+ STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS,
+ STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS,
+ STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS,
+ STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS
+ },
+ {
+ STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS,
+ STR_RAILROAD_TRACK_WITH_PRESIGNALS,
+ STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS,
+ STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS
+ },
+ {
+ STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS,
+ STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS,
+ STR_RAILROAD_TRACK_WITH_EXITSIGNALS,
+ STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS
+ },
+ {
+ STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS,
+ STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS,
+ STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS,
+ STR_RAILROAD_TRACK_WITH_COMBOSIGNALS
+ }
};
- td->str = signal_type[GetSignalType(tile)];
+ td->str = signal_type[GetSignalType(tile, TRACK_UPPER)][GetSignalType(tile, TRACK_LOWER)];
break;
}
--- a/src/rail_map.h Fri May 25 00:25:08 2007 +0000
+++ b/src/rail_map.h Fri Jun 01 20:54:09 2007 +0000
@@ -207,33 +207,35 @@
SIGTYPE_COMBO = 3 ///< presignal inter-block
};
-static inline SignalType GetSignalType(TileIndex t)
-{
- assert(GetRailTileType(t) == RAIL_TILE_SIGNALS);
- return (SignalType)GB(_m[t].m2, 0, 2);
-}
-
-static inline void SetSignalType(TileIndex t, SignalType s)
+static inline SignalType GetSignalType(TileIndex t, Track track)
{
assert(GetRailTileType(t) == RAIL_TILE_SIGNALS);
- SB(_m[t].m2, 0, 2, s);
+ byte pos = (track == TRACK_LOWER || track == TRACK_RIGHT) ? 4 : 0;
+ return (SignalType)GB(_m[t].m2, pos, 2);
}
-static inline bool IsPresignalEntry(TileIndex t)
+static inline void SetSignalType(TileIndex t, Track track, SignalType s)
{
- return GetSignalType(t) == SIGTYPE_ENTRY || GetSignalType(t) == SIGTYPE_COMBO;
+ assert(GetRailTileType(t) == RAIL_TILE_SIGNALS);
+ byte pos = (track == TRACK_LOWER || track == TRACK_RIGHT) ? 4 : 0;
+ SB(_m[t].m2, pos, 2, s);
+ if (track == INVALID_TRACK) SB(_m[t].m2, 4, 2, s);
}
-static inline bool IsPresignalExit(TileIndex t)
+static inline bool IsPresignalEntry(TileIndex t, Track track)
{
- return GetSignalType(t) == SIGTYPE_EXIT || GetSignalType(t) == SIGTYPE_COMBO;
+ return GetSignalType(t, track) == SIGTYPE_ENTRY || GetSignalType(t, track) == SIGTYPE_COMBO;
+}
+
+static inline bool IsPresignalExit(TileIndex t, Track track)
+{
+ return GetSignalType(t, track) == SIGTYPE_EXIT || GetSignalType(t, track) == SIGTYPE_COMBO;
}
static inline void CycleSignalSide(TileIndex t, Track track)
{
byte sig;
- byte pos = 6;
- if (track == TRACK_LOWER || track == TRACK_RIGHT) pos = 4;
+ byte pos = (track == TRACK_LOWER || track == TRACK_RIGHT) ? 4 : 6;
sig = GB(_m[t].m3, pos, 2);
if (--sig == 0) sig = 3;
@@ -246,19 +248,17 @@
SIG_SEMAPHORE = 1 ///< Old-fashioned semaphore signal
};
-static inline SignalVariant GetSignalVariant(TileIndex t)
+static inline SignalVariant GetSignalVariant(TileIndex t, Track track)
{
- return (SignalVariant)GB(_m[t].m2, 2, 1);
+ byte pos = (track == TRACK_LOWER || track == TRACK_RIGHT) ? 6 : 2;
+ return (SignalVariant)GB(_m[t].m2, pos, 1);
}
-static inline void SetSignalVariant(TileIndex t, SignalVariant v)
+static inline void SetSignalVariant(TileIndex t, Track track, SignalVariant v)
{
- SB(_m[t].m2, 2, 1, v);
-}
-
-static inline bool IsSignalPresent(TileIndex t, byte signalbit)
-{
- return HASBIT(_m[t].m3, signalbit + 4);
+ byte pos = (track == TRACK_LOWER || track == TRACK_RIGHT) ? 6 : 2;
+ SB(_m[t].m2, pos, 1, v);
+ if (track == INVALID_TRACK) SB(_m[t].m2, 6, 1, v);
}
/** These are states in which a signal can be. Currently these are only two, so
@@ -270,11 +270,67 @@
SIGNAL_STATE_GREEN = 1, ///< The signal is green
};
+/**
+ * Set the states of the signals (Along/AgainstTrackDir)
+ * @param tile the tile to set the states for
+ * @param state the new state
+ */
+static inline void SetSignalStates(TileIndex tile, uint state)
+{
+ SB(_m[tile].m4, 4, 4, state);
+}
+
+/**
+ * Set the states of the signals (Along/AgainstTrackDir)
+ * @param tile the tile to set the states for
+ * @param state the new state
+ */
+static inline uint GetSignalStates(TileIndex tile)
+{
+ return GB(_m[tile].m4, 4, 4);
+}
+
+/**
+ * Get the state of a single signal
+ * @param t the tile to get the signal state for
+ * @param signalbit the signal
+ * @return the state of the signal
+ */
static inline SignalState GetSingleSignalState(TileIndex t, byte signalbit)
{
- return (SignalState)HASBIT(_m[t].m2, signalbit + 4);
+ return (SignalState)HASBIT(GetSignalStates(t), signalbit);
}
+/**
+ * Set whether the given signals are present (Along/AgainstTrackDir)
+ * @param tile the tile to set the present signals for
+ * @param signals the signals that have to be present
+ */
+static inline void SetPresentSignals(TileIndex tile, uint signals)
+{
+ SB(_m[tile].m3, 4, 4, signals);
+}
+
+/**
+ * Get whether the given signals are present (Along/AgainstTrackDir)
+ * @param tile the tile to get the present signals for
+ * @return the signals that are present
+ */
+static inline uint GetPresentSignals(TileIndex tile)
+{
+ return GB(_m[tile].m3, 4, 4);
+}
+
+/**
+ * Checks whether the given signals is present
+ * @param t the tile to check on
+ * @param signalbit the signal
+ * @return true if and only if the signal is present
+ */
+static inline bool IsSignalPresent(TileIndex t, byte signalbit)
+{
+ return HASBIT(GetPresentSignals(t), signalbit);
+}
/**
* Checks for the presence of signals (either way) on the given track on the
@@ -285,7 +341,7 @@
assert(IsValidTrack(track));
return
GetRailTileType(tile) == RAIL_TILE_SIGNALS &&
- (_m[tile].m3 & SignalOnTrack(track)) != 0;
+ (GetPresentSignals(tile) & SignalOnTrack(track)) != 0;
}
/**
@@ -300,7 +356,7 @@
assert (IsValidTrackdir(trackdir));
return
GetRailTileType(tile) == RAIL_TILE_SIGNALS &&
- _m[tile].m3 & SignalAlongTrackdir(trackdir);
+ GetPresentSignals(tile) & SignalAlongTrackdir(trackdir);
}
/**
@@ -313,7 +369,7 @@
{
assert(IsValidTrackdir(trackdir));
assert(HasSignalOnTrack(tile, TrackdirToTrack(trackdir)));
- return _m[tile].m2 & SignalAlongTrackdir(trackdir) ?
+ return GetSignalStates(tile) & SignalAlongTrackdir(trackdir) ?
SIGNAL_STATE_GREEN : SIGNAL_STATE_RED;
}
--- a/src/road.h Fri May 25 00:25:08 2007 +0000
+++ b/src/road.h Fri Jun 01 20:54:09 2007 +0000
@@ -43,7 +43,7 @@
*/
static inline bool IsValidRoadType(RoadType rt)
{
- return rt == ROADTYPE_ROAD;
+ return rt == ROADTYPE_ROAD || rt == ROADTYPE_TRAM;
}
/**
@@ -53,7 +53,7 @@
*/
static inline bool AreValidRoadTypes(RoadTypes rts)
{
- return rts == ROADTYPES_ROAD;
+ return HASBIT(rts, ROADTYPE_ROAD) || HASBIT(rts, ROADTYPE_TRAM);
}
/**
@@ -115,4 +115,6 @@
*/
bool CheckAllowRemoveRoad(TileIndex tile, RoadBits remove, Owner owner, bool *edge_road, RoadType rt);
+void DrawTramCatenary(TileInfo *ti, RoadBits tram);
+
#endif /* ROAD_H */
--- a/src/road_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/road_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -51,8 +51,11 @@
if (_game_mode == GM_EDITOR || remove == ROAD_NONE) return true;
- /* Only do the special processing for actual players. */
- if (!IsValidPlayer(_current_player)) return true;
+ /* Water can always flood and towns can always remove "normal" road pieces.
+ * Towns are not be allowed to remove non "normal" road pieces, like tram
+ * tracks as that would result in trams that cannot turn. */
+ if (_current_player == OWNER_WATER ||
+ (rt == ROADTYPE_ROAD && !IsValidPlayer(_current_player))) return true;
/* Only do the special processing if the road is owned
* by a town */
@@ -167,11 +170,12 @@
SetRoadTypes(tile, GetRoadTypes(tile) & ~RoadTypeToRoadTypes(rt));
/* Mark tiles diry that have been repaved */
+ MarkTileDirtyByTile(tile);
MarkTileDirtyByTile(other_end);
if (IsBridge(tile)) {
TileIndexDiff delta = TileOffsByDiagDir(GetBridgeRampDirection(tile));
- for (TileIndex t = tile; tile != other_end; tile += delta) MarkTileDirtyByTile(t);
+ for (TileIndex t = tile + delta; t != other_end; t += delta) MarkTileDirtyByTile(t);
}
}
} else {
@@ -214,6 +218,10 @@
SetRoadTypes(tile, rts);
}
} else {
+ /* When bits are removed, you *always* end up with something that
+ * is not a complete straight road tile. However, trams do not have
+ * onewayness, so they cannot remove it either. */
+ if (rt != ROADTYPE_TRAM) SetDisallowedRoadDirections(tile, DRD_NONE);
SetRoadBits(tile, present, rt);
MarkTileDirtyByTile(tile);
}
@@ -226,6 +234,10 @@
return CMD_ERROR;
}
+ /* Don't allow road to be removed from the crossing when there is tram;
+ * we can't draw the crossing without trambits ;) */
+ if (rt == ROADTYPE_ROAD && HASBIT(GetRoadTypes(tile), ROADTYPE_TRAM)) return CMD_ERROR;
+
if (flags & DC_EXEC) {
if (rt == ROADTYPE_ROAD) {
ChangeTownRating(t, -road_remove_cost[(byte)edge_road], RATING_ROAD_MINIMUM);
@@ -325,6 +337,7 @@
* @param flags operation to perform
* @param p1 bit 0..3 road pieces to build (RoadBits)
* bit 4..5 road type
+ * bit 6..7 disallowed directions to toggle
* @param p2 the town that is building the road (0 if not applicable)
*/
int32 CmdBuildRoad(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
@@ -332,6 +345,7 @@
int32 cost = 0;
int32 ret;
RoadBits existing = ROAD_NONE;
+ RoadBits all_bits = ROAD_NONE;
Slope tileh;
SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
@@ -345,25 +359,47 @@
RoadType rt = (RoadType)GB(p1, 4, 2);
if (!IsValidRoadType(rt)) return CMD_ERROR;
+ DisallowedRoadDirections toggle_drd = (DisallowedRoadDirections)GB(p1, 6, 2);
+
tileh = GetTileSlope(tile, NULL);
switch (GetTileType(tile)) {
case MP_STREET:
switch (GetRoadTileType(tile)) {
- case ROAD_TILE_NORMAL:
+ case ROAD_TILE_NORMAL: {
if (HasRoadWorks(tile)) return_cmd_error(STR_ROAD_WORKS_IN_PROGRESS);
+ if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
+
+ all_bits = GetAllRoadBits(tile);
if (!HASBIT(GetRoadTypes(tile), rt)) break;
existing = GetRoadBits(tile, rt);
+ RoadBits merged = existing | pieces;
+ bool crossing = (merged != ROAD_X && merged != ROAD_Y);
+ if (rt != ROADTYPE_TRAM && (GetDisallowedRoadDirections(tile) != DRD_NONE || toggle_drd != DRD_NONE) && crossing) {
+ /* Junctions cannot be one-way */
+ return_cmd_error(STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION);
+ }
if ((existing & pieces) == pieces) {
+ /* We only want to set the (dis)allowed road directions */
+ if (toggle_drd != DRD_NONE && rt != ROADTYPE_TRAM && GetRoadOwner(tile, ROADTYPE_ROAD) == _current_player) {
+ if (crossing) return_cmd_error(STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION);
+
+ /* Ignore half built tiles */
+ if (flags & DC_EXEC && rt != ROADTYPE_TRAM && (existing == ROAD_X || existing == ROAD_Y)) {
+ SetDisallowedRoadDirections(tile, GetDisallowedRoadDirections(tile) ^ toggle_drd);
+ MarkTileDirtyByTile(tile);
+ }
+ return 0;
+ }
return_cmd_error(STR_1007_ALREADY_BUILT);
}
- if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
- break;
+ } break;
case ROAD_TILE_CROSSING:
if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
- if (pieces & ComplementRoadBits(GetCrossingRoadBits(tile))) goto do_clear;
+ all_bits = GetCrossingRoadBits(tile);
+ if (pieces & ComplementRoadBits(all_bits)) goto do_clear;
break;
default:
@@ -405,21 +441,26 @@
if (flags & DC_EXEC) {
YapfNotifyTrackLayoutChange(tile, FindFirstTrack(GetTrackBits(tile)));
- MakeRoadCrossing(tile, _current_player, _current_player, _current_player, GetTileOwner(tile), roaddir, GetRailType(tile), RoadTypeToRoadTypes(rt), p2);
+ /* Always add road to the roadtypes (can't draw without it) */
+ MakeRoadCrossing(tile, _current_player, _current_player, _current_player, GetTileOwner(tile), roaddir, GetRailType(tile), RoadTypeToRoadTypes(rt) | ROADTYPES_ROAD, p2);
MarkTileDirtyByTile(tile);
}
- return _price.build_road * 2;
+ return _price.build_road * (rt == ROADTYPE_ROAD ? 2 : 4);
}
case MP_STATION:
if (!IsDriveThroughStopTile(tile)) return CMD_ERROR;
if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
+ /* Don't allow "upgrading" the roadstop when vehicles are already driving on it */
+ if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
break;
case MP_TUNNELBRIDGE:
if ((IsTunnel(tile) && GetTunnelTransportType(tile) != TRANSPORT_ROAD) ||
(IsBridge(tile) && GetBridgeTransportType(tile) != TRANSPORT_ROAD)) return CMD_ERROR;
if (HASBIT(GetRoadTypes(tile), rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
+ /* Don't allow "upgrading" the bridge/tunnel when vehicles are already driving on it */
+ if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
break;
default:
@@ -429,13 +470,16 @@
cost += ret;
}
- ret = CheckRoadSlope(tileh, &pieces, existing);
- /* Return an error if we need to build a foundation (ret != 0) but the
- * current patch-setting is turned off (or stupid AI@work) */
- if (CmdFailed(ret) || (ret != 0 && !_patches.build_on_slopes))
- return_cmd_error(STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION);
-
- cost += ret;
+ if (all_bits != pieces) {
+ /* Check the foundation/slopes when adding road/tram bits */
+ ret = CheckRoadSlope(tileh, &pieces, all_bits | existing);
+ /* Return an error if we need to build a foundation (ret != 0) but the
+ * current patch-setting is turned off (or stupid AI@work) */
+ if (CmdFailed(ret) || (ret != 0 && !_patches.build_on_slopes)) {
+ return_cmd_error(STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION);
+ }
+ cost += ret;
+ }
if (IsTileType(tile, MP_STREET)) {
/* Don't put the pieces that already exist */
@@ -467,10 +511,11 @@
/* Mark tiles diry that have been repaved */
MarkTileDirtyByTile(other_end);
+ MarkTileDirtyByTile(tile);
if (IsBridge(tile)) {
TileIndexDiff delta = TileOffsByDiagDir(GetBridgeRampDirection(tile));
- for (TileIndex t = tile + delta; tile != other_end; tile += delta) MarkTileDirtyByTile(t);
+ for (TileIndex t = tile + delta; t != other_end; t += delta) MarkTileDirtyByTile(t);
}
} break;
@@ -483,6 +528,12 @@
break;
}
+ if (rt != ROADTYPE_TRAM && IsTileType(tile, MP_STREET) && GetRoadTileType(tile) == ROAD_TILE_NORMAL) {
+ existing |= pieces;
+ SetDisallowedRoadDirections(tile, (existing == ROAD_X || existing == ROAD_Y) ?
+ GetDisallowedRoadDirections(tile) ^ toggle_drd : DRD_NONE);
+ }
+
MarkTileDirtyByTile(tile);
}
return cost;
@@ -528,11 +579,15 @@
* - p2 = (bit 1) - end tile starts in the 2nd half of tile (p2 & 2)
* - p2 = (bit 2) - direction: 0 = along x-axis, 1 = along y-axis (p2 & 4)
* - p2 = (bit 3 + 4) - road type
+ * - p2 = (bit 5) - set road direction
*/
int32 CmdBuildLongRoad(TileIndex end_tile, uint32 flags, uint32 p1, uint32 p2)
{
TileIndex start_tile, tile;
int32 cost, ret;
+ bool had_bridge = false;
+ bool had_success = false;
+ DisallowedRoadDirections drd = DRD_NORTHBOUND;
SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
@@ -552,8 +607,16 @@
start_tile = end_tile;
end_tile = t;
p2 ^= IS_INT_INSIDE(p2 & 3, 1, 3) ? 3 : 0;
+ drd = DRD_SOUTHBOUND;
}
+ /* On the X-axis, we have to swap the initial bits, so they
+ * will be interpreted correctly in the GTTS. Futhermore
+ * when you just 'click' on one tile to build them. */
+ if (HASBIT(p2, 2) == (start_tile == end_tile)) drd ^= DRD_BOTH;
+ /* No disallowed direction bits have to be toggled */
+ if (!HASBIT(p2, 5)) drd = DRD_NONE;
+
cost = 0;
tile = start_tile;
/* Start tile is the small number. */
@@ -563,12 +626,21 @@
if (tile == end_tile && !HASBIT(p2, 1)) bits &= ROAD_NW | ROAD_NE;
if (tile == start_tile && HASBIT(p2, 0)) bits &= ROAD_SE | ROAD_SW;
- ret = DoCommand(tile, rt << 4 | bits, 0, flags, CMD_BUILD_ROAD);
+ ret = DoCommand(tile, drd << 6 | rt << 4 | bits, 0, flags, CMD_BUILD_ROAD);
if (CmdFailed(ret)) {
if (_error_message != STR_1007_ALREADY_BUILT) return CMD_ERROR;
_error_message = INVALID_STRING_ID;
} else {
- cost += ret;
+ had_success = true;
+ /* Only pay for the upgrade on one side of the bridge */
+ if (IsBridgeTile(tile)) {
+ if ((!had_bridge || GetBridgeRampDirection(tile) == DIAGDIR_SE || GetBridgeRampDirection(tile) == DIAGDIR_SW)) {
+ cost += ret;
+ }
+ had_bridge = true;
+ } else {
+ cost += ret;
+ }
}
if (tile == end_tile) break;
@@ -576,7 +648,7 @@
tile += HASBIT(p2, 2) ? TileDiffXY(0, 1) : TileDiffXY(1, 0);
}
- return (cost == 0) ? CMD_ERROR : cost;
+ return !had_success ? CMD_ERROR : cost;
}
/** Remove a long piece of road.
@@ -715,7 +787,7 @@
if (HASBIT(rts, rt)) {
int32 tmp_ret = DoCommand(tile, rt << 4 | GetRoadBits(tile, rt), 0, flags, CMD_REMOVE_ROAD);
if (CmdFailed(tmp_ret)) return tmp_ret;
- ret += rt;
+ ret += tmp_ret;
}
}
return ret;
@@ -812,19 +884,74 @@
}
/**
+ * Draws the catenary for the given tile
+ * @param ti information about the tile (slopes, height etc)
+ * @param tram the roadbits for the tram
+ */
+void DrawTramCatenary(TileInfo *ti, RoadBits tram)
+{
+ /* Don't draw the catenary under a low bridge */
+ if (MayHaveBridgeAbove(ti->tile) && IsBridgeAbove(ti->tile) && !HASBIT(_transparent_opt, TO_BUILDINGS)) {
+ uint height = GetBridgeHeight(GetNorthernBridgeEnd(ti->tile));
+
+ if (height <= GetTileMaxZ(ti->tile) + TILE_HEIGHT) return;
+ }
+
+ SpriteID front;
+ SpriteID back;
+
+ if (ti->tileh != SLOPE_FLAT) {
+ back = SPR_TRAMWAY_BACK_WIRES_SLOPED + _road_sloped_sprites[ti->tileh - 1];
+ front = SPR_TRAMWAY_FRONT_WIRES_SLOPED + _road_sloped_sprites[ti->tileh - 1];
+ } else {
+ back = SPR_TRAMWAY_BASE + _road_backpole_sprites_1[tram];
+ front = SPR_TRAMWAY_BASE + _road_frontwire_sprites_1[tram];
+ }
+
+ SpriteID pal = PAL_NONE;
+ if (HASBIT(_transparent_opt, TO_BUILDINGS)) {
+ SETBIT(front, PALETTE_MODIFIER_TRANSPARENT);
+ SETBIT(back, PALETTE_MODIFIER_TRANSPARENT);
+ pal = PALETTE_TO_TRANSPARENT;
+ }
+
+ AddSortableSpriteToDraw(back, pal, ti->x, ti->y, 16, 16, 0x1F, ti->z);
+ AddSortableSpriteToDraw(front, pal, ti->x, ti->y, 16, 16, 0x1F, ti->z);
+}
+
+/**
+ * Draws details on/around the road
+ * @param img the sprite to draw
+ * @param ti the tile to draw on
+ * @param dx the offset from the top of the BB of the tile
+ * @param dy the offset from the top of the BB of the tile
+ * @param h the height of the sprite to draw
+ */
+static void DrawRoadDetail(SpriteID img, TileInfo *ti, int dx, int dy, int h)
+{
+ int x = ti->x | dx;
+ int y = ti->y | dy;
+ byte z = ti->z;
+ if (ti->tileh != SLOPE_FLAT) z = GetSlopeZ(x, y);
+ AddSortableSpriteToDraw(img, PAL_NONE, x, y, 2, 2, h, z);
+}
+
+/**
* Draw ground sprite and road pieces
* @param ti TileInfo
*/
static void DrawRoadBits(TileInfo* ti)
{
RoadBits road = GetRoadBits(ti->tile, ROADTYPE_ROAD);
+ RoadBits tram = GetRoadBits(ti->tile, ROADTYPE_TRAM);
+
const DrawRoadTileStruct *drts;
SpriteID image = 0;
SpriteID pal = PAL_NONE;
Roadside roadside;
if (ti->tileh != SLOPE_FLAT) {
- int foundation = GetRoadFoundation(ti->tileh, road);
+ int foundation = GetRoadFoundation(ti->tileh, road | tram);
if (foundation != 0) DrawFoundation(ti, foundation);
@@ -833,7 +960,7 @@
if (ti->tileh != SLOPE_FLAT) image = _road_sloped_sprites[ti->tileh - 1] + 0x53F;
}
- if (image == 0) image = _road_tile_sprites_1[road];
+ if (image == 0) image = _road_tile_sprites_1[road != ROAD_NONE ? road : tram];
roadside = GetRoadside(ti->tile);
@@ -850,22 +977,40 @@
DrawGroundSprite(image, pal);
+ if (road != ROAD_NONE) {
+ DisallowedRoadDirections drd = GetDisallowedRoadDirections(ti->tile);
+ if (drd != DRD_NONE) {
+ DrawRoadDetail(SPR_ONEWAY_BASE + drd - 1 + ((road == ROAD_X) ? 0 : 3), ti, 8, 8, 0);
+ }
+ }
+
+ /* For tram we overlay the road graphics with either tram tracks only
+ * (when there is actual road beneath the trams) or with tram tracks
+ * and some dirts which hides the road graphics */
+ if (tram != ROAD_NONE) {
+ if (ti->tileh != SLOPE_FLAT) {
+ image = _road_sloped_sprites[ti->tileh - 1] + SPR_TRAMWAY_SLOPED_OFFSET;
+ } else {
+ image = _road_tile_sprites_1[tram] - SPR_ROAD_Y;
+ }
+ image += (road == ROAD_NONE) ? SPR_TRAMWAY_TRAM : SPR_TRAMWAY_OVERLAY;
+ DrawGroundSprite(image, pal);
+ }
+
if (HasRoadWorks(ti->tile)) {
/* Road works */
- DrawGroundSprite(road & ROAD_X ? SPR_EXCAVATION_X : SPR_EXCAVATION_Y, PAL_NONE);
+ DrawGroundSprite((road | tram) & ROAD_X ? SPR_EXCAVATION_X : SPR_EXCAVATION_Y, PAL_NONE);
return;
}
+ if (tram != ROAD_NONE) DrawTramCatenary(ti, tram);
+
/* Return if full detail is disabled, or we are zoomed fully out. */
if (!HASBIT(_display_opt, DO_FULL_DETAIL) || _cur_dpi->zoom > ZOOM_LVL_DETAIL) return;
/* Draw extra details. */
for (drts = _road_display_table[roadside][road]; drts->image != 0; drts++) {
- int x = ti->x | drts->subcoord_x;
- int y = ti->y | drts->subcoord_y;
- byte z = ti->z;
- if (ti->tileh != SLOPE_FLAT) z = GetSlopeZ(x, y);
- AddSortableSpriteToDraw(drts->image, PAL_NONE, x, y, 2, 2, 0x10, z);
+ DrawRoadDetail(drts->image, ti, drts->subcoord_x, drts->subcoord_y, 0x10);
}
}
@@ -899,6 +1044,10 @@
}
DrawGroundSprite(image, pal);
+ if (HASBIT(GetRoadTypes(ti->tile), ROADTYPE_TRAM)) {
+ DrawGroundSprite(SPR_TRAMWAY_OVERLAY + (GetCrossingRoadAxis(ti->tile) ^ 1), pal);
+ DrawTramCatenary(ti, GetCrossingRoadBits(ti->tile));
+ }
if (GetRailType(ti->tile) == RAILTYPE_ELECTRIC) DrawCatenary(ti);
break;
}
@@ -913,7 +1062,12 @@
palette = PLAYER_SPRITE_COLOR(GetTileOwner(ti->tile));
- dts = &_road_depot[GetRoadDepotDirection(ti->tile)];
+ if (HASBIT(GetRoadTypes(ti->tile), ROADTYPE_TRAM)) {
+ dts = &_tram_depot[GetRoadDepotDirection(ti->tile)];
+ } else {
+ dts = &_road_depot[GetRoadDepotDirection(ti->tile)];
+ }
+
DrawGroundSprite(dts->ground_sprite, PAL_NONE);
for (dtss = dts->seq; dtss->image != 0; dtss++) {
@@ -945,7 +1099,7 @@
void DrawRoadDepotSprite(int x, int y, DiagDirection dir, RoadType rt)
{
SpriteID palette = PLAYER_SPRITE_COLOR(_local_player);
- const DrawTileSprites* dts = &_road_depot[dir];
+ const DrawTileSprites* dts = (rt == ROADTYPE_TRAM) ? &_tram_depot[dir] : &_road_depot[dir];
const DrawTileSeqStruct* dtss;
x += 33;
@@ -1121,7 +1275,9 @@
switch (GetRoadTileType(tile)) {
case ROAD_TILE_NORMAL: {
RoadType rt = (RoadType)FindFirstBit(sub_mode);
- return HasRoadWorks(tile) ? 0 : _road_trackbits[GetRoadBits(tile, rt)] * 0x101;
+ const uint drd_to_multiplier[DRD_END] = { 0x101, 0x100, 0x1, 0x0 };
+ uint multiplier = drd_to_multiplier[rt == ROADTYPE_TRAM ? DRD_NONE : GetDisallowedRoadDirections(tile)];
+ return HasRoadWorks(tile) ? 0 : _road_trackbits[GetRoadBits(tile, rt)] * multiplier;
}
case ROAD_TILE_CROSSING: {
@@ -1163,8 +1319,12 @@
}
}
-static const byte _roadveh_enter_depot_unk0[4] = {
- 8, 9, 0, 1
+/**
+ * Given the direction the road depot is pointing, this is the direction the
+ * vehicle should be travelling in in order to enter the depot.
+ */
+static const byte _roadveh_enter_depot_dir[4] = {
+ TRACKDIR_X_SW, TRACKDIR_Y_NW, TRACKDIR_X_NE, TRACKDIR_Y_SE
};
static uint32 VehicleEnter_Road(Vehicle *v, TileIndex tile, int x, int y)
@@ -1182,7 +1342,7 @@
case ROAD_TILE_DEPOT:
if (v->type == VEH_ROAD &&
v->u.road.frame == 11 &&
- _roadveh_enter_depot_unk0[GetRoadDepotDirection(tile)] == v->u.road.state) {
+ _roadveh_enter_depot_dir[GetRoadDepotDirection(tile)] == v->u.road.state) {
VehicleEnterDepot(v);
return VETSB_ENTERED_WORMHOLE;
}
@@ -1197,7 +1357,13 @@
static void ChangeTileOwner_Road(TileIndex tile, PlayerID old_player, PlayerID new_player)
{
if (GetRoadTileType(tile) == ROAD_TILE_DEPOT) {
- DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
+ if (GetTileOwner(tile) == old_player) {
+ if (new_player == PLAYER_SPECTATOR) {
+ DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
+ } else {
+ SetTileOwner(tile, new_player);
+ }
+ }
return;
}
@@ -1206,15 +1372,17 @@
if (GetRoadOwner(tile, rt) == old_player) {
SetRoadOwner(tile, rt, new_player == PLAYER_SPECTATOR ? OWNER_NONE : new_player);
-
- if (rt == ROADTYPE_TRAM) {
- DoCommand(tile, ROADTYPE_TRAM << 4 | GetRoadBits(tile, ROADTYPE_ROAD), 0, DC_EXEC, CMD_REMOVE_ROAD);
- }
}
}
if (IsLevelCrossing(tile)) {
- MakeRoadNormal(tile, GetCrossingRoadBits(tile), GetRoadTypes(tile), GetTownIndex(tile), GetRoadOwner(tile, ROADTYPE_ROAD), GetRoadOwner(tile, ROADTYPE_TRAM), GetRoadOwner(tile, ROADTYPE_HWAY));
+ if (GetTileOwner(tile) == old_player) {
+ if (new_player == PLAYER_SPECTATOR) {
+ MakeRoadNormal(tile, GetCrossingRoadBits(tile), GetRoadTypes(tile), GetTownIndex(tile), GetRoadOwner(tile, ROADTYPE_ROAD), GetRoadOwner(tile, ROADTYPE_TRAM), GetRoadOwner(tile, ROADTYPE_HWAY));
+ } else {
+ SetTileOwner(tile, new_player);
+ }
+ }
}
}
--- a/src/road_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/road_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -24,8 +24,7 @@
#include "station.h"
-static void ShowBusStationPicker();
-static void ShowTruckStationPicker();
+static void ShowRVStationPicker(RoadStop::Type rs);
static void ShowRoadDepotPicker();
static bool _remove_button_clicked;
@@ -78,6 +77,9 @@
StringID err_build_station[2]; ///< Building a bus or truck station
StringID err_remove_station[2]; ///< Removing of a bus or truck station
+ StringID picker_title[2]; ///< Title for the station picker for bus or truck stations
+ StringID picker_tooltip[2]; ///< Tooltip for the station picker for bus or truck stations
+
SpriteID cursor_nesw; ///< Cursor for building NE and SW bits
SpriteID cursor_nwse; ///< Cursor for building NW and SE bits
};
@@ -88,12 +90,26 @@
STR_1804_CAN_T_BUILD_ROAD_HERE,
STR_1805_CAN_T_REMOVE_ROAD_FROM,
STR_1807_CAN_T_BUILD_ROAD_VEHICLE,
- { STR_1808_CAN_T_BUILD_BUS_STATION, STR_1809_CAN_T_BUILD_TRUCK_STATION },
- { STR_CAN_T_REMOVE_BUS_STATION, STR_CAN_T_REMOVE_TRUCK_STATION },
+ { STR_1808_CAN_T_BUILD_BUS_STATION, STR_1809_CAN_T_BUILD_TRUCK_STATION },
+ { STR_CAN_T_REMOVE_BUS_STATION, STR_CAN_T_REMOVE_TRUCK_STATION },
+ { STR_3042_BUS_STATION_ORIENTATION, STR_3043_TRUCK_STATION_ORIENT },
+ { STR_3051_SELECT_BUS_STATION_ORIENTATION, STR_3052_SELECT_TRUCK_LOADING_BAY },
SPR_CURSOR_ROAD_NESW,
SPR_CURSOR_ROAD_NWSE,
},
+ {
+ STR_1804_CAN_T_BUILD_TRAMWAY_HERE,
+ STR_1805_CAN_T_REMOVE_TRAMWAY_FROM,
+ STR_1807_CAN_T_BUILD_TRAM_VEHICLE,
+ { STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION, STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION },
+ { STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION, STR_CAN_T_REMOVE_CARGO_TRAM_STATION },
+ { STR_3042_PASSENGER_TRAM_STATION_ORIENTATION, STR_3043_CARGO_TRAM_STATION_ORIENT },
+ { STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION, STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION },
+
+ SPR_CURSOR_TRAMWAY_NESW,
+ SPR_CURSOR_TRAMWAY_NWSE,
+ },
};
static void PlaceRoad_Tunnel(TileIndex tile)
@@ -204,13 +220,13 @@
static void BuildRoadClick_BusStation(Window *w)
{
if (_game_mode == GM_EDITOR) return;
- if (HandlePlacePushButton(w, RTW_BUS_STATION, SPR_CURSOR_BUS_STATION, 1, PlaceRoad_BusStation)) ShowBusStationPicker();
+ if (HandlePlacePushButton(w, RTW_BUS_STATION, SPR_CURSOR_BUS_STATION, 1, PlaceRoad_BusStation)) ShowRVStationPicker(RoadStop::BUS);
}
static void BuildRoadClick_TruckStation(Window *w)
{
if (_game_mode == GM_EDITOR) return;
- if (HandlePlacePushButton(w, RTW_TRUCK_STATION, SPR_CURSOR_TRUCK_STATION, 1, PlaceRoad_TruckStation)) ShowTruckStationPicker();
+ if (HandlePlacePushButton(w, RTW_TRUCK_STATION, SPR_CURSOR_TRUCK_STATION, 1, PlaceRoad_TruckStation)) ShowRVStationPicker(RoadStop::TRUCK);
}
static void BuildRoadClick_Bridge(Window *w)
@@ -327,7 +343,7 @@
case DDSP_PLACE_ROAD_NE:
case DDSP_PLACE_ROAD_NW:
- DoCommandP(end_tile, start_tile, _place_road_flag | (_cur_roadtype << 3), CcPlaySound1D,
+ DoCommandP(end_tile, start_tile, _place_road_flag | (_cur_roadtype << 3) | _ctrl_pressed << 5, CcPlaySound1D,
_remove_button_clicked ?
CMD_REMOVE_LONG_ROAD | CMD_AUTO | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_remove_road) :
CMD_BUILD_LONG_ROAD | CMD_AUTO | CMD_NO_WATER | CMD_MSG(_road_type_infos[_cur_roadtype].err_build_road));
@@ -375,13 +391,39 @@
BuildRoadToolbWndProc
};
+static const Widget _build_tramway_widgets[] = {
+{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
+{ WWT_CAPTION, RESIZE_NONE, 7, 11, 205, 0, 13, STR_1802_TRAMWAY_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
+{ WWT_STICKYBOX, RESIZE_NONE, 7, 206, 217, 0, 13, 0x0, STR_STICKY_BUTTON},
+
+{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 21, 14, 35, SPR_IMG_TRAMWAY_NW, STR_180B_BUILD_TRAMWAY_SECTION},
+{ WWT_IMGBTN, RESIZE_NONE, 7, 22, 43, 14, 35, SPR_IMG_TRAMWAY_NE, STR_180B_BUILD_TRAMWAY_SECTION},
+{ WWT_IMGBTN, RESIZE_NONE, 7, 44, 65, 14, 35, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC},
+{ WWT_IMGBTN, RESIZE_NONE, 7, 66, 87, 14, 35, SPR_IMG_ROAD_DEPOT, STR_180C_BUILD_TRAM_VEHICLE_DEPOT},
+{ WWT_IMGBTN, RESIZE_NONE, 7, 88, 109, 14, 35, SPR_IMG_BUS_STATION, STR_180D_BUILD_PASSENGER_TRAM_STATION},
+{ WWT_IMGBTN, RESIZE_NONE, 7, 110, 131, 14, 35, SPR_IMG_TRUCK_BAY, STR_180E_BUILD_CARGO_TRAM_STATION},
+
+{ WWT_IMGBTN, RESIZE_NONE, 7, 132, 173, 14, 35, SPR_IMG_BRIDGE, STR_180F_BUILD_TRAMWAY_BRIDGE},
+{ WWT_IMGBTN, RESIZE_NONE, 7, 174, 195, 14, 35, SPR_IMG_ROAD_TUNNEL, STR_1810_BUILD_TRAMWAY_TUNNEL},
+{ WWT_IMGBTN, RESIZE_NONE, 7, 196, 217, 14, 35, SPR_IMG_REMOVE, STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS},
+{ WIDGETS_END},
+};
+
+static const WindowDesc _build_tramway_desc = {
+ WDP_ALIGN_TBR, 22, 218, 36,
+ WC_BUILD_TOOLBAR, WC_NONE,
+ WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON,
+ _build_tramway_widgets,
+ BuildRoadToolbWndProc
+};
+
void ShowBuildRoadToolbar(RoadType roadtype)
{
if (!IsValidPlayer(_current_player)) return;
_cur_roadtype = roadtype;
DeleteWindowById(WC_BUILD_TOOLBAR, 0);
- Window *w = AllocateWindowDesc(&_build_road_desc);
+ Window *w = AllocateWindowDesc(roadtype == ROADTYPE_ROAD ? &_build_road_desc : &_build_tramway_desc);
if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
}
@@ -412,6 +454,7 @@
void ShowBuildRoadScenToolbar()
{
+ _cur_roadtype = ROADTYPE_ROAD;
AllocateWindowDescFront(&_build_road_scen_desc, 0);
}
@@ -462,6 +505,17 @@
{ WIDGETS_END},
};
+static const Widget _build_tram_depot_widgets[] = {
+{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
+{ WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_1806_TRAM_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
+{ WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 121, 0x0, STR_NULL},
+{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_1813_SELECT_TRAM_VEHICLE_DEPOT},
+{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_1813_SELECT_TRAM_VEHICLE_DEPOT},
+{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_1813_SELECT_TRAM_VEHICLE_DEPOT},
+{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_1813_SELECT_TRAM_VEHICLE_DEPOT},
+{ WIDGETS_END},
+};
+
static const WindowDesc _build_road_depot_desc = {
WDP_AUTO, WDP_AUTO, 140, 122,
WC_BUILD_DEPOT, WC_BUILD_TOOLBAR,
@@ -470,9 +524,17 @@
BuildRoadDepotWndProc
};
+static const WindowDesc _build_tram_depot_desc = {
+ WDP_AUTO, WDP_AUTO, 140, 122,
+ WC_BUILD_DEPOT, WC_BUILD_TOOLBAR,
+ WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
+ _build_tram_depot_widgets,
+ BuildRoadDepotWndProc
+};
+
static void ShowRoadDepotPicker()
{
- AllocateWindowDesc(&_build_road_depot_desc);
+ AllocateWindowDesc(_cur_roadtype == ROADTYPE_ROAD ? &_build_road_depot_desc : &_build_tram_depot_desc);
}
static void RoadStationPickerWndProc(Window *w, WindowEvent *e)
@@ -555,62 +617,38 @@
}
}
-static const Widget _bus_station_picker_widgets[] = {
+static const Widget _rv_station_picker_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
-{ WWT_CAPTION, RESIZE_NONE, 7, 11, 206, 0, 13, STR_3042_BUS_STATION_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
+{ WWT_CAPTION, RESIZE_NONE, 7, 11, 206, 0, 13, STR_NULL, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 206, 14, 176, 0x0, STR_NULL},
-{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION},
-{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION},
-{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION},
-{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION},
-{ WWT_PANEL, RESIZE_NONE, 14, 139, 204, 17, 66, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION},
-{ WWT_PANEL, RESIZE_NONE, 14, 139, 204, 69, 118, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION},
+{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_NULL},
+{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_NULL},
+{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_NULL},
+{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_NULL},
+{ WWT_PANEL, RESIZE_NONE, 14, 139, 204, 17, 66, 0x0, STR_NULL},
+{ WWT_PANEL, RESIZE_NONE, 14, 139, 204, 69, 118, 0x0, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 10, 69, 133, 144, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 70, 129, 133, 144, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA},
{ WWT_LABEL, RESIZE_NONE, 7, 0, 139, 120, 133, STR_3066_COVERAGE_AREA_HIGHLIGHT, STR_NULL},
{ WIDGETS_END},
};
-static const WindowDesc _bus_station_picker_desc = {
+static const WindowDesc _rv_station_picker_desc = {
WDP_AUTO, WDP_AUTO, 207, 177,
WC_BUS_STATION, WC_BUILD_TOOLBAR,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
- _bus_station_picker_widgets,
+ _rv_station_picker_widgets,
RoadStationPickerWndProc
};
-static void ShowBusStationPicker()
+static void ShowRVStationPicker(RoadStop::Type rs)
{
- AllocateWindowDesc(&_bus_station_picker_desc);
-}
+ Window *w = AllocateWindowDesc(&_rv_station_picker_desc);
+ if (w == NULL) return;
-static const Widget _truck_station_picker_widgets[] = {
-{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
-{ WWT_CAPTION, RESIZE_NONE, 7, 11, 206, 0, 13, STR_3043_TRUCK_STATION_ORIENT, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{ WWT_PANEL, RESIZE_NONE, 7, 0, 206, 14, 176, 0x0, STR_NULL},
-{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY},
-{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY},
-{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY},
-{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY},
-{ WWT_PANEL, RESIZE_NONE, 14, 139, 204, 17, 66, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY},
-{ WWT_PANEL, RESIZE_NONE, 14, 139, 204, 69, 118, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY},
-{ WWT_TEXTBTN, RESIZE_NONE, 14, 10, 69, 133, 144, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE},
-{ WWT_TEXTBTN, RESIZE_NONE, 14, 70, 129, 133, 144, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA},
-{ WWT_LABEL, RESIZE_NONE, 7, 0, 139, 120, 133, STR_3066_COVERAGE_AREA_HIGHLIGHT, STR_NULL},
-{ WIDGETS_END},
-};
-
-static const WindowDesc _truck_station_picker_desc = {
- WDP_AUTO, WDP_AUTO, 207, 177,
- WC_TRUCK_STATION, WC_BUILD_TOOLBAR,
- WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
- _truck_station_picker_widgets,
- RoadStationPickerWndProc
-};
-
-static void ShowTruckStationPicker()
-{
- AllocateWindowDesc(&_truck_station_picker_desc);
+ w->window_class = (rs == RoadStop::BUS) ? WC_BUS_STATION : WC_TRUCK_STATION;
+ w->widget[1].data = _road_type_infos[_cur_roadtype].picker_title[rs];
+ for (uint i = 3; i < 9; i++) w->widget[i].tooltips = _road_type_infos[_cur_roadtype].picker_tooltip[rs];
}
void InitializeRoadGui()
--- a/src/road_map.h Fri May 25 00:25:08 2007 +0000
+++ b/src/road_map.h Fri Jun 01 20:54:09 2007 +0000
@@ -89,14 +89,24 @@
switch (rt) {
default: NOT_REACHED();
case ROADTYPE_ROAD: return (Owner)GB( _m[t].m1, 0, 5);
- case ROADTYPE_TRAM: return (Owner)GB( _m[t].m5, 0, 5);
+ case ROADTYPE_TRAM: {
+ /* Trams don't need OWNER_TOWN, and remapping OWNER_NONE
+ * to OWNER_TOWN makes it use one bit less */
+ Owner o = (Owner)GB( _m[t].m5, 0, 4);
+ return o == OWNER_TOWN ? OWNER_NONE : o;
+ }
case ROADTYPE_HWAY: return (Owner)GB(_me[t].m7, 0, 5);
}
case ROAD_TILE_CROSSING:
switch (rt) {
default: NOT_REACHED();
case ROADTYPE_ROAD: return (Owner)GB( _m[t].m4, 0, 5);
- case ROADTYPE_TRAM: return (Owner)GB( _m[t].m5, 0, 5);
+ case ROADTYPE_TRAM: {
+ /* Trams don't need OWNER_TOWN, and remapping OWNER_NONE
+ * to OWNER_TOWN makes it use one bit less */
+ Owner o = (Owner)GB( _m[t].m5, 0, 4);
+ return o == OWNER_TOWN ? OWNER_NONE : o;
+ }
case ROADTYPE_HWAY: return (Owner)GB(_me[t].m7, 0, 5);
}
case ROAD_TILE_DEPOT: return GetTileOwner(t);
@@ -113,7 +123,7 @@
switch (rt) {
default: NOT_REACHED();
case ROADTYPE_ROAD: SB( _m[t].m1, 0, 5, o); break;
- case ROADTYPE_TRAM: SB( _m[t].m5, 0, 5, o); break;
+ case ROADTYPE_TRAM: SB( _m[t].m5, 0, 4, o == OWNER_NONE ? OWNER_TOWN : o); break;
case ROADTYPE_HWAY: SB(_me[t].m7, 0, 5, o); break;
}
break;
@@ -121,7 +131,9 @@
switch (rt) {
default: NOT_REACHED();
case ROADTYPE_ROAD: SB( _m[t].m4, 0, 5, o); break;
- case ROADTYPE_TRAM: SB( _m[t].m5, 0, 5, o); break;
+ /* Trams don't need OWNER_TOWN, and remapping OWNER_NONE
+ * to OWNER_TOWN makes it use one bit less */
+ case ROADTYPE_TRAM: SB( _m[t].m5, 0, 4, o == OWNER_NONE ? OWNER_TOWN : o); break;
case ROADTYPE_HWAY: SB(_me[t].m7, 0, 5, o); break;
}
break;
@@ -129,6 +141,39 @@
}
}
+/** Which directions are disallowed ? */
+enum DisallowedRoadDirections {
+ DRD_NONE, ///< None of the directions are disallowed
+ DRD_SOUTHBOUND, ///< All southbound traffic is disallowed
+ DRD_NORTHBOUND, ///< All northbound traffic is disallowed
+ DRD_BOTH, ///< All directions are disallowed
+ DRD_END
+};
+DECLARE_ENUM_AS_BIT_SET(DisallowedRoadDirections);
+
+/**
+ * Gets the disallowed directions
+ * @param t the tile to get the directions from
+ * @return the disallowed directions
+ */
+static inline DisallowedRoadDirections GetDisallowedRoadDirections(TileIndex t)
+{
+ assert(GetRoadTileType(t) == ROAD_TILE_NORMAL);
+ return (DisallowedRoadDirections)GB(_m[t].m5, 4, 2);
+}
+
+/**
+ * Sets the disallowed directions
+ * @param t the tile to set the directions for
+ * @param drd the disallowed directions
+ */
+static inline void SetDisallowedRoadDirections(TileIndex t, DisallowedRoadDirections drd)
+{
+ assert(GetRoadTileType(t) == ROAD_TILE_NORMAL);
+ assert(drd < DRD_END);
+ SB(_m[t].m5, 4, 2, drd);
+}
+
static inline Axis GetCrossingRoadAxis(TileIndex t)
{
assert(GetRoadTileType(t) == ROAD_TILE_CROSSING);
@@ -267,7 +312,8 @@
_m[t].m2 = town;
_m[t].m3 = 0;
_m[t].m4 = (HASBIT(rot, ROADTYPE_TRAM) ? bits : 0) << 4 | (HASBIT(rot, ROADTYPE_ROAD) ? bits : 0);
- _m[t].m5 = ROAD_TILE_NORMAL << 6 | tram;
+ _m[t].m5 = ROAD_TILE_NORMAL << 6;
+ SetRoadOwner(t, ROADTYPE_TRAM, tram);
SB(_m[t].m6, 2, 4, HASBIT(rot, ROADTYPE_HWAY) ? bits : 0);
_me[t].m7 = rot << 5 | hway;
}
@@ -280,7 +326,8 @@
_m[t].m2 = town;
_m[t].m3 = rat;
_m[t].m4 = roaddir << 6 | road;
- _m[t].m5 = ROAD_TILE_CROSSING << 6 | tram;
+ _m[t].m5 = ROAD_TILE_CROSSING << 6;
+ SetRoadOwner(t, ROADTYPE_TRAM, tram);
SB(_m[t].m6, 2, 4, 0);
_me[t].m7 = rot << 5 | hway;
}
--- a/src/roadveh.h Fri May 25 00:25:08 2007 +0000
+++ b/src/roadveh.h Fri Jun 01 20:54:09 2007 +0000
@@ -43,6 +43,7 @@
void UpdateDeltaXY(Direction direction);
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_ROADVEH_INC : EXPENSES_ROADVEH_RUN; }
WindowClass GetVehicleListWindowClass() const { return WC_ROADVEH_LIST; }
+ bool IsPrimaryVehicle() const { return true; }
};
#endif /* ROADVEH_H */
--- a/src/roadveh_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/roadveh_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -145,6 +145,8 @@
if (!IsTileDepotType(tile, TRANSPORT_ROAD)) return CMD_ERROR;
if (!IsTileOwner(tile, _current_player)) return CMD_ERROR;
+ if (HASBIT(GetRoadTypes(tile), ROADTYPE_TRAM) != HASBIT(EngInfo(p1)->misc_flags, EF_ROAD_TRAM)) return_cmd_error(STR_DEPOT_WRONG_DEPOT_TYPE);
+
v = AllocateVehicle();
if (v == NULL) return_cmd_error(STR_00E1_TOO_MANY_VEHICLES_IN_GAME);
@@ -173,9 +175,6 @@
v->u.road.state = RVSB_IN_DEPOT;
v->vehstatus = VS_HIDDEN | VS_STOPPED | VS_DEFPAL;
- v->u.road.roadtype = ROADTYPE_ROAD;
- v->u.road.compatible_roadtypes = RoadTypeToRoadTypes(v->u.road.roadtype);
-
v->spritenum = rvi->image_index;
v->cargo_type = rvi->cargo_type;
v->cargo_subtype = 0;
@@ -194,6 +193,9 @@
v->max_speed = rvi->max_speed;
v->engine_type = (byte)p1;
+ v->u.road.roadtype = HASBIT(EngInfo(v->engine_type)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD;
+ v->u.road.compatible_roadtypes = RoadTypeToRoadTypes(v->u.road.roadtype);
+
e = GetEngine(p1);
v->reliability = e->reliability;
v->reliability_spd_dec = e->reliability_spd_dec;
@@ -261,6 +263,7 @@
}
v->vehstatus ^= VS_STOPPED;
+ v->cur_speed = 0;
InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, STATUS_BAR);
InvalidateWindow(WC_VEHICLE_DEPOT, v->tile);
}
@@ -472,6 +475,7 @@
if (v->type != VEH_ROAD || !CheckOwnership(v->owner)) return CMD_ERROR;
if (v->vehstatus & VS_STOPPED ||
+ v->u.road.roadtype == ROADTYPE_TRAM ||
v->u.road.crashed_ctr != 0 ||
v->breakdown_ctr != 0 ||
v->u.road.overtaking != 0 ||
@@ -481,6 +485,8 @@
return CMD_ERROR;
}
+ if (IsTileType(v->tile, MP_STREET) && GetRoadTileType(v->tile) == ROAD_TILE_NORMAL && GetDisallowedRoadDirections(v->tile) != DRD_NONE) return CMD_ERROR;
+
if (IsTunnelTile(v->tile) && DirToDiagDir(v->direction) == GetTunnelDirection(v->tile)) return CMD_ERROR;
if (IsBridgeTile(v->tile) && DirToDiagDir(v->direction) == GetBridgeRampDirection(v->tile)) return CMD_ERROR;
@@ -725,11 +731,14 @@
IsCargoInClass(v->cargo_type, CC_PASSENGERS) ? RoadStop::BUS : RoadStop::TRUCK
);
+ TileIndex dest = INVALID_TILE;
if (rs != NULL) {
- TileIndex dest = rs->xy;
- uint mindist = DistanceManhattan(v->tile, rs->xy);
+ uint mindist = MAX_UVALUE(uint);
- for (rs = rs->next; rs != NULL; rs = rs->next) {
+ for (; rs != NULL; rs = rs->next) {
+ /* The vehicle cannot go to this roadstop */
+ if ((GetRoadTypes(rs->xy) & v->u.road.compatible_roadtypes) == ROADTYPES_NONE) continue;
+
uint dist = DistanceManhattan(v->tile, rs->xy);
if (dist < mindist) {
@@ -737,7 +746,10 @@
dest = rs->xy;
}
}
- v->dest_tile = dest;
+ }
+
+ if (dest != INVALID_TILE) {
+ v->dest_tile = dest;
} else {
/* There is no stop left at the station, so don't even TRY to go there */
v->cur_order_index++;
@@ -836,7 +848,7 @@
SetDParam(0, st->index);
flags = (v->owner == _local_player) ? NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ARRIVAL_PLAYER, 0) : NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ARRIVAL_OTHER, 0);
AddNewsItem(
- STR_902F_CITIZENS_CELEBRATE_FIRST,
+ v->u.road.roadtype == ROADTYPE_ROAD ? STR_902F_CITIZENS_CELEBRATE_FIRST : STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM,
flags,
v->index,
0);
@@ -850,7 +862,7 @@
SetDParam(0, st->index);
flags = (v->owner == _local_player) ? NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ARRIVAL_PLAYER, 0) : NEWS_FLAGS(NM_THIN, NF_VIEWPORT|NF_VEHICLE, NT_ARRIVAL_OTHER, 0);
AddNewsItem(
- STR_9030_CITIZENS_CELEBRATE_FIRST,
+ v->u.road.roadtype == ROADTYPE_ROAD ? STR_9030_CITIZENS_CELEBRATE_FIRST : STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM,
flags,
v->index,
0
@@ -957,6 +969,9 @@
return;
}
+ /* Trams can't overtake other trams */
+ if (v->u.road.roadtype == ROADTYPE_TRAM) return;
+
if (v->direction != u->direction || !(v->direction & 1)) return;
/* Check if vehicle is in a road stop, depot, tunnel or bridge or not on a straight road */
@@ -1064,7 +1079,7 @@
TrackdirBits trackdirs = (TrackdirBits)GB(r, 0, 16);
if (IsTileType(tile, MP_STREET)) {
- if (GetRoadTileType(tile) == ROAD_TILE_DEPOT && (!IsTileOwner(tile, v->owner) || GetRoadDepotDirection(tile) == enterdir)) {
+ if (GetRoadTileType(tile) == ROAD_TILE_DEPOT && (!IsTileOwner(tile, v->owner) || GetRoadDepotDirection(tile) == enterdir || (GetRoadTypes(tile) & v->u.road.compatible_roadtypes) == 0)) {
/* Road depot owned by another player or with the wrong orientation */
trackdirs = TRACKDIR_BIT_NONE;
}
@@ -1300,7 +1315,7 @@
v->direction = DiagDirToDir(dir);
tdir = _roadveh_depot_exit_trackdir[dir];
- rdp = _road_drive_data[(_opt.road_side << RVS_DRIVE_SIDE) + tdir];
+ rdp = _road_drive_data[v->u.road.roadtype][(_opt.road_side << RVS_DRIVE_SIDE) + tdir];
x = TileX(v->tile) * TILE_SIZE + (rdp[RVC_DEPOT_START_FRAME].x & 0xF);
y = TileY(v->tile) * TILE_SIZE + (rdp[RVC_DEPOT_START_FRAME].y & 0xF);
@@ -1369,7 +1384,7 @@
/* Get move position data for next frame.
* For a drive-through road stop use 'straight road' move data.
* In this case v->u.road.state is masked to give the road stop entry direction. */
- rd = _road_drive_data[(
+ rd = _road_drive_data[v->u.road.roadtype][(
(HASBIT(v->u.road.state, RVS_IN_DT_ROAD_STOP) ? v->u.road.state & RVSB_ROAD_STOP_TRACKDIR_MASK : v->u.road.state) +
(_opt.road_side << RVS_DRIVE_SIDE)) ^ v->u.road.overtaking][v->u.road.frame + 1];
@@ -1388,11 +1403,30 @@
again:
if (IsReversingRoadTrackdir(dir)) {
/* Turning around */
- tile = v->tile;
+ if (v->u.road.roadtype == ROADTYPE_TRAM) {
+ RoadBits needed; // The road bits the tram needs to be able to turn around
+ switch (dir) {
+ default: NOT_REACHED();
+ case TRACKDIR_RVREV_NE: needed = ROAD_SW; break;
+ case TRACKDIR_RVREV_SE: needed = ROAD_NW; break;
+ case TRACKDIR_RVREV_SW: needed = ROAD_NE; break;
+ case TRACKDIR_RVREV_NW: needed = ROAD_SE; break;
+ }
+ if (!IsTileType(tile, MP_STREET) || GetRoadTileType(tile) != ROAD_TILE_NORMAL || (needed & GetRoadBits(tile, ROADTYPE_TRAM)) == ROAD_NONE) {
+ /* The tram cannot turn here */
+ v->cur_speed = 0;
+ return;
+ }
+ } else if (IsTileType(v->tile, MP_STREET) && GetRoadTileType(v->tile) == ROAD_TILE_NORMAL && GetDisallowedRoadDirections(v->tile) != DRD_NONE) {
+ v->cur_speed = 0;
+ return;
+ } else {
+ tile = v->tile;
+ }
}
/* Get position data for first frame on the new tile */
- rdp = _road_drive_data[(dir + (_opt.road_side << RVS_DRIVE_SIDE)) ^ v->u.road.overtaking];
+ rdp = _road_drive_data[v->u.road.roadtype][(dir + (_opt.road_side << RVS_DRIVE_SIDE)) ^ v->u.road.overtaking];
x = TileX(tile) * TILE_SIZE + rdp[RVC_DEFAULT_START_FRAME].x;
y = TileY(tile) * TILE_SIZE + rdp[RVC_DEFAULT_START_FRAME].y;
@@ -1459,7 +1493,7 @@
return;
}
- rdp = _road_drive_data[(_opt.road_side << RVS_DRIVE_SIDE) + dir];
+ rdp = _road_drive_data[v->u.road.roadtype][(_opt.road_side << RVS_DRIVE_SIDE) + dir];
x = TileX(v->tile) * TILE_SIZE + rdp[RVC_TURN_AROUND_START_FRAME].x;
y = TileY(v->tile) * TILE_SIZE + rdp[RVC_TURN_AROUND_START_FRAME].y;
@@ -1499,6 +1533,7 @@
Vehicle* u = RoadVehFindCloseTo(v, x, y, new_dir);
if (u != NULL) {
+ v->cur_speed = u->cur_speed;
/* There is a vehicle in front overtake it if possible */
if (v->u.road.overtaking == 0) RoadVehCheckOvertake(v, u);
return;
--- a/src/roadveh_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/roadveh_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -192,7 +192,7 @@
bool is_localplayer = v->owner == _local_player;
SetWindowWidgetDisabledState(w, 7, !is_localplayer);
- SetWindowWidgetDisabledState(w, 8, !is_localplayer);
+ SetWindowWidgetDisabledState(w, 8, !is_localplayer || v->u.road.roadtype == ROADTYPE_TRAM);
SetWindowWidgetDisabledState(w, 11, !is_localplayer);
/* Disable refit button if vehicle not refittable */
SetWindowWidgetDisabledState(w, 12, !is_localplayer ||
--- a/src/saveload.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/saveload.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -29,7 +29,7 @@
#include <setjmp.h>
#include <list>
-extern const uint16 SAVEGAME_VERSION = 62;
+extern const uint16 SAVEGAME_VERSION = 64;
uint16 _sl_version; ///< the major savegame version identifier
byte _sl_minor_version; ///< the minor savegame version, DO NOT USE!
--- a/src/settings.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/settings.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -1232,7 +1232,7 @@
#endif /* WIN32 */
static const SettingDescGlobVarList _misc_settings[] = {
- SDTG_MMANY("display_opt", SLE_UINT8, S, 0, _display_opt, (DO_SHOW_TOWN_NAMES|DO_SHOW_STATION_NAMES|DO_SHOW_SIGNS|DO_FULL_ANIMATION|DO_FULL_DETAIL|DO_WAYPOINTS), "SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION|FULL_DETAIL|WAYPOINTS", STR_NULL, NULL),
+ SDTG_MMANY("display_opt", SLE_UINT8, S, 0, _display_opt, (1 << DO_SHOW_TOWN_NAMES | 1 << DO_SHOW_STATION_NAMES | 1 << DO_SHOW_SIGNS | 1 << DO_FULL_ANIMATION | 1 << DO_FULL_DETAIL | 1 << DO_WAYPOINTS), "SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION||FULL_DETAIL|WAYPOINTS", STR_NULL, NULL),
SDTG_BOOL("news_ticker_sound", S, 0, _news_ticker_sound, true, STR_NULL, NULL),
SDTG_BOOL("fullscreen", S, 0, _fullscreen, false, STR_NULL, NULL),
SDTG_STR("videodriver", SLE_STRB,C|S,0, _ini_videodriver, NULL, STR_NULL, NULL),
@@ -1322,6 +1322,7 @@
SDT_BOOL(Patches, show_finances, S, 0, true, STR_CONFIG_PATCHES_SHOWFINANCES, NULL),
SDT_BOOL(Patches, autoscroll, S, 0, false, STR_CONFIG_PATCHES_AUTOSCROLL, NULL),
SDT_BOOL(Patches, reverse_scroll, S, 0, false, STR_CONFIG_PATCHES_REVERSE_SCROLLING, NULL),
+ SDT_BOOL(Patches, smooth_scroll, S, 0, false, STR_CONFIG_PATCHES_SMOOTH_SCROLLING, NULL),
SDT_BOOL(Patches, measure_tooltip, S, 0, false, STR_CONFIG_PATCHES_MEASURE_TOOLTIP, NULL),
SDT_VAR(Patches, errmsg_duration, SLE_UINT8, S, 0, 5, 0, 20, 0, STR_CONFIG_PATCHES_ERRMSG_DURATION, NULL),
SDT_VAR(Patches, toolbar_pos, SLE_UINT8, S,MS, 0, 0, 2, 0, STR_CONFIG_PATCHES_TOOLBAR_POS, v_PositionMainToolbar),
--- a/src/settings_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/settings_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -583,6 +583,7 @@
"show_finances",
"autoscroll",
"reverse_scroll",
+ "smooth_scroll",
"errmsg_duration",
"toolbar_pos",
"measure_tooltip",
--- a/src/ship.h Fri May 25 00:25:08 2007 +0000
+++ b/src/ship.h Fri Jun 01 20:54:09 2007 +0000
@@ -45,6 +45,7 @@
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_SHIP_INC : EXPENSES_SHIP_RUN; }
WindowClass GetVehicleListWindowClass() const { return WC_SHIPS_LIST; }
void PlayLeaveStationSound() const;
+ bool IsPrimaryVehicle() const { return true; }
};
#endif /* SHIP_H */
--- a/src/signs.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/signs.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -65,11 +65,14 @@
*/
static void MarkSignDirty(Sign *si)
{
+ /* We use ZOOM_LVL_MAX here, as every viewport can have an other zoom,
+ * and there is no way for us to know which is the biggest. So make the
+ * biggest area dirty, and we are safe for sure. */
MarkAllViewportsDirty(
si->sign.left - 6,
si->sign.top - 3,
- si->sign.left + ScaleByZoom(si->sign.width_1 + 12, _cur_dpi->zoom),
- si->sign.top + ScaleByZoom(12, _cur_dpi->zoom));
+ si->sign.left + ScaleByZoom(si->sign.width_1 + 12, ZOOM_LVL_MAX),
+ si->sign.top + ScaleByZoom(12, ZOOM_LVL_MAX));
}
/**
--- a/src/smallmap_gui.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/smallmap_gui.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -146,7 +146,7 @@
/* Add each name */
for (IndustryType i = 0; i < NUM_INDUSTRYTYPES; i++) {
indsp = GetIndustrySpec(i);
- if (HASBIT(indsp->climate_availability, _opt.landscape)) {
+ if (indsp->enabled) {
_legend_from_industries[j].legend = indsp->name;
_legend_from_industries[j].colour = indsp->map_colour;
_legend_from_industries[j].col_break = (j % 6) == 0; // break is performed on the 7th item
@@ -430,7 +430,7 @@
break;
case MP_INDUSTRY:
- bits = GetIndustryType(tile) == IT_FOREST ? MKCOLOR(0xD0D0D0D0) : MKCOLOR(0xB5B5B5B5);
+ bits = GetIndustrySpec(GetIndustryByTile(tile)->type)->check_proc == CHECK_FOREST ? MKCOLOR(0xD0D0D0D0) : MKCOLOR(0xB5B5B5B5);
break;
case MP_TREES:
@@ -806,8 +806,8 @@
_left_button_clicked = false;
pt = RemapCoords(WP(w,smallmap_d).scroll_x, WP(w,smallmap_d).scroll_y, 0);
- WP(w2, vp_d).scrollpos_x = pt.x + ((_cursor.pos.x - w->left + 2) << 4) - (w2->viewport->virtual_width >> 1);
- WP(w2, vp_d).scrollpos_y = pt.y + ((_cursor.pos.y - w->top - 16) << 4) - (w2->viewport->virtual_height >> 1);
+ WP(w2, vp_d).dest_scrollpos_x = pt.x + ((_cursor.pos.x - w->left + 2) << 4) - (w2->viewport->virtual_width >> 1);
+ WP(w2, vp_d).dest_scrollpos_y = pt.y + ((_cursor.pos.y - w->top - 16) << 4) - (w2->viewport->virtual_height >> 1);
SetWindowDirty(w);
} break;
@@ -986,8 +986,8 @@
int y = WP(w, vp_d).scrollpos_y;
/* set this view to same location. Based on the center, adjusting for zoom */
- WP(w2, vp_d).scrollpos_x = x - (w2->viewport->virtual_width - w->viewport->virtual_width) / 2;
- WP(w2, vp_d).scrollpos_y = y - (w2->viewport->virtual_height - w->viewport->virtual_height) / 2;
+ WP(w2, vp_d).dest_scrollpos_x = x - (w2->viewport->virtual_width - w->viewport->virtual_width) / 2;
+ WP(w2, vp_d).dest_scrollpos_y = y - (w2->viewport->virtual_height - w->viewport->virtual_height) / 2;
} break;
case 8: { /* inverse location button (move this view to same spot as main view) 'Copy Location' */
@@ -995,8 +995,8 @@
int x = WP(w2, const vp_d).scrollpos_x;
int y = WP(w2, const vp_d).scrollpos_y;
- WP(w, vp_d).scrollpos_x = x + (w2->viewport->virtual_width - w->viewport->virtual_width) / 2;
- WP(w, vp_d).scrollpos_y = y + (w2->viewport->virtual_height - w->viewport->virtual_height) / 2;
+ WP(w, vp_d).dest_scrollpos_x = x + (w2->viewport->virtual_width - w->viewport->virtual_width) / 2;
+ WP(w, vp_d).dest_scrollpos_y = y + (w2->viewport->virtual_height - w->viewport->virtual_height) / 2;
} break;
}
break;
@@ -1018,6 +1018,8 @@
WP(w, vp_d).scrollpos_x += ScaleByZoom(e->we.scroll.delta.x, vp->zoom);
WP(w, vp_d).scrollpos_y += ScaleByZoom(e->we.scroll.delta.y, vp->zoom);
+ WP(w, vp_d).dest_scrollpos_x = WP(w, vp_d).scrollpos_x;
+ WP(w, vp_d).dest_scrollpos_y = WP(w, vp_d).scrollpos_y;
} break;
case WE_MOUSEWHEEL:
@@ -1062,5 +1064,7 @@
y = WP(v, vp_d).scrollpos_y;
WP(w, vp_d).scrollpos_x = x + (v->viewport->virtual_width - (294)) / 2;
WP(w, vp_d).scrollpos_y = y + (v->viewport->virtual_height - (214)) / 2;
+ WP(w, vp_d).dest_scrollpos_x = WP(w, vp_d).scrollpos_x;
+ WP(w, vp_d).dest_scrollpos_y = WP(w, vp_d).scrollpos_y;
}
}
--- a/src/station.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/station.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -122,11 +122,14 @@
if (sign.width_1 != 0) {
InvalidateWindowWidget(WC_STATION_VIEW, index, 1);
+ /* We use ZOOM_LVL_MAX here, as every viewport can have an other zoom,
+ * and there is no way for us to know which is the biggest. So make the
+ * biggest area dirty, and we are safe for sure. */
MarkAllViewportsDirty(
sign.left - 6,
sign.top,
- sign.left + ScaleByZoom(sign.width_1 + 12, _cur_dpi->zoom),
- sign.top + ScaleByZoom(12, _cur_dpi->zoom));
+ sign.left + ScaleByZoom(sign.width_1 + 12, ZOOM_LVL_MAX),
+ sign.top + ScaleByZoom(12, ZOOM_LVL_MAX));
}
}
--- a/src/station_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/station_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -615,7 +615,7 @@
// Tries to clear the given area. Returns the cost in case of success.
// Or an error code if it failed.
-int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invalid_dirs, StationID* station)
+int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invalid_dirs, StationID* station, bool check_clear = true)
{
int32 cost = 0;
int allowed_z = -1;
@@ -678,7 +678,7 @@
return_cmd_error(STR_3006_ADJOINS_MORE_THAN_ONE_EXISTING);
}
}
- } else {
+ } else if (check_clear) {
int32 ret = DoCommand(tile_cur, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
if (CmdFailed(ret)) return ret;
cost += ret;
@@ -1248,7 +1248,6 @@
bool is_drive_through = HASBIT(p2, 1);
bool build_over_road = is_drive_through && IsTileType(tile, MP_STREET) && GetRoadTileType(tile) == ROAD_TILE_NORMAL;
bool town_owned_road = build_over_road && IsTileOwner(tile, OWNER_TOWN);
- Owner cur_owner = _current_player;
RoadTypes rts = (RoadTypes)GB(p2, 2, 3);
if (rts == ROADTYPES_NONE || HASBIT(rts, ROADTYPE_HWAY)) return CMD_ERROR;
@@ -1262,27 +1261,30 @@
if (is_drive_through && !IsValidAxis((Axis)p1)) return CMD_ERROR;
/* Road bits in the wrong direction */
if (build_over_road && (GetAllRoadBits(tile) & ((Axis)p1 == AXIS_X ? ROAD_Y : ROAD_X)) != 0) return_cmd_error(STR_DRIVE_THROUGH_ERROR_DIRECTION);
+
+ SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
+
+ if (!(flags & DC_NO_TOWN_RATING) && !CheckIfAuthorityAllows(tile)) return CMD_ERROR;
+
+ int32 cost = 0;
+
/* Not allowed to build over this road */
if (build_over_road) {
if (IsTileOwner(tile, OWNER_TOWN) && !_patches.road_stop_on_town_road) return_cmd_error(STR_DRIVE_THROUGH_ERROR_ON_TOWN_ROAD);
if (GetRoadTileType(tile) != ROAD_TILE_NORMAL) return CMD_ERROR;
- if (!IsTileOwner(tile, OWNER_TOWN) && !CheckOwnership(GetRoadOwner(tile, ROADTYPE_ROAD)) && !CheckOwnership(GetRoadOwner(tile, ROADTYPE_TRAM))) return CMD_ERROR;
+
+ /* Don't allow building the roadstop when vehicles are already driving on it */
+ if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
+
+ RoadTypes cur_rts = GetRoadTypes(tile);
+ if (GetRoadOwner(tile, ROADTYPE_ROAD) != OWNER_TOWN && HASBIT(cur_rts, ROADTYPE_ROAD) && !CheckOwnership(GetRoadOwner(tile, ROADTYPE_ROAD))) return CMD_ERROR;
+ if (HASBIT(cur_rts, ROADTYPE_TRAM) && !CheckOwnership(GetRoadOwner(tile, ROADTYPE_TRAM))) return CMD_ERROR;
+
/* Do not remove roadtypes! */
- if (rts != GetRoadTypes(tile) && rts != ROADTYPES_ROADTRAM) return CMD_ERROR;
+ rts |= cur_rts;
}
-
- SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
-
- if (!(flags & DC_NO_TOWN_RATING) && !CheckIfAuthorityAllows(tile))
- return CMD_ERROR;
-
- if (build_over_road) flags ^= DC_AUTO;
-
- if (town_owned_road) _current_player = OWNER_TOWN;
- int32 ret = CheckFlatLandBelow(tile, 1, 1, flags, is_drive_through ? 5 << p1 : 1 << p1, NULL);
- _current_player = cur_owner;
- if (CmdFailed(ret)) return ret;
- int32 cost = build_over_road ? 0 : ret; // Don't add cost of clearing road when overbuilding
+ cost = CheckFlatLandBelow(tile, 1, 1, flags, is_drive_through ? 5 << p1 : 1 << p1, NULL, !build_over_road);
+ if (CmdFailed(cost)) return cost;
Station *st = NULL;
@@ -1439,20 +1441,11 @@
/* If the stop was a drive-through stop replace the road */
if ((flags & DC_EXEC) && !CmdFailed(ret) && is_drive_through) {
- uint index = 0;
- Owner cur_owner = _current_player;
-
- if (is_towns_road) {
- index = ClosestTownFromTile(tile, (uint)-1)->index;
- _current_player = OWNER_TOWN;
- }
- if (HASBIT(rts, ROADTYPE_ROAD)) {
- DoCommand(tile, ROADTYPE_ROAD << 4 | road_bits, index, DC_EXEC, CMD_BUILD_ROAD);
- }
- if (HASBIT(rts, ROADTYPE_TRAM)) {
- DoCommand(tile, ROADTYPE_TRAM << 4 | road_bits, index, DC_EXEC, CMD_BUILD_ROAD);
- }
- _current_player = cur_owner;
+ /* Rebuild the drive throuhg road stop. As a road stop can only be
+ * removed by the owner of the roadstop, _current_player is the
+ * owner of the road stop. */
+ MakeRoadNormal(tile, road_bits, rts, is_towns_road ? ClosestTownFromTile(tile, (uint)-1)->index : 0,
+ is_towns_road ? OWNER_TOWN : _current_player, _current_player, _current_player);
}
return ret;
@@ -1986,7 +1979,15 @@
static void DrawTile_Station(TileInfo *ti)
{
const DrawTileSprites *t = NULL;
- RailType railtype = GetRailType(ti->tile);
+ RailType railtype;
+ RoadTypes roadtypes;
+ if (IsRailwayStation(ti->tile)) {
+ railtype = GetRailType(ti->tile);
+ roadtypes = ROADTYPES_NONE;
+ } else {
+ roadtypes = GetRoadTypes(ti->tile);
+ railtype = RAILTYPE_BEGIN;
+ }
const RailtypeInfo *rti = GetRailTypeInfo(railtype);
uint32 relocation = 0;
const Station *st = NULL;
@@ -2045,6 +2046,12 @@
if (GetRailType(ti->tile) == RAILTYPE_ELECTRIC && IsStationTileElectrifiable(ti->tile)) DrawCatenary(ti);
+ if (HASBIT(roadtypes, ROADTYPE_TRAM)) {
+ Axis axis = GetRoadStopDir(ti->tile) == DIAGDIR_NE ? AXIS_X : AXIS_Y;
+ DrawGroundSprite((HASBIT(roadtypes, ROADTYPE_ROAD) ? SPR_TRAMWAY_OVERLAY : SPR_TRAMWAY_TRAM) + (axis ^ 1), PAL_NONE);
+ DrawTramCatenary(ti, axis == AXIS_X ? ROAD_X : ROAD_Y);
+ }
+
if (IsBuoyTile(ti->tile) && (ti->z != 0 || !IsTileOwner(ti->tile, OWNER_WATER))) DrawCanalWater(ti->tile);
const DrawTileSeqStruct *dtss;
@@ -2088,6 +2095,10 @@
SpriteID img = t->ground_sprite;
DrawSprite(img + rti->total_offset, HASBIT(img, PALETTE_MODIFIER_COLOR) ? pal : PAL_NONE, x, y);
+ if (roadtype == ROADTYPE_TRAM) {
+ DrawSprite(SPR_TRAMWAY_TRAM + (t->ground_sprite == SPR_ROAD_PAVED_STRAIGHT_X ? 1 : 0), PAL_NONE, x, y);
+ }
+
const DrawTileSeqStruct *dtss;
foreach_draw_tile_seq(dtss, t->seq) {
Point pt = RemapCoords(dtss->delta_x, dtss->delta_y, dtss->delta_z);
@@ -2742,8 +2753,8 @@
switch (GetStationType(tile)) {
case STATION_RAIL: return_cmd_error(STR_300B_MUST_DEMOLISH_RAILROAD);
case STATION_AIRPORT: return_cmd_error(STR_300E_MUST_DEMOLISH_AIRPORT_FIRST);
- case STATION_TRUCK: return_cmd_error(STR_3047_MUST_DEMOLISH_TRUCK_STATION);
- case STATION_BUS: return_cmd_error(STR_3046_MUST_DEMOLISH_BUS_STATION);
+ case STATION_TRUCK: return_cmd_error(HASBIT(GetRoadTypes(tile), ROADTYPE_TRAM) ? STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION : STR_3047_MUST_DEMOLISH_TRUCK_STATION);
+ case STATION_BUS: return_cmd_error(HASBIT(GetRoadTypes(tile), ROADTYPE_TRAM) ? STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION : STR_3046_MUST_DEMOLISH_BUS_STATION);
case STATION_BUOY: return_cmd_error(STR_306A_BUOY_IN_THE_WAY);
case STATION_DOCK: return_cmd_error(STR_304D_MUST_DEMOLISH_DOCK_FIRST);
case STATION_OILRIG:
--- a/src/table/build_industry.h Fri May 25 00:25:08 2007 +0000
+++ b/src/table/build_industry.h Fri Jun 01 20:54:09 2007 +0000
@@ -1135,8 +1135,7 @@
c1, c2, c3, proc, p1, r1, p2, r2, m, a1, im1, a2, im2, a3, im3, pr, clim, bev, in, intx, s1, s2, s3) \
{tbl, lengthof(tbl), d, {c1, c2, c3}, proc, {p1, p2}, {r1, r2}, m, \
{a1, a2, a3}, {{im1, 0}, {im2, 0}, {im3, 0}}, pr, clim, bev, col, in, intx, s1, s2, s3, {ai1, ai2, ai3, ai4}, {ag1, ag2, ag3, ag4}, \
- sndc, snd, 0, {0, 0, NULL, NULL, INVALID_INDUSTRYTYPE, true}}
-static const IndustrySpec _industry_specs[] = {
+ sndc, snd, 0, 0, true, {0, 0, NULL, NULL, INVALID_INDUSTRYTYPE}}
/* Format:
tile table count and sounds table
cost multiplier appear chances(4ingame, 4random) map colour
@@ -1147,6 +1146,7 @@
industry behaviours
industry name building text
messages : Closure production up production down */
+static const IndustrySpec _origin_industry_specs[NEW_INDUSTRYOFFSET] = {
MI(_tile_table_coal_mine, 0, NULL,
210, 2, 3, 0, 0, 8, 8, 0, 0, 215,
IT_POWER_STATION, IT_INVALID, IT_INVALID, CHECK_NOTHING,
@@ -1519,262 +1519,265 @@
#undef MI
/** Writes the properties of an industry tile into the IndustryTileSpec struct.
- * @param c1 first type of cargo accepted for this tile
- * @param c2 second cargo
- * @param c3 and third cargo. Those three are in an array
- * @param s1 slope refused upon choosing a place to build
- * @param a1 animation frame on production
- * @param a2 next frame of animation
- * @param a3 chooses between animation or construction state
+ * @param ca1 acceptance of first cargo
+ * @param c1 first type of cargo accepted for this tile
+ * @param ca2 acceptance of second cargo
+ * @param c2 second cargo
+ * @param ca3 acceptance of third cargo
+ * @param c3 and third cargo. Those three are in an array
+ * @param s1 slope refused upon choosing a place to build
+ * @param a1 animation frame on production
+ * @param a2 next frame of animation
+ * @param a3 chooses between animation or construction state
*/
-#define MT(c1, c2, c3, sl, a1, a2, a3) {{c1, c2, c3}, sl, a1, a2, a3, 0, {0, 0, NULL, NULL, 0, true}}
-static const IndustryTileSpec _industry_tile_specs[] = {
+#define MT(ca1, c1, ca2, c2, ca3, c3, sl, a1, a2, a3) {{c1, c2, c3}, {ca1, ca2, ca3}, sl, a1, a2, a3, 0, true, {0, 0, NULL, NULL, 0}}
+static const IndustryTileSpec _origin_industry_tile_specs[NEW_INDUSTRYTILEOFFSET] = {
/* Coal Mine */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, true),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Power Station */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_COAL, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 8, CT_COAL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Sawmill */
- MT(CT_PASSENGERS, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_WOOD, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Forest Artic, temperate */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, 17, INDUTILE_NOANIM, false), ///< Chopping forest
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, 16, false), ///< Growing forest
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, 17, INDUSTRYTILE_NOANIM, false), ///< Chopping forest
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, 16, false), ///< Growing forest
/* Oil refinery */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_OIL, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_OIL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* oil Rig */
- MT(CT_INVALID, CT_INVALID, CT_PASSENGERS, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_MAIL, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_PASSENGERS, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_MAIL, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Oil Wells artic, temperate */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, true ),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, true ),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, true ),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
/* Farm tropic, arctic and temperate */
- MT(CT_PASSENGERS, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Factory temperate */
- MT(CT_GRAIN, CT_STEEL, CT_LIVESTOCK, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_GRAIN, CT_STEEL, CT_LIVESTOCK, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_GRAIN, CT_STEEL, CT_LIVESTOCK, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_GRAIN, CT_STEEL, CT_LIVESTOCK, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(8, CT_GRAIN, 8, CT_STEEL, 8, CT_LIVESTOCK, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_GRAIN, 8, CT_STEEL, 8, CT_LIVESTOCK, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_GRAIN, 8, CT_STEEL, 8, CT_LIVESTOCK, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_GRAIN, 8, CT_STEEL, 8, CT_LIVESTOCK, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Printing works */
- MT(CT_INVALID, CT_INVALID, CT_PAPER, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_PAPER, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_PAPER, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_PAPER, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_PAPER, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_PAPER, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_PAPER, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_PAPER, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Copper ore mine */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, true ),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Steel mill */
- MT(CT_PASSENGERS, CT_INVALID, CT_IRON_ORE, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_IRON_ORE, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_IRON_ORE, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_IRON_ORE, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_IRON_ORE, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_IRON_ORE, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 8, CT_IRON_ORE, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 8, CT_IRON_ORE, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 8, CT_IRON_ORE, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 8, CT_IRON_ORE, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 8, CT_IRON_ORE, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 8, CT_IRON_ORE, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Bank temperate*/
- MT(CT_PASSENGERS, CT_INVALID, CT_VALUABLES, SLOPE_E, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_PASSENGERS, CT_INVALID, CT_VALUABLES, SLOPE_S, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 8, CT_VALUABLES, SLOPE_E, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(1, CT_PASSENGERS, 0, CT_INVALID, 8, CT_VALUABLES, SLOPE_S, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Food processing plant, tropic and arctic. CT_MAIZE or CT_WHEAT, CT_LIVESTOCK or CT_FRUIT*/
- MT(CT_MAIZE, CT_INVALID, CT_LIVESTOCK, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_MAIZE, CT_INVALID, CT_LIVESTOCK, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_MAIZE, CT_INVALID, CT_LIVESTOCK, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_MAIZE, CT_INVALID, CT_LIVESTOCK, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(8, CT_MAIZE, 0, CT_INVALID, 8, CT_LIVESTOCK, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_MAIZE, 0, CT_INVALID, 8, CT_LIVESTOCK, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_MAIZE, 0, CT_INVALID, 8, CT_LIVESTOCK, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_MAIZE, 0, CT_INVALID, 8, CT_LIVESTOCK, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Paper mill */
- MT(CT_INVALID, CT_INVALID, CT_WOOD, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_WOOD, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_WOOD, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_WOOD, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_WOOD, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_WOOD, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_WOOD, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_WOOD, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_WOOD, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Gold mine */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, true ),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, true ),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Bank Sub Arctic */
- MT(CT_INVALID, CT_INVALID, CT_GOLD, SLOPE_E, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_GOLD, SLOPE_S, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_GOLD, SLOPE_E, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_GOLD, SLOPE_S, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Diamond mine */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Iron ore Mine */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Fruit plantation */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Rubber plantation */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Water supply */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Water tower */
- MT(CT_INVALID, CT_INVALID, CT_WATER, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_WATER, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Factory (sub-tropical) */
- MT(CT_COPPER_ORE, CT_WOOD, CT_RUBBER, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_COPPER_ORE, CT_WOOD, CT_RUBBER, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_COPPER_ORE, CT_WOOD, CT_RUBBER, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_COPPER_ORE, CT_WOOD, CT_RUBBER, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(8, CT_COPPER_ORE, 8, CT_WOOD, 8, CT_RUBBER, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_COPPER_ORE, 8, CT_WOOD, 8, CT_RUBBER, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_COPPER_ORE, 8, CT_WOOD, 8, CT_RUBBER, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_COPPER_ORE, 8, CT_WOOD, 8, CT_RUBBER, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Lumber mill */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Candyfloss forest */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, 130, INDUTILE_NOANIM, false), ///< Chopping candyfloss
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, 129, false), ///< Growing candyfloss
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, 130, INDUSTRYTILE_NOANIM, false), ///< Chopping candyfloss
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, 129, false), ///< Growing candyfloss
/* Sweet factory */
- MT(CT_COTTON_CANDY, CT_TOFFEE, CT_SUGAR, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_COTTON_CANDY, CT_TOFFEE, CT_SUGAR, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_COTTON_CANDY, CT_TOFFEE, CT_SUGAR, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_COTTON_CANDY, CT_TOFFEE, CT_SUGAR, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_COTTON_CANDY, 8, CT_TOFFEE, 8, CT_SUGAR, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Batter farm */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, 136, INDUTILE_NOANIM, false), ///< Reaping batteries
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, 135, false), ///< Growing batteries
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, 136, INDUSTRYTILE_NOANIM, false), ///< Reaping batteries
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, 135, false), ///< Growing batteries
/* Cola wells */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Toy shop */
- MT(CT_INVALID, CT_INVALID, CT_TOYS, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_TOYS, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_TOYS, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_TOYS, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_TOYS, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_TOYS, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_TOYS, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 8, CT_TOYS, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Toy factory */
- MT(CT_BATTERIES, CT_INVALID, CT_PLASTIC, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_BATTERIES, CT_INVALID, CT_PLASTIC, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_BATTERIES, CT_INVALID, CT_PLASTIC, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_BATTERIES, CT_INVALID, CT_PLASTIC, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_BATTERIES, CT_INVALID, CT_PLASTIC, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_BATTERIES, CT_INVALID, CT_PLASTIC, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(8, CT_BATTERIES, 0, CT_INVALID, 8, CT_PLASTIC, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_BATTERIES, 0, CT_INVALID, 8, CT_PLASTIC, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_BATTERIES, 0, CT_INVALID, 8, CT_PLASTIC, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_BATTERIES, 0, CT_INVALID, 8, CT_PLASTIC, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_BATTERIES, 0, CT_INVALID, 8, CT_PLASTIC, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_BATTERIES, 0, CT_INVALID, 8, CT_PLASTIC, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Plastic Fountain */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Fizzy drink factory */
- MT(CT_BUBBLES, CT_INVALID, CT_COLA, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_BUBBLES, CT_INVALID, CT_COLA, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_BUBBLES, CT_INVALID, CT_COLA, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_BUBBLES, CT_INVALID, CT_COLA, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(8, CT_BUBBLES, 0, CT_INVALID, 8, CT_COLA, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_BUBBLES, 0, CT_INVALID, 8, CT_COLA, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_BUBBLES, 0, CT_INVALID, 8, CT_COLA, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(8, CT_BUBBLES, 0, CT_INVALID, 8, CT_COLA, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Bubble generator */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Toffee quarry */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
/* Sugar mine */
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
- MT(CT_INVALID, CT_INVALID, CT_INVALID, SLOPE_STEEP, INDUTILE_NOANIM, INDUTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
+ MT(0, CT_INVALID, 0, CT_INVALID, 0, CT_INVALID, SLOPE_STEEP, INDUSTRYTILE_NOANIM, INDUSTRYTILE_NOANIM, false),
};
#undef MT
--- a/src/table/files.h Fri May 25 00:25:08 2007 +0000
+++ b/src/table/files.h Fri Jun 01 20:54:09 2007 +0000
@@ -63,4 +63,6 @@
{ "trkfoundw.grf", { 0x12, 0x33, 0x3f, 0xa3, 0xd1, 0x86, 0x8b, 0x04, 0x53, 0x18, 0x9c, 0xee, 0xf9, 0x2d, 0xf5, 0x95 } },
{ "roadstops.grf", { 0x8c, 0xd9, 0x45, 0x21, 0x28, 0x82, 0x96, 0x45, 0x33, 0x22, 0x7a, 0xb9, 0x0d, 0xf3, 0x67, 0x4a } },
{ "group.grf", { 0xe8, 0x52, 0x5f, 0x1c, 0x3e, 0xf9, 0x91, 0x9d, 0x0f, 0x70, 0x8c, 0x8a, 0x21, 0xa4, 0xc7, 0x02 } },
+ { "tramtrkw.grf", { 0x83, 0x0a, 0xf4, 0x9f, 0x29, 0x10, 0x48, 0xfd, 0x76, 0xe9, 0xda, 0xac, 0x5d, 0xa2, 0x30, 0x45 } },
+ { "oneway.grf", { 0xbb, 0xc6, 0xa3, 0xb2, 0xb3, 0xa0, 0xc9, 0x3c, 0xc9, 0xee, 0x24, 0x7c, 0xb6, 0x51, 0x74, 0x63 } },
};
--- a/src/table/industry_land.h Fri May 25 00:25:08 2007 +0000
+++ b/src/table/industry_land.h Fri Jun 01 20:54:09 2007 +0000
@@ -42,7 +42,7 @@
#define M(s1, p1, s2, p2, sx, sy, w, h, dz, p) { { s1, p1 }, { s2, p2 }, sx, sy, w - 1, h - 1, dz, p }
/** Structure for industry tiles drawing */
-static const DrawBuildingsTileStruct _industry_draw_tile_data[NUM_INDUSTRY_GFXES * 4] = {
+static const DrawBuildingsTileStruct _industry_draw_tile_data[NEW_INDUSTRYTILEOFFSET * 4] = {
M( 0xf54, PAL_NONE, 0x7db, PAL_NONE, 7, 0, 9, 9, 10, 0),
M( 0xf54, PAL_NONE, 0x7dc, PAL_NONE, 7, 0, 9, 9, 30, 0),
M( 0xf54, PAL_NONE, 0x7dd, PAL_NONE, 7, 0, 9, 9, 30, 0),
--- a/src/table/road_land.h Fri May 25 00:25:08 2007 +0000
+++ b/src/table/road_land.h Fri Jun 01 20:54:09 2007 +0000
@@ -32,6 +32,35 @@
{ 0xA4A, PAL_NONE, _road_depot_NW }
};
+static const DrawTileSeqStruct _tram_depot_NE[] = {
+ TILE_SEQ_LINE(SPR_TRAMWAY_BASE + 0x35 | (1 << PALETTE_MODIFIER_COLOR), PAL_NONE, 0, 15, 16, 1)
+ TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _tram_depot_SE[] = {
+ TILE_SEQ_LINE(SPR_TRAMWAY_BASE + 0x31, PAL_NONE, 0, 0, 1, 16)
+ TILE_SEQ_LINE(SPR_TRAMWAY_BASE + 0x32 | (1 << PALETTE_MODIFIER_COLOR), PAL_NONE, 15, 0, 1, 16)
+ TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _tram_depot_SW[] = {
+ TILE_SEQ_LINE(SPR_TRAMWAY_BASE + 0x33, PAL_NONE, 0, 0, 16, 1)
+ TILE_SEQ_LINE(SPR_TRAMWAY_BASE + 0x34 | (1 << PALETTE_MODIFIER_COLOR), PAL_NONE, 0, 15, 16, 1)
+ TILE_SEQ_END()
+};
+
+static const DrawTileSeqStruct _tram_depot_NW[] = {
+ TILE_SEQ_LINE(SPR_TRAMWAY_BASE + 0x36 | (1 << PALETTE_MODIFIER_COLOR), PAL_NONE, 15, 0, 1, 16)
+ TILE_SEQ_END()
+};
+
+static const DrawTileSprites _tram_depot[] = {
+ { 0xA4A, PAL_NONE, _tram_depot_NE },
+ { 0xA4A, PAL_NONE, _tram_depot_SE },
+ { 0xA4A, PAL_NONE, _tram_depot_SW },
+ { 0xA4A, PAL_NONE, _tram_depot_NW }
+};
+
#undef TILE_SEQ_BEGIN
#undef TILE_SEQ_LINE
#undef TILE_SEQ_END
@@ -42,7 +71,13 @@
0x543, 0x53C, 0x535, 0x538, 0x53D, 0x537, 0x53A, 0x536
};
+static const SpriteID _road_frontwire_sprites_1[16] = {
+ 0, 0x37, 0x37, 0x3F, 0x37, 0x37, 0x43, 0x37, 0x37, 0x3F, 0x37, 0x37, 0x3F, 0x37, 0x37, 0x37
+};
+static const SpriteID _road_backpole_sprites_1[16] = {
+ 0, 0x38, 0x39, 0x40, 0x38, 0x38, 0x43, 0x3E, 0x39, 0x41, 0x39, 0x3C, 0x42, 0x3B, 0x3D, 0x3A
+};
#define MAKELINE(a, b, c) { a, b, c },
#define ENDLINE { 0, 0, 0 }
--- a/src/table/roadveh.h Fri May 25 00:25:08 2007 +0000
+++ b/src/table/roadveh.h Fri Jun 01 20:54:09 2007 +0000
@@ -1011,7 +1011,7 @@
{RDE_NEXT_TILE | DIAGDIR_SE, 0}
};
-static const RoadDriveEntry * const _road_drive_data[] = {
+static const RoadDriveEntry * const _road_road_drive_data[] = {
_roadveh_drive_data_0,
_roadveh_drive_data_1,
_roadveh_drive_data_2,
@@ -1077,3 +1077,386 @@
NULL,
NULL,
};
+
+static const RoadDriveEntry _roadveh_tram_turn_ne_0[] = {
+ {15, 5},
+ {14, 5},
+ {13, 5},
+ {12, 5},
+ {11, 5},
+ {10, 5},
+ { 9, 5},
+ { 8, 5},
+ { 7, 5},
+ { 6, 5},
+ { 5, 5},
+ { 4, 5},
+ { 3, 5},
+ { 2, 5},
+ { 1, 5},
+ { 0, 5},
+ { 0, 6},
+ { 0, 7},
+ { 0, 8},
+ { 0, 9},
+ { 1, 9},
+ { 2, 9},
+ { 3, 9},
+ { 4, 9},
+ { 5, 9},
+ { 6, 9},
+ { 7, 9},
+ { 8, 9},
+ { 9, 9},
+ {10, 9},
+ {11, 9},
+ {12, 9},
+ {13, 9},
+ {14, 9},
+ {15, 9},
+ {RDE_NEXT_TILE | DIAGDIR_SW, 0}
+};
+
+static const RoadDriveEntry _roadveh_tram_turn_ne_1[] = {
+ {15, 9},
+ {14, 9},
+ {13, 9},
+ {12, 9},
+ {11, 9},
+ {10, 9},
+ { 9, 9},
+ { 8, 9},
+ { 7, 9},
+ { 6, 9},
+ { 5, 9},
+ { 4, 9},
+ { 3, 9},
+ { 2, 9},
+ { 1, 9},
+ { 0, 9},
+ { 0, 8},
+ { 0, 7},
+ { 0, 6},
+ { 0, 5},
+ { 1, 5},
+ { 2, 5},
+ { 3, 5},
+ { 4, 5},
+ { 5, 5},
+ { 6, 5},
+ { 7, 5},
+ { 8, 5},
+ { 9, 5},
+ {10, 5},
+ {11, 5},
+ {12, 5},
+ {13, 5},
+ {14, 5},
+ {15, 5},
+ {RDE_NEXT_TILE | DIAGDIR_SW, 0}
+};
+
+static const RoadDriveEntry _roadveh_tram_turn_se_0[] = {
+ {5, 0},
+ {5, 1},
+ {5, 2},
+ {5, 3},
+ {5, 4},
+ {5, 5},
+ {5, 6},
+ {5, 7},
+ {5, 8},
+ {5, 9},
+ {5, 10},
+ {5, 11},
+ {5, 12},
+ {5, 13},
+ {5, 14},
+ {5, 15},
+ {6, 15},
+ {7, 15},
+ {8, 15},
+ {9, 15},
+ {9, 14},
+ {9, 13},
+ {9, 12},
+ {9, 11},
+ {9, 10},
+ {9, 9},
+ {9, 8},
+ {9, 7},
+ {9, 6},
+ {9, 5},
+ {9, 4},
+ {9, 3},
+ {9, 2},
+ {9, 1},
+ {9, 0},
+ {RDE_NEXT_TILE | DIAGDIR_NW, 0}
+};
+
+static const RoadDriveEntry _roadveh_tram_turn_se_1[] = {
+ {9, 0},
+ {9, 1},
+ {9, 2},
+ {9, 3},
+ {9, 4},
+ {9, 5},
+ {9, 6},
+ {9, 7},
+ {9, 8},
+ {9, 9},
+ {9, 10},
+ {9, 11},
+ {9, 12},
+ {9, 13},
+ {9, 14},
+ {9, 15},
+ {8, 15},
+ {7, 15},
+ {6, 15},
+ {5, 15},
+ {5, 14},
+ {5, 13},
+ {5, 12},
+ {5, 11},
+ {5, 10},
+ {5, 9},
+ {5, 8},
+ {5, 7},
+ {5, 6},
+ {5, 5},
+ {5, 4},
+ {5, 3},
+ {5, 2},
+ {5, 1},
+ {5, 0},
+ {RDE_NEXT_TILE | DIAGDIR_NW, 0}
+};
+
+static const RoadDriveEntry _roadveh_tram_turn_sw_0[] = {
+ { 0, 9},
+ { 1, 9},
+ { 2, 9},
+ { 3, 9},
+ { 4, 9},
+ { 5, 9},
+ { 6, 9},
+ { 7, 9},
+ { 8, 9},
+ { 9, 9},
+ {10, 9},
+ {11, 9},
+ {12, 9},
+ {13, 9},
+ {14, 9},
+ {15, 9},
+ {15, 8},
+ {15, 7},
+ {15, 6},
+ {15, 5},
+ {14, 5},
+ {13, 5},
+ {12, 5},
+ {11, 5},
+ {10, 5},
+ { 9, 5},
+ { 8, 5},
+ { 7, 5},
+ { 6, 5},
+ { 5, 5},
+ { 4, 5},
+ { 3, 5},
+ { 2, 5},
+ { 1, 5},
+ { 0, 5},
+ {RDE_NEXT_TILE | DIAGDIR_NE, 0}
+};
+static const RoadDriveEntry _roadveh_tram_turn_sw_1[] = {
+ { 0, 5},
+ { 1, 5},
+ { 2, 5},
+ { 3, 5},
+ { 4, 5},
+ { 5, 5},
+ { 6, 5},
+ { 7, 5},
+ { 8, 5},
+ { 9, 5},
+ {10, 5},
+ {11, 5},
+ {12, 5},
+ {13, 5},
+ {14, 5},
+ {15, 5},
+ {15, 6},
+ {15, 7},
+ {15, 8},
+ {15, 9},
+ {14, 9},
+ {13, 9},
+ {12, 9},
+ {11, 9},
+ {10, 9},
+ { 9, 9},
+ { 8, 9},
+ { 7, 9},
+ { 6, 9},
+ { 5, 9},
+ { 4, 9},
+ { 3, 9},
+ { 2, 9},
+ { 1, 9},
+ { 0, 9},
+ {RDE_NEXT_TILE | DIAGDIR_NE, 0}
+};
+
+static const RoadDriveEntry _roadveh_tram_turn_nw_0[] = {
+ {9, 15},
+ {9, 14},
+ {9, 13},
+ {9, 12},
+ {9, 11},
+ {9, 10},
+ {9, 9},
+ {9, 8},
+ {9, 7},
+ {9, 6},
+ {9, 5},
+ {9, 4},
+ {9, 3},
+ {9, 2},
+ {9, 1},
+ {9, 0},
+ {8, 0},
+ {7, 0},
+ {6, 0},
+ {5, 0},
+ {5, 1},
+ {5, 2},
+ {5, 3},
+ {5, 4},
+ {5, 5},
+ {5, 6},
+ {5, 7},
+ {5, 8},
+ {5, 9},
+ {5, 10},
+ {5, 11},
+ {5, 12},
+ {5, 13},
+ {5, 14},
+ {5, 15},
+ {RDE_NEXT_TILE | DIAGDIR_SE, 0}
+};
+static const RoadDriveEntry _roadveh_tram_turn_nw_1[] = {
+ {5, 15},
+ {5, 14},
+ {5, 13},
+ {5, 12},
+ {5, 11},
+ {5, 10},
+ {5, 9},
+ {5, 8},
+ {5, 7},
+ {5, 6},
+ {5, 5},
+ {5, 4},
+ {5, 3},
+ {5, 2},
+ {5, 1},
+ {5, 0},
+ {6, 0},
+ {7, 0},
+ {8, 0},
+ {9, 0},
+ {9, 1},
+ {9, 2},
+ {9, 3},
+ {9, 4},
+ {9, 5},
+ {9, 6},
+ {9, 7},
+ {9, 8},
+ {9, 9},
+ {9, 10},
+ {9, 11},
+ {9, 12},
+ {9, 13},
+ {9, 14},
+ {9, 15},
+ {RDE_NEXT_TILE | DIAGDIR_SE, 0}
+};
+
+static const RoadDriveEntry * const _road_tram_drive_data[] = {
+ _roadveh_drive_data_0,
+ _roadveh_drive_data_1,
+ _roadveh_drive_data_2,
+ _roadveh_drive_data_3,
+ _roadveh_drive_data_4,
+ _roadveh_drive_data_5,
+ _roadveh_tram_turn_ne_0,
+ _roadveh_tram_turn_se_0,
+ _roadveh_drive_data_8,
+ _roadveh_drive_data_9,
+ _roadveh_drive_data_10,
+ _roadveh_drive_data_11,
+ _roadveh_drive_data_12,
+ _roadveh_drive_data_13,
+ _roadveh_tram_turn_sw_0,
+ _roadveh_tram_turn_nw_0,
+ _roadveh_drive_data_16,
+ _roadveh_drive_data_17,
+ _roadveh_drive_data_18,
+ _roadveh_drive_data_19,
+ _roadveh_drive_data_20,
+ _roadveh_drive_data_21,
+ _roadveh_tram_turn_ne_1,
+ _roadveh_tram_turn_se_1,
+ _roadveh_drive_data_24,
+ _roadveh_drive_data_25,
+ _roadveh_drive_data_26,
+ _roadveh_drive_data_27,
+ _roadveh_drive_data_28,
+ _roadveh_drive_data_29,
+ _roadveh_tram_turn_sw_1,
+ _roadveh_tram_turn_nw_1,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+};
+
+static const RoadDriveEntry * const * const _road_drive_data[2] = {
+ _road_road_drive_data,
+ _road_tram_drive_data,
+};
--- a/src/table/sprites.h Fri May 25 00:25:08 2007 +0000
+++ b/src/table/sprites.h Fri Jun 01 20:54:09 2007 +0000
@@ -25,7 +25,7 @@
* All sprites which are described here are referenced only one to a handful of times
* throughout the code. When introducing new sprite enums, use meaningful names.
* Don't be lazy and typing, and only use abbrevations when their meaning is clear or
- * the length of the enum would get out of hand. In that case EXPLAINÂ THE ABBREVATION
+ * the length of the enum would get out of hand. In that case EXPLAIN THE ABBREVATION
* IN THIS FILE, and perhaps add some comments in the code where it is used.
* Now, don't whine about this being too much typing work if the enums are like
* 30 characters in length. If your editor doen't help you simplifying your work,
@@ -150,6 +150,27 @@
SPR_GROUP_REPLACE_OFF_SHIP = SPR_GROUP_BASE + 18,
SPR_GROUP_REPLACE_OFF_AIRCRAFT = SPR_GROUP_BASE + 19,
+ /* Tramway sprites */
+ SPR_TRAMWAY_BASE = SPR_GROUP_BASE + 20,
+ SPR_TRAMWAY_OVERLAY = SPR_TRAMWAY_BASE + 4,
+ SPR_TRAMWAY_TRAM = SPR_TRAMWAY_BASE + 27,
+ SPR_TRAMWAY_SLOPED_OFFSET = 11,
+ SPR_TRAMWAY_BUS_STOP_DT_Y_W = SPR_TRAMWAY_BASE + 25,
+ SPR_TRAMWAY_BUS_STOP_DT_Y_E = SPR_TRAMWAY_BASE + 23,
+ SPR_TRAMWAY_BUS_STOP_DT_X_W = SPR_TRAMWAY_BASE + 24,
+ SPR_TRAMWAY_BUS_STOP_DT_X_E = SPR_TRAMWAY_BASE + 26,
+ SPR_TRAMWAY_PAVED_STRAIGHT_Y = SPR_TRAMWAY_BASE + 46,
+ SPR_TRAMWAY_PAVED_STRAIGHT_X = SPR_TRAMWAY_BASE + 47,
+ SPR_TRAMWAY_BACK_WIRES_STRAIGHT = SPR_TRAMWAY_BASE + 55,
+ SPR_TRAMWAY_FRONT_WIRES_STRAIGHT = SPR_TRAMWAY_BASE + 56,
+ SPR_TRAMWAY_BACK_WIRES_SLOPED = SPR_TRAMWAY_BASE + 72,
+ SPR_TRAMWAY_FRONT_WIRES_SLOPED = SPR_TRAMWAY_BASE + 68,
+ SPR_TRAMWAY_TUNNEL_WIRES = SPR_TRAMWAY_BASE + 80,
+ SPR_TRAMWAY_BRIDGE = SPR_TRAMWAY_BASE + 107,
+
+ /* One way road sprites */
+ SPR_ONEWAY_BASE = SPR_TRAMWAY_BASE + 113,
+
/* Manager face sprites */
SPR_GRADIENT = 874, // background gradient behind manager face
@@ -1178,6 +1199,8 @@
SPR_IMG_BRIDGE = 2594,
SPR_IMG_ROAD_TUNNEL = 2429,
SPR_IMG_REMOVE = 714,
+ SPR_IMG_TRAMWAY_NW = SPR_TRAMWAY_BASE + 0,
+ SPR_IMG_TRAMWAY_NE = SPR_TRAMWAY_BASE + 1,
/* rail_gui.c */
SPR_IMG_RAIL_NS = 1251,
@@ -1294,6 +1317,8 @@
/* road cursors */
SPR_CURSOR_ROAD_NESW = 1311,
SPR_CURSOR_ROAD_NWSE = 1312,
+ SPR_CURSOR_TRAMWAY_NESW = SPR_TRAMWAY_BASE + 2,
+ SPR_CURSOR_TRAMWAY_NWSE = SPR_TRAMWAY_BASE + 3,
SPR_CURSOR_ROAD_DEPOT = 1297,
SPR_CURSOR_BUS_STATION = 2725,
--- a/src/town_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/town_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -1668,7 +1668,7 @@
for (i = 0; i < HOUSE_MAX; i++) {
hs = GetHouseSpecs(i);
if ((~hs->building_availability & bitmask) == 0 && hs->enabled) {
- if (_have_newhouses) {
+ if (HASBIT(_loaded_newgrf_features, GRFLOADED_NEWHOUSES)) {
probability_max += hs->probability;
cumulative_probs[num] = probability_max;
}
@@ -1677,7 +1677,7 @@
}
for (;;) {
- if (_have_newhouses) {
+ if (HASBIT(_loaded_newgrf_features, GRFLOADED_NEWHOUSES)) {
uint r = RandomRange(probability_max);
for (i = 0; i < num; i++) if (cumulative_probs[i] >= r) break;
@@ -1688,7 +1688,7 @@
hs = GetHouseSpecs(house);
- if (_have_newhouses) {
+ if (HASBIT(_loaded_newgrf_features, GRFLOADED_NEWHOUSES)) {
if (hs->override != 0) hs = GetHouseSpecs(hs->override);
if ((hs->extra_flags & BUILDING_IS_HISTORICAL) && !_generating_world) continue;
--- a/src/train.h Fri May 25 00:25:08 2007 +0000
+++ b/src/train.h Fri Jun 01 20:54:09 2007 +0000
@@ -31,6 +31,7 @@
*/
static inline bool IsFrontEngine(const Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
return HASBIT(v->subtype, Train_Front);
}
@@ -39,6 +40,7 @@
*/
static inline void SetFrontEngine(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
SETBIT(v->subtype, Train_Front);
}
@@ -47,6 +49,7 @@
*/
static inline void ClearFrontEngine(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
CLRBIT(v->subtype, Train_Front);
}
@@ -56,6 +59,7 @@
*/
static inline bool IsArticulatedPart(const Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
return HASBIT(v->subtype, Train_Articulated_Part);
}
@@ -64,6 +68,7 @@
*/
static inline void SetArticulatedPart(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
SETBIT(v->subtype, Train_Articulated_Part);
}
@@ -72,6 +77,7 @@
*/
static inline void ClearArticulatedPart(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
CLRBIT(v->subtype, Train_Articulated_Part);
}
@@ -81,6 +87,7 @@
*/
static inline bool IsTrainWagon(const Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
return HASBIT(v->subtype, Train_Wagon);
}
@@ -89,6 +96,7 @@
*/
static inline void SetTrainWagon(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
SETBIT(v->subtype, Train_Wagon);
}
@@ -97,6 +105,7 @@
*/
static inline void ClearTrainWagon(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
CLRBIT(v->subtype, Train_Wagon);
}
@@ -106,6 +115,7 @@
*/
static inline bool IsTrainEngine(const Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
return HASBIT(v->subtype, Train_Engine);
}
@@ -114,6 +124,7 @@
*/
static inline void SetTrainEngine(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
SETBIT(v->subtype, Train_Engine);
}
@@ -122,6 +133,7 @@
*/
static inline void ClearTrainEngine(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
CLRBIT(v->subtype, Train_Engine);
}
@@ -131,6 +143,7 @@
*/
static inline bool IsFreeWagon(const Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
return HASBIT(v->subtype, Train_Free_Wagon);
}
@@ -139,6 +152,7 @@
*/
static inline void SetFreeWagon(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
SETBIT(v->subtype, Train_Free_Wagon);
}
@@ -147,6 +161,7 @@
*/
static inline void ClearFreeWagon(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
CLRBIT(v->subtype, Train_Free_Wagon);
}
@@ -156,6 +171,7 @@
*/
static inline bool IsMultiheaded(const Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
return HASBIT(v->subtype, Train_Multiheaded);
}
@@ -164,6 +180,7 @@
*/
static inline void SetMultiheaded(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
SETBIT(v->subtype, Train_Multiheaded);
}
@@ -172,6 +189,7 @@
*/
static inline void ClearMultiheaded(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
CLRBIT(v->subtype, Train_Multiheaded);
}
@@ -181,6 +199,7 @@
*/
static inline bool EngineHasArticPart(const Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
return (v->next != NULL && IsArticulatedPart(v->next));
}
@@ -201,6 +220,7 @@
*/
static inline Vehicle *GetLastEnginePart(Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
while (EngineHasArticPart(v)) v = GetNextArticPart(v);
return v;
}
@@ -211,6 +231,7 @@
*/
static inline Vehicle *GetNextVehicle(const Vehicle *v)
{
+ assert(v->type == VEH_TRAIN);
while (EngineHasArticPart(v)) v = GetNextArticPart(v);
/* v now contains the last artic part in the engine */
@@ -249,6 +270,8 @@
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_TRAIN_INC : EXPENSES_TRAIN_RUN; }
WindowClass GetVehicleListWindowClass() const { return WC_TRAINS_LIST; }
void PlayLeaveStationSound() const;
+ bool IsPrimaryVehicle() const { return IsFrontEngine(this); }
+ bool HasFront() const { return true; }
};
#endif /* TRAIN_H */
--- a/src/train_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/train_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -15,6 +15,7 @@
#include "tile.h"
#include "tunnel_map.h"
#include "vehicle.h"
+#include "articulated_vehicles.h"
#include "command.h"
#include "pathfind.h"
#include "npf.h"
@@ -501,75 +502,6 @@
DrawSprite(image, pal, x, y);
}
-uint CountArticulatedParts(EngineID engine_type)
-{
- if (!HASBIT(EngInfo(engine_type)->callbackmask, CBM_ARTIC_ENGINE)) return 0;
-
- uint i;
- for (i = 1; i < 10; i++) {
- uint16 callback = GetVehicleCallback(CBID_TRAIN_ARTIC_ENGINE, i, 0, engine_type, NULL);
- if (callback == CALLBACK_FAILED || callback == 0xFF) break;
- }
-
- return i - 1;
-}
-
-static void AddArticulatedParts(Vehicle **vl)
-{
- const Vehicle *v = vl[0];
- Vehicle *u = vl[0];
-
- if (!HASBIT(EngInfo(v->engine_type)->callbackmask, CBM_ARTIC_ENGINE)) return;
-
- for (uint i = 1; i < 10; i++) {
- uint16 callback = GetVehicleCallback(CBID_TRAIN_ARTIC_ENGINE, i, 0, v->engine_type, v);
- if (callback == CALLBACK_FAILED || callback == 0xFF) return;
-
- /* Attempt to use pre-allocated vehicles until they run out. This can happen
- * if the callback returns different values depending on the cargo type. */
- u->next = vl[i];
- if (u->next == NULL) u->next = AllocateVehicle();
- if (u->next == NULL) return;
-
- u = u->next;
-
- EngineID engine_type = GB(callback, 0, 7);
- bool flip_image = HASBIT(callback, 7);
- const RailVehicleInfo *rvi_artic = RailVehInfo(engine_type);
-
- /* get common values from first engine */
- u->direction = v->direction;
- u->owner = v->owner;
- u->tile = v->tile;
- u->x_pos = v->x_pos;
- u->y_pos = v->y_pos;
- u->z_pos = v->z_pos;
- u->u.rail.track = v->u.rail.track;
- u->u.rail.railtype = v->u.rail.railtype;
- u->build_year = v->build_year;
- u->vehstatus = v->vehstatus & ~VS_STOPPED;
- u->u.rail.first_engine = v->engine_type;
-
- /* get more settings from rail vehicle info */
- u->spritenum = rvi_artic->image_index;
- if (flip_image) u->spritenum++;
- u->cargo_type = rvi_artic->cargo_type;
- u->cargo_subtype = 0;
- u->cargo_cap = rvi_artic->capacity;
- u->max_speed = 0;
- u->max_age = 0;
- u->engine_type = engine_type;
- u->value = 0;
- u = new (u) Train();
- u->subtype = 0;
- SetArticulatedPart(u);
- u->cur_image = 0xAC2;
- u->random_bits = VehicleRandomBits();
-
- VehiclePositionChanged(u);
- }
-}
-
static int32 CmdBuildRailWagon(EngineID engine, TileIndex tile, uint32 flags)
{
SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES);
@@ -619,8 +551,10 @@
v->u.rail.track = TRACK_BIT_DEPOT;
v->vehstatus = VS_HIDDEN | VS_DEFPAL;
+ v = new (v) Train();
v->subtype = 0;
SetTrainWagon(v);
+
if (u != NULL) {
u->next = v;
} else {
@@ -637,7 +571,6 @@
v->u.rail.railtype = rvi->railtype;
v->build_year = _cur_year;
- v = new (v) Train();
v->cur_image = 0xAC2;
v->random_bits = VehicleRandomBits();
@@ -1017,39 +950,6 @@
dst_head = NULL;
}
- if (dst != NULL && IsMultiheaded(dst) && !IsTrainEngine(dst) && IsTrainWagon(src)) {
- /* We are moving a wagon to the rear part of a multiheaded engine */
- if (dst->next == NULL) {
- /* It's the last one, so we will add the wagon just before the rear engine */
- dst = GetPrevVehicleInChain(dst);
- /* Now if the vehicle we want to link to is the vehicle itself, drop out */
- if (dst == src) return CMD_ERROR;
- /* if dst is NULL, it means that dst got a rear multiheaded engine as first engine. We can't use that */
- if (dst == NULL) return CMD_ERROR;
- } else {
- /* there are more units on this train, so we will add the wagon after the next one*/
- dst = dst->next;
- }
- }
-
- if (IsTrainEngine(src) && dst_head != NULL) {
- /* we need to make sure that we didn't place it between a pair of multiheaded engines */
- Vehicle *engine = NULL;
-
- for (Vehicle *u = dst_head; u != NULL; u = u->next) {
- if (IsTrainEngine(u) && IsMultiheaded(u) && u->u.rail.other_multiheaded_part != NULL) {
- engine = u;
- }
- if (engine != NULL && engine->u.rail.other_multiheaded_part == u) {
- engine = NULL;
- }
- if (u == dst) {
- if (engine != NULL) dst = engine->u.rail.other_multiheaded_part;
- break;
- }
- }
- }
-
if (IsMultiheaded(src) && !IsTrainEngine(src)) return_cmd_error(STR_REAR_ENGINE_FOLLOW_FRONT_ERROR);
/* when moving all wagons, we can't have the same src_head and dst_head */
@@ -1207,26 +1107,6 @@
src->u.rail.other_multiheaded_part->first = NULL;
}
- if (HASBIT(p2, 0) && src_head != NULL && src_head != src) {
- /* if we stole a rear multiheaded engine, we better give it back to the front end */
- Vehicle *engine = NULL, *u;
- for (u = src_head; u != NULL; u = u->next) {
- if (IsMultiheaded(u)) {
- if (IsTrainEngine(u)) {
- engine = u;
- continue;
- }
- /* we got the rear engine to match with the front one */
- engine = NULL;
- }
- }
- if (engine != NULL && engine->u.rail.other_multiheaded_part != NULL) {
- AddWagonToConsist(engine->u.rail.other_multiheaded_part, engine);
- /* previous line set the front engine to the old front. We need to clear that */
- engine->u.rail.other_multiheaded_part->first = NULL;
- }
- }
-
/* If there is an engine behind first_engine we moved away, it should become new first_engine
* To do this, CmdMoveRailVehicle must be called once more
* we can't loop forever here because next time we reach this line we will have a front engine */
@@ -2777,7 +2657,7 @@
v != tcc->v_skip &&
v->type == VEH_TRAIN &&
v->u.rail.track != TRACK_BIT_DEPOT &&
- myabs(v->z_pos - tcc->v->z_pos) <= 6 &&
+ myabs(v->z_pos - tcc->v->z_pos) < 6 &&
myabs(v->x_pos - tcc->v->x_pos) < 6 &&
myabs(v->y_pos - tcc->v->y_pos) < 6) {
return v;
--- a/src/tunnelbridge_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/tunnelbridge_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -303,6 +303,9 @@
cost = (bridge_len + 1) * _price.clear_bridge; // The cost of clearing the current bridge.
replace_bridge = true;
replaced_bridge_type = GetBridgeType(tile_start);
+
+ /* Do not remove road types when upgrading a bridge */
+ roadtypes |= GetRoadTypes(tile_start);
} else {
/* Build a new bridge. */
@@ -858,6 +861,39 @@
}
/**
+ * Draws the trambits over an already drawn (lower end) of a bridge.
+ * @param x the x of the bridge
+ * @param y the y of the bridge
+ * @param z the z of the bridge
+ * @param offset number representing whether to level or sloped and the direction
+ * @param overlay do we want to still see the road?
+ */
+static void DrawBridgeTramBits(int x, int y, byte z, int offset, bool overlay)
+{
+ static const SpriteID tram_offsets[2][6] = { { 107, 108, 109, 110, 111, 112 }, { 4, 5, 15, 16, 17, 18 } };
+ static const SpriteID back_offsets[6] = { 95, 95, 99, 102, 100, 101 };
+ static const SpriteID front_offsets[6] = { 97, 98, 103, 106, 104, 105 };
+
+ static const uint size_x[6] = { 11, 16, 16, 16, 16, 16 };
+ static const uint size_y[6] = { 16, 11, 16, 16, 16, 16 };
+
+ AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + tram_offsets[overlay][offset], PAL_NONE, x, y, size_x[offset], size_y[offset], offset >= 2 ? 1 : 0, z);
+
+ SpriteID front = SPR_TRAMWAY_BASE + front_offsets[offset];
+ SpriteID back = SPR_TRAMWAY_BASE + back_offsets[offset];
+ SpriteID pal = PAL_NONE;
+ if (HASBIT(_transparent_opt, TO_BUILDINGS)) {
+ SETBIT(front, PALETTE_MODIFIER_TRANSPARENT);
+ SETBIT(back, PALETTE_MODIFIER_TRANSPARENT);
+ pal = PALETTE_TO_TRANSPARENT;
+ }
+
+ AddSortableSpriteToDraw(back, pal, x, y, size_x[offset], size_y[offset], 0, z);
+ /* For sloped sprites the bounding box needs to be higher, as the pylons stop on a higher point */
+ AddSortableSpriteToDraw(front, pal, x, y, size_x[offset], size_y[offset], offset >= 2 ? 0x30 : 0x10, z);
+}
+
+/**
* Draws a tunnel of bridge tile.
* For tunnels, this is rather simple, as you only needa draw the entrance.
* Bridges are a bit more complex. base_offset is where the sprite selection comes into play
@@ -886,7 +922,17 @@
image += GetTunnelDirection(ti->tile) * 2;
DrawGroundSprite(image, PAL_NONE);
- if (GetTunnelTransportType(ti->tile) == TRANSPORT_RAIL && GetRailType(ti->tile) == RAILTYPE_ELECTRIC) {
+ if (GetTunnelTransportType(ti->tile) == TRANSPORT_ROAD) {
+ DiagDirection dir = GetTunnelDirection(ti->tile);
+ RoadTypes rts = GetRoadTypes(ti->tile);
+
+ if (HASBIT(rts, ROADTYPE_TRAM)) {
+ static const SpriteID tunnel_sprites[2][4] = { { 28, 78, 79, 27 }, { 5, 76, 77, 4 } };
+
+ DrawGroundSprite(SPR_TRAMWAY_BASE + tunnel_sprites[rts - ROADTYPES_TRAM][dir], PAL_NONE);
+ AddSortableSpriteToDraw(SPR_TRAMWAY_TUNNEL_WIRES + dir, PAL_NONE, ti->x, ti->y, 16, 16, 16, (byte)ti->z);
+ }
+ } else if (GetRailType(ti->tile) == RAILTYPE_ELECTRIC) {
DrawCatenary(ti);
}
@@ -926,10 +972,6 @@
DrawGroundSprite(SPR_FLAT_SNOWY_TILE + _tileh_to_sprite[ti->tileh], PAL_NONE);
}
- if (GetBridgeTransportType(ti->tile) == TRANSPORT_RAIL && GetRailType(ti->tile) == RAILTYPE_ELECTRIC) {
- DrawCatenary(ti);
- }
-
image = psid->sprite;
/* draw ramp */
@@ -944,9 +986,27 @@
* it doesn't disappear behind it
*/
AddSortableSpriteToDraw(
- image, pal, ti->x, ti->y, 16, 16, ti->tileh == SLOPE_FLAT ? 1 : 8, ti->z
+ image, pal, ti->x, ti->y, 16, 16, ti->tileh == SLOPE_FLAT ? 0 : 8, ti->z
);
+ if (GetBridgeTransportType(ti->tile) == TRANSPORT_ROAD) {
+ RoadTypes rts = GetRoadTypes(ti->tile);
+
+ if (HASBIT(rts, ROADTYPE_TRAM)) {
+ uint offset = GetBridgeRampDirection(ti->tile);
+ uint z = ti->z;
+ if (ti->tileh != SLOPE_FLAT) {
+ offset = (offset + 1) & 1;
+ z += TILE_HEIGHT;
+ } else {
+ offset += 2;
+ }
+ DrawBridgeTramBits(ti->x, ti->y, z, offset, HASBIT(rts, ROADTYPE_ROAD));
+ }
+ } else if (GetRailType(ti->tile) == RAILTYPE_ELECTRIC) {
+ DrawCatenary(ti);
+ }
+
DrawBridgeMiddle(ti);
}
}
@@ -1022,7 +1082,8 @@
x = ti->x;
y = ti->y;
- z = GetBridgeHeight(rampsouth) - 3;
+ uint bridge_z = GetBridgeHeight(rampsouth);
+ z = bridge_z - 3;
image = psid->sprite;
if (HASBIT(_transparent_opt, TO_BRIDGES)) {
@@ -1047,6 +1108,16 @@
pal = psid->pal;
}
+ if (GetBridgeTransportType(rampsouth) == TRANSPORT_ROAD) {
+ RoadTypes rts = GetRoadTypes(rampsouth);
+
+ if (HASBIT(rts, ROADTYPE_TRAM)) {
+ DrawBridgeTramBits(x, y, bridge_z, axis ^ 1, HASBIT(rts, ROADTYPE_ROAD));
+ }
+ } else if (GetRailType(rampsouth) == RAILTYPE_ELECTRIC) {
+ DrawCatenary(ti);
+ }
+
/* draw roof, the component of the bridge which is logically between the vehicle and the camera */
if (axis == AXIS_X) {
y += 12;
@@ -1056,8 +1127,6 @@
if (image & SPRITE_MASK) AddSortableSpriteToDraw(image, pal, x, y, 1, 16, 0x28, z);
}
- if (GetRailType(rampsouth) == RAILTYPE_ELECTRIC) DrawCatenary(ti);
-
psid++;
if (ti->z + 5 == z) {
/* draw poles below for small bridges */
@@ -1255,7 +1324,14 @@
if (new_player != PLAYER_SPECTATOR) {
SetTileOwner(tile, new_player);
} else {
- DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
+ if (CmdFailed(DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR))) {
+ /* When clearing the bridge/tunnel failed there are still vehicles on/in
+ * the bridge/tunnel. As all *our* vehicles are already removed, they
+ * must be of another owner. Therefor this must be a road bridge/tunnel.
+ * In that case we can safely reassign the ownership to OWNER_NONE. */
+ assert((IsTunnel(tile) ? GetTunnelTransportType(tile) : GetBridgeTransportType(tile)) == TRANSPORT_ROAD);
+ SetTileOwner(tile, OWNER_NONE);
+ }
}
}
--- a/src/unix.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/unix.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -87,8 +87,11 @@
if (FiosIsRoot(path)) {
snprintf(filename, lengthof(filename), "%s:%s", path, ent->d_name);
} else // XXX - only next line!
+#else
+ assert(path[strlen(path) - 1] == PATHSEPCHAR);
+ if (strlen(path) > 2) assert(path[strlen(path) - 2] != PATHSEPCHAR);
#endif
- snprintf(filename, lengthof(filename), "%s" PATHSEP "%s", path, ent->d_name);
+ snprintf(filename, lengthof(filename), "%s%s", path, ent->d_name);
return stat(filename, sb) == 0;
}
--- a/src/unmovable_cmd.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/unmovable_cmd.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -73,7 +73,7 @@
MarkTileDirtyByTile(tile + TileDiffXY(1, 1));
}
-extern int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invalid_dirs, StationID* station);
+extern int32 CheckFlatLandBelow(TileIndex tile, uint w, uint h, uint flags, uint invalid_dirs, StationID* station, bool check_clear = true);
/** Build or relocate the HQ. This depends if the HQ is already built or not
* @param tile tile where the HQ will be built or relocated to
--- a/src/variables.h Fri May 25 00:25:08 2007 +0000
+++ b/src/variables.h Fri Jun 01 20:54:09 2007 +0000
@@ -127,6 +127,7 @@
bool no_servicing_if_no_breakdowns; // dont send vehicles to depot when breakdowns are disabled
bool link_terraform_toolbar; // display terraform toolbar when displaying rail, road, water and airport toolbars
bool reverse_scroll; // Right-Click-Scrolling scrolls in the opposite direction
+ bool smooth_scroll; ///< Smooth scroll viewports
bool disable_elrails; // when true, the elrails are disabled
bool measure_tooltip; // Show a permanent tooltip when dragging tools
byte liveries; // Options for displaying company liveries, 0=none, 1=self, 2=all
--- a/src/vehicle.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/vehicle.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -241,7 +241,7 @@
switch (v->type) {
case VEH_ROAD:
v->cur_image = GetRoadVehImage(v, v->direction);
- v->u.road.roadtype = ROADTYPE_ROAD;
+ v->u.road.roadtype = HASBIT(EngInfo(v->engine_type)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD;
v->u.road.compatible_roadtypes = RoadTypeToRoadTypes(v->u.road.roadtype);
break;
@@ -590,7 +590,7 @@
if (v->owner == _local_player) InvalidateAutoreplaceWindow(v->engine_type);
if (IsValidGroupID(v->group_id)) GetGroup(v->group_id)->num_engines[v->engine_type]--;
- if (v->type != VEH_TRAIN || IsFrontEngine(v)) DecreaseGroupNumVehicle(v->group_id);
+ if (v->IsPrimaryVehicle()) DecreaseGroupNumVehicle(v->group_id);
}
DeleteVehicleNews(v->index, INVALID_STRING_ID);
@@ -609,7 +609,7 @@
/* Now remove any artic part. This will trigger an other
* destroy vehicle, which on his turn can remove any
* other artic parts. */
- if (EngineHasArticPart(v)) DeleteVehicle(v->next);
+ if (v->type == VEH_TRAIN && EngineHasArticPart(v)) DeleteVehicle(v->next);
}
void DeleteVehicleChain(Vehicle *v)
@@ -1794,7 +1794,7 @@
v = v_front;
do {
- if (IsMultiheaded(v) && !IsTrainEngine(v)) {
+ if (v->type == VEH_TRAIN && IsMultiheaded(v) && !IsTrainEngine(v)) {
/* we build the rear ends of multiheaded trains with the front ones */
continue;
}
@@ -1872,7 +1872,7 @@
}
} while (v->type == VEH_TRAIN && EngineHasArticPart(v) && (v = GetNextArticPart(v)) != NULL);
- if (flags & DC_EXEC) w = GetNextVehicle(w);
+ if ((flags & DC_EXEC) && v->type == VEH_TRAIN) w = GetNextVehicle(w);
} while (v->type == VEH_TRAIN && (v = GetNextVehicle(v)) != NULL);
/* Since we can't estimate the cost of cloning a vehicle accurately we must
@@ -1997,16 +1997,13 @@
*/
uint GenerateVehicleSortList(const Vehicle ***sort_list, uint16 *length_of_array, VehicleType type, PlayerID owner, uint32 index, uint16 window_type)
{
- const byte subtype = (type != VEH_AIRCRAFT) ? (byte)Train_Front : (byte)AIR_AIRCRAFT;
uint n = 0;
const Vehicle *v;
switch (window_type) {
case VLW_STATION_LIST: {
FOR_ALL_VEHICLES(v) {
- if (v->type == type && (
- (type == VEH_TRAIN && IsFrontEngine(v)) ||
- (type != VEH_TRAIN && v->subtype <= subtype))) {
+ if (v->type == type && v->IsPrimaryVehicle()) {
const Order *order;
FOR_VEHICLE_ORDERS(v, order) {
@@ -2039,9 +2036,7 @@
case VLW_STANDARD: {
FOR_ALL_VEHICLES(v) {
- if (v->type == type && v->owner == owner && (
- (type == VEH_TRAIN && IsFrontEngine(v)) ||
- (type != VEH_TRAIN && v->subtype <= subtype))) {
+ if (v->type == type && v->owner == owner && v->IsPrimaryVehicle()) {
/* TODO find a better estimate on the total number of vehicles for current player */
if (n == *length_of_array) ExtendVehicleListSize(sort_list, length_of_array, GetNumVehicles()/4);
(*sort_list)[n++] = v;
@@ -2052,9 +2047,7 @@
case VLW_DEPOT_LIST: {
FOR_ALL_VEHICLES(v) {
- if (v->type == type && (
- (type == VEH_TRAIN && IsFrontEngine(v)) ||
- (type != VEH_TRAIN && v->subtype <= subtype))) {
+ if (v->type == type && v->IsPrimaryVehicle()) {
const Order *order;
FOR_VEHICLE_ORDERS(v, order) {
@@ -2071,10 +2064,8 @@
case VLW_GROUP_LIST:
FOR_ALL_VEHICLES(v) {
- if (v->type == type && (
- (type == VEH_TRAIN && IsFrontEngine(v)) ||
- (type != VEH_TRAIN && v->subtype <= subtype)
- ) && v->owner == owner && v->group_id == index) {
+ if (v->type == type && v->IsPrimaryVehicle() &&
+ v->owner == owner && v->group_id == index) {
if (n == *length_of_array) ExtendVehicleListSize(sort_list, length_of_array, GetNumVehicles() / 4);
(*sort_list)[n++] = v;
@@ -2520,7 +2511,13 @@
case VEH_ROAD: {
const RoadVehicleInfo *rvi = RoadVehInfo(engine_type);
if (cargo_type == CT_INVALID) cargo_type = rvi->cargo_type;
- scheme = IsCargoInClass(cargo_type, CC_PASSENGERS) ? LS_BUS : LS_TRUCK;
+ if (HASBIT(EngInfo(engine_type)->misc_flags, EF_ROAD_TRAM)) {
+ /* Tram */
+ scheme = IsCargoInClass(cargo_type, CC_PASSENGERS) ? LS_PASSENGER_TRAM : LS_FREIGHT_TRAM;
+ } else {
+ /* Bus or truck */
+ scheme = IsCargoInClass(cargo_type, CC_PASSENGERS) ? LS_BUS : LS_TRUCK;
+ }
break;
}
--- a/src/vehicle.h Fri May 25 00:25:08 2007 +0000
+++ b/src/vehicle.h Fri Jun 01 20:54:09 2007 +0000
@@ -399,6 +399,17 @@
* Play the sound associated with leaving the station
*/
virtual void PlayLeaveStationSound() const {}
+
+ /**
+ * Whether this is the primary vehicle in the chain.
+ */
+ virtual bool IsPrimaryVehicle() const { return false; }
+
+ /**
+ * Whether this vehicle understands the concept of a front engine, so
+ * basically, if GetFirstVehicleInChain() can be called for it.
+ */
+ virtual bool HasFront() const { return false; }
};
/**
--- a/src/viewport.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/viewport.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -183,6 +183,9 @@
WP(w, vp_d).scrollpos_x = pt.x;
WP(w, vp_d).scrollpos_y = pt.y;
+ WP(w, vp_d).dest_scrollpos_x = pt.x;
+ WP(w, vp_d).dest_scrollpos_y = pt.y;
+
w->viewport = vp;
vp->virtual_left = 0;//pt.x;
vp->virtual_top = 0;//pt.y;
@@ -1386,6 +1389,25 @@
/* Center of the viewport is hot spot */
x = WP(w,vp_d).scrollpos_x + vp->virtual_width / 2;
y = WP(w,vp_d).scrollpos_y + vp->virtual_height / 2;
+
+ int dest_x = WP(w,vp_d).dest_scrollpos_x + vp->virtual_width / 2;
+ int dest_y = WP(w,vp_d).dest_scrollpos_y + vp->virtual_height / 2;
+
+ int delta_x = dest_x - x;
+ int delta_y = dest_y - y;
+
+ if (delta_x != 0 || delta_y != 0) {
+ if (_patches.smooth_scroll) {
+ int max_scroll = ScaleByMapSize1D(512);
+ /* Not at our desired positon yet... */
+ x += clamp(delta_x / 8, -max_scroll, max_scroll);
+ y += clamp(delta_y / 8, -max_scroll, max_scroll);
+ } else {
+ x = dest_x;
+ y = dest_y;
+ }
+ }
+
/* Convert viewport coordinates to map coordinates
* Calculation is scaled by 4 to avoid rounding errors */
vx = -x + y * 2;
@@ -1841,26 +1863,31 @@
/* scrolls the viewport in a window to a given location */
-bool ScrollWindowTo(int x , int y, Window *w)
+bool ScrollWindowTo(int x , int y, Window *w, bool instant)
{
Point pt;
pt = MapXYZToViewport(w->viewport, x, y, GetSlopeZ(x, y));
WP(w, vp_d).follow_vehicle = INVALID_VEHICLE;
- if (WP(w, vp_d).scrollpos_x == pt.x && WP(w, vp_d).scrollpos_y == pt.y)
+ if (WP(w, vp_d).dest_scrollpos_x == pt.x && WP(w, vp_d).dest_scrollpos_y == pt.y)
return false;
- WP(w, vp_d).scrollpos_x = pt.x;
- WP(w, vp_d).scrollpos_y = pt.y;
+ if (instant) {
+ WP(w, vp_d).scrollpos_x = pt.x;
+ WP(w, vp_d).scrollpos_y = pt.y;
+ }
+
+ WP(w, vp_d).dest_scrollpos_x = pt.x;
+ WP(w, vp_d).dest_scrollpos_y = pt.y;
return true;
}
-bool ScrollMainWindowTo(int x, int y)
+bool ScrollMainWindowTo(int x, int y, bool instant)
{
Window *w;
- bool res = ScrollWindowTo(x, y, FindWindowById(WC_MAIN_WINDOW, 0));
+ bool res = ScrollWindowTo(x, y, FindWindowById(WC_MAIN_WINDOW, 0), instant);
/* If a user scrolls to a tile (via what way what so ever) and already is on
* that tile (e.g.: pressed twice), move the smallmap to that location,
@@ -1877,9 +1904,9 @@
}
-bool ScrollMainWindowToTile(TileIndex tile)
+bool ScrollMainWindowToTile(TileIndex tile, bool instant)
{
- return ScrollMainWindowTo(TileX(tile) * TILE_SIZE + TILE_SIZE / 2, TileY(tile) * TILE_SIZE + TILE_SIZE / 2);
+ return ScrollMainWindowTo(TileX(tile) * TILE_SIZE + TILE_SIZE / 2, TileY(tile) * TILE_SIZE + TILE_SIZE / 2, instant);
}
void SetRedErrorSquare(TileIndex tile)
--- a/src/window.h Fri May 25 00:25:08 2007 +0000
+++ b/src/window.h Fri Jun 01 20:54:09 2007 +0000
@@ -404,6 +404,8 @@
VehicleID follow_vehicle;
int32 scrollpos_x;
int32 scrollpos_y;
+ int32 dest_scrollpos_x;
+ int32 dest_scrollpos_y;
};
assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(vp_d));
@@ -412,6 +414,8 @@
VehicleID follow_vehicle;
int32 scrollpos_x;
int32 scrollpos_y;
+ int32 dest_scrollpos_x;
+ int32 dest_scrollpos_y;
byte data_1;
byte data_2;
byte data_3;
@@ -422,6 +426,8 @@
uint16 follow_vehicle;
int32 scrollpos_x;
int32 scrollpos_y;
+ int32 dest_scrollpos_x;
+ int32 dest_scrollpos_y;
NewsItem *ni;
};
assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(news_d));
--- a/src/yapf/yapf_costrail.hpp Fri May 25 00:25:08 2007 +0000
+++ b/src/yapf/yapf_costrail.hpp Fri Jun 01 20:54:09 2007 +0000
@@ -121,7 +121,7 @@
Yapf().m_stopped_on_first_two_way_signal = true;
return -1;
}
- SignalType sig_type = GetSignalType(tile);
+ SignalType sig_type = GetSignalType(tile, TrackdirToTrack(trackdir));
n.m_last_red_signal_type = sig_type;
n.flags_u.flags_s.m_last_signal_was_red = true;
--- a/src/yapf/yapf_ship.cpp Fri May 25 00:25:08 2007 +0000
+++ b/src/yapf/yapf_ship.cpp Fri Jun 01 20:54:09 2007 +0000
@@ -26,7 +26,7 @@
* and adds it to the open list by calling Yapf().AddNewNode(n) */
inline void PfFollowNode(Node& old_node)
{
- TrackFollower F;
+ TrackFollower F(Yapf().GetVehicle());
if (F.Follow(old_node.m_key.m_tile, old_node.m_key.m_td))
Yapf().AddMultipleNodes(&old_node, F);
}
--- a/src/zoom.hpp Fri May 25 00:25:08 2007 +0000
+++ b/src/zoom.hpp Fri Jun 01 20:54:09 2007 +0000
@@ -37,14 +37,14 @@
{
if (zoom == ZOOM_LVL_NORMAL) return value;
int izoom = (int)zoom - (int)ZOOM_LVL_NORMAL;
- return (zoom > ZOOM_LVL_NORMAL) ? value << izoom : value >> izoom;
+ return (zoom > ZOOM_LVL_NORMAL) ? value << izoom : value >> -izoom;
}
static inline int UnScaleByZoom(int value, ZoomLevel zoom)
{
if (zoom == ZOOM_LVL_NORMAL) return value;
int izoom = (int)zoom - (int)ZOOM_LVL_NORMAL;
- return (zoom > ZOOM_LVL_NORMAL) ? value >> izoom : value << izoom;
+ return (zoom > ZOOM_LVL_NORMAL) ? value >> izoom : value << -izoom;
}
#endif /* ZOOM_HPP */