Compare commits

..
Author SHA1 Message Date
frosch c91b5dffd4 (svn r24851) -Release: 1.3.0-beta1 2012-12-24 19:25:24 +00:00
381 changed files with 5615 additions and 14057 deletions
-4
View File
@@ -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
View File
@@ -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.
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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."
+1 -1
View File
@@ -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
View File
@@ -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 -1
View File
@@ -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
View File
@@ -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 -10
View File
@@ -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"
-6
View File
@@ -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>
-3
View File
@@ -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>
-15
View File
@@ -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 &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\basque.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\belarusian.txt"
>
-15
View File
@@ -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 &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\basque.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\belarusian.txt"
>
+4 -3
View File
@@ -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!
-1
View File
@@ -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
View File
@@ -1190,7 +1190,7 @@ bool SQVM::CallNative(SQNativeClosure *nclosure,SQInteger nargs,SQInteger stackb
throw;
}
_callsstacksize = cstksize;
assert(cstksize == _callsstacksize);
_nnativecalls--;
suspend = false;
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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()
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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)
+3 -3
View File
@@ -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
View File
@@ -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();
}
+5 -5
View File
@@ -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);
+3 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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");
-1
View File
@@ -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
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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"; }
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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);
}
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
-18
View File
@@ -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;
}
}
-3
View File
@@ -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
View File
@@ -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(
+1 -1
View File
@@ -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
View File
@@ -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) {
+1 -1
View File
@@ -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.
*/
+2 -2
View File
@@ -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')
*/
+2 -2
View File
@@ -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.
*
-12
View File
@@ -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>
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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));
}
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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.
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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);
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
+1
View File
@@ -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
View File
@@ -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. */
+1 -1
View File
@@ -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)) {
+1 -1
View File
@@ -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.
*/
+4 -4
View File
@@ -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
View File
@@ -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 &params, bool parse_string_also_when_clipped = false);
static int ReallyDoDrawString(const UChar *string, int x, int y, DrawStringParams &params, 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 &params, bool parse_string_also_when_clipped)
static int ReallyDoDrawString(const UChar *string, int x, int y, DrawStringParams &params, 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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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)
{
+3 -6
View File
@@ -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
View File
@@ -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
View File
@@ -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
{
+2 -2
View File
@@ -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) {
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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