mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2026-09-15 12:59:45 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d585b433d5 |
@@ -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();
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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:
|
||||
|
||||
@@ -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,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,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
Outputs="..\bin\lang\vietnamese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\welsh.txt"
|
||||
>
|
||||
|
||||
@@ -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 "$(InputPath)"
"
|
||||
AdditionalDependencies="..\src\lang\english.txt"
|
||||
Outputs="..\bin\lang\vietnamese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\welsh.txt"
|
||||
>
|
||||
|
||||
@@ -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"
|
||||
>
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
|
||||
#include "ai_gamesettings.hpp"
|
||||
#include "../../settings_internal.h"
|
||||
#include "../../economy_func.h"
|
||||
|
||||
/* static */ bool AIGameSettings::IsValid(const char *setting)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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:
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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"; }
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
@@ -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).
|
||||
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 %+");
|
||||
|
||||
|
||||
|
||||
@@ -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++];
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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...
|
||||
|
||||
@@ -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}العروض
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
Reference in New Issue
Block a user