Compare commits

..
133 Commits
Author SHA1 Message Date
rubidium 5ee0806b18 (svn r19008) -Release: 1.0.0-beta4 2010-02-04 17:17:36 +00:00
rubidium d11bb39f43 (svn r19007) -Prepare: 1.0.0-beta4 2010-02-04 17:11:46 +00:00
rubidium cc8fd6e910 (svn r19006) -Fix (r18970): default rail type determination failed causing 'A'/SHIFT-F4 not to work the first time. As rail types can now be anything the explicit options for the different railtypes have been removed, leaving the most used rail type and first/last available rail types. 2010-02-04 17:08:48 +00:00
rubidium fbb9b4760a (svn r19005) -Codechange: make animated cursors have a bit set instead of using negative numbers that are passed as uints, then cast again to be compared as ints before being inverted to be actually used. Also fixes a couple of 'integer conversion resulted in truncation' warnings ICC spewed. 2010-02-04 15:42:38 +00:00
rubidium 09730847ec (svn r19004) -Codechange: silence ICC warning that 'integer conversion resulted in a change of sign' 2010-02-04 15:27:25 +00:00
rubidium e62b122bb1 (svn r19003) -Fix [FS#3194]: [OSX] OS X 10.5+ does not (always?) handle 8bpp graphics in a suitable manner. This is actually not a fix but a nasty work around; you can still easily trigger the bug/issue by overriding the 'default' blitter choice (Brad Oliver). I can/have not test(ed) (including compiling) this fix.
Bjarni once suggested that 8bpp works for him on 10.5, so apparantly not all 10.5+ does not handle 8bpp graphics. Nevertheless, it seemed that for some systems the already existing 'does this support 8bpp' did not work, i.e. the OS API seemed to suggest that 8bpp worked when it actually did not. So, I don't know what is going on precisely here but it's definitely not nice to suggest that it supports 8bpp when it doesn't. So just ditch 8bpp support for anything that we suspect might not support 8bpp...
2010-02-04 14:32:12 +00:00
rubidium 36298c1454 (svn r19002) -Fix [FS#1140]: [OSX] Problems with scrolling touchpad (Peter Thorson). I can/have not test(ed) it, it cannot break non OSX builds. 2010-02-04 14:21:20 +00:00
rubidium 228da0ccd3 (svn r19001) -Fix: some GCC compile warnings 2010-02-04 13:35:20 +00:00
smatz 2b8f7f2078 (svn r19000) -Cleanup: remove redundant check 2010-02-04 00:40:11 +00:00
rubidium 68b908a27c (svn r18999) -Change: update some of the defaults (Eddi) 2010-02-03 23:45:19 +00:00
rubidium 9f49882de7 (svn r18998) -Update: the credits 2010-02-03 23:08:46 +00:00
rubidium 3075b3d1ca (svn r18997) -Fix [FS#3588] (r18608): off-by-one in the music playlist (Cirdan) 2010-02-03 22:07:03 +00:00
rubidium d818c7c7b1 (svn r18996) -Fix (r18993, r18994): MSVC 64 bits had somethings to complain about 2010-02-03 21:45:48 +00:00
translators a61cd5ad85 (svn r18995) -Update from WebTranslator v3.0:
greek - 8 changes by fumantsu
hebrew - 17 changes by dnd_man
russian - 6 changes by Lone_Wolf
2010-02-03 18:45:12 +00:00
rubidium 2db44fc18e (svn r18994) -Change: content mirroring support (based on work by TrueBrain). 2010-02-03 18:42:23 +00:00
rubidium c75f19f40b (svn r18993) -Codechange: allow allocating multiple items in a SmallVector with one call. 2010-02-03 17:25:56 +00:00
rubidium e437362c7b (svn r18992) -Codechange: move the file opening/closing out of the content download function 2010-02-03 17:15:35 +00:00
rubidium 589aee0cee (svn r18991) -Codechange: simplify memory management of DownloadSelectedContent 2010-02-03 17:12:19 +00:00
peter1138 f1458df1ca (svn r18990) -Codechange: [NewGRF] Add rail type map bounds checking to RailType[Change|Reserve]Info(). 2010-02-03 08:02:07 +00:00
peter1138 9950fc1ede (svn r18989) -Codechange: [NewGRF] Initialise rail type map with default rail types. 2010-02-03 07:58:43 +00:00
yexo 39c1de23d6 (svn r18988) -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 2010-02-02 23:11:10 +00:00
terkhen 2798fdf082 (svn r18987) -Fix: [NoAI] Make building long rails fail for AIs if there is an obstacle in the way. 2010-02-02 22:27:03 +00:00
terkhen b02a522038 (svn r18986) -Fix (r18803): Make building long roads fail for AIs if there is an obstacle in the way. 2010-02-02 21:25:01 +00:00
translators 8d4773be94 (svn r18985) -Update from WebTranslator v3.0:
basque - 1 changes by Thadah
hebrew - 33 changes by dnd_man
lithuanian - 1 changes by BlinK_
swedish - 8 changes by Chrill
vietnamese - 4 changes by nglekhoi
welsh - 3 changes by Rufus
2010-02-02 18:45:20 +00:00
terkhen 8849943da5 (svn r18984) -Add: Viewport place methods for dragging a line with limited size. 2010-02-01 23:13:15 +00:00
translators 615324130b (svn r18983) -Update from WebTranslator v3.0:
traditional_chinese - 11 changes by josesun
dutch - 3 changes by habell
greek - 9 changes by fumantsu
lithuanian - 4 changes by BlinK_
norwegian_bokmal - 2 changes by CyberKenny
norwegian_nynorsk - 2 changes by mantaray
vietnamese - 5 changes by nglekhoi
2010-02-01 18:45:24 +00:00
smatz 340a93819a (svn r18982) -Remove: svnup.sh - no active dev uses it, modifying it causes breakage when it's used to update 2010-02-01 18:44:04 +00:00
smatz 78ffa78ee7 (svn r18981) -Change: show empty query after creating new group (instead of 'Group nnn') 2010-02-01 18:38:28 +00:00
rubidium 06e80d0a1f (svn r18980) -Codechange: preceeding -> preceding (spelling) 2010-02-01 12:43:28 +00:00
matthijs 108b86282f (svn r18979) -Fix: Typo in console save command output. 2010-02-01 12:29:49 +00:00
smatz d155794605 (svn r18978) -Fix [FS#3584](r14753): possible invalid memory access when merging companies 2010-02-01 00:10:52 +00:00
terkhen 68fc39ea1d (svn r18977) -Doc: Add comments to ViewportDragDropSelectionProcess. 2010-01-31 22:37:20 +00:00
frosch c23e4e4538 (svn r18976) -Fix: Estimating the cost of removing statues could clear the presence flag in the town. 2010-01-31 20:56:24 +00:00
frosch 5f4f562d53 (svn r18975) -Cleanup: CMD_REMOVE_ROAD is unused. 2010-01-31 20:55:10 +00:00
frosch cbbe311cea (svn r18974) -Fix [FS#3578]: CMD_BUILD_ROAD missed CMD_AUTO. Also do not access tiles anymore after clearing them; that fails either in test or exec run. 2010-01-31 20:28:36 +00:00
translators 8e6096931a (svn r18973) -Update from WebTranslator v3.0:
catalan - 6 changes by arnau
hebrew - 8 changes by dnd_man
italian - 2 changes by lorenzodv
lithuanian - 12 changes by BlinK_
portuguese - 6 changes by JayCity
2010-01-31 18:45:18 +00:00
peter1138 2b820780a1 (svn r18972) -Add: [NewGRF] Per-rail type speed limits. 2010-01-31 13:17:29 +00:00
peter1138 2331ccd589 (svn r18971) -Fix: Train acceleration for original acceleration model wasn't updated if the train's power changed. 2010-01-31 12:56:32 +00:00
peter1138 990cbe6263 (svn r18970) -Codechange: Increase number of possible rail types to 16. 2010-01-30 21:59:22 +00:00
peter1138 32ef582c37 (svn r18969) -Add: [NewGRF] NewGRF-settable rail type properties. 2010-01-30 21:49:22 +00:00
translators 84c6616ee0 (svn r18968) -Update from WebTranslator v3.0:
bulgarian - 5 changes by Tvel
czech - 3 changes by ReisRyos
finnish - 2 changes by jpx_
french - 2 changes by glx
german - 2 changes by planetmaker
hungarian - 4 changes by IPG
indonesian - 7 changes by fanioz
italian - 4 changes by lorenzodv
korean - 2 changes by junho2813
lithuanian - 6 changes by BlinK_
serbian - 2 changes by etran
slovenian - 3 changes by ntadej
spanish - 2 changes by Terkhen
vietnamese - 44 changes by myquartz
2010-01-30 18:45:45 +00:00
frosch f9cebfcfc4 (svn r18967) -Fix (r18966): Never trust your copy&paste skills. 2010-01-30 18:43:14 +00:00
frosch 88019e64e1 (svn r18966) -Codechange: Remove Window::OnDoubleClick() in favour of a parameter for OnClick(). 2010-01-30 18:34:48 +00:00
frosch 2f6fe85f23 (svn r18965) -Fix (r17846): Don't compare horizontal positions with vertical. 2010-01-30 17:42:04 +00:00
frosch af50e0a4cf (svn r18964) -Change: Highlight the selected action for town authority, and do not duplicate the itemtext to the description. 2010-01-30 16:29:52 +00:00
terkhen 272f2cd93e (svn r18963) -Codechange: Give AccelerationModel a generical name. 2010-01-30 16:27:35 +00:00
alberth 815eede0be (svn r18962) -Fix (r18958, r18961): Code-style, use this explicitly. 2010-01-30 15:29:35 +00:00
alberth cdc6f5ddc1 (svn r18961) -Codechange: Simplifying and unduplicating code in smallmap. 2010-01-30 13:11:26 +00:00
terkhen 72f4bd818c (svn r18960) -Codechange: Move acceleration-related values to a separated cache. 2010-01-30 10:41:15 +00:00
frosch 9e4a62d1ee (svn r18959) -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. 2010-01-30 10:08:39 +00:00
alberth 5c9cb9648b (svn r18958) -Codechange: Merge smallmap remap functions. 2010-01-30 09:54:58 +00:00
alberth ab4072ba8d (svn r18957) -Doc: Documenting the scroll_x, scroll_y, and subscroll variables of SmallMapWindow. 2010-01-30 09:32:48 +00:00
yexo b7fc8b4979 (svn r18956) -Update: NoAI changelog 2010-01-29 23:59:38 +00:00
yexo 15016e3511 (svn r18955) -Feature: [NoAI] introduce GetBuildCost functions in several classes to get easier cost estimations before you start building 2010-01-29 23:56:42 +00:00
smatz 54f958c8e5 (svn r18954) -Fix (r18952): missing 'inline' 2010-01-29 23:54:00 +00:00
yexo 4c4d1e1bf6 (svn r18953) -Feature: [NoAI] allow editing AI settings while an AI is running
Only settings with the AICONFIG_INGAME flag can be editted in this way
2010-01-29 21:38:55 +00:00
yexo dc714960e3 (svn r18952) -Fix (r18950): loading recent (=newer then title game) savegames failed 2010-01-29 21:06:35 +00:00
translators b0349704b0 (svn r18951) -Update from WebTranslator v3.0:
czech - 8 changes by ReisRyos
dutch - 6 changes by Yexo
finnish - 4 changes by jpx_
french - 4 changes by glx
german - 4 changes by planetmaker
greek - 7 changes by fumantsu
hungarian - 4 changes by Petert
korean - 4 changes by junho2813
norwegian_bokmal - 4 changes by mantaray
norwegian_nynorsk - 4 changes by mantaray
serbian - 4 changes by etran
slovenian - 4 changes by ntadej
spanish - 4 changes by Terkhen
vietnamese - 24 changes by myquartz
2010-01-29 18:45:45 +00:00
yexo f381b91de0 (svn r18950) -Fix: make sure the values of settings loaded from a savegame are valid 2010-01-29 18:21:10 +00:00
yexo f8b0ddd3ec (svn r18949) -Fix (r18942): 'reduced plane crashes' were actually 'more plane crashes' 2010-01-29 17:56:36 +00:00
yexo ea227aa033 (svn r18948) -Fix: removing a newgrf from the list didn't update the scrollbar 2010-01-29 15:50:56 +00:00
yexo 81882039e3 (svn r18947) -Fix [FS#1510]: after clicking move up/move down in the newgrf/ai the selected item could be out of range 2010-01-29 15:45:53 +00:00
yexo a668e801e4 (svn r18946) -Fix: it was possible to change AI settings without changing to the custom difficulty level by using the query text window 2010-01-29 01:03:22 +00:00
yexo a43a23b408 (svn r18945) -Codechange: typo 2010-01-29 00:11:30 +00:00
yexo fae34ee719 (svn r18944) -Change [FS#3232]: use the highest version of an AI that can load the AI data from a savegame instead of the exact same version 2010-01-29 00:03:31 +00:00
yexo d75b9f1642 (svn r18943) -Feature [FS#2885]: make it possible to change newgame settings from within a game via the console (use setting_newgame instead of setting) 2010-01-28 23:17:28 +00:00
yexo fa01b25f74 (svn r18942) -Feature [FS#2678]: add a setting to reduce/disable aircraft crashes 2010-01-28 22:34:14 +00:00
yexo b689e3d6e4 (svn r18941) -Fix [FS#3575]: remove the loading indicators as soon as a train crashes 2010-01-28 22:06:13 +00:00
yexo da3ff51759 (svn r18940) -Feature: make the crash position of aircraft a bit random by giving aircraft a chance to crash every tick they're breaking.
Slow aircraft will crash a bit less, fast aircraft might crash a bit more
2010-01-28 21:59:18 +00:00
terkhen d4376779f8 (svn r18939) -Codechange [FS#3545]: Move train slope steepness to its own function. 2010-01-28 20:54:29 +00:00
frosch 294bc14652 (svn r18938) -Fix: Industrylayout's special water tile check did not properly check for crossing north border of map. Also don't consider MP_VOID tiles as water. 2010-01-28 19:41:45 +00:00
yexo 6be4560528 (svn r18937) -Fix (r15190): TileAddWrap didn't return INVALID_TILE for void tiles at the north border 2010-01-28 19:27:10 +00:00
translators 8ee96d4d45 (svn r18936) -Update from WebTranslator v3.0:
hungarian - 2 changes by IPG
indonesian - 5 changes by fanioz
spanish - 7 changes by yanok
vietnamese - 544 changes by myquartz
2010-01-28 18:45:16 +00:00
rubidium c1c401b51b (svn r18935) -Fix [FS#3551] (r18764): value of variables 90 and 91 weren't what NARS expects 2010-01-28 18:19:34 +00:00
glx 27491c5586 (svn r18934) -Fix (r18892, r18913): the deadlock should be definitively gone now 2010-01-28 13:49:20 +00:00
peter1138 08a24fcc31 (svn r18933) -Codechange: Don't constantly redraw a window when moving it unless it actually moves. 2010-01-28 02:31:37 +00:00
peter1138 07b285c5ca (svn r18932) -Codechange: Don't constantly redraw drop drop list. 2010-01-28 02:30:59 +00:00
frosch a3168269f9 (svn r18931) -Fix: Disabling autoreplace rules might count invalid engines. 2010-01-27 20:54:05 +00:00
frosch 7b237ee607 (svn r18930) -Fix: [NoAI] Autoreplace is also valid for the default group. 2010-01-27 20:51:11 +00:00
frosch ec9ac775bf (svn r18929) -Fix [FS#3568]: Preserve some timetable related vehicle flags during autorenew/-replace. 2010-01-27 20:07:29 +00:00
frosch 9a1dddd137 (svn r18928) -Fix (r18304): The date in case of 'early arrival' was misaligned in the timetable GUI. 2010-01-27 19:52:08 +00:00
rubidium 9a4a120b6e (svn r18927) -Change: move Vietnamese out of unfinished 2010-01-27 18:46:53 +00:00
translators 68344778e3 (svn r18926) -Update from WebTranslator v3.0:
romanian - 3 changes by kkmic
ukrainian - 2 changes by Madvin
vietnamese - 738 changes by myquartz
2010-01-27 18:45:13 +00:00
yexo ea7c90d471 (svn r18925) -Fix (r18924): a waypoint can have a buoy but no rail waypoint tile 2010-01-27 13:06:58 +00:00
yexo 849e676410 (svn r18924) -Fix [NoAI]: AIOrder::GetOrderDestination could return a non-waypoint tile when the waypoint was a multitile waypoint 2010-01-27 12:45:41 +00:00
peter1138 cd6eac77c3 (svn r18923) -Fix [FS#3565]: Check source stationspec exists before copying layouts. 2010-01-27 10:17:09 +00:00
yexo 4df90cddee (svn r18922) -Doc: add doxygen documentation to all functions in station_map.h 2010-01-26 23:25:28 +00:00
yexo 7f998ce80d (svn r18921) -Codechange: make the preconditions for Get/Set CustomStationSpecIndex a bit more strict 2010-01-26 23:03:47 +00:00
translators 0bc1b736d7 (svn r18920) -Update from WebTranslator v3.0:
afrikaans - 4 changes by Maccie123
dutch - 3 changes by habell
vietnamese - 638 changes by myquartz
2010-01-26 18:45:11 +00:00
glx 918b3aff5e (svn r18919) -Fix (r15371): strcasestr() return should not be const 2010-01-26 14:04:56 +00:00
translators 078e1edabc (svn r18917) -Update from WebTranslator v3.0:
danish - 1 changes by Hatsen
lithuanian - 17 changes by BlinK_, Devastator
malay - 17 changes by toadhall
norwegian_bokmal - 84 changes by mantaray
norwegian_nynorsk - 4 changes by mantaray
polish - 1 changes by xaxa
swedish - 6 changes by tobjork
2010-01-25 18:45:23 +00:00
frosch f379b0a1d9 (svn r18916) -Fix (r18809): Don't rely on 'time.h' being included via dark roads. 2010-01-25 17:22:06 +00:00
glx 32fa5384d2 (svn r18915) -Fix (r18912): use a macro for empty DrawTileSprites elements (and solve missing braces/initializer warnings) 2010-01-25 15:20:46 +00:00
glx 57718cc5a7 (svn r18913) -Fix (r18892): the deadlock was still possible 2010-01-25 00:43:51 +00:00
yexo 388c713f08 (svn r18912) -Codechange: free up a bunch of airporttile ids by using the tile animation frame 2010-01-24 20:25:28 +00:00
yexo 6ff482f515 (svn r18911) -Fix (r18910): forgot to svn add the new file 2010-01-24 20:21:09 +00:00
yexo de3c92dd06 (svn r18910) -Codechange: move the enum with airporttile names to table/airporttile_ids.h 2010-01-24 20:17:18 +00:00
translators 3a23e38898 (svn r18909) -Update from WebTranslator v3.0:
hebrew - 5 changes by dnd_man
norwegian_bokmal - 284 changes by mantaray
norwegian_nynorsk - 1 changes by mantaray
portuguese - 1 changes by JayCity
romanian - 2 changes by tonny
russian - 2 changes by Lone_Wolf
slovenian - 89 changes by ntadej
welsh - 2 changes by welshdragon
2010-01-24 18:45:28 +00:00
rubidium 3d0b3818dd (svn r18908) -Fix [FS#3561]: on bankruptcy the company value did include the loan and as such the value at which you bought the company was too low 2010-01-24 11:05:26 +00:00
alberth b2f9b0ac43 (svn r18907) -Cleanup: Smallmap was the last user of SetPixelIfEmpty(). 2010-01-23 22:37:14 +00:00
alberth d2fc24d61c (svn r18906) -Codechange: Use start and end column position instead of a mask for drawing a column in the smallmap. 2010-01-23 22:32:30 +00:00
peter1138 c83d57f228 (svn r18905) -Fix (r18902): Compile error on 64-bit with gcc 2010-01-23 22:25:00 +00:00
michi_cc a4f50de959 (svn r18904) -Fix: Writing LZO-compressed savegames would produce invalid files and potentially overwrite memory. 2010-01-23 22:23:45 +00:00
rubidium 6ea1eb1463 (svn r18903) -Fix [FS#3562]: file locations for Windows weren't correct for all versions of Windows 2010-01-23 21:19:14 +00:00
rubidium 299d405680 (svn r18902) -Fix [FS#3559]: the default button for the advanced settings didn't work 2010-01-23 19:33:18 +00:00
rubidium afcce5ed90 (svn r18901) -Change: make the default button work again for the world generation window; previously it worked due to the bug fixed in r18899. Do not add it again for the town custom number because there is no default for that one. 2010-01-23 19:32:56 +00:00
rubidium 37b0a61b42 (svn r18900) -Document: that an empty string for OnQueryTextFinished means 'use default' 2010-01-23 19:30:53 +00:00
rubidium 2b82db72ef (svn r18899) -Fix: the default button was enabled even when the ENABLE_DEFAULT flag wasn't set 2010-01-23 19:30:03 +00:00
translators 4d184e9b16 (svn r18898) -Update from WebTranslator v3.0:
italian - 2 changes by lorenzodv
japanese - 16 changes by PouncingAnt
korean - 1 changes by junho2813
lithuanian - 275 changes by BlinK_
norwegian_bokmal - 7 changes by Zhygometh
spanish - 4 changes by Terkhen
swedish - 91 changes by tobjork
2010-01-23 18:45:23 +00:00
frosch 4034f249db (svn r18897) -Fix: Land area information read the stationspec also for non-rail-stationtiles, which is no longer valid since r18876. 2010-01-23 16:38:09 +00:00
rubidium 9e106dca81 (svn r18896) -Fix [FS#3558]: pressing cancel for the query windows of the world generation window caused the default to be set instead of no changes to the value 2010-01-23 15:53:09 +00:00
peter1138 00ffde86d2 (svn r18893) -Codechange: Replace grf_load_* with methods of ByteReader. 2010-01-23 13:17:30 +00:00
glx a554b41452 (svn r18892) -Fix: in some rare case a deadlock could happen when stopping sound driver (windows) 2010-01-23 01:36:49 +00:00
peter1138 200dc6821f (svn r18891) -Fix: Avoid duplicate path separator when searching for PNG files which prevented tar-lookups. 2010-01-22 23:55:20 +00:00
frosch 3df9caa86a (svn r18890) -Codechange: Unify drawing of foundations for MP_UNMOVABLE. 2010-01-22 22:32:39 +00:00
frosch bf65eb686e (svn r18889) -Codechange: Use (GroundSprite|SpriteLayout)PaletteTransform() also for drawing of default industries. They are compatible since the bubblegenerator is also randomly recoloured. 2010-01-22 21:52:20 +00:00
frosch 6260d243ee (svn r18888) -Codechange: Rename PALETTE_59[EF] to something more meaningful. 2010-01-22 18:47:29 +00:00
translators 7f09435239 (svn r18887) -Update from WebTranslator v3.0:
bulgarian - 120 changes by Tvel
catalan - 4 changes by arnau
finnish - 2 changes by jpx_
french - 2 changes by glx
german - 2 changes by planetmaker
korean - 1 changes by junho2813
serbian - 3 changes by etran
slovenian - 4 changes by ntadej
spanish - 1 changes by Terkhen
2010-01-22 18:45:31 +00:00
peter1138 16e621c939 (svn r18886) -Fix (r18884): Spurious casting 2010-01-22 15:34:22 +00:00
peter1138 bb71c61ee1 (svn r18885) -Fix (r18884): Industry tile layouts weren't completely freed on error. 2010-01-22 14:03:36 +00:00
peter1138 927f149ff2 (svn r18884) -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. 2010-01-22 13:02:15 +00:00
rubidium 7ec3d9a0c6 (svn r18883) -Codechange: warn in the difficulty and AI configuration window when setting the number of AIs to non-zero when you don't have AIs 2010-01-21 23:19:50 +00:00
rubidium 18446dd599 (svn r18882) -Change: default to zero AIs 2010-01-21 23:19:13 +00:00
rubidium 5ddf56f0e0 (svn r18881) -Codechange: make the AI debug window look nicer when not at its minimum size 2010-01-21 21:08:58 +00:00
yexo b76a5669f5 (svn r18880) -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 2010-01-21 19:31:25 +00:00
translators fdfd0ab922 (svn r18879) -Update from WebTranslator v3.0:
portuguese - 2 changes by SupSuper
slovenian - 6 changes by ntadej
spanish - 149 changes by Terkhen
2010-01-21 18:45:13 +00:00
yexo e80f4f20af (svn r18878) -Fix [NewGRF]: crash when a newgrf used var62 in an industry tile chain when the industry tile was part of an original industry 2010-01-21 18:32:44 +00:00
yexo d04441e3f7 (svn r18877) -Change: make the default size of the AI debug window bigger so the 'no ai found' message can be read completely without resizing 2010-01-21 17:13:09 +00:00
yexo 18e7ec6b3e (svn r18876) -Codechange: make sure m4 is always 0 for non-railroad station tiles 2010-01-21 13:34:05 +00:00
rubidium f608ad7baf (svn r18875) -Codechange: remove some unneeded bits from the network protocol and improve the naming of some variables 2010-01-21 11:17:40 +00:00
rubidium e130e4e9ba (svn r18874) -Codechange: Change enum Sprites { to static const StringID = for each SPR_ entry and similar for cursors and palettes. This avoids the need for a cast in some places and thus provides better type-safety. 2010-01-21 01:46:40 +00:00
rubidium db33e32b4d (svn r18873) -Codechange: use PaletteID also in the blitter 2010-01-21 01:44:51 +00:00
rubidium f94c83a387 (svn r18872) -Codechange: introduce PaletteID and use it 2010-01-21 01:38:13 +00:00
237 changed files with 11090 additions and 7693 deletions
+40
View File
@@ -504,6 +504,45 @@ 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]]; }
@@ -1699,6 +1738,7 @@ function Regression::Start()
this.IndustryTypeList();
this.Map();
this.Marine();
this.Prices();
this.Rail();
this.RailTypeList();
this.Road();
+44 -9
View File
@@ -584,7 +584,7 @@
GetBankBalance(): 100000
GetName(): (null : 0x00000000)
GetLoanAmount(): 100000
GetMaxLoanAmount(): 2000000000
GetMaxLoanAmount(): 500000
GetLoanInterval(): 10000
SetLoanAmount(1): false
SetLoanAmount(100): false
@@ -596,8 +596,8 @@
GetBankBalance(): 40000
GetLoanAmount(): 40000
SetLoanAmount(10000): true
GetBankBalance(): 2000000000
GetLoanAmount(): 2000000000
GetBankBalance(): 500000
GetLoanAmount(): 500000
GetCompanyHQ(): -1
BuildCompanyHQ(): true
GetCompanyHQ(): 33151
@@ -681,7 +681,7 @@
GetAirportWidth(9): -1
GetAirportHeight(9): -1
GetAirportCoverageRadius(9): -1
GetBankBalance(): 1999999790
GetBankBalance(): 499790
GetPrice(): 5400
BuildAirport(): true
IsHangarTile(): false
@@ -691,11 +691,11 @@
IsHangarTile(): true
IsAirportTile(): true
GetAirportType(): 0
GetBankBalance(): 1999989890
GetBankBalance(): 489890
RemoveAirport(): true
IsHangarTile(): false
IsAirportTile(): false
GetBankBalance(): 1999989626
GetBankBalance(): 489626
BuildAirport(): true
--Bridge--
@@ -7085,7 +7085,7 @@
IsBuoyTile(): false
IsLockTile(): false
IsCanalTile(): false
GetBankBalance(): 1999980703
GetBankBalance(): 480703
BuildWaterDepot(): true
BuildDock(): true
BuildBuoy(): true
@@ -7098,7 +7098,7 @@
IsBuoyTile(): true
IsLockTile(): true
IsCanalTile(): true
GetBankBalance(): 1999951154
GetBankBalance(): 451154
--AIWaypointList(BUOY)--
Count(): 1
@@ -7117,10 +7117,45 @@
IsBuoyTile(): false
IsLockTile(): false
IsCanalTile(): false
GetBankBalance(): 1999928509
GetBankBalance(): 428509
BuildWaterDepot(): true
BuildDock(): true
--Prices--
-Rail-
0,BT_TRACK: 75
0,BT_SIGNAL: 48
0,BT_DEPOT: 450
0,BT_STATION: 285
0,BT_WAYPOINT: 450
1,BT_TRACK: -1
1,BT_SIGNAL: -1
1,BT_DEPOT: -1
1,BT_STATION: -1
1,BT_WAYPOINT: -1
-Road-
ROADTYPE_ROAD,BT_ROAD: 71
ROADTYPE_ROAD,BT_DEPOT: 375
ROADTYPE_ROAD,BT_BUS_STOP: 150
ROADTYPE_ROAD,BT_TRUCK_STOP: 150
ROADTYPE_TRAM,BT_ROAD: -1
ROADTYPE_TRAM,BT_DEPOT: -1
ROADTYPE_TRAM,BT_BUS_STOP: -1
ROADTYPE_TRAM,BT_TRUCK_STOP: -1
-Water-
BT_DOCK: 262
BT_DEPOT: 525
BT_BUOY: 262
-Tile-
BT_FOUNDATION: 187
BT_TERRAFORM: 187
BT_BUILD_TREES: 15
BT_CLEAR_GRASS: 15
BT_CLEAR_ROUGH: 30
BT_CLEAR_ROCKY: 150
BT_CLEAR_FIELDS: 375
BT_CLEAR_HOUSE: 1200
--Rail--
IsRailTile(): false
BuildRailTrack(): true
+1 -1
View File
@@ -18,7 +18,7 @@ old_3 = GM_TT12.GM
old_4 = GM_TT08.GM
old_5 = GM_TT13.GM
old_6 = GM_TT14.GM
old_7 = GM_TT19.GM
old_7 = GM_TT10.GM
old_8 =
old_9 =
new_0 = GM_TT04.GM
+39
View File
@@ -1,3 +1,42 @@
1.0.0-beta4 (2010-02-04)
------------------------------------------------------------------------
- Feature: Content mirroring support (r18994)
- Feature: Show empty query after creating new group (instead of 'Group nnn') (r18981)
- Feature: [NewGRF] NewGRF-settable rail type properties, increase number of possible rail types, per rail type speed limits (r18970, r18969)
- Feature: [NewGRF] Allow layering of multiple groundsprites in spritelayouts of stations, houses and industrytiles; so hacks with zero-sized bounding boxes are no longer needed and no longer cause trouble (r18959)
- Feature: [NoAI] Introduce GetBuildCost functions in several classes to get easier cost estimations before you start building (r18955)
- Feature: [NoAI] Allow editing AI settings while an AI is running (r18953)
- Feature: Make it possible to change newgame settings from within a game via the console (use setting_newgame instead of setting) [FS#2885] (r18943)
- Feature: Add a setting to reduce/disable aircraft crashes [FS#2678] (r18942)
- Feature: Make the crash position of aircraft a bit random by giving aircraft a chance to crash every tick they are breaking (r18940)
- Change: [NoAI] Use the highest version of an AI that can load the AI data from a savegame instead of the exact same version [FS#3232] (r18944)
- Fix: Off-by-one in the music playlist (song missing) [FS#3588] (r18997)
- Fix: [NewGRF] industry var A5 (=high 8 bits of var A4) returned the high 8 bits of var A2. Same problem for 9B/9A/98 (r18988)
- Fix: [NoAI] Make building long rails fail for AIs if there is an obstacle in the way (r18987)
- Fix: Possible invalid memory access when merging companies [FS#3584] (r18978)
- Fix: Estimating the cost of removing statues could clear the presence flag in the town (r18976)
- Fix: CMD_BUILD_ROAD missed CMD_AUTO. Also do not access tiles anymore after clearing them; that fails either in test or exec run [FS#3578] (r18974)
- Fix: Train acceleration for original acceleration model was not updated if the train's power changed (r18971)
- Fix: Make sure the values of settings loaded from a savegame are valid (r18950)
- Fix: After clicking move up/move down in the NewGRF/AI the selected item could be out of range [FS#1510] (r18948, r18947)
- Fix: It was possible to change AI settings without changing to the custom difficulty level by using the query text window (r18946)
- Fix: Remove the loading indicators as soon as a train crashes [FS#3575] (r18941)
- Fix: [NewGRF] Industrylayout's special water tile check did not properly check for crossing north border of map (r18938)
- Fix: [NewGRF] Value of variables 90 and 91 were not what NARS expects [FS#3551] (r18935)
- Fix: [Windows] In some rare case a deadlock could happen when stopping sound driver (r18934, r18913, r18892)
- Fix: [NoAI] Autoreplace is also valid for the default group (r18930)
- Fix: Preserve some timetable related vehicle flags during autorenew/-replace [FS#3568] (r18929)
- Fix: AIOrder::GetOrderDestination could return a non-waypoint tile when the waypoint was a multitile waypoint [NoAI] (r18924)
- Fix: On bankruptcy the company value did include the loan and as such the value at which you bought the company was too low [FS#3561] (r18908)
- Fix: Writing LZO-compressed savegames would produce invalid files and potentially overwrite memory (r18904)
- Fix: [Windows] File locations for Windows were not documented correctly for all versions of Windows [FS#3562] (r18903)
- Fix: Pressing cancel for the query windows of the world generation window caused the default to be set instead of no changes to the value [FS#3558] (r18896)
- Fix: Avoid duplicate path separator when searching for PNG files which prevented tar-lookups (r18891)
- Fix: [NewGRF] Perform bounds checking for all NewGRF data reads. Explicit length checks (which were not always correct) are no longer needed so these are removed to simplify code (r18884)
- Fix: Aircraft can be send to an hangar when the target airport has one and when it can land, not only when it has a plane terminal (r18880)
- Fix: [NewGRF] Crash when a NewGRF used var62 in an industry tile chain when the industry tile was part of an original industry (r18878)
1.0.0-beta3 (2010-01-21)
------------------------------------------------------------------------
- Feature: Make building (long) roads work like building rail; build upon the first obstruction instead of failing totally [FS#3318] (r18803)
+1 -1
View File
@@ -11,7 +11,7 @@ log() {
}
set_default() {
released_version="1.0.0-beta3"
released_version="1.0.0-beta4"
ignore_extra_parameters="0"
# We set all kinds of defaults for params. Later on the user can override
+12 -12
View File
@@ -91,7 +91,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
<td class="bits"><span class="free">OOOO</span> XXXX <span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO</span> <span class="option">~~</span>XX</td>
<td class="bits"><span class="free">OOOO</span> XXXX</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 <span class="option">~~</span>XX</td>
<td class="bits">XXXX XXXX</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> <span class="option">~~</span>XX</td>
<td class="bits"><span class="free">OOOO</span> XXXX</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 <span class="option">~~</span>XX</td>
<td class="bits">XXXX XXXX</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">XXXX XXXX XXXX XXXX</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">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 <span class="option">~~</span>XX</td>
<td class="bits">XXXX XXXX</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="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="free">OOOO OOOO</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="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="free">OOOO OOOO</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="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="free">OOOO OOOO</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="option">~~~~ ~~~~</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="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="option">~~~~ ~~~~</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="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 <span class="option">~~</span>XX</td>
<td class="bits">XXXX XXXX</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>
+2 -4
View File
@@ -1,6 +1,6 @@
OpenTTD's known bugs
Last updated: 2010-01-21
Release version: 1.0.0-beta3
Last updated: 2010-02-04
Release version: 1.0.0-beta4
------------------------------------------------------------------------
@@ -35,11 +35,9 @@ If the bugs are closed but still listed here it means that the bug is fixed
and that the nightlies and next major release will not have that bug.
- 3447 [OSX] SDL port is unuseable
- 3194 [OSX] Full screen strobing/flickering
- 2782 [OSX] Port hopelessly outdated
- 2585 [OSX] OS' mouse pointer showing
- 2484 [OSX] Cannot enter CJK characters
- 1140 [OSX] Not smooth moving map with touchpad
3) Known bugs that will not be solved:
+6
View File
@@ -1,3 +1,9 @@
openttd (1.0.0~beta4) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 04 Feb 2010 18:36:02 +0100
openttd (1.0.0~beta3) unstable; urgency=low
* New upstream release.
+1 -1
View File
@@ -1,6 +1,6 @@
@echo off
set OPENTTD_VERSION=1.0.0-beta3
set OPENTTD_VERSION=1.0.0-beta4
set OPENSFX_VERSION=0.8.0
set NOSOUND_VERSION=0.8.0
set OPENGFX_VERSION=0.7.0
+2 -2
View File
@@ -2,8 +2,8 @@
!define APPV_MAJOR 1
!define APPV_MINOR 0
!define APPV_MAINT 0
!define APPV_BUILD 2
!define APPV_EXTRA "-beta3"
!define APPV_BUILD 3
!define APPV_EXTRA "-beta4"
!define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
+1 -1
View File
@@ -39,7 +39,7 @@ Sub UpdateFiles(version)
modified = Mid(version, InStrRev(version, Chr(9)) + 1)
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
Else
version = "1.0.0-beta3"
version = "1.0.0-beta4"
revision = 0
modified = 1
End If
+15
View File
@@ -706,6 +706,21 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\vietnamese.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating vietnamese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt"
Outputs="..\bin\lang\vietnamese.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\welsh.txt"
>
+15
View File
@@ -707,6 +707,21 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\vietnamese.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating vietnamese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt"
Outputs="..\bin\lang\vietnamese.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\welsh.txt"
>
+12
View File
@@ -2175,6 +2175,10 @@
RelativePath=".\..\src\table\airport_defaults.h"
>
</File>
<File
RelativePath=".\..\src\table\airporttile_ids.h"
>
</File>
<File
RelativePath=".\..\src\table\airporttiles.h"
>
@@ -3411,6 +3415,14 @@
RelativePath=".\..\src\network\core\tcp_game.h"
>
</File>
<File
RelativePath=".\..\src\network\core\tcp_http.cpp"
>
</File>
<File
RelativePath=".\..\src\network\core\tcp_http.h"
>
</File>
<File
RelativePath=".\..\src\network\core\udp.cpp"
>
+12
View File
@@ -2172,6 +2172,10 @@
RelativePath=".\..\src\table\airport_defaults.h"
>
</File>
<File
RelativePath=".\..\src\table\airporttile_ids.h"
>
</File>
<File
RelativePath=".\..\src\table\airporttiles.h"
>
@@ -3408,6 +3412,14 @@
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"
>
+11 -7
View File
@@ -1,6 +1,6 @@
OpenTTD README
Last updated: 2010-01-21
Release version: 1.0.0-beta3
Last updated: 2010-02-04
Release version: 1.0.0-beta4
------------------------------------------------------------------------
@@ -250,11 +250,14 @@ 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:\Documents and Settings\<username>\My Documents\OpenTTD
Windows: C:\My Documents (95, 98, ME)
C:\Documents and Settings\<username>\My Documents\OpenTTD (2000, XP)
C:\Users\<username>\Documents\OpenTTD (Vista, 7)
Mac OSX: ~/Documents/OpenTTD
Linux: ~/.openttd
3. The shared directory
Windows: C:\Documents and Settings\All Users\Documents\OpenTTD
Windows: C:\Documents and Settings\All Users\Shared Documents\OpenTTD (2000, XP)
C:\Users\Public\Documents\OpenTTD (Vista, 7)
Mac OSX: /Library/Application Support/OpenTTD
Linux: not available
4. The binary directory (where the OpenTTD executable is)
@@ -509,10 +512,8 @@ X.X) Credits:
---- --------
The OpenTTD team (in alphabetical order):
Albert Hofkamp (Alberth) - GUI expert
Jean-Francois Claeys (Belugas) - GUI, newindustries and more
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles
Jean-François Claeys (Belugas) - GUI, newindustries and more
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
@@ -520,9 +521,12 @@ The OpenTTD team (in alphabetical order):
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods
Remko Bijker (Rubidium) - Lead coder and way more
Zdeněk Sojka (SmatZ) - Bug finder and fixer
José Soler (Terkhen) - General coding
Thijs Marinussen (Yexo) - AI Framework
Inactive Developers:
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles
Victor Fischer (Celestar) - Programming everywhere you need him to
Tamás Faragó (Darkvater) - Ex-Lead coder
Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)
Jonathan Coome (Maedhros) - High priest of the NewGRF Temple
+3
View File
@@ -474,6 +474,7 @@ saveload/waypoint_sl.cpp
# Tables
table/airport_defaults.h
table/airporttile_ids.h
table/airporttiles.h
table/airport_movement.h
table/animcursors.h
@@ -802,6 +803,8 @@ network/core/tcp_content.cpp
network/core/tcp_content.h
network/core/tcp_game.cpp
network/core/tcp_game.h
network/core/tcp_http.cpp
network/core/tcp_http.h
network/core/udp.cpp
network/core/udp.h
+1 -1
View File
@@ -114,7 +114,7 @@ public:
static char *GetConsoleList(char *p, const char *last);
static const AIInfoList *GetInfoList();
static const AIInfoList *GetUniqueInfoList();
static AIInfo *FindInfo(const char *name, int version);
static AIInfo *FindInfo(const char *name, int version, bool force_exact_match);
static bool ImportLibrary(const char *library, const char *class_name, int version, HSQUIRRELVM vm);
static void Rescan();
#if defined(ENABLE_NETWORK)
+3 -3
View File
@@ -16,11 +16,11 @@
#include "ai.hpp"
#include "ai_config.hpp"
void AIConfig::ChangeAI(const char *name, int version, bool is_random_ai)
void AIConfig::ChangeAI(const char *name, int version, bool force_exact_match, 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);
this->info = (name == NULL) ? NULL : AI::FindInfo(this->name, version, force_exact_match);
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);
this->info = AI::FindInfo(this->name, -1, false);
return this->info != NULL;
}
+3 -1
View File
@@ -36,9 +36,11 @@ 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 is_random = false);
void ChangeAI(const char *name, int version = -1, bool force_exact_match = false, bool is_random = false);
/**
* When ever the AI Scanner is reloaded, all infos become invalid. This
+4 -3
View File
@@ -44,7 +44,7 @@
info = AI::ai_scanner->SelectRandomAI();
assert(info != NULL);
/* Load default data and store the name in the settings */
config->ChangeAI(info->GetName(), -1, true);
config->ChangeAI(info->GetName(), -1, false, true);
}
_current_company = company;
@@ -105,6 +105,7 @@
_current_company = old_company;
InvalidateWindowData(WC_AI_DEBUG, 0, -1);
DeleteWindowById(WC_AI_SETTINGS, company);
}
/* static */ void AI::KillAll()
@@ -288,9 +289,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)
/* static */ AIInfo *AI::FindInfo(const char *name, int version, bool force_exact_match)
{
return AI::ai_scanner->FindInfo(name, version);
return AI::ai_scanner->FindInfo(name, version, force_exact_match);
}
/* static */ bool AI::ImportLibrary(const char *library, const char *class_name, int version, HSQUIRRELVM vm)
+75 -61
View File
@@ -10,6 +10,7 @@
/** @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"
@@ -148,7 +149,7 @@ struct AIListWindow : public Window {
SetWindowDirty(WC_GAME_OPTIONS, 0);
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case AIL_WIDGET_LIST: { // Select one of the AIs
@@ -156,6 +157,10 @@ 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;
}
@@ -172,21 +177,6 @@ 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);
@@ -256,7 +246,9 @@ struct AISettingsWindow : public Window {
{
this->ai_config = AIConfig::GetConfig(slot);
this->InitNested(desc); // Initializes 'this->line_height' as side effect.
this->InitNested(desc, slot); // Initializes 'this->line_height' as side effect.
this->SetWidgetDisabledState(AIS_WIDGET_RESET, _game_mode != GM_MENU);
this->vscroll.SetCount((int)this->ai_config->GetConfigList()->size());
}
@@ -297,12 +289,13 @@ 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, current_value > (*it).min_value, current_value < (*it).max_value);
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);
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 {
@@ -316,7 +309,19 @@ struct AISettingsWindow : public Window {
}
}
virtual void OnClick(Point pt, int widget)
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)
{
switch (widget) {
case AIS_WIDGET_BACKGROUND: {
@@ -327,6 +332,8 @@ 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;
@@ -353,10 +360,7 @@ struct AISettingsWindow : public Window {
this->clicked_button = num;
this->timeout = 5;
if (_settings_newgame.difficulty.diff_level != 3) {
_settings_newgame.difficulty.diff_level = 3;
ShowErrorMessage(STR_WARNING_DIFFICULTY_TO_CUSTOM, INVALID_STRING_ID, 0, 0);
}
this->CheckDifficultyLevel();
} else if (!bool_item) {
/* Display a query box so users can enter a custom value. */
this->clicked_row = num;
@@ -386,6 +390,7 @@ 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();
}
@@ -572,7 +577,7 @@ struct AIConfigWindow : public Window {
}
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case AIC_WIDGET_DECREASE:
@@ -591,6 +596,7 @@ 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;
}
@@ -598,6 +604,7 @@ 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;
@@ -606,6 +613,7 @@ 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;
@@ -634,16 +642,6 @@ 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) {
@@ -677,6 +675,7 @@ 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,
@@ -704,6 +703,7 @@ 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,8 +743,11 @@ struct AIDebugWindow : public Window {
}
}
/* Update "Reload AI" button */
this->SetWidgetDisabledState(AID_WIDGET_RELOAD_TOGGLE, ai_debug_company == INVALID_COMPANY);
/* Update "Reload AI" and "AI settings" buttons */
this->SetWidgetsDisabledState(ai_debug_company == INVALID_COMPANY,
AID_WIDGET_RELOAD_TOGGLE,
AID_WIDGET_SETTINGS,
WIDGET_LIST_END);
/* Draw standard stuff */
this->DrawWidgets();
@@ -781,7 +784,7 @@ struct AIDebugWindow : public Window {
if (!valid) continue;
byte offset = (i == ai_debug_company) ? 1 : 0;
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);
DrawCompanyIcon(i, button->pos_x + button->current_x / 2 - 7 + offset, this->GetWidget<NWidgetBase>(AID_WIDGET_COMPANY_BUTTON_START + i)->pos_y + 2 + offset);
}
CompanyID old_company = _current_company;
@@ -884,9 +887,11 @@ 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)
virtual void OnClick(Point pt, int widget, int click_count)
{
/* Check which button is clicked */
if (IsInsideMM(widget, AID_WIDGET_COMPANY_BUTTON_START, AID_WIDGET_COMPANY_BUTTON_END + 1)) {
@@ -895,16 +900,24 @@ struct AIDebugWindow : public Window {
ChangeToAI((CompanyID)(widget - AID_WIDGET_COMPANY_BUTTON_START));
}
}
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);
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;
}
}
virtual void OnTimeout()
{
this->RaiseWidget(AID_WIDGET_RELOAD_TOGGLE);
this->RaiseWidget(AID_WIDGET_SETTINGS);
this->SetDirty();
}
@@ -933,47 +946,48 @@ 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), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START), SetMinimalSize(37, 13), SetResize(1, 0), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 1), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 2), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 3), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 4), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 5), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 6), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 7), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(NWID_SPACER), SetMinimalSize(2, 0), SetResize(1, 0),
NWidget(NWID_SPACER), SetMinimalSize(2, 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), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 9), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 10), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 11), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 12), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 13), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_COMPANY_BUTTON_START + 14), SetMinimalSize(37, 13), SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP),
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),
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), 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),
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),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PANEL, COLOUR_GREY, AID_WIDGET_LOG_PANEL), SetMinimalSize(287, 180), SetResize(1, 1),
@@ -986,7 +1000,7 @@ static const NWidgetPart _nested_ai_debug_widgets[] = {
};
static const WindowDesc _ai_debug_desc(
WDP_AUTO, 299, 241,
WDP_AUTO, 600, 450,
WC_AI_DEBUG, WC_NONE,
0,
_nested_ai_debug_widgets, lengthof(_nested_ai_debug_widgets)
+1
View File
@@ -20,6 +20,7 @@ enum AIConfigFlags {
AICONFIG_NONE = 0x0,
AICONFIG_RANDOM = 0x1, //!< When randomizing the AI, pick any value between min_value and max_value when on custom difficulty setting.
AICONFIG_BOOLEAN = 0x2, //!< This value is a boolean (either 0 (false) or 1 (true) ).
AICONFIG_INGAME = 0x4, //!< This setting can be changed while the AI is running.
};
typedef SmallMap<int, char *> LabelMapping;
+11 -11
View File
@@ -39,8 +39,10 @@ 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");
@@ -274,7 +276,7 @@ AIInfo *AIScanner::SelectRandomAI() const
return (*it).second;
}
AIInfo *AIScanner::FindInfo(const char *nameParam, int versionParam)
AIInfo *AIScanner::FindInfo(const char *nameParam, int versionParam, bool force_exact_match)
{
if (this->info_list.size() == 0) return NULL;
if (nameParam == NULL) return NULL;
@@ -299,21 +301,19 @@ AIInfo *AIScanner::FindInfo(const char *nameParam, int versionParam)
/* Fall-through, like we were calling this function with a version */
}
/* 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];
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];
}
/* 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++) {
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)) {
if (strcasecmp(ai_name, (*it).second->GetName()) == 0 && (*it).second->CanLoadFromVersion(versionParam) && (version == -1 || (*it).second->GetVersion() > version)) {
version = (*it).second->GetVersion();
info = (*it).second;
}
+1 -1
View File
@@ -48,7 +48,7 @@ public:
/**
* Find an AI by name.
*/
class AIInfo *FindInfo(const char *name, int version);
class AIInfo *FindInfo(const char *name, int version, bool force_exact_match);
/**
* Get the list of available AIs for the console.
+5
View File
@@ -23,14 +23,19 @@
* \li AIEngine::IsBuildable
* \li AIEventCompanyAskMerger
* \li AIIndustry::GetLastMonthTransportedPercentage
* \li AIInfo::AICONFIG_INGAME
* \li AIMarine::GetBuildCost
* \li AIOrder::AIOF_GOTO_NEAREST_DEPOT
* \li AIRail::RemoveRailStationTileRectangle
* \li AIRail::RemoveRailWaypointTileRectangle
* \li AIRail::GetBuildCost
* \li AIRoad::GetBuildCost
* \li AISubsidy::SubsidyParticipantType
* \li AISubsidy::GetSourceType
* \li AISubsidy::GetSourceIndex
* \li AISubsidy::GetDestinationType
* \li AISubsidy::GetDestinationIndex
* \li AITile::GetBuildCost
* \li AITown::GetLastMonthTransportedPercentage
* \li AIVehicleList_Depot
* \li AIWaypoint::WaypointType
+1
View File
@@ -11,6 +11,7 @@
#include "ai_gamesettings.hpp"
#include "../../settings_internal.h"
#include "../../economy_func.h"
/* static */ bool AIGameSettings::IsValid(const char *setting)
{
+3 -3
View File
@@ -112,7 +112,7 @@
/* static */ bool AIGroup::SetAutoReplace(GroupID group_id, EngineID engine_id_old, EngineID engine_id_new)
{
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == GROUP_ALL);
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == GROUP_DEFAULT || 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_ALL) return ::INVALID_ENGINE;
if (!IsValidGroup(group_id) && group_id != GROUP_DEFAULT && 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_ALL);
EnforcePrecondition(false, IsValidGroup(group_id) || group_id == GROUP_DEFAULT || group_id == GROUP_ALL);
return AIObject::DoCommand(0, group_id << 16, (::INVALID_ENGINE << 16) | engine_id, CMD_SET_AUTOREPLACE);
}
+3 -3
View File
@@ -148,7 +148,7 @@ public:
* vehicles from all groups that haven't set autoreplace protection.
* @param engine_id_old The engine id to start replacing.
* @param engine_id_new The engine id to replace with.
* @pre IsValidGroup(group_id) || group_id == GROUP_ALL.
* @pre IsValidGroup(group_id) || group_id == GROUP_DEFAULT || 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_ALL.
* @pre IsValidGroup(group_id) || group_id == GROUP_DEFAULT || 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_ALL.
* @pre IsValidGroup(group_id) || group_id == GROUP_DEFAULT || group_id == GROUP_ALL.
* @return True if and if the replacing was succesfully stopped.
*/
static bool StopAutoReplace(GroupID group_id, EngineID engine_id);
+1
View File
@@ -184,6 +184,7 @@ public:
AICONFIG_NONE, //!< Normal setting.
AICONFIG_RANDOM, //!< When randomizing the AI, pick any value between min_value and max_value.
AICONFIG_BOOLEAN, //!< This value is a boolean (either 0 (false) or 1 (true) ).
AICONFIG_INGAME, //!< This setting can be changed while the AI is running.
};
/**
+11
View File
@@ -13,6 +13,7 @@
#include "ai_station.hpp"
#include "../../station_base.h"
#include "../../tile_cmd.h"
#include "../../economy_func.h"
/* static */ bool AIMarine::IsWaterDepotTile(TileIndex tile)
@@ -149,3 +150,13 @@
return AIObject::DoCommand(tile, 0, 0, CMD_LANDSCAPE_CLEAR);
}
/* static */ Money AIMarine::GetBuildCost(BuildType build_type)
{
switch (build_type) {
case BT_DOCK: return ::GetPrice(PR_BUILD_STATION_DOCK, 1, NULL);
case BT_DEPOT: return ::GetPrice(PR_BUILD_DEPOT_SHIP, 1, NULL);
case BT_BUOY: return ::GetPrice(PR_BUILD_WAYPOINT_BUOY, 1, NULL);
default: return -1;
}
}
+16
View File
@@ -33,6 +33,15 @@ 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.
@@ -191,6 +200,13 @@ public:
* @return Whether the canal has been/can be removed or not.
*/
static bool RemoveCanal(TileIndex tile);
/**
* Get the baseprice of building a water-related object.
* @param build_type the type of object to build
* @return The baseprice of building the given object.
*/
static Money GetBuildCost(BuildType build_type);
};
#endif /* AI_MARINE_HPP */
+6
View File
@@ -15,6 +15,8 @@ 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; }
@@ -32,6 +34,9 @@ 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);
@@ -53,6 +58,7 @@ 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);
}
+12 -3
View File
@@ -188,8 +188,7 @@ 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) {
for (uint i = 0; i < st->train_station.w; i++) {
TileIndex t = st->train_station.tile + TileDiffXY(i, 0);
TILE_AREA_LOOP(t, st->train_station) {
if (st->TileBelongsToRailStation(t)) return t;
}
} else if (st->dock_tile != INVALID_TILE) {
@@ -206,7 +205,17 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
}
return INVALID_TILE;
}
case OT_GOTO_WAYPOINT: return ::Waypoint::Get(order->GetDestination())->xy;
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;
}
default: return INVALID_TILE;
}
}
+16 -1
View File
@@ -19,6 +19,7 @@
#include "../../newgrf.h"
#include "../../newgrf_generic.h"
#include "../../newgrf_station.h"
#include "../../economy_func.h"
/* static */ bool AIRail::IsRailTile(TileIndex tile)
{
@@ -331,7 +332,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);
uint32 p2 = SimulateDrag(from, tile, &to) | 1 << 8;
return AIObject::DoCommand(tile, to, p2, CMD_BUILD_RAILROAD_TRACK);
}
@@ -454,3 +455,17 @@ static bool IsValidSignalType(int signal_type)
return AIObject::DoCommand(tile, track, 0, CMD_REMOVE_SIGNALS);
}
/* static */ Money AIRail::GetBuildCost(RailType railtype, BuildType build_type)
{
if (!AIRail::IsRailTypeAvailable(railtype)) return -1;
switch (build_type) {
case BT_TRACK: return ::RailBuildCost((::RailType)railtype);
case BT_SIGNAL: return ::GetPrice(PR_BUILD_SIGNALS, 1, NULL);
case BT_DEPOT: return ::GetPrice(PR_BUILD_DEPOT_TRAIN, 1, NULL);
case BT_STATION: return ::GetPrice(PR_BUILD_STATION_RAIL, 1, NULL) + ::GetPrice(PR_BUILD_STATION_RAIL_LENGTH, 1, NULL);
case BT_WAYPOINT: return ::GetPrice(PR_BUILD_WAYPOINT_RAIL, 1, NULL);
default: return -1;
}
}
+21
View File
@@ -81,6 +81,17 @@ 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
@@ -369,6 +380,7 @@ 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);
@@ -419,6 +431,15 @@ public:
* @return Whether the signal has been/can be removed or not.
*/
static bool RemoveSignal(TileIndex tile, TileIndex front);
/**
* Get the baseprice of building a rail-related object.
* @param railtype the railtype that is build (on)
* @param build_type the type of object to build
* @pre IsRailTypeAvailable(railtype)
* @return The baseprice of building the given object.
*/
static Money GetBuildCost(RailType railtype, BuildType build_type);
};
#endif /* AI_RAIL_HPP */
+8
View File
@@ -21,6 +21,8 @@ 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; }
@@ -60,6 +62,11 @@ 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);
@@ -98,6 +105,7 @@ 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);
}
+14 -1
View File
@@ -471,7 +471,7 @@ static bool NeighbourHasReachableRoad(::RoadTypes rts, TileIndex start_tile, Dia
EnforcePrecondition(false, !one_way || AIObject::GetRoadType() == ::ROADTYPE_ROAD);
EnforcePrecondition(false, IsRoadTypeAvailable(GetCurrentRoadType()));
return AIObject::DoCommand(start, end, (::TileY(start) != ::TileY(end) ? 4 : 0) | (((start < end) == !full) ? 1 : 2) | (AIObject::GetRoadType() << 3) | ((one_way ? 1 : 0) << 5), 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) | 1 << 6, CMD_BUILD_LONG_ROAD);
}
/* static */ bool AIRoad::BuildRoad(TileIndex start, TileIndex end)
@@ -579,3 +579,16 @@ static bool NeighbourHasReachableRoad(::RoadTypes rts, TileIndex start_tile, Dia
return AIObject::DoCommand(tile, 0, GetRoadStopType(tile), CMD_REMOVE_ROAD_STOP);
}
/* static */ Money AIRoad::GetBuildCost(RoadType roadtype, BuildType build_type)
{
if (!AIRoad::IsRoadTypeAvailable(roadtype)) return -1;
switch (build_type) {
case BT_ROAD: return ::GetPrice(PR_BUILD_ROAD, 1, NULL);
case BT_DEPOT: return ::GetPrice(PR_BUILD_DEPOT_ROAD, 1, NULL);
case BT_BUS_STOP: return ::GetPrice(PR_BUILD_STATION_BUS, 1, NULL);
case BT_TRUCK_STOP: return ::GetPrice(PR_BUILD_STATION_TRUCK, 1, NULL);
default: return -1;
}
}
+23
View File
@@ -63,6 +63,16 @@ 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.
@@ -253,6 +263,7 @@ 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);
@@ -279,6 +290,7 @@ 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);
@@ -301,6 +313,7 @@ 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);
@@ -328,6 +341,7 @@ 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);
@@ -451,6 +465,15 @@ public:
*/
static bool RemoveRoadStation(TileIndex tile);
/**
* Get the baseprice of building a road-related object.
* @param roadtype the roadtype that is build (on)
* @param build_type the type of object to build
* @pre IsRoadTypeAvailable(railtype)
* @return The baseprice of building the given object.
*/
static Money GetBuildCost(RoadType roadtype, BuildType build_type);
private:
/**
+7
View File
@@ -19,6 +19,8 @@ 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; }
@@ -44,6 +46,10 @@ 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);
@@ -82,6 +88,7 @@ void SQAIRoad_Register(Squirrel *engine)
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::RemoveRoadFull, "RemoveRoadFull", 3, ".ii");
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::RemoveRoadDepot, "RemoveRoadDepot", 2, ".i");
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::RemoveRoadStation, "RemoveRoadStation", 2, ".i");
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::GetBuildCost, "GetBuildCost", 3, ".ii");
SQAIRoad.PostRegister(engine);
}
+16
View File
@@ -19,6 +19,7 @@
#include "../../tree_map.h"
#include "../../town.h"
#include "../../landscape.h"
#include "../../economy_func.h"
/* static */ bool AITile::IsBuildable(TileIndex tile)
{
@@ -271,3 +272,18 @@
return ::ClosestTownFromTile(tile, UINT_MAX)->index;
}
/* static */ Money AITile::GetBuildCost(BuildType build_type)
{
switch (build_type) {
case BT_FOUNDATION: return ::GetPrice(PR_BUILD_FOUNDATION, 1, NULL);
case BT_TERRAFORM: return ::GetPrice(PR_TERRAFORM, 1, NULL);
case BT_BUILD_TREES: return ::GetPrice(PR_BUILD_TREES, 1, NULL);
case BT_CLEAR_GRASS: return ::GetPrice(PR_CLEAR_GRASS, 1, NULL);
case BT_CLEAR_ROUGH: return ::GetPrice(PR_CLEAR_ROUGH, 1, NULL);
case BT_CLEAR_ROCKY: return ::GetPrice(PR_CLEAR_ROCKS, 1, NULL);
case BT_CLEAR_FIELDS: return ::GetPrice(PR_CLEAR_FIELDS, 1, NULL);
case BT_CLEAR_HOUSE: return ::GetPrice(PR_CLEAR_HOUSE, 1, NULL);
default: return -1;
}
}
+21
View File
@@ -103,6 +103,20 @@ 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.
@@ -435,6 +449,13 @@ public:
* @return The TownID of the town closest to the tile.
*/
static TownID GetClosestTown(TileIndex tile);
/**
* Get the baseprice of building/clearing various tile-related things.
* @param build_type the type to build
* @return The baseprice of building or removing the given object.
*/
static Money GetBuildCost(BuildType build_type);
};
#endif /* AI_TILE_HPP */
+11
View File
@@ -21,6 +21,8 @@ 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; }
@@ -73,6 +75,14 @@ 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);
@@ -116,6 +126,7 @@ 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);
}
+18 -9
View File
@@ -200,7 +200,7 @@ static SpriteID GetAircraftIcon(EngineID engine)
return DIR_W + _aircraft_sprite[spritenum];
}
void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID engine, SpriteID pal)
void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal)
{
SpriteID sprite = GetAircraftIcon(engine);
const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
@@ -531,10 +531,8 @@ static void CheckIfAircraftNeedsService(Aircraft *v)
assert(st != NULL);
/* 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;
/* only goto depot if the target airport has a depot */
if (st->GetAirportSpec()->nof_depots > 0 && CanVehicleUseStation(v, st)) {
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)) {
@@ -838,6 +836,9 @@ 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.
@@ -969,6 +970,11 @@ 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;
@@ -1285,17 +1291,21 @@ 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 */
uint16 prob = 0x10000 / 1500;
uint32 prob = (0x4000 << _settings_game.vehicle.plane_crashes);
if ((st->Airport()->flags & AirportFTAClass::SHORT_STRIP) &&
(AircraftVehInfo(v->engine_type)->subtype & AIR_FAST) &&
!_cheats.no_jetcrash.value) {
prob = 0x10000 / 20;
prob /= 20;
} else {
prob /= 1500;
}
if (GB(Random(), 0, 16) > prob) return;
if (GB(Random(), 0, 22) > prob) return;
/* Crash the airplane. Remove all goods stored at the station. */
for (CargoID i = 0; i < NUM_CARGO; i++) {
@@ -1338,7 +1348,6 @@ static void AircraftLandAirplane(Aircraft *v)
if (!PlayVehicleSound(v, VSE_TOUCHDOWN)) {
SndPlayVehicleFx(SND_17_SKID_PLANE, v);
}
MaybeCrashAirplane(v);
}
+1 -1
View File
@@ -87,7 +87,7 @@ void DrawAircraftImage(const Vehicle *v, int left, int right, int y, VehicleID s
int x = rtl ? right - real_sprite->width - real_sprite->x_offs : left - real_sprite->x_offs;
bool helicopter = v->subtype == AIR_HELICOPTER;
SpriteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
DrawSprite(sprite, pal, x, y + 10);
if (helicopter) {
const Aircraft *a = Aircraft::From(v);
+1 -106
View File
@@ -16,112 +16,7 @@
#include "core/alloc_func.hpp"
#include "date_func.h"
#include "settings_type.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/airporttile_ids.h"
#include "table/airport_defaults.h"
#include "table/airporttiles.h"
+2 -6
View File
@@ -21,11 +21,7 @@ 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 = 144, ///< total number of airport tiles
};
enum {
AIRPORTTILE_NOANIM = 0xFF, ///< flag to mark airport tiles as having no animation
NUM_AIRPORTTILES = 74, ///< total number of airport tiles
};
/** Airport types */
@@ -79,7 +75,7 @@ struct AirportSpec {
* Defines the data structure of each indivudual tile of an airport.
*/
struct AirportTileSpec {
StationGfx anim_next; ///< Next StationGfx in an animation
uint16 animation_info; ///< Information about the animation (is it looping, how many loops etc)
uint8 animation_speed; ///< The speed of the animation
static const AirportTileSpec *Get(StationGfx gfx);
+2 -2
View File
@@ -90,7 +90,7 @@ struct BuildAirToolbarWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
if (!IsInsideBS(widget, ATW_AIRPORT, lengthof(_build_air_button_proc))) return;
@@ -257,7 +257,7 @@ public:
}
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case BAW_SMALL_AIRPORT: case BAW_CITY_AIRPORT: case BAW_HELIPORT: case BAW_METRO_AIRPORT:
+1 -3
View File
@@ -50,9 +50,7 @@ static bool EnginesHaveCargoInCommon(EngineID engine_a, EngineID engine_b)
*/
bool CheckAutoreplaceValidity(EngineID from, EngineID to, CompanyID company)
{
/* 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;
assert(Engine::IsValidID(from) && Engine::IsValidID(to));
/* we can't replace an engine into itself (that would be autorenew) */
if (from == to) return false;
+1 -1
View File
@@ -399,7 +399,7 @@ public:
}
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case RVW_WIDGET_TRAIN_ENGINEWAGON_TOGGLE:
+1 -12
View File
@@ -209,7 +209,7 @@ void Blitter_32bppAnim::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomL
}
}
void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height, int pal)
void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height, PaletteID 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,17 +261,6 @@ 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) {
+1 -2
View File
@@ -28,9 +28,8 @@ public:
{}
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, int pal);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal);
/* virtual */ void SetPixel(void *video, int x, int y, uint8 colour);
/* virtual */ void SetPixelIfEmpty(void *video, int x, int y, uint8 colour);
/* virtual */ void DrawRect(void *video, int width, int height, uint8 colour);
/* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height);
/* virtual */ void CopyToBuffer(const void *video, void *dst, int width, int height);
-6
View File
@@ -22,12 +22,6 @@ 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);
+1 -2
View File
@@ -20,11 +20,10 @@ 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, int pal);
// /* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal);
// /* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
/* virtual */ void *MoveTo(const void *video, int x, int y);
/* virtual */ void SetPixel(void *video, int x, int y, uint8 colour);
/* virtual */ void SetPixelIfEmpty(void *video, int x, int y, uint8 colour);
/* virtual */ void DrawRect(void *video, int width, int height, uint8 colour);
/* virtual */ void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour);
/* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height);
+1 -1
View File
@@ -63,7 +63,7 @@ void Blitter_32bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoo
}
}
void Blitter_32bppSimple::DrawColourMappingRect(void *dst, int width, int height, int pal)
void Blitter_32bppSimple::DrawColourMappingRect(void *dst, int width, int height, PaletteID pal)
{
uint32 *udst = (uint32 *)dst;
+1 -1
View File
@@ -18,7 +18,7 @@
class Blitter_32bppSimple : public Blitter_32bppBase {
public:
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, int pal);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal);
/* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
/* virtual */ const char *GetName() { return "32bpp-simple"; }
+1 -7
View File
@@ -13,7 +13,7 @@
#include "../gfx_func.h"
#include "8bpp_base.hpp"
void Blitter_8bppBase::DrawColourMappingRect(void *dst, int width, int height, int pal)
void Blitter_8bppBase::DrawColourMappingRect(void *dst, int width, int height, PaletteID pal)
{
const uint8 *ctab = GetNonSprite(pal, ST_RECOLOUR) + 1;
@@ -33,12 +33,6 @@ 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 {
+1 -2
View File
@@ -18,11 +18,10 @@ 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, int pal);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal);
// /* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
/* virtual */ void *MoveTo(const void *video, int x, int y);
/* virtual */ void SetPixel(void *video, int x, int y, uint8 colour);
/* virtual */ void SetPixelIfEmpty(void *video, int x, int y, uint8 colour);
/* virtual */ void DrawRect(void *video, int width, int height, uint8 colour);
/* virtual */ void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour);
/* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height);
+1 -10
View File
@@ -68,7 +68,7 @@ public:
* @param height the height of the buffer.
* @param pal the palette to use.
*/
virtual void DrawColourMappingRect(void *dst, int width, int height, int pal) = 0;
virtual void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal) = 0;
/**
* Convert a sprite from the loader to our own format.
@@ -94,15 +94,6 @@ 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).
+1 -2
View File
@@ -19,11 +19,10 @@ 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, int pal) {};
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal) {};
/* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator);
/* virtual */ void *MoveTo(const void *video, int x, int y) { return NULL; };
/* virtual */ void SetPixel(void *video, int x, int y, uint8 colour) {};
/* virtual */ void SetPixelIfEmpty(void *video, int x, int y, uint8 colour) {};
/* virtual */ void DrawRect(void *video, int width, int height, uint8 colour) {};
/* virtual */ void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour) {};
/* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height) {};
+1 -1
View File
@@ -47,7 +47,7 @@ struct BridgeSpec {
uint16 price; ///< the price multiplier
uint16 speed; ///< maximum travel speed
SpriteID sprite; ///< the sprite which is used in the GUI
SpriteID pal; ///< the palette which is used in the GUI
PaletteID pal; ///< the palette which is used in the GUI
StringID material; ///< the string that contains the bridge description
StringID transport_name[2]; ///< description of the bridge, when built for road or rail
PalSpriteID **sprite_table; ///< table of sprites for drawing the bridge
+1 -1
View File
@@ -243,7 +243,7 @@ public:
return ES_NOT_HANDLED;
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
default: break;
+3 -10
View File
@@ -479,7 +479,7 @@ static int DrawRailEnginePurchaseInfo(int left, int right, int y, EngineID engin
y += FONT_HEIGHT_NORMAL;
/* Max tractive effort - not applicable if old acceleration or maglev */
if (_settings_game.vehicle.train_acceleration_model != TAM_ORIGINAL && GetRailTypeInfo(rvi->railtype)->acceleration_type != 2) {
if (_settings_game.vehicle.train_acceleration_model != AM_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)
void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case BUILD_VEHICLE_WIDGET_SORT_ASSENDING_DESCENDING:
@@ -1017,6 +1017,7 @@ 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;
}
@@ -1128,14 +1129,6 @@ struct BuildVehicleWindow : Window {
}
}
virtual void OnDoubleClick(Point pt, int widget)
{
if (widget == BUILD_VEHICLE_WIDGET_LIST) {
/* When double clicking, we want to buy a vehicle */
this->OnClick(pt, BUILD_VEHICLE_WIDGET_BUILD);
}
}
virtual void OnQueryTextFinished(char *str)
{
if (str == NULL) return;
+1 -1
View File
@@ -271,7 +271,7 @@ struct CheatWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
const NWidgetBase *wid = this->GetWidget<NWidgetBase>(CW_PANEL);
uint btn = (pt.y - wid->pos_y - WD_FRAMERECT_TOP - this->header_height) / (FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL);
+1 -1
View File
@@ -33,7 +33,7 @@ static CommandCost ClearTile_Clear(TileIndex tile, DoCommandFlag flags)
PR_CLEAR_GRASS,
PR_CLEAR_ROUGH,
PR_CLEAR_ROCKS,
PR_CLEAR_FILEDS,
PR_CLEAR_FIELDS,
PR_CLEAR_ROUGH,
PR_CLEAR_ROUGH,
};
+1 -3
View File
@@ -65,7 +65,6 @@ CommandProc CmdRemoveRoadStop;
CommandProc CmdBuildLongRoad;
CommandProc CmdRemoveLongRoad;
CommandProc CmdBuildRoad;
CommandProc CmdRemoveRoad;
CommandProc CmdBuildRoadDepot;
@@ -221,8 +220,7 @@ 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, 0}, // CMD_BUILD_ROAD
{CmdRemoveRoad, 0}, // CMD_REMOVE_ROAD
{CmdBuildRoad, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_ROAD
{CmdBuildRoadDepot, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_ROAD_DEPOT
{CmdBuildAirport, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_AIRPORT
-1
View File
@@ -188,7 +188,6 @@ enum {
CMD_BUILD_LONG_ROAD, ///< build a complete road (not a "half" one)
CMD_REMOVE_LONG_ROAD, ///< remove a complete road (not a "half" one)
CMD_BUILD_ROAD, ///< build a "half" road
CMD_REMOVE_ROAD, ///< remove a "half" road
CMD_BUILD_ROAD_DEPOT, ///< build a road depot
CMD_BUILD_AIRPORT, ///< build an airport
+1 -1
View File
@@ -107,7 +107,7 @@ struct Company : CompanyPool::PoolItem<&_company_pool> {
#define FOR_ALL_COMPANIES_FROM(var, start) FOR_ALL_ITEMS_FROM(Company, company_index, var, start)
#define FOR_ALL_COMPANIES(var) FOR_ALL_COMPANIES_FROM(var, 0)
Money CalculateCompanyValue(const Company *c);
Money CalculateCompanyValue(const Company *c, bool including_loan = true);
extern uint _next_competitor_start;
extern uint _cur_company_tick_index;
+4 -1
View File
@@ -663,7 +663,10 @@ 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);
@@ -671,7 +674,7 @@ CommandCost CmdSetAutoReplace(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
cost = RemoveEngineReplacementForCompany(c, old_engine_type, id_g, flags);
}
if (IsLocalCompany()) InvalidateAutoreplaceWindow(old_engine_type, id_g);
if ((flags & DC_EXEC) && IsLocalCompany()) InvalidateAutoreplaceWindow(old_engine_type, id_g);
return cost;
}
+6 -6
View File
@@ -433,7 +433,7 @@ struct CompanyFinancesWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case CFW_TOGGLE_SIZE: // toggle size
@@ -729,7 +729,7 @@ public:
}
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
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;
SpriteID pal;
PaletteID 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)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
/* Toggle size, advanced/simple face selection */
@@ -1916,7 +1916,7 @@ struct CompanyWindow : Window
}
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case CW_WIDGET_NEW_FACE: DoSelectCompanyManagerFace(this); break;
@@ -2115,7 +2115,7 @@ struct BuyCompanyWindow : Window {
}
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case BCW_NO:
+23 -2
View File
@@ -213,7 +213,7 @@ DEF_CONSOLE_CMD(ConSave)
if (SaveOrLoad(filename, SL_SAVE, SAVE_DIR) != SL_OK) {
IConsolePrint(CC_ERROR, "Saving map failed");
} else {
IConsolePrintF(CC_DEFAULT, "Map sucessfully saved to %s", filename);
IConsolePrintF(CC_DEFAULT, "Map successfully 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]);
config->ChangeAI(argv[1], -1, true);
if (!config->HasAI()) {
IConsoleWarning("Failed to load the specified AI");
return true;
@@ -1713,6 +1713,25 @@ 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) {
@@ -1818,6 +1837,7 @@ void IConsoleStdLibRegister()
IConsoleCmdRegister("pwd", ConPrintWorkingDirectory);
IConsoleCmdRegister("clear", ConClearBuffer);
IConsoleCmdRegister("setting", ConSetting);
IConsoleCmdRegister("setting_newgame", ConSettingNewgame);
IConsoleCmdRegister("list_settings",ConListSettings);
IConsoleCmdRegister("gamelog", ConGamelogPrint);
@@ -1828,6 +1848,7 @@ void IConsoleStdLibRegister()
IConsoleAliasRegister("new_game", "newgame");
IConsoleAliasRegister("patch", "setting %+");
IConsoleAliasRegister("set", "setting %+");
IConsoleAliasRegister("set_newgame", "setting_newgame %+");
IConsoleAliasRegister("list_patches", "list_settings %+");
+8 -4
View File
@@ -76,16 +76,20 @@ 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()
FORCEINLINE T *Append(uint to_add = 1)
{
if (this->items == this->capacity) {
this->capacity += S;
uint begin = this->items;
this->items += to_add;
if (this->items > this->capacity) {
this->capacity = Align(this->items, S);
this->data = ReallocT(this->data, this->capacity);
}
return &this->data[this->items++];
return &this->data[begin];
}
/**
+1
View File
@@ -30,6 +30,7 @@
#include "company_base.h"
#include "company_func.h"
#include <time.h>
/* static */ const char *CrashLog::message = NULL;
/* static */ char *CrashLog::gamelog_buffer = NULL;
+1 -1
View File
@@ -151,7 +151,7 @@ struct SetDateWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case SDW_DAY:
+1 -1
View File
@@ -711,7 +711,7 @@ struct DepotWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case DEPOT_WIDGET_MATRIX: { // List
+3 -3
View File
@@ -181,7 +181,7 @@ struct BuildDocksToolbarWindow : Window {
this->DrawWidgets();
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
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)
virtual void OnClick(Point pt, int widget, int click_count)
{
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)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case BDDW_X:
+12 -3
View File
@@ -110,7 +110,16 @@ Prices _price;
Money _additional_cash_required;
static PriceMultipliers _price_base_multiplier;
Money CalculateCompanyValue(const Company *c)
/**
* 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)
{
Owner owner = c->index;
Money value = 0;
@@ -137,7 +146,7 @@ Money CalculateCompanyValue(const Company *c)
}
/* Add real money value */
value -= c->current_loan;
if (including_loan) value -= c->current_loan;
value += c->money;
return max(value, (Money)1);
@@ -507,7 +516,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);
Money val = CalculateCompanyValue(c, false);
if (val > 0) {
c->bankrupt_value = val;
c->bankrupt_asked = 1 << c->index; // Don't ask the owner
+1 -1
View File
@@ -89,7 +89,7 @@ enum Price {
PR_CLEAR_GRASS,
PR_CLEAR_ROUGH,
PR_CLEAR_ROCKS,
PR_CLEAR_FILEDS,
PR_CLEAR_FIELDS,
PR_CLEAR_TREES,
PR_CLEAR_RAIL,
PR_CLEAR_SIGNALS,
+3 -3
View File
@@ -106,7 +106,7 @@ struct EnginePreviewWindow : Window {
DrawStringMultiLine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, r.bottom, GetEngineInfoString(engine), TC_FROMSTRING, SA_CENTER);
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
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 != 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;
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;
}
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, SpriteID pal)
void DrawVehicleEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal)
{
const Engine *e = Engine::Get(engine);
+5 -5
View File
@@ -25,10 +25,10 @@ void EngList_SortPartial(GUIEngineList *el, EngList_SortTypeFunction compare, ui
StringID GetEngineCategoryName(EngineID engine);
StringID GetEngineInfoString(EngineID engine);
void DrawVehicleEngine(int left, int right, int preferred_x, int y, EngineID engine, 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);
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);
#endif /* ENGINE_GUI_H */
+1 -1
View File
@@ -279,7 +279,7 @@ char *FioFindFullPath(char *buf, size_t buflen, Subdirectory subdir, const char
/* Be, as opening files, aware that sometimes the filename
* might be in uppercase when it is in lowercase on the
* disk. Ofcourse Windows doesn't care about casing. */
strtolower(buf + ((subdir == NO_DIRECTORY) ? 0 : strlen(_searchpaths[sp]) - 1));
strtolower(buf + strlen(_searchpaths[sp]) - 1);
if (FileExists(buf)) break;
#endif
}
+8 -6
View File
@@ -519,7 +519,7 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
this->DrawEditBox(GLAND_RANDOM_EDITBOX);
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
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_NONE);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_START_DATE_QUERY_CAPT, 8, 100, this, CS_NUMERAL, QSF_ENABLE_DEFAULT);
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_NONE);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_SNOW_LINE_QUERY_CAPT, 3, 100, this, CS_NUMERAL, QSF_ENABLE_DEFAULT);
break;
case GLAND_TREE_PULLDOWN: // Tree placer
@@ -732,6 +732,9 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
virtual void OnQueryTextFinished(char *str)
{
/* Was 'cancel' pressed? */
if (str == NULL) return;
int32 value;
if (!StrEmpty(str)) {
value = atoi(str);
@@ -740,7 +743,6 @@ 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();
}
}
@@ -919,7 +921,7 @@ struct CreateScenarioWindow : public Window
size->height += padding.height;
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case CSCEN_TEMPERATE:
@@ -1159,7 +1161,7 @@ struct GenerateProgressWindow : public Window {
this->InitNested(&_generate_progress_desc);
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case GPWW_ABORT:
+3 -3
View File
@@ -1028,7 +1028,7 @@ Dimension GetSpriteSize(SpriteID sprid)
* @param y Top coordinate of image
* @param sub If available, draw only specified part of the sprite
*/
void DrawSprite(SpriteID img, SpriteID pal, int x, int y, const SubSprite *sub)
void DrawSprite(SpriteID img, PaletteID 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(SpriteID cursor, SpriteID pal)
static void SetCursorSprite(CursorID cursor, PaletteID pal)
{
CursorVars *cv = &_cursor;
const Sprite *p;
@@ -1682,7 +1682,7 @@ void CursorTick()
SwitchAnimatedCursor();
}
void SetMouseCursor(SpriteID sprite, SpriteID pal)
void SetMouseCursor(CursorID sprite, PaletteID pal)
{
/* Turn off animation */
_cursor.animate_timeout = 0;
+2 -2
View File
@@ -91,7 +91,7 @@ void RedrawScreenRect(int left, int top, int right, int bottom);
void GfxScroll(int left, int top, int width, int height, int xo, int yo);
Dimension GetSpriteSize(SpriteID sprid);
void DrawSprite(SpriteID img, SpriteID pal, int x, int y, const SubSprite *sub = NULL);
void DrawSprite(SpriteID img, PaletteID 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(SpriteID sprite, SpriteID pal);
void SetMouseCursor(CursorID cursor, PaletteID pal);
void SetAnimatedMouseCursor(const AnimCursor *table);
void CursorTick();
bool ChangeResInGame(int w, int h);
+6 -5
View File
@@ -16,14 +16,15 @@
#include "core/geometry_type.hpp"
#include "zoom_type.h"
typedef uint32 SpriteID; ///< The number of a sprite, without mapping bits and colourtables
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)
/** Combination of a palette sprite and a 'real' sprite */
struct PalSpriteID {
SpriteID sprite; ///< The 'real' sprite
SpriteID pal; ///< The palette (use \c PAL_NONE) if not needed)
PaletteID pal; ///< The palette (use \c PAL_NONE) if not needed)
};
typedef int32 CursorID;
enum WindowKeyCodes {
WKC_SHIFT = 0x8000,
@@ -113,8 +114,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
SpriteID sprite; ///< current image of cursor
SpriteID pal;
CursorID sprite; ///< current image of cursor
PaletteID pal;
int wheel; ///< mouse wheel movement
+6 -6
View File
@@ -81,7 +81,7 @@ struct GraphLegendWindow : Window {
DrawString(r.left + (rtl ? WD_FRAMERECT_LEFT : 19), r.right - (rtl ? 19 : WD_FRAMERECT_RIGHT), r.top + WD_FRAMERECT_TOP, STR_COMPANY_NAME_COMPANY_NUM, HasBit(_legend_excluded_companies, cid) ? TC_BLACK : TC_WHITE);
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
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)
virtual void OnClick(Point pt, int widget, int click_count)
{
/* 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)
virtual void OnClick(Point pt, int widget, int click_count)
{
if (widget == PHW_DETAILED_PERFORMANCE) ShowPerformanceRatingDetail();
this->BaseGraphWindow::OnClick(pt, widget);
this->BaseGraphWindow::OnClick(pt, widget, click_count);
}
};
@@ -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)
virtual void OnClick(Point pt, int widget, int click_count)
{
if (widget >= CPW_CARGO_FIRST) {
int i = 0;
@@ -1330,7 +1330,7 @@ struct PerformanceRatingDetailWindow : Window {
}
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
/* Check which button is clicked */
if (IsInsideMM(widget, PRW_COMPANY_FIRST, PRW_COMPANY_LAST + 1)) {
+11 -6
View File
@@ -421,7 +421,7 @@ public:
}
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
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);
this->ShowRenameGroupWindow(this->group_sel, false);
break;
case GRP_WIDGET_AVAILABLE_VEHICLES:
@@ -658,12 +658,17 @@ public:
this->SetWidgetDirty(GRP_WIDGET_LIST_VEHICLE);
}
void ShowRenameGroupWindow(GroupID group)
void ShowRenameGroupWindow(GroupID group, bool empty)
{
assert(Group::IsValidID(group));
this->group_rename = group;
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);
/* 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);
}
/**
@@ -730,7 +735,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);
if (w != NULL) w->ShowRenameGroupWindow(_new_group_id, true);
}
/**
+1 -1
View File
@@ -59,7 +59,7 @@ struct EndGameHighScoreBaseWindow : Window {
return pt;
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
delete this;
}
+4 -15
View File
@@ -310,8 +310,6 @@ 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) {
@@ -336,12 +334,7 @@ static void DrawTile_Industry(TileInfo *ti)
GetIndustryAnimationState(ti->tile) & INDUSTRY_COMPLETED :
GetIndustryConstructionStage(ti->tile))];
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;
}
SpriteID image = dits->ground.sprite;
/* DrawFoundation() modifes ti->z and ti->tileh */
if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED);
@@ -351,7 +344,7 @@ static void DrawTile_Industry(TileInfo *ti)
if (image == SPR_FLAT_WATER_TILE && IsIndustryTileOnWater(ti->tile)) {
DrawWaterClassGround(ti);
} else {
DrawGroundSprite(image, pal);
DrawGroundSprite(image, GroundSpritePaletteTransform(image, dits->ground.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)));
}
/* If industries are transparent and invisible, do not draw the upper part */
@@ -360,8 +353,7 @@ static void DrawTile_Industry(TileInfo *ti)
/* Add industry on top of the ground? */
image = dits->building.sprite;
if (image != 0) {
AddSortableSpriteToDraw(image,
(HasBit(image, PALETTE_MODIFIER_COLOUR) && dits->building.pal == PAL_NONE) ? GENERAL_SPRITE_COLOUR(ind->random_colour) : dits->building.pal,
AddSortableSpriteToDraw(image, SpriteLayoutPaletteTransform(image, dits->building.pal, GENERAL_SPRITE_COLOUR(ind->random_colour)),
ti->x + dits->subtile_x,
ti->y + dits->subtile_y,
dits->width,
@@ -1290,12 +1282,9 @@ static bool CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTileTable
do {
IndustryGfx gfx = GetTranslatedIndustryTileID(it->gfx);
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);
TileIndex cur_tile = TileAddWrap(tile, it->ti.x, it->ti.y);
if (!IsValidTile(cur_tile)) {
if (gfx == GFX_WATERTILE_SPECIALCHECK) continue;
return false;
}
+4 -9
View File
@@ -391,13 +391,7 @@ public:
this->DrawWidgets();
}
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)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case DPIW_MATRIX_WIDGET: {
@@ -419,6 +413,7 @@ 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;
@@ -703,7 +698,7 @@ public:
if (widget == IVW_INFO) size->height = this->info_height;
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
Industry *i;
@@ -1105,7 +1100,7 @@ public:
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
switch (widget) {
case IDW_DROPDOWN_ORDER:
+1 -1
View File
@@ -97,7 +97,7 @@ struct SelectGameWindow : public Window {
*size = maxdim(*size, textdim);
}
virtual void OnClick(Point pt, int widget)
virtual void OnClick(Point pt, int widget, int click_count)
{
#ifdef ENABLE_NETWORK
/* Do not create a network server when you (just) have closed one of the game
+12 -16
View File
@@ -1201,10 +1201,6 @@ 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
@@ -2445,14 +2441,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 :{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}
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}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Subsidiee
@@ -3541,10 +3537,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 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_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_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...
+8 -12
View File
@@ -1200,10 +1200,6 @@ 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 :الأكثر استخداما
@@ -2449,14 +2445,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 :{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}
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}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}العروض
+8 -12
View File
@@ -1177,10 +1177,6 @@ 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
@@ -2404,14 +2400,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 :{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}
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}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Subsídios
+148 -32
View File
@@ -220,6 +220,7 @@ 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}Избери критерий за сортиране
@@ -258,6 +259,8 @@ 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 :Транспортирано
@@ -313,6 +316,7 @@ 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}Запис, зареждане на сценарий, затваряне на редактора, изход
@@ -366,7 +370,9 @@ 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 :Списък от градовете
############ both ranges ends here
############ end of the 'Display map' dropdown
STR_TOWN_MENU_FOUND_TOWN :Основи град
############ end of the 'Town' dropdown
############ range for subsidies menu starts
STR_SUBSIDIES_MENU_SUBSIDIES :Субсидии
@@ -519,6 +525,7 @@ 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}Легенда на графиката за компаниите
@@ -576,6 +583,9 @@ 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}------
@@ -598,6 +608,8 @@ 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}"
@@ -682,6 +694,9 @@ 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}Покажи последното съобщение или отчет на новините
@@ -754,6 +769,8 @@ 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}!
@@ -931,14 +948,23 @@ 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}
@@ -950,6 +976,7 @@ 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
@@ -991,6 +1018,13 @@ 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 :средно
@@ -1046,7 +1080,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.f}{LTBLUE} (трябва NPF)
STR_CONFIG_SETTING_FORBID_90_DEG :{LTBLUE}Забрана 90 градусови завои: {ORANGE}{STRING}{LTBLUE} (не може с OPF)
STR_CONFIG_SETTING_JOINSTATIONS :{LTBLUE}Обединяване на гари построени една до друга: {ORANGE}{STRING}
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :{LTBLUE}Позволено е присъединяването на станции, които не се допират: {ORANGE}{STRING}
STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}Подобрен алгоритъм за зареждане: {ORANGE}{STRING}
@@ -1077,6 +1111,10 @@ 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}
@@ -1117,6 +1155,7 @@ 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}
@@ -1158,12 +1197,9 @@ 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 :най-използваните
@@ -1183,6 +1219,7 @@ 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} дни/%
@@ -1221,6 +1258,15 @@ 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 :ляво
@@ -1292,7 +1338,7 @@ STR_INTRO_ONLINE_CONTENT :{BLACK}Пров
STR_INTRO_AI_SETTINGS :{BLACK}AI Настройки
STR_INTRO_QUIT :{BLACK}Излез
STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Започни нова игра
STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Започни нова игра. Ctrl+Click пропуска конфигурацията на картата
STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Отвори запасена игра
STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Нова игра, използвайки височинна карта като терен
STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Започни нова игра, използвайки предварително моделиран карта-свят
@@ -1322,8 +1368,9 @@ STR_QUIT_NO :{BLACK}Не
STR_OSNAME_WINDOWS :Windows
STR_OSNAME_DOS :ДОС
STR_OSNAME_UNIX :Unix
STR_OSNAME_OSX :ОС Х
STR_OSNAME_OSX :OS{NBSP}X
STR_OSNAME_BEOS :BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_MORPHOS :MorphOS
STR_OSNAME_AMIGAOS :AmigaOS
STR_OSNAME_OS2 :OS/2
@@ -1627,6 +1674,7 @@ 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 :Кажи на компания
@@ -1655,6 +1703,7 @@ 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}
@@ -1702,10 +1751,20 @@ 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})
@@ -1736,6 +1795,7 @@ 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}
@@ -1748,6 +1808,7 @@ 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!
@@ -1758,6 +1819,7 @@ 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}Изтегляне на съдържанието...
@@ -1799,6 +1861,8 @@ 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}Конструкции за Двурелсов път
@@ -1810,7 +1874,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}Построй ЖП гара
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Построй ЖП гара. Ctrl позволява съединяването на гари
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Построй ЖП сигнализация
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Построй ЖП мост
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Строене на жп тунел
@@ -1879,16 +1943,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}Строене на път
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_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_VEHICLE_DEPOT :{BLACK}Строене на гараж (за строене и сервиз на МПС-та)
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Строене на трамвайно депо (за покупка и обслужване на трамваи)
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_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_TOGGLE_ONE_WAY_ROAD :{BLACK}Активирай/Деактивирай еднопосочни пътища
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}Построй мост
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}Строене на мост за трамваи
@@ -1919,7 +1983,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}Създай Пристанище
STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}Създай Пристанище. Ctrl позволява съединяването на пристанища
STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Поставете шамандура, използва се като отправна точка
STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}Построй акведукт
STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Определи водна площ.{}Построи канал, освем когато CTRL е натиснат на морско ниво, когато ще наводни околната среда в замяна
@@ -1934,7 +1998,7 @@ STR_STATION_BUILD_DOCK_CAPTION :{WHITE}Док
# Airport toolbar
STR_TOOLBAR_AIRCRAFT_CAPTION :{WHITE}Летища
STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}Строене на летище
STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}Строене на летище. Ctrl позволява съединяването на летища
# Airport construction window
STR_STATION_BUILD_AIRPORT_CAPTION :{WHITE}Избор на летище
@@ -1942,8 +2006,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}Хеликоптерна площадка
@@ -1997,6 +2061,11 @@ 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}Малък
@@ -2277,6 +2346,7 @@ 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}
@@ -2308,7 +2378,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}' дава невярна информация.
@@ -2336,6 +2406,8 @@ 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}Местни власти
@@ -2367,20 +2439,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 :{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}
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}
# 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}Кликни върху услугата, за да се фокусира върху индустрията/града
@@ -2433,6 +2505,7 @@ 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}Промяна на името на шамандурата
@@ -2483,7 +2556,9 @@ 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% от стойноста на компанията
@@ -2735,6 +2810,9 @@ 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}
@@ -2856,12 +2934,17 @@ 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})
@@ -3067,6 +3150,11 @@ 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}Промени времетраенето на маркираната заповед
@@ -3080,10 +3168,29 @@ 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 Конфигурация
@@ -3091,6 +3198,11 @@ 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}Конфигуриране
@@ -3105,12 +3217,14 @@ 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}
@@ -3303,6 +3417,7 @@ 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 :Несъвместими ЖП линии
@@ -3440,6 +3555,7 @@ 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}Самолета е във въздуха
@@ -3850,6 +3966,7 @@ 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}
@@ -3925,7 +4042,6 @@ 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
+18 -14
View File
@@ -565,8 +565,8 @@ STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Total:
STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Quantitat de vehicles que han donat beneficis durant el darrer any; Inclou els automòbils, trens, vaixells i avions
STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Quantitat de parts d'una es estació revisades. Cada part d'una estació (ex. estació de tren, parada d'autobús, aeroport) es compta, encara que estigui connectada com una sola estació.
STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}El benefici del vehicle amb els menors ingressos (només s'han considerat els vehicles més antics de 2 anys)
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Quantitat de diners fets durant el 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_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_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,6 +1066,7 @@ 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
@@ -1115,6 +1116,10 @@ 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}
@@ -1201,10 +1206,6 @@ 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
@@ -2370,6 +2371,7 @@ 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!
@@ -2450,14 +2452,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 :{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}
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}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Subvencions
@@ -3208,6 +3210,8 @@ 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
+8 -12
View File
@@ -1296,10 +1296,6 @@ 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
@@ -2545,14 +2541,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 :{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}
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}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Subvencije
+19 -15
View File
@@ -632,8 +632,8 @@ STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Celkem:
STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Počet dopravních prostředků které vykázaly poslední rok zisk; zahrnuje silniční vozidla, vlaky, lodě a letadla
STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Počet součástí obsluhovaných stanic. Každá součást stanice (napr. nádraží, autobusová zastávka, letiště) se započítává, i když patří jediné stanici
STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Minimální hrubý zisk (= s provoz. náklady) vozidla s nejnižším příjmem (staršího 2 let)
STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Čistý zisk (= bez provoz. nakladu) v nejslabším 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_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_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,6 +1133,7 @@ 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
@@ -1182,6 +1183,10 @@ 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}
@@ -1268,10 +1273,6 @@ 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ší
@@ -1834,7 +1835,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 :manuál
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :ručně
############ End of leave-in-this-order
STR_NETWORK_MESSAGE_CLIENT_LEAVING :odpojování
STR_NETWORK_MESSAGE_CLIENT_JOINED :*** {STRING} jde hrát
@@ -2437,6 +2438,7 @@ 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í!
@@ -2517,14 +2519,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 :{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}
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}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Dotace
@@ -3281,6 +3283,8 @@ 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
+9 -13
View File
@@ -1200,10 +1200,6 @@ 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
@@ -2447,14 +2443,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 :{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}
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}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Tilskudsordninger
@@ -3330,7 +3326,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
+20 -16
View File
@@ -1065,6 +1065,7 @@ 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
@@ -1076,7 +1077,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 realistisch handelsgebied: {ORANGE}{STRING}
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}Gebruik meer realistische handelsgebieden: {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}
@@ -1114,6 +1115,10 @@ 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}
@@ -1172,7 +1177,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}Kaartmuiswielsnelheid: {ORANGE}{STRING}
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Muiswielsnelheid: {ORANGE}{STRING}
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU :{LTBLUE}Rechtsklikemulatie: {ORANGE}{STRING}
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND :Command-klik
@@ -1200,10 +1205,6 @@ 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
@@ -1269,7 +1270,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}(breekt houtzagerij)
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :geen {RED}(houtzagerij werkt niet)
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :alleen in regenwouden
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :overal
@@ -2012,7 +2013,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 vliegveld
STR_STATION_BUILD_AIRPORT_METRO_AIRPORT :{BLACK}Hoofdstedelijk
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
@@ -2369,6 +2370,7 @@ 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!
@@ -2449,14 +2451,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 :{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}
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}
# Subsidies window
STR_SUBSIDIES_CAPTION :{WHITE}Subsidies
@@ -3207,6 +3209,8 @@ 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