Compare commits

..
Author SHA1 Message Date
rubidium d585b433d5 (svn r18871) -Release: 1.0.0-beta3 2010-01-20 23:36:18 +00:00
237 changed files with 7690 additions and 11087 deletions
-40
View File
@@ -504,45 +504,6 @@ function Regression::EngineList()
}
}
function Regression::Prices()
{
print("");
print("--Prices--");
print(" -Rail-");
print(" 0,BT_TRACK: " + AIRail.GetBuildCost(0, AIRail.BT_TRACK));
print(" 0,BT_SIGNAL: " + AIRail.GetBuildCost(0, AIRail.BT_SIGNAL));
print(" 0,BT_DEPOT: " + AIRail.GetBuildCost(0, AIRail.BT_DEPOT));
print(" 0,BT_STATION: " + AIRail.GetBuildCost(0, AIRail.BT_STATION));
print(" 0,BT_WAYPOINT: " + AIRail.GetBuildCost(0, AIRail.BT_WAYPOINT));
print(" 1,BT_TRACK: " + AIRail.GetBuildCost(1, AIRail.BT_TRACK));
print(" 1,BT_SIGNAL: " + AIRail.GetBuildCost(1, AIRail.BT_SIGNAL));
print(" 1,BT_DEPOT: " + AIRail.GetBuildCost(1, AIRail.BT_DEPOT));
print(" 1,BT_STATION: " + AIRail.GetBuildCost(1, AIRail.BT_STATION));
print(" 1,BT_WAYPOINT: " + AIRail.GetBuildCost(1, AIRail.BT_WAYPOINT));
print(" -Road-");
print(" ROADTYPE_ROAD,BT_ROAD: " + AIRoad.GetBuildCost(AIRoad.ROADTYPE_ROAD, AIRoad.BT_ROAD));
print(" ROADTYPE_ROAD,BT_DEPOT: " + AIRoad.GetBuildCost(AIRoad.ROADTYPE_ROAD, AIRoad.BT_DEPOT));
print(" ROADTYPE_ROAD,BT_BUS_STOP: " + AIRoad.GetBuildCost(AIRoad.ROADTYPE_ROAD, AIRoad.BT_BUS_STOP));
print(" ROADTYPE_ROAD,BT_TRUCK_STOP: " + AIRoad.GetBuildCost(AIRoad.ROADTYPE_ROAD, AIRoad.BT_TRUCK_STOP));
print(" ROADTYPE_TRAM,BT_ROAD: " + AIRoad.GetBuildCost(AIRoad.ROADTYPE_TRAM, AIRoad.BT_ROAD));
print(" ROADTYPE_TRAM,BT_DEPOT: " + AIRoad.GetBuildCost(AIRoad.ROADTYPE_TRAM, AIRoad.BT_DEPOT));
print(" ROADTYPE_TRAM,BT_BUS_STOP: " + AIRoad.GetBuildCost(AIRoad.ROADTYPE_TRAM, AIRoad.BT_BUS_STOP));
print(" ROADTYPE_TRAM,BT_TRUCK_STOP: " + AIRoad.GetBuildCost(AIRoad.ROADTYPE_TRAM, AIRoad.BT_TRUCK_STOP));
print(" -Water-");
print(" BT_DOCK: " + AIMarine.GetBuildCost(AIMarine.BT_DOCK));
print(" BT_DEPOT: " + AIMarine.GetBuildCost(AIMarine.BT_DEPOT));
print(" BT_BUOY: " + AIMarine.GetBuildCost(AIMarine.BT_BUOY));
print(" -Tile-");
print(" BT_FOUNDATION: " + AITile.GetBuildCost(AITile.BT_FOUNDATION));
print(" BT_TERRAFORM: " + AITile.GetBuildCost(AITile.BT_TERRAFORM));
print(" BT_BUILD_TREES: " + AITile.GetBuildCost(AITile.BT_BUILD_TREES));
print(" BT_CLEAR_GRASS: " + AITile.GetBuildCost(AITile.BT_CLEAR_GRASS));
print(" BT_CLEAR_ROUGH: " + AITile.GetBuildCost(AITile.BT_CLEAR_ROUGH));
print(" BT_CLEAR_ROCKY: " + AITile.GetBuildCost(AITile.BT_CLEAR_ROCKY));
print(" BT_CLEAR_FIELDS: " + AITile.GetBuildCost(AITile.BT_CLEAR_FIELDS));
print(" BT_CLEAR_HOUSE: " + AITile.GetBuildCost(AITile.BT_CLEAR_HOUSE));
}
function cost_callback(old_path, new_tile, new_direction, self) { if (old_path == null) return 0; return old_path.GetCost() + 1; }
function estimate_callback(tile, direction, goals, self) { return goals[0] - tile; }
function neighbours_callback(path, cur_tile, self) { return [[cur_tile + 1, 1]]; }
@@ -1738,7 +1699,6 @@ function Regression::Start()
this.IndustryTypeList();
this.Map();
this.Marine();
this.Prices();
this.Rail();
this.RailTypeList();
this.Road();
+9 -44
View File
@@ -584,7 +584,7 @@
GetBankBalance(): 100000
GetName(): (null : 0x00000000)
GetLoanAmount(): 100000
GetMaxLoanAmount(): 500000
GetMaxLoanAmount(): 2000000000
GetLoanInterval(): 10000
SetLoanAmount(1): false
SetLoanAmount(100): false
@@ -596,8 +596,8 @@
GetBankBalance(): 40000
GetLoanAmount(): 40000
SetLoanAmount(10000): true
GetBankBalance(): 500000
GetLoanAmount(): 500000
GetBankBalance(): 2000000000
GetLoanAmount(): 2000000000
GetCompanyHQ(): -1
BuildCompanyHQ(): true
GetCompanyHQ(): 33151
@@ -681,7 +681,7 @@
GetAirportWidth(9): -1
GetAirportHeight(9): -1
GetAirportCoverageRadius(9): -1
GetBankBalance(): 499790
GetBankBalance(): 1999999790
GetPrice(): 5400
BuildAirport(): true
IsHangarTile(): false
@@ -691,11 +691,11 @@
IsHangarTile(): true
IsAirportTile(): true
GetAirportType(): 0
GetBankBalance(): 489890
GetBankBalance(): 1999989890
RemoveAirport(): true
IsHangarTile(): false
IsAirportTile(): false
GetBankBalance(): 489626
GetBankBalance(): 1999989626
BuildAirport(): true
--Bridge--
@@ -7085,7 +7085,7 @@
IsBuoyTile(): false
IsLockTile(): false
IsCanalTile(): false
GetBankBalance(): 480703
GetBankBalance(): 1999980703
BuildWaterDepot(): true
BuildDock(): true
BuildBuoy(): true
@@ -7098,7 +7098,7 @@
IsBuoyTile(): true
IsLockTile(): true
IsCanalTile(): true
GetBankBalance(): 451154
GetBankBalance(): 1999951154
--AIWaypointList(BUOY)--
Count(): 1
@@ -7117,45 +7117,10 @@
IsBuoyTile(): false
IsLockTile(): false
IsCanalTile(): false
GetBankBalance(): 428509
GetBankBalance(): 1999928509
BuildWaterDepot(): true
BuildDock(): true
--Prices--
-Rail-
0,BT_TRACK: 75
0,BT_SIGNAL: 48
0,BT_DEPOT: 450
0,BT_STATION: 285
0,BT_WAYPOINT: 450
1,BT_TRACK: -1
1,BT_SIGNAL: -1
1,BT_DEPOT: -1
1,BT_STATION: -1
1,BT_WAYPOINT: -1
-Road-
ROADTYPE_ROAD,BT_ROAD: 71
ROADTYPE_ROAD,BT_DEPOT: 375
ROADTYPE_ROAD,BT_BUS_STOP: 150
ROADTYPE_ROAD,BT_TRUCK_STOP: 150
ROADTYPE_TRAM,BT_ROAD: -1
ROADTYPE_TRAM,BT_DEPOT: -1
ROADTYPE_TRAM,BT_BUS_STOP: -1
ROADTYPE_TRAM,BT_TRUCK_STOP: -1
-Water-
BT_DOCK: 262
BT_DEPOT: 525
BT_BUOY: 262
-Tile-
BT_FOUNDATION: 187
BT_TERRAFORM: 187
BT_BUILD_TREES: 15
BT_CLEAR_GRASS: 15
BT_CLEAR_ROUGH: 30
BT_CLEAR_ROCKY: 150
BT_CLEAR_FIELDS: 375
BT_CLEAR_HOUSE: 1200
--Rail--
IsRailTile(): false
BuildRailTrack(): true
+1 -1
View File
@@ -18,7 +18,7 @@ old_3 = GM_TT12.GM
old_4 = GM_TT08.GM
old_5 = GM_TT13.GM
old_6 = GM_TT14.GM
old_7 = GM_TT10.GM
old_7 = GM_TT19.GM
old_8 =
old_9 =
new_0 = GM_TT04.GM
-39
View File
@@ -1,42 +1,3 @@
1.0.0-beta4 (2010-02-04)
------------------------------------------------------------------------
- Feature: Content mirroring support (r18994)
- Feature: Show empty query after creating new group (instead of 'Group nnn') (r18981)
- Feature: [NewGRF] NewGRF-settable rail type properties, increase number of possible rail types, per rail type speed limits (r18970, r18969)
- Feature: [NewGRF] Allow layering of multiple groundsprites in spritelayouts of stations, houses and industrytiles; so hacks with zero-sized bounding boxes are no longer needed and no longer cause trouble (r18959)
- Feature: [NoAI] Introduce GetBuildCost functions in several classes to get easier cost estimations before you start building (r18955)
- Feature: [NoAI] Allow editing AI settings while an AI is running (r18953)
- Feature: Make it possible to change newgame settings from within a game via the console (use setting_newgame instead of setting) [FS#2885] (r18943)
- Feature: Add a setting to reduce/disable aircraft crashes [FS#2678] (r18942)
- Feature: Make the crash position of aircraft a bit random by giving aircraft a chance to crash every tick they are breaking (r18940)
- Change: [NoAI] Use the highest version of an AI that can load the AI data from a savegame instead of the exact same version [FS#3232] (r18944)
- Fix: Off-by-one in the music playlist (song missing) [FS#3588] (r18997)
- Fix: [NewGRF] industry var A5 (=high 8 bits of var A4) returned the high 8 bits of var A2. Same problem for 9B/9A/98 (r18988)
- Fix: [NoAI] Make building long rails fail for AIs if there is an obstacle in the way (r18987)
- Fix: Possible invalid memory access when merging companies [FS#3584] (r18978)
- Fix: Estimating the cost of removing statues could clear the presence flag in the town (r18976)
- Fix: CMD_BUILD_ROAD missed CMD_AUTO. Also do not access tiles anymore after clearing them; that fails either in test or exec run [FS#3578] (r18974)
- Fix: Train acceleration for original acceleration model was not updated if the train's power changed (r18971)
- Fix: Make sure the values of settings loaded from a savegame are valid (r18950)
- Fix: After clicking move up/move down in the NewGRF/AI the selected item could be out of range [FS#1510] (r18948, r18947)
- Fix: It was possible to change AI settings without changing to the custom difficulty level by using the query text window (r18946)
- Fix: Remove the loading indicators as soon as a train crashes [FS#3575] (r18941)
- Fix: [NewGRF] Industrylayout's special water tile check did not properly check for crossing north border of map (r18938)
- Fix: [NewGRF] Value of variables 90 and 91 were not what NARS expects [FS#3551] (r18935)
- Fix: [Windows] In some rare case a deadlock could happen when stopping sound driver (r18934, r18913, r18892)
- Fix: [NoAI] Autoreplace is also valid for the default group (r18930)
- Fix: Preserve some timetable related vehicle flags during autorenew/-replace [FS#3568] (r18929)
- Fix: AIOrder::GetOrderDestination could return a non-waypoint tile when the waypoint was a multitile waypoint [NoAI] (r18924)
- Fix: On bankruptcy the company value did include the loan and as such the value at which you bought the company was too low [FS#3561] (r18908)
- Fix: Writing LZO-compressed savegames would produce invalid files and potentially overwrite memory (r18904)
- Fix: [Windows] File locations for Windows were not documented correctly for all versions of Windows [FS#3562] (r18903)
- Fix: Pressing cancel for the query windows of the world generation window caused the default to be set instead of no changes to the value [FS#3558] (r18896)
- Fix: Avoid duplicate path separator when searching for PNG files which prevented tar-lookups (r18891)
- Fix: [NewGRF] Perform bounds checking for all NewGRF data reads. Explicit length checks (which were not always correct) are no longer needed so these are removed to simplify code (r18884)
- Fix: Aircraft can be send to an hangar when the target airport has one and when it can land, not only when it has a plane terminal (r18880)
- Fix: [NewGRF] Crash when a NewGRF used var62 in an industry tile chain when the industry tile was part of an original industry (r18878)
1.0.0-beta3 (2010-01-21)
------------------------------------------------------------------------
- Feature: Make building (long) roads work like building rail; build upon the first obstruction instead of failing totally [FS#3318] (r18803)
+1 -1
View File
@@ -11,7 +11,7 @@ log() {
}
set_default() {
released_version="1.0.0-beta4"
released_version="1.0.0-beta3"
ignore_extra_parameters="0"
# We set all kinds of defaults for params. Later on the user can override
+12 -12
View File
@@ -91,7 +91,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
<td class="bits"><span class="free">OOOO</span> XXXX <span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits"><span class="free">OOOO</span> <span class="option">~~</span>XX</td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
@@ -102,7 +102,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO</span> XXXX XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX <span class="option">~~</span>XX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">-inherit-</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
@@ -113,7 +113,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits"><span class="free">OOOO</span> <span class="option">~~</span>XX</td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits">XX<span class="free">O</span>X <span class="free">O</span>XXX</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
@@ -136,7 +136,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX <span class="option">~~</span>XX</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX<span class="free"> OOO</span>X</td>
<td class="bits">XXXX X<span class="free">O</span>XX</td>
@@ -146,7 +146,7 @@ the array so you can quickly see what is used and what is not.
<td class="caption">road depot</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
@@ -183,7 +183,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX <span class="option">~~</span>XX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OO</span>XX XXXX</td>
@@ -206,7 +206,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX <span class="free">OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
<td class="bits"><span class="free">OO</span>XX XXXX</td>
<td class="bits">XX<span class="free">O</span>X XXXX</td>
@@ -217,7 +217,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
@@ -228,7 +228,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
@@ -239,7 +239,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
@@ -250,7 +250,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
@@ -308,7 +308,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX <span class="option">~~</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">X<span class="free">OO</span>X XXXX</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
+4 -2
View File
@@ -1,6 +1,6 @@
OpenTTD's known bugs
Last updated: 2010-02-04
Release version: 1.0.0-beta4
Last updated: 2010-01-21
Release version: 1.0.0-beta3
------------------------------------------------------------------------
@@ -35,9 +35,11 @@ If the bugs are closed but still listed here it means that the bug is fixed
and that the nightlies and next major release will not have that bug.
- 3447 [OSX] SDL port is unuseable
- 3194 [OSX] Full screen strobing/flickering
- 2782 [OSX] Port hopelessly outdated
- 2585 [OSX] OS' mouse pointer showing
- 2484 [OSX] Cannot enter CJK characters
- 1140 [OSX] Not smooth moving map with touchpad
3) Known bugs that will not be solved:
-6
View File
@@ -1,9 +1,3 @@
openttd (1.0.0~beta4) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 04 Feb 2010 18:36:02 +0100
openttd (1.0.0~beta3) unstable; urgency=low
* New upstream release.
+1 -1
View File
@@ -1,6 +1,6 @@
@echo off
set OPENTTD_VERSION=1.0.0-beta4
set OPENTTD_VERSION=1.0.0-beta3
set OPENSFX_VERSION=0.8.0
set NOSOUND_VERSION=0.8.0
set OPENGFX_VERSION=0.7.0
+2 -2
View File
@@ -2,8 +2,8 @@
!define APPV_MAJOR 1
!define APPV_MINOR 0
!define APPV_MAINT 0
!define APPV_BUILD 3
!define APPV_EXTRA "-beta4"
!define APPV_BUILD 2
!define APPV_EXTRA "-beta3"
!define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
+1 -1
View File
@@ -39,7 +39,7 @@ Sub UpdateFiles(version)
modified = Mid(version, InStrRev(version, Chr(9)) + 1)
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
Else
version = "1.0.0-beta4"
version = "1.0.0-beta3"
revision = 0
modified = 1
End If
-15
View File
@@ -706,21 +706,6 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\vietnamese.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating vietnamese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt"
Outputs="..\bin\lang\vietnamese.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\welsh.txt"
>
-15
View File
@@ -707,21 +707,6 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\vietnamese.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating vietnamese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt"
Outputs="..\bin\lang\vietnamese.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\welsh.txt"
>
-12
View File
@@ -2175,10 +2175,6 @@
RelativePath=".\..\src\table\airport_defaults.h"
>
</File>
<File
RelativePath=".\..\src\table\airporttile_ids.h"
>
</File>
<File
RelativePath=".\..\src\table\airporttiles.h"
>
@@ -3415,14 +3411,6 @@
RelativePath=".\..\src\network\core\tcp_game.h"
>
</File>
<File
RelativePath=".\..\src\network\core\tcp_http.cpp"
>
</File>
<File
RelativePath=".\..\src\network\core\tcp_http.h"
>
</File>
<File
RelativePath=".\..\src\network\core\udp.cpp"
>
-12
View File
@@ -2172,10 +2172,6 @@
RelativePath=".\..\src\table\airport_defaults.h"
>
</File>
<File
RelativePath=".\..\src\table\airporttile_ids.h"
>
</File>
<File
RelativePath=".\..\src\table\airporttiles.h"
>
@@ -3412,14 +3408,6 @@
RelativePath=".\..\src\network\core\tcp_game.h"
>
</File>
<File
RelativePath=".\..\src\network\core\tcp_http.cpp"
>
</File>
<File
RelativePath=".\..\src\network\core\tcp_http.h"
>
</File>
<File
RelativePath=".\..\src\network\core\udp.cpp"
>
+7 -11
View File
@@ -1,6 +1,6 @@
OpenTTD README
Last updated: 2010-02-04
Release version: 1.0.0-beta4
Last updated: 2010-01-21
Release version: 1.0.0-beta3
------------------------------------------------------------------------
@@ -250,14 +250,11 @@ The TTD artwork files listed in the section 4.1 "(Required) 3rd party files"
can be placed in a few different locations:
1. The current working directory (from where you started OpenTTD)
2. Your personal directory
Windows: C:\My Documents (95, 98, ME)
C:\Documents and Settings\<username>\My Documents\OpenTTD (2000, XP)
C:\Users\<username>\Documents\OpenTTD (Vista, 7)
Windows: C:\Documents and Settings\<username>\My Documents\OpenTTD
Mac OSX: ~/Documents/OpenTTD
Linux: ~/.openttd
3. The shared directory
Windows: C:\Documents and Settings\All Users\Shared Documents\OpenTTD (2000, XP)
C:\Users\Public\Documents\OpenTTD (Vista, 7)
Windows: C:\Documents and Settings\All Users\Documents\OpenTTD
Mac OSX: /Library/Application Support/OpenTTD
Linux: not available
4. The binary directory (where the OpenTTD executable is)
@@ -512,8 +509,10 @@ X.X) Credits:
---- --------
The OpenTTD team (in alphabetical order):
Albert Hofkamp (Alberth) - GUI expert
Jean-François Claeys (Belugas) - GUI, newindustries and more
Jean-Francois Claeys (Belugas) - GUI, newindustries and more
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles
Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework
Victor Fischer (Celestar) - Programming everywhere you need him to
Christoph Elsenhans (frosch) - General coding
Loïc Guilloux (glx) - Windows Expert
Michael Lutz (michi_cc) - Path based signals
@@ -521,12 +520,9 @@ The OpenTTD team (in alphabetical order):
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods
Remko Bijker (Rubidium) - Lead coder and way more
Zdeněk Sojka (SmatZ) - Bug finder and fixer
José Soler (Terkhen) - General coding
Thijs Marinussen (Yexo) - AI Framework
Inactive Developers:
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles
Victor Fischer (Celestar) - Programming everywhere you need him to
Tamás Faragó (Darkvater) - Ex-Lead coder
Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)
Jonathan Coome (Maedhros) - High priest of the NewGRF Temple
-3
View File
@@ -474,7 +474,6 @@ saveload/waypoint_sl.cpp
# Tables
table/airport_defaults.h
table/airporttile_ids.h
table/airporttiles.h
table/airport_movement.h
table/animcursors.h
@@ -803,8 +802,6 @@ network/core/tcp_content.cpp
network/core/tcp_content.h
network/core/tcp_game.cpp
network/core/tcp_game.h
network/core/tcp_http.cpp
network/core/tcp_http.h
network/core/udp.cpp
network/core/udp.h
+1 -1
View File
@@ -114,7 +114,7 @@ public:
static char *GetConsoleList(char *p, const char *last);
static const AIInfoList *GetInfoList();
static const AIInfoList *GetUniqueInfoList();
static AIInfo *FindInfo(const char *name, int version, bool force_exact_match);
static AIInfo *FindInfo(const char *name, int version);
static bool ImportLibrary(const char *library, const char *class_name, int version, HSQUIRRELVM vm);
static void Rescan();
#if defined(ENABLE_NETWORK)
+3 -3
View File
@@ -16,11 +16,11 @@
#include "ai.hpp"
#include "ai_config.hpp"
void AIConfig::ChangeAI(const char *name, int version, bool force_exact_match, bool is_random_ai)
void AIConfig::ChangeAI(const char *name, int version, bool is_random_ai)
{
free((void *)this->name);
this->name = (name == NULL) ? NULL : strdup(name);
this->info = (name == NULL) ? NULL : AI::FindInfo(this->name, version, force_exact_match);
this->info = (name == NULL) ? NULL : AI::FindInfo(this->name, version);
this->version = (info == NULL) ? -1 : info->GetVersion();
this->is_random_ai = is_random_ai;
if (this->config_list != NULL) delete this->config_list;
@@ -79,7 +79,7 @@ AIInfo *AIConfig::GetInfo() const
bool AIConfig::ResetInfo()
{
this->info = AI::FindInfo(this->name, -1, false);
this->info = AI::FindInfo(this->name, -1);
return this->info != NULL;
}
+1 -3
View File
@@ -36,11 +36,9 @@ public:
* Set another AI to be loaded in this slot.
* @param name The name of the AI.
* @param version The version of the AI to load, or -1 of latest.
* @param force_exact_match If true try to find the exact same version
* as specified. If false any compatible version is ok.
* @param is_random Is the AI chosen randomly?
*/
void ChangeAI(const char *name, int version = -1, bool force_exact_match = false, bool is_random = false);
void ChangeAI(const char *name, int version = -1, bool is_random = false);
/**
* When ever the AI Scanner is reloaded, all infos become invalid. This
+3 -4
View File
@@ -44,7 +44,7 @@
info = AI::ai_scanner->SelectRandomAI();
assert(info != NULL);
/* Load default data and store the name in the settings */
config->ChangeAI(info->GetName(), -1, false, true);
config->ChangeAI(info->GetName(), -1, true);
}
_current_company = company;
@@ -105,7 +105,6 @@
_current_company = old_company;
InvalidateWindowData(WC_AI_DEBUG, 0, -1);
DeleteWindowById(WC_AI_SETTINGS, company);
}
/* static */ void AI::KillAll()
@@ -289,9 +288,9 @@ void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
return AI::ai_scanner->GetUniqueAIInfoList();
}
/* static */ AIInfo *AI::FindInfo(const char *name, int version, bool force_exact_match)
/* static */ AIInfo *AI::FindInfo(const char *name, int version)
{
return AI::ai_scanner->FindInfo(name, version, force_exact_match);
return AI::ai_scanner->FindInfo(name, version);
}
/* static */ bool AI::ImportLibrary(const char *library, const char *class_name, int version, HSQUIRRELVM vm)
+61 -75
View File
@@ -10,7 +10,6 @@
/** @file ai_gui.cpp Window for configuring the AIs */
#include "../stdafx.h"
#include "../openttd.h"
#include "../gui.h"
#include "../window_gui.h"
#include "../company_func.h"
@@ -149,7 +148,7 @@ struct AIListWindow : public Window {
SetWindowDirty(WC_GAME_OPTIONS, 0);
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case AIL_WIDGET_LIST: { // Select one of the AIs
@@ -157,10 +156,6 @@ struct AIListWindow : public Window {
if (sel < (int)this->ai_info_list->size()) {
this->selected = sel;
this->SetDirty();
if (click_count > 1) {
this->ChangeAI();
delete this;
}
}
break;
}
@@ -177,6 +172,21 @@ struct AIListWindow : public Window {
}
}
virtual void OnDoubleClick(Point pt, int widget)
{
switch (widget) {
case AIL_WIDGET_LIST: {
int sel = (pt.y - this->GetWidget<NWidgetBase>(AIL_WIDGET_LIST)->pos_y) / this->line_height + this->vscroll.GetPosition() - 1;
if (sel < (int)this->ai_info_list->size()) {
this->selected = sel;
this->ChangeAI();
delete this;
}
break;
}
}
}
virtual void OnResize()
{
NWidgetCore *nwi = this->GetWidget<NWidgetCore>(AIL_WIDGET_LIST);
@@ -246,9 +256,7 @@ struct AISettingsWindow : public Window {
{
this->ai_config = AIConfig::GetConfig(slot);
this->InitNested(desc, slot); // Initializes 'this->line_height' as side effect.
this->SetWidgetDisabledState(AIS_WIDGET_RESET, _game_mode != GM_MENU);
this->InitNested(desc); // Initializes 'this->line_height' as side effect.
this->vscroll.SetCount((int)this->ai_config->GetConfigList()->size());
}
@@ -289,13 +297,12 @@ struct AISettingsWindow : public Window {
int y = r.top;
for (; this->vscroll.IsVisible(i) && it != config->GetConfigList()->end(); i++, it++) {
int current_value = config->GetSetting((*it).name);
bool editable = (_game_mode == GM_MENU) || ((it->flags & AICONFIG_INGAME) != 0);
uint x = rtl ? r.right : r.left;
if (((*it).flags & AICONFIG_BOOLEAN) != 0) {
DrawFrameRect(buttons_left, y + 2, buttons_left + 19, y + 10, (current_value != 0) ? COLOUR_GREEN : COLOUR_RED, (current_value != 0) ? FR_LOWERED : FR_NONE);
} else {
DrawArrowButtons(buttons_left, y + 2, COLOUR_YELLOW, (this->clicked_button == i) ? 1 + (this->clicked_increase != rtl) : 0, editable && current_value > (*it).min_value, editable && current_value < (*it).max_value);
DrawArrowButtons(buttons_left, y + 2, COLOUR_YELLOW, (this->clicked_button == i) ? 1 + (this->clicked_increase != rtl) : 0, current_value > (*it).min_value, current_value < (*it).max_value);
if (it->labels != NULL && it->labels->Find(current_value) != it->labels->End()) {
x = DrawString(value_left, value_right, y + WD_MATRIX_TOP, it->labels->Find(current_value)->second, TC_ORANGE);
} else {
@@ -309,19 +316,7 @@ struct AISettingsWindow : public Window {
}
}
void CheckDifficultyLevel()
{
if (_game_mode == GM_MENU) {
if (_settings_newgame.difficulty.diff_level != 3) {
_settings_newgame.difficulty.diff_level = 3;
ShowErrorMessage(STR_WARNING_DIFFICULTY_TO_CUSTOM, INVALID_STRING_ID, 0, 0);
}
} else if (_settings_game.difficulty.diff_level != 3) {
IConsoleSetSetting("difficulty.diff_level", 3);
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case AIS_WIDGET_BACKGROUND: {
@@ -332,8 +327,6 @@ struct AISettingsWindow : public Window {
AIConfigItemList::const_iterator it = this->ai_config->GetConfigList()->begin();
for (int i = 0; i < num; i++) it++;
AIConfigItem config_item = *it;
if (_game_mode != GM_MENU && (config_item.flags & AICONFIG_INGAME) == 0) return;
bool bool_item = (config_item.flags & AICONFIG_BOOLEAN) != 0;
int x = pt.x - wid->pos_x;
@@ -360,7 +353,10 @@ struct AISettingsWindow : public Window {
this->clicked_button = num;
this->timeout = 5;
this->CheckDifficultyLevel();
if (_settings_newgame.difficulty.diff_level != 3) {
_settings_newgame.difficulty.diff_level = 3;
ShowErrorMessage(STR_WARNING_DIFFICULTY_TO_CUSTOM, INVALID_STRING_ID, 0, 0);
}
} else if (!bool_item) {
/* Display a query box so users can enter a custom value. */
this->clicked_row = num;
@@ -390,7 +386,6 @@ struct AISettingsWindow : public Window {
for (int i = 0; i < this->clicked_row; i++) it++;
int32 value = atoi(str);
this->ai_config->SetSetting((*it).name, value);
this->CheckDifficultyLevel();
this->SetDirty();
}
@@ -577,7 +572,7 @@ struct AIConfigWindow : public Window {
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case AIC_WIDGET_DECREASE:
@@ -596,7 +591,6 @@ struct AIConfigWindow : public Window {
case AIC_WIDGET_LIST: { // Select a slot
this->selected_slot = (CompanyID)((pt.y - this->GetWidget<NWidgetBase>(widget)->pos_y) / this->line_height + this->vscroll.GetPosition());
this->InvalidateData();
if (click_count > 1 && this->selected_slot != INVALID_COMPANY) ShowAIListWindow((CompanyID)this->selected_slot);
break;
}
@@ -604,7 +598,6 @@ struct AIConfigWindow : public Window {
if (this->selected_slot > 1) {
Swap(_settings_newgame.ai_config[this->selected_slot], _settings_newgame.ai_config[this->selected_slot - 1]);
this->selected_slot--;
this->vscroll.ScrollTowards(this->selected_slot);
this->InvalidateData();
}
break;
@@ -613,7 +606,6 @@ struct AIConfigWindow : public Window {
if (this->selected_slot < _settings_newgame.difficulty.max_no_competitors) {
Swap(_settings_newgame.ai_config[this->selected_slot], _settings_newgame.ai_config[this->selected_slot + 1]);
this->selected_slot++;
this->vscroll.ScrollTowards(this->selected_slot);
this->InvalidateData();
}
break;
@@ -642,6 +634,16 @@ struct AIConfigWindow : public Window {
}
}
virtual void OnDoubleClick(Point pt, int widget)
{
switch (widget) {
case AIC_WIDGET_LIST:
this->OnClick(pt, widget);
if (this->selected_slot != INVALID_COMPANY) ShowAIListWindow((CompanyID)this->selected_slot);
break;
}
}
virtual void OnInvalidateData(int data)
{
if (this->selected_slot == 0 || this->selected_slot > _settings_newgame.difficulty.max_no_competitors) {
@@ -675,7 +677,6 @@ void ShowAIConfigWindow()
enum AIDebugWindowWidgets {
AID_WIDGET_VIEW,
AID_WIDGET_NAME_TEXT,
AID_WIDGET_SETTINGS,
AID_WIDGET_RELOAD_TOGGLE,
AID_WIDGET_LOG_PANEL,
AID_WIDGET_SCROLLBAR,
@@ -703,7 +704,6 @@ struct AIDebugWindow : public Window {
this->SetWidgetDisabledState(i + AID_WIDGET_COMPANY_BUTTON_START, !Company::IsValidAiID(i));
}
this->DisableWidget(AID_WIDGET_RELOAD_TOGGLE);
this->DisableWidget(AID_WIDGET_SETTINGS);
this->last_vscroll_pos = 0;
this->autoscroll = true;
@@ -743,11 +743,8 @@ struct AIDebugWindow : public Window {
}
}
/* Update "Reload AI" and "AI settings" buttons */
this->SetWidgetsDisabledState(ai_debug_company == INVALID_COMPANY,
AID_WIDGET_RELOAD_TOGGLE,
AID_WIDGET_SETTINGS,
WIDGET_LIST_END);
/* Update "Reload AI" button */
this->SetWidgetDisabledState(AID_WIDGET_RELOAD_TOGGLE, ai_debug_company == INVALID_COMPANY);
/* Draw standard stuff */
this->DrawWidgets();
@@ -784,7 +781,7 @@ struct AIDebugWindow : public Window {
if (!valid) continue;
byte offset = (i == ai_debug_company) ? 1 : 0;
DrawCompanyIcon(i, button->pos_x + button->current_x / 2 - 7 + offset, this->GetWidget<NWidgetBase>(AID_WIDGET_COMPANY_BUTTON_START + i)->pos_y + 2 + offset);
DrawCompanyIcon(i, this->GetWidget<NWidgetBase>(AID_WIDGET_COMPANY_BUTTON_START + i)->pos_x + 11 + offset, this->GetWidget<NWidgetBase>(AID_WIDGET_COMPANY_BUTTON_START + i)->pos_y + 2 + offset);
}
CompanyID old_company = _current_company;
@@ -887,11 +884,9 @@ struct AIDebugWindow : public Window {
this->autoscroll = true;
this->last_vscroll_pos = this->vscroll.GetPosition();
this->SetDirty();
/* Close AI settings window to prevent confusion */
DeleteWindowByClass(WC_AI_SETTINGS);
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
/* Check which button is clicked */
if (IsInsideMM(widget, AID_WIDGET_COMPANY_BUTTON_START, AID_WIDGET_COMPANY_BUTTON_END + 1)) {
@@ -900,24 +895,16 @@ struct AIDebugWindow : public Window {
ChangeToAI((CompanyID)(widget - AID_WIDGET_COMPANY_BUTTON_START));
}
}
switch (widget) {
case AID_WIDGET_RELOAD_TOGGLE:
/* First kill the company of the AI, then start a new one. This should start the current AI again */
DoCommandP(0, 2, ai_debug_company, CMD_COMPANY_CTRL);
DoCommandP(0, 1, ai_debug_company, CMD_COMPANY_CTRL);
break;
case AID_WIDGET_SETTINGS:
ShowAISettingsWindow(ai_debug_company);
break;
if (widget == AID_WIDGET_RELOAD_TOGGLE && !this->IsWidgetDisabled(widget)) {
/* First kill the company of the AI, then start a new one. This should start the current AI again */
DoCommandP(0, 2, ai_debug_company, CMD_COMPANY_CTRL);
DoCommandP(0, 1, ai_debug_company, CMD_COMPANY_CTRL);
}
}
virtual void OnTimeout()
{
this->RaiseWidget(AID_WIDGET_RELOAD_TOGGLE);
this->RaiseWidget(AID_WIDGET_SETTINGS);
this->SetDirty();
}
@@ -946,48 +933,47 @@ static const NWidgetPart _nested_ai_debug_widgets[] = {
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_VIEW),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_SPACER), SetMinimalSize(2, 0),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 1), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 1), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 2), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 2), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 3), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 3), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 4), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 4), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 5), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 5), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 6), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 6), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 7), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 7), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(NWID_SPACER), SetMinimalSize(2, 0),
NWidget(NWID_SPACER), SetMinimalSize(2, 0), SetResize(1, 0),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_SPACER), SetMinimalSize(2, 0),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 8), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 8), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 9), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 9), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 10), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 10), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 11), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 11), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 12), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 12), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 13), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 13), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 14), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 14), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(NWID_SPACER), SetMinimalSize(39, 0), SetResize(1, 0),
EndContainer(),
NWidget(NWID_SPACER), SetMinimalSize(0, 1), SetResize(1, 0),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_TEXTBTN, COLOUR_GREY, AID_WIDGET_NAME_TEXT), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_JUST_STRING, STR_AI_DEBUG_NAME_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, AID_WIDGET_SETTINGS), SetMinimalSize(100, 20), SetDataTip(STR_AI_DEBUG_SETTINGS, STR_AI_DEBUG_SETTINGS_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, AID_WIDGET_RELOAD_TOGGLE), SetMinimalSize(100, 20), SetDataTip(STR_AI_DEBUG_RELOAD, STR_AI_DEBUG_RELOAD_TOOLTIP),
NWidget(WWT_TEXTBTN, COLOUR_GREY, AID_WIDGET_NAME_TEXT), SetMinimalSize(150, 20), SetResize(1, 0), SetDataTip(STR_JUST_STRING, STR_AI_DEBUG_NAME_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, AID_WIDGET_RELOAD_TOGGLE), SetMinimalSize(149, 20), SetDataTip(STR_AI_DEBUG_RELOAD, STR_AI_DEBUG_RELOAD_TOOLTIP),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_LOG_PANEL), SetMinimalSize(287, 180), SetResize(1, 1),
@@ -1000,7 +986,7 @@ static const NWidgetPart _nested_ai_debug_widgets[] = {
};
static const WindowDesc _ai_debug_desc(
WDP_AUTO, 600, 450,
WDP_AUTO, 299, 241,
WC_AI_DEBUG, WC_NONE,
0,
_nested_ai_debug_widgets, lengthof(_nested_ai_debug_widgets)
-1
View File
@@ -20,7 +20,6 @@ enum AIConfigFlags {
AICONFIG_NONE = 0x0,
AICONFIG_RANDOM = 0x1, //!< When randomizing the AI, pick any value between min_value and max_value when on custom difficulty setting.
AICONFIG_BOOLEAN = 0x2, //!< This value is a boolean (either 0 (false) or 1 (true) ).
AICONFIG_INGAME = 0x4, //!< This setting can be changed while the AI is running.
};
typedef SmallMap<int, char *> LabelMapping;
+11 -11
View File
@@ -39,10 +39,8 @@ AIScanner::AIScanner() :
SQAIInfo.AddConstructor<void (AIInfo::*)(), 1>(engine, "x");
SQAIInfo.DefSQAdvancedMethod(this->engine, &AIInfo::AddSetting, "AddSetting");
SQAIInfo.DefSQAdvancedMethod(this->engine, &AIInfo::AddLabels, "AddLabels");
SQAIInfo.DefSQConst(engine, AICONFIG_NONE, "AICONFIG_NONE");
SQAIInfo.DefSQConst(engine, AICONFIG_RANDOM, "AICONFIG_RANDOM");
SQAIInfo.DefSQConst(engine, AICONFIG_BOOLEAN, "AICONFIG_BOOLEAN");
SQAIInfo.DefSQConst(engine, AICONFIG_INGAME, "AICONFIG_INGAME");
SQAIInfo.PostRegister(engine);
this->engine->AddMethod("RegisterAI", &AIInfo::Constructor, 2, "tx");
this->engine->AddMethod("RegisterDummyAI", &AIInfo::DummyConstructor, 2, "tx");
@@ -276,7 +274,7 @@ AIInfo *AIScanner::SelectRandomAI() const
return (*it).second;
}
AIInfo *AIScanner::FindInfo(const char *nameParam, int versionParam, bool force_exact_match)
AIInfo *AIScanner::FindInfo(const char *nameParam, int versionParam)
{
if (this->info_list.size() == 0) return NULL;
if (nameParam == NULL) return NULL;
@@ -301,19 +299,21 @@ AIInfo *AIScanner::FindInfo(const char *nameParam, int versionParam, bool force_
/* Fall-through, like we were calling this function with a version */
}
if (force_exact_match) {
/* Try to find a direct 'name.version' match */
char ai_name_tmp[1024];
snprintf(ai_name_tmp, sizeof(ai_name_tmp), "%s.%d", ai_name, versionParam);
strtolower(ai_name_tmp);
if (this->info_list.find(ai_name_tmp) != this->info_list.end()) return this->info_list[ai_name_tmp];
}
/* Try to find a direct 'name.version' match */
char ai_name_tmp[1024];
snprintf(ai_name_tmp, sizeof(ai_name_tmp), "%s.%d", ai_name, versionParam);
strtolower(ai_name_tmp);
if (this->info_list.find(ai_name_tmp) != this->info_list.end()) return this->info_list[ai_name_tmp];
/* See if there is a compatible AI which goes by that name, with the highest
* version which allows loading the requested version */
AIInfoList::iterator it = this->info_list.begin();
for (; it != this->info_list.end(); it++) {
if (strcasecmp(ai_name, (*it).second->GetName()) == 0 && (*it).second->CanLoadFromVersion(versionParam) && (version == -1 || (*it).second->GetVersion() > version)) {
char ai_name_compare[1024];
snprintf(ai_name_compare, sizeof(ai_name_compare), "%s", (*it).second->GetName());
strtolower(ai_name_compare);
if (strcasecmp(ai_name, ai_name_compare) == 0 && (*it).second->CanLoadFromVersion(versionParam) && (version == -1 || (*it).second->GetVersion() > version)) {
version = (*it).second->GetVersion();
info = (*it).second;
}
+1 -1
View File
@@ -48,7 +48,7 @@ public:
/**
* Find an AI by name.
*/
class AIInfo *FindInfo(const char *name, int version, bool force_exact_match);
class AIInfo *FindInfo(const char *name, int version);
/**
* Get the list of available AIs for the console.
-5
View File
@@ -23,19 +23,14 @@
* \li AIEngine::IsBuildable
* \li AIEventCompanyAskMerger
* \li AIIndustry::GetLastMonthTransportedPercentage
* \li AIInfo::AICONFIG_INGAME
* \li AIMarine::GetBuildCost
* \li AIOrder::AIOF_GOTO_NEAREST_DEPOT
* \li AIRail::RemoveRailStationTileRectangle
* \li AIRail::RemoveRailWaypointTileRectangle
* \li AIRail::GetBuildCost
* \li AIRoad::GetBuildCost
* \li AISubsidy::SubsidyParticipantType
* \li AISubsidy::GetSourceType
* \li AISubsidy::GetSourceIndex
* \li AISubsidy::GetDestinationType
* \li AISubsidy::GetDestinationIndex
* \li AITile::GetBuildCost
* \li AITown::GetLastMonthTransportedPercentage
* \li AIVehicleList_Depot
* \li AIWaypoint::WaypointType
-1
View File
@@ -11,7 +11,6 @@
#include "ai_gamesettings.hpp"
#include "../../settings_internal.h"
#include "../../economy_func.h"
/* static */ bool AIGameSettings::IsValid(const char *setting)
{
+3 -3
View File
@@ -112,7 +112,7 @@
/* static */ bool AIGroup::SetAutoReplace(GroupID group_id, EngineID engine_id_old, EngineID engine_id_new)
{
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == GROUP_DEFAULT || group_id == GROUP_ALL);
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == GROUP_ALL);
EnforcePrecondition(false, AIEngine::IsBuildable(engine_id_new));
return AIObject::DoCommand(0, group_id << 16, (engine_id_new << 16) | engine_id_old, CMD_SET_AUTOREPLACE);
@@ -120,14 +120,14 @@
/* static */ EngineID AIGroup::GetEngineReplacement(GroupID group_id, EngineID engine_id)
{
if (!IsValidGroup(group_id) && group_id != GROUP_DEFAULT && group_id != GROUP_ALL) return ::INVALID_ENGINE;
if (!IsValidGroup(group_id) && group_id != GROUP_ALL) return ::INVALID_ENGINE;
return ::EngineReplacementForCompany(Company::Get(_current_company), engine_id, group_id);
}
/* static */ bool AIGroup::StopAutoReplace(GroupID group_id, EngineID engine_id)
{
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == GROUP_DEFAULT || group_id == GROUP_ALL);
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == GROUP_ALL);
return AIObject::DoCommand(0, group_id << 16, (::INVALID_ENGINE << 16) | engine_id, CMD_SET_AUTOREPLACE);
}
+3 -3
View File
@@ -148,7 +148,7 @@ public:
* vehicles from all groups that haven't set autoreplace protection.
* @param engine_id_old The engine id to start replacing.
* @param engine_id_new The engine id to replace with.
* @pre IsValidGroup(group_id) || group_id == GROUP_DEFAULT || group_id == GROUP_ALL.
* @pre IsValidGroup(group_id) || group_id == GROUP_ALL.
* @pre AIEngine.IsBuildable(engine_id_new).
* @note To stop autoreplacing engine_id_old, call StopAutoReplace(group_id, engine_id_old).
*/
@@ -158,7 +158,7 @@ public:
* Get the EngineID the given EngineID is replaced with.
* @param group_id The group to get the replacement from.
* @param engine_id The engine that is being replaced.
* @pre IsValidGroup(group_id) || group_id == GROUP_DEFAULT || group_id == GROUP_ALL.
* @pre IsValidGroup(group_id) || group_id == GROUP_ALL.
* @return The EngineID that is replacing engine_id or an invalid EngineID
* in case engine_id is not begin replaced.
*/
@@ -168,7 +168,7 @@ public:
* Stop replacing a certain engine in the specified group.
* @param group_id The group to stop replacing the engine in.
* @param engine_id The engine id to stop replacing with another engine.
* @pre IsValidGroup(group_id) || group_id == GROUP_DEFAULT || group_id == GROUP_ALL.
* @pre IsValidGroup(group_id) || group_id == GROUP_ALL.
* @return True if and if the replacing was succesfully stopped.
*/
static bool StopAutoReplace(GroupID group_id, EngineID engine_id);
-1
View File
@@ -184,7 +184,6 @@ public:
AICONFIG_NONE, //!< Normal setting.
AICONFIG_RANDOM, //!< When randomizing the AI, pick any value between min_value and max_value.
AICONFIG_BOOLEAN, //!< This value is a boolean (either 0 (false) or 1 (true) ).
AICONFIG_INGAME, //!< This setting can be changed while the AI is running.
};
/**
-11
View File
@@ -13,7 +13,6 @@
#include "ai_station.hpp"
#include "../../station_base.h"
#include "../../tile_cmd.h"
#include "../../economy_func.h"
/* static */ bool AIMarine::IsWaterDepotTile(TileIndex tile)
@@ -150,13 +149,3 @@
return AIObject::DoCommand(tile, 0, 0, CMD_LANDSCAPE_CLEAR);
}
/* static */ Money AIMarine::GetBuildCost(BuildType build_type)
{
switch (build_type) {
case BT_DOCK: return ::GetPrice(PR_BUILD_STATION_DOCK, 1, NULL);
case BT_DEPOT: return ::GetPrice(PR_BUILD_DEPOT_SHIP, 1, NULL);
case BT_BUOY: return ::GetPrice(PR_BUILD_WAYPOINT_BUOY, 1, NULL);
default: return -1;
}
}
-16
View File
@@ -33,15 +33,6 @@ public:
ERR_MARINE_MUST_BE_BUILT_ON_WATER, // [STR_ERROR_MUST_BE_BUILT_ON_WATER]
};
/**
* Types of water-related objects in the game.
*/
enum BuildType {
BT_DOCK, //!< Build a dock
BT_DEPOT, //!< Build a ship depot
BT_BUOY, //!< Build a buoy
};
/**
* Checks whether the given tile is actually a tile with a water depot.
* @param tile The tile to check.
@@ -200,13 +191,6 @@ public:
* @return Whether the canal has been/can be removed or not.
*/
static bool RemoveCanal(TileIndex tile);
/**
* Get the baseprice of building a water-related object.
* @param build_type the type of object to build
* @return The baseprice of building the given object.
*/
static Money GetBuildCost(BuildType build_type);
};
#endif /* AI_MARINE_HPP */
-6
View File
@@ -15,8 +15,6 @@ namespace SQConvert {
/* Allow enums to be used as Squirrel parameters */
template <> AIMarine::ErrorMessages GetParam(ForceType<AIMarine::ErrorMessages>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIMarine::ErrorMessages)tmp; }
template <> int Return<AIMarine::ErrorMessages>(HSQUIRRELVM vm, AIMarine::ErrorMessages res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> AIMarine::BuildType GetParam(ForceType<AIMarine::BuildType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIMarine::BuildType)tmp; }
template <> int Return<AIMarine::BuildType>(HSQUIRRELVM vm, AIMarine::BuildType res) { sq_pushinteger(vm, (int32)res); return 1; }
/* Allow AIMarine to be used as Squirrel parameter */
template <> AIMarine *GetParam(ForceType<AIMarine *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIMarine *)instance; }
@@ -34,9 +32,6 @@ void SQAIMarine_Register(Squirrel *engine)
SQAIMarine.DefSQConst(engine, AIMarine::ERR_MARINE_BASE, "ERR_MARINE_BASE");
SQAIMarine.DefSQConst(engine, AIMarine::ERR_MARINE_MUST_BE_BUILT_ON_WATER, "ERR_MARINE_MUST_BE_BUILT_ON_WATER");
SQAIMarine.DefSQConst(engine, AIMarine::BT_DOCK, "BT_DOCK");
SQAIMarine.DefSQConst(engine, AIMarine::BT_DEPOT, "BT_DEPOT");
SQAIMarine.DefSQConst(engine, AIMarine::BT_BUOY, "BT_BUOY");
AIError::RegisterErrorMap(STR_ERROR_MUST_BE_BUILT_ON_WATER, AIMarine::ERR_MARINE_MUST_BE_BUILT_ON_WATER);
@@ -58,7 +53,6 @@ void SQAIMarine_Register(Squirrel *engine)
SQAIMarine.DefSQStaticMethod(engine, &AIMarine::RemoveBuoy, "RemoveBuoy", 2, ".i");
SQAIMarine.DefSQStaticMethod(engine, &AIMarine::RemoveLock, "RemoveLock", 2, ".i");
SQAIMarine.DefSQStaticMethod(engine, &AIMarine::RemoveCanal, "RemoveCanal", 2, ".i");
SQAIMarine.DefSQStaticMethod(engine, &AIMarine::GetBuildCost, "GetBuildCost", 2, ".i");
SQAIMarine.PostRegister(engine);
}
+3 -12
View File
@@ -188,7 +188,8 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
case OT_GOTO_STATION: {
const Station *st = ::Station::Get(order->GetDestination());
if (st->train_station.tile != INVALID_TILE) {
TILE_AREA_LOOP(t, st->train_station) {
for (uint i = 0; i < st->train_station.w; i++) {
TileIndex t = st->train_station.tile + TileDiffXY(i, 0);
if (st->TileBelongsToRailStation(t)) return t;
}
} else if (st->dock_tile != INVALID_TILE) {
@@ -205,17 +206,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
}
return INVALID_TILE;
}
case OT_GOTO_WAYPOINT: {
const Waypoint *wp = ::Waypoint::Get(order->GetDestination());
if (wp->train_station.tile != INVALID_TILE) {
TILE_AREA_LOOP(t, wp->train_station) {
if (wp->TileBelongsToRailStation(t)) return t;
}
}
/* If the waypoint has no rail waypoint tiles, it must have a buoy */
return wp->xy;
}
case OT_GOTO_WAYPOINT: return ::Waypoint::Get(order->GetDestination())->xy;
default: return INVALID_TILE;
}
}
+1 -16
View File
@@ -19,7 +19,6 @@
#include "../../newgrf.h"
#include "../../newgrf_generic.h"
#include "../../newgrf_station.h"
#include "../../economy_func.h"
/* static */ bool AIRail::IsRailTile(TileIndex tile)
{
@@ -332,7 +331,7 @@ static uint32 SimulateDrag(TileIndex from, TileIndex tile, TileIndex *to)
(::TileX(from) == ::TileX(tile) && ::TileX(tile) == ::TileX(to)) ||
(::TileY(from) == ::TileY(tile) && ::TileY(tile) == ::TileY(to)));
uint32 p2 = SimulateDrag(from, tile, &to) | 1 << 8;
uint32 p2 = SimulateDrag(from, tile, &to);
return AIObject::DoCommand(tile, to, p2, CMD_BUILD_RAILROAD_TRACK);
}
@@ -455,17 +454,3 @@ static bool IsValidSignalType(int signal_type)
return AIObject::DoCommand(tile, track, 0, CMD_REMOVE_SIGNALS);
}
/* static */ Money AIRail::GetBuildCost(RailType railtype, BuildType build_type)
{
if (!AIRail::IsRailTypeAvailable(railtype)) return -1;
switch (build_type) {
case BT_TRACK: return ::RailBuildCost((::RailType)railtype);
case BT_SIGNAL: return ::GetPrice(PR_BUILD_SIGNALS, 1, NULL);
case BT_DEPOT: return ::GetPrice(PR_BUILD_DEPOT_TRAIN, 1, NULL);
case BT_STATION: return ::GetPrice(PR_BUILD_STATION_RAIL, 1, NULL) + ::GetPrice(PR_BUILD_STATION_RAIL_LENGTH, 1, NULL);
case BT_WAYPOINT: return ::GetPrice(PR_BUILD_WAYPOINT_RAIL, 1, NULL);
default: return -1;
}
}
-21
View File
@@ -81,17 +81,6 @@ public:
SIGNALTYPE_NONE = 0xFF, //!< No signal.
};
/**
* Types of rail-related objects in the game.
*/
enum BuildType {
BT_TRACK, //!< Build a track
BT_SIGNAL, //!< Build a signal
BT_DEPOT, //!< Build a depot
BT_STATION, //!< Build a station
BT_WAYPOINT, //!< Build a rail waypoint
};
/**
* Checks whether the given tile is actually a tile with rail that can be
* used to traverse a tile. This excludes rail depots but includes
@@ -380,7 +369,6 @@ public:
* @exception AIRail::ERR_CROSSING_ON_ONEWAY_ROAD
* @exception AIRoad::ERR_ROAD_WORKS_IN_PROGRESS
* @exception AIError::ERR_ALREADY_BUILT
* @note Construction will fail if an obstacle is found between the start and end tiles.
* @return Whether the rail has been/can be build or not.
*/
static bool BuildRail(TileIndex from, TileIndex tile, TileIndex to);
@@ -431,15 +419,6 @@ public:
* @return Whether the signal has been/can be removed or not.
*/
static bool RemoveSignal(TileIndex tile, TileIndex front);
/**
* Get the baseprice of building a rail-related object.
* @param railtype the railtype that is build (on)
* @param build_type the type of object to build
* @pre IsRailTypeAvailable(railtype)
* @return The baseprice of building the given object.
*/
static Money GetBuildCost(RailType railtype, BuildType build_type);
};
#endif /* AI_RAIL_HPP */
-8
View File
@@ -21,8 +21,6 @@ namespace SQConvert {
template <> int Return<AIRail::RailTrack>(HSQUIRRELVM vm, AIRail::RailTrack res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> AIRail::SignalType GetParam(ForceType<AIRail::SignalType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIRail::SignalType)tmp; }
template <> int Return<AIRail::SignalType>(HSQUIRRELVM vm, AIRail::SignalType res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> AIRail::BuildType GetParam(ForceType<AIRail::BuildType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIRail::BuildType)tmp; }
template <> int Return<AIRail::BuildType>(HSQUIRRELVM vm, AIRail::BuildType res) { sq_pushinteger(vm, (int32)res); return 1; }
/* Allow AIRail to be used as Squirrel parameter */
template <> AIRail *GetParam(ForceType<AIRail *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIRail *)instance; }
@@ -62,11 +60,6 @@ void SQAIRail_Register(Squirrel *engine)
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_EXIT_TWOWAY, "SIGNALTYPE_EXIT_TWOWAY");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_COMBO_TWOWAY, "SIGNALTYPE_COMBO_TWOWAY");
SQAIRail.DefSQConst(engine, AIRail::SIGNALTYPE_NONE, "SIGNALTYPE_NONE");
SQAIRail.DefSQConst(engine, AIRail::BT_TRACK, "BT_TRACK");
SQAIRail.DefSQConst(engine, AIRail::BT_SIGNAL, "BT_SIGNAL");
SQAIRail.DefSQConst(engine, AIRail::BT_DEPOT, "BT_DEPOT");
SQAIRail.DefSQConst(engine, AIRail::BT_STATION, "BT_STATION");
SQAIRail.DefSQConst(engine, AIRail::BT_WAYPOINT, "BT_WAYPOINT");
AIError::RegisterErrorMap(STR_ERROR_CROSSING_ON_ONEWAY_ROAD, AIRail::ERR_CROSSING_ON_ONEWAY_ROAD);
AIError::RegisterErrorMap(STR_ERROR_NO_SUITABLE_RAILROAD_TRACK, AIRail::ERR_UNSUITABLE_TRACK);
@@ -105,7 +98,6 @@ void SQAIRail_Register(Squirrel *engine)
SQAIRail.DefSQStaticMethod(engine, &AIRail::GetSignalType, "GetSignalType", 3, ".ii");
SQAIRail.DefSQStaticMethod(engine, &AIRail::BuildSignal, "BuildSignal", 4, ".iii");
SQAIRail.DefSQStaticMethod(engine, &AIRail::RemoveSignal, "RemoveSignal", 3, ".ii");
SQAIRail.DefSQStaticMethod(engine, &AIRail::GetBuildCost, "GetBuildCost", 3, ".ii");
SQAIRail.PostRegister(engine);
}
+1 -14
View File
@@ -471,7 +471,7 @@ static bool NeighbourHasReachableRoad(::RoadTypes rts, TileIndex start_tile, Dia
EnforcePrecondition(false, !one_way || AIObject::GetRoadType() == ::ROADTYPE_ROAD);
EnforcePrecondition(false, IsRoadTypeAvailable(GetCurrentRoadType()));
return AIObject::DoCommand(start, end, (::TileY(start) != ::TileY(end) ? 4 : 0) | (((start < end) == !full) ? 1 : 2) | (AIObject::GetRoadType() << 3) | ((one_way ? 1 : 0) << 5) | 1 << 6, CMD_BUILD_LONG_ROAD);
return AIObject::DoCommand(start, end, (::TileY(start) != ::TileY(end) ? 4 : 0) | (((start < end) == !full) ? 1 : 2) | (AIObject::GetRoadType() << 3) | ((one_way ? 1 : 0) << 5), CMD_BUILD_LONG_ROAD);
}
/* static */ bool AIRoad::BuildRoad(TileIndex start, TileIndex end)
@@ -579,16 +579,3 @@ static bool NeighbourHasReachableRoad(::RoadTypes rts, TileIndex start_tile, Dia
return AIObject::DoCommand(tile, 0, GetRoadStopType(tile), CMD_REMOVE_ROAD_STOP);
}
/* static */ Money AIRoad::GetBuildCost(RoadType roadtype, BuildType build_type)
{
if (!AIRoad::IsRoadTypeAvailable(roadtype)) return -1;
switch (build_type) {
case BT_ROAD: return ::GetPrice(PR_BUILD_ROAD, 1, NULL);
case BT_DEPOT: return ::GetPrice(PR_BUILD_DEPOT_ROAD, 1, NULL);
case BT_BUS_STOP: return ::GetPrice(PR_BUILD_STATION_BUS, 1, NULL);
case BT_TRUCK_STOP: return ::GetPrice(PR_BUILD_STATION_TRUCK, 1, NULL);
default: return -1;
}
}
-23
View File
@@ -63,16 +63,6 @@ public:
ROADVEHTYPE_TRUCK, //!< Build objects useable for trucks and cargo trams
};
/**
* Types of road-related objects in the game.
*/
enum BuildType {
BT_ROAD, //!< Build a piece of road
BT_DEPOT, //!< Build a road depot
BT_BUS_STOP, //!< Build a bus stop
BT_TRUCK_STOP, //!< Build a truck stop
};
/**
* Determines whether a busstop or a truckstop is needed to transport a certain cargo.
* @param cargo_type The cargo to test.
@@ -263,7 +253,6 @@ public:
* @exception AIRoad::ERR_ROAD_ONE_WAY_ROADS_CANNOT_HAVE_JUNCTIONS
* @exception AIRoad::ERR_ROAD_WORKS_IN_PROGRESS
* @exception AIError::ERR_VEHICLE_IN_THE_WAY
* @note Construction will fail if an obstacle is found between the start and end tiles.
* @return Whether the road has been/can be build or not.
*/
static bool BuildRoad(TileIndex start, TileIndex end);
@@ -290,7 +279,6 @@ public:
* @exception AIRoad::ERR_ROAD_ONE_WAY_ROADS_CANNOT_HAVE_JUNCTIONS
* @exception AIRoad::ERR_ROAD_WORKS_IN_PROGRESS
* @exception AIError::ERR_VEHICLE_IN_THE_WAY
* @note Construction will fail if an obstacle is found between the start and end tiles.
* @return Whether the road has been/can be build or not.
*/
static bool BuildOneWayRoad(TileIndex start, TileIndex end);
@@ -313,7 +301,6 @@ public:
* @exception AIRoad::ERR_ROAD_ONE_WAY_ROADS_CANNOT_HAVE_JUNCTIONS
* @exception AIRoad::ERR_ROAD_WORKS_IN_PROGRESS
* @exception AIError::ERR_VEHICLE_IN_THE_WAY
* @note Construction will fail if an obstacle is found between the start and end tiles.
* @return Whether the road has been/can be build or not.
*/
static bool BuildRoadFull(TileIndex start, TileIndex end);
@@ -341,7 +328,6 @@ public:
* @exception AIRoad::ERR_ROAD_ONE_WAY_ROADS_CANNOT_HAVE_JUNCTIONS
* @exception AIRoad::ERR_ROAD_WORKS_IN_PROGRESS
* @exception AIError::ERR_VEHICLE_IN_THE_WAY
* @note Construction will fail if an obstacle is found between the start and end tiles.
* @return Whether the road has been/can be build or not.
*/
static bool BuildOneWayRoadFull(TileIndex start, TileIndex end);
@@ -465,15 +451,6 @@ public:
*/
static bool RemoveRoadStation(TileIndex tile);
/**
* Get the baseprice of building a road-related object.
* @param roadtype the roadtype that is build (on)
* @param build_type the type of object to build
* @pre IsRoadTypeAvailable(railtype)
* @return The baseprice of building the given object.
*/
static Money GetBuildCost(RoadType roadtype, BuildType build_type);
private:
/**
-7
View File
@@ -19,8 +19,6 @@ namespace SQConvert {
template <> int Return<AIRoad::RoadType>(HSQUIRRELVM vm, AIRoad::RoadType res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> AIRoad::RoadVehicleType GetParam(ForceType<AIRoad::RoadVehicleType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIRoad::RoadVehicleType)tmp; }
template <> int Return<AIRoad::RoadVehicleType>(HSQUIRRELVM vm, AIRoad::RoadVehicleType res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> AIRoad::BuildType GetParam(ForceType<AIRoad::BuildType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIRoad::BuildType)tmp; }
template <> int Return<AIRoad::BuildType>(HSQUIRRELVM vm, AIRoad::BuildType res) { sq_pushinteger(vm, (int32)res); return 1; }
/* Allow AIRoad to be used as Squirrel parameter */
template <> AIRoad *GetParam(ForceType<AIRoad *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIRoad *)instance; }
@@ -46,10 +44,6 @@ void SQAIRoad_Register(Squirrel *engine)
SQAIRoad.DefSQConst(engine, AIRoad::ROADTYPE_INVALID, "ROADTYPE_INVALID");
SQAIRoad.DefSQConst(engine, AIRoad::ROADVEHTYPE_BUS, "ROADVEHTYPE_BUS");
SQAIRoad.DefSQConst(engine, AIRoad::ROADVEHTYPE_TRUCK, "ROADVEHTYPE_TRUCK");
SQAIRoad.DefSQConst(engine, AIRoad::BT_ROAD, "BT_ROAD");
SQAIRoad.DefSQConst(engine, AIRoad::BT_DEPOT, "BT_DEPOT");
SQAIRoad.DefSQConst(engine, AIRoad::BT_BUS_STOP, "BT_BUS_STOP");
SQAIRoad.DefSQConst(engine, AIRoad::BT_TRUCK_STOP, "BT_TRUCK_STOP");
AIError::RegisterErrorMap(STR_ERROR_ROAD_WORKS_IN_PROGRESS, AIRoad::ERR_ROAD_WORKS_IN_PROGRESS);
AIError::RegisterErrorMap(STR_ERROR_DRIVE_THROUGH_DIRECTION, AIRoad::ERR_ROAD_DRIVE_THROUGH_WRONG_DIRECTION);
@@ -88,7 +82,6 @@ void SQAIRoad_Register(Squirrel *engine)
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::RemoveRoadFull, "RemoveRoadFull", 3, ".ii");
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::RemoveRoadDepot, "RemoveRoadDepot", 2, ".i");
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::RemoveRoadStation, "RemoveRoadStation", 2, ".i");
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::GetBuildCost, "GetBuildCost", 3, ".ii");
SQAIRoad.PostRegister(engine);
}
-16
View File
@@ -19,7 +19,6 @@
#include "../../tree_map.h"
#include "../../town.h"
#include "../../landscape.h"
#include "../../economy_func.h"
/* static */ bool AITile::IsBuildable(TileIndex tile)
{
@@ -272,18 +271,3 @@
return ::ClosestTownFromTile(tile, UINT_MAX)->index;
}
/* static */ Money AITile::GetBuildCost(BuildType build_type)
{
switch (build_type) {
case BT_FOUNDATION: return ::GetPrice(PR_BUILD_FOUNDATION, 1, NULL);
case BT_TERRAFORM: return ::GetPrice(PR_TERRAFORM, 1, NULL);
case BT_BUILD_TREES: return ::GetPrice(PR_BUILD_TREES, 1, NULL);
case BT_CLEAR_GRASS: return ::GetPrice(PR_CLEAR_GRASS, 1, NULL);
case BT_CLEAR_ROUGH: return ::GetPrice(PR_CLEAR_ROUGH, 1, NULL);
case BT_CLEAR_ROCKY: return ::GetPrice(PR_CLEAR_ROCKS, 1, NULL);
case BT_CLEAR_FIELDS: return ::GetPrice(PR_CLEAR_FIELDS, 1, NULL);
case BT_CLEAR_HOUSE: return ::GetPrice(PR_CLEAR_HOUSE, 1, NULL);
default: return -1;
}
}
-21
View File
@@ -103,20 +103,6 @@ public:
TRANSPORT_INVALID = -1, //!< Tile without any transport type.
};
/**
* Get the base cost for building/clearing several things.
*/
enum BuildType {
BT_FOUNDATION, //!< Build a foundation under something
BT_TERRAFORM, //!< Terraform
BT_BUILD_TREES, //!< Build trees
BT_CLEAR_GRASS, //!< Clear a tile with just grass
BT_CLEAR_ROUGH, //!< Clear a rough tile
BT_CLEAR_ROCKY, //!< Clear a tile with rocks
BT_CLEAR_FIELDS, //!< Clear a tile with farm fields
BT_CLEAR_HOUSE, //!< Clear a tile with a house
};
/**
* Check if this tile is buildable, i.e. no things on it that needs
* demolishing.
@@ -449,13 +435,6 @@ public:
* @return The TownID of the town closest to the tile.
*/
static TownID GetClosestTown(TileIndex tile);
/**
* Get the baseprice of building/clearing various tile-related things.
* @param build_type the type to build
* @return The baseprice of building or removing the given object.
*/
static Money GetBuildCost(BuildType build_type);
};
#endif /* AI_TILE_HPP */
-11
View File
@@ -21,8 +21,6 @@ namespace SQConvert {
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; }
template <> int Return<AITile::TransportType>(HSQUIRRELVM vm, AITile::TransportType res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> AITile::BuildType GetParam(ForceType<AITile::BuildType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AITile::BuildType)tmp; }
template <> int Return<AITile::BuildType>(HSQUIRRELVM vm, AITile::BuildType res) { sq_pushinteger(vm, (int32)res); return 1; }
/* Allow AITile to be used as Squirrel parameter */
template <> AITile *GetParam(ForceType<AITile *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITile *)instance; }
@@ -75,14 +73,6 @@ void SQAITile_Register(Squirrel *engine)
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::BT_FOUNDATION, "BT_FOUNDATION");
SQAITile.DefSQConst(engine, AITile::BT_TERRAFORM, "BT_TERRAFORM");
SQAITile.DefSQConst(engine, AITile::BT_BUILD_TREES, "BT_BUILD_TREES");
SQAITile.DefSQConst(engine, AITile::BT_CLEAR_GRASS, "BT_CLEAR_GRASS");
SQAITile.DefSQConst(engine, AITile::BT_CLEAR_ROUGH, "BT_CLEAR_ROUGH");
SQAITile.DefSQConst(engine, AITile::BT_CLEAR_ROCKY, "BT_CLEAR_ROCKY");
SQAITile.DefSQConst(engine, AITile::BT_CLEAR_FIELDS, "BT_CLEAR_FIELDS");
SQAITile.DefSQConst(engine, AITile::BT_CLEAR_HOUSE, "BT_CLEAR_HOUSE");
AIError::RegisterErrorMap(STR_ERROR_ALREADY_AT_SEA_LEVEL, AITile::ERR_TILE_TOO_HIGH);
AIError::RegisterErrorMap(STR_ERROR_ALREADY_AT_SEA_LEVEL, AITile::ERR_TILE_TOO_LOW);
@@ -126,7 +116,6 @@ void SQAITile_Register(Squirrel *engine)
SQAITile.DefSQStaticMethod(engine, &AITile::PlantTreeRectangle, "PlantTreeRectangle", 4, ".iii");
SQAITile.DefSQStaticMethod(engine, &AITile::IsWithinTownInfluence, "IsWithinTownInfluence", 3, ".ii");
SQAITile.DefSQStaticMethod(engine, &AITile::GetClosestTown, "GetClosestTown", 2, ".i");
SQAITile.DefSQStaticMethod(engine, &AITile::GetBuildCost, "GetBuildCost", 2, ".i");
SQAITile.PostRegister(engine);
}
+9 -18
View File
@@ -200,7 +200,7 @@ static SpriteID GetAircraftIcon(EngineID engine)
return DIR_W + _aircraft_sprite[spritenum];
}
void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal)
void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal)
{
SpriteID sprite = GetAircraftIcon(engine);
const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
@@ -531,8 +531,10 @@ static void CheckIfAircraftNeedsService(Aircraft *v)
assert(st != NULL);
/* only goto depot if the target airport has a depot */
if (st->GetAirportSpec()->nof_depots > 0 && CanVehicleUseStation(v, st)) {
/* only goto depot if the target airport has terminals (eg. it is airport) */
if (st->airport_tile != INVALID_TILE && st->Airport()->terminals != NULL) {
// printf("targetairport = %d, st->index = %d\n", v->targetairport, st->index);
// v->targetairport = st->index;
v->current_order.MakeGoToDepot(st->index, ODTFB_SERVICE);
SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
} else if (v->current_order.IsType(OT_GOTO_DEPOT)) {
@@ -836,9 +838,6 @@ static byte AircraftGetEntryPoint(const Aircraft *v, const AirportFTAClass *apc)
return apc->entry_points[dir];
}
static void MaybeCrashAirplane(Aircraft *v);
/**
* Controls the movement of an aircraft. This function actually moves the vehicle
* on the map and takes care of minor things like sound playback.
@@ -970,11 +969,6 @@ static bool AircraftController(Aircraft *v)
return false;
}
if (amd->flag & AMED_BRAKE && v->cur_speed > SPEED_LIMIT_TAXI * _settings_game.vehicle.plane_speed) {
MaybeCrashAirplane(v);
if ((v->vehstatus & VS_CRASHED) != 0) return false;
}
uint speed_limit = SPEED_LIMIT_TAXI;
bool hard_limit = true;
@@ -1291,21 +1285,17 @@ static void CrashAirplane(Aircraft *v)
static void MaybeCrashAirplane(Aircraft *v)
{
if (_settings_game.vehicle.plane_crashes == 0) return;
Station *st = Station::Get(v->targetairport);
/* FIXME -- MaybeCrashAirplane -> increase crashing chances of very modern airplanes on smaller than AT_METROPOLITAN airports */
uint32 prob = (0x4000 << _settings_game.vehicle.plane_crashes);
uint16 prob = 0x10000 / 1500;
if ((st->Airport()->flags & AirportFTAClass::SHORT_STRIP) &&
(AircraftVehInfo(v->engine_type)->subtype & AIR_FAST) &&
!_cheats.no_jetcrash.value) {
prob /= 20;
} else {
prob /= 1500;
prob = 0x10000 / 20;
}
if (GB(Random(), 0, 22) > prob) return;
if (GB(Random(), 0, 16) > prob) return;
/* Crash the airplane. Remove all goods stored at the station. */
for (CargoID i = 0; i < NUM_CARGO; i++) {
@@ -1348,6 +1338,7 @@ static void AircraftLandAirplane(Aircraft *v)
if (!PlayVehicleSound(v, VSE_TOUCHDOWN)) {
SndPlayVehicleFx(SND_17_SKID_PLANE, v);
}
MaybeCrashAirplane(v);
}
+1 -1
View File
@@ -87,7 +87,7 @@ void DrawAircraftImage(const Vehicle *v, int left, int right, int y, VehicleID s
int x = rtl ? right - real_sprite->width - real_sprite->x_offs : left - real_sprite->x_offs;
bool helicopter = v->subtype == AIR_HELICOPTER;
PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
SpriteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
DrawSprite(sprite, pal, x, y + 10);
if (helicopter) {
const Aircraft *a = Aircraft::From(v);
+106 -1
View File
@@ -16,7 +16,112 @@
#include "core/alloc_func.hpp"
#include "date_func.h"
#include "settings_type.h"
#include "table/airporttile_ids.h"
/* 8-66 are mapped to 0-58, 83+ are mapped to 59+ */
enum AirportTiles {
APT_APRON = 0,
APT_APRON_FENCE_NW = 1,
APT_APRON_FENCE_SW = 2,
APT_STAND = 3,
APT_APRON_W = 4,
APT_APRON_S = 5,
APT_APRON_VER_CROSSING_S = 6,
APT_APRON_HOR_CROSSING_W = 7,
APT_APRON_VER_CROSSING_N = 8,
APT_APRON_HOR_CROSSING_E = 9,
APT_APRON_E = 10,
APT_ARPON_N = 11,
APT_APRON_HOR = 12,
APT_APRON_N_FENCE_SW = 13,
APT_RUNWAY_1 = 14,
APT_RUNWAY_2 = 15,
APT_RUNWAY_3 = 16,
APT_RUNWAY_4 = 17,
APT_RUNWAY_END_FENCE_SE = 18,
APT_BUILDING_2 = 19,
APT_TOWER_FENCE_SW = 20,
APT_ROUND_TERMINAL = 21,
APT_BUILDING_3 = 22,
APT_BUILDING_1 = 23,
APT_DEPOT_SE = 24,
APT_STAND_1 = 25,
APT_STAND_PIER_NE = 26,
APT_PIER_NW_NE = 27,
APT_PIER = 28,
APT_EMPTY = 29,
APT_EMPTY_FENCE_NE = 30,
APT_RADAR_GRASS_FENCE_SW = 31,
/* 32-42 are for turning the radar */
APT_RADIO_TOWER_FENCE_NE = 43,
APT_SMALL_BUILDING_3 = 44,
APT_SMALL_BUILDING_2 = 45,
APT_SMALL_BUILDING_1 = 46,
APT_GRASS_FENCE_SW = 47,
APT_GRASS_2 = 48,
APT_GRASS_1 = 49,
APT_GRASS_FENCE_NE_FLAG = 50,
/* 51-53 are for flag animation */
APT_RUNWAY_SMALL_NEAR_END = 54,
APT_RUNWAY_SMALL_MIDDLE = 55,
APT_RUNWAY_SMALL_FAR_END = 56,
APT_SMALL_DEPOT_SE = 57,
APT_HELIPORT = 58,
APT_RUNWAY_END = 59,
APT_RUNWAY_5 = 60,
APT_TOWER = 61,
APT_SMALL_DEPOT_SE_2 = 62, // unused (copy of APT_SMALL_DEPOT_SE)
APT_APRON_FENCE_NE = 63,
APT_RUNWAY_END_FENCE_NW = 64,
APT_RUNWAY_FENCE_NW = 65,
APT_RADAR_FENCE_SW = 66,
/* 67-77 are for turning the radar */
APT_RADAR_FENCE_NE = 78,
/* 79-89 are for turning the radar */
APT_HELIPAD_1 = 90,
APT_HELIPAD_2_FENCE_NW = 91,
APT_HELIPAD_2 = 92,
APT_APRON_FENCE_NE_SW = 93,
APT_RUNWAY_END_FENCE_NW_SW = 94,
APT_RUNWAY_END_FENCE_SE_SW = 95,
APT_RUNWAY_END_FENCE_NE_NW = 96,
APT_RUNWAY_END_FENCE_NE_SE = 97,
APT_HELIPAD_2_FENCE_NE_SE = 98,
APT_APRON_FENCE_SE_SW = 99,
APT_LOW_BUILDING_FENCE_N = 100,
APT_ROT_RUNWAY_FENCE_NE = 101, // unused
APT_ROT_RUNWAY_END_FENCE_NE= 102, // unused
APT_ROT_RUNWAY_FENCE_SW = 103, // unused
APT_ROT_RUNWAY_END_FENCE_SW= 104, // unused
APT_DEPOT_SW = 105, // unused
APT_DEPOT_NW = 106, // unused
APT_DEPOT_NE = 107, // unused
APT_HELIPAD_2_FENCE_SE_SW = 108, // unused
APT_HELIPAD_2_FENCE_SE = 109, // unused
APT_LOW_BUILDING_FENCE_NW = 110,
APT_LOW_BUILDING_FENCE_NE = 111, // unused
APT_LOW_BUILDING_FENCE_SW = 112, // unused
APT_LOW_BUILDING_FENCE_SE = 113, // unused
APT_STAND_FENCE_NE = 114, // unused
APT_STAND_FENCE_SE = 115, // unused
APT_STAND_FENCE_SW = 116, // unused
APT_APRON_FENCE_NE_2 = 117, // unused (copy of APT_APRON_FENCE_NE)
APT_APRON_FENCE_SE = 118,
APT_HELIPAD_2_FENCE_NW_SW = 119, // unused
APT_HELIPAD_2_FENCE_SW = 120, // unused
APT_RADAR_FENCE_SE = 121, // unused
/* 122-132 used for radar rotation */
APT_HELIPAD_3_FENCE_SE_SW = 133,
APT_HELIPAD_3_FENCE_NW_SW = 134,
APT_HELIPAD_3_FENCE_NW = 135,
APT_LOW_BUILDING = 136,
APT_APRON_FENCE_NE_SE = 137,
APT_APRON_HALF_EAST = 138,
APT_APRON_HALF_WEST = 139,
APT_GRASS_FENCE_NE_FLAG_2 = 140,
/* 141-143 used for flag animation */
};
#include "table/airport_defaults.h"
#include "table/airporttiles.h"
+6 -2
View File
@@ -21,7 +21,11 @@ enum {
MAX_TERMINALS = 10, ///< maximum number of terminals per airport
MAX_HELIPADS = 4, ///< maximum number of helipads per airport
MAX_ELEMENTS = 255, ///< maximum number of aircraft positions at airport
NUM_AIRPORTTILES = 74, ///< total number of airport tiles
NUM_AIRPORTTILES = 144, ///< total number of airport tiles
};
enum {
AIRPORTTILE_NOANIM = 0xFF, ///< flag to mark airport tiles as having no animation
};
/** Airport types */
@@ -75,7 +79,7 @@ struct AirportSpec {
* Defines the data structure of each indivudual tile of an airport.
*/
struct AirportTileSpec {
uint16 animation_info; ///< Information about the animation (is it looping, how many loops etc)
StationGfx anim_next; ///< Next StationGfx in an animation
uint8 animation_speed; ///< The speed of the animation
static const AirportTileSpec *Get(StationGfx gfx);
+2 -2
View File
@@ -90,7 +90,7 @@ struct BuildAirToolbarWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
if (!IsInsideBS(widget, ATW_AIRPORT, lengthof(_build_air_button_proc))) return;
@@ -257,7 +257,7 @@ public:
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case BAW_SMALL_AIRPORT: case BAW_CITY_AIRPORT: case BAW_HELIPORT: case BAW_METRO_AIRPORT:
+3 -1
View File
@@ -50,7 +50,9 @@ static bool EnginesHaveCargoInCommon(EngineID engine_a, EngineID engine_b)
*/
bool CheckAutoreplaceValidity(EngineID from, EngineID to, CompanyID company)
{
assert(Engine::IsValidID(from) && Engine::IsValidID(to));
/* First we make sure that it's a valid type the user requested
* check that it's an engine that is in the engine array */
if (!Engine::IsValidID(from) || !Engine::IsValidID(to)) return false;
/* we can't replace an engine into itself (that would be autorenew) */
if (from == to) return false;
+1 -1
View File
@@ -399,7 +399,7 @@ public:
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case RVW_WIDGET_TRAIN_ENGINEWAGON_TOGGLE:
+12 -1
View File
@@ -209,7 +209,7 @@ void Blitter_32bppAnim::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomL
}
}
void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height, PaletteID pal)
void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height, int pal)
{
if (_screen_disable_anim) {
/* This means our output is not to the screen, so we can't be doing any animation stuff, so use our parent DrawColourMappingRect() */
@@ -261,6 +261,17 @@ void Blitter_32bppAnim::SetPixel(void *video, int x, int y, uint8 colour)
this->anim_buf[((uint32 *)video - (uint32 *)_screen.dst_ptr) + x + y * this->anim_buf_width] = colour;
}
void Blitter_32bppAnim::SetPixelIfEmpty(void *video, int x, int y, uint8 colour)
{
uint32 *dst = (uint32 *)video + x + y * _screen.pitch;
if (*dst == 0) {
*dst = LookupColourInPalette(colour);
/* Set the colour in the anim-buffer too, if we are rendering to the screen */
if (_screen_disable_anim) return;
this->anim_buf[((uint32 *)video - (uint32 *)_screen.dst_ptr) + x + y * this->anim_buf_width] = colour;
}
}
void Blitter_32bppAnim::DrawRect(void *video, int width, int height, uint8 colour)
{
if (_screen_disable_anim) {
+2 -1
View File
@@ -28,8 +28,9 @@ public:
{}
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, int pal);
/* virtual */ void SetPixel(void *video, int x, int y, uint8 colour);
/* virtual */ void SetPixelIfEmpty(void *video, int x, int y, uint8 colour);
/* virtual */ void DrawRect(void *video, int width, int height, uint8 colour);
/* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height);
/* virtual */ void CopyToBuffer(const void *video, void *dst, int width, int height);
+6
View File
@@ -22,6 +22,12 @@ void Blitter_32bppBase::SetPixel(void *video, int x, int y, uint8 colour)
*((uint32 *)video + x + y * _screen.pitch) = LookupColourInPalette(colour);
}
void Blitter_32bppBase::SetPixelIfEmpty(void *video, int x, int y, uint8 colour)
{
uint32 *dst = (uint32 *)video + x + y * _screen.pitch;
if (*dst == 0) *dst = LookupColourInPalette(colour);
}
void Blitter_32bppBase::DrawRect(void *video, int width, int height, uint8 colour)
{
uint32 colour32 = LookupColourInPalette(colour);
+2 -1
View File
@@ -20,10 +20,11 @@ class Blitter_32bppBase : public Blitter {
public:
/* virtual */ uint8 GetScreenDepth() { return 32; }
// /* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
// /* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal);
// /* virtual */ void DrawColourMappingRect(void *dst, int width, int height, int pal);
// /* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
/* virtual */ void *MoveTo(const void *video, int x, int y);
/* virtual */ void SetPixel(void *video, int x, int y, uint8 colour);
/* virtual */ void SetPixelIfEmpty(void *video, int x, int y, uint8 colour);
/* virtual */ void DrawRect(void *video, int width, int height, uint8 colour);
/* virtual */ void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour);
/* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height);
+1 -1
View File
@@ -63,7 +63,7 @@ void Blitter_32bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoo
}
}
void Blitter_32bppSimple::DrawColourMappingRect(void *dst, int width, int height, PaletteID pal)
void Blitter_32bppSimple::DrawColourMappingRect(void *dst, int width, int height, int pal)
{
uint32 *udst = (uint32 *)dst;
+1 -1
View File
@@ -18,7 +18,7 @@
class Blitter_32bppSimple : public Blitter_32bppBase {
public:
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, int pal);
/* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
/* virtual */ const char *GetName() { return "32bpp-simple"; }
+7 -1
View File
@@ -13,7 +13,7 @@
#include "../gfx_func.h"
#include "8bpp_base.hpp"
void Blitter_8bppBase::DrawColourMappingRect(void *dst, int width, int height, PaletteID pal)
void Blitter_8bppBase::DrawColourMappingRect(void *dst, int width, int height, int pal)
{
const uint8 *ctab = GetNonSprite(pal, ST_RECOLOUR) + 1;
@@ -33,6 +33,12 @@ void Blitter_8bppBase::SetPixel(void *video, int x, int y, uint8 colour)
*((uint8 *)video + x + y * _screen.pitch) = colour;
}
void Blitter_8bppBase::SetPixelIfEmpty(void *video, int x, int y, uint8 colour)
{
uint8 *dst = (uint8 *)video + x + y * _screen.pitch;
if (*dst == 0) *dst = colour;
}
void Blitter_8bppBase::DrawRect(void *video, int width, int height, uint8 colour)
{
do {
+2 -1
View File
@@ -18,10 +18,11 @@ class Blitter_8bppBase : public Blitter {
public:
/* virtual */ uint8 GetScreenDepth() { return 8; }
// /* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, int pal);
// /* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
/* virtual */ void *MoveTo(const void *video, int x, int y);
/* virtual */ void SetPixel(void *video, int x, int y, uint8 colour);
/* virtual */ void SetPixelIfEmpty(void *video, int x, int y, uint8 colour);
/* virtual */ void DrawRect(void *video, int width, int height, uint8 colour);
/* virtual */ void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour);
/* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height);
+10 -1
View File
@@ -68,7 +68,7 @@ public:
* @param height the height of the buffer.
* @param pal the palette to use.
*/
virtual void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal) = 0;
virtual void DrawColourMappingRect(void *dst, int width, int height, int pal) = 0;
/**
* Convert a sprite from the loader to our own format.
@@ -94,6 +94,15 @@ public:
*/
virtual void SetPixel(void *video, int x, int y, uint8 colour) = 0;
/**
* Draw a pixel with a given colour on the video-buffer if there is currently a black pixel.
* @param video The destination pointer (video-buffer).
* @param x The x position within video-buffer.
* @param y The y position within video-buffer.
* @param colour A 8bpp mapping colour.
*/
virtual void SetPixelIfEmpty(void *video, int x, int y, uint8 colour) = 0;
/**
* Make a single horizontal line in a single colour on the video-buffer.
* @param video The destination pointer (video-buffer).
+2 -1
View File
@@ -19,10 +19,11 @@ class Blitter_Null : public Blitter {
public:
/* virtual */ uint8 GetScreenDepth() { return 0; }
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom) {};
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal) {};
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, int pal) {};
/* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
/* virtual */ void *MoveTo(const void *video, int x, int y) { return NULL; };
/* virtual */ void SetPixel(void *video, int x, int y, uint8 colour) {};
/* virtual */ void SetPixelIfEmpty(void *video, int x, int y, uint8 colour) {};
/* virtual */ void DrawRect(void *video, int width, int height, uint8 colour) {};
/* virtual */ void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour) {};
/* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height) {};
+1 -1
View File
@@ -47,7 +47,7 @@ struct BridgeSpec {
uint16 price; ///< the price multiplier
uint16 speed; ///< maximum travel speed
SpriteID sprite; ///< the sprite which is used in the GUI
PaletteID pal; ///< the palette which is used in the GUI
SpriteID pal; ///< the palette which is used in the GUI
StringID material; ///< the string that contains the bridge description
StringID transport_name[2]; ///< description of the bridge, when built for road or rail
PalSpriteID **sprite_table; ///< table of sprites for drawing the bridge
+1 -1
View File
@@ -243,7 +243,7 @@ public:
return ES_NOT_HANDLED;
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
default: break;
+10 -3
View File
@@ -479,7 +479,7 @@ static int DrawRailEnginePurchaseInfo(int left, int right, int y, EngineID engin
y += FONT_HEIGHT_NORMAL;
/* Max tractive effort - not applicable if old acceleration or maglev */
if (_settings_game.vehicle.train_acceleration_model != AM_ORIGINAL && GetRailTypeInfo(rvi->railtype)->acceleration_type != 2) {
if (_settings_game.vehicle.train_acceleration_model != TAM_ORIGINAL && GetRailTypeInfo(rvi->railtype)->acceleration_type != 2) {
SetDParam(0, e->GetDisplayMaxTractiveEffort());
DrawString(left, right, y, STR_PURCHASE_INFO_MAX_TE);
y += FONT_HEIGHT_NORMAL;
@@ -1002,7 +1002,7 @@ struct BuildVehicleWindow : Window {
this->eng_list.RebuildDone();
}
void OnClick(Point pt, int widget, int click_count)
void OnClick(Point pt, int widget)
{
switch (widget) {
case BUILD_VEHICLE_WIDGET_SORT_ASSENDING_DESCENDING:
@@ -1017,7 +1017,6 @@ struct BuildVehicleWindow : Window {
size_t num_items = this->eng_list.Length();
this->sel_engine = (i < num_items) ? this->eng_list[i] : INVALID_ENGINE;
this->SetDirty();
if (click_count > 1) this->OnClick(pt, BUILD_VEHICLE_WIDGET_BUILD, 1);
break;
}
@@ -1129,6 +1128,14 @@ struct BuildVehicleWindow : Window {
}
}
virtual void OnDoubleClick(Point pt, int widget)
{
if (widget == BUILD_VEHICLE_WIDGET_LIST) {
/* When double clicking, we want to buy a vehicle */
this->OnClick(pt, BUILD_VEHICLE_WIDGET_BUILD);
}
}
virtual void OnQueryTextFinished(char *str)
{
if (str == NULL) return;
+1 -1
View File
@@ -271,7 +271,7 @@ struct CheatWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
const NWidgetBase *wid = this->GetWidget<NWidgetBase>(CW_PANEL);
uint btn = (pt.y - wid->pos_y - WD_FRAMERECT_TOP - this->header_height) / (FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL);
+1 -1
View File
@@ -33,7 +33,7 @@ static CommandCost ClearTile_Clear(TileIndex tile, DoCommandFlag flags)
PR_CLEAR_GRASS,
PR_CLEAR_ROUGH,
PR_CLEAR_ROCKS,
PR_CLEAR_FIELDS,
PR_CLEAR_FILEDS,
PR_CLEAR_ROUGH,
PR_CLEAR_ROUGH,
};
+3 -1
View File
@@ -65,6 +65,7 @@ CommandProc CmdRemoveRoadStop;
CommandProc CmdBuildLongRoad;
CommandProc CmdRemoveLongRoad;
CommandProc CmdBuildRoad;
CommandProc CmdRemoveRoad;
CommandProc CmdBuildRoadDepot;
@@ -220,7 +221,8 @@ static const Command _command_proc_table[] = {
{CmdRemoveRoadStop, 0}, // CMD_REMOVE_ROAD_STOP
{CmdBuildLongRoad, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_LONG_ROAD
{CmdRemoveLongRoad, CMD_NO_TEST | CMD_AUTO}, // CMD_REMOVE_LONG_ROAD; towns may disallow removing road bits (as they are connected) in test, but in exec they're removed and thus removing is allowed.
{CmdBuildRoad, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_ROAD
{CmdBuildRoad, 0}, // CMD_BUILD_ROAD
{CmdRemoveRoad, 0}, // CMD_REMOVE_ROAD
{CmdBuildRoadDepot, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_ROAD_DEPOT
{CmdBuildAirport, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_AIRPORT
+1
View File
@@ -188,6 +188,7 @@ enum {
CMD_BUILD_LONG_ROAD, ///< build a complete road (not a "half" one)
CMD_REMOVE_LONG_ROAD, ///< remove a complete road (not a "half" one)
CMD_BUILD_ROAD, ///< build a "half" road
CMD_REMOVE_ROAD, ///< remove a "half" road
CMD_BUILD_ROAD_DEPOT, ///< build a road depot
CMD_BUILD_AIRPORT, ///< build an airport
+1 -1
View File
@@ -107,7 +107,7 @@ struct Company : CompanyPool::PoolItem<&_company_pool> {
#define FOR_ALL_COMPANIES_FROM(var, start) FOR_ALL_ITEMS_FROM(Company, company_index, var, start)
#define FOR_ALL_COMPANIES(var) FOR_ALL_COMPANIES_FROM(var, 0)
Money CalculateCompanyValue(const Company *c, bool including_loan = true);
Money CalculateCompanyValue(const Company *c);
extern uint _next_competitor_start;
extern uint _cur_company_tick_index;
+1 -4
View File
@@ -663,10 +663,7 @@ CommandCost CmdSetAutoReplace(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
CommandCost cost;
if (!Group::IsValidID(id_g) && !IsAllGroupID(id_g) && !IsDefaultGroupID(id_g)) return CMD_ERROR;
if (!Engine::IsValidID(old_engine_type)) return CMD_ERROR;
if (new_engine_type != INVALID_ENGINE) {
if (!Engine::IsValidID(new_engine_type)) return CMD_ERROR;
if (!CheckAutoreplaceValidity(old_engine_type, new_engine_type, _current_company)) return CMD_ERROR;
cost = AddEngineReplacementForCompany(c, old_engine_type, new_engine_type, id_g, flags);
@@ -674,7 +671,7 @@ CommandCost CmdSetAutoReplace(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
cost = RemoveEngineReplacementForCompany(c, old_engine_type, id_g, flags);
}
if ((flags & DC_EXEC) && IsLocalCompany()) InvalidateAutoreplaceWindow(old_engine_type, id_g);
if (IsLocalCompany()) InvalidateAutoreplaceWindow(old_engine_type, id_g);
return cost;
}
+6 -6
View File
@@ -433,7 +433,7 @@ struct CompanyFinancesWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case CFW_TOGGLE_SIZE: // toggle size
@@ -729,7 +729,7 @@ public:
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
/* Livery Class buttons */
@@ -846,7 +846,7 @@ void DrawCompanyManagerFace(CompanyManagerFace cmf, int colour, int x, int y)
bool has_moustache = !HasBit(ge, GENDER_FEMALE) && GetCompanyManagerFaceBits(cmf, CMFV_HAS_MOUSTACHE, ge) != 0;
bool has_tie_earring = !HasBit(ge, GENDER_FEMALE) || GetCompanyManagerFaceBits(cmf, CMFV_HAS_TIE_EARRING, ge) != 0;
bool has_glasses = GetCompanyManagerFaceBits(cmf, CMFV_HAS_GLASSES, ge) != 0;
PaletteID pal;
SpriteID pal;
/* Modify eye colour palette only if 2 or more valid values exist */
if (_cmf_info[CMFV_EYE_COLOUR].valid_values[ge] < 2) {
@@ -1393,7 +1393,7 @@ public:
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
/* Toggle size, advanced/simple face selection */
@@ -1916,7 +1916,7 @@ struct CompanyWindow : Window
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case CW_WIDGET_NEW_FACE: DoSelectCompanyManagerFace(this); break;
@@ -2115,7 +2115,7 @@ struct BuyCompanyWindow : Window {
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case BCW_NO:
+2 -23
View File
@@ -213,7 +213,7 @@ DEF_CONSOLE_CMD(ConSave)
if (SaveOrLoad(filename, SL_SAVE, SAVE_DIR) != SL_OK) {
IConsolePrint(CC_ERROR, "Saving map failed");
} else {
IConsolePrintF(CC_DEFAULT, "Map successfully saved to %s", filename);
IConsolePrintF(CC_DEFAULT, "Map sucessfully saved to %s", filename);
}
free(filename);
return true;
@@ -1052,7 +1052,7 @@ DEF_CONSOLE_CMD(ConStartAI)
AIConfig *config = AIConfig::GetConfig((CompanyID)n);
if (argc >= 2) {
config->ChangeAI(argv[1], -1, true);
config->ChangeAI(argv[1]);
if (!config->HasAI()) {
IConsoleWarning("Failed to load the specified AI");
return true;
@@ -1713,25 +1713,6 @@ DEF_CONSOLE_CMD(ConSetting)
return true;
}
DEF_CONSOLE_CMD(ConSettingNewgame)
{
if (argc == 0) {
IConsoleHelp("Change setting for the next game. Usage: 'setting_newgame <name> [<value>]'");
IConsoleHelp("Omitting <value> will print out the current value of the setting.");
return true;
}
if (argc == 1 || argc > 3) return false;
if (argc == 2) {
IConsoleGetSetting(argv[1], true);
} else {
IConsoleSetSetting(argv[1], argv[2], true);
}
return true;
}
DEF_CONSOLE_CMD(ConListSettings)
{
if (argc == 0) {
@@ -1837,7 +1818,6 @@ void IConsoleStdLibRegister()
IConsoleCmdRegister("pwd", ConPrintWorkingDirectory);
IConsoleCmdRegister("clear", ConClearBuffer);
IConsoleCmdRegister("setting", ConSetting);
IConsoleCmdRegister("setting_newgame", ConSettingNewgame);
IConsoleCmdRegister("list_settings",ConListSettings);
IConsoleCmdRegister("gamelog", ConGamelogPrint);
@@ -1848,7 +1828,6 @@ void IConsoleStdLibRegister()
IConsoleAliasRegister("new_game", "newgame");
IConsoleAliasRegister("patch", "setting %+");
IConsoleAliasRegister("set", "setting %+");
IConsoleAliasRegister("set_newgame", "setting_newgame %+");
IConsoleAliasRegister("list_patches", "list_settings %+");
+4 -8
View File
@@ -76,20 +76,16 @@ public:
/**
* Append an item and return it.
* @param to_add the number of items to append
* @return pointer to newly allocated item
*/
FORCEINLINE T *Append(uint to_add = 1)
FORCEINLINE T *Append()
{
uint begin = this->items;
this->items += to_add;
if (this->items > this->capacity) {
this->capacity = Align(this->items, S);
if (this->items == this->capacity) {
this->capacity += S;
this->data = ReallocT(this->data, this->capacity);
}
return &this->data[begin];
return &this->data[this->items++];
}
/**
-1
View File
@@ -30,7 +30,6 @@
#include "company_base.h"
#include "company_func.h"
#include <time.h>
/* static */ const char *CrashLog::message = NULL;
/* static */ char *CrashLog::gamelog_buffer = NULL;
+1 -1
View File
@@ -151,7 +151,7 @@ struct SetDateWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case SDW_DAY:
+1 -1
View File
@@ -711,7 +711,7 @@ struct DepotWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case DEPOT_WIDGET_MATRIX: { // List
+3 -3
View File
@@ -181,7 +181,7 @@ struct BuildDocksToolbarWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
if (widget >= DTW_BUTTONS_BEGIN) _build_docks_button_proc[widget - DTW_BUTTONS_BEGIN](this);
}
@@ -372,7 +372,7 @@ public:
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case BDSW_LT_OFF:
@@ -457,7 +457,7 @@ public:
DrawShipDepotSprite(this->GetWidget<NWidgetBase>(BDDW_Y)->pos_x + 64, this->GetWidget<NWidgetBase>(BDDW_Y)->pos_y + 34, 3);
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case BDDW_X:
+3 -12
View File
@@ -110,16 +110,7 @@ Prices _price;
Money _additional_cash_required;
static PriceMultipliers _price_base_multiplier;
/**
* Calculate the value of the company. That is the value of all
* assets (vehicles, stations, etc) and money minus the loan,
* except when including_loan is \c false which is useful when
* we want to calculate the value for bankruptcy.
* @param c the company to get the value of.
* @param including_loan include the loan in the company value.
* @return the value of the company.
*/
Money CalculateCompanyValue(const Company *c, bool including_loan)
Money CalculateCompanyValue(const Company *c)
{
Owner owner = c->index;
Money value = 0;
@@ -146,7 +137,7 @@ Money CalculateCompanyValue(const Company *c, bool including_loan)
}
/* Add real money value */
if (including_loan) value -= c->current_loan;
value -= c->current_loan;
value += c->money;
return max(value, (Money)1);
@@ -516,7 +507,7 @@ static void CompanyCheckBankrupt(Company *c)
case 3: {
/* Check if the company has any value.. if not, declare it bankrupt
* right now */
Money val = CalculateCompanyValue(c, false);
Money val = CalculateCompanyValue(c);
if (val > 0) {
c->bankrupt_value = val;
c->bankrupt_asked = 1 << c->index; // Don't ask the owner
+1 -1
View File
@@ -89,7 +89,7 @@ enum Price {
PR_CLEAR_GRASS,
PR_CLEAR_ROUGH,
PR_CLEAR_ROCKS,
PR_CLEAR_FIELDS,
PR_CLEAR_FILEDS,
PR_CLEAR_TREES,
PR_CLEAR_RAIL,
PR_CLEAR_SIGNALS,
+3 -3
View File
@@ -106,7 +106,7 @@ struct EnginePreviewWindow : Window {
DrawStringMultiLine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, r.bottom, GetEngineInfoString(engine), TC_FROMSTRING, SA_CENTER);
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case EPW_YES:
@@ -161,7 +161,7 @@ static StringID GetTrainEngineInfoString(const Engine *e)
} else {
SetDParam(5, CT_INVALID);
}
return (_settings_game.vehicle.train_acceleration_model != AM_ORIGINAL && GetRailTypeInfo(e->u.rail.railtype)->acceleration_type != 2) ? STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE : STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER;
return (_settings_game.vehicle.train_acceleration_model != TAM_ORIGINAL && GetRailTypeInfo(e->u.rail.railtype)->acceleration_type != 2) ? STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE : STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER;
}
static StringID GetAircraftEngineInfoString(const Engine *e)
@@ -248,7 +248,7 @@ StringID GetEngineInfoString(EngineID engine)
* @param engine Engine to draw.
* @param pal Palette to use for drawing.
*/
void DrawVehicleEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal)
void DrawVehicleEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal)
{
const Engine *e = Engine::Get(engine);
+5 -5
View File
@@ -25,10 +25,10 @@ void EngList_SortPartial(GUIEngineList *el, EngList_SortTypeFunction compare, ui
StringID GetEngineCategoryName(EngineID engine);
StringID GetEngineInfoString(EngineID engine);
void DrawVehicleEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal);
void DrawTrainEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal);
void DrawRoadVehEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal);
void DrawShipEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal);
void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal);
void DrawVehicleEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal);
void DrawTrainEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal);
void DrawRoadVehEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal);
void DrawShipEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal);
void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal);
#endif /* ENGINE_GUI_H */
+1 -1
View File
@@ -279,7 +279,7 @@ char *FioFindFullPath(char *buf, size_t buflen, Subdirectory subdir, const char
/* Be, as opening files, aware that sometimes the filename
* might be in uppercase when it is in lowercase on the
* disk. Ofcourse Windows doesn't care about casing. */
strtolower(buf + strlen(_searchpaths[sp]) - 1);
strtolower(buf + ((subdir == NO_DIRECTORY) ? 0 : strlen(_searchpaths[sp]) - 1));
if (FileExists(buf)) break;
#endif
}
+6 -8
View File
@@ -519,7 +519,7 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
this->DrawEditBox(GLAND_RANDOM_EDITBOX);
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case GLAND_TEMPERATE:
@@ -586,7 +586,7 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
case GLAND_START_DATE_TEXT: // Year text
this->widget_id = GLAND_START_DATE_TEXT;
SetDParam(0, _settings_newgame.game_creation.starting_year);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_START_DATE_QUERY_CAPT, 8, 100, this, CS_NUMERAL, QSF_ENABLE_DEFAULT);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_START_DATE_QUERY_CAPT, 8, 100, this, CS_NUMERAL, QSF_NONE);
break;
case GLAND_SNOW_LEVEL_DOWN:
@@ -604,7 +604,7 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
case GLAND_SNOW_LEVEL_TEXT: // Snow line text
this->widget_id = GLAND_SNOW_LEVEL_TEXT;
SetDParam(0, _settings_newgame.game_creation.snow_line_height);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_SNOW_LINE_QUERY_CAPT, 3, 100, this, CS_NUMERAL, QSF_ENABLE_DEFAULT);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_SNOW_LINE_QUERY_CAPT, 3, 100, this, CS_NUMERAL, QSF_NONE);
break;
case GLAND_TREE_PULLDOWN: // Tree placer
@@ -732,9 +732,6 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
virtual void OnQueryTextFinished(char *str)
{
/* Was 'cancel' pressed? */
if (str == NULL) return;
int32 value;
if (!StrEmpty(str)) {
value = atoi(str);
@@ -743,6 +740,7 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
switch (this->widget_id) {
case GLAND_START_DATE_TEXT: value = DEF_START_YEAR; break;
case GLAND_SNOW_LEVEL_TEXT: value = DEF_SNOWLINE_HEIGHT; break;
case GLAND_TOWN_PULLDOWN: value = 1; break; // There's not really a default
default: NOT_REACHED();
}
}
@@ -921,7 +919,7 @@ struct CreateScenarioWindow : public Window
size->height += padding.height;
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case CSCEN_TEMPERATE:
@@ -1161,7 +1159,7 @@ struct GenerateProgressWindow : public Window {
this->InitNested(&_generate_progress_desc);
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case GPWW_ABORT:
+3 -3
View File
@@ -1028,7 +1028,7 @@ Dimension GetSpriteSize(SpriteID sprid)
* @param y Top coordinate of image
* @param sub If available, draw only specified part of the sprite
*/
void DrawSprite(SpriteID img, PaletteID pal, int x, int y, const SubSprite *sub)
void DrawSprite(SpriteID img, SpriteID pal, int x, int y, const SubSprite *sub)
{
if (HasBit(img, PALETTE_MODIFIER_TRANSPARENT)) {
_colour_remap_ptr = GetNonSprite(GB(pal, 0, PALETTE_WIDTH), ST_RECOLOUR) + 1;
@@ -1645,7 +1645,7 @@ bool FillDrawPixelInfo(DrawPixelInfo *n, int left, int top, int width, int heigh
return true;
}
static void SetCursorSprite(CursorID cursor, PaletteID pal)
static void SetCursorSprite(SpriteID cursor, SpriteID pal)
{
CursorVars *cv = &_cursor;
const Sprite *p;
@@ -1682,7 +1682,7 @@ void CursorTick()
SwitchAnimatedCursor();
}
void SetMouseCursor(CursorID sprite, PaletteID pal)
void SetMouseCursor(SpriteID sprite, SpriteID pal)
{
/* Turn off animation */
_cursor.animate_timeout = 0;
+2 -2
View File
@@ -91,7 +91,7 @@ void RedrawScreenRect(int left, int top, int right, int bottom);
void GfxScroll(int left, int top, int width, int height, int xo, int yo);
Dimension GetSpriteSize(SpriteID sprid);
void DrawSprite(SpriteID img, PaletteID pal, int x, int y, const SubSprite *sub = NULL);
void DrawSprite(SpriteID img, SpriteID pal, int x, int y, const SubSprite *sub = NULL);
/** How to align the to-be drawn text. */
enum StringAlignment {
@@ -149,7 +149,7 @@ bool FillDrawPixelInfo(DrawPixelInfo *n, int left, int top, int width, int heigh
/* window.cpp */
void DrawOverlappedWindowForAll(int left, int top, int right, int bottom);
void SetMouseCursor(CursorID cursor, PaletteID pal);
void SetMouseCursor(SpriteID sprite, SpriteID pal);
void SetAnimatedMouseCursor(const AnimCursor *table);
void CursorTick();
bool ChangeResInGame(int w, int h);
+5 -6
View File
@@ -16,15 +16,14 @@
#include "core/geometry_type.hpp"
#include "zoom_type.h"
typedef uint32 SpriteID; ///< The number of a sprite, without mapping bits and colourtables
typedef uint32 PaletteID; ///< The number of the palette
typedef uint32 CursorID; ///< The number of the cursor (sprite)
typedef uint32 SpriteID; ///< The number of a sprite, without mapping bits and colourtables
/** Combination of a palette sprite and a 'real' sprite */
struct PalSpriteID {
SpriteID sprite; ///< The 'real' sprite
PaletteID pal; ///< The palette (use \c PAL_NONE) if not needed)
SpriteID pal; ///< The palette (use \c PAL_NONE) if not needed)
};
typedef int32 CursorID;
enum WindowKeyCodes {
WKC_SHIFT = 0x8000,
@@ -114,8 +113,8 @@ struct CursorVars {
Point pos, size, offs, delta; ///< position, size, offset from top-left, and movement
Point draw_pos, draw_size; ///< position and size bounding-box for drawing
int short_vehicle_offset; ///< offset of the X for short vehicles
CursorID sprite; ///< current image of cursor
PaletteID pal;
SpriteID sprite; ///< current image of cursor
SpriteID pal;
int wheel; ///< mouse wheel movement
+6 -6
View File
@@ -81,7 +81,7 @@ struct GraphLegendWindow : Window {
DrawString(r.left + (rtl ? WD_FRAMERECT_LEFT : 19), r.right - (rtl ? 19 : WD_FRAMERECT_RIGHT), r.top + WD_FRAMERECT_TOP, STR_COMPANY_NAME_COMPANY_NUM, HasBit(_legend_excluded_companies, cid) ? TC_BLACK : TC_WHITE);
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
if (!IsInsideMM(widget, GLW_FIRST_COMPANY, MAX_COMPANIES + GLW_FIRST_COMPANY)) return;
@@ -513,7 +513,7 @@ public:
return INVALID_DATAPOINT;
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
/* Clicked on legend? */
if (widget == BGW_KEY_BUTTON) ShowGraphLegend();
@@ -725,10 +725,10 @@ struct PerformanceHistoryGraphWindow : BaseGraphWindow {
return c->old_economy[j].performance_history;
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
if (widget == PHW_DETAILED_PERFORMANCE) ShowPerformanceRatingDetail();
this->BaseGraphWindow::OnClick(pt, widget, click_count);
this->BaseGraphWindow::OnClick(pt, widget);
}
};
@@ -874,7 +874,7 @@ struct PaymentRatesGraphWindow : BaseGraphWindow {
DrawString(rtl ? r.left : x + 14 + clk_dif, (rtl ? r.right - 14 + clk_dif : r.right), y + clk_dif, STR_GRAPH_CARGO_PAYMENT_CARGO);
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
if (widget >= CPW_CARGO_FIRST) {
int i = 0;
@@ -1330,7 +1330,7 @@ struct PerformanceRatingDetailWindow : Window {
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
/* Check which button is clicked */
if (IsInsideMM(widget, PRW_COMPANY_FIRST, PRW_COMPANY_LAST + 1)) {
+6 -11
View File
@@ -421,7 +421,7 @@ public:
}
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case GRP_WIDGET_SORT_BY_ORDER: // Flip sorting method ascending/descending
@@ -498,7 +498,7 @@ public:
}
case GRP_WIDGET_RENAME_GROUP: // Rename the selected roup
this->ShowRenameGroupWindow(this->group_sel, false);
this->ShowRenameGroupWindow(this->group_sel);
break;
case GRP_WIDGET_AVAILABLE_VEHICLES:
@@ -658,17 +658,12 @@ public:
this->SetWidgetDirty(GRP_WIDGET_LIST_VEHICLE);
}
void ShowRenameGroupWindow(GroupID group, bool empty)
void ShowRenameGroupWindow(GroupID group)
{
assert(Group::IsValidID(group));
this->group_rename = group;
/* Show empty query for new groups */
StringID str = STR_EMPTY;
if (!empty) {
SetDParam(0, group);
str = STR_GROUP_NAME;
}
ShowQueryString(str, STR_GROUP_RENAME_CAPTION, MAX_LENGTH_GROUP_NAME_BYTES, MAX_LENGTH_GROUP_NAME_PIXELS, this, CS_ALPHANUMERAL, QSF_ENABLE_DEFAULT);
SetDParam(0, group);
ShowQueryString(STR_GROUP_NAME, STR_GROUP_RENAME_CAPTION, MAX_LENGTH_GROUP_NAME_BYTES, MAX_LENGTH_GROUP_NAME_PIXELS, this, CS_ALPHANUMERAL, QSF_ENABLE_DEFAULT);
}
/**
@@ -735,7 +730,7 @@ void CcCreateGroup(const CommandCost &result, TileIndex tile, uint32 p1, uint32
assert(p1 <= VEH_AIRCRAFT);
VehicleGroupWindow *w = FindVehicleGroupWindow((VehicleType)p1, _current_company);
if (w != NULL) w->ShowRenameGroupWindow(_new_group_id, true);
if (w != NULL) w->ShowRenameGroupWindow(_new_group_id);
}
/**
+1 -1
View File
@@ -59,7 +59,7 @@ struct EndGameHighScoreBaseWindow : Window {
return pt;
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
delete this;
}
+15 -4
View File
@@ -310,6 +310,8 @@ static void DrawTile_Industry(TileInfo *ti)
Industry *ind = Industry::GetByTile(ti->tile);
const IndustryTileSpec *indts = GetIndustryTileSpec(gfx);
const DrawBuildingsTileStruct *dits;
SpriteID image;
SpriteID pal;
/* Retrieve pointer to the draw industry tile struct */
if (gfx >= NEW_INDUSTRYTILEOFFSET) {
@@ -334,7 +336,12 @@ static void DrawTile_Industry(TileInfo *ti)
GetIndustryAnimationState(ti->tile) & INDUSTRY_COMPLETED :
GetIndustryConstructionStage(ti->tile))];
SpriteID image = dits->ground.sprite;
image = dits->ground.sprite;
if (HasBit(image, PALETTE_MODIFIER_COLOUR) && dits->ground.pal == PAL_NONE) {
pal = GENERAL_SPRITE_COLOUR(ind->random_colour);
} else {
pal = dits->ground.pal;
}
/* DrawFoundation() modifes ti->z and ti->tileh */
if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED);
@@ -344,7 +351,7 @@ static void DrawTile_Industry(TileInfo *ti)
if (image == SPR_FLAT_WATER_TILE && IsIndustryTileOnWater(ti->tile)) {
DrawWaterClassGround(ti);
} else {
DrawGroundSprite(image, GroundSpritePaletteTransform(image, dits->ground.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)));
DrawGroundSprite(image, pal);
}
/* If industries are transparent and invisible, do not draw the upper part */
@@ -353,7 +360,8 @@ static void DrawTile_Industry(TileInfo *ti)
/* Add industry on top of the ground? */
image = dits->building.sprite;
if (image != 0) {
AddSortableSpriteToDraw(image, SpriteLayoutPaletteTransform(image, dits->building.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)),
AddSortableSpriteToDraw(image,
(HasBit(image, PALETTE_MODIFIER_COLOUR) && dits->building.pal == PAL_NONE) ? GENERAL_SPRITE_COLOUR(ind->random_colour) : dits->building.pal,
ti->x + dits->subtile_x,
ti->y + dits->subtile_y,
dits->width,
@@ -1282,9 +1290,12 @@ static bool CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTileTable
do {
IndustryGfx gfx = GetTranslatedIndustryTileID(it->gfx);
TileIndex cur_tile = TileAddWrap(tile, it->ti.x, it->ti.y);
if (TileX(tile) + it->ti.x >= MapSizeX()) return false;
if (TileY(tile) + it->ti.y >= MapSizeY()) return false;
TileIndex cur_tile = tile + ToTileIndexDiff(it->ti);
if (!IsValidTile(cur_tile)) {
if (gfx == GFX_WATERTILE_SPECIALCHECK) continue;
return false;
}
+9 -4
View File
@@ -391,7 +391,13 @@ public:
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnDoubleClick(Point pt, int widget)
{
if (widget != DPIW_MATRIX_WIDGET) return;
this->OnClick(pt, DPIW_FUND_WIDGET);
}
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case DPIW_MATRIX_WIDGET: {
@@ -413,7 +419,6 @@ public:
}
this->SetWidgetDisabledState(DPIW_FUND_WIDGET, !this->enabled[this->selected_index]);
if (this->enabled[this->selected_index] && click_count > 1) this->OnClick(pt, DPIW_FUND_WIDGET, 1);
}
} break;
@@ -698,7 +703,7 @@ public:
if (widget == IVW_INFO) size->height = this->info_height;
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
Industry *i;
@@ -1100,7 +1105,7 @@ public:
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
switch (widget) {
case IDW_DROPDOWN_ORDER:
+1 -1
View File
@@ -97,7 +97,7 @@ struct SelectGameWindow : public Window {
*size = maxdim(*size, textdim);
}
virtual void OnClick(Point pt, int widget, int click_count)
virtual void OnClick(Point pt, int widget)
{
#ifdef ENABLE_NETWORK
/* Do not create a network server when you (just) have closed one of the game
+16 -12
View File
@@ -1201,6 +1201,10 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}Vertoon
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :{LTBLUE}Toon aankoms en vertrek in tydroosters: {ORANGE}{STRING}
STR_CONFIG_SETTING_QUICKGOTO :{LTBLUE}Vinnige skepping van voertuig opdragte: {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}Verstek spoor tipe (na nuwe spel/spel laai): {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_RAIL :Gewone Spoor
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_ELRAIL :Elektrifiseerde Spoor
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MONORAIL :Eenspoor
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MAGLEV :Maglev
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Eers beskikbaar
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Laas beskikbaar
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Meeste gebruik
@@ -2441,14 +2445,14 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Befonds nuwe ge
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Koop eksklusief vervoer regte
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Omkoop die plaaslike raad
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Begin 'n klein plaaslik advertensie veldtog, om meer passasiers en cargo tot jou vervoer dienste te lok.{}Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Begin 'n middlemaatige plaaslik advertensie veldtog, om meer passasiers en cargo tot jou vervoer dienste te lok.{}Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Begin 'n groot plaaslik advertensie veldtog, om meer passasiers en cargo tot jou vervoer dienste te lok.{}Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW} Fonds die herkonstruksie van die stedelik pad netwerk. Veroorsaak aansienlike skeuring to pad verkeer vir op tot 6 maande.{} Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW} Bou 'n standbeeld in eer van u maatskappy.{} Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW} Fonds die bou van nuwe kommersieel geboue in die stad.{} Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} Koop 1 jare eksklusief vervoer regte in dorp. Dorp raad sal slegs passasiers en cargo toelaat om jou maatskappy se stasies te gebruik.{} Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Omkoop die plaaslike raad om jou gradering te verbeter, by die risiko van 'n ernstig straf indien gevang{} Kos: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Begin 'n klein plaaslik advertensie veldtog, om meer passasiers en cargo tot jou vervoer dienste te lok.{}Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Begin 'n middlemaatige plaaslik advertensie veldtog, om meer passasiers en cargo tot jou vervoer dienste te lok.{}Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Begin 'n groot plaaslik advertensie veldtog, om meer passasiers en cargo tot jou vervoer dienste te lok.{}Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW} Fonds die herkonstruksie van die stedelik pad netwerk. Veroorsaak aansienlike skeuring to pad verkeer vir op tot 6 maande.{} Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{WHITE}{STRING}{}{YELLOW} Bou 'n standbeeld in eer van u maatskappy.{} Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{WHITE}{STRING}{}{YELLOW} Fonds die bou van nuwe kommersieel geboue in die stad.{} Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{WHITE}{STRING}{}{YELLOW} Koop 1 jare eksklusief vervoer regte in dorp. Dorp raad sal slegs passasiers en cargo toelaat om jou maatskappy se stasies te gebruik.{} Prys: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{WHITE}{STRING}{}{YELLOW} Omkoop die plaaslike raad om jou gradering te verbeter, by die risiko van 'n ernstig straf indien gevang{} Kos: {CURRENCY}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Subsidiee
@@ -3537,10 +3541,10 @@ STR_ERROR_CAN_T_SEND_ROAD_VEHICLE_TO_DEPOT :{WHITE}Kan nie
STR_ERROR_CAN_T_SEND_SHIP_TO_DEPOT :{WHITE}Kan nie skip na depot stuur nie...
STR_ERROR_CAN_T_SEND_AIRCRAFT_TO_HANGAR :{WHITE}Kan nie vlietuig na hangar stuur nie...
STR_ERROR_CAN_T_BUY_TRAIN :{WHITE}Kan nie spoorweg voertuig koop nie...
STR_ERROR_CAN_T_BUY_ROAD_VEHICLE :{WHITE}Kan nie pad voertuig koop nie...
STR_ERROR_CAN_T_BUY_SHIP :{WHITE}Kan nie skip koop nie...
STR_ERROR_CAN_T_BUY_AIRCRAFT :{WHITE}Kan nie vliegtuig koop nie...
STR_ERROR_CAN_T_BUY_TRAIN :{WHITE}Kan nie spoorweg voertuig bou nie...
STR_ERROR_CAN_T_BUY_ROAD_VEHICLE :{WHITE}Kan nie pad voertuig bou nie...
STR_ERROR_CAN_T_BUY_SHIP :{WHITE}Kan nie skip bou nie...
STR_ERROR_CAN_T_BUY_AIRCRAFT :{WHITE}Kan nie vliegtuig bou nie...
STR_ERROR_CAN_T_RENAME_TRAIN_TYPE :{WHITE}Trein voertuig tipe kan nie hernoem word nie...
STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Pad voertuig tipe kan nie hernoem word nie...
+12 -8
View File
@@ -1200,6 +1200,10 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}عرض
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :{LTBLUE}عرض الوصول و المغادرة في جدولة الاعمال: {ORANGE}{STRING}
STR_CONFIG_SETTING_QUICKGOTO :{LTBLUE} انشاء اوامر بسرعة : {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}سكة الحديد القياسية -بعد بدأ لعبة جديدة او تحميل لعبة- : {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_RAIL :السكة العادية
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_ELRAIL :السكة الكهربائية
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MONORAIL :السكة الأحادية السريعة
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MAGLEV :السكة الممغنطة
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :القديم
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :الجديد
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :الأكثر استخداما
@@ -2445,14 +2449,14 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :مول انشا
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :اشتري حقوق النقل الحصرية للمدينة
STR_LOCAL_AUTHORITY_ACTION_BRIBE :ارشي السلطات المحلية
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}البدء في حملة دعائية صغيرة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك. {} التكلفة: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW} البدء في حملة دعائية متوسطة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك. {} التكلفة: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}البدء في حملة دعائية كبيرة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك. {} التكلفة: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW} مول اعمال الصيانة للطرق و الشوارع بالمدينة. يتسبب في تعطيل حركة النقل داخل المدينة لمدة قد تصل ستة اشهر. {} التكلفة {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW} بناء مجسم تقديرا للشركة في اعمال النقل. {} التكلفة {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW} مول بناء مباني تجارية جديدة في المدينة. {}التكلفة {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} اشتري حقوق النقل لسنة كاملة في هذة المدينة و المصانع التابعة لها. البلدية سوف تسمح للركاب و البضائع باستخدام محطاتك فقط. {}التكلفة: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} ارشي السلطات المحلية لزيادة كفائة الشركة. هناك عقاب شديد اذا ما اكتشفت الرشوة. {} التكلفة: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{WHITE}{STRING}{}{YELLOW}البدء في حملة دعائية صغيرة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك. {} التكلفة: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{WHITE}{STRING}{}{YELLOW} البدء في حملة دعائية متوسطة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك. {} التكلفة: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{WHITE}{STRING}{}{YELLOW}البدء في حملة دعائية كبيرة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك. {} التكلفة: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW} مول اعمال الصيانة للطرق و الشوارع بالمدينة. يتسبب في تعطيل حركة النقل داخل المدينة لمدة قد تصل ستة اشهر. {} التكلفة {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{WHITE}{STRING}{}{YELLOW} بناء مجسم تقديرا للشركة في اعمال النقل. {} التكلفة {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{WHITE}{STRING}{}{YELLOW} مول بناء مباني تجارية جديدة في المدينة. {}التكلفة {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{WHITE}{STRING}{}{YELLOW} اشتري حقوق النقل لسنة كاملة في هذة المدينة و المصانع التابعة لها. البلدية سوف تسمح للركاب و البضائع باستخدام محطاتك فقط. {}التكلفة: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{WHITE}{STRING}{}{YELLOW} ارشي السلطات المحلية لزيادة كفائة الشركة. هناك عقاب شديد اذا ما اكتشفت الرشوة. {} التكلفة: {CURRENCY}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}العروض
+12 -8
View File
@@ -1177,6 +1177,10 @@ STR_CONFIG_SETTING_TIMETABLE_ALLOW :{LTBLUE}Ativar
STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}Exibir plano de horário em tiques ao invés de dias: {ORANGE}{STRING}
STR_CONFIG_SETTING_QUICKGOTO :{LTBLUE}Criar rapidamente ordens para um veículo: {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}Tipo padrão de ferrovia (ao criar ou carregar um jogo): {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_RAIL :Trilho Normal
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_ELRAIL :Trilho Elétrico
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MONORAIL :Monotrilho
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MAGLEV :Maglev
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Primeiro disponível
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Último disponível
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Mais utilizado
@@ -2400,14 +2404,14 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financiar novos
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar exclusividade da rede de transportes
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Subornar a autoridade local
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW} Iniciar uma campanha publicitária pequena, para atrair mais passageiros e cargas para sua empresa.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW} Iniciar uma campanha publicitária média, para atrair mais passageiros e cargas para sua empresa.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW} Iniciar uma campanha publicitária grande, para atrair mais passageiros e cargas para sua empresa.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW} Financiar a reconstrução da malha rodoviária urbana. Causa engarrafamentos consideráveis ao tráfego por até 6 meses.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW} Construir uma estátua em honra para sua empresa.{} Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW} Financiar a construção de edifícios comerciais novos na cidade.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} Comprar a exclusividade dos serviços durante 1 ano na cidade. A autoridade da cidade permitirá que os passageiros e cargas usem somente estações de sua empresa.{} Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Subornar a autoridade local para aumentar a sua avaliação, correndo o risco de uma penalidade severa se apanhado.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{WHITE}{STRING}{}{YELLOW} Iniciar uma campanha publicitária pequena, para atrair mais passageiros e cargas para sua empresa.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{WHITE}{STRING}{}{YELLOW} Iniciar uma campanha publicitária média, para atrair mais passageiros e cargas para sua empresa.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{WHITE}{STRING}{}{YELLOW} Iniciar uma campanha publicitária grande, para atrair mais passageiros e cargas para sua empresa.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW} Financiar a reconstrução da malha rodoviária urbana. Causa engarrafamentos consideráveis ao tráfego por até 6 meses.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{WHITE}{STRING}{}{YELLOW} Construir uma estátua em honra para sua empresa.{} Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{WHITE}{STRING}{}{YELLOW} Financiar a construção de edifícios comerciais novos na cidade.{}Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{WHITE}{STRING}{}{YELLOW} Comprar a exclusividade dos serviços durante 1 ano na cidade. A autoridade da cidade permitirá que os passageiros e cargas usem somente estações de sua empresa.{} Custo: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{WHITE}{STRING}{}{YELLOW}Subornar a autoridade local para aumentar a sua avaliação, correndo o risco de uma penalidade severa se apanhado.{}Custo: {CURRENCY}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Subsídios
+32 -148
View File
@@ -220,7 +220,6 @@ STR_UNITS_FORCE_SI :{COMMA} kN
# Common window strings
STR_LIST_FILTER_OSKTITLE :{BLACK}Въведете филтър
STR_LIST_FILTER_TOOLTIP :{BLACK}Въведете ключова дума за филтър на списъка
STR_LIST_FILTER_TITLE :{BLACK}Филтър:
STR_TOOLTIP_SORT_ORDER :{BLACK}Избери вида на сортирането (намаляващо/нарастващо)
STR_TOOLTIP_SORT_CRITERIAP :{BLACK}Избери критерий за сортиране
@@ -259,8 +258,6 @@ STR_SORT_BY_CAPTION_POPULATION :{BLACK}Насе
STR_SORT_BY_CAPTION_NAME :{BLACK}Име
STR_SORT_BY_CAPTION_DATE :{BLACK}Дата
# These are used in dropdowns
STR_SORT_BY_POPULATION :Население
STR_SORT_BY_NAME :Име
STR_SORT_BY_PRODUCTION :Продукция
STR_SORT_BY_TYPE :Вид
STR_SORT_BY_TRANSPORTED :Транспортирано
@@ -316,7 +313,6 @@ STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Отво
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Покажи прозореца за звук/музика
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Покажи последното съобщение/новини, покажи настройките на съобщенията
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Информация за земята, конзолата, ИИ дебъг, екранни снимки, за OpenTTD
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Смяна на туулбар
# Extra tooltips for the scenario editor toolbar
STR_SCENEDIT_TOOLBAR_TOOLTIP_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Запис, зареждане на сценарий, затваряне на редактора, изход
@@ -370,9 +366,7 @@ STR_MAP_MENU_EXTRA_VIEW_PORT :Допълни
STR_MAP_MENU_SIGN_LIST :Списък с табели
############ range for town menu starts, yet the town directory is shown in the map menu in the scenario editor
STR_TOWN_MENU_TOWN_DIRECTORY :Списък от градовете
############ end of the 'Display map' dropdown
STR_TOWN_MENU_FOUND_TOWN :Основи град
############ end of the 'Town' dropdown
############ both ranges ends here
############ range for subsidies menu starts
STR_SUBSIDIES_MENU_SUBSIDIES :Субсидии
@@ -525,7 +519,6 @@ STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINYFONT}{BLAC
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Активирай/деактивирай графиката за видовете товар
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINYFONT}{BLACK}{STRING}
STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Покажи подробен рейтинг на представянето
# Graph key window
STR_GRAPH_KEY_CAPTION :{WHITE}Легенда на графиката за компаниите
@@ -583,9 +576,6 @@ STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINYFONT}{BLAC
STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINYFONT}{BLACK}Персонален 2
STR_MUSIC_MUSIC_VOLUME :{TINYFONT}{BLACK}Сила на музиката
STR_MUSIC_EFFECTS_VOLUME :{TINYFONT}{BLACK}Сила на ефектите
STR_MUSIC_RULER_MIN :{TINYFONT}{BLACK}MIN
STR_MUSIC_RULER_MAX :{TINYFONT}{BLACK}MAX
STR_MUSIC_RULER_MARKER :{TINYFONT}{BLACK}'
STR_MUSIC_TRACK_NONE :{TINYFONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINYFONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINYFONT}{DKGREEN}------
@@ -608,8 +598,6 @@ STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Избе
STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Активирай/деактивирай разместване на парчетата
STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Покажи прозореца за избор на музикални парчета
STR_ERROR_NO_SONGS :{WHITE}Музикален пакет без песни е избран. Няма да се пускат песни.
# Playlist window
STR_PLAYLIST_MUSIC_PROGRAM_SELECTION :{WHITE}Избор на музикалната програма
STR_PLAYLIST_TRACK_NAME :{TINYFONT}{LTBLUE}{ZEROFILL_NUM} "{STRING}"
@@ -694,9 +682,6 @@ STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRI
STR_SMALLMAP_TOWN :{TINYFONT}{WHITE}{TOWN}
STR_SMALLMAP_DISABLE_ALL :{BLACK}Изключване на всички
STR_SMALLMAP_ENABLE_ALL :{BLACK}Включване на всички
STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Височина на снега
STR_SMALLMAP_TOOLTIP_DISABLE_ALL :{BLACK}Не показвай индустрии на картата
STR_SMALLMAP_TOOLTIP_ENABLE_ALL :{BLACK}Покажи всички индустрии на картата
# Status bar messages
STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Покажи последното съобщение или отчет на новините
@@ -769,8 +754,6 @@ STR_NEWS_COMPANY_LAUNCH_DESCRIPTION :{BIGFONT}{BLACK
STR_NEWS_MERGER_TAKEOVER_TITLE :{BIGFONT}{BLACK}{STRING} бе закупена от {STRING}!
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENTNAME}{}(Manager)
STR_NEWS_NEW_TOWN :{BLACK}{BIGFONT}{STRING} спонсорирано построяване на нов град {TOWN}!
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIGFONT}{BLACK}Нова {STRING} се строи близо до {TOWN}!
STR_NEWS_INDUSTRY_PLANTED :{BIGFONT}{BLACK}Нова {STRING} се засажда близо до {TOWN}!
@@ -948,23 +931,14 @@ STR_GAME_OPTIONS_BASE_SFX :{BLACK}Базо
STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Избери базовия звуков пакет
STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Допълнителна информация за базовите звуци
STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Пакет базова музика
STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Избери пакет базова музика
STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} повреден файл{P "" s}
STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Допълнителна информация за пакетът базовата музика
STR_ERROR_FULLSCREEN_FAILED :{WHITE}Проблем при включване на режим "цял екран"
# Custom currency window
STR_CURRENCY_WINDOW :{WHITE}Парична единица
STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Обменен курс: {ORANGE}{CURRENCY} = £ {COMMA}
STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Намали стойността на твоята валута за една лира(£)
STR_CURRENCY_INCREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Увеличи стойността на твоята валута за една лира (£)
STR_CURRENCY_SET_EXCHANGE_RATE_TOOLTIP :{BLACK}Сложи обменния курс на твоята валута за една лира (£)
STR_CURRENCY_SEPARATOR :{LTBLUE}Разделител: {ORANGE}{STRING}
STR_CURRENCY_SET_CUSTOM_CURRENCY_SEPARATOR_TOOLTIP :{BLACK}Сложи разделител за твоята валута
STR_CURRENCY_PREFIX :{LTBLUE}Представка: {ORANGE}{STRING}
STR_CURRENCY_SUFFIX :{LTBLUE}Надставка: {ORANGE}{STRING}
@@ -976,7 +950,6 @@ STR_CURRENCY_DECREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Прем
STR_CURRENCY_INCREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Премини в Евро по-късно
STR_CURRENCY_PREVIEW :{LTBLUE}Преглед: {ORANGE}{CURRENCY}
STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 лири(£) в твоята валута
STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Промяна параметрите на парична единица
# Difficulty level window
@@ -1018,13 +991,6 @@ STR_NUM_NORMAL :нормалн
STR_NUM_HIGH :голямо
STR_NUM_CUSTOM :Изборен
STR_VARIETY_NONE :Нищо
STR_VARIETY_VERY_LOW :Много ниско
STR_VARIETY_LOW :Ниско
STR_VARIETY_MEDIUM :Средно
STR_VARIETY_HIGH :Високо
STR_VARIETY_VERY_HIGH :Много високо
STR_AI_SPEED_VERY_SLOW :много бавно
STR_AI_SPEED_SLOW :бавно
STR_AI_SPEED_MEDIUM :средно
@@ -1080,7 +1046,7 @@ STR_CONFIG_SETTING_MAMMOTHTRAINS :{LTBLUE}Мно
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :{LTBLUE}Модел на ускорение на влаковете: {ORANGE}{STRING}
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_ORIGINAL :Оригинален
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_REALISTIC :Реалистичен
STR_CONFIG_SETTING_FORBID_90_DEG :{LTBLUE}Забрана 90 градусови завои: {ORANGE}{STRING}{LTBLUE} (не може с OPF)
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}
STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}Подобрен алгоритъм за зареждане: {ORANGE}{STRING}
@@ -1111,10 +1077,6 @@ STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Поз
STR_CONFIG_SETTING_NONUNIFORM_STATIONS :{LTBLUE}Нестандартни станции: {ORANGE}{STRING}
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Теглови множител за симулация на тежки влакове: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Скоростен множител за самолети: {ORANGE}1 / {STRING}
STR_CONFIG_SETTING_PLANE_CRASHES :{LTBLUE}Разбивания на самолети: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :никакви
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :намалени
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :нормални
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{LTBLUE}Преминаване през спирки на градски пътища: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Позвалявай допрени гари: {ORANGE}{STRING}
STR_CONFIG_SETTING_DYNAMIC_ENGINES :{LTBLUE}Няколко NewGRF алгоритъма едновременно: {ORANGE}{STRING}
@@ -1155,7 +1117,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :По часов
STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :{LTBLUE}Височина на картата за плосък сценарий: {ORANGE}{STRING}
STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :{LTBLUE}Разреши тераформирането на терена в краищата на картата: {ORANGE}{STRING}
STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Една или повече плочи в северния край не са празни
STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Един или повече от плочките в един от краищата не е вода
STR_CONFIG_SETTING_STATION_SPREAD :{LTBLUE}Макс. разпръснатост на станция: {ORANGE}{STRING} {RED}Внимание: високите стойности забавят играта
STR_CONFIG_SETTING_SERVICEATHELIPAD :{LTBLUE}Автоматичен сервиз на хеликоптерите при кацане на хелипад: {ORANGE}{STRING}
@@ -1197,9 +1158,12 @@ STR_CONFIG_SETTING_LOADING_INDICATORS_OWN :само за
STR_CONFIG_SETTING_LOADING_INDICATORS_ALL :за всички компании
STR_CONFIG_SETTING_TIMETABLE_ALLOW :{LTBLUE}Времеслужене на ПС: {ORANGE}{STRING.n}
STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}Разписанието в цикли вместо дни: {ORANGE}{STRING.n}
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :{LTBLUE}Покажи пристигането и заминаването в расписанията: {ORANGE}{STRING}
STR_CONFIG_SETTING_QUICKGOTO :{LTBLUE}Бързо създаване на задачите на превозните средства: {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}Стандартни релси: {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_RAIL :нормални релси
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_ELRAIL :електрифицирани релси
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MONORAIL :монорелси
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MAGLEV :маглев релси
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :първите налични
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :последните налични
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :най-използваните
@@ -1219,7 +1183,6 @@ STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :{LTBLUE}Пре
STR_CONFIG_SETTING_AI_BUILDS_SHIPS :{LTBLUE}Премахване на корабите за компютърния играч: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :{LTBLUE}Позволи ИИ в мрежова игра: {ORANGE}{STRING}
STR_CONFIG_SETTING_AI_MAX_OPCODES :{LTBLUE}#opcodes преди AI да е прекъснат: {ORANGE}{STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT :{LTBLUE}Интервал на сервиз е в проценти: {ORANGE}{STRING.n}
STR_CONFIG_SETTING_SERVINT_TRAINS :{LTBLUE}Интервал на сервиз за влакове: {ORANGE}{STRING} дни/%
@@ -1258,15 +1221,6 @@ 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_TOWN_FOUNDING :{LTBLUE}Построяване на градове в играта: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :забранено
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :разрешено
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :разрешено с избираем план на града
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :{LTBLUE}Разпределяне на дърветата в гората: {ORANGE}{STRING}
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :без {RED}(разваля дъскорезницата)
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :само в дъждовни гори
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :навсякъде
STR_CONFIG_SETTING_TOOLBAR_POS :{LTBLUE}Позиция на лентата за инструменти: {ORANGE}{STRING}
STR_CONFIG_SETTING_TOOLBAR_POS_LEFT :ляво
@@ -1338,7 +1292,7 @@ STR_INTRO_ONLINE_CONTENT :{BLACK}Пров
STR_INTRO_AI_SETTINGS :{BLACK}AI Настройки
STR_INTRO_QUIT :{BLACK}Излез
STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Започни нова игра. Ctrl+Click пропуска конфигурацията на картата
STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Започни нова игра
STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Отвори запасена игра
STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Нова игра, използвайки височинна карта като терен
STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Започни нова игра, използвайки предварително моделиран карта-свят
@@ -1368,9 +1322,8 @@ STR_QUIT_NO :{BLACK}Не
STR_OSNAME_WINDOWS :Windows
STR_OSNAME_DOS :ДОС
STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_OSX :ОС Х
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
@@ -1674,7 +1627,6 @@ STR_NETWORK_COMPANY_LIST_NEW_COMPANY :{WHITE}Нова
# Network client list
STR_NETWORK_CLIENTLIST_KICK :Изгони
STR_NETWORK_CLIENTLIST_BAN :Бан
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Дай пари
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Кажи на всички
STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :Кажи на компания
@@ -1703,7 +1655,6 @@ STR_COMPANY_VIEW_SET_PASSWORD :{BLACK}Пост
# Network chat
STR_NETWORK_CHAT_SEND :{BLACK}Изпращане
STR_NETWORK_CHAT_COMPANY_CAPTION :[Team] :
STR_NETWORK_CHAT_CLIENT_CAPTION :[Лично] {STRING}:
STR_NETWORK_CHAT_ALL_CAPTION :[All] :
STR_NETWORK_CHAT_COMPANY :[Team] {STRING}: {WHITE}{STRING}
@@ -1751,20 +1702,10 @@ STR_NETWORK_ERROR_CLIENT_SERVER_FULL :сървъръ
############ End of leave-in-this-order
# Network related errors
STR_NETWORK_SERVER_MESSAGE :*** {1:STRING}
############ Leave those lines in this order!!
STR_NETWORK_SERVER_MESSAGE_GAME_PAUSED :Играта е временно спряна ({STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_1 :Играта все още е временно спряна ({STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Играта все още е временно спряна ({STRING}, {STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Играта все още е временно спряна ({STRING}, {STRING}, {STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Играта е продължена ({STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :няма достатъчно играчи
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :клиент се свързва
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :ръчно
############ End of leave-in-this-order
STR_NETWORK_MESSAGE_CLIENT_LEAVING :напускам
STR_NETWORK_MESSAGE_CLIENT_JOINED :*** {STRING} се присъедини към играта
STR_NETWORK_MESSAGE_CLIENT_JOINED_ID :*** {STRING} се пресъедини към играта (Client #{2:NUM})
STR_NETWORK_MESSAGE_CLIENT_COMPANY_JOIN :*** {STRING} пое контрола над компания #{2:NUM}
STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} се присъедини като наблюдател
STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} създаде нова компания (#{2:NUM})
@@ -1795,7 +1736,6 @@ STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{SILVER}Общ
STR_CONTENT_DETAIL_TITLE :{SILVER}ИНФОРМАЦИЯ
STR_CONTENT_DETAIL_SUBTITLE_UNSELECTED :{SILVER}Не сте избрали този модул за сваляне
STR_CONTENT_DETAIL_SUBTITLE_SELECTED :{SILVER}Избрахте този модул за сваляне
STR_CONTENT_DETAIL_SUBTITLE_AUTOSELECTED :{SILVER}Тази зависимост е избрана за сваляне
STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}Вие вече имате това
STR_CONTENT_DETAIL_SUBTITLE_DOES_NOT_EXIST :{SILVER}Това съдържание е неизвестно и не може да се изтегли в OpenTTD
STR_CONTENT_DETAIL_UPDATE :{SILVER}Това е подмяна на съществуващ {STRING}
@@ -1808,7 +1748,6 @@ STR_CONTENT_DETAIL_FILESIZE :{SILVER}Гол
STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{SILVER}Избрани поради: {WHITE}{STRING}
STR_CONTENT_DETAIL_DEPENDENCIES :{SILVER}Зависимости: {WHITE}{STRING}
STR_CONTENT_DETAIL_TAGS :{SILVER}Тагове: {WHITE}{STRING}
STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD е построен без поддръжка на "zlib"...
STR_CONTENT_NO_ZLIB_SUB :{WHITE}... изтеглянето на съдържанието не е възможно!
# Order of these is important!
@@ -1819,7 +1758,6 @@ STR_CONTENT_TYPE_AI_LIBRARY :AI библио
STR_CONTENT_TYPE_SCENARIO :Сценарий
STR_CONTENT_TYPE_HEIGHTMAP :Карта
STR_CONTENT_TYPE_BASE_SOUNDS :Базови звуци
STR_CONTENT_TYPE_BASE_MUSIC :Базова музика
# Content downloading progress window
STR_CONTENT_DOWNLOAD_TITLE :{WHITE}Изтегляне на съдържанието...
@@ -1861,8 +1799,6 @@ STR_STATION_BUILD_SUPPLIES_CARGO :{BLACK}Запа
STR_JOIN_STATION_CAPTION :{WHITE}Присъедини станцията
STR_JOIN_STATION_CREATE_SPLITTED_STATION :{YELLOW}Направи отделна станция
STR_JOIN_WAYPOINT_CAPTION :{WHITE}Съедини пътеводител
STR_JOIN_WAYPOINT_CREATE_SPLITTED_WAYPOINT :{YELLOW}Построи отделен пътеводител
# Rail construction toolbar
STR_RAIL_TOOLBAR_RAILROAD_CONSTRUCTION_CAPTION :{WHITE}Конструкции за Двурелсов път
@@ -1874,7 +1810,7 @@ STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Пост
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK} Строеж на жп линия в режим Автоматичен
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Построй влаково депо (за купуване и обслужване на влакове)
STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Промяна ЖП линия на пункт
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Построй ЖП гара. Ctrl позволява съединяването на гари
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Построй ЖП гара
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Построй ЖП сигнализация
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Построй ЖП мост
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Строене на жп тунел
@@ -1943,16 +1879,16 @@ STR_BRIDGE_TUBULAR_SILICON :Тръбен,
# Road construction toolbar
STR_ROAD_TOOLBAR_ROAD_CONSTRUCTION_CAPTION :{WHITE}Пътно строителство
STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION :{WHITE}Трамвайно строителство
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION :{BLACK}Строене на път. Ctrl превключва между строене/премахване на път
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}Строене на трамвайна линия. Ctrl превключва между строене/премахване на линия.
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD :{BLACK}Построи отсечка от шосе използвайки Афто-шосе методът. Ctrl превключва между строене/премахване на път
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}Автоматично строене на трамвайна линия. Ctrl превключва между строене/разрушаване на линия
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION :{BLACK}Строене на път
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}Строене на трамвайна линия
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD :{BLACK}Построи отсечка от шосе използвайки Афто-шосе методът
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}Автоматично строене на трамвайна линия
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Строене на гараж (за строене и сервиз на МПС-та)
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Строене на трамвайно депо (за покупка и обслужване на трамваи)
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}Строене на автогара. Ctrl позволява съединяването на автогари
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}Строене на пътническа трамвайна спирка. Ctrl позволява съединяването на спирки
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}Строене на товарна гара. Ctrl позволява съединяването на гари
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}Строене на товарна трамвайна спирка. Ctrl позволява съединяването на спирки
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}Строене на автогара
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}Строене на пътническа трамвайна спирка
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}Строене на товарна гара
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}Строене на товарна трамвайна спирка
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}Активирай/Деактивирай еднопосочни пътища
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}Построй мост
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}Строене на мост за трамваи
@@ -1983,7 +1919,7 @@ STR_WATERWAYS_TOOLBAR_CAPTION_SE :{WHITE}Воде
STR_WATERWAYS_TOOLBAR_BUILD_CANALS_TOOLTIP :{BLACK}Построи канал.
STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP :{BLACK}Строеж на шлюзове
STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}Създай Корабно Депо (за закупуване и обслужване на кораби)
STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}Създай Пристанище. Ctrl позволява съединяването на пристанища
STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}Създай Пристанище
STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Поставете шамандура, използва се като отправна точка
STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}Построй акведукт
STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Определи водна площ.{}Построи канал, освем когато CTRL е натиснат на морско ниво, когато ще наводни околната среда в замяна
@@ -1998,7 +1934,7 @@ STR_STATION_BUILD_DOCK_CAPTION :{WHITE}Док
# Airport toolbar
STR_TOOLBAR_AIRCRAFT_CAPTION :{WHITE}Летища
STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}Строене на летище. Ctrl позволява съединяването на летища
STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}Строене на летище
# Airport construction window
STR_STATION_BUILD_AIRPORT_CAPTION :{WHITE}Избор на летище
@@ -2006,8 +1942,8 @@ STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}Голе
STR_STATION_BUILD_AIRPORT_SMALL_AIRPORT :{BLACK}Малко
STR_STATION_BUILD_AIRPORT_CITY_AIRPORT :{BLACK}Град
STR_STATION_BUILD_AIRPORT_METRO_AIRPORT :{BLACK}Метрополисно
STR_STATION_BUILD_AIRPORT_INTERNATIONAL_AIRPORT :{BLACK}Международно
STR_STATION_BUILD_AIRPORT_METRO_AIRPORT :{BLACK}Метрополисно летище
STR_STATION_BUILD_AIRPORT_INTERNATIONAL_AIRPORT :{BLACK}Международно летище
STR_STATION_BUILD_AIRPORT_COMMUTER_AIRPORT :{BLACK}Комютър
STR_STATION_BUILD_AIRPORT_INTERCONTINENTAL_AIRPORT :{BLACK}Междуконтинентално
STR_STATION_BUILD_AIRPORT_HELIPORT :{BLACK}Хеликоптерна площадка
@@ -2061,11 +1997,6 @@ STR_FOUND_TOWN_RANDOM_TOWN_TOOLTIP :{BLACK}Пост
STR_FOUND_TOWN_MANY_RANDOM_TOWNS :{BLACK}Много случайни градове
STR_FOUND_TOWN_RANDOM_TOWNS_TOOLTIP :{BLACK}Покриване на картата със случайно поставени градове
STR_FOUND_TOWN_NAME_TITLE :{YELLOW}Име на града:
STR_FOUND_TOWN_NAME_EDITOR_TITLE :{BLACK}Въведи име на град
STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Кликни за да въведеш име на града
STR_FOUND_TOWN_NAME_RANDOM_BUTTON :{BLACK}Произволно име
STR_FOUND_TOWN_NAME_RANDOM_TOOLTIP :{BLACK}Генерирай прозиволно име
STR_FOUND_TOWN_INITIAL_SIZE_TITLE :{YELLOW}Големина на града:
STR_FOUND_TOWN_INITIAL_SIZE_SMALL_BUTTON :{BLACK}Малък
@@ -2346,7 +2277,6 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Внимание: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Грешка: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Критично: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Фатална грешка в NewGRF е открита : {}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} няма да работи с версията на TTDPatch указана от OpenTTD.
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} е за {STRING} версията на TTD.
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} е проектиран да работи с {STRING}
@@ -2378,7 +2308,7 @@ STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Може
# NewGRF 'it's broken' warnings
STR_NEWGRF_BROKEN :{WHITE}Поведението на NewGRF '{STRING}' вероятно ще предизвика десинхронизции и/или сривове
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Смяна на дължината на превозното средство '{1:ENGINE}', когато не е в депо.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Влак '{VEHICLE}' на '{COMPANY}' има невалидна дължина. Това вероятно е породено от проблеми с NewGRFs. Играта може да загуби синхронизация или да забие.
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Влак '{VEHICLE}' на '{COMPANY}' има невалидна дължина. Това вероятно е породено от проблеми с NewGRFs. Играта може да загуби синхронизация или да забие.
STR_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}' дава невярна информация.
@@ -2406,8 +2336,6 @@ STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Паса
STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Поща през последния месец: {ORANGE}{COMMA}{BLACK} максимум: {ORANGE}{COMMA}
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Товар нужен за растеж на града:
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{STRING}{BLACK} необходим
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} необходим през зимата
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_LAST_MONTH :{ORANGE}{CARGO}{BLACK} доставено миналия месец
STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Лимит на шумът в градът: {ORANGE}{COMMA}{BLACK} най-много: {ORANGE}{COMMA}
STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Центриране на главния изглед спрямо разположението на града
STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Местни власти
@@ -2439,20 +2367,20 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Финанси
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Покупка на специални транспортни права
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Подкупи местните власти
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW} Иницииране на малка местна рекламна кампания, за привличане на повече пътници и товар към вашите транспортни услуги.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW} Иницииране на малка местна рекламна кампания, за привличане на повече пътници и товар към вашите транспортни услуги.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW} Иницииране на малка местна рекламна кампания, за привличане на повече пътници и товар към вашите транспортни услуги.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW} Финансиране преустройството на градската пътна мрежа. Ще породи значителен разрив на градския трафик за не повече от 6 месеца.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW} Строеж на статуя в чест на вашата компания.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW} Финансиране изграждането на нови комерсиални сгради в града.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} Покупка на едногодишни специални транспортни права в града. Градските власти ще позволят единствено на пътниците и товара да използват гарите на вашата компания.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Подкупването на местната власт за да увеличи рейтинга носи огромен риск ако бъдете хванати.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{WHITE}{STRING}{}{YELLOW} Иницииране на малка местна рекламна кампания, за привличане на повече пътници и товар към вашите транспортни услуги.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{WHITE}{STRING}{}{YELLOW} Иницииране на малка местна рекламна кампания, за привличане на повече пътници и товар към вашите транспортни услуги.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{WHITE}{STRING}{}{YELLOW} Иницииране на малка местна рекламна кампания, за привличане на повече пътници и товар към вашите транспортни услуги.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW} Финансиране преустройството на градската пътна мрежа. Ще породи значителен разрив на градския трафик за не повече от 6 месеца.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{WHITE}{STRING}{}{YELLOW} Строеж на статуя в чест на вашата компания.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{WHITE}{STRING}{}{YELLOW} Финансиране изграждането на нови комерсиални сгради в града.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{WHITE}{STRING}{}{YELLOW} Покупка на едногодишни специални транспортни права в града. Градските власти ще позволят единствено на пътниците и товара да използват гарите на вашата компания.{} Цена: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{WHITE}{STRING}{}{YELLOW} Подкупването на местната власт за да увеличи рейтинга носи огромен риск ако бъдете хванати.{} Цена: {CURRENCY}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Субсидии
STR_SUBSIDIES_OFFERED_TITLE :{BLACK}Субсидии за превоз на:
STR_SUBSIDIES_OFFERED_FROM_TO :{ORANGE}{STRING} от {STRING} до {STRING}{YELLOW} (от{DATE_SHORT})
STR_SUBSIDIES_NONE :{ORANGE}- Николко -
STR_SUBSIDIES_NONE :{ORANGE}Николко
STR_SUBSIDIES_SUBSIDISED_TITLE :{BLACK}Субсидирани превози на:
STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING} от {STRING} до {STRING}{YELLOW} ({COMPANY}{YELLOW}, до {DATE_SHORT})
STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Кликни върху услугата, за да се фокусира върху индустрията/града
@@ -2505,7 +2433,6 @@ STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :{BLACK}Пока
STR_STATION_VIEW_RENAME_STATION_CAPTION :Преименуване на станция
# Waypoint/buoy view window
STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT}
STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Смяна на името на пътната точка
STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Промяна на името на шамандурата
@@ -2556,9 +2483,7 @@ STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Стой
STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% е притежание на {COMPANY})
STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}Построй Централен Офис
STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Построяване на щабквартира на компанията
STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}Покажи Централния Офис
STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}Виж щабкравтирата на компанията
STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Преместване ЦК
STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Преместване централата на компанията другаде за 1% от стойноста на компанията
@@ -2810,9 +2735,6 @@ STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :локомот
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :локомотив за магниторелсов път
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY} Тегло: {WEIGHT_S}{}Скорост: {VELOCITY} Мощност: {POWER}{}Разход: {CURRENCY}/г.{}Капацитет: {CARGO}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY} Тегло: {WEIGHT_S}{}Скорост: {VELOCITY} Мощност: {POWER} Макс. Т.С.: {6:FORCE}{}Експлоатационни разноски: {4:CURRENCY}/год.{}Капацитет: {5:CARGO}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY} Макс. Скорост: {VELOCITY}{}Капацитет: {CARGO}, {CARGO}{}Експлоатационни разноски: {CURRENCY}/год.
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY} Макс. Скорост: {VELOCITY}{}Капацитет: {CARGO}{}Експлоатационни разноски: {CURRENCY}/год.
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Замяна {STRING}
@@ -2934,17 +2856,12 @@ STR_VEHICLE_DETAILS_ROAD_VEHICLE_RENAME :{BLACK}Преи
STR_VEHICLE_DETAILS_SHIP_RENAME :{BLACK}Наименувай кораба
STR_VEHICLE_DETAILS_AIRCRAFT_RENAME :{BLACK}Име на самолет
STR_VEHICLE_INFO_AGE_RUNNING_COST_YR :{BLACK}Години: {LTBLUE}{STRING}{BLACK} Експлоатационни разноски: {LTBLUE}{CURRENCY}/год.
# The next two need to stay in this order
STR_VEHICLE_INFO_AGE :{COMMA} годин{P а и} ({COMMA})
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} годин{P а и} ({COMMA})
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. скорост: {LTBLUE}{VELOCITY}
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_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Печалба за тази година: {LTBLUE}{CURRENCY} (за миналата: {CURRENCY})
STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Надеждност: {LTBLUE}{COMMA}% {BLACK}Разваляния от последното сервизиране: {LTBLUE}{COMMA}
STR_VEHICLE_INFO_CAPACITY :{BLACK}Капацитет: {LTBLUE}{CARGO}{3:STRING}
STR_VEHICLE_INFO_CAPACITY_MULT :{BLACK}Капацитет: {LTBLUE}{CARGO}{3:STRING} (x{4:NUM})
@@ -3150,11 +3067,6 @@ STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Това
STR_TIMETABLE_STATUS_ON_TIME :{BLACK}Това превознот средство е в момента на време
STR_TIMETABLE_STATUS_LATE :{BLACK}Това превознот средство е в момента с {STRING} закъснение
STR_TIMETABLE_STATUS_EARLY :{BLACK}Това превознот средство е в момента с {STRING} по-рано
STR_TIMETABLE_STATUS_NOT_STARTED :{BLACK}Това разписание още не е започнало
STR_TIMETABLE_STATUS_START_AT :{BLACK}Това разписание ще започне на {STRING}
STR_TIMETABLE_STARTING_DATE :{BLACK}Дата на започване
STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}Избери дата за начална точка на това разписание
STR_TIMETABLE_CHANGE_TIME :{BLACK}Промени времето
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Промени времетраенето на маркираната заповед
@@ -3168,29 +3080,10 @@ STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Reset th
STR_TIMETABLE_AUTOFILL :{BLACK}Афтонапълване
STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Запълни времевата таблица със стойностите от следващото пътуване (CTRL-клик за опит за запазване на времената за изчакване)
STR_TIMETABLE_ARRIVAL_ABBREVIATION :П:
STR_TIMETABLE_DEPARTURE_ABBREVIATION :З:
# Date window (for timetable)
STR_DATE_CAPTION :{WHITE}Задаване на дата
STR_DATE_SET_DATE :{BLACK}Задаване на дата
STR_DATE_SET_DATE_TOOLTIP :{BLACK}Използвай маркираната дата като начална за това разписание
STR_DATE_DAY_TOOLTIP :{BLACK}Избери ден
STR_DATE_MONTH_TOOLTIP :{BLACK}Избери месец
STR_DATE_YEAR_TOOLTIP :{BLACK}Избери година
# AI debug window
STR_AI_DEBUG :{WHITE}AI Debug
STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} (v{NUM})
STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Име на AI
STR_AI_DEBUG_RELOAD :{BLACK}Презареждане AI
STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Прекрати AI, презареди скрипта и рестартирай AI
STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Един от работещите AI се е счупил . Моля съобщете това на автора на AI със скрииншот на AI Debug Прозореца.
STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI Debug прозореца е на разположение само на сървъра
# AI configuration window
STR_AI_CONFIG_CAPTION :{WHITE}AI Конфигурация
@@ -3198,11 +3091,6 @@ STR_AI_CONFIG_LIST_TOOLTIP :{BLACK}Вскч
STR_AI_CONFIG_HUMAN_PLAYER :Човешки играч
STR_AI_CONFIG_RANDOM_AI :Случаен AI
STR_AI_CONFIG_MOVE_UP :{BLACK}Премести нагоре
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Премести маркирания AI нагоре в списъка
STR_AI_CONFIG_MOVE_DOWN :{BLACK}Премести надолу
STR_AI_CONFIG_MOVE_DOWN_TOOLTIP :{BLACK}Премести маркирания AI надолу в списъка
STR_AI_CONFIG_CHANGE :{BLACK}Изберете AI
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Зареди друг AI
STR_AI_CONFIG_CONFIGURE :{BLACK}Конфигуриране
@@ -3217,14 +3105,12 @@ STR_AI_LIST_VERSION :{BLACK}Верс
STR_AI_LIST_URL :{BLACK}URL: {STRING}
STR_AI_LIST_ACCEPT :{BLACK}Приеми
STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Избери маркирания AI
STR_AI_LIST_CANCEL :{BLACK}Отмени
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Не променяй AI
# AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}AI Параметри
STR_AI_SETTINGS_CLOSE :{BLACK}Затвори
STR_AI_SETTINGS_RESET :{BLACK}Рестартиране
# Vehicle loading indicators
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
@@ -3417,7 +3303,6 @@ STR_ERROR_AIRCRAFT_MUST_BE_STOPPED :{WHITE}Само
STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Влаковете могат да бъдат променяни само когато са спрени в депото
STR_ERROR_TRAIN_TOO_LONG :{WHITE}Влакът е прекалено дълъг
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}Не може да обърне посоката на превозното средство...
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}Не може да обърне превозно средство състоящо се от няколко елемента
STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Несъвместими ЖП линии
@@ -3555,7 +3440,6 @@ STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Влак
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Не може да обърне посоката на влак...
STR_ERROR_TRAIN_START_NO_CATENARY :Влака не може да тръгне, защото ЖП линията няма catenary
STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}Не може да обърне пътното превозно средство...
STR_ERROR_AIRCRAFT_IS_IN_FLIGHT :{WHITE}Самолета е във въздуха
@@ -3966,7 +3850,6 @@ STR_FORMAT_DATE_SHORT :{STRING} {NUM}
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
STR_FORMAT_BUOY_NAME :{TOWN} Шамандура
STR_FORMAT_COMPANY_NUM :(Компания {COMMA})
STR_FORMAT_GROUP_NAME :Група {COMMA}
STR_FORMAT_INDUSTRY_NAME :{1:STRING} {0:TOWN}
@@ -4042,6 +3925,7 @@ STR_BLACK_STRING :{BLACK}{STRING}
STR_BLACK_RAW_STRING :{BLACK}{STRING}
STR_WHITE_STRING :{WHITE}{STRING}
STR_TINY_BLACK_VEHICLE :{TINYFONT}{BLACK}{VEHICLE}
STR_TINY_RIGHT_ARROW :{TINYFONT}{RIGHTARROW}
STR_BLACK_1 :{BLACK}1
+14 -18
View File
@@ -565,8 +565,8 @@ STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Total:
STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Quantitat de vehicles que han donat beneficis durant el darrer any; Inclou els automòbils, trens, vaixells i avions
STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Quantitat de parts d'una es estació revisades. Cada part d'una estació (ex. estació de tren, parada d'autobús, aeroport) es compta, encara que estigui connectada com una sola estació.
STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}El benefici del vehicle amb els menors ingressos (només s'han considerat els vehicles més antics de 2 anys)
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Quantitat de diners fets durant el quatrimestre amb el mínim benefici dels darrers 12 quatrimestres
STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Quantitat de diners fets durant el quatrimestre amb el màxim benefici dels darrers 12 quatrimestres
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Quantitat de diners fets durant el mes amb el mínim benefici dels darrers 12 trimestres
STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Quantitat de diners fets durant el mes amb el màxim benefici dels darrers 12 trimestres
STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}Unitats de càrrega entregades en els darrers quatre trimestres.
STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}Tipus de càrrega entregada durant el darrer trimestre.
STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}Quantitats de diners en efectiu
@@ -1066,7 +1066,6 @@ STR_CITY_APPROVAL_PERMISSIVE :Permissiu
STR_CITY_APPROVAL_TOLERANT :Tolerant
STR_CITY_APPROVAL_HOSTILE :Hostil
STR_WARNING_NO_SUITABLE_AI :{WHITE}No hi ha IAs adequades disponibles...{}Pots descarregar diverses IAs via el sistema de 'Contingut en línia'
STR_WARNING_DIFFICULTY_TO_CUSTOM :{WHITE}Aquesta acció canviarà el nivell de dificultat a personalitzat
# Advanced settings window
@@ -1116,10 +1115,6 @@ STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Permet
STR_CONFIG_SETTING_NONUNIFORM_STATIONS :{LTBLUE}Estacions no uniformes: {ORANGE}{STRING}
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Multiplicador de pes per contenidor per simular trens pesats: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Factor de velocitat dels avions: {ORANGE}1 / {STRING}
STR_CONFIG_SETTING_PLANE_CRASHES :{LTBLUE}Nombre d'accidents d'avió: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :cap
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :reduït
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :normal
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{LTBLUE}Permet situar parades en carreteres que són propietat de la població: {ORANGE}{STRING}
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :{LTBLUE}Permet circular a través de les parades en carreteres propietat de competidors: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Permet construir estacions annexes: {ORANGE}{STRING}
@@ -1206,6 +1201,10 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}Mostra
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :{LTBLUE}Mostra l'arribada i la sortida als horaris: {ORANGE}{STRING}
STR_CONFIG_SETTING_QUICKGOTO :{LTBLUE}Creació ràpida d'ordres per a vehicles: {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}Tipus de via predeterminada (en un joc nou/joc desat): {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_RAIL :Via Normal
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_ELRAIL :Via Electrificada
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MONORAIL :Monorail
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MAGLEV :Maglev
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :La primera disponible
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :La darrera disponible
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :La més utilitzada
@@ -2371,7 +2370,6 @@ STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Acció desconeg
STR_NEWGRF_ERROR_INVALID_ID :Intenta utilitzar una ID invàlida.
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} conté un sprite corrupte. Tots els sprites corruptes seran mostrats amb un interrogant vermell (?).
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Conté múltiples Accions 8 entrades.
STR_NEWGRF_ERROR_READ_BOUNDS :Lectura després de la fi d'un pseudo-sprite.
# NewGRF related 'general' warnings
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Alerta!
@@ -2452,14 +2450,14 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financia nous e
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Compra els drets de transport en exclusiva
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Suborna les autoritats locals
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Inicia una petita campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Inicia una mitjana campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Inicia una gran campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financia la reconstrucció de la xarxa local de carrers. Dificulta notablement el trànsit durant 6 mesos.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construeix una estàtua en honor a la teva companyia.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Financia la construcció de nous edificis comercials a la població.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Compra per 1 any els drets exclusius de transport en la població. La autoritat local només permetrà utilitzar les instal·lacions de la teva companyia de transports als passatgers i les mercaderies.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Suborna les autoritats locals per incrementar el teu rati, a risc de greus penalitzacions si et pesquen!!.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Inicia una petita campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Inicia una mitjana campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Inicia una gran campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW}Financia la reconstrucció de la xarxa local de carrers. Dificulta notablement el trànsit durant 6 mesos.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{WHITE}{STRING}{}{YELLOW}Construeix una estàtua en honor a la teva companyia.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{WHITE}{STRING}{}{YELLOW}Financia la construcció de nous edificis comercials a la població.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{WHITE}{STRING}{}{YELLOW}Compra per 1 any els drets exclusius de transport en la població. La autoritat local només permetrà utilitzar les instal·lacions de la teva companyia de transports als passatgers i les mercaderies.{}Cost: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{WHITE}{STRING}{}{YELLOW}Suborna les autoritats locals per incrementar el teu rati, a risc de greus penalitzacions si et pesquen!!.{}Cost: {CURRENCY}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Subvencions
@@ -3210,8 +3208,6 @@ STR_DATE_YEAR_TOOLTIP :{BLACK}Seleccio
STR_AI_DEBUG :{WHITE}Depuració IA
STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} (v{NUM})
STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Nom de la IA
STR_AI_DEBUG_SETTINGS :{BLACK}Paràmetres IA
STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Canvia els paràmetres de la IA
STR_AI_DEBUG_RELOAD :{BLACK}Recarrega IA
STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Mata la IA, recarrega l'script, i reinicia la IA
+12 -8
View File
@@ -1296,6 +1296,10 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}Pokaži
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :{LTBLUE}Pokaži dolaske i odlaske u voznim redovima: {ORANGE}{STRING}
STR_CONFIG_SETTING_QUICKGOTO :{LTBLUE}Brzo kreiranje naredbi vozila: {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}Inicijalna vrsta pruge (poslije nove igre/podizanja igre): {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_RAIL :Normalna pruga
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_ELRAIL :Elektrificirana pruga
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MONORAIL :Jednotračna pruga
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MAGLEV :Maglev
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Prva dostupna
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Zadnja dostupna
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Najčešće korištena
@@ -2541,14 +2545,14 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financiraj nove
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Kupi ekskluzivna prava prijevozna
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Podmiti lokalnu samoupravu
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Pokreni malu oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Pokreni srednju oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Pokreni veliku oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financiraj popravak gradske mreže prometnica. Uzrokuje značajne poremećaje u cestovnom prometu do 6 mjeseci.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Izgradi kip u čast svoje tvrtke.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Financiraj izgradnju novih poslovnih prostora u gradu.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Kupi jednogodišnje ekskluzivno pravo prijevoza u gradu. Gradska vlast dopustit će putnicima i teretu korištenje isključivo postaja tvoje tvrtke.{} Cijena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Podmiti lokalnu samoupravu kako bi povećao ugled, riskirajući ozbiljne kazne ako te uhvate.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Pokreni malu oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Pokreni srednju oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Pokreni veliku oglasnu kampanju, kako bi privukao više putnika i tereta za svoje prijevozne usluge.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW}Financiraj popravak gradske mreže prometnica. Uzrokuje značajne poremećaje u cestovnom prometu do 6 mjeseci.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{WHITE}{STRING}{}{YELLOW}Izgradi kip u čast svoje tvrtke.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{WHITE}{STRING}{}{YELLOW}Financiraj izgradnju novih poslovnih prostora u gradu.{} Trošak: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{WHITE}{STRING}{}{YELLOW}Kupi jednogodišnje ekskluzivno pravo prijevoza u gradu. Gradska vlast dopustit će putnicima i teretu korištenje isključivo postaja tvoje tvrtke.{} Cijena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{WHITE}{STRING}{}{YELLOW}Podmiti lokalnu samoupravu kako bi povećao ugled, riskirajući ozbiljne kazne ako te uhvate.{} Trošak: {CURRENCY}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Subvencije
+15 -19
View File
@@ -632,8 +632,8 @@ STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Celkem:
STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Počet dopravních prostředků které vykázaly poslední rok zisk; zahrnuje silniční vozidla, vlaky, lodě a letadla
STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Počet součástí obsluhovaných stanic. Každá součást stanice (napr. nádraží, autobusová zastávka, letiště) se započítává, i když patří jediné stanici
STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Minimální hrubý zisk (= s provoz. náklady) vozidla s nejnižším příjmem (staršího 2 let)
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Čistý zisk (= bez provoz. nakladu) v nejslabším čtvrtletí za posledních 12 čtvrtletí
STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Čistý zisk ve čtvrtletí s největším příjmem za posledních 12 čtvrtletí
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Čistý zisk (= bez provoz. nakladu) v nejslabším měsíci za posledních 12 čtvrtletí
STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Čistý zisk v měsíci s největším příjmem za posledních 12 čtvrtletí
STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}Počet doručených jednotek nákladu za poslední rok (4Q)
STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}Počet doručených druhu nákladu za poslední 3 měsíce (1Q)
STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}Současná hotovost společnosti
@@ -1133,7 +1133,6 @@ STR_CITY_APPROVAL_PERMISSIVE :nezaujatý
STR_CITY_APPROVAL_TOLERANT :tolerantní
STR_CITY_APPROVAL_HOSTILE :zaujatý
STR_WARNING_NO_SUITABLE_AI :{WHITE}Žádné vhodné AI není k dispozici...{}některé Ai lze stáhnout pomocí služby 'Stahovat součásti'
STR_WARNING_DIFFICULTY_TO_CUSTOM :{WHITE}Tato akce změnila úroveň obtížnosti na 'vlastní'
# Advanced settings window
@@ -1183,10 +1182,6 @@ STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Umožni
STR_CONFIG_SETTING_NONUNIFORM_STATIONS :{LTBLUE}Nejednolité stanice: {ORANGE}{STRING}
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Pro simulaci těžkých vlaků vynásobit hmotnost nákladu: {ORANGE}{STRING}x
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Činitel rychlosti letadel: {ORANGE}1/{STRING}
STR_CONFIG_SETTING_PLANE_CRASHES :{LTBLUE}Počet leteckých havárií: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :žádné
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :snížené
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :normální
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{LTBLUE}Stavba průjezdných zastávek na obecních silnicích: {ORANGE}{STRING}
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :{LTBLUE}Stavba průjezdných zastávek na silnicích vlastněných konkurencí: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Povolit stavění přilehlých stanic: {ORANGE}{STRING}
@@ -1273,6 +1268,10 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}Zobrazi
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :{LTBLUE}Ukazovat v jízdním řádu příjezdy a odjezdy: {ORANGE}{STRING}
STR_CONFIG_SETTING_QUICKGOTO :{LTBLUE}Rychlejší zadávání příkazů pro vozidla: {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}Výchozí druh kolejí (v nové hře/po načtení hry): {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_RAIL :normální koleje
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_ELRAIL :elektrifikované koleje
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MONORAIL :monorail
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MAGLEV :maglev
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :první dostupný
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :poslední dostupný
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :nejpoužívanější
@@ -1835,7 +1834,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Hra stále poza
STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Hra obnovena ({STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :nedostatek hráčů
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :připojuji klienty
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :ručně
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manuál
############ End of leave-in-this-order
STR_NETWORK_MESSAGE_CLIENT_LEAVING :odpojování
STR_NETWORK_MESSAGE_CLIENT_JOINED :*** {STRING} jde hrát
@@ -2438,7 +2437,6 @@ STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Neznámá vlast
STR_NEWGRF_ERROR_INVALID_ID :Pokus o použití neplatného ID.
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} obsahuje poškozený sprite. Všechny takové se zobrazí jako červený otazník (?).
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Obsahuje víc GRF akcí 8.
STR_NEWGRF_ERROR_READ_BOUNDS :Čtení za koncem pseudo-spritu.
# NewGRF related 'general' warnings
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Varování!
@@ -2519,14 +2517,14 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Dotovat nové b
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Koupit výhradní právo k přepravě
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Podplatit místní správu
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Zahájit malou reklamní kampaň, která přiláká více cestujících a nákladu.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Zahájit středně velkou reklamní kampaň, která přiláká více cestujících a nákladu.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Zahájit velkou reklamní kampaň, která přiláká více cestujících a nákladu.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Dotovat rekonstrukci místní silniční sítě. Způsobí problémy v dopravě po dobu 6 měsíců.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Postavit sochu vlastníka jako poctu tvé společnosti.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Dotovat stavbu nových obchodních budov ve městě.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Koupit roční výhradní práva k přepravě zboží z tohoto města po dobu jednoho roku. Místní správa dovolí cestujícím a nákladu používat pouze stanice tvé společnosti.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Podplatit místní správu pro zvýšení hodnocení společnosti. Riziko trestu v případě přistižení.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Zahájit malou reklamní kampaň, která přiláká více cestujících a nákladu.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Zahájit středně velkou reklamní kampaň, která přiláká více cestujících a nákladu.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Zahájit velkou reklamní kampaň, která přiláká více cestujících a nákladu.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW}Dotovat rekonstrukci místní silniční sítě. Způsobí problémy v dopravě po dobu 6 měsíců.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{WHITE}{STRING}{}{YELLOW}Postavit sochu vlastníka jako poctu tvé společnosti.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{WHITE}{STRING}{}{YELLOW}Dotovat stavbu nových obchodních budov ve městě.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{WHITE}{STRING}{}{YELLOW}Koupit roční výhradní práva k přepravě zboží z tohoto města po dobu jednoho roku. Místní správa dovolí cestujícím a nákladu používat pouze stanice tvé společnosti.{}Cena: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{WHITE}{STRING}{}{YELLOW}Podplatit místní správu pro zvýšení hodnocení společnosti. Riziko trestu v případě přistižení.{}Cena: {CURRENCY}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Dotace
@@ -3283,8 +3281,6 @@ STR_DATE_YEAR_TOOLTIP :{BLACK}Vybrat r
STR_AI_DEBUG :{WHITE}Ladění AI
STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} (v{NUM})
STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Název AI
STR_AI_DEBUG_SETTINGS :{BLACK}AI Nastavení
STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Změnit nastavení AI
STR_AI_DEBUG_RELOAD :{BLACK}Obnovit AI
STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Zničit AI, znovu nahrát jeho skript a restartovat AI
+13 -9
View File
@@ -1200,6 +1200,10 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}Vis kø
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :{LTBLUE}Vis ankomst og afgang i tidsplaner: {ORANGE}{STRING}
STR_CONFIG_SETTING_QUICKGOTO :{LTBLUE}Hurtig oprettelse af køretøjsordrer: {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}Standard skinnetype (efter nyt spil/hentet spil): {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_RAIL :Normal jernbane
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_ELRAIL :Elektrificeret jernbane
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MONORAIL :Monorail
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MAGLEV :Magnetskinne
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Første tilgængelige
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Sidste tilgængelige
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Mest anvendte
@@ -2443,14 +2447,14 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Finansiér opf
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Køb eksklusive transportrettigheder i byen
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Bestik de lokale myndigheder
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW} Start en lille reklamekampagne for at tiltrække flere passagerer og last til dine stationer.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Start en mellem reklamekampagne, for at tiltrække flere passagerer og last til dine stationer.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Start en stor reklamekampagne, for at tiltrække flere passagerer og last til dine stationer.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Finansiér vejfornyelse i midtbyen. Forårsager stor forstyrrelse af vejnettet i de næste 6 måneder.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Byg en statue til ære for dit selskab.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Finansiér opførelse af forretningsbygninger i byen.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Køb et års eksklusive rettigheder til transport i byen. De lokale myndigheder vil kun tillade passagerer og last at bruge dine stationer.{}Prist: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bestik de lokale myndigheder til at hæve din bedømmelse, med risiko for en stor straf hvis det bliver opdaget.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{WHITE}{STRING}{}{YELLOW} Start en lille reklamekampagne for at tiltrække flere passagerer og last til dine stationer.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Start en mellem reklamekampagne, for at tiltrække flere passagerer og last til dine stationer.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Start en stor reklamekampagne, for at tiltrække flere passagerer og last til dine stationer.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW}Finansiér vejfornyelse i midtbyen. Forårsager stor forstyrrelse af vejnettet i de næste 6 måneder.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{WHITE}{STRING}{}{YELLOW}Byg en statue til ære for dit selskab.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{WHITE}{STRING}{}{YELLOW}Finansiér opførelse af forretningsbygninger i byen.{}Pris: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{WHITE}{STRING}{}{YELLOW}Køb et års eksklusive rettigheder til transport i byen. De lokale myndigheder vil kun tillade passagerer og last at bruge dine stationer.{}Prist: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{WHITE}{STRING}{}{YELLOW}Bestik de lokale myndigheder til at hæve din bedømmelse, med risiko for en stor straf hvis det bliver opdaget.{}Pris: {CURRENCY}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Tilskudsordninger
@@ -3326,7 +3330,7 @@ STR_ERROR_CAN_T_RAISE_LAND_HERE :{WHITE}Kan ikke
STR_ERROR_CAN_T_LOWER_LAND_HERE :{WHITE}Kan ikke sænke landet her...
STR_ERROR_CAN_T_LEVEL_LAND_HERE :{WHITE}Kan ikke hæve landet her...
STR_ERROR_EXCAVATION_WOULD_DAMAGE :{WHITE}Udgravning ville skade en tunnel
STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}... allerede ved havoverfladen
STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}Allerede ved havoverfladen
STR_ERROR_TOO_HIGH :{WHITE}... for højt
STR_ERROR_ALREADY_LEVELLED :{WHITE}... allerede fladt
+16 -20
View File
@@ -1065,7 +1065,6 @@ STR_CITY_APPROVAL_PERMISSIVE :Tolerant
STR_CITY_APPROVAL_TOLERANT :Neutraal
STR_CITY_APPROVAL_HOSTILE :Negatief
STR_WARNING_NO_SUITABLE_AI :{WHITE}Geen bruikbare AIs beschikbaar...{}U kunt diverse AI's downloaden via het 'Online Content' systeem
STR_WARNING_DIFFICULTY_TO_CUSTOM :{WHITE}Deze actie past de moeilijkheidsgraad aan naar 'aangepast'
# Advanced settings window
@@ -1077,7 +1076,7 @@ STR_CONFIG_SETTING_DISABLED :uitgeschakeld
STR_CONFIG_SETTING_VEHICLESPEED :{LTBLUE}Geef voertuigsnelheid weer in statusbalk: {ORANGE}{STRING}
STR_CONFIG_SETTING_BUILDONSLOPES :{LTBLUE}Bouwen op hellingen en kusten toestaan: {ORANGE}{STRING}
STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Omgeving aanpassen onder gebouwen, spoorwegen, enz. toestaan (autoslope): {ORANGE}{STRING}
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}Gebruik meer realistische handelsgebieden: {ORANGE}{STRING}
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}Gebruik realistisch handelsgebied: {ORANGE}{STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}Sta verwijderen van meer stedelijke wegen, bruggen, enz. toe: {ORANGE}{STRING}
STR_CONFIG_SETTING_MAMMOTHTRAINS :{LTBLUE}Zeer lange treinen toestaan: {ORANGE}{STRING}
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :{LTBLUE}Trein acceleratie model: {ORANGE}{STRING}
@@ -1115,10 +1114,6 @@ STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Geld ge
STR_CONFIG_SETTING_NONUNIFORM_STATIONS :{LTBLUE}Vrij gevormde stations: {ORANGE}{STRING}
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Gewichtsverhouding voor vracht om zware treinen te simuleren: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Vliegtuigsnelheidsverhouding: {ORANGE}1 / {STRING}
STR_CONFIG_SETTING_PLANE_CRASHES :{LTBLUE}Aantal vliegtuigcrashes: {ORANGE}{STRING}
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Geen
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Verminderd
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normaal
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{LTBLUE}Sta toe dat doorrijwegstops worden geplaatst op door stad beheerde wegen: {ORANGE}{STRING}
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :{LTBLUE}Sta doorrijhaltes op wegen van tegenstanders toe: {ORANGE}{STRING}
STR_CONFIG_SETTING_ADJACENT_STATIONS :{LTBLUE}Bouwen van aangrenzende stations toestaan: {ORANGE}{STRING}
@@ -1177,7 +1172,7 @@ STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :{LTBLUE}Functie
STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :Zoom kaart
STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Scroll kaart
STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Uit
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Muiswielsnelheid: {ORANGE}{STRING}
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Kaartmuiswielsnelheid: {ORANGE}{STRING}
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU :{LTBLUE}Rechtsklikemulatie: {ORANGE}{STRING}
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND :Command-klik
@@ -1205,6 +1200,10 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}Toon di
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :{LTBLUE}Toon aankomst- en vertrektijden in dienstregeling: {ORANGE}{STRING}
STR_CONFIG_SETTING_QUICKGOTO :{LTBLUE}Snel voertuigorders maken: {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}Standaard spoorsoort (bij nieuw of opgeslagen spel): {ORANGE}{STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_RAIL :Normaal spoor
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_ELRAIL :Geëlektrificeerd spoor
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MONORAIL :Monorail
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MAGLEV :Zweefspoor
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Eerst beschikbare
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Laatst beschikbare
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Meest gebruikte
@@ -1270,7 +1269,7 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :toestaan
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :toestaan, eigen wegpatroon
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :{LTBLUE}Plaatsing van bomen in het spel: {ORANGE}{STRING}
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :geen {RED}(houtzagerij werkt niet)
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :geen {RED}(breekt houtzagerij)
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :alleen in regenwouden
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :overal
@@ -2013,7 +2012,7 @@ STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}Kies gro
STR_STATION_BUILD_AIRPORT_SMALL_AIRPORT :{BLACK}Klein
STR_STATION_BUILD_AIRPORT_CITY_AIRPORT :{BLACK}Stad
STR_STATION_BUILD_AIRPORT_METRO_AIRPORT :{BLACK}Hoofdstedelijk
STR_STATION_BUILD_AIRPORT_METRO_AIRPORT :{BLACK}Hoofdstedelijk vliegveld
STR_STATION_BUILD_AIRPORT_INTERNATIONAL_AIRPORT :{BLACK}Internationaal vliegveld
STR_STATION_BUILD_AIRPORT_COMMUTER_AIRPORT :{BLACK}Pendel
STR_STATION_BUILD_AIRPORT_INTERCONTINENTAL_AIRPORT :{BLACK}Intercontinentaal
@@ -2370,7 +2369,6 @@ STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Onbekende 'Acti
STR_NEWGRF_ERROR_INVALID_ID :Poging tot gebruik ongeldig ID.
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} bevat een ongeldige afbeelding. Alle ongeldige afbeeldingen worden getoond als een rood vraagteken (?).
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Bevat meerdere 'Action 8'-elementen.
STR_NEWGRF_ERROR_READ_BOUNDS :Lees voorbij einde van pseudo-sprite.
# NewGRF related 'general' warnings
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Waarschuwing!
@@ -2451,14 +2449,14 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Betaal nieuwe g
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Koop exclusieve transportrechten
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Koop de gemeenteraad om
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Begin een kleine reclamecampagne, om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Begin een middelgrote advertentiecampagne, om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Begin een grote advertentiecampagne, om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Betaal een vernieuwing van het wegennetwerk. Veroorzaakt tot 6 maanden lang een aanzienlijke verstoring van het wegverkeer.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Bouw een standbeeld ter ere van jouw bedrijf.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Betaal de bouw van nieuwe commerciële gebouwen in de stad.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Koop 1 jaar exclusieve transportrechten in deze plaats. De gemeenteraad staat passagiers en vracht aleeen toe om jouw stations te gebruiken.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Koop het plaatselijk gezag om om je reputatie te verhogen, met het gevaar van een strenge sanctie, wanneer je gepakt wordt.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Begin een kleine reclamecampagne, om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Begin een middelgrote advertentiecampagne, om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{WHITE}{STRING}{}{YELLOW}Begin een grote advertentiecampagne, om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW}Betaal een vernieuwing van het wegennetwerk. Veroorzaakt tot 6 maanden lang een aanzienlijke verstoring van het wegverkeer.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{WHITE}{STRING}{}{YELLOW}Bouw een standbeeld ter ere van jouw bedrijf.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{WHITE}{STRING}{}{YELLOW}Betaal de bouw van nieuwe commerciële gebouwen in de stad.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{WHITE}{STRING}{}{YELLOW}Koop 1 jaar exclusieve transportrechten in deze plaats. De gemeenteraad staat passagiers en vracht aleeen toe om jouw stations te gebruiken.{}Kosten: {CURRENCY}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{WHITE}{STRING}{}{YELLOW}Koop het plaatselijk gezag om om je reputatie te verhogen, met het gevaar van een strenge sanctie, wanneer je gepakt wordt.{}Kosten: {CURRENCY}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Subsidies
@@ -3209,8 +3207,6 @@ STR_DATE_YEAR_TOOLTIP :{BLACK}Kies jaa
STR_AI_DEBUG :{WHITE}AI Debug
STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} (v{NUM})
STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Naam computerspeler
STR_AI_DEBUG_SETTINGS :{BLACK}AI Instellingen
STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Wijzig de instelling van de AI
STR_AI_DEBUG_RELOAD :{BLACK}Herlaad computerspeler
STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Verwijder computerspeler, herlaad het script en herstart computerspeler

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