1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-13 17:49:10 +00:00

Compare commits

...

24 Commits

Author SHA1 Message Date
rubidium
1003eb6eba (svn r16279) -Release: 0.7.1-RC1 2009-05-11 15:45:50 +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
rubidium
7e1385b6eb (svn r15828) [0.7] -Prepare: for 0.7.0-RC2. 2009-03-23 00:19:22 +00:00
rubidium
4ec28e1ba7 (svn r15826) [0.7] -Backport from trunk:
- Update: language files
- Fix: Some (newer) GCCs have trouble compiling the Win32 specific part of fontcache.cpp; jumps across variable declarations [FS#2752] (r15818)
- Fix: When sorting on cost do not sort on the running cost [FS#2749] (r15778)
2009-03-23 00:12:52 +00:00
rubidium
30afba1d10 (svn r15775) [0.7] -Backport from trunk:
- Fix: Do not show the message about reporting an AI crash for the dummy AI (r15774)
- Fix: Number of active clients was not always properly updated [FS#2475] (r15773)
- Fix: Settings from the [gameopt] section (from old 0.6 config files) were overwritten with default values (r15771)
- Fix: Infinite loop when skipping sprites when a GRF is invalid (or truncated) (r15767)
- Fix: Crash when opening the content list window twice; inconsistencies when clicking download twice [FS#2744] (r15766)
2009-03-19 23:50:54 +00:00
rubidium
61e97110c9 (svn r15765) [0.7] -Backport from trunk:
- Change: [NewGRF] Expose GRF ID of engines in var action property 0x25 (r15739)
- Fix: Add Engine::GetDisplayDefaultCapacity() and use it everywhere, so CB 36 is also used everywhere (r15763)
- Fix: [Windows] Inlined UTF-8 characters (in the source code) are not handled properly on Eastern versions of Windows so escape them (r15762)
- Fix: [Windows] On some system searching a font using its English name fails. So now we search the font using the localised name and use the English name for the final 'validation' only (r15757)
2009-03-18 19:50:34 +00:00
rubidium
9e592b9986 (svn r15764) [0.7] -Backport from trunk:
- Fix: Number of houses in house variables 0x44, 0x60 and 0x61 were incorrect after 0xFF had been reached and could desync clients joining afterwards (r15755)
- Fix: Crash when clicking the small area between the savegame list and the save button in the save game window [FS#2742] (r15753)
- Fix: Do not try to (un)draw the cursor when the screen is not ready (r15752)
- Fix: The big UFO sometimes landed just outside the map. Instead of landing, just disappear (fly away) in those cases (r15750)
- Fix: Crash because submarines would sometimes start far outside of the map [FS#2739] (r15748)
- Fix: Road ownership getting lost when removing a road stop [FS#2736] (r15747)
- Fix: Update threading code for OS/2, add mutex support, fix compilation (r15746, r15745)
- Fix: When town generator failed to create requested number of towns, there were too many cities (r15744)
2009-03-18 19:47:05 +00:00
rubidium
de7a4a4006 (svn r15737) [0.7] -Prepare: for 0.7.0-RC1. 2009-03-15 22:42:48 +00:00
rubidium
53dc1a89da (svn r15734) [0.7] -Branch: the long awaited branch so we can introduce new features in trunk before 0.7.0, but not let them destabalize the pending release :) 2009-03-15 22:14:10 +00:00
190 changed files with 4177 additions and 2153 deletions

View File

@@ -1,7 +1,7 @@
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = openttd
PROJECT_NAME = OpenTTD
OUTPUT_DIRECTORY = docs/source/
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English

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
@@ -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

View File

@@ -1,3 +1,122 @@
0.7.1-RC1 (2009-05-11)
------------------------------------------------------------------------
- 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)
- 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)
- Add: [NoAI] UseAsRandomAI as function in info.nut. When an AI returns false, it will never be chosen as random AI (r16113)
- Add: [NoAI] AIOF_STOP_IN_DEPOT to the orderflags in AIOrder to allow stop-in-depot orders (r16107)
- 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)
- Change: Harden string copying on places where it is possible (r16024)
- Change: Use recent Czech language for plural form (r15965)
- 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)
- 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)
- Fix: [NoAI] Enable parameter checking for AIController::* functions again (r16249)
- 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: 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: [NoAI] Use the stop/non-stop intermediate orderflags AIs can give for goto-depot orders (r16239)
- 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)
- Fix: Hardcoded (old sized) MAX_COMPANIES constant (r16182)
- Fix: [Squirrel] The traps variable was not restored, causing try/catch blocks to be 'forgotten' during a suspend (r16181)
- 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: [NoAI] AIOrder::GetOrderDestination and AIOrder::GetOrderFlags did not 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)
- 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)
- Fix: Road was removed when both the Remove button was active and Ctrl was pressed [FS#2582] (r16119)
- 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)
- Fix: [NoAI] AIOrder::SetOrderFlags always removed "Service if needed" from goto-depot orders (r16106)
- Fix: Connect tried to validate too much of the company ID with too little information on hand [FS#2849] (r16096)
- Fix: [NoAI] AIDebug window profiled the blitters by invalidating itself unconditionally on repaint. On the other hand it was not invalidated in other cases when needed (r16094)
- Fix: The language is called Slovak, not Slovakish (r16090)
- 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)
- Fix: [NoAI] MOF_COND_DESTINATION was not accepted by CmdModifyOrder() (r16063)
- 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)
- 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)
- 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 message (r15943)
0.7.0 (2009-04-01)
------------------------------------------------------------------------
- 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)
- Fix: Chat completion got called twice causing tab completion to seemingly fail (r15905)
- 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)
0.7.0-RC2 (2009-03-23)
------------------------------------------------------------------------
- Change: [NewGRF] Expose GRF ID of engines in var action property 0x25 (r15739)
- Fix: Some (newer) GCCs have trouble compiling the Win32 specific part of fontcache.cpp; jumps across variable declarations [FS#2752] (r15818)
- Fix: When sorting on cost do not sort on the running cost [FS#2749] (r15778)
- Fix: Do not show the message about reporting an AI crash for the dummy AI (r15774)
- Fix: Number of active clients was not always properly updated [FS#2475] (r15773)
- Fix: Settings from the [gameopt] section (from old 0.6 config files) were overwritten with default values (r15771)
- Fix: Infinite loop when skipping sprites when a GRF is invalid (or truncated) (r15767)
- Fix: Crash when opening the content list window twice; inconsistencies when clicking download twice [FS#2744] (r15766)
- Fix: Add Engine::GetDisplayDefaultCapacity() and use it everywhere, so CB 36 is also used everywhere (r15763)
- Fix: [Windows] Inlined UTF-8 characters (in the source code) are not handled properly on Eastern versions of Windows so escape them (r15762)
- Fix: [Windows] On some system searching a font using its English name fails. So now we search the font using the localised name and use the English name for the final 'validation' only (r15757)
- Fix: Number of houses in house variables 0x44, 0x60 and 0x61 were incorrect after 0xFF had been reached and could desync clients joining afterwards (r15755)
- Fix: Crash when clicking the small area between the savegame list and the save button in the save game window [FS#2742] (r15753)
- Fix: Do not try to (un)draw the cursor when the screen is not ready (r15752)
- Fix: The big UFO sometimes landed just outside the map. Instead of landing, just disappear (fly away) in those cases (r15750)
- Fix: Crash because submarines would sometimes start far outside of the map [FS#2739] (r15748)
- Fix: Road ownership getting lost when removing a road stop [FS#2736] (r15747)
- Fix: Update threading code for OS/2, add mutex support, fix compilation (r15746, r15745)
- Fix: When town generator failed to create requested number of towns, there were too many cities (r15744)
0.7.0-RC1 (2009-03-16)
------------------------------------------------------------------------
- Feature: Pop up the AI Debug Window if one of the AIs crashed and show a message that the user should report the crash [FS#2728] (r15708)
- Feature: Allow the number of towns that will be generated in the generate world window to be customized [FS#2672] (r15695)
- Fix: Enabling freeform edges could cause submarines to get stuck on land tiles (r15733)
- Fix: Centering on a vehicle did not respect its z coordinate (r15725)
- Fix: Do not show passenger-/mail-capacity if the aircraft carries only cargo (r15705)
- Fix: Blame NewGRFs returning inconsistent information in purchase-list/after building before users have a chance to blame OpenTTD for incorrectly autorenewing/-replacing [FS#2595] (r15701)
- Fix: Just sell the old engines after autorenew/replace. Do not bother about trains exceeding the trainlimit, which will be sold anyway [FS#2721] (r15692)
- Fix: Do not crash when the generate map does not contain a suitable location for a town [FS#2720] (r15689)
- Fix: Do not crash when someone substitutes the "map generation" sprites with garbage [FS#2720] (r15685)
- Fix: Vehicle images would be determined during the process of moving the vehicle which means that only the (orientation) data for the vehicles in front of it is valid. Now the data for the vehicles behind the vehicle are valid too [FS#2546] (r15677)
- Fix: It was possible to remove rail tunnels/bridges and aqueducts build by rival companies [FS#2718] (r15667)
- Fix: Sorting of engines in the purchase list did not use the same numbers as the GUI showed, e.g. articulated parts were not taken into accound when ordering by capacity [FS#2689] (r15666)
- Fix: Handling of aircraft crash counter did not take account of the reduced number of calls (from 6 down to 2) to the aircraft event handler, resulting in crashed aircraft taking three times longer than they should to clear. Compensate by increasing the counter by 3 on every call instead of 1 (r15665)
- Fix: Growing of vsize as (some) threads were not properly released (r15663)
- Fix: Do not mark a company as having ratings in a town when querying the cost of a command (r15662)
0.7.0-beta2 (2009-03-10)
------------------------------------------------------------------------
- Feature: Allow downloading scenarios and heightmaps via the in game content download (r15632)
@@ -23,7 +142,7 @@
- Fix: Kicking/banning a client from the Client list window crashed the server [FS#2705] (r15628)
- Fix: UTF8 string handling could cause buffer overruns [FS#2698] (r15626)
- Fix: When trying to reserve a self-crossing path the failed reservation was sometimes not cleared completely [FS#2701] (r15619)
- Fix: Towns would only build houses where the grid would not be, even when they aren't allowed to build roads and the user 'implements' another layout [FS#2661] (r15604)
- Fix: Towns would only build houses where the grid would not be, even when they are not allowed to build roads and the user 'implements' another layout [FS#2661] (r15604)
- Fix: Crash when using an extraordinarily large sprite as cursor [FS#2696] (r15601)
- Fix: Crash when opening viewport while scrolling the map and the mouse 'lands' on the window decoration of the viewport [FS#2695] (r15598)
- Fix: [NewGRF] Refit-info in purchase list did only check the first articulated part (r15592)
@@ -205,7 +324,7 @@
- Fix: Invalid v->u.air.targetairport could cause crashes at several places [FS#2300] (r14383, r14344, r14343)
- Fix: Moving the first vehicle of a train elsewhere might require a new unitnumber for the remaining chain which might not be available (r14384)
- Fix: Trams jumping when reversing on a single trambit (like caused during road construction reworks) or when (manually) reversing in a corner [FS#1852] (r14371)
- Fix: Multiheaded parts in free wagon chains weren't connected (could cause desyncs) (r14366, r14362)
- Fix: Multiheaded parts in free wagon chains were not connected (could cause desyncs) (r14366, r14362)
- Fix: [Win32] Some keypress combinations could be handled twice [FS#2206] (r14363)
- Fix: The ownership of roadtiles was not properly set for very old savegames (including TTD's) making it impossible to remove some pieces of road [FS#2311] (r14359)
- Fix: Desync due to randomly ordered vehicle hash by flooding and road vehicle overtake/following (r14356, r14258)
@@ -214,9 +333,9 @@
- Fix: Signs from old savegames were lost (causing little memory leaks) (r14340)
- Fix: When a company was renamed and then manager was renamed before building anything, company name changed (r14328)
- Fix: When you rename a town before building something and build something near that town your company would be called "<old townname> Transport" [FS#2251] (r14327)
- Fix: Free any blocks that a helicopter may have on an oilrig when the helicopter gets forcefully removed (bankruptcy). For other airports this isn't needed as they can't be used by multiple companies [FS#2241] (r14324)
- Fix: Free any blocks that a helicopter may have on an oilrig when the helicopter gets forcefully removed (bankruptcy). For other airports this is not needed as they cannot be used by multiple companies [FS#2241] (r14324)
- Fix: Possible assert when renaming removed waypoint (r14322)
- Fix: Properly delete orders so the pool doesn't fill up (r14319)
- Fix: Properly delete orders so the pool does not fill up (r14319)
- Fix: Do not allow building road over level crossings and drive-through road stops in the wrong direction; do not allow adding roadtypes to non-drive through road stops; pay for all added road bits [FS#2268] (r14316, r14315, r14314, r14308)
- Fix: Aircraft frozen above oil rig when the next order is invalid [FS#2244] (r14309)
- Fix: [YAPF] Only reserve road slots for multistop when they are really reachable [FS#2294] (r14305)
@@ -225,7 +344,7 @@
- Fix: Make small UFO aware of articulated RVs so they crash the complete vehicle instead of a small part of it (r14270)
- Fix: Desyncs after deleting a waypoint because of explicit destructor call instead of using operator delete (r14265)
- Fix: Merge keycode for "normal" 0-9 keys and keypad 0-9 keys so people do not get confused that the keypad does not work as expected [FS#2277] (r14260)
- Fix: Clicking on the smallmap didn't break the "follow vehicle in main viewport" [FS#2269] (r14243)
- Fix: Clicking on the smallmap did not break the "follow vehicle in main viewport" [FS#2269] (r14243)
- Fix: The engine-purchase-list-sorter doubled running-cost and halfed capacity of double-headed engines [FS#2267] (r14239)
- Fix: Feeder share was computed wrong when splitting cargo packet (r14234)
- Fix: Signs (town name, station name, ...) could be too long for 8bit width in pixels (r14221)
@@ -248,10 +367,10 @@
- Fix: Flawed parsing of words (as in 2 bytes) in GRF strings due to sign extension [FS#2228] (r14087)
- Fix: Division by 0 in NewAI [FS#2226] (r14062)
- Fix: NewGRF callback 23 did not use the NewGRF compatible text stack [FS#2224] (r14058)
- Fix: NewGRF text stack's "push word" didn't move the data around properly (r14057)
- Fix: NewGRF text stack's "push word" did not move the data around properly (r14057)
- Fix: Long strings in the edit box would cause OpenTTD to stop drawing the string. This is especially noticable with low resolutions and the chat input box (r14054)
- Fix: [OSX] changed the condition for selecting 8 or 32 bpp blitter by default. Now we will pick 32 bpp if no 8 bpp fullscreen resolutions are available on the main display (the one with the dock) (r14032)
- Fix: Crash when the AI tries to find the depot of an airport that doesn't have a depot [FS#2190] (r13999)
- Fix: Crash when the AI tries to find the depot of an airport that does not have a depot [FS#2190] (r13999)
- Fix: MSVC cannot handle changed files in the prebuild event, so make the version determination a separate subproject [FS#2004] (r13998)
- Fix: The dedicated console removed any character that was not a printable ASCII character instead. Now it allows UTF8 formated strings too [FS#2189] (r13992)
- Fix: Resetting construction stage counter reset more than it should (r13981)
@@ -311,7 +430,7 @@
- Fix: Signal states could be propagated through waypoints built in orthogonal axis (r13589)
- Fix: [OSX] 10.5 failed to switch to fullscreen (r13584)
- Fix: RVs continueing onto next DT station when they are build adjacent to them [FS#2040] (r13581)
- Fix: Disable static NewGRFs when non-static NewGRFs query them in the context of network games. This makes it impossible for static NewGRFs to disable non-static NewGRFs and 'bad' things happening because the non-static NewGRF doesn't know about the static NewGRF (r13576)
- Fix: Disable static NewGRFs when non-static NewGRFs query them in the context of network games. This makes it impossible for static NewGRFs to disable non-static NewGRFs and 'bad' things happening because the non-static NewGRF does not know about the static NewGRF (r13576)
- Fix: Properly count number of non-north housetiles [FS#2083] (r13518)
- Fix: Incorrect usage of strtoul (r13508)
- Fix: Clear the memory for the new AI during the loading of a savegame so it does not try to execute commands generated in a different savegame, which could be resulting in the AI trying to give orders to stations that do not exist (r13505)
@@ -410,11 +529,11 @@
- Fix: Non-breaking spaces should not be broken (r12385)
- Fix: Check return of AfterLoadGame for success or failure when loading TTD games [FS#1860] (r12383)
- Fix: Use 'items' unit for batteries, fizzy drinks, toys and bubbles in total cargo tab [FS#1864] (r12382)
- Fix: The number of houses wasn't computed right [FS#1835, FS#1535] (r12381)
- Fix: The number of houses was not computed right [FS#1835, FS#1535] (r12381)
- Fix: Update train acceleration and max speed after setting cached value to ensure the correct max speed is used with disabled real acceleration (r12380)
- Fix: Refresh vehicle details window when cached values are updated (r12378)
- Fix: Set cached value for vehicle property 25 before other cached values [FS#1854] (r12377)
- Fix: Don't close a dropmenu when clicking on a dropdown widget (r12374)
- Fix: Do not close a dropmenu when clicking on a dropdown widget (r12374)
- Fix: win32 music driver fails if path is too long or if containing non-latin chars [FS#1849] (r12373, r12372)
- Fix: Do not let window hide behind the main toolbar after resizing the screen [FS#1823] (r12371)
- Fix: Close language drop down when parent window is clicked/closed [FS#1853] (r12370)
@@ -427,7 +546,7 @@
- Fix: Do not try to flood water tile [FS#1836] (r12350)
- Fix: NTP skipped junction just after bridge end (r12348)
- Fix: Remove duplicated and inconsistent code wrt. autoreplace with rules in both vehicles' group and ALL_GROUP [FS#1748, FS#1825] (r12346)
- Fix: Don't try to restore backupped timetable when timetabling is disabled [FS#1828] (r12345)
- Fix: Do not try to restore backupped timetable when timetabling is disabled [FS#1828] (r12345)
- Fix: Slow helicopters never got the 'chance' to finish the landing routine (r12343)
- Fix: GRM buffer for cargos was incorrect size [FS#1827] (r12341)
- Fix: Recalculate cached train data after clearing reversing flag when entering depot (r12339)
@@ -439,7 +558,7 @@
- Feature: Support loading full range of 0xD0xx NewGRF strings which includes 0xD000 to 0xD3FF (r12316)
- Feature: Ability to change aircraft speed factor, from so called 'realistic' (matching other vehicles) (1/1) to original TTD speed (1/4) (r12293, r12294)
- Change: Update readme about where openttd looks for files (r12321)
- Fix: Don't pause/unpause the game when showing load/save windows when the game is paused due to missing GRFs [FS#1733] (r12336)
- Fix: Do not pause/unpause the game when showing load/save windows when the game is paused due to missing GRFs [FS#1733] (r12336)
- Fix: Disallow building level crossings over one-way roads as this allowed competitors to remove the one-way state [FS#1819] (r12329)
- Fix: Wrong Y pillar specified for girder with arch bridge (r12328)
- Fix: Vehicles could be sorted in a wrong order when a vehicle name changed - cached name was not invalidated (r12324)
@@ -459,13 +578,13 @@
- Fix: Mac OSX bundle display name should be 'OpenTTD' [FS#1798] (r12234)
- Fix: [NewGRF] Support using any base price for rail and road vehicles' running cost, show running cost of wagons if available (r12209)
- Fix: When loading a savegame fails, do not start creating a new game, just go straight back to the intro screen (r12202)
- Fix: Force AI to build rail or road instead of bridges if possible, so it doesn't build bridges everywhere (r12200)
- Fix: Force AI to build rail or road instead of bridges if possible, so it does not build bridges everywhere (r12200)
- Fix: "Transparent buildings" now only toggles buildings, so show tick when buildings are transparent [FS#1789] (r12198)
- Fix: Show correct last year profit when the train had negative income [FS#1788] (r12197)
- Fix: There can be oil rigs at map borders, do not set water class for them [FS#1787] (r12195)
- Fix: Do not start overtaking if the RV reaches wrong-way one-way-road in the next tiles (r12191)
- Fix: Assert when trying to play tile sound at NW border of map (placing buyos, leveling land) [FS#1784] (r12186)
- Fix: Take into account possible loan when AI is deciding which bridge to build, so it won't build wooden bridges everytime (r12184)
- Fix: Take into account possible loan when AI is deciding which bridge to build, so it will not build wooden bridges everytime (r12184)
0.6.0-beta4 (2008-02-18)
@@ -487,16 +606,16 @@
- Feature: [NewGRF] Add support for Action 0D, var 13: informations about current map size (r11961)
- Feature: Support Action5 type 0D (newwater) (r11947)
- Feature: Allow building bridge heads on more slopes (r11937)
- Feature: [NewGRF] Add support for Rivers. Rivers can currently only be placed with-in the scenario editor (r11926,r11938,r11949,r12071)
- Feature: [NewGRF] Add support for Rivers. Rivers can currently only be placed with-in the scenario editor (r11926, r11938, r11949, r12071)
- Feature: Generate.vbs script to allow project files generation for users unable to run generate bash script (r12123)
- Feature: Sort the strings in languages dropdown (r11886)
- Codechange: Drop MSVC 2003 support (r11979)
- Fix: Test purchase list loading/loaded sprites instead of unconditionally returning a possibly non-existant sprite (r12180)
- Fix: Return correct bridge price for AI when DC_QUERY_COST is set [FS#609] (r12171)
- Fix: When drag&drop mode was cancelled by keyboard input, depot/group window wasn't updated [FS#337] (r12166)
- Fix: When drag&drop mode was cancelled by keyboard input, depot/group window was not updated [FS#337] (r12166)
- Fix: Buffer overflow when drawing scrolling news [FS#1652, FS#1773] (r12165)
- Fix: If a train is 'stopping' when entering a depot, do not let it leave again [FS#1705] (r12163)
- Fix: Towns shouldn't build over houses owned by another town [FS#1757] (r12162)
- Fix: Towns should not build over houses owned by another town [FS#1757] (r12162)
- Fix: Towns will no longer build houses > 1x1 there where should be road (with 2x2, 3x3 grid town layouts) (r12161)
- Fix: Remove the arbitrary limit of 64 waypoints per town [FS#1744] (r12160)
- Fix: Chance16I was now biased towards zero - round to nearest now (r12156)
@@ -507,7 +626,7 @@
- Fix: With mammoth trains disabled, maximum train length was limited to 9 (r12131)
- Fix: Use tile index 0 for planes in the air, so it cannot have an invalid tile index [FS#1745] (r12109)
- Fix: X/Y axis swap for station tiles in GetNearbyTile() was wrong way around [FS#1753]( r12108)
- Fix: Loading older savegames fixes (r12096,r12097)
- Fix: Loading older savegames fixes (r12096, r12097)
- Fix: When a company bankrupts, remove drive-through road stops, ship depots and buoys too. Update owners of water and road [FS#1703] (r12095)
- Fix: Do not set station owner for buoys when merging company (r12093)
- Fix: Keep production level within delimited boundaries, while using var result 0D/0E and than multiplying/dividing it [FS#1755] (r12092)
@@ -519,7 +638,7 @@
- Fix: Make docks at sea flood neighboured tiles (r12072)
- Fix: Possible deadlock when there are no houses available to build at given tile (r12062)
- Fix: Houses with zero probability could be built (r12062)
- Fix: Do not clear tiles when the town won't be able to build any buildings anyway (r12060)
- Fix: Do not clear tiles when the town will not be able to build any buildings anyway (r12060)
- Fix: Allow building 2x2 building on slopes if not explicitly forbidden (r12060)
- Fix: It was possible to build 2x1 and 1x2 buildings on slopes even if it was not allowed (r12060)
- Fix: Teach NPF where road vehicles and trams can reverse (r12058)
@@ -563,11 +682,11 @@
- Fix: Industries using results 0D/0E on callback cb29/35 were a bit too eager to close down (r11976)
- Fix: Shore and sea tiles under bridges were converted to canals in old savegames [FS#1684] (r11974)
- Fix: Use grass tiles for corner shores, if shores got replaced by ActionA [FS#1683] (r11973)
- Fix: Old AI shouldn't build fast planes with a small airport in orders(r11972)
- Fix: Old AI should not build fast planes with a small airport in orders(r11972)
- Fix: MP_ROAD can have railbits too - OPF searching over rail of diffen t owner behind crossing (r11967)
- Fix: OPF was searching through depots and normal road stops [FS#1403, FS#1506] (r11966)
- Fix: Tropic zone data was returned incorrectly [FS#1685] (r11964)
- Fix: NewAI couldn't build any road vehicles when there were any tram grfs loaded (r11958)
- Fix: NewAI could not build any road vehicles when there were any tram grfs loaded (r11958)
- Fix: Disallow building locks and docks on rapids [FS#1675] (r11956)
- Fix: Do not allow modifying roadbits when other roadtypes would need different foundation (r11953)
- Fix: Loading of very old savegames was broken (r11951)
@@ -585,10 +704,10 @@
- Fix: Crash in MP in vehicle group window if the currently selected group is deleted by another player (r11878)
- Fix: Another way to crash competitors' train in a station (r11877)
- Fix: Automatically sending aircraft to depot for autoreplace/renew is now triggered by the correct conditions (r11875)
- Fix: EngineHasReplacementForPlayer() didn't look in ALL_GROUP (r11872)
- Fix: EngineHasReplacementForPlayer() did not look in ALL_GROUP (r11872)
- Fix: Do not update signals after each tile when building/removing a large block of track/signals/station [FS#1074] (r11871)
- Fix: Slow down train when approaching tile we can't enter in more cases (r11870)
- Fix: Do not make crossing red when we can't enter it in any case (r11870)
- Fix: Slow down train when approaching tile we cannot enter in more cases (r11870)
- Fix: Do not make crossing red when we cannot enter it in any case (r11870)
0.6.0-beta3 (2008-01-16)
@@ -633,7 +752,7 @@
- Fix: Popping from text reference stack must be done in a precise order. But some compiler (MSVC) over optimised it and inverted this order [FS#1532] (r11627)
- Fix: There were still some cases where one could not build a tram track, but the tram could become blocked [FS#1525] (r11621)
- Fix: Do not make crossing red behind depot the train is entering [FS#1531] (r11619)
- Fix: Buoys are just waypoints, so don't allow load/unload/transfert for them (r11618)
- Fix: Buoys are just waypoints, so do not allow load/unload/transfer for them (r11618)
- Fix: Sometimes large values could go off the chart [FS#1526] (r11616)
- Fix: Temperate banks can only be built in towns (over a house) (r11615)
@@ -654,7 +773,7 @@
- Fix: Do not allow changing network only patches settings from console when not in network game (r11594)
- Fix: IsSlopeRefused() result was half wrong causing banks to be built on wrong places (r11590)
- Fix: When ship depots got destroyed they always returned to water, even when it should have been canals [FS#1514] (r11589)
- Fix: The one way road button wasn't reset on abort (r11587)
- Fix: The one way road button was not reset on abort (r11587)
- Fix: Windows could get completely missing when one resized the window to something very small [FS#1484] (r11583)
- Fix: Invalidate 'list trains/roadvehs/ships/planes' widgets when station part is added/removed so it does not become glitchy (r11577)
- Fix: Flood train stations when there are no trains on border tiles too (r11574, r11570)
@@ -781,7 +900,7 @@
- Codechange: Keep track of the origin, time of travel and accumulated feeder share (transfers) of individual pieces of cargo. This means that cargo is not thrown on a big pile when it is put in a station or unloaded at a station, however the GUI does not reflect these changes yet so you will not actually see it (r10266)
- Codechange: Do not limit the cost of tunnels (r10248)
- Codechange: Add new vehicle hash table for collision detection and finding vehicles on a tile. The hash area scanned is far smaller than the old hash table, which is now used for viewport updates only. This should give a significant performance improvement for games with many vehicles (r10111)
- Codechange: Don't redraw all station tiles when cargo is added or removed if the station has no custom graphics (r10062)
- Codechange: Do not redraw all station tiles when cargo is added or removed if the station has no custom graphics (r10062)
- Codechange: Add some support for NewGRF var 7D, temporary storage array (r9707)
- Codechange: Add support for returning 'ttdpatch variables' (Action D) (r9701)
- Codechange: Implement NewGRF callback 36, which allows changing of various properties which were previously static (r9671 and several others)
@@ -928,7 +1047,7 @@
- Fix: Take the age of the front vehicle for station rating (r10246)
- Fix: Terraforming wipes out canals. Now you always have to remove the canal before terraforming, instead of "just" removing the canal [FS#594] (r10240)
- Fix: Only 2 trains could crash at one time as collision checking stopped on the first hit. This could technically cause desyncs in network games as the collision hash order is not guaranteed [FS#892] (r10222)
- Fix: Land under foundations was terraform when it shouldn't be terraformed [FS#882, FS#890] (r10219)
- Fix: Land under foundations was terraform when it should not be terraformed [FS#882, FS#890] (r10219)
- Fix: Do not make a 270 degree turn on the international airport when a 90 degree turn is enough (r10187)
- Fix: Crash when trying to get the aircraft movement state of an aircraft going to a just deleted airport [FS#874] (r10165)
- Fix: Airports did not flood when there are aircraft on the airport [FS#601] (r10155)
@@ -969,7 +1088,7 @@
- Fix: Remove arbitrary limit on length of NewGRF strings (r9775)
- Fix: [NewGRF] Ignore axis-bit of station tile layouts [FS#756] (r9758)
- Fix: [win32] Dead key and open/close console. (r9728)
- Fix: When you have closed the "Load game"/"New game" windows which you started from the "start server" menu, you shouldn't start a server when starting a new game [SF#1244842] (r9757)
- Fix: When you have closed the "Load game"/"New game" windows which you started from the "start server" menu, you should not start a server when starting a new game [SF#1244842] (r9757)
- Fix: Trains were lost after autorenewal/autoreplace [FS#732] (r9753)
- Fix: Stop flooded towns from building roads on water [FS#598] (r9743)
- Fix: Station signs were not resized when the language changed [FS#672] (r9741)
@@ -1026,10 +1145,10 @@
- Fix: Difficulty level button was not selected when opening the difficulty window (r9117)
- Fix: The wrong catenary wires were drawn for tunnel entrances [FS#612] (r9077)
- Fix: The intercontinental airport used 'T-junction' runway sprites when there is no exit in the middle of the runway as in the city airport [FS#529] (r9076)
- Fix: [win] dedicated console now doesn't need an extra 'enter' to fully quit [FS#459] (r9074)
- Fix: [win] dedicated console now does not need an extra 'enter' to fully quit [FS#459] (r9074)
- Fix: Take over companies properly in multiplayer games [FS#459] (r9071)
- Fix: When a bribe failed and you haven't picked up cargo yet, you would never be able to do so for a given station [FS#404] (r9070)
- Fix: Don't keep on scrolling for non-numeric values in settings, but require reclick [FS#663] (r9064)
- Fix: When a bribe failed and you have not picked up cargo yet, you would never be able to do so for a given station [FS#404] (r9070)
- Fix: Do not keep on scrolling for non-numeric values in settings, but require reclick [FS#663] (r9064)
- Fix: The personal (.openttd) directories were hidden in the load/save directory listings [FS#652] (r9043)
- Fix: Desync caused by buffer overflow [FS#664] (r9027)
- Fix: When cutting strings into multiple lines also take into consideration whitespace characters of more than 1 byte length. (r9012)
@@ -1089,7 +1208,7 @@
- Fix: Some disaster-events fixed: combat chopper shoots from right position, submarine once again moves around (r8140, r8158)
- Fix: "out of sprite memory" warning messages due to incorrect assumption of requested memory for sprites (r8133)
- Fix: Bouys are now built and numbered 1..9 not 9..1 [FS#538] (r8123)
- Fix: Clicking for more news properly cycles through the news history backwards, and doesn't show the first item doubly if it's already open (r8049)
- Fix: Clicking for more news properly cycles through the news history backwards, and does not show the first item doubly if it's already open (r8049)
- Fix: Crash when removing a town in the scenario editor while the query window is open for one of the town's tiles (r8030)
- Fix: Overflow of system-ticks was not handled properly, resulting in a possibly unresponsive server/client (r8028)
- Fix: Automatic pause interfering with 'pause_on_join setting' in MP when <shift> is pressed [FS#486] (r8027)
@@ -1114,7 +1233,7 @@
- Fix: Signal update got propagated through incompatible railtypes and under certain circumstances tunnels and rail on top (r7620)
- Fix: Remove landscaping toolbar option from road consturction toolbar in scenario editor [FS#473] (r7586)
- Fix: The server could under certain circumstances tell a client too late to start syncing if it has been waiting to join (r7566)
- Fix: Removing towns in scenario editor didn't remove their subsidies causing possible crashes [FS#468] (r7563)
- Fix: Removing towns in scenario editor did not remove their subsidies causing possible crashes [FS#468] (r7563)
- Fix: Internal and (patches) GUI were disagreeing about autorenew settings [FS#431] (r7561)
- Fix: No new company could be created if more than 8 clients were connected, even if not all 8 companies were used (r7560)
- Fix; Clicking 'full load' could under certain circumstances change the current depot order [FS#456] (r7559)
@@ -1125,7 +1244,6 @@
0.5.0-RC1 (2006-12-21)
------------------------------------------------------------------------
- General fixes and improvements to TTDPatch's newgrf format, most noticable are newstations, newsounds, more callbacks and I18n
- Added languages: Bulgarian, Esperanto, Russian, Ukrainian, Languages with proper diacretics: Czech, Hungarian, Turkish
- Feature: Show NewGRF compatability of network games; green for full compatibility, yellow for missing newgrfs and red for invalid revision (r7505)
@@ -1139,14 +1257,14 @@
- Feature: Add Slovak, Brazil and Slovenian currency [SF 1243657, 1171147; FS#131] (r7160, r5964)
- Feature: Allow towns to be built on top of trees in the scenario editor [FS#396] (r7152)
- Feature: Allow over-building of compatible railtypes, i.e. normal and electrified rail. If building electrified rail, normal rail is upgraded for you (at a cost) (r7106)
- Feature: Additional positioning for long dropdown lists with scrollbar support if dropdown list wouldn't fit (r7086)
- Feature: Additional positioning for long dropdown lists with scrollbar support if dropdown list would not fit (r7086)
- Feature: [win32] Remember the window size between restarts when quit in fullscreen mode (r7061)
- Feature: Increase the chatbuffer of chat messages, messages longer than the graphical box will be wrapped to a new line (r6956)
- Feature: Allow typing longer text than visible for an editbox; it will scroll properly now (r6954)
- Feature: Allow spectators to team-speak to eachother (r6933)
- Feature: Allow for " to be in console tokens. Escape them with \. eg \" (r6875)
- Feature: Change the functionality of the chat window. SHIFT+ENTER (SHIFT+T) sends a message to all players, CTRL+ENTER (CTRL+T) sends a message to all team mates and ENTER (T) is customizable (r6824)
- Feature: (Train is) lost message is now generated immediately when pathfinder can't find the path (r6800)
- Feature: (Train is) lost message is now generated immediately when pathfinder cannot find the path (r6800)
- Feature: Add a measurement tool that will show dimensions and height differences of various draggable tools (r6758)
- Feature: Added sort options to the build aircraft and train windows (r6708)
- Feature: Depot lists are now sorted, so vehicle 1 is always first and so on (r6652)
@@ -1203,7 +1321,7 @@
- Codechange: Allow standard ini-file style comments (;) (r6972)
- Codechange: Send server messages with format NETWORK_ACTION_SERVER_MESSAGE so it is general colour like the rest of the server messages. Spectators speak in grey (r6932)
- Codechange: Change textmessage format a bit. Only the sender's name and target are in the sender's colour, the actual message is in white. Should improve readability (r6932)
- Codechange: Add an MD5 sum check of our own data files, and warn if they don't match (r6921)
- Codechange: Add an MD5 sum check of our own data files, and warn if they do not match (r6921)
- Codechange: Add strict bounds checking in string formatting system to check for possible buffer overflows (r6884)
- Codechange: Have the dropdown menus fall fully inside the top toolbar (r6745)
- Codechange: Determine the length of the main toolbar dropdown list based on the length of the strings in that list (r6744)
@@ -1226,7 +1344,7 @@
- Fix: Changed "kick off" acceleration resulted in only a small amount of power being applied; this resulted in a perceived delay before trains moved. (r7421)
- Fix: Long delay for message windows to appear. Immediately show a new message if present if no news window is open, or has just been closed instead of waiting for the timer of the current news to time out [FS#255] (r7402)
- Fix: Deleting Train in depot with autoreplace fails [FS#418] (r7385)
- Fix: Don't update vehicle images when turning a train around. During this procedure the train is split into parts which can result in incorrect images being used (r7378)
- Fix: Do not update vehicle images when turning a train around. During this procedure the train is split into parts which can result in incorrect images being used (r7378)
- Fix: OpenTTD could crash under certain circumstances when a vehicle as autoreplaced and a news window was open [FS#332] (r7368)
- Fix: Segmentation fault in the SDL video driver when one goes to fullscreen and there are no suitable resolutions (r7332)
- Fix: When loading a game from a dedicated server the local player set to 0, theoretically enabling the dedicated server to also play (r7312)
@@ -1234,11 +1352,11 @@
- Fix: Always display the excavation of roadworks even when fully zoomed out or "full details" are off (r7240)
- Fix: Window allocation and deletion messed with the actual window pointer, possibly crashing OpenTTD [FS#350, SF#1560913] (r7205)
- Fix: Callback not executed for non-player based patch changes in multiplayer for all clients; possible desync issue (r7190)
- Fix: Station sign (and base station coordinates) didn't move along with station when station moved by walking. [FS#388] (r7169)
- Fix: Station sign (and base station coordinates) did not move along with station when station moved by walking. [FS#388] (r7169)
- Fix: MiniMap was misplacing vehicles sometimes [FS#402] (r7166)
- Fix: Some mouse events possibly lost under high CPU load, handle mouse input right away instead of waiting for GameLoop. [FS#221, SF1168820] (r7157)
- Fix: Some keyboard events possibly lost under high CPU load, handle keyboard input in place instead of global variables magic. [FS#279] (r7153)
- Fix: "Position of Main Toolbar" option isn't honored when starting new game or loading saved [FS#172] (r7130)
- Fix: "Position of Main Toolbar" option is not honored when starting new game or loading saved [FS#172] (r7130)
- Fix: Synchronize the engine-renew settings of a player when joining a multiplayer game (r7126)
- Fix: Several errors/glitches related to multiplayer and bankrupcy (mainly server), and non-updated company-information (r7125)
- Fix: Cloning a vehicle that has been refitted would incur the expense as running costs, not new vehicles [FS#371] (r7115)
@@ -1253,8 +1371,8 @@
- Fix: Crash at game end when server company is bankrupt [FS#369] (r7008)
- Fix: List of actions panel in the town authority window went underneath its scrollbar (r6885)
- Fix: Pressing ^D (EOF) at a dedicated console caused it to repeat the last command, instead of doing nothing (r6835)
- Fix: Don't add up running cost of articulated engine parts (r6765)
- Fix: If a rail is not available, don't show toolbar even with hotkey 'A' (r6740)
- Fix: Do not add up running cost of articulated engine parts (r6765)
- Fix: If a rail is not available, do not show toolbar even with hotkey 'A' (r6740)
- Fix: Only apply the virtual transfer profit if the order is a transfer order, rather than to any unload order (r6738)
- Fix: Disable main toolbar buttons showing company list drop downs when there are no companies [FS#356] (r6695)
- Fix: Autoreplace can now use the money for selling the old vehicle to build the new one (r6640)
@@ -1265,34 +1383,32 @@
- Fix: Station catchment area persists after switching tools [FS#136] (r6368)
- Fix: Do not reset the current cursor action when centering on a depot/hangar (r6360)
- Fix: Go to hangar orders for aircraft could get spuriously removed when a road or rail depot got deleted (r6355)
- Fix: Due to some off-by-one errors the width or height of a clipping rectangle could become 0, which isn't sensible. This should fix a very rare and hard to trigger assertion in GfxFillRect() (r6351)
- Fix: Never allow scrolling the map in the main menu (scroll-settings weren't reset if switched to mainmenu) (r6037)
- Fix: Due to some off-by-one errors the width or height of a clipping rectangle could become 0, which is not sensible. This should fix a very rare and hard to trigger assertion in GfxFillRect() (r6351)
- Fix: Never allow scrolling the map in the main menu (scroll-settings were not reset if switched to mainmenu) (r6037)
- Fix: Never set I-am-a-thread bool to true IN the thread, dual-core machines could flip [FS#78] (r5977)
- Fix: Town-growth removed houses under construction to make way for road; unwanted behaviour [FS#49] (r5970)
- Fix: Cloned toad vehicles are not refitted to correct cargo [FS#275] (r5917)
- Fix: Bugfix for errors in FindNearestHangar function in aircraft_cmd.c [FS#235] (r5914)
- Fix: Sort order for produced amount and transported percentage was reversed in the industry list (r5912)
- Fix: Changing patch settings through the console didn't accept on/off or true/false [FS#170] (r5903)
- Fix: Changing patch settings through the console did not accept on/off or true/false [FS#170] (r5903)
- Fix: Differing price calculation for tunnels depending on starting point [FS#253] (r5901)
- Fix: Goto sepot not always working for road vehicles [FS#249] (r5898)
- Fix: Bus trying to service in depot of other company [SF1519167] (r5897)
- Fix: If vehicles break down and service is turned off, the vehicles failed to enter any depots; now they will quickly go to a depot if set to be replaced (r5888)
- Fix: Incomplete removal of player owned property due to lack of money [FS#273] (r5886)
- Fix: < > boxes in patch-settings didn't grey out when they hit the limit of their range (r5714)
- Fix: < > boxes in patch-settings did not grey out when they hit the limit of their range (r5714)
- Fix: Check the configuration file for valid values and clamp them to their ingame minimum/maximum [SF1288024] (r3726)
- Fix: Remove the restriction that the 'patch' console command can only be run from network games [SF1366446] (r3723)
0.4.8 (2006-08-12)
------------------------------------------------------------------------
- Fix: A ship in a depot must be stopped before it can be cloned.
- Fix: After changing directory in 'Play Scenario', the default scenarios didn't show up in 'New Game'
0.4.8-RC2 (2006-07-31)
------------------------------------------------------------------------
- Feature: Add Italian town names as we have an official Italian translation
- Codechange: Verify the presence of music files in the gm/ folder. This should also solve some 100% CPU buildup for some users.
- Fix: Certain combinations of trains crash when moved around inside the depot.
@@ -1306,7 +1422,6 @@
0.4.8-RC1 (2006-06-28)
------------------------------------------------------------------------
- Feature: Add Turkish town names as we have an official Turkish translation
- Feature: Add a fully optional configure script that is a wrapper around the cumbersome makefile.config
- Codechange: [NPF] Disable NPF totally for ships as it wholly kills performance (blathijs). Only for 0.4/ branch and 0.4.8.
@@ -1367,7 +1482,6 @@
0.4.7 (2006-03-26)
------------------------------------------------------------------------
- Feature: [OSX] Add support for triple-binaries (PPC, PPC970, i386) (r4102)
- Fix: [OSX] crash when going to fullscreen (r4100)
- Fix: Allow unused wagons to have their first cache set. Fixes faulty cache-warning message and noticably speeds up depot operations (r4094)
@@ -1412,7 +1526,6 @@
0.4.5 (2006-01-31)
------------------------------------------------------------------------
- Feature: [newgrf] Implement varaction2 property 0x41 and 0xDA. (2361)
- Feature: giving server_ip a value of 'all' will make the server listen on any interface (2374)
- Feature: shortcut CTRL + U that clears the current input-box (2385)
@@ -2043,7 +2156,6 @@
0.3.3 (2004-07-13)
------------------------------------------------------------------------
- Feature: (MorphOS/AmigaOS) network support
- Feature: improved german town name generator
- Change: scenarios now have the file extension .scn

View File

@@ -5,7 +5,7 @@ log() {
}
set_default() {
released_version=""
released_version="0.7.1-RC1"
ignore_extra_parameters="0"
# We set all kinds of defaults for params. Later on the user can override
@@ -2405,7 +2405,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 +2426,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"

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-beta2
Bugs for 0.7.1-RC1
------------------------------------------------------------------------
URL: http://bugs.openttd.org
- 2689 Capacity ordering of articulated vehicle in build vehicle window is wrong
- 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,17 +1,34 @@
openttd (0.7~svn-1) UNRELEASED; urgency=low
openttd (0.7.1~RC1) unstable; urgency=low
* Unreleased SVN version. Versioned to allow normal upgrades to released
versions.
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 03 Sep 2008 18:56:04 +0200
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 11 Mar 2008 17:34:56 +0200
openttd (0.7.0-beta2) unstable; urgency=low
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
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 16 Mar 2008 00:07:00 +0200
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 55 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
!define APPVERSION "0.7.1-RC1" ; Define application version
!define APPVERSIONINTERNAL "0.7.1.0" ; Define application version in X.X.X.X
!define INSTALLERVERSION 59 ; 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 APPNAMEANDVERSION "${APPNAME} ${APPVERSION_FULL}"
!define MUI_ICON "..\..\..\media\openttd.ico"
!define MUI_UNICON "..\..\..\media\openttd.ico"

View File

@@ -32,6 +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.1-RC1"
revision = 0
modified = 1
End If

View File

@@ -1,6 +1,6 @@
OpenTTD README
Last updated: 2009-03-10
Release version: 0.7.0-beta2
Last updated: 2009-04-01
Release version: 0.7.0
------------------------------------------------------------------------
@@ -253,8 +253,8 @@ features known from TTDPatch (http://www.ttdpatch.net/).
Several important non-standard controls:
* Ctrl makes much commands more powerful. For example Ctrl clicking on signals
with the build signal tool on signals changes their behaviour.
* Ctrl makes many commands more powerful. For example Ctrl clicking on signals
with the build signal tool changes their behaviour.
* Ingame console. More information at
http://wiki.openttd.org/index.php/Console
* Right clicking shows tooltips

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

@@ -31,7 +31,7 @@ class DummyAI extends AIController {
function Start() { \n\
AILog.Error(\"No suitable AI found to load.\"); \n\
AILog.Error(\"This AI is a dummy AI and won't do anything.\"); \n\
AILog.Error(\"You can download several via the 'Online Content' system.\"); \n\
AILog.Error(\"You can download several AIs via the 'Online Content' system.\"); \n\
} \n\
} \n\
");

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,7 +256,16 @@ void AIInstance::Died()
this->engine = NULL;
ShowAIDebugWindow(_current_company);
ShowErrorMessage(INVALID_STRING_ID, STR_AI_PLEASE_REPORT_CRASH, 0, 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());
}
}
}
void AIInstance::GameLoop()

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

@@ -6,9 +6,10 @@
#include "ai_cargo.hpp"
#include "../../company_func.h"
#include "../../strings_func.h"
#include "../../aircraft.h"
#include "../../vehicle_func.h"
#include "../../settings_type.h"
#include "../../rail.h"
#include "../../engine_base.h"
#include "../../articulated_vehicles.h"
#include "table/strings.h"
@@ -77,11 +78,8 @@
} break;
case VEH_SHIP:
return e->u.ship.capacity;
break;
case VEH_AIRCRAFT:
return AircraftDefaultCargoCapacity(e->GetDefaultCargoType(), &e->u.air);
return e->GetDisplayDefaultCapacity();
break;
default: NOT_REACHED();

View File

@@ -3,9 +3,11 @@
/** @file ai_event_types.cpp Implementation of all EventTypes. */
#include "ai_event_types.hpp"
#include "../../command_type.h"
#include "../../strings_func.h"
#include "../../settings_type.h"
#include "../../aircraft.h"
#include "../../rail.h"
#include "../../engine_base.h"
#include "../../articulated_vehicles.h"
#include "table/strings.h"
@@ -41,11 +43,8 @@ int32 AIEventEnginePreview::GetCapacity()
} break;
case VEH_SHIP:
return e->u.ship.capacity;
break;
case VEH_AIRCRAFT:
return AircraftDefaultCargoCapacity(e->GetDefaultCargoType(), &e->u.air);
return e->GetDisplayDefaultCapacity();
break;
default: NOT_REACHED();

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

@@ -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

@@ -5,7 +5,6 @@
#include "stdafx.h"
#include "train.h"
#include "roadveh.h"
#include "aircraft.h"
#include "newgrf_engine.h"
#include "vehicle_func.h"
@@ -52,22 +51,7 @@ static inline uint16 GetVehicleDefaultCapacity(EngineID engine, VehicleType type
CargoID cargo = (e->CanCarryCargo() ? e->GetDefaultCargoType() : (CargoID)CT_INVALID);
if (cargo_type != NULL) *cargo_type = cargo;
if (cargo == CT_INVALID) return 0;
switch (type) {
case VEH_TRAIN:
return GetEngineProperty(engine, 0x14, e->u.rail.capacity) + (e->u.rail.railveh_type == RAILVEH_MULTIHEAD ? e->u.rail.capacity : 0);
case VEH_ROAD:
return GetEngineProperty(engine, 0x0F, e->u.road.capacity);
case VEH_SHIP:
return GetEngineProperty(engine, 0x0D, e->u.ship.capacity);
case VEH_AIRCRAFT:
return AircraftDefaultCargoCapacity(cargo, &e->u.air);
default: NOT_REACHED();
}
return e->GetDisplayDefaultCapacity();
}
/**

View File

@@ -120,8 +120,8 @@ static int CDECL EngineReliabilitySorter(const void *a, const void *b)
static int CDECL EngineCostSorter(const void *a, const void *b)
{
int va = GetEngine(*(const EngineID*)a)->GetRunningCost();
int vb = GetEngine(*(const EngineID*)b)->GetRunningCost();
Money va = GetEngine(*(const EngineID*)a)->GetCost();
Money vb = GetEngine(*(const EngineID*)b)->GetCost();
int r = ClampToI32(va - vb);
/* Use EngineID to sort instead since we want consistent sorting */
@@ -225,8 +225,11 @@ static int CDECL RoadVehEngineCapacitySorter(const void *a, const void *b)
/* Ship vehicle sorting functions */
static int CDECL ShipEngineCapacitySorter(const void *a, const void *b)
{
int va = ShipVehInfo(*(const EngineID*)a)->capacity;
int vb = ShipVehInfo(*(const EngineID*)b)->capacity;
const Engine *e_a = GetEngine(*(const EngineID*)a);
const Engine *e_b = GetEngine(*(const EngineID*)b);
int va = e_a->GetDisplayDefaultCapacity();
int vb = e_b->GetDisplayDefaultCapacity();
int r = va - vb;
/* Use EngineID to sort instead since we want consistent sorting */
@@ -240,8 +243,8 @@ static int CDECL AircraftEngineCargoSorter(const void *a, const void *b)
const Engine *e_a = GetEngine(*(const EngineID*)a);
const Engine *e_b = GetEngine(*(const EngineID*)b);
int va = AircraftDefaultCargoCapacity(e_a->GetDefaultCargoType(), &e_a->u.air);
int vb = AircraftDefaultCargoCapacity(e_b->GetDefaultCargoType(), &e_b->u.air);
int va = e_a->GetDisplayDefaultCapacity();
int vb = e_b->GetDisplayDefaultCapacity();
int r = va - vb;
if (r == 0) {
@@ -383,7 +386,7 @@ static int DrawRailWagonPurchaseInfo(int x, int y, EngineID engine_number, const
/* Wagon weight - (including cargo) */
uint weight = e->GetDisplayWeight();
SetDParam(0, weight);
uint cargo_weight = (e->CanCarryCargo() ? GetCargo(e->GetDefaultCargoType())->weight * GetEngineProperty(engine_number, 0x14, rvi->capacity) >> 4 : 0);
uint cargo_weight = (e->CanCarryCargo() ? GetCargo(e->GetDefaultCargoType())->weight * e->GetDisplayDefaultCapacity() >> 4 : 0);
SetDParam(1, cargo_weight + weight);
DrawString(x, y, STR_PURCHASE_INFO_WEIGHT_CWEIGHT, TC_FROMSTRING);
y += 10;
@@ -482,7 +485,7 @@ static int DrawShipPurchaseInfo(int x, int y, EngineID engine_number, const Ship
/* Cargo type + capacity */
SetDParam(0, e->GetDefaultCargoType());
SetDParam(1, GetEngineProperty(engine_number, 0x0D, svi->capacity));
SetDParam(1, e->GetDisplayDefaultCapacity());
SetDParam(2, refittable ? STR_9842_REFITTABLE : STR_EMPTY);
DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, TC_FROMSTRING);
y += 10;
@@ -509,14 +512,14 @@ static int DrawAircraftPurchaseInfo(int x, int y, EngineID engine_number, const
/* Cargo capacity */
if (cargo == CT_INVALID || cargo == CT_PASSENGERS) {
SetDParam(0, avi->passenger_capacity);
SetDParam(0, e->GetDisplayDefaultCapacity());
SetDParam(1, avi->mail_capacity);
DrawString(x, y, STR_PURCHASE_INFO_AIRCRAFT_CAPACITY, TC_FROMSTRING);
} else {
/* Note, if the default capacity is selected by the refit capacity
* callback, then the capacity shown is likely to be incorrect. */
SetDParam(0, cargo);
SetDParam(1, AircraftDefaultCargoCapacity(cargo, avi));
SetDParam(1, e->GetDisplayDefaultCapacity());
SetDParam(2, refittable ? STR_9842_REFITTABLE : STR_EMPTY);
DrawString(x, y, STR_PURCHASE_INFO_CAPACITY, TC_FROMSTRING);
}

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

@@ -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

@@ -10,40 +10,40 @@
#include "table/strings.h"
/* exchange rate prefix symbol_pos
* | separator | postfix |
* | | Euro year | | | name
* | | | | | | | */
/* exchange rate prefix symbol_pos
* | separator | postfix |
* | | Euro year | | | name
* | | | | | | | */
static const CurrencySpec origin_currency_specs[NUM_CURRENCY] = {
{ 1, ',', CF_NOEURO, "£", "", 0, STR_CURR_GBP }, ///< british pounds
{ 2, ',', CF_NOEURO, "$", "", 0, STR_CURR_USD }, ///< us dollars
{ 2, ',', CF_ISEURO, "", "", 0, STR_CURR_EUR }, ///< Euro
{ 220, ',', CF_NOEURO, "¥", "", 0, STR_CURR_YEN }, ///< yen
{ 20, ',', 2002, "", " S.", 1, STR_CURR_ATS }, ///< austrian schilling
{ 59, ',', 2002, "BEF ", "", 0, STR_CURR_BEF }, ///< belgian franc
{ 2, ',', CF_NOEURO, "CHF ", "", 0, STR_CURR_CHF }, ///< swiss franc
{ 41, ',', CF_NOEURO, "", "", 1, STR_CURR_CZK }, ///< czech koruna
{ 3, '.', 2002, "DM ", "", 0, STR_CURR_DEM }, ///< deutsche mark
{ 11, '.', CF_NOEURO, "", " kr", 1, STR_CURR_DKK }, ///< danish krone
{ 245, '.', 2002, "Pts ", "", 0, STR_CURR_ESP }, ///< spanish pesetas
{ 9, ',', 2002, "", " mk", 1, STR_CURR_FIM }, ///< finnish markka
{ 10, '.', 2002, "FF ", "", 0, STR_CURR_FRF }, ///< french francs
{ 500, ',', 2002, "", "Dr.", 1, STR_CURR_GRD }, ///< greek drachma
{ 378, ',', CF_NOEURO, "", " Ft", 1, STR_CURR_HUF }, ///< hungarian forint
{ 130, '.', CF_NOEURO, "", " Kr", 1, STR_CURR_ISK }, ///< icelandic krona
{ 2850, ',', 2002, "", " L.", 1, STR_CURR_ITL }, ///< italian lira
{ 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
{ 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
{ 3, '.', CF_NOEURO, "", " TL", 1, STR_CURR_TRY }, ///< turkish lira
{ 52, ',', 2009, "", " Sk", 1, STR_CURR_SKK }, ///< slovak koruna
{ 4, ',', CF_NOEURO, "R$ ", "", 0, STR_CURR_BRL }, ///< brazil real
{ 20, '.', CF_NOEURO, "", " EEK", 1, STR_CURR_EEK }, ///< estonian krooni
{ 1, ' ', CF_NOEURO, "", "", 2, STR_CURR_CUSTOM }, ///< custom currency
{ 1, ',', CF_NOEURO, "\xC2\xA3", "", 0, STR_CURR_GBP }, ///< british pounds
{ 2, ',', CF_NOEURO, "$", "", 0, STR_CURR_USD }, ///< us dollars
{ 2, ',', CF_ISEURO, "\xE2\x82\xAC", "", 0, STR_CURR_EUR }, ///< Euro
{ 220, ',', CF_NOEURO, "\xC2\xA5", "", 0, STR_CURR_YEN }, ///< yen
{ 20, ',', 2002, "", " S.", 1, STR_CURR_ATS }, ///< austrian schilling
{ 59, ',', 2002, "BEF ", "", 0, STR_CURR_BEF }, ///< belgian franc
{ 2, ',', CF_NOEURO, "CHF ", "", 0, STR_CURR_CHF }, ///< swiss franc
{ 41, ',', CF_NOEURO, "", " K\xC4\x8D", 1, STR_CURR_CZK }, ///< czech koruna
{ 3, '.', 2002, "DM ", "", 0, STR_CURR_DEM }, ///< deutsche mark
{ 11, '.', CF_NOEURO, "", " kr", 1, STR_CURR_DKK }, ///< danish krone
{ 245, '.', 2002, "Pts ", "", 0, STR_CURR_ESP }, ///< spanish pesetas
{ 9, ',', 2002, "", " mk", 1, STR_CURR_FIM }, ///< finnish markka
{ 10, '.', 2002, "FF ", "", 0, STR_CURR_FRF }, ///< french francs
{ 500, ',', 2002, "", "Dr.", 1, STR_CURR_GRD }, ///< greek drachma
{ 378, ',', CF_NOEURO, "", " Ft", 1, STR_CURR_HUF }, ///< hungarian forint
{ 130, '.', CF_NOEURO, "", " Kr", 1, STR_CURR_ISK }, ///< icelandic krona
{ 2850, ',', 2002, "", " L.", 1, STR_CURR_ITL }, ///< italian lira
{ 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_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
{ 3, '.', CF_NOEURO, "", " TL", 1, STR_CURR_TRY }, ///< turkish lira
{ 52, ',', 2009, "", " Sk", 1, STR_CURR_SKK }, ///< slovak koruna
{ 4, ',', CF_NOEURO, "R$ ", "", 0, STR_CURR_BRL }, ///< brazil real
{ 20, '.', CF_NOEURO, "", " EEK", 1, STR_CURR_EEK }, ///< estonian krooni
{ 1, ' ', CF_NOEURO, "", "", 2, STR_CURR_CUSTOM }, ///< custom currency
};
/* Array of currencies used by the system */
@@ -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

@@ -566,6 +566,12 @@ static void DisasterTick_Big_Ufo(Vehicle *v)
return;
}
if (!IsValidTile(v->dest_tile)) {
/* Make sure we don't land outside the map. */
delete v;
return;
}
z = GetSlopeZ(v->x_pos, v->y_pos);
if (z < v->z_pos) {
SetDisasterVehiclePos(v, v->x_pos, v->y_pos, v->z_pos - 1);
@@ -885,7 +891,7 @@ static void Disaster_Submarine_Init(DisasterSubType subtype)
int x = TileX(r) * TILE_SIZE + TILE_SIZE / 2;
if (HasBit(r, 31)) {
y = MapMaxX() * TILE_SIZE - TILE_SIZE / 2 - 1;
y = MapMaxY() * TILE_SIZE - TILE_SIZE / 2 - 1;
dir = DIR_NW;
} else {
y = TILE_SIZE / 2;

View File

@@ -177,6 +177,36 @@ bool Engine::CanCarryCargo() const
return this->GetDefaultCargoType() != CT_INVALID;
}
/**
* Determines the default cargo capacity of an engine for display purposes.
*
* For planes carrying both passenger and mail this is the passenger capacity.
* For multiheaded engines this is the capacity of both heads.
* For articulated engines use GetCapacityOfArticulatedParts
*
* @return The default capacity
* @see GetDefaultCargoType
*/
uint Engine::GetDisplayDefaultCapacity() const
{
if (!this->CanCarryCargo()) return 0;
switch (type) {
case VEH_TRAIN:
return GetEngineProperty(this->index, 0x14, this->u.rail.capacity) + (this->u.rail.railveh_type == RAILVEH_MULTIHEAD ? this->u.rail.capacity : 0);
case VEH_ROAD:
return GetEngineProperty(this->index, 0x0F, this->u.road.capacity);
case VEH_SHIP:
return GetEngineProperty(this->index, 0x0D, this->u.ship.capacity);
case VEH_AIRCRAFT:
return AircraftDefaultCargoCapacity(this->GetDefaultCargoType(), &this->u.air);
default: NOT_REACHED();
}
}
Money Engine::GetRunningCost() const
{
switch (this->type) {

View File

@@ -53,6 +53,7 @@ struct Engine : PoolItem<Engine, EngineID, &_Engine_pool> {
CargoID GetDefaultCargoType() const;
bool CanCarryCargo() const;
uint GetDisplayDefaultCapacity() const;
Money GetRunningCost() const;
Money GetCost() const;
uint GetDisplayMaxSpeed() const;

View File

@@ -14,7 +14,6 @@
#include "engine_gui.h"
#include "articulated_vehicles.h"
#include "rail.h"
#include "aircraft.h"
#include "table/strings.h"
#include "table/sprites.h"
@@ -151,7 +150,7 @@ static void DrawAircraftEngineInfo(EngineID engine, int x, int y, int maxw)
if (cargo == CT_INVALID || cargo == CT_PASSENGERS) {
SetDParam(0, e->GetCost());
SetDParam(1, e->GetDisplayMaxSpeed());
SetDParam(2, e->u.air.passenger_capacity);
SetDParam(2, e->GetDisplayDefaultCapacity());
SetDParam(3, e->u.air.mail_capacity);
SetDParam(4, e->GetRunningCost());
@@ -160,7 +159,7 @@ static void DrawAircraftEngineInfo(EngineID engine, int x, int y, int maxw)
SetDParam(0, e->GetCost());
SetDParam(1, e->GetDisplayMaxSpeed());
SetDParam(2, cargo);
SetDParam(3, AircraftDefaultCargoCapacity(cargo, &e->u.air));
SetDParam(3, e->GetDisplayDefaultCapacity());
SetDParam(4, e->GetRunningCost());
DrawStringMultiCenter(x, y, STR_982E_COST_MAX_SPEED_CAPACITY, maxw);
@@ -187,13 +186,12 @@ static void DrawRoadVehEngineInfo(EngineID engine, int x, int y, int maxw)
static void DrawShipEngineInfo(EngineID engine, int x, int y, int maxw)
{
const ShipVehicleInfo *svi = ShipVehInfo(engine);
const Engine *e = GetEngine(engine);
SetDParam(0, e->GetCost());
SetDParam(1, e->GetDisplayMaxSpeed());
SetDParam(2, e->GetDefaultCargoType());
SetDParam(3, GetEngineProperty(engine, 0x0D, svi->capacity));
SetDParam(3, e->GetDisplayDefaultCapacity());
SetDParam(4, e->GetRunningCost());
DrawStringMultiCenter(x, y, STR_982E_COST_MAX_SPEED_CAPACITY, maxw);
}

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.
@@ -829,7 +829,7 @@ void ChangeWorkingDirectory(const char *exe)
void DetermineBasePaths(const char *exe)
{
char tmp[MAX_PATH];
#if defined(__MORPHOS__) || defined(__AMIGA__) || defined(DOS) || !defined(WITH_PERSONAL_DIR)
#if defined(__MORPHOS__) || defined(__AMIGA__) || defined(DOS) || defined(OS2) || !defined(WITH_PERSONAL_DIR)
_searchpaths[SP_PERSONAL_DIR] = NULL;
#else
const char *homedir = getenv("HOME");
@@ -867,7 +867,7 @@ void DetermineBasePaths(const char *exe)
AppendPathSeparator(tmp, MAX_PATH);
_searchpaths[SP_BINARY_DIR] = strdup(tmp);
#if defined(__MORPHOS__) || defined(__AMIGA__) || defined(DOS)
#if defined(__MORPHOS__) || defined(__AMIGA__) || defined(DOS) || defined(OS2)
_searchpaths[SP_INSTALLATION_DIR] = NULL;
#else
snprintf(tmp, MAX_PATH, "%s", GLOBAL_DATA_DIR);

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

@@ -172,6 +172,8 @@ static FT_Error GetFontByFaceName(const char *font_name, FT_Face *face)
if (err != FT_Err_Ok) break;
if (strncasecmp(font_name, (*face)->family_name, strlen((*face)->family_name)) == 0) break;
/* Try english name if font name failed */
if (strncasecmp(font_name + strlen(font_name) + 1, (*face)->family_name, strlen((*face)->family_name)) == 0) break;
err = FT_Err_Cannot_Open_Resource;
} while ((FT_Long)++index != (*face)->num_faces);
@@ -204,42 +206,47 @@ static const char *GetEnglishFontName(const ENUMLOGFONTEX *logfont)
static char font_name[MAX_PATH];
const char *ret_font_name = NULL;
uint pos = 0;
HDC dc;
HGDIOBJ oldfont;
byte *buf;
DWORD dw;
uint16 format, count, stringOffset, platformId, encodingId, languageId, nameId, length, offset;
HFONT font = CreateFontIndirect(&logfont->elfLogFont);
if (font == NULL) goto err1;
HDC dc = GetDC(NULL);
HGDIOBJ oldfont = SelectObject(dc, font);
DWORD dw = GetFontData(dc, 'eman', 0, NULL, 0);
dc = GetDC(NULL);
oldfont = SelectObject(dc, font);
dw = GetFontData(dc, 'eman', 0, NULL, 0);
if (dw == GDI_ERROR) goto err2;
byte *buf = MallocT<byte>(dw);
buf = MallocT<byte>(dw);
dw = GetFontData(dc, 'eman', 0, buf, dw);
if (dw == GDI_ERROR) goto err3;
uint16 format = buf[pos++] << 8;
format = buf[pos++] << 8;
format += buf[pos++];
assert(format == 0);
uint16 count = buf[pos++] << 8;
count = buf[pos++] << 8;
count += buf[pos++];
uint16 stringOffset = buf[pos++] << 8;
stringOffset = buf[pos++] << 8;
stringOffset += buf[pos++];
for (uint i = 0; i < count; i++) {
uint16 platformId = buf[pos++] << 8;
platformId = buf[pos++] << 8;
platformId += buf[pos++];
uint16 encodingId = buf[pos++] << 8;
encodingId = buf[pos++] << 8;
encodingId += buf[pos++];
uint16 languageId = buf[pos++] << 8;
languageId = buf[pos++] << 8;
languageId += buf[pos++];
uint16 nameId = buf[pos++] << 8;
nameId = buf[pos++] << 8;
nameId += buf[pos++];
if (nameId != 1) {
pos += 4; // skip length and offset
continue;
}
uint16 length = buf[pos++] << 8;
length = buf[pos++] << 8;
length += buf[pos++];
uint16 offset = buf[pos++] << 8;
offset = buf[pos++] << 8;
offset += buf[pos++];
/* Don't buffer overflow */
@@ -296,12 +303,18 @@ static int CALLBACK EnumFontCallback(const ENUMLOGFONTEX *logfont, const NEWTEXT
if ((fs.fsCsb[0] & info->locale.lsCsbSupported[0]) == 0 && (fs.fsCsb[1] & info->locale.lsCsbSupported[1]) == 0) return 1;
}
const char *font_name = GetEnglishFontName(logfont);
DEBUG(freetype, 1, "Fallback font: %s", font_name);
const char *english_name = GetEnglishFontName(logfont);
const char *font_name = WIDE_TO_MB((const TCHAR*)logfont->elfFullName);
DEBUG(freetype, 1, "Fallback font: %s (%s)", font_name, english_name);
strecpy(info->settings->small_font, font_name, lastof(info->settings->small_font));
strecpy(info->settings->medium_font, font_name, lastof(info->settings->medium_font));
strecpy(info->settings->large_font, font_name, lastof(info->settings->large_font));
/* Add english name after font name */
strecpy(info->settings->small_font + strlen(info->settings->small_font) + 1, english_name, lastof(info->settings->small_font));
strecpy(info->settings->medium_font + strlen(info->settings->medium_font) + 1, english_name, lastof(info->settings->medium_font));
strecpy(info->settings->large_font + strlen(info->settings->large_font) + 1, english_name, lastof(info->settings->large_font));
return 0; // stop enumerating
}

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"
@@ -1285,6 +1286,9 @@ void ScreenSizeChanged()
void UndrawMouseCursor()
{
/* Don't undraw the mouse cursor if the screen is not ready */
if (_screen.dst_ptr == NULL) return;
if (_cursor.visible) {
Blitter *blitter = BlitterFactoryBase::GetCurrentBlitter();
_cursor.visible = false;
@@ -1300,6 +1304,9 @@ void DrawMouseCursor()
return;
#endif
/* Don't draw the mouse cursor if the screen is not ready */
if (_screen.dst_ptr == NULL) return;
Blitter *blitter = BlitterFactoryBase::GetCurrentBlitter();
int x;
int y;
@@ -1386,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 {
@@ -1454,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
@@ -3165,7 +3175,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Toon aan
STR_REPLACE_REMOVE_WAGON :{BLACK}Wa verwydering: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Maak autoreplace hou die lengte van 'n trein dieselfde deur verwyder waens (begin by die voor), indien vervang die enjin sal die trein langer maak
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Vervang: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EKSPERIMENTELE KENMERK {} Skakel tussen enjin en wa vervang vensters. {} Wa vervang sal alleen gedoen word indien die nuwe wa kan wees herpas binne-in dra dieselfde tipe van cargo as die ou een. Hierdie is gemerk vir elke wa wanneer die vervang plaasvind.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Skakel tussen enjin en wa vervang vensters
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Voertuig is nie beskikbaar nie
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Voertuig is nie beskikbaar nie
STR_SHIP_NOT_AVAILABLE :{WHITE}Skip is nie beskikbaar
@@ -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

@@ -668,7 +668,6 @@ STR_FULL :ممتلئ
STR_02BA :{SILVER}- - {COMPANY} - -
STR_02BB_TOWN_DIRECTORY :دليل المدن
STR_02BD :{BLACK}{STRING}
STR_02BF_CUSTOM :اختياري
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
@@ -787,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 :نمساوي
@@ -820,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)
@@ -1199,6 +1198,7 @@ STR_CANT_REMOVE_TRAIN_WAYPOINT :{WHITE}لا ي
STR_BUILD_AUTORAIL_TIP :{BLACK}بناء سكة القطار باستخدام البناء التلقائي
STR_NO_TOWN_IN_SCENARIO :{WHITE}... لا يوجد مدن في هذه الخريطة
STR_COULD_NOT_CREATE_TOWN :{WHITE}مولد الخريطة توقف ... {} ... لا يوجد مواقع مناسبة للمدن
STR_MANY_RANDOM_TOWNS :{BLACK}العديد من المدن العشوائية
STR_RANDOM_TOWNS_TIP :{BLACK}غطي الخريطة عشوائيا بمدن
@@ -2130,6 +2130,7 @@ STR_NUM_VERY_LOW :منخفض جد
STR_6816_LOW :قليل
STR_6817_NORMAL :طبيعي
STR_6818_HIGH :عالي
STR_02BF_CUSTOM :اختياري
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :بطيء جدا
@@ -2241,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}عدد الوحدات المنقولة
@@ -2802,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} متوقف
@@ -2855,7 +2857,7 @@ STR_9004_NEW_VEHICLES :{BLACK}عربا
STR_9006_NEW_ROAD_VEHICLES :{WHITE}عربات جديدة
STR_9007_BUILD_VEHICLE :{BLACK}شراء عربة
STR_9009_CAN_T_BUILD_ROAD_VEHICLE :{WHITE}لا يمكن شراء عربة ...
STR_900C_DETAILS :{WHITE}{VEHICLE} )التفاصيل(
STR_900C_DETAILS :{WHITE}{VEHICLE} (التفاصيل)
STR_900D_AGE_RUNNING_COST_YR :{BLACK}العمر: {LTBLUE}{STRING}{BLACK} تكلفة التشغيل: {LTBLUE}{CURRENCY}/سنة
STR_900E_MAX_SPEED :{BLACK}السرعة القصوى: {LTBLUE}{VELOCITY}
STR_900F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}الدخل هذة السنة: {LTBLUE}{CURRENCY} (السنة الماضية{CURRENCY})
@@ -3170,6 +3172,10 @@ STR_NEWGRF_BROKEN :{WHITE}حركا
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}يغير طول العربة من '{1:ENGINE}' عندما تكون داخل المستودع
STR_BROKEN_VEHICLE_LENGTH :{WHITE} قطار '{VEHICLE}' المملوك ل'{COMPANY}' لدية طول غير مسرح . غالبا نتج عن مشكلة في NewGRF. اللعبة قد تتوقف او تتعطل .
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}اللعبة حفظت بنسخة لا تدعم الترام. كل ما يتعلق بالترام حذف.
STR_CURRENCY_WINDOW :{WHITE}عمله مخصصه
@@ -3239,7 +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_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} بدل بين نافذة استبدال المحركات و العربات
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}العربة غير متاحة
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE} العربات غير متاحة
STR_SHIP_NOT_AVAILABLE :{WHITE} السفن غير متاحة
@@ -3580,6 +3586,7 @@ STR_AI_RANDOM_AI :ذكاء صنا
STR_AI_SETTINGS_CAPTION :{WHITE} خصائص الذكاء الصناعي
STR_AI_AUTHOR :المحرر:
STR_AI_VERSION :النسخة:
STR_AI_PLEASE_REPORT_CRASH :{WHITE} واحد من الذكاء الصناعي فشل. الرجاء ابلاغ المبرمج عنه مصحوبا بصورة من شاشة مصحح الاخطاء.
########
############ town controlled noise level

View File

@@ -608,6 +608,7 @@ STR_CANNOT_GENERATE_TOWN :{WHITE}Impossí
STR_NO_SPACE_FOR_TOWN :{WHITE}...não há mais espaço no mapa
STR_023B_INCREASE_SIZE_OF_TOWN :{BLACK}Aumentar o tamanho da cidade
STR_023C_EXPAND :{BLACK}Expandir
STR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}A cidade não irá construir estradas. Você pode ativar essa opção através de Config. Avançadas>Economia>Cidades.
STR_023D_RANDOM_TOWN :{BLACK}Cidade Aleatória
STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION :{BLACK}Construir cidade num local aleatório
STR_0285_CAN_T_BUILD_HERE :{WHITE}Impossível construir {STRING} aqui...
@@ -667,7 +668,6 @@ STR_FULL :Completo
STR_02BA :{SILVER}- - {COMPANY} - -
STR_02BB_TOWN_DIRECTORY :Lista de cidades
STR_02BD :{BLACK}{STRING}
STR_02BF_CUSTOM :Personalizado
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
@@ -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)
@@ -1198,6 +1198,7 @@ STR_CANT_REMOVE_TRAIN_WAYPOINT :{WHITE}Impossí
STR_BUILD_AUTORAIL_TIP :{BLACK}Construir ferrovias usando o modo automático
STR_NO_TOWN_IN_SCENARIO :{WHITE}...não existe cidade neste cenário
STR_COULD_NOT_CREATE_TOWN :{WHITE}Geração do mapa abortada... {}... não há locais para criação de cidades
STR_MANY_RANDOM_TOWNS :{BLACK}Várias cidades aleatórias
STR_RANDOM_TOWNS_TIP :{BLACK}Cobrir o mapa com cidades colocadas aleatoriamente
@@ -2129,6 +2130,7 @@ STR_NUM_VERY_LOW :Muito baixo
STR_6816_LOW :Baixo
STR_6817_NORMAL :Normal
STR_6818_HIGH :Alto
STR_02BF_CUSTOM :Personalizado
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :Muito Lento
@@ -2240,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
@@ -2801,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
@@ -3169,6 +3172,10 @@ STR_NEWGRF_BROKEN :{WHITE} '{0:STR
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Muda o tamanho de um veículo para '{1:ENGINE}' apesar de não estar em um depósito.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Trem '{VEHICLE}' de '{COMPANY}' tem um tamanho inválido. Provavelmente causado por um NewGRF. O jogo pode travar ou sair de sincronia.
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.
STR_CURRENCY_WINDOW :{WHITE}Moeda Modificada
@@ -3238,7 +3245,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Exibe o
STR_REPLACE_REMOVE_WAGON :{BLACK}Remoção de vagões: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Faz autosubstituição manter o tamanho do trem removendo vagões (começando pela frente), se ao substituir a locomotiva o trem ficar maior.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Substituindo: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EXPERIMENTAL {}Troca entre substituir máquinas e substituir vagões.{} Só haverá a substituição se puder haver o reacondicionamento para carregar o mesmo tipo de carga. Essa checagem ocorre para cada vagão enquanto a substituição ocorre.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Troca entre substituir máquinas e substituir vagões
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Trem não disponível
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Automóvel não disponível
STR_SHIP_NOT_AVAILABLE :{WHITE}Embarcação não disponível
@@ -3579,6 +3586,7 @@ STR_AI_RANDOM_AI :IA Randômica
STR_AI_SETTINGS_CAPTION :{WHITE}Parâmetros da IA
STR_AI_AUTHOR :Progamador:
STR_AI_VERSION :Versão:
STR_AI_PLEASE_REPORT_CRASH :{WHITE}Uma das IA's travou. Favor relatar ao autor da IA com uma screenshot da Janela de Debug da IA.
########
############ town controlled noise level

View File

@@ -668,7 +668,6 @@ STR_FULL :Пълно
STR_02BA :{SILVER}- - {COMPANY} - -
STR_02BB_TOWN_DIRECTORY :Списък от градовете
STR_02BD :{BLACK}{STRING}
STR_02BF_CUSTOM :Изборен
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
@@ -786,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 :австрийски
@@ -819,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)
@@ -916,6 +915,8 @@ STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Тер
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}По-реалистична зона за обслужване: {ORANGE}{STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}Разрушаване на повече градска собственост: {ORANGE}{STRING.n}
STR_CONFIG_SETTING_MAMMOTHTRAINS :{LTBLUE}Много дълги влакове: {ORANGE}{STRING.p}
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_ORIGINAL :Оригинален
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_REALISTIC :Реалистичен
STR_CONFIG_SETTING_FORBID_90_DEG :{LTBLUE}Забрана 90 градусови завои: {ORANGE}{STRING.f}{LTBLUE} (трябва NPF)
STR_CONFIG_SETTING_JOINSTATIONS :{LTBLUE}Обединяване на гари построени една до друга: {ORANGE}{STRING}
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :{LTBLUE}Позволено е присъединяването на станции, които не се допират: {ORANGE}{STRING}
@@ -1059,6 +1060,7 @@ STR_CONFIG_SETTING_DISABLE_ELRAILS :{LTBLUE}Без
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :{LTBLUE}Цветни нови се появяват през: {ORANGE}{STRING}
STR_CONFIG_SETTING_STARTING_YEAR :{LTBLUE}Начална година: {ORANGE}{STRING}
STR_CONFIG_SETTING_ALLOW_SHARES :{LTBLUE}Разреши купуване на акции от други компании: {ORANGE}{STRING}
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :{LTBLUE}Поставяне семафори всеки: {ORANGE}{STRING} плочк{P а и}
STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}Поставяне на семафори преди: {ORANGE}{STRING} година
STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :{LTBLUE}Инструменти за сигналите: {ORANGE}{STRING.p}
@@ -1071,11 +1073,13 @@ STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Само нор
STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Само напреднат
STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Всички
STR_CONFIG_SETTING_TOWN_LAYOUT :{LTBLUE}Пътно оформление за нови градове: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :default
STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :по-добри пътища
STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :2х2 мрежа
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :3х3 мрежа
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :случаен
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :{LTBLUE}Градове са разрешени да изграждат пътища: {ORANGE}{STRING}
STR_CONFIG_SETTING_NOISE_LEVEL :{LTBLUE}Градовете контролират нивото на шум от летищата: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOOLBAR_POS :{LTBLUE}Позиция на лентата за инструменти: {ORANGE}{STRING}
@@ -1102,6 +1106,15 @@ STR_CONFIG_SETTING_VEHICLES :{ORANGE}Авт
STR_CONFIG_SETTING_STATIONS :{ORANGE}Станции
STR_CONFIG_SETTING_ECONOMY :{ORANGE}Икономика
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}Влакове
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Градове
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Индустрии
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}Пътенамирач за влакове: {ORANGE}{STRING}
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NTP :NTP {RED}(не се препоръчва)
@@ -1407,6 +1420,7 @@ STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}Въве
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Сървъра е защитен. Въведете парола
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Компанията е защитена. Въведете парола
STR_NETWORK_CLIENT_LIST :{WHITE}Списък с играчите
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Нова Фирма
STR_NETWORK_ERR_NOTAVAILABLE :{WHITE} Не са открити мрежови устройства или е компилирано без ENABLE_NETWORK
STR_NETWORK_ERR_NOSERVER :{WHITE} Не може да открия мрежови игри
@@ -1655,6 +1669,7 @@ STR_200B_CENTER_THE_MAIN_VIEW_ON :{BLACK}Цент
STR_200C_CHANGE_TOWN_NAME :{BLACK}Промяна на име на град
STR_200D_PASSENGERS_LAST_MONTH_MAX :{BLACK}Пасажери през последния месец: {ORANGE}{COMMA}{BLACK} максимум: {ORANGE}{COMMA}
STR_200E_MAIL_LAST_MONTH_MAX :{BLACK}Поща през последния месец: {ORANGE}{COMMA}{BLACK} максимум: {ORANGE}{COMMA}
STR_CARGO_FOR_TOWNGROWTH_REQUIRED :{SETX 20}{ORANGE}{STRING}{BLACK} необходим
STR_200F_TALL_OFFICE_BLOCK :Висока офис сграда
STR_2010_OFFICE_BLOCK :Офис сграда
STR_2011_SMALL_BLOCK_OF_FLATS :Малък жилищен блок
@@ -2095,6 +2110,7 @@ STR_NUM_VERY_LOW :мн. малк
STR_6816_LOW :малко
STR_6817_NORMAL :нормално
STR_6818_HIGH :голямо
STR_02BF_CUSTOM :Изборен
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :много бавно
@@ -3063,6 +3079,7 @@ STR_PERFORMANCE_DETAIL_LOAN_TIP :{BLACK}Сума
STR_PERFORMANCE_DETAIL_TOTAL_TIP :{BLACK}Натрупани точки от общия възможен брой
STR_NEWGRF_SETTINGS_BUTTON :{BLACK}NewGRF настройки
STR_NEWGRF_SETTINGS_BUTTON_TIP :{BLACK}Покажи NewGRF настройки
STR_NEWGRF_SETTINGS_CAPTION :{WHITE}Newgrf настройки
STR_NEWGRF_APPLY_CHANGES :{BLACK}Прилагане на промените
STR_NEWGRF_TOGGLE_PALETTE :{BLACK}Превключване на палитрата
@@ -3092,6 +3109,7 @@ STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Unexpected spri
STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Unknown Action 0 property.
STR_NEWGRF_ERROR_INVALID_ID :Attempt to use invalid ID.
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} съдържа повреден обект. Вскички повредени обекти ще бъдат показани като червена въпросителна (?).
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Съдържа множество Действие 8 вписвания.
STR_NEWGRF_PRESET_LIST_TIP :{BLACK}Зареди избрания шаблон
STR_NEWGRF_PRESET_SAVE :{BLACK}Запиши шаблон
@@ -3132,6 +3150,8 @@ STR_NEWGRF_BROKEN :{WHITE}Пове
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Смяна на дължината на превозното средство '{1:ENGINE}', когато не е в депо.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Влак '{VEHICLE}' на '{COMPANY}' има невалидна дължина. Това вероятно е породено от проблеми с NewGRFs. Играта може да загуби синхронизация или да забие.
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}' дава невярна информация.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Играта бе записана във версия без поддръжка на трамваи. Всички трамваи са изтрити.
STR_CURRENCY_WINDOW :{WHITE}Парична единица
@@ -3201,7 +3221,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_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Превключване между замяна на локомотиви и вагони
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Превозното средство не е на разположение
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Превозното средство не е на разположение
STR_SHIP_NOT_AVAILABLE :{WHITE}Корабът не е на разположение
@@ -3318,6 +3338,13 @@ STR_SMALLMAP_CENTER :{BLACK}Цент
STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRING} ({NUM})
# Strings for map borders at game generation
STR_NORTHWEST :{BLACK}Северозапад
STR_NORTHEAST :{BLACK}Североизток
STR_SOUTHEAST :{BLACK}Югоизток
STR_SOUTHWEST :{BLACK}Югозапад
STR_BORDER_WATER :{BLACK}Вода
STR_BORDER_RANDOM :{BLACK}Случаен
STR_BORDER_RANDOMIZE :{BLACK}Случаен
########### String for new airports
STR_SMALL_AIRPORT :{BLACK}Малко
@@ -3506,6 +3533,25 @@ STR_OSK_KEYBOARD_LAYOUT_CAPS :~!?+"%=:/_№І
########
############ AI GUI
STR_AI_SETTINGS_BUTTON :{BLACK}AI Настройки
STR_AI_SETTINGS_BUTTON_TIP :{BLACK}Покажи AI настройки
STR_AI_DEBUG_NAME_TIP :{BLACK}Име на AI
STR_AI_DEBUG_RELOAD :{BLACK}Презареждане AI
STR_AI_CONFIG_CAPTION :{WHITE}AI Конфигурация
STR_AI_CHANGE :{BLACK}Изберете AI
STR_AI_CONFIGURE :{BLACK}Конфигуриране
STR_AI_CHANGE_TIP :{BLACK}Зареди друг AI
STR_AI_CONFIGURE_TIP :{BLACK}Конфигурирайте параметрите на AI
STR_AI_AILIST_TIP :{BLACK}Кликнете за да изберете AI
STR_AI_ACCEPT :{BLACK}Приеми
STR_AI_CANCEL :{BLACK}Отмени
STR_AI_CANCEL_TIP :{BLACK}Не променяй AI
STR_AI_CLOSE :{BLACK}Затвари
STR_AI_HUMAN_PLAYER :Човешки играч
STR_AI_RANDOM_AI :Случаен AI
STR_AI_SETTINGS_CAPTION :{WHITE}AI Параметри
STR_AI_AUTHOR :Автор:
STR_AI_VERSION :Версия:
########
############ town controlled noise level
@@ -3514,6 +3560,38 @@ STR_STATION_NOISE :{BLACK}Прои
########
############ Downloading of content from the central server
STR_CONTENT_TYPE_NEWGRF :NewGRF
STR_CONTENT_TYPE_AI :AI
STR_CONTENT_TYPE_AI_LIBRARY :AI библиотека
STR_CONTENT_TYPE_SCENARIO :Сценарий
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}
STR_CONTENT_DETAIL_VERSION :{SILVER}Версия: {WHITE}{STRING}
STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}Описание: {WHITE}{STRING}
STR_CONTENT_DETAIL_URL :{SILVER}URL: {WHITE}{STRING}
STR_CONTENT_DETAIL_TYPE :{SILVER}Вид: {WHITE}{STRING}
STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{SILVER}Избрани поради: {WHITE}{STRING}
STR_CONTENT_DETAIL_DEPENDENCIES :{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.
@@ -3242,7 +3244,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra q
STR_REPLACE_REMOVE_WAGON :{BLACK}Treure vagons: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Fer que la substitució automàtica mantingui la llargària del tren eliminant vagons (començant pel front), si substituint la màquina el tren es fa més llarg
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Substituint: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} CARACTERÍSTICA EXPERIMENTAL {}Alterna entre finestres de substitució de vagons i de motors{}La substitució del vagó només tindrà lloc si el nou vagó pot ser remodelat per admetre el mateix tipus de càrrega que el vell. Això es comprova per a cada vagó quan la substitució es produeix.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Alterna entre finestres de substitució de vagons i de motors
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}El tren no està disponible
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}El vehicle no està disponible
STR_SHIP_NOT_AVAILABLE :{WHITE}El vaixell no està disponible

View File

@@ -672,6 +672,7 @@ STR_CANNOT_GENERATE_TOWN :{WHITE}Nije mog
STR_NO_SPACE_FOR_TOWN :{WHITE}...nema više mjesta na karti
STR_023B_INCREASE_SIZE_OF_TOWN :{BLACK}Povećaj veličinu grada
STR_023C_EXPAND :{BLACK}Proširi
STR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Grad neće graditi ceste. Možete uključiti gradnju cesta putem Naprednih postavki -> Ekonomija -> Gradovi
STR_023D_RANDOM_TOWN :{BLACK}Nasumičan grad
STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION :{BLACK}Izgradi grad na nasumično odabranom pložaju
STR_0285_CAN_T_BUILD_HERE :{WHITE}Ovdje nije moguće izgraditi {STRING}...
@@ -731,7 +732,6 @@ STR_FULL :Puno
STR_02BA :{SILVER}- - {COMPANY} - -
STR_02BB_TOWN_DIRECTORY :Popis gradova
STR_02BD :{BLACK}{STRING}
STR_02BF_CUSTOM :Proizvoljno
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
@@ -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)
@@ -1012,8 +1012,10 @@ STR_CONFIG_SETTING_NONUNIFORM_STATIONS :{LTBLUE}Neujedn
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Težinski množitelj za teret za simulaciju teških vlakova: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Faktor brzine zrakoplova: {ORANGE}1/{STRING}
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{LTBLUE}Dopusti prolazne postaje na cestama u vlasništvu gradova: {ORANGE}{STRING}
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :{LTBLUE}Dozboli prolazne znakove na cestama koje su vlasništvo konkurencije: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Dopusti izgradnju pridruženih postaja: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES :{LTBLUE}Omogući više NewGRF setova strojeva: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Mjenjanje ovih postavki nije moguće kad postoje vozila
STR_CONFIG_SETTING_SMALL_AIRPORTS :{LTBLUE}Uvijek dopusti male zračne luke: {ORANGE}{STRING}
@@ -1261,6 +1263,7 @@ STR_CANT_REMOVE_TRAIN_WAYPOINT :{WHITE}Nije mog
STR_BUILD_AUTORAIL_TIP :{BLACK}Izgradi željezničku prugu koristeći Autorail način
STR_NO_TOWN_IN_SCENARIO :{WHITE}...u ovom scenariju nema gradova
STR_COULD_NOT_CREATE_TOWN :{WHITE}Generiranje karte prekinuto...{}...ne postoje prigodne lokacije za gradove
STR_MANY_RANDOM_TOWNS :{BLACK}Mnogo nasumičnih gradova
STR_RANDOM_TOWNS_TIP :{BLACK}Popuni kartu nasumično raspoređenim gradovima
@@ -1749,6 +1752,9 @@ STR_200B_CENTER_THE_MAIN_VIEW_ON :{BLACK}Centrira
STR_200C_CHANGE_TOWN_NAME :{BLACK}Promijeni ime grada
STR_200D_PASSENGERS_LAST_MONTH_MAX :{BLACK}Putnika prošli mjesec: {ORANGE}{COMMA}{BLACK} maks: {ORANGE}{COMMA}
STR_200E_MAIL_LAST_MONTH_MAX :{BLACK}Pošte prošli mjesec: {ORANGE}{COMMA}{BLACK} maks: {ORANGE}{COMMA}
STR_CARGO_FOR_TOWNGROWTH :{BLACK}Potrebno tereta za rast grada:
STR_CARGO_FOR_TOWNGROWTH_REQUIRED :{SETX 20}{ORANGE}{STRING}{BLACK} potrebno
STR_CARGO_FOR_TOWNGROWTH_LAST_MONTH :{SETX 20}{ORANGE}{CARGO}{BLACK} isporučeno prošli mjesec
STR_200F_TALL_OFFICE_BLOCK :Visoki uredski blok
STR_2010_OFFICE_BLOCK :Uredski blok
STR_2011_SMALL_BLOCK_OF_FLATS :Mali stambeni blok
@@ -2189,6 +2195,7 @@ STR_NUM_VERY_LOW :Vrlo nisko
STR_6816_LOW :Nisko
STR_6817_NORMAL :Normalno
STR_6818_HIGH :Visoko
STR_02BF_CUSTOM :Proizvoljno
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :Vrlo sporo
@@ -3229,6 +3236,9 @@ STR_NEWGRF_BROKEN :{WHITE}Ponašan
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Ovo mijenja dužinu vozila za '{1:ENGINE}' kada vozilo nije unutar spremišta.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Vlak'{VEHICLE}' koji pripada tvrtci '{COMPANY}' neispravne je dužine. Uzrok problema je vjerojatno u NewGRF-ovima. Igra će se možda deharmonizirati ili srušiti.
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' daje netočne informacije.
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Informacija tereta/obnavljanja za '{1:ENGINE}' je različita od kupovne liste nakon konstrukcije. Zbog toga bi automatsko obnavljanje/zamjena mogla biti neuspješna
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Igra je bila spremljena u verziji bez podrške za tramvaje. Zbog toga su svi tramvaji uklonjeni.
STR_CURRENCY_WINDOW :{WHITE}Proizvoljna valuta
@@ -3298,7 +3308,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Prikazuj
STR_REPLACE_REMOVE_WAGON :{BLACK}Uklanjanje vagona: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ukoliko bi zamjena lokomotive učinla vlak dužim, neka automatska zamjena zadrži istu dužinu vlaka tako da ukloni suvišne vagone (počevši od naprijed).
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Zamjenjujem:{ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} POKUSNA FUNKCIJA {} Prebaci između prozora za izmjenu lokomotiva i vagona.{}Izmjena vagona izvršit će se samo ako novi vagon može biti prenamijenjen za prijevoz istog tipa tereta kao i stari vagon. Ovo se provjerava za svaki vagon kada se stvarna zamjena odvija.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Prebaci između prozora za izmjenu lokomotiva i vagona
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Vozilo nije dostupno
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Vozilo nije dostupno
STR_SHIP_NOT_AVAILABLE :{WHITE}Brod nije dostupan
@@ -3639,6 +3649,7 @@ STR_AI_RANDOM_AI :Nasumična UI
STR_AI_SETTINGS_CAPTION :{WHITE}Parametri UI
STR_AI_AUTHOR :Autor:
STR_AI_VERSION :Verzija:
STR_AI_PLEASE_REPORT_CRASH :{WHITE}Jedan od igrača sa UI se srušio. Molimo vas da prijavite ovo autoru UI sa screenshotom AI Debug prozora
########
############ town controlled noise level

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í.
@@ -3316,7 +3318,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Tady je
STR_REPLACE_REMOVE_WAGON :{BLACK}Odebírání vagonů: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Funkce automatického vylepšování vlaků může udržovat stejnou délku vlaku odstraňovaním vagonů (od začátku vlaku), pokud by změna mašiny vlak prodloužila.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Vyměňování: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EXPERIMENTÁLNÍ VLASTNOST {}Přepne mezi okny na výměnu lokomotiv a vagonů.{}Vagon se vymění, jen když je nový vagon schopen vozit stejnou komoditu, jako ten starý. Toto se ověřuje pro každý vagon.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Přepne mezi okny na výměnu lokomotiv a vagonů
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Vozidlo není dostupné
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Vůz není dostupné
STR_SHIP_NOT_AVAILABLE :{WHITE}Loď není dostupná

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
@@ -607,6 +607,7 @@ STR_CANNOT_GENERATE_TOWN :{WHITE}Kan ikke
STR_NO_SPACE_FOR_TOWN :{WHITE}...der er ikke mere plads på kortet
STR_023B_INCREASE_SIZE_OF_TOWN :{BLACK}Forøg størrelsen af byen
STR_023C_EXPAND :{BLACK}Udvid
STR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Byen vil ikke kunne bygge veje. Du kan tillade byer at bygge veje via Avancerede indstillinger->Økonomi->Byer.
STR_023D_RANDOM_TOWN :{BLACK}Tilfældig by
STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION :{BLACK}Byg en by på en tilfældig placering
STR_0285_CAN_T_BUILD_HERE :{WHITE}Kan ikke bygge {STRING} her...
@@ -688,6 +689,7 @@ STR_TRANSPARENT_SIGNS :{SETX 12}Gennem
STR_02D5_LAND_BLOCK_INFO :Landområde information
STR_02D6 :
STR_CONSOLE_SETTING :Tænd/Sluk konsol
STR_AI_DEBUG_MENU :Computerspiller-debug
STR_02D7_SCREENSHOT_CTRL_S :Skærmbillede (Ctrl-S)
STR_02D8_GIANT_SCREENSHOT_CTRL_G :Kæmpe skærmbillede (Ctrl-G)
STR_02D9_ABOUT_OPENTTD :Om 'OpenTTD'
@@ -698,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
@@ -783,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
@@ -816,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)
@@ -936,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}
@@ -944,6 +946,7 @@ STR_CONFIG_SETTING_NONUNIFORM_STATIONS :{LTBLUE}Ikke un
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Vægtfaktor for fragt for at simulere tunge tog: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Fly-hastighedsfaktor: {ORANGE}1 / {STRING}
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{LTBLUE}Tillad gennemkørsels-stop på veje ejet af en by: {ORANGE}{STRING}
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :{LTBLUE}Tillad gennemkørsels-stoppesteder på veje ejet af konkurrenter: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Tillad bygning af tilstødende stationer: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES :{LTBLUE}Muliggør flere NewGRF køretøjssæt: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Denne indstilling kan ikke ændres, når der er køretøjer.
@@ -1049,6 +1052,8 @@ STR_CONFIG_SETTING_AI_BUILDS_ROADVEH :{LTBLUE}Deaktiv
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :{LTBLUE}Deaktiver fly for computeren: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_BUILDS_SHIPS :{LTBLUE}Deaktiver skibe for computeren: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :{LTBLUE}Tillad computerspillere i netværksspil: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_MAX_OPCODES :{LTBLUE}Antal instruktioner før computerspilleren standses: {ORANGE}{STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT :{LTBLUE}Service intervaller er i procent: {ORANGE}{STRING}
STR_CONFIG_SETTING_SERVINT_TRAINS :{LTBLUE}Standard service interval for tog: {ORANGE}{STRING} dage/%
@@ -1192,6 +1197,7 @@ STR_CANT_REMOVE_TRAIN_WAYPOINT :{WHITE}Kan ikke
STR_BUILD_AUTORAIL_TIP :{BLACK}Byg jernbane med auto-jernbane-værktøj
STR_NO_TOWN_IN_SCENARIO :{WHITE}...der er ingen byer i dette scenarie
STR_COULD_NOT_CREATE_TOWN :{WHITE}Kortgenerering afbrudt...{}...ingen brugbare lokaliteter til byer
STR_MANY_RANDOM_TOWNS :{BLACK}Mange tilfældige byer
STR_RANDOM_TOWNS_TIP :{BLACK}Dæk kortet med tilfældigt placerede byer
@@ -2235,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
@@ -2609,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)
@@ -2796,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
@@ -3164,6 +3171,9 @@ STR_NEWGRF_BROKEN :{WHITE}Denne Ne
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Den ændrer toglængden for '{1:ENGINE}' mens den ikke er i depot.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Toget '{VEHICLE}' fra firmaet '{COMPANY}' har ugyldig længde. Det skyldes sandsynligvis at problem med en NewGRF. Spillet går muligvis ned.
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.
@@ -3234,7 +3244,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Viser hv
STR_REPLACE_REMOVE_WAGON :{BLACK}Fjern vogn: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Få autoudskift til at bevare længden af tog ved at fjerne vogne (startende fra fronten), hvis autoudskiftningen gør toget længere.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Udskifter: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EKSPERIMENTEL EGENSKAB {}Skift imellem lokomotiv- og vogn-udskiftningsvindue.{}Vognudskiftning vil kun finde sted hvis den nye vogn kan ændres til at transportere samme godstype som den gamle vogn. Dette bliver checket for hver vogn, når udskiftningen finder sted.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Skift imellem lokomotiv- og vogn-udskiftningsvindue
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Tog er ikke tilgængeligt
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Vejkøretøj er ikke tilgængeligt
STR_SHIP_NOT_AVAILABLE :{WHITE}Skib er ikke tilgængeligt
@@ -3549,10 +3559,33 @@ STR_OSK_KEYBOARD_LAYOUT_CAPS :~!@#$%^&*()_+|Q
########
############ AI GUI
STR_AI_SETTINGS_BUTTON :{BLACK}Computerspiller-indstillinger
STR_AI_SETTINGS_BUTTON_TIP :{BLACK}Vis indstillinger for computerstyrede spillere
STR_AI_DEBUG :{WHITE}Computerspiller-debug
STR_AI_DEBUG_NAME_TIP :{BLACK}Navn på computerspilleren
STR_AI_DEBUG_RELOAD :{BLACK}Genindlæs computerspiller
STR_AI_DEBUG_RELOAD_TIP :{BLACK}Stop computerspilleren, genindlæs scriptet og genstart computerspilleren
STR_AI_DEBUG_SERVER_ONLY :{YELLOW}Computerspiller-debugvindue er kun tilgængeligt på serveren
STR_AI_CONFIG_CAPTION :{WHITE}Computerspiller-konfiguration
STR_AI_CHANGE :{BLACK}Vælg computerspiller
STR_AI_CONFIGURE :{BLACK}Konfigurer computerspiller
STR_AI_CHANGE_TIP :{BLACK}Indlæs en anden computerspiller
STR_AI_CONFIGURE_TIP :{BLACK}Konfigurer parametre for computerspiller
STR_AI_LIST_TIP :{BLACK}Alle computerstyrede spillere der vil blive indlæst i næste spil
STR_AI_LIST_CAPTION :{WHITE}Tilgængelige computerspillere
STR_AI_AILIST_TIP :{BLACK}Klik for at vælge en computerstyret spiller
STR_AI_ACCEPT :{BLACK}Accepter
STR_AI_ACCEPT_TIP :{BLACK}Vælg markeret computerstyret spiller
STR_AI_CANCEL :{BLACK}Afbryd
STR_AI_CANCEL_TIP :{BLACK}Skift ikke computerstyret spiller
STR_AI_CLOSE :{BLACK}Luk
STR_AI_RESET :{BLACK}Nulstil
STR_AI_HUMAN_PLAYER :Menneskelig spiller
STR_AI_RANDOM_AI :Tilfældig computerspiller
STR_AI_SETTINGS_CAPTION :{WHITE}Computerspiller-parametre
STR_AI_AUTHOR :Skaber:
STR_AI_VERSION :Version:
STR_AI_PLEASE_REPORT_CRASH :{WHITE}En computerstyret spiller gik ned. Rapporter det venligst til udvikleren af computerspilleren med et skærmbilledet af computerspiller-debugvinduet.
########
############ town controlled noise level
@@ -3565,6 +3598,8 @@ STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD
STR_CONTENT_NO_ZLIB_SUB :{WHITE}... det er ikke muligt at downloade indhold!
STR_CONTENT_TYPE_BASE_GRAPHICS :Basisgrafik
STR_CONTENT_TYPE_NEWGRF :NewGRF
STR_CONTENT_TYPE_AI :Computerspiller
STR_CONTENT_TYPE_AI_LIBRARY :Computerspiller-resourcefil
STR_CONTENT_TYPE_SCENARIO :Scenarie
STR_CONTENT_TYPE_HEIGHTMAP :Højdekort
STR_CONTENT_TITLE :{WHITE}Download af indhold

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}
@@ -1197,6 +1197,7 @@ STR_CANT_REMOVE_TRAIN_WAYPOINT :{WHITE}Kan hier
STR_BUILD_AUTORAIL_TIP :{BLACK}Bouw spoor met de Autorail-methode
STR_NO_TOWN_IN_SCENARIO :{WHITE}...er is geen stad in dit scenario
STR_COULD_NOT_CREATE_TOWN :{WHITE}Map maken afgebroken...{}...geen geschikte dorplokaties
STR_MANY_RANDOM_TOWNS :{BLACK}Veel willekeurige steden
STR_RANDOM_TOWNS_TIP :{BLACK}Bedek de kaart met willekeurig geplaatste steden
@@ -2240,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
@@ -3169,6 +3171,10 @@ STR_NEWGRF_BROKEN :{WHITE}Gedrag v
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Het verandert de lengte van voertuig '{1:ENGINE}' wanneer niet in een depot.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Trein '{VEHICLE}' behorend bij '{COMPANY}' heeft een ongeldige lengte. Het is waarschijnlijk veroorzaakt door problemen metNewGRFs. Het spel kan desync krijgen of crash.
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.
STR_CURRENCY_WINDOW :{WHITE}Aangepaste valuta
@@ -3238,7 +3244,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Dit geef
STR_REPLACE_REMOVE_WAGON :{BLACK}Wagons verwijderen: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}De te vervangen trein behoudt zijn lengte door wagons weg te halen (startend aan de voorkant), als het vervangen de trein langer zou maken
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Aan het vervangen: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EXPERIMENTEEL {}Wissel tussen motor- en wagonvervangvensters.{}Wagonvervanging wordt alleen uitgevoerd als de nieuwe wagon omgebouwd kan worden om hetzelfde ladingtype te dragen als de oude wagon. Dit wordt gecontroleerd voor elke wagon wanneer de daadwerkelijke vervanging plaats vindt.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wissel tussen motor- en wagonvervangvensters
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Trein is niet beschikbaar
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Voertuig is niet beschikbaar
STR_SHIP_NOT_AVAILABLE :{WHITE}Schip is niet beschikbaar
@@ -3579,6 +3585,7 @@ STR_AI_RANDOM_AI :Willekeurige AI
STR_AI_SETTINGS_CAPTION :{WHITE}AI Parameters
STR_AI_AUTHOR :Maker:
STR_AI_VERSION :Versie:
STR_AI_PLEASE_REPORT_CRASH :{WHITE}Een van de draaiende AI's is gecrashed. Meldt dit bij de schrijver van deze AI met een schermprint van het AI Debugscherm.
########
############ town controlled noise level

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.
@@ -3242,7 +3244,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Displays
STR_REPLACE_REMOVE_WAGON :{BLACK}Wagon removal: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Make autoreplace keep the length of a train the same by removing wagons (starting at the front), if replacing the engine would make the train longer.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Replacing: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EXPERIMENTAL FEATURE {}Switch between engine and wagon replacement windows.{}Wagon replacement will only be done if the new wagon can be refitted into carrying the same type of cargo as the old one. This is checked for each wagon when the actual replacement takes place.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Switch between engine and wagon replacement windows
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Vehicle is not available
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Vehicle is not available
STR_SHIP_NOT_AVAILABLE :{WHITE}Ship is not available
@@ -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
@@ -3170,6 +3171,10 @@ STR_NEWGRF_BROKEN :{WHITE}Behaviou
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}It changes vehicle length for '{1:ENGINE}' when not inside a depot.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Train '{VEHICLE}' belonging to '{COMPANY}' has invalid length. It is probably caused by problems with NewGRFs. Game may desync or crash.
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.
STR_CURRENCY_WINDOW :{WHITE}Custom currency
@@ -3239,7 +3244,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Displays
STR_REPLACE_REMOVE_WAGON :{BLACK}Car removal: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Make autoreplace keep the length of a train the same by removing cars (starting at the front), if replacing the engine would make the train longer.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Replacing: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EXPERIMENTAL FEATURE {}Switch between engine and car replacement windows.{}Car replacement will only be done if the new car can be refitted into carrying the same type of cargo as the old one. This is checked for each car when the actual replacement takes place.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Switch between engine and car replacement windows
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Vehicle is not available
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Vehicle is not available
STR_SHIP_NOT_AVAILABLE :{WHITE}Ship is not available
@@ -3580,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_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.
########
############ town controlled noise level

View File

@@ -432,10 +432,13 @@ STR_AGE :{COMMA} jaro{P
STR_AGE_RED :{RED}{COMMA} jaro{P "" j} ({COMMA})
############ range for service numbers ends
STR_019C_ROAD_VEHICLE :Vojveturilo
STR_019D_AIRCRAFT :Aviadilo
STR_019E_SHIP :Ŝipo
STR_019F_TRAIN :Trajno
STR_019C_ROAD_VEHICLE :Vojveturilo
STR_019E_SHIP :Ŝipo
STR_019D_AIRCRAFT :Aviadilo
STR_01A0_IS_GETTING_OLD :{WHITE}{VEHICLE} malnoviĝis
STR_01A1_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} tre malnoviĝis
STR_01A2_IS_GETTING_VERY_OLD_AND :{WHITE}{VEHICLE} tro malnoviĝis kaj postulas anstataŭiĝon
STR_01A3_LAND_AREA_INFORMATION :{WHITE}Landregionaj informoj
STR_01A4_COST_TO_CLEAR_N_A :{BLACK}Forviŝkosto: {LTBLUE}ne eblas
STR_01A5_COST_TO_CLEAR :{BLACK}Forviŝkosto: {RED}{CURRENCY}
@@ -541,6 +544,8 @@ STR_0206_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Unua ve
STR_0207_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Unua veturilo atingas konkurantan stacion
STR_0208_ACCIDENTS_DISASTERS :{YELLOW}Akcidentoj / katastrofoj
STR_0209_COMPANY_INFORMATION :{YELLOW}Kompaniaj informoj
STR_NEWS_INDUSTRY_OPEN :{YELLOW}Malfermiĝo de industrioj
STR_NEWS_INDUSTRY_CLOSE :{YELLOW}Fermiĝo de industrioj
STR_020A_ECONOMY_CHANGES :{YELLOW}Ekonomiaj ŝanĝoj
STR_020C_NEW_VEHICLES :{YELLOW}Novaj veturiloj
STR_020D_CHANGES_OF_CARGO_ACCEPTANCE :{YELLOW}Ŝarĝakceptado ŝanĝiĝas
@@ -628,10 +633,12 @@ STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}...amba
STR_02A1_SMALL :{BLACK}Malgranda
STR_02A2_MEDIUM :{BLACK}Mezgranda
STR_02A3_LARGE :{BLACK}Granda
STR_SELECT_TOWN_SIZE_RANDOM :{BLACK}Arbitre
STR_FOUND_TOWN_CITY :{BLACK}Urbo
STR_02A4_SELECT_TOWN_SIZE :{BLACK}Elektu urban grandecon
STR_02A5_TOWN_SIZE :{YELLOW}Urba grandeco:
STR_02B6 :{STRING} - {STRING}
STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS :{BLACK}Montru lastan mesaĝon aŭ novaĵon
STR_OFF :Ne
@@ -640,7 +647,6 @@ STR_FULL :Plene
STR_02BA :{SILVER}- - {COMPANY} - -
STR_02BB_TOWN_DIRECTORY :Urbaro
STR_02BD :{BLACK}{STRING}
STR_02BF_CUSTOM :Ŝanĝitaj
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
@@ -754,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
@@ -787,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)
@@ -813,6 +819,7 @@ STR_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Ekranfot
STR_OPTIONS_SCREENSHOT_FORMAT_CBO :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
STR_OPTIONS_SCREENSHOT_FORMAT_TIP :{BLACK}Elektu uzotan ekranfotan formaton
STR_AUTOSAVE_1_MONTH :Je ĉiu monato
STR_AUTOSAVE_FAILED :{WHITE}Fiaskis aŭtomate konservi
@@ -920,6 +927,7 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :{LTBLUE}Altecma
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Maldekstrume
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Dekstrume
STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :{LTBLUE}Kiom alta fariĝos scenara mapo: {ORANGE}{STRING}
STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Unu ay pli da xeloj en norda parto ne malplenas
STR_CONFIG_SETTING_STATION_SPREAD :{LTBLUE}Maksimuma stacivasteco: {ORANGE}{STRING} {RED}Atentu: Pli alte, malpli rapide
STR_CONFIG_SETTING_SERVICEATHELIPAD :{LTBLUE}Aŭtomate prizorgu helikopterojn sur helikopterejoj: {ORANGE}{STRING}
@@ -938,6 +946,8 @@ STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Malaktiva
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Mapskrolrada rapido: {ORANGE}{STRING}
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :{LTBLUE}Aŭtomate paŭzu startante novan ludon: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_ALL :Ĉiuj kompanioj
STR_CONFIG_SETTING_LOADING_INDICATORS_ALL :Ĉiuj kompanioj
@@ -955,6 +965,7 @@ STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :{LTBLUE}Malebli
STR_CONFIG_SETTING_AI_BUILDS_SHIPS :{LTBLUE}Malebligu ŝipojn por la komputilo: {ORANGE}{STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT :{LTBLUE}Prizorgintervala procentaĵo: {ORANGE}{STRING}
STR_CONFIG_SETTING_SERVINT_TRAINS :{LTBLUE}Defaŭlta prizorgintervalo por trajnoj: {ORANGE}{STRING} tagoj/%
STR_CONFIG_SETTING_SERVINT_TRAINS_DISABLED :{LTBLUE}Defaŭlta prizorgintervalo por trajnoj: {ORANGE}malaktiva
STR_CONFIG_SETTING_SERVINT_ROADVEH :{LTBLUE}Defaŭlta prizorgintervalo por vojveturiloj: {ORANGE}{STRING} tagoj/%
@@ -1003,15 +1014,20 @@ STR_CONFIG_SETTING_VEHICLES :{ORANGE}Veturil
STR_CONFIG_SETTING_STATIONS :{ORANGE}Stacioj
STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomio
STR_CONFIG_SETTING_AI :{ORANGE}Konkurantoj
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Urboj
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrioj
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(malrekomenda)
STR_CONFIG_SETTING_MAP_X :{LTBLUE}X-grandeco de la mapo: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAP_Y :{LTBLUE}Y-grandeco de la mapo: {ORANGE}{STRING}
############ generic strings for settings
STR_CONFIG_SETTING_DISABLED :malaktiva
STR_CONFIG_SETTING_INT32 :{NUM}
STR_CONFIG_SETTING_CURRENCY :{CURRENCY}
STR_CONFIG_SETTING_QUERY_CAPT :{WHITE}Ŝanĝu agord-valoron
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(malrekomenda)
STR_TEMPERATE_LANDSCAPE :Modera landaspekto
STR_SUB_ARCTIC_LANDSCAPE :Arktikeca landaspekto
STR_SUB_TROPICAL_LANDSCAPE :Tropikeca landaspekto
@@ -1101,7 +1117,6 @@ STR_MESSAGE_HISTORY_TIP :{BLACK}Listo da
STR_MESSAGES_DISABLE_ALL :{BLACK}Malaktivigu ĉiujn
STR_MESSAGES_ENABLE_ALL :{BLACK}Aktivigu ĉiujn
STR_INDUSTRYDIR_CAPTION :{WHITE}Industrioj
STR_INDUSTRYDIR_ITEM :{ORANGE}{INDUSTRY}{BLACK} ({CARGO}{STRING}){YELLOW} ({COMMA}% transportite)
STR_INDUSTRYDIR_ITEM_TWO :{ORANGE}{INDUSTRY}{BLACK} ({CARGO}{STRING}/{CARGO}{STRING}){YELLOW} ({COMMA}%/{COMMA}% transportite)
@@ -1114,10 +1129,8 @@ STR_RAIL_REFIT_VEHICLE :{BLACK}Transfor
STR_RAIL_SELECT_TYPE_OF_CARGO_FOR :{BLACK}Elektu ŝarĝospecon portotan de la trajno
STR_RAIL_REFIT_TO_CARRY_HIGHLIGHTED :{BLACK}Transformu trajnon por porti la elektitan ŝarĝotipon
STR_RAIL_CAN_T_REFIT_VEHICLE :{WHITE}Ne povas transformi la trajnon...
STR_CONFIG_SETTING_SERVINT_ISPERCENT :{LTBLUE}Prizorgintervala procentaĵo: {ORANGE}{STRING}
STR_CONFIG_GAME_PRODUCTION :{WHITE}Ŝanĝu produktadon
############ network gui strings
STR_NETWORK_MULTIPLAYER :{WHITE}Pluraj ludantoj
@@ -1318,6 +1331,8 @@ STR_NETWORK_ERR_CLIENT_KICKED :forbatite de se
STR_NETWORK_ERR_CLIENT_CHEATER :provis uzi filudaĵon
STR_NETWORK_ERR_CLIENT_SERVER_FULL :servilo plenas
############ End of leave-in-this-order
############ Leave those lines in this order!!
############ End of leave-in-this-order
STR_NETWORK_CHAT_COMPANY_CAPTION :[Teamo] :
STR_NETWORK_CHAT_COMPANY :[Teamo] {STRING}: {WHITE}{STRING}
STR_NETWORK_CHAT_TO_COMPANY :[Teamo] Al {STRING}: {WHITE}{STRING}
@@ -1345,11 +1360,6 @@ STR_NETWORK_SEND :{BLACK}Sendu
############ end network gui strings
STR_CONFIG_SETTING_MAP_X :{LTBLUE}X-grandeco de la mapo: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAP_Y :{LTBLUE}Y-grandeco de la mapo: {ORANGE}{STRING}
##### PNG-MAP-Loader
STR_PNGMAP_ERROR :{WHITE}Ne povas ŝarĝi landaspekton de PNG...
@@ -1886,6 +1896,7 @@ STR_NUM_VERY_LOW :Tre malalte
STR_6816_LOW :Malalte
STR_6817_NORMAL :Normale
STR_6818_HIGH :Alte
STR_02BF_CUSTOM :Ŝanĝitaj
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :Tre Malrapide
@@ -2768,6 +2779,7 @@ STR_NEWGRF_DISABLED_WARNING :{WHITE}Manka(j)
STR_CURRENCY_WINDOW :{WHITE}Alia monunuo
STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Interŝanĝa valoro: {ORANGE}{CURRENCY} = £ {COMMA}
STR_CURRENCY_SEPARATOR :{LTBLUE}Dividilo:
@@ -2834,7 +2846,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Montras
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagonforigo: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ĉe aŭtomata anstataŭigo tenu saman longecon de la trajno per forigo de vagonoj (defronte), se per nova maŝino la trajno plilongiĝas
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Anstataŭante: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EKSPERIMENTA AĴO {}Ŝaltu inter maŝina kaj vagona anstataŭigo.{}Vagona anstataŭigo nur okazos se la nova vagono povas transformiĝi por porti saman ŝarĝon kiel la malnova. Por ĉiu vagono tio kontroliĝos dum anstataŭado.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Ŝaltu inter maŝina kaj vagona anstataŭigo
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Trajno ne haveblas
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Veturilo ne haveblas
STR_SHIP_NOT_AVAILABLE :{WHITE}Ŝipo ne haveblas
@@ -2948,6 +2960,8 @@ STR_FLAT_WORLD_HEIGHT :{BLACK}Alteco d
STR_SMALLMAP_CENTER :{BLACK}Centrigu la mapeton al la nuna loko
STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRING} ({NUM})
# Strings for map borders at game generation
########### String for new airports
STR_SMALL_AIRPORT :{BLACK}Malgranda flughaveno
STR_CITY_AIRPORT :{BLACK}Urba flughaveno
@@ -3053,5 +3067,14 @@ STR_FACE_MOUSTACHE :Liphararo:
############ on screen keyboard
########
############ AI GUI
########
############ town controlled noise level
########
############ Downloading of content from the central server
########

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
@@ -3220,7 +3268,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Näitab
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagunite eemaldus: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Sunni automaatset asendust hoidma rongi pikkust selleks (eest alustades) veeremit eemaldades, juhul kui uus vagun muudaks rongi pikemaks.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Asendamisel: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} TESTIMISEL! {}Vaheta aken mootori ja vaguni asendamise aknate vahel.{}Vaguni vahetus tehakse ainult siis kui uus vagun suudetakse muuta kandmaks sama tüüpi kaupa kui vana vagun. See valitakse igale vagunile kui tegelik vahetus käib
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Vaheta aken mootori ja vaguni asendamise aknate vahel
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Sõiduk pole saadaval
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Sõiduk pole saadaval
STR_SHIP_NOT_AVAILABLE :{WHITE}Laev pole saadaval
@@ -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.
@@ -3242,7 +3244,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Näyttä
STR_REPLACE_REMOVE_WAGON :{BLACK}Vaunun poisto: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Automaattikorvaus pitäköön junan vakiopituisena poistamalla vaunuja (edestä) jos veturi pidentäisi junaa.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Korvataan: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} ERIKOIS OMINAISUUS {} Vaihda toiseen korvausikkunaan. {} Vaunu vaihdetaan ainoastaan jos uusi vaunu kuljettaa samaa rahtia. Tämä tarkistetaan, joka kerta kun vaunu korvataan.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Vaihda toiseen korvausikkunaan
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Juna tai vaunu ei ole saatavilla
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Ajoneuvo ei ole saatavilla
STR_SHIP_NOT_AVAILABLE :{WHITE}Laiva ei ole saatavilla

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.
@@ -3243,7 +3245,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Ceci aff
STR_REPLACE_REMOVE_WAGON :{BLACK}Retrait de wagon: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}L'autoremplacement conserve la même longueur du train en retirant des wagons (d'abord par la tête), si le remplacement fait en sorte que le train ne devienne plus long.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}En Remplacement: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} FONCTION EXPERIMENTALE {}Passer à la fenêtre de remplacement de locomotives/wagons.{}Le remplacement de wagon ne se fera que si le nouveau wagon peut être réaménagé pour le même type de cargaison que l'ancien. Ceci est vérifié pour chaque wagon lors du remplacement.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Passer à la fenêtre de remplacement de locomotives/wagons
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Véhicule non disponible
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Véhicule non disponible
STR_SHIP_NOT_AVAILABLE :{WHITE}Navire non disponible

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
@@ -3146,7 +3154,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra q
STR_REPLACE_REMOVE_WAGON :{BLACK}Eliminar os vagóns: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Facer que a autosubstitución manteña a lonxitude do tren quitando vagóns (empezando polo principio), se ó substituír a máquina o tren é máis longo.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Substituíndo: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} FUNCIÓN EXPERIMENTAL {}Cambia entre as fiestras de substitución de máquinas e vagóns.{}A substitución de vagóns só se fará se o novo vagón pode reaxustarse para levar o mismo tipo de carga que o antigo. Compróbase para cada vagón cando se fai a substitución.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambia entre as fiestras de substitución de máquinas e vagóns
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}O vehículo non está dispoñible
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}O vehículo non está dispoñible
STR_SHIP_NOT_AVAILABLE :{WHITE}O barco non está dispoñible
@@ -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

@@ -170,7 +170,7 @@ STR_00C6 :{SILVER}{CROSS}
STR_00C7_QUIT :{WHITE}Verlassen
STR_00C8_YES :{BLACK}Ja
STR_00C9_NO :{BLACK}Nein
STR_00CA_ARE_YOU_SURE_YOU_WANT_TO :{YELLOW}Das Spiel wirklich abbrechen und zu {STRING} zurückkehren?
STR_00CA_ARE_YOU_SURE_YOU_WANT_TO :{YELLOW}OpenTTD wirklich beenden und zu {}{STRING} zurückkehren?
STR_00CB_1 :{BLACK}1
STR_00CC_2 :{BLACK}2
STR_00CD_3 :{BLACK}3
@@ -315,7 +315,7 @@ STR_015B_OPENTTD :{WHITE}OpenTTD
STR_015C_SAVE_GAME :Spiel speichern
STR_015D_LOAD_GAME :Spiel laden
STR_015E_QUIT_GAME :Spiel beenden
STR_015F_QUIT :Beenden
STR_015F_QUIT :OpenTTD beenden
STR_ABANDON_GAME_QUERY :{YELLOW}Das Spiel wirklich beenden?
STR_0161_QUIT_GAME :{WHITE}Spiel beenden
STR_SORT_ORDER_TIP :{BLACK}Sortierreihenfolge auswählen (absteigend/aufsteigend)
@@ -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
@@ -1981,7 +1981,7 @@ STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Produkti
STR_482B_TRANSPORTED :{YELLOW}{CARGO}{STRING}{BLACK} ({COMMA}% befördert)
STR_482C_CENTER_THE_MAIN_VIEW_ON :{BLACK}Hauptansicht zum Industriegebiet scrollen
STR_482D_NEW_UNDER_CONSTRUCTION :{BLACK}{BIGFONT}Neue{G r "" s ""} {STRING} {G 0 wird wird wird werden} nahe {TOWN} gebaut!
STR_482E_NEW_BEING_PLANTED_NEAR :{BLACK}{BIGFONT}Neue{G r "" s ""} {STRING} {G 0 wird wird wird werden} nahe {TOWN} aufgeforstet!
STR_482E_NEW_BEING_PLANTED_NEAR :{BLACK}{BIGFONT}Neue{G r "" s ""} {STRING} {G 0 wird wird wird werden} nahe {TOWN} angepflanzt!
STR_482F_COST :{BLACK}Kosten: {YELLOW}{CURRENCY}
STR_4830_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}Industrie kann hier nicht gebaut werden...
STR_4831_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}...Wald kann nur oberhalb der Schneegrenze gepflanzt werden
@@ -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
@@ -3243,7 +3245,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Hier wir
STR_REPLACE_REMOVE_WAGON :{BLACK}Waggon-Entfernung: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ursprüngliche Länge des Zugs beibehalten, indem (vorne beginnend) Waggons entfernt werden, falls das Ersetzen der Lokomotive den Zug verlängern würde.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Ersetzen: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EXPERIMENTELLE FUNKTION {}Umschalter für Lok- oder Waggonersetzung{}Waggons werden nur ersetzt, wenn der neue Waggon den selben Warentyp transportieren kann wie der alte. Dies wird beim Ersetzen eines jeden Waggons einzeln geprüft.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Umschalter für Lok- oder Waggonersetzung
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Fahrzeug nicht verfügbar
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Fahrzeug nicht verfügbar
STR_SHIP_NOT_AVAILABLE :{WHITE}Schiff nicht verfügbar
@@ -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

@@ -3,9 +3,9 @@
##isocode he_IL
##winlangid 0x040d
##grflangid 0x61
##plural 0
##gender m f
##plural 2
##textdir rtl
##gender m f
#
@@ -259,6 +259,7 @@ STR_013C_CARGO :{BLACK}משא
STR_013D_INFORMATION :{BLACK}מידע
STR_013E_CAPACITIES :{BLACK}קיבולות
STR_TOTAL_CARGO :{BLACK}סה"כ סחורה
STR_013F_CAPACITY :{BLACK}קיבולת: {LTBLUE}{CARGO}{STRING}
STR_TOTAL_CAPACITY_TEXT :{BLACK}:סה"כ קיבולת הסחורה ברכבת זאת
STR_TOTAL_CAPACITY :{LTBLUE}- {CARGO} ({SHORTCARGO})
STR_TOTAL_CAPACITY_MULT :{LTBLUE}- {CARGO} ({SHORTCARGO}) (x{NUM})
@@ -644,10 +645,14 @@ STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}...קצ
STR_02A1_SMALL :{BLACK}קטן
STR_02A2_MEDIUM :{BLACK}בינוני
STR_02A3_LARGE :{BLACK}גדול
STR_SELECT_TOWN_SIZE_RANDOM :{BLACK}אקראי
STR_FOUND_TOWN_CITY :{BLACK}עיר
STR_02A4_SELECT_TOWN_SIZE :{BLACK}בחר את גודל העיר
STR_02A5_TOWN_SIZE :{YELLOW}:גודל העיר
STR_SELECT_LAYOUT_ORIGINAL :{BLACK}מקורי
STR_SELECT_LAYOUT_BETTER_ROADS :{BLACK}כבישים טובים יותר
STR_SELECT_LAYOUT_RANDOM :{BLACK}אקראי
STR_02B6 :{1:STRING} - {0:STRING}
STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS :{BLACK}הצג הודעה או חדשות אחרונים
@@ -657,7 +662,6 @@ STR_FULL :מלא
STR_02BA :{SILVER}- - {COMPANY} - -
STR_02BB_TOWN_DIRECTORY :מדריך הערים
STR_02BD :{BLACK}{STRING}
STR_02BF_CUSTOM :אחר
STR_CHECKMARK :{CHECKMARK}
############ range for menu starts
@@ -726,6 +730,7 @@ STR_02FA_EVERY_12_MONTHS :כל 12 חוד
STR_02FB_START_A_NEW_GAME :{BLACK}התחל משחק חדש
STR_02FC_LOAD_A_SAVED_GAME :{BLACK}טען משחק שמור
STR_02FE_CREATE_A_CUSTOMIZED_GAME :{BLACK}צור מפה/סצנריו מותאמים אישית
STR_0300_SELECT_MULTIPLAYER_GAME :{BLACK}התחל משחק מרובה משתתפים
STR_0301_DISPLAY_GAME_OPTIONS :{BLACK}הצג הגדרות משחק
STR_0302_DISPLAY_DIFFICULTY_OPTIONS :{BLACK}הצג הגדרות קושי
STR_0303_START_A_NEW_GAME_USING :{BLACK}התחל משחק חדש עם סצנריו מותאם אישית
@@ -775,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 :אוסטרית
@@ -808,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) קרונה שוודית
@@ -835,6 +840,10 @@ STR_OPTIONS_SCREENSHOT_FORMAT :{BLACK}פורמ
STR_OPTIONS_SCREENSHOT_FORMAT_CBO :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
STR_OPTIONS_SCREENSHOT_FORMAT_TIP :{BLACK}בחר את הפורמט של צילום המסך
STR_OPTIONS_BASE_GRF :{BLACK}סט גרפיקה בסיסי
STR_OPTIONS_BASE_GRF_CBO :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
STR_OPTIONS_BASE_GRF_TIP :{BLACK}בחר בסט גרפיקה בסיסי לשימוש
STR_AUTOSAVE_1_MONTH :מידי חודש
STR_AUTOSAVE_FAILED :{WHITE}שמירה אוטומטית נכשלה
@@ -934,6 +943,7 @@ STR_CONFIG_SETTING_PLANE_SPEED :{ORANGE}1 / {ST
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{ORANGE}{STRING}{LTBLUE} :אפשר מעבר דרך תחנות על כבישים בבעלות עירונית
STR_CONFIG_SETTING_ADJACENT_STATIONS :{ORANGE}{STRING}{LTBLUE} :אפשר בניית תחנות בשכנות
STR_CONFIG_SETTING_DYNAMIC_ENGINES :{LTBLUE}Enable multiple NewGRF engine sets: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}החלפת הגדרה זו לא אפשרית כאשר יש רכבים
STR_CONFIG_SETTING_SMALL_AIRPORTS :{ORANGE}{STRING}{LTBLUE} :אפשר בניית שדות תעופה קטנים בכל עת
@@ -944,6 +954,7 @@ STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :כן,למעט
STR_CONFIG_SETTING_ORDER_REVIEW_ON :עבור כל הרכבים
STR_CONFIG_SETTING_WARN_INCOME_LESS :{ORANGE}{STRING}{LTBLUE} :התרע על רכבים בעלי הכנסה שלילית
STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :{ORANGE}{STRING}{LTBLUE} :בטל התיישנות כלי רכב
STR_CONFIG_SETTING_AUTORENEW_VEHICLE :{LTBLUE}חידוש עצמי של רכב כשהוא נהיה ישן: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTORENEW_MONTHS :{LTBLUE}חידוש עצמי של כלי רכב כשהוא {ORANGE}{STRING}{LTBLUE} חודשים לפני\אחרי הגיל המקסימלי.
STR_CONFIG_SETTING_AUTORENEW_MONEY :{LTBLUE}סכום הכסף המינימלי הנדרש בשביל חידוש: {ORANGE}{STRING}
STR_CONFIG_SETTING_ERRMSG_DURATION :{LTBLUE}משך הצגת הודעת שגיאה: {ORANGE}{STRING}
@@ -1038,6 +1049,7 @@ STR_CONFIG_SETTING_AI_BUILDS_SHIPS :{ORANGE}{STRING
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :{ORANGE}{STRING}{LTBLUE} :אפשר שחקני מחשב במשחק רשת
STR_CONFIG_SETTING_AI_MAX_OPCODES :{LTBLUE}#opcodes before AI is suspended: {ORANGE}{STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT :{ORANGE}{STRING}{LTBLUE} :הצג מרווחי טיפול באחוזים
STR_CONFIG_SETTING_SERVINT_TRAINS :{ORANGE}%/ימים {STRING}{LTBLUE} :מרווח בין טיפולים עבור רכבות
STR_CONFIG_SETTING_SERVINT_TRAINS_DISABLED :{ORANGE}מבוטל {LTBLUE} :מרווח בין טיפולים עבור רכבות
STR_CONFIG_SETTING_SERVINT_ROADVEH :{ORANGE}%/ימים {STRING}{LTBLUE} :מרווח בין טיפולים עבור אוטובוסים/משאיות
@@ -1052,6 +1064,7 @@ STR_CONFIG_SETTING_DISABLE_ELRAILS :{ORANGE}{STRING
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :{ORANGE}{STRING}{LTBLUE} :הצג חדשות צבעוניות החל משנת
STR_CONFIG_SETTING_STARTING_YEAR :{ORANGE}{STRING}{LTBLUE} :שנת התחלה
STR_CONFIG_SETTING_ALLOW_SHARES :{LTBLUE}אפשר קניית מניות מחברות אחרות: {ORANGE}{STRING}
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :{ORANGE}משבצ(ו)ת {STRING}{LTBLUE} :בעת גרירה, הצג רמזורים בכל
STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :{ORANGE}{STRING}{LTBLUE} :בנה רמזורים מכאניים לפני
STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :{ORANGE}{STRING}{LTBLUE} :אפשר ממשק ויזואלי עבור רמזורים
@@ -1069,6 +1082,7 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :כבישים מ
STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :2x2 רשת
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :3x3 רשת
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :אקראית
STR_CONFIG_SETTING_NOISE_LEVEL :{ORANGE}{STRING}{LTBLUE} :אפשר שליטה של הערים ברמת הרעש בשדות תעופה
STR_CONFIG_SETTING_TOOLBAR_POS :{ORANGE}{STRING}{LTBLUE} :מיקום הסרגל העיקרי
STR_CONFIG_SETTING_TOOLBAR_POS_LEFT :שמאל
@@ -1106,12 +1120,6 @@ STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}רכב
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}ערים
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}תעשיות
STR_CONFIG_SETTING_DISABLED :מבוטל
STR_CONFIG_SETTING_INT32 :{NUM}
STR_CONFIG_SETTING_CURRENCY :{CURRENCY}
STR_CONFIG_SETTING_QUERY_CAPT :{WHITE}שנה ערך
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{ORANGE}{STRING}{LTBLUE} :אלגורתם איתור נתיב לרכבות
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NTP :NTP {RED}(לא מומלץ)
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NPF :NPF
@@ -1125,6 +1133,15 @@ STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :{BLUE}(מקור
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_NPF :NPF
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(לא מומלץ)
STR_CONFIG_SETTING_MAP_X :{LTBLUE}X-גודל המפה: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAP_Y :{LTBLUE}Y-גודל המפה: {ORANGE}{STRING}
############ generic strings for settings
STR_CONFIG_SETTING_DISABLED :מבוטל
STR_CONFIG_SETTING_INT32 :{NUM}
STR_CONFIG_SETTING_CURRENCY :{CURRENCY}
STR_CONFIG_SETTING_QUERY_CAPT :{WHITE}שנה ערך
STR_TEMPERATE_LANDSCAPE :אקלים ממוזג
STR_SUB_ARCTIC_LANDSCAPE :אקלים קר
STR_SUB_TROPICAL_LANDSCAPE :אקלים טרופי
@@ -1217,7 +1234,6 @@ STR_MESSAGE_HISTORY_TIP :{BLACK}רשימ
STR_MESSAGES_DISABLE_ALL :{BLACK}השתק את כולן
STR_MESSAGES_ENABLE_ALL :{BLACK}הצג את כולן
STR_INDUSTRYDIR_CAPTION :{WHITE}תעשיות
STR_INDUSTRYDIR_ITEM :{YELLOW}(שונעו {NBSP}{3:COMMA}%){BLACK} ({1:CARGO}{2:STRING}) {ORANGE}{0:INDUSTRY}
STR_INDUSTRYDIR_ITEM_TWO :{YELLOW}(שונעו {NBSP} {6:COMMA}%/{5:COMMA}%) {BLACK} ({3:CARGO}{4:STRING}/{1:CARGO}{2:STRING}) {ORANGE}{0:INDUSTRY}
@@ -1231,7 +1247,6 @@ STR_RAIL_REFIT_VEHICLE :{BLACK}התאם
STR_RAIL_SELECT_TYPE_OF_CARGO_FOR :{BLACK}בחר את סוג המשא עבור הרכבת
STR_RAIL_REFIT_TO_CARRY_HIGHLIGHTED :{BLACK}התאם את הרכבת לנשיאת המשא שנבחר
STR_RAIL_CAN_T_REFIT_VEHICLE :{WHITE}...לא ניתן להתאים את הרכבת
STR_CONFIG_SETTING_SERVINT_ISPERCENT :{ORANGE}{STRING}{LTBLUE} :הצג מרווחי טיפול באחוזים
STR_CONFIG_GAME_PRODUCTION :{WHITE}שנה תפוקה
############ network gui strings
@@ -1493,11 +1508,6 @@ STR_NETWORK_SEND :{BLACK}שלח
############ end network gui strings
STR_CONFIG_SETTING_MAP_X :{LTBLUE}X-גודל המפה: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAP_Y :{LTBLUE}Y-גודל המפה: {ORANGE}{STRING}
##### PNG-MAP-Loader
STR_PNGMAP_ERROR :{WHITE}לא יכול לטעון שטח אדמה מקובץ...
@@ -1665,6 +1675,7 @@ STR_200B_CENTER_THE_MAIN_VIEW_ON :{BLACK}מקד
STR_200C_CHANGE_TOWN_NAME :{BLACK}שנה את שם העיר
STR_200D_PASSENGERS_LAST_MONTH_MAX :{ORANGE}{1:COMMA}{BLACK} :מספר מירבי {ORANGE}{0:COMMA}{BLACK} :נוסעים בחודש שעבר
STR_200E_MAIL_LAST_MONTH_MAX :{ORANGE}{1:COMMA}{BLACK} :מספר מירבי {ORANGE}{0:COMMA}{BLACK} :שקי דואר בחודש שעבר
STR_CARGO_FOR_TOWNGROWTH :{BLACK}המטען שצריך בשביל גידול עיר
STR_200F_TALL_OFFICE_BLOCK :בניין משרדים גבוה
STR_2010_OFFICE_BLOCK :בניין משרדים
STR_2011_SMALL_BLOCK_OF_FLATS :בניין דירות
@@ -2105,6 +2116,7 @@ STR_NUM_VERY_LOW :נמוך מאו
STR_6816_LOW :נמוך
STR_6817_NORMAL :רגיל
STR_6818_HIGH :גבוה
STR_02BF_CUSTOM :אחר
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :איטי ביותר
@@ -2836,6 +2848,7 @@ STR_900E_MAX_SPEED :{LTBLUE}{VELOCI
STR_900F_PROFIT_THIS_YEAR_LAST_YEAR :({1:CURRENCY} :בשנה שעברה) {LTBLUE}{0:CURRENCY}{BLACK} :רווח השנה
STR_9010_RELIABILITY_BREAKDOWNS :{LTBLUE}{1:COMMA}{BLACK} :תקלות ממועד הטיפול האחרון {LTBLUE}{0:COMMA}%{BLACK} :אמינות
STR_9011_BUILT_VALUE :{LTBLUE}{2:CURRENCY}{BLACK} :שווי {LTBLUE}{1:NUM}{BLACK} :שנת בנייה{LTBLUE}{0:ENGINE}
STR_9012_CAPACITY :{BLACK}קיבולת: {LTBLUE}{CARGO}{STRING}
STR_9013_MUST_BE_STOPPED_INSIDE :{WHITE}...חייב לעצור בתוך מוסך לכלי רכב
STR_9014_CAN_T_SELL_ROAD_VEHICLE :{WHITE}...לא ניתן למכור כלי רכב
STR_9015_CAN_T_STOP_START_ROAD_VEHICLE :{WHITE}...לא ניתן לעצור/להמשיך בנסיעה
@@ -2912,6 +2925,7 @@ STR_9813_MAX_SPEED :{LTBLUE}{VELOCI
STR_9814_PROFIT_THIS_YEAR_LAST_YEAR :({1:CURRENCY} :בשנה שעברה) {LTBLUE}{0:CURRENCY}{BLACK} :רווח השנה
STR_9815_RELIABILITY_BREAKDOWNS :{LTBLUE}{1:COMMA}{BLACK} :תקלות ממועד הטיפול האחרון {LTBLUE}{0:COMMA}%{BLACK} :אמינות
STR_9816_BUILT_VALUE :{LTBLUE}{2:CURRENCY}{BLACK} :שווי {LTBLUE}{1:NUM}{BLACK} :שנת בנייה{LTBLUE}{0:ENGINE}
STR_9817_CAPACITY :{BLACK}קיבולת: {LTBLUE}{CARGO}{STRING}
STR_9818_CAN_T_STOP_START_SHIP :{WHITE}לא ניתן לעצור/להפעיל את כלי השייט
STR_9819_CAN_T_SEND_SHIP_TO_DEPOT :{WHITE} לא ניתן לשלוח את כלי השייט למבדוק
STR_981A_UNABLE_TO_FIND_LOCAL_DEPOT :{WHITE}לא ניתן למצוא מבדוק קרוב
@@ -2986,6 +3000,8 @@ STR_A014_AIRCRAFT_IS_WAITING_IN :{WHITE} ממת
STR_A015_AIRCRAFT_IN_THE_WAY :{WHITE}כלי טייס חוסם את הדרך
STR_A016_CAN_T_STOP_START_AIRCRAFT :{WHITE}לא ניתן לעצור/להפעיל את כלי הטייס
STR_A017_AIRCRAFT_IS_IN_FLIGHT :{WHITE}נמצא בטיסה
STR_A019_CAPACITY :{BLACK}קיבולת: {LTBLUE}{CARGO}, {CARGO}{STRING}
STR_A01A_CAPACITY :{BLACK}קיבולת: {LTBLUE}{CARGO}{SKIP}{SKIP}{STRING}
STR_A01B_AIRCRAFT_MUST_BE_STOPPED :{WHITE}המטוס צריך להמצא בעצירה בסככת מטוסים
STR_A01C_CAN_T_SELL_AIRCRAFT :{WHITE}לא ניתן למכור את כלי הטייס
STR_A01D_AIRPORT_CONSTRUCTION :בניית שדה תעופה
@@ -3140,6 +3156,7 @@ STR_NEWGRF_BROKEN :{WHITE}Behaviou
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}It changes vehicle length for '{1:ENGINE}' when not inside a depot.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Train '{VEHICLE}' belonging to '{COMPANY}' has invalid length. It is probably caused by problems with NewGRFs. Game may desync or crash.
STR_LOADGAME_REMOVED_TRAMS :{WHITE}Game was saved in version without tram support. All trams have been removed.
STR_CURRENCY_WINDOW :{WHITE}מטבע מותאם אישית
@@ -3209,7 +3226,6 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK} מצי
STR_REPLACE_REMOVE_WAGON :{ORANGE}{SKIP}{STRING}{BLACK} : הסרת קרונות
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}הסר קרונות מהסוף על מנת לשמור על האורך המקורי של הרכבת
STR_REPLACE_ENGINE_WAGON_SELECT :{ORANGE}{SKIP}{SKIP}{STRING}{BLACK} : מחליף
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} EXPERIMENTAL FEATURE {}Switch between engine and wagon replacement windows.{}Wagon replacement will only be done if the new wagon can be refitted into carrying the same type of cargo as the old one. This is checked for each wagon when the actual replacement takes place.
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}קטר לא זמין
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}רכב לא זמין
STR_SHIP_NOT_AVAILABLE :{WHITE}כלי שייט לא זמין
@@ -3552,7 +3568,6 @@ STR_AI_VERSION :: גירסה
########
############ town controlled noise level
STR_CONFIG_SETTING_NOISE_LEVEL :{ORANGE}{STRING}{LTBLUE} :אפשר שליטה של הערים ברמת הרעש בשדות תעופה
STR_NOISE_IN_TOWN :{ORANGE}{1:COMMA}{BLACK} :מירבית {ORANGE}{0:COMMA}{BLACK} :רמת הרעש המותרת בעיר זו
STR_STATION_NOISE :{GOLD}{COMMA}{BLACK} :רמת הרעש
########
@@ -3578,6 +3593,7 @@ 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_TITLE :{BLACK}סינון תוית\שם:
STR_CONTENT_DOWNLOAD_CAPTION :{BLACK} הורד
STR_CONTENT_DOWNLOAD_CAPTION_TIP :{BLACK} החל בהורדת התכנים שנבחרו
STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{WHITE}{BYTES}{SILVER} :גודל ההורדה

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.
@@ -3313,7 +3315,7 @@ STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Megmutat
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagon törlés: {ORANGE}{SKIP}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Az automatikus cserénél a szerelvény hosszának a megtartása kocsik lekapcsolásával (mozdony utántól kezdve), ha a csere után a szerelvény hosszabb lenne.
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Lecserél: {ORANGE}{SKIP}{SKIP}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} KISÉRLETI TULAJDONSÁG {}Váltás a mozdony és a vasúti-kocsi cserélő ablak között.{}A vagonok cseréje csak akkor történik meg, ha az új vagon átalakítható ugyanolyan típusú teher szállítására. Ez minden vagoncserénél ellenőrződik.
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Váltás a mozdony és a vasúti-kocsi cserélő ablak között
STR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}A jármű nem elérhető.
STR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}A jármű nem elérhető.
STR_SHIP_NOT_AVAILABLE :{WHITE}A hajó nem elérhető.

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