(svn r10461) [NoAI] -Sync with trunk r10349:r10460. noai
authorrubidium
Sat, 07 Jul 2007 09:20:52 +0000
branchnoai
changeset 9631 8a2d1c2ceb88
parent 9630 550db5cefcc2
child 9632 1816329e9cdd
(svn r10461) [NoAI] -Sync with trunk r10349:r10460.
Makefile.in
changelog.txt
docs/openttd.6
known-bugs.txt
os/debian/changelog
os/win32/installer/install.nsi
projects/langs.vcproj
projects/langs_vs80.vcproj
projects/openttd.vcproj
projects/openttd_vs80.vcproj
projects/openttd_vs80.vcproj.in
readme.txt
source.list
src/aircraft.h
src/aircraft_cmd.cpp
src/aircraft_gui.cpp
src/airport.h
src/autoreplace_gui.cpp
src/blitter/32bpp_anim.cpp
src/blitter/8bpp_optimized.cpp
src/blitter/factory.hpp
src/cargopacket.cpp
src/cargopacket.h
src/depot_gui.cpp
src/disaster_cmd.cpp
src/dock_gui.cpp
src/driver.cpp
src/driver.h
src/economy.cpp
src/engine.cpp
src/fios.cpp
src/functions.h
src/genworld_gui.cpp
src/gfx.cpp
src/group.h
src/group_cmd.cpp
src/group_gui.cpp
src/hal.h
src/industry.h
src/industry_cmd.cpp
src/industry_gui.cpp
src/lang/american.txt
src/lang/brazilian_portuguese.txt
src/lang/bulgarian.txt
src/lang/catalan.txt
src/lang/croatian.txt
src/lang/czech.txt
src/lang/danish.txt
src/lang/dutch.txt
src/lang/english.txt
src/lang/esperanto.txt
src/lang/estonian.txt
src/lang/finnish.txt
src/lang/french.txt
src/lang/galician.txt
src/lang/german.txt
src/lang/hungarian.txt
src/lang/icelandic.txt
src/lang/italian.txt
src/lang/japanese.txt
src/lang/korean.txt
src/lang/lithuanian.txt
src/lang/norwegian_bokmal.txt
src/lang/norwegian_nynorsk.txt
src/lang/piglatin.txt
src/lang/polish.txt
src/lang/portuguese.txt
src/lang/romanian.txt
src/lang/russian.txt
src/lang/simplified_chinese.txt
src/lang/slovak.txt
src/lang/slovenian.txt
src/lang/spanish.txt
src/lang/swedish.txt
src/lang/traditional_chinese.txt
src/lang/turkish.txt
src/lang/ukrainian.txt
src/lang/unfinished/afrikaans.txt
src/lang/unfinished/croatian.txt
src/lang/unfinished/frisian.txt
src/lang/unfinished/greek.txt
src/lang/unfinished/latvian.txt
src/main_gui.cpp
src/misc/array.hpp
src/misc/blob.hpp
src/misc/dbg_helpers.cpp
src/misc/dbg_helpers.h
src/misc/str.hpp
src/misc/strapi.hpp
src/misc_cmd.cpp
src/misc_gui.cpp
src/music/bemidi.cpp
src/music/bemidi.h
src/music/dmusic.cpp
src/music/dmusic.h
src/music/extmidi.cpp
src/music/extmidi.h
src/music/libtimidity.cpp
src/music/libtimidity.h
src/music/music_driver.hpp
src/music/null_m.cpp
src/music/null_m.h
src/music/os2_m.cpp
src/music/os2_m.h
src/music/qtmidi.cpp
src/music/qtmidi.h
src/music/win32_m.cpp
src/music/win32_m.h
src/music_gui.cpp
src/network/network_data.h
src/network/network_server.cpp
src/network/network_udp.cpp
src/newgrf.cpp
src/newgrf_callbacks.h
src/newgrf_engine.cpp
src/newgrf_industries.cpp
src/newgrf_industries.h
src/newgrf_spritegroup.cpp
src/newgrf_spritegroup.h
src/newgrf_station.cpp
src/newgrf_town.cpp
src/npf.cpp
src/oldloader.cpp
src/openttd.cpp
src/openttd.h
src/player_gui.cpp
src/players.cpp
src/rail.h
src/rail_cmd.cpp
src/rail_gui.cpp
src/road_gui.cpp
src/roadveh.h
src/roadveh_cmd.cpp
src/roadveh_gui.cpp
src/saveload.cpp
src/screenshot.cpp
src/settings.cpp
src/settings_gui.cpp
src/ship.h
src/ship_cmd.cpp
src/ship_gui.cpp
src/signs.h
src/signs_gui.cpp
src/sound/cocoa_s.cpp
src/sound/cocoa_s.h
src/sound/null_s.cpp
src/sound/null_s.h
src/sound/sdl_s.cpp
src/sound/sdl_s.h
src/sound/sound_driver.hpp
src/sound/win32_s.cpp
src/sound/win32_s.h
src/spritecache.cpp
src/spriteloader/png.cpp
src/station_cmd.cpp
src/stdafx.h
src/strgen/strgen.cpp
src/table/build_industry.h
src/texteff.cpp
src/town_cmd.cpp
src/train.h
src/train_cmd.cpp
src/train_gui.cpp
src/tunnelbridge_cmd.cpp
src/variables.h
src/vehicle.cpp
src/vehicle.h
src/video/cocoa_v.h
src/video/cocoa_v.mm
src/video/dedicated_v.cpp
src/video/dedicated_v.h
src/video/null_v.cpp
src/video/null_v.h
src/video/sdl_v.cpp
src/video/sdl_v.h
src/video/video_driver.hpp
src/video/win32_v.cpp
src/video/win32_v.h
src/waypoint.cpp
src/win32.cpp
src/yapf/nodelist.hpp
src/yapf/yapf.hpp
src/yapf/yapf_base.hpp
src/yapf/yapf_costrail.hpp
src/yapf/yapf_node.hpp
src/yapf/yapf_node_rail.hpp
src/yapf/yapf_rail.cpp
--- a/Makefile.in	Wed Jun 27 01:01:16 2007 +0000
+++ b/Makefile.in	Sat Jul 07 09:20:52 2007 +0000
@@ -53,6 +53,28 @@
 	$(Q)$(LIPO) -create -output $(BIN_DIR)/$(TTD) $(TTDS)
 endif
 
+help:
+	@echo "Available make commands:"
+	@echo ""
+	@echo "Compilation:"
+	@echo "  all           compile the executable and the lang files"
+	@echo "  lang          compile the lang files only"
+	@echo "Clean up:"
+	@echo "  clean         remove the files generated during compilation"
+	@echo "  mrproper      remove the files generated during configuration and compilation"
+	@echo "Run after compilation:"
+	@echo "  run           execute openttd after the compilation"
+	@echo "  run-gdb       execute openttd in debug mode after the compilation"
+	@echo "  run-prof      execute openttd in profiling mode after the compilation"
+	@echo "Installation:"
+	@echo "  install       install the compiled files and the data-files after the compilation"
+	@echo "  bundle        create the base for an installation bundle"
+	@echo "  bundle_zip    create the zip installation bundle"
+	@echo "  bundle_gzip   create the gzip installation bundle"
+	@echo "  bundle_bzip2  create the bzip2 installation bundle"
+	@echo "  bundle_lha    create the lha installation bundle"
+	@echo "  bundle_dmg    create the dmg installation bundle"
+
 config.cache: $(CONFIG_CACHE_SOURCE_LIST) $(CONFIGURE_FILES)
 ifeq ($(shell if test -f config.cache; then echo 1; fi), 1)
 	@echo "----------------"
--- a/changelog.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/changelog.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1,3 +1,49 @@
+0.5.3-RC1 (2007-06-28)
+------------------------------------------------------------------------
+- Feature: Make the client list window (for network games) stickyable (r10293)
+- Feature: console command to get the current game date (r10137)
+- Fix: Waypoints could be renamed when you are not the owner (r10368)
+- Fix: Smooth economy did not close primary industries and it allowed increasing of production of industries that should not have rising productions (r10348, r10347, r10290)
+- Fix: Acceleration for trains on slopes is not calculated properly [FS#786] (r10344, r10317)
+- Fix: The 'old' pathfinders (OPF and NPF) for road vehicles could not find a path when in a tunnel [FS#290] (r10345)
+- Fix: Only add the autoreplace menu when autoreplace actually knows about the group [FS#880] (r10337)
+- Fix: Signal state sometimes not properly set when the signal "pathfinder" reached the end of a line [FS#910] (r10336)
+- Fix: News messages were shown over the endgame/highscore windows [FS#943] (r10333)
+- Fix: Rail could be destroyed when building tunnels (r10306)
+- Fix: Flush the output of the dedicated server console (r10295)
+- Fix: The "pause" key did not work in the scenario editor (r10294)
+- Fix: Age non-front engines too (so when you move engines around in the depot they do not get age 0 when they are much older [FS#202] (r10288)
+- Fix: Do not make everyone spectator if 1 joining client failed to create new company (r10284)
+- Fix: Remove invalid characters (for the file system) from savegame names [FS#916, FS#850] (r10272, r10116)
+- Fix: Some old savegames could have the wrong bits unset (r10268, r10147)
+- Fix: Do not look in every direction for tunnels when building one, one direction is enough (r10258)
+- Fix: [Windows] Do not mess desktop when using ALT-TAB [FS#876] (r10251, r10186)
+- Fix: Take the age of the front vehicle for station rating (r10246)
+- Fix: Terraforming wipes out canals. Now you always have to remove the canal before terraforming, instead of "just" removing the canal [FS#594] (r10240)
+- Fix: Only 2 trains could crash at one time as collision checking stopped on the first hit. This could technically cause desyncs in network games as the collision hash order is not guaranteed [FS#892] (r10222)
+- Fix: Land under foundations was terraform when it shouldn't be terraformed [FS#882, FS#890] (r10219)
+- Fix: Do not make a 270 degree turn on the international airport when a 90 degree turn is enough (r10187)
+- Fix: Crash when trying to get the aircraft movement state of an aircraft going to a just deleted airport [FS#874] (r10165)
+- Fix: Airports did not flood when there are aircraft on the airport [FS#601] (r10155)
+- Fix: Some vehicles were not drawn when having a high resolution and a high zoom-out level [FS#870] (r10154)
+- Fix: Vehicles disappear when crossing certain tiles [FS#869] (r10153)
+- Fix: Train disconnects in some old TTD savegames [FS#862] (10151)
+- Fix: OpenTTD assumes that the resolution is at least 1 by 1, so force the resolution to be always at least 1 by 1 (r10139)
+- Fix: When you got a sufficiently small resolution, there is a possibility for a division by zero when a sound is played (r10138)
+- Fix: When removing a dock, a ship will always try to reach the old location of the dock even when it cannot anymore because it the old location of the dock is now land instead of water [FS#810] (r10131)
+- Fix: SetCurrentGrfLangID returned the wrong language ids for most languages (r10130)
+- Fix: Some NewGRFs use the same (unused in the "current" climate) sprite IDs. Normally this gives some artefacts, but when one NewGRF expects it to be a sprite and another NewGRF overwrites it with a non-sprite nasty things happen (drawing a non-sprite crashes OTTD) [FS#838] (r10109)
+- Fix: Multiple subsequent "give money" actions could result in duplicate messages that money has been transfered when it only happened once, or tell you paid money when you did not [FS#834, FS#839] (r10087, r10085)
+- Fix: "Deactivate Electrified Railways" did not work [FS#836] (10083)
+- Fix: Memory leaks in the networking code [FS#846, FS#844] (r10082, r10075)
+- Fix: Coverage area highlight was still show when it was turned off for docks [FS#835] (r10068)
+- Fix: Do not use override engine type for articulated wagon parts (r10048)
+- Fix: Sprite resulting from '?' substitution was reloaded into the cache entry for SPR_IMG_QUERY instead of the original sprite cache entry. This resulted in unaccounted missing sprite cache memory, and was exacerbated because the original missing sprite was not cached, so it did it again and again and again. Slowdowns and boom (r10038)
+- Fix: One could build on (some) slopes when building on slopes was disabled [FS#823] (r10030)
+- Fix: When deleting the first engine of a train with multiple engines, only reopen the train window if the player had the original train window open. This fixes 'random' windows opening for multiple players of the same company (r10028)
+- Fix: When selling trains, if there were no wagons between multiheaded engines the rear part could be checked despite having already been deleted (10023)
+
+
 0.5.2 (2007-05-29)
 ------------------------------------------------------------------------
 - Feature: Add threading support for MorphOS (r9759)
--- a/docs/openttd.6	Wed Jun 27 01:01:16 2007 +0000
+++ b/docs/openttd.6	Sat Jul 07 09:20:52 2007 +0000
@@ -1,6 +1,6 @@
 .\"                                      Hey, EMACS: -*- nroff -*-
 .\" Please adjust this date whenever revising the manpage.
-.Dd May 29, 2007
+.Dd Jun 28, 2007
 .Dt OPENTTD 6
 .Sh NAME
 .Nm openttd
--- a/known-bugs.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/known-bugs.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -4,43 +4,33 @@
 that are the same as these. If you do, don't act surprised, because
 we WILL flame you!!
 
-There is an experimental AI included in the game which you can enable
-from the "Configure Patches" window. All bugs related to this AI should
-go to: http://www.tt-forums.net/viewtopic.php?t=9576
-
 Of course if you have more knowledge about any of these bugs, have more
 specifics, we welcome you to report them. React to the given bug indicated
-by the number below on http://sourceforge.net/tracker/?group_id=103924&atid=636365
-or http://bugs.openttd.org.
+by the number below on http://bugs.openttd.org.
 If the bug report is closed, it has been fixed, which then can be verified
 in the latest SVN version.
 
-Bugs for 0.5.2
+Bugs for 0.5.3
 ------------------------------------------------------------------------
 URL: http://bugs.openttd.org
 
--735	Plural rule not expanded correctly when non-numeric placeholder uses
+-917	Load scenario with no towns failed without proper warning
+-873	Assertion window fails to open on OSX
+-820	Pillar drawing order glich, with newbridges
 -716	Train Crash in Depot
 -674	Map signs allow less nonenglish characters than english ones
 -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
 -599	Reloaded game lost company passwords
--594	Terraforming wipes out canals
 -591	Autorenew fails under certain conditions
--559	Front-/Rear-facing engines don't line up with each other
 -553	Autorenew doesn't warn when replacement isn't available
 -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
--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.
 -494	Get free money abusing a stock bug
 -474	Overtaking car doesn't hit the against-riding car.
 -458	Crash when changing Resolution on Mac OS X (x86)
--442	Alt-tab behaviour flawed whilst full screen (win32)
 -435	Assertion window doesn't show when in fullscreen on Mac OS X
 -423	Improved loading causes high CPU use with long trains
 -410	Openttd in dedicated mode don't run without data files
@@ -50,49 +40,10 @@
 -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
--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
--265	Subsidy awarded detection bug
 -259	AIs start unnamed companies that do nothing
--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
 -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
 - 51	Windows doesn't support CUSTOM_LANG_DIR
-- 47	Low rating calculation and cargo loading priority
-
-------------------------------------------------------------------------
-URL: http://sourceforge.net/tracker/?atid=636365&group_id=103924&func=browse
-
--1573339	0.4.8.dmg Crash with intel 64bit
--1460218	0.4.7 normal industry bug (non_smooth)
--1459262	Towns building too many roads way too long now
--1458995	Another bug with smooth_economy
--1393415	NPF & one-way sigs
--1212267	Station visited twice when servicing
--1208170	Duplicate station names can be created
--1116638	"More, but smaller changes" deficiency
--1106356	Re-offered prototypes
-
-------------------------------------------------------------------------
-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 :)
--1382782	Loan interest calculated 'wrong'
--1201284	Permanent hilight in a depot
--1185852	Scrollbars get arbitrarily small
--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
--1030661	It's possible to build a tunnel under oil wells
-- 987883	Aircraft landing/taking off
-- 987880	Company league table updating
-- 985924	Aircraft taxi speed
--- a/os/debian/changelog	Wed Jun 27 01:01:16 2007 +0000
+++ b/os/debian/changelog	Sat Jul 07 09:20:52 2007 +0000
@@ -4,6 +4,12 @@
 
  -- Matthijs Kooijman <m.kooijman@student.utwente.nl>  Mon, 26 Feb 2007 21:07:05 +0100
 
+openttd (0.5.3~rc1-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Matthijs Kooijman <m.kooijman@student.utwente.nl>  Thu, 28 Jun 2007 18:00:00 +0100
+
 openttd (0.5.2-1) unstable; urgency=low
 
   * New upstream release.
--- a/os/win32/installer/install.nsi	Wed Jun 27 01:01:16 2007 +0000
+++ b/os/win32/installer/install.nsi	Sat Jul 07 09:20:52 2007 +0000
@@ -1,6 +1,6 @@
 !define APPNAME "OpenTTD"   ; Define application name
-!define APPVERSION "0.5.2"  ; Define application version
-!define INSTALLERVERSION 34 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
+!define APPVERSION "0.5.3"  ; Define application version
+!define INSTALLERVERSION 35 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
 
 !define APPURLLINK "http://www.openttd.org"
 !define APPNAMEANDVERSION "${APPNAME} ${APPVERSION}"
--- a/projects/langs.vcproj	Wed Jun 27 01:01:16 2007 +0000
+++ b/projects/langs.vcproj	Sat Jul 07 09:20:52 2007 +0000
@@ -91,6 +91,19 @@
 			</FileConfiguration>
 		</File>
 		<File
+			RelativePath="..\src\lang\croatian.txt">
+			<FileConfiguration
+				Name="Debug|Win32">
+				<Tool
+					Name="VCCustomBuildTool"
+					Description="Generating croatian language file"
+					CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;
+"
+					AdditionalDependencies=""
+					Outputs="..\bin\lang\croatian.lng"/>
+			</FileConfiguration>
+		</File>
+		<File
 			RelativePath="..\src\lang\czech.txt">
 			<FileConfiguration
 				Name="Debug|Win32">
--- a/projects/langs_vs80.vcproj	Wed Jun 27 01:01:16 2007 +0000
+++ b/projects/langs_vs80.vcproj	Sat Jul 07 09:20:52 2007 +0000
@@ -107,6 +107,21 @@
 			</FileConfiguration>
 		</File>
 		<File
+			RelativePath="..\src\lang\croatian.txt"
+			>
+			<FileConfiguration
+				Name="Debug|Win32"
+				>
+				<Tool
+					Name="VCCustomBuildTool"
+					Description="Generating croatian language file"
+					CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
+					AdditionalDependencies=""
+					Outputs="..\bin\lang\croatian.lng"
+				/>
+			</FileConfiguration>
+		</File>
+		<File
 			RelativePath="..\src\lang\czech.txt"
 			>
 			<FileConfiguration
--- a/projects/openttd.vcproj	Wed Jun 27 01:01:16 2007 +0000
+++ b/projects/openttd.vcproj	Sat Jul 07 09:20:52 2007 +0000
@@ -477,9 +477,6 @@
 				RelativePath=".\..\src\gui.h">
 			</File>
 			<File
-				RelativePath=".\..\src\hal.h">
-			</File>
-			<File
 				RelativePath=".\..\src\heightmap.h">
 			</File>
 			<File
@@ -1297,6 +1294,19 @@
 			</File>
 		</Filter>
 		<Filter
+			Name="Drivers"
+			Filter="">
+			<File
+				RelativePath=".\..\src\music\music_driver.hpp">
+			</File>
+			<File
+				RelativePath=".\..\src\sound\sound_driver.hpp">
+			</File>
+			<File
+				RelativePath=".\..\src\video\video_driver.hpp">
+			</File>
+		</Filter>
+		<Filter
 			Name="Sprite loaders"
 			Filter="">
 			<File
@@ -1444,11 +1454,23 @@
 				RelativePath=".\..\src\misc\crc32.hpp">
 			</File>
 			<File
+				RelativePath=".\..\src\misc\dbg_helpers.cpp">
+			</File>
+			<File
+				RelativePath=".\..\src\misc\dbg_helpers.h">
+			</File>
+			<File
 				RelativePath=".\..\src\misc\fixedsizearray.hpp">
 			</File>
 			<File
 				RelativePath=".\..\src\misc\hashtable.hpp">
 			</File>
+			<File
+				RelativePath=".\..\src\misc\str.hpp">
+			</File>
+			<File
+				RelativePath=".\..\src\misc\strapi.hpp">
+			</File>
 		</Filter>
 		<Filter
 			Name="Network Core"
--- a/projects/openttd_vs80.vcproj	Wed Jun 27 01:01:16 2007 +0000
+++ b/projects/openttd_vs80.vcproj	Sat Jul 07 09:20:52 2007 +0000
@@ -77,7 +77,7 @@
 				BrowseInformation="1"
 				BrowseInformationFile="$(IntDir)/"
 				WarningLevel="3"
-				WarnAsError="true"
+				WarnAsError="false"
 				SuppressStartupBanner="true"
 				DebugInformationFormat="3"
 				CallingConvention="1"
@@ -285,7 +285,7 @@
 				ObjectFile="$(IntDir)/"
 				ProgramDataBaseFileName="$(IntDir)/$(TargetName).pdb"
 				WarningLevel="3"
-				WarnAsError="true"
+				WarnAsError="false"
 				SuppressStartupBanner="true"
 				Detect64BitPortabilityProblems="false"
 				DebugInformationFormat="4"
@@ -864,10 +864,6 @@
 				>
 			</File>
 			<File
-				RelativePath=".\..\src\hal.h"
-				>
-			</File>
-			<File
 				RelativePath=".\..\src\heightmap.h"
 				>
 			</File>
@@ -1945,6 +1941,22 @@
 			</File>
 		</Filter>
 		<Filter
+			Name="Drivers"
+			>
+			<File
+				RelativePath=".\..\src\music\music_driver.hpp"
+				>
+			</File>
+			<File
+				RelativePath=".\..\src\sound\sound_driver.hpp"
+				>
+			</File>
+			<File
+				RelativePath=".\..\src\video\video_driver.hpp"
+				>
+			</File>
+		</Filter>
+		<Filter
 			Name="Sprite loaders"
 			>
 			<File
@@ -2136,6 +2148,14 @@
 				>
 			</File>
 			<File
+				RelativePath=".\..\src\misc\dbg_helpers.cpp"
+				>
+			</File>
+			<File
+				RelativePath=".\..\src\misc\dbg_helpers.h"
+				>
+			</File>
+			<File
 				RelativePath=".\..\src\misc\fixedsizearray.hpp"
 				>
 			</File>
@@ -2143,6 +2163,14 @@
 				RelativePath=".\..\src\misc\hashtable.hpp"
 				>
 			</File>
+			<File
+				RelativePath=".\..\src\misc\str.hpp"
+				>
+			</File>
+			<File
+				RelativePath=".\..\src\misc\strapi.hpp"
+				>
+			</File>
 		</Filter>
 		<Filter
 			Name="Network Core"
--- a/projects/openttd_vs80.vcproj.in	Wed Jun 27 01:01:16 2007 +0000
+++ b/projects/openttd_vs80.vcproj.in	Sat Jul 07 09:20:52 2007 +0000
@@ -77,7 +77,7 @@
 				BrowseInformation="1"
 				BrowseInformationFile="$(IntDir)/"
 				WarningLevel="3"
-				WarnAsError="true"
+				WarnAsError="false"
 				SuppressStartupBanner="true"
 				DebugInformationFormat="3"
 				CallingConvention="1"
@@ -285,7 +285,7 @@
 				ObjectFile="$(IntDir)/"
 				ProgramDataBaseFileName="$(IntDir)/$(TargetName).pdb"
 				WarningLevel="3"
-				WarnAsError="true"
+				WarnAsError="false"
 				SuppressStartupBanner="true"
 				Detect64BitPortabilityProblems="false"
 				DebugInformationFormat="4"
--- a/readme.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/readme.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1,6 +1,6 @@
 OpenTTD README
-Last updated:    2007-05-29
-Release version: 0.5.2
+Last updated:    2007-06-28
+Release version: 0.5.3-RC1
 ------------------------------------------------------------------------
 
 
--- a/source.list	Wed Jun 27 01:01:16 2007 +0000
+++ b/source.list	Sat Jul 07 09:20:52 2007 +0000
@@ -126,7 +126,6 @@
 gfxinit.h
 group.h
 gui.h
-hal.h
 heightmap.h
 helpers.hpp
 industry.h
@@ -408,6 +407,11 @@
 blitter/null.cpp
 blitter/null.hpp
 
+# Drivers
+music/music_driver.hpp
+sound/sound_driver.hpp
+video/video_driver.hpp
+
 # Sprite loaders
 spriteloader/grf.cpp
 spriteloader/grf.hpp
@@ -461,8 +465,12 @@
 misc/countedobj.cpp
 misc/countedptr.hpp
 misc/crc32.hpp
+misc/dbg_helpers.cpp
+misc/dbg_helpers.h
 misc/fixedsizearray.hpp
 misc/hashtable.hpp
+misc/str.hpp
+misc/strapi.hpp
 
 # Network Core
 network/core/config.h
--- a/src/aircraft.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/aircraft.h	Sat Jul 07 09:20:52 2007 +0000
@@ -136,6 +136,8 @@
 	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); }
+	int GetImage(Direction direction) const;
+	void Tick();
 };
 
 #endif /* AIRCRAFT_H */
--- a/src/aircraft_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/aircraft_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -153,15 +153,15 @@
 }
 #endif
 
-int GetAircraftImage(const Vehicle* v, Direction direction)
+int Aircraft::GetImage(Direction direction) const
 {
-	int spritenum = v->spritenum;
+	int spritenum = this->spritenum;
 
 	if (is_custom_sprite(spritenum)) {
-		int sprite = GetCustomVehicleSprite(v, direction);
+		int sprite = GetCustomVehicleSprite(this, direction);
 
 		if (sprite != 0) return sprite;
-		spritenum = orig_aircraft_vehicle_info[v->engine_type - AIRCRAFT_ENGINES_INDEX].image_index;
+		spritenum = orig_aircraft_vehicle_info[this->engine_type - AIRCRAFT_ENGINES_INDEX].image_index;
 	}
 	return direction + _aircraft_sprite[spritenum];
 }
@@ -451,7 +451,7 @@
 		RebuildVehicleLists();
 		InvalidateWindow(WC_COMPANY, v->owner);
 		if (IsLocalPlayer())
-			InvalidateAutoreplaceWindow(VEH_AIRCRAFT); //updates the replace Aircraft window
+			InvalidateAutoreplaceWindow(VEH_AIRCRAFT, v->group_id); //updates the replace Aircraft window
 
 		GetPlayer(_current_player)->num_engines[p1]++;
 	}
@@ -827,7 +827,7 @@
 	v->y_pos = y;
 	v->z_pos = z;
 
-	v->cur_image = GetAircraftImage(v, v->direction);
+	v->cur_image = v->GetImage(v->direction);
 	if (v->subtype == AIR_HELICOPTER) v->next->next->cur_image = GetRotorImage(v);
 
 	BeginVehicleMove(v);
@@ -1409,7 +1409,7 @@
 
 void Aircraft::MarkDirty()
 {
-		this->cur_image = GetAircraftImage(this, this->direction);
+		this->cur_image = this->GetImage(this->direction);
 		if (this->subtype == AIR_HELICOPTER) this->next->next->cur_image = GetRotorImage(this);
 		MarkAllViewportsDirty(this->left_coord, this->top_coord, this->right_coord + 1, this->bottom_coord + 1);
 }
@@ -2110,17 +2110,17 @@
 	AirportGoToNextPosition(v);
 }
 
-void Aircraft_Tick(Vehicle *v)
+void Aircraft::Tick()
 {
-	if (!IsNormalAircraft(v)) return;
+	if (!IsNormalAircraft(this)) return;
 
-	if (v->subtype == AIR_HELICOPTER) HelicopterTickHandler(v);
+	if (this->subtype == AIR_HELICOPTER) HelicopterTickHandler(this);
 
-	AgeAircraftCargo(v);
+	AgeAircraftCargo(this);
 
 	for (uint i = 0; i != 2; i++) {
-		AircraftEventHandler(v, i);
-		if (v->type != VEH_AIRCRAFT) // In case it was deleted
+		AircraftEventHandler(this, i);
+		if (this->type != VEH_AIRCRAFT) // In case it was deleted
 			break;
 	}
 }
--- a/src/aircraft_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/aircraft_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -25,7 +25,7 @@
 void DrawAircraftImage(const Vehicle *v, int x, int y, VehicleID selection)
 {
 	SpriteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
-	DrawSprite(GetAircraftImage(v, DIR_W), pal, x + 25, y + 10);
+	DrawSprite(v->GetImage(DIR_W), pal, x + 25, y + 10);
 	if (v->subtype == AIR_HELICOPTER) {
 		SpriteID rotor_sprite = GetCustomRotorSprite(v, true);
 		if (rotor_sprite == 0) rotor_sprite = SPR_ROTOR_STOPPED;
--- a/src/airport.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/airport.h	Sat Jul 07 09:20:52 2007 +0000
@@ -70,48 +70,48 @@
 /* Movement Blocks on Airports */
 // blocks (eg_airport_flags)
 static const uint64
-	TERM1_block              = 1 <<  0,
-	TERM2_block              = 1 <<  1,
-	TERM3_block              = 1 <<  2,
-	TERM4_block              = 1 <<  3,
-	TERM5_block              = 1 <<  4,
-	TERM6_block              = 1 <<  5,
-	HELIPAD1_block           = 1 <<  6,
-	HELIPAD2_block           = 1 <<  7,
-	RUNWAY_IN_OUT_block      = 1 <<  8,
-	RUNWAY_IN_block          = 1 <<  8,
-	AIRPORT_BUSY_block       = 1 <<  8,
-	RUNWAY_OUT_block         = 1 <<  9,
-	TAXIWAY_BUSY_block       = 1 << 10,
-	OUT_WAY_block            = 1 << 11,
-	IN_WAY_block             = 1 << 12,
-	AIRPORT_ENTRANCE_block   = 1 << 13,
-	TERM_GROUP1_block        = 1 << 14,
-	TERM_GROUP2_block        = 1 << 15,
-	HANGAR2_AREA_block       = 1 << 16,
-	TERM_GROUP2_ENTER1_block = 1 << 17,
-	TERM_GROUP2_ENTER2_block = 1 << 18,
-	TERM_GROUP2_EXIT1_block  = 1 << 19,
-	TERM_GROUP2_EXIT2_block  = 1 << 20,
-	PRE_HELIPAD_block        = 1 << 21,
+	TERM1_block              = 1ULL <<  0,
+	TERM2_block              = 1ULL <<  1,
+	TERM3_block              = 1ULL <<  2,
+	TERM4_block              = 1ULL <<  3,
+	TERM5_block              = 1ULL <<  4,
+	TERM6_block              = 1ULL <<  5,
+	HELIPAD1_block           = 1ULL <<  6,
+	HELIPAD2_block           = 1ULL <<  7,
+	RUNWAY_IN_OUT_block      = 1ULL <<  8,
+	RUNWAY_IN_block          = 1ULL <<  8,
+	AIRPORT_BUSY_block       = 1ULL <<  8,
+	RUNWAY_OUT_block         = 1ULL <<  9,
+	TAXIWAY_BUSY_block       = 1ULL << 10,
+	OUT_WAY_block            = 1ULL << 11,
+	IN_WAY_block             = 1ULL << 12,
+	AIRPORT_ENTRANCE_block   = 1ULL << 13,
+	TERM_GROUP1_block        = 1ULL << 14,
+	TERM_GROUP2_block        = 1ULL << 15,
+	HANGAR2_AREA_block       = 1ULL << 16,
+	TERM_GROUP2_ENTER1_block = 1ULL << 17,
+	TERM_GROUP2_ENTER2_block = 1ULL << 18,
+	TERM_GROUP2_EXIT1_block  = 1ULL << 19,
+	TERM_GROUP2_EXIT2_block  = 1ULL << 20,
+	PRE_HELIPAD_block        = 1ULL << 21,
 
 // blocks for new airports
-	TERM7_block              = 1 << 22,
-	TERM8_block              = 1 << 23,
-	TERM9_block              = 1 << 24,
-	HELIPAD3_block           = 1 << 24,
-	TERM10_block             = 1 << 25,
-	HELIPAD4_block           = 1 << 25,
-	HANGAR1_AREA_block       = 1 << 26,
-	OUT_WAY2_block           = 1 << 27,
-	IN_WAY2_block            = 1 << 28,
-	RUNWAY_IN2_block         = 1 << 29,
-	RUNWAY_OUT2_block        = 1 << 10,   // note re-uses TAXIWAY_BUSY
-	HELIPAD_GROUP_block      = 1 << 13,   // note re-uses AIRPORT_ENTRANCE
-	OUT_WAY_block2           = 1 << 31,
+	TERM7_block              = 1ULL << 22,
+	TERM8_block              = 1ULL << 23,
+	TERM9_block              = 1ULL << 24,
+	HELIPAD3_block           = 1ULL << 24,
+	TERM10_block             = 1ULL << 25,
+	HELIPAD4_block           = 1ULL << 25,
+	HANGAR1_AREA_block       = 1ULL << 26,
+	OUT_WAY2_block           = 1ULL << 27,
+	IN_WAY2_block            = 1ULL << 28,
+	RUNWAY_IN2_block         = 1ULL << 29,
+	RUNWAY_OUT2_block        = 1ULL << 10,   // note re-uses TAXIWAY_BUSY
+	HELIPAD_GROUP_block      = 1ULL << 13,   // note re-uses AIRPORT_ENTRANCE
+	OUT_WAY_block2           = 1ULL << 31,
 // end of new blocks
 
-	NOTHING_block            = 1 << 30;
+	NOTHING_block            = 1ULL << 30;
 
 struct AirportMovingData {
 	int16 x;
--- a/src/autoreplace_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/autoreplace_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -38,17 +38,19 @@
 
 /** Rebuild the left autoreplace list if an engine is removed or added
  * @param e Engine to check if it is removed or added
+ * @param id_g The group the engine belongs to
  *  Note: this function only works if it is called either
  *   - when a new vehicle is build, but before it's counted in num_engines
  *   - when a vehicle is deleted and after it's substracted from num_engines
  *   - when not changing the count (used when changing replace orders)
  */
-void InvalidateAutoreplaceWindow(EngineID e)
+void InvalidateAutoreplaceWindow(EngineID e, GroupID id_g)
 {
 	Player *p = GetPlayer(_local_player);
 	byte type = GetEngine(e)->type;
+	uint num_engines = IsDefaultGroupID(id_g) ? p->num_engines[e] : GetGroup(id_g)->num_engines[e];
 
-	if (p->num_engines[e] == 0) {
+	if (num_engines == 0 || p->num_engines[e] == 0) {
 		/* We don't have any of this engine type.
 		 * Either we just sold the last one, we build a new one or we stopped replacing it.
 		 * In all cases, we need to update the left list */
--- a/src/blitter/32bpp_anim.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/blitter/32bpp_anim.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -3,6 +3,7 @@
 #include "../gfx.h"
 #include "../debug.h"
 #include "../table/sprites.h"
+#include "../video/video_driver.hpp"
 #include "32bpp_anim.hpp"
 
 static FBlitter_32bppAnim iFBlitter_32bppAnim;
@@ -268,7 +269,7 @@
 	}
 
 	/* Make sure the backend redraws the whole screen */
-	_video_driver->make_dirty(0, 0, _screen.width, _screen.height);
+	_video_driver->MakeDirty(0, 0, _screen.width, _screen.height);
 }
 
 Blitter::PaletteAnimation Blitter_32bppAnim::UsePaletteAnimation()
--- a/src/blitter/8bpp_optimized.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/blitter/8bpp_optimized.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -197,6 +197,7 @@
 	dest_sprite->x_offs = sprite->x_offs;
 	dest_sprite->y_offs = sprite->y_offs;
 	memcpy(dest_sprite->data, temp_dst, index);
+	free(temp_dst);
 
 	return dest_sprite;
 }
--- a/src/blitter/factory.hpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/blitter/factory.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -64,6 +64,7 @@
 			BlitterFactoryBase *b = (*it).second;
 			if (strcasecmp(name, b->name) == 0) {
 				Blitter *newb = b->CreateInstance();
+				delete *GetActiveBlitter();
 				*GetActiveBlitter() = newb;
 				return newb;
 			}
--- a/src/cargopacket.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/cargopacket.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -228,7 +228,7 @@
 	assert(cp->IsValid());
 
 	for (List::iterator it = packets.begin(); it != packets.end(); it++) {
-		if ((*it)->SameSource(cp)) {
+		if ((*it)->SameSource(cp) && (*it)->count + cp->count <= 65535) {
 			(*it)->count        += cp->count;
 			(*it)->feeder_share += cp->feeder_share;
 			delete cp;
--- a/src/cargopacket.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/cargopacket.h	Sat Jul 07 09:20:52 2007 +0000
@@ -11,8 +11,6 @@
  * Container for cargo from the same location and time
  */
 struct CargoPacket {
-	bool touched;
-
 	typedef uint32 ID;      ///< Type for cargopacket identifiers
 
 	ID index;               ///< The unique index of this packet
--- a/src/depot_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/depot_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -187,7 +187,7 @@
 		case VEH_ROAD:     DrawRoadVehImage( v, x + 24, sprite_y, 1, WP(w, depot_d).sel); break;
 		case VEH_SHIP:     DrawShipImage(    v, x + 19, sprite_y - 1, WP(w, depot_d).sel); break;
 		case VEH_AIRCRAFT: {
-			const Sprite *spr = GetSprite(GetAircraftImage(v, DIR_W));
+			const Sprite *spr = GetSprite(v->GetImage(DIR_W));
 			DrawAircraftImage(v, x + 12,
 							  y + max(spr->height + spr->y_offs - 14, 0), // tall sprites needs an y offset
 							  WP(w, depot_d).sel);
@@ -438,15 +438,7 @@
 				WP(w,depot_d).sel = INVALID_VEHICLE;
 				TrainDepotMoveVehicle(v, sel, gdvp.head);
 			} else if (v != NULL) {
-				int image;
-
-				switch (WP(w, depot_d).type) {
-					case VEH_TRAIN:    image = GetTrainImage(v, DIR_W);    break;
-					case VEH_ROAD:     image = GetRoadVehImage(v, DIR_W);  break;
-					case VEH_SHIP:     image = GetShipImage(v, DIR_W);     break;
-					case VEH_AIRCRAFT: image = GetAircraftImage(v, DIR_W); break;
-					default: NOT_REACHED(); image = 0;
-				}
+				int image = v->GetImage(DIR_W);
 
 				WP(w, depot_d).sel = v->index;
 				SetWindowDirty(w);
--- a/src/disaster_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/disaster_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -741,9 +741,9 @@
 };
 
 
-void DisasterVehicle_Tick(Vehicle *v)
+void DisasterVehicle::Tick()
 {
-	_disastervehicle_tick_procs[v->subtype](v);
+	_disastervehicle_tick_procs[this->subtype](this);
 }
 
 
--- a/src/dock_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/dock_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -94,16 +94,19 @@
 
 static void BuildDocksClick_Depot(Window *w)
 {
+	if (!CanBuildVehicleInfrastructure(VEH_SHIP)) return;
 	if (HandlePlacePushButton(w, DTW_DEPOT, SPR_CURSOR_SHIP_DEPOT, 1, PlaceDocks_Depot)) ShowBuildDocksDepotPicker();
 }
 
 static void BuildDocksClick_Dock(Window *w)
 {
+	if (!CanBuildVehicleInfrastructure(VEH_SHIP)) return;
 	if (HandlePlacePushButton(w, DTW_STATION, SPR_CURSOR_DOCK, 3, PlaceDocks_Dock)) ShowBuildDockStationPicker();
 }
 
 static void BuildDocksClick_Buoy(Window *w)
 {
+	if (!CanBuildVehicleInfrastructure(VEH_SHIP)) return;
 	HandlePlacePushButton(w, DTW_BUOY, SPR_CURSOR_BOUY, 1, PlaceDocks_Buoy);
 }
 
@@ -124,6 +127,7 @@
 	switch (e->event) {
 	case WE_PAINT:
 		DrawWindowWidgets(w);
+		SetWindowWidgetsDisabledState(w, !CanBuildVehicleInfrastructure(VEH_SHIP), 7, 8, 9, WIDGET_LIST_END);
 		break;
 
 	case WE_CLICK:
--- a/src/driver.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/driver.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -7,177 +7,15 @@
 #include "debug.h"
 #include "driver.h"
 #include "functions.h"
-#include "hal.h"
 #include "string.h"
 
-#include "music/bemidi.h"
-#include "music/dmusic.h"
-#include "music/extmidi.h"
-#include "music/null_m.h"
-#include "music/os2_m.h"
-#include "music/win32_m.h"
-#include "music/qtmidi.h"
-#include "music/libtimidity.h"
-
-#include "sound/null_s.h"
-#include "sound/sdl_s.h"
-#include "sound/cocoa_s.h"
-#include "sound/win32_s.h"
-
-#include "video/dedicated_v.h"
-#include "video/null_v.h"
-#include "video/sdl_v.h"
-#include "video/cocoa_v.h"
-#include "video/win32_v.h"
-
-struct DriverDesc {
-	const char* name;
-	const char* longname;
-	const HalCommonDriver* drv;
-};
-
-struct DriverClass {
-	const DriverDesc *descs;
-	const char *name;
-	const HalCommonDriver** drv;
-};
-
-
-#define M(x, y, z) { x, y, (const HalCommonDriver *)(void *)z }
-static const DriverDesc _music_driver_descs[] = {
-#ifdef __BEOS__
-	M("bemidi",  "BeOS MIDI Driver",        &_bemidi_music_driver),
-#endif
-#if defined(__OS2__) && !defined(__INNOTEK_LIBC__)
-	M("os2",     "OS/2 Music Driver",       &_os2_music_driver),
-#endif
-#ifdef WIN32_ENABLE_DIRECTMUSIC_SUPPORT
-	M("dmusic",  "DirectMusic MIDI Driver", &_dmusic_midi_driver),
-#endif
-#if defined(WIN32) && !defined(WINCE)
-	M("win32",   "Win32 MIDI Driver",       &_win32_music_driver),
-#endif
-#if defined(__APPLE__) && !defined(DEDICATED)
-	M("qt",      "QuickTime MIDI Driver",   &_qtime_music_driver),
-#endif
-#ifdef UNIX
-#if defined(LIBTIMIDITY)
-	M("libtimidity", "LibTimidity MIDI Driver", &_libtimidity_music_driver),
-#endif /* LIBTIMIDITY */
-#if !defined(__MORPHOS__) && !defined(__AMIGA__) && !defined(__OS2__) && !defined(PSP)
-	M("extmidi", "External MIDI Driver",    &_extmidi_music_driver),
-#endif
-#endif
-	M("null",    "Null Music Driver",       &_null_music_driver),
-	M(NULL, NULL, NULL)
-};
-
-static const DriverDesc _sound_driver_descs[] = {
-#if defined(WIN32) && !defined(WINCE)
-	M("win32", "Win32 WaveOut Driver", &_win32_sound_driver),
-#endif
-#ifdef WITH_SDL
-	M("sdl",   "SDL Sound Driver",     &_sdl_sound_driver),
-#endif
-#ifdef WITH_COCOA
-	M("cocoa", "Cocoa Sound Driver",   &_cocoa_sound_driver),
-#endif
-	M("null",  "Null Sound Driver",    &_null_sound_driver),
-	M(NULL, NULL, NULL)
-};
+#include "sound/sound_driver.hpp"
+#include "music/music_driver.hpp"
+#include "video/video_driver.hpp"
 
-static const DriverDesc _video_driver_descs[] = {
-#ifdef WIN32
-	M("win32",      "Win32 GDI Video Driver", &_win32_video_driver),
-#endif
-#ifdef WITH_SDL
-	M("sdl",        "SDL Video Driver",       &_sdl_video_driver),
-#endif
-#ifdef WITH_COCOA
-	M("cocoa",      "Cocoa Video Driver",       &_cocoa_video_driver),
-#endif
-	M("null",       "Null Video Driver",      &_null_video_driver),
-#ifdef ENABLE_NETWORK
-	M("dedicated",  "Dedicated Video Driver", &_dedicated_video_driver),
-#endif
-	M(NULL, NULL, NULL)
-};
-#undef M
-
-
-#define M(x, y, z) { x, y, (const HalCommonDriver **)(void *)z }
-static const DriverClass _driver_classes[] = {
-	M(_video_driver_descs, "video", &_video_driver),
-	M(_sound_driver_descs, "sound", &_sound_driver),
-	M(_music_driver_descs, "music", &_music_driver)
-};
-#undef M
-
-static const DriverDesc* GetDriverByName(const DriverDesc* dd, const char* name)
-{
-	for (; dd->name != NULL; dd++) {
-		if (strcmp(dd->name, name) == 0) return dd;
-	}
-	return NULL;
-}
-
-void LoadDriver(int driver, const char *name)
-{
-	const DriverClass *dc = &_driver_classes[driver];
-	const DriverDesc *dd;
-	const char *err;
-
-	if (*name == '\0') {
-		for (dd = dc->descs; dd->name != NULL; dd++) {
-			err = dd->drv->start(NULL);
-			if (err == NULL) break;
-			DEBUG(driver, 1, "Probing %s driver '%s' failed with error: %s",
-				dc->name, dd->name, err
-			);
-		}
-		if (dd->name == NULL) error("Couldn't find any suitable %s driver", dc->name);
-
-		DEBUG(driver, 1, "Successfully probed %s driver '%s'", dc->name, dd->name);
-
-		*dc->drv = dd->drv;
-	} else {
-		char* parm;
-		char buffer[256];
-		const char* parms[32];
-
-		/* Extract the driver name and put parameter list in parm */
-		ttd_strlcpy(buffer, name, sizeof(buffer));
-		parm = strchr(buffer, ':');
-		parms[0] = NULL;
-		if (parm != NULL) {
-			uint np = 0;
-			/* Tokenize the parm. */
-			do {
-				*parm++ = '\0';
-				if (np < lengthof(parms) - 1)
-					parms[np++] = parm;
-				while (*parm != '\0' && *parm != ',')
-					parm++;
-			} while (*parm == ',');
-			parms[np] = NULL;
-		}
-		dd = GetDriverByName(dc->descs, buffer);
-		if (dd == NULL)
-			error("No such %s driver: %s\n", dc->name, buffer);
-
-		if (*dc->drv != NULL) (*dc->drv)->stop();
-		*dc->drv = NULL;
-
-		err = dd->drv->start(parms);
-		if (err != NULL) {
-			error("Unable to load driver %s(%s). The error was: %s\n",
-				dd->name, dd->longname, err
-			);
-		}
-		*dc->drv = dd->drv;
-	}
-}
-
+SoundDriver *_sound_driver;
+MusicDriver *_music_driver;
+VideoDriver *_video_driver;
 
 static const char* GetDriverParam(const char* const* parm, const char* name)
 {
@@ -207,21 +45,3 @@
 	const char* p = GetDriverParam(parm, name);
 	return p != NULL ? atoi(p) : def;
 }
-
-
-char *GetDriverList(char* p, const char *last)
-{
-	const DriverClass* dc;
-
-	for (dc = _driver_classes; dc != endof(_driver_classes); dc++) {
-		const DriverDesc* dd;
-
-		p += snprintf(p, last - p, "List of %s drivers:\n", dc->name);
-		for (dd = dc->descs; dd->name != NULL; dd++) {
-			p += snprintf(p, last - p, "%10s: %s\n", dd->name, dd->longname);
-		}
-		p = strecpy(p, "\n", last);
-	}
-
-	return p;
-}
--- a/src/driver.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/driver.h	Sat Jul 07 09:20:52 2007 +0000
@@ -5,11 +5,207 @@
 #ifndef DRIVER_H
 #define DRIVER_H
 
-void LoadDriver(int driver, const char *name);
+#include "debug.h"
+#include "helpers.hpp"
+#include "string.h"
+#include <string>
+#include <map>
 
 bool GetDriverParamBool(const char* const* parm, const char* name);
 int GetDriverParamInt(const char* const* parm, const char* name, int def);
 
-char *GetDriverList(char *p, const char *last);
+class Driver {
+public:
+	virtual bool CanProbe() = 0;
+
+	virtual const char *Start(const char * const *parm) = 0;
+
+	virtual void Stop() = 0;
+
+	virtual ~Driver() { }
+
+	enum Type {
+		DT_BEGIN = 0,
+		DT_SOUND = 0,
+		DT_MUSIC,
+		DT_VIDEO,
+		DT_END,
+	};
+};
+
+DECLARE_POSTFIX_INCREMENT(Driver::Type);
+
+
+class DriverFactoryBase {
+private:
+	Driver::Type type;
+	char *name;
+	typedef std::map<std::string, DriverFactoryBase *> Drivers;
+
+	static Drivers &GetDrivers()
+	{
+		static Drivers &s_drivers = *new Drivers();
+		return s_drivers;
+	}
+
+	static Driver **GetActiveDriver(Driver::Type type)
+	{
+		static Driver *s_driver[3] = { NULL, NULL, NULL };
+		return &s_driver[type];
+	}
+
+	static const char *GetDriverTypeName(Driver::Type type)
+	{
+		static const char *driver_type_name[] = { "sound", "music", "video" };
+		return driver_type_name[type];
+	}
+
+protected:
+	/**
+	 * Register a driver internally, based on its name.
+	 * @param name the name of the driver.
+	 * @note an assert() will be trigger if 2 driver with the same name try to register.
+	 */
+	void RegisterDriver(const char *name, Driver::Type type)
+	{
+		/* Don't register nameless Drivers */
+		if (name == NULL) return;
+
+		this->name = strdup(name);
+		this->type = type;
+
+		/* Prefix the name with driver type to make it unique */
+		char buf[32];
+		strecpy(buf, GetDriverTypeName(type), lastof(buf));
+		strecpy(buf + 5, name, lastof(buf));
+
+		std::pair<Drivers::iterator, bool> P = GetDrivers().insert(Drivers::value_type(buf, this));
+		assert(P.second);
+	}
+
+public:
+	DriverFactoryBase() :
+		name(NULL)
+	{}
+
+	virtual ~DriverFactoryBase() { if (this->name != NULL) GetDrivers().erase(this->name); free(this->name); }
+
+	/**
+	 * Find the requested driver and return its class.
+	 * @param name the driver to select.
+	 * @post Sets the driver so GetCurrentDriver() returns it too.
+	 */
+	static Driver *SelectDriver(const char *name, Driver::Type type)
+	{
+		if (GetDrivers().size() == 0) return NULL;
+
+		if (*name == '\0') {
+			/* Probe for this driver */
+			Drivers::iterator it = GetDrivers().begin();
+			for (; it != GetDrivers().end(); ++it) {
+				DriverFactoryBase *d = (*it).second;
+
+				/* Check driver type */
+				if (d->type != type) continue;
+
+				Driver *newd = d->CreateInstance();
+				if (!newd->CanProbe()) {
+					DEBUG(driver, 1, "Skipping probe of driver '%s'", d->name);
+				} else {
+					const char *err = newd->Start(NULL);
+					if (err == NULL) {
+						DEBUG(driver, 1, "Successfully probed %s driver '%s'", GetDriverTypeName(type), d->name);
+						delete *GetActiveDriver(type);
+						*GetActiveDriver(type) = newd;
+						return newd;
+					}
+
+					DEBUG(driver, 1, "Probing %s driver '%s' failed with error: %s", GetDriverTypeName(type), d->name, err);
+				}
+
+				delete newd;
+			}
+			error("Couldn't find any suitable %s driver", GetDriverTypeName(type));
+		} else {
+			char *parm;
+			char buffer[256];
+			const char *parms[32];
+
+			/* Extract the driver name and put parameter list in parm */
+			strecpy(buffer, name, lastof(buffer));
+			parm = strchr(buffer, ':');
+			parms[0] = NULL;
+			if (parm != NULL) {
+				uint np = 0;
+				/* Tokenize the parm. */
+				do {
+					*parm++ = '\0';
+					if (np < lengthof(parms) - 1)
+						parms[np++] = parm;
+					while (*parm != '\0' && *parm != ',')
+						parm++;
+				} while (*parm == ',');
+				parms[np] = NULL;
+			}
+
+			/* Find this driver */
+			Drivers::iterator it = GetDrivers().begin();
+			for (; it != GetDrivers().end(); ++it) {
+				DriverFactoryBase *d = (*it).second;
+
+				/* Check driver type */
+				if (d->type != type) continue;
+
+				/* Check driver name */
+				if (strcasecmp(buffer, d->name) != 0) continue;
+
+				/* Found our driver, let's try it */
+				Driver *newd = d->CreateInstance();
+
+				const char *err = newd->Start(parms);
+				if (err != NULL) {
+					delete newd;
+					error("Unable to load driver '%s'. The error was: %s", d->name, err);
+				}
+
+				DEBUG(driver, 1, "Successfully loaded %s driver '%s'", GetDriverTypeName(type), d->name);
+				delete *GetActiveDriver(type);
+				*GetActiveDriver(type) = newd;
+				return newd;
+			}
+			error("No such %s driver: %s\n", GetDriverTypeName(type), buffer);
+		}
+	}
+
+	/**
+	 * Build a human readable list of available drivers, grouped by type.
+	 */
+	static char *GetDriversInfo(char *p, const char *last)
+	{
+		for (Driver::Type type = Driver::DT_BEGIN; type != Driver::DT_END; type++) {
+			p += snprintf(p, last - p, "List of %s drivers:\n", GetDriverTypeName(type));
+
+			Drivers::iterator it = GetDrivers().begin();
+			for (; it != GetDrivers().end(); it++) {
+				DriverFactoryBase *d = (*it).second;
+				if (d->type == type) p += snprintf(p, last - p, "%18s: %s\n", d->name, d->GetDescription());
+			}
+
+			p += snprintf(p, last - p, "\n");
+		}
+
+		return p;
+	}
+
+	/**
+	 * Get a nice description of the driver-class.
+	 */
+	virtual const char *GetDescription() = 0;
+
+	/**
+	 * Create an instance of this driver-class.
+	 */
+	virtual Driver *CreateInstance() = 0;
+};
 
 #endif /* DRIVER_H */
--- a/src/economy.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/economy.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -35,6 +35,7 @@
 #include "newgrf_engine.h"
 #include "newgrf_sound.h"
 #include "newgrf_callbacks.h"
+#include "newgrf_industries.h"
 #include "unmovable.h"
 #include "date.h"
 #include "cargotype.h"
@@ -1233,9 +1234,18 @@
 	/* Found one? */
 	if (best != NULL) {
 		indspec = GetIndustrySpec(best->type);
+		uint16 callback = indspec->callback_flags;
+
 		best->was_cargo_delivered = true;
-		best->cargo_waiting[0] = min(best->cargo_waiting[0] + (num_pieces * indspec->input_cargo_multiplier[accepted_cargo_index][0] / 256), 0xFFFF);
-		best->cargo_waiting[1] = min(best->cargo_waiting[1] + (num_pieces * indspec->input_cargo_multiplier[accepted_cargo_index][1] / 256), 0xFFFF);
+		best->last_cargo_accepted_at = _date;
+
+		if (HASBIT(callback, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HASBIT(callback, CBM_IND_PRODUCTION_256_TICKS)) {
+			best->incoming_cargo_waiting[accepted_cargo_index] = min(num_pieces + best->incoming_cargo_waiting[accepted_cargo_index], 0xFFFF);
+			if (HASBIT(callback, CBM_IND_PRODUCTION_CARGO_ARRIVAL)) IndustryProductionCallback(ind, 0);
+		} else {
+			best->produced_cargo_waiting[0] = min(best->produced_cargo_waiting[0] + (num_pieces * indspec->input_cargo_multiplier[accepted_cargo_index][0] / 256), 0xFFFF);
+			best->produced_cargo_waiting[1] = min(best->produced_cargo_waiting[1] + (num_pieces * indspec->input_cargo_multiplier[accepted_cargo_index][1] / 256), 0xFFFF);
+		}
 	}
 }
 
@@ -1244,7 +1254,6 @@
 	Subsidy *s;
 	TileIndex xy;
 	Pair pair;
-	Player *p;
 
 	/* check if there is an already existing subsidy that applies to us */
 	for (s = _subsidies; s != endof(_subsidies); s++) {
@@ -1290,10 +1299,9 @@
 
 			/* Add a news item */
 			pair = SetupSubsidyDecodeParam(s, 0);
-			InjectDParam(2);
+			InjectDParam(1);
 
-			p = GetPlayer(_current_player);
-			SetDParam(0, p->index);
+			SetDParam(0, _current_player);
 			AddNewsItem(
 				STR_2031_SERVICE_SUBSIDY_AWARDED + _opt.diff.subsidy_multiplier,
 				NEWS_FLAGS(NM_NORMAL, NF_TILE, NT_SUBSIDIES, 0),
--- a/src/engine.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/engine.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -21,6 +21,8 @@
 #include "date.h"
 #include "table/engines.h"
 #include "group.h"
+#include "string.h"
+#include "strings.h"
 
 EngineInfo _engine_info[TOTAL_NUM_ENGINES];
 RailVehicleInfo _rail_vehicle_info[NUM_TRAIN_ENGINES];
@@ -368,6 +370,19 @@
 	}
 }
 
+static bool IsUniqueEngineName(const char *name)
+{
+	char buf[512];
+
+	for (EngineID i = 0; i < TOTAL_NUM_ENGINES; i++) {
+		SetDParam(0, i);
+		GetString(buf, STR_ENGINE_NAME, lastof(buf));
+		if (strcmp(buf, name) == 0) return false;
+	}
+
+	return true;
+}
+
 /** Rename an engine.
  * @param tile unused
  * @param flags operation to perfom
@@ -378,9 +393,11 @@
 {
 	StringID str;
 
-	if (!IsEngineIndex(p1) || _cmd_text[0] == '\0') return CMD_ERROR;
+	if (!IsEngineIndex(p1) || StrEmpty(_cmd_text)) return CMD_ERROR;
 
-	str = AllocateNameUnique(_cmd_text, 0);
+	if (!IsUniqueEngineName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
+
+	str = AllocateName(_cmd_text, 0);
 	if (str == 0) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
--- a/src/fios.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/fios.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -6,7 +6,6 @@
 
 #include "stdafx.h"
 #include "openttd.h"
-#include "hal.h"
 #include "string.h"
 #include "variables.h"
 #include "functions.h"
--- a/src/functions.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/functions.h	Sat Jul 07 09:20:52 2007 +0000
@@ -98,9 +98,6 @@
 void DeleteName(StringID id);
 char *GetName(char *buff, StringID id, const char* last);
 
-/* AllocateNameUnique also tests if the name used is not used anywere else
- * and if it is used, it returns an error. */
-#define AllocateNameUnique(name, skip) RealAllocateName(name, skip, true)
 #define AllocateName(name, skip) RealAllocateName(name, skip, false)
 StringID RealAllocateName(const char *name, byte skip, bool check_double);
 void ConvertNameArray();
--- a/src/genworld_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/genworld_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -36,9 +36,12 @@
 	GLWP_END
 };
 
-static uint _heightmap_x = 0;
-static uint _heightmap_y = 0;
-static StringID _heightmap_str = STR_NULL;
+struct generate_d {
+	uint widget_id;
+	uint x;
+	uint y;
+	char name[64];
+};
 
 extern void SwitchMode(int new_mode);
 
@@ -307,17 +310,17 @@
 			char buffer[512];
 
 			if (_patches_newgame.heightmap_rotation == HM_CLOCKWISE) {
-				SetDParam(0, _heightmap_y);
-				SetDParam(1, _heightmap_x);
+				SetDParam(0, WP(w, generate_d).y);
+				SetDParam(1, WP(w, generate_d).x);
 			} else {
-				SetDParam(0, _heightmap_x);
-				SetDParam(1, _heightmap_y);
+				SetDParam(0, WP(w, generate_d).x);
+				SetDParam(1, WP(w, generate_d).y);
 			}
 			GetString(buffer, STR_HEIGHTMAP_SIZE, lastof(buffer));
 			DrawStringRightAligned(326, 91, STR_HEIGHTMAP_SIZE, 0x10);
 
 			DrawString( 12,  91, STR_HEIGHTMAP_NAME, 0x10);
-			SetDParam(0, _heightmap_str);
+			SetDParamStr(0, WP(w, generate_d).name);
 			DrawStringTruncated(114,  91, STR_ORANGE, 0x10, 326 - 114 - GetStringBoundingBox(buffer).width - 5);
 
 			DrawString( 12, 197, STR_TREE_PLACER, 0);
@@ -364,10 +367,10 @@
 					w,
 					LandscapeGenerationCallback);
 			} else if (mode == GLWP_HEIGHTMAP &&
-					(_heightmap_x * 2 < (1U << _patches_newgame.map_x) ||
-					_heightmap_x / 2 > (1U << _patches_newgame.map_x) ||
-					_heightmap_y * 2 < (1U << _patches_newgame.map_y) ||
-					_heightmap_y / 2 > (1U << _patches_newgame.map_y))) {
+					(WP(w, generate_d).x * 2 < (1U << _patches_newgame.map_x) ||
+					WP(w, generate_d).x / 2 > (1U << _patches_newgame.map_x) ||
+					WP(w, generate_d).y * 2 < (1U << _patches_newgame.map_y) ||
+					WP(w, generate_d).y / 2 > (1U << _patches_newgame.map_y))) {
 				ShowQuery(
 					STR_HEIGHTMAP_SCALE_WARNING_CAPTION,
 					STR_HEIGHTMAP_SCALE_WARNING_MESSAGE,
@@ -389,7 +392,7 @@
 			_left_button_clicked = false;
 			break;
 		case GLAND_START_DATE_TEXT: // Year text
-			WP(w, def_d).data_3 = GLAND_START_DATE_TEXT;
+			WP(w, generate_d).widget_id = GLAND_START_DATE_TEXT;
 			SetDParam(0, _patches_newgame.starting_year);
 			ShowQueryString(STR_CONFIG_PATCHES_INT32, STR_START_DATE_QUERY_CAPT, 8, 100, w, CS_NUMERAL);
 			break;
@@ -404,7 +407,7 @@
 			_left_button_clicked = false;
 			break;
 		case GLAND_SNOW_LEVEL_TEXT: // Snow line text
-			WP(w, def_d).data_3 = GLAND_SNOW_LEVEL_TEXT;
+			WP(w, generate_d).widget_id = GLAND_SNOW_LEVEL_TEXT;
 			SetDParam(0, _patches_newgame.snow_line_height);
 			ShowQueryString(STR_CONFIG_PATCHES_INT32, STR_SNOW_LINE_QUERY_CAPT, 3, 100, w, CS_NUMERAL);
 			break;
@@ -488,7 +491,7 @@
 		if (e->we.edittext.str != NULL) {
 			int32 value = atoi(e->we.edittext.str);
 
-			switch (WP(w, def_d).data_3) {
+			switch (WP(w, generate_d).widget_id) {
 			case GLAND_START_DATE_TEXT:
 				InvalidateWidget(w, GLAND_START_DATE_TEXT);
 				_patches_newgame.starting_year = clamp(value, MIN_YEAR, MAX_YEAR);
@@ -524,25 +527,30 @@
 
 static void _ShowGenerateLandscape(glwp_modes mode)
 {
+	uint x = 0;
+	uint y = 0;
+
 	DeleteWindowByClass(WC_GENERATE_LANDSCAPE);
 
 	/* Always give a new seed if not editor */
 	if (_game_mode != GM_EDITOR) _patches_newgame.generation_seed = InteractiveRandom();
 
 	if (mode == GLWP_HEIGHTMAP) {
-		if (_heightmap_str != STR_NULL) DeleteName(_heightmap_str);
-
-		_heightmap_x = 0;
-		_heightmap_y = 0;
-		_heightmap_str = AllocateName(_file_to_saveload.title, 0);
 		/* If the function returns negative, it means there was a problem loading the heightmap */
-		if (!GetHeightmapDimensions(_file_to_saveload.name, &_heightmap_x, &_heightmap_y))
-			return;
+		if (!GetHeightmapDimensions(_file_to_saveload.name, &x, &y)) return;
 	}
 
 	Window *w = AllocateWindowDescFront((mode == GLWP_HEIGHTMAP) ? &_heightmap_load_desc : &_generate_landscape_desc, mode);
 
-	if (w != NULL) InvalidateWindow(WC_GENERATE_LANDSCAPE, mode);
+	if (w == NULL) return;
+
+	if (mode == GLWP_HEIGHTMAP) {
+		WP(w, generate_d).x = x;
+		WP(w, generate_d).y = y;
+		strecpy(WP(w, generate_d).name, _file_to_saveload.title, lastof(WP(w, generate_d).name));
+	}
+
+	InvalidateWindow(WC_GENERATE_LANDSCAPE, mode);
 }
 
 void ShowGenerateLandscape()
@@ -654,7 +662,7 @@
 			_left_button_clicked = false;
 			break;
 		case CSCEN_START_DATE_TEXT: // Year text
-			WP(w, def_d).data_3 = CSCEN_START_DATE_TEXT;
+			WP(w, generate_d).widget_id = CSCEN_START_DATE_TEXT;
 			SetDParam(0, _patches_newgame.starting_year);
 			ShowQueryString(STR_CONFIG_PATCHES_INT32, STR_START_DATE_QUERY_CAPT, 8, 100, w, CS_NUMERAL);
 			break;
@@ -669,7 +677,7 @@
 			_left_button_clicked = false;
 			break;
 		case CSCEN_FLAT_LAND_HEIGHT_TEXT: // Height level text
-			WP(w, def_d).data_3 = CSCEN_FLAT_LAND_HEIGHT_TEXT;
+			WP(w, generate_d).widget_id = CSCEN_FLAT_LAND_HEIGHT_TEXT;
 			SetDParam(0, _patches_newgame.se_flat_world_height);
 			ShowQueryString(STR_CONFIG_PATCHES_INT32, STR_FLAT_WORLD_HEIGHT_QUERY_CAPT, 3, 100, w, CS_NUMERAL);
 			break;
@@ -688,7 +696,7 @@
 		if (e->we.edittext.str != NULL) {
 			int32 value = atoi(e->we.edittext.str);
 
-			switch (WP(w, def_d).data_3) {
+			switch (WP(w, generate_d).widget_id) {
 			case CSCEN_START_DATE_TEXT:
 				InvalidateWidget(w, CSCEN_START_DATE_TEXT);
 				_patches_newgame.starting_year = clamp(value, MIN_YEAR, MAX_YEAR);
@@ -880,7 +888,6 @@
 
 	/* Percentage is about the number of completed tasks, so 'current - 1' */
 	_tp.percent = percent_table[cls] + (percent_table[cls + 1] - percent_table[cls]) * (_tp.current == 0 ? 0 : _tp.current - 1) / _tp.total;
-	_tp.timer = _realtime_tick;
 
 	if (_network_dedicated) {
 		static uint last_percent = 0;
@@ -909,6 +916,8 @@
 	 *  on the same tile at the same moment. Nasty hack, but that happens
 	 *  if you implement threading afterwards */
 	while (IsGeneratingWorldReadyForPaint()) { CSleep(10); }
+
+	_tp.timer = _realtime_tick;
 }
 
 /**
--- a/src/gfx.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/gfx.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -12,7 +12,6 @@
 #include "gfx.h"
 #include "table/palettes.h"
 #include "table/sprites.h"
-#include "hal.h"
 #include "variables.h"
 #include "table/control_codes.h"
 #include "fontcache.h"
@@ -21,6 +20,7 @@
 #include "zoom.hpp"
 #include "texteff.hpp"
 #include "blitter/factory.hpp"
+#include "video/video_driver.hpp"
 
 byte _dirkeys;        ///< 1 = left, 2 = up, 4 = right, 8 = down
 bool _fullscreen;
@@ -66,7 +66,7 @@
 
 	blitter->ScrollBuffer(_screen.dst_ptr, left, top, width, height, xo, yo);
 	/* This part of the screen is now dirty. */
-	_video_driver->make_dirty(left, top, width, height);
+	_video_driver->MakeDirty(left, top, width, height);
 }
 
 
@@ -834,7 +834,7 @@
 		Blitter *blitter = BlitterFactoryBase::GetCurrentBlitter();
 		_cursor.visible = false;
 		blitter->CopyFromBuffer(blitter->MoveTo(_screen.dst_ptr, _cursor.draw_pos.x, _cursor.draw_pos.y), _cursor_backup, _cursor.draw_size.x, _cursor.draw_size.y);
-		_video_driver->make_dirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y);
+		_video_driver->MakeDirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y);
 	}
 }
 
@@ -886,7 +886,7 @@
 	_cur_dpi = &_screen;
 	DrawSprite(_cursor.sprite, _cursor.pal, _cursor.pos.x, _cursor.pos.y);
 
-	_video_driver->make_dirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y);
+	_video_driver->MakeDirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y);
 
 	_cursor.visible = true;
 	_cursor.dirty = false;
@@ -907,7 +907,7 @@
 
 	DrawOverlappedWindowForAll(left, top, right, bottom);
 
-	_video_driver->make_dirty(left, top, right - left, bottom - top);
+	_video_driver->MakeDirty(left, top, right - left, bottom - top);
 }
 
 void DrawDirtyBlocks()
@@ -1151,12 +1151,12 @@
 {
 	return
 		(_screen.width == w && _screen.height == h) ||
-		_video_driver->change_resolution(w, h);
+		_video_driver->ChangeResolution(w, h);
 }
 
 void ToggleFullScreen(bool fs)
 {
-	_video_driver->toggle_fullscreen(fs);
+	_video_driver->ToggleFullscreen(fs);
 	if (_fullscreen != fs && _num_resolutions == 0) {
 		DEBUG(driver, 0, "Could not find a suitable fullscreen resolution");
 	}
--- a/src/group.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/group.h	Sat Jul 07 09:20:52 2007 +0000
@@ -53,14 +53,6 @@
 	return (index == DEFAULT_GROUP);
 }
 
-static inline StringID GetGroupName(GroupID index)
-{
-	if (!IsValidGroupID(index)) return STR_NULL;
-
-	return GetGroup(index)->string_id;
-}
-
-
 #define FOR_ALL_GROUPS_FROM(g, start) for (g = GetGroup(start); g != NULL; g = (g->index + 1U < GetGroupPoolSize()) ? GetGroup(g->index + 1) : NULL) if (IsValidGroup(g))
 #define FOR_ALL_GROUPS(g) FOR_ALL_GROUPS_FROM(g, 0)
 
--- a/src/group_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/group_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -4,6 +4,7 @@
 
 #include "stdafx.h"
 #include "openttd.h"
+#include "variables.h"
 #include "functions.h"
 #include "player.h"
 #include "table/strings.h"
@@ -17,6 +18,7 @@
 #include "string.h"
 #include "window.h"
 #include "vehicle_gui.h"
+#include "strings.h"
 
 /**
  * Update the num engines of a groupID. Decrease the old one and increase the new one
@@ -159,6 +161,19 @@
 	return CommandCost();
 }
 
+static bool IsUniqueGroupName(const char *name)
+{
+	const Group *g;
+	char buf[512];
+
+	FOR_ALL_GROUPS(g) {
+		SetDParam(0, g->index);
+		GetString(buf, STR_GROUP_NAME, lastof(buf));
+		if (strcmp(buf, name) == 0) return false;
+	}
+
+	return true;
+}
 
 /**
  * Rename a group
@@ -174,6 +189,8 @@
 	Group *g = GetGroup(p1);
 	if (g->owner != _current_player) return CMD_ERROR;
 
+	if (!IsUniqueGroupName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
+
 	/* Create the name */
 	StringID str = AllocateName(_cmd_text, 0);
 	if (str == STR_NULL) return CMD_ERROR;
--- a/src/group_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/group_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -531,17 +531,7 @@
 					gv->vehicle_sel = v->index;
 
 					if (IsValidVehicle(v)) {
-						CursorID image;
-
-						switch (gv->vehicle_type) {
-							case VEH_TRAIN:    image = GetTrainImage(v, DIR_W);    break;
-							case VEH_ROAD:     image = GetRoadVehImage(v, DIR_W);  break;
-							case VEH_SHIP:     image = GetShipImage(v, DIR_W);     break;
-							case VEH_AIRCRAFT: image = GetAircraftImage(v, DIR_W); break;
-							default: NOT_REACHED(); break;
-						}
-
-						SetObjectToPlaceWnd(image, GetVehiclePalette(v), 4, w);
+						SetObjectToPlaceWnd(v->GetImage(DIR_W), GetVehiclePalette(v), 4, w);
 					}
 
 					SetWindowDirty(w);
--- a/src/hal.h	Wed Jun 27 01:01:16 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/* $Id$ */
-
-/** @file hal.h Hardware Abstraction Layer declarations */
-
-#ifndef HAL_H
-#define HAL_H
-
-struct HalCommonDriver {
-	const char *(*start)(const char * const *parm);
-	void (*stop)();
-};
-
-struct HalVideoDriver {
-	const char *(*start)(const char * const *parm);
-	void (*stop)();
-	void (*make_dirty)(int left, int top, int width, int height);
-	void (*main_loop)();
-	bool (*change_resolution)(int w, int h);
-	void (*toggle_fullscreen)(bool fullscreen);
-};
-
-struct HalSoundDriver {
-	const char *(*start)(const char * const *parm);
-	void (*stop)();
-};
-
-struct HalMusicDriver {
-	const char *(*start)(const char * const *parm);
-	void (*stop)();
-
-	void (*play_song)(const char *filename);
-	void (*stop_song)();
-	bool (*is_song_playing)();
-	void (*set_volume)(byte vol);
-};
-
-extern HalMusicDriver *_music_driver;
-extern HalSoundDriver *_sound_driver;
-extern HalVideoDriver *_video_driver;
-
-enum DriverType {
-	VIDEO_DRIVER = 0,
-	SOUND_DRIVER = 1,
-	MUSIC_DRIVER = 2,
-};
-
-#endif /* HAL_H */
--- a/src/industry.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/industry.h	Sat Jul 07 09:20:52 2007 +0000
@@ -28,26 +28,34 @@
 };
 
 enum IndustryLifeType {
-	INDUSTRYLIFE_NOT_CLOSABLE,     ///< Industry can never close
-	INDUSTRYLIFE_PRODUCTION,       ///< Industry can close and change of production
-	INDUSTRYLIFE_CLOSABLE,         ///< Industry can only close (no production change)
+	INDUSTRYLIFE_BLACK_HOLE =      0, ///< Like power plants and banks
+	INDUSTRYLIFE_EXTRACTIVE = 1 << 0, ///< Like mines
+	INDUSTRYLIFE_ORGANIC    = 1 << 1, ///< Like forests
+	INDUSTRYLIFE_PROCESSING = 1 << 2, ///< Like factories
 };
 
 /* Procedures that can be run to check whether an industry may
  * build at location the given to the procedure */
 enum CheckProc {
-	CHECK_NOTHING    = 0,
-	CHECK_FOREST     = 1,
-	CHECK_REFINERY   = 2,
-	CHECK_FARM       = 3,
-	CHECK_PLANTATION = 4,
-	CHECK_WATER      = 5,
-	CHECK_LUMBERMILL = 6,
-	CHECK_BUBBLEGEN  = 7,
-	CHECK_OIL_RIG    = 8,
+	CHECK_NOTHING,
+	CHECK_FOREST,
+	CHECK_REFINERY,
+	CHECK_FARM,
+	CHECK_PLANTATION,
+	CHECK_WATER,
+	CHECK_LUMBERMILL,
+	CHECK_BUBBLEGEN,
+	CHECK_OIL_RIG,
 	CHECK_END,
 };
 
+enum IndustryConstructionType {
+	ICT_UNKNOWN,
+	ICT_NORMAL_GAMEPLAY,
+	ICT_MAP_GENERATION,
+	ICT_SCENARIO_EDITOR
+};
+
 enum IndustyBehaviour {
 	INDUSTRYBEH_NONE                  =      0,
 	INDUSTRYBEH_PLANT_FIELDS          = 1 << 0,  ///< periodically plants fileds around itself (temp and artic farms)
@@ -57,7 +65,7 @@
 	INDUSTRYBEH_ONLY_INTOWN           = 1 << 4,  ///< can only be built in towns (arctic/tropic banks, water tower)
 	INDUSTRYBEH_ONLY_NEARTOWN         = 1 << 5,  ///< is always built near towns (toy shop)
 	INDUSTRYBEH_PLANT_ON_BUILT        = 1 << 6,  ///< Fields are planted around when built (all farms)
-	INDUSTRYBEH_DONT_INCR_PROD        = 1 << 7,  ///< do not increase production (oil wells)
+	INDUSTRYBEH_DONT_INCR_PROD        = 1 << 7,  ///< do not increase production (oil wells) in the temperate climate
 	INDUSTRYBEH_BEFORE_1950           = 1 << 8,  ///< can only be built before 1950 (oil wells)
 	INDUSTRYBEH_AFTER_1960            = 1 << 9,  ///< can only be built after 1960 (oil rigs)
 	INDUSTRYBEH_AI_AIRSHIP_ROUTES     = 1 << 10, ///< ai will attempt to establish air/ship routes to this industry (oil rig)
@@ -77,7 +85,8 @@
 	byte width;
 	byte height;
 	const Town *town;                   ///< Nearest town
-	uint16 cargo_waiting[2];            ///< amount of cargo produced per cargo
+	uint16 produced_cargo_waiting[2];   ///< amount of cargo produced per cargo
+	uint16 incoming_cargo_waiting[3];   ///< incoming cargo waiting to be processed
 	byte production_rate[2];            ///< production rate for each cargo
 	byte prod_level;                    ///< general production level
 	uint16 this_month_production[2];    ///< stats of this month's production per cargo
@@ -94,6 +103,11 @@
 	byte was_cargo_delivered;           ///< flag that indicate this has been the closest industry chosen for cargo delivery by a station. see DeliverGoodsToIndustry
 
 	IndustryID index;                   ///< index of the industry in the pool of industries
+
+	OwnerByte founder;                  ///< Founder of the industry
+	Date construction_date;             ///< Date of the construction of the industry
+	uint8 construction_type;            ///< Way the industry was constructed (@see IndustryConstructionType)
+	Date last_cargo_accepted_at;        ///< Last day cargo was accepted by this industry
 };
 
 struct IndustryTileTable {
@@ -107,7 +121,7 @@
 	uint16 local_id;                      ///< id defined by the grf file for this industry
 	struct SpriteGroup *spritegroup;      ///< pointer to the different sprites of the industry
 	const struct GRFFile *grffile;        ///< grf file that introduced this industry
-	uint8 override;                       ///< id of the entity been replaced by
+	uint16 override;                      ///< id of the entity been replaced by
 };
 
 /**
@@ -116,7 +130,9 @@
 struct IndustrySpec {
 	const IndustryTileTable *const *table;///< List of the tiles composing the industry
 	byte num_table;                       ///< Number of elements in the table
-	uint16 cost_multiplier;               ///< Base cost multiplier.
+	uint8 cost_multiplier;                ///< Base cost multiplier.
+	uint16 raw_industry_cost_multiplier;  ///< Multiplier for the raw industries cost
+	uint32 prospecting_chance;            ///< Chance prospecting succeeds
 	IndustryType conflicting[3];          ///< Industries this industry cannot be close to
 	byte check_proc;                      ///< Index to a procedure to check for conflicting circumstances
 	CargoID produced_cargo[2];
@@ -143,6 +159,18 @@
 	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
+
+	/**
+	 * Is an industry with the spec a raw industry?
+	 * @return true if it should be handled as a raw industry
+	 */
+	bool IsRawIndustry() const;
+
+	/**
+	 * Get the cost for constructing this industry
+	 * @return the cost (inflation corrected etc)
+	 */
+	Money GetConstructionCost() const;
 };
 
 /**
--- a/src/industry_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/industry_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -30,6 +30,7 @@
 #include "water_map.h"
 #include "tree_map.h"
 #include "cargotype.h"
+#include "newgrf_industries.h"
 #include "newgrf_industrytiles.h"
 #include "newgrf_callbacks.h"
 
@@ -377,9 +378,9 @@
 	const IndustrySpec *indspec = GetIndustrySpec(i->type);
 	uint cw, am;
 
-	cw = min(i->cargo_waiting[0], 255);
+	cw = min(i->produced_cargo_waiting[0], 255);
 	if (cw > indspec->minimal_cargo/* && i->produced_cargo[0] != 0xFF*/) {
-		i->cargo_waiting[0] -= cw;
+		i->produced_cargo_waiting[0] -= cw;
 
 		/* fluctuating economy? */
 		if (_economy.fluct <= 0) cw = (cw + 1) / 2;
@@ -400,9 +401,9 @@
 		}
 	}
 
-	cw = min(i->cargo_waiting[1], 255);
+	cw = min(i->produced_cargo_waiting[1], 255);
 	if (cw > indspec->minimal_cargo) {
-		i->cargo_waiting[1] -= cw;
+		i->produced_cargo_waiting[1] -= cw;
 
 		if (_economy.fluct <= 0) cw = (cw + 1) / 2;
 
@@ -791,7 +792,9 @@
 
 static void ChangeTileOwner_Industry(TileIndex tile, PlayerID old_player, PlayerID new_player)
 {
-	/* not used */
+	/* If the founder merges, the industry was created by the merged company */
+	Industry *i = GetIndustryByTile(tile);
+	if (i->founder == old_player) i->founder = (new_player == PLAYER_SPECTATOR) ? OWNER_NONE : new_player;
 }
 
 static const byte _plantfarmfield_type[] = {1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6};
@@ -943,7 +946,7 @@
 	if (!IsIndustryCompleted(tile)) return;  ///< Can't proceed if not completed
 
 	if (CircularTileSearch(tile, 40, SearchLumberMillTrees, 0)) ///< 40x40 tiles  to search
-		i->cargo_waiting[0] = min(0xffff, i->cargo_waiting[0] + 45); ///< Found a tree, add according value to waiting cargo
+		i->produced_cargo_waiting[0] = min(0xffff, i->produced_cargo_waiting[0] + 45); ///< Found a tree, add according value to waiting cargo
 }
 
 static void ProduceIndustryGoods(Industry *i)
@@ -965,9 +968,11 @@
 
 	/* produce some cargo */
 	if ((i->counter & 0xFF) == 0) {
+		if (HASBIT(indsp->callback_flags, CBM_IND_PRODUCTION_256_TICKS)) IndustryProductionCallback(i, 1);
+
 		IndustyBehaviour indbehav = indsp->behaviour;
-		i->cargo_waiting[0] = min(0xffff, i->cargo_waiting[0] + i->production_rate[0]);
-		i->cargo_waiting[1] = min(0xffff, i->cargo_waiting[1] + i->production_rate[1]);
+		i->produced_cargo_waiting[0] = min(0xffff, i->produced_cargo_waiting[0] + i->production_rate[0]);
+		i->produced_cargo_waiting[1] = min(0xffff, i->produced_cargo_waiting[1] + i->production_rate[1]);
 
 		if (indbehav & INDUSTRYBEH_PLANT_FIELDS) {
 			MaybePlantFarmField(i);
@@ -1391,8 +1396,11 @@
 	r = Random();
 	i->random_color = GB(r, 8, 4);
 	i->counter = GB(r, 0, 12);
-	i->cargo_waiting[0] = 0;
-	i->cargo_waiting[1] = 0;
+	i->produced_cargo_waiting[0] = 0;
+	i->produced_cargo_waiting[1] = 0;
+	i->incoming_cargo_waiting[0] = 0;
+	i->incoming_cargo_waiting[1] = 0;
+	i->incoming_cargo_waiting[2] = 0;
 	i->this_month_production[0] = 0;
 	i->this_month_production[1] = 0;
 	i->this_month_transported[0] = 0;
@@ -1405,6 +1413,10 @@
 	i->last_prod_year = _cur_year;
 	i->last_month_production[0] = i->production_rate[0] * 8;
 	i->last_month_production[1] = i->production_rate[1] * 8;
+	i->founder = _current_player;
+	i->construction_date = _date;
+	i->construction_type = (_game_mode == GM_EDITOR) ? ICT_SCENARIO_EDITOR :
+			(_generating_world ? ICT_MAP_GENERATION : ICT_NORMAL_GAMEPLAY);
 
 	if (!_generating_world) i->last_month_production[0] = i->last_month_production[1] = 0;
 
@@ -1500,26 +1512,36 @@
 	}
 
 	/* 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)
-	 * Exclude the lumber mill (only "raw" industry that can be built) */
-	if (!_patches.build_rawmaterial_ind &&
-			indspec->accepts_cargo[0] == CT_INVALID &&
-			indspec->accepts_cargo[1] == CT_INVALID &&
-			indspec->accepts_cargo[2] == CT_INVALID &&
-			!(indspec->behaviour & INDUSTRYBEH_CUT_TREES)) {
+	 * Raw material industries are industries that do not accept cargo (at least for now) */
+	if (_patches.raw_industry_construction == 0 && indspec->IsRawIndustry()) {
 		return CMD_ERROR;
 	}
 
-	num = indspec->num_table;
-	itt = indspec->table;
+	if (_patches.raw_industry_construction == 2 && indspec->IsRawIndustry()) {
+		if (flags & DC_EXEC) {
+			/* Prospecting has a chance to fail, however we cannot guarantee that something can
+			 * be built on the map, so the chance gets lower when the map is fuller, but there
+			 * is nothing we can really do about that. */
+			if (Random() <= indspec->prospecting_chance) {
+				for (int i = 0; i < 5000; i++) {
+					const IndustryTileTable *it = indspec->table[RandomRange(indspec->num_table)];
+					if (CreateNewIndustryHelper(RandomTile(), p1, flags, indspec, it) != NULL) break;
+				}
+			}
+		}
+	} else {
+		num = indspec->num_table;
+		itt = indspec->table;
 
-	do {
-		if (--num < 0) return_cmd_error(STR_0239_SITE_UNSUITABLE);
-	} while (!CheckIfIndustryTilesAreFree(tile, it = itt[num], p1));
 
-	if (CreateNewIndustryHelper(tile, p1, flags, indspec, it) == NULL) return CMD_ERROR;
+		do {
+			if (--num < 0) return_cmd_error(STR_0239_SITE_UNSUITABLE);
+		} while (!CheckIfIndustryTilesAreFree(tile, it = itt[num], p1));
 
-	return CommandCost((_price.build_industry >> 8) * indspec->cost_multiplier);
+		if (CreateNewIndustryHelper(tile, p1, flags, indspec, it) == NULL) return CMD_ERROR;
+	}
+
+	return CommandCost(indspec->GetConstructionCost());
 }
 
 
@@ -1622,56 +1644,52 @@
 	int j;
 	const IndustrySpec *indspec = GetIndustrySpec(i->type);
 
-	switch (indspec->life_type) {
-		case INDUSTRYLIFE_NOT_CLOSABLE:
-			return;
-
-		case INDUSTRYLIFE_CLOSABLE:
-			if ((byte)(_cur_year - i->last_prod_year) < 5 || !CHANCE16(1, 180))
-				closeit = false;
-			break;
-
-		default: /* INDUSTRY_PRODUCTION */
-			for (j = 0; j < 2 && indspec->produced_cargo[j] != CT_INVALID; j++){
-				uint32 r = Random();
-				int old_prod, new_prod, percent;
-				int mag;
-
-				new_prod = old_prod = i->production_rate[j];
-
-				if (CHANCE16I(20, 1024, r)) new_prod -= max(((RandomRange(50) + 10) * old_prod) >> 8, 1U);
-				/* Chance of increasing becomes better when more is transported */
-				if (CHANCE16I(20 + (i->last_month_pct_transported[j] * 20 >> 8), 1024, r >> 16) &&
-						(indspec->behaviour & INDUSTRYBEH_DONT_INCR_PROD) == 0) {
-					new_prod += max(((RandomRange(50) + 10) * old_prod) >> 8, 1U);
-				}
+	if (indspec->life_type == INDUSTRYLIFE_BLACK_HOLE) return;
 
-				new_prod = clamp(new_prod, 1, 255);
-				/* Do not stop closing the industry when it has the lowest possible production rate */
-				if (new_prod == old_prod && old_prod > 1) {
-					closeit = false;
-					continue;
-				}
-
-				percent = new_prod * 100 / old_prod - 100;
-				i->production_rate[j] = new_prod;
-
-				/* Close the industry when it has the lowest possible production rate */
-				if (new_prod > 1) closeit = false;
+	if ((indspec->life_type & (INDUSTRYLIFE_ORGANIC | INDUSTRYLIFE_EXTRACTIVE)) != 0) {
+		for (j = 0; j < 2 && indspec->produced_cargo[j] != CT_INVALID; j++){
+			uint32 r = Random();
+			int old_prod, new_prod, percent;
+			int mag;
 
-				mag = abs(percent);
-				if (mag >= 10) {
-					SetDParam(2, mag);
-					SetDParam(0, GetCargo(indspec->produced_cargo[j])->name);
-					SetDParam(1, i->index);
-					AddNewsItem(
-						percent >= 0 ? STR_INDUSTRY_PROD_GOUP : STR_INDUSTRY_PROD_GODOWN,
-						NEWS_FLAGS(NM_THIN, NF_VIEWPORT | NF_TILE, NT_ECONOMY, 0),
-						i->xy + TileDiffXY(1, 1), 0
-					);
-				}
+			new_prod = old_prod = i->production_rate[j];
+
+			if (CHANCE16I(20, 1024, r)) new_prod -= max(((RandomRange(50) + 10) * old_prod) >> 8, 1U);
+			/* Chance of increasing becomes better when more is transported */
+			if (CHANCE16I(20 + (i->last_month_pct_transported[j] * 20 >> 8), 1024, r >> 16) &&
+					((indspec->behaviour & INDUSTRYBEH_DONT_INCR_PROD) == 0 || _opt.landscape != LT_TEMPERATE)) {
+				new_prod += max(((RandomRange(50) + 10) * old_prod) >> 8, 1U);
 			}
-			break;
+
+			new_prod = clamp(new_prod, 1, 255);
+			/* Do not stop closing the industry when it has the lowest possible production rate */
+			if (new_prod == old_prod && old_prod > 1) {
+				closeit = false;
+				continue;
+			}
+
+			percent = (old_prod == 0) ? 100 : (new_prod * 100 / old_prod - 100);
+			i->production_rate[j] = new_prod;
+
+			/* Close the industry when it has the lowest possible production rate */
+			if (new_prod > 1) closeit = false;
+
+			mag = abs(percent);
+			if (mag >= 10) {
+				SetDParam(2, mag);
+				SetDParam(0, GetCargo(indspec->produced_cargo[j])->name);
+				SetDParam(1, i->index);
+				AddNewsItem(
+					percent >= 0 ? STR_INDUSTRY_PROD_GOUP : STR_INDUSTRY_PROD_GODOWN,
+					NEWS_FLAGS(NM_THIN, NF_VIEWPORT | NF_TILE, NT_ECONOMY, 0),
+					i->xy + TileDiffXY(1, 1), 0
+				);
+			}
+		}
+	}
+
+	if ((indspec->life_type & INDUSTRYLIFE_PROCESSING) != 0) {
+		if ((byte)(_cur_year - i->last_prod_year) < 5 || !CHANCE16(1, 180)) closeit = false;
 	}
 
 	/* If industry will be closed down, show this */
@@ -1780,64 +1798,61 @@
 
 static void ChangeIndustryProduction(Industry *i)
 {
-	bool only_decrease = false;
 	StringID str = STR_NULL;
 	int type = i->type;
 	const IndustrySpec *indspec = GetIndustrySpec(type);
 
-	switch (indspec->life_type) {
-		case INDUSTRYLIFE_NOT_CLOSABLE:
-			return;
-
-		case INDUSTRYLIFE_PRODUCTION:
-			/* decrease or increase */
-			if ((indspec->behaviour & INDUSTRYBEH_DONT_INCR_PROD) && _opt.landscape == LT_TEMPERATE)
-				only_decrease = true;
-
-			if (only_decrease || CHANCE16(1, 3)) {
-				/* If you transport > 60%, 66% chance we increase, else 33% chance we increase */
-				if (!only_decrease && (i->last_month_pct_transported[0] > 153) != CHANCE16(1, 3)) {
-					/* Increase production */
-					if (i->prod_level != 0x80) {
-						byte b;
-
-						i->prod_level <<= 1;
+	if (indspec->life_type == INDUSTRYLIFE_BLACK_HOLE) return;
 
-						b = i->production_rate[0] * 2;
-						if (i->production_rate[0] >= 128)
-							b = 0xFF;
-						i->production_rate[0] = b;
-
-						b = i->production_rate[1] * 2;
-						if (i->production_rate[1] >= 128)
-							b = 0xFF;
-						i->production_rate[1] = b;
+	if ((indspec->life_type & (INDUSTRYLIFE_ORGANIC | INDUSTRYLIFE_EXTRACTIVE)) != 0) {
+		bool only_decrease = false;
 
-						str = indspec->production_up_text;
-					}
+		/* decrease or increase */
+		if ((indspec->behaviour & INDUSTRYBEH_DONT_INCR_PROD) && _opt.landscape == LT_TEMPERATE)
+			only_decrease = true;
+
+		if (only_decrease || CHANCE16(1, 3)) {
+			/* If you transport > 60%, 66% chance we increase, else 33% chance we increase */
+			if (!only_decrease && (i->last_month_pct_transported[0] > 153) != CHANCE16(1, 3)) {
+				/* Increase production */
+				if (i->prod_level != 0x80) {
+					byte b;
+
+					i->prod_level <<= 1;
+
+					b = i->production_rate[0] * 2;
+					if (i->production_rate[0] >= 128)
+						b = 0xFF;
+					i->production_rate[0] = b;
+
+					b = i->production_rate[1] * 2;
+					if (i->production_rate[1] >= 128)
+						b = 0xFF;
+					i->production_rate[1] = b;
+
+					str = indspec->production_up_text;
+				}
+			} else {
+				/* Decrease production */
+				if (i->prod_level == 4) {
+					i->prod_level = 0;
+					str = indspec->closure_text;
 				} else {
-					/* Decrease production */
-					if (i->prod_level == 4) {
-						i->prod_level = 0;
-						str = indspec->closure_text;
-					} else {
-						i->prod_level >>= 1;
-						i->production_rate[0] = (i->production_rate[0] + 1) >> 1;
-						i->production_rate[1] = (i->production_rate[1] + 1) >> 1;
+					i->prod_level >>= 1;
+					i->production_rate[0] = (i->production_rate[0] + 1) >> 1;
+					i->production_rate[1] = (i->production_rate[1] + 1) >> 1;
 
-						str = indspec->production_down_text;
-					}
+					str = indspec->production_down_text;
 				}
 			}
-			break;
-
-		case INDUSTRYLIFE_CLOSABLE:
-			/* maybe close */
-			if ( (byte)(_cur_year - i->last_prod_year) >= 5 && CHANCE16(1, 2)) {
-				i->prod_level = 0;
-				str = indspec->closure_text;
-			}
-			break;
+		}
+	}
+	if (indspec->life_type & INDUSTRYLIFE_PROCESSING) {
+		/* maybe close */
+		if ( (byte)(_cur_year - i->last_prod_year) >= 5 && CHANCE16(1, 2)) {
+			i->prod_level = 0;
+			str = indspec->closure_text;
+		}
 	}
 
 	if (str != STR_NULL) {
@@ -1882,6 +1897,23 @@
 	_industry_sound_tile = 0;
 }
 
+bool IndustrySpec::IsRawIndustry() const
+{
+	/* Lumber mills are extractive/organic, but can always be built like a non-raw industry */
+	return (this->life_type & (INDUSTRYLIFE_EXTRACTIVE | INDUSTRYLIFE_ORGANIC)) != 0 &&
+			(this->behaviour & INDUSTRYBEH_CUT_TREES) == 0;
+}
+
+Money IndustrySpec::GetConstructionCost() const
+{
+	return (_price.build_industry *
+			(_patches.raw_industry_construction == 1 && this->IsRawIndustry() ?
+					this->raw_industry_cost_multiplier :
+					this->cost_multiplier
+			)) >> 8;
+}
+
+
 extern const TileTypeProcs _tile_type_industry_procs = {
 	DrawTile_Industry,           /* draw_tile_proc */
 	GetSlopeZ_Industry,          /* get_slope_z_proc */
@@ -1905,7 +1937,8 @@
 	    SLE_VAR(Industry, height,                     SLE_UINT8),
 	    SLE_REF(Industry, town,                       REF_TOWN),
 	SLE_CONDNULL( 2, 2, 60),       ///< used to be industry's produced_cargo
-	    SLE_ARR(Industry, cargo_waiting,              SLE_UINT16, 2),
+	SLE_CONDARR(Industry, incoming_cargo_waiting,     SLE_UINT16, 3,              70, SL_MAX_VERSION),
+	    SLE_ARR(Industry, produced_cargo_waiting,     SLE_UINT16, 2),
 	    SLE_ARR(Industry, production_rate,            SLE_UINT8,  2),
 	SLE_CONDNULL( 3, 2, 60),       ///< used to be industry's accepts_cargo
 	    SLE_VAR(Industry, prod_level,                 SLE_UINT8),
@@ -1924,6 +1957,11 @@
 	SLE_CONDVAR(Industry, last_prod_year,             SLE_INT32,                 31, SL_MAX_VERSION),
 	    SLE_VAR(Industry, was_cargo_delivered,        SLE_UINT8),
 
+	SLE_CONDVAR(Industry, owner,                      SLE_UINT8,                 70, SL_MAX_VERSION),
+	SLE_CONDVAR(Industry, construction_date,          SLE_INT32,                 70, SL_MAX_VERSION),
+	SLE_CONDVAR(Industry, construction_type,          SLE_UINT8,                 70, SL_MAX_VERSION),
+	SLE_CONDVAR(Industry, last_cargo_accepted_at,     SLE_INT32,                 70, SL_MAX_VERSION),
+
 	/* reserve extra space in savegame here. (currently 32 bytes) */
 	SLE_CONDNULL(32, 2, SL_MAX_VERSION),
 
--- a/src/industry_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/industry_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -39,7 +39,7 @@
 		if (_thd.place_mode == 1 && _thd.window_class == WC_BUILD_INDUSTRY) {
 			int ind_type = _build_industry_types[_opt_ptr->landscape][WP(w, def_d).data_1];
 
-			SetDParam(0, (_price.build_industry >> 8) * GetIndustrySpec(ind_type)->cost_multiplier);
+			SetDParam(0, GetIndustrySpec(ind_type)->GetConstructionCost());
 			DrawStringCentered(85, w->height - 21, STR_482F_COST, 0);
 		}
 		break;
@@ -274,7 +274,7 @@
 void ShowBuildIndustryWindow()
 {
 	if (!IsValidPlayer(_current_player)) return;
-	AllocateWindowDescFront(_industry_window_desc[_patches.build_rawmaterial_ind][_opt_ptr->landscape], 0);
+	AllocateWindowDescFront(_industry_window_desc[(_patches.raw_industry_construction == 0) ? 0 : 1][_opt_ptr->landscape], 0);
 }
 
 static inline bool isProductionMinimum(const Industry *i, int pt) {
--- a/src/lang/american.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/american.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Deliver cargo to a station only when there is a demand: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Allow building very long bridges: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Allow goto depot orders: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Allow constructing raw material producing industries: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Allow multiple similar industries per town: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industries of the same type can be built close to each other: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Always show long date in the status bar: {ORANGE}{STRING}
@@ -1106,7 +1105,16 @@
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Use loading indicators: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Enable timetabling for vehicles: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Show timetable in ticks rather than days: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Default rail type (after new game/game load): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Normal Rail
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Electrified Rail
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Monorail
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Maglev
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :First available
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Last available
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Most used
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Show building tools when no suitable vehicles are available: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Max trains per player: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Max road vehicles per player: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Max aircraft per player: {ORANGE}{STRING}
@@ -2765,6 +2773,10 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :This vehicle is currently running on time
 STR_TIMETABLE_STATUS_LATE                                       :This vehicle is currently running {STRING} late
 STR_TIMETABLE_STATUS_EARLY                                      :This vehicle is currently running {STRING} early
+STR_TIMETABLE_TOTAL_TIME                                        :This timetable will take {STRING} to complete
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :This timetable will take at least {STRING} to complete (not all timetabled)
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Autofill
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Fill the timetable automatically with the values from the first journey
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Road vehicle in the way
@@ -3339,7 +3351,17 @@
 STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR                         :{TINYFONT}{BLACK}Profit this year: {GREEN}{CURRENCY} {BLACK}(last year: {RED}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Profit this year: {RED}{CURRENCY} {BLACK}(last year: {RED}{CURRENCY}{BLACK})
 
+STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
 STR_GROUP_NAME                                                  :{GROUP}
+STR_PLAYER_NAME                                                 :{PLAYERNAME}
+STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Name must be unique
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Go to next sign
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Go to previous sign
+
 ########
--- a/src/lang/brazilian_portuguese.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/brazilian_portuguese.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1036,7 +1036,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Somente entregar carga a uma estação quando houver procura: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Permitir a construção de pontes muito longas: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Permitir ordens de ir para o depósito: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Permitir construção de indústrias de matérias-primas: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Método manual de constução de indústria primária: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :nenhum
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :como as outras indústrias
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :em prospecção
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Permitir várias indústrias semelhantes por cidade: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Indústrias do mesmo tipo podem ser construídas próximas: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Sempre exibir a data completa na barra de estado: {ORANGE}{STRING}
@@ -1117,6 +1120,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Último disponível
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Mais utilizado
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Exibe ferramentas de construção na falta de veículos adequados: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Máximo de trens por jogador: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Máximo de automóveis por jogador: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Máximo de aeronaves por jogador: {ORANGE}{STRING}
@@ -2777,6 +2781,8 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :Esse veículo está no horário
 STR_TIMETABLE_STATUS_LATE                                       :Esse veículo está {STRING} atrasado
 STR_TIMETABLE_STATUS_EARLY                                      :Esse veículo está {STRING} adiantado
+STR_TIMETABLE_TOTAL_TIME                                        :Esse horário será completo em {STRING}
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Esse horário será completo em no mínimo {STRING} (nem todos agendados)
 STR_TIMETABLE_AUTOFILL                                          :{BLACK}Autopreencher
 STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Preenche a tabela de horários com os horários da primeira viagem
 
@@ -3360,4 +3366,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Nome deve ser único
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Próxima Placa
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Placa anterior
+
 ########
--- a/src/lang/bulgarian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/bulgarian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1036,7 +1036,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Доставяне на стока до станция само ако има търсене: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Строене на много дълги мостове: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Сервиз в маршрута: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Позволяване израждане на промишленост добиваща суровини: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Няколко еднакви индустрии на град: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Индустрии от еднакъв тип могат да бъдат строени близо една до друга: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Показване на дълга дата в статус бара: {ORANGE}{STRING}
@@ -1050,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}
 
@@ -1090,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                                :Нито една
@@ -1103,6 +1104,14 @@
 STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER                       :{LTBLUE}Scrollwheel скорост на картата: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Автоматична пауза стартирайки нова игра: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}Използваи напредналиат списък на превозни средства: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Използвай товарни индикатори: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Включи времеслуженето на ПС-та: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Покажи времеслуженето в случаи, а не в дни: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Стандартни релси (след нова игра/отваряне на запазена игра): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Нормални релси
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Електрифицирани релси
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Еднорелси
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Магниторелси
 
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Макс. влакове на играч: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Макс. брой коли на играч: {ORANGE}{STRING}
@@ -3294,6 +3303,14 @@
 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})
 
+STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
+STR_GROUP_NAME                                                  :{GROUP}
+STR_PLAYER_NAME                                                 :{PLAYERNAME}
+STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+
+#### Improved sign GUI
+
 ########
--- a/src/lang/catalan.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/catalan.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Entrega càrreges en una estació només quan ho demana: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Permet construir ponts molt llargs: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Permet ordres anar a cotxeres: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Permet fabricar material no processat en indústries: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Permet vàries indústries similars per població: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Permet construir a prop indústries del mateix tipus: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Mostra sempre la data llarga a la barra d'estat: {ORANGE}{STRING}
@@ -1048,7 +1047,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_ADJACENT_STATIONS                            :{LTBLUE}Permet construir estacions annexes: {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_SMALL_AIRPORTS                               :{LTBLUE}Permet sempre aeroports petits: {ORANGE}{STRING}
 
@@ -1115,6 +1114,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :La darrera disponible
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :La més utilitzada
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Mostra les eines de construcció quan no hi hagi disponibles vehicles adequats: {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}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Max aeronaus per jugador: {ORANGE}{STRING}
@@ -2773,6 +2773,8 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :Actualment aquest vehicle és puntual
 STR_TIMETABLE_STATUS_LATE                                       :Actualment aquest vehicle va {STRING} tard
 STR_TIMETABLE_STATUS_EARLY                                      :Actualment aquest vehicle va {STRING} d'hora
+STR_TIMETABLE_TOTAL_TIME                                        :L'horari tardarà {STRING} a complir-se
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :L'horari tardarà almenys {STRING} a complir-se (no tot està planificat)
 STR_TIMETABLE_AUTOFILL                                          :{BLACK}Autoomple
 STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Omple l'horari automàticament amb els valors del primer viatge
 
@@ -2852,7 +2854,7 @@
 STR_9804_NEW_SHIPS                                              :{BLACK}Nous Vaixells
 STR_9805_SHIPS                                                  :{WHITE}{COMPANY} - {COMMA} Vaixells
 STR_9808_NEW_SHIPS                                              :{WHITE}Nous Vaixells
-STR_9809_BUILD_SHIP                                             :{BLACK}Construeix un Vaixell
+STR_9809_BUILD_SHIP                                             :{BLACK}Construeix Vaixell
 STR_CLONE_SHIP                                                  :{BLACK}Clona Vaixell
 STR_CLONE_SHIP_INFO                                             :{BLACK}Fa una còpia del vaixell. Control-Clic compartirà les ordres
 STR_CLONE_SHIP_DEPOT_INFO                                       :{BLACK}Fa una còpia del vaixell. Prem aquest botó i després en un vaixell dins o fora les drassanes. Control-Clic compartirà les ordres
@@ -2924,7 +2926,7 @@
 STR_CLONE_AIRCRAFT_INFO                                         :{BLACK}Fa una còpia de l'aeronau. Control-Clic compartirà les ordres
 STR_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW                           :{BLACK}Fa una còpia de l'aeronau. Prem aquest botó i després en una aeronau dins o fora l'hangar. Control-Clic compartirà les ordres
 STR_A005_NEW_AIRCRAFT                                           :{WHITE}Nova Aeronau
-STR_A006_BUILD_AIRCRAFT                                         :{BLACK}Construeix una Aeronau
+STR_A006_BUILD_AIRCRAFT                                         :{BLACK}Construeix Aeronau
 STR_A008_CAN_T_BUILD_AIRCRAFT                                   :{WHITE}No es pot construir l'aeronau...
 STR_A009_AIRCRAFT                                               :{WHITE}{COMPANY} - {COMMA} Aeronaus
 STR_A00A                                                        :{WHITE}{VEHICLE}
@@ -3356,4 +3358,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}El nom ha de ser únic
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Ves a la propera senyal
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Ves a la senyal anterior
+
 ########
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/lang/croatian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -0,0 +1,3247 @@
+##name Croatian
+##ownname Hrvatski
+##isocode hr_HR
+##plural 6
+##gender male female middle
+
+#
+
+##id 0x0000
+STR_NULL                                                        :
+STR_0001_OFF_EDGE_OF_MAP                                        :{WHITE}Izvan rubova karte
+STR_0002_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}Preblizu rubu karte
+STR_0003_NOT_ENOUGH_CASH_REQUIRES                               :{WHITE}Nedovoljno gotovine - potrebno je {CURRENCY}
+STR_0004                                                        :{WHITE}{CURRENCY}
+STR_0005                                                        :{RED}{CURRENCY}
+STR_EMPTY                                                       :
+STR_0007_FLAT_LAND_REQUIRED                                     :{WHITE}Potrebna ravna površina
+STR_0008_WAITING                                                :{BLACK}Čekanje: {WHITE}{STRING}
+STR_0009                                                        :{WHITE}{CARGO}
+STR_000A_EN_ROUTE_FROM                                          :{WHITE}{CARGO}{YELLOW}  (na putu od
+STR_000B                                                        :{YELLOW}{STATION})
+STR_000C_ACCEPTS                                                :{BLACK}Prihvaća: {WHITE}
+STR_000D_ACCEPTS                                                :{BLACK}Prihvaća: {GOLD}
+STR_000E                                                        :
+STR_000F_PASSENGERS                                             :Putnici
+STR_0010_COAL                                                   :Ugljen
+STR_0011_MAIL                                                   :Pošta
+STR_0012_OIL                                                    :Nafta
+STR_0013_LIVESTOCK                                              :Domaće životinje
+STR_0014_GOODS                                                  :Robe
+STR_0015_GRAIN                                                  :Žito
+STR_0016_WOOD                                                   :Drvo
+STR_0017_IRON_ORE                                               :Željezo
+STR_0018_STEEL                                                  :Čelik
+STR_0019_VALUABLES                                              :Dragocjenosti
+STR_001A_COPPER_ORE                                             :Bakar
+STR_001B_MAIZE                                                  :Kukuruz
+STR_001C_FRUIT                                                  :Voće
+STR_001D_DIAMONDS                                               :Dijamanti
+STR_001E_FOOD                                                   :Hrana
+STR_001F_PAPER                                                  :Papir
+STR_0020_GOLD                                                   :Zlato
+STR_0021_WATER                                                  :Voda
+STR_0022_WHEAT                                                  :Pšenica
+STR_0023_RUBBER                                                 :Guma
+STR_0024_SUGAR                                                  :Šećer
+STR_0025_TOYS                                                   :Igračke
+STR_0026_CANDY                                                  :Slatkiši
+STR_0027_COLA                                                   :Cola
+STR_0028_COTTON_CANDY                                           :Šećerna vuna
+STR_0029_BUBBLES                                                :Baloni
+STR_002A_TOFFEE                                                 :Mliječne karamele
+STR_002B_BATTERIES                                              :Baterije
+STR_002C_PLASTIC                                                :Plastika
+STR_002D_FIZZY_DRINKS                                           :Gazirana pića
+STR_002E                                                        :
+STR_002F_PASSENGER                                              :Putnik
+STR_0030_COAL                                                   :Ugljen
+STR_0031_MAIL                                                   :Pošta
+STR_0032_OIL                                                    :Nafta
+STR_0033_LIVESTOCK                                              :Domaće životinje
+STR_0034_GOODS                                                  :Robe
+STR_0035_GRAIN                                                  :Žito
+STR_0036_WOOD                                                   :Drvo
+STR_0037_IRON_ORE                                               :Željezo
+STR_0038_STEEL                                                  :Čelik
+STR_0039_VALUABLES                                              :Dragocjenosti
+STR_003A_COPPER_ORE                                             :Bakar
+STR_003B_MAIZE                                                  :Kukuruz
+STR_003C_FRUIT                                                  :Voće
+STR_003D_DIAMOND                                                :Dijamant
+STR_003E_FOOD                                                   :Hrana
+STR_003F_PAPER                                                  :Papir
+STR_0040_GOLD                                                   :Zlato
+STR_0041_WATER                                                  :Voda
+STR_0042_WHEAT                                                  :Pšenica
+STR_0043_RUBBER                                                 :Guma
+STR_0044_SUGAR                                                  :Šećer
+STR_0045_TOY                                                    :Igračka
+STR_0046_CANDY                                                  :Slatkiš
+STR_0047_COLA                                                   :Cola
+STR_0048_COTTON_CANDY                                           :Šećerna vuna
+STR_0049_BUBBLE                                                 :Balon
+STR_004A_TOFFEE                                                 :Mliječna karamela
+STR_004B_BATTERY                                                :Baterija
+STR_004C_PLASTIC                                                :Plastika
+STR_004D_FIZZY_DRINK                                            :Gazirano piće
+STR_QUANTITY_NOTHING                                            :
+STR_QUANTITY_PASSENGERS                                         :{COMMA} putni{P k ka ka}
+STR_QUANTITY_COAL                                               :{WEIGHT} ugljena
+STR_QUANTITY_MAIL                                               :{COMMA} poštansk{P a e ih} vreć{P a e a}
+STR_QUANTITY_OIL                                                :{VOLUME} nafte
+STR_QUANTITY_LIVESTOCK                                          :{COMMA} grla {P o a a} stoke
+STR_QUANTITY_GOODS                                              :{COMMA} sanduk{P "" a a} robe
+STR_QUANTITY_GRAIN                                              :{WEIGHT} žita
+STR_QUANTITY_WOOD                                               :{WEIGHT} drveta
+STR_QUANTITY_IRON_ORE                                           :{WEIGHT} željeza
+STR_QUANTITY_STEEL                                              :{WEIGHT} čelika
+STR_QUANTITY_VALUABLES                                          :{COMMA} vreć{P a e a} s vrijednostima
+STR_QUANTITY_COPPER_ORE                                         :{WEIGHT} bakra
+STR_QUANTITY_MAIZE                                              :{WEIGHT} kukuruza
+STR_QUANTITY_FRUIT                                              :{WEIGHT} voća
+STR_QUANTITY_DIAMONDS                                           :{COMMA} vreć{P a e a} dijamanata
+STR_QUANTITY_FOOD                                               :{WEIGHT} hrane
+STR_QUANTITY_PAPER                                              :{WEIGHT} papira
+STR_QUANTITY_GOLD                                               :{COMMA} vreć{P a e a} zlata
+STR_QUANTITY_WATER                                              :{VOLUME} vode
+STR_QUANTITY_WHEAT                                              :{WEIGHT} pšenice
+STR_QUANTITY_RUBBER                                             :{VOLUME} gume
+STR_QUANTITY_SUGAR                                              :{WEIGHT} šećera
+STR_QUANTITY_TOYS                                               :{COMMA} igrač{P ka ke aka}
+STR_QUANTITY_SWEETS                                             :{COMMA} vreć{P a e a} slatkiša
+STR_QUANTITY_COLA                                               :{VOLUME} cole
+STR_QUANTITY_CANDYFLOSS                                         :{WEIGHT} šećerne vune
+STR_QUANTITY_BUBBLES                                            :{COMMA} balon{P "" a a}
+STR_QUANTITY_TOFFEE                                             :{WEIGHT} mliječne karamele
+STR_QUANTITY_BATTERIES                                          :{COMMA} baterij{P a e a}
+STR_QUANTITY_PLASTIC                                            :{VOLUME} plastike
+STR_QUANTITY_FIZZY_DRINKS                                       :{COMMA} Gaziran{P o a a} pić{P e a a}
+STR_ABBREV_NOTHING                                              :
+STR_ABBREV_PASSENGERS                                           :{TINYFONT}PU
+STR_ABBREV_COAL                                                 :{TINYFONT}UG
+STR_ABBREV_MAIL                                                 :{TINYFONT}PT
+STR_ABBREV_OIL                                                  :{TINYFONT}NF
+STR_ABBREV_LIVESTOCK                                            :{TINYFONT}DŽ
+STR_ABBREV_GOODS                                                :{TINYFONT}AU
+STR_ABBREV_GRAIN                                                :{TINYFONT}ŽT
+STR_ABBREV_WOOD                                                 :{TINYFONT}DV
+STR_ABBREV_IRON_ORE                                             :{TINYFONT}FE
+STR_ABBREV_STEEL                                                :{TINYFONT}ČL
+STR_ABBREV_VALUABLES                                            :{TINYFONT}VR
+STR_ABBREV_COPPER_ORE                                           :{TINYFONT}CU
+STR_ABBREV_MAIZE                                                :{TINYFONT}KK
+STR_ABBREV_FRUIT                                                :{TINYFONT}VO
+STR_ABBREV_DIAMONDS                                             :{TINYFONT}DM
+STR_ABBREV_FOOD                                                 :{TINYFONT}HN
+STR_ABBREV_PAPER                                                :{TINYFONT}PR
+STR_ABBREV_GOLD                                                 :{TINYFONT}AU
+STR_ABBREV_WATER                                                :{TINYFONT}VO
+STR_ABBREV_WHEAT                                                :{TINYFONT}ŽT
+STR_ABBREV_RUBBER                                               :{TINYFONT}GM
+STR_ABBREV_SUGAR                                                :{TINYFONT}ŠĆ
+STR_ABBREV_TOYS                                                 :{TINYFONT}IG
+STR_ABBREV_SWEETS                                               :{TINYFONT}SL
+STR_ABBREV_COLA                                                 :{TINYFONT}CL
+STR_ABBREV_CANDYFLOSS                                           :{TINYFONT}ŠV
+STR_ABBREV_BUBBLES                                              :{TINYFONT}BL
+STR_ABBREV_TOFFEE                                               :{TINYFONT}MČ
+STR_ABBREV_BATTERIES                                            :{TINYFONT}BA
+STR_ABBREV_PLASTIC                                              :{TINYFONT}PL
+STR_ABBREV_FIZZY_DRINKS                                         :{TINYFONT}GP
+STR_ABBREV_NONE                                                 :{TINYFONT}NI
+STR_ABBREV_ALL                                                  :{TINYFONT}SVE
+STR_00AE                                                        :{WHITE}{DATE_SHORT}
+STR_00AF                                                        :{WHITE}{DATE_LONG}
+STR_00B0_MAP                                                    :{WHITE}Karta - {STRING}
+STR_00B1_GAME_OPTIONS                                           :{WHITE}Opcije za igru
+STR_00B2_MESSAGE                                                :{YELLOW}Poruka
+STR_00B3_MESSAGE_FROM                                           :{YELLOW}Poruka od {STRING}
+STR_POPUP_CAUTION_CAPTION                                       :{WHITE}Oprez!
+STR_00B4_CAN_T_DO_THIS                                          :{WHITE}To nije moguće napraviti....
+STR_00B5_CAN_T_CLEAR_THIS_AREA                                  :{WHITE}Nije moguće očistiti ovo područje....
+STR_00B6_ORIGINAL_COPYRIGHT                                     :{BLACK}Izvorno autorsko pravo {COPYRIGHT} 1995 Chris Sawyer, sva prava pridržana
+STR_00B7_VERSION                                                :{BLACK}OpenTTD verzija {REV}
+STR_00BA_COPYRIGHT_OPENTTD                                      :{BLACK}OpenTTD {COPYRIGHT}2002-2006 tim OpenTTD
+STR_TRANSLATED_BY                                               :{BLACK}  Prevoditelj(i) -
+
+STR_00C5                                                        :{BLACK}{CROSS}
+STR_00C6                                                        :{SILVER}{CROSS}
+STR_00C7_QUIT                                                   :{WHITE}Prekid
+STR_00C8_YES                                                    :{BLACK}Da
+STR_00C9_NO                                                     :{BLACK}Ne
+STR_00CA_ARE_YOU_SURE_YOU_WANT_TO                               :{YELLOW}Jesi li siguran da želiš napustiti ovu igru i vratiti se na {STRING}?
+STR_00CB_1                                                      :{BLACK}1
+STR_00CC_2                                                      :{BLACK}2
+STR_00CD_3                                                      :{BLACK}3
+STR_00CE_4                                                      :{BLACK}4
+STR_00CF_5                                                      :{BLACK}5
+STR_00D0_NOTHING                                                :Ništa
+STR_00D1_DARK_BLUE                                              :Tamnoplava
+STR_00D2_PALE_GREEN                                             :Blijedozelena
+STR_00D3_PINK                                                   :Ružičasta
+STR_00D4_YELLOW                                                 :Žuta
+STR_00D5_RED                                                    :Crvena
+STR_00D6_LIGHT_BLUE                                             :Svijetloplava
+STR_00D7_GREEN                                                  :Zelena
+STR_00D8_DARK_GREEN                                             :Tamnozelena
+STR_00D9_BLUE                                                   :Plava
+STR_00DA_CREAM                                                  :Kremasta
+STR_00DB_MAUVE                                                  :Svijetloljubičasta
+STR_00DC_PURPLE                                                 :Ljubičasta
+STR_00DD_ORANGE                                                 :Narančasta
+STR_00DE_BROWN                                                  :Smeđa
+STR_00DF_GREY                                                   :Siva
+STR_00E0_WHITE                                                  :Bijela
+STR_00E1_TOO_MANY_VEHICLES_IN_GAME                              :{WHITE}Previše vozila u igri
+STR_00E2                                                        :{BLACK}{COMMA}
+STR_00E3                                                        :{RED}{COMMA}
+STR_00E4_LOCATION                                               :{BLACK}Lokacija
+STR_00E5_CONTOURS                                               :Obrisi
+STR_00E6_VEHICLES                                               :Vozila
+STR_00E7_INDUSTRIES                                             :Industrije
+STR_00E8_ROUTES                                                 :Trase
+STR_00E9_VEGETATION                                             :Vegetacija
+STR_00EA_OWNERS                                                 :Vlasnici
+STR_00EB_ROADS                                                  :{BLACK}{TINYFONT}Ceste
+STR_00EC_RAILROADS                                              :{BLACK}{TINYFONT}Željeznice
+STR_00ED_STATIONS_AIRPORTS_DOCKS                                :{BLACK}{TINYFONT}Stanice/Zračne luke/Pristaništa
+STR_00EE_BUILDINGS_INDUSTRIES                                   :{BLACK}{TINYFONT}Građevine/Industrije
+STR_00EF_VEHICLES                                               :{BLACK}{TINYFONT}Vozila
+STR_00F0_100M                                                   :{BLACK}{TINYFONT}100m
+STR_00F1_200M                                                   :{BLACK}{TINYFONT}200m
+STR_00F2_300M                                                   :{BLACK}{TINYFONT}300m
+STR_00F3_400M                                                   :{BLACK}{TINYFONT}400m
+STR_00F4_500M                                                   :{BLACK}{TINYFONT}500m
+STR_00F5_TRAINS                                                 :{BLACK}{TINYFONT}Vlakovi
+STR_00F6_ROAD_VEHICLES                                          :{BLACK}{TINYFONT}Cestovna vozila
+STR_00F7_SHIPS                                                  :{BLACK}{TINYFONT}Brodovi
+STR_00F8_AIRCRAFT                                               :{BLACK}{TINYFONT}Zrakoplov
+STR_00F9_TRANSPORT_ROUTES                                       :{BLACK}{TINYFONT}Prijevozne trase
+STR_00FA_COAL_MINE                                              :{BLACK}{TINYFONT}Rudnik ugljena
+STR_00FB_POWER_STATION                                          :{BLACK}{TINYFONT}Elektrana
+STR_00FC_FOREST                                                 :{BLACK}{TINYFONT}Šuma
+STR_00FD_SAWMILL                                                :{BLACK}{TINYFONT}Pilana
+STR_00FE_OIL_REFINERY                                           :{BLACK}{TINYFONT}Naftna rafinerija
+STR_00FF_FARM                                                   :{BLACK}{TINYFONT}Farma
+STR_0100_FACTORY                                                :{BLACK}{TINYFONT}Tvornica
+STR_0101_PRINTING_WORKS                                         :{BLACK}{TINYFONT}Tiskara
+STR_0102_OIL_WELLS                                              :{BLACK}{TINYFONT}Naftna polja
+STR_0103_IRON_ORE_MINE                                          :{BLACK}{TINYFONT}Rudnik željeza
+STR_0104_STEEL_MILL                                             :{BLACK}{TINYFONT}Čeličana
+STR_0105_BANK                                                   :{BLACK}{TINYFONT}Banka
+STR_0106_PAPER_MILL                                             :{BLACK}{TINYFONT}Tvornica papira
+STR_0107_GOLD_MINE                                              :{BLACK}{TINYFONT}Rudnik zlata
+STR_0108_FOOD_PROCESSING_PLANT                                  :{BLACK}{TINYFONT}Tvornica hrane
+STR_0109_DIAMOND_MINE                                           :{BLACK}{TINYFONT}Rudnik dijamanata
+STR_010A_COPPER_ORE_MINE                                        :{BLACK}{TINYFONT}Rudnik bakra
+STR_010B_FRUIT_PLANTATION                                       :{BLACK}{TINYFONT}Plantaža voća
+STR_010C_RUBBER_PLANTATION                                      :{BLACK}{TINYFONT}Plantaža gume
+STR_010D_WATER_SUPPLY                                           :{BLACK}{TINYFONT}Izvor vode
+STR_010E_WATER_TOWER                                            :{BLACK}{TINYFONT}Vodotoranj
+STR_010F_LUMBER_MILL                                            :{BLACK}{TINYFONT}Pilana
+STR_0110_COTTON_CANDY_FOREST                                    :{BLACK}{TINYFONT}Šuma šećerne vune
+STR_0111_CANDY_FACTORY                                          :{BLACK}{TINYFONT}Tvornica slatkiša
+STR_0112_BATTERY_FARM                                           :{BLACK}{TINYFONT}Tvornica baterija
+STR_0113_COLA_WELLS                                             :{BLACK}{TINYFONT}Izvori Cole
+STR_0114_TOY_SHOP                                               :{BLACK}{TINYFONT}Trgovina igračkama
+STR_0115_TOY_FACTORY                                            :{BLACK}{TINYFONT}Tvornica igračaka
+STR_0116_PLASTIC_FOUNTAINS                                      :{BLACK}{TINYFONT}Izvori plastike
+STR_0117_FIZZY_DRINK_FACTORY                                    :{BLACK}{TINYFONT}Tvornica gaziranih pića
+STR_0118_BUBBLE_GENERATOR                                       :{BLACK}{TINYFONT}Generator balona
+STR_0119_TOFFEE_QUARRY                                          :{BLACK}{TINYFONT}Iskop mliječne karamele
+STR_011A_SUGAR_MINE                                             :{BLACK}{TINYFONT}Šećerana
+STR_011B_RAILROAD_STATION                                       :{BLACK}{TINYFONT}Željeznička stanica
+STR_011C_TRUCK_LOADING_BAY                                      :{BLACK}{TINYFONT}Kamionski terminal
+STR_011D_BUS_STATION                                            :{BLACK}{TINYFONT}Autobusn stanica
+STR_011E_AIRPORT_HELIPORT                                       :{BLACK}{TINYFONT}Aerodrom/Heliodrom
+STR_011F_DOCK                                                   :{BLACK}{TINYFONT}Pristanište
+STR_0120_ROUGH_LAND                                             :{BLACK}{TINYFONT}Surova zemlja
+STR_0121_GRASS_LAND                                             :{BLACK}{TINYFONT}Travnjak
+STR_0122_BARE_LAND                                              :{BLACK}{TINYFONT}Ogoljena zemlja
+STR_0123_FIELDS                                                 :{BLACK}{TINYFONT}Polja
+STR_0124_TREES                                                  :{BLACK}{TINYFONT}Stabla
+STR_0125_ROCKS                                                  :{BLACK}{TINYFONT}Stijenje
+STR_0126_WATER                                                  :{BLACK}{TINYFONT}Voda
+STR_0127_NO_OWNER                                               :{BLACK}{TINYFONT}Bez vlasnika
+STR_0128_TOWNS                                                  :{BLACK}{TINYFONT}Gradovi
+STR_0129_INDUSTRIES                                             :{BLACK}{TINYFONT}Industrije
+STR_012A_DESERT                                                 :{BLACK}{TINYFONT}Pustinja
+STR_012B_SNOW                                                   :{BLACK}{TINYFONT}Snijeg
+STR_012C_MESSAGE                                                :{WHITE}Poruka
+STR_012D                                                        :{WHITE}{STRING}
+STR_012E_CANCEL                                                 :{BLACK}Odustani
+STR_012F_OK                                                     :{BLACK}OK
+STR_0130_RENAME                                                 :{BLACK}Preimenuj
+STR_0131_TOO_MANY_NAMES_DEFINED                                 :{WHITE}Previše definiranih imena
+STR_0132_CHOSEN_NAME_IN_USE_ALREADY                             :{WHITE}Odabrano ime već se koristi
+
+STR_0133_WINDOWS                                                :Windows
+STR_0134_UNIX                                                   :Unix
+STR_0135_OSX                                                    :OS X
+STR_OSNAME_BEOS                                                 :BeOS
+STR_OSNAME_MORPHOS                                              :MorphOS
+STR_OSNAME_AMIGAOS                                              :AmigaOS
+STR_OSNAME_OS2                                                  :OS/2
+STR_OSNAME_SUNOS                                                :SunOS
+
+STR_013B_OWNED_BY                                               :{WHITE}...u vlasništvu {STRING}
+STR_013C_CARGO                                                  :{BLACK}Teret
+STR_013D_INFORMATION                                            :{BLACK}Informacije
+STR_013E_CAPACITIES                                             :{BLACK}Nosivosti
+STR_013E_TOTAL_CARGO                                            :{BLACK}Ukupni teret
+STR_013F_CAPACITY                                               :{BLACK}Nosivost: {LTBLUE}{CARGO}
+STR_CAPACITY_MULT                                               :{BLACK}Nosivost: {LTBLUE}{CARGO} (x{NUM})
+STR_013F_TOTAL_CAPACITY_TEXT                                    :{BLACK}Ukupna nosivost ovoga vlaka:
+STR_013F_TOTAL_CAPACITY                                         :{LTBLUE}- {CARGO} ({SHORTCARGO})
+STR_TOTAL_CAPACITY_MULT                                         :{LTBLUE}- {CARGO} ({SHORTCARGO}) (x{NUM})
+STR_0140_NEW_GAME                                               :{BLACK}Nova igra
+STR_0141_LOAD_GAME                                              :{BLACK}Učitaj igru
+STR_SINGLE_PLAYER                                               :{BLACK}Jedan igrač
+STR_MULTIPLAYER                                                 :{BLACK}Više igrača
+STR_SCENARIO_EDITOR                                             :{BLACK}Editor scenarija
+
+STR_64                                                          :64
+STR_128                                                         :128
+STR_256                                                         :256
+STR_512                                                         :512
+STR_1024                                                        :1024
+STR_2048                                                        :2048
+STR_MAPSIZE                                                     :{BLACK}Veličina karte:
+STR_BY                                                          :{BLACK}*
+STR_0148_GAME_OPTIONS                                           :{BLACK}Postavke igre
+
+STR_0150_SOMEONE                                                :netko{SKIP}{SKIP}
+STR_0151_MAP_OF_WORLD                                           :Karta svijeta
+STR_0152_TOWN_DIRECTORY                                         :Popis gradova
+STR_0153_SUBSIDIES                                              :Subvencije
+
+STR_UNITS_IMPERIAL                                              :Imperijalni
+STR_UNITS_METRIC                                                :Metrički
+STR_UNITS_SI                                                    :SI
+
+STR_UNITS_VELOCITY_IMPERIAL                                     :{COMMA} mph
+STR_UNITS_VELOCITY_METRIC                                       :{COMMA} km/h
+STR_UNITS_VELOCITY_SI                                           :{COMMA} m/s
+
+STR_UNITS_POWER_IMPERIAL                                        :{COMMA}KS
+STR_UNITS_POWER_METRIC                                          :{COMMA}KS
+STR_UNITS_POWER_SI                                              :{COMMA}kW
+
+STR_UNITS_WEIGHT_SHORT_IMPERIAL                                 :{COMMA}t
+STR_UNITS_WEIGHT_SHORT_METRIC                                   :{COMMA}t
+STR_UNITS_WEIGHT_SHORT_SI                                       :{COMMA}kg
+
+STR_UNITS_WEIGHT_LONG_IMPERIAL                                  :{COMMA} britansk{P a e ih} ton{P a e a}
+STR_UNITS_WEIGHT_LONG_METRIC                                    :{COMMA} ton{P a e a}
+STR_UNITS_WEIGHT_LONG_SI                                        :{COMMA} kg
+
+STR_UNITS_VOLUME_SHORT_IMPERIAL                                 :{COMMA}gal
+STR_UNITS_VOLUME_SHORT_METRIC                                   :{COMMA}l
+STR_UNITS_VOLUME_SHORT_SI                                       :{COMMA}m³
+
+STR_UNITS_VOLUME_LONG_IMPERIAL                                  :{COMMA} galon{P "" a a}
+STR_UNITS_VOLUME_LONG_METRIC                                    :{COMMA} lit{P ra re ara}
+STR_UNITS_VOLUME_LONG_SI                                        :{COMMA} m³
+
+STR_UNITS_FORCE_IMPERIAL                                        :{COMMA}x10³ lbf
+STR_UNITS_FORCE_METRIC                                          :{COMMA} sila britanske tone
+STR_UNITS_FORCE_SI                                              :{COMMA} kN
+
+############ range for menu starts
+STR_0154_OPERATING_PROFIT_GRAPH                                 :Graf dobiti od poslovanja
+STR_0155_INCOME_GRAPH                                           :Graf prihoda
+STR_0156_DELIVERED_CARGO_GRAPH                                  :Graf isporučenog tereta
+STR_0157_PERFORMANCE_HISTORY_GRAPH                              :Graf povijesti učinka
+STR_0158_COMPANY_VALUE_GRAPH                                    :Graf vrijednosti tvrtke
+STR_0159_CARGO_PAYMENT_RATES                                    :Iznosi plaćanja tereta
+STR_015A_COMPANY_LEAGUE_TABLE                                   :Tablica lige tvrtki
+STR_PERFORMANCE_DETAIL_MENU                                     :Detaljna ocjena učinka
+############ range for menu ends
+
+STR_015B_OPENTTD                                                :{WHITE}O OpenTTD-u
+STR_015C_SAVE_GAME                                              :Spremi igru
+STR_015D_LOAD_GAME                                              :Učitaj igru
+STR_015E_QUIT_GAME                                              :Napusti igru
+STR_015F_QUIT                                                   :Izlaz
+STR_ABANDON_GAME_QUERY                                          :{YELLOW}Jeste li sigurni da želite napustiti ovu igru?
+STR_0161_QUIT_GAME                                              :{WHITE}Napusti igru
+STR_SORT_ORDER_TIP                                              :{BLACK}Izaberi način sortiranja (silazno/uzlazno)
+STR_SORT_CRITERIA_TIP                                           :{BLACK}Izaberi kriterij za sortiranje
+STR_SORT_BY                                                     :{BLACK}Sortiraj prema
+
+STR_SORT_BY_POPULATION                                          :{BLACK}Stanovnici
+STR_SORT_BY_PRODUCTION                                          :{BLACK}Produkcija
+STR_SORT_BY_TYPE                                                :{BLACK}Vrsta
+STR_SORT_BY_TRANSPORTED                                         :{BLACK}Prevezeno
+STR_SORT_BY_NAME                                                :{BLACK}Ime
+STR_SORT_BY_DROPDOWN_NAME                                       :Ime
+STR_SORT_BY_DATE                                                :{BLACK}Datum
+STR_SORT_BY_NUMBER                                              :Broj
+STR_SORT_BY_PROFIT_LAST_YEAR                                    :Zarada prošle godine
+STR_SORT_BY_PROFIT_THIS_YEAR                                    :Zarada ove godine
+STR_SORT_BY_AGE                                                 :Godine
+STR_SORT_BY_RELIABILITY                                         :Pouzdanost
+STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE                        :Totalna nosivost po vrsti tereta
+STR_SORT_BY_MAX_SPEED                                           :Maksimalna brzina
+STR_SORT_BY_MODEL                                               :Model
+STR_SORT_BY_VALUE                                               :Vrijednost
+STR_SORT_BY_FACILITY                                            :Vrsta stanice
+STR_SORT_BY_WAITING                                             :Vrijednost tereta koji čeka
+STR_SORT_BY_RATING_MAX                                          :Ocjena tereta
+STR_ENGINE_SORT_ENGINE_ID                                       :MotorID(standardno sortiranje)
+STR_ENGINE_SORT_COST                                            :Trošak
+STR_ENGINE_SORT_POWER                                           :Snaga
+STR_ENGINE_SORT_INTRO_DATE                                      :Datum početka
+STR_ENGINE_SORT_RUNNING_COST                                    :Trošak uporabe
+STR_ENGINE_SORT_POWER_VS_RUNNING_COST                           :Trošak snage/uporabe
+STR_ENGINE_SORT_CARGO_CAPACITY                                  :Nosivost tereta
+STR_NO_WAITING_CARGO                                            :{BLACK}Nijedna vrsta tereta ne čeka
+STR_SELECT_ALL_FACILITIES                                       :{BLACK}Izaberi sva sredstva
+STR_SELECT_ALL_TYPES                                            :{BLACK}Izaberi sve vrste tereta (uključujući i teret koji ne čeka)
+STR_AVAILABLE_TRAINS                                            :{BLACK}Dostupni vlakovi
+STR_AVAILABLE_ROAD_VEHICLES                                     :{BLACK}Dostupna vozila
+STR_AVAILABLE_SHIPS                                             :{BLACK}Dostupni brodovi
+STR_AVAILABLE_AIRCRAFT                                          :{BLACK}Dostupni zrakoplovi
+STR_AVAILABLE_ENGINES_TIP                                       :{BLACK}Pogledaj popis dostupnih dizajna motora za ovu vrstu vozila.
+STR_MANAGE_LIST                                                 :{BLACK}Uredi popis
+STR_MANAGE_LIST_TIP                                             :{BLACK}Pošalji upute svim vozilima na ovoj listi
+STR_REPLACE_VEHICLES                                            :Zamjeni vozila
+STR_SEND_TRAIN_TO_DEPOT                                         :Pošalji u spremište
+STR_SEND_ROAD_VEHICLE_TO_DEPOT                                  :
+STR_SEND_SHIP_TO_DEPOT                                          :
+STR_SEND_AIRCRAFT_TO_HANGAR                                     :Pošalji u hangar
+STR_SEND_FOR_SERVICING                                          :Pošalji na servis
+
+############ range for months starts
+STR_0162_JAN                                                    :Sij
+STR_0163_FEB                                                    :Velj
+STR_0164_MAR                                                    :Ožu
+STR_0165_APR                                                    :Tra
+STR_0166_MAY                                                    :Svi
+STR_0167_JUN                                                    :Lip
+STR_0168_JUL                                                    :Srp
+STR_0169_AUG                                                    :Kol
+STR_016A_SEP                                                    :Ruj
+STR_016B_OCT                                                    :Lis
+STR_016C_NOV                                                    :Stu
+STR_016D_DEC                                                    :Pro
+############ range for months ends
+
+STR_016E                                                        :{TINYFONT}{STRING}{} {STRING}
+STR_016F                                                        :{TINYFONT}{STRING}{} {STRING}{}{NUM}
+STR_0170                                                        :{TINYFONT}{STRING}-
+STR_0171_PAUSE_GAME                                             :{BLACK}Zaustavi igru
+STR_0172_SAVE_GAME_ABANDON_GAME                                 :{BLACK}Spremi igru, napusti igru, prekini igru
+STR_0173_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Prikaži popis stanica u vlasništvu tvrke
+STR_0174_DISPLAY_MAP                                            :{BLACK}Prikaži kartu
+STR_0175_DISPLAY_MAP_TOWN_DIRECTORY                             :{BLACK}Prikaži kartu, popis gradova
+STR_0176_DISPLAY_TOWN_DIRECTORY                                 :{BLACK}Prikaži popis gradova
+STR_0177_DISPLAY_COMPANY_FINANCES                               :{BLACK}Prikaži financijske podatke tvrke
+STR_0178_DISPLAY_COMPANY_GENERAL                                :{BLACK}Prikaži opće podatke tvrtke
+STR_0179_DISPLAY_GRAPHS                                         :{BLACK}Prikaži grafove
+STR_017A_DISPLAY_COMPANY_LEAGUE                                 :{BLACK}Prikaži tablicu lige tvrtki
+STR_017B_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Prikaži popis vlakova u posjedu tvrtke
+STR_017C_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Prikaži popis cestovnih vozila u posjedu tvrke
+STR_017D_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Prikaž popis brodova u posjedu tvrke
+STR_017E_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Prikaži popis zrakoplova u posjedu tvrtke
+STR_017F_ZOOM_THE_VIEW_IN                                       :{BLACK}Približi pogled
+STR_0180_ZOOM_THE_VIEW_OUT                                      :{BLACK}Udalji pogled
+STR_0181_BUILD_RAILROAD_TRACK                                   :{BLACK}Izgradi željezničku prugu
+STR_0182_BUILD_ROADS                                            :{BLACK}Izgradi ceste
+STR_0183_BUILD_SHIP_DOCKS                                       :{BLACK}Izgradi pristaništa za brodove
+STR_0184_BUILD_AIRPORTS                                         :{BLACK}Izgradi zračne luke
+STR_0185_PLANT_TREES_PLACE_SIGNS                                :{BLACK}Posadi drveće, postavi znakove itd.
+STR_0186_LAND_BLOCK_INFORMATION                                 :{BLACK}Podaci o zemlji
+STR_0187_OPTIONS                                                :{BLACK}Postavke
+STR_0188                                                        :{BLACK}{SMALLUPARROW}
+STR_0189                                                        :{BLACK}{SMALLDOWNARROW}
+STR_018A_CAN_T_CHANGE_SERVICING                                 :{WHITE}Nije moguće promijeniti servisni interval...
+STR_018B_CLOSE_WINDOW                                           :{BLACK}Zatvori prozor
+STR_018C_WINDOW_TITLE_DRAG_THIS                                 :{BLACK}Naslov prozora - povuci ovo za micanje prozora
+STR_STICKY_BUTTON                                               :{BLACK}Označi ovaj prozor kao nezatvoriv kad se rabi tipka 'Zatvori sve prozore'
+STR_RESIZE_BUTTON                                               :{BLACK}Pritisni i povuci za promjenu veličine prozora
+STR_SAVELOAD_HOME_BUTTON                                        :{BLACK}Pritisni ovdje za prelazak u trenutnu pretpostavljenu mapu za snimanje/učitavanje
+STR_018D_DEMOLISH_BUILDINGS_ETC                                 :{BLACK}Uništi građevine itd. na kvadratu zemlje
+STR_018E_LOWER_A_CORNER_OF_LAND                                 :{BLACK}Snizi vrh kvadrata zemlje
+STR_018F_RAISE_A_CORNER_OF_LAND                                 :{BLACK}Povisi vrh kvadrata zemlje
+STR_0190_SCROLL_BAR_SCROLLS_LIST                                :{BLACK}Pomična traka - lista gore/dolje
+STR_HSCROLL_BAR_SCROLLS_LIST                                    :{BLACK}Klizač - pomiči listu lijevo/desno
+STR_0191_SHOW_LAND_CONTOURS_ON_MAP                              :{BLACK}Prikaži obrise zemlje na karti
+STR_0192_SHOW_VEHICLES_ON_MAP                                   :{BLACK}Prikaži vozila na karti
+STR_0193_SHOW_INDUSTRIES_ON_MAP                                 :{BLACK}Prikaži industrije na karti
+STR_0194_SHOW_TRANSPORT_ROUTES_ON                               :{BLACK}Prikaži prijevozne trase na karti
+STR_0195_SHOW_VEGETATION_ON_MAP                                 :{BLACK}Prikaži vegetaciju na karti
+STR_0196_SHOW_LAND_OWNERS_ON_MAP                                :{BLACK}Prikaži vlasnike zemlje na karti
+STR_0197_TOGGLE_TOWN_NAMES_ON_OFF                               :{BLACK}Prikaži/sakrij imena grada na karti
+STR_0198_PROFIT_THIS_YEAR_LAST_YEAR                             :{TINYFONT}{BLACK}Ovogodišnja zarada: {CURRENCY} (prošlogodišnja: {CURRENCY})
+
+############ range for service numbers starts
+STR_AGE                                                         :{COMMA} godin{P a e a} ({COMMA})
+STR_AGE_RED                                                     :{RED}{COMMA} godin{P a e a} ({COMMA})
+############ range for service numbers ends
+
+STR_019C_ROAD_VEHICLE                                           :Cestovno vozilo
+STR_019D_AIRCRAFT                                               :Zrakoplov
+STR_019E_SHIP                                                   :Brod
+STR_019F_TRAIN                                                  :Vlak
+STR_01A0_IS_GETTING_OLD                                         :{WHITE}{STRING} {COMMA} postaje star
+STR_01A1_IS_GETTING_VERY_OLD                                    :{WHITE}{STRING} {COMMA} postaje vrlo star
+STR_01A2_IS_GETTING_VERY_OLD_AND                                :{WHITE}{STRING} {COMMA} postaje vrlo star i hitno treba zamjenu
+STR_01A3_LAND_AREA_INFORMATION                                  :{WHITE}Podaci o zemlji
+STR_01A4_COST_TO_CLEAR_N_A                                      :{BLACK}Troškovi čišćenja: {LTBLUE}NIJE DOSTUPNO
+STR_01A5_COST_TO_CLEAR                                          :{BLACK}Troškovi čišćenja: {LTBLUE}{CURRENCY}
+STR_01A6_N_A                                                    :NIJE DOSTUPNO
+STR_01A7_OWNER                                                  :{BLACK}Vlasnik: {LTBLUE}{STRING}
+STR_01A8_LOCAL_AUTHORITY                                        :{BLACK}Područna nadležnost: {LTBLUE}{STRING}
+STR_01A9_NONE                                                   :Nijedan/Nitko/Ništa
+STR_01AA_NAME                                                   :{BLACK}Ime
+STR_01AB                                                        :{BLACK}{TINYFONT}{VEHICLE}
+
+############ range for days starts
+STR_01AC_1ST                                                    :1.
+STR_01AD_2ND                                                    :2.
+STR_01AE_3RD                                                    :3.
+STR_01AF_4TH                                                    :4.
+STR_01B0_5TH                                                    :5.
+STR_01B1_6TH                                                    :6.
+STR_01B2_7TH                                                    :7.
+STR_01B3_8TH                                                    :8.
+STR_01B4_9TH                                                    :9.
+STR_01B5_10TH                                                   :10.
+STR_01B6_11TH                                                   :11.
+STR_01B7_12TH                                                   :12.
+STR_01B8_13TH                                                   :13.
+STR_01B9_14TH                                                   :14.
+STR_01BA_15TH                                                   :15.
+STR_01BB_16TH                                                   :16.
+STR_01BC_17TH                                                   :17.
+STR_01BD_18TH                                                   :18.
+STR_01BE_19TH                                                   :19.
+STR_01BF_20TH                                                   :20.
+STR_01C0_21ST                                                   :21.
+STR_01C1_22ND                                                   :22.
+STR_01C2_23RD                                                   :23.
+STR_01C3_24TH                                                   :24.
+STR_01C4_25TH                                                   :25.
+STR_01C5_26TH                                                   :26.
+STR_01C6_27TH                                                   :27.
+STR_01C7_28TH                                                   :28.
+STR_01C8_29TH                                                   :29.
+STR_01C9_30TH                                                   :30.
+STR_01CA_31ST                                                   :31.
+############ range for days ends
+
+STR_01CB                                                        :{TINYFONT}{COMMA}
+
+STR_01CE_CARGO_ACCEPTED                                         :{BLACK}Prihvaćeni teret: {LTBLUE}
+
+STR_01D1_8                                                      :({COMMA}/8 {STRING})
+STR_01D2_JAZZ_JUKEBOX                                           :{WHITE}Jazz Jukebox
+STR_01D3_SOUND_MUSIC                                            :Zvuk/glazba
+STR_01D4_SHOW_SOUND_MUSIC_WINDOW                                :{BLACK}Prikaži prozor zvuk/glazba
+STR_01D5_ALL                                                    :{TINYFONT}Sve
+STR_01D6_OLD_STYLE                                              :{TINYFONT}Staromodno
+STR_01D7_NEW_STYLE                                              :{TINYFONT}Moderno
+STR_01D8_EZY_STREET                                             :{TINYFONT}Laganica
+STR_01D9_CUSTOM_1                                               :{TINYFONT}Proizvoljno 1
+STR_01DA_CUSTOM_2                                               :{TINYFONT}Proizvoljno 2
+STR_01DB_MUSIC_VOLUME                                           :{BLACK}{TINYFONT}Glasnoća glazbe
+STR_01DC_EFFECTS_VOLUME                                         :{BLACK}{TINYFONT}Glasnoća zvukova
+STR_01DD_MIN_MAX                                                :{BLACK}{TINYFONT}MIN  '  '  ' '  '  '  MAX
+STR_01DE_SKIP_TO_PREVIOUS_TRACK                                 :{BLACK}Prethodna traka
+STR_01DF_SKIP_TO_NEXT_TRACK_IN_SELECTION                        :{BLACK}Sljedeća traka
+STR_01E0_STOP_PLAYING_MUSIC                                     :{BLACK}Zaustavi glazbu
+STR_01E1_START_PLAYING_MUSIC                                    :{BLACK}Pokreni glazbu
+STR_01E2_DRAG_SLIDERS_TO_SET_MUSIC                              :{BLACK}Povuci klizače za namještanje glasnoće glazbe i zvukova
+STR_01E3                                                        :{DKGREEN}{TINYFONT}--
+STR_01E4_0                                                      :{DKGREEN}{TINYFONT}0{COMMA}
+STR_01E5                                                        :{DKGREEN}{TINYFONT}{COMMA}
+STR_01E6                                                        :{DKGREEN}{TINYFONT}------
+STR_01E7                                                        :{DKGREEN}{TINYFONT}"{STRING}"
+STR_01E8_TRACK_XTITLE                                           :{BLACK}{TINYFONT}Traka{SETX 88}Naslov
+STR_01E9_SHUFFLE                                                :{TINYFONT}Miješaj
+STR_01EA_PROGRAM                                                :{TINYFONT}{BLACK}Program
+STR_01EB_MUSIC_PROGRAM_SELECTION                                :{WHITE}Izbor glazbenog programa
+STR_01EC_0                                                      :{TINYFONT}{LTBLUE}0{COMMA} "{STRING}"
+STR_01ED                                                        :{TINYFONT}{LTBLUE}{COMMA} "{STRING}"
+STR_01EE_TRACK_INDEX                                            :{TINYFONT}{BLACK}Popis traka
+STR_01EF_PROGRAM                                                :{TINYFONT}{BLACK}Program- '{STRING}'
+STR_01F0_CLEAR                                                  :{TINYFONT}{BLACK}Obriši
+STR_01F1_SAVE                                                   :{TINYFONT}{BLACK}Spremi
+STR_01F2_CURRENT_PROGRAM_OF_MUSIC                               :{BLACK}Aktivni glazbeni program
+STR_01F3_SELECT_ALL_TRACKS_PROGRAM                              :{BLACK}Odaberi program 'sve trake'
+STR_01F4_SELECT_OLD_STYLE_MUSIC                                 :{BLACK}Odaberi program 'staromodna glazba'
+STR_01F5_SELECT_NEW_STYLE_MUSIC                                 :{BLACK}Odaberi program 'moderna glazba'
+STR_01F6_SELECT_CUSTOM_1_USER_DEFINED                           :{BLACK}Odaberi program 'Proizvoljna glazba 1'
+STR_01F7_SELECT_CUSTOM_2_USER_DEFINED                           :{BLACK}Odaberi program 'Proizvoljna glazba 2'
+STR_01F8_CLEAR_CURRENT_PROGRAM_CUSTOM1                          :{BLACK}Obriši aktivni program (samo Proizvoljno 1 ili Proizvoljno 2)
+STR_01F9_SAVE_MUSIC_SETTINGS                                    :{BLACK}Spremi glazbene postavke
+STR_01FA_CLICK_ON_MUSIC_TRACK_TO                                :{BLACK}Klikni na glazbenu traku za dodavanje u aktivni program (samo Proizvoljno 1 ili Proizvoljno 2)
+STR_CLICK_ON_TRACK_TO_REMOVE                                    :{BLACK}Klikni na glazbenu traku da ju makneš iz trenutnog programa (samo Proizvoljno1 ili Proizvoljno2)
+STR_01FB_TOGGLE_PROGRAM_SHUFFLE                                 :{BLACK}Ukluči/isključi miješanje programa
+STR_01FC_SHOW_MUSIC_TRACK_SELECTION                             :{BLACK}Prikaži prozor za izbor glazbenih traka
+STR_01FD_CLICK_ON_SERVICE_TO_CENTER                             :{BLACK}Pritisni na uslugu za centriranje pogleda na industriju/grad
+STR_01FE_DIFFICULTY                                             :{BLACK}Težina ({STRING})
+STR_01FF                                                        :{TINYFONT}{BLACK}{DATE_LONG}
+STR_0200_LAST_MESSAGE_NEWS_REPORT                               :Poslijednja poruka/vijest
+STR_0201_MESSAGE_SETTINGS                                       :Postavke poruka
+STR_MESSAGE_HISTORY_MENU                                        :Povijest poruka
+STR_0203_SHOW_LAST_MESSAGE_NEWS                                 :{BLACK}Prikaži zadnju poruku/vijest, prikaži postavke poruka
+STR_0204_MESSAGE_OPTIONS                                        :{WHITE}Mogućnosti poruka
+STR_0205_MESSAGE_TYPES                                          :{BLACK}Vrste poruka:
+STR_0206_ARRIVAL_OF_FIRST_VEHICLE                               :{YELLOW}Dolazak prvog vozila u stanicu igrača
+STR_0207_ARRIVAL_OF_FIRST_VEHICLE                               :{YELLOW}Dolazak prvog vozila u stanicu suparnika
+STR_0208_ACCIDENTS_DISASTERS                                    :{YELLOW}Nesreće / katastrofe
+STR_0209_COMPANY_INFORMATION                                    :{YELLOW}Podaci vezani za tvrtku
+STR_NEWS_OPEN_CLOSE                                             :{YELLOW}Otvaranje / zatvaranje industrija
+STR_020A_ECONOMY_CHANGES                                        :{YELLOW}Promjene u gospodarstvu
+STR_020B_ADVICE_INFORMATION_ON_PLAYER                           :{YELLOW}Savjet / informacija o vozilima igrača
+STR_020C_NEW_VEHICLES                                           :{YELLOW}Nova vozila
+STR_020D_CHANGES_OF_CARGO_ACCEPTANCE                            :{YELLOW}Promjene u prihvaćanju tereta
+STR_020E_SUBSIDIES                                              :{YELLOW}Subvencije
+STR_020F_GENERAL_INFORMATION                                    :{YELLOW}Opće informacije
+STR_MESSAGES_ALL                                                :{YELLOW}Postavi sve tipove poruka na: Isključeno/Ukratko/Potpuno
+STR_MESSAGE_SOUND                                               :{YELLOW} Pusti zvuk za sve skraćene novinske poruke
+STR_0210_TOO_FAR_FROM_PREVIOUS_DESTINATIO                       :{WHITE}...predaleko od prethodnog odredišta
+STR_0211_TOP_COMPANIES_WHO_REACHED                              :{BIGFONT}{BLACK}Najbolje tvrtke koje su dosigle razinu {NUM}{}({STRING})
+STR_TOP_COMPANIES_NETWORK_GAME                                  :{BIGFONT}{BLACK}Tablica kompanija u {NUM}
+STR_0212                                                        :{BIGFONT}{COMMA}.
+STR_0213_BUSINESSMAN                                            :Privrednik
+STR_0214_ENTREPRENEUR                                           :Poduzetnik
+STR_0215_INDUSTRIALIST                                          :Industrijalist
+STR_0216_CAPITALIST                                             :Kapitalist
+STR_0217_MAGNATE                                                :Velikaš
+STR_0218_MOGUL                                                  :Bogataš
+STR_0219_TYCOON_OF_THE_CENTURY                                  :Tajkun stoljeća
+STR_HIGHSCORE_NAME                                              :{BIGFONT}{PLAYERNAME}, {COMPANY}
+STR_HIGHSCORE_STATS                                             :{BIGFONT}'{STRING}'   ({COMMA})
+STR_021B_ACHIEVES_STATUS                                        :{BLACK}{BIGFONT}{COMPANY} postigao je status '{STRING}' !
+STR_021C_OF_ACHIEVES_STATUS                                     :{WHITE}{BIGFONT}{PLAYERNAME} iz {COMPANY} postigao je status '{STRING}' !
+STR_021F                                                        :{BLUE}{COMMA}
+STR_0221_OPENTTD                                                :{YELLOW}OpenTTD
+STR_0222_SCENARIO_EDITOR                                        :{YELLOW}Uređivanje scenarija
+STR_0223_LAND_GENERATION                                        :{WHITE}Stvaranje zemljišta
+STR_0224                                                        :{BLACK}{UPARROW}
+STR_0225                                                        :{BLACK}{DOWNARROW}
+STR_0228_INCREASE_SIZE_OF_LAND_AREA                             :{BLACK}Povećaj područje koje će biti povišeno/sniženo
+STR_0229_DECREASE_SIZE_OF_LAND_AREA                             :{BLACK}Smanji podrčje koje će biti povišeno/sniženo
+STR_022A_GENERATE_RANDOM_LAND                                   :{BLACK}Napravi nasumično zemljište
+STR_022B_RESET_LANDSCAPE                                        :{BLACK}Poništi krajolik
+STR_022C_RESET_LANDSCAPE                                        :{WHITE}Poništi krajolik
+STR_RESET_LANDSCAPE_TOOLTIP                                     :{BLACK}Obriši sa mape sve u vlasništvu igrača
+STR_RESET_LANDSCAPE_CONFIRMATION_TEXT                           :{WHITE}Jeste li sigurni da želite obrisati sve u vlasništvu igrača?
+STR_022E_LANDSCAPE_GENERATION                                   :{BLACK}Stvaranje krajolika
+STR_022F_TOWN_GENERATION                                        :{BLACK}Stvaranje gradova
+STR_0230_INDUSTRY_GENERATION                                    :{BLACK}Stvaranje industrija
+STR_0231_ROAD_CONSTRUCTION                                      :{BLACK}Izgradnja ceste
+STR_0233_TOWN_GENERATION                                        :{WHITE}Stvaranje gradova
+STR_0234_NEW_TOWN                                               :{BLACK}Novi grad
+STR_0235_CONSTRUCT_NEW_TOWN                                     :{BLACK}Izgradi novi grad
+STR_0236_CAN_T_BUILD_TOWN_HERE                                  :{WHITE}Ovdje nije moguće graditi...
+STR_0237_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}...preblizu rubu karte
+STR_0238_TOO_CLOSE_TO_ANOTHER_TOWN                              :{WHITE}...preblizu drugog grada
+STR_0239_SITE_UNSUITABLE                                        :{WHITE}...neprikladno mjesto
+STR_023A_TOO_MANY_TOWNS                                         :{WHITE}...previše gradova
+STR_CANNOT_GENERATE_TOWN                                        :{WHITE}Nije moguće graditi gradove
+STR_NO_SPACE_FOR_TOWN                                           :{WHITE}...nema više mjesta na karti
+STR_023B_INCREASE_SIZE_OF_TOWN                                  :{BLACK}Povećaj stanovništvo grada
+STR_023C_EXPAND                                                 :{BLACK}Proširi
+STR_023D_RANDOM_TOWN                                            :{BLACK}Nasumičan grad
+STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION                          :{BLACK}Izgradi grad na nasumično odabranom pložaju
+STR_023F_INDUSTRY_GENERATION                                    :{WHITE}Stvaranje industrije
+STR_0240_COAL_MINE                                              :{BLACK}Rudnik ugljena
+STR_0241_POWER_STATION                                          :{BLACK}Elektrana
+STR_0242_SAWMILL                                                :{BLACK}Pilana
+STR_0243_FOREST                                                 :{BLACK}Šuma
+STR_0244_OIL_REFINERY                                           :{BLACK}Rafinerija nafte
+STR_0245_OIL_RIG                                                :{BLACK}Naftna platforma
+STR_0246_FACTORY                                                :{BLACK}Tvornica
+STR_0247_STEEL_MILL                                             :{BLACK}Čeličana
+STR_0248_FARM                                                   :{BLACK}Farma
+STR_0249_IRON_ORE_MINE                                          :{BLACK}Rudnik željeza
+STR_024A_OIL_WELLS                                              :{BLACK}Naftna polja
+STR_024B_BANK                                                   :{BLACK}Banka
+STR_024C_PAPER_MILL                                             :{BLACK}Tvornica papira
+STR_024D_FOOD_PROCESSING_PLANT                                  :{BLACK}Tvornica hrane
+STR_024E_PRINTING_WORKS                                         :{BLACK}Tiskara
+STR_024F_GOLD_MINE                                              :{BLACK}Rudnik zlata
+STR_0250_LUMBER_MILL                                            :{BLACK}Pilana
+STR_0251_FRUIT_PLANTATION                                       :{BLACK}Plantaža voća
+STR_0252_RUBBER_PLANTATION                                      :{BLACK}Plantaža gume
+STR_0253_WATER_SUPPLY                                           :{BLACK}Izvor vode
+STR_0254_WATER_TOWER                                            :{BLACK}Vodotoranj
+STR_0255_DIAMOND_MINE                                           :{BLACK}Rudnik dijamanata
+STR_0256_COPPER_ORE_MINE                                        :{BLACK}Rudnik bakra
+STR_0257_COTTON_CANDY_FOREST                                    :{BLACK}Šuma šećerne vune
+STR_0258_CANDY_FACTORY                                          :{BLACK}Tvornica slatkiša
+STR_0259_BATTERY_FARM                                           :{BLACK}Tvornica baterija
+STR_025A_COLA_WELLS                                             :{BLACK}Izvor Cole
+STR_025B_TOY_SHOP                                               :{BLACK}Trgovina igračkama
+STR_025C_TOY_FACTORY                                            :{BLACK}Tvornica igračaka
+STR_025D_PLASTIC_FOUNTAINS                                      :{BLACK}Izvori plastike
+STR_025E_FIZZY_DRINK_FACTORY                                    :{BLACK}Tvornica gaziranih pića
+STR_025F_BUBBLE_GENERATOR                                       :{BLACK}Generator balona
+STR_0260_TOFFEE_QUARRY                                          :{BLACK}Iskop mliječne karamele
+STR_0261_SUGAR_MINE                                             :{BLACK}Rudnik šećera
+STR_0262_CONSTRUCT_COAL_MINE                                    :{BLACK}Izgradi rudnik ugljena
+STR_0263_CONSTRUCT_POWER_STATION                                :{BLACK}Izgradi elektranu
+STR_0264_CONSTRUCT_SAWMILL                                      :{BLACK}Izgradi pilanu
+STR_0265_PLANT_FOREST                                           :{BLACK}Posadi šumu
+STR_0266_CONSTRUCT_OIL_REFINERY                                 :{BLACK}Izgradi naftnu rafineriju
+STR_0267_CONSTRUCT_OIL_RIG_CAN_ONLY                             :{BLACK}Izgradi naftnu bušotinu (može biti sagrađena samo blizu rubova karte)
+STR_0268_CONSTRUCT_FACTORY                                      :{BLACK}Izgradi tvornicu
+STR_0269_CONSTRUCT_STEEL_MILL                                   :{BLACK}Izgradi čeličanu
+STR_026A_CONSTRUCT_FARM                                         :{BLACK}Izgradi farmu
+STR_026B_CONSTRUCT_IRON_ORE_MINE                                :{BLACK}Izgradi rudnik bakra
+STR_026C_CONSTRUCT_OIL_WELLS                                    :{BLACK}Izgradi naftna polja
+STR_026D_CONSTRUCT_BANK_CAN_ONLY                                :{BLACK}Izgradi banku (može biti izgrađena samo u gradovima s više od 1200 stanovnika)
+STR_026E_CONSTRUCT_PAPER_MILL                                   :{BLACK}Izgradi tvornicu papira
+STR_026F_CONSTRUCT_FOOD_PROCESSING                              :{BLACK}Izgradi tvornicu hrane
+STR_0270_CONSTRUCT_PRINTING_WORKS                               :{BLACK}Izgradi tiskaru
+STR_0271_CONSTRUCT_GOLD_MINE                                    :{BLACK}Izgradi rudnik zlata
+STR_0272_CONSTRUCT_BANK_CAN_ONLY                                :{BLACK}Izgradi banku (može biti izgrađena samo u gradovima)
+STR_0273_CONSTRUCT_LUMBER_MILL_TO                               :{BLACK}Construct pilanu (za sječu prašume i proizvodnju drva)
+STR_0274_PLANT_FRUIT_PLANTATION                                 :{BLACK}Posadi plantažu voća
+STR_0275_PLANT_RUBBER_PLANTATION                                :{BLACK}Posadi plantažu gume
+STR_0276_CONSTRUCT_WATER_SUPPLY                                 :{BLACK}Iskopaj izvor vode
+STR_0277_CONSTRUCT_WATER_TOWER_CAN                              :{BLACK}Izgradi vodotoranj (može biti izgrađen samo u gradovima)
+STR_0278_CONSTRUCT_DIAMOND_MINE                                 :{BLACK}Izgradi rudnik dijamanata
+STR_0279_CONSTRUCT_COPPER_ORE_MINE                              :{BLACK}Izgradi rudnik bakra
+STR_027A_PLANT_COTTON_CANDY_FOREST                              :{BLACK}Posadi šumu šećerne vune
+STR_027B_CONSTRUCT_CANDY_FACTORY                                :{BLACK}Izgradi tvornicu slatkiša
+STR_027C_CONSTRUCT_BATTERY_FARM                                 :{BLACK}Izgradi tvornicu baterija
+STR_027D_CONSTRUCT_COLA_WELLS                                   :{BLACK}Iskopaj izvore Cole
+STR_027E_CONSTRUCT_TOY_SHOP                                     :{BLACK}Izgradi trgovinu igračkama
+STR_027F_CONSTRUCT_TOY_FACTORY                                  :{BLACK}Izgradi tvornicu igračaka
+STR_0280_CONSTRUCT_PLASTIC_FOUNTAINS                            :{BLACK}Iskopaj izvore plastike
+STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY                          :{BLACK}Izgradi tvornicu gaziranih pića
+STR_0282_CONSTRUCT_BUBBLE_GENERATOR                             :{BLACK}Izgradi generator balona
+STR_0283_CONSTRUCT_TOFFEE_QUARRY                                :{BLACK}Izgradi iskop milječne karamele
+STR_0284_CONSTRUCT_SUGAR_MINE                                   :{BLACK}Izgradi rudnik šećera
+STR_0285_CAN_T_BUILD_HERE                                       :{WHITE}Ne možeš graditi {STRING} ovdje...
+STR_0286_MUST_BUILD_TOWN_FIRST                                  :{WHITE}...moraš prvo izgraditi grad
+STR_0287_ONLY_ONE_ALLOWED_PER_TOWN                              :{WHITE}...dozvoljen samo jedan po gradu
+STR_0288_PLANT_TREES                                            :{BLACK}Posadi drveće
+STR_0289_PLACE_SIGN                                             :{BLACK}Stavi znak
+STR_028A_RANDOM_TREES                                           :{BLACK}Nasumično odabrano drveće
+STR_028B_PLANT_TREES_RANDOMLY_OVER                              :{BLACK}Nasumce posadi drveće po krajoliku
+STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE                         :{BLACK}Stavi stijenje na krajolik
+STR_028D_PLACE_LIGHTHOUSE                                       :{BLACK}Postavi svjetionik
+STR_028E_PLACE_TRANSMITTER                                      :{BLACK}Postavi odašiljač
+STR_028F_DEFINE_DESERT_AREA                                     :{BLACK}Odredi pustinjsko područje.{}Pritisni i drži CTRL za uklanjanje
+STR_CREATE_LAKE                                                 :{BLACK}Odredi vodeno područje.{}Napravi kanal, osim ako CTRL nije pritisnut na morskom nivou, kada će umjesto toga potopiti okolna područja
+STR_0290_DELETE                                                 :{BLACK}Obriši
+STR_0291_DELETE_THIS_TOWN_COMPLETELY                            :{BLACK}Obriši ovaj grad u cjelosti
+STR_0292_SAVE_SCENARIO                                          :Spremi scenarij
+STR_0293_LOAD_SCENARIO                                          :Učitaj secenarij
+STR_LOAD_HEIGHTMAP                                              :Učitaj visinsku kartu
+STR_0294_QUIT_EDITOR                                            :Završi s uređivanjem
+STR_0295                                                        :
+STR_0296_QUIT                                                   :Završi
+STR_0297_SAVE_SCENARIO_LOAD_SCENARIO                            :{BLACK}Snimi scenarij, učitaj scenarij, napusti uređivanje scenarija, završi
+STR_0298_LOAD_SCENARIO                                          :{WHITE}Učitaj scenarij
+STR_0299_SAVE_SCENARIO                                          :{WHITE}Spremi scenarij
+STR_029A_PLAY_SCENARIO                                          :{BLACK}Igraj scenarij
+STR_PLAY_HEIGHTMAP                                              :{BLACK}Igraj Rastersku Mapu
+STR_PLAY_HEIGHTMAP_HINT                                         :{BLACK}Pokreni novu igru, koristeći rastersku mapu kao krajolik
+STR_QUIT_SCENARIO_QUERY                                         :{YELLOW}Jeste li sigurni da želite završiti ovaj scenarij?
+STR_029C_QUIT_EDITOR                                            :{WHITE}Završi uređivanje
+STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}..može se izgraditi u gradovima sa najmanje 1200 stanovnika
+STR_029E_MOVE_THE_STARTING_DATE                                 :{BLACK}Pomakni početni datum 1 godinu unatrag
+STR_029F_MOVE_THE_STARTING_DATE                                 :{BLACK}Pomakni početni datum 1 godinu unaprijed
+STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH                               :{WHITE}...oba kraja mosta moraju biti na zemlji
+STR_02A1_SMALL                                                  :{BLACK}Malo
+STR_02A2_MEDIUM                                                 :{BLACK}Srednje
+STR_02A3_LARGE                                                  :{BLACK}Veliko
+STR_SCENARIO_EDITOR_CITY                                        :{BLACK}Grad
+STR_02A4_SELECT_TOWN_SIZE                                       :{BLACK}Izaberi veličinu grada
+STR_02A5_TOWN_SIZE                                              :{YELLOW}Veličina grada:
+
+STR_02B6                                                        :{STRING}  -  {STRING}
+STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Prikaži posljednu poruku ili vijest
+STR_OFF                                                         :Isključeno
+STR_SUMMARY                                                     :Sažetak
+STR_FULL                                                        :Puno
+STR_02BA                                                        :{SILVER}- -  {COMPANY}  - -
+STR_02BB_TOWN_DIRECTORY                                         :Popis gradova
+STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Imena dizajna vozila
+STR_02BD                                                        :{BLACK}{STRING}
+STR_02BE_DEFAULT                                                :Pretpostavljeno
+STR_02BF_CUSTOM                                                 :Prilagođeno
+STR_02C0_SAVE_CUSTOM_NAMES                                      :{BLACK}Spremi prilagođena imena
+STR_02C1_VEHICLE_DESIGN_NAMES_SELECTION                         :{BLACK}Odabir imena dizajna vozila
+STR_02C2_SAVE_CUSTOMIZED_VEHICLE                                :{BLACK}Spremi prilagođena imena dizajna vozila
+
+STR_CHECKMARK                                                   :{CHECKMARK}
+############ range for menu starts
+STR_02C3_GAME_OPTIONS                                           :Opcije igre
+STR_02C5_DIFFICULTY_SETTINGS                                    :Postavke težine
+STR_02C7_CONFIG_PATCHES                                         :Konfiguriraj zakrpe
+STR_NEWGRF_SETTINGS                                             :Postavke NewGRF-a
+STR_TRANSPARENCY_OPTIONS                                        :Opcije prozirnosti
+STR_GAMEOPTMENU_0A                                              :
+STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}Prikazana imena gradova
+STR_02CC_STATION_NAMES_DISPLAYED                                :{SETX 12}Prikazana imena stanica
+STR_02CE_SIGNS_DISPLAYED                                        :{SETX 12}Prikazani znakovi
+STR_WAYPOINTS_DISPLAYED2                                        :{SETX 12}Prikazana čvorišta
+STR_02D0_FULL_ANIMATION                                         :{SETX 12}Sve animacije
+STR_02D2_FULL_DETAIL                                            :{SETX 12}Svi detalji
+STR_02D4_TRANSPARENT_BUILDINGS                                  :{SETX 12}Prozirne građevine
+STR_TRANSPARENT_SIGNS                                           :{SETX 12}Prozirni znakovi stanica
+############ range ends here
+
+############ range for menu starts
+STR_02D5_LAND_BLOCK_INFO                                        :Podatci o zemljištu
+STR_02D6                                                        :
+STR_CONSOLE_SETTING                                             :Otvori konzolu
+STR_02D7_SCREENSHOT_CTRL_S                                      :Slika zaslona (Ctrl-S)
+STR_02D8_GIANT_SCREENSHOT_CTRL_G                                :Ogromna slika zaslona (Ctrl-G)
+STR_02D9_ABOUT_OPENTTD                                          :O 'OpenTTD'
+############ range ends here
+
+STR_02DB_OFF                                                    :{BLACK}Isključeno
+STR_02DA_ON                                                     :{BLACK}Uključeno
+STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Prikaži subvencije
+STR_02DD_SUBSIDIES                                              :Subvencije
+STR_02DE_MAP_OF_WORLD                                           :Karta svijeta
+STR_EXTRA_VIEW_PORT                                             :Dodatni pogled
+STR_SIGN_LIST                                                   :Popis znakova
+STR_02DF_TOWN_DIRECTORY                                         :Direktorij gradova
+STR_TOWN_POPULATION                                             :{BLACK}Svjetska populacija: {COMMA}
+STR_EXTRA_VIEW_PORT_TITLE                                       :{WHITE}Pogled {COMMA}
+STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN                                :{BLACK}Kopiraj u pogled
+STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT                             :{BLACK}Kopiraj lokaciju globalnog pogleda na ovaj mini pogled
+STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW                                :{BLACK}Zalijepi iz mini pogleda
+STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT                             :{BLACK}Zalijepi lokaciju ovog mini pogleda na globalni pogled
+
+STR_02E0_CURRENCY_UNITS                                         :{BLACK}Novčane jedinice
+STR_02E1                                                        :{BLACK}{SKIP}{STRING}
+STR_02E2_CURRENCY_UNITS_SELECTION                               :{BLACK}Odabir novčanih jedinica
+STR_MEASURING_UNITS                                             :{BLACK}Mjerne jedinice
+STR_02E4                                                        :{BLACK}{SKIP}{SKIP}{STRING}
+STR_MEASURING_UNITS_SELECTION                                   :{BLACK}Odabir mjernih jedinica
+STR_02E6_ROAD_VEHICLES                                          :{BLACK}Cestovna vozila
+STR_02E7                                                        :{BLACK}{SKIP}{SKIP}{SKIP}{STRING}
+STR_02E8_SELECT_SIDE_OF_ROAD_FOR                                :{BLACK}Izaberi na kojoj će strani ceste vozila prometovati
+STR_02E9_DRIVE_ON_LEFT                                          :Vozi na lijevoj strani
+STR_02EA_DRIVE_ON_RIGHT                                         :Vozi na desnoj strani
+STR_02EB_TOWN_NAMES                                             :{BLACK}Imena gradova
+STR_02EC                                                        :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_02ED_SELECT_STYLE_OF_TOWN_NAMES                             :{BLACK}Izaberi stil za imena gradova
+
+STR_02F4_AUTOSAVE                                               :{BLACK}Automatsko spremanje
+STR_02F5                                                        :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_02F6_SELECT_INTERVAL_BETWEEN                                :{BLACK}Odaberi interval između automatskih spremanja igre
+STR_02F7_OFF                                                    :Isključeno
+STR_02F8_EVERY_3_MONTHS                                         :Svaka 3 mjeseca
+STR_02F9_EVERY_6_MONTHS                                         :Svakih 6 mjeseci
+STR_02FA_EVERY_12_MONTHS                                        :Svakih 12 mjeseci
+STR_02FB_START_A_NEW_GAME                                       :{BLACK}Započni novu igru
+STR_02FC_LOAD_A_SAVED_GAME                                      :{BLACK}Učitaj spremljenu igru
+STR_02FE_CREATE_A_CUSTOMIZED_GAME                               :{BLACK}Izradi prilagođeni igrački svijet/scenarij
+STR_02FF_SELECT_SINGLE_PLAYER_GAME                              :{BLACK}Odaberi igru za jednog igrača
+STR_0300_SELECT_MULTIPLAYER_GAME                                :{BLACK}Odaberi igru za 2-8 igrača
+STR_0301_DISPLAY_GAME_OPTIONS                                   :{BLACK}Prikaži opcije igre
+STR_0302_DISPLAY_DIFFICULTY_OPTIONS                             :{BLACK}Prikaži opcije težine
+STR_0303_START_A_NEW_GAME_USING                                 :{BLACK}Započni novu igru koristeći prilagođeni scenarij
+STR_0304_QUIT                                                   :{BLACK}Završi
+STR_0305_QUIT_OPENTTD                                           :{BLACK}Završi 'OpenTTD'
+STR_0307_OPENTTD                                                :{WHITE}OpenTTD {REV}
+STR_030D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...može biti izgrađen samo u gradovima
+STR_030E_SELECT_TEMPERATE_LANDSCAPE                             :{BLACK}Odaberi 'umjeren' stil krajolika
+STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE                            :{BLACK}Odaberi 'subarktički' stil krajolika
+STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE                          :{BLACK}Odaberi 'subtropski' stil krajolika
+STR_0311_SELECT_TOYLAND_LANDSCAPE                               :{BLACK}Odaberi 'zemlju igračka' za stil krajolika
+STR_0312_FUND_CONSTRUCTION_OF_NEW                               :{BLACK}Financiraj izgradnju nove industrije
+
+############ range for menu starts
+STR_INDUSTRY_DIR                                                :Lista gospodarstava
+STR_0313_FUND_NEW_INDUSTRY                                      :Financiraj novo gospodarstvo
+############ range ends here
+
+STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Financiraj novu industriju
+STR_JUST_STRING                                                 :{STRING}
+STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...može biti izgrađen samo u gradovima
+STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...može biti izgrađen samo u predjelima kišnih šuma
+STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...može biti izgrađen samo u pustinjskim područjima
+STR_0319_PAUSED                                                 :{YELLOW}* *  STANKA  *  *
+
+STR_031B_SCREENSHOT_SUCCESSFULLY                                :{WHITE}Slika zaslona uspješno spremljena kao '{STRING}'
+STR_031C_SCREENSHOT_FAILED                                      :{WHITE}Slika zaslona nije uspjela!
+
+STR_0329_PURCHASE_LAND_FOR_FUTURE                               :{BLACK}Kupi zemlju za buduću uporabu
+STR_032F_AUTOSAVE                                               :{RED}AUTOMATSKO SPREMANJE
+STR_SAVING_GAME                                                 :{RED}*  *  SAVING GAME  *  *
+STR_SAVE_STILL_IN_PROGRESS                                      :{WHITE}Spremanje još u tijeku,{}molimo pričekajte dok se ne završi!
+STR_0330_SELECT_EZY_STREET_STYLE                                :{BLACK}Izaberi glazbeni program 'Ezy Street style'
+
+STR_0335_6                                                      :{BLACK}6
+STR_0336_7                                                      :{BLACK}7
+
+############ start of townname region
+STR_TOWNNAME_ORIGINAL_ENGLISH                                   :Engleski (original)
+STR_TOWNNAME_FRENCH                                             :Francuski
+STR_TOWNNAME_GERMAN                                             :Njemački
+STR_TOWNNAME_ADDITIONAL_ENGLISH                                 :Engleski (dodatno)
+STR_TOWNNAME_LATIN_AMERICAN                                     :Latinoamerički
+STR_TOWNNAME_SILLY                                              :Blesavo
+STR_TOWNNAME_SWEDISH                                            :Švedski
+STR_TOWNNAME_DUTCH                                              :Nizozemski
+STR_TOWNNAME_FINNISH                                            :Finski
+STR_TOWNNAME_POLISH                                             :Poljski
+STR_TOWNNAME_SLOVAKISH                                          :Slovački
+STR_TOWNNAME_NORWEGIAN                                          :Norveški
+STR_TOWNNAME_HUNGARIAN                                          :Mađarski
+STR_TOWNNAME_AUSTRIAN                                           :Austrijski
+STR_TOWNNAME_ROMANIAN                                           :Rumunjski
+STR_TOWNNAME_CZECH                                              :Češki
+STR_TOWNNAME_SWISS                                              :Švicarski
+STR_TOWNNAME_DANISH                                             :Danski
+STR_TOWNNAME_TURKISH                                            :Turski
+STR_TOWNNAME_ITALIAN                                            :Talijanski
+STR_TOWNNAME_CATALAN                                            :Katalonski
+############ end of townname region
+
+STR_CURR_GBP                                                    :Funte (£)
+STR_CURR_USD                                                    :Dolari ($)
+STR_CURR_EUR                                                    :Euri (€)
+STR_CURR_YEN                                                    :Jeni (¥)
+STR_CURR_ATS                                                    :Austrijski šiling (ATS)
+STR_CURR_BEF                                                    :Belgijski franak (BEF)
+STR_CURR_CHF                                                    :Švicarski franak (CHF)
+STR_CURR_CZK                                                    :Češka kruna (CZK)
+STR_CURR_DEM                                                    :Njemačka marka (DEM)
+STR_CURR_DKK                                                    :Danska kruna (DKK)
+STR_CURR_ESP                                                    :Pezeta (ESP)
+STR_CURR_FIM                                                    :Finska marka (FIM)
+STR_CURR_FRF                                                    :Franak (FRF)
+STR_CURR_GRD                                                    :Grčka drahma (GRD)
+STR_CURR_HUF                                                    :Mađarski forint (HUF)
+STR_CURR_ISK                                                    :Islandska kruna (ISK)
+STR_CURR_ITL                                                    :Talijanska lira (ITL)
+STR_CURR_NLG                                                    :Nizozemski gulden (NLG)
+STR_CURR_NOK                                                    :Norveška kruna (NOK)
+STR_CURR_PLN                                                    :Poljski zloti (PLN)
+STR_CURR_ROL                                                    :Rumunjski lev (ROL)
+STR_CURR_RUR                                                    :Ruske rublje (RUR)
+STR_CURR_SIT                                                    :Slovenski tolar (SIT)
+STR_CURR_SEK                                                    :Švedska kruna (SEK)
+STR_CURR_YTL                                                    :Turska lira(YTL)
+STR_CURR_SKK                                                    :Slovačka kruna (SKK)
+STR_CURR_BRR                                                    :Brazilski real (BRL)
+
+STR_CURR_CUSTOM                                                 :Proizvoljno...
+
+STR_OPTIONS_LANG                                                :{BLACK}Jezik
+STR_OPTIONS_LANG_CBO                                            :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_OPTIONS_LANG_TIP                                            :{BLACK}Izaberi jezično sučelje
+
+STR_OPTIONS_FULLSCREEN                                          :{BLACK}Cijeli ekran
+STR_OPTIONS_FULLSCREEN_TIP                                      :{BLACK}Označi ovu kućicu kako bi igrao OpenTTD preko cijelog ekrana
+
+STR_OPTIONS_RES                                                 :{BLACK}Razlučivost ekrana
+STR_OPTIONS_RES_CBO                                             :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_OPTIONS_RES_TIP                                             :{BLACK}Izaberi rezoluciju ekrana
+
+STR_OPTIONS_SCREENSHOT_FORMAT                                   :{BLACK}Format za sliku ekrana
+STR_OPTIONS_SCREENSHOT_FORMAT_CBO                               :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_OPTIONS_SCREENSHOT_FORMAT_TIP                               :{BLACK}Izaberi format za sliku ekrana
+
+STR_AUTOSAVE_1_MONTH                                            :Svaki mjesec
+STR_AUTOSAVE_FAILED                                             :{WHITE}Automatsko spremanje neuspješno
+
+STR_MONTH_JAN                                                   :Siječanj
+STR_MONTH_FEB                                                   :Veljača
+STR_MONTH_MAR                                                   :Ožujak
+STR_MONTH_APR                                                   :Travanj
+STR_MONTH_MAY                                                   :Svibanj
+STR_MONTH_JUN                                                   :Lipanj
+STR_MONTH_JUL                                                   :Srpanj
+STR_MONTH_AUG                                                   :Kolovoz
+STR_MONTH_SEP                                                   :Rujan
+STR_MONTH_OCT                                                   :Listopad
+STR_MONTH_NOV                                                   :Studeni
+STR_MONTH_DEC                                                   :Prosinac
+
+STR_HEADING_FOR_STATION                                         :{LTBLUE}Kreće se prema {STATION}
+STR_HEADING_FOR_STATION_VEL                                     :{LTBLUE}Kreće se prema {STATION}, {VELOCITY}
+STR_NO_ORDERS                                                   :{LTBLUE}Nema narudžbi
+STR_NO_ORDERS_VEL                                               :{LTBLUE}Nema narudžbi, {VELOCITY}
+
+STR_PASSENGERS                                                  :putnici
+STR_BAGS                                                        :vreće
+STR_TONS                                                        :tone
+STR_LITERS                                                      :litre
+STR_ITEMS                                                       :jedinice
+STR_CRATES                                                      :sanduci
+STR_RES_OTHER                                                   :ostalo
+STR_NOTHING                                                     :
+
+STR_SMALL_RIGHT_ARROW                                           :{TINYFONT}{RIGHTARROW}
+
+STR_CANT_SHARE_ORDER_LIST                                       :{WHITE}Nije moguće dijeliti rednu listu...
+STR_CANT_COPY_ORDER_LIST                                        :{WHITE}Nije moguće kopirati rednu listu...
+STR_END_OF_SHARED_ORDERS                                        :{SETX 10}- - Kraj dijeljenih naredbi - -
+
+STR_TRAIN_IS_LOST                                               :{WHITE}Vlak {COMMA} se izgubio.
+STR_TRAIN_IS_UNPROFITABLE                                       :{WHITE}Prošlogodišnja zarada vlaka  {COMMA} bila je {CURRENCY}
+STR_EURO_INTRODUCE                                              :{BLACK}{BIGFONT}Europska Monetarna Unija!{}{}Euro je predstavljen kao jedinstvena valuta za svakodnevnu uporabu  u tvojoj zemlji!
+
+# Start of order review system.
+# DON'T ADD OR REMOVE LINES HERE
+STR_TRAIN_HAS_TOO_FEW_ORDERS                                    :{WHITE} Vlak {COMMA} ima premalo naredbi u rasporedu
+STR_TRAIN_HAS_VOID_ORDER                                        :{WHITE}Vlak {COMMA} ima praznu naredbu
+STR_TRAIN_HAS_DUPLICATE_ENTRY                                   :{WHITE}Vlak {COMMA} ima udvostučenu naredbu
+STR_TRAIN_HAS_INVALID_ENTRY                                     :{WHITE}Vlak {COMMA} ima nevažeću stanicu u voznom redu
+STR_ROADVEHICLE_HAS_TOO_FEW_ORDERS                              :{WHITE}Cestovno vozilo {COMMA} ima premalo naredbi u rasporedu
+STR_ROADVEHICLE_HAS_VOID_ORDER                                  :{WHITE}Cestovno vozilo {COMMA} ima praznu naredbu
+STR_ROADVEHICLE_HAS_DUPLICATE_ENTRY                             :{WHITE}Cestovno vozilo {COMMA} ima udvostručenu naredbu
+STR_ROADVEHICLE_HAS_INVALID_ENTRY                               :{WHITE}Cestovno vozilo {COMMA} ima nevažeću stanicu u voznom redu
+STR_SHIP_HAS_TOO_FEW_ORDERS                                     :{WHITE}Brod {COMMA} ima premalo naredbi u rasporedu
+STR_SHIP_HAS_VOID_ORDER                                         :{WHITE}Brod {COMMA} ima praznu naredbu
+STR_SHIP_HAS_DUPLICATE_ENTRY                                    :{WHITE}Brod{COMMA} ima udvostručene naredbe
+STR_SHIP_HAS_INVALID_ENTRY                                      :{WHITE}Brod {COMMA} ima nevažeću stanicu u voznom redu
+STR_AIRCRAFT_HAS_TOO_FEW_ORDERS                                 :{WHITE}Zrakoplov {COMMA} ima premalo naredbi u rasporedu
+STR_AIRCRAFT_HAS_VOID_ORDER                                     :{WHITE}Zrakoplov {COMMA} ima praznu naredbu
+STR_AIRCRAFT_HAS_DUPLICATE_ENTRY                                :{WHITE}Zrakoplov {COMMA} ima udvostručene naredbe
+STR_AIRCRAFT_HAS_INVALID_ENTRY                                  :{WHITE}Zrakoplov {COMMA} ima nevažeću stanicu u voznom redu
+# end of order system
+
+STR_TRAIN_AUTORENEW_FAILED                                      :{WHITE}Neuspješna automatska obnova vlaka {COMMA} (ograničena količina novca)
+STR_ROADVEHICLE_AUTORENEW_FAILED                                :{WHITE}Automatska zamjena nije izvršena na cestovnom vozilu {COMMA} (money limit)
+STR_SHIP_AUTORENEW_FAILED                                       :{WHITE}Neuspješna automatska obnova broda {COMMA} (ograničena količina novca)
+STR_AIRCRAFT_AUTORENEW_FAILED                                   :{WHITE}Neuspjela automatska zamjena zrakoplova {COMMA} (novčano ograničenje)
+STR_TRAIN_TOO_LONG_AFTER_REPLACEMENT                            :{WHITE}Nakon zamjene, vlak {COMMA} je postao predug
+
+STR_CONFIG_PATCHES                                              :{BLACK}Konfiguriraj zakrpe
+STR_CONFIG_PATCHES_TIP                                          :{BLACK}Podesi zakrpe
+STR_CONFIG_PATCHES_CAPTION                                      :{WHITE}Podesi zakrpe
+
+STR_CONFIG_PATCHES_OFF                                          :Isključeno
+STR_CONFIG_PATCHES_ON                                           :Uključeno
+STR_CONFIG_PATCHES_VEHICLESPEED                                 :{LTBLUE}Prikaži brzinu vozila u statusnoj traci: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_BUILDONSLOPES                                :{LTBLUE}Dozvoli gradnju na nagibima i obalama: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_CATCHMENT                                    :{LTBLUE}Dozvoli realističnije veličine područja zahvaćanja: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_EXTRADYNAMITE                                :{LTBLUE}Dopusti rušenje više gradskih cesta, mostova itd.: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MAMMOTHTRAINS                                :{LTBLUE}Omogući sastavljanje vrlo dugačkih vlakova: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_REALISTICACCEL                               :{LTBLUE}Omogući realno ubrzanje za vlakove: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_FORBID_90_DEG                                :{LTBLUE}Zabrani vlakovima i brodovima skretanja pod 90 stupnjeva: {ORANGE}{STRING} {LTBLUE} (requires NPF)
+STR_CONFIG_PATCHES_JOINSTATIONS                                 :{LTBLUE}Spoji željezničke stanice koje se izgrade jedna kraj druge: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_FULLLOADANY                                  :{LTBLUE}Napusti stanicu ako je bilo koji teret u potpunosti natovaren pri 'punom utovaru': {ORANGE}{STRING}
+STR_CONFIG_PATCHES_IMPROVEDLOAD                                 :{LTBLUE}Koristi unaprijeđen algoritam ukrcavanja: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_GRADUAL_LOADING                              :{LTBLUE}Postupno utovaruj vozila: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_INFLATION                                    :{LTBLUE}Inflacija: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Dostavi teret u stanicu samo ako u njoj postoji potražnja: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Dopusti izgradnju vrlo dugačkih mostova: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Dopusti naredbe za slanje u spremište: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Dopusti više sličnih industrija po gradu: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Moguće je graditi spojene industrije iste vrste: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Uvijek prikaži dugi datum u statusnoj traci: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SIGNALSIDE                                   :{LTBLUE}Prikaži znakove na strani po kojoj se vozi: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SHOWFINANCES                                 :{LTBLUE}Prikaži financijski prozor na kraju godine: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_NEW_NONSTOP                                  :{LTBLUE}TTDPatch kompatibilno nonstop rukovanje: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Nizanje cestovnih vozila(sa kvantum efektima): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Pomiči prozor kada je miš na rubu: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Dozvoli potkupljivanje gradskih vlasti: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Neujednačene stanice: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Novo globalno pronalaženje puteva (NPF, isključuje NTP): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Težinski množitelj za teret za simulaciju teških vlakova: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD                            :{LTBLUE}Dozvoli drive-through cestovne prepreke na cestama pod vlašću grada: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS                            :{LTBLUE}Dozvoli izradu spojenih stanica: {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_SMALL_AIRPORTS                               :{LTBLUE}Uvjek omogući male zračne luke: {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_WARN_LOST_TRAIN                              :{LTBLUE}Upozori kad se vlak izgubi: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ORDER_REVIEW                                 :{LTBLUE}Pogledaj naređenja vozila: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ORDER_REVIEW_OFF                             :ne
+STR_CONFIG_PATCHES_ORDER_REVIEW_EXDEPOT                         :da, no isključi zaustavljena vozila
+STR_CONFIG_PATCHES_ORDER_REVIEW_ON                              :od svih vozila
+STR_CONFIG_PATCHES_WARN_INCOME_LESS                             :{LTBLUE}Upozori ako je prihod vlaka negativan: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_NEVER_EXPIRE_VEHICLES                        :{LTBLUE}Vozila ne zastaruju: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AUTORENEW_VEHICLE                            :{LTBLUE}Automatski zamijeni vozilo kada postane staro
+STR_CONFIG_PATCHES_AUTORENEW_MONTHS                             :{LTBLUE}Automatski obnovi vozilo kada je {ORANGE}{STRING}{LTBLUE} mjeseci prije/poslije maksimalnog godišta
+STR_CONFIG_PATCHES_AUTORENEW_MONEY                              :{LTBLUE}Minimum novca potrebnih za automatsko obnavljanje: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ERRMSG_DURATION                              :{LTBLUE}Trajanje poruke s greškom: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_POPULATION_IN_LABEL                          :{LTBLUE}Prikaži broj stanovnika u traci sa imenom grada: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_INVISIBLE_TREES                              :{LTBLUE}Nevidljivo drveće (sa prozirnim građevinama): {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_LAND_GENERATOR                               :{LTBLUE}Generator zemlje: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LAND_GENERATOR_ORIGINAL                      :Izvorno
+STR_CONFIG_PATCHES_LAND_GENERATOR_TERRA_GENESIS                 :TerraGenesis
+STR_CONFIG_PATCHES_OIL_REF_EDGE_DISTANCE                        :{LTBLUE}Maksimalna udaljenost Rafinerija nafte od ruba {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SNOWLINE_HEIGHT                              :{LTBLUE}Visina linije snijega: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN                         :{LTBLUE}Grubost terena (samo TerraGenesis) : {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH             :Vrlo glatko
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_SMOOTH                  :Glatko
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_ROUGH                   :Grubo
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_ROUGH              :Vrlo grubo
+STR_CONFIG_PATCHES_TREE_PLACER                                  :{LTBLUE}Algoritam postavljanja drveća: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TREE_PLACER_NONE                             :Nijedan
+STR_CONFIG_PATCHES_TREE_PLACER_ORIGINAL                         :Izvorno
+STR_CONFIG_PATCHES_TREE_PLACER_IMPROVED                         :Unaprijeđeno
+STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION                           :{LTBLUE}Rotacija visinske mape: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE         :Obrnuto smjeru kazaljke na satu
+STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_CLOCKWISE                 :U smjeru kazaljke na satu
+STR_CONFIG_PATCHES_SE_FLAT_WORLD_HEIGHT                         :{LTBLUE}Visinski nivo koji ravna mapa u scenariju dobiva: {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_STATION_SPREAD                               :{LTBLUE}Maksimalna raširenost stanice: {ORANGE}{STRING} {RED}Pozor: Visoka vrijednost usporuje igru
+STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Automatski servisiraj helikoptere na heliodromima: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR                       :{LTBLUE}Poveži alatnu traku za krajolik sa alatnim trakama za željeznicu/ceste/vodu/zračne luke: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_REVERSE_SCROLLING                            :{LTBLUE}Okreni smjer pomicanja: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING                             :{LTBLUE}Glatko skrolanje kroz mini pogled: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MEASURE_TOOLTIP                              :{LTBLUE}Pokaži mjerni opis kod korištenja raznih alata za izgradnju: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LIVERIES                                     :{LTBLUE}Pokaži tvrtkine livreje: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LIVERIES_NONE                                :Ništa
+STR_CONFIG_PATCHES_LIVERIES_OWN                                 :Vlastita tvrtka
+STR_CONFIG_PATCHES_LIVERIES_ALL                                 :Sve tvrtke
+STR_CONFIG_PATCHES_PREFER_TEAMCHAT                              :{LTBLUE}Preferiraj timski chat sa <ENTER>:{ORANGE}{STRING}
+STR_CONFIG_PATCHES_SCROLLWHEEL_SCROLLING                        :{LTBLUE}Funkcija kotačića: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SCROLLWHEEL_ZOOM                             :Zumiraj kartu
+STR_CONFIG_PATCHES_SCROLLWHEEL_SCROLL                           :Skrolaj kartom
+STR_CONFIG_PATCHES_SCROLLWHEEL_OFF                              :Isključeno
+STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER                       :{LTBLUE}Brzina kotačića za skrolanje: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Automatski pauziraj kad pokrećeš novu igru: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}Koristi naprednu listu vozila: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Koristi indikatore utovara: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Uključi raspored za vozila: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Pokaži raspored u otkucajima radije nego u danima: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Zadana vrsta tračnica (poslije nove igre/podizanja igre): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Normalne Tračnice
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Elektrificirane Tračnice
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Monopruga
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Maglev
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Prvi dostupan
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Zadnji dostupan
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Najčešće korišten
+
+STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Maksimalan broj vlakova po igraču: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Maximalan broj cestovnih vozila po igraču: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Maksimalan broj zrakoplova po igraču: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MAX_SHIPS                                    :{LTBLUE}Maximalan broj brodova po igraču: {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_AI_BUILDS_TRAINS                             :{LTBLUE}Isključi vlakove za računalo: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AI_BUILDS_ROADVEH                            :{LTBLUE}Isključi cestovna vozila za računalo: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AI_BUILDS_AIRCRAFT                           :{LTBLUE}Isključi zrakoplov za računalo: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AI_BUILDS_SHIPS                              :{LTBLUE}Isključi cestovna vozila za računalo: {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_AINEW_ACTIVE                                 :{LTBLUE}Omogući novi AI (alfa): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AI_IN_MULTIPLAYER                            :{LTBLUE}Omogući AI u modu s više igrača (eksperimentalno): {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_SERVINT_TRAINS                               :{LTBLUE}Pretpostavljeni period servisiranja vlakova: {ORANGE}{STRING} dana/%
+STR_CONFIG_PATCHES_SERVINT_TRAINS_DISABLED                      :{LTBLUE}Pretpostavljeni period servisiranja vlakova: {ORANGE}onemogućeno
+STR_CONFIG_PATCHES_SERVINT_ROADVEH                              :{LTBLUE}Pretpostavljeni period servisiranja cestovnih vozila: {ORANGE}{STRING} dana/%
+STR_CONFIG_PATCHES_SERVINT_ROADVEH_DISABLED                     :{LTBLUE}Pretpostavljeni period servisiranja cestovnih vozila: {ORANGE}onemogućeno
+STR_CONFIG_PATCHES_SERVINT_AIRCRAFT                             :{LTBLUE}Pretpostavljeni period servisiranja zrakoplova: {ORANGE}{STRING} dana/%
+STR_CONFIG_PATCHES_SERVINT_AIRCRAFT_DISABLED                    :{LTBLUE}Pretpostavljeni period servisiranja aviona: {ORANGE}onemogućeno
+STR_CONFIG_PATCHES_SERVINT_SHIPS                                :{LTBLUE}Pretpostavljeni period servisiranja brodova: {ORANGE}{STRING} dana/%
+STR_CONFIG_PATCHES_SERVINT_SHIPS_DISABLED                       :{LTBLUE}Pretpostavljeni period servisiranja brodova: {ORANGE}onemogućeno
+STR_CONFIG_PATCHES_NOSERVICE                                    :{LTBLUE}Isključi servisiranje kada su kvarovi postavljeni na nula: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_WAGONSPEEDLIMITS                             :{LTBLUE}Uključi ograničenje brzine za vagone: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DISABLE_ELRAILS                              :{LTBLUE}Onemogući električne tračnice: {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_COLORED_NEWS_YEAR                            :{LTBLUE}Vijesti u boji pojavljuju se: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_STARTING_YEAR                                :{LTBLUE}Početna godina: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ENDING_YEAR                                  :{LTBLUE}Završna godina: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_ECONOMY                               :{LTBLUE}Uključi tečnu ekonomiju (više manjih izazova)
+STR_CONFIG_PATCHES_ALLOW_SHARES                                 :{LTBLUE}Dopusti kupovanje udjela drugih tvrtki
+STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY                         :{LTBLUE}Kod povlačenja, postavi signale svakih/svaku; {ORANGE}{STRING}pločica/u
+STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE                  :{LTBLUE}Automatski izgradi semafore prije: {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_TOWN_LAYOUT_INVALID                          :{WHITE}Izgled grada "bezviše cesta" nije valjan u editoru scenarija
+STR_CONFIG_PATCHES_TOWN_LAYOUT                                  :{LTBLUE}Odaberi grad-cesta raspored: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TOWN_LAYOUT_NO_ROADS                         :nema više cesta
+STR_CONFIG_PATCHES_TOWN_LAYOUT_DEFAULT                          :inicijalno
+STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS                     :bolje ceste
+STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID                         :2x2 mreža
+STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID                         :3x3 mreža
+
+STR_CONFIG_PATCHES_TOOLBAR_POS                                  :{LTBLUE}Položaj glavne alatne trake: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT                             :Lijevo
+STR_CONFIG_PATCHES_TOOLBAR_POS_CENTER                           :Sredina
+STR_CONFIG_PATCHES_TOOLBAR_POS_RIGHT                            :Desno
+STR_CONFIG_PATCHES_SNAP_RADIUS                                  :{LTBLUE}Radijus hvazanja  prozora: {ORANGE}{STRING} px
+STR_CONFIG_PATCHES_SNAP_RADIUS_DISABLED                         :{LTBLUE}Radijus hvatanja prozora: {ORANGE}isključen
+STR_CONFIG_PATCHES_TOWN_GROWTH                                  :{LTBLUE}Brzina rasta gradova: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TOWN_GROWTH_NONE                             :Ništa
+STR_CONFIG_PATCHES_TOWN_GROWTH_SLOW                             :Sporo
+STR_CONFIG_PATCHES_TOWN_GROWTH_NORMAL                           :Normalno
+STR_CONFIG_PATCHES_TOWN_GROWTH_FAST                             :Brzo
+STR_CONFIG_PATCHES_TOWN_GROWTH_VERY_FAST                        :Vrlo brzo
+STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Proporcije mjesta koja će postati gradovi: {ORANGE}1 u {STRING}
+STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Proporcije mjesta koja će postati gradovi: {ORANGE} Ništa
+
+STR_CONFIG_PATCHES_GUI                                          :{BLACK}Sučelje
+STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Izgradnja
+STR_CONFIG_PATCHES_VEHICLES                                     :{BLACK}Vozila
+STR_CONFIG_PATCHES_STATIONS                                     :{BLACK}Stanice
+STR_CONFIG_PATCHES_ECONOMY                                      :{BLACK}Ekonomija
+STR_CONFIG_PATCHES_AI                                           :{BLACK}Konkurenti
+
+STR_CONFIG_PATCHES_DISABLED                                     :onemogućeno
+STR_CONFIG_PATCHES_INT32                                        :{NUM}
+STR_CONFIG_PATCHES_CURRENCY                                     :{CURRENCY}
+
+STR_CONFIG_PATCHES_QUERY_CAPT                                   :{WHITE}Promjeni vrijednost postavke
+STR_CONFIG_PATCHES_SERVICE_INTERVAL_INCOMPATIBLE                :{WHITE}Neki ili svi od zadanih servisnih intervala ispod nisu kompatibilni sa odabranim postavkama! 5-90% ili 30-800 dana su valjane vrijednosti
+STR_CONFIG_PATCHES_YAPF_SHIPS                                   :{LTBLUE}Koristi YAPF za brodove: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_YAPF_ROAD                                    :{LTBLUE}Koristi YAPF za cestovna vozila: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_YAPF_RAIL                                    :{LTBLUE}Koristi YAPF za vlakove: {ORANGE}{STRING}
+
+STR_TEMPERATE_LANDSCAPE                                         :Umjereni krajolik
+STR_SUB_ARCTIC_LANDSCAPE                                        :Pod-arktički krajolik
+STR_SUB_TROPICAL_LANDSCAPE                                      :Sub-tropski krajolik
+STR_TOYLAND_LANDSCAPE                                           :Toyland krajolik
+
+STR_CHEATS                                                      :{WHITE}Varanje
+STR_CHEATS_TIP                                                  :{BLACK}Kvačice ukazuju na to jesi li koristio ovo varanje prije
+STR_CHEATS_WARNING                                              :{BLACK}Upozorenje! Upravo se spremaš izdati svoj kolege natjecatelje. Imaj na umu da se takva sramota pamti zauvijek.
+STR_CHEAT_MONEY                                                 :{LTBLUE}Povećava novce za {CURRENCY}
+STR_CHEAT_CHANGE_PLAYER                                         :{LTBLUE}Igraj kao igrač: {ORANGE}{COMMA}
+STR_CHEAT_EXTRA_DYNAMITE                                        :{LTBLUE}Čudesni buldožer (uklanja industrije, nepokretne objekte): {ORANGE}{STRING}
+STR_CHEAT_CROSSINGTUNNELS                                       :{LTBLUE}Tuneli se mogu ukrštavati međusobno: {ORANGE}{STRING}
+STR_CHEAT_BUILD_IN_PAUSE                                        :{LTBLUE}Gradi dok je vrijeme zaustavljeno: {ORANGE}{STRING}
+STR_CHEAT_NO_JETCRASH                                           :{LTBLUE}Veliki avioni se ne će rušiti (često) na malim zračnim lukama: {ORANGE} {STRING}
+STR_CHEAT_SWITCH_CLIMATE                                        :{LTBLUE}Promijeni klimu: {ORANGE} {STRING}
+STR_CHEAT_CHANGE_DATE                                           :{LTBLUE}Promijeni datum: {ORANGE} {DATE_SHORT}
+STR_CHEAT_SETUP_PROD                                            :{LTBLUE}Omogući izmjeni produkcijskih vrijednosti: {ORANGE}{STRING}
+
+STR_HEADING_FOR_WAYPOINT                                        :{LTBLUE}Ide prema {WAYPOINT}
+STR_HEADING_FOR_WAYPOINT_VEL                                    :{LTBLUE}Ide prema {WAYPOINT}, {VELOCITY}
+
+STR_GO_TO_WAYPOINT                                              :Idi preko {WAYPOINT}
+STR_GO_NON_STOP_TO_WAYPOINT                                     :Idi non-stop preko {WAYPOINT}
+
+STR_WAYPOINTNAME_CITY                                           : Čvorište{TOWN}
+STR_WAYPOINTNAME_CITY_SERIAL                                    :Čvorište {TOWN} #{COMMA}
+STR_LANDINFO_WAYPOINT                                           :Čvorište
+
+STR_WAYPOINT                                                    :{WHITE}Čvorište
+STR_WAYPOINT_GRAPHICS_TIP                                       :{BLACK}Odaberi vrstu čvorišta
+
+STR_WAYPOINT_VIEWPORT                                           :{WHITE}{WAYPOINT}
+STR_WAYPOINT_VIEWPORT_TINY                                      :{TINYFONT}{WHITE}{WAYPOINT}
+STR_WAYPOINT_RAW                                                :{WAYPOINT}
+STR_EDIT_WAYPOINT_NAME                                          :{WHITE}Promjeni ime čvorišta
+
+STR_CANT_CHANGE_WAYPOINT_NAME                                   :{WHITE}Ne možeš promijeniti ime smjerokaza...
+STR_CONVERT_RAIL_TO_WAYPOINT_TIP                                :{BLACK}Promijeni tračnicu u čvorište
+STR_CANT_BUILD_TRAIN_WAYPOINT                                   :{WHITE}Ne možeš izgraditi željeznički smjerokaz ovdje...
+STR_CANT_REMOVE_TRAIN_WAYPOINT                                  :{WHITE}Ne možeš ukloniti željeznički smjerokaz odavdje...
+
+STR_BUILD_AUTORAIL_TIP                                          :{BLACK}Izgradi željezničku tračnicu koristeći Autorail modus
+
+STR_NO_TOWN_IN_SCENARIO                                         :{WHITE}...u ovom scenariju nema gradova
+
+STR_GENERATE_RANDOM_LANDSCAPE                                   :{WHITE}Jeste li sigurni da želite napraviti nasumični krajolik?
+STR_MANY_RANDOM_TOWNS                                           :{BLACK}Mnogo nasumičnih gradova
+STR_RANDOM_TOWNS_TIP                                            :{BLACK}Popuni kartu nasumce smještenim gradovima
+STR_MANY_RANDOM_INDUSTRIES                                      :{BLACK}Mnoge nasumične industrije
+STR_RANDOM_INDUSTRIES_TIP                                       :{BLACK}Popuni kartu nasumce smještenim industrijama
+STR_CAN_T_GENERATE_INDUSTRIES                                   :{WHITE}Ne možeš generirati gospodarstva...
+
+STR_LANDSCAPING_TOOLBAR_TIP                                     :{BLACK}Otvori alatnu traku za snižavanje/povećavanje, sadnju drveća, itd.
+STR_LANDSCAPING_TOOLBAR                                         :{WHITE}Uređivanje krajolika
+STR_LEVEL_LAND_TOOLTIP                                          :{BLACK}Ravnanje površine
+
+
+STR_TREES_RANDOM_TYPE                                           :{BLACK}Raznovrsno drveće
+STR_TREES_RANDOM_TYPE_TIP                                       :{BLACK}Stavi drveće nasumičnog tipa
+
+STR_CANT_BUILD_CANALS                                           :{WHITE}Ovdje ne možeš graditi kanale...
+STR_BUILD_CANALS_TIP                                            :{BLACK}Izgradi kanale.
+STR_LANDINFO_CANAL                                              :Kanal
+
+STR_CANT_BUILD_LOCKS                                            :{WHITE}Ne mogu graditi brane ovdje...
+STR_BUILD_LOCKS_TIP                                             :{BLACK}Izgradi brane
+STR_LANDINFO_LOCK                                               :Brana
+
+STR_BUOY_IS_IN_USE                                              :{WHITE}...plutača je u uporabi!
+
+STR_LANDINFO_COORDS                                             :{BLACK}Koordinate: {LTBLUE}{NUM}x{NUM} ({STRING})
+
+STR_CANT_REMOVE_PART_OF_STATION                                 :{WHITE}Ne možeš ukloniti dio stanice...
+STR_CANT_CONVERT_RAIL                                           :{WHITE}Ne možeš pretvoriti vrstu tračnica ovdje...
+STR_CONVERT_RAIL_TIP                                            :{BLACK}Konvertiraj/Nadogradi vrstu tračnica
+
+STR_DRAG_WHOLE_TRAIN_TO_SELL_TIP                                :{BLACK}Povucite lokomotivu na ovo mjesto da bi prodaoli cijeli vlak
+
+STR_DRAG_DROP                                                   :{BLACK}Povuci i spusti
+STR_STATION_DRAG_DROP                                           :{BLACK}Napravi stanicu koristeći drag & drop
+STR_SELECT_STATION_CLASS_TIP                                    :{BLACK}Odaberite vrstu stanice koju želite vidjeti
+STR_SELECT_STATION_TYPE_TIP                                     :{BLACK}Izaberite vrstu stanice za izgradnju
+
+STR_FAST_FORWARD                                                :{BLACK}Premotaj igru naprijed
+STR_MESSAGE_HISTORY                                             :{WHITE}Povijest poruka
+STR_MESSAGE_HISTORY_TIP                                         :{BLACK}Popis nedavnih novinskih poruka
+STR_MESSAGES_DISABLE_ALL                                        :{BLACK}Onemogući sve
+STR_MESSAGES_ENABLE_ALL                                         :{BLACK}Omogući sve
+
+STR_CONSTRUCT_COAL_MINE_TIP                                     :{BLACK}Izgradi rudnik ugljena
+STR_CONSTRUCT_FOREST_TIP                                        :{BLACK}Posadi šumu
+STR_CONSTRUCT_OIL_RIG_TIP                                       :{BLACK}Izgradi naftnu bušotinu
+STR_CONSTRUCT_FARM_TIP                                          :{BLACK}Financiraj farmu
+STR_CONSTRUCT_COPPER_ORE_MINE_TIP                               :{BLACK}Izgradi rudnik bakra
+STR_CONSTRUCT_OIL_WELLS_TIP                                     :{BLACK}Bušenjem traži naftu
+STR_CONSTRUCT_GOLD_MINE_TIP                                     :{BLACK}Izgradi rudnik zlata
+STR_CONSTRUCT_DIAMOND_MINE_TIP                                  :{BLACK}Izgradi rudnik dijamanata
+STR_CONSTRUCT_IRON_ORE_MINE_TIP                                 :{BLACK}Izgradi rudnik željeza
+STR_CONSTRUCT_FRUIT_PLANTATION_TIP                              :{BLACK}Financiraj plantažu voća
+STR_CONSTRUCT_RUBBER_PLANTATION_TIP                             :{BLACK}Financiraj plantažu gume
+STR_CONSTRUCT_WATER_SUPPLY_TIP                                  :{BLACK}Financiraj izvor vode
+STR_CONSTRUCT_COTTON_CANDY_TIP                                  :{BLACK}Posadi šumu šećerne vune
+STR_CONSTRUCT_BATTERY_FARM_TIP                                  :{BLACK}Financiraj tvornicu baterija
+STR_CONSTRUCT_COLA_WELLS_TIP                                    :{BLACK}Bušenjem traži Colu
+STR_CONSTRUCT_PLASTIC_FOUNTAINS_TIP                             :{BLACK}Financiraj izvore plastike
+STR_CONSTRUCT_BUBBLE_GENERATOR_TIP                              :{BLACK}Izgradi generator balona
+STR_CONSTRUCT_TOFFEE_QUARRY_TIP                                 :{BLACK}Financiraj kamenolom mliječne karamele
+STR_CONSTRUCT_SUGAR_MINE_TIP                                    :{BLACK}Izgradi šećeranu
+
+STR_INDUSTRYDIR_CAPTION                                         :{WHITE}Gospodarstva
+STR_INDUSTRYDIR_ITEM                                            :{ORANGE}{INDUSTRY}{BLACK} ({CARGO}){YELLOW} ({COMMA}% prevezeno)
+STR_INDUSTRYDIR_ITEM_TWO                                        :{ORANGE}{INDUSTRY}{BLACK} ({CARGO}/{CARGO}){YELLOW} ({COMMA}%/{COMMA}% prevezeno)
+STR_INDUSTRYDIR_ITEM_NOPROD                                     :{ORANGE}{INDUSTRY}
+
+STR_INDUSTRY_TOO_CLOSE                                          :{WHITE}...preblizu drugom gospodarstvu
+
+STR_RAIL_REFIT_VEHICLE_TO_CARRY                                 :{BLACK}Prepravi vlak kako bi nosio drugu vrstu tereta
+STR_RAIL_REFIT_VEHICLE                                          :{BLACK}Prepravi vlak
+STR_RAIL_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Izaberi vrstu tereta koju će vlak nositi
+STR_RAIL_REFIT_TO_CARRY_HIGHLIGHTED                             :{BLACK}Prepravi vlak kako bi nosio označenu vrstu tereta
+STR_RAIL_CAN_T_REFIT_VEHICLE                                    :{WHITE}Ne možeš prepraviti vlak...
+STR_CONFIG_PATCHES_SERVINT_ISPERCENT                            :{LTBLUE}Servisni intervali u postotcima: {ORANGE}{STRING}
+STR_CONFIG_GAME_PRODUCTION                                      :{WHITE}Promijeni proizvodnju
+
+TEMP_AI_IN_PROGRESS                                             :{WHITE}Dobrodošli u novi AI pod razvojem. Ukoliko naiđete na probleme, napravite sliku ekrana i stavite ju na forum.
+TEMP_AI_ACTIVATED                                               :{WHITE}Upozorenje: ovaj novi AI je još uvijek alfa! Trenutno, samo kamioni i autobusi rade!
+TEMP_AI_MULTIPLAYER                                             :{WHITE}Upozorenje: implementacije je još uvijek pokusna (koristeći novi AI). Molimo prijavite bilo kakav problem na truelight@openttd.org
+
+############ network gui strings
+
+STR_NETWORK_MULTIPLAYER                                         :{WHITE}Više igrača
+
+STR_NETWORK_PLAYER_NAME                                         :{BLACK}Ime igrača:
+STR_NETWORK_ENTER_NAME_TIP                                      :{BLACK}Ovo je ime po kojem će te drugi igrači identificirati
+STR_NETWORK_CONNECTION                                          :{BLACK}Veza:
+STR_NETWORK_CONNECTION_TIP                                      :{BLACK}Izaberi između internetske igre ili igre preko lokalne mreže (LAN)
+
+STR_NETWORK_START_SERVER                                        :{BLACK}Pokreni poslužitelj
+STR_NETWORK_START_SERVER_TIP                                    :{BLACK}Pokreni vlastiti poslužitelj
+
+STR_NETWORK_GAME_NAME                                           :{BLACK}Ime
+STR_NETWORK_GAME_NAME_TIP                                       :{BLACK}Ime igre
+STR_NETWORK_INFO_ICONS_TIP                                      :{BLACK}Jezik, verzija poslužitelja, itd.
+STR_NETWORK_CLICK_GAME_TO_SELECT                                :{BLACK}Klikni na igru s liste kako bi ju izabrao
+
+STR_NETWORK_FIND_SERVER                                         :{BLACK}Pronađi poslužitelj
+STR_NETWORK_FIND_SERVER_TIP                                     :{BLACK}Pronađi poslužitelje u mreži
+STR_NETWORK_ADD_SERVER                                          :{BLACK}Dodaj poslužitelj
+STR_NETWORK_ADD_SERVER_TIP                                      :{BLACK}Dodaje poslužitelj na popis koji će uvijek biti provjeren postoje li igre u tijeku.
+STR_NETWORK_ENTER_IP                                            :{BLACK}Unesi adresu domaćina
+
+STR_NETWORK_GENERAL_ONLINE                                      :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA}
+STR_NETWORK_CLIENTS_CAPTION                                     :{BLACK}Klijenti
+STR_NETWORK_CLIENTS_CAPTION_TIP                                 :{BLACK}Klijenata online / klijenata maks{}Tvrki online / tvrki maks
+STR_NETWORK_GAME_INFO                                           :{SILVER}INFO O IGRI
+STR_ORANGE                                                      :{ORANGE}{STRING}
+STR_NETWORK_CLIENTS                                             :{SILVER}Klijenti:  {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
+STR_NETWORK_LANGUAGE                                            :{SILVER}Jezik:  {WHITE}{STRING}
+STR_NETWORK_TILESET                                             :{SILVER}Set pločica:  {WHITE}{STRING}
+STR_NETWORK_MAP_SIZE                                            :{SILVER}Veličina karte:  {WHITE}{COMMA}x{COMMA}
+STR_NETWORK_SERVER_VERSION                                      :{SILVER}Verzija poslužitelja:  {WHITE}{STRING}
+STR_NETWORK_SERVER_ADDRESS                                      :{SILVER}Adresa poslužitelja:  {WHITE}{STRING} : {NUM}
+STR_NETWORK_START_DATE                                          :{SILVER}Datum početka:  {WHITE}{DATE_SHORT}
+STR_NETWORK_CURRENT_DATE                                        :{SILVER}Trenutni datum:  {WHITE}{DATE_SHORT}
+STR_NETWORK_PASSWORD                                            :{SILVER}Zaštićeno zaporkom!
+STR_NETWORK_SERVER_OFFLINE                                      :{SILVER}POSLUŽITELJ NEDOSTUPAN
+STR_NETWORK_SERVER_FULL                                         :{SILVER}POSLUŽITELJ PUN
+STR_NETWORK_VERSION_MISMATCH                                    :{SILVER}RAZLIKA U VERZIJAMA
+STR_NETWORK_GRF_MISMATCH                                        :{SILVER}NEWGRF GREŠKA
+
+STR_NETWORK_JOIN_GAME                                           :{BLACK}Pridruži se igri
+
+
+STR_NETWORK_START_GAME_WINDOW                                   :{WHITE}Započni novu igru za više igrača
+
+STR_NETWORK_NEW_GAME_NAME                                       :{BLACK}Ime igre:
+STR_NETWORK_NEW_GAME_NAME_TIP                                   :{BLACK}Ime igre bit će prikazno drugim igračima u izborniku za odabir igre s više igrača
+STR_NETWORK_SET_PASSWORD                                        :{BLACK}Postavi zaporku
+STR_NETWORK_PASSWORD_TIP                                        :{BLACK}Zaštiti svoju igru pomoću zaporke ukoliko ne želiš da bude javno dostupna
+STR_NETWORK_SELECT_MAP                                          :{BLACK}Izaberi kartu:
+STR_NETWORK_SELECT_MAP_TIP                                      :{BLACK}Koju kartu želiš igrati?
+STR_NETWORK_NUMBER_OF_CLIENTS                                   :{BLACK}Maks klijenata:
+STR_NETWORK_NUMBER_OF_CLIENTS_TIP                               :{BLACK}Izaberi maksimalan broj klijenata. Ne moraju sva mjesta biti popunjena.
+STR_NETWORK_COMBO1                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_NETWORK_LAN                                                 :LAN
+STR_NETWORK_INTERNET                                            :Internet
+STR_NETWORK_LAN_INTERNET                                        :LAN / Internet
+STR_NETWORK_INTERNET_ADVERTISE                                  :Internet (oglasi)
+STR_NETWORK_COMBO2                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_NETWORK_0_PLAYERS                                           :0 igrača
+STR_NETWORK_1_PLAYERS                                           :1 igrač
+STR_NETWORK_2_PLAYERS                                           :2 igrača
+STR_NETWORK_3_PLAYERS                                           :3 igrača
+STR_NETWORK_4_PLAYERS                                           :4 igrača
+STR_NETWORK_5_PLAYERS                                           :5 igrača
+STR_NETWORK_6_PLAYERS                                           :6 igrača
+STR_NETWORK_7_PLAYERS                                           :7 igrača
+STR_NETWORK_8_PLAYERS                                           :8 igrača
+STR_NETWORK_9_PLAYERS                                           :9 igrača
+STR_NETWORK_10_PLAYERS                                          :10 igrača
+STR_NETWORK_NUMBER_OF_COMPANIES                                 :{BLACK}Maks tvrki:
+STR_NETWORK_NUMBER_OF_COMPANIES_TIP                             :{BLACK}Ograniči poslužitelj na određeni broj tvrtki
+STR_NETWORK_COMBO3                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_NETWORK_NUMBER_OF_SPECTATORS                                :{BLACK}Maks promatrača:
+STR_NETWORK_NUMBER_OF_SPECTATORS_TIP                            :{BLACK}Ograniči poslužitelj na određeni broj gledatelja
+STR_NETWORK_COMBO4                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_NETWORK_LANGUAGE_SPOKEN                                     :{BLACK}Jezik kojim se govori:
+STR_NETWORK_LANGUAGE_TIP                                        :{BLACK}Drugi igrači znati će kojim se jezikom govori na poslužitelju
+STR_NETWORK_COMBO5                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_NETWORK_START_GAME                                          :{BLACK}Započni igru
+STR_NETWORK_START_GAME_TIP                                      :{BLACK}Započni novu igru u mreži na nasumičnoj mapi ili iz scenarija
+STR_NETWORK_LOAD_GAME                                           :{BLACK}Učitaj igru
+STR_NETWORK_LOAD_GAME_TIP                                       :{BLACK}Nastavi snimljenu igru za više igrača (pazite da se spojite pod svojim imenom)
+
+############ Leave those lines in this order!!
+STR_NETWORK_LANG_ANY                                            :Bilo koji
+STR_NETWORK_LANG_ENGLISH                                        :Engleski
+STR_NETWORK_LANG_GERMAN                                         :Njemački
+STR_NETWORK_LANG_FRENCH                                         :Francuski
+STR_NETWORK_LANG_BRAZILIAN                                      :Brazilski
+STR_NETWORK_LANG_BULGARIAN                                      :Bugarski
+STR_NETWORK_LANG_CHINESE                                        :Kineski
+STR_NETWORK_LANG_CZECH                                          :Češki
+STR_NETWORK_LANG_DANISH                                         :Danski
+STR_NETWORK_LANG_DUTCH                                          :Nizozemski
+STR_NETWORK_LANG_ESPERANTO                                      :Esperanto
+STR_NETWORK_LANG_FINNISH                                        :Finski
+STR_NETWORK_LANG_HUNGARIAN                                      :Mađarski
+STR_NETWORK_LANG_ICELANDIC                                      :Islandski
+STR_NETWORK_LANG_ITALIAN                                        :Talijanski
+STR_NETWORK_LANG_JAPANESE                                       :Japanski
+STR_NETWORK_LANG_KOREAN                                         :Korejski
+STR_NETWORK_LANG_LITHUANIAN                                     :Litavski
+STR_NETWORK_LANG_NORWEGIAN                                      :Norveški
+STR_NETWORK_LANG_POLISH                                         :Poljski
+STR_NETWORK_LANG_PORTUGUESE                                     :Portugalski
+STR_NETWORK_LANG_ROMANIAN                                       :Rumunjski
+STR_NETWORK_LANG_RUSSIAN                                        :Ruski
+STR_NETWORK_LANG_SLOVAK                                         :Slovački
+STR_NETWORK_LANG_SLOVENIAN                                      :Slovenski
+STR_NETWORK_LANG_SPANISH                                        :Španjolski
+STR_NETWORK_LANG_SWEDISH                                        :Švedski
+STR_NETWORK_LANG_TURKISH                                        :Turski
+STR_NETWORK_LANG_UKRAINIAN                                      :Ukrajinski
+############ End of leave-in-this-order
+
+STR_NETWORK_GAME_LOBBY                                          :{WHITE}Predvorje multiplayer igre
+
+STR_NETWORK_PREPARE_TO_JOIN                                     :{BLACK}Pripremanje za pridruživanje:   {ORANGE}{STRING}
+STR_NETWORK_COMPANY_LIST_TIP                                    :{BLACK}Popis svih kompanija trenutno u igri. Možete se pridružiti jednoj ili osnovati novu ako postoji slobodno mjesto
+STR_NETWORK_NEW_COMPANY                                         :{BLACK}Nova tvrtka
+STR_NETWORK_NEW_COMPANY_TIP                                     :{BLACK}Otvori novu tvrtku
+STR_NETWORK_SPECTATE_GAME                                       :{BLACK}Gledaj igru
+STR_NETWORK_SPECTATE_GAME_TIP                                   :{BLACK}Promatraj igru kao gledatelj
+STR_NETWORK_JOIN_COMPANY                                        :{BLACK}Pridruži se tvrtki
+STR_NETWORK_JOIN_COMPANY_TIP                                    :{BLACK}Pomogni upravljati ovom tvrtkom
+STR_NETWORK_REFRESH                                             :{BLACK}Osvježi poslužitelja
+STR_NETWORK_REFRESH_TIP                                         :{BLACK}Osvježi podatke o poslužitelju
+
+STR_NETWORK_COMPANY_INFO                                        :{SILVER}PODACI O TVRTKI
+
+STR_NETWORK_COMPANY_NAME                                        :{SILVER}Ime tvrtke:  {WHITE}{STRING}
+STR_NETWORK_INAUGURATION_YEAR                                   :{SILVER}Preuzimanje dužnosti:  {WHITE}{NUM}
+STR_NETWORK_VALUE                                               :{SILVER}Vrijednost tvrtke:  {WHITE}{CURRENCY}
+STR_NETWORK_CURRENT_BALANCE                                     :{SILVER}Trenutno stanje:  {WHITE}{CURRENCY}
+STR_NETWORK_LAST_YEARS_INCOME                                   :{SILVER}Prošlogodišnji prihod:  {WHITE}{CURRENCY}
+STR_NETWORK_PERFORMANCE                                         :{SILVER}Izvršavanje: {WHITE}{NUM}
+
+STR_NETWORK_VEHICLES                                            :{SILVER}Vozila:  {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {PLANE}, {NUM} {SHIP}
+STR_NETWORK_STATIONS                                            :{SILVER}Stanice:  {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {PLANE}, {NUM} {SHIP}
+STR_NETWORK_PLAYERS                                             :{SILVER}Igrači:  {WHITE}{STRING}
+
+STR_NETWORK_CONNECTING                                          :{WHITE}Spajanje...
+
+############ Leave those lines in this order!!
+STR_NETWORK_CONNECTING_1                                        :{BLACK}(1/6) Spajanje u toku..
+STR_NETWORK_CONNECTING_2                                        :{BLACK}(2/6) Provjera ovlaštenja..
+STR_NETWORK_CONNECTING_3                                        :{BLACK}(3/6) Čekanje..
+STR_NETWORK_CONNECTING_4                                        :{BLACK}(4/6) Preuzimanje karte..
+STR_NETWORK_CONNECTING_5                                        :{BLACK}(5/6) Obrada podataka..
+STR_NETWORK_CONNECTING_6                                        :{BLACK}(6/6) Prijavljivanje..
+
+STR_NETWORK_CONNECTING_SPECIAL_1                                :{BLACK}Dohvaćanje podataka o igri..
+STR_NETWORK_CONNECTING_SPECIAL_2                                :{BLACK}Dohvaćanje podataka o tvrtki..
+############ End of leave-in-this-order
+STR_NETWORK_CONNECTING_WAITING                                  :{BLACK}{NUM} klijen{P t ta ata} {P je su je} prije Vas
+STR_NETWORK_CONNECTING_DOWNLOADING                              :{BLACK} Do sad je preuzeto {NUM} / {NUM} kbajta
+
+STR_NETWORK_DISCONNECT                                          :{BLACK}Odspoji
+
+STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Unesite količinu novca koju želite dati
+STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Poslužitelj je zaštićen. Upišite zaporku
+STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Tvrtka je zaštićena. Unesite zaporku
+STR_NETWORK_CLIENT_LIST                                         :{WHITE}Popis klijenata
+
+STR_NETWORK_ERR_NOTAVAILABLE                                    :{WHITE}Nisu pronađeni mrežni uređaji ili je kompajlirano bez ENABLE_NETWORK
+STR_NETWORK_ERR_NOSERVER                                        :{WHITE} Niti jedna mrežna igra nije pronađena
+STR_NETWORK_ERR_NOCONNECTION                                    :{WHITE} Poslužitelj nije odgovorio na zahtjev
+STR_NETWORK_ERR_NEWGRF_MISMATCH                                 :{WHITE} Ne mogu se spojiti zbog neslaganja u NewGRF
+STR_NETWORK_ERR_DESYNC                                          :{WHITE} Neuspješno usklađivanje mrežne igre
+STR_NETWORK_ERR_LOSTCONNECTION                                  :{WHITE} Izgubljena veza sa mrežnom igrom
+STR_NETWORK_ERR_SAVEGAMEERROR                                   :{WHITE} Nemoguće je učitati snimljenu igru
+STR_NETWORK_ERR_SERVER_START                                    :{WHITE} Nemoguće je pokrenuti poslužitelja
+STR_NETWORK_ERR_CLIENT_START                                    :{WHITE} Nije se moguće spojiti
+STR_NETWORK_ERR_TIMEOUT                                         :{WHITE} Istekla je veza #{NUM}
+STR_NETWORK_ERR_SERVER_ERROR                                    :{WHITE} Napravljena je greška u protokolu te se veza prekinula
+STR_NETWORK_ERR_WRONG_REVISION                                  :{WHITE}Revizija ovog klijenta ne slaže se sa revizijom servera
+STR_NETWORK_ERR_WRONG_PASSWORD                                  :{WHITE} Pogrešna zaporka
+STR_NETWORK_ERR_SERVER_FULL                                     :{WHITE} Poslužitelj je pun
+STR_NETWORK_ERR_SERVER_BANNED                                   :{WHITE} Zabranjen vam je pristup ovom poslužitelju
+STR_NETWORK_ERR_KICKED                                          :{WHITE} Izbačeni ste iz igre
+STR_NETWORK_ERR_CHEATER                                         :{WHITE} Na ovom poslužitelju nije dopušteno varanje
+
+STR_NETWORK_ERR_LEFT                                            :je napustio igru
+############ Leave those lines in this order!!
+STR_NETWORK_ERR_CLIENT_GENERAL                                  :opća greška
+STR_NETWORK_ERR_CLIENT_DESYNC                                   :greška u sinkronizaciji
+STR_NETWORK_ERR_CLIENT_SAVEGAME                                 :nije moguće učitati kartu
+STR_NETWORK_ERR_CLIENT_CONNECTION_LOST                          :veza je izgubljena
+STR_NETWORK_ERR_CLIENT_PROTOCOL_ERROR                           :greška u protokolu
+STR_NETWORK_ERR_CLIENT_NEWGRF_MISMATCH                          :NewGRF nepodudaranje
+STR_NETWORK_ERR_CLIENT_NOT_AUTHORIZED                           :nije ovlašten
+STR_NETWORK_ERR_CLIENT_NOT_EXPECTED                             :primljen je nepoznat paket
+STR_NETWORK_ERR_CLIENT_WRONG_REVISION                           :pogrešna revizija
+STR_NETWORK_ERR_CLIENT_NAME_IN_USE                              :ime se već koristi
+STR_NETWORK_ERR_CLIENT_WRONG_PASSWORD                           :pogrešna zaporka
+STR_NETWORK_ERR_CLIENT_PLAYER_MISMATCH                          :pogrešan igrač-id u DoCommand
+STR_NETWORK_ERR_CLIENT_KICKED                                   :izbačen{G "" a o} od strane poslužitelja
+STR_NETWORK_ERR_CLIENT_CHEATER                                  :je pokuša{G o la lo} varati
+STR_NETWORK_ERR_CLIENT_SERVER_FULL                              :poslužitelj je pun
+############ End of leave-in-this-order
+STR_NETWORK_CLIENT_JOINED                                       :se pridruži{G o la lo} igri
+STR_NETWORK_GIVE_MONEY                                          :je da{G o la lo} novac Vašoj tvrtki ({CURRENCY})
+STR_NETWORK_GAVE_MONEY_AWAY                                     :dali ste {STRING} novac ({CURRENCY})
+STR_NETWORK_CHAT_COMPANY_CAPTION                                :[Tim]:
+STR_NETWORK_CHAT_COMPANY                                        :[Tim] {STRING}: {GRAY}{STRING}
+STR_NETWORK_CHAT_TO_COMPANY                                     :[Tim] Za {STRING}: {GRAY}{STRING}
+STR_NETWORK_CHAT_CLIENT_CAPTION                                 :[Privatno] :
+STR_NETWORK_CHAT_CLIENT                                         :[Privatno] {STRING}: {GRAY}{STRING}
+STR_NETWORK_CHAT_TO_CLIENT                                      :[Privatno] Za {STRING}: {GRAY}{STRING}
+STR_NETWORK_CHAT_ALL_CAPTION                                    :[Svima] :
+STR_NETWORK_CHAT_ALL                                            :[Svima] {STRING}: {GRAY}{STRING}
+STR_NETWORK_NAME_CHANGE                                         :je promjeni {G o la lo} ime u
+STR_NETWORK_SERVER_SHUTDOWN                                     :{WHITE} Poslužitelj je zatvorio sesiju
+STR_NETWORK_SERVER_REBOOT                                       :{WHITE} Poslužitelj se ponovno pokreće...{}Molimo pričekajte...
+
+STR_NETWORK_SERVER                                              :Poslužitelj
+STR_NETWORK_CLIENT                                              :Klijent
+STR_NETWORK_SPECTATORS                                          :Promatrači
+
+STR_NETWORK_CLIENTLIST_NONE                                     :(nitko)
+STR_NETWORK_CLIENTLIST_KICK                                     :Izbaci
+STR_NETWORK_CLIENTLIST_GIVE_MONEY                               :Daj novac
+STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL                             :Razgovaraj sa svima
+STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY                         :Razgovaraj s tvrtkom
+STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT                          :Privatna poruka
+
+
+STR_NETWORK_SEND                                                :{BLACK}Pošalji
+
+############ end network gui strings
+
+
+STR_CONFIG_PATCHES_MAP_X                                        :{LTBLUE}Veličina karte X: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MAP_Y                                        :{LTBLUE}Veličina karte Y: {ORANGE}{STRING}
+
+
+##### PNG-MAP-Loader
+
+STR_PNGMAP_ERROR                                                :{WHITE}Nemoguće je učitati krajolik iz PNG-a...
+STR_PNGMAP_ERR_FILE_NOT_FOUND                                   :{WHITE}...datoteka nije pronađena.
+STR_PNGMAP_ERR_IMAGE_TYPE                                       :{WHITE}...ne mogu konvertirati tip slike. 8 ili 24-bitni PNG je potreban.
+STR_PNGMAP_ERR_MISC                                             :{WHITE}...nešto je otišlo u krivom smjeru. Oprostite. (vjerojatno je pokvarena datoteka)
+
+STR_BMPMAP_ERROR                                                :{WHITE}Ne mogu učitati krajolik iz BMP...
+STR_BMPMAP_ERR_IMAGE_TYPE                                       :{WHITE}...ne mogu pretvoriti tip slike.
+
+##id 0x0800
+STR_0800_COST                                                   :{TINYFONT}{RED}Trošak: {CURRENCY}
+STR_0801_COST                                                   :{RED}Trošak: {CURRENCY}
+STR_0802_INCOME                                                 :{TINYFONT}{GREEN}Prihod: {CURRENCY}
+STR_0803_INCOME                                                 :{GREEN}Prihod: {CURRENCY}
+STR_FEEDER_TINY                                                 :{TINYFONT}{YELLOW}Prebaci: {CURRENCY}
+STR_FEEDER                                                      :{YELLOW}Prebaci: {CURRENCY}
+STR_0805_ESTIMATED_COST                                         :{WHITE}Predviđeni trošak: {CURRENCY}
+STR_0807_ESTIMATED_INCOME                                       :{WHITE}Predviđeni prihod: {CURRENCY}
+STR_0808_CAN_T_RAISE_LAND_HERE                                  :{WHITE}Ne možeš povisiti zemlju ovdje...
+STR_0809_CAN_T_LOWER_LAND_HERE                                  :{WHITE}Ne možeš sniziti zemlju ovdje...
+STR_080A_ROCKS                                                  :Stijenje
+STR_080B_ROUGH_LAND                                             :Surova zemlja
+STR_080C_BARE_LAND                                              :Ogoljena zemlja
+STR_080D_GRASS                                                  :Trava
+STR_080E_FIELDS                                                 :Polja
+STR_080F_SNOW_COVERED_LAND                                      :Zemlja pokrivena snijegom
+STR_0810_DESERT                                                 :Pustinja
+
+##id 0x1000
+STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION                         :{WHITE}Zemlja nakošena u krivom smjeru
+STR_1001_IMPOSSIBLE_TRACK_COMBINATION                           :{WHITE}Nemoguća kombinacija tračnica
+STR_1002_EXCAVATION_WOULD_DAMAGE                                :{WHITE}Iskopavanje bi oštetilo tunel
+STR_1003_ALREADY_AT_SEA_LEVEL                                   :{WHITE}Već je na razini mora
+STR_1004_TOO_HIGH                                               :{WHITE}Previsoko
+STR_1005_NO_SUITABLE_RAILROAD_TRACK                             :{WHITE}Nije prikladno za želježnicke tračnice
+STR_1007_ALREADY_BUILT                                          :{WHITE}...već izgrađeno
+STR_1008_MUST_REMOVE_RAILROAD_TRACK                             :{WHITE}Moraš najprije ukloniti tračnice
+STR_100A_RAILROAD_CONSTRUCTION                                  :{WHITE}Izgradnja željeznice
+STR_TITLE_ELRAIL_CONSTRUCTION                                   :{WHITE}Izgradnja elektrificiranih tračnica
+STR_100B_MONORAIL_CONSTRUCTION                                  :{WHITE}Izgradnja jednotračne željeznice
+STR_100C_MAGLEV_CONSTRUCTION                                    :{WHITE}Izgradnja MagLeva
+STR_100D_SELECT_RAIL_BRIDGE                                     :{WHITE}Odaberi željeznički most
+STR_100E_CAN_T_BUILD_TRAIN_DEPOT                                :{WHITE}Ovdje nije moguće graditi željezničko spremište...
+STR_100F_CAN_T_BUILD_RAILROAD_STATION                           :{WHITE}Ovdje nije moguće izgraditi željezničku stanicu...
+STR_1010_CAN_T_BUILD_SIGNALS_HERE                               :{WHITE}Ovdje ne možeš postaviti znakove...
+STR_1011_CAN_T_BUILD_RAILROAD_TRACK                             :{WHITE}Ovdje ne možeš graditi tračnice...
+STR_1012_CAN_T_REMOVE_RAILROAD_TRACK                            :{WHITE}Odavde ne možeš ukloniti tračnice...
+STR_1013_CAN_T_REMOVE_SIGNALS_FROM                              :{WHITE}Odavde ne možeš maknuti signale...
+STR_1014_TRAIN_DEPOT_ORIENTATION                                :{WHITE}Smjer spremišta vlakova
+STR_1015_RAILROAD_CONSTRUCTION                                  :Izgradnja tračnica
+STR_TOOLB_ELRAIL_CONSTRUCTION                                   :Izgradnja električne željezničke pruge
+STR_1016_MONORAIL_CONSTRUCTION                                  :Izgradnja jednotračne željeznice
+STR_1017_MAGLEV_CONSTRUCTION                                    :Izgradnja MagLeva
+STR_1018_BUILD_RAILROAD_TRACK                                   :{BLACK}Izgradi tračnicu
+STR_1019_BUILD_TRAIN_DEPOT_FOR_BUILDING                         :{BLACK}Izgradi spremište vlakova (za gradnju i servisiranje vlakova)
+STR_101A_BUILD_RAILROAD_STATION                                 :{BLACK}Izgradi željezničku stanicu
+STR_101B_BUILD_RAILROAD_SIGNALS                                 :{BLACK}Izgradi željezničke signale
+STR_101C_BUILD_RAILROAD_BRIDGE                                  :{BLACK}Izgradi željeznički most
+STR_101D_BUILD_RAILROAD_TUNNEL                                  :{BLACK}Izgradi željeznički tunel
+STR_101E_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Prebacuj izgradnju/uklanjanje za tračnice i željezničke signale
+STR_101F_BRIDGE_SELECTION_CLICK                                 :{BLACK}Odabir mosta - pritisni na most koji želiš izgraditi
+STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO                       :{BLACK}Odaberi smjer željezničkog spremišta
+STR_1021_RAILROAD_TRACK                                         :Tračnica
+STR_1023_RAILROAD_TRAIN_DEPOT                                   :Spremište vlakova
+STR_1024_AREA_IS_OWNED_BY_ANOTHER                               :{WHITE}...područje je u vlasništvu druge tvrke
+STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS                          :Željezničke tračnice s normalnim znakovima
+STR_RAILROAD_TRACK_WITH_PRESIGNALS                              :Željezničke tračnice s prethodno postavljenim znakovima
+STR_RAILROAD_TRACK_WITH_EXITSIGNALS                             :Željezničke tračnice s izlaznim znakovima
+STR_RAILROAD_TRACK_WITH_COMBOSIGNALS                            :Željezničke tračnice s kombo znakovima
+STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS                       :Tračnice sa normalnim i pre-signalima
+STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS                      :Tračnice sa normalnim i izlaznim-signalima
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS                     :Tračnice sa normalnim i kombiniranim-signalima
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS                         :Tračnice sa pre- i izlaznim signalima
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS                        :Tračnice sa pre- i kombiniranim signalima
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS                       :Tračnice sa izlaznim i kombiniranim signalima
+STR_MUST_REMOVE_RAILWAY_STATION_FIRST                           :{WHITE}Morati prvo maknuti željezničku stanicu
+
+
+
+##id 0x1800
+STR_1801_MUST_REMOVE_ROAD_FIRST                                 :{WHITE}Moraš prvo ukloniti cestu
+STR_ROAD_WORKS_IN_PROGRESS                                      :{WHITE}Cestovni radovi u tijeku
+STR_1802_ROAD_CONSTRUCTION                                      :{WHITE}Izgradnja ceste
+STR_1802_TRAMWAY_CONSTRUCTION                                   :{WHITE}Konstruiranje Tramvaja
+STR_1803_SELECT_ROAD_BRIDGE                                     :{WHITE}Izaberi cestovni most
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION                        :{WHITE}...jednosmjerne ceste ne mogu imati raskršća
+STR_1804_CAN_T_BUILD_ROAD_HERE                                  :{WHITE}Ovdje ne možeš graditi cestu...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE                               :{WHITE}Ne mogu izgraditi tramvaj ovdje...
+STR_1805_CAN_T_REMOVE_ROAD_FROM                                 :{WHITE}Odavde ne možeš maknuti cestu...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM                              :{WHITE}Ne mogu maknuti tramvaj odavde...
+STR_1806_ROAD_DEPOT_ORIENTATION                                 :{WHITE}Smjer cestovnog spremišta
+STR_1806_TRAM_DEPOT_ORIENTATION                                 :{WHITE}Smjer Tramvajskog Skladišta
+STR_1807_CAN_T_BUILD_ROAD_VEHICLE                               :{WHITE}Ovdje ne možeš izgraditi spremište cestovnih vozila...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE                               :{WHITE}Ne mogu izgraditi skladište tramvaja ovdje
+STR_1808_CAN_T_BUILD_BUS_STATION                                :{WHITE}Nije moguće izgraditi autobusnu stanicu...
+STR_1809_CAN_T_BUILD_TRUCK_STATION                              :{WHITE}Nije moguće izgraditi kamionski terminal...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION                     :{WHITE}Ne mogu izgraditi tramvajsku stanicu za putnike...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION                         :{WHITE}Nemogu izgraditi teretnu tramvajsku stanicu...
+STR_180A_ROAD_CONSTRUCTION                                      :Izgradnja ceste
+STR_180A_TRAMWAY_CONSTRUCTION                                   :Konstruiranje tramvaja
+STR_180B_BUILD_ROAD_SECTION                                     :{BLACK}Izgradi dio ceste
+STR_180B_BUILD_TRAMWAY_SECTION                                  :{BLACK}Izgradi dio tramvaja
+STR_180C_BUILD_ROAD_VEHICLE_DEPOT                               :{BLACK}Izgradi spremište cestovnih vozila (za izgradnju i servisiranje vozila)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT                               :{BLACK}Izgradi skladište za tramvajska vozila(za izgradnju i servisiranje vozila)
+STR_180D_BUILD_BUS_STATION                                      :{BLACK}Izgradi autobusnu stanicu
+STR_180E_BUILD_TRUCK_LOADING_BAY                                :{BLACK}Izgradi pretovarni kamionski terminal
+STR_180D_BUILD_PASSENGER_TRAM_STATION                           :{BLACK}Izgradi putničku tramvajsku stanicu
+STR_180E_BUILD_CARGO_TRAM_STATION                               :{BLACK}Izgradi teretnu tramvajsku stanicu
+STR_180F_BUILD_ROAD_BRIDGE                                      :{BLACK}Izgradi cestovni most
+STR_180F_BUILD_TRAMWAY_BRIDGE                                   :{BLACK}Izgradi tramvajski most
+STR_1810_BUILD_ROAD_TUNNEL                                      :{BLACK}Izgradi cestovni tunel
+STR_1810_BUILD_TRAMWAY_TUNNEL                                   :{BLACK}Izgradi tramvajski tunel
+STR_1811_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Prebacuj izgradnju/uklanjanje ceste
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS                       :{BLACK}Uključi izgradnju/brisanje za konstruiranje tramvaja
+STR_1813_SELECT_ROAD_VEHICLE_DEPOT                              :{BLACK}Izaberi smjer spremišta cestovnih vozila
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT                              :{BLACK}Odaberi smjer skladišta za tramvaj
+STR_1814_ROAD                                                   :Cesta
+STR_1815_ROAD_WITH_STREETLIGHTS                                 :Cesta sa semaforima
+STR_1816_TREE_LINED_ROAD                                        :Cesta s tri trake
+STR_1817_ROAD_VEHICLE_DEPOT                                     :Spremište cestovnih vozila
+STR_1818_ROAD_RAIL_LEVEL_CROSSING                               :Prijelaz ceste preko željezničke pruge
+STR_CAN_T_REMOVE_BUS_STATION                                    :{WHITE}Ne mogu maknuti autobusnu stanicu...
+STR_CAN_T_REMOVE_TRUCK_STATION                                  :{WHITE}Ne mogu maknuti kamionsku stanicu...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION                         :{WHITE}Ne mogu maknuti putničku tramvajsku stanicu...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION                             :{WHITE}Ne mogu maknuti teretnu tramvajsku stanicu...
+
+##id 0x2000
+STR_2000_TOWNS                                                  :{WHITE}Gradovi
+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}{SIGN}
+STR_2004_BUILDING_MUST_BE_DEMOLISHED                            :{WHITE}Građevina mora prvo biti srušena
+STR_2005                                                        :{WHITE}{TOWN}
+STR_2006_POPULATION                                             :{BLACK}Stanovništvo: {ORANGE}{COMMA}{BLACK}  Kuće: {ORANGE}{COMMA}
+STR_2007_RENAME_TOWN                                            :Preimenuj grad
+STR_2008_CAN_T_RENAME_TOWN                                      :{WHITE}Grad se ne može preimenovati...
+STR_2009_LOCAL_AUTHORITY_REFUSES                                :{WHITE}{TOWN} lokalna samouprava odbija to dozvoliti
+STR_200A_TOWN_NAMES_CLICK_ON_NAME                               :{BLACK}Imena gradova - pritisni na ime kako bi centrirao pogled na zaslon
+STR_200B_CENTER_THE_MAIN_VIEW_ON                                :{BLACK}Centriraj glavni pogled na lokaciju grada
+STR_200C_CHANGE_TOWN_NAME                                       :{BLACK}Promijeni ime grada
+STR_200D_PASSENGERS_LAST_MONTH_MAX                              :{BLACK}Putnika prošli mjesec: {ORANGE}{COMMA}{BLACK}  maks: {ORANGE}{COMMA}
+STR_200E_MAIL_LAST_MONTH_MAX                                    :{BLACK}Pošte prošli mjesec: {ORANGE}{COMMA}{BLACK}  maks: {ORANGE}{COMMA}
+STR_200F_TALL_OFFICE_BLOCK                                      :Visoki uredski blok
+STR_2010_OFFICE_BLOCK                                           :Uredski blok
+STR_2011_SMALL_BLOCK_OF_FLATS                                   :Mali stambeni blok
+STR_2012_CHURCH                                                 :Crkva
+STR_2013_LARGE_OFFICE_BLOCK                                     :Veliki uredski blok
+STR_2014_TOWN_HOUSES                                            :Gradske kuće
+STR_2015_HOTEL                                                  :Hotel
+STR_2016_STATUE                                                 :Kip
+STR_2017_FOUNTAIN                                               :Fontana
+STR_2018_PARK                                                   :Park
+STR_2019_OFFICE_BLOCK                                           :Uredski blok
+STR_201A_SHOPS_AND_OFFICES                                      :Trgovine i uredi
+STR_201B_MODERN_OFFICE_BUILDING                                 :Moderne uredske zgrade
+STR_201C_WAREHOUSE                                              :Skladište
+STR_201D_OFFICE_BLOCK                                           :Uredski blok
+STR_201E_STADIUM                                                :Stadion
+STR_201F_OLD_HOUSES                                             :Stare kuće
+STR_2020_LOCAL_AUTHORITY                                        :{BLACK}Lokalna samouprava
+STR_2021_SHOW_INFORMATION_ON_LOCAL                              :{BLACK}Prikaži informacije o lokalnoj samoupravi
+STR_2022_LOCAL_AUTHORITY                                        :{WHITE}Lokalna samouprava {TOWN}
+STR_2023_TRANSPORT_COMPANY_RATINGS                              :{BLACK}Ocjene prijevoznih tvrtki:
+STR_2024                                                        :{YELLOW}{COMPANY}{COMPANYNUM}: {ORANGE}{STRING}
+STR_2025_SUBSIDIES                                              :{WHITE}Subvencije
+STR_2026_SUBSIDIES_ON_OFFER_FOR                                 :{BLACK}Ponuđene subvencije za pružanje usluga:
+STR_2027_FROM_TO                                                :{ORANGE}{STRING} od {STRING} do {STRING}
+STR_2028_BY                                                     :{YELLOW} (do {DATE_SHORT})
+STR_202A_NONE                                                   :{ORANGE}Ništa
+STR_202B_SERVICES_ALREADY_SUBSIDISED                            :{BLACK}Usluge subvencionirane:
+STR_202C_FROM_TO                                                :{ORANGE}{STRING} iz {STATION} prema {STATION}{YELLOW} ({COMPANY}
+STR_202D_UNTIL                                                  :{YELLOW}, do {DATE_SHORT})
+STR_202E_OFFER_OF_SUBSIDY_EXPIRED                               :{BLACK}{BIGFONT}Istekla je ponuda subvencije:{}{}Prijevoz tereta ( {STRING} ) od {STRING} do {STRING} neće više biti subvencioniran.
+STR_202F_SUBSIDY_WITHDRAWN_SERVICE                              :{BLACK}{BIGFONT}Povučena subvencija:{}{}Prijevoz tereta ( {STRING} ) od {STATION} do {STATION} nije više subvencioniran.
+STR_2030_SERVICE_SUBSIDY_OFFERED                                :{BLACK}{BIGFONT}Ponuđena je subvencija:{}{}Prvi koji preveze teret ({STRING}) od {STRING} do {STRING} dobivat će subvenciju od lokalne samouprave!
+STR_2031_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subvencija je dodjeljena tvrtki {COMPANY}!{}{}Prijevoz tereta ({STRING}) od {STATION} do {STATION} plaćat će se 50% više slijedećih godinu dana!
+STR_2032_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subvencija je dodjeljena tvrtki {COMPANY}!{}{}Prijevoz tereta ({STRING}) od {STATION} do {STATION} plaćat će se dvostruko slijedećih godinu dana!
+STR_2033_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subvencija je dodjeljena tvrtki {COMPANY}!{}{}Prijevoz tereta ({STRING}) od {STATION} do {STATION} plaćat će se trostruko slijedećih godinu dana!
+STR_2034_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subvencija je dodjeljena tvrtki {COMPANY}!{}{}Prijevoz tereta ({STRING}) od {STATION} do {STATION} plaćat će se četverostruko slijedećih godinu dana!
+STR_2035_LOCAL_AUTHORITY_REFUSES                                :{WHITE}{TOWN} lokalne vlasti odbijaju dozvoliti izgradnju još jedne zračne luke u ovom gradu
+STR_2036_COTTAGES                                               :Kolibe
+STR_2037_HOUSES                                                 :Kuće
+STR_2038_FLATS                                                  :Stanovi
+STR_2039_TALL_OFFICE_BLOCK                                      :Visoki uredski blok
+STR_203A_SHOPS_AND_OFFICES                                      :Trgovine i uredi
+STR_203B_SHOPS_AND_OFFICES                                      :Trgovine i uredi
+STR_203C_THEATER                                                :Kazalište
+STR_203D_STADIUM                                                :Stadion
+STR_203E_OFFICES                                                :Uredi
+STR_203F_HOUSES                                                 :Kuće
+STR_2040_CINEMA                                                 :Kino
+STR_2041_SHOPPING_MALL                                          :Trgovački centar
+STR_2042_DO_IT                                                  :{BLACK}Učini to
+STR_2043_LIST_OF_THINGS_TO_DO_AT                                :{BLACK}Popis stvari koje treba učiniti u ovom gradu - pritisni za dodatne informacije
+STR_2044_CARRY_OUT_THE_HIGHLIGHTED                              :{BLACK}Izvrši akcije označene na gornjem popisu
+STR_2045_ACTIONS_AVAILABLE                                      :{BLACK}Dostupne akcije:
+STR_2046_SMALL_ADVERTISING_CAMPAIGN                             :Mala oglasna kampanja
+STR_2047_MEDIUM_ADVERTISING_CAMPAIGN                            :Srednja oglasna kampanja
+STR_2048_LARGE_ADVERTISING_CAMPAIGN                             :Velika oglasna kampanja
+STR_2049_FUND_LOCAL_ROAD_RECONSTRUCTION                         :Financiraj popravljanje lokalne prometnice
+STR_204A_BUILD_STATUE_OF_COMPANY                                :Izgradi kip vlasnika tvrke
+STR_204B_FUND_NEW_BUILDINGS                                     :Financiraj nove građevine
+STR_204C_BUY_EXCLUSIVE_TRANSPORT                                :Kupi ekskluzivna prava prijevozna
+STR_TOWN_BRIBE_THE_LOCAL_AUTHORITY                              :Podmiti lokalnu samoupravu
+STR_204D_INITIATE_A_SMALL_LOCAL                                 :{WHITE}{STRING}{}{YELLOW} Iniciraj malu oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{}  Trošak: {CURRENCY}
+STR_204E_INITIATE_A_MEDIUM_LOCAL                                :{WHITE}{STRING}{}{YELLOW} Iniciraj srednju oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{} Trošak: {CURRENCY}
+STR_204F_INITIATE_A_LARGE_LOCAL                                 :{WHITE}{STRING}{}{YELLOW} Iniciraj veliku oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{} Trošak: {CURRENCY}
+STR_2050_FUND_THE_RECONSTRUCTION                                :{WHITE}{STRING}{}{YELLOW} Financiraj popravak gradske mreže prometnica. Uzrokuje značajne poremećaje u cestovnom prometu do 6 mjeseci.{}  Trošak: {CURRENCY}
+STR_2051_BUILD_A_STATUE_IN_HONOR                                :{WHITE}{STRING}{}{YELLOW} Izgradi kip u čast svoje tvrke.{} Trošak: {CURRENCY}
+STR_2052_FUND_THE_CONSTRUCTION_OF                               :{WHITE}{STRING}{}{YELLOW} Financiraj izgradnju novih poslovnih prostora u gradu.{}  Trošak: {CURRENCY}
+STR_2053_BUY_1_YEAR_S_EXCLUSIVE                                 :{WHITE}{STRING}{}{YELLOW} Kupi jednogodišnje ekskluzivno pravo prijevoza u gradu. Gradska vlast će dopustiti putnicima i teretu da koriste samo stanice tvoje tvrtke.{} Trošak: {CURRENCY}
+STR_TOWN_BRIBE_THE_LOCAL_AUTHORITY_DESC                         :{WHITE}{STRING}{}{YELLOW}Podmiti lokalnu vlast zbog povećanja rejtinga, riskirajući ozbiljne kazne ako vas uhvate{} Trošak: {CURRENCY}
+STR_2055_TRAFFIC_CHAOS_IN_ROAD_REBUILDING                       :{BIGFONT}{BLACK}{TOWN} zahvatile prometne gužve!{}{}Program popravka cesta koji financira tvrtka  {COMPANY} slijedećih će 6 mjeseci zadavati glavobolje motociskistima!
+STR_2056                                                        :{TINYFONT}{WHITE}{TOWN}
+STR_2057                                                        :{ORANGE}{TOWN}{BLACK} ({COMMA})
+STR_2058_UNDER_CONSTRUCTION                                     :{STRING} (u izgradnji)
+STR_2059_IGLOO                                                  :Iglu
+STR_205A_TEPEES                                                 :Indijanski šator
+STR_205B_TEAPOT_HOUSE                                           :Čajnik za stanovanje
+STR_205C_PIGGY_BANK                                             :Kasica-Prasica
+
+STR_INDUSTRY                                                    :{INDUSTRY}
+STR_TOWN                                                        :{TOWN}
+STR_INDUSTRY_FORMAT                                             :{TOWN} {STRING}
+STR_STATION                                                     :{STATION}
+
+##id 0x2800
+STR_LANDSCAPING                                                 :Uređivanje krajolika
+STR_2800_PLANT_TREES                                            :Posadi drveće
+STR_2801_PLACE_SIGN                                             :Postavi znak
+STR_2802_TREES                                                  :{WHITE}Drveće
+STR_2803_TREE_ALREADY_HERE                                      :{WHITE}...ovdje već postoji drvo
+STR_2804_SITE_UNSUITABLE                                        :{WHITE}...neprikladno mjesto
+STR_2805_CAN_T_PLANT_TREE_HERE                                  :{WHITE}Ovdje ne možeš posaditi drvo...
+STR_2806                                                        :{WHITE}{SIGN}
+STR_2808_TOO_MANY_SIGNS                                         :{WHITE}...previše znakova
+STR_2809_CAN_T_PLACE_SIGN_HERE                                  :{WHITE}Ovdje ne možeš postaviti znak...
+STR_280A_SIGN                                                   :Znak
+STR_280B_EDIT_SIGN_TEXT                                         :{WHITE}Izmijeni tekst znaka
+STR_280C_CAN_T_CHANGE_SIGN_NAME                                 :{WHITE}Ne možeš promijeniti ime znaka...
+STR_280D_SELECT_TREE_TYPE_TO_PLANT                              :{BLACK}Izaberi vrstu drveta za sadnju
+STR_280E_TREES                                                  :Drveće
+STR_280F_RAINFOREST                                             :Kišna šuma
+STR_2810_CACTUS_PLANTS                                          :Kaktusi
+
+##id 0x3000
+STR_3000_RAIL_STATION_SELECTION                                 :{WHITE}Odabir željezničke stanice
+STR_3001_AIRPORT_SELECTION                                      :{WHITE}Odabir zračne luke
+STR_3002_ORIENTATION                                            :{BLACK}Smjer
+STR_3003_NUMBER_OF_TRACKS                                       :{BLACK}Broj tračnica
+STR_3004_PLATFORM_LENGTH                                        :{BLACK}Dužina platforme
+STR_3005_TOO_CLOSE_TO_ANOTHER_RAILROAD                          :{WHITE}Preblizu drugoj željezničkoj stanici
+STR_3006_ADJOINS_MORE_THAN_ONE_EXISTING                         :{WHITE}Spaja više od jedne postojeće stanice/terminala
+STR_3007_TOO_MANY_STATIONS_LOADING                              :{WHITE}U ovom gradu ima previše stanica/terminala
+STR_3008_TOO_MANY_STATIONS_LOADING                              :{WHITE}Previše stanica/terminala
+STR_3008A_TOO_MANY_BUS_STOPS                                    :{WHITE}Previše autobusnih stanica
+STR_3008B_TOO_MANY_TRUCK_STOPS                                  :{WHITE}Previše kamionskih stanica
+STR_3009_TOO_CLOSE_TO_ANOTHER_STATION                           :{WHITE}Preblizu drugoj stanici/terminalu
+STR_300A_0                                                      :{WHITE}{STATION} {STATIONFEATURES}
+STR_300B_MUST_DEMOLISH_RAILROAD                                 :{WHITE}Prvo moraš uništiti željezničku stanicu
+STR_300D_TOO_CLOSE_TO_ANOTHER_AIRPORT                           :{WHITE}Preblizu drugoj zračnoj luci
+STR_300E_MUST_DEMOLISH_AIRPORT_FIRST                            :{WHITE}Moraš uništiti zračnu luku prvo
+
+STR_3030_RENAME_STATION_LOADING                                 :Preimenuj stanicu/terminal
+STR_3031_CAN_T_RENAME_STATION                                   :{WHITE}Ne možeš preimenovati stanicu...
+STR_3032_RATINGS                                                :{BLACK}Ocjene
+STR_3033_ACCEPTS                                                :{BLACK}Prihvaća
+STR_3034_LOCAL_RATING_OF_TRANSPORT                              :{BLACK}Lokalna ocjena usluge prijevoza:
+
+############ range for rating starts
+STR_3035_APPALLING                                              :Užasno
+STR_3036_VERY_POOR                                              :Vrlo loše
+STR_3037_POOR                                                   :Loše
+STR_3038_MEDIOCRE                                               :Osrednje
+STR_3039_GOOD                                                   :Dobro
+STR_303A_VERY_GOOD                                              :Vrlo dobro
+STR_303B_EXCELLENT                                              :Izvrsno
+STR_303C_OUTSTANDING                                            :Izvanredno
+############ range for rating ends
+
+STR_303D                                                        :{WHITE}{STRING}: {YELLOW}{STRING} ({COMMA}%)
+STR_303E_NO_LONGER_ACCEPTS                                      :{WHITE}{STATION} više ne prihvaća {STRING}
+STR_303F_NO_LONGER_ACCEPTS_OR                                   :{WHITE}{STATION} više ne prihvaća {STRING} or {STRING}
+STR_3040_NOW_ACCEPTS                                            :{WHITE}{STATION} sad prihvaća {STRING}
+STR_3041_NOW_ACCEPTS_AND                                        :{WHITE}{STATION} od sada prihvaća {STRING} i {STRING}
+STR_3042_BUS_STATION_ORIENTATION                                :{WHITE}Smjer autobusne stanice
+STR_3043_TRUCK_STATION_ORIENT                                   :{WHITE}Smjer kamionskog terminala
+STR_3046_MUST_DEMOLISH_BUS_STATION                              :{WHITE}Prvo moraš uništiti autobusnu stanicu
+STR_3047_MUST_DEMOLISH_TRUCK_STATION                            :{WHITE}Prvo moraš uništiti kamionski terminal
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION                   :{WHITE}Morate prvo maknuti putničku tramvajsku stanicu
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION                       :{WHITE}Morate prvo maknuti teretnu tramvajsku stanicu
+STR_3048_STATIONS                                               :{WHITE}{COMPANY} - {COMMA} Stanic{P a e a}
+STR_3049_0                                                      :{YELLOW}{STATION} {STATIONFEATURES}
+STR_304A_NONE                                                   :{YELLOW}- Ništa -
+STR_304B_SITE_UNSUITABLE                                        :{WHITE}...neprikladno mjesto
+STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK                              :{WHITE}Preblizu drugom pristaništu
+STR_304D_MUST_DEMOLISH_DOCK_FIRST                               :{WHITE}Prvo moraš srušiti pristanište
+STR_304E_SELECT_RAILROAD_STATION                                :{BLACK}Izaberi smjer željezničke stanice
+STR_304F_SELECT_NUMBER_OF_PLATFORMS                             :{BLACK}Izaberi broj perona na željezničkoj stanici
+STR_3050_SELECT_LENGTH_OF_RAILROAD                              :{BLACK}Izaberi dužinu željezničke stanice
+STR_3051_SELECT_BUS_STATION_ORIENTATION                         :{BLACK}Izaberi smjer autobusne stanice
+STR_3052_SELECT_TRUCK_LOADING_BAY                               :{BLACK}Izaberi smjer kamionskog terminala
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION              :{BLACK}Odaberite smjer putničke tramvajske stanice
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION                  :{BLACK}Odaberite smjer teretne tramvajske stanice
+STR_3053_CENTER_MAIN_VIEW_ON_STATION                            :{BLACK}Centriraj glavni pogled na lokaciju stanice
+STR_3054_SHOW_STATION_RATINGS                                   :{BLACK}Pokaži ocjene stanice
+STR_3055_CHANGE_NAME_OF_STATION                                 :{BLACK}Promijeni ime stanice
+STR_3056_SHOW_LIST_OF_ACCEPTED_CARGO                            :{BLACK}Prikaži popis prihvaćenog tereta
+STR_3057_STATION_NAMES_CLICK_ON                                 :{BLACK}Imena stanica - pritisni ime da bi centrirao glavni pogled na stanicu
+STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT                            :{BLACK}Izaberi veličinu/tip zračne luke
+STR_305C_0                                                      :{STATION} {STATIONFEATURES}
+STR_STATION_SIGN_TINY                                           :{TINYFONT}{STATION}
+STR_305E_RAILROAD_STATION                                       :Željeznička stanica
+STR_305F_AIRCRAFT_HANGAR                                        :Zrakoplovni hangar
+STR_3060_AIRPORT                                                :Zračna luka
+STR_3061_TRUCK_LOADING_AREA                                     :Ukrcajno područje
+STR_3062_BUS_STATION                                            :Autobusna stanica
+STR_3063_SHIP_DOCK                                              :Brodsko pristanište
+STR_3064_HIGHLIGHT_COVERAGE_AREA                                :{BLACK}Označi područje koje pokriva željeno mjesto
+STR_3065_DON_T_HIGHLIGHT_COVERAGE                               :{BLACK}Nemoj označiti područje koje pokriva željeno mjesto
+STR_3066_COVERAGE_AREA_HIGHLIGHT                                :{BLACK}Označavanje područja pokrivanja
+STR_3068_DOCK                                                   :{WHITE}Pristanište
+STR_3069_BUOY                                                   :Plutača
+STR_306A_BUOY_IN_THE_WAY                                        :{WHITE}...plutača na putu
+STR_306C_STATION_TOO_SPREAD_OUT                                 :{WHITE}...stanica previše proširena
+STR_306D_NONUNIFORM_STATIONS_DISALLOWED                         :{WHITE}...neujednačene stanice onemogućene
+STR_USE_CTRL_TO_SELECT_MORE                                     :{BLACK}Drži CTRL kako bi izabrao više od jednog itema
+
+STR_UNDEFINED                                                   :(neodređen znakovni niz)
+STR_STAT_CLASS_DFLT                                             :Pretpostavljena stanica
+STR_STAT_CLASS_WAYP                                             :Čvorišta
+
+##id 0x3800
+STR_3800_SHIP_DEPOT_ORIENTATION                                 :{WHITE}Smjer brodskog spremišta
+STR_3801_MUST_BE_BUILT_ON_WATER                                 :{WHITE}...mora biti izgrađen na vodi
+STR_3802_CAN_T_BUILD_SHIP_DEPOT                                 :{WHITE}Ovdje ne možeš graditi brodsko spremište...
+STR_3803_SELECT_SHIP_DEPOT_ORIENTATION                          :{BLACK}Izaberi smjer brodskog spremišta
+STR_3804_WATER                                                  :Voda
+STR_3805_COAST_OR_RIVERBANK                                     :Obala ili riječni nasip
+STR_3806_SHIP_DEPOT                                             :Brodsko spremište
+STR_3807_CAN_T_BUILD_ON_WATER                                   :{WHITE}...Ne možeš graditi na vodi
+STR_MUST_DEMOLISH_CANAL_FIRST                                   :{WHITE}Morate prvo maknuti kanal
+
+##id 0x4000
+STR_4000_SAVE_GAME                                              :{WHITE}Spremi igru
+STR_4001_LOAD_GAME                                              :{WHITE}Učitaj igru
+STR_4002_SAVE                                                   :{BLACK}Spremi
+STR_4003_DELETE                                                 :{BLACK}Obriši
+STR_4004                                                        :{COMPANY}, {DATE_LONG}
+STR_4005_BYTES_FREE                                             :{BLACK}{COMMA} megabajt{P "" a a} slobod{P an na no}
+STR_4006_UNABLE_TO_READ_DRIVE                                   :{BLACK}Ne mogu pročitati disk
+STR_4007_GAME_SAVE_FAILED                                       :{WHITE}Spremanje igre nije uspjelo{}{STRING}
+STR_4008_UNABLE_TO_DELETE_FILE                                  :{WHITE}Ne mogu obrisati datoteku
+STR_4009_GAME_LOAD_FAILED                                       :{WHITE}Učitavanje igre nije uspjelo{}{STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR                   :Interna greška: {STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME                         :Pokvarena spremljena igra - {STRING}
+STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME                        :Igra je spremljena sa novijom verzijom
+STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE                       :Ne mogu pročitati datoteku
+STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE                      :Ne mogu pisati u datoteku
+STR_400A_LIST_OF_DRIVES_DIRECTORIES                             :{BLACK}Popis diskova, mapa i spremljenih datoteka
+STR_400B_CURRENTLY_SELECTED_NAME                                :{BLACK}Trenutno odabrano ime za spremanje igre
+STR_400C_DELETE_THE_CURRENTLY_SELECTED                          :{BLACK}Obriši trenutno odabranu spremljenu igru
+STR_400D_SAVE_THE_CURRENT_GAME_USING                            :{BLACK}Spremi ovu igru, koristeći odabrano ime
+STR_400E_SELECT_NEW_GAME_TYPE                                   :{WHITE}Odaberi vrstu nove igre
+STR_400F_SELECT_SCENARIO_GREEN_PRE                              :{BLACK}Odaberi scenarij (zeleno), namještenu igru (plavo), ili nasumičnu novu igru
+STR_4010_GENERATE_RANDOM_NEW_GAME                               :Izradi nasumičnu novu igru
+STR_4011_LOAD_HEIGHTMAP                                         :{WHITE}Učitaj visinsku kartu
+
+##id 0x4800
+STR_4800_IN_THE_WAY                                             :{WHITE}{STRING} na putu
+STR_4801                                                        :{WHITE}{INDUSTRY}
+STR_4802_COAL_MINE                                              :Rudnik ugljena
+STR_4803_POWER_STATION                                          :Elektrana
+STR_4804_SAWMILL                                                :Pilana
+STR_4805_FOREST                                                 :Šuma
+STR_4806_OIL_REFINERY                                           :Naftna rafinerija
+STR_4807_OIL_RIG                                                :Naftna bušotina
+STR_4808_FACTORY                                                :Tvornica
+STR_4809_PRINTING_WORKS                                         :Tiskara
+STR_480A_STEEL_MILL                                             :Čeličana
+STR_480B_FARM                                                   :Farma
+STR_480C_COPPER_ORE_MINE                                        :Rudnik bakra
+STR_480D_OIL_WELLS                                              :Naftna polja
+STR_480E_BANK                                                   :Banka
+STR_480F_FOOD_PROCESSING_PLANT                                  :Tvornica hrane
+STR_4810_PAPER_MILL                                             :Tvornica papira
+STR_4811_GOLD_MINE                                              :Rudnik zlata
+STR_4812_BANK                                                   :Banka
+STR_4813_DIAMOND_MINE                                           :Rudnik dijamanata
+STR_4814_IRON_ORE_MINE                                          :Rudnik željeza
+STR_4815_FRUIT_PLANTATION                                       :Plantaža voća
+STR_4816_RUBBER_PLANTATION                                      :Plantaža gume
+STR_4817_WATER_SUPPLY                                           :Izvor vode
+STR_4818_WATER_TOWER                                            :Vodotoranj
+STR_4819_FACTORY                                                :Tvornica
+STR_481A_FARM                                                   :Farma
+STR_481B_LUMBER_MILL                                            :Pilana
+STR_481C_COTTON_CANDY_FOREST                                    :Šuma šećerne vune
+STR_481D_CANDY_FACTORY                                          :Tvornica slatkiša
+STR_481E_BATTERY_FARM                                           :Tvornica baterija
+STR_481F_COLA_WELLS                                             :Izvori Cole
+STR_4820_TOY_SHOP                                               :Trgovina igračkama
+STR_4821_TOY_FACTORY                                            :Tvornica igračaka
+STR_4822_PLASTIC_FOUNTAINS                                      :Izvorni plastike
+STR_4823_FIZZY_DRINK_FACTORY                                    :Tvornica gaziranih pića
+STR_4824_BUBBLE_GENERATOR                                       :Generator balona
+STR_4825_TOFFEE_QUARRY                                          :Iskop mliječne karamele
+STR_4826_SUGAR_MINE                                             :Rudnik šećera
+
+############ range for requires starts
+STR_4827_REQUIRES                                               :{BLACK}Treba: {YELLOW}{STRING}
+STR_4828_REQUIRES                                               :{BLACK}Treba: {YELLOW}{STRING}, {STRING}
+STR_4829_REQUIRES                                               :{BLACK}Treba: {YELLOW}{STRING}, {STRING}, {STRING}
+############ range for requires ends
+
+STR_482A_PRODUCTION_LAST_MONTH                                  :{BLACK}Prošlomjesečna proizvodnja:
+STR_482B_TRANSPORTED                                            :{YELLOW}{CARGO}{BLACK} ({COMMA}% prevezeno)
+STR_482C_CENTER_THE_MAIN_VIEW_ON                                :{BLACK}Centriraj glavni pogled na položaj industrije
+STR_482D_NEW_UNDER_CONSTRUCTION                                 :{BLACK}{BIGFONT}Započela je izgradnja nove industrije ( {STRING} ) u blizini grada {TOWN}!
+STR_482E_NEW_BEING_PLANTED_NEAR                                 :{BLACK}{BIGFONT}Nova {STRING} trenutno se sadi blizu grada {TOWN}!
+STR_482F_COST                                                   :{BLACK}Trošak: {YELLOW}{CURRENCY}
+STR_4830_CAN_T_CONSTRUCT_THIS_INDUSTRY                          :{WHITE}Ovdje ne možeš izgraditi ovu vrstu industrije ovdje...
+STR_4831_FOREST_CAN_ONLY_BE_PLANTED                             :{WHITE}...šume mogu jedino biti posađene iznad linije snijega
+STR_4832_ANNOUNCES_IMMINENT_CLOSURE                             :{BLACK}{BIGFONT}{INDUSTRY} objavljuje skoro zatvaranje!
+STR_4833_SUPPLY_PROBLEMS_CAUSE_TO                               :{BLACK}{BIGFONT}Zbog problema u nabavi {INDUSTRY} se uskoro zatvara!
+STR_4834_LACK_OF_NEARBY_TREES_CAUSES                            :{BLACK}{BIGFONT}Manjak drveća u glavni je razlog što se {INDUSTRY} se uskoro zatvara!
+STR_4835_INCREASES_PRODUCTION                                   :{BLACK}{BIGFONT}{INDUSTRY} povećava proizvodnju!
+STR_4836_NEW_COAL_SEAM_FOUND_AT                                 :{BLACK}{BIGFONT}{INDUSTRY} očekuje udvostručenje proizvodnje!{}Pronađena je nova pukotina ugljena!
+STR_4837_NEW_OIL_RESERVES_FOUND                                 :{BLACK}{BIGFONT}{INDUSTRY} očekuje udvostručenje proizvodnje!{}Pronađene su nove rezerve nafte!
+STR_4838_IMPROVED_FARMING_METHODS                               :{BLACK}{BIGFONT}{INDUSTRY} poboljšava metode uzgoja, očekuje se udvostručenje proizvodnje!
+STR_4839_PRODUCTION_DOWN_BY_50                                  :{BLACK}{BIGFONT}{INDUSTRY} smanjuje proizvodnju za 50%
+STR_483A_INSECT_INFESTATION_CAUSES                              :{BLACK}{BIGFONT}{INDUSTRY} pod najezdom kukaca! Havarija!{}Proizvodnja je pala za 50%
+STR_483B_CAN_ONLY_BE_POSITIONED                                 :{WHITE}...može se postaviti samo blizu rubova karte
+STR_INDUSTRY_PROD_GOUP                                          :{BLACK}{BIGFONT}{STRING} prozivodnja u {INDUSTRY} povećana je {COMMA}%!
+STR_INDUSTRY_PROD_GODOWN                                        :{BLACK}{BIGFONT}{STRING} prozivodnja u {INDUSTRY} smanjena je {COMMA}%!
+
+##id 0x5000
+STR_5000_TRAIN_IN_TUNNEL                                        :{WHITE}Vlak u tunelu
+STR_5001_ROAD_VEHICLE_IN_TUNNEL                                 :{WHITE}Cestovno vozilo u tunelu
+STR_5003_ANOTHER_TUNNEL_IN_THE_WAY                              :{WHITE}Smeta drugi tunel
+STR_5005_UNABLE_TO_EXCAVATE_LAND                                :{WHITE}Ne moguće iskopoati zemlju na drugoj strani tunela
+STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Moraš prvo srušiti tunel
+STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Moraš prvo srušiti most
+STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Početak i kraj ne mogu biti na istom mjestu
+STR_5009_LEVEL_LAND_OR_WATER_REQUIRED                           :{WHITE}Ispod mosta mora biti ravna zemlja ili voda
+STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Početak i kraj moraju biti u istoj liniji
+STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Neprikladan teren za ulaz u tunel
+STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
+STR_500E_SUSPENSION_STEEL                                       :Viseći, čelični
+STR_500F_GIRDER_STEEL                                           :Noseći, čelični
+STR_5010_CANTILEVER_STEEL                                       :Konzolni, čelični
+STR_5011_SUSPENSION_CONCRETE                                    :Viseći, betonski
+STR_5012_WOODEN                                                 :Drveni
+STR_5013_CONCRETE                                               :Betonski
+STR_5014_TUBULAR_STEEL                                          :Cijevni, čelični
+STR_BRIDGE_TUBULAR_SILICON                                      :Cjevni, silikonski
+STR_5015_CAN_T_BUILD_BRIDGE_HERE                                :{WHITE}Ovdje se ne može graditi most...
+STR_5016_CAN_T_BUILD_TUNNEL_HERE                                :{WHITE}Ovdje se ne može graditi tunel...
+STR_5017_RAILROAD_TUNNEL                                        :Željeznički tunel
+STR_5018_ROAD_TUNNEL                                            :Cestovni tunel
+STR_501B_STEEL_SUSPENSION_RAIL_BRIDGE                           :Čelični viseći željeznički most
+STR_501C_STEEL_GIRDER_RAIL_BRIDGE                               :Čelični noseći željeznički most
+STR_501D_STEEL_CANTILEVER_RAIL_BRIDGE                           :Čelični konzolni željeznički most
+STR_501E_REINFORCED_CONCRETE_SUSPENSION                         :Ojačani betonski viseći željeznički most
+STR_501F_WOODEN_RAIL_BRIDGE                                     :Drveni željeznički most
+STR_5020_CONCRETE_RAIL_BRIDGE                                   :Betonski željeznički most
+STR_5021_STEEL_SUSPENSION_ROAD_BRIDGE                           :Čelični viseći cestovni most
+STR_5022_STEEL_GIRDER_ROAD_BRIDGE                               :Čelični noseći cestovni most
+STR_5023_STEEL_CANTILEVER_ROAD_BRIDGE                           :Čelični konzolni cestovni most
+STR_5024_REINFORCED_CONCRETE_SUSPENSION                         :Ojačani betonski viseći cestovni most
+STR_5025_WOODEN_ROAD_BRIDGE                                     :Drveni cestovni most
+STR_5026_CONCRETE_ROAD_BRIDGE                                   :Betonski cestovni most
+STR_5027_TUBULAR_RAIL_BRIDGE                                    :Cijevni željeznički most
+STR_5028_TUBULAR_ROAD_BRIDGE                                    :Cijevni cestovni most
+
+##id 0x5800
+STR_5800_OBJECT_IN_THE_WAY                                      :{WHITE}Smeta objekt
+STR_5801_TRANSMITTER                                            :Odašiljač
+STR_5802_LIGHTHOUSE                                             :Svjetionik
+STR_5803_COMPANY_HEADQUARTERS                                   :Sjedište tvrke
+STR_5804_COMPANY_HEADQUARTERS_IN                                :{WHITE}...smeta sjedište tvrke
+STR_5805_COMPANY_OWNED_LAND                                     :Zemlja u posjedu tvrke
+STR_5806_CAN_T_PURCHASE_THIS_LAND                               :{WHITE}Ova zemlja ne može se kupiti...
+STR_5807_YOU_ALREADY_OWN_IT                                     :{WHITE}...već je u tvom vlasništvu!
+
+
+############ WARNING, using range 0x6000 for strings that are stored in the savegame
+############ These strings may never get a new id, or savegames will break!
+##id 0x6000
+STR_SV_EMPTY                                                    :
+STR_SV_UNNAMED                                                  :Neimenovan
+STR_SV_TRAIN_NAME                                               :Vlak {COMMA}
+STR_SV_ROADVEH_NAME                                             :Cestovno vozilo {COMMA}
+STR_SV_SHIP_NAME                                                :Brod {COMMA}
+STR_SV_AIRCRAFT_NAME                                            :Zrakoplov {COMMA}
+
+STR_SV_STNAME                                                   :{STRING}
+STR_SV_STNAME_NORTH                                             :{STRING} Sjever
+STR_SV_STNAME_SOUTH                                             :{STRING} Jug
+STR_SV_STNAME_EAST                                              :{STRING} Istok
+STR_SV_STNAME_WEST                                              :{STRING} Zapad
+STR_SV_STNAME_CENTRAL                                           :{STRING} Centrala
+STR_SV_STNAME_TRANSFER                                          :{STRING} Transfer
+STR_SV_STNAME_HALT                                              :{STRING} Zaustavi
+STR_SV_STNAME_VALLEY                                            :{STRING} Dolina
+STR_SV_STNAME_HEIGHTS                                           :{STRING} Visine
+STR_SV_STNAME_WOODS                                             :{STRING} Šume
+STR_SV_STNAME_LAKESIDE                                          :{STRING} Jezero
+STR_SV_STNAME_EXCHANGE                                          :{STRING} Burza
+STR_SV_STNAME_AIRPORT                                           :{STRING} Zračna luka
+STR_SV_STNAME_OILFIELD                                          :{STRING} Naftno polje
+STR_SV_STNAME_MINES                                             :{STRING} Rudnici
+STR_SV_STNAME_DOCKS                                             :{STRING} Pristaništa
+STR_SV_STNAME_BUOY_1                                            :{STRING} Plutača 1
+STR_SV_STNAME_BUOY_2                                            :{STRING} Plutača 2
+STR_SV_STNAME_BUOY_3                                            :{STRING} Plutača 3
+STR_SV_STNAME_BUOY_4                                            :{STRING} Plutača 4
+STR_SV_STNAME_BUOY_5                                            :{STRING} Plutača 5
+STR_SV_STNAME_BUOY_6                                            :{STRING} Plutača 6
+STR_SV_STNAME_BUOY_7                                            :{STRING} Plutača 7
+STR_SV_STNAME_BUOY_8                                            :{STRING} Plutača 8
+STR_SV_STNAME_BUOY_9                                            :{STRING} Plutača 9
+STR_SV_STNAME_ANNEXE                                            :{STRING} Aneks
+STR_SV_STNAME_SIDINGS                                           :{STRING} Krak
+STR_SV_STNAME_BRANCH                                            :{STRING} Ogranak
+STR_SV_STNAME_UPPER                                             :Gornji {STRING}
+STR_SV_STNAME_LOWER                                             :Donji {STRING}
+STR_SV_STNAME_HELIPORT                                          :{STRING} Heliodrom
+STR_SV_STNAME_FOREST                                            :{STRING} Šuma
+STR_SV_STNAME_FALLBACK                                          :{STRING}Stanica #{NUM}
+
+############ end of savegame specific region!
+
+##id 0x6800
+STR_6800_DIFFICULTY_LEVEL                                       :{WHITE}Težina igre
+STR_OPTIONS_SAVE_CHANGES                                        :{BLACK}Spremi
+
+############ range for difficulty levels starts
+STR_6801_EASY                                                   :{BLACK}Lagano
+STR_6802_MEDIUM                                                 :{BLACK}Umjereno
+STR_6803_HARD                                                   :{BLACK}Teško
+STR_6804_CUSTOM                                                 :{BLACK}Proizvoljna igra
+############ range for difficulty levels ends
+
+############ range for difficulty settings starts
+STR_6805_MAXIMUM_NO_COMPETITORS                                 :{LTBLUE}Maksimalan broj natjecatelja: {ORANGE}{COMMA}
+STR_6806_COMPETITOR_START_TIME                                  :{LTBLUE}Vrijeme početka igre natjecatelja: {ORANGE}{STRING}
+STR_6807_NO_OF_TOWNS                                            :{LTBLUE}Broj gradova: {ORANGE}{STRING}
+STR_6808_NO_OF_INDUSTRIES                                       :{LTBLUE}Broj gospodarstava: {ORANGE}{STRING}
+STR_6809_MAXIMUM_INITIAL_LOAN_000                               :{LTBLUE}Maksimalni početni kredit: {ORANGE}{CURRENCY}
+STR_680A_INITIAL_INTEREST_RATE                                  :{LTBLUE}Početna kamata kredita: {ORANGE}{COMMA}%
+STR_680B_VEHICLE_RUNNING_COSTS                                  :{LTBLUE}Troškovi uporabe vozila: {ORANGE}{STRING}
+STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR                       :{LTBLUE}Brzina razvoja natjecatelja: {ORANGE}{STRING}
+STR_680D_INTELLIGENCE_OF_COMPETITORS                            :{LTBLUE}Inteligencija natjecatelja: {ORANGE}{STRING}
+STR_680E_VEHICLE_BREAKDOWNS                                     :{LTBLUE}Kvarovi na vozilima: {ORANGE}{STRING}
+STR_680F_SUBSIDY_MULTIPLIER                                     :{LTBLUE}Subvencijski množitelj: {ORANGE}{STRING}
+STR_6810_COST_OF_CONSTRUCTION                                   :{LTBLUE}Troškovi građenja: {ORANGE}{STRING}
+STR_6811_TERRAIN_TYPE                                           :{LTBLUE}Vrsta terena: {ORANGE}{STRING}
+STR_6812_QUANTITY_OF_SEA_LAKES                                  :{LTBLUE}Količina mora/jezera: {ORANGE}{STRING}
+STR_6813_ECONOMY                                                :{LTBLUE}Ekonomija: {ORANGE}{STRING}
+STR_6814_TRAIN_REVERSING                                        :{LTBLUE}Promjena smjera vlakova: {ORANGE}{STRING}
+STR_6815_DISASTERS                                              :{LTBLUE}Prirodne katastrofe: {ORANGE}{STRING}
+STR_16816_CITY_APPROVAL                                         :{LTBLUE}Stav gradsko vijeća prema restrukturiranju područja: {ORANGE}{STRING}
+############ range for difficulty settings ends
+
+STR_26816_NONE                                                  :Ništa
+STR_NUM_VERY_LOW                                                :Vrlo nisko
+STR_6816_LOW                                                    :Nisko
+STR_6817_NORMAL                                                 :Normalno
+STR_6818_HIGH                                                   :Visoko
+STR_6819                                                        :{BLACK}{SMALLLEFTARROW}
+STR_681A                                                        :{BLACK}{SMALLRIGHTARROW}
+STR_681B_VERY_SLOW                                              :Vrlo sporo
+STR_681C_SLOW                                                   :Sporo
+STR_681D_MEDIUM                                                 :Umjereno
+STR_681E_FAST                                                   :Brzo
+STR_681F_VERY_FAST                                              :Vrlo brzo
+STR_VERY_LOW                                                    :Vrlo nisko
+STR_6820_LOW                                                    :Nisko
+STR_6821_MEDIUM                                                 :Umjereno
+STR_6822_HIGH                                                   :Visoko
+STR_6823_NONE                                                   :Ništa
+STR_6824_REDUCED                                                :Smanjeno
+STR_6825_NORMAL                                                 :Normalno
+STR_6826_X1_5                                                   :x1.5
+STR_6827_X2                                                     :x2
+STR_6828_X3                                                     :x3
+STR_6829_X4                                                     :x4
+STR_682A_VERY_FLAT                                              :Vrlo ravno
+STR_682B_FLAT                                                   :Ravno
+STR_682C_HILLY                                                  :Brežuljkasto
+STR_682D_MOUNTAINOUS                                            :Brdovito
+STR_682E_STEADY                                                 :Stabilno
+STR_682F_FLUCTUATING                                            :Promjenjivo
+STR_6830_IMMEDIATE                                              :Odmah
+STR_6831_3_MONTHS_AFTER_PLAYER                                  :3 mjeseca nakon igrača
+STR_6832_6_MONTHS_AFTER_PLAYER                                  :6 mjeseci nakon igrača
+STR_6833_9_MONTHS_AFTER_PLAYER                                  :9 mjeseci nakon igrača
+STR_6834_AT_END_OF_LINE_AND_AT_STATIONS                         :Na kraju pruge, i na stanici
+STR_6835_AT_END_OF_LINE_ONLY                                    :Isključivo na kraju pruge
+STR_6836_OFF                                                    :Isključeno
+STR_6837_ON                                                     :Uključeno
+STR_6838_SHOW_HI_SCORE_CHART                                    :{BLACK}Prikaz tablice najboljih rezultata
+STR_6839_PERMISSIVE                                             :Dopustiv
+STR_683A_TOLERANT                                               :Tolerantan
+STR_683B_HOSTILE                                                :Agresivan
+
+##id 0x7000
+STR_7000                                                        :
+STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{COMPANYNUM}
+STR_7002_PLAYER                                                 :(Igrač {COMMA})
+STR_7004_NEW_FACE                                               :{BLACK}Novo lice
+STR_7005_COLOR_SCHEME                                           :{BLACK}Boja
+STR_7006_COLOR_SCHEME                                           :{GOLD}Boja:
+STR_7007_NEW_COLOR_SCHEME                                       :{WHITE}Nova boja
+STR_7008_COMPANY_NAME                                           :{BLACK}Ime tvrtke
+STR_7009_PRESIDENT_NAME                                         :{BLACK}Ime direktora
+STR_700A_COMPANY_NAME                                           :Ime tvrtke
+STR_700B_PRESIDENT_S_NAME                                       :Ime direktora
+STR_700C_CAN_T_CHANGE_COMPANY_NAME                              :{WHITE}Ime tvrtke ne može se promijeniti...
+STR_700D_CAN_T_CHANGE_PRESIDENT                                 :{WHITE}Ne možeš promijeniti ime direktora...
+STR_700E_FINANCES                                               :{WHITE}{COMPANY} Financije {BLACK}{COMPANYNUM}
+STR_700F_EXPENDITURE_INCOME                                     :{WHITE}Izdatci/Prihodi
+STR_7010                                                        :{WHITE}{NUM}
+STR_7011_CONSTRUCTION                                           :{GOLD}Građenje
+STR_7012_NEW_VEHICLES                                           :{GOLD}Nova vozila
+STR_7013_TRAIN_RUNNING_COSTS                                    :{GOLD}Troškovi uporabe vlakova
+STR_7014_ROAD_VEH_RUNNING_COSTS                                 :{GOLD}Troškovi uporabe cestovnih vozila
+STR_7015_AIRCRAFT_RUNNING_COSTS                                 :{GOLD}Troškovi uporabe zrakoplova
+STR_7016_SHIP_RUNNING_COSTS                                     :{GOLD}Troškovi uporabe brodova
+STR_7017_PROPERTY_MAINTENANCE                                   :{GOLD}Održavanje posjeda
+STR_7018_TRAIN_INCOME                                           :{GOLD}Prihod od vlakova
+STR_7019_ROAD_VEHICLES_INCOME                                   :{GOLD}Prihod od cestovnih vozila
+STR_701A_AIRCRAFT_INCOME                                        :{GOLD}Prihod od zrakoplova
+STR_701B_SHIP_INCOME                                            :{GOLD}Prihod od brodova
+STR_701C_LOAN_INTEREST                                          :{GOLD}Kamate
+STR_701D_OTHER                                                  :{GOLD}Ostalo
+STR_701E                                                        :{BLACK}-{CURRENCY}
+STR_701F                                                        :{BLACK}+{CURRENCY}
+STR_7020_TOTAL                                                  :{WHITE}Ukupno:
+STR_7021                                                        :{COMPANY}{COMPANYNUM}
+STR_7022_INCOME_GRAPH                                           :{WHITE}Graf prihoda
+STR_CURRCOMPACT                                                 :{CURRCOMPACT}
+STR_7024                                                        :{COMMA}
+STR_7025_OPERATING_PROFIT_GRAPH                                 :{WHITE}Graf operativnih prihoda
+STR_7026_BANK_BALANCE                                           :{WHITE}Bankovna bilanca
+STR_7027_LOAN                                                   :{WHITE}Kredit
+STR_MAX_LOAN                                                    :{WHITE}Maks zajam:  {BLACK}{CURRENCY}
+STR_7028                                                        :{BLACK}{CURRENCY}
+STR_7029_BORROW                                                 :{BLACK}Pozajmi {SKIP}{SKIP}{CURRENCY}
+STR_702A_REPAY                                                  :{BLACK}Otplati {SKIP}{SKIP}{CURRENCY}
+STR_702B_MAXIMUM_PERMITTED_LOAN                                 :{WHITE}...najveći dopušteni kredit iznosi {CURRENCY}
+STR_702C_CAN_T_BORROW_ANY_MORE_MONEY                            :{WHITE}Ne možeš dobiti još kredita...
+STR_702D_LOAN_ALREADY_REPAYED                                   :{WHITE}...nemaš kredita za otplatu
+STR_702E_REQUIRED                                               :{WHITE}...{CURRENCY} potrebno
+STR_702F_CAN_T_REPAY_LOAN                                       :{WHITE}Ne možeš otplatiti kredit...
+STR_INSUFFICIENT_FUNDS                                          :{WHITE}Ne možeš dati novac koji je pozajmljen od banke...
+STR_7030_SELECT_NEW_FACE_FOR_PRESIDENT                          :{BLACK}Odaberi novo lice za direktora
+STR_7031_CHANGE_THE_COMPANY_VEHICLE                             :{BLACK}Promijeni izgled vozila tvrtke
+STR_7032_CHANGE_THE_PRESIDENT_S                                 :{BLACK}Promjeni ime direktora
+STR_7033_CHANGE_THE_COMPANY_NAME                                :{BLACK}Promijeni ime tvrtke
+STR_7034_CLICK_ON_SELECTED_NEW_COLOR                            :{BLACK}Klikni na odabranu boju
+STR_7035_INCREASE_SIZE_OF_LOAN                                  :{BLACK}Povećaj iznos kredita
+STR_7036_REPAY_PART_OF_LOAN                                     :{BLACK}Otplati dio kredita
+STR_7037_PRESIDENT                                              :{WHITE}{PLAYERNAME}{}{GOLD}(Direktor)
+STR_7038_INAUGURATED                                            :{GOLD}Na poziciji od: {WHITE}{NUM}
+STR_7039_VEHICLES                                               :{GOLD}Vozila:
+STR_TRAINS                                                      :{WHITE}{COMMA} vlak{P "" a ova}
+STR_ROAD_VEHICLES                                               :{WHITE}{COMMA} cestovn{P o a ih} vozil{P o a a}
+STR_AIRCRAFT                                                    :{WHITE}{COMMA} zrakoplov
+STR_SHIPS                                                       :{WHITE}{COMMA} brod{P "" a ova}
+STR_7042_NONE                                                   :{WHITE}Ništa
+STR_7043_FACE_SELECTION                                         :{WHITE}Odabir lica
+STR_7044_MALE                                                   :{BLACK}Muško
+STR_7045_FEMALE                                                 :{BLACK}Žensko
+STR_7046_NEW_FACE                                               :{BLACK}Novo lice
+STR_7047_CANCEL_NEW_FACE_SELECTION                              :{BLACK}Odustani od odabira novog lica
+STR_7048_ACCEPT_NEW_FACE_SELECTION                              :{BLACK}Prihvati odabir novog lica
+STR_7049_SELECT_MALE_FACES                                      :{BLACK}Odaberi muška lica
+STR_704A_SELECT_FEMALE_FACES                                    :{BLACK}Odaberi ženska lica
+STR_704B_GENERATE_RANDOM_NEW_FACE                               :{BLACK}Generiraj nasumično novo lice
+STR_704C_KEY                                                    :{BLACK}Ključ
+STR_704D_SHOW_KEY_TO_GRAPHS                                     :{BLACK}Prikaži ključeve po grafovima
+STR_704E_KEY_TO_COMPANY_GRAPHS                                  :{WHITE}Ključ za grafove tvrtke
+STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY                           :{BLACK}Klikni ovdje za uključivanje/isključivanje tvrke s grafa
+STR_7050_UNITS_OF_CARGO_DELIVERED                               :{WHITE}Dostavljenih jedinica tereta
+STR_7051_COMPANY_PERFORMANCE_RATINGS                            :{WHITE}Ocjena učinka tvrtke (najveća ocjena = 1000)
+STR_7052_COMPANY_VALUES                                         :{WHITE}Vrijednost tvrtki
+STR_7053_COMPANY_LEAGUE_TABLE                                   :{WHITE}Tablica lige tvrtki
+STR_7054                                                        :{WHITE}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{COMPANYNUM} '{STRING}'
+STR_7055                                                        :{YELLOW}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{COMPANYNUM}  '{STRING}'
+STR_7056_TRANSPORT_COMPANY_IN_TROUBLE                           :{BLACK}{BIGFONT}Prijevozna tvrtka u nevoljama!
+STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED                           :{BLACK}{BIGFONT}{COMPANY} će biti rasprodana ili objaviti bankrot ukoliko se učinak uskoro ne poboljša!
+STR_7058_PRESIDENT                                              :{BLACK}{PLAYERNAME}{}(Direktor)
+STR_7059_TRANSPORT_COMPANY_MERGER                               :{BLACK}{BIGFONT}Spajanje prijevoznih tvrki!
+STR_705A_HAS_BEEN_SOLD_TO_FOR                                   :{BLACK}{BIGFONT}{COMPANY} je bila prodana tvrtki {COMPANY} za {CURRENCY}!
+STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT                         :{WHITE}Tražimo prijevoznu tvrku koja bi preuzela našu tvrtku.{}{}Želiš li kupiti tvrtku{COMPANY} za {CURRENCY}?
+STR_705C_BANKRUPT                                               :{BLACK}{BIGFONT}Bankrot!
+STR_705D_HAS_BEEN_CLOSED_DOWN_BY                                :{BLACK}{BIGFONT}{COMPANY} je zatvorena od strane kreditora i sva je imovina rasprodana!
+STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED                         :{BLACK}{BIGFONT}Osnovana je nova prijevozna tvrtka!
+STR_705F_STARTS_CONSTRUCTION_NEAR                               :{BLACK}{BIGFONT}{COMPANY} započinje gradnju blizu grada {TOWN}!
+STR_7060_CAN_T_BUY_COMPANY                                      :{WHITE}Ne možeš kupiti tvrtku...
+STR_7061_CARGO_PAYMENT_RATES                                    :{WHITE}Isplatne rate tereta
+STR_7062_DAYS_IN_TRANSIT                                        :{BLACK}{TINYFONT}Dana u tranzitu
+STR_7064_TOGGLE_GRAPH_FOR_CARGO                                 :{BLACK}Aktiviraj/deaktiviraj graf za vrstu tereta
+STR_7065                                                        :{BLACK}{TINYFONT}{STRING}
+STR_7066_ENGINEER                                               :Inženjer
+STR_7067_TRAFFIC_MANAGER                                        :Prijevozni upravitelj
+STR_7068_TRANSPORT_COORDINATOR                                  :Prijevozni koordinator
+STR_7069_ROUTE_SUPERVISOR                                       :Prijevozni nadzornik
+STR_706A_DIRECTOR                                               :Direktor
+STR_706B_CHIEF_EXECUTIVE                                        :Izvršni direktor
+STR_706C_CHAIRMAN                                               :Predsjedavajući
+STR_706D_PRESIDENT                                              :Predsjednik
+STR_706E_TYCOON                                                 :Tajkun
+STR_706F_BUILD_HQ                                               :{BLACK}Izgradi sjedište tvrtke
+STR_7070_BUILD_COMPANY_HEADQUARTERS                             :{BLACK}Izgradi središte tvrtke / pogledaj sjedište tvrtke
+STR_RELOCATE_COMPANY_HEADQUARTERS                               :{BLACK}Izgradi sjedište kompanije negdje dalje za 1% troška od vrijednosti kompanije
+STR_7071_CAN_T_BUILD_COMPANY_HEADQUARTERS                       :{WHITE}Ne mogu izgraditi sjedište tvrke...
+STR_7072_VIEW_HQ                                                :{BLACK}Pogledaj sjedište tvrtke
+STR_RELOCATE_HQ                                                 :{BLACK}Premjesti sjedište kompanije
+STR_COMPANY_PASSWORD                                            :{BLACK}Zaporka
+STR_COMPANY_PASSWORD_TOOLTIP                                    :{BLACK}Zaštiti svoju tvrku od neovlaštenog korištenje pomoću zaporke.
+STR_SET_COMPANY_PASSWORD                                        :Postavi zaporku tvrtke
+STR_7073_WORLD_RECESSION_FINANCIAL                              :{BIGFONT}{BLACK}Svjetska recesija!{}{}Financijski stručnjaci očekuju najgore zbog ekonomske krize!
+STR_7074_RECESSION_OVER_UPTURN_IN                               :{BIGFONT}{BLACK}Recesija završena!{}{}Obrat  u trgovanu daje samopouzdanje gospodarstvu jer ekonomija jača!
+STR_7076_COMPANY_VALUE                                          :{GOLD}Vrijednost tvrtke: {WHITE}{CURRENCY}
+STR_7077_BUY_25_SHARE_IN_COMPANY                                :{BLACK}Kupi 25% udjela u tvrtci
+STR_7078_SELL_25_SHARE_IN_COMPANY                               :{BLACK}Prodaj 25% udio u tvrtci
+STR_7079_BUY_25_SHARE_IN_THIS_COMPANY                           :{BLACK}Kupi 25% udjela u ovoj tvrtci
+STR_707A_SELL_25_SHARE_IN_THIS_COMPANY                          :{BLACK}Prodaj 25% udjela u ovoj tvrtci
+STR_707B_CAN_T_BUY_25_SHARE_IN_THIS                             :{WHITE}Ne možeš kupiti 25% udjela u ovoj tvrtci...
+STR_707C_CAN_T_SELL_25_SHARE_IN                                 :{WHITE}Ne možeš prodati 25% udjela u ovoj tvrtci...
+STR_707D_OWNED_BY                                               :{WHITE}({COMMA}% u vlasništvu {COMPANY})
+STR_707E_OWNED_BY_OWNED_BY                                      :{WHITE}({COMMA}% u vlasništvu {COMPANY}{}   {COMMA}% u vlasništvu {COMPANY})
+STR_707F_HAS_BEEN_TAKEN_OVER_BY                                 :{BLACK}{BIGFONT}{COMPANY} je preuzeta od strane tvrtke {COMPANY}!
+STR_7080_PROTECTED                                              :{WHITE}Ova tvrka još nije dovoljno stara da bi trgovala udjelima...
+
+STR_LIVERY_STEAM                                                :Parna lokomotva
+STR_LIVERY_DIESEL                                               :Dieselska lokomotiva
+STR_LIVERY_ELECTRIC                                             :Električna lokomotiva
+STR_LIVERY_MONORAIL                                             :Jednotračna lokomotiva
+STR_LIVERY_MAGLEV                                               :Maglevska lokomotiva
+STR_LIVERY_PASSENGER_WAGON_STEAM                                :Lokomotiva s putnicima (Parna)
+STR_LIVERY_PASSENGER_WAGON_DIESEL                               :Lokomotiva s putnicima (Dieselska)
+STR_LIVERY_PASSENGER_WAGON_ELECTRIC                             :Lokomotiva s putnicima (Električna)
+STR_LIVERY_FREIGHT_WAGON                                        :Teretni vagon
+STR_LIVERY_BUS                                                  :Autobus
+STR_LIVERY_TRUCK                                                :Kamion
+STR_LIVERY_PASSENGER_SHIP                                       :Trajekt
+STR_LIVERY_FREIGHT_SHIP                                         :Teretni brod
+STR_LIVERY_HELICOPTER                                           :Helikopter
+STR_LIVERY_SMALL_PLANE                                          :Mali zrakoplov
+STR_LIVERY_LARGE_PLANE                                          :Veliki zrakoplov
+
+
+##id 0x8000
+STR_8000_KIRBY_PAUL_TANK_STEAM                                  :Kirby Paul Tank (Para)
+STR_8001_MJS_250_DIESEL                                         :MJS 250 (Diesel)
+STR_8002_PLODDYPHUT_CHOO_CHOO                                   :Ploddyphut Choo-Choo
+STR_8003_POWERNAUT_CHOO_CHOO                                    :Powernaut Choo-Choo
+STR_8004_MIGHTYMOVER_CHOO_CHOO                                  :Mightymover Choo-Choo
+STR_8005_PLODDYPHUT_DIESEL                                      :Ploddyphut Diesel
+STR_8006_POWERNAUT_DIESEL                                       :Powernaut Diesel
+STR_8007_WILLS_2_8_0_STEAM                                      :Wills 2-8-0 (Para)
+STR_8008_CHANEY_JUBILEE_STEAM                                   :Chaney 'Jubilee' (Para)
+STR_8009_GINZU_A4_STEAM                                         :Ginzu 'A4' (Para)
+STR_800A_SH_8P_STEAM                                            :SH '8P' (Para)
+STR_800B_MANLEY_MOREL_DMU_DIESEL                                :Manley-Morel DMU (Diesel)
+STR_800C_DASH_DIESEL                                            :'Dash' (Diesel)
+STR_800D_SH_HENDRY_25_DIESEL                                    :SH/Hendry '25' (Diesel)
+STR_800E_UU_37_DIESEL                                           :UU '37' (Diesel)
+STR_800F_FLOSS_47_DIESEL                                        :Floss '47' (Diesel)
+STR_8010_CS_4000_DIESEL                                         :CS 4000 (Diesel)
+STR_8011_CS_2400_DIESEL                                         :CS 2400 (Diesel)
+STR_8012_CENTENNIAL_DIESEL                                      :Centennial (Diesel)
+STR_8013_KELLING_3100_DIESEL                                    :Kelling 3100 (Diesel)
+STR_8014_TURNER_TURBO_DIESEL                                    :Turner Turbo (Diesel)
+STR_8015_MJS_1000_DIESEL                                        :MJS 1000 (Diesel)
+STR_8016_SH_125_DIESEL                                          :SH '125' (Diesel)
+STR_8017_SH_30_ELECTRIC                                         :SH '30' (Electric)
+STR_8018_SH_40_ELECTRIC                                         :SH '40' (Električni)
+STR_8019_T_I_M_ELECTRIC                                         :'T.I.M.' (Električni)
+STR_801A_ASIASTAR_ELECTRIC                                      :'AsiaStar' (Električni)
+STR_801B_PASSENGER_CAR                                          :Putnički prijevoz
+STR_801C_MAIL_VAN                                               :Poštanski kombi
+STR_801D_COAL_CAR                                               :Kamion za ugljen
+STR_801E_OIL_TANKER                                             :Naftna cisterna
+STR_801F_LIVESTOCK_VAN                                          :Kamion za stoku
+STR_8020_GOODS_VAN                                              :Kamion za robu
+STR_8021_GRAIN_HOPPER                                           :Tegljač žita
+STR_8022_WOOD_TRUCK                                             :Kamion za drvo
+STR_8023_IRON_ORE_HOPPER                                        :Tegljač željeza
+STR_8024_STEEL_TRUCK                                            :Kamion za čelik
+STR_8025_ARMORED_VAN                                            :Oklopljeni kombi
+STR_8026_FOOD_VAN                                               :Kombi za hranu
+STR_8027_PAPER_TRUCK                                            :Kamion za papir
+STR_8028_COPPER_ORE_HOPPER                                      :Tegljač bakra
+STR_8029_WATER_TANKER                                           :Cisterna za vodu
+STR_802A_FRUIT_TRUCK                                            :Kamion za voće
+STR_802B_RUBBER_TRUCK                                           :Kamion za gumu
+STR_802C_SUGAR_TRUCK                                            :Kamion za šećer
+STR_802D_COTTON_CANDY_HOPPER                                    :Tegljač šećerne vune
+STR_802E_TOFFEE_HOPPER                                          :Tegljač mliječne karamele
+STR_802F_BUBBLE_VAN                                             :Kombi za balone
+STR_8030_COLA_TANKER                                            :Cisterna kole
+STR_8031_CANDY_VAN                                              :Kombi za slatkiše
+STR_8032_TOY_VAN                                                :Kombi za igračke
+STR_8033_BATTERY_TRUCK                                          :Kamion za baterije
+STR_8035_PLASTIC_TRUCK                                          :Kamion za plastiku
+STR_8036_X2001_ELECTRIC                                         :'X2001' (Električni)
+STR_8037_MILLENNIUM_Z1_ELECTRIC                                 :'Millennium Z1' (Električni)
+STR_8038_WIZZOWOW_Z99                                           :Wizzowow Z99
+STR_8039_PASSENGER_CAR                                          :Putnički prijevoz
+STR_803A_MAIL_VAN                                               :Poštanski kombi
+STR_803B_COAL_CAR                                               :Kamion za ugljen
+STR_803C_OIL_TANKER                                             :Naftni tanker
+STR_803D_LIVESTOCK_VAN                                          :Kamion za stoku
+STR_803E_GOODS_VAN                                              :Kamion za robu
+STR_803F_GRAIN_HOPPER                                           :Tegljač žita
+STR_8040_WOOD_TRUCK                                             :Kamion za drvo
+STR_8041_IRON_ORE_HOPPER                                        :Tegljač željeza
+STR_8042_STEEL_TRUCK                                            :Kamion za željezo
+STR_8043_ARMORED_VAN                                            :Oklopno vozilo
+STR_8044_FOOD_VAN                                               :Kamion za hranu
+STR_8045_PAPER_TRUCK                                            :Kamion za papir
+STR_8046_COPPER_ORE_HOPPER                                      :Tegljač bakra
+STR_8047_WATER_TANKER                                           :Cisterna za vodu
+STR_8048_FRUIT_TRUCK                                            :Kamion za voće
+STR_8049_RUBBER_TRUCK                                           :Kamion za gumu
+STR_804A_SUGAR_TRUCK                                            :Kamion za šećer
+STR_804B_COTTON_CANDY_HOPPER                                    :Tegljač Šećerne vune
+STR_804C_TOFFEE_HOPPER                                          :Tegljač mliječne karamele
+STR_804D_BUBBLE_VAN                                             :Kombi za balone
+STR_804E_COLA_TANKER                                            :Cisterna za colu
+STR_804F_CANDY_VAN                                              :Kombi za slatkiše
+STR_8050_TOY_VAN                                                :Kombi za igračke
+STR_8051_BATTERY_TRUCK                                          :Kamion za baterije
+STR_8053_PLASTIC_TRUCK                                          :Kamion za plastiku
+STR_8054_LEV1_LEVIATHAN_ELECTRIC                                :Lev1 'Leviathan' (Električni)
+STR_8055_LEV2_CYCLOPS_ELECTRIC                                  :Lev2 'Cyclops' (Električni)
+STR_8056_LEV3_PEGASUS_ELECTRIC                                  :Lev3 'Pegasus' (Električni)
+STR_8057_LEV4_CHIMAERA_ELECTRIC                                 :Lev4 'Chimaera' (Električni)
+STR_8058_WIZZOWOW_ROCKETEER                                     :Wizzowow Rocketeer
+STR_805A_MAIL_VAN                                               :Poštanski kombi
+STR_805B_COAL_CAR                                               :Kamion za ugljen
+STR_805C_OIL_TANKER                                             :Naftna cisterna
+STR_805D_LIVESTOCK_VAN                                          :Kamion za stoku
+STR_805E_GOODS_VAN                                              :Kamion za robu
+STR_805F_GRAIN_HOPPER                                           :Tegljač žita
+STR_8060_WOOD_TRUCK                                             :Kamion za drva
+STR_8061_IRON_ORE_HOPPER                                        :Tegljač željeza
+STR_8062_STEEL_TRUCK                                            :Kamion za čelik
+STR_8063_ARMORED_VAN                                            :Oklopno vozilo
+STR_8064_FOOD_VAN                                               :Kamion za hranu
+STR_8065_PAPER_TRUCK                                            :Kamion za papir
+STR_8066_COPPER_ORE_HOPPER                                      :Tegljač bakra
+STR_8067_WATER_TANKER                                           :Cisterna za vodu
+STR_8068_FRUIT_TRUCK                                            :Kamion za voće
+STR_8069_RUBBER_TRUCK                                           :Kamion za gumu
+STR_806A_SUGAR_TRUCK                                            :Kamion za šećer
+STR_806B_COTTON_CANDY_HOPPER                                    :Tegljač šećerne vune
+STR_806C_TOFFEE_HOPPER                                          :Teglač mliječne karamele
+STR_806D_BUBBLE_VAN                                             :Kombi za balone
+STR_806E_COLA_TANKER                                            :Cisterna za colu
+STR_806F_CANDY_VAN                                              :Kombi za slatkiše
+STR_8070_TOY_VAN                                                :Kombi za igračke
+STR_8071_BATTERY_TRUCK                                          :Kamion za baterije
+STR_8074_MPS_REGAL_BUS                                          :MPS Regal Bus
+STR_8075_HEREFORD_LEOPARD_BUS                                   :Hereford Leopard Bus
+STR_8076_FOSTER_BUS                                             :Foster Bus
+STR_8077_FOSTER_MKII_SUPERBUS                                   :Foster MkII Superbus
+STR_8078_PLODDYPHUT_MKI_BUS                                     :Ploddyphut MkI Bus
+STR_8079_PLODDYPHUT_MKII_BUS                                    :Ploddyphut MkII Bus
+STR_807A_PLODDYPHUT_MKIII_BUS                                   :Ploddyphut MkIII Bus
+STR_8081_MIGHTYMOVER_MAIL_TRUCK                                 :MightyMover Poštanski Kamion
+STR_8082_POWERNAUGHT_MAIL_TRUCK                                 :Powernaught Poštanski Kamion
+STR_8083_WIZZOWOW_MAIL_TRUCK                                    :Wizzwow Poštanski Kamion
+STR_8084_WITCOMBE_OIL_TANKER                                    :Witcombe Tanker Ulja
+STR_8085_FOSTER_OIL_TANKER                                      :Foster Tanker Ulja
+STR_8086_PERRY_OIL_TANKER                                       :Perry Tanker Ulja
+STR_8087_TALBOTT_LIVESTOCK_VAN                                  :Tallbot Stočni Kamion
+STR_8088_UHL_LIVESTOCK_VAN                                      :Uhl Stočni Kamion
+STR_8089_FOSTER_LIVESTOCK_VAN                                   :Foster Stočni Kamion
+STR_808A_BALOGH_GOODS_TRUCK                                     :Balogh Robni Kamion
+STR_808B_CRAIGHEAD_GOODS_TRUCK                                  :Craighead Robni Kamion
+STR_808C_GOSS_GOODS_TRUCK                                       :Goss Robni Kamion
+STR_808D_HEREFORD_GRAIN_TRUCK                                   :Hereford Kamion za žitarice
+STR_808E_THOMAS_GRAIN_TRUCK                                     :Thomas Kamion za žitarice
+STR_808F_GOSS_GRAIN_TRUCK                                       :Goss Kamion za žitarice
+STR_8090_WITCOMBE_WOOD_TRUCK                                    :Witcombe Kamion za drvo
+STR_8091_FOSTER_WOOD_TRUCK                                      :Foster Kamion za drvo
+STR_8092_MORELAND_WOOD_TRUCK                                    :Moreland Kamion za Drvo
+STR_8093_MPS_IRON_ORE_TRUCK                                     :MPS Kamion za željeznu rudu
+STR_8094_UHL_IRON_ORE_TRUCK                                     :Uhl Kamion za željezu rudu
+STR_8095_CHIPPY_IRON_ORE_TRUCK                                  :Chippy Kamion za željeznu rudu
+STR_8096_BALOGH_STEEL_TRUCK                                     :Balogh Kamion za čelik
+STR_8097_UHL_STEEL_TRUCK                                        :Uhl Kamion za čelik
+STR_8098_KELLING_STEEL_TRUCK                                    :Kelling Kamion za čelik
+STR_8099_BALOGH_ARMORED_TRUCK                                   :Balogh Blindirani Kamion
+STR_809A_UHL_ARMORED_TRUCK                                      :Uhl Blindirani Kamion
+STR_809B_FOSTER_ARMORED_TRUCK                                   :Foster Blindirani Kamion
+STR_809C_FOSTER_FOOD_VAN                                        :Foster Kamion za hranu
+STR_809D_PERRY_FOOD_VAN                                         :Perry Kamion za hranu
+STR_809E_CHIPPY_FOOD_VAN                                        :Chippy Kamion za hranu
+STR_809F_UHL_PAPER_TRUCK                                        :Uhl Kamion za papir
+STR_80A0_BALOGH_PAPER_TRUCK                                     :Balogh Kamion za papir
+STR_80A1_MPS_PAPER_TRUCK                                        :MPS Kamion za papir
+STR_80A2_MPS_COPPER_ORE_TRUCK                                   :MPS Kamion za bakrenu rudu
+STR_80A3_UHL_COPPER_ORE_TRUCK                                   :Uhl Kamion za bakrenu rudu
+STR_80A4_GOSS_COPPER_ORE_TRUCK                                  :Goss Kamion za bakrenu rudu
+STR_80A5_UHL_WATER_TANKER                                       :Uhl Tanker Voda
+STR_80A6_BALOGH_WATER_TANKER                                    :Baloght Tanker Voda
+STR_80A7_MPS_WATER_TANKER                                       :MPS Tanker Voda
+STR_80A8_BALOGH_FRUIT_TRUCK                                     :Balog Kamion za voće
+STR_80A9_UHL_FRUIT_TRUCK                                        :Uhl Kamion za voće
+STR_80AA_KELLING_FRUIT_TRUCK                                    :Kelling Kamion za voće
+STR_80AB_BALOGH_RUBBER_TRUCK                                    :Balogh Kamion za gumu
+STR_80AC_UHL_RUBBER_TRUCK                                       :Uhl Kamion za gumu
+STR_80AD_RMT_RUBBER_TRUCK                                       :RMT Kamion za gumu
+STR_80AE_MIGHTYMOVER_SUGAR_TRUCK                                :MightyMover Kamion za šećer
+STR_80AF_POWERNAUGHT_SUGAR_TRUCK                                :Powernaught Kamion za šećer
+STR_80B0_WIZZOWOW_SUGAR_TRUCK                                   :Wizzwow Kamion za šećer
+STR_80B1_MIGHTYMOVER_COLA_TRUCK                                 :MightyMover Cola Kamion
+STR_80B2_POWERNAUGHT_COLA_TRUCK                                 :Powernaught Cola Kamion
+STR_80B3_WIZZOWOW_COLA_TRUCK                                    :Wizzwow Cola Kamion
+STR_80B4_MIGHTYMOVER_COTTON_CANDY                               :MighyMover Kamion za šećernu vatu
+STR_80B5_POWERNAUGHT_COTTON_CANDY                               :Powernaught Kamion za šećernu vatu
+STR_80B6_WIZZOWOW_COTTON_CANDY_TRUCK                            :Wizzwow Kamion za šećernu vatu
+STR_80B7_MIGHTYMOVER_TOFFEE_TRUCK                               :MightyMover Toffee Kamion
+STR_80B8_POWERNAUGHT_TOFFEE_TRUCK                               :Powernaught Toffee Kamion
+STR_80B9_WIZZOWOW_TOFFEE_TRUCK                                  :Wizzwow Toffee Kamion
+STR_80BA_MIGHTYMOVER_TOY_VAN                                    :MigtyMover Kamion za igračke
+STR_80BB_POWERNAUGHT_TOY_VAN                                    :Powernaught Kamion za igračke
+STR_80BC_WIZZOWOW_TOY_VAN                                       :Wizzwow Kamion za igračke
+STR_80BD_MIGHTYMOVER_CANDY_TRUCK                                :MightyMover Kamona za slatkiše
+STR_80BE_POWERNAUGHT_CANDY_TRUCK                                :Powernaught Kamion za slatkiše
+STR_80BF_WIZZOWOW_CANDY_TRUCK                                   :Wizzwow Kamion za slatkiše
+STR_80C0_MIGHTYMOVER_BATTERY_TRUCK                              :MightyMover Kamiona za baterije
+STR_80C1_POWERNAUGHT_BATTERY_TRUCK                              :Powernaught Kamion za baterije
+STR_80C2_WIZZOWOW_BATTERY_TRUCK                                 :Wizzwwow Kamion za baterije
+STR_80C3_MIGHTYMOVER_FIZZY_DRINK                                :MightyMover Kamion za gazirana pića
+STR_80C4_POWERNAUGHT_FIZZY_DRINK                                :Powernaught Kamion za gazirana pića
+STR_80C5_WIZZOWOW_FIZZY_DRINK_TRUCK                             :Wizzwow Kamion za gazirana pića
+STR_80CC_MPS_OIL_TANKER                                         :MPS Tanker Ulja
+STR_80CD_CS_INC_OIL_TANKER                                      :CS-Inc. Tanker Ulja
+STR_80CE_MPS_PASSENGER_FERRY                                    :MPS Trajekt
+STR_80CF_FFP_PASSENGER_FERRY                                    :FFP Trajekt
+STR_80D0_BAKEWELL_300_HOVERCRAFT                                :Bakewell 300 Lebdjelica
+STR_80D1_CHUGGER_CHUG_PASSENGER                                 :Chugger-Chug Trajekt
+STR_80D2_SHIVERSHAKE_PASSENGER_FERRY                            :Shivershake Trajekt
+STR_80D3_YATE_CARGO_SHIP                                        :Yate Teretni Brod
+STR_80D4_BAKEWELL_CARGO_SHIP                                    :Bakewell Teretni Brod
+STR_80D5_MIGHTYMOVER_CARGO_SHIP                                 :Mightymover Teretni Brod
+STR_80D6_POWERNAUT_CARGO_SHIP                                   :Powernaught Teretni Brod
+STR_80D7_SAMPSON_U52                                            :Sampson U52
+STR_80D8_COLEMAN_COUNT                                          :Coleman Count
+STR_80D9_FFP_DART                                               :FFP Dart
+STR_80DA_YATE_HAUGAN                                            :Yate Haugan
+STR_80DB_BAKEWELL_COTSWALD_LB_3                                 :Bakewell Cotswald LB-3
+STR_80DC_BAKEWELL_LUCKETT_LB_8                                  :Bakewell Luckett LB-8
+STR_80DD_BAKEWELL_LUCKETT_LB_9                                  :Bakewell Luckett LB-9
+STR_80DE_BAKEWELL_LUCKETT_LB80                                  :Bakewell Luckett LB80
+STR_80DF_BAKEWELL_LUCKETT_LB_10                                 :Bakewell Luckett LB-10
+STR_80E0_BAKEWELL_LUCKETT_LB_11                                 :Bakewell Luckett LB-11
+STR_80E1_YATE_AEROSPACE_YAC_1_11                                :Yate Aerospace YAC 1-11
+STR_80E2_DARWIN_100                                             :Darwin 100
+STR_80E3_DARWIN_200                                             :Darwin 200
+STR_80E4_DARWIN_300                                             :Darwin 300
+STR_80E5_DARWIN_400                                             :Darwin 400
+STR_80E6_DARWIN_500                                             :Darwin 500
+STR_80E7_DARWIN_600                                             :Darwin 600
+STR_80E8_GURU_GALAXY                                            :Guru Galaxy
+STR_80E9_AIRTAXI_A21                                            :Airtaxi A21
+STR_80EA_AIRTAXI_A31                                            :Airtaxi A31
+STR_80EB_AIRTAXI_A32                                            :Airtaxi A32
+STR_80EC_AIRTAXI_A33                                            :Airtaxi A33
+STR_80ED_YATE_AEROSPACE_YAE46                                   :Yate Aerospace YAe46
+STR_80EE_DINGER_100                                             :Dinger 100
+STR_80EF_AIRTAXI_A34_1000                                       :AirTaxi A34-1000
+STR_80F0_YATE_Z_SHUTTLE                                         :Yate Z-Shuttle
+STR_80F1_KELLING_K1                                             :Kelling K1
+STR_80F2_KELLING_K6                                             :Kelling K6
+STR_80F3_KELLING_K7                                             :Kelling K7
+STR_80F4_DARWIN_700                                             :Darwin 700
+STR_80F5_FFP_HYPERDART_2                                        :FFP Hyperdart 2
+STR_80F6_DINGER_200                                             :Dinger 200
+STR_80F7_DINGER_1000                                            :Dinger 1000
+STR_80F8_PLODDYPHUT_100                                         :Ploddyphut 100
+STR_80F9_PLODDYPHUT_500                                         :Ploddyphut 500
+STR_80FA_FLASHBANG_X1                                           :Flashbang X1
+STR_80FB_JUGGERPLANE_M1                                         :Juggerplane M1
+STR_80FC_FLASHBANG_WIZZER                                       :Flashbang Wizzer
+STR_80FD_TRICARIO_HELICOPTER                                    :Tricario Helicopter
+STR_80FE_GURU_X2_HELICOPTER                                     :Guru X2 Helicopter
+STR_80FF_POWERNAUT_HELICOPTER                                   :Powernaut Helicopter
+STR_8100_MESSAGE_FROM_VEHICLE_MANUFACTURE                       :{WHITE}Poruka od proizvođača vozila
+STR_8101_WE_HAVE_JUST_DESIGNED_A                                :{GOLD}Upravo smo dizajnirani novi {STRING} - jeste li zainteresirani za jednogodišnje isključivo pravo uporabe ovog vozila, tako da vidimo kako se vozilo ponaša prije nego što postane univerzalno dostupno?
+STR_8102_RAILROAD_LOCOMOTIVE                                    :željeznička lokomotiva
+STR_8103_ROAD_VEHICLE                                           :cestovno vozilo
+STR_8104_AIRCRAFT                                               :zrakoplov
+STR_8105_SHIP                                                   :brod
+STR_8106_MONORAIL_LOCOMOTIVE                                    :monorail lokomotiva
+STR_8107_MAGLEV_LOCOMOTIVE                                      :maglev lokomotiva
+
+##id 0x8800
+STR_8800_TRAIN_DEPOT                                            :{WHITE}{TOWN} Spremište vlakova
+STR_8801_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Građani slave . . .{}Prvi vlak stiže na {STATION}!
+STR_8802_DETAILS                                                :{WHITE}{VEHICLE} (Detalji)
+STR_8803_TRAIN_IN_THE_WAY                                       :{WHITE}Vlak na putu
+STR_8804                                                        :{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8805                                                        :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
+STR_8806_GO_TO                                                  :Idi do {STATION}
+STR_8807_GO_TO_TRANSFER                                         :Idi do {STATION} (Transferiraj i preuzmi teret)
+STR_8808_GO_TO_UNLOAD                                           :Idi do {STATION} (Istovar)
+STR_8809_GO_TO_TRANSFER_UNLOAD                                  :Go to {STATION} (Transferiraj i otiđi prazan)
+STR_880A_GO_TO_LOAD                                             :Idi do{STATION} (Utovar)
+STR_880B_GO_TO_TRANSFER_LOAD                                    :Idi do {STATION} (Transferiraj i pričekaj puni utovar)
+STR_880C_GO_NON_STOP_TO                                         :Idi non-stop do {STATION}
+STR_880D_GO_TO_NON_STOP_TRANSFER                                :Idi non-stop do {STATION} (Transferiraj i preuzmi teret)
+STR_880E_GO_NON_STOP_TO_UNLOAD                                  :Idi non-stop do {STATION} (Istovar)
+STR_880F_GO_TO_NON_STOP_TRANSFER_UNLOAD                         :Idi non-stop do {STATION} (Transferiraj i otiđi prazan)
+STR_8810_GO_NON_STOP_TO_LOAD                                    :Idi non-stop do{STATION} (Utovar)
+STR_8811_GO_TO_NON_STOP_TRANSFER_LOAD                           :Idi non-stop do {STATION} (Transferiraj i pričekaj puni utovar)
+STR_GO_TO_TRAIN_DEPOT                                           :Idi do {TOWN} spremište vlakova
+STR_SERVICE_AT_TRAIN_DEPOT                                      :Servisiraj u {TOWN} spremištu vlakova
+STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT                             :Idi non-stop do {TOWN} spremišta vlakova
+STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT                             :Servisiraj non-stop u {TOWN} Željezničkom Skladištu
+
+STR_TIMETABLE_GO_TO                                             :{STRING} {STRING}
+STR_TIMETABLE_TRAVEL_NOT_TIMETABLED                             :Putovanje (bez rasporeda)
+STR_TIMETABLE_TRAVEL_FOR                                        :Putovanje za {STRING}
+STR_TIMETABLE_STAY_FOR                                          :i boravak za {STRING}
+
+STR_HEADING_FOR_TRAIN_DEPOT                                     :{ORANGE} Krećem za {TOWN} Željezničko Skladište
+STR_HEADING_FOR_TRAIN_DEPOT_VEL                                 :{ORANGE} Krećem za {TOWN} Željezničko Skladište, {VELOCITY}
+STR_HEADING_FOR_TRAIN_DEPOT_SERVICE                             :{LTBLUE}Servis u {TOWN} Željezničkom Skladištu
+
+STR_INVALID_ORDER                                               :{RED} (Neispravna naredba)
+
+STR_UNKNOWN_DESTINATION                                         :nepoznato odredište
+STR_8812_EMPTY                                                  :{LTBLUE}Prazan
+STR_8813_FROM                                                   :{LTBLUE}{CARGO} iz {STATION}
+STR_8814_TRAIN_IS_WAITING_IN_DEPOT                              :{WHITE}Vlak {COMMA} čeka u spremištu
+STR_8815_NEW_VEHICLES                                           :{BLACK}Nova vozila
+STR_8816                                                        :{BLACK}-
+STR_8819_TRAIN_TOO_LONG                                         :{WHITE}Vlak predugačak
+STR_881A_TRAINS_CAN_ONLY_BE_ALTERED                             :{WHITE}Vlakovi mogu biti izmjenjeni jedino kad su zaustavljeni u spremištu
+
+STR_881C_NEW_RAIL_VEHICLES                                      :{WHITE}Nova željeznička vozila
+STR_NEW_ELRAIL_VEHICLES                                         :{WHITE}Nova vozila električne pruge
+STR_881D_NEW_MONORAIL_VEHICLES                                  :{WHITE}Nova monorail vozila
+STR_881E_NEW_MAGLEV_VEHICLES                                    :{WHITE}Nova maglev vozila
+STR_ALL_AVAIL_RAIL_VEHICLES                                     :{WHITE}Željeznička vozila
+
+STR_881F_BUILD_VEHICLE                                          :{BLACK}Izgradi vozilo
+STR_CLONE_ROAD_VEHICLE                                          :{BLACK}Kloniraj vozilo
+STR_CLONE_ROAD_VEHICLE_INFO                                     :{BLACK}Ovo će izgraditi kopiju cestovnog vozila. Control-clik će dijeliti naredbe
+STR_CLONE_ROAD_VEHICLE_DEPOT_INFO                               :{BLACK}Ovo će napraviti kopiju cestovnog vozila. Kliknite na ovu tipku i onda na cestovno vozilo unutar ili izvan skladišta. CTRL-klik će podijeliti naredbe
+STR_CLONE_TRAIN                                                 :{BLACK}Kloniraj vlak
+STR_CLONE_TRAIN_INFO                                            :{BLACK}Ovo će izgraditi kopiju vlaka uključujući sve vagone. Control-klik će dijeliti naredbe
+STR_CLONE_TRAIN_DEPOT_INFO                                      :{BLACK}Ovo će napraviti kopiju vlaka uključujući vagone. Kliknite na ovu tipku i onda na vlak unutar ili izvan skladišta. CTRL-klik će podijeliti naredbe
+STR_8820_RENAME                                                 :{BLACK}Preimenuj
+STR_8823_SKIP                                                   :{BLACK}Preskoči
+STR_8824_DELETE                                                 :{BLACK}Obriši
+STR_8825_NON_STOP                                               :{BLACK}Non-stop
+STR_8826_GO_TO                                                  :{BLACK}Idi do
+STR_8827_FULL_LOAD                                              :{BLACK}Puni utovar
+STR_8828_UNLOAD                                                 :{BLACK}Istovar
+STR_REFIT                                                       :{BLACK}Prenamijeni
+STR_REFIT_TIP                                                   :{BLACK}Odaberi tip tereta za prenamijeniti u ovoj narudžbi. CTRL-klik za brisanje uputa za prenamijenu
+STR_REFIT_ORDER                                                 :(Prenamijeni u {STRING})
+STR_TIMETABLE_VIEW                                              :{BLACK} Raspored
+STR_TIMETABLE_VIEW_TOOLTIP                                      :{BLACK}Prebacivanje na pogled rasporeda
+STR_8829_ORDERS                                                 :{WHITE}{VEHICLE} (Naredbe)
+STR_882A_END_OF_ORDERS                                          :{SETX 10}- - Kraj naredbi - -
+STR_FULLLOAD_OR_SERVICE                                         :{SKIP}{SKIP}{STRING}
+STR_SERVICE                                                     :{BLACK}Servis
+STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE                           :{WHITE}Ne mogu izgraditi željezničko vozilo...
+STR_882C_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Izgrađen: {LTBLUE}{NUM}{BLACK} Vrijednost: {LTBLUE}{CURRENCY}
+STR_882D_VALUE                                                  :{LTBLUE}{ENGINE}{BLACK}   Vrijednost: {LTBLUE}{CURRENCY}
+STR_882E                                                        :{WHITE}{VEHICLE}
+STR_882F_LOADING_UNLOADING                                      :{LTBLUE}Utovar / Istovar
+STR_TRAIN_MUST_BE_STOPPED                                       :{WHITE}Vlak mora biti zaustavljan unutar skladišta
+STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT                              :{WHITE}Ne mogu poslati vlak u spremište...
+STR_8831_NO_MORE_SPACE_FOR_ORDERS                               :{WHITE}Nema mjesta za nove naredbe
+STR_8832_TOO_MANY_ORDERS                                        :{WHITE}Previše naredbi
+STR_8833_CAN_T_INSERT_NEW_ORDER                                 :{WHITE}Ne možeš ubaciti novu naredbu...
+STR_8834_CAN_T_DELETE_THIS_ORDER                                :{WHITE}Ne možeš obrisati ovu naredbu...
+STR_8835_CAN_T_MODIFY_THIS_ORDER                                :{WHITE}Ne možeš izmjeniti ovu naredbu...
+STR_CAN_T_MOVE_THIS_ORDER                                       :{WHITE}Ne mogu pomaknuti ovu naredbu...
+STR_CAN_T_SKIP_ORDER                                            :{WHITE}Ne mohu preskočiti trenutačnu naredbu...
+STR_CAN_T_SKIP_TO_ORDER                                         :{WHITE}Nwe mogu skočiti na odabranu naredbu...
+STR_8837_CAN_T_MOVE_VEHICLE                                     :{WHITE}Ne možeš pomaknuti vozilo...
+STR_REAR_ENGINE_FOLLOW_FRONT_ERROR                              :{WHITE}Stražnja lokomotiva će uvijek pratiti svog prednjeg dvojnika
+STR_8838_N_A                                                    :N/A{SKIP}
+STR_8839_CAN_T_SELL_RAILROAD_VEHICLE                            :{WHITE}Ne možeš prodati željezničko vozilo
+STR_883A_UNABLE_TO_FIND_ROUTE_TO                                :{WHITE}Ne može pronaći put do lokalnog spremišta
+STR_883B_CAN_T_STOP_START_TRAIN                                 :{WHITE}Ne možeš zaustaviti/pokrenuti vlak...
+STR_883C_SERVICING_INTERVAL_DAYS                                :{BLACK}Servisni interval: {LTBLUE}{COMMA}dana{BLACK}   Zadnji servis: {LTBLUE}{DATE_LONG}
+STR_SERVICING_INTERVAL_PERCENT                                  :{BLACK}Servisni interval: {LTBLUE}{COMMA}%{BLACK} Zadnji servis: {LTBLUE}{DATE_LONG}
+STR_883D_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Vlakovi - klikni na vlak za informacije
+STR_883E_BUILD_NEW_TRAINS_REQUIRES                              :{BLACK}Izgradi/kupi nove vlakove (zahtijeva spremište vlakova)
+STR_883F_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Vlakovi - klikni na vlak za informacije., vuci vozilo kako bi dodao/oduzeo od vlaka
+STR_8840_BUILD_NEW_TRAIN_VEHICLE                                :{BLACK}Izgradi novi vlak
+STR_8841_DRAG_TRAIN_VEHICLE_TO_HERE                             :{BLACK}Povuci vlak ovdje za prodaju
+STR_8842_CENTER_MAIN_VIEW_ON_TRAIN                              :{BLACK}Centriraj glavni pogled na lokaciju željezničkog skladišta
+STR_8843_TRAIN_VEHICLE_SELECTION                                :{BLACK}Lista za odabiranje vlakova - klikni na vlak za informacije
+STR_8844_BUILD_THE_HIGHLIGHTED_TRAIN                            :{BLACK}Izgradi označeni vlak
+STR_8845_RENAME_TRAIN_VEHICLE_TYPE                              :{BLACK}Preimenuj tip vlaka
+STR_8846_CURRENT_TRAIN_ACTION_CLICK                             :{BLACK}Akcije trenutnog vlaka - klikni za zaustavljanje/pokretanje vlaka
+STR_8847_SHOW_TRAIN_S_ORDERS                                    :{BLACK}Pokaži naredbe vlaka
+STR_8848_CENTER_MAIN_VIEW_ON_TRAIN                              :{BLACK}Centriraj glavni pogled na lokaciju vlaka
+STR_8849_SEND_TRAIN_TO_DEPOT                                    :{BLACK}Pošalji vlak u skladište. CTRL+klik će ga samo servisirati
+STR_884A_FORCE_TRAIN_TO_PROCEED                                 :{BLACK}Natjeraj vlak da nastavi bez čekanja za odobrenjem signala
+STR_884B_REVERSE_DIRECTION_OF_TRAIN                             :{BLACK}Okreni smjer vlaka
+STR_884C_SHOW_TRAIN_DETAILS                                     :{BLACK}Prikaži detalje vlaka
+STR_884D_INCREASE_SERVICING_INTERVAL                            :{BLACK}Povećaj servisni interval
+STR_884E_DECREASE_SERVICING_INTERVAL                            :{BLACK}Smanji servisni interval
+STR_884F_SHOW_DETAILS_OF_CARGO_CARRIED                          :{BLACK}Pokaži detalje prevoženog tereta
+STR_8850_SHOW_DETAILS_OF_TRAIN_VEHICLES                         :{BLACK}Pokaži detalje vagona
+STR_8851_SHOW_CAPACITIES_OF_EACH                                :{BLACK}Pokaži kapacitet svakog vagona
+STR_8852_SHOW_TOTAL_CARGO                                       :{BLACK}Pokaži potpuni kapacitet vlaka, podijeljen prema tipu tereta
+STR_8852_ORDERS_LIST_CLICK_ON_ORDER                             :{BLACK}Lista naredbi - klikni na naredbu da ju označiš. CTRL + klik klizi na stanicu
+STR_8853_SKIP_THE_CURRENT_ORDER                                 :{BLACK}Preskoči trenutnu naredbu, i pokreni slijedeću. CTRL + klik preskače na odabranu naredbu
+STR_8854_DELETE_THE_HIGHLIGHTED                                 :{BLACK}Obriši označenu naredbu
+STR_8855_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Napravi označenu naredbu da bude non-stop
+STR_8856_INSERT_A_NEW_ORDER_BEFORE                              :{BLACK}Umetni novu naredbu prije odabrane naredbe, ili dodaj na kraj liste
+STR_8857_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Napravi da odabrana naredba natjera vozilo da čeka na potpuni utovar
+STR_8858_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Napravi da označena naredba natjera vozilo na istovar
+STR_TIMETABLE_TOOLTIP                                           :{BLACK}Raspored - klikni na naredbu da ju označiš.
+STR_TIMETABLE_WAIT_TIME_TOOLTIP                                 :{BLACK}Promijeni količinu vremena koju bi označena naredba trebala uzeti
+STR_TIMETABLE_CLEAR_TIME_TOOLTIP                                :{BLACK}Obriši potrebno vrijeme za označenu naredbu
+STR_SERVICE_HINT                                                :{BLACK}Preskoči ovu narudžbu osim ako servis nije potreban
+STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Trošak: {CURRENCY} Težina: {WEIGHT_S}{}Brzina: {VELOCITY} Snaga: {POWER}{}Troškovi održavanja: {CURRENCY}/god{}Kapacitet: {CARGO}
+STR_885C_BROKEN_DOWN                                            :{RED}Pokvaren
+STR_885D_AGE_RUNNING_COST_YR                                    :{BLACK}Starost: {LTBLUE}{STRING}{BLACK}   Troškovi uporabe: {LTBLUE}{CURRENCY}/god
+STR_885F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Zarada ove godine: {LTBLUE}{CURRENCY}  (prošle godine: {CURRENCY})
+STR_8860_RELIABILITY_BREAKDOWNS                                 :{BLACK}Pouzdanost: {LTBLUE}{COMMA}%  {BLACK}Kvarova od zadnjeg servisa: {LTBLUE}{COMMA}
+STR_8861_STOPPED                                                :{RED}Zaustavljen
+STR_8862_CAN_T_MAKE_TRAIN_PASS_SIGNAL                           :{WHITE}Ne mogu natjerati vlak da ignorira signale dok je opasnost...
+STR_8863_CRASHED                                                :{RED}Slupan!
+
+STR_8865_NAME_TRAIN                                             :{WHITE}Imenuj vlak
+STR_8866_CAN_T_NAME_TRAIN                                       :{WHITE}Ne mogu imenovati vlak...
+STR_8867_NAME_TRAIN                                             :{BLACK}Imenuj vlak
+STR_8868_TRAIN_CRASH_DIE_IN_FIREBALL                            :{BLACK}{BIGFONT}Vlak se sudario!{}{COMMA} poginulih u eksploziji nakon sudara
+STR_8869_CAN_T_REVERSE_DIRECTION                                :{WHITE}Ne mogu promijeniti smjer vlaka...
+STR_886A_RENAME_TRAIN_VEHICLE_TYPE                              :{WHITE}Preimenuj vrstu vlaka
+STR_886B_CAN_T_RENAME_TRAIN_VEHICLE                             :{WHITE}Ne mogu preimenovati tip vagona...
+STR_886D_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Naprvi da označeni red prisili vozilo da izbaci teret
+STR_886F_TRANSFER                                               :{BLACK}Transfer
+STR_CLEAR_TIME                                                  :{BLACK}Obriši Vrijeme
+STR_RESET_LATENESS                                              :{BLACK}Poništi Brojač Kašnjenja
+
+STR_TRAIN_STOPPING                                              :{RED}Zaustavljam
+STR_TRAIN_STOPPING_VEL                                          :{RED}Zaustavljam, {VELOCITY}
+STR_INCOMPATIBLE_RAIL_TYPES                                     :Nekompatibilan tip tračnica
+
+STR_NEW_VEHICLE_NOW_AVAILABLE                                   :{BLACK}{BIGFONT}Novi {STRING} je sada dostupan!
+STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
+STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Novi {STRING} je sada dostupan! - {ENGINE}
+
+STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Ne mogu rasporediti vozilo...
+STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Vozila mogu čekati samo na stanicama.
+STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Ovo vozilo se ne zaustavlja na ovoj stanici.
+STR_TIMETABLE_CHANGE_TIME                                       :{BLACK}Promijeni Vrijeme
+STR_TIMETABLE_STATUS_ON_TIME                                    :Ovo vozilo vozi na vrijeme
+STR_TIMETABLE_STATUS_LATE                                       :Ovo vozilo trenutačno {STRING} kasni
+STR_TIMETABLE_STATUS_EARLY                                      :Ovo vozilo je stiglo {STRING} ranije
+STR_TIMETABLE_TOTAL_TIME                                        :Ovaj raspored će trebati {STRING} za završetak
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :OVaj raspored će trebati najmanje {STRING} za završetak (nije sve raspoređeno)
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Automatsko punjenje
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Napuni raspored automatski sa vrijednostima iz prvog puta
+
+##id 0x9000
+STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Cestovno vozilo na putu
+STR_9002                                                        :{WHITE}{VEHICLE}
+STR_9003_ROAD_VEHICLE_DEPOT                                     :{WHITE}{TOWN} Spremište cestovnih vozila
+STR_9004_NEW_VEHICLES                                           :{BLACK}Nova vozila
+STR_9006_NEW_ROAD_VEHICLES                                      :{WHITE}Nova cestovna vozila
+STR_9007_BUILD_VEHICLE                                          :{BLACK}Izgradi vozilo
+STR_9009_CAN_T_BUILD_ROAD_VEHICLE                               :{WHITE}Ne mogu izgraditi cestovno vozilo...
+STR_900C_DETAILS                                                :{WHITE}{VEHICLE} (Detalji)
+STR_900D_AGE_RUNNING_COST_YR                                    :{BLACK}Starost: {LTBLUE}{STRING}{BLACK}   Trošak uporabe {LTBLUE}{CURRENCY}/god
+STR_900E_MAX_SPEED                                              :{BLACK}Maks brzina: {LTBLUE}{VELOCITY}
+STR_900F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Zarada ove godine: {LTBLUE}{CURRENCY}  (prošle godine: {CURRENCY})
+STR_9010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Pouzdanost: {LTBLUE}{COMMA}%  {BLACK}Kvarovi od posljednjeg servisa: {LTBLUE}{COMMA}
+STR_9011_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Izgrađen: {LTBLUE}{NUM}{BLACK} Vrijednost: {LTBLUE}{CURRENCY}
+STR_9012_CAPACITY                                               :{BLACK}Kapacitet: {LTBLUE}{CARGO}
+STR_9013_MUST_BE_STOPPED_INSIDE                                 :{WHITE}...mora biti zaustavljen unutar spremišta cestovnih vozila
+STR_9014_CAN_T_SELL_ROAD_VEHICLE                                :{WHITE}Ne mogu prodati cestovno vozilo...
+STR_9015_CAN_T_STOP_START_ROAD_VEHICLE                          :{WHITE}Ne mogu zaustaviti/pokrenuti cestovno vozilo...
+STR_9016_ROAD_VEHICLE_IS_WAITING                                :{WHITE}Cestovno vozilo {COMMA} čeka u spremištu
+STR_HEADING_FOR_ROAD_DEPOT                                      :{ORANGE}Kreće se prema {TOWN} cestovnom spremištu
+STR_HEADING_FOR_ROAD_DEPOT_VEL                                  :{ORANGE}Kreće se prema {TOWN} cestovnom spremištu, {VELOCITY}
+STR_HEADING_FOR_ROAD_DEPOT_SERVICE                              :{LTBLUE}Servisiranje u {TOWN} cestovnom spremištu
+STR_HEADING_FOR_ROAD_DEPOT_SERVICE_VEL                          :{LTBLUE}Seervisiranje u {TOWN} cestovnom spremištu, {VELOCITY}
+STR_9018_CAN_T_SEND_VEHICLE_TO_DEPOT                            :{WHITE}Ne mogu poslati vozilo u spremište...
+STR_9019_UNABLE_TO_FIND_LOCAL_DEPOT                             :{WHITE}Ne mogu pronaći lokalno spremište
+STR_901A_ROAD_VEHICLES_CLICK_ON                                 :{BLACK}Cestovna vozila - klikni na vozilo za informacije
+STR_901B_BUILD_NEW_ROAD_VEHICLES                                :{BLACK}Izgradi nova cestovna vozila (zahtijeva spremište cestovnih vozila)
+STR_901C_CURRENT_VEHICLE_ACTION                                 :{BLACK}Trenutna radnja vozila - klikni ovdje kako bi zaustavio/pokrenuo vozilo
+STR_901D_SHOW_VEHICLE_S_ORDERS                                  :{BLACK}Prikaži naredbe vozila
+STR_901E_CENTER_MAIN_VIEW_ON_VEHICLE                            :{BLACK}Centriraj glavni pogled na lokaciju vozila
+STR_901F_SEND_VEHICLE_TO_DEPOT                                  :{BLACK}Pošalji vozilo u spremište. CTRL+klik će samo servisirati
+STR_9020_FORCE_VEHICLE_TO_TURN_AROUND                           :{BLACK}Natjeraj vozila da se okrene natrag
+STR_9021_SHOW_ROAD_VEHICLE_DETAILS                              :{BLACK}Prikaži detalje cestovnog vozila
+STR_9022_VEHICLES_CLICK_ON_VEHICLE                              :{BLACK}Vozila - klikni na vozilo za informaciju
+STR_9023_BUILD_NEW_ROAD_VEHICLE                                 :{BLACK}Izgradi novo cestovno vozilo
+STR_9024_DRAG_ROAD_VEHICLE_TO_HERE                              :{BLACK}Povuci cestovno vozilo ovdje kako bi ga prodao
+STR_9025_CENTER_MAIN_VIEW_ON_ROAD                               :{BLACK}Centriraj glavni pogled na lokaciju spremišta cestovnih vozila
+STR_9026_ROAD_VEHICLE_SELECTION                                 :{BLACK}Popis cestovnih vozila - pritisni na vozilo za informacije
+STR_9027_BUILD_THE_HIGHLIGHTED_ROAD                             :{BLACK}Izgradi označeno cestovno vozilo
+STR_902A_COST_SPEED_RUNNING_COST                                :{BLACK}Trošak: {CURRENCY}{}Brzina: {VELOCITY}{}Trošak uporabe: {CURRENCY}/god{}Kapacitet: {CARGO}
+STR_ARTICULATED_RV_CAPACITY                                     :{BLACK}Kapacitet: {LTBLUE}
+STR_BARE_CARGO                                                  :{CARGO}
+
+STR_902C_NAME_ROAD_VEHICLE                                      :{WHITE}Imenuj cestovno vozilo
+STR_902D_CAN_T_NAME_ROAD_VEHICLE                                :{WHITE}Ne mogu imenovati cestovno vozilo...
+STR_902E_NAME_ROAD_VEHICLE                                      :{BLACK}Imenuj cestovno vozilo
+STR_902F_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Građani slave . . .{}Prvi bus stiže na {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Građani slave . . .{}Prvi kamion stiže na {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM                          :{BLACK}{BIGFONT}Građani slave . . .{}Prvi teretni vlak je stigao u {STATION}!
+STR_9031_ROAD_VEHICLE_CRASH_DRIVER                              :{BLACK}{BIGFONT}Sudar cestovnog vozila!{}Vozač poginuo u eksploziji nakon sudara s vlakom
+STR_9032_ROAD_VEHICLE_CRASH_DIE                                 :{BLACK}{BIGFONT}Sudar cestovnog vozila!{}{COMMA} poginulih u eksploziji nakon sudara s vlakom
+STR_9033_CAN_T_MAKE_VEHICLE_TURN                                :{WHITE}Ne mogu natjerati vozilo da se okrene...
+STR_ONLY_TURN_SINGLE_UNIT                                       :{WHITE}Ne mogu okreniti vozila koja se sastoje od više jedinica
+STR_9034_RENAME                                                 :{BLACK}Preimenuj
+STR_9035_RENAME_ROAD_VEHICLE_TYPE                               :{BLACK}Preimenuj vrstu cestovnog vozila
+STR_9036_RENAME_ROAD_VEHICLE_TYPE                               :{WHITE}Preimenuj vrstu cestovnog vozila
+STR_9037_CAN_T_RENAME_ROAD_VEHICLE                              :{WHITE}Ne mogu preimenovati vrstu cestovnog vozila...
+STR_9038_GO_TO_ROADVEH_DEPOT                                    :Idi prema spremištu cestovnih vozila {TOWN}
+STR_SERVICE_AT_ROADVEH_DEPOT                                    :Servisiranje pri {TOWN} spremištu cestovnih vozila
+
+STR_REFIT_ROAD_VEHICLE_TO_CARRY                                 :{BLACK}Prenamijeni cestovno vozilo za prijevoz druge vrste tereta
+STR_REFIT_ROAD_VEHICLE                                          :{BLACK}Prenamijeni cestovno vozilo
+STR_REFIT_ROAD_VEHICLE_TO_CARRY_HIGHLIGHTED                     :{BLACK}Prenamijeni cestovno vozilo za prijevoz druge vrste tereta
+STR_REFIT_ROAD_VEHICLE_CAN_T                                    :{WHITE}Ne mogu prenamijeniti cestovno vozilo...
+STR_ROAD_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Izaberi vrstu tereta koje će cestovno vozilo prevoziti
+
+##id 0x9800
+STR_9800_DOCK_CONSTRUCTION                                      :Izgradnja pristaništa
+STR_9801_DOCK_CONSTRUCTION                                      :{WHITE}Izgradnja pristaništa
+STR_9802_CAN_T_BUILD_DOCK_HERE                                  :{WHITE}Ovdje ne mogu izgraditi pristanište...
+STR_9803_SHIP_DEPOT                                             :{WHITE}{TOWN} Spremište brodova
+STR_9804_NEW_SHIPS                                              :{BLACK}Novi brodovi
+STR_9805_SHIPS                                                  :{WHITE}{COMPANY} - {COMMA} Brod{P "" a ova}
+STR_9808_NEW_SHIPS                                              :{WHITE}Novi brodovi
+STR_9809_BUILD_SHIP                                             :{BLACK}Izgradi brod
+STR_CLONE_SHIP                                                  :{BLACK}Kloniraj brod
+STR_CLONE_SHIP_INFO                                             :{BLACK}Ovo će izgradi kopiju broda. Control-klik će dijeliti naredbe
+STR_CLONE_SHIP_DEPOT_INFO                                       :{BLACK}Ovo će napraviti kopiju broda. Kliknite na ovu tipku i onda na brod unutar ili izvan skladišta. CTRL-klik će podijeliti naredbe
+STR_980B_SHIP_MUST_BE_STOPPED_IN                                :{WHITE}Brod mora biti zaustavljen u spremištu
+STR_980C_CAN_T_SELL_SHIP                                        :{WHITE}Ne mogu prodati brod...
+STR_980D_CAN_T_BUILD_SHIP                                       :{WHITE}Ne mogu izgraditi brod...
+STR_980E_SHIP_IN_THE_WAY                                        :{WHITE}Smeta brod
+STR_980F                                                        :{WHITE}{VEHICLE}
+STR_9811_DETAILS                                                :{WHITE}{VEHICLE} (Detalji)
+STR_9812_AGE_RUNNING_COST_YR                                    :{BLACK}Starost: {LTBLUE}{STRING}{BLACK}   Trošak uporabe: {LTBLUE}{CURRENCY}/god
+STR_9813_MAX_SPEED                                              :{BLACK}Maks. brzina: {LTBLUE}{VELOCITY}
+STR_9814_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Zarada ove godine: {LTBLUE}{CURRENCY}  (prošle godine: {CURRENCY})
+STR_9815_RELIABILITY_BREAKDOWNS                                 :{BLACK}Pouzdanost: {LTBLUE}{COMMA}%  {BLACK}Kvarova od posljednjeg servisa: {LTBLUE}{COMMA}
+STR_9816_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Izgrađeno: {LTBLUE}{NUM}{BLACK} Vrijednost: {LTBLUE}{CURRENCY}
+STR_9817_CAPACITY                                               :{BLACK}Zapremnina: {LTBLUE}{CARGO}
+STR_9818_CAN_T_STOP_START_SHIP                                  :{WHITE}Ne mogu pokrenuti/zaustaviti brod...
+STR_9819_CAN_T_SEND_SHIP_TO_DEPOT                               :{WHITE}Ne mogu poslati brod u skladište...
+STR_981A_UNABLE_TO_FIND_LOCAL_DEPOT                             :{WHITE}Ne mogu naći lokalno spremište
+STR_HEADING_FOR_SHIP_DEPOT                                      :{ORANGE}Kreće se prema {TOWN} spremištu brodova
+STR_HEADING_FOR_SHIP_DEPOT_VEL                                  :{ORANGE}Kreće se prema {TOWN} spremištu brodova, {VELOCITY}
+STR_HEADING_FOR_SHIP_DEPOT_SERVICE                              :{LTBLUE}Servisiranje u {TOWN} spremištu brodova
+STR_HEADING_FOR_SHIP_DEPOT_SERVICE_VEL                          :{LTBLUE}Servisiranje u {TOWN} spremištu brodova, {VELOCITY}
+STR_981C_SHIP_IS_WAITING_IN_DEPOT                               :{WHITE}Brod {COMMA} čeka u spremištu
+STR_981D_BUILD_SHIP_DOCK                                        :{BLACK}Izgradi brodsko pristanište
+STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING                          :{BLACK}Izgradi spremište brodova (za gradnu i servisiranje brodova)
+STR_981F_SHIPS_CLICK_ON_SHIP_FOR                                :{BLACK}Brodovi - klikni na brod za informacije
+STR_9820_BUILD_NEW_SHIP                                         :{BLACK}Izgradi novi brod
+STR_9821_DRAG_SHIP_TO_HERE_TO_SELL                              :{BLACK}Povuci brod ovdje kako bi ga prodao
+STR_9822_CENTER_MAIN_VIEW_ON_SHIP                               :{BLACK}Centriraj glavni pogled na lokaciju spremišta brodova
+STR_9823_SHIPS_CLICK_ON_SHIP_FOR                                :{BLACK}Brodovi - klikni na brod za informacije
+STR_9824_BUILD_NEW_SHIPS_REQUIRES                               :{BLACK}Izgradi nove brodove (zahtijeva spremište brodova)
+STR_9825_SHIP_SELECTION_LIST_CLICK                              :{BLACK}Popis brodova - pritisni na brod za informacije
+STR_9826_BUILD_THE_HIGHLIGHTED_SHIP                             :{BLACK}Izgradi označeni brod
+STR_9827_CURRENT_SHIP_ACTION_CLICK                              :{BLACK}Trenutna radnja broda - pritisni ovdje za zaustavljanje/pokretanje broda
+STR_9828_SHOW_SHIP_S_ORDERS                                     :{BLACK}Prikaži naredbe broda
+STR_9829_CENTER_MAIN_VIEW_ON_SHIP                               :{BLACK}Centriraj glavni pogled na lokaciju broda
+STR_982B_SHOW_SHIP_DETAILS                                      :{BLACK}Prikaži detalje broda
+STR_982F_NAME_SHIP                                              :{BLACK}Imenuj brod
+
+STR_9831_NAME_SHIP                                              :{WHITE}Imenuj brod
+STR_9832_CAN_T_NAME_SHIP                                        :{WHITE}Ne mogu imenovati brod...
+STR_9833_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Građani slave . . .{}Prvi brod stigao do {STATION}!
+STR_9834_POSITION_BUOY_WHICH_CAN                                :{BLACK}Smjesti plutaču koja može biti korištena kao pokazatelj puta
+STR_9835_CAN_T_POSITION_BUOY_HERE                               :{WHITE}Ne mogu staviti plutaču ovdje...
+STR_9836_RENAME                                                 :{BLACK}Preimenuj
+STR_9837_RENAME_SHIP_TYPE                                       :{BLACK}Preimenuj vrstu broda
+STR_9838_RENAME_SHIP_TYPE                                       :{WHITE}Preimenuj vrstu broda
+STR_9839_CAN_T_RENAME_SHIP_TYPE                                 :{WHITE}Ne mogu preimenovati vrstu broda...
+STR_983A_REFIT_CARGO_SHIP_TO_CARRY                              :{BLACK}Prenamijeni teretni brod da nosi neku drugu vrstu tereta
+STR_983B_REFIT                                                  :{WHITE}{VEHICLE} (Prenamijeni)
+STR_983C_REFIT_SHIP                                             :{BLACK}Prenamijeni brod
+STR_983D_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Odabri vrstu tereta za prijevoz brodom:
+STR_983E_REFIT_SHIP_TO_CARRY_HIGHLIGHTED                        :{BLACK}Prenamjeni brod za prijevoz označene vrste tereta
+STR_983F_SELECT_CARGO_TYPE_TO_CARRY                             :{GOLD}Odabri vrstu tereta za prijevoz:
+STR_9840_NEW_CAPACITY_COST_OF_REFIT                             :{BLACK}Nova zapremnina: {GOLD}{CARGO}{}{BLACK}Cijena prenamjene: {GOLD}{CURRENCY}
+STR_9841_CAN_T_REFIT_SHIP                                       :{WHITE}Ne mogu prenamijeniti brod...
+STR_9842_REFITTABLE                                             :(prenamjenjiv)
+SERVICE_AT_SHIP_DEPOT                                           :Servis u brodskom spremištu grada {TOWN}
+
+##id 0xA000
+STR_A000_AIRPORTS                                               :{WHITE}Zračne luke
+STR_A001_CAN_T_BUILD_AIRPORT_HERE                               :{WHITE}Ne možeš graditi zračnu luku ovdje...
+STR_A002_AIRCRAFT_HANGAR                                        :{WHITE}{STATION} Spremište zrakoplova
+STR_A003_NEW_AIRCRAFT                                           :{BLACK}Novi zrakoplov
+STR_CLONE_AIRCRAFT                                              :{BLACK}Kloniraj zrakoplov
+STR_CLONE_AIRCRAFT_INFO                                         :{BLACK}Ovo će izgraditi kopiju zrakoplova. Control-klik će dijeliti naredbe
+STR_A005_NEW_AIRCRAFT                                           :{WHITE}Novi zrakoplov
+STR_A006_BUILD_AIRCRAFT                                         :{BLACK}Izgradi zrakoplov
+STR_A008_CAN_T_BUILD_AIRCRAFT                                   :{WHITE}Ne mogu izgraditi zrakoplov...
+STR_A009_AIRCRAFT                                               :{WHITE}{COMPANY} - {COMMA} zrakoplov
+STR_A00A                                                        :{WHITE}{VEHICLE}
+STR_A00B_ORDERS                                                 :{WHITE}{VEHICLE} (Naredbe)
+STR_A00C_DETAILS                                                :{WHITE}{VEHICLE} (Detalji)
+STR_A00D_AGE_RUNNING_COST_YR                                    :{BLACK}Starost: {LTBLUE}{STRING}{BLACK}   Troškovi uporabe {LTBLUE}{CURRENCY}/god
+STR_A00E_MAX_SPEED                                              :{BLACK}Maks brzina: {LTBLUE}{VELOCITY}
+STR_A00F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Zarada ove godine: {LTBLUE}{CURRENCY}  (prošle godine: {CURRENCY})
+STR_A010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Pouzdanost: {LTBLUE}{COMMA}%  {BLACK}Kvarova od poslijednjeg servisa: {LTBLUE}{COMMA}
+STR_A011_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Izgrađen: {LTBLUE}{NUM}{BLACK} Vrijednost: {LTBLUE}{CURRENCY}
+STR_A012_CAN_T_SEND_AIRCRAFT_TO                                 :{WHITE}Ne mogu poslati zrakoplov u hangar
+STR_A014_AIRCRAFT_IS_WAITING_IN                                 :{WHITE}Zrakoplov {COMMA} čeka u hangaru
+STR_A015_AIRCRAFT_IN_THE_WAY                                    :{WHITE}Smeta zrakoplov
+STR_A016_CAN_T_STOP_START_AIRCRAFT                              :{WHITE}Ne mogu zaustaviti/pokrenuti zrakoplov...
+STR_A017_AIRCRAFT_IS_IN_FLIGHT                                  :{WHITE}Zrakoplov je u letu
+STR_A019_CAPACITY                                               :{BLACK}Nosivost: {LTBLUE}{CARGO}, {CARGO}
+STR_A01A_CAPACITY                                               :{BLACK}Nosivost: {LTBLUE}{CARGO}
+STR_A01B_AIRCRAFT_MUST_BE_STOPPED                               :{WHITE}Zrakoplov mora biti zaustavljen u hangaru
+STR_A01C_CAN_T_SELL_AIRCRAFT                                    :{WHITE}Ne možeš prodati zrakoplov...
+STR_A01E_BUILD_AIRPORT                                          :{BLACK}Izgradi zračnu luku
+STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT                             :{BLACK}Zrakoplov - klikni na zrakoplov za informacije
+STR_A020_BUILD_NEW_AIRCRAFT_REQUIRES                            :{BLACK}Izgradi novi zrakoplov(potreban je aerodrom sa hangarom)
+STR_A021_AIRCRAFT_CLICK_ON_AIRCRAFT                             :{BLACK}Zrakoplov - kliknite na zrakoplov za informacije
+STR_A022_BUILD_NEW_AIRCRAFT                                     :{BLACK}Izgradi novi zrakoplov
+STR_A023_DRAG_AIRCRAFT_TO_HERE_TO                               :{BLACK}Povuci zrakoplov ovdje kako bi ga prodao
+STR_A024_CENTER_MAIN_VIEW_ON_HANGAR                             :{BLACK}Centriraj glavni pogled na lokaciju hangara
+STR_A025_AIRCRAFT_SELECTION_LIST                                :{BLACK}Popis zrakoplova - klini na zrakoplov za informacije
+STR_A026_BUILD_THE_HIGHLIGHTED_AIRCRAFT                         :{BLACK}Izgradi označeni zrakoplov
+STR_A027_CURRENT_AIRCRAFT_ACTION                                :{BLACK}Trenutka radnja zrakoplova - kliknite ovdje za zaustavljanje/pokretanje zrakoplova
+STR_A028_SHOW_AIRCRAFT_S_ORDERS                                 :{BLACK}Prikaži naredbe zrakoplova
+STR_A029_CENTER_MAIN_VIEW_ON_AIRCRAFT                           :{BLACK} Centrirajte glavni prozor na lokaciju zrakoplova
+STR_A02A_SEND_AIRCRAFT_TO_HANGAR                                :{BLACK}Pošaljite avion u hangar. CTRL + klik će ga samo servisirati
+STR_A02B_SHOW_AIRCRAFT_DETAILS                                  :{BLACK}Prikaži detalje zrakoplova
+
+STR_A030_NAME_AIRCRAFT                                          :{WHITE}Imenuj zrakoplov
+STR_A031_CAN_T_NAME_AIRCRAFT                                    :{WHITE}Ne mogu imenovati zrakoplov...
+STR_A032_NAME_AIRCRAFT                                          :{BLACK}Imenuj zrakoplov
+STR_A033_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Građani slave . . .{}Prvi zrakoplov stigao je na {STATION}!
+STR_A034_PLANE_CRASH_DIE_IN_FIREBALL                            :{BLACK}{BIGFONT}Pad zrakoplova!{}{COMMA} poginulih u eksploziji na {STATION}
+STR_PLANE_CRASH_OUT_OF_FUEL                                     :{BLACK}{BIGFONT}Avionska nesreća{}Avion je ostao bez goriva, {COMMA} poginulo u nesreći
+STR_A036                                                        :{TINYFONT}{BLACK}{STATION}
+STR_A037_RENAME                                                 :{BLACK}Preimenuj
+STR_A038_RENAME_AIRCRAFT_TYPE                                   :{BLACK}Preimenuj vrstu zrakoplova
+STR_A039_RENAME_AIRCRAFT_TYPE                                   :{WHITE}Preimenuj vrstu zrakoplova
+STR_A03A_CAN_T_RENAME_AIRCRAFT_TYPE                             :{WHITE}Ne mogu preimenovati vrstu zrakoplova...
+STR_A03B_REFIT_AIRCRAFT_TO_CARRY                                :{BLACK}Prenamijeni zrakoplov da nosi drugu vrstu tereta
+STR_A03C_REFIT                                                  :{WHITE}{VEHICLE} (Prenamijeni)
+STR_A03D_REFIT_AIRCRAFT                                         :{BLACK}Prenamijeni zrakoplov
+STR_A03E_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Izaberi vrstu tereta koju će zrakoplov nositi
+STR_A03F_REFIT_AIRCRAFT_TO_CARRY                                :{BLACK}Prenamijeni zrakoplov da nosi označenu vrstu tereta
+STR_A040_SELECT_CARGO_TYPE_TO_CARRY                             :{GOLD}Označi vrstu tereta za prijenos:
+STR_A041_NEW_CAPACITY_COST_OF_REFIT                             :{BLACK}Novi kapacitet: {GOLD}{STRING}{}{BLACK}Trošak prenamijene: {GOLD}{CURRENCY}
+STR_A042_CAN_T_REFIT_AIRCRAFT                                   :{WHITE}Ne mogu prenamijeniti zrakoplov...
+STR_GO_TO_AIRPORT_HANGAR                                        :Idi u {STATION} Hangar
+SERVICE_AT_AIRPORT_HANGAR                                       :Servisiranje u hangaru {STATION}
+
+STR_TIMETABLE_TITLE                                             :{WHITE}{VEHICLE} (Raspored)
+
+##id 0xB000
+STR_B000_ZEPPELIN_DISASTER_AT                                   :{BLACK}{BIGFONT}Cepelin je pao kod {STATION}!
+STR_B001_ROAD_VEHICLE_DESTROYED                                 :{BLACK}{BIGFONT}Cestovno vozilo uništeno u 'NLO' sudaru!
+STR_B002_OIL_REFINERY_EXPLOSION                                 :{BLACK}{BIGFONT}Eksplozija rafinerije nafte blizu {TOWN}!
+STR_B003_FACTORY_DESTROYED_IN_SUSPICIOUS                        :{BLACK}{BIGFONT}Tvornica uništena pod sumnjivim okolnostima u blizini {TOWN}!
+STR_B004_UFO_LANDS_NEAR                                         :{BLACK}{BIGFONT}'NLO' sletio blizu {TOWN}!
+STR_B005_COAL_MINE_SUBSIDENCE_LEAVES                            :{BLACK}{BIGFONT}Urušavanje rudnika ugljena ostavilo je trag blizu {TOWN}!
+STR_B006_FLOOD_VEHICLE_DESTROYED                                :{BLACK}{BIGFONT}Poplave!{}Najmanje {COMMA} nestalih, pretpostavlja se poginulih nakon značajnih poplava!
+
+STR_BRIBE_FAILED                                                :{WHITE}Tvoj pokušaj podmićivanja je
+STR_BRIBE_FAILED_2                                              :{WHITE}otkriven od strane regionalnog istražitelja
+STR_BUILD_DATE                                                  :{BLACK}Izgrađeno: {LTBLUE}{DATE_LONG}
+
+STR_PERFORMANCE_DETAIL                                          :{WHITE}Detaljna procjena rezultata
+STR_PERFORMANCE_DETAIL_KEY                                      :{BLACK}Detalji
+STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY                          :{BLACK}({CURRCOMPACT}/{CURRCOMPACT})
+STR_PERFORMANCE_DETAIL_AMOUNT_INT                               :{BLACK}({COMMA}/{COMMA})
+STR_PERFORMANCE_DETAIL_PERCENT                                  :{WHITE}{NUM}%
+SET_PERFORMANCE_DETAIL_INT                                      :{BLACK}{NUM}
+############ Those following lines need to be in this order!!
+STR_PERFORMANCE_DETAIL_VEHICLES                                 :{BLACK}Vozila:
+STR_PERFORMANCE_DETAIL_STATIONS                                 :{BLACK}Stations:
+STR_PERFORMANCE_DETAIL_MIN_PROFIT                               :{BLACK}Min. prihod:
+STR_PERFORMANCE_DETAIL_MIN_INCOME                               :{BLACK}Min. prihod:
+STR_PERFORMANCE_DETAIL_MAX_INCOME                               :{BLACK}Maks. prihod:
+STR_PERFORMANCE_DETAIL_DELIVERED                                :{BLACK}Dostavljeno:
+STR_PERFORMANCE_DETAIL_CARGO                                    :{BLACK}Cargo:
+STR_PERFORMANCE_DETAIL_MONEY                                    :{BLACK}Novac:
+STR_PERFORMANCE_DETAIL_LOAN                                     :{BLACK}Zajam:
+STR_PERFORMANCE_DETAIL_TOTAL                                    :{BLACK}Totalno:
+############ End of order list
+STR_PERFORMANCE_DETAIL_VEHICLES_TIP                             :{BLACK}Broj vozila; ovo uključuje cestovna vozila, vlakove, brodove i avione
+STR_PERFORMANCE_DETAIL_STATIONS_TIP                             :{BLACK}Broj dijelova stanice. Svaki dio stanice (npr. željeznički kolodvor, autobusna postaja, aerodrom) se računa, čak i ako su spojene kao jedna stanica
+STR_PERFORMANCE_DETAIL_MIN_PROFIT_TIP                           :{BLACK}Profit vozila sa najnižim prihodom(od svih vozila starijih od 2 godine)
+STR_PERFORMANCE_DETAIL_MIN_INCOME_TIP                           :{BLACK}Količina gotovine ostvarene u mjesecu sa najnižim profitom u zadnjih 12 četvrtina
+STR_PERFORMANCE_DETAIL_MAX_INCOME_TIP                           :{BLACK}Količina gotovine ostvarene u mjesecu za najvišim profitom u zadnjih 12 četvrtina
+STR_PERFORMANCE_DETAIL_DELIVERED_TIP                            :{BLACK}Jedinice tereta dostavljene u zadnje četiri četvrtine
+STR_PERFORMANCE_DETAIL_CARGO_TIP                                :{BLACK}Broj vrsta tereta dostavljenog u zadnjoj četvrtini
+STR_PERFORMANCE_DETAIL_MONEY_TIP                                :{BLACK}Količina novca koji ova kompanija ima u banci
+STR_PERFORMANCE_DETAIL_LOAN_TIP                                 :{BLACK}Iznos novca koji je ova kompanija pozajmila
+STR_PERFORMANCE_DETAIL_TOTAL_TIP                                :{BLACK}Totalni broj bodova od mogućih bodova
+
+STR_NEWGRF_SETTINGS_BUTTON                                      :{BLACK}NewGRF Postavke
+STR_NEWGRF_SETTINGS_CAPTION                                     :{WHITE}NewGRF postavke
+STR_NEWGRF_APPLY_CHANGES                                        :{BLACK}Potvrdi promjene
+STR_NEWGRF_SET_PARAMETERS                                       :{BLACK}Postavi parametre
+STR_NEWGRF_TIP                                                  :{BLACK}Lista svih newGRF setova koje ste instalirali. Kliknite na set za promjenu postavki
+STR_NEWGRF_NO_FILES_INSTALLED                                   :{BLACK}Nema novih newgrf datoteka instaliranih! Molimo pogledajte manual za upute o tome kako instalirati novu grafiku
+STR_NEWGRF_FILENAME                                             :{BLACK}Datoteka: {SILVER}{STRING}
+STR_NEWGRF_GRF_ID                                               :{BLACK}GRF ID: {SILVER}{STRING}
+STR_NEWGRF_MD5SUM                                               :{BLACK}MD5 suma: {SILVER}{STRING}
+STR_NEWGRF_CONFIRMATION_TEXT                                    :{YELLOW}Spremate se napraviti izmjene na pokrenutoj igri; to može srušiti OpenTTD.{}Jeste li potpuno sigurni u to?
+
+STR_NEWGRF_ERROR_MSG_INFO                                       :{SILVER}{STRING}
+STR_NEWGRF_ERROR_MSG_WARNING                                    :{RED}Upozorenje: {SILVER}{STRING}
+STR_NEWGRF_ERROR_MSG_ERROR                                      :{RED}Greška: {SILVER}{STRING}
+STR_NEWGRF_ERROR_MSG_FATAL                                      :{RED}Kobno: {SILVER}{STRING}
+STR_NEWGRF_ERROR_VERSION_NUMBER                                 :{STRING} neće raditi sa inačicom zakrpe u OpenTTD-u.
+STR_NEWGRF_ERROR_DOS_OR_WINDOWS                                 :{STRING} je za {STRING} inačicu TTD-a.
+STR_NEWGRF_ERROR_UNSET_SWITCH                                   :{STRING} je napravljen da se koristi sa {STRING}
+STR_NEWGRF_ERROR_INVALID_PARAMETER                              :Nevažeći parametar za  {STRING}: parametar {STRING} ({NUM})
+STR_NEWGRF_ERROR_LOAD_BEFORE                                    :{STRING} se mora učitati prije {STRING}.
+STR_NEWGRF_ERROR_LOAD_AFTER                                     :{STRING} se mora učitati nakon {STRING}.
+STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE                          :GRF datoteka je dizajnirana za prijevod
+
+STR_NEWGRF_ADD                                                  :{BLACK}Dodaj
+STR_NEWGRF_ADD_TIP                                              :{BLACK}Dodaj NewGRF datoteku u listu
+STR_NEWGRF_REMOVE                                               :{BLACK}Obriši
+STR_NEWGRF_REMOVE_TIP                                           :{BLACK}Obriši odabranu NewGRF datoteku sa liste
+STR_NEWGRF_MOVEUP                                               :{BLACK}Pomakni gore
+STR_NEWGRF_MOVEUP_TIP                                           :{BLACK}Pomakni odabranu NewGRF datoteku gore na listi
+STR_NEWGRF_MOVEDOWN                                             :{BLACK} Pomakni dolje
+STR_NEWGRF_MOVEDOWN_TIP                                         :{BLACK}Pomakni odabranu NewGRF datoteku dolje na listi
+STR_NEWGRF_FILE_TIP                                             :{BLACK}Popis instaliranih NewGRF datoteka. Kliknite na datoteku da bi promijenili njene parametre
+STR_NEWGRF_PARAMETER                                            :{BLACK}Parametri: {SILVER}{STRING}
+STR_NEWGRF_PARAMETER_QUERY                                      :{BLACK}Unesite NewGRF  parametre
+STR_NEWGRF_NO_INFO                                              :{BLACK}Nema dostupnih informacija
+
+STR_NEWGRF_ADD_CAPTION                                          :{WHITE}Dostupne NewGRF datoteke
+STR_NEWGRF_ADD_FILE                                             :{BLACK}Dodaj u selekciju
+STR_NEWGRF_ADD_FILE_TIP                                         :{BLACK}Dodaj odabrane NewGRF datoteke u svoju konfiguraciju
+STR_NEWGRF_RESCAN_FILES                                         :{BLACK}Ponovno skeniraj datoteke
+STR_NEWGRF_RESCAN_FILES_TIP                                     :{BLACK}Osvježi listu dostupnih NewGRF datoteka
+STR_NEWGRF_DUPLICATE_GRFID                                      :{WHITE}Ne mogu dodati datoteku: dupli GRF ID
+
+STR_NEWGRF_NOT_FOUND                                            :{RED}Odgovarajuća datoteka nije pronađena
+STR_NEWGRF_DISABLED                                             :{RED}Onemogućeno
+STR_NEWGRF_COMPATIBLE_LOADED                                    :{ORANGE}Odgovarajuća datoteka nije pronađena (kompatibilni GRF podignut)
+
+STR_NEWGRF_COMPATIBLE_LOAD_WARNING                              :{WHITE}Kompatibilni GRF(ovi) učitani umjesto nepronađenih datoteka
+STR_NEWGRF_DISABLED_WARNING                                     :{WHITE}Nepronađene GRF datoteke su isključene
+STR_NEWGRF_NOT_FOUND_WARNING                                    :{WHITE}Nedostaje(u) datoteka(e) GRF za učitavanje igre
+
+STR_CURRENCY_WINDOW                                             :{WHITE}Proizvoljna valuta
+STR_CURRENCY_EXCHANGE_RATE                                      :{LTBLUE}Devizni tečaj: {ORANGE}{CURRENCY} = £ {COMMA}
+STR_CURRENCY_SEPARATOR                                          :{LTBLUE}Razdjelnik:
+STR_CURRENCY_PREFIX                                             :{LTBLUE}Prefiks:
+STR_CURRENCY_SUFFIX                                             :{LTBLUE}Sufiks:
+STR_CURRENCY_SWITCH_TO_EURO                                     :{LTBLUE}Prebaci se na euro: {ORANGE}{NUM}
+STR_CURRENCY_SWITCH_TO_EURO_NEVER                               :{LTBLUE}Prebaci se na euro: {ORANGE}nikad
+STR_CURRENCY_PREVIEW                                            :{LTBLUE}Prikaz: {ORANGE}{CURRENCY}
+STR_CURRENCY_CHANGE_PARAMETER                                   :{BLACK}Promijeni parametar proizvoljne valute
+
+STR_TRAIN                                                       :{BLACK}{TRAIN}
+STR_BUS                                                         :{BLACK}{BUS}
+STR_LORRY                                                       :{BLACK}{LORRY}
+STR_PLANE                                                       :{BLACK}{PLANE}
+STR_SHIP                                                        :{BLACK}{SHIP}
+
+STR_SCHEDULED_TRAINS                                            :{WHITE}{STATION} - {COMMA} Vlak{P "" a ova}
+STR_SCHEDULED_ROAD_VEHICLES                                     :{WHITE}{STATION} - {COMMA} Cestovn{P o a ih} vozil{P o a a}
+STR_SCHEDULED_AIRCRAFT                                          :{WHITE}{STATION} - {COMMA} Zrakoplov
+STR_SCHEDULED_SHIPS                                             :{WHITE}{STATION} - {COMMA} Brod{P "" a ova}
+
+STR_SCHEDULED_TRAINS_TIP                                        :{BLACK}Prikaži sve vlakove koji imaju ovu stanicu u svom rasporedu
+STR_SCHEDULED_ROAD_VEHICLES_TIP                                 :{BLACK}Prikaži sva cestovna vozila koja imaju ovu stanicu u svom rasporedu
+STR_SCHEDULED_AIRCRAFT_TIP                                      :{BLACK}Prikaži sve zrakoplove koji imaju ovu stanicu u svom rasporedu
+STR_SCHEDULED_SHIPS_TIP                                         :{BLACK}Prikaži sve brodove koji imaju ovu stanicu u svom rasporedu
+
+STR_VEH_WITH_SHARED_ORDERS_LIST                                 :{WHITE}Djeljene naredbe za {COMMA} vozil{P o a a}
+STR_VEH_WITH_SHARED_ORDERS_LIST_TIP                             :{BLACK}Prikaži sva vozila koja dijele ovaj raspored.
+
+### depot strings
+STR_DEPOT_SELL_CONFIRMATION_TEXT                                :{YELLOW}Upravo se spremaš prodati sva vozila u spremištu. Jesi li siguran?
+STR_DEPOT_WRONG_DEPOT_TYPE                                      :Pogrešna vrsta skladišta
+
+STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP                             :{BLACK}Prodaj sve vlakove u spremištu
+STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP                           :{BLACK}Prodaj sva cestovna vozila u spremištu
+STR_DEPOT_SELL_ALL_BUTTON_SHIP_TIP                              :{BLACK}Prodaj sve brodove u spremištu
+STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TIP                          :{BLACK}Prodaj sve zrakoplove u hangaru
+
+STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TIP                          :{BLACK}Daje popis svih vlakova u trenutnom spremištu, zajedno s njihovim naredbama
+STR_DEPOT_VEHICLE_ORDER_LIST_ROADVEH_TIP                        :{BLACK}Daje popis svih cestovnih vozila u trenutnom spremištu, zajedno s njihovim naredbama
+STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TIP                           :{BLACK}Daje popis svih brodova u trenutnom spremištu, zajedno s njihovim naredbama
+STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TIP                       :{BLACK}Daje popis svih zrakoplova u trenutnom spremištu, zajedno s njihovim naredbama
+
+STR_DEPOT_AUTOREPLACE_TRAIN_TIP                                 :{BLACK}Automatski zamijeni sve vlakove u spremištu
+STR_DEPOT_AUTOREPLACE_ROADVEH_TIP                               :{BLACK}Automatski zamijeni sva cestovna vozikla u spremištu
+STR_DEPOT_AUTOREPLACE_SHIP_TIP                                  :{BLACK}Automatski zamijeni sve brodove u spremištu
+STR_DEPOT_AUTOREPLACE_AIRCRAFT_TIP                              :{BLACK}Automatski zamijeni sve zrakoplove u spremištu
+
+STR_VEHICLE_LIST_TRAIN_DEPOT                                    :{BLACK}{STRING} - {COMMA} Vlak{P "" a ova}
+STR_VEHICLE_LIST_ROADVEH_DEPOT                                  :{BLACK}{STRING} - {COMMA} Cestovn{P o a ih} vozil{P o a a}
+STR_VEHICLE_LIST_SHIP_DEPOT                                     :{BLACK}{STRING} - {COMMA} Brod{P "" a ova}
+STR_VEHICLE_LIST_AIRCRAFT_DEPOT                                 :{BLACK}{STRING} - {COMMA} Zrakoplov
+
+STR_REPLACE_VEHICLES_WHITE                                      :{WHITE}Zamijeni {STRING}
+STR_REPLACE_VEHICLES_START                                      :{BLACK}Počni zamijenjivati vozila
+STR_REPLACE_VEHICLES_STOP                                       :{BLACK}Prestani zamijenjivati vozila
+STR_NOT_REPLACING                                               :{BLACK}Ne zamijenjujem
+STR_NOT_REPLACING_VEHICLE_SELECTED                              :{BLACK}Niti jedno vozilo nije odabrano
+STR_REPLACE_HELP_LEFT_ARRAY                                     :{BLACK}Izaberi vrstu motora koju želiš zamijeniti
+STR_REPLACE_HELP_RIGHT_ARRAY                                    :{BLACK}Odaberite novi tip lokomotive koji želite koristiti umjesto lijevo odabranog tipa lokomotive
+STR_REPLACE_HELP_STOP_BUTTON                                    :{BLACK}Klikni za zaustavljanje zamjene lijevo odabranog tipa lokomotive
+STR_REPLACE_HELP_START_BUTTON                                   :{BLACK}Klikni za početak zamjene lijevo odabrane lokomotive sa desno odabranim tipom
+STR_REPLACE_HELP_RAILTYPE                                       :{BLACK}Odaberite tip tračnica za koji želite zamijeniti lokomotive
+STR_REPLACE_HELP_REPLACE_INFO_TAB                               :{BLACK}Prikazuje sa kojom se lokomotivom zamjenjuje lijevo odabrana lokomotiva, ako postoji koji
+STR_REPLACE_HELP                                                :{BLACK}Ovo dozvoljava zamjenu jednog tipa lokomotive sa drugim, kada vlakovi prvotnog tipa uđu u stovarište
+STR_REPLACE_REMOVE_WAGON                                        :{BLACK}Brisanje vagona: {ORANGE}{SKIP}{STRING}
+STR_REPLACE_REMOVE_WAGON_HELP                                   :{BLACK}Neka automatska zamijena drži dužinu vlaka istom brišući vagone(počevši od naprijed), ako bi zamijena lokomotive vlak učinila dužim.
+STR_REPLACE_ENGINE_WAGON_SELECT                                 :{BLACK}Zamjenjujem:{ORANGE}{SKIP}{SKIP}{STRING}
+STR_REPLACE_ENGINE_WAGON_SELECT_HELP                            :{BLACK}EXPERIMENTALNA FUNKCIJA {} Prebaci između prozora za izmjenu lokomotiva i vagona.{}Izmjena vagona će se izvršiti samo ako novi vagon može biti prenamijenjen za prijevoz istog tipa tereta kao i stari vagon. Ovo se provjerava za svaki vagon kada se stvarna zamjena odvija.
+STR_RAIL_VEHICLE_NOT_AVAILABLE                                  :{WHITE}Vozilo nije dostupno
+STR_ROAD_VEHICLE_NOT_AVAILABLE                                  :{WHITE}Vozilo nije dostupno
+STR_SHIP_NOT_AVAILABLE                                          :{WHITE}Brod nije dostupan
+STR_AIRCRAFT_NOT_AVAILABLE                                      :{WHITE}Zrakoplov nije dostupan
+
+STR_ENGINES                                                     :Lokomotive
+STR_WAGONS                                                      :Vagoni
+
+STR_MASS_STOP_DEPOT_TRAIN_TIP                                   :{BLACK}Pritisni za zaustavljanje svih vlakova u spremištu
+STR_MASS_STOP_DEPOT_ROADVEH_TIP                                 :{BLACK}Pritisni za zaustavljanje svih cestovnih vozila u spremištu
+STR_MASS_STOP_DEPOT_SHIP_TIP                                    :{BLACK}Pritisni za zaustavljanje svih brodova u spremištu
+STR_MASS_STOP_HANGAR_TIP                                        :{BLACK}Pritisni za zaustavljanje svih zrakoplova u hangaru
+
+STR_MASS_START_DEPOT_TRAIN_TIP                                  :{BLACK}Pritisni za pokretanje svih vlakova u spremištu
+STR_MASS_START_DEPOT_ROADVEH_TIP                                :{BLACK}Pritisni za pokretanje svih cestovnih vozila u spremištu
+STR_MASS_START_DEPOT_SHIP_TIP                                   :{BLACK}Pritisni za pokretanje svih brodova u spremištu
+STR_MASS_START_HANGAR_TIP                                       :{BLACK}Klikni za pokretanje svih aviona u hangaru
+
+STR_MASS_STOP_LIST_TIP                                          :{BLACK}Klikni za zaustavljanje svih vozila na listi
+STR_MASS_START_LIST_TIP                                         :{BLACK}Klikni za pokretanje svih vozila na listi
+
+STR_SHORT_DATE                                                  :{WHITE}{DATE_TINY}
+STR_SIGN_LIST_CAPTION                                           :{WHITE}Popis znakova - {COMMA} Znak{P "" a ova}
+
+STR_ORDER_REFIT_FAILED                                          :{WHITE}Prepravke narudžbi nisu uspjele {STRING} {COMMA}
+
+############ Lists rail types
+
+STR_RAIL_VEHICLES                                               :Tračna Vozila
+STR_ELRAIL_VEHICLES                                             :Električna željeznička vozila
+STR_MONORAIL_VEHICLES                                           :Jednotračna vozila
+STR_MAGLEV_VEHICLES                                             :Maglev željeznička vozila
+
+############ End of list of rail types
+
+STR_TINY_BLACK                                                  :{BLACK}{TINYFONT}{COMMA}
+
+STR_PURCHASE_INFO_COST_WEIGHT                                   :{BLACK}Trošak: {GOLD}{CURRENCY}{BLACK} Težina {GOLD}{WEIGHT_S}
+STR_PURCHASE_INFO_SPEED_POWER                                   :{BLACK}Brzina: {GOLD}{VELOCITY}{BLACK} Snaga: {GOLD}{POWER}
+STR_PURCHASE_INFO_SPEED                                         :{BLACK}Brzina: {GOLD}{VELOCITY}
+STR_PURCHASE_INFO_RUNNINGCOST                                   :{BLACK}Radni trošak: {GOLD}{CURRENCY}/god
+STR_PURCHASE_INFO_CAPACITY                                      :{BLACK}Kapacitet: {GOLD}{CARGO}{STRING}
+STR_PURCHASE_INFO_DESIGNED_LIFE                                 :{BLACK}Dizajnirana: {GOLD}{NUM}{BLACK} Životni vijek: {GOLD}{COMMA} godina
+STR_PURCHASE_INFO_RELIABILITY                                   :{BLACK}Maks. pouzdanost: {GOLD}{COMMA}%
+STR_PURCHASE_INFO_COST                                          :{BLACK}Trošak: {GOLD}{CURRENCY}
+STR_PURCHASE_INFO_WEIGHT_CWEIGHT                                :{BLACK}Težina: {GOLD}{WEIGHT_S} ({WEIGHT_S})
+STR_PURCHASE_INFO_COST_SPEED                                    :{BLACK}Trošak: {GOLD}{CURRENCY}{BLACK} Brzina: {GOLD}{VELOCITY}
+STR_PURCHASE_INFO_AIRCRAFT_CAPACITY                             :{BLACK}Zapremnina: {GOLD}{COMMA} putnika, {COMMA} vreća s poštom
+STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT                          :{BLACK} Pokretni vagoni:.{GOLD}+{POWER}{BLACK} Težina: {GOLD}+{WEIGHT_S}
+STR_PURCHASE_INFO_REFITTABLE_TO                                 :{BLACK}Promjenjivo u: {GOLD}
+STR_PURCHASE_INFO_ALL_TYPES                                     :Svi tipovi tereta
+STR_PURCHASE_INFO_ALL_BUT                                       :Sve osim {GOLD}
+STR_PURCHASE_INFO_MAX_TE                                        :{BLACK} Maks. vučni napor: {GOLD}{FORCE}
+
+########### String for New Landscape Generator
+
+STR_GENERATE                                                    :{WHITE}Izradi
+STR_RANDOM                                                      :{BLACK}Nasumično
+STR_RANDOM_HELP                                                 :{BLACK}Promijeni slučajni slijed koji se koristi za kreiranje terena
+STR_WORLD_GENERATION_CAPTION                                    :{WHITE}Izrada svijeta
+STR_RANDOM_SEED                                                 :{BLACK}Nasumični slijed:
+STR_RANDOM_SEED_HELP                                            :{BLACK}Klikni za unos nasumičnog slijeda
+STR_LAND_GENERATOR                                              :{BLACK}Izrađivač zemljišta:
+STR_TREE_PLACER                                                 :{BLACK} Algoritam za drveće:
+STR_HEIGHTMAP_ROTATION                                          :{BLACK}Rotacija visinske mape:
+STR_TERRAIN_TYPE                                                :{BLACK}Tip terena:
+STR_QUANTITY_OF_SEA_LAKES                                       :{BLACK}Razina mora:
+STR_SMOOTHNESS                                                  :{BLACK}Graduacija:
+STR_SNOW_LINE_HEIGHT                                            :{BLACK}Visina linije snijega
+STR_DATE                                                        :{BLACK}Datum:
+STR_NUMBER_OF_TOWNS                                             :{BLACK}Broj gradova:
+STR_NUMBER_OF_INDUSTRIES                                        :{BLACK}Broj industrija:
+STR_GENERATE_DATE                                               :{BLACK}{DATE_LONG}
+STR_SNOW_LINE_UP                                                :{BLACK}Pomakni visinu linije snijega za jedan gore
+STR_SNOW_LINE_DOWN                                              :{BLACK}Pomakni visinu linije snijega za jedan dolje
+STR_SNOW_LINE_QUERY_CAPT                                        :{WHITE}Promijeni visinu linije snijega
+STR_START_DATE_QUERY_CAPT                                       :{WHITE}Promijeni početnu godinu
+STR_HEIGHTMAP_SCALE_WARNING_CAPTION                             :{WHITE}Upozorenje o veličini
+STR_HEIGHTMAP_SCALE_WARNING_MESSAGE                             :{YELLOW}Prekomjerna promjena veličine mape nije preporučena. Nastaviti sa kreiranjem?
+STR_SNOW_LINE_HEIGHT_NUM                                        :{NUM}
+STR_HEIGHTMAP_SIZE                                              :{BLACK}Veličina: {ORANGE}{NUM} x {NUM}
+STR_GENERATION_WORLD                                            :{WHITE}Izrada svijeta u toku...
+STR_GENERATION_ABORT                                            :{BLACK}Prekini
+STR_GENERATION_ABORT_CAPTION                                    :{WHITE}Poništi izradu svijeta
+STR_GENERATION_ABORT_MESSAGE                                    :{YELLOW}Da li zaista želiš prekinuti izradu?
+STR_PROGRESS                                                    :{WHITE}{NUM}% gotovo
+STR_GENERATION_PROGRESS                                         :{BLACK}{NUM} / {NUM}
+STR_WORLD_GENERATION                                            :{BLACK}Izrada svijeta
+STR_TREE_GENERATION                                             :{BLACK}Generiranje drveća
+STR_CLEARING_TILES                                              :{BLACK}Generiranje grubog i stjenovitog područja
+STR_SETTINGUP_GAME                                              :{BLACK}Uspostavljam igru
+STR_PREPARING_TILELOOP                                          :{BLACK}Izvršavam tile-petlju
+STR_PREPARING_GAME                                              :{BLACK}Pripremam igru
+STR_SE_FLAT_WORLD                                               :{WHITE}Ravna zemlja
+STR_SE_FLAT_WORLD_TIP                                           :{BLACK}Kreiraj ravan teren
+STR_SE_RANDOM_LAND                                              :{WHITE}Nasumični teren
+STR_SE_NEW_WORLD                                                :{BLACK}Kreiraj novi scenarij
+STR_SE_CAPTION                                                  :{WHITE}Vrsta scenarija
+STR_FLAT_WORLD_HEIGHT_DOWN                                      :{BLACK}Snizi ravnu površinu za jedan korak
+STR_FLAT_WORLD_HEIGHT_UP                                        :{BLACK}Povisi ravnu površinu za jedan korak
+STR_FLAT_WORLD_HEIGHT_QUERY_CAPT                                :{WHITE}Promijeni visinu ravne površine
+STR_FLAT_WORLD_HEIGHT                                           :{BLACK}Visina ravne površine:
+STR_FLAT_WORLD_HEIGHT_NUM                                       :{NUM}
+
+STR_SMALLMAP_CENTER                                             :{BLACK}Centriraj malu mapu na trenutni položaj
+
+########### String for new airports
+STR_SMALL_AIRPORT                                               :{BLACK}Mala
+STR_CITY_AIRPORT                                                :{BLACK}Grad
+STR_METRO_AIRPORT                                               :{BLACK}Metropolitanski airport
+STR_INTERNATIONAL_AIRPORT                                       :{BLACK}Međunarodni aerodrom
+STR_COMMUTER_AIRPORT                                            :{BLACK}Redoviti putnik
+STR_INTERCONTINENTAL_AIRPORT                                    :{BLACK}Međukontinentalni
+STR_HELIPORT                                                    :{BLACK}Heliodrom
+STR_HELIDEPOT                                                   :{BLACK}Spremište za helikoptere
+STR_HELISTATION                                                 :{BLACK}Stanica za helikoptere
+
+STR_SMALL_AIRPORTS                                              :{BLACK}Mali aerodromi
+STR_LARGE_AIRPORTS                                              :{BLACK}Veliki aerodromi
+STR_HUB_AIRPORTS                                                :{BLACK}Središnje zračne luke
+STR_HELIPORTS                                                   :{BLACK}Helicopterske zračne luke
+
+############ Tooltip measurment
+
+STR_MEASURE_LENGTH                                              :{BLACK}Dužina:{NUM}
+STR_MEASURE_AREA                                                :{BLACK}Područje:{NUM}x{NUM}
+STR_MEASURE_LENGTH_HEIGHTDIFF                                   :{BLACK}Dužina:{NUM}{}Visinska razlika:{NUM} m
+STR_MEASURE_AREA_HEIGHTDIFF                                     :{BLACK}Područje:{NUM}x{NUM}Visinska razlika:{NUM} m
+
+############ Date formatting
+STR_DATE_TINY                                                   :{STRING}-{STRING}-{NUM}
+STR_DATE_SHORT                                                  :{STRING} {NUM}
+STR_DATE_LONG                                                   :{STRING} {STRING} {NUM}
+
+########
+
+STR_FEEDER_CARGO_VALUE                                          :{BLACK}Prebaci novac: {LTBLUE}{CURRENCY}
+
+
+
+##### Mass Order
+
+
+
+
+
+
+
+########
--- a/src/lang/czech.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/czech.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1092,7 +1092,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Vozit zboží do stanice jen když je poptávka: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Povolit stavbu velmi dlouhých mostů: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Povolit příkaz 'jeď do depa': {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Povolit výstavbu průmyslu těžícího surový materiál: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Povolit více stejného průmyslu kolem jednoho města: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Průmysl stejného druhu může být budován poblíž sebe: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Ukazovat dlouhé datum ve stavové liště: {ORANGE}{STRING}
--- a/src/lang/danish.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/danish.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Aflever kun last til en station hvis der er en forespørgsel: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Tillad bygning af meget lange broer: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Tillad gå til depot ordrer: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Tillad opførslen af råmateriale industrier: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Tillad flere af samme slags industri per by: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Tillad flere af samme type industri tæt på hinanden: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Vis altid lang dato i statusbaren: {ORANGE}{STRING}
@@ -1106,7 +1105,16 @@
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Benyt laste-indikatorer: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Slå køreplaner for transportmidler til: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Vis køreplan i tik i stedet for dage: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Standard skinnetype (efter nyt spil/hentet spil): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Normal jernbane
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Elektrificeret jernbane
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Monorail
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Magnetskinne
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Første tilgængelige
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Sidste tilgængelige
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Mest anvendte
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Vis byggeværktøjer hvis ingen passende transportmidler er tilgængelige: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Maks. antal tog per spiller: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Maks. antal køretøjer per spiller: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Maks. antal fly per spiller: {ORANGE}{STRING}
@@ -2082,6 +2090,7 @@
 STR_SV_STNAME_LOWER                                             :Nedre {STRING}
 STR_SV_STNAME_HELIPORT                                          :{STRING} Helikopterplads
 STR_SV_STNAME_FOREST                                            :{STRING} Skov
+STR_SV_STNAME_FALLBACK                                          :{STRING} Station #{NUM}
 
 ############ end of savegame specific region!
 
@@ -2641,7 +2650,7 @@
 STR_881C_NEW_RAIL_VEHICLES                                      :{WHITE}Nye jernbanekøretøjer
 STR_NEW_ELRAIL_VEHICLES                                         :{WHITE}Nyt Elektrisk lokomotiv
 STR_881D_NEW_MONORAIL_VEHICLES                                  :{WHITE}Nye monorailkøretøjer
-STR_881E_NEW_MAGLEV_VEHICLES                                    :{WHITE}Nye magnetskinne køretøjer
+STR_881E_NEW_MAGLEV_VEHICLES                                    :{WHITE}Nye magnetskinnekøretøjer
 STR_ALL_AVAIL_RAIL_VEHICLES                                     :{WHITE}Jernbanekøretøjer
 
 STR_881F_BUILD_VEHICLE                                          :{BLACK}Byg køretøj
@@ -2764,6 +2773,10 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :Dette transportmiddel kommer til tiden
 STR_TIMETABLE_STATUS_LATE                                       :Dette transportmiddel er nu {STRING} forsinket
 STR_TIMETABLE_STATUS_EARLY                                      :Dette transportmiddel er nu {STRING} foran køreplanen
+STR_TIMETABLE_TOTAL_TIME                                        :Denne køreplan vil tage {STRING} at fuldføre
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Denne køreplan vil tage mindst {STRING} at fuldføre (ikke alt indført i køreplan)
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Auto-udfyld
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Udfyld køreplanen automatisk med værdier fra den første tur
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Køretøj i vejen
@@ -3338,7 +3351,17 @@
 STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR                         :{TINYFONT}{BLACK}Afkast i indeværende år: {GREEN}{CURRENCY} {BLACK}(sidste år: {RED}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Afkast i indeværende år: {RED}{CURRENCY} {BLACK}(sidste år: {RED}{CURRENCY}{BLACK})
 
+STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
 STR_GROUP_NAME                                                  :{GROUP}
+STR_PLAYER_NAME                                                 :{PLAYERNAME}
+STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Navnet skal være unikt
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Gå til næste skilt
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Gå til forrige skilt
+
 ########
--- a/src/lang/dutch.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/dutch.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1034,7 +1034,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Lading alleen bezorgen aan een station als er vraag naar is: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Bouwen van zeer lange bruggen toestaan: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}'Ga naar depot' order toestaan: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Plaatsen van grondstofproducerende industrie toestaan: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Handmatige bouwmethode voor hoofdindustrieën: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :geen
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :zoals andere industrieën
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :proberen
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Meerdere vergelijkbare industrieën per stad toestaan: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industrieën van hetzelfde type dicht bij elkaar toestaan: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Altijd lange datum in statusbalk weergeven: {ORANGE}{STRING}
@@ -1115,6 +1118,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Laatst beschikbare
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Meest gebruikte
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Geef bouwgereedschap weer wanneer geen geschikte voertuigen beschikbaar zijn: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Maximaal aantal treinen per speler: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Maximaal aantal wegvoertuigen per speler: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Maximaal aantal vliegtuigen per speler: {ORANGE}{STRING}
@@ -2773,6 +2777,10 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :Dit voertuig loopt op schema
 STR_TIMETABLE_STATUS_LATE                                       :Dit voertuig heeft {STRING} vertraging
 STR_TIMETABLE_STATUS_EARLY                                      :Dit voertuig is {STRING} te vroeg
+STR_TIMETABLE_TOTAL_TIME                                        :Dit tijdscheme duurt {STRING} om te volbrengen
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Dit tijdscheme duurt minstens {STRING} om te volbrengen (niet alles geselecteerd)
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Auto aanvullen
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Vul het tijdschema automatisch met de waardes van de eerste reis
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Wegvoertuig in de weg
@@ -3347,7 +3355,17 @@
 STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR                         :{TINYFONT}{BLACK}Winst dit jaar: {GREEN}{CURRENCY} {BLACK}(vorig jaar: {RED}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Winst dit jaar: {RED}{CURRENCY} {BLACK}(vorig jaar: {RED}{CURRENCY}{BLACK})
 
+STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
 STR_GROUP_NAME                                                  :{GROUP}
+STR_PLAYER_NAME                                                 :{PLAYERNAME}
+STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Naam moet unique zijn
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Ga naar volgende bord
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Ga naar vorige bord
+
 ########
--- a/src/lang/english.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/english.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1034,7 +1034,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Deliver cargo to a station only when there is a demand: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Allow building very long bridges: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Allow goto depot orders: {ORANGE}{STRING1}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Allow constructing raw material producing industries: {ORANGE}{STRING1}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Manual primary industry construction method: {ORANGE}{STRING1}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :none
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :as other industries
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospecting
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Allow multiple similar industries per town: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industries of the same type can be built close to each other: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Always show long date in the status bar: {ORANGE}{STRING1}
@@ -1115,6 +1118,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Last available
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Most used
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Show building tools when no suitable vehicles are available: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Max trains per player: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Max road vehicles per player: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Max aircraft per player: {ORANGE}{STRING1}
@@ -3358,4 +3362,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Name must be unique
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Go to next sign
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Go to previous sign
+
 ########
--- a/src/lang/esperanto.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/esperanto.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1035,7 +1035,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Nur liveru ŝarĝon al stacio se estas peto: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Permesu konstruadon de tre longaj pontoj: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Permesu ordenojn por iri al deponejo: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Permesu konstruadon de fontmalerialaj industrioj: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Permesu pliajn similajn industriojn en la sama urbo: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Samtipaj industrioj povas esti konstruataj proksime unu de la alia: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Ĉiam montru longan daton en la statbreto: {ORANGE}{STRING}
--- a/src/lang/estonian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/estonian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1134,7 +1134,7 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Vii kaup jaama ainult siis, kui seal on nõudlus: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Luba väga pikkade sildade ehitus: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Luba 'mine depoosse' käsud: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Luba rajada toormaterjalide tehaseid: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :pole
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Luba mitu sama liiki tööstust linna kohta: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Sama liiki tööstusi saab ehitada üksteise lähedale: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Alati näita olekuribal pikka kuupäeva: {ORANGE}{STRING}
@@ -1206,6 +1206,10 @@
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Kasuta laadimisnäidikuid: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Luba sõiduplaanide määramine: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Kasuta sõiduplaanis päevade asemel tikse: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Maglev
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Esimene saadaval
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Viimane saadaval
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Enim kasutatud
 
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Enim ronge mängija kohta: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Enim mootorsõidukeid mängija kohta: {ORANGE}{STRING}
@@ -1242,11 +1246,11 @@
 
 STR_CONFIG_PATCHES_TOWN_LAYOUT_INVALID                          :{WHITE}Stsenaariumiredaktor ei tunnista "ilma teedeta" linnaplaneeringut
 STR_CONFIG_PATCHES_TOWN_LAYOUT                                  :{LTBLUE}Vali linnale teedeplaneering: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_TOWN_LAYOUT_NO_ROADS                         :ilma teedeta
-STR_CONFIG_PATCHES_TOWN_LAYOUT_DEFAULT                          :tavalised
+STR_CONFIG_PATCHES_TOWN_LAYOUT_NO_ROADS                         :rohkem teid ei ole
+STR_CONFIG_PATCHES_TOWN_LAYOUT_DEFAULT                          :vaikimisi
 STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS                     :paremad teed
-STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID                         :2x2 ruudustik
-STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID                         :3x3 ruudustik
+STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID                         :2x2 võrgustik
+STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID                         :3x3 võrgustik
 
 STR_CONFIG_PATCHES_TOOLBAR_POS                                  :{LTBLUE}Tööriistariba asukoht: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT                             :Vasakul
@@ -3439,7 +3443,14 @@
 STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR                         :{TINYFONT}{BLACK}Selle aasta kasum: {GREEN}{CURRENCY} {BLACK}(eelmisel aastal: {RED}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Selle aasta kasum: {RED}{CURRENCY} {BLACK}(eelmisel aastal: {RED}{CURRENCY}{BLACK})
 
+STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
 STR_GROUP_NAME                                                  :{GROUP}
+STR_PLAYER_NAME                                                 :{PLAYERNAME}
+STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+
+#### Improved sign GUI
+
 ########
--- a/src/lang/finnish.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/finnish.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -778,6 +778,7 @@
 STR_02C5_DIFFICULTY_SETTINGS                                    :Vaikeusasetukset
 STR_02C7_CONFIG_PATCHES                                         :Muokkaa paikkauksia
 STR_NEWGRF_SETTINGS                                             :Newgrf-asetukset
+STR_TRANSPARENCY_OPTIONS                                        :Läpinäkyvyysvalinnat
 STR_GAMEOPTMENU_0A                                              :
 STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}Kaupunkien nimet näkyvissä
 STR_02CC_STATION_NAMES_DISPLAYED                                :{SETX 12}Asemien nimet näkyvissä
@@ -805,7 +806,6 @@
 STR_02DE_MAP_OF_WORLD                                           :Maailmankartta
 STR_EXTRA_VIEW_PORT                                             :Lisänäkymä
 STR_SIGN_LIST                                                   :Kylttilista
-STR_TRANSPARENCY_OPTIONS                                        :Läpinäkyvyysvalinnat
 STR_02DF_TOWN_DIRECTORY                                         :Kaupunkihakemisto
 STR_TOWN_POPULATION                                             :{BLACK}Maailman asukasluku: {COMMA}
 STR_EXTRA_VIEW_PORT_TITLE                                       :{WHITE}Näkymä {COMMA}
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Kuljeta rahti asemalle vain, kun on kysyntää: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Erittäin pitkien siltojen rakentaminen: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Varikollemenomääräykset: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Raaka-aineteollisuuden rakentaminen: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Kaupungissa voi olla useita samanlaisia teollisuustyyppejä: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Samantyyppistä teollisuutta voidaan rakentaa lähekkäin: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Näytä aina koko päiväys tilapalkissa: {ORANGE}{STRING}
@@ -2067,8 +2066,6 @@
 STR_SV_STNAME_HELIPORT                                          :{STRING}, helikopterikenttä
 STR_SV_STNAME_FOREST                                            :{STRING}, metsä
 
-
-
 ############ end of savegame specific region!
 
 ##id 0x6800
@@ -2138,8 +2135,8 @@
 STR_6833_9_MONTHS_AFTER_PLAYER                                  :9 kuukautta pelaajan jälkeen
 STR_6834_AT_END_OF_LINE_AND_AT_STATIONS                         :Radan päässä ja asemilla
 STR_6835_AT_END_OF_LINE_ONLY                                    :Vain radan päässä
-STR_6836_OFF                                                    :Päällä
-STR_6837_ON                                                     :Pois
+STR_6836_OFF                                                    :Pois
+STR_6837_ON                                                     :Päällä
 STR_6838_SHOW_HI_SCORE_CHART                                    :{BLACK}Näytä pistetaulukko
 STR_6839_PERMISSIVE                                             :Salliva
 STR_683A_TOLERANT                                               :Suvaitseva
@@ -3317,4 +3314,6 @@
 STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR                         :{TINYFONT}{BLACK}Tulos tänä vuonna: {GREEN}{CURRENCY} {BLACK}(viime vuonna: {RED}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Tulos tänä vuonna: {RED}{CURRENCY} {BLACK}(viime vuonna: {RED}{CURRENCY}{BLACK})
 
+
+
 ########
--- a/src/lang/french.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/french.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1035,7 +1035,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Livrer la cargaison seulement sur demande: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Permettre la construction de longs ponts: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Permettre l'ordre d'aller au dépôt: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Permettre la construction de ressources primaires: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Méthode de construction manuelle des industries primaires: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :aucune
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :comme les autres industries
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospection
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Permettre plusieurs industries similaires par ville: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Permettre plusieurs industries similaires à proximité: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Afficher la date complète dans la barre d'état: {ORANGE}{STRING}
@@ -1116,6 +1119,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Dernier disponible
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Le plus utilisé
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Afficher les outils de construction quand aucun véhicule approprié n'est disponible: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Nombre de trains max. par joueur: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Nombre de véhicules routiers max. par joueur: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Nombre d'aéronefs max. par joueur: {ORANGE}{STRING}
@@ -2111,7 +2115,7 @@
 STR_6806_COMPETITOR_START_TIME                                  :{LTBLUE}Arrivée des concurents: {ORANGE}{STRING}
 STR_6807_NO_OF_TOWNS                                            :{LTBLUE}Nombre de villes: {ORANGE}{STRING}
 STR_6808_NO_OF_INDUSTRIES                                       :{LTBLUE}Nombre d'industries: {ORANGE}{STRING}
-STR_6809_MAXIMUM_INITIAL_LOAN_000                               :{LTBLUE}Prêt initial maximum: {ORANGE}{CURRENCY}
+STR_6809_MAXIMUM_INITIAL_LOAN_000                               :{LTBLUE}Emprunt initial maximum: {ORANGE}{CURRENCY}
 STR_680A_INITIAL_INTEREST_RATE                                  :{LTBLUE}Taux d'interêt initial: {ORANGE}{COMMA}%
 STR_680B_VEHICLE_RUNNING_COSTS                                  :{LTBLUE}Coûts d'entretien: {ORANGE}{STRING}
 STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR                       :{LTBLUE}Vitesse de développement des concurents: {ORANGE}{STRING}
@@ -2208,14 +2212,14 @@
 STR_7024                                                        :{COMMA}
 STR_7025_OPERATING_PROFIT_GRAPH                                 :{WHITE}Graphique du profit d'opération
 STR_7026_BANK_BALANCE                                           :{WHITE}Equilibre bancaire
-STR_7027_LOAN                                                   :{WHITE}Prêt
+STR_7027_LOAN                                                   :{WHITE}Emprunt
 STR_MAX_LOAN                                                    :{WHITE}Emprunt maximum :  {BLACK}{CURRENCY}
 STR_7028                                                        :{BLACK}{CURRENCY}
 STR_7029_BORROW                                                 :{BLACK}Emprunter {SKIP}{SKIP}{CURRENCY}
 STR_702A_REPAY                                                  :{BLACK}Rembourser {SKIP}{SKIP}{CURRENCY}
 STR_702B_MAXIMUM_PERMITTED_LOAN                                 :{WHITE}...le prêt maximum est de {CURRENCY}
 STR_702C_CAN_T_BORROW_ANY_MORE_MONEY                            :{WHITE}Impossible d'emprunter plus...
-STR_702D_LOAN_ALREADY_REPAYED                                   :{WHITE}...Prêt déjà remboursé
+STR_702D_LOAN_ALREADY_REPAYED                                   :{WHITE}...emprunt déjà remboursé
 STR_702E_REQUIRED                                               :{WHITE}...{CURRENCY} nécessaires
 STR_702F_CAN_T_REPAY_LOAN                                       :{WHITE}Impossible de rembourser...
 STR_INSUFFICIENT_FUNDS                                          :{WHITE}On ne peut pas distribuer de l'argent qui est emprunté à la banque...
@@ -3020,7 +3024,7 @@
 STR_PERFORMANCE_DETAIL_DELIVERED                                :{BLACK}Livré :
 STR_PERFORMANCE_DETAIL_CARGO                                    :{BLACK}Cargo :
 STR_PERFORMANCE_DETAIL_MONEY                                    :{BLACK}Argent :
-STR_PERFORMANCE_DETAIL_LOAN                                     :{BLACK}Prêt :
+STR_PERFORMANCE_DETAIL_LOAN                                     :{BLACK}Emprunt :
 STR_PERFORMANCE_DETAIL_TOTAL                                    :{BLACK}Total :
 ############ End of order list
 STR_PERFORMANCE_DETAIL_VEHICLES_TIP                             :{BLACK}Nombre de véhicules. Ceci inclut les véhicules routiers, les trains, les navies et les aéronefs.
@@ -3359,4 +3363,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Le nom doit être unique
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Aller au panneau suivant
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Aller au panneau précédent
+
 ########
--- a/src/lang/galician.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/galician.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1004,7 +1004,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Descarga-la carga só cando haxa demanda: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Permiti-la construcción de pontes moi longas: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Permiti-las ordes de ir ó depósito: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Permiti-la construccion de industrias de materiales: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Permitir múltiples industrias similares en cada cidade: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Permiti-la construcción de industrias iguais cercanas: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Mostrar sempre a data longa na barra de estado: {ORANGE}{STRING}
@@ -1924,7 +1923,6 @@
 STR_SV_STNAME_HELIPORT                                          :{STRING} Heliporto
 STR_SV_STNAME_FOREST                                            :{STRING} Bosque
 
-
 ############ end of savegame specific region!
 
 ##id 0x6800
@@ -2442,6 +2440,7 @@
 STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT                             :Ir sen paradas o Depósito de Trens de {TOWN}
 STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT                             :Face-lo servicio sen paradas no Depósito de Trens de {TOWN}
 
+
 STR_HEADING_FOR_TRAIN_DEPOT                                     :{ORANGE}En camiño ó Depósito de {TOWN}
 STR_HEADING_FOR_TRAIN_DEPOT_VEL                                 :{ORANGE}En camiño ó Depósito de {TOWN}, {VELOCITY}
 STR_HEADING_FOR_TRAIN_DEPOT_SERVICE                             :{LTBLUE}Servicio no Depósito de {TOWN}
@@ -2557,6 +2556,7 @@
 STR_NEW_VEHICLE_NOW_AVAILABLE                                   :{BLACK}{BIGFONT}¡Novo {STRING} agora dispoñible!
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 
+
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Haí un vehículo de estrada no camiño
 STR_9001_ROAD_VEHICLES                                          :{WHITE}{COMPANY} - {COMMA} Vehículos de Estrada
@@ -2598,6 +2598,8 @@
 STR_9026_ROAD_VEHICLE_SELECTION                                 :{BLACK}Lista de selección de vehículos de estrada - pincha nun vehículo para máis información
 STR_9027_BUILD_THE_HIGHLIGHTED_ROAD                             :{BLACK}Construí-lo vehículo de estrada seleccionado
 STR_902A_COST_SPEED_RUNNING_COST                                :{BLACK}Coste: {CURRENCY}{}Velocidade: {VELOCITY}{}Coste de Mantemento: {CURRENCY}/ano{}Capacidade: {CARGO}
+STR_ARTICULATED_RV_CAPACITY                                     :{BLACK}Capacidade: {LTBLUE}
+STR_BARE_CARGO                                                  :{CARGO}
 
 STR_902C_NAME_ROAD_VEHICLE                                      :{WHITE}Renomear vehículo de estrada
 STR_902D_CAN_T_NAME_ROAD_VEHICLE                                :{WHITE}Non se pode renomea-lo vehículo de estrada...
@@ -2762,6 +2764,7 @@
 STR_GO_TO_AIRPORT_HANGAR                                        :Ir ó hangar de {STATION}
 SERVICE_AT_AIRPORT_HANGAR                                       :Face-lo servicio no hangar de {STATION}
 
+
 ##id 0xB000
 STR_B000_ZEPPELIN_DISASTER_AT                                   :{BLACK}{BIGFONT}¡Desastre cun Zeppelin en {STATION}!
 STR_B001_ROAD_VEHICLE_DESTROYED                                 :{BLACK}{BIGFONT}¡Vehículo de estrada destruído tras colisionar cun 'OVNI'!
@@ -2814,6 +2817,7 @@
 STR_NEWGRF_ERROR_MSG_INFO                                       :{SILVER}{STRING}
 STR_NEWGRF_ERROR_MSG_WARNING                                    :{RED}Aviso: {SILVER}{STRING}
 STR_NEWGRF_ERROR_MSG_ERROR                                      :{RED}Erro: {SILVER}{STRING}
+STR_NEWGRF_ERROR_UNSET_SWITCH                                   :{STRING} está deseñado para ser usado con {STRING}
 
 STR_NEWGRF_ADD                                                  :{BLACK}Engadir
 STR_NEWGRF_ADD_TIP                                              :{BLACK}Engadir un novo arquivo NewGRF á lista
@@ -2859,6 +2863,7 @@
 
 ### depot strings
 STR_DEPOT_SELL_CONFIRMATION_TEXT                                :{YELLOW}Vas vender tódolos vehículos do depósito. ¿Estás seguro?
+STR_DEPOT_WRONG_DEPOT_TYPE                                      :Tipo de depósito erróneo
 
 STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP                             :{BLACK}Vender tódolos trens do depósito
 STR_DEPOT_SELL_ALL_BUTTON_SHIP_TIP                              :{BLACK}Vender tódolos barcos no depósito
@@ -3003,10 +3008,43 @@
 STR_TRANSPARENT_BUILDINGS_DESC                                  :{BLACK}Habilitar transparencia para construibles como estacións, depósitos, puntos de ruta e catenaria
 STR_TRANSPARENT_BRIDGES_DESC                                    :{BLACK}Habilitar transparencia para pontes
 
+STR_PERCENT_UP_SMALL                                            :{TINYFONT}{WHITE}{NUM}%{UPARROW}
+STR_PERCENT_UP                                                  :{WHITE}{NUM}%{UPARROW}
+STR_PERCENT_DOWN_SMALL                                          :{TINYFONT}{WHITE}{NUM}%{DOWNARROW}
+STR_PERCENT_DOWN                                                :{WHITE}{NUM}%{DOWNARROW}
+STR_PERCENT_UP_DOWN_SMALL                                       :{TINYFONT}{WHITE}{NUM}%{UPARROW}{DOWNARROW}
+STR_PERCENT_UP_DOWN                                             :{WHITE}{NUM}%{UPARROW}{DOWNARROW}
+
 ##### Mass Order
+STR_GROUP_NAME_FORMAT                                           :Grupo {COMMA}
+STR_GROUP_TINY_NAME                                             :{TINYFONT}{GROUP}
+STR_GROUP_ALL_TRAINS                                            :Tódolos trens
+STR_GROUP_ALL_ROADS                                             :Tódolos vehículos de estrada
+STR_GROUP_ALL_SHIPS                                             :Tódolos barcos
+STR_GROUP_ALL_AIRCRAFTS                                         :Tódolos avións
+STR_GROUP_TINY_NUM                                              :{TINYFONT}{COMMA}
+
+STR_GROUP_RENAME_CAPTION                                        :{BLACK}Renomear un grupo
+
+STR_GROUP_CAN_T_CREATE                                          :{WHITE}Non se pode crear o grupo...
+STR_GROUP_CAN_T_DELETE                                          :{WHITE}Non se pode borrar este grupo...
+STR_GROUP_CAN_T_RENAME                                          :{WHITE}Non se pode renomear o grupo...
+STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES                             :{WHITE}Non se pode borrar tódolos vehículos deste grupo...
+STR_GROUP_CAN_T_ADD_VEHICLE                                     :{WHITE}Non se pode engadir o vehículo a este grupo...
+
+STR_GROUP_CREATE_TIP                                            :{BLACK}Pincha para crear un grupo
+STR_GROUP_DELETE_TIP                                            :{BLACK}Borrar o grupo seleccionado
+STR_GROUP_RENAME_TIP                                            :{BLACK}Renomear o grupo seleccionado
 
 
+STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
+STR_GROUP_NAME                                                  :{GROUP}
+STR_PLAYER_NAME                                                 :{PLAYERNAME}
+STR_SIGN_NAME                                                   :{SIGN}
+STR_VEHICLE_NAME                                                :{VEHICLE}
 
 
+#### Improved sign GUI
 
 ########
--- a/src/lang/german.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/german.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1035,7 +1035,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Liefere Fracht nur, wenn die Station diese annimmt: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Erlaube das Bauen von sehr langen Brücken: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Erlaube "Gehe zum Depot"-Aufträge im Fahrplan: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Erlaube das Bauen von rohstoffproduzierenden Industrien: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Erlaube mehrere gleichartige Industrien pro Stadt: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Gleiche Industrien können nahe beieinander gebaut werden: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Lange Datumsanzeige in der Statusleiste (links unten): {ORANGE}{STRING}
--- a/src/lang/hungarian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/hungarian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1100,7 +1100,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Csak akkor szállítson árut az állomásra, ha ott van rá kereslet: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Nagyon hosszú hidak engedélyezése: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}'Menj a garázsba' engedélyezés a menetrendben: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Nyersanyagtermelő ipari épületek építési lehetősége: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Utólagos elsődleges-ipar létesítési módszer: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :semmilyen
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :biztos módszer
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :lehetséges mód
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Több hasonló ipari épület egy városon belül: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Több ugyanolyan gyár építhető közel egymáshoz: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Mindig teljes dátum a képernyőn: {ORANGE}{STRING}
@@ -1181,6 +1184,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Utolsó elérhető
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Leginkább használt
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Akkor is mutasd az eszköztárat, ha nem építhető semmi róla: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Maximum vonat játékosonként: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Maximum közúti jármű játékosonként: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Maximum repülőgép játékosonként: {ORANGE}{STRING}
@@ -3461,4 +3465,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}A névnek egyedinek kell lennie
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Következő felirat
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Előző felirat
+
 ########
--- a/src/lang/icelandic.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/icelandic.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1028,7 +1028,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Aðeins afhlaða farmi á stöðvum þar sem er eftirspurn: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Leyfa byggingu mjög langra brúa: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Skýli má vera á áætlun lesta: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Leyfa byggingu hráefnaframleiðsluiðnaðar: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Leyfa marga svipaða iðnaði í sama bæ: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Má byggja iðnaði af sömu gerð nálægt hvor öðrum: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Sýna alltaf fulla dagsetningu á upplýsingaslá: {ORANGE}{STRING}
--- a/src/lang/italian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/italian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -157,7 +157,7 @@
 STR_00B0_MAP                                                    :{WHITE}Mappa - {STRING}
 STR_00B1_GAME_OPTIONS                                           :{WHITE}Opzioni di gioco
 STR_00B2_MESSAGE                                                :{YELLOW}Messaggio
-STR_00B3_MESSAGE_FROM                                           :{YELLOW}Messaggio da {STRING}
+STR_00B3_MESSAGE_FROM                                           :{YELLOW}Messaggio dalla {STRING}
 STR_POPUP_CAUTION_CAPTION                                       :{WHITE}Attenzione!
 STR_00B4_CAN_T_DO_THIS                                          :{WHITE}Non è possibile farlo....
 STR_00B5_CAN_T_CLEAR_THIS_AREA                                  :{WHITE}Impossibile ripulire l'area....
@@ -1036,7 +1036,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Scarica le merci in una stazione solo se richieste: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Consenti la costruzione di ponti molto lunghi: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Consenti gli ordini 'Vai al deposito': {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Consenti la costruzione di industrie primarie: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Costruzione manuale delle industrie primarie: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :non permessa
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :come le altre industrie
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospezione
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Consenti più industrie dello stesso tipo nella stessa città: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Consenti la costruzione di industrie uguali anche molto vicine: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Mostra sempre la data lunga nella barra di stato: {ORANGE}{STRING}
@@ -1108,15 +1111,16 @@
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Utilizza gli indicatori di caricamento: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Abilita la definizione di tabelle orarie per i veicoli: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Mostra le tabelle orarie in tick piuttosto che in giorni: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Tipo predefinito rotaie (a inizio/ripresa partita): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Ferrovia predefinita (a inizio/ripresa partita): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Ferrovia normale
-STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Ferrovia elettrificata
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Ferrovia elettr.
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Monorotaia
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Maglev
-STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Il primo disponibile
-STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :L'ultimo disponibile
-STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Il più usato
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :La prima disponibile
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :L'ultima disponibile
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :La più usata
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Consenti costruzione di infrastrutture senza veicoli disponibili: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Max treni per giocatore: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Max automezzi per giocatore: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Max aeromobili per giocatore: {ORANGE}{STRING}
@@ -2076,15 +2080,15 @@
 STR_SV_STNAME_OILFIELD                                          :Pozzi di {STRING}
 STR_SV_STNAME_MINES                                             :{STRING} Miniere
 STR_SV_STNAME_DOCKS                                             :Porto di {STRING}
-STR_SV_STNAME_BUOY_1                                            :{STRING} Boa 1
-STR_SV_STNAME_BUOY_2                                            :{STRING} Boa 2
-STR_SV_STNAME_BUOY_3                                            :{STRING} Boa 3
-STR_SV_STNAME_BUOY_4                                            :{STRING} Boa 4
-STR_SV_STNAME_BUOY_5                                            :{STRING} Boa 5
-STR_SV_STNAME_BUOY_6                                            :{STRING} Boa 6
-STR_SV_STNAME_BUOY_7                                            :{STRING} Boa 7
-STR_SV_STNAME_BUOY_8                                            :{STRING} Boa 8
-STR_SV_STNAME_BUOY_9                                            :{STRING} Boa 9
+STR_SV_STNAME_BUOY_1                                            :Boa 1 di {STRING}
+STR_SV_STNAME_BUOY_2                                            :Boa 2 di {STRING}
+STR_SV_STNAME_BUOY_3                                            :Boa 3 di {STRING}
+STR_SV_STNAME_BUOY_4                                            :Boa 4 di {STRING}
+STR_SV_STNAME_BUOY_5                                            :Boa 5 di {STRING}
+STR_SV_STNAME_BUOY_6                                            :Boa 6 di {STRING}
+STR_SV_STNAME_BUOY_7                                            :Boa 7 di {STRING}
+STR_SV_STNAME_BUOY_8                                            :Boa 8 di {STRING}
+STR_SV_STNAME_BUOY_9                                            :Boa 9 di {STRING}
 STR_SV_STNAME_ANNEXE                                            :{STRING} Distaccata
 STR_SV_STNAME_SIDINGS                                           :{STRING} Raccordo
 STR_SV_STNAME_BRANCH                                            :{STRING} Ramificata
@@ -2092,7 +2096,7 @@
 STR_SV_STNAME_LOWER                                             :Bassa {STRING}
 STR_SV_STNAME_HELIPORT                                          :Eliporto di {STRING}
 STR_SV_STNAME_FOREST                                            :{STRING} Foresta
-STR_SV_STNAME_FALLBACK                                          :{STRING} Stazione #{NUM}
+STR_SV_STNAME_FALLBACK                                          :{STRING}, Stazione #{NUM}
 
 ############ end of savegame specific region!
 
@@ -2775,9 +2779,9 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :Il veicolo viaggia in orario
 STR_TIMETABLE_STATUS_LATE                                       :Il veicolo viaggia con un ritardo di {STRING}
 STR_TIMETABLE_STATUS_EARLY                                      :Il veicolo viaggia con un anticipo di {STRING}
-STR_TIMETABLE_TOTAL_TIME                                        :Questo orario richiede {STRING}
-STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Questo orario richiede almeno {STRING} (non completamente impostato)
-STR_TIMETABLE_AUTOFILL                                          :{BLACK}Auto-imposta
+STR_TIMETABLE_TOTAL_TIME                                        :Questi ordini richiedono {STRING}
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Questi ordini richiedono almeno {STRING} (non tutti i tempi specificati)
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Auto
 STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Riempie automaticamente la tabella oraria con i tempi del primo viaggio
 
 ##id 0x9000
@@ -3360,4 +3364,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Il nome deve essere univoco
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Va al cartello successivo
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Va al cartello precedente
+
 ########
--- a/src/lang/japanese.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/japanese.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}需要のあるときのみ駅へ貨物を運送:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}超長型橋の建設を許容:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}「車庫へ回送」という指令を許容:{ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}原料産業の建設を許容:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}町内に重複している産業の建設を許容:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}同類の産業を近くに建設することを許容:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}常に状況バーに長型日付を表示:{ORANGE}{STRING}
@@ -1115,6 +1114,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :最新の鉄道種類
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :最も使われている鉄道種類
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}適当な車両がまだ購入不可能であっても、基礎の建設を許容:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}一人のプレヤーの列車数上限:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}一人のプレヤーの道路車両数上限:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}一人のプレヤーの飛行機数上限:{ORANGE}{STRING}
@@ -3358,4 +3358,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}名前は唯一でなければなりません
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}次の標示へ移動
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}前の標示へ移動
+
 ########
--- a/src/lang/korean.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/korean.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1035,7 +1035,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}수요가 있을때만 화물을 역에 옮겨놓음 : {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}매우 긴 교각 건설 허용 : {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}차량기지(차고/격납고)를 경로에 지정하는 것을 허용 : {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}원료 생산 산업시설의 건설을 허용 : {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}한 도시당 같은 종류의 산업시설의 중복 건설을 허용 : {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}같은 종류의 산업 시설이 가까이에 지어지는 것을 허용 : {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}날짜를 일(日)단위까지 상세하게 표시 : {ORANGE}{STRING}
@@ -1106,7 +1105,7 @@
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}진보된 차량 목록 사용: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}적재 정도 표시: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}차량에 시간표 사용: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}시간표를 날보다 초로 표시: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}시간표를 날보다 틱로 표시: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}기본 철도 종류 (새 게임/불러오기 후): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :보통 철도
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :전개 철도
@@ -1116,6 +1115,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :마지막으로 사용 가능한 것
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :가장 많이 사용한 것
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}적절한 사용 가능한 차량이 없을 경우 건설 도구 표시: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}최대 열차 수: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}최대 자동차 수: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}최대 항공기 수: {ORANGE}{STRING}
@@ -2628,7 +2628,7 @@
 STR_TIMETABLE_TRAVEL_FOR                                        :{STRING}로 여행
 STR_TIMETABLE_STAY_FOR                                          :그리고 {STRING}에 머무름
 STR_TIMETABLE_DAYS                                              :{COMMA} 일
-STR_TIMETABLE_TICKS                                             :{COMMA} 초
+STR_TIMETABLE_TICKS                                             :{COMMA} 틱
 
 STR_HEADING_FOR_TRAIN_DEPOT                                     :{ORANGE}{TOWN} 차량기지로 가는 중
 STR_HEADING_FOR_TRAIN_DEPOT_VEL                                 :{ORANGE}{TOWN} 차량기지로 가는 중 ({VELOCITY})
@@ -2763,9 +2763,9 @@
 STR_TRAIN_NO_POWER                                              :{RED}기관차 없음
 STR_TRAIN_START_NO_CATENARY                                     :연결고리가 모자라 운행을 시작할 수 없습니다.
 
-STR_NEW_VEHICLE_NOW_AVAILABLE                                   :{BLACK}{BIGFONT}신형 {STRING} 자동차가 출시되었습니다!
+STR_NEW_VEHICLE_NOW_AVAILABLE                                   :{BLACK}{BIGFONT}신형 {STRING} 이(가) 출시되었습니다!
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
-STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}신형 {STRING} 자동차가 출시되었습니다!  -  {ENGINE}
+STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}신형 {STRING} 이(가) 출시되었습니다!  -  {ENGINE}
 
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}차량의 시간표를 정할 수 없습니다...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}정거장에서만 기다릴 수 있습니다.
@@ -3359,4 +3359,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}이름은 유일해야 합니다
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}다음 팻말로 가기
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}이전 팻말로 가기
+
 ########
--- a/src/lang/lithuanian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/lithuanian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1061,7 +1061,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Pristatyti krovini stotelei tiktai tuomet, kai yra poreikis: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Leisti statyti labai ilgus tiltus: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Leisti naudoti uzduoti 'Keliauti i depa': {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Leisti statyti žaliavą gaminančias gamyklas: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Leisti kelias panašias pramonės įmones viename mieste: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Leisti statyti to paties tipo fabrikus arti vienas kito: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Rodyti pilna data busenos eiluteje: {ORANGE}{STRING}
--- a/src/lang/norwegian_bokmal.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/norwegian_bokmal.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Lever varer til en stasjon bare når varen trengs: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Tillat bygging av veldig lange broer: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Tillat 'gå til jernbanestall'-ordre: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Tillat bygging av anlegg som produserer råmaterialer: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Tillat flere like industrier i samme by: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industrier av samme type kan bygges nær hverandre: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Vis alltid lang dato på statuslinjen: {ORANGE}{STRING}
--- a/src/lang/norwegian_nynorsk.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/norwegian_nynorsk.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1035,7 +1035,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Lever varer til ein stasjon berre når varen trengst: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Tillat bygging av veldig lange bruer: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Tillat 'køyr til jernbanestall'-ordre: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Tillat bygging av anlegg som produserer råmaterial: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Tillat fleire like industriar i samme by: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industriar av same type kan byggjast nær einannan: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Alltid vis lang dato på statuslinja: {ORANGE}{STRING}
@@ -1107,7 +1106,16 @@
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Bruk lasteindikatorar: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Bruk rutetabellar for køyretøy: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Vis rutetabell i klikk i staden for dagar: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Standard Jernbane / etter nytt spel / lasta spel: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Vanleg jernbane
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Elekrisk Jernbane
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Monorail
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Maglev
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Første tilgjengelege
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Siste tilgjengelege
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Mest brukte
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Vis bygningsverktøy når det ikkje er nokon høvelege køyretøy tilgjengeleg: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Maks antal tog per speler: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Maks antal køyretøy per spelar: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Maks antal fly per spelar: {ORANGE}{STRING}
@@ -2083,8 +2091,7 @@
 STR_SV_STNAME_LOWER                                             :Nedre {STRING}
 STR_SV_STNAME_HELIPORT                                          :{STRING} helikopterstasjon
 STR_SV_STNAME_FOREST                                            :{STRING}skogen
-
-
+STR_SV_STNAME_FALLBACK                                          :{STRING} Stasjon #{NUM}
 
 ############ end of savegame specific region!
 
@@ -2767,6 +2774,10 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :Dette køyretøyet er presis
 STR_TIMETABLE_STATUS_LATE                                       :Dette køyretøyet er {STRING} for seint
 STR_TIMETABLE_STATUS_EARLY                                      :Dette køyretøyet er {STRING} for tidleg
+STR_TIMETABLE_TOTAL_TIME                                        :Det vil ta {STRING} å gjere ferdig denne rutetabellen
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Det vil ta minst {STRING} å gjere ferdig denne rutetabellen ( ikkje alle på rutetabellen
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Automatisk utfylling
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Fyll ut rutetabellen automatisk med verdiar frå den første turen
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Køyretøy i vegen
@@ -3341,5 +3352,17 @@
 STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR                         :{TINYFONT}{BLACK}Forteneste i år: {GREEN}{CURRENCY} {BLACK}(førre år: {RED}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Forteneste i år: {RED}{CURRENCY} {BLACK}(førre år: {RED}{CURRENCY}{BLACK})
 
+STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
+STR_GROUP_NAME                                                  :{GROUP}
+STR_PLAYER_NAME                                                 :{PLAYERNAME}
+STR_SIGN_NAME                                                   :{SIGN}
+STR_VEHICLE_NAME                                                :{VEHICLE}
+
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Namnet må vera unikt
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Gå til neste skilt
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Gå til førre skilt
 
 ########
--- a/src/lang/piglatin.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/piglatin.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -778,6 +778,7 @@
 STR_02C5_DIFFICULTY_SETTINGS                                    :Ifficultyday ettingssay
 STR_02C7_CONFIG_PATCHES                                         :Onfigurecay atchespay
 STR_NEWGRF_SETTINGS                                             :EwGRFnay ettingssay
+STR_TRANSPARENCY_OPTIONS                                        :Ansparencytray optionsway
 STR_GAMEOPTMENU_0A                                              :
 STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}Owntay amesnay isplayedday
 STR_02CC_STATION_NAMES_DISPLAYED                                :{SETX 12}Ationstay amesnay isplayedday
@@ -805,7 +806,6 @@
 STR_02DE_MAP_OF_WORLD                                           :Apmay ofway orldway
 STR_EXTRA_VIEW_PORT                                             :Extraway iewportvay
 STR_SIGN_LIST                                                   :Ignsay istlay
-STR_TRANSPARENCY_OPTIONS                                        :Ansparencytray optionsway
 STR_02DF_TOWN_DIRECTORY                                         :Owntay irectoryday
 STR_TOWN_POPULATION                                             :{BLACK}Orldway opulationpay: {COMMA}
 STR_EXTRA_VIEW_PORT_TITLE                                       :{WHITE}Iewportvay {COMMA}
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Eliverday argocay otay away ationstay onlyway enwhay erethay isway away emandday: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Allowway uildingbay eryvay onglay idgesbray: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Allowway otogay epotday ordersway: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Allowway onstructingcay awray aterialmay oducingpray industriesway: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Allowway ultiplemay imilarsay industriesway erpay owntay: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industriesway ofway ethay amesay ypetay ancay ebay uiltbay oseclay otay eachway otherway: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Alwaysway owshay onglay ateday inway ethay atusstay arbay: {ORANGE}{STRING}
@@ -1105,6 +1104,7 @@
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}Useway ethay advancedway ehiclevay istlay: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Enableway imetablingtay orfay ehiclesvay: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Owshay imetabletay inway ickstay atherray anthay aysday: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Ostmay usedway
 
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Axmay ainstray erpay ayerplay: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Axmay oadray ehiclesvay erpay ayerplay: {ORANGE}{STRING}
@@ -1906,6 +1906,11 @@
 STR_4007_GAME_SAVE_FAILED                                       :{WHITE}Amegay Avesay Ailedfay{}{STRING}
 STR_4008_UNABLE_TO_DELETE_FILE                                  :{WHITE}Unableway otay eleteday ilefay
 STR_4009_GAME_LOAD_FAILED                                       :{WHITE}Amegay Oadlay Ailedfay{}{STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR                   :Internalway errorway: {STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME                         :Okenbray avegamesay - {STRING}
+STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME                        :Avegamesay isway ademay ithway ewernay ersionvay
+STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE                       :Ilefay otnay eadableray
+STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE                      :Ilefay otnay iteablewray
 STR_400A_LIST_OF_DRIVES_DIRECTORIES                             :{BLACK}Istlay ofway ivesdray, irectoriesday andway avedsay-amegay ilesfay
 STR_400B_CURRENTLY_SELECTED_NAME                                :{BLACK}Urrentlycay electedsay amenay orfay avedsay-amegay
 STR_400C_DELETE_THE_CURRENTLY_SELECTED                          :{BLACK}Eleteday ethay urrentlycay electedsay avedsay-amegay
@@ -2076,8 +2081,7 @@
 STR_SV_STNAME_LOWER                                             :Owerlay {STRING}
 STR_SV_STNAME_HELIPORT                                          :{STRING} Eliporthay
 STR_SV_STNAME_FOREST                                            :{STRING} Orestfay
-
-
+STR_SV_STNAME_FALLBACK                                          :{STRING} Ationstay #{NUM}
 
 ############ end of savegame specific region!
 
@@ -2609,7 +2613,9 @@
 STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT                             :Ogay onnay-opstay otay {TOWN} Aintray Epotday
 STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT                             :Ervicesay onnay-opstay atway {TOWN} Aintray Epotday
 
+STR_TIMETABLE_GO_TO                                             :{STRING} {STRING}
 STR_TIMETABLE_TRAVEL_NOT_TIMETABLED                             :Aveltray (otnay imetabledtay)
+STR_TIMETABLE_TRAVEL_FOR                                        :Aveltray orfay {STRING}
 STR_TIMETABLE_STAY_FOR                                          :andway aystay orfay {STRING}
 STR_TIMETABLE_DAYS                                              :{COMMA} ay{P "" s}day
 STR_TIMETABLE_TICKS                                             :{COMMA} ick{P "" s}tay
@@ -2716,6 +2722,7 @@
 STR_TIMETABLE_TOOLTIP                                           :{BLACK}Imetabletay - ickclay onway anway orderway otay ighlighthay itway.
 STR_TIMETABLE_WAIT_TIME_TOOLTIP                                 :{BLACK}Angechay ethay amountway ofway imetay atthay ethay ighlightedhay orderway ouldshay aketay
 STR_TIMETABLE_CLEAR_TIME_TOOLTIP                                :{BLACK}Earclay ethay amountway ofway imetay orfay ethay ighlightedhay orderway
+STR_TIMETABLE_RESET_LATENESS_TOOLTIP                            :{BLACK}Esetray ethay atenesslay ountercay, osay ethay ehiclevay illway ebay onway imetay
 STR_SERVICE_HINT                                                :{BLACK}Ipskay isthay orderway unlessway away ervicesay isway eedednay
 STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Ostcay: {CURRENCY} Eightway: {WEIGHT_S}{}Eedspay: {VELOCITY}  Owerpay: {POWER}{}Unningray Ostcay: {CURRENCY}/yray{}Apacitycay: {CARGO}
 STR_885C_BROKEN_DOWN                                            :{RED}Okenbray ownday
@@ -2737,6 +2744,8 @@
 STR_886B_CAN_T_RENAME_TRAIN_VEHICLE                             :{WHITE}An'tcay enameray aintray ehiclevay ypetay...
 STR_886D_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Akemay ethay ighlightedhay orderway orcefay ethay ehiclevay otay umpday argocay
 STR_886F_TRANSFER                                               :{BLACK}Ansfertray
+STR_CLEAR_TIME                                                  :{BLACK}Angechay Imetay
+STR_RESET_LATENESS                                              :{BLACK}Esetray Atelay Ountercay
 
 STR_TRAIN_STOPPING                                              :{RED}Oppingstay
 STR_TRAIN_STOPPING_VEL                                          :{RED}Oppingstay, {VELOCITY}
@@ -2748,6 +2757,17 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Ewnay {STRING} ownay availableway!  -  {ENGINE}
 
+STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Ancay otnay imetabletay ehiclevay...
+STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Ehiclesvay ancay onlyway aitway atway ationsstay.
+STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Isthay ehiclevay isway otnay oppingstay atway isthay ationstay.
+STR_TIMETABLE_CHANGE_TIME                                       :{BLACK}Angechay Imetay
+STR_TIMETABLE_STATUS_ON_TIME                                    :Isthay ehiclevay isway urrentlycay unningray onway imetay
+STR_TIMETABLE_STATUS_LATE                                       :Isthay ehiclevay isway urrentlycay unningray {STRING} atelay
+STR_TIMETABLE_STATUS_EARLY                                      :Isthay ehiclevay isway urrentlycay unningray {STRING} earlyway
+STR_TIMETABLE_TOTAL_TIME                                        :Isthay imetabletay illway aketay {STRING} otay ompletecay
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Isthay imetabletay illway aketay atway eastlay {STRING} otay ompletecay (otnay allway imetabledtay)
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Autofillway
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Fill thIllfay ethay imetabletay automaticallyway ithway ethay aluesvay omfray ethay irstfay ourneyjay
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Oadray ehiclevay inway ethay ayway
@@ -2960,6 +2980,7 @@
 STR_GO_TO_AIRPORT_HANGAR                                        :Ogay otay {STATION} Angarhay
 SERVICE_AT_AIRPORT_HANGAR                                       :Ervicesay atway {STATION} Angarhay
 
+STR_TIMETABLE_TITLE                                             :{WHITE}{VEHICLE} (Imetabletay)
 
 ##id 0xB000
 STR_B000_ZEPPELIN_DISASTER_AT                                   :{BLACK}{BIGFONT}Eppelinzay isasterday atway {STATION}!
@@ -3276,6 +3297,7 @@
 STR_TRANSPARENT_BUILDINGS_DESC                                  :{BLACK}Oggletay ansparencytray orfay uildablesbay ikelay ationsstay, epotsday, aypointsway andway atenarycay
 STR_TRANSPARENT_BRIDGES_DESC                                    :{BLACK}Oggletay ansparencytray orfay idgesbray
 STR_TRANSPARENT_STRUCTURES_DESC                                 :{BLACK}Oggletay ansparencytray orfay ucturesstray ikelay ighthouseslay andway antennasway, aybemay inway uturefay orfay eyecandyway
+STR_TRANSPARENT_LOADING_DESC                                    :{BLACK}Oggletay ansparencytray orfay oadinglay indicatorsway
 
 
 ##### Mass Order
@@ -3314,4 +3336,5 @@
 STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR                         :{TINYFONT}{BLACK}Ofitpray isthay earyay: {GREEN}{CURRENCY} {BLACK}(astlay earyay: {RED}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Ofitpray isthay earyay: {RED}{CURRENCY} {BLACK}(astlay earyay: {RED}{CURRENCY}{BLACK})
 
+
 ########
--- a/src/lang/polish.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/polish.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1121,7 +1121,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Dostarcz ładunek na stację tylko jeśli jest zapotrzebowanie: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Pozwól budować bardzo długie mosty: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Zezwalaj na wysyłanie do zajezdni: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Pozwól budować przedsiębiorstwa produkujące surowce: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Pozwól na wiele podobnych przedsiębiorstw w mieście: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Przedsiębiorstwa jednego typu mogą być bud. obok siebie: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Zawsze pokazuj datę w długim formacie w pasku statusu: {ORANGE}{STRING}
@@ -1135,6 +1134,7 @@
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Nowe szukanie drogi (NPF, zastępuje NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Mnożnik wagi dla symulacji ciężkich pociągów towarowych: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD                            :{LTBLUE}Pozwól na budowę przystanków typu ro-ro na drogach miejskich: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS                            :{LTBLUE}Pozwól na budowę stacji przyległych do stacji przeciwnika (z CTRL): {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_SMALL_AIRPORTS                               :{LTBLUE}Zawsze zezwalaj budować małe lotniska: {ORANGE}{STRING}
 
@@ -1145,7 +1145,7 @@
 STR_CONFIG_PATCHES_ORDER_REVIEW_ON                              :wszystkich pojazdów
 STR_CONFIG_PATCHES_WARN_INCOME_LESS                             :{LTBLUE}Ostrzegaj, jeśli pociąg przynosi straty: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEVER_EXPIRE_VEHICLES                        :{LTBLUE}Pojazdy nigdy nie są wycofywane: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AUTORENEW_VEHICLE                            :{LTBLUE}Autoodnowienie pojazdu gdy staje się stary
+STR_CONFIG_PATCHES_AUTORENEW_VEHICLE                            :{LTBLUE}Autoodnawianie pojazdów gdy stają się stare
 STR_CONFIG_PATCHES_AUTORENEW_MONTHS                             :{LTBLUE}Autoodnowienie następuje {ORANGE}{STRING}{LTBLUE} miesięcy przed/po maks. wieku
 STR_CONFIG_PATCHES_AUTORENEW_MONEY                              :{LTBLUE}Min. ilość pieniędzy potrzebna do autoodnowienia: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ERRMSG_DURATION                              :{LTBLUE}Czas trwania komunikatu o błędzie: {ORANGE}{STRING} sekund{P a y ""}
@@ -1175,6 +1175,7 @@
 STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Automatycznie serwisuj helikoptery na lądowiskach: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR                       :{LTBLUE}Przyłącz okno narzędzi krajobrazu do okien środków transportu: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_REVERSE_SCROLLING                            :{LTBLUE}Przewijaj obraz myszką w przeciwnym kierunku: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING                             :{LTBLUE}Wygładź przesuwanie widoku: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MEASURE_TOOLTIP                              :{LTBLUE}Pokaż dymek z pomiarem podczas używania rożnych narzędzi: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LIVERIES                                     :{LTBLUE}Pokaż poboczne schematy koloru: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LIVERIES_NONE                                :Żadne
@@ -1186,8 +1187,21 @@
 STR_CONFIG_PATCHES_SCROLLWHEEL_SCROLL                           :Przesuń widok
 STR_CONFIG_PATCHES_SCROLLWHEEL_OFF                              :Rolka wyłączona
 STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER                       :{LTBLUE}Prędkość przesuwania widoku: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Automatycznie włącz pauzę tworząc nową grę: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Automatycznie włącz pauzę przy rozpoczęciu nowej gry: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}Używaj zaawansowanej listy pojazdów: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Pokazuj wskaźniki załadunku: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Uaktywnij rozkłady jazdy pojazdów: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Pokazuj rozkłady jazdy w tickach, a nie w dniach: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Domyślny typ torowiska (w nowej grze/po wczytaniu gry): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Normalne
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Elektryfikowane
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Jednoszynowe
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :MagLev
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Pierwszy dostępny
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Najnowszy
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Najczęściej używany
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Pokaż okno narzędzi do budowy nawet gdy nie ma odpowiednich pojazdów: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Maks. liczba pociągów na gracza: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Maks. liczba samochodów na gracza: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Maks. liczba samolotów na gracza: {ORANGE}{STRING}
@@ -1550,7 +1564,7 @@
 STR_NETWORK_CONNECTING_WAITING                                  :{BLACK}{NUM} klient{P "" ów ów} chce się przyłączyć
 STR_NETWORK_CONNECTING_DOWNLOADING                              :{BLACK}{NUM} / {NUM} kB dotąd pobranych
 
-STR_NETWORK_DISCONNECT                                          :{BLACK}Rozłączony
+STR_NETWORK_DISCONNECT                                          :{BLACK}Rozłącz
 
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Wprowadź ilość pieniędzy jaką chcesz przekazać
 STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Serwer jest chroniony. Wprowadź hasło
@@ -1705,6 +1719,7 @@
 STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS                         :Tory kolejowe z pre- i exit-sygnałami
 STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS                        :Tory kolejowe z pre- i combo-sygnałami
 STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS                       :Tory kolejowe z exit- i combo-sygnałami
+STR_MUST_REMOVE_RAILWAY_STATION_FIRST                           :{WHITE}Należy najpierw usunąć stację kolejową
 
 
 
@@ -1886,7 +1901,7 @@
 STR_3006_ADJOINS_MORE_THAN_ONE_EXISTING                         :{WHITE}Przylega do więcej niż jednej stacji
 STR_3007_TOO_MANY_STATIONS_LOADING                              :{WHITE}Za dużo stacji w tym mieście
 STR_3008_TOO_MANY_STATIONS_LOADING                              :{WHITE}Za duzo stacji
-STR_3008A_TOO_MANY_BUS_STOPS                                    :{WHITE}Za dużo  wiele przystankow autobusowych
+STR_3008A_TOO_MANY_BUS_STOPS                                    :{WHITE}Za dużo przystankow autobusowych
 STR_3008B_TOO_MANY_TRUCK_STOPS                                  :{WHITE}Za dużo  wiele stacji załadunku ciężarówek
 STR_3009_TOO_CLOSE_TO_ANOTHER_STATION                           :{WHITE}Zbyt  blisko innej stacji
 STR_300A_0                                                      :{WHITE}{STATION} {STATIONFEATURES}
@@ -2235,6 +2250,7 @@
 ############ range for difficulty settings ends
 
 STR_26816_NONE                                                  :Brak
+STR_NUM_VERY_LOW                                                :Bardzo mało
 STR_6816_LOW                                                    :Mało
 STR_6817_NORMAL                                                 :Średnio
 STR_6818_HIGH                                                   :Dużo
@@ -2735,6 +2751,12 @@
 STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT                             :Idź bez zatrzymywania do zajezdni w {TOWN}
 STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT                             :Idź bez zatrzymywania do serwisu w zajezdni w {TOWN}
 
+STR_TIMETABLE_GO_TO                                             :{STRING} {STRING}
+STR_TIMETABLE_TRAVEL_NOT_TIMETABLED                             :Przejazd (bez ustalonego czasu)
+STR_TIMETABLE_TRAVEL_FOR                                        :Przejazd przez {STRING}
+STR_TIMETABLE_STAY_FOR                                          :i zostań tam przez {STRING}
+STR_TIMETABLE_DAYS                                              :{COMMA} d{P zień ni ni}
+STR_TIMETABLE_TICKS                                             :{COMMA} tick{P "" i ów}
 
 STR_HEADING_FOR_TRAIN_DEPOT                                     :{ORANGE}Zmierza do zajezdni w {TOWN}
 STR_HEADING_FOR_TRAIN_DEPOT_VEL                                 :{ORANGE}Zmierza do zajezdni w {TOWN}, {VELOCITY}
@@ -2777,6 +2799,8 @@
 STR_REFIT                                                       :{BLACK}Przebuduj
 STR_REFIT_TIP                                                   :{BLACK}Wybierz do przewozu jakiego towaru przebudować pojazd w tym zadaniu. CTRL+klik usuwa polecenie przebudowy
 STR_REFIT_ORDER                                                 :(Przebuduj na {STRING})
+STR_TIMETABLE_VIEW                                              :{BLACK}Rozkład
+STR_TIMETABLE_VIEW_TOOLTIP                                      :{BLACK}Otwórz widok rozkładu jazdy
 STR_8829_ORDERS                                                 :{WHITE}{VEHICLE} (Polecenia)
 STR_882A_END_OF_ORDERS                                          :{SETX 10}- - Koniec poleceń - -
 STR_FULLLOAD_OR_SERVICE                                         :{SKIP}{SKIP}{STRING}
@@ -2793,6 +2817,7 @@
 STR_8833_CAN_T_INSERT_NEW_ORDER                                 :{WHITE}Nie można wstawić polecenia...
 STR_8834_CAN_T_DELETE_THIS_ORDER                                :{WHITE}Nie można usunąć tego polecenia...
 STR_8835_CAN_T_MODIFY_THIS_ORDER                                :{WHITE}Nie można zmodyfikować tego polecenia...
+STR_CAN_T_MOVE_THIS_ORDER                                       :{WHITE}Nie można przenieść tego zadania...
 STR_CAN_T_SKIP_ORDER                                            :{WHITE}Nie można pominąć obecnego zadania...
 STR_CAN_T_SKIP_TO_ORDER                                         :{WHITE}Nie można przejść do wybranego zadania...
 STR_8837_CAN_T_MOVE_VEHICLE                                     :{WHITE}Nie można ruszyć pojazdem...
@@ -2826,11 +2851,16 @@
 STR_8851_SHOW_CAPACITIES_OF_EACH                                :{BLACK}Pokaż pojemność każdego wagonu
 STR_8852_SHOW_TOTAL_CARGO                                       :{BLACK}Pokaż całkowitą pojemność pociągu, według typu ładunku
 STR_8852_ORDERS_LIST_CLICK_ON_ORDER                             :{BLACK}Lista poleceń - klik na poleceniu aby zaznaczyć. CTRL + klik przenosi do stacji
+STR_8853_SKIP_THE_CURRENT_ORDER                                 :{BLACK}Pomiń obecne zadanie, i rozpocznij kolejne. CTRL + klik pomija aż do zaznaczonego zadania
 STR_8854_DELETE_THE_HIGHLIGHTED                                 :{BLACK}Usuń podświetlone polecenie
 STR_8855_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Zrób z tego polecenia 'non-stop'
 STR_8856_INSERT_A_NEW_ORDER_BEFORE                              :{BLACK}Wstaw nowe polecenie na końcu listy lub przed zaznaczonym poleceniem
 STR_8857_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Spraw aby zaznaczone polecenie zmusiło pojazd do czekania na pełny załadunek
 STR_8858_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Spraw aby zaznaczone polecenie zmusiło pojazd do wyładunku
+STR_TIMETABLE_TOOLTIP                                           :{BLACK}Rozkład jazdy - kliknij na zadaniu aby je zaznaczyć.
+STR_TIMETABLE_WAIT_TIME_TOOLTIP                                 :{BLACK}Zmień ilość czasu którą zaznaczone zadanie powinno zająć
+STR_TIMETABLE_CLEAR_TIME_TOOLTIP                                :{BLACK}Usuń ilość czas przeznaczoną na zaznaczone zadanie
+STR_TIMETABLE_RESET_LATENESS_TOOLTIP                            :{BLACK}Wyzeruj licznik spóźnienia, aby pojazd podróżował zgodnie z rozkładem jazdy
 STR_SERVICE_HINT                                                :{BLACK}Pomiń to polecenie jesli serwis nie jest wymagany
 STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Koszt: {CURRENCY} Waga: {WEIGHT_S}{}Prędkość: {VELOCITY}  Moc: {POWER}{}Utrzymanie: {CURRENCY}/rok{}Pojemność: {CARGO}
 STR_885C_BROKEN_DOWN                                            :{RED}Awaria
@@ -2852,6 +2882,8 @@
 STR_886B_CAN_T_RENAME_TRAIN_VEHICLE                             :{WHITE}Nie można zmienić nazwy typu pojazdu...
 STR_886D_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Spraw by w zaznaczonym poleceniu pojazd był zmuszony do pozostawienia towaru dla kolejnego pojazdu
 STR_886F_TRANSFER                                               :{BLACK}Przewieź
+STR_CLEAR_TIME                                                  :{BLACK}Usuń czas
+STR_RESET_LATENESS                                              :{BLACK}Wyzeruj spóźnienia
 
 STR_TRAIN_STOPPING                                              :{RED}Hamowanie
 STR_TRAIN_STOPPING_VEL                                          :{RED}Hamowanie, {VELOCITY}
@@ -2863,6 +2895,17 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Dostępn{G y a e} now{G y a e} {STRING} - {ENGINE}!
 
+STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Nie można wyznaczyć rozkładu jazdy pojazdu...
+STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Pojazdy mogą czekać tylko na stacjach.
+STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Ten pojazd nie zatrzymuje się na tej stacji.
+STR_TIMETABLE_CHANGE_TIME                                       :{BLACK}Zmień czas
+STR_TIMETABLE_STATUS_ON_TIME                                    :Ten pojazd podróżuje teraz zgodnie z rozkładem jazdy
+STR_TIMETABLE_STATUS_LATE                                       :Ten pojazd jest teraz spóźniony o {STRING}
+STR_TIMETABLE_STATUS_EARLY                                      :Ten pojazd spieszy się teraz o {STRING}
+STR_TIMETABLE_TOTAL_TIME                                        :Ten rozkład jazdy zajmie {STRING}
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Ten rozkład jazdy zajmie przynajmniej {STRING} (nie wszystkie stacje są na rozkładzie)
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Autofill
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Wypełnij rozkład jazdy automatycznie wartościami z następnej podróży
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Samochód na drodze
@@ -3270,7 +3313,7 @@
 STR_RAIL_VEHICLES                                               :Kolej
 STR_ELRAIL_VEHICLES                                             :Kolej elektryczna
 STR_MONORAIL_VEHICLES                                           :Kolej jednoszynowa
-STR_MAGLEV_VEHICLES                                             :Kolej Maglev
+STR_MAGLEV_VEHICLES                                             :Kolej MagLev
 
 ############ End of list of rail types
 
@@ -3409,6 +3452,7 @@
 STR_GROUP_ALL_SHIPS                                             :Wszystkie statki
 STR_GROUP_ALL_AIRCRAFTS                                         :Wszystkie samoloty
 STR_GROUP_TINY_NUM                                              :{TINYFONT}{COMMA}
+STR_GROUP_ADD_SHARED_VEHICLE                                    :Dodaj poj. współdzielące
 STR_GROUP_REMOVE_ALL_VEHICLES                                   :Usuń wszystkie pojazdy
 
 STR_GROUP_TRAINS_CAPTION                                        :{WHITE}{GROUP} - {COMMA} Pociąg{P "" i ów}
@@ -3416,16 +3460,20 @@
 STR_GROUP_SHIPS_CAPTION                                         :{WHITE}{GROUP} - {COMMA} Stat{P ek ki ków}
 STR_GROUP_AIRCRAFTS_CAPTION                                     :{WHITE}{GROUP} - {COMMA} Samolot{P "" y ów}
 STR_GROUP_RENAME_CAPTION                                        :{BLACK}Zmień nazwę grupy
+STR_GROUP_REPLACE_CAPTION                                       :{WHITE}Zastąp pojazdy z "{GROUP}"
 
 STR_GROUP_CAN_T_CREATE                                          :{WHITE}Nie można stworzyć grupy...
 STR_GROUP_CAN_T_DELETE                                          :{WHITE}Nie można usunąć tej grupy...
 STR_GROUP_CAN_T_RENAME                                          :{WHITE}Nie można zmienić nazwy grupy...
 STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES                             :{WHITE}Nie można usunąć wszystkich pojazdów z tej grupy...
 STR_GROUP_CAN_T_ADD_VEHICLE                                     :{WHITE}Nie można dodać pojazdu do tej grupy...
+STR_GROUP_CAN_T_ADD_SHARED_VEHICLE                              :{WHITE}Nie można dodać pojazdów współdzielących polecenia do grupy...
 
+STR_GROUPS_CLICK_ON_GROUP_FOR_TIP                               :{BLACK}Grupy - Kliknij na grupie aby wyświetlić wszystkie pojazdy z grupy
 STR_GROUP_CREATE_TIP                                            :{BLACK}Kliknij aby stworzyć grupę
 STR_GROUP_DELETE_TIP                                            :{BLACK}Usuń zaznaczoną grupę
 STR_GROUP_RENAME_TIP                                            :{BLACK}Zmień nazwę zaznaczonej grupy
+STR_GROUP_REPLACE_PROTECTION_TIP                                :{BLACK}Kliknij, aby ochronić tę grupę przed globalną zamianą pojazdów
 
 STR_PROFIT_GOOD_THIS_YEAR_GOOD_LAST_YEAR                        :{TINYFONT}{BLACK}Zysk w tym roku: {GREEN}{CURRENCY} {BLACK}(w ostatnim roku: {GREEN}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_GOOD_LAST_YEAR                         :{TINYFONT}{BLACK}Zysk w tym roku: {RED}{CURRENCY} {BLACK}(w ostatnim roku: {GREEN}{CURRENCY}{BLACK})
@@ -3439,4 +3487,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Nazwa nie może się powtarzać
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Idź do następnej tablicy
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Idź do poprzedniej tablicy
+
 ########
--- a/src/lang/portuguese.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/portuguese.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -31,7 +31,7 @@
 STR_0016_WOOD                                                   :Madeira
 STR_0017_IRON_ORE                                               :Minério de Ferro
 STR_0018_STEEL                                                  :Aço
-STR_0019_VALUABLES                                              :Valores
+STR_0019_VALUABLES                                              :Bens Valiosos
 STR_001A_COPPER_ORE                                             :Minério de Cobre
 STR_001B_MAIZE                                                  :Milho
 STR_001C_FRUIT                                                  :Fruta
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Entregar carga a uma estação só quando houver procura: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Permitir a construção de pontes muito longas: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Permitir ordens de ir para o depósito: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Permitir construção de produções de matérias-primas: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Permitir várias indústrias semelhantes por cidade: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Indústrias do mesmo tipo podem ser construídas perto: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Mostrar sempre a data completa na barra de estado: {ORANGE}{STRING}
@@ -1101,7 +1100,15 @@
 STR_CONFIG_PATCHES_SCROLLWHEEL_OFF                              :Desligado
 STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER                       :{LTBLUE}Velocidade do scrollwheel no mapa: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Pausa automática ao iniciar um novo jogo: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Linha Normal
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Linha Electrificada
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Monorail
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Maglev
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Primeiro disponível
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Último disponível
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Mais utilizado
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Mostrar ferramentas de construção quando não estiverem disponíveis veículos adequeados: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Máximo de comboios por jogador: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Máximo de veículos de estrada por jogador: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Máximo de aeronaves por jogador: {ORANGE}{STRING}
@@ -1613,6 +1620,12 @@
 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_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS                       :Carris com sinais normais e pré-sinais
+STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS                      :Carris com sinais normais e de saída
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS                     :Carris com sinais normais e combinados
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS                         :Carris com pré-sinais e sinais de saída
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS                        :Carris com pré-sinais e sinais combinados
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS                       :Carris com sinais de saída e combinados
 STR_MUST_REMOVE_RAILWAY_STATION_FIRST                           :{WHITE}É preciso remover a estação primeiro
 
 
@@ -1621,20 +1634,34 @@
 STR_1801_MUST_REMOVE_ROAD_FIRST                                 :{WHITE}Deverá remover a estrada primeiro
 STR_ROAD_WORKS_IN_PROGRESS                                      :{WHITE}Trabalhos na estrada em curso
 STR_1802_ROAD_CONSTRUCTION                                      :{WHITE}Construir Estradas
+STR_1802_TRAMWAY_CONSTRUCTION                                   :{WHITE}Construção de eléctricos
 STR_1803_SELECT_ROAD_BRIDGE                                     :{WHITE}Seleccionar Ponte de Estrada
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION                        :{WHITE}... estradas de um sentido não podem ter junções
 STR_1804_CAN_T_BUILD_ROAD_HERE                                  :{WHITE}Não é possível construir estrada aqui...
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE                               :{WHITE}Não é possível construir carris para eléctricos neste local...
 STR_1805_CAN_T_REMOVE_ROAD_FROM                                 :{WHITE}Não é possível remover estrada daqui...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM                              :{WHITE}Não é possível remover carris para eléctricos deste local...
 STR_1806_ROAD_DEPOT_ORIENTATION                                 :{WHITE}Orientação do Depósito
+STR_1806_TRAM_DEPOT_ORIENTATION                                 :{WHITE}Orientação do depósito para eléctricos
 STR_1807_CAN_T_BUILD_ROAD_VEHICLE                               :{WHITE}Não é possível construir depósito de veículos de estrada aqui...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE                               :{WHITE}Não é possível construir depósito para eléctricos neste local...
 STR_1808_CAN_T_BUILD_BUS_STATION                                :{WHITE}Não é possível construir estação de autocarros...
 STR_1809_CAN_T_BUILD_TRUCK_STATION                              :{WHITE}Não é possível construir estação de carregamento de camiões...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION                     :{WHITE}Não é possível construir estação de passageiros para eléctricos...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION                         :{WHITE}Não é possível construir estação de carga para eléctricos...
 STR_180A_ROAD_CONSTRUCTION                                      :Construir estradas
+STR_180A_TRAMWAY_CONSTRUCTION                                   :Construção de carris para eléctricos
 STR_180B_BUILD_ROAD_SECTION                                     :{BLACK}Construir estradas
+STR_180B_BUILD_TRAMWAY_SECTION                                  :{BLACK}Construir secção de carris para eléctricos
 STR_180C_BUILD_ROAD_VEHICLE_DEPOT                               :{BLACK}Construir depósito (para criação e manutenção de veículos de estrada)
 STR_180D_BUILD_BUS_STATION                                      :{BLACK}Construir estação de autocarros
 STR_180E_BUILD_TRUCK_LOADING_BAY                                :{BLACK}Construir área de carregamento de camiões
+STR_180D_BUILD_PASSENGER_TRAM_STATION                           :{BLACK}Construir paragem de eléctricos para passageiros
+STR_180E_BUILD_CARGO_TRAM_STATION                               :{BLACK}Construir paragem de eléctricos para carga
 STR_180F_BUILD_ROAD_BRIDGE                                      :{BLACK}Construir ponte de estrada
+STR_180F_BUILD_TRAMWAY_BRIDGE                                   :{BLACK}Construir ponte para eléctricos
 STR_1810_BUILD_ROAD_TUNNEL                                      :{BLACK}Construir túnel de estrada
+STR_1810_BUILD_TRAMWAY_TUNNEL                                   :{BLACK}Construir túnel para eléctricos
 STR_1811_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Alternar entre construir/remover estradas
 STR_1813_SELECT_ROAD_VEHICLE_DEPOT                              :{BLACK}Seleccionar a orientação do depósito
 STR_1814_ROAD                                                   :Estrada
@@ -1644,6 +1671,7 @@
 STR_1818_ROAD_RAIL_LEVEL_CROSSING                               :Passagem de nível
 STR_CAN_T_REMOVE_BUS_STATION                                    :{WHITE}Impossível remover estação...
 STR_CAN_T_REMOVE_TRUCK_STATION                                  :{WHITE}Impossível remover estação...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION                         :{WHITE}Impossível remover paragem de eléctricos de passageiros
 
 ##id 0x2000
 STR_2000_TOWNS                                                  :{WHITE}Cidades
@@ -1870,6 +1898,7 @@
 STR_4007_GAME_SAVE_FAILED                                       :{WHITE}Falha ao Guardar Jogo{}{STRING}
 STR_4008_UNABLE_TO_DELETE_FILE                                  :{WHITE}Não é possível eliminar ficheiro
 STR_4009_GAME_LOAD_FAILED                                       :{WHITE}Falha ao Abrir Jogo{}{STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR                   :Erro interno: {STRING}
 STR_400A_LIST_OF_DRIVES_DIRECTORIES                             :{BLACK}Lista de unidades, directorias e ficheiros de jogos guardados
 STR_400B_CURRENTLY_SELECTED_NAME                                :{BLACK}Nome escolhido para guardar o jogo
 STR_400C_DELETE_THE_CURRENTLY_SELECTED                          :{BLACK}Eliminar o jogo guardado seleccionado
@@ -2041,8 +2070,6 @@
 STR_SV_STNAME_HELIPORT                                          :Heliporto de {STRING}
 STR_SV_STNAME_FOREST                                            :Floresta de {STRING}
 
-
-
 ############ end of savegame specific region!
 
 ##id 0x6800
@@ -2571,6 +2598,7 @@
 STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT                             :Ir sem parar para o depósito de {TOWN}
 STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT                             :Manutenção no depósito de {TOWN} sem parar
 
+STR_TIMETABLE_DAYS                                              :{COMMA} dia{P "" s}
 
 STR_HEADING_FOR_TRAIN_DEPOT                                     :{ORANGE}Dirige-se ao depósito de {TOWN}
 STR_HEADING_FOR_TRAIN_DEPOT_VEL                                 :{ORANGE}Dirige-se ao depósito de {TOWN}, {VELOCITY}
@@ -2739,6 +2767,7 @@
 STR_9026_ROAD_VEHICLE_SELECTION                                 :{BLACK}Lista de veículos de estrada - clique num veículo para informações
 STR_9027_BUILD_THE_HIGHLIGHTED_ROAD                             :{BLACK}Construir o veículo de estrada seleccionado
 STR_902A_COST_SPEED_RUNNING_COST                                :{BLACK}Custo: {CURRENCY}{}Velocidade: {VELOCITY}{}Custo de circulação: {CURRENCY}/ano{}Capacidade: {CARGO}
+STR_ARTICULATED_RV_CAPACITY                                     :{BLACK}Capacidade: {LTBLUE}
 STR_BARE_CARGO                                                  :{CARGO}
 
 STR_902C_NAME_ROAD_VEHICLE                                      :{WHITE}Renomear veículo de estrada
@@ -2832,7 +2861,7 @@
 STR_9841_CAN_T_REFIT_SHIP                                       :{WHITE}Não é possível adaptar barco...
 STR_9842_REFITTABLE                                             :(adaptável)
 STR_GO_TO_SHIP_DEPOT                                            :Ir para o depósito naval de {TOWN}
-SERVICE_AT_SHIP_DEPOT                                           :Manutenção no depósito de {TOWN}
+SERVICE_AT_SHIP_DEPOT                                           :Manutenção no estaleiro de {TOWN}
 
 ##id 0xA000
 STR_A000_AIRPORTS                                               :{WHITE}Aeroportos
@@ -3259,4 +3288,15 @@
 STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR                         :{TINYFONT}{BLACK}Lucro deste ano: {GREEN}{CURRENCY} {BLACK}(ano passado: {RED}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Lucro deste ano: {RED}{CURRENCY} {BLACK}(ano passado: {RED}{CURRENCY}{BLACK})
 
+STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
+STR_GROUP_NAME                                                  :{GROUP}
+STR_PLAYER_NAME                                                 :{PLAYERNAME}
+STR_SIGN_NAME                                                   :{SIGN}
+STR_VEHICLE_NAME                                                :{VEHICLE}
+
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Nome deve ser único
+
+#### Improved sign GUI
+
 ########
--- a/src/lang/romanian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/romanian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -315,16 +315,16 @@
 STR_0152_TOWN_DIRECTORY                                         :Lista cu orase
 STR_0153_SUBSIDIES                                              :Subventii
 
-STR_UNITS_IMPERIAL                                              :Imperial
-STR_UNITS_METRIC                                                :Metric
+STR_UNITS_IMPERIAL                                              :Imperiale
+STR_UNITS_METRIC                                                :Metrice
 STR_UNITS_SI                                                    :SI
 
 STR_UNITS_VELOCITY_IMPERIAL                                     :{COMMA} mph
 STR_UNITS_VELOCITY_METRIC                                       :{COMMA} km/h
 STR_UNITS_VELOCITY_SI                                           :{COMMA} m/s
 
-STR_UNITS_POWER_IMPERIAL                                        :{COMMA}hp
-STR_UNITS_POWER_METRIC                                          :{COMMA}hp
+STR_UNITS_POWER_IMPERIAL                                        :{COMMA}cp
+STR_UNITS_POWER_METRIC                                          :{COMMA}cp
 STR_UNITS_POWER_SI                                              :{COMMA}kW
 
 STR_UNITS_WEIGHT_SHORT_IMPERIAL                                 :{COMMA}t
@@ -343,8 +343,8 @@
 STR_UNITS_VOLUME_LONG_METRIC                                    :{COMMA} litri{P "" s}
 STR_UNITS_VOLUME_LONG_SI                                        :{COMMA} m³
 
-STR_UNITS_FORCE_IMPERIAL                                        :{COMMA}x10³ lbf
-STR_UNITS_FORCE_METRIC                                          :{COMMA} tone fortã
+STR_UNITS_FORCE_IMPERIAL                                        :{COMMA}x10³ livre-forţă
+STR_UNITS_FORCE_METRIC                                          :{COMMA} tone-forţă
 STR_UNITS_FORCE_SI                                              :{COMMA} kN
 
 ############ range for menu starts
@@ -472,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ã/Dezactiveazã afisarea numelor oraselor pe hartã
+STR_0197_TOGGLE_TOWN_NAMES_ON_OFF                               :{BLACK}Activeazã/Dezactivează afişarea numelor oraşelor pe hartă
 STR_0198_PROFIT_THIS_YEAR_LAST_YEAR                             :{TINYFONT}{BLACK}Profit anul acesta: {CURRENCY} (anul trecut: {CURRENCY})
 
 ############ range for service numbers starts
@@ -814,7 +814,7 @@
 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ăţi monetare
+STR_02E0_CURRENCY_UNITS                                         :{BLACK}Unitate monetară
 STR_02E1                                                        :{BLACK}{SKIP}{STRING}
 STR_02E2_CURRENCY_UNITS_SELECTION                               :{BLACK}Alege unitatea monetară
 STR_MEASURING_UNITS                                             :{BLACK}Unităţi de măsură
@@ -902,35 +902,35 @@
 STR_TOWNNAME_CATALAN                                            :Catalan
 ############ end of townname region
 
-STR_CURR_GBP                                                    :Lira sterlina (£)
+STR_CURR_GBP                                                    :Liră sterlină (£)
 STR_CURR_USD                                                    :Dolar ($)
 STR_CURR_EUR                                                    :Euro (€)
 STR_CURR_YEN                                                    :Yen japonez (¥)
-STR_CURR_ATS                                                    :Siling austriac (ATS)
+STR_CURR_ATS                                                    :Şiling austriac (ATS)
 STR_CURR_BEF                                                    :Franc belgian (BEF)
-STR_CURR_CHF                                                    :Franc elvetian (CHF)
-STR_CURR_CZK                                                    :Coroanã cehã (CZK)
-STR_CURR_DEM                                                    :Marca germana (DEM)
-STR_CURR_DKK                                                    :Coroanã danezã (DKK)
+STR_CURR_CHF                                                    :Franc elveţian (CHF)
+STR_CURR_CZK                                                    :Coroană cehă (CZK)
+STR_CURR_DEM                                                    :Marcă germană (DEM)
+STR_CURR_DKK                                                    :Coroană daneză (DKK)
 STR_CURR_ESP                                                    :Peseta (ESP)
-STR_CURR_FIM                                                    :Marcã finlandezã (FIM)
-STR_CURR_FRF                                                    :Franc (FRF)
-STR_CURR_GRD                                                    :Drahmã greceascã (GRD)
-STR_CURR_HUF                                                    :Forint (HUF)
-STR_CURR_ISK                                                    :Coroanã islandezã (ISK)
-STR_CURR_ITL                                                    :Lirã italianã (ITL)
+STR_CURR_FIM                                                    :Marcă finlandeză (FIM)
+STR_CURR_FRF                                                    :Franc francez (FRF)
+STR_CURR_GRD                                                    :Drahmă grecească (GRD)
+STR_CURR_HUF                                                    :Forinţ unguresc (HUF)
+STR_CURR_ISK                                                    :Coroană islandeză (ISK)
+STR_CURR_ITL                                                    :Liră italiană (ITL)
 STR_CURR_NLG                                                    :Gulden olandez (NLG)
-STR_CURR_NOK                                                    :Coroanã norvegianã (NOK)
-STR_CURR_PLN                                                    :Zlot (PLN)
+STR_CURR_NOK                                                    :Coroană norvegiană (NOK)
+STR_CURR_PLN                                                    :Zlot polonez (PLN)
 STR_CURR_ROL                                                    :Leu românesc (ROL)
-STR_CURR_RUR                                                    :Rublã ruseascã (RUR)
+STR_CURR_RUR                                                    :Rublă rusească (RUR)
 STR_CURR_SIT                                                    :Tolar Sloven (SIT)
-STR_CURR_SEK                                                    :Coroanã suedezã (SEK)
-STR_CURR_YTL                                                    :Lira Turceasca (YTL)
-STR_CURR_SKK                                                    :Coroana Slovaca (SKK)
+STR_CURR_SEK                                                    :Coroană suedeză (SEK)
+STR_CURR_YTL                                                    :Liră Turcească (YTL)
+STR_CURR_SKK                                                    :Coroană Slovacă (SKK)
 STR_CURR_BRR                                                    :Real Brazilian (BRL)
 
-STR_CURR_CUSTOM                                                 :Propriu...
+STR_CURR_CUSTOM                                                 :Personalizată...
 
 STR_OPTIONS_LANG                                                :{BLACK}Limba
 STR_OPTIONS_LANG_CBO                                            :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Livreazã marfa doar in statiile unde aceasta este ceruta: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Permite constructia de poduri foarte lungi: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Permite ordine de tipul "mergi la depou": {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Permite constructia de industrii pentru materii prime: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Permite mai multe industrii similare in acelasi oras: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industrii identice pot fi construite aproape una de cealaltã: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Afiseazã intotdeauna data in format lung in bara de stare: {ORANGE}{STRING}
@@ -2606,17 +2605,17 @@
 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ă şi preia încărcătura)
+STR_8807_GO_TO_TRANSFER                                         :Mergi la {STATION} (Preia încărcătura pentru transfer)
 STR_8808_GO_TO_UNLOAD                                           :Mergi la {STATION} (Descarcă)
-STR_8809_GO_TO_TRANSFER_UNLOAD                                  :Mergi la {STATION} (Transferă şi lasă descărcat)
+STR_8809_GO_TO_TRANSFER_UNLOAD                                  :Mergi la {STATION} (Descarcă încărcătura pentru transfer)
 STR_880A_GO_TO_LOAD                                             :Mergi la {STATION} (Încarcă)
-STR_880B_GO_TO_TRANSFER_LOAD                                    :Mergi la {STATION} (Transferă şi încarcă 100%)
+STR_880B_GO_TO_TRANSFER_LOAD                                    :Mergi la {STATION} (Aşteaptă 100% încărcătură pentru transfer)
 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_880D_GO_TO_NON_STOP_TRANSFER                                :Mergi fără oprire la {STATION} (Preia încărcătura pentru transfer)
 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_880F_GO_TO_NON_STOP_TRANSFER_UNLOAD                         :Mergi fără oprire la {STATION} (Descarcă încărcătura pentru transfer)
 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_8811_GO_TO_NON_STOP_TRANSFER_LOAD                           :Mergi fără oprire la {STATION} (Aşteaptă 100% încărcătură pentru transfer)
 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 fără oprire la Depoul {TOWN}
@@ -2752,7 +2751,7 @@
 STR_886A_RENAME_TRAIN_VEHICLE_TYPE                              :{WHITE}Redenumeste modelul vehiculului feroviar
 STR_886B_CAN_T_RENAME_TRAIN_VEHICLE                             :{WHITE}Nu pot redenumi modelul acestui vehicul...
 STR_886D_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Comanda selectatã forteazã vehiculul sã arunce încãrcãtura
-STR_886F_TRANSFER                                               :{BLACK}Transferã
+STR_886F_TRANSFER                                               :{BLACK}Transferă
 STR_CLEAR_TIME                                                  :{BLACK}Curata timp
 STR_RESET_LATENESS                                              :{BLACK}Reinitializeaza contorul de intarziere
 
@@ -3084,15 +3083,15 @@
 STR_NEWGRF_DISABLED_WARNING                                     :{WHITE}Fisierele GRF lipsa au fost dezactivate
 STR_NEWGRF_NOT_FOUND_WARNING                                    :{WHITE}Fisierele GRF lipsa pentru permiterea incarcarii jocului
 
-STR_CURRENCY_WINDOW                                             :{WHITE}Moneda proprie
+STR_CURRENCY_WINDOW                                             :{WHITE}Monedă proprie
 STR_CURRENCY_EXCHANGE_RATE                                      :{LTBLUE}Curs de schimb: {ORANGE}{CURRENCY} = £ {COMMA}
 STR_CURRENCY_SEPARATOR                                          :{LTBLUE}Separator:
 STR_CURRENCY_PREFIX                                             :{LTBLUE}Prefix:
 STR_CURRENCY_SUFFIX                                             :{LTBLUE}Sufix:
-STR_CURRENCY_SWITCH_TO_EURO                                     :{LTBLUE}Adera la Euro: {ORANGE}{NUM}
-STR_CURRENCY_SWITCH_TO_EURO_NEVER                               :{LTBLUE}Adera la Euro: {ORANGE}niciodata
+STR_CURRENCY_SWITCH_TO_EURO                                     :{LTBLUE}Aderă la Euro: {ORANGE}{NUM}
+STR_CURRENCY_SWITCH_TO_EURO_NEVER                               :{LTBLUE}Aderă la Euro: {ORANGE}niciodată
 STR_CURRENCY_PREVIEW                                            :{LTBLUE}Previzualizare: {ORANGE}{CURRENCY}
-STR_CURRENCY_CHANGE_PARAMETER                                   :{BLACK}Schimba un parametru al monedei proprii
+STR_CURRENCY_CHANGE_PARAMETER                                   :{BLACK}Schimbă un parametru al monedei proprii
 
 STR_TRAIN                                                       :{BLACK}{TRAIN}
 STR_BUS                                                         :{BLACK}{BUS}
@@ -3358,4 +3357,6 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Numele trebuie să fie unic
+
 ########
--- a/src/lang/russian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/russian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1036,7 +1036,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Поставлять груз на станцию, только если на него был спрос: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Разрешить строительство очень длинных мостов: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Депо можно добавить в маршрут: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Разрешить строительство сырьевых предприятий: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Способ создания сырьевых предприятий: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :не создавать
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :как и остальные
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :геологоразведка
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Разрешить несколько предприятий одного типа на город: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Одинаковые предприятия могут быть рядом друг с другом: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Всегда полная дата в панели состояния: {ORANGE}{STRING}
@@ -1117,6 +1120,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Посл. доступн.
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Наиб. исп.
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Показывать окно покупки когда нет доступного транспорта: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Максимальное количество поездов на игрока: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Максимальное количество автотранспорта на игрока: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Максимальное количество авиатранспорта на игрока: {ORANGE}{STRING}
@@ -2786,6 +2790,8 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :Этот транспорт приходит вовремя
 STR_TIMETABLE_STATUS_LATE                                       :Этот транспорт приходит на  {STRING} позже
 STR_TIMETABLE_STATUS_EARLY                                      :Этот транспорт приходит на  {STRING} раньше
+STR_TIMETABLE_TOTAL_TIME                                        :Выполнение этого расписания займет {STRING}
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Выполнение этого расписания займет не менее {STRING} (не все просчитано)
 STR_TIMETABLE_AUTOFILL                                          :{BLACK}Автомат.
 STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Заполнить расписание автоматически данными из первой поездки
 
@@ -2889,7 +2895,7 @@
 STR_HEADING_FOR_SHIP_DEPOT_SERVICE                              :{LTBLUE}Обслуж. в доке {TOWN}
 STR_HEADING_FOR_SHIP_DEPOT_SERVICE_VEL                          :{LTBLUE}Обслуж. в доке {TOWN}, {VELOCITY}
 STR_981C_SHIP_IS_WAITING_IN_DEPOT                               :{WHITE}Корабль {COMMA} ожидает в доке
-STR_981D_BUILD_SHIP_DOCK                                        :{BLACK}Построить док
+STR_981D_BUILD_SHIP_DOCK                                        :{BLACK}Построить пристань
 STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING                          :{BLACK}Построить док (для строительства и обслуживания кораблей)
 STR_981F_SHIPS_CLICK_ON_SHIP_FOR                                :{BLACK}Корабли - нажмите для получения справки
 STR_9820_BUILD_NEW_SHIP                                         :{BLACK}Построить новый корабль
@@ -3369,4 +3375,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Имя должно быть уникальным
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}К следующему знаку
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}К предыдущему знаку
+
 ########
--- a/src/lang/simplified_chinese.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/simplified_chinese.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -3,6 +3,8 @@
 ##isocode zh_CN
 ##plural 1
 
+#
+
 ##id 0x0000
 STR_NULL                                                        :
 STR_0001_OFF_EDGE_OF_MAP                                        :{WHITE}超过地图边界
@@ -776,6 +778,7 @@
 STR_02C5_DIFFICULTY_SETTINGS                                    :难度设定
 STR_02C7_CONFIG_PATCHES                                         :配置补丁
 STR_NEWGRF_SETTINGS                                             :NewGRF 设置
+STR_TRANSPARENCY_OPTIONS                                        :透明选项
 STR_GAMEOPTMENU_0A                                              :
 STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}显示城镇名称
 STR_02CC_STATION_NAMES_DISPLAYED                                :{SETX 12}显示车站名称
@@ -803,7 +806,6 @@
 STR_02DE_MAP_OF_WORLD                                           :世界地图
 STR_EXTRA_VIEW_PORT                                             :额外视点
 STR_SIGN_LIST                                                   :标志列表
-STR_TRANSPARENCY_OPTIONS                                        :透明选项
 STR_02DF_TOWN_DIRECTORY                                         :城镇地图
 STR_TOWN_POPULATION                                             :{BLACK}世界人口:{COMMA}
 STR_EXTRA_VIEW_PORT_TITLE                                       :{WHITE}视点 {COMMA}
@@ -1032,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}仅在车站接受此货物时卸货:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}允许建造超长桥梁:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}允许前往车库的计划任务:{ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}允许建设生产自然资源的工业设施:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}允许在一个城镇中建设多个同类工业设施:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}工业设施可以相邻:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}永远在状态栏中显示长日期:{ORANGE}{STRING}
@@ -1130,6 +1131,8 @@
 STR_CONFIG_PATCHES_ALLOW_SHARES                                 :{LTBLUE}允许购买其他公司的股份
 STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY                         :{LTBLUE}当拖动的时候每 {ORANGE}{STRING} 个地块放置一个信号灯
 STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE                  :{LTBLUE}在 {ORANGE}{STRING} 前自动设置旗帜信号
+
+
 STR_CONFIG_PATCHES_TOOLBAR_POS                                  :{LTBLUE}主工具栏位置:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT                             :左侧
 STR_CONFIG_PATCHES_TOOLBAR_POS_CENTER                           :中央
@@ -2529,6 +2532,13 @@
 STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT                             :前往(不停) {TOWN} 车库
 STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT                             :在 {TOWN} 车库保养(不停)
 
+STR_TIMETABLE_GO_TO                                             :{STRING} {STRING}
+STR_TIMETABLE_TRAVEL_NOT_TIMETABLED                             :旅行 (无时间表)
+STR_TIMETABLE_TRAVEL_FOR                                        :前往 {STRING} 旅行
+STR_TIMETABLE_STAY_FOR                                          :并且在 {STRING} 停留
+STR_TIMETABLE_DAYS                                              :{COMMA} 天
+STR_TIMETABLE_TICKS                                             :{COMMA} 个标记
+
 STR_HEADING_FOR_TRAIN_DEPOT                                     :{ORANGE}正在前往 {TOWN} 车库
 STR_HEADING_FOR_TRAIN_DEPOT_VEL                                 :{ORANGE}正在前往 {TOWN} 车库,{VELOCITY}
 STR_HEADING_FOR_TRAIN_DEPOT_SERVICE                             :{LTBLUE}在 {TOWN} 车库保养
@@ -2570,6 +2580,8 @@
 STR_REFIT                                                       :{BLACK}改装
 STR_REFIT_TIP                                                   :{BLACK}选择要在调度计划中改装的货物类型。CTRL+单击可以去掉说明。
 STR_REFIT_ORDER                                                 :(改装为 {STRING})
+STR_TIMETABLE_VIEW                                              :{BLACK}时间表
+STR_TIMETABLE_VIEW_TOOLTIP                                      :{BLACK}切换到时间表视图
 STR_8829_ORDERS                                                 :{WHITE}{VEHICLE} (调度计划)
 STR_882A_END_OF_ORDERS                                          :{SETX 10}-- 调度计划结束 --
 STR_FULLLOAD_OR_SERVICE                                         :{SKIP}{SKIP}{STRING}
@@ -2586,6 +2598,9 @@
 STR_8833_CAN_T_INSERT_NEW_ORDER                                 :{WHITE}不能插入新的调度计划……
 STR_8834_CAN_T_DELETE_THIS_ORDER                                :{WHITE}不能删除调度计划……
 STR_8835_CAN_T_MODIFY_THIS_ORDER                                :{WHITE}不能执行这个命令……
+STR_CAN_T_MOVE_THIS_ORDER                                       :{WHITE}不能移动这条命令…
+STR_CAN_T_SKIP_ORDER                                            :{WHITE}不能跳过当前命令…
+STR_CAN_T_SKIP_TO_ORDER                                         :{WHITE}不能跳转到选定的命令...
 STR_8837_CAN_T_MOVE_VEHICLE                                     :{WHITE}不能移动这项调度计划……
 STR_REAR_ENGINE_FOLLOW_FRONT_ERROR                              :{WHITE}尾部的列车引擎必须和头部的一起写作……
 STR_8838_N_A                                                    :N/A{SKIP}
@@ -2617,11 +2632,16 @@
 STR_8851_SHOW_CAPACITIES_OF_EACH                                :{BLACK}显示列车的运载能力
 STR_8852_SHOW_TOTAL_CARGO                                       :{BLACK}根据不同的挂车种类显示相应的总运力
 STR_8852_ORDERS_LIST_CLICK_ON_ORDER                             :{BLACK}调度列表 - 单击一个调度指令可以使之高亮化. CTRL + 单击可以将视点移动到相应的车站
+STR_8853_SKIP_THE_CURRENT_ORDER                                 :{BLACK}跳过当前命令并执行下一条命令。CTRL并单击可以跳过选定的命令
 STR_8854_DELETE_THE_HIGHLIGHTED                                 :{BLACK}删除高亮的调度命令
 STR_8855_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}命令铁车在高亮的指令对应的车站不停车
 STR_8856_INSERT_A_NEW_ORDER_BEFORE                              :{BLACK}在调度列表的结尾或高亮项目的前面增加一条新指令
 STR_8857_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}命令列车在高亮项目对应的车站装满货物
 STR_8858_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}命令列车在高亮项目对应的车站卸载货物
+STR_TIMETABLE_TOOLTIP                                           :{BLACK}时间表 - 单击一个命令可以使其高亮。
+STR_TIMETABLE_WAIT_TIME_TOOLTIP                                 :{BLACK}改变高亮选择的命令执行的时间
+STR_TIMETABLE_CLEAR_TIME_TOOLTIP                                :{BLACK}清除高亮选择的命令的执行时间
+STR_TIMETABLE_RESET_LATENESS_TOOLTIP                            :{BLACK}重置晚点计数器,从而使车辆准时到达
 STR_SERVICE_HINT                                                :{BLACK}除非需要在此处保养,否则跳过这一项目
 STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}费用:{CURRENCY} 重量:{WEIGHT_S}{}速度:{VELOCITY}  功率:{POWER}{}运行费用:{CURRENCY}/yr{}Capacity: {CARGO}
 STR_885C_BROKEN_DOWN                                            :{RED}抛锚
@@ -2643,6 +2663,8 @@
 STR_886B_CAN_T_RENAME_TRAIN_VEHICLE                             :{WHITE}不能重命名车辆的类型...
 STR_886D_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}命令列车在高亮指令对应的车站寄存货物
 STR_886F_TRANSFER                                               :{BLACK}联运
+STR_CLEAR_TIME                                                  :{BLACK}清除时间
+STR_RESET_LATENESS                                              :{BLACK}清除晚点计数器
 
 STR_TRAIN_STOPPING                                              :{RED}正在停止
 STR_TRAIN_STOPPING_VEL                                          :{RED}正在停止,{VELOCITY}
@@ -2654,6 +2676,18 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}新 {STRING} 上市了!  -  {ENGINE}
 
+STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}不能给车辆编制时间表…
+STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}车辆只能在站内等候。
+STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}此车辆将不在本站停靠。
+STR_TIMETABLE_CHANGE_TIME                                       :{BLACK}改变时间
+STR_TIMETABLE_STATUS_ON_TIME                                    :该车辆目前正点运行
+STR_TIMETABLE_STATUS_LATE                                       :该车辆目前晚点 {STRING}
+STR_TIMETABLE_STATUS_EARLY                                      :该车辆目前提前 {STRING}
+STR_TIMETABLE_TOTAL_TIME                                        :该时间表需要 {STRING} 完成
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :该时间表至少需要 {STRING} 完成(并非全部计划的时间)
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}自动填充
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}以第一次运行的时间来填充时间表
+
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}指定的位置有汽车
 STR_9001_ROAD_VEHICLES                                          :{WHITE}{COMPANY} - {COMMA} 汽车
@@ -2695,6 +2729,7 @@
 STR_9026_ROAD_VEHICLE_SELECTION                                 :{BLACK}汽车列表 - 点击可以查看详细信息
 STR_9027_BUILD_THE_HIGHLIGHTED_ROAD                             :{BLACK}购买高亮的汽车
 STR_902A_COST_SPEED_RUNNING_COST                                :{BLACK}价格:{CURRENCY}{}速度:{VELOCITY}{}运行成本:{CURRENCY}/年{}装载能力:{CARGO}
+STR_ARTICULATED_RV_CAPACITY                                     :{BLACK}运力: {LTBLUE}
 
 STR_902C_NAME_ROAD_VEHICLE                                      :{WHITE}命名汽车
 STR_902D_CAN_T_NAME_ROAD_VEHICLE                                :{WHITE}不能命名汽车……
@@ -2861,6 +2896,7 @@
 STR_GO_TO_AIRPORT_HANGAR                                        :前往 {STATION} 机库
 SERVICE_AT_AIRPORT_HANGAR                                       :在 {STATION} 机库保养
 
+
 ##id 0xB000
 STR_B000_ZEPPELIN_DISASTER_AT                                   :{BLACK}{BIGFONT}齐柏林飞艇在 {STATION} 失事!
 STR_B001_ROAD_VEHICLE_DESTROYED                                 :{BLACK}{BIGFONT}汽车被 'UFO' 炸毁!
@@ -3173,3 +3209,16 @@
 STR_TRANSPARENT_BUILDINGS_DESC                                  :{BLACK}调节车站、码头及路点等的透明度
 STR_TRANSPARENT_BRIDGES_DESC                                    :{BLACK}调节桥梁的透明度
 STR_TRANSPARENT_STRUCTURES_DESC                                 :{BLACK}调节灯塔及信号发射塔的透明度
+
+
+##### Mass Order
+
+
+
+
+
+
+
+#### Improved sign GUI
+
+########
--- a/src/lang/slovak.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/slovak.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1098,7 +1098,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Vykladat tovar len v stanici kde je dopyt: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Umoznit stavbu dlhych mostov: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Umoznit zaradenie depa do zoznamu prikazov: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Umoznit vystavbu priemyslu produkujuceho suroviny: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Sposob výstavby priemyslu produkujúceho suroviny: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :žiadny
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :rovnaký ako ostatný priemysel
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :vyhladávací
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Umoznit viac priemyslu rovnakeho typu v jednom meste: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Rovnaky priemysel moze byt stavany blizko seba: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Zobrazit dlhy format datumu v stavovej liste: {ORANGE}{STRING}
@@ -1179,6 +1182,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Posledné dostupné
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Najcastejsie používané
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Zobrazit nástroje výstavby ak nie sú dostupné žiadne vhodné vozidlá: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Maximalny pocet vlakov hraca: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Maximalny pocet automobilov hraca: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Maximalny pocet lietadiel hraca: {ORANGE}{STRING}
@@ -3422,4 +3426,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Meno musí byt jedinecné
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Prejst na dalsiu znacku
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Prejst na predchádzajúcu znacku
+
 ########
--- a/src/lang/slovenian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/slovenian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1076,7 +1076,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Dostavi tovor postaji le ob povpraševanju: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Dovoli gradnjo zelo dolgih mostov: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Dovoli ukaz 'pojdi v garažo': {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Dovoli gradnjo industrije surovin: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Dovoli več enakih industrij na mesto: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industrije enakega tipa lahko stojijo skupaj: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Vedno pokaži dolg datum v vrstici stanja: {ORANGE}{STRING}
@@ -1148,7 +1147,16 @@
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Uporabi pregledno polnenje: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Omogoči časovne tabele vozil: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Prikaz časovnih tabel v pikah namesto dneh: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Privzeta vrsta železnice (ob zagonu nove igre): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Normalna železnica
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Electrificirana železnica
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Enotirna železnica
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Magnetna železnica
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Prvi/a/o/ na izbiro
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Zadnji/a/o/ na izbiro
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Najbolj uporabljan/a/o
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Prikaz gradbenih orodij, ko ni primernih vozil na izbiro: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Največ vlakov na igralca: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Največ cestnih vozil na igralca: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Največ letal na igralca: {ORANGE}{STRING}
@@ -2162,8 +2170,7 @@
 STR_SV_STNAME_LOWER                                             :Dolnja {STRING}
 STR_SV_STNAME_HELIPORT                                          :{STRING} Pristajališče
 STR_SV_STNAME_FOREST                                            :{STRING} Gozd
-
-
+STR_SV_STNAME_FALLBACK                                          :{STRING} Postaja #{NUM}
 
 ############ end of savegame specific region!
 
@@ -2846,6 +2853,10 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :To vozilo trenutno vozi po točnem času
 STR_TIMETABLE_STATUS_LATE                                       :To vozilo zamuja za  {STRING} .
 STR_TIMETABLE_STATUS_EARLY                                      :To vozilo prehiteva za {STRING} .
+STR_TIMETABLE_TOTAL_TIME                                        :Ta časovna tabela bo trajala {STRING} do zaključka
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Ta časovna tabela bo trajala vsaj {STRING} do zaključka (ni vse zajeto v tabeli)
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Samodejno
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Napolni tabelo samodejno z vrednostmi iz prvega potovanja
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Cestno vozilo na poti
@@ -3420,5 +3431,17 @@
 STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR                         :{TINYFONT}{BLACK}Dobiček letos: {GREEN}{CURRENCY} {BLACK}(lani: {RED}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Dobiček letos: {RED}{CURRENCY} {BLACK}(lani: {RED}{CURRENCY}{BLACK})
 
+STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
+STR_GROUP_NAME                                                  :{GROUP}
+STR_PLAYER_NAME                                                 :{PLAYERNAME}
+STR_SIGN_NAME                                                   :{SIGN}
+STR_VEHICLE_NAME                                                :{VEHICLE}
+
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Ime mora biti edinstveno
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Pojdi na naslednjo oznako
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Pojdi na  predhodno oznako
 
 ########
--- a/src/lang/spanish.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/spanish.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1009,7 +1009,7 @@
 # end of order system
 
 STR_TRAIN_AUTORENEW_FAILED                                      :{WHITE}Auto renovar ha fallado con el tren {COMMA} (límite de dinero)
-STR_ROADVEHICLE_AUTORENEW_FAILED                                :{WHITE}AAuto renovar ha fallado con el vehículo de carretera {COMMA} (límite de dinero)
+STR_ROADVEHICLE_AUTORENEW_FAILED                                :{WHITE}Auto renovar ha fallado con el vehículo de carretera {COMMA} (límite de dinero)
 STR_SHIP_AUTORENEW_FAILED                                       :{WHITE}Auto renovar ha fallado con el barco {COMMA} (límite de dinero)
 STR_AIRCRAFT_AUTORENEW_FAILED                                   :{WHITE}Auto renovar ha fallado con la aeronave {COMMA} (límite de dinero)
 STR_TRAIN_TOO_LONG_AFTER_REPLACEMENT                            :{WHITE}El tren {COMMA} es demasiado largo tras el cambio
@@ -1035,7 +1035,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Entregar mercancía a una estación sólo si hay demanda: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Permitir la construcción de puentes muy largos: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Permitir órdenes de ir a depósito: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Construcción de material en bruto usando industrias: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Método de construcción de industria primaria: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :ninguno
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :como las otras industrias
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospección
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Construcción de más de una industria similar por población: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industrias mismo tipo pueden construirse unas junto a otras: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Mostrar siempre fecha larga en la barra de estado: {ORANGE}{STRING}
@@ -1107,15 +1110,16 @@
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Usar indicadores de carga: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Activar horarios para vehículos: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Mostrar horario en ticks en vez de en dias: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Tipo de rail por defecto (después de juego nuevo/cargar juego): {ORANGE}{STRING}
-STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Rail Normal
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Rail por defecto (juego nuevo/cargar juego): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Rail normal
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Rail Electrificado
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Monorail
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Maglev
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Primero disponible
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Último disponible
-STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Más usados
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Más usado
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Herramientas de construcción aún sin vehículos apropiados: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Máx trenes por jugador: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Máx vehículos de carretera por jugador: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Máx aeroplanos por jugador: {ORANGE}{STRING}
@@ -1608,7 +1612,7 @@
 STR_1013_CAN_T_REMOVE_SIGNALS_FROM                              :{WHITE}No se pueden retirar señales de aquí...
 STR_1014_TRAIN_DEPOT_ORIENTATION                                :{WHITE}Orientación del depósito
 STR_1015_RAILROAD_CONSTRUCTION                                  :Construcción de ferrocarril
-STR_TOOLB_ELRAIL_CONSTRUCTION                                   :Construcción Línea Eléctrica de Ferrocarril
+STR_TOOLB_ELRAIL_CONSTRUCTION                                   :Construcción línea eléctrica de ferrocarril
 STR_1016_MONORAIL_CONSTRUCTION                                  :Construcción de monorraíl
 STR_1017_MAGLEV_CONSTRUCTION                                    :Construcción de maglev
 STR_1018_BUILD_RAILROAD_TRACK                                   :{BLACK}Construir tramo de ferrocarril
@@ -2755,7 +2759,7 @@
 STR_886D_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Hacer que la orden marcada fuerce al vehículo a descargar
 STR_886F_TRANSFER                                               :{BLACK}Transferir
 STR_CLEAR_TIME                                                  :{BLACK}Limpiar Horario
-STR_RESET_LATENESS                                              :{BLACK}Resetear Contador de Retrasos
+STR_RESET_LATENESS                                              :{BLACK}Resetear Retrasos
 
 STR_TRAIN_STOPPING                                              :{RED}Parándose
 STR_TRAIN_STOPPING_VEL                                          :{RED}Parándose, {VELOCITY}
@@ -2776,7 +2780,7 @@
 STR_TIMETABLE_STATUS_EARLY                                      :Este vehículo está actualmente {STRING} adelantado
 STR_TIMETABLE_TOTAL_TIME                                        :Los horarios tomarán  {STRING} para completarse
 STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Estos horarios tomarán {STRING} para completarse (no todos los horarios)
-STR_TIMETABLE_AUTOFILL                                          :{BLACK}Asignar automáticamente
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Automático
 STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Asigna automáticamente la tabla de horarios con los valores del primer viaje
 
 ##id 0x9000
@@ -3183,7 +3187,7 @@
 ############ Lists rail types
 
 STR_RAIL_VEHICLES                                               :Vehículos de rail
-STR_ELRAIL_VEHICLES                                             :Vehícules de Rail Eléctrico
+STR_ELRAIL_VEHICLES                                             :Vehículos de Rail Eléctrico
 STR_MONORAIL_VEHICLES                                           :Vehículos monorail
 STR_MAGLEV_VEHICLES                                             :Vehículos de Lev. Mag.
 
@@ -3352,7 +3356,17 @@
 STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR                         :{TINYFONT}{BLACK}Beneficio este año: {GREEN}{CURRENCY} {BLACK}(año pasado: {RED}{CURRENCY}{BLACK})
 STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR                          :{TINYFONT}{BLACK}Beneficio este año: {RED}{CURRENCY} {BLACK}(año pasado: {RED}{CURRENCY}{BLACK})
 
+STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
 STR_GROUP_NAME                                                  :{GROUP}
+STR_PLAYER_NAME                                                 :{PLAYERNAME}
+STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}El nombre debe ser único
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Ir a la siguiente señal
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Ir a la señal anterior
+
 ########
--- a/src/lang/swedish.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/swedish.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Leverera gods till en station enbart om någon frågar efter det: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Tillåt väldigt långa broar: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Tillåt order att gå till depå/bussgarage: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Tillåt byggnation av råmaterialsproducerande industrier: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Tillåt flera industrier av samma typ per stad: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industrier av samma typ kan byggas nära varandra: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Visa alltid långt datum i statusfältet: {ORANGE}{STRING}
@@ -1115,6 +1114,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Sista tillgängliga
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Mest använd
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Visa byggnationsverktygen när det ej finns några passande fordon tillgängligt: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Max antal tåg per spelare: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Max antal vägfordon per spelare: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Max antal flygplan per spelare: {ORANGE}{STRING}
@@ -3358,4 +3358,8 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Namnet måste vara unikt
+
+#### Improved sign GUI
+
 ########
--- a/src/lang/traditional_chinese.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/traditional_chinese.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1034,7 +1034,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}有需求才向車站供貨:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}提高橋樑長度限制:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}可以下「到維修廠」指令:{ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}可以興建原物料工業:{ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}變更基礎工業的設立方式:{ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :無
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :與其他工業相同
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :探勘
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}每個市鎮可擁有多個同類型工業:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}同類型工業興建距離不受限制:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}永遠於狀態列顯示長日期:{ORANGE}{STRING}
@@ -1115,6 +1118,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :最新誕生的
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :最常使用的
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}即使沒有適合的運具可使用也顯示建造工具:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}每位玩家可擁有列車數目:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}每位玩家可擁有車輛數目:{ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}每位玩家可擁有飛機數目:{ORANGE}{STRING}
@@ -2230,7 +2234,7 @@
 STR_7039_VEHICLES                                               :{GOLD}運具:
 STR_TRAINS                                                      :{WHITE}列車 {COMMA} 列
 STR_ROAD_VEHICLES                                               :{WHITE}汽車 {COMMA} 輛
-STR_AIRCRAFT                                                    :{WHITE}{COMMA} 飛機
+STR_AIRCRAFT                                                    :{WHITE}飛機 {COMMA} 架
 STR_SHIPS                                                       :{WHITE}船舶 {COMMA} 艘
 STR_7042_NONE                                                   :{WHITE}無
 STR_7043_FACE_SELECTION                                         :{WHITE}選擇面孔
@@ -2773,6 +2777,8 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :此運具目前準點
 STR_TIMETABLE_STATUS_LATE                                       :此運具目前慢了 {STRING}
 STR_TIMETABLE_STATUS_EARLY                                      :此運具目前早了 {STRING}
+STR_TIMETABLE_TOTAL_TIME                                        :完成這份時刻表需時 {STRING}
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :這份時刻表至少需要 {STRING} 來完成 (此表尚未完成)
 STR_TIMETABLE_AUTOFILL                                          :{BLACK}自動製表
 STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}自動地將第一次的路程列為時刻表
 
@@ -2958,7 +2964,7 @@
 STR_A024_CENTER_MAIN_VIEW_ON_HANGAR                             :{BLACK}將主視野帶到機棚位置
 STR_A025_AIRCRAFT_SELECTION_LIST                                :{BLACK}飛機清單 - 點選飛機檢視詳細資料
 STR_A026_BUILD_THE_HIGHLIGHTED_AIRCRAFT                         :{BLACK}購買選定的飛機
-STR_A027_CURRENT_AIRCRAFT_ACTION                                :{BLACK}目前非機動作 - 按此可停止/起動飛機
+STR_A027_CURRENT_AIRCRAFT_ACTION                                :{BLACK}目前飛機動作 - 按此可停止/起動飛機
 STR_A028_SHOW_AIRCRAFT_S_ORDERS                                 :{BLACK}顯示飛機的指令
 STR_A029_CENTER_MAIN_VIEW_ON_AIRCRAFT                           :{BLACK}將主視野帶到飛機位置
 STR_A02A_SEND_AIRCRAFT_TO_HANGAR                                :{BLACK}將飛機送到機棚。按住 CTRL 點選則只做維護
@@ -3356,4 +3362,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}名稱必須是唯一的
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}前往下一個標誌
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}前往前一個標誌
+
 ########
--- a/src/lang/turkish.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/turkish.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -1034,7 +1034,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Sadece istek varsa kargo kabul edilsin: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Çok uzun köprülere izin ver: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Garaja git talimati etkin: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Hammadde üreten tesisleri açmak izinli: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Bir şehirde birden fazla aynı fabrika olması izinli: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Aynı tür fabrikalar yan yana yapılabilir: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Durum çubuğunda uzun tarih göster: {ORANGE}{STRING}
@@ -1089,6 +1088,7 @@
 STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Helikopterler helipadlerde otomatik servise girsin: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR                       :{LTBLUE}Arazi araç çubuğunu diğer araç çubuklarına bağla: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_REVERSE_SCROLLING                            :{LTBLUE}Fareyle kaydırma hareketini ters çevir: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING                             :{LTBLUE}Düzgün viewport kaydırması: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MEASURE_TOOLTIP                              :{LTBLUE}İnşa araçları kullanılırken ölçüm ipucu göster: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LIVERIES                                     :{LTBLUE}Şirketin renklerini göster: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LIVERIES_NONE                                :Hiçbiri
@@ -1165,6 +1165,7 @@
 STR_CONFIG_PATCHES_TOWN_GROWTH_FAST                             :Hızlı
 STR_CONFIG_PATCHES_TOWN_GROWTH_VERY_FAST                        :Çok Hızlı
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Kasabaların şehir olması için gerekli nüfus: {ORANGE}1 in {STRING}
+STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Birincil şehir büyüklüğü çarpanı: {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Arayüz
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}İnşaat
@@ -1613,6 +1614,12 @@
 STR_RAILROAD_TRACK_WITH_PRESIGNALS                              :Ön-sinayalli ray
 STR_RAILROAD_TRACK_WITH_EXITSIGNALS                             :Çıkış-sinyalli ray
 STR_RAILROAD_TRACK_WITH_COMBOSIGNALS                            :Ön+çikis-sinyalli ray
+STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS                       :Normal ve ön sinyalli ray
+STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS                      :Normal ve çıkış sinyalli ray
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS                     :Normal ve birleşik sinyalli ray
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS                         :Ön ve Çıkış sinyalli ray
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS                        :Ön ve birleşik sinyalli ray
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS                       :Çıkış ve birleşik sinyalli ray
 STR_MUST_REMOVE_RAILWAY_STATION_FIRST                           :{WHITE}Önce tren istasyonu kaldırılmalı
 
 
@@ -2703,11 +2710,13 @@
 STR_8851_SHOW_CAPACITIES_OF_EACH                                :{BLACK}Her aracın kapasitesi
 STR_8852_SHOW_TOTAL_CARGO                                       :{BLACK}Trenin kargo türlerine ayrilmis toplam kapasitesini göster
 STR_8852_ORDERS_LIST_CLICK_ON_ORDER                             :{BLACK}Talimat listesi - seçmek için komutu tıklayın. CTRL + tıklama istasyona kaydırir
+STR_8853_SKIP_THE_CURRENT_ORDER                                 :{BLACK}Şimdiki talimatı atla ve sonrakine geç. CTRL ile tıklanırsa seçili talimata geçilir
 STR_8854_DELETE_THE_HIGHLIGHTED                                 :{BLACK}Seçili talimatı sil
 STR_8855_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Seçili talimatı durmadan yap
 STR_8856_INSERT_A_NEW_ORDER_BEFORE                              :{BLACK}Seçili talimatın önüne ya da listenin sonuna komut ekle
 STR_8857_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Seçili talimatı yaparken tren dolana kadar beklesin
 STR_8858_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Seçili talimatı yaparken tren mutlaka yükünü boşaltsın
+STR_TIMETABLE_TOOLTIP                                           :{BLACK}Zaman çizelgesi - işaretlemek için bir talimata tıklayın.
 STR_SERVICE_HINT                                                :{BLACK}Bakım gerekmiyorsa bunu atla
 STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Fiyat: {CURRENCY} Ağırlık: {WEIGHT_S}{}Hız: {VELOCITY}  Güç: {POWER}{}Bakım: {CURRENCY}/sene{}Kapasite: {CARGO}
 STR_885C_BROKEN_DOWN                                            :{RED}Bozuldu
@@ -3328,4 +3337,7 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+
+#### Improved sign GUI
+
 ########
--- a/src/lang/ukrainian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/ukrainian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -301,7 +301,7 @@
 STR_00CD_3                                                      :{BLACK}3
 STR_00CE_4                                                      :{BLACK}4
 STR_00CF_5                                                      :{BLACK}5
-STR_00D0_NOTHING                                                :Нічого
+STR_00D0_NOTHING                                                :нічого
 STR_00D1_DARK_BLUE                                              :Темно-синій
 STR_00D2_PALE_GREEN                                             :Світло-зелений
 STR_00D3_PINK                                                   :Рожевий
@@ -1160,7 +1160,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Доставляти вантаж за умови, що там приймається: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Будувати дуже довгі мости: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Наказувати прямувати в депо: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Будувати виробництво сировини: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Ручний метод будівництва основної промисловості: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :нема
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :як інша промисловість
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :перспективний
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Подібна промисловість в одному місті: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Будувати промисловість однакового типу поруч: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Завжди показувати повну дату в рядку стану: {ORANGE}{STRING}
@@ -1241,6 +1244,7 @@
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Остання з доступних
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Найчастіш використовувана
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Показувати засоби будівництва, коли нема відповідного транспорту: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Макс. поїздів у гравця: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Макс. авто у гравця: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Макс. літаків у гравця: {ORANGE}{STRING}
@@ -2936,8 +2940,10 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :Цей транспорт зараз прямує за розкладом
 STR_TIMETABLE_STATUS_LATE                                       :Цей транспорт запізнюється на {STRING}
 STR_TIMETABLE_STATUS_EARLY                                      :Цей транспорт випереджує розклад на {STRING}
+STR_TIMETABLE_TOTAL_TIME                                        :Цей розклад займе ще {STRING}
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Цей розклад займе якнайменше {STRING} (не все за розкладом)
 STR_TIMETABLE_AUTOFILL                                          :{BLACK}Автозаповнення
-STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Автоматично заповнювати розпис згiдно з даними першої подорожі
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Автоматично заповнювати розклад згiдно з даними першої подорожі
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}На шляху авто
@@ -3519,4 +3525,10 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Ім'я має бути унікальним
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Наступне позначення
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Попереднє позначення
+
 ########
--- a/src/lang/unfinished/afrikaans.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/unfinished/afrikaans.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -485,7 +485,7 @@
 STR_01A8_LOCAL_AUTHORITY                                        :{BLACK}Plaaslike raad: {LTBLUE}{STRING}
 STR_01A9_NONE                                                   :Geen
 STR_01AA_NAME                                                   :{BLACK}Naam
-STR_01AB                                                        :{BLACK}{TINYFONT}{STRING}
+STR_01AB                                                        :{BLACK}{TINYFONT}{VEHICLE}
 
 ############ range for days starts
 STR_01AC_1ST                                                    :1ste
@@ -979,7 +979,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Aflewer vrag na 'n stasie slegs as daar 'n aanvrag is:: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Toelaat opbou van baie lank bruge: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Toelaat gaan na depot opdrae: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Toelaat opbou van rumateriaal oplewering nywerheide: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Toelaat veelvout soortgelyke nywerheide per stad: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Nywerheide van die selfde tipe kan naby aan mekaar gebou word: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Altyd wys lang datum in die standbaan: {ORANGE}{STRING}
@@ -1490,7 +1489,7 @@
 
 ##id 0x2000
 STR_2000_TOWNS                                                  :{WHITE}Stede
-STR_2002                                                        :{TINYFONT}{BLACK}{STRING}
+STR_2002                                                        :{TINYFONT}{BLACK}{SIGN}
 STR_2004_BUILDING_MUST_BE_DEMOLISHED                            :{WHITE}Gebou moet eers afgebreek word
 STR_2005                                                        :{WHITE}{TOWN}
 STR_2006_POPULATION                                             :{BLACK}Populasie: {ORANGE}{COMMA}{BLACK}  Huise: {ORANGE}{COMMA}
@@ -1523,7 +1522,7 @@
 STR_2021_SHOW_INFORMATION_ON_LOCAL                              :{BLACK}Wys inlingting oor plaaslike raad
 STR_2022_LOCAL_AUTHORITY                                        :{WHITE}{TOWN} plaaslike raad
 STR_2023_TRANSPORT_COMPANY_RATINGS                              :{BLACK}Vervoer maatskappy graderings:
-STR_2024                                                        :{YELLOW}{COMPANY}{PLAYERNAME}: {ORANGE}{STRING}
+STR_2024                                                        :{YELLOW}{COMPANY}{COMPANYNUM}: {ORANGE}{STRING}
 STR_2025_SUBSIDIES                                              :{WHITE}Subsidiee
 STR_2026_SUBSIDIES_ON_OFFER_FOR                                 :{BLACK}Subsidiee op aanbod vir diens opneming:
 STR_2027_FROM_TO                                                :{ORANGE}{STRING} van {STRING} tot {STRING}
@@ -1590,7 +1589,7 @@
 STR_2803_TREE_ALREADY_HERE                                      :{WHITE}...boom reeds daar
 STR_2804_SITE_UNSUITABLE                                        :{WHITE}...plek ongeskik
 STR_2805_CAN_T_PLANT_TREE_HERE                                  :{WHITE}Kan nie boom hier beplant nie...
-STR_2806                                                        :{WHITE}{STRING}
+STR_2806                                                        :{WHITE}{SIGN}
 STR_2808_TOO_MANY_SIGNS                                         :{WHITE}...te veel tekens
 STR_2809_CAN_T_PLACE_SIGN_HERE                                  :{WHITE}Kan nie teken hier plaas nie...
 STR_280A_SIGN                                                   :Teken
@@ -1937,7 +1936,7 @@
 
 ##id 0x7000
 STR_7000                                                        :
-STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{PLAYERNAME}
+STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{COMPANYNUM}
 STR_7002_PLAYER                                                 :(Speler {COMMA})
 STR_7004_NEW_FACE                                               :{BLACK}Nuwe Gesig
 STR_7005_COLOR_SCHEME                                           :{BLACK}Kleur Skema
@@ -1949,7 +1948,7 @@
 STR_700B_PRESIDENT_S_NAME                                       :Bestuurder se Naam
 STR_700C_CAN_T_CHANGE_COMPANY_NAME                              :{WHITE}Maatskappy naam kan nie verander word nie...
 STR_700D_CAN_T_CHANGE_PRESIDENT                                 :{WHITE}Bestuurder se naam kan nie verander word nie...
-STR_700E_FINANCES                                               :{WHITE}{COMPANY} Finansies {BLACK}{PLAYERNAME}
+STR_700E_FINANCES                                               :{WHITE}{COMPANY} Finansies {BLACK}{COMPANYNUM}
 STR_700F_EXPENDITURE_INCOME                                     :{WHITE}Onkoste/Inkome
 STR_7010                                                        :{WHITE}{NUM}
 STR_7011_CONSTRUCTION                                           :{GOLD}Konstruksie
@@ -1968,7 +1967,7 @@
 STR_701E                                                        :{BLACK}-{CURRENCY}
 STR_701F                                                        :{BLACK}+{CURRENCY}
 STR_7020_TOTAL                                                  :{WHITE}Totaal:
-STR_7021                                                        :{COMPANY}{PLAYERNAME}
+STR_7021                                                        :{COMPANY}{COMPANYNUM}
 STR_7022_INCOME_GRAPH                                           :{WHITE}Inkome Grafiek
 STR_CURRCOMPACT                                                 :{CURRCOMPACT}
 STR_7024                                                        :{COMMA}
@@ -1977,8 +1976,8 @@
 STR_7027_LOAN                                                   :{WHITE}Lening
 STR_MAX_LOAN                                                    :{WHITE}Max Lening:  {BLACK}{CURRENCY}
 STR_7028                                                        :{BLACK}{CURRENCY}
-STR_7029_BORROW                                                 :{BLACK}Leen {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
-STR_702A_REPAY                                                  :{BLACK}Terugbetaal {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
+STR_7029_BORROW                                                 :{BLACK}Leen {SKIP}{SKIP}{CURRENCY}
+STR_702A_REPAY                                                  :{BLACK}Terugbetaal {SKIP}{SKIP}{CURRENCY}
 STR_702B_MAXIMUM_PERMITTED_LOAN                                 :{WHITE}...maksimum vergun lening groote is {CURRENCY}
 STR_702C_CAN_T_BORROW_ANY_MORE_MONEY                            :{WHITE}Kan nie meer geld leen nie...
 STR_702D_LOAN_ALREADY_REPAYED                                   :{WHITE}...geen lening om terugbetaal te word
@@ -2017,8 +2016,8 @@
 STR_7051_COMPANY_PERFORMANCE_RATINGS                            :{WHITE}Maatskappy prestasie graderings (maksimum gradering=1000)
 STR_7052_COMPANY_VALUES                                         :{WHITE}Maatskappy waarde
 STR_7053_COMPANY_LEAGUE_TABLE                                   :{WHITE}Maatskappy Liga Tabel
-STR_7054                                                        :{WHITE}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{PLAYERNAME} '{STRING}'
-STR_7055                                                        :{YELLOW}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{PLAYERNAME}  '{STRING}'
+STR_7054                                                        :{WHITE}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{COMPANYNUM} '{STRING}'
+STR_7055                                                        :{YELLOW}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{COMPANYNUM}  '{STRING}'
 STR_7056_TRANSPORT_COMPANY_IN_TROUBLE                           :{BLACK}{BIGFONT}Vervoer maatsappy in moelikheid!
 STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED                           :{BLACK}{BIGFONT}{COMPANY} sal binnekort afverkoop of bankrospeler verklaar word tensy prestasie verbeter!
 STR_7058_PRESIDENT                                              :{BLACK}{PLAYERNAME}{}(Bestuurder)
@@ -2365,7 +2364,7 @@
 ##id 0x8800
 STR_8800_TRAIN_DEPOT                                            :{WHITE}{TOWN} Trein Depot
 STR_8801_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Burgers herdenk . . .{}Eerste trein arriveer by {STATION}!
-STR_8802_DETAILS                                                :{WHITE}{STRING} (Aanwyse)
+STR_8802_DETAILS                                                :{WHITE}{VEHICLE} (Aanwyse)
 STR_8803_TRAIN_IN_THE_WAY                                       :{WHITE}Trein in die pad
 STR_8804                                                        :{SETX 10}{COMMA}: {STRING} {STRING}
 STR_8805                                                        :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
@@ -2432,8 +2431,8 @@
 STR_FULLLOAD_OR_SERVICE                                         :{SKIP}{SKIP}{STRING}
 STR_SERVICE                                                     :{BLACK}Diens
 STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE                           :{WHITE}Kan nie spoorweg voertuig bou nie...
-STR_882C_BUILT_VALUE                                            :{LTBLUE}{STRING}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
-STR_882D_VALUE                                                  :{LTBLUE}{STRING}{BLACK}   Waarde: {LTBLUE}{CURRENCY}
+STR_882C_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
+STR_882D_VALUE                                                  :{LTBLUE}{ENGINE}{BLACK}   Waarde: {LTBLUE}{CURRENCY}
 STR_882E                                                        :{WHITE}{VEHICLE}
 STR_882F_LOADING_UNLOADING                                      :{LTBLUE}Laai / Aflaai
 STR_TRAIN_MUST_BE_STOPPED                                       :{WHITE}Trein moet binne in 'n depot gestop word
@@ -2519,7 +2518,7 @@
 STR_900E_MAX_SPEED                                              :{BLACK}Max. spoed: {LTBLUE}{VELOCITY}
 STR_900F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Profyt die jaar: {LTBLUE}{CURRENCY}  (verlede jaar: {CURRENCY})
 STR_9010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Deeglikheid: {LTBLUE}{COMMA}%  {BLACK}Oponthoude sedert laaste diens: {LTBLUE}{COMMA}
-STR_9011_BUILT_VALUE                                            :{LTBLUE}{STRING}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
+STR_9011_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
 STR_9012_CAPACITY                                               :{BLACK}Kapasitiet: {LTBLUE}{CARGO}
 STR_9013_MUST_BE_STOPPED_INSIDE                                 :{WHITE}...moet gestop binne 'n pad voertuig depot wees
 STR_9014_CAN_T_SELL_ROAD_VEHICLE                                :{WHITE}Kan nie pad voertuig verkoop nie
@@ -2589,7 +2588,7 @@
 STR_9813_MAX_SPEED                                              :{BLACK}Max. spoed: {LTBLUE}{VELOCITY}
 STR_9814_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Profyt die jaar: {LTBLUE}{CURRENCY}  (verlede jaar: {CURRENCY})
 STR_9815_RELIABILITY_BREAKDOWNS                                 :{BLACK}Deeglikheid: {LTBLUE}{COMMA}%  {BLACK}Oponthoude sedert laaste diens: {LTBLUE}{COMMA}
-STR_9816_BUILT_VALUE                                            :{LTBLUE}{STRING}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
+STR_9816_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
 STR_9817_CAPACITY                                               :{BLACK}Kapasitiet: {LTBLUE}{CARGO}
 STR_9818_CAN_T_STOP_START_SHIP                                  :{WHITE}Kan nie skip stop/aanvang nie
 STR_9819_CAN_T_SEND_SHIP_TO_DEPOT                               :{WHITE}Kan nie skip na depot stuur nie...
@@ -2657,7 +2656,7 @@
 STR_A00E_MAX_SPEED                                              :{BLACK}Max. spoed: {LTBLUE}{VELOCITY}
 STR_A00F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Profyt die jaar: {LTBLUE}{CURRENCY}  (verlede jaar: {CURRENCY})
 STR_A010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Deeglikheid: {LTBLUE}{COMMA}%  {BLACK}Oponthoude sedert laaste diens: {LTBLUE}{COMMA}
-STR_A011_BUILT_VALUE                                            :{LTBLUE}{STRING}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
+STR_A011_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
 STR_A012_CAN_T_SEND_AIRCRAFT_TO                                 :{WHITE}Kan nie vlietuig na hangar stuur nie...
 STR_HEADING_FOR_HANGAR                                          :{ORANGE}Op pad na {STATION} Hangar
 STR_HEADING_FOR_HANGAR_VEL                                      :{ORANGE}Op pad na {STATION} Hangar, {VELOCITY}
--- a/src/lang/unfinished/croatian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2984 +0,0 @@
-##name Croatian
-##ownname Hrvatski
-##isocode hr_HR
-##plural 6
-##gender male female middle
-
-#
-
-##id 0x0000
-STR_NULL                                                        :
-STR_0001_OFF_EDGE_OF_MAP                                        :{WHITE}Izvan rubova karte
-STR_0002_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}Preblizu rubu karte
-STR_0003_NOT_ENOUGH_CASH_REQUIRES                               :{WHITE}Nedovoljno gotovine - potrebno je {CURRENCY}
-STR_0004                                                        :{WHITE}{CURRENCY}
-STR_0005                                                        :{RED}{CURRENCY}
-STR_EMPTY                                                       :
-STR_0007_FLAT_LAND_REQUIRED                                     :{WHITE}Potrebna ravna površina
-STR_0008_WAITING                                                :{BLACK}Čekanje: {WHITE}{STRING}
-STR_0009                                                        :{WHITE}{CARGO}
-STR_000A_EN_ROUTE_FROM                                          :{WHITE}{CARGO}{YELLOW}  (na putu od
-STR_000B                                                        :{YELLOW}{STATION})
-STR_000C_ACCEPTS                                                :{BLACK}Prihvaća: {WHITE}
-STR_000D_ACCEPTS                                                :{BLACK}Prihvaća: {GOLD}
-STR_000E                                                        :
-STR_000F_PASSENGERS                                             :Putnici
-STR_0010_COAL                                                   :Ugljen
-STR_0011_MAIL                                                   :Pošta
-STR_0012_OIL                                                    :Nafta
-STR_0013_LIVESTOCK                                              :Domaće životinje
-STR_0014_GOODS                                                  :Robe
-STR_0015_GRAIN                                                  :Žito
-STR_0016_WOOD                                                   :Drvo
-STR_0017_IRON_ORE                                               :Željezo
-STR_0018_STEEL                                                  :Čelik
-STR_0019_VALUABLES                                              :Dragocjenosti
-STR_001A_COPPER_ORE                                             :Bakar
-STR_001B_MAIZE                                                  :Kukuruz
-STR_001C_FRUIT                                                  :Voće
-STR_001D_DIAMONDS                                               :Dijamanti
-STR_001E_FOOD                                                   :Hrana
-STR_001F_PAPER                                                  :Papir
-STR_0020_GOLD                                                   :Zlato
-STR_0021_WATER                                                  :Voda
-STR_0022_WHEAT                                                  :Pšenica
-STR_0023_RUBBER                                                 :Guma
-STR_0024_SUGAR                                                  :Šećer
-STR_0025_TOYS                                                   :Igračke
-STR_0026_CANDY                                                  :Slatkiši
-STR_0027_COLA                                                   :Cola
-STR_0028_COTTON_CANDY                                           :Šećerna vuna
-STR_0029_BUBBLES                                                :Baloni
-STR_002A_TOFFEE                                                 :Mliječne karamele
-STR_002B_BATTERIES                                              :Baterije
-STR_002C_PLASTIC                                                :Plastika
-STR_002D_FIZZY_DRINKS                                           :Gazirana pića
-STR_002E                                                        :
-STR_002F_PASSENGER                                              :Putnik
-STR_0030_COAL                                                   :Ugljen
-STR_0031_MAIL                                                   :Pošta
-STR_0032_OIL                                                    :Nafta
-STR_0033_LIVESTOCK                                              :Domaće životinje
-STR_0034_GOODS                                                  :Robe
-STR_0035_GRAIN                                                  :Žito
-STR_0036_WOOD                                                   :Drvo
-STR_0037_IRON_ORE                                               :Željezo
-STR_0038_STEEL                                                  :Čelik
-STR_0039_VALUABLES                                              :Dragocjenosti
-STR_003A_COPPER_ORE                                             :Bakar
-STR_003B_MAIZE                                                  :Kukuruz
-STR_003C_FRUIT                                                  :Voće
-STR_003D_DIAMOND                                                :Dijamant
-STR_003E_FOOD                                                   :Hrana
-STR_003F_PAPER                                                  :Papir
-STR_0040_GOLD                                                   :Zlato
-STR_0041_WATER                                                  :Voda
-STR_0042_WHEAT                                                  :Pšenica
-STR_0043_RUBBER                                                 :Guma
-STR_0044_SUGAR                                                  :Šećer
-STR_0045_TOY                                                    :Igračka
-STR_0046_CANDY                                                  :Slatkiš
-STR_0047_COLA                                                   :Cola
-STR_0048_COTTON_CANDY                                           :Šećerna vuna
-STR_0049_BUBBLE                                                 :Balon
-STR_004A_TOFFEE                                                 :Mliječna karamela
-STR_004B_BATTERY                                                :Baterija
-STR_004C_PLASTIC                                                :Plastika
-STR_004D_FIZZY_DRINK                                            :Gazirano piće
-STR_QUANTITY_NOTHING                                            :
-STR_QUANTITY_PASSENGERS                                         :{COMMA} putni{P k ka ka}
-STR_QUANTITY_COAL                                               :{WEIGHT} ugljena
-STR_QUANTITY_MAIL                                               :{COMMA} poštansk{P a e ih} vreć{P a e a}
-STR_QUANTITY_OIL                                                :{VOLUME} nafte
-STR_QUANTITY_LIVESTOCK                                          :{COMMA} grla {P o a a} stoke
-STR_QUANTITY_GOODS                                              :{COMMA} sanduk{P "" a a} robe
-STR_QUANTITY_GRAIN                                              :{WEIGHT} žita
-STR_QUANTITY_WOOD                                               :{WEIGHT} drveta
-STR_QUANTITY_IRON_ORE                                           :{WEIGHT} željeza
-STR_QUANTITY_STEEL                                              :{WEIGHT} čelika
-STR_QUANTITY_VALUABLES                                          :{COMMA} vreć{P a e a} s vrijednostima
-STR_QUANTITY_COPPER_ORE                                         :{WEIGHT} bakra
-STR_QUANTITY_MAIZE                                              :{WEIGHT} kukuruza
-STR_QUANTITY_FRUIT                                              :{WEIGHT} voća
-STR_QUANTITY_DIAMONDS                                           :{COMMA} vreć{P a e a} dijamanata
-STR_QUANTITY_FOOD                                               :{WEIGHT} hrane
-STR_QUANTITY_PAPER                                              :{WEIGHT} papira
-STR_QUANTITY_GOLD                                               :{COMMA} vreć{P a e a} zlata
-STR_QUANTITY_WATER                                              :{VOLUME} vode
-STR_QUANTITY_WHEAT                                              :{WEIGHT} pšenice
-STR_QUANTITY_RUBBER                                             :{VOLUME} gume
-STR_QUANTITY_SUGAR                                              :{WEIGHT} šećera
-STR_QUANTITY_TOYS                                               :{COMMA} igrač{P ka ke aka}
-STR_QUANTITY_SWEETS                                             :{COMMA} vreć{P a e a} slatkiša
-STR_QUANTITY_COLA                                               :{VOLUME} cole
-STR_QUANTITY_CANDYFLOSS                                         :{WEIGHT} šećerne vune
-STR_QUANTITY_BUBBLES                                            :{COMMA} balon{P "" a a}
-STR_QUANTITY_TOFFEE                                             :{WEIGHT} mliječne karamele
-STR_QUANTITY_BATTERIES                                          :{COMMA} baterij{P a e a}
-STR_QUANTITY_PLASTIC                                            :{VOLUME} plastike
-STR_QUANTITY_FIZZY_DRINKS                                       :{COMMA} Gaziran{P o a a} pić{P e a a}
-STR_ABBREV_NOTHING                                              :
-STR_ABBREV_PASSENGERS                                           :{TINYFONT}PU
-STR_ABBREV_COAL                                                 :{TINYFONT}UG
-STR_ABBREV_MAIL                                                 :{TINYFONT}PT
-STR_ABBREV_OIL                                                  :{TINYFONT}NF
-STR_ABBREV_LIVESTOCK                                            :{TINYFONT}DŽ
-STR_ABBREV_GOODS                                                :{TINYFONT}AU
-STR_ABBREV_GRAIN                                                :{TINYFONT}ŽT
-STR_ABBREV_WOOD                                                 :{TINYFONT}DV
-STR_ABBREV_IRON_ORE                                             :{TINYFONT}FE
-STR_ABBREV_STEEL                                                :{TINYFONT}ČL
-STR_ABBREV_VALUABLES                                            :{TINYFONT}VR
-STR_ABBREV_COPPER_ORE                                           :{TINYFONT}CU
-STR_ABBREV_MAIZE                                                :{TINYFONT}KK
-STR_ABBREV_FRUIT                                                :{TINYFONT}VO
-STR_ABBREV_DIAMONDS                                             :{TINYFONT}DM
-STR_ABBREV_FOOD                                                 :{TINYFONT}HN
-STR_ABBREV_PAPER                                                :{TINYFONT}PR
-STR_ABBREV_GOLD                                                 :{TINYFONT}AU
-STR_ABBREV_WATER                                                :{TINYFONT}VO
-STR_ABBREV_WHEAT                                                :{TINYFONT}ŽT
-STR_ABBREV_RUBBER                                               :{TINYFONT}GM
-STR_ABBREV_SUGAR                                                :{TINYFONT}ŠĆ
-STR_ABBREV_TOYS                                                 :{TINYFONT}IG
-STR_ABBREV_SWEETS                                               :{TINYFONT}SL
-STR_ABBREV_COLA                                                 :{TINYFONT}CL
-STR_ABBREV_CANDYFLOSS                                           :{TINYFONT}ŠV
-STR_ABBREV_BUBBLES                                              :{TINYFONT}BL
-STR_ABBREV_TOFFEE                                               :{TINYFONT}MČ
-STR_ABBREV_BATTERIES                                            :{TINYFONT}BA
-STR_ABBREV_PLASTIC                                              :{TINYFONT}PL
-STR_ABBREV_FIZZY_DRINKS                                         :{TINYFONT}GP
-STR_ABBREV_NONE                                                 :{TINYFONT}NI
-STR_ABBREV_ALL                                                  :{TINYFONT}SVE
-STR_00AE                                                        :{WHITE}{DATE_SHORT}
-STR_00AF                                                        :{WHITE}{DATE_LONG}
-STR_00B0_MAP                                                    :{WHITE}Karta - {STRING}
-STR_00B1_GAME_OPTIONS                                           :{WHITE}Opcije za igru
-STR_00B2_MESSAGE                                                :{YELLOW}Poruka
-STR_00B3_MESSAGE_FROM                                           :{YELLOW}Poruka od {STRING}
-STR_POPUP_CAUTION_CAPTION                                       :{WHITE}Oprez!
-STR_00B4_CAN_T_DO_THIS                                          :{WHITE}To nije moguće napraviti....
-STR_00B5_CAN_T_CLEAR_THIS_AREA                                  :{WHITE}Nije moguće očistiti ovo područje....
-STR_00B6_ORIGINAL_COPYRIGHT                                     :{BLACK}Izvorno autorsko pravo {COPYRIGHT} 1995 Chris Sawyer, sva prava pridržana
-STR_00B7_VERSION                                                :{BLACK}OpenTTD verzija {REV}
-STR_00BA_COPYRIGHT_OPENTTD                                      :{BLACK}OpenTTD {COPYRIGHT}2002-2006 tim OpenTTD
-STR_TRANSLATED_BY                                               :{BLACK}  Prevoditelj(i) -
-
-STR_00C5                                                        :{BLACK}{CROSS}
-STR_00C6                                                        :{SILVER}{CROSS}
-STR_00C7_QUIT                                                   :{WHITE}Prekid
-STR_00C8_YES                                                    :{BLACK}Da
-STR_00C9_NO                                                     :{BLACK}Ne
-STR_00CA_ARE_YOU_SURE_YOU_WANT_TO                               :{YELLOW}Jesi li siguran da želiš napustiti ovu igru i vratiti se na {STRING}?
-STR_00CB_1                                                      :{BLACK}1
-STR_00CC_2                                                      :{BLACK}2
-STR_00CD_3                                                      :{BLACK}3
-STR_00CE_4                                                      :{BLACK}4
-STR_00CF_5                                                      :{BLACK}5
-STR_00D0_NOTHING                                                :Ništa
-STR_00D1_DARK_BLUE                                              :Tamnoplava
-STR_00D2_PALE_GREEN                                             :Blijedozelena
-STR_00D3_PINK                                                   :Ružičasta
-STR_00D4_YELLOW                                                 :Žuta
-STR_00D5_RED                                                    :Crvena
-STR_00D6_LIGHT_BLUE                                             :Svijetloplava
-STR_00D7_GREEN                                                  :Zelena
-STR_00D8_DARK_GREEN                                             :Tamnozelena
-STR_00D9_BLUE                                                   :Plava
-STR_00DA_CREAM                                                  :Kremasta
-STR_00DB_MAUVE                                                  :Svijetloljubičasta
-STR_00DC_PURPLE                                                 :Ljubičasta
-STR_00DD_ORANGE                                                 :Narančasta
-STR_00DE_BROWN                                                  :Smeđa
-STR_00DF_GREY                                                   :Siva
-STR_00E0_WHITE                                                  :Bijela
-STR_00E1_TOO_MANY_VEHICLES_IN_GAME                              :{WHITE}Previše vozila u igri
-STR_00E2                                                        :{BLACK}{COMMA}
-STR_00E3                                                        :{RED}{COMMA}
-STR_00E4_LOCATION                                               :{BLACK}Lokacija
-STR_00E5_CONTOURS                                               :Obrisi
-STR_00E6_VEHICLES                                               :Vozila
-STR_00E7_INDUSTRIES                                             :Industrije
-STR_00E8_ROUTES                                                 :Trase
-STR_00E9_VEGETATION                                             :Vegetacija
-STR_00EA_OWNERS                                                 :Vlasnici
-STR_00EB_ROADS                                                  :{BLACK}{TINYFONT}Ceste
-STR_00EC_RAILROADS                                              :{BLACK}{TINYFONT}Željeznice
-STR_00ED_STATIONS_AIRPORTS_DOCKS                                :{BLACK}{TINYFONT}Stanice/Zračne luke/Pristaništa
-STR_00EE_BUILDINGS_INDUSTRIES                                   :{BLACK}{TINYFONT}Građevine/Industrije
-STR_00EF_VEHICLES                                               :{BLACK}{TINYFONT}Vozila
-STR_00F0_100M                                                   :{BLACK}{TINYFONT}100m
-STR_00F1_200M                                                   :{BLACK}{TINYFONT}200m
-STR_00F2_300M                                                   :{BLACK}{TINYFONT}300m
-STR_00F3_400M                                                   :{BLACK}{TINYFONT}400m
-STR_00F4_500M                                                   :{BLACK}{TINYFONT}500m
-STR_00F5_TRAINS                                                 :{BLACK}{TINYFONT}Vlakovi
-STR_00F6_ROAD_VEHICLES                                          :{BLACK}{TINYFONT}Cestovna vozila
-STR_00F7_SHIPS                                                  :{BLACK}{TINYFONT}Brodovi
-STR_00F8_AIRCRAFT                                               :{BLACK}{TINYFONT}Zrakoplov
-STR_00F9_TRANSPORT_ROUTES                                       :{BLACK}{TINYFONT}Prijevozne trase
-STR_00FA_COAL_MINE                                              :{BLACK}{TINYFONT}Rudnik ugljena
-STR_00FB_POWER_STATION                                          :{BLACK}{TINYFONT}Elektrana
-STR_00FC_FOREST                                                 :{BLACK}{TINYFONT}Šuma
-STR_00FD_SAWMILL                                                :{BLACK}{TINYFONT}Pilana
-STR_00FE_OIL_REFINERY                                           :{BLACK}{TINYFONT}Naftna rafinerija
-STR_00FF_FARM                                                   :{BLACK}{TINYFONT}Farma
-STR_0100_FACTORY                                                :{BLACK}{TINYFONT}Tvornica
-STR_0101_PRINTING_WORKS                                         :{BLACK}{TINYFONT}Tiskara
-STR_0102_OIL_WELLS                                              :{BLACK}{TINYFONT}Naftna polja
-STR_0103_IRON_ORE_MINE                                          :{BLACK}{TINYFONT}Rudnik željeza
-STR_0104_STEEL_MILL                                             :{BLACK}{TINYFONT}Čeličana
-STR_0105_BANK                                                   :{BLACK}{TINYFONT}Banka
-STR_0106_PAPER_MILL                                             :{BLACK}{TINYFONT}Tvornica papira
-STR_0107_GOLD_MINE                                              :{BLACK}{TINYFONT}Rudnik zlata
-STR_0108_FOOD_PROCESSING_PLANT                                  :{BLACK}{TINYFONT}Tvornica hrane
-STR_0109_DIAMOND_MINE                                           :{BLACK}{TINYFONT}Rudnik dijamanata
-STR_010A_COPPER_ORE_MINE                                        :{BLACK}{TINYFONT}Rudnik bakra
-STR_010B_FRUIT_PLANTATION                                       :{BLACK}{TINYFONT}Plantaža voća
-STR_010C_RUBBER_PLANTATION                                      :{BLACK}{TINYFONT}Plantaža gume
-STR_010D_WATER_SUPPLY                                           :{BLACK}{TINYFONT}Izvor vode
-STR_010E_WATER_TOWER                                            :{BLACK}{TINYFONT}Vodotoranj
-STR_010F_LUMBER_MILL                                            :{BLACK}{TINYFONT}Pilana
-STR_0110_COTTON_CANDY_FOREST                                    :{BLACK}{TINYFONT}Šuma šećerne vune
-STR_0111_CANDY_FACTORY                                          :{BLACK}{TINYFONT}Tvornica slatkiša
-STR_0112_BATTERY_FARM                                           :{BLACK}{TINYFONT}Tvornica baterija
-STR_0113_COLA_WELLS                                             :{BLACK}{TINYFONT}Izvori Cole
-STR_0114_TOY_SHOP                                               :{BLACK}{TINYFONT}Trgovina igračkama
-STR_0115_TOY_FACTORY                                            :{BLACK}{TINYFONT}Tvornica igračaka
-STR_0116_PLASTIC_FOUNTAINS                                      :{BLACK}{TINYFONT}Izvori plastike
-STR_0117_FIZZY_DRINK_FACTORY                                    :{BLACK}{TINYFONT}Tvornica gaziranih pića
-STR_0118_BUBBLE_GENERATOR                                       :{BLACK}{TINYFONT}Generator balona
-STR_0119_TOFFEE_QUARRY                                          :{BLACK}{TINYFONT}Iskop mliječne karamele
-STR_011A_SUGAR_MINE                                             :{BLACK}{TINYFONT}Šećerana
-STR_011B_RAILROAD_STATION                                       :{BLACK}{TINYFONT}Željeznička stanica
-STR_011C_TRUCK_LOADING_BAY                                      :{BLACK}{TINYFONT}Kamionski terminal
-STR_011D_BUS_STATION                                            :{BLACK}{TINYFONT}Autobusn stanica
-STR_011E_AIRPORT_HELIPORT                                       :{BLACK}{TINYFONT}Aerodrom/Heliodrom
-STR_011F_DOCK                                                   :{BLACK}{TINYFONT}Pristanište
-STR_0120_ROUGH_LAND                                             :{BLACK}{TINYFONT}Surova zemlja
-STR_0121_GRASS_LAND                                             :{BLACK}{TINYFONT}Travnjak
-STR_0122_BARE_LAND                                              :{BLACK}{TINYFONT}Ogoljena zemlja
-STR_0123_FIELDS                                                 :{BLACK}{TINYFONT}Polja
-STR_0124_TREES                                                  :{BLACK}{TINYFONT}Stabla
-STR_0125_ROCKS                                                  :{BLACK}{TINYFONT}Stijenje
-STR_0126_WATER                                                  :{BLACK}{TINYFONT}Voda
-STR_0127_NO_OWNER                                               :{BLACK}{TINYFONT}Bez vlasnika
-STR_0128_TOWNS                                                  :{BLACK}{TINYFONT}Gradovi
-STR_0129_INDUSTRIES                                             :{BLACK}{TINYFONT}Industrije
-STR_012A_DESERT                                                 :{BLACK}{TINYFONT}Pustinja
-STR_012B_SNOW                                                   :{BLACK}{TINYFONT}Snijeg
-STR_012C_MESSAGE                                                :{WHITE}Poruka
-STR_012D                                                        :{WHITE}{STRING}
-STR_012E_CANCEL                                                 :{BLACK}Odustani
-STR_012F_OK                                                     :{BLACK}OK
-STR_0130_RENAME                                                 :{BLACK}Preimenuj
-STR_0131_TOO_MANY_NAMES_DEFINED                                 :{WHITE}Previše definiranih imena
-STR_0132_CHOSEN_NAME_IN_USE_ALREADY                             :{WHITE}Odabrano ime već se koristi
-
-STR_0133_WINDOWS                                                :Windows
-STR_0134_UNIX                                                   :Unix
-STR_0135_OSX                                                    :OS X
-STR_OSNAME_BEOS                                                 :BeOS
-STR_OSNAME_MORPHOS                                              :MorphOS
-STR_OSNAME_AMIGAOS                                              :AmigaOS
-STR_OSNAME_OS2                                                  :OS/2
-STR_OSNAME_SUNOS                                                :SunOS
-
-STR_013B_OWNED_BY                                               :{WHITE}...u vlasništvu {STRING}
-STR_013C_CARGO                                                  :{BLACK}Teret
-STR_013D_INFORMATION                                            :{BLACK}Informacije
-STR_013E_CAPACITIES                                             :{BLACK}Nosivosti
-STR_013E_TOTAL_CARGO                                            :{BLACK}Ukupni teret
-STR_013F_CAPACITY                                               :{BLACK}Nosivost: {LTBLUE}{CARGO}
-STR_CAPACITY_MULT                                               :{BLACK}Nosivost: {LTBLUE}{CARGO} (x{NUM})
-STR_013F_TOTAL_CAPACITY_TEXT                                    :{BLACK}Ukupna nosivost ovoga vlaka:
-STR_013F_TOTAL_CAPACITY                                         :{LTBLUE}- {CARGO} ({SHORTCARGO})
-STR_TOTAL_CAPACITY_MULT                                         :{LTBLUE}- {CARGO} ({SHORTCARGO}) (x{NUM})
-STR_0140_NEW_GAME                                               :{BLACK}Nova igra
-STR_0141_LOAD_GAME                                              :{BLACK}Učitaj igru
-STR_SINGLE_PLAYER                                               :{BLACK}Jedan igrač
-STR_MULTIPLAYER                                                 :{BLACK}Više igrača
-STR_SCENARIO_EDITOR                                             :{BLACK}Editor scenarija
-
-STR_64                                                          :64
-STR_128                                                         :128
-STR_256                                                         :256
-STR_512                                                         :512
-STR_1024                                                        :1024
-STR_2048                                                        :2048
-STR_MAPSIZE                                                     :{BLACK}Veličina karte:
-STR_BY                                                          :{BLACK}*
-STR_0148_GAME_OPTIONS                                           :{BLACK}Postavke igre
-
-STR_0150_SOMEONE                                                :netko{SKIP}{SKIP}
-STR_0151_MAP_OF_WORLD                                           :Karta svijeta
-STR_0152_TOWN_DIRECTORY                                         :Popis gradova
-STR_0153_SUBSIDIES                                              :Subvencije
-
-STR_UNITS_IMPERIAL                                              :Imperijalni
-STR_UNITS_METRIC                                                :Metrički
-STR_UNITS_SI                                                    :SI
-
-STR_UNITS_VELOCITY_IMPERIAL                                     :{COMMA} mph
-STR_UNITS_VELOCITY_METRIC                                       :{COMMA} km/h
-STR_UNITS_VELOCITY_SI                                           :{COMMA} m/s
-
-STR_UNITS_POWER_IMPERIAL                                        :{COMMA}KS
-STR_UNITS_POWER_METRIC                                          :{COMMA}KS
-STR_UNITS_POWER_SI                                              :{COMMA}kW
-
-STR_UNITS_WEIGHT_SHORT_IMPERIAL                                 :{COMMA}t
-STR_UNITS_WEIGHT_SHORT_METRIC                                   :{COMMA}t
-STR_UNITS_WEIGHT_SHORT_SI                                       :{COMMA}kg
-
-STR_UNITS_WEIGHT_LONG_IMPERIAL                                  :{COMMA} britansk{P a e ih} ton{P a e a}
-STR_UNITS_WEIGHT_LONG_METRIC                                    :{COMMA} ton{P a e a}
-STR_UNITS_WEIGHT_LONG_SI                                        :{COMMA} kg
-
-STR_UNITS_VOLUME_SHORT_IMPERIAL                                 :{COMMA}gal
-STR_UNITS_VOLUME_SHORT_METRIC                                   :{COMMA}l
-STR_UNITS_VOLUME_SHORT_SI                                       :{COMMA}m³
-
-STR_UNITS_VOLUME_LONG_IMPERIAL                                  :{COMMA} galon{P "" a a}
-STR_UNITS_VOLUME_LONG_METRIC                                    :{COMMA} lit{P ra re ara}
-STR_UNITS_VOLUME_LONG_SI                                        :{COMMA} m³
-
-STR_UNITS_FORCE_IMPERIAL                                        :{COMMA}x10³ lbf
-STR_UNITS_FORCE_METRIC                                          :{COMMA} sila britanske tone
-STR_UNITS_FORCE_SI                                              :{COMMA} kN
-
-############ range for menu starts
-STR_0154_OPERATING_PROFIT_GRAPH                                 :Graf dobiti od poslovanja
-STR_0155_INCOME_GRAPH                                           :Graf prihoda
-STR_0156_DELIVERED_CARGO_GRAPH                                  :Graf isporučenog tereta
-STR_0157_PERFORMANCE_HISTORY_GRAPH                              :Graf povijesti učinka
-STR_0158_COMPANY_VALUE_GRAPH                                    :Graf vrijednosti tvrtke
-STR_0159_CARGO_PAYMENT_RATES                                    :Iznosi plaćanja tereta
-STR_015A_COMPANY_LEAGUE_TABLE                                   :Tablica lige tvrtki
-STR_PERFORMANCE_DETAIL_MENU                                     :Detaljna ocjena učinka
-############ range for menu ends
-
-STR_015B_OPENTTD                                                :{WHITE}O OpenTTD-u
-STR_015C_SAVE_GAME                                              :Spremi igru
-STR_015D_LOAD_GAME                                              :Učitaj igru
-STR_015E_QUIT_GAME                                              :Napusti igru
-STR_015F_QUIT                                                   :Izlaz
-STR_ABANDON_GAME_QUERY                                          :{YELLOW}Jeste li sigurni da želite napustiti ovu igru?
-STR_0161_QUIT_GAME                                              :{WHITE}Napusti igru
-STR_SORT_ORDER_TIP                                              :{BLACK}Izaberi način sortiranja (silazno/uzlazno)
-STR_SORT_CRITERIA_TIP                                           :{BLACK}Izaberi kriterij za sortiranje
-STR_SORT_BY                                                     :{BLACK}Sortiraj prema
-
-STR_SORT_BY_POPULATION                                          :{BLACK}Stanovnici
-STR_SORT_BY_PRODUCTION                                          :{BLACK}Produkcija
-STR_SORT_BY_TYPE                                                :{BLACK}Vrsta
-STR_SORT_BY_TRANSPORTED                                         :{BLACK}Prevezeno
-STR_SORT_BY_NAME                                                :{BLACK}Ime
-STR_SORT_BY_DROPDOWN_NAME                                       :Ime
-STR_SORT_BY_DATE                                                :{BLACK}Datum
-STR_SORT_BY_NUMBER                                              :Broj
-STR_SORT_BY_PROFIT_LAST_YEAR                                    :Zarada prošle godine
-STR_SORT_BY_PROFIT_THIS_YEAR                                    :Zarada ove godine
-STR_SORT_BY_AGE                                                 :Godine
-STR_SORT_BY_RELIABILITY                                         :Pouzdanost
-STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE                        :Totalna nosivost po vrsti tereta
-STR_SORT_BY_MAX_SPEED                                           :Maksimalna brzina
-STR_SORT_BY_MODEL                                               :Model
-STR_SORT_BY_VALUE                                               :Vrijednost
-STR_SORT_BY_FACILITY                                            :Vrsta stanice
-STR_SORT_BY_WAITING                                             :Vrijednost tereta koji čeka
-STR_SORT_BY_RATING_MAX                                          :Ocjena tereta
-STR_ENGINE_SORT_COST                                            :Trošak
-STR_ENGINE_SORT_POWER                                           :Snaga
-STR_ENGINE_SORT_INTRO_DATE                                      :Datum početka
-STR_ENGINE_SORT_RUNNING_COST                                    :Trošak uporabe
-STR_ENGINE_SORT_POWER_VS_RUNNING_COST                           :Trošak snage/uporabe
-STR_ENGINE_SORT_CARGO_CAPACITY                                  :Nosivost tereta
-STR_NO_WAITING_CARGO                                            :{BLACK}Nijedna vrsta tereta ne čeka
-STR_SELECT_ALL_FACILITIES                                       :{BLACK}Izaberi sva sredstva
-STR_SELECT_ALL_TYPES                                            :{BLACK}Izaberi sve vrste tereta (uključujući i teret koji ne čeka)
-STR_AVAILABLE_TRAINS                                            :{BLACK}Dostupni vlakovi
-STR_AVAILABLE_ROAD_VEHICLES                                     :{BLACK}Dostupna vozila
-STR_AVAILABLE_SHIPS                                             :{BLACK}Dostupni brodovi
-STR_AVAILABLE_AIRCRAFT                                          :{BLACK}Dostupni zrakoplovi
-STR_AVAILABLE_ENGINES_TIP                                       :{BLACK}Pogledaj popis dostupnih dizajna motora za ovu vrstu vozila.
-STR_MANAGE_LIST                                                 :{BLACK}Uredi popis
-STR_MANAGE_LIST_TIP                                             :{BLACK}Pošalji upute svim vozilima na ovoj listi
-STR_REPLACE_VEHICLES                                            :Zamjeni vozila
-STR_SEND_TRAIN_TO_DEPOT                                         :Pošalji u spremište
-STR_SEND_ROAD_VEHICLE_TO_DEPOT                                  :
-STR_SEND_SHIP_TO_DEPOT                                          :
-STR_SEND_AIRCRAFT_TO_HANGAR                                     :Pošalji u hangar
-STR_SEND_FOR_SERVICING                                          :Pošalji na servis
-
-############ range for months starts
-STR_0162_JAN                                                    :Sij
-STR_0163_FEB                                                    :Velj
-STR_0164_MAR                                                    :Ožu
-STR_0165_APR                                                    :Tra
-STR_0166_MAY                                                    :Svi
-STR_0167_JUN                                                    :Lip
-STR_0168_JUL                                                    :Srp
-STR_0169_AUG                                                    :Kol
-STR_016A_SEP                                                    :Ruj
-STR_016B_OCT                                                    :Lis
-STR_016C_NOV                                                    :Stu
-STR_016D_DEC                                                    :Pro
-############ range for months ends
-
-STR_016E                                                        :{TINYFONT}{STRING}{} {STRING}
-STR_016F                                                        :{TINYFONT}{STRING}{} {STRING}{}{NUM}
-STR_0170                                                        :{TINYFONT}{STRING}-
-STR_0171_PAUSE_GAME                                             :{BLACK}Zaustavi igru
-STR_0172_SAVE_GAME_ABANDON_GAME                                 :{BLACK}Spremi igru, napusti igru, prekini igru
-STR_0173_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Prikaži popis stanica u vlasništvu tvrke
-STR_0174_DISPLAY_MAP                                            :{BLACK}Prikaži kartu
-STR_0175_DISPLAY_MAP_TOWN_DIRECTORY                             :{BLACK}Prikaži kartu, popis gradova
-STR_0176_DISPLAY_TOWN_DIRECTORY                                 :{BLACK}Prikaži popis gradova
-STR_0177_DISPLAY_COMPANY_FINANCES                               :{BLACK}Prikaži financijske podatke tvrke
-STR_0178_DISPLAY_COMPANY_GENERAL                                :{BLACK}Prikaži opće podatke tvrtke
-STR_0179_DISPLAY_GRAPHS                                         :{BLACK}Prikaži grafove
-STR_017A_DISPLAY_COMPANY_LEAGUE                                 :{BLACK}Prikaži tablicu lige tvrtki
-STR_017B_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Prikaži popis vlakova u posjedu tvrtke
-STR_017C_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Prikaži popis cestovnih vozila u posjedu tvrke
-STR_017D_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Prikaž popis brodova u posjedu tvrke
-STR_017E_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Prikaži popis zrakoplova u posjedu tvrtke
-STR_017F_ZOOM_THE_VIEW_IN                                       :{BLACK}Približi pogled
-STR_0180_ZOOM_THE_VIEW_OUT                                      :{BLACK}Udalji pogled
-STR_0181_BUILD_RAILROAD_TRACK                                   :{BLACK}Izgradi željezničku prugu
-STR_0182_BUILD_ROADS                                            :{BLACK}Izgradi ceste
-STR_0183_BUILD_SHIP_DOCKS                                       :{BLACK}Izgradi pristaništa za brodove
-STR_0184_BUILD_AIRPORTS                                         :{BLACK}Izgradi zračne luke
-STR_0185_PLANT_TREES_PLACE_SIGNS                                :{BLACK}Posadi drveće, postavi znakove itd.
-STR_0186_LAND_BLOCK_INFORMATION                                 :{BLACK}Podaci o zemlji
-STR_0187_OPTIONS                                                :{BLACK}Postavke
-STR_0188                                                        :{BLACK}{SMALLUPARROW}
-STR_0189                                                        :{BLACK}{SMALLDOWNARROW}
-STR_018A_CAN_T_CHANGE_SERVICING                                 :{WHITE}Nije moguće promijeniti servisni interval...
-STR_018B_CLOSE_WINDOW                                           :{BLACK}Zatvori prozor
-STR_018C_WINDOW_TITLE_DRAG_THIS                                 :{BLACK}Naslov prozora - povuci ovo za micanje prozora
-STR_STICKY_BUTTON                                               :{BLACK}Označi ovaj prozor kao nezatvoriv kad se rabi tipka 'Zatvori sve prozore'
-STR_RESIZE_BUTTON                                               :{BLACK}Pritisni i povuci za promjenu veličine prozora
-STR_SAVELOAD_HOME_BUTTON                                        :{BLACK}Pritisni ovdje za prelazak u trenutnu pretpostavljenu mapu za snimanje/učitavanje
-STR_018D_DEMOLISH_BUILDINGS_ETC                                 :{BLACK}Uništi građevine itd. na kvadratu zemlje
-STR_018E_LOWER_A_CORNER_OF_LAND                                 :{BLACK}Snizi vrh kvadrata zemlje
-STR_018F_RAISE_A_CORNER_OF_LAND                                 :{BLACK}Povisi vrh kvadrata zemlje
-STR_0190_SCROLL_BAR_SCROLLS_LIST                                :{BLACK}Pomična traka - lista gore/dolje
-STR_0191_SHOW_LAND_CONTOURS_ON_MAP                              :{BLACK}Prikaži obrise zemlje na karti
-STR_0192_SHOW_VEHICLES_ON_MAP                                   :{BLACK}Prikaži vozila na karti
-STR_0193_SHOW_INDUSTRIES_ON_MAP                                 :{BLACK}Prikaži industrije na karti
-STR_0194_SHOW_TRANSPORT_ROUTES_ON                               :{BLACK}Prikaži prijevozne trase na karti
-STR_0195_SHOW_VEGETATION_ON_MAP                                 :{BLACK}Prikaži vegetaciju na karti
-STR_0196_SHOW_LAND_OWNERS_ON_MAP                                :{BLACK}Prikaži vlasnike zemlje na karti
-STR_0197_TOGGLE_TOWN_NAMES_ON_OFF                               :{BLACK}Prikaži/sakrij imena grada na karti
-STR_0198_PROFIT_THIS_YEAR_LAST_YEAR                             :{TINYFONT}{BLACK}Ovogodišnja zarada: {CURRENCY} (prošlogodišnja: {CURRENCY})
-
-############ range for service numbers starts
-STR_AGE                                                         :{COMMA} godin{P a e a} ({COMMA})
-STR_AGE_RED                                                     :{RED}{COMMA} godin{P a e a} ({COMMA})
-############ range for service numbers ends
-
-STR_019C_ROAD_VEHICLE                                           :Cestovno vozilo
-STR_019D_AIRCRAFT                                               :Zrakoplov
-STR_019E_SHIP                                                   :Brod
-STR_019F_TRAIN                                                  :Vlak
-STR_01A0_IS_GETTING_OLD                                         :{WHITE}{STRING} {COMMA} postaje star
-STR_01A1_IS_GETTING_VERY_OLD                                    :{WHITE}{STRING} {COMMA} postaje vrlo star
-STR_01A2_IS_GETTING_VERY_OLD_AND                                :{WHITE}{STRING} {COMMA} postaje vrlo star i hitno treba zamjenu
-STR_01A3_LAND_AREA_INFORMATION                                  :{WHITE}Podaci o zemlji
-STR_01A4_COST_TO_CLEAR_N_A                                      :{BLACK}Troškovi čišćenja: {LTBLUE}NIJE DOSTUPNO
-STR_01A5_COST_TO_CLEAR                                          :{BLACK}Troškovi čišćenja: {LTBLUE}{CURRENCY}
-STR_01A6_N_A                                                    :NIJE DOSTUPNO
-STR_01A7_OWNER                                                  :{BLACK}Vlasnik: {LTBLUE}{STRING}
-STR_01A8_LOCAL_AUTHORITY                                        :{BLACK}Područna nadležnost: {LTBLUE}{STRING}
-STR_01A9_NONE                                                   :Nijedan/Nitko/Ništa
-STR_01AA_NAME                                                   :{BLACK}Ime
-STR_01AB                                                        :{BLACK}{TINYFONT}{STRING}
-
-############ range for days starts
-STR_01AC_1ST                                                    :1.
-STR_01AD_2ND                                                    :2.
-STR_01AE_3RD                                                    :3.
-STR_01AF_4TH                                                    :4.
-STR_01B0_5TH                                                    :5.
-STR_01B1_6TH                                                    :6.
-STR_01B2_7TH                                                    :7.
-STR_01B3_8TH                                                    :8.
-STR_01B4_9TH                                                    :9.
-STR_01B5_10TH                                                   :10.
-STR_01B6_11TH                                                   :11.
-STR_01B7_12TH                                                   :12.
-STR_01B8_13TH                                                   :13.
-STR_01B9_14TH                                                   :14.
-STR_01BA_15TH                                                   :15.
-STR_01BB_16TH                                                   :16.
-STR_01BC_17TH                                                   :17.
-STR_01BD_18TH                                                   :18.
-STR_01BE_19TH                                                   :19.
-STR_01BF_20TH                                                   :20.
-STR_01C0_21ST                                                   :21.
-STR_01C1_22ND                                                   :22.
-STR_01C2_23RD                                                   :23.
-STR_01C3_24TH                                                   :24.
-STR_01C4_25TH                                                   :25.
-STR_01C5_26TH                                                   :26.
-STR_01C6_27TH                                                   :27.
-STR_01C7_28TH                                                   :28.
-STR_01C8_29TH                                                   :29.
-STR_01C9_30TH                                                   :30.
-STR_01CA_31ST                                                   :31.
-############ range for days ends
-
-STR_01CB                                                        :{TINYFONT}{COMMA}
-
-STR_01CE_CARGO_ACCEPTED                                         :{BLACK}Prihvaćeni teret: {LTBLUE}
-
-STR_01D1_8                                                      :({COMMA}/8 {STRING})
-STR_01D2_JAZZ_JUKEBOX                                           :{WHITE}Jazz Jukebox
-STR_01D3_SOUND_MUSIC                                            :Zvuk/glazba
-STR_01D4_SHOW_SOUND_MUSIC_WINDOW                                :{BLACK}Prikaži prozor zvuk/glazba
-STR_01D5_ALL                                                    :{TINYFONT}Sve
-STR_01D6_OLD_STYLE                                              :{TINYFONT}Staromodno
-STR_01D7_NEW_STYLE                                              :{TINYFONT}Moderno
-STR_01D8_EZY_STREET                                             :{TINYFONT}Laganica
-STR_01D9_CUSTOM_1                                               :{TINYFONT}Proizvoljno 1
-STR_01DA_CUSTOM_2                                               :{TINYFONT}Proizvoljno 2
-STR_01DB_MUSIC_VOLUME                                           :{BLACK}{TINYFONT}Glasnoća glazbe
-STR_01DC_EFFECTS_VOLUME                                         :{BLACK}{TINYFONT}Glasnoća zvukova
-STR_01DD_MIN_MAX                                                :{BLACK}{TINYFONT}MIN  '  '  ' '  '  '  MAX
-STR_01DE_SKIP_TO_PREVIOUS_TRACK                                 :{BLACK}Prethodna traka
-STR_01DF_SKIP_TO_NEXT_TRACK_IN_SELECTION                        :{BLACK}Sljedeća traka
-STR_01E0_STOP_PLAYING_MUSIC                                     :{BLACK}Zaustavi glazbu
-STR_01E1_START_PLAYING_MUSIC                                    :{BLACK}Pokreni glazbu
-STR_01E2_DRAG_SLIDERS_TO_SET_MUSIC                              :{BLACK}Povuci klizače za namještanje glasnoće glazbe i zvukova
-STR_01E3                                                        :{DKGREEN}{TINYFONT}--
-STR_01E4_0                                                      :{DKGREEN}{TINYFONT}0{COMMA}
-STR_01E5                                                        :{DKGREEN}{TINYFONT}{COMMA}
-STR_01E6                                                        :{DKGREEN}{TINYFONT}------
-STR_01E7                                                        :{DKGREEN}{TINYFONT}"{STRING}"
-STR_01E8_TRACK_XTITLE                                           :{BLACK}{TINYFONT}Traka{SETX 88}Naslov
-STR_01E9_SHUFFLE                                                :{TINYFONT}Miješaj
-STR_01EA_PROGRAM                                                :{TINYFONT}{BLACK}Program
-STR_01EB_MUSIC_PROGRAM_SELECTION                                :{WHITE}Izbor glazbenog programa
-STR_01EC_0                                                      :{TINYFONT}{LTBLUE}0{COMMA} "{STRING}"
-STR_01ED                                                        :{TINYFONT}{LTBLUE}{COMMA} "{STRING}"
-STR_01EE_TRACK_INDEX                                            :{TINYFONT}{BLACK}Popis traka
-STR_01EF_PROGRAM                                                :{TINYFONT}{BLACK}Program- '{STRING}'
-STR_01F0_CLEAR                                                  :{TINYFONT}{BLACK}Obriši
-STR_01F1_SAVE                                                   :{TINYFONT}{BLACK}Spremi
-STR_01F2_CURRENT_PROGRAM_OF_MUSIC                               :{BLACK}Aktivni glazbeni program
-STR_01F3_SELECT_ALL_TRACKS_PROGRAM                              :{BLACK}Odaberi program 'sve trake'
-STR_01F4_SELECT_OLD_STYLE_MUSIC                                 :{BLACK}Odaberi program 'staromodna glazba'
-STR_01F5_SELECT_NEW_STYLE_MUSIC                                 :{BLACK}Odaberi program 'moderna glazba'
-STR_01F6_SELECT_CUSTOM_1_USER_DEFINED                           :{BLACK}Odaberi program 'Proizvoljna glazba 1'
-STR_01F7_SELECT_CUSTOM_2_USER_DEFINED                           :{BLACK}Odaberi program 'Proizvoljna glazba 2'
-STR_01F8_CLEAR_CURRENT_PROGRAM_CUSTOM1                          :{BLACK}Obriši aktivni program (samo Proizvoljno 1 ili Proizvoljno 2)
-STR_01F9_SAVE_MUSIC_SETTINGS                                    :{BLACK}Spremi glazbene postavke
-STR_01FA_CLICK_ON_MUSIC_TRACK_TO                                :{BLACK}Klikni na glazbenu traku za dodavanje u aktivni program (samo Proizvoljno 1 ili Proizvoljno 2)
-STR_01FB_TOGGLE_PROGRAM_SHUFFLE                                 :{BLACK}Ukluči/isključi miješanje programa
-STR_01FC_SHOW_MUSIC_TRACK_SELECTION                             :{BLACK}Prikaži prozor za izbor glazbenih traka
-STR_01FD_CLICK_ON_SERVICE_TO_CENTER                             :{BLACK}Pritisni na uslugu za centriranje pogleda na industriju/grad
-STR_01FE_DIFFICULTY                                             :{BLACK}Težina ({STRING})
-STR_01FF                                                        :{TINYFONT}{BLACK}{DATE_LONG}
-STR_0200_LAST_MESSAGE_NEWS_REPORT                               :Poslijednja poruka/vijest
-STR_0201_MESSAGE_SETTINGS                                       :Postavke poruka
-STR_MESSAGE_HISTORY_MENU                                        :Povijest poruka
-STR_0203_SHOW_LAST_MESSAGE_NEWS                                 :{BLACK}Prikaži zadnju poruku/vijest, prikaži postavke poruka
-STR_0204_MESSAGE_OPTIONS                                        :{WHITE}Mogućnosti poruka
-STR_0205_MESSAGE_TYPES                                          :{BLACK}Vrste poruka:
-STR_0206_ARRIVAL_OF_FIRST_VEHICLE                               :{YELLOW}Dolazak prvog vozila u stanicu igrača
-STR_0207_ARRIVAL_OF_FIRST_VEHICLE                               :{YELLOW}Dolazak prvog vozila u stanicu suparnika
-STR_0208_ACCIDENTS_DISASTERS                                    :{YELLOW}Nesreće / katastrofe
-STR_0209_COMPANY_INFORMATION                                    :{YELLOW}Podaci vezani za tvrtku
-STR_020A_ECONOMY_CHANGES                                        :{YELLOW}Promjene u gospodarstvu
-STR_020B_ADVICE_INFORMATION_ON_PLAYER                           :{YELLOW}Savjet / informacija o vozilima igrača
-STR_020C_NEW_VEHICLES                                           :{YELLOW}Nova vozila
-STR_020D_CHANGES_OF_CARGO_ACCEPTANCE                            :{YELLOW}Promjene u prihvaćanju tereta
-STR_020E_SUBSIDIES                                              :{YELLOW}Subvencije
-STR_020F_GENERAL_INFORMATION                                    :{YELLOW}Opće informacije
-STR_MESSAGES_ALL                                                :{YELLOW}Postavi sve tipove poruka na: Isključeno/Ukratko/Potpuno
-STR_MESSAGE_SOUND                                               :{YELLOW} Pusti zvuk za sve skraćene novinske poruke
-STR_0210_TOO_FAR_FROM_PREVIOUS_DESTINATIO                       :{WHITE}...predaleko od prethodnog odredišta
-STR_0211_TOP_COMPANIES_WHO_REACHED                              :{BIGFONT}{BLACK}Najbolje tvrtke koje su dosigle razinu {NUM}{}({STRING})
-STR_0212                                                        :{BIGFONT}{COMMA}.
-STR_0213_BUSINESSMAN                                            :Privrednik
-STR_0214_ENTREPRENEUR                                           :Poduzetnik
-STR_0215_INDUSTRIALIST                                          :Industrijalist
-STR_0216_CAPITALIST                                             :Kapitalist
-STR_0217_MAGNATE                                                :Velikaš
-STR_0218_MOGUL                                                  :Bogataš
-STR_0219_TYCOON_OF_THE_CENTURY                                  :Tajkun stoljeća
-STR_HIGHSCORE_NAME                                              :{BIGFONT}{PLAYERNAME}, {COMPANY}
-STR_HIGHSCORE_STATS                                             :{BIGFONT}'{STRING}'   ({COMMA})
-STR_021B_ACHIEVES_STATUS                                        :{BLACK}{BIGFONT}{COMPANY} postigao je status '{STRING}' !
-STR_021C_OF_ACHIEVES_STATUS                                     :{WHITE}{BIGFONT}{PLAYERNAME} iz {COMPANY} postigao je status '{STRING}' !
-STR_021F                                                        :{BLUE}{COMMA}
-STR_0221_OPENTTD                                                :{YELLOW}OpenTTD
-STR_0222_SCENARIO_EDITOR                                        :{YELLOW}Uređivanje scenarija
-STR_0223_LAND_GENERATION                                        :{WHITE}Stvaranje zemljišta
-STR_0224                                                        :{BLACK}{UPARROW}
-STR_0225                                                        :{BLACK}{DOWNARROW}
-STR_0228_INCREASE_SIZE_OF_LAND_AREA                             :{BLACK}Povećaj područje koje će biti povišeno/sniženo
-STR_0229_DECREASE_SIZE_OF_LAND_AREA                             :{BLACK}Smanji podrčje koje će biti povišeno/sniženo
-STR_022A_GENERATE_RANDOM_LAND                                   :{BLACK}Napravi nasumično zemljište
-STR_022B_RESET_LANDSCAPE                                        :{BLACK}Poništi krajolik
-STR_022C_RESET_LANDSCAPE                                        :{WHITE}Poništi krajolik
-STR_RESET_LANDSCAPE_TOOLTIP                                     :{BLACK}Obriši sa mape sve u vlasništvu igrača
-STR_RESET_LANDSCAPE_CONFIRMATION_TEXT                           :{WHITE}Jeste li sigurni da želite obrisati sve u vlasništvu igrača?
-STR_022E_LANDSCAPE_GENERATION                                   :{BLACK}Stvaranje krajolika
-STR_022F_TOWN_GENERATION                                        :{BLACK}Stvaranje gradova
-STR_0230_INDUSTRY_GENERATION                                    :{BLACK}Stvaranje industrija
-STR_0231_ROAD_CONSTRUCTION                                      :{BLACK}Izgradnja ceste
-STR_0233_TOWN_GENERATION                                        :{WHITE}Stvaranje gradova
-STR_0234_NEW_TOWN                                               :{BLACK}Novi grad
-STR_0235_CONSTRUCT_NEW_TOWN                                     :{BLACK}Izgradi novi grad
-STR_0236_CAN_T_BUILD_TOWN_HERE                                  :{WHITE}Ovdje nije moguće graditi...
-STR_0237_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}...preblizu rubu karte
-STR_0238_TOO_CLOSE_TO_ANOTHER_TOWN                              :{WHITE}...preblizu drugog grada
-STR_0239_SITE_UNSUITABLE                                        :{WHITE}...neprikladno mjesto
-STR_023A_TOO_MANY_TOWNS                                         :{WHITE}...previše gradova
-STR_CANNOT_GENERATE_TOWN                                        :{WHITE}Nije moguće graditi gradove
-STR_NO_SPACE_FOR_TOWN                                           :{WHITE}...nema više mjesta na karti
-STR_023B_INCREASE_SIZE_OF_TOWN                                  :{BLACK}Povećaj stanovništvo grada
-STR_023C_EXPAND                                                 :{BLACK}Proširi
-STR_023D_RANDOM_TOWN                                            :{BLACK}Nasumičan grad
-STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION                          :{BLACK}Izgradi grad na nasumično odabranom pložaju
-STR_023F_INDUSTRY_GENERATION                                    :{WHITE}Stvaranje industrije
-STR_0240_COAL_MINE                                              :{BLACK}Rudnik ugljena
-STR_0241_POWER_STATION                                          :{BLACK}Elektrana
-STR_0242_SAWMILL                                                :{BLACK}Pilana
-STR_0243_FOREST                                                 :{BLACK}Šuma
-STR_0244_OIL_REFINERY                                           :{BLACK}Rafinerija nafte
-STR_0245_OIL_RIG                                                :{BLACK}Naftna platforma
-STR_0246_FACTORY                                                :{BLACK}Tvornica
-STR_0247_STEEL_MILL                                             :{BLACK}Čeličana
-STR_0248_FARM                                                   :{BLACK}Farma
-STR_0249_IRON_ORE_MINE                                          :{BLACK}Rudnik željeza
-STR_024A_OIL_WELLS                                              :{BLACK}Naftna polja
-STR_024B_BANK                                                   :{BLACK}Banka
-STR_024C_PAPER_MILL                                             :{BLACK}Tvornica papira
-STR_024D_FOOD_PROCESSING_PLANT                                  :{BLACK}Tvornica hrane
-STR_024E_PRINTING_WORKS                                         :{BLACK}Tiskara
-STR_024F_GOLD_MINE                                              :{BLACK}Rudnik zlata
-STR_0250_LUMBER_MILL                                            :{BLACK}Pilana
-STR_0251_FRUIT_PLANTATION                                       :{BLACK}Plantaža voća
-STR_0252_RUBBER_PLANTATION                                      :{BLACK}Plantaža gume
-STR_0253_WATER_SUPPLY                                           :{BLACK}Izvor vode
-STR_0254_WATER_TOWER                                            :{BLACK}Vodotoranj
-STR_0255_DIAMOND_MINE                                           :{BLACK}Rudnik dijamanata
-STR_0256_COPPER_ORE_MINE                                        :{BLACK}Rudnik bakra
-STR_0257_COTTON_CANDY_FOREST                                    :{BLACK}Šuma šećerne vune
-STR_0258_CANDY_FACTORY                                          :{BLACK}Tvornica slatkiša
-STR_0259_BATTERY_FARM                                           :{BLACK}Tvornica baterija
-STR_025A_COLA_WELLS                                             :{BLACK}Izvor Cole
-STR_025B_TOY_SHOP                                               :{BLACK}Trgovina igračkama
-STR_025C_TOY_FACTORY                                            :{BLACK}Tvornica igračaka
-STR_025D_PLASTIC_FOUNTAINS                                      :{BLACK}Izvori plastike
-STR_025E_FIZZY_DRINK_FACTORY                                    :{BLACK}Tvornica gaziranih pića
-STR_025F_BUBBLE_GENERATOR                                       :{BLACK}Generator balona
-STR_0260_TOFFEE_QUARRY                                          :{BLACK}Iskop mliječne karamele
-STR_0261_SUGAR_MINE                                             :{BLACK}Rudnik šećera
-STR_0262_CONSTRUCT_COAL_MINE                                    :{BLACK}Izgradi rudnik ugljena
-STR_0263_CONSTRUCT_POWER_STATION                                :{BLACK}Izgradi elektranu
-STR_0264_CONSTRUCT_SAWMILL                                      :{BLACK}Izgradi pilanu
-STR_0265_PLANT_FOREST                                           :{BLACK}Posadi šumu
-STR_0266_CONSTRUCT_OIL_REFINERY                                 :{BLACK}Izgradi naftnu rafineriju
-STR_0267_CONSTRUCT_OIL_RIG_CAN_ONLY                             :{BLACK}Izgradi naftnu bušotinu (može biti sagrađena samo blizu rubova karte)
-STR_0268_CONSTRUCT_FACTORY                                      :{BLACK}Izgradi tvornicu
-STR_0269_CONSTRUCT_STEEL_MILL                                   :{BLACK}Izgradi čeličanu
-STR_026A_CONSTRUCT_FARM                                         :{BLACK}Izgradi farmu
-STR_026B_CONSTRUCT_IRON_ORE_MINE                                :{BLACK}Izgradi rudnik bakra
-STR_026C_CONSTRUCT_OIL_WELLS                                    :{BLACK}Izgradi naftna polja
-STR_026D_CONSTRUCT_BANK_CAN_ONLY                                :{BLACK}Izgradi banku (može biti izgrađena samo u gradovima s više od 1200 stanovnika)
-STR_026E_CONSTRUCT_PAPER_MILL                                   :{BLACK}Izgradi tvornicu papira
-STR_026F_CONSTRUCT_FOOD_PROCESSING                              :{BLACK}Izgradi tvornicu hrane
-STR_0270_CONSTRUCT_PRINTING_WORKS                               :{BLACK}Izgradi tiskaru
-STR_0271_CONSTRUCT_GOLD_MINE                                    :{BLACK}Izgradi rudnik zlata
-STR_0272_CONSTRUCT_BANK_CAN_ONLY                                :{BLACK}Izgradi banku (može biti izgrađena samo u gradovima)
-STR_0273_CONSTRUCT_LUMBER_MILL_TO                               :{BLACK}Construct pilanu (za sječu prašume i proizvodnju drva)
-STR_0274_PLANT_FRUIT_PLANTATION                                 :{BLACK}Posadi plantažu voća
-STR_0275_PLANT_RUBBER_PLANTATION                                :{BLACK}Posadi plantažu gume
-STR_0276_CONSTRUCT_WATER_SUPPLY                                 :{BLACK}Iskopaj izvor vode
-STR_0277_CONSTRUCT_WATER_TOWER_CAN                              :{BLACK}Izgradi vodotoranj (može biti izgrađen samo u gradovima)
-STR_0278_CONSTRUCT_DIAMOND_MINE                                 :{BLACK}Izgradi rudnik dijamanata
-STR_0279_CONSTRUCT_COPPER_ORE_MINE                              :{BLACK}Izgradi rudnik bakra
-STR_027A_PLANT_COTTON_CANDY_FOREST                              :{BLACK}Posadi šumu šećerne vune
-STR_027B_CONSTRUCT_CANDY_FACTORY                                :{BLACK}Izgradi tvornicu slatkiša
-STR_027C_CONSTRUCT_BATTERY_FARM                                 :{BLACK}Izgradi tvornicu baterija
-STR_027D_CONSTRUCT_COLA_WELLS                                   :{BLACK}Iskopaj izvore Cole
-STR_027E_CONSTRUCT_TOY_SHOP                                     :{BLACK}Izgradi trgovinu igračkama
-STR_027F_CONSTRUCT_TOY_FACTORY                                  :{BLACK}Izgradi tvornicu igračaka
-STR_0280_CONSTRUCT_PLASTIC_FOUNTAINS                            :{BLACK}Iskopaj izvore plastike
-STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY                          :{BLACK}Izgradi tvornicu gaziranih pića
-STR_0282_CONSTRUCT_BUBBLE_GENERATOR                             :{BLACK}Izgradi generator balona
-STR_0283_CONSTRUCT_TOFFEE_QUARRY                                :{BLACK}Izgradi iskop milječne karamele
-STR_0284_CONSTRUCT_SUGAR_MINE                                   :{BLACK}Izgradi rudnik šećera
-STR_0285_CAN_T_BUILD_HERE                                       :{WHITE}Ne možeš graditi {STRING} ovdje...
-STR_0286_MUST_BUILD_TOWN_FIRST                                  :{WHITE}...moraš prvo izgraditi grad
-STR_0287_ONLY_ONE_ALLOWED_PER_TOWN                              :{WHITE}...dozvoljen samo jedan po gradu
-STR_0288_PLANT_TREES                                            :{BLACK}Posadi drveće
-STR_0289_PLACE_SIGN                                             :{BLACK}Stavi znak
-STR_028A_RANDOM_TREES                                           :{BLACK}Nasumično odabrano drveće
-STR_028B_PLANT_TREES_RANDOMLY_OVER                              :{BLACK}Nasumce posadi drveće po krajoliku
-STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE                         :{BLACK}Stavi stijenje na krajolik
-STR_028D_PLACE_LIGHTHOUSE                                       :{BLACK}Postavi svjetionik
-STR_028E_PLACE_TRANSMITTER                                      :{BLACK}Postavi odašiljač
-STR_028F_DEFINE_DESERT_AREA                                     :{BLACK}Odredi pustinjsko područje.{}Pritisni i drži CTRL za uklanjanje
-STR_CREATE_LAKE                                                 :
-STR_0290_DELETE                                                 :{BLACK}Obriši
-STR_0291_DELETE_THIS_TOWN_COMPLETELY                            :{BLACK}Obriši ovaj grad u cjelosti
-STR_0292_SAVE_SCENARIO                                          :Spremi scenarij
-STR_0293_LOAD_SCENARIO                                          :Učitaj secenarij
-STR_LOAD_HEIGHTMAP                                              :Učitaj visinsku kartu
-STR_0294_QUIT_EDITOR                                            :Završi s uređivanjem
-STR_0295                                                        :
-STR_0296_QUIT                                                   :Završi
-STR_0297_SAVE_SCENARIO_LOAD_SCENARIO                            :{BLACK}Snimi scenarij, učitaj scenarij, napusti uređivanje scenarija, završi
-STR_0298_LOAD_SCENARIO                                          :{WHITE}Učitaj scenarij
-STR_0299_SAVE_SCENARIO                                          :{WHITE}Spremi scenarij
-STR_029A_PLAY_SCENARIO                                          :{BLACK}Igraj scenarij
-STR_PLAY_HEIGHTMAP                                              :{BLACK}Igraj Rastersku Mapu
-STR_PLAY_HEIGHTMAP_HINT                                         :{BLACK}Pokreni novu igru, koristeći rastersku mapu kao krajolik
-STR_QUIT_SCENARIO_QUERY                                         :{YELLOW}Jeste li sigurni da želite završiti ovaj scenarij?
-STR_029C_QUIT_EDITOR                                            :{WHITE}Završi uređivanje
-STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}..može se izgraditi u gradovima sa najmanje 1200 stanovnika
-STR_029E_MOVE_THE_STARTING_DATE                                 :{BLACK}Pomakni početni datum 1 godinu unatrag
-STR_029F_MOVE_THE_STARTING_DATE                                 :{BLACK}Pomakni početni datum 1 godinu unaprijed
-STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH                               :{WHITE}...oba kraja mosta moraju biti na zemlji
-STR_02A1_SMALL                                                  :{BLACK}Malo
-STR_02A2_MEDIUM                                                 :{BLACK}Srednje
-STR_02A3_LARGE                                                  :{BLACK}Veliko
-STR_02A4_SELECT_TOWN_SIZE                                       :{BLACK}Izaberi veličinu grada
-STR_02A5_TOWN_SIZE                                              :{YELLOW}Veličina grada:
-
-STR_02B6                                                        :{STRING}  -  {STRING}
-STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Prikaži posljednu poruku ili vijest
-STR_OFF                                                         :Isključeno
-STR_SUMMARY                                                     :Sažetak
-STR_FULL                                                        :Puno
-STR_02BA                                                        :{SILVER}- -  {COMPANY}  - -
-STR_02BB_TOWN_DIRECTORY                                         :Popis gradova
-STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Imena dizajna vozila
-STR_02BD                                                        :{BLACK}{STRING}
-STR_02BE_DEFAULT                                                :Pretpostavljeno
-STR_02BF_CUSTOM                                                 :Prilagođeno
-STR_02C0_SAVE_CUSTOM_NAMES                                      :{BLACK}Spremi prilagođena imena
-STR_02C1_VEHICLE_DESIGN_NAMES_SELECTION                         :{BLACK}Odabir imena dizajna vozila
-STR_02C2_SAVE_CUSTOMIZED_VEHICLE                                :{BLACK}Spremi prilagođena imena dizajna vozila
-
-STR_CHECKMARK                                                   :{CHECKMARK}
-############ range for menu starts
-STR_02C3_GAME_OPTIONS                                           :Opcije igre
-STR_02C5_DIFFICULTY_SETTINGS                                    :Postavke težine
-STR_02C7_CONFIG_PATCHES                                         :Konfiguriraj zakrpe
-STR_NEWGRF_SETTINGS                                             :Postavke NewGRF-a
-STR_GAMEOPTMENU_0A                                              :
-STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}Prikazana imena gradova
-STR_02CC_STATION_NAMES_DISPLAYED                                :{SETX 12}Prikazana imena stanica
-STR_02CE_SIGNS_DISPLAYED                                        :{SETX 12}Prikazani znakovi
-STR_WAYPOINTS_DISPLAYED2                                        :{SETX 12}Prikazana čvorišta
-STR_02D0_FULL_ANIMATION                                         :{SETX 12}Sve animacije
-STR_02D2_FULL_DETAIL                                            :{SETX 12}Svi detalji
-STR_02D4_TRANSPARENT_BUILDINGS                                  :{SETX 12}Prozirne građevine
-STR_TRANSPARENT_SIGNS                                           :{SETX 12}Prozirni znakovi stanica
-############ range ends here
-
-############ range for menu starts
-STR_02D5_LAND_BLOCK_INFO                                        :Podatci o zemljištu
-STR_02D6                                                        :
-STR_CONSOLE_SETTING                                             :Otvori konzolu
-STR_02D7_SCREENSHOT_CTRL_S                                      :Slika zaslona (Ctrl-S)
-STR_02D8_GIANT_SCREENSHOT_CTRL_G                                :Ogromna slika zaslona (Ctrl-G)
-STR_02D9_ABOUT_OPENTTD                                          :O 'OpenTTD'
-############ range ends here
-
-STR_02DB_OFF                                                    :{BLACK}Isključeno
-STR_02DA_ON                                                     :{BLACK}Uključeno
-STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Prikaži subvencije
-STR_02DD_SUBSIDIES                                              :Subvencije
-STR_02DE_MAP_OF_WORLD                                           :Karta svijeta
-STR_EXTRA_VIEW_PORT                                             :Dodatni pogled
-STR_SIGN_LIST                                                   :Popis znakova
-STR_TRANSPARENCY_OPTIONS                                        :Opcije prozirnosti
-STR_02DF_TOWN_DIRECTORY                                         :Direktorij gradova
-STR_TOWN_POPULATION                                             :{BLACK}Svjetska populacija: {COMMA}
-STR_EXTRA_VIEW_PORT_TITLE                                       :{WHITE}Pogled {COMMA}
-STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN                                :{BLACK}Kopiraj u pogled
-STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT                             :{BLACK}Kopiraj lokaciju globalnog pogleda na ovaj mini pogled
-STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW                                :{BLACK}Zalijepi iz mini pogleda
-STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT                             :{BLACK}Zalijepi lokaciju ovog mini pogleda na globalni pogled
-
-STR_02E0_CURRENCY_UNITS                                         :{BLACK}Novčane jedinice
-STR_02E1                                                        :{BLACK}{SKIP}{STRING}
-STR_02E2_CURRENCY_UNITS_SELECTION                               :{BLACK}Odabir novčanih jedinica
-STR_MEASURING_UNITS                                             :{BLACK}Mjerne jedinice
-STR_02E4                                                        :{BLACK}{SKIP}{SKIP}{STRING}
-STR_MEASURING_UNITS_SELECTION                                   :{BLACK}Odabir mjernih jedinica
-STR_02E6_ROAD_VEHICLES                                          :{BLACK}Cestovna vozila
-STR_02E7                                                        :{BLACK}{SKIP}{SKIP}{SKIP}{STRING}
-STR_02E8_SELECT_SIDE_OF_ROAD_FOR                                :{BLACK}Izaberi na kojoj će strani ceste vozila prometovati
-STR_02E9_DRIVE_ON_LEFT                                          :Vozi na lijevoj strani
-STR_02EA_DRIVE_ON_RIGHT                                         :Vozi na desnoj strani
-STR_02EB_TOWN_NAMES                                             :{BLACK}Imena gradova
-STR_02EC                                                        :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_02ED_SELECT_STYLE_OF_TOWN_NAMES                             :{BLACK}Izaberi stil za imena gradova
-
-STR_02F4_AUTOSAVE                                               :{BLACK}Automatsko spremanje
-STR_02F5                                                        :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_02F6_SELECT_INTERVAL_BETWEEN                                :{BLACK}Odaberi interval između automatskih spremanja igre
-STR_02F7_OFF                                                    :Isključeno
-STR_02F8_EVERY_3_MONTHS                                         :Svaka 3 mjeseca
-STR_02F9_EVERY_6_MONTHS                                         :Svakih 6 mjeseci
-STR_02FA_EVERY_12_MONTHS                                        :Svakih 12 mjeseci
-STR_02FB_START_A_NEW_GAME                                       :{BLACK}Započni novu igru
-STR_02FC_LOAD_A_SAVED_GAME                                      :{BLACK}Učitaj spremljenu igru
-STR_02FE_CREATE_A_CUSTOMIZED_GAME                               :{BLACK}Izradi prilagođeni igrački svijet/scenarij
-STR_02FF_SELECT_SINGLE_PLAYER_GAME                              :{BLACK}Odaberi igru za jednog igrača
-STR_0300_SELECT_MULTIPLAYER_GAME                                :{BLACK}Odaberi igru za 2-8 igrača
-STR_0301_DISPLAY_GAME_OPTIONS                                   :{BLACK}Prikaži opcije igre
-STR_0302_DISPLAY_DIFFICULTY_OPTIONS                             :{BLACK}Prikaži opcije težine
-STR_0303_START_A_NEW_GAME_USING                                 :{BLACK}Započni novu igru koristeći prilagođeni scenarij
-STR_0304_QUIT                                                   :{BLACK}Završi
-STR_0305_QUIT_OPENTTD                                           :{BLACK}Završi 'OpenTTD'
-STR_0307_OPENTTD                                                :{WHITE}OpenTTD {REV}
-STR_030D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...može biti izgrađen samo u gradovima
-STR_030E_SELECT_TEMPERATE_LANDSCAPE                             :{BLACK}Odaberi 'umjeren' stil krajolika
-STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE                            :{BLACK}Odaberi 'subarktički' stil krajolika
-STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE                          :{BLACK}Odaberi 'subtropski' stil krajolika
-STR_0311_SELECT_TOYLAND_LANDSCAPE                               :{BLACK}Odaberi 'zemlju igračka' za stil krajolika
-STR_0312_FUND_CONSTRUCTION_OF_NEW                               :{BLACK}Financiraj izgradnju nove industrije
-
-############ range for menu starts
-STR_INDUSTRY_DIR                                                :Lista gospodarstava
-STR_0313_FUND_NEW_INDUSTRY                                      :Financiraj novo gospodarstvo
-############ range ends here
-
-STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Financiraj novu industriju
-STR_JUST_STRING                                                 :{STRING}
-STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...može biti izgrađen samo u gradovima
-STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...može biti izgrađen samo u predjelima kišnih šuma
-STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...može biti izgrađen samo u pustinjskim područjima
-STR_0319_PAUSED                                                 :{YELLOW}* *  STANKA  *  *
-
-STR_031B_SCREENSHOT_SUCCESSFULLY                                :{WHITE}Slika zaslona uspješno spremljena kao '{STRING}'
-STR_031C_SCREENSHOT_FAILED                                      :{WHITE}Slika zaslona nije uspjela!
-
-STR_0329_PURCHASE_LAND_FOR_FUTURE                               :{BLACK}Kupi zemlju za buduću uporabu
-STR_032F_AUTOSAVE                                               :{RED}AUTOMATSKO SPREMANJE
-STR_SAVING_GAME                                                 :{RED}*  *  SAVING GAME  *  *
-STR_SAVE_STILL_IN_PROGRESS                                      :{WHITE}Spremanje još u tijeku,{}molimo pričekajte dok se ne završi!
-STR_0330_SELECT_EZY_STREET_STYLE                                :{BLACK}Izaberi glazbeni program 'Ezy Street style'
-
-STR_0335_6                                                      :{BLACK}6
-STR_0336_7                                                      :{BLACK}7
-
-############ start of townname region
-STR_TOWNNAME_ORIGINAL_ENGLISH                                   :Engleski (original)
-STR_TOWNNAME_FRENCH                                             :Francuski
-STR_TOWNNAME_GERMAN                                             :Njemački
-STR_TOWNNAME_ADDITIONAL_ENGLISH                                 :Engleski (dodatno)
-STR_TOWNNAME_LATIN_AMERICAN                                     :Latinoamerički
-STR_TOWNNAME_SILLY                                              :Blesavo
-STR_TOWNNAME_SWEDISH                                            :Švedski
-STR_TOWNNAME_DUTCH                                              :Nizozemski
-STR_TOWNNAME_FINNISH                                            :Finski
-STR_TOWNNAME_POLISH                                             :Poljski
-STR_TOWNNAME_SLOVAKISH                                          :Slovački
-STR_TOWNNAME_NORWEGIAN                                          :Norveški
-STR_TOWNNAME_HUNGARIAN                                          :Mađarski
-STR_TOWNNAME_AUSTRIAN                                           :Austrijski
-STR_TOWNNAME_ROMANIAN                                           :Rumunjski
-STR_TOWNNAME_CZECH                                              :Češki
-STR_TOWNNAME_SWISS                                              :Švicarski
-STR_TOWNNAME_DANISH                                             :Danski
-STR_TOWNNAME_TURKISH                                            :Turski
-STR_TOWNNAME_ITALIAN                                            :Talijanski
-STR_TOWNNAME_CATALAN                                            :Katalonski
-############ end of townname region
-
-STR_CURR_GBP                                                    :Funte (£)
-STR_CURR_USD                                                    :Dolari ($)
-STR_CURR_EUR                                                    :Euri (€)
-STR_CURR_YEN                                                    :Jeni (¥)
-STR_CURR_ATS                                                    :Austrijski šiling (ATS)
-STR_CURR_BEF                                                    :Belgijski franak (BEF)
-STR_CURR_CHF                                                    :Švicarski franak (CHF)
-STR_CURR_CZK                                                    :Češka kruna (CZK)
-STR_CURR_DEM                                                    :Njemačka marka (DEM)
-STR_CURR_DKK                                                    :Danska kruna (DKK)
-STR_CURR_ESP                                                    :Pezeta (ESP)
-STR_CURR_FIM                                                    :Finska marka (FIM)
-STR_CURR_FRF                                                    :Franak (FRF)
-STR_CURR_GRD                                                    :Grčka drahma (GRD)
-STR_CURR_HUF                                                    :Mađarski forint (HUF)
-STR_CURR_ISK                                                    :Islandska kruna (ISK)
-STR_CURR_ITL                                                    :Talijanska lira (ITL)
-STR_CURR_NLG                                                    :Nizozemski gulden (NLG)
-STR_CURR_NOK                                                    :Norveška kruna (NOK)
-STR_CURR_PLN                                                    :Poljski zloti (PLN)
-STR_CURR_ROL                                                    :Rumunjski lev (ROL)
-STR_CURR_RUR                                                    :Ruske rublje (RUR)
-STR_CURR_SIT                                                    :Slovenski tolar (SIT)
-STR_CURR_SEK                                                    :Švedska kruna (SEK)
-STR_CURR_YTL                                                    :Turska lira(YTL)
-STR_CURR_SKK                                                    :Slovačka kruna (SKK)
-STR_CURR_BRR                                                    :Brazilski real (BRL)
-
-STR_CURR_CUSTOM                                                 :Proizvoljno...
-
-STR_OPTIONS_LANG                                                :{BLACK}Jezik
-STR_OPTIONS_LANG_CBO                                            :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_OPTIONS_LANG_TIP                                            :{BLACK}Izaberi jezično sučelje
-
-STR_OPTIONS_FULLSCREEN                                          :{BLACK}Cijeli ekran
-STR_OPTIONS_FULLSCREEN_TIP                                      :{BLACK}Označi ovu kućicu kako bi igrao OpenTTD preko cijelog ekrana
-
-STR_OPTIONS_RES                                                 :{BLACK}Razlučivost ekrana
-STR_OPTIONS_RES_CBO                                             :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_OPTIONS_RES_TIP                                             :{BLACK}Izaberi rezoluciju ekrana
-
-STR_OPTIONS_SCREENSHOT_FORMAT                                   :{BLACK}Format za sliku ekrana
-STR_OPTIONS_SCREENSHOT_FORMAT_CBO                               :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_OPTIONS_SCREENSHOT_FORMAT_TIP                               :{BLACK}Izaberi format za sliku ekrana
-
-STR_AUTOSAVE_1_MONTH                                            :Svaki mjesec
-STR_AUTOSAVE_FAILED                                             :{WHITE}Automatsko spremanje neuspješno
-
-STR_MONTH_JAN                                                   :Siječanj
-STR_MONTH_FEB                                                   :Veljača
-STR_MONTH_MAR                                                   :Ožujak
-STR_MONTH_APR                                                   :Travanj
-STR_MONTH_MAY                                                   :Svibanj
-STR_MONTH_JUN                                                   :Lipanj
-STR_MONTH_JUL                                                   :Srpanj
-STR_MONTH_AUG                                                   :Kolovoz
-STR_MONTH_SEP                                                   :Rujan
-STR_MONTH_OCT                                                   :Listopad
-STR_MONTH_NOV                                                   :Studeni
-STR_MONTH_DEC                                                   :Prosinac
-
-STR_HEADING_FOR_STATION                                         :{LTBLUE}Kreće se prema {STATION}
-STR_HEADING_FOR_STATION_VEL                                     :{LTBLUE}Kreće se prema {STATION}, {VELOCITY}
-STR_NO_ORDERS                                                   :{LTBLUE}Nema narudžbi
-STR_NO_ORDERS_VEL                                               :{LTBLUE}Nema narudžbi, {VELOCITY}
-
-STR_PASSENGERS                                                  :putnici
-STR_BAGS                                                        :vreće
-STR_TONS                                                        :tone
-STR_LITERS                                                      :litre
-STR_ITEMS                                                       :jedinice
-STR_CRATES                                                      :sanduci
-STR_RES_OTHER                                                   :ostalo
-STR_NOTHING                                                     :
-
-STR_SMALL_RIGHT_ARROW                                           :{TINYFONT}{RIGHTARROW}
-
-STR_CANT_SHARE_ORDER_LIST                                       :{WHITE}Nije moguće dijeliti rednu listu...
-STR_CANT_COPY_ORDER_LIST                                        :{WHITE}Nije moguće kopirati rednu listu...
-STR_END_OF_SHARED_ORDERS                                        :{SETX 10}- - Kraj dijeljenih naredbi - -
-
-STR_TRAIN_IS_LOST                                               :{WHITE}Vlak {COMMA} se izgubio.
-STR_TRAIN_IS_UNPROFITABLE                                       :{WHITE}Prošlogodišnja zarada vlaka  {COMMA} bila je {CURRENCY}
-STR_EURO_INTRODUCE                                              :{BLACK}{BIGFONT}Europska Monetarna Unija!{}{}Euro je predstavljen kao jedinstvena valuta za svakodnevnu uporabu  u tvojoj zemlji!
-
-# Start of order review system.
-# DON'T ADD OR REMOVE LINES HERE
-STR_TRAIN_HAS_TOO_FEW_ORDERS                                    :{WHITE} Vlak {COMMA} ima premalo naredbi u rasporedu
-STR_TRAIN_HAS_VOID_ORDER                                        :{WHITE}Vlak {COMMA} ima praznu naredbu
-STR_TRAIN_HAS_DUPLICATE_ENTRY                                   :{WHITE}Vlak {COMMA} ima udvostučenu naredbu
-STR_TRAIN_HAS_INVALID_ENTRY                                     :{WHITE}Vlak {COMMA} ima nevažeću stanicu u voznom redu
-STR_ROADVEHICLE_HAS_TOO_FEW_ORDERS                              :{WHITE}Cestovno vozilo {COMMA} ima premalo naredbi u rasporedu
-STR_ROADVEHICLE_HAS_VOID_ORDER                                  :{WHITE}Cestovno vozilo {COMMA} ima praznu naredbu
-STR_ROADVEHICLE_HAS_DUPLICATE_ENTRY                             :{WHITE}Cestovno vozilo {COMMA} ima udvostručenu naredbu
-STR_ROADVEHICLE_HAS_INVALID_ENTRY                               :{WHITE}Cestovno vozilo {COMMA} ima nevažeću stanicu u voznom redu
-STR_SHIP_HAS_TOO_FEW_ORDERS                                     :{WHITE}Brod {COMMA} ima premalo naredbi u rasporedu
-STR_SHIP_HAS_VOID_ORDER                                         :{WHITE}Brod {COMMA} ima praznu naredbu
-STR_SHIP_HAS_DUPLICATE_ENTRY                                    :{WHITE}Brod{COMMA} ima udvostručene naredbe
-STR_SHIP_HAS_INVALID_ENTRY                                      :{WHITE}Brod {COMMA} ima nevažeću stanicu u voznom redu
-STR_AIRCRAFT_HAS_TOO_FEW_ORDERS                                 :{WHITE}Zrakoplov {COMMA} ima premalo naredbi u rasporedu
-STR_AIRCRAFT_HAS_VOID_ORDER                                     :{WHITE}Zrakoplov {COMMA} ima praznu naredbu
-STR_AIRCRAFT_HAS_DUPLICATE_ENTRY                                :{WHITE}Zrakoplov {COMMA} ima udvostručene naredbe
-STR_AIRCRAFT_HAS_INVALID_ENTRY                                  :{WHITE}Zrakoplov {COMMA} ima nevažeću stanicu u voznom redu
-# end of order system
-
-STR_TRAIN_AUTORENEW_FAILED                                      :{WHITE}Neuspješna automatska obnova vlaka {COMMA} (ograničena količina novca)
-STR_ROADVEHICLE_AUTORENEW_FAILED                                :{WHITE}Automatska zamjena nije izvršena na cestovnom vozilu {COMMA} (money limit)
-STR_SHIP_AUTORENEW_FAILED                                       :{WHITE}Neuspješna automatska obnova broda {COMMA} (ograničena količina novca)
-STR_AIRCRAFT_AUTORENEW_FAILED                                   :{WHITE}Neuspjela automatska zamjena zrakoplova {COMMA} (novčano ograničenje)
-STR_TRAIN_TOO_LONG_AFTER_REPLACEMENT                            :{WHITE}Nakon zamjene, vlak {COMMA} je postao predug
-
-STR_CONFIG_PATCHES                                              :{BLACK}Konfiguriraj zakrpe
-STR_CONFIG_PATCHES_TIP                                          :{BLACK}Podesi zakrpe
-STR_CONFIG_PATCHES_CAPTION                                      :{WHITE}Podesi zakrpe
-
-STR_CONFIG_PATCHES_OFF                                          :Isključeno
-STR_CONFIG_PATCHES_ON                                           :Uključeno
-STR_CONFIG_PATCHES_VEHICLESPEED                                 :{LTBLUE}Prikaži brzinu vozila u statusnoj traci: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDONSLOPES                                :{LTBLUE}Dozvoli gradnju na nagibima i obalama: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_EXTRADYNAMITE                                :{LTBLUE}Dopusti rušenje više gradskih cesta, mostova itd.: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_MAMMOTHTRAINS                                :{LTBLUE}Omogući sastavljanje vrlo dugačkih vlakova: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_REALISTICACCEL                               :{LTBLUE}Omogući realno ubrzanje za vlakove: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FORBID_90_DEG                                :{LTBLUE}Zabrani vlakovima i brodovima skretanja pod 90 stupnjeva: {ORANGE}{STRING} {LTBLUE} (requires NPF)
-STR_CONFIG_PATCHES_JOINSTATIONS                                 :{LTBLUE}Spoji željezničke stanice koje se izgrade jedna kraj druge: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY                                  :{LTBLUE}Napusti stanicu ako je bilo koji teret u potpunosti natovaren pri 'punom utovaru': {ORANGE}{STRING}
-STR_CONFIG_PATCHES_IMPROVEDLOAD                                 :{LTBLUE}Koristi unaprijeđen algoritam ukrcavanja: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_GRADUAL_LOADING                              :{LTBLUE}Postupno utovaruj vozila: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_INFLATION                                    :{LTBLUE}Inflacija: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Dostavi teret u stanicu samo ako u njoj postoji potražnja: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Dopusti izgradnju vrlo dugačkih mostova: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Dopusti naredbe za slanje u spremište: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Dopusti izgadnju industrija koje proizvode sirovine: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Dopusti više sličnih industrija po gradu: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Moguće je graditi spojene industrije iste vrste: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Uvijek prikaži dugi datum u statusnoj traci: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SIGNALSIDE                                   :{LTBLUE}Prikaži znakove na strani po kojoj se vozi: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SHOWFINANCES                                 :{LTBLUE}Prikaži financijski prozor na kraju godine: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Dozvoli potkupljivanje gradskih vlasti: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Neujednačene stanice: {ORANGE}{STRING}
-
-STR_CONFIG_PATCHES_SMALL_AIRPORTS                               :{LTBLUE}Uvjek omogući male zračne luke: {ORANGE}{STRING}
-
-STR_CONFIG_PATCHES_WARN_LOST_TRAIN                              :{LTBLUE}Upozori kad se vlak izgubi: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ORDER_REVIEW_OFF                             :ne
-STR_CONFIG_PATCHES_ORDER_REVIEW_EXDEPOT                         :da, no isključi zaustavljena vozila
-STR_CONFIG_PATCHES_ORDER_REVIEW_ON                              :od svih vozila
-STR_CONFIG_PATCHES_WARN_INCOME_LESS                             :{LTBLUE}Upozori ako je prihod vlaka negativan: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_NEVER_EXPIRE_VEHICLES                        :{LTBLUE}Vozila ne zastaruju: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AUTORENEW_VEHICLE                            :{LTBLUE}Automatski zamijeni vozilo kada postane staro
-STR_CONFIG_PATCHES_AUTORENEW_MONTHS                             :{LTBLUE}Automatski obnovi vozilo kada je {ORANGE}{STRING}{LTBLUE} mjeseci prije/poslije maksimalnog godišta
-STR_CONFIG_PATCHES_AUTORENEW_MONEY                              :{LTBLUE}Minimum novca potrebnih za automatsko obnavljanje: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ERRMSG_DURATION                              :{LTBLUE}Trajanje poruke s greškom: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_POPULATION_IN_LABEL                          :{LTBLUE}Prikaži broj stanovnika u traci sa imenom grada: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_INVISIBLE_TREES                              :{LTBLUE}Nevidljivo drveće (sa prozirnim građevinama): {ORANGE}{STRING}
-
-STR_CONFIG_PATCHES_LAND_GENERATOR_ORIGINAL                      :Izvorno
-STR_CONFIG_PATCHES_LAND_GENERATOR_TERRA_GENESIS                 :TerraGenesis
-STR_CONFIG_PATCHES_OIL_REF_EDGE_DISTANCE                        :{LTBLUE}Maksimalna udaljenost Rafinerija nafte od ruba {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN                         :{LTBLUE}Grubost terena (samo TerraGenesis) : {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH             :Vrlo glatko
-STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_SMOOTH                  :Glatko
-STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_ROUGH                   :Grubo
-STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_ROUGH              :Vrlo grubo
-STR_CONFIG_PATCHES_TREE_PLACER                                  :{LTBLUE}Algoritam postavljanja drveća: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_TREE_PLACER_NONE                             :Nijedan
-STR_CONFIG_PATCHES_TREE_PLACER_ORIGINAL                         :Izvorno
-STR_CONFIG_PATCHES_TREE_PLACER_IMPROVED                         :Unaprijeđeno
-STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE         :Obrnuto smjeru kazaljke na satu
-STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_CLOCKWISE                 :U smjeru kazaljke na satu
-
-STR_CONFIG_PATCHES_STATION_SPREAD                               :{LTBLUE}Maksimalna raširenost stanice: {ORANGE}{STRING} {RED}Pozor: Visoka vrijednost usporuje igru
-STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Automatski servisiraj helikoptere na heliodromima: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR                       :{LTBLUE}Poveži alatnu traku za krajolik sa alatnim trakama za željeznicu/ceste/vodu/zračne luke: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SMOOTH_SCROLLING                             :{LTBLUE}Glatko skrolanje kroz mini pogled: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_LIVERIES_NONE                                :Ništa
-STR_CONFIG_PATCHES_LIVERIES_OWN                                 :Vlastita tvrtka
-STR_CONFIG_PATCHES_LIVERIES_ALL                                 :Sve tvrtke
-STR_CONFIG_PATCHES_SCROLLWHEEL_ZOOM                             :Zumiraj kartu
-STR_CONFIG_PATCHES_SCROLLWHEEL_SCROLL                           :Skrolaj kartom
-STR_CONFIG_PATCHES_SCROLLWHEEL_OFF                              :Isključeno
-STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER                       :{LTBLUE}Brzina kotačića za skrolanje: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Automatski pauziraj kad pokrećeš novu igru: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}Koristi naprednu listu vozila: {ORANGE}{STRING}
-
-STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Maksimalan broj vlakova po igraču: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Maximalan broj cestovnih vozila po igraču: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Maksimalan broj zrakoplova po igraču: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_MAX_SHIPS                                    :{LTBLUE}Maximalan broj brodova po igraču: {ORANGE}{STRING}
-
-STR_CONFIG_PATCHES_AI_BUILDS_TRAINS                             :{LTBLUE}Isključi vlakove za računalo: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AI_BUILDS_ROADVEH                            :{LTBLUE}Isključi cestovna vozila za računalo: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AI_BUILDS_AIRCRAFT                           :{LTBLUE}Isključi zrakoplov za računalo: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AI_BUILDS_SHIPS                              :{LTBLUE}Isključi cestovna vozila za računalo: {ORANGE}{STRING}
-
-STR_CONFIG_PATCHES_AINEW_ACTIVE                                 :{LTBLUE}Omogući novi AI (alfa): {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AI_IN_MULTIPLAYER                            :{LTBLUE}Omogući AI u modu s više igrača (eksperimentalno): {ORANGE}{STRING}
-
-STR_CONFIG_PATCHES_SERVINT_TRAINS                               :{LTBLUE}Pretpostavljeni period servisiranja vlakova: {ORANGE}{STRING} dana/%
-STR_CONFIG_PATCHES_SERVINT_TRAINS_DISABLED                      :{LTBLUE}Pretpostavljeni period servisiranja vlakova: {ORANGE}onemogućeno
-STR_CONFIG_PATCHES_SERVINT_ROADVEH                              :{LTBLUE}Pretpostavljeni period servisiranja cestovnih vozila: {ORANGE}{STRING} dana/%
-STR_CONFIG_PATCHES_SERVINT_ROADVEH_DISABLED                     :{LTBLUE}Pretpostavljeni period servisiranja cestovnih vozila: {ORANGE}onemogućeno
-STR_CONFIG_PATCHES_SERVINT_AIRCRAFT                             :{LTBLUE}Pretpostavljeni period servisiranja zrakoplova: {ORANGE}{STRING} dana/%
-STR_CONFIG_PATCHES_SERVINT_AIRCRAFT_DISABLED                    :{LTBLUE}Pretpostavljeni period servisiranja aviona: {ORANGE}onemogućeno
-STR_CONFIG_PATCHES_SERVINT_SHIPS                                :{LTBLUE}Pretpostavljeni period servisiranja brodova: {ORANGE}{STRING} dana/%
-STR_CONFIG_PATCHES_SERVINT_SHIPS_DISABLED                       :{LTBLUE}Pretpostavljeni period servisiranja brodova: {ORANGE}onemogućeno
-STR_CONFIG_PATCHES_WAGONSPEEDLIMITS                             :{LTBLUE}Uključi ograničenje brzine za vagone: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_DISABLE_ELRAILS                              :{LTBLUE}Onemogući električne tračnice: {ORANGE}{STRING}
-
-STR_CONFIG_PATCHES_COLORED_NEWS_YEAR                            :{LTBLUE}Vijesti u boji pojavljuju se: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_STARTING_YEAR                                :{LTBLUE}Početna godina: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ENDING_YEAR                                  :{LTBLUE}Završna godina: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SMOOTH_ECONOMY                               :{LTBLUE}Uključi tečnu ekonomiju (više manjih izazova)
-STR_CONFIG_PATCHES_ALLOW_SHARES                                 :{LTBLUE}Dopusti kupovanje udjela drugih tvrtki
-STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE                  :{LTBLUE}Automatski izgradi semafore prije: {ORANGE}{STRING}
-
-STR_CONFIG_PATCHES_TOWN_LAYOUT_NO_ROADS                         :nema više cesta
-STR_CONFIG_PATCHES_TOWN_LAYOUT_DEFAULT                          :inicijalno
-STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS                     :bolje ceste
-STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID                         :2x2 mreža
-STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID                         :3x3 mreža
-
-STR_CONFIG_PATCHES_TOOLBAR_POS                                  :{LTBLUE}Položaj glavne alatne trake: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT                             :Lijevo
-STR_CONFIG_PATCHES_TOOLBAR_POS_CENTER                           :Sredina
-STR_CONFIG_PATCHES_TOOLBAR_POS_RIGHT                            :Desno
-STR_CONFIG_PATCHES_TOWN_GROWTH                                  :{LTBLUE}Brzina rasta gradova: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_TOWN_GROWTH_NONE                             :Ništa
-STR_CONFIG_PATCHES_TOWN_GROWTH_SLOW                             :Sporo
-STR_CONFIG_PATCHES_TOWN_GROWTH_NORMAL                           :Normalno
-STR_CONFIG_PATCHES_TOWN_GROWTH_FAST                             :Brzo
-STR_CONFIG_PATCHES_TOWN_GROWTH_VERY_FAST                        :Vrlo brzo
-
-STR_CONFIG_PATCHES_GUI                                          :{BLACK}Sučelje
-STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Izgradnja
-STR_CONFIG_PATCHES_VEHICLES                                     :{BLACK}Vozila
-STR_CONFIG_PATCHES_STATIONS                                     :{BLACK}Stanice
-STR_CONFIG_PATCHES_ECONOMY                                      :{BLACK}Ekonomija
-STR_CONFIG_PATCHES_AI                                           :{BLACK}Konkurenti
-
-STR_CONFIG_PATCHES_DISABLED                                     :onemogućeno
-STR_CONFIG_PATCHES_INT32                                        :{NUM}
-STR_CONFIG_PATCHES_CURRENCY                                     :{CURRENCY}
-
-STR_CONFIG_PATCHES_QUERY_CAPT                                   :{WHITE}Promjeni vrijednost postavke
-STR_CONFIG_PATCHES_YAPF_SHIPS                                   :{LTBLUE}Koristi YAPF za brodove: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_YAPF_ROAD                                    :{LTBLUE}Koristi YAPF za cestovna vozila: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_YAPF_RAIL                                    :{LTBLUE}Koristi YAPF za vlakove: {ORANGE}{STRING}
-
-STR_TEMPERATE_LANDSCAPE                                         :Umjereni krajolik
-STR_SUB_ARCTIC_LANDSCAPE                                        :Pod-arktički krajolik
-STR_TOYLAND_LANDSCAPE                                           :Toyland krajolik
-
-STR_CHEATS                                                      :{WHITE}Varanje
-STR_CHEATS_TIP                                                  :{BLACK}Kvačice ukazuju na to jesi li koristio ovo varanje prije
-STR_CHEATS_WARNING                                              :{BLACK}Upozorenje! Upravo se spremaš izdati svoj kolege natjecatelje. Imaj na umu da se takva sramota pamti zauvijek.
-STR_CHEAT_MONEY                                                 :{LTBLUE}Povećava novce za {CURRENCY}
-STR_CHEAT_CHANGE_PLAYER                                         :{LTBLUE}Igraj kao igrač: {ORANGE}{COMMA}
-STR_CHEAT_EXTRA_DYNAMITE                                        :{LTBLUE}Čudesni buldožer (uklanja industrije, nepokretne objekte): {ORANGE}{STRING}
-STR_CHEAT_CROSSINGTUNNELS                                       :{LTBLUE}Tuneli se mogu ukrštavati međusobno: {ORANGE}{STRING}
-STR_CHEAT_BUILD_IN_PAUSE                                        :{LTBLUE}Gradi dok je vrijeme zaustavljeno: {ORANGE}{STRING}
-STR_CHEAT_NO_JETCRASH                                           :{LTBLUE}Veliki avioni se ne će rušiti (često) na malim zračnim lukama: {ORANGE} {STRING}
-STR_CHEAT_SWITCH_CLIMATE                                        :{LTBLUE}Promijeni klimu: {ORANGE} {STRING}
-STR_CHEAT_CHANGE_DATE                                           :{LTBLUE}Promijeni datum: {ORANGE} {DATE_SHORT}
-STR_CHEAT_SETUP_PROD                                            :{LTBLUE}Omogući izmjeni produkcijskih vrijednosti: {ORANGE}{STRING}
-
-STR_HEADING_FOR_WAYPOINT                                        :{LTBLUE}Ide prema {WAYPOINT}
-STR_HEADING_FOR_WAYPOINT_VEL                                    :{LTBLUE}Ide prema {WAYPOINT}, {VELOCITY}
-
-STR_GO_TO_WAYPOINT                                              :Idi preko {WAYPOINT}
-STR_GO_NON_STOP_TO_WAYPOINT                                     :Idi non-stop preko {WAYPOINT}
-
-STR_WAYPOINTNAME_CITY                                           : Čvorište{TOWN}
-STR_WAYPOINTNAME_CITY_SERIAL                                    :Čvorište {TOWN} #{COMMA}
-STR_LANDINFO_WAYPOINT                                           :Čvorište
-
-STR_WAYPOINT                                                    :{WHITE}Čvorište
-STR_WAYPOINT_GRAPHICS_TIP                                       :{BLACK}Odaberi vrstu čvorišta
-
-STR_WAYPOINT_VIEWPORT                                           :{WHITE}{WAYPOINT}
-STR_WAYPOINT_VIEWPORT_TINY                                      :{TINYFONT}{WHITE}{WAYPOINT}
-STR_WAYPOINT_RAW                                                :{WAYPOINT}
-STR_EDIT_WAYPOINT_NAME                                          :{WHITE}Promjeni ime čvorišta
-
-STR_CANT_CHANGE_WAYPOINT_NAME                                   :{WHITE}Ne možeš promijeniti ime smjerokaza...
-STR_CONVERT_RAIL_TO_WAYPOINT_TIP                                :{BLACK}Promijeni tračnicu u čvorište
-STR_CANT_BUILD_TRAIN_WAYPOINT                                   :{WHITE}Ne možeš izgraditi željeznički smjerokaz ovdje...
-STR_CANT_REMOVE_TRAIN_WAYPOINT                                  :{WHITE}Ne možeš ukloniti željeznički smjerokaz odavdje...
-
-STR_BUILD_AUTORAIL_TIP                                          :{BLACK}Izgradi željezničku tračnicu koristeći Autorail modus
-
-STR_NO_TOWN_IN_SCENARIO                                         :{WHITE}...u ovom scenariju nema gradova
-
-STR_GENERATE_RANDOM_LANDSCAPE                                   :{WHITE}Jeste li sigurni da želite napraviti nasumični krajolik?
-STR_MANY_RANDOM_TOWNS                                           :{BLACK}Mnogo nasumičnih gradova
-STR_RANDOM_TOWNS_TIP                                            :{BLACK}Popuni kartu nasumce smještenim gradovima
-STR_MANY_RANDOM_INDUSTRIES                                      :{BLACK}Mnoge nasumične industrije
-STR_RANDOM_INDUSTRIES_TIP                                       :{BLACK}Popuni kartu nasumce smještenim industrijama
-STR_CAN_T_GENERATE_INDUSTRIES                                   :{WHITE}Ne možeš generirati gospodarstva...
-
-STR_LANDSCAPING_TOOLBAR_TIP                                     :{BLACK}Otvori alatnu traku za snižavanje/povećavanje, sadnju drveća, itd.
-STR_LANDSCAPING_TOOLBAR                                         :{WHITE}Uređivanje krajolika
-STR_LEVEL_LAND_TOOLTIP                                          :{BLACK}Ravnanje površine
-
-
-STR_TREES_RANDOM_TYPE                                           :{BLACK}Raznovrsno drveće
-STR_TREES_RANDOM_TYPE_TIP                                       :{BLACK}Stavi drveće nasumičnog tipa
-
-STR_CANT_BUILD_CANALS                                           :{WHITE}Ovdje ne možeš graditi kanale...
-STR_BUILD_CANALS_TIP                                            :{BLACK}Izgradi kanale.
-STR_LANDINFO_CANAL                                              :Kanal
-
-
-STR_BUOY_IS_IN_USE                                              :{WHITE}...plutača je u uporabi!
-
-STR_LANDINFO_COORDS                                             :{BLACK}Koordinate: {LTBLUE}{NUM}x{NUM} ({STRING})
-
-STR_CANT_REMOVE_PART_OF_STATION                                 :{WHITE}Ne možeš ukloniti dio stanice...
-STR_CANT_CONVERT_RAIL                                           :{WHITE}Ne možeš pretvoriti vrstu tračnica ovdje...
-
-STR_DRAG_WHOLE_TRAIN_TO_SELL_TIP                                :{BLACK}Povucite lokomotivu na ovo mjesto da bi prodaoli cijeli vlak
-
-STR_DRAG_DROP                                                   :{BLACK}Povuci i spusti
-STR_STATION_DRAG_DROP                                           :{BLACK}Napravi stanicu koristeći drag & drop
-STR_SELECT_STATION_CLASS_TIP                                    :{BLACK}Odaberite vrstu stanice koju želite vidjeti
-STR_SELECT_STATION_TYPE_TIP                                     :{BLACK}Izaberite vrstu stanice za izgradnju
-
-STR_FAST_FORWARD                                                :{BLACK}Premotaj igru naprijed
-STR_MESSAGE_HISTORY                                             :{WHITE}Povijest poruka
-STR_MESSAGE_HISTORY_TIP                                         :{BLACK}Popis nedavnih novinskih poruka
-STR_MESSAGES_DISABLE_ALL                                        :{BLACK}Onemogući sve
-STR_MESSAGES_ENABLE_ALL                                         :{BLACK}Omogući sve
-
-STR_CONSTRUCT_COAL_MINE_TIP                                     :{BLACK}Izgradi rudnik ugljena
-STR_CONSTRUCT_FOREST_TIP                                        :{BLACK}Posadi šumu
-STR_CONSTRUCT_OIL_RIG_TIP                                       :{BLACK}Izgradi naftnu bušotinu
-STR_CONSTRUCT_FARM_TIP                                          :{BLACK}Financiraj farmu
-STR_CONSTRUCT_COPPER_ORE_MINE_TIP                               :{BLACK}Izgradi rudnik bakra
-STR_CONSTRUCT_OIL_WELLS_TIP                                     :{BLACK}Bušenjem traži naftu
-STR_CONSTRUCT_GOLD_MINE_TIP                                     :{BLACK}Izgradi rudnik zlata
-STR_CONSTRUCT_DIAMOND_MINE_TIP                                  :{BLACK}Izgradi rudnik dijamanata
-STR_CONSTRUCT_IRON_ORE_MINE_TIP                                 :{BLACK}Izgradi rudnik željeza
-STR_CONSTRUCT_FRUIT_PLANTATION_TIP                              :{BLACK}Financiraj plantažu voća
-STR_CONSTRUCT_RUBBER_PLANTATION_TIP                             :{BLACK}Financiraj plantažu gume
-STR_CONSTRUCT_WATER_SUPPLY_TIP                                  :{BLACK}Financiraj izvor vode
-STR_CONSTRUCT_COTTON_CANDY_TIP                                  :{BLACK}Posadi šumu šećerne vune
-STR_CONSTRUCT_BATTERY_FARM_TIP                                  :{BLACK}Financiraj tvornicu baterija
-STR_CONSTRUCT_COLA_WELLS_TIP                                    :{BLACK}Bušenjem traži Colu
-STR_CONSTRUCT_PLASTIC_FOUNTAINS_TIP                             :{BLACK}Financiraj izvore plastike
-STR_CONSTRUCT_BUBBLE_GENERATOR_TIP                              :{BLACK}Izgradi generator balona
-STR_CONSTRUCT_TOFFEE_QUARRY_TIP                                 :{BLACK}Financiraj kamenolom mliječne karamele
-STR_CONSTRUCT_SUGAR_MINE_TIP                                    :{BLACK}Izgradi šećeranu
-
-STR_INDUSTRYDIR_CAPTION                                         :{WHITE}Gospodarstva
-STR_INDUSTRYDIR_ITEM                                            :{ORANGE}{INDUSTRY}{BLACK} ({CARGO}){YELLOW} ({COMMA}% prevezeno)
-STR_INDUSTRYDIR_ITEM_TWO                                        :{ORANGE}{INDUSTRY}{BLACK} ({CARGO}/{CARGO}){YELLOW} ({COMMA}%/{COMMA}% prevezeno)
-STR_INDUSTRYDIR_ITEM_NOPROD                                     :{ORANGE}{INDUSTRY}
-
-STR_INDUSTRY_TOO_CLOSE                                          :{WHITE}...preblizu drugom gospodarstvu
-
-STR_RAIL_REFIT_VEHICLE_TO_CARRY                                 :{BLACK}Prepravi vlak kako bi nosio drugu vrstu tereta
-STR_RAIL_REFIT_VEHICLE                                          :{BLACK}Prepravi vlak
-STR_RAIL_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Izaberi vrstu tereta koju će vlak nositi
-STR_RAIL_REFIT_TO_CARRY_HIGHLIGHTED                             :{BLACK}Prepravi vlak kako bi nosio označenu vrstu tereta
-STR_RAIL_CAN_T_REFIT_VEHICLE                                    :{WHITE}Ne možeš prepraviti vlak...
-STR_CONFIG_PATCHES_SERVINT_ISPERCENT                            :{LTBLUE}Servisni intervali u postotcima: {ORANGE}{STRING}
-STR_CONFIG_GAME_PRODUCTION                                      :{WHITE}Promijeni proizvodnju
-
-TEMP_AI_IN_PROGRESS                                             :{WHITE}Dobrodošli u novi AI pod razvojem. Ukoliko naiđete na probleme, napravite sliku ekrana i stavite ju na forum.
-TEMP_AI_ACTIVATED                                               :{WHITE}Upozorenje: ovaj novi AI je još uvijek alfa! Trenutno, samo kamioni i autobusi rade!
-TEMP_AI_MULTIPLAYER                                             :{WHITE}Upozorenje: implementacije je još uvijek pokusna (koristeći novi AI). Molimo prijavite bilo kakav problem na truelight@openttd.org
-
-############ network gui strings
-
-STR_NETWORK_MULTIPLAYER                                         :{WHITE}Više igrača
-
-STR_NETWORK_PLAYER_NAME                                         :{BLACK}Ime igrača:
-STR_NETWORK_ENTER_NAME_TIP                                      :{BLACK}Ovo je ime po kojem će te drugi igrači identificirati
-STR_NETWORK_CONNECTION                                          :{BLACK}Veza:
-STR_NETWORK_CONNECTION_TIP                                      :{BLACK}Izaberi između internetske igre ili igre preko lokalne mreže (LAN)
-
-STR_NETWORK_START_SERVER                                        :{BLACK}Pokreni poslužitelj
-STR_NETWORK_START_SERVER_TIP                                    :{BLACK}Pokreni vlastiti poslužitelj
-
-STR_NETWORK_GAME_NAME                                           :{BLACK}Ime
-STR_NETWORK_GAME_NAME_TIP                                       :{BLACK}Ime igre
-STR_NETWORK_INFO_ICONS_TIP                                      :{BLACK}Jezik, verzija poslužitelja, itd.
-STR_NETWORK_CLICK_GAME_TO_SELECT                                :{BLACK}Klikni na igru s liste kako bi ju izabrao
-
-STR_NETWORK_FIND_SERVER                                         :{BLACK}Pronađi poslužitelj
-STR_NETWORK_FIND_SERVER_TIP                                     :{BLACK}Pronađi poslužitelje u mreži
-STR_NETWORK_ADD_SERVER                                          :{BLACK}Dodaj poslužitelj
-STR_NETWORK_ADD_SERVER_TIP                                      :{BLACK}Dodaje poslužitelj na popis koji će uvijek biti provjeren postoje li igre u tijeku.
-STR_NETWORK_ENTER_IP                                            :{BLACK}Unesi adresu domaćina
-
-STR_NETWORK_GENERAL_ONLINE                                      :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA}
-STR_NETWORK_CLIENTS_CAPTION                                     :{BLACK}Klijenti
-STR_NETWORK_CLIENTS_CAPTION_TIP                                 :{BLACK}Klijenata online / klijenata maks{}Tvrki online / tvrki maks
-STR_NETWORK_GAME_INFO                                           :{SILVER}INFO O IGRI
-STR_ORANGE                                                      :{ORANGE}{STRING}
-STR_NETWORK_CLIENTS                                             :{SILVER}Klijenti:  {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
-STR_NETWORK_LANGUAGE                                            :{SILVER}Jezik:  {WHITE}{STRING}
-STR_NETWORK_TILESET                                             :{SILVER}Set pločica:  {WHITE}{STRING}
-STR_NETWORK_MAP_SIZE                                            :{SILVER}Veličina karte:  {WHITE}{COMMA}x{COMMA}
-STR_NETWORK_SERVER_VERSION                                      :{SILVER}Verzija poslužitelja:  {WHITE}{STRING}
-STR_NETWORK_SERVER_ADDRESS                                      :{SILVER}Adresa poslužitelja:  {WHITE}{STRING} : {NUM}
-STR_NETWORK_START_DATE                                          :{SILVER}Datum početka:  {WHITE}{DATE_SHORT}
-STR_NETWORK_CURRENT_DATE                                        :{SILVER}Trenutni datum:  {WHITE}{DATE_SHORT}
-STR_NETWORK_PASSWORD                                            :{SILVER}Zaštićeno zaporkom!
-STR_NETWORK_SERVER_OFFLINE                                      :{SILVER}POSLUŽITELJ NEDOSTUPAN
-STR_NETWORK_SERVER_FULL                                         :{SILVER}POSLUŽITELJ PUN
-STR_NETWORK_VERSION_MISMATCH                                    :{SILVER}RAZLIKA U VERZIJAMA
-STR_NETWORK_GRF_MISMATCH                                        :{SILVER}NEWGRF GREŠKA
-
-STR_NETWORK_JOIN_GAME                                           :{BLACK}Pridruži se igri
-
-
-STR_NETWORK_START_GAME_WINDOW                                   :{WHITE}Započni novu igru za više igrača
-
-STR_NETWORK_NEW_GAME_NAME                                       :{BLACK}Ime igre:
-STR_NETWORK_NEW_GAME_NAME_TIP                                   :{BLACK}Ime igre bit će prikazno drugim igračima u izborniku za odabir igre s više igrača
-STR_NETWORK_SET_PASSWORD                                        :{BLACK}Postavi zaporku
-STR_NETWORK_PASSWORD_TIP                                        :{BLACK}Zaštiti svoju igru pomoću zaporke ukoliko ne želiš da bude javno dostupna
-STR_NETWORK_SELECT_MAP                                          :{BLACK}Izaberi kartu:
-STR_NETWORK_SELECT_MAP_TIP                                      :{BLACK}Koju kartu želiš igrati?
-STR_NETWORK_NUMBER_OF_CLIENTS                                   :{BLACK}Maks klijenata:
-STR_NETWORK_NUMBER_OF_CLIENTS_TIP                               :{BLACK}Izaberi maksimalan broj klijenata. Ne moraju sva mjesta biti popunjena.
-STR_NETWORK_COMBO1                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_NETWORK_LAN                                                 :LAN
-STR_NETWORK_INTERNET                                            :Internet
-STR_NETWORK_LAN_INTERNET                                        :LAN / Internet
-STR_NETWORK_INTERNET_ADVERTISE                                  :Internet (oglasi)
-STR_NETWORK_COMBO2                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_NETWORK_0_PLAYERS                                           :0 igrača
-STR_NETWORK_1_PLAYERS                                           :1 igrač
-STR_NETWORK_2_PLAYERS                                           :2 igrača
-STR_NETWORK_3_PLAYERS                                           :3 igrača
-STR_NETWORK_4_PLAYERS                                           :4 igrača
-STR_NETWORK_5_PLAYERS                                           :5 igrača
-STR_NETWORK_6_PLAYERS                                           :6 igrača
-STR_NETWORK_7_PLAYERS                                           :7 igrača
-STR_NETWORK_8_PLAYERS                                           :8 igrača
-STR_NETWORK_9_PLAYERS                                           :9 igrača
-STR_NETWORK_10_PLAYERS                                          :10 igrača
-STR_NETWORK_NUMBER_OF_COMPANIES                                 :{BLACK}Maks tvrki:
-STR_NETWORK_NUMBER_OF_COMPANIES_TIP                             :{BLACK}Ograniči poslužitelj na određeni broj tvrtki
-STR_NETWORK_COMBO3                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_NETWORK_NUMBER_OF_SPECTATORS                                :{BLACK}Maks promatrača:
-STR_NETWORK_NUMBER_OF_SPECTATORS_TIP                            :{BLACK}Ograniči poslužitelj na određeni broj gledatelja
-STR_NETWORK_COMBO4                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_NETWORK_LANGUAGE_SPOKEN                                     :{BLACK}Jezik kojim se govori:
-STR_NETWORK_LANGUAGE_TIP                                        :{BLACK}Drugi igrači znati će kojim se jezikom govori na poslužitelju
-STR_NETWORK_COMBO5                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_NETWORK_START_GAME                                          :{BLACK}Započni igru
-STR_NETWORK_START_GAME_TIP                                      :{BLACK}Započni novu igru u mreži na nasumičnoj mapi ili iz scenarija
-STR_NETWORK_LOAD_GAME                                           :{BLACK}Učitaj igru
-STR_NETWORK_LOAD_GAME_TIP                                       :{BLACK}Nastavi snimljenu igru za više igrača (pazite da se spojite pod svojim imenom)
-
-############ Leave those lines in this order!!
-STR_NETWORK_LANG_ANY                                            :Bilo koji
-STR_NETWORK_LANG_ENGLISH                                        :Engleski
-STR_NETWORK_LANG_GERMAN                                         :Njemački
-STR_NETWORK_LANG_FRENCH                                         :Francuski
-STR_NETWORK_LANG_BRAZILIAN                                      :Brazilski
-STR_NETWORK_LANG_BULGARIAN                                      :Bugarski
-STR_NETWORK_LANG_CHINESE                                        :Kineski
-STR_NETWORK_LANG_CZECH                                          :Češki
-STR_NETWORK_LANG_DANISH                                         :Danski
-STR_NETWORK_LANG_DUTCH                                          :Nizozemski
-STR_NETWORK_LANG_ESPERANTO                                      :Esperanto
-STR_NETWORK_LANG_FINNISH                                        :Finski
-STR_NETWORK_LANG_HUNGARIAN                                      :Mađarski
-STR_NETWORK_LANG_ICELANDIC                                      :Islandski
-STR_NETWORK_LANG_ITALIAN                                        :Talijanski
-STR_NETWORK_LANG_JAPANESE                                       :Japanski
-STR_NETWORK_LANG_KOREAN                                         :Korejski
-STR_NETWORK_LANG_LITHUANIAN                                     :Litavski
-STR_NETWORK_LANG_NORWEGIAN                                      :Norveški
-STR_NETWORK_LANG_POLISH                                         :Poljski
-STR_NETWORK_LANG_PORTUGUESE                                     :Portugalski
-STR_NETWORK_LANG_ROMANIAN                                       :Rumunjski
-STR_NETWORK_LANG_RUSSIAN                                        :Ruski
-STR_NETWORK_LANG_SLOVAK                                         :Slovački
-STR_NETWORK_LANG_SLOVENIAN                                      :Slovenski
-STR_NETWORK_LANG_SPANISH                                        :Španjolski
-STR_NETWORK_LANG_SWEDISH                                        :Švedski
-STR_NETWORK_LANG_TURKISH                                        :Turski
-STR_NETWORK_LANG_UKRAINIAN                                      :Ukrajinski
-############ End of leave-in-this-order
-
-STR_NETWORK_GAME_LOBBY                                          :{WHITE}Predvorje multiplayer igre
-
-STR_NETWORK_PREPARE_TO_JOIN                                     :{BLACK}Pripremanje za pridruživanje:   {ORANGE}{STRING}
-STR_NETWORK_COMPANY_LIST_TIP                                    :{BLACK}Popis svih kompanija trenutno u igri. Možete se pridružiti jednoj ili osnovati novu ako postoji slobodno mjesto
-STR_NETWORK_NEW_COMPANY                                         :{BLACK}Nova tvrtka
-STR_NETWORK_NEW_COMPANY_TIP                                     :{BLACK}Otvori novu tvrtku
-STR_NETWORK_SPECTATE_GAME                                       :{BLACK}Gledaj igru
-STR_NETWORK_SPECTATE_GAME_TIP                                   :{BLACK}Promatraj igru kao gledatelj
-STR_NETWORK_JOIN_COMPANY                                        :{BLACK}Pridruži se tvrtki
-STR_NETWORK_JOIN_COMPANY_TIP                                    :{BLACK}Pomogni upravljati ovom tvrtkom
-STR_NETWORK_REFRESH                                             :{BLACK}Osvježi poslužitelja
-STR_NETWORK_REFRESH_TIP                                         :{BLACK}Osvježi podatke o poslužitelju
-
-STR_NETWORK_COMPANY_INFO                                        :{SILVER}PODACI O TVRTKI
-
-STR_NETWORK_COMPANY_NAME                                        :{SILVER}Ime tvrtke:  {WHITE}{STRING}
-STR_NETWORK_INAUGURATION_YEAR                                   :{SILVER}Preuzimanje dužnosti:  {WHITE}{NUM}
-STR_NETWORK_VALUE                                               :{SILVER}Vrijednost tvrtke:  {WHITE}{CURRENCY}
-STR_NETWORK_CURRENT_BALANCE                                     :{SILVER}Trenutno stanje:  {WHITE}{CURRENCY}
-STR_NETWORK_LAST_YEARS_INCOME                                   :{SILVER}Prošlogodišnji prihod:  {WHITE}{CURRENCY}
-STR_NETWORK_PERFORMANCE                                         :{SILVER}Izvršavanje: {WHITE}{NUM}
-
-STR_NETWORK_VEHICLES                                            :{SILVER}Vozila:  {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {PLANE}, {NUM} {SHIP}
-STR_NETWORK_STATIONS                                            :{SILVER}Stanice:  {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {PLANE}, {NUM} {SHIP}
-STR_NETWORK_PLAYERS                                             :{SILVER}Igrači:  {WHITE}{STRING}
-
-STR_NETWORK_CONNECTING                                          :{WHITE}Spajanje...
-
-############ Leave those lines in this order!!
-STR_NETWORK_CONNECTING_1                                        :{BLACK}(1/6) Spajanje u toku..
-STR_NETWORK_CONNECTING_2                                        :{BLACK}(2/6) Provjera ovlaštenja..
-STR_NETWORK_CONNECTING_3                                        :{BLACK}(3/6) Čekanje..
-STR_NETWORK_CONNECTING_4                                        :{BLACK}(4/6) Preuzimanje karte..
-STR_NETWORK_CONNECTING_5                                        :{BLACK}(5/6) Obrada podataka..
-STR_NETWORK_CONNECTING_6                                        :{BLACK}(6/6) Prijavljivanje..
-
-STR_NETWORK_CONNECTING_SPECIAL_1                                :{BLACK}Dohvaćanje podataka o igri..
-STR_NETWORK_CONNECTING_SPECIAL_2                                :{BLACK}Dohvaćanje podataka o tvrtki..
-############ End of leave-in-this-order
-STR_NETWORK_CONNECTING_WAITING                                  :{BLACK}{NUM} klijen{P t ta ata} {P je su je} prije Vas
-STR_NETWORK_CONNECTING_DOWNLOADING                              :{BLACK} Do sad je preuzeto {NUM} / {NUM} kbajta
-
-STR_NETWORK_DISCONNECT                                          :{BLACK}Odspoji
-
-STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Unesite količinu novca koju želite dati
-STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Poslužitelj je zaštićen. Upišite zaporku
-STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Tvrtka je zaštićena. Unesite zaporku
-STR_NETWORK_CLIENT_LIST                                         :{WHITE}Popis klijenata
-
-STR_NETWORK_ERR_NOTAVAILABLE                                    :{WHITE}Nisu pronađeni mrežni uređaji ili je kompajlirano bez ENABLE_NETWORK
-STR_NETWORK_ERR_NOSERVER                                        :{WHITE} Niti jedna mrežna igra nije pronađena
-STR_NETWORK_ERR_NOCONNECTION                                    :{WHITE} Poslužitelj nije odgovorio na zahtjev
-STR_NETWORK_ERR_NEWGRF_MISMATCH                                 :{WHITE} Ne mogu se spojiti zbog neslaganja u NewGRF
-STR_NETWORK_ERR_DESYNC                                          :{WHITE} Neuspješno usklađivanje mrežne igre
-STR_NETWORK_ERR_LOSTCONNECTION                                  :{WHITE} Izgubljena veza sa mrežnom igrom
-STR_NETWORK_ERR_SAVEGAMEERROR                                   :{WHITE} Nemoguće je učitati snimljenu igru
-STR_NETWORK_ERR_SERVER_START                                    :{WHITE} Nemoguće je pokrenuti poslužitelja
-STR_NETWORK_ERR_CLIENT_START                                    :{WHITE} Nije se moguće spojiti
-STR_NETWORK_ERR_TIMEOUT                                         :{WHITE} Istekla je veza #{NUM}
-STR_NETWORK_ERR_SERVER_ERROR                                    :{WHITE} Napravljena je greška u protokolu te se veza prekinula
-STR_NETWORK_ERR_WRONG_REVISION                                  :{WHITE}Revizija ovog klijenta ne slaže se sa revizijom servera
-STR_NETWORK_ERR_WRONG_PASSWORD                                  :{WHITE} Pogrešna zaporka
-STR_NETWORK_ERR_SERVER_FULL                                     :{WHITE} Poslužitelj je pun
-STR_NETWORK_ERR_SERVER_BANNED                                   :{WHITE} Zabranjen vam je pristup ovom poslužitelju
-STR_NETWORK_ERR_KICKED                                          :{WHITE} Izbačeni ste iz igre
-STR_NETWORK_ERR_CHEATER                                         :{WHITE} Na ovom poslužitelju nije dopušteno varanje
-
-STR_NETWORK_ERR_LEFT                                            :je napustio igru
-############ Leave those lines in this order!!
-STR_NETWORK_ERR_CLIENT_GENERAL                                  :opća greška
-STR_NETWORK_ERR_CLIENT_DESYNC                                   :greška u sinkronizaciji
-STR_NETWORK_ERR_CLIENT_SAVEGAME                                 :nije moguće učitati kartu
-STR_NETWORK_ERR_CLIENT_CONNECTION_LOST                          :veza je izgubljena
-STR_NETWORK_ERR_CLIENT_PROTOCOL_ERROR                           :greška u protokolu
-STR_NETWORK_ERR_CLIENT_NEWGRF_MISMATCH                          :NewGRF nepodudaranje
-STR_NETWORK_ERR_CLIENT_NOT_AUTHORIZED                           :nije ovlašten
-STR_NETWORK_ERR_CLIENT_NOT_EXPECTED                             :primljen je nepoznat paket
-STR_NETWORK_ERR_CLIENT_WRONG_REVISION                           :pogrešna revizija
-STR_NETWORK_ERR_CLIENT_NAME_IN_USE                              :ime se već koristi
-STR_NETWORK_ERR_CLIENT_WRONG_PASSWORD                           :pogrešna zaporka
-STR_NETWORK_ERR_CLIENT_PLAYER_MISMATCH                          :pogrešan igrač-id u DoCommand
-STR_NETWORK_ERR_CLIENT_KICKED                                   :izbačen{G "" a o) od strane poslužitelja
-STR_NETWORK_ERR_CLIENT_CHEATER                                  :je pokuša{G o la lo} varati
-STR_NETWORK_ERR_CLIENT_SERVER_FULL                              :poslužitelj je pun
-############ End of leave-in-this-order
-STR_NETWORK_CLIENT_JOINED                                       :se pridruži{G o la lo} igri
-STR_NETWORK_GIVE_MONEY                                          :je da{G o la lo} novac Vašoj tvrtki ({CURRENCY})
-STR_NETWORK_GAVE_MONEY_AWAY                                     :dali ste {STRING} novac ({CURRENCY})
-STR_NETWORK_CHAT_COMPANY_CAPTION                                :[Tim]:
-STR_NETWORK_CHAT_COMPANY                                        :[Tim] {STRING}: {GRAY}{STRING}
-STR_NETWORK_CHAT_TO_COMPANY                                     :[Tim] Za {STRING}: {GRAY}{STRING}
-STR_NETWORK_CHAT_CLIENT_CAPTION                                 :[Privatno] :
-STR_NETWORK_CHAT_CLIENT                                         :[Privatno] {STRING}: {GRAY}{STRING}
-STR_NETWORK_CHAT_TO_CLIENT                                      :[Privatno] Za {STRING}: {GRAY}{STRING}
-STR_NETWORK_CHAT_ALL_CAPTION                                    :[Svima] :
-STR_NETWORK_CHAT_ALL                                            :[Svima] {STRING}: {GRAY}{STRING}
-STR_NETWORK_NAME_CHANGE                                         :je promjeni {G o la lo} ime u
-STR_NETWORK_SERVER_SHUTDOWN                                     :{WHITE} Poslužitelj je zatvorio sesiju
-STR_NETWORK_SERVER_REBOOT                                       :{WHITE} Poslužitelj se ponovno pokreće...{}Molimo pričekajte...
-
-STR_NETWORK_SERVER                                              :Poslužitelj
-STR_NETWORK_CLIENT                                              :Klijent
-STR_NETWORK_SPECTATORS                                          :Promatrači
-
-STR_NETWORK_CLIENTLIST_NONE                                     :(nitko)
-STR_NETWORK_CLIENTLIST_KICK                                     :Izbaci
-STR_NETWORK_CLIENTLIST_GIVE_MONEY                               :Daj novac
-STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL                             :Razgovaraj sa svima
-STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY                         :Razgovaraj s tvrtkom
-STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT                          :Privatna poruka
-
-
-STR_NETWORK_SEND                                                :{BLACK}Pošalji
-
-############ end network gui strings
-
-
-STR_CONFIG_PATCHES_MAP_X                                        :{LTBLUE}Veličina karte X: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_MAP_Y                                        :{LTBLUE}Veličina karte Y: {ORANGE}{STRING}
-
-
-##### PNG-MAP-Loader
-
-STR_PNGMAP_ERROR                                                :{WHITE}Nemoguće je učitati krajolik iz PNG-a...
-STR_PNGMAP_ERR_FILE_NOT_FOUND                                   :{WHITE}...datoteka nije pronađena.
-STR_PNGMAP_ERR_IMAGE_TYPE                                       :{WHITE}...ne mogu konvertirati tip slike. 8 ili 24-bitni PNG je potreban.
-STR_PNGMAP_ERR_MISC                                             :{WHITE}...nešto je otišlo u krivom smjeru. Oprostite. (vjerojatno je pokvarena datoteka)
-
-STR_BMPMAP_ERROR                                                :{WHITE}Ne mogu učitati krajolik iz BMP...
-STR_BMPMAP_ERR_IMAGE_TYPE                                       :{WHITE}...ne mogu pretvoriti tip slike.
-
-##id 0x0800
-STR_0800_COST                                                   :{TINYFONT}{RED}Trošak: {CURRENCY}
-STR_0801_COST                                                   :{RED}Trošak: {CURRENCY}
-STR_0802_INCOME                                                 :{TINYFONT}{GREEN}Prihod: {CURRENCY}
-STR_0803_INCOME                                                 :{GREEN}Prihod: {CURRENCY}
-STR_FEEDER_TINY                                                 :{TINYFONT}{YELLOW}Prebaci: {CURRENCY}
-STR_FEEDER                                                      :{YELLOW}Prebaci: {CURRENCY}
-STR_0805_ESTIMATED_COST                                         :{WHITE}Predviđeni trošak: {CURRENCY}
-STR_0807_ESTIMATED_INCOME                                       :{WHITE}Predviđeni prihod: {CURRENCY}
-STR_0808_CAN_T_RAISE_LAND_HERE                                  :{WHITE}Ne možeš povisiti zemlju ovdje...
-STR_0809_CAN_T_LOWER_LAND_HERE                                  :{WHITE}Ne možeš sniziti zemlju ovdje...
-STR_080A_ROCKS                                                  :Stijenje
-STR_080B_ROUGH_LAND                                             :Surova zemlja
-STR_080C_BARE_LAND                                              :Ogoljena zemlja
-STR_080D_GRASS                                                  :Trava
-STR_080E_FIELDS                                                 :Polja
-STR_080F_SNOW_COVERED_LAND                                      :Zemlja pokrivena snijegom
-STR_0810_DESERT                                                 :Pustinja
-
-##id 0x1000
-STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION                         :{WHITE}Zemlja nakošena u krivom smjeru
-STR_1001_IMPOSSIBLE_TRACK_COMBINATION                           :{WHITE}Nemoguća kombinacija tračnica
-STR_1002_EXCAVATION_WOULD_DAMAGE                                :{WHITE}Iskopavanje bi oštetilo tunel
-STR_1003_ALREADY_AT_SEA_LEVEL                                   :{WHITE}Već je na razini mora
-STR_1004_TOO_HIGH                                               :{WHITE}Previsoko
-STR_1005_NO_SUITABLE_RAILROAD_TRACK                             :{WHITE}Nije prikladno za želježnicke tračnice
-STR_1007_ALREADY_BUILT                                          :{WHITE}...već izgrađeno
-STR_1008_MUST_REMOVE_RAILROAD_TRACK                             :{WHITE}Moraš najprije ukloniti tračnice
-STR_100A_RAILROAD_CONSTRUCTION                                  :{WHITE}Izgradnja željeznice
-STR_TITLE_ELRAIL_CONSTRUCTION                                   :{WHITE}Izgradnja elektrificiranih tračnica
-STR_100B_MONORAIL_CONSTRUCTION                                  :{WHITE}Izgradnja jednotračne željeznice
-STR_100C_MAGLEV_CONSTRUCTION                                    :{WHITE}Izgradnja MagLeva
-STR_100D_SELECT_RAIL_BRIDGE                                     :{WHITE}Odaberi željeznički most
-STR_100E_CAN_T_BUILD_TRAIN_DEPOT                                :{WHITE}Ovdje nije moguće graditi željezničko spremište...
-STR_100F_CAN_T_BUILD_RAILROAD_STATION                           :{WHITE}Ovdje nije moguće izgraditi željezničku stanicu...
-STR_1010_CAN_T_BUILD_SIGNALS_HERE                               :{WHITE}Ovdje ne možeš postaviti znakove...
-STR_1011_CAN_T_BUILD_RAILROAD_TRACK                             :{WHITE}Ovdje ne možeš graditi tračnice...
-STR_1012_CAN_T_REMOVE_RAILROAD_TRACK                            :{WHITE}Odavde ne možeš ukloniti tračnice...
-STR_1013_CAN_T_REMOVE_SIGNALS_FROM                              :{WHITE}Odavde ne možeš maknuti signale...
-STR_1014_TRAIN_DEPOT_ORIENTATION                                :{WHITE}Smjer spremišta vlakova
-STR_1015_RAILROAD_CONSTRUCTION                                  :Izgradnja tračnica
-STR_TOOLB_ELRAIL_CONSTRUCTION                                   :Izgradnja električne željezničke pruge
-STR_1016_MONORAIL_CONSTRUCTION                                  :Izgradnja jednotračne željeznice
-STR_1017_MAGLEV_CONSTRUCTION                                    :Izgradnja MagLeva
-STR_1018_BUILD_RAILROAD_TRACK                                   :{BLACK}Izgradi tračnicu
-STR_1019_BUILD_TRAIN_DEPOT_FOR_BUILDING                         :{BLACK}Izgradi spremište vlakova (za gradnju i servisiranje vlakova)
-STR_101A_BUILD_RAILROAD_STATION                                 :{BLACK}Izgradi željezničku stanicu
-STR_101B_BUILD_RAILROAD_SIGNALS                                 :{BLACK}Izgradi željezničke signale
-STR_101C_BUILD_RAILROAD_BRIDGE                                  :{BLACK}Izgradi željeznički most
-STR_101D_BUILD_RAILROAD_TUNNEL                                  :{BLACK}Izgradi željeznički tunel
-STR_101E_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Prebacuj izgradnju/uklanjanje za tračnice i željezničke signale
-STR_101F_BRIDGE_SELECTION_CLICK                                 :{BLACK}Odabir mosta - pritisni na most koji želiš izgraditi
-STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO                       :{BLACK}Odaberi smjer željezničkog spremišta
-STR_1021_RAILROAD_TRACK                                         :Tračnica
-STR_1023_RAILROAD_TRAIN_DEPOT                                   :Spremište vlakova
-STR_1024_AREA_IS_OWNED_BY_ANOTHER                               :{WHITE}...područje je u vlasništvu druge tvrke
-STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS                          :Željezničke tračnice s normalnim znakovima
-STR_RAILROAD_TRACK_WITH_PRESIGNALS                              :Željezničke tračnice s prethodno postavljenim znakovima
-STR_RAILROAD_TRACK_WITH_EXITSIGNALS                             :Željezničke tračnice s izlaznim znakovima
-STR_RAILROAD_TRACK_WITH_COMBOSIGNALS                            :Željezničke tračnice s kombo znakovima
-
-
-
-##id 0x1800
-STR_1801_MUST_REMOVE_ROAD_FIRST                                 :{WHITE}Moraš prvo ukloniti cestu
-STR_ROAD_WORKS_IN_PROGRESS                                      :{WHITE}Cestovni radovi u tijeku
-STR_1802_ROAD_CONSTRUCTION                                      :{WHITE}Izgradnja ceste
-STR_1803_SELECT_ROAD_BRIDGE                                     :{WHITE}Izaberi cestovni most
-STR_1804_CAN_T_BUILD_ROAD_HERE                                  :{WHITE}Ovdje ne možeš graditi cestu...
-STR_1805_CAN_T_REMOVE_ROAD_FROM                                 :{WHITE}Odavde ne možeš maknuti cestu...
-STR_1806_ROAD_DEPOT_ORIENTATION                                 :{WHITE}Smjer cestovnog spremišta
-STR_1807_CAN_T_BUILD_ROAD_VEHICLE                               :{WHITE}Ovdje ne možeš izgraditi spremište cestovnih vozila...
-STR_1808_CAN_T_BUILD_BUS_STATION                                :{WHITE}Nije moguće izgraditi autobusnu stanicu...
-STR_1809_CAN_T_BUILD_TRUCK_STATION                              :{WHITE}Nije moguće izgraditi kamionski terminal...
-STR_180A_ROAD_CONSTRUCTION                                      :Izgradnja ceste
-STR_180B_BUILD_ROAD_SECTION                                     :{BLACK}Izgradi dio ceste
-STR_180C_BUILD_ROAD_VEHICLE_DEPOT                               :{BLACK}Izgradi spremište cestovnih vozila (za izgradnju i servisiranje vozila)
-STR_180D_BUILD_BUS_STATION                                      :{BLACK}Izgradi autobusnu stanicu
-STR_180E_BUILD_TRUCK_LOADING_BAY                                :{BLACK}Izgradi pretovarni kamionski terminal
-STR_180F_BUILD_ROAD_BRIDGE                                      :{BLACK}Izgradi cestovni most
-STR_1810_BUILD_ROAD_TUNNEL                                      :{BLACK}Izgradi cestovni tunel
-STR_1811_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Prebacuj izgradnju/uklanjanje ceste
-STR_1813_SELECT_ROAD_VEHICLE_DEPOT                              :{BLACK}Izaberi smjer spremišta cestovnih vozila
-STR_1814_ROAD                                                   :Cesta
-STR_1815_ROAD_WITH_STREETLIGHTS                                 :Cesta sa semaforima
-STR_1816_TREE_LINED_ROAD                                        :Cesta s tri trake
-STR_1817_ROAD_VEHICLE_DEPOT                                     :Spremište cestovnih vozila
-STR_1818_ROAD_RAIL_LEVEL_CROSSING                               :Prijelaz ceste preko željezničke pruge
-
-##id 0x2000
-STR_2000_TOWNS                                                  :{WHITE}Gradovi
-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}Građevina mora prvo biti srušena
-STR_2005                                                        :{WHITE}{TOWN}
-STR_2006_POPULATION                                             :{BLACK}Stanovništvo: {ORANGE}{COMMA}{BLACK}  Kuće: {ORANGE}{COMMA}
-STR_2007_RENAME_TOWN                                            :Preimenuj grad
-STR_2008_CAN_T_RENAME_TOWN                                      :{WHITE}Grad se ne može preimenovati...
-STR_2009_LOCAL_AUTHORITY_REFUSES                                :{WHITE}{TOWN} lokalna samouprava odbija to dozvoliti
-STR_200A_TOWN_NAMES_CLICK_ON_NAME                               :{BLACK}Imena gradova - pritisni na ime kako bi centrirao pogled na zaslon
-STR_200B_CENTER_THE_MAIN_VIEW_ON                                :{BLACK}Centriraj glavni pogled na lokaciju grada
-STR_200C_CHANGE_TOWN_NAME                                       :{BLACK}Promijeni ime grada
-STR_200D_PASSENGERS_LAST_MONTH_MAX                              :{BLACK}Putnika prošli mjesec: {ORANGE}{COMMA}{BLACK}  maks: {ORANGE}{COMMA}
-STR_200E_MAIL_LAST_MONTH_MAX                                    :{BLACK}Pošte prošli mjesec: {ORANGE}{COMMA}{BLACK}  maks: {ORANGE}{COMMA}
-STR_200F_TALL_OFFICE_BLOCK                                      :Visoki uredski blok
-STR_2010_OFFICE_BLOCK                                           :Uredski blok
-STR_2011_SMALL_BLOCK_OF_FLATS                                   :Mali stambeni blok
-STR_2012_CHURCH                                                 :Crkva
-STR_2013_LARGE_OFFICE_BLOCK                                     :Veliki uredski blok
-STR_2014_TOWN_HOUSES                                            :Gradske kuće
-STR_2015_HOTEL                                                  :Hotel
-STR_2016_STATUE                                                 :Kip
-STR_2017_FOUNTAIN                                               :Fontana
-STR_2018_PARK                                                   :Park
-STR_2019_OFFICE_BLOCK                                           :Uredski blok
-STR_201A_SHOPS_AND_OFFICES                                      :Trgovine i uredi
-STR_201B_MODERN_OFFICE_BUILDING                                 :Moderne uredske zgrade
-STR_201C_WAREHOUSE                                              :Skladište
-STR_201D_OFFICE_BLOCK                                           :Uredski blok
-STR_201E_STADIUM                                                :Stadion
-STR_201F_OLD_HOUSES                                             :Stare kuće
-STR_2020_LOCAL_AUTHORITY                                        :{BLACK}Lokalna samouprava
-STR_2021_SHOW_INFORMATION_ON_LOCAL                              :{BLACK}Prikaži informacije o lokalnoj samoupravi
-STR_2022_LOCAL_AUTHORITY                                        :{WHITE}Lokalna samouprava {TOWN}
-STR_2023_TRANSPORT_COMPANY_RATINGS                              :{BLACK}Ocjene prijevoznih tvrtki:
-STR_2024                                                        :{YELLOW}{COMPANY}{PLAYERNAME}: {ORANGE}{STRING}
-STR_2025_SUBSIDIES                                              :{WHITE}Subvencije
-STR_2026_SUBSIDIES_ON_OFFER_FOR                                 :{BLACK}Ponuđene subvencije za pružanje usluga:
-STR_2027_FROM_TO                                                :{ORANGE}{STRING} od {STRING} do {STRING}
-STR_2028_BY                                                     :{YELLOW} (do {DATE_SHORT})
-STR_202A_NONE                                                   :{ORANGE}Ništa
-STR_202B_SERVICES_ALREADY_SUBSIDISED                            :{BLACK}Usluge subvencionirane:
-STR_202C_FROM_TO                                                :{ORANGE}{STRING} iz {STATION} prema {STATION}{YELLOW} ({COMPANY}
-STR_202D_UNTIL                                                  :{YELLOW}, do {DATE_SHORT})
-STR_202E_OFFER_OF_SUBSIDY_EXPIRED                               :{BLACK}{BIGFONT}Istekla je ponuda subvencije:{}{}Prijevoz tereta ( {STRING} ) od {STRING} do {STRING} neće više biti subvencioniran.
-STR_202F_SUBSIDY_WITHDRAWN_SERVICE                              :{BLACK}{BIGFONT}Povučena subvencija:{}{}Prijevoz tereta ( {STRING} ) od {STATION} do {STATION} nije više subvencioniran.
-STR_2030_SERVICE_SUBSIDY_OFFERED                                :{BLACK}{BIGFONT}Ponuđena je subvencija:{}{}Prvi koji preveze teret ({STRING}) od {STRING} do {STRING} dobivat će subvenciju od lokalne samouprave!
-STR_2031_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subvencija je dodjeljena tvrtki {COMPANY}!{}{}Prijevoz tereta ({STRING}) od {STATION} do {STATION} plaćat će se 50% više slijedećih godinu dana!
-STR_2032_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subvencija je dodjeljena tvrtki {COMPANY}!{}{}Prijevoz tereta ({STRING}) od {STATION} do {STATION} plaćat će se dvostruko slijedećih godinu dana!
-STR_2033_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subvencija je dodjeljena tvrtki {COMPANY}!{}{}Prijevoz tereta ({STRING}) od {STATION} do {STATION} plaćat će se trostruko slijedećih godinu dana!
-STR_2034_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subvencija je dodjeljena tvrtki {COMPANY}!{}{}Prijevoz tereta ({STRING}) od {STATION} do {STATION} plaćat će se četverostruko slijedećih godinu dana!
-STR_2035_LOCAL_AUTHORITY_REFUSES                                :{WHITE}{TOWN} lokalne vlasti odbijaju dozvoliti izgradnju još jedne zračne luke u ovom gradu
-STR_2036_COTTAGES                                               :Kolibe
-STR_2037_HOUSES                                                 :Kuće
-STR_2038_FLATS                                                  :Stanovi
-STR_2039_TALL_OFFICE_BLOCK                                      :Visoki uredski blok
-STR_203A_SHOPS_AND_OFFICES                                      :Trgovine i uredi
-STR_203B_SHOPS_AND_OFFICES                                      :Trgovine i uredi
-STR_203C_THEATER                                                :Kazalište
-STR_203D_STADIUM                                                :Stadion
-STR_203E_OFFICES                                                :Uredi
-STR_203F_HOUSES                                                 :Kuće
-STR_2040_CINEMA                                                 :Kino
-STR_2041_SHOPPING_MALL                                          :Trgovački centar
-STR_2042_DO_IT                                                  :{BLACK}Učini to
-STR_2043_LIST_OF_THINGS_TO_DO_AT                                :{BLACK}Popis stvari koje treba učiniti u ovom gradu - pritisni za dodatne informacije
-STR_2044_CARRY_OUT_THE_HIGHLIGHTED                              :{BLACK}Izvrši akcije označene na gornjem popisu
-STR_2045_ACTIONS_AVAILABLE                                      :{BLACK}Dostupne akcije:
-STR_2046_SMALL_ADVERTISING_CAMPAIGN                             :Mala oglasna kampanja
-STR_2047_MEDIUM_ADVERTISING_CAMPAIGN                            :Srednja oglasna kampanja
-STR_2048_LARGE_ADVERTISING_CAMPAIGN                             :Velika oglasna kampanja
-STR_2049_FUND_LOCAL_ROAD_RECONSTRUCTION                         :Financiraj popravljanje lokalne prometnice
-STR_204A_BUILD_STATUE_OF_COMPANY                                :Izgradi kip vlasnika tvrke
-STR_204B_FUND_NEW_BUILDINGS                                     :Financiraj nove građevine
-STR_204C_BUY_EXCLUSIVE_TRANSPORT                                :Kupi ekskluzivna prava prijevozna
-STR_TOWN_BRIBE_THE_LOCAL_AUTHORITY                              :Podmiti lokalnu samoupravu
-STR_204D_INITIATE_A_SMALL_LOCAL                                 :{WHITE}{STRING}{}{YELLOW} Iniciraj malu oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{}  Trošak: {CURRENCY}
-STR_204E_INITIATE_A_MEDIUM_LOCAL                                :{WHITE}{STRING}{}{YELLOW} Iniciraj srednju oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{} Trošak: {CURRENCY}
-STR_204F_INITIATE_A_LARGE_LOCAL                                 :{WHITE}{STRING}{}{YELLOW} Iniciraj veliku oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{} Trošak: {CURRENCY}
-STR_2050_FUND_THE_RECONSTRUCTION                                :{WHITE}{STRING}{}{YELLOW} Financiraj popravak gradske mreže prometnica. Uzrokuje značajne poremećaje u cestovnom prometu do 6 mjeseci.{}  Trošak: {CURRENCY}
-STR_2051_BUILD_A_STATUE_IN_HONOR                                :{WHITE}{STRING}{}{YELLOW} Izgradi kip u čast svoje tvrke.{} Trošak: {CURRENCY}
-STR_2052_FUND_THE_CONSTRUCTION_OF                               :{WHITE}{STRING}{}{YELLOW} Financiraj izgradnju novih poslovnih prostora u gradu.{}  Trošak: {CURRENCY}
-STR_2053_BUY_1_YEAR_S_EXCLUSIVE                                 :{WHITE}{STRING}{}{YELLOW} Kupi jednogodišnje ekskluzivno pravo prijevoza u gradu. Gradska vlast će dopustiti putnicima i teretu da koriste samo stanice tvoje tvrtke.{} Trošak: {CURRENCY}
-STR_TOWN_BRIBE_THE_LOCAL_AUTHORITY_DESC                         :{WHITE}{STRING}{}{YELLOW}Podmiti lokalnu vlast zbog povećanja rejtinga, riskirajući ozbiljne kazne ako vas uhvate{} Trošak: {CURRENCY}
-STR_2055_TRAFFIC_CHAOS_IN_ROAD_REBUILDING                       :{BIGFONT}{BLACK}{TOWN} zahvatile prometne gužve!{}{}Program popravka cesta koji financira tvrtka  {COMPANY} slijedećih će 6 mjeseci zadavati glavobolje motociskistima!
-STR_2056                                                        :{TINYFONT}{WHITE}{TOWN}
-STR_2057                                                        :{ORANGE}{TOWN}{BLACK} ({COMMA})
-STR_2058_UNDER_CONSTRUCTION                                     :{STRING} (u izgradnji)
-STR_2059_IGLOO                                                  :Iglu
-STR_205A_TEPEES                                                 :Indijanski šator
-STR_205B_TEAPOT_HOUSE                                           :Čajnik za stanovanje
-STR_205C_PIGGY_BANK                                             :Kasica-Prasica
-
-STR_INDUSTRY                                                    :{INDUSTRY}
-STR_TOWN                                                        :{TOWN}
-STR_INDUSTRY_FORMAT                                             :{TOWN} {STRING}
-STR_STATION                                                     :{STATION}
-
-##id 0x2800
-STR_LANDSCAPING                                                 :Uređivanje krajolika
-STR_2800_PLANT_TREES                                            :Posadi drveće
-STR_2801_PLACE_SIGN                                             :Postavi znak
-STR_2802_TREES                                                  :{WHITE}Drveće
-STR_2803_TREE_ALREADY_HERE                                      :{WHITE}...ovdje već postoji drvo
-STR_2804_SITE_UNSUITABLE                                        :{WHITE}...neprikladno mjesto
-STR_2805_CAN_T_PLANT_TREE_HERE                                  :{WHITE}Ovdje ne možeš posaditi drvo...
-STR_2806                                                        :{WHITE}{STRING}
-STR_2808_TOO_MANY_SIGNS                                         :{WHITE}...previše znakova
-STR_2809_CAN_T_PLACE_SIGN_HERE                                  :{WHITE}Ovdje ne možeš postaviti znak...
-STR_280A_SIGN                                                   :Znak
-STR_280B_EDIT_SIGN_TEXT                                         :{WHITE}Izmijeni tekst znaka
-STR_280C_CAN_T_CHANGE_SIGN_NAME                                 :{WHITE}Ne možeš promijeniti ime znaka...
-STR_280D_SELECT_TREE_TYPE_TO_PLANT                              :{BLACK}Izaberi vrstu drveta za sadnju
-STR_280E_TREES                                                  :Drveće
-STR_280F_RAINFOREST                                             :Kišna šuma
-STR_2810_CACTUS_PLANTS                                          :Kaktusi
-
-##id 0x3000
-STR_3000_RAIL_STATION_SELECTION                                 :{WHITE}Odabir željezničke stanice
-STR_3001_AIRPORT_SELECTION                                      :{WHITE}Odabir zračne luke
-STR_3002_ORIENTATION                                            :{BLACK}Smjer
-STR_3003_NUMBER_OF_TRACKS                                       :{BLACK}Broj tračnica
-STR_3004_PLATFORM_LENGTH                                        :{BLACK}Dužina platforme
-STR_3005_TOO_CLOSE_TO_ANOTHER_RAILROAD                          :{WHITE}Preblizu drugoj željezničkoj stanici
-STR_3006_ADJOINS_MORE_THAN_ONE_EXISTING                         :{WHITE}Spaja više od jedne postojeće stanice/terminala
-STR_3007_TOO_MANY_STATIONS_LOADING                              :{WHITE}U ovom gradu ima previše stanica/terminala
-STR_3008_TOO_MANY_STATIONS_LOADING                              :{WHITE}Previše stanica/terminala
-STR_3008A_TOO_MANY_BUS_STOPS                                    :{WHITE}Previše autobusnih stanica
-STR_3008B_TOO_MANY_TRUCK_STOPS                                  :{WHITE}Previše kamionskih stanica
-STR_3009_TOO_CLOSE_TO_ANOTHER_STATION                           :{WHITE}Preblizu drugoj stanici/terminalu
-STR_300A_0                                                      :{WHITE}{STATION} {STATIONFEATURES}
-STR_300B_MUST_DEMOLISH_RAILROAD                                 :{WHITE}Prvo moraš uništiti željezničku stanicu
-STR_300D_TOO_CLOSE_TO_ANOTHER_AIRPORT                           :{WHITE}Preblizu drugoj zračnoj luci
-STR_300E_MUST_DEMOLISH_AIRPORT_FIRST                            :{WHITE}Moraš uništiti zračnu luku prvo
-
-STR_3030_RENAME_STATION_LOADING                                 :Preimenuj stanicu/terminal
-STR_3031_CAN_T_RENAME_STATION                                   :{WHITE}Ne možeš preimenovati stanicu...
-STR_3032_RATINGS                                                :{BLACK}Ocjene
-STR_3033_ACCEPTS                                                :{BLACK}Prihvaća
-STR_3034_LOCAL_RATING_OF_TRANSPORT                              :{BLACK}Lokalna ocjena usluge prijevoza:
-
-############ range for rating starts
-STR_3035_APPALLING                                              :Užasno
-STR_3036_VERY_POOR                                              :Vrlo loše
-STR_3037_POOR                                                   :Loše
-STR_3038_MEDIOCRE                                               :Osrednje
-STR_3039_GOOD                                                   :Dobro
-STR_303A_VERY_GOOD                                              :Vrlo dobro
-STR_303B_EXCELLENT                                              :Izvrsno
-STR_303C_OUTSTANDING                                            :Izvanredno
-############ range for rating ends
-
-STR_303D                                                        :{WHITE}{STRING}: {YELLOW}{STRING} ({COMMA}%)
-STR_303E_NO_LONGER_ACCEPTS                                      :{WHITE}{STATION} više ne prihvaća {STRING}
-STR_303F_NO_LONGER_ACCEPTS_OR                                   :{WHITE}{STATION} više ne prihvaća {STRING} or {STRING}
-STR_3040_NOW_ACCEPTS                                            :{WHITE}{STATION} sad prihvaća {STRING}
-STR_3041_NOW_ACCEPTS_AND                                        :{WHITE}{STATION} od sada prihvaća {STRING} i {STRING}
-STR_3042_BUS_STATION_ORIENTATION                                :{WHITE}Smjer autobusne stanice
-STR_3043_TRUCK_STATION_ORIENT                                   :{WHITE}Smjer kamionskog terminala
-STR_3046_MUST_DEMOLISH_BUS_STATION                              :{WHITE}Prvo moraš uništiti autobusnu stanicu
-STR_3047_MUST_DEMOLISH_TRUCK_STATION                            :{WHITE}Prvo moraš uništiti kamionski terminal
-STR_3048_STATIONS                                               :{WHITE}{COMPANY} - {COMMA} Stanic{P a e a}
-STR_3049_0                                                      :{YELLOW}{STATION} {STATIONFEATURES}
-STR_304A_NONE                                                   :{YELLOW}- Ništa -
-STR_304B_SITE_UNSUITABLE                                        :{WHITE}...neprikladno mjesto
-STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK                              :{WHITE}Preblizu drugom pristaništu
-STR_304D_MUST_DEMOLISH_DOCK_FIRST                               :{WHITE}Prvo moraš srušiti pristanište
-STR_304E_SELECT_RAILROAD_STATION                                :{BLACK}Izaberi smjer željezničke stanice
-STR_304F_SELECT_NUMBER_OF_PLATFORMS                             :{BLACK}Izaberi broj perona na željezničkoj stanici
-STR_3050_SELECT_LENGTH_OF_RAILROAD                              :{BLACK}Izaberi dužinu željezničke stanice
-STR_3051_SELECT_BUS_STATION_ORIENTATION                         :{BLACK}Izaberi smjer autobusne stanice
-STR_3052_SELECT_TRUCK_LOADING_BAY                               :{BLACK}Izaberi smjer kamionskog terminala
-STR_3053_CENTER_MAIN_VIEW_ON_STATION                            :{BLACK}Centriraj glavni pogled na lokaciju stanice
-STR_3054_SHOW_STATION_RATINGS                                   :{BLACK}Pokaži ocjene stanice
-STR_3055_CHANGE_NAME_OF_STATION                                 :{BLACK}Promijeni ime stanice
-STR_3056_SHOW_LIST_OF_ACCEPTED_CARGO                            :{BLACK}Prikaži popis prihvaćenog tereta
-STR_3057_STATION_NAMES_CLICK_ON                                 :{BLACK}Imena stanica - pritisni ime da bi centrirao glavni pogled na stanicu
-STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT                            :{BLACK}Izaberi veličinu/tip zračne luke
-STR_305C_0                                                      :{STATION} {STATIONFEATURES}
-STR_STATION_SIGN_TINY                                           :{TINYFONT}{STATION}
-STR_305E_RAILROAD_STATION                                       :Željeznička stanica
-STR_305F_AIRCRAFT_HANGAR                                        :Zrakoplovni hangar
-STR_3060_AIRPORT                                                :Zračna luka
-STR_3061_TRUCK_LOADING_AREA                                     :Ukrcajno područje
-STR_3062_BUS_STATION                                            :Autobusna stanica
-STR_3063_SHIP_DOCK                                              :Brodsko pristanište
-STR_3064_HIGHLIGHT_COVERAGE_AREA                                :{BLACK}Označi područje koje pokriva željeno mjesto
-STR_3065_DON_T_HIGHLIGHT_COVERAGE                               :{BLACK}Nemoj označiti područje koje pokriva željeno mjesto
-STR_3066_COVERAGE_AREA_HIGHLIGHT                                :{BLACK}Označavanje područja pokrivanja
-STR_3068_DOCK                                                   :{WHITE}Pristanište
-STR_3069_BUOY                                                   :Plutača
-STR_306A_BUOY_IN_THE_WAY                                        :{WHITE}...plutača na putu
-STR_306C_STATION_TOO_SPREAD_OUT                                 :{WHITE}...stanica previše proširena
-STR_306D_NONUNIFORM_STATIONS_DISALLOWED                         :{WHITE}...neujednačene stanice onemogućene
-STR_USE_CTRL_TO_SELECT_MORE                                     :{BLACK}Drži CTRL kako bi izabrao više od jednog itema
-
-STR_UNDEFINED                                                   :(neodređen znakovni niz)
-STR_STAT_CLASS_DFLT                                             :Pretpostavljena stanica
-STR_STAT_CLASS_WAYP                                             :Čvorišta
-
-##id 0x3800
-STR_3800_SHIP_DEPOT_ORIENTATION                                 :{WHITE}Smjer brodskog spremišta
-STR_3801_MUST_BE_BUILT_ON_WATER                                 :{WHITE}...mora biti izgrađen na vodi
-STR_3802_CAN_T_BUILD_SHIP_DEPOT                                 :{WHITE}Ovdje ne možeš graditi brodsko spremište...
-STR_3803_SELECT_SHIP_DEPOT_ORIENTATION                          :{BLACK}Izaberi smjer brodskog spremišta
-STR_3804_WATER                                                  :Voda
-STR_3805_COAST_OR_RIVERBANK                                     :Obala ili riječni nasip
-STR_3806_SHIP_DEPOT                                             :Brodsko spremište
-STR_3807_CAN_T_BUILD_ON_WATER                                   :{WHITE}...Ne možeš graditi na vodi
-
-##id 0x4000
-STR_4000_SAVE_GAME                                              :{WHITE}Spremi igru
-STR_4001_LOAD_GAME                                              :{WHITE}Učitaj igru
-STR_4002_SAVE                                                   :{BLACK}Spremi
-STR_4003_DELETE                                                 :{BLACK}Obriši
-STR_4004                                                        :{COMPANY}, {DATE_LONG}
-STR_4005_BYTES_FREE                                             :{BLACK}{COMMA} megabajt{P "" a a} slobod{P an na no}
-STR_4006_UNABLE_TO_READ_DRIVE                                   :{BLACK}Ne mogu pročitati disk
-STR_4007_GAME_SAVE_FAILED                                       :{WHITE}Spremanje igre nije uspjelo{}{STRING}
-STR_4008_UNABLE_TO_DELETE_FILE                                  :{WHITE}Ne mogu obrisati datoteku
-STR_4009_GAME_LOAD_FAILED                                       :{WHITE}Učitavanje igre nije uspjelo{}{STRING}
-STR_400A_LIST_OF_DRIVES_DIRECTORIES                             :{BLACK}Popis diskova, mapa i spremljenih datoteka
-STR_400B_CURRENTLY_SELECTED_NAME                                :{BLACK}Trenutno odabrano ime za spremanje igre
-STR_400C_DELETE_THE_CURRENTLY_SELECTED                          :{BLACK}Obriši trenutno odabranu spremljenu igru
-STR_400D_SAVE_THE_CURRENT_GAME_USING                            :{BLACK}Spremi ovu igru, koristeći odabrano ime
-STR_400E_SELECT_NEW_GAME_TYPE                                   :{WHITE}Odaberi vrstu nove igre
-STR_400F_SELECT_SCENARIO_GREEN_PRE                              :{BLACK}Odaberi scenarij (zeleno), namještenu igru (plavo), ili nasumičnu novu igru
-STR_4010_GENERATE_RANDOM_NEW_GAME                               :Izradi nasumičnu novu igru
-STR_4011_LOAD_HEIGHTMAP                                         :{WHITE}Učitaj visinsku kartu
-
-##id 0x4800
-STR_4800_IN_THE_WAY                                             :{WHITE}{STRING} na putu
-STR_4801                                                        :{WHITE}{INDUSTRY}
-STR_4802_COAL_MINE                                              :Rudnik ugljena
-STR_4803_POWER_STATION                                          :Elektrana
-STR_4804_SAWMILL                                                :Pilana
-STR_4805_FOREST                                                 :Šuma
-STR_4806_OIL_REFINERY                                           :Naftna rafinerija
-STR_4807_OIL_RIG                                                :Naftna bušotina
-STR_4808_FACTORY                                                :Tvornica
-STR_4809_PRINTING_WORKS                                         :Tiskara
-STR_480A_STEEL_MILL                                             :Čeličana
-STR_480B_FARM                                                   :Farma
-STR_480C_COPPER_ORE_MINE                                        :Rudnik bakra
-STR_480D_OIL_WELLS                                              :Naftna polja
-STR_480E_BANK                                                   :Banka
-STR_480F_FOOD_PROCESSING_PLANT                                  :Tvornica hrane
-STR_4810_PAPER_MILL                                             :Tvornica papira
-STR_4811_GOLD_MINE                                              :Rudnik zlata
-STR_4812_BANK                                                   :Banka
-STR_4813_DIAMOND_MINE                                           :Rudnik dijamanata
-STR_4814_IRON_ORE_MINE                                          :Rudnik željeza
-STR_4815_FRUIT_PLANTATION                                       :Plantaža voća
-STR_4816_RUBBER_PLANTATION                                      :Plantaža gume
-STR_4817_WATER_SUPPLY                                           :Izvor vode
-STR_4818_WATER_TOWER                                            :Vodotoranj
-STR_4819_FACTORY                                                :Tvornica
-STR_481A_FARM                                                   :Farma
-STR_481B_LUMBER_MILL                                            :Pilana
-STR_481C_COTTON_CANDY_FOREST                                    :Šuma šećerne vune
-STR_481D_CANDY_FACTORY                                          :Tvornica slatkiša
-STR_481E_BATTERY_FARM                                           :Tvornica baterija
-STR_481F_COLA_WELLS                                             :Izvori Cole
-STR_4820_TOY_SHOP                                               :Trgovina igračkama
-STR_4821_TOY_FACTORY                                            :Tvornica igračaka
-STR_4822_PLASTIC_FOUNTAINS                                      :Izvorni plastike
-STR_4823_FIZZY_DRINK_FACTORY                                    :Tvornica gaziranih pića
-STR_4824_BUBBLE_GENERATOR                                       :Generator balona
-STR_4825_TOFFEE_QUARRY                                          :Iskop mliječne karamele
-STR_4826_SUGAR_MINE                                             :Rudnik šećera
-
-############ range for requires starts
-STR_4827_REQUIRES                                               :{BLACK}Treba: {YELLOW}{STRING}
-STR_4828_REQUIRES                                               :{BLACK}Treba: {YELLOW}{STRING}, {STRING}
-STR_4829_REQUIRES                                               :{BLACK}Treba: {YELLOW}{STRING}, {STRING}, {STRING}
-############ range for requires ends
-
-STR_482A_PRODUCTION_LAST_MONTH                                  :{BLACK}Prošlomjesečna proizvodnja:
-STR_482B_TRANSPORTED                                            :{YELLOW}{CARGO}{BLACK} ({COMMA}% prevezeno)
-STR_482C_CENTER_THE_MAIN_VIEW_ON                                :{BLACK}Centriraj glavni pogled na položaj industrije
-STR_482D_NEW_UNDER_CONSTRUCTION                                 :{BLACK}{BIGFONT}Započela je izgradnja nove industrije ( {STRING} ) u blizini grada {TOWN}!
-STR_482E_NEW_BEING_PLANTED_NEAR                                 :{BLACK}{BIGFONT}Nova {STRING} trenutno se sadi blizu grada {TOWN}!
-STR_482F_COST                                                   :{BLACK}Trošak: {YELLOW}{CURRENCY}
-STR_4830_CAN_T_CONSTRUCT_THIS_INDUSTRY                          :{WHITE}Ovdje ne možeš izgraditi ovu vrstu industrije ovdje...
-STR_4831_FOREST_CAN_ONLY_BE_PLANTED                             :{WHITE}...šume mogu jedino biti posađene iznad linije snijega
-STR_4832_ANNOUNCES_IMMINENT_CLOSURE                             :{BLACK}{BIGFONT}{INDUSTRY} objavljuje skoro zatvaranje!
-STR_4833_SUPPLY_PROBLEMS_CAUSE_TO                               :{BLACK}{BIGFONT}Zbog problema u nabavi {INDUSTRY} se uskoro zatvara!
-STR_4834_LACK_OF_NEARBY_TREES_CAUSES                            :{BLACK}{BIGFONT}Manjak drveća u glavni je razlog što se {INDUSTRY} se uskoro zatvara!
-STR_4835_INCREASES_PRODUCTION                                   :{BLACK}{BIGFONT}{INDUSTRY} povećava proizvodnju!
-STR_4836_NEW_COAL_SEAM_FOUND_AT                                 :{BLACK}{BIGFONT}{INDUSTRY} očekuje udvostručenje proizvodnje!{}Pronađena je nova pukotina ugljena!
-STR_4837_NEW_OIL_RESERVES_FOUND                                 :{BLACK}{BIGFONT}{INDUSTRY} očekuje udvostručenje proizvodnje!{}Pronađene su nove rezerve nafte!
-STR_4838_IMPROVED_FARMING_METHODS                               :{BLACK}{BIGFONT}{INDUSTRY} poboljšava metode uzgoja, očekuje se udvostručenje proizvodnje!
-STR_4839_PRODUCTION_DOWN_BY_50                                  :{BLACK}{BIGFONT}{INDUSTRY} smanjuje proizvodnju za 50%
-STR_483A_INSECT_INFESTATION_CAUSES                              :{BLACK}{BIGFONT}{INDUSTRY} pod najezdom kukaca! Havarija!{}Proizvodnja je pala za 50%
-STR_483B_CAN_ONLY_BE_POSITIONED                                 :{WHITE}...može se postaviti samo blizu rubova karte
-STR_INDUSTRY_PROD_GOUP                                          :{BLACK}{BIGFONT}{STRING} prozivodnja u {INDUSTRY} povećana je {COMMA}%!
-STR_INDUSTRY_PROD_GODOWN                                        :{BLACK}{BIGFONT}{STRING} prozivodnja u {INDUSTRY} smanjena je {COMMA}%!
-
-##id 0x5000
-STR_5000_TRAIN_IN_TUNNEL                                        :{WHITE}Vlak u tunelu
-STR_5001_ROAD_VEHICLE_IN_TUNNEL                                 :{WHITE}Cestovno vozilo u tunelu
-STR_5003_ANOTHER_TUNNEL_IN_THE_WAY                              :{WHITE}Smeta drugi tunel
-STR_5005_UNABLE_TO_EXCAVATE_LAND                                :{WHITE}Ne moguće iskopoati zemlju na drugoj strani tunela
-STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Moraš prvo srušiti tunel
-STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Moraš prvo srušiti most
-STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Početak i kraj ne mogu biti na istom mjestu
-STR_5009_LEVEL_LAND_OR_WATER_REQUIRED                           :{WHITE}Ispod mosta mora biti ravna zemlja ili voda
-STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Početak i kraj moraju biti u istoj liniji
-STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Neprikladan teren za ulaz u tunel
-STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
-STR_500E_SUSPENSION_STEEL                                       :Viseći, čelični
-STR_500F_GIRDER_STEEL                                           :Noseći, čelični
-STR_5010_CANTILEVER_STEEL                                       :Konzolni, čelični
-STR_5011_SUSPENSION_CONCRETE                                    :Viseći, betonski
-STR_5012_WOODEN                                                 :Drveni
-STR_5013_CONCRETE                                               :Betonski
-STR_5014_TUBULAR_STEEL                                          :Cijevni, čelični
-STR_BRIDGE_TUBULAR_SILICON                                      :Cjevni, silikonski
-STR_5015_CAN_T_BUILD_BRIDGE_HERE                                :{WHITE}Ovdje se ne može graditi most...
-STR_5016_CAN_T_BUILD_TUNNEL_HERE                                :{WHITE}Ovdje se ne može graditi tunel...
-STR_5017_RAILROAD_TUNNEL                                        :Željeznički tunel
-STR_5018_ROAD_TUNNEL                                            :Cestovni tunel
-STR_501B_STEEL_SUSPENSION_RAIL_BRIDGE                           :Čelični viseći željeznički most
-STR_501C_STEEL_GIRDER_RAIL_BRIDGE                               :Čelični noseći željeznički most
-STR_501D_STEEL_CANTILEVER_RAIL_BRIDGE                           :Čelični konzolni željeznički most
-STR_501E_REINFORCED_CONCRETE_SUSPENSION                         :Ojačani betonski viseći željeznički most
-STR_501F_WOODEN_RAIL_BRIDGE                                     :Drveni željeznički most
-STR_5020_CONCRETE_RAIL_BRIDGE                                   :Betonski željeznički most
-STR_5021_STEEL_SUSPENSION_ROAD_BRIDGE                           :Čelični viseći cestovni most
-STR_5022_STEEL_GIRDER_ROAD_BRIDGE                               :Čelični noseći cestovni most
-STR_5023_STEEL_CANTILEVER_ROAD_BRIDGE                           :Čelični konzolni cestovni most
-STR_5024_REINFORCED_CONCRETE_SUSPENSION                         :Ojačani betonski viseći cestovni most
-STR_5025_WOODEN_ROAD_BRIDGE                                     :Drveni cestovni most
-STR_5026_CONCRETE_ROAD_BRIDGE                                   :Betonski cestovni most
-STR_5027_TUBULAR_RAIL_BRIDGE                                    :Cijevni željeznički most
-STR_5028_TUBULAR_ROAD_BRIDGE                                    :Cijevni cestovni most
-
-##id 0x5800
-STR_5800_OBJECT_IN_THE_WAY                                      :{WHITE}Smeta objekt
-STR_5801_TRANSMITTER                                            :Odašiljač
-STR_5802_LIGHTHOUSE                                             :Svjetionik
-STR_5803_COMPANY_HEADQUARTERS                                   :Sjedište tvrke
-STR_5804_COMPANY_HEADQUARTERS_IN                                :{WHITE}...smeta sjedište tvrke
-STR_5805_COMPANY_OWNED_LAND                                     :Zemlja u posjedu tvrke
-STR_5806_CAN_T_PURCHASE_THIS_LAND                               :{WHITE}Ova zemlja ne može se kupiti...
-STR_5807_YOU_ALREADY_OWN_IT                                     :{WHITE}...već je u tvom vlasništvu!
-
-
-############ WARNING, using range 0x6000 for strings that are stored in the savegame
-############ These strings may never get a new id, or savegames will break!
-##id 0x6000
-STR_SV_EMPTY                                                    :
-STR_SV_UNNAMED                                                  :Neimenovan
-STR_SV_TRAIN_NAME                                               :Vlak {COMMA}
-STR_SV_ROADVEH_NAME                                             :Cestovno vozilo {COMMA}
-STR_SV_SHIP_NAME                                                :Brod {COMMA}
-STR_SV_AIRCRAFT_NAME                                            :Zrakoplov {COMMA}
-
-STR_SV_STNAME                                                   :{STRING}
-STR_SV_STNAME_NORTH                                             :{STRING} Sjever
-STR_SV_STNAME_SOUTH                                             :{STRING} Jug
-STR_SV_STNAME_EAST                                              :{STRING} Istok
-STR_SV_STNAME_WEST                                              :{STRING} Zapad
-STR_SV_STNAME_CENTRAL                                           :{STRING} Centrala
-STR_SV_STNAME_TRANSFER                                          :{STRING} Transfer
-STR_SV_STNAME_HALT                                              :{STRING} Zaustavi
-STR_SV_STNAME_VALLEY                                            :{STRING} Dolina
-STR_SV_STNAME_HEIGHTS                                           :{STRING} Visine
-STR_SV_STNAME_WOODS                                             :{STRING} Šume
-STR_SV_STNAME_LAKESIDE                                          :{STRING} Jezero
-STR_SV_STNAME_EXCHANGE                                          :{STRING} Burza
-STR_SV_STNAME_AIRPORT                                           :{STRING} Zračna luka
-STR_SV_STNAME_OILFIELD                                          :{STRING} Naftno polje
-STR_SV_STNAME_MINES                                             :{STRING} Rudnici
-STR_SV_STNAME_DOCKS                                             :{STRING} Pristaništa
-STR_SV_STNAME_BUOY_1                                            :{STRING} Plutača 1
-STR_SV_STNAME_BUOY_2                                            :{STRING} Plutača 2
-STR_SV_STNAME_BUOY_3                                            :{STRING} Plutača 3
-STR_SV_STNAME_BUOY_4                                            :{STRING} Plutača 4
-STR_SV_STNAME_BUOY_5                                            :{STRING} Plutača 5
-STR_SV_STNAME_BUOY_6                                            :{STRING} Plutača 6
-STR_SV_STNAME_BUOY_7                                            :{STRING} Plutača 7
-STR_SV_STNAME_BUOY_8                                            :{STRING} Plutača 8
-STR_SV_STNAME_BUOY_9                                            :{STRING} Plutača 9
-STR_SV_STNAME_ANNEXE                                            :{STRING} Aneks
-STR_SV_STNAME_SIDINGS                                           :{STRING} Krak
-STR_SV_STNAME_BRANCH                                            :{STRING} Ogranak
-STR_SV_STNAME_UPPER                                             :Gornji {STRING}
-STR_SV_STNAME_LOWER                                             :Donji {STRING}
-STR_SV_STNAME_HELIPORT                                          :{STRING} Heliodrom
-STR_SV_STNAME_FOREST                                            :{STRING} Šuma
-
-
-############ end of savegame specific region!
-
-##id 0x6800
-STR_6800_DIFFICULTY_LEVEL                                       :{WHITE}Težina igre
-STR_OPTIONS_SAVE_CHANGES                                        :{BLACK}Spremi
-
-############ range for difficulty levels starts
-STR_6801_EASY                                                   :{BLACK}Lagano
-STR_6802_MEDIUM                                                 :{BLACK}Umjereno
-STR_6803_HARD                                                   :{BLACK}Teško
-STR_6804_CUSTOM                                                 :{BLACK}Proizvoljna igra
-############ range for difficulty levels ends
-
-############ range for difficulty settings starts
-STR_6805_MAXIMUM_NO_COMPETITORS                                 :{LTBLUE}Maksimalan broj natjecatelja: {ORANGE}{COMMA}
-STR_6806_COMPETITOR_START_TIME                                  :{LTBLUE}Vrijeme početka igre natjecatelja: {ORANGE}{STRING}
-STR_6807_NO_OF_TOWNS                                            :{LTBLUE}Broj gradova: {ORANGE}{STRING}
-STR_6808_NO_OF_INDUSTRIES                                       :{LTBLUE}Broj gospodarstava: {ORANGE}{STRING}
-STR_6809_MAXIMUM_INITIAL_LOAN_000                               :{LTBLUE}Maksimalni početni kredit: {ORANGE}{CURRENCY}
-STR_680A_INITIAL_INTEREST_RATE                                  :{LTBLUE}Početna kamata kredita: {ORANGE}{COMMA}%
-STR_680B_VEHICLE_RUNNING_COSTS                                  :{LTBLUE}Troškovi uporabe vozila: {ORANGE}{STRING}
-STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR                       :{LTBLUE}Brzina razvoja natjecatelja: {ORANGE}{STRING}
-STR_680D_INTELLIGENCE_OF_COMPETITORS                            :{LTBLUE}Inteligencija natjecatelja: {ORANGE}{STRING}
-STR_680E_VEHICLE_BREAKDOWNS                                     :{LTBLUE}Kvarovi na vozilima: {ORANGE}{STRING}
-STR_680F_SUBSIDY_MULTIPLIER                                     :{LTBLUE}Subvencijski množitelj: {ORANGE}{STRING}
-STR_6810_COST_OF_CONSTRUCTION                                   :{LTBLUE}Troškovi građenja: {ORANGE}{STRING}
-STR_6811_TERRAIN_TYPE                                           :{LTBLUE}Vrsta terena: {ORANGE}{STRING}
-STR_6812_QUANTITY_OF_SEA_LAKES                                  :{LTBLUE}Količina mora/jezera: {ORANGE}{STRING}
-STR_6813_ECONOMY                                                :{LTBLUE}Ekonomija: {ORANGE}{STRING}
-STR_6814_TRAIN_REVERSING                                        :{LTBLUE}Promjena smjera vlakova: {ORANGE}{STRING}
-STR_6815_DISASTERS                                              :{LTBLUE}Prirodne katastrofe: {ORANGE}{STRING}
-STR_16816_CITY_APPROVAL                                         :{LTBLUE}Stav gradsko vijeća prema restrukturiranju područja: {ORANGE}{STRING}
-############ range for difficulty settings ends
-
-STR_26816_NONE                                                  :Ništa
-STR_6816_LOW                                                    :Nisko
-STR_6817_NORMAL                                                 :Normalno
-STR_6818_HIGH                                                   :Visoko
-STR_6819                                                        :{BLACK}{SMALLLEFTARROW}
-STR_681A                                                        :{BLACK}{SMALLRIGHTARROW}
-STR_681B_VERY_SLOW                                              :Vrlo sporo
-STR_681C_SLOW                                                   :Sporo
-STR_681D_MEDIUM                                                 :Umjereno
-STR_681E_FAST                                                   :Brzo
-STR_681F_VERY_FAST                                              :Vrlo brzo
-STR_VERY_LOW                                                    :Vrlo nisko
-STR_6820_LOW                                                    :Nisko
-STR_6821_MEDIUM                                                 :Umjereno
-STR_6822_HIGH                                                   :Visoko
-STR_6823_NONE                                                   :Ništa
-STR_6824_REDUCED                                                :Smanjeno
-STR_6825_NORMAL                                                 :Normalno
-STR_6826_X1_5                                                   :x1.5
-STR_6827_X2                                                     :x2
-STR_6828_X3                                                     :x3
-STR_6829_X4                                                     :x4
-STR_682A_VERY_FLAT                                              :Vrlo ravno
-STR_682B_FLAT                                                   :Ravno
-STR_682C_HILLY                                                  :Brežuljkasto
-STR_682D_MOUNTAINOUS                                            :Brdovito
-STR_682E_STEADY                                                 :Stabilno
-STR_682F_FLUCTUATING                                            :Promjenjivo
-STR_6830_IMMEDIATE                                              :Odmah
-STR_6831_3_MONTHS_AFTER_PLAYER                                  :3 mjeseca nakon igrača
-STR_6832_6_MONTHS_AFTER_PLAYER                                  :6 mjeseci nakon igrača
-STR_6833_9_MONTHS_AFTER_PLAYER                                  :9 mjeseci nakon igrača
-STR_6834_AT_END_OF_LINE_AND_AT_STATIONS                         :Na kraju pruge, i na stanici
-STR_6835_AT_END_OF_LINE_ONLY                                    :Isključivo na kraju pruge
-STR_6836_OFF                                                    :Isključeno
-STR_6837_ON                                                     :Uključeno
-STR_6838_SHOW_HI_SCORE_CHART                                    :{BLACK}Prikaz tablice najboljih rezultata
-STR_6839_PERMISSIVE                                             :Dopustiv
-STR_683A_TOLERANT                                               :Tolerantan
-STR_683B_HOSTILE                                                :Agresivan
-
-##id 0x7000
-STR_7000                                                        :
-STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{PLAYERNAME}
-STR_7002_PLAYER                                                 :(Igrač {COMMA})
-STR_7004_NEW_FACE                                               :{BLACK}Novo lice
-STR_7005_COLOR_SCHEME                                           :{BLACK}Boja
-STR_7006_COLOR_SCHEME                                           :{GOLD}Boja:
-STR_7007_NEW_COLOR_SCHEME                                       :{WHITE}Nova boja
-STR_7008_COMPANY_NAME                                           :{BLACK}Ime tvrtke
-STR_7009_PRESIDENT_NAME                                         :{BLACK}Ime direktora
-STR_700A_COMPANY_NAME                                           :Ime tvrtke
-STR_700B_PRESIDENT_S_NAME                                       :Ime direktora
-STR_700C_CAN_T_CHANGE_COMPANY_NAME                              :{WHITE}Ime tvrtke ne može se promijeniti...
-STR_700D_CAN_T_CHANGE_PRESIDENT                                 :{WHITE}Ne možeš promijeniti ime direktora...
-STR_700E_FINANCES                                               :{WHITE}{COMPANY} Financije {BLACK}{PLAYERNAME}
-STR_700F_EXPENDITURE_INCOME                                     :{WHITE}Izdatci/Prihodi
-STR_7010                                                        :{WHITE}{NUM}
-STR_7011_CONSTRUCTION                                           :{GOLD}Građenje
-STR_7012_NEW_VEHICLES                                           :{GOLD}Nova vozila
-STR_7013_TRAIN_RUNNING_COSTS                                    :{GOLD}Troškovi uporabe vlakova
-STR_7014_ROAD_VEH_RUNNING_COSTS                                 :{GOLD}Troškovi uporabe cestovnih vozila
-STR_7015_AIRCRAFT_RUNNING_COSTS                                 :{GOLD}Troškovi uporabe zrakoplova
-STR_7016_SHIP_RUNNING_COSTS                                     :{GOLD}Troškovi uporabe brodova
-STR_7017_PROPERTY_MAINTENANCE                                   :{GOLD}Održavanje posjeda
-STR_7018_TRAIN_INCOME                                           :{GOLD}Prihod od vlakova
-STR_7019_ROAD_VEHICLES_INCOME                                   :{GOLD}Prihod od cestovnih vozila
-STR_701A_AIRCRAFT_INCOME                                        :{GOLD}Prihod od zrakoplova
-STR_701B_SHIP_INCOME                                            :{GOLD}Prihod od brodova
-STR_701C_LOAN_INTEREST                                          :{GOLD}Kamate
-STR_701D_OTHER                                                  :{GOLD}Ostalo
-STR_701E                                                        :{BLACK}-{CURRENCY}
-STR_701F                                                        :{BLACK}+{CURRENCY}
-STR_7020_TOTAL                                                  :{WHITE}Ukupno:
-STR_7021                                                        :{COMPANY}{PLAYERNAME}
-STR_7022_INCOME_GRAPH                                           :{WHITE}Graf prihoda
-STR_CURRCOMPACT                                                 :{CURRCOMPACT}
-STR_7024                                                        :{COMMA}
-STR_7025_OPERATING_PROFIT_GRAPH                                 :{WHITE}Graf operativnih prihoda
-STR_7026_BANK_BALANCE                                           :{WHITE}Bankovna bilanca
-STR_7027_LOAN                                                   :{WHITE}Kredit
-STR_MAX_LOAN                                                    :{WHITE}Maks zajam:  {BLACK}{CURRENCY}
-STR_7028                                                        :{BLACK}{CURRENCY}
-STR_7029_BORROW                                                 :{BLACK}Pozajmi {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
-STR_702A_REPAY                                                  :{BLACK}Otplati {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
-STR_702B_MAXIMUM_PERMITTED_LOAN                                 :{WHITE}...najveći dopušteni kredit iznosi {CURRENCY}
-STR_702C_CAN_T_BORROW_ANY_MORE_MONEY                            :{WHITE}Ne možeš dobiti još kredita...
-STR_702D_LOAN_ALREADY_REPAYED                                   :{WHITE}...nemaš kredita za otplatu
-STR_702E_REQUIRED                                               :{WHITE}...{CURRENCY} potrebno
-STR_702F_CAN_T_REPAY_LOAN                                       :{WHITE}Ne možeš otplatiti kredit...
-STR_INSUFFICIENT_FUNDS                                          :{WHITE}Ne možeš dati novac koji je pozajmljen od banke...
-STR_7030_SELECT_NEW_FACE_FOR_PRESIDENT                          :{BLACK}Odaberi novo lice za direktora
-STR_7031_CHANGE_THE_COMPANY_VEHICLE                             :{BLACK}Promijeni izgled vozila tvrtke
-STR_7032_CHANGE_THE_PRESIDENT_S                                 :{BLACK}Promjeni ime direktora
-STR_7033_CHANGE_THE_COMPANY_NAME                                :{BLACK}Promijeni ime tvrtke
-STR_7034_CLICK_ON_SELECTED_NEW_COLOR                            :{BLACK}Klikni na odabranu boju
-STR_7035_INCREASE_SIZE_OF_LOAN                                  :{BLACK}Povećaj iznos kredita
-STR_7036_REPAY_PART_OF_LOAN                                     :{BLACK}Otplati dio kredita
-STR_7037_PRESIDENT                                              :{WHITE}{PLAYERNAME}{}{GOLD}(Direktor)
-STR_7038_INAUGURATED                                            :{GOLD}Na poziciji od: {WHITE}{NUM}
-STR_7039_VEHICLES                                               :{GOLD}Vozila:
-STR_TRAINS                                                      :{WHITE}{COMMA} vlak{P "" a ova}
-STR_ROAD_VEHICLES                                               :{WHITE}{COMMA} cestovn{P o a ih} vozil{P o a a}
-STR_AIRCRAFT                                                    :{WHITE}{COMMA} zrakoplov
-STR_SHIPS                                                       :{WHITE}{COMMA} brod{P "" a ova}
-STR_7042_NONE                                                   :{WHITE}Ništa
-STR_7043_FACE_SELECTION                                         :{WHITE}Odabir lica
-STR_7044_MALE                                                   :{BLACK}Muško
-STR_7045_FEMALE                                                 :{BLACK}Žensko
-STR_7046_NEW_FACE                                               :{BLACK}Novo lice
-STR_7047_CANCEL_NEW_FACE_SELECTION                              :{BLACK}Odustani od odabira novog lica
-STR_7048_ACCEPT_NEW_FACE_SELECTION                              :{BLACK}Prihvati odabir novog lica
-STR_7049_SELECT_MALE_FACES                                      :{BLACK}Odaberi muška lica
-STR_704A_SELECT_FEMALE_FACES                                    :{BLACK}Odaberi ženska lica
-STR_704B_GENERATE_RANDOM_NEW_FACE                               :{BLACK}Generiraj nasumično novo lice
-STR_704C_KEY                                                    :{BLACK}Ključ
-STR_704D_SHOW_KEY_TO_GRAPHS                                     :{BLACK}Prikaži ključeve po grafovima
-STR_704E_KEY_TO_COMPANY_GRAPHS                                  :{WHITE}Ključ za grafove tvrtke
-STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY                           :{BLACK}Klikni ovdje za uključivanje/isključivanje tvrke s grafa
-STR_7050_UNITS_OF_CARGO_DELIVERED                               :{WHITE}Dostavljenih jedinica tereta
-STR_7051_COMPANY_PERFORMANCE_RATINGS                            :{WHITE}Ocjena učinka tvrtke (najveća ocjena = 1000)
-STR_7052_COMPANY_VALUES                                         :{WHITE}Vrijednost tvrtki
-STR_7053_COMPANY_LEAGUE_TABLE                                   :{WHITE}Tablica lige tvrtki
-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}Prijevozna tvrtka u nevoljama!
-STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED                           :{BLACK}{BIGFONT}{COMPANY} će biti rasprodana ili objaviti bankrot ukoliko se učinak uskoro ne poboljša!
-STR_7058_PRESIDENT                                              :{BLACK}{PLAYERNAME}{}(Direktor)
-STR_7059_TRANSPORT_COMPANY_MERGER                               :{BLACK}{BIGFONT}Spajanje prijevoznih tvrki!
-STR_705A_HAS_BEEN_SOLD_TO_FOR                                   :{BLACK}{BIGFONT}{COMPANY} je bila prodana tvrtki {COMPANY} za {CURRENCY}!
-STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT                         :{WHITE}Tražimo prijevoznu tvrku koja bi preuzela našu tvrtku.{}{}Želiš li kupiti tvrtku{COMPANY} za {CURRENCY}?
-STR_705C_BANKRUPT                                               :{BLACK}{BIGFONT}Bankrot!
-STR_705D_HAS_BEEN_CLOSED_DOWN_BY                                :{BLACK}{BIGFONT}{COMPANY} je zatvorena od strane kreditora i sva je imovina rasprodana!
-STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED                         :{BLACK}{BIGFONT}Osnovana je nova prijevozna tvrtka!
-STR_705F_STARTS_CONSTRUCTION_NEAR                               :{BLACK}{BIGFONT}{COMPANY} započinje gradnju blizu grada {TOWN}!
-STR_7060_CAN_T_BUY_COMPANY                                      :{WHITE}Ne možeš kupiti tvrtku...
-STR_7061_CARGO_PAYMENT_RATES                                    :{WHITE}Isplatne rate tereta
-STR_7062_DAYS_IN_TRANSIT                                        :{BLACK}{TINYFONT}Dana u tranzitu
-STR_7064_TOGGLE_GRAPH_FOR_CARGO                                 :{BLACK}Aktiviraj/deaktiviraj graf za vrstu tereta
-STR_7065                                                        :{BLACK}{TINYFONT}{STRING}
-STR_7066_ENGINEER                                               :Inženjer
-STR_7067_TRAFFIC_MANAGER                                        :Prijevozni upravitelj
-STR_7068_TRANSPORT_COORDINATOR                                  :Prijevozni koordinator
-STR_7069_ROUTE_SUPERVISOR                                       :Prijevozni nadzornik
-STR_706A_DIRECTOR                                               :Direktor
-STR_706B_CHIEF_EXECUTIVE                                        :Izvršni direktor
-STR_706C_CHAIRMAN                                               :Predsjedavajući
-STR_706D_PRESIDENT                                              :Predsjednik
-STR_706E_TYCOON                                                 :Tajkun
-STR_706F_BUILD_HQ                                               :{BLACK}Izgradi sjedište tvrtke
-STR_7070_BUILD_COMPANY_HEADQUARTERS                             :{BLACK}Izgradi središte tvrtke / pogledaj sjedište tvrtke
-STR_RELOCATE_COMPANY_HEADQUARTERS                               :{BLACK}Izgradi sjedište kompanije negdje dalje za 1% troška od vrijednosti kompanije
-STR_7071_CAN_T_BUILD_COMPANY_HEADQUARTERS                       :{WHITE}Ne mogu izgraditi sjedište tvrke...
-STR_7072_VIEW_HQ                                                :{BLACK}Pogledaj sjedište tvrtke
-STR_RELOCATE_HQ                                                 :{BLACK}Premjesti sjedište kompanije
-STR_COMPANY_PASSWORD                                            :{BLACK}Zaporka
-STR_COMPANY_PASSWORD_TOOLTIP                                    :{BLACK}Zaštiti svoju tvrku od neovlaštenog korištenje pomoću zaporke.
-STR_SET_COMPANY_PASSWORD                                        :Postavi zaporku tvrtke
-STR_7073_WORLD_RECESSION_FINANCIAL                              :{BIGFONT}{BLACK}Svjetska recesija!{}{}Financijski stručnjaci očekuju najgore zbog ekonomske krize!
-STR_7074_RECESSION_OVER_UPTURN_IN                               :{BIGFONT}{BLACK}Recesija završena!{}{}Obrat  u trgovanu daje samopouzdanje gospodarstvu jer ekonomija jača!
-STR_7076_COMPANY_VALUE                                          :{GOLD}Vrijednost tvrtke: {WHITE}{CURRENCY}
-STR_7077_BUY_25_SHARE_IN_COMPANY                                :{BLACK}Kupi 25% udjela u tvrtci
-STR_7078_SELL_25_SHARE_IN_COMPANY                               :{BLACK}Prodaj 25% udio u tvrtci
-STR_7079_BUY_25_SHARE_IN_THIS_COMPANY                           :{BLACK}Kupi 25% udjela u ovoj tvrtci
-STR_707A_SELL_25_SHARE_IN_THIS_COMPANY                          :{BLACK}Prodaj 25% udjela u ovoj tvrtci
-STR_707B_CAN_T_BUY_25_SHARE_IN_THIS                             :{WHITE}Ne možeš kupiti 25% udjela u ovoj tvrtci...
-STR_707C_CAN_T_SELL_25_SHARE_IN                                 :{WHITE}Ne možeš prodati 25% udjela u ovoj tvrtci...
-STR_707D_OWNED_BY                                               :{WHITE}({COMMA}% u vlasništvu {COMPANY})
-STR_707E_OWNED_BY_OWNED_BY                                      :{WHITE}({COMMA}% u vlasništvu {COMPANY}{}   {COMMA}% u vlasništvu {COMPANY})
-STR_707F_HAS_BEEN_TAKEN_OVER_BY                                 :{BLACK}{BIGFONT}{COMPANY} je preuzeta od strane tvrtke {COMPANY}!
-STR_7080_PROTECTED                                              :{WHITE}Ova tvrka još nije dovoljno stara da bi trgovala udjelima...
-
-STR_LIVERY_STEAM                                                :Parna lokomotva
-STR_LIVERY_DIESEL                                               :Dieselska lokomotiva
-STR_LIVERY_ELECTRIC                                             :Električna lokomotiva
-STR_LIVERY_MONORAIL                                             :Jednotračna lokomotiva
-STR_LIVERY_MAGLEV                                               :Maglevska lokomotiva
-STR_LIVERY_PASSENGER_WAGON_STEAM                                :Lokomotiva s putnicima (Parna)
-STR_LIVERY_PASSENGER_WAGON_DIESEL                               :Lokomotiva s putnicima (Dieselska)
-STR_LIVERY_PASSENGER_WAGON_ELECTRIC                             :Lokomotiva s putnicima (Električna)
-STR_LIVERY_FREIGHT_WAGON                                        :Teretni vagon
-STR_LIVERY_BUS                                                  :Autobus
-STR_LIVERY_TRUCK                                                :Kamion
-STR_LIVERY_PASSENGER_SHIP                                       :Trajekt
-STR_LIVERY_FREIGHT_SHIP                                         :Teretni brod
-STR_LIVERY_HELICOPTER                                           :Helikopter
-STR_LIVERY_SMALL_PLANE                                          :Mali zrakoplov
-STR_LIVERY_LARGE_PLANE                                          :Veliki zrakoplov
-
-
-##id 0x8000
-STR_8000_KIRBY_PAUL_TANK_STEAM                                  :Kirby Paul Tank (Para)
-STR_8001_MJS_250_DIESEL                                         :MJS 250 (Diesel)
-STR_8002_PLODDYPHUT_CHOO_CHOO                                   :Ploddyphut Choo-Choo
-STR_8003_POWERNAUT_CHOO_CHOO                                    :Powernaut Choo-Choo
-STR_8004_MIGHTYMOVER_CHOO_CHOO                                  :Mightymover Choo-Choo
-STR_8005_PLODDYPHUT_DIESEL                                      :Ploddyphut Diesel
-STR_8006_POWERNAUT_DIESEL                                       :Powernaut Diesel
-STR_8007_WILLS_2_8_0_STEAM                                      :Wills 2-8-0 (Para)
-STR_8008_CHANEY_JUBILEE_STEAM                                   :Chaney 'Jubilee' (Para)
-STR_8009_GINZU_A4_STEAM                                         :Ginzu 'A4' (Para)
-STR_800A_SH_8P_STEAM                                            :SH '8P' (Para)
-STR_800B_MANLEY_MOREL_DMU_DIESEL                                :Manley-Morel DMU (Diesel)
-STR_800C_DASH_DIESEL                                            :'Dash' (Diesel)
-STR_800D_SH_HENDRY_25_DIESEL                                    :SH/Hendry '25' (Diesel)
-STR_800E_UU_37_DIESEL                                           :UU '37' (Diesel)
-STR_800F_FLOSS_47_DIESEL                                        :Floss '47' (Diesel)
-STR_8010_CS_4000_DIESEL                                         :CS 4000 (Diesel)
-STR_8011_CS_2400_DIESEL                                         :CS 2400 (Diesel)
-STR_8012_CENTENNIAL_DIESEL                                      :Centennial (Diesel)
-STR_8013_KELLING_3100_DIESEL                                    :Kelling 3100 (Diesel)
-STR_8014_TURNER_TURBO_DIESEL                                    :Turner Turbo (Diesel)
-STR_8015_MJS_1000_DIESEL                                        :MJS 1000 (Diesel)
-STR_8016_SH_125_DIESEL                                          :SH '125' (Diesel)
-STR_8017_SH_30_ELECTRIC                                         :SH '30' (Electric)
-STR_8018_SH_40_ELECTRIC                                         :SH '40' (Električni)
-STR_8019_T_I_M_ELECTRIC                                         :'T.I.M.' (Električni)
-STR_801A_ASIASTAR_ELECTRIC                                      :'AsiaStar' (Električni)
-STR_801B_PASSENGER_CAR                                          :Putnički prijevoz
-STR_801C_MAIL_VAN                                               :Poštanski kombi
-STR_801D_COAL_CAR                                               :Kamion za ugljen
-STR_801E_OIL_TANKER                                             :Naftna cisterna
-STR_801F_LIVESTOCK_VAN                                          :Kamion za stoku
-STR_8020_GOODS_VAN                                              :Kamion za robu
-STR_8021_GRAIN_HOPPER                                           :Tegljač žita
-STR_8022_WOOD_TRUCK                                             :Kamion za drvo
-STR_8023_IRON_ORE_HOPPER                                        :Tegljač željeza
-STR_8024_STEEL_TRUCK                                            :Kamion za čelik
-STR_8025_ARMORED_VAN                                            :Oklopljeni kombi
-STR_8026_FOOD_VAN                                               :Kombi za hranu
-STR_8027_PAPER_TRUCK                                            :Kamion za papir
-STR_8028_COPPER_ORE_HOPPER                                      :Tegljač bakra
-STR_8029_WATER_TANKER                                           :Cisterna za vodu
-STR_802A_FRUIT_TRUCK                                            :Kamion za voće
-STR_802B_RUBBER_TRUCK                                           :Kamion za gumu
-STR_802C_SUGAR_TRUCK                                            :Kamion za šećer
-STR_802D_COTTON_CANDY_HOPPER                                    :Tegljač šećerne vune
-STR_802E_TOFFEE_HOPPER                                          :Tegljač mliječne karamele
-STR_802F_BUBBLE_VAN                                             :Kombi za balone
-STR_8030_COLA_TANKER                                            :Cisterna kole
-STR_8031_CANDY_VAN                                              :Kombi za slatkiše
-STR_8032_TOY_VAN                                                :Kombi za igračke
-STR_8033_BATTERY_TRUCK                                          :Kamion za baterije
-STR_8035_PLASTIC_TRUCK                                          :Kamion za plastiku
-STR_8036_X2001_ELECTRIC                                         :'X2001' (Električni)
-STR_8037_MILLENNIUM_Z1_ELECTRIC                                 :'Millennium Z1' (Električni)
-STR_8038_WIZZOWOW_Z99                                           :Wizzowow Z99
-STR_8039_PASSENGER_CAR                                          :Putnički prijevoz
-STR_803A_MAIL_VAN                                               :Poštanski kombi
-STR_803B_COAL_CAR                                               :Kamion za ugljen
-STR_803C_OIL_TANKER                                             :Naftni tanker
-STR_803D_LIVESTOCK_VAN                                          :Kamion za stoku
-STR_803E_GOODS_VAN                                              :Kamion za robu
-STR_803F_GRAIN_HOPPER                                           :Tegljač žita
-STR_8040_WOOD_TRUCK                                             :Kamion za drvo
-STR_8041_IRON_ORE_HOPPER                                        :Tegljač željeza
-STR_8042_STEEL_TRUCK                                            :Kamion za željezo
-STR_8043_ARMORED_VAN                                            :Oklopno vozilo
-STR_8044_FOOD_VAN                                               :Kamion za hranu
-STR_8045_PAPER_TRUCK                                            :Kamion za papir
-STR_8046_COPPER_ORE_HOPPER                                      :Tegljač bakra
-STR_8047_WATER_TANKER                                           :Cisterna za vodu
-STR_8048_FRUIT_TRUCK                                            :Kamion za voće
-STR_8049_RUBBER_TRUCK                                           :Kamion za gumu
-STR_804A_SUGAR_TRUCK                                            :Kamion za šećer
-STR_804B_COTTON_CANDY_HOPPER                                    :Tegljač Šećerne vune
-STR_804C_TOFFEE_HOPPER                                          :Tegljač mliječne karamele
-STR_804D_BUBBLE_VAN                                             :Kombi za balone
-STR_804E_COLA_TANKER                                            :Cisterna za colu
-STR_804F_CANDY_VAN                                              :Kombi za slatkiše
-STR_8050_TOY_VAN                                                :Kombi za igračke
-STR_8051_BATTERY_TRUCK                                          :Kamion za baterije
-STR_8053_PLASTIC_TRUCK                                          :Kamion za plastiku
-STR_8054_LEV1_LEVIATHAN_ELECTRIC                                :Lev1 'Leviathan' (Električni)
-STR_8055_LEV2_CYCLOPS_ELECTRIC                                  :Lev2 'Cyclops' (Električni)
-STR_8056_LEV3_PEGASUS_ELECTRIC                                  :Lev3 'Pegasus' (Električni)
-STR_8057_LEV4_CHIMAERA_ELECTRIC                                 :Lev4 'Chimaera' (Električni)
-STR_8058_WIZZOWOW_ROCKETEER                                     :Wizzowow Rocketeer
-STR_805A_MAIL_VAN                                               :Poštanski kombi
-STR_805B_COAL_CAR                                               :Kamion za ugljen
-STR_805C_OIL_TANKER                                             :Naftna cisterna
-STR_805D_LIVESTOCK_VAN                                          :Kamion za stoku
-STR_805E_GOODS_VAN                                              :Kamion za robu
-STR_805F_GRAIN_HOPPER                                           :Tegljač žita
-STR_8060_WOOD_TRUCK                                             :Kamion za drva
-STR_8061_IRON_ORE_HOPPER                                        :Tegljač željeza
-STR_8062_STEEL_TRUCK                                            :Kamion za čelik
-STR_8063_ARMORED_VAN                                            :Oklopno vozilo
-STR_8064_FOOD_VAN                                               :Kamion za hranu
-STR_8065_PAPER_TRUCK                                            :Kamion za papir
-STR_8066_COPPER_ORE_HOPPER                                      :Tegljač bakra
-STR_8067_WATER_TANKER                                           :Cisterna za vodu
-STR_8068_FRUIT_TRUCK                                            :Kamion za voće
-STR_8069_RUBBER_TRUCK                                           :Kamion za gumu
-STR_806A_SUGAR_TRUCK                                            :Kamion za šećer
-STR_806B_COTTON_CANDY_HOPPER                                    :Tegljač šećerne vune
-STR_806C_TOFFEE_HOPPER                                          :Teglač mliječne karamele
-STR_806D_BUBBLE_VAN                                             :Kombi za balone
-STR_806E_COLA_TANKER                                            :Cisterna za colu
-STR_806F_CANDY_VAN                                              :Kombi za slatkiše
-STR_8070_TOY_VAN                                                :Kombi za igračke
-STR_8071_BATTERY_TRUCK                                          :Kamion za baterije
-STR_8074_MPS_REGAL_BUS                                          :MPS Regal Bus
-STR_8075_HEREFORD_LEOPARD_BUS                                   :Hereford Leopard Bus
-STR_8076_FOSTER_BUS                                             :Foster Bus
-STR_8077_FOSTER_MKII_SUPERBUS                                   :Foster MkII Superbus
-STR_8078_PLODDYPHUT_MKI_BUS                                     :Ploddyphut MkI Bus
-STR_8079_PLODDYPHUT_MKII_BUS                                    :Ploddyphut MkII Bus
-STR_807A_PLODDYPHUT_MKIII_BUS                                   :Ploddyphut MkIII Bus
-STR_80D7_SAMPSON_U52                                            :Sampson U52
-STR_80D8_COLEMAN_COUNT                                          :Coleman Count
-STR_80D9_FFP_DART                                               :FFP Dart
-STR_80DA_YATE_HAUGAN                                            :Yate Haugan
-STR_80DB_BAKEWELL_COTSWALD_LB_3                                 :Bakewell Cotswald LB-3
-STR_80DC_BAKEWELL_LUCKETT_LB_8                                  :Bakewell Luckett LB-8
-STR_80DD_BAKEWELL_LUCKETT_LB_9                                  :Bakewell Luckett LB-9
-STR_80DE_BAKEWELL_LUCKETT_LB80                                  :Bakewell Luckett LB80
-STR_80DF_BAKEWELL_LUCKETT_LB_10                                 :Bakewell Luckett LB-10
-STR_80E0_BAKEWELL_LUCKETT_LB_11                                 :Bakewell Luckett LB-11
-STR_80E1_YATE_AEROSPACE_YAC_1_11                                :Yate Aerospace YAC 1-11
-STR_80E2_DARWIN_100                                             :Darwin 100
-STR_80E3_DARWIN_200                                             :Darwin 200
-STR_80E4_DARWIN_300                                             :Darwin 300
-STR_80E5_DARWIN_400                                             :Darwin 400
-STR_80E6_DARWIN_500                                             :Darwin 500
-STR_80E7_DARWIN_600                                             :Darwin 600
-STR_80E8_GURU_GALAXY                                            :Guru Galaxy
-STR_80E9_AIRTAXI_A21                                            :Airtaxi A21
-STR_80EA_AIRTAXI_A31                                            :Airtaxi A31
-STR_80EB_AIRTAXI_A32                                            :Airtaxi A32
-STR_80EC_AIRTAXI_A33                                            :Airtaxi A33
-STR_80ED_YATE_AEROSPACE_YAE46                                   :Yate Aerospace YAe46
-STR_80EE_DINGER_100                                             :Dinger 100
-STR_80EF_AIRTAXI_A34_1000                                       :AirTaxi A34-1000
-STR_80F0_YATE_Z_SHUTTLE                                         :Yate Z-Shuttle
-STR_80F1_KELLING_K1                                             :Kelling K1
-STR_80F2_KELLING_K6                                             :Kelling K6
-STR_80F3_KELLING_K7                                             :Kelling K7
-STR_80F4_DARWIN_700                                             :Darwin 700
-STR_80F5_FFP_HYPERDART_2                                        :FFP Hyperdart 2
-STR_80F6_DINGER_200                                             :Dinger 200
-STR_80F7_DINGER_1000                                            :Dinger 1000
-STR_80F8_PLODDYPHUT_100                                         :Ploddyphut 100
-STR_80F9_PLODDYPHUT_500                                         :Ploddyphut 500
-STR_80FA_FLASHBANG_X1                                           :Flashbang X1
-STR_80FB_JUGGERPLANE_M1                                         :Juggerplane M1
-STR_80FC_FLASHBANG_WIZZER                                       :Flashbang Wizzer
-STR_80FD_TRICARIO_HELICOPTER                                    :Tricario Helicopter
-STR_80FE_GURU_X2_HELICOPTER                                     :Guru X2 Helicopter
-STR_80FF_POWERNAUT_HELICOPTER                                   :Powernaut Helicopter
-STR_8100_MESSAGE_FROM_VEHICLE_MANUFACTURE                       :{WHITE}Poruka od proizvođača vozila
-STR_8101_WE_HAVE_JUST_DESIGNED_A                                :{GOLD}Upravo smo dizajnirani novi {STRING} - jeste li zainteresirani za jednogodišnje isključivo pravo uporabe ovog vozila, tako da vidimo kako se vozilo ponaša prije nego što postane univerzalno dostupno?
-STR_8102_RAILROAD_LOCOMOTIVE                                    :željeznička lokomotiva
-STR_8103_ROAD_VEHICLE                                           :cestovno vozilo
-STR_8104_AIRCRAFT                                               :zrakoplov
-STR_8105_SHIP                                                   :brod
-STR_8106_MONORAIL_LOCOMOTIVE                                    :monorail lokomotiva
-STR_8107_MAGLEV_LOCOMOTIVE                                      :maglev lokomotiva
-
-##id 0x8800
-STR_8800_TRAIN_DEPOT                                            :{WHITE}{TOWN} Spremište vlakova
-STR_8801_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Građani slave . . .{}Prvi vlak stiže na {STATION}!
-STR_8802_DETAILS                                                :{WHITE}{STRING} (Detalji)
-STR_8803_TRAIN_IN_THE_WAY                                       :{WHITE}Vlak na putu
-STR_8804                                                        :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805                                                        :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO                                                  :Idi do {STATION}
-STR_8807_GO_TO_TRANSFER                                         :Idi do {STATION} (Transferiraj i preuzmi teret)
-STR_8808_GO_TO_UNLOAD                                           :Idi do {STATION} (Istovar)
-STR_8809_GO_TO_TRANSFER_UNLOAD                                  :Go to {STATION} (Transferiraj i otiđi prazan)
-STR_880A_GO_TO_LOAD                                             :Idi do{STATION} (Utovar)
-STR_880B_GO_TO_TRANSFER_LOAD                                    :Idi do {STATION} (Transferiraj i pričekaj puni utovar)
-STR_880C_GO_NON_STOP_TO                                         :Idi non-stop do {STATION}
-STR_880D_GO_TO_NON_STOP_TRANSFER                                :Idi non-stop do {STATION} (Transferiraj i preuzmi teret)
-STR_880E_GO_NON_STOP_TO_UNLOAD                                  :Idi non-stop do {STATION} (Istovar)
-STR_880F_GO_TO_NON_STOP_TRANSFER_UNLOAD                         :Idi non-stop do {STATION} (Transferiraj i otiđi prazan)
-STR_8810_GO_NON_STOP_TO_LOAD                                    :Idi non-stop do{STATION} (Utovar)
-STR_8811_GO_TO_NON_STOP_TRANSFER_LOAD                           :Idi non-stop do {STATION} (Transferiraj i pričekaj puni utovar)
-STR_GO_TO_TRAIN_DEPOT                                           :Idi do {TOWN} spremište vlakova
-STR_SERVICE_AT_TRAIN_DEPOT                                      :Servisiraj u {TOWN} spremištu vlakova
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT                             :Idi non-stop do {TOWN} spremišta vlakova
-
-
-
-STR_UNKNOWN_DESTINATION                                         :nepoznato odredište
-STR_8812_EMPTY                                                  :{LTBLUE}Prazan
-STR_8813_FROM                                                   :{LTBLUE}{CARGO} iz {STATION}
-STR_8814_TRAIN_IS_WAITING_IN_DEPOT                              :{WHITE}Vlak {COMMA} čeka u spremištu
-STR_8815_NEW_VEHICLES                                           :{BLACK}Nova vozila
-STR_8816                                                        :{BLACK}-
-STR_8819_TRAIN_TOO_LONG                                         :{WHITE}Vlak predugačak
-STR_881A_TRAINS_CAN_ONLY_BE_ALTERED                             :{WHITE}Vlakovi mogu biti izmjenjeni jedino kad su zaustavljeni u spremištu
-
-STR_881C_NEW_RAIL_VEHICLES                                      :{WHITE}Nova željeznička vozila
-STR_881D_NEW_MONORAIL_VEHICLES                                  :{WHITE}Nova monorail vozila
-STR_881E_NEW_MAGLEV_VEHICLES                                    :{WHITE}Nova maglev vozila
-STR_ALL_AVAIL_RAIL_VEHICLES                                     :{WHITE}Željeznička vozila
-
-STR_881F_BUILD_VEHICLE                                          :{BLACK}Izgradi vozilo
-STR_CLONE_ROAD_VEHICLE                                          :{BLACK}Kloniraj vozilo
-STR_CLONE_ROAD_VEHICLE_INFO                                     :{BLACK}Ovo će izgraditi kopiju cestovnog vozila. Control-clik će dijeliti naredbe
-STR_CLONE_TRAIN                                                 :{BLACK}Kloniraj vlak
-STR_CLONE_TRAIN_INFO                                            :{BLACK}Ovo će izgraditi kopiju vlaka uključujući sve vagone. Control-klik će dijeliti naredbe
-STR_8820_RENAME                                                 :{BLACK}Preimenuj
-STR_8823_SKIP                                                   :{BLACK}Preskoči
-STR_8824_DELETE                                                 :{BLACK}Obriši
-STR_8825_NON_STOP                                               :{BLACK}Non-stop
-STR_8826_GO_TO                                                  :{BLACK}Idi do
-STR_8827_FULL_LOAD                                              :{BLACK}Puni utovar
-STR_8828_UNLOAD                                                 :{BLACK}Istovar
-STR_REFIT                                                       :{BLACK}Prenamijeni
-STR_REFIT_TIP                                                   :{BLACK}Odaberi tip tereta za prenamijeniti u ovoj narudžbi. CTRL-klik za brisanje uputa za prenamijenu
-STR_REFIT_ORDER                                                 :(Prenamijeni u {STRING})
-STR_8829_ORDERS                                                 :{WHITE}{VEHICLE} (Naredbe)
-STR_882A_END_OF_ORDERS                                          :{SETX 10}- - Kraj naredbi - -
-STR_SERVICE                                                     :{BLACK}Servis
-STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE                           :{WHITE}Ne mogu izgraditi željezničko vozilo...
-STR_882C_BUILT_VALUE                                            :{LTBLUE}{STRING}{BLACK}   Izgrađen: {LTBLUE}{NUM}{BLACK} Vrijednost: {LTBLUE}{CURRENCY}
-STR_882D_VALUE                                                  :{LTBLUE}{STRING}{BLACK}   Vrijednost: {LTBLUE}{CURRENCY}
-STR_882E                                                        :{WHITE}{VEHICLE}
-STR_882F_LOADING_UNLOADING                                      :{LTBLUE}Utovar / Istovar
-STR_8830_CAN_T_SEND_TRAIN_TO_DEPOT                              :{WHITE}Ne mogu poslati vlak u spremište...
-STR_8831_NO_MORE_SPACE_FOR_ORDERS                               :{WHITE}Nema mjesta za nove naredbe
-STR_8832_TOO_MANY_ORDERS                                        :{WHITE}Previše naredbi
-STR_8833_CAN_T_INSERT_NEW_ORDER                                 :{WHITE}Ne možeš ubaciti novu naredbu...
-STR_8834_CAN_T_DELETE_THIS_ORDER                                :{WHITE}Ne možeš obrisati ovu naredbu...
-STR_8835_CAN_T_MODIFY_THIS_ORDER                                :{WHITE}Ne možeš izmjeniti ovu naredbu...
-STR_8837_CAN_T_MOVE_VEHICLE                                     :{WHITE}Ne možeš pomaknuti vozilo...
-STR_REAR_ENGINE_FOLLOW_FRONT_ERROR                              :{WHITE}Stražnja lokomotiva će uvijek pratiti svog prednjeg dvojnika
-STR_8838_N_A                                                    :N/A{SKIP}
-STR_8839_CAN_T_SELL_RAILROAD_VEHICLE                            :{WHITE}Ne možeš prodati željezničko vozilo
-STR_883A_UNABLE_TO_FIND_ROUTE_TO                                :{WHITE}Ne može pronaći put do lokalnog spremišta
-STR_883B_CAN_T_STOP_START_TRAIN                                 :{WHITE}Ne možeš zaustaviti/pokrenuti vlak...
-STR_883C_SERVICING_INTERVAL_DAYS                                :{BLACK}Servisni interval: {LTBLUE}{COMMA}dana{BLACK}   Zadnji servis: {LTBLUE}{DATE_LONG}
-STR_SERVICING_INTERVAL_PERCENT                                  :{BLACK}Servisni interval: {LTBLUE}{COMMA}%{BLACK} Zadnji servis: {LTBLUE}{DATE_LONG}
-STR_883D_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Vlakovi - klikni na vlak za informacije
-STR_883E_BUILD_NEW_TRAINS_REQUIRES                              :{BLACK}Izgradi/kupi nove vlakove (zahtijeva spremište vlakova)
-STR_883F_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Vlakovi - klikni na vlak za informacije., vuci vozilo kako bi dodao/oduzeo od vlaka
-STR_884C_SHOW_TRAIN_DETAILS                                     :{BLACK}Prikaži detalje vlaka
-STR_884D_INCREASE_SERVICING_INTERVAL                            :{BLACK}Povećaj servisni interval
-STR_884E_DECREASE_SERVICING_INTERVAL                            :{BLACK}Smanji servisni interval
-STR_884F_SHOW_DETAILS_OF_CARGO_CARRIED                          :{BLACK}Pokaži detalje prevoženog tereta
-STR_8853_SKIP_THE_CURRENT_ORDER                                 :
-STR_8854_DELETE_THE_HIGHLIGHTED                                 :{BLACK}Obriši označenu naredbu
-STR_SERVICE_HINT                                                :{BLACK}Preskoči ovu narudžbu osim ako servis nije potreban
-STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Trošak: {CURRENCY} Težina: {WEIGHT_S}{}Brzina: {VELOCITY} Snaga: {POWER}{}Troškovi održavanja: {CURRENCY}/god{}Kapacitet: {CARGO}
-STR_885C_BROKEN_DOWN                                            :{RED}Pokvaren
-STR_885D_AGE_RUNNING_COST_YR                                    :{BLACK}Starost: {LTBLUE}{STRING}{BLACK}   Troškovi uporabe: {LTBLUE}{CURRENCY}/god
-STR_885F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Zarada ove godine: {LTBLUE}{CURRENCY}  (prošle godine: {CURRENCY})
-STR_8860_RELIABILITY_BREAKDOWNS                                 :{BLACK}Pouzdanost: {LTBLUE}{COMMA}%  {BLACK}Kvarova od zadnjeg servisa: {LTBLUE}{COMMA}
-STR_8861_STOPPED                                                :{RED}Zaustavljen
-STR_8862_CAN_T_MAKE_TRAIN_PASS_SIGNAL                           :{WHITE}Ne mogu natjerati vlak da ignorira signale dok je opasnost...
-STR_8863_CRASHED                                                :{RED}Slupan!
-
-STR_8865_NAME_TRAIN                                             :{WHITE}Imenuj vlak
-STR_8866_CAN_T_NAME_TRAIN                                       :{WHITE}Ne mogu imenovati vlak...
-STR_8867_NAME_TRAIN                                             :{BLACK}Imenuj vlak
-STR_8868_TRAIN_CRASH_DIE_IN_FIREBALL                            :{BLACK}{BIGFONT}Vlak se sudario!{}{COMMA} poginulih u eksploziji nakon sudara
-STR_8869_CAN_T_REVERSE_DIRECTION                                :{WHITE}Ne mogu promijeniti smjer vlaka...
-STR_886A_RENAME_TRAIN_VEHICLE_TYPE                              :{WHITE}Preimenuj vrstu vlaka
-STR_886F_TRANSFER                                               :{BLACK}Transfer
-
-STR_TRAIN_STOPPING                                              :{RED}Zaustavljam
-STR_TRAIN_STOPPING_VEL                                          :{RED}Zaustavljam, {VELOCITY}
-
-
-##id 0x9000
-STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Cestovno vozilo na putu
-STR_9002                                                        :{WHITE}{VEHICLE}
-STR_9003_ROAD_VEHICLE_DEPOT                                     :{WHITE}{TOWN} Spremište cestovnih vozila
-STR_9004_NEW_VEHICLES                                           :{BLACK}Nova vozila
-STR_9006_NEW_ROAD_VEHICLES                                      :{WHITE}Nova cestovna vozila
-STR_9007_BUILD_VEHICLE                                          :{BLACK}Izgradi vozilo
-STR_9009_CAN_T_BUILD_ROAD_VEHICLE                               :{WHITE}Ne mogu izgraditi cestovno vozilo...
-STR_900C_DETAILS                                                :{WHITE}{VEHICLE} (Detalji)
-STR_900D_AGE_RUNNING_COST_YR                                    :{BLACK}Starost: {LTBLUE}{STRING}{BLACK}   Trošak uporabe {LTBLUE}{CURRENCY}/god
-STR_900E_MAX_SPEED                                              :{BLACK}Maks brzina: {LTBLUE}{VELOCITY}
-STR_900F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Zarada ove godine: {LTBLUE}{CURRENCY}  (prošle godine: {CURRENCY})
-STR_9010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Pouzdanost: {LTBLUE}{COMMA}%  {BLACK}Kvarovi od posljednjeg servisa: {LTBLUE}{COMMA}
-STR_9011_BUILT_VALUE                                            :{LTBLUE}{STRING}{BLACK}   Izgrađen: {LTBLUE}{NUM}{BLACK} Vrijednost: {LTBLUE}{CURRENCY}
-STR_9012_CAPACITY                                               :{BLACK}Kapacitet: {LTBLUE}{CARGO}
-STR_9013_MUST_BE_STOPPED_INSIDE                                 :{WHITE}...mora biti zaustavljen unutar spremišta cestovnih vozila
-STR_9014_CAN_T_SELL_ROAD_VEHICLE                                :{WHITE}Ne mogu prodati cestovno vozilo...
-STR_9015_CAN_T_STOP_START_ROAD_VEHICLE                          :{WHITE}Ne mogu zaustaviti/pokrenuti cestovno vozilo...
-STR_9016_ROAD_VEHICLE_IS_WAITING                                :{WHITE}Cestovno vozilo {COMMA} čeka u spremištu
-STR_HEADING_FOR_ROAD_DEPOT                                      :{ORANGE}Kreće se prema {TOWN} cestovnom spremištu
-STR_HEADING_FOR_ROAD_DEPOT_VEL                                  :{ORANGE}Kreće se prema {TOWN} cestovnom spremištu, {VELOCITY}
-STR_HEADING_FOR_ROAD_DEPOT_SERVICE                              :{LTBLUE}Servisiranje u {TOWN} cestovnom spremištu
-STR_HEADING_FOR_ROAD_DEPOT_SERVICE_VEL                          :{LTBLUE}Seervisiranje u {TOWN} cestovnom spremištu, {VELOCITY}
-STR_9018_CAN_T_SEND_VEHICLE_TO_DEPOT                            :{WHITE}Ne mogu poslati vozilo u spremište...
-STR_9019_UNABLE_TO_FIND_LOCAL_DEPOT                             :{WHITE}Ne mogu pronaći lokalno spremište
-STR_901A_ROAD_VEHICLES_CLICK_ON                                 :{BLACK}Cestovna vozila - klikni na vozilo za informacije
-STR_901B_BUILD_NEW_ROAD_VEHICLES                                :{BLACK}Izgradi nova cestovna vozila (zahtijeva spremište cestovnih vozila)
-STR_901C_CURRENT_VEHICLE_ACTION                                 :{BLACK}Trenutna radnja vozila - klikni ovdje kako bi zaustavio/pokrenuo vozilo
-STR_901D_SHOW_VEHICLE_S_ORDERS                                  :{BLACK}Prikaži naredbe vozila
-STR_901E_CENTER_MAIN_VIEW_ON_VEHICLE                            :{BLACK}Centriraj glavni pogled na lokaciju vozila
-STR_901F_SEND_VEHICLE_TO_DEPOT                                  :{BLACK}Pošalji vozilo u spremište. CTRL+klik će samo servisirati
-STR_9020_FORCE_VEHICLE_TO_TURN_AROUND                           :{BLACK}Natjeraj vozila da se okrene natrag
-STR_9021_SHOW_ROAD_VEHICLE_DETAILS                              :{BLACK}Prikaži detalje cestovnog vozila
-STR_9022_VEHICLES_CLICK_ON_VEHICLE                              :{BLACK}Vozila - klikni na vozilo za informaciju
-STR_9023_BUILD_NEW_ROAD_VEHICLE                                 :{BLACK}Izgradi novo cestovno vozilo
-STR_9024_DRAG_ROAD_VEHICLE_TO_HERE                              :{BLACK}Povuci cestovno vozilo ovdje kako bi ga prodao
-STR_9025_CENTER_MAIN_VIEW_ON_ROAD                               :{BLACK}Centriraj glavni pogled na lokaciju spremišta cestovnih vozila
-STR_9026_ROAD_VEHICLE_SELECTION                                 :{BLACK}Popis cestovnih vozila - pritisni na vozilo za informacije
-STR_9027_BUILD_THE_HIGHLIGHTED_ROAD                             :{BLACK}Izgradi označeno cestovno vozilo
-STR_902A_COST_SPEED_RUNNING_COST                                :{BLACK}Trošak: {CURRENCY}{}Brzina: {VELOCITY}{}Trošak uporabe: {CURRENCY}/god{}Kapacitet: {CARGO}
-
-STR_902C_NAME_ROAD_VEHICLE                                      :{WHITE}Imenuj cestovno vozilo
-STR_902D_CAN_T_NAME_ROAD_VEHICLE                                :{WHITE}Ne mogu imenovati cestovno vozilo...
-STR_902E_NAME_ROAD_VEHICLE                                      :{BLACK}Imenuj cestovno vozilo
-STR_902F_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Građani slave . . .{}Prvi bus stiže na {STATION}!
-STR_9030_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Građani slave . . .{}Prvi kamion stiže na {STATION}!
-STR_9031_ROAD_VEHICLE_CRASH_DRIVER                              :{BLACK}{BIGFONT}Sudar cestovnog vozila!{}Vozač poginuo u eksploziji nakon sudara s vlakom
-STR_9032_ROAD_VEHICLE_CRASH_DIE                                 :{BLACK}{BIGFONT}Sudar cestovnog vozila!{}{COMMA} poginulih u eksploziji nakon sudara s vlakom
-STR_9033_CAN_T_MAKE_VEHICLE_TURN                                :{WHITE}Ne mogu natjerati vozilo da se okrene...
-STR_ONLY_TURN_SINGLE_UNIT                                       :{WHITE}Ne mogu okreniti vozila koja se sastoje od više jedinica
-STR_9034_RENAME                                                 :{BLACK}Preimenuj
-STR_9035_RENAME_ROAD_VEHICLE_TYPE                               :{BLACK}Preimenuj vrstu cestovnog vozila
-STR_9036_RENAME_ROAD_VEHICLE_TYPE                               :{WHITE}Preimenuj vrstu cestovnog vozila
-STR_9037_CAN_T_RENAME_ROAD_VEHICLE                              :{WHITE}Ne mogu preimenovati vrstu cestovnog vozila...
-STR_9038_GO_TO_ROADVEH_DEPOT                                    :Idi prema spremištu cestovnih vozila {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT                                    :Servisiranje pri {TOWN} spremištu cestovnih vozila
-
-STR_REFIT_ROAD_VEHICLE_TO_CARRY                                 :{BLACK}Prenamijeni cestovno vozilo za prijevoz druge vrste tereta
-STR_REFIT_ROAD_VEHICLE                                          :{BLACK}Prenamijeni cestovno vozilo
-STR_REFIT_ROAD_VEHICLE_TO_CARRY_HIGHLIGHTED                     :{BLACK}Prenamijeni cestovno vozilo za prijevoz druge vrste tereta
-STR_REFIT_ROAD_VEHICLE_CAN_T                                    :{WHITE}Ne mogu prenamijeniti cestovno vozilo...
-STR_ROAD_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Izaberi vrstu tereta koje će cestovno vozilo prevoziti
-
-##id 0x9800
-STR_9800_DOCK_CONSTRUCTION                                      :Izgradnja pristaništa
-STR_9801_DOCK_CONSTRUCTION                                      :{WHITE}Izgradnja pristaništa
-STR_9802_CAN_T_BUILD_DOCK_HERE                                  :{WHITE}Ovdje ne mogu izgraditi pristanište...
-STR_9803_SHIP_DEPOT                                             :{WHITE}{TOWN} Spremište brodova
-STR_9804_NEW_SHIPS                                              :{BLACK}Novi brodovi
-STR_9805_SHIPS                                                  :{WHITE}{COMPANY} - {COMMA} Brod{P "" a ova}
-STR_9808_NEW_SHIPS                                              :{WHITE}Novi brodovi
-STR_9809_BUILD_SHIP                                             :{BLACK}Izgradi brod
-STR_CLONE_SHIP                                                  :{BLACK}Kloniraj brod
-STR_CLONE_SHIP_INFO                                             :{BLACK}Ovo će izgradi kopiju broda. Control-klik će dijeliti naredbe
-STR_980B_SHIP_MUST_BE_STOPPED_IN                                :{WHITE}Brod mora biti zaustavljen u spremištu
-STR_980C_CAN_T_SELL_SHIP                                        :{WHITE}Ne mogu prodati brod...
-STR_980D_CAN_T_BUILD_SHIP                                       :{WHITE}Ne mogu izgraditi brod...
-STR_980E_SHIP_IN_THE_WAY                                        :{WHITE}Smeta brod
-STR_980F                                                        :{WHITE}{VEHICLE}
-STR_9811_DETAILS                                                :{WHITE}{VEHICLE} (Detalji)
-STR_9812_AGE_RUNNING_COST_YR                                    :{BLACK}Starost: {LTBLUE}{STRING}{BLACK}   Trošak uporabe: {LTBLUE}{CURRENCY}/god
-STR_9813_MAX_SPEED                                              :{BLACK}Maks. brzina: {LTBLUE}{VELOCITY}
-STR_9814_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Zarada ove godine: {LTBLUE}{CURRENCY}  (prošle godine: {CURRENCY})
-STR_9815_RELIABILITY_BREAKDOWNS                                 :{BLACK}Pouzdanost: {LTBLUE}{COMMA}%  {BLACK}Kvarova od posljednjeg servisa: {LTBLUE}{COMMA}
-STR_9816_BUILT_VALUE                                            :{LTBLUE}{STRING}{BLACK}   Izgrađeno: {LTBLUE}{NUM}{BLACK} Vrijednost: {LTBLUE}{CURRENCY}
-STR_9817_CAPACITY                                               :{BLACK}Zapremnina: {LTBLUE}{CARGO}
-STR_9818_CAN_T_STOP_START_SHIP                                  :{WHITE}Ne mogu pokrenuti/zaustaviti brod...
-STR_9819_CAN_T_SEND_SHIP_TO_DEPOT                               :{WHITE}Ne mogu poslati brod u skladište...
-STR_981A_UNABLE_TO_FIND_LOCAL_DEPOT                             :{WHITE}Ne mogu naći lokalno spremište
-STR_HEADING_FOR_SHIP_DEPOT                                      :{ORANGE}Kreće se prema {TOWN} spremištu brodova
-STR_HEADING_FOR_SHIP_DEPOT_VEL                                  :{ORANGE}Kreće se prema {TOWN} spremištu brodova, {VELOCITY}
-STR_HEADING_FOR_SHIP_DEPOT_SERVICE                              :{LTBLUE}Servisiranje u {TOWN} spremištu brodova
-STR_HEADING_FOR_SHIP_DEPOT_SERVICE_VEL                          :{LTBLUE}Servisiranje u {TOWN} spremištu brodova, {VELOCITY}
-STR_981C_SHIP_IS_WAITING_IN_DEPOT                               :{WHITE}Brod {COMMA} čeka u spremištu
-STR_981D_BUILD_SHIP_DOCK                                        :{BLACK}Izgradi brodsko pristanište
-STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING                          :{BLACK}Izgradi spremište brodova (za gradnu i servisiranje brodova)
-STR_981F_SHIPS_CLICK_ON_SHIP_FOR                                :{BLACK}Brodovi - klikni na brod za informacije
-STR_9820_BUILD_NEW_SHIP                                         :{BLACK}Izgradi novi brod
-STR_9821_DRAG_SHIP_TO_HERE_TO_SELL                              :{BLACK}Povuci brod ovdje kako bi ga prodao
-STR_9822_CENTER_MAIN_VIEW_ON_SHIP                               :{BLACK}Centriraj glavni pogled na lokaciju spremišta brodova
-STR_9823_SHIPS_CLICK_ON_SHIP_FOR                                :{BLACK}Brodovi - klikni na brod za informacije
-STR_9824_BUILD_NEW_SHIPS_REQUIRES                               :{BLACK}Izgradi nove brodove (zahtijeva spremište brodova)
-STR_9825_SHIP_SELECTION_LIST_CLICK                              :{BLACK}Popis brodova - pritisni na brod za informacije
-STR_9826_BUILD_THE_HIGHLIGHTED_SHIP                             :{BLACK}Izgradi označeni brod
-STR_9827_CURRENT_SHIP_ACTION_CLICK                              :{BLACK}Trenutna radnja broda - pritisni ovdje za zaustavljanje/pokretanje broda
-STR_9828_SHOW_SHIP_S_ORDERS                                     :{BLACK}Prikaži naredbe broda
-STR_9829_CENTER_MAIN_VIEW_ON_SHIP                               :{BLACK}Centriraj glavni pogled na lokaciju broda
-STR_982B_SHOW_SHIP_DETAILS                                      :{BLACK}Prikaži detalje broda
-STR_982F_NAME_SHIP                                              :{BLACK}Imenuj brod
-
-STR_9831_NAME_SHIP                                              :{WHITE}Imenuj brod
-STR_9832_CAN_T_NAME_SHIP                                        :{WHITE}Ne mogu imenovati brod...
-STR_9833_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Građani slave . . .{}Prvi brod stigao do {STATION}!
-STR_9834_POSITION_BUOY_WHICH_CAN                                :{BLACK}Smjesti plutaču koja može biti korištena kao pokazatelj puta
-STR_9835_CAN_T_POSITION_BUOY_HERE                               :{WHITE}Ne mogu staviti plutaču ovdje...
-STR_9836_RENAME                                                 :{BLACK}Preimenuj
-STR_9837_RENAME_SHIP_TYPE                                       :{BLACK}Preimenuj vrstu broda
-STR_9838_RENAME_SHIP_TYPE                                       :{WHITE}Preimenuj vrstu broda
-STR_9839_CAN_T_RENAME_SHIP_TYPE                                 :{WHITE}Ne mogu preimenovati vrstu broda...
-STR_983A_REFIT_CARGO_SHIP_TO_CARRY                              :{BLACK}Prenamijeni teretni brod da nosi neku drugu vrstu tereta
-STR_983B_REFIT                                                  :{WHITE}{VEHICLE} (Prenamijeni)
-STR_983C_REFIT_SHIP                                             :{BLACK}Prenamijeni brod
-STR_983D_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Odabri vrstu tereta za prijevoz brodom:
-STR_983E_REFIT_SHIP_TO_CARRY_HIGHLIGHTED                        :{BLACK}Prenamjeni brod za prijevoz označene vrste tereta
-STR_983F_SELECT_CARGO_TYPE_TO_CARRY                             :{GOLD}Odabri vrstu tereta za prijevoz:
-STR_9840_NEW_CAPACITY_COST_OF_REFIT                             :{BLACK}Nova zapremnina: {GOLD}{CARGO}{}{BLACK}Cijena prenamjene: {GOLD}{CURRENCY}
-STR_9841_CAN_T_REFIT_SHIP                                       :{WHITE}Ne mogu prenamijeniti brod...
-STR_9842_REFITTABLE                                             :(prenamjenjiv)
-SERVICE_AT_SHIP_DEPOT                                           :Servis u brodskom spremištu grada {TOWN}
-
-##id 0xA000
-STR_A000_AIRPORTS                                               :{WHITE}Zračne luke
-STR_A001_CAN_T_BUILD_AIRPORT_HERE                               :{WHITE}Ne možeš graditi zračnu luku ovdje...
-STR_A002_AIRCRAFT_HANGAR                                        :{WHITE}{STATION} Spremište zrakoplova
-STR_A003_NEW_AIRCRAFT                                           :{BLACK}Novi zrakoplov
-STR_CLONE_AIRCRAFT                                              :{BLACK}Kloniraj zrakoplov
-STR_CLONE_AIRCRAFT_INFO                                         :{BLACK}Ovo će izgraditi kopiju zrakoplova. Control-klik će dijeliti naredbe
-STR_A005_NEW_AIRCRAFT                                           :{WHITE}Novi zrakoplov
-STR_A006_BUILD_AIRCRAFT                                         :{BLACK}Izgradi zrakoplov
-STR_A008_CAN_T_BUILD_AIRCRAFT                                   :{WHITE}Ne mogu izgraditi zrakoplov...
-STR_A009_AIRCRAFT                                               :{WHITE}{COMPANY} - {COMMA} zrakoplov
-STR_A00A                                                        :{WHITE}{VEHICLE}
-STR_A00B_ORDERS                                                 :{WHITE}{VEHICLE} (Naredbe)
-STR_A00C_DETAILS                                                :{WHITE}{VEHICLE} (Detalji)
-STR_A00D_AGE_RUNNING_COST_YR                                    :{BLACK}Starost: {LTBLUE}{STRING}{BLACK}   Troškovi uporabe {LTBLUE}{CURRENCY}/god
-STR_A00E_MAX_SPEED                                              :{BLACK}Maks brzina: {LTBLUE}{VELOCITY}
-STR_A00F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Zarada ove godine: {LTBLUE}{CURRENCY}  (prošle godine: {CURRENCY})
-STR_A010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Pouzdanost: {LTBLUE}{COMMA}%  {BLACK}Kvarova od poslijednjeg servisa: {LTBLUE}{COMMA}
-STR_A011_BUILT_VALUE                                            :{LTBLUE}{STRING}{BLACK}   Izgrađen: {LTBLUE}{NUM}{BLACK} Vrijednost: {LTBLUE}{CURRENCY}
-STR_A012_CAN_T_SEND_AIRCRAFT_TO                                 :{WHITE}Ne mogu poslati zrakoplov u hangar
-STR_A014_AIRCRAFT_IS_WAITING_IN                                 :{WHITE}Zrakoplov {COMMA} čeka u hangaru
-STR_A015_AIRCRAFT_IN_THE_WAY                                    :{WHITE}Smeta zrakoplov
-STR_A016_CAN_T_STOP_START_AIRCRAFT                              :{WHITE}Ne mogu zaustaviti/pokrenuti zrakoplov...
-STR_A017_AIRCRAFT_IS_IN_FLIGHT                                  :{WHITE}Zrakoplov je u letu
-STR_A019_CAPACITY                                               :{BLACK}Nosivost: {LTBLUE}{CARGO}, {CARGO}
-STR_A01A_CAPACITY                                               :{BLACK}Nosivost: {LTBLUE}{CARGO}
-STR_A01B_AIRCRAFT_MUST_BE_STOPPED                               :{WHITE}Zrakoplov mora biti zaustavljen u hangaru
-STR_A01C_CAN_T_SELL_AIRCRAFT                                    :{WHITE}Ne možeš prodati zrakoplov...
-STR_A01E_BUILD_AIRPORT                                          :{BLACK}Izgradi zračnu luku
-STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT                             :{BLACK}Zrakoplov - klikni na zrakoplov za informacije
-STR_A022_BUILD_NEW_AIRCRAFT                                     :{BLACK}Izgradi novi zrakoplov
-STR_A023_DRAG_AIRCRAFT_TO_HERE_TO                               :{BLACK}Povuci zrakoplov ovdje kako bi ga prodao
-STR_A024_CENTER_MAIN_VIEW_ON_HANGAR                             :{BLACK}Centriraj glavni pogled na lokaciju hangara
-STR_A025_AIRCRAFT_SELECTION_LIST                                :{BLACK}Popis zrakoplova - klini na zrakoplov za informacije
-STR_A026_BUILD_THE_HIGHLIGHTED_AIRCRAFT                         :{BLACK}Izgradi označeni zrakoplov
-STR_A028_SHOW_AIRCRAFT_S_ORDERS                                 :{BLACK}Prikaži naredbe zrakoplova
-STR_A02B_SHOW_AIRCRAFT_DETAILS                                  :{BLACK}Prikaži detalje zrakoplova
-
-STR_A030_NAME_AIRCRAFT                                          :{WHITE}Imenuj zrakoplov
-STR_A031_CAN_T_NAME_AIRCRAFT                                    :{WHITE}Ne mogu imenovati zrakoplov...
-STR_A032_NAME_AIRCRAFT                                          :{BLACK}Imenuj zrakoplov
-STR_A033_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Građani slave . . .{}Prvi zrakoplov stigao je na {STATION}!
-STR_A034_PLANE_CRASH_DIE_IN_FIREBALL                            :{BLACK}{BIGFONT}Pad zrakoplova!{}{COMMA} poginulih u eksploziji na {STATION}
-STR_PLANE_CRASH_OUT_OF_FUEL                                     :{BLACK}{BIGFONT}Avionska nesreća{}Avion je ostao bez goriva, {COMMA} poginulo u nesreći
-STR_A036                                                        :{TINYFONT}{BLACK}{STATION}
-STR_A037_RENAME                                                 :{BLACK}Preimenuj
-STR_A038_RENAME_AIRCRAFT_TYPE                                   :{BLACK}Preimenuj vrstu zrakoplova
-STR_A039_RENAME_AIRCRAFT_TYPE                                   :{WHITE}Preimenuj vrstu zrakoplova
-STR_A03A_CAN_T_RENAME_AIRCRAFT_TYPE                             :{WHITE}Ne mogu preimenovati vrstu zrakoplova...
-STR_A03B_REFIT_AIRCRAFT_TO_CARRY                                :{BLACK}Prenamijeni zrakoplov da nosi drugu vrstu tereta
-STR_A03C_REFIT                                                  :{WHITE}{VEHICLE} (Prenamijeni)
-STR_A03D_REFIT_AIRCRAFT                                         :{BLACK}Prenamijeni zrakoplov
-STR_A03E_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Izaberi vrstu tereta koju će zrakoplov nositi
-STR_A03F_REFIT_AIRCRAFT_TO_CARRY                                :{BLACK}Prenamijeni zrakoplov da nosi označenu vrstu tereta
-STR_A040_SELECT_CARGO_TYPE_TO_CARRY                             :{GOLD}Označi vrstu tereta za prijenos:
-STR_A041_NEW_CAPACITY_COST_OF_REFIT                             :{BLACK}Novi kapacitet: {GOLD}{STRING}{}{BLACK}Trošak prenamijene: {GOLD}{CURRENCY}
-STR_A042_CAN_T_REFIT_AIRCRAFT                                   :{WHITE}Ne mogu prenamijeniti zrakoplov...
-SERVICE_AT_AIRPORT_HANGAR                                       :Servisiranje u hangaru {STATION}
-
-##id 0xB000
-STR_B000_ZEPPELIN_DISASTER_AT                                   :{BLACK}{BIGFONT}Cepelin je pao kod {STATION}!
-STR_B001_ROAD_VEHICLE_DESTROYED                                 :{BLACK}{BIGFONT}Cestovno vozilo uništeno u 'NLO' sudaru!
-STR_B002_OIL_REFINERY_EXPLOSION                                 :{BLACK}{BIGFONT}Eksplozija rafinerije nafte blizu {TOWN}!
-STR_B003_FACTORY_DESTROYED_IN_SUSPICIOUS                        :{BLACK}{BIGFONT}Tvornica uništena pod sumnjivim okolnostima u blizini {TOWN}!
-STR_B004_UFO_LANDS_NEAR                                         :{BLACK}{BIGFONT}'NLO' sletio blizu {TOWN}!
-STR_B006_FLOOD_VEHICLE_DESTROYED                                :{BLACK}{BIGFONT}Poplave!{}Najmanje {COMMA} nestalih, pretpostavlja se poginulih nakon značajnih poplava!
-
-STR_BRIBE_FAILED                                                :{WHITE}Tvoj pokušaj podmićivanja je
-STR_BRIBE_FAILED_2                                              :{WHITE}otkriven od strane regionalnog istražitelja
-STR_BUILD_DATE                                                  :{BLACK}Izgrađeno: {LTBLUE}{DATE_LONG}
-
-STR_PERFORMANCE_DETAIL                                          :{WHITE}Detaljna procjena rezultata
-STR_PERFORMANCE_DETAIL_KEY                                      :{BLACK}Detalji
-STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY                          :{BLACK}({CURRCOMPACT}/{CURRCOMPACT})
-STR_PERFORMANCE_DETAIL_AMOUNT_INT                               :{BLACK}({COMMA}/{COMMA})
-STR_PERFORMANCE_DETAIL_PERCENT                                  :{WHITE}{NUM}%
-SET_PERFORMANCE_DETAIL_INT                                      :{BLACK}{NUM}
-############ Those following lines need to be in this order!!
-STR_PERFORMANCE_DETAIL_VEHICLES                                 :{BLACK}Vozila:
-STR_PERFORMANCE_DETAIL_STATIONS                                 :{BLACK}Stations:
-STR_PERFORMANCE_DETAIL_MIN_PROFIT                               :{BLACK}Min. prihod:
-STR_PERFORMANCE_DETAIL_MIN_INCOME                               :{BLACK}Min. prihod:
-STR_PERFORMANCE_DETAIL_MAX_INCOME                               :{BLACK}Maks. prihod:
-STR_PERFORMANCE_DETAIL_DELIVERED                                :{BLACK}Dostavljeno:
-STR_PERFORMANCE_DETAIL_CARGO                                    :{BLACK}Cargo:
-STR_PERFORMANCE_DETAIL_MONEY                                    :{BLACK}Novac:
-STR_PERFORMANCE_DETAIL_LOAN                                     :{BLACK}Zajam:
-STR_PERFORMANCE_DETAIL_TOTAL                                    :{BLACK}Totalno:
-############ End of order list
-STR_PERFORMANCE_DETAIL_VEHICLES_TIP                             :{BLACK}Broj vozila; ovo uključuje cestovna vozila, vlakove, brodove i avione
-STR_PERFORMANCE_DETAIL_STATIONS_TIP                             :{BLACK}Broj dijelova stanice. Svaki dio stanice (npr. željeznički kolodvor, autobusna postaja, aerodrom) se računa, čak i ako su spojene kao jedna stanica
-STR_PERFORMANCE_DETAIL_MIN_PROFIT_TIP                           :{BLACK}Profit vozila sa najnižim prihodom(od svih vozila starijih od 2 godine)
-STR_PERFORMANCE_DETAIL_MIN_INCOME_TIP                           :{BLACK}Količina gotovine ostvarene u mjesecu sa najnižim profitom u zadnjih 12 četvrtina
-STR_PERFORMANCE_DETAIL_MAX_INCOME_TIP                           :{BLACK}Količina gotovine ostvarene u mjesecu za najvišim profitom u zadnjih 12 četvrtina
-STR_PERFORMANCE_DETAIL_DELIVERED_TIP                            :{BLACK}Jedinice tereta dostavljene u zadnje četiri četvrtine
-STR_PERFORMANCE_DETAIL_CARGO_TIP                                :{BLACK}Broj vrsta tereta dostavljenog u zadnjoj četvrtini
-STR_PERFORMANCE_DETAIL_MONEY_TIP                                :{BLACK}Količina novca koji ova kompanija ima u banci
-STR_PERFORMANCE_DETAIL_LOAN_TIP                                 :{BLACK}Iznos novca koji je ova kompanija pozajmila
-STR_PERFORMANCE_DETAIL_TOTAL_TIP                                :{BLACK}Totalni broj bodova od mogućih bodova
-
-STR_NEWGRF_APPLY_CHANGES                                        :{BLACK}Potvrdi promjene
-STR_NEWGRF_NO_FILES_INSTALLED                                   :{BLACK}Nema novih newgrf datoteka instaliranih! Molimo pogledajte manual za upute o tome kako instalirati novu grafiku
-STR_NEWGRF_FILENAME                                             :{BLACK}Datoteka: {SILVER}{STRING}
-STR_NEWGRF_GRF_ID                                               :{BLACK}GRF ID: {SILVER}{STRING}
-STR_NEWGRF_MD5SUM                                               :{BLACK}MD5 suma: {SILVER}{STRING}
-STR_NEWGRF_CONFIRMATION_TEXT                                    :{YELLOW}Spremate se napraviti izmjene na pokrenutoj igri; to može srušiti OpenTTD.{}Jeste li potpuno sigurni u to?
-
-STR_NEWGRF_ERROR_MSG_ERROR                                      :{RED}Greška: {SILVER}{STRING}
-STR_NEWGRF_ERROR_MSG_FATAL                                      :{RED}Kobno: {SILVER}{STRING}
-STR_NEWGRF_ERROR_VERSION_NUMBER                                 :{STRING} neće raditi sa inačicom zakrpe u OpenTTD-u.
-STR_NEWGRF_ERROR_DOS_OR_WINDOWS                                 :{STRING} je za {STRING} inačicu TTD-a.
-STR_NEWGRF_ERROR_UNSET_SWITCH                                   :{STRING} je napravljen da se koristi sa {STRING}
-STR_NEWGRF_ERROR_INVALID_PARAMETER                              :Nevažeći parametar za  {STRING}: parametar {STRING} ({NUM})
-STR_NEWGRF_ERROR_LOAD_BEFORE                                    :{STRING} se mora učitati prije {STRING}.
-STR_NEWGRF_ERROR_LOAD_AFTER                                     :{STRING} se mora učitati nakon {STRING}.
-
-STR_NEWGRF_ADD                                                  :{BLACK}Dodaj
-STR_NEWGRF_ADD_TIP                                              :{BLACK}Dodaj NewGRF datoteku u listu
-STR_NEWGRF_REMOVE                                               :{BLACK}Obriši
-STR_NEWGRF_REMOVE_TIP                                           :{BLACK}Obriši odabranu NewGRF datoteku sa liste
-STR_NEWGRF_MOVEUP                                               :{BLACK}Pomakni gore
-STR_NEWGRF_MOVEUP_TIP                                           :{BLACK}Pomakni odabranu NewGRF datoteku gore na listi
-STR_NEWGRF_MOVEDOWN                                             :{BLACK} Pomakni dolje
-STR_NEWGRF_MOVEDOWN_TIP                                         :{BLACK}Pomakni odabranu NewGRF datoteku dolje na listi
-STR_NEWGRF_FILE_TIP                                             :{BLACK}Popis instaliranih NewGRF datoteka. Kliknite na datoteku da bi promijenili njene parametre
-STR_NEWGRF_PARAMETER                                            :{BLACK}Parametri: {SILVER}{STRING}
-STR_NEWGRF_PARAMETER_QUERY                                      :{BLACK}Unesite NewGRF  parametre
-STR_NEWGRF_NO_INFO                                              :{BLACK}Nema dostupnih informacija
-
-STR_NEWGRF_ADD_CAPTION                                          :{WHITE}Dostupne NewGRF datoteke
-STR_NEWGRF_ADD_FILE                                             :{BLACK}Dodaj u selekciju
-STR_NEWGRF_ADD_FILE_TIP                                         :{BLACK}Dodaj odabrane NewGRF datoteke u svoju konfiguraciju
-STR_NEWGRF_RESCAN_FILES                                         :{BLACK}Ponovno skeniraj datoteke
-STR_NEWGRF_RESCAN_FILES_TIP                                     :{BLACK}Osvježi listu dostupnih NewGRF datoteka
-STR_NEWGRF_DUPLICATE_GRFID                                      :{WHITE}Ne mogu dodati datoteku: dupli GRF ID
-
-STR_NEWGRF_NOT_FOUND                                            :{RED}Odgovarajuća datoteka nije pronađena
-STR_NEWGRF_DISABLED                                             :{RED}Onemogućeno
-STR_NEWGRF_COMPATIBLE_LOADED                                    :{ORANGE}Odgovarajuća datoteka nije pronađena (kompatibilni GRF podignut)
-
-STR_NEWGRF_COMPATIBLE_LOAD_WARNING                              :{WHITE}Kompatibilni GRF(ovi) učitani umjesto nepronađenih datoteka
-STR_NEWGRF_DISABLED_WARNING                                     :{WHITE}Nepronađene GRF datoteke su isključene
-STR_NEWGRF_NOT_FOUND_WARNING                                    :{WHITE}Nedostaje(u) datoteka(e) GRF za učitavanje igre
-
-STR_CURRENCY_WINDOW                                             :{WHITE}Proizvoljna valuta
-STR_CURRENCY_EXCHANGE_RATE                                      :{LTBLUE}Devizni tečaj: {ORANGE}{CURRENCY} = £ {COMMA}
-STR_CURRENCY_SEPARATOR                                          :{LTBLUE}Razdjelnik:
-STR_CURRENCY_PREFIX                                             :{LTBLUE}Prefiks:
-STR_CURRENCY_SUFFIX                                             :{LTBLUE}Sufiks:
-STR_CURRENCY_SWITCH_TO_EURO                                     :{LTBLUE}Prebaci se na euro: {ORANGE}{NUM}
-STR_CURRENCY_SWITCH_TO_EURO_NEVER                               :{LTBLUE}Prebaci se na euro: {ORANGE}nikad
-STR_CURRENCY_PREVIEW                                            :{LTBLUE}Prikaz: {ORANGE}{CURRENCY}
-STR_CURRENCY_CHANGE_PARAMETER                                   :{BLACK}Promijeni parametar proizvoljne valute
-
-STR_TRAIN                                                       :{BLACK}{TRAIN}
-STR_BUS                                                         :{BLACK}{BUS}
-STR_LORRY                                                       :{BLACK}{LORRY}
-STR_PLANE                                                       :{BLACK}{PLANE}
-STR_SHIP                                                        :{BLACK}{SHIP}
-
-STR_SCHEDULED_TRAINS                                            :{WHITE}{STATION} - {COMMA} Vlak{P "" a ova}
-STR_SCHEDULED_ROAD_VEHICLES                                     :{WHITE}{STATION} - {COMMA} Cestovn{P o a ih} vozil{P o a a}
-STR_SCHEDULED_AIRCRAFT                                          :{WHITE}{STATION} - {COMMA} Zrakoplov
-STR_SCHEDULED_SHIPS                                             :{WHITE}{STATION} - {COMMA} Brod{P "" a ova}
-
-STR_SCHEDULED_TRAINS_TIP                                        :{BLACK}Prikaži sve vlakove koji imaju ovu stanicu u svom rasporedu
-STR_SCHEDULED_ROAD_VEHICLES_TIP                                 :{BLACK}Prikaži sva cestovna vozila koja imaju ovu stanicu u svom rasporedu
-STR_SCHEDULED_AIRCRAFT_TIP                                      :{BLACK}Prikaži sve zrakoplove koji imaju ovu stanicu u svom rasporedu
-STR_SCHEDULED_SHIPS_TIP                                         :{BLACK}Prikaži sve brodove koji imaju ovu stanicu u svom rasporedu
-
-STR_VEH_WITH_SHARED_ORDERS_LIST                                 :{WHITE}Djeljene naredbe za {COMMA} vozil{P o a a}
-STR_VEH_WITH_SHARED_ORDERS_LIST_TIP                             :{BLACK}Prikaži sva vozila koja dijele ovaj raspored.
-
-### depot strings
-STR_DEPOT_SELL_CONFIRMATION_TEXT                                :{YELLOW}Upravo se spremaš prodati sva vozila u spremištu. Jesi li siguran?
-
-STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP                             :{BLACK}Prodaj sve vlakove u spremištu
-STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP                           :{BLACK}Prodaj sva cestovna vozila u spremištu
-STR_DEPOT_SELL_ALL_BUTTON_SHIP_TIP                              :{BLACK}Prodaj sve brodove u spremištu
-STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TIP                          :{BLACK}Prodaj sve zrakoplove u hangaru
-
-STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TIP                          :{BLACK}Daje popis svih vlakova u trenutnom spremištu, zajedno s njihovim naredbama
-STR_DEPOT_VEHICLE_ORDER_LIST_ROADVEH_TIP                        :{BLACK}Daje popis svih cestovnih vozila u trenutnom spremištu, zajedno s njihovim naredbama
-STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TIP                           :{BLACK}Daje popis svih brodova u trenutnom spremištu, zajedno s njihovim naredbama
-STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TIP                       :{BLACK}Daje popis svih zrakoplova u trenutnom spremištu, zajedno s njihovim naredbama
-
-STR_DEPOT_AUTOREPLACE_TRAIN_TIP                                 :{BLACK}Automatski zamijeni sve vlakove u spremištu
-STR_DEPOT_AUTOREPLACE_ROADVEH_TIP                               :{BLACK}Automatski zamijeni sva cestovna vozikla u spremištu
-STR_DEPOT_AUTOREPLACE_SHIP_TIP                                  :{BLACK}Automatski zamijeni sve brodove u spremištu
-STR_DEPOT_AUTOREPLACE_AIRCRAFT_TIP                              :{BLACK}Automatski zamijeni sve zrakoplove u spremištu
-
-STR_VEHICLE_LIST_TRAIN_DEPOT                                    :{BLACK}{STRING} - {COMMA} Vlak{P "" a ova}
-STR_VEHICLE_LIST_ROADVEH_DEPOT                                  :{BLACK}{STRING} - {COMMA} Cestovn{P o a ih} vozil{P o a a}
-STR_VEHICLE_LIST_SHIP_DEPOT                                     :{BLACK}{STRING} - {COMMA} Brod{P "" a ova}
-STR_VEHICLE_LIST_AIRCRAFT_DEPOT                                 :{BLACK}{STRING} - {COMMA} Zrakoplov
-
-STR_REPLACE_VEHICLES_WHITE                                      :{WHITE}Zamijeni {STRING}
-STR_REPLACE_VEHICLES_START                                      :{BLACK}Počni zamijenjivati vozila
-STR_REPLACE_VEHICLES_STOP                                       :{BLACK}Prestani zamijenjivati vozila
-STR_NOT_REPLACING                                               :{BLACK}Ne zamijenjujem
-STR_NOT_REPLACING_VEHICLE_SELECTED                              :{BLACK}Niti jedno vozilo nije odabrano
-STR_REPLACE_HELP_LEFT_ARRAY                                     :{BLACK}Izaberi vrstu motora koju želiš zamijeniti
-STR_REPLACE_HELP_RIGHT_ARRAY                                    :{BLACK}Odaberite novi tip lokomotive koji želite koristiti umjesto lijevo odabranog tipa lokomotive
-STR_REPLACE_HELP_STOP_BUTTON                                    :{BLACK}Klikni za zaustavljanje zamjene lijevo odabranog tipa lokomotive
-STR_REPLACE_HELP_START_BUTTON                                   :{BLACK}Klikni za početak zamjene lijevo odabrane lokomotive sa desno odabranim tipom
-STR_REPLACE_HELP_RAILTYPE                                       :{BLACK}Odaberite tip tračnica za koji želite zamijeniti lokomotive
-STR_REPLACE_HELP_REPLACE_INFO_TAB                               :{BLACK}Prikazuje sa kojom se lokomotivom zamjenjuje lijevo odabrana lokomotiva, ako postoji koji
-STR_REPLACE_HELP                                                :{BLACK}Ovo dozvoljava zamjenu jednog tipa lokomotive sa drugim, kada vlakovi prvotnog tipa uđu u stovarište
-STR_REPLACE_REMOVE_WAGON                                        :{BLACK}Brisanje vagona: {ORANGE}{SKIP}{STRING}
-STR_REPLACE_REMOVE_WAGON_HELP                                   :{BLACK}Neka automatska zamijena drži dužinu vlaka istom brišući vagone(počevši od naprijed), ako bi zamijena lokomotive vlak učinila dužim.
-STR_REPLACE_ENGINE_WAGON_SELECT                                 :{BLACK}Zamjenjujem:{ORANGE}{SKIP}{SKIP}{STRING}
-STR_REPLACE_ENGINE_WAGON_SELECT_HELP                            :{BLACK}EXPERIMENTALNA FUNKCIJA {} Prebaci između prozora za izmjenu lokomotiva i vagona.{}Izmjena vagona će se izvršiti samo ako novi vagon može biti prenamijenjen za prijevoz istog tipa tereta kao i stari vagon. Ovo se provjerava za svaki vagon kada se stvarna zamjena odvija.
-
-STR_ENGINES                                                     :Lokomotive
-STR_WAGONS                                                      :Vagoni
-
-STR_MASS_STOP_DEPOT_TRAIN_TIP                                   :{BLACK}Pritisni za zaustavljanje svih vlakova u spremištu
-STR_MASS_STOP_DEPOT_ROADVEH_TIP                                 :{BLACK}Pritisni za zaustavljanje svih cestovnih vozila u spremištu
-STR_MASS_STOP_DEPOT_SHIP_TIP                                    :{BLACK}Pritisni za zaustavljanje svih brodova u spremištu
-STR_MASS_STOP_HANGAR_TIP                                        :{BLACK}Pritisni za zaustavljanje svih zrakoplova u hangaru
-
-STR_MASS_START_DEPOT_TRAIN_TIP                                  :{BLACK}Pritisni za pokretanje svih vlakova u spremištu
-STR_MASS_START_DEPOT_ROADVEH_TIP                                :{BLACK}Pritisni za pokretanje svih cestovnih vozila u spremištu
-STR_MASS_START_DEPOT_SHIP_TIP                                   :{BLACK}Pritisni za pokretanje svih brodova u spremištu
-STR_MASS_START_HANGAR_TIP                                       :{BLACK}Klikni za pokretanje svih aviona u hangaru
-
-STR_MASS_STOP_LIST_TIP                                          :{BLACK}Klikni za zaustavljanje svih vozila na listi
-STR_MASS_START_LIST_TIP                                         :{BLACK}Klikni za pokretanje svih vozila na listi
-
-STR_SHORT_DATE                                                  :{WHITE}{DATE_TINY}
-STR_SIGN_LIST_CAPTION                                           :{WHITE}Popis znakova - {COMMA} Znak{P "" a ova}
-
-
-############ Lists rail types
-
-STR_RAIL_VEHICLES                                               :Tračna Vozila
-STR_ELRAIL_VEHICLES                                             :Električna željeznička vozila
-STR_MONORAIL_VEHICLES                                           :Jednotračna vozila
-STR_MAGLEV_VEHICLES                                             :Maglev željeznička vozila
-
-############ End of list of rail types
-
-STR_TINY_BLACK                                                  :{BLACK}{TINYFONT}{COMMA}
-
-STR_PURCHASE_INFO_COST_WEIGHT                                   :{BLACK}Trošak: {GOLD}{CURRENCY}{BLACK} Težina {GOLD}{WEIGHT_S}
-STR_PURCHASE_INFO_SPEED_POWER                                   :{BLACK}Brzina: {GOLD}{VELOCITY}{BLACK} Snaga: {GOLD}{POWER}
-STR_PURCHASE_INFO_SPEED                                         :{BLACK}Brzina: {GOLD}{VELOCITY}
-STR_PURCHASE_INFO_RUNNINGCOST                                   :{BLACK}Radni trošak: {GOLD}{CURRENCY}/god
-STR_PURCHASE_INFO_CAPACITY                                      :{BLACK}Kapacitet: {GOLD}{CARGO}{STRING}
-STR_PURCHASE_INFO_DESIGNED_LIFE                                 :{BLACK}Dizajnirana: {GOLD}{NUM}{BLACK} Životni vijek: {GOLD}{COMMA} godina
-STR_PURCHASE_INFO_RELIABILITY                                   :{BLACK}Maks. pouzdanost: {GOLD}{COMMA}%
-STR_PURCHASE_INFO_COST                                          :{BLACK}Trošak: {GOLD}{CURRENCY}
-STR_PURCHASE_INFO_WEIGHT_CWEIGHT                                :{BLACK}Težina: {GOLD}{WEIGHT_S} ({WEIGHT_S})
-STR_PURCHASE_INFO_COST_SPEED                                    :{BLACK}Trošak: {GOLD}{CURRENCY}{BLACK} Brzina: {GOLD}{VELOCITY}
-STR_PURCHASE_INFO_AIRCRAFT_CAPACITY                             :{BLACK}Zapremnina: {GOLD}{COMMA} putnika, {COMMA} vreća s poštom
-STR_PURCHASE_INFO_REFITTABLE_TO                                 :{BLACK}Promjenjivo u: {GOLD}
-STR_PURCHASE_INFO_ALL_TYPES                                     :Svi tipovi tereta
-STR_PURCHASE_INFO_ALL_BUT                                       :Sve osim {GOLD}
-STR_PURCHASE_INFO_MAX_TE                                        :{BLACK} Maks. vučni napor: {GOLD}{FORCE}
-
-########### String for New Landscape Generator
-
-STR_GENERATE                                                    :{WHITE}Izradi
-STR_RANDOM                                                      :{BLACK}Nasumično
-STR_RANDOM_HELP                                                 :{BLACK}Promijeni slučajni slijed koji se koristi za kreiranje terena
-STR_WORLD_GENERATION_CAPTION                                    :{WHITE}Izrada svijeta
-STR_RANDOM_SEED                                                 :{BLACK}Nasumični slijed:
-STR_RANDOM_SEED_HELP                                            :{BLACK}Klikni za unos nasumičnog slijeda
-STR_LAND_GENERATOR                                              :{BLACK}Izrađivač zemljišta:
-STR_TREE_PLACER                                                 :{BLACK} Algoritam za drveće:
-STR_TERRAIN_TYPE                                                :{BLACK}Tip terena:
-STR_QUANTITY_OF_SEA_LAKES                                       :{BLACK}Razina mora:
-STR_SMOOTHNESS                                                  :{BLACK}Graduacija:
-STR_SNOW_LINE_HEIGHT                                            :{BLACK}Visina linije snijega
-STR_DATE                                                        :{BLACK}Datum:
-STR_NUMBER_OF_TOWNS                                             :{BLACK}Broj gradova:
-STR_NUMBER_OF_INDUSTRIES                                        :{BLACK}Broj industrija:
-STR_GENERATE_DATE                                               :{BLACK}{DATE_LONG}
-STR_SNOW_LINE_UP                                                :{BLACK}Pomakni visinu linije snijega za jedan gore
-STR_SNOW_LINE_DOWN                                              :{BLACK}Pomakni visinu linije snijega za jedan dolje
-STR_SNOW_LINE_QUERY_CAPT                                        :{WHITE}Promijeni visinu linije snijega
-STR_START_DATE_QUERY_CAPT                                       :{WHITE}Promijeni početnu godinu
-STR_SNOW_LINE_HEIGHT_NUM                                        :{NUM}
-STR_HEIGHTMAP_SIZE                                              :{BLACK}Veličina: {ORANGE}{NUM} x {NUM}
-STR_GENERATION_WORLD                                            :{WHITE}Izrada svijeta u toku...
-STR_GENERATION_ABORT                                            :{BLACK}Prekini
-STR_GENERATION_ABORT_CAPTION                                    :{WHITE}Poništi izradu svijeta
-STR_GENERATION_ABORT_MESSAGE                                    :{YELLOW}Da li zaista želiš prekinuti izradu?
-STR_PROGRESS                                                    :{WHITE}{NUM}% gotovo
-STR_GENERATION_PROGRESS                                         :{BLACK}{NUM} / {NUM}
-STR_WORLD_GENERATION                                            :{BLACK}Izrada svijeta
-STR_TREE_GENERATION                                             :{BLACK}Generiranje drveća
-STR_CLEARING_TILES                                              :{BLACK}Generiranje grubog i stjenovitog područja
-STR_SETTINGUP_GAME                                              :{BLACK}Uspostavljam igru
-STR_PREPARING_TILELOOP                                          :{BLACK}Izvršavam tile-petlju
-STR_PREPARING_GAME                                              :{BLACK}Pripremam igru
-STR_SE_FLAT_WORLD                                               :{WHITE}Ravna zemlja
-STR_SE_FLAT_WORLD_TIP                                           :{BLACK}Kreiraj ravan teren
-STR_SE_RANDOM_LAND                                              :{WHITE}Nasumični teren
-STR_SE_NEW_WORLD                                                :{BLACK}Kreiraj novi scenarij
-STR_SE_CAPTION                                                  :{WHITE}Vrsta scenarija
-STR_FLAT_WORLD_HEIGHT_DOWN                                      :{BLACK}Snizi ravnu površinu za jedan korak
-STR_FLAT_WORLD_HEIGHT_UP                                        :{BLACK}Povisi ravnu površinu za jedan korak
-STR_FLAT_WORLD_HEIGHT_QUERY_CAPT                                :{WHITE}Promijeni visinu ravne površine
-STR_FLAT_WORLD_HEIGHT                                           :{BLACK}Visina ravne površine:
-STR_FLAT_WORLD_HEIGHT_NUM                                       :{NUM}
-
-STR_SMALLMAP_CENTER                                             :{BLACK}Centriraj malu mapu na trenutni položaj
-
-########### String for new airports
-STR_SMALL_AIRPORT                                               :{BLACK}Mala
-STR_CITY_AIRPORT                                                :{BLACK}Grad
-STR_METRO_AIRPORT                                               :{BLACK}Metropolitanski airport
-STR_INTERNATIONAL_AIRPORT                                       :{BLACK}Međunarodni aerodrom
-STR_COMMUTER_AIRPORT                                            :{BLACK}Redoviti putnik
-STR_INTERCONTINENTAL_AIRPORT                                    :{BLACK}Međukontinentalni
-STR_HELIPORT                                                    :{BLACK}Heliodrom
-STR_HELIDEPOT                                                   :{BLACK}Spremište za helikoptere
-STR_HELISTATION                                                 :{BLACK}Stanica za helikoptere
-
-STR_SMALL_AIRPORTS                                              :{BLACK}Mali aerodromi
-STR_LARGE_AIRPORTS                                              :{BLACK}Veliki aerodromi
-STR_HUB_AIRPORTS                                                :{BLACK}Središnje zračne luke
-STR_HELIPORTS                                                   :{BLACK}Helicopterske zračne luke
-
-############ Tooltip measurment
-
-STR_MEASURE_LENGTH                                              :{BLACK}Dužina:{NUM}
-STR_MEASURE_AREA                                                :{BLACK}Područje:{NUM}x{NUM}
-STR_MEASURE_LENGTH_HEIGHTDIFF                                   :{BLACK}Dužina:{NUM}{}Visinska razlika:{NUM} m
-STR_MEASURE_AREA_HEIGHTDIFF                                     :{BLACK}Područje:{NUM}x{NUM}Visinska razlika:{NUM} m
-
-############ Date formatting
-STR_DATE_TINY                                                   :{STRING}-{STRING}-{NUM}
-STR_DATE_SHORT                                                  :{STRING} {NUM}
-STR_DATE_LONG                                                   :{STRING} {STRING} {NUM}
-
-########
-
-STR_FEEDER_CARGO_VALUE                                          :{BLACK}Prebaci novac: {LTBLUE}{CURRENCY}
-
-
-##### Mass Order
-
-
-
-
-
-########
--- a/src/lang/unfinished/frisian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/unfinished/frisian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -348,7 +348,7 @@
 STR_01A8_LOCAL_AUTHORITY                                        :{BLACK}Gemiente: {LTBLUE}{STRING}
 STR_01A9_NONE                                                   :Neat
 STR_01AA_NAME                                                   :{BLACK}Namme
-STR_01AB                                                        :{BLACK}{TINYFONT}{STRING}
+STR_01AB                                                        :{BLACK}{TINYFONT}{VEHICLE}
 
 ############ range for days starts
 STR_01AC_1ST                                                    :1
@@ -877,7 +877,7 @@
 
 ##id 0x2000
 STR_2000_TOWNS                                                  :{WHITE}Stêden
-STR_2002                                                        :{TINYFONT}{BLACK}{STRING}
+STR_2002                                                        :{TINYFONT}{BLACK}{SIGN}
 STR_2004_BUILDING_MUST_BE_DEMOLISHED                            :{WHITE}Gebou moat earst fuorthelle wurde
 STR_2005                                                        :{WHITE}{TOWN}
 STR_2006_POPULATION                                             :{BLACK}Ynwenners: {ORANGE}{COMMA}{BLACK}  Hûzen: {ORANGE}{COMMA}
@@ -910,7 +910,7 @@
 STR_2021_SHOW_INFORMATION_ON_LOCAL                              :{BLACK}Lit ynformaasje sjen oer de gemeente
 STR_2022_LOCAL_AUTHORITY                                        :{WHITE}{TOWN} gemeente
 STR_2023_TRANSPORT_COMPANY_RATINGS                              :{BLACK}Transportbedrieuw rang:
-STR_2024                                                        :{YELLOW}{COMPANY}{PLAYERNAME}: {ORANGE}{STRING}
+STR_2024                                                        :{YELLOW}{COMPANY}{COMPANYNUM}: {ORANGE}{STRING}
 STR_2025_SUBSIDIES                                              :{WHITE}Subsydzjes
 STR_2026_SUBSIDIES_ON_OFFER_FOR                                 :{BLACK}Subsydzjes dy't oanbean wurde:
 STR_2027_FROM_TO                                                :{ORANGE}{STRING} fan {STRING} nei {STRING}
@@ -969,7 +969,7 @@
 STR_2803_TREE_ALREADY_HERE                                      :{WHITE}...hjir stiet al in beam
 STR_2804_SITE_UNSUITABLE                                        :{WHITE}...bouplak net geskikt
 STR_2805_CAN_T_PLANT_TREE_HERE                                  :{WHITE}Kin hjir gjin beam plantsje
-STR_2806                                                        :{WHITE}{STRING}
+STR_2806                                                        :{WHITE}{SIGN}
 STR_2808_TOO_MANY_SIGNS                                         :{WHITE}...te folle buordsjes
 STR_2809_CAN_T_PLACE_SIGN_HERE                                  :{WHITE}Kin hjir gjin buordsje delsette
 STR_280A_SIGN                                                   :Buordsje
@@ -1178,13 +1178,13 @@
 
 ##id 0x7000
 STR_7000                                                        :
-STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{PLAYERNAME}
+STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{COMPANYNUM}
 STR_7002_PLAYER                                                 :(Spyler {COMMA})
 STR_7004_NEW_FACE                                               :{BLACK}Nei Gesicht
 STR_7005_COLOR_SCHEME                                           :{BLACK}Kleurenskema
 STR_7006_COLOR_SCHEME                                           :{GOLD}Kleurenskema:
 STR_7007_NEW_COLOR_SCHEME                                       :{WHITE}Nei Kleurenskema
-STR_700E_FINANCES                                               :{WHITE}{COMPANY} Finansieen {BLACK}{PLAYERNAME}
+STR_700E_FINANCES                                               :{WHITE}{COMPANY} Finansieen {BLACK}{COMPANYNUM}
 STR_700F_EXPENDITURE_INCOME                                     :{WHITE}Utjeften/Ynkomsten
 STR_7010                                                        :{WHITE}{NUM}
 STR_7011_CONSTRUCTION                                           :{GOLD}Konstruksje
@@ -1196,13 +1196,13 @@
 STR_701E                                                        :{BLACK}-{CURRENCY}
 STR_701F                                                        :{BLACK}+{CURRENCY}
 STR_7020_TOTAL                                                  :{WHITE}Totaal:
-STR_7021                                                        :{COMPANY}{PLAYERNAME}
+STR_7021                                                        :{COMPANY}{COMPANYNUM}
 STR_7022_INCOME_GRAPH                                           :{WHITE}Ynkomsten Grafyk
 STR_7024                                                        :{COMMA}
 STR_7027_LOAN                                                   :{WHITE}Liening
 STR_7028                                                        :{BLACK}{CURRENCY}
-STR_7029_BORROW                                                 :{BLACK}Lien {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
-STR_702A_REPAY                                                  :{BLACK}Betelje {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY} werom
+STR_7029_BORROW                                                 :{BLACK}Lien {SKIP}{SKIP}{CURRENCY}
+STR_702A_REPAY                                                  :{BLACK}Betelje {SKIP}{SKIP}{CURRENCY} werom
 STR_702C_CAN_T_BORROW_ANY_MORE_MONEY                            :{WHITE}Kin net mear jild liene
 STR_702E_REQUIRED                                               :{WHITE}...{CURRENCY} nedich
 STR_702F_CAN_T_REPAY_LOAN                                       :{WHITE}Kin liening net werombetelje
--- a/src/lang/unfinished/greek.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/unfinished/greek.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -494,7 +494,7 @@
 STR_01A8_LOCAL_AUTHORITY                                        :{BLACK}Τοπική αρχή: {LTBLUE}{STRING}
 STR_01A9_NONE                                                   :Κανένα
 STR_01AA_NAME                                                   :{BLACK}Όνομα
-STR_01AB                                                        :{BLACK}{TINYFONT}{STRING}
+STR_01AB                                                        :{BLACK}{TINYFONT}{VEHICLE}
 
 ############ range for days starts
 STR_01AC_1ST                                                    :1{G ος η ο}
@@ -1029,7 +1029,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Παράδοση φορτίου σε σταθμό μόνο όταν υπάρχει ζήτηση: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Επιτρέπεται να χτίζονται πολύ μακριές γέφυρες: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Επιτρέπονται οι εντολές αποστολής σε αμαξοστάσιο: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Επιτρέπεται η κατασκευή βιομηχανιών πρώτων υλών: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Επιτρέπονται πολλαπλές όμοιες βιομηχανίες ανα πόλη: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Βιομηχανίες ίδου τύπου μπορούν να χτιστούν κοντά η μία στην άλλη: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Εμφάνιση ολόκληρης ημερομηνίες στη γραμμή κατάστασης: {ORANGE}{STRING}
@@ -1353,7 +1352,7 @@
 
 ##id 0x2000
 STR_2000_TOWNS                                                  :{WHITE}Πόλεις
-STR_2002                                                        :{TINYFONT}{BLACK}{STRING}
+STR_2002                                                        :{TINYFONT}{BLACK}{SIGN}
 STR_2004_BUILDING_MUST_BE_DEMOLISHED                            :{WHITE}Το κτίριο πρέπει πρώτα να κατεδαφιστεί
 STR_2005                                                        :{WHITE}{TOWN}
 STR_2006_POPULATION                                             :{BLACK}Πληθυσμός: {ORANGE}{COMMA}{BLACK}  Σπίτια: {ORANGE}{COMMA}
@@ -1386,7 +1385,7 @@
 STR_2021_SHOW_INFORMATION_ON_LOCAL                              :{BLACK}Εμφάνιση πληροφοριών για την τοπική αρχή
 STR_2022_LOCAL_AUTHORITY                                        :{WHITE}Τοπική αρχή της πόλης {TOWN}
 STR_2023_TRANSPORT_COMPANY_RATINGS                              :{BLACK}Ποσοστά εταιρείας μεταφορών:
-STR_2024                                                        :{YELLOW}{COMPANY}{PLAYERNAME}: {ORANGE}{STRING}
+STR_2024                                                        :{YELLOW}{COMPANY}{COMPANYNUM}: {ORANGE}{STRING}
 STR_2025_SUBSIDIES                                              :{WHITE}Χρηματοδοτήσεις
 STR_2026_SUBSIDIES_ON_OFFER_FOR                                 :{BLACK}Τρέχουσες χρηματοδοτήσεις για υπηρεσίες παίρνοντας:
 STR_2027_FROM_TO                                                :{ORANGE}{STRING} από {STRING} πρός {STRING}
@@ -1450,7 +1449,7 @@
 STR_2803_TREE_ALREADY_HERE                                      :{WHITE}...υπάρχει ήδη δέντρο εδώ
 STR_2804_SITE_UNSUITABLE                                        :{WHITE}...ακατάλληλη τοποθεσία
 STR_2805_CAN_T_PLANT_TREE_HERE                                  :{WHITE}Δεν γίνεται να φυτευθεί δέντρο εδώ...
-STR_2806                                                        :{WHITE}{STRING}
+STR_2806                                                        :{WHITE}{SIGN}
 STR_2808_TOO_MANY_SIGNS                                         :{WHITE}...πάρα πολλοί σηματοδότες
 STR_2809_CAN_T_PLACE_SIGN_HERE                                  :{WHITE}Δεν γίνεται να τοποθετηθεί σηματοδότης εδώ...
 STR_280A_SIGN                                                   :Πινακίδα
@@ -1764,7 +1763,7 @@
 
 ##id 0x7000
 STR_7000                                                        :
-STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{PLAYERNAME}
+STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{COMPANYNUM}
 STR_7002_PLAYER                                                 :(Παίκτης {COMMA})
 STR_7004_NEW_FACE                                               :{BLACK}Νέο Πρόσωπο
 STR_7005_COLOR_SCHEME                                           :{BLACK}Χρωματισμός
@@ -1776,7 +1775,7 @@
 STR_700B_PRESIDENT_S_NAME                                       :Όνομα Διευθυντή
 STR_700C_CAN_T_CHANGE_COMPANY_NAME                              :{WHITE}Αδύνατο να αλλάξει το όνομα της εταιρείας...
 STR_700D_CAN_T_CHANGE_PRESIDENT                                 :{WHITE}Αδύνατο να αλλάξει το όνομα του διευθυντή...
-STR_700E_FINANCES                                               :{WHITE}{COMPANY} Οικονομικά {BLACK}{PLAYERNAME}
+STR_700E_FINANCES                                               :{WHITE}{COMPANY} Οικονομικά {BLACK}{COMPANYNUM}
 STR_700F_EXPENDITURE_INCOME                                     :{WHITE}Έξοδα/Έσοδα
 STR_7010                                                        :{WHITE}{NUM}
 STR_7011_CONSTRUCTION                                           :{GOLD}Κατασκευή
@@ -1795,15 +1794,15 @@
 STR_701E                                                        :{BLACK}-{CURRENCY}
 STR_701F                                                        :{BLACK}+{CURRENCY}
 STR_7020_TOTAL                                                  :{WHITE}Σύνολο:
-STR_7021                                                        :{COMPANY}{PLAYERNAME}
+STR_7021                                                        :{COMPANY}{COMPANYNUM}
 STR_7022_INCOME_GRAPH                                           :{WHITE}Γράφημα Εισοδήματος
 STR_7024                                                        :{COMMA}
 STR_7025_OPERATING_PROFIT_GRAPH                                 :{WHITE}Γράφημα Ενεργών Εσόδων
 STR_7026_BANK_BALANCE                                           :{WHITE}Ισολογισμός Τραπέζης
 STR_7027_LOAN                                                   :{WHITE}Δάνειο
 STR_7028                                                        :{BLACK}{CURRENCY}
-STR_7029_BORROW                                                 :{BLACK}Δανεισμός {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
-STR_702A_REPAY                                                  :{BLACK}Πληρωμή {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
+STR_7029_BORROW                                                 :{BLACK}Δανεισμός {SKIP}{SKIP}{CURRENCY}
+STR_702A_REPAY                                                  :{BLACK}Πληρωμή {SKIP}{SKIP}{CURRENCY}
 STR_702B_MAXIMUM_PERMITTED_LOAN                                 :{WHITE}...το μέγιστο επιτρεπόμενο δάνειο είναι {CURRENCY}
 STR_702C_CAN_T_BORROW_ANY_MORE_MONEY                            :{WHITE}Αδύνατος ο δανεισμός περισσοτέρων χρημάτων...
 STR_702D_LOAN_ALREADY_REPAYED                                   :{WHITE}...δεν υπάρχει δάνειο προς αποπληρωμή
@@ -1837,8 +1836,8 @@
 STR_7051_COMPANY_PERFORMANCE_RATINGS                            :{WHITE}Ποσοστά απόδοσης εταιρείας (μέγιστη τιμή=1000)
 STR_7052_COMPANY_VALUES                                         :{WHITE}Αξία εταιρείας
 STR_7053_COMPANY_LEAGUE_TABLE                                   :{WHITE}Πίνακας Πρωταθλήματος Εταιρειών
-STR_7054                                                        :{WHITE}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{PLAYERNAME} '{STRING}'
-STR_7055                                                        :{YELLOW}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{PLAYERNAME}  '{STRING}'
+STR_7054                                                        :{WHITE}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{COMPANYNUM} '{STRING}'
+STR_7055                                                        :{YELLOW}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{COMPANYNUM}  '{STRING}'
 STR_7056_TRANSPORT_COMPANY_IN_TROUBLE                           :{BLACK}{BIGFONT}Εταιρεία μεταφορών σε μπελάδες!
 STR_7057_WILL_BE_SOLD_OFF_OR_DECLARED                           :{BLACK}{BIGFONT}Η εταιρεία {COMPANY} θα πωληθεί ή θα κυρήξει πτώχευση αν δεν αυξηθεί η απόδοσή της!
 STR_7058_PRESIDENT                                              :{BLACK}{PLAYERNAME}{}(Διευθυντής)
--- a/src/lang/unfinished/latvian.txt	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/lang/unfinished/latvian.txt	Sat Jul 07 09:20:52 2007 +0000
@@ -426,7 +426,7 @@
 STR_01A8_LOCAL_AUTHORITY                                        :{BLACK}Viete'ja's varas iesta'des: {LTBLUE}{STRING}
 STR_01A9_NONE                                                   :Neviens/neviena
 STR_01AA_NAME                                                   :{BLACK}Va'rds
-STR_01AB                                                        :{BLACK}{TINYFONT}{STRING}
+STR_01AB                                                        :{BLACK}{TINYFONT}{VEHICLE}
 
 ############ range for days starts
 STR_01AC_1ST                                                    :Pirmais
@@ -946,7 +946,6 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Transporte't kravu uz staciju tikai tad ja ir pieprasijums: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Atl'aut l'oti garu tiltu cels'anu: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Atl'aut "iet uz depo" komandu: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Atl'aut materea'lu raz'os'anas industrijas: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Atl'aut vaira'kas li'dzi'gas industrijas vienai pilse'tai: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Viena veida industrijas var tikt celtas tuvu viena no otras: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Vienme'r ra'di't garu datumu statusa josla': {ORANGE}{STRING}
@@ -1111,7 +1110,7 @@
 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_2002                                                        :{TINYFONT}{BLACK}{SIGN}
 STR_2004_BUILDING_MUST_BE_DEMOLISHED                            :{WHITE}Vispirms ja'demole' celtne
 STR_2005                                                        :{WHITE}{TOWN}
 STR_2006_POPULATION                                             :{BLACK}Iedzi'vota'ji: {ORANGE}{COMMA}{BLACK}  Ma'jas: {ORANGE}{COMMA}
@@ -1134,7 +1133,7 @@
 STR_2017_FOUNTAIN                                               :Stru'klaka
 STR_2018_PARK                                                   :Parks
 STR_201E_STADIUM                                                :Stadions
-STR_2024                                                        :{YELLOW}{COMPANY}{PLAYERNAME}: {ORANGE}{STRING}
+STR_2024                                                        :{YELLOW}{COMPANY}{COMPANYNUM}: {ORANGE}{STRING}
 STR_2025_SUBSIDIES                                              :{WHITE}Subsidijas
 STR_202A_NONE                                                   :{ORANGE}Neviens
 STR_2036_COTTAGES                                               :Kotedži
@@ -1151,7 +1150,7 @@
 STR_STATION                                                     :{STATION}
 
 ##id 0x2800
-STR_2806                                                        :{WHITE}{STRING}
+STR_2806                                                        :{WHITE}{SIGN}
 STR_280A_SIGN                                                   :Zîme
 STR_280E_TREES                                                  :Koki
 
@@ -1234,7 +1233,7 @@
 
 ##id 0x7000
 STR_7000                                                        :
-STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{PLAYERNAME}
+STR_7001                                                        :{WHITE}{COMPANY} {BLACK}{COMPANYNUM}
 STR_7004_NEW_FACE                                               :{BLACK}Jauna Seja
 STR_7005_COLOR_SCHEME                                           :{BLACK}Krasas shçma
 STR_7006_COLOR_SCHEME                                           :{GOLD}Krasas shçma:
@@ -1243,7 +1242,7 @@
 STR_701D_OTHER                                                  :{GOLD}Citi
 STR_701E                                                        :{BLACK}-{CURRENCY}
 STR_701F                                                        :{BLACK}+{CURRENCY}
-STR_7021                                                        :{COMPANY}{PLAYERNAME}
+STR_7021                                                        :{COMPANY}{COMPANYNUM}
 STR_CURRCOMPACT                                                 :{CURRCOMPACT}
 STR_7024                                                        :{COMMA}
 STR_7027_LOAN                                                   :{WHITE}Aizdevums
@@ -1253,8 +1252,8 @@
 STR_7042_NONE                                                   :{WHITE}Neviens
 STR_7044_MALE                                                   :{BLACK}Viriešu
 STR_7045_FEMALE                                                 :{BLACK}Sieviešu
-STR_7054                                                        :{WHITE}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{PLAYERNAME} '{STRING}'
-STR_7055                                                        :{YELLOW}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{PLAYERNAME}  '{STRING}'
+STR_7054                                                        :{WHITE}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{COMPANYNUM} '{STRING}'
+STR_7055                                                        :{YELLOW}{STRING}{SETX 45}{ORANGE}{COMPANY} {BLACK}{COMPANYNUM}  '{STRING}'
 STR_705C_BANKRUPT                                               :{BLACK}{BIGFONT}Bankrots!
 STR_7065                                                        :{BLACK}{TINYFONT}{STRING}
 STR_COMPANY_PASSWORD                                            :{BLACK}Parole
--- a/src/main_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/main_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -82,9 +82,6 @@
 	_cmd_text = str;
 
 	switch (_rename_what) {
-	case 0: // Rename a s sign, if string is empty, delete sign
-		DoCommandP(0, id, 0, NULL, CMD_RENAME_SIGN | CMD_MSG(STR_280C_CAN_T_CHANGE_SIGN_NAME));
-		break;
 	case 1: // Rename a waypoint
 		if (*str == '\0') return;
 		DoCommandP(0, id, 0, NULL, CMD_RENAME_WAYPOINT | CMD_MSG(STR_CANT_CHANGE_WAYPOINT_NAME));
@@ -233,8 +230,7 @@
 		case 0: ShowSmallMap();            break;
 		case 1: ShowExtraViewPortWindow(); break;
 		case 2: ShowSignList();            break;
-		case 3: ShowTransparencyToolbar(); break;
-		case 4: ShowTownDirectory();       break;
+		case 3: ShowTownDirectory();       break;
 	}
 }
 
@@ -342,14 +338,6 @@
 }
 #endif /* ENABLE_NETWORK */
 
-void ShowRenameSignWindow(const Sign *si)
-{
-	_rename_id = si->index;
-	_rename_what = 0;
-	SetDParam(0, si->index);
-	ShowQueryString(STR_SIGN_NAME, STR_280B_EDIT_SIGN_TEXT, 30, 180, NULL, CS_ALPHANUMERAL);
-}
-
 void ShowRenameWaypointWindow(const Waypoint *wp)
 {
 	int id = wp->index;
@@ -1036,7 +1024,7 @@
 static void ToolbarScenMapTownDir(Window *w)
 {
 	/* Scenario editor button, *hack*hack* use different button to activate */
-	PopupMainToolbMenu(w, 8 | (17 << 8), STR_02DE_MAP_OF_WORLD, 5, 0);
+	PopupMainToolbMenu(w, 8 | (17 << 8), STR_02DE_MAP_OF_WORLD, 4, 0);
 }
 
 static void ToolbarScenZoomIn(Window *w)
@@ -1867,6 +1855,9 @@
 		/* disable company list drop downs, if there are no companies */
 		SetWindowWidgetsDisabledState(w, ActivePlayerCount() == 0, 7, 8, 13, 14, 15, 16, WIDGET_LIST_END);
 
+		SetWindowWidgetDisabledState(w, 19, !CanBuildVehicleInfrastructure(VEH_TRAIN));
+		SetWindowWidgetDisabledState(w, 22, !CanBuildVehicleInfrastructure(VEH_AIRCRAFT));
+
 		DrawWindowWidgets(w);
 		break;
 
@@ -1895,16 +1886,16 @@
 		case WKC_SHIFT | WKC_F4: ShowVehicleListWindow(_local_player, VEH_AIRCRAFT); break;
 		case WKC_SHIFT | WKC_F5: ToolbarZoomInClick(w); break;
 		case WKC_SHIFT | WKC_F6: ToolbarZoomOutClick(w); break;
-		case WKC_SHIFT | WKC_F7: ShowBuildRailToolbar(_last_built_railtype, -1); break;
+		case WKC_SHIFT | WKC_F7: if (CanBuildVehicleInfrastructure(VEH_TRAIN)) ShowBuildRailToolbar(_last_built_railtype, -1); break;
 		case WKC_SHIFT | WKC_F8: ShowBuildRoadToolbar(_last_built_roadtype); break;
 		case WKC_SHIFT | WKC_F9: ShowBuildDocksToolbar(); break;
-		case WKC_SHIFT | WKC_F10: ShowBuildAirToolbar(); break;
+		case WKC_SHIFT | WKC_F10: if (CanBuildVehicleInfrastructure(VEH_AIRCRAFT)) ShowBuildAirToolbar(); break;
 		case WKC_SHIFT | WKC_F11: ShowBuildTreesToolbar(); break;
 		case WKC_SHIFT | WKC_F12: ShowMusicWindow(); break;
 		case WKC_CTRL  | 'S': MenuClickSmallScreenshot(); break;
 		case WKC_CTRL  | 'G': MenuClickWorldScreenshot(); break;
 		case WKC_CTRL | WKC_ALT | 'C': if (!_networking) ShowCheatWindow(); break;
-		case 'A': ShowBuildRailToolbar(_last_built_railtype, 4); break; /* Invoke Autorail */
+		case 'A': if (CanBuildVehicleInfrastructure(VEH_TRAIN)) ShowBuildRailToolbar(_last_built_railtype, 4); break; /* Invoke Autorail */
 		case 'L': ShowTerraformToolbar(); break;
 		default: return;
 		}
--- a/src/misc/array.hpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/misc/array.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -64,10 +64,23 @@
 	/** indexed access (const) */
 	FORCEINLINE const Titem& operator [] (int idx) const
 	{
-		CSubArray& sa = m_a[idx / Tblock_size];
-		Titem& item   = sa [idx % Tblock_size];
+		const CSubArray& sa = m_a[idx / Tblock_size];
+		const Titem& item   = sa [idx % Tblock_size];
 		return item;
 	}
+
+	template <typename D> void Dump(D &dmp) const
+	{
+		dmp.WriteLine("capacity = %d", Tcapacity);
+		int num_items = Size();
+		dmp.WriteLine("num_items = %d", num_items);
+		CStrA name;
+		for (int i = 0; i < num_items; i++) {
+			const Titem& item = (*this)[i];
+			name.Format("item[%d]", i);
+			dmp.WriteStructT(name.Data(), &item);
+		}
+	}
 };
 
 #endif /* ARRAY_HPP */
--- a/src/misc/blob.hpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/misc/blob.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -15,104 +15,196 @@
 	memcpy(d, s, num_items * sizeof(Titem_));
 }
 
-
 /** Base class for simple binary blobs.
- *  Item is byte.
- *  The word 'simple' means:
- *    - no configurable allocator type (always made from heap)
- *    - no smart deallocation - deallocation must be called from the same
- *        module (DLL) where the blob was allocated
- *    - no configurable allocation policy (how big blocks should be allocated)
- *    - no extra ownership policy (i.e. 'copy on write') when blob is copied
- *    - no thread synchronization at all
- *
- *  Internal member layout:
- *  1. The only class member is pointer to the first item (see union ptr_u).
- *  2. Allocated block contains the blob header (see CHdr) followed by the raw byte data.
- *     Always, when it allocates memory the allocated size is:
- *                                                      sizeof(CHdr) + <data capacity>
- *  3. Two 'virtual' members (m_size and m_max_size) are stored in the CHdr at beginning
- *     of the alloated block.
- *  4. The pointer (in ptr_u) points behind the header (to the first data byte).
- *     When memory block is allocated, the sizeof(CHdr) it added to it.
- *  5. Benefits of this layout:
- *     - items are accessed in the simplest possible way - just dereferencing the pointer,
- *       which is good for performance (assuming that data are accessed most often).
- *     - sizeof(blob) is the same as the size of any other pointer
- *  6. Drawbacks of this layout:
- *     - the fact, that pointer to the alocated block is adjusted by sizeof(CHdr) before
- *       it is stored can lead to several confusions:
- *         - it is not common pattern so the implementation code is bit harder to read
- *         - valgrind can generate warning that allocated block is lost (not accessible)
- * */
+*  Item is byte.
+*  The word 'simple' means:
+*    - no configurable allocator type (always made from heap)
+*    - no smart deallocation - deallocation must be called from the same
+*        module (DLL) where the blob was allocated
+*    - no configurable allocation policy (how big blocks should be allocated)
+*    - no extra ownership policy (i.e. 'copy on write') when blob is copied
+*    - no thread synchronization at all
+*
+*  Internal member layout:
+*  1. The only class member is pointer to the first item (see union ptr_u).
+*  2. Allocated block contains the blob header (see CHdr) followed by the raw byte data.
+*     Always, when it allocates memory the allocated size is:
+*                                                      sizeof(CHdr) + <data capacity>
+*  3. Two 'virtual' members (m_size and m_max_size) are stored in the CHdr at beginning
+*     of the alloated block.
+*  4. The pointter (in ptr_u) pobsize_ts behind the header (to the first data byte).
+*     When memory block is allocated, the sizeof(CHdr) it added to it.
+*  5. Benefits of this layout:
+*     - items are accessed in the simplest possible way - just dereferencing the pointer,
+*       which is good for performance (assuming that data are accessed most often).
+*     - sizeof(blob) is the same as the size of any other pointer
+*  6. Drawbacks of this layout:
+*     - the fact, that pointer to the alocated block is adjusted by sizeof(CHdr) before
+*       it is stored can lead to several confusions:
+*         - it is not common pattern so the implementation code is bit harder to read
+*         - valgrind can generate warning that allocated block is lost (not accessible)
+* */
 class CBlobBaseSimple {
+public:
+	typedef ::ptrdiff_t bsize_t;
+	typedef ::byte      bitem_t;
+
 protected:
 	/** header of the allocated memory block */
 	struct CHdr {
-		int    m_size;      ///< actual blob size in bytes
-		int    m_max_size;  ///< maximum (allocated) size in bytes
+		bsize_t    m_size;      ///< actual blob size in bytes
+		bsize_t    m_max_size;  ///< maximum (allocated) size in bytes
 	};
 
 	/** type used as class member */
 	union {
-		int8   *m_pData;    ///< pointer to the first byte of data
-		CHdr   *m_pHdr_1;   ///< pointer just after the CHdr holding m_size and m_max_size
+		bitem_t    *m_pData;    ///< ptr to the first byte of data
+		wchar_t    *m_pwData;   ///< ptr to the first byte of data
+		CHdr       *m_pHdr_1;   ///< ptr just after the CHdr holding m_size and m_max_size
 	} ptr_u;
 
 public:
-	static const int Ttail_reserve = 4; ///< four extra bytes will be always allocated and zeroed at the end
+	static const bsize_t Ttail_reserve = 4; ///< four extra bytes will be always allocated and zeroed at the end
 
 	/** default constructor - initializes empty blob */
 	FORCEINLINE CBlobBaseSimple() { InitEmpty(); }
+	/** constructor - create blob with data */
+	FORCEINLINE CBlobBaseSimple(const bitem_t *p, bsize_t num_bytes)
+	{
+		InitEmpty();
+		AppendRaw(p, num_bytes);
+	}
+
 	/** copy constructor */
 	FORCEINLINE CBlobBaseSimple(const CBlobBaseSimple& src)
 	{
 		InitEmpty();
 		AppendRaw(src);
 	}
+
+	/** move constructor - take ownership of blob data */
+	FORCEINLINE CBlobBaseSimple(CHdr * const & pHdr_1)
+	{
+		assert(pHdr_1 != NULL);
+		ptr_u.m_pHdr_1 = pHdr_1;
+		*(CHdr**)&pHdr_1 = NULL;
+	}
+
 	/** destructor */
-	FORCEINLINE ~CBlobBaseSimple() { Free(); }
+	FORCEINLINE ~CBlobBaseSimple()
+	{
+		Free();
+	}
+
 protected:
 	/** initialize the empty blob by setting the ptr_u.m_pHdr_1 pointer to the static CHdr with
-	 *  both m_size and m_max_size containing zero */
-	FORCEINLINE void InitEmpty() { static CHdr hdrEmpty[] = {{0, 0}, {0, 0}}; ptr_u.m_pHdr_1 = &hdrEmpty[1]; }
+	*  both m_size and m_max_size containing zero */
+	FORCEINLINE void InitEmpty()
+	{
+		static CHdr hdrEmpty[] = {{0, 0}, {0, 0}};
+		ptr_u.m_pHdr_1 = &hdrEmpty[1];
+	}
+
 	/** initialize blob by attaching it to the given header followed by data */
-	FORCEINLINE void Init(CHdr* hdr) { ptr_u.m_pHdr_1 = &hdr[1]; }
+	FORCEINLINE void Init(CHdr* hdr)
+	{
+		ptr_u.m_pHdr_1 = &hdr[1];
+	}
+
 	/** blob header accessor - use it rather than using the pointer arithmetics directly - non-const version */
-	FORCEINLINE CHdr& Hdr() { return ptr_u.m_pHdr_1[-1]; }
+	FORCEINLINE CHdr& Hdr()
+	{
+		return ptr_u.m_pHdr_1[-1];
+	}
+
 	/** blob header accessor - use it rather than using the pointer arithmetics directly - const version */
-	FORCEINLINE const CHdr& Hdr() const { return ptr_u.m_pHdr_1[-1]; }
+	FORCEINLINE const CHdr& Hdr() const
+	{
+		return ptr_u.m_pHdr_1[-1];
+	}
+
 	/** return reference to the actual blob size - used when the size needs to be modified */
-	FORCEINLINE int& RawSizeRef() { return Hdr().m_size; };
+	FORCEINLINE bsize_t& RawSizeRef()
+	{
+		return Hdr().m_size;
+	};
 
 public:
 	/** return true if blob doesn't contain valid data */
-	FORCEINLINE bool IsEmpty() const { return RawSize() == 0; }
+	FORCEINLINE bool IsEmpty() const
+	{
+		return RawSize() == 0;
+	}
+
 	/** return the number of valid data bytes in the blob */
-	FORCEINLINE int RawSize() const { return Hdr().m_size; };
+	FORCEINLINE bsize_t RawSize() const
+	{
+		return Hdr().m_size;
+	};
+
 	/** return the current blob capacity in bytes */
-	FORCEINLINE int MaxRawSize() const { return Hdr().m_max_size; };
+	FORCEINLINE bsize_t MaxRawSize() const
+	{
+		return Hdr().m_max_size;
+	};
+
 	/** return pointer to the first byte of data - non-const version */
-	FORCEINLINE int8* RawData() { return ptr_u.m_pData; }
+	FORCEINLINE bitem_t* RawData()
+	{
+		return ptr_u.m_pData;
+	}
+
 	/** return pointer to the first byte of data - const version */
-	FORCEINLINE const int8* RawData() const { return ptr_u.m_pData; }
-#if 0 // reenable when needed
+	FORCEINLINE const bitem_t* RawData() const
+	{
+		return ptr_u.m_pData;
+	}
+
 	/** return the 32 bit CRC of valid data in the blob */
-	FORCEINLINE uint32 Crc32() const {return CCrc32::Calc(RawData(), RawSize());}
-#endif //0
+	//FORCEINLINE bsize_t Crc32() const
+	//{
+	//	return CCrc32::Calc(RawData(), RawSize());
+	//}
+
 	/** invalidate blob's data - doesn't free buffer */
-	FORCEINLINE void Clear() { RawSizeRef() = 0; }
+	FORCEINLINE void Clear()
+	{
+		RawSizeRef() = 0;
+	}
+
 	/** free the blob's memory */
-	FORCEINLINE void Free() { if (MaxRawSize() > 0) {RawFree(&Hdr()); InitEmpty();} }
+	FORCEINLINE void Free()
+	{
+		if (MaxRawSize() > 0) {
+			RawFree(&Hdr());
+			InitEmpty();
+		}
+	}
+
 	/** copy data from another blob - replaces any existing blob's data */
-	FORCEINLINE void CopyFrom(const CBlobBaseSimple& src) { Clear(); AppendRaw(src); }
+	FORCEINLINE void CopyFrom(const CBlobBaseSimple& src)
+	{
+		Clear();
+		AppendRaw(src);
+	}
+
 	/** overtake ownership of data buffer from the source blob - source blob will become empty */
-	FORCEINLINE void MoveFrom(CBlobBaseSimple& src) { Free(); ptr_u.m_pData = src.ptr_u.m_pData; src.InitEmpty(); }
+	FORCEINLINE void MoveFrom(CBlobBaseSimple& src)
+	{
+		Free();
+		ptr_u.m_pData = src.ptr_u.m_pData;
+		src.InitEmpty();
+	}
+
 	/** swap buffers (with data) between two blobs (this and source blob) */
-	FORCEINLINE void Swap(CBlobBaseSimple& src) { int8 *tmp = ptr_u.m_pData; ptr_u.m_pData = src.ptr_u.m_pData; src.ptr_u.m_pData = tmp; }
+	FORCEINLINE void Swap(CBlobBaseSimple& src)
+	{
+		bitem_t *tmp = ptr_u.m_pData; ptr_u.m_pData = src.ptr_u.m_pData;
+		src.ptr_u.m_pData = tmp;
+	}
 
 	/** append new bytes at the end of existing data bytes - reallocates if necessary */
-	FORCEINLINE void AppendRaw(int8 *p, int num_bytes)
+	FORCEINLINE void AppendRaw(const void *p, bsize_t num_bytes)
 	{
 		assert(p != NULL);
 		if (num_bytes > 0) {
@@ -130,27 +222,26 @@
 	}
 
 	/** Reallocate if there is no free space for num_bytes bytes.
-	 *  @return pointer to the new data to be added */
-	FORCEINLINE int8* MakeRawFreeSpace(int num_bytes)
+	*  @return pointer to the new data to be added */
+	FORCEINLINE bitem_t* MakeRawFreeSpace(bsize_t num_bytes)
 	{
 		assert(num_bytes >= 0);
-		int new_size = RawSize() + num_bytes;
+		bsize_t new_size = RawSize() + num_bytes;
 		if (new_size > MaxRawSize()) SmartAlloc(new_size);
-		FixTail();
 		return ptr_u.m_pData + RawSize();
 	}
 
 	/** Increase RawSize() by num_bytes.
-	 *  @return pointer to the new data added */
-	FORCEINLINE int8* GrowRawSize(int num_bytes)
+	*  @return pointer to the new data added */
+	FORCEINLINE bitem_t* GrowRawSize(bsize_t num_bytes)
 	{
-		int8* pNewData = MakeRawFreeSpace(num_bytes);
+		bitem_t* pNewData = MakeRawFreeSpace(num_bytes);
 		RawSizeRef() += num_bytes;
 		return pNewData;
 	}
 
 	/** Decrease RawSize() by num_bytes. */
-	FORCEINLINE void ReduceRawSize(int num_bytes)
+	FORCEINLINE void ReduceRawSize(bsize_t num_bytes)
 	{
 		if (MaxRawSize() > 0 && num_bytes > 0) {
 			assert(num_bytes <= RawSize());
@@ -158,15 +249,16 @@
 			else RawSizeRef() = 0;
 		}
 	}
+
 	/** reallocate blob data if needed */
-	void SmartAlloc(int new_size)
+	void SmartAlloc(bsize_t new_size)
 	{
-		int old_max_size = MaxRawSize();
+		bsize_t old_max_size = MaxRawSize();
 		if (old_max_size >= new_size) return;
 		// calculate minimum block size we need to allocate
-		int min_alloc_size = sizeof(CHdr) + new_size + Ttail_reserve;
+		bsize_t min_alloc_size = sizeof(CHdr) + new_size + Ttail_reserve;
 		// ask allocation policy for some reasonable block size
-		int alloc_size = AllocPolicy(min_alloc_size);
+		bsize_t alloc_size = AllocPolicy(min_alloc_size);
 		// allocate new block
 		CHdr* pNewHdr = RawAlloc(alloc_size);
 		// setup header
@@ -181,8 +273,9 @@
 		if (old_max_size > 0)
 			RawFree(pOldHdr);
 	}
+
 	/** simple allocation policy - can be optimized later */
-	FORCEINLINE static int AllocPolicy(int min_alloc)
+	FORCEINLINE static bsize_t AllocPolicy(bsize_t min_alloc)
 	{
 		if (min_alloc < (1 << 9)) {
 			if (min_alloc < (1 << 5)) return (1 << 5);
@@ -201,58 +294,133 @@
 	}
 
 	/** all allocation should happen here */
-	static FORCEINLINE CHdr* RawAlloc(int num_bytes) { return (CHdr*)malloc(num_bytes); }
+	static FORCEINLINE CHdr* RawAlloc(bsize_t num_bytes)
+	{
+		return (CHdr*)malloc(num_bytes);
+	}
+
 	/** all deallocations should happen here */
-	static FORCEINLINE void RawFree(CHdr* p) { free(p); }
+	static FORCEINLINE void RawFree(CHdr* p)
+	{
+		free(p);
+	}
 	/** fixing the four bytes at the end of blob data - useful when blob is used to hold string */
-	FORCEINLINE void FixTail()
+	FORCEINLINE void FixTail() const
 	{
 		if (MaxRawSize() > 0) {
-			int8 *p = &ptr_u.m_pData[RawSize()];
-			for (int i = 0; i < Ttail_reserve; i++) p[i] = 0;
+			bitem_t *p = &ptr_u.m_pData[RawSize()];
+			for (bsize_t i = 0; i < Ttail_reserve; i++) {
+				p[i] = 0;
+			}
 		}
 	}
 };
 
 /** Blob - simple dynamic Titem_ array. Titem_ (template argument) is a placeholder for any type.
- *  Titem_ can be any integral type, pointer, or structure. Using Blob instead of just plain C array
- *  simplifies the resource management in several ways:
- *  1. When adding new item(s) it automatically grows capacity if needed.
- *  2. When variable of type Blob comes out of scope it automatically frees the data buffer.
- *  3. Takes care about the actual data size (number of used items).
- *  4. Dynamically constructs only used items (as opposite of static array which constructs all items) */
+*  Titem_ can be any integral type, pointer, or structure. Using Blob instead of just plain C array
+*  simplifies the resource management in several ways:
+*  1. When adding new item(s) it automatically grows capacity if needed.
+*  2. When variable of type Blob comes out of scope it automatically frees the data buffer.
+*  3. Takes care about the actual data size (number of used items).
+*  4. Dynamically constructs only used items (as opposite of static array which constructs all items) */
 template <class Titem_, class Tbase_ = CBlobBaseSimple>
-class CBlobT : public CBlobBaseSimple {
+class CBlobT : public Tbase_ {
 	// make template arguments public:
 public:
 	typedef Titem_ Titem;
 	typedef Tbase_ Tbase;
+	typedef typename Tbase::bsize_t bsize_t;
 
-	static const int Titem_size = sizeof(Titem);
+	static const bsize_t Titem_size = sizeof(Titem);
+
+	struct OnTransfer {
+		typename Tbase_::CHdr *m_pHdr_1;
+		OnTransfer(const OnTransfer& src) : m_pHdr_1(src.m_pHdr_1) {assert(src.m_pHdr_1 != NULL); *(typename Tbase_::CHdr**)&src.m_pHdr_1 = NULL;}
+		OnTransfer(CBlobT& src) : m_pHdr_1(src.ptr_u.m_pHdr_1) {src.InitEmpty();}
+		~OnTransfer() {assert(m_pHdr_1 == NULL);}
+	};
 
 	/** Default constructor - makes new Blob ready to accept any data */
-	FORCEINLINE CBlobT() : Tbase() {}
+	FORCEINLINE CBlobT()
+		: Tbase()
+	{}
+
+	/** Constructor - makes new Blob with data */
+	FORCEINLINE CBlobT(const Titem_ *p, bsize_t num_items)
+		: Tbase((typename Tbase_::bitem_t*)p, num_items * Titem_size)
+	{}
+
 	/** Copy constructor - make new blob to become copy of the original (source) blob */
-	FORCEINLINE CBlobT(const Tbase& src) : Tbase(src) {assert((RawSize() % Titem_size) == 0);}
+	FORCEINLINE CBlobT(const Tbase& src)
+		: Tbase(src)
+	{
+		assert((Tbase::RawSize() % Titem_size) == 0);
+	}
+
+	/** Take ownership constructor */
+	FORCEINLINE CBlobT(const OnTransfer& ot)
+		: Tbase(ot.m_pHdr_1)
+	{}
+
 	/** Destructor - ensures that allocated memory (if any) is freed */
-	FORCEINLINE ~CBlobT() { Free(); }
+	FORCEINLINE ~CBlobT()
+	{
+		Free();
+	}
+
 	/** Check the validity of item index (only in debug mode) */
-	FORCEINLINE void CheckIdx(int idx) { assert(idx >= 0); assert(idx < Size()); }
+	FORCEINLINE void CheckIdx(bsize_t idx)
+	{
+		assert(idx >= 0); assert(idx < Size());
+	}
+
 	/** Return pointer to the first data item - non-const version */
-	FORCEINLINE Titem* Data() { return (Titem*)RawData(); }
+	FORCEINLINE Titem* Data()
+	{
+		return (Titem*)Tbase::RawData();
+	}
+
 	/** Return pointer to the first data item - const version */
-	FORCEINLINE const Titem* Data() const { return (const Titem*)RawData(); }
+	FORCEINLINE const Titem* Data() const
+	{
+		return (const Titem*)Tbase::RawData();
+	}
+
 	/** Return pointer to the idx-th data item - non-const version */
-	FORCEINLINE Titem* Data(int idx) { CheckIdx(idx); return (Data() + idx); }
+	FORCEINLINE Titem* Data(bsize_t idx)
+	{
+		CheckIdx(idx);
+		return (Data() + idx);
+	}
+
 	/** Return pointer to the idx-th data item - const version */
-	FORCEINLINE const Titem* Data(int idx) const { CheckIdx(idx); return (Data() + idx); }
+	FORCEINLINE const Titem* Data(bsize_t idx) const
+	{
+		CheckIdx(idx); return (Data() + idx);
+	}
+
 	/** Return number of items in the Blob */
-	FORCEINLINE int Size() const { return (RawSize() / Titem_size); }
+	FORCEINLINE bsize_t Size() const
+	{
+		return (Tbase::RawSize() / Titem_size);
+	}
+
+	/** Return total number of items that can fit in the Blob without buffer reallocation */
+	FORCEINLINE bsize_t MaxSize() const
+	{
+		return (Tbase::MaxRawSize() / Titem_size);
+	}
+	/** Return number of additional items that can fit in the Blob without buffer reallocation */
+	FORCEINLINE bsize_t GetReserve() const
+	{
+		return ((Tbase::MaxRawSize() - Tbase::RawSize()) / Titem_size);
+	}
+
 	/** Free the memory occupied by Blob destroying all items */
 	FORCEINLINE void Free()
 	{
-		assert((RawSize() % Titem_size) == 0);
-		int old_size = Size();
+		assert((Tbase::RawSize() % Titem_size) == 0);
+		bsize_t old_size = Size();
 		if (old_size > 0) {
 			// destroy removed items;
 			Titem* pI_last_to_destroy = Data(0);
@@ -260,27 +428,34 @@
 		}
 		Tbase::Free();
 	}
+
 	/** Grow number of data items in Blob by given number - doesn't construct items */
-	FORCEINLINE Titem* GrowSizeNC(int num_items) { return (Titem*)GrowRawSize(num_items * Titem_size); }
+	FORCEINLINE Titem* GrowSizeNC(bsize_t num_items)
+	{
+		return (Titem*)Tbase::GrowRawSize(num_items * Titem_size);
+	}
+
 	/** Grow number of data items in Blob by given number - constructs new items (using Titem_'s default constructor) */
-	FORCEINLINE Titem* GrowSizeC(int num_items)
+	FORCEINLINE Titem* GrowSizeC(bsize_t num_items)
 	{
 		Titem* pI = GrowSizeNC(num_items);
-		for (int i = num_items; i > 0; i--, pI++) new (pI) Titem();
+		for (bsize_t i = num_items; i > 0; i--, pI++) new (pI) Titem();
 	}
+
 	/** Destroy given number of items and reduce the Blob's data size */
-	FORCEINLINE void ReduceSize(int num_items)
+	FORCEINLINE void ReduceSize(bsize_t num_items)
 	{
-		assert((RawSize() % Titem_size) == 0);
-		int old_size = Size();
+		assert((Tbase::RawSize() % Titem_size) == 0);
+		bsize_t old_size = Size();
 		assert(num_items <= old_size);
-		int new_size = (num_items <= old_size) ? (old_size - num_items) : 0;
+		bsize_t new_size = (num_items <= old_size) ? (old_size - num_items) : 0;
 		// destroy removed items;
 		Titem* pI_last_to_destroy = Data(new_size);
 		for (Titem* pI = Data(old_size - 1); pI >= pI_last_to_destroy; pI--) pI->~Titem();
 		// remove them
-		ReduceRawSize(num_items * Titem_size);
+		Tbase::ReduceRawSize(num_items * Titem_size);
 	}
+
 	/** Append one data item at the end (calls Titem_'s default constructor) */
 	FORCEINLINE Titem* AppendNew()
 	{
@@ -288,6 +463,7 @@
 		Titem* pNewItem = new (&dst) Titem(); // construct the new item by calling in-place new operator
 		return pNewItem;
 	}
+
 	/** Append the copy of given item at the end of Blob (using copy constructor) */
 	FORCEINLINE Titem* Append(const Titem& src)
 	{
@@ -295,8 +471,9 @@
 		Titem* pNewItem = new (&dst) Titem(src); // construct the new item by calling in-place new operator with copy ctor()
 		return pNewItem;
 	}
+
 	/** Add given items (ptr + number of items) at the end of blob */
-	FORCEINLINE Titem* Append(const Titem* pSrc, int num_items)
+	FORCEINLINE Titem* Append(const Titem* pSrc, bsize_t num_items)
 	{
 		Titem* pDst = GrowSizeNC(num_items);
 		Titem* pDstOrg = pDst;
@@ -304,14 +481,16 @@
 		while (pDst < pDstEnd) new (pDst++) Titem(*(pSrc++));
 		return pDstOrg;
 	}
+
 	/** Remove item with the given index by replacing it by the last item and reducing the size by one */
-	FORCEINLINE void RemoveBySwap(int idx)
+	FORCEINLINE void RemoveBySwap(bsize_t idx)
 	{
 		CheckIdx(idx);
 		// destroy removed item
 		Titem* pRemoved = Data(idx);
 		RemoveBySwap(pRemoved);
 	}
+
 	/** Remove item given by pointer replacing it by the last item and reducing the size by one */
 	FORCEINLINE void RemoveBySwap(Titem* pItem)
 	{
@@ -325,20 +504,21 @@
 		// destroy the last item
 		pLast->~Titem_();
 		// and reduce the raw blob size
-		ReduceRawSize(Titem_size);
+		Tbase::ReduceRawSize(Titem_size);
 	}
+
 	/** Ensures that given number of items can be added to the end of Blob. Returns pointer to the
-	 *  first free (unused) item */
-	FORCEINLINE Titem* MakeFreeSpace(int num_items) { return (Titem*)MakeRawFreeSpace(num_items * Titem_size); }
+	*  first free (unused) item */
+	FORCEINLINE Titem* MakeFreeSpace(bsize_t num_items)
+	{
+		return (Titem*)Tbase::MakeRawFreeSpace(num_items * Titem_size);
+	}
+
+	FORCEINLINE OnTransfer Transfer()
+	{
+		return OnTransfer(*this);
+	};
 };
 
-// simple string implementation
-struct CStrA : public CBlobT<char>
-{
-	typedef CBlobT<char> base;
-	CStrA(const char* str = NULL) {Append(str);}
-	FORCEINLINE CStrA(const CBlobBaseSimple& src) : base(src) {}
-	void Append(const char* str) {if (str != NULL && str[0] != '\0') base::Append(str, (int)strlen(str));}
-};
 
 #endif /* BLOB_HPP */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/misc/dbg_helpers.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -0,0 +1,170 @@
+/* $Id$ */
+
+/** @file dbg_helpers.cpp */
+#include "../stdafx.h"
+#include "../direction.h"
+#include "../rail.h"
+#include "../rail_map.h"
+#include "dbg_helpers.h"
+
+/** Trackdir & TrackdirBits short names. */
+static const char* trackdir_names[] = {
+	"NE", "SE", "UE", "LE", "LS", "RS", "rne", "rse",
+	"SW", "NW", "UW", "LW", "LN", "RN", "rsw", "rnw",
+};
+
+/** Return name of given Trackdir. */
+CStrA ValueStr(Trackdir td)
+{
+	CStrA out;
+	out.Format("%d (%s)", td, ItemAtT(td, trackdir_names, "UNK", INVALID_TRACKDIR, "INV"));
+	return out.Transfer();
+}
+
+/** Return composed name of given TrackdirBits. */
+CStrA ValueStr(TrackdirBits td_bits)
+{
+	CStrA out;
+	out.Format("%d (%s)", td_bits, ComposeNameT(td_bits, trackdir_names, "UNK", INVALID_TRACKDIR_BIT, "INV").Data());
+	return out.Transfer();
+}
+
+
+/** DiagDirection short names. */
+static const char* diagdir_names[] = {
+	"NE", "SE", "SW", "NW",
+};
+
+/** Return name of given DiagDirection. */
+CStrA ValueStr(DiagDirection dd)
+{
+	CStrA out;
+	out.Format("%d (%s)", dd, ItemAtT(dd, diagdir_names, "UNK", INVALID_DIAGDIR, "INV"));
+	return out.Transfer();
+}
+
+
+/** SignalType short names. */
+static const char* signal_type_names[] = {
+	"NORMAL", "ENTRY", "EXIT", "COMBO",
+};
+
+/** Return name of given SignalType. */
+CStrA ValueStr(SignalType t)
+{
+	CStrA out;
+	out.Format("%d (%s)", t, ItemAtT(t, signal_type_names, "UNK"));
+	return out.Transfer();
+}
+
+
+/** Translate TileIndex into string. */
+CStrA TileStr(TileIndex tile)
+{
+	CStrA out;
+	out.Format("0x%04X (%d, %d)", tile, TileX(tile), TileY(tile));
+	return out.Transfer();
+}
+
+/** Keep track of the last assigned type_id. Used for anti-recursion. */
+/*static*/ size_t& DumpTarget::LastTypeId()
+{
+	static size_t last_type_id = 0;
+	return last_type_id;
+}
+
+/** Return structured name of the current class/structure. */
+CStrA DumpTarget::GetCurrentStructName()
+{
+	CStrA out;
+	if (!m_cur_struct.empty()) {
+		// we are inside some named struct, return its name
+		out = m_cur_struct.top();
+	}
+	return out.Transfer();
+}
+
+/**
+ * Find the given instance in our anti-recursion repository.
+ * Return true and set name when object was found.
+ */
+bool DumpTarget::FindKnownName(size_t type_id, const void *ptr, CStrA &name)
+{
+	KNOWN_NAMES::const_iterator it = m_known_names.find(KnownStructKey(type_id, ptr));
+	if (it != m_known_names.end()) {
+		/* we have found it */
+		name = (*it).second;
+		return true;
+	}
+	return false;
+}
+
+/** Write some leading spaces into the output. */
+void DumpTarget::WriteIndent()
+{
+	int num_spaces = 2 * m_indent;
+	memset(m_out.GrowSizeNC(num_spaces), ' ', num_spaces);
+}
+
+/** Write a line with indent at the beginning and <LF> at the end. */
+void DumpTarget::WriteLine(const char *format, ...)
+{
+	WriteIndent();
+	va_list args;
+	va_start(args, format);
+	m_out.AddFormatL(format, args);
+	va_end(args);
+	m_out.AppendStr("\n");
+}
+
+/** Write 'name = value' with indent and new-line. */
+void DumpTarget::WriteValue(const char *name, const char *value_str)
+{
+	WriteIndent();
+	m_out.AddFormat("%s = %s\n", name, value_str);
+}
+
+/** Write name & TileIndex to the output. */
+void DumpTarget::WriteTile(const char *name, TileIndex tile)
+{
+	WriteIndent();
+	m_out.AddFormat("%s = %s\n", name, TileStr(tile).Data());
+}
+
+/**
+ * Open new structure (one level deeper than the current one) 'name = {<LF>'.
+ */
+void DumpTarget::BeginStruct(size_t type_id, const char *name, const void *ptr)
+{
+	/* make composite name */
+	CStrA cur_name = GetCurrentStructName().Transfer();
+	if (cur_name.Size() > 0) {
+		/* add name delimiter (we use structured names) */
+		cur_name.AppendStr(".");
+	}
+	cur_name.AppendStr(name);
+
+	/* put the name onto stack (as current struct name) */
+	m_cur_struct.push(cur_name);
+
+	/* put it also to the map of known structures */
+	m_known_names.insert(KNOWN_NAMES::value_type(KnownStructKey(type_id, ptr), cur_name));
+
+	WriteIndent();
+	m_out.AddFormat("%s = {\n", name);
+	m_indent++;
+}
+
+/**
+ * Close structure '}<LF>'.
+ */
+void DumpTarget::EndStruct()
+{
+	m_indent--;
+	WriteIndent();
+	m_out.AddFormat("}\n");
+
+	/* remove current struct name from the stack */
+	m_cur_struct.pop();
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/misc/dbg_helpers.h	Sat Jul 07 09:20:52 2007 +0000
@@ -0,0 +1,166 @@
+/* $Id$ */
+
+/** @file dbg_helpers.h */
+
+#ifndef DBG_HELPERS
+#define DBG_HELPERS
+
+#include <new>
+#include <map>
+#include <stack>
+
+#include "blob.hpp"
+#include "str.hpp"
+
+/** Helper template class that provides C array length and item type */
+template <typename T> struct ArrayT;
+
+/** Helper template class that provides C array length and item type */
+template <typename T, size_t N> struct ArrayT<T[N]> {
+	static const size_t length = N;
+	typedef T item_t;
+};
+
+
+/**
+* Helper template function that returns item of array at given index
+* or t_unk when index is out of bounds.
+*/
+template <typename E, typename T>
+inline typename ArrayT<T>::item_t ItemAtT(E idx, T &t, typename ArrayT<T>::item_t t_unk)
+{
+	if ((size_t)idx >= ArrayT<T>::length) {
+		return t_unk;
+	}
+	return t[idx];
+}
+
+/**
+* Helper template function that returns item of array at given index
+* or t_inv when index == idx_inv
+* or t_unk when index is out of bounds.
+*/
+template <typename E, typename T>
+inline typename ArrayT<T>::item_t ItemAtT(E idx, T &t, typename ArrayT<T>::item_t t_unk, E idx_inv, typename ArrayT<T>::item_t t_inv)
+{
+	if ((size_t)idx < ArrayT<T>::length) {
+		return t[idx];
+	}
+	if (idx == idx_inv) {
+		return t_inv;
+	}
+	return t_unk;
+}
+
+/**
+* Helper template function that returns compound bitfield name that is
+* concatenation of names of each set bit in the given value
+* or t_inv when index == idx_inv
+* or t_unk when index is out of bounds.
+*/
+template <typename E, typename T>
+inline CStrA ComposeNameT(E value, T &t, const char* t_unk, E val_inv, const char* name_inv)
+{
+	CStrA out;
+	if (value == val_inv) {
+		out = name_inv;
+	} else if (value == 0) {
+		out = "<none>";
+	} else {
+		for (size_t i = 0; i < ArrayT<T>::length; i++) {
+			if ((value & (1 << i)) == 0) continue;
+			out.AddFormat("%s%s", (out.Size() > 0 ? "+" : ""), t[i]);
+			value &= ~(E)(1 << i);
+		}
+		if (value != 0) out.AddFormat("%s%s", (out.Size() > 0 ? "+" : ""), t_unk);
+	}
+	return out.Transfer();
+}
+
+CStrA ValueStr(Trackdir td);
+CStrA ValueStr(TrackdirBits td_bits);
+CStrA ValueStr(DiagDirection dd);
+CStrA ValueStr(SignalType t);
+
+/** Class that represents the dump-into-string target. */
+struct DumpTarget {
+
+	/** Used as a key into map of known object instances. */
+	struct KnownStructKey {
+		size_t      m_type_id;
+		const void *m_ptr;
+
+		KnownStructKey(size_t type_id, const void *ptr)
+			: m_type_id(type_id)
+			, m_ptr(ptr)
+		{}
+
+		KnownStructKey(const KnownStructKey &src)
+		{
+			m_type_id = src.m_type_id;
+			m_ptr = src.m_ptr;
+		}
+
+		bool operator < (const KnownStructKey &other) const
+		{
+			if ((size_t)m_ptr < (size_t)other.m_ptr) return true;
+			if ((size_t)m_ptr > (size_t)other.m_ptr) return false;
+			if (m_type_id < other.m_type_id) return true;
+			return false;
+		}
+	};
+
+	typedef std::map<KnownStructKey, CStrA> KNOWN_NAMES;
+
+	CStrA              m_out;         ///< the output string
+	int                m_indent;      ///< current indent/nesting level
+	std::stack<CStrA>  m_cur_struct;  ///< here we will track the current structure name
+	KNOWN_NAMES        m_known_names; ///< map of known object instances and their structured names
+
+	DumpTarget()
+		: m_indent(0)
+	{}
+
+	static size_t& LastTypeId();
+	CStrA GetCurrentStructName();
+	bool FindKnownName(size_t type_id, const void* ptr, CStrA &name);
+
+	void WriteIndent();
+
+	void WriteLine(const char *format, ...);
+	void WriteValue(const char *name, const char *value_str);
+	void WriteTile(const char *name, TileIndex t);
+
+	/** Dump given enum value (as a number and as named value) */
+	template <typename E> void WriteEnumT(const char *name, E e)
+	{
+		WriteValue(name, ValueStr(e).Data());
+	}
+
+	void BeginStruct(size_t type_id, const char *name, const void *ptr);
+	void EndStruct();
+
+	/** Dump nested object (or only its name if this instance is already known). */
+	template <typename S> void WriteStructT(const char *name, const S *s)
+	{
+		static size_t type_id = ++LastTypeId();
+
+		if (s == NULL) {
+			/* No need to dump NULL struct. */
+			WriteLine("%s = <null>", name);
+			return;
+		}
+		CStrA known_as;
+		if (FindKnownName(type_id, s, known_as)) {
+			/* We already know this one, no need to dump it. */
+			WriteLine("%s = known_as.%s", name, known_as.Data());
+		} else {
+			/* Still unknown, dump it */
+			BeginStruct(type_id, name, s);
+			s->Dump(*this);
+			EndStruct();
+		}
+	}
+};
+
+#endif /* DBG_HELPERS */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/misc/str.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -0,0 +1,189 @@
+/* $Id$ */
+
+/** @file str.hpp */
+
+#ifndef  STR_HPP
+#define  STR_HPP
+
+#include <errno.h>
+#include <stdarg.h>
+#include "strapi.hpp"
+
+/** Blob based string. */
+template <typename Tchar, bool TcaseInsensitive>
+struct CStrT : public CBlobT<Tchar>
+{
+	typedef CBlobT<Tchar> base;                    ///< base class
+	typedef CStrApiT<Tchar, TcaseInsensitive> Api; ///< string API abstraction layer
+	typedef typename base::bsize_t bsize_t;        ///< size type inherited from blob
+	typedef typename base::OnTransfer OnTransfer;  ///< temporary 'transfer ownership' object type
+
+	/** Construction from C zero ended string. */
+	FORCEINLINE CStrT(const Tchar* str = NULL)
+	{
+		AppendStr(str);
+	}
+
+	/** Construction from C string and given number of characters. */
+	FORCEINLINE CStrT(const Tchar* str, bsize_t num_chars) : base(str, num_chars)
+	{
+		base::FixTail();
+	}
+
+	/** Construction from C string determined by 'begin' and 'end' pointers. */
+	FORCEINLINE CStrT(const Tchar* str, const Tchar* end)
+		: base(str, end - str)
+	{
+		base::FixTail();
+	}
+
+	/** Construction from blob contents. */
+	FORCEINLINE CStrT(const CBlobBaseSimple& src)
+		: base(src)
+	{
+		base::FixTail();
+	}
+
+	/** Copy constructor. */
+	FORCEINLINE CStrT(const CStrT& src)
+		: base(src)
+	{
+		base::FixTail();
+	}
+
+	/** Take over ownership constructor */
+	FORCEINLINE CStrT(const OnTransfer& ot)
+		: base(ot)
+	{
+	}
+
+	/** Grow the actual buffer and fix the trailing zero at the end. */
+	FORCEINLINE Tchar* GrowSizeNC(bsize_t count)
+	{
+		Tchar* ret = base::GrowSizeNC(count);
+		base::FixTail();
+		return ret;
+	}
+
+	/** Append zero-ended C string. */
+	FORCEINLINE void AppendStr(const Tchar* str)
+	{
+		if (str != NULL && str[0] != '\0') {
+			base::Append(str, (bsize_t)Api::StrLen(str));
+			base::FixTail();
+		}
+	}
+
+	/** Append another CStrT or blob. */
+	FORCEINLINE void Append(const CBlobBaseSimple& src)
+	{
+		if (src.RawSize() > 0) {
+			base::AppendRaw(src);
+			base::FixTail();
+		}
+	}
+
+	/** Assignment from C string. */
+	FORCEINLINE CStrT& operator = (const Tchar* src)
+	{
+		base::Clear();
+		AppendStr(src);
+		return *this;
+	}
+
+	/** Assignment from another CStrT or blob. */
+	FORCEINLINE CStrT& operator = (const CBlobBaseSimple& src)
+	{
+		base::Clear();
+		base::AppendRaw(src);
+		base::FixTail();
+		return *this;
+	}
+
+	/** Assignment from another CStrT or blob. */
+	FORCEINLINE CStrT& operator = (const CStrT& src)
+	{
+		base::Clear();
+		base::AppendRaw(src);
+		base::FixTail();
+		return *this;
+	}
+
+	/** Lower-than operator (to support stl collections) */
+	FORCEINLINE bool operator < (const CStrT &other) const
+	{
+		return (Api::StrCmp(base::Data(), other.Data()) < 0);
+	}
+
+	/** Add formated string (like vsprintf) at the end of existing contents. */
+	int AddFormatL(const Tchar *format, va_list args)
+	{
+		bsize_t addSize = Api::StrLen(format);
+		if (addSize < 16) addSize = 16;
+		addSize += addSize / 2;
+		int ret;
+		int err = 0;
+		for (;;) {
+			Tchar *buf = MakeFreeSpace(addSize);
+			ret = Api::SPrintFL(buf, base::GetReserve(), format, args);
+			if (ret >= base::GetReserve()) {
+				/* Greater return than given count means needed buffer size. */
+				addSize = ret + 1;
+				continue;
+			}
+			if (ret >= 0) {
+				/* success */
+				break;
+			}
+			err = errno;
+			if (err != ERANGE && err != ENOENT && err != 0) {
+				/* some strange failure */
+				break;
+			}
+			/* small buffer (M$ implementation) */
+			addSize *= 2;
+		}
+		if (ret > 0) {
+			GrowSizeNC(ret);
+		} else {
+			base::FixTail();
+		}
+		return ret;
+	}
+
+	/** Add formated string (like sprintf) at the end of existing contents. */
+	int AddFormat(const Tchar *format, ...)
+	{
+		va_list args;
+		va_start(args, format);
+		int ret = AddFormatL(format, args);
+		va_end(args);
+		return ret;
+	}
+
+	/** Assign formated string (like vsprintf). */
+	int FormatL(const Tchar *format, va_list args)
+	{
+		base::Free();
+		int ret = AddFormatL(format, args);
+		return ret;
+	}
+
+	/** Assign formated string (like sprintf). */
+	int Format(const Tchar *format, ...)
+	{
+		base::Free();
+		va_list args;
+		va_start(args, format);
+		int ret = AddFormatL(format, args);
+		va_end(args);
+		return ret;
+	}
+};
+
+typedef CStrT<char   , false> CStrA;   ///< Case sensitive ANSI/UTF-8 string
+typedef CStrT<char   , true > CStrCiA; ///< Case insensitive ANSI/UTF-8 string
+typedef CStrT<wchar_t, false> CStrW;   ///< Case sensitive unicode string
+typedef CStrT<wchar_t, true > CStrCiW; ///< Case insensitive unicode string
+
+#endif /* STR_HPP */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/misc/strapi.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -0,0 +1,94 @@
+/* $Id$ */
+
+/** @file strapi.hpp */
+
+#ifndef  STRAPI_HPP
+#define  STRAPI_HPP
+
+#include <string.h>
+#include <wchar.h>
+
+#if !defined(_MSC_VER)
+#define _stricmp strcmp
+#define _wcsicmp wcscmp
+#endif //!_MSC_VER
+
+/** String API mapper base - just mapping by character type, not by case sensitivity yet.
+	* Class template CStrApiBaseT declaration is general, but following inline method
+	* definitions are specialized by character type. Class is not used directly, but only
+	* as a base class for template class CStrApiT */
+template <typename Tchar>
+class CStrApiBaseT
+{
+public:
+	/** ::strlen wrapper */
+	static size_t StrLen(const Tchar *s);
+	static int SPrintFL(Tchar *buf, size_t count, const Tchar *fmt, va_list args);
+};
+
+/** ::strlen wrapper specialization for char */
+template <> /*static*/ inline size_t CStrApiBaseT<char>::StrLen(const char *s)
+{
+	return ::strlen(s);
+}
+
+/** ::strlen wrapper specialization for wchar_t */
+template <> /*static*/ inline size_t CStrApiBaseT<wchar_t>::StrLen(const wchar_t *s)
+{
+	return ::wcslen(s);
+}
+
+/** ::vsprintf wrapper specialization for char */
+template <> /*static*/ inline int CStrApiBaseT<char>::SPrintFL(char *buf, size_t count, const char *fmt, va_list args)
+{
+#if defined(_MSC_VER) && (_MSC_VER >= 1400) // VC 8.0 and above
+	return ::vsnprintf_s(buf, count, count - 1, fmt, args);
+#else // ! VC 8.0 and above
+	return ::vsnprintf(buf, count, fmt, args);
+#endif
+}
+
+/** ::vsprintf wrapper specialization for wchar_t */
+template <> /*static*/ inline int CStrApiBaseT<wchar_t>::SPrintFL(wchar_t *buf, size_t count, const wchar_t *fmt, va_list args)
+{
+#if defined(_MSC_VER) && (_MSC_VER >= 1400) // VC 8.0 and above
+	return ::_vsnwprintf_s(buf, count, count - 1, fmt, args);
+#else // ! VC 8.0 and above
+# if defined(_WIN32)
+	 return ::_vsnwprintf(buf, count, fmt, args);
+# else // !_WIN32
+	 return ::vswprintf(buf, count, fmt, args);
+# endif // !_WIN32
+#endif
+}
+
+
+
+template <typename Tchar, bool TcaseInsensitive>
+class CStrApiT : public CStrApiBaseT<Tchar>
+{
+public:
+	static int StrCmp(const Tchar *s1, const Tchar *s2);
+};
+
+template <> /*static*/ inline int CStrApiT<char, false>::StrCmp(const char *s1, const char *s2)
+{
+	return ::strcmp(s1, s2);
+}
+
+template <> /*static*/ inline int CStrApiT<char, true>::StrCmp(const char *s1, const char *s2)
+{
+	return ::_stricmp(s1, s2);
+}
+
+template <> /*static*/ inline int CStrApiT<wchar_t, false>::StrCmp(const wchar_t *s1, const wchar_t *s2)
+{
+	return ::wcscmp(s1, s2);
+}
+
+template <> /*static*/ inline int CStrApiT<wchar_t, true>::StrCmp(const wchar_t *s1, const wchar_t *s2)
+{
+	return ::_wcsicmp(s1, s2);
+}
+
+#endif /* STRAPI_HPP */
--- a/src/misc_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/misc_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -17,6 +17,7 @@
 #include "variables.h"
 #include "livery.h"
 #include "player_face.h"
+#include "strings.h"
 
 /** Change the player's face.
  * @param tile unused
@@ -204,6 +205,21 @@
 	return CommandCost();
 }
 
+static bool IsUniqueCompanyName(const char *name)
+{
+	const Player *p;
+	char buf[512];
+
+	FOR_ALL_PLAYERS(p) {
+		if (!p->is_active) continue;
+		SetDParam(0, p->index);
+		GetString(buf, STR_COMPANY_NAME, lastof(buf));
+		if (strcmp(buf, name) == 0) return false;
+	}
+
+	return true;
+}
+
 /** Change the name of the company.
  * @param tile unused
  * @param flags operation to perform
@@ -215,9 +231,11 @@
 	StringID str;
 	Player *p;
 
-	if (_cmd_text[0] == '\0') return CMD_ERROR;
+	if (StrEmpty(_cmd_text)) return CMD_ERROR;
 
-	str = AllocateNameUnique(_cmd_text, 4);
+	if (!IsUniqueCompanyName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
+
+	str = AllocateName(_cmd_text, 4);
 	if (str == 0) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
@@ -232,6 +250,21 @@
 	return CommandCost();
 }
 
+static bool IsUniquePresidentName(const char *name)
+{
+	const Player *p;
+	char buf[512];
+
+	FOR_ALL_PLAYERS(p) {
+		if (!p->is_active) continue;
+		SetDParam(0, p->index);
+		GetString(buf, STR_PLAYER_NAME, lastof(buf));
+		if (strcmp(buf, name) == 0) return false;
+	}
+
+	return true;
+}
+
 /** Change the name of the president.
  * @param tile unused
  * @param flags operation to perform
@@ -243,9 +276,11 @@
 	StringID str;
 	Player *p;
 
-	if (_cmd_text[0] == '\0') return CMD_ERROR;
+	if (StrEmpty(_cmd_text)) return CMD_ERROR;
 
-	str = AllocateNameUnique(_cmd_text, 4);
+	if (!IsUniquePresidentName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
+
+	str = AllocateName(_cmd_text, 4);
 	if (str == 0) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
--- a/src/misc_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/misc_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -4,7 +4,6 @@
 
 #include "stdafx.h"
 #include "openttd.h"
-#include "hal.h"
 #include "heightmap.h"
 #include "debug.h"
 #include "functions.h"
--- a/src/music/bemidi.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/bemidi.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -11,17 +11,19 @@
 
 static BMidiSynthFile midiSynthFile;
 
-static const char *bemidi_start(const char * const *parm)
+static FMusicDriver_BeMidi iFMusicDriver_BeMidi;
+
+const char *MusicDriver_BeMidi::Start(const char * const *parm)
 {
 	return NULL;
 }
 
-static void bemidi_stop()
+void MusicDriver_BeMidi::Stop()
 {
 	midiSynthFile.UnloadFile();
 }
 
-static void bemidi_play_song(const char *filename)
+void MusicDriver_BeMidi::PlaySong(const char *filename)
 {
 	bemidi_stop();
 	entry_ref midiRef;
@@ -30,26 +32,17 @@
 	midiSynthFile.Start();
 }
 
-static void bemidi_stop_song()
+void MusicDriver_BeMidi::StopSong()
 {
 	midiSynthFile.UnloadFile();
 }
 
-static bool bemidi_is_playing()
+bool MusicDriver_BeMidi::IsSongPlaying()
 {
 	return !midiSynthFile.IsFinished();
 }
 
-static void bemidi_set_volume(byte vol)
+void MusicDriver_BeMidi::SetVolume(byte vol)
 {
 	fprintf(stderr, "BeMidi: Set volume not implemented\n");
 }
-
-const HalMusicDriver _bemidi_music_driver = {
-	bemidi_start,
-	bemidi_stop,
-	bemidi_play_song,
-	bemidi_stop_song,
-	bemidi_is_playing,
-	bemidi_set_volume,
-};
--- a/src/music/bemidi.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/bemidi.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef MUSIC_BEMIDI_H
 #define MUSIC_BEMIDI_H
 
-#include "../hal.h"
+#include "music_driver.hpp"
 
-extern const HalMusicDriver _bemidi_music_driver;
+class MusicDriver_BeMidi: public MusicDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void PlaySong(const char *filename);
+
+	/* virtual */ void StopSong();
+
+	/* virtual */ bool IsSongPlaying();
+
+	/* virtual */ void SetVolume(byte vol);
+};
+
+class FMusicDriver_BeMidi: public MusicDriverFactory<FMusicDriver_BeMidi> {
+public:
+	/* virtual */ const char *GetName() { return "bemidi"; }
+	/* virtual */ const char *GetDescription() { return "BeOS MIDI Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new MusicDriver_BeMidi(); }
+};
 
 #endif /* MUSIC_BEMIDI_H */
--- a/src/music/dmusic.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/dmusic.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -47,7 +47,7 @@
 static ProcPtrs proc;
 
 
-static const char* DMusicMidiStart(const char* const* parm)
+const char *MusicDriver_DMusic::Start(const char * const *parm)
 {
 	if (performance != NULL) return NULL;
 
@@ -109,7 +109,7 @@
 }
 
 
-static void DMusicMidiStop()
+void MusicDriver_DMusic::Stop()
 {
 	seeking = false;
 
@@ -136,7 +136,7 @@
 }
 
 
-static void DMusicMidiPlaySong(const char* filename)
+void MusicDriver_DMusic::PlaySong(const char* filename)
 {
 	/* set up the loader object info */
 	DMUS_OBJECTDESC obj_desc;
@@ -188,7 +188,7 @@
 }
 
 
-static void DMusicMidiStopSong()
+void MusicDriver_DMusic::StopSong()
 {
 	if (FAILED(performance->Stop(segment, NULL, 0, 0))) {
 		DEBUG(driver, 0, "DirectMusic: StopSegment failed");
@@ -197,7 +197,7 @@
 }
 
 
-static bool DMusicMidiIsSongPlaying()
+bool MusicDriver_DMusic::IsSongPlaying()
 {
 	/* Not the nicest code, but there is a short delay before playing actually
 	 * starts. OpenTTD makes no provision for this. */
@@ -210,20 +210,11 @@
 }
 
 
-static void DMusicMidiSetVolume(byte vol)
+void MusicDriver_DMusic::SetVolume(byte vol)
 {
 	long db = vol * 2000 / 127 - 2000; ///< 0 - 127 -> -2000 - 0
 	performance->SetGlobalParam(GUID_PerfMasterVolume, &db, sizeof(db));
 }
 
 
-const HalMusicDriver _dmusic_midi_driver = {
-	DMusicMidiStart,
-	DMusicMidiStop,
-	DMusicMidiPlaySong,
-	DMusicMidiStopSong,
-	DMusicMidiIsSongPlaying,
-	DMusicMidiSetVolume,
-};
-
 #endif /* WIN32_ENABLE_DIRECTMUSIC_SUPPORT */
--- a/src/music/dmusic.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/dmusic.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef MUSIC_DMUSIC_H
 #define MUSIC_DMUSIC_H
 
-#include "../hal.h"
+#include "music_driver.hpp"
 
-extern const HalMusicDriver _dmusic_midi_driver;
+class MusicDriver_DMusic: public MusicDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void PlaySong(const char *filename);
+
+	/* virtual */ void StopSong();
+
+	/* virtual */ bool IsSongPlaying();
+
+	/* virtual */ void SetVolume(byte vol);
+};
+
+class FMusicDriver_DMusic: public MusicDriverFactory<FMusicDriver_DMusic> {
+public:
+	/* virtual */ const char *GetName() { return "dmusic"; }
+	/* virtual */ const char *GetDescription() { return "DirectMusic MIDI Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new MusicDriver_DMusic(); }
+};
 
 #endif /* MUSIC_DMUSIC_H */
--- a/src/music/extmidi.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/extmidi.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -16,56 +16,50 @@
 #include <sys/stat.h>
 #include <errno.h>
 
-static struct {
-	char song[MAX_PATH];
-	pid_t pid;
-} _midi;
+static FMusicDriver_ExtMidi iFMusicDriver_ExtMidi;
 
-static void DoPlay();
-static void DoStop();
-
-static const char* ExtMidiStart(const char* const * parm)
+const char* MusicDriver_ExtMidi::Start(const char* const * parm)
 {
-	_midi.song[0] = '\0';
-	_midi.pid = -1;
+	this->song[0] = '\0';
+	this->pid = -1;
 	return NULL;
 }
 
-static void ExtMidiStop()
+void MusicDriver_ExtMidi::Stop()
 {
-	_midi.song[0] = '\0';
-	DoStop();
-}
-
-static void ExtMidiPlaySong(const char* filename)
-{
-	ttd_strlcpy(_midi.song, filename, lengthof(_midi.song));
-	DoStop();
+	this->song[0] = '\0';
+	this->DoStop();
 }
 
-static void ExtMidiStopSong()
+void MusicDriver_ExtMidi::PlaySong(const char* filename)
 {
-	_midi.song[0] = '\0';
-	DoStop();
+	ttd_strlcpy(this->song, filename, lengthof(this->song));
+	this->DoStop();
 }
 
-static bool ExtMidiIsPlaying()
+void MusicDriver_ExtMidi::StopSong()
 {
-	if (_midi.pid != -1 && waitpid(_midi.pid, NULL, WNOHANG) == _midi.pid)
-		_midi.pid = -1;
-	if (_midi.pid == -1 && _midi.song[0] != '\0') DoPlay();
-	return _midi.pid != -1;
+	this->song[0] = '\0';
+	this->DoStop();
 }
 
-static void ExtMidiSetVolume(byte vol)
+bool MusicDriver_ExtMidi::IsSongPlaying()
+{
+	if (this->pid != -1 && waitpid(this->pid, NULL, WNOHANG) == this->pid)
+		this->pid = -1;
+	if (this->pid == -1 && this->song[0] != '\0') this->DoPlay();
+	return this->pid != -1;
+}
+
+void MusicDriver_ExtMidi::SetVolume(byte vol)
 {
 	DEBUG(driver, 1, "extmidi: set volume not implemented");
 }
 
-static void DoPlay()
+void MusicDriver_ExtMidi::DoPlay()
 {
-	_midi.pid = fork();
-	switch (_midi.pid) {
+	this->pid = fork();
+	switch (this->pid) {
 		case 0: {
 			int d;
 
@@ -73,9 +67,9 @@
 			d = open("/dev/null", O_RDONLY);
 			if (d != -1 && dup2(d, 1) != -1 && dup2(d, 2) != -1) {
 				#if defined(MIDI_ARG)
-					execlp(msf.extmidi, "extmidi", MIDI_ARG, _midi.song, (char*)0);
+					execlp(msf.extmidi, "extmidi", MIDI_ARG, this->song, (char*)0);
 				#else
-					execlp(msf.extmidi, "extmidi", _midi.song, (char*)0);
+					execlp(msf.extmidi, "extmidi", this->song, (char*)0);
 				#endif
 			}
 			_exit(1);
@@ -86,23 +80,14 @@
 			/* FALLTHROUGH */
 
 		default:
-			_midi.song[0] = '\0';
+			this->song[0] = '\0';
 			break;
 	}
 }
 
-static void DoStop()
+void MusicDriver_ExtMidi::DoStop()
 {
-	if (_midi.pid != -1) kill(_midi.pid, SIGTERM);
+	if (this->pid != -1) kill(this->pid, SIGTERM);
 }
 
-const HalMusicDriver _extmidi_music_driver = {
-	ExtMidiStart,
-	ExtMidiStop,
-	ExtMidiPlaySong,
-	ExtMidiStopSong,
-	ExtMidiIsPlaying,
-	ExtMidiSetVolume,
-};
-
 #endif /* __MORPHOS__ */
--- a/src/music/extmidi.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/extmidi.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,37 @@
 #ifndef MUSIC_EXTERNAL_H
 #define MUSIC_EXTERNAL_H
 
-#include "../hal.h"
+#include "music_driver.hpp"
 
-extern const HalMusicDriver _extmidi_music_driver;
+class MusicDriver_ExtMidi: public MusicDriver {
+private:
+	char song[MAX_PATH];
+	pid_t pid;
+
+	void DoPlay();
+	void DoStop();
+
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void PlaySong(const char *filename);
+
+	/* virtual */ void StopSong();
+
+	/* virtual */ bool IsSongPlaying();
+
+	/* virtual */ void SetVolume(byte vol);
+};
+
+class FMusicDriver_ExtMidi: public MusicDriverFactory<FMusicDriver_ExtMidi> {
+public:
+	/* virtual */ const char *GetName() { return "extmidi"; }
+	/* virtual */ const char *GetDescription() { return "External MIDI Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new MusicDriver_ExtMidi(); }
+};
 
 #endif /* MUSIC_EXTERNAL_H */
--- a/src/music/libtimidity.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/libtimidity.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -44,7 +44,9 @@
 }
 #endif /* PSP */
 
-static const char *LibtimidityMidiStart(const char *const *param)
+static FMusicDriver_LibTimidity iFMusicDriver_LibTimidity;
+
+const char *MusicDriver_LibTimidity::Start(const char *const *param)
 {
 	_midi.status = MIDI_STOPPED;
 
@@ -53,8 +55,7 @@
 		 *  If it was not forced via param, try to load it without a
 		 *  configuration. Who knows that works. */
 		if (param != NULL || mid_init_no_config() < 0) {
-			DEBUG(driver, 0, "error initializing timidity");
-			return NULL;
+			return "error initializing timidity";
 		}
 	}
 	DEBUG(driver, 1, "successfully initialised timidity");
@@ -77,7 +78,7 @@
 	return NULL;
 }
 
-static void LibtimidityMidiStop()
+void MusicDriver_LibTimidity::Stop()
 {
 	if (_midi.status == MIDI_PLAYING) {
 		_midi.status = MIDI_STOPPED;
@@ -86,7 +87,7 @@
 	mid_exit();
 }
 
-static void LibtimidityMidiPlaySong(const char *filename)
+void MusicDriver_LibTimidity::PlaySong(const char *filename)
 {
 	_midi.stream = mid_istream_open_file(filename);
 	if (_midi.stream == NULL) {
@@ -107,13 +108,13 @@
 	_midi.status = MIDI_PLAYING;
 }
 
-static void LibtimidityMidiStopSong()
+void MusicDriver_LibTimidity::StopSong()
 {
 	_midi.status = MIDI_STOPPED;
 	mid_song_free(_midi.song);
 }
 
-static bool LibtimidityMidiIsPlaying()
+bool MusicDriver_LibTimidity::IsSongPlaying()
 {
 	if (_midi.status == MIDI_PLAYING) {
 		_midi.song_position = mid_song_get_time(_midi.song);
@@ -126,18 +127,8 @@
 	return (_midi.status == MIDI_PLAYING);
 }
 
-static void LibtimidityMidiSetVolume(byte vol)
+void MusicDriver_LibTimidity::SetVolume(byte vol)
 {
 	if (_midi.song != NULL)
 		mid_song_set_volume(_midi.song, vol);
 }
-
-const HalMusicDriver _libtimidity_music_driver = {
-	LibtimidityMidiStart,
-	LibtimidityMidiStop,
-	LibtimidityMidiPlaySong,
-	LibtimidityMidiStopSong,
-	LibtimidityMidiIsPlaying,
-	LibtimidityMidiSetVolume,
-};
-
--- a/src/music/libtimidity.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/libtimidity.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef MUSIC_LIBTIMIDITY_H
 #define MUSIC_LIBTIMIDITY_H
 
-#include "../hal.h"
+#include "music_driver.hpp"
 
-extern const HalMusicDriver _libtimidity_music_driver;
+class MusicDriver_LibTimidity: public MusicDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void PlaySong(const char *filename);
+
+	/* virtual */ void StopSong();
+
+	/* virtual */ bool IsSongPlaying();
+
+	/* virtual */ void SetVolume(byte vol);
+};
+
+class FMusicDriver_LibTimidity: public MusicDriverFactory<FMusicDriver_LibTimidity> {
+public:
+	/* virtual */ const char *GetName() { return "libtimidity"; }
+	/* virtual */ const char *GetDescription() { return "LibTimidity MIDI Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new MusicDriver_LibTimidity(); }
+};
 
 #endif /* MUSIC_LIBTIMIDITY_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/music/music_driver.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -0,0 +1,35 @@
+/* $Id$ */
+
+#ifndef MUSIC_MUSIC_DRIVER_HPP
+#define MUSIC_MUSIC_DRIVER_HPP
+
+#include "../driver.h"
+
+class MusicDriver: public Driver {
+public:
+	virtual void PlaySong(const char *filename) = 0;
+
+	virtual void StopSong() = 0;
+
+	virtual bool IsSongPlaying() = 0;
+
+	virtual void SetVolume(byte vol) = 0;
+};
+
+class MusicDriverFactoryBase: public DriverFactoryBase {
+};
+
+template <class T>
+class MusicDriverFactory: public MusicDriverFactoryBase {
+public:
+	MusicDriverFactory() { this->RegisterDriver(((T *)this)->GetName(), Driver::DT_MUSIC); }
+
+	/**
+	 * Get the long, human readable, name for the Driver-class.
+	 */
+	const char *GetName();
+};
+
+extern MusicDriver *_music_driver;
+
+#endif /* MUSIC_MUSIC_DRIVER_HPP */
--- a/src/music/null_m.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/null_m.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -3,18 +3,5 @@
 #include "../stdafx.h"
 #include "null_m.h"
 
-static const char* NullMidiStart(const char* const* parm) { return NULL; }
-static void NullMidiStop() {}
-static void NullMidiPlaySong(const char *filename) {}
-static void NullMidiStopSong() {}
-static bool NullMidiIsSongPlaying() { return true; }
-static void NullMidiSetVolume(byte vol) {}
+static FMusicDriver_Null iFMusicDriver_Null;
 
-const HalMusicDriver _null_music_driver = {
-	NullMidiStart,
-	NullMidiStop,
-	NullMidiPlaySong,
-	NullMidiStopSong,
-	NullMidiIsSongPlaying,
-	NullMidiSetVolume,
-};
--- a/src/music/null_m.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/null_m.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef MUSIC_NULL_H
 #define MUSIC_NULL_H
 
-#include "../hal.h"
+#include "music_driver.hpp"
 
-extern const HalMusicDriver _null_music_driver;
+class MusicDriver_Null: public MusicDriver {
+public:
+	/* virtual */ bool CanProbe() { return false; }
+
+	/* virtual */ const char *Start(const char * const *param) { return NULL; }
+
+	/* virtual */ void Stop() { }
+
+	/* virtual */ void PlaySong(const char *filename) { }
+
+	/* virtual */ void StopSong() { }
+
+	/* virtual */ bool IsSongPlaying() { return true; }
+
+	/* virtual */ void SetVolume(byte vol) { }
+};
+
+class FMusicDriver_Null: public MusicDriverFactory<FMusicDriver_Null> {
+public:
+	/* virtual */ const char *GetName() { return "null"; }
+	/* virtual */ const char *GetDescription() { return "Null Music Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new MusicDriver_Null(); }
+};
 
 #endif /* MUSIC_NULL_H */
--- a/src/music/os2_m.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/os2_m.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -30,7 +30,9 @@
 	return mciSendString(buf, NULL, 0, NULL, 0);
 }
 
-static void OS2MidiPlaySong(const char *filename)
+static FMusicDriver_OS2 iFMusicDriver_OS2;
+
+void MusicDriver_OS2::PlaySong(const char *filename)
 {
 	MidiSendCommand("close all");
 
@@ -40,38 +42,29 @@
 	MidiSendCommand("play song from 0");
 }
 
-static void OS2MidiStopSong()
+void MusicDriver_OS2::StopSong()
 {
 	MidiSendCommand("close all");
 }
 
-static void OS2MidiSetVolume(byte vol)
+void MusicDriver_OS2::SetVolume(byte vol)
 {
 	MidiSendCommand("set song audio volume %d", ((vol/127)*100));
 }
 
-static bool OS2MidiIsSongPlaying()
+bool MusicDriver_OS2::IsSongPlaying()
 {
 	char buf[16];
 	mciSendString("status song mode", buf, sizeof(buf), NULL, 0);
 	return strcmp(buf, "playing") == 0 || strcmp(buf, "seeking") == 0;
 }
 
-static const char *OS2MidiStart(const char * const *parm)
+const char *MusicDriver_OS2::Start(const char * const *parm)
 {
 	return 0;
 }
 
-static void OS2MidiStop()
+void MusicDriver_OS2::Stop()
 {
 	MidiSendCommand("close all");
 }
-
-const HalMusicDriver _os2_music_driver = {
-	OS2MidiStart,
-	OS2MidiStop,
-	OS2MidiPlaySong,
-	OS2MidiStopSong,
-	OS2MidiIsSongPlaying,
-	OS2MidiSetVolume,
-};
--- a/src/music/os2_m.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/os2_m.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef MUSIC_OS2_H
 #define MUSIC_OS2_H
 
-#include "../hal.h"
+#include "music_driver.hpp"
 
-extern const HalMusicDriver _os2_music_driver;
+class MusicDriver_OS2: public MusicDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void PlaySong(const char *filename);
+
+	/* virtual */ void StopSong();
+
+	/* virtual */ bool IsSongPlaying();
+
+	/* virtual */ void SetVolume(byte vol);
+};
+
+class FMusicDriver_OS2: public MusicDriverFactory<FMusicDriver_OS2> {
+public:
+	/* virtual */ const char *GetName() { return "os2"; }
+	/* virtual */ const char *GetDescription() { return "OS/2 Music Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new MusicDriver_OS2(); }
+};
 
 #endif /* MUSIC_OS2_H */
--- a/src/music/qtmidi.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/qtmidi.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -47,6 +47,8 @@
 // we need to include debug.h after CoreServices because defining DEBUG will break CoreServices in OSX 10.2
 #include "../debug.h"
 
+static FMusicDriver_QtMidi iFMusicDriver_QtMidi;
+
 
 enum {
 	midiType = 'Midi' /**< OSType code for MIDI songs. */
@@ -207,9 +209,6 @@
 #define VOLUME  ((short)((0x00FF & _quicktime_volume) << 1))
 
 
-static void StopSong();
-
-
 /**
  * Initialized the MIDI player, including QuickTime initialization.
  *
@@ -217,7 +216,7 @@
  * @c Gestalt() and @c EnterMovies(). Needs changes in
  * #InitQuickTimeIfNeeded.
  */
-static const char* StartDriver(const char * const *parm)
+const char *MusicDriver_QtMidi::Start(const char * const *parm)
 {
 	InitQuickTimeIfNeeded();
 	return (_quicktime_started) ? NULL : "can't initialize QuickTime";
@@ -230,7 +229,7 @@
  * This function is called at regular intervals from OpenTTD's main loop, so
  * we call @c MoviesTask() from here to let QuickTime do its work.
  */
-static bool SongIsPlaying()
+bool MusicDriver_QtMidi::IsSongPlaying()
 {
 	if (!_quicktime_started) return true;
 
@@ -258,7 +257,7 @@
  * Stops playing and frees any used resources before returning. As it
  * deinitilizes QuickTime, the #_quicktime_started flag is set to @c false.
  */
-static void StopDriver()
+void MusicDriver_QtMidi::Stop()
 {
 	if (!_quicktime_started) return;
 
@@ -284,7 +283,7 @@
  *
  * @param filename Path to a MIDI file.
  */
-static void PlaySong(const char *filename)
+void MusicDriver_QtMidi::PlaySong(const char *filename)
 {
 	if (!_quicktime_started) return;
 
@@ -312,7 +311,7 @@
 /**
  * Stops playing the current song, if the player is active.
  */
-static void StopSong()
+void MusicDriver_QtMidi::StopSong()
 {
 	if (!_quicktime_started) return;
 
@@ -340,7 +339,7 @@
  *
  * @param vol The desired volume, range of the value is @c 0-127
  */
-static void SetVolume(byte vol)
+void MusicDriver_QtMidi::SetVolume(byte vol)
 {
 	if (!_quicktime_started) return;
 
@@ -357,15 +356,3 @@
 	}
 }
 
-
-/**
- * Table of callbacks that implement the QuickTime MIDI player.
- */
-const HalMusicDriver _qtime_music_driver = {
-	StartDriver,
-	StopDriver,
-	PlaySong,
-	StopSong,
-	SongIsPlaying,
-	SetVolume,
-};
--- a/src/music/qtmidi.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/qtmidi.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef MUSIC_MACOSX_QUICKTIME_H
 #define MUSIC_MACOSX_QUICKTIME_H
 
-#include "../hal.h"
+#include "music_driver.hpp"
 
-extern const HalMusicDriver _qtime_music_driver;
+class MusicDriver_QtMidi: public MusicDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void PlaySong(const char *filename);
+
+	/* virtual */ void StopSong();
+
+	/* virtual */ bool IsSongPlaying();
+
+	/* virtual */ void SetVolume(byte vol);
+};
+
+class FMusicDriver_QtMidi: public MusicDriverFactory<FMusicDriver_QtMidi> {
+public:
+	/* virtual */ const char *GetName() { return "qt"; }
+	/* virtual */ const char *GetDescription() { return "QuickTime MIDI Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new MusicDriver_QtMidi(); }
+};
 
 #endif /* MUSIC_MACOSX_QUICKTIME_H */
--- a/src/music/win32_m.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/win32_m.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -15,7 +15,9 @@
 	char start_song[260];
 } _midi;
 
-static void Win32MidiPlaySong(const char *filename)
+static FMusicDriver_Win32 iFMusicDriver_Win32;
+
+void MusicDriver_Win32::PlaySong(const char *filename)
 {
 	strcpy(_midi.start_song, filename);
 	_midi.playing = true;
@@ -23,7 +25,7 @@
 	SetEvent(_midi.wait_obj);
 }
 
-static void Win32MidiStopSong()
+void MusicDriver_Win32::StopSong()
 {
 	if (_midi.playing) {
 		_midi.stop_song = true;
@@ -32,12 +34,12 @@
 	}
 }
 
-static bool Win32MidiIsSongPlaying()
+bool MusicDriver_Win32::IsSongPlaying()
 {
 	return _midi.playing;
 }
 
-static void Win32MidiSetVolume(byte vol)
+void MusicDriver_Win32::SetVolume(byte vol)
 {
 	_midi.new_vol = vol;
 	SetEvent(_midi.wait_obj);
@@ -118,7 +120,7 @@
 	return 0;
 }
 
-static const char *Win32MidiStart(const char * const *parm)
+const char *MusicDriver_Win32::Start(const char * const *parm)
 {
 	MIDIOUTCAPS midicaps;
 	DWORD threadId;
@@ -146,17 +148,8 @@
 	return NULL;
 }
 
-static void Win32MidiStop()
+void MusicDriver_Win32::Stop()
 {
 	_midi.terminate = true;
 	SetEvent(_midi.wait_obj);
 }
-
-const HalMusicDriver _win32_music_driver = {
-	Win32MidiStart,
-	Win32MidiStop,
-	Win32MidiPlaySong,
-	Win32MidiStopSong,
-	Win32MidiIsSongPlaying,
-	Win32MidiSetVolume,
-};
--- a/src/music/win32_m.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music/win32_m.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef MUSIC_WIN32_H
 #define MUSIC_WIN32_H
 
-#include "../hal.h"
+#include "music_driver.hpp"
 
-extern const HalMusicDriver _win32_music_driver;
+class MusicDriver_Win32: public MusicDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void PlaySong(const char *filename);
+
+	/* virtual */ void StopSong();
+
+	/* virtual */ bool IsSongPlaying();
+
+	/* virtual */ void SetVolume(byte vol);
+};
+
+class FMusicDriver_Win32: public MusicDriverFactory<FMusicDriver_Win32> {
+public:
+	/* virtual */ const char *GetName() { return "win32"; }
+	/* virtual */ const char *GetDescription() { return "Win32 Music Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new MusicDriver_Win32(); }
+};
 
 #endif /* MUSIC_WIN32_H */
--- a/src/music_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/music_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -11,10 +11,10 @@
 #include "window.h"
 #include "gfx.h"
 #include "sound.h"
-#include "hal.h"
 #include "macros.h"
 #include "variables.h"
 #include "music.h"
+#include "music/music_driver.hpp"
 
 static byte _music_wnd_cursong;
 static bool _song_is_active;
@@ -86,7 +86,7 @@
 
 static void MusicVolumeChanged(byte new_vol)
 {
-	_music_driver->set_volume(new_vol);
+	_music_driver->SetVolume(new_vol);
 }
 
 static void DoPlaySong()
@@ -94,12 +94,12 @@
 	char filename[MAX_PATH];
 	FioFindFullPath(filename, lengthof(filename), GM_DIR,
 			origin_songs_specs[_music_wnd_cursong - 1].filename);
-	_music_driver->play_song(filename);
+	_music_driver->PlaySong(filename);
 }
 
 static void DoStopMusic()
 {
-	_music_driver->stop_song();
+	_music_driver->StopSong();
 }
 
 static void SelectSongToPlay()
@@ -178,7 +178,7 @@
 
 	if (!_song_is_active) return;
 
-	if (!_music_driver->is_song_playing()) {
+	if (!_music_driver->IsSongPlaying()) {
 		if (_game_mode != GM_MENU) {
 			StopMusic();
 			SkipToNextSong();
--- a/src/network/network_data.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/network/network_data.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,11 +3,12 @@
 #ifndef NETWORK_DATA_H
 #define NETWORK_DATA_H
 
+#include "../openttd.h"
+#include "network.h"
+
 // Is the network enabled?
 #ifdef ENABLE_NETWORK
 
-#include "../openttd.h"
-#include "network.h"
 #include "core/os_abstraction.h"
 #include "core/core.h"
 #include "core/config.h"
--- a/src/network/network_server.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/network/network_server.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -196,11 +196,13 @@
 	const GRFConfig *c;
 	uint grf_count = 0;
 
-	for (c = _grfconfig; c != NULL; c = c->next) grf_count++;
+	for (c = _grfconfig; c != NULL; c = c->next) {
+		if (!HASBIT(c->flags, GCF_STATIC)) grf_count++;
+	}
 
 	p->Send_uint8 (grf_count);
 	for (c = _grfconfig; c != NULL; c = c->next) {
-		cs->Send_GRFIdentifier(p, c);
+		if (!HASBIT(c->flags, GCF_STATIC)) cs->Send_GRFIdentifier(p, c);
 	}
 
 	cs->Send_Packet(p);
--- a/src/network/network_udp.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/network/network_udp.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -289,7 +289,7 @@
 
 		for (c = item->info.grfconfig; c != NULL; c = c->next) {
 			if (c->status == GCS_NOT_FOUND) item->info.compatible = false;
-			if (c->status == GCS_NOT_FOUND || strcmp(c->name, UNKNOWN_GRF_NAME_PLACEHOLDER) != 0) continue;
+ 			if (c->status != GCS_NOT_FOUND || strcmp(c->name, UNKNOWN_GRF_NAME_PLACEHOLDER) != 0) continue;
 			in_request[in_request_count] = c;
 			in_request_count++;
 		}
--- a/src/newgrf.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/newgrf.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -283,8 +283,6 @@
 
 typedef bool (*VCI_Handler)(uint engine, int numinfo, int prop, byte **buf, int len);
 
-#define FOR_EACH_OBJECT for (i = 0; i < numinfo; i++)
-
 static void dewagonize(int condition, int engine)
 {
 	EngineInfo *ei = &_engine_info[engine];
@@ -302,153 +300,138 @@
 
 static bool RailVehicleChangeInfo(uint engine, int numinfo, int prop, byte **bufp, int len)
 {
-	EngineInfo *ei = &_engine_info[engine];
-	RailVehicleInfo *rvi = &_rail_vehicle_info[engine];
 	byte *buf = *bufp;
-	int i;
 	bool ret = false;
 
-	switch (prop) {
-		case 0x05: // Track type
-			FOR_EACH_OBJECT {
+	for (int i = 0; i < numinfo; i++) {
+		EngineInfo *ei       = &_engine_info[engine + i];
+		RailVehicleInfo *rvi = &_rail_vehicle_info[engine + i];
+
+		switch (prop) {
+			case 0x05: { // Track type
 				uint8 tracktype = grf_load_byte(&buf);
 
 				switch (tracktype) {
-					case 0: rvi[i].railtype = rvi[i].engclass >= 2 ? RAILTYPE_ELECTRIC : RAILTYPE_RAIL; break;
-					case 1: rvi[i].railtype = RAILTYPE_MONO; break;
-					case 2: rvi[i].railtype = RAILTYPE_MAGLEV; break;
+					case 0: rvi->railtype = rvi->engclass >= 2 ? RAILTYPE_ELECTRIC : RAILTYPE_RAIL; break;
+					case 1: rvi->railtype = RAILTYPE_MONO; break;
+					case 2: rvi->railtype = RAILTYPE_MAGLEV; break;
 					default:
 						grfmsg(1, "RailVehicleChangeInfo: Invalid track type %d specified, ignoring", tracktype);
 						break;
 				}
-			}
-			break;
-
-		case 0x08: // AI passenger service
-			/* @todo missing feature */
-			FOR_EACH_OBJECT grf_load_byte(&buf);
-			ret = true;
-			break;
-
-		case 0x09: // Speed (1 unit is 1 kmh)
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x08: // AI passenger service
+				/** @todo Tells the AI that this engine is designed for
+				 * passenger services and shouldn't be used for freight. */
+				grf_load_byte(&buf);
+				ret = true;
+				break;
+
+			case 0x09: { // Speed (1 unit is 1 kmh)
 				uint16 speed = grf_load_word(&buf);
 				if (speed == 0xFFFF) speed = 0;
 
-				rvi[i].max_speed = speed;
-			}
-			break;
-
-		case 0x0B: // Power
-			FOR_EACH_OBJECT {
+				rvi->max_speed = speed;
+			} break;
+
+			case 0x0B: { // Power
 				uint16 power = grf_load_word(&buf);
 
-				if (rvi[i].railveh_type == RAILVEH_MULTIHEAD) power /= 2;
-
-				rvi[i].power = power;
+				if (rvi->railveh_type == RAILVEH_MULTIHEAD) power /= 2;
+
+				rvi->power = power;
 				dewagonize(power, engine + i);
-			}
-			break;
-
-		case 0x0D: // Running cost factor
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x0D: { // Running cost factor
 				uint8 runcostfact = grf_load_byte(&buf);
 
-				if (rvi[i].railveh_type == RAILVEH_MULTIHEAD) runcostfact /= 2;
-
-				rvi[i].running_cost_base = runcostfact;
-			}
-			break;
-
-		case 0x0E: // Running cost base
-			FOR_EACH_OBJECT {
+				if (rvi->railveh_type == RAILVEH_MULTIHEAD) runcostfact /= 2;
+
+				rvi->running_cost_base = runcostfact;
+			} break;
+
+			case 0x0E: { // Running cost base
 				uint32 base = grf_load_dword(&buf);
 
 				switch (base) {
-					case 0x4C30: rvi[i].running_cost_class = 0; break;
-					case 0x4C36: rvi[i].running_cost_class = 1; break;
-					case 0x4C3C: rvi[i].running_cost_class = 2; break;
+					case 0x4C30: rvi->running_cost_class = 0; break;
+					case 0x4C36: rvi->running_cost_class = 1; break;
+					case 0x4C3C: rvi->running_cost_class = 2; break;
 					case 0: break; // Used by wagons
 					default:
 						grfmsg(1, "RailVehicleChangeInfo: Unsupported running cost base 0x%04X, ignoring", base);
 						break;
 				}
-			}
-			break;
-
-		case 0x12: // Sprite ID
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x12: { // Sprite ID
 				uint8 spriteid = grf_load_byte(&buf);
 
 				/* TTD sprite IDs point to a location in a 16bit array, but we use it
 				 * as an array index, so we need it to be half the original value. */
 				if (spriteid < 0xFD) spriteid >>= 1;
 
-				rvi[i].image_index = spriteid;
-			}
-			break;
-
-		case 0x13: // Dual-headed
-			FOR_EACH_OBJECT {
+				rvi->image_index = spriteid;
+			} break;
+
+			case 0x13: { // Dual-headed
 				uint8 dual = grf_load_byte(&buf);
 
 				if (dual != 0) {
-					if (rvi[i].railveh_type != RAILVEH_MULTIHEAD) {
+					if (rvi->railveh_type != RAILVEH_MULTIHEAD) {
 						// adjust power and running cost if needed
-						rvi[i].power /= 2;
-						rvi[i].running_cost_base /= 2;
+						rvi->power /= 2;
+						rvi->running_cost_base /= 2;
 					}
-					rvi[i].railveh_type = RAILVEH_MULTIHEAD;
+					rvi->railveh_type = RAILVEH_MULTIHEAD;
 				} else {
-					if (rvi[i].railveh_type == RAILVEH_MULTIHEAD) {
+					if (rvi->railveh_type == RAILVEH_MULTIHEAD) {
 						// adjust power and running cost if needed
-						rvi[i].power *= 2;
-						rvi[i].running_cost_base *= 2;
+						rvi->power *= 2;
+						rvi->running_cost_base *= 2;
 					}
-					rvi[i].railveh_type = rvi[i].power == 0 ?
+					rvi->railveh_type = rvi->power == 0 ?
 						RAILVEH_WAGON : RAILVEH_SINGLEHEAD;
 				}
-			}
-			break;
-
-		case 0x14: // Cargo capacity
-			FOR_EACH_OBJECT rvi[i].capacity = grf_load_byte(&buf);
-			break;
-
-		case 0x15: // Cargo type
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x14: // Cargo capacity
+				rvi->capacity = grf_load_byte(&buf);
+				break;
+
+			case 0x15: { // Cargo type
 				uint8 ctype = grf_load_byte(&buf);
 
 				if (ctype < NUM_CARGO && HASBIT(_cargo_mask, ctype)) {
-					rvi[i].cargo_type = ctype;
+					rvi->cargo_type = ctype;
 				} else {
-					rvi[i].cargo_type = CT_INVALID;
+					rvi->cargo_type = CT_INVALID;
 					grfmsg(2, "RailVehicleChangeInfo: Invalid cargo type %d, using first refittable", ctype);
 				}
-			}
-			break;
-
-		case 0x16: // Weight
-			FOR_EACH_OBJECT SB(rvi[i].weight, 0, 8, grf_load_byte(&buf));
-			break;
-
-		case 0x17: // Cost factor
-			FOR_EACH_OBJECT rvi[i].base_cost = grf_load_byte(&buf);
-			break;
-
-		case 0x18: // AI rank
-			FOR_EACH_OBJECT rvi[i].ai_rank = grf_load_byte(&buf);
-			break;
-
-		case 0x19: // Engine traction type
-			/* What do the individual numbers mean?
-			 * 0x00 .. 0x07: Steam
-			 * 0x08 .. 0x27: Diesel
-			 * 0x28 .. 0x31: Electric
-			 * 0x32 .. 0x37: Monorail
-			 * 0x38 .. 0x41: Maglev
-			 */
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x16: // Weight
+				SB(rvi->weight, 0, 8, grf_load_byte(&buf));
+				break;
+
+			case 0x17: // Cost factor
+				rvi->base_cost = grf_load_byte(&buf);
+				break;
+
+			case 0x18: // AI rank
+				rvi->ai_rank = grf_load_byte(&buf);
+				break;
+
+			case 0x19: { // Engine traction type
+				/* What do the individual numbers mean?
+				 * 0x00 .. 0x07: Steam
+				 * 0x08 .. 0x27: Diesel
+				 * 0x28 .. 0x31: Electric
+				 * 0x32 .. 0x37: Monorail
+				 * 0x38 .. 0x41: Maglev
+				 */
 				uint8 traction = grf_load_byte(&buf);
 				EngineClass engclass;
 
@@ -465,15 +448,13 @@
 				} else {
 					break;
 				}
-				if (rvi[i].railtype == RAILTYPE_RAIL     && engclass >= EC_ELECTRIC) rvi[i].railtype = RAILTYPE_ELECTRIC;
-				if (rvi[i].railtype == RAILTYPE_ELECTRIC && engclass  < EC_ELECTRIC) rvi[i].railtype = RAILTYPE_RAIL;
-
-				rvi[i].engclass = engclass;
-			}
-			break;
-
-		case 0x1A: // Alter purchase list sort order
-			FOR_EACH_OBJECT {
+				if (rvi->railtype == RAILTYPE_RAIL     && engclass >= EC_ELECTRIC) rvi->railtype = RAILTYPE_ELECTRIC;
+				if (rvi->railtype == RAILTYPE_ELECTRIC && engclass  < EC_ELECTRIC) rvi->railtype = RAILTYPE_RAIL;
+
+				rvi->engclass = engclass;
+			} break;
+
+			case 0x1A: { // Alter purchase list sort order
 				EngineID pos = grf_load_byte(&buf);
 
 				if (pos < NUM_TRAIN_ENGINES) {
@@ -481,122 +462,118 @@
 				} else {
 					grfmsg(2, "RailVehicleChangeInfo: Invalid train engine ID %d, ignoring", pos);
 				}
-			}
-			break;
-
-		case 0x1B: // Powered wagons power bonus
-			FOR_EACH_OBJECT rvi[i].pow_wag_power = grf_load_word(&buf);
-			break;
-
-		case 0x1C: // Refit cost
-			FOR_EACH_OBJECT ei[i].refit_cost = grf_load_byte(&buf);
-			break;
-
-		case 0x1D: // Refit cargo
-			FOR_EACH_OBJECT ei[i].refit_mask = grf_load_dword(&buf);
-			break;
-
-		case 0x1E: // Callback
-			FOR_EACH_OBJECT ei[i].callbackmask = grf_load_byte(&buf);
-			break;
-
-		case 0x1F: // Tractive effort coefficient
-			FOR_EACH_OBJECT rvi[i].tractive_effort = grf_load_byte(&buf);
-			break;
-
-		case 0x21: // Shorter vehicle
-			FOR_EACH_OBJECT rvi[i].shorten_factor = grf_load_byte(&buf);
-			break;
-
-		case 0x22: // Visual effect
-			/* see note in engine.h about rvi->visual_effect */
-			FOR_EACH_OBJECT rvi[i].visual_effect = grf_load_byte(&buf);
-			break;
-
-		case 0x23: // Powered wagons weight bonus
-			FOR_EACH_OBJECT rvi[i].pow_wag_weight = grf_load_byte(&buf);
-			break;
-
-		case 0x24: // High byte of vehicle weight
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x1B: // Powered wagons power bonus
+				rvi->pow_wag_power = grf_load_word(&buf);
+				break;
+
+			case 0x1C: // Refit cost
+				ei->refit_cost = grf_load_byte(&buf);
+				break;
+
+			case 0x1D: // Refit cargo
+				ei->refit_mask = grf_load_dword(&buf);
+				break;
+
+			case 0x1E: // Callback
+				ei->callbackmask = grf_load_byte(&buf);
+				break;
+
+			case 0x1F: // Tractive effort coefficient
+				rvi->tractive_effort = grf_load_byte(&buf);
+				break;
+
+			case 0x21: // Shorter vehicle
+				rvi->shorten_factor = grf_load_byte(&buf);
+				break;
+
+			case 0x22: // Visual effect
+				/** @see note in engine.h about rvi->visual_effect */
+				rvi->visual_effect = grf_load_byte(&buf);
+				break;
+
+			case 0x23: // Powered wagons weight bonus
+				rvi->pow_wag_weight = grf_load_byte(&buf);
+				break;
+
+			case 0x24: { // High byte of vehicle weight
 				byte weight = grf_load_byte(&buf);
 
 				if (weight > 4) {
 					grfmsg(2, "RailVehicleChangeInfo: Nonsensical weight of %d tons, ignoring", weight << 8);
 				} else {
-					SB(rvi[i].weight, 8, 8, weight);
+					SB(rvi->weight, 8, 8, weight);
 				}
-			}
-			break;
-
-		case 0x25: // User-defined bit mask to set when checking veh. var. 42
-			FOR_EACH_OBJECT rvi[i].user_def_data = grf_load_byte(&buf);
-			break;
-
-		case 0x26: // Retire vehicle early
-			FOR_EACH_OBJECT ei[i].retire_early = grf_load_byte(&buf);
-			break;
-
-		case 0x27: // Miscellaneous flags
-			FOR_EACH_OBJECT {
-				ei[i].misc_flags = grf_load_byte(&buf);
-				_loaded_newgrf_features.has_2CC |= HASBIT(ei[i].misc_flags, EF_USES_2CC);
-			}
-			break;
-
-		case 0x28: // Cargo classes allowed
-			FOR_EACH_OBJECT cargo_allowed[engine + i] = grf_load_word(&buf);
-			break;
-
-		case 0x29: // Cargo classes disallowed
-			FOR_EACH_OBJECT cargo_disallowed[engine + i] = grf_load_word(&buf);
-			break;
-
-		case 0x2A: // Long format introduction date (days since year 0)
-			FOR_EACH_OBJECT ei[i].base_intro = grf_load_dword(&buf);
-			break;
-
-		/* @todo air drag and retire vehicle early
-		 * Fall-through for unimplemented one byte long properties. */
-		case 0x20: // Air drag
-			FOR_EACH_OBJECT grf_load_byte(&buf);
-			ret = true;
-			break;
-
-		default:
-			ret = true;
-			break;
+			} break;
+
+			case 0x25: // User-defined bit mask to set when checking veh. var. 42
+				rvi->user_def_data = grf_load_byte(&buf);
+				break;
+
+			case 0x26: // Retire vehicle early
+				ei->retire_early = grf_load_byte(&buf);
+				break;
+
+			case 0x27: // Miscellaneous flags
+				ei->misc_flags = grf_load_byte(&buf);
+				_loaded_newgrf_features.has_2CC |= HASBIT(ei->misc_flags, EF_USES_2CC);
+				break;
+
+			case 0x28: // Cargo classes allowed
+				cargo_allowed[engine + i] = grf_load_word(&buf);
+				break;
+
+			case 0x29: // Cargo classes disallowed
+				cargo_disallowed[engine + i] = grf_load_word(&buf);
+				break;
+
+			case 0x2A: // Long format introduction date (days since year 0)
+				ei->base_intro = grf_load_dword(&buf);
+				break;
+
+			case 0x20: // Air drag
+				/** @todo Air drag for trains. */
+				grf_load_byte(&buf);
+				ret = true;
+				break;
+
+			default:
+				ret = true;
+				break;
+		}
 	}
+
 	*bufp = buf;
 	return ret;
 }
 
 static bool RoadVehicleChangeInfo(uint engine, int numinfo, int prop, byte **bufp, int len)
 {
-	EngineInfo *ei = &_engine_info[ROAD_ENGINES_INDEX + engine];
-	RoadVehicleInfo *rvi = &_road_vehicle_info[engine];
 	byte *buf = *bufp;
-	int i;
 	bool ret = false;
 
-	switch (prop) {
-		case 0x08: // Speed (1 unit is 0.5 kmh)
-			FOR_EACH_OBJECT rvi[i].max_speed = grf_load_byte(&buf);
-			break;
-
-		case 0x09: // Running cost factor
-			FOR_EACH_OBJECT rvi[i].running_cost = grf_load_byte(&buf);
-			break;
-
-		case 0x0A: // Running cost base
-			/* @todo : I have no idea. --pasky
-			 * I THINK it is used for overriding the base cost of all road vehicle (_price.roadveh_base) --belugas */
-			FOR_EACH_OBJECT grf_load_dword(&buf);
-			ret = true;
-			break;
-
-		case 0x0E: // Sprite ID
-			FOR_EACH_OBJECT {
+	for (int i = 0; i < numinfo; i++) {
+		EngineInfo *ei       = &_engine_info[ROAD_ENGINES_INDEX + engine + i];
+		RoadVehicleInfo *rvi = &_road_vehicle_info[engine + i];
+
+		switch (prop) {
+			case 0x08: // Speed (1 unit is 0.5 kmh)
+				rvi->max_speed = grf_load_byte(&buf);
+				break;
+
+			case 0x09: // Running cost factor
+				rvi->running_cost = grf_load_byte(&buf);
+				break;
+
+			case 0x0A: // Running cost base
+				/** @todo : I have no idea. --pasky
+				 * I THINK it is used for overriding the base cost of all road vehicle (_price.roadveh_base) --belugas */
+				grf_load_dword(&buf);
+				ret = true;
+				break;
+
+			case 0x0E: { // Sprite ID
 				uint8 spriteid = grf_load_byte(&buf);
 
 				/* cars have different custom id in the GRF file */
@@ -604,90 +581,86 @@
 
 				if (spriteid < 0xFD) spriteid >>= 1;
 
-				rvi[i].image_index = spriteid;
-			}
-			break;
-
-		case 0x0F: // Cargo capacity
-			FOR_EACH_OBJECT rvi[i].capacity = grf_load_byte(&buf);
-			break;
-
-		case 0x10: // Cargo type
-			FOR_EACH_OBJECT {
+				rvi->image_index = spriteid;
+			} break;
+
+			case 0x0F: // Cargo capacity
+				rvi->capacity = grf_load_byte(&buf);
+				break;
+
+			case 0x10: { // Cargo type
 				uint8 cargo = grf_load_byte(&buf);
 
 				if (cargo < NUM_CARGO && HASBIT(_cargo_mask, cargo)) {
-					rvi[i].cargo_type = cargo;
+					rvi->cargo_type = cargo;
 				} else {
-					rvi[i].cargo_type = CT_INVALID;
+					rvi->cargo_type = CT_INVALID;
 					grfmsg(2, "RoadVehicleChangeInfo: Invalid cargo type %d, using first refittable", cargo);
 				}
-			}
-			break;
-
-		case 0x11: // Cost factor
-			FOR_EACH_OBJECT rvi[i].base_cost = grf_load_byte(&buf); // ?? is it base_cost?
-			break;
-
-		case 0x12: // SFX
-			FOR_EACH_OBJECT rvi[i].sfx = (SoundFx)grf_load_byte(&buf);
-			break;
-
-		case 0x13: // Power in 10hp
-		case 0x14: // Weight in 1/4 tons
-		case 0x15: // Speed in mph*0.8
-			/* TODO: Support for road vehicles realistic power
-			 * computations (called rvpower in TTDPatch) is just
-			 * missing in OTTD yet. --pasky */
-			FOR_EACH_OBJECT grf_load_byte(&buf);
-			ret = true;
-			break;
-
-		case 0x16: // Cargos available for refitting
-			FOR_EACH_OBJECT ei[i].refit_mask = grf_load_dword(&buf);
-			break;
-
-		case 0x17: // Callback mask
-			FOR_EACH_OBJECT ei[i].callbackmask = grf_load_byte(&buf);
-			break;
-
-		case 0x1A: // Refit cost
-			FOR_EACH_OBJECT ei[i].refit_cost = grf_load_byte(&buf);
-			break;
-
-		case 0x1B: // Retire vehicle early
-			FOR_EACH_OBJECT ei[i].retire_early = grf_load_byte(&buf);
-			break;
-
-		case 0x1C: // Miscellaneous flags
-			FOR_EACH_OBJECT {
-				ei[i].misc_flags = grf_load_byte(&buf);
-				_loaded_newgrf_features.has_2CC |= HASBIT(ei[i].misc_flags, EF_USES_2CC);
-			}
-			break;
-
-		case 0x1D: // Cargo classes allowed
-			FOR_EACH_OBJECT cargo_allowed[ROAD_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
-			break;
-
-		case 0x1E: // Cargo classes disallowed
-			FOR_EACH_OBJECT cargo_disallowed[ROAD_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
-			break;
-
-		case 0x1F: // Long format introduction date (days since year 0)
-			FOR_EACH_OBJECT ei[i].base_intro = grf_load_dword(&buf);
-			break;
-
-		case 0x18: // Tractive effort
-		case 0x19: // Air drag
-			/* @todo */
-			FOR_EACH_OBJECT grf_load_byte(&buf);
-			ret = true;
-			break;
-
-		default:
-			ret = true;
-			break;
+			} break;
+
+			case 0x11: // Cost factor
+				rvi->base_cost = grf_load_byte(&buf); // ?? is it base_cost?
+				break;
+
+			case 0x12: // SFX
+				rvi->sfx = (SoundFx)grf_load_byte(&buf);
+				break;
+
+			case 0x13: // Power in 10hp
+			case 0x14: // Weight in 1/4 tons
+			case 0x15: // Speed in mph*0.8
+				/** @todo Support for road vehicles realistic power
+				 * computations (called rvpower in TTDPatch) is just
+				 * missing in OTTD yet. --pasky */
+				grf_load_byte(&buf);
+				ret = true;
+				break;
+
+			case 0x16: // Cargos available for refitting
+				ei->refit_mask = grf_load_dword(&buf);
+				break;
+
+			case 0x17: // Callback mask
+				ei->callbackmask = grf_load_byte(&buf);
+				break;
+
+			case 0x1A: // Refit cost
+				ei->refit_cost = grf_load_byte(&buf);
+				break;
+
+			case 0x1B: // Retire vehicle early
+				ei->retire_early = grf_load_byte(&buf);
+				break;
+
+			case 0x1C: // Miscellaneous flags
+				ei->misc_flags = grf_load_byte(&buf);
+				_loaded_newgrf_features.has_2CC |= HASBIT(ei->misc_flags, EF_USES_2CC);
+				break;
+
+			case 0x1D: // Cargo classes allowed
+				cargo_allowed[ROAD_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+				break;
+
+			case 0x1E: // Cargo classes disallowed
+				cargo_disallowed[ROAD_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+				break;
+
+			case 0x1F: // Long format introduction date (days since year 0)
+				ei->base_intro = grf_load_dword(&buf);
+				break;
+
+			case 0x18: // Tractive effort
+			case 0x19: // Air drag
+				/** @todo Tractive effort and air drag for road vehicles. */
+				grf_load_byte(&buf);
+				ret = true;
+				break;
+
+			default:
+				ret = true;
+				break;
+		}
 	}
 
 	*bufp = buf;
@@ -696,16 +669,15 @@
 
 static bool ShipVehicleChangeInfo(uint engine, int numinfo, int prop, byte **bufp, int len)
 {
-	EngineInfo *ei = &_engine_info[SHIP_ENGINES_INDEX + engine];
-	ShipVehicleInfo *svi = &_ship_vehicle_info[engine];
 	byte *buf = *bufp;
-	int i;
 	bool ret = false;
 
-	//printf("e %x prop %x?\n", engine, prop);
-	switch (prop) {
-		case 0x08: // Sprite ID
-			FOR_EACH_OBJECT {
+	for (int i = 0; i < numinfo; i++) {
+		EngineInfo *ei       = &_engine_info[SHIP_ENGINES_INDEX + engine + i];
+		ShipVehicleInfo *svi = &_ship_vehicle_info[engine + i];
+
+		switch (prop) {
+			case 0x08: { // Sprite ID
 				uint8 spriteid = grf_load_byte(&buf);
 
 				/* ships have different custom id in the GRF file */
@@ -713,92 +685,88 @@
 
 				if (spriteid < 0xFD) spriteid >>= 1;
 
-				svi[i].image_index = spriteid;
-			}
-			break;
-
-		case 0x09: // Refittable
-			FOR_EACH_OBJECT svi[i].refittable = (grf_load_byte(&buf) != 0);
-			break;
-
-		case 0x0A: // Cost factor
-			FOR_EACH_OBJECT svi[i].base_cost = grf_load_byte(&buf); // ?? is it base_cost?
-			break;
-
-		case 0x0B: // Speed (1 unit is 0.5 kmh)
-			FOR_EACH_OBJECT svi[i].max_speed = grf_load_byte(&buf);
-			break;
-
-		case 0x0C: // Cargo type
-			FOR_EACH_OBJECT {
+				svi->image_index = spriteid;
+			} break;
+
+			case 0x09: // Refittable
+				svi->refittable = (grf_load_byte(&buf) != 0);
+				break;
+
+			case 0x0A: // Cost factor
+				svi->base_cost = grf_load_byte(&buf); // ?? is it base_cost?
+				break;
+
+			case 0x0B: // Speed (1 unit is 0.5 kmh)
+				svi->max_speed = grf_load_byte(&buf);
+				break;
+
+			case 0x0C: { // Cargo type
 				uint8 cargo = grf_load_byte(&buf);
 
 				if (cargo < NUM_CARGO && HASBIT(_cargo_mask, cargo)) {
-					svi[i].cargo_type = cargo;
+					svi->cargo_type = cargo;
 				} else {
-					svi[i].cargo_type = CT_INVALID;
+					svi->cargo_type = CT_INVALID;
 					grfmsg(2, "ShipVehicleChangeInfo: Invalid cargo type %d, using first refittable", cargo);
 				}
-			}
-			break;
-
-		case 0x0D: // Cargo capacity
-			FOR_EACH_OBJECT svi[i].capacity = grf_load_word(&buf);
-			break;
-
-		case 0x0F: // Running cost factor
-			FOR_EACH_OBJECT svi[i].running_cost = grf_load_byte(&buf);
-			break;
-
-		case 0x10: // SFX
-			FOR_EACH_OBJECT svi[i].sfx = (SoundFx)grf_load_byte(&buf);
-			break;
-
-		case 0x11: // Cargos available for refitting
-			FOR_EACH_OBJECT ei[i].refit_mask = grf_load_dword(&buf);
-			break;
-
-		case 0x12: // Callback mask
-			FOR_EACH_OBJECT ei[i].callbackmask = grf_load_byte(&buf);
-			break;
-
-		case 0x13: // Refit cost
-			FOR_EACH_OBJECT ei[i].refit_cost = grf_load_byte(&buf);
-			break;
-
-		case 0x16: // Retire vehicle early
-			FOR_EACH_OBJECT ei[i].retire_early = grf_load_byte(&buf);
-			break;
-
-		case 0x17: // Miscellaneous flags
-			FOR_EACH_OBJECT {
-				ei[i].misc_flags = grf_load_byte(&buf);
-				_loaded_newgrf_features.has_2CC |= HASBIT(ei[i].misc_flags, EF_USES_2CC);
-			}
-			break;
-
-		case 0x18: // Cargo classes allowed
-			FOR_EACH_OBJECT cargo_allowed[SHIP_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
-			break;
-
-		case 0x19: // Cargo classes disallowed
-			FOR_EACH_OBJECT cargo_disallowed[SHIP_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
-			break;
-
-		case 0x1A: // Long format introduction date (days since year 0)
-			FOR_EACH_OBJECT ei[i].base_intro = grf_load_dword(&buf);
-			break;
-
-		case 0x14: // Ocean speed fraction
-		case 0x15: // Canal speed fraction
-			/* @todo */
-			FOR_EACH_OBJECT grf_load_byte(&buf);
-			ret = true;
-			break;
-
-		default:
-			ret = true;
-			break;
+			} break;
+
+			case 0x0D: // Cargo capacity
+				svi->capacity = grf_load_word(&buf);
+				break;
+
+			case 0x0F: // Running cost factor
+				svi->running_cost = grf_load_byte(&buf);
+				break;
+
+			case 0x10: // SFX
+				svi->sfx = (SoundFx)grf_load_byte(&buf);
+				break;
+
+			case 0x11: // Cargos available for refitting
+				ei->refit_mask = grf_load_dword(&buf);
+				break;
+
+			case 0x12: // Callback mask
+				ei->callbackmask = grf_load_byte(&buf);
+				break;
+
+			case 0x13: // Refit cost
+				ei->refit_cost = grf_load_byte(&buf);
+				break;
+
+			case 0x16: // Retire vehicle early
+				ei->retire_early = grf_load_byte(&buf);
+				break;
+
+			case 0x17: // Miscellaneous flags
+				ei->misc_flags = grf_load_byte(&buf);
+				_loaded_newgrf_features.has_2CC |= HASBIT(ei->misc_flags, EF_USES_2CC);
+				break;
+
+			case 0x18: // Cargo classes allowed
+				cargo_allowed[SHIP_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+				break;
+
+			case 0x19: // Cargo classes disallowed
+				cargo_disallowed[SHIP_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+				break;
+
+			case 0x1A: // Long format introduction date (days since year 0)
+				ei->base_intro = grf_load_dword(&buf);
+				break;
+
+			case 0x14: // Ocean speed fraction
+			case 0x15: // Canal speed fraction
+				/** @todo Speed fractions for ships on oceans and canals */
+				grf_load_byte(&buf);
+				ret = true;
+				break;
+
+			default:
+				ret = true;
+				break;
+		}
 	}
 
 	*bufp = buf;
@@ -807,16 +775,15 @@
 
 static bool AircraftVehicleChangeInfo(uint engine, int numinfo, int prop, byte **bufp, int len)
 {
-	EngineInfo *ei = &_engine_info[AIRCRAFT_ENGINES_INDEX + engine];
-	AircraftVehicleInfo *avi = &_aircraft_vehicle_info[engine];
 	byte *buf = *bufp;
-	int i;
 	bool ret = false;
 
-	//printf("e %x prop %x?\n", engine, prop);
-	switch (prop) {
-		case 0x08: // Sprite ID
-			FOR_EACH_OBJECT {
+	for (int i = 0; i < numinfo; i++) {
+		EngineInfo *ei           = &_engine_info[AIRCRAFT_ENGINES_INDEX + engine + i];
+		AircraftVehicleInfo *avi = &_aircraft_vehicle_info[engine + i];
+
+		switch (prop) {
+			case 0x08: { // Sprite ID
 				uint8 spriteid = grf_load_byte(&buf);
 
 				/* aircraft have different custom id in the GRF file */
@@ -824,90 +791,86 @@
 
 				if (spriteid < 0xFD) spriteid >>= 1;
 
-				avi[i].image_index = spriteid;
-			}
-			break;
-
-		case 0x09: // Helicopter
-			FOR_EACH_OBJECT {
+				avi->image_index = spriteid;
+			} break;
+
+			case 0x09: // Helicopter
 				if (grf_load_byte(&buf) == 0) {
-					avi[i].subtype = AIR_HELI;
+					avi->subtype = AIR_HELI;
 				} else {
-					SB(avi[i].subtype, 0, 1, 1); // AIR_CTOL
+					SB(avi->subtype, 0, 1, 1); // AIR_CTOL
 				}
-			}
-			break;
-
-		case 0x0A: // Large
-			FOR_EACH_OBJECT SB(avi[i].subtype, 1, 1, (grf_load_byte(&buf) != 0 ? 1 : 0)); // AIR_FAST
-			break;
-
-		case 0x0B: // Cost factor
-			FOR_EACH_OBJECT avi[i].base_cost = grf_load_byte(&buf); // ?? is it base_cost?
-			break;
-
-		case 0x0C: // Speed (1 unit is 8 mph, we translate to 1 unit is 1 km/h)
-			FOR_EACH_OBJECT avi[i].max_speed = (grf_load_byte(&buf) * 129) / 10;
-			break;
-
-		case 0x0D: // Acceleration
-			FOR_EACH_OBJECT avi[i].acceleration = (grf_load_byte(&buf) * 129) / 10;
-			break;
-
-		case 0x0E: // Running cost factor
-			FOR_EACH_OBJECT avi[i].running_cost = grf_load_byte(&buf);
-			break;
-
-		case 0x0F: // Passenger capacity
-			FOR_EACH_OBJECT avi[i].passenger_capacity = grf_load_word(&buf);
-			break;
-
-		case 0x11: // Mail capacity
-			FOR_EACH_OBJECT avi[i].mail_capacity = grf_load_byte(&buf);
-			break;
-
-		case 0x12: // SFX
-			FOR_EACH_OBJECT avi[i].sfx = (SoundFx)grf_load_byte(&buf);
-			break;
-
-		case 0x13: // Cargos available for refitting
-			FOR_EACH_OBJECT ei[i].refit_mask = grf_load_dword(&buf);
-			break;
-
-		case 0x14: // Callback mask
-			FOR_EACH_OBJECT ei[i].callbackmask = grf_load_byte(&buf);
-			break;
-
-		case 0x15: // Refit cost
-			FOR_EACH_OBJECT ei[i].refit_cost = grf_load_byte(&buf);
-			break;
-
-		case 0x16: // Retire vehicle early
-			FOR_EACH_OBJECT ei[i].retire_early = grf_load_byte(&buf);
-			break;
-
-		case 0x17: // Miscellaneous flags
-			FOR_EACH_OBJECT {
-				ei[i].misc_flags = grf_load_byte(&buf);
-				_loaded_newgrf_features.has_2CC |= HASBIT(ei[i].misc_flags, EF_USES_2CC);
-			}
-			break;
-
-		case 0x18: // Cargo classes allowed
-			FOR_EACH_OBJECT cargo_allowed[AIRCRAFT_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
-			break;
-
-		case 0x19: // Cargo classes disallowed
-			FOR_EACH_OBJECT cargo_disallowed[AIRCRAFT_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
-			break;
-
-		case 0x1A: // Long format introduction date (days since year 0)
-			FOR_EACH_OBJECT ei[i].base_intro = grf_load_dword(&buf);
-			break;
-
-		default:
-			ret = true;
-			break;
+				break;
+
+			case 0x0A: // Large
+				SB(avi->subtype, 1, 1, (grf_load_byte(&buf) != 0 ? 1 : 0)); // AIR_FAST
+				break;
+
+			case 0x0B: // Cost factor
+				avi->base_cost = grf_load_byte(&buf); // ?? is it base_cost?
+				break;
+
+			case 0x0C: // Speed (1 unit is 8 mph, we translate to 1 unit is 1 km/h)
+				avi->max_speed = (grf_load_byte(&buf) * 129) / 10;
+				break;
+
+			case 0x0D: // Acceleration
+				avi->acceleration = (grf_load_byte(&buf) * 129) / 10;
+				break;
+
+			case 0x0E: // Running cost factor
+				avi->running_cost = grf_load_byte(&buf);
+				break;
+
+			case 0x0F: // Passenger capacity
+				avi->passenger_capacity = grf_load_word(&buf);
+				break;
+
+			case 0x11: // Mail capacity
+				avi->mail_capacity = grf_load_byte(&buf);
+				break;
+
+			case 0x12: // SFX
+				avi->sfx = (SoundFx)grf_load_byte(&buf);
+				break;
+
+			case 0x13: // Cargos available for refitting
+				ei->refit_mask = grf_load_dword(&buf);
+				break;
+
+			case 0x14: // Callback mask
+				ei->callbackmask = grf_load_byte(&buf);
+				break;
+
+			case 0x15: // Refit cost
+				ei->refit_cost = grf_load_byte(&buf);
+				break;
+
+			case 0x16: // Retire vehicle early
+				ei->retire_early = grf_load_byte(&buf);
+				break;
+
+			case 0x17: // Miscellaneous flags
+				ei->misc_flags = grf_load_byte(&buf);
+				_loaded_newgrf_features.has_2CC |= HASBIT(ei->misc_flags, EF_USES_2CC);
+				break;
+
+			case 0x18: // Cargo classes allowed
+				cargo_allowed[AIRCRAFT_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+				break;
+
+			case 0x19: // Cargo classes disallowed
+				cargo_disallowed[AIRCRAFT_ENGINES_INDEX + engine + i] = grf_load_word(&buf);
+				break;
+
+			case 0x1A: // Long format introduction date (days since year 0)
+				ei->base_intro = grf_load_dword(&buf);
+				break;
+
+			default:
+				ret = true;
+				break;
+		}
 	}
 
 	*bufp = buf;
@@ -916,9 +879,7 @@
 
 static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int len)
 {
-	StationSpec **statspec;
 	byte *buf = *bufp;
-	int i;
 	bool ret = false;
 
 	if (stid + numinfo > MAX_STATIONS) {
@@ -929,34 +890,28 @@
 	/* Allocate station specs if necessary */
 	if (_cur_grffile->stations == NULL) _cur_grffile->stations = CallocT<StationSpec*>(MAX_STATIONS);
 
-	statspec = &_cur_grffile->stations[stid];
-
-	if (prop != 0x08) {
-		/* Check that all stations we are modifying are defined. */
-		FOR_EACH_OBJECT {
-			if (statspec[i] == NULL) {
-				grfmsg(2, "StationChangeInfo: Attempt to modify undefined station %u, ignoring", stid + i);
-				return false;
-			}
+	for (int i = 0; i < numinfo; i++) {
+		StationSpec *statspec = _cur_grffile->stations[stid + i];
+
+		/* Check that the station we are modifying is defined. */
+		if (statspec == NULL && prop != 0x08) {
+			grfmsg(2, "StationChangeInfo: Attempt to modify undefined station %u, ignoring", stid + i);
+			continue;
 		}
-	}
-
-	switch (prop) {
-		case 0x08: // Class ID
-			FOR_EACH_OBJECT {
+
+		switch (prop) {
+			case 0x08: { // Class ID
+				StationSpec **spec = &_cur_grffile->stations[stid + i];
+
 				/* Property 0x08 is special; it is where the station is allocated */
-				if (statspec[i] == NULL) statspec[i] = CallocT<StationSpec>(1);
+				if (*spec == NULL) *spec = CallocT<StationSpec>(1);
 
 				/* Swap classid because we read it in BE meaning WAYP or DFLT */
 				uint32 classid = grf_load_dword(&buf);
-				statspec[i]->sclass = AllocateStationClass(BSWAP32(classid));
-			}
-			break;
-
-		case 0x09: // Define sprite layout
-			FOR_EACH_OBJECT {
-				StationSpec *statspec = _cur_grffile->stations[stid + i];
-
+				(*spec)->sclass = AllocateStationClass(BSWAP32(classid));
+			} break;
+
+			case 0x09: // Define sprite layout
 				statspec->tiles = grf_load_extended(&buf);
 				statspec->renderdata = CallocT<DrawTileSprites>(statspec->tiles);
 				statspec->copied_renderdata = false;
@@ -1007,37 +962,30 @@
 						}
 					}
 				}
-			}
-			break;
-
-		case 0x0A: // Copy sprite layout
-			FOR_EACH_OBJECT {
-				StationSpec *statspec = _cur_grffile->stations[stid + i];
+				break;
+
+			case 0x0A: { // Copy sprite layout
 				byte srcid = grf_load_byte(&buf);
 				const StationSpec *srcstatspec = _cur_grffile->stations[srcid];
 
 				statspec->tiles = srcstatspec->tiles;
 				statspec->renderdata = srcstatspec->renderdata;
 				statspec->copied_renderdata = true;
-			}
-			break;
-
-		case 0x0B: // Callback mask
-			FOR_EACH_OBJECT statspec[i]->callbackmask = grf_load_byte(&buf);
-			break;
-
-		case 0x0C: // Disallowed number of platforms
-			FOR_EACH_OBJECT statspec[i]->disallowed_platforms = grf_load_byte(&buf);
-			break;
-
-		case 0x0D: // Disallowed platform lengths
-			FOR_EACH_OBJECT statspec[i]->disallowed_lengths = grf_load_byte(&buf);
-			break;
-
-		case 0x0E: // Define custom layout
-			FOR_EACH_OBJECT {
-				StationSpec *statspec = _cur_grffile->stations[stid + i];
-
+			} break;
+
+			case 0x0B: // Callback mask
+				statspec->callbackmask = grf_load_byte(&buf);
+				break;
+
+			case 0x0C: // Disallowed number of platforms
+				statspec->disallowed_platforms = grf_load_byte(&buf);
+				break;
+
+			case 0x0D: // Disallowed platform lengths
+				statspec->disallowed_lengths = grf_load_byte(&buf);
+				break;
+
+			case 0x0E: // Define custom layout
 				statspec->copied_layouts = false;
 
 				while (buf < *bufp + len) {
@@ -1084,12 +1032,9 @@
 					free(statspec->layouts[l][p]);
 					statspec->layouts[l][p] = layout;
 				}
-			}
-			break;
-
-		case 0x0F: // Copy custom layout
-			FOR_EACH_OBJECT {
-				StationSpec *statspec = _cur_grffile->stations[stid + i];
+				break;
+
+			case 0x0F: { // Copy custom layout
 				byte srcid = grf_load_byte(&buf);
 				const StationSpec *srcstatspec = _cur_grffile->stations[srcid];
 
@@ -1097,51 +1042,51 @@
 				statspec->platforms = srcstatspec->platforms;
 				statspec->layouts   = srcstatspec->layouts;
 				statspec->copied_layouts = true;
-			}
-			break;
-
-		case 0x10: // Little/lots cargo threshold
-			FOR_EACH_OBJECT statspec[i]->cargo_threshold = grf_load_word(&buf);
-			break;
-
-		case 0x11: // Pylon placement
-			FOR_EACH_OBJECT statspec[i]->pylons = grf_load_byte(&buf);
-			break;
-
-		case 0x12: // Cargo types for random triggers
-			FOR_EACH_OBJECT statspec[i]->cargo_triggers = grf_load_dword(&buf);
-			break;
-
-		case 0x13: // General flags
-			FOR_EACH_OBJECT statspec[i]->flags = grf_load_byte(&buf);
-			break;
-
-		case 0x14: // Overhead wire placement
-			FOR_EACH_OBJECT statspec[i]->wires = grf_load_byte(&buf);
-			break;
-
-		case 0x15: // Blocked tiles
-			FOR_EACH_OBJECT statspec[i]->blocked = grf_load_byte(&buf);
-			break;
-
-		case 0x16: // @todo Animation info
-			FOR_EACH_OBJECT grf_load_word(&buf);
-			ret = true;
-			break;
-
-		case 0x17: // @todo Animation speed
-			FOR_EACH_OBJECT grf_load_byte(&buf);
-			ret = true;
-			break;
-
-		case 0x18: // @todo Animation triggers
-			FOR_EACH_OBJECT grf_load_word(&buf);
-			ret = true;
-			break;
-
-		default:
-			ret = true;
-			break;
+			} break;
+
+			case 0x10: // Little/lots cargo threshold
+				statspec->cargo_threshold = grf_load_word(&buf);
+				break;
+
+			case 0x11: // Pylon placement
+				statspec->pylons = grf_load_byte(&buf);
+				break;
+
+			case 0x12: // Cargo types for random triggers
+				statspec->cargo_triggers = grf_load_dword(&buf);
+				break;
+
+			case 0x13: // General flags
+				statspec->flags = grf_load_byte(&buf);
+				break;
+
+			case 0x14: // Overhead wire placement
+				statspec->wires = grf_load_byte(&buf);
+				break;
+
+			case 0x15: // Blocked tiles
+				statspec->blocked = grf_load_byte(&buf);
+				break;
+
+			case 0x16: // @todo Animation info
+				grf_load_word(&buf);
+				ret = true;
+				break;
+
+			case 0x17: // @todo Animation speed
+				grf_load_byte(&buf);
+				ret = true;
+				break;
+
+			case 0x18: // @todo Animation triggers
+				grf_load_word(&buf);
+				ret = true;
+				break;
+
+			default:
+				ret = true;
+				break;
+		}
 	}
 
 	*bufp = buf;
@@ -1151,33 +1096,38 @@
 static bool BridgeChangeInfo(uint brid, int numinfo, int prop, byte **bufp, int len)
 {
 	byte *buf = *bufp;
-	int i;
 	bool ret = false;
 
-	switch (prop) {
-		case 0x08: // Year of availability
-			FOR_EACH_OBJECT _bridge[brid + i].avail_year = ORIGINAL_BASE_YEAR + grf_load_byte(&buf);
-			break;
-
-		case 0x09: // Minimum length
-			FOR_EACH_OBJECT _bridge[brid + i].min_length = grf_load_byte(&buf);
-			break;
-
-		case 0x0A: // Maximum length
-			FOR_EACH_OBJECT _bridge[brid + i].max_length = grf_load_byte(&buf);
-			break;
-
-		case 0x0B: // Cost factor
-			FOR_EACH_OBJECT _bridge[brid + i].price = grf_load_byte(&buf);
-			break;
-
-		case 0x0C: // Maximum speed
-			FOR_EACH_OBJECT _bridge[brid + i].speed = grf_load_word(&buf);
-			break;
-
-		case 0x0D: // Bridge sprite tables
-			FOR_EACH_OBJECT {
-				Bridge *bridge = &_bridge[brid + i];
+	if (brid + numinfo > MAX_BRIDGES) {
+		grfmsg(1, "BridgeChangeInfo: Bridge %u is invalid, max %u, ignoring", brid + numinfo, MAX_BRIDGES);
+		return false;
+	}
+
+	for (int i = 0; i < numinfo; i++) {
+		Bridge *bridge = &_bridge[brid + i];
+
+		switch (prop) {
+			case 0x08: // Year of availability
+				bridge->avail_year = ORIGINAL_BASE_YEAR + grf_load_byte(&buf);
+				break;
+
+			case 0x09: // Minimum length
+				bridge->min_length = grf_load_byte(&buf);
+				break;
+
+			case 0x0A: // Maximum length
+				bridge->max_length = grf_load_byte(&buf);
+				break;
+
+			case 0x0B: // Cost factor
+				bridge->price = grf_load_byte(&buf);
+				break;
+
+			case 0x0C: // Maximum speed
+				bridge->speed = grf_load_word(&buf);
+				break;
+
+			case 0x0D: { // Bridge sprite tables
 				byte tableid = grf_load_byte(&buf);
 				byte numtables = grf_load_byte(&buf);
 
@@ -1212,19 +1162,20 @@
 						bridge->sprite_table[tableid][sprite].pal    = pal;
 					}
 				}
-			}
-			break;
-
-		case 0x0E: // Flags; bit 0 - disable far pillars
-			FOR_EACH_OBJECT _bridge[brid + i].flags = grf_load_byte(&buf);
-			break;
-
-		case 0x0F: // Long format year of availability (year since year 0)
-			FOR_EACH_OBJECT _bridge[brid + i].avail_year = clamp(grf_load_dword(&buf), MIN_YEAR, MAX_YEAR);
-			break;
-
-		default:
-			ret = true;
+			} break;
+
+			case 0x0E: // Flags; bit 0 - disable far pillars
+				bridge->flags = grf_load_byte(&buf);
+				break;
+
+			case 0x0F: // Long format year of availability (year since year 0)
+				bridge->avail_year = clamp(grf_load_dword(&buf), MIN_YEAR, MAX_YEAR);
+				break;
+
+			default:
+				ret = true;
+				break;
+		}
 	}
 
 	*bufp = buf;
@@ -1233,13 +1184,11 @@
 
 static bool TownHouseChangeInfo(uint hid, int numinfo, int prop, byte **bufp, int len)
 {
-	HouseSpec **housespec;
 	byte *buf = *bufp;
-	int i;
 	bool ret = false;
 
-	if (hid + numinfo >= HOUSE_MAX) {
-		grfmsg(1, "TownHouseChangeInfo: Too many houses loaded (%u), max (%u). Ignoring.", hid + numinfo, HOUSE_MAX-1);
+	if (hid + numinfo > HOUSE_MAX) {
+		grfmsg(1, "TownHouseChangeInfo: Too many houses loaded (%u), max (%u). Ignoring.", hid + numinfo, HOUSE_MAX);
 		return false;
 	}
 
@@ -1251,21 +1200,17 @@
 		_house_mngr.ResetOverride();
 	}
 
-	housespec = &_cur_grffile->housespec[hid];
-
-	if (prop != 0x08) {
-		/* Check that all the houses being modified have been defined. */
-		FOR_EACH_OBJECT {
-			if (housespec[i] == NULL) {
-				grfmsg(2, "TownHouseChangeInfo: Attempt to modify undefined house %u. Ignoring.", hid + i);
-				return false;
-			}
+	for (int i = 0; i < numinfo; i++) {
+		HouseSpec *housespec = _cur_grffile->housespec[hid + i];
+
+		if (prop != 0x08 && housespec == NULL) {
+			grfmsg(2, "TownHouseChangeInfo: Attempt to modify undefined house %u. Ignoring.", hid + i);
+			continue;
 		}
-	}
-
-	switch (prop) {
-		case 0x08: // Substitute building type, and definition of a new house
-			FOR_EACH_OBJECT {
+
+		switch (prop) {
+			case 0x08: { // Substitute building type, and definition of a new house
+				HouseSpec **house = &_cur_grffile->housespec[hid + i];
 				byte subs_id = grf_load_byte(&buf);
 
 				if (subs_id == 0xFF) {
@@ -1280,144 +1225,130 @@
 				}
 
 				/* Allocate space for this house. */
-				if (housespec[i] == NULL) housespec[i] = CallocT<HouseSpec>(1);
-
-				memcpy(housespec[i], &_house_specs[subs_id], sizeof(_house_specs[subs_id]));
-
-				housespec[i]->enabled = true;
-				housespec[i]->local_id = hid + i;
-				housespec[i]->substitute_id = subs_id;
-				housespec[i]->grffile = _cur_grffile;
-				housespec[i]->random_colour[0] = 0x04;  // those 4 random colours are the base colour
-				housespec[i]->random_colour[1] = 0x08;  // for all new houses
-				housespec[i]->random_colour[2] = 0x0C;  // they stand for red, blue, orange and green
-				housespec[i]->random_colour[3] = 0x06;
-
-				/* New houses do not (currently) expect to have a default start
-				 * date before 1930, as this breaks the build date stuff. See
-				 * FinaliseHouseArray() for more details. */
-				if (housespec[i]->min_date < 1930) housespec[i]->min_date = 1930;
-			}
-			_loaded_newgrf_features.has_newhouses = true;
-			break;
-
-		case 0x09: // Building flags
-			FOR_EACH_OBJECT {
-				byte state = grf_load_byte(&buf);
-				housespec[i]->building_flags = (BuildingFlags)state;
-			}
-			break;
-
-		case 0x0A: // Availability years
-			FOR_EACH_OBJECT {
+				if (*house == NULL) *house = CallocT<HouseSpec>(1);
+
+				housespec = *house;
+
+				memcpy(housespec, &_house_specs[subs_id], sizeof(_house_specs[subs_id]));
+
+				housespec->enabled = true;
+				housespec->local_id = hid + i;
+				housespec->substitute_id = subs_id;
+				housespec->grffile = _cur_grffile;
+				housespec->random_colour[0] = 0x04;  // those 4 random colours are the base colour
+				housespec->random_colour[1] = 0x08;  // for all new houses
+				housespec->random_colour[2] = 0x0C;  // they stand for red, blue, orange and green
+				housespec->random_colour[3] = 0x06;
+
+				/**
+				 * New houses do not (currently) expect to have a default start
+				 * date before 1930, as this breaks the build date stuff.
+				 * @see FinaliseHouseArray() for more details.
+				 */
+				if (housespec->min_date < 1930) housespec->min_date = 1930;
+
+				_loaded_newgrf_features.has_newhouses = true;
+			} break;
+
+			case 0x09: // Building flags
+				housespec->building_flags = (BuildingFlags)grf_load_byte(&buf);
+				break;
+
+			case 0x0A: { // Availability years
 				uint16 years = grf_load_word(&buf);
-				housespec[i]->min_date = GB(years, 0, 8) > 150 ? MAX_YEAR : ORIGINAL_BASE_YEAR + GB(years, 0, 8);
-				housespec[i]->max_date = GB(years, 8, 8) > 150 ? MAX_YEAR : ORIGINAL_BASE_YEAR + GB(years, 8, 8);
-			}
-			break;
-
-		case 0x0B: // Population
-			FOR_EACH_OBJECT housespec[i]->population = grf_load_byte(&buf);
-			break;
-
-		case 0x0C: // Mail generation multiplier
-			FOR_EACH_OBJECT housespec[i]->mail_generation = grf_load_byte(&buf);
-			break;
-
-		case 0x0D: // Passenger acceptance
-		case 0x0E: // Mail acceptance
-			FOR_EACH_OBJECT housespec[i]->cargo_acceptance[prop - 0x0D] = grf_load_byte(&buf);
-			break;
-		case 0x0F: // Goods/candy, food/fizzy drinks acceptance
-			FOR_EACH_OBJECT {
+				housespec->min_date = GB(years, 0, 8) > 150 ? MAX_YEAR : ORIGINAL_BASE_YEAR + GB(years, 0, 8);
+				housespec->max_date = GB(years, 8, 8) > 150 ? MAX_YEAR : ORIGINAL_BASE_YEAR + GB(years, 8, 8);
+			} break;
+
+			case 0x0B: // Population
+				housespec->population = grf_load_byte(&buf);
+				break;
+
+			case 0x0C: // Mail generation multiplier
+				housespec->mail_generation = grf_load_byte(&buf);
+				break;
+
+			case 0x0D: // Passenger acceptance
+			case 0x0E: // Mail acceptance
+				housespec->cargo_acceptance[prop - 0x0D] = grf_load_byte(&buf);
+				break;
+
+			case 0x0F: { // Goods/candy, food/fizzy drinks acceptance
 				int8 goods = grf_load_byte(&buf);
 
 				/* If value of goods is negative, it means in fact food or, if in toyland, fizzy_drink acceptance.
 				 * Else, we have "standard" 3rd cargo type, goods or candy, for toyland once more */
-				housespec[i]->accepts_cargo[2] = (goods >= 0) ? ((_opt.landscape == LT_TOYLAND) ? CT_CANDY : CT_GOODS) :
+				housespec->accepts_cargo[2] = (goods >= 0) ? ((_opt.landscape == LT_TOYLAND) ? CT_CANDY : CT_GOODS) :
 						((_opt.landscape == LT_TOYLAND) ? CT_FIZZY_DRINKS : CT_FOOD);
 
-				housespec[i]->cargo_acceptance[2] = abs(goods); // but we do need positive value here
-			}
-			break;
-
-		case 0x10: // Local authority rating decrease on removal
-			FOR_EACH_OBJECT housespec[i]->remove_rating_decrease = grf_load_word(&buf);
-			break;
-
-		case 0x11: // Removal cost multiplier
-			FOR_EACH_OBJECT housespec[i]->removal_cost = grf_load_byte(&buf);
-			break;
-
-		case 0x12: // Building name ID
-			FOR_EACH_OBJECT housespec[i]->building_name = MapGRFStringID(_cur_grffile->grfid, grf_load_word(&buf));
-			break;
-
-		case 0x13: // Building availability mask
-			FOR_EACH_OBJECT {
-				uint16 avail = grf_load_word(&buf);
-				housespec[i]->building_availability = (HouseZones)avail;
-			}
-			break;
-
-		case 0x14: // House callback flags
-			FOR_EACH_OBJECT housespec[i]->callback_mask = grf_load_byte(&buf);
-			break;
-
-		case 0x15: // House override byte
-			FOR_EACH_OBJECT {
+				housespec->cargo_acceptance[2] = abs(goods); // but we do need positive value here
+			} break;
+
+			case 0x10: // Local authority rating decrease on removal
+				housespec->remove_rating_decrease = grf_load_word(&buf);
+				break;
+
+			case 0x11: // Removal cost multiplier
+				housespec->removal_cost = grf_load_byte(&buf);
+				break;
+
+			case 0x12: // Building name ID
+				housespec->building_name = MapGRFStringID(_cur_grffile->grfid, grf_load_word(&buf));
+				break;
+
+			case 0x13: // Building availability mask
+				housespec->building_availability = (HouseZones)grf_load_word(&buf);
+				break;
+
+			case 0x14: // House callback flags
+				housespec->callback_mask = grf_load_byte(&buf);
+				break;
+
+			case 0x15: { // House override byte
 				byte override = grf_load_byte(&buf);
 
 				/* The house being overridden must be an original house. */
 				if (override >= NEW_HOUSE_OFFSET) {
-					grfmsg(2, "TownHouseChangeInfo: Attempt to override new house %u with house id %u. Ignoring.", override, hid);
-					return false;
+					grfmsg(2, "TownHouseChangeInfo: Attempt to override new house %u with house id %u. Ignoring.", override, hid + i);
+					continue;
 				}
 
-				_house_mngr.Add(hid, override);
-			}
-			break;
-
-		case 0x16: // Periodic refresh multiplier
-			FOR_EACH_OBJECT housespec[i]->processing_time = grf_load_byte(&buf);
-			break;
-
-		case 0x17: // Four random colours to use
-			FOR_EACH_OBJECT {
-				uint j;
-				for (j = 0; j < 4; j++) housespec[i]->random_colour[j] = grf_load_byte(&buf);
-			}
-			break;
-
-		case 0x18: // Relative probability of appearing
-			FOR_EACH_OBJECT housespec[i]->probability = grf_load_byte(&buf);
-			break;
-
-		case 0x19: // Extra flags
-			FOR_EACH_OBJECT {
-				byte flags = grf_load_byte(&buf);
-				housespec[i]->extra_flags = (HouseExtraFlags)flags;
-			}
-			break;
-
-		case 0x1A: // Animation frames
-			FOR_EACH_OBJECT housespec[i]->animation_frames = grf_load_byte(&buf);
-			break;
-
-		case 0x1B: // Animation speed
-			FOR_EACH_OBJECT housespec[i]->animation_speed = clamp(grf_load_byte(&buf), 2, 16);
-			break;
-
-		case 0x1C: // Class of the building type
-			FOR_EACH_OBJECT housespec[i]->class_id = AllocateHouseClassID(grf_load_byte(&buf), _cur_grffile->grfid);
-			break;
-
-		case 0x1D: // Callback flags 2
-			FOR_EACH_OBJECT housespec[i]->callback_mask |= (grf_load_byte(&buf) << 8);
-			break;
-
-		case 0x1E: // Accepted cargo types
-			FOR_EACH_OBJECT {
+				_house_mngr.Add(hid + i, override);
+			} break;
+
+			case 0x16: // Periodic refresh multiplier
+				housespec->processing_time = grf_load_byte(&buf);
+				break;
+
+			case 0x17: // Four random colours to use
+				for (uint j = 0; j < 4; j++) housespec->random_colour[j] = grf_load_byte(&buf);
+				break;
+
+			case 0x18: // Relative probability of appearing
+				housespec->probability = grf_load_byte(&buf);
+				break;
+
+			case 0x19: // Extra flags
+				housespec->extra_flags = (HouseExtraFlags)grf_load_byte(&buf);
+				break;
+
+			case 0x1A: // Animation frames
+				housespec->animation_frames = grf_load_byte(&buf);
+				break;
+
+			case 0x1B: // Animation speed
+				housespec->animation_speed = clamp(grf_load_byte(&buf), 2, 16);
+				break;
+
+			case 0x1C: // Class of the building type
+				housespec->class_id = AllocateHouseClassID(grf_load_byte(&buf), _cur_grffile->grfid);
+				break;
+
+			case 0x1D: // Callback flags 2
+				housespec->callback_mask |= (grf_load_byte(&buf) << 8);
+				break;
+
+			case 0x1E: { // Accepted cargo types
 				uint32 cargotypes = grf_load_dword(&buf);
 
 				/* Check if the cargo types should not be changed */
@@ -1430,21 +1361,21 @@
 
 					if (cargo == CT_INVALID) {
 						/* Disable acceptance of invalid cargo type */
-						housespec[i]->cargo_acceptance[j] = 0;
+						housespec->cargo_acceptance[j] = 0;
 					} else {
-						housespec[i]->accepts_cargo[j] = cargo;
+						housespec->accepts_cargo[j] = cargo;
 					}
 				}
-			}
-			break;
-
-		case 0x1F: // Minimum life span
-			FOR_EACH_OBJECT housespec[i]->minimum_life = grf_load_byte(&buf);
-			break;
-
-		default:
-			ret = true;
-			break;
+			} break;
+
+			case 0x1F: // Minimum life span
+				housespec->minimum_life = grf_load_byte(&buf);
+				break;
+
+			default:
+				ret = true;
+				break;
+		}
 	}
 
 	*bufp = buf;
@@ -1454,12 +1385,11 @@
 static bool GlobalVarChangeInfo(uint gvid, int numinfo, int prop, byte **bufp, int len)
 {
 	byte *buf = *bufp;
-	int i;
 	bool ret = false;
 
-	switch (prop) {
-		case 0x08: /* Cost base factor */
-			FOR_EACH_OBJECT {
+	for (int i = 0; i < numinfo; i++) {
+		switch (prop) {
+			case 0x08: { // Cost base factor
 				byte factor = grf_load_byte(&buf);
 				uint price = gvid + i;
 
@@ -1468,28 +1398,24 @@
 				} else {
 					grfmsg(1, "GlobalVarChangeInfo: Price %d out of range, ignoring", price);
 				}
-			}
-			break;
-
-		case 0x09: /* Cargo translation table */
-			/* This is loaded during the initialisation stage, so just skip it here. */
-			/* Each entry is 4 bytes. */
-			buf += numinfo * 4;
-			break;
-
-		case 0x0A: // Currency display names
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x09: // Cargo translation table
+				/* This is loaded during the initialisation stage, so just skip it here. */
+				/* Each entry is 4 bytes. */
+				buf += 4;
+				break;
+
+			case 0x0A: { // Currency display names
 				uint curidx = GetNewgrfCurrencyIdConverted(gvid + i);
 				StringID newone = GetGRFStringID(_cur_grffile->grfid, grf_load_word(&buf));
 
 				if ((newone != STR_UNDEFINED) && (curidx < NUM_CURRENCY)) {
 					_currency_specs[curidx].name = newone;
 				}
-			}
-			break;
-
-		case 0x0B: // Currency multipliers
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x0B: { // Currency multipliers
 				uint curidx = GetNewgrfCurrencyIdConverted(gvid + i);
 				uint32 rate = grf_load_dword(&buf);
 
@@ -1501,11 +1427,9 @@
 				} else {
 					grfmsg(1, "GlobalVarChangeInfo: Currency multipliers %d out of range, ignoring", curidx);
 				}
-			}
-			break;
-
-		case 0x0C: // Currency options
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x0C: { // Currency options
 				uint curidx = GetNewgrfCurrencyIdConverted(gvid + i);
 				uint16 options = grf_load_word(&buf);
 
@@ -1517,25 +1441,21 @@
 				} else {
 					grfmsg(1, "GlobalVarChangeInfo: Currency option %d out of range, ignoring", curidx);
 				}
-			}
-			break;
-
-		case 0x0D: // Currency prefix symbol
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x0D: { // Currency prefix symbol
 				uint curidx = GetNewgrfCurrencyIdConverted(gvid + i);
 				uint32 tempfix = grf_load_dword(&buf);
 
 				if (curidx < NUM_CURRENCY) {
-					memcpy(_currency_specs[curidx].prefix,&tempfix,4);
+					memcpy(_currency_specs[curidx].prefix, &tempfix, 4);
 					_currency_specs[curidx].prefix[4] = 0;
 				} else {
 					grfmsg(1, "GlobalVarChangeInfo: Currency symbol %d out of range, ignoring", curidx);
 				}
-			}
-			break;
-
-		case 0x0E: // Currency suffix symbol
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x0E: { // Currency suffix symbol
 				uint curidx = GetNewgrfCurrencyIdConverted(gvid + i);
 				uint32 tempfix = grf_load_dword(&buf);
 
@@ -1545,11 +1465,9 @@
 				} else {
 					grfmsg(1, "GlobalVarChangeInfo: Currency symbol %d out of range, ignoring", curidx);
 				}
-			}
-			break;
-
-		case 0x0F: //  Euro introduction dates
-			FOR_EACH_OBJECT {
+			} break;
+
+			case 0x0F: { //  Euro introduction dates
 				uint curidx = GetNewgrfCurrencyIdConverted(gvid + i);
 				Year year_euro = grf_load_word(&buf);
 
@@ -1558,28 +1476,29 @@
 				} else {
 					grfmsg(1, "GlobalVarChangeInfo: Euro intro date %d out of range, ignoring", curidx);
 				}
-			}
-			break;
-
-		case 0x10: // 12 * 32 * B Snow line height table
-			if (numinfo > 1 || IsSnowLineSet()) {
-				grfmsg(1, "GlobalVarChangeInfo: The snowline can only be set once (%d)", numinfo);
-			} else if (len < SNOW_LINE_MONTHS * SNOW_LINE_DAYS) {
-				grfmsg(1, "GlobalVarChangeInfo: Not enough entries set in the snowline table (%d)", len);
-			} else {
-				byte table[SNOW_LINE_MONTHS][SNOW_LINE_DAYS];
-
-				for (uint i = 0; i < SNOW_LINE_MONTHS; i++) {
-					for (uint j = 0; j < SNOW_LINE_DAYS; j++) {
-						table[i][j] = grf_load_byte(&buf);
+			} break;
+
+			case 0x10: // Snow line height table
+				if (numinfo > 1 || IsSnowLineSet()) {
+					grfmsg(1, "GlobalVarChangeInfo: The snowline can only be set once (%d)", numinfo);
+				} else if (len < SNOW_LINE_MONTHS * SNOW_LINE_DAYS) {
+					grfmsg(1, "GlobalVarChangeInfo: Not enough entries set in the snowline table (%d)", len);
+				} else {
+					byte table[SNOW_LINE_MONTHS][SNOW_LINE_DAYS];
+
+					for (uint i = 0; i < SNOW_LINE_MONTHS; i++) {
+						for (uint j = 0; j < SNOW_LINE_DAYS; j++) {
+							table[i][j] = grf_load_byte(&buf);
+						}
 					}
+					SetSnowLine(table);
 				}
-				SetSnowLine(table);
-			}
-			break;
-
-		default:
-			ret = true;
+				break;
+
+			default:
+				ret = true;
+				break;
+		}
 	}
 
 	*bufp = buf;
@@ -1588,120 +1507,118 @@
 
 static bool CargoChangeInfo(uint cid, int numinfo, int prop, byte **bufp, int len)
 {
+	byte *buf = *bufp;
+	bool ret = false;
+
 	if (cid + numinfo > NUM_CARGO) {
 		grfmsg(2, "CargoChangeInfo: Cargo type %d out of range (max %d)", cid + numinfo, NUM_CARGO - 1);
 		return false;
 	}
 
-	CargoSpec *cs = &_cargo[cid];
-	byte *buf = *bufp;
-	int i;
-	bool ret = false;
-
-	switch (prop) {
-		case 0x08: /* Bit number of cargo */
-			FOR_EACH_OBJECT {
-				cs[i].bitnum = grf_load_byte(&buf);
-				cs[i].grfid = _cur_grffile->grfid;
+	for (int i = 0; i < numinfo; i++) {
+		CargoSpec *cs = &_cargo[cid + i];
+
+		switch (prop) {
+			case 0x08: /* Bit number of cargo */
+				cs->bitnum = grf_load_byte(&buf);
+				cs->grfid = _cur_grffile->grfid;
 				if (cs->IsValid()) {
 					SETBIT(_cargo_mask, cid + i);
 				} else {
 					CLRBIT(_cargo_mask, cid + i);
 				}
-			}
-			break;
-
-		case 0x09: /* String ID for cargo type name */
-			FOR_EACH_OBJECT cs[i].name = grf_load_word(&buf);
-			break;
-
-		case 0x0A: /* String for cargo name, plural */
-			FOR_EACH_OBJECT cs[i].name_plural = grf_load_word(&buf);
-			break;
-
-		case 0x0B:
-			/* String for units of cargo. This is different in OpenTTD to TTDPatch
-			 * (e.g. 10 tonnes of coal) */
-			FOR_EACH_OBJECT cs[i].units_volume = grf_load_word(&buf);
-			break;
-
-		case 0x0C: /* String for quantity of cargo (e.g. 10 tonnes of coal) */
-			FOR_EACH_OBJECT cs[i].quantifier = grf_load_word(&buf);
-			break;
-
-		case 0x0D: /* String for two letter cargo abbreviation */
-			FOR_EACH_OBJECT cs[i].abbrev = grf_load_word(&buf);
-			break;
-
-		case 0x0E: /* Sprite ID for cargo icon */
-			FOR_EACH_OBJECT cs[i].sprite = grf_load_word(&buf);
-			break;
-
-		case 0x0F: /* Weight of one unit of cargo */
-			FOR_EACH_OBJECT cs[i].weight = grf_load_byte(&buf);
-			break;
-
-		case 0x10: /* Used for payment calculation */
-			FOR_EACH_OBJECT cs[i].transit_days[0] = grf_load_byte(&buf);
-			break;
-
-		case 0x11: /* Used for payment calculation */
-			FOR_EACH_OBJECT cs[i].transit_days[1] = grf_load_byte(&buf);
-			break;
-
-		case 0x12: /* Base cargo price */
-			FOR_EACH_OBJECT cs[i].initial_payment = grf_load_dword(&buf);
-			break;
-
-		case 0x13: /* Colour for station rating bars */
-			FOR_EACH_OBJECT cs[i].rating_colour = MapDOSColour(grf_load_byte(&buf));
-			break;
-
-		case 0x14: /* Colour for cargo graph */
-			FOR_EACH_OBJECT cs[i].legend_colour = MapDOSColour(grf_load_byte(&buf));
-			break;
-
-		case 0x15: /* Freight status */
-			FOR_EACH_OBJECT cs[i].is_freight = grf_load_byte(&buf) != 0;
-			break;
-
-		case 0x16: /* Cargo classes */
-			FOR_EACH_OBJECT cs[i].classes = grf_load_word(&buf);
-			break;
-
-		case 0x17: /* Cargo label */
-			FOR_EACH_OBJECT {
-				cs[i].label = grf_load_dword(&buf);
-				cs[i].label = BSWAP32(cs[i].label);
-			}
-			break;
-
-		case 0x18: /* Town growth substitute type */
-			FOR_EACH_OBJECT {
+				break;
+
+			case 0x09: /* String ID for cargo type name */
+				cs->name = grf_load_word(&buf);
+				break;
+
+			case 0x0A: /* String for cargo name, plural */
+				cs->name_plural = grf_load_word(&buf);
+				break;
+
+			case 0x0B:
+				/* String for units of cargo. This is different in OpenTTD to TTDPatch
+				 * (e.g. 10 tonnes of coal) */
+				cs->units_volume = grf_load_word(&buf);
+				break;
+
+			case 0x0C: /* String for quantity of cargo (e.g. 10 tonnes of coal) */
+				cs->quantifier = grf_load_word(&buf);
+				break;
+
+			case 0x0D: /* String for two letter cargo abbreviation */
+				cs->abbrev = grf_load_word(&buf);
+				break;
+
+			case 0x0E: /* Sprite ID for cargo icon */
+				cs->sprite = grf_load_word(&buf);
+				break;
+
+			case 0x0F: /* Weight of one unit of cargo */
+				cs->weight = grf_load_byte(&buf);
+				break;
+
+			case 0x10: /* Used for payment calculation */
+				cs->transit_days[0] = grf_load_byte(&buf);
+				break;
+
+			case 0x11: /* Used for payment calculation */
+				cs->transit_days[1] = grf_load_byte(&buf);
+				break;
+
+			case 0x12: /* Base cargo price */
+				cs->initial_payment = grf_load_dword(&buf);
+				break;
+
+			case 0x13: /* Colour for station rating bars */
+				cs->rating_colour = MapDOSColour(grf_load_byte(&buf));
+				break;
+
+			case 0x14: /* Colour for cargo graph */
+				cs->legend_colour = MapDOSColour(grf_load_byte(&buf));
+				break;
+
+			case 0x15: /* Freight status */
+				cs->is_freight = (grf_load_byte(&buf) != 0);
+				break;
+
+			case 0x16: /* Cargo classes */
+				cs->classes = grf_load_word(&buf);
+				break;
+
+			case 0x17: /* Cargo label */
+				cs->label = grf_load_dword(&buf);
+				cs->label = BSWAP32(cs->label);
+				break;
+
+			case 0x18: { /* Town growth substitute type */
 				uint8 substitute_type = grf_load_byte(&buf);
+
 				switch (substitute_type) {
-					case 0x00: cs[i].town_effect = TE_PASSENGERS; break;
-					case 0x02: cs[i].town_effect = TE_MAIL; break;
-					case 0x05: cs[i].town_effect = TE_GOODS; break;
-					case 0x09: cs[i].town_effect = TE_WATER; break;
-					case 0x0B: cs[i].town_effect = TE_FOOD; break;
+					case 0x00: cs->town_effect = TE_PASSENGERS; break;
+					case 0x02: cs->town_effect = TE_MAIL; break;
+					case 0x05: cs->town_effect = TE_GOODS; break;
+					case 0x09: cs->town_effect = TE_WATER; break;
+					case 0x0B: cs->town_effect = TE_FOOD; break;
 					default:
 						grfmsg(1, "CargoChangeInfo: Unknown town growth substitute value %d, setting to none.", substitute_type);
-					case 0xFF: cs[i].town_effect = TE_NONE; break;
+					case 0xFF: cs->town_effect = TE_NONE; break;
 				}
-			}
-			break;
-
-		case 0x19: /* Town growth coefficient */
-			FOR_EACH_OBJECT cs[i].multipliertowngrowth = grf_load_word(&buf);
-			break;
-
-		case 0x1A: /* Bitmask of callbacks to use */
-			FOR_EACH_OBJECT cs[i].callback_mask = grf_load_byte(&buf);
-			break;
-
-		default:
-			ret = true;
+			} break;
+
+			case 0x19: /* Town growth coefficient */
+				cs->multipliertowngrowth = grf_load_word(&buf);
+				break;
+
+			case 0x1A: /* Bitmask of callbacks to use */
+				cs->callback_mask = grf_load_byte(&buf);
+				break;
+
+			default:
+				ret = true;
+				break;
+		}
 	}
 
 	*bufp = buf;
@@ -1712,7 +1629,6 @@
 static bool SoundEffectChangeInfo(uint sid, int numinfo, int prop, byte **bufp, int len)
 {
 	byte *buf = *bufp;
-	int i;
 	bool ret = false;
 
 	if (_cur_grffile->sound_offset == 0) {
@@ -1720,38 +1636,28 @@
 		return false;
 	}
 
-	switch (prop) {
-		case 0x08: // Relative volume
-			FOR_EACH_OBJECT {
-				uint sound = sid + i + _cur_grffile->sound_offset - GetNumOriginalSounds();
-
-				if (sound >= GetNumSounds()) {
-					grfmsg(1, "SoundEffectChangeInfo: Sound %d not defined (max %d)", sound, GetNumSounds());
-				} else {
-					GetSound(sound)->volume = grf_load_byte(&buf);
-				}
-			}
-			break;
-
-		case 0x09: // Priority
-			FOR_EACH_OBJECT {
-				uint sound = sid + i + _cur_grffile->sound_offset - GetNumOriginalSounds();
-
-				if (sound >= GetNumSounds()) {
-					grfmsg(1, "SoundEffectChangeInfo: Sound %d not defined (max %d)", sound, GetNumSounds());
-				} else {
-					GetSound(sound)->priority = grf_load_byte(&buf);
-				}
-			}
-			break;
-
-		case 0x0A: // Override old sound
-			FOR_EACH_OBJECT {
-				uint sound = sid + i + _cur_grffile->sound_offset - GetNumOriginalSounds();
+	for (int i = 0; i < numinfo; i++) {
+		uint sound = sid + i + _cur_grffile->sound_offset - GetNumOriginalSounds();
+
+		if (sound >= GetNumSounds()) {
+			grfmsg(1, "SoundEffectChangeInfo: Sound %d not defined (max %d)", sound, GetNumSounds());
+			continue;
+		}
+
+		switch (prop) {
+			case 0x08: // Relative volume
+				GetSound(sound)->volume = grf_load_byte(&buf);
+				break;
+
+			case 0x09: // Priority
+				GetSound(sound)->priority = grf_load_byte(&buf);
+				break;
+
+			case 0x0A: { // Override old sound
 				uint orig_sound = grf_load_byte(&buf);
 
-				if (sound >= GetNumSounds() || orig_sound >= GetNumSounds()) {
-					grfmsg(1, "SoundEffectChangeInfo: Sound %d or %d not defined (max %d)", sound, orig_sound, GetNumSounds());
+				if (orig_sound >= GetNumSounds()) {
+					grfmsg(1, "SoundEffectChangeInfo: Original sound %d not defined (max %d)", orig_sound, GetNumSounds());
 				} else {
 					FileEntry *newfe = GetSound(sound);
 					FileEntry *oldfe = GetSound(orig_sound);
@@ -1759,11 +1665,12 @@
 					/* Literally copy the data of the new sound over the original */
 					*oldfe = *newfe;
 				}
-			}
-			break;
-
-		default:
-			ret = true;
+			} break;
+
+			default:
+				ret = true;
+				break;
+		}
 	}
 
 	*bufp = buf;
@@ -1774,7 +1681,6 @@
 static void FeatureChangeInfo(byte *buf, int len)
 {
 	byte *bufend = buf + len;
-	uint i;
 
 	/* <00> <feature> <num-props> <num-info> <id> (<property <new-info>)...
 	 *
@@ -1805,8 +1711,6 @@
 		/* GSF_SOUNDFX */      SoundEffectChangeInfo,
 	};
 
-	EngineInfo *ei = NULL;
-
 	if (!check_length(len, 6, "FeatureChangeInfo")) return;
 	buf++;
 	uint8 feature  = grf_load_byte(&buf);
@@ -1827,7 +1731,6 @@
 			grfmsg(0, "FeatureChangeInfo: Last engine ID %d out of bounds (max %d), skipping", engine + numinfo, _vehcounts[feature]);
 			return;
 		}
-		ei = &_engine_info[engine + _vehshifts[feature]];
 	}
 
 	while (numprops-- && buf < bufend) {
@@ -1838,43 +1741,49 @@
 			case GSF_TRAIN:
 			case GSF_ROAD:
 			case GSF_SHIP:
-			case GSF_AIRCRAFT:
-				/* Common properties for vehicles */
-				switch (prop) {
-					case 0x00: // Introduction date
-						FOR_EACH_OBJECT ei[i].base_intro = grf_load_word(&buf) + DAYS_TILL_ORIGINAL_BASE_YEAR;
-						break;
-
-					case 0x02: // Decay speed
-						FOR_EACH_OBJECT SB(ei[i].unk2, 0, 7, grf_load_byte(&buf) & 0x7F);
-						break;
-
-					case 0x03: // Vehicle life
-						FOR_EACH_OBJECT ei[i].lifelength = grf_load_byte(&buf);
-						break;
-
-					case 0x04: // Model life
-						FOR_EACH_OBJECT ei[i].base_life = grf_load_byte(&buf);
-						break;
-
-					case 0x06: // Climates available
-						FOR_EACH_OBJECT ei[i].climates = grf_load_byte(&buf);
-						break;
-
-					case 0x07: // Loading speed
-						/* Hyronymus explained me what does
-						 * this mean and insists on having a
-						 * credit ;-). --pasky */
-						FOR_EACH_OBJECT ei[i].load_amount = grf_load_byte(&buf);
-						break;
-
-					default:
-						if (handler[feature](engine, numinfo, prop, &buf, bufend - buf)) {
-							ignoring = true;
-						}
-						break;
+			case GSF_AIRCRAFT: {
+				bool handled = true;
+
+				for (uint i = 0; i < numinfo; i++) {
+					EngineInfo *ei = &_engine_info[engine + _vehshifts[feature] + i];
+
+					/* Common properties for vehicles */
+					switch (prop) {
+						case 0x00: // Introduction date
+							ei->base_intro = grf_load_word(&buf) + DAYS_TILL_ORIGINAL_BASE_YEAR;
+							break;
+
+						case 0x02: // Decay speed
+							SB(ei->unk2, 0, 7, grf_load_byte(&buf) & 0x7F);
+							break;
+
+						case 0x03: // Vehicle life
+							ei->lifelength = grf_load_byte(&buf);
+							break;
+
+						case 0x04: // Model life
+							ei->base_life = grf_load_byte(&buf);
+							break;
+
+						case 0x06: // Climates available
+							ei->climates = grf_load_byte(&buf);
+							break;
+
+						case 0x07: // Loading speed
+							/* Hyronymus explained me what does
+							 * this mean and insists on having a
+							 * credit ;-). --pasky */
+							ei->load_amount = grf_load_byte(&buf);
+							break;
+
+						default:
+							handled = false;
+							break;
+					}
 				}
-				break;
+
+				if (handled) break;
+			} /* FALL THROUGH */
 
 			default:
 				if (handler[feature](engine, numinfo, prop, &buf, bufend - buf)) {
@@ -1938,8 +1847,7 @@
 						_cur_grffile->cargo_max = numinfo;
 						_cur_grffile->cargo_list = MallocT<CargoLabel>(numinfo);
 
-						int i;
-						FOR_EACH_OBJECT {
+						for (uint i = 0; i < numinfo; i++) {
 							CargoLabel cl = grf_load_dword(&buf);
 							_cur_grffile->cargo_list[i] = BSWAP32(cl);
 						}
@@ -1974,8 +1882,6 @@
 	}
 }
 
-#undef FOR_EACH_OBJECT
-
 /**
  * Creates a spritegroup representing a callback result
  * @param value The value that was used to represent this callback result
@@ -2301,7 +2207,8 @@
 					break;
 				}
 
-				case GSF_TOWNHOUSE: {
+				case GSF_TOWNHOUSE:
+				case GSF_INDUSTRYTILES: {
 					byte sprites     = _cur_grffile->spriteset_numents;
 					byte num_sprites = max((uint8)1, type);
 					uint i;
@@ -2381,6 +2288,35 @@
 					break;
 				}
 
+				case GSF_INDUSTRIES: {
+					if (type > 1) {
+						grfmsg(1, "NewSpriteGroup: Unsupported industry production version %d, skipping", type);
+						break;
+					}
+
+					group = AllocateSpriteGroup();
+					group->type = SGT_INDUSTRY_PRODUCTION;
+					group->g.indprod.version = type;
+					if (type == 0) {
+						for (uint i = 0; i < 3; i++) {
+							group->g.indprod.substract_input[i] = grf_load_word(&buf);
+						}
+						for (uint i = 0; i < 2; i++) {
+							group->g.indprod.add_output[i] = grf_load_word(&buf);
+						}
+						group->g.indprod.again = grf_load_byte(&buf);
+					} else {
+						for (uint i = 0; i < 3; i++) {
+							group->g.indprod.substract_input[i] = grf_load_byte(&buf);
+						}
+						for (uint i = 0; i < 2; i++) {
+							group->g.indprod.add_output[i] = grf_load_byte(&buf);
+						}
+						group->g.indprod.again = grf_load_byte(&buf);
+					}
+					break;
+				}
+
 				/* Loading of Tile Layout and Production Callback groups would happen here */
 				default: grfmsg(1, "NewSpriteGroup: Unsupported feature %d, skipping", feature);
 			}
@@ -2787,6 +2723,11 @@
 				}
 				break;
 
+			case GSF_INDUSTRIES: {
+				AddGRFString(_cur_grffile->grfid, id, lang, new_scheme, name, STR_UNDEFINED);
+				break;
+			}
+
 			case GSF_TOWNHOUSE:
 			default:
 				switch (GB(id, 8, 8)) {
@@ -2837,10 +2778,6 @@
 					}
 					break;
 
-				case GSF_INDUSTRIES :
-				case 0x48 :   // for generic strings
-					AddGRFString(_cur_spriteid, id, lang, name);
-					break;
 				default :
 					grfmsg(7, "FeatureNewName: Unsupported feature (0x%02X)", feature);
 					break;
@@ -4833,6 +4770,33 @@
 	}
 }
 
+/** Add all new industries to the industry array. Industry properties can be set at any
+ * time in the GRF file, so we can only add a industry spec to the industry array
+ * after the file has finished loading. */
+static void FinaliseIndustriesArray()
+{
+	for (GRFFile *file = _first_grffile; file != NULL; file = file->next) {
+		if (file->industryspec != NULL) {
+			for (int i = 0; i < NUM_INDUSTRYTYPES; i++) {
+				IndustrySpec *indsp = file->industryspec[i];
+
+				if (indsp != NULL  && indsp->enabled) {
+					_industry_mngr.SetEntitySpec(indsp);
+					_loaded_newgrf_features.has_newindustries = true;
+				}
+			}
+		}
+
+		if (file->indtspec != NULL) {
+			for (int i = 0; i < NUM_INDUSTRYTILES; i++) {
+				IndustryTileSpec *indtsp = file->indtspec[i];
+				if (indtsp != NULL) {
+					_industile_mngr.SetEntitySpec(indtsp);
+				}
+			}
+		}
+	}
+}
 
 /** Each cargo string needs to be mapped from TTDPatch to OpenTTD string IDs.
  * This is done after loading so that strings from Action 4 will be mapped
@@ -5039,6 +5003,9 @@
 	/* Add all new houses to the house array. */
 	FinaliseHouseArray();
 
+	/* Add all new industries to the industry array. */
+	FinaliseIndustriesArray();
+
 	/* Create dynamic list of industry legends for smallmap_gui.cpp */
 	BuildIndustriesLegend();
 
--- a/src/newgrf_callbacks.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/newgrf_callbacks.h	Sat Jul 07 09:20:52 2007 +0000
@@ -12,6 +12,9 @@
  * Names are formatted as CBID_<CLASS>_<CALLBACK>
  */
 enum CallbackID {
+	/* Set when calling a randomizing trigger (almost undocumented) */
+	CBID_RANDOM_TRIGGER             = 0x01,
+
 	/* Powered wagons, if the result is lower as 0x40 then the wagon is powered
 	 * @todo : interpret the rest of the result, aka "visual effects" */
 	CBID_TRAIN_WAGON_POWER          = 0x10,
--- a/src/newgrf_engine.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/newgrf_engine.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -1014,7 +1014,7 @@
 	assert(v != NULL);
 
 	NewVehicleResolver(&object, v->engine_type, v);
-
+	object.callback = CBID_RANDOM_TRIGGER;
 	object.trigger = trigger;
 
 	group = Resolve(GetVehicleSpriteGroup(v->engine_type, v), &object);
--- a/src/newgrf_industries.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/newgrf_industries.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -14,6 +14,7 @@
 #include "newgrf_spritegroup.h"
 #include "newgrf_industries.h"
 #include "newgrf_commons.h"
+#include "date.h"
 
 /* Since the industry IDs defined by the GRF file don't necessarily correlate
  * to those used by the game, the IDs used for overriding old industries must be
@@ -123,8 +124,8 @@
 		case 0x41:
 		case 0x42: { // waiting cargo, but only if those two callback flags are set
 			uint16 callback = indspec->callback_flags;
-			if (callback & (CBM_IND_PRODUCTION_CARGO_ARRIVAL | callback & CBM_IND_PRODUCTION_256_TICKS)) {
-				return max(industry->cargo_waiting[variable - 0x40], (uint16)0x7FFF);
+			if (HASBIT(callback, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HASBIT(callback, CBM_IND_PRODUCTION_256_TICKS)) {
+				return max(industry->incoming_cargo_waiting[variable - 0x40], (uint16)0xFFFF);
 			} else {
 				return 0;
 			}
@@ -151,15 +152,6 @@
 		 * let's just say it is a beginning ;) */
 		case 0x67: return GetIndustryTypeCount(industry->type) << 16 | 0;
 
-		/* Industry founder information.
-		 * 0x10 if randomly created or from a map pre-newindustry.
-		 * Else, the company who funded it */
-		case 0xA7: return 0x10;
-
-		case 0xB0: // Date when built since 1920 (in days)
-		case 0xB3: // Construction type
-		case 0xB4: break; // Date last cargo accepted since 1920 (in days)
-
 		/* Industry structure access*/
 		case 0x80: return industry->xy;
 		case 0x81: return GB(industry->xy, 8, 8);
@@ -167,16 +159,16 @@
 		case 0x82:
 		case 0x83:
 		case 0x84:
-		case 0x85: break; // not supported
+		case 0x85: DEBUG(grf, 0, "NewGRFs shouldn't be doing pointer magic"); break; // not supported
 		case 0x86: return industry->width;
 		case 0x87: return industry->height;// xy dimensions
 		/*  */
 		case 0x88:
 		case 0x89: return indspec->produced_cargo[variable - 0x88];
-		case 0x8A: return industry->cargo_waiting[0];
-		case 0x8B: return GB(industry->cargo_waiting[0], 8, 8);
-		case 0x8C: return industry->cargo_waiting[1];
-		case 0x8D: return GB(industry->cargo_waiting[1], 8, 8);
+		case 0x8A: return industry->produced_cargo_waiting[0];
+		case 0x8B: return GB(industry->produced_cargo_waiting[0], 8, 8);
+		case 0x8C: return industry->produced_cargo_waiting[1];
+		case 0x8D: return GB(industry->produced_cargo_waiting[1], 8, 8);
 		case 0x8E:
 		case 0x8F: return industry->production_rate[variable - 0x8E];
 		case 0x90:
@@ -208,12 +200,16 @@
 		case 0xA5: return GB(industry->last_month_transported[0], 8, 8);
 
 		case 0xA6: return industry->type;
-
+		case 0xA7: return industry->founder;
 		case 0xA8: return industry->random_color;
-		case 0xA9: return industry->last_prod_year; // capped?
+		case 0xA9: return clamp(0, industry->last_prod_year - 1920, 255);
 		case 0xAA: return industry->counter;
 		case 0xAB: return GB(industry->counter, 8, 8);
 		case 0xAC: return industry->was_cargo_delivered;
+
+		case 0xB0: return clamp(0, industry->construction_date - DAYS_TILL_ORIGINAL_BASE_YEAR, 65535); // Date when built since 1920 (in days)
+		case 0xB3: return industry->construction_type; // Construction type
+		case 0xB4: return clamp(0, industry->last_cargo_accepted_at - DAYS_TILL_ORIGINAL_BASE_YEAR, 65535); // Date last cargo accepted since 1920 (in days)
 	}
 
 	DEBUG(grf, 1, "Unhandled industry property 0x%X", variable);
@@ -248,7 +244,7 @@
 	res->reseed          = 0;
 }
 
-uint16 GetIndustryCallback(uint16 callback, uint32 param1, uint32 param2, Industry *industry, TileIndex tile)
+uint16 GetIndustryCallback(uint16 callback, uint32 param1, uint32 param2, Industry *industry, IndustryType type, TileIndex tile)
 {
 	ResolverObject object;
 	const SpriteGroup *group;
@@ -258,8 +254,45 @@
 	object.callback_param1 = param1;
 	object.callback_param2 = param2;
 
-	group = Resolve(GetIndustrySpec(industry->type)->grf_prop.spritegroup, &object);
+	group = Resolve(GetIndustrySpec(type)->grf_prop.spritegroup, &object);
 	if (group == NULL || group->type != SGT_CALLBACK) return CALLBACK_FAILED;
 
 	return group->g.callback.result;
 }
+
+static int32 DerefIndProd(uint field, bool use_register)
+{
+	return use_register ? (int32)GetRegister(field) : field;
+}
+
+/**
+ * Get the industry production callback and apply it to the industry.
+ * @param ind    the industry this callback has to be called for
+ * @param reason the reason it is called (0 = incoming cargo, 1 = periodic tick callback)
+ */
+void IndustryProductionCallback(Industry *ind, int reason)
+{
+	ResolverObject object;
+	NewIndustryResolver(&object, INVALID_TILE, ind);
+	object.callback_param2 = reason;
+
+	for (uint loop = 0;; loop++) {
+		SB(object.callback_param2, 8, 16, loop);
+		const SpriteGroup *group = Resolve(GetIndustrySpec(ind->type)->grf_prop.spritegroup, &object);
+		if (group == NULL || group->type != SGT_INDUSTRY_PRODUCTION) break;
+
+		bool deref = (group->g.indprod.version == 1);
+
+		for (uint i = 0; i < 3; i++) {
+			ind->incoming_cargo_waiting[i] = clamp(ind->incoming_cargo_waiting[i] - DerefIndProd(group->g.indprod.substract_input[i], deref), 0, 0xFFFF);
+		}
+		for (uint i = 0; i < 2; i++) {
+			ind->produced_cargo_waiting[i] = clamp(ind->produced_cargo_waiting[i] + DerefIndProd(group->g.indprod.add_output[i], deref), 0, 0xFFFF);
+		}
+
+		int32 again = DerefIndProd(group->g.indprod.again, deref);
+		if (again == 0) break;
+
+		SB(object.callback_param2, 24, 8, again);
+	}
+}
--- a/src/newgrf_industries.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/newgrf_industries.h	Sat Jul 07 09:20:52 2007 +0000
@@ -10,8 +10,9 @@
 
 /* in newgrf_industry.cpp */
 uint32 IndustryGetVariable(const ResolverObject *object, byte variable, byte parameter, bool *available);
-uint16 GetIndustryCallback(uint16 callback, uint32 param1, uint32 param2, Industry *industry, TileIndex tile);
+uint16 GetIndustryCallback(uint16 callback, uint32 param1, uint32 param2, Industry *industry, IndustryType type, TileIndex tile);
 uint32 GetIndustryIDAtOffset(TileIndex new_tile, TileIndex old_tile, const Industry *i);
+void IndustryProductionCallback(Industry *ind, int reason);
 
 /* in newgrf_industrytiles.cpp*/
 uint32 IndustryTileGetRandomBits(const ResolverObject *object);
--- a/src/newgrf_spritegroup.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/newgrf_spritegroup.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -76,7 +76,7 @@
 	_spritegroup_count = 0;
 }
 
-static uint32 _temp_store[0x110];
+uint32 _temp_store[0x110];
 
 
 static inline uint32 GetVariable(const ResolverObject *object, byte variable, byte parameter, bool *available)
--- a/src/newgrf_spritegroup.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/newgrf_spritegroup.h	Sat Jul 07 09:20:52 2007 +0000
@@ -8,6 +8,19 @@
 #include "town.h"
 #include "industry.h"
 
+/**
+ * Gets the value of a so-called newgrf "register".
+ * @param i index of the register
+ * @pre i < 0x110
+ * @return the value of the register
+ */
+static inline uint32 GetRegister(uint i)
+{
+	assert(i < 0x110);
+	extern uint32 _temp_store[0x110];
+	return _temp_store[i];
+}
+
 struct SpriteGroup;
 
 
@@ -135,6 +148,13 @@
 	struct DrawTileSprites *dts;
 };
 
+struct IndustryProductionSpriteGroup {
+	uint8 version;
+	uint16 substract_input[3];
+	uint16 add_output[2];
+	uint8 again;
+};
+
 /* List of different sprite group types */
 enum SpriteGroupType {
 	SGT_INVALID,
@@ -144,6 +164,7 @@
 	SGT_CALLBACK,
 	SGT_RESULT,
 	SGT_TILELAYOUT,
+	SGT_INDUSTRY_PRODUCTION,
 };
 
 /* Common wrapper for all the different sprite group types */
@@ -157,6 +178,7 @@
 		CallbackResultSpriteGroup callback;
 		ResultSpriteGroup result;
 		TileLayoutSpriteGroup layout;
+		IndustryProductionSpriteGroup indprod;
 	} g;
 };
 
--- a/src/newgrf_station.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/newgrf_station.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -291,18 +291,18 @@
 static uint32 GetRailContinuationInfo(TileIndex tile)
 {
 	/* Tile offsets and exit dirs for X axis */
-	static Direction x_dir[8] = { DIR_SW, DIR_NE, DIR_SE, DIR_NW, DIR_S, DIR_E, DIR_W, DIR_N };
-	static DiagDirection x_exits[8] = { DIAGDIR_SW, DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_NW, DIAGDIR_SW, DIAGDIR_NE, DIAGDIR_SW, DIAGDIR_NE };
+	static const Direction x_dir[8] = { DIR_SW, DIR_NE, DIR_SE, DIR_NW, DIR_S, DIR_E, DIR_W, DIR_N };
+	static const DiagDirection x_exits[8] = { DIAGDIR_SW, DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_NW, DIAGDIR_SW, DIAGDIR_NE, DIAGDIR_SW, DIAGDIR_NE };
 
 	/* Tile offsets and exit dirs for Y axis */
-	static Direction y_dir[8] = { DIR_SE, DIR_NW, DIR_SW, DIR_NE, DIR_S, DIR_W, DIR_E, DIR_N };
-	static DiagDirection y_exits[8] = { DIAGDIR_SE, DIAGDIR_NW, DIAGDIR_SW, DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_NW, DIAGDIR_SE, DIAGDIR_NW };
+	static const Direction y_dir[8] = { DIR_SE, DIR_NW, DIR_SW, DIR_NE, DIR_S, DIR_W, DIR_E, DIR_N };
+	static const DiagDirection y_exits[8] = { DIAGDIR_SE, DIAGDIR_NW, DIAGDIR_SW, DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_NW, DIAGDIR_SE, DIAGDIR_NW };
 
 	Axis axis = IsTileType(tile, MP_RAILWAY) ? GetWaypointAxis(tile) : GetRailStationAxis(tile);
 
 	/* Choose appropriate lookup table to use */
-	Direction *dir = axis == AXIS_X ? x_dir : y_dir;
-	DiagDirection *diagdir = axis == AXIS_X ? x_exits : y_exits;
+	const Direction *dir = axis == AXIS_X ? x_dir : y_dir;
+	const DiagDirection *diagdir = axis == AXIS_X ? x_exits : y_exits;
 
 	uint32 res = 0;
 	uint i;
--- a/src/newgrf_town.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/newgrf_town.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -53,7 +53,6 @@
 		case 0xA3: return t->ratings[5];
 		case 0xA4: return t->ratings[6];
 		case 0xA5: return t->ratings[7];
-		case 0xA6: return t->ratings[8];
 		case 0xAE: return t->have_ratings;
 		case 0xB2: return t->statues;
 		case 0xB6: return t->num_houses;
--- a/src/npf.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/npf.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -877,7 +877,13 @@
 
 void InitializeNPF()
 {
-	init_AyStar(&_npf_aystar, NPFHash, NPF_HASH_SIZE);
+	static bool first_init = true;
+	if (first_init) {
+		first_init = false;
+		init_AyStar(&_npf_aystar, NPFHash, NPF_HASH_SIZE);
+	} else {
+		AyStarMain_Clear(&_npf_aystar);
+	}
 	_npf_aystar.loops_per_tick = 0;
 	_npf_aystar.max_path_cost = 0;
 	//_npf_aystar.max_search_nodes = 0;
--- a/src/oldloader.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/oldloader.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -670,8 +670,8 @@
 	OCL_SVAR(  OC_UINT8, Industry, height ),
 	OCL_NULL( 2 ),  ///< used to be industry's produced_cargo
 
-	OCL_SVAR( OC_UINT16, Industry, cargo_waiting[0] ),
-	OCL_SVAR( OC_UINT16, Industry, cargo_waiting[1] ),
+	OCL_SVAR( OC_UINT16, Industry, produced_cargo_waiting[0] ),
+	OCL_SVAR( OC_UINT16, Industry, produced_cargo_waiting[1] ),
 
 	OCL_SVAR(  OC_UINT8, Industry, production_rate[0] ),
 	OCL_SVAR(  OC_UINT8, Industry, production_rate[1] ),
--- a/src/openttd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/openttd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -42,7 +42,6 @@
 #include "sound.h"
 #include "economy.h"
 #include "fileio.h"
-#include "hal.h"
 #include "airport.h"
 #include "aircraft.h"
 #include "console.h"
@@ -66,6 +65,9 @@
 #include "player_face.h"
 #include "group.h"
 #include "blitter/factory.hpp"
+#include "sound/sound_driver.hpp"
+#include "music/music_driver.hpp"
+#include "video/video_driver.hpp"
 
 #include "bridge_map.h"
 #include "clear_map.h"
@@ -104,7 +106,7 @@
 	va_end(va);
 
 	ShowOSErrorBox(buf);
-	if (_video_driver != NULL) _video_driver->stop();
+	if (_video_driver != NULL) _video_driver->Stop();
 
 	assert(0);
 	exit(1);
@@ -188,7 +190,8 @@
 		lastof(buf)
 	);
 
-	p = GetDriverList(p, lastof(buf));
+	/* List the drivers */
+	p = VideoDriverFactoryBase::GetDriversInfo(p, lastof(buf));
 
 	/* List the blitters */
 	p = BlitterFactoryBase::GetBlittersInfo(p, lastof(buf));
@@ -293,6 +296,8 @@
 	/* Dynamic stuff needs to be initialized somewhere... */
 	_town_sort     = NULL;
 	_industry_sort = NULL;
+	_industry_mngr.ResetMapping();
+	_industile_mngr.ResetMapping();
 }
 
 
@@ -347,7 +352,7 @@
 	MarkWholeScreenDirty();
 
 	/* Play main theme */
-	if (_music_driver->is_song_playing()) ResetMusic();
+	if (_music_driver->IsSongPlaying()) ResetMusic();
 }
 
 #if defined(UNIX) && !defined(__MORPHOS__)
@@ -521,16 +526,36 @@
 	DEBUG(misc, 1, "Loading blitter '%s'...", blitter);
 	if (BlitterFactoryBase::SelectBlitter(blitter) == NULL)
 		error("Failed to select requested blitter '%s'; does it exist?", blitter);
+
 	DEBUG(driver, 1, "Loading drivers...");
-	LoadDriver(SOUND_DRIVER, _ini_sounddriver);
-	LoadDriver(MUSIC_DRIVER, _ini_musicdriver);
-	LoadDriver(VIDEO_DRIVER, _ini_videodriver); // load video last, to prevent an empty window while sound and music loads
+
+	_sound_driver = (SoundDriver*)SoundDriverFactoryBase::SelectDriver(_ini_sounddriver, Driver::DT_SOUND);
+	if (_sound_driver == NULL) {
+		StrEmpty(_ini_sounddriver) ?
+			error("Failed to autoprobe sound driver") :
+			error("Failed to select requested sound driver '%s'", _ini_sounddriver);
+	}
+
+	_music_driver = (MusicDriver*)MusicDriverFactoryBase::SelectDriver(_ini_musicdriver, Driver::DT_MUSIC);
+	if (_music_driver == NULL) {
+		StrEmpty(_ini_musicdriver) ?
+			error("Failed to autoprobe music driver") :
+			error("Failed to select requested music driver '%s'", _ini_musicdriver);
+	}
+
+	_video_driver = (VideoDriver*)VideoDriverFactoryBase::SelectDriver(_ini_videodriver, Driver::DT_VIDEO);
+	if (_video_driver == NULL) {
+		StrEmpty(_ini_videodriver) ?
+			error("Failed to autoprobe video driver") :
+			error("Failed to select requested video driver '%s'", _ini_videodriver);
+	}
+
 	_savegame_sort_order = SORT_BY_DATE | SORT_DESCENDING;
 	/* Initialize the zoom level of the screen to normal */
 	_screen.zoom = ZOOM_LVL_NORMAL;
 
 	/* restore saved music volume */
-	_music_driver->set_volume(msf.music_vol);
+	_music_driver->SetVolume(msf.music_vol);
 
 	NetworkStartUp(); // initialize network-core
 
@@ -601,16 +626,16 @@
 	}
 #endif /* ENABLE_NETWORK */
 
-	_video_driver->main_loop();
+	_video_driver->MainLoop();
 
 	WaitTillSaved();
 	IConsoleFree();
 
 	if (_network_available) NetworkShutDown(); // Shut down the network and close any open connections
 
-	_video_driver->stop();
-	_music_driver->stop();
-	_sound_driver->stop();
+	_video_driver->Stop();
+	_music_driver->Stop();
+	_sound_driver->Stop();
 
 	/* only save config if we have to */
 	if (save_config) {
@@ -713,6 +738,8 @@
 
 	ResetGRFConfig(true);
 	_house_mngr.ResetMapping();
+	_industile_mngr.ResetMapping();
+	_industry_mngr.ResetMapping();
 
 	GenerateWorldSetCallback(&MakeNewGameDone);
 	GenerateWorld(from_heightmap ? GW_HEIGHTMAP : GW_NEWGAME, 1 << _patches.map_x, 1 << _patches.map_y);
@@ -947,31 +974,6 @@
 	}
 }
 
-#include "cargopacket.h"
-void CheckCargoPacketLeaks()
-{
-	CargoPacket *cp;
-	FOR_ALL_CARGOPACKETS(cp) cp->touched = false;
-
-	Vehicle *v;
-	FOR_ALL_VEHICLES(v) {
-		const CargoList::List *packets = v->cargo.Packets();
-		for (CargoList::List::const_iterator it = packets->begin(); it != packets->end(); it++) (*it)->touched = true;
-	}
-
-	Station *st;
-	FOR_ALL_STATIONS(st) {
-		for (CargoID c = 0; c < NUM_CARGO; c++) {
-			GoodsEntry *ge = &st->goods[c];
-
-			const CargoList::List *packets = ge->cargo.Packets();
-			for (CargoList::List::const_iterator it = packets->begin(); it != packets->end(); it++) (*it)->touched = true;
-		}
-	}
-
-	FOR_ALL_CARGOPACKETS(cp) assert(cp->touched);
-}
-
 
 /* State controlling game loop.
  * The state must not be changed from anywhere
@@ -1006,7 +1008,6 @@
 		CallWindowTickEvent();
 		NewsLoop();
 		_current_player = p;
-		CheckCargoPacketLeaks();
 	}
 }
 
@@ -2088,6 +2089,12 @@
 		}
 	}
 
+	if (CheckSavegameVersion(70)) {
+		/* Added variables to support newindustries */
+		Industry *i;
+		FOR_ALL_INDUSTRIES(i) i->founder = OWNER_NONE;
+	}
+
 	/* Recalculate */
 	Group *g;
 	FOR_ALL_GROUPS(g) {
@@ -2128,8 +2135,3 @@
 	/* redraw the whole screen */
 	MarkWholeScreenDirty();
 }
-
-HalMusicDriver *_music_driver;
-HalSoundDriver *_sound_driver;
-HalVideoDriver *_video_driver;
-
--- a/src/openttd.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/openttd.h	Sat Jul 07 09:20:52 2007 +0000
@@ -8,7 +8,6 @@
 #define VARDEF extern
 #endif
 
-#include "hal.h"
 #include "helpers.hpp"
 
 struct Oblong {
--- a/src/player_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/player_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -935,7 +935,8 @@
 	switch (e->event) {
 	case WE_PAINT: {
 		Player *p = GetPlayer((PlayerID)w->window_number);
-		SetDParam(0, p->index);
+		SetDParam(0, STR_COMPANY_NAME);
+		SetDParam(1, p->index);
 		DrawWindowWidgets(w);
 
 		DrawPlayerFace(p->face, p->player_color, 2, 16);
--- a/src/players.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/players.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -735,7 +735,7 @@
 				cost = RemoveEngineReplacementForPlayer(p, old_engine_type,id_g, flags);
 			}
 
-			if (IsLocalPlayer()) InvalidateAutoreplaceWindow(old_engine_type);
+			if (IsLocalPlayer()) InvalidateAutoreplaceWindow(old_engine_type, id_g);
 
 			return cost;
 		}
--- a/src/rail.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/rail.h	Sat Jul 07 09:20:52 2007 +0000
@@ -290,8 +290,8 @@
 */
 static inline Track TrackBitsToTrack(TrackBits tracks)
 {
-	assert(tracks == INVALID_TRACK_BIT || (tracks != TRACK_BIT_NONE && KILL_FIRST_BIT(tracks) == 0));
-	return tracks != INVALID_TRACK_BIT ? (Track)FIND_FIRST_BIT(tracks) : INVALID_TRACK;
+	assert(tracks == INVALID_TRACK_BIT || (tracks != TRACK_BIT_NONE && KILL_FIRST_BIT(tracks & TRACK_BIT_MASK) == 0));
+	return tracks != INVALID_TRACK_BIT ? (Track)FIND_FIRST_BIT(tracks & TRACK_BIT_MASK) : INVALID_TRACK;
 }
 
 /**
--- a/src/rail_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/rail_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -737,6 +737,64 @@
 	return cost;
 }
 
+static bool CheckSignalAutoFill(TileIndex &tile, Trackdir &trackdir, int &signal_ctr, bool remove)
+{
+	tile = AddTileIndexDiffCWrap(tile, _trackdelta[trackdir]);
+	if (tile == INVALID_TILE) return false;
+
+	/* Check for track bits on the new tile */
+	uint32 ts = GetTileTrackStatus(tile, TRANSPORT_RAIL, 0);
+	TrackdirBits trackdirbits = (TrackdirBits)(ts & TRACKDIR_BIT_MASK);
+
+	if (TracksOverlap(TrackdirBitsToTrackBits(trackdirbits))) return false;
+	trackdirbits &= TrackdirReachesTrackdirs(trackdir);
+
+	/* No track bits, must stop */
+	if (trackdirbits == TRACKDIR_BIT_NONE) return false;
+
+	/* Get the first track dir */
+	trackdir = RemoveFirstTrackdir(&trackdirbits);
+
+	/* Any left? It's a junction so we stop */
+	if (trackdirbits != TRACKDIR_BIT_NONE) return false;
+
+	switch (GetTileType(tile)) {
+		case MP_RAILWAY:
+			if (IsRailDepot(tile)) return false;
+			if (!remove && HasSignalOnTrack(tile, TrackdirToTrack(trackdir))) return false;
+			signal_ctr++;
+			if (IsDiagonalTrackdir(trackdir)) {
+				signal_ctr++;
+				/* Ensure signal_ctr even so X and Y pieces get signals */
+				CLRBIT(signal_ctr, 0);
+			}
+			return true;
+
+		case MP_STREET:
+			if (!IsLevelCrossing(tile)) return false;
+			signal_ctr += 2;
+			return true;
+
+		case MP_TUNNELBRIDGE: {
+			TileIndex orig_tile = tile;
+			/* Skip to end of tunnel or bridge */
+			if (IsBridge(tile)) {
+				if (GetBridgeTransportType(tile) != TRANSPORT_RAIL) return false;
+				if (GetBridgeRampDirection(tile) != TrackdirToExitdir(trackdir)) return false;
+				tile = GetOtherBridgeEnd(tile);
+			} else {
+				if (GetTunnelTransportType(tile) != TRANSPORT_RAIL) return false;
+				if (GetTunnelDirection(tile) != TrackdirToExitdir(trackdir)) return false;
+				tile = GetOtherTunnelEnd(tile);
+			}
+			signal_ctr += 2 + DistanceMax(orig_tile, tile) * 2;
+			return true;
+		}
+
+		default: return false;
+	}
+}
+
 /** Build many signals by dragging; AutoSignals
  * @param tile start tile of drag
  * @param flags operation to perform
@@ -746,6 +804,7 @@
  * - p2 = (bit  3)    - 1 = override signal/semaphore, or pre/exit/combo signal (CTRL-toggle)
  * - p2 = (bit  4)    - 0 = signals, 1 = semaphores
  * - p2 = (bit  5)    - 0 = build, 1 = remove signals
+ * - p2 = (bit  6)    - 0 = selected stretch, 1 = auto fill
  * - p2 = (bit 24-31) - user defined signals_density
  */
 static CommandCost CmdSignalTrackHelper(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
@@ -755,11 +814,13 @@
 	byte signals;
 	bool error = true;
 	TileIndex end_tile;
+	TileIndex start_tile = tile;
 
 	Track track = (Track)GB(p2, 0, 3);
 	bool mode = HASBIT(p2, 3);
 	bool semaphores = HASBIT(p2, 4);
 	bool remove = HASBIT(p2, 5);
+	bool autofill = HASBIT(p2, 6);
 	Trackdir trackdir = TrackToTrackdir(track);
 	byte signal_density = GB(p2, 24, 8);
 
@@ -773,11 +834,15 @@
 
 	/* for vertical/horizontal tracks, double the given signals density
 	 * since the original amount will be too dense (shorter tracks) */
-	if (!IsDiagonalTrack(track)) signal_density *= 2;
+	signal_density *= 2;
 
 	if (CmdFailed(ValidateAutoDrag(&trackdir, tile, end_tile))) return CMD_ERROR;
 
 	track = TrackdirToTrack(trackdir); /* trackdir might have changed, keep track in sync */
+	Trackdir start_trackdir = trackdir;
+
+	/* Autofill must start on a valid track to be able to avoid loops */
+	if (autofill && !HasTrack(tile, track)) return CMD_ERROR;
 
 	/* copy the signal-style of the first rail-piece if existing */
 	if (HasSignals(tile)) {
@@ -790,6 +855,10 @@
 		signals = SignalOnTrack(track);
 	}
 
+	byte signal_dir = 0;
+	if (signals & SignalAlongTrackdir(trackdir))   SETBIT(signal_dir, 0);
+	if (signals & SignalAgainstTrackdir(trackdir)) SETBIT(signal_dir, 1);
+
 	/* signal_ctr         - amount of tiles already processed
 	 * signals_density    - patch setting to put signal on every Nth tile (double space on |, -- tracks)
 	 **********
@@ -801,10 +870,16 @@
 	signal_ctr = 0;
 	for (;;) {
 		/* only build/remove signals with the specified density */
-		if (signal_ctr % signal_density == 0) {
+		if ((remove && autofill) || signal_ctr % signal_density == 0) {
 			uint32 p1 = GB(TrackdirToTrack(trackdir), 0, 3);
 			SB(p1, 3, 1, mode);
 			SB(p1, 4, 1, semaphores);
+
+			/* Pick the correct orientation for the track direction */
+			signals = 0;
+			if (HASBIT(signal_dir, 0)) signals |= SignalAlongTrackdir(trackdir);
+			if (HASBIT(signal_dir, 1)) signals |= SignalAgainstTrackdir(trackdir);
+
 			ret = DoCommand(tile, p1, signals, flags, remove ? CMD_REMOVE_SIGNALS : CMD_BUILD_SIGNALS);
 
 			/* Be user-friendly and try placing signals as much as possible */
@@ -814,13 +889,24 @@
 			}
 		}
 
-		if (tile == end_tile) break;
+		if (autofill) {
+			if (!CheckSignalAutoFill(tile, trackdir, signal_ctr, remove)) break;
 
-		tile += ToTileIndexDiff(_trackdelta[trackdir]);
-		signal_ctr++;
+			/* Prevent possible loops */
+			if (tile == start_tile && trackdir == start_trackdir) break;
+		} else {
+			if (tile == end_tile) break;
 
-		/* toggle railbit for the non-diagonal tracks (|, -- tracks) */
-		if (!IsDiagonalTrackdir(trackdir)) ToggleBitT(trackdir, 0);
+			tile += ToTileIndexDiff(_trackdelta[trackdir]);
+			signal_ctr++;
+
+			/* toggle railbit for the non-diagonal tracks (|, -- tracks) */
+			if (IsDiagonalTrackdir(trackdir)) {
+				signal_ctr++;
+			} else {
+				ToggleBitT(trackdir, 0);
+			}
+		}
 	}
 
 	return error ? CMD_ERROR : total_cost;
@@ -836,6 +922,7 @@
  * - p2 = (bit  3)    - 1 = override signal/semaphore, or pre/exit/combo signal (CTRL-toggle)
  * - p2 = (bit  4)    - 0 = signals, 1 = semaphores
  * - p2 = (bit  5)    - 0 = build, 1 = remove signals
+ * - p2 = (bit  6)    - 0 = selected stretch, 1 = auto fill
  * - p2 = (bit 24-31) - user defined signals_density
  * @see CmdSignalTrackHelper
  */
@@ -899,6 +986,7 @@
  * - p2 = (bit  3)    - 1 = override signal/semaphore, or pre/exit/combo signal (CTRL-toggle)
  * - p2 = (bit  4)    - 0 = signals, 1 = semaphores
  * - p2 = (bit  5)    - 0 = build, 1 = remove signals
+ * - p2 = (bit  6)    - 0 = selected stretch, 1 = auto fill
  * - p2 = (bit 24-31) - user defined signals_density
  * @see CmdSignalTrackHelper
  */
@@ -1640,12 +1728,6 @@
 	}
 }
 
-static const DiagDirection _dir_from_track[14] = {
-	DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_NE, DIAGDIR_SE, DIAGDIR_SW, DIAGDIR_SE, DIAGDIR_NE, DIAGDIR_NE,
-	DIAGDIR_SW, DIAGDIR_NW, DIAGDIR_NW, DIAGDIR_SW, DIAGDIR_NW, DIAGDIR_NE,
-};
-
-
 static void ChangeSignalStates(SetSignalsData *ssd)
 {
 	int i;
@@ -1691,7 +1773,7 @@
 		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]];
+				ssd->next_dir[ssd->cur_stack] = TrackdirToExitdir(ssd->bit[i]);
 				ssd->cur_stack++;
 			} else {
 				DEBUG(misc, 0, "NUM_SSD_STACK too small"); /// @todo WTF is this???
--- a/src/rail_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/rail_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -373,8 +373,10 @@
 		return;
 	}
 
-	SB(p2,  3, 1, _ctrl_pressed);
+	/* XXX Steal ctrl for autosignal function, until we get some GUI */
+	SB(p2,  3, 1, 0);
 	SB(p2,  4, 1, _cur_year < _patches.semaphore_build_before);
+	SB(p2,  6, 1, _ctrl_pressed);
 	SB(p2, 24, 8, _patches.drag_signals_density);
 
 	/* _patches.drag_signals_density is given as a parameter such that each user
@@ -1231,7 +1233,7 @@
 
 void SetDefaultRailGui()
 {
-	if (_local_player == PLAYER_SPECTATOR) return;
+	if (_local_player == PLAYER_SPECTATOR || !IsValidPlayer(_local_player)) return;
 
 	extern RailType _last_built_railtype;
 	RailType rt = (RailType)_patches.default_rail_type;
--- a/src/road_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/road_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -213,19 +213,19 @@
 
 static void BuildRoadClick_Depot(Window *w)
 {
-	if (_game_mode == GM_EDITOR) return;
+	if (_game_mode == GM_EDITOR || !CanBuildVehicleInfrastructure(VEH_ROAD)) return;
 	if (HandlePlacePushButton(w, RTW_DEPOT, SPR_CURSOR_ROAD_DEPOT, 1, PlaceRoad_Depot)) ShowRoadDepotPicker();
 }
 
 static void BuildRoadClick_BusStation(Window *w)
 {
-	if (_game_mode == GM_EDITOR) return;
+	if (_game_mode == GM_EDITOR || !CanBuildVehicleInfrastructure(VEH_ROAD)) return;
 	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 (_game_mode == GM_EDITOR || !CanBuildVehicleInfrastructure(VEH_ROAD)) return;
 	if (HandlePlacePushButton(w, RTW_TRUCK_STATION, SPR_CURSOR_TRUCK_STATION, 1, PlaceRoad_TruckStation)) ShowRVStationPicker(RoadStop::TRUCK);
 }
 
@@ -270,6 +270,7 @@
 		if (IsWindowWidgetLowered(w, RTW_ROAD_X) || IsWindowWidgetLowered(w, RTW_ROAD_Y) || IsWindowWidgetLowered(w, RTW_BUS_STATION) || IsWindowWidgetLowered(w, RTW_TRUCK_STATION)) {
 			EnableWindowWidget(w, RTW_REMOVE);
 		}
+		SetWindowWidgetsDisabledState(w, !CanBuildVehicleInfrastructure(VEH_ROAD), 6, 7, 8, WIDGET_LIST_END);
 		DrawWindowWidgets(w);
 		break;
 
--- a/src/roadveh.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/roadveh.h	Sat Jul 07 09:20:52 2007 +0000
@@ -81,6 +81,8 @@
 	WindowClass GetVehicleListWindowClass() const { return WC_ROADVEH_LIST; }
 	bool IsPrimaryVehicle() const { return IsRoadVehFront(this); }
 	bool HasFront() const { return true; }
+	int GetImage(Direction direction) const;
+	void Tick();
 };
 
 byte GetRoadVehLength(const Vehicle *v);
--- a/src/roadveh_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/roadveh_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -85,19 +85,19 @@
 	TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_X_SW, TRACKDIR_Y_NW
 };
 
-int GetRoadVehImage(const Vehicle* v, Direction direction)
+int RoadVehicle::GetImage(Direction direction) const
 {
-	int img = v->spritenum;
+	int img = this->spritenum;
 	int image;
 
 	if (is_custom_sprite(img)) {
-		image = GetCustomVehicleSprite(v, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(img)));
+		image = GetCustomVehicleSprite(this, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(img)));
 		if (image != 0) return image;
-		img = orig_road_vehicle_info[v->engine_type - ROAD_ENGINES_INDEX].image_index;
+		img = orig_road_vehicle_info[this->engine_type - ROAD_ENGINES_INDEX].image_index;
 	}
 
 	image = direction + _roadveh_images[img];
-	if (v->cargo.Count() >= v->cargo_cap / 2U) image += _roadveh_full_adder[img];
+	if (this->cargo.Count() >= this->cargo_cap / 2U) image += _roadveh_full_adder[img];
 	return image;
 }
 
@@ -269,7 +269,7 @@
 		RebuildVehicleLists();
 		InvalidateWindow(WC_COMPANY, v->owner);
 		if (IsLocalPlayer())
-			InvalidateAutoreplaceWindow(VEH_ROAD); // updates the replace Road window
+			InvalidateAutoreplaceWindow(VEH_ROAD, v->group_id); // updates the replace Road window
 
 		GetPlayer(_current_player)->num_engines[p1]++;
 	}
@@ -555,7 +555,7 @@
 
 void RoadVehicle::MarkDirty()
 {
-	this->cur_image = GetRoadVehImage(this, this->direction);
+	this->cur_image = this->GetImage(this->direction);
 	MarkAllViewportsDirty(this->left_coord, this->top_coord, this->right_coord + 1, this->bottom_coord + 1);
 }
 
@@ -641,7 +641,7 @@
 		v->direction = ChangeDir(v->direction, delta[r & 3]);
 		BeginVehicleMove(v);
 		v->UpdateDeltaXY(v->direction);
-		v->cur_image = GetRoadVehImage(v, v->direction);
+		v->cur_image = v->GetImage(v->direction);
 		SetRoadVehPosition(v, v->x_pos, v->y_pos);
 	} while ((v = v->next) != NULL);
 }
@@ -1366,7 +1366,7 @@
 	v->u.road.state = tdir;
 	v->u.road.frame = RVC_DEPOT_START_FRAME;
 
-	v->cur_image = GetRoadVehImage(v, v->direction);
+	v->cur_image = v->GetImage(v->direction);
 	v->UpdateDeltaXY(v->direction);
 	SetRoadVehPosition(v,x,y);
 
@@ -1459,7 +1459,7 @@
 
 		if ((IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) && HASBIT(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) {
 			/* Vehicle has just entered a bridge or tunnel */
-			v->cur_image = GetRoadVehImage(v, v->direction);
+			v->cur_image = v->GetImage(v->direction);
 			v->UpdateDeltaXY(v->direction);
 			SetRoadVehPosition(v,gp.x,gp.y);
 			return true;
@@ -1574,7 +1574,7 @@
 			v->cur_speed -= v->cur_speed >> 2;
 		}
 
-		v->cur_image = GetRoadVehImage(v, newdir);
+		v->cur_image = v->GetImage(newdir);
 		v->UpdateDeltaXY(v->direction);
 		RoadZPosAffectSpeed(v, SetRoadVehPosition(v, x, y));
 		return true;
@@ -1614,7 +1614,7 @@
 			v->cur_speed -= v->cur_speed >> 2;
 		}
 
-		v->cur_image = GetRoadVehImage(v, newdir);
+		v->cur_image = v->GetImage(newdir);
 		v->UpdateDeltaXY(v->direction);
 		RoadZPosAffectSpeed(v, SetRoadVehPosition(v, x, y));
 		return true;
@@ -1656,7 +1656,7 @@
 		v->cur_speed -= (v->cur_speed >> 2);
 		if (old_dir != v->u.road.state) {
 			/* The vehicle is in a road stop */
-			v->cur_image = GetRoadVehImage(v, new_dir);
+			v->cur_image = v->GetImage(new_dir);
 			v->UpdateDeltaXY(v->direction);
 			SetRoadVehPosition(v, v->x_pos, v->y_pos);
 			/* Note, return here means that the frame counter is not incremented
@@ -1776,7 +1776,7 @@
 	 * in a depot or entered a tunnel/bridge */
 	if (!HASBIT(r, VETS_ENTERED_WORMHOLE)) v->u.road.frame++;
 
-	v->cur_image = GetRoadVehImage(v, v->direction);
+	v->cur_image = v->GetImage(v->direction);
 	v->UpdateDeltaXY(v->direction);
 	RoadZPosAffectSpeed(v, SetRoadVehPosition(v, x, y));
 	return true;
@@ -1829,11 +1829,11 @@
 	v->cargo.AgeCargo();
 }
 
-void RoadVeh_Tick(Vehicle *v)
+void RoadVehicle::Tick()
 {
-	AgeRoadVehCargo(v);
+	AgeRoadVehCargo(this);
 
-	if (IsRoadVehFront(v)) RoadVehController(v);
+	if (IsRoadVehFront(this)) RoadVehController(this);
 }
 
 static void CheckIfRoadVehNeedsService(Vehicle *v)
--- a/src/roadveh_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/roadveh_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -38,7 +38,7 @@
 
 		if (dx + length > 0 && dx <= max_length) {
 			SpriteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
-			DrawSprite(GetRoadVehImage(v, DIR_W), pal, x + 14 + RoadVehLengthToPixels(dx), y + 6);
+			DrawSprite(v->GetImage(DIR_W), pal, x + 14 + RoadVehLengthToPixels(dx), y + 6);
 
 			if (v->index == selection) {
 				DrawFrameRect(x - 1, y - 1, x + 28, y + 12, 15, FR_BORDERONLY);
--- a/src/saveload.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/saveload.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -17,7 +17,6 @@
 #include "openttd.h"
 #include "debug.h"
 #include "functions.h"
-#include "hal.h"
 #include "vehicle.h"
 #include "station.h"
 #include "thread.h"
@@ -288,6 +287,8 @@
 	_sl.array_index = index;
 }
 
+static uint32 _next_offs;
+
 /**
  * Iterate through the elements of an array and read the whole thing
  * @return The index of the object, or -1 if we have reached the end of current block
@@ -295,21 +296,20 @@
 int SlIterateArray()
 {
 	int index;
-	static uint32 next_offs;
 
 	/* After reading in the whole array inside the loop
 	 * we must have read in all the data, so we must be at end of current block. */
-	assert(next_offs == 0 || SlGetOffs() == next_offs);
+	if (_next_offs != 0 && SlGetOffs() != _next_offs) SlError(STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME, "Invalid chunk size");
 
 	while (true) {
 		uint length = SlReadArrayLength();
 		if (length == 0) {
-			next_offs = 0;
+			_next_offs = 0;
 			return -1;
 		}
 
 		_sl.obj_len = --length;
-		next_offs = SlGetOffs() + length;
+		_next_offs = SlGetOffs() + length;
 
 		switch (_sl.block_mode) {
 		case CH_SPARSE_ARRAY: index = (int)SlReadSparseIndex(); break;
@@ -496,6 +496,7 @@
  * @return return the net length of the string */
 static inline size_t SlCalcNetStringLen(const char *ptr, size_t length)
 {
+	if (ptr == NULL) return 0;
 	return minu(strlen(ptr), length - 1);
 }
 
@@ -573,9 +574,13 @@
 			case SLE_VAR_STR:
 			case SLE_VAR_STRQ: // Malloc'd string, free previous incarnation, and allocate
 				free(*(char**)ptr);
-				*(char**)ptr = (char*)malloc(len + 1); // terminating '\0'
-				ptr = *(char**)ptr;
-				SlCopyBytes(ptr, len);
+				if (len == 0) {
+					*(char**)ptr = NULL;
+				} else {
+					*(char**)ptr = (char*)malloc(len + 1); // terminating '\0'
+					ptr = *(char**)ptr;
+					SlCopyBytes(ptr, len);
+				}
 				break;
 		}
 
@@ -1599,6 +1604,8 @@
 	}
 	WaitTillSaved();
 
+	_next_offs = 0;
+
 	/* Load a TTDLX or TTDPatch game */
 	if (mode == SL_OLD_LOAD) {
 		InitializeGame(IG_DATE_RESET, 256, 256); // set a mapsize of 256x256 for TTDPatch games or it might get confused
--- a/src/screenshot.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/screenshot.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -7,7 +7,6 @@
 #include "strings.h"
 #include "table/strings.h"
 #include "gfx.h"
-#include "hal.h"
 #include "fileio.h"
 #include "viewport.h"
 #include "player.h"
--- a/src/settings.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/settings.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -1378,10 +1378,11 @@
 	SDT_BOOL(Patches, autorenew,                     S, 0, false,                    STR_CONFIG_PATCHES_AUTORENEW_VEHICLE,    EngineRenewUpdate),
 	 SDT_VAR(Patches, autorenew_months,   SLE_INT16, S, 0,     6,   -12,      12, 0, STR_CONFIG_PATCHES_AUTORENEW_MONTHS,     EngineRenewMonthsUpdate),
 	 SDT_VAR(Patches, autorenew_money,     SLE_UINT, S,CR,100000,     0, 2000000, 0, STR_CONFIG_PATCHES_AUTORENEW_MONEY,      EngineRenewMoneyUpdate),
-	 SDT_VAR(Patches, max_trains,        SLE_UINT16, 0, 0,   500,     0,    5000, 0, STR_CONFIG_PATCHES_MAX_TRAINS,           NULL),
-	 SDT_VAR(Patches, max_roadveh,       SLE_UINT16, 0, 0,   500,     0,    5000, 0, STR_CONFIG_PATCHES_MAX_ROADVEH,          NULL),
-	 SDT_VAR(Patches, max_aircraft,      SLE_UINT16, 0, 0,   200,     0,    5000, 0, STR_CONFIG_PATCHES_MAX_AIRCRAFT,         NULL),
-	 SDT_VAR(Patches, max_ships,         SLE_UINT16, 0, 0,   300,     0,    5000, 0, STR_CONFIG_PATCHES_MAX_SHIPS,            NULL),
+	SDT_BOOL(Patches, always_build_infrastructure,   S, 0, false,                    STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE, RedrawScreen),
+	 SDT_VAR(Patches, max_trains,        SLE_UINT16, 0, 0,   500,     0,    5000, 0, STR_CONFIG_PATCHES_MAX_TRAINS,           RedrawScreen),
+	 SDT_VAR(Patches, max_roadveh,       SLE_UINT16, 0, 0,   500,     0,    5000, 0, STR_CONFIG_PATCHES_MAX_ROADVEH,          RedrawScreen),
+	 SDT_VAR(Patches, max_aircraft,      SLE_UINT16, 0, 0,   200,     0,    5000, 0, STR_CONFIG_PATCHES_MAX_AIRCRAFT,         RedrawScreen),
+	 SDT_VAR(Patches, max_ships,         SLE_UINT16, 0, 0,   300,     0,    5000, 0, STR_CONFIG_PATCHES_MAX_SHIPS,            RedrawScreen),
 	SDT_BOOL(Patches, servint_ispercent,             0, 0, false,                    STR_CONFIG_PATCHES_SERVINT_ISPERCENT,    CheckInterval),
 	 SDT_VAR(Patches, servint_trains,    SLE_UINT16, 0,D0,   150,     5,     800, 0, STR_CONFIG_PATCHES_SERVINT_TRAINS,       InValidateDetailsWindow),
 	 SDT_VAR(Patches, servint_roadveh,   SLE_UINT16, 0,D0,   150,     5,     800, 0, STR_CONFIG_PATCHES_SERVINT_ROADVEH,      InValidateDetailsWindow),
@@ -1411,7 +1412,7 @@
 	/***************************************************************************/
 	/* Economy section of the GUI-configure patches window */
 	SDT_BOOL(Patches, inflation,                  0, 0,  true,            STR_CONFIG_PATCHES_INFLATION,        NULL),
-	SDT_BOOL(Patches, build_rawmaterial_ind,      0, 0, false,            STR_CONFIG_PATCHES_BUILDXTRAIND,     NULL),
+	 SDT_VAR(Patches, raw_industry_construction,SLE_UINT8,0,MS,0,0, 2, 0, STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD, NULL),
 	SDT_BOOL(Patches, multiple_industry_per_town, 0, 0, false,            STR_CONFIG_PATCHES_MULTIPINDTOWN,    NULL),
 	SDT_BOOL(Patches, same_industry_close,        0, 0, false,            STR_CONFIG_PATCHES_SAMEINDCLOSE,     NULL),
 	SDT_BOOL(Patches, bribe,                      0, 0,  true,            STR_CONFIG_PATCHES_BRIBE,            NULL),
--- a/src/settings_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/settings_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -655,6 +655,7 @@
 	"loading_indicators",
 	"timetable_in_ticks",
 	"default_rail_type",
+	"always_build_infrastructure",
 };
 
 static const char *_patches_construction[] = {
@@ -686,7 +687,7 @@
 
 static const char *_patches_economy[] = {
 	"inflation",
-	"build_rawmaterial_ind",
+	"raw_industry_construction",
 	"multiple_industry_per_town",
 	"same_industry_close",
 	"bribe",
--- a/src/ship.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/ship.h	Sat Jul 07 09:20:52 2007 +0000
@@ -46,6 +46,8 @@
 	WindowClass GetVehicleListWindowClass() const { return WC_SHIPS_LIST; }
 	void PlayLeaveStationSound() const;
 	bool IsPrimaryVehicle() const { return true; }
+	int GetImage(Direction direction) const;
+	void Tick();
 };
 
 #endif /* SHIP_H */
--- a/src/ship_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/ship_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -90,15 +90,15 @@
 	height = spr->height;
 }
 
-int GetShipImage(const Vehicle* v, Direction direction)
+int Ship::GetImage(Direction direction) const
 {
-	int spritenum = v->spritenum;
+	int spritenum = this->spritenum;
 
 	if (is_custom_sprite(spritenum)) {
-		int sprite = GetCustomVehicleSprite(v, direction);
+		int sprite = GetCustomVehicleSprite(this, direction);
 
 		if (sprite != 0) return sprite;
-		spritenum = orig_ship_vehicle_info[v->engine_type - SHIP_ENGINES_INDEX].image_index;
+		spritenum = orig_ship_vehicle_info[this->engine_type - SHIP_ENGINES_INDEX].image_index;
 	}
 	return _ship_sprites[spritenum] + direction;
 }
@@ -233,7 +233,7 @@
 
 void Ship::MarkDirty()
 {
-	this->cur_image = GetShipImage(this, this->direction);
+	this->cur_image = this->GetImage(this->direction);
 	MarkAllViewportsDirty(this->left_coord, this->top_coord, this->right_coord + 1, this->bottom_coord + 1);
 }
 
@@ -337,7 +337,7 @@
 void RecalcShipStuff(Vehicle *v)
 {
 	v->UpdateDeltaXY(v->direction);
-	v->cur_image = GetShipImage(v, v->direction);
+	v->cur_image = v->GetImage(v->direction);
 	v->MarkDirty();
 	InvalidateWindow(WC_VEHICLE_DEPOT, v->tile);
 }
@@ -770,7 +770,7 @@
 
 getout:
 	v->UpdateDeltaXY(dir);
-	v->cur_image = GetShipImage(v, dir);
+	v->cur_image = v->GetImage(dir);
 	VehiclePositionChanged(v);
 	EndVehicleMove(v);
 	return;
@@ -787,10 +787,10 @@
 	v->cargo.AgeCargo();
 }
 
-void Ship_Tick(Vehicle *v)
+void Ship::Tick()
 {
-	AgeShipCargo(v);
-	ShipController(v);
+	AgeShipCargo(this);
+	ShipController(this);
 }
 
 
@@ -894,7 +894,7 @@
 		RebuildVehicleLists();
 		InvalidateWindow(WC_COMPANY, v->owner);
 		if (IsLocalPlayer())
-			InvalidateAutoreplaceWindow(VEH_SHIP); // updates the replace Ship window
+			InvalidateAutoreplaceWindow(VEH_SHIP, v->group_id); // updates the replace Ship window
 
 		GetPlayer(_current_player)->num_engines[p1]++;
 	}
--- a/src/ship_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/ship_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -19,7 +19,7 @@
 
 void DrawShipImage(const Vehicle *v, int x, int y, VehicleID selection)
 {
-	DrawSprite(GetShipImage(v, DIR_W), GetVehiclePalette(v), x + 32, y + 10);
+	DrawSprite(v->GetImage(DIR_W), GetVehiclePalette(v), x + 32, y + 10);
 
 	if (v->index == selection) {
 		DrawFrameRect(x - 5, y - 1, x + 67, y + 21, 15, FR_BORDERONLY);
--- a/src/signs.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/signs.h	Sat Jul 07 09:20:52 2007 +0000
@@ -71,7 +71,7 @@
 void UpdateAllSignVirtCoords();
 void PlaceProc_Sign(TileIndex tile);
 
-/* misc.cpp */
+/* signs_gui.cpp */
 void ShowRenameSignWindow(const Sign *si);
 
 void ShowSignList();
--- a/src/signs_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/signs_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -16,6 +16,7 @@
 #include "debug.h"
 #include "variables.h"
 #include "helpers.hpp"
+#include "command.h"
 
 static const Sign **_sign_sort;
 static uint _num_sign_sort;
@@ -151,3 +152,172 @@
 		w->resize.height = w->height - 10 * 7; // minimum if 5 in the list
 	}
 }
+
+/* Edit sign window stuff */
+
+struct editsign_d : querystr_d {
+	SignID cur_sign;
+};
+
+static char _edit_str_buf[64];
+
+enum QueryEditSignWidgets {
+	QUERY_EDIT_SIGN_WIDGET_TEXT = 3,
+	QUERY_EDIT_SIGN_WIDGET_OK,
+	QUERY_EDIT_SIGN_WIDGET_CANCEL,
+	QUERY_EDIT_SIGN_WIDGET_DELETE,
+	QUERY_EDIT_SIGN_WIDGET_PREVIOUS = QUERY_EDIT_SIGN_WIDGET_DELETE + 2,
+	QUERY_EDIT_SIGN_WIDGET_NEXT,
+};
+
+static void UpdateSignEditWindow(Window *w, const Sign *si)
+{
+	/* Display an empty string when the sign hasnt been edited yet */
+	if (si->str != STR_280A_SIGN) {
+		SetDParam(0, si->index);
+		GetString(_edit_str_buf, STR_SIGN_NAME, lastof(_edit_str_buf));
+	} else {
+		GetString(_edit_str_buf, STR_EMPTY, lastof(_edit_str_buf));
+	}
+	_edit_str_buf[lengthof(_edit_str_buf) - 1] = '\0';
+
+	WP(w, editsign_d).cur_sign = si->index;
+	InitializeTextBuffer(&WP(w, querystr_d).text, _edit_str_buf, 31, 255); // Allow 31 characters (including \0)
+
+	InvalidateWidget(w, QUERY_EDIT_SIGN_WIDGET_TEXT);
+}
+
+static void RenameSign(SignID index, const char *text)
+{
+	_cmd_text = text;
+	DoCommandP(0, index, 0, NULL, CMD_RENAME_SIGN | CMD_MSG(STR_280C_CAN_T_CHANGE_SIGN_NAME));
+}
+
+static void QuerySignEditWndProc(Window *w, WindowEvent *e)
+{
+	editsign_d *qs = &WP(w, editsign_d);
+	Sign       *si;
+	uint       sign_index = 0;
+
+	switch (e->event) {
+		case WE_CREATE:
+			SETBIT(_no_scroll, SCROLL_EDIT);
+			break;
+
+		case WE_PAINT:
+			SetDParam(0, qs->caption);
+			DrawWindowWidgets(w);
+			DrawEditBox(w, qs, QUERY_EDIT_SIGN_WIDGET_TEXT);
+			break;
+
+		case WE_CLICK:
+			switch (e->we.click.widget) {
+				case QUERY_EDIT_SIGN_WIDGET_PREVIOUS:
+					if (_sign_sort_dirty) GlobalSortSignList();
+					sign_index = _sign_sort[_num_sign_sort - 1]->index;
+					for (uint i = 1; i < _num_sign_sort; i++) {
+						if (qs->cur_sign == _sign_sort[i]->index) {
+							sign_index = _sign_sort[i - 1]->index;
+							break;
+						}
+					}
+					si = GetSign(sign_index);
+
+					/* Scroll to sign and reopen window */
+					ScrollMainWindowToTile(TileVirtXY(si->x, si->y));
+					UpdateSignEditWindow(w, si);
+					break;
+
+				case QUERY_EDIT_SIGN_WIDGET_NEXT:
+					if (_sign_sort_dirty) GlobalSortSignList();
+					sign_index = _sign_sort[0]->index;
+					for (uint i = 0; i < _num_sign_sort-1; i++) {
+						if (qs->cur_sign == _sign_sort[i]->index) {
+							sign_index = _sign_sort[i + 1]->index;
+							break;
+						}
+					}
+					si = GetSign(sign_index);
+
+					/* Scroll to sign and reopen window */
+					ScrollMainWindowToTile(TileVirtXY(si->x, si->y));
+					UpdateSignEditWindow(w, si);
+					break;
+
+				case QUERY_EDIT_SIGN_WIDGET_DELETE:
+					/* Only need to set the buffer to null, the rest is handled as the OK button */
+					DeleteTextBufferAll(&qs->text);
+					/* FALL THROUGH */
+
+				case QUERY_EDIT_SIGN_WIDGET_OK:
+					RenameSign(qs->cur_sign, qs->text.buf);
+					/* FALL THROUGH */
+
+				case QUERY_EDIT_SIGN_WIDGET_CANCEL:
+					DeleteWindow(w);
+					break;
+			}
+			break;
+
+		case WE_KEYPRESS:
+			switch (HandleEditBoxKey(w, qs, QUERY_EDIT_SIGN_WIDGET_TEXT, e)) {
+				case 1: // Enter pressed, confirms change
+					RenameSign(qs->cur_sign, qs->text.buf);
+					/* FALL THROUGH */
+
+				case 2: // ESC pressed, closes window, abandons changes
+					DeleteWindow(w);
+					break;
+			}
+			break;
+
+		case WE_MOUSELOOP:
+			HandleEditBox(w, qs, QUERY_EDIT_SIGN_WIDGET_TEXT);
+			break;
+
+		case WE_DESTROY:
+			CLRBIT(_no_scroll, SCROLL_EDIT);
+			break;
+	}
+}
+
+static const Widget _query_sign_edit_widgets[] = {
+{ WWT_CLOSEBOX, RESIZE_NONE,  14,   0,  10,   0,  13, STR_00C5,        STR_018B_CLOSE_WINDOW},
+{  WWT_CAPTION, RESIZE_NONE,  14,  11, 259,   0,  13, STR_012D,        STR_NULL },
+{    WWT_PANEL, RESIZE_NONE,  14,   0, 259,  14,  29, STR_NULL,        STR_NULL },
+{    WWT_PANEL, RESIZE_NONE,  14,   2, 257,  16,  27, STR_NULL,        STR_NULL },  // Text field
+{  WWT_TEXTBTN, RESIZE_NONE,  14,   0,  60,  30,  41, STR_012F_OK,     STR_NULL },
+{  WWT_TEXTBTN, RESIZE_NONE,  14,  61, 120,  30,  41, STR_012E_CANCEL, STR_NULL },
+{  WWT_TEXTBTN, RESIZE_NONE,  14, 121, 180,  30,  41, STR_0290_DELETE, STR_NULL },
+{    WWT_PANEL, RESIZE_NONE,  14, 181, 237,  30,  41, STR_NULL,        STR_NULL },
+{  WWT_TEXTBTN, RESIZE_NONE,  14, 238, 248,  30,  41, STR_6819,        STR_PREVIOUS_SIGN_TOOLTIP },
+{  WWT_TEXTBTN, RESIZE_NONE,  14, 249, 259,  30,  41, STR_681A,        STR_NEXT_SIGN_TOOLTIP },
+{ WIDGETS_END },
+};
+
+static const WindowDesc _query_sign_edit_desc = {
+	190, 170, 260, 42,
+	WC_QUERY_STRING, WC_NONE,
+	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET,
+	_query_sign_edit_widgets,
+	QuerySignEditWndProc
+};
+
+void ShowRenameSignWindow(const Sign *si)
+{
+	Window *w;
+
+	/* Delete all other edit windows and the save window */
+	DeleteWindowById(WC_QUERY_STRING, 0);
+	DeleteWindowById(WC_SAVELOAD, 0);
+
+	w = AllocateWindowDesc(&_query_sign_edit_desc);
+
+	WP(w, editsign_d).caption = STR_280B_EDIT_SIGN_TEXT;
+	WP(w, editsign_d).afilter = CS_ALPHANUMERAL;
+	LowerWindowWidget(w, QUERY_EDIT_SIGN_WIDGET_TEXT);
+
+	UpdateSignEditWindow(w, si);
+}
+
+
--- a/src/sound/cocoa_s.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/sound/cocoa_s.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -36,6 +36,7 @@
 #undef Point
 #undef Rect
 
+static FSoundDriver_Cocoa iFSoundDriver_Cocoa;
 
 static AudioUnit _outputAudioUnit;
 
@@ -48,7 +49,7 @@
 }
 
 
-static const char *CocoaSoundStart(const char * const *parm)
+const char *SoundDriver_Cocoa::Start(const char * const *parm)
 {
 	Component comp;
 	ComponentDescription desc;
@@ -116,7 +117,7 @@
 }
 
 
-static void CocoaSoundStop()
+void SoundDriver_Cocoa::Stop()
 {
 	struct AudioUnitInputCallback callback;
 
@@ -140,10 +141,4 @@
 	}
 }
 
-
-const HalSoundDriver _cocoa_sound_driver = {
-	CocoaSoundStart,
-	CocoaSoundStop,
-};
-
 #endif /* WITH_COCOA */
--- a/src/sound/cocoa_s.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/sound/cocoa_s.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,22 @@
 #ifndef SOUND_COCOA_H
 #define SOUND_COCOA_H
 
-#include "../hal.h"
+#include "sound_driver.hpp"
 
-extern const HalSoundDriver _cocoa_sound_driver;
+class SoundDriver_Cocoa: public SoundDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+};
+
+class FSoundDriver_Cocoa: public SoundDriverFactory<FSoundDriver_Cocoa> {
+public:
+	/* virtual */ const char *GetName() { return "cocoa"; }
+	/* virtual */ const char *GetDescription() { return "Cocoa Sound Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new SoundDriver_Cocoa(); }
+};
 
 #endif /* SOUND_COCOA_H */
--- a/src/sound/null_s.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/sound/null_s.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -3,10 +3,4 @@
 #include "../stdafx.h"
 #include "null_s.h"
 
-static const char *NullSoundStart(const char * const *parm) { return NULL; }
-static void NullSoundStop() {}
-
-const HalSoundDriver _null_sound_driver = {
-	NullSoundStart,
-	NullSoundStop,
-};
+static FSoundDriver_Null iFSoundDriver_Null;
--- a/src/sound/null_s.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/sound/null_s.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,22 @@
 #ifndef SOUND_NULL_H
 #define SOUND_NULL_H
 
-#include "../hal.h"
+#include "sound_driver.hpp"
 
-extern const HalSoundDriver _null_sound_driver;
+class SoundDriver_Null: public SoundDriver {
+public:
+	/* virtual */ bool CanProbe() { return false; }
+
+	/* virtual */ const char *Start(const char * const *param) { return NULL; }
+
+	/* virtual */ void Stop() { }
+};
+
+class FSoundDriver_Null: public SoundDriverFactory<FSoundDriver_Null> {
+public:
+	/* virtual */ const char *GetName() { return "null"; }
+	/* virtual */ const char *GetDescription() { return "Null Sound Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new SoundDriver_Null(); }
+};
 
 #endif /* SOUND_NULL_H */
--- a/src/sound/sdl_s.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/sound/sdl_s.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -10,12 +10,14 @@
 #include "sdl_s.h"
 #include <SDL.h>
 
+static FSoundDriver_SDL iFSoundDriver_SDL;
+
 static void CDECL fill_sound_buffer(void *userdata, Uint8 *stream, int len)
 {
 	MxMixSamples(stream, len / 4);
 }
 
-static const char *SdlSoundStart(const char * const *parm)
+const char *SoundDriver_SDL::Start(const char * const *parm)
 {
 	SDL_AudioSpec spec;
 
@@ -32,15 +34,10 @@
 	return NULL;
 }
 
-static void SdlSoundStop()
+void SoundDriver_SDL::Stop()
 {
 	SDL_CALL SDL_CloseAudio();
 	SdlClose(SDL_INIT_AUDIO);
 }
 
-const HalSoundDriver _sdl_sound_driver = {
-	SdlSoundStart,
-	SdlSoundStop,
-};
-
 #endif /* WITH_SDL */
--- a/src/sound/sdl_s.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/sound/sdl_s.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,22 @@
 #ifndef SOUND_SDL_H
 #define SOUND_SDL_H
 
-#include "../hal.h"
+#include "sound_driver.hpp"
 
-extern const HalSoundDriver _sdl_sound_driver;
+class SoundDriver_SDL: public SoundDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+};
+
+class FSoundDriver_SDL: public SoundDriverFactory<FSoundDriver_SDL> {
+public:
+	/* virtual */ const char *GetName() { return "sdl"; }
+	/* virtual */ const char *GetDescription() { return "SDL Sound Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new SoundDriver_SDL(); }
+};
 
 #endif /* SOUND_SDL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/sound/sound_driver.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -0,0 +1,27 @@
+/* $Id$ */
+
+#ifndef SOUND_SOUND_DRIVER_HPP
+#define SOUND_SOUND_DRIVER_HPP
+
+#include "../driver.h"
+
+class SoundDriver: public Driver {
+};
+
+class SoundDriverFactoryBase: public DriverFactoryBase {
+};
+
+template <class T>
+class SoundDriverFactory: public SoundDriverFactoryBase {
+public:
+	SoundDriverFactory() { this->RegisterDriver(((T *)this)->GetName(), Driver::DT_SOUND); }
+
+	/**
+	 * Get the long, human readable, name for the Driver-class.
+	 */
+	const char *GetName();
+};
+
+extern SoundDriver *_sound_driver;
+
+#endif /* SOUND_SOUND_DRIVER_HPP */
--- a/src/sound/win32_s.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/sound/win32_s.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -10,6 +10,8 @@
 #include <windows.h>
 #include <mmsystem.h>
 
+static FSoundDriver_Win32 iFSoundDriver_Win32;
+
 static HWAVEOUT _waveout;
 static WAVEHDR _wave_hdr[2];
 static int _bufsize;
@@ -48,7 +50,7 @@
 	}
 }
 
-static const char *Win32SoundStart(const char* const* parm)
+const char *SoundDriver_Win32::Start(const char* const* parm)
 {
 	WAVEFORMATEX wfex;
 	wfex.wFormatTag = WAVE_FORMAT_PCM;
@@ -69,7 +71,7 @@
 	return NULL;
 }
 
-static void Win32SoundStop()
+void SoundDriver_Win32::Stop()
 {
 	HWAVEOUT waveout = _waveout;
 
@@ -79,8 +81,3 @@
 	waveOutUnprepareHeader(waveout, &_wave_hdr[1], sizeof(WAVEHDR));
 	waveOutClose(waveout);
 }
-
-const HalSoundDriver _win32_sound_driver = {
-	Win32SoundStart,
-	Win32SoundStop,
-};
--- a/src/sound/win32_s.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/sound/win32_s.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,22 @@
 #ifndef SOUND_WIN32_H
 #define SOUND_WIN32_H
 
-#include "../hal.h"
+#include "sound_driver.hpp"
 
-extern const HalSoundDriver _win32_sound_driver;
+class SoundDriver_Win32: public SoundDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+};
+
+class FSoundDriver_Win32: public SoundDriverFactory<FSoundDriver_Win32> {
+public:
+	/* virtual */ const char *GetName() { return "win32"; }
+	/* virtual */ const char *GetDescription() { return "Win32 WaveOut Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new SoundDriver_Win32(); }
+};
 
 #endif /* SOUND_WIN32_H */
--- a/src/spritecache.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/spritecache.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -283,6 +283,7 @@
 	scnew->file_pos = scold->file_pos;
 	scnew->ptr = NULL;
 	scnew->id = scold->id;
+	free((char *)scnew->grf_name);
 	scnew->grf_name = strdup(scold->grf_name);
 }
 
@@ -493,6 +494,7 @@
 	NextBlock(_spritecache_ptr)->size = 0;
 
 	/* Reset the spritecache 'pool' */
+	for (uint i = 0; i < _spritecache_items; i++) free((char *)_spritecache[i].grf_name);
 	free(_spritecache);
 	_spritecache_items = 0;
 	_spritecache = NULL;
--- a/src/spriteloader/png.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/spriteloader/png.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -2,6 +2,8 @@
 
 /** @file grf.cpp */
 
+#ifdef WITH_PNG
+
 #include "../stdafx.h"
 #include "../gfx.h"
 #include "../fileio.h"
@@ -184,3 +186,5 @@
 	if (!LoadPNG(sprite, filename, file_pos, true)) return false;
 	return true;
 }
+
+#endif /* WITH_PNG */
--- a/src/station_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/station_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -41,6 +41,7 @@
 #include "misc/autoptr.hpp"
 #include "road.h"
 #include "cargotype.h"
+#include "strings.h"
 
 /**
  * Called if a new block is added to the station-pool
@@ -2479,6 +2480,20 @@
 	st->MarkTilesDirty(true);
 }
 
+static bool IsUniqueStationName(const char *name)
+{
+	const Station *st;
+	char buf[512];
+
+	FOR_ALL_STATIONS(st) {
+		SetDParam(0, st->index);
+		GetString(buf, STR_STATION, lastof(buf));
+		if (strcmp(buf, name) == 0) return false;
+	}
+
+	return true;
+}
+
 /** Rename a station
  * @param tile unused
  * @param flags operation to perform
@@ -2487,12 +2502,14 @@
  */
 CommandCost CmdRenameStation(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 {
-	if (!IsValidStationID(p1) || _cmd_text[0] == '\0') return CMD_ERROR;
+	if (!IsValidStationID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR;
 	Station *st = GetStation(p1);
 
 	if (!CheckOwnership(st->owner)) return CMD_ERROR;
 
-	StringID str = AllocateNameUnique(_cmd_text, 6);
+	if (!IsUniqueStationName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
+
+	StringID str = AllocateName(_cmd_text, 6);
 	if (str == 0) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
--- a/src/stdafx.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/stdafx.h	Sat Jul 07 09:20:52 2007 +0000
@@ -154,6 +154,12 @@
 #  pragma warning(disable: 4996)   // 'strdup' was declared deprecated
 #  define _CRT_SECURE_NO_DEPRECATE // all deprecated 'unsafe string functions
 #  define _CRT_NON_CONFORMING_SWPRINTFS // another deprecated stuff
+#  pragma warning(disable: 6308)   // code analyzer: 'realloc' might return null pointer: assigning null pointer to 't_ptr', which is passed as an argument to 'realloc', will cause the original memory block to be leaked
+#  pragma warning(disable: 6011)   // code analyzer: Dereferencing NULL pointer 'pfGetAddrInfo': Lines: 995, 996, 998, 999, 1001
+#  pragma warning(disable: 6326)   // code analyzer: potential comparison of a constant with another constant
+#  pragma warning(disable: 6031)   // code analyzer: Return value ignored: 'ReadFile'
+#  pragma warning(disable: 6255)   // code analyzer: _alloca indicates failure by raising a stack overflow exception. Consider using _malloca instead
+#  pragma warning(disable: 6246)   // code analyzer: Local declaration of 'statspec' hides declaration of the same name in outer scope. For additional information, see previous declaration at ...
 # else /* _MSC_VER >= 1400  ( <1400 for MSVC2003) */
 #  pragma warning(disable: 4288)   // nonstandard extension used : 'y' : loop control variable declared in the for-loop is used outside the for-loop scope; it conflicts with the declaration in the outer scope
 #  pragma warning(disable: 4292)   // compiler limit : terminating debug information emission for enum 'StringIdEnum' with member 'STR_801D_COAL_CAR'
--- a/src/strgen/strgen.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/strgen/strgen.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -66,7 +66,7 @@
 static bool _translated;
 static const char* _file = "(unknown file)";
 static int _cur_line;
-static int _errors, _warnings;
+static int _errors, _warnings, _show_todo;
 
 struct LangString {
 	char *name;            // Name of the string
@@ -377,7 +377,7 @@
 			fatal("%s: Invalid number of plural forms. Expecting %d, found %d.", _cur_ident,
 				_plural_form_counts[_lang_pluralform], nw);
 		} else {
-			warning("'%s' is untranslated. Tweaking english string to allow compilation for plural forms", _cur_ident);
+			if ((_show_todo & 2) != 0) warning("'%s' is untranslated. Tweaking english string to allow compilation for plural forms", _cur_ident);
 			if (nw > _plural_form_counts[_lang_pluralform]) {
 				nw = _plural_form_counts[_lang_pluralform];
 			} else {
@@ -1130,7 +1130,7 @@
 }
 
 
-static void WriteLangfile(const char *filename, int show_todo)
+static void WriteLangfile(const char *filename)
 {
 	FILE *f;
 	uint in_use[32];
@@ -1175,10 +1175,11 @@
 			_cur_line = ls->line;
 
 			// Produce a message if a string doesn't have a translation.
-			if (show_todo > 0 && ls->translated == NULL) {
-				if (show_todo == 2) {
+			if (_show_todo > 0 && ls->translated == NULL) {
+				if ((_show_todo & 2) != 0) {
 					warning("'%s' is untranslated", ls->name);
-				} else {
+				}
+				if ((_show_todo & 1) != 0) {
 					const char *s = "<TODO> ";
 					while (*s != '\0') PutByte(*s++);
 				}
@@ -1287,8 +1288,6 @@
 	const char *src_dir = ".";
 	const char *dest_dir = NULL;
 
-	int show_todo = 0;
-
 	while (argc > 1 && *argv[1] == '-') {
 		if (strcmp(argv[1], "-v") == 0 || strcmp(argv[1], "--version") == 0) {
 			puts("$Revision$");
@@ -1296,13 +1295,13 @@
 		}
 
 		if (strcmp(argv[1], "-t") == 0 || strcmp(argv[1], "--todo") == 0) {
-			show_todo = 1;
+			_show_todo |= 1;
 			argc--, argv++;
 			continue;
 		}
 
 		if (strcmp(argv[1], "-w") == 0 || strcmp(argv[1], "--warning") == 0) {
-			show_todo = 2;
+			_show_todo |= 2;
 			argc--, argv++;
 			continue;
 		}
@@ -1378,10 +1377,10 @@
 		r = strrchr(pathbuf, '.');
 		if (r == NULL || strcmp(r, ".txt") != 0) r = strchr(pathbuf, '\0');
 		ttd_strlcpy(r, ".lng", (size_t)(r - pathbuf));
-		WriteLangfile(pathbuf, show_todo);
+		WriteLangfile(pathbuf);
 
 		/* if showing warnings, print a summary of the language */
-		if (show_todo == 2) {
+		if ((_show_todo & 2) != 0) {
 			fprintf(stdout, "%d warnings and %d errors for %s\n", _warnings, _errors, pathbuf);
 		}
 	} else {
--- a/src/table/build_industry.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/table/build_industry.h	Sat Jul 07 09:20:52 2007 +0000
@@ -1097,6 +1097,7 @@
  * @param sndc number of sounds
  * @param snd  sounds table
  * @param d    cost multiplier
+ * @param pc   prospecting chance
  * @param ai1  appear chance ingame - temperate
  * @param ai2  appear chance ingame - arctic
  * @param ai3  appear chance ingame - tropic
@@ -1131,9 +1132,9 @@
  * @param s3   text for production down
  */
 
-#define MI(tbl, sndc, snd, d, ai1, ai2, ai3, ai4, ag1, ag2, ag3, ag4, col, \
+#define MI(tbl, sndc, snd, d, pc, ai1, ai2, ai3, ai4, ag1, ag2, ag3, ag4, col, \
            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,            \
+	 {tbl, lengthof(tbl), min(255, d), d, pc, {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, true, {0, 0, NULL, NULL, INVALID_INDUSTRYTYPE}}
 	/* Format:
@@ -1148,371 +1149,371 @@
 	   messages : Closure                      production up                      production down   */
 static const IndustrySpec _origin_industry_specs[NEW_INDUSTRYOFFSET] = {
 	MI(_tile_table_coal_mine,                  0, NULL,
-	   1680,                                   2, 3, 0, 0,    8, 8, 0, 0,        215,
+	   1680, 0xB3333333,                       2, 3, 0, 0,    8, 8, 0, 0,        215,
 	   IT_POWER_STATION,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_COAL,       15, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE | 1 << LT_ARCTIC,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TEMPERATE | 1 << LT_ARCTIC,
 	   INDUSTRYBEH_CAN_SUBSIDENCE,
 	   STR_4802_COAL_MINE,                     STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4836_NEW_COAL_SEAM_FOUND_AT,   STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_power_station,              0, NULL,
-	   240,                                    2, 2, 0, 0,    5, 5, 0, 0,        184,
+	   240,  0xFFFFFFFF,                       2, 2, 0, 0,    5, 5, 0, 0,        184,
 	   IT_COAL_MINE,      IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_INVALID,     0, CT_INVALID,       0, 5,
 	   CT_COAL,        0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_NOT_CLOSABLE,              1 << LT_TEMPERATE | 1 << LT_ARCTIC,
+	   INDUSTRYLIFE_BLACK_HOLE,                1 << LT_TEMPERATE | 1 << LT_ARCTIC,
 	   INDUSTRYBEH_NONE,
 	   STR_4803_POWER_STATION,                 STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_sawmill,                    1, _sawmill_sounds,
-	   224,                                    2, 0, 0, 0,    5, 0, 0, 0,        194,
+	   224,  0xFFFFFFFF,                       2, 0, 0, 0,    5, 0, 0, 0,        194,
 	   IT_FOREST,         IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_GOODS,       0, CT_INVALID,       0, 5,
 	   CT_WOOD,      256, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TEMPERATE,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_TEMPERATE,
 	   INDUSTRYBEH_NONE,
 	   STR_4804_SAWMILL,                       STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_forest,                     0, NULL,
-	   1600,                                   3, 4, 0, 0,    5, 5, 0, 0,         86,
+	   1600, 0xBFFFFFFF,                       3, 4, 0, 0,    5, 5, 0, 0,         86,
 	   IT_SAWMILL,        IT_PAPER_MILL,       IT_INVALID,       CHECK_FOREST,
 	   CT_WOOD,       13, CT_INVALID,       0, 30,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE | 1 << LT_ARCTIC,
+	   INDUSTRYLIFE_ORGANIC,                   1 << LT_TEMPERATE | 1 << LT_ARCTIC,
 	   INDUSTRYBEH_NONE,
 	   STR_4805_FOREST,                        STR_482E_NEW_BEING_PLANTED_NEAR,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MI(_tile_table_oil_refinery,               0, NULL,
-	   244,                                    2, 2, 2, 0,    4, 4, 4, 0,        191,
+	   244,  0xFFFFFFFF,                       2, 2, 2, 0,    4, 4, 4, 0,        191,
 	   IT_OIL_RIG,        IT_INVALID,          IT_INVALID,       CHECK_REFINERY,
 	   CT_GOODS,       0, CT_INVALID,       0, 5,
 	   CT_OIL,       256, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TEMPERATE | 1 << LT_ARCTIC | 1 << LT_TROPIC,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_TEMPERATE | 1 << LT_ARCTIC | 1 << LT_TROPIC,
 	   INDUSTRYBEH_AIRPLANE_ATTACKS,
 	   STR_4806_OIL_REFINERY,                  STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_oil_rig,                    0, NULL,
-	   1920,                                   6, 0, 0, 0,    0, 0, 0, 0,        152,
+	   1920, 0x99999999,                       6, 0, 0, 0,    0, 0, 0, 0,        152,
 	   IT_OIL_REFINERY,   IT_INVALID,          IT_INVALID,       CHECK_OIL_RIG,
 	   CT_OIL,        15, CT_PASSENGERS,    2, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TEMPERATE,
 	   INDUSTRYBEH_BUILT_ONWATER | INDUSTRYBEH_AFTER_1960 | INDUSTRYBEH_AI_AIRSHIP_ROUTES,
 	   STR_4807_OIL_RIG,                       STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4837_NEW_OIL_RESERVES_FOUND,   STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_factory,                    1, _factory_sounds,
-	   208,                                    2, 0, 0, 0,    5, 0, 0, 0,        174,
+	   208,  0xFFFFFFFF,                       2, 0, 0, 0,    5, 0, 0, 0,        174,
 	   IT_FARM,           IT_STEEL_MILL,       IT_INVALID,       CHECK_NOTHING,
 	   CT_GOODS,       0, CT_INVALID,       0, 5,
-	   CT_LIVESTOCK, 256, CT_GRAIN ,      256, CT_STEEL,    256,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TEMPERATE,
+	   CT_LIVESTOCK, 256, CT_GRAIN,       256, CT_STEEL,    256,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_TEMPERATE,
 	   INDUSTRYBEH_CHOPPER_ATTACKS,
 	   STR_4808_FACTORY,                       STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_printing_works,             1, _factory_sounds,
-	   208,                                    0, 2, 0, 0,    0, 5, 0, 0,        174,
+	   208,  0xFFFFFFFF,                       0, 2, 0, 0,    0, 5, 0, 0,        174,
 	   IT_PAPER_MILL,     IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_GOODS,       0, CT_INVALID,       0, 5,
 	   CT_PAPER,     256, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_ARCTIC,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_ARCTIC,
 	   INDUSTRYBEH_NONE,
 	   STR_4809_PRINTING_WORKS,                STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_steel_mill,                 0, NULL,
-	   215,                                    2, 0, 0, 0,    5, 0, 0, 0,         10,
+	   215,  0xFFFFFFFF,                       2, 0, 0, 0,    5, 0, 0, 0,         10,
 	   IT_IRON_MINE,      IT_FACTORY,          IT_INVALID,       CHECK_NOTHING,
 	   CT_STEEL,       0, CT_INVALID,       0, 5,
 	   CT_IRON_ORE,  256, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TEMPERATE,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_TEMPERATE,
 	   INDUSTRYBEH_NONE,
 	   STR_480A_STEEL_MILL,                    STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_farm,                       3, _farm_sounds,
-	   2000,                                   2, 4, 0, 0,    9, 9, 0, 0,         48,
+	   2000, 0xD9999999,                       2, 4, 0, 0,    9, 9, 0, 0,         48,
 	   IT_FACTORY,        IT_FOOD_PROCESS,     IT_INVALID,       CHECK_FARM,
 	   CT_GRAIN,      10, CT_LIVESTOCK,    10, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE | 1 << LT_ARCTIC,
+	   INDUSTRYLIFE_ORGANIC,                   1 << LT_TEMPERATE | 1 << LT_ARCTIC,
 	   INDUSTRYBEH_PLANT_FIELDS | INDUSTRYBEH_PLANT_ON_BUILT,
 	   STR_480B_FARM,                          STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MI(_tile_table_copper_mine,                0, NULL,
-	   1640,                                   0, 0, 3, 0,    0, 0, 4, 0,         10,
+	   1640, 0xB3333333,                       0, 0, 3, 0,    0, 0, 4, 0,         10,
 	   IT_FACTORY_2,      IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_COPPER_ORE, 10, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TROPIC,
 	   INDUSTRYBEH_NONE,
 	   STR_480C_COPPER_ORE_MINE,               STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_oil_well,                   0, NULL,
-	   1760,                                   0, 5, 3, 0,    4, 5, 5, 0,        152,
+	   1760, 0x99999999,                       0, 5, 3, 0,    4, 5, 5, 0,        152,
 	   IT_OIL_REFINERY,   IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_OIL,        12, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE | 1 << LT_ARCTIC | 1 << LT_TROPIC,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TEMPERATE | 1 << LT_ARCTIC | 1 << LT_TROPIC,
 	   INDUSTRYBEH_DONT_INCR_PROD | INDUSTRYBEH_BEFORE_1950,
 	   STR_480D_OIL_WELLS,                     STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4837_NEW_OIL_RESERVES_FOUND,   STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_bank,                       0, NULL,
-	   1544,                                   7, 0, 0, 0,    0, 0, 0, 0,         15,
+	   1544, 0xA6666666,                       7, 0, 0, 0,    0, 0, 0, 0,         15,
 	   IT_BANK_TEMP,      IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_VALUABLES,   6, CT_INVALID,       0, 5,
 	   CT_VALUABLES,   0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_NOT_CLOSABLE,              1 << LT_TEMPERATE,
+	   INDUSTRYLIFE_BLACK_HOLE,                1 << LT_TEMPERATE,
 	   INDUSTRYBEH_TOWN1200_MORE | INDUSTRYBEH_ONLY_INTOWN,
 	   STR_480E_BANK,                          STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_food_process,               0, NULL,
-	   206,                                    0, 2, 2, 0,    0, 3, 4, 0,         55,
+	   206,  0xFFFFFFFF,                       0, 2, 2, 0,    0, 3, 4, 0,         55,
 	   IT_FRUIT_PLANTATION, IT_FARM,           IT_FARM_2,        CHECK_NOTHING,
 	   CT_FOOD,        0, CT_INVALID,       0, 5,
 	   CT_FRUIT,     256, CT_MAIZE,       256, CT_INVALID,     0,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_ARCTIC | 1 << LT_TROPIC,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_ARCTIC | 1 << LT_TROPIC,
 	   INDUSTRYBEH_NONE,
 	   STR_480F_FOOD_PROCESSING_PLANT,         STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_paper_mill,                 1, _sawmill_sounds,
-	   227,                                    0, 2, 0, 0,    0, 5, 0, 0,         10,
+	   227,  0xFFFFFFFF,                       0, 2, 0, 0,    0, 5, 0, 0,         10,
 	   IT_FOREST,         IT_PRINTING_WORKS,   IT_INVALID,       CHECK_NOTHING,
 	   CT_PAPER,       0, CT_INVALID,       0, 5,
 	   CT_WOOD,      256, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_ARCTIC,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_ARCTIC,
 	   INDUSTRYBEH_NONE,
 	   STR_4810_PAPER_MILL,                    STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_gold_mine,                  0, NULL,
-	   1664,                                   0, 3, 0, 0,    0, 4, 0, 0,        194,
+	   1664, 0x99999999,                       0, 3, 0, 0,    0, 4, 0, 0,        194,
 	   IT_BANK_TROPIC_ARCTIC, IT_INVALID,      IT_INVALID,       CHECK_NOTHING,
 	   CT_GOLD,        7, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_ARCTIC,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_ARCTIC,
 	   INDUSTRYBEH_NONE,
 	   STR_4811_GOLD_MINE,                     STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_bank2,                      0, NULL,
-	   151,                                    0, 3, 3, 0,    0, 6, 5, 0,         15,
+	   151,  0xA6666666,                       0, 3, 3, 0,    0, 6, 5, 0,         15,
 	   IT_GOLD_MINE,      IT_DIAMOND_MINE,     IT_INVALID,       CHECK_NOTHING,
 	   CT_INVALID,     0, CT_INVALID,       0, 5,
 	   CT_GOLD,      256, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_NOT_CLOSABLE,              1 << LT_ARCTIC | 1 << LT_TROPIC,
+	   INDUSTRYLIFE_BLACK_HOLE,                1 << LT_ARCTIC | 1 << LT_TROPIC,
 	   INDUSTRYBEH_ONLY_INTOWN,
 	   STR_4812_BANK,                          STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_diamond_mine,               0, NULL,
-	   1704,                                   0, 0, 3, 0,    0, 0, 4, 0,        184,
+	   1704, 0x99999999,                       0, 0, 3, 0,    0, 0, 4, 0,        184,
 	   IT_BANK_TROPIC_ARCTIC, IT_INVALID,      IT_INVALID,       CHECK_NOTHING,
 	   CT_DIAMONDS,    7, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TROPIC,
 	   INDUSTRYBEH_NONE,
 	   STR_4813_DIAMOND_MINE,                  STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_iron_mine,                  0, NULL,
-	   1760,                                   2, 0, 0, 0,    5, 0, 0, 0,         55,
+	   1760, 0xB3333333,                       2, 0, 0, 0,    5, 0, 0, 0,         55,
 	   IT_STEEL_MILL,     IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_IRON_ORE,   10, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TEMPERATE,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TEMPERATE,
 	   INDUSTRYBEH_NONE,
 	   STR_4814_IRON_ORE_MINE,                 STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_fruit_plantation,           0, NULL,
-	   1800,                                   0, 0, 2, 0,    0, 0, 4, 0,         86,
+	   1800, 0xBFFFFFFF,                       0, 0, 2, 0,    0, 0, 4, 0,         86,
 	   IT_FOOD_PROCESS,   IT_INVALID,          IT_INVALID,       CHECK_PLANTATION,
 	   CT_FRUIT,      10, CT_INVALID,       0, 15,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
+	   INDUSTRYLIFE_ORGANIC,                   1 << LT_TROPIC,
 	   INDUSTRYBEH_NONE,
 	   STR_4815_FRUIT_PLANTATION,              STR_482E_NEW_BEING_PLANTED_NEAR,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MI(_tile_table_rubber_plantation,          0, NULL,
-	   1744,                                   0, 0, 3, 0,    0, 0, 4, 0,         39,
+	   1744, 0xBFFFFFFF,                       0, 0, 3, 0,    0, 0, 4, 0,         39,
 	   IT_FACTORY_2,      IT_INVALID,          IT_INVALID,       CHECK_PLANTATION,
 	   CT_RUBBER,     10, CT_INVALID,       0, 15,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
+	   INDUSTRYLIFE_ORGANIC,                   1 << LT_TROPIC,
 	   INDUSTRYBEH_NONE,
 	   STR_4816_RUBBER_PLANTATION,             STR_482E_NEW_BEING_PLANTED_NEAR,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MI(_tile_table_water_supply,               0, NULL,
-	   1592,                                   0, 0, 3, 0,    0, 0, 4, 0,         37,
+	   1592, 0xB3333333,                       0, 0, 3, 0,    0, 0, 4, 0,         37,
 	   IT_WATER_TOWER,    IT_INVALID,          IT_INVALID,       CHECK_WATER,
 	   CT_WATER,      12, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TROPIC,
 	   INDUSTRYBEH_NONE,
 	   STR_4817_WATER_SUPPLY,                  STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_water_tower,                0, NULL,
-	   115,                                    0, 0, 4, 0,    0, 0, 8, 0,        208,
+	   115,  0xFFFFFFFF,                       0, 0, 4, 0,    0, 0, 8, 0,        208,
 	   IT_WATER_SUPPLY,   IT_INVALID,          IT_INVALID,       CHECK_WATER,
 	   CT_INVALID,     0, CT_INVALID,       0, 5,
 	   CT_WATER,     256, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_NOT_CLOSABLE,              1 << LT_TROPIC,
+	   INDUSTRYLIFE_BLACK_HOLE,                1 << LT_TROPIC,
 	   INDUSTRYBEH_ONLY_INTOWN,
 	   STR_4818_WATER_TOWER,                   STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_factory2,                   1, _factory_sounds,
-	   208,                                     0, 0, 2, 0,    0, 0, 4, 0,        174,
+	   208,  0xFFFFFFFF,                       0, 0, 2, 0,    0, 0, 4, 0,        174,
 	   IT_RUBBER_PLANTATION, IT_COPPER_MINE,   IT_LUMBER_MILL,   CHECK_PLANTATION,
 	   CT_GOODS,       0, CT_INVALID,       0, 5,
 	   CT_RUBBER,    256, CT_COPPER_ORE,  256, CT_WOOD,      256,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TROPIC,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_TROPIC,
 	   INDUSTRYBEH_NONE,
 	   STR_4819_FACTORY,                       STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_farm2,                      0, NULL,
-	   2000,                                   0, 0, 1, 0,    0, 0, 2, 0,         48,
+	   2000, 0xD9999999,                       0, 0, 1, 0,    0, 0, 2, 0,         48,
 	   IT_FOOD_PROCESS,   IT_INVALID,          IT_INVALID,       CHECK_PLANTATION,
 	   CT_MAIZE,      11, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TROPIC,
+	   INDUSTRYLIFE_ORGANIC,                   1 << LT_TROPIC,
 	   INDUSTRYBEH_PLANT_FIELDS | INDUSTRYBEH_PLANT_ON_BUILT,
 	   STR_481A_FARM,                          STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MI(_tile_table_lumber_mill,                0, NULL,
-	   135,                                    0, 0, 0, 0,    0, 0, 0, 0,        194,
+	   135,  0xFFFFFFFF,                       0, 0, 0, 0,    0, 0, 0, 0,        194,
 	   IT_FACTORY_2,      IT_INVALID,          IT_INVALID,       CHECK_LUMBERMILL,
 	   CT_WOOD,        0, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TROPIC,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_TROPIC,
 	   INDUSTRYBEH_CUT_TREES,
 	   STR_481B_LUMBER_MILL,                   STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4834_LACK_OF_NEARBY_TREES_CAUSES,   STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_cotton_candy,               0, NULL,
-	   1560,                                   0, 0, 0, 3,    0, 0, 0, 5,         48,
+	   1560, 0xBFFFFFFF,                       0, 0, 0, 3,    0, 0, 0, 5,         48,
 	   IT_CANDY_FACTORY,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_COTTON_CANDY, 13, CT_INVALID,    0, 30,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
+	   INDUSTRYLIFE_ORGANIC,                   1 << LT_TOYLAND,
 	   INDUSTRYBEH_NONE,
 	   STR_481C_COTTON_CANDY_FOREST,           STR_482E_NEW_BEING_PLANTED_NEAR,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_candy_factory,              0, NULL,
-	   206,                                    0, 0, 0, 3,    0, 0, 0, 5,        174,
+	   206,  0xFFFFFFFF,                       0, 0, 0, 3,    0, 0, 0, 5,        174,
 	   IT_COTTON_CANDY,   IT_TOFFEE_QUARRY,    IT_SUGAR_MINE,    CHECK_NOTHING,
 	   CT_CANDY,       0, CT_INVALID,       0, 5,
 	   CT_SUGAR,     256, CT_TOFFEE,      256, CT_COTTON_CANDY, 256,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TOYLAND,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_TOYLAND,
 	   INDUSTRYBEH_NONE,
 	   STR_481D_CANDY_FACTORY,                 STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_battery_farm,               0, NULL,
-	   1496,                                   0, 0, 0, 3,    0, 0, 0, 4,         39,
+	   1496, 0xB3333333,                       0, 0, 0, 3,    0, 0, 0, 4,         39,
 	   IT_TOY_FACTORY,    IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_BATTERIES,  11, CT_INVALID,      0, 30,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
+	   INDUSTRYLIFE_ORGANIC,                   1 << LT_TOYLAND,
 	   INDUSTRYBEH_NONE,
 	   STR_481E_BATTERY_FARM,                  STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4838_IMPROVED_FARMING_METHODS, STR_483A_INSECT_INFESTATION_CAUSES),
 
 	MI(_tile_table_cola_wells,                 0, NULL,
-	   1544,                                   0, 0, 0, 3,    0, 0, 0, 5,         55,
+	   1544, 0x99999999,                       0, 0, 0, 3,    0, 0, 0, 5,         55,
 	   IT_FIZZY_DRINK_FACTORY, IT_INVALID,     IT_INVALID,       CHECK_NOTHING,
 	   CT_COLA,       12, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TOYLAND,
 	   INDUSTRYBEH_NONE,
 	   STR_481F_COLA_WELLS,                    STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_toy_shop,                   0, NULL,
-	   133,                                    0, 0, 0, 3,    0, 0, 0, 4,        208,
+	   133,  0xFFFFFFFF,                       0, 0, 0, 3,    0, 0, 0, 4,        208,
 	   IT_TOY_FACTORY,    IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_INVALID,     0, CT_INVALID,       0, 5,
 	   CT_TOYS,      256, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_NOT_CLOSABLE,              1 << LT_TOYLAND,
+	   INDUSTRYLIFE_BLACK_HOLE,                1 << LT_TOYLAND,
 	   INDUSTRYBEH_ONLY_NEARTOWN,
 	   STR_4820_TOY_SHOP,                      STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_toy_factory,                0, NULL,
-	   163,                                    0, 0, 0, 3,    0, 0, 0, 5,          10,
+	   163,  0xFFFFFFFF,                       0, 0, 0, 3,    0, 0, 0, 5,          10,
 	   IT_PLASTIC_FOUNTAINS, IT_BATTERY_FARM,  IT_TOY_SHOP,     CHECK_NOTHING,
 	   CT_TOYS,        0, CT_INVALID,       0, 5,
 	   CT_PLASTIC,   256, CT_BATTERIES,   256, CT_INVALID,     0,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TOYLAND,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_TOYLAND,
 	   INDUSTRYBEH_NONE,
 	   STR_4821_TOY_FACTORY,                   STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_plastic_fountain,           1, _plastic_mine_sounds,
-	   1536,                                   0, 0, 0, 3,    0, 0, 0, 5,         37,
+	   1536, 0xA6666666,                       0, 0, 0, 3,    0, 0, 0, 5,         37,
 	   IT_TOY_FACTORY,    IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_PLASTIC,    14, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TOYLAND,
 	   INDUSTRYBEH_NONE,
 	   STR_4822_PLASTIC_FOUNTAINS,             STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_fizzy_drink,                0, NULL,
-	   177,                                    0, 0, 0, 3,    0, 0, 0, 4,        184,
+	   177,  0xFFFFFFFF,                       0, 0, 0, 3,    0, 0, 0, 4,        184,
 	   IT_COLA_WELLS,     IT_BUBBLE_GENERATOR, IT_INVALID,       CHECK_NOTHING,
 	   CT_FIZZY_DRINKS, 0, CT_INVALID,      0, 5,
 	   CT_COLA,       256, CT_BUBBLES,    256, CT_INVALID,     0,
-	   INDUSTRYLIFE_CLOSABLE,                  1 << LT_TOYLAND,
+	   INDUSTRYLIFE_PROCESSING,                1 << LT_TOYLAND,
 	   INDUSTRYBEH_NONE,
 	   STR_4823_FIZZY_DRINK_FACTORY,           STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4833_SUPPLY_PROBLEMS_CAUSE_TO,      STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_bubble_generator,           0, NULL,
-	   1624,                                   0, 0, 0, 3,    0, 0, 0, 5,        152,
+	   1624, 0xB3333333,                       0, 0, 0, 3,    0, 0, 0, 5,        152,
 	   IT_FIZZY_DRINK_FACTORY, IT_INVALID,     IT_INVALID,       CHECK_BUBBLEGEN,
 	   CT_BUBBLES,    13, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TOYLAND,
 	   INDUSTRYBEH_NONE,
 	   STR_4824_BUBBLE_GENERATOR,              STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_toffee_quarry,              0, NULL,
-	   1704,                                   0, 0, 0, 3,    0, 0, 0, 5,        194,
+	   1704, 0xCCCCCCCC,                       0, 0, 0, 3,    0, 0, 0, 5,        194,
 	   IT_CANDY_FACTORY,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_TOFFEE,     10, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TOYLAND,
 	   INDUSTRYBEH_NONE,
 	   STR_4825_TOFFEE_QUARRY,                 STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
 
 	MI(_tile_table_sugar_mine,                 0, NULL,
-	   1680,                                   0, 0, 0, 2,    0, 0, 0, 4,         15,
+	   1680, 0xBFFFFFFF,                       0, 0, 0, 2,    0, 0, 0, 4,         15,
 	   IT_CANDY_FACTORY,  IT_INVALID,          IT_INVALID,       CHECK_NOTHING,
 	   CT_SUGAR,      11, CT_INVALID,       0, 5,
 	   CT_INVALID,     0, CT_INVALID,       0, CT_INVALID,     0,
-	   INDUSTRYLIFE_PRODUCTION,                1 << LT_TOYLAND,
+	   INDUSTRYLIFE_EXTRACTIVE,                1 << LT_TOYLAND,
 	   INDUSTRYBEH_NONE,
 	   STR_4826_SUGAR_MINE,                    STR_482D_NEW_UNDER_CONSTRUCTION,
 	   STR_4832_ANNOUNCES_IMMINENT_CLOSURE,    STR_4835_INCREASES_PRODUCTION,     STR_4839_PRODUCTION_DOWN_BY_50),
--- a/src/texteff.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/texteff.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -11,7 +11,6 @@
 #include "landscape.h"
 #include "viewport.h"
 #include "saveload.h"
-#include "hal.h"
 #include "console.h"
 #include "string.h"
 #include "variables.h"
@@ -20,6 +19,7 @@
 #include <stdarg.h> /* va_list */
 #include "date.h"
 #include "texteff.hpp"
+#include "video/video_driver.hpp"
 
 enum {
 	MAX_TEXTMESSAGE_LENGTH = 200,
@@ -168,7 +168,7 @@
 		/* Put our 'shot' back to the screen */
 		blitter->CopyFromBuffer(blitter->MoveTo(_screen.dst_ptr, x, y), _textmessage_backup, width, height);
 		/* And make sure it is updated next time */
-		_video_driver->make_dirty(x, y, width, height);
+		_video_driver->MakeDirty(x, y, width, height);
 
 		_textmessage_dirty = true;
 	}
@@ -248,7 +248,7 @@
 	}
 
 	/* Make sure the data is updated next flush */
-	_video_driver->make_dirty(x, y, width, height);
+	_video_driver->MakeDirty(x, y, width, height);
 
 	_textmessage_visible = true;
 	_textmessage_dirty = false;
--- a/src/town_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/town_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -1859,6 +1859,20 @@
 	if (eflags & BUILDING_HAS_4_TILES) DoClearTownHouseHelper(tile + TileDiffXY(1, 1));
 }
 
+static bool IsUniqueTownName(const char *name)
+{
+	const Town *t;
+	char buf[512];
+
+	FOR_ALL_TOWNS(t) {
+		SetDParam(0, t->index);
+		GetString(buf, STR_TOWN, lastof(buf));
+		if (strcmp(buf, name) == 0) return false;
+	}
+
+	return true;
+}
+
 /** Rename a town (server-only).
  * @param tile unused
  * @param flags type of operation
@@ -1870,16 +1884,19 @@
 	StringID str;
 	Town *t;
 
-	if (!IsValidTownID(p1) || _cmd_text[0] == '\0') return CMD_ERROR;
+	if (!IsValidTownID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR;
 
 	t = GetTown(p1);
 
-	str = AllocateNameUnique(_cmd_text, 4);
+	if (!IsUniqueTownName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
+
+	str = AllocateName(_cmd_text, 4);
 	if (str == 0) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
 		DeleteName(t->townnametype);
 		t->townnametype = str;
+		t->townnamegrfid = 0;
 
 		UpdateTownVirtCoord(t);
 		_town_sort_dirty = true;
--- a/src/train.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/train.h	Sat Jul 07 09:20:52 2007 +0000
@@ -272,6 +272,8 @@
 	void PlayLeaveStationSound() const;
 	bool IsPrimaryVehicle() const { return IsFrontEngine(this); }
 	bool HasFront() const { return true; }
+	int GetImage(Direction direction) const;
+	void Tick();
 };
 
 #endif /* TRAIN_H */
--- a/src/train_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/train_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -448,22 +448,22 @@
 	v->acceleration = clamp(power / weight * 4, 1, 255);
 }
 
-int GetTrainImage(const Vehicle* v, Direction direction)
+int Train::GetImage(Direction direction) const
 {
-	int img = v->spritenum;
+	int img = this->spritenum;
 	int base;
 
-	if (HASBIT(v->u.rail.flags, VRF_REVERSE_DIRECTION)) direction = ReverseDir(direction);
+	if (HASBIT(this->u.rail.flags, VRF_REVERSE_DIRECTION)) direction = ReverseDir(direction);
 
 	if (is_custom_sprite(img)) {
-		base = GetCustomVehicleSprite(v, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(img)));
+		base = GetCustomVehicleSprite(this, (Direction)(direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(img)));
 		if (base != 0) return base;
-		img = orig_rail_vehicle_info[v->engine_type].image_index;
+		img = orig_rail_vehicle_info[this->engine_type].image_index;
 	}
 
 	base = _engine_sprite_base[img] + ((direction + _engine_sprite_add[img]) & _engine_sprite_and[img]);
 
-	if (v->cargo.Count() >= v->cargo_cap / 2U) base += _wagon_full_adder[img];
+	if (this->cargo.Count() >= this->cargo_cap / 2U) base += _wagon_full_adder[img];
 	return base;
 }
 
@@ -587,7 +587,7 @@
 
 			InvalidateWindow(WC_VEHICLE_DEPOT, v->tile);
 			if (IsLocalPlayer()) {
-				InvalidateAutoreplaceWindow(VEH_TRAIN); // updates the replace Train window
+				InvalidateAutoreplaceWindow(VEH_TRAIN, v->group_id); // updates the replace Train window
 			}
 			GetPlayer(_current_player)->num_engines[engine]++;
 		}
@@ -771,7 +771,7 @@
 			RebuildVehicleLists();
 			InvalidateWindow(WC_COMPANY, v->owner);
 			if (IsLocalPlayer())
-				InvalidateAutoreplaceWindow(VEH_TRAIN); // updates the replace Train window
+				InvalidateAutoreplaceWindow(VEH_TRAIN, v->group_id); // updates the replace Train window
 
 			GetPlayer(_current_player)->num_engines[p1]++;
 		}
@@ -1424,7 +1424,7 @@
 static void UpdateVarsAfterSwap(Vehicle *v)
 {
 	v->UpdateDeltaXY(v->direction);
-	v->cur_image = GetTrainImage(v, v->direction);
+	v->cur_image = v->GetImage(v->direction);
 	BeginVehicleMove(v);
 	VehiclePositionChanged(v);
 	EndVehicleMove(v);
@@ -2081,7 +2081,7 @@
 	v->cur_speed = 0;
 
 	v->UpdateDeltaXY(v->direction);
-	v->cur_image = GetTrainImage(v, v->direction);
+	v->cur_image = v->GetImage(v->direction);
 	VehiclePositionChanged(v);
 	UpdateSignalsOnSegment(v->tile, DirToDiagDir(v->direction));
 	UpdateTrainAcceleration(v);
@@ -2392,12 +2392,19 @@
 		default: break;
 	}
 
+	/**
+	 * Reversing because of order change is allowed only just after leaving a
+	 * station (and the difficulty setting to allowed, of course)
+	 * this can be detected because only after OT_LEAVESTATION, current_order
+	 * will be reset to nothing. (That also happens if no order, but in that case
+	 * it won't hit the point in code where may_reverse is checked)
+	 */
+	bool may_reverse = v->current_order.type == OT_NOTHING;
+
 	/* check if we've reached the waypoint? */
-	bool at_waypoint = false;
 	if (v->current_order.type == OT_GOTO_WAYPOINT && v->tile == v->dest_tile) {
 		UpdateVehicleTimetable(v, true);
 		v->cur_order_index++;
-		at_waypoint = true;
 	}
 
 	/* check if we've reached a non-stop station while TTDPatch nonstop is enabled.. */
@@ -2453,14 +2460,14 @@
 			return false;
 	}
 
-	return !at_waypoint && CheckReverseTrain(v);
+	return may_reverse && CheckReverseTrain(v);
 }
 
 void Train::MarkDirty()
 {
 	Vehicle *v = this;
 	do {
-		v->cur_image = GetTrainImage(v, v->direction);
+		v->cur_image = v->GetImage(v->direction);
 		MarkAllViewportsDirty(v->left_coord, v->top_coord, v->right_coord + 1, v->bottom_coord + 1);
 	} while ((v = v->next) != NULL);
 
@@ -2962,7 +2969,7 @@
 		/* update image of train, as well as delta XY */
 		Direction newdir = GetNewVehicleDirection(v, gp.x, gp.y);
 		v->UpdateDeltaXY(newdir);
-		if (update_image) v->cur_image = GetTrainImage(v, newdir);
+		if (update_image) v->cur_image = v->GetImage(newdir);
 
 		v->x_pos = gp.x;
 		v->y_pos = gp.y;
@@ -3069,7 +3076,7 @@
 			v->direction = ChangeDir(v->direction, delta[GB(Random(), 0, 2)]);
 			BeginVehicleMove(v);
 			v->UpdateDeltaXY(v->direction);
-			v->cur_image = GetTrainImage(v, v->direction);
+			v->cur_image = v->GetImage(v->direction);
 			/* Refrain from updating the z position of the vehicle when on
 			   a bridge, because AfterSetTrainPos will put the vehicle under
 			   the bridge in that case */
@@ -3298,24 +3305,24 @@
 }
 
 
-void Train_Tick(Vehicle *v)
+void Train::Tick()
 {
-	if (_age_cargo_skip_counter == 0) v->cargo.AgeCargo();
-
-	v->tick_counter++;
-
-	if (IsFrontEngine(v)) {
-		v->current_order_time++;
-
-		TrainLocoHandler(v, false);
+	if (_age_cargo_skip_counter == 0) this->cargo.AgeCargo();
+
+	this->tick_counter++;
+
+	if (IsFrontEngine(this)) {
+		this->current_order_time++;
+
+		TrainLocoHandler(this, false);
 
 		/* make sure vehicle wasn't deleted. */
-		if (v->type == VEH_TRAIN && IsFrontEngine(v))
-			TrainLocoHandler(v, true);
-	} else if (IsFreeWagon(v) && HASBITS(v->vehstatus, VS_CRASHED)) {
+		if (this->type == VEH_TRAIN && IsFrontEngine(this))
+			TrainLocoHandler(this, true);
+	} else if (IsFreeWagon(this) && HASBITS(this->vehstatus, VS_CRASHED)) {
 		/* Delete flooded standalone wagon */
-		if (++v->u.rail.crash_anim_pos >= 4400)
-			DeleteVehicle(v);
+		if (++this->u.rail.crash_anim_pos >= 4400)
+			DeleteVehicle(this);
 	}
 }
 
--- a/src/train_gui.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/train_gui.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -93,7 +93,7 @@
 		if (dx + width > 0) {
 			if (dx <= count) {
 				SpriteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
-				DrawSprite(GetTrainImage(v, DIR_W), pal, 16 + WagonLengthToPixels(dx), 7 + (is_custom_sprite(RailVehInfo(v->engine_type)->image_index) ? _traininfo_vehicle_pitch : 0));
+				DrawSprite(v->GetImage(DIR_W), pal, 16 + WagonLengthToPixels(dx), 7 + (is_custom_sprite(RailVehInfo(v->engine_type)->image_index) ? _traininfo_vehicle_pitch : 0));
 				if (v->index == selection) {
 					/* Set the highlight position */
 					highlight_l = WagonLengthToPixels(dx) + 1;
@@ -459,7 +459,7 @@
 				u = v;
 				do {
 					SpriteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
-					DrawSprite(GetTrainImage(u, DIR_W), pal, x + WagonLengthToPixels(4 + dx), y + 6 + (is_custom_sprite(RailVehInfo(u->engine_type)->image_index) ? _traininfo_vehicle_pitch : 0));
+					DrawSprite(u->GetImage(DIR_W), pal, x + WagonLengthToPixels(4 + dx), y + 6 + (is_custom_sprite(RailVehInfo(u->engine_type)->image_index) ? _traininfo_vehicle_pitch : 0));
 					dx += u->u.rail.cached_veh_length;
 					u = u->next;
 				} while (u != NULL && IsArticulatedPart(u) && u->cargo_cap == 0);
--- a/src/tunnelbridge_cmd.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/tunnelbridge_cmd.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -498,6 +498,12 @@
 	}
 
 	end_tile = start_tile;
+
+	/** Tile shift coeficient. Will decrease for very long tunnels to avoid exponential growth of price*/
+	int tiles_coef = 3;
+	/** Number of tiles from start of tunnel */
+	int tiles = 0;
+
 	for (;;) {
 		end_tile += delta;
 		end_tileh = GetTileSlope(end_tile, &end_z);
@@ -508,8 +514,11 @@
 			return_cmd_error(STR_5003_ANOTHER_TUNNEL_IN_THE_WAY);
 		}
 
+		tiles++;
+		if (tiles == 25 || tiles == 50 || tiles == 100 || tiles == 200 || tiles == 400 || tiles == 800) tiles_coef++;
+
 		cost.AddCost(_price.build_tunnel);
-		cost.AddCost(cost.GetCost() >> 3); // add a multiplier for longer tunnels
+		cost.AddCost(cost.GetCost() >> tiles_coef); // add a multiplier for longer tunnels
 	}
 
 	/* Add the cost of the entrance */
--- a/src/variables.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/variables.h	Sat Jul 07 09:20:52 2007 +0000
@@ -95,7 +95,7 @@
 	bool selectgoods;                   // only send the goods to station if a train has been there
 	bool longbridges;                   // allow 100 tile long bridges
 	bool gotodepot;                     // allow goto depot in orders
-	bool build_rawmaterial_ind;         // allow building raw material industries
+	uint8 raw_industry_construction;    ///< Type of (raw) industry construction (none, "normal", prospecting)
 	bool multiple_industry_per_town;    // allow many industries of the same type per town
 	bool same_industry_close;           // allow same type industries to be built close to each other
 	bool lost_train_warn;               // if a train can't find its destination, show a warning
@@ -139,6 +139,7 @@
 	uint8 toolbar_pos;                  // position of toolbars, 0=left, 1=center, 2=right
 	uint8 window_snap_radius;           // Windows snap at each other if closer than this
 
+	bool always_build_infrastructure;   ///< Always allow building of infrastructure, even when you do not have the vehicles for it
 	UnitID max_trains;                  // max trains in game per player (these are 16bit because the unitnumber field can't hold more)
 	UnitID max_roadveh;                 // max trucks in game per player
 	UnitID max_aircraft;                // max planes in game per player
--- a/src/vehicle.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/vehicle.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -43,6 +43,7 @@
 #include "helpers.hpp"
 #include "group.h"
 #include "economy.h"
+#include "strings.h"
 
 #define INVALID_COORD (0x7fffffff)
 #define GEN_HASH(x, y) ((GB((y), 6, 6) << 6) + GB((x), 7, 6))
@@ -248,16 +249,17 @@
 	FOR_ALL_VEHICLES(v) {
 		switch (v->type) {
 			case VEH_ROAD:
-				v->cur_image = GetRoadVehImage(v, v->direction);
 				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);
+				/* FALL THROUGH */
+			case VEH_TRAIN:
+			case VEH_SHIP:
+				v->cur_image = v->GetImage(v->direction);
 				break;
 
-			case VEH_TRAIN: v->cur_image = GetTrainImage(v, v->direction); break;
-			case VEH_SHIP: v->cur_image = GetShipImage(v, v->direction); break;
 			case VEH_AIRCRAFT:
 				if (IsNormalAircraft(v)) {
-					v->cur_image = GetAircraftImage(v, v->direction);
+					v->cur_image = v->GetImage(v->direction);
 
 					/* The plane's shadow will have the same image as the plane */
 					Vehicle *shadow = v->next;
@@ -677,7 +679,7 @@
 
 	if (IsEngineCountable(v)) {
 		GetPlayer(v->owner)->num_engines[v->engine_type]--;
-		if (v->owner == _local_player) InvalidateAutoreplaceWindow(v->engine_type);
+		if (v->owner == _local_player) InvalidateAutoreplaceWindow(v->engine_type, v->group_id);
 
 		if (IsValidGroupID(v->group_id)) GetGroup(v->group_id)->num_engines[v->engine_type]--;
 		if (v->IsPrimaryVehicle()) DecreaseGroupNumVehicle(v->group_id);
@@ -724,14 +726,6 @@
 	} while (v != NULL);
 }
 
-
-void Aircraft_Tick(Vehicle *v);
-void RoadVeh_Tick(Vehicle *v);
-void Ship_Tick(Vehicle *v);
-void Train_Tick(Vehicle *v);
-static void EffectVehicle_Tick(Vehicle *v);
-void DisasterVehicle_Tick(Vehicle *v);
-
 /** head of the linked list to tell what vehicles that visited a depot in a tick */
 static Vehicle* _first_veh_in_depot_list;
 
@@ -761,16 +755,6 @@
 	}
 }
 
-typedef void VehicleTickProc(Vehicle*);
-static VehicleTickProc* _vehicle_tick_procs[] = {
-	Train_Tick,
-	RoadVeh_Tick,
-	Ship_Tick,
-	Aircraft_Tick,
-	EffectVehicle_Tick,
-	DisasterVehicle_Tick,
-};
-
 void CallVehicleTicks()
 {
 	_first_veh_in_depot_list = NULL; // now we are sure it's initialized at the start of each tick
@@ -780,7 +764,7 @@
 
 	Vehicle *v;
 	FOR_ALL_VEHICLES(v) {
-		_vehicle_tick_procs[v->type](v);
+		v->Tick();
 
 		switch (v->type) {
 			default: break;
@@ -1530,9 +1514,9 @@
 	return CreateEffectVehicle(v->x_pos + x, v->y_pos + y, v->z_pos + z, type);
 }
 
-static void EffectVehicle_Tick(Vehicle *v)
+void SpecialVehicle::Tick()
 {
-	_effect_tick_procs[v->subtype](v);
+	_effect_tick_procs[this->subtype](this);
 }
 
 Vehicle *CheckClickOnVehicle(const ViewPort *vp, int x, int y)
@@ -2272,22 +2256,27 @@
 	int max = 0;
 	int cars = 0;
 	int unloading = 0;
+	bool loading = false;
 
 	assert(color != NULL);
 
+	const Vehicle *u = v;
+	const Station *st = GetStation(v->last_station_visited);
+
 	/* Count up max and used */
 	for (; v != NULL; v = v->next) {
 		count += v->cargo.Count();
 		max += v->cargo_cap;
 		if (v->cargo_cap != 0) {
 			unloading += HASBIT(v->vehicle_flags, VF_CARGO_UNLOADING) ? 1 : 0;
+			loading |= (u->current_order.flags & OF_UNLOAD) == 0 && st->goods[v->cargo_type].days_since_pickup != 255;
 			cars++;
 		}
 	}
 
-	if (unloading == 0)         *color = STR_PERCENT_UP;
-	else if (cars == unloading) *color = STR_PERCENT_DOWN;
-	else                        *color = STR_PERCENT_UP_DOWN;
+	if (unloading == 0 && loading)          *color = STR_PERCENT_UP;
+	else if (cars == unloading || !loading) *color = STR_PERCENT_DOWN;
+	else                                    *color = STR_PERCENT_UP_DOWN;
 
 	/* Train without capacity */
 	if (max == 0) return 100;
@@ -2391,6 +2380,39 @@
 	}
 }
 
+static bool IsUniqueVehicleName(const char *name)
+{
+	const Vehicle *v;
+	char buf[512];
+
+	FOR_ALL_VEHICLES(v) {
+		switch (v->type) {
+			case VEH_TRAIN:
+				if (!IsTrainEngine(v)) continue;
+				break;
+
+			case VEH_ROAD:
+				break;
+
+			case VEH_AIRCRAFT:
+				if (!IsNormalAircraft(v)) continue;
+				break;
+
+			case VEH_SHIP:
+				break;
+
+			default:
+				continue;
+		}
+
+		SetDParam(0, v->index);
+		GetString(buf, STR_VEHICLE_NAME, lastof(buf));
+		if (strcmp(buf, name) == 0) return false;
+	}
+
+	return true;
+}
+
 /** Give a custom name to your vehicle
  * @param tile unused
  * @param flags type of operation
@@ -2402,13 +2424,15 @@
 	Vehicle *v;
 	StringID str;
 
-	if (!IsValidVehicleID(p1) || _cmd_text[0] == '\0') return CMD_ERROR;
+	if (!IsValidVehicleID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR;
 
 	v = GetVehicle(p1);
 
 	if (!CheckOwnership(v->owner)) return CMD_ERROR;
 
-	str = AllocateNameUnique(_cmd_text, 2);
+	if (!IsUniqueVehicleName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
+
+	str = AllocateName(_cmd_text, 2);
 	if (str == 0) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
@@ -2615,6 +2639,50 @@
 }
 
 
+/**
+ * Check whether we can build infrastructure for the given
+ * vehicle type. This to disable building stations etc. when
+ * you are not allowed/able to have the vehicle type yet.
+ * @param type the vehicle type to check this for
+ * @return true if there is any reason why you may build
+ *         the infrastructure for the given vehicle type
+ */
+bool CanBuildVehicleInfrastructure(VehicleType type)
+{
+	assert(IsPlayerBuildableVehicleType(type));
+
+	if (_patches.always_build_infrastructure) return true;
+
+	UnitID max;
+	switch (type) {
+		case VEH_TRAIN:    max = _patches.max_trains; break;
+		case VEH_ROAD:     max = _patches.max_roadveh; break;
+		case VEH_SHIP:     max = _patches.max_ships; break;
+		case VEH_AIRCRAFT: max = _patches.max_aircraft; break;
+		default: NOT_REACHED();
+	}
+
+	/* We can build vehicle infrastructure when we may build the vehicle type */
+	if (max > 0) {
+
+		/* Can we actually build the vehicle type? */
+		EngineID e;
+		FOR_ALL_ENGINEIDS_OF_TYPE(e, type) {
+			if (HASBIT(GetEngine(e)->player_avail, _local_player)) return true;
+		}
+		return false;
+	}
+
+	/* We should be able to build infrastructure when we have the actual vehicle type */
+	const Vehicle *v;
+	FOR_ALL_VEHICLES(v) {
+		if (v->owner == _local_player && v->type == type) return true;
+	}
+
+	return false;
+}
+
+
 const Livery *GetEngineLivery(EngineID engine_type, PlayerID player, EngineID parent_engine_type, const Vehicle *v)
 {
 	const Player *p = GetPlayer(player);
--- a/src/vehicle.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/vehicle.h	Sat Jul 07 09:20:52 2007 +0000
@@ -77,6 +77,7 @@
 	VEH_END,
 	VEH_INVALID = 0xFF,
 };
+DECLARE_POSTFIX_INCREMENT(VehicleType);
 template <> struct EnumPropsT<VehicleType> : MakeEnumPropsT<VehicleType, byte, VEH_TRAIN, VEH_END, VEH_INVALID> {};
 typedef TinyEnumT<VehicleType> VehicleTypeByte;
 
@@ -419,6 +420,18 @@
 	 * basically, if GetFirstVehicleInChain() can be called for it.
 	 */
 	virtual bool HasFront() const { return false; }
+
+	/**
+	 * Gets the sprite to show for the given direction
+	 * @param direction the direction the vehicle is facing
+	 * @return the sprite for the given vehicle in the given direction
+	 */
+	virtual int GetImage(Direction direction) const { return 0; }
+
+	/**
+	 * Calls the tick handler of the vehicle
+	 */
+	virtual void Tick() = 0;
 };
 
 /**
@@ -445,6 +458,7 @@
 
 	const char *GetTypeString() const { return "special vehicle"; }
 	void UpdateDeltaXY(Direction direction);
+	void Tick();
 };
 
 /**
@@ -464,6 +478,7 @@
 
 	const char *GetTypeString() const { return "disaster vehicle"; }
 	void UpdateDeltaXY(Direction direction);
+	void Tick();
 };
 
 /**
@@ -482,6 +497,7 @@
 	virtual ~InvalidVehicle() {}
 
 	const char *GetTypeString() const { return "invalid vehicle"; }
+	void Tick() {}
 };
 
 #define is_custom_sprite(x) (x >= 0xFD)
@@ -519,11 +535,6 @@
 
 void ViewportAddVehicles(DrawPixelInfo *dpi);
 
-/* train_cmd.h */
-int GetTrainImage(const Vehicle* v, Direction direction);
-int GetAircraftImage(const Vehicle* v, Direction direction);
-int GetRoadVehImage(const Vehicle* v, Direction direction);
-int GetShipImage(const Vehicle* v, Direction direction);
 SpriteID GetRotorImage(const Vehicle *v);
 
 Vehicle *CreateEffectVehicle(int x, int y, int z, EffectVehicle type);
@@ -566,9 +577,10 @@
 bool IsVehicleInDepot(const Vehicle *v);
 void VehicleEnterDepot(Vehicle *v);
 
-void InvalidateAutoreplaceWindow(EngineID e);
+void InvalidateAutoreplaceWindow(EngineID e, GroupID id_g);
 
 CommandCost MaybeReplaceVehicle(Vehicle *v, bool check, bool display_costs);
+bool CanBuildVehicleInfrastructure(VehicleType type);
 
 /* Flags to add to p2 for goto depot commands */
 /* Note: bits 8-10 are used for VLW flags */
--- a/src/video/cocoa_v.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/video/cocoa_v.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,11 +3,30 @@
 #ifndef VIDEO_COCOA_H
 #define VIDEO_COCOA_H
 
-#include "../hal.h"
+#include "video_driver.hpp"
 
-#include "../openttd.h"
-#include "../gfx.h"
+class VideoDriver_Cocoa: public VideoDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
 
-extern const HalVideoDriver _cocoa_video_driver;
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void MakeDirty(int left, int top, int width, int height);
+
+	/* virtual */ void MainLoop();
+
+	/* virtual */ bool ChangeResolution(int w, int h);
+
+	/* virtual */ void ToggleFullscreen(bool fullscreen);
+};
+
+class FVideoDriver_Cocoa: public VideoDriverFactory<FVideoDriver_Cocoa> {
+public:
+	/* virtual */ const char *GetName() { return "cocoa"; }
+	/* virtual */ const char *GetDescription() { return "Cocoa Video Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new VideoDriver_Cocoa(); }
+};
 
 #endif /* VIDEO_COCOA_H */
--- a/src/video/cocoa_v.mm	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/video/cocoa_v.mm	Sat Jul 07 09:20:52 2007 +0000
@@ -65,10 +65,12 @@
 
 
 #include "../stdafx.h"
+#include "../openttd.h"
 #include "../debug.h"
 #include "../macros.h"
 #include "../os/macosx/splash.h"
 #include "../variables.h"
+#include "../gfx.h"
 #include "cocoa_v.h"
 #include "cocoa_keys.h"
 #include "../blitter/factory.hpp"
@@ -131,7 +133,6 @@
 static void QZ_WarpCursor(int x, int y);
 static void QZ_ShowMouse();
 static void QZ_HideMouse();
-static void CocoaVideoFullScreen(bool full_screen);
 
 
 static NSAutoreleasePool *_ottd_autorelease_pool;
@@ -366,7 +367,7 @@
 		case QZ_RETURN:
 		case QZ_f:
 			if (down && (_cocoa_video_data.current_mods & NSCommandKeyMask)) {
-				CocoaVideoFullScreen(!_fullscreen);
+				_video_driver->ToggleFullscreen(!_fullscreen);
 			}
 			break;
 	}
@@ -1184,10 +1185,17 @@
 		/* We already have a window, just change its size */
 		if (!isCustom) {
 			[ _cocoa_video_data.window setContentSize:contentRect.size ];
+			// Ensure frame height - title bar height >= view height
+			contentRect.size.height = clamp(height, 0, [ _cocoa_video_data.window frame ].size.height - 22 /* 22 is the height of title bar of window*/);
+			height = contentRect.size.height;
 			[ _cocoa_video_data.qdview setFrameSize:contentRect.size ];
 		}
 	}
 
+	// Update again
+	_cocoa_video_data.width = width;
+	_cocoa_video_data.height = height;
+
 	[ _cocoa_video_data.window center ];
 
 	/* Only recreate the view if it doesn't already exist */
@@ -1963,7 +1971,9 @@
  *                             Video driver interface                         *
  ******************************************************************************/
 
-static void CocoaVideoStop()
+static FVideoDriver_Cocoa iFVideoDriver_Cocoa;
+
+void VideoDriver_Cocoa::Stop()
 {
 	if (!_cocoa_video_started) return;
 
@@ -1974,7 +1984,7 @@
 	_cocoa_video_started = false;
 }
 
-static const char *CocoaVideoStart(const char * const *parm)
+const char *VideoDriver_Cocoa::Start(const char * const *parm)
 {
 	const char *ret;
 
@@ -1991,12 +2001,12 @@
 	QZ_VideoInit();
 
 	ret = QZ_SetVideoMode(_cur_resolution[0], _cur_resolution[1], _fullscreen);
-	if (ret != NULL) CocoaVideoStop();
+	if (ret != NULL) _video_driver->Stop();
 
 	return ret;
 }
 
-static void CocoaVideoMakeDirty(int left, int top, int width, int height)
+void VideoDriver_Cocoa::MakeDirty(int left, int top, int width, int height)
 {
 	if (_cocoa_video_data.num_dirty_rects < MAX_DIRTY_RECTS) {
 		_cocoa_video_data.dirty_rects[_cocoa_video_data.num_dirty_rects].left = left;
@@ -2007,41 +2017,32 @@
 	_cocoa_video_data.num_dirty_rects++;
 }
 
-static void CocoaVideoMainLoop()
+void VideoDriver_Cocoa::MainLoop()
 {
 	/* Start the main event loop */
 	[NSApp run];
 }
 
-static bool CocoaVideoChangeRes(int w, int h)
+bool VideoDriver_Cocoa::ChangeResolution(int w, int h)
 {
 	const char *ret = QZ_SetVideoModeAndRestoreOnFailure((uint)w, (uint)h, _cocoa_video_data.fullscreen);
 	if (ret != NULL) {
-		DEBUG(driver, 0, "cocoa_v: CocoaVideoChangeRes failed with message: %s", ret);
+		DEBUG(driver, 0, "cocoa_v: VideoDriver_Cocoa::ChangeResolution failed with message: %s", ret);
 	}
 
 	return ret == NULL;
 }
 
-static void CocoaVideoFullScreen(bool full_screen)
+void VideoDriver_Cocoa::ToggleFullscreen(bool full_screen)
 {
 	const char *ret = QZ_SetVideoModeAndRestoreOnFailure(_cocoa_video_data.width, _cocoa_video_data.height, full_screen);
 	if (ret != NULL) {
-		DEBUG(driver, 0, "cocoa_v: CocoaVideoFullScreen failed with message: %s", ret);
+		DEBUG(driver, 0, "cocoa_v: VideoDriver_Cocoa::ToggleFullscreen failed with message: %s", ret);
 	}
 
 	_fullscreen = _cocoa_video_data.fullscreen;
 }
 
-const HalVideoDriver _cocoa_video_driver = {
-	CocoaVideoStart,
-	CocoaVideoStop,
-	CocoaVideoMakeDirty,
-	CocoaVideoMainLoop,
-	CocoaVideoChangeRes,
-	CocoaVideoFullScreen,
-};
-
 
 /* This is needed since sometimes assert is called before the videodriver is initialized */
 void CocoaDialog(const char* title, const char* message, const char* buttonLabel)
@@ -2051,14 +2052,14 @@
 	_cocoa_video_dialog = true;
 
 	wasstarted = _cocoa_video_started;
-	if (!_cocoa_video_started && CocoaVideoStart(NULL) != NULL) {
+	if (!_cocoa_video_started && _video_driver->Start(NULL) != NULL) {
 		fprintf(stderr, "%s: %s\n", title, message);
 		return;
 	}
 
 	NSRunAlertPanel([NSString stringWithCString: title], [NSString stringWithCString: message], [NSString stringWithCString: buttonLabel], nil, nil);
 
-	if (!wasstarted) CocoaVideoStop();
+	if (!wasstarted) _video_driver->Stop();
 
 	_cocoa_video_dialog = false;
 }
--- a/src/video/dedicated_v.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/video/dedicated_v.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -119,8 +119,10 @@
 extern bool SafeSaveOrLoad(const char *filename, int mode, int newgm, Subdirectory subdir);
 extern void SwitchMode(int new_mode);
 
+static FVideoDriver_Dedicated iFVideoDriver_Dedicated;
 
-static const char *DedicatedVideoStart(const char * const *parm)
+
+const char *VideoDriver_Dedicated::Start(const char * const *parm)
 {
 	int bpp = BlitterFactoryBase::GetCurrentBlitter()->GetScreenDepth();
 	if (bpp == 0) _dedicated_video_mem = NULL;
@@ -147,7 +149,7 @@
 	return NULL;
 }
 
-static void DedicatedVideoStop()
+void VideoDriver_Dedicated::Stop()
 {
 #ifdef WIN32
 	CloseWindowsConsoleThread();
@@ -155,9 +157,9 @@
 	free(_dedicated_video_mem);
 }
 
-static void DedicatedVideoMakeDirty(int left, int top, int width, int height) {}
-static bool DedicatedVideoChangeRes(int w, int h) { return false; }
-static void DedicatedVideoFullScreen(bool fs) {}
+void VideoDriver_Dedicated::MakeDirty(int left, int top, int width, int height) {}
+bool VideoDriver_Dedicated::ChangeResolution(int w, int h) { return false; }
+void VideoDriver_Dedicated::ToggleFullscreen(bool fs) {}
 
 #if defined(UNIX) || defined(__OS2__) || defined(PSP)
 static bool InputWaiting()
@@ -232,7 +234,7 @@
 	IConsoleCmdExec(input_line); // execute command
 }
 
-static void DedicatedVideoMainLoop()
+void VideoDriver_Dedicated::MainLoop()
 {
 	uint32 cur_ticks = GetTime();
 	uint32 next_tick = cur_ticks + 30;
@@ -295,13 +297,4 @@
 	}
 }
 
-const HalVideoDriver _dedicated_video_driver = {
-	DedicatedVideoStart,
-	DedicatedVideoStop,
-	DedicatedVideoMakeDirty,
-	DedicatedVideoMainLoop,
-	DedicatedVideoChangeRes,
-	DedicatedVideoFullScreen,
-};
-
 #endif /* ENABLE_NETWORK */
--- a/src/video/dedicated_v.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/video/dedicated_v.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef VIDEO_DEDICATED_H
 #define VIDEO_DEDICATED_H
 
-#include "../hal.h"
+#include "video_driver.hpp"
 
-extern const HalVideoDriver _dedicated_video_driver;
+class VideoDriver_Dedicated: public VideoDriver {
+public:
+	/* virtual */ bool CanProbe() { return false; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void MakeDirty(int left, int top, int width, int height);
+
+	/* virtual */ void MainLoop();
+
+	/* virtual */ bool ChangeResolution(int w, int h);
+
+	/* virtual */ void ToggleFullscreen(bool fullscreen);
+};
+
+class FVideoDriver_Dedicated: public VideoDriverFactory<FVideoDriver_Dedicated> {
+public:
+	/* virtual */ const char *GetName() { return "dedicated"; }
+	/* virtual */ const char *GetDescription() { return "Dedicated Video Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new VideoDriver_Dedicated(); }
+};
 
 #endif /* VIDEO_DEDICATED_H */
--- a/src/video/null_v.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/video/null_v.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -9,7 +9,9 @@
 #include "../blitter/factory.hpp"
 #include "null_v.h"
 
-static const char* NullVideoStart(const char* const* parm)
+static FVideoDriver_Null iFVideoDriver_Null;
+
+const char *VideoDriver_Null::Start(const char* const *parm)
 {
 	_screen.width = _screen.pitch = _cur_resolution[0];
 	_screen.height = _cur_resolution[1];
@@ -19,11 +21,11 @@
 	return NULL;
 }
 
-static void NullVideoStop() { }
+void VideoDriver_Null::Stop() { }
 
-static void NullVideoMakeDirty(int left, int top, int width, int height) {}
+void VideoDriver_Null::MakeDirty(int left, int top, int width, int height) {}
 
-static void NullVideoMainLoop()
+void VideoDriver_Null::MainLoop()
 {
 	uint i;
 
@@ -34,14 +36,6 @@
 	}
 }
 
-static bool NullVideoChangeRes(int w, int h) { return false; }
-static void NullVideoFullScreen(bool fs) {}
+bool VideoDriver_Null::ChangeResolution(int w, int h) { return false; }
 
-const HalVideoDriver _null_video_driver = {
-	NullVideoStart,
-	NullVideoStop,
-	NullVideoMakeDirty,
-	NullVideoMainLoop,
-	NullVideoChangeRes,
-	NullVideoFullScreen,
-};
+void VideoDriver_Null::ToggleFullscreen(bool fs) {}
--- a/src/video/null_v.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/video/null_v.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef VIDEO_NULL_H
 #define VIDEO_NULL_H
 
-#include "../hal.h"
+#include "video_driver.hpp"
 
-extern const HalVideoDriver _null_video_driver;
+class VideoDriver_Null: public VideoDriver {
+public:
+	/* virtual */ bool CanProbe() { return false; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void MakeDirty(int left, int top, int width, int height);
+
+	/* virtual */ void MainLoop();
+
+	/* virtual */ bool ChangeResolution(int w, int h);
+
+	/* virtual */ void ToggleFullscreen(bool fullscreen);
+};
+
+class FVideoDriver_Null: public VideoDriverFactory<FVideoDriver_Null> {
+public:
+	/* virtual */ const char *GetName() { return "null"; }
+	/* virtual */ const char *GetDescription() { return "Null Video Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new VideoDriver_Null(); }
+};
 
 #endif /* VIDEO_NULL_H */
--- a/src/video/sdl_v.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/video/sdl_v.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -17,6 +17,8 @@
 #include "sdl_v.h"
 #include <SDL.h>
 
+static FVideoDriver_SDL iFVideoDriver_SDL;
+
 static SDL_Surface *_sdl_screen;
 static bool _all_modes;
 
@@ -24,7 +26,7 @@
 static SDL_Rect _dirty_rects[MAX_DIRTY_RECTS];
 static int _num_dirty_rects;
 
-static void SdlVideoMakeDirty(int left, int top, int width, int height)
+void VideoDriver_SDL::MakeDirty(int left, int top, int width, int height)
 {
 	if (_num_dirty_rects < MAX_DIRTY_RECTS) {
 		_dirty_rects[_num_dirty_rects].x = left;
@@ -415,7 +417,7 @@
 	return -1;
 }
 
-static const char *SdlVideoStart(const char * const *parm)
+const char *VideoDriver_SDL::Start(const char * const *parm)
 {
 	char buf[30];
 
@@ -434,12 +436,12 @@
 	return NULL;
 }
 
-static void SdlVideoStop()
+void VideoDriver_SDL::Stop()
 {
 	SdlClose(SDL_INIT_VIDEO);
 }
 
-static void SdlVideoMainLoop()
+void VideoDriver_SDL::MainLoop()
 {
 	uint32 cur_ticks = SDL_CALL SDL_GetTicks();
 	uint32 last_cur_ticks = cur_ticks;
@@ -505,28 +507,19 @@
 	}
 }
 
-static bool SdlVideoChangeRes(int w, int h)
+bool VideoDriver_SDL::ChangeResolution(int w, int h)
 {
 	return CreateMainSurface(w, h);
 }
 
-static void SdlVideoFullScreen(bool full_screen)
+void VideoDriver_SDL::ToggleFullscreen(bool fullscreen)
 {
-	_fullscreen = full_screen;
+	_fullscreen = fullscreen;
 	GetVideoModes(); // get the list of available video modes
-	if (_num_resolutions == 0 || !_video_driver->change_resolution(_cur_resolution[0], _cur_resolution[1])) {
+	if (_num_resolutions == 0 || !this->ChangeResolution(_cur_resolution[0], _cur_resolution[1])) {
 		// switching resolution failed, put back full_screen to original status
 		_fullscreen ^= true;
 	}
 }
 
-const HalVideoDriver _sdl_video_driver = {
-	SdlVideoStart,
-	SdlVideoStop,
-	SdlVideoMakeDirty,
-	SdlVideoMainLoop,
-	SdlVideoChangeRes,
-	SdlVideoFullScreen,
-};
-
 #endif /* WITH_SDL */
--- a/src/video/sdl_v.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/video/sdl_v.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef VIDEO_SDL_H
 #define VIDEO_SDL_H
 
-#include "../hal.h"
+#include "video_driver.hpp"
 
-extern const HalVideoDriver _sdl_video_driver;
+class VideoDriver_SDL: public VideoDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void MakeDirty(int left, int top, int width, int height);
+
+	/* virtual */ void MainLoop();
+
+	/* virtual */ bool ChangeResolution(int w, int h);
+
+	/* virtual */ void ToggleFullscreen(bool fullscreen);
+};
+
+class FVideoDriver_SDL: public VideoDriverFactory<FVideoDriver_SDL> {
+public:
+	/* virtual */ const char *GetName() { return "sdl"; }
+	/* virtual */ const char *GetDescription() { return "SDL Video Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new VideoDriver_SDL(); }
+};
 
 #endif /* VIDEO_SDL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/video/video_driver.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -0,0 +1,35 @@
+/* $Id$ */
+
+#ifndef VIDEO_VIDEO_DRIVER_HPP
+#define VIDEO_VIDEO_DRIVER_HPP
+
+#include "../driver.h"
+
+class VideoDriver: public Driver {
+public:
+	virtual void MakeDirty(int left, int top, int width, int height) = 0;
+
+	virtual void MainLoop() = 0;
+
+	virtual bool ChangeResolution(int w, int h) = 0;
+
+	virtual void ToggleFullscreen(bool fullscreen) = 0;
+};
+
+class VideoDriverFactoryBase: public DriverFactoryBase {
+};
+
+template <class T>
+class VideoDriverFactory: public VideoDriverFactoryBase {
+public:
+	VideoDriverFactory() { this->RegisterDriver(((T *)this)->GetName(), Driver::DT_VIDEO); }
+
+	/**
+	 * Get the long, human readable, name for the Driver-class.
+	 */
+	const char *GetName();
+};
+
+extern VideoDriver *_video_driver;
+
+#endif /* VIDEO_VIDEO_DRIVER_HPP */
--- a/src/video/win32_v.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/video/win32_v.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -23,7 +23,6 @@
 	int height;
 	int width_org;
 	int height_org;
-	bool minimized;
 	bool fullscreen;
 	bool has_focus;
 	bool running;
@@ -508,8 +507,7 @@
 			break;
 
 		case WM_SIZE:
-			_wnd.minimized = (wParam == SIZE_MINIMIZED);
-			if (!_wnd.minimized) {
+			if (wParam != SIZE_MINIMIZED) {
 				/* Set maximized flag when we maximize (obviously), but also when we
 				 * switched to fullscreen from a maximized state */
 				_window_maximize = (wParam == SIZE_MAXIMIZED || (_window_maximize && _fullscreen));
@@ -601,23 +599,34 @@
 			return 0;
 		}
 
-		case WM_ACTIVATEAPP:
-			_wnd.has_focus = (wParam != 0);
+		case WM_SETFOCUS:
+			_wnd.has_focus = true;
+			break;
+
+		case WM_KILLFOCUS:
+			_wnd.has_focus = false;
+			break;
+
 #if !defined(WINCE)
+		case WM_ACTIVATE: {
+			bool active = (LOWORD(wParam) != WA_INACTIVE);
+			bool minimized = (HIWORD(wParam) != 0);
 			if (_wnd.fullscreen) {
-				if (_wnd.has_focus && _wnd.minimized) {
+				if (active && minimized) {
 					/* Restore the game window */
 					ShowWindow(hwnd, SW_RESTORE);
 					MakeWindow(true);
-				} else if (!_wnd.has_focus && !_wnd.minimized) {
+				} else if (!active && !minimized) {
 					/* Minimise the window and restore desktop */
 					ShowWindow(hwnd, SW_MINIMIZE);
 					ChangeDisplaySettings(NULL, 0);
 				}
 			}
+			break;
+		}
+	}
 #endif
-			break;
-	}
+
 	return DefWindowProc(hwnd, msg, wParam, lParam);
 }
 
@@ -742,8 +751,9 @@
 	SortResolutions(_num_resolutions);
 }
 
+static FVideoDriver_Win32 iFVideoDriver_Win32;
 
-static const char *Win32GdiStart(const char * const *parm)
+const char *VideoDriver_Win32::Start(const char * const *parm)
 {
 	memset(&_wnd, 0, sizeof(_wnd));
 
@@ -765,7 +775,7 @@
 	return NULL;
 }
 
-static void Win32GdiStop()
+void VideoDriver_Win32::Stop()
 {
 	DeleteObject(_wnd.gdi_palette);
 	DeleteObject(_wnd.dib_sect);
@@ -777,7 +787,7 @@
 	MyShowCursor(true);
 }
 
-static void Win32GdiMakeDirty(int left, int top, int width, int height)
+void VideoDriver_Win32::MakeDirty(int left, int top, int width, int height)
 {
 	RECT r = { left, top, left + width, top + height };
 
@@ -791,7 +801,7 @@
 	InvalidateRect(_wnd.main_wnd, NULL, FALSE);
 }
 
-static void Win32GdiMainLoop()
+void VideoDriver_Win32::MainLoop()
 {
 	MSG mesg;
 	uint32 cur_ticks = GetTickCount();
@@ -864,7 +874,7 @@
 	}
 }
 
-static bool Win32GdiChangeRes(int w, int h)
+bool VideoDriver_Win32::ChangeResolution(int w, int h)
 {
 	_wnd.width = _wnd.width_org = w;
 	_wnd.height = _wnd.height_org = h;
@@ -874,16 +884,7 @@
 	return true;
 }
 
-static void Win32GdiFullScreen(bool full_screen)
+void VideoDriver_Win32::ToggleFullscreen(bool full_screen)
 {
 	MakeWindow(full_screen);
 }
-
-const HalVideoDriver _win32_video_driver = {
-	Win32GdiStart,
-	Win32GdiStop,
-	Win32GdiMakeDirty,
-	Win32GdiMainLoop,
-	Win32GdiChangeRes,
-	Win32GdiFullScreen,
-};
--- a/src/video/win32_v.h	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/video/win32_v.h	Sat Jul 07 09:20:52 2007 +0000
@@ -3,8 +3,30 @@
 #ifndef VIDEO_WIN32_H
 #define VIDEO_WIN32_H
 
-#include "../hal.h"
+#include "video_driver.hpp"
 
-extern const HalVideoDriver _win32_video_driver;
+class VideoDriver_Win32: public VideoDriver {
+public:
+	/* virtual */ bool CanProbe() { return true; }
+
+	/* virtual */ const char *Start(const char * const *param);
+
+	/* virtual */ void Stop();
+
+	/* virtual */ void MakeDirty(int left, int top, int width, int height);
+
+	/* virtual */ void MainLoop();
+
+	/* virtual */ bool ChangeResolution(int w, int h);
+
+	/* virtual */ void ToggleFullscreen(bool fullscreen);
+};
+
+class FVideoDriver_Win32: public VideoDriverFactory<FVideoDriver_Win32> {
+public:
+	/* virtual */ const char *GetName() { return "win32"; }
+	/* virtual */ const char *GetDescription() { return "Win32 GDI Video Driver"; }
+	/* virtual */ Driver *CreateInstance() { return new VideoDriver_Win32(); }
+};
 
 #endif /* VIDEO_WIN32_H */
--- a/src/waypoint.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/waypoint.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -24,6 +24,8 @@
 #include "yapf/yapf.h"
 #include "date.h"
 #include "newgrf.h"
+#include "string.h"
+#include "strings.h"
 
 enum {
 	MAX_WAYPOINTS_PER_TOWN = 64,
@@ -341,6 +343,20 @@
 	return RemoveTrainWaypoint(tile, flags, true);
 }
 
+static bool IsUniqueWaypointName(const char *name)
+{
+	const Waypoint *wp;
+	char buf[512];
+
+	FOR_ALL_WAYPOINTS(wp) {
+		SetDParam(0, wp->index);
+		GetString(buf, STR_WAYPOINT_RAW, lastof(buf));
+		if (strcmp(buf, name) == 0) return false;
+	}
+
+	return true;
+}
+
 /**
  * Rename a waypoint.
  * @param tile unused
@@ -355,13 +371,17 @@
 
 	if (!IsValidWaypointID(p1)) return CMD_ERROR;
 
-	if (_cmd_text[0] != '\0') {
-		StringID str = AllocateNameUnique(_cmd_text, 0);
+	wp = GetWaypoint(p1);
+	if (!CheckTileOwnership(wp->xy)) return CMD_ERROR;
+
+	if (!StrEmpty(_cmd_text)) {
+		if (!IsUniqueWaypointName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
+
+		StringID str = AllocateName(_cmd_text, 0);
 
 		if (str == 0) return CMD_ERROR;
 
 		if (flags & DC_EXEC) {
-			wp = GetWaypoint(p1);
 			if (wp->string != STR_NULL) DeleteName(wp->string);
 
 			wp->string = str;
@@ -374,7 +394,6 @@
 		}
 	} else {
 		if (flags & DC_EXEC) {
-			wp = GetWaypoint(p1);
 			if (wp->string != STR_NULL) DeleteName(wp->string);
 
 			MakeDefaultWaypointName(wp);
--- a/src/win32.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/win32.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -3,7 +3,6 @@
 /** @file win32.cpp Implementation of MS Windows system calls */
 
 #include "stdafx.h"
-#include "hal.h"
 #include "openttd.h"
 #include "debug.h"
 #include "functions.h"
--- a/src/yapf/nodelist.hpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/yapf/nodelist.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -127,6 +127,11 @@
 
 	FORCEINLINE int TotalCount() {return m_arr.Size();}
 	FORCEINLINE Titem_& ItemAt(int idx) {return m_arr[idx];}
+
+	template <class D> void Dump(D &dmp) const
+	{
+		dmp.WriteStructT("m_arr", &m_arr);
+	}
 };
 
 #endif /* NODELIST_HPP */
--- a/src/yapf/yapf.hpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/yapf/yapf.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -74,10 +74,12 @@
 
 #include "../misc/crc32.hpp"
 #include "../misc/blob.hpp"
+#include "../misc/str.hpp"
 #include "../misc/fixedsizearray.hpp"
 #include "../misc/array.hpp"
 #include "../misc/hashtable.hpp"
 #include "../misc/binaryheap.hpp"
+#include "../misc/dbg_helpers.h"
 #include "nodelist.hpp"
 #include "follow_track.hpp"
 #include "yapf_base.hpp"
--- a/src/yapf/yapf_base.hpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/yapf/yapf_base.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -280,6 +280,12 @@
 
 	const Vehicle* GetVehicle() const {return m_veh;}
 
+	void DumpBase(DumpTarget &dmp) const
+	{
+		dmp.WriteStructT("m_nodes", &m_nodes);
+		dmp.WriteLine("m_num_steps = %d", m_num_steps);
+	}
+
 	// methods that should be implemented at derived class Types::Tpf (derived from CYapfBaseT)
 
 #if 0
--- a/src/yapf/yapf_costrail.hpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/yapf/yapf_costrail.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -55,6 +55,7 @@
 protected:
 	int           m_max_cost;
 	CBlobT<int>   m_sig_look_ahead_costs;
+	bool          m_disable_cache;
 
 public:
 	bool          m_stopped_on_first_two_way_signal;
@@ -64,6 +65,7 @@
 
 	CYapfCostRailT()
 		: m_max_cost(0)
+		, m_disable_cache(false)
 		, m_stopped_on_first_two_way_signal(false)
 	{
 		// pre-compute look-ahead penalties into array
@@ -88,6 +90,8 @@
 
 	FORCEINLINE int CurveCost(Trackdir td1, Trackdir td2)
 	{
+		assert(IsValidTrackdir(td1));
+		assert(IsValidTrackdir(td2));
 		int cost = 0;
 		if (TrackFollower::Allow90degTurns()
 				&& ((TrackdirToTrackdirBits(td2) & (TrackdirBits)TrackdirCrossesTrackdirs(td1)) != 0)) {
@@ -263,7 +267,7 @@
 		TILE cur(n.m_key.m_tile, n.m_key.m_td);
 
 		// the previous tile will be needed for transition cost calculations
-		TILE prev = has_parent ? TILE() : TILE(n.m_parent->GetLastTile(), n.m_parent->GetLastTrackdir());
+		TILE prev = !has_parent ? TILE() : TILE(n.m_parent->GetLastTile(), n.m_parent->GetLastTrackdir());
 
 		EndSegmentReasonBits end_segment_reason = ESRB_NONE;
 
@@ -293,6 +297,16 @@
 					segment_cost = segment.m_cost;
 					/* We know also the reason why the segment ends. */
 					end_segment_reason = segment.m_end_segment_reason;
+					/* We will need also some information about the last signal (if it was red). */
+					if (segment.m_last_signal_tile != INVALID_TILE) {
+						assert(HasSignalOnTrackdir(segment.m_last_signal_tile, segment.m_last_signal_td));
+						SignalState sig_state = GetSignalStateByTrackdir(segment.m_last_signal_tile, segment.m_last_signal_td);
+						bool is_red = (sig_state == SIGNAL_STATE_RED);
+						n.flags_u.flags_s.m_last_signal_was_red = is_red;
+						if (is_red) {
+							n.m_last_red_signal_type = GetSignalType(segment.m_last_signal_tile, TrackdirToTrack(segment.m_last_signal_td));
+						}
+					}
 					/* No further calculation needed. */
 					cur = TILE(n.GetLastTile(), n.GetLastTrackdir());
 					break;
@@ -468,7 +482,8 @@
 
 	FORCEINLINE bool CanUseGlobalCache(Node& n) const
 	{
-		return (n.m_parent != NULL)
+		return !m_disable_cache
+			&& (n.m_parent != NULL)
 			&& (n.m_parent->m_num_signals_passed >= m_sig_look_ahead_costs.Size());
 	}
 
@@ -481,6 +496,10 @@
 		}
 	}
 
+	void DisableCache(bool disable)
+	{
+		m_disable_cache = disable;
+	}
 };
 
 
--- a/src/yapf/yapf_node.hpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/yapf/yapf_node.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -20,6 +20,13 @@
 
 	FORCEINLINE int CalcHash() const {return m_exitdir | (m_tile << 2);}
 	FORCEINLINE bool operator == (const CYapfNodeKeyExitDir& other) const {return (m_tile == other.m_tile) && (m_exitdir == other.m_exitdir);}
+
+	void Dump(DumpTarget &dmp) const
+	{
+		dmp.WriteTile("m_tile", m_tile);
+		dmp.WriteEnumT("m_td", m_td);
+		dmp.WriteEnumT("m_exitdir", m_exitdir);
+	}
 };
 
 struct CYapfNodeKeyTrackDir : public CYapfNodeKeyExitDir
@@ -57,6 +64,14 @@
 	FORCEINLINE int GetCost() {return m_cost;}
 	FORCEINLINE int GetCostEstimate() {return m_estimate;}
 	FORCEINLINE bool operator < (const Node& other) const {return m_estimate < other.m_estimate;}
+
+	void Dump(DumpTarget &dmp) const
+	{
+		dmp.WriteStructT("m_key", &m_key);
+		dmp.WriteStructT("m_parent", m_parent);
+		dmp.WriteLine("m_cost = %d", m_cost);
+		dmp.WriteLine("m_estimate = %d", m_estimate);
+	}
 };
 
 /** Yapf Node for ships */
--- a/src/yapf/yapf_node_rail.hpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/yapf/yapf_node_rail.hpp	Sat Jul 07 09:20:52 2007 +0000
@@ -14,11 +14,18 @@
 	FORCEINLINE CYapfRailSegmentKey(const CYapfNodeKeyTrackDir& node_key) {Set(node_key);}
 
 	FORCEINLINE void Set(const CYapfRailSegmentKey& src) {m_value = src.m_value;}
-	FORCEINLINE void Set(const CYapfNodeKeyTrackDir& node_key) {m_value = (((int)node_key.m_tile) << 3) | node_key.m_td;}
+	FORCEINLINE void Set(const CYapfNodeKeyTrackDir& node_key) {m_value = (((int)node_key.m_tile) << 4) | node_key.m_td;}
 
 	FORCEINLINE int32 CalcHash() const {return m_value;}
-	FORCEINLINE TileIndex GetTile() const {return (TileIndex)(m_value >> 3);}
+	FORCEINLINE TileIndex GetTile() const {return (TileIndex)(m_value >> 4);}
+	FORCEINLINE Trackdir GetTrackdir() const {return (Trackdir)(m_value & 0x0F);}
 	FORCEINLINE bool operator == (const CYapfRailSegmentKey& other) const {return m_value == other.m_value;}
+
+	void Dump(DumpTarget &dmp) const
+	{
+		dmp.WriteTile("tile", GetTile());
+		dmp.WriteEnumT("td", GetTrackdir());
+	}
 };
 
 /* Enum used in PfCalcCost() to see why was the segment closed. */
@@ -63,7 +70,7 @@
 
 	/* Additional (composite) values. */
 
-	/* What reasons mean that the target can be fond and needs to be detected. */
+	/* What reasons mean that the target can be found and needs to be detected. */
 	ESRB_POSSIBLE_TARGET = ESRB_DEPOT | ESRB_WAYPOINT | ESRB_STATION,
 
 	/* What reasons can be stored back into cached segment. */
@@ -75,6 +82,19 @@
 
 DECLARE_ENUM_AS_BIT_SET(EndSegmentReasonBits);
 
+inline CStrA ValueStr(EndSegmentReasonBits bits)
+{
+	static const char* end_segment_reason_names[] = {
+		"DEAD_END", "RAIL_TYPE", "INFINITE_LOOP", "SEGMENT_TOO_LONG", "CHOICE_FOLLOWS",
+		"DEPOT", "WAYPOINT", "STATION",
+		"PATH_TOO_LONG", "FIRST_TWO_WAY_RED", "LOOK_AHEAD_END", "TARGET_REACHED"
+	};
+
+	CStrA out;
+	out.Format("0x%04X (%s)", bits, ComposeNameT(bits, end_segment_reason_names, "UNK", ESRB_NONE, "NONE").Data());
+	return out.Transfer();
+}
+
 /** cached segment cost for rail YAPF */
 struct CYapfRailSegment
 {
@@ -104,6 +124,17 @@
 	FORCEINLINE TileIndex GetTile() const {return m_key.GetTile();}
 	FORCEINLINE CYapfRailSegment* GetHashNext() {return m_hash_next;}
 	FORCEINLINE void SetHashNext(CYapfRailSegment* next) {m_hash_next = next;}
+
+	void Dump(DumpTarget &dmp) const
+	{
+		dmp.WriteStructT("m_key", &m_key);
+		dmp.WriteTile("m_last_tile", m_last_tile);
+		dmp.WriteEnumT("m_last_td", m_last_td);
+		dmp.WriteLine("m_cost = %d", m_cost);
+		dmp.WriteTile("m_last_signal_tile", m_last_signal_tile);
+		dmp.WriteEnumT("m_last_signal_td", m_last_signal_td);
+		dmp.WriteEnumT("m_end_segment_reason", m_end_segment_reason);
+	}
 };
 
 /** Yapf Node for rail YAPF */
@@ -145,6 +176,17 @@
 	FORCEINLINE TileIndex GetLastTile() const {assert(m_segment != NULL); return m_segment->m_last_tile;}
 	FORCEINLINE Trackdir GetLastTrackdir() const {assert(m_segment != NULL); return m_segment->m_last_td;}
 	FORCEINLINE void SetLastTileTrackdir(TileIndex tile, Trackdir td) {assert(m_segment != NULL); m_segment->m_last_tile = tile; m_segment->m_last_td = td;}
+
+	void Dump(DumpTarget &dmp) const
+	{
+		base::Dump(dmp);
+		dmp.WriteStructT("m_segment", m_segment);
+		dmp.WriteLine("m_num_signals_passed = %d", m_num_signals_passed);
+		dmp.WriteLine("m_targed_seen = %s", flags_u.flags_s.m_targed_seen ? "Yes" : "No");
+		dmp.WriteLine("m_choice_seen = %s", flags_u.flags_s.m_choice_seen ? "Yes" : "No");
+		dmp.WriteLine("m_last_signal_was_red = %s", flags_u.flags_s.m_last_signal_was_red ? "Yes" : "No");
+		dmp.WriteEnumT("m_last_red_signal_type", m_last_red_signal_type);
+	}
 };
 
 // now define two major node types (that differ by key type)
--- a/src/yapf/yapf_rail.cpp	Wed Jun 27 01:01:16 2007 +0000
+++ b/src/yapf/yapf_rail.cpp	Sat Jul 07 09:20:52 2007 +0000
@@ -9,6 +9,8 @@
 #include "yapf_costrail.hpp"
 #include "yapf_destrail.hpp"
 
+#define DEBUG_YAPF_CACHE 0
+
 int _total_pf_time_us = 0;
 
 
@@ -44,8 +46,21 @@
 
 	static bool stFindNearestDepotTwoWay(Vehicle *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_distance, int reverse_penalty, TileIndex* depot_tile, bool* reversed)
 	{
-		Tpf pf;
-		return pf.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_distance, reverse_penalty, depot_tile, reversed);
+		Tpf pf1;
+		bool result1 = pf1.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_distance, reverse_penalty, depot_tile, reversed);
+
+#if DEBUG_YAPF_CACHE
+		Tpf pf2;
+		TileIndex depot_tile2 = INVALID_TILE;
+		bool reversed2 = false;
+		pf2.DisableCache(true);
+		bool result2 = pf2.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_distance, reverse_penalty, &depot_tile2, &reversed2);
+		if (result1 != result2 || (result1 && (*depot_tile != depot_tile2 || *reversed != reversed2))) {
+			DEBUG(yapf, 0, "CACHE ERROR: FindNearestDepotTwoWay() = [%s, %s]", result1 ? "T" : "F", result2 ? "T" : "F");
+		}
+#endif
+
+		return result1;
 	}
 
 	FORCEINLINE bool FindNearestDepotTwoWay(Vehicle *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_distance, int reverse_penalty, TileIndex* depot_tile, bool* reversed)
@@ -108,8 +123,28 @@
 	static Trackdir stChooseRailTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks, bool *path_not_found)
 	{
 		// create pathfinder instance
-		Tpf pf;
-		return pf.ChooseRailTrack(v, tile, enterdir, tracks, path_not_found);
+		Tpf pf1;
+		Trackdir result1 = pf1.ChooseRailTrack(v, tile, enterdir, tracks, path_not_found);
+
+#if DEBUG_YAPF_CACHE
+		Tpf pf2;
+		pf2.DisableCache(true);
+		Trackdir result2 = pf2.ChooseRailTrack(v, tile, enterdir, tracks, path_not_found);
+		if (result1 != result2) {
+			DEBUG(yapf, 0, "CACHE ERROR: ChooseRailTrack() = [%d, %d]", result1, result2);
+			DumpTarget dmp1, dmp2;
+			pf1.DumpBase(dmp1);
+			pf2.DumpBase(dmp2);
+			FILE *f1 = fopen("C:\\yapf1.txt", "wt");
+			FILE *f2 = fopen("C:\\yapf2.txt", "wt");
+			fwrite(dmp1.m_out.Data(), 1, dmp1.m_out.Size(), f1);
+			fwrite(dmp2.m_out.Data(), 1, dmp2.m_out.Size(), f2);
+			fclose(f1);
+			fclose(f2);
+		}
+#endif
+
+		return result1;
 	}
 
 	FORCEINLINE Trackdir ChooseRailTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks, bool *path_not_found)
@@ -147,8 +182,19 @@
 
 	static bool stCheckReverseTrain(Vehicle* v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2)
 	{
-		Tpf pf;
-		return pf.CheckReverseTrain(v, t1, td1, t2, td2);
+		Tpf pf1;
+		bool result1 = pf1.CheckReverseTrain(v, t1, td1, t2, td2);
+
+#if DEBUG_YAPF_CACHE
+		Tpf pf2;
+		pf2.DisableCache(true);
+		bool result2 = pf2.CheckReverseTrain(v, t1, td1, t2, td2);
+		if (result1 != result2) {
+			DEBUG(yapf, 0, "CACHE ERROR: CheckReverseTrain() = [%s, %s]", result1 ? "T" : "F", result2 ? "T" : "F");
+		}
+#endif
+
+		return result1;
 	}
 
 	FORCEINLINE bool CheckReverseTrain(Vehicle* v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2)