mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2026-09-15 21:09:28 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c91b5dffd4 |
@@ -26,13 +26,11 @@ endif
|
||||
# An OSX application bundle needs the data files, lang files and openttd executable in a different location.
|
||||
ifdef OSXAPP
|
||||
AI_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/ai
|
||||
GAME_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/game
|
||||
BASESET_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/baseset
|
||||
LANG_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/lang
|
||||
TTD_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/MacOS
|
||||
else
|
||||
AI_DIR = $(BUNDLE_DIR)/ai
|
||||
GAME_DIR = $(BUNDLE_DIR)/game
|
||||
BASESET_DIR = $(BUNDLE_DIR)/baseset
|
||||
LANG_DIR = $(BUNDLE_DIR)/lang
|
||||
TTD_DIR = $(BUNDLE_DIR)
|
||||
@@ -47,7 +45,6 @@ bundle: all
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/scripts"
|
||||
$(Q)mkdir -p "$(TTD_DIR)"
|
||||
$(Q)mkdir -p "$(AI_DIR)"
|
||||
$(Q)mkdir -p "$(GAME_DIR)"
|
||||
$(Q)mkdir -p "$(BASESET_DIR)"
|
||||
$(Q)mkdir -p "$(LANG_DIR)"
|
||||
ifdef OSXAPP
|
||||
@@ -62,7 +59,6 @@ ifeq ($(OS),UNIX)
|
||||
endif
|
||||
$(Q)cp "$(BIN_DIR)/$(TTD)" "$(TTD_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/ai/"compat_*.nut "$(AI_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/game/"compat_*.nut "$(GAME_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/baseset/"*.grf "$(BASESET_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/baseset/"*.obg "$(BASESET_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/baseset/"*.obs "$(BASESET_DIR)/"
|
||||
|
||||
+1
-2
@@ -36,7 +36,6 @@ endif
|
||||
|
||||
GRFCODEC := !!GRFCODEC!!
|
||||
NFORENUM := !!NFORENUM!!
|
||||
CC_BUILD := !!CC_BUILD!!
|
||||
MD5SUM := $(shell [ "$(OS)" = "OSX" ] && echo "md5 -r" || echo "md5sum")
|
||||
|
||||
# Some "should not be changed" settings.
|
||||
@@ -64,7 +63,7 @@ $(BIN_DIR)/openttd.grf: $(OBJS_DIR)/openttd.grf
|
||||
$(OBJS_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites
|
||||
$(E) '$(STAGE) Assembling openttd.nfo'
|
||||
$(Q)-cp $(PNG_FILES) $(OBJS_DIR)/sprites 2> /dev/null
|
||||
$(Q) $(CC_BUILD) -nostdinc -I$(GRF_DIR) -C -E - < "$(GRF_DIR)/openttd.nfo" | sed -e '/^#/d' -e '/^$$/d' > $(OBJS_DIR)/sprites/openttd.nfo
|
||||
$(Q) gcc -I$(GRF_DIR) -C -E - < "$(GRF_DIR)/openttd.nfo" | sed -e '/^#/d' -e '/^$$/d' > $(OBJS_DIR)/sprites/openttd.nfo
|
||||
$(Q) $(NFORENUM) -s $(OBJS_DIR)/sprites/openttd.nfo
|
||||
$(E) '$(STAGE) Compiling openttd.grf'
|
||||
$(Q) $(GRFCODEC) -n -s -e -p1 $(OBJS_DIR)/openttd.grf
|
||||
|
||||
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 = c683a77e1a43aed7db29ef318b166dd9
|
||||
OPENTTD.GRF = 891f2dc7c81346d8fd5fbf4cf42dc5bd
|
||||
|
||||
[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 = c683a77e1a43aed7db29ef318b166dd9
|
||||
OPENTTD.GRF = 891f2dc7c81346d8fd5fbf4cf42dc5bd
|
||||
|
||||
[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 = c683a77e1a43aed7db29ef318b166dd9
|
||||
OPENTTD.GRF = 891f2dc7c81346d8fd5fbf4cf42dc5bd
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
||||
+3
-83
@@ -1,83 +1,3 @@
|
||||
1.3.0-RC3 (2013-03-18)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: Limit aircraft property 0D to 19, since the conversion result to km-ish/h needs to fit into a byte [FS#5492] (r25099)
|
||||
- Fix: Clicking the statusbar crashed, when news were pending but no news were shown yet [FS#5486] (r25093)
|
||||
- Fix: Make editbox character filters also apply to pasted content from clipboard (r25090, r25089)
|
||||
- Fix: Catch exception anonymously, if the exception content is not of interest [FS#5500] (r25081)
|
||||
|
||||
|
||||
1.3.0-RC2 (2013-03-05)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: Make sizes of the station preview list and direction selection identical in the station build window [FS#5472] (r25064)
|
||||
- Fix: When allocation of the sprite cache fails, try to allocate less memory and display an error message later on (r25061)
|
||||
- Fix: Refactor Script Debug GUI to only set widget states in OnInvalidateData [FS#5490] (r25052)
|
||||
- Fix: Do not let gcc include files from the "standard C" include directories to avoid inclusion of header files at the top of the preprocessed nfo files, which cause NFOrenum/GRFcodec to make invalid assumptions about the NFO version (r25050)
|
||||
- Fix: Minimise gaps feature caused removal to only happen at the signal build interval instead of the implicit interval of 1 [FS#5479] (r25038)
|
||||
- Fix: Green path signals would be shown when building them 'under' a train, and they would keep showing green until they were passed again [FS#5480] (r25037)
|
||||
|
||||
|
||||
1.3.0-RC1 (2013-02-19)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: Searching of (missing) content via GrfCrawler (r25024, r25023)
|
||||
- Change: Cleanup goals and cargo monitors of companies when they go bankrupt or are taken over (r24986)
|
||||
- Change: Apply the same name sorting rules to content and NewGRF list as for the server list (r24983)
|
||||
- Fix: [SDL] Crash after bootstrap download of 32bits base set due to referencing a deleted mutex [FS#5466] (r25017)
|
||||
- Fix: [SDL] Improve 8bpp hardware palette support. Instead of always requesting SDL_HWPALETTE, it is now only done for 8bp blitters in fullscreen mode (r25003, r25002, r24993)
|
||||
- Fix: Set vehicle's service interval is percent flag appropriately on creation [FS#5137] (r24998)
|
||||
- Fix: When choosing a train in a depot to attach a newly purchased wagon to, do not consider trains currently moving in and out of the depot (r24987)
|
||||
- Fix: [Script] Crash when passing too many parameters [FS#5465] (r24982, r24981, r24980)
|
||||
|
||||
|
||||
1.3.0-beta2 (2013-02-07)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: [NewGRF] Station randomisation triggers (r24906, r24905)
|
||||
- Feature: Settings type filter included in the advanced settings GUI (r24862, r24863)
|
||||
- Change: Revert to opening the vehicle GUI again when cloning vehicles using the clone-button from the depot GUI [FS#4458] (r24955)
|
||||
- Fix: Additional zoom in levels could glitch by a few pixels due to incorrect rounding [FS#5463] (r24975)
|
||||
- Fix: Honour pause_on_newgame setting when running as a dedicated server [FS#5279] (r24974)
|
||||
- Fix: [NewGRF] Prevent access to tile-based variables when tile is invalid [FS#5462] (r24973)
|
||||
- Fix: Do not make overbuilding rivers with canals insanely expensive [FS#5258] (r24972)
|
||||
- Fix: Crash when an infinite loop occurred during loading of a script [FS#5346] (r24970)
|
||||
- Fix: company window was not updated when shares were enabled/disabled [FS#5379] (r24968)
|
||||
- Fix: Trams would get stuck on water [FS#5228] (r24966)
|
||||
- Fix: With YAPF the docking behaviour differed per direction; now favour docking in the direction you approached [FS#5416] (r24964)
|
||||
- Fix: Do not stop loading if there are reservations left [FS#5435] (r24963)
|
||||
- Fix: Reserve all capacity while unloading to avoid 'stealing' cargo, i.e. loading cargo onto a second vehicle when the first cannot be fully filled yet [FS#5438] (r24962)
|
||||
- Fix: If a platform is enlarged and there is a reservation, reserve the whole platform [FS#5362] (r24961)
|
||||
- Fix: Inconsistencies in the 'thanks to' lists [FS#5423] (r24960)
|
||||
- Fix: Set 'replace when old' flag when replacing an autoreplace (r24950)
|
||||
- Fix: Deleting implicit orders was not able to deal with the various side-effects of DeleteOrder [FS#5452] (r24944)
|
||||
- Fix: Redraw autoreplace window properly in network games (r24939)
|
||||
- Fix: Never put a space between cargo name and subtype [FS#5447] (r24938)
|
||||
- Fix: Do not allow order refit to be set for no-load orders [FS#5446] (r24936)
|
||||
- Fix: Make group names unique per company and vehicle type [FS#3473] (r24933)
|
||||
- Fix: Prevent more NewGRFs being selected than is possible to load [FS#5158] (r24932)
|
||||
- Fix: [GS] Do not try to pause or unpause crashed scripts [FS#5415] (r24929)
|
||||
- Fix: [Squirrel] Update line information before processing 'while' token of 'do'-'while' statement [FS#5408] (r24928)
|
||||
- Fix: Add a tooltip to the mapsize selection mentioning possible deviations [FS#5395] (r24925)
|
||||
- Fix: When an object built on a river is removed, restore the river [FS#5441] (r24923)
|
||||
- Fix: Upgrading bridges could steal road types [FS#5389] (r24912)
|
||||
- Fix: [GS] Allow GSs to pass negative integer string parameters (r24908)
|
||||
- Fix: 'Train loads/unloads cargo' station animation triggers on individual platform (r24904)
|
||||
- Fix: Cached station animation triggers were only set when removing parts of a station (r24903)
|
||||
- Fix: The station build window did not update when the station spread changed [FS#5434] (r24899)
|
||||
- Fix: Do not unpause the game when closing the highscore window if it was already paused before the highscore screen was shown (r24898)
|
||||
- Fix: Improvements and fixes for the base translation [FS#5411, FS#5420, FS#5421, FS#5422, FS#5427] (r24896, r24875, r24872, r24869)
|
||||
- Fix: Allow downgrade of road bridges in the scenario editor [FS#5436] (r24895)
|
||||
- Fix: Invalidate station selection window when station spread changes [FS#5434] (r24894)
|
||||
- Fix: Distribute GS compat_<version>.nut with OpenTTD (r24890)
|
||||
- Fix: Pass proper UTF-16 strings instead of UCS-2 to ICU in order to preserve characters outside the BMP (r24885)
|
||||
- Fix: A completely emptied vehicle could trigger an assert (r24883)
|
||||
- Fix: Desync when NewGRF changes the stats related to acceleration (power, weight, tractive effort, etc) during service or 32 day triggers (r24882)
|
||||
- Fix: Incorrect Romanian own name (r24874)
|
||||
- Fix: Make invalid sprite references to mapgen sprites behave the same as invalid references between recolour and real sprites [FS#5404] (r24858)
|
||||
- Fix: Do not let UFOs and coal mines clear water (r24857)
|
||||
- Fix: Do not let UFOs and coal mines destroy depots [FS#5406] (r24856)
|
||||
- Fix: Do not send aircraft to depots that are out of range of the next destination [FS#5405] (r24855)
|
||||
- Fix: Only consider vehicles available in the climate for purchase/depot cell size (r24854)
|
||||
- Fix: Extend widget data member to 32 bits so that sprite IDs >= 2^16 can be used (r24853)
|
||||
|
||||
|
||||
1.3.0-beta1 (2012-12-24)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: Advanced settings to disable certain sound effects (r24846)
|
||||
@@ -165,8 +85,8 @@
|
||||
- Change: [NewGRF] Make bounding boxes of road vehicles change according to the vehicle length to make alignment easier [FS#5204] (r24331)
|
||||
- Fix: [NewGRF] Consider regearing-like cargos as no-cargo in cargo filters [FS#5386] (r24848)
|
||||
- Fix: [NewGRF] Draw NewGRF railtypes in NewGRF station previews (r24840)
|
||||
- Fix: Do not consider blocked rail station tiles that display wires as non-reachable for masking out unnecessary catenary wires (r24837)
|
||||
- Fix: The autorefit dropdown in the order GUI was not always updated when modifying vehicle consists [FS#5396] (r24834)
|
||||
- Fix: Don't consider blocked rail station tiles that display wires as non-reachable for masking out unnecessary catenary wires (r24837)
|
||||
- Fix: The autorefit dropdown in the order GUI wasn't always updated when modifying vehicle consists [FS#5396] (r24834)
|
||||
- Fix: [NewGRF] Incorrect values are better than a crash when a NewGRF queries vehicle variable 4C before vehicle initialisation is completed [FS#5398] (r24831)
|
||||
- Fix: determineversion.vbs could hang in a git checkout (r24826)
|
||||
- Fix: Close pending preview windows when the engine is introduced to everyone (r24812)
|
||||
@@ -406,7 +326,7 @@
|
||||
- Fix: [SDL] Handle the SDL_VIDEOEXPOSE event to solve issues with SDL 1.3 (r23910)
|
||||
- Fix: [SDL] Fix keyboard-related segfault when compiling against SDL 1.3 (r23909)
|
||||
- Fix: [Makefile] Make sure bin/baseset/openttd.32.bmp is removed on make clean (r23908)
|
||||
- Fix: [Makefile] Let 'make clean --dry-run' not delete Makefiles (r23907)
|
||||
- Fix: [Makefile] Let "make clean --dry-run" not delete Makefiles (r23907)
|
||||
- Fix: [Windows installer] OpenMSX got downloaded to and extracted in the wrong (non-existent) folder [FS#5045] (r23905)
|
||||
- Fix: Memory leak everytime one clicked a savegame in the load GUI (r23901)
|
||||
- Fix: [NewGRF] It was not possible to import sounds from a NewGRF later in the load order (r23883)
|
||||
|
||||
+6
-9
@@ -3169,9 +3169,9 @@ detect_grfcodec() {
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "949" ]; then
|
||||
if [ -n "$version" ] && [ "$version" -lt "949" ]; then
|
||||
log 1 "checking grfcodec... needs at least version 6.0.2 (r949), disabled"
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "913" ]; then
|
||||
if [ -n "$version" ] && [ "$version" -lt "913" ]; then
|
||||
log 1 "checking grfcodec... needs at least version 5.1.4 (r913), disabled"
|
||||
else
|
||||
log 1 "checking grfcodec... not found"
|
||||
fi
|
||||
@@ -3211,9 +3211,9 @@ detect_nforenum() {
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "949" ]; then
|
||||
if [ -n "$version" ] && [ "$version" -lt "949" ]; then
|
||||
log 1 "checking nforenum... needs at least version 6.0.2 (r949), disabled"
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "913" ]; then
|
||||
if [ -n "$version" ] && [ "$version" -lt "913" ]; then
|
||||
log 1 "checking nforenum... needs at least version 5.1.4 (r913), disabled"
|
||||
else
|
||||
log 1 "checking nforenum... not found"
|
||||
fi
|
||||
@@ -3648,9 +3648,6 @@ showhelp() {
|
||||
echo " LDFLAGS linker flags, e.g. -L<lib dir> if you"
|
||||
echo " have libraries in a nonstandard"
|
||||
echo " directory <lib dir>"
|
||||
echo " CFLAGS_BUILD C compiler flags for build time tool generation"
|
||||
echo " CXXFLAGS_BUILD C++ compiler flags for build time tool generation"
|
||||
echo " LDFLAGS_BUILD linker flags for build time tool generation"
|
||||
echo ""
|
||||
echo "Use these variables to override the choices made by 'configure' or to help"
|
||||
echo "it to find libraries and programs with nonstandard names/locations."
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// 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/>.
|
||||
//
|
||||
-1 * 0 0C "OpenTTD GUI graphics"
|
||||
-1 * 3 05 15 \b 168 // OPENTTD_SPRITE_COUNT
|
||||
-1 * 3 05 15 A8
|
||||
-1 sprites/openttdgui.png 8bpp 66 8 64 31 -31 7 normal
|
||||
-1 sprites/openttdgui.png 8bpp 146 8 64 31 -31 7 normal
|
||||
-1 sprites/openttdgui.png 8bpp 226 8 64 31 -31 7 normal
|
||||
|
||||
+47
-71
@@ -1,302 +1,278 @@
|
||||
openttd (1.3.0~RC3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0-RC3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Mon, 18 Mar 2013 00:00:00 +0100
|
||||
|
||||
openttd (1.3.0~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0-RC2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 05 Mar 2013 00:00:00 +0100
|
||||
|
||||
openttd (1.3.0~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 19 Feb 2013 00:00:00 +0100
|
||||
|
||||
openttd (1.3.0~beta2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0-beta2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Thu, 07 Feb 2013 00:00:00 +0100
|
||||
|
||||
openttd (1.3.0~beta1) unstable; urgency=low
|
||||
openttd (1.3.0-beta1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0-beta1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Mon, 24 Dec 2012 00:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 24 Dec 2012 00:00:00 +0100
|
||||
|
||||
openttd (1.2.3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Thu, 01 Nov 2012 00:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 01 Nov 2012 00:00:00 +0200
|
||||
|
||||
openttd (1.2.3~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.3-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Wed, 17 Oct 2012 00:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 17 Oct 2012 00:00:00 +0200
|
||||
|
||||
openttd (1.2.2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Thu, 16 Aug 2012 20:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 16 Aug 2012 20:00:00 +0200
|
||||
|
||||
openttd (1.2.2~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.2-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Wed, 01 Aug 2012 00:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Aug 2012 00:00:00 +0200
|
||||
|
||||
openttd (1.2.1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 01 Jun 2012 00:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 01 Jun 2012 00:00:00 +0200
|
||||
|
||||
openttd (1.2.1~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.1-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Wed, 16 Apr 2012 22:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 16 Apr 2012 22:00:00 +0200
|
||||
|
||||
openttd (1.2.0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 15 Apr 2012 14:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 Apr 2012 14:00:00 +0200
|
||||
|
||||
openttd (1.2.0~RC4) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-RC4
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 01 Apr 2012 00:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 01 Apr 2012 00:00:00 +0200
|
||||
|
||||
openttd (1.2.0~RC3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-RC3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 18 Mar 2012 18:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 18 Mar 2012 18:00:00 +0100
|
||||
|
||||
openttd (1.2.0~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-RC2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 04 Mar 2012 18:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 04 Mar 2012 18:00:00 +0100
|
||||
|
||||
openttd (1.2.0~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 19 Feb 2012 23:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 19 Feb 2012 23:00:00 +0100
|
||||
|
||||
openttd (1.2.0~beta4) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-beta4
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 04 Feb 2012 16:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 04 Feb 2012 16:00:00 +0100
|
||||
|
||||
openttd (1.2.0~beta3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-beta3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 21 Jan 2012 16:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 21 Jan 2012 16:00:00 +0100
|
||||
|
||||
openttd (1.2.0~beta2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-beta2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 07 Jan 2012 00:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 07 Jan 2012 00:00:00 +0100
|
||||
|
||||
openttd (1.2.0~beta1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-beta1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 24 Dec 2011 00:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 24 Dec 2011 00:00:00 +0100
|
||||
|
||||
openttd (1.1.4) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.4
|
||||
|
||||
-- OpenTTD <info@openttd.org> Mon, 05 Dec 2011 00:00:00 +0400
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 05 Dec 2011 00:00:00 +0400
|
||||
|
||||
openttd (1.1.4-RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.4-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 20 Nov 2011 17:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 20 Nov 2011 17:00:00 +0100
|
||||
|
||||
openttd (1.1.3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Thu, 15 Sep 2011 21:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 15 Sep 2011 21:00:00 +0200
|
||||
|
||||
openttd (1.1.3-RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.3-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 04 Sep 2011 17:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 04 Sep 2011 17:00:00 +0200
|
||||
|
||||
openttd (1.1.2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 14 Aug 2011 17:00:00 +0200
|
||||
-- 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
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 30 Jul 2011 21:00:00 +0200
|
||||
-- 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
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 24 Jul 2011 21:00:00 +0200
|
||||
-- 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
|
||||
|
||||
-- OpenTTD <info@openttd.org> Wed, 01 Jun 2011 00:00:00 +0200
|
||||
-- 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
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 15 May 2011 21:00:00 +0200
|
||||
-- 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
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 01 Apr 2011 00:00:00 +0100
|
||||
-- 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
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 18 Mar 2011 22:00:00 +0100
|
||||
-- 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
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 04 Mar 2011 22:00:00 +0100
|
||||
-- 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
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 18 Feb 2011 22:00:00 +0100
|
||||
-- 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
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 04 Feb 2011 22:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 04 Feb 2011 22:00:00 +0100
|
||||
|
||||
openttd (1.1.0~beta4) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-beta4
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 21 Jan 2011 00:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 21 Jan 2011 00:00:00 +0100
|
||||
|
||||
openttd (1.1.0~beta3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-beta3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 09 Jan 2011 18:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 09 Jan 2011 18:00:00 +0100
|
||||
|
||||
openttd (1.1.0~beta2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-beta2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 31 Dec 2010 18:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 31 Dec 2010 18:00:00 +0100
|
||||
|
||||
openttd (1.1.0~beta1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-beta1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 24 Dec 2010 00:00:00 +0100
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 24 Dec 2010 00:00:00 +0100
|
||||
|
||||
openttd (1.0.5-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.5
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 20 Nov 2010 21:00:00 +0000
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 20 Nov 2010 21:00:00 +0000
|
||||
|
||||
openttd (1.0.5~rc2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.5~rc2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 14 Nov 2010 15:00:00 +0000
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 14 Nov 2010 15:00:00 +0000
|
||||
|
||||
openttd (1.0.5~rc1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.5-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 31 Oct 2010 15:00:00 +0000
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 31 Oct 2010 15:00:00 +0000
|
||||
|
||||
openttd (1.0.4-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.4
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 14 Sep 2010 20:00:00 +0000
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 14 Sep 2010 20:00:00 +0000
|
||||
|
||||
openttd (1.0.4~rc1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.4-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Mon, 30 Aug 2010 20:00:00 +0000
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 30 Aug 2010 20:00:00 +0000
|
||||
|
||||
openttd (1.0.3-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 01 Aug 2010 00:00:00 +0000
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 01 Aug 2010 00:00:00 +0000
|
||||
|
||||
openttd (1.0.3~rc1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.3-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 05 Jul 2010 17:37:21 +0000
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 05 Jul 2010 17:37:21 +0000
|
||||
|
||||
openttd (1.0.2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 19 Jun 2010 18:36:21 +0000
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 19 Jun 2010 18:36:21 +0000
|
||||
|
||||
openttd (1.0.2~rc1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.2-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 05 Jun 2010 23:36:21 +0000
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 05 Jun 2010 23:36:21 +0000
|
||||
|
||||
openttd (1.0.1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 01 May 2010 00:00:00 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 01 May 2010 00:00:00 +0200
|
||||
|
||||
openttd (1.0.1~rc2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.1-RC2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Wed, 21 Apr 2010 21:36:21 +0200
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 21 Apr 2010 21:36:21 +0200
|
||||
|
||||
openttd (1.0.1~rc1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.1-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 17 Apr 2010 23:36:21 +0000
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 17 Apr 2010 23:36:21 +0000
|
||||
|
||||
openttd (1.0.0-1) unstable; urgency=low
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
|
||||
set OPENTTD_VERSION=1.3.0-RC3
|
||||
set OPENTTD_VERSION=1.3.0-beta1
|
||||
set OPENSFX_VERSION=0.8.0
|
||||
set NOSOUND_VERSION=0.8.0
|
||||
set OPENGFX_VERSION=1.2.0
|
||||
|
||||
+2
-4
@@ -17,9 +17,9 @@
|
||||
#
|
||||
|
||||
Name: openttd
|
||||
Version: 1.3.beta2
|
||||
Version: 1.3.beta1
|
||||
Release: 0
|
||||
%define srcver 1.3.0-beta2
|
||||
%define srcver 1.3.0-beta1
|
||||
Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe
|
||||
License: GPL-2.0
|
||||
Group: Amusements/Games/Strategy/Other
|
||||
@@ -227,13 +227,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
%dir %{_datadir}/%{name}/baseset
|
||||
%dir %{_datadir}/%{name}/scripts
|
||||
%dir %{_datadir}/%{name}/ai
|
||||
%dir %{_datadir}/%{name}/game
|
||||
%{_datadir}/doc/%{name}/*
|
||||
%{_datadir}/%{name}/lang/*
|
||||
%{_datadir}/%{name}/baseset/*
|
||||
%{_datadir}/%{name}/scripts/*
|
||||
%{_datadir}/%{name}/ai/*
|
||||
%{_datadir}/%{name}/game/*
|
||||
%doc %{_mandir}/man6/%{name}.6.*
|
||||
|
||||
%files gui
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
!define APPV_MAJOR 1
|
||||
!define APPV_MINOR 3
|
||||
!define APPV_MAINT 0
|
||||
!define APPV_BUILD 4
|
||||
!define APPV_EXTRA "-RC3"
|
||||
!define APPV_BUILD 0
|
||||
!define APPV_EXTRA "-beta1"
|
||||
|
||||
!define APPNAME "OpenTTD" ; Define application name
|
||||
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
|
||||
@@ -124,10 +124,6 @@ Section "!OpenTTD" Section1
|
||||
SetOutPath "$INSTDIR\ai\"
|
||||
File ${PATH_ROOT}bin\ai\compat_*.nut
|
||||
|
||||
; Copy Game Script files
|
||||
SetOutPath "$INSTDIR\game\"
|
||||
File ${PATH_ROOT}bin\game\compat_*.nut
|
||||
|
||||
; Copy data files
|
||||
SetOutPath "$INSTDIR\baseset\"
|
||||
File ${PATH_ROOT}bin\baseset\*.grf
|
||||
@@ -402,9 +398,6 @@ Section "Uninstall"
|
||||
; AI files
|
||||
Delete "$INSTDIR\ai\compat_*.nut"
|
||||
|
||||
; Game Script files
|
||||
Delete "$INSTDIR\game\compat_*.nut"
|
||||
|
||||
; Baseset files
|
||||
Delete "$INSTDIR\baseset\opntitle.dat"
|
||||
Delete "$INSTDIR\baseset\openttd.grf"
|
||||
@@ -476,7 +469,6 @@ Section "Uninstall"
|
||||
RMDir "$SMPROGRAMS\$SHORTCUTS\Docs\"
|
||||
RMDir "$SMPROGRAMS\$SHORTCUTS"
|
||||
RMDir "$INSTDIR\ai"
|
||||
RMDir "$INSTDIR\game"
|
||||
RMDir "$INSTDIR\data"
|
||||
RMDir "$INSTDIR\baseset"
|
||||
RMDir "$INSTDIR\gm"
|
||||
|
||||
@@ -59,12 +59,6 @@
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\arabic_egypt.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\basque.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating basque language file</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\basque.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\belarusian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating belarusian language file</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
|
||||
|
||||
@@ -13,9 +13,6 @@
|
||||
<CustomBuild Include="..\src\lang\arabic_egypt.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\basque.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\belarusian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
|
||||
@@ -93,21 +93,6 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\basque.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating basque language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
exit 0
"
|
||||
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
|
||||
Outputs="..\bin\lang\basque.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\belarusian.txt"
|
||||
>
|
||||
|
||||
@@ -94,21 +94,6 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\basque.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating basque language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
exit 0
"
|
||||
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
|
||||
Outputs="..\bin\lang\basque.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\belarusian.txt"
|
||||
>
|
||||
|
||||
+4
-3
@@ -1,6 +1,6 @@
|
||||
OpenTTD readme
|
||||
Last updated: 2013-03-18
|
||||
Release version: 1.3.0-RC3
|
||||
Last updated: 2012-12-24
|
||||
Release version: 1.3.0-beta1
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -670,7 +670,7 @@ Retired Developers:
|
||||
|
||||
Thanks to:
|
||||
Josef Drexler - For his great work on TTDPatch.
|
||||
Marcin Grzegorczyk - For his TTDPatch work and documentation of Transport Tycoon Deluxe internals and track foundations
|
||||
Marcin Grzegorczyk - For his TTDPatch work and documentation of Transport Tycoon Deluxe internals and graphics (signals and track foundations)
|
||||
Petr Baudiš (pasky) - Many patches, newgrf support, etc.
|
||||
Simon Sasburg (HackyKid) - For the many bugfixes he has blessed us with
|
||||
Stefan Meißner (sign_de) - For his work on the console
|
||||
@@ -684,6 +684,7 @@ Thanks to:
|
||||
George - Canal graphics
|
||||
Andrew Parkhouse (andythenorth) - River graphics
|
||||
David Dallaston (Pikka) - Tram tracks
|
||||
Marcin Grzegorczyk - Foundations for tracks on slopes,
|
||||
All Translators - For their support to make OpenTTD a truly international game
|
||||
Bug Reporters - Thanks for all bug reports
|
||||
Chris Sawyer - For an amazing game!
|
||||
|
||||
@@ -917,7 +917,6 @@ public:
|
||||
_last_stacksize = _fs->GetStackSize();
|
||||
Statement();
|
||||
CleanStack(stacksize);
|
||||
_fs->AddLineInfos(_lex._currentline, _lineinfo, true);
|
||||
Expect(TK_WHILE);
|
||||
SQInteger continuetrg = _fs->GetCurrentPos();
|
||||
Expect(_SC('(')); CommaExpr(); Expect(_SC(')'));
|
||||
|
||||
+1
-1
@@ -1190,7 +1190,7 @@ bool SQVM::CallNative(SQNativeClosure *nclosure,SQInteger nargs,SQInteger stackb
|
||||
throw;
|
||||
}
|
||||
|
||||
_callsstacksize = cstksize;
|
||||
assert(cstksize == _callsstacksize);
|
||||
|
||||
_nnativecalls--;
|
||||
suspend = false;
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ typedef std::map<const char *, class ScriptInfo *, StringCompare> ScriptInfoList
|
||||
class AI {
|
||||
public:
|
||||
/**
|
||||
* The default months AIs start after each other.
|
||||
* The default months AIs start after eachother.
|
||||
*/
|
||||
enum StartNext {
|
||||
START_NEXT_EASY = DAYS_IN_YEAR * 2,
|
||||
|
||||
+1
-1
@@ -197,7 +197,7 @@
|
||||
|
||||
/* static */ void AI::ResetConfig()
|
||||
{
|
||||
/* Check for both newgame as current game if we can reload the AIInfo inside
|
||||
/* Check for both newgame as current game if we can reload the AIInfo insde
|
||||
* the AIConfig. If not, remove the AI from the list (which will assign
|
||||
* a random new AI on reload). */
|
||||
for (CompanyID c = COMPANY_FIRST; c < MAX_COMPANIES; c++) {
|
||||
|
||||
+110
-115
@@ -987,56 +987,6 @@ struct AIDebugWindow : public Window {
|
||||
return (ScriptLog::LogData *)Company::Get(ai_debug_company)->ai_instance->GetLogPointer();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether the currently selected AI/GS is dead.
|
||||
* @return true if dead.
|
||||
*/
|
||||
bool IsDead() const
|
||||
{
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
GameInstance *game = Game::GetInstance();
|
||||
return game == NULL || game->IsDead();
|
||||
}
|
||||
return !Company::IsValidAiID(ai_debug_company) || Company::Get(ai_debug_company)->ai_instance->IsDead();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a company is a valid AI company or GS.
|
||||
* @param company Company to check for validity.
|
||||
* @return true if company is valid for debugging.
|
||||
*/
|
||||
bool IsValidDebugCompany(CompanyID company) const
|
||||
{
|
||||
switch (company) {
|
||||
case INVALID_COMPANY: return false;
|
||||
case OWNER_DEITY: return Game::GetInstance() != NULL;
|
||||
default: return Company::IsValidAiID(company);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure that \c ai_debug_company refers to a valid AI company or GS, or is set to #INVALID_COMPANY.
|
||||
* If no valid company is selected, it selects the first valid AI or GS if any.
|
||||
*/
|
||||
void SelectValidDebugCompany()
|
||||
{
|
||||
/* Check if the currently selected company is still active. */
|
||||
if (this->IsValidDebugCompany(ai_debug_company)) return;
|
||||
|
||||
ai_debug_company = INVALID_COMPANY;
|
||||
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
if (c->is_ai) {
|
||||
ChangeToAI(c->index);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* If no AI is available, see if there is a game script. */
|
||||
if (Game::GetInstance() != NULL) ChangeToAI(OWNER_DEITY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor for the window.
|
||||
* @param desc The description of the window.
|
||||
@@ -1051,6 +1001,14 @@ struct AIDebugWindow : public Window {
|
||||
this->FinishInitNested(desc, number);
|
||||
|
||||
if (!this->show_break_box) break_check_enabled = false;
|
||||
/* Disable the companies who are not active or not an AI */
|
||||
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
|
||||
this->SetWidgetDisabledState(i + WID_AID_COMPANY_BUTTON_START, !Company::IsValidAiID(i));
|
||||
}
|
||||
this->EnableWidget(WID_AID_SCRIPT_GAME);
|
||||
this->DisableWidget(WID_AID_RELOAD_TOGGLE);
|
||||
this->DisableWidget(WID_AID_SETTINGS);
|
||||
this->DisableWidget(WID_AID_CONTINUE_BTN);
|
||||
|
||||
this->last_vscroll_pos = 0;
|
||||
this->autoscroll = true;
|
||||
@@ -1061,8 +1019,17 @@ struct AIDebugWindow : public Window {
|
||||
/* Restore the break string value from static variable */
|
||||
this->break_editbox.text.Assign(this->break_string);
|
||||
|
||||
this->SelectValidDebugCompany();
|
||||
this->InvalidateData(-1);
|
||||
/* Restore button state from static class variables */
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
this->LowerWidget(WID_AID_SCRIPT_GAME);
|
||||
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !Game::IsPaused());
|
||||
} else if (ai_debug_company != INVALID_COMPANY) {
|
||||
this->LowerWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
|
||||
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !AI::IsPaused(ai_debug_company));
|
||||
}
|
||||
this->SetWidgetLoweredState(WID_AID_BREAK_STR_ON_OFF_BTN, this->break_check_enabled);
|
||||
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
|
||||
|
||||
}
|
||||
|
||||
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
|
||||
@@ -1075,31 +1042,67 @@ struct AIDebugWindow : public Window {
|
||||
|
||||
virtual void OnPaint()
|
||||
{
|
||||
this->SelectValidDebugCompany();
|
||||
/* Check if the currently selected company is still active. */
|
||||
if (ai_debug_company == INVALID_COMPANY || (ai_debug_company != OWNER_DEITY && !Company::IsValidAiID(ai_debug_company))) {
|
||||
if (ai_debug_company != INVALID_COMPANY) {
|
||||
/* Raise the widget for the previous selection. */
|
||||
this->RaiseWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
|
||||
|
||||
ai_debug_company = INVALID_COMPANY;
|
||||
}
|
||||
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
if (c->is_ai) {
|
||||
/* Lower the widget corresponding to this company. */
|
||||
this->LowerWidget(c->index + WID_AID_COMPANY_BUTTON_START);
|
||||
|
||||
ai_debug_company = c->index;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* If no AI is available, see if there is a game script. */
|
||||
if (ai_debug_company == INVALID_COMPANY && Game::GetInstance() != NULL) {
|
||||
/* Lower the widget corresponding to the game script. */
|
||||
this->LowerWidget(WID_AID_SCRIPT_GAME);
|
||||
|
||||
ai_debug_company = OWNER_DEITY;
|
||||
}
|
||||
}
|
||||
|
||||
/* Update "Reload AI" and "AI settings" buttons */
|
||||
this->SetWidgetDisabledState(WID_AID_SETTINGS, ai_debug_company == INVALID_COMPANY);
|
||||
this->SetWidgetDisabledState(WID_AID_RELOAD_TOGGLE, ai_debug_company == INVALID_COMPANY || ai_debug_company == OWNER_DEITY);
|
||||
this->SetWidgetDisabledState(WID_AID_SCRIPT_GAME, Game::GetGameInstance() == NULL);
|
||||
|
||||
/* Draw standard stuff */
|
||||
this->DrawWidgets();
|
||||
|
||||
if (this->IsShaded()) return; // Don't draw anything when the window is shaded.
|
||||
|
||||
bool dirty = false;
|
||||
|
||||
/* Paint the company icons */
|
||||
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
|
||||
NWidgetCore *button = this->GetWidget<NWidgetCore>(i + WID_AID_COMPANY_BUTTON_START);
|
||||
bool dirty = false;
|
||||
|
||||
bool valid = Company::IsValidAiID(i);
|
||||
|
||||
/* Check whether the validity of the company changed */
|
||||
dirty |= (button->IsDisabled() == valid);
|
||||
bool disabled = !valid;
|
||||
if (button->IsDisabled() != disabled) {
|
||||
/* Invalid/non-AI companies have button disabled */
|
||||
button->SetDisabled(disabled);
|
||||
dirty = true;
|
||||
}
|
||||
|
||||
/* Mark dead/paused AIs by setting the background colour. */
|
||||
bool dead = valid && Company::Get(i)->ai_instance->IsDead();
|
||||
bool paused = valid && Company::Get(i)->ai_instance->IsPaused();
|
||||
/* Re-paint if the button was updated.
|
||||
* (note that it is intentional that SetScriptButtonColour is always called) */
|
||||
dirty |= SetScriptButtonColour(*button, dead, paused);
|
||||
dirty = SetScriptButtonColour(*button, dead, paused) || dirty;
|
||||
|
||||
/* Do we need a repaint? */
|
||||
if (dirty) this->SetDirty();
|
||||
/* Draw company icon only for valid AI companies */
|
||||
if (!valid) continue;
|
||||
|
||||
@@ -1109,14 +1112,13 @@ struct AIDebugWindow : public Window {
|
||||
|
||||
/* Set button colour for Game Script. */
|
||||
GameInstance *game = Game::GetInstance();
|
||||
bool valid = game != NULL;
|
||||
bool dead = valid && game->IsDead();
|
||||
bool paused = valid && game->IsPaused();
|
||||
|
||||
bool dead = game != NULL && game->IsDead();
|
||||
bool paused = game != NULL && game->IsPaused();
|
||||
NWidgetCore *button = this->GetWidget<NWidgetCore>(WID_AID_SCRIPT_GAME);
|
||||
dirty |= (button->IsDisabled() == valid) || SetScriptButtonColour(*button, dead, paused);
|
||||
|
||||
if (dirty) this->InvalidateData(-1);
|
||||
if (SetScriptButtonColour(*button, dead, paused)) {
|
||||
/* Re-paint if the button was updated. */
|
||||
this->SetWidgetDirty(WID_AID_SCRIPT_GAME);
|
||||
}
|
||||
|
||||
/* If there are no active companies, don't display anything else. */
|
||||
if (ai_debug_company == INVALID_COMPANY) return;
|
||||
@@ -1218,19 +1220,30 @@ struct AIDebugWindow : public Window {
|
||||
*/
|
||||
void ChangeToAI(CompanyID show_ai)
|
||||
{
|
||||
if (!this->IsValidDebugCompany(show_ai)) return;
|
||||
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
this->RaiseWidget(WID_AID_SCRIPT_GAME);
|
||||
} else {
|
||||
this->RaiseWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
|
||||
}
|
||||
ai_debug_company = show_ai;
|
||||
|
||||
ScriptLog::LogData *log = this->GetLogPointer();
|
||||
this->vscroll->SetCount((log == NULL) ? 0 : log->used);
|
||||
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
this->LowerWidget(WID_AID_SCRIPT_GAME);
|
||||
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !Game::IsPaused());
|
||||
} else {
|
||||
this->LowerWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
|
||||
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !AI::IsPaused(ai_debug_company));
|
||||
}
|
||||
|
||||
this->highlight_row = -1; // The highlight of one AI make little sense for another AI.
|
||||
|
||||
/* Close AI settings window to prevent confusion */
|
||||
DeleteWindowByClass(WC_AI_SETTINGS);
|
||||
|
||||
this->InvalidateData(-1);
|
||||
|
||||
this->autoscroll = true;
|
||||
this->last_vscroll_pos = this->vscroll->GetPosition();
|
||||
this->SetDirty();
|
||||
/* Close AI settings window to prevent confusion */
|
||||
DeleteWindowByClass(WC_AI_SETTINGS);
|
||||
}
|
||||
|
||||
virtual void OnClick(Point pt, int widget, int click_count)
|
||||
@@ -1261,22 +1274,24 @@ struct AIDebugWindow : public Window {
|
||||
|
||||
case WID_AID_BREAK_STR_ON_OFF_BTN:
|
||||
this->break_check_enabled = !this->break_check_enabled;
|
||||
this->InvalidateData(-1);
|
||||
this->SetWidgetLoweredState(WID_AID_BREAK_STR_ON_OFF_BTN, this->break_check_enabled);
|
||||
this->SetWidgetDirty(WID_AID_BREAK_STR_ON_OFF_BTN);
|
||||
break;
|
||||
|
||||
case WID_AID_MATCH_CASE_BTN:
|
||||
this->case_sensitive_break_check = !this->case_sensitive_break_check;
|
||||
this->InvalidateData(-1);
|
||||
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
|
||||
this->SetWidgetDirty(WID_AID_MATCH_CASE_BTN);
|
||||
break;
|
||||
|
||||
case WID_AID_CONTINUE_BTN:
|
||||
/* Unpause current AI / game script and mark the corresponding script button dirty. */
|
||||
if (!this->IsDead()) {
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
Game::Unpause();
|
||||
} else {
|
||||
AI::Unpause(ai_debug_company);
|
||||
}
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
Game::Unpause();
|
||||
this->SetWidgetDirty(WID_AID_SCRIPT_GAME);
|
||||
} else {
|
||||
AI::Unpause(ai_debug_company);
|
||||
this->SetWidgetDirty(WID_AID_COMPANY_BUTTON_START + ai_debug_company);
|
||||
}
|
||||
|
||||
/* If the last AI/Game Script is unpaused, unpause the game too. */
|
||||
@@ -1298,7 +1313,8 @@ struct AIDebugWindow : public Window {
|
||||
}
|
||||
|
||||
this->highlight_row = -1;
|
||||
this->InvalidateData(-1);
|
||||
this->SetWidgetDirty(WID_AID_LOG_PANEL);
|
||||
this->DisableWidget(WID_AID_CONTINUE_BTN);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1332,14 +1348,15 @@ struct AIDebugWindow : public Window {
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* This is the company ID of the AI/GS which wrote a new log message, or -1 in other cases.
|
||||
* @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)
|
||||
{
|
||||
if (data == -1 || ai_debug_company == data) this->SetDirty();
|
||||
|
||||
/* 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->IsValidDebugCompany(ai_debug_company) && this->break_check_enabled && !this->break_string_filter.IsEmpty()) {
|
||||
if (!gui_scope && data == ai_debug_company && this->break_check_enabled && !this->break_string_filter.IsEmpty()) {
|
||||
/* Get the log instance of the active company */
|
||||
ScriptLog::LogData *log = this->GetLogPointer();
|
||||
|
||||
@@ -1348,12 +1365,10 @@ struct AIDebugWindow : public Window {
|
||||
this->break_string_filter.AddLine(log->lines[log->pos]);
|
||||
if (this->break_string_filter.GetState()) {
|
||||
/* Pause execution of script. */
|
||||
if (!this->IsDead()) {
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
Game::Pause();
|
||||
} else {
|
||||
AI::Pause(ai_debug_company);
|
||||
}
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
Game::Pause();
|
||||
} else {
|
||||
AI::Pause(ai_debug_company);
|
||||
}
|
||||
|
||||
/* Pause the game. */
|
||||
@@ -1361,35 +1376,15 @@ struct AIDebugWindow : public Window {
|
||||
DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
|
||||
}
|
||||
|
||||
/* Make it possible to click on the continue button */
|
||||
this->EnableWidget(WID_AID_CONTINUE_BTN);
|
||||
this->SetWidgetDirty(WID_AID_CONTINUE_BTN);
|
||||
|
||||
/* Highlight row that matched */
|
||||
this->highlight_row = log->pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!gui_scope) return;
|
||||
|
||||
this->SelectValidDebugCompany();
|
||||
|
||||
ScriptLog::LogData *log = ai_debug_company != INVALID_COMPANY ? this->GetLogPointer() : NULL;
|
||||
this->vscroll->SetCount((log == NULL) ? 0 : log->used);
|
||||
|
||||
/* Update company buttons */
|
||||
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
|
||||
this->SetWidgetDisabledState(i + WID_AID_COMPANY_BUTTON_START, !Company::IsValidAiID(i));
|
||||
this->SetWidgetLoweredState(i + WID_AID_COMPANY_BUTTON_START, ai_debug_company == i);
|
||||
}
|
||||
|
||||
this->SetWidgetDisabledState(WID_AID_SCRIPT_GAME, Game::GetGameInstance() == NULL);
|
||||
this->SetWidgetLoweredState(WID_AID_SCRIPT_GAME, ai_debug_company == OWNER_DEITY);
|
||||
|
||||
this->SetWidgetLoweredState(WID_AID_BREAK_STR_ON_OFF_BTN, this->break_check_enabled);
|
||||
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
|
||||
|
||||
this->SetWidgetDisabledState(WID_AID_SETTINGS, ai_debug_company == INVALID_COMPANY);
|
||||
this->SetWidgetDisabledState(WID_AID_RELOAD_TOGGLE, ai_debug_company == INVALID_COMPANY || ai_debug_company == OWNER_DEITY);
|
||||
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, ai_debug_company == INVALID_COMPANY ||
|
||||
(ai_debug_company == OWNER_DEITY ? !Game::IsPaused() : !AI::IsPaused(ai_debug_company)));
|
||||
}
|
||||
|
||||
virtual void OnResize()
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
/**
|
||||
* Check if we have an AI by name and version available in our list.
|
||||
* @param nameParam The name of the AI.
|
||||
* @param versionParam The version of the AI, or -1 if you want the latest.
|
||||
* @param versionParam The versionof the AI, or -1 if you want the latest.
|
||||
* @param force_exact_match Only match name+version, never latest.
|
||||
* @return NULL if no match found, otherwise the AI that matched.
|
||||
*/
|
||||
|
||||
+5
-11
@@ -136,11 +136,6 @@ static StationID FindNearestHangar(const Aircraft *v)
|
||||
|
||||
/* v->tile can't be used here, when aircraft is flying v->tile is set to 0 */
|
||||
uint distance = DistanceSquare(vtile, st->airport.tile);
|
||||
if (v->acache.cached_max_range_sqr != 0) {
|
||||
/* Check if our current destination can be reached from the depot airport. */
|
||||
const Station *cur_dest = GetTargetAirportIfValid(v);
|
||||
if (cur_dest != NULL && DistanceSquare(st->airport.tile, cur_dest->airport.tile) > v->acache.cached_max_range_sqr) continue;
|
||||
}
|
||||
if (distance < best || index == INVALID_STATION) {
|
||||
best = distance;
|
||||
index = st->index;
|
||||
@@ -302,7 +297,7 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, const Engine *
|
||||
v->targetairport = GetStationIndex(tile);
|
||||
v->SetNext(u);
|
||||
|
||||
v->SetServiceInterval(Company::Get(_current_company)->settings.vehicle.servint_aircraft);
|
||||
v->service_interval = Company::Get(_current_company)->settings.vehicle.servint_aircraft;
|
||||
|
||||
v->date_of_last_service = _date;
|
||||
v->build_year = u->build_year = _cur_year;
|
||||
@@ -314,7 +309,6 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, const Engine *
|
||||
|
||||
v->vehicle_flags = 0;
|
||||
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SetBit(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE);
|
||||
v->SetServiceIntervalIsPercent(Company::Get(_current_company)->settings.vehicle.servint_ispercent);
|
||||
|
||||
v->InvalidateNewGRFCacheOfChain();
|
||||
|
||||
@@ -636,7 +630,7 @@ static int UpdateAircraftSpeed(Aircraft *v, uint speed_limit = SPEED_LIMIT_NONE,
|
||||
/* Adjust distance moved by plane speed setting */
|
||||
if (_settings_game.vehicle.plane_speed > 1) spd /= _settings_game.vehicle.plane_speed;
|
||||
|
||||
/* Convert direction-independent speed into direction-dependent speed. (old movement method) */
|
||||
/* Convert direction-indepenent speed into direction-dependent speed. (old movement method) */
|
||||
spd = v->GetOldAdvanceSpeed(spd);
|
||||
|
||||
spd += v->progress;
|
||||
@@ -661,7 +655,7 @@ int GetAircraftFlyingAltitude(const Aircraft *v)
|
||||
int base_altitude = PLANE_HOLDING_ALTITUDE;
|
||||
|
||||
/* Make sure eastbound and westbound planes do not "crash" into each
|
||||
* other by providing them with vertical separation
|
||||
* other by providing them with vertical seperation
|
||||
*/
|
||||
switch (v->direction) {
|
||||
case DIR_N:
|
||||
@@ -1381,7 +1375,7 @@ static void AircraftEventHandler_AtTerminal(Aircraft *v, const AirportFTAClass *
|
||||
* and get serviced at the same time - setting */
|
||||
if (_settings_game.order.serviceathelipad) {
|
||||
if (v->subtype == AIR_HELICOPTER && apc->num_helipads > 0) {
|
||||
/* an excerpt of ServiceAircraft, without the invisibility stuff */
|
||||
/* an exerpt of ServiceAircraft, without the invisibility stuff */
|
||||
v->date_of_last_service = _date;
|
||||
v->breakdowns_since_last_service = 0;
|
||||
v->reliability = v->GetEngine()->reliability;
|
||||
@@ -1403,7 +1397,7 @@ static void AircraftEventHandler_AtTerminal(Aircraft *v, const AirportFTAClass *
|
||||
switch (v->current_order.GetType()) {
|
||||
case OT_GOTO_STATION: // ready to fly to another airport
|
||||
break;
|
||||
case OT_GOTO_DEPOT: // visit hangar for servicing, sale, etc.
|
||||
case OT_GOTO_DEPOT: // visit hangar for serivicing, sale, etc.
|
||||
go_to_hangar = v->current_order.GetDestination() == v->targetairport;
|
||||
break;
|
||||
case OT_CONDITIONAL:
|
||||
|
||||
+2
-2
@@ -22,7 +22,7 @@
|
||||
* @param terminals The terminals.
|
||||
* @param num_helipads Number of heli pads.
|
||||
* @param flags Information about the class of FTA.
|
||||
* @param delta_z Height of the airport above the land.
|
||||
* @param delta_z Height of the arport above the land.
|
||||
*/
|
||||
#define AIRPORT_GENERIC(name, terminals, num_helipads, flags, delta_z) \
|
||||
static AirportFTAClass _airportfta_ ## name(_airport_moving_data_ ## name, terminals, \
|
||||
@@ -41,7 +41,7 @@
|
||||
* Define a heliport.
|
||||
* @param name Suffix of the names of the helipad data.
|
||||
* @param num_helipads Number of heli pads.
|
||||
* @param delta_z Height of the airport above the land.
|
||||
* @param delta_z Height of the arport above the land.
|
||||
*/
|
||||
#define HELIPORT(name, num_helipads, delta_z) \
|
||||
AIRPORT_GENERIC(name, NULL, num_helipads, AirportFTAClass::HELICOPTERS, delta_z)
|
||||
|
||||
@@ -68,7 +68,7 @@ bool IsArticulatedEngine(EngineID engine_type)
|
||||
* Count the number of articulated parts of an engine.
|
||||
* @param engine_type The engine to get the number of parts of.
|
||||
* @param purchase_window Whether we are in the scope of the purchase window or not, i.e. whether we cannot allocate vehicles.
|
||||
* @return The number of parts.
|
||||
* @return The nmumber of parts.
|
||||
*/
|
||||
uint CountArticulatedParts(EngineID engine_type, bool purchase_window)
|
||||
{
|
||||
@@ -98,7 +98,7 @@ uint CountArticulatedParts(EngineID engine_type, bool purchase_window)
|
||||
|
||||
/**
|
||||
* Returns the default (non-refitted) capacity of a specific EngineID.
|
||||
* @param engine the EngineID of interest
|
||||
* @param engine the EngineID of iterest
|
||||
* @param cargo_type returns the default cargo type, if needed
|
||||
* @return capacity
|
||||
*/
|
||||
@@ -113,7 +113,7 @@ static inline uint16 GetVehicleDefaultCapacity(EngineID engine, CargoID *cargo_t
|
||||
|
||||
/**
|
||||
* Returns all cargoes a vehicle can carry.
|
||||
* @param engine the EngineID of interest
|
||||
* @param engine the EngineID of iterest
|
||||
* @param include_initial_cargo_type if true the default cargo type of the vehicle is included; if false only the refit_mask
|
||||
* @return bit set of CargoIDs
|
||||
*/
|
||||
|
||||
+1
-4
@@ -87,10 +87,7 @@ CommandCost AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, Engi
|
||||
/* Check if the old vehicle is already in the list */
|
||||
EngineRenew *er = GetEngineReplacement(*erl, old_engine, group);
|
||||
if (er != NULL) {
|
||||
if (flags & DC_EXEC) {
|
||||
er->to = new_engine;
|
||||
er->replace_when_old = replace_when_old;
|
||||
}
|
||||
if (flags & DC_EXEC) er->to = new_engine;
|
||||
return CommandCost();
|
||||
}
|
||||
|
||||
|
||||
@@ -66,18 +66,18 @@ bool CheckAutoreplaceValidity(EngineID from, EngineID to, CompanyID company)
|
||||
/* make sure the railtypes are compatible */
|
||||
if ((GetRailTypeInfo(e_from->u.rail.railtype)->compatible_railtypes & GetRailTypeInfo(e_to->u.rail.railtype)->compatible_railtypes) == 0) return false;
|
||||
|
||||
/* make sure we do not replace wagons with engines or vice versa */
|
||||
/* make sure we do not replace wagons with engines or vise versa */
|
||||
if ((e_from->u.rail.railveh_type == RAILVEH_WAGON) != (e_to->u.rail.railveh_type == RAILVEH_WAGON)) return false;
|
||||
break;
|
||||
}
|
||||
|
||||
case VEH_ROAD:
|
||||
/* make sure that we do not replace a tram with a normal road vehicles or vice versa */
|
||||
/* make sure that we do not replace a tram with a normal road vehicles or vise versa */
|
||||
if (HasBit(e_from->info.misc_flags, EF_ROAD_TRAM) != HasBit(e_to->info.misc_flags, EF_ROAD_TRAM)) return false;
|
||||
break;
|
||||
|
||||
case VEH_AIRCRAFT:
|
||||
/* make sure that we do not replace a plane with a helicopter or vice versa */
|
||||
/* make sure that we do not replace a plane with a helicopter or vise versa */
|
||||
if ((e_from->u.air.subtype & AIR_CTOL) != (e_to->u.air.subtype & AIR_CTOL)) return false;
|
||||
break;
|
||||
|
||||
@@ -263,7 +263,7 @@ static CommandCost GetNewEngineType(const Vehicle *v, const Company *c, bool alw
|
||||
* Builds and refits a replacement vehicle
|
||||
* Important: The old vehicle is still in the original vehicle chain (used for determining the cargo when the old vehicle did not carry anything, but the new one does)
|
||||
* @param old_veh A single (articulated/multiheaded) vehicle that shall be replaced.
|
||||
* @param new_vehicle Returns the newly build and refitted vehicle
|
||||
* @param new_vehicle Returns the newly build and refittet vehicle
|
||||
* @param part_of_chain The vehicle is part of a train
|
||||
* @return cost or error
|
||||
*/
|
||||
@@ -766,7 +766,7 @@ CommandCost CmdSetAutoReplace(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
GroupStatistics::UpdateAutoreplace(_current_company);
|
||||
if (IsLocalCompany()) SetWindowDirty(WC_REPLACE_VEHICLE, Engine::Get(old_engine_type)->type);
|
||||
SetWindowClassesDirty(GetWindowClassForVehicleType(Engine::Get(old_engine_type)->type));
|
||||
}
|
||||
if ((flags & DC_EXEC) && IsLocalCompany()) InvalidateAutoreplaceWindow(old_engine_type, id_g);
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ static int CDECL EngineNumberSorter(const EngineID *a, const EngineID *b)
|
||||
* @param id_g The group the engine belongs to
|
||||
* Note: this function only works if it is called either
|
||||
* - when a new vehicle is build, but before it's counted in num_engines
|
||||
* - when a vehicle is deleted and after it's subtracted from num_engines
|
||||
* - when a vehicle is deleted and after it's substracted from num_engines
|
||||
* - when not changing the count (used when changing replace orders)
|
||||
*/
|
||||
void InvalidateAutoreplaceWindow(EngineID e, GroupID id_g)
|
||||
@@ -186,6 +186,7 @@ class ReplaceVehicleWindow : public Window {
|
||||
EngineID veh_from = this->sel_engine[0];
|
||||
EngineID veh_to = this->sel_engine[1];
|
||||
DoCommandP(0, (replace_when_old ? 1 : 0) | (this->sel_group << 16), veh_from + (veh_to << 16), CMD_SET_AUTOREPLACE);
|
||||
this->SetDirty();
|
||||
}
|
||||
|
||||
public:
|
||||
@@ -454,6 +455,7 @@ public:
|
||||
case WID_RV_STOP_REPLACE: { // Stop replacing
|
||||
EngineID veh_from = this->sel_engine[0];
|
||||
DoCommandP(0, this->sel_group << 16, veh_from + (INVALID_ENGINE << 16), CMD_SET_AUTOREPLACE);
|
||||
this->SetDirty();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -24,12 +24,12 @@ struct BaseConsist {
|
||||
int32 lateness_counter; ///< How many ticks late (or early if negative) this vehicle is.
|
||||
Date timetable_start; ///< When the vehicle is supposed to start the timetable.
|
||||
|
||||
uint16 service_interval; ///< The interval for (automatic) servicing; either in days or %.
|
||||
Date service_interval; ///< The interval for (automatic) servicing; either in days or %.
|
||||
|
||||
VehicleOrderID cur_real_order_index;///< The index to the current real (non-implicit) order
|
||||
VehicleOrderID cur_implicit_order_index;///< The index to the current implicit order
|
||||
|
||||
uint16 vehicle_flags; ///< Used for gradual loading and other miscellaneous things (@see VehicleFlags enum)
|
||||
byte vehicle_flags; ///< Used for gradual loading and other miscellaneous things (@see VehicleFlags enum)
|
||||
|
||||
BaseConsist() : name(NULL) {}
|
||||
virtual ~BaseConsist();
|
||||
|
||||
+4
-10
@@ -137,16 +137,12 @@ bool BaseSet<T, Tnum_files, Tsearch_in_tars>::FillSetDetails(IniFile *ini, const
|
||||
switch (T::CheckMD5(file, BASESET_DIR)) {
|
||||
case MD5File::CR_MATCH:
|
||||
this->valid_files++;
|
||||
this->found_files++;
|
||||
break;
|
||||
|
||||
/* FALL THROUGH */
|
||||
case MD5File::CR_MISMATCH:
|
||||
DEBUG(grf, 1, "MD5 checksum mismatch for: %s (in %s)", filename, full_filename);
|
||||
this->found_files++;
|
||||
break;
|
||||
|
||||
case MD5File::CR_NO_FILE:
|
||||
DEBUG(grf, 1, "The file %s specified in %s is missing", filename, full_filename);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -184,8 +180,7 @@ bool BaseMedia<Tbase_set>::AddFile(const char *filename, size_t basepath_length,
|
||||
/* The more complete set takes precedence over the version number. */
|
||||
if ((duplicate->valid_files == set->valid_files && duplicate->version >= set->version) ||
|
||||
duplicate->valid_files > set->valid_files) {
|
||||
DEBUG(grf, 1, "Not adding %s (%i) as base " SET_TYPE " set (duplicate, %s)", set->name, set->version,
|
||||
duplicate->valid_files > set->valid_files ? "less valid files" : "lower version");
|
||||
DEBUG(grf, 1, "Not adding %s (%i) as base " SET_TYPE " set (duplicate)", set->name, set->version);
|
||||
set->next = BaseMedia<Tbase_set>::duplicate_sets;
|
||||
BaseMedia<Tbase_set>::duplicate_sets = set;
|
||||
} else {
|
||||
@@ -200,8 +195,7 @@ bool BaseMedia<Tbase_set>::AddFile(const char *filename, size_t basepath_length,
|
||||
* version number until a new game is started which isn't a big problem */
|
||||
if (BaseMedia<Tbase_set>::used_set == duplicate) BaseMedia<Tbase_set>::used_set = set;
|
||||
|
||||
DEBUG(grf, 1, "Removing %s (%i) as base " SET_TYPE " set (duplicate, %s)", duplicate->name, duplicate->version,
|
||||
duplicate->valid_files < set->valid_files ? "less valid files" : "lower version");
|
||||
DEBUG(grf, 1, "Removing %s (%i) as base " SET_TYPE " set (duplicate)", duplicate->name, duplicate->version);
|
||||
duplicate->next = BaseMedia<Tbase_set>::duplicate_sets;
|
||||
BaseMedia<Tbase_set>::duplicate_sets = duplicate;
|
||||
ret = true;
|
||||
@@ -269,7 +263,7 @@ template <class Tbase_set>
|
||||
if (missing == 0) {
|
||||
p += seprintf(p, last, " (%i corrupt file%s)\n", invalid, invalid == 1 ? "" : "s");
|
||||
} else {
|
||||
p += seprintf(p, last, " (unusable: %i missing file%s)\n", missing, missing == 1 ? "" : "s");
|
||||
p += seprintf(p, last, " (unuseable: %i missing file%s)\n", missing, missing == 1 ? "" : "s");
|
||||
}
|
||||
} else {
|
||||
p += seprintf(p, last, "\n");
|
||||
|
||||
@@ -71,7 +71,6 @@ struct BaseStation : StationPool::PoolItem<&_station_pool> {
|
||||
uint16 random_bits; ///< Random bits assigned to this station
|
||||
byte waiting_triggers; ///< Waiting triggers (NewGRF) for this station
|
||||
uint8 cached_anim_triggers; ///< NOSAVE: Combined animation trigger bitmask, used to determine if trigger processing should happen.
|
||||
uint32 cached_cargo_triggers; ///< NOSAVE: Combined cargo trigger bitmask
|
||||
|
||||
TileArea train_station; ///< Tile area the train 'station' part covers
|
||||
StationRect rect; ///< NOSAVE: Station spread out rectangle maintained by StationRect::xxx() functions
|
||||
|
||||
@@ -107,7 +107,7 @@ void Blitter_32bppBase::ScrollBuffer(void *video, int &left, int &top, int &widt
|
||||
dst = (uint32 *)video + left + top * _screen.pitch;
|
||||
src = dst - scroll_y * _screen.pitch;
|
||||
|
||||
/* Decrease height. (scroll_y is <=0). */
|
||||
/* Decrese height. (scroll_y is <=0). */
|
||||
height += scroll_y;
|
||||
assert(height > 0);
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ void Blitter_8bppBase::ScrollBuffer(void *video, int &left, int &top, int &width
|
||||
dst = (uint8 *)video + left + top * _screen.pitch;
|
||||
src = dst - scroll_y * _screen.pitch;
|
||||
|
||||
/* Decrease height. (scroll_y is <=0). */
|
||||
/* Decrese height. (scroll_y is <=0). */
|
||||
height += scroll_y;
|
||||
assert(height > 0);
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ public:
|
||||
|
||||
/**
|
||||
* Copy from a buffer to the screen.
|
||||
* @param video The destination pointer (video-buffer).
|
||||
* @param video The destionation pointer (video-buffer).
|
||||
* @param src The buffer from which the data will be read.
|
||||
* @param width The width of the buffer.
|
||||
* @param height The height of the buffer.
|
||||
|
||||
@@ -37,7 +37,7 @@ public:
|
||||
/* virtual */ int GetBytesPerPixel() { return 0; }
|
||||
};
|
||||
|
||||
/** Factory for the blitter that does nothing. */
|
||||
/** Factory for the blitter that doesn nothing. */
|
||||
class FBlitter_Null: public BlitterFactory<FBlitter_Null> {
|
||||
public:
|
||||
/* virtual */ const char *GetName() { return "null"; }
|
||||
|
||||
@@ -205,7 +205,7 @@ public:
|
||||
#endif /* defined(ENABLE_NETWORK) && defined(WITH_FREETYPE) */
|
||||
|
||||
/**
|
||||
* Handle all procedures for bootstrapping OpenTTD without a base graphics set.
|
||||
* Handle all procedures for bootstrapping OpenTTD without a base grapics set.
|
||||
* This requires all kinds of trickery that is needed to avoid the use of
|
||||
* sprites from the base graphics set which are pretty interwoven.
|
||||
* @return True if a base set exists, otherwise false.
|
||||
|
||||
+1
-1
@@ -381,7 +381,7 @@ void ShowBuildBridgeWindow(TileIndex start, TileIndex end, TransportType transpo
|
||||
/* The bridge length without ramps. */
|
||||
const uint bridge_len = GetTunnelBridgeLength(start, end);
|
||||
|
||||
/* If Ctrl is being pressed, check whether the last bridge built is available
|
||||
/* If Ctrl is being pressed, check wether the last bridge built is available
|
||||
* If so, return this bridge type. Otherwise continue normally.
|
||||
* We store bridge types for each transport type, so we have to check for
|
||||
* the transport type beforehand.
|
||||
|
||||
+4
-6
@@ -41,7 +41,7 @@ static inline bool IsBridgeTile(TileIndex t)
|
||||
* checks for the possibility that a bridge may be on this tile
|
||||
* These are in fact all the tile types on which a bridge can be found
|
||||
* @param t The tile to analyze
|
||||
* @return true if a bridge might be present
|
||||
* @return true if a bridge migh be present
|
||||
*/
|
||||
static inline bool MayHaveBridgeAbove(TileIndex t)
|
||||
{
|
||||
@@ -161,17 +161,15 @@ static inline void MakeBridgeRamp(TileIndex t, Owner o, BridgeType bridgetype, D
|
||||
* Make a bridge ramp for roads.
|
||||
* @param t the tile to make a bridge ramp
|
||||
* @param o the new owner of the bridge ramp
|
||||
* @param owner_road the new owner of the road on the bridge
|
||||
* @param owner_tram the new owner of the tram on the bridge
|
||||
* @param bridgetype the type of bridge this bridge ramp belongs to
|
||||
* @param d the direction this ramp must be facing
|
||||
* @param r the road type of the bridge
|
||||
*/
|
||||
static inline void MakeRoadBridgeRamp(TileIndex t, Owner o, Owner owner_road, Owner owner_tram, BridgeType bridgetype, DiagDirection d, RoadTypes r)
|
||||
static inline void MakeRoadBridgeRamp(TileIndex t, Owner o, BridgeType bridgetype, DiagDirection d, RoadTypes r)
|
||||
{
|
||||
MakeBridgeRamp(t, o, bridgetype, d, TRANSPORT_ROAD, 0);
|
||||
SetRoadOwner(t, ROADTYPE_ROAD, owner_road);
|
||||
if (owner_tram != OWNER_TOWN) SetRoadOwner(t, ROADTYPE_TRAM, owner_tram);
|
||||
SetRoadOwner(t, ROADTYPE_ROAD, o);
|
||||
if (o != OWNER_TOWN) SetRoadOwner(t, ROADTYPE_TRAM, o);
|
||||
SetRoadTypes(t, r);
|
||||
}
|
||||
|
||||
|
||||
@@ -272,7 +272,7 @@ static int CDECL EnginePowerVsRunningCostSorter(const EngineID *a, const EngineI
|
||||
* we will actually calculate cunning cost/power (to make it more than 1).
|
||||
* Because of this, the return value have to be reversed as well and we return b - a instead of a - b.
|
||||
* Another thing is that both power and running costs should be doubled for multiheaded engines.
|
||||
* Since it would be multiplying with 2 in both numerator and denominator, it will even themselves out and we skip checking for multiheaded. */
|
||||
* Since it would be multipling with 2 in both numerator and denumerator, it will even themselves out and we skip checking for multiheaded. */
|
||||
Money va = (e_a->GetRunningCost()) / max(1U, (uint)e_a->GetPower());
|
||||
Money vb = (e_b->GetRunningCost()) / max(1U, (uint)e_b->GetPower());
|
||||
int r = ClampToI32(vb - va);
|
||||
@@ -967,7 +967,7 @@ struct BuildVehicleWindow : Window {
|
||||
this->vscroll = this->GetScrollbar(WID_BV_SCROLLBAR);
|
||||
|
||||
/* If we are just viewing the list of vehicles, we do not need the Build button.
|
||||
* So we just hide it, and enlarge the Rename button by the now vacant place. */
|
||||
* So we just hide it, and enlarge the Rename buton by the now vacant place. */
|
||||
if (this->listview_mode) this->GetWidget<NWidgetStacked>(WID_BV_BUILD_SEL)->SetDisplayedPlane(SZSP_NONE);
|
||||
|
||||
NWidgetCore *widget = this->GetWidget<NWidgetCore>(WID_BV_LIST);
|
||||
|
||||
+7
-39
@@ -16,54 +16,22 @@
|
||||
CargoMonitorMap _cargo_pickups; ///< Map of monitored pick-ups to the amount since last query/activation.
|
||||
CargoMonitorMap _cargo_deliveries; ///< Map of monitored deliveries to the amount since last query/activation.
|
||||
|
||||
/**
|
||||
* Helper method for ClearCargoPickupMonitoring and ClearCargoDeliveryMonitoring.
|
||||
* Clears all monitors that belong to the specified company or all if INVALID_OWNER
|
||||
* is specified as company.
|
||||
* @param cargo_monitor_map reference to the cargo monitor map to operate on.
|
||||
* @param company company to clear cargo monitors for or INVALID_OWNER if all cargo monitors should be cleared.
|
||||
*/
|
||||
static void ClearCargoMonitoring(CargoMonitorMap &cargo_monitor_map, CompanyID company = INVALID_OWNER)
|
||||
/** Clear all pick-up cargo monitors. */
|
||||
void ClearCargoPickupMonitoring()
|
||||
{
|
||||
if (company == INVALID_OWNER) {
|
||||
cargo_monitor_map.clear();
|
||||
return;
|
||||
}
|
||||
|
||||
CargoMonitorMap::iterator next;
|
||||
for (CargoMonitorMap::iterator it = cargo_monitor_map.begin(); it != cargo_monitor_map.end(); it = next) {
|
||||
next = it;
|
||||
next++;
|
||||
if (DecodeMonitorCompany(it->first) == company) {
|
||||
cargo_monitor_map.erase(it);
|
||||
}
|
||||
}
|
||||
_cargo_pickups.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear all pick-up cargo monitors.
|
||||
* @param company clear all pick-up monitors for this company or if INVALID_OWNER
|
||||
* is passed, all pick-up monitors are cleared regardless of company.
|
||||
*/
|
||||
void ClearCargoPickupMonitoring(CompanyID company)
|
||||
/** Clear all delivery cargo monitors. */
|
||||
void ClearCargoDeliveryMonitoring()
|
||||
{
|
||||
ClearCargoMonitoring(_cargo_pickups, company);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear all delivery cargo monitors.
|
||||
* @param company clear all delivery monitors for this company or if INVALID_OWNER
|
||||
* is passed, all delivery monitors are cleared regardless of company.
|
||||
*/
|
||||
void ClearCargoDeliveryMonitoring(CompanyID company)
|
||||
{
|
||||
ClearCargoMonitoring(_cargo_deliveries, company);
|
||||
_cargo_deliveries.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get and reset the amount associated with a cargo monitor.
|
||||
* @param[in,out] monitor_map Monitoring map to search (and reset for the queried entry).
|
||||
* @param monitor Cargo monitor to query/reset.
|
||||
* @oaram monitor Cargo monitor to query/reset.
|
||||
* @param keep_monitoring After returning from this call, continue monitoring.
|
||||
* @return Amount collected since last query/activation for the monitored combination.
|
||||
*/
|
||||
|
||||
+2
-2
@@ -139,8 +139,8 @@ static inline TownID DecodeMonitorTown(CargoMonitorID num)
|
||||
return GB(num, CCB_TOWN_IND_NUMBER_START, CCB_TOWN_IND_NUMBER_LENGTH);
|
||||
}
|
||||
|
||||
void ClearCargoPickupMonitoring(CompanyID company = INVALID_OWNER);
|
||||
void ClearCargoDeliveryMonitoring(CompanyID company = INVALID_OWNER);
|
||||
void ClearCargoPickupMonitoring();
|
||||
void ClearCargoDeliveryMonitoring();
|
||||
uint32 GetDeliveryAmount(CargoMonitorID monitor, bool keep_monitoring);
|
||||
uint32 GetPickupAmount(CargoMonitorID monitor, bool keep_monitoring);
|
||||
void AddCargoDelivery(CargoID cargo_type, CompanyID company, uint32 amount, SourceType src_type, SourceID src, const Station *st);
|
||||
|
||||
+1
-1
@@ -161,7 +161,7 @@ public:
|
||||
|
||||
/**
|
||||
* Simple collection class for a list of cargo packets.
|
||||
* @tparam Tinst Actual instantiation of this cargo list.
|
||||
* @tparam Tinst Actual instantation of this cargo list.
|
||||
*/
|
||||
template <class Tinst>
|
||||
class CargoList {
|
||||
|
||||
+3
-3
@@ -46,7 +46,7 @@ enum CargoClass {
|
||||
CC_LIQUID = 1 << 6, ///< Liquids (Oil, Water, Rubber)
|
||||
CC_REFRIGERATED = 1 << 7, ///< Refrigerated cargo (Food, Fruit)
|
||||
CC_HAZARDOUS = 1 << 8, ///< Hazardous cargo (Nuclear Fuel, Explosives, etc.)
|
||||
CC_COVERED = 1 << 9, ///< Covered/Sheltered Freight (Transportation in Box Vans, Silo Wagons, etc.)
|
||||
CC_COVERED = 1 << 9, ///< Covered/Sheltered Freight (Transporation in Box Vans, Silo Wagons, etc.)
|
||||
CC_SPECIAL = 1 << 15, ///< Special bit used for livery refit tricks instead of normal cargoes.
|
||||
};
|
||||
|
||||
@@ -163,13 +163,13 @@ static inline bool IsCargoInClass(CargoID c, CargoClass cc)
|
||||
* @param var Reference getting the cargospec.
|
||||
* @see CargoSpec
|
||||
*/
|
||||
#define FOR_ALL_SORTED_CARGOSPECS(var) for (uint8 index = 0; index < _sorted_cargo_specs_size && (var = _sorted_cargo_specs[index], true) ; index++)
|
||||
#define FOR_ALL_SORTED_CARGOSPECS(var) for (uint8 index = 0; var = _sorted_cargo_specs[index], index < _sorted_cargo_specs_size; index++)
|
||||
|
||||
/**
|
||||
* Loop header for iterating over 'real' cargoes, sorted by name. Phony cargoes like regearing cargoes are skipped.
|
||||
* @param var Reference getting the cargospec.
|
||||
* @see CargoSpec
|
||||
*/
|
||||
#define FOR_ALL_SORTED_STANDARD_CARGOSPECS(var) for (uint8 index = 0; index < _sorted_standard_cargo_specs_size && (var = _sorted_cargo_specs[index], true); index++)
|
||||
#define FOR_ALL_SORTED_STANDARD_CARGOSPECS(var) for (uint8 index = 0; var = _sorted_cargo_specs[index], index < _sorted_standard_cargo_specs_size; index++)
|
||||
|
||||
#endif /* CARGOTYPE_H */
|
||||
|
||||
+1
-1
@@ -75,7 +75,7 @@ static int32 ClickChangeCompanyCheat(int32 p1, int32 p2)
|
||||
* Allow (or disallow) changing production of all industries.
|
||||
* @param p1 new value
|
||||
* @param p2 unused
|
||||
* @return New value allowing change of industry production.
|
||||
* @return New value allwing change of industry production.
|
||||
*/
|
||||
static int32 ClickSetProdCheat(int32 p1, int32 p2)
|
||||
{
|
||||
|
||||
+3
-3
@@ -190,12 +190,12 @@ static void TileLoopClearAlps(TileIndex tile)
|
||||
}
|
||||
}
|
||||
/* Update snow density. */
|
||||
uint current_density = GetClearDensity(tile);
|
||||
uint curent_density = GetClearDensity(tile);
|
||||
uint req_density = (k < 0) ? 0u : min((uint)k, 3);
|
||||
|
||||
if (current_density < req_density) {
|
||||
if (curent_density < req_density) {
|
||||
AddClearDensity(tile, 1);
|
||||
} else if (current_density > req_density) {
|
||||
} else if (curent_density > req_density) {
|
||||
AddClearDensity(tile, -1);
|
||||
} else {
|
||||
/* Density at the required level. */
|
||||
|
||||
+1
-1
@@ -331,7 +331,7 @@ static const Command _command_proc_table[] = {
|
||||
/*!
|
||||
* This function range-checks a cmd, and checks if the cmd is not NULL
|
||||
*
|
||||
* @param cmd The integer value of a command
|
||||
* @param cmd The integervalue of a command
|
||||
* @return true if the command is valid (and got a CommandProc function)
|
||||
*/
|
||||
bool IsValidCommand(uint32 cmd)
|
||||
|
||||
+1
-1
@@ -277,7 +277,7 @@ enum Commands {
|
||||
|
||||
CMD_GIVE_MONEY, ///< give money to another company
|
||||
CMD_CHANGE_SETTING, ///< change a setting
|
||||
CMD_CHANGE_COMPANY_SETTING, ///< change a company setting
|
||||
CMD_CHANGE_COMPANY_SETTING, ///< change a company etting
|
||||
|
||||
CMD_SET_AUTOREPLACE, ///< set an autoreplace entry
|
||||
|
||||
|
||||
@@ -1170,21 +1170,3 @@ CommandCost CmdRenamePresident(TileIndex tile, DoCommandFlag flags, uint32 p1, u
|
||||
|
||||
return CommandCost();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the service interval for the given company and vehicle type.
|
||||
* @param c The company, or NULL for client-default settings.
|
||||
* @param type The vehicle type to get the interval for.
|
||||
* @return The service interval.
|
||||
*/
|
||||
int CompanyServiceInterval(const Company *c, VehicleType type)
|
||||
{
|
||||
const VehicleDefaultSettings *vds = (c == NULL) ? &_settings_client.company.vehicle : &c->settings.vehicle;
|
||||
switch (type) {
|
||||
default: NOT_REACHED();
|
||||
case VEH_TRAIN: return vds->servint_trains;
|
||||
case VEH_ROAD: return vds->servint_roadveh;
|
||||
case VEH_AIRCRAFT: return vds->servint_aircraft;
|
||||
case VEH_SHIP: return vds->servint_ships;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
#include "command_type.h"
|
||||
#include "company_type.h"
|
||||
#include "gfx_type.h"
|
||||
#include "vehicle_type.h"
|
||||
|
||||
bool MayCompanyTakeOver(CompanyID cbig, CompanyID small);
|
||||
void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner);
|
||||
@@ -57,6 +56,4 @@ static inline bool IsInteractiveCompany(CompanyID company)
|
||||
return company == _local_company;
|
||||
}
|
||||
|
||||
int CompanyServiceInterval(const Company *c, VehicleType type);
|
||||
|
||||
#endif /* COMPANY_FUNC_H */
|
||||
|
||||
+19
-31
@@ -1987,7 +1987,6 @@ struct CompanyWindow : Window
|
||||
{
|
||||
this->InitNested(desc, window_number);
|
||||
this->owner = (Owner)this->window_number;
|
||||
this->OnInvalidateData();
|
||||
}
|
||||
|
||||
virtual void OnPaint()
|
||||
@@ -2056,6 +2055,25 @@ struct CompanyWindow : Window
|
||||
}
|
||||
}
|
||||
|
||||
if (!local) {
|
||||
if (_settings_game.economy.allow_shares) { // Shares are allowed
|
||||
/* If all shares are owned by someone (none by nobody), disable buy button */
|
||||
this->SetWidgetDisabledState(WID_C_BUY_SHARE, GetAmountOwnedBy(c, INVALID_OWNER) == 0 ||
|
||||
/* Only 25% left to buy. If the company is human, disable buying it up.. TODO issues! */
|
||||
(GetAmountOwnedBy(c, INVALID_OWNER) == 1 && !c->is_ai) ||
|
||||
/* Spectators cannot do anything of course */
|
||||
_local_company == COMPANY_SPECTATOR);
|
||||
|
||||
/* If the company doesn't own any shares, disable sell button */
|
||||
this->SetWidgetDisabledState(WID_C_SELL_SHARE, (GetAmountOwnedBy(c, _local_company) == 0) ||
|
||||
/* Spectators cannot do anything of course */
|
||||
_local_company == COMPANY_SPECTATOR);
|
||||
} else { // Shares are not allowed, disable buy/sell buttons
|
||||
this->DisableWidget(WID_C_BUY_SHARE);
|
||||
this->DisableWidget(WID_C_SELL_SHARE);
|
||||
}
|
||||
}
|
||||
|
||||
this->DrawWidgets();
|
||||
}
|
||||
|
||||
@@ -2378,36 +2396,6 @@ struct CompanyWindow : Window
|
||||
#endif /* ENABLE_NETWORK */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
if (this->window_number == _local_company) return;
|
||||
|
||||
if (_settings_game.economy.allow_shares) { // Shares are allowed
|
||||
const Company *c = Company::Get(this->window_number);
|
||||
|
||||
/* If all shares are owned by someone (none by nobody), disable buy button */
|
||||
this->SetWidgetDisabledState(WID_C_BUY_SHARE, GetAmountOwnedBy(c, INVALID_OWNER) == 0 ||
|
||||
/* Only 25% left to buy. If the company is human, disable buying it up.. TODO issues! */
|
||||
(GetAmountOwnedBy(c, INVALID_OWNER) == 1 && !c->is_ai) ||
|
||||
/* Spectators cannot do anything of course */
|
||||
_local_company == COMPANY_SPECTATOR);
|
||||
|
||||
/* If the company doesn't own any shares, disable sell button */
|
||||
this->SetWidgetDisabledState(WID_C_SELL_SHARE, (GetAmountOwnedBy(c, _local_company) == 0) ||
|
||||
/* Spectators cannot do anything of course */
|
||||
_local_company == COMPANY_SPECTATOR);
|
||||
} else { // Shares are not allowed, disable buy/sell buttons
|
||||
this->DisableWidget(WID_C_BUY_SHARE);
|
||||
this->DisableWidget(WID_C_SELL_SHARE);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
static const WindowDesc _company_desc(
|
||||
|
||||
@@ -120,7 +120,7 @@ static inline void SetCompanyManagerFaceBits(CompanyManagerFace &cmf, CompanyMan
|
||||
/**
|
||||
* Increase/Decrease the company manager's face variable by the given amount.
|
||||
* If the new value greater than the max value for this variable it will be set to 0.
|
||||
* Or is it negative (< 0) it will be set to max value.
|
||||
* Or is it negativ (< 0) it will be set to max value.
|
||||
*
|
||||
* @param cmf the company manager face to write the bits to
|
||||
* @param cmfv the company manager face variable to write the data of
|
||||
|
||||
+5
-5
@@ -355,7 +355,7 @@ static void IConsoleAliasExec(const IConsoleAlias *alias, byte tokencount, char
|
||||
aliasstream[astream_i++] = '"';
|
||||
break;
|
||||
|
||||
case ';': // Cmd separator, start new command
|
||||
case ';': // Cmd seperator, start new command
|
||||
aliasstream[astream_i] = '\0';
|
||||
aliases[++a_index] = &aliasstream[++astream_i];
|
||||
cmdptr++;
|
||||
@@ -364,7 +364,7 @@ static void IConsoleAliasExec(const IConsoleAlias *alias, byte tokencount, char
|
||||
case '%': // Some or all parameters
|
||||
cmdptr++;
|
||||
switch (*cmdptr) {
|
||||
case '+': { // All parameters separated: "[param 1]" "[param 2]"
|
||||
case '+': { // All parameters seperated: "[param 1]" "[param 2]"
|
||||
for (i = 0; i != tokencount; i++) {
|
||||
aliasstream[astream_i++] = '"';
|
||||
astream_i += IConsoleCopyInParams(&aliasstream[astream_i], tokens[i], astream_i);
|
||||
@@ -412,7 +412,7 @@ static void IConsoleAliasExec(const IConsoleAlias *alias, byte tokencount, char
|
||||
|
||||
/**
|
||||
* Execute a given command passed to us. First chop it up into
|
||||
* individual tokens (separated by spaces), then execute it if possible
|
||||
* individual tokens (seperated by spaces), then execute it if possible
|
||||
* @param cmdstr string to be parsed and executed
|
||||
*/
|
||||
void IConsoleCmdExec(const char *cmdstr)
|
||||
@@ -439,14 +439,14 @@ void IConsoleCmdExec(const char *cmdstr)
|
||||
memset(&tokens, 0, sizeof(tokens));
|
||||
memset(&tokenstream, 0, sizeof(tokenstream));
|
||||
|
||||
/* 1. Split up commandline into tokens, separated by spaces, commands
|
||||
/* 1. Split up commandline into tokens, seperated by spaces, commands
|
||||
* enclosed in "" are taken as one token. We can only go as far as the amount
|
||||
* of characters in our stream or the max amount of tokens we can handle */
|
||||
for (cmdptr = cmdstr, t_index = 0, tstream_i = 0; *cmdptr != '\0'; cmdptr++) {
|
||||
if (t_index >= lengthof(tokens) || tstream_i >= lengthof(tokenstream)) break;
|
||||
|
||||
switch (*cmdptr) {
|
||||
case ' ': // Token separator
|
||||
case ' ': // Token seperator
|
||||
if (!foundtoken) break;
|
||||
|
||||
if (longtoken) {
|
||||
|
||||
@@ -1066,7 +1066,7 @@ DEF_CONSOLE_CMD(ConRestart)
|
||||
}
|
||||
|
||||
/**
|
||||
* Print a text buffer line by line to the console. Lines are separated by '\n'.
|
||||
* Print a text buffer line by line to the console. Lines are seperated by '\n'.
|
||||
* @param buf The buffer to print.
|
||||
* @note All newlines are replace by '\0' characters.
|
||||
*/
|
||||
|
||||
@@ -28,7 +28,7 @@ enum ConsoleHookResult {
|
||||
* --Commands--
|
||||
* Commands are commands, or functions. They get executed once and any
|
||||
* effect they produce are carried out. The arguments to the commands
|
||||
* are given to them, each input word separated by a double-quote (") is an argument
|
||||
* are given to them, each input word seperated by a double-quote (") is an argument
|
||||
* If you want to handle multiple words as one, enclose them in double-quotes
|
||||
* eg. 'say "hello sexy boy"'
|
||||
*/
|
||||
@@ -50,7 +50,7 @@ struct IConsoleCmd {
|
||||
* (eg. 'ng' for 'load %A; unpause; debug_level 5'). Aliases can parse the arguments
|
||||
* given to them in the command line.
|
||||
* - "%A - %Z" substitute arguments 1 t/m 26
|
||||
* - "%+" lists all parameters keeping them separated
|
||||
* - "%+" lists all parameters keeping them seperated
|
||||
* - "%!" also lists all parameters but presenting them to the aliased command as one argument
|
||||
* - ";" allows for combining commands (see example 'ng')
|
||||
*/
|
||||
|
||||
@@ -27,7 +27,7 @@ const uint8 _ffb_64[64] = {
|
||||
* Search the first set bit in a 32 bit variable.
|
||||
*
|
||||
* This algorithm is a static implementation of a log
|
||||
* congruence search algorithm. It checks the first half
|
||||
* conguence search algorithm. It checks the first half
|
||||
* if there is a bit set search there further. And this
|
||||
* way further. If no bit is set return 0.
|
||||
*
|
||||
@@ -55,7 +55,7 @@ uint8 FindFirstBit(uint32 x)
|
||||
* Search the last set bit in a 64 bit variable.
|
||||
*
|
||||
* This algorithm is a static implementation of a log
|
||||
* congruence search algorithm. It checks the second half
|
||||
* conguence search algorithm. It checks the second half
|
||||
* if there is a bit set search there further. And this
|
||||
* way further. If no bit is set return 0.
|
||||
*
|
||||
|
||||
@@ -26,8 +26,6 @@
|
||||
* @param x The value to read some bits.
|
||||
* @param s The start position to read some bits.
|
||||
* @param n The number of bits to read.
|
||||
* @pre n < sizeof(T) * 8
|
||||
* @pre s + n <= sizeof(T) * 8
|
||||
* @return The selected bits, aligned to a LSB.
|
||||
*/
|
||||
template <typename T>
|
||||
@@ -52,8 +50,6 @@ static inline uint GB(const T x, const uint8 s, const uint8 n)
|
||||
* @param s The start position for the new bits
|
||||
* @param n The size/window for the new bits
|
||||
* @param d The actually new bits to save in the defined position.
|
||||
* @pre n < sizeof(T) * 8
|
||||
* @pre s + n <= sizeof(T) * 8
|
||||
* @return The new value of \a x
|
||||
*/
|
||||
template <typename T, typename U>
|
||||
@@ -76,8 +72,6 @@ static inline T SB(T &x, const uint8 s, const uint8 n, const U d)
|
||||
* @param x The variable to add some bits at some position
|
||||
* @param s The start position of the addition
|
||||
* @param n The size/window for the addition
|
||||
* @pre n < sizeof(T) * 8
|
||||
* @pre s + n <= sizeof(T) * 8
|
||||
* @param i The value to add at the given start position in the given window.
|
||||
* @return The new value of \a x
|
||||
*/
|
||||
@@ -98,7 +92,6 @@ static inline T AB(T &x, const uint8 s, const uint8 n, const U i)
|
||||
*
|
||||
* @param x The value to check
|
||||
* @param y The position of the bit to check, started from the LSB
|
||||
* @pre y < sizeof(T) * 8
|
||||
* @return True if the bit is set, false else.
|
||||
*/
|
||||
template <typename T>
|
||||
@@ -116,7 +109,6 @@ static inline bool HasBit(const T x, const uint8 y)
|
||||
*
|
||||
* @param x The variable to set a bit
|
||||
* @param y The bit position to set
|
||||
* @pre y < sizeof(T) * 8
|
||||
* @return The new value of the old value with the bit set
|
||||
*/
|
||||
template <typename T>
|
||||
@@ -146,7 +138,6 @@ static inline T SetBit(T &x, const uint8 y)
|
||||
*
|
||||
* @param x The variable to clear the bit
|
||||
* @param y The bit position to clear
|
||||
* @pre y < sizeof(T) * 8
|
||||
* @return The new value of the old value with the bit cleared
|
||||
*/
|
||||
template <typename T>
|
||||
@@ -176,7 +167,6 @@ static inline T ClrBit(T &x, const uint8 y)
|
||||
*
|
||||
* @param x The variable to toggle the bit
|
||||
* @param y The bit position to toggle
|
||||
* @pre y < sizeof(T) * 8
|
||||
* @return The new value of the old value with the bit toggled
|
||||
*/
|
||||
template <typename T>
|
||||
@@ -296,7 +286,6 @@ static inline bool HasAtMostOneBit(T value)
|
||||
* @note Assumes a byte has 8 bits
|
||||
* @param x The value which we want to rotate
|
||||
* @param n The number how many we want to rotate
|
||||
* @pre n < sizeof(T) * 8
|
||||
* @return A bit rotated number
|
||||
*/
|
||||
template <typename T>
|
||||
@@ -311,7 +300,6 @@ static inline T ROL(const T x, const uint8 n)
|
||||
* @note Assumes a byte has 8 bits
|
||||
* @param x The value which we want to rotate
|
||||
* @param n The number how many we want to rotate
|
||||
* @pre n < sizeof(T) * 8
|
||||
* @return A bit rotated number
|
||||
*/
|
||||
template <typename T>
|
||||
|
||||
@@ -89,7 +89,7 @@ template <typename Tenum_t> struct TinyEnumT;
|
||||
template <typename Tenum_t>
|
||||
struct TinyEnumT {
|
||||
typedef Tenum_t enum_type; ///< expose our enumeration type (i.e. Trackdir) to outside
|
||||
typedef EnumPropsT<Tenum_t> Props; ///< make easier access to our enumeration properties
|
||||
typedef EnumPropsT<Tenum_t> Props; ///< make easier access to our enumeration propeties
|
||||
typedef typename Props::storage storage_type; ///< small storage type
|
||||
static const enum_type begin = Props::begin; ///< enum beginning (i.e. TRACKDIR_BEGIN)
|
||||
static const enum_type end = Props::end; ///< enum end (i.e. TRACKDIR_END)
|
||||
|
||||
@@ -108,7 +108,7 @@ DEFINE_POOL_METHOD(inline void *)::AllocateItem(size_t size, size_t index)
|
||||
item = (Titem *)this->alloc_cache;
|
||||
this->alloc_cache = this->alloc_cache->next;
|
||||
if (Tzero) {
|
||||
/* Explicitly casting to (void *) prevents a clang warning -
|
||||
/* Explicitly casting to (void *) prevets a clang warning -
|
||||
* we are actually memsetting a (not-yet-constructed) object */
|
||||
memset((void *)item, 0, sizeof(Titem));
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ struct PoolBase {
|
||||
static void Clean(PoolType);
|
||||
|
||||
/**
|
||||
* Constructor registers this object in the pool vector.
|
||||
* Contructor registers this object in the pool vector.
|
||||
* @param pt type of this pool.
|
||||
*/
|
||||
PoolBase(PoolType pt) : type(pt)
|
||||
@@ -278,7 +278,7 @@ struct Pool : PoolBase {
|
||||
};
|
||||
|
||||
private:
|
||||
static const size_t NO_FREE_ITEM = MAX_UVALUE(size_t); ///< Constant to indicate we can't allocate any more items
|
||||
static const size_t NO_FREE_ITEM = MAX_UVALUE(size_t); ///< Contant to indicate we can't allocate any more items
|
||||
|
||||
/**
|
||||
* Helper struct to cache 'freed' PoolItems so we
|
||||
|
||||
@@ -37,7 +37,7 @@ static inline void QSortT(T *base, uint num, int (CDECL *comparator)(const T*, c
|
||||
/**
|
||||
* Type safe Gnome Sort.
|
||||
*
|
||||
* This is a slightly modified Gnome search. The basic
|
||||
* This is a slightly modifyied Gnome search. The basic
|
||||
* Gnome search tries to sort already sorted list parts.
|
||||
* The modification skips these.
|
||||
*
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ protected:
|
||||
virtual char *LogRegisters(char *buffer, const char *last) const;
|
||||
|
||||
/**
|
||||
* Writes the dynamically linked libraries/modules to the buffer, if there
|
||||
* Writes the dynamically linked libaries/modules to the buffer, if there
|
||||
* is information about it available.
|
||||
* @param buffer The begin where to write at.
|
||||
* @param last The last position in the buffer to write to.
|
||||
|
||||
+3
-3
@@ -62,7 +62,7 @@ static const CurrencySpec origin_currency_specs[NUM_CURRENCY] = {
|
||||
CurrencySpec _currency_specs[NUM_CURRENCY];
|
||||
|
||||
/**
|
||||
* These enums are only declared in order to make sense
|
||||
* These enums are only declared in order to make sens
|
||||
* out of the TTDPatch_To_OTTDIndex array that will follow
|
||||
* Every currency used by Ottd is there, just in case TTDPatch will
|
||||
* add those missing in its code
|
||||
@@ -129,7 +129,7 @@ const byte TTDPatch_To_OTTDIndex[] =
|
||||
};
|
||||
|
||||
/**
|
||||
* Will return the ottd's index correspondence to
|
||||
* Will return the ottd's index correspondance to
|
||||
* the ttdpatch's id. If the id is bigger than the array,
|
||||
* it is a grf written for ottd, thus returning the same id.
|
||||
* Only called from newgrf.cpp
|
||||
@@ -180,7 +180,7 @@ void CheckSwitchToEuro()
|
||||
* Called only from newgrf.cpp and settings.cpp.
|
||||
* @param preserve_custom will not reset custom currency (the latest one on the list)
|
||||
* if ever it is flagged to true. In which case, the total size of the memory to move
|
||||
* will be one currency spec less, thus preserving the custom currency from been
|
||||
* will be one currency spec less, thus preserving the custom curreny from been
|
||||
* overwritten.
|
||||
*/
|
||||
void ResetCurrencies(bool preserve_custom)
|
||||
|
||||
+1
-1
@@ -138,7 +138,7 @@ void ConvertDateToYMD(Date date, YearMonthDay *ymd)
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a tuple of Year, Month and Day to a Date.
|
||||
* Converts a tupe of Year, Month and Day to a Date.
|
||||
* @param year is a number between 0..MAX_YEAR
|
||||
* @param month is a number between 0..11
|
||||
* @param day is a number between 1..31
|
||||
|
||||
+1
-1
@@ -83,7 +83,7 @@ uint64 ottd_rdtsc();
|
||||
*
|
||||
* for (int i = 0; i < 5; i++) {
|
||||
* TIC();
|
||||
* --Do your code--
|
||||
* --Do yuor code--
|
||||
* TOC("A name", 5);
|
||||
* }
|
||||
*
|
||||
|
||||
+3
-4
@@ -169,8 +169,6 @@ static void InitBlocksizeForVehicles(VehicleType type, EngineImageType image_typ
|
||||
|
||||
const Engine *e;
|
||||
FOR_ALL_ENGINES_OF_TYPE(e, type) {
|
||||
if (!e->IsEnabled()) continue;
|
||||
|
||||
EngineID eid = e->index;
|
||||
uint x, y;
|
||||
int x_offs, y_offs;
|
||||
@@ -744,7 +742,7 @@ struct DepotWindow : Window {
|
||||
}
|
||||
|
||||
case WID_D_SELL_ALL:
|
||||
/* Only open the confirmation window if there are anything to sell */
|
||||
/* Only open the confimation window if there are anything to sell */
|
||||
if (this->vehicle_list.Length() != 0 || this->wagon_list.Length() != 0) {
|
||||
TileIndex tile = this->window_number;
|
||||
byte vehtype = this->type;
|
||||
@@ -842,7 +840,8 @@ struct DepotWindow : Window {
|
||||
*/
|
||||
virtual bool OnVehicleSelect(const Vehicle *v)
|
||||
{
|
||||
if (DoCommandP(this->window_number, v->index, _ctrl_pressed ? 1 : 0, CMD_CLONE_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_BUY_TRAIN + v->type), CcCloneVehicle)) {
|
||||
/* Suppress the vehicle GUI when share-cloning. There is no point to it, starting vehicles can also be done via the depot GUI. */
|
||||
if (DoCommandP(this->window_number, v->index, _ctrl_pressed ? 1 : 0, CMD_CLONE_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_BUY_TRAIN + v->type), _ctrl_pressed ? NULL : CcCloneVehicle)) {
|
||||
ResetObjectToPlace();
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -93,7 +93,7 @@ static inline DiagDirection ReverseDiagDir(DiagDirection d)
|
||||
* the new DiagDirection.
|
||||
*
|
||||
* @param d The DiagDirection
|
||||
* @param delta The difference to apply on
|
||||
* @param delta The difference to applie on
|
||||
* @return The new direction which was calculated
|
||||
*/
|
||||
static inline DiagDirection ChangeDiagDir(DiagDirection d, DiagDirDiff delta)
|
||||
@@ -207,7 +207,7 @@ static inline DiagDirection XYNSToDiagDir(Axis xy, uint ns)
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if an integer value is a valid DiagDirection
|
||||
* Checks if an interger value is a valid DiagDirection
|
||||
*
|
||||
* @param d The value to check
|
||||
* @return True if the value belongs to a DiagDirection, else false
|
||||
|
||||
@@ -66,7 +66,7 @@ enum DirDiff {
|
||||
DIRDIFF_SAME = 0, ///< Both directions faces to the same direction
|
||||
DIRDIFF_45RIGHT = 1, ///< Angle of 45 degrees right
|
||||
DIRDIFF_90RIGHT = 2, ///< Angle of 90 degrees right
|
||||
DIRDIFF_REVERSE = 4, ///< One direction is the opposite of the other one
|
||||
DIRDIFF_REVERSE = 4, ///< One direction is the opposit of the other one
|
||||
DIRDIFF_90LEFT = 6, ///< Angle of 90 degrees left
|
||||
DIRDIFF_45LEFT = 7, ///< Angle of 45 degrees left
|
||||
};
|
||||
@@ -119,7 +119,7 @@ DECLARE_POSTFIX_INCREMENT(DiagDirDiff)
|
||||
/**
|
||||
* Enumeration for the two axis X and Y
|
||||
*
|
||||
* This enumeration represents the two axis X and Y in the game.
|
||||
* This enumeration represente the two axis X and Y in the game.
|
||||
* The X axis is the one which goes align the north-west edge
|
||||
* (and south-east edge). The Y axis must be so the one which goes
|
||||
* align the north-east edge (and south-west) edge.
|
||||
|
||||
@@ -76,7 +76,7 @@ static void DisasterClearSquare(TileIndex tile)
|
||||
|
||||
switch (GetTileType(tile)) {
|
||||
case MP_RAILWAY:
|
||||
if (Company::IsHumanID(GetTileOwner(tile)) && !IsRailDepot(tile)) {
|
||||
if (Company::IsHumanID(GetTileOwner(tile))) {
|
||||
Backup<CompanyByte> cur_company(_current_company, OWNER_WATER, FILE_LINE);
|
||||
DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
|
||||
cur_company.Restore();
|
||||
@@ -382,7 +382,7 @@ static void DestructIndustry(Industry *i)
|
||||
|
||||
/**
|
||||
* Aircraft handling, v->current_order.dest states:
|
||||
* 0: Fly towards the targeted industry
|
||||
* 0: Fly towards the targetted industry
|
||||
* 1: If within 15 tiles, fire away rockets and destroy industry
|
||||
* 2: Industry explosions
|
||||
* 3: Fly out of the map
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ static TileIndex GetOtherAqueductEnd(TileIndex tile_from, TileIndex *tile_to = N
|
||||
return endtile;
|
||||
}
|
||||
|
||||
/** Toolbar window for constructing water infrastructure. */
|
||||
/** Toolbar window for constructing water infra structure. */
|
||||
struct BuildDocksToolbarWindow : Window {
|
||||
DockToolbarWidgets last_clicked_widget; ///< Contains the last widget that has been clicked on this toolbar.
|
||||
|
||||
|
||||
+27
-58
@@ -45,7 +45,6 @@
|
||||
#include "water.h"
|
||||
#include "game/game.hpp"
|
||||
#include "cargomonitor.h"
|
||||
#include "goal_base.h"
|
||||
|
||||
#include "table/strings.h"
|
||||
#include "table/pricebase.h"
|
||||
@@ -292,7 +291,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
#endif /* ENABLE_NETWORK */
|
||||
if (old_owner == _local_company) {
|
||||
/* Single player cheated to AI company.
|
||||
* There are no spectators in single player, so we must pick some other 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;
|
||||
@@ -462,7 +461,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
if (new_owner != INVALID_OWNER) {
|
||||
/* Update all signals because there can be new segment that was owned by two companies
|
||||
* and signals were not propagated
|
||||
* Similar with crossings - it is needed to bar crossings that weren't before
|
||||
* Similiar with crossings - it is needed to bar crossings that weren't before
|
||||
* because of different owner of crossing and approaching train */
|
||||
tile = 0;
|
||||
|
||||
@@ -509,15 +508,6 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
if (si->owner == old_owner) si->owner = new_owner == INVALID_OWNER ? OWNER_NONE : new_owner;
|
||||
}
|
||||
|
||||
/* Remove Game Script created Goals and CargoMonitors. */
|
||||
Goal *g;
|
||||
FOR_ALL_GOALS(g) {
|
||||
if (g->company == old_owner) delete g;
|
||||
}
|
||||
|
||||
ClearCargoPickupMonitoring(old_owner);
|
||||
ClearCargoDeliveryMonitoring(old_owner);
|
||||
|
||||
/* Change colour of existing windows */
|
||||
if (new_owner != INVALID_OWNER) ChangeWindowOwner(old_owner, new_owner);
|
||||
|
||||
@@ -555,7 +545,7 @@ static void CompanyCheckBankrupt(Company *c)
|
||||
case 9:
|
||||
break;
|
||||
|
||||
/* Warn about bankruptcy after 3 months */
|
||||
/* Warn about bancruptcy after 3 months */
|
||||
case 4: {
|
||||
CompanyNewsInformation *cni = MallocT<CompanyNewsInformation>(1);
|
||||
cni->FillData(c);
|
||||
@@ -570,19 +560,19 @@ static void CompanyCheckBankrupt(Company *c)
|
||||
|
||||
/* Offer company for sale after 6 months */
|
||||
case 7: {
|
||||
/* Don't consider the loan */
|
||||
/* Check if the company has any value. If not, declare it bankrupt
|
||||
* right now */
|
||||
Money val = CalculateCompanyValue(c, false);
|
||||
|
||||
c->bankrupt_value = val;
|
||||
c->bankrupt_asked = 1 << c->index; // Don't ask the owner
|
||||
c->bankrupt_timeout = 0;
|
||||
|
||||
/* The company assets should always have some value */
|
||||
assert(c->bankrupt_value > 0);
|
||||
break;
|
||||
if (val > 0) {
|
||||
c->bankrupt_value = val;
|
||||
c->bankrupt_asked = 1 << c->index; // Don't ask the owner
|
||||
c->bankrupt_timeout = 0;
|
||||
break;
|
||||
}
|
||||
/* FALL THROUGH to case 10 */
|
||||
}
|
||||
|
||||
/* Bankrupt company after 6 months (if the company has no value) or latest
|
||||
/* Bancrupt company after 6 months (if the company has no value) or latest
|
||||
* after 9 months (if it still had value after 6 months) */
|
||||
default:
|
||||
case 10: {
|
||||
@@ -706,7 +696,7 @@ bool AddInflation(bool check_year)
|
||||
/* Approximation for (100 + infl_amount)% ** (1 / 12) - 100%
|
||||
* scaled by 65536
|
||||
* 12 -> months per year
|
||||
* This is only a good approximation for small values
|
||||
* This is only a good approxiamtion for small values
|
||||
*/
|
||||
_economy.inflation_prices += (_economy.inflation_prices * _economy.infl_amount * 54) >> 16;
|
||||
_economy.inflation_payment += (_economy.inflation_payment * _economy.infl_amount_pr * 54) >> 16;
|
||||
@@ -876,7 +866,7 @@ void StartupIndustryDailyChanges(bool init_counter)
|
||||
* which stands for the days in a month.
|
||||
* Using just 31 will make it so that a monthly reset (based on the real number of days of that month)
|
||||
* would not be needed.
|
||||
* Since it is based on "fractional parts", the leftover days will not make much of a difference
|
||||
* Since it is based on "fractionnal parts", the leftover days will not make much of a difference
|
||||
* on the overall total number of changes performed */
|
||||
_economy.industry_daily_increment = (1 << map_size) / 31;
|
||||
|
||||
@@ -1261,8 +1251,7 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
|
||||
if (_settings_game.order.improved_load && (front->current_order.GetLoadType() & OLFB_FULL_LOAD)) {
|
||||
/* 'Reserve' this cargo for this vehicle, because we were first. */
|
||||
for (Vehicle *v = front; v != NULL; v = v->Next()) {
|
||||
int cap_left = v->cargo_cap;
|
||||
if (!HasBit(v->vehicle_flags, VF_CARGO_UNLOADING)) cap_left -= v->cargo.Count();
|
||||
int cap_left = v->cargo_cap - v->cargo.Count();
|
||||
if (cap_left > 0) cargo_left[v->cargo_type] -= cap_left;
|
||||
}
|
||||
}
|
||||
@@ -1295,12 +1284,11 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
|
||||
bool dirty_station = false;
|
||||
|
||||
bool completely_emptied = true;
|
||||
bool anything_unloaded = false;
|
||||
bool anything_loaded = false;
|
||||
bool anything_unloaded = false;
|
||||
bool anything_loaded = false;
|
||||
uint32 full_load_amount = 0;
|
||||
uint32 cargo_not_full = 0;
|
||||
uint32 cargo_full = 0;
|
||||
uint32 reservation_left = 0;
|
||||
uint32 cargo_not_full = 0;
|
||||
uint32 cargo_full = 0;
|
||||
|
||||
front->cur_speed = 0;
|
||||
|
||||
@@ -1512,14 +1500,9 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
|
||||
if (use_autorefit) {
|
||||
/* When using autorefit, reserve all cargo for this wagon to prevent other wagons
|
||||
* from feeling the need to refit. */
|
||||
uint total_cap_left = v->cargo_cap - v->cargo.Count();
|
||||
int total_cap_left = v->cargo_cap - v->cargo.Count();
|
||||
cargo_left[v->cargo_type] -= total_cap_left;
|
||||
consist_capleft[v->cargo_type] -= total_cap_left;
|
||||
if (total_cap_left > cap && count > cap) {
|
||||
/* Remember if there are reservations left so that we don't stop
|
||||
* loading before they're loaded. */
|
||||
SetBit(reservation_left, v->cargo_type);
|
||||
}
|
||||
} else {
|
||||
/* Update cargo left; but don't reserve everything yet, so other wagons
|
||||
* of the same consist load in parallel. */
|
||||
@@ -1552,7 +1535,6 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
|
||||
st->last_vehicle_type = v->type;
|
||||
|
||||
if (ge->cargo.Empty()) {
|
||||
TriggerStationRandomisation(st, st->xy, SRT_CARGO_TAKEN, v->cargo_type);
|
||||
TriggerStationAnimation(st, st->xy, SAT_CARGO_TAKEN, v->cargo_type);
|
||||
AirportAnimationTrigger(st, AAT_STATION_CARGO_TAKEN, v->cargo_type);
|
||||
}
|
||||
@@ -1570,10 +1552,7 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
|
||||
}
|
||||
|
||||
if (anything_loaded || anything_unloaded) {
|
||||
if (front->type == VEH_TRAIN) {
|
||||
TriggerStationRandomisation(st, front->tile, SRT_TRAIN_LOADS);
|
||||
TriggerStationAnimation(st, front->tile, SAT_TRAIN_LOADS);
|
||||
}
|
||||
if (front->type == VEH_TRAIN) TriggerStationAnimation(st, st->xy, SAT_TRAIN_LOADS);
|
||||
}
|
||||
|
||||
/* Only set completely_emptied, if we just unloaded all remaining cargo */
|
||||
@@ -1585,17 +1564,10 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
|
||||
* If we use autorefit otoh, we only want to load/refit a vehicle if the other wagons cannot already hold the cargo,
|
||||
* to keep the option to still refit the vehicle when new cargo of different type shows up.
|
||||
*/
|
||||
if (_settings_game.order.improved_load && (front->current_order.GetLoadType() & OLFB_FULL_LOAD)) {
|
||||
if (_settings_game.order.improved_load && (front->current_order.GetLoadType() & OLFB_FULL_LOAD) && !use_autorefit) {
|
||||
/* Update left cargo */
|
||||
for (Vehicle *v = front; v != NULL; v = v->Next()) {
|
||||
int cap_left = v->cargo_cap;
|
||||
if (!HasBit(v->vehicle_flags, VF_CARGO_UNLOADING)) {
|
||||
if (use_autorefit) {
|
||||
continue;
|
||||
} else {
|
||||
cap_left -= v->cargo.Count();
|
||||
}
|
||||
}
|
||||
int cap_left = v->cargo_cap - v->cargo.Count();
|
||||
if (cap_left > 0) cargo_left[v->cargo_type] -= cap_left;
|
||||
}
|
||||
}
|
||||
@@ -1613,7 +1585,7 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
|
||||
}
|
||||
/* We loaded less cargo than possible for all cargo types and it's not full
|
||||
* load and we're not supposed to wait any longer: stop loading. */
|
||||
if (!anything_unloaded && full_load_amount == 0 && reservation_left == 0 && !(front->current_order.GetLoadType() & OLFB_FULL_LOAD) &&
|
||||
if (!anything_unloaded && full_load_amount == 0 && !(front->current_order.GetLoadType() & OLFB_FULL_LOAD) &&
|
||||
front->current_order_time >= (uint)max(front->current_order.wait_time - front->lateness_counter, 0)) {
|
||||
SetBit(front->vehicle_flags, VF_STOP_LOADING);
|
||||
}
|
||||
@@ -1665,9 +1637,6 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
|
||||
front->load_unload_ticks = max(1, unloading_time);
|
||||
|
||||
if (completely_emptied) {
|
||||
/* Make sure the vehicle is marked dirty, since we need to update the NewGRF
|
||||
* properties such as weight, power and TE whenever the trigger runs. */
|
||||
dirty_vehicle = true;
|
||||
TriggerVehicle(front, VEHICLE_TRIGGER_EMPTY);
|
||||
}
|
||||
|
||||
@@ -1828,7 +1797,7 @@ CommandCost CmdBuyShareInCompany(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
||||
break;
|
||||
}
|
||||
}
|
||||
InvalidateWindowData(WC_COMPANY, target_company);
|
||||
SetWindowDirty(WC_COMPANY, target_company);
|
||||
CompanyAdminUpdate(c);
|
||||
}
|
||||
return cost;
|
||||
@@ -1866,7 +1835,7 @@ CommandCost CmdSellShareInCompany(TileIndex tile, DoCommandFlag flags, uint32 p1
|
||||
OwnerByte *b = c->share_owners;
|
||||
while (*b != _current_company) b++; // share owners is guaranteed to contain company
|
||||
*b = COMPANY_SPECTATOR;
|
||||
InvalidateWindowData(WC_COMPANY, target_company);
|
||||
SetWindowDirty(WC_COMPANY, target_company);
|
||||
CompanyAdminUpdate(c);
|
||||
}
|
||||
return CommandCost(EXPENSES_OTHER, cost);
|
||||
|
||||
@@ -547,7 +547,7 @@ static EffectInitProc * const _effect_init_procs[] = {
|
||||
};
|
||||
assert_compile(lengthof(_effect_init_procs) == EV_END);
|
||||
|
||||
/** Functions for controlling effect vehicles at each tick. */
|
||||
/** Functions for controling effect vehicles at each tick. */
|
||||
static EffectTickProc * const _effect_tick_procs[] = {
|
||||
ChimneySmokeTick, // EV_CHIMNEY_SMOKE
|
||||
SteamSmokeTick, // EV_STEAM_SMOKE
|
||||
|
||||
+5
-5
@@ -25,7 +25,7 @@
|
||||
* Group 0: Tiles with both an even X coordinate and an even Y coordinate
|
||||
* Group 1: Tiles with an even X and an odd Y coordinate
|
||||
* Group 2: Tiles with an odd X and an even Y coordinate
|
||||
* Group 3: Tiles with both an odd X and Y coordinate.
|
||||
* Group 3: Tiles with both an odd X and Y coordnate.
|
||||
*
|
||||
* <h3>Pylon Points</h3>
|
||||
* <h4>Control Points</h4>
|
||||
@@ -39,7 +39,7 @@
|
||||
* other tile.
|
||||
*
|
||||
* Now on each edge there are two PCPs: One from each adjacent tile. Both PCPs
|
||||
* are merged using an OR operation (i. e. if one tile needs a PCP at the position
|
||||
* are merged using an OR operation (i. e. if one tile needs a PCP at the postion
|
||||
* in question, both tiles get it).
|
||||
*
|
||||
* <h4>Position Points</h4>
|
||||
@@ -127,7 +127,7 @@ static TrackBits MaskWireBits(TileIndex t, TrackBits tracks)
|
||||
|
||||
TrackdirBits neighbour_tdb = TRACKDIR_BIT_NONE;
|
||||
for (DiagDirection d = DIAGDIR_BEGIN; d < DIAGDIR_END; d++) {
|
||||
/* If the neighbour tile is either not electrified or has no tracks that can be reached
|
||||
/* If the neighbor tile is either not electrified or has no tracks that can be reached
|
||||
* from this tile, mark all trackdirs that can be reached from the neighbour tile
|
||||
* as needing no catenary. We make an exception for blocked station tiles with a matching
|
||||
* axis that still display wires to preserve visual continuity. */
|
||||
@@ -376,7 +376,7 @@ static void DrawCatenaryRailway(const TileInfo *ti)
|
||||
/* 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;
|
||||
|
||||
/* Read the foundations if they are present, and adjust the tileh */
|
||||
/* 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]);
|
||||
if (IsBridgeTile(neighbour)) {
|
||||
foundation = GetBridgeFoundation(tileh[TS_NEIGHBOUR], DiagDirToAxis(GetTunnelBridgeDirection(neighbour)));
|
||||
@@ -426,7 +426,7 @@ static void DrawCatenaryRailway(const TileInfo *ti)
|
||||
|
||||
/* Don't build the pylon if it would be outside the tile */
|
||||
if (!HasBit(OwnedPPPonPCP[i], temp)) {
|
||||
/* We have a neighbour that will draw it, bail out */
|
||||
/* We have a neighour that will draw it, bail out */
|
||||
if (trackconfig[TS_NEIGHBOUR] != TRACK_BIT_NONE) break;
|
||||
continue; // No neighbour, go looking for a better position
|
||||
}
|
||||
|
||||
+2
-2
@@ -854,7 +854,7 @@ void EnginesDailyLoop()
|
||||
* Accept an engine prototype. XXX - it is possible that the top-company
|
||||
* changes while you are waiting to accept the offer? Then it becomes invalid
|
||||
* @param tile unused
|
||||
* @param flags operation to perform
|
||||
* @param flags operation to perfom
|
||||
* @param p1 engine-prototype offered
|
||||
* @param p2 unused
|
||||
* @param text unused
|
||||
@@ -1000,7 +1000,7 @@ static bool IsUniqueEngineName(const char *name)
|
||||
/**
|
||||
* Rename an engine.
|
||||
* @param tile unused
|
||||
* @param flags operation to perform
|
||||
* @param flags operation to perfom
|
||||
* @param p1 engine ID to rename
|
||||
* @param p2 unused
|
||||
* @param text the new name or an empty string when resetting to the default
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ struct Engine : EnginePool::PoolItem<&_engine_pool> {
|
||||
* Usually a valid cargo is returned, even though the vehicle has zero capacity, and can therefore not carry anything. But the cargotype is still used
|
||||
* for livery selection etc..
|
||||
*
|
||||
* Vehicles with CT_INVALID as default cargo are usually not available, but it can appear as default cargo of articulated parts.
|
||||
* Vehicles with CT_INVALID as default cargo are usally not available, but it can appear as default cargo of articulated parts.
|
||||
*
|
||||
* @return The default cargo type.
|
||||
* @see CanCarryCargo
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
|
||||
/** Message severity/type */
|
||||
enum WarningLevel {
|
||||
WL_INFO, ///< Used for DoCommand-like (and some non-fatal AI GUI) errors/information
|
||||
WL_INFO, ///< Used for DoCommand-like (and some nonfatal AI GUI) errors/information
|
||||
WL_WARNING, ///< Other information
|
||||
WL_ERROR, ///< Errors (eg. saving/loading failed)
|
||||
WL_CRITICAL, ///< Critical errors, the MessageBox is shown in all cases
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ static const WindowDesc _errmsg_face_desc(
|
||||
);
|
||||
|
||||
/**
|
||||
* Copy the given data into our instance.
|
||||
* Copy the given data into our instace.
|
||||
* @param data The data to copy.
|
||||
*/
|
||||
ErrorMessageData::ErrorMessageData(const ErrorMessageData &data)
|
||||
|
||||
+4
-4
@@ -238,7 +238,7 @@ static void FioFreeHandle()
|
||||
* @param slot Index to assign.
|
||||
* @param filename Name of the file at the disk.
|
||||
* @param subdir The sub directory to search this file in.
|
||||
*/
|
||||
*/
|
||||
void FioOpenFile(int slot, const char *filename, Subdirectory subdir)
|
||||
{
|
||||
FILE *f;
|
||||
@@ -643,7 +643,7 @@ static void SimplifyFileName(char *name)
|
||||
/* Force lowercase */
|
||||
strtolower(name);
|
||||
|
||||
/* Tar-files always have '/' path-separator, but we want our PATHSEPCHAR */
|
||||
/* Tar-files always have '/' path-seperator, but we want our PATHSEPCHAR */
|
||||
#if (PATHSEPCHAR != '/')
|
||||
for (char *n = name; *n != '\0'; n++) if (*n == '/') *n = PATHSEPCHAR;
|
||||
#endif
|
||||
@@ -1364,7 +1364,7 @@ static uint ScanTar(FileScanner *fs, const char *extension, TarFileList::iterato
|
||||
}
|
||||
|
||||
/**
|
||||
* Scan for files with the given extension in the given search path.
|
||||
* Scan for files with the given extention in the given search path.
|
||||
* @param extension the extension of files to search for.
|
||||
* @param sd the sub directory to search in.
|
||||
* @param tars whether to search in the tars too.
|
||||
@@ -1410,7 +1410,7 @@ uint FileScanner::Scan(const char *extension, Subdirectory sd, bool tars, bool r
|
||||
}
|
||||
|
||||
/**
|
||||
* Scan for files with the given extension in the given search path.
|
||||
* Scan for files with the given extention in the given search path.
|
||||
* @param extension the extension of files to search for.
|
||||
* @param directory the sub directory to search in.
|
||||
* @param recursive whether to search recursively
|
||||
|
||||
+2
-2
@@ -88,9 +88,9 @@ enum FileSlots {
|
||||
CONFIG_SLOT = 0,
|
||||
/** Slot for the sound. */
|
||||
SOUND_SLOT = 1,
|
||||
/** First slot usable for (New)GRFs used during the game. */
|
||||
/** First slot useable for (New)GRFs used during the game. */
|
||||
FIRST_GRF_SLOT = 2,
|
||||
/** Last slot usable for (New)GRFs used during the game. */
|
||||
/** Last slot useable for (New)GRFs used during the game. */
|
||||
LAST_GRF_SLOT = 63,
|
||||
/** Maximum number of slots. */
|
||||
MAX_FILE_SLOTS = 64
|
||||
|
||||
@@ -266,6 +266,7 @@ public:
|
||||
|
||||
this->querystrings[WID_SL_SAVE_OSK_TITLE] = &this->filename_editbox;
|
||||
this->filename_editbox.ok_button = WID_SL_SAVE_GAME;
|
||||
this->filename_editbox.afilter = CS_ALPHANUMERAL;
|
||||
|
||||
this->CreateNestedTree(desc, true);
|
||||
if (mode == SLD_LOAD_GAME) this->GetWidget<NWidgetStacked>(WID_SL_CONTENT_DOWNLOAD_SEL)->SetDisplayedPlane(SZSP_HORIZONTAL);
|
||||
|
||||
+5
-5
@@ -160,8 +160,8 @@ static FT_Error GetFontByFaceName(const char *font_name, FT_Face *face)
|
||||
* - Batang & BatangChe & Gungsuh & GungsuhChe (TrueType)
|
||||
* We will strip the font-type '()' if any and work with the font name
|
||||
* itself, which must match exactly; if...
|
||||
* TTC files, font files which contain more than one font are separated
|
||||
* by '&'. Our best bet will be to do substr match for the fontname
|
||||
* TTC files, font files which contain more than one font are seperated
|
||||
* byt '&'. Our best bet will be to do substr match for the fontname
|
||||
* and then let FreeType figure out which index to load */
|
||||
s = _tcschr(vbuffer, _T('('));
|
||||
if (s != NULL) s[-1] = '\0';
|
||||
@@ -182,7 +182,7 @@ static FT_Error GetFontByFaceName(const char *font_name, FT_Face *face)
|
||||
* contain multiple fonts inside this single file. GetFontData however
|
||||
* returns the whole file, so we need to check each font inside to get the
|
||||
* proper font.
|
||||
* Also note that FreeType does not support UNICODE filenames! */
|
||||
* Also note that FreeType does not support UNICODE filesnames! */
|
||||
#if defined(UNICODE)
|
||||
/* We need a cast here back from wide because FreeType doesn't support
|
||||
* widechar filenames. Just use the buffer we allocated before for the
|
||||
@@ -570,7 +570,7 @@ bool SetFallbackFont(FreeTypeSettings *settings, const char *language_isocode, i
|
||||
strecpy(buff, str, lastof(buff));
|
||||
str_validate(buff, lastof(buff), SVS_ALLOW_NEWLINE);
|
||||
|
||||
/* Extract a UniChar representation of the sample string. */
|
||||
/* Extract a UniChar represenation of the sample string. */
|
||||
CFStringRef cf_str = CFStringCreateWithCString(kCFAllocatorDefault, buff, kCFStringEncodingUTF8);
|
||||
if (cf_str == NULL) {
|
||||
/* Something went wrong. Corrupt/invalid sample string? */
|
||||
@@ -590,7 +590,7 @@ bool SetFallbackFont(FreeTypeSettings *settings, const char *language_isocode, i
|
||||
ATSUCreateTextLayoutWithTextPtr(string, kATSUFromTextBeginning, kATSUToTextEnd, str_len, 1, &run_len, &style, &text_layout);
|
||||
|
||||
/* Try to match a font for the sample text. ATSUMatchFontsToText stops after
|
||||
* it finds the first continuous character run not renderable with the currently
|
||||
* it finds the first continous character run not renderable with the currently
|
||||
* selected font starting at offset. The matching needs to be repeated until
|
||||
* the end of the string is reached to make sure the fallback font matches for
|
||||
* all characters in the string and not only the first run. */
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
|
||||
/* static */ void Game::ResetConfig()
|
||||
{
|
||||
/* Check for both newgame as current game if we can reload the GameInfo inside
|
||||
/* Check for both newgame as current game if we can reload the GameInfo insde
|
||||
* the GameConfig. If not, remove the Game from the list. */
|
||||
if (_settings_game.game_config != NULL && _settings_game.game_config->HasScript()) {
|
||||
if (!_settings_game.game_config->ResetInfo(true)) {
|
||||
|
||||
@@ -21,7 +21,7 @@ public:
|
||||
/**
|
||||
* Check if we have a game by name and version available in our list.
|
||||
* @param nameParam The name of the game script.
|
||||
* @param versionParam The version of the game script, or -1 if you want the latest.
|
||||
* @param versionParam The versionof the game script, or -1 if you want the latest.
|
||||
* @param force_exact_match Only match name+version, never latest.
|
||||
* @return NULL if no match found, otherwise the game script that matched.
|
||||
*/
|
||||
|
||||
@@ -78,7 +78,7 @@ static const NWidgetPart _nested_generate_landscape_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL), SetPIP(0, 3, 0),
|
||||
/* Left column with labels. */
|
||||
NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0),
|
||||
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_MAPSIZE, STR_MAPGEN_MAPSIZE_TOOLTIP), SetFill(1, 1),
|
||||
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_MAPSIZE, STR_NULL), SetFill(1, 1),
|
||||
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_LAND_GENERATOR, STR_NULL), SetFill(1, 1),
|
||||
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_NUMBER_OF_TOWNS, STR_NULL), SetFill(1, 1),
|
||||
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_TERRAIN_TYPE, STR_NULL), SetFill(1, 1),
|
||||
@@ -92,9 +92,9 @@ static const NWidgetPart _nested_generate_landscape_widgets[] = {
|
||||
NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0),
|
||||
/* Mapsize X * Y. */
|
||||
NWidget(NWID_HORIZONTAL), SetPIP(0, 4, 0),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_MAPSIZE_X_PULLDOWN), SetDataTip(STR_JUST_INT, STR_MAPGEN_MAPSIZE_TOOLTIP), SetFill(1, 0),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_MAPSIZE_X_PULLDOWN), SetDataTip(STR_JUST_INT, STR_NULL), SetFill(1, 0),
|
||||
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_BY, STR_NULL), SetPadding(1, 0, 0, 0), SetFill(1, 1),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_MAPSIZE_Y_PULLDOWN), SetDataTip(STR_JUST_INT, STR_MAPGEN_MAPSIZE_TOOLTIP), SetFill(1, 0),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_MAPSIZE_Y_PULLDOWN), SetDataTip(STR_JUST_INT, STR_NULL), SetFill(1, 0),
|
||||
EndContainer(),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_LANDSCAPE_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_TOWN_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0),
|
||||
@@ -320,7 +320,7 @@ struct GenerateLandscapeWindow : public Window {
|
||||
this->querystrings[WID_GL_RANDOM_EDITBOX] = &this->seed_editbox;
|
||||
this->seed_editbox.text.Print("%u", _settings_newgame.game_creation.generation_seed);
|
||||
this->seed_editbox.caption = STR_NULL;
|
||||
this->seed_editbox.text.afilter = CS_NUMERAL;
|
||||
this->seed_editbox.afilter = CS_NUMERAL;
|
||||
|
||||
this->mode = (GenenerateLandscapeWindowMode)this->window_number;
|
||||
|
||||
|
||||
+33
-36
@@ -297,11 +297,11 @@ static void SetColourRemap(TextColour colour)
|
||||
}
|
||||
|
||||
#if !defined(WITH_ICU)
|
||||
static WChar *HandleBiDiAndArabicShapes(WChar *text) { return text; }
|
||||
typedef WChar UChar;
|
||||
static UChar *HandleBiDiAndArabicShapes(UChar *text) { return text; }
|
||||
#else
|
||||
#include <unicode/ubidi.h>
|
||||
#include <unicode/ushape.h>
|
||||
#include <unicode/ustring.h>
|
||||
|
||||
/**
|
||||
* Function to be able to handle right-to-left text and Arabic chars properly.
|
||||
@@ -332,40 +332,37 @@ static WChar *HandleBiDiAndArabicShapes(WChar *text) { return text; }
|
||||
* @param lastof the end of the buffer
|
||||
* @return the buffer to draw from
|
||||
*/
|
||||
static WChar *HandleBiDiAndArabicShapes(WChar *buffer)
|
||||
static UChar *HandleBiDiAndArabicShapes(UChar *buffer)
|
||||
{
|
||||
UChar input[DRAW_STRING_BUFFER];
|
||||
static UChar input_output[DRAW_STRING_BUFFER];
|
||||
UChar intermediate[DRAW_STRING_BUFFER];
|
||||
static WChar output[DRAW_STRING_BUFFER];
|
||||
|
||||
/* Transform from UTF-32 to internal ICU format of UTF-16. */
|
||||
UChar *t = buffer;
|
||||
size_t length = 0;
|
||||
while (*t != '\0' && length < lengthof(input_output) - 1) {
|
||||
input_output[length++] = *t++;
|
||||
}
|
||||
input_output[length] = 0;
|
||||
|
||||
UErrorCode err = U_ZERO_ERROR;
|
||||
int32_t length = 0;
|
||||
u_strFromUTF32(input, lengthof(input), &length, (UChar32 *)buffer, -1, &err);
|
||||
if (U_FAILURE(err)) return buffer;
|
||||
|
||||
UBiDi *para = ubidi_openSized(length, 0, &err);
|
||||
UBiDi *para = ubidi_openSized((int32_t)length, 0, &err);
|
||||
if (para == NULL) return buffer;
|
||||
|
||||
ubidi_setPara(para, input, length, _current_text_dir == TD_RTL ? UBIDI_DEFAULT_RTL : UBIDI_DEFAULT_LTR, NULL, &err);
|
||||
length = ubidi_writeReordered(para, intermediate, lengthof(intermediate), UBIDI_REMOVE_BIDI_CONTROLS, &err);
|
||||
length = u_shapeArabic(intermediate, length, input, lengthof(input), U_SHAPE_TEXT_DIRECTION_VISUAL_LTR | U_SHAPE_LETTERS_SHAPE, &err);
|
||||
ubidi_setPara(para, input_output, (int32_t)length, _current_text_dir == TD_RTL ? UBIDI_DEFAULT_RTL : UBIDI_DEFAULT_LTR, NULL, &err);
|
||||
ubidi_writeReordered(para, intermediate, (int32_t)length, UBIDI_REMOVE_BIDI_CONTROLS, &err);
|
||||
length = u_shapeArabic(intermediate, (int32_t)length, input_output, lengthof(input_output), U_SHAPE_TEXT_DIRECTION_VISUAL_LTR | U_SHAPE_LETTERS_SHAPE, &err);
|
||||
ubidi_close(para);
|
||||
|
||||
if (U_FAILURE(err)) return buffer;
|
||||
|
||||
/* Transform back to UTF-32. */
|
||||
u_strToUTF32((UChar32 *)output, lengthof(output), NULL, input, length, &err);
|
||||
if (U_FAILURE(err)) return buffer;
|
||||
|
||||
/* u_strToUTF32 doesn't add a NUL charcter if the buffer is too small, be safe. */
|
||||
output[lengthof(output) - 1] = '\0';
|
||||
return output;
|
||||
input_output[length] = '\0';
|
||||
return input_output;
|
||||
}
|
||||
#endif /* WITH_ICU */
|
||||
|
||||
|
||||
/**
|
||||
* Truncate a given string to a maximum width if necessary.
|
||||
* Truncate a given string to a maximum width if neccessary.
|
||||
* If the string is truncated, add three dots ('...') to show this.
|
||||
* @param *str string that is checked and possibly truncated
|
||||
* @param maxw maximum width in pixels of the string
|
||||
@@ -423,7 +420,7 @@ static int TruncateString(char *str, int maxw, bool ignore_setxy, FontSize start
|
||||
return w;
|
||||
}
|
||||
|
||||
static int ReallyDoDrawString(const WChar *string, int x, int y, DrawStringParams ¶ms, bool parse_string_also_when_clipped = false);
|
||||
static int ReallyDoDrawString(const UChar *string, int x, int y, DrawStringParams ¶ms, bool parse_string_also_when_clipped = false);
|
||||
|
||||
/**
|
||||
* Get the real width of the string.
|
||||
@@ -431,7 +428,7 @@ static int ReallyDoDrawString(const WChar *string, int x, int y, DrawStringParam
|
||||
* @param start_fontsize Fontsize to start the text with
|
||||
* @return the width.
|
||||
*/
|
||||
static int GetStringWidth(const WChar *str, FontSize start_fontsize)
|
||||
static int GetStringWidth(const UChar *str, FontSize start_fontsize)
|
||||
{
|
||||
FontSize size = start_fontsize;
|
||||
int max_width;
|
||||
@@ -499,11 +496,11 @@ static int DrawString(int left, int right, int top, char *str, const char *last,
|
||||
* the string and draw the parts separated by SETX(Y).
|
||||
* So here we split
|
||||
*/
|
||||
static SmallVector<WChar *, 4> setx_offsets;
|
||||
static SmallVector<UChar *, 4> setx_offsets;
|
||||
setx_offsets.Clear();
|
||||
|
||||
WChar draw_buffer[DRAW_STRING_BUFFER];
|
||||
WChar *p = draw_buffer;
|
||||
UChar draw_buffer[DRAW_STRING_BUFFER];
|
||||
UChar *p = draw_buffer;
|
||||
|
||||
*setx_offsets.Append() = p;
|
||||
|
||||
@@ -562,8 +559,8 @@ static int DrawString(int left, int right, int top, char *str, const char *last,
|
||||
/* In case we have a RTL language we swap the alignment. */
|
||||
if (!(align & SA_FORCE) && _current_text_dir == TD_RTL && !(align & SA_STRIP) && (align & SA_HOR_MASK) != SA_HOR_CENTER) align ^= SA_RIGHT;
|
||||
|
||||
for (WChar **iter = setx_offsets.Begin(); iter != setx_offsets.End(); iter++) {
|
||||
WChar *to_draw = *iter;
|
||||
for (UChar **iter = setx_offsets.Begin(); iter != setx_offsets.End(); iter++) {
|
||||
UChar *to_draw = *iter;
|
||||
int offset = 0;
|
||||
|
||||
/* Skip the SETX(Y) and set the appropriate offsets. */
|
||||
@@ -754,7 +751,7 @@ uint32 FormatStringLinebreaks(char *str, const char *last, int maxw, FontSize si
|
||||
end_of_inner_loop:
|
||||
/* String didn't fit on line (or a '\n' was encountered), so 'dummy' terminate
|
||||
* and increase linecount. We use Utf8PrevChar() as also non 1 char long
|
||||
* whitespace separators are supported */
|
||||
* whitespace seperators are supported */
|
||||
num++;
|
||||
char *s = Utf8PrevChar(str);
|
||||
*s++ = '\0';
|
||||
@@ -1077,25 +1074,25 @@ void DrawCharCentered(WChar c, int x, int y, TextColour colour)
|
||||
/**
|
||||
* Draw a string at the given coordinates with the given colour.
|
||||
* While drawing the string, parse it in case some formatting is specified,
|
||||
* like new colour, new size or even positioning.
|
||||
* like new colour, new size or even positionning.
|
||||
* @param string The string to draw. This is already bidi reordered.
|
||||
* @param x Offset from left side of the screen
|
||||
* @param y Offset from top side of the screen
|
||||
* @param params Text drawing parameters
|
||||
* @param parse_string_also_when_clipped
|
||||
* By default, always test the available space where to draw the string.
|
||||
* When in multiline drawing, it would already be done,
|
||||
* When in multipline drawing, it would already be done,
|
||||
* so no need to re-perform the same kind (more or less) of verifications.
|
||||
* It's not only an optimisation, it's also a way to ensures the string will be parsed
|
||||
* (as there are certain side effects on global variables, which are important for the next line)
|
||||
* @return the x-coordinates where the drawing has finished.
|
||||
* If nothing is drawn, the originally passed x-coordinate is returned
|
||||
*/
|
||||
static int ReallyDoDrawString(const WChar *string, int x, int y, DrawStringParams ¶ms, bool parse_string_also_when_clipped)
|
||||
static int ReallyDoDrawString(const UChar *string, int x, int y, DrawStringParams ¶ms, bool parse_string_also_when_clipped)
|
||||
{
|
||||
DrawPixelInfo *dpi = _cur_dpi;
|
||||
bool draw_shadow = GetDrawGlyphShadow();
|
||||
WChar c;
|
||||
UChar c;
|
||||
int xo = x;
|
||||
|
||||
if (!parse_string_also_when_clipped) {
|
||||
@@ -1458,7 +1455,7 @@ void DoPaletteAnimations()
|
||||
}
|
||||
|
||||
Colour *palette_pos = &_cur_palette.palette[PALETTE_ANIM_START]; // Points to where animations are taking place on the palette
|
||||
/* Makes a copy of the current animation palette in old_val,
|
||||
/* Makes a copy of the current anmation palette in old_val,
|
||||
* so the work on the current palette could be compared, see if there has been any changes */
|
||||
memcpy(old_val, palette_pos, sizeof(old_val));
|
||||
|
||||
@@ -1840,7 +1837,7 @@ void DrawDirtyBlocks()
|
||||
* @param left The left edge of the rectangle
|
||||
* @param top The top edge of the rectangle
|
||||
* @param right The right edge of the rectangle
|
||||
* @param bottom The bottom edge of the rectangle
|
||||
* @param bottom The bottm edge of the rectangle
|
||||
* @see DrawDirtyBlocks
|
||||
*
|
||||
* @todo The name of the function should be called like @c AddDirtyBlock as
|
||||
|
||||
+2
-2
@@ -26,10 +26,10 @@
|
||||
* This whole mechanism is controlled by an rectangle defined in #_invalid_rect. This
|
||||
* rectangle defines the area on the screen which must be repaint. If a new object
|
||||
* needs to be repainted this rectangle is extended to 'catch' the object on the
|
||||
* screen. At some point (which is normally uninteresting for patch writers) this
|
||||
* screen. At some point (which is normaly uninteressted for patch writers) this
|
||||
* rectangle is send to the video drivers method
|
||||
* VideoDriver::MakeDirty and it is truncated back to an empty rectangle. At some
|
||||
* later point (which is uninteresting, too) the video driver
|
||||
* later point (which is uninteressted, too) the video driver
|
||||
* repaints all these saved rectangle instead of the whole screen and drop the
|
||||
* rectangle informations. Then a new round begins by marking objects "dirty".
|
||||
*
|
||||
|
||||
+1
-1
@@ -352,7 +352,7 @@ template <class Tbase_set>
|
||||
|
||||
const Tbase_set *best = NULL;
|
||||
for (const Tbase_set *c = BaseMedia<Tbase_set>::available_sets; c != NULL; c = c->next) {
|
||||
/* Skip unusable sets */
|
||||
/* Skip unuseable sets */
|
||||
if (c->GetNumMissing() != 0) continue;
|
||||
|
||||
if (best == NULL ||
|
||||
|
||||
+2
-2
@@ -285,7 +285,7 @@ protected:
|
||||
ValuesInterval interval; ///< Interval that contains all of the graph data.
|
||||
int x_axis_offset; ///< Distance from the top of the graph to the x axis.
|
||||
|
||||
/* the colours and cost array of GraphDrawer must accommodate
|
||||
/* the colours and cost array of GraphDrawer must accomodate
|
||||
* both values for cargo and companies. So if any are higher, quit */
|
||||
assert_compile(GRAPH_MAX_DATASETS >= (int)NUM_CARGO && GRAPH_MAX_DATASETS >= (int)MAX_COMPANIES);
|
||||
assert(this->num_vert_lines > 0);
|
||||
@@ -423,7 +423,7 @@ protected:
|
||||
if (datapoint != INVALID_DATAPOINT) {
|
||||
/*
|
||||
* Check whether we need to reduce the 'accuracy' of the
|
||||
* datapoint value and the highest value to split overflows.
|
||||
* datapoint value and the highest value to splut overflows.
|
||||
* And when 'drawing' 'one million' or 'one million and one'
|
||||
* there is no significant difference, so the least
|
||||
* significant bits can just be removed.
|
||||
|
||||
+3
-3
@@ -340,12 +340,12 @@ CommandCost CmdDeleteGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
||||
return CommandCost();
|
||||
}
|
||||
|
||||
static bool IsUniqueGroupNameForVehicleType(const char *name, VehicleType type)
|
||||
static bool IsUniqueGroupName(const char *name)
|
||||
{
|
||||
const Group *g;
|
||||
|
||||
FOR_ALL_GROUPS(g) {
|
||||
if (g->name != NULL && g->vehicle_type == type && strcmp(g->name, name) == 0) return false;
|
||||
if (g->name != NULL && strcmp(g->name, name) == 0) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -370,7 +370,7 @@ CommandCost CmdRenameGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
||||
|
||||
if (!reset) {
|
||||
if (Utf8StringLength(text) >= MAX_LENGTH_GROUP_NAME_CHARS) return CMD_ERROR;
|
||||
if (!IsUniqueGroupNameForVehicleType(text, g->vehicle_type)) return_cmd_error(STR_ERROR_NAME_MUST_BE_UNIQUE);
|
||||
if (!IsUniqueGroupName(text)) return_cmd_error(STR_ERROR_NAME_MUST_BE_UNIQUE);
|
||||
}
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
|
||||
+2
-2
@@ -344,7 +344,7 @@ static void GrayscaleToMapHeights(uint img_width, uint img_height, byte *map)
|
||||
(col < col_pad) || (col >= (width - col_pad - (_settings_game.construction.freeform_edges ? 0 : 1)))) {
|
||||
SetTileHeight(tile, 0);
|
||||
} else {
|
||||
/* Use nearest neighbour resizing to scale map data.
|
||||
/* Use nearest neighbor resizing to scale map data.
|
||||
* We rotate the map 45 degrees (counter)clockwise */
|
||||
img_row = (((row - row_pad) * num_div) / img_scale);
|
||||
switch (_settings_game.game_creation.heightmap_rotation) {
|
||||
@@ -464,7 +464,7 @@ bool GetHeightmapDimensions(char *filename, uint *x, uint *y)
|
||||
* Load a heightmap from file and change the map in his current dimensions
|
||||
* to a landscape representing the heightmap.
|
||||
* It converts pixels to height. The brighter, the higher.
|
||||
* @param filename of the heightmap file to be imported
|
||||
* @param filename of the heighmap file to be imported
|
||||
*/
|
||||
void LoadHeightmap(char *filename)
|
||||
{
|
||||
|
||||
@@ -148,13 +148,10 @@ struct EndGameWindow : EndGameHighScoreBaseWindow {
|
||||
};
|
||||
|
||||
struct HighScoreWindow : EndGameHighScoreBaseWindow {
|
||||
bool game_paused_by_player; ///< True if the game was paused by the player when the highscore window was opened.
|
||||
|
||||
HighScoreWindow(const WindowDesc *desc, int difficulty, int8 ranking) : EndGameHighScoreBaseWindow(desc)
|
||||
{
|
||||
/* pause game to show the chart */
|
||||
this->game_paused_by_player = _pause_mode == PM_PAUSED_NORMAL;
|
||||
if (!_networking && !this->game_paused_by_player) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
|
||||
if (!_networking) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
|
||||
|
||||
/* Close all always on-top windows to get a clean screen */
|
||||
if (_game_mode != GM_MENU) HideVitalWindows();
|
||||
@@ -169,7 +166,7 @@ struct HighScoreWindow : EndGameHighScoreBaseWindow {
|
||||
{
|
||||
if (_game_mode != GM_MENU) ShowVitalWindows();
|
||||
|
||||
if (!_networking && !this->game_paused_by_player) DoCommandP(0, PM_PAUSED_NORMAL, 0, CMD_PAUSE); // unpause
|
||||
if (!_networking) DoCommandP(0, PM_PAUSED_NORMAL, 0, CMD_PAUSE); // unpause
|
||||
}
|
||||
|
||||
virtual void OnPaint()
|
||||
@@ -200,7 +197,7 @@ struct HighScoreWindow : EndGameHighScoreBaseWindow {
|
||||
};
|
||||
|
||||
static const NWidgetPart _nested_highscore_widgets[] = {
|
||||
NWidget(WWT_PANEL, COLOUR_BROWN, WID_H_BACKGROUND), SetMinimalSize(641, 481), SetResize(1, 1), EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_END, WID_H_BACKGROUND), SetMinimalSize(641, 481), SetResize(1, 1), EndContainer(),
|
||||
};
|
||||
|
||||
static const WindowDesc _highscore_desc(
|
||||
|
||||
+1
-1
@@ -131,7 +131,7 @@ static void ParseHotkeys(Hotkey<T> *hotkey, const char *value)
|
||||
|
||||
/**
|
||||
* Convert a hotkey to it's string representation so it can be written to the
|
||||
* config file. Separate parts of the keycode (like "CTRL" and "F1" are split
|
||||
* config file. Seperate parts of the keycode (like "CTRL" and "F1" are split
|
||||
* by a '+'.
|
||||
* @param keycode The keycode to convert to a string.
|
||||
* @return A string representation of this keycode.
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ struct Industry : IndustryPool::PoolItem<&_industry_pool> {
|
||||
/**
|
||||
* Check if a given tile belongs to this industry.
|
||||
* @param tile The tile to check.
|
||||
* @return True if the tile is part of this industry.
|
||||
* @return True if the tils is part of this industry.
|
||||
*/
|
||||
inline bool TileBelongsToIndustry(TileIndex tile) const
|
||||
{
|
||||
|
||||
@@ -329,7 +329,7 @@ static void DrawTile_Industry(TileInfo *ti)
|
||||
|
||||
SpriteID image = dits->ground.sprite;
|
||||
|
||||
/* DrawFoundation() modifies ti->z and ti->tileh */
|
||||
/* DrawFoundation() modifes ti->z and ti->tileh */
|
||||
if (ti->tileh != SLOPE_FLAT) DrawFoundation(ti, FOUNDATION_LEVELED);
|
||||
|
||||
/* If the ground sprite is the default flat water sprite, draw also canal/river borders.
|
||||
@@ -2655,7 +2655,7 @@ void IndustryDailyLoop()
|
||||
* is sufficient for an industry. */
|
||||
uint16 change_loop = _economy.industry_daily_change_counter >> 16;
|
||||
|
||||
/* Reset the active part of the counter, just keeping the "fractional part" */
|
||||
/* Reset the active part of the counter, just keeping the "factional part" */
|
||||
_economy.industry_daily_change_counter &= 0xFFFF;
|
||||
|
||||
if (change_loop == 0) {
|
||||
|
||||
@@ -247,7 +247,7 @@ class BuildIndustryWindow : public Window {
|
||||
}
|
||||
}
|
||||
|
||||
/* first industry type is selected if the current selection is invalid.
|
||||
/* first indutry type is selected if the current selection is invalid.
|
||||
* I'll be damned if there are none available ;) */
|
||||
if (this->selected_index == -1) {
|
||||
this->selected_index = 0;
|
||||
|
||||
+2
-2
@@ -157,7 +157,7 @@ static inline void SetIndustryGfx(TileIndex t, IndustryGfx gfx)
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns this industry tile's construction counter value
|
||||
* Returns this indutry tile's construction counter value
|
||||
* @param tile the tile to query
|
||||
* @pre IsTileType(tile, MP_INDUSTRY)
|
||||
* @return the construction counter
|
||||
@@ -169,7 +169,7 @@ static inline byte GetIndustryConstructionCounter(TileIndex tile)
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets this industry tile's construction counter value
|
||||
* Sets this indutry tile's construction counter value
|
||||
* @param tile the tile to query
|
||||
* @param value the new value for the construction counter
|
||||
* @pre IsTileType(tile, MP_INDUSTRY)
|
||||
|
||||
+1
-1
@@ -143,7 +143,7 @@ struct IndustrySpec {
|
||||
};
|
||||
|
||||
/**
|
||||
* Defines the data structure of each individual tile of an industry.
|
||||
* Defines the data structure of each indivudual tile of an industry.
|
||||
*/
|
||||
struct IndustryTileSpec {
|
||||
CargoID accepts_cargo[3]; ///< Cargo accepted by this tile
|
||||
|
||||
+60
-173
@@ -218,7 +218,6 @@ STR_UNITS_HEIGHT_IMPERIAL :{COMMA} vt
|
||||
STR_UNITS_HEIGHT_SI :{COMMA} m
|
||||
|
||||
# Common window strings
|
||||
STR_LIST_FILTER_TITLE :{BLACK}Filter string:
|
||||
STR_LIST_FILTER_OSKTITLE :{BLACK}Sleutel filter string in
|
||||
STR_LIST_FILTER_TOOLTIP :{BLACK}Tik 'n sleutelwoord in om die lys te filter
|
||||
|
||||
@@ -399,12 +398,10 @@ STR_GRAPH_MENU_CARGO_PAYMENT_RATES :Vrag vergoeding
|
||||
############ range for company league menu starts
|
||||
STR_GRAPH_MENU_COMPANY_LEAGUE_TABLE :Maatskappy verbond tabel
|
||||
STR_GRAPH_MENU_DETAILED_PERFORMANCE_RATING :Omstandig prestasie gradering
|
||||
STR_GRAPH_MENU_HIGHSCORE :Hoogste tellings tafel
|
||||
############ range ends here
|
||||
|
||||
############ range for industry menu starts
|
||||
STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY :Nywerheid Gids
|
||||
STR_INDUSTRY_MENU_INDUSTRY_CHAIN :Nywerheidsskakels
|
||||
STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Konsolideer nuwe nywerheid
|
||||
############ range ends here
|
||||
|
||||
@@ -614,7 +611,7 @@ STR_MUSIC_TRACK :{TINY_FONT}{BLA
|
||||
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Titel
|
||||
STR_MUSIC_SHUFFLE :{TINY_FONT}{BLACK}Skommel
|
||||
STR_MUSIC_PROGRAM :{TINY_FONT}{BLACK}Musiek lys
|
||||
STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Gaan terug na vorige liedjie in keuse-lys
|
||||
STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Gaan terug na vorig liedjie in seleksie
|
||||
STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Gaan na volgende liedjie in seleksie
|
||||
STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}Hou op musiek speel
|
||||
STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}Begin musiek speel
|
||||
@@ -730,6 +727,26 @@ STR_MESSAGE_HISTORY_TOOLTIP :{BLACK}'n Lys v
|
||||
STR_MESSAGE_NEWS_FORMAT :{STRING} - {STRING}
|
||||
|
||||
STR_NEWS_MESSAGE_CAPTION :{WHITE}Boodskap
|
||||
STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Af
|
||||
STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Opsomming
|
||||
STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Vol
|
||||
|
||||
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Aankoms van eerste voertuig by speler se stasie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Aankoms van eerste voertuig by mededinger se stasie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Ongelukke / rampe: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Maatskappy informasie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Opening van industrieë: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Toemaak van industrieë: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Ekonomie veranderings: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :Verandering in produksie van industrieë voorsien deur die maatskapy: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Produksie veranderings van nywerhede wat deur mededingers bedien word: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Ander nywerheid produksie veranderings: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_ADVICE :Advies / informasie van maatskappy se voertuie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Nuwe voertuie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :Veranderings van vrag aanvaarding: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_SUBSIDIES :Subsidies: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Algemene informasie: {STRING}
|
||||
|
||||
STR_NEWS_CUSTOM_ITEM :{BIG_FONT}{BLACK}{STRING}
|
||||
|
||||
STR_NEWS_FIRST_TRAIN_ARRIVAL :{BIG_FONT}{BLACK}Burgers vier fees . . .{}Eerste trein arriveer by {STATION}!
|
||||
@@ -1043,9 +1060,6 @@ STR_WARNING_NO_SUITABLE_AI :{WHITE}Geen ges
|
||||
|
||||
# Advanced settings window
|
||||
STR_CONFIG_SETTING_CAPTION :{WHITE}Gevorderde stellings
|
||||
STR_CONFIG_SETTING_FILTER_TITLE :{BLACK}Filter string:
|
||||
STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Brei alles uit
|
||||
STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Krimp alles in
|
||||
STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(geen verduideliking beskikbaar)
|
||||
STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Standaard waarde: {ORANGE}{STRING}
|
||||
STR_CONFIG_SETTING_TYPE :{LTBLUE}Stelling tipe: {ORANGE}{STRING}
|
||||
@@ -1056,24 +1070,10 @@ STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Maatskappy inst
|
||||
STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Maatskappy instelling (word gestoor in spaarspeletjie; raak net die huidige maatskappy)
|
||||
|
||||
STR_CONFIG_SETTING_RESTRICT_LABEL :{BLACK}Vertoon:
|
||||
STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Beperk die lys hier onder tot slegs veranderde verstellings
|
||||
STR_CONFIG_SETTING_RESTRICT_BASIC :Basiese verstellings
|
||||
STR_CONFIG_SETTING_RESTRICT_ADVANCED :Gevorderde verstellings
|
||||
STR_CONFIG_SETTING_RESTRICT_ALL :Ekspert verstellings / alle verstellings
|
||||
STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :Verstellings met 'n waarde anders as die verstek waarde
|
||||
STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Verstellings met 'n waarde anders as die nuwe spel verstellings
|
||||
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Beperk die lys hieronder tot net sekere instelling tiepes
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Alle instellings
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Kliënt instelling (word nie in spaarspeletjies gestoor nie; raak alle speletjies)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Spel instelling (word gestoor in spaarspeletjies; raak net nuwe speletjies)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Spel instelling (word gestoor in spaarspeletjie; raak net die huidige speletjie)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Maatskappy instelling (word gestoor in spaarspeletjies; raak slegs nuwe speletjies)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Maatskappy instelling (word gestoor in spaarspeletjie; raak net die huidige maatskappy)
|
||||
|
||||
STR_CONFIG_SETTING_OFF :Af
|
||||
STR_CONFIG_SETTING_ON :Aan
|
||||
STR_CONFIG_SETTING_DISABLED :Gedeaktiveer
|
||||
STR_CONFIG_SETTING_DISABLED :gedeaktiveer
|
||||
|
||||
STR_CONFIG_SETTING_COMPANIES_OFF :Af
|
||||
STR_CONFIG_SETTING_COMPANIES_OWN :Eie maatskappy
|
||||
@@ -1087,24 +1087,6 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Links
|
||||
STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Senter
|
||||
STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Regs
|
||||
|
||||
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Maksimum aanvanklike lening: {STRING}
|
||||
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Maksimum bedrag wat 'n maatskappy kan leen (sonder die inagneming van inflasie)
|
||||
STR_CONFIG_SETTING_INTEREST_RATE :Rentekoers: {STRING}
|
||||
STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Lening rentekoers: beheer ook inflasie indien aangeskakel
|
||||
STR_CONFIG_SETTING_RUNNING_COSTS :Bedryfskostes: {STRING}
|
||||
STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Verstel die vlak van instandhouding en bedryfskoste van voertuie en infrastruktuur
|
||||
STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Konstruksie spoed: {STRING}
|
||||
STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Beperk die hoeveelheid konstruksie aksies vir die AIs
|
||||
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Voertuig onklaarrakings: {STRING}
|
||||
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Beheer hoe gereeld voertuie breek as hulle in 'n toestand van swak instandhouding verkeer
|
||||
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Subsidie vermenigvuldiger: {STRING}
|
||||
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Verstel hoeveel is betaalbaar vir gesubsidieerde aansluitings
|
||||
STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Konstruksie kostes: {STRING}
|
||||
STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Verstel die vlak van konstruksie en aankoop-kostes
|
||||
STR_CONFIG_SETTING_RECESSIONS :Resessies: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_REVERSING :Verhoed dat treine kan omdraai in stasies: {STRING}
|
||||
STR_CONFIG_SETTING_DISASTERS :Rampe: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_APPROVAL :Stadsraad se gesindheid teenoor omgewings-konstruksie: {STRING}
|
||||
|
||||
STR_CONFIG_SETTING_BUILDONSLOPES :Laat bou op skuinstes en kuslyn toe: {STRING}
|
||||
STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :As geaktiveer, kan spore en stasies op meeste hellings gebou word. Indien gedeaktiveer, kan hulle net gebou work op hellings wat die rigting van die spoor volg, en dus geen fondasies verg nie
|
||||
@@ -1146,9 +1128,9 @@ STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximum tonnel
|
||||
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Maximum lengte vir die bou van tonnels
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Manual primêre nywerheid konstruksie metode: {STRING}
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Metode van befondsing van 'n primêre bedryf."Niks" beteken dit nie moontlik is om enige bedryf te finansier, "prospekteer" beteken befondsing is moontlik, maar konstruksie vind plaas in 'n toevallige plek op die kaart en dit kan ook misluk, "ander nywerhede" beteken rou bedrywe kan opgerig word deur ander maatskappye soos verwerking nywerhede.
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Geen
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :As ander nywerhede
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Vooruitsigting
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :geen
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :as ander nywerhede
|
||||
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :vooruitsigting
|
||||
STR_CONFIG_SETTING_INDUSTRY_PLATFORM :Plat area rondom nywerhede: {STRING}
|
||||
STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Hoeveelheid van plat ruimte om 'n bedryf. Dit verseker dat leë ruimte beskikbaar sal bly, om 'n bedryf, vir die bou van spore, ensovoorts
|
||||
STR_CONFIG_SETTING_MULTIPINDTOWN :Laat meer as een soortgelyke nywerhede per dorp toe: {STRING}
|
||||
@@ -1170,10 +1152,7 @@ STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :ver einde
|
||||
STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Pad voertuig toustaan (met kwantum effekte): {STRING}
|
||||
STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Maak 'n pad voertuig wag by besette padstoppe totdat hulle leeg is
|
||||
STR_CONFIG_SETTING_AUTOSCROLL :Rol skerm as muis by die kant is: {STRING}
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Gedeaktiveer
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Hoof skerm, slegs volskerm
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Hoof skerm
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Elke skerm
|
||||
STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :gedeaktiveer
|
||||
STR_CONFIG_SETTING_BRIBE :Laat omkooping van die plaaslike raad toe: {STRING}
|
||||
STR_CONFIG_SETTING_BRIBE_HELPTEXT :Laat maatskappye die plaaslike dorpsraad probeer omkoop. Indien 'n inspekteur die omkoopgeld opgemerk, sal die maatskappy nie in staat wees om in die dorp te werk vir ses maande.
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Laat die koop van eksklusief vervoer regte toe: {STRING}
|
||||
@@ -1191,9 +1170,9 @@ STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Stel die relati
|
||||
STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA}
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES :Aantal vliegtuig botsings: {STRING}
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Stel die kans van 'n vliegtuig ongeluk om te gebeur
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Geen
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Verminderd
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normaal
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :geen
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :verminderd
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :normaal
|
||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Laat deur-ry padhalte op dorp besite paaie toe: {STRING}
|
||||
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Laat Bouery van deur-ry pad stasies op dorp beheerde paaie
|
||||
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Laat deur-ry padhalte toe op paaie wat deur ander deelnemers besit word: {STRING}
|
||||
@@ -1213,9 +1192,9 @@ STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Waarsku indien
|
||||
STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :veroorsaak boodskappe oor voertuie wat nie in staat is om 'n pad na hul bestel bestemming te vind nie
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW :Hersien voertuig se opdrae: {STRING}
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :As dit geaktiveer is, word die voertuie se bevel van tyd tot tyd nagegaan, en 'n paar ooglopende kwessies sal berig word, met 'n nuus boodskap, as dit opgespoor word
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :Nee
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :Ja, maar sluit stilstaande voertuie uit
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_ON :Van alle voertuie
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :nee
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :ja, maar sluit stil staande voertuie uit
|
||||
STR_CONFIG_SETTING_ORDER_REVIEW_ON :van alle voertuie
|
||||
STR_CONFIG_SETTING_WARN_INCOME_LESS :Waarsku as 'n voertuig se inkomste negatief is: {STRING}
|
||||
STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :As dit geaktiveer is, word daar 'n nuus boodskap gestuur wanneer, in 'n kalenderjaar, 'n voertuig nie wins gemaak het nie.
|
||||
STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Voertuie verval nooit nie: {STRING}
|
||||
@@ -1284,10 +1263,6 @@ STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Rol kaart
|
||||
STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Af
|
||||
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :Kaart rolwiel spoed: {STRING}
|
||||
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :Kontroleer die sensitiwiteit van die muis-wiel "scrolling"
|
||||
STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :Gedeaktiveer
|
||||
STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :Dubbel-kliek
|
||||
STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :Enkel kliek (indien geselekteerd)
|
||||
STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK :Enkel kliek (dadelik)
|
||||
|
||||
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU :Regs-kliek emulasie: {STRING}
|
||||
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_HELPTEXT :selekteer die metode om the regter muis-knoppie kliek te emuleer
|
||||
@@ -1310,10 +1285,10 @@ STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Windows palet
|
||||
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Outomaties pouse wanneer om te begin 'n nuwe speletjie: {STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Wanneer gepouseer laat toe: {STRING}
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Selekteer watter aksies mag gedoen word terwyl die speletjie onderbreek word
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Geen aksies
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Alle nie-konstruksie aksies
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Alles behalwe landskap-veranderende aksies
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Alle aksies
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :geen aksies
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :alle nie-konstruksie aksies
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :alles behalwe landskap veranderings aksies
|
||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :alle aksies
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Gebruik die voorloopende voertuiglys: {STRING}
|
||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Aktiveer die gebruik van die gevorderde voertuig lys vir groepering van voertuie
|
||||
STR_CONFIG_SETTING_LOADING_INDICATORS :Gebruik laai aanwysers: {STRING}
|
||||
@@ -1330,24 +1305,6 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Meeste gebruik
|
||||
STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Wys gereserveerde spore: {STRING}
|
||||
STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Hou bou gereedskap aktief na gebruik: {STRING}
|
||||
STR_CONFIG_SETTING_EXPENSES_LAYOUT :Groep uitgawes in maatskappy finansies venster: {STRING}
|
||||
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Verstel die uitleg van die maatskappy uitgawes venster
|
||||
|
||||
STR_CONFIG_SETTING_SOUND_TICKER :Nuustikker: {STRING}
|
||||
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Speel klank vir opgesomde nuus boodskappe
|
||||
STR_CONFIG_SETTING_SOUND_NEWS :Koerant: {STRING}
|
||||
STR_CONFIG_SETTING_SOUND_NEWS_HELPTEXT :Speel klank wanneer koerante vertoon word
|
||||
STR_CONFIG_SETTING_SOUND_NEW_YEAR :Einde van jaar: {STRING}
|
||||
STR_CONFIG_SETTING_SOUND_NEW_YEAR_HELPTEXT :Speel klankeffek aan die einde van 'n jaar, wanneer die maatskappy se jaarresultate vertoon word
|
||||
STR_CONFIG_SETTING_SOUND_CONFIRM :Konstruksie: {STRING}
|
||||
STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Speel 'n klank wanneer 'n konstruksie of ander aksie suksesvol voltooi is
|
||||
STR_CONFIG_SETTING_SOUND_CLICK :Kliek van knoppie: {STRING}
|
||||
STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT :Biep wanneer 'n knoppie gekliek word
|
||||
STR_CONFIG_SETTING_SOUND_DISASTER :Rampe/ongelukke: {STRING}
|
||||
STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT :Speel klanke vir ongelukke en rampe
|
||||
STR_CONFIG_SETTING_SOUND_VEHICLE :Voertuie: {STRING}
|
||||
STR_CONFIG_SETTING_SOUND_VEHICLE_HELPTEXT :Speel klanke vir voertuie
|
||||
STR_CONFIG_SETTING_SOUND_AMBIENT :Omgewing: {STRING}
|
||||
STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Speel ambiente klank effekte van die landskap, industriëe en dorpe
|
||||
|
||||
STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Deaktiveer infrastruktuur bouery as geen geskikte voertuie beskikbaar is nie: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_TRAINS :Max treine per speler: {STRING}
|
||||
@@ -1360,28 +1317,19 @@ STR_CONFIG_SETTING_MAX_SHIPS :Max skepe per s
|
||||
STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Maksimum hoeveelheid bote was 'n besigheid kan hê
|
||||
|
||||
STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Sper treine vir rekenaar: {STRING}
|
||||
STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Aktiveer om te verhoed dat die rekenaar speler kan treine bou
|
||||
STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Sper pad voertuie vir rekenaar: {STRING}
|
||||
STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Aktiveer om te verhoed dat die rekenaar speler kan pad voertuie bou
|
||||
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Sper vliegtuie vir rekenaar: {STRING}
|
||||
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Aktiveer om te verhoed dat die rekenaar speler kan vliegtuie bou
|
||||
STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Sper skepe vir rekenaar: {STRING}
|
||||
STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Aktiveer om te verhoed dat die rekenaar speler kan skepe bou
|
||||
|
||||
STR_CONFIG_SETTING_AI_PROFILE :Verstek verstellings profiel: {STRING}
|
||||
STR_CONFIG_SETTING_AI_PROFILE_EASY :Maklik
|
||||
STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Middelmatig
|
||||
STR_CONFIG_SETTING_AI_PROFILE_HARD :Moeilik
|
||||
|
||||
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Laat AI in multispeler toe: {STRING}
|
||||
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Laat AI Rekenaaar spelers by 'n multi-speler spel toe
|
||||
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes voor die skripte gestaak word: {STRING}
|
||||
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Die maksimum hoeveelheid berekeningstappe wat 'n skrip kan vat in een beurt
|
||||
|
||||
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Diens pouse is in persente: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_TRAINS :Standaard diens interval vir treine: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} da{P g e}/%
|
||||
STR_CONFIG_SETTING_SERVINT_DISABLED :Gedeaktiveer
|
||||
STR_CONFIG_SETTING_SERVINT_DISABLED :gedeaktiveer
|
||||
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Standaard diens interval vir pad voertuie: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Standaard diens interval vir vliegtuie: {STRING}
|
||||
STR_CONFIG_SETTING_SERVINT_SHIPS :Standaard diens interval vir bote: {STRING}
|
||||
@@ -1389,43 +1337,7 @@ STR_CONFIG_SETTING_NOSERVICE :Sper diens wann
|
||||
STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Laat wa spoed beperkings toe: {STRING}
|
||||
STR_CONFIG_SETTING_DISABLE_ELRAILS :Deaktiveer elektriese spoore: {STRING}
|
||||
|
||||
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Aankoms van eerste voertuig by speler se stasie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :Vertoon 'n koerantberig waneer die eerste voertuig by 'n nuwe speler se stasie arriveer
|
||||
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Aankoms van eerste voertuig by mededinger se stasie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Vertoon 'n koerantberig waneer die eerste voertuig by 'n nuwe teenstander se stasie arriveer
|
||||
STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Ongelukke / rampe: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Vertoon 'n koerantberig wanneer daar ongelukke of natuurrampe voorkom
|
||||
STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Maatskappy informasie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Vertoon 'n koerantberig wanneer 'n nuwe maatskappy begin, of wanneer 'n maatskappy in gevaar is om bankkrot te speel
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Opening van industrieë: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Vertoon die koerant wanneer 'n nuwe nywerheid oopmaak
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Toemaak van industrieë: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT :Vertoon die koerant wanneer 'n nywerheid toemaak
|
||||
STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Ekonomie veranderings: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Vertoon die koerant vir enige globale veranderinge aan die ekonomie
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :Verandering in produksie van industrieë voorsien deur die maatskapy: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Vertoon die koerant indien enige produksie vlakke van nywerhede bedien deur die maatskappy verander
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Produksie veranderings van nywerhede wat deur mededingers bedien word: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Vertoon die koerant indien enige produksie vlakke van nywerhede bedien deur die kompetisie verander
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Ander nywerheid produksie veranderings: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Vertoon 'n koerant wanner die produksievlak van industriëe verander, wat nie tans bedien word deur die maatskappy of kompeteerders nie
|
||||
STR_CONFIG_SETTING_NEWS_ADVICE :Advies / informasie van maatskappy se voertuie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT :Vertoon boodskappe aangaande voertuie wat aandag nodig het
|
||||
STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Nuwe voertuie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT :Vertoon 'n koerant wanneer 'n nuwe tipe voertuig beskikbaar raak
|
||||
STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :Veranderings van vrag aanvaarding: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Vertoon boodskappe aangaande stasies wat hul aanvaarde vrag verander
|
||||
STR_CONFIG_SETTING_NEWS_SUBSIDIES :Subsidies: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Vertoon 'n koerant aangaande subsidie-verwante gebeurtenisse
|
||||
STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Algemene informasie: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Vertoon koerant aangaande algemene gebeurtenisse, soos die aankoop van eksklusiewe regte of fondsing van padrekonstruksies
|
||||
|
||||
STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Af
|
||||
STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Opsomming
|
||||
STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Vol
|
||||
|
||||
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Gekleurde nuus verskyn in: {STRING}
|
||||
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :In watter jaar begin koerante in kleur vertoon. Voor dit is hulle swart en wit.
|
||||
STR_CONFIG_SETTING_STARTING_YEAR :Jaar om te begin: {STRING}
|
||||
STR_CONFIG_SETTING_SMOOTH_ECONOMY :Aktiveer geleike ekonomie (meer, kleiner veranderings): {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_SHARES :Laat die koop van aandeele van ander maatskappye toe: {STRING}
|
||||
@@ -1440,18 +1352,17 @@ STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Blok seine
|
||||
STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :Pad seine
|
||||
STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :Een-rigting seine
|
||||
STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :Wissel deur tiepe seine: {STRING}
|
||||
STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :Selekteer watter sinjaaltipes om deur te roteer, wanneer Ctrl+kliek gebruik word om 'n sinjaal te bou met die sinjaal gereedskap
|
||||
STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Blok seine aleenlik
|
||||
STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Pad seinligte alleenlik
|
||||
STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Alle
|
||||
|
||||
STR_CONFIG_SETTING_TOWN_LAYOUT :Pad uitleg vir nuwe dorpe: {STRING}
|
||||
STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT :Pad netwerk uitleg van paaie vir dorpe
|
||||
STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :Oorspronkilik
|
||||
STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :Beter paaie
|
||||
STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :oorspronkilik
|
||||
STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :beter paaie
|
||||
STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :2x2 grid
|
||||
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :3x3 grid
|
||||
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Willekeurig
|
||||
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :ewekansige
|
||||
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Dorpe word toegelaat om paaie te bou: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Laat dorpe toe om paaie te bou vir groei. Deaktiveer om stad owerhede te verhoed om paaie hulself te bou
|
||||
STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Dorpe word toegelaat om vlak kruising te bou: {STRING}
|
||||
@@ -1460,15 +1371,15 @@ STR_CONFIG_SETTING_NOISE_LEVEL :Laat dorp-behee
|
||||
STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Met deaktivering van hierdie stelling, kan daar twee lughawens in elke dorp wees. Met hierdie stelling word die getal van lughawens in 'n stad beperk deur die geluid aanvaarding van die dorp, wat afhanklik is van die bevolking en die lughawe grootte en afstand tussen van mekaar
|
||||
STR_CONFIG_SETTING_TOWN_FOUNDING :Stigting van dorpe binne speletjie: {STRING}
|
||||
STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Aktiveering van die stelling laat spelers toe om dorpe te stig in die speletjie
|
||||
STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Verbode
|
||||
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Toegelaat
|
||||
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Toegelaat, eie dorp uitleg
|
||||
STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :verbode
|
||||
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :toegelaat
|
||||
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :toegelaat, eie dorp uitleg
|
||||
|
||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Binne speletjie plasing van bome: {STRING}
|
||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Beheer die ewekansige voorkoms van bome tydens die spel. Dit kan 'n invloed op nywerhede hê wat staatmaak op die groei van bome, byvoorbeeld hout meulens
|
||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :Geen {RED}(breek timmerhout meul)
|
||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :geen {RED}(breek timmerhout meul)
|
||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :Slegs in reënwoude
|
||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :Orals
|
||||
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :orals
|
||||
|
||||
STR_CONFIG_SETTING_TOOLBAR_POS :Posisie van hoof werktuigbaan: {STRING}
|
||||
STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Horisontale posisie van die hoof nutsbalk aan die bokant van die skerm
|
||||
@@ -1477,7 +1388,7 @@ STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Horisontale pos
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS :Window klamp radius: {STRING}
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Afstand tussen vensters voor dat die venster outomaties in lyn met die nabygeleë vensters geskuif word
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} pixel{P 0 "" s}
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :Gedeaktiveer
|
||||
STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :gedeaktiveer
|
||||
STR_CONFIG_SETTING_SOFT_LIMIT :Maksimum nommer nie-taaierige vensters: {STRING}
|
||||
STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Aantal non-sticky oop vensters voordat ou vensters outomaties toe gemaak word om die ruimte te maak vir nuwe vensters
|
||||
STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA}
|
||||
@@ -1502,7 +1413,7 @@ STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Baie vinnig
|
||||
STR_CONFIG_SETTING_LARGER_TOWNS :Verhouding van dorpe wat stede sal word: {STRING}
|
||||
STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Hoeveelheid van dorpe wat 'n stad sal word, dus 'n dorp wat groot begin en vinniger groei
|
||||
STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 in {COMMA}
|
||||
STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Geen
|
||||
STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :geen
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Aanvanklike stad grootte multiplier: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Normale stede groote relatief na normale dorpe aan die begin van speletjie
|
||||
STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Verwyder absurde pad-elemente gedurende die pad konstruksie: {STRING}
|
||||
@@ -1516,8 +1427,6 @@ STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomi
|
||||
STR_CONFIG_SETTING_AI :{ORANGE}Mededingers
|
||||
STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Skerm opsies
|
||||
STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaksie
|
||||
STR_CONFIG_SETTING_SOUND :{ORANGE}Klankeffekte
|
||||
STR_CONFIG_SETTING_NEWS :{ORANGE}Nuus en booskappe
|
||||
STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Seine
|
||||
STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Goedere hantering
|
||||
STR_CONFIG_SETTING_AI_NPC :{ORANGE}Rekenaar spelers
|
||||
@@ -1560,8 +1469,6 @@ STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... save
|
||||
STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... ignoreer Basis Grafiek stel '{STRING}': nie gevind nie
|
||||
STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... ignoreer Basis Klank stel '{STRING}': nie gevind nie
|
||||
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ignoreer Basis Musiek stel '{STRING}': nie gevind
|
||||
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Program is uit geheue uit
|
||||
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allokering van {BYTES} kasgeheue vir grafika het gefaal. Die kasgeheue is verminder na {BYTES}. Dit sal OpenTDD stadiger maak. Om geheue-aanvraag te verminder, kan u 32bpp grafika en/of zoom-vlakke afskakel.
|
||||
|
||||
# Intro window
|
||||
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
|
||||
@@ -1574,7 +1481,6 @@ STR_INTRO_SCENARIO_EDITOR :{BLACK}Scenario
|
||||
STR_INTRO_MULTIPLAYER :{BLACK}Multispeler
|
||||
|
||||
STR_INTRO_GAME_OPTIONS :{BLACK}Spel Opsies
|
||||
STR_INTRO_HIGHSCORE :{BLACK}Hoogste Tellings Tafel
|
||||
STR_INTRO_ADVANCED_SETTINGS :{BLACK}Gevorderde stellings
|
||||
STR_INTRO_NEWGRF_SETTINGS :{BLACK}NewGRF Stellings
|
||||
STR_INTRO_ONLINE_CONTENT :{BLACK}Kyk Na Aanlyn Inhoud
|
||||
@@ -1594,7 +1500,6 @@ STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}Kies 'su
|
||||
STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Kies 'speelgoedland' landskap styl
|
||||
|
||||
STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Vertoon speletjie opsies
|
||||
STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Vertoon hoogste tellings tafel
|
||||
STR_INTRO_TOOLTIP_ADVANCED_SETTINGS :{BLACK}Toon gevorderde stellings
|
||||
STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Wys NewGRF stellings
|
||||
STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Kyk vir nuwe of bygewerkde inhoud om af te laai
|
||||
@@ -2040,8 +1945,6 @@ STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Selektee
|
||||
STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Merk alle inhoud wat 'n opgradering is vir bestande inhoud om af te laai word
|
||||
STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Onselekteer alles
|
||||
STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Merk alle inhoud wat nie afgelaai moet word nie
|
||||
STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Soek deur eksterne webwerwe
|
||||
STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Jy gaan OpenTDD verlaat!
|
||||
STR_CONTENT_FILTER_TITLE :{BLACK}Merker/naam filter:
|
||||
STR_CONTENT_OPEN_URL :{BLACK}Besoek webblad
|
||||
STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Besoek die webwerf vir hierdie inhoud
|
||||
@@ -2064,7 +1967,7 @@ STR_CONTENT_DETAIL_FILESIZE :{SILVER}Aflaai
|
||||
STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{SILVER}Geselekteer weens: {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_DEPENDENCIES :{SILVER}Afhanklikes: {WHITE}{STRING}
|
||||
STR_CONTENT_DETAIL_TAGS :{SILVER}Merkers: {WHITE}{STRING}
|
||||
STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD word gebou sonder "zlib" ondersteuning...
|
||||
STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD is gebou sonder "zlib" hulp...
|
||||
STR_CONTENT_NO_ZLIB_SUB :{WHITE}... aflaai van inhoud is nie moentlik nie!
|
||||
|
||||
# Order of these is important!
|
||||
@@ -2177,18 +2080,18 @@ STR_STATION_CLASS_WAYP :Wegpunte
|
||||
# Signal window
|
||||
STR_BUILD_SIGNAL_CAPTION :{WHITE}Sein seleksie
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Blok aanwyser (seinpaal){}Die eenvoudigste tipe aanwyser, laat slegs een trein in 'n blok toe
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Ingang Sinjaal (semafoor){}Wys groen so lank die volgende gedeelte treinspoor 'n groen uitgang sinjaal het, anders wys dit rooi.
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Uitgang Sinjaal (semafoor){}Werk soos 'n blok sinjaal maar word benodig om die regte kleur te aktiveer op kombinasie en ingang sinjale.
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Kombinasie Sinjaal (semafoor){}Dien as 'n ingang sinjaal sowel as 'n uitgang sinjaal. Groot uitbreidings van pre-sinjale kan hiermee gebou word.
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Ingang-aanwyser (seinpaal){}Wys groen so lank die volgende gedeelte treinspoor 'n groen uitgang-aanwyser het, anders wys dit rooi
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Uitgang aanwyser (seinpaal){}Werk soos 'n blok aanwyser maar word benodig om die regte kleur te aktiveer op kombinasie & ingang aanwysers
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Kombinasie aanwyser(seinpaal){}Dien as 'n ingang aanwyser sowel as 'n uitgang aanwyser. Groot uitbreidings van pre-aanwysers kan hiermee gebou word
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Pad aanwyser (seinpaal){}Laat meer as een trein per blok toe solank die trein 'n bestemming veilig kan bereik. Gewone pad aanwysers word geïgnoreer as 'n trein in die teenoorgestelde rigting ry
|
||||
STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Een-rigting pad aanwyser (seinpaal){}Laat meer as een trein per blok toe solank die trein 'n bestemming veilig kan bereik. 'n Een-rigting pad aanwysers laat verkeer slegs in een rigting toe
|
||||
STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Blok aanwyser (robot){}Die eenvoudigste tipe aanwyser, laat slegs een trein per blok toe
|
||||
STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Ingang Sinjaal (elektries){}Vertoon groen solank die volgende gedeelte treinspoor 'n groen uitgang sinjaal het, anders wys dit rooi.
|
||||
STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Uitgang Sinjaal(robot){}Werk soos 'n blok sinjaal maar word benodig om die regte kleur te aktiveer op kombinasie en ingang sinjale.
|
||||
STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Kombinasie Sinjaal (elektries){}Dien as 'n ingang sinjaal sowel as 'n uitgang sinjaal. Groot uitbreidings van pre-sinjale kan hiermee gebou word.
|
||||
STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Ingang aanwyser (robot){}Wys groen solank die volgende gedeelte treinspoor 'n groen uitgang aanwyser het, anders wys dit rooi
|
||||
STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Uitgang aanwyser(robot){}Werk soos 'n blok aanwyser maar word benodig om die regte kleur te aktiveer op kombinasie & ingang aanwysers
|
||||
STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Kombinasie aanwyser(robot){}Dien as 'n ingang aanwyser sowel as 'n uitgang aanwyser. Groot uitbreidings van pre-aanwysers kan hiermee gebou word
|
||||
STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Pad aanwyser (robot){}Laat meer as een trein per blok toe solank die trein 'n bestemming veilig kan bereik. Gewone pad aanwysers word geïgnoreer as 'n trein in die teenoorgestelde rigting ry
|
||||
STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Een-rigting pad aanwyser (robot){}Laat meer as een trein per blok toe solank die trein 'n bestemming veilig kan bereik. 'n Een-rigting pad aanwysers laat verkeer slegs in een rigting toe
|
||||
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Verander Sinjaal{}Kliek op 'n bestaande sinjaal om dit na die verkose tipe te verander, Ctrl+Kliek om na die bestaande tipe te verander. Shift+Kliek vir kwotasie
|
||||
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Verander aanwyser{}Kliek op 'n bestaande aanwyser om dit na die verkose tipe te verander, Ctrl+Kliek om na die bestaande tipe te verander. Shift+Kliek vir kwotasie
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Sein sleep digtheid
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Verminder sein sleep digtheid
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Verhoog sein sleep digtheid
|
||||
@@ -2315,7 +2218,7 @@ STR_PLANT_TREE_TOOLTIP :{BLACK}Kies tip
|
||||
STR_TREES_RANDOM_TYPE :{BLACK}Bome van lukraake tipe
|
||||
STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}Plant bome van enige soort. Shift kies tussen bou.kwotasie
|
||||
STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Lukraak Boome
|
||||
STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Beplant bome lukraak oor die landskap
|
||||
STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Beplant bome wildweg oor landskap
|
||||
|
||||
# Land generation window (SE)
|
||||
STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Land Generasie
|
||||
@@ -2385,10 +2288,6 @@ STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Vertoon
|
||||
STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Vertoon vrag voorsiening en aanvaar nywerhede
|
||||
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Verbinding na kleinkaart
|
||||
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Selekteer die vertoonde industrie ook op die kleinkaart
|
||||
STR_INDUSTRY_CARGOES_SELECT_CARGO :{BLACK}Selekteer vrag
|
||||
STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP :{BLACK}Selekteer die vrag om te vertoon
|
||||
STR_INDUSTRY_CARGOES_SELECT_INDUSTRY :{BLACK}Kies die nywerheid
|
||||
STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Kies die nywerheid om te vertoon
|
||||
|
||||
# Land area window
|
||||
STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Land gebied informasie
|
||||
@@ -2509,7 +2408,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Maatskappy-besi
|
||||
STR_ABOUT_OPENTTD :{WHITE}Oor OpenTTD
|
||||
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oorspronklike kopiereg {COPYRIGHT} 1995 Chris Sawyer, Alle regte voorbehou
|
||||
STR_ABOUT_VERSION :{BLACK}OpenTTD uitgawe {REV}
|
||||
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2013 Die OpenTTD span
|
||||
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2012 Die OpenTTD span
|
||||
|
||||
# Save/load game/scenario
|
||||
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spaar Spel
|
||||
@@ -2538,7 +2437,6 @@ STR_SAVELOAD_OSKTITLE :{BLACK}Tik 'n n
|
||||
# World generation
|
||||
STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}Wêreld generasie
|
||||
STR_MAPGEN_MAPSIZE :{BLACK}Kaart groote:
|
||||
STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}Selekteer die grootte van die kaart in teels. Die nommer werklike beskikbare teels sal ietwat minder wees.
|
||||
STR_MAPGEN_BY :{BLACK}*
|
||||
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Hoev. dorpe:
|
||||
STR_MAPGEN_DATE :{BLACK}Datum:
|
||||
@@ -2631,7 +2529,7 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Beweeg O
|
||||
STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Beweeg die gekose NewGRF op in die lys
|
||||
STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Beweeg Af
|
||||
STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Beweeg die gekose NewGRF af in die lys
|
||||
STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}'n Lys van die NewGRF lêers wat geïnstaleer is
|
||||
STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}'n Lys van die NewGRF lêers wat geïnstaleer is.
|
||||
|
||||
STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Stel parameters
|
||||
STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Vertoon parameters
|
||||
@@ -2724,7 +2622,6 @@ STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Jy wil
|
||||
|
||||
STR_NEWGRF_DUPLICATE_GRFID :{WHITE}Kan nie lêer byvoeg nie: gedupliseerde GRF ID
|
||||
STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Gelyke lêer nie gevind nie (versoenbaar GRF gelaai)
|
||||
STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}Kan nie lêer byvoeg nie: NewGRF lêer limiet bereik
|
||||
|
||||
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Versoenbare GRF(s) gelaai vir vermiste lêers
|
||||
STR_NEWGRF_DISABLED_WARNING :{WHITE}Vermiste GRF lêers is gedeaktiveer
|
||||
@@ -3412,11 +3309,6 @@ STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Diens tu
|
||||
STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Maak diens interval met 10 dae meer. Ctrl+Kliek om interval met 5 dae meer te maak
|
||||
STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Maak diens interval met 10 dae minder. Ctrl+Kliek om interval met 5 dae minder te maak
|
||||
|
||||
STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}Verander instandhoudings-interval tipe
|
||||
STR_VEHICLE_DETAILS_DEFAULT :Verstek
|
||||
STR_VEHICLE_DETAILS_DAYS :Dae
|
||||
STR_VEHICLE_DETAILS_PERCENT :Persentasie
|
||||
|
||||
STR_QUERY_RENAME_TRAIN_CAPTION :{WHITE}Benoem trein
|
||||
STR_QUERY_RENAME_ROAD_VEHICLE_CAPTION :{WHITE}Benoem pad voertuig
|
||||
STR_QUERY_RENAME_SHIP_CAPTION :{WHITE}Benoem skip
|
||||
@@ -3449,9 +3341,7 @@ STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}Kapasite
|
||||
STR_REFIT_CAPTION :{WHITE}{VEHICLE} (Herbou)
|
||||
STR_REFIT_TITLE :{GOLD}Kies vrag tipe vir skip te ontvoer:
|
||||
STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nuwe kapasiteit: {GOLD}{CARGO_LONG}{}{BLACK}Herboukoste: {RED}{CURRENCY_LONG}
|
||||
STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Nuwe kapasiteit: {GOLD}{CARGO_LONG}{}{BLACK}Inkomste vanaf herinrig: {GREEN}{CURRENCY_LONG}
|
||||
STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Nuwe Kapasiteit: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Koste om te herbou: {RED}{CURRENCY_LONG}
|
||||
STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Nuwe kapasiteit: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Inkomste van herinrig: {GREEN}{CURRENCY_LONG}
|
||||
STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Selekteer die voertuig vir herbou. Trek met die muis om meer as een voertuig te selekteer. Kliek op 'n leë spasie sal die hele voertuig selekteer. Ctrl+Kliek sal 'n voertuig en daarop volgende ketting selekteer
|
||||
|
||||
STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Kies vrag tipe vir trein te ontvoer
|
||||
@@ -3828,9 +3718,6 @@ STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Om die
|
||||
STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Kon slegs 'n nood klank stel op spoor. Gaan na 'Aanlyn Inhoud' om klank stelle af te laai
|
||||
|
||||
# Screenshot related messages
|
||||
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Groot skermskoot
|
||||
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Die skermskoot sal 'n resolusie van {COMMA} x {COMMA} pixels beslaan. Hierdie skermskoot mag 'n tydjie neem. Wil u aangaan??
|
||||
|
||||
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Skermkiekie suksesvol gestoor as '{STRING}'
|
||||
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Skermskoot het misluk!
|
||||
|
||||
@@ -4164,7 +4051,7 @@ STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... 'n v
|
||||
STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}Kan nie opdraglys deel nie...
|
||||
STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}Kan nie opdraglys ophou deel nie......
|
||||
STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}Kan nie opdrag lys kopie nie...
|
||||
STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... te ver van vorige bestemming
|
||||
STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... te ver van vorige destinasie
|
||||
STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... vliegtuig kan nie so ver vlieg nie
|
||||
|
||||
# Timetable related errors
|
||||
@@ -4627,7 +4514,7 @@ STR_JUST_DATE_SHORT :{DATE_SHORT}
|
||||
STR_JUST_DATE_LONG :{DATE_LONG}
|
||||
STR_JUST_DATE_ISO :{DATE_ISO}
|
||||
STR_JUST_STRING :{STRING}
|
||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||
STR_JUST_STRING_SPACE_STRING :{STRING} {STRING}
|
||||
STR_JUST_RAW_STRING :{STRING}
|
||||
|
||||
# Slightly 'raw' stringcodes with colour or size
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user