mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2026-09-18 14:25:14 +00:00
Compare commits
1
Commits
1.1.2
..
1.1.0-beta5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1959e213b2 |
+1
-13
@@ -27,21 +27,9 @@ SRC_DIR = "$(ROOT_DIR)/src"
|
||||
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
|
||||
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
|
||||
TTD = openttd.exe
|
||||
PDB = openttd.pdb
|
||||
MODE = Release
|
||||
TARGET := $(shell echo $(PLATFORM) | sed "s@win64@x64@;s@win32@Win32@")
|
||||
|
||||
all:
|
||||
$(Q)cp objs/$(TARGET)/$(MODE)/$(TTD) $(BIN_DIR)/$(TTD)
|
||||
$(Q)cp objs/$(TARGET)/Release/$(TTD) $(BIN_DIR)/$(TTD)
|
||||
|
||||
include Makefile.bundle.in
|
||||
|
||||
bundle_pdb:
|
||||
@echo '[BUNDLE] Creating $(BUNDLE_NAME).pdb.xz'
|
||||
$(Q)mkdir -p "$(BUNDLES_DIR)"
|
||||
$(Q)cp objs/$(TARGET)/Release/$(PDB) $(BUNDLES_DIR)/$(BUNDLE_NAME).pdb
|
||||
$(Q)xz -9 $(BUNDLES_DIR)/$(BUNDLE_NAME).pdb
|
||||
|
||||
regression: all
|
||||
$(Q)cp bin/$(TTD) bin/openttd
|
||||
$(Q)cd bin && sh ai/regression/run.sh
|
||||
|
||||
@@ -7108,7 +7108,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
IsBuoyTile(): true
|
||||
IsLockTile(): true
|
||||
IsCanalTile(): true
|
||||
GetBankBalance(): 465257
|
||||
GetBankBalance(): 461507
|
||||
|
||||
--AIWaypointList(BUOY)--
|
||||
Count(): 1
|
||||
@@ -7127,7 +7127,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
IsBuoyTile(): false
|
||||
IsLockTile(): false
|
||||
IsCanalTile(): false
|
||||
GetBankBalance(): 459862
|
||||
GetBankBalance(): 456112
|
||||
BuildWaterDepot(): true
|
||||
BuildDock(): true
|
||||
|
||||
|
||||
@@ -28,7 +28,6 @@ else
|
||||
./openttd -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav -d ai=2 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)(x0)?", "0x00000000", $0); gsub("^dbg: \\[ai\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' > tmp.regression
|
||||
fi
|
||||
|
||||
ret=0
|
||||
if [ -z "$gdb" ]; then
|
||||
res="`diff -ub ai/regression/regression.txt tmp.regression`"
|
||||
if [ -z "$res" ]; then
|
||||
@@ -36,7 +35,6 @@ if [ -z "$gdb" ]; then
|
||||
else
|
||||
echo "Regression test failed! Difference:"
|
||||
echo "$res"
|
||||
ret=1
|
||||
fi
|
||||
echo ""
|
||||
echo "Regression test done"
|
||||
@@ -51,5 +49,3 @@ fi
|
||||
if [ "$1" != "-k" ]; then
|
||||
rm -f tmp.regression
|
||||
fi
|
||||
|
||||
exit $ret
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -55,7 +55,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
|
||||
OPENTTD.GRF = 768051d1eb451c682d6f4e936a89caa5
|
||||
OPENTTD.GRF = e67a3aaf13b81bab5d72d7440244e20c
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
||||
@@ -55,7 +55,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
|
||||
OPENTTD.GRF = 768051d1eb451c682d6f4e936a89caa5
|
||||
OPENTTD.GRF = e67a3aaf13b81bab5d72d7440244e20c
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
||||
@@ -55,7 +55,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
|
||||
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
|
||||
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
|
||||
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
|
||||
OPENTTD.GRF = 768051d1eb451c682d6f4e936a89caa5
|
||||
OPENTTD.GRF = e67a3aaf13b81bab5d72d7440244e20c
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
||||
+8
-213
@@ -1,208 +1,3 @@
|
||||
1.1.2 (2011-08-14)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: Some corrupted savegames could crash OpenTTD instead of showing the 'savegame corrupted' message [FS#4717] (r22737, r22736)
|
||||
- Fix: [NewGRF] Triggering NOT_REACHED when playing with a NewGRF that supplies genders/cases for a language that was not installed [FS#4718] (r22735)
|
||||
|
||||
|
||||
1.1.2-RC2 (2011-07-30)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: Cost of adding an extra road type to a bridge or tunnel was undercalculated [FS#4680, FS#4681] (r22700, r22699)
|
||||
- Fix: Only insert cleared object tiles into _cleared_object_areas if clearing actually succeeds, else subsequential tests of the same tile will be skipped and considered successful [FS#4694] (r22698)
|
||||
- Fix: When building a house it could be built at the wrong place if multitile houses failed some tests (r22697)
|
||||
- Fix: [Network] Failed network address resolving could trigger temporary freezes [FS#4697] (r22696, r22695)
|
||||
- Fix: [NewGRF] The override managers were not reset in some cases like creating a new scenario [FS#4691] (r22693)
|
||||
- Fix: [NewGRF] Aircrafts defined with IDs above the default aircrafts always defaulted to passenger cargo (r22690)
|
||||
|
||||
|
||||
1.1.2-RC1 (2011-07-24)
|
||||
------------------------------------------------------------------------
|
||||
- Change: [NewGRF] Only allow access (via hotkey and menu) to the bounding box visualisation when NewGRF developer tools are enabled (r22675)
|
||||
- Fix: [NewGRF] Disallow accessing variable 1B in network games due to desync reasons (r22682)
|
||||
- Fix: Switching from a red to a white highlight (by switching to another tool) without switching the highlight mode (HT_RECT etc.) did not mark the selection dirty [FS#4670] (r22649)
|
||||
- Fix: [NewGRF] Parameters from NewGRFs were not properly parsed in all cases [FS#4599] (r22648, r22630, r22629, r22628, r22627)
|
||||
- Fix: GetSection() does not return a LockPart [FS#4678] (r22645)
|
||||
- Fix: [NewGRF] Disallow building NewObjects on water tiles owned by another company (r22643)
|
||||
- Fix: [NewGRF] Disable the 'set parameters' button in the NewGRF GUI, if the GRF specifies to have no parameters and one would not be able to set any parameters anyway (r22642)
|
||||
- Fix: Keep the previous owner of the upper and lower lock parts if they are built on existing water (r22638)
|
||||
- Fix: [NewGRF] Airports should not expose the tile specific random bits of the north tile. Only airport tiles should access those (r22636)
|
||||
- Fix: [NewGRF] Correctly reseed random bits of industries and industry tiles (r22635, r22634)
|
||||
- Fix: [NewGRF] Implement variables 25 and 7F for railtypes (r22633)
|
||||
- Fix: [NewGRF] Additional text in fund industry window is NewGRF supplied and thus should have a default colour (r22631)
|
||||
- Fix: Also initialise _old_vds with newgame settings; TTD savegames do not contain these settings [FS#4622] (r22626)
|
||||
- Fix: Do not zero the orders of disaster vehicles when converting savegames [FS#4642] (r22625)
|
||||
- Fix: When closing an AI company the local player cheated to, we need to cheat him to another company [FS#4654] (r22624, r22623)
|
||||
- Fix: When closing down companies their shares in other companies must be sold even if share trading is disabled at that point of time (r22622)
|
||||
- Fix: When asking the user to confirm an unsafe unpausing, there is no need to execute a command if 'no' is choosed. This also prevents crashing when clicking unpause while the confirm window is shown (r22621)
|
||||
- Fix: Enforce refit orders to be 'always go to depot' orders; service-only and stop-in-depot orders make no sense with refitting [FS#4651] (r22620)
|
||||
- Fix: Consider the size of the vehicle sprite for the lineheight in the company GUI. This also makes the widget containing the sprite not skip drawing it, if the bounds of the widget are outside of the drawing area though the sprite actually needs drawing [FS#4662] (r22619)
|
||||
- Fix: When changing difficulty settings over the network, do not just reopen the difficulty window if any game options window is opened; instead invalidate them properly [FS#4653] (r22618, r22617)
|
||||
- Fix: [NewGRF] If callback 33 returns a value out of range, no sound effect shall be played [FS#4656] (r22614)
|
||||
- Fix: Use rotated heightmap sizes for reporting scaling problems [FS#4663] (r22608)
|
||||
- Fix: Do not show cargo accepted/produced in the new station window when no tiles are selected (mouse hovering a window or toolbar) [FS#4647] (r22595, r22593)
|
||||
- Fix: Add active NewGRFs to the list of available ones when selecting the empty preset [FS#4644] (r22594)
|
||||
- Fix: Reading of heightmaps with uncommon BMP formats failed due to uninitialised variables [FS#4645] (r22592)
|
||||
- Fix: PBS order forecasting modified the current order index in case of a goto-nearest-depot order and no depot could be found [FS#4641] (r22589)
|
||||
- Fix: Remove BaseStorageArrays from _changed_storage_arrays on destruction (r22583, r22551)
|
||||
- Fix: Do not increment STL iterators after they have been invalidated (r22582)
|
||||
- Fix: Do not lower the arrow buttons in the NewGRF/AI parameter windows if they are clicked when disabled (r22553, r22499)
|
||||
- Fix: Clear airport persistent storage on construction/removal of airports (r22552)
|
||||
- Fix: Possible crash when opening the airport build window for the first time [FS#4619] (r22538)
|
||||
- Fix: Replace the half small airport structure on the intercontinental airport with some grass [FS#3494] (r22537)
|
||||
- Fix: Documentation omission regarding admin protocol [FS#4632] (r22536)
|
||||
- Fix: [NoAI] Doing rescan_ai in a game with running AIs caused a crash [FS#4631] (r22534)
|
||||
- Fix: Do not create an implicit order if the current order is the first order in the order list and we visit the station of the last entry of the order list (r22532)
|
||||
- Fix: MinGW 64 related compilation issues [FS#4623] (r22522, r22491, r22490, r22489)
|
||||
- Fix: The layout selectors of the airport build GUI did not latch properly (r22497, r22495)
|
||||
- Fix: Callback result for airport layout name was incorrectly used (r22496)
|
||||
- Fix: Airport preview sprite can depend on the layout, so update the cached SpriteID when the layout changes (r22494)
|
||||
- Fix: Engine IDs for coal and mail wagons were swapped in the TTO savegame conversion [FS#4622] (r22487)
|
||||
- Fix: The caption of centered windows could be moved out of the main window and thus become inaccessible when resizing the main window (r22485, r22484)
|
||||
- Fix: No client error packet was sent to the admin bots [FS#4585] (r22384)
|
||||
|
||||
|
||||
1.1.1 (2011-06-01)
|
||||
------------------------------------------------------------------------
|
||||
- Change: Automatic orders are better called implicit orders as no real order influencing path finding is added (r22474, r22473)
|
||||
- Fix: Only try to insert implicit orders for ground vehicles. Aircraft may reach unscheduled terminals when skipping orders [FS#4624] (r22492)
|
||||
|
||||
|
||||
1.1.1-RC1 (2011-05-15)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: [NewGRF] Allow to filter by town of the current industry when using industry variable 0x68 [FS#4591] (r22434)
|
||||
- Change: Improve the speed of YAPF by tweaking hash tables size (r22351, r22350, r22348)
|
||||
- Change: Show one digit of the fractional train length in the depot (r22336, r22305, r22304, r22303)
|
||||
- Fix: When determining the executable path failed, the working directory was used instead, circumventing the not-home-directory check [FS#4613] (r22465)
|
||||
- Fix: [Windows] Prevent a crash when launching OpenTTD with -d from a MSYS console [FS#4587] (r22464)
|
||||
- Fix: Update the saveload window immediatelly after scanning a new directory, so queued events reach the window when already updated [FS#4615] (r22463)
|
||||
- Fix: [NewGRF] The c and p parts of station vars 40, 41 and 49 were incorrect for large stations (r22455, r22286)
|
||||
- Fix: [NewGRF] Zero register 0x100 as specified before resolving custom station foundations (r22452)
|
||||
- Fix: Do not 'log' the NewGRFs in the screenshot when in the menu [FS#4610] (r22450)
|
||||
- Fix: [NewGRF] When GRFs are disabled via Action E or due to GRM failure, also display an error in the GUI (r22444, r22443)
|
||||
- Fix: [NewGRF] Do not popup fatal NewGRF error messages in the intro screen. The GRFs are not going to be activated there anyway and the GRF settings GUI will not display the errors either (r22442)
|
||||
- Fix: Catenary was drawn incorrectly next to level crossings with foundations (r22437)
|
||||
- Fix: [NewGRF] Apply railtype property 12 (station graphics) also to station groundsprites from action 1 (r22436)
|
||||
- Fix: Git revision detection would return too much when tags are involved (r22435)
|
||||
- Fix: [NewGRF] When action14 specified different values for the palette, the values were OR-ed. Use the last set value instead (r22416)
|
||||
- Fix: [Network] Kicking yourself via remote console crashes the server [FS#4606] (r22414)
|
||||
- Fix: [NewGRF] Make sure the action2 ID of a generic feature callback is valid (r22409)
|
||||
- Fix: Check the availability year of all houses, not just the NewGRF houses, when making sure that at least one is available onwards from year 0 [FS#4581] (r22389, r22300, r22299)
|
||||
- Fix: When a game uses a lot of NewGRFs the buffer for storing that information in the PNG is too small (r22388)
|
||||
- Fix: Windows' recv seems to return 'graceful closed' before having passed the remaining buffer which causes OpenTTD to think all connections are 'incorrectly' terminated, i.e. without the 'I am leaving' packet from the client. So let the client wait a tiny bit after sending the 'I am leaving' packet and before gracefully closing the connection [FS#4601] (r22387)
|
||||
- Fix: When the last AI company gets removed, the 'dead' state was not reset in the AI debug window [FS#4602] (r22386)
|
||||
- Fix: Recolouring of silicon bridge was done incorrectly (r22380, r22379, r22378)
|
||||
- Fix: Crash when clicking a removed company in the vehicle list dropdowns [FS#4592] (r22373)
|
||||
- Fix: Keep better accounting of the order in which clients joined; client cannot be starved from joining and they get shown the amount of clients waiting in front of them (r22372, r22370, r22369, r22368, r22367, r22366, r22365, r22364, r22363, r22362, r22361)
|
||||
- Fix: Make sure saving has completely and utterly finished before starting a new one. Otherwise you could start a save, which would be marked as done by the previous save stopping and then yet another save could be started... and that could create a deadlock [FS#4596] (r22371)
|
||||
- Fix: Delete the client list popup when the client got removed (instead of previously selecting some other client) (r22360, r22359, r22358)
|
||||
- Fix: When inserting automatic orders, do not create consecutive duplicate orders (r22333, r22332, r22331, r22330, r22329, r22328, r22327)
|
||||
- Fix: Destinations of conditional orders were update incorrectly when deleting orders in front of the conditional orders, if the target order was the order just before of the conditional order (r22326)
|
||||
- Fix: Vehicles skipped orders when inserting automatic orders failed (r22324)
|
||||
- Fix: [NewGRF] When determining refittability use the cargo translation table of the GRF setting the refitmask instead of the GRF defining the action 3 (r22316)
|
||||
- Fix: Make road vehicles, ships and aircraft skip orders if they are leaving a depot and heading to the same one again; just like trains (r22309)
|
||||
- Fix: Waiting on a server could kick the client, or rather the client would kick itself due to an unexpected packet [FS#4574] (r22308)
|
||||
- Fix: When drawing the town authority window, check whether the availability of the actions changed, and force a complete redraw in that case (r22307)
|
||||
- Fix: The 'freeform edges' setting could be enabled when there were buoys on the northern border [FS#4580] (r22297)
|
||||
- Fix: Reset Window::scrolling_scrollbar when raising scrollbar buttons [FS#4571] (r22294)
|
||||
|
||||
|
||||
1.1.0 (2011-04-01)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: In the scenario editor you could build a ship depot using the appropriate hotkey. Removing that depot causes an assertion to trigger [FS#4558] (r22266)
|
||||
|
||||
|
||||
1.1.0-RC3 (2011-03-18)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: New game settings were applied too early when starting a game via a heightmap [FS#4557] (r22259)
|
||||
- Fix: Do not resort town, industry and signs list directly in OnInvalidateData(). There might be a scheduled rebuild which needs execution first. So, only set a trigger for resorting [FS#4546] (r22249, r22248, r22247, r22246, r22245, r22244, r22243, r22242, r22241, r22236, r22228, r22227, r22226)
|
||||
- Fix: [NewGRF] Object variable 0x48 was not available in callback 0x15C (r22231)
|
||||
- Fix: Compilation when compiling with --disable-ai (r22222)
|
||||
- Fix: When downloading a file via HTTP failed mid-way and OpenTTD fell back to the old system the partial downloaded amount would be counted twice [FS#4543] (r22208)
|
||||
- Fix: The 'center' (for movement) of vehicles is (currently still) always at 4/8th original vehicle length from the front, so trains should stop at the same location regardless of the length of the front engine [FS#4545] (r22206)
|
||||
- Fix: Make the base costs for building and demolishing NewObjects also local to the individual NewGRFs (r22204)
|
||||
- Fix: Removing a station order could stop when removing first automatic order (r22200)
|
||||
- Fix: Invalidate the object build window when using the date cheat (r22193)
|
||||
|
||||
|
||||
1.1.0-RC2 (2011-03-04)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: Following a vehicle with a very high VehicleID was impossible (r22181)
|
||||
- Fix: [NewGRF] Memory leak if an industry NewGRF had more than one prop A or 15, or a station NewGRF had more than one prop 09 (r22175, r22165)
|
||||
- Fix: [NewGRF] Disable a station NewGRF when it contains an unterminated spritelayout in action0 prop 08 instead of crashing (r22164)
|
||||
- Fix: Building a station part adjacent to both an existing station and a rail waypoint failed [FS#4541] (r22163)
|
||||
- Fix: No update of NewGRF window when unknown GRF name becomes available [FS#4533] (r22162)
|
||||
- Fix: [NewGRF] Industry prop 0x11 is 4-bytes long, not 3 bytes (r22157)
|
||||
- Fix: Stations/infrastructure were not properly sold on some clients during bankruptcy [FS#4529] (r22154)
|
||||
- Fix: The Greek translation did not work as it breached the 200.000 bytes 'limit' for loading language files [FS#4536] (r22153)
|
||||
- Fix: Windows video driver crashed when it could not go to full screen at the resolution of the configuration file when starting OpenTTD [FS#4521] (r22149)
|
||||
- Fix: Do not run savegame conversion during SlNullPointers; the pointer might not be converted or be NULL at that point (r22146)
|
||||
- Fix: Some valid keycodes were ignored along with the invalid ones (r22142)
|
||||
- Fix: When commands need to invalidate windows, process these events asynchronously before the next redraw. Calling window code directly from command scope uses wrong _current_company and might issue nested DoCommands() which interfer with the running command [FS#4523] (r22141, r22140, r22135, r22134)
|
||||
- Fix: [NewGRF] Skipping only the invalid part of an action14 failed, the rest of the action was skipped instead (r22138)
|
||||
- Fix: Spectators had crashes when closing buoy windows (r22131)
|
||||
- Fix: Build-station-window showed wrong selection when reopening [FS#4530] (r22128)
|
||||
- Fix: Canals would get drawn as land in the smallmap when using the owner window (r22127)
|
||||
- Fix: The animation-ness of two goldmine tiles were swapped, causing the wheeltower to not work properly, and the bottom corner to show the wrong sprite [FS#4528] (r22125)
|
||||
- Fix: CommandQueue::Pop() did not update 'last'; popping the last item caused the queue to disconnect unless there was only one item [FS#4522] (r22123)
|
||||
- Fix: When a NOT_REACHED in saveload can be reached due to an invalid savegame, use SlErrorCorrupt instead. In other words, do not crash but show an error message (r22122)
|
||||
- Fix: In case of high frame_freq one could get commands executed after a new network game was started (r22121)
|
||||
- Fix: [NoAI] Prevent AIs from getting consistently over their allowed amount of operations by subtracting the amount they went over 'budget' from the budget for the next 'tick' (r22120)
|
||||
- Fix: The refit window was not correctly updated after selecting with Ctrl+Click [FS#4525] (r22118)
|
||||
- Fix: CanRemoveRoadWithStop() failed for _current_company = OWNER_TOWN, and for OWNER_NONE-owned road (r22117)
|
||||
|
||||
|
||||
1.1.0-RC1 (2011-02-18)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: [NewGRF] Test all possible industry layouts during construction and prospecting [FS#4131] (r22012, r22010)
|
||||
- Feature: Wheel scrolling in the console (r21982)
|
||||
- Feature: Console command to reset the engine pool. It removes the traces of engines which are no longer associated to a NewGRF, and can be used to e.g. 'fix' scenarios which were screwed up by the author. You can only use it when there are no vehicles in the game though (r21975)
|
||||
- Feature: Add a setting to enable/disable funding local road reconstruction (r21974)
|
||||
- Feature: Introduce 'minimal' number of industries as a replacment for the old 'none' setting in the new game window (r21969)
|
||||
- Change: When loading old savegames with long trains set the maximum train length to the length of the longest train (r22061)
|
||||
- Change: Always report mammoth trains are disabled to NewGRFs, and allow the maximum train length to be modified in multiplayer as well [FS#4471] (r22004)
|
||||
- Fix: Remove invalid keycodes when reading hotkeys.cfg [FS#4510] (r22094)
|
||||
- Fix: The server list did not get sorted with one item in it, so the 'position in the list' variable was never updated causing problems when using the keyboard shortcuts for scrolling [FS#4514] (r22093)
|
||||
- Fix: When deleting towns, only relocate objects during DC_EXEC (r22087)
|
||||
- Fix: [Windows] If fullscreen fails with current resolution, use desktop resolution [FS#4489] (r22081)
|
||||
- Fix: The owner view of the smallmap was not updated after a company colour change (r22079)
|
||||
- Fix: Maximum train length interfered with wagon replacement when wagon removal was turned on [FS#4499] (r22078)
|
||||
- Fix: NewGRFs with invalid multi-tile houses could cause a valid 1x1 house following it to be seen as multi-tile, causing crashes [FS#4501] (r22075)
|
||||
- Fix: Immediately update the train weight when you change the multiplier for train cargo weight (r22073)
|
||||
- Fix: Some hotkey names in hotkey.cfg for the scenario editor toolbar were completely bogus (r22071)
|
||||
- Fix: Crashes when disconnecting after requesting the map [FS#4503] (r22070)
|
||||
- Fix: Delete all savegame packets, not just the first one (r22069)
|
||||
- Fix: Return 'connection lost' instead of 'okay' when SendPackets closed the connection, so we do not try to do anything else with the closed socket (r22068)
|
||||
- Fix: Do not hold a mutex when sending packets and thus possibly closing the connection as that wants to acquire the mutex again (r22067)
|
||||
- Fix: Verify we can allocate an Order, OrderList, CargoPacket, CargoPayment, and others before we actually try to do so (all corner cases) [FS#4468] (r22066, r22057, r22047, r22042, r22040, r22033, r22031, r22026, r22025, r22024, r22023, r22022)
|
||||
- Fix: Crash when disconnecting and reconnecting while the server is still saving the savegame [FS#4497] (r22064)
|
||||
- Fix: Memory leak when saving with LZMA or zlib fails mid-way (r22062)
|
||||
- Fix: Make the send chat message window follow the position of the status bar (r22059)
|
||||
- Fix: Metric and imperial HP are not the same. As imperial HP are used internally, set a conversion rate for metric HP [FS#4408] (r22056)
|
||||
- Fix: [Squirrel] Some invalid squirrel code caused the squirrel compiler to crash [FS#4490] (r22055)
|
||||
- Fix: The land area information window was not updated after a language change (r22053)
|
||||
- Fix: Roads under road stops would get a wrong owner after overbuilding (r22051)
|
||||
- Fix: In ancient savegames, e.g. TTO savegames, non primary vehicles (wagons and such) could have unitnumbers or even orders. However, these orders would not be updated when a station is removed. As such some savegames have wagons with current orders to invalid stations which triggers trouble in the load conversion. So, trash any orders/unitnumbers a non-primary vehicle has [FS#4496] (r22050)
|
||||
- Fix: [NewGRF] Company 0 does not always exist, so put temporary vehicles in a valid company (r22048)
|
||||
- Fix: Make sure order indices stay in range when copying, sharing, unsharing or deleting all orders [FS#4487] (r22046)
|
||||
- Fix: Update the consist cache when a part of a train is flipped in the depot [FS#4493] (r22044)
|
||||
- Fix: Invalidate the right windows when a part of a train is flipped in the depot (r22043)
|
||||
- Fix: Tab completion in chat did not cycle through all possible options (r22038)
|
||||
- Fix: Crash when watching the vehicle view of a vehicle that has multiple sequential nearest depot orders (or consists of a single nearest depot order) when there is no depot with index 0 [FS#4488] (r22034)
|
||||
- Fix: The server list got not resorted/redrawn after NewGRFs were downloaded [FS#4482] (r22029)
|
||||
- Fix: When paused and having the allowed actions while paused setting on 'no actions' cheating money would fail [FS#4479] (r22016)
|
||||
- Fix: Only show one AI per unique ID instead of all versions in the output of 'openttd -h' (r22007)
|
||||
- Fix: Smoke/sparks of trains would be shown under bridges, or rather through bridges [FS#4480] (r22006)
|
||||
- Fix: When the difference between force and resistance is smaller than the mass(*4) there would be no acceleration anymore, even when at higher (or lower) speed the force and resistance balance out better [FS#4473] (r21997)
|
||||
- Fix: [YAPF] Under some circumstances vehicles could be lost [FS#4472] (r21996)
|
||||
- Fix: [NewGRF] Make computations of closest-land/water-distances handle waterish tiles more correctly (r21994)
|
||||
- Fix: When building a lock on dry land costs for clearing water were deducted rather than for building canals (r21993)
|
||||
- Fix: AIs trying to change the AIOF_GOTO_NEAREST_DEPOT flag for existing orders triggered an assert. Explicitly forbid this as precondition for SetOrderFlags [FS#4467] (r21992)
|
||||
- Fix: The share/copy-orders-cursor was not updated to refer to the new vehicle when it got autoreplaced/-renewed [FS#4466] (r21991)
|
||||
- Fix: Vehicle status bar glitches on speed changes (r21989)
|
||||
- Fix: Scrolling of the console in pages used wrong line height and scrolled too much (r21979)
|
||||
- Fix: Redraw the town authority window after modifying town authority settings (r21973)
|
||||
- Fix: Crash when a multiplayer company goes bankrupt with 'you' in it [FS#4464] (r21970)
|
||||
|
||||
|
||||
1.1.0-beta5 (2011-02-04)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: GUI setting to disable reversing at signals (r21962)
|
||||
@@ -223,7 +18,7 @@
|
||||
- Fix: The town window would not be invalidated in the scenario editor if the ground changed and thus the required cargos for town growth [FS#4554] (r21929)
|
||||
- Fix: Converting an expensive rail type to a cheap one could give more money than removing and rebuilding cost (r21919)
|
||||
- Fix: Languages improperly sorted in the 'start server' window [FS#4443] (r21918)
|
||||
- Fix: The minimum speed needed for (realistic) acceleration to work properly can sometimes be more than the (temporary) maximum speed causing Clamp to 'fail'. Make sure that the minimum speed always overrules the maximum speed [FS#4442] (r21916)
|
||||
- Fix: the minimum speed needed for (realistic) acceleration to work properly can sometimes be more than the (temporary) maximum speed causing Clamp to 'fail'. Make sure that the minimum speed always overrules the maximum speed [FS#4442] (r21916)
|
||||
- Fix: Include the capacity of non-refittable vehicles in the refitted-capacity, if their cargo matches (r21904)
|
||||
- Fix: Do not count articulated parts when passing the number of vehicles to refit to the command. That may exceed 8 bits (r21902)
|
||||
- Fix: [NoAI] Hide automatic orders from AIs as they have no way of dealing with them (r21900)
|
||||
@@ -431,7 +226,7 @@
|
||||
- Change: Limit the number of exceptions in the refittable cargo list to 7 (r21083)
|
||||
- Change: Reduce the chances to accidentally break savegames with NewGRFs by limiting loading of savegames that miss NewGRFs or change NewGRF settings in-game [FS#3012] (r21116)
|
||||
- Change: Tuned realistic acceleration to be a bit more realistic in order to make acceleration 'slower', which highlights the differences between vehicle types more (r21106)
|
||||
- Change: Do not make client reconnect waiting time depend on the company; in coop games that does not spread clients at all, and most companies have a low number causing it not to be spread out either. Use the ClientID instead (r21008)
|
||||
- Change: Do not make client reconnect waiting time depend on the company; in coop games that does not spread clients at all, and most companies have a low number causing it not to be spread out either. Use the ClientID instead. (r21008)
|
||||
- Change: Add installing options or rather options to not install certain documentation, in a similar way to GRFCodec/catcodec (r20999)
|
||||
- Change: Only display liveries in the livery window if they are used by some vehicle somewhen (r20849)
|
||||
- Change: [NoAI] Rename AIAbstractList to AIList (r20563)
|
||||
@@ -865,7 +660,7 @@
|
||||
- Fix: Report a more useful error when failing to build a bubble generator (r19137)
|
||||
- Fix: Resize station cargo widget when needed to display all accepted cargo types [FS#3617] (r19123)
|
||||
- Fix: [NewGRF] Industry property 0x17 was interpreted incorrectly and in some cases circumvented the density difficulty setting (r19120)
|
||||
- Fix: Removing towns (in the scenario editor) that had stations/depots refer to them or vehicles were on the town's road could cause a crash [FS#3616] (r19119)
|
||||
- Fix: removing towns (in the scenario editor) that had stations/depots refer to them or vehicles were on the town's road could cause a crash [FS#3616] (r19119)
|
||||
- Fix: In the order window the Non-stop dropdown was not enabled for depot and waypoint orders and some buttons were raised too soon [FS#3593] (r19118, r19117)
|
||||
- Fix: Do not crash on broken lng file and prevent it from happening again [FS#3611] (r19113, r19112)
|
||||
- Fix: Not all news data was properly freed when starting a new game [FS#3614] (r19105)
|
||||
@@ -3021,7 +2816,7 @@
|
||||
- Fix: Certain resolutions caused a crash when minimap was partly dragged outside the game window (r2424)
|
||||
- Fix: Deleting canals under bridges removed bridges first in certain configurations (r2436)
|
||||
- Fix: [NPF] Vehicles try to drive into a tunnel entrance from above (r2471)
|
||||
- Fix: [NewGRF] Some road vehicle action 0 properties were loaded as the wrong type (int8, int16, int32) causing undefined results, like cargo types being wrong (r2474)
|
||||
- Fix: [NewGRF] Some road vehicle action 0 properties were loaded as the wrong type (int8,int16,int32) causing undefined results. (like cargo types being wrong) (r2474)
|
||||
- Fix: The console variable autoclean_unprotected was linked to the variable _network_autoclean_protected (r2498)
|
||||
- Fix: Old bug in the PCX writer: The first pixel column contained garbage, the picture was shifted one to the right, and the last column was dropped (r2512)
|
||||
- Fix: Using the mouse wheel could lead to a crash if mouse was not over a widget (r2530)
|
||||
@@ -3087,9 +2882,9 @@
|
||||
- Fix: Disallow building an oil rig above sea level (r3416)
|
||||
- Fix: When removing a town-owned tunnel the player's rating was not reduced (r3418)
|
||||
- Fix: (Possible) game crash on removing track/road under bridge if a vehicle was on the track/road under the bridge and the track/road sloped (r3419)
|
||||
- Fix: [NewGRF] Only power should decide whether a rail vehicle is an engine or a wagon (r3424)
|
||||
- Fix: [NewGRF] Only power should decide whether a rail vehicle is an engine or a wagon. (fixes SHIKI 810 in jpsetw.grf) (r3424)
|
||||
- Fix: Incorrect validating of tree-planting command which can allow a buffer-overflow (r3446)
|
||||
- Fix: [NewGRF] When changing the sprite ID of a vehicle, if it is not FD (custom graphics), the value needs to changed from a 16bit array offset to an array index (r3449)
|
||||
- Fix: [NewGRF] When changing the sprite ID of a vehicle, if it is not FD (custom graphics), the value needs to changed from a 16bit array offset to an array index. (fixes tropicstw.grf) (r3449)
|
||||
- Fix: You could not remove an item from a list-type of config ingame from the configuration file (r3475)
|
||||
- Fix: [NewGRF] Always reinitialize the TTDPatch flags as patch settings may have changed (r3486)
|
||||
- Fix: Price for demolishing a bridge was dependent on orientation and map size (r3487)
|
||||
@@ -3273,7 +3068,7 @@
|
||||
- Fix: Destroyed train locks crossings [SF#1105112]
|
||||
- Fix: Upgrade rail fails when train under bridge [SF#1105281]
|
||||
- Fix: Trains do not think they're on a slope any more while they drive around in a tunnel [SF#1105959]
|
||||
- Fix: Buoys can now only be removed if no ship has it in their schedule. This makes buoys more useable in multiplayer games again, as buoys cannot be deleted by other players if they are used [SF#1105963]
|
||||
- Fix: Buoys can now only be removed if no ship has it in their schedule. (This makes buoys more useable in multiplayer games again, as buoys cannot be deleted by other players if they are used.) [SF#1105963]
|
||||
- Fix: Graph's keys get confused [SF#1106354]
|
||||
- Fix: Placing signals with 2x1 drags is treated as placing a single signal [SF#1106930]
|
||||
- Fix: Console ignoring return character occasionally [SF#1107350]
|
||||
@@ -3373,7 +3168,7 @@
|
||||
- Fix: Vehicles slow down under bridge if the track is on a foundation
|
||||
- Fix: You can no longer change name of waypoints whom are owned by somebody else
|
||||
- Fix: Shares are now also sold when a company goes bankrupt [SF#1090313]
|
||||
- Fix: It is no longer possible to crash trains of other companies by building a depot close to a station; trains do no longer enter tiles that do not belong to his owner [SF#1087701]
|
||||
- Fix: It is no longer possible to crash trains of other companies by building a depot close to a station. (even more: trains do no longer enter tiles that do not belong to his owner) [SF#1087701]
|
||||
- Fix: Crashed trains are not reported to have too few orders any more [SF#1087403]
|
||||
- Fix: Backup-order-list was not closed with an OT_NOTHING, [SF#1086375]
|
||||
- Fix: Docks now have a button to display the catchment area [SF#1085255]
|
||||
|
||||
+5
-17
@@ -6,13 +6,8 @@
|
||||
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
log() {
|
||||
if [ $1 = "1" ]; then
|
||||
shift
|
||||
echo "$@"
|
||||
else
|
||||
shift
|
||||
fi
|
||||
echo "$@" >> $config_log
|
||||
if [ $1 = "1" ]; then echo "$2"; fi
|
||||
echo "$2" >> $config_log
|
||||
}
|
||||
|
||||
set_default() {
|
||||
@@ -59,8 +54,8 @@ set_default() {
|
||||
enable_translator="0"
|
||||
enable_unicode="1"
|
||||
enable_console="1";
|
||||
enable_assert="0"
|
||||
enable_strip="1"
|
||||
enable_assert="1"
|
||||
enable_strip="0"
|
||||
enable_universal="0"
|
||||
enable_osx_g5="0"
|
||||
enable_cocoa_quartz="1"
|
||||
@@ -460,7 +455,6 @@ detect_params() {
|
||||
|
||||
# Clean the logfile
|
||||
echo "" > $config_log
|
||||
log 2 "Invocation: $0 $*"
|
||||
}
|
||||
|
||||
save_params() {
|
||||
@@ -537,7 +531,7 @@ check_params() {
|
||||
check_build
|
||||
check_host
|
||||
|
||||
# Check for universal builds; they only make sense for OSX, so fail if enabled for another OS
|
||||
# Check for universal builds; they only make sense for OSX, so fail if enabled for another OS
|
||||
if [ "$enable_universal" = "0" ]; then
|
||||
log 1 "checking universal build... no"
|
||||
else
|
||||
@@ -2271,12 +2265,6 @@ detect_sdl() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$os" = "OSX" ]; then
|
||||
log 1 "WARNING: sdl is known to fail on some versions of Mac OS X"
|
||||
log 1 "WARNING: with some hardware configurations. Use at own risk!"
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
if [ "$with_sdl" = "1" ] || [ "$with_sdl" = "" ] || [ "$with_sdl" = "2" ]; then
|
||||
sdl_config="sdl-config"
|
||||
else
|
||||
|
||||
+5
-12
@@ -1,5 +1,5 @@
|
||||
Multiplayer manual for OpenTTD
|
||||
Last updated: 2011-02-16
|
||||
Last updated: 2011-01-20
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -17,12 +17,6 @@ Table of contents
|
||||
|
||||
1.0) Starting a server
|
||||
---- -----------------
|
||||
- Make sure that you have your firewall of the computer as well as possible
|
||||
routers or modems of the server configured such that:
|
||||
* port 3979 is free for both UDP and TCP connections in- and outgoing
|
||||
* port 3978 is free outbound for UDP in order to advertise with the master
|
||||
server (if desired). Otherwise you'll have to tell players your IP.
|
||||
* port 3977 if use of the admin interface is desired (see admin_network.txt)
|
||||
- Click "multiplayer" on the startup screen
|
||||
- Click "start server"
|
||||
- Type in a game name
|
||||
@@ -212,8 +206,7 @@ Table of contents
|
||||
6.0) Troubleshooting
|
||||
---- ---------------
|
||||
- My advertising server does not show up in list at servers.openttd.org
|
||||
Run openttd with the '-d net=2' parameter. That will show which incoming
|
||||
communication is received, whether the replies from the master server or
|
||||
communication from an admin tool reach the programme. See section 1
|
||||
'Starting a server' further up for the ports and protocols used by OpenTTD.
|
||||
The ports can be configured in the config file.
|
||||
Run openttd with the '-d net=2' parameter, as this will show whether it
|
||||
receives replies from the master server. If it does not receive replies it
|
||||
is most likely that you need to configure your router to forward ports
|
||||
3979 (both TCP and UDP) to the computer that is hosting the game.
|
||||
|
||||
+1
-1
@@ -99,7 +99,7 @@ elif [ -d "$ROOT_DIR/.git" ]; then
|
||||
# No rev? Maybe it is a custom git-svn clone
|
||||
REV_NR=`LC_ALL=C git log --pretty=format:%b --grep="git-svn-id:.*@[0-9]*" -1 | sed "s@.*\@\([0-9]*\).*@\1@"`
|
||||
fi
|
||||
TAG="`git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null | sed 's@\^0$@@'`"
|
||||
TAG="`git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null`"
|
||||
if [ -n "$TAG" ]; then
|
||||
BRANCH=""
|
||||
REV="$TAG"
|
||||
|
||||
+4
-45
@@ -1,6 +1,6 @@
|
||||
OpenTTD's known bugs
|
||||
Last updated: 2011-08-14
|
||||
Release version: 1.1.2
|
||||
Last updated: 2011-02-04
|
||||
Release version: 1.1.0-beta5
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -39,12 +39,8 @@ officially supporting Mac OS X again. For now it remains unsupported and
|
||||
we only apply bug fixes provided by the community but we are unable to fix
|
||||
these bugs ourselves.
|
||||
|
||||
- 4695 [OSX] Crash when switching to full screen with OS X Lion
|
||||
- 4689 [OSX] Crash when hiding window after coming from full screen
|
||||
- 4594 [Windows] Minimizing the windows when a modal error message is
|
||||
shown makes it difficult to exit the game
|
||||
- 4420 [OSX] OS' mouse pointer still shows
|
||||
- 2484 [OSX] Cannot enter CJK characters
|
||||
- 3447 [OSX] SDL port is unuseable
|
||||
- 2484 [OSX] Cannot enter CJK characters
|
||||
|
||||
2.1) Known bugs that will not be solved
|
||||
---- ----------------------------------
|
||||
@@ -216,15 +212,6 @@ OpenTTD not properly resizing with SDL on X [FS#3305]
|
||||
and GNOME's. With the XFCE's and LXDE's window managers the resize
|
||||
event is sent when the user releases the mouse.
|
||||
|
||||
Incorrect colours, crashes upon exit, debug warnings and smears upon
|
||||
window resizing with SDL on Mac OS X [FS#3447]
|
||||
Video handling with (lib)SDL under Mac OS X is known to fail on some
|
||||
versions of Mac OS X with some hardware configurations. Some of the
|
||||
problems happen only under some circumstances whereas others are
|
||||
always present.
|
||||
We suggest that the SDL video/sound backend is not used for OpenTTD
|
||||
in combinations with Mac OS X.
|
||||
|
||||
Train crashes entering same junction from block and path signals [FS#3928]
|
||||
When a train has reserved a path from a path signal to a two way
|
||||
block signal and the reservation passes a path signal through the
|
||||
@@ -297,31 +284,3 @@ Can't change volume inside OpenTTD [FS#4416]
|
||||
in OpenTTD. As a result you can't change the volume inside OpenTTD
|
||||
for backends such as SDL; just use the volume control provided by
|
||||
your operating system.
|
||||
|
||||
Can't run OpenTTD with the -d option from a MSYS console [FS#4587]
|
||||
The MSYS console does not allow OpenTTD to open an extra console for
|
||||
debugging output. Compiling OpenTTD with the --enable-console
|
||||
configure option prevents this issue and allows the -d option to use
|
||||
the MSYS console for its output.
|
||||
|
||||
Unreadable characters for non-latin locales [FS#4607]
|
||||
OpenTTD does not ship a non-latin font in its graphics files. As a
|
||||
result OpenTTD needs to acquire the font from somewhere else. What
|
||||
OpenTTD does is ask the operating system, or a system library, for
|
||||
the best font for a given language if the currently loaded font
|
||||
does not provide all characters of the chosen translation. This
|
||||
means that OpenTTD has no influence over the quality of the chosen
|
||||
font; it just does the best it can do.
|
||||
|
||||
If the text is unreadable there are several steps that you can take
|
||||
to improve this. The first step is finding a good font and configure
|
||||
this in the configuration file. See section 9.0 of readme.txt for
|
||||
more information. You can also increase the font size to make the
|
||||
characters bigger and possible better readable.
|
||||
|
||||
If the problem is with the clarity of the font you might want to
|
||||
enable anti-aliasing by setting the small_aa/medium_aa/large_aa
|
||||
settings to "true". However, anti-aliasing only works when a 32 bits
|
||||
blitter has been selected, e.g. blitter = "32bpp-anim", as with the
|
||||
8 bits blitter there are not enough colours to properly perform the
|
||||
anti-aliasing.
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
@@ -8,13 +8,13 @@
|
||||
//
|
||||
-1 * 0 0C "Fixing (alignment) bugs in the orignal graphics. By Addi."
|
||||
-1 * 6 07 83 01 \7= 03 69
|
||||
// Different graphics for same wood truck
|
||||
// Different grahpics for same wood truck
|
||||
-1 * 14 0A 04 01 87 0C 01 89 0C 01 07 0E 01 09 0E
|
||||
-1 sprites/fix_graphics.png 82 8 09 16 22 -6 -7
|
||||
-1 sprites/fix_graphics.png 114 8 09 16 22 -14 -7
|
||||
-1 sprites/fix_graphics.png 146 8 09 16 22 -6 -7
|
||||
-1 sprites/fix_graphics.png 178 8 09 16 22 -14 -7
|
||||
// Different graphics for lots of trucks
|
||||
// Different grahpics for lots of trucks
|
||||
-1 * 5 0A 01 28 C4 0D
|
||||
-1 sprites/fix_graphics.png 226 8 01 18 8 -3 -10
|
||||
-1 sprites/fix_graphics.png 242 8 09 16 20 -14 -7
|
||||
@@ -56,19 +56,19 @@
|
||||
-1 sprites/fix_graphics.png 610 40 09 16 20 -14 -7
|
||||
-1 sprites/fix_graphics.png 642 40 01 12 28 -14 -6
|
||||
-1 sprites/fix_graphics.png 690 40 09 16 20 -6 -7
|
||||
// Different graphics for same truck
|
||||
// Different grahpics for same truck
|
||||
-1 * 14 0A 04 01 9D 0C 01 9F 0C 01 A1 0C 01 A3 0C
|
||||
-1 sprites/fix_graphics.png 738 40 09 16 22 -14 -7
|
||||
-1 sprites/fix_graphics.png 770 40 09 16 22 -6 -7
|
||||
-1 sprites/fix_graphics.png 2 72 09 16 22 -14 -7
|
||||
-1 sprites/fix_graphics.png 34 72 09 16 22 -6 -7
|
||||
// Different graphics for same paper truck
|
||||
// Different grahpics for same paper truck
|
||||
-1 * 14 0A 04 01 5D 0D 01 5F 0D 01 61 0D 01 63 0D
|
||||
-1 sprites/fix_graphics.png 82 72 09 16 22 -14 -7
|
||||
-1 sprites/fix_graphics.png 114 72 09 17 22 -5 -7
|
||||
-1 sprites/fix_graphics.png 146 72 09 17 22 -14 -8
|
||||
-1 sprites/fix_graphics.png 178 72 09 16 22 -6 -7
|
||||
// Different graphics for same paper truck (truck #2)
|
||||
// Different grahpics for same paper truck (truck #2)
|
||||
-1 * 14 0A 04 01 1D 0E 01 1F 0E 01 21 0E 01 23 0E
|
||||
-1 sprites/fix_graphics.png 226 72 09 16 22 -14 -7
|
||||
-1 sprites/fix_graphics.png 258 72 09 16 22 -6 -7
|
||||
@@ -135,13 +135,13 @@
|
||||
|
||||
// Non-toyland specific
|
||||
-1 * 6 07 83 01 \7= 03 0A
|
||||
// graphics for the tubular bridge pillars had incorrect offsets
|
||||
// Grahpics for the tubular bridge pillars had incorrect offsets
|
||||
-1 * 5 0A 01 04 05 0A
|
||||
-1 sprites/fix_graphics.png 98 296 09 9 4 2 -1
|
||||
-1 sprites/fix_graphics.png 114 296 09 9 4 2 -1
|
||||
-1 sprites/fix_graphics.png 130 296 09 9 4 -4 0
|
||||
-1 sprites/fix_graphics.png 146 296 09 9 4 -4 0
|
||||
// graphics for the cantilever bridge pillars had incorrect offsets
|
||||
// Grahpics for the cantilever bridge pillars had incorrect offsets
|
||||
-1 * 5 0A 01 04 DD 09
|
||||
-1 sprites/fix_graphics.png 178 296 09 11 10 2 -3
|
||||
-1 sprites/fix_graphics.png 194 296 09 12 10 2 -2
|
||||
@@ -150,51 +150,15 @@
|
||||
|
||||
// Toyland specific
|
||||
-1 * 6 07 83 01 \7! 03 0A
|
||||
// Graphics for the toyland tubular bridge pillars had incorrect offsets
|
||||
// Grahpics for the toyland tubular bridge pillars had incorrect offsets
|
||||
-1 * 5 0A 01 04 05 0A
|
||||
-1 sprites/fix_graphics.png 248 296 09 9 4 2 -1
|
||||
-1 sprites/fix_graphics.png 264 296 09 9 4 2 -1
|
||||
-1 sprites/fix_graphics.png 280 296 09 9 4 -4 0
|
||||
-1 sprites/fix_graphics.png 296 296 09 9 4 -4 0
|
||||
// Graphics for the toyland cantilever bridge pillars had incorrect offsets
|
||||
// Grahpics for the toyland cantilever bridge pillars had incorrect offsets
|
||||
-1 * 5 0A 01 04 DD 09
|
||||
-1 sprites/fix_graphics.png 328 296 09 11 10 2 -3
|
||||
-1 sprites/fix_graphics.png 344 296 09 12 10 2 -2
|
||||
-1 sprites/fix_graphics.png 360 296 09 11 10 -10 -1
|
||||
-1 sprites/fix_graphics.png 376 296 09 11 10 -10 -1
|
||||
|
||||
// Wrong, non-translated colours in tubular bridge in 'normal' climates
|
||||
// Toyland has separate sprites which are not colour translated, thus
|
||||
// this does not apply there;
|
||||
// Pillars are changed for all climates further up
|
||||
-1 * 6 07 83 01 \7= 03 \b22
|
||||
|
||||
// Main tubular bridge sprites
|
||||
-1 * 5 0A 01 \b6 \w2559
|
||||
-1 sprites/fix_graphics.png 2 330 09 40 32 -30 -26
|
||||
-1 sprites/fix_graphics.png 52 330 09 50 44 -42 -26
|
||||
-1 sprites/fix_graphics.png 116 330 09 45 46 -42 -21
|
||||
-1 sprites/fix_graphics.png 180 330 09 45 46 -2 -20
|
||||
-1 sprites/fix_graphics.png 244 330 09 50 44 0 -25
|
||||
-1 sprites/fix_graphics.png 308 330 09 41 32 0 -25
|
||||
// start rail bridge
|
||||
-1 * 5 0A 01 01 \w2569
|
||||
-1 sprites/fix_graphics.png 350 330 09 29 52 -25 -4
|
||||
// start rail + road bridge
|
||||
-1 * 5 0A 01 02 \w2574
|
||||
-1 sprites/fix_graphics.png 420 330 09 29 50 -25 -4
|
||||
-1 sprites/fix_graphics.png 489 330 09 29 52 -25 -4
|
||||
// start road + monorail bridge
|
||||
-1 * 5 0A 01 02 \w2580
|
||||
-1 sprites/fix_graphics.png 559 330 09 29 50 -25 -4
|
||||
-1 sprites/fix_graphics.png 629 330 09 29 52 -25 -4
|
||||
// start monrail + maglev bridge
|
||||
-1 * 5 0A 01 02 \w2586
|
||||
-1 sprites/fix_graphics.png 699 330 09 29 50 -25 -4
|
||||
-1 sprites/fix_graphics.png 489 283 09 29 52 -25 -4
|
||||
// start maglev bridge
|
||||
-1 * 5 0A 01 01 \w2592
|
||||
-1 sprites/fix_graphics.png 559 283 09 29 50 -25 -4
|
||||
// GUI sprite
|
||||
-1 * 5 0A 01 01 \w2600
|
||||
-1 sprites/fix_graphics.png 433 298 09 15 40 0 5
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 23 KiB |
@@ -1,57 +1,3 @@
|
||||
openttd (1.1.2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 14 Aug 2011 17:00:00 +0200
|
||||
|
||||
openttd (1.1.2~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.2-RC2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 30 Jul 2011 21:00:00 +0200
|
||||
|
||||
openttd (1.1.2~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.2-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 24 Jul 2011 21:00:00 +0200
|
||||
|
||||
openttd (1.1.1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Jun 2011 00:00:00 +0200
|
||||
|
||||
openttd (1.1.1~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.1-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 May 2011 21:00:00 +0200
|
||||
|
||||
openttd (1.1.0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 01 Apr 2011 00:00:00 +0100
|
||||
|
||||
openttd (1.1.0~RC3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-RC3
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 18 Mar 2011 22:00:00 +0100
|
||||
|
||||
openttd (1.1.0~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-RC2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 04 Mar 2011 22:00:00 +0100
|
||||
|
||||
openttd (1.1.0~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 18 Feb 2011 22:00:00 +0100
|
||||
|
||||
openttd (1.1.0~beta5) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-beta5
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
|
||||
set OPENTTD_VERSION=1.1.2
|
||||
set OPENTTD_VERSION=1.1.0-beta5
|
||||
set OPENSFX_VERSION=0.8.0
|
||||
set NOSOUND_VERSION=0.8.0
|
||||
set OPENGFX_VERSION=0.7.0
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
# the man page is in the subpackage data
|
||||
addFilter("openttd.*: W: no-manual-page-for-binary openttd")
|
||||
# no other package depends on this package, so this should not matter
|
||||
addFilter("openttd.*: W: file-contains-date-and-time /usr/bin/openttd")
|
||||
addFilter("openttd.*: W: file-contains-current-date /usr/bin/openttd")
|
||||
|
||||
@@ -1,100 +0,0 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Mar 6 09:36:55 UTC 2011 - ammler@openttdcoop.org
|
||||
|
||||
- upstream update 1.1.0-RC2
|
||||
* Feature: XZ/LZMA2 savegame support. New default reduces
|
||||
savegame size by 10 to 30% with slightly more CPU usage.
|
||||
(requires xz-devel)
|
||||
* Feature: Remote administration
|
||||
* Feature: a lot improvements with GUI
|
||||
* Feature: Customizable hotkeys
|
||||
* Sources for openttd.grf are pngs (requires grfcodec >= 5.1)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 21 11:11:38 UTC 2010 - ammler@openttdcoop.org
|
||||
|
||||
- upstream update 1.0.5
|
||||
* Fix: Reading (very) recently freed memory [CVE-2010-4168]
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Oct 31 17:53:41 UTC 2010 - ammler@openttdcoop.org
|
||||
|
||||
- upstream update 1.0.4
|
||||
* build openttd.grf from source
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 10 20:16:03 UTC 2010 - ammler@openttdcoop.org
|
||||
|
||||
- upstream update 1.0.3
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 23 11:42:59 UTC 2010 - Marcel Gmür <ammler@openttdcoop.org>
|
||||
|
||||
- upstream update 1.0.2
|
||||
* Feature: Translated desktop shortcut comments (r19884)
|
||||
* many minor Bugfixes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 1 15:59:32 UTC 2010 - Marcel Gmür <ammler@openttdcoop.org>
|
||||
|
||||
- upstream update 1.0.1
|
||||
* Fix: Leaking a file descriptor
|
||||
* Fix a lot small bugs, like minor desync issues on Mulitplayer
|
||||
- no strip on make
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 1 08:53:54 UTC 2010 - Marcel Gmür <ammler@openttdcoop.org>
|
||||
|
||||
- upstream update 1.0.0 (finally!)
|
||||
* completely independend game but still working also
|
||||
with ttd original gaphics, sounds and music
|
||||
- Add: Recommends openmsx
|
||||
- requires lzo2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 18 2009 Marcel Gmür <ammler@openttdcoop.org> - 0.7.4
|
||||
|
||||
- support for differen branches
|
||||
- easy support for dedicated branch
|
||||
- let openttd build system make the dektop file
|
||||
- split the package to data and gui
|
||||
- disable requires
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 01 2009 Marcel Gmür <ammler@openttdcoop.org> - 0.7.3
|
||||
|
||||
- disable libicu for RHEL4
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 26 2009 Marcel Gmür <ammler@openttdcoop.org> - 0.7.2
|
||||
|
||||
- no subfolder games for datadir
|
||||
- cleanup: no post and postun anymore
|
||||
- Recommends: opengfx (for suse and mandriva)
|
||||
- add SUSE support
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 20 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
|
||||
- Added libicu dependency
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 23 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
|
||||
- Merged both versions of the spec file
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 29 2008 Jonathan Coome <maedhros@openttd.org>
|
||||
|
||||
- Rewrite spec file from scratch.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Aug 02 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
|
||||
- Updated spec file
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 27 2008 Denis Burlaka <burlaka@yandex.ru>
|
||||
|
||||
- Universal spec file
|
||||
|
||||
+167
-164
@@ -1,199 +1,202 @@
|
||||
%define dedicated 0
|
||||
# $Id$
|
||||
#-------------------------------------------------------------------------------
|
||||
# spec file for the openttd rpm package
|
||||
#
|
||||
# Copyright (c) 2007-2011 The OpenTTD developers
|
||||
#
|
||||
# This file and all modifications and additions to the pristine
|
||||
# package are under the same license as the package itself
|
||||
#
|
||||
# Note: for (at least) CentOS '#' comments end '\' continue command on new line.
|
||||
# So place all '#' commented parameters of e.g. configure to the end.
|
||||
#
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
%define binname openttd
|
||||
Name: openttd
|
||||
Version: 1.1.0
|
||||
Release: 1%{?dist}
|
||||
|
||||
%define srcver 1.1.2
|
||||
Group: Amusements/Games
|
||||
License: GPLv2
|
||||
URL: http://www.openttd.org
|
||||
Summary: OpenTTD is an Open Source clone of Chris Sawyer's Transport Tycoon Deluxe
|
||||
|
||||
%if %{dedicated}
|
||||
Name: %{binname}-dedicated
|
||||
%else
|
||||
Name: %{binname}
|
||||
%endif
|
||||
Version: %{srcver}
|
||||
Release: 1%{?dist}
|
||||
Group: Amusements/Games/Strategy/Other
|
||||
License: GPLv2
|
||||
URL: http://www.openttd.org
|
||||
Summary: An open source clone of Chris Sawyer's Transport Tycoon Deluxe
|
||||
|
||||
Source: openttd%{?branch:-%{branch}}-%{srcver}-source.tar.bz2
|
||||
|
||||
# the main package works with the exact same data package version only
|
||||
Requires: %{binname}-data = %{version}
|
||||
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libpng-devel
|
||||
BuildRequires: zlib-devel
|
||||
|
||||
%if 0%{?mdkversion}
|
||||
BuildRequires: liblzo-devel
|
||||
BuildRequires: liblzma-devel
|
||||
%else
|
||||
BuildRequires: lzo-devel
|
||||
BuildRequires: xz-devel
|
||||
%endif
|
||||
|
||||
#needed by libdrm
|
||||
%if 0%{?rhel_version} >= 600
|
||||
BuildRequires: kernel
|
||||
%endif
|
||||
|
||||
# for lzma detection
|
||||
%if 0%{?suse_version}
|
||||
BuildRequires: pkg-config
|
||||
%endif
|
||||
|
||||
# Desktop specific tags, not needed for dedicated
|
||||
%if !%{dedicated}
|
||||
BuildRequires: fontconfig-devel
|
||||
BuildRequires: SDL-devel
|
||||
|
||||
BuildRequires: grfcodec
|
||||
Source: %{name}-%{version}-source.tar.bz2
|
||||
|
||||
Requires: fontconfig
|
||||
Requires: SDL
|
||||
Requires: zlib
|
||||
Requires: xz-devel
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: fontconfig-devel
|
||||
BuildRequires: libpng-devel
|
||||
BuildRequires: libicu-devel
|
||||
BuildRequires: SDL-devel
|
||||
BuildRequires: zlib-devel
|
||||
# vendor specific dependencies
|
||||
%if !0%{?rhel_version}
|
||||
BuildRequires: libicu-devel
|
||||
%endif
|
||||
%if 0%{?rhel_version} || 0%{?fedora}
|
||||
BuildRequires: freetype-devel
|
||||
%endif
|
||||
%if 0%{?suse_version} || 0%{?mdkversion}
|
||||
BuildRequires: freetype2-devel
|
||||
%endif
|
||||
%if 0%{?suse_version}
|
||||
BuildRequires: update-desktop-files
|
||||
%endif
|
||||
%if %{_vendor}=="alt"
|
||||
Requires: freetype
|
||||
BuildRequires: freetype-devel
|
||||
%endif
|
||||
%if %{_vendor}=="redhat" || %{_vendor}=="fedora"
|
||||
Requires: freetype
|
||||
BuildRequires: freetype-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
%endif
|
||||
%if %{_vendor}=="suse" || %{_vendor}=="mandriva"
|
||||
Requires: freetype2
|
||||
BuildRequires: freetype2-devel
|
||||
%endif
|
||||
%if %{_vendor}=="suse"
|
||||
BuildRequires: update-desktop-files
|
||||
%endif
|
||||
|
||||
%if %{dedicated}
|
||||
Conflicts: %{binname} %{binname}-gui
|
||||
%else
|
||||
Provides: %{binname}-gui
|
||||
Conflicts: %{binname}-dedicated
|
||||
Requires: openttd-opensfx
|
||||
# recommends works for suse (not sles9) and mandriva, only
|
||||
%if 0%{?suse_version} || 0%{?mdkversion}
|
||||
# require timidity is part of openmsx
|
||||
Recommends: openttd-openmsx
|
||||
%endif
|
||||
%if 0%{?suse_version} > 910 || %{_vendor}=="mandriva"
|
||||
Recommends: opengfx
|
||||
# for 0.8.0
|
||||
#Recommends: opensfx
|
||||
%endif
|
||||
# Recommends would fit better but not well supported...
|
||||
Requires: openttd-opengfx >= 0.3.2
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
|
||||
|
||||
%description
|
||||
OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe"
|
||||
with lots of new features and enhancements. To play the game you need either
|
||||
the original data from the game or install the recommend subackages OpenGFX for
|
||||
free graphics, OpenSFX for free sounds and OpenMSX for free music.
|
||||
the original data from the game or install the recommend package OpenGFX.
|
||||
|
||||
OpenTTD is licensed under the GNU General Public License version 2.0. For more
|
||||
information, see the file 'COPYING' included with every release and source
|
||||
download of the game.
|
||||
|
||||
# the subpackage data needs only to build once, the dedicated version
|
||||
# can reuse the data package of the gui package
|
||||
%if !%{dedicated}
|
||||
%package data
|
||||
Summary: Data package for OpenTTD
|
||||
Group: Amusements/Games/Strategy/Other
|
||||
%if 0%{?suse_version} >= 1120 || 0%{?fedora} || 0%{?mdkversion}
|
||||
BuildArch: noarch
|
||||
%endif
|
||||
BuildRequires: grfcodec
|
||||
|
||||
%description data
|
||||
OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe"
|
||||
with lots of new features and enhancements. To play the game you need either
|
||||
the original data from the game or the required package OpenGFX and OpenSFX.
|
||||
|
||||
This package is required by openttd gui and openttd dedicated package. This
|
||||
way it is possible to install a openttd version without SDL requirement.
|
||||
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -qn openttd%{?branch:-%{branch}}-%{srcver}
|
||||
|
||||
# we build the grfs from sources but validate the result with the existing data
|
||||
md5sum bin/data/* > validate.data
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
# suse sle <10 has no support for makedepend
|
||||
%if 0%{?sles_version} == 9 || 0%{?sles_version} == 10
|
||||
%define do_makedepend 0
|
||||
%else
|
||||
%define do_makedepend 1
|
||||
%endif
|
||||
./configure \
|
||||
--prefix-dir="%{_prefix}" \
|
||||
--binary-name="%{binname}" \
|
||||
--binary-dir="bin" \
|
||||
--data-dir="share/%{binname}" \
|
||||
--doc-dir="share/doc/%{binname}" \
|
||||
--menu-name="OpenTTD%{?branch: %{branch}}" \
|
||||
--menu-group="Game;StrategyGame;" \
|
||||
--enable-dedicated="%{dedicated}" \
|
||||
--prefix-dir="%{_prefix}" \
|
||||
--binary-name="%{name}" \
|
||||
--enable-strip \
|
||||
--binary-dir="bin" \
|
||||
--data-dir="share/%{name}" \
|
||||
--with-makedepend="%{do_makedepend}" \
|
||||
# --revision="%{ver}%{?prever:-%{prever}}" \
|
||||
# --enable-debug=0 \
|
||||
# --with-sdl \
|
||||
# --with-zlib \
|
||||
# --with-png \
|
||||
# --with-freetype \
|
||||
# --with-fontconfig \
|
||||
# --with-icu \
|
||||
# --menu_group="Game;" \
|
||||
# --menu-name="OpenTTD" \
|
||||
# --doc-dir="share\doc\%{name}" \
|
||||
# --icon-dir="share/pixmaps" \
|
||||
# --icon-theme-dir="share/icons/hicolor" \
|
||||
# --man-dir="share/man/man6" \
|
||||
# --menu-dir="share/applications"
|
||||
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
%if %{dedicated}
|
||||
# dedicated package needs binary only
|
||||
install -D -m0755 bin/openttd %{buildroot}/%{_bindir}/%{binname}
|
||||
%else
|
||||
make install INSTALL_DIR="%{buildroot}"
|
||||
%if 0%{?suse_version}
|
||||
%suse_update_desktop_file -r %{binname} Game StrategyGame
|
||||
%endif
|
||||
|
||||
# Validate menu entrys (vendor specific)
|
||||
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
|
||||
desktop-file-install \
|
||||
--vendor="%{_vendor}" \
|
||||
--remove-key Version \
|
||||
--dir="%{buildroot}/%{_datadir}/applications/" \
|
||||
"%{buildroot}/%{_datadir}/applications/%{name}.desktop" \
|
||||
# --delete-original
|
||||
%endif
|
||||
%if %{_vendor}=="suse"
|
||||
%__cat > %{name}.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=OpenTTD
|
||||
Comment=OpenTTD - A clone of the Microprose game 'Transport Tycoon Deluxe'
|
||||
GenericName=OpenTTD
|
||||
Type=Application
|
||||
Terminal=false
|
||||
Exec=%{name}
|
||||
Icon=%{name}
|
||||
Categories=Game;StrategyGame;
|
||||
EOF
|
||||
%suse_update_desktop_file -i %{name} Game StrategyGame
|
||||
%endif
|
||||
|
||||
%clean
|
||||
rm -rf "%{buildroot}"
|
||||
#rm -rf "%{buildroot}"
|
||||
|
||||
%check
|
||||
md5sum -c validate.data
|
||||
|
||||
%files
|
||||
%attr(755, root, root) %{_bindir}/%{binname}
|
||||
|
||||
# all other files are for the gui version only, also no
|
||||
# subpackage needed for the dedicated version
|
||||
%if !%{dedicated}
|
||||
%defattr(-, root, root)
|
||||
%dir %{_datadir}/icons/hicolor
|
||||
%dir %{_datadir}/icons/hicolor/16x16
|
||||
%dir %{_datadir}/icons/hicolor/16x16/apps
|
||||
%dir %{_datadir}/icons/hicolor/32x32
|
||||
%dir %{_datadir}/icons/hicolor/32x32/apps
|
||||
%dir %{_datadir}/icons/hicolor/48x48
|
||||
%dir %{_datadir}/icons/hicolor/48x48/apps
|
||||
%dir %{_datadir}/icons/hicolor/64x64
|
||||
%dir %{_datadir}/icons/hicolor/64x64/apps
|
||||
%dir %{_datadir}/icons/hicolor/128x128
|
||||
%dir %{_datadir}/icons/hicolor/128x128/apps
|
||||
%dir %{_datadir}/icons/hicolor/256x256
|
||||
%dir %{_datadir}/icons/hicolor/256x256/apps
|
||||
%{_datadir}/applications/%{binname}.desktop
|
||||
%{_datadir}/icons/hicolor/16x16/apps/%{binname}.png
|
||||
%{_datadir}/icons/hicolor/32x32/apps/%{binname}.png
|
||||
%{_datadir}/icons/hicolor/48x48/apps/%{binname}.png
|
||||
%{_datadir}/icons/hicolor/64x64/apps/%{binname}.png
|
||||
%{_datadir}/icons/hicolor/128x128/apps/%{binname}.png
|
||||
%{_datadir}/icons/hicolor/256x256/apps/%{binname}.png
|
||||
%{_datadir}/pixmaps/%{binname}.32.xpm
|
||||
|
||||
%files data
|
||||
%defattr(-, root, root)
|
||||
%dir %{_datadir}/doc/%{binname}
|
||||
%dir %{_datadir}/%{binname}
|
||||
%dir %{_datadir}/%{binname}/lang
|
||||
%dir %{_datadir}/%{binname}/data
|
||||
%dir %{_datadir}/%{binname}/gm
|
||||
%dir %{_datadir}/%{binname}/scripts
|
||||
%dir %{_datadir}/%{binname}/ai
|
||||
%{_datadir}/doc/%{binname}/*
|
||||
%{_datadir}/%{binname}/lang/*
|
||||
%{_datadir}/%{binname}/data/*
|
||||
%{_datadir}/%{binname}/scripts/*
|
||||
%{_datadir}/%{binname}/ai/*
|
||||
%{_datadir}/%{binname}/gm/*
|
||||
%doc %{_mandir}/man6/%{binname}.6.*
|
||||
%post
|
||||
# Update the icon cache (vendor specific)
|
||||
%if %{_vendor}=="mandriva"
|
||||
%update_icon_cache hicolor
|
||||
%endif
|
||||
|
||||
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
|
||||
touch --no-create %{_datadir}/icons/hicolor
|
||||
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
|
||||
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
|
||||
fi
|
||||
%endif
|
||||
|
||||
%postun
|
||||
# Update the icon cache (vendor specific)
|
||||
%if %{_vendor}=="mandriva"
|
||||
%update_icon_cache hicolor
|
||||
%endif
|
||||
|
||||
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
|
||||
touch --no-create %{_datadir}/icons/hicolor
|
||||
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
|
||||
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
|
||||
fi
|
||||
%endif
|
||||
|
||||
%files
|
||||
%defattr(-, root, games, -)
|
||||
%dir %{_datadir}/doc/%{name}
|
||||
%dir %{_datadir}/%{name}
|
||||
%dir %{_datadir}/%{name}/lang
|
||||
%dir %{_datadir}/%{name}/data
|
||||
%dir %{_datadir}/%{name}/gm
|
||||
%dir %{_datadir}/%{name}/scripts
|
||||
%attr(755, root, games) %{_bindir}/%{name}
|
||||
%{_datadir}/doc/%{name}/*
|
||||
%{_datadir}/%{name}/lang/*
|
||||
%{_datadir}/%{name}/data/*
|
||||
%{_datadir}/%{name}/scripts/*
|
||||
%{_datadir}/applications/*%{name}.desktop
|
||||
%{_datadir}/pixmaps/*
|
||||
%{_datadir}/icons/*
|
||||
%doc %{_mandir}/man6/%{name}.6.*
|
||||
|
||||
%changelog
|
||||
* Sat Sep 26 2009 Marcel Gmür <ammler@openttdcoop.org> - 0.7.2
|
||||
- no subfolder games for datadir
|
||||
- cleanup: no post and postun anymore
|
||||
- Recommends: opengfx (for suse and mandriva)
|
||||
- add SUSE support
|
||||
|
||||
* Mon Oct 20 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
- Added libicu dependency
|
||||
|
||||
* Thu Sep 23 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
- Merged both versions of the spec file
|
||||
|
||||
* Fri Aug 29 2008 Jonathan Coome <maedhros@openttd.org>
|
||||
- Rewrite spec file from scratch.
|
||||
|
||||
* Sat Aug 02 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
- Updated spec file
|
||||
|
||||
* Thu Mar 27 2008 Denis Burlaka <burlaka@yandex.ru>
|
||||
- Universal spec file
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Version numbers to update
|
||||
!define APPV_MAJOR 1
|
||||
!define APPV_MINOR 1
|
||||
!define APPV_MAINT 2
|
||||
!define APPV_BUILD 2
|
||||
!define APPV_EXTRA ""
|
||||
!define APPV_MAINT 0
|
||||
!define APPV_BUILD 4
|
||||
!define APPV_EXTRA "-beta5"
|
||||
|
||||
!define APPNAME "OpenTTD" ; Define application name
|
||||
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
|
||||
@@ -560,12 +560,12 @@ Function CheckWindowsVersion
|
||||
StrCmp $R0 "win9x" 0 WinNT
|
||||
ClearErrors
|
||||
StrCmp ${APPARCH} "win9x" Done 0
|
||||
MessageBox MB_OKCANCEL|MB_ICONSTOP "You are trying to install the Windows 2000, XP, Vista and 7 version on Windows 95, 98 or ME. This is will not work. Please download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
|
||||
MessageBox MB_OKCANCEL|MB_ICONSTOP "You are trying to install the Windows 2000, XP and Vista version on Windows 95, 98 or ME. This is will not work. Please download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
|
||||
GoTo Done
|
||||
WinNT:
|
||||
ClearErrors
|
||||
StrCmp ${APPARCH} "win9x" 0 Done
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "You are trying to install the Windows 95, 98 and ME version on Windows 2000, XP, Vista or 7. This is not advised, but will work with reduced capabilities. We suggest that you download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "You are trying to install the Windows 95, 98 and ME version on Windows 2000, XP or Vista. This is not advised, but will work with reduced capabilities. We suggest that you download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
|
||||
Abort:
|
||||
Quit
|
||||
Done:
|
||||
|
||||
@@ -227,9 +227,6 @@ Function DetermineSVNVersion()
|
||||
Loop
|
||||
If oExec.ExitCode = 0 Then
|
||||
version = oExec.StdOut.ReadLine()
|
||||
If Right(version, 2) = "^0" Then
|
||||
version = Left(version, Len(version) - 2)
|
||||
End If
|
||||
branch = ""
|
||||
End If ' oExec.ExitCode = 0
|
||||
End If ' Err.Number = 0
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -204,7 +204,7 @@
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -388,7 +388,6 @@
|
||||
<ClInclude Include="..\src\cargotype.h" />
|
||||
<ClInclude Include="..\src\cheat_func.h" />
|
||||
<ClInclude Include="..\src\cheat_type.h" />
|
||||
<ClInclude Include="..\src\clear_func.h" />
|
||||
<ClInclude Include="..\src\cmd_helper.h" />
|
||||
<ClInclude Include="..\src\command_func.h" />
|
||||
<ClInclude Include="..\src\command_type.h" />
|
||||
@@ -430,6 +429,7 @@
|
||||
<ClInclude Include="..\src\fileio_type.h" />
|
||||
<ClInclude Include="..\src\fios.h" />
|
||||
<ClInclude Include="..\src\fontcache.h" />
|
||||
<ClInclude Include="..\src\functions.h" />
|
||||
<ClInclude Include="..\src\gamelog.h" />
|
||||
<ClInclude Include="..\src\gamelog_internal.h" />
|
||||
<ClInclude Include="..\src\genworld.h" />
|
||||
@@ -1074,7 +1074,6 @@
|
||||
<ClInclude Include="..\src\pathfinder\yapf\yapf_node.hpp" />
|
||||
<ClInclude Include="..\src\pathfinder\yapf\yapf_node_rail.hpp" />
|
||||
<ClInclude Include="..\src\pathfinder\yapf\yapf_node_road.hpp" />
|
||||
<ClInclude Include="..\src\pathfinder\yapf\yapf_node_ship.hpp" />
|
||||
<ClCompile Include="..\src\pathfinder\yapf\yapf_rail.cpp" />
|
||||
<ClCompile Include="..\src\pathfinder\yapf\yapf_road.cpp" />
|
||||
<ClCompile Include="..\src\pathfinder\yapf\yapf_ship.cpp" />
|
||||
|
||||
@@ -384,9 +384,6 @@
|
||||
<ClInclude Include="..\src\cheat_type.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\clear_func.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\cmd_helper.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -510,6 +507,9 @@
|
||||
<ClInclude Include="..\src\fontcache.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\functions.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\gamelog.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -2442,9 +2442,6 @@
|
||||
<ClInclude Include="..\src\pathfinder\yapf\yapf_node_road.hpp">
|
||||
<Filter>YAPF</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\pathfinder\yapf\yapf_node_ship.hpp">
|
||||
<Filter>YAPF</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\src\pathfinder\yapf\yapf_rail.cpp">
|
||||
<Filter>YAPF</Filter>
|
||||
</ClCompile>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -204,7 +204,7 @@
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -257,7 +257,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -826,10 +826,6 @@
|
||||
RelativePath=".\..\src\cheat_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\clear_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cmd_helper.h"
|
||||
>
|
||||
@@ -994,6 +990,10 @@
|
||||
RelativePath=".\..\src\fontcache.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\functions.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\gamelog.h"
|
||||
>
|
||||
@@ -3662,10 +3662,6 @@
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_node_road.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_node_ship.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_rail.cpp"
|
||||
>
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -257,7 +257,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -255,7 +255,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -823,10 +823,6 @@
|
||||
RelativePath=".\..\src\cheat_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\clear_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cmd_helper.h"
|
||||
>
|
||||
@@ -991,6 +987,10 @@
|
||||
RelativePath=".\..\src\fontcache.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\functions.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\gamelog.h"
|
||||
>
|
||||
@@ -3659,10 +3659,6 @@
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_node_road.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_node_ship.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_rail.cpp"
|
||||
>
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -255,7 +255,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
|
||||
+21
-54
@@ -1,6 +1,6 @@
|
||||
OpenTTD readme
|
||||
Last updated: 2011-08-14
|
||||
Release version: 1.1.2
|
||||
Last updated: 2011-02-04
|
||||
Release version: 1.1.0-beta5
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -249,12 +249,9 @@ wait for an error message to pop up. The error message will tell you
|
||||
|
||||
4.2) OpenTTD directories
|
||||
---- -------------------
|
||||
OpenTTD uses its own directory to store its required 3rd party base set files (see section
|
||||
4.1 "Required 3rd party files") and non-compulsory extension and configuration files. See
|
||||
below for their proper place within this OpenTTD main data directory.
|
||||
|
||||
The main OpenTTD directories can be found in various locations, depending on your operating
|
||||
system:
|
||||
The required 3rd party files listed in the section 4.1 "(Required) 3rd party files"
|
||||
as well as other non-compulsory extensions (NewGRFs, AI, heightmaps, scenarios) can be
|
||||
placed in a few different locations:
|
||||
1. The current working directory (from where you started OpenTTD)
|
||||
For non-Windows operating systems OpenTTD will not scan for files in this
|
||||
directory if it is your personal directory, i.e. "~/", or when it is the
|
||||
@@ -276,26 +273,7 @@ system:
|
||||
5. The installation directory (Linux only)
|
||||
Linux: /usr/share/games/openttd
|
||||
6. The application bundle (Mac OSX only)
|
||||
It includes the OpenTTD files (grf+lng) and it will work as long as they aren't
|
||||
touched
|
||||
|
||||
Different types of data or extensions go into different subdirectories of the chosen main
|
||||
OpenTTD directory:
|
||||
Config File: (no subdirectory)
|
||||
Screenshots: (no subdirectory)
|
||||
Base Graphics: data (or a subdirectory thereof)
|
||||
Sound Sets: data (or a subdirectory thereof)
|
||||
NewGRFs: data (or a subdirectory thereof)
|
||||
32bpp Sets: data (or a subdirectory thereof)
|
||||
Music Sets: gm (or a subdirectory thereof)
|
||||
AIs: ai (or a subdirectory thereof)
|
||||
AI Libraries: ai/libraries (or a subdirectory thereof)
|
||||
Savegames: save
|
||||
Automatic Savegames: save/autosave
|
||||
Scenarios: scenario
|
||||
|
||||
The (automatically created) directory content_download is for OpenTTD's internal use and
|
||||
no files should be added to it or its subdirectories manually.
|
||||
It includes the OpenTTD files (grf+lng) and it will work as long as they aren't touched
|
||||
|
||||
Notes:
|
||||
- Linux in the previous list means .deb, but most paths should be similar for others.
|
||||
@@ -379,7 +357,7 @@ OpenTTD in debug mode.
|
||||
The configuration file for OpenTTD (openttd.cfg) is in a simple Windows-like
|
||||
.INI format. It's mostly undocumented. Almost all settings can be changed
|
||||
ingame by using the 'Advanced Settings' window.
|
||||
When you cannot find openttd.cfg you should look in the directories as
|
||||
When you can not find openttd.cfg you should look in the directories as
|
||||
described in section 4.2. If you do not have an openttd.cfg OpenTTD will
|
||||
create one after closing.
|
||||
|
||||
@@ -441,8 +419,7 @@ DOS:
|
||||
---- ---------------------------
|
||||
The following libraries are used by OpenTTD for:
|
||||
- libSDL/liballegro: hardware access (video, sound, mouse)
|
||||
- zlib: (de)compressing of old (0.3.0-1.0.5) savegames, content downloads,
|
||||
heightmaps
|
||||
- zlib: (de)compressing of old (0.3.0-1.0.5) savegames, content downloads, heightmaps
|
||||
- liblzo2: (de)compressing of old (pre 0.3.0) savegames
|
||||
- liblzma: (de)compressing of savegames (1.1.0 and later)
|
||||
- libpng: making screenshots and loading heightmaps
|
||||
@@ -468,9 +445,9 @@ you remove the graphics file using "make maintainer-clean".
|
||||
The following compilers are known to compile OpenTTD:
|
||||
- Microsoft Visual C++ (MSVC) 2005, 2008 and 2010.
|
||||
Version 2005 gives bogus warnings about scoping issues.
|
||||
- GNU Compiler Collection (GCC) 3.3 - 4.7.
|
||||
- GNU Compiler Collection (GCC) 3.3 - 4.6.
|
||||
Versions 4.1 and earlier give bogus warnings about uninitialised variables.
|
||||
Versions 4.4 and later give bogus warnings about freeing non-heap objects.
|
||||
Versions 4.4 and later give bogus warnings about freeing heap objects.
|
||||
- Intel C++ Compiler (ICC) 12.0.
|
||||
|
||||
The following compilers are known not to compile OpenTTD:
|
||||
@@ -478,8 +455,7 @@ The following compilers are known not to compile OpenTTD:
|
||||
- GNU Compiler Collection (GCC) 3.2 and earlier.
|
||||
These old versions fail due to OpenTTD's template usage.
|
||||
- Intel C++ Compiler (ICC) 11.1 and earlier.
|
||||
Version 10.0 and earlier fail a configure check and fail with recent system
|
||||
headers.
|
||||
Version 10.0 and earlier fail a configure check and fail with recent system headers.
|
||||
Version 10.1 fails to compile station_gui.cpp.
|
||||
Version 11.1 fails with internal error when compiling network.cpp.
|
||||
- Clang/LLVM 2.8 and earlier.
|
||||
@@ -558,33 +534,24 @@ look at http://wiki.openttd.org/index.php/Command_line.
|
||||
The most frequent problem is missing data files. Please install OpenGFX and
|
||||
possibly OpenSFX and OpenMSX. See section 4.1.1 for more information.
|
||||
|
||||
Under certain circumstance, especially on Ubuntu OpenTTD can be extremely slow
|
||||
and/or freeze. See known-bugs.txt for more information and how to solve this
|
||||
problem on your computer.
|
||||
Under, especially, Ubuntu OpenTTD can be extremely slow and freeze/hand under
|
||||
certain circumstance. See known-bugs.txt for more information and how to
|
||||
solve this problem on your computer.
|
||||
|
||||
Under Windows 98 and lower it is impossible to use a dedicated server; it will
|
||||
fail to start. Perhaps this is for the better because those OSes are not known
|
||||
for their stability.
|
||||
|
||||
With the added support for font-based text selecting a non-latin language can
|
||||
result in lots of question marks ('?') being shown on screen. Please open your
|
||||
configuration file (openttd.cfg - see Section 4.2 for where to find it)
|
||||
and add a suitable font for the small, medium and / or large font, e.g.:
|
||||
small_font = "Tahoma"
|
||||
medium_font = "Tahoma"
|
||||
large_font = "Tahoma"
|
||||
You should use a font name like "Tahoma" or a path to the desired font.
|
||||
With the added support for font-based text selecting a non-latin language will
|
||||
result in garbage (lots of '?') shown on screen. Please open your configuration
|
||||
file and add a desired font for small/medium/-and large_font. This can be a font
|
||||
name like "Tahoma" or a path to a font.
|
||||
|
||||
Any NewGRF file used in a game is stored inside the savegame and will refuse
|
||||
to load if you don't have that NewGRF file available. A list of missing files
|
||||
can be viewed in the NewGRF window accessible from the file load dialogue window.
|
||||
|
||||
You can try to obtain the missing files from that NewGRF dialogue or - if they
|
||||
are not available online - you can search manually through our forum's graphics
|
||||
development section (http://www.tt-forums.net/viewforum.php?f=66) or GrfCrawler
|
||||
(http://grfcrawler.tt-forums.net/). Put the NewGRF files in OpenTTD's data folder
|
||||
(see section 4.2 "OpenTTD directories") and rescan the list of available NewGRFs.
|
||||
Once you have all missing files, you are set to go.
|
||||
will be output to the console at the moment, so use the '-d' flag (on windows)
|
||||
to see this list. You just have to find the files (http://grfcrawler.tt-forums.net/)
|
||||
put them in the data/ folder and you're set to go.
|
||||
|
||||
|
||||
X.X) Credits
|
||||
|
||||
+1
-2
@@ -121,7 +121,6 @@ cargopacket.h
|
||||
cargotype.h
|
||||
cheat_func.h
|
||||
cheat_type.h
|
||||
clear_func.h
|
||||
cmd_helper.h
|
||||
command_func.h
|
||||
command_type.h
|
||||
@@ -163,6 +162,7 @@ fileio_func.h
|
||||
fileio_type.h
|
||||
fios.h
|
||||
fontcache.h
|
||||
functions.h
|
||||
gamelog.h
|
||||
gamelog_internal.h
|
||||
genworld.h
|
||||
@@ -875,7 +875,6 @@ pathfinder/yapf/yapf_destrail.hpp
|
||||
pathfinder/yapf/yapf_node.hpp
|
||||
pathfinder/yapf/yapf_node_rail.hpp
|
||||
pathfinder/yapf/yapf_node_road.hpp
|
||||
pathfinder/yapf/yapf_node_ship.hpp
|
||||
pathfinder/yapf/yapf_rail.cpp
|
||||
pathfinder/yapf/yapf_road.cpp
|
||||
pathfinder/yapf/yapf_ship.cpp
|
||||
|
||||
-6
@@ -54,10 +54,6 @@ extern "C" {
|
||||
typedef __int64 SQInteger;
|
||||
typedef unsigned __int64 SQUnsignedInteger;
|
||||
typedef unsigned __int64 SQHash; /*should be the same size of a pointer*/
|
||||
#elif defined(_WIN32)
|
||||
typedef long long SQInteger;
|
||||
typedef unsigned long long SQUnsignedInteger;
|
||||
typedef unsigned long long SQHash; /*should be the same size of a pointer*/
|
||||
#else
|
||||
typedef long SQInteger;
|
||||
typedef unsigned long SQUnsignedInteger;
|
||||
@@ -81,8 +77,6 @@ typedef float SQFloat;
|
||||
#if defined(SQUSEDOUBLE) && !defined(_SQ64)
|
||||
#ifdef _MSC_VER
|
||||
typedef __int64 SQRawObjectVal; //must be 64bits
|
||||
#elif defined(_WIN32)
|
||||
typedef long long SQRawObjectVal; //must be 64bits
|
||||
#else
|
||||
typedef long SQRawObjectVal; //must be 64bits
|
||||
#endif
|
||||
|
||||
@@ -597,7 +597,6 @@ public:
|
||||
}
|
||||
SQInteger Factor()
|
||||
{
|
||||
_exst._deref = DEREF_NO_DEREF;
|
||||
switch(_token)
|
||||
{
|
||||
case TK_STRING_LITERAL: {
|
||||
|
||||
+2
-2
@@ -125,7 +125,7 @@ public:
|
||||
static int GetStartNextTime();
|
||||
|
||||
/** Wrapper function for AIScanner::GetAIConsoleList */
|
||||
static char *GetConsoleList(char *p, const char *last, bool newest_only = false);
|
||||
static char *GetConsoleList(char *p, const char *last);
|
||||
/** Wrapper function for AIScanner::GetAIConsoleLibraryList */
|
||||
static char *GetConsoleLibraryList(char *p, const char *last);
|
||||
/** Wrapper function for AIScanner::GetAIInfoList */
|
||||
@@ -168,7 +168,7 @@ public:
|
||||
static void GameLoop() {}
|
||||
static bool HasAI(const struct ContentInfo *ci, bool md5sum) { return false; }
|
||||
static void Rescan() {}
|
||||
static char *GetConsoleList(char *p, const char *last, bool newest_only = false) { return p; }
|
||||
static char *GetConsoleList(char *p, const char *last) { return p; }
|
||||
static void nop() { }
|
||||
};
|
||||
|
||||
|
||||
@@ -75,9 +75,9 @@ AIInfo *AIConfig::GetInfo() const
|
||||
return this->info;
|
||||
}
|
||||
|
||||
bool AIConfig::ResetInfo(bool force_exact_match)
|
||||
bool AIConfig::ResetInfo()
|
||||
{
|
||||
this->info = AI::FindInfo(this->name, force_exact_match ? this->version : -1, force_exact_match);
|
||||
this->info = AI::FindInfo(this->name, -1, false);
|
||||
return this->info != NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -57,12 +57,10 @@ public:
|
||||
/**
|
||||
* When ever the AI Scanner is reloaded, all infos become invalid. This
|
||||
* function tells AIConfig about this.
|
||||
* @param force_exact_match If true try to find the exact same version
|
||||
* as specified. If false any version is ok.
|
||||
* @return \c true if the reset was successful, \c false if the AI was no longer
|
||||
* found.
|
||||
*/
|
||||
bool ResetInfo(bool force_exact_match);
|
||||
bool ResetInfo();
|
||||
|
||||
/**
|
||||
* Get the AIInfo linked to this AIConfig.
|
||||
|
||||
+4
-15
@@ -170,24 +170,13 @@
|
||||
* a random new AI on reload). */
|
||||
for (CompanyID c = COMPANY_FIRST; c < MAX_COMPANIES; c++) {
|
||||
if (_settings_game.ai_config[c] != NULL && _settings_game.ai_config[c]->HasAI()) {
|
||||
if (!_settings_game.ai_config[c]->ResetInfo(true)) {
|
||||
if (!_settings_game.ai_config[c]->ResetInfo()) {
|
||||
DEBUG(ai, 0, "After a reload, the AI by the name '%s' was no longer found, and removed from the list.", _settings_game.ai_config[c]->GetName());
|
||||
_settings_game.ai_config[c]->ChangeAI(NULL);
|
||||
if (Company::IsValidAiID(c)) {
|
||||
/* The code belonging to an already running AI was deleted. We can only do
|
||||
* one thing here to keep everything sane and that is kill the AI. After
|
||||
* killing the offending AI we start a random other one in it's place, just
|
||||
* like what would happen if the AI was missing during loading. */
|
||||
AI::Stop(c);
|
||||
AI::StartNew(c, false);
|
||||
}
|
||||
} else if (Company::IsValidAiID(c)) {
|
||||
/* Update the reference in the Company struct. */
|
||||
Company::Get(c)->ai_info = _settings_game.ai_config[c]->GetInfo();
|
||||
}
|
||||
}
|
||||
if (_settings_newgame.ai_config[c] != NULL && _settings_newgame.ai_config[c]->HasAI()) {
|
||||
if (!_settings_newgame.ai_config[c]->ResetInfo(false)) {
|
||||
if (!_settings_newgame.ai_config[c]->ResetInfo()) {
|
||||
DEBUG(ai, 0, "After a reload, the AI by the name '%s' was no longer found, and removed from the list.", _settings_newgame.ai_config[c]->GetName());
|
||||
_settings_newgame.ai_config[c]->ChangeAI(NULL);
|
||||
}
|
||||
@@ -300,9 +289,9 @@ void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
|
||||
return DAYS_IN_YEAR;
|
||||
}
|
||||
|
||||
/* static */ char *AI::GetConsoleList(char *p, const char *last, bool newest_only)
|
||||
/* static */ char *AI::GetConsoleList(char *p, const char *last)
|
||||
{
|
||||
return AI::ai_scanner->GetAIConsoleList(p, last, newest_only);
|
||||
return AI::ai_scanner->GetAIConsoleList(p, last);
|
||||
}
|
||||
|
||||
/* static */ char *AI::GetConsoleLibraryList(char *p, const char *last)
|
||||
|
||||
+17
-43
@@ -182,20 +182,13 @@ struct AIListWindow : public Window {
|
||||
nwi->widget_data = (this->vscroll->GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START);
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (_game_mode == GM_NORMAL && Company::IsValidID(this->slot)) {
|
||||
delete this;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!gui_scope) return;
|
||||
|
||||
this->vscroll->SetCount((int)this->ai_info_list->size() + 1);
|
||||
|
||||
/* selected goes from -1 .. length of ai list - 1. */
|
||||
@@ -374,7 +367,6 @@ struct AISettingsWindow : public Window {
|
||||
/* One of the arrows is clicked (or green/red rect in case of bool value) */
|
||||
if (IsInsideMM(x, 0, 21)) {
|
||||
int new_val = this->ai_config->GetSetting(config_item.name);
|
||||
int old_val = new_val;
|
||||
if (bool_item) {
|
||||
new_val = !new_val;
|
||||
} else if (x >= 10) {
|
||||
@@ -389,19 +381,18 @@ struct AISettingsWindow : public Window {
|
||||
this->clicked_increase = false;
|
||||
}
|
||||
|
||||
if (new_val != old_val) {
|
||||
this->ai_config->SetSetting(config_item.name, new_val);
|
||||
this->clicked_button = num;
|
||||
this->timeout = 5;
|
||||
this->ai_config->SetSetting(config_item.name, new_val);
|
||||
this->clicked_button = num;
|
||||
this->timeout = 5;
|
||||
|
||||
this->CheckDifficultyLevel();
|
||||
}
|
||||
this->CheckDifficultyLevel();
|
||||
} else if (!bool_item) {
|
||||
/* Display a query box so users can enter a custom value. */
|
||||
this->clicked_row = num;
|
||||
SetDParam(0, this->ai_config->GetSetting(config_item.name));
|
||||
ShowQueryString(STR_JUST_INT, STR_CONFIG_SETTING_QUERY_CAPTION, 10, 100, this, CS_NUMERAL, QSF_NONE);
|
||||
}
|
||||
|
||||
this->SetDirty();
|
||||
break;
|
||||
}
|
||||
@@ -446,12 +437,7 @@ struct AISettingsWindow : public Window {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (_game_mode == GM_NORMAL && Company::IsValidID(this->slot)) delete this;
|
||||
}
|
||||
@@ -706,19 +692,12 @@ struct AIConfigWindow : public Window {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (!IsEditable(this->selected_slot)) {
|
||||
this->selected_slot = INVALID_COMPANY;
|
||||
}
|
||||
|
||||
if (!gui_scope) return;
|
||||
|
||||
this->SetWidgetDisabledState(AIC_WIDGET_DECREASE, GetGameSettings().difficulty.max_no_competitors == 0);
|
||||
this->SetWidgetDisabledState(AIC_WIDGET_INCREASE, GetGameSettings().difficulty.max_no_competitors == MAX_COMPANIES - 1);
|
||||
this->SetWidgetDisabledState(AIC_WIDGET_CHANGE, this->selected_slot == INVALID_COMPANY);
|
||||
@@ -818,8 +797,9 @@ struct AIDebugWindow : public QueryStringBaseWindow {
|
||||
/* Check if the currently selected company is still active. */
|
||||
if (ai_debug_company == INVALID_COMPANY || !Company::IsValidAiID(ai_debug_company)) {
|
||||
if (ai_debug_company != INVALID_COMPANY) {
|
||||
/* Raise the widget for the previous selection. */
|
||||
/* Raise and disable the widget for the previous selection. */
|
||||
this->RaiseWidget(ai_debug_company + AID_WIDGET_COMPANY_BUTTON_START);
|
||||
this->DisableWidget(ai_debug_company + AID_WIDGET_COMPANY_BUTTON_START);
|
||||
|
||||
ai_debug_company = INVALID_COMPANY;
|
||||
}
|
||||
@@ -849,6 +829,9 @@ struct AIDebugWindow : public QueryStringBaseWindow {
|
||||
|
||||
if (this->show_break_box) this->DrawEditBox(AID_WIDGET_BREAK_STR_EDIT_BOX);
|
||||
|
||||
/* If there are no active companies, don't display anything else. */
|
||||
if (ai_debug_company == INVALID_COMPANY) return;
|
||||
|
||||
/* Paint the company icons */
|
||||
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
|
||||
NWidgetCore *button = this->GetWidget<NWidgetCore>(i + AID_WIDGET_COMPANY_BUTTON_START);
|
||||
@@ -879,9 +862,6 @@ struct AIDebugWindow : public QueryStringBaseWindow {
|
||||
DrawCompanyIcon(i, button->pos_x + button->current_x / 2 - 7 + offset, this->GetWidget<NWidgetBase>(AID_WIDGET_COMPANY_BUTTON_START + i)->pos_y + 2 + offset);
|
||||
}
|
||||
|
||||
/* If there are no active companies, don't display anything else. */
|
||||
if (ai_debug_company == INVALID_COMPANY) return;
|
||||
|
||||
Backup<CompanyByte> cur_company(_current_company, ai_debug_company, FILE_LINE);
|
||||
AILog::LogData *log = (AILog::LogData *)AIObject::GetLogPointer();
|
||||
cur_company.Restore();
|
||||
@@ -1052,16 +1032,11 @@ struct AIDebugWindow : public QueryStringBaseWindow {
|
||||
return state;
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data = 0)
|
||||
{
|
||||
if (data == -1 || ai_debug_company == data) this->SetDirty();
|
||||
|
||||
if (gui_scope && data == -2) {
|
||||
if (data == -2) {
|
||||
/* The continue button should be disabled when the game is unpaused and
|
||||
* it was previously paused by the break string ( = a line in the log
|
||||
* was highlighted )*/
|
||||
@@ -1073,9 +1048,8 @@ struct AIDebugWindow : public QueryStringBaseWindow {
|
||||
}
|
||||
}
|
||||
|
||||
/* If the log message is related to the active company tab, check the break string.
|
||||
* This needs to be done in gameloop-scope, so the AI is suspended immediately. */
|
||||
if (!gui_scope && data == ai_debug_company && this->break_check_enabled && !StrEmpty(this->edit_str_buf)) {
|
||||
/* If the log message is related to the active company tab, check the break string */
|
||||
if (data == ai_debug_company && this->break_check_enabled && !StrEmpty(this->edit_str_buf)) {
|
||||
/* Get the log instance of the active company */
|
||||
Backup<CompanyByte> cur_company(_current_company, ai_debug_company, FILE_LINE);
|
||||
AILog::LogData *log = (AILog::LogData *)AIObject::GetLogPointer();
|
||||
|
||||
@@ -330,12 +330,11 @@ AIInfo *AIScanner::FindInfo(const char *nameParam, int versionParam, bool force_
|
||||
return info;
|
||||
}
|
||||
|
||||
char *AIScanner::GetAIConsoleList(char *p, const char *last, bool newest_only) const
|
||||
char *AIScanner::GetAIConsoleList(char *p, const char *last) const
|
||||
{
|
||||
p += seprintf(p, last, "List of AIs:\n");
|
||||
const AIInfoList &list = newest_only ? this->info_single_list : this->info_list;
|
||||
AIInfoList::const_iterator it = list.begin();
|
||||
for (; it != list.end(); it++) {
|
||||
AIInfoList::const_iterator it = this->info_list.begin();
|
||||
for (; it != this->info_list.end(); it++) {
|
||||
AIInfo *i = (*it).second;
|
||||
p += seprintf(p, last, "%10s (v%d): %s\n", i->GetName(), i->GetVersion(), i->GetDescription());
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
/**
|
||||
* Get the list of available AIs for the console.
|
||||
*/
|
||||
char *GetAIConsoleList(char *p, const char *last, bool newest_only) const;
|
||||
char *GetAIConsoleList(char *p, const char *last) const;
|
||||
|
||||
/**
|
||||
* Get the list of available AI Libraries for the console.
|
||||
|
||||
@@ -15,16 +15,10 @@
|
||||
* functions may still be available if you return an older API version
|
||||
* in GetAPIVersion() in info.nut.
|
||||
*
|
||||
* \b 1.1.2
|
||||
*
|
||||
* No changes
|
||||
*
|
||||
* \b 1.1.1
|
||||
*
|
||||
* No changes
|
||||
*
|
||||
* \b 1.1.0
|
||||
*
|
||||
* 1.1.0 is not yet released. The following changes are not set in stone yet.
|
||||
*
|
||||
* API additions:
|
||||
* \li IsEnd for all lists.
|
||||
* \li AIEventTownFounded
|
||||
|
||||
@@ -19,15 +19,8 @@
|
||||
#include "../../articulated_vehicles.h"
|
||||
#include "table/strings.h"
|
||||
|
||||
bool AIEventEnginePreview::IsEngineValid() const
|
||||
{
|
||||
const Engine *e = ::Engine::GetIfValid(this->engine);
|
||||
return e != NULL && e->IsEnabled();
|
||||
}
|
||||
|
||||
char *AIEventEnginePreview::GetName()
|
||||
{
|
||||
if (!this->IsEngineValid()) return NULL;
|
||||
static const int len = 64;
|
||||
char *engine_name = MallocT<char>(len);
|
||||
|
||||
@@ -38,7 +31,6 @@ char *AIEventEnginePreview::GetName()
|
||||
|
||||
CargoID AIEventEnginePreview::GetCargoType()
|
||||
{
|
||||
if (!this->IsEngineValid()) return CT_INVALID;
|
||||
CargoArray cap = ::GetCapacityOfArticulatedParts(this->engine);
|
||||
|
||||
CargoID most_cargo = CT_INVALID;
|
||||
@@ -55,7 +47,6 @@ CargoID AIEventEnginePreview::GetCargoType()
|
||||
|
||||
int32 AIEventEnginePreview::GetCapacity()
|
||||
{
|
||||
if (!this->IsEngineValid()) return -1;
|
||||
const Engine *e = ::Engine::Get(this->engine);
|
||||
switch (e->type) {
|
||||
case VEH_ROAD:
|
||||
@@ -78,7 +69,6 @@ int32 AIEventEnginePreview::GetCapacity()
|
||||
|
||||
int32 AIEventEnginePreview::GetMaxSpeed()
|
||||
{
|
||||
if (!this->IsEngineValid()) return -1;
|
||||
const Engine *e = ::Engine::Get(this->engine);
|
||||
int32 max_speed = e->GetDisplayMaxSpeed(); // km-ish/h
|
||||
if (e->type == VEH_AIRCRAFT) max_speed /= _settings_game.vehicle.plane_speed;
|
||||
@@ -87,19 +77,16 @@ int32 AIEventEnginePreview::GetMaxSpeed()
|
||||
|
||||
Money AIEventEnginePreview::GetPrice()
|
||||
{
|
||||
if (!this->IsEngineValid()) return -1;
|
||||
return ::Engine::Get(this->engine)->GetCost();
|
||||
}
|
||||
|
||||
Money AIEventEnginePreview::GetRunningCost()
|
||||
{
|
||||
if (!this->IsEngineValid()) return -1;
|
||||
return ::Engine::Get(this->engine)->GetRunningCost();
|
||||
}
|
||||
|
||||
int32 AIEventEnginePreview::GetVehicleType()
|
||||
{
|
||||
if (!this->IsEngineValid()) return AIVehicle::VT_INVALID;
|
||||
switch (::Engine::Get(this->engine)->type) {
|
||||
case VEH_ROAD: return AIVehicle::VT_ROAD;
|
||||
case VEH_TRAIN: return AIVehicle::VT_RAIL;
|
||||
@@ -111,7 +98,6 @@ int32 AIEventEnginePreview::GetVehicleType()
|
||||
|
||||
bool AIEventEnginePreview::AcceptPreview()
|
||||
{
|
||||
if (!this->IsEngineValid()) return false;
|
||||
return AIObject::DoCommand(0, this->engine, 0, CMD_WANT_ENGINE_PREVIEW);
|
||||
}
|
||||
|
||||
|
||||
@@ -296,7 +296,6 @@ public:
|
||||
|
||||
private:
|
||||
EngineID engine;
|
||||
bool IsEngineValid() const;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -66,11 +66,11 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
|
||||
if (order_position == AIOrder::ORDER_INVALID) return NULL;
|
||||
}
|
||||
const Order *order = v->orders.list->GetFirstOrder();
|
||||
while (order->GetType() == OT_IMPLICIT) order = order->next;
|
||||
while (order->GetType() == OT_AUTOMATIC) order = order->next;
|
||||
while (order_position > 0) {
|
||||
order_position = (AIOrder::OrderPosition)(order_position - 1);
|
||||
order = order->next;
|
||||
while (order->GetType() == OT_IMPLICIT) order = order->next;
|
||||
while (order->GetType() == OT_AUTOMATIC) order = order->next;
|
||||
}
|
||||
return order;
|
||||
}
|
||||
@@ -135,12 +135,12 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
|
||||
int cur_order_pos = ::Vehicle::Get(vehicle_id)->cur_real_order_index;
|
||||
const Order *order = ::Vehicle::Get(vehicle_id)->GetOrder(0);
|
||||
if (order == NULL) return ORDER_INVALID;
|
||||
int num_implicit_orders = 0;
|
||||
int num_automatic_orders = 0;
|
||||
for (int i = 0; i < cur_order_pos; i++) {
|
||||
if (order->GetType() == OT_IMPLICIT) num_implicit_orders++;
|
||||
if (order->GetType() == OT_AUTOMATIC) num_automatic_orders++;
|
||||
order = order->next;
|
||||
}
|
||||
return (AIOrder::OrderPosition)(cur_order_pos - num_implicit_orders);
|
||||
return (AIOrder::OrderPosition)(cur_order_pos - num_automatic_orders);
|
||||
}
|
||||
return (order_position >= 0 && order_position < ::Vehicle::Get(vehicle_id)->GetNumManualOrders()) ? order_position : ORDER_INVALID;
|
||||
}
|
||||
@@ -509,8 +509,6 @@ static void _DoCommandReturnSetOrderFlags(class AIInstance *instance)
|
||||
|
||||
AIOrderFlags current = GetOrderFlags(vehicle_id, order_position);
|
||||
|
||||
EnforcePrecondition(false, (order_flags & AIOF_GOTO_NEAREST_DEPOT) == (current & AIOF_GOTO_NEAREST_DEPOT));
|
||||
|
||||
if ((current & AIOF_NON_STOP_FLAGS) != (order_flags & AIOF_NON_STOP_FLAGS)) {
|
||||
return AIObject::DoCommand(0, vehicle_id | (order_position << 20), (order_flags & AIOF_NON_STOP_FLAGS) << 4 | MOF_NON_STOP, CMD_MODIFY_ORDER, NULL, &_DoCommandReturnSetOrderFlags);
|
||||
}
|
||||
|
||||
@@ -457,7 +457,6 @@ public:
|
||||
* @param order_flags The new flags given to the order.
|
||||
* @pre IsValidVehicleOrder(vehicle_id, order_position).
|
||||
* @pre AreOrderFlagsValid(GetOrderDestination(vehicle_id, order_position), order_flags).
|
||||
* @pre (order_flags & AIOF_GOTO_NEAREST_DEPOT) == (GetOrderFlags(vehicle_id, order_position) & AIOF_GOTO_NEAREST_DEPOT).
|
||||
* @exception AIError::ERR_OWNED_BY_ANOTHER_COMPANY
|
||||
* @return True if and only if the order was changed.
|
||||
*/
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "date_func.h"
|
||||
#include "vehicle_func.h"
|
||||
#include "sound_func.h"
|
||||
#include "functions.h"
|
||||
#include "cheat_type.h"
|
||||
#include "company_base.h"
|
||||
#include "ai/ai.hpp"
|
||||
@@ -1311,12 +1312,6 @@ static void AircraftEventHandler_InHangar(Aircraft *v, const AirportFTAClass *ap
|
||||
!v->current_order.IsType(OT_GOTO_DEPOT))
|
||||
return;
|
||||
|
||||
/* We are leaving a hangar, but have to go to the exact same one; re-enter */
|
||||
if (v->current_order.IsType(OT_GOTO_DEPOT) && v->current_order.GetDestination() == v->targetairport) {
|
||||
VehicleEnterDepot(v);
|
||||
return;
|
||||
}
|
||||
|
||||
/* if the block of the next position is busy, stay put */
|
||||
if (AirportHasBlock(v, &apc->layout[v->pos], apc)) return;
|
||||
|
||||
|
||||
+6
-4
@@ -422,6 +422,11 @@ public:
|
||||
_selected_airport_index = airport_index;
|
||||
_selected_airport_layout = 0;
|
||||
|
||||
if (_selected_airport_index != -1) {
|
||||
const AirportSpec *as = AirportClass::Get(_selected_airport_class, _selected_airport_index);
|
||||
this->preview_sprite = GetCustomAirportSprite(as, _selected_airport_layout);
|
||||
}
|
||||
|
||||
this->UpdateSelectSize();
|
||||
this->SetDirty();
|
||||
}
|
||||
@@ -440,8 +445,6 @@ public:
|
||||
if (rotation == DIR_E || rotation == DIR_W) Swap(w, h);
|
||||
SetTileSelectSize(w, h);
|
||||
|
||||
this->preview_sprite = GetCustomAirportSprite(as, _selected_airport_layout);
|
||||
|
||||
this->SetWidgetDisabledState(BAIRW_LAYOUT_DECREASE, _selected_airport_layout == 0);
|
||||
this->SetWidgetDisabledState(BAIRW_LAYOUT_INCREASE, _selected_airport_layout + 1 >= as->num_table);
|
||||
|
||||
@@ -575,7 +578,7 @@ static const NWidgetPart _nested_build_airport_widgets[] = {
|
||||
static const WindowDesc _build_airport_desc(
|
||||
WDP_AUTO, 0, 0,
|
||||
WC_BUILD_STATION, WC_BUILD_TOOLBAR,
|
||||
WDF_CONSTRUCTION | WDF_UNCLICK_BUTTONS,
|
||||
WDF_CONSTRUCTION,
|
||||
_nested_build_airport_widgets, lengthof(_nested_build_airport_widgets)
|
||||
);
|
||||
|
||||
@@ -587,5 +590,4 @@ static void ShowBuildAirportPicker(Window *parent)
|
||||
void InitializeAirportGui()
|
||||
{
|
||||
_selected_airport_class = APC_BEGIN;
|
||||
_selected_airport_index = -1;
|
||||
}
|
||||
|
||||
@@ -11,8 +11,7 @@
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "core/alloc_func.hpp"
|
||||
#include "tile_cmd.h"
|
||||
#include "viewport_func.h"
|
||||
#include "functions.h"
|
||||
|
||||
/** The table/list with animated tiles. */
|
||||
TileIndex *_animated_tile_list = NULL;
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#include "roadveh.h"
|
||||
#include "vehicle_func.h"
|
||||
#include "engine_func.h"
|
||||
#include "company_func.h"
|
||||
|
||||
#include "table/strings.h"
|
||||
#include "table/sprites.h"
|
||||
@@ -52,7 +51,6 @@ uint CountArticulatedParts(EngineID engine_type, bool purchase_window)
|
||||
if (!purchase_window) {
|
||||
v = new Vehicle();
|
||||
v->engine_type = engine_type;
|
||||
v->owner = _current_company;
|
||||
}
|
||||
|
||||
uint i;
|
||||
@@ -328,7 +326,7 @@ void AddArticulatedParts(Vehicle *first)
|
||||
v = rv;
|
||||
|
||||
rv->subtype = 0;
|
||||
gcache->cached_veh_length = VEHICLE_LENGTH; // Callback is called when the consist is finished
|
||||
gcache->cached_veh_length = 8; // Callback is called when the consist is finished
|
||||
rv->state = RVSB_IN_DEPOT;
|
||||
|
||||
rv->roadtype = front->roadtype;
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "command_func.h"
|
||||
#include "engine_func.h"
|
||||
#include "vehicle_func.h"
|
||||
#include "functions.h"
|
||||
#include "autoreplace_func.h"
|
||||
#include "autoreplace_gui.h"
|
||||
#include "group.h"
|
||||
@@ -494,10 +495,7 @@ static CommandCost ReplaceChain(Vehicle **chain, DoCommandFlag flags, bool wagon
|
||||
/* Insert wagon after 'last_engine' */
|
||||
CommandCost res = CmdMoveVehicle(append, last_engine, DC_EXEC, false);
|
||||
|
||||
/* When we allow removal of wagons, either the move failing due
|
||||
* to the train becoming too long, or the train becoming longer
|
||||
* would move the vehicle to the empty vehicle chain. */
|
||||
if (wagon_removal && (res.Failed() ? res.GetErrorMessage() == STR_ERROR_TRAIN_TOO_LONG : new_head->gcache.cached_total_length > old_total_length)) {
|
||||
if (res.Succeeded() && wagon_removal && new_head->gcache.cached_total_length > old_total_length) {
|
||||
CmdMoveVehicle(append, NULL, DC_EXEC | DC_AUTOREPLACE, false);
|
||||
break;
|
||||
}
|
||||
@@ -514,7 +512,6 @@ static CommandCost ReplaceChain(Vehicle **chain, DoCommandFlag flags, bool wagon
|
||||
|
||||
/* Sell superfluous new vehicles that could not be inserted. */
|
||||
if (cost.Succeeded() && wagon_removal) {
|
||||
assert(new_head->gcache.cached_total_length <= _settings_game.vehicle.max_train_length * TILE_SIZE);
|
||||
for (int i = 1; i < num_units; i++) {
|
||||
Vehicle *wagon = new_vehs[i];
|
||||
if (wagon == NULL) continue;
|
||||
|
||||
@@ -491,15 +491,9 @@ public:
|
||||
this->GetWidget<NWidgetCore>(RVW_WIDGET_RIGHT_MATRIX)->widget_data = (this->vscroll[0]->GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START);
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (data != 0) {
|
||||
/* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */
|
||||
this->engines[0].ForceRebuild();
|
||||
} else {
|
||||
this->engines[1].ForceRebuild();
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
#include "bmp.h"
|
||||
#include "core/bitmath_func.hpp"
|
||||
#include "core/alloc_func.hpp"
|
||||
#include "core/mem_func.hpp"
|
||||
|
||||
void BmpInitializeBuffer(BmpBuffer *buffer, FILE *file)
|
||||
{
|
||||
@@ -288,7 +287,6 @@ bool BmpReadHeader(BmpBuffer *buffer, BmpInfo *info, BmpData *data)
|
||||
{
|
||||
uint32 header_size;
|
||||
assert(info != NULL);
|
||||
MemSetT(info, 0);
|
||||
|
||||
/* Reading BMP header */
|
||||
if (ReadWord(buffer) != 0x4D42) return false; // signature should be 'BM'
|
||||
|
||||
+1
-5
@@ -420,11 +420,7 @@ void ShowBuildBridgeWindow(TileIndex start, TileIndex end, TransportType transpo
|
||||
|
||||
Money infra_cost = 0;
|
||||
switch (transport_type) {
|
||||
case TRANSPORT_ROAD:
|
||||
infra_cost = (bridge_len + 2) * _price[PR_BUILD_ROAD] * 2;
|
||||
/* In case we add a new road type as well, we must be aware of those costs. */
|
||||
if (IsBridgeTile(start)) infra_cost *= CountBits(GetRoadTypes(start) | (RoadTypes)road_rail_type);
|
||||
break;
|
||||
case TRANSPORT_ROAD: infra_cost = (bridge_len + 2) * _price[PR_BUILD_ROAD] * 2; break;
|
||||
case TRANSPORT_RAIL: infra_cost = (bridge_len + 2) * RailBuildCost((RailType)road_rail_type); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
#include "newgrf_engine.h"
|
||||
#include "newgrf_text.h"
|
||||
#include "group.h"
|
||||
#include "string_func.h"
|
||||
#include "strings_func.h"
|
||||
#include "window_func.h"
|
||||
#include "date_func.h"
|
||||
@@ -740,7 +739,7 @@ static uint ShowAdditionalText(int left, int right, int y, EngineID engine)
|
||||
|
||||
/* STR_BLACK_STRING is used to start the string with {BLACK} */
|
||||
SetDParam(0, GetGRFStringID(GetEngineGRFID(engine), 0xD000 + callback));
|
||||
StartTextRefStackUsage(0);
|
||||
PrepareTextRefStackUsage(0);
|
||||
uint result = DrawStringMultiLine(left, right, y, INT32_MAX, STR_BLACK_STRING);
|
||||
StopTextRefStackUsage();
|
||||
return result;
|
||||
@@ -1219,14 +1218,8 @@ struct BuildVehicleWindow : Window {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
/* When switching to original acceleration model for road vehicles, clear the selected sort criteria if it is not available now. */
|
||||
if (this->vehicle_type == VEH_ROAD &&
|
||||
_settings_game.vehicle.roadveh_acceleration_model == AM_ORIGINAL &&
|
||||
|
||||
+3
-8
@@ -88,12 +88,10 @@ CargoPacket::CargoPacket(uint16 count, byte days_in_transit, StationID source, T
|
||||
/**
|
||||
* Split this packet in two and return the split off part.
|
||||
* @param new_size Size of the remaining part.
|
||||
* @return Split off part, or NULL if no packet could be allocated!
|
||||
* @return Split off part.
|
||||
*/
|
||||
FORCEINLINE CargoPacket *CargoPacket::Split(uint new_size)
|
||||
{
|
||||
if (!CargoPacket::CanAllocateItem()) return NULL;
|
||||
|
||||
Money fs = this->feeder_share * new_size / static_cast<uint>(this->count);
|
||||
CargoPacket *cp_new = new CargoPacket(new_size, this->days_in_transit, this->source, this->source_xy, this->loaded_at_xy, fs, this->source_type, this->source_id);
|
||||
this->feeder_share -= fs;
|
||||
@@ -216,7 +214,7 @@ void CargoList<Tinst>::Truncate(uint max_remaining)
|
||||
CargoPacket *cp = *it;
|
||||
if (max_remaining == 0) {
|
||||
/* Nothing should remain, just remove the packets. */
|
||||
it = this->packets.erase(it);
|
||||
this->packets.erase(it++);
|
||||
static_cast<Tinst *>(this)->RemoveFromCache(cp);
|
||||
delete cp;
|
||||
continue;
|
||||
@@ -276,7 +274,7 @@ bool CargoList<Tinst>::MoveTo(Tother_inst *dest, uint max_move, MoveToAction mta
|
||||
if (cp->count <= max_move) {
|
||||
/* Can move the complete packet */
|
||||
max_move -= cp->count;
|
||||
it = this->packets.erase(it);
|
||||
this->packets.erase(it++);
|
||||
static_cast<Tinst *>(this)->RemoveFromCache(cp);
|
||||
switch (mta) {
|
||||
case MTA_FINAL_DELIVERY:
|
||||
@@ -317,9 +315,6 @@ bool CargoList<Tinst>::MoveTo(Tother_inst *dest, uint max_move, MoveToAction mta
|
||||
/* But... the rest needs package splitting. */
|
||||
CargoPacket *cp_new = cp->Split(max_move);
|
||||
|
||||
/* We could not allocate a CargoPacket? Is the map that full? */
|
||||
if (cp_new == NULL) return false;
|
||||
|
||||
static_cast<Tinst *>(this)->RemoveFromCache(cp_new); // this reflects the changes in cp.
|
||||
|
||||
if (mta == MTA_TRANSFER) {
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
#include "cargotype.h"
|
||||
#include "core/bitmath_func.hpp"
|
||||
#include "newgrf_cargo.h"
|
||||
#include "string_func.h"
|
||||
#include "strings_func.h"
|
||||
#include "core/sort_func.hpp"
|
||||
|
||||
|
||||
@@ -125,7 +125,6 @@ static int32 ClickChangeDateCheat(int32 p1, int32 p2)
|
||||
EnginesMonthlyLoop();
|
||||
SetWindowDirty(WC_STATUS_BAR, 0);
|
||||
InvalidateWindowClassesData(WC_BUILD_STATION, 0);
|
||||
InvalidateWindowClassesData(WC_BUILD_OBJECT, 0);
|
||||
ResetSignalVariant();
|
||||
return _cur_year;
|
||||
}
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@
|
||||
#include "landscape.h"
|
||||
#include "genworld.h"
|
||||
#include "landscape_type.h"
|
||||
#include "clear_func.h"
|
||||
#include "functions.h"
|
||||
#include "economy_func.h"
|
||||
#include "viewport_func.h"
|
||||
#include "water.h"
|
||||
|
||||
+3
-26
@@ -19,7 +19,7 @@
|
||||
#include "newgrf_storage.h"
|
||||
#include "strings_func.h"
|
||||
#include "gfx_func.h"
|
||||
#include "texteff.hpp"
|
||||
#include "functions.h"
|
||||
#include "town.h"
|
||||
#include "date_func.h"
|
||||
#include "company_func.h"
|
||||
@@ -272,7 +272,7 @@ static const Command _command_proc_table[] = {
|
||||
|
||||
DEF_CMD(CmdClearArea, CMD_NO_TEST, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_CLEAR_AREA; destroying multi-tile houses makes town rating differ between test and execution
|
||||
|
||||
DEF_CMD(CmdMoneyCheat, CMD_OFFLINE, CMDT_CHEAT ), // CMD_MONEY_CHEAT
|
||||
DEF_CMD(CmdMoneyCheat, CMD_OFFLINE, CMDT_MONEY_MANAGEMENT ), // CMD_MONEY_CHEAT
|
||||
DEF_CMD(CmdBuildCanal, CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_CANAL
|
||||
DEF_CMD(CmdCompanyCtrl, CMD_SPECTATOR | CMD_CLIENT_ID, CMDT_SERVER_SETTING ), // CMD_COMPANY_CTRL
|
||||
|
||||
@@ -365,7 +365,6 @@ bool IsCommandAllowedWhilePaused(uint32 cmd)
|
||||
CMDPL_NO_CONSTRUCTION, ///< CMDT_OTHER_MANAGEMENT
|
||||
CMDPL_NO_CONSTRUCTION, ///< CMDT_COMPANY_SETTING
|
||||
CMDPL_NO_ACTIONS, ///< CMDT_SERVER_SETTING
|
||||
CMDPL_NO_ACTIONS, ///< CMDT_CHEAT
|
||||
};
|
||||
assert_compile(lengthof(command_type_lookup) == CMDT_END);
|
||||
|
||||
@@ -530,7 +529,7 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallbac
|
||||
/* Only show the error when it's for us. */
|
||||
StringID error_part1 = GB(cmd, 16, 16);
|
||||
if (estimate_only || (IsLocalCompany() && error_part1 != 0 && my_cmd)) {
|
||||
ShowErrorMessage(error_part1, res.GetErrorMessage(), WL_INFO, x, y, res.GetTextRefStackSize(), res.GetTextRefStack());
|
||||
ShowErrorMessage(error_part1, res.GetErrorMessage(), WL_INFO, x, y);
|
||||
}
|
||||
} else if (estimate_only) {
|
||||
ShowEstimatedCostOrIncome(res.GetCost(), x, y);
|
||||
@@ -735,25 +734,3 @@ void CommandCost::AddCost(const CommandCost &ret)
|
||||
this->success = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Values to put on the #TextRefStack for the error message.
|
||||
* There is only one static instance of the array, just like there is only one
|
||||
* instance of normal DParams.
|
||||
*/
|
||||
uint32 CommandCost::textref_stack[16];
|
||||
|
||||
/**
|
||||
* Activate usage of the NewGRF #TextRefStack for the error message.
|
||||
* @param number of entries to copy from the temporary NewGRF registers
|
||||
*/
|
||||
void CommandCost::UseTextRefStack(uint num_registers)
|
||||
{
|
||||
extern TemporaryStorageArray<int32, 0x110> _temp_store;
|
||||
|
||||
assert(num_registers < lengthof(textref_stack));
|
||||
this->textref_stack_size = num_registers;
|
||||
for (uint i = 0; i < num_registers; i++) {
|
||||
textref_stack[i] = _temp_store.Get(0x100 + i);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-28
@@ -25,33 +25,30 @@ class CommandCost {
|
||||
Money cost; ///< The cost of this action
|
||||
StringID message; ///< Warning message for when success is unset
|
||||
bool success; ///< Whether the comment went fine up to this moment
|
||||
uint textref_stack_size; ///< Number of uint32 values to put on the #TextRefStack for the error message.
|
||||
|
||||
static uint32 textref_stack[16];
|
||||
|
||||
public:
|
||||
/**
|
||||
* Creates a command cost return with no cost and no error
|
||||
*/
|
||||
CommandCost() : expense_type(INVALID_EXPENSES), cost(0), message(INVALID_STRING_ID), success(true), textref_stack_size(0) {}
|
||||
CommandCost() : expense_type(INVALID_EXPENSES), cost(0), message(INVALID_STRING_ID), success(true) {}
|
||||
|
||||
/**
|
||||
* Creates a command return value the is failed with the given message
|
||||
*/
|
||||
explicit CommandCost(StringID msg) : expense_type(INVALID_EXPENSES), cost(0), message(msg), success(false), textref_stack_size(0) {}
|
||||
explicit CommandCost(StringID msg) : expense_type(INVALID_EXPENSES), cost(0), message(msg), success(false) {}
|
||||
|
||||
/**
|
||||
* Creates a command cost with given expense type and start cost of 0
|
||||
* @param ex_t the expense type
|
||||
*/
|
||||
explicit CommandCost(ExpensesType ex_t) : expense_type(ex_t), cost(0), message(INVALID_STRING_ID), success(true), textref_stack_size(0) {}
|
||||
explicit CommandCost(ExpensesType ex_t) : expense_type(ex_t), cost(0), message(INVALID_STRING_ID), success(true) {}
|
||||
|
||||
/**
|
||||
* Creates a command return value with the given start cost and expense type
|
||||
* @param ex_t the expense type
|
||||
* @param cst the initial cost of this command
|
||||
*/
|
||||
CommandCost(ExpensesType ex_t, const Money &cst) : expense_type(ex_t), cost(cst), message(INVALID_STRING_ID), success(true), textref_stack_size(0) {}
|
||||
CommandCost(ExpensesType ex_t, const Money &cst) : expense_type(ex_t), cost(cst), message(INVALID_STRING_ID), success(true) {}
|
||||
|
||||
|
||||
/**
|
||||
@@ -103,26 +100,6 @@ public:
|
||||
this->message = message;
|
||||
}
|
||||
|
||||
void UseTextRefStack(uint num_registers);
|
||||
|
||||
/**
|
||||
* Returns the number of uint32 values for the #TextRefStack of the error message.
|
||||
* @return number of uint32 values.
|
||||
*/
|
||||
uint GetTextRefStackSize() const
|
||||
{
|
||||
return this->textref_stack_size;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a pointer to the values for the #TextRefStack of the error message.
|
||||
* @return uint32 values for the #TextRefStack
|
||||
*/
|
||||
const uint32 *GetTextRefStack() const
|
||||
{
|
||||
return textref_stack;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the error message of a command
|
||||
* @return the error message, if succeeded #INVALID_STRING_ID
|
||||
@@ -366,7 +343,6 @@ enum CommandType {
|
||||
CMDT_OTHER_MANAGEMENT, ///< Renaming stuff, changing company colours, placing signs, etc.
|
||||
CMDT_COMPANY_SETTING, ///< Changing settings related to a company.
|
||||
CMDT_SERVER_SETTING, ///< Pausing/removing companies/server settings.
|
||||
CMDT_CHEAT, ///< A cheat of some sorts.
|
||||
|
||||
CMDT_END, ///< Magic end marker.
|
||||
};
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ struct CompanyProperties {
|
||||
|
||||
RailTypes avail_railtypes; ///< Rail types available to the company.
|
||||
|
||||
byte block_preview; ///< Number of quarters that the company is not allowed to get new exclusive engine previews (see CompaniesGenStatistics).
|
||||
byte block_preview; ///< Number of months that the company is not allowed to get new exclusive engine previews.
|
||||
|
||||
uint32 cargo_types; ///< Which cargo types were transported the last year.
|
||||
|
||||
|
||||
+2
-5
@@ -556,7 +556,7 @@ Company *DoStartupNewCompany(bool is_ai, CompanyID company = INVALID_COMPANY)
|
||||
GeneratePresidentName(c);
|
||||
|
||||
SetWindowDirty(WC_GRAPH_LEGEND, 0);
|
||||
SetWindowClassesDirty(WC_CLIENT_LIST_POPUP);
|
||||
SetWindowDirty(WC_TOOLBAR_MENU, 0);
|
||||
SetWindowDirty(WC_CLIENT_LIST, 0);
|
||||
BuildOwnerLegend();
|
||||
InvalidateWindowData(WC_SMALLMAP, 0, 1);
|
||||
@@ -813,7 +813,7 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
||||
#ifdef ENABLE_NETWORK
|
||||
/* Has the network client a correct ClientIndex? */
|
||||
if (!(flags & DC_EXEC)) return CommandCost();
|
||||
NetworkClientInfo *ci = NetworkClientInfo::GetByClientID(client_id);
|
||||
NetworkClientInfo *ci = NetworkFindClientInfoFromClientID(client_id);
|
||||
if (ci == NULL) return CommandCost();
|
||||
|
||||
/* Delete multiplayer progress bar */
|
||||
@@ -1031,9 +1031,6 @@ CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
||||
InvalidateWindowData(WC_DELIVERED_CARGO, 0);
|
||||
InvalidateWindowData(WC_PERFORMANCE_HISTORY, 0);
|
||||
InvalidateWindowData(WC_COMPANY_VALUE, 0);
|
||||
/* The smallmap owner view also stores the company colours. */
|
||||
BuildOwnerLegend();
|
||||
InvalidateWindowData(WC_SMALLMAP, 0, 1);
|
||||
|
||||
/* Company colour data is indirectly cached. */
|
||||
Vehicle *v;
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
#ifndef COMPANY_FUNC_H
|
||||
#define COMPANY_FUNC_H
|
||||
|
||||
#include "command_type.h"
|
||||
#include "company_type.h"
|
||||
#include "tile_type.h"
|
||||
#include "gfx_type.h"
|
||||
@@ -26,12 +25,6 @@ void CompanyAdminUpdate(const Company *company);
|
||||
void CompanyAdminBankrupt(CompanyID company_id);
|
||||
void UpdateLandscapingLimits();
|
||||
|
||||
bool CheckCompanyHasMoney(CommandCost &cost);
|
||||
void SubtractMoneyFromCompany(CommandCost cost);
|
||||
void SubtractMoneyFromCompanyFract(CompanyID company, CommandCost cost);
|
||||
CommandCost CheckOwnership(Owner owner, TileIndex tile = 0);
|
||||
CommandCost CheckTileOwnership(TileIndex tile);
|
||||
|
||||
extern CompanyByte _local_company;
|
||||
extern CompanyByte _current_company;
|
||||
|
||||
|
||||
+3
-22
@@ -800,14 +800,8 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data = 0)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
this->SetWidgetsDisabledState(true, SCLW_WIDGET_CLASS_RAIL, SCLW_WIDGET_CLASS_ROAD, SCLW_WIDGET_CLASS_SHIP, SCLW_WIDGET_CLASS_AIRCRAFT, WIDGET_LIST_END);
|
||||
|
||||
bool current_class_valid = this->livery_class == LC_OTHER;
|
||||
@@ -1824,15 +1818,6 @@ struct CompanyWindow : Window
|
||||
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
|
||||
{
|
||||
switch (widget) {
|
||||
case CW_WIDGET_DESC_COLOUR_SCHEME_EXAMPLE: {
|
||||
Point offset;
|
||||
Dimension d = GetSpriteSize(SPR_VEH_BUS_SW_VIEW, &offset);
|
||||
d.width -= offset.x;
|
||||
d.height -= offset.y;
|
||||
*size = maxdim(*size, d);
|
||||
break;
|
||||
}
|
||||
|
||||
case CW_WIDGET_DESC_COMPANY_VALUE:
|
||||
SetDParam(0, INT64_MAX); // Arguably the maximum company value
|
||||
size->width = GetStringBoundingBox(STR_COMPANY_VIEW_COMPANY_VALUE).width;
|
||||
@@ -1878,13 +1863,9 @@ struct CompanyWindow : Window
|
||||
DrawStringMultiLine(r.left, r.right, r.top, r.bottom, STR_COMPANY_VIEW_PRESIDENT_MANAGER_TITLE, TC_FROMSTRING, SA_CENTER);
|
||||
break;
|
||||
|
||||
case CW_WIDGET_DESC_COLOUR_SCHEME_EXAMPLE: {
|
||||
Point offset;
|
||||
Dimension d = GetSpriteSize(SPR_VEH_BUS_SW_VIEW, &offset);
|
||||
d.height -= offset.y;
|
||||
DrawSprite(SPR_VEH_BUS_SW_VIEW, COMPANY_SPRITE_COLOUR(c->index), r.left - offset.x, (r.top + r.bottom - d.height) / 2 - offset.y);
|
||||
case CW_WIDGET_DESC_COLOUR_SCHEME_EXAMPLE:
|
||||
DrawSprite(SPR_VEH_BUS_SW_VIEW, COMPANY_SPRITE_COLOUR(c->index), (r.left + r.right) / 2, r.top + FONT_HEIGHT_NORMAL / 10);
|
||||
break;
|
||||
}
|
||||
|
||||
case CW_WIDGET_DESC_VEHICLE_COUNTS: {
|
||||
uint amounts[4];
|
||||
|
||||
+13
-101
@@ -19,7 +19,6 @@
|
||||
#include "network/network_func.h"
|
||||
#include "network/network_base.h"
|
||||
#include "network/network_admin.h"
|
||||
#include "network/network_client.h"
|
||||
#include "command_func.h"
|
||||
#include "settings_func.h"
|
||||
#include "fios.h"
|
||||
@@ -36,7 +35,6 @@
|
||||
#include "ai/ai_config.hpp"
|
||||
#include "newgrf.h"
|
||||
#include "console_func.h"
|
||||
#include "engine_base.h"
|
||||
|
||||
#ifdef ENABLE_NETWORK
|
||||
#include "table/strings.h"
|
||||
@@ -56,10 +54,6 @@ static bool _script_running; ///< Script is running (used to abort execution whe
|
||||
|
||||
#ifdef ENABLE_NETWORK
|
||||
|
||||
/**
|
||||
* Check network availability and inform in console about failure of detection.
|
||||
* @return Network availability.
|
||||
*/
|
||||
static inline bool NetworkAvailable(bool echo)
|
||||
{
|
||||
if (!_network_available) {
|
||||
@@ -69,10 +63,6 @@ static inline bool NetworkAvailable(bool echo)
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether we are a server.
|
||||
* @return Are we a server? True when yes, false otherwise.
|
||||
*/
|
||||
DEF_CONSOLE_HOOK(ConHookServerOnly)
|
||||
{
|
||||
if (!NetworkAvailable(echo)) return CHR_DISALLOW;
|
||||
@@ -84,10 +74,6 @@ DEF_CONSOLE_HOOK(ConHookServerOnly)
|
||||
return CHR_ALLOW;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether we are a client in a network game.
|
||||
* @return Are we a client in a network game? True when yes, false otherwise.
|
||||
*/
|
||||
DEF_CONSOLE_HOOK(ConHookClientOnly)
|
||||
{
|
||||
if (!NetworkAvailable(echo)) return CHR_DISALLOW;
|
||||
@@ -99,25 +85,17 @@ DEF_CONSOLE_HOOK(ConHookClientOnly)
|
||||
return CHR_ALLOW;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether we are in a multiplayer game.
|
||||
* @return True when we are client or server in a network game.
|
||||
*/
|
||||
DEF_CONSOLE_HOOK(ConHookNeedNetwork)
|
||||
{
|
||||
if (!NetworkAvailable(echo)) return CHR_DISALLOW;
|
||||
|
||||
if (!_networking || (!_network_server && !MyClient::IsConnected())) {
|
||||
if (!_networking) {
|
||||
if (echo) IConsoleError("Not connected. This command is only available in multiplayer.");
|
||||
return CHR_DISALLOW;
|
||||
}
|
||||
return CHR_ALLOW;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether we are in single player mode.
|
||||
* @return True when no network is active.
|
||||
*/
|
||||
DEF_CONSOLE_HOOK(ConHookNoNetwork)
|
||||
{
|
||||
if (_networking) {
|
||||
@@ -147,19 +125,11 @@ DEF_CONSOLE_HOOK(ConHookNewGRFDeveloperTool)
|
||||
return CHR_HIDE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show help for the console.
|
||||
* @param str String to print in the console.
|
||||
*/
|
||||
static void IConsoleHelp(const char *str)
|
||||
{
|
||||
IConsolePrintF(CC_WARNING, "- %s", str);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset status of all engines.
|
||||
* @return Will always succeed.
|
||||
*/
|
||||
DEF_CONSOLE_CMD(ConResetEngines)
|
||||
{
|
||||
if (argc == 0) {
|
||||
@@ -171,37 +141,7 @@ DEF_CONSOLE_CMD(ConResetEngines)
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset status of the engine pool.
|
||||
* @return Will always return true.
|
||||
* @note Resetting the pool only succeeds when there are no vehicles ingame.
|
||||
*/
|
||||
DEF_CONSOLE_CMD(ConResetEnginePool)
|
||||
{
|
||||
if (argc == 0) {
|
||||
IConsoleHelp("Reset NewGRF allocations of engine slots. This will remove invalid engine definitions, and might make default engines available again.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (_game_mode == GM_MENU) {
|
||||
IConsoleError("This command is only available in game and editor.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!EngineOverrideManager::ResetToCurrentNewGRFConfig()) {
|
||||
IConsoleError("This can only be done when there are no vehicles in the game.");
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifdef _DEBUG
|
||||
/**
|
||||
* Reset a tile to bare land in debug mode.
|
||||
* param tile number.
|
||||
* @return True when the tile is reset or the help on usage was printed (0 or two parameters).
|
||||
*/
|
||||
DEF_CONSOLE_CMD(ConResetTile)
|
||||
{
|
||||
if (argc == 0) {
|
||||
@@ -222,15 +162,6 @@ DEF_CONSOLE_CMD(ConResetTile)
|
||||
}
|
||||
#endif /* _DEBUG */
|
||||
|
||||
/**
|
||||
* Scroll to a tile on the map.
|
||||
* @param arg1 tile tile number or tile x coordinate.
|
||||
* @param arg2 optionally tile y coordinate.
|
||||
* @note When only one argument is given it is intepreted as the tile number.
|
||||
* When two arguments are given, they are interpreted as the tile's x
|
||||
* and y coordinates.
|
||||
* @return True when either console help was shown or a proper amount of parameters given.
|
||||
*/
|
||||
DEF_CONSOLE_CMD(ConScrollToTile)
|
||||
{
|
||||
switch (argc) {
|
||||
@@ -270,11 +201,7 @@ DEF_CONSOLE_CMD(ConScrollToTile)
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the map to a file.
|
||||
* @param filename the filename to save the map to.
|
||||
* @return True when help was displayed or the file attempted to be saved.
|
||||
*/
|
||||
/* Save the map to a file */
|
||||
DEF_CONSOLE_CMD(ConSave)
|
||||
{
|
||||
if (argc == 0) {
|
||||
@@ -298,10 +225,7 @@ DEF_CONSOLE_CMD(ConSave)
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Explicitly save the configuration.
|
||||
* @return True.
|
||||
*/
|
||||
/* Explicitly save the configuration */
|
||||
DEF_CONSOLE_CMD(ConSaveConfig)
|
||||
{
|
||||
if (argc == 0) {
|
||||
@@ -315,12 +239,6 @@ DEF_CONSOLE_CMD(ConSaveConfig)
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get savegame file informations.
|
||||
* @param file The savegame filename to return information about. Can be the actual name
|
||||
* or a numbered entry into the filename list.
|
||||
* @return FiosItem The information on the file.
|
||||
*/
|
||||
static const FiosItem *GetFiosItem(const char *file)
|
||||
{
|
||||
_saveload_mode = SLD_LOAD_GAME;
|
||||
@@ -490,21 +408,17 @@ DEF_CONSOLE_CMD(ConClearBuffer)
|
||||
|
||||
static bool ConKickOrBan(const char *argv, bool ban)
|
||||
{
|
||||
uint n;
|
||||
const char *ip = argv;
|
||||
|
||||
if (strchr(argv, '.') == NULL && strchr(argv, ':') == NULL) { // banning with ID
|
||||
ClientID client_id = (ClientID)atoi(argv);
|
||||
|
||||
/* Don't kill the server, or the client doing the rcon. The latter can't be kicked because
|
||||
* kicking frees closes and subsequently free the connection related instances, which we
|
||||
* would be reading from and writing to after returning. So we would read or write data
|
||||
* from freed memory up till the segfault triggers. */
|
||||
if (client_id == CLIENT_ID_SERVER || client_id == _redirect_console_to_client) {
|
||||
if (client_id == CLIENT_ID_SERVER) {
|
||||
IConsolePrintF(CC_ERROR, "ERROR: Silly boy, you can not %s yourself!", ban ? "ban" : "kick");
|
||||
return true;
|
||||
}
|
||||
|
||||
NetworkClientInfo *ci = NetworkClientInfo::GetByClientID(client_id);
|
||||
NetworkClientInfo *ci = NetworkFindClientInfoFromClientID(client_id);
|
||||
if (ci == NULL) {
|
||||
IConsoleError("Invalid client");
|
||||
return true;
|
||||
@@ -517,11 +431,10 @@ static bool ConKickOrBan(const char *argv, bool ban)
|
||||
}
|
||||
|
||||
/* When banning, kick+ban all clients with that IP */
|
||||
n = NetworkServerKickOrBanIP(client_id, ban);
|
||||
} else {
|
||||
n = NetworkServerKickOrBanIP(argv, ban);
|
||||
ip = GetClientIP(ci);
|
||||
}
|
||||
|
||||
uint n = NetworkServerKickOrBanIP(ip, ban);
|
||||
if (n == 0) {
|
||||
IConsolePrint(CC_DEFAULT, ban ? "Client not online, address added to banlist" : "Client not found");
|
||||
} else {
|
||||
@@ -700,7 +613,7 @@ DEF_CONSOLE_CMD(ConClientNickChange)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (NetworkClientInfo::GetByClientID(client_id) == NULL) {
|
||||
if (NetworkFindClientInfoFromClientID(client_id) == NULL) {
|
||||
IConsoleError("Invalid client");
|
||||
return true;
|
||||
}
|
||||
@@ -728,7 +641,7 @@ DEF_CONSOLE_CMD(ConJoinCompany)
|
||||
return true;
|
||||
}
|
||||
|
||||
if (NetworkClientInfo::GetByClientID(_network_own_client_id)->client_playas == company_id) {
|
||||
if (NetworkFindClientInfoFromClientID(_network_own_client_id)->client_playas == company_id) {
|
||||
IConsoleError("You are already there!");
|
||||
return true;
|
||||
}
|
||||
@@ -767,7 +680,7 @@ DEF_CONSOLE_CMD(ConMoveClient)
|
||||
return true;
|
||||
}
|
||||
|
||||
const NetworkClientInfo *ci = NetworkClientInfo::GetByClientID((ClientID)atoi(argv[1]));
|
||||
const NetworkClientInfo *ci = NetworkFindClientInfoFromClientID((ClientID)atoi(argv[1]));
|
||||
CompanyID company_id = (CompanyID)(atoi(argv[2]) <= MAX_COMPANIES ? atoi(argv[2]) - 1 : atoi(argv[2]));
|
||||
|
||||
/* check the client exists */
|
||||
@@ -829,7 +742,7 @@ DEF_CONSOLE_CMD(ConResetCompany)
|
||||
IConsoleError("Cannot remove company: a client is connected to that company.");
|
||||
return false;
|
||||
}
|
||||
const NetworkClientInfo *ci = NetworkClientInfo::GetByClientID(CLIENT_ID_SERVER);
|
||||
const NetworkClientInfo *ci = NetworkFindClientInfoFromClientID(CLIENT_ID_SERVER);
|
||||
if (ci->client_playas == index) {
|
||||
IConsoleError("Cannot remove company: the server is connected to that company.");
|
||||
return true;
|
||||
@@ -1269,7 +1182,7 @@ DEF_CONSOLE_CMD(ConRescanNewGRF)
|
||||
|
||||
TarScanner::DoScan();
|
||||
ScanNewGRFFiles();
|
||||
InvalidateWindowData(WC_GAME_OPTIONS, 0, GOID_NEWGRF_RESCANNED);
|
||||
InvalidateWindowData(WC_GAME_OPTIONS, 0, 1);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1868,7 +1781,6 @@ void IConsoleStdLibRegister()
|
||||
IConsoleCmdRegister("getdate", ConGetDate);
|
||||
IConsoleCmdRegister("quit", ConExit);
|
||||
IConsoleCmdRegister("resetengines", ConResetEngines, ConHookNoNetwork);
|
||||
IConsoleCmdRegister("reset_enginepool", ConResetEnginePool, ConHookNoNetwork);
|
||||
IConsoleCmdRegister("return", ConReturn);
|
||||
IConsoleCmdRegister("screenshot", ConScreenShot);
|
||||
IConsoleCmdRegister("script", ConScript);
|
||||
|
||||
+29
-25
@@ -177,7 +177,7 @@ struct IConsoleWindow : Window
|
||||
IConsoleWindow() : Window()
|
||||
{
|
||||
_iconsole_mode = ICONSOLE_OPENED;
|
||||
this->line_height = FONT_HEIGHT_NORMAL + ICON_LINE_SPACING;
|
||||
this->line_height = FONT_HEIGHT_NORMAL;
|
||||
this->line_offset = GetStringBoundingBox("] ").width + 5;
|
||||
|
||||
this->InitNested(&_console_window_desc, 0);
|
||||
@@ -189,27 +189,16 @@ struct IConsoleWindow : Window
|
||||
_iconsole_mode = ICONSOLE_CLOSED;
|
||||
}
|
||||
|
||||
/**
|
||||
* Scroll the content of the console.
|
||||
* @param amount Number of lines to scroll back.
|
||||
*/
|
||||
void Scroll(int amount)
|
||||
{
|
||||
int max_scroll = max<int>(0, IConsoleLine::size + 1 - this->height / this->line_height);
|
||||
IConsoleWindow::scroll = Clamp<int>(IConsoleWindow::scroll + amount, 0, max_scroll);
|
||||
this->SetDirty();
|
||||
}
|
||||
|
||||
virtual void OnPaint()
|
||||
{
|
||||
const int right = this->width - 5;
|
||||
|
||||
GfxFillRect(0, 0, this->width - 1, this->height - 1, 0);
|
||||
int ypos = this->height - this->line_height;
|
||||
GfxFillRect(this->left, this->top, this->width, this->height - 1, 0);
|
||||
int ypos = this->height - this->line_height - ICON_LINE_SPACING;
|
||||
for (const IConsoleLine *print = IConsoleLine::Get(IConsoleWindow::scroll); print != NULL; print = print->previous) {
|
||||
SetDParamStr(0, print->buffer);
|
||||
ypos = DrawStringMultiLine(5, right, -this->line_height, ypos, STR_JUST_RAW_STRING, print->colour, SA_LEFT | SA_BOTTOM | SA_FORCE) - ICON_LINE_SPACING;
|
||||
if (ypos < 0) break;
|
||||
ypos = DrawStringMultiLine(5, right, top, ypos, STR_JUST_RAW_STRING, print->colour, SA_LEFT | SA_BOTTOM | SA_FORCE) - ICON_LINE_SPACING;
|
||||
if (ypos <= top) break;
|
||||
}
|
||||
/* If the text is longer than the window, don't show the starting ']' */
|
||||
int delta = this->width - this->line_offset - _iconsole_cmdline.pixels - ICON_RIGHT_BORDERWIDTH;
|
||||
@@ -256,19 +245,39 @@ struct IConsoleWindow : Window
|
||||
break;
|
||||
|
||||
case WKC_SHIFT | WKC_PAGEDOWN:
|
||||
this->Scroll(-scroll_height);
|
||||
if (IConsoleWindow::scroll - scroll_height < 0) {
|
||||
IConsoleWindow::scroll = 0;
|
||||
} else {
|
||||
IConsoleWindow::scroll -= scroll_height;
|
||||
}
|
||||
this->SetDirty();
|
||||
break;
|
||||
|
||||
case WKC_SHIFT | WKC_PAGEUP:
|
||||
this->Scroll(scroll_height);
|
||||
if (IConsoleWindow::scroll + scroll_height > IConsoleLine::size - scroll_height) {
|
||||
IConsoleWindow::scroll = IConsoleLine::size - scroll_height;
|
||||
} else {
|
||||
IConsoleWindow::scroll += scroll_height;
|
||||
}
|
||||
this->SetDirty();
|
||||
break;
|
||||
|
||||
case WKC_SHIFT | WKC_DOWN:
|
||||
this->Scroll(-1);
|
||||
if (IConsoleWindow::scroll <= 0) {
|
||||
IConsoleWindow::scroll = 0;
|
||||
} else {
|
||||
--IConsoleWindow::scroll;
|
||||
}
|
||||
this->SetDirty();
|
||||
break;
|
||||
|
||||
case WKC_SHIFT | WKC_UP:
|
||||
this->Scroll(1);
|
||||
if (IConsoleWindow::scroll >= IConsoleLine::size) {
|
||||
IConsoleWindow::scroll = IConsoleLine::size;
|
||||
} else {
|
||||
++IConsoleWindow::scroll;
|
||||
}
|
||||
this->SetDirty();
|
||||
break;
|
||||
|
||||
case WKC_BACKQUOTE:
|
||||
@@ -342,11 +351,6 @@ struct IConsoleWindow : Window
|
||||
}
|
||||
return ES_HANDLED;
|
||||
}
|
||||
|
||||
virtual void OnMouseWheel(int wheel)
|
||||
{
|
||||
this->Scroll(-wheel);
|
||||
}
|
||||
};
|
||||
|
||||
int IConsoleWindow::scroll = 0;
|
||||
|
||||
@@ -32,6 +32,7 @@ struct Pool {
|
||||
size_t first_free; ///< No item with index lower than this is free (doesn't say anything about this one!)
|
||||
size_t first_unused; ///< This and all higher indexes are free (doesn't say anything about first_unused-1 !)
|
||||
size_t items; ///< Number of used indexes (non-NULL)
|
||||
|
||||
bool cleaning; ///< True if cleaning pool (deleting all items)
|
||||
|
||||
Titem **data; ///< Pointer to array of pointers to Titem
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "command_func.h"
|
||||
#include "depot_base.h"
|
||||
#include "company_func.h"
|
||||
#include "functions.h"
|
||||
#include "string_func.h"
|
||||
#include "town.h"
|
||||
#include "vehicle_gui.h"
|
||||
|
||||
+6
-13
@@ -285,10 +285,9 @@ struct DepotWindow : Window {
|
||||
DrawTrainImage(u, image_left + (rtl ? 0 : x_space), image_right - (rtl ? x_space : 0), sprite_y - 1,
|
||||
this->sel, free_wagon ? 0 : this->hscroll->GetPosition(), this->vehicle_over);
|
||||
|
||||
/* Length of consist in tiles with 1 fractional digit (rounded up) */
|
||||
SetDParam(0, CeilDiv(u->gcache.cached_total_length * 10, TILE_SIZE));
|
||||
SetDParam(1, 1);
|
||||
DrawString(rtl ? left + WD_FRAMERECT_LEFT : right - this->count_width, rtl ? left + this->count_width : right - WD_FRAMERECT_RIGHT, y + (this->resize.step_height - FONT_HEIGHT_SMALL) / 2, STR_TINY_BLACK_DECIMAL, TC_FROMSTRING, SA_RIGHT); // Draw the counter
|
||||
/* Length of consist in tiles (rounded up) */
|
||||
SetDParam(0, CeilDiv(u->gcache.cached_total_length, TILE_SIZE));
|
||||
DrawString(rtl ? left + WD_FRAMERECT_LEFT : right - this->count_width, rtl ? left + this->count_width : right - WD_FRAMERECT_RIGHT, y + (this->resize.step_height - FONT_HEIGHT_SMALL) / 2, STR_TINY_BLACK_COMA, TC_FROMSTRING, SA_RIGHT); // Draw the counter
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -599,9 +598,8 @@ struct DepotWindow : Window {
|
||||
uint min_height = 0;
|
||||
|
||||
if (this->type == VEH_TRAIN) {
|
||||
SetDParam(0, 1000);
|
||||
SetDParam(1, 1);
|
||||
this->count_width = GetStringBoundingBox(STR_TINY_BLACK_DECIMAL).width + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
|
||||
SetDParam(0, 100);
|
||||
this->count_width = GetStringBoundingBox(STR_TINY_BLACK_COMA).width + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
|
||||
} else {
|
||||
this->count_width = 0;
|
||||
}
|
||||
@@ -637,12 +635,7 @@ struct DepotWindow : Window {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
this->generate_list = true;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include "company_func.h"
|
||||
#include "strings_func.h"
|
||||
#include "date_func.h"
|
||||
#include "viewport_func.h"
|
||||
#include "functions.h"
|
||||
#include "vehicle_func.h"
|
||||
#include "sound_func.h"
|
||||
#include "effectvehicle_func.h"
|
||||
|
||||
+3
-9
@@ -119,14 +119,8 @@ struct BuildDocksToolbarWindow : Window {
|
||||
if (_settings_client.gui.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
void OnInvalidateData(int data = 0)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
this->SetWidgetsDisabledState(!CanBuildVehicleInfrastructure(VEH_SHIP),
|
||||
DTW_DEPOT,
|
||||
DTW_STATION,
|
||||
@@ -136,6 +130,7 @@ struct BuildDocksToolbarWindow : Window {
|
||||
|
||||
virtual void OnClick(Point pt, int widget, int click_count)
|
||||
{
|
||||
this->last_clicked_widget = (DockToolbarWidgets)widget;
|
||||
switch (widget) {
|
||||
case DTW_CANAL: // Build canal button
|
||||
HandlePlacePushButton(this, DTW_CANAL, SPR_CURSOR_CANAL, HT_RECT);
|
||||
@@ -173,9 +168,8 @@ struct BuildDocksToolbarWindow : Window {
|
||||
HandlePlacePushButton(this, DTW_BUILD_AQUEDUCT, SPR_CURSOR_AQUEDUCT, HT_SPECIAL);
|
||||
break;
|
||||
|
||||
default: return;
|
||||
default: break;
|
||||
}
|
||||
this->last_clicked_widget = (DockToolbarWidgets)widget;
|
||||
}
|
||||
|
||||
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
|
||||
|
||||
+19
-42
@@ -31,6 +31,7 @@
|
||||
#include "object.h"
|
||||
#include "group.h"
|
||||
#include "strings_func.h"
|
||||
#include "functions.h"
|
||||
#include "window_func.h"
|
||||
#include "date_func.h"
|
||||
#include "vehicle_func.h"
|
||||
@@ -284,31 +285,13 @@ int UpdateCompanyRatingAndValue(Company *c, bool update)
|
||||
/* use INVALID_OWNER as new_owner to delete the company. */
|
||||
void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
{
|
||||
/* We need to set _current_company to old_owner before we try to move
|
||||
* the client. This is needed as it needs to know whether "you" really
|
||||
* are the current local company. */
|
||||
Backup<CompanyByte> cur_company(_current_company, old_owner, FILE_LINE);
|
||||
#ifdef ENABLE_NETWORK
|
||||
/* In all cases, make spectators of clients connected to that company */
|
||||
if (_networking) NetworkClientsToSpectators(old_owner);
|
||||
#endif /* ENABLE_NETWORK */
|
||||
if (old_owner == _local_company) {
|
||||
/* Single player cheated to AI company.
|
||||
* There are no specatators in single player, so we must pick some other company. */
|
||||
assert(!_networking);
|
||||
Backup<CompanyByte> cur_company(_current_company, FILE_LINE);
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
if (c->index != old_owner) {
|
||||
SetLocalCompany(c->index);
|
||||
break;
|
||||
}
|
||||
}
|
||||
cur_company.Restore();
|
||||
assert(old_owner != _local_company);
|
||||
}
|
||||
|
||||
Town *t;
|
||||
Backup<CompanyByte> cur_company(_current_company, old_owner, FILE_LINE);
|
||||
|
||||
assert(old_owner != new_owner);
|
||||
|
||||
@@ -321,7 +304,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (c->share_owners[i] == old_owner) {
|
||||
/* Sell his shares */
|
||||
CommandCost res = DoCommand(0, c->index, 0, DC_EXEC | DC_BANKRUPT, CMD_SELL_SHARE_IN_COMPANY);
|
||||
CommandCost res = DoCommand(0, c->index, 0, DC_EXEC, CMD_SELL_SHARE_IN_COMPANY);
|
||||
/* Because we are in a DoCommand, we can't just execute another one and
|
||||
* expect the money to be removed. We need to do it ourself! */
|
||||
SubtractMoneyFromCompany(res);
|
||||
@@ -336,7 +319,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
cur_company2.Change(c->share_owners[i]);
|
||||
if (_current_company != INVALID_OWNER) {
|
||||
/* Sell the shares */
|
||||
CommandCost res = DoCommand(0, old_owner, 0, DC_EXEC | DC_BANKRUPT, CMD_SELL_SHARE_IN_COMPANY);
|
||||
CommandCost res = DoCommand(0, old_owner, 0, DC_EXEC, CMD_SELL_SHARE_IN_COMPANY);
|
||||
/* Because we are in a DoCommand, we can't just execute another one and
|
||||
* expect the money to be removed. We need to do it ourself! */
|
||||
SubtractMoneyFromCompany(res);
|
||||
@@ -537,16 +520,8 @@ static void CompanyCheckBankrupt(Company *c)
|
||||
break;
|
||||
}
|
||||
|
||||
/* Actually remove the company, but not when we're a network client.
|
||||
* In case of network clients we will be getting a command from the
|
||||
* server. It is done in this way as we are called from the
|
||||
* StateGameLoop which can't change the current company, and thus
|
||||
* updating the local company triggers an assert later on. In the
|
||||
* case of a network game the command will be processed at a time
|
||||
* that changing the current company is okay. In case of single
|
||||
* player we are sure (the above check) that we are not the local
|
||||
* company and thus we won't be moved. */
|
||||
if (!_networking || _network_server) DoCommandP(0, 2 | (c->index << 16), 0, CMD_COMPANY_CTRL);
|
||||
/* Actually remove the company. */
|
||||
DoCommand(0, 2 | (c->index << 16), 0, DC_EXEC, CMD_COMPANY_CTRL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -567,7 +542,6 @@ static void CompaniesGenStatistics()
|
||||
}
|
||||
cur_company.Restore();
|
||||
|
||||
/* Only run the economic statics and update company stats every 3rd month (1st of quarter). */
|
||||
if (!HasBit(1 << 0 | 1 << 3 | 1 << 6 | 1 << 9, _cur_month)) return;
|
||||
|
||||
Company *c;
|
||||
@@ -1109,10 +1083,6 @@ void PrepareUnload(Vehicle *front_v)
|
||||
}
|
||||
|
||||
assert(front_v->cargo_payment == NULL);
|
||||
/* One CargoPayment per vehicle and the vehicle limit equals the
|
||||
* limit in number of CargoPayments. Can't go wrong. */
|
||||
assert_compile(CargoPaymentPool::MAX_SIZE == VehiclePool::MAX_SIZE);
|
||||
assert(CargoPayment::CanAllocateItem());
|
||||
front_v->cargo_payment = new CargoPayment(front_v);
|
||||
}
|
||||
|
||||
@@ -1515,6 +1485,16 @@ static void DoAcquireCompany(Company *c)
|
||||
owner->current_loan += c->current_loan;
|
||||
}
|
||||
|
||||
Money value = CalculateCompanyValue(c) >> 2;
|
||||
Backup<CompanyByte> cur_company(_current_company, FILE_LINE);
|
||||
for (int i = 0; i != 4; i++) {
|
||||
if (c->share_owners[i] != COMPANY_SPECTATOR) {
|
||||
cur_company.Change(c->share_owners[i]);
|
||||
SubtractMoneyFromCompany(CommandCost(EXPENSES_OTHER, -value));
|
||||
}
|
||||
}
|
||||
cur_company.Restore();
|
||||
|
||||
if (c->is_ai) AI::Stop(c->index);
|
||||
|
||||
DeleteCompanyWindows(ci);
|
||||
@@ -1594,12 +1574,9 @@ CommandCost CmdSellShareInCompany(TileIndex tile, DoCommandFlag flags, uint32 p1
|
||||
CompanyID target_company = (CompanyID)p1;
|
||||
Company *c = Company::GetIfValid(target_company);
|
||||
|
||||
/* Cannot sell own shares */
|
||||
if (c == NULL || _current_company == target_company) return CMD_ERROR;
|
||||
|
||||
/* Check if selling shares is allowed (protection against modified clients).
|
||||
* However, we must sell shares of companies being closed down. */
|
||||
if (!_settings_game.economy.allow_shares && !(flags & DC_BANKRUPT)) return CMD_ERROR;
|
||||
/* Check if selling shares is allowed (protection against modified clients)
|
||||
* Cannot sell own shares */
|
||||
if (c == NULL || !_settings_game.economy.allow_shares || _current_company == target_company) return CMD_ERROR;
|
||||
|
||||
/* Those lines are here for network-protection (clients can be slow) */
|
||||
if (GetAmountOwnedBy(c, _current_company) == 0) return CommandCost();
|
||||
|
||||
+2
-2
@@ -15,8 +15,8 @@
|
||||
#include "cargopacket.h"
|
||||
#include "company_type.h"
|
||||
|
||||
/** Type of pool to store cargo payments in; little over 1 million. */
|
||||
typedef Pool<CargoPayment, CargoPaymentID, 512, 0xFF000> CargoPaymentPool;
|
||||
/** Type of pool to store cargo payments in. */
|
||||
typedef Pool<CargoPayment, CargoPaymentID, 512, 64000> CargoPaymentPool;
|
||||
/** The actual pool to store cargo payments in. */
|
||||
extern CargoPaymentPool _cargo_payment_pool;
|
||||
|
||||
|
||||
+3
-4
@@ -310,6 +310,7 @@ static void DrawCatenaryRailway(const TileInfo *ti)
|
||||
};
|
||||
SpriteID pylon_base = (halftile_corner != CORNER_INVALID && HasBit(edge_corners[i], halftile_corner)) ? pylon_halftile : pylon_normal;
|
||||
TileIndex neighbour = ti->tile + TileOffsByDiagDir(i);
|
||||
Foundation foundation = FOUNDATION_NONE;
|
||||
byte elevation = GetPCPElevation(ti->tile, i);
|
||||
|
||||
/* Here's one of the main headaches. GetTileSlope does not correct for possibly
|
||||
@@ -360,10 +361,8 @@ static void DrawCatenaryRailway(const TileInfo *ti)
|
||||
PPPallowed[i] = 0;
|
||||
}
|
||||
|
||||
Foundation foundation = FOUNDATION_NONE;
|
||||
|
||||
/* Station and road crossings are always "flat", so adjust the tileh accordingly */
|
||||
if (IsTileType(neighbour, MP_STATION) || IsTileType(neighbour, MP_ROAD)) tileh[TS_NEIGHBOUR] = SLOPE_FLAT;
|
||||
/* A station is always "flat", so adjust the tileh accordingly */
|
||||
if (IsTileType(neighbour, MP_STATION)) tileh[TS_NEIGHBOUR] = SLOPE_FLAT;
|
||||
|
||||
/* Read the foundataions if they are present, and adjust the tileh */
|
||||
if (trackconfig[TS_NEIGHBOUR] != TRACK_BIT_NONE && IsTileType(neighbour, MP_RAILWAY) && HasCatenary(GetRailType(neighbour))) foundation = GetRailFoundation(tileh[TS_NEIGHBOUR], trackconfig[TS_NEIGHBOUR]);
|
||||
|
||||
+1
-42
@@ -29,7 +29,6 @@
|
||||
#include "engine_func.h"
|
||||
#include "engine_base.h"
|
||||
#include "company_base.h"
|
||||
#include "vehicle_func.h"
|
||||
|
||||
#include "table/strings.h"
|
||||
#include "table/engines.h"
|
||||
@@ -91,8 +90,6 @@ Engine::Engine(VehicleType type, EngineID base)
|
||||
this->info.base_life = 0xFF;
|
||||
/* Set road vehicle tractive effort to the default value */
|
||||
if (type == VEH_ROAD) this->u.road.tractive_effort = 0x4C;
|
||||
/* Aircraft must have CT_INVALID as default, as there is no property */
|
||||
if (type == VEH_AIRCRAFT) this->info.cargo_type = CT_INVALID;
|
||||
/* Set visual effect to the default value */
|
||||
switch (type) {
|
||||
case VEH_TRAIN: this->u.rail.visual_effect = VE_DEFAULT; break;
|
||||
@@ -146,15 +143,6 @@ Engine::~Engine()
|
||||
free(this->name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the engine spec is properly initialised.
|
||||
* @return true if enabled
|
||||
*/
|
||||
bool Engine::IsEnabled() const
|
||||
{
|
||||
return this->info.string_id != STR_NEWGRF_INVALID_ENGINE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether an engine can carry something.
|
||||
* A vehicle cannot carry anything if its capacity is zero, or none of the possible cargos is available in the climate.
|
||||
@@ -441,25 +429,6 @@ EngineID EngineOverrideManager::GetID(VehicleType type, uint16 grf_local_id, uin
|
||||
return INVALID_ENGINE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to reset the engine mapping to match the current NewGRF configuration.
|
||||
* This is only possible when there are currently no vehicles in the game.
|
||||
* @return false if resetting failed due to present vehicles.
|
||||
*/
|
||||
bool EngineOverrideManager::ResetToCurrentNewGRFConfig()
|
||||
{
|
||||
const Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
if (IsCompanyBuildableVehicleType(v)) return false;
|
||||
}
|
||||
|
||||
/* Reset the engines, they will get new EngineIDs */
|
||||
_engine_mngr.ResetToDefaultMapping();
|
||||
ReloadNewGRFData();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets cached values in Company::num_vehicles and Group::num_vehicles
|
||||
*/
|
||||
@@ -499,21 +468,14 @@ void SetCachedEngineCounts()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise the engine pool with the data from the original vehicles.
|
||||
*/
|
||||
void SetupEngines()
|
||||
{
|
||||
DeleteWindowByClass(WC_ENGINE_PREVIEW);
|
||||
_engine_pool.CleanPool();
|
||||
|
||||
assert(_engine_mngr.Length() >= _engine_mngr.NUM_DEFAULT_ENGINES);
|
||||
const EngineIDMapping *end = _engine_mngr.End();
|
||||
uint index = 0;
|
||||
for (const EngineIDMapping *eid = _engine_mngr.Begin(); eid != end; eid++, index++) {
|
||||
/* Assert is safe; there won't be more than 256 original vehicles
|
||||
* in any case, and we just cleaned the pool. */
|
||||
assert(Engine::CanAllocateItem());
|
||||
const Engine *e = new Engine(eid->type, eid->internal_id);
|
||||
assert(e->index == index);
|
||||
}
|
||||
@@ -868,9 +830,6 @@ void EnginesMonthlyLoop()
|
||||
CalcEngineReliability(e);
|
||||
}
|
||||
|
||||
/* Do not introduce invalid engines */
|
||||
if (!e->IsEnabled()) continue;
|
||||
|
||||
if (!(e->flags & ENGINE_AVAILABLE) && _date >= (e->intro_date + DAYS_IN_YEAR)) {
|
||||
/* Introduce it to all companies */
|
||||
NewVehicleAvailable(e);
|
||||
@@ -956,7 +915,7 @@ bool IsEngineBuildable(EngineID engine, VehicleType type, CompanyID company)
|
||||
/* check if it's available */
|
||||
if (!HasBit(e->company_avail, company)) return false;
|
||||
|
||||
if (!e->IsEnabled()) return false;
|
||||
if (e->info.string_id == STR_NEWGRF_INVALID_ENGINE) return false;
|
||||
|
||||
if (type == VEH_TRAIN) {
|
||||
/* Check if the rail type is available to this company */
|
||||
|
||||
@@ -61,7 +61,6 @@ struct Engine : EnginePool::PoolItem<&_engine_pool> {
|
||||
Engine();
|
||||
Engine(VehicleType type, EngineID base);
|
||||
~Engine();
|
||||
bool IsEnabled() const;
|
||||
|
||||
/**
|
||||
* Determines the default cargo type of an engine.
|
||||
@@ -115,8 +114,6 @@ struct EngineOverrideManager : SmallVector<EngineIDMapping, 256> {
|
||||
|
||||
void ResetToDefaultMapping();
|
||||
EngineID GetID(VehicleType type, uint16 grf_local_id, uint32 grfid);
|
||||
|
||||
static bool ResetToCurrentNewGRFConfig();
|
||||
};
|
||||
|
||||
extern EngineOverrideManager _engine_mngr;
|
||||
|
||||
+7
-18
@@ -860,9 +860,8 @@ extern void DetermineBasePaths(const char *exe);
|
||||
* in the same way we remove the name from the executable name.
|
||||
* @param exe the path to the executable
|
||||
*/
|
||||
static bool ChangeWorkingDirectoryToExecutable(const char *exe)
|
||||
void ChangeWorkingDirectory(const char *exe)
|
||||
{
|
||||
bool success = false;
|
||||
#ifdef WITH_COCOA
|
||||
char *app_bundle = strchr(exe, '.');
|
||||
while (app_bundle != NULL && strncasecmp(app_bundle, ".app", 4) != 0) app_bundle = strchr(&app_bundle[1], '.');
|
||||
@@ -876,17 +875,12 @@ static bool ChangeWorkingDirectoryToExecutable(const char *exe)
|
||||
/* If we want to go to the root, we can't use cd C:, but we must use '/' */
|
||||
if (s[-1] == ':') chdir("/");
|
||||
#endif
|
||||
if (chdir(exe) != 0) {
|
||||
DEBUG(misc, 0, "Directory with the binary does not exist?");
|
||||
} else {
|
||||
success = true;
|
||||
}
|
||||
if (chdir(exe) != 0) DEBUG(misc, 0, "Directory with the binary does not exist?");
|
||||
*s = PATHSEPCHAR;
|
||||
}
|
||||
#ifdef WITH_COCOA
|
||||
if (app_bundle != NULL) app_bundle[0] = '.';
|
||||
#endif /* WITH_COCOA */
|
||||
return success;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -964,19 +958,14 @@ void DetermineBasePaths(const char *exe)
|
||||
_do_scan_working_directory = DoScanWorkingDirectory();
|
||||
|
||||
/* Change the working directory to that one of the executable */
|
||||
if (ChangeWorkingDirectoryToExecutable(exe)) {
|
||||
if (getcwd(tmp, MAX_PATH) == NULL) *tmp = '\0';
|
||||
AppendPathSeparator(tmp, MAX_PATH);
|
||||
_searchpaths[SP_BINARY_DIR] = strdup(tmp);
|
||||
} else {
|
||||
_searchpaths[SP_BINARY_DIR] = NULL;
|
||||
}
|
||||
ChangeWorkingDirectory(exe);
|
||||
if (getcwd(tmp, MAX_PATH) == NULL) *tmp = '\0';
|
||||
AppendPathSeparator(tmp, MAX_PATH);
|
||||
_searchpaths[SP_BINARY_DIR] = strdup(tmp);
|
||||
|
||||
if (_searchpaths[SP_WORKING_DIR] != NULL) {
|
||||
/* Go back to the current working directory. */
|
||||
if (chdir(_searchpaths[SP_WORKING_DIR]) != 0) {
|
||||
DEBUG(misc, 0, "Failed to return to working directory!");
|
||||
}
|
||||
ChangeWorkingDirectory(_searchpaths[SP_WORKING_DIR]);
|
||||
}
|
||||
|
||||
#if defined(__MORPHOS__) || defined(__AMIGA__) || defined(DOS) || defined(OS2)
|
||||
|
||||
+1
-17
@@ -211,9 +211,6 @@ void BuildFileList()
|
||||
|
||||
default: FiosGetSavegameList(_saveload_mode); break;
|
||||
}
|
||||
|
||||
/* Invalidate saveload window */
|
||||
InvalidateWindowData(WC_SAVELOAD, 0, 2, true);
|
||||
}
|
||||
|
||||
static void MakeSortedSaveGameList()
|
||||
@@ -662,24 +659,17 @@ public:
|
||||
this->vscroll->SetCapacityFromWidget(this, SLWW_DRIVES_DIRECTORIES_LIST);
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
switch (data) {
|
||||
case 0:
|
||||
/* Rescan files */
|
||||
this->selected = NULL;
|
||||
_load_check_data.Clear();
|
||||
if (!gui_scope) break;
|
||||
BuildFileList();
|
||||
/* FALL THROUGH */
|
||||
case 1:
|
||||
/* Selection changes */
|
||||
if (!gui_scope) break;
|
||||
if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) {
|
||||
this->SetWidgetDisabledState(SLWW_LOAD_BUTTON,
|
||||
this->selected == NULL || _load_check_data.HasErrors() || !(_load_check_data.grf_compatibility != GLC_NOT_FOUND || _settings_client.gui.UserIsAllowedToChangeNewGRFs()));
|
||||
@@ -687,12 +677,6 @@ public:
|
||||
!_load_check_data.HasNewGrfs());
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
/* _fios_items changed */
|
||||
this->vscroll->SetCount(_fios_items.Length());
|
||||
this->selected = NULL;
|
||||
_load_check_data.Clear();
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -7,16 +7,36 @@
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** @file clear_func.h Functions related to clear (MP_CLEAR) land. */
|
||||
/** @file functions.h Some generic functions that actually shouldn't be here. */
|
||||
|
||||
#ifndef CLEAR_FUNC_H
|
||||
#define CLEAR_FUNC_H
|
||||
#ifndef FUNCTIONS_H
|
||||
#define FUNCTIONS_H
|
||||
|
||||
#include "tile_cmd.h"
|
||||
|
||||
/* clear_land.cpp */
|
||||
void DrawHillyLandTile(const TileInfo *ti);
|
||||
void DrawClearLandTile(const TileInfo *ti, byte set);
|
||||
void DrawClearLandFence(const TileInfo *ti);
|
||||
void TileLoopClearHelper(TileIndex tile);
|
||||
|
||||
#endif /* CLEAR_FUNC_H */
|
||||
/* company_cmd.cpp */
|
||||
bool CheckCompanyHasMoney(CommandCost &cost);
|
||||
void SubtractMoneyFromCompany(CommandCost cost);
|
||||
void SubtractMoneyFromCompanyFract(CompanyID company, CommandCost cost);
|
||||
CommandCost CheckOwnership(Owner owner, TileIndex tile = 0);
|
||||
CommandCost CheckTileOwnership(TileIndex tile);
|
||||
|
||||
/* misc functions */
|
||||
void MarkTileDirtyByTile(TileIndex tile);
|
||||
|
||||
void ShowCostOrIncomeAnimation(int x, int y, int z, Money cost);
|
||||
void ShowFeederIncomeAnimation(int x, int y, int z, Money cost);
|
||||
|
||||
void AskExitGame();
|
||||
void AskExitToGameMenu();
|
||||
|
||||
int ttd_main(int argc, char *argv[]);
|
||||
void HandleExitGameRequest();
|
||||
|
||||
#endif /* FUNCTIONS_H */
|
||||
+12
-29
@@ -336,11 +336,9 @@ static const StringID _tree_placer[] = {STR_CONFIG_SETTING_TREE_PLACER_NONE, STR
|
||||
static const StringID _rotation[] = {STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE, STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE, INVALID_STRING_ID};
|
||||
static const StringID _landscape[] = {STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL, STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS, INVALID_STRING_ID};
|
||||
static const StringID _num_towns[] = {STR_NUM_VERY_LOW, STR_NUM_LOW, STR_NUM_NORMAL, STR_NUM_HIGH, STR_NUM_CUSTOM, INVALID_STRING_ID};
|
||||
static const StringID _num_inds[] = {STR_FUNDING_ONLY, STR_MINIMAL, STR_NUM_VERY_LOW, STR_NUM_LOW, STR_NUM_NORMAL, STR_NUM_HIGH, INVALID_STRING_ID};
|
||||
static const StringID _num_inds[] = {STR_NONE, STR_NUM_VERY_LOW, STR_NUM_LOW, STR_NUM_NORMAL, STR_NUM_HIGH, INVALID_STRING_ID};
|
||||
static const StringID _variety[] = {STR_VARIETY_NONE, STR_VARIETY_VERY_LOW, STR_VARIETY_LOW, STR_VARIETY_MEDIUM, STR_VARIETY_HIGH, STR_VARIETY_VERY_HIGH, INVALID_STRING_ID};
|
||||
|
||||
assert_compile(lengthof(_num_inds) == ID_END + 1);
|
||||
|
||||
struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
uint widget_id;
|
||||
uint x;
|
||||
@@ -390,7 +388,7 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
}
|
||||
break;
|
||||
|
||||
case GLAND_INDUSTRY_PULLDOWN: SetDParam(0, _game_mode == GM_EDITOR ? STR_DISASTERS_OFF : _num_inds[_settings_newgame.difficulty.industry_density]); break;
|
||||
case GLAND_INDUSTRY_PULLDOWN: SetDParam(0, _game_mode == GM_EDITOR ? STR_DISASTERS_OFF : _num_inds[_settings_newgame.difficulty.number_industries]); break;
|
||||
case GLAND_LANDSCAPE_PULLDOWN: SetDParam(0, _landscape[_settings_newgame.game_creation.land_generator]); break;
|
||||
case GLAND_TREE_PULLDOWN: SetDParam(0, _tree_placer[_settings_newgame.game_creation.tree_placer]); break;
|
||||
case GLAND_TERRAIN_PULLDOWN: SetDParam(0, _elevations[_settings_newgame.difficulty.terrain_type]); break;
|
||||
@@ -425,14 +423,8 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data = 0)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
/* Update the climate buttons */
|
||||
this->SetWidgetLoweredState(GLAND_TEMPERATE, _settings_newgame.game_creation.landscape == LT_TEMPERATE);
|
||||
this->SetWidgetLoweredState(GLAND_ARCTIC, _settings_newgame.game_creation.landscape == LT_ARCTIC);
|
||||
@@ -592,7 +584,7 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
break;
|
||||
|
||||
case GLAND_INDUSTRY_PULLDOWN: // Number of industries
|
||||
ShowDropDownMenu(this, _num_inds, _settings_newgame.difficulty.industry_density, GLAND_INDUSTRY_PULLDOWN, 0, 0);
|
||||
ShowDropDownMenu(this, _num_inds, _settings_newgame.difficulty.number_industries, GLAND_INDUSTRY_PULLDOWN, 0, 0);
|
||||
break;
|
||||
|
||||
case GLAND_RANDOM_BUTTON: // Random seed
|
||||
@@ -602,22 +594,14 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
this->SetDirty();
|
||||
break;
|
||||
|
||||
case GLAND_GENERATE_BUTTON: { // Generate
|
||||
/* Get rotated map size. */
|
||||
uint map_x;
|
||||
uint map_y;
|
||||
if (_settings_newgame.game_creation.heightmap_rotation == HM_CLOCKWISE) {
|
||||
map_x = this->y;
|
||||
map_y = this->x;
|
||||
} else {
|
||||
map_x = this->x;
|
||||
map_y = this->y;
|
||||
}
|
||||
case GLAND_GENERATE_BUTTON: // Generate
|
||||
MakeNewgameSettingsLive();
|
||||
|
||||
if (mode == GLWM_HEIGHTMAP &&
|
||||
(map_x * 2 < (1U << _settings_newgame.game_creation.map_x) ||
|
||||
map_x / 2 > (1U << _settings_newgame.game_creation.map_x) ||
|
||||
map_y * 2 < (1U << _settings_newgame.game_creation.map_y) ||
|
||||
map_y / 2 > (1U << _settings_newgame.game_creation.map_y))) {
|
||||
(this->x * 2 < (1U << _settings_newgame.game_creation.map_x) ||
|
||||
this->x / 2 > (1U << _settings_newgame.game_creation.map_x) ||
|
||||
this->y * 2 < (1U << _settings_newgame.game_creation.map_y) ||
|
||||
this->y / 2 > (1U << _settings_newgame.game_creation.map_y))) {
|
||||
ShowQuery(
|
||||
STR_WARNING_HEIGHTMAP_SCALE_CAPTION,
|
||||
STR_WARNING_HEIGHTMAP_SCALE_MESSAGE,
|
||||
@@ -627,7 +611,6 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
StartGeneratingLandscape(mode);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case GLAND_START_DATE_DOWN:
|
||||
case GLAND_START_DATE_UP: // Year buttons
|
||||
@@ -776,7 +759,7 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
break;
|
||||
|
||||
case GLAND_INDUSTRY_PULLDOWN:
|
||||
IConsoleSetSetting("difficulty.industry_density", index);
|
||||
IConsoleSetSetting("difficulty.number_industries", index);
|
||||
break;
|
||||
|
||||
case GLAND_TERRAIN_PULLDOWN: {
|
||||
|
||||
+1
-7
@@ -1114,19 +1114,13 @@ skip_cont:;
|
||||
/**
|
||||
* Get the size of a sprite.
|
||||
* @param sprid Sprite to examine.
|
||||
* @param [out] offset Optionally returns the sprite position offset.
|
||||
* @return Sprite size in pixels.
|
||||
* @note The size assumes (0, 0) as top-left coordinate and ignores any part of the sprite drawn at the left or above that position.
|
||||
*/
|
||||
Dimension GetSpriteSize(SpriteID sprid, Point *offset)
|
||||
Dimension GetSpriteSize(SpriteID sprid)
|
||||
{
|
||||
const Sprite *sprite = GetSprite(sprid, ST_NORMAL);
|
||||
|
||||
if (offset != NULL) {
|
||||
offset->x = sprite->x_offs;
|
||||
offset->y = sprite->y_offs;
|
||||
}
|
||||
|
||||
Dimension d;
|
||||
d.width = max<int>(0, sprite->x_offs + sprite->width);
|
||||
d.height = max<int>(0, sprite->y_offs + sprite->height);
|
||||
|
||||
+1
-1
@@ -88,7 +88,7 @@ static const int DRAW_STRING_BUFFER = 2048;
|
||||
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, Point *offset = NULL);
|
||||
Dimension GetSpriteSize(SpriteID sprid);
|
||||
void DrawSprite(SpriteID img, PaletteID pal, int x, int y, const SubSprite *sub = NULL);
|
||||
|
||||
/** How to align the to-be drawn text. */
|
||||
|
||||
+6
-32
@@ -91,14 +91,8 @@ struct GraphLegendWindow : Window {
|
||||
InvalidateWindowData(WC_COMPANY_VALUE, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
if (Company::IsValidID(data)) return;
|
||||
|
||||
SetBit(_legend_excluded_companies, data);
|
||||
@@ -549,14 +543,8 @@ public:
|
||||
this->UpdateStatistics(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
this->UpdateStatistics(true);
|
||||
}
|
||||
|
||||
@@ -1025,14 +1013,8 @@ struct PaymentRatesGraphWindow : BaseGraphWindow {
|
||||
/* Override default OnTick */
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
this->OnHundredthTick();
|
||||
}
|
||||
|
||||
@@ -1265,15 +1247,9 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (data == 0) {
|
||||
/* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */
|
||||
this->companies.ForceRebuild();
|
||||
} else {
|
||||
this->companies.ForceResort();
|
||||
@@ -1512,13 +1488,11 @@ struct PerformanceRatingDetailWindow : Window {
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* Invalidate the data of this window.
|
||||
* @param data the company ID of the company that is going to be removed
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
/* Disable the companies who are not active */
|
||||
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
|
||||
this->SetWidgetDisabledState(i + PRW_COMPANY_FIRST, !Company::IsValidID(i));
|
||||
|
||||
+2
-10
@@ -151,16 +151,8 @@ int GroundVehicle<T, Type>::GetAcceleration() const
|
||||
}
|
||||
|
||||
if (mode == AS_ACCEL) {
|
||||
/* Easy way out when there is no acceleration. */
|
||||
if (force == resistance) return 0;
|
||||
|
||||
/* When we accelerate, make sure we always keep doing that, even when
|
||||
* the excess force is more than the mass. Otherwise a vehicle going
|
||||
* down hill will never slow down enough, and a vehicle that came up
|
||||
* a hill will never speed up enough to (eventually) get back to the
|
||||
* same (maximum) speed. */
|
||||
int accel = (force - resistance) / (mass * 4);
|
||||
return force < resistance ? min(-1, accel) : max(1, accel);
|
||||
/* Divide by 4 to compensate for the wacky game scale. */
|
||||
return (force - resistance) / (mass * 4);
|
||||
} else {
|
||||
return min(-force - resistance, -10000) / mass;
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ struct GroundVehicleCache {
|
||||
/* Cached NewGRF values, recalculated on load and each time a vehicle is added to/removed from the consist. */
|
||||
uint16 cached_total_length; ///< Length of the whole vehicle (valid only for the first engine).
|
||||
EngineID first_engine; ///< Cached EngineID of the front vehicle. INVALID_ENGINE for the front vehicle itself.
|
||||
uint8 cached_veh_length; ///< Length of this vehicle in units of 1/VEHICLE_LENGTH of normal length. It is cached because this can be set by a callback.
|
||||
uint8 cached_veh_length; ///< Length of this vehicle in units of 1/8 of normal length. It is cached because this can be set by a callback.
|
||||
|
||||
/* Cached UI information. */
|
||||
uint16 last_speed; ///< The last speed we did display, so we only have to redraw when this changes.
|
||||
@@ -50,9 +50,8 @@ struct GroundVehicleCache {
|
||||
|
||||
/** Ground vehicle flags. */
|
||||
enum GroundVehicleFlags {
|
||||
GVF_GOINGUP_BIT = 0, ///< Vehicle is currently going uphill. (Cached track information for acceleration)
|
||||
GVF_GOINGDOWN_BIT = 1, ///< Vehicle is currently going downhill. (Cached track information for acceleration)
|
||||
GVF_SUPPRESS_IMPLICIT_ORDERS = 2, ///< Disable insertion and removal of automatic orders until the vehicle completes the real order.
|
||||
GVF_GOINGUP_BIT = 0,
|
||||
GVF_GOINGDOWN_BIT = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -341,7 +340,9 @@ struct GroundVehicle : public SpecializedVehicle<T, Type> {
|
||||
FORCEINLINE void SetLastSpeed()
|
||||
{
|
||||
if (this->cur_speed != this->gcache.last_speed) {
|
||||
SetWindowWidgetDirty(WC_VEHICLE_VIEW, this->index, VVW_WIDGET_START_STOP_VEH);
|
||||
if ((this->gcache.last_speed == 0) != (this->cur_speed == 0)) {
|
||||
SetWindowWidgetDirty(WC_VEHICLE_VIEW, this->index, VVW_WIDGET_START_STOP_VEH);
|
||||
}
|
||||
this->gcache.last_speed = this->cur_speed;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-9
@@ -15,7 +15,6 @@
|
||||
#include "vehicle_gui.h"
|
||||
#include "vehicle_base.h"
|
||||
#include "group.h"
|
||||
#include "string_func.h"
|
||||
#include "strings_func.h"
|
||||
#include "window_func.h"
|
||||
#include "vehicle_func.h"
|
||||
@@ -254,15 +253,9 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (data == 0) {
|
||||
/* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */
|
||||
this->vehicles.ForceRebuild();
|
||||
this->groups.ForceRebuild();
|
||||
} else {
|
||||
@@ -270,7 +263,6 @@ public:
|
||||
this->groups.ForceResort();
|
||||
}
|
||||
|
||||
/* Process ID-invalidation in command-scope as well */
|
||||
if (this->group_rename != INVALID_GROUP && !Group::IsValidID(this->group_rename)) {
|
||||
DeleteWindowByClass(WC_QUERY_STRING);
|
||||
this->group_rename = INVALID_GROUP;
|
||||
|
||||
@@ -63,7 +63,7 @@ enum WarningLevel {
|
||||
WL_CRITICAL, ///< Critical errors, the MessageBox is shown in all cases
|
||||
};
|
||||
|
||||
void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel wl, int x = 0, int y = 0, uint textref_stack_size = 0, const uint32 *textref_stack = NULL);
|
||||
void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel wl, int x = 0, int y = 0);
|
||||
|
||||
void ShowExtraViewPortWindow(TileIndex tile = INVALID_TILE);
|
||||
void ShowExtraViewPortWindowForTileUnderCursor();
|
||||
|
||||
+1
-4
@@ -74,8 +74,7 @@ static uint16 ParseCode(const char *start, const char *end)
|
||||
}
|
||||
if (end - start == 1) {
|
||||
if (*start >= 'a' && *start <= 'z') return *start - ('a'-'A');
|
||||
/* Ignore invalid keycodes */
|
||||
if (*(uint8*)start < 128) return *start;
|
||||
return *start;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -96,8 +95,6 @@ static uint16 ParseKeycode(const char *start, const char *end)
|
||||
uint16 code = ParseCode(start, cur);
|
||||
if (code == 0) return 0;
|
||||
if (code & WKC_SPECIAL_KEYS) {
|
||||
/* Some completely wrong keycode we don't support. */
|
||||
if (code & ~WKC_SPECIAL_KEYS) return 0;
|
||||
keycode |= code;
|
||||
} else {
|
||||
/* Ignore the code if it has more then 1 letter. */
|
||||
|
||||
+24
-27
@@ -27,6 +27,7 @@
|
||||
#include "autoslope.h"
|
||||
#include "water.h"
|
||||
#include "strings_func.h"
|
||||
#include "functions.h"
|
||||
#include "window_func.h"
|
||||
#include "date_func.h"
|
||||
#include "vehicle_func.h"
|
||||
@@ -1758,8 +1759,6 @@ CommandCost CmdBuildIndustry(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
|
||||
randomizer.SetSeed(p2);
|
||||
uint16 random_initial_bits = GB(p2, 0, 16);
|
||||
uint32 random_var8f = randomizer.Next();
|
||||
int num_layouts = indspec->num_table;
|
||||
CommandCost ret = CommandCost(STR_ERROR_SITE_UNSUITABLE);
|
||||
|
||||
Industry *ind = NULL;
|
||||
if (_game_mode != GM_EDITOR && _settings_game.construction.raw_industry_construction == 2 && indspec->IsRawIndustry()) {
|
||||
@@ -1775,31 +1774,28 @@ CommandCost CmdBuildIndustry(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
|
||||
* because parameter evaluation order is not guaranteed in the c++ standard
|
||||
*/
|
||||
tile = RandomTile();
|
||||
/* Start with a random layout */
|
||||
int layout = RandomRange(num_layouts);
|
||||
/* Check now each layout, starting with the random one */
|
||||
for (int j = 0; j < num_layouts; j++) {
|
||||
layout = (layout + 1) % num_layouts;
|
||||
ret = CreateNewIndustryHelper(tile, it, flags, indspec, layout, random_var8f, random_initial_bits, cur_company.GetOriginalValue(), IACT_PROSPECTCREATION, &ind);
|
||||
if (ret.Succeeded()) break;
|
||||
}
|
||||
CommandCost ret = CreateNewIndustryHelper(tile, it, flags, indspec, RandomRange(indspec->num_table), random_var8f, random_initial_bits, cur_company.GetOriginalValue(), IACT_PROSPECTCREATION, &ind);
|
||||
if (ret.Succeeded()) break;
|
||||
}
|
||||
}
|
||||
cur_company.Restore();
|
||||
}
|
||||
} else {
|
||||
int layout = GB(p1, 8, 8);
|
||||
if (layout >= num_layouts) return CMD_ERROR;
|
||||
int count = indspec->num_table;
|
||||
const IndustryTileTable * const *itt = indspec->table;
|
||||
int num = GB(p1, 8, 8);
|
||||
if (num >= count) return CMD_ERROR;
|
||||
|
||||
/* Check subsequently each layout, starting with the given layout in p1 */
|
||||
for (int i = 0; i < num_layouts; i++) {
|
||||
layout = (layout + 1) % num_layouts;
|
||||
ret = CreateNewIndustryHelper(tile, it, flags, indspec, layout, random_var8f, random_initial_bits, _current_company, IACT_USERCREATION, &ind);
|
||||
if (ret.Succeeded()) break;
|
||||
}
|
||||
CommandCost ret = CommandCost(STR_ERROR_SITE_UNSUITABLE);
|
||||
SmallVector<ClearedObjectArea, 1> object_areas(_cleared_object_areas);
|
||||
do {
|
||||
if (--count < 0) return ret;
|
||||
if (--num < 0) num = indspec->num_table - 1;
|
||||
ret = CheckIfIndustryTilesAreFree(tile, itt[num], num, it, random_initial_bits, _current_company, IACT_USERCREATION);
|
||||
_cleared_object_areas = object_areas;
|
||||
} while (ret.Failed());
|
||||
|
||||
/* If it still failed, there's no suitable layout to build here, return the error */
|
||||
ret = CreateNewIndustryHelper(tile, it, flags, indspec, num, random_var8f, random_initial_bits, _current_company, IACT_USERCREATION, &ind);
|
||||
if (ret.Failed()) return ret;
|
||||
}
|
||||
|
||||
@@ -1851,7 +1847,7 @@ static uint32 GetScaledIndustryGenerationProbability(IndustryType it, bool *forc
|
||||
uint32 chance = ind_spc->appear_creation[_settings_game.game_creation.landscape] * 16; // * 16 to increase precision
|
||||
if (!ind_spc->enabled || chance == 0 || ind_spc->num_table == 0 ||
|
||||
!CheckIfCallBackAllowsAvailability(it, IACT_MAPGENERATION) ||
|
||||
(_game_mode != GM_EDITOR && _settings_game.difficulty.industry_density == ID_FUND_ONLY)) {
|
||||
(_game_mode != GM_EDITOR && _settings_game.difficulty.number_industries == 0)) {
|
||||
*force_at_least_one = false;
|
||||
return 0;
|
||||
} else {
|
||||
@@ -1872,7 +1868,7 @@ static uint32 GetScaledIndustryGenerationProbability(IndustryType it, bool *forc
|
||||
*/
|
||||
static uint16 GetIndustryGamePlayProbability(IndustryType it, byte *min_number)
|
||||
{
|
||||
if (_settings_game.difficulty.industry_density == ID_FUND_ONLY) {
|
||||
if (_settings_game.difficulty.number_industries == 0) {
|
||||
*min_number = 0;
|
||||
return 0;
|
||||
}
|
||||
@@ -1899,15 +1895,14 @@ static uint GetNumberOfIndustries()
|
||||
/* Number of industries on a 256x256 map. */
|
||||
static const uint16 numof_industry_table[] = {
|
||||
0, // none
|
||||
0, // minimal
|
||||
10, // very low
|
||||
25, // low
|
||||
55, // normal
|
||||
80, // high
|
||||
};
|
||||
|
||||
assert(lengthof(numof_industry_table) == ID_END);
|
||||
uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.industry_density : (uint)ID_VERY_LOW;
|
||||
assert(_settings_game.difficulty.number_industries < lengthof(numof_industry_table));
|
||||
uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.number_industries : 1;
|
||||
return ScaleByMapSize(numof_industry_table[difficulty]);
|
||||
}
|
||||
|
||||
@@ -1998,7 +1993,7 @@ void IndustryBuildData::Reset()
|
||||
void IndustryBuildData::MonthlyLoop()
|
||||
{
|
||||
static const int NEWINDS_PER_MONTH = 0x38000 / (10 * 12); // lower 16 bits is a float fraction, 3.5 industries per decade, divided by 10 * 12 months.
|
||||
if (_settings_game.difficulty.industry_density == ID_FUND_ONLY) return; // 'no industries' setting,
|
||||
if (_settings_game.difficulty.number_industries == 0) return; // 'no industries' setting,
|
||||
|
||||
/* To prevent running out of unused industries for the player to connect,
|
||||
* add a fraction of new industries each month, but only if the manager can keep up. */
|
||||
@@ -2014,7 +2009,10 @@ void IndustryBuildData::MonthlyLoop()
|
||||
*/
|
||||
void GenerateIndustries()
|
||||
{
|
||||
if (_game_mode != GM_EDITOR && _settings_game.difficulty.industry_density == ID_FUND_ONLY) return; // No industries in the game.
|
||||
uint total_amount = GetNumberOfIndustries();
|
||||
|
||||
/* Do not create any industries? */
|
||||
if (total_amount == 0) return;
|
||||
|
||||
uint32 industry_probs[NUM_INDUSTRYTYPES];
|
||||
bool force_at_least_one[NUM_INDUSTRYTYPES];
|
||||
@@ -2027,7 +2025,6 @@ void GenerateIndustries()
|
||||
if (force_at_least_one[it]) num_forced++;
|
||||
}
|
||||
|
||||
uint total_amount = GetNumberOfIndustries();
|
||||
if (total_prob == 0 || total_amount < num_forced) {
|
||||
/* Only place the forced ones */
|
||||
total_amount = num_forced;
|
||||
|
||||
+12
-37
@@ -74,7 +74,7 @@ static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind,
|
||||
if (HasBit(indspec->callback_mask, CBM_IND_CARGO_SUFFIX)) {
|
||||
uint16 callback = GetIndustryCallback(CBID_INDUSTRY_CARGO_SUFFIX, 0, (cst << 8) | cargo, const_cast<Industry *>(ind), ind_type, (cst != CST_FUND) ? ind->location.tile : INVALID_TILE);
|
||||
if (GB(callback, 0, 8) != 0xFF) {
|
||||
StartTextRefStackUsage(6);
|
||||
PrepareTextRefStackUsage(6);
|
||||
GetString(suffix, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), suffix_last);
|
||||
StopTextRefStackUsage();
|
||||
}
|
||||
@@ -458,8 +458,8 @@ public:
|
||||
if (callback_res != CALLBACK_FAILED) { // Did it fail?
|
||||
str = GetGRFStringID(indsp->grf_prop.grffile->grfid, 0xD000 + callback_res); // No. here's the new string
|
||||
if (str != STR_UNDEFINED) {
|
||||
StartTextRefStackUsage(6);
|
||||
DrawStringMultiLine(left, right, y, bottom, str, TC_YELLOW);
|
||||
PrepareTextRefStackUsage(6);
|
||||
DrawStringMultiLine(left, right, y, bottom, str);
|
||||
StopTextRefStackUsage();
|
||||
}
|
||||
}
|
||||
@@ -597,18 +597,12 @@ public:
|
||||
this->RaiseButtons();
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data = 0)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
this->SetupArrays();
|
||||
|
||||
const IndustrySpec *indsp = (this->selected_type == INVALID_INDUSTRYTYPE) ? NULL : GetIndustrySpec(this->selected_type);
|
||||
if (indsp == NULL) this->enabled[this->selected_index] = _settings_game.difficulty.industry_density != ID_FUND_ONLY;
|
||||
if (indsp == NULL) this->enabled[this->selected_index] = _settings_game.difficulty.number_industries != 0;
|
||||
this->SetButtons();
|
||||
}
|
||||
};
|
||||
@@ -788,7 +782,7 @@ public:
|
||||
if (message != STR_NULL && message != STR_UNDEFINED) {
|
||||
y += WD_PAR_VSEP_WIDE;
|
||||
|
||||
StartTextRefStackUsage(6);
|
||||
PrepareTextRefStackUsage(6);
|
||||
/* Use all the available space left from where we stand up to the
|
||||
* end of the window. We ALSO enlarge the window if needed, so we
|
||||
* can 'go' wild with the bottom of the window. */
|
||||
@@ -953,14 +947,8 @@ public:
|
||||
this->SetDirty();
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
const Industry *i = Industry::Get(this->window_number);
|
||||
if (IsProductionAlterable(i)) {
|
||||
const IndustrySpec *ind = GetIndustrySpec(i->type);
|
||||
@@ -1346,31 +1334,20 @@ public:
|
||||
this->vscroll->SetCapacityFromWidget(this, IDW_INDUSTRY_LIST);
|
||||
}
|
||||
|
||||
virtual void OnPaint()
|
||||
{
|
||||
if (this->industries.NeedRebuild()) this->BuildSortIndustriesList();
|
||||
this->DrawWidgets();
|
||||
}
|
||||
|
||||
virtual void OnHundredthTick()
|
||||
{
|
||||
this->industries.ForceResort();
|
||||
this->BuildSortIndustriesList();
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (data == 0) {
|
||||
/* This needs to be done in command-scope to enforce rebuilding before resorting invalid data */
|
||||
this->industries.ForceRebuild();
|
||||
} else {
|
||||
this->industries.ForceResort();
|
||||
}
|
||||
this->BuildSortIndustriesList();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2409,15 +2386,13 @@ struct IndustryCargoesWindow : public Window {
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* Notify the window about external events.
|
||||
* - data = 0 .. NUM_INDUSTRYTYPES - 1: Display the chain around the given industry.
|
||||
* - data = NUM_INDUSTRYTYPES: Stop sending updates to the smallmap window.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
* @param data The event.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
if (data == NUM_INDUSTRYTYPES) {
|
||||
if (this->IsWidgetLowered(ICW_NOTIFY)) {
|
||||
this->RaiseWidget(ICW_NOTIFY);
|
||||
|
||||
+2
-7
@@ -20,6 +20,7 @@
|
||||
#include "landscape_type.h"
|
||||
#include "strings_func.h"
|
||||
#include "fios.h"
|
||||
#include "functions.h"
|
||||
#include "ai/ai_gui.hpp"
|
||||
#include "gfx_func.h"
|
||||
#include "core/geometry_func.hpp"
|
||||
@@ -55,14 +56,8 @@ struct SelectGameWindow : public Window {
|
||||
this->OnInvalidateData();
|
||||
}
|
||||
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
virtual void OnInvalidateData(int data = 0)
|
||||
{
|
||||
if (!gui_scope) return;
|
||||
this->SetWidgetLoweredState(SGI_TEMPERATE_LANDSCAPE, _settings_newgame.game_creation.landscape == LT_TEMPERATE);
|
||||
this->SetWidgetLoweredState(SGI_ARCTIC_LANDSCAPE, _settings_newgame.game_creation.landscape == LT_ARCTIC);
|
||||
this->SetWidgetLoweredState(SGI_TROPIC_LANDSCAPE, _settings_newgame.game_creation.landscape == LT_TROPIC);
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "tgp.h"
|
||||
#include "genworld.h"
|
||||
#include "fios.h"
|
||||
#include "functions.h"
|
||||
#include "date_func.h"
|
||||
#include "water.h"
|
||||
#include "effectvehicle_func.h"
|
||||
|
||||
+9
-109
@@ -214,8 +214,6 @@ STR_UNITS_VOLUME_LONG_SI :{COMMA} m³
|
||||
|
||||
STR_UNITS_FORCE_SI :{COMMA} kN
|
||||
|
||||
STR_UNITS_HEIGHT_IMPERIAL :{COMMA} ft
|
||||
STR_UNITS_HEIGHT_SI :{COMMA} m
|
||||
|
||||
# Common window strings
|
||||
STR_LIST_FILTER_OSKTITLE :{BLACK}Sleutel 'n filter string
|
||||
@@ -231,7 +229,6 @@ STR_BUTTON_RENAME :{BLACK}Hernoem
|
||||
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Maak venster toe
|
||||
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Venster titel - sleep om venster te beweeg
|
||||
STR_TOOLTIP_SHADE :{BLACK}Skerm venster - Slegs die titelstaaf sal vertoon word
|
||||
STR_TOOLTIP_DEBUG :{BLACK}Toon NewGRF debug informasie
|
||||
STR_TOOLTIP_STICKY :{BLACK}Merk die venster as ontoemaakbaar met die"Sluit Alle Vensters" sleutel
|
||||
STR_TOOLTIP_RESIZE :{BLACK}Kliek en sleep om venster te vergroot
|
||||
STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Tokkel groot/klein venster groote
|
||||
@@ -284,7 +281,6 @@ STR_SORT_BY_RATING_MIN :Laagte vrag gra
|
||||
STR_SORT_BY_ENGINE_ID :EngineID (klassieke sorteer)
|
||||
STR_SORT_BY_COST :Koste
|
||||
STR_SORT_BY_POWER :Krag
|
||||
STR_SORT_BY_TRACTIVE_EFFORT :Trekker inspanning
|
||||
STR_SORT_BY_INTRO_DATE :Inleiding Datum
|
||||
STR_SORT_BY_RUNNING_COST :Loopkoste
|
||||
STR_SORT_BY_POWER_VS_RUNNING_COST :Krag/Loopkoste
|
||||
@@ -334,7 +330,6 @@ STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Nywerhei
|
||||
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Pad konstruksie
|
||||
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Plant bome
|
||||
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Plaas teken
|
||||
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Plaas voorwerp. Shift skakel tussen bou/aanduiding koste beraming
|
||||
|
||||
############ range for SE file menu starts
|
||||
STR_SCENEDIT_FILE_MENU_SAVE_SCENARIO :Stoor draaiboek
|
||||
@@ -349,7 +344,6 @@ STR_SCENEDIT_FILE_MENU_QUIT :Verlaat
|
||||
STR_SETTINGS_MENU_GAME_OPTIONS :Spel opsies
|
||||
STR_SETTINGS_MENU_DIFFICULTY_SETTINGS :Moelikheid stellings
|
||||
STR_SETTINGS_MENU_CONFIG_SETTINGS :Gevorderde stellings
|
||||
STR_SETTINGS_MENU_AI_SETTINGS :AI instellings
|
||||
STR_SETTINGS_MENU_NEWGRF_SETTINGS :NewGRF stellings
|
||||
STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :Deursigtigheid opsies
|
||||
STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED :Dorp name vertoon
|
||||
@@ -444,10 +438,8 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Tokkel terminaal
|
||||
STR_ABOUT_MENU_AI_DEBUG :AI ontfout
|
||||
STR_ABOUT_MENU_SCREENSHOT :Skermskoot (Ctrl-S)
|
||||
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Vergrote skermskoot
|
||||
STR_ABOUT_MENU_GIANT_SCREENSHOT :Groot Skermskoot (Ctrl+G)
|
||||
STR_ABOUT_MENU_ABOUT_OPENTTD :Oor 'OpenTTD'
|
||||
STR_ABOUT_MENU_SPRITE_ALIGNER :"Sprite" rigter
|
||||
############ range ends here
|
||||
|
||||
############ range for days starts (also used for the place in the highscore window)
|
||||
@@ -529,9 +521,6 @@ STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Maatskap
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Vrag Betaalings Grade
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINYFONT}{BLACK}Dae in deurtog
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINYFONT}{BLACK}Betaaling vir aflewering van 10 eenhuide (of 10,000 liters) van vrag 'n afstand van 20 blokkies
|
||||
STR_GRAPH_CARGO_ENABLE_ALL :{TINYFONT}{BLACK}Skakel alles aan
|
||||
STR_GRAPH_CARGO_DISABLE_ALL :{TINYFONT}{BLACK}Skakel alles af
|
||||
STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL :{BLACK}Toon alle vragte op die vrag betalingskostes grafiek
|
||||
STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Skakel grafiek vir vrag tipe aan/af
|
||||
STR_GRAPH_CARGO_PAYMENT_CARGO :{TINYFONT}{BLACK}{STRING}
|
||||
|
||||
@@ -560,7 +549,6 @@ STR_PERFORMANCE_DETAIL_KEY :{BLACK}Aanwyse
|
||||
STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRCOMPACT}/{CURRCOMPACT})
|
||||
STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA})
|
||||
STR_PERFORMANCE_DETAIL_PERCENT :{WHITE}{NUM}%
|
||||
STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP :{BLACK}Kyk besonderhede van hierdie maatskappy
|
||||
############ Those following lines need to be in this order!!
|
||||
STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}Voertuie:
|
||||
STR_PERFORMANCE_DETAIL_STATIONS :{BLACK}Stasies:
|
||||
@@ -697,7 +685,6 @@ STR_SMALLMAP_LEGENDA_SNOW :{TINYFONT}{BLAC
|
||||
STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}Tokkel dorp name aan/af op kaart
|
||||
STR_SMALLMAP_CENTER :{BLACK}Senter die kleinkaart op die huidige posisie
|
||||
STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRING} ({NUM})
|
||||
STR_SMALLMAP_COMPANY :{TINYFONT}{COMPANY}
|
||||
STR_SMALLMAP_TOWN :{TINYFONT}{WHITE}{TOWN}
|
||||
STR_SMALLMAP_DISABLE_ALL :{BLACK}Sper alle
|
||||
STR_SMALLMAP_ENABLE_ALL :{BLACK}Ontsper alle
|
||||
@@ -705,8 +692,6 @@ STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Vertoon
|
||||
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_INDUSTRIES :{BLACK}Moet nie enige nywerheide op die kaart vertoon
|
||||
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Vertoon alle nywerheide op die kaart
|
||||
STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Tokkel vertooning van hoogtekaart
|
||||
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}Vertoon geen maatskappy eiendom op die kaart
|
||||
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Vertoon alle maatskappy eiendom op die kaart
|
||||
|
||||
# Status bar messages
|
||||
STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Wys laaste boodskap of nuus verslag
|
||||
@@ -1025,8 +1010,6 @@ STR_DIFFICULTY_LEVEL_SETTING_CITY_APPROVAL :{LTBLUE}Stad ra
|
||||
############ range for difficulty settings ends
|
||||
|
||||
STR_NONE :Geen
|
||||
STR_FUNDING_ONLY :Befondsing alleen
|
||||
STR_MINIMAL :Minimale
|
||||
STR_NUM_VERY_LOW :Baie laag
|
||||
STR_NUM_LOW :Laag
|
||||
STR_NUM_NORMAL :Normaal
|
||||
@@ -1073,6 +1056,7 @@ STR_REVERSE_AT_END_OF_LINE_ONLY :Slegs op die en
|
||||
|
||||
STR_DISASTERS_OFF :Af
|
||||
STR_DISASTERS_ON :Aan
|
||||
|
||||
STR_CITY_APPROVAL_PERMISSIVE :Permissief
|
||||
STR_CITY_APPROVAL_TOLERANT :Toelaatbaar
|
||||
STR_CITY_APPROVAL_HOSTILE :Vyandelik
|
||||
@@ -1086,17 +1070,10 @@ STR_CONFIG_SETTING_CAPTION :{WHITE}Gevorder
|
||||
STR_CONFIG_SETTING_OFF :Af
|
||||
STR_CONFIG_SETTING_ON :Aan
|
||||
STR_CONFIG_SETTING_DISABLED :gestrem
|
||||
|
||||
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_BUILDONSLOPES :{LTBLUE}Laat bou op skuinstes en kusse toe: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Laat terraforming toe onder geboue, spoore, ens. (autoslope): {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}Laat meer realisties grootte opvangsgebied toe: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}Laat verwydering van meer stad-besite paaie, bruge, ens toe: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_NONE :Geen
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_ORIGINAL :Oorspronlik
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_REALISTIC :Realisties
|
||||
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :{LTBLUE}Trein versnelling model: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_ORIGINAL :Oorspronklik
|
||||
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_REALISTIC :Realisties
|
||||
@@ -1127,7 +1104,6 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :{LTBLUE}Pad voe
|
||||
STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}Was skerm as muis by die kant is: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_BRIBE :{LTBLUE}Laat omkooping van die plaaslike raad toe: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :{LTBLUE}Laat die koop van eksklusief vervoer regte toe: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD :{LTBLUE}Laat befondsing toe van plaaslike pad heropbou: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Laat die stuur van geld na ander maatskappye toe: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Gewig vermenivoud vir vrag om swaar treine te simuleer: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Vliegtuig spoed faktor: {ORANGE}1 / {STRING}
|
||||
@@ -1143,7 +1119,6 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Die vera
|
||||
|
||||
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :{LTBLUE}Lughawes verval nooit nie: {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_WARN_LOST_VEHICLE :{LTBLUE}Waarsku indien voertuig verloor: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW :{LTBLUE}Bespreek voertuig se opdrae: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :nee
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :ja, maar sluit uit gestop voertuie
|
||||
@@ -1212,8 +1187,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kort (31-12-200
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31)
|
||||
|
||||
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :{LTBLUE}Outomaties pouse wanneer om te begin 'n nuwe speletjie: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :geen aksies
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :alle aksies
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :{LTBLUE}Gebruik die voorloopende voertuiglys: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_OFF :Af
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_OWN :Eie maatskappy
|
||||
@@ -1233,7 +1206,6 @@ STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :{LTBLUE}Wys ger
|
||||
STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :{LTBLUE}Hou bou gereedskap aktief na gebruik: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_EXPENSES_LAYOUT :{LTBLUE}Groep uitgawes in maatskappy finansies venster: {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :{LTBLUE}Versper infrastruktuur gebou as geen geskikte voertuie beskikbaar is nie: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_TRAINS :{LTBLUE}Max treine per speler: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :{LTBLUE}Max pad voertuie per speler: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_AIRCRAFT :{LTBLUE}Max vliegtuie per speler: {ORANGE}{STRING}
|
||||
@@ -1299,9 +1271,6 @@ STR_CONFIG_SETTING_TOOLBAR_POS :{LTBLUE}Posisie
|
||||
STR_CONFIG_SETTING_TOOLBAR_POS_LEFT :Links
|
||||
STR_CONFIG_SETTING_TOOLBAR_POS_CENTER :Senter
|
||||
STR_CONFIG_SETTING_TOOLBAR_POS_RIGHT :Regs
|
||||
STR_CONFIG_SETTING_STATUSBAR_POS_LEFT :Links
|
||||
STR_CONFIG_SETTING_STATUSBAR_POS_CENTER :Middel
|
||||
STR_CONFIG_SETTING_STATUSBAR_POS_RIGHT :Regs
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS :{LTBLUE}Venster slag straal: {ORANGE}{STRING} px
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :{LTBLUE}Venster slag straal: {ORANGE}strem
|
||||
STR_CONFIG_SETTING_SOFT_LIMIT :{LTBLUE}Venster sagte beperking (nie taai): {ORANGE}{STRING}
|
||||
@@ -1335,7 +1304,6 @@ STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Treine
|
||||
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Dorpe
|
||||
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Nywerhede
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}Padvinder vir treine: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_YAPF :YAPF {BLUE}(Aanbevole)
|
||||
@@ -1346,7 +1314,6 @@ STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :{LTBLUE}Padvind
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :Oorspronklike {BLUE}(Aanbevole)
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(Nie aanbevole nie)
|
||||
STR_CONFIG_SETTING_REVERSE_AT_SIGNALS :{LTBLUE}Outomatiese omkeer op seine: {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Verander stel waarde
|
||||
|
||||
@@ -1426,7 +1393,6 @@ STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Sub-artiese lan
|
||||
STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Sub-tropiese landskap
|
||||
STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :Speelgoedland landskap
|
||||
STR_CHEAT_CHANGE_DATE :{LTBLUE}Verander datum: {ORANGE} {DATE_SHORT}
|
||||
STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Verander huidige jaar
|
||||
STR_CHEAT_SETUP_PROD :{LTBLUE}Ontsper modifisering van produksie waardes: {ORANGE}{STRING}
|
||||
|
||||
# Livery window
|
||||
@@ -1682,7 +1648,6 @@ STR_NETWORK_CONNECTING_SPECIAL_1 :{BLACK}Haal spe
|
||||
STR_NETWORK_CONNECTING_SPECIAL_2 :{BLACK}Haal maatskappy informasie...
|
||||
############ End of leave-in-this-order
|
||||
STR_NETWORK_CONNECTING_WAITING :{BLACK}{NUM} Klient{P "" e} voor jou
|
||||
STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}{BYTES} afgelaai tot dusver
|
||||
STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} afgelaai dusver
|
||||
|
||||
STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Loskoppel
|
||||
@@ -1954,7 +1919,6 @@ STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Kies Spo
|
||||
STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Selekteer Pad Brug
|
||||
STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Brug seleksie - kliek op jou verkose brug om dit te bou
|
||||
STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
|
||||
STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY}
|
||||
STR_BRIDGE_NAME_SUSPENSION_STEEL :Suspensie, Staal
|
||||
STR_BRIDGE_NAME_GIRDER_STEEL :Balk, Staal
|
||||
STR_BRIDGE_NAME_CANTILEVER_STEEL :Vrydraer, Staal
|
||||
@@ -2029,7 +1993,6 @@ STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}Bou lugh
|
||||
STR_STATION_BUILD_AIRPORT_CAPTION :{WHITE}Lughawe Keuse
|
||||
STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}Kies groote/tipe van lughawe
|
||||
STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}Lughawe klas
|
||||
STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}Uitleg {NUM}
|
||||
|
||||
STR_AIRPORT_SMALL :Klein
|
||||
STR_AIRPORT_CITY :Dorp
|
||||
@@ -2056,10 +2019,7 @@ STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Maak lan
|
||||
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Koop land vir gebruk in die toekoms
|
||||
|
||||
# Object construction window
|
||||
STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Kies klas van die voorwerp te bou
|
||||
STR_OBJECT_BUILD_SIZE :{BLACK}Grootte: {GOLD}{NUM} x {NUM} teels
|
||||
|
||||
STR_OBJECT_CLASS_LTHS :Vuurtorings
|
||||
|
||||
# Tree planting window (last two for SE only)
|
||||
STR_PLANT_TREE_CAPTION :{WHITE}Boome
|
||||
@@ -2126,8 +2086,6 @@ STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Bou
|
||||
STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Fonds
|
||||
|
||||
# Industry cargoes window
|
||||
STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Aanvaar nywerhede
|
||||
STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Huise
|
||||
|
||||
# Land area window
|
||||
STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Land gebied informasie
|
||||
@@ -2145,8 +2103,6 @@ STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}Koördin
|
||||
STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}Gebou: {LTBLUE}{DATE_LONG}
|
||||
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stasie klas: {LTBLUE}{STRING}
|
||||
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stasie tiepe: {LTBLUE}{STRING}
|
||||
STR_LAND_AREA_INFORMATION_AIRPORT_CLASS :{BLACK}Lughawe klas: {LTBLUE}{STRING}
|
||||
STR_LAND_AREA_INFORMATION_AIRPORT_NAME :{BLACK}Lughawe naam: {LTBLUE}{STRING}
|
||||
STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Lughawe teel naam: {LTBLUE}{STRING}
|
||||
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NuweGRF: {LTBLUE}{STRING}
|
||||
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Vrag aangeneem: {LTBLUE}
|
||||
@@ -2264,11 +2220,6 @@ STR_SAVELOAD_DELETE_BUTTON :{BLACK}Uitvee
|
||||
STR_SAVELOAD_DELETE_TOOLTIP :{BLACK}Vee uit die huidige verkieste spaar-speletjie
|
||||
STR_SAVELOAD_SAVE_BUTTON :{BLACK}Spaar
|
||||
STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Spaar die huidige speletjie, met die verkieste naame
|
||||
STR_SAVELOAD_LOAD_BUTTON :{BLACK}Laai
|
||||
STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Spel Besonderhede
|
||||
STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Geen inligting beskikbaar
|
||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
||||
|
||||
STR_SAVELOAD_OSKTITLE :{BLACK}Tik 'n naam in vir die stoor-speeletjie
|
||||
|
||||
@@ -2343,8 +2294,6 @@ STR_GENERATION_PREPARING_GAME :{BLACK}Voorbere
|
||||
|
||||
# NewGRF settings
|
||||
STR_NEWGRF_SETTINGS_CAPTION :{WHITE}NewGRF stellings
|
||||
STR_NEWGRF_SETTINGS_INFO_TITLE :{WHITE}Gedetaileerde NewGRF inligting
|
||||
STR_NEWGRF_SETTINGS_ACTIVE_LIST :{WHITE}Aktiewe NewGRF lêers
|
||||
STR_NEWGRF_FILTER_TITLE :{ORANGE}Filter string:
|
||||
STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP :{BLACK}Laai die gekose voorafstel
|
||||
STR_NEWGRF_SETTINGS_PRESET_SAVE :{BLACK}Stoor voorafstel
|
||||
@@ -2374,7 +2323,6 @@ STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Kyk of d
|
||||
|
||||
STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Lêer naam: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_VERSION :{BLACK}Weergawe: {SILVER}{NUM}
|
||||
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Pallet: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parameters: {SILVER}{STRING}
|
||||
@@ -2382,19 +2330,13 @@ STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Paramete
|
||||
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Geen informasie beskikbaar
|
||||
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Gelyke lêer nie gevind nie
|
||||
STR_NEWGRF_SETTINGS_DISABLED :{RED}Gestrem
|
||||
STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Onversoenbaar met hierdie weergawe van OpenTTD
|
||||
|
||||
STR_NEWGRF_SETTINGS_PARAMETER_QUERY :{BLACK}Invoer NewGRF parameters
|
||||
|
||||
# NewGRF parameters window
|
||||
STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Verander NewGRF parameters
|
||||
STR_NEWGRF_PARAMETERS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
|
||||
# NewGRF inspect window
|
||||
STR_NEWGRF_INSPECT_CAPTION :{WHITE}Inspekteer - {STRING}
|
||||
|
||||
STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT :{STRING} by {HEX}
|
||||
STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Spoor tipe
|
||||
|
||||
|
||||
# Sprite aligner window
|
||||
@@ -2436,8 +2378,6 @@ STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Vermis
|
||||
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Unpausing kan veroorsaak dat OpenTTD bots. Moet nie daaropeenvolgende botsings verslae rapporteer nie. {}Will jy rêrig unpause?
|
||||
|
||||
# NewGRF status
|
||||
STR_NEWGRF_LIST_NONE :Geen
|
||||
STR_NEWGRF_LIST_MISSING :{RED}Vermis leêrs
|
||||
|
||||
# NewGRF 'it's broken' warnings
|
||||
STR_NEWGRF_BROKEN :{WHITE}Die gedrag van NewGRF '{0:STRING}' kan moontlik desinkroniesasies en/of program botsings veroorsaak.
|
||||
@@ -2449,7 +2389,6 @@ STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Vrag/her
|
||||
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' het 'n eindelose herhaling in die produksie callback veroorsaak.
|
||||
|
||||
# 'User removed essential NewGRFs'-placeholders for stuff without specs
|
||||
STR_NEWGRF_INVALID_CARGO_ABBREV :??
|
||||
|
||||
# Sign list window
|
||||
STR_SIGN_LIST_CAPTION :{WHITE}Teken Lys - {COMMA} Teken{P "" s}
|
||||
@@ -2666,7 +2605,6 @@ STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTR
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Produksie verlede maand:
|
||||
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO}{STRING}{BLACK} ({COMMA}% uitgevoer)
|
||||
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Senter skerm op nywerheid
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produksie vlak: {YELLOW}{COMMA}%
|
||||
|
||||
############ range for requires starts
|
||||
STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Vereis: {YELLOW}{STRING}{STRING}
|
||||
@@ -2682,7 +2620,6 @@ STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produsee
|
||||
############ range for produces ends
|
||||
|
||||
STR_CONFIG_GAME_PRODUCTION :{WHITE}Verander produksie
|
||||
STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Verander produksie vlakke (persentasie, tot 800%)
|
||||
|
||||
# Vehicle lists
|
||||
STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} Trein{P "" e}
|
||||
@@ -2800,10 +2737,7 @@ STR_QUERY_RENAME_SHIP_TYPE_CAPTION :{WHITE}Hernoem
|
||||
STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}Hernoem vliegtuig tipe
|
||||
|
||||
# Depot window
|
||||
STR_DEPOT_CAPTION :{WHITE}{DEPOT}
|
||||
|
||||
STR_DEPOT_RENAME_TOOLTIP :{BLACK}Verander naam van depot
|
||||
STR_DEPOT_RENAME_DEPOT_CAPTION :Hernoem depot
|
||||
|
||||
STR_DEPOT_NO_ENGINE :{BLACK}-
|
||||
STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE}{STRING}
|
||||
@@ -2943,7 +2877,7 @@ STR_VEHICLE_VIEW_TRAIN_IGNORE_SIGNAL_TOOLTIP :{BLACK}Forseer
|
||||
|
||||
STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Herstel trein om 'n ander vrag tipe te ontvoer
|
||||
STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Herpas pad voertuig om 'n ander vrag tipe te ontvoer
|
||||
STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}Herstel vragskip om 'n ander vrag tipe te vervoer
|
||||
STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}Herstel vrag skip om 'n ander vrag tipe te ontvoer
|
||||
STR_VEHICLE_VIEW_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Hestel vliegtuig om 'n ander vrag tipe te ontvoer
|
||||
|
||||
STR_VEHICLE_VIEW_TRAIN_REVERSE_TOOLTIP :{BLACK}Omkeer rigting van trein
|
||||
@@ -2977,14 +2911,8 @@ STR_VEHICLE_STATUS_TRAIN_STUCK :{ORANGE}Wag vir
|
||||
STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL :{LTBLUE}Op pad na {STATION}, {VELOCITY}
|
||||
STR_VEHICLE_STATUS_NO_ORDERS_VEL :{LTBLUE}Geen opdrae, {VELOCITY}
|
||||
STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}Op pad na {WAYPOINT}, {VELOCITY}
|
||||
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL :{ORANGE}Op pad na {DEPOT}, {VELOCITY}
|
||||
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SERVICE_VEL :{LTBLUE}Diens by {DEPOT}, {VELOCITY}
|
||||
|
||||
# Vehicle stopped/started animations
|
||||
STR_VEHICLE_COMMAND_STOPPED_SMALL :{TINYFONT}{RED}Gestop
|
||||
STR_VEHICLE_COMMAND_STOPPED :{RED}Gestop
|
||||
STR_VEHICLE_COMMAND_STARTED_SMALL :{TINYFONT}{GREEN}Begin
|
||||
STR_VEHICLE_COMMAND_STARTED :{GREEN}Begin
|
||||
|
||||
# Vehicle details
|
||||
STR_VEHICLE_DETAILS_CAPTION :{WHITE}{VEHICLE} (Aanwyse)
|
||||
@@ -3137,13 +3065,11 @@ STR_ORDERS_SKIP_TOOLTIP :{BLACK}Sprong d
|
||||
|
||||
STR_ORDERS_DELETE_BUTTON :{BLACK}Uit vee
|
||||
STR_ORDERS_DELETE_TOOLTIP :{BLACK}Vee uit die verlig opdrag
|
||||
STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Verwyder alle opdragte
|
||||
|
||||
STR_ORDERS_GO_TO_BUTTON :{BLACK}Gaan Na
|
||||
STR_ORDER_GO_TO_NEAREST_DEPOT :Gaan na naaste diensstasie
|
||||
STR_ORDER_GO_TO_NEAREST_HANGAR :Gaan na naaste vliegtuigloods
|
||||
STR_ORDER_CONDITIONAL :Konditioneele bevel oor sien
|
||||
STR_ORDER_SHARE :Deel opdragte
|
||||
STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Invoeg 'n nuwe opdrag voor die verlig opdrag, of byvoeg na einde van lys
|
||||
STR_ORDERS_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Sit 'n bevorderde bevel in
|
||||
|
||||
@@ -3162,7 +3088,6 @@ STR_ORDER_TRAIN_DEPOT :Trein Diensstas
|
||||
STR_ORDER_ROAD_VEHICLE_DEPOT :Pad Voertuig Diensstasie
|
||||
STR_ORDER_SHIP_DEPOT :Sleep Diensstasie
|
||||
STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING}
|
||||
STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT}
|
||||
|
||||
STR_ORDER_REFIT_ORDER :(Herpas na {STRING})
|
||||
STR_ORDER_REFIT_STOP_ORDER :(Herpas na {STRING} en stop)
|
||||
@@ -3183,9 +3108,8 @@ STR_ORDER_TRANSFER_FULL_LOAD :(Verplaas en wa
|
||||
STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Verplaas en wag vir eenigge vol vrag)
|
||||
STR_ORDER_TRANSFER_NO_LOAD :(Verplaas en verlaat leeg)
|
||||
STR_ORDER_NO_UNLOAD :(Geen aflaai en vat vrag)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD :(Geen aflaai en wag vir vol vrag
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Geen aflaai en wag vir enige vol vrag)
|
||||
STR_ORDER_NO_UNLOAD_NO_LOAD :(Geen aflaai en geen laai)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD :(Geen aflaai en wag vir vol vra)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Geen aflaay en wag vir eenigge vol vrag)
|
||||
|
||||
STR_ORDER_STOP_LOCATION_NEAR_END :[naby einde]
|
||||
STR_ORDER_STOP_LOCATION_MIDDLE :[middle]
|
||||
@@ -3212,7 +3136,7 @@ STR_TIMETABLE_AND_TRAVEL_FOR :en reis vir {ST
|
||||
STR_TIMETABLE_DAYS :{COMMA} da{P g e}
|
||||
STR_TIMETABLE_TICKS :{COMMA} tick{P "" e}
|
||||
|
||||
STR_TIMETABLE_TOTAL_TIME :{BLACK}Die rooster sal {STRING} neem om te voltooi
|
||||
STR_TIMETABLE_TOTAL_TIME :{BLACK}Die rooster sal {STRING} vat om te verklaar
|
||||
STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Die rooster sal te minste {STRING} vat om te verklaar (nie alles gerooster nie)
|
||||
|
||||
STR_TIMETABLE_STATUS_ON_TIME :{BLACK}Die voertuig loop tans op tyd
|
||||
@@ -3231,7 +3155,7 @@ STR_TIMETABLE_CLEAR_TIME :{BLACK}Reinig T
|
||||
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Vee uit die totaal van tyd vir die gespesiveerde opdrag
|
||||
|
||||
STR_TIMETABLE_RESET_LATENESS :{BLACK}Herstel Laat Teller
|
||||
STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Herstel die laat teller, so dat die voertuig op tyd is
|
||||
STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Herstel die laat teller, so dat die voertuig op tyd is
|
||||
|
||||
STR_TIMETABLE_AUTOFILL :{BLACK}Outovul
|
||||
STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Vul die rooster outomaties in met die waardes van die volgende reis (CTRL-Kliek om die wagtyd te probeer hou)
|
||||
@@ -3261,7 +3185,6 @@ STR_AI_DEBUG_SETTINGS :{BLACK}KI stell
|
||||
STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}Verander die stellings van die KI
|
||||
STR_AI_DEBUG_RELOAD :{BLACK}Herlaai AI
|
||||
STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}Maak die AI dood, herlaai die skrif en herlaai die AI
|
||||
STR_AI_DEBUG_CONTINUE :{BLACK}Gaan voort
|
||||
|
||||
STR_ERROR_NO_AI :{WHITE}OpenTTD is gebou sonder KI ondersteuning...
|
||||
STR_ERROR_NO_AI_SUB :{WHITE}... geen KI's is beskikbaar!
|
||||
@@ -3272,7 +3195,7 @@ STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}Die AI
|
||||
|
||||
# AI configuration window
|
||||
STR_AI_CONFIG_CAPTION :{WHITE}AI Konfigurasie
|
||||
STR_AI_CONFIG_LIST_TOOLTIP :{BLACK}Alle AIs wat in die volgende spel gelaai gaan word
|
||||
STR_AI_CONFIG_LIST_TOOLTIP :{BLACK}Alle AIs wat in die volgende spel gelaai gaan word
|
||||
STR_AI_CONFIG_HUMAN_PLAYER :Mens Speler
|
||||
STR_AI_CONFIG_RANDOM_AI :Lukraak AI
|
||||
|
||||
@@ -3303,7 +3226,6 @@ STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Moenie A
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}AI Parameters
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK}Maak toe
|
||||
STR_AI_SETTINGS_RESET :{BLACK}Herstel
|
||||
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
|
||||
|
||||
# Vehicle loading indicators
|
||||
STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
|
||||
@@ -3336,7 +3258,6 @@ STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Spaarspeletjie
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Lêer nie leesbare
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :Lêer nie skryfbaar
|
||||
STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Data integriteit het misluk
|
||||
STR_GAME_SAVELOAD_NOT_AVAILABLE :<nie beskikbaar>
|
||||
STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}Speeletjie was gesoor in 'n weergawe sonder trem toelaating. Alle tremme was verwyder.
|
||||
|
||||
# Map generation messages
|
||||
@@ -3344,7 +3265,7 @@ STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Kaart ge
|
||||
STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... daar is geen dorp in die draaiboek
|
||||
|
||||
STR_ERROR_PNGMAP :{WHITE}Kan nie landskap van PNG laai nie...
|
||||
STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... leêr nie gevind nie
|
||||
STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... lêer nie gevind nie.
|
||||
STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... kan nie prent tipe verdoel. 8 of 24-bit PNG prent vereis.
|
||||
STR_ERROR_PNGMAP_MISC :{WHITE}... iets het verkeerd gegaan. Jammer. (moontlik korrup lêer)
|
||||
|
||||
@@ -3378,7 +3299,6 @@ STR_ERROR_SITE_UNSUITABLE :{WHITE}... ligg
|
||||
STR_ERROR_ALREADY_BUILT :{WHITE}... alreeds gebou
|
||||
STR_ERROR_OWNED_BY :{WHITE}... besit deur {STRING}
|
||||
STR_ERROR_AREA_IS_OWNED_BY_ANOTHER :{WHITE}... gebied is besit deur 'n ander maatskappy
|
||||
STR_ERROR_CLEARING_LIMIT_REACHED :{WHITE}... teël skoonmaak limiet bereik
|
||||
STR_ERROR_NAME_MUST_BE_UNIQUE :{WHITE}Naam moet unike wees
|
||||
STR_ERROR_GENERIC_OBJECT_IN_THE_WAY :{WHITE}{1:STRING} in die pad
|
||||
|
||||
@@ -3405,7 +3325,7 @@ STR_ERROR_CAN_T_CHANGE_PRESIDENT :{WHITE}Bestuurd
|
||||
STR_ERROR_MAXIMUM_PERMITTED_LOAN :{WHITE}... maksimum toegelaate lening groote is {CURRENCY}
|
||||
STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}Kan nie meer geld leen nie...
|
||||
STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... geen lening om terug te betaal
|
||||
STR_ERROR_CURRENCY_REQUIRED :{WHITE}... {CURRENCY} vereis
|
||||
STR_ERROR_CURRENCY_REQUIRED :{WHITE}...{CURRENCY} vereis
|
||||
STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Kan nie lening terugbetaal nie...
|
||||
STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kan nie geld wat van die bank geleen is weggee nie...
|
||||
STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Maatskappy kan nie aangekoop word nie...
|
||||
@@ -3418,7 +3338,6 @@ STR_ERROR_PROTECTED :{WHITE}Die maat
|
||||
STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kan nie enige stede bou nie
|
||||
STR_ERROR_CAN_T_RENAME_TOWN :{WHITE}Kan nie dorp hernoem nie...
|
||||
STR_ERROR_CAN_T_FOUND_TOWN_HERE :{WHITE}Dorp kan nie hier gebou word nie...
|
||||
STR_ERROR_CAN_T_EXPAND_TOWN :{WHITE}Kan nie dorp uitbrei...
|
||||
STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... te naby aan rand van kaart
|
||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... te naby aan 'n ander dorp
|
||||
STR_ERROR_TOO_MANY_TOWNS :{WHITE}... te veel dorpe
|
||||
@@ -3474,7 +3393,6 @@ STR_ERROR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Kan nie
|
||||
STR_ERROR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Kan nie passasier stasie verwyder nie...
|
||||
STR_ERROR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}Kan nie vrag stasie verwyder nie...
|
||||
STR_ERROR_MUST_REMOVE_ROAD_STOP_FIRST :{WHITE}Moet eers pad stop verwyder
|
||||
STR_ERROR_THERE_IS_NO_STATION :{WHITE}... daar is geen stasie hier nie
|
||||
|
||||
STR_ERROR_MUST_DEMOLISH_RAILROAD :{WHITE}Moet eers spoorweg stasie afbreek
|
||||
STR_ERROR_MUST_DEMOLISH_BUS_STATION_FIRST :{WHITE}Moet eers bus stasie afbreek
|
||||
@@ -3503,7 +3421,6 @@ STR_ERROR_CAN_T_BUILD_ROAD_DEPOT :{WHITE}Kan nie
|
||||
STR_ERROR_CAN_T_BUILD_TRAM_DEPOT :{WHITE}Kan nie trem voertuig depot hier bou nie...
|
||||
STR_ERROR_CAN_T_BUILD_SHIP_DEPOT :{WHITE}Skip depot kan nie hier gebou word nie...
|
||||
|
||||
STR_ERROR_CAN_T_RENAME_DEPOT :{WHITE}Kan nie depot hernoem nie...
|
||||
|
||||
STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}Trein moet binne in 'n depot gestop word
|
||||
STR_ERROR_ROAD_VEHICLE_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... moet gestop binne 'n pad voertuig depot wees
|
||||
@@ -3539,8 +3456,6 @@ STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Kan nie
|
||||
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Kan nie spoore vanaf hier verwyder nie...
|
||||
STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}Kan nie seinligte vanaf hier verwyder nie...
|
||||
STR_ERROR_SIGNAL_CAN_T_CONVERT_SIGNALS_HERE :{WHITE}Kan nie seine hier verander nie...
|
||||
STR_ERROR_THERE_IS_NO_RAILROAD_TRACK :{WHITE}... daar is geen trein spoor
|
||||
STR_ERROR_THERE_ARE_NO_SIGNALS :{WHITE}... daar is geen seine
|
||||
|
||||
STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Kan nie spoor tipe hier verdoel nie...
|
||||
|
||||
@@ -3551,7 +3466,6 @@ STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}Kan nie
|
||||
STR_ERROR_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Kan nie tremweg hier bou nie...
|
||||
STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Kan nie pad vanaf hier verwyder nie...
|
||||
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Kan nie tremweg van hier af verwyder nie...
|
||||
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... daar is geen tremweg nie
|
||||
|
||||
# Waterway construction errors
|
||||
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Kan nie kanaale hier bou nie...
|
||||
@@ -3564,7 +3478,6 @@ STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}Kan nie
|
||||
|
||||
# Tree related errors
|
||||
STR_ERROR_TREE_ALREADY_HERE :{WHITE}... boom reeds daar
|
||||
STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... verkeerde terrein vir boom tipe
|
||||
STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}Kan nie boom hier beplant nie...
|
||||
|
||||
# Bridge related errors
|
||||
@@ -3575,7 +3488,6 @@ STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT :{WHITE}Brug hoo
|
||||
STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Brug is te laag vie die daal
|
||||
STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Begin en einde moet in lyn wees
|
||||
STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... albei brug eindes moet op land wees
|
||||
STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... brug te lank
|
||||
|
||||
# Tunnel related errors
|
||||
STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Tonnel kan nie daar gebou word nie...
|
||||
@@ -3584,10 +3496,8 @@ STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Moet eer
|
||||
STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Ander tonnel in die pad
|
||||
STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}Tonnel so op die einde van die kaart eindig
|
||||
STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}Kan nie daal vir ander einde van tonnel te uitgrawe nie
|
||||
STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... tonnel te lank
|
||||
|
||||
# Object related errors
|
||||
STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... te veel voorwerpe
|
||||
STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Voorwerp in die pad
|
||||
STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... maatskappy hoofkwartier in die pad
|
||||
STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}Die land area kan nie aangekoop word nie...
|
||||
@@ -3650,7 +3560,6 @@ STR_ERROR_AIRCRAFT_NOT_AVAILABLE :{WHITE}Vliegtui
|
||||
STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Te veel voertuie in spel
|
||||
STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Kan nie diens interval verander nie...
|
||||
|
||||
STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... voertuig is vernietig
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kan nie trein forseer om sein te vermy op gevaar...
|
||||
@@ -4081,12 +3990,6 @@ STR_FORMAT_INDUSTRY_NAME :{TOWN} {STRING}
|
||||
STR_FORMAT_WAYPOINT_NAME :Wegpunt {TOWN}
|
||||
STR_FORMAT_WAYPOINT_NAME_SERIAL :Wegpunt {TOWN} #{COMMA}
|
||||
|
||||
STR_FORMAT_DEPOT_NAME_TRAIN :{TOWN} Trein Depot
|
||||
STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :{TOWN} Trein Depot #{COMMA}
|
||||
STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :{TOWN} Pad Voertuig Depot
|
||||
STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :{TOWN} Pad Voertuig Depot #{COMMA}
|
||||
STR_FORMAT_DEPOT_NAME_SHIP :{TOWN} Skip Depot
|
||||
STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :{TOWN} Skip Depot #{COMMA}
|
||||
|
||||
STR_UNKNOWN_STATION :onbekende stasie
|
||||
STR_DEFAULT_SIGN_NAME :Teken
|
||||
@@ -4113,7 +4016,6 @@ STR_VIEWPORT_WAYPOINT_TINY :{TINYFONT}{WAYP
|
||||
# Simple strings to get specific types of data
|
||||
STR_COMPANY_NAME :{COMPANY}
|
||||
STR_COMPANY_NAME_COMPANY_NUM :{COMPANY} {COMPANYNUM}
|
||||
STR_DEPOT_NAME :{DEPOT}
|
||||
STR_ENGINE_NAME :{ENGINE}
|
||||
STR_GROUP_NAME :{GROUP}
|
||||
STR_INDUSTRY_NAME :{INDUSTRY}
|
||||
@@ -4159,10 +4061,8 @@ STR_TINY_BLACK_STATION :{TINYFONT}{BLAC
|
||||
STR_BLACK_STRING :{BLACK}{STRING}
|
||||
STR_BLACK_RAW_STRING :{BLACK}{STRING}
|
||||
STR_GREEN_STRING :{GREEN}{STRING}
|
||||
STR_ORANGE_STRING :{ORANGE}{STRING}
|
||||
STR_RED_STRING :{RED}{STRING}
|
||||
STR_WHITE_STRING :{WHITE}{STRING}
|
||||
STR_TINY_BLACK_HEIGHT :{TINYFONT}{BLACK}{HEIGHT}
|
||||
STR_TINY_BLACK_VEHICLE :{TINYFONT}{BLACK}{VEHICLE}
|
||||
STR_TINY_RIGHT_ARROW :{TINYFONT}{RIGHTARROW}
|
||||
|
||||
|
||||
+73
-120
@@ -236,7 +236,7 @@ STR_TOOLTIP_RESIZE :{BLACK}اضغط
|
||||
STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}تبديل حجم الاطار كبير / صغير
|
||||
STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST :{BLACK}شريط العرض- فوق /تحت
|
||||
STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}عمود التحريك - يمين/يسار
|
||||
STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}هدم المباني و غيرها في مربع من الأرض.
|
||||
STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}هدم المباني و غيرها
|
||||
|
||||
# Query window
|
||||
STR_BUTTON_DEFAULT :{BLACK}افتراضي
|
||||
@@ -297,22 +297,22 @@ STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK} حفظ
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}عرض الخريطة, لقطات اضافية , العلامات
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}عرض دليل المدن
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}اظهار العروض
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}عرض قائمة محطات الشركة.
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}عرض محطات الشركة
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}عرض السجل المالي للشركة
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}عرض معلومات الشركة
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}عرض المخططات
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}عرض جدول ترتيب الشركات
|
||||
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}موّل انشاء مصنع / عرض كل المصانع
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}عرض قائمة قطارات الشركة.
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}عرض قائمة عربات الشركة.
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}عرض قائمة سفن الشركة.
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}عرض قائمة طائرات الشركة.
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}عرض قطارات الشركة
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}عرض عربات الشركة
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}عرض سفن الشركة
|
||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}عرض طائرات الشركة
|
||||
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}تكبير الصورة
|
||||
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}تصغير الصورة
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}ادوات بناء سكة حديد
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}ادوات بناء الطرق
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}ادوات السفن
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}بناء مطارات
|
||||
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}ادوات المطار
|
||||
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}افتح مدير تحرير التضاريس لرفع / خفض الارض, زراعة الاشجار, الخ.
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}عرض اطار الصوت/الموسيقى
|
||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}اظهار الرسالة الأخيرة/التقرير الأخير, خيارات الرسائل
|
||||
@@ -348,7 +348,6 @@ STR_SCENEDIT_FILE_MENU_QUIT :انهاء
|
||||
STR_SETTINGS_MENU_GAME_OPTIONS :خيارات اللعبة
|
||||
STR_SETTINGS_MENU_DIFFICULTY_SETTINGS :خيارات الصعوبة
|
||||
STR_SETTINGS_MENU_CONFIG_SETTINGS :اعدادات متقدمة
|
||||
STR_SETTINGS_MENU_AI_SETTINGS :إعدادات الذكاء الاصطناعى
|
||||
STR_SETTINGS_MENU_NEWGRF_SETTINGS :إعدادات جرافيك جديده
|
||||
STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :خيارات الشفافية
|
||||
STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED :عرض اسماء المدن
|
||||
@@ -664,8 +663,6 @@ STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP :{BLACK}عرض
|
||||
STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}عرض الطرق على الخريطة
|
||||
STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}عرض الشجر على الخريطة
|
||||
STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}عرض ملاك الاراضي على الخريطة
|
||||
STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}اضغط على مصنع لعرضة. اضغط + مفتاح كنترول لاخفاء جميع المصانع ماعدا المختارة. اضغط + كنترول لاظهار المصانع مجددا.
|
||||
STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}اضغط على الشركة لعرض ممتلكاتها. اضغط + مفتاح كنترول لاخفاء كل الشركات ماعدا المختارة. اضغط + مفتاح كنترول لعرضها ثانية.
|
||||
|
||||
STR_SMALLMAP_LEGENDA_ROADS :{TINYFONT}{BLACK}شوارع
|
||||
STR_SMALLMAP_LEGENDA_RAILROADS :{TINYFONT}{BLACK} سكة القطار
|
||||
@@ -699,7 +696,6 @@ STR_SMALLMAP_LEGENDA_SNOW :{TINYFONT}{BLAC
|
||||
STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}عرض/اخفاء اسماء المدن
|
||||
STR_SMALLMAP_CENTER :{BLACK}وسط الخريطة الصغيرة على الموقع الحالي
|
||||
STR_SMALLMAP_INDUSTRY :{TINYFONT}{STRING} ({NUM})
|
||||
STR_SMALLMAP_COMPANY :{TINYFONT}{COMPANY}
|
||||
STR_SMALLMAP_TOWN :{TINYFONT}{WHITE}{TOWN}
|
||||
STR_SMALLMAP_DISABLE_ALL :{BLACK}تعطيل الكل
|
||||
STR_SMALLMAP_ENABLE_ALL :{BLACK}تفعيل الكل
|
||||
@@ -707,8 +703,6 @@ STR_SMALLMAP_SHOW_HEIGHT :{BLACK}عرض
|
||||
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_INDUSTRIES :{BLACK}عدم عرض اي مصنع في الخريطة
|
||||
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}عرض جميع المصانع في الخريطة
|
||||
STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}بدل عرض خريطة التضاريس
|
||||
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}عدم عرض ممتلكات اي شركة على الخارطة
|
||||
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}عرض جميع املاك الشركة على الخريطة
|
||||
|
||||
# Status bar messages
|
||||
STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}اظهر اخر رسالة / تقرير
|
||||
@@ -846,9 +840,9 @@ STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE :{BIGFONT}{BLACK
|
||||
STR_NEWS_ROAD_REBUILDING :{BIGFONT}{BLACK} فوضى طرق عارمة في مدينة {TOWN}!{}{}اعادة ترميم الطرق مولت من قبل شركة {STRING}{} تجلي ستة أشهر من الشقاء لعربات الطريق.
|
||||
|
||||
# Extra view window
|
||||
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}شاشة العرض {COMMA}
|
||||
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}شاشة عرض{COMMA}
|
||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}انسخ لشاشة العرض
|
||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}انسخ موقع الشاشة الرئيسية لشاشة العرض هذه
|
||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}انسخ الشاشة الرئيسية لشاشة العرض هذه
|
||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}لصق من شاشة العرض
|
||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}لصق شاشة العرض هذة للشاشة الرئيسية
|
||||
|
||||
@@ -1027,8 +1021,6 @@ STR_DIFFICULTY_LEVEL_SETTING_CITY_APPROVAL :{LTBLUE}موق
|
||||
############ range for difficulty settings ends
|
||||
|
||||
STR_NONE :بدون
|
||||
STR_FUNDING_ONLY :التمويل فقط
|
||||
STR_MINIMAL :الادنى
|
||||
STR_NUM_VERY_LOW :منخفض جدا
|
||||
STR_NUM_LOW :قليل
|
||||
STR_NUM_NORMAL :طبيعي
|
||||
@@ -1078,6 +1070,7 @@ STR_REVERSE_AT_END_OF_LINE_ONLY :نهاية ال
|
||||
|
||||
STR_DISASTERS_OFF :بدون
|
||||
STR_DISASTERS_ON :السماح
|
||||
|
||||
STR_CITY_APPROVAL_PERMISSIVE :متساهل
|
||||
STR_CITY_APPROVAL_TOLERANT :متقبل
|
||||
STR_CITY_APPROVAL_HOSTILE :معاد
|
||||
@@ -1091,15 +1084,10 @@ STR_CONFIG_SETTING_CAPTION :{WHITE}الاع
|
||||
STR_CONFIG_SETTING_OFF :قفل
|
||||
STR_CONFIG_SETTING_ON :فتح
|
||||
STR_CONFIG_SETTING_DISABLED :غير مفعل
|
||||
|
||||
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_BUILDONSLOPES :{LTBLUE}السماح بالبناء على المنحدرات و السواحل: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}السماح باعادة بناء التلال تحت المباني, الطرق, الخ .-الانحدار الذاتي- {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}السماح بحدود اكثر واقعية للمحطات بحسب الحجم: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}السماح بحذف اكثر من الطرق المملوكة للمدينة و الجسور و غيرها: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_LENGTH :{LTBLUE}اقصى طول لعربات القطار: {ORANGE}{STRING}مربع
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT :{LTBLUE}كمية دخان/شرار القطارات:{ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_NONE :بدون
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_ORIGINAL :اصلي
|
||||
@@ -1118,16 +1106,14 @@ STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}أست
|
||||
STR_CONFIG_SETTING_GRADUAL_LOADING :{LTBLUE}تحميل القطارات بالتدريج: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_INFLATION :{LTBLUE}التضخم: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SELECTGOODS :{LTBLUE}أوصل الحموله للمحطه إذا كان هناك حاجة فقط: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :{LTBLUE}اقصى طول للجسور: {ORANGE}{STRING}مربع
|
||||
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :{LTBLUE}اقصى طول للانفاق: {ORANGE}{STRING}مربع
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}طريقة بناء المصانع الأولية يدوية : {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :بدون
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :ككل المصانع الأخرى
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :تنقيب
|
||||
STR_CONFIG_SETTING_INDUSTRY_PLATFORM :{LTBLUE}المساحة المستوية حول المصانع: {ORANGE}{STRING} مربع
|
||||
STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}السماح بوجود أكثر من مصنع من نفس النوع في المدينة الواحدة: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}إظهار الإشارات على جهة السائق: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}أعرض نافذة المالية في آخر السنة: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}السماح بوجود اكثر من مصنع من نفس النوع في المدينة الواحدة: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}اظهار الاشارات على جهة السائق: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}أعرض نافذة المالية في آخر السنه: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :{LTBLUE}الامر الجديد - بدون توقف - قياسيا: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_STOP_LOCATION :{LTBLUE}اوامر القطار الجديدة تتوقف قياسيا في {ORANGE}{STRING}{LTBLUE} رصيف المحطة
|
||||
STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :قرب النهاية
|
||||
@@ -1137,7 +1123,6 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :{LTBLUE}تسل
|
||||
STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}حرك الشاشة عندما تكون المؤشر على الحافة: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_BRIBE :{LTBLUE}السماح برشوة السلطات االمحليه: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :{LTBLUE}السماح بشراء حقوق النقل الحصري: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD :{LTBLUE}السماح بتمويل تعمير الطرق المحلية: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}السماح بتحويل المال للشركات الأخرى: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}مضاعفة وزن الشحنة لمحاكاة القطارات الثقيلة: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}معامل السرعة للطائرة : {ORANGE} 1 / {STRING}
|
||||
@@ -1153,7 +1138,6 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}تغير
|
||||
|
||||
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :{LTBLUE} المطارات لا تنتهي صلاحيتها {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_WARN_LOST_VEHICLE :{LTBLUE}حذر إذا فقدت المركبة {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW :{LTBLUE}استعراض اوامر العربات: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :لا
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :نعم, بستثناء العربات المتوقفة
|
||||
@@ -1165,8 +1149,8 @@ STR_CONFIG_SETTING_AUTORENEW_MONTHS :{LTBLUE}الت
|
||||
STR_CONFIG_SETTING_AUTORENEW_MONEY :{LTBLUE}التجديد التلقائي عند توفر السيولة الدنيا للتجديد: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ERRMSG_DURATION :{LTBLUE}زمن عرض الرسالة: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_HOVER_DELAY :{LTBLUE}تاخير احداث الهوفر: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :{LTBLUE}عرض التلميحات: {ORANGE}اضغط يمين
|
||||
STR_CONFIG_SETTING_POPULATION_IN_LABEL :{LTBLUE}أعرض عدد السكان مع الاسم على العلامة: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :{LTBLUE}تاخير احداث الهوفر: {ORANGE}معطلة
|
||||
STR_CONFIG_SETTING_POPULATION_IN_LABEL :{LTBLUE}أعرض عدد السكان مع الأسم على العلامه: {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_LAND_GENERATOR :{LTBLUE}مولد الأرض: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :الأصلي
|
||||
@@ -1186,7 +1170,7 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :{LTBLUE}اتج
|
||||
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :عكس عقارب الساعة
|
||||
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_ENABLE_FREEFORM_EDGES :{LTBLUE} السماح بالحدود الحرة للخريطة: {ORANGE} {STRING}
|
||||
STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}مربع او اكثر غير فارغ في الحدود الشمالية
|
||||
STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}مربع او اكثر من حدود الخريطة لا يكون بحر
|
||||
|
||||
@@ -1223,12 +1207,7 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :طويل - 31
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :قصير - 31 - 12 - 2008
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ايزو 31-12-2008
|
||||
|
||||
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :{LTBLUE}إيقاف اللعبة تلقائيا عند بدأ لعبة جديدة: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :{LTBLUE}عندمل توقف أسمح: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :لا تصرف
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :الكل ما عدا عمليات البناء
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :الكل ما عدا خيارات تعديل الخريطة
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :كل تصرف
|
||||
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :{LTBLUE}ايقاف اللعبة تلقائيا عند بدأ لعبة جديدة: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :{LTBLUE}استخدام قائمة العربات المطورة: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_OFF :بدون
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_OWN :لشركتك
|
||||
@@ -1239,8 +1218,8 @@ STR_CONFIG_SETTING_LOADING_INDICATORS_OWN :لشركتك
|
||||
STR_CONFIG_SETTING_LOADING_INDICATORS_ALL :كل الشركات
|
||||
STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :{LTBLUE}عرض جدولة الأعمال بالمهام بدلا من الأيام: {ORANGE}{STRING}
|
||||
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_QUICKGOTO :{LTBLUE} انشاء اوامر بسرعة : {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :{LTBLUE}سكة الحديد القياسية -بعد بدأ لعبة جديدة او تحميل لعبة- : {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :القديم
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :الجديد
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :الأكثر استخداما
|
||||
@@ -1248,16 +1227,15 @@ STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :{LTBLUE}اظه
|
||||
STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :{LTBLUE} ابقاء ادوات البناء فعالة بعد استخدامها: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_EXPENSES_LAYOUT :{LTBLUE} النفقات للمجموعة في النافذة المالية: {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :{LTBLUE}عطل ادوات البناء عند عدم وجود عربات متاحة لها: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_TRAINS :{LTBLUE}الحد الأعلى لعدد القطارات لكل لاعب: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :{LTBLUE}الحد الأعلى لعدد العربات لكل لاعب: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_AIRCRAFT :{LTBLUE}الحد الأعلى لعدد الطائرات لكل لاعب: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_SHIPS :{LTBLUE}الحد الأعلى لعدد السفن لكل لاعب: {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_AI_BUILDS_TRAINS :{LTBLUE}حظر القطارات على الحاسوب: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_AI_BUILDS_TRAINS :{LTBLUE}حظر القطارات على الكمبيوتر: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :{LTBLUE}حظر العربات على الكمبيوتر: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :{LTBLUE}حظر الطائرات على الحاسوب: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_AI_BUILDS_SHIPS :{LTBLUE}حظر السفن على الحاسوب: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :{LTBLUE}حظر الطائرات على الكمبيوتر: {ORANGE}{STRING}
|
||||
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 قبل تعليق الذكاء الصناعي : {ORANGE}{STRING}
|
||||
@@ -1266,7 +1244,7 @@ STR_CONFIG_SETTING_SERVINT_ISPERCENT :{LTBLUE}فتر
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :{LTBLUE}فترات الصيانة القياسية للقطارات: {ORANGE}{STRING} يوم / %
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS_DISABLED :{LTBLUE}فترة الصيانة القياسية للقطارات{ORANGE}غير مفعل
|
||||
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :{LTBLUE}فترات الصيانة القياسية للطائرات : {ORANGE}{STRING}يوم / %
|
||||
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_DISABLED :{LTBLUE}فترة الصيانة القياسية للعربات: {ORANGE}غير مفعلة
|
||||
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_DISABLED :{LTBLUE}فترة الصيانة القياسية للعربات{ORANGE} غير مفعلة
|
||||
STR_CONFIG_SETTING_SERVINT_AIRCRAFT :{LTBLUE}فترات الصيانة القياسية للطائرات : {ORANGE}{STRING}يوم / %
|
||||
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_DISABLED :{LTBLUE} فترات الصيانة القياسية للطائرات {ORANGE}غير مفعل
|
||||
STR_CONFIG_SETTING_SERVINT_SHIPS :{LTBLUE}فترات الصيانة القياسية للسفن: {ORANGE}{STRING} يوم / %
|
||||
@@ -1285,8 +1263,8 @@ STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :{LTBLUE}اتا
|
||||
STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :{LTBLUE}السماح باستخدام اشارات واجهة المستخدم الرسومية: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :{LTBLUE}نوع الاشارة الذي يبنى قياسيا: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :اشارات التوقف
|
||||
STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :إشارات الطريق
|
||||
STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :إشارة طريق اتجاه واحد
|
||||
STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :اشارات الطريق
|
||||
STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :اشارة اتجاة واحد للطريق
|
||||
STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :{LTBLUE}الدوران خلال الاشارات: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :اشارات التوقف فقط
|
||||
STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :اشارات الطريق فقط
|
||||
@@ -1340,11 +1318,11 @@ STR_CONFIG_SETTING_VEHICLES :{ORANGE}الم
|
||||
STR_CONFIG_SETTING_STATIONS :{ORANGE}المحطات
|
||||
STR_CONFIG_SETTING_ECONOMY :{ORANGE}الأقتصاد
|
||||
STR_CONFIG_SETTING_AI :{ORANGE}المتنافسين
|
||||
STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}عرض الخيارات
|
||||
STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE} عرض الخيارات
|
||||
STR_CONFIG_SETTING_INTERACTION :{ORANGE} التفاعل
|
||||
STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}الإشارات
|
||||
STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE} الاشارات
|
||||
STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE} طريقة التحميل
|
||||
STR_CONFIG_SETTING_AI_NPC :{ORANGE} لاعبين الحاسوب
|
||||
STR_CONFIG_SETTING_AI_NPC :{ORANGE} لاعبين الكمبيوتر
|
||||
STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE} التجديد التلقائي
|
||||
STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE} الصيانة
|
||||
STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE} المسارات
|
||||
@@ -1352,7 +1330,6 @@ STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE} قطا
|
||||
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE} مدن
|
||||
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE} مصانع
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}موجد الطريق- قصاص الطريق - للقطارات:{ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_YAPF :YAPF {BLUE}(مفضل)
|
||||
@@ -1363,7 +1340,6 @@ STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :{LTBLUE} موج
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :أصلي{BLUE}(مستحسن)
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(غير مفضل)
|
||||
STR_CONFIG_SETTING_REVERSE_AT_SIGNALS :{LTBLUE}العكس عند الإشارات: {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}عدل قيمة التغيير
|
||||
|
||||
@@ -1431,7 +1407,7 @@ STR_ABANDON_SCENARIO_QUERY :{YELLOW}هل ت
|
||||
# Cheat window
|
||||
STR_CHEATS :{WHITE}اسرار
|
||||
STR_CHEATS_TOOLTIP :{BLACK}علامة صح اذا استخدمت هذا السرمن قبل
|
||||
STR_CHEATS_WARNING :{BLACK}تحذير! أنت على وشك أن تخون منافسيك. هذا الخيانة ستبقى عار عليك الى الأبد.
|
||||
STR_CHEATS_WARNING :{BLACK}تحذير! انت على وشك ان تخون منافسيك. هذا الخيانة ستبقى عار عليك الى الأبد.
|
||||
STR_CHEAT_MONEY :{LTBLUE}زيادة السيولة بـ {CURRENCY}
|
||||
STR_CHEAT_CHANGE_COMPANY :{LTBLUE}العب كشركة{ORANGE}{COMMA}
|
||||
STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}الجرافة السحرية - لازالة المصانع و الاجسام غير القابلة للازالة.{ORANGE}{STRING}
|
||||
@@ -1443,7 +1419,6 @@ STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :مناطق ثل
|
||||
STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :مناطق مدارية
|
||||
STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :ألعاب
|
||||
STR_CHEAT_CHANGE_DATE :{LTBLUE}عدل التاريخ {ORANGE} {DATE_SHORT}
|
||||
STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}غير السنة الحالية
|
||||
STR_CHEAT_SETUP_PROD :{LTBLUE}تفعيل تغيير قيمة الانتاج: {ORANGE}{STRING}
|
||||
|
||||
# Livery window
|
||||
@@ -1469,7 +1444,7 @@ STR_LIVERY_EMU :EMU
|
||||
STR_LIVERY_PASSENGER_WAGON_STEAM :حافلة ركاب - بخارية
|
||||
STR_LIVERY_PASSENGER_WAGON_DIESEL :حافلة ركاب - ديزل
|
||||
STR_LIVERY_PASSENGER_WAGON_ELECTRIC :عربة ركاب - كهربائية
|
||||
STR_LIVERY_PASSENGER_WAGON_MONORAIL :عربة ركاب - أحادية
|
||||
STR_LIVERY_PASSENGER_WAGON_MONORAIL :عربة ركاب - احادية
|
||||
STR_LIVERY_PASSENGER_WAGON_MAGLEV :عربة كاب - ممغنطة
|
||||
STR_LIVERY_FREIGHT_WAGON :عربة شحن
|
||||
STR_LIVERY_BUS :باص
|
||||
@@ -1699,7 +1674,6 @@ STR_NETWORK_CONNECTING_SPECIAL_1 :{BLACK}جلب
|
||||
STR_NETWORK_CONNECTING_SPECIAL_2 :{BLACK}جلب معلومات الشركة..
|
||||
############ End of leave-in-this-order
|
||||
STR_NETWORK_CONNECTING_WAITING :{BLACK}{NUM}انتظار اللاعبين السابقين
|
||||
STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}{BYTES}تم تحميل حتى الان
|
||||
STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} حمل حتى الان
|
||||
|
||||
STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}فصل
|
||||
@@ -1731,7 +1705,7 @@ STR_COMPANY_PASSWORD_CANCEL :{BLACK}لا ت
|
||||
STR_COMPANY_PASSWORD_OK :{BLACK}اعط الشركة كلمة المرور الجديدة
|
||||
STR_COMPANY_PASSWORD_CAPTION :{WHITE}كلمة مرور الشركة
|
||||
STR_COMPANY_PASSWORD_MAKE_DEFAULT :{BLACK}كلمة مرور الشركة القياسية
|
||||
STR_COMPANY_PASSWORD_MAKE_DEFAULT_TOOLTIP :{BLACK}استخدم كلمة مرور هذه الشركة كافتراضية للشركات الجديدة
|
||||
STR_COMPANY_PASSWORD_MAKE_DEFAULT_TOOLTIP :{BLACK}استخدم هذه الكلمة كقياسية لكل الشركات الجديدة
|
||||
|
||||
# Network company info join/password
|
||||
STR_COMPANY_VIEW_JOIN :{BLACK} انضم
|
||||
@@ -1771,7 +1745,7 @@ STR_NETWORK_ERROR_SERVER_FULL :{WHITE}الخا
|
||||
STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}أنت ممنوع من هذا الخادم
|
||||
STR_NETWORK_ERROR_KICKED :{WHITE}لقد طردت من اللعبة
|
||||
STR_NETWORK_ERROR_CHEATER :{WHITE}الغش ليس مسموحا به في هذه اللعبة
|
||||
STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}أنت تقوم بإرسال العديد من الأوامر للخادم
|
||||
STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}انت تقوم بارسال العديد من الاوامر للسيرفر
|
||||
|
||||
############ Leave those lines in this order!!
|
||||
STR_NETWORK_ERROR_CLIENT_GENERAL :خطاء عام
|
||||
@@ -1792,8 +1766,6 @@ STR_NETWORK_ERROR_CLIENT_SERVER_FULL :خادم ممت
|
||||
STR_NETWORK_ERROR_CLIENT_TOO_MANY_COMMANDS :كان يرسل الكثير من الاوامر
|
||||
############ End of leave-in-this-order
|
||||
|
||||
STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION :{WHITE}احتمال فقد الاتصال
|
||||
STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION :{WHITE}اخر {NUM} ثواني لم تصل بيانات من السيرفر
|
||||
|
||||
# Network related errors
|
||||
STR_NETWORK_SERVER_MESSAGE :*** {1:STRING}
|
||||
@@ -1842,23 +1814,23 @@ 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}
|
||||
STR_CONTENT_DETAIL_NAME :{SILVER}الاسم: {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_SUBTITLE_DOES_NOT_EXIST :{SILVER} المحتوى غير معروف و لن يتم تحميلة على النسخة المفتوحة
|
||||
STR_CONTENT_DETAIL_UPDATE :{SILVER} هذا استبدال للملف الموجود {STRING}
|
||||
STR_CONTENT_DETAIL_NAME :{SILVER} الاسم: {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_VERSION :{SILVER} النسخة: {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}الوصف: {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_URL :{SILVER}عنوان الموقع: {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_TYPE :{SILVER}النوع: {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_FILESIZE :{SILVER}حجم التحميل: {WHITE}{BYTES}
|
||||
STR_CONTENT_DETAIL_DESCRIPTION :{SILVER} الوصف : {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_URL :{SILVER} عنوان النت: {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_TYPE :{SILVER} النوع: {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_FILESIZE :{SILVER} حجم التحميل: {WHITE}{BYTES}
|
||||
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 :{WHITE}النسخة المفتوحة بنيت بدون دعم zlib ...
|
||||
STR_CONTENT_NO_ZLIB_SUB :{WHITE}تحميل محتويات zlib غير ممكن
|
||||
|
||||
# Order of these is important!
|
||||
STR_CONTENT_TYPE_BASE_GRAPHICS :الرسوميات الاساسية
|
||||
STR_CONTENT_TYPE_NEWGRF :GRF جديدة
|
||||
STR_CONTENT_TYPE_NEWGRF :NewGRF رسوميات
|
||||
STR_CONTENT_TYPE_AI :الذكاء الصناعي
|
||||
STR_CONTENT_TYPE_AI_LIBRARY :مكتبة الذكاء الصناعي
|
||||
STR_CONTENT_TYPE_SCENARIO :سناريو
|
||||
@@ -1867,7 +1839,7 @@ STR_CONTENT_TYPE_BASE_SOUNDS :الاصوات
|
||||
STR_CONTENT_TYPE_BASE_MUSIC :الموسيقى الاساسية
|
||||
|
||||
# Content downloading progress window
|
||||
STR_CONTENT_DOWNLOAD_TITLE :{WHITE}يتم تحميل المحتوى...
|
||||
STR_CONTENT_DOWNLOAD_TITLE :{WHITE}يتم التحميل الان ...
|
||||
STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}يتم طلب الملفات ...
|
||||
STR_CONTENT_DOWNLOAD_FILE :{WHITE}يتم تحميل {STRING} - {NUM} من {NUM}
|
||||
STR_CONTENT_DOWNLOAD_COMPLETE :{WHITE}انتهى التحميل
|
||||
@@ -1875,15 +1847,15 @@ STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES}
|
||||
|
||||
# Content downloading error messages
|
||||
STR_CONTENT_ERROR_COULD_NOT_CONNECT :{WHITE}لم يتم الربط مع خادم المحتوى
|
||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}فشل التحميل...
|
||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... فقد الاتصال
|
||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}فشل التحميل ...
|
||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... فقد الربط بالخادم
|
||||
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... لا يمكن الكتابة على الملف
|
||||
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}لم يتمكن من فك ضغط الملف المحمل
|
||||
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}لم يتمكن من فك الضغط للملف المحمل
|
||||
|
||||
# Transparency settings window
|
||||
STR_TRANSPARENCY_CAPTION :{WHITE}خيارات الشفافية
|
||||
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}بدل شفافية اسماء المحطات. مفتاح كنترول للاغلاق.
|
||||
STR_TRANSPARENT_TREES_TOOLTIP :{BLACK}بدل الشفافية للشجر. مفتاح كنترول للإغلاق.
|
||||
STR_TRANSPARENT_TREES_TOOLTIP :{BLACK}بدل الشفافية للشجر. مفتاح كنترول للاغلاق.
|
||||
STR_TRANSPARENT_HOUSES_TOOLTIP :{BLACK}بدل الشفافية للمباني. مفتاح كنترول للاغلاق.
|
||||
STR_TRANSPARENT_INDUSTRIES_TOOLTIP :{BLACK}بدل الشفافية للمصانع. مفتاح كنترول للاغلاق.
|
||||
STR_TRANSPARENT_BUILDINGS_TOOLTIP :{BLACK}بدل الشفافية للمحطات و ملحقاتها. مفتاح كنترول للاغلاق.
|
||||
@@ -1917,10 +1889,10 @@ STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :بناء الس
|
||||
|
||||
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_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_SIGNALS :{BLACK}بناء إشارات السكك الحديدية.
|
||||
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}بناء اشارة سكة قطار
|
||||
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}بناء جسر قطارات
|
||||
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}بناء نفق قطار
|
||||
STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}تناوب بناء/ازالة سكك واشارات القطارات
|
||||
@@ -1952,7 +1924,7 @@ STR_STATION_CLASS_DFLT :المحطة ا
|
||||
STR_STATION_CLASS_WAYP :نقطة عبور
|
||||
|
||||
# Signal window
|
||||
STR_BUILD_SIGNAL_CAPTION :{WHITE}اختيار الإشارات
|
||||
STR_BUILD_SIGNAL_CAPTION :{WHITE}اختيار الاشارات
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}اشارة اقفال (بالاعلام){}هذة الاشارة الأساسية. تسمح بتواجد قطار واحد في القسم و الوقت الواحد
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}اشارة دخول (بالاعلام){} تكون خضراء عندما توجد اشارة خضراء في اشارات الخروج التالية لها. والا تكون حمراء.
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}اشارة خروج (بالاعلام) {}تعمل مثل اشارة الاقفال, لكن يجب تنشيط الوضع الصحيح في الدخول و الاشارة المزدوجة.
|
||||
@@ -1975,7 +1947,6 @@ STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}اختر
|
||||
STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}اختر الجسر المناسب
|
||||
STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}بناء الجسور - اختر الجسر المفضل لديك لبنائة
|
||||
STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
|
||||
STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY}
|
||||
STR_BRIDGE_NAME_SUSPENSION_STEEL :تعليق, حديدي
|
||||
STR_BRIDGE_NAME_GIRDER_STEEL :العارضة, حديدية
|
||||
STR_BRIDGE_NAME_CANTILEVER_STEEL :الحامل, حديدي
|
||||
@@ -1993,22 +1964,22 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION :{BLACK}وحدة
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}بناء سكة ترام
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD :{BLACK}بناء الطرق باستخدام النظام الآلي
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}بناء سكة القطار باستخدام النظام الآلي
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}بناء ورشة صيانة لعربات الطرق (لشراء و صيانة العربات).
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}بناء ورشة لصيانة عربات الترام (لشراء و صيانة عربات الترام).
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_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_TOGGLE_ONE_WAY_ROAD :{BLACK}فعل / عطل الطرق موحدة الاتجاه
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}بناء جسر لعربات الطريق.
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}بناء جسر ترام.
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}بناء نفق لعربات الطريق.
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}بناء محطة ركاب ترام
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}بناء محطة تحميل عربات
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}بناء محطة ترام
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}فعل / عطل الطرق موحدة الاتجاة
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}بناء جسر للعربات
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}بناء جسر ترام
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}بناء نفق للعربات
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}بناء نفق ترام
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}بدل بناء/إزالة الطرق
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}تناوب بناء/ ازالة الطرق
|
||||
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}بدل بناء / ازالة طرق الترام
|
||||
|
||||
# Road depot construction window
|
||||
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}اتجاه ورشة الصيانة
|
||||
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}اتجاة ورشة الصيانة
|
||||
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}اختر اتجاة ورشة صيانة العربات
|
||||
STR_BUILD_DEPOT_TRAM_ORIENTATION_CAPTION :{WHITE}اتجاة مستودع الصيانة لترام
|
||||
STR_BUILD_DEPOT_TRAM_ORIENTATION_SELECT_TOOLTIP :{BLACK}اختر اتجاة مستودع الترام
|
||||
@@ -2036,8 +2007,8 @@ STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}عرف
|
||||
STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}انشاء انهار
|
||||
|
||||
# Ship depot construction window
|
||||
STR_DEPOT_BUILD_SHIP_CAPTION :{WHITE}اتجاه حوض الصيانة
|
||||
STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP :{BLACK}اختر اتجاه حوض صيانة السفن
|
||||
STR_DEPOT_BUILD_SHIP_CAPTION :{WHITE}اتجاة حوض الصيانة
|
||||
STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP :{BLACK} اختر اتجاة حوض الصيانة
|
||||
|
||||
# Dock construction window
|
||||
STR_STATION_BUILD_DOCK_CAPTION :{WHITE}مرفء
|
||||
@@ -2074,12 +2045,11 @@ STR_LANDSCAPING_TOOLBAR :{WHITE}التض
|
||||
STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}خفض ركن الارض
|
||||
STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}رفع ركن الارض
|
||||
STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}مستوى الارض
|
||||
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}شراء أرض للاستخدام المستقبلي.
|
||||
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}شاء ارض للأستخدام المستقبلي
|
||||
|
||||
# Object construction window
|
||||
STR_OBJECT_BUILD_CAPTION :{WHITE}اختيار الاجسام
|
||||
STR_OBJECT_BUILD_TOOLTIP :{BLACK}اختر جسم لبنائة
|
||||
STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}اختر صنف الكائن للبناء
|
||||
STR_OBJECT_BUILD_PREVIEW_TOOLTIP :{BLACK}عرض الجسم
|
||||
STR_OBJECT_BUILD_SIZE :{BLACK}حجم: {GOLD}{NUM} x {NUM} مربع
|
||||
|
||||
@@ -2420,7 +2390,6 @@ STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}الاع
|
||||
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}لا يوجد معلومات متاحة
|
||||
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}لم يتم العثور على الملف المقترن
|
||||
STR_NEWGRF_SETTINGS_DISABLED :{RED}معطل
|
||||
STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}متعارض مع هذا اللإصدار من Openttd
|
||||
|
||||
STR_NEWGRF_SETTINGS_PARAMETER_QUERY :{BLACK}ادخل اعدادات NewGRF
|
||||
|
||||
@@ -2537,7 +2506,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}ادخل
|
||||
STR_TOWN_DIRECTORY_CAPTION :{WHITE}مدن/ بلدات
|
||||
STR_TOWN_DIRECTORY_NONE :{ORANGE}-بدون-
|
||||
STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ) {COMMA})
|
||||
STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}اسم المدينة - اضغط على الاسم لتوسيط الشاشة عليها. اضغط + كنترول لفتح شاشة عرض جديدة للضاحية.
|
||||
STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}اسم المدينة - اضغط على الاسم لتوسيط الشاشة عليها
|
||||
STR_TOWN_POPULATION :{BLACK}سكان العالم: {COMMA}
|
||||
|
||||
# Town view window
|
||||
@@ -2597,10 +2566,10 @@ STR_SUBSIDIES_OFFERED_FROM_TO :{ORANGE}{STRING
|
||||
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}اضغط على الخدمة لتوسيط الخريطة على المصنع/المدينة. اضغط + كنترول لفتح شاشة عرض جديدة للمدينة.
|
||||
STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}اضغط على الخدمة لتوسيط الخريطة على المصنع/المدينة
|
||||
|
||||
# Station list window
|
||||
STR_STATION_LIST_TOOLTIP :{BLACK}اسم المحطة - اضغط على اسم المحطة لتوسيطها في الشاشة. اضغط + كنترول لفتح شاشة عرض جديدة بمنطقة المحطة.
|
||||
STR_STATION_LIST_TOOLTIP :{BLACK}اسم المحطة - اضغط على اسم المحطة لتوسيطها في الشاشة
|
||||
STR_STATION_LIST_USE_CTRL_TO_SELECT_MORE :{BLACK}اضغط بشكل متواصل على مفتاح كنترول لاختيار اكثر من وحدة
|
||||
STR_STATION_LIST_CAPTION :{WHITE}محطات شركة {COMPANY} - {COMMA} محطة
|
||||
STR_STATION_LIST_STATION :{YELLOW}{STATION} {STATIONFEATURES}
|
||||
@@ -2715,8 +2684,8 @@ STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}غير
|
||||
STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}اسم صاحب الشركة
|
||||
STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}غير اسم المدير
|
||||
|
||||
STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}اشتري 25% من أسهم الشركة
|
||||
STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}بيع 25% من أسهم الشركة
|
||||
STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}اشتري 25% من اسهم الشركة
|
||||
STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}بيع 25% من اسهم الشركة
|
||||
STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}اشتري 25% من اسهم هذه الشركة
|
||||
STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}بيع 25% من اسهم هذه الشركة
|
||||
|
||||
@@ -2731,7 +2700,7 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}-بدو
|
||||
STR_INDUSTRY_DIRECTORY_ITEM :{ORANGE}{INDUSTRY}{BLACK} ({CARGO}{STRING}){YELLOW}({COMMA}% صدرت)
|
||||
STR_INDUSTRY_DIRECTORY_ITEM_TWO :{ORANGE}{INDUSTRY}{BLACK} ({CARGO}{STRING}/{CARGO}{STRING}){YELLOW}({COMMA}%/{COMMA}% صدرت)
|
||||
STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY}
|
||||
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}اسماء المصانع - اضغط على اسم المصنع لتوسيط الشاشة عليه. اضغط + كنترول لفتح شاشة عرض جديدة لمنطقة المصنع.
|
||||
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}اسماء المصانع - اضغط على اسم لتوسيط الشاشة علية
|
||||
|
||||
# Industry view
|
||||
STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY}
|
||||
@@ -2969,7 +2938,7 @@ STR_REPLACE_VEHICLE_SHIP :سفن
|
||||
STR_REPLACE_VEHICLE_AIRCRAFT :طائرات
|
||||
|
||||
STR_REPLACE_HELP_LEFT_ARRAY :{BLACK} اختر نوع المحرك لاستبدالة
|
||||
STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK} اختر نوع المحرك المراد إحلاله محل المحرك المختار في القائمة اليسرى
|
||||
STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK} اختر نوع المحرك المراد احلالة مكان المحرك المختار في القائمة اليسرى
|
||||
|
||||
STR_REPLACE_VEHICLES_START :{BLACK} بدأ تبديل العربات
|
||||
STR_REPLACE_HELP_START_BUTTON :{BLACK}اضغط لبدأ عملية تبديل المحركات المختارة في القائمة اليسرى بالمحركات المختارة في القائمة اليمنى
|
||||
@@ -2990,7 +2959,7 @@ STR_REPLACE_ELRAIL_VEHICLES :سكة حديد
|
||||
STR_REPLACE_MONORAIL_VEHICLES :عربات احادية السكة
|
||||
STR_REPLACE_MAGLEV_VEHICLES :مركبات ممغنطة
|
||||
|
||||
STR_REPLACE_REMOVE_WAGON :{BLACK} إزالة العربات: {ORANGE}{STRING}
|
||||
STR_REPLACE_REMOVE_WAGON :{BLACK} ازالة العربات: {ORANGE}{STRING}
|
||||
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK} المحافظة على طول القطار بازالة عربات ابتداء من المقدمة عند التبديل - عندما يكون التبدل ينتج قطارا اطول.
|
||||
|
||||
# Vehicle view
|
||||
@@ -3003,7 +2972,6 @@ STR_VEHICLE_VIEW_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}وضع
|
||||
|
||||
STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK} ارسل القطار للورشة - مفتاح التحكم (كنترول) + الضغط سيرسله لصيانة فقط
|
||||
STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}ارسل العربة الى الورشة. مفتاح التحكم (كنترول) + الضغط ترسل للصيانة فقط
|
||||
STR_VEHICLE_VIEW_SHIP_SEND_TO_DEPOT_TOOLTIP :{BLACK}ارسل السفينة لحوض السفن. اضغط + كنترول سوف يرسلها للصيانة فقط.
|
||||
STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}ارسل الطائرة الى حظيرة الصيانة - مفتاح التحكم (كنترول) + الضغط يرسلها للصيانة فقط
|
||||
|
||||
STR_VEHICLE_VIEW_CLONE_TRAIN_INFO :{BLACK}هذا سوف يشتري نسخة عن قطار بكل عرباته. مفتاح التحكم + الضغط سوف يشارك الاوامر.
|
||||
@@ -3125,7 +3093,6 @@ STR_REFIT_CAPTION :{WHITE}{VEHICLE
|
||||
STR_REFIT_TITLE :{GOLD}اختر نوع الحمولة ...
|
||||
STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}السعة الجديدة: {GOLD}{CARGO}{}{BLACK}تكلفة التغيير: {GOLD}{CURRENCY}
|
||||
STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}السعة الجديدة: {GOLD}{CARGO}, {GOLD}{CARGO}{}{BLACK}تكلفة اعادة التهيئة: {GOLD}{CURRENCY}
|
||||
STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}اختر العربة لاعادة تهيئتها. اسحب بالفارة لاختيار عدة عربات. اضغط على مساحة خالية لاختيار كل العربات. اضغط + كنترول لاختيار العربة الحالية وما بعدها.
|
||||
|
||||
STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}أختر نوع البضاعة لينقلها القطار
|
||||
STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK} اختر نوع حمولة العربة
|
||||
@@ -3211,15 +3178,11 @@ STR_ORDERS_SKIP_TOOLTIP :{BLACK} تخط
|
||||
|
||||
STR_ORDERS_DELETE_BUTTON :{BLACK}حذف
|
||||
STR_ORDERS_DELETE_TOOLTIP :{BLACK}حذف الامر المختار
|
||||
STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}حذف كل الأوامر
|
||||
STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}أوقف المشاركة
|
||||
STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}اوقف مشاركة الاوامر. اضغط + كنترول لحذف جميع الاوامر من هذه العربة.
|
||||
|
||||
STR_ORDERS_GO_TO_BUTTON :{BLACK}اذهب الى
|
||||
STR_ORDER_GO_TO_NEAREST_DEPOT :اذهب الى اقرب مستودع صيانة
|
||||
STR_ORDER_GO_TO_NEAREST_HANGAR :اذهب الى اقرب حظيرة صيانة
|
||||
STR_ORDER_CONDITIONAL :امر انتقال شرطي
|
||||
STR_ORDER_SHARE :شارك الأوامر
|
||||
STR_ORDERS_GO_TO_TOOLTIP :{BLACK}اضافة امر قبل الامر المختار, او لاخر الاوامر
|
||||
STR_ORDERS_GO_TO_DROPDOWN_TOOLTIP :{BLACK}ادخل امر متقدم
|
||||
|
||||
@@ -3246,7 +3209,6 @@ STR_ORDER_STOP_ORDER :توقف
|
||||
|
||||
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
|
||||
|
||||
STR_ORDER_IMPLICIT :(تلقائى)
|
||||
|
||||
STR_ORDER_FULL_LOAD :-تحميل بالكامل-
|
||||
STR_ORDER_FULL_LOAD_ANY :-حمل اي بضاعة بالكامل-
|
||||
@@ -3262,7 +3224,6 @@ STR_ORDER_TRANSFER_NO_LOAD :)التوصيل
|
||||
STR_ORDER_NO_UNLOAD :-عدم انزال الشحنة و تحميل غيرها-
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD :(عدم انزال الشحنة و الانتظار للحمولة القصوى)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :-عدم انزال الشحنة و الانتظار للحمولة القصوى لاي شحنة-
|
||||
STR_ORDER_NO_UNLOAD_NO_LOAD :(لا تفريغ و لا تحميل)
|
||||
|
||||
STR_ORDER_STOP_LOCATION_NEAR_END :[قرب النهاية]
|
||||
STR_ORDER_STOP_LOCATION_MIDDLE :[وسط]
|
||||
@@ -3282,7 +3243,6 @@ STR_TIMETABLE_ORDER_VIEW_TOOLTIP :{BLACK}حول
|
||||
STR_TIMETABLE_TOOLTIP :{BLACK}جدولة الأوامر - اضغط على الامر لاظهارة
|
||||
|
||||
STR_TIMETABLE_NO_TRAVEL :لا رحيل
|
||||
STR_TIMETABLE_NOT_TIMETABLEABLE :المغادرة (ذاتي: بواسطة الامر اليدوي التالي)
|
||||
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :مسافر (ليس هناك جدولة)
|
||||
STR_TIMETABLE_TRAVEL_FOR :مسافر لـ {STRING}
|
||||
STR_TIMETABLE_STAY_FOR :ويبقى لـ {STRING}
|
||||
@@ -3418,7 +3378,7 @@ STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}لا ي
|
||||
STR_ERROR_GAME_LOAD_FAILED :{WHITE}فشل فتح اللعبة {}{STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :خطأ داخلي: {STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :لعبة محفوطة غير صالحة{STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :اللعبة حفظت بنسخة أحدث
|
||||
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :اللعبة حفظت بنسخة احدث
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :لا يمكن قراءة الملف
|
||||
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :لايمكن قراءة الملف
|
||||
STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :فشل التحقق من سلامة البيانات
|
||||
@@ -3464,11 +3424,8 @@ STR_ERROR_SITE_UNSUITABLE :{WHITE}... ال
|
||||
STR_ERROR_ALREADY_BUILT :{WHITE}... تم بنائة
|
||||
STR_ERROR_OWNED_BY :{WHITE}مملوكة من قبل ... {STRING}
|
||||
STR_ERROR_AREA_IS_OWNED_BY_ANOTHER :{WHITE}... المنطقة مملوكة لشركة منافسة
|
||||
STR_ERROR_TERRAFORM_LIMIT_REACHED :{WHITE}... تم الوصول لاقصى حدود للتضاريس
|
||||
STR_ERROR_CLEARING_LIMIT_REACHED :{WHITE}... تم الوصول لاقصى عدد ازالة
|
||||
STR_ERROR_NAME_MUST_BE_UNIQUE :{WHITE}السم يجب ان يكون فريدا - غير مستخدم
|
||||
STR_ERROR_GENERIC_OBJECT_IN_THE_WAY :{WHITE}{1:STRING} على الطريق
|
||||
STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}غير مسموح في حين توقفت
|
||||
|
||||
# Local authority errors
|
||||
STR_ERROR_LOCAL_AUTHORITY_REFUSES_TO_ALLOW_THIS :{WHITE}{TOWN}بلدية المدينة ترفض السماح بهذا
|
||||
@@ -3604,7 +3561,7 @@ STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{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_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}لا يمكن انعطاف العربات المكونة من اكثر من وحدة.
|
||||
STR_ERROR_INCOMPATIBLE_RAIL_TYPES :نوع سكة حديد متعارض
|
||||
|
||||
STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}لا يمكن تحريك العربة ...
|
||||
@@ -3669,7 +3626,6 @@ STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}الجس
|
||||
STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}البداية و النهاية يجب ان تكون على استقامة واحدة
|
||||
STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... يجب ان تكون نهايات الجسر على اليابسة
|
||||
STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... الجسر طويل جدا
|
||||
STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}قد ينتهي الجسر خارج الخريطة
|
||||
|
||||
# Tunnel related errors
|
||||
STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}لا يمكن بناء نفق هنا ...
|
||||
@@ -3678,7 +3634,6 @@ STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}يجب
|
||||
STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}نفق آخر في مسار هذا النفق
|
||||
STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}الانفاق تنتهي خارج حدود الخريطة
|
||||
STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}لا يمكن تعديل الأرض في نهاية النفق
|
||||
STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... النفق طويل جدا
|
||||
|
||||
# Object related errors
|
||||
STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... الاجسام كثيرة جدا
|
||||
@@ -3770,7 +3725,6 @@ STR_ERROR_CAN_T_ADD_ORDER :{WHITE}العر
|
||||
STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}العربة المشتركة لا تستطيع الوصول للمحطة
|
||||
|
||||
STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}لا يمكن مشاركة قائمة الأوامر
|
||||
STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}لايمكن ايقاف امر المشاركة بالاوامر ...
|
||||
STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}لا يمكن نسخ قائمة الأوامر
|
||||
STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}بعيد جدا من محطة/علامة الوصول السابقة
|
||||
|
||||
@@ -4257,7 +4211,6 @@ STR_TINY_BLACK_STATION :{TINYFONT}{BLAC
|
||||
STR_BLACK_STRING :{BLACK}{STRING}
|
||||
STR_BLACK_RAW_STRING :{BLACK}{STRING}
|
||||
STR_GREEN_STRING :{GREEN}{STRING}
|
||||
STR_ORANGE_STRING :{ORANGE}{STRING}
|
||||
STR_RED_STRING :{RED}{STRING}
|
||||
STR_WHITE_STRING :{WHITE}{STRING}
|
||||
STR_TINY_BLACK_HEIGHT :{TINYFONT}{BLACK}{HEIGHT}
|
||||
|
||||
+8
-26
@@ -152,7 +152,7 @@ STR_CARGO_PLURAL_WHEAT.abl :пшаніца
|
||||
STR_CARGO_PLURAL_WHEAT.pre :пшаніцы
|
||||
STR_CARGO_PLURAL_RUBBER :{G=m}Каўчук
|
||||
STR_CARGO_PLURAL_RUBBER.gen :каўчуку
|
||||
STR_CARGO_PLURAL_RUBBER.dat :каўчуку
|
||||
STR_CARGO_PLURAL_RUBBER.dat :каўкучу
|
||||
STR_CARGO_PLURAL_RUBBER.acc :каўчук
|
||||
STR_CARGO_PLURAL_RUBBER.abl :каўчукам
|
||||
STR_CARGO_PLURAL_RUBBER.pre :каўчуку
|
||||
@@ -760,7 +760,6 @@ STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Здымак э
|
||||
STR_ABOUT_MENU_GIANT_SCREENSHOT :Здымак усёй мапы (Ctrl+G)
|
||||
STR_ABOUT_MENU_ABOUT_OPENTTD :Аб гульні OpenTTD
|
||||
STR_ABOUT_MENU_SPRITE_ALIGNER :Выраўноўваньне спрайтаў
|
||||
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Пераключыць абмяжоўвальныя рамкі
|
||||
############ range ends here
|
||||
|
||||
############ range for days starts (also used for the place in the highscore window)
|
||||
@@ -1345,8 +1344,6 @@ STR_DIFFICULTY_LEVEL_SETTING_CITY_APPROVAL :{LTBLUE}Ста
|
||||
############ range for difficulty settings ends
|
||||
|
||||
STR_NONE :Няма
|
||||
STR_FUNDING_ONLY :Будаваць самому
|
||||
STR_MINIMAL :Мінімальнае
|
||||
STR_NUM_VERY_LOW :Вельмі мала
|
||||
STR_NUM_LOW :Мала
|
||||
STR_NUM_NORMAL :Звычайна
|
||||
@@ -1396,6 +1393,7 @@ STR_REVERSE_AT_END_OF_LINE_ONLY :Толькi ў
|
||||
|
||||
STR_DISASTERS_OFF :Выключаны
|
||||
STR_DISASTERS_ON :Уключаны
|
||||
|
||||
STR_CITY_APPROVAL_PERMISSIVE :Дазваляючае
|
||||
STR_CITY_APPROVAL_TOLERANT :Памяркоўнае
|
||||
STR_CITY_APPROVAL_HOSTILE :Варожае
|
||||
@@ -1409,15 +1407,10 @@ STR_CONFIG_SETTING_CAPTION :{WHITE}Пашы
|
||||
STR_CONFIG_SETTING_OFF :не
|
||||
STR_CONFIG_SETTING_ON :так
|
||||
STR_CONFIG_SETTING_DISABLED :адключана
|
||||
|
||||
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_BUILDONSLOPES :{LTBLUE}Дазволіць будаўніцтва на сьхілах і на беразе: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Дазволіць зьмену ляндшафту пад будынкамі, дарогамі й г. д. (аўтаспускі): {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}Зона пакрыцьця залежыць ад тыпу станцыі: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}Дазволіць знос амаль усіх гарадзкіх аб'ектаў: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_LENGTH :{LTBLUE}Макс. даўжыня цягнiкоў: {ORANGE}{STRING} клет{P 0:1 ка кi ак}
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT :{LTBLUE}Колькасць дыму/іскраў у лакаматываў: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_NONE :няма
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_ORIGINAL :арыгiнальная
|
||||
@@ -1436,13 +1429,11 @@ STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}Вык
|
||||
STR_CONFIG_SETTING_GRADUAL_LOADING :{LTBLUE}Паступовая загрузка транспарту: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_INFLATION :{LTBLUE}Уключыць інфляцыю: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SELECTGOODS :{LTBLUE}Пастаўляць груз на станцыю, толькі калі на яго быў попыт: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :{LTBLUE}Макс. даўжыня мастоў: {ORANGE}{STRING} клет{P 0:1 ка кi ак}
|
||||
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :{LTBLUE}Макс. даўжыня тунэляў: {ORANGE}{STRING} клет{P 0:1 ка кi ак}
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}Мэтад стварэньня сыравінных прадпрыемстваў: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :не ствараць
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :як i iншыя
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :геолагаразьведка
|
||||
STR_CONFIG_SETTING_INDUSTRY_PLATFORM :{LTBLUE}Плоскi рэльеф вакол прадпрыемстваў: {ORANGE}{STRING} клет{P 0:1 ка кi ак}
|
||||
STR_CONFIG_SETTING_INDUSTRY_PLATFORM :{LTBLUE}Плоскi рэльеф вакол прадпрыемстваў: {ORANGE}{STRING} клет{P ка кi ак}
|
||||
STR_CONFIG_SETTING_MULTIPINDTOWN :{LTBLUE}Дазволіць некалькі прадпрыемстваў аднаго тыпу на горад: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SIGNALSIDE :{LTBLUE}Паказваць сыгналы на баку руху: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SHOWFINANCES :{LTBLUE}Паказваць фінансавую статыстыку напрыканцы года: {ORANGE}{STRING}
|
||||
@@ -1455,7 +1446,6 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :{LTBLUE}Аўт
|
||||
STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}Перамяшчаць агляд, калі курсор знаходзіцца на краі экрана: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_BRIBE :{LTBLUE}Дазволіць падкупляць мясцовыя ўлады: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :{LTBLUE}Дазволіць купляць эксклюзыўныя трансп. правы: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD :{LTBLUE}Дазволіць фінансаваньне рэканструкцыі дарогаў: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Дазволіць перадачу грошай іншым кампаніям: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Множнік вагі для сымуляцыі цяжкіх таварных цягнікоў: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Каэфіцыент хуткасьці для самалётаў: {ORANGE}1 / {STRING}
|
||||
@@ -1541,7 +1531,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :доўгі (31-
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :кароткі (31-01-2008)
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-01-31)
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :{LTBLUE}Аўтаматычнае ўключэньне паўзы напачатку гульні: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :{LTBLUE}Падчас паўзы дазволiць: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :нiчога
|
||||
@@ -1671,7 +1660,6 @@ STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Цяг
|
||||
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Населеныя пункты
|
||||
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Прамысловасць
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}Альгарытм пошуку шляху для цягнікоў: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_YAPF :YAPF {BLUE}(рэкамэндуецца)
|
||||
@@ -1682,7 +1670,6 @@ STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :{LTBLUE}Аль
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :арыгінальны {BLUE}(рэкамендуецца)
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(не рэкамэндуецца)
|
||||
STR_CONFIG_SETTING_REVERSE_AT_SIGNALS :{LTBLUE}Аўтаматычны разварот перад сыгналамi: {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Зьмяніць значэньне
|
||||
|
||||
@@ -2822,8 +2809,6 @@ STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING
|
||||
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Змяшчае некалькі Action 8 дзеяньняў.
|
||||
STR_NEWGRF_ERROR_READ_BOUNDS :Дадзеныя раптоўна скончыліся.
|
||||
STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}У бягучым наборы базавай графікі адсутнічаюць выявы некаторых аб'ектаў.{}Калі ласка, абнавіце модуль базавай графікі.
|
||||
STR_NEWGRF_ERROR_GRM_FAILED :Запрошаныя рэсурсы GRF недаступныя
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{2:STRING} быў адключаны з-за {4:STRING}
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Асцярожна!
|
||||
@@ -3607,7 +3592,7 @@ STR_ORDER_STOP_ORDER :(Стоп)
|
||||
|
||||
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
|
||||
|
||||
STR_ORDER_IMPLICIT :(Аўтаматычна)
|
||||
STR_ORDER_AUTOMATIC :(Аўтаматычна)
|
||||
|
||||
STR_ORDER_FULL_LOAD :(Поўная загрузка)
|
||||
STR_ORDER_FULL_LOAD_ANY :(Поўная загрузка любым грузам)
|
||||
@@ -3623,7 +3608,6 @@ STR_ORDER_TRANSFER_NO_LOAD :(Перадац
|
||||
STR_ORDER_NO_UNLOAD :(Не разгружацца й забраць груз)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD :(Не разгружацца й чакаць поўнай загрузкі)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Не разгружацца й чакаць поўнай загрузкі любым грузам)
|
||||
STR_ORDER_NO_UNLOAD_NO_LOAD :(Не разгружацца й не грузiцца)
|
||||
|
||||
STR_ORDER_STOP_LOCATION_NEAR_END :[пачатак станцыi]
|
||||
STR_ORDER_STOP_LOCATION_MIDDLE :[сярэдзiна станцыi]
|
||||
@@ -3826,7 +3810,7 @@ STR_ERROR_ALREADY_BUILT :{WHITE}... уж
|
||||
STR_ERROR_OWNED_BY :{WHITE}... належыць {STRING}
|
||||
STR_ERROR_AREA_IS_OWNED_BY_ANOTHER :{WHITE}... участак належыць іншай кампаніі
|
||||
STR_ERROR_TERRAFORM_LIMIT_REACHED :{WHITE}... дасягнуты лiмiт ляндшафтных зьменаў
|
||||
STR_ERROR_CLEARING_LIMIT_REACHED :{WHITE}... дасягнута абмежаваньне па колькасці ачышчаных клетак
|
||||
STR_ERROR_CLEARING_LIMIT_REACHED :{WHITE}... лiмiт ачышчаных клетак дасягнуты
|
||||
STR_ERROR_NAME_MUST_BE_UNIQUE :{WHITE}Імя павінна быць унікальным
|
||||
STR_ERROR_GENERIC_OBJECT_IN_THE_WAY :{WHITE}{1:STRING} на шляху
|
||||
STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}Забаронена падчас паўзы
|
||||
@@ -3891,7 +3875,7 @@ STR_ERROR_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}... мо
|
||||
STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}... можна будаваць толькі ў гарадах
|
||||
STR_ERROR_CAN_ONLY_BE_BUILT_IN_LOW_AREAS :{WHITE}... можна будаваць толькі ў нізінах
|
||||
STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... можа знаходзіцца толькі ля краю мапы
|
||||
STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... лес можна саджаць толькі вышэй за сьнегавую лiнiю
|
||||
STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... лес можна саджаць толькі вышэй за лінію сьнегу
|
||||
|
||||
# Station construction related errors
|
||||
STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Тут немагчыма пабудаваць чыгуначную станцыю...
|
||||
@@ -3965,7 +3949,7 @@ STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... па
|
||||
STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Склад цягніка можна мяняць толькі ў дэпо
|
||||
STR_ERROR_TRAIN_TOO_LONG :{WHITE}Цягнiк занадта доўгi
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}Не атрымалася разьвярнуць цягнік...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... складаецца з некалькіх частак
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}Немагчыма разьвярнуць шматскладовы транспарт
|
||||
STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Несумяшчальны тып рэйкаў
|
||||
|
||||
STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}Немагчыма перамясьціць трансп. сродак...
|
||||
@@ -3977,7 +3961,7 @@ STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :Няправі
|
||||
|
||||
# Autoreplace related errors
|
||||
STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}ТС «{VEHICLE}» занадта доўгі пасьля замены
|
||||
STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}Правілы аўтазамены/абнаўленьня не былі ўжыты
|
||||
STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}Няма да чаго ўжыць правілы аўтазамены/абнаўленьня
|
||||
STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(мала грошай)
|
||||
|
||||
# Rail construction errors
|
||||
@@ -4039,7 +4023,6 @@ STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Спач
|
||||
STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Іншы тунэль на шляху
|
||||
STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}Тунэль заканчваецца па-за межамі мапы
|
||||
STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}Немагчыма падняць/апусьціць зямлю для іншага канца тунэля
|
||||
STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... тунэль занадта доўгi
|
||||
|
||||
# Object related errors
|
||||
STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... занадта шмат аб'ектаў
|
||||
@@ -4723,7 +4706,6 @@ STR_TINY_BLACK_COMA :{TINYFONT}{BLAC
|
||||
STR_TINY_COMMA :{TINYFONT}{COMMA}
|
||||
STR_BLUE_COMMA :{BLUE}{COMMA}
|
||||
STR_RED_COMMA :{RED}{COMMA}
|
||||
STR_TINY_BLACK_DECIMAL :{TINYFONT}{BLACK}{DECIMAL}
|
||||
STR_COMPANY_MONEY :{WHITE}{CURRENCY}
|
||||
STR_BLACK_DATE_LONG :{BLACK}{DATE_LONG}
|
||||
STR_BLACK_CROSS :{BLACK}{CROSS}
|
||||
|
||||
+382
-399
File diff suppressed because it is too large
Load Diff
@@ -1075,6 +1075,7 @@ STR_REVERSE_AT_END_OF_LINE_ONLY :само в к
|
||||
|
||||
STR_DISASTERS_OFF :изключено
|
||||
STR_DISASTERS_ON :включено
|
||||
|
||||
STR_CITY_APPROVAL_PERMISSIVE :разрешаващи
|
||||
STR_CITY_APPROVAL_TOLERANT :толерантни
|
||||
STR_CITY_APPROVAL_HOSTILE :враждебни
|
||||
@@ -1088,10 +1089,6 @@ STR_CONFIG_SETTING_CAPTION :{WHITE}Наст
|
||||
STR_CONFIG_SETTING_OFF :изключено
|
||||
STR_CONFIG_SETTING_ON :включено
|
||||
STR_CONFIG_SETTING_DISABLED :изключено
|
||||
|
||||
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_BUILDONSLOPES :{LTBLUE}Строене на склонове и брегове: {ORANGE}{STRING.n}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Тераформиране под постройки (autoslope): {ORANGE}{STRING.n}
|
||||
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}По-реалистична зона за обслужване: {ORANGE}{STRING}
|
||||
@@ -1350,7 +1347,6 @@ STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Вла
|
||||
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Градове
|
||||
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Индустрии
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}Пътенамирач за влакове: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_YAPF :YAPF {BLUE}(препоръчва се)
|
||||
@@ -3239,7 +3235,7 @@ STR_ORDER_STOP_ORDER :(Спри)
|
||||
|
||||
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
|
||||
|
||||
STR_ORDER_IMPLICIT :{G=n}(Автоматично)
|
||||
STR_ORDER_AUTOMATIC :{G=n}(Автоматично)
|
||||
|
||||
STR_ORDER_FULL_LOAD :(Напълно натовари)
|
||||
STR_ORDER_FULL_LOAD_ANY :(Напълно натовари какъвто и да е товар)
|
||||
|
||||
+5
-23
@@ -448,7 +448,6 @@ STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Ampliació en l
|
||||
STR_ABOUT_MENU_GIANT_SCREENSHOT :Captura de pantalla de tot el mapa
|
||||
STR_ABOUT_MENU_ABOUT_OPENTTD :Quant a 'OpenTTD'
|
||||
STR_ABOUT_MENU_SPRITE_ALIGNER :Alineador d'sprite
|
||||
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Commuta les caixes delimitadores
|
||||
############ range ends here
|
||||
|
||||
############ range for days starts (also used for the place in the highscore window)
|
||||
@@ -1029,8 +1028,6 @@ STR_DIFFICULTY_LEVEL_SETTING_CITY_APPROVAL :{LTBLUE}Actitud
|
||||
############ range for difficulty settings ends
|
||||
|
||||
STR_NONE :Cap
|
||||
STR_FUNDING_ONLY :Només finança
|
||||
STR_MINIMAL :Mínim
|
||||
STR_NUM_VERY_LOW :Molt Baix
|
||||
STR_NUM_LOW :Baix
|
||||
STR_NUM_NORMAL :Normal
|
||||
@@ -1080,6 +1077,7 @@ STR_REVERSE_AT_END_OF_LINE_ONLY :Només al final
|
||||
|
||||
STR_DISASTERS_OFF :Desactivat
|
||||
STR_DISASTERS_ON :Activat
|
||||
|
||||
STR_CITY_APPROVAL_PERMISSIVE :Permissiu
|
||||
STR_CITY_APPROVAL_TOLERANT :Tolerant
|
||||
STR_CITY_APPROVAL_HOSTILE :Hostil
|
||||
@@ -1093,15 +1091,10 @@ STR_CONFIG_SETTING_CAPTION :{WHITE}Paràmet
|
||||
STR_CONFIG_SETTING_OFF :Inactiu
|
||||
STR_CONFIG_SETTING_ON :Actiu
|
||||
STR_CONFIG_SETTING_DISABLED :desactivat
|
||||
|
||||
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_BUILDONSLOPES :{LTBLUE}Permet construir en desnivells i costes: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Permet modelar el terreny sota edificis, rails, etc. (autopendent): {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}Permet una mida més real de l'àrea d'influència: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}Permet l'esborrat de carreteres, ponts i túnels propietat de les poblacions: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_LENGTH :{LTBLUE}Llargada màxima dels trens: {ORANGE}{STRING} cel·l{P 0:1 a es}
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT :{LTBLUE}Quantitat de fum/xispes del vehicle: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_NONE :Cap
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_ORIGINAL :Original
|
||||
@@ -1120,8 +1113,6 @@ STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}Utilitz
|
||||
STR_CONFIG_SETTING_GRADUAL_LOADING :{LTBLUE}Carrega els vehicles gradualment: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_INFLATION :{LTBLUE}Inflació: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SELECTGOODS :{LTBLUE}Entrega càrregues en una estació només quan hi ha demananda: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :{LTBLUE}Llargada màxima dels ponts: {ORANGE}{STRING} cel·l{P 0:1 a es}
|
||||
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :{LTBLUE}Llargada màxima dels túnels: {ORANGE}{STRING} cel·l{P 0:1 a es}
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}Mètode de construcció de la indústria primària manual: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :cap
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :com les altres indústries
|
||||
@@ -1139,7 +1130,6 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :{LTBLUE}Cues d'
|
||||
STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}Finestra d'avis quan el ratolí és al marc del programa: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_BRIBE :{LTBLUE}Permet subornar a les autoritats locals: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :{LTBLUE}Permet comprar els drets del transport en exclusiva: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD :{LTBLUE}Permet finançar la reconstrucció dels carrers locals: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Permet enviar diners a altres companyies: {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}
|
||||
@@ -1225,7 +1215,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :llarga (31st De
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :curta (31-12-2008)
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31)
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :{LTBLUE}Posa en pausa automàticament en començar un nou joc: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :{LTBLUE}Quan s'estigui en pausa permet: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :sense accions
|
||||
@@ -1355,7 +1344,6 @@ STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trens
|
||||
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Pobles
|
||||
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Indústries
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}Cerca de rutes per trens: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_YAPF :YAPF {BLUE}(Recomanat)
|
||||
@@ -1366,7 +1354,6 @@ STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :{LTBLUE}Cerca d
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :Original {BLUE}(Recomanat)
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(Not recomanat)
|
||||
STR_CONFIG_SETTING_REVERSE_AT_SIGNALS :{LTBLUE}Canvi de sentit automàtic a les senyals: {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Canvia el valor de l'ajustament
|
||||
|
||||
@@ -2486,8 +2473,6 @@ STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING
|
||||
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
|
||||
STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Al joc de gràfics base establert actualment li falten un nombre d'sprites.{}Si us plau actualitza el joc de gràfics base
|
||||
STR_NEWGRF_ERROR_GRM_FAILED :Els recursos GRF demanats no estan disponibles
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{2:STRING} ha estat desactivat per {4:STRING}
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Alerta!
|
||||
@@ -3251,7 +3236,7 @@ STR_ORDER_STOP_ORDER :(Para)
|
||||
|
||||
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
|
||||
|
||||
STR_ORDER_IMPLICIT :(Implícit)
|
||||
STR_ORDER_AUTOMATIC :(Automàtic)
|
||||
|
||||
STR_ORDER_FULL_LOAD :(Carrega del tot)
|
||||
STR_ORDER_FULL_LOAD_ANY :(Carrega del tot qualsevol càrrega)
|
||||
@@ -3265,9 +3250,8 @@ STR_ORDER_TRANSFER_FULL_LOAD :(Transfereix i
|
||||
STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transfereix i espera qualsevol càrrega completa)
|
||||
STR_ORDER_TRANSFER_NO_LOAD :(Transfereix i deixa buit)
|
||||
STR_ORDER_NO_UNLOAD :(No descarreguis i agafa càrrega)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD :(No descarreguis i espera a carregar del tot)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No descarreguis i espera carregar del tot qualsevol càrrega)
|
||||
STR_ORDER_NO_UNLOAD_NO_LOAD :(No descarreguis i no carreguis)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD :(No descarreguis i espera carregar del tot)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No descarreguis i espera carregar del tot de qualsevol càrrega)
|
||||
|
||||
STR_ORDER_STOP_LOCATION_NEAR_END :[extrem més proper]
|
||||
STR_ORDER_STOP_LOCATION_MIDDLE :[a la meitat]
|
||||
@@ -3609,7 +3593,7 @@ STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... ha d
|
||||
STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Els trens només es poden modificar quan estan parats dins d'una cotxera
|
||||
STR_ERROR_TRAIN_TOO_LONG :{WHITE}Tren massa llarg
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}No s'ha pogut invertir el sentit del vehicle...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... està format per múltiples unitats
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}No es poden girar vehicles que estan formats per múltiples unitats
|
||||
STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Tipus de rail incompatible
|
||||
|
||||
STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}No es pot moure el vehicle...
|
||||
@@ -3683,7 +3667,6 @@ STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Primer h
|
||||
STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Un altre túnel en el camí
|
||||
STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}El túnel acabarà fora del mapa
|
||||
STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}Impossible excavar la terra a l'altre extrem del túnel
|
||||
STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... túnel massa llarg
|
||||
|
||||
# Object related errors
|
||||
STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... massa objectes
|
||||
@@ -4247,7 +4230,6 @@ STR_TINY_BLACK_COMA :{TINYFONT}{BLAC
|
||||
STR_TINY_COMMA :{TINYFONT}{COMMA}
|
||||
STR_BLUE_COMMA :{BLUE}{COMMA}
|
||||
STR_RED_COMMA :{RED}{COMMA}
|
||||
STR_TINY_BLACK_DECIMAL :{TINYFONT}{BLACK}{DECIMAL}
|
||||
STR_COMPANY_MONEY :{WHITE}{CURRENCY}
|
||||
STR_BLACK_DATE_LONG :{BLACK}{DATE_LONG}
|
||||
STR_BLACK_CROSS :{BLACK}{CROSS}
|
||||
|
||||
+4
-22
@@ -543,7 +543,6 @@ STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Zumirano u slic
|
||||
STR_ABOUT_MENU_GIANT_SCREENSHOT :Slika zaslona cijele mape
|
||||
STR_ABOUT_MENU_ABOUT_OPENTTD :O 'OpenTTD'
|
||||
STR_ABOUT_MENU_SPRITE_ALIGNER :Poravnjanje sprite-a
|
||||
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Odaberi granične okvire
|
||||
############ range ends here
|
||||
|
||||
############ range for days starts (also used for the place in the highscore window)
|
||||
@@ -1124,8 +1123,6 @@ STR_DIFFICULTY_LEVEL_SETTING_CITY_APPROVAL :{LTBLUE}Stav gr
|
||||
############ range for difficulty settings ends
|
||||
|
||||
STR_NONE :Ništa
|
||||
STR_FUNDING_ONLY :Samo financiranje
|
||||
STR_MINIMAL :Minimalno
|
||||
STR_NUM_VERY_LOW :Vrlo nisko
|
||||
STR_NUM_LOW :Nisko
|
||||
STR_NUM_NORMAL :Normalno
|
||||
@@ -1175,6 +1172,7 @@ STR_REVERSE_AT_END_OF_LINE_ONLY :Isključivo na
|
||||
|
||||
STR_DISASTERS_OFF :Isključeno
|
||||
STR_DISASTERS_ON :Uključeno
|
||||
|
||||
STR_CITY_APPROVAL_PERMISSIVE :Dopustiv
|
||||
STR_CITY_APPROVAL_TOLERANT :Tolerantan
|
||||
STR_CITY_APPROVAL_HOSTILE :Agresivan
|
||||
@@ -1188,15 +1186,10 @@ STR_CONFIG_SETTING_CAPTION :{WHITE}Napredne
|
||||
STR_CONFIG_SETTING_OFF :Isključeno
|
||||
STR_CONFIG_SETTING_ON :Uključeno
|
||||
STR_CONFIG_SETTING_DISABLED :onemogućeno
|
||||
|
||||
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_BUILDONSLOPES :{LTBLUE}Dopusti izgradnju na kosinama i obalama: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :{LTBLUE}Dopusti modeliranje zemlje ispod građevina, tračnica, itd (autonagib): {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_CATCHMENT :{LTBLUE}Dopusti realističnije veličine područja zahvaćanja: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_EXTRADYNAMITE :{LTBLUE}Dopusti rušenje više cesta, mostova i tunela u vlasništvu grada: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_LENGTH :{LTBLUE}Najveća dužina vlakova: {ORANGE}{STRING} tile
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT :{LTBLUE}Količina dima/iskri za lokomotive: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_NONE :Nema
|
||||
STR_CONFIG_SETTING_SMOKE_AMOUNT_ORIGINAL :Original
|
||||
@@ -1215,8 +1208,6 @@ STR_CONFIG_SETTING_IMPROVEDLOAD :{LTBLUE}Koristi
|
||||
STR_CONFIG_SETTING_GRADUAL_LOADING :{LTBLUE}Postupno utovaruj u vozila: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_INFLATION :{LTBLUE}Inflacija: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_SELECTGOODS :{LTBLUE}Dostavi teret na postaju samo ako na njoj postoji potražnja: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :{LTBLUE}Najveća dužina mostova: {ORANGE}{STRING} tile
|
||||
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :{LTBLUE}Najveća dužina tunela: {ORANGE}{STRING} tile
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}Ručna metoda izgradnje primarne industrije: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :nijedna
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :kao i druge industrije
|
||||
@@ -1234,7 +1225,6 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :{LTBLUE}Nizanje
|
||||
STR_CONFIG_SETTING_AUTOSCROLL :{LTBLUE}Pomakni prozor kada je miš na rubu: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_BRIBE :{LTBLUE}Dopusti potkupljivanje lokalne samouprave: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :{LTBLUE}Dopusti kupovinu ekskluzivnih prijevoznih prava: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_FUND_ROAD :{LTBLUE}Dozvoli financiranje rekonstrukcije lokalnih cesta: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :{LTBLUE}Dopusti slanje novca drugim tvrtkama: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_FREIGHT_TRAINS :{LTBLUE}Težinski množitelj za teret za simulaciju teških vlakova: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_PLANE_SPEED :{LTBLUE}Faktor brzine zrakoplova: {ORANGE}1 / {STRING}
|
||||
@@ -1320,7 +1310,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :dugo (31st Dec
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kratko (31-12-2008)
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31)
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :{LTBLUE}Automatski pauziraj prilikom pokretanja nove igre: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :{LTBLUE}Kod pauze dozvoli: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :nijedna akcija
|
||||
@@ -1450,7 +1439,6 @@ STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Vlakovi
|
||||
STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Gradovi
|
||||
STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrije
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :{LTBLUE}Pronalaženje putanje za vlakove: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_YAPF :YAPF {BLUE}(Preporučljivo)
|
||||
@@ -1461,7 +1449,6 @@ STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :{LTBLUE}Pronala
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_OPF :Original {BLUE}(Preporučljivo)
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_NPF :NPF
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_YAPF :YAPF {RED}(Nije preporučljivo)
|
||||
STR_CONFIG_SETTING_REVERSE_AT_SIGNALS :{LTBLUE}Automatsko okretanje na signalima: {ORANGE}{STRING}
|
||||
|
||||
STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Promijeni vrijednost postavke
|
||||
|
||||
@@ -2581,8 +2568,6 @@ STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING
|
||||
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sadrži višestruke Action 8 unose
|
||||
STR_NEWGRF_ERROR_READ_BOUNDS :Učitavanje izvan kraja pseudo-spritea.
|
||||
STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Baznom grafičkom setu u uporabi nedostaju neki spriteovi.{}Ažurirajte bazni grafički set
|
||||
STR_NEWGRF_ERROR_GRM_FAILED :Zatraženi GRF resursi nisu raspoloživi
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{2:STRING} je isključen od strane {4:STRING}
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Oprez!
|
||||
@@ -3346,7 +3331,7 @@ STR_ORDER_STOP_ORDER :(Stani)
|
||||
|
||||
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
|
||||
|
||||
STR_ORDER_IMPLICIT :(Implicitno)
|
||||
STR_ORDER_AUTOMATIC :(Automatsko)
|
||||
|
||||
STR_ORDER_FULL_LOAD :(Puni ukrcaj)
|
||||
STR_ORDER_FULL_LOAD_ANY :(Puni ukrcaj bilo kojeg tereta)
|
||||
@@ -3361,8 +3346,7 @@ STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transferiraj i
|
||||
STR_ORDER_TRANSFER_NO_LOAD :(Transferiraj i otiđi prazan)
|
||||
STR_ORDER_NO_UNLOAD :(Preuzmi teret bez iskrcavanja)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD :(Čekaj puni ukrcaj bez iskrcavanja)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Čekaj bilo koji puni ukrcaj bez iskrcavanja)
|
||||
STR_ORDER_NO_UNLOAD_NO_LOAD :(Bez iskrcaja i bez ukrcaja)
|
||||
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Čeaj bilo koji puni ukrcaj bez iskrcavanja)
|
||||
|
||||
STR_ORDER_STOP_LOCATION_NEAR_END :[početak]
|
||||
STR_ORDER_STOP_LOCATION_MIDDLE :[sredina]
|
||||
@@ -3704,7 +3688,7 @@ STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... mora
|
||||
STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Vlakovi mogu biti izmjenjeni jedino kad su zaustavljeni u spremištu
|
||||
STR_ERROR_TRAIN_TOO_LONG :{WHITE}Predugačak vlak
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}Nije moguće promjeniti smjer vozila...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... sastoji se od više jedinica
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}Nije moguće promijeniti smjer vozila koja se sastoje od više jedinica...
|
||||
STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Nekompatibilna vrsta tračnica
|
||||
|
||||
STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}Nije moguće ukloniti vozilo...
|
||||
@@ -3778,7 +3762,6 @@ STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Najprije
|
||||
STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Smeta drugi tunel
|
||||
STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}Tunel bi završio izvan karte
|
||||
STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}Ne moguće iskopoati zemlju na drugoj strani tunela
|
||||
STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... tunel predugačak
|
||||
|
||||
# Object related errors
|
||||
STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... previše objekata
|
||||
@@ -4379,7 +4362,6 @@ STR_TINY_BLACK_COMA :{TINYFONT}{BLAC
|
||||
STR_TINY_COMMA :{TINYFONT}{COMMA}
|
||||
STR_BLUE_COMMA :{BLUE}{COMMA}
|
||||
STR_RED_COMMA :{RED}{COMMA}
|
||||
STR_TINY_BLACK_DECIMAL :{TINYFONT}{BLACK}{DECIMAL}
|
||||
STR_COMPANY_MONEY :{WHITE}{CURRENCY}
|
||||
STR_BLACK_DATE_LONG :{BLACK}{DATE_LONG}
|
||||
STR_BLACK_CROSS :{BLACK}{CROSS}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user