(svn r10016) [NoAI] -Sync with trunk r9914:r10015. noai
authorrubidium
Fri, 01 Jun 2007 20:54:09 +0000
branchnoai
changeset 9625 3301b1b3889c
parent 9624 b71483f2330f
child 9626 79f2b5a0cdd7
(svn r10016) [NoAI] -Sync with trunk r9914:r10015.
bin/data/oneway.grf
bin/data/tramtrkw.grf
changelog.txt
docs/landscape.html
docs/landscape_grid.html
docs/openttd.6
known-bugs.txt
os/debian/changelog
os/win32/installer/install.nsi
os/win32/installer/notice.ini
projects/openttd.vcproj
projects/openttd_vs80.vcproj
readme.txt
source.list
src/ai/ai_squirrel.cpp
src/aircraft.h
src/articulated_vehicles.cpp
src/articulated_vehicles.h
src/autoreplace_cmd.cpp
src/autoreplace_gui.cpp
src/build_vehicle_gui.cpp
src/clear_cmd.cpp
src/depot_gui.cpp
src/economy.cpp
src/elrail.cpp
src/engine.cpp
src/engine.h
src/fileio.cpp
src/fios.cpp
src/functions.h
src/genworld.cpp
src/gfx.h
src/gfxinit.cpp
src/group_cmd.cpp
src/industry.h
src/industry_cmd.cpp
src/industry_map.h
src/lang/american.txt
src/lang/brazilian_portuguese.txt
src/lang/catalan.txt
src/lang/danish.txt
src/lang/dutch.txt
src/lang/english.txt
src/lang/french.txt
src/lang/hungarian.txt
src/lang/italian.txt
src/lang/japanese.txt
src/lang/korean.txt
src/lang/norwegian_bokmal.txt
src/lang/portuguese.txt
src/lang/romanian.txt
src/lang/swedish.txt
src/lang/traditional_chinese.txt
src/lang/turkish.txt
src/lang/ukrainian.txt
src/livery.h
src/main_gui.cpp
src/misc_gui.cpp
src/newgrf.cpp
src/newgrf.h
src/newgrf_house.cpp
src/npf.cpp
src/openttd.cpp
src/order_gui.cpp
src/player.h
src/player_gui.cpp
src/players.cpp
src/rail.cpp
src/rail_cmd.cpp
src/rail_map.h
src/road.h
src/road_cmd.cpp
src/road_gui.cpp
src/road_map.h
src/roadveh.h
src/roadveh_cmd.cpp
src/roadveh_gui.cpp
src/saveload.cpp
src/settings.cpp
src/settings_gui.cpp
src/ship.h
src/signs.cpp
src/smallmap_gui.cpp
src/station.cpp
src/station_cmd.cpp
src/table/build_industry.h
src/table/files.h
src/table/industry_land.h
src/table/road_land.h
src/table/roadveh.h
src/table/sprites.h
src/town_cmd.cpp
src/train.h
src/train_cmd.cpp
src/tunnelbridge_cmd.cpp
src/unix.cpp
src/unmovable_cmd.cpp
src/variables.h
src/vehicle.cpp
src/vehicle.h
src/viewport.cpp
src/window.h
src/yapf/yapf_costrail.hpp
src/yapf/yapf_ship.cpp
src/zoom.hpp
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 */