1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-25 23:49:09 +00:00

Compare commits

..

22 Commits

Author SHA1 Message Date
rubidium
8a1c079edf (svn r16365) -Release: 0.7.1-RC2 2009-05-21 12:08:52 +00:00
rubidium
ba01583ce3 (svn r16364) [0.7] -Backport from trunk:
- Fix: The previously selected NewGRF station type was still remembered after switching to a different game without newstations enabled, preventing stations from being built (r16363)
- Fix: Pointer incremented with wrong count (r16361)
- Fix: Delete invalid depots in TTD savegames caused by improper SVXConverter conversions (r16357)
2009-05-21 11:47:45 +00:00
rubidium
498e5989d1 (svn r16355) [0.7] -Backport from trunk:
- Fix: Invalid read when OTTD savegame contains VEH_INVALID (r16353)
- Fix: Signal handler could end in endless loop (r16351)
- Fix: [NewGRF] When overriding 'original sounds', only allow overriding of the 'original sounds' and not any other that is already loaded (r16339)
- Fix: Desyncs when removing lots of stations/towns (r16329, r16328)
[0.7] -Cleanup: unify style of changelog
2009-05-18 20:17:28 +00:00
rubidium
ab7b117c50 (svn r16324) [0.7] -Backport from trunk:
- Fix: Desyncs due to the fact that depot searching with a maximum search depth simply does not work with YAPF's caches [FS#2900] (r16323)
- Fix: Trains could get stuck in a depot when they wanted to go to the same depot again [FS#2873] (r16322)
- Fix: In the scenario editor change the (starting) game year of the scenario, not the (starting) game year for new games/scenarios (r16321)
- Fix: Loading of savegames created in revision between 0.3.5 and 0.3.6 caused crash (r16320)
- Fix: [NoAI] Set the autorenew settings for new AI companies to the default values, not to 0 or the local settings (r16316)
- Fix: [NewGRF] Allow accessing the house age when the house is not yet built (r16314)
- Fix: (Get|Set)TrackBits() is only valid for RAIL_TILE_NORMAL and _SIGNALS (r16311)
2009-05-16 20:29:53 +00:00
rubidium
085b498c28 (svn r16310) [0.7] -Backport from trunk:
- Fix: Parameter is invalid when it is equal to length of an array (r16308)
- Fix: Close all windows before unloading the AI system as closing the content-download window will rescan for AIs [FS#2901] (r16306)
- Fix: ICC (Intel C++ Compiler) defined __GNUC__ but does not define __builtin_bswap32, so fall back to the default swap method for ICC (r16295)
- Fix: Road vehicles were unable to find a depot when turning around (in some cases), causing 'nearest depot' orders to be occasionally lost [FS#2893] (r16291
2009-05-15 10:24:13 +00:00
rubidium
30eff93341 (svn r16309) [0.7] -Backport from trunk:
- Fix: Unable to (re)set the desert state for watery tiles [FS#2888] (r16290)
- Fix: Possible (in theory) desync related to autorenew settings (r16287)
- Fix: Crash after using the 'Reset landscape' function and remove all waypoint signs and buoys after resetting landscape (r16280)
- Fix: [NewGRF] Disable multitile houses for which the newgrf does not define proper additional tiles (r16274)
2009-05-15 10:17:00 +00:00
rubidium
139a213d4d (svn r16278) [0.7] -Backport from trunk:
- Fix: The language is called Slovak, not Slovakish (r16090)
2009-05-11 15:35:26 +00:00
rubidium
06c45d6fe5 (svn r16275) [0.7] -Backport a lot of language updates from trunk. 2009-05-10 22:35:36 +00:00
rubidium
8446d6b8c2 (svn r16273) [0.7] -Backport from trunk:
- Fix: Wrong number of parameters or wrong parameter types sent to printf-like functions at several places (r16269)
- Fix: [NewGRF] When callback 2E returns an amount of 0, do not transport 1 unit to the station (r16268)
- Fix: [NoAI] Various documentation omissions with respect to IDs of various objects and corners for AITile::(Raise|Lower)Tile (r16267,r16266)
2009-05-10 21:33:55 +00:00
rubidium
9676072298 (svn r16272) [0.7] -Backport from trunk:
- Fix: [NoAI] Check slopes passed to the API better for validity (r16264, r16262)
- Fix: [NewGRF] Interpret setting bridge property 08 to 0 as always available (r16263)
- Add: [NoAI] AIController::GetVersion, this returns the version of OpenTTD in the same way as for NewGRFs (r16253)
- Add: [NoAI] AIAirport::GetPrice, returning the building cost of an airport (r16252)
- Fix: [NoAI] Enable parameter checking for AIController::* functions again (r16249)
2009-05-10 21:26:46 +00:00
rubidium
2db7e3a0a8 (svn r16248) [0.7] -Backport from trunk:
- Fix: Improve corner case order handling: mark order as done only when actually done, obey non-stop orders, do only stop/refit at the depot in the order (r16240,r16228,r16199,r16198,r16187)
- Fix: Use the stop/non-stop intermediate orderflags AIs can give for goto-depot orders (r16239)
2009-05-06 23:21:43 +00:00
rubidium
1e9fd18e6a (svn r16247) [0.7] -Backport from trunk:
- Fix: [NoAI] Make sure AITunnel::BuildTunnel returns what the documentation says it does (r16244)
- Fix: [NoAI] CmdBuildTunnel could be called with invalid parameters from the API code, causing crashes later [FS#2875] (r16243)
- Fix: [NewGRF] ActionB should use the online parameters from GRFFile instead of the initial user-specified values from GRFConfig. Also use the values as they were set when the ActionB was executed, not as they are set when the message is shown (r16223)
- Fix: Possible crashes when quiting OpenTTD or forcing resizes/redraws of the screen during map generation [FS#2862] (r16220)
- Fix: Shared orders without orders were not properly converted causing corrupt/invalid orders when loading pre 0.7 savegames [FS#2878] (r16214)
2009-05-06 22:37:19 +00:00
rubidium
909af50aaa (svn r16246) [0.7] -Backport from trunk:
- Fix: [Squirrel] the traps variable wasn't restored, causing try/catch blocks to be 'forgotten' during a suspend (r16181)
- Add: [NoAI] Two new error codes to AITile: ERR_AREA_ALREADY_FLAT and ERR_EXCAVATION_WOULD_DAMAGE (r16171)
- Add: [NoAI] AITile::Get(Min|Max|Corner)Height (r16166)
- Add: [NoAI] Several functions to AIOrder to check the what kind of order an order is [FS#2801] (r16165)
- Fix: [NoAI] AIOrder::GetOrderDestination and AIOrder::GetOrderFlags didn't work on ORDER_CURRENT when the vehicle was loading/leaving in a station (r16165)
- Fix: [NoAI] Change WAYPOINT_INVALID to 0xFFFF from -1 as that is the value the AIs got (due to casting) (r16150)
2009-05-06 22:31:52 +00:00
rubidium
07a16f9282 (svn r16245) [0.7] -Backport from trunk:
- Fix: Hardcoded (old sized) MAX_COMPANIES constant (r16182)
- Fix: Do not try to reserve path for trains crashed in station [FS#2866] (r16178)
- Fix: Forbid joining AI companies via the 'move' and 'join' console commands/multiplayer lobby (r16176, r16175)
- Fix: The overflowsafe type did not like dividing by int64 larger than MAX_INT32 causing division by negative numbers and small anomolies when drawing graphs [FS#2855] (r16130)
2009-05-06 22:21:32 +00:00
rubidium
28e7981a5b (svn r16121) [0.7] -Backport from trunk:
- Add: [NoAI] UseAsRandomAI as function in info.nut. When an AI returns false, it will never be chosen as random AI (r16113)
- Fix: [NoAI] Make sure AIOrder::GetDestination always returns a tile belonging to the station (16109)
- Fix: [NoAI] When giving an aircraft a goto-hangar order do not let it be a normal goto-station order (r16108)
- Add: [NoAI] AIOF_STOP_IN_DEPOT to the orderflags in AIOrder to allow stop-in-depot orders (r16107)
- Fix: [NoAI] AIOrder::SetOrderFlags always removed "Service if needed" from goto-depot orders (r16106)
- Add: [NoAI] GetURL() as possible function to info.nut. If AIs implement it, that url is shown when the AI crashes and also in the AI selection window [FS#2808] (r16093)
- Change: [NoAI] Reverse the order of the lines in the AI debug window [FS#2778] (r16091)
- Fix: [NoAI] AIDebug window profiled the blitters by invalidating itself unconditionally on repaint. OTOH it was not invalidated in other cases when needed (r16094)
- Fix: [NoAI] MOF_COND_DESTINATION was not accepted by CmdModifyOrder() (r16063)
2009-04-22 09:00:19 +00:00
rubidium
f7cc97fe5c (svn r16120) [0.7] -Backport from trunk:
- Fix: Road was removed when both the Remove button was active and Ctrl was pressed [FS#2582] (r16119)
- Fix: Connect tried to validate too much of the company ID with too little information on hand [FS#2849] (r16096)
- Fix: Insanely fast trains would not stop in time for stations/'jump' over waypoints/via stations within a tick, which would cause the order not to be processed causing the train to go in loops until (with luck) it 'hit' the tile [FS#2824] (r16079)
- Fix: Content download progress bar 'resetting' due to mathematical overflow [FS#2845] (r16071)
- Fix: Memory leak when querying a server multiple times (r16064)
2009-04-22 08:48:08 +00:00
rubidium
d9ed2d380f (svn r16061) [0.7] -Backport from trunk:
- Fix: Non advanced vehicle list did not handle company switching correctly (r16054)
- Fix: Do not warn that crashed vehicles are getting old; upgrading them is impossible [FS#2740] (r16048)
- Fix: The currency abbreviation for the Romanian Leu is now RON [FS#774] (r16041)
- Fix: Dash was not able to run iconv detection (r16035)
- Fix: [NewGRF] Do not give "... Mines" as name to the station of oil rigs, or more general: do not add "... Mines" when the all of the cargoes are part of the liquid, passenger or mail classes [FS#2785] (r16029)
2009-04-14 21:20:03 +00:00
rubidium
60901368cc (svn r16060) [0.7] -Backport from trunk:
- Fix: Storing/loading some currencies failed due to inconsistent settings "tables" [FS#2826] (r16028)
- Fix: Usage of uninitialised memory when trying to build a random new industry, but there are no industrytypes to choose from (i.e. all appearance probabilities are zero) (r16027)
- Fix: "Build separate station" in the station picker would reuse deleted stations [FS#2818] (r16025)
- Fix: 32 bpp sprites in tars would also be shown in the list of heightmaps [FS#2817] (r16023)
- Fix: Sometimes the unregister "query" thread could be delayed so much that the network stuff was already closed and the packet would never reach the master server causing the server to appear online longer than necessary (r16022)
- Fix: Chance16() did not work for b = 1. Also transform the formula to not use divisions (r16006)
2009-04-14 21:13:07 +00:00
rubidium
9f5e690118 (svn r16059) [0.7] -Backport from trunk:
- Fix: Inconsistency between using NETWORK_NAME_LENGTH and NETWORK_CLIENT_NAME_LENGTH for the length of client names (r15988)
- Fix: [NewGRF] Abort production callback after 0x10000 iterations and show a messagebox blaming the NewGRF [FS#2787] (r15958)
- Fix: [NewGRF] Set callback_param1 (var 10) to 1 only when requested (r15957)
- Fix: Tooltip of detailed ratings window button showed wrong tip (r15943)
- Change: Harden string copying on places where it is possible (r16024)
- Change: Use recent Czech language for plural form (r15965)
2009-04-14 21:07:33 +00:00
rubidium
2fbd7ff6cc (svn r15912) [0.7] -Backport from trunk:
- Update: lots and lots of translations
- Fix: Chat completion got called twice causing tab completion to seemingly fail (r15905)
2009-04-01 14:24:54 +00:00
rubidium
1595413545 (svn r15904) [0.7] -Backport from trunk:
- Feature: Watermark crash.sav and do not generate crash information if a loaded crash.sav causes a crash so the real crash report does not get overwritten (r15893)
- Feature: Add autoclean_novehicles setting which will, when autoclean_companies is true, remove any company with no vehicles and no active client after autoclean_novehicles-months (r15848)
- Add: [NoAI] AIIndustryType::IsBuiltOnWater(), HasHeliport() and HasDock(). Just like AIIndustry (r15901)
- Add: [NoAI] AIBridge::GetBridgeID() so AIs can get the type of bridge that are already build (r15875)
- Add: [NoAI] AIRoad::GetRoadVehicleTypeForCargo() to tell whether a certain cargo needs a bus- or a truckstop (r15860)
2009-03-30 23:22:13 +00:00
rubidium
76b2e1c5ab (svn r15903) [0.7] -Backport from trunk:
- Fix: YAPF did not apply the platform length (too long/too short) penalties (r15900)
- Fix: Fixing the slopes was done a bit more often than intended making map generation with the original generator horribly slow (r15895)
- Fix: YAPF used different penalties for aqueducts than for other water tiles (r15891)
- Fix: Round the production rate up, so e.g. oilrigs always produce some passengers on lowest production level [FS#2772] (r15888)
- Fix: Libtimidity cannot handle frees of NULL (in contrast of most other frees) [FS#2770] (r15886)
- Fix: Make sure house class/ID counters do not overflow (r15831)
2009-03-30 23:15:05 +00:00
202 changed files with 4027 additions and 2415 deletions

View File

@@ -93,7 +93,7 @@ ifeq ($(shell if test -f config.cache; then echo 1; fi), 1)
@echo " Going to reconfigure with last known settings..."
@echo "----------------"
# Make sure we don't lock config.cache
@$(shell cat config.cache | sed 's~\\ ~\\\\ ~g') || exit 1
@$(shell cat config.cache | sed 's@\\ @\\\\ @g') || exit 1
@echo "----------------"
@echo "Reconfig done. Please re-execute make."
@echo "----------------"

View File

@@ -20,7 +20,7 @@ SRC_DIR = "$(ROOT_DIR)/src"
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
TTD = "openttd.exe"
TARGET := $(shell echo $(PLATFORM) | sed "s~win64~x64~;s~win32~Win32~")
TARGET := $(shell echo $(PLATFORM) | sed "s@win64@x64@;s@win32@Win32@")
all:
$(Q)cp objs/$(TARGET)/Release/$(TTD) $(BIN_DIR)/$(TTD)

View File

@@ -57,7 +57,7 @@ ENDIAN_TARGETS := endian_target.h $(ENDIAN_CHECK)
# For more information, please check:
# http://maillist.openttd.org/pipermail/devs/2007-April/000284.html
# http://maillist.openttd.org/pipermail/devs/2007-February/000248.html
GCC295_FIX=sed -r 's~^(\t*)(.*)( const )([A-Za-z0-9_ ]+(\[.*\]){2,})(( = \{)|(;))(.*)$$~\1\2 \4\6\8\9~g'
GCC295_FIX=sed -r 's@^(\t*)(.*)( const )([A-Za-z0-9_ ]+(\[.*\]){2,})(( = \{)|(;))(.*)$$@\1\2 \4\6\8\9@g'
# This 'sed' removes the 3rd '4' in the # lines of the -E output of
# gcc 2.95.3 and lower, as it should indicate that it is a C-linkage, but the
# compiler can't handle that information (just don't ask). So we remove it
@@ -65,7 +65,7 @@ GCC295_FIX=sed -r 's~^(\t*)(.*)( const )([A-Za-z0-9_ ]+(\[.*\]){2,})(( = \{)|(;)
# Furthermore gcc 2.95 has some trouble with protected and private when
# accessing the protected/private stuff of the enclosing class (or the
# super class of the enclosing class).
GCC295_FIX_2=sed -e 's~\(^\# [0-9][0-9]* "[^"]*"[ 0-9]*\) 4$$~\1~g;s~private:~public:~g;s~protected:~public:~g'
GCC295_FIX_2=sed -e 's@\(^\# [0-9][0-9]* "[^"]*"[ 0-9]*\) 4$$@\1@g;s@private:@public:@g;s@protected:@public:@g'
# Check if we want to show what we are doing
ifdef VERBOSE
@@ -98,7 +98,7 @@ MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ')
ifdef REVISION
# Use specified revision (which should be of the form "r000").
REV := $(REVISION)
REV_NR := $(shell echo $(REVISION) | sed "s~[^0-9]~~g")
REV_NR := $(shell echo $(REVISION) | sed "s@[^0-9]@@g")
else
# Use autodetected revisions
REV := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
@@ -143,15 +143,15 @@ endif
$(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP)
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.c=%.c)'
$(Q)$(CC_HOST) $(CC_CFLAGS) $(CFLAGS) -MM $< | sed 's~^$(@F:%.d=%.o):~$@ $(@:%.d=%.o):~' > $@
$(Q)$(CC_HOST) $(CC_CFLAGS) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
$(OBJS_CPP:%.o=%.d): %.d: $(SRC_DIR)/%.cpp $(FILE_DEP)
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_HOST) $(CFLAGS) -MM $< | sed 's~^$(@F:%.d=%.o):~$@ $(@:%.d=%.o):~' > $@
$(Q)$(CXX_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
$(OBJS_MM:%.o=%.d): %.d: $(SRC_DIR)/%.mm $(FILE_DEP)
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's~^$(@F:%.d=%.o):~$@ $(@:%.d=%.o):~' > $@
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
$(OBJS_RC:%.o=%.d): %.d: $(SRC_DIR)/%.rc $(FILE_DEP)
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
@@ -182,7 +182,7 @@ endif
# Convert x:/... paths to /x/... for mingw
ifeq ($(OS), MINGW)
@cat Makefile.dep.tmp | sed 's~\([a-zA-Z]\):\/~\/\1\/~g' > Makefile.dep.tmp.mingw
@cat Makefile.dep.tmp | sed 's@\([a-zA-Z]\):\/@\/\1\/@g' > Makefile.dep.tmp.mingw
@cp Makefile.dep.tmp.mingw Makefile.dep.tmp
@rm -f Makefile.dep.tmp.mingw
endif
@@ -211,7 +211,7 @@ endif
{ \
print $$0 \
} \
' < Makefile.dep.tmp | sed 's~ *~ ~g;s~ $$~~' | $(SORT) > Makefile.dep
' < Makefile.dep.tmp | sed 's@ *@ @g;s@ $$@@' | $(SORT) > Makefile.dep
$(Q)rm -f Makefile.dep.tmp Makefile.dep.tmp.bak
@@ -280,10 +280,10 @@ $(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
# Revision files
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s~@@REVISION@@~$(REV_NR)~g;s~@@VERSION@@~$(REV)~g;s~@@MODIFIED@@~$(MODIFIED)~g;s~@@DATE@@~`date +%d.%m.%y`~g" > $(SRC_DIR)/rev.cpp
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/rev.cpp
$(SRC_DIR)/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/ottdres.rc.in
$(Q)cat $(SRC_DIR)/ottdres.rc.in | sed "s~@@REVISION@@~$(REV_NR)~g;s~@@VERSION@@~$(REV)~g;s~@@DATE@@~`date +%d.%m.%y`~g" > $(SRC_DIR)/ottdres.rc
$(Q)cat $(SRC_DIR)/ottdres.rc.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/ottdres.rc
FORCE:

View File

@@ -220,6 +220,7 @@ function Regression::Airport()
}
print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.COMPANY_SELF));
print(" GetPrice(): " + AIAirport.GetPrice(0));
print(" BuildAirport(): " + AIAirport.BuildAirport(32116, 0, AIStation.STATION_JOIN_ADJACENT));
print(" IsHangarTile(): " + AIAirport.IsHangarTile(32116));
print(" IsAirportTile(): " + AIAirport.IsAirportTile(32116));
@@ -256,12 +257,15 @@ function Regression::Bridge()
print(" Valid Bridges: " + j);
print(" IsBridgeTile(): " + AIBridge.IsBridgeTile(33160));
print(" GetBridgeID(): " + AIBridge.GetBridgeID(33160));
print(" RemoveBridge(): " + AIBridge.RemoveBridge(33155));
print(" GetLastErrorString(): " + AIError.GetLastErrorString());
print(" GetOtherBridgeEnd(): " + AIBridge.GetOtherBridgeEnd(33160));
print(" BuildBridge(): " + AIBridge.BuildBridge(AIVehicle.VT_ROAD, 5, 33160, 33155));
print(" IsBridgeTile(): " + AIBridge.IsBridgeTile(33160));
print(" GetBridgeID(): " + AIBridge.GetBridgeID(33160));
print(" IsBridgeTile(): " + AIBridge.IsBridgeTile(33155));
print(" GetBridgeID(): " + AIBridge.GetBridgeID(33155));
print(" GetOtherBridgeEnd(): " + AIBridge.GetOtherBridgeEnd(33160));
print(" BuildBridge(): " + AIBridge.BuildBridge(AIVehicle.VT_ROAD, 5, 33160, 33155));
print(" GetLastErrorString(): " + AIError.GetLastErrorString());
@@ -329,6 +333,7 @@ function Regression::Cargo()
print(" GetCargoIncome(10, 10): " + AICargo.GetCargoIncome(i, 10, 10));
print(" GetCargoIncome(100, 10): " + AICargo.GetCargoIncome(i, 100, 10));
print(" GetCargoIncome(10, 100): " + AICargo.GetCargoIncome(i, 10, 100));
print(" GetRoadVehicleTypeForCargo(): " + AIRoad.GetRoadVehicleTypeForCargo(i));
}
}
@@ -631,6 +636,9 @@ function Regression::IndustryTypeList()
print(" GetName(): " + AIIndustryType.GetName(i));
print(" CanBuildIndustry(): " + AIIndustryType.CanBuildIndustry(i));
print(" CanProspectIndustry(): " + AIIndustryType.CanProspectIndustry(i));
print(" IsBuiltOnWater(): " + AIIndustryType.IsBuiltOnWater(i));
print(" HasHeliport(): " + AIIndustryType.HasHeliport(i));
print(" HasDock(): " + AIIndustryType.HasDock(i));
}
}
@@ -1182,7 +1190,7 @@ function Regression::TileList()
print("");
print("--TileList--");
print(" Count(): " + list.Count());
list.AddRectangle(41895 - 256 * 2, 256 * 2 + 41895 + 8);
list.AddRectangle(34436, 256 * 2 + 34436 + 8);
print(" Count(): " + list.Count());
list.Valuate(AITile.GetHeight);
@@ -1193,6 +1201,30 @@ function Regression::TileList()
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.GetCornerHeight, AITile.CORNER_N);
print(" CornerHeight(North): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.GetMinHeight);
print(" MinHeight(): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.GetMaxHeight);
print(" MaxHeight(): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.GetSlope);
list.KeepValue(0);
print(" Slope(): done");
@@ -1203,6 +1235,8 @@ function Regression::TileList()
print(" " + i + " => " + list.GetValue(i));
}
list.Clear();
list.AddRectangle(41895 - 256 * 2, 256 * 2 + 41895 + 8);
list.Valuate(AITile.IsBuildable);
list.KeepValue(1);
print(" Buildable(): done");

View File

@@ -620,6 +620,7 @@
GetAirportHeight(9): -1
GetAirportCoverageRadius(9): -1
GetBankBalance(): 100000
GetPrice(): 84
BuildAirport(): true
IsHangarTile(): false
IsAirportTile(): true
@@ -743,12 +744,15 @@
GetMinLength(): -1
Valid Bridges: 10
IsBridgeTile(): false
GetBridgeID(): -1
RemoveBridge(): false
GetLastErrorString(): ERR_PRECONDITION_FAILED
GetOtherBridgeEnd(): -1
BuildBridge(): true
IsBridgeTile(): true
GetBridgeID(): 5
IsBridgeTile(): true
GetBridgeID(): 5
GetOtherBridgeEnd(): 33155
BuildBridge(): false
GetLastErrorString(): ERR_ALREADY_BUILT
@@ -824,6 +828,7 @@
GetCargoIncome(10, 10): -1
GetCargoIncome(100, 10): -1
GetCargoIncome(10, 100): -1
GetRoadVehicleTypeForCargo(): 1
Cargo 0
IsValidCargo(): true
GetCargoLabel(): 'PASS'
@@ -834,6 +839,7 @@
GetCargoIncome(10, 10): 3
GetCargoIncome(100, 10): 39
GetCargoIncome(10, 100): 3
GetRoadVehicleTypeForCargo(): 0
Cargo 1
IsValidCargo(): true
GetCargoLabel(): 'COAL'
@@ -844,6 +850,7 @@
GetCargoIncome(10, 10): 7
GetCargoIncome(100, 10): 75
GetCargoIncome(10, 100): 6
GetRoadVehicleTypeForCargo(): 1
Cargo 2
IsValidCargo(): true
GetCargoLabel(): 'MAIL'
@@ -854,6 +861,7 @@
GetCargoIncome(10, 10): 5
GetCargoIncome(100, 10): 58
GetCargoIncome(10, 100): 5
GetRoadVehicleTypeForCargo(): 1
Cargo 3
IsValidCargo(): true
GetCargoLabel(): 'OIL_'
@@ -864,6 +872,7 @@
GetCargoIncome(10, 10): 5
GetCargoIncome(100, 10): 56
GetCargoIncome(10, 100): 5
GetRoadVehicleTypeForCargo(): 1
Cargo 4
IsValidCargo(): true
GetCargoLabel(): 'LVST'
@@ -874,6 +883,7 @@
GetCargoIncome(10, 10): 5
GetCargoIncome(100, 10): 55
GetCargoIncome(10, 100): 4
GetRoadVehicleTypeForCargo(): 1
Cargo 5
IsValidCargo(): true
GetCargoLabel(): 'GOOD'
@@ -884,6 +894,7 @@
GetCargoIncome(10, 10): 7
GetCargoIncome(100, 10): 78
GetCargoIncome(10, 100): 6
GetRoadVehicleTypeForCargo(): 1
Cargo 6
IsValidCargo(): true
GetCargoLabel(): 'GRAI'
@@ -894,6 +905,7 @@
GetCargoIncome(10, 10): 6
GetCargoIncome(100, 10): 60
GetCargoIncome(10, 100): 5
GetRoadVehicleTypeForCargo(): 1
Cargo 7
IsValidCargo(): true
GetCargoLabel(): 'WOOD'
@@ -904,6 +916,7 @@
GetCargoIncome(10, 10): 6
GetCargoIncome(100, 10): 63
GetCargoIncome(10, 100): 5
GetRoadVehicleTypeForCargo(): 1
Cargo 8
IsValidCargo(): true
GetCargoLabel(): 'IORE'
@@ -914,6 +927,7 @@
GetCargoIncome(10, 10): 6
GetCargoIncome(100, 10): 65
GetCargoIncome(10, 100): 5
GetRoadVehicleTypeForCargo(): 1
Cargo 9
IsValidCargo(): true
GetCargoLabel(): 'STEL'
@@ -924,6 +938,7 @@
GetCargoIncome(10, 10): 7
GetCargoIncome(100, 10): 72
GetCargoIncome(10, 100): 6
GetRoadVehicleTypeForCargo(): 1
Cargo 10
IsValidCargo(): true
GetCargoLabel(): 'VALU'
@@ -934,6 +949,7 @@
GetCargoIncome(10, 10): 9
GetCargoIncome(100, 10): 94
GetCargoIncome(10, 100): 7
GetRoadVehicleTypeForCargo(): 1
Cargo 11
IsValidCargo(): false
GetCargoLabel(): '(null : 0x00000000)'
@@ -944,6 +960,7 @@
GetCargoIncome(10, 10): -1
GetCargoIncome(100, 10): -1
GetCargoIncome(10, 100): -1
GetRoadVehicleTypeForCargo(): 1
Cargo 12
IsValidCargo(): false
GetCargoLabel(): '(null : 0x00000000)'
@@ -954,6 +971,7 @@
GetCargoIncome(10, 10): -1
GetCargoIncome(100, 10): -1
GetCargoIncome(10, 100): -1
GetRoadVehicleTypeForCargo(): 1
Cargo 13
IsValidCargo(): false
GetCargoLabel(): '(null : 0x00000000)'
@@ -964,6 +982,7 @@
GetCargoIncome(10, 10): -1
GetCargoIncome(100, 10): -1
GetCargoIncome(10, 100): -1
GetRoadVehicleTypeForCargo(): 1
Cargo 14
IsValidCargo(): false
GetCargoLabel(): '(null : 0x00000000)'
@@ -974,6 +993,7 @@
GetCargoIncome(10, 10): -1
GetCargoIncome(100, 10): -1
GetCargoIncome(10, 100): -1
GetRoadVehicleTypeForCargo(): 1
--CargoList--
Count(): 11
@@ -1052,7 +1072,7 @@
GetAutoRenewStatus(); true
SetAutoRenewStatus(true); false
SetAutoRenewStatus(false); true
GetAutoRenewMonths(); -6
GetAutoRenewMonths(); 6
SetAutoRenewMonths(-12); true
GetAutoRenewMonths(); -12
SetAutoRenewMonths(-12); false
@@ -6907,6 +6927,9 @@
GetName(): Farm
CanBuildIndustry(): false
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
Id: 5
IsRawIndustry(): true
ProductionCanIncrease(): true
@@ -6914,6 +6937,9 @@
GetName(): Oil Rig
CanBuildIndustry(): false
CanProspectIndustry(): false
IsBuiltOnWater(): true
HasHeliport(): true
HasDock(): true
Id: 12
IsRawIndustry(): false
ProductionCanIncrease(): true
@@ -6921,6 +6947,9 @@
GetName(): Bank
CanBuildIndustry(): true
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
Id: 11
IsRawIndustry(): true
ProductionCanIncrease(): false
@@ -6928,6 +6957,9 @@
GetName(): Oil Wells
CanBuildIndustry(): false
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
Id: 1
IsRawIndustry(): false
ProductionCanIncrease(): true
@@ -6935,6 +6967,9 @@
GetName(): Power Station
CanBuildIndustry(): true
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
Id: 3
IsRawIndustry(): true
ProductionCanIncrease(): true
@@ -6942,6 +6977,9 @@
GetName(): Forest
CanBuildIndustry(): false
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
Id: 2
IsRawIndustry(): false
ProductionCanIncrease(): true
@@ -6949,6 +6987,9 @@
GetName(): Sawmill
CanBuildIndustry(): true
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
Id: 18
IsRawIndustry(): true
ProductionCanIncrease(): true
@@ -6956,6 +6997,9 @@
GetName(): Iron Ore Mine
CanBuildIndustry(): false
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
Id: 0
IsRawIndustry(): true
ProductionCanIncrease(): true
@@ -6963,6 +7007,9 @@
GetName(): Coal Mine
CanBuildIndustry(): false
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
Id: 8
IsRawIndustry(): false
ProductionCanIncrease(): true
@@ -6970,6 +7017,9 @@
GetName(): Steel Mill
CanBuildIndustry(): true
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
Id: 4
IsRawIndustry(): false
ProductionCanIncrease(): true
@@ -6977,6 +7027,9 @@
GetName(): Oil Refinery
CanBuildIndustry(): true
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
Id: 6
IsRawIndustry(): false
ProductionCanIncrease(): true
@@ -6984,6 +7037,9 @@
GetName(): Factory
CanBuildIndustry(): true
CanProspectIndustry(): false
IsBuiltOnWater(): false
HasHeliport(): false
HasDock(): false
--Map--
GetMapSize(): 65536
@@ -7273,7 +7329,7 @@
Count(): 9
ListDump:
27631 => 29
27631 => 255
27631 => 65535
27631 => true
27631 => false
27888 => 13
@@ -7311,125 +7367,178 @@
--TileList--
Count(): 0
Count(): 45
Count(): 27
Height(): done
Count(): 45
Count(): 27
ListDump:
42411 => 2
42410 => 2
42409 => 2
42408 => 2
42407 => 2
42154 => 2
42153 => 2
42152 => 2
42151 => 2
41898 => 2
41897 => 2
41896 => 2
41895 => 2
41642 => 2
41641 => 2
41640 => 2
41639 => 2
41386 => 2
41385 => 2
41384 => 2
41383 => 2
42415 => 1
42414 => 1
42413 => 1
42412 => 1
42159 => 1
42158 => 1
42157 => 1
42156 => 1
42155 => 1
41903 => 1
41902 => 1
41901 => 1
41900 => 1
41899 => 1
41647 => 1
41646 => 1
41645 => 1
41644 => 1
41643 => 1
41391 => 1
41390 => 1
41389 => 1
41388 => 1
41387 => 1
34956 => 4
34700 => 4
34444 => 4
34955 => 3
34954 => 3
34953 => 3
34699 => 3
34698 => 3
34697 => 3
34693 => 3
34692 => 3
34443 => 3
34442 => 3
34441 => 3
34439 => 3
34438 => 3
34437 => 3
34436 => 3
34952 => 2
34951 => 2
34950 => 2
34949 => 2
34948 => 2
34696 => 2
34695 => 2
34694 => 2
34440 => 2
CornerHeight(North): done
Count(): 27
ListDump:
34956 => 4
34700 => 4
34444 => 4
34955 => 3
34954 => 3
34953 => 3
34699 => 3
34698 => 3
34697 => 3
34693 => 3
34692 => 3
34443 => 3
34442 => 3
34441 => 3
34439 => 3
34438 => 3
34437 => 3
34436 => 3
34952 => 2
34951 => 2
34950 => 2
34949 => 2
34948 => 2
34696 => 2
34695 => 2
34694 => 2
34440 => 2
MinHeight(): done
Count(): 27
ListDump:
34956 => 4
34700 => 4
34444 => 4
34955 => 3
34954 => 3
34953 => 3
34699 => 3
34698 => 3
34697 => 3
34443 => 3
34442 => 3
34441 => 3
34436 => 3
34952 => 2
34951 => 2
34950 => 2
34949 => 2
34948 => 2
34696 => 2
34695 => 2
34694 => 2
34693 => 2
34692 => 2
34440 => 2
34439 => 2
34438 => 2
34437 => 2
MaxHeight(): done
Count(): 27
ListDump:
34956 => 4
34955 => 4
34700 => 4
34699 => 4
34444 => 4
34443 => 4
34954 => 3
34953 => 3
34952 => 3
34951 => 3
34950 => 3
34949 => 3
34948 => 3
34698 => 3
34697 => 3
34696 => 3
34693 => 3
34692 => 3
34442 => 3
34441 => 3
34440 => 3
34439 => 3
34438 => 3
34437 => 3
34436 => 3
34695 => 2
34694 => 2
Slope(): done
KeepValue(0): done
Count(): 38
Count(): 12
ListDump:
42415 => 0
42414 => 0
42413 => 0
42410 => 0
42409 => 0
42408 => 0
42407 => 0
42159 => 0
42158 => 0
42157 => 0
42156 => 0
42153 => 0
42152 => 0
42151 => 0
41903 => 0
41902 => 0
41901 => 0
41900 => 0
41899 => 0
41897 => 0
41896 => 0
41895 => 0
41647 => 0
41646 => 0
41645 => 0
41644 => 0
41643 => 0
41641 => 0
41640 => 0
41639 => 0
41391 => 0
41390 => 0
41389 => 0
41388 => 0
41387 => 0
41385 => 0
41384 => 0
41383 => 0
34956 => 0
34954 => 0
34953 => 0
34700 => 0
34698 => 0
34697 => 0
34695 => 0
34694 => 0
34444 => 0
34442 => 0
34441 => 0
34436 => 0
Buildable(): done
KeepValue(1): done
Count(): 28
Count(): 35
BuildableRectangle(3, 3) ListDump:
42415 => 1
42414 => 1
42413 => 1
42412 => 1
42411 => 1
42410 => 1
42159 => 1
42158 => 1
42157 => 1
42156 => 1
42155 => 1
42154 => 1
41903 => 1
41902 => 1
41901 => 1
41900 => 1
41899 => 1
41898 => 1
41647 => 1
41646 => 1
41645 => 1
41644 => 1
41643 => 1
41642 => 1
41641 => 1
41391 => 1
41390 => 1
41389 => 1
41388 => 1
41387 => 1
41386 => 1
41385 => 1
42153 => 0
41897 => 0
@@ -7441,26 +7550,33 @@
42413 => 173
42158 => 173
41903 => 173
42412 => 172
42157 => 172
41902 => 172
41647 => 172
42411 => 171
42156 => 171
41901 => 171
41646 => 171
41391 => 171
42410 => 170
42155 => 170
41900 => 170
41645 => 170
41390 => 170
42154 => 169
41899 => 169
41644 => 169
41389 => 169
42153 => 168
41898 => 168
41643 => 168
41388 => 168
41897 => 167
41642 => 167
41387 => 167
41641 => 166
41386 => 166
41385 => 165
41384 => 164
DistanceSquareToTile(30000) ListDump:
@@ -7477,17 +7593,24 @@
42157 => 17834
41390 => 17812
41901 => 17741
42412 => 17680
41645 => 17650
42156 => 17585
41389 => 17561
41900 => 17492
42411 => 17433
41644 => 17401
42155 => 17338
41388 => 17312
41899 => 17245
42410 => 17188
41643 => 17154
42154 => 17093
41387 => 17065
41898 => 17000
41642 => 16909
42153 => 16850
41386 => 16820
41897 => 16757
41641 => 16666
41385 => 16577
@@ -7496,63 +7619,77 @@
42415 => -1
42414 => -1
42413 => -1
42412 => -1
42411 => -1
42410 => -1
42159 => -1
42158 => -1
42157 => -1
42156 => -1
42155 => -1
42154 => -1
42153 => -1
41903 => -1
41902 => -1
41901 => -1
41900 => -1
41899 => -1
41898 => -1
41897 => -1
41647 => -1
41646 => -1
41645 => -1
41644 => -1
41643 => -1
41642 => -1
41641 => -1
41391 => -1
41390 => -1
41389 => -1
41388 => -1
41387 => -1
41386 => -1
41385 => -1
41384 => -1
GetClosestTown() ListDump:
42415 => 3
42414 => 3
42413 => 3
42412 => 3
42411 => 3
42410 => 3
42159 => 3
42158 => 3
42157 => 3
42156 => 3
42155 => 3
42154 => 3
42153 => 3
41903 => 3
41902 => 3
41901 => 3
41900 => 3
41899 => 3
41898 => 3
41897 => 3
41647 => 3
41646 => 3
41645 => 3
41644 => 3
41643 => 3
41642 => 3
41641 => 3
41391 => 3
41390 => 3
41389 => 3
41388 => 3
41387 => 3
41386 => 3
41385 => 3
41384 => 3
CargoAcceptance(): done
KeepAboveValue(10): done
Count(): 9
Count(): 15
ListDump:
41897 => 29
41385 => 26
@@ -7560,9 +7697,15 @@
42153 => 25
41641 => 23
41899 => 17
41898 => 17
41387 => 17
41386 => 17
41643 => 14
41642 => 14
42411 => 13
42410 => 13
42155 => 13
42154 => 13
RoadTile(): done
KeepValue(1): done
Count(): 0

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,7 @@ log() {
}
set_default() {
released_version="0.7.0-RC2"
released_version="0.7.1-RC2"
ignore_extra_parameters="0"
# We set all kinds of defaults for params. Later on the user can override
@@ -415,7 +415,7 @@ save_params() {
configure="$CONFIGURE_EXECUTABLE --ignore-extra-parameters"
for p in $save_params_array; do
eval "v=\"\$$p\""
p=`echo "$p" | sed 's~_~-~g;s~\n~~g;s~ ~\\ ~g'`
p=`echo "$p" | sed 's@_@-@g;s@\n@@g;s@ @\\ @g'`
# Only save those params that aren't empty
configure="$configure --$p=\"$v\""
done
@@ -815,6 +815,7 @@ check_params() {
fi
if [ "$os" = "OSX" ]; then
check_osx_sdk
# Test on G5
if [ "$enable_osx_g5" != "0" ]; then
@@ -903,7 +904,7 @@ check_params() {
doc_dir="$data_dir/docs"
fi
else
doc_dir="`echo $doc_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
doc_dir="`echo $doc_dir | sed 's@\([^\]\)\\\\ @\1\\\\\\\\ @g;s@\([^\]\) @\1\\\\\\\\ @g'`"
fi
if [ "$icon_theme_dir" = "1" ]; then
@@ -913,7 +914,7 @@ check_params() {
icon_theme_dir=""
fi
else
icon_theme_dir="`echo $icon_theme_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
icon_theme_dir="`echo $icon_theme_dir | sed 's@\([^\]\)\\\\ @\1\\\\\\\\ @g;s@\([^\]\) @\1\\\\\\\\ @g'`"
fi
if [ "$personal_dir" = "1" ]; then
@@ -925,7 +926,7 @@ check_params() {
personal_dir=".openttd"
fi
else
personal_dir="`echo $personal_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
personal_dir="`echo $personal_dir | sed 's@\([^\]\)\\\\ @\1\\\\\\\\ @g;s@\([^\]\) @\1\\\\\\\\ @g'`"
fi
if [ "$shared_dir" = "1" ]; then
@@ -936,7 +937,7 @@ check_params() {
shared_dir=""
fi
else
shared_dir="`echo $shared_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
shared_dir="`echo $shared_dir | sed 's@\([^\]\)\\\\ @\1\\\\\\\\ @g;s@\([^\]\) @\1\\\\\\\\ @g'`"
fi
if [ "$man_dir" = "1" ]; then
@@ -947,7 +948,7 @@ check_params() {
man_dir=""
fi
else
man_dir="`echo $man_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
man_dir="`echo $man_dir | sed 's@\([^\]\)\\\\ @\1\\\\\\\\ @g;s@\([^\]\) @\1\\\\\\\\ @g'`"
fi
if [ "$menu_dir" = "1" ]; then
@@ -958,7 +959,7 @@ check_params() {
menu_dir=""
fi
else
menu_dir="`echo $menu_dir | sed 's~\([^\]\)\\\\ ~\1\\\\\\\\ ~g;s~\([^\]\) ~\1\\\\\\\\ ~g'`"
menu_dir="`echo $menu_dir | sed 's@\([^\]\)\\\\ @\1\\\\\\\\ @g;s@\([^\]\) @\1\\\\\\\\ @g'`"
fi
# "set_universal_binary_flags" needs to be before "detect_iconv"
@@ -1206,7 +1207,7 @@ make_cflags_and_ldflags() {
if [ -n "$sdl_config" ]; then
CFLAGS="$CFLAGS -DWITH_SDL"
# SDL must not add _GNU_SOURCE as it breaks many platforms
CFLAGS="$CFLAGS `$sdl_config --cflags | sed 's~-D_GNU_SOURCE[^ ]*~~'`"
CFLAGS="$CFLAGS `$sdl_config --cflags | sed 's@-D_GNU_SOURCE[^ ]*@@'`"
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ] && [ "$os" != "WINCE" ]; then
if [ "$enable_static" != "0" ]; then
LIBS="$LIBS `$sdl_config --static-libs`"
@@ -1268,7 +1269,7 @@ make_cflags_and_ldflags() {
if [ "$os" = "OSX" ]; then
# fontconfig_config goes via pkg-config on all systems, which doesn't know --prefix
# Also, despite the reason we link to the .a file ourself (because we can't use -static), we do need to ask pkg-config about possible other deps
LIBS="$LIBS `$fontconfig_config --variable=prefix`/lib/libfontconfig.a `$fontconfig_config --libs --static | sed s~-lfontconfig~~`"
LIBS="$LIBS `$fontconfig_config --variable=prefix`/lib/libfontconfig.a `$fontconfig_config --libs --static | sed s@-lfontconfig@@`"
else
LIBS="$LIBS `$fontconfig_config --libs --static | tr '\n\r' ' '`"
fi
@@ -1400,8 +1401,10 @@ make_cflags_and_ldflags() {
# Lovely hackish, not?
# Btw, this almost always comes from outside the configure, so it is
# not something we can control.
# Also make makedepend aware of compiler's built-in defines.
if [ "$with_makedepend" != "0" ]; then
cflags_makedep="` echo "$CFLAGS" | sed 's~ /~ -~g;s~-I[ ]*[^ ]*~~g'`"
cflags_makedep="`echo | $cxx_host -E -x c++ -dM - | sed 's@.define @-D@g;s@ .*@ @g;s@(.*)@@g' | tr -d '\r\n'`"
cflags_makedep="$cflags_makedep `echo "$CFLAGS" | sed 's@ /@ -@g;s@-I[ ]*[^ ]*@@g'`"
else
makedepend=""
fi
@@ -1617,6 +1620,30 @@ set_universal_binary_flags() {
fi
}
check_osx_sdk() {
cat > tmp.osx.cpp << EOF
#include <AvailabilityMacros.h>
#if !defined(MAC_OS_X_VERSION_10_5)
# error "Need newer SDK"
#endif
int main() {
return 0;
}
EOF
execute="$cxx_host $CFLAGS -E tmp.osx.cpp -o - 2>&1"
eval $execute > /dev/null
ret=$?
log 2 "executing $execute"
log 2 " exit code $ret"
rm -f tmp.osx.cpp
if [ "$ret" != "0" ]; then
log 1 "I couldn't detect any XCode >= 2.5 on your system"
log 1 "please install/upgrade your XCode"
exit 1
fi
}
check_direct_music() {
echo "
#include <windows.h>
@@ -2405,7 +2432,7 @@ int main() {
}
EOF
execute="$cxx_host $CFLAGS -c tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
eval $execute >&/dev/null
eval $execute > /dev/null
ret=$?
log 2 "executing $execute"
log 2 " exit code $ret"
@@ -2426,7 +2453,7 @@ int main() {
}
EOF
execute="$cxx_host $CFLAGS tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
eval $execute >&/dev/null
eval $execute > /dev/null
ret=$?
log 2 "executing $execute"
log 2 " exit code $ret"
@@ -2537,104 +2564,104 @@ make_sed() {
# use multiple OBJS_DIR, because all in-between
# binaries are stored in there, and nowhere else.
SRC_REPLACE="
s~!!CC_HOST!!~$cc_host~g;
s~!!CXX_HOST!!~$cxx_host~g;
s~!!CC_BUILD!!~$cc_build~g;
s~!!CXX_BUILD!!~$cxx_build~g;
s~!!WINDRES!!~$windres~g;
s~!!STRIP!!~$strip $strip_arg~g;
s~!!LIPO!!~$lipo~g;
s~!!CC_CFLAGS!!~$CC_CFLAGS~g;
s~!!CFLAGS!!~$T_CFLAGS~g;
s~!!CFLAGS_BUILD!!~$CFLAGS_BUILD~g;
s~!!STRGEN_FLAGS!!~$strgen_flags~g;
s~!!LIBS!!~$LIBS~g;
s~!!LDFLAGS!!~$T_LDFLAGS~g;
s~!!BIN_DIR!!~$BIN_DIR~g;
s~!!ROOT_DIR!!~$ROOT_DIR~g;
s~!!MEDIA_DIR!!~$MEDIA_DIR~g;
s~!!SOURCE_LIST!!~$SOURCE_LIST~g;
s~!!SRC_OBJS_DIR!!~$SRC_OBJS_DIR~g;
s~!!LANG_OBJS_DIR!!~$LANG_OBJS_DIR~g;
s~!!SRC_DIR!!~$SRC_DIR~g;
s~!!SCRIPT_SRC_DIR!!~$SCRIPT_SRC_DIR~g;
s~!!OSXAPP!!~$OSXAPP~g;
s~!!LANG_DIR!!~$LANG_DIR~g;
s~!!TTD!!~$TTD~g;
s~!!BINARY_DIR!!~$prefix_dir/$binary_dir~g;
s~!!DATA_DIR!!~$prefix_dir/$data_dir~g;
s~!!DOC_DIR!!~$prefix_dir/$doc_dir~g;
s~!!MAN_DIR!!~$prefix_dir/$man_dir~g;
s~!!ICON_DIR!!~$prefix_dir/$icon_dir~g;
s~!!ICON_THEME_DIR!!~$prefix_dir/$icon_theme_dir~g;
s~!!PERSONAL_DIR!!~$personal_dir~g;
s~!!SHARED_DIR!!~$shared_dir~g;
s~!!INSTALL_DIR!!~$install_dir~g;
s~!!BINARY_NAME!!~$binary_name~g;
s~!!STRGEN!!~$STRGEN~g;
s~!!ENDIAN_CHECK!!~$ENDIAN_CHECK~g;
s~!!ENDIAN_FORCE!!~$endian~g;
s~!!STAGE!!~$STAGE~g;
s~!!MAKEDEPEND!!~$makedepend~g;
s~!!CFLAGS_MAKEDEP!!~$cflags_makedep~g;
s~!!SORT!!~$sort~g;
s~!!CONFIG_CACHE_COMPILER!!~config.cache.compiler~g;
s~!!CONFIG_CACHE_LINKER!!~config.cache.linker~g;
s~!!CONFIG_CACHE_ENDIAN!!~config.cache.endian~g;
s~!!CONFIG_CACHE_SOURCE!!~config.cache.source~g;
s~!!CONFIG_CACHE_VERSION!!~config.cache.version~g;
s~!!CONFIG_CACHE_SOURCE_LIST!!~config.cache.source.list~g;
s~!!CONFIG_CACHE_PWD!!~config.cache.pwd~g;
s~!!LANG_SUPPRESS!!~$lang_suppress~g;
s~!!OBJS_C!!~$OBJS_C~g;
s~!!OBJS_CPP!!~$OBJS_CPP~g;
s~!!OBJS_MM!!~$OBJS_MM~g;
s~!!OBJS_RC!!~$OBJS_RC~g;
s~!!SRCS!!~$SRCS~g;
s~!!OS!!~$os~g;
s~!!CONFIGURE_FILES!!~$CONFIGURE_FILES~g;
s~!!REVISION!!~$revision~g;
s~!!AWK!!~$awk~g;
s~!!GCC295!!~$gcc295~g;
s~!!DISTCC!!~$distcc~g;
s@!!CC_HOST!!@$cc_host@g;
s@!!CXX_HOST!!@$cxx_host@g;
s@!!CC_BUILD!!@$cc_build@g;
s@!!CXX_BUILD!!@$cxx_build@g;
s@!!WINDRES!!@$windres@g;
s@!!STRIP!!@$strip $strip_arg@g;
s@!!LIPO!!@$lipo@g;
s@!!CC_CFLAGS!!@$CC_CFLAGS@g;
s@!!CFLAGS!!@$T_CFLAGS@g;
s@!!CFLAGS_BUILD!!@$CFLAGS_BUILD@g;
s@!!STRGEN_FLAGS!!@$strgen_flags@g;
s@!!LIBS!!@$LIBS@g;
s@!!LDFLAGS!!@$T_LDFLAGS@g;
s@!!BIN_DIR!!@$BIN_DIR@g;
s@!!ROOT_DIR!!@$ROOT_DIR@g;
s@!!MEDIA_DIR!!@$MEDIA_DIR@g;
s@!!SOURCE_LIST!!@$SOURCE_LIST@g;
s@!!SRC_OBJS_DIR!!@$SRC_OBJS_DIR@g;
s@!!LANG_OBJS_DIR!!@$LANG_OBJS_DIR@g;
s@!!SRC_DIR!!@$SRC_DIR@g;
s@!!SCRIPT_SRC_DIR!!@$SCRIPT_SRC_DIR@g;
s@!!OSXAPP!!@$OSXAPP@g;
s@!!LANG_DIR!!@$LANG_DIR@g;
s@!!TTD!!@$TTD@g;
s@!!BINARY_DIR!!@$prefix_dir/$binary_dir@g;
s@!!DATA_DIR!!@$prefix_dir/$data_dir@g;
s@!!DOC_DIR!!@$prefix_dir/$doc_dir@g;
s@!!MAN_DIR!!@$prefix_dir/$man_dir@g;
s@!!ICON_DIR!!@$prefix_dir/$icon_dir@g;
s@!!ICON_THEME_DIR!!@$prefix_dir/$icon_theme_dir@g;
s@!!PERSONAL_DIR!!@$personal_dir@g;
s@!!SHARED_DIR!!@$shared_dir@g;
s@!!INSTALL_DIR!!@$install_dir@g;
s@!!BINARY_NAME!!@$binary_name@g;
s@!!STRGEN!!@$STRGEN@g;
s@!!ENDIAN_CHECK!!@$ENDIAN_CHECK@g;
s@!!ENDIAN_FORCE!!@$endian@g;
s@!!STAGE!!@$STAGE@g;
s@!!MAKEDEPEND!!@$makedepend@g;
s@!!CFLAGS_MAKEDEP!!@$cflags_makedep@g;
s@!!SORT!!@$sort@g;
s@!!CONFIG_CACHE_COMPILER!!@config.cache.compiler@g;
s@!!CONFIG_CACHE_LINKER!!@config.cache.linker@g;
s@!!CONFIG_CACHE_ENDIAN!!@config.cache.endian@g;
s@!!CONFIG_CACHE_SOURCE!!@config.cache.source@g;
s@!!CONFIG_CACHE_VERSION!!@config.cache.version@g;
s@!!CONFIG_CACHE_SOURCE_LIST!!@config.cache.source.list@g;
s@!!CONFIG_CACHE_PWD!!@config.cache.pwd@g;
s@!!LANG_SUPPRESS!!@$lang_suppress@g;
s@!!OBJS_C!!@$OBJS_C@g;
s@!!OBJS_CPP!!@$OBJS_CPP@g;
s@!!OBJS_MM!!@$OBJS_MM@g;
s@!!OBJS_RC!!@$OBJS_RC@g;
s@!!SRCS!!@$SRCS@g;
s@!!OS!!@$os@g;
s@!!CONFIGURE_FILES!!@$CONFIGURE_FILES@g;
s@!!REVISION!!@$revision@g;
s@!!AWK!!@$awk@g;
s@!!GCC295!!@$gcc295@g;
s@!!DISTCC!!@$distcc@g;
"
if [ "$icon_theme_dir" != "" ]; then
SRC_REPLACE="$SRC_REPLACE
s#!!ICON_THEME_DIR!!#$prefix_dir/$icon_theme_dir#g;
s@!!ICON_THEME_DIR!!@$prefix_dir/$icon_theme_dir@g;
"
else
SRC_REPLACE="$SRC_REPLACE
s#!!ICON_THEME_DIR!!##g;
s@!!ICON_THEME_DIR!!@@g;
"
fi
if [ "$man_dir" != "" ]; then
SRC_REPLACE="$SRC_REPLACE
s#!!MAN_DIR!!#$prefix_dir/$man_dir#g;
s@!!MAN_DIR!!@$prefix_dir/$man_dir@g;
"
else
SRC_REPLACE="$SRC_REPLACE
s#!!MAN_DIR!!##g;
s@!!MAN_DIR!!@@g;
"
fi
if [ "$menu_dir" != "" ]; then
SRC_REPLACE="$SRC_REPLACE
s#!!MENU_DIR!!#$prefix_dir/$menu_dir#g;
s@!!MENU_DIR!!@$prefix_dir/$menu_dir@g;
"
else
SRC_REPLACE="$SRC_REPLACE
s#!!MENU_DIR!!##g;
s@!!MENU_DIR!!@@g;
"
fi
}
generate_menu_item() {
MENU_REPLACE="
s~!!TTD!!~$TTD~g;
s~!!MENU_GROUP!!~$menu_group~g;
s~!!MENU_NAME!!~$menu_name~g
s@!!TTD!!@$TTD@g;
s@!!MENU_GROUP!!@$menu_group@g;
s@!!MENU_NAME!!@$menu_name@g
"
log 1 "Generating menu item..."
mkdir -p media

6
configure vendored
View File

@@ -37,7 +37,7 @@ if [ "$1" = "--reconfig" ] || [ "$1" = "--reconfigure" ]; then
exit 1
fi
# Make sure we don't lock config.cache
cat config.cache | sed 's~\\ ~\\\\ ~g' > cache.tmp
cat config.cache | sed 's@\\ @\\\\ @g' > cache.tmp
sh cache.tmp
rm -f cache.tmp
exit $?
@@ -59,7 +59,7 @@ STRGEN="strgen$EXE"
ENDIAN_CHECK="endian_check$EXE"
if [ -z "$sort" ]; then
PIPE_SORT="sed s~a~a~"
PIPE_SORT="sed s@a@a@"
else
PIPE_SORT="$sort"
fi
@@ -125,7 +125,7 @@ SRCS="` echo \"$SRCS\" | $awk ' { ORS = " " } { print $0; }'`"
# In makefiles, we always use -u for sort
if [ -z "$sort" ]; then
sort="sed s~a~a~"
sort="sed s@a@a@"
else
sort="$sort -u"
fi

View File

@@ -86,8 +86,8 @@ elif [ -d "$ROOT_DIR/.git" ]; then
fi
HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null`
REV="g`echo $HASH | cut -c1-8`"
BRANCH=`git branch|grep '[*]' | sed 's~\* ~~;s~^master$~~'`
REV_NR=`LC_ALL=C git log --pretty=format:%s "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s~.*(svn r\([0-9]*\)).*~\1~"`
BRANCH=`git branch|grep '[*]' | sed 's@\* @@;s@^master$@@'`
REV_NR=`LC_ALL=C git log --pretty=format:%s "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
elif [ -d "$ROOT_DIR/.hg" ]; then
# We are a hg checkout
if [ -n "`hg status \"$SRC_DIR\" | grep -v '^?'`" ]; then
@@ -95,8 +95,8 @@ elif [ -d "$ROOT_DIR/.hg" ]; then
fi
HASH=`LC_ALL=C hg parents 2>/dev/null | head -n 1 | cut -d: -f3`
REV="h`echo $HASH | cut -c1-8`"
BRANCH=`hg branch | sed 's~^default$~~'`
REV_NR=`LC_ALL=C hg log -r $HASH:0 -k "svn" -l 1 --template "{desc}\n" "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s~.*(svn r\([0-9]*\)).*~\1~"`
BRANCH=`hg branch | sed 's@^default$@@'`
REV_NR=`LC_ALL=C hg log -r $HASH:0 -k "svn" -l 1 --template "{desc}\n" "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
else
# We don't know
MODIFIED="1"

View File

@@ -11,13 +11,15 @@ 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 of /trunk.
Bugs for 0.7.0-RC2
Bugs for 0.7.1-RC1
------------------------------------------------------------------------
URL: http://bugs.openttd.org
- 2769 No offer for buying bankrupt AIs
- 2737 Self-crossing trains ignore "forbid 90 degree turn" setting
- 2616 Cloning creates vehicles with invalid subcargos
- 2585 [OSX] OS' mouse pointer showing
- 2484 [OSX] Cannot enter CJK characters
- 2427 Vehicle owner gets paid for whole cargo feeder share
- 1944 Road vehicles not picking empty drivethrough platform
- 1762 Strange Autoreplace behaviour

View File

@@ -1,22 +1,40 @@
openttd (0.7.0-RC2) unstable; urgency=low
openttd (0.7.1~RC2) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 21 Mar 2008 14:34:56 +0200
openttd (0.7.1~RC1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 11 Mar 2008 17:34:56 +0200
openttd (0.7.0) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Apr 2008 13:37:42 +0000
openttd (0.7.0~RC2) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 23 Mar 2008 00:42:00 +0200
openttd (0.7.0-RC1) unstable; urgency=low
openttd (0.7.0~RC1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 16 Mar 2008 00:07:00 +0200
openttd (0.7.0-beta2) unstable; urgency=low
openttd (0.7.0~beta2) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 10 Mar 2009 00:33:05 +0100
openttd (0.7.0-beta1) unstable; urgency=low
openttd (0.7.0~beta1) unstable; urgency=low
* New upstream release.

View File

@@ -1,11 +1,11 @@
!define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "0.7.0" ; Define application version
!define INSTALLERVERSION 57 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
!define APPVERSION "0.7.1-RC2" ; Define application version
!define APPVERSIONINTERNAL "0.7.1.0" ; Define application version in X.X.X.X
!define INSTALLERVERSION 60 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
!include ${VERSION_INCLUDE}
!define APPURLLINK "http://www.openttd.org"
!define APPNAMEANDVERSION "${APPNAME} ${APPVERSION}"
!define APPVERSIONINTERNAL "${APPVERSION}.0" ; Needs to be of the format X.X.X.X
!define MUI_ICON "..\..\..\media\openttd.ico"
!define MUI_UNICON "..\..\..\media\openttd.ico"
@@ -112,13 +112,6 @@ Section "!OpenTTD" Section1
File ${PATH_ROOT}bin\data\*.grf
File ${PATH_ROOT}bin\data\*.obg
File ${PATH_ROOT}bin\data\opntitle.dat
; Copy scenario files (don't choke if they don't exist)
SetOutPath "$INSTDIR\scenario\"
File /nonfatal ${PATH_ROOT}bin\scenario\*.scn
; Copy heightmap files (don't choke if they don't exist)
SetOutPath "$INSTDIR\scenario\heightmap\"
File /nonfatal ${PATH_ROOT}bin\scenario\heightmap\*.*
; Copy the scripts
SetOutPath "$INSTDIR\scripts\"

View File

@@ -16,10 +16,10 @@ End Sub
Sub UpdateFile(modified, revision, version, cur_date, filename)
FSO.CopyFile filename & ".in", filename
FindReplaceInFile filename, "@@MODIFIED@@", modified
FindReplaceInFile filename, "@@REVISION@@", revision
FindReplaceInFile filename, "@@VERSION@@", version
FindReplaceInFile filename, "@@DATE@@", cur_date
FindReplaceInFile filename, "!!MODIFIED!!", modified
FindReplaceInFile filename, "!!REVISION!!", revision
FindReplaceInFile filename, "!!VERSION!!", version
FindReplaceInFile filename, "!!DATE!!", cur_date
End Sub
Sub UpdateFiles(version)
@@ -32,7 +32,7 @@ Sub UpdateFiles(version)
modified = Mid(version, InStrRev(version, Chr(9)) + 1)
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
Else
version = "0.7.0-RC2"
version = "0.7.1-RC2"
revision = 0
modified = 1
End If

View File

@@ -1,6 +1,6 @@
OpenTTD README
Last updated: 2009-03-23
Release version: 0.7.0-RC2
Last updated: 2009-04-01
Release version: 0.7.0
------------------------------------------------------------------------

View File

@@ -83,7 +83,7 @@ SQVM::SQVM(SQSharedState *ss)
_suspended = SQFalse;
_suspended_target=-1;
_suspended_root = SQFalse;
_suspended_traps=-1;
_suspended_traps=0;
_foreignptr=NULL;
_nnativecalls=0;
_lasterror = _null_;
@@ -688,6 +688,7 @@ bool SQVM::Execute(SQObjectPtr &closure, SQInteger target, SQInteger nargs, SQIn
_suspended = SQFalse;
break;
case ET_RESUME_OPENTTD:
traps = _suspended_traps;
_suspended = SQFalse;
break;
}
@@ -698,7 +699,7 @@ exception_restore:
for(;;)
{
DecreaseOps(1);
if (ShouldSuspend()) { _suspended = SQTrue; return true; }
if (ShouldSuspend()) { _suspended = SQTrue; _suspended_traps = traps; return true; }
const SQInstruction &_i_ = *ci->_ip++;
//dumpstack(_stackbase);

View File

@@ -103,6 +103,11 @@ struct AIListWindow : public Window {
sprintf(buf, "%d", selected_info->GetVersion());
DoDrawStringTruncated(buf, x + 5, y, TC_BLACK, this->width - x - 8);
y += 13;
if (selected_info->GetURL() != NULL) {
SetDParamStr(0, selected_info->GetURL());
DrawString(4, y, STR_AI_URL, TC_BLACK);
y += 13;
}
SetDParamStr(0, selected_info->GetDescription());
DrawStringMultiLine(4, y, STR_JUST_RAW_STRING, this->width - 8, this->widget[AIL_WIDGET_INFO_BG].bottom - y);
}
@@ -575,6 +580,8 @@ struct AIDebugWindow : public Window {
static CompanyID ai_debug_company;
int redraw_timer;
int last_vscroll_pos;
bool autoscroll;
AIDebugWindow(const WindowDesc *desc, WindowNumber number) : Window(desc, number)
{
@@ -587,6 +594,8 @@ struct AIDebugWindow : public Window {
this->vscroll.cap = 14;
this->vscroll.pos = 0;
this->resize.step_height = 12;
this->last_vscroll_pos = 0;
this->autoscroll = true;
if (ai_debug_company != INVALID_COMPANY) this->LowerWidget(ai_debug_company + AID_WIDGET_COMPANY_BUTTON_START);
@@ -664,13 +673,35 @@ struct AIDebugWindow : public Window {
AILog::LogData *log = (AILog::LogData *)AIObject::GetLogPointer();
_current_company = old_company;
SetVScrollCount(this, (log == NULL) ? 0 : log->used);
this->InvalidateWidget(AID_WIDGET_SCROLLBAR);
int scroll_count = (log == NULL) ? 0 : log->used;
if (this->vscroll.count != scroll_count) {
SetVScrollCount(this, scroll_count);
/* We need a repaint */
this->InvalidateWidget(AID_WIDGET_SCROLLBAR);
}
if (log == NULL) return;
/* Detect when the user scrolls the window. Enable autoscroll when the
* bottom-most line becomes visible. */
if (this->last_vscroll_pos != this->vscroll.pos) {
this->autoscroll = this->vscroll.pos >= log->used - this->vscroll.cap;
}
if (this->autoscroll) {
int scroll_pos = max(0, log->used - this->vscroll.cap);
if (scroll_pos != this->vscroll.pos) {
this->vscroll.pos = scroll_pos;
/* We need a repaint */
this->InvalidateWidget(AID_WIDGET_SCROLLBAR);
}
}
last_vscroll_pos = this->vscroll.pos;
int y = 6;
for (int i = this->vscroll.pos; i < (this->vscroll.cap + this->vscroll.pos); i++) {
uint pos = (log->count + log->pos - i) % log->count;
for (int i = this->vscroll.pos; i < (this->vscroll.cap + this->vscroll.pos) && i < log->used; i++) {
uint pos = (i + log->pos + 1 - log->used + log->count) % log->count;
if (log->lines[pos] == NULL) break;
TextColour colour;
@@ -693,6 +724,8 @@ struct AIDebugWindow : public Window {
this->RaiseWidget(ai_debug_company + AID_WIDGET_COMPANY_BUTTON_START);
ai_debug_company = show_ai;
this->LowerWidget(ai_debug_company + AID_WIDGET_COMPANY_BUTTON_START);
this->autoscroll = true;
this->last_vscroll_pos = this->vscroll.pos;
this->SetDirty();
}
@@ -726,6 +759,7 @@ struct AIDebugWindow : public Window {
virtual void OnResize(Point new_size, Point delta)
{
this->vscroll.cap += delta.y / (int)this->resize.step_height;
SetVScrollCount(this, this->vscroll.count); // vscroll.pos should be in a valid range
}
};

View File

@@ -36,6 +36,7 @@ AIFileInfo::~AIFileInfo()
free((void *)this->description);
free((void *)this->date);
free((void *)this->instance_name);
free((void *)this->url);
free(this->main_script);
free(this->SQ_instance);
}
@@ -98,6 +99,11 @@ bool AIFileInfo::CheckMethod(const char *name) const
if (!info->engine->CallIntegerMethod(*info->SQ_instance, "GetVersion", &info->version)) return SQ_ERROR;
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "CreateInstance", &info->instance_name)) return SQ_ERROR;
/* The GetURL function is optional. */
if (info->engine->MethodExists(*info->SQ_instance, "GetURL")) {
if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetURL", &info->url)) return SQ_ERROR;
}
return 0;
}
@@ -125,6 +131,12 @@ bool AIFileInfo::CheckMethod(const char *name) const
} else {
info->min_loadable_version = info->GetVersion();
}
/* When there is an UseAsRandomAI function, call it. */
if (info->engine->MethodExists(*info->SQ_instance, "UseAsRandomAI")) {
if (!info->engine->CallBoolMethod(*info->SQ_instance, "UseAsRandomAI", &info->use_as_random)) return SQ_ERROR;
} else {
info->use_as_random = true;
}
/* Remove the link to the real instance, else it might get deleted by RegisterAI() */
sq_setinstanceup(vm, 2, NULL);

View File

@@ -41,7 +41,7 @@ public:
friend class AIInfo;
friend class AILibrary;
AIFileInfo() : SQ_instance(NULL), main_script(NULL), author(NULL), name(NULL), short_name(NULL), description(NULL), date(NULL), instance_name(NULL) {};
AIFileInfo() : SQ_instance(NULL), main_script(NULL), author(NULL), name(NULL), short_name(NULL), description(NULL), date(NULL), instance_name(NULL), url(NULL) {};
~AIFileInfo();
/**
@@ -84,6 +84,11 @@ public:
*/
const char *GetInstanceName() const { return this->instance_name; }
/**
* Get the website for this script.
*/
const char *GetURL() const { return this->url; }
/**
* Get the filename of the main.nut script.
*/
@@ -111,6 +116,7 @@ private:
const char *date;
const char *instance_name;
int version;
const char *url;
};
class AIInfo : public AIFileInfo {
@@ -155,9 +161,15 @@ public:
*/
int GetSettingDefaultValue(const char *name) const;
/**
* Use this AI as a random AI.
*/
bool UseAsRandomAI() const { return this->use_as_random; }
private:
AIConfigItemList config_list;
int min_loadable_version;
bool use_as_random;
};
class AILibrary : public AIFileInfo {

View File

@@ -19,6 +19,7 @@
#define DEFINE_SCRIPT_FILES
#include "ai_info.hpp"
#include "ai_config.hpp"
#include "ai_storage.hpp"
#include "ai_instance.hpp"
#include "ai_gui.hpp"
@@ -255,8 +256,15 @@ void AIInstance::Died()
this->engine = NULL;
ShowAIDebugWindow(_current_company);
if (strcmp(GetCompany(_current_company)->ai_info->GetMainScript(), "%_dummy") != 0) {
const AIInfo *info = AIConfig::GetConfig(_current_company)->GetInfo();
if (info != NULL) {
ShowErrorMessage(INVALID_STRING_ID, STR_AI_PLEASE_REPORT_CRASH, 0, 0);
if (info->GetURL() != NULL) {
AILog::Info("Please report the error to the following URL:");
AILog::Info(info->GetURL());
}
}
}

View File

@@ -153,7 +153,7 @@ AIScanner::AIScanner() :
/* Create the dummy AI */
this->engine->ResetCrashed();
strcpy(this->main_script, "%_dummy");
strecpy(this->main_script, "%_dummy", lastof(this->main_script));
extern void AI_CreateAIInfoDummy(HSQUIRRELVM vm);
AI_CreateAIInfoDummy(this->engine->GetVM());
}
@@ -345,20 +345,31 @@ void AIScanner::RegisterAI(AIInfo *info)
AIInfo *AIScanner::SelectRandomAI()
{
if (this->info_single_list.size() == 0) {
uint num_random_ais = 0;
for (AIInfoList::iterator it = this->info_single_list.begin(); it != this->info_single_list.end(); it++) {
if (it->second->UseAsRandomAI()) num_random_ais++;
}
if (num_random_ais == 0) {
DEBUG(ai, 0, "No suitable AI found, loading 'dummy' AI.");
return this->info_dummy;
}
/* Find a random AI */
uint pos;
if (_networking) pos = InteractiveRandomRange((uint16)this->info_single_list.size());
else pos = RandomRange((uint16)this->info_single_list.size());
if (_networking) {
pos = InteractiveRandomRange(num_random_ais);
} else {
pos = RandomRange(num_random_ais);
}
/* Find the Nth item from the array */
AIInfoList::iterator it = this->info_single_list.begin();
for (; pos > 0; pos--) it++;
AIInfoList::iterator first_it = it;
while (!it->second->UseAsRandomAI()) it++;
for (; pos > 0; pos--) {
it++;
while (!it->second->UseAsRandomAI()) it++;
}
return (*it).second;
}

View File

@@ -8,12 +8,21 @@
#include "../../company_func.h"
#include "../../command_type.h"
#include "../../town.h"
#include "../../economy_func.h"
/* static */ bool AIAirport::IsValidAirportType(AirportType type)
{
return type >= AT_SMALL && type <= AT_HELISTATION && HasBit(::GetValidAirports(), type);
}
/* static */ Money AIAirport::GetPrice(AirportType type)
{
if (!IsValidAirportType(type)) return -1;
const AirportFTAClass *afc = ::GetAirport(type);
return _price.build_airport * afc->size_x * afc->size_y;
}
/* static */ bool AIAirport::IsHangarTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;

View File

@@ -53,6 +53,13 @@ public:
*/
static bool IsValidAirportType(AirportType type);
/**
* Get the cost to build this AirportType.
* @param type The AirportType to check.
* @return The cost of building this AirportType.
*/
static Money GetPrice(AirportType type);
/**
* Checks whether the given tile is actually a tile with a hangar.
* @param tile The tile to check.

View File

@@ -39,6 +39,7 @@ void SQAIAirport_Register(Squirrel *engine) {
SQAIAirport.DefSQConst(engine, AIAirport::PT_INVALID, "PT_INVALID");
SQAIAirport.DefSQStaticMethod(engine, &AIAirport::IsValidAirportType, "IsValidAirportType", 2, ".i");
SQAIAirport.DefSQStaticMethod(engine, &AIAirport::GetPrice, "GetPrice", 2, ".i");
SQAIAirport.DefSQStaticMethod(engine, &AIAirport::IsHangarTile, "IsHangarTile", 2, ".i");
SQAIAirport.DefSQStaticMethod(engine, &AIAirport::IsAirportTile, "IsAirportTile", 2, ".i");
SQAIAirport.DefSQStaticMethod(engine, &AIAirport::GetAirportWidth, "GetAirportWidth", 2, ".i");

View File

@@ -23,6 +23,12 @@
return ::IsBridgeTile(tile);
}
/* static */ BridgeID AIBridge::GetBridgeID(TileIndex tile)
{
if (!IsBridgeTile(tile)) return (BridgeID)-1;
return (BridgeID)::GetBridgeType(tile);
}
static void _DoCommandReturnBuildBridge2(class AIInstance *instance)
{
if (!AIBridge::_BuildBridgeRoad2()) {

View File

@@ -51,6 +51,14 @@ public:
*/
static bool IsBridgeTile(TileIndex tile);
/**
* Get the BridgeID of a bridge at a given tile.
* @param tile The tile to get the BridgeID from.
* @pre IsBridgeTile(tile).
* @return The BridgeID from the bridge at tile 'tile'.
*/
static BridgeID GetBridgeID(TileIndex tile);
/**
* Get the name of a bridge.
* @param bridge_id The bridge to get the name of.

View File

@@ -36,6 +36,7 @@ void SQAIBridge_Register(Squirrel *engine) {
SQAIBridge.DefSQStaticMethod(engine, &AIBridge::IsValidBridge, "IsValidBridge", 2, ".i");
SQAIBridge.DefSQStaticMethod(engine, &AIBridge::IsBridgeTile, "IsBridgeTile", 2, ".i");
SQAIBridge.DefSQStaticMethod(engine, &AIBridge::GetBridgeID, "GetBridgeID", 2, ".i");
SQAIBridge.DefSQStaticMethod(engine, &AIBridge::GetName, "GetName", 2, ".i");
SQAIBridge.DefSQStaticMethod(engine, &AIBridge::GetMaxSpeed, "GetMaxSpeed", 2, ".i");
SQAIBridge.DefSQStaticMethod(engine, &AIBridge::GetPrice, "GetPrice", 3, ".ii");

View File

@@ -18,7 +18,7 @@ public:
* The classes of cargo (from newgrf_cargo.h).
*/
enum CargoClass {
CC_PASSENGERS = 1 << 0, //!< Passengers
CC_PASSENGERS = 1 << 0, //!< Passengers. Cargos of this class appear at bus stops. Cargos not of this class appear at truck stops.
CC_MAIL = 1 << 1, //!< Mail
CC_EXPRESS = 1 << 2, //!< Express cargo (Goods, Food, Candy, but also possible for passengers)
CC_ARMOURED = 1 << 3, //!< Armoured cargo (Valuables, Gold, Diamonds)
@@ -52,6 +52,7 @@ public:
/**
* Gets the string representation of the cargo label.
* @param cargo_type The cargo to get the string representation of.
* @pre AICargo::IsValidCargo(cargo_type).
* @return The cargo label.
* @note Never use this to check if it is a certain cargo. NewGRF can
* redefine all of the names.
@@ -60,7 +61,10 @@ public:
/**
* Checks whether the give cargo is a freight or not.
* This defines whether the "freight train weight multiplier" will apply to
* trains transporting this cargo.
* @param cargo_type The cargo to check on.
* @pre AICargo::IsValidCargo(cargo_type).
* @return True if and only if the cargo is freight.
*/
static bool IsFreight(CargoID cargo_type);
@@ -68,6 +72,7 @@ public:
/**
* Check if this cargo is in the requested cargo class.
* @param cargo_type The cargo to check on.
* @pre AICargo::IsValidCargo(cargo_type).
* @param cargo_class The class to check for.
* @return True if and only if the cargo is in the cargo class.
*/
@@ -76,6 +81,7 @@ public:
/**
* Get the effect this cargo has on a town.
* @param cargo_type The cargo to check on.
* @pre AICargo::IsValidCargo(cargo_type).
* @return The effect this cargo has on a town, or TE_NONE if it has no effect.
*/
static TownEffect GetTownEffect(CargoID cargo_type);
@@ -84,6 +90,7 @@ public:
* Get the income for transporting a piece of cargo over the
* given distance within the specified time.
* @param cargo_type The cargo to transport.
* @pre AICargo::IsValidCargo(cargo_type).
* @param distance The distance the cargo travels from begin to end.
* @param days_in_transit Amount of (game) days the cargo is in transit. The max value of this variable is 637. Any value higher returns the same as 637 would.
* @return The amount of money that would be earned by this trip.

View File

@@ -153,7 +153,8 @@ public:
* Return the location of a company's HQ.
* @param company The company the get the HQ of.
* @pre ResolveCompanyID(company) != COMPANY_INVALID.
* @return The tile of the company's HQ, this tile is the most nothern tile of that HQ, or TILE_INVALID if there is no HQ yet.
* @return The tile of the company's HQ, this tile is the most nothern tile
* of that HQ, or AIMap::TILE_INVALID if there is no HQ yet.
*/
static TileIndex GetCompanyHQ(CompanyID company);

View File

@@ -5,6 +5,7 @@
#include "../../stdafx.h"
#include "../../string_func.h"
#include "../../company_base.h"
#include "../../rev.h"
#include "table/strings.h"
#include "../ai.hpp"
@@ -66,6 +67,11 @@ AIController::~AIController()
return AIConfig::GetConfig(_current_company)->GetSetting(name);
}
/* static */ uint AIController::GetVersion()
{
return _openttd_newgrf_version;
}
bool AIController::LoadedLibrary(const char *library_name, int *next_number, char *fake_class_name, int fake_class_name_len)
{
LoadedLibraryList::iterator iter = this->loaded_library.find(library_name);

View File

@@ -50,6 +50,18 @@ public:
*/
static int GetSetting(const char *name);
/**
* Get the OpenTTD version of this executable. The version is formatted
* with the bits having the following meaning:
* 28-31 major version
* 24-27 minor version
* 20-23 build
* 19 1 if it is a release, 0 if it is not.
* 0-18 revision number; 0 when the revision is unknown.
* @return The version in newgrf format.
*/
static uint GetVersion();
/**
* Change the minimum amount of time the AI should be put in suspend mode
* when you execute a command. Normally in SP this is 1, and in MP it is

View File

@@ -5,10 +5,11 @@
void SQAIController_Register(Squirrel *engine) {
DefSQClass <AIController> SQAIController("AIController");
SQAIController.PreRegister(engine);
SQAIController.DefSQStaticMethod(engine, &AIController::GetTick, "GetTick", 1, "?");
SQAIController.DefSQStaticMethod(engine, &AIController::SetCommandDelay, "SetCommandDelay", 2, "?i");
SQAIController.DefSQStaticMethod(engine, &AIController::Sleep, "Sleep", 2, "?i");
SQAIController.DefSQStaticMethod(engine, &AIController::GetSetting, "GetSetting", 2, "?s");
SQAIController.DefSQStaticMethod(engine, &AIController::Print, "Print", 3, "?bs");
SQAIController.DefSQStaticMethod(engine, &AIController::GetTick, "GetTick", 1, ".");
SQAIController.DefSQStaticMethod(engine, &AIController::SetCommandDelay, "SetCommandDelay", 2, ".i");
SQAIController.DefSQStaticMethod(engine, &AIController::Sleep, "Sleep", 2, ".i");
SQAIController.DefSQStaticMethod(engine, &AIController::GetSetting, "GetSetting", 2, ".s");
SQAIController.DefSQStaticMethod(engine, &AIController::GetVersion, "GetVersion", 1, ".");
SQAIController.DefSQStaticMethod(engine, &AIController::Print, "Print", 3, ".bs");
SQAIController.PostRegister(engine);
}

View File

@@ -86,7 +86,9 @@ public:
static TileIndex GetLocation(IndustryID industry_id);
/**
* Get the number of stations around an industry.
* Get the number of stations around an industry. All stations that can
* service the industry are counted, your own stations but also your
* opponents stations.
* @param industry_id The index of the industry.
* @pre IsValidIndustry(industry_id).
* @return The number of stations around an industry.

View File

@@ -111,3 +111,24 @@
uint32 seed = ::InteractiveRandom();
return AIObject::DoCommand(0, industry_type, seed, CMD_BUILD_INDUSTRY);
}
/* static */ bool AIIndustryType::IsBuiltOnWater(IndustryType industry_type)
{
if (!IsValidIndustryType(industry_type)) return false;
return (::GetIndustrySpec(industry_type)->behaviour & INDUSTRYBEH_BUILT_ONWATER) != 0;
}
/* static */ bool AIIndustryType::HasHeliport(IndustryType industry_type)
{
if (!IsValidIndustryType(industry_type)) return false;
return (::GetIndustrySpec(industry_type)->behaviour & INDUSTRYBEH_AI_AIRSHIP_ROUTES) != 0;
}
/* static */ bool AIIndustryType::HasDock(IndustryType industry_type)
{
if (!IsValidIndustryType(industry_type)) return false;
return (::GetIndustrySpec(industry_type)->behaviour & INDUSTRYBEH_AI_AIRSHIP_ROUTES) != 0;
}

View File

@@ -113,6 +113,30 @@ public:
* @note If true is returned the money is paid, whether a new industry was build or not.
*/
static bool ProspectIndustry(IndustryType industry_type);
/**
* Is this type of industry built on water.
* @param industry_type The type of the industry.
* @pre IsValidIndustryType(industry_type).
* @return True when this type is built on water.
*/
static bool IsBuiltOnWater(IndustryType industry_type);
/**
* Does this type of industry have a heliport?
* @param industry_type The type of the industry.
* @pre IsValidIndustryType(industry_type).
* @return True when this type has a heliport.
*/
static bool HasHeliport(IndustryType industry_type);
/**
* Does this type of industry have a dock?
* @param industry_type The type of the industry.
* @pre IsValidIndustryType(industry_type).
* @return True when this type has a dock.
*/
static bool HasDock(IndustryType industry_type);
};
#endif /* AI_INDUSTRYTYPE_HPP */

View File

@@ -28,6 +28,9 @@ void SQAIIndustryType_Register(Squirrel *engine) {
SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::CanProspectIndustry, "CanProspectIndustry", 2, ".i");
SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::BuildIndustry, "BuildIndustry", 3, ".ii");
SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::ProspectIndustry, "ProspectIndustry", 2, ".i");
SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::IsBuiltOnWater, "IsBuiltOnWater", 2, ".i");
SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::HasHeliport, "HasHeliport", 2, ".i");
SQAIIndustryType.DefSQStaticMethod(engine, &AIIndustryType::HasDock, "HasDock", 2, ".i");
SQAIIndustryType.PostRegister(engine);
}

View File

@@ -32,7 +32,7 @@
log->lines = CallocT<char *>(80);
log->type = CallocT<AILog::AILogType>(80);
log->count = 80;
log->pos = log->count;
log->pos = log->count - 1;
log->used = 0;
}
LogData *log = (LogData *)AIObject::GetLogPointer();

View File

@@ -17,6 +17,9 @@ public:
TILE_INVALID = INVALID_TILE, //!< Invalid TileIndex.
};
#endif /* DEFINE_SCRIPT_FILES */
#ifdef DOXYGEN_SKIP
const static TileIndex TILE_INVALID; //!< Invalid TileIndex.
#endif /* DOXYGEN_SKIP */
static const char *GetClassName() { return "AIMap"; }

View File

@@ -23,7 +23,10 @@ static OrderType GetOrderTypeByTile(TileIndex t)
switch (::GetTileType(t)) {
default: break;
case MP_STATION: return OT_GOTO_STATION; break;
case MP_STATION:
if (IsHangar(t)) return OT_GOTO_DEPOT;
return OT_GOTO_STATION;
break;
case MP_WATER: if (::IsShipDepot(t)) return OT_GOTO_DEPOT; break;
case MP_ROAD: if (::GetRoadTileType(t) == ROAD_TILE_DEPOT) return OT_GOTO_DEPOT; break;
case MP_RAILWAY:
@@ -43,6 +46,47 @@ static OrderType GetOrderTypeByTile(TileIndex t)
return AIVehicle::IsValidVehicle(vehicle_id) && order_position >= 0 && (order_position < ::GetVehicle(vehicle_id)->GetNumOrders() || order_position == ORDER_CURRENT);
}
/**
* Get the current order the vehicle is executing. If the current order is in
* the order list, return the order from the orderlist. If the current order
* was a manual order, return the current order.
*/
static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition order_position)
{
const Vehicle *v = ::GetVehicle(vehicle_id);
if (order_position == AIOrder::ORDER_CURRENT) {
const Order *order = &v->current_order;
if (order->GetType() == OT_GOTO_DEPOT && !(order->GetDepotOrderType() & ODTFB_PART_OF_ORDERS)) return order;
order_position = AIOrder::ResolveOrderPosition(vehicle_id, order_position);
if (order_position == AIOrder::ORDER_INVALID) return NULL;
}
return ::GetVehicleOrder(v, order_position);
}
/* static */ bool AIOrder::IsGotoStationOrder(VehicleID vehicle_id, OrderPosition order_position)
{
if (!IsValidVehicleOrder(vehicle_id, order_position)) return false;
const Order *order = ::ResolveOrder(vehicle_id, order_position);
return order != NULL && order->GetType() == OT_GOTO_STATION;
}
/* static */ bool AIOrder::IsGotoDepotOrder(VehicleID vehicle_id, OrderPosition order_position)
{
if (!IsValidVehicleOrder(vehicle_id, order_position)) return false;
const Order *order = ::ResolveOrder(vehicle_id, order_position);
return order != NULL && order->GetType() == OT_GOTO_DEPOT;
}
/* static */ bool AIOrder::IsGotoWaypointOrder(VehicleID vehicle_id, OrderPosition order_position)
{
if (!IsValidVehicleOrder(vehicle_id, order_position)) return false;
const Order *order = ::ResolveOrder(vehicle_id, order_position);
return order != NULL && order->GetType() == OT_GOTO_WAYPOINT;
}
/* static */ bool AIOrder::IsConditionalOrder(VehicleID vehicle_id, OrderPosition order_position)
{
if (order_position == ORDER_CURRENT) return false;
@@ -52,6 +96,16 @@ static OrderType GetOrderTypeByTile(TileIndex t)
return order->GetType() == OT_CONDITIONAL;
}
/* static */ bool AIOrder::IsCurrentOrderPartOfOrderList(VehicleID vehicle_id)
{
if (AIVehicle::IsValidVehicle(vehicle_id)) return false;
if (GetOrderCount(vehicle_id) == 0) return false;
const Order *order = &::GetVehicle(vehicle_id)->current_order;
if (order->GetType() != OT_GOTO_DEPOT) return true;
return (order->GetDepotOrderType() & ODTFB_PART_OF_ORDERS) != 0;
}
/* static */ AIOrder::OrderPosition AIOrder::ResolveOrderPosition(VehicleID vehicle_id, OrderPosition order_position)
{
if (!AIVehicle::IsValidVehicle(vehicle_id)) return ORDER_INVALID;
@@ -74,7 +128,10 @@ static OrderType GetOrderTypeByTile(TileIndex t)
(((order_flags & AIOF_NO_UNLOAD) == 0) || ((order_flags & AIOF_NO_LOAD) == 0)) &&
(((order_flags & AIOF_FULL_LOAD_ANY) == 0) || ((order_flags & AIOF_NO_LOAD) == 0));
case OT_GOTO_DEPOT: return (order_flags & ~(AIOF_NON_STOP_FLAGS | AIOF_SERVICE_IF_NEEDED)) == 0;
case OT_GOTO_DEPOT:
return ((order_flags & ~(AIOF_NON_STOP_FLAGS | AIOF_DEPOT_FLAGS)) == 0) &&
(((order_flags & AIOF_SERVICE_IF_NEEDED) == 0) || ((order_flags & AIOF_STOP_IN_DEPOT) == 0));
case OT_GOTO_WAYPOINT: return (order_flags & ~(AIOF_NON_STOP_FLAGS)) == 0;
default: return false;
}
@@ -108,21 +165,41 @@ static OrderType GetOrderTypeByTile(TileIndex t)
{
if (!IsValidVehicleOrder(vehicle_id, order_position)) return INVALID_TILE;
const Order *order;
const Order *order = ::ResolveOrder(vehicle_id, order_position);
if (order == NULL || order->GetType() == OT_CONDITIONAL) return INVALID_TILE;
const Vehicle *v = ::GetVehicle(vehicle_id);
if (order_position == ORDER_CURRENT) {
order = &v->current_order;
} else {
order = ::GetVehicleOrder(GetVehicle(vehicle_id), order_position);
if (order->GetType() == OT_CONDITIONAL) return INVALID_TILE;
}
switch (order->GetType()) {
case OT_GOTO_DEPOT:
case OT_GOTO_DEPOT: {
if (v->type != VEH_AIRCRAFT) return ::GetDepot(order->GetDestination())->xy;
/* FALL THROUGH: aircraft's hangars are referenced by StationID, not DepotID */
/* Aircraft's hangars are referenced by StationID, not DepotID */
const Station *st = ::GetStation(order->GetDestination());
const AirportFTAClass *airport = st->Airport();
if (airport == NULL || airport->nof_depots == 0) return INVALID_TILE;
return st->airport_tile + ::ToTileIndexDiff(st->Airport()->airport_depots[0]);
}
case OT_GOTO_STATION: return ::GetStation(order->GetDestination())->xy;
case OT_GOTO_STATION: {
const Station *st = ::GetStation(order->GetDestination());
if (st->train_tile != INVALID_TILE) {
for (uint i = 0; i < st->trainst_w; i++) {
TileIndex t = st->train_tile + TileDiffXY(i, 0);
if (st->TileBelongsToRailStation(t)) return t;
}
} else if (st->dock_tile != INVALID_TILE) {
return st->dock_tile;
} else if (st->bus_stops != NULL) {
return st->bus_stops->xy;
} else if (st->truck_stops != NULL) {
return st->truck_stops->xy;
} else if (st->airport_tile != INVALID_TILE) {
const AirportFTAClass *fta = st->Airport();
BEGIN_TILE_LOOP(tile, fta->size_x, fta->size_y, st->airport_tile) {
if (!::IsHangar(tile)) return tile;
} END_TILE_LOOP(tile, fta->size_x, fta->size_y, st->airport_tile)
}
return INVALID_TILE;
}
case OT_GOTO_WAYPOINT: return ::GetWaypoint(order->GetDestination())->xy;
default: return INVALID_TILE;
}
@@ -132,19 +209,15 @@ static OrderType GetOrderTypeByTile(TileIndex t)
{
if (!IsValidVehicleOrder(vehicle_id, order_position)) return AIOF_INVALID;
const Order *order;
if (order_position == ORDER_CURRENT) {
order = &::GetVehicle(vehicle_id)->current_order;
} else {
order = ::GetVehicleOrder(GetVehicle(vehicle_id), order_position);
if (order->GetType() == OT_CONDITIONAL) return AIOF_INVALID;
}
const Order *order = ::ResolveOrder(vehicle_id, order_position);
if (order == NULL || order->GetType() == OT_CONDITIONAL) return AIOF_INVALID;
AIOrderFlags order_flags = AIOF_NONE;
order_flags |= (AIOrderFlags)order->GetNonStopType();
switch (order->GetType()) {
case OT_GOTO_DEPOT:
if (order->GetDepotOrderType() & ODTFB_SERVICE) order_flags |= AIOF_SERVICE_IF_NEEDED;
if (order->GetDepotActionType() & ODATFB_HALT) order_flags |= AIOF_STOP_IN_DEPOT;
break;
case OT_GOTO_STATION:
@@ -260,9 +333,21 @@ static OrderType GetOrderTypeByTile(TileIndex t)
Order order;
switch (::GetOrderTypeByTile(destination)) {
case OT_GOTO_DEPOT:
order.MakeGoToDepot(::GetDepotByTile(destination)->index, (OrderDepotTypeFlags)(ODTFB_PART_OF_ORDERS | ((order_flags & AIOF_SERVICE_IF_NEEDED) ? ODTFB_SERVICE : 0)));
case OT_GOTO_DEPOT: {
OrderDepotTypeFlags odtf = (OrderDepotTypeFlags)(ODTFB_PART_OF_ORDERS | ((order_flags & AIOF_SERVICE_IF_NEEDED) ? ODTFB_SERVICE : 0));
OrderDepotActionFlags odaf = (OrderDepotActionFlags)(ODATF_SERVICE_ONLY | ((order_flags & AIOF_STOP_IN_DEPOT) ? ODATFB_HALT : 0));
OrderNonStopFlags onsf = (OrderNonStopFlags)((order_flags & AIOF_NON_STOP_INTERMEDIATE) ? ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS : ONSF_STOP_EVERYWHERE);
/* Check explicitly if the order is to a station (for aircraft) or
* to a depot (other vehicle types). */
if (::GetVehicle(vehicle_id)->type == VEH_AIRCRAFT) {
if (!::IsTileType(destination, MP_STATION)) return false;
order.MakeGoToDepot(::GetStationIndex(destination), odtf, onsf, odaf);
} else {
if (::IsTileType(destination, MP_STATION)) return false;
order.MakeGoToDepot(::GetDepotByTile(destination)->index, odtf, onsf, odaf);
}
break;
}
case OT_GOTO_STATION:
order.MakeGoToStation(::GetStationIndex(destination));
@@ -356,8 +441,11 @@ static void _DoCommandReturnSetOrderFlags(class AIInstance *instance)
switch (order->GetType()) {
case OT_GOTO_DEPOT:
if ((current & AIOF_SERVICE_IF_NEEDED) != (order_flags & AIOF_SERVICE_IF_NEEDED)) {
return AIObject::DoCommand(0, vehicle_id | (order_position << 16), MOF_DEPOT_ACTION, CMD_MODIFY_ORDER, NULL, &_DoCommandReturnSetOrderFlags);
if ((current & AIOF_DEPOT_FLAGS) != (order_flags & AIOF_DEPOT_FLAGS)) {
uint data = DA_ALWAYS_GO;
if (order_flags & AIOF_SERVICE_IF_NEEDED) data = DA_SERVICE;
if (order_flags & AIOF_STOP_IN_DEPOT) data = DA_STOP;
return AIObject::DoCommand(0, vehicle_id | (order_position << 16), (data << 4) | MOF_DEPOT_ACTION, CMD_MODIFY_ORDER, NULL, &_DoCommandReturnSetOrderFlags);
}
break;

View File

@@ -57,6 +57,8 @@ public:
/** Service the vehicle when needed, otherwise skip this order; only for depots. */
AIOF_SERVICE_IF_NEEDED = 1 << 2,
/** Stop in the depot instead of only go there for servicing; only for depots. */
AIOF_STOP_IN_DEPOT = 1 << 3,
/** All flags related to non-stop settings. */
AIOF_NON_STOP_FLAGS = AIOF_NON_STOP_INTERMEDIATE | AIOF_NON_STOP_DESTINATION,
@@ -64,6 +66,8 @@ public:
AIOF_UNLOAD_FLAGS = AIOF_TRANSFER | AIOF_UNLOAD | AIOF_NO_UNLOAD,
/** All flags related to loading. */
AIOF_LOAD_FLAGS = AIOF_FULL_LOAD | AIOF_FULL_LOAD_ANY | AIOF_NO_LOAD,
/** All flags related to depots. */
AIOF_DEPOT_FLAGS = AIOF_SERVICE_IF_NEEDED | AIOF_STOP_IN_DEPOT,
/** For marking invalid order flags */
AIOF_INVALID = 0xFFFF,
@@ -114,6 +118,33 @@ public:
*/
static bool IsValidVehicleOrder(VehicleID vehicle_id, OrderPosition order_position);
/**
* Checks whether the given order is a goto-station order.
* @param vehicle_id The vehicle to check.
* @param order_position The order index to check.
* @pre IsValidVehicleOrder(vehicle_id, order_position).
* @return True if and only if the order is a goto-station order.
*/
static bool IsGotoStationOrder(VehicleID vehicle_id, OrderPosition order_position);
/**
* Checks whether the given order is a goto-depot order.
* @param vehicle_id The vehicle to check.
* @param order_position The order index to check.
* @pre IsValidVehicleOrder(vehicle_id, order_position).
* @return True if and only if the order is a goto-depot order.
*/
static bool IsGotoDepotOrder(VehicleID vehicle_id, OrderPosition order_position);
/**
* Checks whether the given order is a goto-waypoint order.
* @param vehicle_id The vehicle to check.
* @param order_position The order index to check.
* @pre IsValidVehicleOrder(vehicle_id, order_position).
* @return True if and only if the order is a goto-waypoint order.
*/
static bool IsGotoWaypointOrder(VehicleID vehicle_id, OrderPosition order_position);
/**
* Checks whether the given order is a conditional order.
* @param vehicle_id The vehicle to check.
@@ -123,6 +154,17 @@ public:
*/
static bool IsConditionalOrder(VehicleID vehicle_id, OrderPosition order_position);
/**
* Checks whether the current order is part of the orderlist.
* @param vehicle_id The vehicle to check.
* @pre AIVehicle::IsValidVehicle(vehicle_id).
* @return True if and only if the current order is part of the order list.
* @note If the order is a non-'non-stop' order, and the vehicle is currently
* (un)loading at a station that is not the final destination, this function
* will still return true.
*/
static bool IsCurrentOrderPartOfOrderList(VehicleID vehicle_id);
/**
* Resolves the given order index to the correct index for the given vehicle.
* If the order index was ORDER_CURRENT it will be resolved to the index of

View File

@@ -42,9 +42,11 @@ void SQAIOrder_Register(Squirrel *engine) {
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_FULL_LOAD_ANY, "AIOF_FULL_LOAD_ANY");
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_NO_LOAD, "AIOF_NO_LOAD");
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_SERVICE_IF_NEEDED, "AIOF_SERVICE_IF_NEEDED");
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_STOP_IN_DEPOT, "AIOF_STOP_IN_DEPOT");
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_NON_STOP_FLAGS, "AIOF_NON_STOP_FLAGS");
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_UNLOAD_FLAGS, "AIOF_UNLOAD_FLAGS");
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_LOAD_FLAGS, "AIOF_LOAD_FLAGS");
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_DEPOT_FLAGS, "AIOF_DEPOT_FLAGS");
SQAIOrder.DefSQConst(engine, AIOrder::AIOF_INVALID, "AIOF_INVALID");
SQAIOrder.DefSQConst(engine, AIOrder::OC_LOAD_PERCENTAGE, "OC_LOAD_PERCENTAGE");
SQAIOrder.DefSQConst(engine, AIOrder::OC_RELIABILITY, "OC_RELIABILITY");
@@ -71,34 +73,38 @@ void SQAIOrder_Register(Squirrel *engine) {
AIError::RegisterErrorMapString(AIOrder::ERR_ORDER_TOO_MANY, "ERR_ORDER_TOO_MANY");
AIError::RegisterErrorMapString(AIOrder::ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION, "ERR_ORDER_TOO_FAR_AWAY_FROM_PREVIOUS_DESTINATION");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidVehicleOrder, "IsValidVehicleOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsConditionalOrder, "IsConditionalOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ResolveOrderPosition, "ResolveOrderPosition", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AreOrderFlagsValid, "AreOrderFlagsValid", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidConditionalOrder, "IsValidConditionalOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCount, "GetOrderCount", 2, ".i");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderDestination, "GetOrderDestination", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderFlags, "GetOrderFlags", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderJumpTo, "GetOrderJumpTo", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCondition, "GetOrderCondition", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCompareFunction, "GetOrderCompareFunction", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCompareValue, "GetOrderCompareValue", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderJumpTo, "SetOrderJumpTo", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCondition, "SetOrderCondition", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCompareFunction, "SetOrderCompareFunction", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCompareValue, "SetOrderCompareValue", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AppendOrder, "AppendOrder", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AppendConditionalOrder, "AppendConditionalOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::InsertOrder, "InsertOrder", 5, ".iiii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::InsertConditionalOrder, "InsertConditionalOrder", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::RemoveOrder, "RemoveOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderFlags, "SetOrderFlags", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ChangeOrder, "ChangeOrder", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::MoveOrder, "MoveOrder", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SkipToOrder, "SkipToOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::CopyOrders, "CopyOrders", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ShareOrders, "ShareOrders", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::UnshareOrders, "UnshareOrders", 2, ".i");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidVehicleOrder, "IsValidVehicleOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsGotoStationOrder, "IsGotoStationOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsGotoDepotOrder, "IsGotoDepotOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsGotoWaypointOrder, "IsGotoWaypointOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsConditionalOrder, "IsConditionalOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsCurrentOrderPartOfOrderList, "IsCurrentOrderPartOfOrderList", 2, ".i");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ResolveOrderPosition, "ResolveOrderPosition", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AreOrderFlagsValid, "AreOrderFlagsValid", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::IsValidConditionalOrder, "IsValidConditionalOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCount, "GetOrderCount", 2, ".i");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderDestination, "GetOrderDestination", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderFlags, "GetOrderFlags", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderJumpTo, "GetOrderJumpTo", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCondition, "GetOrderCondition", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCompareFunction, "GetOrderCompareFunction", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::GetOrderCompareValue, "GetOrderCompareValue", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderJumpTo, "SetOrderJumpTo", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCondition, "SetOrderCondition", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCompareFunction, "SetOrderCompareFunction", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderCompareValue, "SetOrderCompareValue", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AppendOrder, "AppendOrder", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::AppendConditionalOrder, "AppendConditionalOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::InsertOrder, "InsertOrder", 5, ".iiii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::InsertConditionalOrder, "InsertConditionalOrder", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::RemoveOrder, "RemoveOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SetOrderFlags, "SetOrderFlags", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ChangeOrder, "ChangeOrder", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::MoveOrder, "MoveOrder", 4, ".iii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::SkipToOrder, "SkipToOrder", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::CopyOrders, "CopyOrders", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::ShareOrders, "ShareOrders", 3, ".ii");
SQAIOrder.DefSQStaticMethod(engine, &AIOrder::UnshareOrders, "UnshareOrders", 2, ".i");
SQAIOrder.PostRegister(engine);
}

View File

@@ -203,6 +203,7 @@
if (IsRailWaypointTile(tile)) return ::GetRailWaypointBits(tile);
if (IsRailStationTile(tile)) return ::TrackToTrackBits(::GetRailStationTrack(tile));
if (IsLevelCrossingTile(tile)) return ::GetCrossingRailBits(tile);
if (IsRailDepotTile(tile)) return ::TRACK_BIT_NONE;
return ::GetTrackBits(tile);
}

View File

@@ -293,6 +293,7 @@ public:
/**
* Get all RailTracks on the given tile.
* @note A depot has no railtracks.
* @param tile The tile to check.
* @pre IsRailTile(tile).
* @return A bitmask of RailTrack with all RailTracks on the tile.

View File

@@ -5,12 +5,18 @@
#include "ai_road.hpp"
#include "ai_map.hpp"
#include "ai_station.hpp"
#include "ai_cargo.hpp"
#include "../../station_map.h"
#include "../../command_type.h"
#include "../../settings_type.h"
#include "../../company_func.h"
#include "../../script/squirrel_helper_type.hpp"
/* static */ AIRoad::RoadVehicleType AIRoad::GetRoadVehicleTypeForCargo(CargoID cargo_type)
{
return AICargo::HasCargoClass(cargo_type, AICargo::CC_PASSENGERS) ? ROADVEHTYPE_BUS : ROADVEHTYPE_TRUCK;
}
/* static */ bool AIRoad::IsRoadTile(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;

View File

@@ -56,6 +56,14 @@ public:
ROADVEHTYPE_TRUCK, //!< Build objects useable for trucks and cargo trams
};
/**
* Determines whether a busstop or a truckstop is needed to transport a certain cargo.
* @param cargo_type The cargo to test.
* @pre AICargo::IsValidCargo(cargo_type).
* @return The road vehicle type needed to transport the cargo.
*/
static RoadVehicleType GetRoadVehicleTypeForCargo(CargoID cargo_type);
/**
* Checks whether the given tile is actually a tile with road that can be
* used to traverse a tile. This excludes road depots and 'normal' road

View File

@@ -46,6 +46,7 @@ void SQAIRoad_Register(Squirrel *engine) {
AIError::RegisterErrorMapString(AIRoad::ERR_ROAD_CANNOT_BUILD_ON_TOWN_ROAD, "ERR_ROAD_CANNOT_BUILD_ON_TOWN_ROAD");
AIError::RegisterErrorMapString(AIRoad::ERR_ROAD_ONE_WAY_ROADS_CANNOT_HAVE_JUNCTIONS, "ERR_ROAD_ONE_WAY_ROADS_CANNOT_HAVE_JUNCTIONS");
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::GetRoadVehicleTypeForCargo, "GetRoadVehicleTypeForCargo", 2, ".i");
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::IsRoadTile, "IsRoadTile", 2, ".i");
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::IsRoadDepotTile, "IsRoadDepotTile", 2, ".i");
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::IsRoadStationTile, "IsRoadStationTile", 2, ".i");

View File

@@ -11,6 +11,7 @@
#include "../../water_map.h"
#include "../../clear_map.h"
#include "../../town.h"
#include "../../landscape.h"
/* static */ bool AITile::IsBuildable(TileIndex tile)
{
@@ -72,14 +73,14 @@
/* static */ bool AITile::IsSteepSlope(Slope slope)
{
if (slope == SLOPE_INVALID) return false;
if ((slope & ~(SLOPE_ELEVATED | SLOPE_STEEP | SLOPE_HALFTILE_MASK)) != 0) return false;
return ::IsSteepSlope((::Slope)slope);
}
/* static */ bool AITile::IsHalftileSlope(Slope slope)
{
if (slope == SLOPE_INVALID) return false;
if ((slope & ~(SLOPE_ELEVATED | SLOPE_STEEP | SLOPE_HALFTILE_MASK)) != 0) return false;
return ::IsHalftileSlope((::Slope)slope);
}
@@ -123,20 +124,41 @@
/* static */ AITile::Slope AITile::GetComplementSlope(Slope slope)
{
if (slope == SLOPE_INVALID) return SLOPE_INVALID;
if (IsSteepSlope(slope)) return SLOPE_INVALID;
if (IsHalftileSlope(slope)) return SLOPE_INVALID;
if ((slope & ~SLOPE_ELEVATED) != 0) return SLOPE_INVALID;
return (Slope)::ComplementSlope((::Slope)slope);
}
/* static */ int32 AITile::GetHeight(TileIndex tile)
{
if (!::IsValidTile(tile)) return false;
if (!::IsValidTile(tile)) return -1;
return ::TileHeight(tile);
}
/* static */ int32 AITile::GetMinHeight(TileIndex tile)
{
if (!::IsValidTile(tile)) return -1;
return ::GetTileZ(tile) / ::TILE_HEIGHT;
}
/* static */ int32 AITile::GetMaxHeight(TileIndex tile)
{
if (!::IsValidTile(tile)) return -1;
return ::GetTileMaxZ(tile) / ::TILE_HEIGHT;
}
/* static */ int32 AITile::GetCornerHeight(TileIndex tile, Corner corner)
{
if (!::IsValidTile(tile) || !::IsValidCorner((::Corner)corner)) return -1;
uint z;
::Slope slope = ::GetTileSlope(tile, &z);
return (z + ::GetSlopeZInCorner(slope, (::Corner)corner)) / ::TILE_HEIGHT;
}
/* static */ AICompany::CompanyID AITile::GetOwner(TileIndex tile)
{
if (!::IsValidTile(tile)) return AICompany::COMPANY_INVALID;

View File

@@ -29,10 +29,28 @@ public:
/** Tile can't be lowered any lower */
ERR_TILE_TOO_LOW, // [STR_1003_ALREADY_AT_SEA_LEVEL]
/** The area was already flat */
ERR_AREA_ALREADY_FLAT, // [STR_ALREADY_LEVELLED]
/** There is a tunnel underneed */
ERR_EXCAVATION_WOULD_DAMAGE, // [STR_1002_EXCAVATION_WOULD_DAMAGE]
};
/**
* Enumeration for the slope-type (from slopes.h).
* Enumeration for corners of tiles.
*/
enum Corner {
CORNER_W = 0, //!< West corner
CORNER_S = 1, //!< South corner
CORNER_E = 2, //!< East corner
CORNER_N = 3, //!< North corner
CORNER_INVALID = 0xFF,
};
/**
* Enumeration for the slope-type.
*
* This enumeration use the chars N, E, S, W corresponding the
* direction North, East, South and West. The top corner of a tile
@@ -41,18 +59,18 @@ public:
enum Slope {
/* Values are important, as they represent the internal state of the game. */
SLOPE_FLAT = 0x00, //!< A flat tile
SLOPE_W = 0x01, //!< The west corner of the tile is raised
SLOPE_S = 0x02, //!< The south corner of the tile is raised
SLOPE_E = 0x04, //!< The east corner of the tile is raised
SLOPE_N = 0x08, //!< The north corner of the tile is raised
SLOPE_STEEP = 0x10, //!< Indicates the slope is steep
SLOPE_W = 1 << CORNER_W, //!< The west corner of the tile is raised
SLOPE_S = 1 << CORNER_S, //!< The south corner of the tile is raised
SLOPE_E = 1 << CORNER_E, //!< The east corner of the tile is raised
SLOPE_N = 1 << CORNER_N, //!< The north corner of the tile is raised
SLOPE_STEEP = 0x10, //!< Indicates the slope is steep (The corner opposite of the not-raised corner is raised two times)
SLOPE_NW = SLOPE_N | SLOPE_W, //!< North and west corner are raised
SLOPE_SW = SLOPE_S | SLOPE_W, //!< South and west corner are raised
SLOPE_SE = SLOPE_S | SLOPE_E, //!< South and east corner are raised
SLOPE_NE = SLOPE_N | SLOPE_E, //!< North and east corner are raised
SLOPE_EW = SLOPE_E | SLOPE_W, //!< East and west corner are raised
SLOPE_NS = SLOPE_N | SLOPE_S, //!< North and south corner are raised
SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W, //!< All corner are raised, similar to SLOPE_FLAT
SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W, //!< Bit mask containing all 'simple' slopes. Does not appear as a slope.
SLOPE_NWS = SLOPE_N | SLOPE_W | SLOPE_S, //!< North, west and south corner are raised
SLOPE_WSE = SLOPE_W | SLOPE_S | SLOPE_E, //!< West, south and east corner are raised
SLOPE_SEN = SLOPE_S | SLOPE_E | SLOPE_N, //!< South, east and north corner are raised
@@ -62,7 +80,7 @@ public:
SLOPE_STEEP_E = SLOPE_STEEP | SLOPE_SEN, //!< A steep slope falling to west (from east)
SLOPE_STEEP_N = SLOPE_STEEP | SLOPE_ENW, //!< A steep slope falling to south (from north)
SLOPE_INVALID = 0xFF, //!< An invalid slope
SLOPE_INVALID = 0xFFFF, //!< An invalid slope
};
/**
@@ -129,6 +147,7 @@ public:
/**
* Check if a tile has a steep slope.
* Steep slopes are slopes with a height difference of 2 across one diagonal of the tile.
* @param slope The slope to check on.
* @pre slope != SLOPE_INVALID.
* @return True if the slope is a steep slope.
@@ -137,9 +156,11 @@ public:
/**
* Check if a tile has a halftile slope.
* Halftile slopes appear on top of halftile foundations. E.g. the slope you get when building a horizontal railtrack on the top of a SLOPE_N or SLOPE_STEEP_N.
* @param slope The slope to check on.
* @pre slope != SLOPE_INVALID.
* @return True if the slope is a halftile slope.
* @note Currently there is no API function that would return or accept a halftile slope.
*/
static bool IsHalftileSlope(Slope slope);
@@ -193,9 +214,10 @@ public:
/**
* Get the slope of a tile.
* This is the slope of the bare tile. A possible foundation on the tile does not influence this slope.
* @param tile The tile to check on.
* @pre AIMap::IsValidTile(tile).
* @return 0 means flat, others indicate internal state of slope.
* @return Bit mask encoding the slope. See #Slope for a description of the returned values.
*/
static Slope GetSlope(TileIndex tile);
@@ -211,13 +233,43 @@ public:
static Slope GetComplementSlope(Slope slope);
/**
* Get the height of the tile.
* Get the height of the north corner of a tile.
* The returned height is the height of the bare tile. A possible foundation on the tile does not influence this height.
* @deprecated This function is deprecated and might be removed in future versions of the API. Use GetMinHeight(), GetMaxHeight() or GetCornerHeight() instead.
* @param tile The tile to check on.
* @pre AIMap::IsValidTile(tile).
* @return The height of the tile, ranging from 0 to 15.
* @return The height of the north corner of the tile, ranging from 0 to 15.
*/
static int32 GetHeight(TileIndex tile);
/**
* Get the minimal height on a tile.
* The returned height is the height of the bare tile. A possible foundation on the tile does not influence this height.
* @param tile The tile to check on.
* @pre AIMap::IsValidTile(tile).
* @return The height of the lowest corner of the tile, ranging from 0 to 15.
*/
static int32 GetMinHeight(TileIndex tile);
/**
* Get the maximal height on a tile.
* The returned height is the height of the bare tile. A possible foundation on the tile does not influence this height.
* @param tile The tile to check on.
* @pre AIMap::IsValidTile(tile).
* @return The height of the highest corner of the tile, ranging from 0 to 15.
*/
static int32 GetMaxHeight(TileIndex tile);
/**
* Get the height of a certain corner of a tile.
* The returned height is the height of the bare tile. A possible foundation on the tile does not influence this height.
* @param tile The tile to check on.
* @param corner The corner to query.
* @pre AIMap::IsValidTile(tile).
* @return The height of the lowest corner of the tile, ranging from 0 to 15.
*/
static int32 GetCornerHeight(TileIndex tile, Corner corner);
/**
* Get the owner of the tile.
* @param tile The tile to get the owner from.
@@ -288,7 +340,10 @@ public:
/**
* Raise the given corners of the tile. The corners can be combined,
* for example: SLOPE_N | SLOPE_W (= SLOPE_NW)
* for example: SLOPE_N | SLOPE_W (= SLOPE_NW) will raise the west and the north corner.
* @note The corners will be modified in the order west (first), south, east, north (last).
* Changing one corner might cause another corner to be changed too. So modifiing
* multiple corners may result in changing some corners by multiple steps.
* @param tile The tile to raise.
* @param slope Corners to raise (SLOPE_xxx).
* @pre tile < AIMap::GetMapSize().
@@ -301,7 +356,10 @@ public:
/**
* Lower the given corners of the tile. The corners can be combined,
* for example: SLOPE_N | SLOPE_W (= SLOPE_NW)
* for example: SLOPE_N | SLOPE_W (= SLOPE_NW) will lower the west and the north corner.
* @note The corners will be modified in the order west (first), south, east, north (last).
* Changing one corner might cause another corner to be changed too. So modifiing
* multiple corners may result in changing some corners by multiple steps.
* @param tile The tile to lower.
* @param slope Corners to lower (SLOPE_xxx).
* @pre tile < AIMap::GetMapSize().

View File

@@ -7,6 +7,8 @@ namespace SQConvert {
/* Allow enums to be used as Squirrel parameters */
template <> AITile::ErrorMessages GetParam(ForceType<AITile::ErrorMessages>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AITile::ErrorMessages)tmp; }
template <> int Return<AITile::ErrorMessages>(HSQUIRRELVM vm, AITile::ErrorMessages res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> AITile::Corner GetParam(ForceType<AITile::Corner>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AITile::Corner)tmp; }
template <> int Return<AITile::Corner>(HSQUIRRELVM vm, AITile::Corner res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> AITile::Slope GetParam(ForceType<AITile::Slope>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AITile::Slope)tmp; }
template <> int Return<AITile::Slope>(HSQUIRRELVM vm, AITile::Slope res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> AITile::TransportType GetParam(ForceType<AITile::TransportType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AITile::TransportType)tmp; }
@@ -25,42 +27,53 @@ void SQAITile_Register(Squirrel *engine) {
SQAITile.PreRegister(engine);
SQAITile.AddConstructor<void (AITile::*)(), 1>(engine, "x");
SQAITile.DefSQConst(engine, AITile::ERR_TILE_BASE, "ERR_TILE_BASE");
SQAITile.DefSQConst(engine, AITile::ERR_TILE_TOO_HIGH, "ERR_TILE_TOO_HIGH");
SQAITile.DefSQConst(engine, AITile::ERR_TILE_TOO_LOW, "ERR_TILE_TOO_LOW");
SQAITile.DefSQConst(engine, AITile::SLOPE_FLAT, "SLOPE_FLAT");
SQAITile.DefSQConst(engine, AITile::SLOPE_W, "SLOPE_W");
SQAITile.DefSQConst(engine, AITile::SLOPE_S, "SLOPE_S");
SQAITile.DefSQConst(engine, AITile::SLOPE_E, "SLOPE_E");
SQAITile.DefSQConst(engine, AITile::SLOPE_N, "SLOPE_N");
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP, "SLOPE_STEEP");
SQAITile.DefSQConst(engine, AITile::SLOPE_NW, "SLOPE_NW");
SQAITile.DefSQConst(engine, AITile::SLOPE_SW, "SLOPE_SW");
SQAITile.DefSQConst(engine, AITile::SLOPE_SE, "SLOPE_SE");
SQAITile.DefSQConst(engine, AITile::SLOPE_NE, "SLOPE_NE");
SQAITile.DefSQConst(engine, AITile::SLOPE_EW, "SLOPE_EW");
SQAITile.DefSQConst(engine, AITile::SLOPE_NS, "SLOPE_NS");
SQAITile.DefSQConst(engine, AITile::SLOPE_ELEVATED, "SLOPE_ELEVATED");
SQAITile.DefSQConst(engine, AITile::SLOPE_NWS, "SLOPE_NWS");
SQAITile.DefSQConst(engine, AITile::SLOPE_WSE, "SLOPE_WSE");
SQAITile.DefSQConst(engine, AITile::SLOPE_SEN, "SLOPE_SEN");
SQAITile.DefSQConst(engine, AITile::SLOPE_ENW, "SLOPE_ENW");
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_W, "SLOPE_STEEP_W");
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_S, "SLOPE_STEEP_S");
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_E, "SLOPE_STEEP_E");
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_N, "SLOPE_STEEP_N");
SQAITile.DefSQConst(engine, AITile::SLOPE_INVALID, "SLOPE_INVALID");
SQAITile.DefSQConst(engine, AITile::TRANSPORT_RAIL, "TRANSPORT_RAIL");
SQAITile.DefSQConst(engine, AITile::TRANSPORT_ROAD, "TRANSPORT_ROAD");
SQAITile.DefSQConst(engine, AITile::TRANSPORT_WATER, "TRANSPORT_WATER");
SQAITile.DefSQConst(engine, AITile::TRANSPORT_AIR, "TRANSPORT_AIR");
SQAITile.DefSQConst(engine, AITile::TRANSPORT_INVALID, "TRANSPORT_INVALID");
SQAITile.DefSQConst(engine, AITile::ERR_TILE_BASE, "ERR_TILE_BASE");
SQAITile.DefSQConst(engine, AITile::ERR_TILE_TOO_HIGH, "ERR_TILE_TOO_HIGH");
SQAITile.DefSQConst(engine, AITile::ERR_TILE_TOO_LOW, "ERR_TILE_TOO_LOW");
SQAITile.DefSQConst(engine, AITile::ERR_AREA_ALREADY_FLAT, "ERR_AREA_ALREADY_FLAT");
SQAITile.DefSQConst(engine, AITile::ERR_EXCAVATION_WOULD_DAMAGE, "ERR_EXCAVATION_WOULD_DAMAGE");
SQAITile.DefSQConst(engine, AITile::CORNER_W, "CORNER_W");
SQAITile.DefSQConst(engine, AITile::CORNER_S, "CORNER_S");
SQAITile.DefSQConst(engine, AITile::CORNER_E, "CORNER_E");
SQAITile.DefSQConst(engine, AITile::CORNER_N, "CORNER_N");
SQAITile.DefSQConst(engine, AITile::CORNER_INVALID, "CORNER_INVALID");
SQAITile.DefSQConst(engine, AITile::SLOPE_FLAT, "SLOPE_FLAT");
SQAITile.DefSQConst(engine, AITile::SLOPE_W, "SLOPE_W");
SQAITile.DefSQConst(engine, AITile::SLOPE_S, "SLOPE_S");
SQAITile.DefSQConst(engine, AITile::SLOPE_E, "SLOPE_E");
SQAITile.DefSQConst(engine, AITile::SLOPE_N, "SLOPE_N");
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP, "SLOPE_STEEP");
SQAITile.DefSQConst(engine, AITile::SLOPE_NW, "SLOPE_NW");
SQAITile.DefSQConst(engine, AITile::SLOPE_SW, "SLOPE_SW");
SQAITile.DefSQConst(engine, AITile::SLOPE_SE, "SLOPE_SE");
SQAITile.DefSQConst(engine, AITile::SLOPE_NE, "SLOPE_NE");
SQAITile.DefSQConst(engine, AITile::SLOPE_EW, "SLOPE_EW");
SQAITile.DefSQConst(engine, AITile::SLOPE_NS, "SLOPE_NS");
SQAITile.DefSQConst(engine, AITile::SLOPE_ELEVATED, "SLOPE_ELEVATED");
SQAITile.DefSQConst(engine, AITile::SLOPE_NWS, "SLOPE_NWS");
SQAITile.DefSQConst(engine, AITile::SLOPE_WSE, "SLOPE_WSE");
SQAITile.DefSQConst(engine, AITile::SLOPE_SEN, "SLOPE_SEN");
SQAITile.DefSQConst(engine, AITile::SLOPE_ENW, "SLOPE_ENW");
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_W, "SLOPE_STEEP_W");
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_S, "SLOPE_STEEP_S");
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_E, "SLOPE_STEEP_E");
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_N, "SLOPE_STEEP_N");
SQAITile.DefSQConst(engine, AITile::SLOPE_INVALID, "SLOPE_INVALID");
SQAITile.DefSQConst(engine, AITile::TRANSPORT_RAIL, "TRANSPORT_RAIL");
SQAITile.DefSQConst(engine, AITile::TRANSPORT_ROAD, "TRANSPORT_ROAD");
SQAITile.DefSQConst(engine, AITile::TRANSPORT_WATER, "TRANSPORT_WATER");
SQAITile.DefSQConst(engine, AITile::TRANSPORT_AIR, "TRANSPORT_AIR");
SQAITile.DefSQConst(engine, AITile::TRANSPORT_INVALID, "TRANSPORT_INVALID");
AIError::RegisterErrorMap(STR_1003_ALREADY_AT_SEA_LEVEL, AITile::ERR_TILE_TOO_HIGH);
AIError::RegisterErrorMap(STR_1003_ALREADY_AT_SEA_LEVEL, AITile::ERR_TILE_TOO_LOW);
AIError::RegisterErrorMap(STR_1003_ALREADY_AT_SEA_LEVEL, AITile::ERR_TILE_TOO_HIGH);
AIError::RegisterErrorMap(STR_1003_ALREADY_AT_SEA_LEVEL, AITile::ERR_TILE_TOO_LOW);
AIError::RegisterErrorMap(STR_ALREADY_LEVELLED, AITile::ERR_AREA_ALREADY_FLAT);
AIError::RegisterErrorMap(STR_1002_EXCAVATION_WOULD_DAMAGE, AITile::ERR_EXCAVATION_WOULD_DAMAGE);
AIError::RegisterErrorMapString(AITile::ERR_TILE_TOO_HIGH, "ERR_TILE_TOO_HIGH");
AIError::RegisterErrorMapString(AITile::ERR_TILE_TOO_LOW, "ERR_TILE_TOO_LOW");
AIError::RegisterErrorMapString(AITile::ERR_TILE_TOO_HIGH, "ERR_TILE_TOO_HIGH");
AIError::RegisterErrorMapString(AITile::ERR_TILE_TOO_LOW, "ERR_TILE_TOO_LOW");
AIError::RegisterErrorMapString(AITile::ERR_AREA_ALREADY_FLAT, "ERR_AREA_ALREADY_FLAT");
AIError::RegisterErrorMapString(AITile::ERR_EXCAVATION_WOULD_DAMAGE, "ERR_EXCAVATION_WOULD_DAMAGE");
SQAITile.DefSQStaticMethod(engine, &AITile::IsBuildable, "IsBuildable", 2, ".i");
SQAITile.DefSQStaticMethod(engine, &AITile::IsBuildableRectangle, "IsBuildableRectangle", 4, ".iii");
@@ -78,6 +91,9 @@ void SQAITile_Register(Squirrel *engine) {
SQAITile.DefSQStaticMethod(engine, &AITile::GetSlope, "GetSlope", 2, ".i");
SQAITile.DefSQStaticMethod(engine, &AITile::GetComplementSlope, "GetComplementSlope", 2, ".i");
SQAITile.DefSQStaticMethod(engine, &AITile::GetHeight, "GetHeight", 2, ".i");
SQAITile.DefSQStaticMethod(engine, &AITile::GetMinHeight, "GetMinHeight", 2, ".i");
SQAITile.DefSQStaticMethod(engine, &AITile::GetMaxHeight, "GetMaxHeight", 2, ".i");
SQAITile.DefSQStaticMethod(engine, &AITile::GetCornerHeight, "GetCornerHeight", 3, ".ii");
SQAITile.DefSQStaticMethod(engine, &AITile::GetOwner, "GetOwner", 2, ".i");
SQAITile.DefSQStaticMethod(engine, &AITile::HasTransportType, "HasTransportType", 3, ".ii");
SQAITile.DefSQStaticMethod(engine, &AITile::GetCargoAcceptance, "GetCargoAcceptance", 6, ".iiiii");

View File

@@ -23,14 +23,26 @@
/* If it's a tunnel alread, take the easy way out! */
if (IsTunnelTile(tile)) return ::GetOtherTunnelEnd(tile);
::DoCommand(tile, 0, 0, DC_AUTO, CMD_BUILD_TUNNEL);
return _build_tunnel_endtile == 0 ? INVALID_TILE : _build_tunnel_endtile;
uint start_z;
Slope start_tileh = ::GetTileSlope(tile, &start_z);
DiagDirection direction = ::GetInclinedSlopeDirection(start_tileh);
if (direction == INVALID_DIAGDIR) return INVALID_TILE;
TileIndexDiff delta = ::TileOffsByDiagDir(direction);
uint end_z;
do {
tile += delta;
if (!::IsValidTile(tile)) return INVALID_TILE;
::GetTileSlope(tile, &end_z);
} while (start_z != end_z);
return tile;
}
static void _DoCommandReturnBuildTunnel2(class AIInstance *instance)
{
if (!AITunnel::_BuildTunnelRoad2()) {
AIObject::SetLastCommandRes(false);
AIInstance::DoCommandReturn(instance);
return;
}
@@ -43,7 +55,6 @@ static void _DoCommandReturnBuildTunnel2(class AIInstance *instance)
static void _DoCommandReturnBuildTunnel1(class AIInstance *instance)
{
if (!AITunnel::_BuildTunnelRoad1()) {
AIObject::SetLastCommandRes(false);
AIInstance::DoCommandReturn(instance);
return;
}
@@ -62,7 +73,7 @@ static void _DoCommandReturnBuildTunnel1(class AIInstance *instance)
uint type = 0;
if (vehicle_type == AIVehicle::VT_ROAD) {
type |= (TRANSPORT_ROAD << 9);
type |= RoadTypeToRoadTypes((::RoadType)AIObject::GetRoadType());
type |= ::RoadTypeToRoadTypes((::RoadType)AIObject::GetRoadType());
} else {
type |= (TRANSPORT_RAIL << 9);
type |= AIRail::GetCurrentRailType();
@@ -74,10 +85,7 @@ static void _DoCommandReturnBuildTunnel1(class AIInstance *instance)
}
AIObject::SetCallbackVariable(0, start);
if (!AIObject::DoCommand(start, type, 0, CMD_BUILD_TUNNEL, NULL, &_DoCommandReturnBuildTunnel1)) return false;
/* In case of test-mode, test if we can build both road pieces */
return _BuildTunnelRoad1();
return AIObject::DoCommand(start, type, 0, CMD_BUILD_TUNNEL, NULL, &_DoCommandReturnBuildTunnel1);
}
/* static */ bool AITunnel::_BuildTunnelRoad1()
@@ -89,10 +97,7 @@ static void _DoCommandReturnBuildTunnel1(class AIInstance *instance)
DiagDirection dir_1 = (DiagDirection)((::TileX(start) == ::TileX(end)) ? (::TileY(start) < ::TileY(end) ? DIAGDIR_NW : DIAGDIR_SE) : (::TileX(start) < ::TileX(end) ? DIAGDIR_NE : DIAGDIR_SW));
DiagDirection dir_2 = ::ReverseDiagDir(dir_1);
if (!AIObject::DoCommand(start + ::TileOffsByDiagDir(dir_1), ::DiagDirToRoadBits(dir_2) | (AIObject::GetRoadType() << 4), 0, CMD_BUILD_ROAD, NULL, &_DoCommandReturnBuildTunnel2)) return false;
/* In case of test-mode, test the other road piece too */
return _BuildTunnelRoad2();
return AIObject::DoCommand(start + ::TileOffsByDiagDir(dir_1), ::DiagDirToRoadBits(dir_2) | (AIObject::GetRoadType() << 4), 0, CMD_BUILD_ROAD, NULL, &_DoCommandReturnBuildTunnel2);
}
/* static */ bool AITunnel::_BuildTunnelRoad2()

View File

@@ -46,11 +46,15 @@ public:
/**
* Get the tile that exits on the other end of a (would be) tunnel starting
* at tile.
* at tile. If there is no 'simple' inclined slope at the start tile,
* this function will return AIMap::TILE_INVALID.
* @param tile The tile that is an entrance to a tunnel or the tile where you may want to build a tunnel.
* @pre AIMap::IsValidTile(tile).
* @return The TileIndex that is the other end of the (would be) tunnel, or
* TILE_INVALID if no other end was found (can't build tunnel).
* AIMap::TILE_INVALID if no other end was found (can't build tunnel).
* @note Even if this function returns a valid tile, that is no guarantee
* that building a tunnel will succeed. Use BuildTunnel in AITestMode to
* check whether a tunnel can actually be build.
*/
static TileIndex GetOtherTunnelEnd(TileIndex tile);

View File

@@ -1,6 +1,75 @@
/* $Id$ */
/** @file ai_types.hpp Defines all the types of the game, like VehicleID, .... */
/** @file ai_types.hpp Defines all the types of the game, like IDs of various objects.
*
* IDs are used to identify certain objects. They are only unique within the object type, so for example a vehicle may have VehicleID 2009,
* while a station has StationID 2009 at the same time. Also IDs are assigned arbitrary, you cannot assume them to be consecutive.
* Also note, that some IDs are static and never change, while others are allocated dynamically and might be
* reused for other objects once they are released. So be careful, which IDs you store for which purpose and whether they stay valid all the time.
*
* <table>
* <tr><th>type </th><th> object </th>
* <th> acquired </th>
* <th> released </th>
* <th> reused </th></tr>
* <tr><td>#BridgeID </td><td> bridge type </td>
* <td> introduction \ref newgrf_changes "(1)" </td>
* <td> never \ref newgrf_changes "(1)" </td>
* <td> no \ref newgrf_changes "(1)" </td></tr>
* <tr><td>#CargoID </td><td> cargo type </td>
* <td> game start \ref newgrf_changes "(1)" </td>
* <td> never \ref newgrf_changes "(1)" </td>
* <td> no \ref newgrf_changes "(1)" </td></tr>
* <tr><td>#EngineID </td><td> engine type </td>
* <td> introduction, preview \ref dynamic_engines "(2)" </td>
* <td> engines retires \ref dynamic_engines "(2)" </td>
* <td> no \ref dynamic_engines "(2)" </td></tr>
* <tr><td>#GroupID </td><td> vehicle group </td>
* <td> creation </td>
* <td> deletion </td>
* <td> yes </td></tr>
* <tr><td>#IndustyID </td><td> industry </td>
* <td> construction </td>
* <td> closure </td>
* <td> yes </td></tr>
* <tr><td>#IndustyType</td><td> industry type </td>
* <td> game start \ref newgrf_changes "(1)" </td>
* <td> never \ref newgrf_changes "(1)" </td>
* <td> no </td></tr>
* <tr><td>#SignID </td><td> sign </td>
* <td> construction </td>
* <td> deletion </td>
* <td> yes </td></tr>
* <tr><td>#StationID </td><td> station </td>
* <td> construction </td>
* <td> expiration of 'grey' station sign after deletion </td>
* <td> yes </td></tr>
* <tr><td>#SubsidyID </td><td> subsidy </td>
* <td> offer announcement </td>
* <td> (offer) expiration </td>
* <td> yes </td></tr>
* <tr><td>#TileIndex </td><td> tile on map </td>
* <td> game start </td>
* <td> never </td>
* <td> no </td></tr>
* <tr><td>#TownID </td><td> town </td>
* <td> game start </td>
* <td> never </td>
* <td> no </td></tr>
* <tr><td>#VehicleID </td><td> vehicle </td>
* <td> construction, autorenew, autoreplace </td>
* <td> destruction, autorenew, autoreplace </td>
* <td> yes </td></tr>
* <tr><td>#WaypointID </td><td> waypoint </td>
* <td> construction </td>
* <td> destruction </td>
* <td> yes </td></tr>
* </table>
*
* @remarks
* \li \anchor newgrf_changes (1) in-game changes of newgrfs may reassign/invalidate IDs (will also cause other trouble though).
* \li \anchor dynamic_engines (2) engine IDs are reassigned/invalidated on changing 'allow multiple newgrf engine sets' (only allowed as long as no vehicles are built).
*/
#ifndef AI_TYPES_HPP
#define AI_TYPES_HPP

View File

@@ -160,6 +160,13 @@
return AIObject::DoCommand(0, vehicle_id, 0, GetCmdSendToDepot(::GetVehicle(vehicle_id)));
}
/* static */ bool AIVehicle::SendVehicleToDepotForServicing(VehicleID vehicle_id)
{
EnforcePrecondition(false, IsValidVehicle(vehicle_id));
return AIObject::DoCommand(0, vehicle_id, DEPOT_SERVICE, GetCmdSendToDepot(::GetVehicle(vehicle_id)));
}
/* static */ bool AIVehicle::IsInDepot(VehicleID vehicle_id)
{
if (!IsValidVehicle(vehicle_id)) return false;

View File

@@ -422,14 +422,25 @@ public:
static bool SellWagonChain(VehicleID vehicle_id, int wagon);
/**
* Sends the given vehicle to a depot.
* Sends the given vehicle to a depot. If the vehicle has already been
* sent to a depot it continues with its normal orders instead.
* @param vehicle_id The vehicle to send to a depot.
* @pre IsValidVehicle(vehicle_id).
* @exception AIVehicle::ERR_VEHICLE_CANNOT_SEND_TO_DEPOT
* @return True if and only if the vehicle has been sent to a depot.
* @return True if the current order was changed.
*/
static bool SendVehicleToDepot(VehicleID vehicle_id);
/**
* Sends the given vehicle to a depot for servicing. If the vehicle has
* already been sent to a depot it continues with its normal orders instead.
* @param vehicle_id The vehicle to send to a depot for servicing.
* @pre IsValidVehicle(vehicle_id).
* @exception AIVehicle::ERR_VEHICLE_CANNOT_SEND_TO_DEPOT
* @return True if the current order was changed.
*/
static bool SendVehicleToDepotForServicing(VehicleID vehicle_id);
/**
* Starts or stops the given vehicle depending on the current state.
* @param vehicle_id The vehicle to start/stop.

View File

@@ -98,47 +98,48 @@ void SQAIVehicle_Register(Squirrel *engine) {
AIError::RegisterErrorMapString(AIVehicle::ERR_VEHICLE_IN_FLIGHT, "ERR_VEHICLE_IN_FLIGHT");
AIError::RegisterErrorMapString(AIVehicle::ERR_VEHCILE_NO_POWER, "ERR_VEHCILE_NO_POWER");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsValidVehicle, "IsValidVehicle", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetNumWagons, "GetNumWagons", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SetName, "SetName", 3, ".is");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetName, "GetName", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetLocation, "GetLocation", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetEngineType, "GetEngineType", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetWagonEngineType, "GetWagonEngineType", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetUnitNumber, "GetUnitNumber", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetAge, "GetAge", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetWagonAge, "GetWagonAge", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetMaxAge, "GetMaxAge", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetAgeLeft, "GetAgeLeft", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCurrentSpeed, "GetCurrentSpeed", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetState, "GetState", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRunningCost, "GetRunningCost", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetProfitThisYear, "GetProfitThisYear", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetProfitLastYear, "GetProfitLastYear", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCurrentValue, "GetCurrentValue", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetVehicleType, "GetVehicleType", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRoadType, "GetRoadType", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsInDepot, "IsInDepot", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsStoppedInDepot, "IsStoppedInDepot", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::BuildVehicle, "BuildVehicle", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::CloneVehicle, "CloneVehicle", 4, ".iib");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::MoveWagon, "MoveWagon", 5, ".iiii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::MoveWagonChain, "MoveWagonChain", 5, ".iiii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRefitCapacity, "GetRefitCapacity", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::RefitVehicle, "RefitVehicle", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellVehicle, "SellVehicle", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellWagon, "SellWagon", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellWagonChain, "SellWagonChain", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SendVehicleToDepot, "SendVehicleToDepot", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::StartStopVehicle, "StartStopVehicle", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SkipToVehicleOrder, "SkipToVehicleOrder", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::ReverseVehicle, "ReverseVehicle", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCapacity, "GetCapacity", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetLength, "GetLength", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCargoLoad, "GetCargoLoad", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetGroupID, "GetGroupID", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsArticulated, "IsArticulated", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::HasSharedOrders, "HasSharedOrders", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsValidVehicle, "IsValidVehicle", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetNumWagons, "GetNumWagons", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SetName, "SetName", 3, ".is");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetName, "GetName", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetLocation, "GetLocation", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetEngineType, "GetEngineType", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetWagonEngineType, "GetWagonEngineType", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetUnitNumber, "GetUnitNumber", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetAge, "GetAge", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetWagonAge, "GetWagonAge", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetMaxAge, "GetMaxAge", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetAgeLeft, "GetAgeLeft", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCurrentSpeed, "GetCurrentSpeed", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetState, "GetState", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRunningCost, "GetRunningCost", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetProfitThisYear, "GetProfitThisYear", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetProfitLastYear, "GetProfitLastYear", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCurrentValue, "GetCurrentValue", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetVehicleType, "GetVehicleType", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRoadType, "GetRoadType", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsInDepot, "IsInDepot", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsStoppedInDepot, "IsStoppedInDepot", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::BuildVehicle, "BuildVehicle", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::CloneVehicle, "CloneVehicle", 4, ".iib");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::MoveWagon, "MoveWagon", 5, ".iiii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::MoveWagonChain, "MoveWagonChain", 5, ".iiii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetRefitCapacity, "GetRefitCapacity", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::RefitVehicle, "RefitVehicle", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellVehicle, "SellVehicle", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellWagon, "SellWagon", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SellWagonChain, "SellWagonChain", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SendVehicleToDepot, "SendVehicleToDepot", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SendVehicleToDepotForServicing, "SendVehicleToDepotForServicing", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::StartStopVehicle, "StartStopVehicle", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::SkipToVehicleOrder, "SkipToVehicleOrder", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::ReverseVehicle, "ReverseVehicle", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCapacity, "GetCapacity", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetLength, "GetLength", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetCargoLoad, "GetCargoLoad", 3, ".ii");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::GetGroupID, "GetGroupID", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::IsArticulated, "IsArticulated", 2, ".i");
SQAIVehicle.DefSQStaticMethod(engine, &AIVehicle::HasSharedOrders, "HasSharedOrders", 2, ".i");
SQAIVehicle.PostRegister(engine);
}

View File

@@ -16,7 +16,7 @@ public:
static const char *GetClassName() { return "AIWaypoint"; }
enum SpecialWaypointIDs {
WAYPOINT_INVALID = -1, //!< An invalid WaypointID.
WAYPOINT_INVALID = 0xFFFF, //!< An invalid WaypointID.
};
/**

View File

@@ -445,12 +445,11 @@ Company *DoStartupNewCompany(bool is_ai)
c->inaugurated_year = _cur_year;
RandomCompanyManagerFaceBits(c->face, (GenderEthnicity)Random(), false); // create a random company manager face
/* Engine renewal settings */
c->engine_renew_list = NULL;
c->renew_keep_length = false;
c->engine_renew = _settings_client.gui.autorenew;
c->engine_renew_months = _settings_client.gui.autorenew_months;
c->engine_renew_money = _settings_client.gui.autorenew_money;
/* Settings for non-ai companies are copied from the client settings later. */
if (is_ai) {
c->engine_renew_money = 100000;
c->engine_renew_months = 6;
}
GeneratePresidentName(c);
@@ -756,6 +755,9 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
/* This is the client (or non-dedicated server) who wants a new company */
if (cid == _network_own_client_id) {
/* Create p1 and p2 here because SetLocalCompany resets the gui.autorenew* settings. */
uint32 p1 = (_settings_client.gui.autorenew << 15 ) | (_settings_client.gui.autorenew_months << 16) | 4;
uint32 p2 = _settings_client.gui.autorenew_money;
assert(_local_company == COMPANY_SPECTATOR);
SetLocalCompany(c->index);
if (!StrEmpty(_settings_client.network.default_company_pass)) {
@@ -767,13 +769,7 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
/* Now that we have a new company, broadcast our autorenew settings to
* all clients so everything is in sync */
NetworkSend_Command(0,
(_settings_client.gui.autorenew << 15 ) | (_settings_client.gui.autorenew_months << 16) | 4,
_settings_client.gui.autorenew_money,
CMD_SET_AUTOREPLACE,
NULL,
NULL
);
NetworkSend_Command(0, p1, p2, CMD_SET_AUTOREPLACE, NULL, NULL);
MarkWholeScreenDirty();
}

View File

@@ -116,13 +116,13 @@ void IConsolePrint(ConsoleColour colour_code, const char *string)
* by any other means. Uses printf() style format, for more information look
* at IConsolePrint()
*/
void CDECL IConsolePrintF(ConsoleColour colour_code, const char *s, ...)
void CDECL IConsolePrintF(ConsoleColour colour_code, const char *format, ...)
{
va_list va;
char buf[ICON_MAX_STREAMSIZE];
va_start(va, s);
vsnprintf(buf, sizeof(buf), s, va);
va_start(va, format);
vsnprintf(buf, sizeof(buf), format, va);
va_end(va);
IConsolePrint(colour_code, buf);

View File

@@ -640,6 +640,11 @@ DEF_CONSOLE_CMD(ConJoinCompany)
return true;
}
if (company_id != COMPANY_SPECTATOR && GetCompany(company_id)->is_ai) {
IConsoleError("Cannot join AI company.");
return true;
}
/* Check if the company requires a password */
if (NetworkCompanyIsPassworded(company_id) && argc < 3) {
IConsolePrintF(CC_ERROR, "Company %d requires a password to join.", company_id + 1);
@@ -678,6 +683,11 @@ DEF_CONSOLE_CMD(ConMoveClient)
return true;
}
if (company_id != COMPANY_SPECTATOR && GetCompany(company_id)->is_ai) {
IConsoleError("You cannot move clients to AI companies.");
return true;
}
if (ci->client_id == CLIENT_ID_SERVER && _network_dedicated) {
IConsoleError("Silly boy, you cannot move the server!");
return true;
@@ -782,8 +792,8 @@ DEF_CONSOLE_CMD(ConNetworkConnect)
/* From a user pov 0 is a new company, internally it's different and all
* companies are offset by one to ease up on users (eg companies 1-8 not 0-7) */
if (_network_playas != COMPANY_SPECTATOR) {
if (_network_playas > MAX_COMPANIES) return false;
_network_playas--;
if (!IsValidCompanyID(_network_playas)) return false;
}
}
if (port != NULL) {
@@ -1189,7 +1199,7 @@ DEF_CONSOLE_CMD(ConInfoVar)
IConsolePrintF(CC_DEFAULT, "variable name: %s", var->name);
IConsolePrintF(CC_DEFAULT, "variable type: %s", _icon_vartypes[var->type]);
IConsolePrintF(CC_DEFAULT, "variable addr: 0x%X", var->addr);
IConsolePrintF(CC_DEFAULT, "variable addr: %p", var->addr);
if (var->hook.access) IConsoleWarning("variable is access hooked");
if (var->hook.pre) IConsoleWarning("variable is pre hooked");
@@ -1216,7 +1226,7 @@ DEF_CONSOLE_CMD(ConInfoCmd)
}
IConsolePrintF(CC_DEFAULT, "command name: %s", cmd->name);
IConsolePrintF(CC_DEFAULT, "command proc: 0x%X", cmd->proc);
IConsolePrintF(CC_DEFAULT, "command proc: %p", cmd->proc);
if (cmd->hook.access) IConsoleWarning("command is access hooked");
if (cmd->hook.pre) IConsoleWarning("command is pre hooked");
@@ -1421,7 +1431,7 @@ DEF_CONSOLE_CMD(ConCompanies)
const NetworkCompanyStats *stats = &company_stats[c->index];
GetString(buffer, STR_00D1_DARK_BLUE + _company_colours[c->index], lastof(buffer));
IConsolePrintF(CC_INFO, "#:%d(%s) Company Name: '%s' Year Founded: %d Money: %" OTTD_PRINTF64 "d Loan: %" OTTD_PRINTF64 "d Value: %" OTTD_PRINTF64 "d (T:%d, R:%d, P:%d, S:%d) %sprotected",
IConsolePrintF(CC_INFO, "#:%d(%s) Company Name: '%s' Year Founded: %d Money: " OTTD_PRINTF64 " Loan: " OTTD_PRINTF64 " Value: " OTTD_PRINTF64 " (T:%d, R:%d, P:%d, S:%d) %sprotected",
c->index + 1, buffer, company_name, c->inaugurated_year, (int64)c->money, (int64)c->current_loan, (int64)CalculateCompanyValue(c),
/* trains */ stats->num_vehicle[0],
/* lorry + bus */ stats->num_vehicle[1] + stats->num_vehicle[2],

View File

@@ -17,7 +17,7 @@ void IConsoleClose();
/* console output */
void IConsolePrint(ConsoleColour colour_code, const char *string);
void CDECL IConsolePrintF(ConsoleColour colour_code, const char *s, ...);
void CDECL IConsolePrintF(ConsoleColour colour_code, const char *format, ...) WARN_FORMAT(2, 3);
void IConsoleDebug(const char *dbg, const char *string);
void IConsoleWarning(const char *string);
void IConsoleError(const char *string);

View File

@@ -11,7 +11,7 @@
*/
void NORETURN MallocError(size_t size)
{
error("Out of memory. Cannot allocate %i bytes", size);
error("Out of memory. Cannot allocate " PRINTF_SIZE " bytes", size);
}
/**
@@ -20,5 +20,5 @@ void NORETURN MallocError(size_t size)
*/
void NORETURN ReallocError(size_t size)
{
error("Out of memory. Cannot reallocate %i bytes", size);
error("Out of memory. Cannot reallocate " PRINTF_SIZE " bytes", size);
}

View File

@@ -318,7 +318,7 @@ static FORCEINLINE T ROR(const T x, const uint8 n)
*/
static FORCEINLINE uint32 BSWAP32(uint32 x)
{
#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ >= 3))
#if !defined(__ICC) && defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ >= 3))
/* GCC >= 4.3 provides a builtin, resulting in faster code */
return (uint32)__builtin_bswap32((int32)x);
#else

View File

@@ -86,7 +86,7 @@ public:
FORCEINLINE OverflowSafeInt operator * (const byte factor) const { OverflowSafeInt result = *this; result *= (int64)factor; return result; }
/* Operators for division */
FORCEINLINE OverflowSafeInt& operator /= (const int divisor) { this->m_value /= divisor; return *this; }
FORCEINLINE OverflowSafeInt& operator /= (const int64 divisor) { this->m_value /= divisor; return *this; }
FORCEINLINE OverflowSafeInt operator / (const OverflowSafeInt& divisor) const { OverflowSafeInt result = *this; result /= divisor.m_value; return result; }
FORCEINLINE OverflowSafeInt operator / (const int divisor) const { OverflowSafeInt result = *this; result /= divisor; return result; }
FORCEINLINE OverflowSafeInt operator / (const uint divisor) const { OverflowSafeInt result = *this; result /= (int)divisor; return result; }

View File

@@ -108,7 +108,7 @@ static FORCEINLINE uint32 InteractiveRandomRange(uint16 max)
* Checks if a given randomize-number is below a given probability.
*
* This function is used to check if the given probability by the fraction of (a/b)
* is greater than low 16 bits of the given randomize-number v.
* is greater than low 16 bits of the given randomize-number r.
*
* Do not use this function twice on the same random 16 bits as it will yield
* the same result. One can use a random number for two calls to Chance16I,
@@ -117,12 +117,12 @@ static FORCEINLINE uint32 InteractiveRandomRange(uint16 max)
* @param a The numerator of the fraction
* @param b The denominator of the fraction, must of course not be null
* @param r The given randomize-number
* @return True if v is less or equals (a/b)
* @return True if the probability given by r is less or equal to (a/b)
*/
static FORCEINLINE bool Chance16I(const uint a, const uint b, const uint32 r)
{
assert(b != 0);
return (uint16)r < (uint16)(((a << 16) + b / 2) / b);
return (((uint16)r * b + b / 2) >> 16) < a;
}
/**

View File

@@ -35,7 +35,7 @@ static const CurrencySpec origin_currency_specs[NUM_CURRENCY] = {
{ 3, ',', 2002, "NLG ", "", 0, STR_CURR_NLG }, ///< dutch gulden
{ 12, '.', CF_NOEURO, "", " Kr", 1, STR_CURR_NOK }, ///< norwegian krone
{ 6, ' ', CF_NOEURO, "", " zl", 1, STR_CURR_PLN }, ///< polish zloty
{ 5, '.', CF_NOEURO, "", " Lei", 1, STR_CURR_ROL }, ///< romanian Lei
{ 5, '.', CF_NOEURO, "", " Lei", 1, STR_CURR_RON }, ///< romanian Lei
{ 50, ' ', CF_NOEURO, "", " p", 1, STR_CURR_RUR }, ///< russian rouble
{ 352, '.', 2007, "", " SIT", 1, STR_CURR_SIT }, ///< slovenian tolar
{ 13, '.', CF_NOEURO, "", " Kr", 1, STR_CURR_SEK }, ///< swedish krona
@@ -76,7 +76,7 @@ enum {
CURR_NLG,
CURR_NOK,
CURR_PLN,
CURR_ROL,
CURR_RON,
CURR_RUR,
CURR_SIT,
CURR_SEK,

View File

@@ -92,15 +92,13 @@ static void debug_print(const char *dbg, const char *buf)
}
}
void CDECL debug(const char *dbg, ...)
void CDECL debug(const char *dbg, const char *format, ...)
{
va_list va;
va_start(va, dbg);
const char *s;
char buf[1024];
s = va_arg(va, const char*);
vsnprintf(buf, lengthof(buf), s, va);
va_list va;
va_start(va, format);
vsnprintf(buf, lengthof(buf), format, va);
va_end(va);
debug_print(dbg, buf);
@@ -149,7 +147,7 @@ void SetDebugString(const char *s)
if (p != NULL) {
*p = v;
} else {
ShowInfoF("Unknown debug level '%.*s'", s - t, t);
ShowInfoF("Unknown debug level '%.*s'", (int)(s - t), t);
return;
}
}

View File

@@ -50,19 +50,12 @@
extern int _debug_gamelog_level;
extern int _debug_desync_level;
void CDECL debug(const char *dbg, ...);
void CDECL debug(const char *dbg, const char *format, ...) WARN_FORMAT(2, 3);
#endif /* NO_DEBUG_MESSAGES */
void SetDebugString(const char *s);
const char *GetDebugString();
/* MSVCRT of course has to have a different syntax for long long *sigh* */
#if defined(_MSC_VER) || defined(__MINGW32__)
#define OTTD_PRINTF64 "I64"
#else
#define OTTD_PRINTF64 "ll"
#endif
/* Used for profiling
*
* Usage:
@@ -100,6 +93,6 @@ const char *GetDebugString();
}
void ShowInfo(const char *str);
void CDECL ShowInfoF(const char *str, ...);
void CDECL ShowInfoF(const char *str, ...) WARN_FORMAT(1, 2);
#endif /* DEBUG_H */

View File

@@ -363,7 +363,7 @@ FILE *FioFOpenFile(const char *filename, const char *mode, Subdirectory subdir,
char resolved_name[MAX_RESOLVED_LENGTH];
/* Filenames in tars are always forced to be lowercase */
strcpy(resolved_name, filename);
strecpy(resolved_name, filename, lastof(resolved_name));
strtolower(resolved_name);
size_t resolved_len = strlen(resolved_name);
@@ -376,9 +376,9 @@ FILE *FioFOpenFile(const char *filename, const char *mode, Subdirectory subdir,
/* Apply link */
char resolved_name2[MAX_RESOLVED_LENGTH];
const std::string &dest = link->second;
strcpy(resolved_name2, &(resolved_name[len]));
strcpy(resolved_name, dest.c_str());
strcpy(&(resolved_name[dest.length()]), resolved_name2);
strecpy(resolved_name2, &(resolved_name[len]), lastof(resolved_name2));
strecpy(resolved_name, dest.c_str(), lastof(resolved_name));
strecpy(&(resolved_name[dest.length()]), resolved_name2, lastof(resolved_name));
break; // Only resolve one level
}
}
@@ -595,7 +595,7 @@ bool TarListAddFile(const char *filename)
/* Calculate the size of the file.. for some strange reason this is stored as a string */
memcpy(buf, th.size, sizeof(th.size));
buf[sizeof(th.size)] = '\0';
int skip = strtol(buf, &end, 8);
size_t skip = strtoul(buf, &end, 8);
switch (th.typeflag) {
case '\0':
@@ -614,7 +614,7 @@ bool TarListAddFile(const char *filename)
/* Convert to lowercase and our PATHSEPCHAR */
SimplifyFileName(name);
DEBUG(misc, 6, "Found file in tar: %s (%d bytes, %d offset)", name, skip, pos);
DEBUG(misc, 6, "Found file in tar: %s (" PRINTF_SIZE " bytes, " PRINTF_SIZE " offset)", name, skip, pos);
if (_tar_filelist.insert(TarFileList::value_type(name, entry)).second) num++;
break;
@@ -640,7 +640,7 @@ bool TarListAddFile(const char *filename)
/* Process relative path.
* Note: The destination of links must not contain any directory-links. */
strcpy(dest, name);
strecpy(dest, name, lastof(dest));
char *destpos = strrchr(dest, PATHSEPCHAR);
if (destpos == NULL) destpos = dest;
*destpos = '\0';
@@ -702,7 +702,7 @@ bool TarListAddFile(const char *filename)
pos += skip;
}
DEBUG(misc, 1, "Found tar '%s' with %d new files", filename, num);
DEBUG(misc, 1, "Found tar '%s' with " PRINTF_SIZE " new files", filename, num);
fclose(f);
/* Resolve file links and store directory links.

View File

@@ -8,6 +8,7 @@
#include "openttd.h"
#include "fios.h"
#include "fileio_func.h"
#include "tar_type.h"
#include "string_func.h"
#include <sys/stat.h>
@@ -469,7 +470,31 @@ static FiosType FiosGetHeightmapListCallback(SaveLoadDialogMode mode, const char
if (strcasecmp(ext, ".bmp") == 0) type = FIOS_TYPE_BMP;
if (type != FIOS_TYPE_INVALID) GetFileTitle(file, title, last);
if (type == FIOS_TYPE_INVALID) return FIOS_TYPE_INVALID;
TarFileList::iterator it = _tar_filelist.find(file);
if (it != _tar_filelist.end()) {
/* If the file is in a tar and that tar is not in a heightmap
* directory we are for sure not supposed to see it.
* Examples of this are pngs part of documentation within
* collections of NewGRFs or 32 bpp graphics replacement PNGs.
*/
bool match = false;
Searchpath sp;
FOR_ALL_SEARCHPATHS(sp) {
char buf[MAX_PATH];
FioAppendDirectory(buf, sizeof(buf), sp, HEIGHTMAP_DIR);
if (strncmp(buf, it->second.tar_filename, strlen(buf)) == 0) {
match = true;
break;
}
}
if (!match) return FIOS_TYPE_INVALID;
}
GetFileTitle(file, title, last);
return type;
}

View File

@@ -85,6 +85,8 @@ enum {
static int _dbgofs = 0; ///< offset in current output buffer
static void AddDebugText(char *buf, const char *s, ...) WARN_FORMAT(2, 3);
static void AddDebugText(char *buf, const char *s, ...)
{
if (GAMELOG_BUF_LEN <= _dbgofs) return;
@@ -135,6 +137,7 @@ static const char *la_text[] = {
"cheat was used",
"settings changed",
"GRF bug triggered",
"emergency savegame",
};
assert_compile(lengthof(la_text) == GLAT_END);
@@ -249,6 +252,9 @@ void GamelogPrint(GamelogPrintProc *proc)
PrintGrfFilename(buf, lc->grfbug.grfid);
break;
}
case GLCT_EMERGENCY:
break;
}
proc(buf);
@@ -273,7 +279,7 @@ static int _gamelog_print_level = 0; ///< gamelog debug level we need to print s
static void GamelogPrintDebugProc(const char *s)
{
DEBUG(gamelog, _gamelog_print_level, s);
DEBUG(gamelog, _gamelog_print_level, "%s", s);
}
@@ -317,6 +323,31 @@ static LoggedChange *GamelogChange(GamelogChangeType ct)
}
/** Logs a emergency savegame
*/
void GamelogEmergency()
{
assert(_gamelog_action_type == GLAT_EMERGENCY);
GamelogChange(GLCT_EMERGENCY);
}
/** Finds out if current game is a loaded emergency savegame.
*/
bool GamelogTestEmergency()
{
const LoggedChange *emergency = NULL;
const LoggedAction *laend = &_gamelog_action[_gamelog_actions];
for (const LoggedAction *la = _gamelog_action; la != laend; la++) {
const LoggedChange *lcend = &la->change[la->changes];
for (const LoggedChange *lc = la->change; lc != lcend; lc++) {
if (lc->ct == GLCT_EMERGENCY) emergency = lc;
}
}
return (emergency != NULL);
}
/** Logs a change in game revision
* @param revision new revision string
*/

View File

@@ -14,6 +14,7 @@ enum GamelogActionType {
GLAT_CHEAT, ///< Cheat was used
GLAT_SETTING, ///< Setting changed
GLAT_GRFBUG, ///< GRF bug was triggered
GLAT_EMERGENCY, ///< Emergency savegame
GLAT_END, ///< So we know how many GLATs are there
GLAT_NONE = 0xFF, ///< No logging active; in savegames, end of list
};
@@ -29,6 +30,9 @@ void GamelogPrint(GamelogPrintProc *proc); // needed for WIN32 / WINCE crash.log
void GamelogPrintDebug(int level);
void GamelogPrintConsole();
void GamelogEmergency();
bool GamelogTestEmergency();
void GamelogRevision();
void GamelogMode();
void GamelogOldver();

View File

@@ -19,6 +19,7 @@ enum GamelogChangeType {
GLCT_GRFPARAM, ///< GRF parameter changed
GLCT_GRFMOVE, ///< GRF order changed
GLCT_GRFBUG, ///< GRF bug triggered
GLCT_EMERGENCY, ///< Emergency savegame
GLCT_END, ///< So we know how many GLCTs are there
GLCT_NONE = 0xFF, ///< In savegames, end of list
};

View File

@@ -47,32 +47,10 @@ void InitializeGame(uint size_x, uint size_y, bool reset_date);
* in the genworld.h and genworld.c! -- TrueLight */
gw_info _gw;
/**
* Set the status of the Paint flag.
* If it is true, the thread will hold with any futher generating till
* the drawing of the screen is done. This is handled by
* SetGeneratingWorldProgress(), so calling that function will stall
* from time to time.
*/
void SetGeneratingWorldPaintStatus(bool status)
{
_gw.wait_for_draw = status;
}
/**
* Returns true if the thread wants the main program to do a (full) paint.
* If this returns false, please do not update the screen. Because we are
* writing in a thread, it can cause damaged data (reading and writing the
* same tile at the same time).
*/
bool IsGeneratingWorldReadyForPaint()
{
/* If we are in quit_thread mode, ignore this and always return false. This
* forces the screen to not be drawn, and the GUI not to wait for a draw. */
if (!_gw.active || _gw.quit_thread || !_gw.threaded) return false;
return _gw.wait_for_draw;
}
/** Rights for the map generation */
ThreadMutex *_genworld_mapgen_mutex = ThreadMutex::New();
/** Rights for the painting */
ThreadMutex *_genworld_paint_mutex = ThreadMutex::New();
/**
* Tells if the world generation is done in a thread or not.
@@ -100,6 +78,7 @@ static void CleanupGeneration()
DeleteWindowById(WC_GENERATE_PROGRESS_WINDOW, 0);
MarkWholeScreenDirty();
_genworld_mapgen_mutex->EndCritical();
}
/**
@@ -109,6 +88,7 @@ static void _GenerateWorld(void *arg)
{
try {
_generating_world = true;
_genworld_mapgen_mutex->BeginCritical();
if (_network_dedicated) DEBUG(net, 0, "Generating map, please wait...");
/* Set the Random() seed to generation_seed so we produce the same map with the same seed */
if (_settings_game.game_creation.generation_seed == GENERATE_NEW_SEED) _settings_game.game_creation.generation_seed = _settings_newgame.game_creation.generation_seed = InteractiveRandom();
@@ -194,6 +174,7 @@ static void _GenerateWorld(void *arg)
}
} catch (...) {
_generating_world = false;
_genworld_mapgen_mutex->EndCritical();
throw;
}
}
@@ -223,11 +204,16 @@ void GenerateWorldSetAbortCallback(gw_abort_proc *proc)
void WaitTillGeneratedWorld()
{
if (_gw.thread == NULL) return;
_genworld_mapgen_mutex->EndCritical();
_genworld_paint_mutex->EndCritical();
_gw.quit_thread = true;
_gw.thread->Join();
delete _gw.thread;
_gw.thread = NULL;
_gw.threaded = false;
_genworld_mapgen_mutex->BeginCritical();
_genworld_paint_mutex->BeginCritical();
}
/**
@@ -280,7 +266,6 @@ void GenerateWorld(GenerateWorldMode mode, uint size_x, uint size_y)
_gw.abort = false;
_gw.abortp = NULL;
_gw.lc = _local_company;
_gw.wait_for_draw = false;
_gw.quit_thread = false;
_gw.threaded = true;
@@ -315,7 +300,9 @@ void GenerateWorld(GenerateWorldMode mode, uint size_x, uint size_y)
!ThreadObject::New(&_GenerateWorld, NULL, &_gw.thread)) {
DEBUG(misc, 1, "Cannot create genworld thread, reverting to single-threaded mode");
_gw.threaded = false;
_genworld_mapgen_mutex->EndCritical();
_GenerateWorld(NULL);
_genworld_mapgen_mutex->BeginCritical();
return;
}

View File

@@ -16,6 +16,8 @@ enum {
LG_TERRAGENESIS = 1, ///< TerraGenesis Perlin landscape generator
GENERATE_NEW_SEED = UINT_MAX, ///< Create a new random seed
GENWORLD_REDRAW_TIMEOUT = 200, ///< Timeout between redraws
};
/* Modes for GenerateWorld */
@@ -32,7 +34,6 @@ typedef void gw_abort_proc();
struct gw_info {
bool active; ///< Is generating world active
bool abort; ///< Whether to abort the thread ASAP
bool wait_for_draw; ///< Are we waiting on a draw event
bool quit_thread; ///< Do we want to quit the active thread
bool threaded; ///< Whether we run _GenerateWorld threaded
GenerateWorldMode mode;///< What mode are we making a world in
@@ -69,8 +70,6 @@ static inline bool IsGeneratingWorld()
}
/* genworld.cpp */
void SetGeneratingWorldPaintStatus(bool status);
bool IsGeneratingWorldReadyForPaint();
bool IsGenerateWorldThreaded();
void GenerateWorldSetCallback(gw_done_proc *proc);
void GenerateWorldSetAbortCallback(gw_abort_proc *proc);
@@ -89,4 +88,7 @@ void StartNewGameWithoutGUI(uint seed);
void ShowCreateScenario();
void StartScenarioEditor();
extern class ThreadMutex *_genworld_mapgen_mutex;
extern class ThreadMutex *_genworld_paint_mutex;
#endif /* GENWORLD_H */

View File

@@ -26,6 +26,7 @@
#include "landscape_type.h"
#include "querystring_gui.h"
#include "town.h"
#include "thread.h"
#include "table/strings.h"
#include "table/sprites.h"
@@ -1037,8 +1038,8 @@ static void _SetGeneratingWorldProgress(gwp_class cls, uint progress, uint total
_tp.percent = percent_table[cls];
}
/* Don't update the screen too often. So update it once in every 200ms */
if (!_network_dedicated && _tp.timer != 0 && _realtime_tick - _tp.timer < 200) return;
/* Don't update the screen too often. So update it once in every once in a while... */
if (!_network_dedicated && _tp.timer != 0 && _realtime_tick - _tp.timer < GENWORLD_REDRAW_TIMEOUT) return;
/* 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;
@@ -1064,12 +1065,15 @@ static void _SetGeneratingWorldProgress(gwp_class cls, uint progress, uint total
InvalidateWindow(WC_GENERATE_PROGRESS_WINDOW, 0);
MarkWholeScreenDirty();
SetGeneratingWorldPaintStatus(true);
/* We wait here till the paint is done, so we don't read and write
* on the same tile at the same moment. Nasty hack, but that happens
* if you implement threading afterwards */
while (IsGeneratingWorldReadyForPaint()) { CSleep(10); }
/* Release the rights to the map generator, and acquire the rights to the
* paint thread. The 'other' thread already has the paint thread rights so
* this ensures us that we are waiting until the paint thread is done
* before we reacquire the mapgen rights */
_genworld_mapgen_mutex->EndCritical();
_genworld_paint_mutex->BeginCritical();
_genworld_mapgen_mutex->BeginCritical();
_genworld_paint_mutex->EndCritical();
_tp.timer = _realtime_tick;
}

View File

@@ -18,6 +18,7 @@
#include "core/sort_func.hpp"
#include "landscape_type.h"
#include "network/network_func.h"
#include "thread.h"
#include "table/palettes.h"
#include "table/sprites.h"
@@ -1392,7 +1393,18 @@ void DrawDirtyBlocks()
int x;
int y;
if (IsGeneratingWorld() && !IsGeneratingWorldReadyForPaint()) return;
if (IsGeneratingWorld()) {
/* We are generating the world, so release our rights to the map and
* painting while we are waiting a bit. */
_genworld_paint_mutex->EndCritical();
_genworld_mapgen_mutex->EndCritical();
/* Wait a while and update _realtime_tick so we are given the rights */
CSleep(GENWORLD_REDRAW_TIMEOUT);
_realtime_tick += GENWORLD_REDRAW_TIMEOUT;
_genworld_paint_mutex->BeginCritical();
_genworld_mapgen_mutex->BeginCritical();
}
y = 0;
do {
@@ -1460,12 +1472,6 @@ void DrawDirtyBlocks()
_invalid_rect.top = h;
_invalid_rect.right = 0;
_invalid_rect.bottom = 0;
/* If we are generating a world, and waiting for a paint run, mark it here
* as done painting, so we can continue generating. */
if (IsGeneratingWorld() && IsGeneratingWorldReadyForPaint()) {
SetGeneratingWorldPaintStatus(false);
}
}
/*!

View File

@@ -250,7 +250,7 @@ void CheckExternalFiles()
add_pos += seprintf(add_pos, last, "Your 'sample.cat' file is corrupted or missing! You can find 'sample.cat' on your Transport Tycoon Deluxe CD-ROM.\n");
}
if (add_pos != error_msg) ShowInfoF(error_msg);
if (add_pos != error_msg) ShowInfoF("%s", error_msg);
}

View File

@@ -554,7 +554,7 @@ static const Widget _performance_history_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, COLOUR_GREY, 11, 475, 0, 13, STR_7051_COMPANY_PERFORMANCE_RATINGS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 526, 575, 0, 13, STR_704C_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
{ WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 476, 525, 0, 13, STR_PERFORMANCE_DETAIL_KEY, STR_704D_SHOW_KEY_TO_GRAPHS},
{ WWT_PUSHTXTBTN, RESIZE_NONE, COLOUR_GREY, 476, 525, 0, 13, STR_PERFORMANCE_DETAIL_KEY, STR_SHOW_DETAILED_PERFORMANCE_RATINGS},
{ WWT_PANEL, RESIZE_NONE, COLOUR_GREY, 0, 575, 14, 237, 0x0, STR_NULL},
{ WIDGETS_END},
};

View File

@@ -1872,6 +1872,9 @@ static void MaybeNewIndustry(void)
}
}
/* Abort if there is no industry buildable */
if (probability_max == 0) return;
/* Find a random type, with maximum being what has been evaluate above*/
rndtype = RandomRange(probability_max);
for (j = 0; j < NUM_INDUSTRYTYPES; j++) {
@@ -2211,8 +2214,9 @@ static void ChangeIndustryProduction(Industry *i, bool monthly)
/* Recalculate production_rate
* For non-smooth economy these should always be synchronized with prod_level */
if (recalculate_multipliers) {
i->production_rate[0] = min(indspec->production_rate[0] * i->prod_level / PRODLEVEL_DEFAULT, 0xFF);
i->production_rate[1] = min(indspec->production_rate[1] * i->prod_level / PRODLEVEL_DEFAULT, 0xFF);
/* Rates are rounded up, so e.g. oilrig always produces some passengers */
i->production_rate[0] = min((indspec->production_rate[0] * i->prod_level + PRODLEVEL_DEFAULT - 1) / PRODLEVEL_DEFAULT, 0xFF);
i->production_rate[1] = min((indspec->production_rate[1] * i->prod_level + PRODLEVEL_DEFAULT - 1) / PRODLEVEL_DEFAULT, 0xFF);
}
/* Close if needed and allowed */

View File

@@ -815,8 +815,6 @@ static void GenerateTerrain(int type, uint flag)
} while (--w != 0);
break;
}
FixSlopes();
}
@@ -930,6 +928,7 @@ void GenerateLandscape(byte mode)
}
}
FixSlopes();
ConvertGroundTilesIntoWaterTiles();
if (_settings_game.game_creation.landscape == LT_TROPIC) CreateDesertOrRainForest();

View File

@@ -657,7 +657,6 @@ STR_FULL :Vol
STR_02BA :{SILVER}- - {COMPANY} - -
STR_02BB_TOWN_DIRECTORY :Dorp gids
STR_02BD :{BLACK}{STRING}
STR_02BF_CUSTOM :Bestelling
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
@@ -774,7 +773,7 @@ STR_TOWNNAME_SWEDISH :Sweeds
STR_TOWNNAME_DUTCH :Hollands
STR_TOWNNAME_FINNISH :Finnish
STR_TOWNNAME_POLISH :Polish
STR_TOWNNAME_SLOVAKISH :Slovakish
STR_TOWNNAME_SLOVAK :Slovak
STR_TOWNNAME_NORWEGIAN :Norwegian
STR_TOWNNAME_HUNGARIAN :Hungarian
STR_TOWNNAME_AUSTRIAN :Austrian
@@ -807,7 +806,7 @@ STR_CURR_ITL :Italian Lira (I
STR_CURR_NLG :Dutch Guilder (NLG)
STR_CURR_NOK :Norwegian Krone (NOK)
STR_CURR_PLN :Polish Zloty (PLN)
STR_CURR_ROL :Romanian Leu (ROL)
STR_CURR_RON :Romanian Leu (RON)
STR_CURR_RUR :Russian Rubles (RUR)
STR_CURR_SIT :Slovenian Tolar (SIT)
STR_CURR_SEK :Swedish Krona (SEK)
@@ -1640,6 +1639,7 @@ STR_200B_CENTER_THE_MAIN_VIEW_ON :{BLACK}Senter s
STR_200C_CHANGE_TOWN_NAME :{BLACK}Verander dorp naam
STR_200D_PASSENGERS_LAST_MONTH_MAX :{BLACK}Passasiers verlede maand: {ORANGE}{COMMA}{BLACK} maks: {ORANGE}{COMMA}
STR_200E_MAIL_LAST_MONTH_MAX :{BLACK}Pos verlede maand: {ORANGE}{COMMA}{BLACK} maks: {ORANGE}{COMMA}
STR_CARGO_FOR_TOWNGROWTH_LAST_MONTH :{SETX 20}{ORANGE}{CARGO}{BLACK} gelewer laas maand
STR_200F_TALL_OFFICE_BLOCK :Hoog kantoor blok
STR_2010_OFFICE_BLOCK :Kantoor blok
STR_2011_SMALL_BLOCK_OF_FLATS :Klein blok van woonstelle
@@ -1947,6 +1947,7 @@ STR_INDUSTRY_PROD_GODOWN :{BLACK}{BIGFONT
##id 0x5000
STR_5003_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Ander tonnel in die pad
STR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}Tonnel so op die einde van die kaart eindig
STR_5005_UNABLE_TO_EXCAVATE_LAND :{WHITE}Kan nie daal vir ander einde van tonnel te uitgrawe nie
STR_5006_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Moet eers tonnel afbreek
STR_5007_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Moet eers brug afbreek
@@ -2076,6 +2077,7 @@ STR_NUM_VERY_LOW :Baie laag
STR_6816_LOW :Laag
STR_6817_NORMAL :Normaal
STR_6818_HIGH :Hoog
STR_02BF_CUSTOM :Bestelling
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :Baie Stadig
@@ -2225,6 +2227,8 @@ STR_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Herbou m
STR_7071_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Maatskappy hoofkwartiers kan nie hier gebou word nie...
STR_7072_VIEW_HQ :{BLACK}Wys HK
STR_RELOCATE_HQ :{BLACK}Beweeg HQ
STR_COMPANY_JOIN :{BLACK}Bind
STR_COMPANY_JOIN_TIP :{BLACK}Bind en speel as maatskapy
STR_COMPANY_PASSWORD :{BLACK}Wagwoord
STR_COMPANY_PASSWORD_TOOLTIP :{BLACK}Wagwoord-beskerm jou maatskappy om onmagtig gebruikers te belet van verbinding
STR_SET_COMPANY_PASSWORD :{BLACK}Stel maatskappy wagwoord
@@ -3036,6 +3040,7 @@ STR_PERFORMANCE_DETAIL_LOAN_TIP :{BLACK}Die bedr
STR_PERFORMANCE_DETAIL_TOTAL_TIP :{BLACK}Totaale punte uit van moontlike punte
STR_NEWGRF_SETTINGS_BUTTON :{BLACK}NewGRF Stellings
STR_NEWGRF_SETTINGS_BUTTON_TIP :{BLACK}Wys NewGRF stellings
STR_NEWGRF_SETTINGS_CAPTION :{WHITE}NewGRF stellings
STR_NEWGRF_APPLY_CHANGES :{BLACK}Wend aan veranderings
STR_NEWGRF_TOGGLE_PALETTE :{BLACK}Tokkel pallet
@@ -3066,6 +3071,11 @@ STR_NEWGRF_ERROR_INVALID_ID :Pooging om onvo
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} het 'n korrupte "sprite". Alle korrupte "sprites" sal gewys word as 'n rooi vraag teken (?).
STR_NEWGRF_PRESET_LIST_TIP :{BLACK}Laai die gekose voorafstel
STR_NEWGRF_PRESET_SAVE :{BLACK}Stoor voorafstel
STR_NEWGRF_PRESET_SAVE_TIP :{BLACK}Stoor die huidige lys as 'n voorafstel
STR_NEWGRF_PRESET_SAVE_QUERY :{BLACK}Sleutel 'n naam vir die voorafstel in
STR_NEWGRF_PRESET_DELETE :{BLACK}Vee voorafstel uit
STR_NEWGRF_PRESET_DELETE_TIP :{BLACK}Vee die huidige gekose voorafstel uit
STR_NEWGRF_ADD :{BLACK}Voeg
STR_NEWGRF_ADD_TIP :{BLACK}Voeg 'n NewGRF na die lys
STR_NEWGRF_REMOVE :{BLACK}Verwyder
@@ -3233,6 +3243,7 @@ STR_RANDOM_HELP :{BLACK}Verander
STR_WORLD_GENERATION_CAPTION :{WHITE}Wêreld generasie
STR_RANDOM_SEED :{BLACK}Lukraak Saad:
STR_RANDOM_SEED_HELP :{BLACK}Kliek om 'n lukraak saad in te voeg
STR_RANDOM_SEED_OSKTITLE :{BLACK}Sleutel 'n lukraak saad in
STR_LAND_GENERATOR :{BLACK}Daal genereerder:
STR_TREE_PLACER :{BLACK}Boom algoritme:
STR_HEIGHTMAP_ROTATION :{BLACK}Hoogtekaart rotasie:
@@ -3280,12 +3291,15 @@ STR_SMALLMAP_CENTER :{BLACK}Senter d
STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRING} ({NUM})
# Strings for map borders at game generation
STR_BORDER_TYPE :{BLACK}Kaart kante:
STR_NORTHWEST :{BLACK}Noordwes
STR_NORTHEAST :{BLACK}Noordoos
STR_SOUTHEAST :{BLACK}Suidoos
STR_SOUTHWEST :{BLACK}Suidwes
STR_BORDER_FREEFORM :{BLACK}Vryeform
STR_BORDER_WATER :{BLACK}Water
STR_BORDER_RANDOM :{BLACK}Lukraak
STR_BORDER_RANDOMIZE :{BLACK}Lukraak
########### String for new airports
STR_SMALL_AIRPORT :{BLACK}Klein
@@ -3476,6 +3490,9 @@ STR_CONTENT_DETAIL_SUBTITLE_UNSELECTED :{SILVER}Jy het
STR_CONTENT_DETAIL_SUBTITLE_SELECTED :{SILVER}Jy het dit geselekeer om af te laai
STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}Jy het hierdie reeds
STR_JUST_DATE_TINY :{DATE_TINY}
STR_JUST_DATE_LONG :{DATE_LONG}
STR_JUST_DATE_ISO :{DATE_ISO}
########

View File

@@ -786,7 +786,7 @@ STR_TOWNNAME_SWEDISH :سويدي
STR_TOWNNAME_DUTCH :هولندي
STR_TOWNNAME_FINNISH :فنلندي
STR_TOWNNAME_POLISH :بلغاري
STR_TOWNNAME_SLOVAKISH :سلوفاكي
STR_TOWNNAME_SLOVAK :سلوفاكي
STR_TOWNNAME_NORWEGIAN :نرويجي
STR_TOWNNAME_HUNGARIAN :هنغاري
STR_TOWNNAME_AUSTRIAN :نمساوي
@@ -819,7 +819,7 @@ STR_CURR_ITL :ليرة ايط
STR_CURR_NLG :غلدر هولندي (NLG)
STR_CURR_NOK :كرونا نرويجية (NOK)
STR_CURR_PLN :زلوتي بولندي (PLN)
STR_CURR_ROL :لور يوناني (ROL)
STR_CURR_RON :لور يوناني (RON)
STR_CURR_RUR :روبل روسي (RUR)
STR_CURR_SIT :تولار سوفاني (SIT)
STR_CURR_SEK :كرونا سويدية (SEK)
@@ -2242,6 +2242,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}اختر
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}اختر وجة عشوائي
STR_704C_KEY :{BLACK}مفتاح
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}اظهار مفتاح الرسم البياني
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}عرض كامل تفاصيل الأداء
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}مفتاح الشركات في الرسم البياني
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}اضغط لعرض/اخفاء الشركة في الرسم
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}عدد الوحدات المنقولة
@@ -2803,7 +2804,7 @@ STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK} الت
STR_885C_BROKEN_DOWN :{RED} متعطل
STR_885D_AGE_RUNNING_COST_YR :{BLACK}العمر: {LTBLUE}{STRING}{BLACK} تكلفة التشغيل: {LTBLUE}{CURRENCY}/سنة
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK} الوزن: {LTBLUE}{WEIGHT_S} {BLACK} الطاقة: {LTBLUE}{POWER}{BLACK} السرعة القصوى: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK} الوزن: {LTBLUE}{WEIGHT_S} {BLACK} الطاقة: {LTBLUE}{POWER}{BLACK} السرعة القصوى: {LTBLUE}{VELOCITY} {BLACK} قدرة السحب القصوى: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK} الوزن {LTBLUE}{WEIGHT_S} {BLACK} القوة {LTBLUE}{POWER}{BLACK} السرعة القصوى {LTBLUE}{VELOCITY} {BLACK} قوة السحب القصوى {LTBLUE}{FORCE}
STR_885F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK} الدخل هذه السنة: {LTBLUE}{CURRENCY} (السنة السابقة{CURRENCY})
STR_8860_RELIABILITY_BREAKDOWNS :{BLACK}الصلاحية: {LTBLUE}{COMMA}% {BLACK} مرات التعطيل منذ الصيانة السابقة: {LTBLUE}{COMMA}
STR_8861_STOPPED :{RED} متوقف
@@ -3173,6 +3174,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE} قطا
STR_NEWGRF_BUGGY :{WHITE} الرسوميات الجديدة '{0:STRING}' تعطي معلومات غير صحيحة.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE} التكلفة \ السعة ل '{1:ENGINE}' تختلف ما بين قائمة الشراء و مابعد البناء. قد يتسبب هذا في فشل التبديل الذاتي.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' تسبب بدورة غير منتهية في نداء الانتاج
STR_LOADGAME_REMOVED_TRAMS :{WHITE}اللعبة حفظت بنسخة لا تدعم الترام. كل ما يتعلق بالترام حذف.
@@ -3243,6 +3245,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK} اعر
STR_REPLACE_REMOVE_WAGON :{BLACK} ازالة العربات: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK} المحافظة على طول القطار بازالة عربات ابتداء من المقدمة عند التبديل - عندما يكون التبدل ينتج قطارا اطول.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK} تبديل: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} بدل بين نافذة استبدال المحركات و العربات
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}العربة غير متاحة
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE} العربات غير متاحة
STR_SHIP_NOT_AVAILABLE :{WHITE} السفن غير متاحة

View File

@@ -786,7 +786,7 @@ STR_TOWNNAME_SWEDISH :Sueco
STR_TOWNNAME_DUTCH :Holandês
STR_TOWNNAME_FINNISH :Finlandês
STR_TOWNNAME_POLISH :Polaco
STR_TOWNNAME_SLOVAKISH :Eslovaco
STR_TOWNNAME_SLOVAK :Eslovaco
STR_TOWNNAME_NORWEGIAN :Noreguês
STR_TOWNNAME_HUNGARIAN :Húngaro
STR_TOWNNAME_AUSTRIAN :Austríaco
@@ -819,7 +819,7 @@ STR_CURR_ITL :Lira Italiana (
STR_CURR_NLG :Guilda Holandesa (NLG)
STR_CURR_NOK :Coroa Norueguesa (NOK)
STR_CURR_PLN :Zloty Polaco (PLN)
STR_CURR_ROL :Lei Romeno (ROL)
STR_CURR_RON :Lei Romeno (RON)
STR_CURR_RUR :Rublo Russo (RUR)
STR_CURR_SIT :Tolar Eslovênio (SIT)
STR_CURR_SEK :Coroa Sueca (SEK)
@@ -2242,6 +2242,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Rostos f
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Gerar novo rosto aleatoriamente
STR_704C_KEY :{BLACK}Legenda
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Exibir legenda dos gráficos
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Exibir avaliações de performance detalhadas
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Legendas dos gráficos da empresa
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Clique aqui para alternar exibir/ocultar empresas no gráfico
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Unidades de carga entregues
@@ -2803,7 +2804,7 @@ STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {
STR_885C_BROKEN_DOWN :{RED}Quebrado
STR_885D_AGE_RUNNING_COST_YR :{BLACK}Idade: {LTBLUE}{STRING}{BLACK} Custo de circulação: {LTBLUE}{CURRENCY}/ano
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_S} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Velocidade Máx.: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_S} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Velocidade: {LTBLUE}{VELOCITY} {BLACK}Manutenção.: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_S} {BLACK}Força: {LTBLUE}{POWER}{BLACK} Velocidade Max: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE}
STR_885F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Lucro anual: {LTBLUE}{CURRENCY} (último ano: {CURRENCY})
STR_8860_RELIABILITY_BREAKDOWNS :{BLACK}Confiabilidade: {LTBLUE}{COMMA}% {BLACK}Quebras desde a última manutenção: {LTBLUE}{COMMA}
STR_8861_STOPPED :{RED}Parado
@@ -3173,6 +3174,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Trem '{V
STR_NEWGRF_BUGGY :{WHITE}O NewGRF '{0:STRING}' retorna informação incorreta.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}A informação de adaptação para '{1:ENGINE}' difere da lista de compras após a construção. Isso pode causar erros na autosubstituição/autoadaptação.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' causou um loop infinito no callback da produção.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Jogo foi salvo numa versão sem suporte a bondes. Todos os bondes foram removidos.

View File

@@ -785,7 +785,7 @@ STR_TOWNNAME_SWEDISH :шведски
STR_TOWNNAME_DUTCH :холандски
STR_TOWNNAME_FINNISH :финландски
STR_TOWNNAME_POLISH :полски
STR_TOWNNAME_SLOVAKISH :словашки
STR_TOWNNAME_SLOVAK :словашки
STR_TOWNNAME_NORWEGIAN :норвежки
STR_TOWNNAME_HUNGARIAN :унгарски
STR_TOWNNAME_AUSTRIAN :австрийски
@@ -818,7 +818,7 @@ STR_CURR_ITL :италиан
STR_CURR_NLG :холандски гулден (NLG)
STR_CURR_NOK :норвежка крона (NOK)
STR_CURR_PLN :полска злота (PLN)
STR_CURR_ROL :румънска лея (ROL)
STR_CURR_RON :румънска лея (RON)
STR_CURR_RUR :руска рубла (RUR)
STR_CURR_SIT :словенски толар (SIT)
STR_CURR_SEK :шведска крона (SEK)
@@ -1109,6 +1109,7 @@ STR_CONFIG_SETTING_AI :{ORANGE}Съп
STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Покажи опциите
STR_CONFIG_SETTING_INTERACTION :{ORANGE}Взаимодействие
STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Сигнали
STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Обработката на товари
STR_CONFIG_SETTING_AI_NPC :{ORANGE}Компютърни играчи
STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Маршрутизация
STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Влакове
@@ -3567,8 +3568,21 @@ STR_CONTENT_TYPE_CAPTION :{BLACK}Вид
STR_CONTENT_TYPE_CAPTION_TIP :{BLACK}Вид на съдържанието
STR_CONTENT_NAME_CAPTION :{BLACK}Име
STR_CONTENT_NAME_CAPTION_TIP :{BLACK}Име на съдържанието
STR_CONTENT_MATRIX_TIP :{BLACK}Кликни върху линията за да видиш детайлите{}Сложи отметка за да избереш за сваляне
STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Избери всички
STR_CONTENT_SELECT_ALL_CAPTION_TIP :{BLACK}Избери всичко за сваляне
STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Избери обновявания
STR_CONTENT_SELECT_UPDATES_CAPTION_TIP :{BLACK}Избери всичко, което ще обновнови вече инстралирани компоненти
STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Премахнете всички
STR_CONTENT_UNSELECT_ALL_CAPTION_TIP :{BLACK}Размаркирай всичко
STR_CONTENT_FILTER_OSKTITLE :{BLACK}Въведете филтър
STR_CONTENT_FILTER_TIP :{BLACK}Въведете ключова дума за филтър на списъка
STR_CONTENT_FILTER_TITLE :{BLACK}Филтър по таг/име:
STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Сваляне
STR_CONTENT_DOWNLOAD_CAPTION_TIP :{BLACK}Започни свалянето на избраните модули
STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{SILVER}Общо за сваляне: {WHITE}{BYTES}
STR_CONTENT_DETAIL_TITLE :{SILVER}ИНФОРМАЦИЯ
STR_CONTENT_DETAIL_SUBTITLE_UNSELECTED :{SILVER}Не сте избрали този модул за сваляне
STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}Вие вече имате това
STR_CONTENT_DETAIL_UPDATE :{SILVER}Това е подмяна на съществуващ {STRING}
STR_CONTENT_DETAIL_NAME :{SILVER}Име: {WHITE}{STRING}

View File

@@ -785,7 +785,7 @@ STR_TOWNNAME_SWEDISH :Suec
STR_TOWNNAME_DUTCH :Holandès
STR_TOWNNAME_FINNISH :Finès
STR_TOWNNAME_POLISH :Polonès
STR_TOWNNAME_SLOVAKISH :Eslovac
STR_TOWNNAME_SLOVAK :Eslovac
STR_TOWNNAME_NORWEGIAN :Noruec
STR_TOWNNAME_HUNGARIAN :Hongarès
STR_TOWNNAME_AUSTRIAN :Austríac
@@ -818,7 +818,7 @@ STR_CURR_ITL :Lires Italianes
STR_CURR_NLG :Florins Holandesos (NLG)
STR_CURR_NOK :Corones Noruegues (NOK)
STR_CURR_PLN :Zloty Polonès (PLN)
STR_CURR_ROL :Leu Romanès (ROL)
STR_CURR_RON :Leu Romanès (RON)
STR_CURR_RUR :Rubles Russos (RUR)
STR_CURR_SIT :Tòlar Eslovè (SIT)
STR_CURR_SEK :Corones Sueques (SEK)
@@ -2241,6 +2241,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Seleccio
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Genera una nova cara aleatòria
STR_704C_KEY :{BLACK}Llegenda
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Mostra la llegenda als gràfics
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Mostra ratis de rendiment detallats
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Llegenda dels gràfics de la companyia
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Clica aquí per activar/desactivar l'entrada als gràfics de la companyia
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Unitats de càrrega entregada
@@ -2615,18 +2616,18 @@ STR_ORDER_GO_TO :Ves a
STR_ORDER_GO_NON_STOP_TO :Ves sense parar a
STR_ORDER_GO_VIA :Ves via
STR_ORDER_GO_NON_STOP_VIA :Ves sense parar via
STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Càrrega completa de qualsevol càrrega
STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Carrega del tot qualsevol càrrega
STR_ORDER_DROP_LOAD_IF_POSSIBLE :Carrega si està disponible
STR_ORDER_DROP_FULL_LOAD_ALL :Carrega del tot totes les càrregues
STR_ORDER_DROP_FULL_LOAD_ANY :Càrrega completa de qualsevol càrrega
STR_ORDER_DROP_FULL_LOAD_ANY :Carrega del tot qualsevol càrrega
STR_ORDER_DROP_NO_LOADING :No carreguis
STR_ORDER_TOGGLE_UNLOAD :{BLACK}Descarrega tot
STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Descarrega si s'accepta
STR_ORDER_DROP_UNLOAD :Descarrega tot
STR_ORDER_DROP_TRANSFER :Transfereix
STR_ORDER_DROP_NO_UNLOADING :No descarreguis
STR_ORDER_FULL_LOAD :(Càrrega completa)
STR_ORDER_FULL_LOAD_ANY :(Càrrega completa de qualsevol càrrega)
STR_ORDER_FULL_LOAD :(Carrega del tot)
STR_ORDER_FULL_LOAD_ANY :(Carrega del tot qualsevol càrrega)
STR_ORDER_NO_LOAD :(No carregar)
STR_ORDER_UNLOAD :(Descarrega i agafa la càrrega)
STR_ORDER_UNLOAD_FULL_LOAD :(Descarrega i espera carregar del tot)
@@ -2802,7 +2803,7 @@ STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {C
STR_885C_BROKEN_DOWN :{RED}Avariat
STR_885D_AGE_RUNNING_COST_YR :{BLACK}Edat: {LTBLUE}{STRING}{BLACK} Cost de Circulació: {LTBLUE}{CURRENCY}/any
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pes: {LTBLUE}{WEIGHT_S} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. Max.: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pes: {LTBLUE}{WEIGHT_S} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Velocitat Max.: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pes: {LTBLUE}{WEIGHT_S} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. Max: {LTBLUE}{VELOCITY} {BLACK}T.E. Max.: {LTBLUE}{FORCE}
STR_885F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Benefici enguany: {LTBLUE}{CURRENCY} (darrer any: {CURRENCY})
STR_8860_RELIABILITY_BREAKDOWNS :{BLACK}Rendibilitat: {LTBLUE}{COMMA}% {BLACK}Avaries des de l'últim manteniment: {LTBLUE}{COMMA}
STR_8861_STOPPED :{RED}Parat
@@ -3172,6 +3173,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}El tren
STR_NEWGRF_BUGGY :{WHITE}El NewGRF '{0:STRING}' està donant informació incorrecta.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}La informació de càrrega/remodelació per '{1:ENGINE}' no encaixa amb la llista de compres després de la construcció. Això podria causar un mal funcionament de autorenov/-substitueix.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' ha provocat un bucle infinit en la crida de producció.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}El joc s'ha desat en una versió sense suport de tramvies. Tots els tramvies s'han eliminat.

View File

@@ -850,7 +850,7 @@ STR_TOWNNAME_SWEDISH :Švedski
STR_TOWNNAME_DUTCH :Nizozemski
STR_TOWNNAME_FINNISH :Finski
STR_TOWNNAME_POLISH :Poljski
STR_TOWNNAME_SLOVAKISH :Slovački
STR_TOWNNAME_SLOVAK :Slovački
STR_TOWNNAME_NORWEGIAN :Norveški
STR_TOWNNAME_HUNGARIAN :Mađarski
STR_TOWNNAME_AUSTRIAN :Austrijski
@@ -883,7 +883,7 @@ STR_CURR_ITL :Talijanska lira
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_RON :Rumunjski lev (RON)
STR_CURR_RUR :Ruske rublje (RUR)
STR_CURR_SIT :Slovenski tolar (SIT)
STR_CURR_SEK :Švedska kruna (SEK)

View File

@@ -3,7 +3,7 @@
##isocode cs_CZ
##winlangid 0x0405
##grflangid 0x15
##plural 6
##plural 10
##case nom gen dat acc voc loc ins big small
##gender m f n
@@ -853,7 +853,7 @@ STR_TOWNNAME_SWEDISH :Švédská
STR_TOWNNAME_DUTCH :Holandská
STR_TOWNNAME_FINNISH :Finská
STR_TOWNNAME_POLISH :Polská
STR_TOWNNAME_SLOVAKISH :Slovenská
STR_TOWNNAME_SLOVAK :Slovenská
STR_TOWNNAME_NORWEGIAN :Norská
STR_TOWNNAME_HUNGARIAN :Maďarská
STR_TOWNNAME_AUSTRIAN :Rakouská
@@ -886,7 +886,7 @@ STR_CURR_ITL :Italská lira (
STR_CURR_NLG :Holandský gulden (NLG)
STR_CURR_NOK :Norská koruna (NOK)
STR_CURR_PLN :Polský zlotý (PLN)
STR_CURR_ROL :Rumunský lei (ROL)
STR_CURR_RON :Rumunský lei (RON)
STR_CURR_RUR :Ruský rubl (RUR)
STR_CURR_SIT :Slovinský tolar (SIT)
STR_CURR_SEK :Švédská koruna (SEK)
@@ -1022,9 +1022,9 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Toto nas
STR_CONFIG_SETTING_SMALL_AIRPORTS :{LTBLUE}Malá letiště se budou moci stále stavět: {ORANGE}{STRING}
STR_CONFIG_SETTING_WARN_LOST_TRAIN :{LTBLUE}Varovat, pokud vlak nenajde cestu: {ORANGE}{STRING}
STR_CONFIG_SETTING_ORDER_REVIEW :{LTBLUE}Obnovení příkazů vozidla: {ORANGE}{STRING}
STR_CONFIG_SETTING_ORDER_REVIEW :{LTBLUE}Kontrolovat příkazy vozidel: {ORANGE}{STRING}
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :ne
STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :ano, kromě zastavených vozidel (v depu)
STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :ano, kromě zastavených vozidel
STR_CONFIG_SETTING_ORDER_REVIEW_ON :ano, u všech vozidel
STR_CONFIG_SETTING_WARN_INCOME_LESS :{LTBLUE}Varovat, pokud vozidlo prodělává: {ORANGE}{STRING}
STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :{LTBLUE}Vozidlům se nikdy nezastaví výroba ('nezastarají'): {ORANGE}{STRING}
@@ -1211,8 +1211,8 @@ STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :původní {BLUE
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_NPF :NPF
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(nedoporučuje se)
STR_CONFIG_SETTING_MAP_X :{LTBLUE}Rozmer X mapy: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAP_Y :{LTBLUE}Rozmer Y mapy: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAP_X :{LTBLUE}Šířka mapy: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAP_Y :{LTBLUE}Výška mapy: {ORANGE}{STRING}
############ generic strings for settings
STR_CONFIG_SETTING_DISABLED :vypnuto
@@ -1553,7 +1553,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED_CONNECT_FAIL :Hra pozastavena
STR_NETWORK_CLIENT_LEAVING :odpojování
STR_NETWORK_CLIENT_JOINED :*** {STRING} jde hrát
STR_NETWORK_CLIENT_COMPANY_JOIN :*** {STRING} se přidává ke společnosti č. {2:NUM}
STR_NETWORK_CLIENT_COMPANY_SPECTATE :*** {STRING} má nové pozorovatele
STR_NETWORK_CLIENT_COMPANY_SPECTATE :*** {STRING} se stává pozorovatelem
STR_NETWORK_CLIENT_COMPANY_NEW :*** {STRING} zakládá novou společnost (č. {2:NUM})
STR_NETWORK_CLIENT_LEFT :*** {STRING} opouští hru ({2:STRING})
STR_NETWORK_NAME_CHANGE :*** {STRING} si mění jméno na {STRING}
@@ -2309,6 +2309,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Zvolit
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Vytvořit náhodnou novou tvář
STR_704C_KEY :{BLACK}Legenda
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Ukázat legendu ke grafům
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Zobrazit podrobné hodnocení výkonu
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Legenda ke grafům společností
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Klepni zde pro přepnuti zobrazení společnosti na grafu
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Doručeno jednotek zboží
@@ -3183,7 +3184,7 @@ STR_NEWGRF_FILENAME :{BLACK}Jméno s
STR_NEWGRF_PALETTE :{BLACK}Paleta: {SILVER}{STRING}
STR_NEWGRF_GRF_ID :{BLACK}ID GRF: {SILVER}{STRING}
STR_NEWGRF_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Právě se chystáš změnit nastavení grafik za běžící hry; může to shodit OpenTTD.{}Jsi si s tím opravdu jist/a?
STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Právě se chystáš změnit nastavení grafik za běžící hry; může to shodit OpenTTD.{}Jsi si tím opravdu jist(a)?
STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Varování: {SILVER}{STRING}
@@ -3246,6 +3247,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Vlak '{V
STR_NEWGRF_BUGGY :{WHITE}Grafika '{0:STRING}' poskytuje neplatné informace.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Informace o nákladu/možnosti přestavby pro '{1:ENGINE}' se po nákupu změnily. To může způsobit problémy při automatické výměně vozidel.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' způsobil(a) nekonečnou smyčku v callbacku produkce průmyslu.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Hra byla uložena ve verzi bez podpory tramvají. Všechny tramvaje se odstraní.

View File

@@ -416,8 +416,8 @@ STR_STICKY_BUTTON :{BLACK}Marker d
STR_RESIZE_BUTTON :{BLACK}Klik og træk for at ændre vinduets størrelse
STR_SAVELOAD_HOME_BUTTON :{BLACK}Klik her for at gå til det nuværende standard gemme/hente bibliotek
STR_018D_DEMOLISH_BUILDINGS_ETC :{BLACK}Nedriv bygninger osv. på et stykke land
STR_018E_LOWER_A_CORNER_OF_LAND :{BLACK}Sænk et hjørne af landet
STR_018F_RAISE_A_CORNER_OF_LAND :{BLACK}Hæv et hjørne af landet
STR_018E_LOWER_A_CORNER_OF_LAND :{BLACK}Sænk punkter i landskabet
STR_018F_RAISE_A_CORNER_OF_LAND :{BLACK}Hæv punkter i landskabet
STR_0190_SCROLL_BAR_SCROLLS_LIST :{BLACK}Scrollbar - scroller listen op/ned
STR_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Scroll bar - flytter listen mod venstre/højre
STR_0191_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Vis landskabskonturer på kortet
@@ -700,14 +700,14 @@ STR_02DA_ON :{BLACK}Til
STR_02DC_DISPLAY_SUBSIDIES :{BLACK}Vis tilskudsordninger
STR_02DD_SUBSIDIES :Tilskudsordninger
STR_02DE_MAP_OF_WORLD :Kort over verden
STR_EXTRA_VIEW_PORT :Flere lokalitetsvinduer
STR_EXTRA_VIEW_PORT :Nyt lokalitetsvindue
STR_SIGN_LIST :Liste over skilte
STR_02DF_TOWN_DIRECTORY :Byoversigt
STR_TOWN_POPULATION :{BLACK}Verdens befolkning: {COMMA}
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Lokalitetsvindue {COMMA}
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Gå til lokalitetsvindue
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Hent global
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Hent lokalitet fra global visning
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Hent fra lokalitetsvindue
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Sæt global
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Kopier lokaliteten af dette vindue til det globale vindue
STR_02E0_CURRENCY_UNITS :{BLACK}Valutaenhed
@@ -785,7 +785,7 @@ STR_TOWNNAME_SWEDISH :Svenske
STR_TOWNNAME_DUTCH :Hollandske
STR_TOWNNAME_FINNISH :Finske
STR_TOWNNAME_POLISH :Polske
STR_TOWNNAME_SLOVAKISH :Slovakiske
STR_TOWNNAME_SLOVAK :Slovakiske
STR_TOWNNAME_NORWEGIAN :Norske
STR_TOWNNAME_HUNGARIAN :Ungarske
STR_TOWNNAME_AUSTRIAN :Østrigske
@@ -818,7 +818,7 @@ STR_CURR_ITL :Italienske Lire
STR_CURR_NLG :Hollandske Guilder (NLG)
STR_CURR_NOK :Norske Kroner (NOK)
STR_CURR_PLN :Polske Zloty (PLN)
STR_CURR_ROL :Rumænske Lei (ROL)
STR_CURR_RON :Rumænske Lei (RON)
STR_CURR_RUR :Russiske Rubel (RUR)
STR_CURR_SIT :Slovenske Tolare (SIT)
STR_CURR_SEK :Svenske Kroner (SEK)
@@ -938,7 +938,7 @@ STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Vis sig
STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Vis finansvinduet i slutningen af året: {ORANGE}{STRING}
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :{LTBLUE}Nye ordrer er 'uden stop' som standard: {ORANGE}{STRING}
STR_CONFIG_SETTING_ROADVEH_QUEUE :{LTBLUE}Kødannelse af køretøjer (med kvanteeffekt): {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}Pannorer vindue når musen er ved kanten: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}Panorér vindue når musen er ved kanten: {ORANGE}{STRING}
STR_CONFIG_SETTING_BRIBE :{LTBLUE}Tillad bestikkelse af de lokale myndigheder: {ORANGE}{STRING}
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :{LTBLUE}Tillad køb af eksklusive transportrettigheder: {ORANGE}{STRING}
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Tillad at sende penge til andre firmaer: {ORANGE}{STRING}
@@ -2241,6 +2241,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Vælg kv
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Generer nyt tilfældigt ansigt
STR_704C_KEY :{BLACK}Nøgle
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Viser nøglen til grafen
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Vis detaljeret præstationsoversigt
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Nøgle til selskabsgraf
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Klik her for at vise/skjule selskabets graf
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Afleveret last
@@ -2615,19 +2616,19 @@ STR_ORDER_GO_TO :Gå til
STR_ORDER_GO_NON_STOP_TO :Gå uden stop til
STR_ORDER_GO_VIA :Gå via
STR_ORDER_GO_NON_STOP_VIA :Gå uden stop via
STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Fuld last af hvilken som helst type
STR_ORDER_DROP_LOAD_IF_POSSIBLE :Åbn hvis tilgængelig
STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Vilkårlig fuld last
STR_ORDER_DROP_LOAD_IF_POSSIBLE :Last hvis muligt
STR_ORDER_DROP_FULL_LOAD_ALL :Fuld last af alt gods
STR_ORDER_DROP_FULL_LOAD_ANY :Fuld last af hvilket som helst gods
STR_ORDER_DROP_NO_LOADING :Ingen lastning
STR_ORDER_DROP_FULL_LOAD_ANY :Fuld last vilkårligt gods
STR_ORDER_DROP_NO_LOADING :Ingen last
STR_ORDER_TOGGLE_UNLOAD :{BLACK}Los alt
STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Los hvis gods accepteres
STR_ORDER_DROP_UNLOAD :Aflæs alt
STR_ORDER_DROP_TRANSFER :Overfør
STR_ORDER_DROP_NO_UNLOADING :Ingen losning
STR_ORDER_FULL_LOAD :(Fuld last)
STR_ORDER_FULL_LOAD_ANY :(Fuld last af hvilket som helst gods)
STR_ORDER_NO_LOAD :(Ingen lastning)
STR_ORDER_FULL_LOAD_ANY :(Fuld last vilkårligt gods)
STR_ORDER_NO_LOAD :(Ingen last)
STR_ORDER_UNLOAD :(Los og medtag gods)
STR_ORDER_UNLOAD_FULL_LOAD :(Los og vent på fuld last)
STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Los og vent på fuld last af hvilket som helst gods)
@@ -2802,7 +2803,7 @@ STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Pris: {C
STR_885C_BROKEN_DOWN :{RED}Gået i stykker
STR_885D_AGE_RUNNING_COST_YR :{BLACK}Alder: {LTBLUE}{STRING}{BLACK} Driftsomkostninger: {LTBLUE}{CURRENCY}/år
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vægt: {LTBLUE}{WEIGHT_S} {BLACK}Styrke: {LTBLUE}{POWER}{BLACK} Maks. hastighed: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vægt: {LTBLUE}{WEIGHT_S} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks. hast.: {LTBLUE}{VELOCITY} {BLACK}Maks. t.k.: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vægt: {LTBLUE}{WEIGHT_S} {BLACK}Effekt: {LTBLUE}{POWER}{BLACK} Maks. hast.: {LTBLUE}{VELOCITY} {BLACK}Maks. trækkraft: {LTBLUE}{FORCE}
STR_885F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Afkast i år: {LTBLUE}{CURRENCY} (sidste år: {CURRENCY})
STR_8860_RELIABILITY_BREAKDOWNS :{BLACK}Pålidelighed {LTBLUE}{COMMA}% {BLACK}nedbrud siden sidste service: {LTBLUE}{COMMA}
STR_8861_STOPPED :{RED}Stoppet
@@ -3172,6 +3173,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Toget '{
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' indeholder forkert information.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Gods-/ombygningsinformation for '{1:ENGINE}' afviger fra indkøbslisten efter konstruktion. Dette kan medføre, at autofornyelse ikke fungerer korrekt.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' forårsagede en uendelig løkke i produktions-callback'en.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Spillet er gemt i en version uden sporveje. Alle sporveje er blevet fjernet.

View File

@@ -785,7 +785,7 @@ STR_TOWNNAME_SWEDISH :Zweeds
STR_TOWNNAME_DUTCH :Nederlands
STR_TOWNNAME_FINNISH :Fins
STR_TOWNNAME_POLISH :Pools
STR_TOWNNAME_SLOVAKISH :Slowaaks
STR_TOWNNAME_SLOVAK :Slowaaks
STR_TOWNNAME_NORWEGIAN :Noors
STR_TOWNNAME_HUNGARIAN :Hongaars
STR_TOWNNAME_AUSTRIAN :Oostenrijks
@@ -818,7 +818,7 @@ STR_CURR_ITL :Italiaanse Lier
STR_CURR_NLG :Nederlandse Gulden (NLG)
STR_CURR_NOK :Noorse Kronen (NOK)
STR_CURR_PLN :Poolse Zloty (PLN)
STR_CURR_ROL :Roemeense Leu (ROL)
STR_CURR_RON :Roemeense Leu (RON)
STR_CURR_RUR :Russische Rubel (RUR)
STR_CURR_SIT :Sloveense Tolar (SIT)
STR_CURR_SEK :Zweedse Kronen (SEK)
@@ -973,7 +973,7 @@ STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :{LTBLUE}Max afs
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :{LTBLUE}Sneeuwhoogte: {ORANGE}{STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :{LTBLUE}Ruwheid van het terrein (alleen Terra Genesis) : {ORANGE}{STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Erg vlak
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :vlak
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Vlak
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Ruig
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Erg ruig
STR_CONFIG_SETTING_TREE_PLACER :{LTBLUE}Boomplaatser algoritme: {ORANGE}{STRING}
@@ -2241,6 +2241,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Selectee
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Genereer willekeurig nieuw gezicht
STR_704C_KEY :{BLACK}Legenda
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Laat grafieklegenda zien
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Toon gedetaileerde prestatiewaarderingen
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Legenda voor bedrijfsgrafieken
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Klik hier om dit bedrijf weer te geven of te verbergen op de grafiek
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Eenheden van goederen afgeleverd
@@ -3172,6 +3173,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Trein '{
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}' geeft onjuiste informatie.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}vracht/ombouw informatie voor '{1:ENGINE}' wijkt af van aanschaflijst na het bouwen. Dit kan resulteren in problemen bij ombouwen door autovernieuw/-vervang
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' Een eindeloze loop gevonden in de productie-callback.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Spel was opgeslagen in een versie zonder tram ondersteuning. Alle trams zijn verwijderd.

View File

@@ -785,7 +785,7 @@ STR_TOWNNAME_SWEDISH :Swedish
STR_TOWNNAME_DUTCH :Dutch
STR_TOWNNAME_FINNISH :Finnish
STR_TOWNNAME_POLISH :Polish
STR_TOWNNAME_SLOVAKISH :Slovakish
STR_TOWNNAME_SLOVAK :Slovak
STR_TOWNNAME_NORWEGIAN :Norwegian
STR_TOWNNAME_HUNGARIAN :Hungarian
STR_TOWNNAME_AUSTRIAN :Austrian
@@ -818,7 +818,7 @@ STR_CURR_ITL :Italian Lira (I
STR_CURR_NLG :Dutch Guilder (NLG)
STR_CURR_NOK :Norwegian Krone (NOK)
STR_CURR_PLN :Polish Zloty (PLN)
STR_CURR_ROL :Romanian Leu (ROL)
STR_CURR_RON :Romanian Leu (RON)
STR_CURR_RUR :Russian Rubles (RUR)
STR_CURR_SIT :Slovenian Tolar (SIT)
STR_CURR_SEK :Swedish Krona (SEK)
@@ -2241,6 +2241,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Select f
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Generate random new face
STR_704C_KEY :{BLACK}Key
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Show key to graphs
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Show detailed performance ratings
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Key to company graphs
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Click here to toggle company's entry on graph on/off
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Units of cargo delivered
@@ -3172,6 +3173,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Train '{
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:RAW_STRING}' provides incorrect information.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Cargo/refit information for '{1:ENGINE}' differs from purchase list after construction. This might cause autorenew/-replace to fail refitting correctly.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' caused an endless loop in the production callback.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Game was saved in version without tram support. All trams have been removed.
@@ -3583,6 +3585,7 @@ STR_AI_RANDOM_AI :Random AI
STR_AI_SETTINGS_CAPTION :{WHITE}AI Parameters
STR_AI_AUTHOR :Author:
STR_AI_VERSION :Version:
STR_AI_URL :URL: {RAW_STRING}
STR_AI_PLEASE_REPORT_CRASH :{WHITE}One of the running AIs crashed. Please report this to the AI author with a screenshot of the AI Debug Window.
########

View File

@@ -785,7 +785,7 @@ STR_TOWNNAME_SWEDISH :Swedish
STR_TOWNNAME_DUTCH :Dutch
STR_TOWNNAME_FINNISH :Finnish
STR_TOWNNAME_POLISH :Polish
STR_TOWNNAME_SLOVAKISH :Slovakish
STR_TOWNNAME_SLOVAK :Slovak
STR_TOWNNAME_NORWEGIAN :Norwegian
STR_TOWNNAME_HUNGARIAN :Hungarian
STR_TOWNNAME_AUSTRIAN :Austrian
@@ -818,7 +818,7 @@ STR_CURR_ITL :Italian Lira (I
STR_CURR_NLG :Dutch Guilder (NLG)
STR_CURR_NOK :Norwegian Krone (NOK)
STR_CURR_PLN :Polish Zloty (PLN)
STR_CURR_ROL :Romanian Leu (ROL)
STR_CURR_RON :Romanian Leu (RON)
STR_CURR_RUR :Russian Rubel (RUR)
STR_CURR_SIT :Slovenian Tolar (SIT)
STR_CURR_SEK :Swedish Krona (SEK)
@@ -2241,6 +2241,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Select f
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Generate random new face
STR_704C_KEY :{BLACK}Key
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Show key to graphs
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Show detailed performance ratings
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Key to company graphs
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Click here to toggle company's entry on graph on/off
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Units of cargo delivered
@@ -3172,6 +3173,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Train '{
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' provides incorrect information.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Cargo/refit information for '{1:ENGINE}' differs from purchase list after construction. This might cause autorenew/-replace to fail refitting correctly.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' caused an endless loop in the production callback.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Game was saved in version without streetcar support. All streetcars have been removed.

View File

@@ -760,7 +760,7 @@ STR_TOWNNAME_SWEDISH :Svede
STR_TOWNNAME_DUTCH :Nederlande
STR_TOWNNAME_FINNISH :Finne
STR_TOWNNAME_POLISH :Pole
STR_TOWNNAME_SLOVAKISH :Slovake
STR_TOWNNAME_SLOVAK :Slovake
STR_TOWNNAME_NORWEGIAN :Norvege
STR_TOWNNAME_HUNGARIAN :Hungare
STR_TOWNNAME_AUSTRIAN :Aŭstrie
@@ -793,7 +793,7 @@ STR_CURR_ITL :Italaj Liroj (I
STR_CURR_NLG :Nederlandaj Guldenoj (NLG)
STR_CURR_NOK :Norvegaj Kronoj (NOK)
STR_CURR_PLN :Polaj Zlotoj (PLN)
STR_CURR_ROL :Rumanaj Leŭoj (ROL)
STR_CURR_RON :Rumanaj Leŭoj (RON)
STR_CURR_RUR :Rusaj Rubloj (RUR)
STR_CURR_SIT :Slovenaj Tolaroj (SIT)
STR_CURR_SEK :Svedaj Kronoj (SEK)

View File

@@ -369,7 +369,7 @@ STR_015C_SAVE_GAME :Salvesta mäng
STR_015D_LOAD_GAME :Laadi mäng
STR_015E_QUIT_GAME :Lahku mängust
STR_015F_QUIT :Välju
STR_ABANDON_GAME_QUERY :{YELLOW}Oled sa kindel, et tahad sellest mängust lahkuda?
STR_ABANDON_GAME_QUERY :{YELLOW}Kas te soovite lõpetada selle mängu?
STR_0161_QUIT_GAME :{WHITE}Mängust lahkumine
STR_SORT_ORDER_TIP :{BLACK}Sorteerimise järjekorra valimine (kahanev/kasvav)
STR_SORT_CRITERIA_TIP :{BLACK}Sorteerimistingimuse valimine
@@ -387,7 +387,7 @@ STR_SORT_BY_PROFIT_LAST_YEAR :Eelmise aasta k
STR_SORT_BY_PROFIT_THIS_YEAR :Selle aasta kasum
STR_SORT_BY_AGE :Vanus
STR_SORT_BY_RELIABILITY :Tehnoseisund
STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Kandevõime kokku veose tüübi kohta
STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Täielik kandevõime veoseliigi kohta
STR_SORT_BY_MAX_SPEED :Tippkiirus
STR_SORT_BY_MODEL :Mudel
STR_SORT_BY_VALUE :Väärtus
@@ -402,8 +402,8 @@ STR_ENGINE_SORT_POWER :Võimsus
STR_ENGINE_SORT_INTRO_DATE :Esitluskuupäev
STR_ENGINE_SORT_RUNNING_COST :Käituskulud
STR_ENGINE_SORT_POWER_VS_RUNNING_COST :Võimsus- ja käituskulud
STR_ENGINE_SORT_CARGO_CAPACITY :Kauba kandevõime
STR_NO_WAITING_CARGO :{BLACK}Kaupa pole ootamas
STR_ENGINE_SORT_CARGO_CAPACITY :Kandevõime
STR_NO_WAITING_CARGO :{BLACK}Veoseid pole ootamas
STR_SELECT_ALL_FACILITIES :{BLACK}Vali kõik tööstused
STR_SELECT_ALL_TYPES :{BLACK}Vali kõik kaubatüüpid (ka mitteoodatav kaup)
STR_AVAILABLE_TRAINS :{BLACK}Saadaval rongid
@@ -498,6 +498,7 @@ STR_01A2_IS_GETTING_VERY_OLD_AND :{WHITE}{VEHICLE
STR_01A3_LAND_AREA_INFORMATION :{WHITE}Maa-ala andmed
STR_01A4_COST_TO_CLEAR_N_A :{BLACK}Puhastustasu: {LTBLUE}N/A
STR_01A5_COST_TO_CLEAR :{BLACK}Puhastustasu: {RED}{CURRENCY}
STR_REVENUE_WHEN_CLEARED :{BLACK}Sissetulek puhastamisel: {LTBLUE}{CURRENCY}
STR_01A6_N_A :puudub
STR_01A7_OWNER :{BLACK}Omanik: {LTBLUE}{STRING}
STR_ROAD_OWNER :{BLACK}Maantee omanik: {LTBLUE}{STRING}
@@ -658,6 +659,7 @@ STR_CANNOT_GENERATE_TOWN :{WHITE}Ühtegi
STR_NO_SPACE_FOR_TOWN :{WHITE}...pole enam ruumi kaardil
STR_023B_INCREASE_SIZE_OF_TOWN :{BLACK}Linna suuruse suurendamine
STR_023C_EXPAND :{BLACK}Laienda
STR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Linn ei ehita teid. Teedeehituse lubamiseks Täpsemad seaded->Majandus->Linnad.
STR_023D_RANDOM_TOWN :{BLACK}Suvaline linn
STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION :{BLACK}Ehita linn suvalisse kohta
STR_0285_CAN_T_BUILD_HERE :{WHITE}{STRING} ei saa siia ehitada...
@@ -697,25 +699,26 @@ STR_02A2_MEDIUM :{BLACK}Keskmine
STR_02A3_LARGE :{BLACK}Suur
STR_SELECT_TOWN_SIZE_RANDOM :{BLACK}Suvaline
STR_FOUND_TOWN_CITY :{BLACK}Linn
STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK}Suuremad linnad kasvavad kiiremini kui väikesed{}Sõltuvalt seadetest on need ka alguses suuremad
STR_02A4_SELECT_TOWN_SIZE :{BLACK}Vali linna suurus
STR_02A5_TOWN_SIZE :{YELLOW}Linna suurus:
STR_TOWN_ROAD_LAYOUT :{YELLOW}Linna teedevõrgu kujundus
STR_SELECT_LAYOUT_ORIGINAL :{BLACK}Originaalne
STR_TOWN_ROAD_LAYOUT :{YELLOW}Aleviku teeplaneering
STR_SELECT_TOWN_ROAD_LAYOUT :{BLACK}Vali alevikus kasutatav teeplaneering
STR_SELECT_LAYOUT_ORIGINAL :{BLACK}Algne
STR_SELECT_LAYOUT_BETTER_ROADS :{BLACK}Paremad teed
STR_SELECT_LAYOUT_2X2_GRID :{BLACK}2x2 võrgustik
STR_SELECT_LAYOUT_3X3_GRID :{BLACK}3x3 võrgustik
STR_SELECT_LAYOUT_2X2_GRID :{BLACK}2x2 ruudustik
STR_SELECT_LAYOUT_3X3_GRID :{BLACK}3x3 ruudustik
STR_SELECT_LAYOUT_RANDOM :{BLACK}Suvaline
STR_02B6 :{STRING} - {STRING}
STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS :{BLACK}Näita viimast teadet
STR_OFF :Off
STR_OFF :Väljas
STR_SUMMARY :Lühike
STR_FULL :Täielik
STR_02BA :{SILVER}- - {COMPANY} - -
STR_02BB_TOWN_DIRECTORY :Linnanimistu
STR_02BD :{BLACK}{STRING}
STR_02BF_CUSTOM :Omatehtud
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
@@ -832,7 +835,7 @@ STR_TOWNNAME_SWEDISH :Rootsi
STR_TOWNNAME_DUTCH :Hollandi
STR_TOWNNAME_FINNISH :Soome
STR_TOWNNAME_POLISH :Poola
STR_TOWNNAME_SLOVAKISH :Slovakkia
STR_TOWNNAME_SLOVAK :Slovakkia
STR_TOWNNAME_NORWEGIAN :Norra
STR_TOWNNAME_HUNGARIAN :Ungari
STR_TOWNNAME_AUSTRIAN :Austria
@@ -865,7 +868,7 @@ STR_CURR_ITL :Itaalia liir (I
STR_CURR_NLG :Hollandi kulden (NLG)
STR_CURR_NOK :Norra kroon (NOK)
STR_CURR_PLN :Poola Zlott (PLN)
STR_CURR_ROL :Rumeenia Leu (ROL)
STR_CURR_RON :Rumeenia Leu (RON)
STR_CURR_RUR :Vene rubla (RUR)
STR_CURR_SIT :Sloveenia Talaar (SIT)
STR_CURR_SEK :Rootsi kroon (SEK)
@@ -892,8 +895,10 @@ STR_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Ekraanip
STR_OPTIONS_SCREENSHOT_FORMAT_CBO :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
STR_OPTIONS_SCREENSHOT_FORMAT_TIP :{BLACK}Vali kasutatav ekraanipildi vorming
STR_OPTIONS_BASE_GRF :{BLACK}Põhigraafikakomplekt
STR_OPTIONS_BASE_GRF_CBO :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
STR_OPTIONS_BASE_GRF_TIP :{BLACK}Valige kasutatav põhigraafikakomplekt
STR_AUTOSAVE_1_MONTH :Iga kuu
STR_AUTOSAVE_FAILED :{WHITE}Automaatne salvestus nurjus
@@ -912,8 +917,8 @@ STR_MONTH_DEC :Detsember
STR_HEADING_FOR_STATION :{LTBLUE}Siht: {STATION}
STR_HEADING_FOR_STATION_VEL :{LTBLUE}Siht: {STATION}, {VELOCITY}
STR_NO_ORDERS :{LTBLUE}Sihtpunkt puudub
STR_NO_ORDERS_VEL :{LTBLUE}Sihtpunkt puudub, {VELOCITY}
STR_NO_ORDERS :{LTBLUE}Sihita
STR_NO_ORDERS_VEL :{LTBLUE}Sihita, {VELOCITY}
STR_PASSENGERS :reisijad
STR_BAGS :kotti
@@ -946,63 +951,67 @@ STR_CONFIG_SETTING_CAPTION :{WHITE}Täpsema
STR_CONFIG_SETTING_OFF :Väljas
STR_CONFIG_SETTING_ON :Sees
STR_CONFIG_SETTING_VEHICLESPEED :{LTBLUE}Olekuribal näidatakse veovahendi kiirust: {ORANGE}{STRING}
STR_CONFIG_SETTING_BUILDONSLOPES :{LTBLUE}Luba ehitised nõlvadele ja kallastele: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Võimalda maastikujunduse teostust majade, rööbaste jms. all (autoslope): {ORANGE}{STRING}
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}Võimalda reaalsemaid veekogu alasid: {ORANGE}{STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}Luba linnateede, -sildade, -tunnelite jne lammutamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAMMOTHTRAINS :{LTBLUE}Lubatakse väga pikkasid ronge ehitatada: {ORANGE}{STRING}
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_ORIGINAL :Originaalne
STR_CONFIG_SETTING_VEHICLESPEED :{LTBLUE}Sõidukiirus olekuribal: {ORANGE}{STRING}
STR_CONFIG_SETTING_BUILDONSLOPES :{LTBLUE}Nõlvadele ja kallastele ehitamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Maastikukujundus majade, rööbaste jms. all (autoslope): {ORANGE}{STRING}
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}Reaalsemad veekogud: {ORANGE}{STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}Linnateede, -sildade, -tunnelite jne lammutamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAMMOTHTRAINS :{LTBLUE}Väga pikkade rongide ehitamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :{LTBLUE}Rongide kiirendusmudel: {ORANGE}{STRING}
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_ORIGINAL :Algupärane
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_REALISTIC :Realistlik
STR_CONFIG_SETTING_FORBID_90_DEG :{LTBLUE}Rongidel ja laevadel keelatakse 90 kraadised pöörded: {ORANGE}{STRING} {LTBLUE} (vajab NPF)
STR_CONFIG_SETTING_JOINSTATIONS :{LTBLUE}Ühenda üksteise vastu ehitatud jaamad kokku: {ORANGE}{STRING}
STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}Kasuta parandatud laadimisalgoritmi: {ORANGE}{STRING}
STR_CONFIG_SETTING_GRADUAL_LOADING :{LTBLUE}Laadi veovahendeid järkjärguliselt: {ORANGE}{STRING}
STR_CONFIG_SETTING_JOINSTATIONS :{LTBLUE}Kõrvuti ehitatud jaamade ühendamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :{LTBLUE}Eemalasetsevate jaamade liitmine: {ORANGE}{STRING}
STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}Täiustatud laadimisalgoritm: {ORANGE}{STRING}
STR_CONFIG_SETTING_GRADUAL_LOADING :{LTBLUE}Veovahendite järkjärguline laadimine: {ORANGE}{STRING}
STR_CONFIG_SETTING_INFLATION :{LTBLUE}Inflatsioon: {ORANGE}{STRING}
STR_CONFIG_SETTING_SELECTGOODS :{LTBLUE}Vii kaup jaama ainult siis, kui seal on nõudlus: {ORANGE}{STRING}
STR_CONFIG_SETTING_LONGBRIDGES :{LTBLUE}Lubatakse väga pikkasid sildu ehitada: {ORANGE}{STRING}
STR_CONFIG_SETTING_GOTODEPOT :{LTBLUE}Lubatakse depoosse minemise käsud: {ORANGE}{STRING}
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}Põhiline tööstuse rajamise viis: {ORANGE}{STRING}
STR_CONFIG_SETTING_SELECTGOODS :{LTBLUE}Kauba toimetamine jaama ainult nõudluse korral: {ORANGE}{STRING}
STR_CONFIG_SETTING_LONGBRIDGES :{LTBLUE}Väga pikkade sildade ehitamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_GOTODEPOT :{LTBLUE}Depoosse minemise käsud: {ORANGE}{STRING}
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}Põhitööstuse rajamismeetod: {ORANGE}{STRING}
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :pole
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :nagu muud tööstused
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :uurides
STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Luba mitu sama liiki tööstust linna kohta: {ORANGE}{STRING}
STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Sama liiki tööstusi saab ehitada üksteise lähedale: {ORANGE}{STRING}
STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Olekuribal näidatakse alati täispikka kuupäeva: {ORANGE}{STRING}
STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Paiguta signaalid rööbasteele sõidusuunda arvestades: {ORANGE}{STRING}
STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Aasta lõpus näidatakse rahavoogude aruannet: {ORANGE}{STRING}
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :eeluuringutega
STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Samalaadsed tööstused ühes linnas: {ORANGE}{STRING}
STR_CONFIG_SETTING_SAMEINDCLOSE :{LTBLUE}Samalaadsed tööstused lähestiku: {ORANGE}{STRING}
STR_CONFIG_SETTING_LONGDATE :{LTBLUE}Täispikk kuupäev olekuribal: {ORANGE}{STRING}
STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Signaalide paigutamine sõidusuunda: {ORANGE}{STRING}
STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Aastalõpu rahavoogude aruanne: {ORANGE}{STRING}
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :{LTBLUE}Uued sihtpunktid on vaikimisi 'peatusteta': {ORANGE}{STRING}
STR_CONFIG_SETTING_ROADVEH_QUEUE :{LTBLUE}Mootorsõidukite järjekorrad (koos mahuefektidega): {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}Kursoriga ekraaniserva puudutamisel keritakse vaadet: {ORANGE}{STRING}
STR_CONFIG_SETTING_BRIBE :{LTBLUE}Luba kohalikule omavalitsusele altkäemaksu maksmine: {ORANGE}{STRING}
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :{LTBLUE}Luba eksklusiivseid veoõiguseid osta: {ORANGE}{STRING}
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Luba teistele ettevõtetele raha saata: {ORANGE}{STRING}
STR_CONFIG_SETTING_NONUNIFORM_STATIONS :{LTBLUE}Luba suvalise kujuga jaamad: {ORANGE}{STRING}
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Raskete rongide simuleerimiseks kasutatav raskuse korrutaja: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Lennuki kiiruse tegur: {ORANGE}1 / {STRING}
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{LTBLUE}Luba läbisõidupeatused linnateedel: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Luba jaamu lähestikku ehitada: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES :{LTBLUE}Lubatakse mitu NewGRF sõidukikomplekti: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}Vaate kerimine osutiga ekraaniserva puudutamisel: {ORANGE}{STRING}
STR_CONFIG_SETTING_BRIBE :{LTBLUE}Altkäemaksud kohalikele omavalitsustele: {ORANGE}{STRING}
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :{LTBLUE}Ainuveoõiguste ostmine: {ORANGE}{STRING}
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Raha saatmine teistele ettevõtetele: {ORANGE}{STRING}
STR_CONFIG_SETTING_NONUNIFORM_STATIONS :{LTBLUE}Suvalise kujuga jaamad: {ORANGE}{STRING}
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Raskete rongide simuleerimiseks kasutatav raskustegur: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Lennukite kiirustegur: {ORANGE}1 / {STRING}
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{LTBLUE}Läbisõidupeatused linnateedel: {ORANGE}{STRING}
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :{LTBLUE}Läbisõidupeatused konkurentide teedel: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Jaamade kõrvutiehitamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES :{LTBLUE}Mitme NewGRF sõidukikomplekti lubamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Sõidukite olemasolul ei saa seda seadet muuta.
STR_CONFIG_SETTING_SMALL_AIRPORTS :{LTBLUE}Luba väikesed lennuväljad kuni mängu lõpuni: {ORANGE}{STRING}
STR_CONFIG_SETTING_SMALL_AIRPORTS :{LTBLUE}Väikesed lennuväljad mängu lõpuni: {ORANGE}{STRING}
STR_CONFIG_SETTING_WARN_LOST_TRAIN :{LTBLUE}Hoiatatakse eksinud rongidest: {ORANGE}{STRING}
STR_CONFIG_SETTING_WARN_LOST_TRAIN :{LTBLUE}Hoiatamine rongide eksimisel: {ORANGE}{STRING}
STR_CONFIG_SETTING_ORDER_REVIEW :{LTBLUE}Sõidukite sihtpunktide ülevaade: {ORANGE}{STRING}
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :ei
STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :jah, kuid jäta välja seisatud veovahendid
STR_CONFIG_SETTING_ORDER_REVIEW_ON :kõikidest veovahenditest
STR_CONFIG_SETTING_WARN_INCOME_LESS :{LTBLUE}Hoiata kui rongi sissetulek on negatiivne: {ORANGE}{STRING}
STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :{LTBLUE}Sõidukid ei aegu: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTORENEW_VEHICLE :{LTBLUE}Vananenud sõidukite automaatne uuendamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTORENEW_MONTHS :{LTBLUE}Uuenda {ORANGE}{STRING}{LTBLUE} kuud enne/pärast veovahendi suurimat vanust
STR_CONFIG_SETTING_AUTORENEW_MONEY :{LTBLUE}Iseuuendusele kuluv väikseim summa: {ORANGE}{STRING}
STR_CONFIG_SETTING_ERRMSG_DURATION :{LTBLUE}Veateate kuvamise kestus: {ORANGE}{STRING}
STR_CONFIG_SETTING_POPULATION_IN_LABEL :{LTBLUE}Linna nimesildil näidatakse rahvaarvu: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTORENEW_VEHICLE :{LTBLUE}Vananenud sõidukite moderniseerimine: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTORENEW_MONTHS :{LTBLUE}Piirvanuse saavutanud veovahendit uuendatakse {ORANGE}{STRING}{LTBLUE} kuu piires
STR_CONFIG_SETTING_AUTORENEW_MONEY :{LTBLUE}Nõutud rahasumma moderniseerimiseks: {ORANGE}{STRING}
STR_CONFIG_SETTING_ERRMSG_DURATION :{LTBLUE}Veateadete kestus: {ORANGE}{STRING}
STR_CONFIG_SETTING_POPULATION_IN_LABEL :{LTBLUE}Rahvaarv alevike nimesiltidel: {ORANGE}{STRING}
STR_CONFIG_SETTING_LAND_GENERATOR :{LTBLUE}Maaala Generaator: {ORANGE}{STRING}
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Algupärane
STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :{LTBLUE}Suurim kaugus kaardiservast naftapuuraukudeni {ORANGE}{STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :{LTBLUE}Naftatöötlustehaste piirkaugus kaardiservast {ORANGE}{STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :{LTBLUE}Lumepiiri kõrgus: {ORANGE}{STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :{LTBLUE}Maa mägisus (TerraGenesis ainult) : {ORANGE}{STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Väga sile
@@ -1017,21 +1026,24 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :{LTBLUE}Kõrgus
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Vastu-päevapidi
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Päevapidi
STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :{LTBLUE}Kõrguse level kui kõrgele lapik kaart läheb: {ORANGE}{STRING}
STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :{LTBLUE}Maastikukujundus kaardiäärsetel ruutudel: {ORANGE}{STRING}
STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Üks või enam ruutu põhjaäärel pole tühjad
STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Üks või enam ääreruutu pole vesi
STR_CONFIG_SETTING_STATION_SPREAD :{LTBLUE}Suurim jaama ala: {ORANGE}{STRING} {RED}Hoiatus: kõrged seadistused aeglustavad mängu
STR_CONFIG_SETTING_SERVICEATHELIPAD :{LTBLUE}Maandumisplatsidel hooldatakse automaatselt helikoptereid: {ORANGE}{STRING}
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Liida maastikuriba raudtee/tee/vee/lennujaamade tööriistaribaga: {ORANGE}{STRING}
STR_CONFIG_SETTING_REVERSE_SCROLLING :{LTBLUE}Vaadet keritakse vastassuunas: {ORANGE}{STRING}
STR_CONFIG_SETTING_STATION_SPREAD :{LTBLUE}Suurim jaamaala: {ORANGE}{STRING} {RED}Hoiatus: kõrge määr aeglustab mängu
STR_CONFIG_SETTING_SERVICEATHELIPAD :{LTBLUE}Automaatne helikopterihooldus maandumisplatsidel: {ORANGE}{STRING}
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Maastiku-, ning raudtee/tee/vee/lennujaamade tööriistaribade seostamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_REVERSE_SCROLLING :{LTBLUE}Vaate kerimine vastassuunas: {ORANGE}{STRING}
STR_CONFIG_SETTING_SMOOTH_SCROLLING :{LTBLUE}Vaatevälja liigutatakse sujuvalt: {ORANGE}{STRING}
STR_CONFIG_SETTING_MEASURE_TOOLTIP :{LTBLUE}Mitmete ehitusvahendite kasutamisel näidatakse mõõtmise kohtspikrit: {ORANGE}{STRING}
STR_CONFIG_SETTING_MEASURE_TOOLTIP :{LTBLUE}Mõõtspikker teatud ehitusvahendite kasutamisel: {ORANGE}{STRING}
STR_CONFIG_SETTING_LIVERIES :{LTBLUE}Ettevõtte värve näidatakse: {ORANGE}{STRING}
STR_CONFIG_SETTING_LIVERIES_NONE :Mitte ühelgi
STR_CONFIG_SETTING_LIVERIES_OWN :Enda ettevõtel
STR_CONFIG_SETTING_LIVERIES_ALL :Kõikidel ettevõttetel
STR_CONFIG_SETTING_PREFER_TEAMCHAT :{LTBLUE}Vajutades <ENTER> eelistatakse meeskonna jututuba: {ORANGE}{STRING}
STR_CONFIG_SETTING_LIVERIES_OWN :Oma ettevõtel
STR_CONFIG_SETTING_LIVERIES_ALL :Igal ettevõttel
STR_CONFIG_SETTING_PREFER_TEAMCHAT :{LTBLUE}<ENTER> vajutades meeskonnavestluse eelistamine: {ORANGE}{STRING}
STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :{LTBLUE}Kerimisrulliku otstarve: {ORANGE}{STRING}
STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :Suurenda kaarti
STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Keri kaarti
STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :Kaardi suurendamine
STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Kaardi kerimine
STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Väljas
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Kaardi kerimisrulliku kiirus: {ORANGE}{STRING}
@@ -1040,22 +1052,25 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND :Command+klikk
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Ctrl+klikk
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Väljas
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :{LTBLUE}Kerimine vasakklõpsul: {ORANGE}{STRING}
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :{LTBLUE}Kuupäevaformaat salvestatud mängunimedes on {ORANGE}{STRING}{LTBLUE}.
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :pikk (31. dets 2008)
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :lühike (31-12-2008)
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31)
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :{LTBLUE}Uut mängu alustades seisatatakse automaatselt: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :{LTBLUE}Kasuta laiendatud sõidukinimekirja: {ORANGE}{STRING}
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :{LTBLUE}Mängu seiskamine alguses: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :{LTBLUE}Laiendatud sõidukinimekiri: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_OFF :Väljas
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_OWN :Oma ettevõte
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_ALL :Kõik ettevõtted
STR_CONFIG_SETTING_LOADING_INDICATORS :{LTBLUE}Kasuta laadimisnäidikuid: {ORANGE}{STRING}
STR_CONFIG_SETTING_LOADING_INDICATORS :{LTBLUE}Laadimisnäidikud: {ORANGE}{STRING}
STR_CONFIG_SETTING_LOADING_INDICATORS_OFF :Väljas
STR_CONFIG_SETTING_LOADING_INDICATORS_OWN :Oma ettevõte
STR_CONFIG_SETTING_LOADING_INDICATORS_ALL :Kõik ettevõtted
STR_CONFIG_SETTING_TIMETABLE_ALLOW :{LTBLUE}Luba sõiduplaanide määramine: {ORANGE}{STRING}
STR_CONFIG_SETTING_LOADING_INDICATORS_OWN :Oma ettevõtel
STR_CONFIG_SETTING_LOADING_INDICATORS_ALL :Igal ettevõttel
STR_CONFIG_SETTING_TIMETABLE_ALLOW :{LTBLUE}Sõiduplaanide määramine: {ORANGE}{STRING}
STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}Sõiduplaanis kasutatakse päevade asemel tiksumist: {ORANGE}{STRING}
STR_CONFIG_SETTING_QUICKGOTO :{LTBLUE}Sõidukikäskude kiirloomine: {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}Algne rööbastee liik (mängu alustamisel/laadimisel): {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_RAIL :Tavaline rööbastee
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_ELRAIL :Elektrifitseeritud rööbastee
@@ -1107,19 +1122,23 @@ STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Ainult tavaline
STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Ainult täiustatud
STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Kõik
STR_CONFIG_SETTING_TOWN_LAYOUT :{LTBLUE}Uute linnade tänavaplaneering: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :vaikimisi
STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :paremad teed
STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :2x2 võrgustik
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :3x3 võrgustik
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :suvaline
STR_CONFIG_SETTING_NOISE_LEVEL :{LTBLUE}Luba linnades lennujaaamade mürapiirangud: {ORANGE}{STRING}
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :{LTBLUE}Linnapoolne teedeehitus: {ORANGE}{STRING}
STR_CONFIG_SETTING_NOISE_LEVEL :{LTBLUE}Lennujaamade mürapiirangud linnades: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOOLBAR_POS :{LTBLUE}Tööriistariba asukoht: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOOLBAR_POS_LEFT :Vasakul
STR_CONFIG_SETTING_TOOLBAR_POS_CENTER :Keskel
STR_CONFIG_SETTING_TOOLBAR_POS_RIGHT :Paremal
STR_CONFIG_SETTING_SNAP_RADIUS :{LTBLUE}Akna haaramise raadius: {ORANGE}{STRING} px
STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :{LTBLUE}Akna haaramise raadius: {ORANGE}välja lülitatud
STR_CONFIG_SETTING_SNAP_RADIUS :{LTBLUE}Akna haaramisraadius: {ORANGE}{STRING} px
STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :{LTBLUE}Akna haaramisraadius: {ORANGE}välja lülitatud
STR_CONFIG_SETTING_SOFT_LIMIT :{LTBLUE}Aknapiirang (kinnistamata): {ORANGE}{STRING}
STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :{LTBLUE}Aknapiirang (kinnistamata): {ORANGE}väljas
STR_CONFIG_SETTING_TOWN_GROWTH :{LTBLUE}Linna kasvutempo: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Pole
STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :Aeglane
@@ -1128,25 +1147,36 @@ STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Kiire
STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Väga Kiire
STR_CONFIG_SETTING_LARGER_TOWNS :{LTBLUE}Topeltkiirusel kasvavaid linnu: {ORANGE}1 iga {STRING} linna kohta
STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :{LTBLUE}Linnadeks kasvavate asulate suhtarv: {ORANGE}Pole
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :{LTBLUE}Algne linna suuruse kordaja: {ORANGE}{STRING}
STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :{LTBLUE}Eemalda teedeehituse ajal esinevad tarbetud elemendid: {ORANGE}{STRING}
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :{LTBLUE}Algne linnade suurustegur: {ORANGE}{STRING}
STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :{LTBLUE}Mittevajaliku eemaldamine teedeehitusel: {ORANGE}{STRING}
STR_CONFIG_SETTING_GUI :{ORANGE}Välimus
STR_CONFIG_SETTING_GUI :{ORANGE}Kasutajaliides
STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Ehitamine
STR_CONFIG_SETTING_VEHICLES :{ORANGE}Sõidukid
STR_CONFIG_SETTING_STATIONS :{ORANGE}Jaamad
STR_CONFIG_SETTING_ECONOMY :{ORANGE}Majandus
STR_CONFIG_SETTING_AI :{ORANGE}Konkurendid
STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Kuvaseaded
STR_CONFIG_SETTING_INTERACTION :{ORANGE}Suhtlemine
STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signaalid
STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Kauba käsitlemine
STR_CONFIG_SETTING_AI_NPC :{ORANGE}Arvutimängijad
STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Moderniseerimine
STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Hooldamine
STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Marsruutimine
STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Rongid
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Linnad
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Tööstused
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}Rongide rajaleidja: {ORANGE}{STRING}
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}Rongide marsruuter: {ORANGE}{STRING}
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NTP :NTP {RED}(ebasoovitatav)
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NPF :NPF
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_YAPF :YAPF {BLUE}(soovitatav)
STR_CONFIG_SETTING_PATHFINDER_FOR_ROADVEH :{LTBLUE}Maanteesõidukite rajaleidja: {ORANGE}{STRING}
STR_CONFIG_SETTING_PATHFINDER_FOR_ROADVEH :{LTBLUE}Maanteesõidukite marsruuter: {ORANGE}{STRING}
STR_CONFIG_SETTING_PATHFINDER_FOR_ROADVEH_OPF :Algne {RED}(ebasoovitatav)
STR_CONFIG_SETTING_PATHFINDER_FOR_ROADVEH_NPF :NPF
STR_CONFIG_SETTING_PATHFINDER_FOR_ROADVEH_YAPF :YAPF {BLUE}(soovitatav)
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :{LTBLUE}Laevade rajaleidja: {ORANGE}{STRING}
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :{LTBLUE}Laevade marsruuter: {ORANGE}{STRING}
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :Algne {BLUE}(soovitatav)
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_NPF :NPF
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(ebasoovitatav)
@@ -1169,13 +1199,14 @@ STR_CHEATS :{WHITE}Petmine
STR_CHEATS_TIP :{BLACK}Märgistatud kastid näitavad et, kas sa oled varem seda pettust kasutanud
STR_CHEATS_WARNING :{BLACK}Hoiatus! Sa kavatsed oma konkurente reeta. Pea meeles, et sellisest häbist ei saa sa enam kunagi lahti.
STR_CHEAT_MONEY :{LTBLUE}Suurenda raha hulka {CURRENCY} võrra
STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Mängimine ettevõttena: {ORANGE}{COMMA}
STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Maagiline buldooser (eemaldamatute rajatiste lammutamine): {ORANGE}{STRING}
STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tunnelid võivad üksteist läbida: {ORANGE}{STRING}
STR_CHEAT_BUILD_IN_PAUSE :{LTBLUE}Seisatuse ajal ehitamine: {ORANGE}{STRING}
STR_CHEAT_NO_JETCRASH :{LTBLUE}Reaktiivlennukid ei kuku (tihti) alla väikestel lennuväljadel: {ORANGE} {STRING}
STR_CHEAT_SWITCH_CLIMATE :{LTBLUE}Vaheta kliimat: {ORANGE} {STRING}
STR_CHEAT_CHANGE_DATE :{LTBLUE}Muuda kuupäeva: {ORANGE} {DATE_SHORT}
STR_CHEAT_SETUP_PROD :{LTBLUE}Luba muutuvad tootmisväärtused: {ORANGE}{STRING}
STR_CHEAT_SETUP_PROD :{LTBLUE}Muutuvad tootmisväärtused: {ORANGE}{STRING}
STR_HEADING_FOR_WAYPOINT :{LTBLUE}Suudub meldepunkti: {WAYPOINT}
STR_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}Suundub {WAYPOINT}, {VELOCITY}
@@ -1204,6 +1235,7 @@ STR_CANT_REMOVE_TRAIN_WAYPOINT :{WHITE}Meldepun
STR_BUILD_AUTORAIL_TIP :{BLACK}Rööbaste ehitamine kasutades "venitamist"
STR_NO_TOWN_IN_SCENARIO :{WHITE}...kaardil puudub linn
STR_COULD_NOT_CREATE_TOWN :{WHITE}Kaarditekitamine katkes...{}...linnadele pole sobilike kohti
STR_MANY_RANDOM_TOWNS :{BLACK}Palju suvalisi linnu
STR_RANDOM_TOWNS_TIP :{BLACK}Kaardi katmine suvaliselt asetatud linnadega
@@ -1289,7 +1321,7 @@ STR_NETWORK_CLICK_TO_SELECT_LAST :{BLACK}Klõpsa,
STR_NETWORK_FIND_SERVER :{BLACK}Serveri otsimine
STR_NETWORK_FIND_SERVER_TIP :{BLACK}Võrgust serveri otsimine
STR_NETWORK_ADD_SERVER :{BLACK}Lisa server
STR_NETWORK_ADD_SERVER_TIP :{BLACK}Lisab nimekirja serveri, mida kontrollitakse alati, kas see töötab või mitte.
STR_NETWORK_ADD_SERVER_TIP :{BLACK}Pidevalt jälgitava serveri lisamine loendisse.
STR_NETWORK_ENTER_IP :{BLACK}Sisesta serveri aadress
STR_NETWORK_GENERAL_ONLINE :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA}
@@ -1298,12 +1330,12 @@ STR_NETWORK_CLIENTS_CAPTION_TIP :{BLACK}Kliente
STR_NETWORK_MAP_SIZE_SHORT :{BLACK}{COMMA}x{COMMA}
STR_NETWORK_MAP_SIZE_CAPTION :{BLACK}Kaardi suurus
STR_NETWORK_MAP_SIZE_CAPTION_TIP :{BLACK}Mängu kaardisuurus{}Klõpsa pindala alusel järjestamiseks
STR_NETWORK_MAP_SIZE_CAPTION_TIP :{BLACK}Kaardisuurus mängus{}Klõpsa, et järjestada pindala järgi
STR_NETWORK_DATE_CAPTION :{BLACK}Kuupäev
STR_NETWORK_DATE_CAPTION_TIP :{BLACK}Kuupäev hetkel
STR_NETWORK_YEARS_CAPTION :{BLACK}Aastaid
STR_NETWORK_YEARS_CAPTION :{BLACK}Kestnud
STR_NETWORK_YEARS_CAPTION_TIP :{BLACK}Mitu aastat{}on mäng kestnud
STR_NETWORK_GAME_INFO :{SILVER}MÄNGU ANDMED
@@ -1318,7 +1350,7 @@ STR_NETWORK_CURRENT_DATE :{SILVER}Aeg het
STR_NETWORK_PASSWORD :{SILVER}Parooliga kaitstud!
STR_NETWORK_SERVER_OFFLINE :{SILVER}SERVER ON MAAS
STR_NETWORK_SERVER_FULL :{SILVER}SERVER ON TÄIS
STR_NETWORK_VERSION_MISMATCH :{SILVER}VERSIOON EI SOBI
STR_NETWORK_VERSION_MISMATCH :{SILVER}OSAD EI SOBI
STR_NETWORK_GRF_MISMATCH :{SILVER}NEWGRF SOBIMATUS
STR_NETWORK_JOIN_GAME :{BLACK}Liitu mänguga
@@ -1343,10 +1375,10 @@ STR_NETWORK_NUMBER_OF_CLIENTS :{BLACK}Suurim k
STR_NETWORK_NUMBER_OF_CLIENTS_TIP :{BLACK}Määra suurim klientide arv. Kõik vabad kohad ei pea täidetud olema
STR_NETWORK_COMPANIES_SELECT :{BLACK}{SKIP}{SKIP}{SKIP}{NUM} ettevõte{P "" t}
STR_NETWORK_NUMBER_OF_COMPANIES :{BLACK}Enim ettevõtteid:
STR_NETWORK_NUMBER_OF_COMPANIES_TIP :{BLACK}Luba serveris X mängijat
STR_NETWORK_NUMBER_OF_COMPANIES_TIP :{BLACK}Teatud ettevõtete piirang serveris
STR_NETWORK_SPECTATORS_SELECT :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{NUM} pealtvaataja{P "" t}
STR_NETWORK_NUMBER_OF_SPECTATORS :{BLACK}Enim pealtvaatajaid
STR_NETWORK_NUMBER_OF_SPECTATORS_TIP :{BLACK}Luba serveris X vaatajat
STR_NETWORK_NUMBER_OF_SPECTATORS_TIP :{BLACK}Teatud vaatlejate piirang serveris
STR_NETWORK_LANGUAGE_SPOKEN :{BLACK}Räägitav keel:
STR_NETWORK_LANGUAGE_TIP :{BLACK}Teistele mängijatele teadmiseks, et mis keelt serveris räägitakse
STR_NETWORK_LANGUAGE_COMBO :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
@@ -1438,6 +1470,7 @@ STR_NETWORK_CONNECTING_DOWNLOADING :{BLACK}{BYTES}
STR_NETWORK_DISCONNECT :{BLACK}Katkesta
STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}Sisesta summa mida anda
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Server on kaitstud. Sisesta parool
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Ettevõte on kaitstud. Sisesta parool
STR_NETWORK_CLIENT_LIST :{WHITE}Klientide nimekiri
@@ -1686,7 +1719,9 @@ STR_200B_CENTER_THE_MAIN_VIEW_ON :{BLACK}Vaate vi
STR_200C_CHANGE_TOWN_NAME :{BLACK}Linnanime muutmine
STR_200D_PASSENGERS_LAST_MONTH_MAX :{BLACK}Reisijaid eelmisel kuul: {ORANGE}{COMMA}{BLACK} Enim: {ORANGE}{COMMA}
STR_200E_MAIL_LAST_MONTH_MAX :{BLACK}Posti eelmisel kuul: {ORANGE}{COMMA}{BLACK} Enim: {ORANGE}{COMMA}
STR_CARGO_FOR_TOWNGROWTH :{BLACK}Veoseid linna kasvamiseks:
STR_CARGO_FOR_TOWNGROWTH_REQUIRED :{SETX 20}{ORANGE}{STRING}{BLACK} vajalik
STR_CARGO_FOR_TOWNGROWTH_LAST_MONTH :{SETX 20}{ORANGE}{CARGO}{BLACK} toimetatud eelmisel kuul
STR_200F_TALL_OFFICE_BLOCK :Kõrge büroohoone
STR_2010_OFFICE_BLOCK :Büroohoone
STR_2011_SMALL_BLOCK_OF_FLATS :Väike kortermaja
@@ -1725,6 +1760,7 @@ STR_2032_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT
STR_2033_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Teenusetoetust makstakse ettevõttele {COMPANY}!{}{}{STRING} kohast {STATION} kohta {STATION} teenuse eest makstakse järgmisel aastal kolmekordselt!
STR_2034_SERVICE_SUBSIDY_AWARDED :{BLACK}{BIGFONT}Teenusetoetust makstakse ettevõttele {COMPANY}!{}{}{STRING} kohast {STATION} kohta {STATION} teenuse eest makstakse järgmisel aastal neljakordselt!
STR_2035_LOCAL_AUTHORITY_REFUSES :{WHITE}Linna {TOWN} kohalik omavalitsus keeldub uut lennujaama lubamast
STR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}{TOWN} kohalik omavalitsus keeldub ehitusluba lennujaamale väljastamast kuna on mures müra pärast
STR_2036_COTTAGES :Suvilad
STR_2037_HOUSES :Majad
STR_2038_FLATS :Korterid
@@ -1898,6 +1934,7 @@ STR_4001_LOAD_GAME :{WHITE}Laadi m
STR_4002_SAVE :{BLACK}Salvesta
STR_4003_DELETE :{BLACK}Kustuta
STR_4004 :{COMPANY}, {STRING}
STR_GAME_SAVELOAD_SPECTATOR_SAVEGAME :Vaatleja, {SKIP}{STRING}
STR_4005_BYTES_FREE :{BLACK}{BYTES} vaba
STR_4006_UNABLE_TO_READ_DRIVE :{BLACK}Ei suuda kettalt lugeda
STR_4007_GAME_SAVE_FAILED :{WHITE}Mängu salvestamine nurjus{}{STRING}
@@ -1905,9 +1942,10 @@ STR_4008_UNABLE_TO_DELETE_FILE :{WHITE}Faili ei
STR_4009_GAME_LOAD_FAILED :{WHITE}Mängu laadimine nurjus{}{STRING}
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Süsteemi viga: {STRING}
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Katkine salvestus - {STRING}
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Salvestus on tehtud uuemas versioonis
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Salvestus on tehtud uuemas osas
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Fail pole loetav
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :Faili ei saanud kirjutada
STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Andmeterviklikuse kontrolli ei läbitud
STR_400A_LIST_OF_DRIVES_DIRECTORIES :{BLACK}Nimekiri ketastest, kataloogidest ja salvestatud mängudest
STR_400B_CURRENTLY_SELECTED_NAME :{BLACK}Mängu salvestuse nimi
STR_400C_DELETE_THE_CURRENTLY_SELECTED :{BLACK}Kustuta valitud salvestus
@@ -1993,6 +2031,7 @@ STR_INDUSTRY_PROD_GODOWN :{BLACK}{BIGFONT
##id 0x5000
STR_5003_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Teine tunnel on ees
STR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}Tunnel lõpeks väljaspool kaarti
STR_5005_UNABLE_TO_EXCAVATE_LAND :{WHITE}Ei saa tunneli teise otsa jaoks maad parajaks kaevata
STR_5006_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Tunnel tuleb enne lammutada
STR_5007_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Sild tuleb enne lammutada
@@ -2067,15 +2106,15 @@ STR_SV_STNAME_AIRPORT :{STRING} lennuv
STR_SV_STNAME_OILFIELD :{STRING} naftaväli
STR_SV_STNAME_MINES :{STRING} kaevandused
STR_SV_STNAME_DOCKS :{STRING} dokid
STR_SV_STNAME_BUOY_1 :{STRING} poi #1
STR_SV_STNAME_BUOY_2 :{STRING} poi #2
STR_SV_STNAME_BUOY_3 :{STRING} poi #3
STR_SV_STNAME_BUOY_4 :{STRING} poi #4
STR_SV_STNAME_BUOY_5 :{STRING} poi #5
STR_SV_STNAME_BUOY_6 :{STRING} poi #6
STR_SV_STNAME_BUOY_7 :{STRING} poi #7
STR_SV_STNAME_BUOY_8 :{STRING} poi #8
STR_SV_STNAME_BUOY_9 :{STRING} poi #9
STR_SV_STNAME_BUOY_1 :{STRING} 1. poi
STR_SV_STNAME_BUOY_2 :{STRING} 2. poi
STR_SV_STNAME_BUOY_3 :{STRING} 3. poi
STR_SV_STNAME_BUOY_4 :{STRING} 4. poi
STR_SV_STNAME_BUOY_5 :{STRING} 5. poi
STR_SV_STNAME_BUOY_6 :{STRING} 6. poi
STR_SV_STNAME_BUOY_7 :{STRING} 7. poi
STR_SV_STNAME_BUOY_8 :{STRING} 8. poi
STR_SV_STNAME_BUOY_9 :{STRING} 9. poi
STR_SV_STNAME_ANNEXE :{STRING} juurdeehitis
STR_SV_STNAME_SIDINGS :{STRING} hargnemine
STR_SV_STNAME_BRANCH :{STRING} filiaal
@@ -2083,7 +2122,7 @@ STR_SV_STNAME_UPPER :Ülemine {STRIN
STR_SV_STNAME_LOWER :Alumine {STRING}
STR_SV_STNAME_HELIPORT :{STRING} Kopteriväljak
STR_SV_STNAME_FOREST :{STRING} mets
STR_SV_STNAME_FALLBACK :{STRING} Jaam #{NUM}
STR_SV_STNAME_FALLBACK :{STRING} {NUM}. jaam
############ end of savegame specific region!
@@ -2122,6 +2161,7 @@ STR_NUM_VERY_LOW :Väga madal
STR_6816_LOW :Madal
STR_6817_NORMAL :Harilik
STR_6818_HIGH :Kõrge
STR_02BF_CUSTOM :Omatehtud
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :Väga aeglane
@@ -2233,6 +2273,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Vali nai
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Tekita uus suvaline nägu
STR_704C_KEY :{BLACK}Selgitus
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Näita selgitust graafikute juures
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Näita põhjalike tegevushinnanguid
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Ettevõttegraafiku selgitus
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Klõpsa, et ettevõtte graafikut sisse ja välja lülitada
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Veetud veoste kogus
@@ -2607,10 +2648,10 @@ STR_ORDER_GO_TO :Mine
STR_ORDER_GO_NON_STOP_TO :Mine peatumata
STR_ORDER_GO_VIA :Mine läbi
STR_ORDER_GO_NON_STOP_VIA :Mine peatumata läbi
STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Laadi kõik kaubad täis
STR_ORDER_DROP_LOAD_IF_POSSIBLE :Laadi, kui saadaval
STR_ORDER_DROP_FULL_LOAD_ALL :Laadi kõiki kaupu täis
STR_ORDER_DROP_FULL_LOAD_ANY :Laadi ühte kaupa täis
STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Laadi üks täis
STR_ORDER_DROP_LOAD_IF_POSSIBLE :Võimalusel laadi
STR_ORDER_DROP_FULL_LOAD_ALL :Laadi kõik täis
STR_ORDER_DROP_FULL_LOAD_ANY :Laadi üks täis
STR_ORDER_DROP_NO_LOADING :Mitte laadida
STR_ORDER_TOGGLE_UNLOAD :{BLACK}Laadi kõik maha
STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Kui võetakse vastu, laadi maha
@@ -2651,7 +2692,7 @@ STR_GO_TO_NEAREST_DEPOT :{STRING} {STRIN
STR_GO_TO_HANGAR :{STRING} {STATION} angaar
STR_ORDER_DROP_GO_ALWAYS_DEPOT :Alati mine
STR_ORDER_DROP_SERVICE_DEPOT :Hoolda, kui vaja
STR_ORDER_DROP_SERVICE_DEPOT :Vajadusel hoolda
STR_ORDER_DROP_HALT_DEPOT :Peatu
STR_ORDER_CONDITIONAL :Tinglik sihtpunkti vahetamine
@@ -2723,6 +2764,7 @@ STR_8826_GO_TO :{BLACK}Mine
STR_REFIT :{BLACK}Taasseadista
STR_REFIT_TIP :{BLACK}Vali, millist laadungit ümber seadistada selles järjestuses. Ümberseadistuse käsu eemaldamiseks hoia klõpsamise ajal all Control nuppu
STR_REFIT_ORDER :(Taasseadista {STRING})
STR_REFIT_STOP_ORDER :(Seadista ümber {STRING} jaoks ja peatu)
STR_STOP_ORDER :(Peatu)
STR_TIMETABLE_VIEW :{BLACK}Sõiduplaan
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Näita sõiduplaani
@@ -2789,7 +2831,7 @@ STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Hind: {C
STR_885C_BROKEN_DOWN :{RED}Rikkis
STR_885D_AGE_RUNNING_COST_YR :{BLACK}Vanus: {LTBLUE}{STRING}{BLACK} Käituskulud: {LTBLUE}{CURRENCY}/aastas
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Mass: {LTBLUE}{WEIGHT_S} {BLACK}Võimsus: {LTBLUE}{POWER}{BLACK} Tippkiirus: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Mass: {LTBLUE}{WEIGHT_S} {BLACK}Võimsus: {LTBLUE}{POWER}{BLACK} Tippkiirus: {LTBLUE}{VELOCITY} {BLACK}Veojõud: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Tühimass: {LTBLUE}{WEIGHT_S} {BLACK}Võimsus: {LTBLUE}{POWER}{BLACK} Tippkiirus: {LTBLUE}{VELOCITY} {BLACK}Veojõud: {LTBLUE}{FORCE}
STR_885F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Selle aasta kasum: {LTBLUE}{CURRENCY} (eelmisel aastal: {CURRENCY})
STR_8860_RELIABILITY_BREAKDOWNS :{BLACK}Tehnoseisund: {LTBLUE}{COMMA}% {BLACK}Rikkeid eelmisest hooldusest: {LTBLUE}{COMMA}
STR_8861_STOPPED :{RED}Peatatud
@@ -2832,6 +2874,7 @@ STR_TIMETABLE_TOTAL_TIME :Selle sõidupla
STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :Selle sõiduplaani täitmine võtab vähemalt {STRING} (kõik ei ole planeeritud)
STR_TIMETABLE_AUTOFILL :{BLACK}Täida ise
STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Täida liiniplaan järgmise sõidu andmetega (Ctrl+klõps säilitamaks ooteaegu)
##id 0x9000
STR_9000_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Mootorsõiduk takistab teed
STR_9001_ROAD_VEHICLES :{WHITE}{COMPANY} - {COMMA} mootorsõiduk{P "" it}
@@ -2898,8 +2941,8 @@ STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Seadista
STR_REFIT_ROAD_VEHICLE :{BLACK}Muuda mootorsõiduki seadistust
STR_REFIT_ROAD_VEHICLE_TO_CARRY_HIGHLIGHTED :{BLACK}Seadista mootorsõidukit kandma valitud veotüüpi
STR_REFIT_ROAD_VEHICLE_CAN_T :{WHITE}Mootorsõiduki seadistust ei saa ümber muuta
STR_ROAD_SELECT_TYPE_OF_CARGO_FOR :{BLACK}Vali maanteesõiduki veetav kaubaliik
STR_ROAD_SELECT_TYPE_OF_CARGO_FOR :{BLACK}Vali maanteesõiduki veetav veoseliik
##id 0x9800
STR_9800_WATERWAYS_CONSTRUCTION :Veeteede ehitus
STR_9801_WATERWAYS_CONSTRUCTION :{WHITE}Veeteede ehitus
@@ -3098,34 +3141,36 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Hoiatus: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Viga: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Saatuslik viga: {SILVER}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{SKIP}{STRING} ei tööta TTDPatch versiooniga OpenTTD väitel.
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{SKIP}{STRING} on {STRING} TTD versiooni jaoks.
STR_NEWGRF_ERROR_VERSION_NUMBER :{SKIP}OpenTTD väitel {STRING} ei tööta selle TTDPatch osaga.
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{SKIP}{STRING} on {STRING} TTD osa jaoks.
STR_NEWGRF_ERROR_UNSET_SWITCH :{SKIP}{STRING} on mõeldud kasutamiseks {STRING}
STR_NEWGRF_ERROR_INVALID_PARAMETER :{SKIP}vigane parameeter {STRING} jaoks: parameeter {STRING} ({NUM})
STR_NEWGRF_ERROR_LOAD_BEFORE :{SKIP}{STRING} peab olema laetud enne {STRING}.
STR_NEWGRF_ERROR_LOAD_AFTER :{SKIP}{STRING} peab olema laetud pärast{STRING}.
STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{SKIP}{STRING} nõuab OpenTTD versiooni {STRING} või uuemat.
STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{SKIP}{STRING} nõuab OpenTTD osa {STRING} või uuemat.
STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :GRF fail, mis tehti tõlkimiseks,
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Liiga palju NewGRF-e on laaditud.
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Laadides {STRING} staatilise NewGRF-na koos {STRING} võib põhjustada sünkrooni katkemist.
STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Ootamatu sprait.
STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Tundmatu Action 0 omadus.
STR_NEWGRF_ERROR_INVALID_ID :Vale tunnuse kasutamise proov.
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sisaldab vigast pilti. Kõiki vigaseid pilte näidatakse punase küsimärgina (?).
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sisaldab mitmeid Action 8 kirjeid
STR_NEWGRF_PRESET_LIST_TIP :{BLACK}Laadi valitud eelseadistused
STR_NEWGRF_PRESET_SAVE :{BLACK}Salvesta eelseadistus
STR_NEWGRF_PRESET_SAVE_TIP :{BLACK}Salvesta praegune loend eelseadistusena
STR_NEWGRF_PRESET_SAVE_QUERY :{BLACK}Sisesta eelseadistuse nimi
STR_NEWGRF_PRESET_DELETE :{BLACK}Kustuta eelseadistus
STR_NEWGRF_PRESET_DELETE_TIP :{BLACK}Kustuta aktiivne eelseadistus
STR_NEWGRF_PRESET_DELETE_TIP :{BLACK}Kustuta hetkel valitud eelseadistus
STR_NEWGRF_ADD :{BLACK}Lisa
STR_NEWGRF_ADD_TIP :{BLACK}Lisa nimekirja NewGRF fail
STR_NEWGRF_REMOVE :{BLACK}Eemalda
STR_NEWGRF_REMOVE_TIP :{BLACK}Eemalda nimekirjast valitud NewGRF fail
STR_NEWGRF_MOVEUP :{BLACK}Liiguta Üles
STR_NEWGRF_MOVEUP_TIP :{BLACK}Liiguta valitud NewGRF fail nimekirjas üles
STR_NEWGRF_MOVEDOWN :{BLACK}Liiguta Alla
STR_NEWGRF_MOVEDOWN_TIP :{BLACK}Liiguta valitud NewGRF fail nimekirjas alla
STR_NEWGRF_MOVEUP :{BLACK}Liiguta üles
STR_NEWGRF_MOVEUP_TIP :{BLACK}NewGRF-faili liigutamine loendis üles.
STR_NEWGRF_MOVEDOWN :{BLACK}Liiguta alla
STR_NEWGRF_MOVEDOWN_TIP :{BLACK}NewGRF-faili liigutamine loendis alla
STR_NEWGRF_FILE_TIP :{BLACK}Nimekiri installeerimata NewGRF failidest. Parameetrite muutmiseks klõpsa failil.
STR_NEWGRF_PARAMETER :{BLACK}Parameetrid: {SILVER}{STRING}
STR_NEWGRF_PARAMETER_QUERY :{BLACK}Sisesta NewGRF parameetrid
@@ -3151,15 +3196,18 @@ STR_NEWGRF_BROKEN :{WHITE}NewGRF '
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Depoost väljas asudes muudab sõiduki '{1:ENGINE}' pikkust.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Ettevõtte '{1:COMPANY}' rongil '{0:VEHICLE}' on ebasobiv pikkus. See on tõenäoliselt põhjustatud problemaatilistest NewGRF-dest. Mäng võib kokku joosta või
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Mäng salvestati trammide toetuseta versioonis. Kõik trammid eemaldati.
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}' sisaldab väära teavet.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Veose/ümberseadistamise teave sõidukil '{1:ENGINE}' erineb ehitamisaegsest ostunimekirjast. Seetõttu võib uuendamisel või asendamisel ümberseadistamine ebaõnnestuda.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' põhjustas toodangu tagasikutsumises lõpmatu korduse.
STR_CURRENCY_WINDOW :{WHITE}Isiklik valuuta
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Mäng on salvestatud osas, kus trammid ei olnud toetatud. Kõik trammid on eemaldatud.
STR_CURRENCY_WINDOW :{WHITE}Oma valuuta
STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Vahetuskurss: {ORANGE}{CURRENCY} = £ {COMMA}
STR_CURRENCY_SEPARATOR :{LTBLUE}Vahemärk:
STR_CURRENCY_PREFIX :{LTBLUE}Eesliide:
STR_CURRENCY_SUFFIX :{LTBLUE}Lõpuliide:
STR_CURRENCY_SWITCH_TO_EURO :{LTBLUE}Vaheta üle eurole: {ORANGE}{NUM}
STR_CURRENCY_SWITCH_TO_EURO_NEVER :{LTBLUE}Vaheta üle eurole: {ORANGE}Mitte kunagi
STR_CURRENCY_SWITCH_TO_EURO_NEVER :{LTBLUE}Mine eurole: {ORANGE}Mitte kunagi
STR_CURRENCY_PREVIEW :{LTBLUE}Eelvaade: {ORANGE}{CURRENCY}
STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Muuda personaalse valuuta parameetreid
@@ -3245,6 +3293,7 @@ STR_MASS_START_LIST_TIP :{BLACK}Vajuta,
STR_SHORT_DATE :{WHITE}{DATE_TINY}
STR_SIGN_LIST_CAPTION :{WHITE}Siltide nimekiri - {COMMA} Silt{P "" i}
STR_ORDER_REFIT_FAILED :{WHITE}Ümberseadistamise käsu ebaõnnestumine peatas sõiduki {VEHICLE}
############ Lists rail types
@@ -3300,8 +3349,8 @@ STR_DATE :{BLACK}Algus:
STR_NUMBER_OF_TOWNS :{BLACK}Linnade sagedus:
STR_NUMBER_OF_INDUSTRIES :{BLACK}Tehaste sagedus:
STR_GENERATE_DATE :{BLACK}{DATE_LONG}
STR_SNOW_LINE_UP :{BLACK}Liiguta lumepiiri ühe ühiku võrra üles
STR_SNOW_LINE_DOWN :{BLACK}Liiguta lumepiiri ühe ühiku võrra alla
STR_SNOW_LINE_UP :{BLACK}Lumepiiri liigutamine ühe võrra üles
STR_SNOW_LINE_DOWN :{BLACK}Lumepiiri liigutamine ühe võrra alla
STR_SNOW_LINE_QUERY_CAPT :{WHITE}Muuda lumepiiri kõrgust
STR_START_DATE_QUERY_CAPT :{WHITE}Muuda algusaastat
STR_HEIGHTMAP_SCALE_WARNING_CAPTION :{WHITE}Skaala hoiatus
@@ -3327,8 +3376,8 @@ STR_SE_FLAT_WORLD_TIP :{BLACK}Genereer
STR_SE_RANDOM_LAND :{WHITE}Suvaline maa
STR_SE_NEW_WORLD :{BLACK}Alusta uut stsenaariumit
STR_SE_CAPTION :{WHITE}Stsenaariumi tüüp
STR_FLAT_WORLD_HEIGHT_DOWN :{BLACK}Liiguta lameda maa kõrgus ühe võrra alla
STR_FLAT_WORLD_HEIGHT_UP :{BLACK}Liiguta lameda maa kõrgus ühe võrra üles
STR_FLAT_WORLD_HEIGHT_DOWN :{BLACK}Lameda maa kõrguse langetamine ühe võrra
STR_FLAT_WORLD_HEIGHT_UP :{BLACK}Lameda maa kõrguse tõstmine ühe võrra
STR_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Muuda maa kõrgust lamedal maal
STR_FLAT_WORLD_HEIGHT :{BLACK}Lameda maa kõrgus:
@@ -3367,7 +3416,7 @@ STR_HELIPORTS :{BLACK}Helikopt
STR_MEASURE_LENGTH :{BLACK}Pikkus: {NUM}
STR_MEASURE_AREA :{BLACK}Pindala: {NUM} x {NUM}
STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Pikkus: {NUM}{}Kürguste erinevusj: {NUM} m
STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Pikkus: {NUM}{}Kõrguserinevus: {NUM} m
STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Pindala: {NUM} x {NUM}{}Kõrguste erinevus: {NUM} m
############ Date formatting

View File

@@ -785,7 +785,7 @@ STR_TOWNNAME_SWEDISH :Ruotsalainen
STR_TOWNNAME_DUTCH :Hollantilainen
STR_TOWNNAME_FINNISH :Suomalainen
STR_TOWNNAME_POLISH :Puolalainen
STR_TOWNNAME_SLOVAKISH :Slovakialainen
STR_TOWNNAME_SLOVAK :Slovakialainen
STR_TOWNNAME_NORWEGIAN :Norjalainen
STR_TOWNNAME_HUNGARIAN :Unkarilainen
STR_TOWNNAME_AUSTRIAN :Itävaltalainen
@@ -818,7 +818,7 @@ STR_CURR_ITL :Italian liira (
STR_CURR_NLG :Hollannin guildeni (NLG)
STR_CURR_NOK :Norjan kruunu (NOK)
STR_CURR_PLN :Puolan zloty (PLN)
STR_CURR_ROL :Romanian leu (ROL)
STR_CURR_RON :Romanian leu (RON)
STR_CURR_RUR :Venjän rupla (RUR)
STR_CURR_SIT :Slovenian tolari (SIT)
STR_CURR_SEK :Ruotsin kruunu (SEK)
@@ -2241,6 +2241,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Valitse
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Luo satunnaiset kasvot.
STR_704C_KEY :{BLACK}Selite
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Näytä kuvaajan selite
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Näytä tarkat suorituskyky arviot
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Selite yhtiön kuvaajiin
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Napsauta tässä laittaaksesi yhtiön merkinnän graafissa päälle/pois.
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Rahtia kuljetettu (yksikköä)
@@ -2802,7 +2803,7 @@ STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Kulu: {C
STR_885C_BROKEN_DOWN :{RED}Rikki
STR_885D_AGE_RUNNING_COST_YR :{BLACK}Ikä: {LTBLUE}{STRING}{BLACK} Käyttökustannukset: {LTBLUE}{CURRENCY}/vuosi
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Paino: {LTBLUE}{WEIGHT_S} {BLACK}Teho: {LTBLUE}{POWER}{BLACK} Huippunopeus: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Massa: {LTBLUE}{WEIGHT_S} {BLACK}Voima: {LTBLUE}{POWER}{BLACK} Huippunopeus: {LTBLUE}{VELOCITY} {BLACK}Huippuvääntö: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Paino: {LTBLUE}{WEIGHT_S} {BLACK}Teho: {LTBLUE}{POWER}{BLACK} Maks. nopeus: {LTBLUE}{VELOCITY} {BLACK}Maks. T.E.: {LTBLUE}{FORCE}
STR_885F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Tuotto tänä vuonna: {LTBLUE}{CURRENCY} (viime vuonna: {CURRENCY})
STR_8860_RELIABILITY_BREAKDOWNS :{BLACK}Luotettavuus: {LTBLUE}{COMMA}% {BLACK}Hajoamisia viime huollon jälkeen: {LTBLUE}{COMMA}
STR_8861_STOPPED :{RED}Pysäytetty
@@ -3172,6 +3173,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Yhtiöll
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' antaa väärää tietoa.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Rahti/uudelleensovitus tiedot kulkuneuvolle '{1:ENGINE}' ovat eri kuin ostolistassa rakentamisen jälkeen. Tämä voi aiheuttaa, että kulkuneuvon korvaus ei uudelleensovita oikein.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' aiheutti ikuisen silmukan tuotannon callback-funktiossa.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Peli tallennettiin versiossa, joka ei tue raitiovaunuja. Kaikki raitiovaunut on poistettu.

View File

@@ -786,7 +786,7 @@ STR_TOWNNAME_SWEDISH :Suédois
STR_TOWNNAME_DUTCH :Hollandais
STR_TOWNNAME_FINNISH :Finlandais
STR_TOWNNAME_POLISH :Polonais
STR_TOWNNAME_SLOVAKISH :Slovaques
STR_TOWNNAME_SLOVAK :Slovaques
STR_TOWNNAME_NORWEGIAN :Norvégiens
STR_TOWNNAME_HUNGARIAN :Hongrois
STR_TOWNNAME_AUSTRIAN :Autrichiens
@@ -819,7 +819,7 @@ STR_CURR_ITL :Lire Italienne
STR_CURR_NLG :Florint Hollandais (NLG)
STR_CURR_NOK :Courronne Norvégienne (NOK)
STR_CURR_PLN :Nouv. Zloty Polonais (PLN)
STR_CURR_ROL :Leu Roumain (ROL)
STR_CURR_RON :Leu Roumain (RON)
STR_CURR_RUR :Rouble Russe (RUR)
STR_CURR_SIT :Tolar Slovénien (SIT)
STR_CURR_SEK :Couronne Suédoise (SEK)
@@ -2242,6 +2242,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Choisir
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Génère un visage au hasard
STR_704C_KEY :{BLACK}Légende
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Affiche la légende
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Afficher le détail de l'évaluation de la performance
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Légende du graphique des compagnies
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Cliquer ici pour activer/désactiver l'affichage de la compagnie
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Cargaison livrée
@@ -3173,6 +3174,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Le train
STR_NEWGRF_BUGGY :{WHITE}Le NewGRF '{0:STRING}' fournit une information incorrecte.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}L'information de cargaison/réaménagement pour '{1:ENGINE}' après sa construction est différent de la liste d'achat. Cela peut causer un échec de réaménagement lors de l'auto-renouvèlement/remplacement.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' a causé une boucle infinie dans la fonction de rappel de production.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Partie sauvegardée avec une version sans support des tramways. Tous les tramways ont été supprimés.

View File

@@ -656,7 +656,6 @@ STR_FULL :Completo
STR_02BA :{SILVER}- - {COMPANY} - -
STR_02BB_TOWN_DIRECTORY :Directorio de cidades
STR_02BD :{BLACK}{STRING}
STR_02BF_CUSTOM :Persoalizado
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
@@ -773,7 +772,7 @@ STR_TOWNNAME_SWEDISH :Sueco
STR_TOWNNAME_DUTCH :Holandés
STR_TOWNNAME_FINNISH :Finés
STR_TOWNNAME_POLISH :Polaco
STR_TOWNNAME_SLOVAKISH :Eslovaco
STR_TOWNNAME_SLOVAK :Eslovaco
STR_TOWNNAME_NORWEGIAN :Noruegués
STR_TOWNNAME_HUNGARIAN :Húngaro
STR_TOWNNAME_AUSTRIAN :Austríaco
@@ -806,7 +805,7 @@ STR_CURR_ITL :Lira Italiana (
STR_CURR_NLG :Florín Holandés (NLG)
STR_CURR_NOK :Corona Norueguesa (NOK)
STR_CURR_PLN :Zloty Polaco (PLN)
STR_CURR_ROL :Leu Rumano (ROL)
STR_CURR_RON :Leu Rumano (RON)
STR_CURR_RUR :Rublo Ruso (RUR)
STR_CURR_SIT :Tolar Esloveno (SIT)
STR_CURR_SEK :Corona Sueca (SEK)
@@ -892,6 +891,8 @@ STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Permiti
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}Permitir áreas de captura máis realistas: {ORANGE}{STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}Permiti-la eliminación de máis estradas, etc... das cidades: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAMMOTHTRAINS :{LTBLUE}Permiti-la construcción de trens moi largos: {ORANGE}{STRING}
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_ORIGINAL :Orixinal
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_REALISTIC :Realista
STR_CONFIG_SETTING_FORBID_90_DEG :{LTBLUE}Prohibir os trens e os barcos xirar 90 graos: {ORANGE}{STRING} {LTBLUE} (require NPF)
STR_CONFIG_SETTING_JOINSTATIONS :{LTBLUE}Xunta-las estacións construídas xuntas: {ORANGE}{STRING}
STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}Usa-lo algoritmo de carga mellorado: {ORANGE}{STRING}
@@ -929,6 +930,7 @@ STR_CONFIG_SETTING_ORDER_REVIEW :{LTBLUE}Revisa-
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :non
STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :si, pero exclúe os vehículos parados
STR_CONFIG_SETTING_ORDER_REVIEW_ON :de tódolos vehículos
STR_CONFIG_SETTING_WARN_INCOME_LESS :{LTBLUE}Avisar se os ingresos dun vehículo son negativos: {ORANGE}{STRING}
STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :{LTBLUE}Os vehículos nunca caducan: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTORENEW_VEHICLE :{LTBLUE}Autorenova-los vehículos cando envellezan: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTORENEW_MONTHS :{LTBLUE}Autorenovar {ORANGE}{STRING}{LTBLUE} meses antes/despois da idade máxima
@@ -1016,6 +1018,7 @@ STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :{LTBLUE}Deshabi
STR_CONFIG_SETTING_AI_BUILDS_SHIPS :{LTBLUE}Deshabilita-los barcos para o ordenador: {ORANGE}{STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT :{LTBLUE}Intervalos de servicio en porcentaxes: {ORANGE}{STRING}
STR_CONFIG_SETTING_SERVINT_TRAINS :{LTBLUE}Intervalo de servicio para os trens: {ORANGE}{STRING} días/%
STR_CONFIG_SETTING_SERVINT_TRAINS_DISABLED :{LTBLUE}Intervalo de servicio para os trens: {ORANGE}deshabilitado
STR_CONFIG_SETTING_SERVINT_ROADVEH :{LTBLUE}Intervalo de servicio para os vehículos de estrada: {ORANGE}{STRING} días/%
@@ -1049,6 +1052,7 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :mellores estrad
STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :Reixa 2x2
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :Reixa 3x3
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :aleatorio
STR_CONFIG_SETTING_NOISE_LEVEL :{LTBLUE}Permitir á cidade controla-lo nivel de ruído dos aeroportos: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOOLBAR_POS :{LTBLUE}Posición da barra de ferramentas principal: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOOLBAR_POS_LEFT :Esquerda
@@ -1073,12 +1077,12 @@ STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehícu
STR_CONFIG_SETTING_STATIONS :{ORANGE}Estacións
STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economía
STR_CONFIG_SETTING_AI :{ORANGE}Competidores
STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Sinais
STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trens
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Cidades
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrias
STR_CONFIG_SETTING_DISABLED :deshabilitado
STR_CONFIG_SETTING_INT32 :{NUM}
STR_CONFIG_SETTING_CURRENCY :{CURRENCY}
STR_CONFIG_SETTING_QUERY_CAPT :{WHITE}Cambia-lo valor
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}Buscador de ruta para trens: {ORANGE}{STRING}
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NTP :NTP {RED}(Non recomendado)
@@ -1093,6 +1097,12 @@ STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :Orixinal {BLUE}
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_NPF :NPF
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(Non recomendado)
STR_CONFIG_SETTING_MAP_X :{LTBLUE}Tamaño X do mapa: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAP_Y :{LTBLUE}Tamaño Y do mapa: {ORANGE}{STRING}
STR_CONFIG_SETTING_DISABLED :deshabilitado
STR_CONFIG_SETTING_INT32 :{NUM}
STR_CONFIG_SETTING_CURRENCY :{CURRENCY}
STR_CONFIG_SETTING_QUERY_CAPT :{WHITE}Cambia-lo valor
STR_TEMPERATE_LANDSCAPE :Escenario temperado
STR_SUB_ARCTIC_LANDSCAPE :Escenario sub-ártico
STR_SUB_TROPICAL_LANDSCAPE :Escenario sub-tropical
@@ -1199,7 +1209,6 @@ STR_RAIL_REFIT_VEHICLE :{BLACK}Reaxusta
STR_RAIL_SELECT_TYPE_OF_CARGO_FOR :{BLACK}Selecciona o tipo de carga que levará o tren
STR_RAIL_REFIT_TO_CARRY_HIGHLIGHTED :{BLACK}Reaxusta-lo tren para o tipo de carga seleccionado
STR_RAIL_CAN_T_REFIT_VEHICLE :{WHITE}No se pode reaxusta-lo tren...
STR_CONFIG_SETTING_SERVINT_ISPERCENT :{LTBLUE}Intervalos de servicio en porcentaxes: {ORANGE}{STRING}
STR_CONFIG_GAME_PRODUCTION :{WHITE}Cambiar producción
############ network gui strings
@@ -1444,8 +1453,6 @@ STR_NETWORK_SEND :{BLACK}Enviar
############ end network gui strings
STR_CONFIG_SETTING_MAP_X :{LTBLUE}Tamaño X do mapa: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAP_Y :{LTBLUE}Tamaño Y do mapa: {ORANGE}{STRING}
##### PNG-MAP-Loader
@@ -2048,6 +2055,7 @@ STR_NUM_VERY_LOW :Moi baixo
STR_6816_LOW :Baixo
STR_6817_NORMAL :Normal
STR_6818_HIGH :Alto
STR_02BF_CUSTOM :Persoalizado
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :Moi Lento
@@ -3447,7 +3455,6 @@ STR_OSK_KEYBOARD_LAYOUT_CAPS :~!@#$%^&*()_+|Q
########
############ town controlled noise level
STR_CONFIG_SETTING_NOISE_LEVEL :{LTBLUE}Permitir á cidade controla-lo nivel de ruído dos aeroportos: {ORANGE}{STRING}
STR_NOISE_IN_TOWN :{BLACK}Límite de ruído na cidade: {ORANGE}{COMMA}{BLACK} máx: {ORANGE}{COMMA}
STR_STATION_NOISE :{BLACK}Ruído xerado: {GOLD}{COMMA}
########

View File

@@ -590,7 +590,7 @@ STR_0229_DECREASE_SIZE_OF_LAND_AREA :{BLACK}Landflä
STR_022A_GENERATE_RANDOM_LAND :{BLACK}Erzeuge Land durch Zufall
STR_022B_RESET_LANDSCAPE :{BLACK}Landfläche wiederherstellen
STR_022C_RESET_LANDSCAPE :{WHITE}Landfläche wiederherstellen
STR_RESET_LANDSCAPE_TOOLTIP :{BLACK}Das gesamte Spielereigentum von der Karte entfernen
STR_RESET_LANDSCAPE_TOOLTIP :{BLACK}Das gesamte Spielereigentum vom Spielfeld entfernen
STR_RESET_LANDSCAPE_CONFIRMATION_TEXT :{WHITE}Soll wirklich das gesamte Spielereigentum entfernt werden?
STR_022E_LANDSCAPE_GENERATION :{BLACK}Landfläche erzeugen
STR_022F_TOWN_GENERATION :{BLACK}Stadt gründen
@@ -622,7 +622,7 @@ STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Felsige
STR_028D_PLACE_LIGHTHOUSE :{BLACK}Leuchtturm errichten
STR_028E_PLACE_TRANSMITTER :{BLACK}Sendemast errichten
STR_028F_DEFINE_DESERT_AREA :{BLACK}Wüstengebiet anlegen{}Zum Entfernen Strg-Taste drücken
STR_CREATE_LAKE :{BLACK}Wasser erzeugen.{}Baut einen Kanal. Bei gedrückter Strg-Taste wird ein Wasserfeld erzeugt, das umliegendes Land flutet.
STR_CREATE_LAKE :{BLACK}Wasser erzeugen.{}Baut einen Kanal. Auf Meereshöhe wird bei gedrückter Strg-Taste ein Wasserfeld erzeugt, welches umliegendes Land flutet.
STR_CREATE_RIVER :{BLACK}Flüsse platzieren.
STR_0290_DELETE :{BLACK}Löschen
STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}Diese Stadt vollständig löschen
@@ -786,7 +786,7 @@ STR_TOWNNAME_SWEDISH :Schwedisch
STR_TOWNNAME_DUTCH :Niederländisch
STR_TOWNNAME_FINNISH :Finnisch
STR_TOWNNAME_POLISH :Polnisch
STR_TOWNNAME_SLOVAKISH :Slovakisch
STR_TOWNNAME_SLOVAK :Slovakisch
STR_TOWNNAME_NORWEGIAN :Norwegisch
STR_TOWNNAME_HUNGARIAN :Ungarisch
STR_TOWNNAME_AUSTRIAN :Österreichisch
@@ -819,7 +819,7 @@ STR_CURR_ITL :Italienische Li
STR_CURR_NLG :Niederländ. Gulden (NLG)
STR_CURR_NOK :Norwegische Kronen (NOK)
STR_CURR_PLN :Polnische Zloty (PLN)
STR_CURR_ROL :Rumänische Lei (ROL)
STR_CURR_RON :Rumänische Lei (RON)
STR_CURR_RUR :Russische Rubel (RUR)
STR_CURR_SIT :Slovenische Taler (SIT)
STR_CURR_SEK :Schwedische Kronen (SEK)
@@ -848,8 +848,8 @@ STR_OPTIONS_SCREENSHOT_FORMAT_TIP :{BLACK}Format a
STR_OPTIONS_BASE_GRF :{BLACK}Standard Grafik
STR_OPTIONS_BASE_GRF_CBO :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
STR_OPTIONS_BASE_GRF_TIP :{BLACK}Wähle die Grafik, die du nutzen möchtest
STR_OPTIONS_BASE_GRF_TIP :{BLACK}Zu benutzendes Set an Basisgrafiken auswählen
STR_AUTOSAVE_1_MONTH :Jeden Monat
STR_AUTOSAVE_FAILED :{WHITE}Autosicherung fehlgeschlagen
@@ -987,10 +987,10 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :rechts
STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :{LTBLUE}Höhenstufe des Spielfeldes in einem flachen Szenario: {ORANGE}{STRING}
STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :{LTBLUE}Landschaftsbau am Spielfeldrand erlauben: {ORANGE}{STRING}
STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE} Eines oder mehrere Felder am nördlichen Spielfeldrand sind nicht leer
STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE} Eines oder mehrere Felder am Spielfeldrand sind nicht Wasser
STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Eines oder mehrere Felder am Spielfeldrand sind nicht Wasser
STR_CONFIG_SETTING_STATION_SPREAD :{LTBLUE}Maximale Stationsgröße: {ORANGE}{STRING} {RED}(Hoher Wert verlangsamt das Spiel)
STR_CONFIG_SETTING_SERVICEATHELIPAD :{LTBLUE}Hubschrauber auf Helipads automatisch warten: {ORANGE}{STRING}
STR_CONFIG_SETTING_SERVICEATHELIPAD :{LTBLUE}Hubschrauber auf Landeplatz automatisch warten: {ORANGE}{STRING}
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Werkzeugleiste für Landschaftsbau an die Bauwerkzeuge binden: {ORANGE}{STRING}
STR_CONFIG_SETTING_REVERSE_SCROLLING :{LTBLUE}Bei Rechtsklick Ansicht in die Gegenrichtung verschieben: {ORANGE}{STRING}
STR_CONFIG_SETTING_SMOOTH_SCROLLING :{LTBLUE}Optimierten Bildlauf in den Ansichten verwenden: {ORANGE}{STRING}
@@ -1198,7 +1198,7 @@ STR_CANT_REMOVE_TRAIN_WAYPOINT :{WHITE}Wegpunkt
STR_BUILD_AUTORAIL_TIP :{BLACK}Gleise legen mit automatischer Wahl der Ausrichtung
STR_NO_TOWN_IN_SCENARIO :{WHITE}...in diesem Szenario gibt es keine Stadt
STR_COULD_NOT_CREATE_TOWN :{WHITE}Kartengenerierung wurde abgebrochen... {} ...kein brauchbarer Platz für eine Stadt gefunden
STR_COULD_NOT_CREATE_TOWN :{WHITE}Spielfeldgenerierung wurde abgebrochen... {} ...kein brauchbarer Platz für eine Stadt gefunden
STR_MANY_RANDOM_TOWNS :{BLACK}Viele zufällige Städte
STR_RANDOM_TOWNS_TIP :{BLACK}Das Spielfeld mit zufällig platzierten Städten füllen
@@ -1589,21 +1589,21 @@ STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO :{BLACK}Ausricht
STR_1021_RAILROAD_TRACK :Gleis
STR_1023_RAILROAD_TRAIN_DEPOT :Zugdepot
STR_1024_AREA_IS_OWNED_BY_ANOTHER :{WHITE}...Gelände gehört jemand anderem
STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS :Gleis mit normalen Signalen
STR_RAILROAD_TRACK_WITH_PRESIGNALS :Gleis mit Vorsignalen
STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS :Gleis mit Blocksignalen
STR_RAILROAD_TRACK_WITH_PRESIGNALS :Gleis mit Einfahrsignalen
STR_RAILROAD_TRACK_WITH_EXITSIGNALS :Gleis mit Ausfahrsignalen
STR_RAILROAD_TRACK_WITH_COMBOSIGNALS :Gleis mit Kombinationssignalen
STR_RAILROAD_TRACK_WITH_PBSSIGNALS :Gleis mit Pfadsignal
STR_RAILROAD_TRACK_WITH_NOENTRYSIGNALS :Gleis mit einseitigem Pfadsignal
STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS :Gleis mit Vor- und Hauptsignalen
STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS :Gleis mit Haupt- und Ausfahrsignalen
STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS :Gleis mit normalen und Kombinationssignalen
STR_RAILROAD_TRACK_WITH_NORMAL_PBSSIGNALS :Gleis mit normalem Signal und Pfadsignal
STR_RAILROAD_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Gleis mit normalem Signal und einseitigem Pfadsignal
STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS :Gleis mit Vor- und Ausfahrsignalen
STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS :Gleis mit Vor- und Kombinationssignalen
STR_RAILROAD_TRACK_WITH_PRE_PBSSIGNALS :Gleis mit Vor- und Pfadsignal
STR_RAILROAD_TRACK_WITH_PRE_NOENTRYSIGNALS :Gleis mit Vor- und einseitigem Pfadsignal
STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS :Gleis mit Block- und Einfahrsignalen
STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS :Gleis mit Block- und Ausfahrsignalen
STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS :Gleis mit Block- und Kombinationssignalen
STR_RAILROAD_TRACK_WITH_NORMAL_PBSSIGNALS :Gleis mit Blocksignal und Pfadsignal
STR_RAILROAD_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Gleis mit Blocksignal und einseitigem Pfadsignal
STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS :Gleis mit Ein- und Ausfahrsignalen
STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS :Gleis mit Einfahr- und Kombinationssignalen
STR_RAILROAD_TRACK_WITH_PRE_PBSSIGNALS :Gleis mit Einfahr- und Pfadsignal
STR_RAILROAD_TRACK_WITH_PRE_NOENTRYSIGNALS :Gleis mit Einfahr- und einseitigem Pfadsignal
STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS :Gleis mit Ausfahr- und Kombinationssignalen
STR_RAILROAD_TRACK_WITH_EXIT_PBSSIGNALS :Gleis mit Ausfahr- und Pfadsignal
STR_RAILROAD_TRACK_WITH_EXIT_NOENTRYSIGNALS :Gleis mit Ausfahr- und einseitigem Pfadsignal
@@ -1914,7 +1914,7 @@ STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Spielstandsdate
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Spielstand wurde mit neuerer Version erstellt
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Datei kann nicht gelesen werden
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :Datei kann nicht geschrieben werden
STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Prüfung der Dateningetrität fehlgeschlagen
STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Prüfung der Datenintegrität fehlgeschlagen
STR_400A_LIST_OF_DRIVES_DIRECTORIES :{BLACK}Liste der Laufwerke, Verzeichnisse und gespeicherten Spiele
STR_400B_CURRENTLY_SELECTED_NAME :{BLACK}Ausgewählter Spielname
STR_400C_DELETE_THE_CURRENTLY_SELECTED :{BLACK}Lösche gewählten Spielstand
@@ -2000,7 +2000,7 @@ STR_INDUSTRY_PROD_GODOWN :{BLACK}{BIGFONT
##id 0x5000
STR_5003_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Ein anderer Tunnel ist im Weg
STR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}Tunnel würde außerhalb der Karte enden
STR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}Tunnel würde außerhalb des Spielfelds enden
STR_5005_UNABLE_TO_EXCAVATE_LAND :{WHITE}Land kann am anderen Ende des Tunnels nicht angehoben werden
STR_5006_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Der Tunnel muss zuerst abgerissen werden
STR_5007_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Die Brücke muss erst abgerissen werden
@@ -2242,6 +2242,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Wähle w
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Wähle zufälliges neues Gesicht
STR_704C_KEY :{BLACK}Legende
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}Legende des Diagramms
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Zeige detailierte Leistungsaufschlüsselung
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Legende des Firmendiagramms
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}Graph der Firma ein-/ausblenden
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Beförderte Frachteinheiten
@@ -2336,8 +2337,8 @@ STR_LIVERY_SHIP_TIP :{BLACK}Schiffsf
STR_LIVERY_AIRCRAFT_TIP :{BLACK}Flugzeugfarbschema anzeigen
STR_LIVERY_PRIMARY_TIP :{BLACK}Wähle die Hauptfarbe für das gewählte Schema aus.
STR_LIVERY_SECONDARY_TIP :{BLACK}Wähle die Nebenfarbe für das ausgewählte Schema.
STR_LIVERY_PANEL_TIP :{BLACK}Wähle ein Farbschema oder mehrere Farbschemen(mit Strg+Klick) aus, um diese zu ändern. Klicke in das Kästchen um ein Schema zu aktivieren.
STR_LIVERY_PANEL_TIP :{BLACK}Wähle ein Farbschema oder mehrere Farbschemata mittels Strg+Klick aus, um diese zu ändern. Klicke in das Kästchen um ein Schema zu aktivieren.
##id 0x8000
STR_8000_KIRBY_PAUL_TANK_STEAM :Kirby Paul Tank (Dampf)
STR_8001_MJS_250_DIESEL :MJS 250 (Diesel)
@@ -2613,7 +2614,7 @@ STR_8804 :{SETX 10}{COMMA
STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {SETX 30}{STRING} {STRING}
STR_ORDER_NON_STOP :{BLACK}ohne Halt
STR_ORDER_GO_TO :Fahre zu
STR_ORDER_GO_NON_STOP_TO :Fahre ohne Halt nach
STR_ORDER_GO_NON_STOP_TO :Fahre ohne Halt zu
STR_ORDER_GO_VIA :Fahre über
STR_ORDER_GO_NON_STOP_VIA :Fahre ohne Halt über
STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Vollladen einer Fracht
@@ -2650,17 +2651,17 @@ STR_ORDER_GO_TO_NEAREST_DEPOT :Fahre zum näch
STR_ORDER_GO_TO_NEAREST_HANGAR :Fahre zum nächsten Hangar
STR_ORDER_NEAREST_DEPOT :dem nächsten
STR_ORDER_NEAREST_HANGAR :dem nächsten Hangar
STR_ORDER_SERVICE_AT :Wartung in
STR_ORDER_SERVICE_NON_STOP_AT :Fahre ohne Halt zur Wartung in
STR_ORDER_TRAIN_DEPOT :Zugdepot
STR_ORDER_ROAD_DEPOT :Straßenfahrzeugdepot
STR_ORDER_SHIP_DEPOT :Werft
STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
STR_ORDER_SERVICE_AT :Falls nötig, Wartung in
STR_ORDER_SERVICE_NON_STOP_AT :Fahre ohne Halt Zwecks Wartung zu
STR_ORDER_TRAIN_DEPOT :{G=n}Zugdepot
STR_ORDER_ROAD_DEPOT :{G=n}Straßenfahrzeugdepot
STR_ORDER_SHIP_DEPOT :{G=w}Werft
STR_GO_TO_DEPOT :{STRING}{G 2 "m" "r" "m" "den"} {2:STRING} {1:TOWN}
STR_GO_TO_NEAREST_DEPOT :{STRING}{G 2 m r m "den"} {STRING} {STRING}
STR_GO_TO_HANGAR :{STRING} {STATION} Hangar
STR_ORDER_DROP_GO_ALWAYS_DEPOT :Gehe immer
STR_ORDER_DROP_SERVICE_DEPOT :Wartung wenn benötigt
STR_ORDER_DROP_SERVICE_DEPOT :Wartung wenn nötig
STR_ORDER_DROP_HALT_DEPOT :Stopp
STR_ORDER_CONDITIONAL :Bedingter Sprung zu Auftrag
@@ -2803,7 +2804,7 @@ STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten:
STR_885C_BROKEN_DOWN :{RED}Panne
STR_885D_AGE_RUNNING_COST_YR :{BLACK}Alter: {LTBLUE}{STRING}{BLACK} Betriebskosten: {LTBLUE}{CURRENCY} pro Jahr
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_S} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Höchstgeschwindigkeit: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_S} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Geschw.: {LTBLUE}{VELOCITY} {BLACK}Zugkraft: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_S} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Max. Zugkraft: {LTBLUE}{FORCE}
STR_885F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Gewinn lfd. Jahr: {LTBLUE}{CURRENCY} (vergangenes Jahr: {CURRENCY})
STR_8860_RELIABILITY_BREAKDOWNS :{BLACK}Zuverlässigkeit: {LTBLUE}{COMMA}% {BLACK}Ausfälle seit letzter Wartung: {LTBLUE}{COMMA}
STR_8861_STOPPED :{RED}Angehalten
@@ -3039,7 +3040,7 @@ STR_A031_CAN_T_NAME_AIRCRAFT :{WHITE}Flugzeug
STR_A032_NAME_AIRCRAFT :{BLACK}Flugzeugname
STR_A033_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Die Einwohner feiern . . .{}Das erste Flugzeug startet von {STATION}!
STR_A034_PLANE_CRASH_DIE_IN_FIREBALL :{BLACK}{BIGFONT}Flugzeugabsturz!{}{COMMA} sterben in einem Feuerball auf {STATION}
STR_PLANE_CRASH_OUT_OF_FUEL :{BLACK}{BIGFONT}Flugzeugabsturz!{}Dem Flugzeug ging der Treibstoff aus, {COMMA} sterben in einem Feuerball!
STR_PLANE_CRASH_OUT_OF_FUEL :{BLACK}{BIGFONT}Flugzeugabsturz!{}Dem Flugzeug ging der Treibstoff aus, {COMMA} {P stirbt sterben} in einem Feuerball!
STR_A036 :{TINYFONT}{BLACK}{STATION}
STR_A037_RENAME :{BLACK}Umbenennen
STR_A038_RENAME_AIRCRAFT_TYPE :{BLACK}Flugzeug umbenennen
@@ -3123,7 +3124,7 @@ STR_NEWGRF_ERROR_INVALID_PARAMETER :{SKIP}Falscher
STR_NEWGRF_ERROR_LOAD_BEFORE :{SKIP}{STRING} muss vor {STRING} geladen werden.
STR_NEWGRF_ERROR_LOAD_AFTER :{SKIP}{STRING} muss nach {STRING} geladen werden.
STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{SKIP}{STRING} Benötigt OpenTTD-Version {STRING} oder höher.
STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :der GRF-Datei, die es übersetzen soll,
STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :der NewGRF-Datei, die es übersetzen soll,
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Zu viele NewGRFs geladen.
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Das Laden von {STRING} als statisches NewGRF mit {STRING} könnte Synchronisationsfehler hervorrufen.
STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Unerwartetes Sprite.
@@ -3156,14 +3157,14 @@ STR_NEWGRF_ADD_FILE :{BLACK}Zur Ausw
STR_NEWGRF_ADD_FILE_TIP :{BLACK}Ausgewählte NewGRF-Datei zur Konfiguration hinzufügen
STR_NEWGRF_RESCAN_FILES :{BLACK}Dateiliste aktualisieren
STR_NEWGRF_RESCAN_FILES_TIP :{BLACK}Liste der verfügbaren NewGRF-Dateien aktualisieren
STR_NEWGRF_DUPLICATE_GRFID :{WHITE}Datei kann nicht hinzugefügt werden: GRF-ID bereits vergeben
STR_NEWGRF_DUPLICATE_GRFID :{WHITE}Datei kann nicht hinzugefügt werden: NewGRF-ID bereits vergeben
STR_NEWGRF_NOT_FOUND :{RED}Zugehörige Datei nicht gefunden
STR_NEWGRF_DISABLED :{RED}Deaktiviert
STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Passende Datei nicht gefunden (kompatible GRF geladen)
STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Passende Datei nicht gefunden (kompatible NewGRF geladen)
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Kompatible GRF(s) für fehlende Dateien geladen
STR_NEWGRF_DISABLED_WARNING :{WHITE}Fehlende GRF-Dateien wurden deaktiviert.
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Kompatible NewGRF(s) für fehlende Dateien geladen
STR_NEWGRF_DISABLED_WARNING :{WHITE}Fehlende NewGRF-Dateien wurden deaktiviert.
STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}GRF-Datei(en) fehlen
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Das Beenden der Pause kann OpenTTD zum Absturz bringen. Bitte keine Fehlerberichte bei auftretenden Fehlern senden. {}Pause wirklich beenden?
@@ -3173,6 +3174,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Zug '{VE
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' liefert falsche Informationen
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Fracht / Ersetzungs - Informationen für '{1:ENGINE}' weichen von der Einkaufsliste nach dem Kauf ab. Das kann dazu führen, dass das Umrüsten beim autmatisches Ersetzen oder Erneuern nicht korrekt funktioniert
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' verursachte eine Endlosschleife im 'Production callback'.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Spiel wurde in einer Version ohne Straßenbahnunterstützung gespeichert. Alle Straßenbahnen wurden entfernt.
@@ -3227,7 +3229,7 @@ STR_DEPOT_AUTOREPLACE_AIRCRAFT_TIP :{BLACK}Alle Flu
STR_VEHICLE_LIST_TRAIN_DEPOT :{BLACK}{STRING} - {COMMA} {P Zug Züge}
STR_VEHICLE_LIST_ROADVEH_DEPOT :{BLACK}{STRING} - {COMMA} Fahrzeug{P "" e}
STR_VEHICLE_LIST_SHIP_DEPOT :{BLACK}{STRING} - {COMMA} Schiff{P "" e}
STR_VEHICLE_LIST_AIRCRAFT_DEPOT :{BLACK}{STRING} - {COMMA} Flugzeug
STR_VEHICLE_LIST_AIRCRAFT_DEPOT :{BLACK}{STRING} - {COMMA} Flugzeug{P "" e}
STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} ersetzen
STR_REPLACE_VEHICLES_START :{BLACK}Fahrzeugersetzung an
@@ -3286,7 +3288,7 @@ STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Geschw.:
STR_PURCHASE_INFO_SPEED :{BLACK}Geschwindigkeit: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_RUNNINGCOST :{BLACK}Betriebskosten: {GOLD}{CURRENCY} pro Jahr
STR_PURCHASE_INFO_CAPACITY :{BLACK}Kapazität: {GOLD}{CARGO} {STRING}
STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Entwurf: {GOLD}{NUM}{BLACK} Betriebsdauer: {GOLD}{COMMA} Jahre
STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Entwurf: {GOLD}{NUM}{BLACK} Betriebsdauer: {GOLD}{COMMA} Jahr{P "" e}
STR_PURCHASE_INFO_RELIABILITY :{BLACK}Max. Zuverlässigkeit: {GOLD}{COMMA}%
STR_PURCHASE_INFO_COST :{BLACK}Kosten: {GOLD}{CURRENCY}
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Gewicht: {GOLD}{WEIGHT_S} ({WEIGHT_S})
@@ -3341,7 +3343,7 @@ STR_GENERATION_PROGRESS :{BLACK}{NUM} /
STR_WORLD_GENERATION :{BLACK}Spielfeldgenerierung
STR_TREE_GENERATION :{BLACK}Baumerzeugung
STR_UNMOVABLE_GENERATION :{BLACK}Unbewegliche Objekte werden erzeugt
STR_CLEARING_TILES :{BLACK}Leere, felsige Landschaft wird erzeugt
STR_CLEARING_TILES :{BLACK}Raue, felsige Landschaft wird erzeugt
STR_SETTINGUP_GAME :{BLACK}Spiel wird vorbereitet
STR_PREPARING_TILELOOP :{BLACK}Spielfeld wird belebt
STR_PREPARING_GAME :{BLACK}Spiel wird vorbereitet
@@ -3360,7 +3362,7 @@ STR_SMALLMAP_CENTER :{BLACK}Zusatzan
STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRING} ({NUM})
# Strings for map borders at game generation
STR_BORDER_TYPE :{BLACK}Kartenränder:
STR_BORDER_TYPE :{BLACK}Spielfeldränder:
STR_NORTHWEST :{BLACK}Nordwesten
STR_NORTHEAST :{BLACK}Nordosten
STR_SOUTHEAST :{BLACK}Südosten
@@ -3405,21 +3407,21 @@ STR_JUST_DATE_LONG :{DATE_LONG}
STR_JUST_DATE_ISO :{DATE_ISO}
########
STR_FEEDER_CARGO_VALUE :{BLACK}Transfer-Kredit: {LTBLUE}{CURRENCY}
STR_FEEDER_CARGO_VALUE :{BLACK}Transfer-Einnahmen: {LTBLUE}{CURRENCY}
STR_DRIVE_THROUGH_ERROR_ON_TOWN_ROAD :{WHITE}...diese Straße ist in kommunaler Trägerschaft
STR_DRIVE_THROUGH_ERROR_DIRECTION :{WHITE}...Straße verläuft in die falsche Richtung
STR_TRANSPARENCY_TOOLB :{WHITE}Transparenzoptionen
STR_TRANSPARENT_SIGNS_DESC :{BLACK}Transparenz für Stationsschilder einstellen
STR_TRANSPARENT_TREES_DESC :{BLACK}Transparenz für Bäume einstellen
STR_TRANSPARENT_HOUSES_DESC :{BLACK}Transparenz für Häuser einstellen
STR_TRANSPARENT_INDUSTRIES_DESC :{BLACK}Transparenz für Industrien einstellen
STR_TRANSPARENT_BUILDINGS_DESC :{BLACK}Transparenz für Gebäude wie Bahnhöfe, Depots, Wegpunkte und Oberleitung einstellen
STR_TRANSPARENT_BRIDGES_DESC :{BLACK}Transparenz für Brücken einstellen
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Transparenz für Bauten wie Leuchttürme und Antennen, evtl. in der Zukunft auch für Sehenswürdigkeiten, einstellen
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Transparente Oberleitungen. Strg+Klick zum feststellen.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Transparenz für Ladestandsanzeige einstellen
STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Objekte unsichtbar machen anstelle von transparent
STR_TRANSPARENCY_TOOLB :{WHITE}Transparenzeinstellungen
STR_TRANSPARENT_SIGNS_DESC :{BLACK}Transparenz für Stationsschilder einstellen. Strg+Klick, um Umschalten zu verhindern.
STR_TRANSPARENT_TREES_DESC :{BLACK}Transparenz für Bäume einstellen. Strg+Klick, um Umschalten zu verhindern.
STR_TRANSPARENT_HOUSES_DESC :{BLACK}Transparenz für Häuser einstellen. Strg+Klick, um Umschalten zu verhindern.
STR_TRANSPARENT_INDUSTRIES_DESC :{BLACK}Transparenz für Industrien einstellen. Strg+Klick, um Umschalten zu verhindern.
STR_TRANSPARENT_BUILDINGS_DESC :{BLACK}Transparenz für Gebäude wie Bahnhöfe, Depots und Wegpunkte einstellen. Strg+Klick, um Umschalten zu verhindern.
STR_TRANSPARENT_BRIDGES_DESC :{BLACK}Transparenz für Brücken einstellen. Strg+Klick, um Umschalten zu verhindern.
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Transparenz für Bauten wie Leuchttürme und Sendemasten einstellen. Strg+Klick, um Umschalten zu verhindern.
STR_TRANSPARENT_CATENARY_DESC :{BLACK}Transparenz für Oberleitungen. Strg+Klick, um Umschalten zu verhindern.
STR_TRANSPARENT_LOADING_DESC :{BLACK}Transparenz für Ladestandsanzeige einstellen. Strg+Klick, um Umschalten zu verhindern.
STR_TRANSPARENT_INVISIBLE_DESC :{BLACK}Objekte unsichtbar statt transparent machen
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
@@ -3490,15 +3492,15 @@ STR_FACE_SIMPLE :{BLACK}Einfach
STR_FACE_SIMPLE_TIP :{BLACK}Einfache Wahl des Gesichts
STR_FACE_LOAD :{BLACK}Laden
STR_FACE_LOAD_TIP :{BLACK}Lade bevorzugtes Gesicht
STR_FACE_LOAD_DONE :{WHITE}Dein bevorzugtes Gesicht wurde aus der OpenTTD-Konfigurationsdatei geladen.
STR_FACE_LOAD_DONE :{WHITE}Das bevorzugte Gesicht wurde aus der OpenTTD-Konfigurationsdatei geladen.
STR_FACE_FACECODE :{BLACK}Gesichtsnummer
STR_FACE_FACECODE_TIP :{BLACK}Betrachte / Setze Nummer des Gesichts
STR_FACE_FACECODE_CAPTION :{WHITE}Betrachte / Setze Nummer des Gesichts
STR_FACE_FACECODE_TIP :{BLACK}Nummer des Gesichts anschauen / setzen
STR_FACE_FACECODE_CAPTION :{WHITE}Nummer des Gesichts anschauen / setzen
STR_FACE_FACECODE_SET :{WHITE}Neue Nummer wurde für das Gesicht registriert.
STR_FACE_FACECODE_ERR :{WHITE}Konnte keine Nummer für das Gesicht registrieren, sie muss zwischen 0 und 4.294.967.295 liegen!
STR_FACE_SAVE :{BLACK}Speichern
STR_FACE_SAVE_TIP :{BLACK}Speichere bevorzugtes Gesicht
STR_FACE_SAVE_DONE :{WHITE}Dieses Gesicht wird als bevorzugtes Gesicht in der OpenTTD-Konfigurationsdatei gespiechert.
STR_FACE_SAVE_DONE :{WHITE}Dieses Gesicht wird als bevorzugtes Gesicht in der OpenTTD-Konfigurationsdatei gespeichert.
STR_FACE_EUROPEAN :{BLACK}Europäisch
STR_FACE_SELECT_EUROPEAN :{BLACK}Auswahl europäischer Gesichter
STR_FACE_AFRICAN :{BLACK}Afrikanisch

View File

@@ -780,7 +780,7 @@ STR_TOWNNAME_SWEDISH :שוודית
STR_TOWNNAME_DUTCH :הולנדית
STR_TOWNNAME_FINNISH :פינית
STR_TOWNNAME_POLISH :פולנית
STR_TOWNNAME_SLOVAKISH :סלובקית
STR_TOWNNAME_SLOVAK :סלובקית
STR_TOWNNAME_NORWEGIAN :נורבגית
STR_TOWNNAME_HUNGARIAN :הונגרית
STR_TOWNNAME_AUSTRIAN :אוסטרית
@@ -813,7 +813,7 @@ STR_CURR_ITL :(ITL) לירה
STR_CURR_NLG :(NLG) גילדן הולנדי
STR_CURR_NOK :(NOK) קרונה נורווגית
STR_CURR_PLN :(PLN) זלוטי פולני
STR_CURR_ROL :(ROL) ליו רומני
STR_CURR_RON :(RON) ליו רומני
STR_CURR_RUR :(RUR) רובל רוסי
STR_CURR_SIT :(SIT) טולר סלובני
STR_CURR_SEK :(SEK) קרונה שוודית

View File

@@ -352,7 +352,7 @@ STR_015F_QUIT :Kilépés
STR_ABANDON_GAME_QUERY :{YELLOW}Biztosan kilépsz ebből a játékból ?
STR_0161_QUIT_GAME :{WHITE}Kilépés a játékból
STR_SORT_ORDER_TIP :{BLACK}Csökkenő/növekvő sorbarendezés
STR_SORT_CRITERIA_TIP :{BLACK}Sorbarendezési kritérium
STR_SORT_CRITERIA_TIP :{BLACK}Sorbarendezési feltétel
STR_SORT_BY :{BLACK}Rendezés
STR_SORT_BY_POPULATION :{BLACK}Lakosság
@@ -819,7 +819,7 @@ STR_TOWNNAME_SWEDISH :Svéd
STR_TOWNNAME_DUTCH :Holland
STR_TOWNNAME_FINNISH :Finn
STR_TOWNNAME_POLISH :Lengyel
STR_TOWNNAME_SLOVAKISH :Szlovák
STR_TOWNNAME_SLOVAK :Szlovák
STR_TOWNNAME_NORWEGIAN :Norvég
STR_TOWNNAME_HUNGARIAN :Magyar
STR_TOWNNAME_AUSTRIAN :Osztrák
@@ -852,7 +852,7 @@ STR_CURR_ITL :Olasz Líra (IT
STR_CURR_NLG :Holland Guilder (NLG)
STR_CURR_NOK :Norvég Korona (NOK)
STR_CURR_PLN :Legyel Zlotyi (PLN)
STR_CURR_ROL :Román Lej (ROL)
STR_CURR_RON :Román Lej (RON)
STR_CURR_RUR :Orosz Rubel (RUR)
STR_CURR_SIT :Szlovén Tolár (SIT)
STR_CURR_SEK :Svéd Korona (SEK)
@@ -2312,6 +2312,7 @@ STR_704A_SELECT_FEMALE_FACES :{BLACK}Női arc
STR_704B_GENERATE_RANDOM_NEW_FACE :{BLACK}Véletlenszerű új arc létrehozása
STR_704C_KEY :{BLACK}Jelkulcs
STR_704D_SHOW_KEY_TO_GRAPHS :{BLACK}A grafikonok jelmagyarázata
STR_SHOW_DETAILED_PERFORMANCE_RATINGS :{BLACK}Részletes teljesítményértékelés mutatása
STR_704E_KEY_TO_COMPANY_GRAPHS :{WHITE}Jelmagyarázat a grafikonokhoz
STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY :{BLACK}A vállalat adatainak mutatása/elrejtése a grafikonon
STR_7050_UNITS_OF_CARGO_DELIVERED :{WHITE}Elszállított áruk mennyisége
@@ -2873,7 +2874,7 @@ STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Ár: {CU
STR_885C_BROKEN_DOWN :{RED}Lerobbant
STR_885D_AGE_RUNNING_COST_YR :{BLACK}Kor: {LTBLUE}{STRING}{BLACK} Működtetési költség: {LTBLUE}{CURRENCY}/év
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Súly: {LTBLUE}{WEIGHT_S} {BLACK}Teljesítmény: {LTBLUE}{POWER}{BLACK} Végsebesség: {LTBLUE} {VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Súly: {LTBLUE}{WEIGHT_S} {BLACK}Telj.: {LTBLUE}{POWER}{BLACK} Max. seb.: {LTBLUE}{VELOCITY} {BLACK}Vonóerő: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Tömeg: {LTBLUE}{WEIGHT_S} {BLACK}Teljesítmény: {LTBLUE}{POWER}{BLACK} Végsebesség: {LTBLUE}{VELOCITY} {BLACK}Vonóerő: {LTBLUE}{FORCE}
STR_885F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Idei haszon: {LTBLUE}{CURRENCY} (tavalyi: {CURRENCY})
STR_8860_RELIABILITY_BREAKDOWNS :{BLACK}Megbízhatóság: {LTBLUE}{COMMA}% {BLACK}Lerobbanások az utolsó javítás óta: {LTBLUE}{COMMA}
STR_8861_STOPPED :{RED}Áll
@@ -3164,7 +3165,7 @@ STR_PERFORMANCE_DETAIL_MIN_PROFIT_TIP :{BLACK}A két
STR_PERFORMANCE_DETAIL_MIN_INCOME_TIP :{BLACK}Az utóbbi 12 negyedév legalacsonyabb havi profitja
STR_PERFORMANCE_DETAIL_MAX_INCOME_TIP :{BLACK}Az utóbbi 12 negyedév legjövedelmezőbb havi profitja
STR_PERFORMANCE_DETAIL_DELIVERED_TIP :{BLACK}Utolsó négy negyedévben elszállított rakomány.
STR_PERFORMANCE_DETAIL_CARGO_TIP :{BLACK}Az utolsó negyedévben elszállított árúk típusa.
STR_PERFORMANCE_DETAIL_CARGO_TIP :{BLACK}Az utolsó negyedévben elszállított áruk típusa.
STR_PERFORMANCE_DETAIL_MONEY_TIP :{BLACK}Elérhető készpénz
STR_PERFORMANCE_DETAIL_LOAN_TIP :{BLACK}Magas kölcsönöd van?
STR_PERFORMANCE_DETAIL_TOTAL_TIP :{BLACK}Megszerzett pontok az elérhető pontokból
@@ -3243,6 +3244,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}A '{1:CO
STR_NEWGRF_BUGGY :{WHITE}A(z) '{0:STRING}' NewGRF helytelen információt tartalmaz.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}A(z) '{1:ENGINE}' rakomány/átalakítás információja a gyártás után különbözik a vételi listán találhatótól. Ez hibát okozhat az automatikus felújítás/lecserélés során az átalakításban.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' végtelen ciklust okozott a termelés folyamatnál.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}A játék olyan verzióban lett elmentve, ami nem támogatja a villamosokat . Az összes villamos törölve lett.

View File

@@ -608,6 +608,7 @@ STR_CANNOT_GENERATE_TOWN :{WHITE}Get ekki
STR_NO_SPACE_FOR_TOWN :{WHITE}...það er ekkert laust svæði á kortinu
STR_023B_INCREASE_SIZE_OF_TOWN :{BLACK}Stækka bæ
STR_023C_EXPAND :{BLACK}Stækka
STR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Bærinn getur ekki lagt vegi. Því er hægt að breyta í Þróaðri stillingar->Efnahagur->Bæir.
STR_023D_RANDOM_TOWN :{BLACK}Handahófskenndur bær
STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION :{BLACK}Byggja bæ á handahófskenndum stað
STR_0285_CAN_T_BUILD_HERE :{WHITE}Get ekki byggt {STRING} hérna...
@@ -627,7 +628,7 @@ STR_0290_DELETE :{BLACK}Eyða
STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}Eyða þessum bæ algjörlega
STR_0292_SAVE_SCENARIO :Vista kort
STR_0293_LOAD_SCENARIO :Opna kort
STR_MENU_LOAD_HEIGHTMAP :Hlaða hæðarkorti
STR_MENU_LOAD_HEIGHTMAP :Hlaða hæðakorti
STR_0294_QUIT_EDITOR :Hætta í kortagerð
STR_0295 :
STR_0296_QUIT :Hætta
@@ -635,8 +636,8 @@ STR_0297_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Vista ko
STR_0298_LOAD_SCENARIO :{WHITE}Opna kort
STR_0299_SAVE_SCENARIO :{WHITE}Vista kort
STR_029A_PLAY_SCENARIO :{BLACK}Spila kort
STR_PLAY_HEIGHTMAP :{BLACK}Spila á hæðarkorti
STR_PLAY_HEIGHTMAP_HINT :{BLACK}Hefja nýjan leik byggðan á hæðarkorti
STR_PLAY_HEIGHTMAP :{BLACK}Spila á hæðakorti
STR_PLAY_HEIGHTMAP_HINT :{BLACK}Hefja nýjan leik byggðan á hæðakorti
STR_QUIT_SCENARIO_QUERY :{YELLOW}Ertu viss um að þú viljir hætta í þessu korti ?
STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...aðeins hægt að byggja í bæjum með fleiri en 1200 íbúum
STR_029E_MOVE_THE_STARTING_DATE :{BLACK}Færa byrjunardagsetninguna aftur um 1 ár
@@ -665,9 +666,8 @@ STR_OFF :Af
STR_SUMMARY :Úrtak
STR_FULL :Allt
STR_02BA :{SILVER}- - {COMPANY} - -
STR_02BB_TOWN_DIRECTORY :Bæjarmappa
STR_02BB_TOWN_DIRECTORY :Listi yfir bæi
STR_02BD :{BLACK}{STRING}
STR_02BF_CUSTOM :Breytt
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
@@ -676,7 +676,7 @@ STR_02C6_DIFFICULTY_SETTINGS :Erfiðleikastig
STR_MENU_CONFIG_SETTINGS :Þróaðri stillingar
STR_NEWGRF_SETTINGS :NewGRF stillingar
STR_TRANSPARENCY_OPTIONS :Gegnsæisstillingar
STR_02CA_TOWN_NAMES_DISPLAYED :{SETX 12}Bæjarnöfn sýnd
STR_02CA_TOWN_NAMES_DISPLAYED :{SETX 12}Bæjanöfn sýnd
STR_02CC_STATION_NAMES_DISPLAYED :{SETX 12}Stöðvarnöfn sýnd
STR_02CE_SIGNS_DISPLAYED :{SETX 12}Skilti sýnd
STR_WAYPOINTS_DISPLAYED2 :{SETX 12}Millistöðvar sýndar
@@ -703,7 +703,7 @@ STR_02DD_SUBSIDIES :Samstarfssamnin
STR_02DE_MAP_OF_WORLD :Heimskort
STR_EXTRA_VIEW_PORT :Auka sjónarhorn
STR_SIGN_LIST :Skiltalisti
STR_02DF_TOWN_DIRECTORY :Bæjarmappa
STR_02DF_TOWN_DIRECTORY :Listi yfir bæi
STR_TOWN_POPULATION :{BLACK}Heildaríbúafjöldi: {COMMA}
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Sjónarhorn {COMMA}
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Afrita í sjónarhorn
@@ -722,7 +722,7 @@ STR_02E7 :{BLACK}{SKIP}{S
STR_02E8_SELECT_SIDE_OF_ROAD_FOR :{BLACK}Aksturstefna bifreiða
STR_02E9_DRIVE_ON_LEFT :Vinstristefna
STR_02EA_DRIVE_ON_RIGHT :Hægristefna
STR_02EB_TOWN_NAMES :{BLACK}Bæjarnöfn
STR_02EB_TOWN_NAMES :{BLACK}Bæjanöfn
STR_02EC :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
STR_02ED_SELECT_STYLE_OF_TOWN_NAMES :{BLACK}Tungumál bæjarnafna
@@ -786,7 +786,7 @@ STR_TOWNNAME_SWEDISH :Sænsk
STR_TOWNNAME_DUTCH :Hollensk
STR_TOWNNAME_FINNISH :Finnsk
STR_TOWNNAME_POLISH :Pólsk
STR_TOWNNAME_SLOVAKISH :Slóvakísk
STR_TOWNNAME_SLOVAK :Slóvakísk
STR_TOWNNAME_NORWEGIAN :Norsk
STR_TOWNNAME_HUNGARIAN :Ungversk
STR_TOWNNAME_AUSTRIAN :Austurrísk
@@ -819,7 +819,7 @@ STR_CURR_ITL :Ítölsk líra
STR_CURR_NLG :Hollensk gyllini (NLG)
STR_CURR_NOK :Norsk króna (NOK)
STR_CURR_PLN :Pólsk zloty (PLN)
STR_CURR_ROL :Rúmensk leu (ROL)
STR_CURR_RON :Rúmensk leu (RON)
STR_CURR_RUR :Rússnesk rúbla (RUR)
STR_CURR_SIT :Slóvensk tolar (SIT)
STR_CURR_SEK :Sænsk króna (SEK)
@@ -947,6 +947,7 @@ STR_CONFIG_SETTING_NONUNIFORM_STATIONS :{LTBLUE}Órétt
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Margfalda þyngd farms til að líkja eftir þyngri lestum: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Hraðastuðull flugvéla: {ORANGE}1 / {STRING}
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{LTBLUE}Leyfa strætóstöðvar á gangstéttum bæja: {ORANGE}{STRING}
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :{LTBLUE}Leyfa stöðvar á gangstéttum vega í eigu keppinauta: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Heimila sambyggingu stöðva: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES :{LTBLUE}Virkja mörg NewGRF vélasöfn: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Ekki er hægt að breyta þessari stillingu þegar til eru farartæki.
@@ -988,7 +989,7 @@ STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :{LTBLUE}Leyfa l
STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Einn eða fleiri reitir við norðurjaðarinn eru ekki tómir
STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Einn eða fleiri reitir við eina hlið kortsins hafa ekki vatn
STR_CONFIG_SETTING_STATION_SPREAD :{LTBLUE}Dreyfing stöðva mest: {ORANGE}{STRING} {RED}Ath.: Há stilling hægir á leiknum
STR_CONFIG_SETTING_STATION_SPREAD :{LTBLUE}Hámarksdreifing stöðva: {ORANGE}{STRING} {RED}Ath.: Há stilling hægir á leiknum
STR_CONFIG_SETTING_SERVICEATHELIPAD :{LTBLUE}Skoða þyrlur sjálfvirkt á þyrlupalli: {ORANGE}{STRING}
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Opna landmótunarglugga samhliða öðrum framkvæmdum: {ORANGE}{STRING}
STR_CONFIG_SETTING_REVERSE_SCROLLING :{LTBLUE}Færa sjónarhorn í öfuga átt miðað við mús: {ORANGE}{STRING}
@@ -1047,10 +1048,10 @@ STR_CONFIG_SETTING_MAX_ROADVEH :{LTBLUE}Bifrei
STR_CONFIG_SETTING_MAX_AIRCRAFT :{LTBLUE}Flugvélar á leikmann mest: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAX_SHIPS :{LTBLUE}Skip á leikmann mest: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_BUILDS_TRAINS :{LTBLUE}Útiloka lestir fyrir tölvu: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_BUILDS_ROADVEH :{LTBLUE}Útiloka bifreiðir fyrir tölvu: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :{LTBLUE}Útiloka flugvélar fyrir tölvu: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_BUILDS_SHIPS :{LTBLUE}Útiloka skip fyrir tölvu: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_BUILDS_TRAINS :{LTBLUE}Útiloka lestir frá tölvu: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_BUILDS_ROADVEH :{LTBLUE}Útiloka bifreiðir frá tölvu: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :{LTBLUE}Útiloka flugvélar frá tölvu: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_BUILDS_SHIPS :{LTBLUE}Útiloka skip frá tölvu: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :{LTBLUE}Leyfa gervigreind í fjölspilun: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_MAX_OPCODES :{LTBLUE}Fjöldi aðgerðanúmera áður en slökkt er á gervigreind: {ORANGE}{STRING}
@@ -1099,6 +1100,8 @@ STR_CONFIG_SETTING_TOOLBAR_POS_CENTER :Miðja
STR_CONFIG_SETTING_TOOLBAR_POS_RIGHT :Hægri
STR_CONFIG_SETTING_SNAP_RADIUS :{LTBLUE}Gluggar smella saman við: {ORANGE}{STRING} punkta radíus
STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :{LTBLUE}Gluggar smella: {ORANGE}ekki saman
STR_CONFIG_SETTING_SOFT_LIMIT :{LTBLUE}Hámarksfjöldi glugga (ófestra): {ORANGE}{STRING}
STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :{LTBLUE}Hámarksfjöldi glugga (ófestra): {ORANGE}ótakmarkaður
STR_CONFIG_SETTING_TOWN_GROWTH :{LTBLUE}Vaxtarhraði bæja: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Enginn
STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :Hægur
@@ -1195,6 +1198,7 @@ STR_CANT_REMOVE_TRAIN_WAYPOINT :{WHITE}Get ekki
STR_BUILD_AUTORAIL_TIP :{BLACK}Byggja lestartein í Sjálfvirkum ham
STR_NO_TOWN_IN_SCENARIO :{WHITE}...það er enginn bær í þessu landi
STR_COULD_NOT_CREATE_TOWN :{WHITE}Sköpun korts hætt...{}...ekkert hentugt bæjarstæði
STR_MANY_RANDOM_TOWNS :{BLACK}Búa til marga bæi
STR_RANDOM_TOWNS_TIP :{BLACK}Þekja landið með bæjum
@@ -1604,6 +1608,8 @@ STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS :Járnbrautarspo
STR_RAILROAD_TRACK_WITH_EXIT_PBSSIGNALS :Járnbrautarteinar með útgöngu- og háþróuðum skiltum
STR_RAILROAD_TRACK_WITH_EXIT_NOENTRYSIGNALS :Járnbrautarteinar með útgönguskiltum og háþróuðum einstefnuskiltum
STR_RAILROAD_TRACK_WITH_COMBO_PBSSIGNALS :Lestarteinar með samskeyta- og leiðar-merkjum
STR_RAILROAD_TRACK_WITH_COMBO_NOENTRYSIGNALS :Járnbrautarspor með fjöl- og einstefnuskiltum
STR_RAILROAD_TRACK_WITH_PBS_NOENTRYSIGNALS :Járnbrautarspor með háþróuðum og einstefnuskiltum
STR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Verður að fjarlægja járnbrautarstöð fyrst
STR_CREATE_SPLITTED_STATION :{YELLOW}Reisa aðra stöð
STR_SELECT_STATION_TO_JOIN :{BLACK}Tengja stöðvar
@@ -1676,7 +1682,7 @@ STR_2006_POPULATION :{BLACK}Íbúafj
STR_2007_RENAME_TOWN :Endurskíra bæ
STR_2008_CAN_T_RENAME_TOWN :{WHITE}Get ekki endurskírt bæ...
STR_2009_LOCAL_AUTHORITY_REFUSES :{WHITE}{TOWN} bæjaryfirvöld leyfa þetta ekki
STR_200A_TOWN_NAMES_CLICK_ON_NAME :{BLACK}Bæjarnöfn - ýttu á nafn til að færa sjónarhorn að viðkomandi bæ
STR_200A_TOWN_NAMES_CLICK_ON_NAME :{BLACK}Bæjanöfn - smelltu á nafn til að færa sjónarhorn að viðkomandi bæ
STR_200B_CENTER_THE_MAIN_VIEW_ON :{BLACK}Færa sjónarhorn á staðsetningu bæjar
STR_200C_CHANGE_TOWN_NAME :{BLACK}Breyta nafni bæjar
STR_200D_PASSENGERS_LAST_MONTH_MAX :{BLACK}Farþegar síðasta mánaðar: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA}
@@ -1908,6 +1914,7 @@ STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Bilun í vistu
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Leikur er vistaður í nýrri útgáfu
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Skrá er ekki lesanleg
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :Skrá er ekki skrifanleg
STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Könnun gagnaheilinda mistókst
STR_400A_LIST_OF_DRIVES_DIRECTORIES :{BLACK}Listi yfir drif, möppur og vistaða leiki
STR_400B_CURRENTLY_SELECTED_NAME :{BLACK}Nafn fyrir vistun leiks
STR_400C_DELETE_THE_CURRENTLY_SELECTED :{BLACK}Eyða nafninu
@@ -2123,6 +2130,7 @@ STR_NUM_VERY_LOW :Mjög lág
STR_6816_LOW :Fáir
STR_6817_NORMAL :Miðlungs
STR_6818_HIGH :Margir
STR_02BF_CUSTOM :Breytt
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :Mjög hægt
@@ -2725,6 +2733,7 @@ STR_8826_GO_TO :{BLACK}Fara að
STR_REFIT :{BLACK}Breyta
STR_REFIT_TIP :{BLACK}Veldu farm til að breyta í. CTRL smelltu til að fjarlægja breytiskipun
STR_REFIT_ORDER :(Breyta í {STRING})
STR_REFIT_STOP_ORDER :(Breyta í {STRING} og stöðva)
STR_STOP_ORDER :(Stopp)
STR_TIMETABLE_VIEW :{BLACK}Áætlun
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Skipta yfir í áætlanasýn
@@ -2836,6 +2845,7 @@ STR_TIMETABLE_STATUS_EARLY :Þetta farartæ
STR_TIMETABLE_TOTAL_TIME :Það mun taka {STRING} að ljúka við þessa áætlun
STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :Það mun að minnsta kosti taka {STRING} að ljúka við þessa áætlun (ekki allar skipanir á áætlun)
STR_TIMETABLE_AUTOFILL :{BLACK}Skrifa sjálfvirkt
STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Bæta áfangastöðum næstu ferðar sjálfvirkt við áætlunina (Ctrl+smelltu til að reyna að halda biðtímum)
##id 0x9000
STR_9000_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Bíll fyrir
@@ -3056,6 +3066,7 @@ STR_BRIBE_FAILED :{WHITE}Tilraun
STR_BRIBE_FAILED_2 :{WHITE}uppgvötuð af héraðsrannsóknarmanni
STR_BUILD_DATE :{BLACK}Byggt: {LTBLUE}{DATE_LONG}
STR_TILEDESC_STATION_CLASS :{BLACK}Tegund stöðvar: {LTBLUE}{STRING}
STR_TILEDESC_STATION_TYPE :{BLACK}Tegund stöðvar: {LTBLUE}{STRING}
STR_TILEDESC_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
@@ -3089,10 +3100,14 @@ STR_PERFORMANCE_DETAIL_LOAN_TIP :{BLACK}Peningar
STR_PERFORMANCE_DETAIL_TOTAL_TIP :{BLACK}Heildarpunktar af mögulegum punktum
STR_NEWGRF_SETTINGS_BUTTON :{BLACK}NewGRF Stillingar
STR_NEWGRF_SETTINGS_BUTTON_TIP :{BLACK}Sýna NewGRF stillingar
STR_NEWGRF_SETTINGS_CAPTION :{WHITE}NewGRF stillingar
STR_NEWGRF_APPLY_CHANGES :{BLACK}Virkja breytingar
STR_NEWGRF_TOGGLE_PALETTE :{BLACK}Skipta milli litaskema
STR_NEWGRF_TOGGLE_PALETTE_TIP :{BLACK}Skipta um litaskema fyrir valin sett.{}Ef mikið af bleikum lit birtist á röngum stöðum mun þetta laga vandann.
STR_NEWGRF_SET_PARAMETERS :{BLACK}Stilla breytur
STR_NEWGRF_FILENAME :{BLACK}Skráarnafn: {SILVER}{STRING}
STR_NEWGRF_PALETTE :{BLACK}Litaskema: {SILVER}{STRING}
STR_NEWGRF_GRF_ID :{BLACK}GRF einkenni: {SILVER}{STRING}
STR_NEWGRF_MD5SUM :{BLACK}MD5 summa: {SILVER}{STRING}
STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Þú ert í þann mund að eiga við leik í gangi, við það gæti OpenTTD hrunið.{}Ertu viss um að þú viljir halda áfram?
@@ -3110,8 +3125,12 @@ STR_NEWGRF_ERROR_LOAD_AFTER :{SKIP}{STRING}
STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{SKIP}{STRING} þarf OpenTTD útgáfu {STRING} eða nýrri.
STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :GRF skránni sem það var hannað til að þýða
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Of mörg NewGRF eru hlaðin.
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Ef {STRING} er hlaðið sem kyrrstæðu NewGRF ásamt {STRING} gætu orðið hnökrar á keyrslu leiksins.
STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Óviðbúin hreyfimynd.
STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Óþekktur „Action 0“ eiginleiki
STR_NEWGRF_ERROR_INVALID_ID :Reyndi að notast við rangt ID
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} inniheldur gallaða mynd. Allar gallaðar myndir munu birtast sem rauð spurningamerki (?).
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Inniheldur margar „Action 8“ færslur
STR_NEWGRF_PRESET_LIST_TIP :{BLACK}Hlaða valdar stillingu
STR_NEWGRF_PRESET_SAVE :{BLACK}Vista stillingu
@@ -3148,7 +3167,12 @@ STR_NEWGRF_DISABLED_WARNING :{WHITE}Týndar
STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Vantar GRF skrá(r)
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}OpenTTD getur hrunið ef leikur er settur af stað. Ekki skrá villufærslur fyrir eftirfarandi hrun.{}Ertu viss um að þú viljir setja leikinn af stað?
STR_NEWGRF_BROKEN :{WHITE}Hegðun NewGRF '{0:STRING}' er líkleg til að valda hnökrum og/eða hruni á kreyslu leiksins.
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Breytir lengd á farartæki '{1:ENGINE}' þegar það er ekki í skýli.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Lest '{VEHICLE}' sem tilheyrir '{COMPANY}' er ekki af réttri lengd. Þessu valda sennilega NewGRF vandamál. Leikurinn kann að missa samband eða hrynja.
STR_NEWGRF_BUGGY :{WHITE}Rangar upplýsingar fylgja '{0:STRING}' NewGRF.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Farm/breytingaupplýsingar fyrir '{1:ENGINE}' stangast á við innkaupalista eftir kaup. Þetta kann að valda því að sjálfvirk uppfærsla/útskipting mistakist.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Leikurinn var vistaður í útgáfu án sporvagna. Allir sporvagnar hafa verið fjarlægðir.
STR_CURRENCY_WINDOW :{WHITE}Sérvalinn gjaldeyrir
@@ -3243,6 +3267,7 @@ STR_MASS_START_LIST_TIP :{BLACK}Smelltu
STR_SHORT_DATE :{WHITE}{DATE_TINY}
STR_SIGN_LIST_CAPTION :{WHITE}Merkjalisti - {COMMA} merki
STR_ORDER_REFIT_FAILED :{WHITE}{VEHICLE} stöðvaði vegna óframkvæmanlegrar endurnýjunar
############ Lists rail types
@@ -3339,7 +3364,11 @@ STR_NORTHWEST :{BLACK}Norðves
STR_NORTHEAST :{BLACK}Norðaustur
STR_SOUTHEAST :{BLACK}Suðaustur
STR_SOUTHWEST :{BLACK}Suðvestur
STR_BORDER_FREEFORM :{BLACK}Frjálsar
STR_BORDER_WATER :{BLACK}Vatn
STR_BORDER_RANDOM :{BLACK}Slembin
STR_BORDER_RANDOMIZE :{BLACK}Slembnar
STR_BORDER_MANUAL :{BLACK}Forvaldar
########### String for new airports
STR_SMALL_AIRPORT :{BLACK}Lítill flugvöllur
@@ -3368,6 +3397,7 @@ STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Svæði:
STR_DATE_TINY :{STRING}-{STRING}-{NUM}
STR_DATE_SHORT :{STRING} {NUM}
STR_DATE_LONG :{STRING} {STRING} {NUM}
STR_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
STR_JUST_DATE_TINY :{DATE_TINY}
STR_JUST_DATE_LONG :{DATE_LONG}
@@ -3507,10 +3537,14 @@ STR_BUILD_SIGNAL_SEMAPHORE_NORM_TIP :{BLACK}Hefðbun
STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TIP :{BLACK}Komumerki{}Hleypir í gegn uns ekkert frámerki er eftir opið.
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TIP :{BLACK}Frámerki{}Virkar eins og hefðbundið merki en er nauðsynlegt til að fá rétta virkni fyrir komu- og fjölmerki.
STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TIP :{BLACK}Fjölmerki{}Fjölmerkin virka bæði sem komu- og frámerki sem gerir þér kleyft að hanna stór "tré" af formerkjum.
STR_BUILD_SIGNAL_SEMAPHORE_PBS_TIP :{BLACK}Leiðarmerki (skilti){}Leiðarmerki gera fleiri en einni lest í einu kleift að keyra inn á svæði án umferðarmerkja ef þær finna örugga leið út af því aftur. Lestir geta farið framhjá venjulegum skiltum aftanfrá.
STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TIP :{BLACK}Einstefnuleiðarmerki (skilti){}Leiðarmerki gera fleiri en einni lest í einu kleift að keyra inn á svæði án umferðarmerkja ef þær finna örugga leið út af því aftur. Lestir geta ekki farið framhjá einstefnuskiltum aftanfrá.
STR_BUILD_SIGNAL_ELECTRIC_NORM_TIP :{BLACK}Hefðbundin ljós{}Ljós eru nauðsynleg til að koma í veg fyrir að lestir lendi í árekstri.
STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TIP :{BLACK}Komuljós{}Hleypir í gegn uns ekkert fráljós er lengur grænt.
STR_BUILD_SIGNAL_ELECTRIC_EXIT_TIP :{BLACK}Fráljós{}Virkar eins og hefðbundið ljós en er naðusynlegt til að fá rétta virkni fyrir komu- og fjölljós.
STR_BUILD_SIGNAL_ELECTRIC_COMBO_TIP :{BLACK}Fjölljós{}Fjölljósið virkar bæði sem komu- og fráljós sem gerir þér kleyft að hanna stór "tré" af forljósum.
STR_BUILD_SIGNAL_ELECTRIC_PBS_TIP :{BLACK}Leiðarmerki (ljós){}Leiðarmerki gera fleiri en einni lest í einu kleift að keyra inn á svæði án umferðarmerkja ef þær finna örugga leið út af því aftur. Lestir geta farið framhjá venjulegum skiltum aftanfrá.
STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TIP :{BLACK}Einstefnuleiðarmerki (ljós){}Leiðarmerki gera fleiri en einni lest í einu kleift að keyra inn á svæði án umferðarmerkja ef þær finna örugga leið út af því aftur. Lestir geta ekki farið framhjá einstefnuskiltum aftanfrá.
STR_SIGNAL_CONVERT_TIP :{BLACK}Breyting ljósa{}Þegar valið þá breytist merki sem til er fyrir í valda gerð og tegund. CTRL-smellur mun rúlla í gegnum núverandi tegund.
STR_DRAG_SIGNALS_DENSITY_TIP :{BLACK}Þéttleiki dreginna ljósa
STR_DRAG_SIGNALS_DENSITY_DECREASE_TIP :{BLACK}Minnka þéttleika dreginna ljósa
@@ -3523,20 +3557,33 @@ STR_OSK_KEYBOARD_LAYOUT_CAPS :~!@#$%^&*()_+|Q
########
############ AI GUI
STR_AI_SETTINGS_BUTTON :{BLACK}AI Stillingar
STR_AI_SETTINGS_BUTTON_TIP :{BLACK}Sýna AI stillingar
STR_AI_DEBUG :{WHITE}AI Villuprófun
STR_AI_DEBUG_NAME_TIP :{BLACK}AI heiti
STR_AI_DEBUG_RELOAD :{BLACK}Endurhlaða AI
STR_AI_CHANGE :{BLACK}Velja AI
STR_AI_SETTINGS_BUTTON :{BLACK}Stillingar gervigreindar
STR_AI_SETTINGS_BUTTON_TIP :{BLACK}Sýna stillingar gervigreindar
STR_AI_DEBUG :{WHITE}Aflúsun gervigreindar
STR_AI_DEBUG_NAME_TIP :{BLACK}Nafn gervigreindar
STR_AI_DEBUG_RELOAD :{BLACK}Endurhlaða gervigreind
STR_AI_DEBUG_RELOAD_TIP :{BLACK}Stöðva gervigreindina, endurhlaða skriftunni og ræsa gervigreindina á ný
STR_AI_DEBUG_SERVER_ONLY :{YELLOW}Aflúsunargluggi gervigreindar er aðeins aðgengilegur á þjóni
STR_AI_CONFIG_CAPTION :{WHITE}Stilling gervigreindar
STR_AI_CHANGE :{BLACK}Velja gervigreind
STR_AI_CONFIGURE :{BLACK}Stilla
STR_AI_CHANGE_TIP :{BLACK}Hlaða aðra AI
STR_AI_CHANGE_TIP :{BLACK}Velja aðra gervigreind
STR_AI_CONFIGURE_TIP :{BLACK}Stilltu eiginleika gervigreindarinnar
STR_AI_LIST_TIP :{BLACK}Gervigreindir sem notaðar verða í næsta leik
STR_AI_LIST_CAPTION :{WHITE}Tiltækar gervigreindir
STR_AI_AILIST_TIP :{BLACK}Smelltu til að merkja gervigreind
STR_AI_ACCEPT :{BLACK}Í lagi
STR_AI_ACCEPT_TIP :{BLACK}Velja merkta gervigreind
STR_AI_CANCEL :{BLACK}Hætta við
STR_AI_CANCEL_TIP :{BLACK}Hætta við breytingar
STR_AI_CLOSE :{BLACK}Loka
STR_AI_HUMAN_PLAYER :Menskur spilari
STR_AI_RESET :{BLACK}Frumstilla
STR_AI_HUMAN_PLAYER :Mennskur leikmaður
STR_AI_RANDOM_AI :Gervigreind af handahófi
STR_AI_SETTINGS_CAPTION :{WHITE}Stillingar gervigreindar
STR_AI_AUTHOR :Höfundur:
STR_AI_VERSION :Útgáfa:
STR_AI_PLEASE_REPORT_CRASH :{WHITE}Ein af gervigreindunum hrundi. Vinsamlega gerðu höfundi gervigreindarinnar viðvart og sendu inn mynd af aflúsunarglugga gervigreindarinnar.
########
############ town controlled noise level
@@ -3545,31 +3592,63 @@ STR_STATION_NOISE :{BLACK}Hávaði
########
############ Downloading of content from the central server
STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD er smíðað án „zlib“ stuðnings...
STR_CONTENT_NO_ZLIB_SUB :{WHITE}... ekki hægt að hlaða niður efni!
STR_CONTENT_TYPE_BASE_GRAPHICS :Venjuleg grafík
STR_CONTENT_TYPE_NEWGRF :NewGRF
STR_CONTENT_TYPE_AI :AI
STR_CONTENT_TYPE_AI_LIBRARY :AI safn
STR_CONTENT_TYPE_HEIGHTMAP :Hæðar-kort
STR_CONTENT_TYPE_AI :Gervigreind
STR_CONTENT_TYPE_AI_LIBRARY :Safn gervigreinda
STR_CONTENT_TYPE_SCENARIO :Kort
STR_CONTENT_TYPE_HEIGHTMAP :Hæðakort
STR_CONTENT_TITLE :{WHITE}Niðurhel efni
STR_CONTENT_TYPE_CAPTION :{BLACK}Týpa
STR_CONTENT_TYPE_CAPTION_TIP :{BLACK}Tegund pakka
STR_CONTENT_NAME_CAPTION :{BLACK}Heiti
STR_CONTENT_NAME_CAPTION_TIP :{BLACK}Heiti efnis
STR_CONTENT_MATRIX_TIP :{BLACK}Smelltu á pakka fyrir frekari upplýsingar{}Smelltu í reitinn til að velja pakka til niðurhals
STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Velja allt
STR_CONTENT_SELECT_ALL_CAPTION_TIP :{BLACK}Velja allt til niðurhals
STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Velja uppfærslur
STR_CONTENT_SELECT_UPDATES_CAPTION_TIP :{BLACK}Velja til niðurhals allar uppfærslur fyrir pakka sem nú þegar hefur verið náð í
STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Af-velja allt
STR_CONTENT_UNSELECT_ALL_CAPTION_TIP :{BLACK}Afvelja allt frá niðurhali
STR_CONTENT_FILTER_OSKTITLE :{BLACK}Sláðu inn leitarstreng
STR_CONTENT_FILTER_TIP :{BLACK}Sláðu inn leitarstreng til að sía listann
STR_CONTENT_FILTER_TITLE :{BLACK}Leitarstrengur:
STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Niðurhala
STR_CONTENT_DOWNLOAD_CAPTION_TIP :{BLACK}Hefja niðurhal á völdum pökkum
STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{SILVER}Stærð niðurhals: {WHITE}{BYTES}
STR_CONTENT_DETAIL_TITLE :{SILVER}UPPLÝSINGAR
STR_CONTENT_DETAIL_SUBTITLE_UNSELECTED :{SILVER}Pakkinn er ekki valinn til niðurhals
STR_CONTENT_DETAIL_SUBTITLE_SELECTED :{SILVER}Pakkinn er valinn til niðurhals
STR_CONTENT_DETAIL_SUBTITLE_AUTOSELECTED :{SILVER}Þessi pakki er nauðsynlegur undirstaða fyrir annan pakka sem er valinn til niðurhals
STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}Þú hefur þetta nú þegar
STR_CONTENT_DETAIL_SUBTITLE_DOES_NOT_EXIST :{SILVER}Þessi pakki er óþekktur og ekki er hægt að ná í hann gegnum OpenTTD
STR_CONTENT_DETAIL_UPDATE :{SILVER}Þetta er uppfærsla fyrir {STRING}
STR_CONTENT_DETAIL_NAME :{SILVER}Heiti: {WHITE}{STRING}
STR_CONTENT_DETAIL_VERSION :{SILVER}Útgáfa: {WHITE}{STRING}
STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}Lýsing: {WHITE}{STRING}
STR_CONTENT_DETAIL_URL :{SILVER}URL: {WHITE}{STRING}
STR_CONTENT_DETAIL_TYPE :{SILVER}Týpa: {WHITE}{STRING}
STR_CONTENT_DETAIL_FILESIZE :{SILVER}Stærð niðurhals: {WHITE}{BYTES}
STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{SILVER}Valinn vegna: {WHITE}{STRING}
STR_CONTENT_DETAIL_DEPENDENCIES :{SILVER}Byggir á: {WHITE}{STRING}
STR_CONTENT_DETAIL_TAGS :{SILVER}Stikkorð: {WHITE}{STRING}
STR_CONTENT_DOWNLOAD_TITLE :{WHITE}Hel niður efni...
STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Bið um skrár...
STR_CONTENT_DOWNLOAD_FILE :{WHITE}Næ í {STRING} ({NUM} af {NUM})
STR_CONTENT_DOWNLOAD_COMPLETE :{WHITE}Niðurhali lokið
STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} af {BYTES} niðurhalað ({NUM} %)
STR_CONTENT_ERROR_COULD_NOT_CONNECT :{WHITE}Gat ekki tengst í efnisveitu...
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}Niðurhal mistókst...
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... tenging slitnaði
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... skráin er ekki skrifanleg
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}Gat ekki afþjappað niðurhöluðu skránni
STR_CONTENT_INTRO_BUTTON :{BLACK}Ná í viðbætur af netinu
STR_CONTENT_INTRO_BUTTON_TIP :{BLACK}Skoða viðbætur sem hægt er að ná í af netinu
STR_CONTENT_INTRO_MISSING_BUTTON :{BLACK}Leita á netinu að efni sem vantar
STR_CONTENT_INTRO_MISSING_BUTTON_TIP :{BLACK}Skoða hvort hægt sé að ná í það sem vantar af netinu
########

View File

@@ -30,10 +30,10 @@ STR_0013_LIVESTOCK :Ternak
STR_0014_GOODS :Barang jadi
STR_0015_GRAIN :Gandum
STR_0016_WOOD :Kayu
STR_0017_IRON_ORE :Bijih besi
STR_0017_IRON_ORE :Biji besi
STR_0018_STEEL :Baja
STR_0019_VALUABLES :Barang berharga
STR_001A_COPPER_ORE :Bijih Tembaga
STR_001A_COPPER_ORE :Biji Tembaga
STR_001B_MAIZE :Jagung
STR_001C_FRUIT :Buah
STR_001D_DIAMONDS :Intan
@@ -49,7 +49,7 @@ STR_0026_CANDY :Manisan
STR_0027_COLA :Cola
STR_0028_COTTON_CANDY :Harum manis
STR_0029_BUBBLES :Gelembung
STR_002A_TOFFEE :Kopi Toffee
STR_002A_TOFFEE :Gula-gula
STR_002B_BATTERIES :Baterai
STR_002C_PLASTIC :Plastik
STR_002D_FIZZY_DRINKS :Minuman berdesis
@@ -62,10 +62,10 @@ STR_0033_LIVESTOCK :Ternak
STR_0034_GOODS :Barang jadi
STR_0035_GRAIN :Gandum
STR_0036_WOOD :Kayu
STR_0037_IRON_ORE :Bijih besi
STR_0037_IRON_ORE :Biji besi
STR_0038_STEEL :Baja
STR_0039_VALUABLES :Barang berharga
STR_003A_COPPER_ORE :Bijih Tembaga
STR_003A_COPPER_ORE :Biji Tembaga
STR_003B_MAIZE :Jagung
STR_003C_FRUIT :Buah
STR_003D_DIAMOND :Intan
@@ -81,7 +81,7 @@ STR_0046_CANDY :Manisan
STR_0047_COLA :Cola
STR_0048_COTTON_CANDY :Harum manis
STR_0049_BUBBLE :Gelembung
STR_004A_TOFFEE :Kopi Toffee
STR_004A_TOFFEE :Gula-gula
STR_004B_BATTERY :Baterai
STR_004C_PLASTIC :Plastik
STR_004D_FIZZY_DRINK :Minuman berdesis
@@ -785,7 +785,7 @@ STR_TOWNNAME_SWEDISH :Swedia
STR_TOWNNAME_DUTCH :Belanda
STR_TOWNNAME_FINNISH :Finlandia
STR_TOWNNAME_POLISH :Polandia
STR_TOWNNAME_SLOVAKISH :Slovakia
STR_TOWNNAME_SLOVAK :Slovakia
STR_TOWNNAME_NORWEGIAN :Norwegia
STR_TOWNNAME_HUNGARIAN :Hungaria
STR_TOWNNAME_AUSTRIAN :Austria
@@ -818,7 +818,7 @@ STR_CURR_ITL :Lira Italian (I
STR_CURR_NLG :Dutch Guilder (NLG)
STR_CURR_NOK :Krone Norwegia (NOK)
STR_CURR_PLN :Zloty Polandia (PLN)
STR_CURR_ROL :Leu Romania (ROL)
STR_CURR_RON :Leu Romania (RON)
STR_CURR_RUR :Rubles Rusia (RUR)
STR_CURR_SIT :Tolar Slovenia (SIT)
STR_CURR_SEK :Krona Swedia (SEK)

Some files were not shown because too many files have changed in this diff Show More