1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-13 17:49:10 +00:00

Compare commits

...

826 Commits

Author SHA1 Message Date
Patric Stout
88c5122b39 Update: Changelog for 1.9.0-RC1 and prepare for release 2019-03-03 20:53:40 +01:00
Patric Stout
eb46a89855 Fix: [AzurePipelines] also trigger CI on release branches 2019-03-03 20:26:58 +01:00
frosch
39cda89e85 Add: Detect stable tags automatically, and set the 'stable' flag in '_openttd_newgrf_version' accordingly. (#7317) 2019-03-03 20:08:28 +01:00
translators
8016b8b3e9 Update: Translations from eints
catalan: 62 changes by juanjo
french: 11 changes by glx
2019-03-03 19:45:43 +01:00
Charles Pigott
4ac81b3ebb Fix #7308: SDL linker flags were not added on MinGW 2019-03-03 18:04:36 +00:00
Charles Pigott
d9b4ada7e9 Fix 95ccddd6: SDL static library flags was not updated to use pkg-config format 2019-03-03 18:04:36 +00:00
Charles Pigott
1a663d9efc Fix: Wrong variable was used in zlib detection 2019-03-03 18:04:36 +00:00
93a6fd42d1 Fix 23960d0f2c: Company livery window shows incorrect groups when opened from group window in multiplayer. 2019-03-03 13:13:35 +01:00
Niels Martin Hansen
c61acc7fc1 Fix #7280: Save in the right location on desync and server timeout 2019-03-03 12:12:32 +01:00
c91e0058c2 Change: Allow vehicle group names to be non-unique.
Group names are visual identifiers, and do not need to be unique.
Group sorting already falls back to group ID if names are the same, so that sorted
list position is stable.
2019-03-03 12:04:29 +01:00
5a5944867d Add: Add parent_group_id parameter to CreateGroup() 2019-03-03 09:15:39 +01:00
5d3ccae6c5 Add: AI function to get current usage of a group. 2019-03-03 09:15:39 +01:00
e0c2ad1b65 Add: AI functions to get/set company colours. 2019-03-03 09:15:39 +01:00
3c047b124e Add: AI functions to get current and last year profit of a group. 2019-03-03 09:15:39 +01:00
b62452903a Add: AI functions to set/get vehicle group parent. 2019-03-03 09:15:39 +01:00
Eddi-z
8139b14e9c Change: Synchronize introduction date and reliability randomness across vehicles with the same base introduction date (#7147) 2019-03-02 21:28:22 +00:00
Johannes E. Krause
5e40338543 Doc: table alignment when viewing README.md as a monospace textfile 2019-03-02 20:53:50 +01:00
translators
90a4737bf6 Update: Translations from eints
croatian: 6 changes by VoyagerOne
2019-03-02 19:45:43 +01:00
Eddi-z
b242a04c7d Fix #7307: Add WaterClass to MP_TREES, set when trees are on coast tiles (#7309)
This allows allows NewGRF object/industry placement rules to treat trees on coast tiles the same as regular bare coast.
2019-03-02 17:33:16 +00:00
Samu
780593ae60 Fix #6633: Cargo monitor industry delivery now accounts for which IndustryID the cargo was delivered to 2019-03-02 18:14:45 +01:00
cbaf52fbe1 Codechange: Sort and filter sign names directly rather than through string system. (#7304)
This provides a notable performance benefit in the Sign List window when there are many signs.
2019-03-02 17:08:45 +00:00
Charles Pigott
c3bc7d657e Codechange: Remove ability for SDL to be dynamically loaded on Windows 2019-03-02 17:13:05 +01:00
63fe6c6598 Codechange: Make std::stack use std::vector container in string formatting/drawing. (#7305)
This is a very minor performance increase which can add up during operations such
as sorting. Performance impact my be platform/compiler dependent.
2019-03-02 08:06:02 +00:00
translators
7ecfae8f7f Update: Translations from eints
turkish: 4 changes by DarkSapling
danish: 10 changes by Deb622
norwegian (bokmal): 11 changes by Leifbk
portuguese: 11 changes by vesgo
2019-03-01 19:45:42 +01:00
Eddi-z
1447661d20 Cleanup: spurious TODOs in newgrf.cpp (#7297) 2019-02-28 23:00:50 +00:00
9ad5112628 Change: [AzurePipelines] Add freetype dependency for OSX. (#7299) 2019-02-28 19:33:31 +00:00
translators
76f983a8e7 Update: Translations from eints
dutch: 80 changes by JanWillem
2019-02-28 19:45:43 +01:00
SamuXarick
50a0cf1915 Change: Allow towns to build bridges over rails and one-way roads. (#7291) 2019-02-28 17:45:17 +00:00
SamuXarick
03264059e4 Change: Decrease minimum permitted value for script_max_opcode_till_suspend setting (#7243) 2019-02-28 17:37:50 +00:00
translators
adb50cebcc Update: Translations from eints
romanian: 7 changes by alexmerlin1985
2019-02-27 19:45:42 +01:00
Samu
9b99b95955 Fix #6574: Remove go to hangar orders when rebuilding airport
When replacing an airport with another, cancel current orders of type 'go to depot' from aircraft still heading to it if the rebuilt airport doesn't have a hangar (helicopter vs heliport), or if the airplane can't land on the rebuilt airport (airplane vs helistation).

Removes 'go to hangar' orders from all aircraft when replacing an airport with hangar with another without hangar (heliport).
2019-02-27 00:06:57 +01:00
7ac17f5ae4 Fix #7281: Unable to select last group in open livery window on group creation. 2019-02-26 11:20:23 +01:00
c2e4a8c9bf Fix 195fd0dc60: Sprite cache must still be cleared when using bitmap fonts. 2019-02-25 19:46:03 +00:00
translators
93c6398810 Update: Translations from eints
dutch: 68 changes by JanWillem
danish: 17 changes by nielsmh
hungarian: 3 changes by Brumi
2019-02-25 19:45:43 +01:00
glx22
6ff02f0615 Fix: [Windows] make the installer DPI aware (#7277) 2019-02-25 01:47:00 +01:00
Michael Lutz
919d7accd7 Update: Changelog for 1.9.0-beta3 and prepare for release. 2019-02-24 23:30:28 +01:00
Michael Lutz
fa2bea7394 Change: [AzurePipelines] Use a minimum OSX version of 10.9 during building.
OpenTTD sources are still written in a way to work down to OSX 10.4 or so, as long as you can obtain a C++11 capable compiler. 10.9 is the minimal useful C++11 target using only Apple stuff out-of-the-box.
2019-02-24 22:18:10 +01:00
translators
d24a9dfe98 Update: Translations from eints
italian: 11 changes by lorenzodv
dutch: 46 changes by JanWillem
russian: 5 changes by Lone_Wolf
2019-02-24 19:45:43 +01:00
Alexander Weiss
77ab6f8ec7 Change: [OSX] Prevent 2D scrolling for traditional scroll wheel mice 2019-02-24 17:54:59 +01:00
Alexander Weiss
0bb395b21d Change #6800: [OSX] Use high-precision scrolling deltas for 2D scrolling 2019-02-24 17:54:59 +01:00
195fd0dc60 Fix #7266: Reorder reinitialization of caches when changing font zoom level. (#7273) 2019-02-24 16:27:44 +00:00
Patric Stout
91eee793e1 Fix c3dbe836b4: also compile without ENABLE_NETWORK defined again 2019-02-24 01:11:08 +01:00
87ebfe1227 Fix #7004: Mark linkgraph dirty to be rebuilt on next draw call. (#7265)
Previously the linkgraph was rebuilt before the viewport extents were finalized.
2019-02-23 19:19:41 +00:00
translators
f240f61fb2 Update: Translations from eints
danish: 11 changes by nielsmh
spanish (mexican): 11 changes by Absay
hungarian: 100 changes by Brumi
russian: 6 changes by Lone_Wolf
croatian: 9 changes by VoyagerOne
2019-02-23 19:45:45 +01:00
eeae4512ae Fix #7003: Freetype fonts were scaled by both GUI and Font zoom levels. (#7267) 2019-02-23 16:07:25 +00:00
Niels Martin Hansen
13962a8475 Change: Framerate window can now scroll and resize 2019-02-23 14:29:07 +01:00
Niels Martin Hansen
7e1e2756d4 Add: Show performance of AI and GS in framerate window 2019-02-23 14:29:07 +01:00
SamuXarick
4adb91202d Fix: Remove desert around lakes upon generation 2019-02-23 13:16:12 +01:00
fde5bd0ccf Change: Add scrollbar to cargo legend in cargo payment rates window. 2019-02-23 11:46:00 +01:00
Greg Carlin
00d28a500d Feature: Add option to adjust font size separately from GUI size. (#7003)
Adds an option in the "Game Options" next to "Interface Size" called "Font Size". Available options are normal, double, and quad.
2019-02-23 08:27:46 +00:00
56a6d7aec8 Fix #7227: Don't apply mouse-hasn't-moved test to scrollbars. 2019-02-22 21:32:12 +00:00
69928df3f0 Fix: Resorting file list did not update filtered rows. 2019-02-22 21:31:46 +00:00
translators
fb1b6fa47a Update: Translations from eints
italian: 9 changes by lorenzodv
norwegian (bokmal): 4 changes by Leifbk
2019-02-22 19:45:44 +01:00
Michael Lutz
690d1dd6a4 Fix #7159, e934f09: Waiting time at red one-way signals was too short.
This is not an exact fix as previously, the wait time was speed/acceleration dependant. This simple fix ignores that and just makes the 'days' from the settings comment to be actually days.
2019-02-21 23:19:03 +00:00
SamuXarick
456e67ac1c Change: Owner of vehicle with exclusive transport rights may now load cargo from neutral stations (#7256) 2019-02-21 21:23:37 +00:00
translators
673f6753e9 Update: Translations from eints
dutch: 76 changes by JanWillem
scottish gaelic: 44 changes by GunChleoc
2019-02-21 19:45:46 +01:00
5ab1a73a8a Codechange: Remove never-used StationIDList. 2019-02-21 17:45:47 +01:00
Nikolas Nyby
8a6e03c4d2 Fix #7189: Fluidsynth volume gain too high 2019-02-21 10:08:07 +01:00
6733b71300 Change: Make mini-map widget capture mouse when left-click dragging.
This allows the mini-map to be dragged when the cursor has left the widget.
2019-02-21 08:11:35 +00:00
6dfe36b5cd Change: Make volume slider widget capture mouse when clicked.
This makes the slider continue to respond even when mouse cursor
is no longer over the widget.
2019-02-21 08:11:35 +00:00
de9f54ccc1 Codechange: Change scrolling_scrollbar to mouse_capture_widget, and dispatch OnClick() event if widget is not a scrollbar.
This allows any widget to support mouse capture.
2019-02-21 08:11:35 +00:00
Samu
66d23e3e86 Fix #7090: Close Query String window after rebuilding AI/GS settings 2019-02-21 01:40:34 +01:00
Samu
19fa960d83 Fix #7091: Close dropdown menu windows after rebuilding AI/GS settings 2019-02-21 00:35:56 +01:00
translators
21f009dc78 Update: Translations from eints
english (us): 11 changes by njn
dutch: 244 changes by JanWillem
turkish: 102 changes by wakeup
2019-02-20 19:45:42 +01:00
translators
21d8636722 Update: Translations from eints
dutch: 100 changes by JanWillem
2019-02-19 19:45:43 +01:00
Samu
ba55f93f41 Doc: [AI] UnshareOrders empties the orders list of the vehicle. 2019-02-19 15:25:53 +01:00
J0an Josep
c4fe46a475 Fix #7244, 6ca637b8c1: OPF doesn't take 90 deg turns into account. 2019-02-19 01:06:10 +01:00
Juanjo
45ce517105 Codechange: Move some common code after adding/removing tiles to a station to its own function. 2019-02-18 22:57:43 +01:00
J0an Josep
6ca637b8c1 Fix #7226: Don't call ship pathfinders if there is no available track due to "forbid 90 deg turns". 2019-02-18 22:57:19 +01:00
translators
349cbee6e9 Update: Translations from eints
ukrainian: 6 changes by nsergiy
dutch: 210 changes by JanWillem
french: 1 change by glx
portuguese: 4 changes by vesgo
2019-02-18 19:45:44 +01:00
84961034e4 Change: Increase maximum number of orders from 64000 to ~16.7m. (#7220) 2019-02-18 07:37:25 +00:00
translators
ef7e47a53a Update: Translations from eints
danish: 5 changes by nielsmh
french: 3 changes by glx
spanish (mexican): 4 changes by Absay
russian: 4 changes by Lone_Wolf
2019-02-17 19:45:44 +01:00
glx
aadcf40b9b Fix 1585eb1a3: wrong default selection for goals and story book 2019-02-17 16:04:52 +01:00
Joan Josep
548ec05a48 Add: News menu entry and shortcut for deleting all messages. (#7240) 2019-02-16 23:15:58 +00:00
glx
ebe84b9d4c Cleanup: update modified and removed strings in languages 2019-02-16 22:19:16 +01:00
glx
1585eb1a3e Fix: use more descriptive "spectator" strings for story book and goal dropdown menus 2019-02-16 22:19:16 +01:00
glx
7c31a32c2b Fix: colour of network specific strings in company dropdown menus 2019-02-16 22:19:16 +01:00
Joan Josep
4919c8db13 Codechange: Re-arrange VehicleEnter_Track in rail_cmd. (#7239) 2019-02-16 21:52:49 +01:00
5dc377244d Fix #7224: AI could no longer create groups. (#7233) 2019-02-15 19:15:53 +00:00
3a4b6b476b Change: Use selected group as parent when creating a new group. (#7224) 2019-02-15 18:43:33 +00:00
57734fd85d Fix #6599: Disable build and rename button in build vehicle window when no vehicle is selected. 2019-02-14 19:35:48 +01:00
MrMamen
1f182c44c9 Fix: year for 1.9.0 betas in changelog 2019-02-14 19:24:58 +01:00
translators
045503e728 Update: Translations from eints
english (us): 1 change by njn
2019-02-13 19:45:43 +01:00
c0c8fb25fb Change: Use SlErrorCorrupt() on pool index error when loading a savegame, instead of terminating. (#7219) 2019-02-13 09:01:49 +00:00
Niels Martin Hansen
830ed6be61 Fix: Do not mangle tagged revision strings for network revision strings 2019-02-12 21:32:43 +00:00
Niels Martin Hansen
46d97239c4 Codechange: Include flag for whether a build is of a tagged revision 2019-02-12 21:32:43 +00:00
Thomas den Hollander
412e6132b6 Fix: CompanyEconomy documentation
Company income was described as an unsigned integer, but it should be signed.
2019-02-12 19:26:21 +00:00
translators
6b5ebe2b09 Update: Translations from eints
english (us): 64 changes by njn
polish: 2 changes by McZapkie
danish: 1 change by njn
french: 2 changes by glx
2019-02-12 19:45:44 +01:00
aa737715dd Fix #7151: AI start date deviation was still applied when not set to a random AI. (#7223) 2019-02-11 18:59:55 +00:00
translators
75d3054ae4 Update: Translations from eints
faroese: 1 change by JayPee
german: 1 change by ShadowCop
norwegian (bokmal): 96 changes by Leifbk
2019-02-11 19:45:43 +01:00
cac2f6226c Codechange: In CmdCompanyCtrl, move client_id assignment to where it is used, and document bit usage better. 2019-02-10 22:48:23 +00:00
22f33fdd08 Fix 148e5b41d6: Uninitialized variable usage. (#7216) 2019-02-10 21:06:09 +00:00
translators
13af2b88b4 Update: Translations from eints
russian: 3 changes by Lone_Wolf
2019-02-10 19:45:45 +01:00
Patric Stout
4d5d21be76 Fix: [AzurePipelines] always list the full changelog since last stable 2019-02-10 18:46:54 +01:00
Eddi-z
148e5b41d6 Change: Skip reliability decay if servicing is disabled 2019-02-10 18:45:48 +01:00
glx
2ff10327d7 Fix: projects/generate now keeps the line ending 2019-02-10 12:44:10 +01:00
glx
748d72202a Fix: generate and generate.vbs were sorting differently 2019-02-10 12:44:10 +01:00
glx
0df95811ce Fix: generate.vbs used wrong data for basesets_vs142 2019-02-10 12:44:10 +01:00
glx
70e1c57f81 Fix: line ending issues with MSYS2 2019-02-10 12:44:10 +01:00
d242875d27 Fix #7197: Invalidate depot buttons when necessary. (#7212) 2019-02-10 08:43:54 +00:00
Patric Stout
6e21190858 Update: Add changelog for 1.9.0-beta2 and prepare for release 2019-02-09 22:39:18 +01:00
Patric Stout
13b7e8774d Fix: [AzurePipelines] manifest.sh didn't know when it was a stable release
In result, the name of the release was wrong, causing confusing
in tools using the manifest.yaml.
2019-02-09 21:38:40 +01:00
Niels Martin Hansen
0151fe998a Fix 5f8354f3: Non-Windows builds did not get correct git hash
Effect is that gamelog and network revisions indicate a git revision of 0, potentially causing issues.
2019-02-09 20:01:20 +01:00
Patric Stout
887e524e06 Add: [AzurePipelines] build a stable release if a tag is created 2019-02-09 17:10:04 +01:00
glx
8c0bfb4637 Update: [AzurePipelines] NSIS is now part of the Hosted image 2019-02-09 16:02:47 +01:00
Patric Stout
b7ed49af33 Fix: [AzurePipelines] in case of a Pull Request, use that number (prefix with 'pr') as branchname
Otherwise the branch name is always 'merge', which is not really
useful or verbose.
2019-02-09 15:54:08 +01:00
Charles Pigott
5b74118ae7 Update: Add changelog for 1.9.0-beta1 and prepare for release 2019-02-09 15:47:41 +01:00
translators
de1278290b Update: Translations from eints
greek: 15 changes by fumantsu
dutch: 73 changes by JanWillem
2019-02-09 14:41:18 +01:00
Henry Wilson
d03cb80346 Fix: trains cancelling their pending reversal when ordered to go to a depot behind them
Previously, if a train had been ordered to reverse, and while it was slowing down, was
ordered to travel to a depot that is behind it, the train would continue forwards.
Also when a train had been ordered to reverse, and while it was slowing down, was
ordered to travel to a depot that is in front of it, the train would not cancel the
reversal.
In both cases the train would travel away from the target depot.

Trains in this situation now behave correctly and will travel towards the depot.
2019-02-08 23:23:41 +00:00
Gabda
37bb2c9308 Codechange: Make the style of MakeVoid calls uniform (#7192) 2019-02-08 23:05:25 +00:00
Gabda
5e4f76f2f9 Fix #5654: (Re)initialise graph GUI on game (re)start (#7191) 2019-02-07 20:17:32 +00:00
translators
62d6cd75ba Update: Translations from eints
korean: 6 changes by telk5093
polish: 18 changes by xaxa
2019-02-07 19:45:43 +01:00
bfdad9ad1b Fix #7108: Missed generate_widget script run for livery changes. 2019-02-06 21:15:15 +01:00
Niels Martin Hansen
db2c0ccae0 Fix fdc2e85: Double close of file handles
When unpacking downloaded content, the downloaded .gz file was being opened with `fopen`, the OS file handle given to zlib, and then afterwards zlib told to close the file.

But the `FILE *` object was never closed with `fclose`, meaning the stdio library would have a hanging file object, whose file handle was now invalid or referred to a different file. This caused asserts during shutdown with Microsoft's C library in debug mode.

Fix this by properly duplicating the OS handle and `fclose`ing the `FILE *` object, before giving the handle to zlib.
2019-02-06 21:09:02 +01:00
e3b440c9c5 Add #5006: Flag to hide rail type from construction. 2019-02-06 07:40:55 +00:00
4764d1c45e Doc #7181: AAT_STATION_AIRPLANE_LAND triggers only a single tile, not all airport tiles. (#7182) 2019-02-06 00:33:49 +01:00
translators
9fc430a920 Update: Translations from eints
swedish: 21 changes by Joel_A
german: 1 change by smwforever45
2019-02-05 19:45:42 +01:00
b1e40b6b56 Fix #7151: Hang when concurrently starting AIs in multiplayer, or with shift pressed. 2019-02-05 14:49:04 +01:00
64878320cc Fix #6803: CargoMonitorID bit packing updated to handle 64 cargo types.
This requires a saveload bump to change the bitpacking on loading older saves.
2019-02-04 20:43:14 +00:00
0b10678050 Change: Make ships stop in locks to move up/down instead of following the slope. 2019-02-04 20:20:49 +00:00
glx
8e7fe3973f Add: CompanyCtrlAction enum for CMD_COMPANY_CTRL actions 2019-02-04 21:08:36 +01:00
33e3f49161 Fix #7119: When rotating a ship, apply an additional offset to avoid movement glitch. 2019-02-04 00:19:48 +00:00
0749a291c4 Revert 479f13fc41, Fix #7133, Fix #7136: "Codechange: Tweak ViewportAddLandscape so it no more relies on "go down as fast as possible" tile height model (Patch by adf88, #6583)"
This reverts commit 479f13fc41.
2019-02-03 19:39:20 +00:00
glx
bf5898018f Fix #7171: incorrect modified status with determineversion.vbs 2019-02-03 19:53:36 +01:00
translators
de5614a4d8 Update: Translations from eints
german: 64 changes by smwforever45
2019-02-03 19:45:41 +01:00
Niels Martin Hansen
5f8354f358 Change: Make a shortened network revision string for use in server queries 2019-02-03 18:00:16 +01:00
Niels Martin Hansen
c511b0e801 Change: Increase NETWORK_REVISION_LENGTH to 33 bytes 2019-02-03 18:00:16 +01:00
Niels Martin Hansen
cd757ecbf4 Change: Use git revision hash (with "modified" prefix) for gamelog 2019-02-03 18:00:16 +01:00
Niels Martin Hansen
faee0737e0 Codechange: Separate gamelog revision length from network revision length 2019-02-03 18:00:16 +01:00
Niels Martin Hansen
67c6f945fb Change: Include the full raw git revision hash in rev.cpp 2019-02-03 18:00:16 +01:00
cca952d94b Fix #7108: Group livery command did not check its parameters properly. 2019-02-03 15:52:19 +00:00
e21ade375e Codechange: Change from numeric to descriptive SLV enum labels for last entries. 2019-02-02 21:39:06 +00:00
0f37a683a2 Codechange: Additional type safety for saveload version variables. 2019-02-02 21:39:06 +00:00
9de12521ec Codechange: Convert saveload numbers to enum values.
(This was mostly achieved with a few in-place regexes)
2019-02-02 21:39:06 +00:00
ea4ea62816 Codechange: Make saveload version upper bound exclusive, i.e. version object was removed instead of version object last appeared. 2019-02-02 21:39:06 +00:00
translators
bdf0dc67e9 Update: Translations from eints
croatian: 4 changes by VoyagerOne
korean: 4 changes by telk5093
russian: 2 changes by Lone_Wolf
german: 4 changes by smwforever45, 4 changes by ShadowCop
spanish (mexican): 2 changes by Absay
portuguese: 52 changes by vesgo
finnish: 3 changes by hpiirai
dutch: 238 changes by JanWillem
estonian: 1 change by rm87
2019-02-02 19:45:42 +01:00
9dc36057eb Fix #7058, Fix #7161: Network chat messages did not expire. 2019-02-02 16:58:04 +00:00
e8f1c446a6 Fix: DMU/EMU livery should apply to passenger carriages with DMU/EMU engines. 2019-02-02 16:57:47 +00:00
c9d801a98d Fix: Make livery window resize properly if GUI scale changes whilst open. 2019-02-02 16:57:47 +00:00
Samu
011257dc88 Change: Allow AI companies to start immediately.
Allow multiple AIs to possibly start in the same tick.
start_date = 0 becomes a special case, where random deviation does not occur.
If start_date was not already 0, then a minimum value of 1 must apply.
2019-02-02 16:37:11 +00:00
fa53abe864 Doc: Yearly increment. 2019-02-01 22:12:07 +00:00
Niels Martin Hansen
0bca363401 Add: Warn before overwriting an existing save file 2019-02-01 21:49:36 +00:00
translators
5a5861f245 Update: Translations from eints
french: 2 changes by glx
german: 23 changes by planetmaker
danish: 139 changes by nielsmh
spanish (mexican): 3 changes by Absay
portuguese: 55 changes by vesgo
dutch: 214 changes by JanWillem
estonian: 30 changes by rm87
2019-02-01 19:45:44 +01:00
glx
8418e27403 Fix: close Textfile windows when closing Option window 2019-02-01 16:46:45 +01:00
0355f887d9 Fix #6438: Properly invalidate AI Settings window when max no competitor setting is changed. 2019-02-01 15:20:52 +00:00
9e9d485713 Fix 23960d0f2c: Scrollbar was broken for non-group liveries.
Simplify how list position is determined by using existing functions.
Also rename livery_height -> rows and SetLiveryHeight() -> SetRows(), as height implies pixels.
2019-02-01 13:25:42 +00:00
12b6fe47c7 Fix: Set MU flag on some default engines. 2019-02-01 07:08:55 +00:00
21dc725762 Fix: Don't consider engines not in the current climate towards used livery classes. 2019-02-01 07:08:55 +00:00
SamuXarick
1e5a6765d9 Change: Give AI/GSBridge::GetName an extra parameter to refer the vehicle type (#6988) 2019-01-31 23:08:03 +00:00
J0an Josep
029c48cf4a Cleanup: [NPF] Remove unused parameter. 2019-01-31 22:15:56 +00:00
J0an Josep
d814dd3434 Cleanup: [NPF] Assert that a track has been chosen. 2019-01-31 22:15:56 +00:00
J0an Josep
aa63517c92 Fix #7060: [NPF] Do not check whether ignored first tiles are end nodes. 2019-01-31 22:15:56 +00:00
J0an Josep
19be1f4ace Codechange: [NPF] Add some consts. 2019-01-31 22:15:56 +00:00
J0an Josep
96c5e5e73a Cleanup: [NPF] Remove unused parameters. 2019-01-31 22:15:56 +00:00
glx22
bb9b8eb464 Fix #7089: Close NewGRF textfile windows when their data is invalid (#7106) 2019-01-31 22:15:22 +00:00
translators
8e02b7952b Update: Translations from eints
swedish: 36 changes by Joel_A
spanish: 3 changes by SilverSurferZzZ
russian: 2 changes by Lone_Wolf
romanian: 18 changes by kneekoo
portuguese: 37 changes by vesgo
2019-01-31 19:45:43 +01:00
23960d0f2c Feature: Group liveries, and livery window usability enhancements. (#7108)
* Change: Replace checkbox in livery selection window with Default option in drop down selection.

This reduces clutter in the UI and allows for primary/secondary colours to independently follow the default scheme if desired.

* Feature: Add vehicle group liveries.
2019-01-31 14:57:44 +01:00
glx
ba38a7ca65 Fix: don't show OS error box for non GUI video drivers 2019-01-30 22:45:09 +01:00
translators
530bdf33cc Update: Translations from eints
swedish: 131 changes by Joel_A
2019-01-30 19:45:42 +01:00
67633606b0 Codechange: Remove value mangling and field misuse in SLE_WRITEBYTE.
The original translation functionality hasn't been used since 2007.
2019-01-30 17:11:40 +00:00
e982b9131e Fix #7142: Missing map bounds check when building long roads. 2019-01-30 17:08:36 +00:00
nikolas
8334a57332 Fix: unicode characters in Romanian town names (#7141)
Many of these town names were using the 'a with ~ above it' character,
which should actually by 'a with u above it'. There were other missing
accents as well which I've added.
2019-01-30 14:52:56 +01:00
90c7ef96ca Fix 11ab3c4ea2: Fix showing cargo capacity for auto-refits (missed in #7134) 2019-01-29 23:02:43 +01:00
glx
2fcd4e61db Fix: make sure strgen fails when english.txt contains invalid commands 2019-01-29 22:25:50 +01:00
translators
a1c3781010 Update: Translations from eints
swedish: 13 changes by Joel_A
croatian: 7 changes by VoyagerOne
2019-01-29 19:45:47 +01:00
48fb575502 Fix 11ab3c4ea2: Vehicles could not be refitted to cargo IDs higher than 32. 2019-01-29 17:57:28 +00:00
498ca6e4eb Add: [GitHub] Add issue template to encourage better issue reporting. (#7137) 2019-01-29 18:15:54 +01:00
Niels Martin Hansen
7c6e10dbfc Update: Visual Studio 2019 solution file version upgrade (#7135) 2019-01-29 17:18:12 +01:00
Nikolas Nyby
6a56a4ce84 Fix #6584: text layout problem in engine preview dialog
With language set to German, there was a problem in this dialog box due
to the long strings in this language. It looks like the call to
`GetStringHeight()` here is using `r.top` to help calculate the
max width, rather than `r.left`.
2019-01-29 07:18:48 +00:00
glx
b22fbfbe3d Add: allow opening of one TextfileWindow per type 2019-01-28 23:43:18 +00:00
310fa1af88 Codechange: Rename function to match what it does and reduce code indenting. 2019-01-28 20:29:43 +01:00
fe37b40385 Fix: Group hierarchy not visible in RTL languages. 2019-01-28 20:29:43 +01:00
translators
9f458ecb10 Update: Translations from eints
korean: 15 changes by telk5093
spanish: 2 changes by SilverSurferZzZ
russian: 21 changes by Lone_Wolf
spanish (mexican): 13 changes by Absay
2019-01-28 19:45:43 +01:00
Jonathan G Rennison
64f1847bec Codechange: [Linkgraph GUI] Replace line visibility detection algorithm
Use an implementation of the Cohen-Sutherland line-clipping algorithm.
The previous algorithm had an excessive false-positive rate.
Line-rendering is sufficiently expensive that using a line-clipping
algorithm with a much lower false-positive rate is a net performance
benefit.
2019-01-28 19:15:21 +01:00
Samu
9c6ac309e0 Fix #6636: Airplanes could be sent to helicopter station depots 2019-01-28 17:24:33 +01:00
glx22
b28a678436 Fix #7112, fef8b831a9: incorrect precondition check (#7127) 2019-01-28 17:16:19 +01:00
glx22
654b635f6f Fix #7122: OnClick() and DrawWidget() editability was inconsistent in AISettingsWindow (#7123) 2019-01-27 21:01:09 +00:00
translators
80c7965c65 Update: Translations from eints
belarusian: 1 change by translators
norwegian (nynorsk): 1 change by translators
chinese (simplified): 1 change by translators
serbian: 1 change by translators
czech: 1 change by translators
esperanto: 1 change by translators
chinese (traditional): 1 change by translators
portuguese (brazilian): 1 change by translators
norwegian (bokmal): 1 change by translators
swedish: 1 change by translators
lithuanian: 1 change by translators
hebrew: 1 change by translators
croatian: 1 change by translators
bulgarian: 1 change by translators
catalan: 1 change by translators
afrikaans: 1 change by translators
vietnamese: 1 change by translators
slovenian: 1 change by translators
faroese: 1 change by translators
thai: 1 change by translators
frisian: 1 change by translators
scottish gaelic: 1 change by translators
persian: 1 change by translators
korean: 1 change by translators
greek: 1 change by translators
latin: 1 change by translators
welsh: 1 change by translators
galician: 1 change by translators
japanese: 1 change by translators
english (au): 1 change by translators
italian: 6 changes by lorenzodv, 1 change by translators
urdu: 1 change by translators
french: 7 changes by glx
malay: 1 change by translators
tamil: 1 change by translators
spanish: 4 changes by SilverSurferZzZ, 1 change by translators
slovak: 1 change by translators
basque: 1 change by translators
polish: 1 change by translators
indonesian: 1 change by translators
arabic (egypt): 1 change by translators
russian: 2 changes by Lone_Wolf, 1 change by translators
hungarian: 1 change by translators
luxembourgish: 1 change by translators
romanian: 1 change by translators
irish: 1 change by translators
latvian: 1 change by translators
german: 1 change by translators
danish: 1 change by translators
spanish (mexican): 7 changes by Absay
icelandic: 1 change by translators
english (us): 1 change by translators
turkish: 1 change by translators
portuguese: 1 change by translators
ukrainian: 1 change by translators
finnish: 1 change by translators
dutch: 1 change by translators
estonian: 1 change by translators
2019-01-27 19:45:42 +01:00
b60b193a6d Cleanup: Remove out of date translations for changed string. 2019-01-27 12:34:49 +01:00
6e5b90f4f7 Change: For consistency, add company name to colour scheme window. 2019-01-27 12:34:49 +01:00
256b94a03d Fix: Ignore company colour selection when showing different company's colour scheme. 2019-01-27 12:34:49 +01:00
Samu
3e0e3cfac1 Fix: Direct the aircraft to the correct location of the hangar when skipping to a go to hangar order
When manually skipping to a 'go to hangar' order in the order list, while the aircraft is flying, direct the aircraft to the correct location of the hangar.
2019-01-27 12:33:54 +01:00
Samu
2084779b5a Fix #6574: Go to takeoff if no hangar
Sends the aircraft to takeoff if the airport it's currently at, got no hangar even if the order is to go to hangar.
2019-01-27 11:17:32 +01:00
J0an Josep
a5836874ef Codechange: Use track functions. 2019-01-26 22:55:12 +00:00
glx
a18b0eba5b Add: more options for translators 2019-01-26 21:17:42 +01:00
translators
36e299fb6d Update: Translations from eints
croatian: 3 changes by VoyagerOne
russian: 18 changes by Lone_Wolf
2019-01-26 19:45:43 +01:00
Niels Martin Hansen
65782af2f4 Add: Visual Studio 2019 project files 2019-01-26 14:56:35 +01:00
b6de8c0930 Fix #7098, Fix #7061: Inverted test led to invalid iterator access. 2019-01-26 00:25:18 +00:00
1334cfb3e5 Change: Always build baseset metadata, instead of including it in the repo.
This adds a script and project files to generate these files within MSVC.
2019-01-25 22:28:39 +00:00
glx
e76fd99c47 Fix #7007: deadlock when launched with -n switch 2019-01-25 22:09:27 +00:00
translators
9fa827ed78 Update: Translations from eints
polish: 24 changes by p0358
2019-01-25 19:45:45 +01:00
glx
255fa6e1a8 Fix: enable DPI-awareness for MINGW builds 2019-01-25 16:59:41 +01:00
Nikolas Nyby
4158c077cd Fix: Remove duplicate French and Slovak town names
I've replaced some of the duplicate real town names with new real town
names in the French and Slovak sets.

Also, some Slovak town names were missing accents, so I've fixed those.
2019-01-24 21:47:13 +00:00
Patric Stout
564077719a Add: [GitHub] enable probot/stale, to flush out stale issues/pull requests
Stale bot checks if an issue hasn't had any attention in the last
60 days, or if a pull request hasn't had any attention in the last
30 days. If so, it marks it as stale. After 7 more days, it closes
the issue/pull request. Any activity on the issue/pull request
resets the timer.

This helps keeping the counter low, and the work manageable. There
is a lot of reasoning behind this idea, and other projects show it
really helps to keep the issue/pull request count low.

More information here: https://github.com/probot/stale
2019-01-24 21:57:06 +01:00
225790892d Change: Make ships stop and change direction slowly instead of instantly turning. 2019-01-24 20:47:40 +00:00
Johannes E. Krause
479f13fc41 Codechange: Tweak ViewportAddLandscape so it no more relies on "go down as fast as possible" tile height model (Patch by adf88, #6583) 2019-01-24 21:17:17 +01:00
Johannes E. Krause
c33596fe4a Codechange: Unify tile height model in all functions (Patch by adf88, #6583) 2019-01-24 21:17:17 +01:00
Johannes E. Krause
05da5a177c Codechange: Simplify marking tiles dirty when terraforming (Patch by adf88, #6583) 2019-01-24 21:17:17 +01:00
Johannes E. Krause
f744dea0ff Fix: jumping effect when scrolling viewport over bottom edge of the map (Patch by adf88, #6583) 2019-01-24 21:17:17 +01:00
Johannes E. Krause
f0290d5de7 Codechange: Add InverseRemapCoords2 function for remapping viewport coordinates to underlying tile coordinates (Patch by adf88, #6583) 2019-01-24 21:17:17 +01:00
Johannes E. Krause
43852baace Codechange: Remove unused GetTilePixelZOutsideMap and GetTileMaxPixelZOutsideMap functions (Patch by adf88, #6583) 2019-01-24 21:17:17 +01:00
translators
b934cdf0ab Update: Translations from eints
italian: 7 changes by lorenzodv
2019-01-24 19:45:44 +01:00
Jonathan G Rennison
4b256fed36 Codechange: [Blitter] Adjust line-drawing algorithm to reduce wasted off-screen work
This clips the line segment to be within the screen area prior to pixel iteration.
2019-01-24 11:12:06 +00:00
Jonathan G Rennison
0240e90169 Fix: [Blitter] Avoid signed overflow when drawing long lines 2019-01-24 11:12:06 +00:00
Jonathan G Rennison
db924a4681 Codechange: [Blitter] Change DrawLine to be templated
This is remove per-pixel overheads due to use of the SetPixel virtual
method.
These overheads included:
* expensive virtual method call which prevents inlining
* palette lookup for every pixel
* branch on whether palette animation is enabled on every pixel

Regenerate project files.
2019-01-24 11:12:06 +00:00
translators
ed325ada88 Update: Translations from eints
spanish: 3 changes by SilverSurferZzZ
2019-01-23 19:45:44 +01:00
glx
7292591967 Add: generate_widget.vbs to allow script_window.hpp enums generation for users unable to run bash/gawk scripts 2019-01-23 19:44:43 +01:00
glx
636fcc2cc0 Fix: keep the line ending when generating widget enums with bash/gawk on windows 2019-01-23 19:44:43 +01:00
c3dbe836b4 Add: Draw network password indicator lock in company drop down list. (#7079) 2019-01-22 12:42:52 +00:00
41d47926b1 Cleanup #6960: Remove parts of generate used only for MSVC pre-2015. 2019-01-21 17:40:44 +00:00
Niels Martin Hansen
48b334cf97 Add: Houses can accept up to 16 different cargo types via NewGRF.
New Action0 property 23 for feature 07, variable length, format B n*(B B). Initial byte is number of structures following. First byte in structure is cargo id, second is acceptance level in 1/8 units.
2019-01-21 16:06:25 +01:00
J0an Josep
9ce92521c1 Fix: If screen size changes, windows are relocated and dropdown may not fit the screen. 2019-01-20 21:43:00 +00:00
J0an Josep
628af2fabc Fix #6060: When opening a scrollable dropdown above a widget, scroll it to its very bottom.
This "prevents" the fast movement towards the bottom when holding down the mouse button.
2019-01-20 21:43:00 +00:00
Juanjo
226dbcb422 Codechange #6060: Allow drawing dropdown lists with scrollbars above the widgets 2019-01-20 21:43:00 +00:00
btzy
9d75600ac0 Fix: Round up deltas for smooth scrolling, so target will be reached 2019-01-20 19:43:56 +00:00
Patric Stout
5ad73e4029 Fix: [AzurePipelines] the repository OpenTTD-CF is renamed to CompileFarm 2019-01-20 20:00:13 +01:00
translators
e71f7cf277 Update: Translations from eints
russian: 10 changes by Lone_Wolf
hungarian: 5 changes by Brumi
spanish (mexican): 6 changes by Absay
2019-01-20 19:45:44 +01:00
f35b135e17 Change 81330b8d6e: Cached path only needs to be cleared if it was found to be invalid. 2019-01-20 11:06:33 +01:00
4daaec1a94 Change: Invalidate ship path caches if pathfinder choice or forbid-90-degree turns are changed. 2019-01-19 23:11:17 +00:00
81330b8d6e Change: Add path cache for ships. 2019-01-19 23:11:17 +00:00
1c725fce47 Change: Add ability to save/load std::deque<> containers. 2019-01-19 23:11:17 +00:00
translators
60da05cf2a Update: Translations from eints
french: 3 changes by glx
2019-01-19 19:45:43 +01:00
Ingo von Borstel
4e9e115760 Add: [NewGRF] Airport animation trigger for plane landing (#6334, patch by Supercheese) 2019-01-19 14:36:15 +00:00
Niels Martin Hansen
f37304f9f5 Cleanup: Remove unused strings 2019-01-19 13:33:17 +01:00
Niels Martin Hansen
08ffa16d51 Fix 8859381: Display of requires/produces in Build Industry window
Change the window to use a dynamically generated string of cargoes,
instead of one of a few fixed-length lists. With up to 16 cargoes
on each list, having 16 with the only difference how many are listed
seems like a bad maintenance idea.
2019-01-19 13:33:17 +01:00
translators
07a40df9ab Update: Translations from eints
spanish: 4 changes by SilverSurferZzZ
spanish (mexican): 1 change by Absay
2019-01-18 19:45:44 +01:00
glx
0e0476184e Cleanup: remove useless and outdated 'generate' projects outputs 2019-01-17 23:02:11 +00:00
glx
98308fe260 Fix 7f54c59a6: use some consistency for project dependencies determination 2019-01-17 23:02:11 +00:00
nikolas
d8ccad91f9 Fix: Some code and comment typos
Found with codespell
2019-01-17 22:01:07 +00:00
glx
1623cb553b Fix #7032: use the same mode to load and render glyphs 2019-01-17 21:56:12 +00:00
Charles Pigott
6535abb88b Codechange: Don't explicitly link with -lstdc++, causes linking issues with freetype on MinGW 2019-01-17 21:55:15 +00:00
Charles Pigott
fe8c24e081 Codechange: Remove unnecessarily defined functions under MinGW 2019-01-17 21:55:15 +00:00
Charles Pigott
2d981a4b2c Fix: A few minor compile warnings under MinGW 2019-01-17 21:55:15 +00:00
glx
1106534262 Fix: depend was messing the line endings in append mode 2019-01-16 19:27:06 +00:00
glx
ee84f98f1e Fix: deps calculation call could fail due to command line length 2019-01-16 19:27:06 +00:00
glx
5a09337c20 Fix: make reconfigure warning 2019-01-16 19:27:06 +00:00
translators
91315a7a39 Update: Translations from eints
spanish: 3 changes by SilverSurferZzZ
2019-01-15 19:45:41 +01:00
6b0a467a50 Change: Obey forbid_90_deg_turns when choosing available track with no destination. 2019-01-14 19:57:07 +00:00
7284b593c7 Change: When ship is lost, pick first available track instead of a random track. 2019-01-14 19:57:07 +00:00
8b64204418 Codechange: Replace trackbit lookup table with existing functions. 2019-01-14 19:57:07 +00:00
7af53d7588 Codechange: Use const instead of magic number for ship order distance. Allow slightly further distance when following orders. 2019-01-14 19:57:07 +00:00
b98887c4a0 Change: Allow only one ship to leave depot at a time. 2019-01-14 19:57:07 +00:00
ebddd596c7 Change: Don't pathfind with no destination or if destination is known to be too far. 2019-01-14 19:57:07 +00:00
6a38a3f5df Change: Don't leave ship depot with no orders. 2019-01-14 19:57:07 +00:00
translators
29b6b74ee1 Update: Translations from eints
french: 4 changes by glx
finnish: 2 changes by ln
2019-01-14 19:45:41 +01:00
glx
9f0ad7e269 Fix: BSD find used by OSX requires explicit path 2019-01-14 00:34:52 +00:00
glx
3f28e0cf53 Add: squirrel_export.vbs for users unable to run bash/gawk scripts 2019-01-14 00:34:52 +00:00
glx
8e5a8d3ec3 Cleanup: remove svn references in squirrel_export.sh 2019-01-14 00:34:52 +00:00
glx
2cf9405aa2 Fix: remove manual single file generation in squirrel_export.sh as it's broken 2019-01-14 00:34:52 +00:00
glx
34c438d7ad Fix: keep line endings when running squirrel_export.sh on windows 2019-01-14 00:34:52 +00:00
Joan Josep
823c5bfa3b Fix #5978: Ensure group GUI stats and lists are invalidated properly (3298, Juanjo) (#7046) 2019-01-13 22:29:17 +00:00
translators
ca7ee34502 Update: Translations from eints
croatian: 8 changes by VoyagerOne
2019-01-13 19:45:41 +01:00
89f0017a67 Fix #7050: Missing guard around network chat message function for compiling with networking disabled. (#7058) 2019-01-13 16:50:21 +00:00
Patric Stout
750927372f Add: [AzurePipeline] introducing a release pipeline
This release pipeline creates all the official release binaries,
and publishes them as artifacts. Currently it can only produce
nightlies and custom builds; stable/testing release binaries are
untested.

This commit also splits up the pipeline in small bits, to both
improve readability, and to share code with the CI pipeline where
possible.
2019-01-13 11:31:04 +00:00
Patric Stout
52a66e4dd3 Fix 192770e6da: not all REV instances were renamed to VERSION 2019-01-13 11:31:04 +00:00
Alberth289346
f4b8a67aed Fix #6408: Improve wording of the dragging signal distance tooltips (juanjo) (#7055) 2019-01-13 07:57:33 +00:00
glx22
efc44466d6 Fix: make -k switch useful when testing regression (#7053) 2019-01-13 07:40:54 +00:00
nikolas
4fc1b2baae Fix: Grammar in a bunch of comments (#7054) 2019-01-13 07:38:48 +00:00
5ff0c24993 Fix #6780: Some windows didn't get updated from OnTick() (#7048) 2019-01-12 23:23:23 +00:00
Joan Josep
9aecbac2b4 Codechange: Define INVALID_TOWN as a TownID (#7044) 2019-01-12 23:20:10 +00:00
Joan Josep
96854b2b8b Codechange #5859: Simplify CheckTrainStayInDepot() (#7045) 2019-01-12 17:04:04 +00:00
Nikolas Nyby
0f9d1019e6 Add: Mexican Peso currency
OpenTTD doesn't have any pesos, so I've added Mexican pesos,
at its current exchange rate: 1GBP = 24.39MXN, rounded to 24.
2019-01-12 16:57:23 +00:00
nikolas
82e530b517 Fix: Remove duplicate town name "Huacho" (#7038)
Huacho appears twice in the Spanish town names list. This change removes
the second one, and replaces it with a new one: Medellin.
2019-01-12 08:33:13 +01:00
Johannes E. Krause
06cd561cea Add: when placing non-rectangular airport, consider airport tile table tiles only (patch by adf88, #6613) 2019-01-11 20:38:52 +00:00
Nikolas Nyby
65746a0275 Fix: Spelling fixes on some Latin American town names 2019-01-11 20:24:12 +00:00
translators
c80608a83c Update: Translations from eints
spanish: 3 changes by SilverSurferZzZ
spanish (mexican): 3 changes by Absay
2019-01-11 19:45:46 +01:00
nikolas
fa95af2da8 Codechange: Fix typo in variable name: pices -> pieces (#7033) 2019-01-11 16:08:02 +01:00
Andy
f99f993e99 Doc: replace 4 references to SVN with Git #6698 (#7036) 2019-01-11 13:41:12 +01:00
c693463c29 Fix: Always draw dirty blocks, else fast-forward is super fast. 2019-01-11 11:56:21 +00:00
806e7d25dd Change: Use GUITimer class instead of bare int/uints. 2019-01-11 11:56:21 +00:00
59fe4f28c8 Change: Animate text effects by real time instead of game ticks. 2019-01-11 11:56:21 +00:00
ead9c9eab5 Change: Switch various window timers to real time instead of game ticks. 2019-01-11 11:56:21 +00:00
15320a37b9 Change: OnGameTick() is only called when not paused. 2019-01-11 11:56:21 +00:00
2a8fa5fef9 Change: Split up Window::OnTick into OnGameTick and OnRealtimeTick. Adjust timers to work with milliseconds instead of ticks. 2019-01-11 11:56:21 +00:00
nikolas
916e911806 Doc: Fix a few typos in docs/multiplayer.txt 2019-01-10 22:14:23 +00:00
translators
e34a6c58ea Update: Translations from eints
italian: 1 change by lorenzodv
french: 29 changes by glx
2019-01-10 19:45:44 +01:00
Gabda87
a0293d313d Add #4115: default company colour setting (#6998)
Works only in single player.
2019-01-10 10:45:38 +01:00
Andy
ad5a9daed5 Change: Desert tiles are now half-desert if a neighboured tile is non-desert or sea/coast. (patch by frosch123) #4754 (#7015) 2019-01-09 18:48:08 +01:00
Andy
e934f09f02 Fix: Don't increase motion counter while train is waiting at non-path signals (Author: frosch123) #5877 (#7018) 2019-01-09 18:37:58 +01:00
translators
5e51d9ee82 Update: Translations from eints
hebrew: 22 changes by dnd_man
spanish (mexican): 1 change by Absay
2019-01-07 19:45:46 +01:00
J0an Josep
effb7da5b4 Doc: Fix spelling in comments. 2019-01-06 16:47:45 +01:00
J0an Josep
c304aa50e9 Fix: [NPF] Don't look two-way for road vehicles when looking for a depot. Road vehicles shouldn't reverse all of a sudden. 2019-01-06 16:47:45 +01:00
Juanjo!
1db66a285e Codechange: [YAPF] Stop looking for an automatic servicing road depot when the cost of a path exceeds max. penalty. 2019-01-06 16:47:45 +01:00
Juanjo!
edb7adf183 Codechange: [NPF] Stop looking for an automatic servicing (rail/road) depot when the cost of a path exceeds max. penalty. 2019-01-06 16:47:45 +01:00
J0an Josep
19a2f84943 Fix #7001: Pathfinders should see standard road stations as tiles where to reverse. 2019-01-06 16:47:45 +01:00
Niels Martin Hansen
15a7f9da9d Fix 13056ae: PR #7017 added new enum value in bad position, move it 2019-01-06 11:45:21 +01:00
Eddi-z
13056aedbc Add: Conditional order for max. reliability (patch by Cirdan, #6360) (#7017) 2019-01-05 22:10:37 +01:00
glx
96b961c69a Add: [AzurePipelines] run regression with MSVC 2019-01-05 18:10:14 +01:00
glx
c0a655225d Add: [Win32] regression project files 2019-01-05 18:10:14 +01:00
glx
7b5e7aa14f Add: [Win32] regression test script 2019-01-05 18:10:14 +01:00
glx
92d3358db5 Fix: [Win32] don't mess with std[out|err|in] if we can't allocate a console 2019-01-05 18:10:14 +01:00
Charles Pigott
4fbfe34e36 Codechange: Always compile with C++11 2019-01-05 17:39:11 +01:00
Charles Pigott
175829b8b5 Fix #6880: [OSX] Clang version detection 2019-01-05 17:39:11 +01:00
Charles Pigott
0e7af55ef7 Fix: [OSX] Check all search paths for iconv.h 2019-01-05 17:39:11 +01:00
Niels Martin Hansen
b8b6954fb5 Fix 6a3d411: Silence truncation warning 2019-01-05 17:21:29 +01:00
Niels Martin Hansen
cb60a5e57f Change: Fluidsynth music driver plays through mixer instead of own audio driver 2019-01-05 17:17:10 +01:00
Niels Martin Hansen
d6c06de5ad Add: Mixer feature for streaming sampled music 2019-01-05 17:17:10 +01:00
Niels Martin Hansen
12ba56c5a3 Fix 6accbf9: Silence warnings about unused fread() result 2019-01-05 17:16:53 +01:00
glx
0aa69693c6 Fix 59e42ea17, 1f083c3ac: 'make clean' was not fully cleaning 2019-01-05 12:44:03 +01:00
Juanjo
9e30054de9 Codechange: Use window class as expected. 2019-01-04 23:55:07 +01:00
J0an Josep
16a91130a7 Codechange: Use INVALID_TRACKDIR instead of 0xFF. 2019-01-04 23:55:07 +01:00
translators
49ab02c084 Update: Translations from eints
spanish: 4 changes by SilverSurferZzZ
2019-01-04 19:45:45 +01:00
translators
391bc45c41 Update: Translations from eints
spanish (mexican): 10 changes by Absay
2018-12-31 19:45:43 +01:00
Alberth
4a255e879a Fix #6966: Only allow switching to a valid company. 2018-12-29 16:15:44 +01:00
Patric Stout
d8f6c80696 Fix: [AzurePipelines] download Windows Dependencies from GitHub Releases
It turns out that Azure Pipelines has a lot of issues downloading
an artifact from your own project if it is triggered from a fork.
From what I could deduce, this is because the API requires a valid
token, which is not set (correctly?) when triggered from a fork.
As it is nicer anyway to publish the Windows Dependencies on GitHub,
it is now published there (and updated at least every week), and
we use the files from GitHub as our dependency.
2018-12-28 13:07:50 +01:00
Patric Stout
d447394638 Fix: [AzurePipelines] also trigger CI checks on commit to master 2018-12-28 13:07:50 +01:00
Patric Stout
e61904c3e6 Change: use Azure Pipelines instead of self-hosted Jenkins for CI 2018-12-27 21:21:28 +01:00
translators
e8f9975409 Update: Translations from eints
finnish: 160 changes by ln
2018-12-27 19:45:44 +01:00
glx
e902a1cc57 Fix: [WIN32] no need to define WIN32 in project files 2018-12-27 18:09:16 +01:00
glx
c540d72445 Fix: [Win32] WIN32 may not be defined, always prefer the compiler predefined macro _WIN32 2018-12-27 18:09:16 +01:00
Joan Josep
8890926b0d Fix #6974: Add save-load filter widget to api 2018-12-27 09:53:55 +01:00
Patric Stout
65bc7123d1 Update: Readme_Windows_MSVC documentation now reflects the current reality again
It was not updated for a while, and kinda out-of-date. This should
bring it back to reality.
2018-12-26 17:29:11 +01:00
glx
28ff1be85b Update: replace openttd-useful with vcpkg in README 2018-12-26 17:29:11 +01:00
glx
3be6ab555c Change: use vcpkg integration in Visual Studio
Removes the need for us to provide OpenTTD-useful package
2018-12-26 17:29:11 +01:00
translators
cab39ff47f Update: Translations from eints
russian: 8 changes by Lone_Wolf
2018-12-24 19:45:43 +01:00
translators
2ab4b5dd03 Update: Translations from eints
spanish: 3 changes by SilverSurferZzZ
2018-12-14 19:45:43 +01:00
translators
2978388153 Update: Translations from eints
spanish: 5 changes by SilverSurferZzZ
spanish (mexican): 23 changes by Absay
2018-12-13 19:45:44 +01:00
translators
777cfe5611 Update: Translations from eints
chinese (simplified): 2 changes by ww9980
korean: 23 changes by kevinhigh
2018-12-12 19:45:44 +01:00
translators
863b80e880 Update: Translations from eints
spanish: 6 changes by SilverSurferZzZ
2018-12-10 19:45:44 +01:00
translators
68b5b11b7c Update: Translations from eints
spanish: 4 changes by SilverSurferZzZ
2018-12-09 19:45:44 +01:00
Michael Lutz
32ce1ce347 Add: [OSX] Text layout using the native CoreText API.
By default, the native API will be used instead of ICU, but if ICU is
forced in using configure, it will take precedence.
2018-12-08 20:13:27 +01:00
Michael Lutz
4bf216993a Add: [OSX] Native text caret handling. 2018-12-08 20:13:27 +01:00
Michael Lutz
8d7cd6a526 Add: [OSX] Native natural sort implementation. 2018-12-08 20:13:27 +01:00
Michael Lutz
05a93c121c Fix: [OSX] Macro redefinition warning. 2018-12-08 20:13:27 +01:00
translators
c63f0b3005 Update: Translations from eints
chinese (simplified): 28 changes by ww9980
spanish: 12 changes by SilverSurferZzZ
2018-12-08 19:45:43 +01:00
translators
cd44e33f4e Update: Translations from eints
spanish: 4 changes by SilverSurferZzZ
portuguese: 2 changes by Samu
2018-12-07 19:45:44 +01:00
translators
587c2149b6 Update: Translations from eints
croatian: 23 changes by VoyagerOne
spanish: 8 changes by SilverSurferZzZ
2018-12-03 19:45:44 +01:00
Michael Lutz
3b8db31a49 Fix: [Win32] Align sprite glyphs to the font baseline when using Uniscribe text layout. 2018-12-01 11:57:14 +01:00
translators
88894166e8 Update: Translations from eints
italian: 23 changes by lorenzodv
spanish: 2 changes by SilverSurferZzZ
2018-11-29 19:45:43 +01:00
comicsads
b93fad7481 Fix: Spelling in code comment (#6984) 2018-11-28 16:24:01 +01:00
Greg-21
d64a0a6696 Update: Removed several obsolete known bugs 2018-11-27 20:55:19 +01:00
Greg-21
206694a4f2 Doc: Removed "FS" from issue number
Because FlySpray is no longer the main bug tracking system.
2018-11-27 20:55:19 +01:00
Greg-21
59e4913a0f Doc: Changed several things in known-bugs file
Converted "tabs" to "spaces", changed the order based on the numbering of bugs, made that lines end closer to the 80th character column, changed "Mac OS X" to "macOS", and several other less important changes.
2018-11-27 20:55:19 +01:00
translators
eab3aa16aa Update: Translations from eints
spanish: 3 changes by SilverSurferZzZ
2018-11-27 19:45:42 +01:00
damfr
868c6f924a Add: Filter box to the save and load windows (#6974)
Save and heightmap names can be filtered.
2018-11-25 20:54:25 +01:00
translators
af4a21bd82 Update: Translations from eints
korean: 4 changes by telk5093
spanish: 3 changes by SilverSurferZzZ
russian: 8 changes by Lone_Wolf
2018-11-25 19:45:41 +01:00
Niels Martin Hansen
9e30fbab34 Fix #6864: Normalise colour use in Frame rate window 2018-11-25 17:27:53 +01:00
Niels Martin Hansen
cb1fcc4765 Doc: More notes for developers adding new PerformanceElements 2018-11-25 00:49:33 +01:00
Niels Martin Hansen
1ee20fac9a Codechange: Wrong name for include guard 2018-11-25 00:49:33 +01:00
Niels Martin Hansen
810887af30 Fix #6498: Use int64 for all company rating calculations 2018-11-25 00:48:34 +01:00
Niels Martin Hansen
c618a7c093 Fix 6298b96: Changing music set did not save new setting 2018-11-25 00:47:56 +01:00
Niels Martin Hansen
c84b9913bd Fix #6676: Prevent helicopters from stopping in midair during some kinds of landing
This adds a new flag that gets stored in the savegame, but it should still be compatible both ways, hence no save version bump.
2018-11-25 00:47:34 +01:00
translators
f35a59fd38 Update: Translations from eints
spanish (mexican): 2 changes by Absay
2018-11-24 19:45:43 +01:00
translators
16a36dffa0 Update: Translations from eints
spanish: 2 changes by SilverSurferZzZ
2018-11-21 19:45:42 +01:00
Niels Martin Hansen
476643bfa5 Remove: Visual Studio project files for earlier than 2015 2018-11-18 19:51:51 +01:00
Niels Martin Hansen
86bea59962 Update: Add missing newline at end of some project files 2018-11-18 19:51:51 +01:00
frosch
1a1204472e Revert: Sprite sorting optimisation sorted incorrectly.
This reverts commit 25ab9c1997.
2018-11-18 17:30:28 +01:00
Niels Martin Hansen
68e6b5531a Update: Developer credits 2018-11-17 21:05:07 +01:00
Charles Pigott
6accbf9afc Fix #6969: Account for BOM when reading script files 2018-11-17 16:05:10 +01:00
translators
278a705bbb Update: Translations from eints
indonesian: 41 changes by UseYourIllusion
2018-11-14 19:45:40 +01:00
translators
71cda6ca1d Update: Translations from eints
spanish: 10 changes by SilverSurferZzZ
2018-11-13 19:45:42 +01:00
translators
6950ea0ba7 Update: Translations from eints
indonesian: 18 changes by UseYourIllusion
2018-11-12 19:45:40 +01:00
translators
16cc482d57 Update: Translations from eints
croatian: 2 changes by VoyagerOne
2018-11-08 19:45:43 +01:00
Greg-21
4ba73dac95 Doc: Changed several files to unificate them... (#6964)
...with those from release 1.8 branch.
2018-11-06 00:38:42 +01:00
translators
ccd9d77b94 Update: Translations from eints
italian: 2 changes by lorenzodv
2018-11-04 19:45:42 +01:00
Niels Martin Hansen
9b560eaa51 Fix: Industry chain window layout no more unnecessarily large when the number of cargoes in/out isn't large either 2018-11-03 21:43:54 +01:00
Niels Martin Hansen
e66cec8f86 Add: NewGRF support for 16-in-16-out industries 2018-11-03 21:43:54 +01:00
Niels Martin Hansen
8859381d30 Add: Industries can produce and accept up to 16 different cargoes 2018-11-03 21:43:54 +01:00
translators
32b9ee7063 Update: Translations from eints
latvian: 3 changes by krixis02
2018-11-03 19:45:42 +01:00
Niels Martin Hansen
81b2ddd0ab Fix: Fluidsynth should not be added to VC project files 2018-11-01 23:20:44 +01:00
Charles Pigott
0c619b7c4b Add: Fluidsynth music driver support (jmak) 2018-11-01 18:06:38 +01:00
Samu
1e68b9b3e6 Add: AI/GS GetMonthlyMaintenanceCost (#6897)
API addition which allows AI/GS scripts to retrieve the monthly maintenance cost of an airport type.
2018-11-01 18:06:08 +01:00
SamuXarick
4703cd433d Fix #6460: [AI] Add start_date parameter for Random AIs on new game 2018-11-01 17:56:09 +01:00
Oskari Leppäaho
b3b89257f7 Remove: Unused string "STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION" 2018-10-31 19:24:21 +01:00
Joost Hopmans
5029cd6f28 Fix: Only possible to build station next to competitors by using CTRL+click
Fix by checking only for stations owned by the current company when
inspecting if there are multiple adjoining stations to the one being built.

When building next to 2 or more owned stations we don't know which
station should be extended. For other companies' stations that's not a
problem since our station won't merge with theirs anyway.

Calling to BuildStationPart should never have another company's station
as a parameter to attach to unless the client is malicious, so just returning
a generic error in that case.
2018-10-31 19:24:21 +01:00
frosch
18ca3e8660 Fix: [NewGRF] Make VA2 operator 11 (ror) behave well-defined when rotating by 0 bits. 2018-10-31 14:35:46 +01:00
Alexander Weiss
b3dc90af58 Change: Clone tool in depot window now behaves like clone button in vehicle window. Keep the tool active when share-cloning. Open the vehicle GUI when copy-cloning. (#6754) 2018-10-31 12:51:10 +01:00
SamuXarick
264e60529f Change: Gradually slow down aircraft speed on breakdown (#6932) 2018-10-31 12:45:23 +01:00
Charles Pigott
bb7353c02a Codechange: Some more null checks 2018-10-31 12:41:49 +01:00
Charles Pigott
1778b2d66e Codechange: Merge some duplicated functions 2018-10-31 12:41:49 +01:00
Charles Pigott
ca5f73b196 Codechange: Turn a define into a constant 2018-10-31 12:41:49 +01:00
Charles Pigott
b5028efc1f Fix: Protect against a few out of bounds or uninitialised usage errors 2018-10-31 12:41:49 +01:00
Charles Pigott
52ed3bcbaa Remove: A few bits of dead code 2018-10-31 12:41:49 +01:00
Charles Pigott
e0c0394e37 Fix: Remove various dead or unnecessary assignments 2018-10-31 12:41:49 +01:00
Charles Pigott
f5b1115039 Doc: Lots and lots of doxymentation fixes 2018-10-31 12:35:54 +01:00
Charles Pigott
b9273cbe07 Update: Doxyfile 2018-10-31 12:35:54 +01:00
Niels Martin Hansen
f3dbb3f676 Fix #6951: Ensure RailTypes bitfield is always treated as 64 bit
Some compilers (like VC++ 2015) will otherwise narrow it in some contexts where it should not be.
2018-10-30 21:46:28 +01:00
Niels Martin Hansen
350395a6c2 Fix: Missing m8 data in console when using Query tool
When map array 8 was added, the Query tool wasn't updated to also
print the value there to the console, in debug builds.
2018-10-30 16:33:07 +01:00
Niels Martin Hansen
50efaa2372 Fix e00908f: Visual C++ 2015 compile error
Microsoft Visual C++ 2015 Update 3 (and possibly other versions) consider a struct member undefined in a
static_assert in the struct body. Moving the static_assert to a member function solves the issue.
2018-10-27 10:30:24 +02:00
Jindrich Makovicka
25ab9c1997 Codechange: Improve (un)zoom performance
When zooming out with a high res display, there can be about 150k sprites
to be sorted before displaying. With the O(n^2) complexity of the sprite
sorter, this can take several seconds.

This patch works around this by sorting the sprites by the xmin coordinate
first using QSort, which later allows an early bailout out of the inner
loop. This is enough to cut down the full unzoom time on a 4k display to a
fraction of second.
2018-10-26 20:22:38 +02:00
translators
47ff673664 Update: Translations from eints
finnish: 25 changes by ln
2018-10-26 19:45:42 +02:00
Samu
eff09c43cd Fix #4109: Add more water checks to the Oil Rig layout
Prevents Oil Rig docking tile from becoming unreachable by ships when spawning next to each other.
2018-10-25 20:09:42 +02:00
translators
bddf25c36a Update: Translations from eints
portuguese (brazilian): 66 changes by Tucalipe
2018-10-23 19:45:44 +02:00
Miguel Horta
42b00c3b39 Fix #6938: Don't change company value to perform cost estimations (#6939)
These meddling kids dared to play with magic, but the ancients texts
weren't ready for that.
Refactors logic to estimate costs that dated to even before OpenTTD 0.1;
2018-10-13 13:34:57 +02:00
Miguel Horta
e00908f5e9 Fix #6898: Replace atoi() with strtoul()
Normalize type and parsing of generation_seed across all files
Add assert_compile() to ensure correct type
2018-10-11 20:22:31 +01:00
translators
fbfa4eb592 Update: Translations from eints
polish: 3 changes by xaxa
2018-10-08 19:45:44 +02:00
translators
9cf999bca7 Update: Translations from eints
korean: 2 changes by telk5093
2018-10-03 19:45:41 +02:00
translators
8a70101e7f Update: Translations from eints
vietnamese: 63 changes by myquartz
2018-10-02 19:45:40 +02:00
translators
25a060b4ae Update: Translations from eints
vietnamese: 2 changes by myquartz
2018-10-01 19:45:43 +02:00
Johannes E. Krause
662dcc3c31 Fix #6920: Make 9.8m/s^2 a common constant for TE-calculation 2018-09-30 20:45:41 +02:00
translators
060248a422 Update: Translations from eints
spanish (mexican): 2 changes by Absay
2018-09-24 19:45:43 +02:00
Stefan Strogin
fec44b0d09 Fix #6854: Compilation with ICU 62 (#6912) 2018-09-20 22:36:45 +02:00
SamuXarick
41fb7cb15e Fix #6892: [Script] CONFIG_RANDOM did not use the full parameter range (#6902) 2018-09-20 22:31:38 +02:00
translators
59a1614ba0 Update: Translations from eints
czech: 27 changes by djst
croatian: 1 change by VoyagerOne
italian: 1 change by lorenzodv
2018-09-19 19:45:44 +02:00
Max Maton
eed0da60a2 Fix #6622: Fixes empty company name in news when gamescript constructs a town 2018-09-18 18:35:26 +02:00
Samuel Cochran
1a73c39838 Add: BACKSPACE can be mapped as a hotkey 2018-09-16 11:36:25 +02:00
Charles Pigott
ca5b68145a Fix #6839: OLD_GM_DIR midi search path got lost (#6900) 2018-09-12 09:19:06 +02:00
translators
94961732a3 Update: Translations from eints
basque: 4 changes by Thadah
2018-09-07 19:45:44 +02:00
translators
8137d14d33 Update: Translations from eints
russian: 1 change by Lone_Wolf
2018-09-06 19:45:43 +02:00
Niels Martin Hansen
bb086f9240 Fix: Better "temp" path for decoded MPSMIDI files when source filename has no path separators 2018-09-03 21:57:04 +02:00
Niels Martin Hansen
560b01f307 Fix: Check the search paths for standard MIDI files 2018-09-03 21:57:04 +02:00
Michael Lutz
4b0b4e0643 Feature: [NewGRF] Increase size of persistent storage to 256. 2018-09-02 21:31:15 +02:00
frosch
6391d49277 Fix: Variable 0x85 had no bounds checks. 2018-09-02 21:15:54 +02:00
translators
703e7f8fc7 Update: Translations from eints
spanish (mexican): 1 change by Absay
2018-08-17 19:45:42 +02:00
Jonathan G Rennison
df92a056df Fix #6875: Depot building cost does not include foundation build cost (#6883) 2018-08-14 22:05:47 +02:00
Jonathan G Rennison
d839526365 Fix bf8d7df: Script/AI construction of rail track and waypoints (#6881) 2018-08-12 09:45:38 +02:00
translators
50d930298d Update: Translations from eints
croatian: 1 change by VoyagerOne
2018-08-11 19:45:42 +02:00
translators
a53e4d8fe5 Update: Translations from eints
dutch: 137 changes by mrLeopold
2018-08-09 19:45:42 +02:00
translators
27c4f5517f Update: Translations from eints
dutch: 115 changes by mrLeopold
2018-08-08 19:45:45 +02:00
translators
004f54f4c8 Update: Translations from eints
hebrew: 23 changes by dnd_man
french: 45 changes by glx
2018-08-07 19:45:41 +02:00
af043df5a3 Fix: Some pixels in ship autoreplace icon (sprite 106) were transparent. 2018-08-06 19:22:44 +01:00
Patric Stout
5df3a65074 Add: notify IRC about pull-requests and issues 2018-08-05 17:46:30 +02:00
Patric Stout
74eb77f0a8 Add: notify IRC about pushes to this repository 2018-08-04 22:43:54 +02:00
translators
b34a1f372f Update: Translations from eints
italian: 1 change by lorenzodv
2018-08-04 19:45:41 +02:00
J0an Josep
67f6bcdc9b Fix #6805: Update CmdBuilRailWaypoint bits. 2018-08-04 08:59:22 +02:00
J0an Josep
a53f13cff6 Fix #6805: Clear some m8 bits when making some tiles. 2018-08-04 08:59:22 +02:00
J0an Josep
8c0a6bbc4f Fix: (Doc) Use free bits and -inherit- more consistently in landscape grid. 2018-08-04 08:59:22 +02:00
J0anJosep
41a620c1a7 Fix #6805: (Doc) Road depot and stations (except rail stations and waypoints) do not use m8 for railtype. 2018-08-04 08:59:22 +02:00
ScumbagDog
16cf577b61 Feature: Added New Russian Ruble as currency (#6678) 2018-08-04 08:58:50 +02:00
translators
76f788124b Update: Translations from eints
latvian: 8 changes by krixis02
2018-08-03 19:45:40 +02:00
translators
4bd281cef3 Update: Translations from eints
korean: 44 changes by telk5093
2018-07-30 19:45:41 +02:00
Niels Martin Hansen
9627577596 Fix: HouseSpec::watched_cargoes not 64 bit
Looks like HouseSpec::watched_cargoes was missed in the conversion to 64 cargo types.
2018-07-29 17:12:56 +02:00
translators
64dac65e20 Update: Translations from eints
spanish (mexican): 1 change by Absay
2018-07-28 19:45:41 +02:00
translators
b885f62676 Update: Translations from eints
croatian: 44 changes by VoyagerOne
polish: 6 changes by xaxa
2018-07-26 19:45:41 +02:00
bf8d7df736 Change: Extend rail types to 64 (6 bit storage) 2018-07-26 13:27:40 +01:00
5db883fbe9 Change: Move rail type bits from m3 to m8. 2018-07-26 13:27:40 +01:00
65548c37a8 Change: Extend map array by 2 bytes with a uint16. 2018-07-26 13:27:40 +01:00
translators
8090580f77 Update: Translations from eints
spanish (mexican): 25 changes by Absay
2018-07-25 19:45:41 +02:00
glx
a4eccd8076 Fix: dmusic compilation with MSYS2/MINGW 2018-07-24 21:39:21 +02:00
glx
d418d30947 Fix: dmusic detection 2018-07-24 21:39:21 +02:00
J0an Josep
8975318286 Fix 2a868b9f3b: Expose widgets and windows to scripts and fix documentation. 2018-07-23 20:32:18 +02:00
translators
0bca1c53c9 Update: Translations from eints
spanish (mexican): 19 changes by Absay
2018-07-23 19:45:41 +02:00
Jonathan G Rennison
6a3d411fa1 Fix: Use after free in CmdBuildTunnel (#6856)
Use after free could occur when when excavating far end
removed multiple NewGRF objects
2018-07-22 21:58:05 +02:00
translators
38443bab0b Update: Translations from eints
catalan: 2 changes by juanjo
russian: 9 changes by Lone_Wolf
2018-07-22 19:45:41 +02:00
Jonathan G Rennison
8fc1517515 Codechange: detect native Apple clang correctly in config.lib #6773
Fixes: 00c1603256
2018-07-22 15:15:54 +01:00
Michael Lutz
bc1b34d1a2 Add: GDPR notice to contributing guide and a matching pull request template.
Contents is adapted from the https://github.com/rsyslog/rsyslog project, which has mainly European contributors.
2018-07-22 11:47:31 +02:00
translators
2f5cb9e4fc Update: Translations from eints
catalan: 63 changes by juanjo
2018-07-21 19:45:40 +02:00
translators
6a6ffddc5f Update: Translations from eints
greek: 46 changes by kyrm
italian: 44 changes by lorenzodv
2018-07-20 19:45:40 +02:00
Niels Martin Hansen
2a868b9f3b Feature: Framerate display window (#6822)
Frame rate and various game loop/graphics timing measurements and graphs. Accessible via the Help menu, and can print some stats in the console via the fps command.
2018-07-19 21:17:07 +02:00
Charles Pigott
a3d1950b65 Codechange: Ensure that -lfreetype is always last when linking statically
Fixes weird bug with MinGW
2018-07-19 20:24:17 +02:00
Charles Pigott
63898f61b0 Codechange: Rearrange struct packing defines and make MinGW use _Pragma pack style 2018-07-19 20:24:17 +02:00
translators
93469a92f2 Update: Translations from eints
korean: 3 changes by kevinhigh
2018-07-18 19:45:40 +02:00
translators
3014213186 Update: Translations from eints
malay: 11 changes by eidan_shafie
2018-07-17 19:45:39 +02:00
translators
f70544074c Update: Translations from eints
latin: 19 changes by Supercheese
english (us): 19 changes by Supercheese
2018-07-11 19:45:41 +02:00
translators
85ef5acf29 Update: Translations from eints
malay: 10 changes by eidan_shafie
spanish (mexican): 9 changes by Absay
2018-07-10 19:45:40 +02:00
translators
ae13f88c12 Update: Translations from eints
malay: 9 changes by eidan_shafie
2018-07-09 19:45:37 +02:00
translators
8bbf06e0d4 Update: Translations from eints
belarusian: 7 changes by KorneySan
russian: 7 changes by Lone_Wolf
2018-07-08 19:45:37 +02:00
translators
5a11c6a036 Update: Translations from eints
russian: 6 changes by Lone_Wolf
2018-07-07 19:45:37 +02:00
Ingo von Borstel
88b77a7883 Fix #6844: Compile warning when compiling dedicated server (#6849) 2018-07-07 18:48:17 +02:00
translators
2ed0e30a8f Update: Translations from eints
malay: 37 changes by eidan_shafie
2018-07-05 19:45:41 +02:00
translators
f86dc6867e Update: Translations from eints
serbian: 37 changes by Srbija
2018-07-04 19:45:39 +02:00
translators
210afa3701 Update: Translations from eints
serbian: 23 changes by Srbija
greek: 6 changes by Jubilee
russian: 1 change by Lone_Wolf
danish: 7 changes by filli1303
finnish: 21 changes by ln
2018-07-03 19:45:42 +02:00
Jonathan G Rennison
491a884944 Fix: ALL_CARGOTYPES mask constant was 32 instead of 64 bits (#6845)
NUM_CARGO and CargoTypes were increased from 32 to 64 cargoes/bits
respectively in commit 11ab3c4ea2
2018-07-02 22:47:55 +02:00
translators
4a35409e0f Update: Translations from eints
italian: 1 change by lorenzodv
2018-07-02 19:45:39 +02:00
translators
8f278b3405 Update: Translations from eints
croatian: 4 changes by VoyagerOne
2018-07-01 19:45:40 +02:00
Niels Martin Hansen
6cf4d7d3ef Fix: Put last SVN revision back in NewGRF version number (#6843)
This is necessary to be compatible with some Game Scripts that might trigger compatibility modes if the SVN revision part is wrong. Potentially some NewGRFs might also be affected.

See for example [SuperLib's Helper class](https://dev.openttdcoop.org/projects/superlib/repository/entry/helper.nut#L280), containing this function:

    function _SuperLib_Helper::HasWorldGenBug()
    {
    	local version = _SuperLib_Helper.GetOpenTTDVersion();
    
    	if (version.Major == 0 || (version.Major == 1 && version.Minor <= 3)) {
    		return version.Revision < 25339;
    	} else {
    		return version.Revision < 25305;
    	}
    }

If this function sees a Revision value of zero, it might trigger a workaround not required, causing a regression in scripts dependent on this. The MinimalGS example, for one, will trigger this.
2018-07-01 12:15:00 +02:00
J0anJosep
4189cb85ba Codechange: Use HasTracks with TrackStatus. 2018-06-27 23:14:30 +02:00
J0anJosep
d01c09fb73 Codechange: Use HasTrack(dir) to improve code readability. 2018-06-27 23:14:30 +02:00
J0anJosep
31ac11bddb Codechange: Increase readability of track functions and pathfinders. 2018-06-27 23:14:30 +02:00
Juanjo
85ebe20a76 Cleanup: Unnecessary assignation on FollowTileExit(): done previously on the function. 2018-06-27 23:14:30 +02:00
Juanjo
6a9df285d0 Codechange: Separate an assertion. More information if assert is triggered. 2018-06-27 23:14:30 +02:00
Charles Pigott
2aacddd412 Codechange: lengthof is not defined for runtime-length strings, use sizeof instead 2018-06-27 22:54:46 +02:00
Charles Pigott
5f86e1a390 Codechange: Silence -Wclass-memaccess warnings with GCC8 2018-06-27 22:54:46 +02:00
Charles Pigott
e1b9187e9b Codechange: Add initialisation values for all CompanyProperty attributes 2018-06-27 22:54:46 +02:00
Michael Lutz
dbfc417e65 Fix: [Win32] Garbage in OS window title if branch name was too long.
This was caused by a missing \0-character on reaching the buffer limit.
2018-06-27 22:16:43 +02:00
translators
6c02c19931 Update: Translations from eints
italian: 3 changes by lorenzodv
2018-06-27 19:45:41 +02:00
11ab3c4ea2 Change: Increase cargo type limit to 64. 2018-06-26 13:32:58 +01:00
translators
7eca4a9b47 Update: Translations from eints
french: 5 changes by glx
2018-06-25 19:45:40 +02:00
Niels Martin Hansen
336d6cab68 Fix 6298b96: Playlist window not drawing playlist
Copy-paste error in change to remove C++11 usage...
2018-06-25 00:00:56 +02:00
Pavel Stupnikov
9fc3212679 Feature #6397: Keep town growth rate in sync with house count
Takes some code and ideas from #6378 patch, but doesn't change anything GS-related.
2018-06-24 20:55:48 +02:00
Jonathan G Rennison
dc8fff2c4d Add: Hover tool-tips to cargo dest flow legend window.
This is to improve the usability of the window.
The two-letter abbreviations are not always clear, in particular
when using a large number of cargoes.
The company colours can be ambiguous when there are a large
number of companies.
2018-06-24 20:18:10 +02:00
Niels Martin Hansen
6298b96571 Change: Modernise music control logic implementation (#6839)
Rewrite of almost the entire music control logic to a more modern style, hopefully also easier to understand. The old playlist handling made it look like arcane magic, which it doesn't have to be.

- Playlists are now stored in std::vector of objects instead of arrays of bytes with magic sentinel values, that need to be rotated around all the time. Position in playlist is stored as a simple index.
- The theme song is now reserved for the title screen, it doesn't play on any of the standard playlists, but is still available for use on custom playlists.
- When the player enters/leaves the game from the main menu, the music always restarts.
- Playback state (playing or not) is kept even if music becomes unavailable due to an empty playlist (or an empty music set), so it can restart immediately if music becomes available again.
- The shuffle algorithm was changed to a standard Fisher-Yates.
- Possibly better behavior when editing a custom playlist while it's playing.
- Custom playlists should be compatible.
- Framework for supporting custom playlists with songs from multiple music sets.
2018-06-24 20:06:05 +02:00
translators
889175f7ad Update: Translations from eints
croatian: 1 change by VoyagerOne
italian: 1 change by lorenzodv
french: 1 change by glx
2018-06-24 19:45:46 +02:00
Jonathan G Rennison
458bc90678 Fix: Poor contrast in cargo dest flow legend window cargo labels.
Select foreground colour depending on the brightness of the background.

Previously all cargo labels were rendered using black text, even
the background cargo colour was dark/black.
As an example: FIRS coal was black text on a black background.
2018-06-24 19:32:04 +02:00
Alberth
7fed8fe004 Fix #6553: Make viewport button text unambiguous. 2018-06-24 15:03:06 +02:00
Greg-21
38f29fd5d6 Update: Updated changelog based on... (#6835)
...the changelog in release 1.8 branch.
2018-06-24 00:56:11 +02:00
Greg-21
388bca6a42 Update: Changed some things in Readme file
Changed HTTP links to HTTPS, fixed some links to articles on OpenTTD Wiki, added Windows 10 and 8.1 to info section about path structure in these OSes, removed some
unnecessary whitespaces (and added several others), and some other less important changes.
2018-06-23 15:28:55 +02:00
Niels Martin Hansen
4fb76db42f Feature #986: Automatic save when losing connection to a network game 2018-06-23 15:22:31 +02:00
Alberth289346
11ba094582 Feature #4186: Append '(City)' behind cities in the town directory (sbr) 2018-06-23 14:02:50 +02:00
Alberth
1a5a95aa49 Fix: Make switch on MD5File::ChecksumResult complete to avoid compiler warning 2018-06-23 14:00:41 +02:00
translators
21ac11548a Update: Translations from eints
korean: 1 change by telk5093
2018-06-22 19:45:39 +02:00
glx
10d8b83038 Fix: library detection on MSYS2 file system 2018-06-17 21:56:46 +02:00
Michael Lutz
ae467ffc8a Fix: Scale default FreeType font size selection by UI zoom level. 2018-06-17 12:59:59 +02:00
translators
4099506093 Update: Translations from eints
chinese (simplified): 5 changes by xiangyigao
2018-06-16 19:45:39 +02:00
Michael Lutz
574f547aca Fix 768a31b: When cascading to another text layouter, clear the old font run state left over from the previous (failed) layout attempt. 2018-06-16 11:04:03 +02:00
Niels Martin Hansen
5ab06ef8a3 Fix: Don't complain if CAT music files are missing entirely
Just complain if an index into a CAT file that exists is invalid.
2018-06-15 23:09:17 +02:00
Niels Martin Hansen
a1b7812c7e Change: Improved looping of title song 2018-06-15 23:09:17 +02:00
Niels Martin Hansen
11a846e3d5 Change: Compensate for MIDI transmission time when skipping start of song 2018-06-15 23:09:17 +02:00
Niels Martin Hansen
276192f714 Change #6684: Cutting point overrides for music base sets
This improves bad looping of title screen song from Windows TTD, and fixes
a long silence at the end of "Can't get there from here" from Windows TTD.
2018-06-15 23:09:17 +02:00
Niels Martin Hansen
836d25e738 Codechange: Address some MSVC compiler warnings 2018-06-15 22:36:55 +02:00
translators
f5f2125238 Update: Translations from eints
russian: 11 changes by Lone_Wolf
2018-06-15 19:45:39 +02:00
c2a7728084 Fix: Prevent ships moving into docks after finishing (un)loading. (#6791) 2018-06-14 09:25:39 +01:00
translators
7ae1e3e1e2 Update: Translations from eints
korean: 15 changes by telk5093
greek: 4 changes by Jubilee
2018-06-12 19:45:40 +02:00
translators
470ed2643e Update: Translations from eints
croatian: 4 changes by VoyagerOne
french: 3 changes by glx
polish: 2 changes by McZapkie
2018-06-08 19:45:41 +02:00
Andy
11d1690acb Doc: note in README licensing section that CONTRIBUTING.md is adapted from Bootstrap (#6818) 2018-06-07 22:00:01 +02:00
translators
20b0f0f90b Update: Translations from eints
italian: 3 changes by lorenzodv
2018-06-07 19:45:38 +02:00
Jonathan G Rennison
71450881fc Codechange: Avoid call to memcpy using null pointer in TooltipsWindow constructor
Strictly speaking, calling memcpy with src as a nullptr is undefined behaviour
and the optimiser is entitled to delete any null ptr checks which occur afterwards.
This removes the warning emitted by UndefinedBehaviorSantizer.
2018-06-07 09:49:26 +01:00
Michael Lutz
cd966f3810 Add: [Win32] Uniscribe configure options for MinGW targets. 2018-06-06 21:37:09 +02:00
Michael Lutz
eec3f40931 Change: [Win32] Use Uniscribe instead of ICU for text caret handling.
This removes the need for the ICU lib on Windows.
2018-06-06 21:37:09 +02:00
Michael Lutz
33829dc6ab Change: [Win32/MSVC] Make the Uniscribe text layouter the windows default and remove usage of the deprecated ICU layout libs. 2018-06-06 21:37:09 +02:00
Michael Lutz
768a31bfe3 Add: [Win32] Text layout using the native Windows Uniscribe library.
Uniscribe is sometimes producing different results compared to ICU, especially
when RTL and LTR content is mixed. Comparing the results to other programs
(like editors or web browsers) leads me to believe that the result are at least
not worse than ICU and possibly better.
2018-06-06 21:37:09 +02:00
Michael Lutz
a4278c302b Codechange: Move ParagraphLayouter-specific functions into factory classes instead of relying on overloads. 2018-06-06 21:37:09 +02:00
Michael Lutz
f4394debdc Add: [Win32] Native natural sort implementation. 2018-06-06 21:37:09 +02:00
translators
2b662b448c Update: Translations from eints
french: 1 change by glx
2018-06-06 19:45:38 +02:00
Alexis
25dbc6542c Fix #6659: Bus stations can be demolished when not in demolish mode (#6815)
For Bus and Road stations only, if you are in demolish mode and click on the station
without releasing the button. Then you cancel demolish mode with R key.
Finally you release the mouse button. The station was demolished, instead of being built.

The demolish mode was not checked when mouse up event occured.
2018-06-06 13:08:22 +01:00
Jonathan G Rennison
0bd1022238 Codechange: Change element type used for rail type usage stats array in SetDefaultRailGui
The array is rail type sized in terms of number of elements.
Each element should be a unsigned integer, not a rail type itself.
This fixes runtime warnings reported by UndefinedBehaviorSanitizer.
2018-06-06 11:02:50 +01:00
408cee123d Fix: One-way roads could be over-built by road stops (regardless of road owner.) 2018-06-06 07:20:46 +01:00
Niels Martin Hansen
e7ce490155 Update: Install DOS music data in Windows installer 2018-06-05 22:58:35 +02:00
Niels Martin Hansen
5de2628862 Update: Document DOS music loading 2018-06-05 22:58:35 +02:00
Niels Martin Hansen
a8080f14a9 Change: DOS music loading for non-Windows music drivers 2018-06-05 22:58:35 +02:00
Niels Martin Hansen
458e441a4c Codechange: Make FioCreateDirectory public 2018-06-05 22:58:35 +02:00
Niels Martin Hansen
e2fa4b71c6 Feature: Console command to dump decoded music to .mid file 2018-06-05 22:58:35 +02:00
Niels Martin Hansen
921101ed06 Feature: Baseset music for TTD DOS and TTO data 2018-06-05 22:58:35 +02:00
Niels Martin Hansen
2ae9df7248 Feature: Decoder for DOS version music
This is based on reverse-engineering the TTD DOS driver for General MIDI music.
2018-06-05 22:58:35 +02:00
Niels Martin Hansen
f946b3da56 Codechange: Pass a MusicSongInfo struct instead of bare filename to music drivers.
Preparation for later extending the info passed to music drivers.
2018-06-05 22:58:35 +02:00
translators
1c2d29e1a3 Update: Translations from eints
italian: 1 change by lorenzodv
2018-06-05 19:45:38 +02:00
eaa32f5ad5 Change: Use name of cargo instead of Passengers/Mail in town statistics. (#6801)
* Change: Use name of cargo instead of Passengers/Mail in town statistics.
* Cleanup: Remove strings from all language files.
2018-06-04 13:14:11 +01:00
Michael Lutz
b91e85003e Fix: Theoretical string overflow when building the cargo acceptance list for the land info window. 2018-06-03 22:36:27 +02:00
Andy
d86416af7a Doc: Instructions for symlinking commit hooks didn't work on (at least) OS X. 2018-06-03 22:04:15 +02:00
Alexander Weiss
2406500140 Fix: [OSX] Minor 2D scrolling fixes (#6793)
* Codechange: Check for scrollwheel_scrolling first when scrolling viewport instead of first setting normal values and then overwriting them.

* Fix #6558: [OSX] Reset 2D scrolling values when not scrolling to prevent unintended window focus changes

* Change: [OSX] Include initial scrolling movement when using 2D scrolling to make it more responsive

* Fix: [OSX] 2D scrolling not working when setting viewport scroll behaviour to use left mouse button
2018-05-29 09:44:33 +01:00
Alexander Weiss
3e910a5969 Change: [OSX] Disable macOS Sierra's automatic tab feature 2018-05-27 16:01:08 +02:00
Michael Lutz
a6300fe70b Change: [Win32] Enable DirectMusic driver for Win64. 2018-05-26 22:28:01 +02:00
Michael Lutz
ce51e54d26 Change: [Win32] Parse and load DLS files for the DirectMusic driver without relying on high-level functions. 2018-05-26 22:28:01 +02:00
Michael Lutz
255549250f Change: [Win32] Replace the current high-level Direct Music driver with a low-level driver that directly works with MIDI data.
This allows using different music sources besides standard MIDI files on disk.
2018-05-26 22:28:01 +02:00
Michael Lutz
3fc9c9522d Codechange: [Win32] Use a local buffer to store the output text of DEBUG() to make the call thread-safe. 2018-05-26 22:28:01 +02:00
Alexander Weiss
e1a164b531 Change: [OSX] Setting mouse-wheel to scroll the map does not disable pinch to zoom 2018-05-24 21:31:37 +02:00
Alexander Weiss
6df7ced343 Change: [OSX] Reversed pinch to zoom behaviour.
Made pinch out zoom in and pinch in zoom out, as virtually all macOS
applications do.
2018-05-24 21:31:37 +02:00
Jonathan G Rennison
17257b9620 Add: 32bpp SSE2 blitter palette animator (#6795)
Create a new blitter mode: 32bpp-sse2-anim, which is 32bpp-anim + this.
32bpp-sse2-anim is now used by default where 32bpp-anim would have been.
Also use this with the 32bpp-sse4-anim blitter.

See issue #6469.
2018-05-23 09:55:04 +01:00
translators
306b999cf4 Update: Translations from eints
polish: 5 changes by xaxa
2018-05-22 19:45:44 +02:00
a07394a63a Change: Remove direction parameter from Vehicle::UpdateDeltaXY. (#6792)
The value is either unused or always the same as this->direction.
2018-05-22 18:43:34 +01:00
4cebebcf68 Change: Add CargoTypes type for cargo masks. (#6790) 2018-05-21 22:08:39 +01:00
42b43c9983 Change: Available railtypes is always calculated on load, so no need to load value for old savegames (#6782) 2018-05-19 22:31:46 +01:00
cad47bbefe Fix: Tractive effort was slightly too high as per NewGRF spec. (#6785) 2018-05-19 22:05:51 +01:00
8a7de36463 Change [#6689]: Tweak HashTable hash calculation to reduce collisions. (kernigh2) (#6786) 2018-05-19 22:04:25 +01:00
Owen Rudge
7bd2fa3516 Feature: Add XAudio2 driver 2018-05-17 15:06:37 +01:00
translators
fb54dd04a1 Update: Translations from eints
greek: 8 changes by Jubilee
2018-05-12 19:45:40 +02:00
translators
d738e980d0 Update: Translations from eints
dutch: 1 change by mrLeopold
2018-05-11 19:45:40 +02:00
translators
7935ac16d1 Update: Translations from eints
dutch: 1 change by mrLeopold
2018-05-10 19:45:39 +02:00
q--
228f8fba55 Doc: fix formatting and typo in README.md 2018-05-02 21:12:21 +02:00
q--
663ab7450f Doc: Update issue tracker URL in known-bugs.txt 2018-05-02 21:12:21 +02:00
Pavel Stupnikov
fef8b831a9 Change: Switch town growth rate and counter to actual game ticks (#6763) 2018-05-02 21:01:30 +02:00
translators
61515c9abd Update: Translations from eints
belarusian: 10 changes by KorneySan
russian: 6 changes by KorneySan
spanish (mexican): 10 changes by Absay
2018-05-02 19:45:41 +02:00
Niels Martin Hansen
52655b5849 Change: [Win32 MIDI] Reset pitch bend range controllers on song change
Some songs (at least one in OpenMSX) use the MIDI pitch bend range controllers
but don't reset these at the end. This causes all subsequent songs to sound
wrong.
2018-05-01 22:29:53 +02:00
Niels Martin Hansen
99a39c842c Change: [Win32 MIDI] Send Roland reverb control message like TTD DOS does 2018-05-01 22:29:53 +02:00
Niels Martin Hansen
b902e01e10 Change #6685: Replace Win32 music driver with one not depending on MCI
MCI MIDI is poorly supported on newer versions of Windows and can cause large
delays at the beginning of tracks.

The new driver is based on a from-scratch reader for Standard MIDI Files. This
should be re-usable in other music drivers too, and can allow for finer control
of playback in general.

It also provides a better framework for reading MIDI data from other formats
than just SMF.
2018-05-01 22:29:53 +02:00
Michael Lutz
9959cd9522 Fix 0165fe1: Native OSX doesn't have a __BYTE_ORDER macro but defines a differently named macro. 2018-04-30 23:57:28 +02:00
Michael Lutz
bb5584c835 Fix 74b7f0a: [OSX] Mouse cursor getting occasionally stuck. 2018-04-30 23:57:28 +02:00
J0an Josep
cfb8092397 Fix b4b98e5165: Use FALLTHROUGH attribute with correct indentation. 2018-04-30 21:52:40 +02:00
translators
3f40cd505d Update: Translations from eints
croatian: 10 changes by VoyagerOne
italian: 4 changes by lorenzodv
french: 7 changes by glx
2018-04-30 19:45:40 +02:00
J0anJosep
79a551a83c Codechange: Use TileAddBy(Diag)Dir when possible. 2018-04-30 18:55:04 +02:00
Joan Josep
944f785be8 Fix: Spelling errors (#6769) 2018-04-30 18:52:32 +02:00
Matthijs Kooijman
fa87212a76 Fix: Some spelling errors in printed messages 2018-04-30 13:38:58 +02:00
Joan Josep
a6b18f0d92 Fix #6090: And (svn r27822). Run scripts for widgets. (#6765)
Fix 19f5a6cbb0, Fix 19d56a33e8: Run scripts to update GS for new widgets (#6765)
2018-04-30 12:25:11 +01:00
Patric Stout
eb2603a5e7 Fix: make generate[.vbs] produce the same result on Linux/Windows (#6764) 2018-04-29 21:30:45 +02:00
translators
a806424ec1 Update: Translations from eints
italian: 6 changes by lorenzodv
french: 6 changes by glx
russian: 9 changes by Lone_Wolf
2018-04-29 19:45:58 +02:00
Niels Martin Hansen
683b46a5b5 Cleanup: Remove unused strings from language files 2018-04-29 19:26:05 +02:00
Niels Martin Hansen
19f5a6cbb0 Feature #6090: Change music set during gameplay 2018-04-29 19:26:05 +02:00
Niels Martin Hansen
430e20f7e4 Fix: Clipping issues with volume sliders in Music GUI
Tested with various languages and GUI font sizes, should look good everywhere.

Also clamps near-end values to minimum and maximum so 0 and 127 are possible to achieve even on small GUI sizes (like the default.)
2018-04-29 19:26:05 +02:00
Niels Martin Hansen
bb809e35ce Change: Less intrusive "no music" message from Music window 2018-04-29 19:26:05 +02:00
Niels Martin Hansen
e172794947 Change: Disable music control buttons when there is no music 2018-04-29 19:26:05 +02:00
Niels Martin Hansen
76cccc64c9 Codechange: Music GUI comments and function naming 2018-04-29 19:26:05 +02:00
Patric Stout
0165fe1283 Codechange: remove endian_check in favour of __BYTE_ORDER macro (Rubidium) (#6762) 2018-04-29 19:01:28 +02:00
Patric Stout
aef69443e7 Remove: WinCE support 2018-04-29 15:32:16 +02:00
Patric Stout
85adde7485 Remove: PSP support 2018-04-29 15:32:16 +02:00
Pavel Stupnikov
8d8b9a026a Feature #6610: Allow towns to build houses on road turns (#6758) 2018-04-28 23:47:36 +02:00
cfe6a8ea4f Add: Replace independment map scrolling GUI settings with single option, and add choice to not lock cursor position when scrolling. (#6756) 2018-04-28 22:27:14 +01:00
Pavel Stupnikov
913119487f Feature: Add GS method to question a single client (#6748) 2018-04-28 17:37:59 +02:00
Pavel Stupnikov
8e4bce58ea Feature: GS methods to scroll viewport for players (#6745) 2018-04-24 19:19:00 +02:00
gdinit
34b63930f5 Fix: Typo in game.hpp
Just a typo fix in a code comment line.
2018-04-23 23:14:23 +02:00
ZehMatt
692c753865 Change: win9x installer configuration to correct path. 2018-04-22 19:24:07 +02:00
ZehMatt
e7cc53ed62 Add: post build events to VS projects to copy the output into 'bin' 2018-04-22 19:24:07 +02:00
Pavel Stupnikov
6ff81b908e Feature #6459: API for querying network clients from GS (#6736) 2018-04-22 15:42:29 +02:00
Michael Lutz
e0ae67cefa Fix: [OSX] Compiler warning about an unused NULL argument. 2018-04-21 22:42:14 +02:00
Patric Stout
a4df8bc246 Change: fail in same step as the reason for failing is in CI result
This makes it easier for people to understand what went wrong
2018-04-21 16:31:22 +02:00
Patric Stout
4d5396980a Change: always pull latest image when running CI 2018-04-21 16:31:22 +02:00
Patric Stout
8c531f1278 Add: also validate Pull Requests with clang 6.0 with OSX as target 2018-04-21 16:31:22 +02:00
Charles Pigott
86012e10ea Fix: Remove need to instantiate SmallStack's pool object by making it a singleton method 2018-04-21 16:28:50 +02:00
Charles Pigott
5c5267726f Fix: Warning about base set template instantiations with clang 2018-04-21 16:28:50 +02:00
Ricardo N Feliciano
e8de33a61f Cleanup: Use new filename for README file. (#6738) 2018-04-21 11:05:38 +02:00
3b32075e8a Add: {PUSH_COLOUR} and {POP_COLOUR} control codes to handle switching colours. (#6737)
This replaces the internal SCC_PREVIOUS_COLOUR swap.
2018-04-19 19:33:21 +01:00
translators
f4f9e18790 Update: Translations from eints
belarusian: 3 changes by KorneySan
2018-04-19 19:45:40 +02:00
Pavel Stupnikov
9175c349da Fix #6465: Add {NORMAL_FONT} and {MONO_FONT} control codes to GS strings (#6726) 2018-04-17 18:41:31 +01:00
4d6a5fbec4 Fix: Four group action icons were misplaced and cropped. 2018-04-17 19:05:35 +02:00
Patric Stout
88be2413ce Codechange #6729: mute bogus GCC 7 warning (#6733)
We do a memset of (byte - byte), which strictly seen ranges from -254 .. 255, for which GCC warns.
But just before this memset is an if() which says the first byte has to be bigger than the second.
So this is a bogus warning.
2018-04-16 23:48:19 +02:00
translators
a72117111e Update: Translations from eints
spanish (mexican): 6 changes by Absay
2018-04-16 23:25:46 +02:00
Andy
6d31478988 Doc: add CONTRIBUTING.md (derived from Bootstrap) (#6732) 2018-04-16 23:20:04 +02:00
Charles Pigott
00c1603256 Fix e614357: Ask the compiler who it is, instead of using symlinks (#6727)
This fixes #6723
2018-04-15 23:07:17 +02:00
Patric Stout
ce6761a6de Change: [Jenkinsfile] Set a git user.email and user.name before rebase (#6728)
Rebase demands both are set, otherwise it refuses to work
2018-04-15 22:22:32 +02:00
Heiko August
079f774fd7 Doc #6698: rewrite of the readme in Markdown syntax 2018-04-15 22:10:54 +02:00
Heiko August
413ece9b51 Doc #6698: rename the readme.txt to REAMDE.md 2018-04-15 22:10:54 +02:00
Michael Lutz
7dd6027194 Codechange: Use a SmallVec for the animated tile list instead of replicating most of the logic. 2018-04-15 20:49:29 +02:00
Michael Lutz
4851feb102 Codechange: Add functions to insert and extract an element at a specific position in a SmallVec. 2018-04-15 20:49:29 +02:00
Michael Lutz
f240274b7e Codechange: Replace magic numbers with the proper enum. 2018-04-15 00:33:57 +02:00
Patric Stout
158eed669a Add: [Jenkinsfile] rebase the pull-request on top of master (#6720)
This allows PRs to be a bit older, but still validate the correct result
2018-04-14 22:14:10 +02:00
glx
bd18951db1 Codechange: a .aps is created by MSVC when opening a .rc, so ignore it 2018-04-14 22:06:28 +02:00
Patric Stout
aaf7e98c77 Fix 6ac0790: don't show the location to / failure of 'realpath' every time (#6719) 2018-04-14 22:05:39 +02:00
Patric Stout
43338b8a45 Change: [JenkinsFile] allow easier configuration stages 2018-04-14 20:19:59 +02:00
Patric Stout
a5382d8dd8 Add: [Jenkinsfile] enable ANSI colors in logs 2018-04-14 20:19:59 +02:00
Patric Stout
af4b52aff6 Add: [JenkinsFile] mark as a groovy script
This allows applications to show highlighting correctly
2018-04-14 20:19:59 +02:00
Patric Stout
2ec775b964 Add: [JenkinsFile] show CI status per entry on GitHub
This makes it easier (and faster) to spot what went wrong
2018-04-14 20:19:59 +02:00
Patric Stout
ae5628e903 Change: [Build] prioritize cc-build over build (based on patch by woutershep2) (#6716)
This closes #6414
2018-04-14 20:12:05 +02:00
Patric Stout
f06061aa3b Change: [Build] use flags set by env at the end, not at the start (based on patch by adf88) (#6715)
This closes #6433
2018-04-14 20:11:49 +02:00
frosch
34cc1f8b7c Fix 192770e6da: Version name in master branch contained a duplicate dash. 2018-04-14 17:59:35 +02:00
Andy
82d4f6c60a Doc: update known_bugs.txt to include Involuntary cargo exchange with cargodist via neutral station (#6714)
This closes #6114
2018-04-14 14:26:38 +02:00
Charles Pigott
62d79900ec Add: List recent news messages in crashlog output 2018-04-13 22:08:13 +02:00
Victor Sergienko
6ac079020b Fix e614357: MingW/MacOS/MacPorts don't have realpath, use reallink in those cases (#6710) 2018-04-12 23:46:09 +02:00
frosch
192770e6da Change: Non-tag revisions are now named '<commitdate>-<branch>-g<shorthash><modified>'. 2018-04-12 22:26:45 +02:00
frosch
e0a62a9e55 Remove: [NewGRF] OpenTTD version no longer contains a revision number. 2018-04-12 22:26:45 +02:00
Owen Rudge
3701b8685a Add: Include basic .editorconfig file to help enforce tab style (#6707) 2018-04-12 21:14:23 +01:00
Charles Pigott
e47f646cb3 Fix e61435774b: Some systems don't have realpath (#6705) 2018-04-11 22:50:23 +02:00
Patric Stout
17bd580630 Remove: NO_DEBUG_MESSAGES was only read and setting it broke compilation (#6703)
Given any speed issue cannot be attributed to checking for _debug_NNN_level, removing this is a safe action

This fixes #6652.
2018-04-11 22:07:21 +02:00
TrueBrain
66f67ac5ac Fix #6550: minor spelling mistake in comment (juanjo) 2018-04-11 20:08:08 +02:00
Charles Pigott
dd6b82d6b2 Codechange: Simplify C++11 check for assert_compile 2018-04-11 18:24:19 +02:00
Charles Pigott
e61435774b Fix: Resolve symlinks when working out which compiler is being used 2018-04-11 18:24:19 +02:00
Charles Pigott
4b1a42c703 Codechange: Remove outdated assumption about FreeBSD's C compiler 2018-04-11 18:24:19 +02:00
Michael Lutz
6c3902ac41 Codechange: [OSX] Use newer APIs to get resolution information when available. 2018-04-10 23:30:01 +02:00
Michael Lutz
964d310cda Codechange: [OSX] Use non-deprecated API for displaying an alert where supported. 2018-04-10 23:30:01 +02:00
Michael Lutz
f670277ff5 Codechange: [OSX] Try to set the thread name for debugger display. 2018-04-10 23:30:01 +02:00
Michael Lutz
4971678f52 Codechange: [OSX] Use 10.10+ API to get the OSX version when available. 2018-04-10 23:30:01 +02:00
Michael Lutz
74b7f0a9aa Fix: [OSX] Remove some OSX compiler warnings on newer SDKs/compilers. 2018-04-10 23:30:01 +02:00
Michael Lutz
fa587ad3cc Codechange: [OSX] Use 10.6+ APIs to get the path for a font where available. 2018-04-10 23:30:01 +02:00
Michael Lutz
27bfb1df8f Codechange: [OSX] Use 10.6+ APIs to initialise audio when available. 2018-04-10 23:30:01 +02:00
Michael Lutz
4bfd277017 Codechange: [Win32] Use OS function for mouse tracking if present. 2018-04-10 21:07:27 +02:00
Michael Lutz
afa3e15afe Change: [Win32] Declare in the app manifest that all current Windows versions are natively supported.
The main effect of this is currently a proper OS version in the crashlog.
2018-04-10 21:07:27 +02:00
Patric Stout
97c0594ced Add: run Clang 3.8 and commit-checker during CI (#6694) 2018-04-08 17:39:45 +02:00
Charles Pigott
19076c24c1 Fix #6690: Compilation with ICU 61 2018-04-08 11:47:26 +02:00
TrueBrain
11c592ef0f Add: Jenkinsfile for CI validation
Currently runs two CIs, but this can be extended in the future
2018-04-07 21:29:23 +02:00
translators
f84ad5f7c0 (svn r28004) -Update from Eints:
belarusian: 42 changes by KorneySan
2018-04-06 17:45:38 +00:00
translators
81f25d4736 (svn r28003) -Update from Eints:
indonesian: 4 changes by fanioz
2018-04-04 17:45:38 +00:00
translators
de961e14fb (svn r28000) -Update from Eints:
welsh: 7 changes by kazzie
2018-03-29 17:45:40 +00:00
translators
41b28d7194 (svn r27999) -Update from Eints:
bulgarian: 18 changes by kokobongo
2018-03-28 17:45:39 +00:00
translators
080f7b3cba (svn r27998) -Update from Eints:
welsh: 9 changes by kazzie
2018-03-22 18:45:37 +00:00
translators
328a4ff00d (svn r27994) -Update from Eints:
welsh: 2 changes by kazzie
2018-03-18 18:45:38 +00:00
frosch
09d4735679 (svn r27993) -Change: Heading for 1.9 now 2018-03-14 19:36:41 +00:00
translators
080d57d97a (svn r27991) -Update from Eints:
spanish (mexican): 1 change by Absay
2018-03-14 18:45:37 +00:00
frosch
8c458c153d (svn r27990) -Update: Docs 2018-03-14 18:05:06 +00:00
frosch
55a503e6f2 (svn r27989) -Fix (r27985): VA2 optimisation failed in various special cases:
- nvar=0 is meant to return the calculated result.
  - Missing references resolve to NULL and got identified with the default result.
  - Missing 'break' broke overlapping cases.
  - Splitting into non-overlapping cases could result in more than 256 cases.
2018-03-11 15:08:51 +00:00
frosch
c6eb633d18 (svn r27988) -Codechange: Extent hg- and gitignore for .vs 2018-03-11 13:34:28 +00:00
frosch
043274afd6 (svn r27987) -Change: Increase maximum allowed vehicle sprite size to reduce clipping of ships. 2018-03-11 13:25:26 +00:00
frosch
5558899621 (svn r27986) -Codechange: Name magic constants in the vehicle position hash functions. 2018-03-11 13:23:26 +00:00
frosch
07d841d0ef (svn r27985) -Codechange: Convert VA2 switches into ones with non-overlapping ranges, sort them and resolve them using binary search. Speedup sprite resolving by about 7 percent. 2018-03-11 13:21:27 +00:00
frosch
d9d669dcf8 (svn r27984) -Codechange: Make ScopeResolver constructors/destructors inlineable. Speedup sprite resolving by about 8 percent. 2018-03-11 13:19:41 +00:00
frosch
7c406f0d9d (svn r27983) -Codechange: Reduce complexity of VA2 add-div/mod adjustments 2018-03-11 13:18:13 +00:00
frosch
4fc178aebd (svn r27982) -Codechange: Reduce invocations of GetGlobalVariable. Speedup sprite resolving by about 3 percent. 2018-03-11 13:17:44 +00:00
frosch
db54db00df (svn r27981) -Change [FS#6679]: Check companies for bankruptcy before subtracting reoccuring monthly costs. (Samu) 2018-03-11 12:46:05 +00:00
frosch
91464af737 (svn r27980) -Doc: Yearly increment 2018-03-11 12:24:32 +00:00
frosch
ebe6564e8b (svn r27979) -Add: adf88 to readme 2018-03-11 12:18:30 +00:00
frosch
59dd7be686 (svn r27978) -Fix [FS#6673] (r18541): Store the map variety setting in the samegame like the other mapgen settings, so restarting maps considers it. (Samu) 2018-03-11 12:11:09 +00:00
frosch
6eac63622e (svn r27977) -Add [FS#6664]: Replace the office building sprite on various toyland airports with a better fitting sprite. This also affects GRFs which activate the default refinery in toyland. (PaulC) 2018-03-11 12:03:17 +00:00
frosch
8f3dbd2efc (svn r27976) -Add [FS#6664]: Climate-specific Action5 extra airport sprites. (PaulC) 2018-03-11 11:43:32 +00:00
8c0d5b2ffd (svn r27975) -Fix (r8969) [FS#6642]: Missing one hair style. 2018-03-11 07:16:58 +00:00
dacd8d87ef (svn r27974) -Fix (r27907) [FS#6627]: free() called on static airport rotation data (JGR) 2018-03-06 07:48:29 +00:00
50fb460203 (svn r27973) -Fix: [FS#6662] Avoid tile operations outside map border when building lock. 2018-03-05 22:57:49 +00:00
86829c54c4 (svn r27972) -Fix (r15271) [FS#6670]: Catenary sprites got mixed up for depots. 2018-03-05 21:24:48 +00:00
translators
d4301cd7b6 (svn r27971) -Update from Eints:
spanish (mexican): 2 changes by Absay
2018-03-01 18:45:36 +00:00
translators
6fc26a00fe (svn r27970) -Update from Eints:
greek: 1 change by Jubilee
2018-02-28 18:45:37 +00:00
translators
b1b15c83fe (svn r27969) -Update from Eints:
danish: 22 changes by Knogle
2018-02-23 18:45:38 +00:00
translators
dd567c6105 (svn r27968) -Update from Eints:
korean: 1 change by telk5093
2018-02-07 18:45:38 +00:00
translators
b36e70cba8 (svn r27967) -Update from Eints:
portuguese: 2 changes by Samu
2018-01-23 18:45:40 +00:00
translators
0c43d6903a (svn r27966) -Update from Eints:
spanish (mexican): 32 changes by Absay
portuguese: 41 changes by Samu
2018-01-22 18:45:38 +00:00
translators
6886b156d2 (svn r27965) -Update from Eints:
spanish (mexican): 43 changes by Absay
2018-01-21 18:45:39 +00:00
translators
ef6adb0030 (svn r27964) -Update from Eints:
spanish (mexican): 10 changes by Absay
2018-01-16 18:45:39 +00:00
translators
844da806c7 (svn r27963) -Update from Eints:
norwegian (bokmal): 2 changes by Leifbk
2018-01-11 18:45:39 +00:00
translators
98c2fa87e6 (svn r27962) -Update from Eints:
spanish (mexican): 1 change by Absay
2018-01-09 18:45:38 +00:00
frosch
09f41da863 (svn r27961) -Fix [FS#6654]: The switch-toolbar icon contained pixels from the fire cycle. Replace the whole icon with a new version. (PaulC) 2018-01-07 14:21:09 +00:00
translators
4882c1d617 (svn r27960) -Update from Eints:
spanish (mexican): 2 changes by Absay
2018-01-06 18:45:38 +00:00
translators
6e3bb4dd90 (svn r27959) -Update from Eints:
spanish (mexican): 8 changes by Absay
2018-01-05 18:45:40 +00:00
translators
60aa3074e3 (svn r27958) -Update from Eints:
spanish (mexican): 26 changes by Absay
2018-01-04 18:45:39 +00:00
translators
62d072b57c (svn r27957) -Update from Eints:
spanish (mexican): 3 changes by Absay
2018-01-03 18:45:37 +00:00
translators
1298e3c94a (svn r27956) -Update from Eints:
spanish (mexican): 16 changes by Absay
2017-12-31 18:45:41 +00:00
translators
d7ef54268d (svn r27955) -Update from Eints:
french: 2 changes by glx
2017-12-28 18:45:40 +00:00
frosch
2e20751c5f (svn r27954) -Cleanup [FS#6644]: Remove unused function (M3Henry) 2017-12-27 22:07:59 +00:00
frosch
1bc6fdef31 (svn r27953) -Cleanup: Adjust other languages for r27952 2017-12-27 21:55:30 +00:00
frosch
0d1cc32b19 (svn r27952) -Change: Reword texts in industry view, when stockpiling is used. 2017-12-27 21:54:52 +00:00
translators
ced7d2a4ec (svn r27951) -Update from Eints:
spanish (mexican): 6 changes by Absay
2017-12-26 18:45:39 +00:00
frosch
b69c0acca2 (svn r27950) -Merge: Documentation updates from 1.7 branch 2017-12-24 12:18:36 +00:00
translators
43be9c80b1 (svn r27947) -Update from Eints:
spanish (mexican): 1 change by Absay
2017-12-22 18:45:39 +00:00
translators
873e3ed27f (svn r27946) -Update from Eints:
spanish (mexican): 1 change by Absay
2017-12-21 18:45:38 +00:00
translators
0fac4a751a (svn r27945) -Update from Eints:
spanish (mexican): 3 changes by Absay
2017-12-20 18:45:39 +00:00
translators
470d136358 (svn r27944) -Update from Eints:
spanish (mexican): 1 change by Absay
2017-12-14 18:45:41 +00:00
frosch
42392fd7b5 (svn r27938) -Fix (r27899): When scrolling in the train depot, also scroll the tile separators. 2017-12-10 13:48:49 +00:00
frosch
c14f23a03d (svn r27937) -Change: When train depots have a horizontal scrollbar, allow scrolling 1 tile beyond the longest train, so you can actually attach a wagon at the end. 2017-12-10 13:48:06 +00:00
frosch
6f36c52736 (svn r27936) -Fix: When moving wagons in the depot, the drag highlight did not exactly match the length of the dragged wagon chain. 2017-12-10 13:45:53 +00:00
michi_cc
c722cb26b8 (svn r27935) -Fix [FS#6629]: [Win32] Right mouse scrolling didn't work properly with the Windows 10 Fall Creators Update. 2017-12-09 19:21:45 +00:00
michi_cc
e856e3cca8 (svn r27934) -Fix (r27900): Warning about unsigned unary minus. 2017-12-09 19:21:41 +00:00
translators
f2a22573d5 (svn r27933) -Update from Eints:
croatian: 26 changes by UnderwaterHesus
portuguese (brazilian): 54 changes by Tucalipe
2017-12-09 18:45:38 +00:00
frosch
6347e5f11e (svn r27932) -Fix (r0) [FS#6639]: Forest, candyfloss forest and battery farm skipped the first animation frame. 2017-11-25 16:50:28 +00:00
translators
2202544474 (svn r27931) -Update from Eints:
portuguese: 7 changes by neuralshock
2017-11-18 18:45:38 +00:00
translators
a9992e1751 (svn r27930) -Update from Eints:
chinese (simplified): 2 changes by yfdyh000
2017-11-02 18:45:39 +00:00
frosch
135ad9c6c9 (svn r27929) -Cleanup: Remove unused Industry::random_triggers 2017-10-25 15:38:19 +00:00
frosch
82ae414e8d (svn r27928) -Fix: [NewGRF] While executing random triggers, var 5F should include the new triggers.
-Fix: [NewGRF] Reset used random triggers only after all A123 chains have been resolved, so that all RA2 in all chains can test the shard triggers. This also includes multiple RA2 in the same A123 chain.
-Fix: [NewGRF] Industry random triggers are stored per tile, even when randomising the shared random bits of the parent industry.
2017-10-25 15:38:14 +00:00
translators
146e4eddb6 (svn r27927) -Update from Eints:
french: 6 changes by glx
2017-10-13 17:45:40 +00:00
translators
40d7a628ff (svn r27926) -Update from Eints:
slovenian: 2 changes by Necrolyte
polish: 12 changes by McZapkie
hebrew: 34 changes by dnd_man
2017-10-12 17:45:42 +00:00
translators
4fca142bfb (svn r27925) -Update from Eints:
malay: 5 changes by rionix88
2017-10-09 17:45:39 +00:00
translators
4cfccc7e85 (svn r27924) -Update from Eints:
hebrew: 5 changes by Metheny
2017-10-04 17:45:38 +00:00
translators
539f6f50f7 (svn r27923) -Update from Eints:
polish: 15 changes by McZapkie
2017-10-01 17:45:39 +00:00
translators
6cf47d2280 (svn r27922) -Update from Eints:
polish: 12 changes by McZapkie
2017-09-28 17:45:40 +00:00
translators
83c2158e7c (svn r27921) -Update from Eints:
polish: 22 changes by McZapkie
2017-09-27 17:45:38 +00:00
frosch
9499e93a67 (svn r27920) -Fix: MSVC 2015 and 2017 project files referenced some MSVC 2010 files 2017-09-24 17:38:03 +00:00
frosch
f43f4981e3 (svn r27919) -Fix: MSVC 2015 and 2017 project files referenced some MSVC 2010 files 2017-09-24 17:35:51 +00:00
frosch
7726f2d330 (svn r27918) -Fix (r27917): Next attempt for MSVC 2017 2017-09-24 16:19:29 +00:00
frosch
28be179d4a (svn r27917) -Add: MSVC 2017 project file generator. Most noticeable, std:c++latest is enabled. 2017-09-24 16:00:29 +00:00
frosch
24a1b82840 (svn r27916) -Codechange: Enable usage of static_assert for MSVC 2017-09-24 13:35:27 +00:00
frosch
96b1ac9d09 (svn r27915) -Fix (r27730) [FS#6620]: Glyphs in range U+0020 to U+00FF may only be defined in orig_extra.grf, not in openttd.grf. 2017-09-11 18:31:32 +00:00
adf88
56ffa35511 (svn r27914) -Fix/Feature: 'unban' console command - fix invalid help text and be more verbose 2017-09-10 14:03:29 +00:00
adf88
f3fbf6beb8 (svn r27913) -Fix: 'unban' console command was not handling IPv6 adresses properly 2017-09-10 14:02:13 +00:00
michi_cc
016a68815d (svn r27912) -Fix (r13948): [NPF] Reserved track bits were not accounted for when trying to find any safe position. 2017-09-03 13:06:29 +00:00
translators
6d08d054ef (svn r27911) -Update from Eints:
korean: 1 change by telk5093
hebrew: 4 changes by dnd_man
2017-09-02 17:45:39 +00:00
translators
6b46133a2a (svn r27910) -Update from Eints:
spanish (mexican): 10 changes by Absay
dutch: 145 changes by mrLeopold
2017-09-01 17:45:42 +00:00
translators
dc649f2738 (svn r27909) -Update from Eints:
spanish (mexican): 4 changes by Absay
2017-08-31 17:45:38 +00:00
adf88
6dec889306 (svn r27908) -Codechange: Mark airport tile tables and FTAs "const" to be sure that they are really constant 2017-08-31 06:55:38 +00:00
adf88
b56453f93b (svn r27907) -Fix: AirportSpec::rotation was memleaking 2017-08-31 06:54:22 +00:00
adf88
1dd6930507 (svn r27906) -Cleanup: Remove some NPF code with no effect and mark possible bug about never used NPF_FLAG_IGNORE_RESERVED flag 2017-08-31 06:51:01 +00:00
adf88
74e1fe130c (svn r27905) -Fix [FS#6585]: Keep the "link" between industry chain and smallmap windows whenever possible 2017-08-31 06:48:55 +00:00
adf88
88726f71b6 (svn r27904) -Fix [FS#6593]: When last vehicle is removed from shared orders group, hide the "Stop sharing" button in vehile orders window 2017-08-31 06:47:17 +00:00
translators
13d0296e7c (svn r27903) -Update from Eints:
vietnamese: 37 changes by myquartz
2017-08-30 17:45:39 +00:00
adf88
2aa806842f (svn r27902) -Feature [FS#6614]: Preserve PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR environment variables in config.cache file (just like other variabes CFLAGS, LDFLAGS etc.) so they can be resused when OpenTTD re-configures itself 2017-08-27 16:07:24 +00:00
frosch
09abccd316 (svn r27901) -Codechange: GetWindowZPriority only needs a WindowClass; this way it can also be used for WindowDesc before a Window instance is created. (3298) 2017-08-27 13:14:37 +00:00
frosch
80dffae130 (svn r27900) -Change [FS#6568]: Remove the gap between windows when positioning them after opening.
-Fix: Make automatic window-positioning RTL-aware.
-Fix: Automatic window-positioning now uses GUI-scale/style dependent sizes/distances instead of fixed pixel values.
2017-08-27 11:48:38 +00:00
frosch
61c68f906d (svn r27899) -Feature: Draw vertical separators at tile distance in the train depot GUI. This only applies if all vehicles use consistent lengths, i.e. either if only using default vehicles, or if only using NewGRF vehicles with 32px reference width. (based on patch by Wolf01) 2017-08-26 12:12:59 +00:00
translators
1afb3a91f8 (svn r27898) -Update from Eints:
dutch: 18 changes by habell
2017-08-24 17:45:40 +00:00
frosch
a04076ba41 (svn r27897) -Add [FS#6577]: Project file generator for kdevelop 4/5 (adf88) 2017-08-24 14:50:55 +00:00
frosch
062c736437 (svn r27896) -Fix: some warnings 2017-08-20 21:04:21 +00:00
alberth
a6e7f1142b (svn r27895) -Fix [FS#6606]: Tooltip of 'increase service interval' said 'decrease' (adf88) 2017-08-20 08:28:05 +00:00
alberth
2eae80bbfe (svn r27894) -Fix [FS#6608]: Typo fix in STATIOV_* string names (Wolf01) 2017-08-20 07:11:08 +00:00
frosch
b4b98e5165 (svn r27893) -Codechange: Use fallthrough attribute. (LordAro) 2017-08-13 18:38:42 +00:00
translators
19bae485b0 (svn r27892) -Update from Eints:
finnish: 41 changes by USephiroth
2017-07-28 17:45:36 +00:00
translators
ccf7580eb8 (svn r27891) -Update from Eints:
spanish: 29 changes by SilverSurferZzZ
2017-07-25 17:45:37 +00:00
translators
8220a8a971 (svn r27890) -Update from Eints:
spanish: 3 changes by SilverSurferZzZ
2017-07-13 17:45:38 +00:00
frosch
a682962719 (svn r27889) -Change: Do not cancel headquarter construction and engine-preview-query when shift-clicking (adf88) 2017-07-11 19:37:10 +00:00
frosch
64c5f00429 (svn r27888) -Fix: Member access coding style (adf88) 2017-07-11 19:34:41 +00:00
frosch
3eae9aba79 (svn r27887) -Cleanup: Remove unused/unimplemented prototype (adf88) 2017-07-11 19:34:21 +00:00
frosch
4c50ecd958 (svn r27886) -Fix [FS#6575-ish]: Do not modify argv[0]. 2017-06-22 17:29:53 +00:00
frosch
35d8c37102 (svn r27885) -Cleanup (r27844): ESR_MAX_COST_EXCEEDED and ESR_PATH_TOO_LONG meant the same thing, but only one was used. Keep PATH_TOO_LONG since it has the better documentation. 2017-06-22 16:57:06 +00:00
frosch
80d10598c1 (svn r27884) -Fix: Console command parser failed when the command had many parameters, and also did not print any error messages about it. 2017-06-22 16:32:50 +00:00
frosch
bb02505fb3 (svn r27883) -Fix [FS#6576]: Console command parser passed invalid strings to the debug output, if command lines had many parameters. 2017-06-22 16:31:04 +00:00
translators
594f1237ce (svn r27882) -Update from Eints:
greek: 7 changes by kyrm
2017-06-19 17:45:37 +00:00
translators
0d45181118 (svn r27879) -Update from Eints:
polish: 19 changes by lion
2017-06-11 17:45:38 +00:00
translators
23cff64f66 (svn r27878) -Update from Eints:
vietnamese: 7 changes by nglekhoi
2017-06-10 17:45:37 +00:00
translators
5f1073ae42 (svn r27877) -Update from Eints:
turkish: 28 changes by wakeup
2017-06-08 17:45:37 +00:00
translators
6bd9fafc0e (svn r27876) -Update from Eints:
swedish: 3 changes by Joel_A
2017-05-27 17:45:39 +00:00
translators
683c08b3be (svn r27875) -Update from Eints:
chinese (simplified): 7 changes by chenwt0315
2017-05-23 17:45:37 +00:00
translators
e57e6fdb42 (svn r27874) -Update from Eints:
luxembourgish: 6 changes by Phreeze
2017-05-16 17:45:37 +00:00
translators
7174f04322 (svn r27873) -Update from Eints:
spanish: 3 changes by SilverSurferZzZ
2017-05-15 17:45:36 +00:00
translators
a1f5b35e1b (svn r27872) -Update from Eints:
swedish: 19 changes by Joel_A
2017-05-13 17:45:37 +00:00
translators
43a917420b (svn r27871) -Update from Eints:
korean: 2 changes by telk5093
spanish: 2 changes by SilverSurferZzZ
german: 6 changes by mini1025
2017-05-11 17:45:37 +00:00
translators
b4adecdab3 (svn r27870) -Update from Eints:
hungarian: 38 changes by Brumi
2017-05-09 17:45:37 +00:00
translators
8dfa9bddd7 (svn r27869) -Update from Eints:
spanish: 2 changes by SilverSurferZzZ
hungarian: 6 changes by Brumi
2017-05-08 17:45:36 +00:00
translators
661ad02c95 (svn r27868) -Update from Eints:
spanish: 3 changes by SilverSurferZzZ
2017-05-05 17:45:38 +00:00
translators
f1b833dcb8 (svn r27861) -Update from Eints:
swedish: 49 changes by Joel_A
2017-04-29 17:45:37 +00:00
translators
7a6e51dbdc (svn r27860) -Update from Eints:
scottish gaelic: 4 changes by GunChleoc
2017-04-28 17:45:37 +00:00
08fe8459c3 (svn r27859) -Revert (r27858): Committed too much :( 2017-04-23 09:20:53 +00:00
c973f65acb (svn r27858) -Change [FS#6560]: Add missing game script event for ships arriving at a station. (juanjo) 2017-04-23 09:19:32 +00:00
translators
3c3693583d (svn r27857) -Update from Eints:
galician: 27 changes by permudo
2017-04-21 17:45:36 +00:00
translators
ccf8b384af (svn r27856) -Update from Eints:
galician: 78 changes by permudo
2017-04-20 17:45:39 +00:00
translators
62eb2f1739 (svn r27855) -Update from Eints:
spanish: 3 changes by SilverSurferZzZ
2017-04-16 17:45:36 +00:00
translators
8b031f6c89 (svn r27854) -Update from Eints:
spanish: 30 changes by SilverSurferZzZ
czech: 18 changes by djst
2017-04-12 17:45:37 +00:00
translators
aa241d073a (svn r27853) -Update from Eints:
spanish: 1 change by juanjo
2017-04-11 17:45:36 +00:00
translators
60ec55b483 (svn r27852) -Update from Eints:
catalan: 31 changes by juanjo
spanish: 5 changes by SilverSurferZzZ
2017-04-10 17:45:37 +00:00
0d13f793f2 (svn r27851) -Fix [FS#6555]: StringID truncation to 16 bits broke string remapping test. 2017-04-09 21:58:07 +00:00
translators
144604a29e (svn r27850) -Update from Eints:
korean: 3 changes by telk5093
spanish (mexican): 18 changes by Absay
2017-04-09 17:45:38 +00:00
translators
be21185988 (svn r27849) -Update from Eints:
korean: 4 changes by telk5093
2017-04-08 17:45:39 +00:00
translators
1644ef5f2d (svn r27848) -Update from Eints:
korean: 43 changes by telk5093
spanish: 6 changes by SilverSurferZzZ
2017-04-06 17:45:37 +00:00
translators
67b25f4acf (svn r27847) -Update from Eints:
german: 19 changes by planetmaker
2017-04-04 17:45:36 +00:00
bf4499c643 (svn r27846) -Fix [FS#5926]: Infinite loop in pathfinder when checking safe waiting position from a waypoint. 2017-04-04 00:00:43 +00:00
1eef97674c (svn r27845) -Change: (Yapf) Use FindDepotData struct to simplify depot finding code and remove need to return fake path distance. (juanjo) 2017-04-03 22:02:28 +00:00
9bc27c9a72 (svn r27844) -Change: (Yapf) Treat max cost exceeded separately from path too long condition, as destination should not be considered in the former case. 2017-04-03 21:53:51 +00:00
39fa3c7cbd (svn r27843) -Change: (Yapf) Consider depot as destination before reversing path and applying penalty. 2017-04-03 21:37:01 +00:00
translators
9a7fa689a1 (svn r27842) -Update from Eints:
spanish: 9 changes by SilverSurferZzZ
2017-04-03 17:45:36 +00:00
27033a2231 (svn r27841) -Fix: Don't consider locks or ship depots as clear water when placing industries. 2017-04-02 17:36:53 +00:00
d51defb0b9 (svn r27838) -Fix: Small news window's fake caption (r19943) was not sized to fit its text. 2017-03-31 23:09:50 +00:00
86430757bf (svn r27837) -Fix (r26969): Black remap did nothing in 8bpp-simple blitter. 2017-03-30 21:33:40 +00:00
translators
5594f262c7 (svn r27836) -Update from Eints:
catalan: 2 changes by juanjo
2017-03-30 17:45:36 +00:00
translators
36ad20f369 (svn r27835) -Update from Eints:
norwegian (bokmal): 37 changes by eirik174
2017-03-29 17:45:37 +00:00
a9a7abf26c (svn r27834) -Change: Parse extmidi command string for parameters to pass on. 2017-03-29 17:36:46 +00:00
06785c9df2 (svn r27833) -Change: Trackdir maps directly to TrackdirBits 2017-03-28 21:44:40 +00:00
54025df392 (svn r27832) -Fix: Missing or incorrect colour codes in translations 2017-03-27 22:00:45 +00:00
efe201d1df (svn r27831) -Fix (r24577): Misaligned resize icon (due to widget bounds being inclusive) 2017-03-26 19:07:08 +00:00
translators
31cbcd6de1 (svn r27830) -Update from Eints:
catalan: 6 changes by juanjo
italian: 1 change by lorenzodv
russian: 6 changes by Lone_Wolf
2017-03-26 17:45:37 +00:00
dac0a3e86e (svn r27829) -Fix (r27821): Occasional crash caused by mixing int/uint arithmetic. 2017-03-25 23:19:41 +00:00
translators
0cf3266280 (svn r27828) -Update from Eints:
croatian: 2 changes by VoyagerOne
italian: 6 changes by lorenzodv
english (us): 15 changes by Supercheese
latin: 15 changes by Supercheese
2017-03-25 18:45:40 +00:00
frosch
610bdbd68b (svn r27827) -Codechange (r27819): Deduplicate code. (adf88) 2017-03-25 12:21:17 +00:00
65d77ff317 (svn r27826) -Fix (r27825): Wrong code style 2017-03-24 19:25:01 +00:00
d934ef9b00 (svn r27825) -Feature [FS#4950]: Add option to close windows with right click (Flamefire) 2017-03-24 18:55:16 +00:00
translators
2385f4adbc (svn r27824) -Update from Eints:
catalan: 7 changes by juanjo
croatian: 4 changes by VoyagerOne
korean: 15 changes by telk5093
scottish gaelic: 54 changes by GunChleoc
2017-03-24 18:45:45 +00:00
65fef84855 (svn r27823) -Fix: Vehicle viewport is not user scrollable so flag window as such. 2017-03-24 12:00:52 +00:00
19d56a33e8 (svn r27822) -Feature: Vehicle Group Info: Add profits and occupancy display to group vehicle list (mtm, JGR) 2017-03-24 07:33:31 +00:00
bcc5c9f81d (svn r27821) -Change: Draw images in centre of buttons (inspired by Juanjo) 2017-03-23 22:00:00 +00:00
902663176d (svn r27820) -Fix: Allow dropdown to be drawn above origin widget even with scrollbar (Juanjo) 2017-03-23 20:07:59 +00:00
c5660b58d9 (svn r27819) -Fix (r26990): Update viewport sign dimensions when changing GUI zoom level. 2017-03-23 18:07:04 +00:00
translators
0d8ae4d6f4 (svn r27818) -Update from Eints:
greek: 36 changes by kyrm
2017-03-22 18:45:40 +00:00
translators
1fa25f128f (svn r27817) -Update from Eints:
greek: 39 changes by kyrm
croatian: 7 changes by VoyagerOne
2017-03-21 18:45:37 +00:00
73ea8cdb21 (svn r27816) -Fix [FS#6421]: Do not search directories when opening ini files as we already have their full path. 2017-03-20 19:30:49 +00:00
translators
e8ea4748ed (svn r27815) -Update from Eints:
russian: 7 changes by Lone_Wolf
2017-03-20 18:45:36 +00:00
c3ae3989c2 (svn r27814) -Change: Remove _roadveh_depot_exit_trackdir
_roadveh_depot_exit_trackdir was just a copy of
DiagDirToDiagTrackdir. (cirdan)
2017-03-20 18:16:23 +00:00
2e27a35f1b (svn r27813) -Change: Remove _road_enter_dir_to_reachable_trackdirs
_road_enter_dir_to_reachable_trackdirs was just a copy of
DiagdirReachesTrackdirs. (cirdan)
2017-03-20 18:14:22 +00:00
6d0f8ec7b9 (svn r27812) -Fix: Road tunnel/bridge heads have no trackbits wrt catenary drawing
Road tunnels and bridges do not have any rail, so do not treat them
as if they had when drawing a catenary. (cirdan)
2017-03-20 17:57:24 +00:00
5951d2406e (svn r27811) -Change: Remove unused parameters in FreeTrainTrackReservation
FreeTrainTrackReservation is always called with INVALID_TILE
and INVALID_TRACKDIR as second and third arguments, so remove
them and just use those constants instead. (cirdan)
2017-03-20 17:49:44 +00:00
890a44f130 (svn r27810) -Change: Factor out reservation-handling code in station_cmd.cpp
Code dealing with freeing and restoring track reservations is
duplicated in CmdBuildRailStation and RemoveFromRailBaseStation;
make separate functions for it. (cirdan)
2017-03-20 17:44:37 +00:00
67ab0450dd (svn r27809) -Codechange: Improve check in UpdateLevelCrossing
In UpdateLevelCrossing, checking if a level crossing is reserved is
cheaper than finding trains on it or approaching it, so do it first. (cirdan)
2017-03-20 08:04:47 +00:00
f3cbe98156 (svn r27808) -Codechange: Adjust the size of _track_crosses_trackdirs
_track_crosses_trackdirs is indexed by a Track, not a
Trackdir, so adjust its size accordingly. (cirdan)
2017-03-19 22:30:47 +00:00
3c7dc746d5 (svn r27807) -Codechange: Remove _ship_leave_depot_offs
There is already TileOffsByDiagDir for that. (cirdan)
2017-03-19 22:02:20 +00:00
2a555480bd (svn r27806) -Codechange: Remove function ShipGetNewDirection
ShipGetNewDirection has no side effects and its return value
is ignored by its only caller, so do away with it.

Also remove now unused _new_vehicle_direction_table. (cirdan)
2017-03-19 21:59:24 +00:00
4f9fd074b8 (svn r27805) -Codechange: Remove function ShipGetNewDirectionFromTiles
The only user of ShipGetNewDirectionFromTiles can be better
served by DiagdirBetweenTiles, so remove the former. (cirdan)
2017-03-19 21:57:54 +00:00
translators
8c49f7b98a (svn r27804) -Update from Eints:
italian: 7 changes by lorenzodv
luxembourgish: 11 changes by Phreeze
french: 7 changes by glx
2017-03-19 18:45:38 +00:00
alberth
49c0facf2e (svn r27803) -Change: Remove obsolete aircraft preview strings from other languages 2017-03-18 20:49:24 +00:00
alberth
da608f6214 (svn r27802) -Add: Display aircraft type in engine preview window (patch by Samu) 2017-03-18 20:48:54 +00:00
alberth
2f1d808781 (svn r27801) -Change: Also rename long aircraft preview window strings of other languages 2017-03-18 20:48:27 +00:00
alberth
dda71fab19 (svn r27800) -Change: Rename long aircraft string names of the preview window 2017-03-18 20:47:48 +00:00
alberth
319de74d99 (svn r27799) -Add: Display aircraft type in buy window (patch by Samu) 2017-03-18 20:46:15 +00:00
alberth
85ed4975bf (svn r27798) -Change: Also remove obsolete string from the other languages 2017-03-18 20:45:18 +00:00
alberth
ad88588481 (svn r27797) -Add: Display aircraft type in its vehicle window (patch by Samu) 2017-03-18 20:43:43 +00:00
frosch
19188818ea (svn r27796) -Fix [FS#6545]: 32bpp-anim blitters assumed that pitch and width of the screen were equal. 2017-03-18 17:14:53 +00:00
translators
36d709e047 (svn r27795) -Update from Eints:
luxembourgish: 3 changes by Phreeze
2017-03-14 18:45:36 +00:00
ed01e81c42 (svn r27794) -Fix [FS#6526]: Chat text background overflowed due to missing padding. 2017-03-14 00:57:52 +00:00
ff26c6393e (svn r27793) -Fix [FS#6450]: Use of uninitialised variable cause lzo to fail. Add check for error status. 2017-03-13 22:16:44 +00:00
michi_cc
5e728da075 (svn r27792) -Add: [Win32] .gitignore for IntelliSense database of VS2015 Update 2. 2017-03-13 21:56:41 +00:00
michi_cc
cb2e84454f (svn r27791) -Fix (r27790) [FS#6366]: Try #2. Now also for Visual Studio 2010. 2017-03-13 21:56:38 +00:00
michi_cc
ac735cfaac (svn r27790) -Fix [FS#6366]: [Win32] Mark OpenTTD as DPI-aware to avoid OS window scaling that breaks mouse input. 2017-03-13 20:21:40 +00:00
translators
11b9fbbe66 (svn r27789) -Update from Eints:
polish: 3 changes by wojteks86
greek: 1 change by kyrm
2017-03-13 18:45:37 +00:00
d31f9a83e7 (svn r27788) -Fix [FS#6536]: Get vehicle load amount after executing new cargo trigger. 2017-03-13 07:37:05 +00:00
86eae807be (svn r27787) -Fix: Update scrollbar when rebuilding AI/GS setting list. 2017-03-12 18:19:01 +00:00
c55f586df8 (svn r27786) -Fix [FS#6479]: AI configuration changed incorrect parameter when some parameters are hidden. 2017-03-12 16:33:40 +00:00
3aad5abfe9 (svn r27785) -Fix [FS#6508]: Buoys not always drawn after being placed depending on zoom level (Samu). 2017-03-12 15:32:40 +00:00
3109f158a6 (svn r27784) -Fix [FS#6505]: Allow rail conversion even if ship is on tile (Samu). 2017-03-12 15:26:31 +00:00
frosch
afcef7faa6 (svn r27780) -Update: Numbers 2017-03-11 20:50:26 +00:00
781 changed files with 36918 additions and 28313 deletions

13
.dorpsgek.yml Normal file
View File

@@ -0,0 +1,13 @@
notifications:
push:
irc:
- openttd
- openttd.notice
pull-request:
irc:
- openttd
- openttd.notice
issue:
irc:
- openttd
- openttd.notice

9
.editorconfig Normal file
View File

@@ -0,0 +1,9 @@
root = true
[*]
insert_final_newline = true
trim_trailing_whitespace = true
[*.{c,cpp,h,hpp}]
indent_style = tab
charset = utf-8

7
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,7 @@
## Version of OpenTTD
## Expected result
## Actual result
## Steps to reproduce

34
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
daysUntilClose: 7
staleLabel: stale
closeComment: false
exemptMilestones: true
exemptAssignees: true
issues:
daysUntilStale: 60
exemptLabels:
- pinned
- security
- "good first issue"
- regression
markComment: >
This issue has been automatically marked as stale because it has not had any activity in the last two months.
If you believe the issue is still relevant, please test on the latest nightly and report back.
It will be closed if no further activity occurs within 7 days.
Thank you for your contributions.
pulls:
daysUntilStale: 30
exemptLabels:
- pinned
markComment: >
This pull request has been automatically marked as stale because it has not had any activity in the last month.
Please feel free to give a status update now, ping for review, or re-open when it's ready.
It will be closed if no further activity occurs within 7 days.
Thank you for your contributions.

7
.gitignore vendored
View File

@@ -18,14 +18,19 @@ bin/scripts/*
!bin/scripts/*.example
!bin/scripts/readme.txt
*.aps
bundle/*
bundles/*
docs/aidocs/*
docs/gamedocs/*
docs/source/*
.kdev4
.kdev4/*
*.kdev4
media/openttd.desktop
media/openttd.desktop.install
objs/*
projects/.vs
projects/Debug
projects/Release
projects/*.ncb
@@ -34,6 +39,8 @@ projects/*.sdf
projects/*.opensdf
projects/*.vcproj.*.user
projects/*.vcxproj.user
projects/*.VC.db
projects/*.VC.opendb
src/rev.cpp
src/os/windows/ottdres.rc

View File

@@ -1,6 +1,7 @@
syntax: glob
.svn
*.aps
bin/baseset/openttd.32.bmp
bin/lang/*
bin/openttd*
@@ -13,12 +14,16 @@ config.pwd
docs/aidocs/*
docs/gamedocs/*
docs/source/*
.kdev4
.kdev4/*
*.kdev4
Makefile
Makefile.am
Makefile.bundle
media/openttd.desktop
media/openttd.desktop.install
objs/*
projects/.vs
projects/*.ncb
projects/*.suo
projects/*.sdf

181
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,181 @@
# Contributing to OpenTTD
Looking to contribute something to OpenTTD? **Here's how you can help.**
Please take a moment to review this document in order to make the contribution process easy and effective for everyone involved.
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue or assessing patches and features.
## Using the issue tracker
The [issue tracker](https://github.com/OpenTTD/OpenTTD/issues) is the preferred channel for [bug reports](#bug-reports), but please respect the following restrictions:
* Please **do not** use the issue tracker for help playing or using OpenTTD. Please try [irc](https://wiki.openttd.org/IRC_channel), or the [forums](https://www.tt-forums.net/)
* Please **do not** derail or troll issues. Keep the discussion on topic and respect the opinions of others.
* Please **do not** post comments consisting solely of "+1" or ":thumbsup:".
Use [GitHub's "reactions" feature](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments) instead. We reserve the right to delete comments which violate this rule.
* Please **do not** open issues or pull requests regarding add-on content in NewGRF, GameScripts, AIs, etc. These are created by third-parties. Please try [irc](https://wiki.openttd.org/IRC_channel) or the [forums](https://www.tt-forums.net/) to discuss these.
## Bug reports
A bug is a _demonstrable problem_ that is caused by the code in the repository.
Good bug reports are extremely helpful, so thanks!
Guidelines for bug reports:
0. Please don't report issues with games where you changed NewGRFs.
1. Please don't report issues with modified versions of OpenTTD (patchpacks and similar).
2. **Use the GitHub issue search** --- check if the issue has already been
reported.
3. **Check if the issue has been fixed** --- try to reproduce it using the latest `nightly` build of OpenTTD, available from https://www.openttd.org
4. **Isolate the problem** --- ideally create reproduceable steps with an attached savegame and screenshots. Try to use few or no NewGRFs, AIs etc if possible.
A good bug report shouldn't leave others needing to chase you up for more information.
Please try to be as detailed as possible in your report.
* What is your environment?
* What steps will reproduce the issue?
* Which operating system(s) experience the problem?
* What would you expect to be the outcome?
All these details will help people to fix any potential bugs.
Example:
> Short and descriptive example bug report title
>
> A summary of the issue and the OS environment in which it occurs. If
> suitable, include the steps required to reproduce the bug.
>
> 1. This is the first step
> 2. This is the second step
> 3. Further steps, etc.
>
> Attached savegame
> Attached screenshots showing the issue
> Crashlogs if the bug causes a crash
>
> Any other information you want to share that is relevant to the issue being
> reported. This might include the lines of code that you have identified as
> causing the bug, and potential solutions (and your opinions on their
> merits).
## Feature requests
Before opening a feature request, please take a moment to find out whether your idea fits with the scope and aims of the project.
It's up to *you* to make a strong case to convince the project's developers of the merits of this feature.
Please provide as much detail and context as possible. This means don't request for a solution, but describe the problem you see and how/why you think it should be fixed.
For feature request we have a strict policy.
Keeping issues around with "a good idea" or "not really a bug but we should maybe fix it" turns out to have the reversed effect: nobody looks at it anymore.
Although we really appreciate feedback and ideas, we will close feature requests that we don't expect to fulfill in the next year.
Many of those ideas etc do have a place on the [forums](https://www.tt-forums.net); and if enough people like it, someone will stand up and make it.
It's usually best discuss in [irc](https://wiki.openttd.org/IRC_channel) before opening a feature request or working on a large feature in a fork.
Discussion in irc can take time, but it can be productive and avoid disappointment :)
## Pull requests
Good pull requests—patches, improvements, new features—are a fantastic help.
They should remain focused in scope and avoid containing unrelated commits.
**Please ask first** before embarking on any significant pull request (e.g. implementing features, refactoring code, porting to a different language), otherwise you risk spending a lot of time working on something that the project's developers might not want to merge into the project.
Please adhere to the [coding guidelines](#code-guidelines) used throughout the project (indentation, accurate comments, etc.) and any other requirements (such as test coverage).
Adhering to the following process is the best way to get your work included in the project:
1. [Fork](https://help.github.com/fork-a-repo/) the project, clone your fork, and configure the remotes:
```bash
git clone https://github.com/<your-username>/OpenTTD.git openttd
git clone https://github.com/OpenTTD/OpenTTD-git-hooks.git openttd_hooks
cd openttd
git remote add upstream https://github.com/OpenTTD/OpenTTD.git
cd .git/hooks
ln -s ../../../openttd_hooks/hooks/* .
```
2. If you cloned a while ago, get the latest changes from upstream:
```bash
git fetch upstream
```
3. Create a new topic branch (off the main project development branch) to
contain your feature, change, or fix:
```bash
git checkout upstream/master -b <topic-branch-name>
```
4. Commit your changes in logical chunks. Please adhere to these [git commit message guidelines](https://wiki.openttd.org/Commit_style#Commit_message) or your code is unlikely to be merged into the main project.
Use Git's [interactive rebase](https://help.github.com/articles/interactive-rebase) feature to tidy up your commits before making them public.
5. Locally rebase the upstream development branch into your topic branch:
```bash
git fetch upstream
git rebase upstream/master
```
6. Push your topic branch up to your fork the first time:
```bash
git push --set-upstream origin <topic-branch-name>
```
And any time after that:
```bash
git push
```
7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) with a clear title and description against the `master` branch.
**IMPORTANT**: By submitting a patch, you agree to the [License](#license).
### Privacy Notice
We would like to make you aware that contributing to OpenTTD via git will permanently store the name and email address you provide as well as the actual changes and the time and date you made it inside git's version history.
This is inevitable, because it is a main feature of git. If you are concerned about your privacy, we strongly recommend to use "Anonymous &lt;anonymous@openttd.org&gt;" as the git commit author. We might refuse anonymous contributions if malicious intent is suspected.
Please note that the contributor identity, once given, is used for copyright verification and to provide proof should a malicious commit be made. As such, the [EU GDPR](https://www.eugdpr.org/key-changes.html) "right to be forgotten" does not apply, as this is an overriding legitimate interest.
Please also note that your commit is public and as such will potentially be processed by many third-parties. Git's distributed nature makes it impossible to track where exactly your commit, and thus your personal data, will be stored and be processed. If you would not like to accept this risk, please do either commit anonymously or refrain from contributing to the OpenTTD project.
### Pull request validation
Continuous integration (CI) tools monitor pull requests, and help us identify build and code quality issues.
The results of the CI tests will show on your pull request.
By clicking on Details you can further zoom in; in case of a failure it will show you why it failed. In case of success it will report how awesome you were.
## Code guidelines
[Code style](https://wiki.openttd.org/Coding_style) must be adhered to for pull requests to be accepted
## License
By contributing your code, you agree to license your contribution under the [GPL v2](https://github.com/OpenTTD/OpenTTD/blob/master/COPYING).
### Attribution of this Contributing Guide
This contributing guide is adapted from [Bootstrap](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md) under the [Creative Commons Attribution 3.0 Unported License](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE) terms for Bootstrap documentation.
The GDPR notice is adapted from [rsyslog](https://github.com/rsyslog/rsyslog/blob/master/CONTRIBUTING.md) under the [GNU General Public License](https://github.com/rsyslog/rsyslog/blob/master/COPYING).

View File

@@ -1,5 +1,5 @@
This is the license which applies to OpenTTD with the exception of some
3rd party modules. See readme.txt for details
3rd party modules. See README.md for details
GNU GENERAL PUBLIC LICENSE

173
Doxyfile
View File

@@ -8,9 +8,14 @@
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = OpenTTD
PROJECT_NUMBER =
PROJECT_BRIEF =
PROJECT_LOGO =
OUTPUT_DIRECTORY = docs/source/
CREATE_SUBDIRS = NO
CREATE_SUBDIRS = YES
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
@@ -32,22 +37,42 @@ STRIP_FROM_PATH = ./
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 2
ALIASES =
TCL_SUBST =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
TOC_INCLUDE_HEADINGS = 0
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = NO
EXTRACT_PRIVATE = YES
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
@@ -55,11 +80,17 @@ HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
@@ -67,22 +98,27 @@ GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
# Configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ./src/
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
@@ -93,31 +129,38 @@ FILE_PATTERNS = *.c \
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */3rdparty */.svn */script/api
EXCLUDE_PATTERNS = */3rdparty \
*/script/api
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =./docs/
IMAGE_PATH = ./docs/
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
#---------------------------------------------------------------------------
# configuration options related to source browsing
# Configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
@@ -125,19 +168,58 @@ HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = YES
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = NO
HTML_DYNAMIC_MENUS = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME = Publisher
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = YES
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES
ENUM_VALUES_PER_LINE = 4
TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = NO
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
@@ -147,12 +229,18 @@ COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
LATEX_FOOTER =
LATEX_EXTRA_STYLESHEET =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
LATEX_SOURCE_CODE = NO
LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
@@ -160,27 +248,33 @@ COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
RTF_SOURCE_CODE = NO
#---------------------------------------------------------------------------
# configuration options related to the man page output
# Configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_SUBDIR =
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
# Configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
@@ -195,42 +289,67 @@ EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = ENABLE_NETWORK WITH_ZLIB WITH_LZO WITH_LZMA WITH_SDL WITH_PNG WITH_FONTCONFIG WITH_FREETYPE WITH_ICU_SORT WITH_ICU_LAYOUT UNICODE _UNICODE _GNU_SOURCE FINAL=
PREDEFINED = ENABLE_NETWORK \
WITH_ZLIB \
WITH_LZO \
WITH_LZMA \
WITH_SDL \
WITH_PNG \
WITH_FONTCONFIG \
WITH_FREETYPE \
WITH_ICU_SORT \
WITH_ICU_LAYOUT \
UNICODE \
_UNICODE \
_GNU_SOURCE \
FINAL=
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
# Configuration options related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE = objs/openttd.tag
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
MSCGEN_PATH =
DIA_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
DOT_NUM_THREADS = 0
DOT_FONTNAME = Helvetica
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
UML_LIMIT_NUM_FIELDS = 10
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
INTERACTIVE_SVG = NO
DOT_PATH =
DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_CFG_FILE =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO

View File

@@ -12,15 +12,15 @@
# The revision is needed for the bundle name and creating an OSX application bundle.
# Detect the revision
VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
REV := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
VERSION := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
# Make sure we have something in REV
ifeq ($(REV),)
REV := norev000
# Make sure we have something in VERSION
ifeq ($(VERSION),)
VERSION := norev000
endif
ifndef BUNDLE_NAME
BUNDLE_NAME = openttd-custom-$(REV)-$(OS)
BUNDLE_NAME = openttd-custom-$(VERSION)-$(OS)
endif
# An OSX application bundle needs the data files, lang files and openttd executable in a different location.
@@ -54,7 +54,7 @@ ifdef OSXAPP
$(Q)mkdir -p "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources"
$(Q)echo "APPL????" > "$(BUNDLE_DIR)/$(OSXAPP)/Contents/PkgInfo"
$(Q)cp "$(ROOT_DIR)/os/macosx/openttd.icns" "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/openttd.icns"
$(Q)$(ROOT_DIR)/os/macosx/plistgen.sh "$(BUNDLE_DIR)/$(OSXAPP)" "$(REV)"
$(Q)$(ROOT_DIR)/os/macosx/plistgen.sh "$(BUNDLE_DIR)/$(OSXAPP)" "$(VERSION)"
$(Q)cp "$(ROOT_DIR)/os/macosx/splash.png" "$(BASESET_DIR)"
endif
ifeq ($(OS),UNIX)
@@ -69,7 +69,7 @@ endif
$(Q)cp "$(BIN_DIR)/baseset/opntitle.dat" "$(BASESET_DIR)/"
$(Q)cp "$(BIN_DIR)/baseset/"*.obm "$(BASESET_DIR)/"
$(Q)cp "$(BIN_DIR)/lang/"*.lng "$(LANG_DIR)/"
$(Q)cp "$(ROOT_DIR)/readme.txt" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/README.md" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/COPYING" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/known-bugs.txt" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/docs/multiplayer.txt" "$(BUNDLE_DIR)/docs/"
@@ -88,7 +88,7 @@ ifdef MENU_DIR
$(Q)sed s/=openttd/=$(BINARY_NAME)/g "$(BUNDLE_DIR)/media/openttd.desktop" > "$(ROOT_DIR)/media/openttd.desktop.install"
endif
ifeq ($(TTD), openttd.exe)
$(Q)unix2dos "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/readme.txt" "$(BUNDLE_DIR)/COPYING" "$(BUNDLE_DIR)/changelog.txt" "$(BUNDLE_DIR)/known-bugs.txt"
$(Q)unix2dos "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/README.md" "$(BUNDLE_DIR)/COPYING" "$(BUNDLE_DIR)/changelog.txt" "$(BUNDLE_DIR)/known-bugs.txt"
ifeq ($(OS), DOS)
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi/cwsdpmi.txt" "$(BUNDLE_DIR)/docs/"
ifndef STRIP
@@ -151,15 +151,15 @@ bundle_lha: bundle
bundle_dmg: bundle
@echo '[BUNDLE] Creating $(BUNDLE_NAME).dmg'
$(Q)mkdir -p "$(BUNDLES_DIR)/OpenTTD $(REV)"
$(Q)cp -R "$(BUNDLE_DIR)/" "$(BUNDLES_DIR)/OpenTTD $(REV)"
$(Q)hdiutil create -ov -format UDZO -srcfolder "$(BUNDLES_DIR)/OpenTTD $(REV)" "$(BUNDLES_DIR)/$(BUNDLE_NAME).dmg"
$(Q)rm -fr "$(BUNDLES_DIR)/OpenTTD $(REV)"
$(Q)mkdir -p "$(BUNDLES_DIR)/OpenTTD $(VERSION)"
$(Q)cp -R "$(BUNDLE_DIR)/" "$(BUNDLES_DIR)/OpenTTD $(VERSION)"
$(Q)hdiutil create -ov -format UDZO -srcfolder "$(BUNDLES_DIR)/OpenTTD $(VERSION)" "$(BUNDLES_DIR)/$(BUNDLE_NAME).dmg"
$(Q)rm -fr "$(BUNDLES_DIR)/OpenTTD $(VERSION)"
bundle_exe: all
@echo '[BUNDLE] Creating $(BUNDLE_NAME).exe'
$(Q)mkdir -p "$(BUNDLES_DIR)"
$(Q)unix2dos "$(ROOT_DIR)/docs/"*.txt "$(ROOT_DIR)/readme.txt" "$(ROOT_DIR)/COPYING" "$(ROOT_DIR)/changelog.txt" "$(ROOT_DIR)/known-bugs.txt"
$(Q)unix2dos "$(ROOT_DIR)/docs/"*.txt "$(ROOT_DIR)/README.md" "$(ROOT_DIR)/COPYING" "$(ROOT_DIR)/changelog.txt" "$(ROOT_DIR)/known-bugs.txt"
$(Q)cd $(ROOT_DIR)/os/windows/installer && makensis.exe //DVERSION_INCLUDE=version_$(PLATFORM).txt install.nsi
$(Q)mv $(ROOT_DIR)/os/windows/installer/*$(PLATFORM).exe "$(BUNDLES_DIR)/$(BUNDLE_NAME).exe"
@@ -188,7 +188,7 @@ endif
$(Q)install -m 644 "$(BUNDLE_DIR)/scripts/"* "$(INSTALL_DATA_DIR)/scripts"
ifndef DO_NOT_INSTALL_DOCS
$(Q)install -d "$(INSTALL_DOC_DIR)"
$(Q)install -m 644 "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/readme.txt" "$(BUNDLE_DIR)/known-bugs.txt" "$(INSTALL_DOC_DIR)"
$(Q)install -m 644 "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/README.md" "$(BUNDLE_DIR)/known-bugs.txt" "$(INSTALL_DOC_DIR)"
endif
ifndef DO_NOT_INSTALL_CHANGELOG
$(Q)install -d "$(INSTALL_DOC_DIR)"

View File

@@ -42,11 +42,22 @@ MD5SUM := $(shell [ "$(OS)" = "OSX" ] && echo "md5 -r" || echo "md5sum")
NFO_FILES := $(GRF_DIR)/*.nfo $(GRF_DIR)/rivers/*.nfo
PNG_FILES := $(GRF_DIR)/*.png $(GRF_DIR)/rivers/*.png
# List of target files.
OBT_FILES := $(BIN_DIR)/orig_dos.obg
OBT_FILES += $(BIN_DIR)/orig_dos_de.obg
OBT_FILES += $(BIN_DIR)/orig_win.obg
OBT_FILES += $(BIN_DIR)/orig_dos.obs
OBT_FILES += $(BIN_DIR)/orig_win.obs
OBT_FILES += $(BIN_DIR)/no_sound.obs
OBT_FILES += $(BIN_DIR)/orig_dos.obm
OBT_FILES += $(BIN_DIR)/orig_win.obm
OBT_FILES += $(BIN_DIR)/no_music.obm
OBT_FILES += $(BIN_DIR)/orig_tto.obm
# Build the GRF.
all: $(OBT_FILES)
ifdef GRFCODEC
all: $(BIN_DIR)/openttd.grf $(BIN_DIR)/orig_extra.grf $(BIN_DIR)/orig_dos.obg $(BIN_DIR)/orig_dos_de.obg $(BIN_DIR)/orig_win.obg $(BIN_DIR)/orig_dos.obs $(BIN_DIR)/orig_win.obs $(BIN_DIR)/no_sound.obs $(BIN_DIR)/orig_win.obm $(BIN_DIR)/no_music.obm
else
all:
all: $(BIN_DIR)/openttd.grf $(BIN_DIR)/orig_extra.grf
endif
$(OBJS_DIR)/langfiles.tmp: $(LANG_DIR)/*.txt
@@ -67,6 +78,10 @@ $(BIN_DIR)/%.obm: $(BASESET_DIR)/%.obm $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/
$(E) '$(STAGE) Updating $(notdir $@)'
$(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $< >$@
# Guard against trying to run GRFCODEC/NFORENUM without either being set.
ifdef GRFCODEC
ifdef NFORENUM
# Compile extra grf
$(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(GRF_DIR)/assemble_nfo.awk
$(E) '$(STAGE) Assembling openttd.nfo'
@@ -89,9 +104,12 @@ $(BIN_DIR)/orig_extra.grf: $(PNG_FILES) $(NFO_FILES) $(GRF_DIR)/assemble_nfo.awk
$(Q) $(GRFCODEC) -n -s -e -p1 $(OBJS_DIR)/orig_extra.grf
$(Q)cp $(OBJS_DIR)/orig_extra.grf $(BIN_DIR)/orig_extra.grf
endif
endif
# Clean up temporary files.
clean:
$(Q)rm -f *.bak *.grf
$(Q)rm -f *.bak *.grf $(OBT_FILES)
# Clean up temporary files
mrproper: clean

View File

@@ -6,7 +6,6 @@
# 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/>.
STRGEN = !!STRGEN!!
ENDIAN_CHECK = !!ENDIAN_CHECK!!
SRC_DIR = !!SRC_DIR!!
LANG_DIR = !!LANG_DIR!!
BIN_DIR = !!BIN_DIR!!
@@ -25,11 +24,6 @@ ifeq ($(LANG_SUPPRESS), yes)
LANG_ERRORS = >/dev/null 2>&1
endif
# Make sure endian_host.h is reachable as if it was in the src/ dir
CFLAGS_BUILD += -I $(LANG_OBJS_DIR)
ENDIAN_TARGETS := endian_host.h endian_target.h $(ENDIAN_CHECK)
# Check if we want to show what we are doing
ifdef VERBOSE
Q =
@@ -43,19 +37,19 @@ RES := $(shell mkdir -p $(BIN_DIR)/lang )
all: table/strings.h $(LANGS)
strgen_base.o: $(SRC_DIR)/strgen/strgen_base.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h $(SRC_DIR)/safeguards.h
strgen_base.o: $(SRC_DIR)/strgen/strgen_base.cpp $(SRC_DIR)/strgen/strgen.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h $(SRC_DIR)/safeguards.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
strgen.o: $(SRC_DIR)/strgen/strgen.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h $(SRC_DIR)/safeguards.h
strgen.o: $(SRC_DIR)/strgen/strgen.cpp $(SRC_DIR)/strgen/strgen.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h $(SRC_DIR)/safeguards.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
string.o: $(SRC_DIR)/string.cpp endian_host.h $(SRC_DIR)/safeguards.h
string.o: $(SRC_DIR)/string.cpp $(SRC_DIR)/safeguards.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h $(SRC_DIR)/safeguards.h
alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp $(SRC_DIR)/safeguards.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
@@ -80,21 +74,11 @@ $(LANGS): %.lng: $(LANG_DIR)/%.txt $(STRGEN) lang/english.txt
$(E) '$(STAGE) Compiling language $(*F)'
$(Q)./$(STRGEN) $(STRGEN_FLAGS) -s $(LANG_DIR) -d $(LANG_OBJS_DIR) $< $(LANG_ERRORS) && cp $@ $(BIN_DIR)/lang || true # Do not fail all languages when one fails
# The targets to compile the endian-code
endian_host.h: $(ENDIAN_CHECK)
$(E) '$(STAGE) Testing endianness for host'
$(Q)./$(ENDIAN_CHECK) > $@
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
$(E) '$(STAGE) Compiling and Linking $@'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) $< -o $@
depend:
clean:
$(E) '$(STAGE) Cleaning up language files'
$(Q)rm -f strgen.o string.o alloc_func.o getoptdata.o table/strings.h $(STRGEN) $(LANGS) $(LANGS:%=$(BIN_DIR)/lang/%) lang/english.* $(ENDIAN_TARGETS)
$(Q)rm -f strgen_base.o strgen.o string.o alloc_func.o getoptdata.o table/strings.h $(STRGEN) $(LANGS) $(LANGS:%=$(BIN_DIR)/lang/%) lang/english.*
mrproper: clean
$(Q)rm -rf $(BIN_DIR)/lang

View File

@@ -6,7 +6,6 @@
# 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/>.
SETTINGSGEN = !!SETTINGSGEN!!
ENDIAN_CHECK = !!ENDIAN_CHECK!!
SRC_DIR = !!SRC_DIR!!
CXX_BUILD = !!CXX_BUILD!!
CFLAGS_BUILD = !!CFLAGS_BUILD!!
@@ -15,8 +14,6 @@ LDFLAGS_BUILD = !!LDFLAGS_BUILD!!
STAGE = !!STAGE!!
SETTING_OBJS_DIR = !!SETTING_OBJS_DIR!!
ENDIAN_TARGETS := endian_host.h endian_target.h $(ENDIAN_CHECK)
# Check if we want to show what we are doing
ifdef VERBOSE
Q =
@@ -32,7 +29,7 @@ settingsgen.o: $(SRC_DIR)/settingsgen/settingsgen.cpp $(SRC_DIR)/string_func.h $
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h $(SRC_DIR)/safeguards.h
alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp $(SRC_DIR)/safeguards.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
@@ -40,7 +37,7 @@ getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h $(SRC_
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/misc/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
string.o: $(SRC_DIR)/string.cpp endian_host.h $(SRC_DIR)/safeguards.h
string.o: $(SRC_DIR)/string.cpp $(SRC_DIR)/safeguards.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
@@ -57,21 +54,11 @@ table/settings.h: $(SETTINGSGEN) $(SRC_DIR)/table/settings.h.preamble $(SRC_DIR)
@mkdir -p table
$(Q)./$(SETTINGSGEN) -o table/settings.h -b $(SRC_DIR)/table/settings.h.preamble -a $(SRC_DIR)/table/settings.h.postamble $(SRC_DIR)/table/*.ini
# The targets to compile the endian-code
endian_host.h: $(ENDIAN_CHECK)
$(E) '$(STAGE) Testing endianness for host'
$(Q)./$(ENDIAN_CHECK) > $@
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
$(E) '$(STAGE) Compiling and Linking $@'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) $< -o $@
depend:
clean:
$(E) '$(STAGE) Cleaning up settings files'
$(Q)rm -f settingsgen.o alloc_func.o getoptdata.o ini_load.o $(SETTINGSGEN) $(ENDIAN_TARGETS) table/settings.h
$(Q)rm -f settingsgen.o alloc_func.o getoptdata.o string.o ini_load.o $(SETTINGSGEN) table/settings.h
mrproper: clean

View File

@@ -29,9 +29,7 @@ SCRIPT_SRC_DIR = !!SCRIPT_SRC_DIR!!
MEDIA_DIR = !!MEDIA_DIR!!
TTD = !!TTD!!
STRGEN = !!STRGEN!!
ENDIAN_CHECK = !!ENDIAN_CHECK!!
DEPEND = !!DEPEND!!
ENDIAN_FORCE = !!ENDIAN_FORCE!!
OS = !!OS!!
STAGE = !!STAGE!!
MAKEDEPEND = !!MAKEDEPEND!!
@@ -40,7 +38,6 @@ SORT = !!SORT!!
AWK = !!AWK!!
CONFIG_CACHE_COMPILER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_COMPILER!!
CONFIG_CACHE_LINKER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_LINKER!!
CONFIG_CACHE_ENDIAN = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_ENDIAN!!
CONFIG_CACHE_SOURCE = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_SOURCE!!
CONFIG_CACHE_VERSION = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_VERSION!!
@@ -52,19 +49,16 @@ OBJS := $(OBJS_C) $(OBJS_CPP) $(OBJS_MM) $(OBJS_RC)
SRCS := !!SRCS!!
# All C-files depend on those 3 files
FILE_DEP := $(CONFIG_CACHE_COMPILER) endian_target.h
FILE_DEP := $(CONFIG_CACHE_COMPILER)
# Create all dirs and subdirs
RES := $(shell mkdir -p $(BIN_DIR) $(sort $(dir $(OBJS))))
# Make sure endian_target.h is reasable as if it was in the src/ dir
CFLAGS += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR) -I $(SETTING_OBJS_DIR)
CFLAGS_MAKEDEP += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR) -I $(SETTING_OBJS_DIR)
ifdef SCRIPT_SRC_DIR
CFLAGS_MAKEDEP += -I $(SCRIPT_SRC_DIR)
endif
ENDIAN_TARGETS := endian_target.h $(ENDIAN_CHECK)
# Check if we want to show what we are doing
ifdef VERBOSE
Q =
@@ -94,26 +88,28 @@ VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ')
# Use autodetected revisions
REV := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
REV_NR := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ')
VERSION := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
ISODATE := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ')
GITHASH := $(shell echo "$(VERSIONS)" | cut -f 4 -d' ')
ISTAG := $(shell echo "$(VERSIONS)" | cut -f 5 -d' ')
ISSTABLETAG := $(shell echo "$(VERSIONS)" | cut -f 6 -d' ')
# Make sure we have something in REV and REV_NR
ifeq ($(REV),)
REV := norev000
# Make sure we have something in VERSION and ISODATE
ifeq ($(VERSION),)
VERSION := norev000
endif
ifeq ($(REV_NR),)
REV_NR := 0
ifeq ($(ISODATE),)
ISODATE := 00000000
endif
# This helps to recompile if flags change
RES := $(shell if [ "`cat $(CONFIG_CACHE_COMPILER) 2>/dev/null`" != "$(CFLAGS) $(CXXFLAGS)" ]; then echo "$(CFLAGS) $(CXXFLAGS)" > $(CONFIG_CACHE_COMPILER); fi )
RES := $(shell if [ "`cat $(CONFIG_CACHE_LINKER) 2>/dev/null`" != "$(LDFLAGS) $(LIBS)" ]; then echo "$(LDFLAGS) $(LIBS)" > $(CONFIG_CACHE_LINKER); fi )
RES := $(shell if [ "`cat $(CONFIG_CACHE_ENDIAN) 2>/dev/null`" != "$(ENDIAN_FORCE)" ]; then echo "$(ENDIAN_FORCE)" > $(CONFIG_CACHE_ENDIAN); fi )
# If there is a change in the source-file-list, make sure we recheck the deps
RES := $(shell if [ "`cat $(CONFIG_CACHE_SOURCE) 2>/dev/null`" != "$(SRCS)" ]; then echo "$(SRCS)" > $(CONFIG_CACHE_SOURCE); fi )
# If there is a change in the revision, make sure we recompile rev.cpp
RES := $(shell if [ "`cat $(CONFIG_CACHE_VERSION) 2>/dev/null`" != "$(REV) $(MODIFIED)" ]; then echo "$(REV) $(MODIFIED)" > $(CONFIG_CACHE_VERSION); fi )
RES := $(shell if [ "`cat $(CONFIG_CACHE_VERSION) 2>/dev/null`" != "$(VERSION) $(MODIFIED)" ]; then echo "$(VERSION) $(MODIFIED)" > $(CONFIG_CACHE_VERSION); fi )
ifndef MAKEDEPEND
# The slow, but always correct, dep-check
@@ -121,7 +117,7 @@ DEP_MASK := %.d
DEPS := $(OBJS:%.o=%.d)
# Only include the deps if we are compiling everything
ifeq ($(filter $(ENDIAN_TARGETS) %.o clean mrproper, $(MAKECMDGOALS)),)
ifeq ($(filter %.o clean mrproper, $(MAKECMDGOALS)),)
-include $(DEPS)
else
# In case we want to compile a single target, include the .d file for it
@@ -155,7 +151,7 @@ DEP_MASK :=
DEPS := Makefile.dep
# Only include the deps if we are not cleaning
ifeq ($(filter $(ENDIAN_TARGETS) depend clean mrproper, $(MAKECMDGOALS)),)
ifeq ($(filter depend clean mrproper, $(MAKECMDGOALS)),)
-include Makefile.dep
endif
@@ -166,6 +162,19 @@ $(SRC_OBJS_DIR)/$(DEPEND): $(SRC_DIR)/depend/depend.cpp
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) -o $@ $<
endif
# Macro for invoking a command on groups of 100 words at a time
# (analogous to xargs(1)). The macro invokes itself recursively
# until the list of words is depleted.
#
# Usage: $(call xargs,COMMAND,LIST)
#
# COMMAND should be a shell command to which the words will be
# appended as arguments in groups of 100.
define xargs
$(1) $(wordlist 1,100,$(2))
$(if $(word 101,$(2)),$(call xargs,$(1),$(wordlist 101,$(words $(2)),$(2))))
endef
# Make sure that only 'make depend' ALWAYS triggers a recheck
ifeq ($(filter depend, $(MAKECMDGOALS)),)
Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(CONFIG_CACHE_SOURCE) $(DEP)
@@ -177,14 +186,7 @@ endif
$(Q)touch Makefile.dep.tmp
# Calculate the deps via makedepend
$(Q)$(MAKEDEPEND) -f$(SRC_OBJS_DIR)/Makefile.dep.tmp -o.o -Y -v -- $(CFLAGS_MAKEDEP) -- $(SRCS:%=$(SRC_DIR)/%) 2>/dev/null
# Convert x:/... paths to /x/... for mingw
ifeq ($(OS), MINGW)
@cat Makefile.dep.tmp | sed 's@/\([a-zA-Z]\):\/@\/\1\/@g' > Makefile.dep.tmp.mingw
@cp Makefile.dep.tmp.mingw Makefile.dep.tmp
@rm -f Makefile.dep.tmp.mingw
endif
$(call xargs,$(Q)$(MAKEDEPEND) -f$(SRC_OBJS_DIR)/Makefile.dep.tmp -o.o -Y -v -a -- $(CFLAGS_MAKEDEP) -- 2>/dev/null,$(SRCS:%=$(SRC_DIR)/%))
# Remove all comments and includes that don't start with $(SRC_DIR)
# Remove $(SRC_DIR) from object-file-name
@@ -251,7 +253,7 @@ $(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP)
$(OBJS_RC): %.o: $(SRC_DIR)/%.rc $(FILE_DEP)
$(E) '$(STAGE) Compiling resource $(<:$(SRC_DIR)/%.rc=%.rc)'
$(Q)$(WINDRES) -o $@ -I `basename $<` $<
$(Q)$(WINDRES) -o $@ $<
$(BIN_DIR)/$(TTD): $(TTD)
$(Q)cp $(TTD) $(BIN_DIR)/$(TTD)
@@ -264,14 +266,7 @@ endif
$(TTD): $(OBJS) $(CONFIG_CACHE_LINKER)
$(E) '$(STAGE) Linking $@'
ifeq ($(OS), PSP)
# Because of a bug in the PSP GCC tools, linking via CXX results
# in total chaos and more problems then you can handle. So we need
# CC to link OpenTTD for PSP
$(Q)+$(CC_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
else
$(Q)+$(CXX_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
endif
ifdef STRIP
$(Q)$(STRIP) $@
endif
@@ -280,23 +275,13 @@ ifeq ($(OS), DOS)
$(Q)$(ROOT_DIR)/os/dos/make_dos_binary_selfcontained.sh $(SRC_OBJS_DIR)/$@
endif
# The targets to compile the endian-code
endian_target.h: $(ENDIAN_CHECK) $(CONFIG_CACHE_ENDIAN)
$(E) '$(STAGE) Testing endianness for target'
$(Q)./$(ENDIAN_CHECK) $(ENDIAN_FORCE) > $@
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
$(E) '$(STAGE) Compiling and Linking $@'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) $< -o $@
# Revision files
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/rev.cpp
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g;s@!!ISSTABLETAG!!@$(ISSTABLETAG)@g" > $(SRC_DIR)/rev.cpp
$(SRC_DIR)/os/windows/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/os/windows/ottdres.rc.in
$(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/os/windows/ottdres.rc
$(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g;s@!!ISSTABLETAG!!@$(ISSTABLETAG)@g" > $(SRC_DIR)/os/windows/ottdres.rc
FORCE:
@@ -304,7 +289,7 @@ depend: $(DEPS)
clean:
$(E) '$(STAGE) Cleaning up object files'
$(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(DEPEND) $(TTD:%=$(BIN_DIR)/%) $(BIN_DIR)/baseset/openttd.32.bmp $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_ENDIAN) $(CONFIG_CACHE_SOURCE) $(ENDIAN_TARGETS)
$(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(DEPEND) $(TTD:%=$(BIN_DIR)/%) $(BIN_DIR)/baseset/openttd.32.bmp $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_SOURCE)
mrproper: clean
$(Q)rm -f $(SRC_DIR)/rev.cpp $(SRC_DIR)/os/windows/ottdres.rc

839
README.md Normal file
View File

@@ -0,0 +1,839 @@
# OpenTTD
## Table of contents
- 1.0) [About](#10-about)
- 2.0) [Contacting](#20-contacting)
- 2.1) [Reporting bugs](#21-reporting-bugs)
- 2.2) [Reporting desyncs](#22-reporting-desyncs)
- 3.0) [Supported platforms](#30-supported-platforms)
- 4.0) [Installing and running OpenTTD](#40-installing-and-running-openttd)
- 4.1) [(Required) 3rd party files](#41-required-3rd-party-files)
- 4.2) [OpenTTD directories](#42-openttd-directories)
- 4.3) [Portable installations (portable media)](#43-portable-installations-portable-media)
- 4.4) [Files in tar (archives)](#44-files-in-tar-archives)
- 5.0) [OpenTTD features](#50-openttd-features)
- 5.1) [Logging of potentially dangerous actions](#51-logging-of-potentially-dangerous-actions)
- 5.2) [Frame rate and performance metrics](#52-frame-rate-and-performance-metrics)
- 6.0) [Configuration file](#60-configuration-file)
- 7.0) [Compiling](#70-compiling)
- 7.1) [Required/optional libraries](#71-requiredoptional-libraries)
- 7.2) [Supported compilers](#72-supported-compilers)
- 7.3) [Compilation of base sets](#73-compilation-of-base-sets)
- 8.0) [Translating](#80-translating)
- 8.1) [Translation](#81-translation)
- 8.2) [Previewing](#82-previewing)
- 9.0) [Troubleshooting](#90-troubleshooting)
- 10.0) [Licensing](#100-licensing)
- X.X) [Credits](#xx-credits)
## 1.0) About
OpenTTD is a transport simulation game based upon the popular game Transport
Tycoon Deluxe, written by Chris Sawyer. It attempts to mimic the original
game as closely as possible while extending it with new features.
OpenTTD is licensed under the GNU General Public License version 2.0,
but includes some 3rd party software under different licenses. See the
section "Licensing" below for details.
## 2.0) Contacting
The easiest way to contact the OpenTTD team is by submitting bug reports or
posting comments in our forums. You can also chat with us on IRC (#openttd
on irc.oftc.net).
The OpenTTD homepage is https://www.openttd.org.
You can also find the OpenTTD forums at
[https://www.tt-forums.net](https://www.tt-forums.net/viewforum.php?f=55).
### 2.1) Reporting bugs
First of all, check whether the bug is not already known. Do this by looking
through the file called 'known-bugs.txt' which is distributed with OpenTTD
like this readme.
For tracking our bugs we are using GitHub's issue tracker. You can find
the tracker at https://github.com/OpenTTD/OpenTTD/issues. Before actually
reporting take a look through the already reported bugs there to see if
the bug is already known. The 'known-bugs.txt' file might be a bit outdated
at the moment you are reading it as only bugs known before the release
are documented there. Also look through the recently closed bugs.
When you are sure it is not already reported you should:
- Make sure you are running a recent version, i.e. run the latest stable or
nightly based on where you found the bug.
- Make sure you are not running a non-official binary, like a patch pack.
When you are playing with a patch pack you should report any bugs to the
forum thread related to that patch pack.
- Make it reproducible for the developers. In other words, create a savegame
in which you can reproduce the issue once loaded. It is very useful to give
us the crash.dmp, crash.sav, crash.log and crash screenshot which are
created on crashes.
- Check whether the bug is already reported on our bug tracker. This includes
searching for recently closed bug reports as the bug might already be fixed.
After you have done all that you can report the bug. Please include the
following information in your bug report:
- OpenTTD version (PLEASE test the latest Git revision/nightly build)
- Bug details, including instructions how to reproduce it
- Platform (Windows, Linux, FreeBSD, …) and compiler (including version) if
you compiled OpenTTD yourself.
- The processor architecture of your OS (32-bit Windows, 64-bit Windows,
Linux on an ARM, Mac OS X on a PowerPC, etc.)
- Attach a saved game **and** a screenshot if possible
- If this bug only occurred recently please note the last version without
the bug and the first version including the bug. That way we can fix it
quicker by looking at the changes made.
- Attach crash.dmp, crash.log and crash.sav. These files are usually created
next to your openttd.cfg. The crash handler will tell you the location.
### 2.2) Reporting desyncs
As desyncs are hard to make reproducible OpenTTD has the ability to log all
actions done by clients so we can replay the whole game in an effort to make
desyncs better reproducible. You need to turn this ability on. When turned
on an automatic savegame will be made once the map has been constructed in
the 'save/autosave' directory, see OpenTTD directories to know where to find
this directory. Furthermore the log file 'commands-out.log' will be created
and all actions will be written to there.
To enable the desync debugging you need to set the debug level for 'desync'
to at least 1. You do this by starting OpenTTD with '`-d desync=<level>`' as
parameter or by typing '`debug_level desync=<level>`' in OpenTTD's internal
console.
The desync debug levels are:
- 0: nothing.
- 1: dumping of commands to 'commands-out.log'.
- 2: same as 1 plus checking vehicle caches and dumping that too.
- 3: same as 2 plus monthly saves in autosave.
- 4 and higher: same as 3
Restarting OpenTTD will overwrite 'commands-out.log'. OpenTTD will not remove
the savegames (dmp_cmds_*.sav) made by the desync debugging system, so you
have to occasionally remove them yourself!
The naming format of the desync savegames is as follows:
dmp_cmds_XXXXXXXX_YYYYYYYY.sav. The XXXXXXXX is the hexadecimal representation
of the generation seed of the game and YYYYYYYY is the hexadecimal
representation of the date of the game. This sorts the savegames by game and
then by date making it easier to find the right savegames.
When a desync has occurred with the desync debugging turned on you should file
a bug report with the following files attached:
- commands-out.log as it contains all the commands that were done
- the last saved savegame (search for the last line beginning with
'save: dmp_cmds_' in commands-out.log). We use this savegame to check
whether we can quickly reproduce the desync. Otherwise we will need …
- the first saved savegame (search for the first line beginning with 'save'
where the first part, up to the last underscore '_', is the same). We need
this savegame to be able to reproduce the bug when the last savegame is not
old enough. If you loaded a scenario or savegame you need to attach that.
- optionally you can attach the savegames from around 50%, 75%, 85%, 90% and
95% of the game's progression. We can use these savegames to speed up the
reproduction of the desync, but we should be able to reproduce these
savegames based on the first savegame and commands-out.log.
- in case you use any NewGRFs you should attach the ones you used unless
we can easily find them ourselves via bananas or when they are in the
#openttdcoop pack.
Do NOT remove the dmp_cmds savegames of a desync you have reported until the
desync has been fixed; if you, by accident, send us the wrong savegames we
will not be able to reproduce the desync and thus will be unable to fix it.
## 3.0) Supported platforms
OpenTTD has been ported to several platforms and operating systems. It should
not be very difficult to port it to a new platform. The currently working
platforms are:
- BeOS (SDL or Allegro)
- DOS (Allegro)
- FreeBSD (SDL)
- Linux (SDL or Allegro)
- macOS (universal) (Cocoa video and sound drivers)
- MorphOS (SDL)
- OpenBSD (SDL)
- OS/2 (SDL)
- Windows (Win32 GDI (faster) or SDL or Allegro)
## 4.0) Installing and running OpenTTD
Installing OpenTTD is fairly straightforward. Either you have downloaded an
archive which you have to extract to a directory where you want OpenTTD to
be installed, or you have downloaded an installer, which will automatically
extract OpenTTD in the given directory.
OpenTTD looks in multiple locations to find the required data files (described
in section 4.2). Installing any 3rd party files into a 'shared' location has
the advantage that you only need to do this step once, rather than copying the
data files into all OpenTTD versions you have.
Savegames, screenshots, etc are saved relative to the config file (openttd.cfg)
currently being used. This means that if you use a config file in one of the
shared directories, savegames will reside in the save/ directory next to the
openttd.cfg file there.
If you want savegames and screenshots in the directory where the OpenTTD binary
resides, simply have your config file in that location. But if you remove this
config file, savegames will still be in this directory (see notes in
section 4.2 'OpenTTD directories')
OpenTTD comes without AIs, so if you want to play with AIs you have to download
them. The easiest way is via the 'Check Online Content' button in the main menu.
You can select some AIs that you think are compatible with your playing style.
Another way is manually downloading the AIs from the forum although then you
need to make sure that you install all the required AI libraries too; they get
automatically selected (and downloaded) if you get the AIs via the 'Check
Online Content'. If you do not have an AI but have configured OpenTTD to start
an AI a message will be shown that the 'dummy' AI has been started.
### 4.1) (Required) 3rd party files
Before you run OpenTTD, you need to put the game's data files into a baseset/
directory which can be located in various places addressed in the following
section.
For OpenTTD you need to acquire some third party data files. For this you have
the choice of using the original Transport Tycoon Deluxe data files or a set
of free data files.
Do NOT copy files included with OpenTTD into 'shared' directories (explained in
the following sections) as sooner or later you will run into graphical glitches
when using other versions of the game.
#### 4.1.1) Free graphics and sound files
The free data files, split into OpenGFX for graphics, OpenSFX for sounds and
OpenMSX for music can be found at:
- https://www.openttd.org/download-opengfx for OpenGFX
- https://www.openttd.org/download-opensfx for OpenSFX
- https://www.openttd.org/download-openmsx for OpenMSX
Please follow the readme of these packages about the installation procedure.
The Windows installer can optionally download and install these packages.
#### 4.1.2) Original Transport Tycoon Deluxe graphics and sound files
If you want to play with the original Transport Tycoon Deluxe data files you
have to copy the data files from the CD-ROM into the baseset/ directory. It
does not matter whether you copy them from the DOS or Windows version of
Transport Tycoon Deluxe. The Windows install can optionally copy these files.
You need to copy the following files:
- sample.cat
- trg1r.grf or TRG1.GRF
- trgcr.grf or TRGC.GRF
- trghr.grf or TRGH.GRF
- trgir.grf or TRGI.GRF
- trgtr.grf or TRGT.GRF
#### 4.1.3) Original Transport Tycoon Deluxe music
If you want the Transport Tycoon Deluxe music, copy the appropriate files from
the original game into the baseset folder.
- TTD for Windows: All files in the gm/ folder (gm_tt00.gm up to gm_tt21.gm)
- TTD for DOS: The GM.CAT file
- Transport Tycoon Original: The GM.CAT file, but rename it to GM-TTO.CAT
#### 4.1.4) AIs
If you want AIs use the in-game content downloader. If for some reason that is
not possible or you want to use an AI that has not been uploaded to the content
download system download the tar file and place it in the ai/ directory. If the
AI needs libraries you will have to download those too and put them in the
ai/library/ directory. All AIs and AI Libraries that have been uploaded to
the content download system can be found at https://noai.openttd.org/downloads.
The AIs and libraries can be found their in the form of .tar.gz packages.
OpenTTD can read inside tar files but it does not extract .tar.gz files by itself.
To figure out which libraries you need for an AI you have to start the AI and
wait for an error message to pop up. The error message will tell you
'could not find library "lib-name"'. Download that library and try again.
#### 4.1.5) Game scripts
If you want an extra challenge in OpenTTD you can download so-called game
scripts via the in-game content downloader. These game scripts have varying
functionality, though they can generally influence town growth, subsidies, add
goals to reach or provide a different ranking system.
If you download a game script manually you have to follow the same rules as for
AIs, except that game scripts are placed in the game/ directory instead of the
ai/ directory.
### 4.2) OpenTTD directories
OpenTTD uses its own directory to store its required 3rd party base set files
(see section 4.1 'Required 3rd party files') and non-compulsory extension and
configuration files. See below for their proper place within this OpenTTD main
data directory.
The main OpenTTD directories can be found in various locations, depending on
your operating system:
1. The current working directory (from where you started OpenTTD)
For non-Windows operating systems OpenTTD will not scan for files in this
directory if it is your personal directory, i.e. '~/', or when it is the
root directory, i.e. '/'.
2. Your personal directory
- Windows:
- `C:\My Documents\OpenTTD` (95, 98, ME)
- `C:\Documents and Settings\<username>\My Documents\OpenTTD` (2000, XP)
- `C:\Users\<username>\Documents\OpenTTD` (Vista, 7, 8.1, 10)
- macOS: `~/Documents/OpenTTD`
- Linux: `$XDG_DATA_HOME/openttd` which is usually `~/.local/share/openttd`
when built with XDG base directory support, otherwise `~/.openttd`
3. The shared directory
- Windows:
- `C:\Documents and Settings\All Users\Shared Documents\OpenTTD` (2000, XP)
- `C:\Users\Public\Documents\OpenTTD` (Vista, 7, 8.1, 10)
- macOS: `/Library/Application Support/OpenTTD`
- Linux: not available
4. The binary directory (where the OpenTTD executable is)
- Windows: `C:\Program Files\OpenTTD`
- Linux: `/usr/games`
5. The installation directory (Linux only)
- Linux: `/usr/share/games/openttd`
6. The application bundle (macOS only)
It includes the OpenTTD files (grf+lng) and it will work as long as they
are not touched
Different types of data or extensions go into different subdirectories of the
chosen main OpenTTD directory:
| data type | directory | additional info |
| ------------------- | ----------------- | --------------------------- |
| Config File | (no subdirectory) | |
| Screenshots | screenshot | |
| Base Graphics | baseset | (or a subdirectory thereof) |
| Sound Sets | baseset | (or a subdirectory thereof) |
| NewGRFs | newgrf | (or a subdirectory thereof) |
| 32bpp Sets | newgrf | (or a subdirectory thereof) |
| Music Sets | baseset | (or a subdirectory thereof) |
| AIs | ai | (or a subdirectory thereof) |
| AI Libraries | ai/library | (or a subdirectory thereof) |
| Game Scripts (GS) | game | (or a subdirectory thereof) |
| GS Libraries | game/library | (or a subdirectory thereof) |
| Savegames | save | |
| Automatic Savegames | save/autosave | |
| Scenarios | scenario | |
The (automatically created) directory content_download is for OpenTTD's internal
use and no files should be added to it or its subdirectories manually.
#### Notes:
- Linux in the previous list means .deb, but most paths should be similar for
others.
- The previous search order is also used for NewGRFs and openttd.cfg.
- If openttd.cfg is not found, then it will be created using the 2, 4, 1, 3,
5 order. When built with XDG base directory support, openttd.cfg will be
created in $XDG_CONFIG_HOME/openttd which is usually ~/.config/openttd.
- Savegames will be relative to the config file only if there is no save/
directory in paths with higher priority than the config file path, but
autosaves and screenshots will always be relative to the config file.
Unless the configuration file is in $XDG_CONFIG_HOME/openttd, then all
other files will be saved under $XDG_DATA_HOME/openttd.
#### The preferred setup:
Place 3rd party files in shared directory (or in personal directory if you do
not have write access on shared directory) and have your openttd.cfg config
file in personal directory (where the game will then also place savegames and
screenshots).
### 4.3) Portable installations (portable media)
You can install OpenTTD on external media so you can take it with you, i.e.
using a USB key, or a USB HDD, etc.
Create a directory where you shall store the game in (i.e. OpenTTD/).
Copy the binary (OpenTTD.exe, OpenTTD.app, openttd, etc), baseset/ and your
openttd.cfg to this directory.
You can copy binaries for any operating system into this directory, which will
allow you to play the game on nearly any computer you can attach the external
media to.
As always - additional grf files are stored in the newgrf/ dir (for details,
again, see section 4.1).
### 4.4) Files in tar (archives)
OpenTTD can read files that are in an uncompressed tar (archive), which
makes it easy to bundle files belonging to the same script, NewGRF or base
set. Music sets are the only exception as they cannot be stored in a tar
file due to being played by external applications.
OpenTTD sees each tar archive as the 'root' of its search path. This means that
having a file with the same path in two different tar files means that one
cannot be opened, after all only one file will be found first. As such it is
advisable to put an uniquely named folder in the root of the tar and put all the
content in that folder. For example, all downloaded content has a path that
concatenates the name of the content and the version, which makes the path
unique. For custom tar files it is advised to do this as well.
The normal files are also referred to by their relative path from the search
directory, this means that also normal files could hide files in a tar as
long as the relative path from the search path of the normal file is the
same as the path in the tar file. Again it is advised to have an unique path
to the normal file so they do not collide with the files from other tar
files.
## 5.0) OpenTTD features
OpenTTD has a lot of features going beyond the original Transport Tycoon Deluxe
emulation. Unfortunately, there is currently no comprehensive list of features,
but there is a basic features list on the web, and some optional features can be
controlled through the Advanced Settings dialog. We also implement some
features known from [TTDPatch](https://www.ttdpatch.net).
Several important non-standard controls:
- Ctrl modifies many commands and makes them more powerful. For example Ctrl
clicking on signals with the build signal tool changes their behaviour,
holding Ctrl while the track build tool is activated changes it to the track
removal tool, and so on. See https://wiki.openttd.org/Hidden_features
for a non-comprehensive list or look at the tooltips.
- Ingame console. More information at https://wiki.openttd.org/Console
- Hovering over a GUI element shows tooltips. This can be changed to right click
via the advanced settings.
### 5.1) Logging of potentially dangerous actions
OpenTTD is a complex program, and together with NewGRF, it may show a buggy
behaviour. But not only bugs in code can cause problems. There are several
ways to affect game state possibly resulting in program crash or multiplayer
desyncs.
Easier way would be to forbid all these unsafe actions, but that would affect
game usability for many players. We certainly do not want that.
However, we receive bug reports because of this. To reduce time spent with
solving these problems, these potentially unsafe actions are logged in
the savegame (including crash.sav). Log is stored in crash logs, too.
Information logged:
- Adding / removing / changing order of NewGRFs
- Changing NewGRF parameters, loading compatible NewGRF
- Changing game mode (scenario editor <-> normal game)
- Loading game saved in a different OpenTTD / TTDPatch / Transport Tycoon Deluxe /
original Transport Tycoon version
- Running a modified OpenTTD build
- Changing settings affecting NewGRF behaviour (non-network-safe settings)
- Triggering NewGRF bugs
No personal information is stored.
You can show the game log by typing 'gamelog' in the console or by running
OpenTTD in debug mode.
### 5.2) Frame rate and performance metrics
The Help menu in-game has a function to open the Frame rate window. This
window shows various real-time performance statistics, measuring what parts
of the game require the most processing power currently.
A summary of the statistics can also be retrieved from the console with the
`fps` command. This is especially useful on dedicated servers, where the
administrator might want to determine what's limiting performance in a slow
game.
The frame rate is given as two figures, the simulation rate and the graphics
frame rate. Usually these are identical, as the screen is rendered exactly
once per simulated tick, but in the future there might be support for graphics
and simulation running at different rates. When the game is paused, the
simulation rate drops to zero.
In addition to the simulation rate, a game speed factor is also calculated.
This is based on the target simulation speed, which is 30 milliseconds per
game tick. At that speed, the expected frame rate is 33.33 frames/second, and
the game speed factor is how close to that target the actual rate is. When
the game is in fast forward mode, the game speed factor shows how much
speed up is achieved.
The lower part of the window shows timing statistics for individual parts of
the game. The times shown are short-term and long-term averages of how long
it takes to process one tick of game time, all figures are in milliseconds.
Clicking a line in the lower part of the window opens a graph window, giving
detailed readings on each tick simulated by the game.
The following is an explanation of the different statistics:
- *Game loop* - Total processing time used per simulated "tick" in the game.
This includes all pathfinding, world updates, and economy handling.
- *Cargo handling* - Time spent loading/unloading cargo at stations, and
industries and towns sending/retrieving cargo from stations.
- *Train ticks*, *Road vehicle ticks*, *Ship ticks*, *Aircraft ticks* -
Time spent on pathfinding and other processing for each player vehicle type.
- *World ticks* - Time spent on other world/landscape processing. This
includes towns growing, building animations, updates of farmland and trees,
and station rating updates.
- *GS/AI total*, *Game script*, and *AI players* - Time spent running logic
for game scripts and AI players. The total may show as less than the current
sum of the individual scripts, this is because AI players at lower
difficulty settings do not run every game tick, and hence contribute less
to the average across all ticks. Keep in mind that the "Current" figure is
also an average, just only over short term.
- *Link graph delay* - Time overruns of the cargo distribution link graph
update thread. Usually the link graph is updated in a background thread,
but these updates need to synchronise with the main game loop occasionally,
if the time spent on link graph updates is longer than the time taken to
otherwise simulate the game while it was updating, these delays are counted
in this figure.
- *Graphics rendering* - Total time spent rendering all graphics, including
both GUI and world viewports. This typically spikes when panning the view
around, and when more things are happening on screen at once.
- *World viewport rendering* - Isolated time spent rendering just world
viewports. If this figure is significantly lower than the total graphics
rendering time, most time is spent rendering GUI than rendering world.
- *Video output* - Speed of copying the rendered graphics to the display
adapter. Usually this should be very fast (in the range of 0-3 ms), large
values for this can indicate a graphics driver problem.
- *Sound mixing* - Speed of mixing active audio samples together. Usually
this should be very fast (in the range of 0-3 ms), if it is slow, consider
switching to the NoSound set.
If the frame rate window is shaded, the title bar will instead show just the
current simulation rate and the game speed factor.
## 6.0) Configuration file
The configuration file for OpenTTD (openttd.cfg) is in a simple Windows-like
.INI format. It is mostly undocumented. Almost all settings can be changed
ingame by using the 'Advanced Settings' window.
When you cannot find openttd.cfg you should look in the directories as
described in section 4.2. If you do not have an openttd.cfg OpenTTD will
create one after closing.
## 7.0) Compiling
### Windows:
You need Microsoft Visual Studio 2015 Update 3 or more recent. Open the project file
and it should build automatically. In case you want to build with SDL support
you need to add WITH_SDL to the project settings.
PNG (WITH_PNG), ZLIB (WITH_ZLIB), LZO (WITH_LZO), Freetype (WITH_FREETYPE) and
LZMA (WITH_LZMA) support is enabled by default. For these to work you need their
development files. To get them just use vcpkg from https://github.com/Microsoft/vcpkg
using x86-windows-static and x64-windows-static triplets.
For more help with VS see docs/Readme_Windows_MSVC.md.
You can also build it using the Makefile with MSYS/MinGW or Cygwin/MinGW.
Please read the Makefile for more information.
### Solaris, FreeBSD, OpenBSD:
Use '`gmake`', but do a '`./configure`' before the first build.
### Linux/Unix:
OpenTTD can be built with GNU '`make`'. On non-GNU systems it is called '`gmake`'.
However, for the first build one has to do a '`./configure`' first.
### macOS:
Use '`make`' or Xcode (which will then call make for you)
This will give you a binary for your CPU type (PPC/Intel)
However, for the first build one has to do a '`./configure`' first.
To make a universal binary type '`./configure --enabled-universal`'
instead of '`./configure`'.
### BeOS:
Use '`make`', but do a '`./configure`' before the first build.
### MorphOS:
Use '`make`'. However, for the first build one has to do a '`./configure`'
first. Note that you need the MorphOS SDK, latest libnix updates (else C++
parts of OpenTTD will not build) and the powersdl.library SDK. Optionally libz,
libpng and freetype2 developer files.
### OS/2:
A comprehensive GNU build environment is required to build the OS/2 version.
See the docs/Readme_OS2.txt file for more information.
### DOS:
A build environment with DJGPP is needed as well as libraries such as
Allegro, zlib and libpng, which all can be downloaded from the DJGPP
website. Compilation is straight forward: use '`make`', but do a '`./configure`'
before the first build. The build binary will need cwsdpmi.exe to be in
the same directory as the openttd executable. cwsdpmi.exe can be found in
the os/dos/cwsdpmi subdirectory. If you compile with stripping turned on a
binary will be generated that does not need cwsdpmi.exe by adding the
cswdstub.exe to the created OpenTTD binary.
### 7.1) Required/optional libraries
The following libraries are used by OpenTTD for:
- libSDL/liballegro: hardware access (video, sound, mouse)
- zlib: (de)compressing of old (0.3.0-1.0.5) savegames, content downloads,
heightmaps
- liblzo2: (de)compressing of old (pre 0.3.0) savegames
- liblzma: (de)compressing of savegames (1.1.0 and later)
- libpng: making screenshots and loading heightmaps
- libfreetype: loading generic fonts and rendering them
- libfontconfig: searching for fonts, resolving font names to actual fonts
- libicu: handling of right-to-left scripts (e.g. Arabic and Persian) and
natural sorting of strings.
OpenTTD does not require any of the libraries to be present, but without
liblzma you cannot open most recent savegames and without zlib you cannot
open most older savegames or use the content downloading system.
Without libSDL/liballegro on non-Windows and non-macOS machines you have
no graphical user interface; you would be building a dedicated server.
### 7.2) Supported compilers
The following compilers are known to compile OpenTTD:
- Microsoft Visual C++ (MSVC) 2015, 2017 and 2019.
- GNU Compiler Collection (GCC) 3.3 - 4.4, 4.6 - 4.8.
- Versions 4.1 and earlier give bogus warnings about uninitialised variables.
- Versions 4.4, 4.6 give bogus warnings about freeing non-heap objects.
- Versions 4.6 and later give invalid warnings when lto is enabled.
- Intel C++ Compiler (ICC) 12.0.
- Clang/LLVM 2.9 - 3.0
Version 2.9 gives bogus warnings about code nonconformity.
The following compilers are known not to compile OpenTTD:
- Microsoft Visual C++ (MSVC) 2013 and earlier.
These old versions do not support modern C++ language features.
- GNU Compiler Collection (GCC) 3.2 and earlier.
These old versions fail due to OpenTTD's template usage.
- GNU Compiler Collection (GCC) 4.5. It optimizes enums too aggressively.
See https://github.com/OpenTTD/OpenTTD/issues/5513 and references therein.
- Intel C++ Compiler (ICC) 11.1 and earlier.
- Version 10.0 and earlier fail a configure check and fail with recent
system headers.
- Version 10.1 fails to compile station_gui.cpp.
- Version 11.1 fails with an internal error when compiling network.cpp.
- Clang/LLVM 2.8 and earlier.
- (Open) Watcom.
If any of these compilers can compile OpenTTD again, please let us know.
Patches to support more compilers are welcome.
### 7.3) Compilation of base sets
To recompile the extra graphics needed to play with the original Transport
Tycoon Deluxe graphics you need GRFCodec (which includes NFORenum) as well.
GRFCodec can be found at https://www.openttd.org/download-grfcodec.
The compilation of these extra graphics does generally not happen, unless
you remove the graphics file using '`make maintainer-clean`'.
Re-compilation of the base sets, thus also use of '`--maintainer-clean`' can
leave the repository in a modified state as different grfcodec versions can
cause binary differences in the resulting grf. Also translations might have
been added for the base sets which are not yet included in the base set
information files. Use the configure option '`--without-grfcodec`' to avoid
modification of the base set files by the build process.
## 8.0) Translating
See https://www.openttd.org/development for up-to-date information.
The use of the online Translator service, located at
https://translator.openttd.org, is highly encouraged. For getting an account
simply follow the guidelines in the FAQ of the translator website.
If for some reason the website is down for a longer period of time, the
information below might be of help.
Please contact the translations manager (https://www.openttd.org/contact)
before beginning the translation process! This avoids double work, as
someone else may have already started translating to the same language.
### 8.1) Translation
So, now that you have notified the development team about your intention to
translate (You did, right? Of course you did.) you can pick up english.txt
(found in the Git repository under /src/lang) and translate.
You must change the first two lines of the file appropriately:
##name English-Name-Of-Language
##ownname Native-Name-Of-Language
Note: Do not alter the following parts of the file:
- String identifiers (the first word on each line)
- Parts of the strings which are in curly braces (such as {STRING})
- Lines beginning with ## (such as ##id), other than the first two lines
of the file
### 8.2) Previewing
In order to view the translation in the game, you need to compile your language
file with the strgen utility. As this utility is tailored to a specific OpenTTD
version, you need to compile it yourself. Just take the normal OpenTTD sources
and build that. During the build process the strgen utility will be made.
strgen is a command-line utility. It takes the language filename as parameter.
Example:
strgen lang/german.txt
This results in compiling german.txt and produces another file named german.lng.
Any missing strings are replaced with the English strings. Note that it looks
for english.txt in the lang subdirectory, which is where your language file
should also be.
That is all! You should now be able to select the language in the game options.
## 9.0) Troubleshooting
To see all startup options available to you, start OpenTTD with the
'`./openttd -h`' option. This might help you tweak some of the settings.
If the game is acting strange and you feel adventurous you can try the
'`-d [[<name>=]<level>]`' flag, where the higher levels will give you more
debugging output. The 'name' variable can help you to display only some type of
debugging messages. This is mostly undocumented so best is to look in the
source code file debug.c for the various debugging types. For more information
look at https://wiki.openttd.org/Command_line.
The most frequent problem is missing data files. Please install OpenGFX and
possibly OpenSFX and OpenMSX. See section 4.1.1 for more information.
Under certain circumstance, especially on Ubuntu OpenTTD can be extremely slow
and/or freeze. See known-bugs.txt for more information and how to solve this
problem on your computer.
Under Windows 98 and lower it is impossible to use a dedicated server; it will
fail to start. Perhaps this is for the better because those OSes are not known
for their stability.
With the added support for font-based text selecting a non-latin language can
result in lots of question marks ('?') being shown on screen. Please open your
configuration file (openttd.cfg - see Section 4.2 for where to find it)
and add a suitable font for the small, medium and / or large font, e.g.:
small_font = "Tahoma"
medium_font = "Tahoma"
large_font = "Tahoma"
You should use a font name like 'Tahoma' or a path to the desired font.
Any NewGRF file used in a game is stored inside the savegame and will refuse to
load if you do not have that NewGRF file available. A list of missing files can
be viewed in the NewGRF window accessible from the file load dialogue window.
You can try to obtain the missing files from that NewGRF dialogue or if they
are not available online you can search manually through our
[forum's graphics development section](https://www.tt-forums.net/viewforum.php?f=66)
or [GRFCrawler](https://grfcrawler.tt-forums.net). Put the NewGRF files in
OpenTTD's newgrf folder (see section 4.2 'OpenTTD directories') and rescan the
list of available NewGRFs. Once you have all missing files, you are set to go.
## 10.0) Licensing
OpenTTD is licensed under the GNU General Public License version 2.0. For
the complete license text, see the file 'COPYING'. This license applies
to all files in this distribution, except as noted below.
The squirrel implementation in src/3rdparty/squirrel is licensed under
the Zlib license. See src/3rdparty/squirrel/COPYRIGHT for the complete
license text.
The md5 implementation in src/3rdparty/md5 is licensed under the Zlib
license. See the comments in the source files in src/3rdparty/md5 for
the complete license text.
The implementations of Posix getaddrinfo and getnameinfo for OS/2 in
src/3rdparty/os2 are distributed partly under the GNU Lesser General Public
License 2.1, and partly under the (3-clause) BSD license. The exact licensing
terms can be found in src/3rdparty/os2/getaddrinfo.c resp.
src/3rdparty/os2/getnameinfo.c.
The exe2coff implementation in os/dos/exe2coff is available under the
GPL, with a number of additional terms. See os/dos/exe2coff/copying and
os/dos/exe2coff/copying.dj for the exact licensing terms.
The CWSDPMI implementation in os/dos/cwsdpmi is distributed under a
custom binary-only license that prohibits modification. The exact
licensing terms can be found in os/dos/cwsdpmi/cwsdpmi.txt. The sources
for these files can be downloaded at its author site, at
http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi5s.zip.
CONTRIBUTING.md is adapted from
[Bootstrap](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md)
under the [Creative Commons Attribution 3.0 Unported
License](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE)
terms for Bootstrap documentation.
## X.X) Credits
### The OpenTTD team (in alphabetical order):
- Grzegorz Duczyński (adf88) - General coding (since 1.7.2)
- Albert Hofkamp (Alberth) - GUI expert (since 0.7)
- Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)
- Ulf Hermann (fonsinchen) - Cargo Distribution (since 1.3)
- Christoph Elsenhans (frosch) - General coding (since 0.6)
- Loïc Guilloux (glx) - Windows Expert (since 0.4.5)
- Michael Lutz (michi_cc) - Path based signals (since 0.7)
- Niels Martin Hansen (nielsm) - Music system, general coding (since 1.9)
- Owen Rudge (orudge) - Forum host, OS/2 port (since 0.1)
- Peter Nelson (peter1138) - Spiritual descendant from newGRF gods (since 0.4.5)
- Ingo von Borstel (planetmaker) - General coding, Support (since 1.1)
- Remko Bijker (Rubidium) - Lead coder and way more (since 0.4.5)
- José Soler (Terkhen) - General coding (since 1.0)
- Leif Linse (Zuu) - AI/Game Script (since 1.2)
### Inactive Developers:
- Jean-François Claeys (Belugas) - GUI, newindustries and more (0.4.5 - 1.0)
- Bjarni Corfitzen (Bjarni) - macOS port, coder and vehicles (0.3 - 0.7)
- Victor Fischer (Celestar) - Programming everywhere you need him to (0.3 - 0.6)
- Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;) (0.4.5 - 0.6)
- Jonathan Coome (Maedhros) - High priest of the NewGRF Temple (0.5 - 0.6)
- Attila Bán (MiHaMiX) - WebTranslator 1 and 2 (0.3 - 0.5)
- Zdeněk Sojka (SmatZ) - Bug finder and fixer (0.6 - 1.3)
- Christoph Mallon (Tron) - Programmer, code correctness police (0.3 - 0.5)
- Patric Stout (TrueBrain) - NoProgrammer (0.3 - 1.2), sys op (active)
- Thijs Marinussen (Yexo) - AI Framework, General (0.6 - 1.3)
### Retired Developers:
- Tamás Faragó (Darkvater) - Ex-Lead coder (0.3 - 0.5)
- Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3 - 0.3)
- Emil Djupfeld (egladil) - macOS port (0.4 - 0.6)
- Simon Sasburg (HackyKid) - Bug fixer (0.4 - 0.4.5)
- Ludvig Strigeus (ludde) - Original author of OpenTTD, main coder (0.1 - 0.3)
- Cian Duffy (MYOB) - BeOS port / manual writing (0.1 - 0.3)
- Petr Baudiš (pasky) - Many patches, newgrf support, etc. (0.3 - 0.3)
- Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker (0.6 - 0.7)
- Serge Paquet (vurlix) - 2nd contributor after ludde (0.1 - 0.3)
### 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
- Stefan Meißner (sign_de) - For his work on the console
- Mike Ragsdale - OpenTTD installer
- Christian Rosentreter (tokai) - MorphOS / AmigaOS port
- Richard Kempton (RichK67) - Additional airports, initial TGP implementation
- Alberto Demichelis - Squirrel scripting language
- L. Peter Deutsch - MD5 implementation
- Michael Blunck - For revolutionizing TTD with awesome graphics
- George - Canal graphics
- Andrew Parkhouse (andythenorth) - River graphics
- David Dallaston (Pikka) - Tram tracks
- 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!

69
azure-pipelines-ci.yml Normal file
View File

@@ -0,0 +1,69 @@
trigger:
- master
- release/*
pr:
- master
- release/*
jobs:
- job: windows
displayName: 'Windows'
pool:
vmImage: 'VS2017-Win2016'
strategy:
matrix:
Win32:
BuildPlatform: 'Win32'
Win64:
BuildPlatform: 'x64'
steps:
- template: azure-pipelines/templates/ci-git-rebase.yml
- template: azure-pipelines/templates/windows-dependencies.yml
- template: azure-pipelines/templates/ci-opengfx.yml
- template: azure-pipelines/templates/windows-build.yml
parameters:
BuildPlatform: $(BuildPlatform)
- script: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86
cd projects
call regression.bat
displayName: 'Test'
- job: linux
displayName: 'Linux'
pool:
vmImage: 'ubuntu-16.04'
strategy:
matrix:
commit-checker: {}
linux-amd64-clang-3.8: {}
linux-amd64-gcc-6: {}
linux-i386-gcc-6: {}
steps:
- template: azure-pipelines/templates/ci-git-rebase.yml
# The dockers already have the dependencies installed
# The dockers already have OpenGFX installed
- template: azure-pipelines/templates/linux-build.yml
parameters:
Image: compile-farm-ci
Tag: $(Agent.JobName)
- job: macos
displayName: 'MacOS'
pool:
vmImage: 'macOS-10.13'
variables:
MACOSX_DEPLOYMENT_TARGET: 10.9
steps:
- template: azure-pipelines/templates/ci-git-rebase.yml
- template: azure-pipelines/templates/osx-dependencies.yml
- template: azure-pipelines/templates/ci-opengfx.yml
- template: azure-pipelines/templates/osx-build.yml
- script: 'make regression'
displayName: 'Test'

View File

@@ -0,0 +1,10 @@
trigger:
branches:
include:
- refs/tags/*
pr: none
jobs:
- template: azure-pipelines/templates/release.yml
parameters:
IsStableRelease: true

View File

@@ -0,0 +1,7 @@
trigger: none
pr: none
jobs:
- template: azure-pipelines/templates/release.yml
parameters:
IsStableRelease: false

16
azure-pipelines/changelog.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/sh
tag=$(git describe --tags 2>/dev/null)
# If we are a tag, show the part of the changelog till (but excluding) the last stable
if [ -n "$tag" ]; then
grep='^[0-9]\.[0-9]\.[0-9][^-]'
next=$(cat changelog.txt | grep '^[0-9]' | awk 'BEGIN { show="false" } // { if (show=="true") print $0; if ($1=="'$tag'") show="true"} ' | grep "$grep" | head -n1 | sed 's/ .*//')
cat changelog.txt | awk 'BEGIN { show="false" } /^[0-9].[0-9].[0-9]/ { if ($1=="'$next'") show="false"; if ($1=="'$tag'") show="true";} // { if (show=="true") print $0 }'
exit 0
fi
# In all other cases, show the git log of the last 7 days
revdate=$(git log -1 --pretty=format:"%ci")
last_week=$(date -u -d "$revdate -7days" +"%Y-%m-%d %H:%M")
git log --after="${last_week}" --pretty=fuller

60
azure-pipelines/manifest.sh Executable file
View File

@@ -0,0 +1,60 @@
#!/bin/sh
set -ex
if [ -z "$1" ]; then
echo "Usage: $0 <folder-with-bundles>"
exit 1
fi
FOLDER=$1
if [ ! -e .version ] || [ ! -e .release_date ]; then
echo "This script should be executed in the root of an extracted source tarball"
exit 1
fi
# Find the name based on the version
if [ -e .is_stable ]; then
isTesting=$(cat .version | grep "RC\|beta" || true)
if [ -z "${isTesting}" ]; then
NAME="stable"
else
NAME="testing"
fi
else
NAME=$(cat .version | cut -d- -f2 | cut -d- -f-2)
fi
# Convert the date to a YAML date
DATE=$(cat .release_date | tr ' ' T | sed 's/TUTC/:00-00:00/')
VERSION=$(cat .version)
BASE="openttd-${VERSION}"
echo "name: ${NAME}" >> manifest.yaml
echo "date: ${DATE}" >> manifest.yaml
echo "base: ${BASE}-" >> manifest.yaml
echo "files:" >> manifest.yaml
error=""
for i in $(ls ${FOLDER} | grep -v ".txt$\|.md$\|sum$" | sort); do
if [ -n "$(echo $i | grep pdb.xz)" ]; then continue; fi
if [ -n "$(echo $i | grep dbg.deb)" ]; then continue; fi
if [ ! -e ${FOLDER}/$i.md5sum ] || [ ! -e ${FOLDER}/$i.sha1sum ] || [ ! -e ${FOLDER}/$i.sha256sum ]; then
echo "ERROR: missing checksum file for ${i}" 1>&2
error="y"
continue
fi
echo "- id: $i" >> manifest.yaml
echo " size: $(stat -c"%s" ${FOLDER}/$i)" >> manifest.yaml
echo " md5sum: $(cat ${FOLDER}/$i.md5sum | cut -d\ -f1)" >> manifest.yaml
echo " sha1sum: $(cat ${FOLDER}/$i.sha1sum | cut -d\ -f1)" >> manifest.yaml
echo " sha256sum: $(cat ${FOLDER}/$i.sha256sum | cut -d\ -f1)" >> manifest.yaml
done
if [ -n "${error}" ]; then
echo "ERROR: exiting due to earlier errors" 1>&2
exit 1
fi

View File

@@ -0,0 +1,9 @@
steps:
# Rebase to origin/master for every PR. This means users don't have to
# rebase every time master changes. As long as the PR applies cleanly, we
# will validate it.
- script: |
git config user.email 'info@openttd.org'
git config user.name 'OpenTTD CI'
git rebase origin/master
displayName: 'Rebase to master'

View File

@@ -0,0 +1,8 @@
steps:
- bash: |
set -ex
cd bin/baseset
curl -L https://binaries.openttd.org/extra/opengfx/0.5.2/opengfx-0.5.2-all.zip > opengfx-0.5.2-all.zip
unzip opengfx-0.5.2-all.zip
rm -f opengfx-0.5.2-all.zip
displayName: 'Install OpenGFX'

View File

@@ -0,0 +1,18 @@
parameters:
Image: ''
Tag: ''
ContainerCommand: ''
steps:
- task: Docker@1
${{ if eq(parameters.Image, 'compile-farm') }}:
displayName: 'Build'
${{ if eq(parameters.Image, 'compile-farm-ci') }}:
displayName: 'Build and test'
inputs:
command: 'Run an image'
imageName: openttd/${{ parameters.Image }}:${{ parameters.Tag }}
volumes: '$(Build.SourcesDirectory):$(Build.SourcesDirectory)'
workingDirectory: '$(Build.SourcesDirectory)'
containerCommand: ${{ parameters.ContainerCommand }}
runInBackground: false

View File

@@ -0,0 +1,5 @@
steps:
# Because we run the compile in a docker (under root), we are not owner
# of the 'bundles' folder. Fix that by executing a chown on it.
- bash: sudo chown -R $(id -u):$(id -g) bundles
displayName: 'Claim bundles folder back'

View File

@@ -0,0 +1,5 @@
steps:
- script: './configure PKG_CONFIG_PATH=/usr/local/lib/pkgconfig --enable-static'
displayName: 'Configure'
- script: 'make -j2'
displayName: 'Build'

View File

@@ -0,0 +1,12 @@
steps:
- script: |
set -ex
HOMEBREW_NO_AUTO_UPDATE=1 brew install pkg-config lzo xz libpng freetype
# Remove the dynamic libraries of these libraries, to ensure we use
# the static versions. That is important, as it is unlikely any
# end-user has these brew libraries installed.
rm /usr/local/Cellar/lzo/*/lib/*.dylib
rm /usr/local/Cellar/xz/*/lib/*.dylib
rm /usr/local/Cellar/libpng/*/lib/*.dylib
rm /usr/local/Cellar/freetype/*/lib/*.dylib
displayName: 'Install dependencies'

View File

@@ -0,0 +1,19 @@
parameters:
CalculateChecksums: true
steps:
- ${{ if eq(parameters.CalculateChecksums, true) }}:
- bash: |
set -ex
cd bundles
for i in $(ls); do
openssl dgst -r -md5 -hex $i > $i.md5sum
openssl dgst -r -sha1 -hex $i > $i.sha1sum
openssl dgst -r -sha256 -hex $i > $i.sha256sum
done
displayName: 'Calculate checksums'
- task: PublishBuildArtifacts@1
displayName: 'Publish bundles'
inputs:
PathtoPublish: bundles/
ArtifactName: bundles

View File

@@ -0,0 +1,20 @@
# Fetch the source tarball as prepared by an earlier job. In there is the
# version predefined. This ensures we are all going to compile the same
# source with the same version.
steps:
- checkout: none
- task: DownloadBuildArtifacts@0
displayName: 'Download source'
inputs:
downloadType: specific
itemPattern: 'bundles/openttd-*-source.tar.xz'
downloadPath: '$(Build.ArtifactStagingDirectory)'
- bash: tar --xz -xf ../a/bundles/openttd-*-source.tar.xz --strip-components=1
displayName: 'Extracting source'
- bash: |
set -e
VERSION=$(cat .version)
echo "${VERSION}"
echo "##vso[build.updatebuildnumber]${VERSION}"
displayName: 'Change BuildNumber to version'

View File

@@ -0,0 +1,20 @@
parameters:
IsStableRelease: false
steps:
- task: DownloadBuildArtifacts@0
displayName: 'Download all bundles'
inputs:
downloadType: specific
itemPattern: 'bundles/*'
downloadPath: '$(Build.ArtifactStagingDirectory)'
- ${{ if eq(parameters.IsStableRelease, true) }}:
- script: |
touch .is_stable
displayName: 'Mark as stable release'
- script: |
set -ex
./azure-pipelines/manifest.sh ../a/bundles/
mkdir -p bundles
mv manifest.yaml bundles/
displayName: 'Create manifest.yaml'

View File

@@ -0,0 +1,35 @@
# Set the revisions, and remove the VCS files.
# This ensures everything else picks up on the predefined versions, and not
# that because of some build process the version all of a sudden changes.
steps:
- script: |
set -ex
if [ -n "${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}" ]; then
# We are triggered from a GitHub Pull Request
git checkout -B pr${SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}
elif [ "${BUILD_SOURCEBRANCHNAME}" = "merge" ] || [ "${BUILD_SOURCEBRANCHNAME}" = "head" ]; then
# We are manually triggered based on a GitHub Pull Request
PULLREQUESTNUMBER=$(echo ${BUILD_SOURCEBRANCH} | cut -d/ -f3)
git checkout -B pr${PULLREQUESTNUMBER}
else
git checkout -B ${BUILD_SOURCEBRANCHNAME}
fi
./findversion.sh > .ottdrev
./azure-pipelines/changelog.sh > .changelog
TZ='UTC' date +"%Y-%m-%d %H:%M UTC" > .release_date
cat .ottdrev | cut -f 1 -d$'\t' > .version
echo "Release Date: $(cat .release_date)"
echo "Revision: $(cat .ottdrev)"
echo "Version: $(cat .version)"
displayName: 'Create version files'
- script: |
set -e
VERSION=$(cat .version)
echo "${VERSION}"
echo "##vso[build.updatebuildnumber]${VERSION}"
displayName: 'Change BuildNumber to version'
- script: find . -iname .hg -or -iname .git -or -iname .svn | xargs rm -rf
displayName: 'Remove VCS information'

View File

@@ -0,0 +1,175 @@
parameters:
# If this is false, not all targets are triggered. For example:
# The NSIS installer for Windows and the creation of debs only work for
# releases. Not for any other type of binary. So they are skilled if this
# is set to false.
IsStableRelease: false
jobs:
- job: source
displayName: 'Source'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: release-prepare-source.yml
- script: |
set -ex
# Rename the folder to openttd-NNN-source
mkdir openttd-$(Build.BuildNumber)
find . -maxdepth 1 -not -name . -not -name openttd-$(Build.BuildNumber) -exec mv {} openttd-$(Build.BuildNumber)/ \;
# Copy back release_date, as it is needed for the template 'release-bundles'
cp openttd-$(Build.BuildNumber)/.release_date .release_date
mkdir bundles
tar --xz -cf bundles/openttd-$(Build.BuildNumber)-source.tar.xz openttd-$(Build.BuildNumber)
zip -9 -r -q bundles/openttd-$(Build.BuildNumber)-source.zip openttd-$(Build.BuildNumber)
displayName: 'Create bundle'
- template: release-bundles.yml
- job: meta
displayName: 'Metadata'
pool:
vmImage: 'ubuntu-16.04'
dependsOn: source
steps:
- template: release-fetch-source.yml
- script: |
set -ex
mkdir -p bundles
cp .changelog bundles/changelog.txt
cp .release_date bundles/released.txt
cp README.md bundles/README.md
displayName: 'Copy meta files'
- template: release-bundles.yml
parameters:
CalculateChecksums: false
- job: docs
displayName: 'Docs'
pool:
vmImage: 'ubuntu-16.04'
dependsOn: source
steps:
- template: release-fetch-source.yml
- template: linux-build.yml
parameters:
Image: compile-farm
ContainerCommand: '$(Build.BuildNumber)'
Tag: docs
- template: linux-claim-bundles.yml
- template: release-bundles.yml
- job: windows
displayName: 'Windows'
pool:
vmImage: 'VS2017-Win2016'
dependsOn: source
strategy:
matrix:
Win32:
BuildPlatform: 'Win32'
BundlePlatform: 'win32'
Win64:
BuildPlatform: 'x64'
BundlePlatform: 'win64'
steps:
- template: release-fetch-source.yml
- template: windows-dependencies.yml
- template: windows-dependency-zip.yml
- ${{ if eq(parameters.IsStableRelease, true) }}:
- template: windows-dependency-nsis.yml
- template: windows-build.yml
parameters:
BuildPlatform: $(BuildPlatform)
- bash: |
set -ex
make -f Makefile.msvc bundle_pdb bundle_zip PLATFORM=$(BundlePlatform) BUNDLE_NAME=openttd-$(Build.BuildNumber)-windows-$(BundlePlatform)
displayName: 'Create bundles'
- ${{ if eq(parameters.IsStableRelease, true) }}:
- bash: |
set -ex
# NSIS will be part of the Hosted image in the next update. Till then, we set the PATH ourself
export PATH="${PATH}:/c/Program Files (x86)/NSIS"
make -f Makefile.msvc bundle_exe PLATFORM=$(BundlePlatform) BUNDLE_NAME=openttd-$(Build.BuildNumber)-windows-$(BundlePlatform)
displayName: 'Create installer bundle'
- template: release-bundles.yml
- ${{ if eq(parameters.IsStableRelease, true) }}:
- job: linux_stable
displayName: 'Linux'
pool:
vmImage: 'ubuntu-16.04'
dependsOn: source
strategy:
matrix:
linux-ubuntu-xenial-i386-gcc: {}
linux-ubuntu-xenial-amd64-gcc: {}
linux-ubuntu-bionic-i386-gcc: {}
linux-ubuntu-bionic-amd64-gcc: {}
linux-debian-jessie-i386-gcc: {}
linux-debian-jessie-amd64-gcc: {}
linux-debian-stretch-i386-gcc: {}
linux-debian-stretch-amd64-gcc: {}
steps:
- template: release-fetch-source.yml
- template: linux-build.yml
parameters:
Image: compile-farm
ContainerCommand: '$(Build.BuildNumber)'
Tag: $(Agent.JobName)
- template: linux-claim-bundles.yml
- template: release-bundles.yml
- job: macos
displayName: 'MacOS'
pool:
vmImage: 'macOS-10.13'
dependsOn: source
variables:
MACOSX_DEPLOYMENT_TARGET: 10.9
steps:
- template: release-fetch-source.yml
- template: osx-dependencies.yml
- template: osx-build.yml
- script: 'make bundle_zip bundle_dmg BUNDLE_NAME=openttd-$(Build.BuildNumber)-macosx'
displayName: 'Create bundles'
- template: release-bundles.yml
- job: manifest
displayName: 'Manifest'
pool:
vmImage: 'ubuntu-16.04'
dependsOn:
- source
- docs
- windows
- ${{ if eq(parameters.IsStableRelease, true) }}:
- linux_stable
- macos
# "Skipped" is not a status, and is not succeeded. So it seems to be
# considered failed. So we trigger if all the earlier jobs are done (which
# might be succeeded, failed, or skipped), and run this job. This is not
# optimal, but given the rules, it is the only way to get this to work (as
# some jobs might be skipped).
condition: succeededOrFailed()
steps:
- template: release-fetch-source.yml
- template: release-manifest.yml
${{ if eq(parameters.IsStableRelease, true) }}:
parameters:
IsStableRelease: true
- template: release-bundles.yml
parameters:
CalculateChecksums: false

View File

@@ -0,0 +1,11 @@
parameters:
BuildPlatform: ''
steps:
- task: VSBuild@1
displayName: 'Build'
inputs:
solution: 'projects/openttd_vs141.sln'
platform: ${{ parameters.BuildPlatform }}
configuration: Release
maximumCpuCount: true

View File

@@ -0,0 +1,10 @@
steps:
- bash: |
set -ex
curl -L https://github.com/OpenTTD/CompileFarm/releases/download/latest/windows-dependencies.zip > windows-dependencies.zip
unzip windows-dependencies.zip
rm -f windows-dependencies.zip
displayName: 'Download dependencies'
workingDirectory: $(Build.ArtifactStagingDirectory)
- script: $(Build.ArtifactStagingDirectory)\windows-dependencies\vcpkg.exe integrate install
displayName: 'Install dependencies'

View File

@@ -0,0 +1,26 @@
parameters:
condition: true
steps:
- bash: |
set -ex
mkdir nsis-plugin; cd nsis-plugin
curl -L https://devs.openttd.org/~truebrain/nsis-plugins/Nsis7z.zip > Nsis7z.zip
unzip Nsis7z.zip
cp -R Plugins/* "/c/Program Files (x86)/NSIS/Plugins/"
cd ..; rm -rf nsis-plugin
mkdir nsis-plugin; cd nsis-plugin
curl -L https://devs.openttd.org/~truebrain/nsis-plugins/NsisGetVersion.zip > NsisGetVersion.zip
unzip NsisGetVersion.zip
cp -R Plugins/* "/c/Program Files (x86)/NSIS/Plugins/x86-ansi/"
cd ..; rm -rf nsis-plugin
mkdir nsis-plugin; cd nsis-plugin
curl -L https://devs.openttd.org/~truebrain/nsis-plugins/NsisFindProc.zip > NsisFindProc.zip
unzip NsisFindProc.zip
cp -R *.dll "/c/Program Files (x86)/NSIS/Plugins/x86-ansi/"
cd ..; rm -rf nsis-plugin
displayName: 'Install NSIS with the 7z, GetVersion, and FindProc plugins'
condition: and(succeeded(), ${{ parameters.condition }})

View File

@@ -0,0 +1,5 @@
steps:
- bash: |
set -ex
choco install zip
displayName: 'Install zip'

View File

@@ -367,3 +367,17 @@ AIOrder.AIOF_UNLOAD_FLAGS <- AIOrder.OF_UNLOAD_FLAGS
AIOrder.AIOF_LOAD_FLAGS <- AIOrder.OF_LOAD_FLAGS
AIOrder.AIOF_DEPOT_FLAGS <- AIOrder.OF_DEPOT_FLAGS
AIOrder.AIOF_INVALID <- AIOrder.OF_INVALID
/* 1.9 adds a vehicle type parameter. */
AIBridge._GetName <- AIBridge.GetName;
AIBridge.GetName <- function(bridge_id)
{
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
}
/* 1.9 adds parent_group_id to CreateGroup function */
AIGroup._CreateGroup <- AIGroup.CreateGroup;
AIGroup.CreateGroup <- function(vehicle_type)
{
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
}

View File

@@ -119,3 +119,17 @@ AIOrder.AIOF_UNLOAD_FLAGS <- AIOrder.OF_UNLOAD_FLAGS
AIOrder.AIOF_LOAD_FLAGS <- AIOrder.OF_LOAD_FLAGS
AIOrder.AIOF_DEPOT_FLAGS <- AIOrder.OF_DEPOT_FLAGS
AIOrder.AIOF_INVALID <- AIOrder.OF_INVALID
/* 1.9 adds a vehicle type parameter. */
AIBridge._GetName <- AIBridge.GetName;
AIBridge.GetName <- function(bridge_id)
{
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
}
/* 1.9 adds parent_group_id to CreateGroup function */
AIGroup._CreateGroup <- AIGroup.CreateGroup;
AIGroup.CreateGroup <- function(vehicle_type)
{
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
}

View File

@@ -56,3 +56,17 @@ AIOrder.AIOF_UNLOAD_FLAGS <- AIOrder.OF_UNLOAD_FLAGS
AIOrder.AIOF_LOAD_FLAGS <- AIOrder.OF_LOAD_FLAGS
AIOrder.AIOF_DEPOT_FLAGS <- AIOrder.OF_DEPOT_FLAGS
AIOrder.AIOF_INVALID <- AIOrder.OF_INVALID
/* 1.9 adds a vehicle type parameter. */
AIBridge._GetName <- AIBridge.GetName;
AIBridge.GetName <- function(bridge_id)
{
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
}
/* 1.9 adds parent_group_id to CreateGroup function */
AIGroup._CreateGroup <- AIGroup.CreateGroup;
AIGroup.CreateGroup <- function(vehicle_type)
{
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
}

View File

@@ -8,3 +8,17 @@
*/
AILog.Info("1.2 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
AIBridge._GetName <- AIBridge.GetName;
AIBridge.GetName <- function(bridge_id)
{
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
}
/* 1.9 adds parent_group_id to CreateGroup function */
AIGroup._CreateGroup <- AIGroup.CreateGroup;
AIGroup.CreateGroup <- function(vehicle_type)
{
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
}

View File

@@ -8,3 +8,17 @@
*/
AILog.Info("1.3 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
AIBridge._GetName <- AIBridge.GetName;
AIBridge.GetName <- function(bridge_id)
{
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
}
/* 1.9 adds parent_group_id to CreateGroup function */
AIGroup._CreateGroup <- AIGroup.CreateGroup;
AIGroup.CreateGroup <- function(vehicle_type)
{
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
}

View File

@@ -8,3 +8,17 @@
*/
AILog.Info("1.4 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
AIBridge._GetName <- AIBridge.GetName;
AIBridge.GetName <- function(bridge_id)
{
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
}
/* 1.9 adds parent_group_id to CreateGroup function */
AIGroup._CreateGroup <- AIGroup.CreateGroup;
AIGroup.CreateGroup <- function(vehicle_type)
{
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
}

View File

@@ -8,3 +8,17 @@
*/
AILog.Info("1.5 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
AIBridge._GetName <- AIBridge.GetName;
AIBridge.GetName <- function(bridge_id)
{
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
}
/* 1.9 adds parent_group_id to CreateGroup function */
AIGroup._CreateGroup <- AIGroup.CreateGroup;
AIGroup.CreateGroup <- function(vehicle_type)
{
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
}

View File

@@ -8,3 +8,17 @@
*/
AILog.Info("1.6 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
AIBridge._GetName <- AIBridge.GetName;
AIBridge.GetName <- function(bridge_id)
{
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
}
/* 1.9 adds parent_group_id to CreateGroup function */
AIGroup._CreateGroup <- AIGroup.CreateGroup;
AIGroup.CreateGroup <- function(vehicle_type)
{
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
}

View File

@@ -6,3 +6,19 @@
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* 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/>.
*/
AILog.Info("1.7 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
AIBridge._GetName <- AIBridge.GetName;
AIBridge.GetName <- function(bridge_id)
{
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
}
/* 1.9 adds parent_group_id to CreateGroup function */
AIGroup._CreateGroup <- AIGroup.CreateGroup;
AIGroup.CreateGroup <- function(vehicle_type)
{
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
}

24
bin/ai/compat_1.8.nut Normal file
View File

@@ -0,0 +1,24 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* 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/>.
*/
AILog.Info("1.8 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
AIBridge._GetName <- AIBridge.GetName;
AIBridge.GetName <- function(bridge_id)
{
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
}
/* 1.9 adds parent_group_id to CreateGroup function */
AIGroup._CreateGroup <- AIGroup.CreateGroup;
AIGroup.CreateGroup <- function(vehicle_type)
{
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
}

8
bin/ai/compat_1.9.nut Normal file
View File

@@ -0,0 +1,8 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* 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/>.
*/

View File

@@ -6,7 +6,7 @@ class Regression extends AIInfo {
function GetShortName() { return "REGR"; }
function GetDescription() { return "This runs regression-tests on some commands. On the same map the result should always be the same."; }
function GetVersion() { return 1; }
function GetAPIVersion() { return "1.7"; }
function GetAPIVersion() { return "1.9"; }
function GetDate() { return "2007-03-18"; }
function CreateInstance() { return "Regression"; }
}

View File

@@ -43,11 +43,11 @@ for tst in $tests; do
if [ -n "$gdb" ]; then
$gdb ./openttd -x -c ai/regression/regression.cfg $params -g $sav
else
./openttd -x -c ai/regression/regression.cfg $params -g $sav -d script=2 -d misc=9 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)(x0)?", "0x00000000", $0); gsub("^dbg: \\[script\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' | grep -v '^dbg: \[.*\]' > tmp.regression
./openttd -x -c ai/regression/regression.cfg $params -g $sav -d script=2 -d misc=9 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)(x0)?", "0x00000000", $0); gsub("^dbg: \\[script\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' | grep -v '^dbg: \[.*\]' > $tst/tmp.regression
fi
if [ -z "$gdb" ]; then
res="`diff -ub $tst/result.txt tmp.regression`"
res="`diff -ub $tst/result.txt $tst/tmp.regression`"
if [ -z "$res" ]; then
echo "passed!"
else
@@ -58,14 +58,14 @@ for tst in $tests; do
fi
rm $tst/info.nut
if [ "$1" != "-k" ]; then
rm -f $tst/tmp.regression
fi
done
if [ -f scripts/game_start.scr.regression ]; then
mv scripts/game_start.scr.regression scripts/game_start.scr
fi
if [ "$1" != "-k" ]; then
rm -f tmp.regression
fi
exit $ret

154
bin/ai/regression/run.vbs Normal file
View File

@@ -0,0 +1,154 @@
Option Explicit
' $Id$
'
' This file is part of OpenTTD.
' OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
' OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
' 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/>.
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Function GetTestList()
Dim retests, i, tests, dir
Set retests = New RegExp
Set GetTestList = CreateObject("Scripting.Dictionary")
retests.Pattern = "ai/regression/tst_*"
retests.Global = True
For i = 0 To WScript.Arguments.Count - 1
Dim test
test = "ai/regression/tst_" & WScript.Arguments.Item(i)
If FSO.FolderExists(test) Then
retests.Pattern = test
Exit For
End If
Next
For Each dir In FSO.GetFolder("ai/regression/").SubFolders
Dim name
name = "ai/regression/" & dir.Name
If retests.Test(name) Then
GetTestList.Add name, name
End If
Next
End Function
Function GetParams()
GetParams = "-snull -mnull -vnull:ticks=30000"
If WScript.Arguments.Count = 0 Then Exit Function
If WScript.Arguments.Item(0) <> "-r" Then Exit Function
GetParams = ""
End Function
Sub FilterFile(filename)
Dim lines, filter, file
Set file = FSO.OpenTextFile(filename, 1)
If Not file.AtEndOfStream Then
lines = file.ReadAll
End If
file.Close
Set filter = New RegExp
filter.Global = True
filter.Multiline = True
filter.Pattern = "0x(\(nil\)|0+)(x0)?"
lines = filter.Replace(lines, "0x00000000")
filter.Pattern = "^dbg: \[script\]"
lines = filter.Replace(lines, "")
filter.Pattern = "^ "
lines = filter.Replace(lines, "ERROR: ")
filter.Pattern = "ERROR: \[1\] \[P\] "
lines = filter.Replace(lines, "")
filter.Pattern = "^dbg: .*\r\n"
lines = filter.Replace(lines, "")
Set file = FSO.OpenTextFile(filename, 2)
file.Write lines
file.Close
End Sub
Function CompareFiles(filename1, filename2)
Dim file, lines1, lines2
Set file = FSO.OpenTextFile(filename1, 1)
If Not file.AtEndOfStream Then
lines1 = file.ReadAll
End IF
file.Close
Set file = FSO.OpenTextFile(filename2, 1)
If Not file.AtEndOfStream Then
lines2 = file.ReadAll
End IF
file.Close
CompareFiles = (lines1 = lines2)
End Function
Function RunTest(test, params, ret)
Dim WshShell, oExec, sav, command
Set WshShell = CreateObject("WScript.Shell")
' Make sure that only one info.nut is present for each test run. Otherwise openttd gets confused.
FSO.CopyFile "ai/regression/regression_info.nut", test & "/info.nut"
sav = test & "/test.sav"
If Not FSO.FileExists(sav) Then
sav = "ai/regression/empty.sav"
End If
command = ".\openttd -x -c ai/regression/regression.cfg " & params & " -g " & sav & " -d script=2 -d misc=9"
' 2>&1 must be after >tmp.regression, else stderr is not redirected to the file
WshShell.Run "cmd /c " & command & " >"& test & "/tmp.regression 2>&1", 0, True
FilterFile test & "/tmp.regression"
If CompareFiles(test & "/result.txt", test & "/tmp.regression") Then
RunTest = "passed!"
Else
RunTest = "failed!"
ret = 1
End If
FSO.DeleteFile test & "/info.nut"
If WScript.Arguments.Count > 0 Then
If WScript.Arguments.Item(0) = "-k" Then
Exit Function
End If
End If
FSO.DeleteFile test & "/tmp.regression"
End Function
On Error Resume Next
WScript.StdOut.WriteLine ""
If Err.Number <> 0 Then
WScript.Echo "This script must be started with cscript."
WScript.Quit 1
End If
On Error Goto 0
If Not FSO.FileExists("ai/regression/run.vbs") Then
WScript.Echo "Make sure you are in the root of OpenTTD before starting this script."
WScript.Quit 1
End If
If FSO.FileExists("scripts/game_start.scr") Then
FSO.MoveFile "scripts/game_start.scr", "scripts/game_start.scr.regression"
End If
Dim params, test, ret
params = GetParams()
ret = 0
For Each test in GetTestList()
WScript.StdOut.Write "Running " & test & "... "
WScript.StdOut.WriteLine RunTest(test, params, ret)
Next
If FSO.FileExists("scripts/game_start.scr.regression") Then
FSO.MoveFile "scripts/game_start.scr.regression", "scripts/game_start.scr"
End If
WScript.Quit ret

View File

@@ -253,7 +253,11 @@ function Regression::Bridge()
if (AIBridge.IsValidBridge(i)) j++;
print(" Bridge " + i);
print(" IsValidBridge(): " + AIBridge.IsValidBridge(i));
print(" GetName(): " + AIBridge.GetName(i));
print(" GetName():");
print(" VT_RAIL: " + AIBridge.GetName(i, AIVehicle.VT_RAIL));
print(" VT_ROAD: " + AIBridge.GetName(i, AIVehicle.VT_ROAD));
print(" VT_WATER: " + AIBridge.GetName(i, AIVehicle.VT_WATER));
print(" VT_AIR: " + AIBridge.GetName(i, AIVehicle.VT_AIR));
print(" GetMaxSpeed(): " + AIBridge.GetMaxSpeed(i));
print(" GetPrice(): " + AIBridge.GetPrice(i, 5));
print(" GetMaxLength(): " + AIBridge.GetMaxLength(i));
@@ -570,7 +574,7 @@ function Regression::Group()
local vehicle = AIVehicle.BuildVehicle(10000, 116);
print(" AIVehicle.BuildVehicle(): " + vehicle);
print(" GetNumEngines(): " + AIGroup.GetNumEngines(AIGroup.GROUP_ALL, 116));
local group = AIGroup.CreateGroup(AIVehicle.VT_ROAD);
local group = AIGroup.CreateGroup(AIVehicle.VT_ROAD, AIGroup.GROUP_INVALID);
print(" CreateGroup(): " + group);
print(" MoveVehicle(): " + AIGroup.MoveVehicle(group, vehicle));
print(" GetNumEngines(): " + AIGroup.GetNumEngines(group, 116));
@@ -1018,7 +1022,36 @@ function Regression::Rail()
print(" BuildRail(): " + AIRail.BuildRail(10002, 10003, 10006));
print(" HasTransportType(): " + AITile.HasTransportType(10005, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(10006, AITile.TRANSPORT_RAIL));
print(" RemoveRail(): " + AIRail.RemoveRail(10005, 10004, 10001));
print(" RemoveRail(): " + AIRail.RemoveRail(10006, 10005, 10002));
print(" HasTransportType(): " + AITile.HasTransportType(10004, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(10005, AITile.TRANSPORT_RAIL));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(6200, AIRail.RAILTRACK_NE_SW));
print(" RemoveRailTrack(): " + AIRail.RemoveRailTrack(6200, AIRail.RAILTRACK_NW_NE));
print(" RemoveRailTrack(): " + AIRail.RemoveRailTrack(6200, AIRail.RAILTRACK_NE_SW));
print(" BuildRail(): " + AIRail.BuildRail(6200, 6200 + 256, 6200 + (256 * 4)));
print(" HasTransportType(): " + AITile.HasTransportType(6200 + (256 * 3), AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(6200 + (256 * 4), AITile.TRANSPORT_RAIL));
print(" RemoveRail(): " + AIRail.RemoveRail(6200 + (256 * 3), 6200 + (256 * 2), 6200 - 256));
print(" HasTransportType(): " + AITile.HasTransportType(6200 + (256 * 3), AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(6200 + (256 * 4), AITile.TRANSPORT_RAIL));
print(" BuildRailTrack(): " + AIRail.BuildRail(14706, 14705, 12907));
print(" HasTransportType(): " + AITile.HasTransportType(13421, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(14191, AITile.TRANSPORT_RAIL));
print(" RemoveRail(): " + AIRail.RemoveRail(12907, 13163, 14706));
print(" HasTransportType(): " + AITile.HasTransportType(13421, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(14191, AITile.TRANSPORT_RAIL));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NW_SW));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NE_SE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NW_NE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_SW_SE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NE_SW));
print(" DemolishTile(): " + AITile.DemolishTile(61533));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NE_SW));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NW_SE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NW_NE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_SW_SE));
print(" DemolishTile(): " + AITile.DemolishTile(61533));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NW_SE));
print(" Depot");
print(" IsRailTile(): " + AIRail.IsRailTile(33411));
@@ -1053,6 +1086,31 @@ function Regression::Rail()
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7957));
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7958));
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7959));
print(" Waypoint");
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(12646, AIRail.RAILTRACK_NW_SE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(12648, AIRail.RAILTRACK_NE_SW));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(12650, AIRail.RAILTRACK_NW_NE));
print(" BuildRailWaypoint(): " + AIRail.BuildRailWaypoint(12644));
print(" BuildRailWaypoint(): " + AIRail.BuildRailWaypoint(12646));
print(" BuildRailWaypoint(): " + AIRail.BuildRailWaypoint(12648));
print(" BuildRailWaypoint(): " + AIRail.BuildRailWaypoint(12650));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12644));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12646));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12648));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12650));
print(" RemoveRailWaypointTileRectangle():" + AIRail.RemoveRailWaypointTileRectangle(12644, 12646, false));
print(" RemoveRailWaypointTileRectangle():" + AIRail.RemoveRailWaypointTileRectangle(12648, 12650, true));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12644));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12646));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12648));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12650));
print(" HasTransportType(): " + AITile.HasTransportType(12644, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(12646, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(12648, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(12650, AITile.TRANSPORT_RAIL));
print(" DemolishTile(): " + AITile.DemolishTile(12648));
print(" DemolishTile(): " + AITile.DemolishTile(12650));
}
function Regression::Road()
@@ -1441,7 +1499,7 @@ function Regression::TileList()
print(" " + i + " => " + list.GetValue(i));
}
list = AITileList_StationType(4, AIStation.STATION_BUS_STOP);
list = AITileList_StationType(6, AIStation.STATION_BUS_STOP);
print("");
print("--TileList_StationType--");
print(" Count(): " + list.Count());

View File

@@ -867,105 +867,165 @@ ERROR: IsEnd() is invalid as Begin() is never called
--Bridge--
Bridge -1
IsValidBridge(): false
GetName(): (null : 0x00000000)
GetName():
VT_RAIL: (null : 0x00000000)
VT_ROAD: (null : 0x00000000)
VT_WATER: (null : 0x00000000)
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): -1
GetPrice(): -1
GetMaxLength(): -1
GetMinLength(): -1
Bridge 0
IsValidBridge(): true
GetName(): Wooden rail bridge
GetName():
VT_RAIL: Wooden rail bridge
VT_ROAD: Wooden road bridge
VT_WATER: Aqueduct
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): 32
GetPrice(): 450
GetMaxLength(): 66
GetMinLength(): 2
Bridge 1
IsValidBridge(): true
GetName(): Concrete rail bridge
GetName():
VT_RAIL: Concrete rail bridge
VT_ROAD: Concrete road bridge
VT_WATER: Aqueduct
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): 48
GetPrice(): 630
GetMaxLength(): 4
GetMinLength(): 2
Bridge 2
IsValidBridge(): true
GetName(): Steel girder rail bridge
GetName():
VT_RAIL: Steel girder rail bridge
VT_ROAD: Steel girder road bridge
VT_WATER: Aqueduct
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): 64
GetPrice(): 811
GetMaxLength(): 7
GetMinLength(): 2
Bridge 3
IsValidBridge(): true
GetName(): Reinforced concrete suspension rail bridge
GetName():
VT_RAIL: Reinforced concrete suspension rail bridge
VT_ROAD: Reinforced concrete suspension road bridge
VT_WATER: Aqueduct
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): 80
GetPrice(): 946
GetMaxLength(): 12
GetMinLength(): 4
Bridge 4
IsValidBridge(): true
GetName(): Steel suspension rail bridge
GetName():
VT_RAIL: Steel suspension rail bridge
VT_ROAD: Steel suspension road bridge
VT_WATER: Aqueduct
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): 96
GetPrice(): 1042
GetMaxLength(): 66
GetMinLength(): 5
Bridge 5
IsValidBridge(): true
GetName(): Steel suspension rail bridge
GetName():
VT_RAIL: Steel suspension rail bridge
VT_ROAD: Steel suspension road bridge
VT_WATER: Aqueduct
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): 112
GetPrice(): 1081
GetMaxLength(): 66
GetMinLength(): 5
Bridge 6
IsValidBridge(): true
GetName(): Steel cantilever rail bridge
GetName():
VT_RAIL: Steel cantilever rail bridge
VT_ROAD: Steel cantilever road bridge
VT_WATER: Aqueduct
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): 160
GetPrice(): 1261
GetMaxLength(): 9
GetMinLength(): 5
Bridge 7
IsValidBridge(): true
GetName(): Steel cantilever rail bridge
GetName():
VT_RAIL: Steel cantilever rail bridge
VT_ROAD: Steel cantilever road bridge
VT_WATER: Aqueduct
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): 208
GetPrice(): 1306
GetMaxLength(): 10
GetMinLength(): 5
Bridge 8
IsValidBridge(): true
GetName(): Steel cantilever rail bridge
GetName():
VT_RAIL: Steel cantilever rail bridge
VT_ROAD: Steel cantilever road bridge
VT_WATER: Aqueduct
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): 240
GetPrice(): 1396
GetMaxLength(): 11
GetMinLength(): 5
Bridge 9
IsValidBridge(): true
GetName(): Steel girder rail bridge
GetName():
VT_RAIL: Steel girder rail bridge
VT_ROAD: Steel girder road bridge
VT_WATER: Aqueduct
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): 256
GetPrice(): 1351
GetMaxLength(): 4
GetMinLength(): 2
Bridge 10
IsValidBridge(): false
GetName(): (null : 0x00000000)
GetName():
VT_RAIL: (null : 0x00000000)
VT_ROAD: (null : 0x00000000)
VT_WATER: (null : 0x00000000)
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): -1
GetPrice(): -1
GetMaxLength(): -1
GetMinLength(): -1
Bridge 11
IsValidBridge(): false
GetName(): (null : 0x00000000)
GetName():
VT_RAIL: (null : 0x00000000)
VT_ROAD: (null : 0x00000000)
VT_WATER: (null : 0x00000000)
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): -1
GetPrice(): -1
GetMaxLength(): -1
GetMinLength(): -1
Bridge 12
IsValidBridge(): false
GetName(): (null : 0x00000000)
GetName():
VT_RAIL: (null : 0x00000000)
VT_ROAD: (null : 0x00000000)
VT_WATER: (null : 0x00000000)
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): -1
GetPrice(): -1
GetMaxLength(): -1
GetMinLength(): -1
Bridge 13
IsValidBridge(): false
GetName(): (null : 0x00000000)
GetName():
VT_RAIL: (null : 0x00000000)
VT_ROAD: (null : 0x00000000)
VT_WATER: (null : 0x00000000)
VT_AIR: (null : 0x00000000)
GetMaxSpeed(): -1
GetPrice(): -1
GetMaxLength(): -1
@@ -1292,7 +1352,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetRunningCost(): 820
GetPower(): 300
GetWeight(): 47
GetMaxTractiveEffort(): 139
GetMaxTractiveEffort(): 136
GetVehicleType(): 0
GetRailType(): 0
GetRoadType(): -1
@@ -1436,7 +1496,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetRunningCost(): 1968
GetPower(): 1000
GetWeight(): 131
GetMaxTractiveEffort(): 388
GetMaxTractiveEffort(): 381
GetVehicleType(): 0
GetRailType(): 0
GetRoadType(): -1
@@ -1454,7 +1514,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetRunningCost(): 2296
GetPower(): 1200
GetWeight(): 162
GetMaxTractiveEffort(): 480
GetMaxTractiveEffort(): 471
GetVehicleType(): 0
GetRailType(): 0
GetRoadType(): -1
@@ -7253,7 +7313,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsBuoyTile(): false
IsLockTile(): false
IsCanalTile(): false
GetBankBalance(): 479851
GetBankBalance(): 479664
BuildWaterDepot(): true
BuildDock(): true
BuildBuoy(): true
@@ -7266,7 +7326,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsBuoyTile(): true
IsLockTile(): true
IsCanalTile(): true
GetBankBalance(): 465257
GetBankBalance(): 465070
--AIWaypointList(BUOY)--
Count(): 1
@@ -7285,7 +7345,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsBuoyTile(): false
IsLockTile(): false
IsCanalTile(): false
GetBankBalance(): 459862
GetBankBalance(): 459675
BuildWaterDepot(): true
BuildDock(): true
@@ -7334,6 +7394,35 @@ ERROR: IsEnd() is invalid as Begin() is never called
HasTransportType(): true
HasTransportType(): false
RemoveRail(): true
HasTransportType(): false
HasTransportType(): false
BuildRailTrack(): true
RemoveRailTrack(): false
RemoveRailTrack(): true
BuildRail(): true
HasTransportType(): true
HasTransportType(): false
RemoveRail(): true
HasTransportType(): true
HasTransportType(): false
BuildRailTrack(): true
HasTransportType(): true
HasTransportType(): true
RemoveRail(): true
HasTransportType(): false
HasTransportType(): false
BuildRailTrack(): false
BuildRailTrack(): false
BuildRailTrack(): true
BuildRailTrack(): true
BuildRailTrack(): false
DemolishTile(): true
BuildRailTrack(): true
BuildRailTrack(): false
BuildRailTrack(): false
BuildRailTrack(): false
DemolishTile(): true
BuildRailTrack(): true
Depot
IsRailTile(): false
BuildRailDepot(): false
@@ -7362,6 +7451,30 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsRailStationTile(): false
IsRailStationTile(): false
IsRailStationTile(): false
Waypoint
BuildRailTrack(): true
BuildRailTrack(): true
BuildRailTrack(): true
BuildRailWaypoint(): false
BuildRailWaypoint(): true
BuildRailWaypoint(): true
BuildRailWaypoint(): false
IsRailWaypointTile(): false
IsRailWaypointTile(): true
IsRailWaypointTile(): true
IsRailWaypointTile(): false
RemoveRailWaypointTileRectangle():true
RemoveRailWaypointTileRectangle():true
IsRailWaypointTile(): false
IsRailWaypointTile(): false
IsRailWaypointTile(): false
IsRailWaypointTile(): false
HasTransportType(): false
HasTransportType(): false
HasTransportType(): true
HasTransportType(): true
DemolishTile(): true
DemolishTile(): true
--RailTypeList--
Count(): 1
@@ -7485,9 +7598,9 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetName(0): Look, a station
GetLocation(1): 29253
GetLocation(1000): -1
GetStationID(33411): 4
GetStationID(33411): 6
GetStationID(34411): 65535
GetStationID(33411): 4
GetStationID(33411): 6
HasRoadType(3, TRAM): false
HasRoadType(3, ROAD): false
HasRoadType(33411, TRAM): false

View File

@@ -1,103 +0,0 @@
; $Id$
;
; This represents more or less nothingness
;
[metadata]
name = NoMusic
shortname = NULL
version = 0
fallback = true
description = A music pack without actual music.
description.af_ZA = 'n Musiek stel sonder enige musiek.
description.ar_EG = مجموعة موسيقى بدون موسيقى
description.be_BY = "Пусты" набор музычнага афармлення, які не зьмяшчае ніякай музыкі.
description.bg_BG = Празен музикален пакет.
description.ca_ES = Una llista de música sense cap peça.
description.cs_CZ = Prázná hudební sada.
description.cy_GB = Pecyn cerddoriaeth heb unrhyw gerddoriaeth ynddo.
description.da_DK = En musikpakke uden musik.
description.de_DE = Ein Musikset ohne Musik.
description.el_GR = Ένα πάκετο μουσικής χωρίς πραγματική μουσική.
description.en_AU = A music pack without actual music.
description.en_US = A music pack without actual music.
description.es_ES = Un conjunto de música vacío.
description.es_MX = Paquete de música vacío
description.et_EE = Muusikakogu ilma muusikata.
description.eu_ES = Musika gabeko musika paketea.
description.fi_FI = Musiikkipaketti, jossa ei ole musiikkia.
description.fr_FR = Un pack de musiques sans musiques.
description.ga_IE = Pacáiste ceoil gan aon cheol iarbhír ann.
description.gd_GB = Pacaid ciùil anns nach eil fonn sam bith.
description.gl_ES = Un conxunto de músicas sen ningunha música.
description.he_IL = אוסף מנגינות ללא מנגינות.
description.hr_HR = Glazbeni paket bez ikakve glazbe.
description.hu_HU = Zenei alapcsomag zene nélkül.
description.id_ID = Paket musik tanpa musik sungguhan.
description.is_IS = Tónlistarpakki sem er í raun án tónlistar.
description.it_IT = Un pacchetto musicale non contenente alcuna musica.
description.ja_JP = 空の音楽パック
description.ko_KR = 실제 음악이 없는 음악 목록입니다.
description.la_VA = Sarcina musicae sine ulla musica.
description.lb_LU = E Musikpack ouni aktuell Musik.
description.lt_LT = Muzikos pakas be muzikos.
description.lv_LV = Mūzikas kopa bez mūzikas
description.ms_MY = Pek muzik tanpa muzik sebenar.
description.nb_NO = En musikkpakke uten noe musikk.
description.nl_NL = Een muziekset zonder muziek.
description.nn_NO = Ei musikkpakke utan noko musikk.
description.pl_PL = Zestaw utworów muzycznych nie zawierający żadnej muzyki.
description.pt_BR = Um pacote de músicas sem músicas.
description.pt_PT = Um conjunto de música vazio.
description.ro_RO = Un set de muzică fără muzică inclusă.
description.ru_RU = "Пустой" набор музыкального оформления, не содержащий никакой музыки.
description.sk_SK = Sada hudby neobsahujúca hudbu.
description.sl_SI = Glasbeni paket z vključeno glasbo.
description.sr_RS = Prazan skup muzičkih numera.
description.sv_SE = Ett musikpaket utan någon musik.
description.ta_IN = இசை இல்லாத இசைத்தொகுப்பு.
description.th_TH = ชุดเพลงประกอบแบบไม่มีเสียงเพลง
description.tr_TR = Müzik içermeyen boş bir müzik paketi.
description.uk_UA = Порожній набір музики.
description.vi_VN = Gói âm nhạc này không có nhạc nào.
description.zh_CN = 一个没有实际内容的音乐包.
description.zh_TW = 不含任何音樂的音樂集。
[files]
theme =
old_0 =
old_1 =
old_2 =
old_3 =
old_4 =
old_5 =
old_6 =
old_7 =
old_8 =
old_9 =
new_0 =
new_1 =
new_2 =
new_3 =
new_4 =
new_5 =
new_6 =
new_7 =
new_8 =
new_9 =
ezy_0 =
ezy_1 =
ezy_2 =
ezy_3 =
ezy_4 =
ezy_5 =
ezy_6 =
ezy_7 =
ezy_8 =
ezy_9 =
[md5s]
[names]
[origin]
default = This file was part of your OpenTTD installation.

View File

@@ -1,70 +0,0 @@
; $Id$
;
; This represents more or less nothingness
;
[metadata]
name = NoSound
shortname = NULL
version = 2
fallback = true
description = A sound pack without any sounds.
description.af_ZA = 'n Klank stel sonder enige klanke.
description.ar_EG = مجموعة صوت بدوت اصوات مضافة
description.be_BY = "Пусты" набор гукавога афармленьня, які не зьмяшчае ніякіх гукаў.
description.bg_BG = Празен звуков пакет.
description.ca_ES = Una llista de sons buida.
description.cs_CZ = Prázdná sada zvuků.
description.cy_GB = Pecyn sain heb unrhyw effeithiau sain ynddo.
description.da_DK = En lydpakke uden lyde.
description.de_DE = Basissounds ohne Sound.
description.el_GR = Ένα πάκετο ήχων χώρις ήχους.
description.en_AU = A sound pack without any sounds.
description.en_US = A sound pack without any sounds.
description.es_ES = Un conjunto de sonidos vacío.
description.es_MX = Paquete de sonidos vacío
description.et_EE = Helikogu ilma helideta.
description.eu_ES = Soinurik gabeko soinu pakete bat
description.fi_FI = Äänipaketti, jossa ei ole ääniä.
description.fr_FR = Un pack de sons sans sons.
description.ga_IE = Pacáiste fuaimeanna gan aon fhuaimeanna ann.
description.gd_GB = Pacaid fhuaimean anns nach eil fuaim sam bith.
description.gl_ES = Un conxunto de sons sen ningún son
description.he_IL = אוסף צלילים ללא צלילים.
description.hr_HR = Zvučni paket bez ikakvih zvukova.
description.hu_HU = Hang alapcsomag hangok nélkül.
description.id_ID = Paket efek suara tanpa suara apapun.
description.is_IS = Hljóðpakki án hljóðs.
description.it_IT = Un pacchetto sonoro non contenente alcun suono.
description.ja_JP = 空の効果音パック
description.ko_KR = 아무런 효과음도 없는 효과음 팩입니다.
description.la_VA = Sarcina sonorum sine ullis sonis.
description.lb_LU = E Soundpack ouni iergendee Sound.
description.lt_LT = Garsų pakas be jokių garsų.
description.lv_LV = Skaņu kopa bez skaņas.
description.nb_NO = En lydpakke uten noen lyder.
description.nl_NL = Een geluidset zonder geluid.
description.nn_NO = Ei lydpakke utan nokon lydar.
description.pl_PL = Zestaw dźwięków nie zawierający żadnych dźwięków.
description.pt_BR = Um pacote de sons sem sons.
description.pt_PT = Um conjunto de sons vazio.
description.ro_RO = Un set de sunete fără nici un sunet inclus.
description.ru_RU = "Пустой" набор звукового оформления, не содержащий никаких звуков.
description.sk_SK = Zvuková sada neobsahujúca zvuky.
description.sl_SI = Zvočni paket brez zvoka.
description.sr_RS = Prazan skup zvukova.
description.sv_SE = Ett ljudpaket utan några ljud.
description.ta_IN = ஒலிகள் இல்லாத ஒலி தொகுப்பு.
description.th_TH = ชุดเสียงแบบไร้เสียง
description.tr_TR = Ses içermeyen boş bir ses kümesi.
description.uk_UA = Порожній набір звуків.
description.vi_VN = Gói âm thanh này không có âm thanh nào.
description.zh_CN = 一个空的音效包.
description.zh_TW = 不含任何音效的音效集。
[files]
samples =
[md5s]
[origin]
default = This file was part of your OpenTTD installation.

Binary file not shown.

View File

@@ -1,84 +0,0 @@
; $Id$
;
; This represents the original graphics as on the non-German Transport
; Tycoon Deluxe DOS CD.
;
[metadata]
name = original_dos
shortname = TTDD
version = 1
palette = DOS
description = Original Transport Tycoon Deluxe DOS edition graphics.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe grafieke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة الدوس
description.be_BY = Арыґінальная ґрафіка з Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS.
description.ca_ES = Gràfics originals del Transport Tycoon Deluxe pel DOS.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro DOS).
description.cy_GB = Graffeg gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS-version.
description.de_DE = Original Transport Tycoon Deluxe DOS Basisgrafiken.
description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση DOS.
description.en_AU = Original Transport Tycoon Deluxe DOS edition graphics.
description.en_US = Original Transport Tycoon Deluxe DOS edition graphics.
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS.
description.es_MX = Gráficos originales de Transport Tycoon Deluxe para DOS.
description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni graafika.
description.eu_ES = Transport Tycoon Deluxe originaleko DOS edizioko grafikoak.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version grafiikat.
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS).
description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS.
description.gd_GB = Grafaigeachd aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para DOS.
description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת DOS.
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának grafikája.
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS.
description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe DOS útgáfunni.
description.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione DOS.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (DOS)
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에디션의 그래픽입니다.
description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS.
description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Grafik.
description.lt_LT = Originali Transport Tycoon Deluxe DOS leidimo grafika.
description.lv_LV = Oriģinālā Transport Tycoon Deluxe DOS izdevuma grafika.
description.ms_MY = Grafik asal Transport Tycoon Deluxe DOS edition.
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS.
description.nl_NL = Originele graphics van de Transport Tycoon Deluxe DOS-versie.
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS.
description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe DOS.
description.pt_BR = Gráficos Originais do Transport Tycoon Deluxe, Edição DOS.
description.pt_PT = Gráficos originais da edição DOS de Transport Tycoon Deluxe.
description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru DOS.
description.ru_RU = Оригинальная графика из Transport Tycoon Deluxe для DOS.
description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (DOS).
description.sl_SI = Originalna grafika Transport Tycoon Deluxe za različico DOS.
description.sr_RS = Originalni skup grafika Transport Tycoon Deluxe DOS izdanja.
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan.
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS பதிப்பு அசைவூட்டங்கள்.
description.th_TH = กราฟฟิกต้นตำหรับของ Transport Tycoon Deluxe DOS edition
description.tr_TR = Özgün Transport Tycoon Deluxe DOS sürümü grafikleri.
description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe DOS edition.
description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên DOS
description.zh_CN = 运输大亨DOS豪华版原版图形包.
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版的圖形。
[files]
base = TRG1.GRF
logos = TRGI.GRF
arctic = TRGC.GRF
tropical = TRGH.GRF
toyland = TRGT.GRF
extra = ORIG_EXTRA.GRF
[md5s]
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
ORIG_EXTRA.GRF = 73b921a42814c47a84945b7e9add5d9f
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
ORIG_EXTRA.GRF = This file was part of your OpenTTD installation.

View File

@@ -1,70 +0,0 @@
; $Id$
;
; This represents the original sounds as on the Transport
; Tycoon Deluxe DOS CD.
;
[metadata]
name = original_dos
shortname = TTDO
version = 0
description = Original Transport Tycoon Deluxe DOS edition sounds.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe klanke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة الدوس
description.be_BY = Арыґінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за DOS.
description.ca_ES = Sons originals del Transport Tycoon Deluxe pel DOS.
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro DOS).
description.cy_GB = Effeithiau sain gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
description.da_DK = Originallyd fra Transport Tycoon Deluxe DOS-version.
description.de_DE = Original Transport Tycoon Deluxe DOS Basissounds.
description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe έκδοση DOS.
description.en_AU = Original Transport Tycoon Deluxe DOS edition sounds.
description.en_US = Original Transport Tycoon Deluxe DOS edition sounds.
description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión DOS.
description.es_MX = Sonidos originales de Transport Tycoon Deluxe para DOS.
description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni helid.
description.eu_ES = Transport Tycoon Deluxe originaleko DOS edizioko soinuak.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version äänet.
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS).
description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán DOS.
description.gd_GB = Fuaimean aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para DOS.
description.he_IL = צלילי Transport Tycoon Deluxe המקורי בגרסת DOS.
description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe DOS izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának hangjai.
description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi DOS.
description.is_IS = Upprunalega hljóðið úr Transport Tycoon Deluxe DOS útgáfunni.
description.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione DOS.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 効果音 (DOS)
description.ko_KR = 오리지널 트랜스포트 타이쿤 도스 에디션의 효과음입니다.
description.la_VA = Soni ex editione originale Transport Tycoon Deluxe DOS.
description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Sound.
description.lt_LT = Originalūs Transport Tycoon Deluxe DOS leidimo garsai.
description.nb_NO = Originale lyder fra Transport Tycoon Deluxe for DOS.
description.nl_NL = Originele geluiden van de Transport Tycoon Deluxe DOS-versie.
description.nn_NO = Originale lydar frå Transport Tycoon Deluxe for DOS.
description.pl_PL = Oryginalna edycja dźwięków dla Transport Tycoon Deluxe DOS.
description.pt_BR = Sons Originais do Transport Tycoon Deluxe, Edição DOS.
description.pt_PT = Sons originais da edição DOS de Transport Tycoon Deluxe.
description.ro_RO = Setul de sunete original al Transport Tycoon Deluxe pentru DOS.
description.ru_RU = Оригинальный набор звукового оформления из игры Transport Tycoon Deluxe для DOS.
description.sk_SK = Pôvodné zvuky Transport Tycoon Deluxe (DOS).
description.sl_SI = Originalni zvoki Transport Tycoon Deluxe različice DOS.
description.sr_RS = Originalni skup zvukova Transport Tycoon Deluxe DOS izdanja.
description.sv_SE = Originalljuden från Transport Tycoon Deluxe, DOS-utgåvan.
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS பதிப்பு ஒலிகள்.
description.th_TH = เสียงต้นตำหรับของ Transport Tycoon Deluxe DOS edition
description.tr_TR = Özgün Transport Tycoon Deluxe DOS sürümü sesleri.
description.uk_UA = Оригінальний набір звуків з Transport Tycoon Deluxe DOS edition.
description.vi_VN = Âm thanh gốc từ phiên bản Transport Tycoon Deluxe trên DOS
description.zh_CN = 运输大亨DOS豪华版原版音效包.
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版的音效。
[files]
samples = SAMPLE.CAT
[md5s]
SAMPLE.CAT = 422ea3dd074d2859bb51639a6e0e85da
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -1,82 +0,0 @@
; $Id$
;
; This represents the original graphics as on the German Transport
; Tycoon Deluxe DOS CD. It contains one broken sprite.
;
[metadata]
name = original_dos_de
shortname = TTDD
version = 0
palette = DOS
description = Original Transport Tycoon Deluxe DOS (German) edition graphics.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS (German) uitgawe grafieke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الالمانية نسخة الدوس
description.be_BY = Арыґінальная ґрафіка зь нямецкай версіі Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS (немски) .
description.ca_ES = Gràfics originals del Transport Tycoon Deluxe (alemany) pel DOS.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (německá verze pro DOS).
description.cy_GB = Graffeg gwreiddiol fersiwn DOS (Almaenig) o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS (Tysk) version.
description.de_DE = Original Transport Tycoon Deluxe DOS (Deutsch) Basisgrafiken.
description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση DOS (Γερμανικό).
description.en_AU = Original Transport Tycoon Deluxe DOS (German) edition graphics.
description.en_US = Original Transport Tycoon Deluxe DOS (German) edition graphics.
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS (Alemán).
description.es_MX = Gráficos originales de Transport Tycoon Deluxe para DOS (en alemán).
description.et_EE = Algse Transport Tycoon Deluxe DOSi (Saksa) versiooni graafika.
description.fi_FI = Alkuperäiset Saksassa julkaistun Transport Tycoon Deluxen DOS-version grafiikat.
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS allemande).
description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS (Gearmánach).
description.gd_GB = Grafaigeachd aig an deasachadh DOS (Gearmailteach) tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Graficos da edición orixinal (alemá) de Transport Tycoon Deluxe para DOS.
description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת DOS (גרמנית).
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS (Njemački) izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS (német) verziójának grafikája.
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS (Jerman).
description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe DOS (þýsku) útgáfunni.
description.it_IT = Grafica originale di Transport Tycoon Deluxe (tedesco), edizione DOS.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (DOS・ドイツ版)
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에디션(독일)의 그래픽입니다.
description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS (Germanica).
description.lb_LU = Original Transport Tycoon Deluxe DOS (Däitsch) Editioun Grafik.
description.lt_LT = Originali Transport Tycoon Deluxe DOS (Vokiečių) leidimo grafika.
description.lv_LV = Oriģinālā Transport Tycoon Deluxe DOS (vācu) izdevuma grafika.
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS (tysk).
description.nl_NL = Originele graphics van de Duitse Transport Tycoon Deluxe DOS-versie.
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS (tysk).
description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe DOS (German).
description.pt_BR = Gráficos Originais do Transport Tycoon Deluxe, Edição DOS alemã.
description.pt_PT = Gráficos originais da edição DOS (Alemã) de Transport Tycoon Deluxe.
description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru DOS (ediţia germană).
description.ru_RU = Оригинальная графика из немецкой версии Transport Tycoon Deluxe для DOS.
description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (DOS) (v jazyku nemčina).
description.sl_SI = Originalna grafika Transport Tycoon Deluxe za nemško različico DOS.
description.sr_RS = Originalni skup grafika nemačkog Transport Tycoon Deluxe DOS izdanja.
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan (tyska).
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS (செருமன்) பதிப்பு அசைவூட்டங்கள்.
description.th_TH = กราฟฟิกต้นตำหรับของ Transport Tycoon Deluxe DOS (German) edition
description.tr_TR = Özgün Transport Tycoon Deluxe DOS (Almanca) sürümü grafikleri.
description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe DOS edition (німецького).
description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên DOS (tiếng Đức)
description.zh_CN = 运输大亨DOS豪华德语版原版图形包.
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版 (德國版) 的圖形。
[files]
base = TRG1.GRF
logos = TRGI.GRF
arctic = TRGC.GRF
tropical = TRGH.GRF
toyland = TRGT.GRF
extra = ORIG_EXTRA.GRF
[md5s]
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
ORIG_EXTRA.GRF = 73b921a42814c47a84945b7e9add5d9f
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
ORIG_EXTRA.GRF = This file was part of your OpenTTD installation.

Binary file not shown.

View File

@@ -1,83 +0,0 @@
; $Id$
;
; This represents the original graphics as on the Transport
; Tycoon Deluxe for Windows CD.
;
[metadata]
name = original_windows
shortname = TTDW
version = 0
palette = Windows
description = Original Transport Tycoon Deluxe Windows edition graphics.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe grafieke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة وندوز
description.be_BY = Арыґінальная ґрафіка з Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за Windows.
description.ca_ES = Gràfics originals del Transport Tycoon Deluxe pel Windows.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro Windows).
description.cy_GB = Graffeg gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe Windows-version.
description.de_DE = Original Transport Tycoon Deluxe Windows Basisgrafiken.
description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση Windows.
description.en_AU = Original Transport Tycoon Deluxe Windows edition graphics.
description.en_US = Original Transport Tycoon Deluxe Windows edition graphics.
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión Windows.
description.es_MX = Gráficos originales de Transport Tycoon Deluxe para Windows.
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni graafika.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version grafiikat.
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version Windows).
description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán Windows.
description.gd_GB = Grafaigeachd aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para Windows.
description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת Windows.
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe Windows izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának grafikája.
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi Windows.
description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe Windows útgáfunni.
description.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione Windows.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (Windows)
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 그래픽입니다.
description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe Windows.
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Grafik.
description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo grafika.
description.lv_LV = Oriģinālā Transport Tycoon Deluxe Windows izdevuma grafika.
description.ms_MY = Grafik asal Transport Tycoon Deluxe edisi Windows.
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for Windows.
description.nl_NL = Originele graphics van de Transport Tycoon Deluxe Windows-versie.
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for Windows.
description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe Windows.
description.pt_BR = Gráficos Originais do Transport Tycoon, Edição Windows.
description.pt_PT = Gráficos originais da edição Windows de Transport Tycoon Deluxe.
description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru Windows.
description.ru_RU = Оригинальная графика из Transport Tycoon Deluxe для Windows.
description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (Windows).
description.sl_SI = Originalna grafika Transport Tycoon Deluxe za različico oken(windows).
description.sr_RS = Originalni skup grafika Transport Tycoon Deluxe Windows izdanja.
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, Windows-utgåvan.
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு அசைவூட்டங்கள்.
description.th_TH = กราฟฟิกต้ำตำหรับของ Transport Tycoon Deluxe Windows edition
description.tr_TR = Özgün Transport Tycoon Deluxe Windows sürümü grafikleri.
description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe Windows edition.
description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên Windows
description.zh_CN = 运输大亨Windows豪华版原版图形包.
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的圖形。
[files]
base = TRG1R.GRF
logos = TRGIR.GRF
arctic = TRGCR.GRF
tropical = TRGHR.GRF
toyland = TRGTR.GRF
extra = ORIG_EXTRA.GRF
[md5s]
TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358
TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
ORIG_EXTRA.GRF = 73b921a42814c47a84945b7e9add5d9f
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
ORIG_EXTRA.GRF = This file was part of your OpenTTD installation.

View File

@@ -1,146 +0,0 @@
; $Id$
;
; This represents the original music as on the Transport
; Tycoon Deluxe for Windows CD.
;
[metadata]
name = original_windows
shortname = TTDW
version = 1
description = Original Transport Tycoon Deluxe Windows edition music.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe musiek.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الموسيقية نسخة وندوز
description.be_BY = Арыґінальны набор музычнага афармленьня з гульні Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинална музика на Transport Tycoon Deluxe за Windows.
description.ca_ES = Música original del Transport Tycoon Deluxe pel Windows.
description.cs_CZ = Původní hudba Transport Tycoon Deluxe (verze pro Windows).
description.cy_GB = Cerddoriaeth gwreiddiol fersion Windows o Transport Tycoon Deluxe.
description.da_DK = Originalmusik fra Transport Tycoon Deluxe Windows-version.
description.de_DE = Original Transport Tycoon Deluxe Windows Musikset.
description.el_GR = Αρχική μουσική από το Transport Tycoon Deluxe έκδοση Windows.
description.en_AU = Original Transport Tycoon Deluxe Windows edition music.
description.en_US = Original Transport Tycoon Deluxe Windows edition music.
description.es_ES = Música original de Transport Tycoon Deluxe versión Windows.
description.es_MX = Música original de Transport Tycoon Deluxe para Windows.
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni muusika.
description.fi_FI = Alkuperäinen Transport Tycoon Deluxen Windows-version musiikki.
description.fr_FR = Musiques originales de Transport Tycoon Deluxe (version Windows).
description.ga_IE = Ceol bunaidh Transport Tycoon Deluxe, eagrán Windows.
description.gd_GB = Ceòl aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Música da edición orixinal de Transport Tycoon Deluxe para Windows.
description.he_IL = מנגינות Transport Tycoon Deluxe המקורי בגרסת Windows.
description.hr_HR = Originalna glazba za Transport Tycoon Deluxe Windows izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának zenéje.
description.id_ID = Musik pengiring orisinil Transport Tycoon Deluxe versi Windows.
description.is_IS = Upprunalega tónlistin úr Transport Tycoon Deluxe Windows útgáfunni.
description.it_IT = Musica originale di Transport Tycoon Deluxe, edizione Windows.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 音楽 (Windows)
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 음악입니다.
description.la_VA = Musica ex editione originale Transport Tycoon Deluxe Windows.
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Musik.
description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo muzika.
description.lv_LV = Oriģinālā Transport Tycoon Deluxe Windows izdevuma mūzika.
description.ms_MY = Muzik asal Transport Tycoon Deluxe edisi Windows.
description.nb_NO = Original musikk fra Transport Tycoon Deluxe for Windows.
description.nl_NL = Originele muziek van de Transport Tycoon Deluxe Windows-versie.
description.nn_NO = Original musikk frå Transport Tycoon Deluxe for Windows.
description.pl_PL = Oryginalna edycja utworów muzycznych w Transport Tycoon Deluxe Windows.
description.pt_BR = Música Original do Transport Tycoon Deluxe, Edição Windows
description.pt_PT = Música original da edição Windows de Transport Tycoon Deluxe.
description.ro_RO = Setul de muzică original al Transport Tycoon Deluxe pentru Windows.
description.ru_RU = Оригинальный набор музыкального оформления из игры Transport Tycoon Deluxe для Windows.
description.sk_SK = Pôvodná hudba z Transport Tycoon Deluxe (Windows).
description.sl_SI = Originalna glasba Transport Tycoon Deluxe različice oken(windows).
description.sr_RS = Originalni skup muzičkih numera Transport Tycoon Deluxe Windows izdanja.
description.sv_SE = Originalmusiken från Transport Tycoon Deluxe, Windows-utgåvan.
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு இசை.
description.th_TH = เพลงต้นตำหรับชอง Transport Tycoon Deluxe Windows edition
description.tr_TR = Özgün Transport Tycoon Deluxe Windows sürümü müzikleri.
description.uk_UA = Оригінальна музика з Transport Tycoon Deluxe Windows edition.
description.vi_VN = Nhạc gốc từ phiên bản Transport Tycoon Deluxe trên Windows
description.zh_CN = Transport Tycoon Deluxe运输大亨Windows豪华版的原版音乐包
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的音樂。
[files]
theme = GM_TT00.GM
old_0 = GM_TT02.GM
old_1 = GM_TT06.GM
old_2 = GM_TT03.GM
old_3 = GM_TT12.GM
old_4 = GM_TT08.GM
old_5 = GM_TT13.GM
old_6 = GM_TT14.GM
old_7 = GM_TT10.GM
old_8 =
old_9 =
new_0 = GM_TT04.GM
new_1 = GM_TT01.GM
new_2 = GM_TT05.GM
new_3 = GM_TT15.GM
new_4 = GM_TT11.GM
new_5 = GM_TT16.GM
new_6 = GM_TT09.GM
new_7 =
new_8 =
new_9 =
ezy_0 = GM_TT18.GM
ezy_1 = GM_TT19.GM
ezy_2 = GM_TT21.GM
ezy_3 = GM_TT17.GM
ezy_4 = GM_TT20.GM
ezy_5 = GM_TT07.GM
ezy_6 =
ezy_7 =
ezy_8 =
ezy_9 =
[md5s]
GM_TT00.GM = 45cfec1b9d8c7a0ad45e755833cbf221
GM_TT01.GM = ab14ed3392d848abd2a2e90a9d75d121
GM_TT02.GM = dd4f696e4be5987ce738257b08b50171
GM_TT03.GM = a1bfde23343df9e4063419bf29c166b8
GM_TT04.GM = 4e6943aa0c455203d76c79389054747d
GM_TT05.GM = cee281cb85a2e2343552d97640545a47
GM_TT06.GM = 26d1de5efa8675f94065784e9d539e49
GM_TT07.GM = 6f2691e17558f552ec4c565e4ab7139c
GM_TT08.GM = a42bf2cb3340a822f1a69646fc7a487d
GM_TT09.GM = eb35761a58a8df3c59ed8929cce13916
GM_TT10.GM = 42fecd686720a785d20a78590c466a82
GM_TT11.GM = 50ef1ef02e49d2112786dd45e69dc3ee
GM_TT12.GM = 4ce707a0e0e72419f0681dd9bd95271b
GM_TT13.GM = e765753be29d889ec818f38009103619
GM_TT14.GM = 270e2d63bd32b95a4d007ce15a6ce45f
GM_TT15.GM = 89e116a1c0c69f1845cc903a9bfbe460
GM_TT16.GM = f824e2371b3bedfe61aad4b9c62dd6be
GM_TT17.GM = 1b23eebb0796c1ab99cd97fa7082cf7b
GM_TT18.GM = 15650de3bad645d0e88c4f5c7a2df92a
GM_TT19.GM = 7aec079e15bd09588660b85545ac4dfc
GM_TT20.GM = 1509097889dee617aa1e9a1738a5a930
GM_TT21.GM = a8d0aaad02e1a762d8d54cf81da56bab
[names]
GM_TT00.GM = Tycoon DELUXE Theme
GM_TT01.GM = Snarl Up
GM_TT02.GM = Easy Driver
GM_TT03.GM = Little Red Diesel
GM_TT04.GM = City Groove
GM_TT05.GM = Aliens Ate My Railway
GM_TT06.GM = Stoke It
GM_TT07.GM = Don't Walk!
GM_TT08.GM = Sawyer's Tune
GM_TT09.GM = Fell Apart On Me
GM_TT10.GM = Can't Get There From Here
GM_TT11.GM = Hard Drivin'
GM_TT12.GM = Road Hog
GM_TT13.GM = Hold That Train!
GM_TT14.GM = Broomer's Oil Rag
GM_TT15.GM = Goss Groove
GM_TT16.GM = Small Town
GM_TT17.GM = Cruise Control
GM_TT18.GM = Stroll On
GM_TT19.GM = Funk Central
GM_TT20.GM = Jammit
GM_TT21.GM = Movin' On
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -1,70 +0,0 @@
; $Id$
;
; This represents the original sounds as on the Transport
; Tycoon Deluxe for Windows CD.
;
[metadata]
name = original_windows
shortname = TTDO
version = 0
description = Original Transport Tycoon Deluxe Windows edition sounds.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe klanke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة وندوز
description.be_BY = Арыґінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за Windows.
description.ca_ES = Sons originals del Transport Tycoon Deluxe pel Windows.
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro Windows).
description.cy_GB = Effeithiau sain gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
description.da_DK = Originallyd fra Transport Tycoon Deluxe Windows-version.
description.de_DE = Original Transport Tycoon Deluxe Windows Basissounds.
description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe έκδοση Windows.
description.en_AU = Original Transport Tycoon Deluxe Windows edition sounds.
description.en_US = Original Transport Tycoon Deluxe Windows edition sounds.
description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión Windows.
description.es_MX = Sonidos originales de Transport Tycoon Deluxe para Windows.
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni helid.
description.eu_ES = Transport Tycoon Deluxe originaleko Windows edizioko grafikoak.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version äänet.
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows).
description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán Windows.
description.gd_GB = Fuaimean aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para Windows.
description.he_IL = צלילי Transport Tycoon Deluxe המקורי בגרסת Windows.
description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe Windows izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának hangjai.
description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi Windows.
description.is_IS = Upprunalega hljóðið úr Transport Tycoon Deluxe Windows útgáfunni.
description.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione Windows.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 効果音 (Windows)
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 효과음입니다.
description.la_VA = Soni ex editione originale Transport Tycoon Deluxe Windows.
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Sound.
description.lt_LT = Originalūs Transport Tycoon Deluxe Windows leidimo garsai.
description.nb_NO = Originale lyder fra Transport Tycoon Deluxe for Windows.
description.nl_NL = Originele geluiden van de Transport Tycoon Deluxe Windows-versie.
description.nn_NO = Originale lydar frå Transport Tycoon Deluxe for Windows.
description.pl_PL = Oryginalna edycja dźwięków dla Transport Tycoon Deluxe Windows.
description.pt_BR = Sons Originais do Transport Tycoon Deluxe, Edição Windows.
description.pt_PT = Sons originais da edição Windows de Transport Tycoon Deluxe.
description.ro_RO = Setul de sunete original al Transport Tycoon Deluxe pentru Windows.
description.ru_RU = Оригинальный набор звукового оформления из игры Transport Tycoon Deluxe для Windows.
description.sk_SK = Pôvodné zvuky Transport Tycoon Deluxe (Windows).
description.sl_SI = Originalni zvoki Transport Tycoon Deluxe različice oken(windows).
description.sr_RS = Originalni skup zvukova Transport Tycoon Deluxe Windows izdanja.
description.sv_SE = Originalljuden från Transport Tycoon Deluxe, Windows-utgåvan.
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு ஒலிகள்.
description.th_TH = เสียงต้นตำหรับของ Transport Tycoon Deluxe Windows edition
description.tr_TR = Özgün Transport Tycoon Deluxe Windows sürümü sesleri.
description.uk_UA = Оригінальний набір звуків з Transport Tycoon Deluxe Windows edition.
description.vi_VN = Âm thanh gốc từ phiên bản Transport Tycoon Deluxe trên Windows
description.zh_CN = Transport Tycoon Deluxe Windows (运输大亨Windows豪华版)的原版音效包.
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的音效。
[files]
samples = SAMPLE.CAT
[md5s]
SAMPLE.CAT = 9212e81e72badd4bbe1eaeae66458e10
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -23,3 +23,10 @@ GSNews.Create <- function(type, text, company)
{
return GSNews._Create(type, text, company, GSNews.NR_NONE, 0);
}
/* 1.9 adds a vehicle type parameter. */
GSBridge._GetName <- GSBridge.GetName;
GSBridge.GetName <- function(bridge_id)
{
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
}

View File

@@ -23,3 +23,10 @@ GSNews.Create <- function(type, text, company)
{
return GSNews._Create(type, text, company, GSNews.NR_NONE, 0);
}
/* 1.9 adds a vehicle type parameter. */
GSBridge._GetName <- GSBridge.GetName;
GSBridge.GetName <- function(bridge_id)
{
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
}

View File

@@ -15,3 +15,10 @@ GSNews.Create <- function(type, text, company)
{
return GSNews._Create(type, text, company, GSNews.NR_NONE, 0);
}
/* 1.9 adds a vehicle type parameter. */
GSBridge._GetName <- GSBridge.GetName;
GSBridge.GetName <- function(bridge_id)
{
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
}

View File

@@ -8,3 +8,10 @@
*/
GSLog.Info("1.5 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
GSBridge._GetName <- GSBridge.GetName;
GSBridge.GetName <- function(bridge_id)
{
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
}

View File

@@ -8,3 +8,10 @@
*/
GSLog.Info("1.6 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
GSBridge._GetName <- GSBridge.GetName;
GSBridge.GetName <- function(bridge_id)
{
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
}

View File

@@ -6,3 +6,12 @@
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* 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/>.
*/
GSLog.Info("1.7 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
GSBridge._GetName <- GSBridge.GetName;
GSBridge.GetName <- function(bridge_id)
{
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
}

17
bin/game/compat_1.8.nut Normal file
View File

@@ -0,0 +1,17 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* 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/>.
*/
GSLog.Info("1.8 API compatibility in effect.");
/* 1.9 adds a vehicle type parameter. */
GSBridge._GetName <- GSBridge.GetName;
GSBridge.GetName <- function(bridge_id)
{
return GSBridge._GetName(bridge_id, GSVehicle.VT_RAIL);
}

8
bin/game/compat_1.9.nut Normal file
View File

@@ -0,0 +1,8 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* 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/>.
*/

View File

@@ -1,3 +1,252 @@
1.9.0-RC1 (2019-03-03)
------------------------------------------------------------------------
- Add: Various AI/GS functions for vehicle groups (#7225)
- Change: Synchronise introduction date and reliability randomness across vehicles with the same base introduction date (#7147)
- Change: Allow towns to build bridges over rails and one-way roads (#7291)
- Fix: Detection of coast tiles with trees on them (#7309)
- Fix: Emergency netsave saved the title game instead of the broken game in question (#7298)
- Fix: Company livery window showed incorrect groups when opened in multiplayer (#7288)
- Fix: Unable to select last group in open livery window (#7283)
- Fix: Goto hangar orders were not invalidated when rebuilding airports (#7100)
1.9.0-beta3 (2019-02-24)
------------------------------------------------------------------------
- Feature: Option to adjust font size separately from GUI size (#7003)
- Feature: Increase maximum number of orders from 64000 to ~16.7m (#7220)
- Add: Show performance of AI and GS in framerate window
- Add: News menu entry and shortcut for deleting all messages (#7240)
- Change: [OSX] Improved scrolling behaviour when using touchpads
- Change: Add scrollbar to cargo legend in cargo payment rates window
- Change: Owner of vehicle with exclusive transport rights may now load cargo from neutral stations (#7256)
- Change: Improved UI behaviour when dragging sound volume sliders with the mouse (#7227)
- Change: Use selected vehicle group as parent when creating a new group (#7224)
- Change: Use SlErrorCorrupt() on pool index error when loading a savegame, instead of terminating (#7219)
- Change: Skip reliability decay if servicing is disabled
- Fix: Remove desert around lakes upon generation
- Fix: Re-sorting file list did not update filtered rows
- Fix #7159: Waiting time at red one-way signals was too short
- Fix #7189: Fluidsynth volume gain too high
- Fix #7004: Cargo flow legend was not properly refreshed after zooming (#7265)
- Fix: Possibility to modify wrong AI/GS settings when switching AI/GS scripts around (#7090, #7091)
- Fix: Use more descriptive "spectator" strings for story book and goal dropdown menus
- Fix #6599: Disable build and rename button in build vehicle window when no vehicle is selected
- Fix: Do not mangle tagged revision strings for network revision strings
- Fix #7151: AI start date deviation was still applied when not set to a random AI (#7223)
- Fix #7197: Invalidate depot buttons when necessary (#7212)
- Doc: [AI] UnshareOrders empties the orders list of the vehicle
1.9.0-beta2 (2019-02-09)
------------------------------------------------------------------------
- Fix: Non-Windows builds did not get correct git hash
1.9.0-beta1 (2019-02-09)
------------------------------------------------------------------------
Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbers have been replaced with Pull Requests and Issue numbers
- Feature: Group liveries, and livery window usability enhancements (#7108)
- Feature: Overhaul of music system, support MPSMIDI music files (TTD DOS/TTO) (#6839)
- Feature: [Win32] Rewritten DMusic and WinMM music drivers
- Feature: [Win32] New XAudio2 sound driver
- Feature: [Linux] New Fluidsynth music driver
- Feature: Framerate display window (#6822)
- Feature: [NewGRF] Ability for industries & houses to produce and/or accept up to 16 different cargoes
- Feature #6610: Allow towns to build houses on road turns (#6758)
- Feature: Replace independent map scrolling GUI settings with single option, and add choice to not lock cursor position when scrolling (#6756)
- Feature #6459: API for querying network clients from GS (#6736)
- Feature: New Russian Ruble & Mexican Peso as currencies (#6678, #7035)
- Feature #4186: Append '(City)' after city names in the town directory
- Feature #986: Automatic save when losing connection to a network game
- Add: [NewGRF] Flag to hide rail types from construction (#7118)
- Add: [NewGRF] Airport animation trigger for plane landing (#6334)
- Add #4115: Default starting company colour setting (#6998)
- Add: Mixer feature for streaming sampled music
- Add #6460: [AI] start_date parameter for Random AIs on new game
- Add: BACKSPACE can be mapped as a hotkey
- Add: 32bpp SSE2 blitter palette animator (#6795)
- Change: Make ships turn slowly when changing direction and stop when going up or down a lock (#7065, #7150)
- Change: Improve ship pathfinder performance
- Change: Decouple GUI timing from game ticks (#6780)
- Change: Desert tiles are now half-desert if a neighboured tile is non-desert or sea/coast (#4754)
- Change: Gradually slow down aircraft speed on breakdown (#6932)
- Change: [NewGRF] Increase rail type & cargo type limits to 64
- Change: [NewGRF] Increase size of persistent storage to 256
- Change: [NewGRF] Use last OpenTTD SVN revision in NewGRF version number (#6843)
- Change: Clone tool in depot window now behaves like clone button in vehicle window (#6754)
- Change #6397: Keep town growth rate in sync with house count
- Change: Scale default FreeType font size selection by UI zoom level
- Change: [OSX] Reversed pinch to zoom behaviour
- Change: Switch town growth rate and counter to actual game ticks (#6763)
- Change: Non-tag revisions are now named '<commitdate>-<branch>-g<shorthash><modified>'
- Change: Rewrite several bits of documentation in markdown
- Fix: Reinitialise graph GUI on game restart (#7191)
- Fix: Potential crash during shutdown after unpacking downloaded content (#7185)
- Fix #6584: Text layout in engine preview dialogue
- Fix #6636: Airplanes could be sent to helicopter station depots
- Fix: Deadlock when launched with -n switch (#7103)
- Fix: Various corrections to town names in non-English languages (#7038, 7141)
- Fix: Only consider airport tiles when placing (for non-rectangular airports) (#6613)
- Fix: Spelling fixes on some Latin American town names
- Fix #7001: Pathfinders should see standard road stations as tiles where to reverse
- Fix #6676: Prevent helicopters from stopping in midair during some kinds of landing
- Fix: Remove need to use Ctrl+Click when building stations next to competitors (#6906)
- Fix: [NewGRF] Make VA2 operator 11 (ror) behave well-defined when rotating by 0 bits
- Fix #4109: Add more water checks to the Oil Rig layout
- Fix #6938: Incorrect value for "Cost to Clear" was displayed for Company Headquarters in tile inspector (#6939)
- Fix #6920: Make 9.8m/s^2 a common constant for TE-calculation
- Fix #6892: [Script] CONFIG_RANDOM did not use the full parameter range (#6902)
- Fix #6622: News message when GS constructs a town had empty company name
- Fix: [NewGRF] Action7 variable 0x85 had no bounds checks
- Fix #6875: Depot building cost did not include foundation build cost (#6883)
- Fix: Some pixels in ship autoreplace icon (sprite 106) were transparent
- Fix: Poor contrast in cargo dest flow legend window cargo labels
- Fix #6553: Make viewport button text unambiguous
- Fix: [OSX] Setting mouse-wheel to scroll the map does not disable pinch to zoom
- Fix #6969: Account for BOM when reading script files
- Fix #6898: Ability to use seeds above INT_MAX (#6936)
- Fix #6659: Bus stations could be demolished when not in demolish mode (#6815)
- Fix: One-way roads could be over-built by road stops regardless of road owner
- Fix: Use name of cargo instead of Passengers/Mail in town statistics (#6801)
- Fix: Prevent ships moving into docks after finishing (un)loading (#6791)
- Fix: Tractive effort was slightly too high as per NewGRF spec (#6785)
- Fix #6465: Add {NORMAL_FONT} and {MONO_FONT} control codes to GS strings (#6726)
- Fix: Four group action icons were misplaced and cropped
- Remove: PSP, WinCE support
1.8.0 (2018-04-01)
------------------------------------------------------------------------
(None)
1.8.0-RC1 (2018-03-21)
------------------------------------------------------------------------
- Feature: [GFX] Climate-specific Action5 extra airport sprites [FS#6664] (r27976)
- Feature: Draw vertical separators at tile distance in the train depot GUI (r27938, r27899)
- Feature: [Build] MSVC 2017 project file generator. Most noticeable, std:c++latest is enabled (r27920, r27919, r27918, r27917)
- Feature: [Build] Project file generator for kdevelop 4/5 [FS#6577] (r27897)
- Feature: Add option to close windows with right click [FS#4950] (r27826, r27825)
- Feature: Vehicle Group Info: Add profits and occupancy display to group vehicle list (r27822)
- Feature: Display aircraft type in vehicle preview/purchase/detail windows (r27802, r27799, r27797)
- Change: [NewGRF] Various performance improvements to resolving VA2 (r27989, r27985, r27984, r27983, r27982)
- Change: [NewGRF] Increase maximum allowed vehicle sprite size to reduce clipping of ships (r27987)
- Change: Check companies for bankruptcy before subtracting reoccuring monthly costs [FS#6679] (r27981)
- Change: [GFX] Replace the office building sprite on various toyland airports with a better fitting sprite [FS#6664] (r27977)
- Change: [GFX] The switch-toolbar icon contained pixels from the fire cycle. Replace the whole icon with a new version [FS#6654] (r27961)
- Change: Reword texts in industry view, when stockpiling is used (r27952)
- Change: Remove the gap between windows when positioning them after opening [FS#6568] (r27934, r27900)
- Change: [Build] Enable usage of static_assert for MSVC (r27916)
- Change: [Build] Preserve PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR environment variables in config.cache file [FS#6614] (r27902)
- Change: Do not cancel headquarter construction and engine-preview-query when shift-clicking (r27889)
- Change: Parse extmidi command string for parameters to pass on (r27834)
- Change: Draw images in centre of buttons (r27829, r27821)
- Fix: Store the map variety setting in the savegame like the other mapgen settings, so restarting maps considers it [FS#6673] (r27978)
- Fix: Hair selection was missing one option [FS#6642] (r27975)
- Fix: Avoid tile operations outside map border when building lock [FS#6662] (r27973)
- Fix: Catenary sprites got mixed up for depots [FS#6670] (r27972)
- Fix: Make automatic window-positioning RTL-aware (r27934, r27900)
- Fix: Automatic window-positioning now uses GUI-scale/style dependent sizes/distances instead of fixed pixel values (r27934, r27900)
- Fix: [NewGRF] While executing random triggers, var 5F should include the new triggers (r27928)
- Fix: [NewGRF] Reset used random triggers only after all A123 chains have been resolved, so that all RA2 in all chains can test the shared triggers (r27928)
- Fix: [NewGRF] Industry random triggers are stored per tile, even when randomising the shared random bits of the parent industry (r27928)
- Fix: [NPF] Reserved track bits were not accounted for when trying to find any safe position (r27912)
- Fix: Do not modify argv[0] [FS#6575] (r27886)
- Fix: Do not search directories when opening ini files as we already have their full path [FS#6421] (r27816)
- Fix: Road tunnel/bridge heads have no trackbits wrt. catenary drawing (r27812)
1.7.2 (2017-12-24)
------------------------------------------------------------------------
(None)
1.7.2-RC1 (2017-12-11)
------------------------------------------------------------------------
- Change: When train depots have a horizontal scrollbar, allow scrolling 1 tile beyond the longest train, so you can actually attach a wagon at the end (r27937)
- Fix: When moving wagons in the depot, the drag highlight did not exactly match the length of the dragged wagon chain (r27936)
- Fix: [Win32] Right mouse scrolling didn't work properly with the Windows 10 Fall Creators Update [FS#6629] (r27935)
- Fix: Forest, candyfloss forest and battery farm skipped the first animation frame [FS#6639] (r27932)
- Fix: Glyphs in range U+0020 to U+00FF may only be defined in orig_extra.grf, not in openttd.grf [FS#6620] (r27915)
- Fix: 'unban' console command was not handling IPv6 adresses properly (r27914, r27913)
- Fix: Keep the 'link' between industry chain and smallmap windows whenever possible [FS#6585] (r27905)
- Fix: When the last vehicle is removed from a shared orders group, hide the 'Stop sharing' button in the vehicle orders window [FS#6593] (r27904)
- Fix: Tooltip of 'increase service interval' said 'decrease' [FS#6606] (r27895)
- Fix: Console command parser passed invalid strings to the debug output, if command lines had many parameters [FS#6576] (r27884, r27883)
1.7.1 (2017-06-13)
------------------------------------------------------------------------
(None)
1.7.1-RC1 (2017-05-04)
------------------------------------------------------------------------
- Fix: Add missing game script event for ships arriving at a station [FS#6560] (r27859, r27858)
- Fix: StringID truncation to 16 bits broke string remapping test [FS#6555] (r27851)
- Fix: Infinite loop in pathfinder when checking safe waiting position from a waypoint [FS#5926] (r27846)
- Fix: [YAPF] Consider depot as destination before reversing path and applying penalty (r27843)
- Fix: Don't consider locks or ship depots as clear water when placing industries (r27841)
- Fix: Small news window's fake caption was not sized to fit its text (r27838)
- Fix: Black remap did nothing in 8bpp-simple blitter (r27837)
- Fix: Misaligned resize icon due to widget bounds being inclusive (r27831)
- Fix: Update viewport sign dimensions when changing GUI zoom level (r27827, r27819)
- Fix: Vehicle viewport is not user scrollable so flag window as such (r27823)
- Fix: Allow dropdown to be drawn above origin widget even with scrollbar (r27820)
- Fix: 32bpp-anim blitters assumed that pitch and width of the screen were equal [FS#6545] (r27796)
- Fix: Chat text background overflowed due to missing padding [FS#6526] (r27794)
- Fix: Failed to load lzo compressed savegames sometimes [FS#6450] (r27793)
- Fix: [Win32] Mark OpenTTD as DPI-aware to avoid OS window scaling that breaks mouse input [FS#6366] (r27791, r27790)
- Fix: [NewGRF] Get vehicle load amount after executing new cargo trigger [FS#6536] (r27788)
- Fix: AI configuration changed incorrect parameter when some parameters are hidden [FS#6479] (r27787, r27786)
- Fix: Buoys not always drawn after being placed depending on zoom level [FS#6508] (r27785)
- Fix: Allow rail conversion even if ship is on tile [FS#6505] (r27784)
1.7.0 (2017-04-01)
------------------------------------------------------------------------
(None)
1.7.0-RC1 (2017-03-11)
------------------------------------------------------------------------
- Feature: [NewGRF] Extend the DCxx range to D800-DFFF (r27769)
- Feature: [NewGRF, script] Increase the maximum number of GameScript texts to 64k, and NewGRF texts to 512k (r27758)
- Feature: [NewGRF] CB 37 results 0x0401 and 0x0800-0BFF for improved control of display of input cargos in the industry GUI (r27751)
- Feature: Sprites missing in outdated basesets are now provided by openttd.grf (r27732, r27731, r27730)
- Feature: [NewGRF] String command 9A 1E to print the name of a cargo type (r27707, r27706)
- Feature: [Debug] Assign descriptive names to threads [FS#6471] (r27674, r27673, r27670)
- Feature: [NewGRF] Allow composing vehicles from multiple sprites (r27668)
- Change: Enable realistic train and road vehicle acceleration by default (r27760)
- Change: Hide the drive-in stops from the tram station picker (r27734)
- Change: Do not count static NewGRF when checking for the maximum number of NewGRFs in a game (r27729)
- Change: Limit waypoint area by maximum station spread during dragging (r27710)
- Change: [Build] Re-enable Wnarrowing for gcc 4.9+ [FS#6532] (r27709, r27703)
- Change: List railtype of rail tiles explicitly in the tile info window (r27686)
- Change: Re-arrange the autoreplace GUI for trains, and do not filter it by railtype by default (r27683)
- Change: Various performance improvements to CargoDist and LinkGraphs (r27682, r27681, r27614, r27613, r27612, r27611)
- Change: Improve randomisation of rough land appearance (r27657)
- Change: [Build] Enable C++11 for clang 3.3 (r27654)
- Fix: Insufficient thread synchronisation when switching blitters lead to crashes [FS#6510] (r27775)
- Fix: Enabling palette animation for 32bpp blitters while paused skipped initialisation of the palette and resulted in black windows [FS#5889] (r27774)
- Fix: Intro games other than the traditional nightly one would cause townname NewGRFs to not get activated in the game options [FS#5819] (r27772)
- Fix: Some variables were not reset between loading old savegames, which made loading them fail [FS#6540] (r27770)
- Fix: Removing secondary roadtypes from bridges was factor 2 too cheap [FS#6538] (r27746)
- Fix: Extra viewports did not center on the selected tile [FS#6537] (r27743)
- Fix: [Build] Building on newer OSX versions with newer SDKs [FS#6295, FS#6502] (r27727, r27675)
- Fix: Improve error message when trying to build rail track over a depot (r27726)
- Fix: Rescanning NewGRF in-game could break the loaded NewGRF, if very many NewGRF were in use (r27721)
- Fix: Text could overflow various GUI elements [FS#6527] (r27713)
- Fix: Memory leak when reloading NewGRF (r27690, r27688, r27687)
- Fix: When removing objects of bankrupt companies the tiles may revert to canal. In that case also check the ownership of the canal [FS#6511] (r27656)
- Fix: Make the console file commands operate independent of the save/load GUI (r27645)
- Fix: When dragging vehicles in group or depot GUI, draw the complete articulated vehicle (r27632)
- Fix: When dragging multiple vehicles in the depot, make the destination gap as long as the chain instead of just considering the first vehicle (r27629)
- Fix: [Build] Change the GCC version detection so that it works with two-digit and truncated versions [FS#6487] (r27623, r27616)
- Fix: Do not hide filtered and highlighted industries by overlapping tiles in the zoomed-out smallmap (r27622, r27621, r27620)
- Fix: [Script] Kill scripts, when a non-suspendable valuator call takes way too long [FS#6473] (r27594)
1.6.1 (2016-07-01)
------------------------------------------------------------------------
- Fix: Compilation and optimisation issues with GCC6 (r27606, r27605, r27595)

View File

@@ -31,7 +31,6 @@ set_default() {
awk="awk"
pkg_config="pkg-config"
os="DETECT"
endian="AUTO"
cpu_type="DETECT"
config_log="config.log"
prefix_dir="/usr/local"
@@ -78,17 +77,19 @@ set_default() {
enable_builtin_depend="1"
with_makedepend="0"
with_direct_music="1"
with_xaudio2="1"
with_sort="1"
with_iconv="1"
with_midi=""
with_midi_arg=""
with_libtimidity="1"
with_fluidsynth="1"
with_freetype="1"
with_fontconfig="1"
with_icu_layout="1"
with_icu_sort="1"
static_icu="0"
with_psp_config="1"
with_uniscribe="1"
with_threads="1"
with_distcc="1"
with_ccache="1"
@@ -109,7 +110,6 @@ set_default() {
awk
pkg_config
os
endian
cpu_type
config_log
prefix_dir
@@ -155,24 +155,26 @@ set_default() {
enable_builtin_depend
with_makedepend
with_direct_music
with_xaudio2
with_sort
with_iconv
with_midi
with_midi_arg
with_libtimidity
with_fluidsynth
with_freetype
with_fontconfig
with_icu_layout
with_icu_sort
static_icu
with_psp_config
with_uniscribe
with_threads
with_distcc
with_ccache
with_grfcodec
with_nforenum
with_sse
CC CXX CFLAGS CXXFLAGS LDFLAGS CFLAGS_BUILD CXXFLAGS_BUILD LDFLAGS_BUILD"
CC CXX CFLAGS CXXFLAGS LDFLAGS CFLAGS_BUILD CXXFLAGS_BUILD LDFLAGS_BUILD PKG_CONFIG_PATH PKG_CONFIG_LIBDIR"
}
detect_params() {
@@ -224,9 +226,6 @@ detect_params() {
--lipo) prev_p="lipo";;
--lipo=*) lipo="$optarg";;
--endian) prev_p="endian";;
--endian=*) endian="$optarg";;
# Alias --prefix with --prefix-dir, for compatibility with GNU autotools
@@ -375,6 +374,10 @@ detect_params() {
--without-libtimidity) with_libtimidity="0";;
--with-libtimidity=*) with_libtimidity="$optarg";;
--with-fluidsynth) with_fluidsynth="2";;
--without-fluidsynth) with_fluidsynth="0";;
--with-fluidsynth=*) with_fluidsynth="$optarg";;
--with-freetype) with_freetype="2";;
--without-freetype) with_freetype="0";;
--with-freetype=*) with_freetype="$optarg";;
@@ -406,9 +409,9 @@ detect_params() {
--static-libicu) static_icu="1";;
--static-libicu=*) static_icu="$optarg";;
--with-psp-config) with_psp_config="2";;
--without-psp-config) with_psp_config="0";;
--with-psp-config=*) with_psp_config="$optarg";;
--with-uniscribe) with_uniscribe="2";;
--without-uniscribe) with_uniscribe="0";;
--with-uniscribe=*) with_uniscribe="$optarg";;
--disable-builtin-depend) enable_builtin_depend="0";;
--enable-builtin-depend) enable_builtin_depend="2";;
@@ -422,6 +425,10 @@ detect_params() {
--without-direct-music) with_direct_music="0";;
--with-direct-music=*) with_direct_music="$optarg";;
--with-xaudio2) with_xaudio2="2";;
--without-xaudio2) with_xaudio2="0";;
--with-xaudio2=*) with_xaudio2="$optarg";;
--with-sort) with_sort="2";;
--without-sort) with_sort="0";;
--with-sort=*) with_sort="$optarg";;
@@ -473,6 +480,8 @@ detect_params() {
CFLAGS_BUILD=* | --CFLAGS_BUILD=* | --CFLAGS-BUILD=*) CFLAGS_BUILD="$optarg";;
CXXFLAGS_BUILD=* | --CXXFLAGS_BUILD=* | --CXXFLAGS-BUILD=*) CXXFLAGS_BUILD="$optarg";;
LDFLAGS_BUILD=* | --LDFLAGS_BUILD=* | --LDFLAGS-BUILD=*) LDFLAGS_BUILD="$optarg";;
PKG_CONFIG_PATH=* | --PKG_CONFIG_PATH=* | --PKG-CONFIG-PATH=*) PKG_CONFIG_PATH="$optarg";;
PKG_CONFIG_LIBDIR=* | --PKG_CONFIG_LIBDIR=* | --PKG-CONFIG-LIBDIR=*) PKG_CONFIG_LIBDIR="$optarg";;
--ignore-extra-parameters) ignore_extra_parameters="1";;
@@ -517,31 +526,43 @@ save_params() {
echo "" >> $config_log
}
# Export a variable so tools like pkg-config can see it when invoked.
# If the variable contains an empty string then unset it.
# $1 - name of the variable to export or unset
export_or_unset() {
eval local value=\$$1
if [ -n "$value" ]; then
export $1;
log 2 "using $1=$value";
else
unset $1;
log 2 "not using $1";
fi
}
check_params() {
# Some params want to be in full uppercase, else they might not work as
# expected.. fix that here
endian=`echo $endian | tr '[a-z]' '[A-Z]'`
os=`echo $os | tr '[a-z]' '[A-Z]'`
cpu_type=`echo $cpu_type | tr '[a-z]' '[A-Z]'`
# Export some variables to be used by pkg-config
#
# PKG_CONFIG_LIBDIR variable musn't be set if we are not willing to
# override the default pkg-config search path, it musn't be an empty
# string. If the variable is empty (e.g. when an empty string comes
# from config.cache) then unset it. This way the "don't override" state
# will be properly preserved when (re)configuring.
export_or_unset PKG_CONFIG_PATH
export_or_unset PKG_CONFIG_LIBDIR
# Check if all params have valid values
# Endian only allows AUTO, LE and, BE
if [ -z "`echo $endian | egrep '^(AUTO|LE|BE|PREPROCESSOR)$'`" ]; then
log 1 "configure: error: invalid option --endian=$endian"
log 1 " Available options are: --endian=[AUTO|LE|BE]"
exit 1
fi
if [ "$endian" = "PREPROCESSOR" ] && [ "$os" != "OSX" ]; then
log 1 "configure: error: invalid option --endian=$endian"
log 1 " PREPROCESSOR is only available for OSX"
exit 1
fi
# OS only allows DETECT, UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, MORPHOS, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP
if [ -z "`echo $os | egrep '^(DETECT|UNIX|OSX|FREEBSD|DRAGONFLY|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP)$'`" ]; then
# OS only allows DETECT, UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, MORPHOS, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, and DOS
if [ -z "`echo $os | egrep '^(DETECT|UNIX|OSX|FREEBSD|DRAGONFLY|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS)$'`" ]; then
log 1 "configure: error: invalid option --os=$os"
log 1 " Available options are: --os=[DETECT|UNIX|OSX|FREEBSD|DRAGONFLY|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP]"
log 1 " Available options are: --os=[DETECT|UNIX|OSX|FREEBSD|DRAGONFLY|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS]"
exit 1
fi
# cpu_type can be either 32 or 64
@@ -740,13 +761,13 @@ check_params() {
exit 1
fi
else
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "WINCE" ]; then
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then
log 1 "checking GDI video driver... found"
else
log 1 "checking GDI video driver... not Windows, skipping"
fi
if [ -z "$allegro_config" ] && [ -z "$sdl_config" ] && [ "$with_cocoa" = 0 ] && [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ] && [ "$os" != "WINCE" ]; then
if [ -z "$allegro_config" ] && [ -z "$sdl_config" ] && [ "$with_cocoa" = 0 ] && [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ]; then
log 1 "configure: error: no video driver development files found"
log 1 " If you want a dedicated server use --enable-dedicated as parameter"
exit 1
@@ -799,7 +820,7 @@ check_params() {
pre_detect_with_zlib=$with_zlib
detect_zlib
if [ "$with_zlib" = "0" ] || [ -z "$zlib-config" ]; then
if [ "$with_zlib" = "0" ] || [ -z "$zlib_config" ]; then
log 1 "WARNING: zlib was not detected or disabled"
log 1 "WARNING: OpenTTD doesn't require zlib, but it does mean that many features"
log 1 "WARNING: (like loading most old savegames/scenarios, loading heightmaps,"
@@ -846,14 +867,36 @@ check_params() {
fi
fi
if [ "$with_uniscribe" != "0" ]; then
if [ "$os" != "MINGW" ]; then
if [ "$with_uniscribe" != "1" ]; then
log 1 "configure: error: Uniscribe is only supported on native Win32 targets"
exit 1
fi
with_uniscribe="0"
log 1 "checking Uniscribe text layout... not Windows, skipping"
else
log 1 "checking Uniscribe text layout... found"
# Don't use ICU unless forced.
if [ "$with_icu_layout" = "1" ]; then
with_icu_layout="0"
fi
if [ "$with_icu_sort" = "1" ]; then
with_icu_sort="0"
fi
fi
fi
detect_xdg_basedir
detect_png
detect_freetype
detect_fontconfig
detect_icu_layout
detect_icu_sort
detect_pspconfig
detect_libtimidity
detect_fluidsynth
if [ "$with_direct_music" != "0" ]; then
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ]; then
@@ -869,13 +912,21 @@ check_params() {
fi
fi
detect_sort
if [ "$with_xaudio2" != "0" ]; then
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ]; then
if [ "$with_xaudio2" != "1" ]; then
log 1 "configure: error: xaudio2 is only supported on Win32 targets"
exit 1
fi
with_xaudio2="0"
if [ "$os" = "OSX" ] && [ "$endian" = "AUTO" ]; then
endian="PREPROCESSOR"
log 1 "checking xaudio2... not Windows, skipping"
else
check_xaudio2
fi
fi
log 1 "checking endianness... $endian"
detect_sort
# Suppress language errors when there is a version defined, indicating a release
# It just isn't pretty if any release produces warnings in the languages.
@@ -1087,7 +1138,7 @@ check_params() {
fi
if [ "$personal_dir" = "1" ]; then
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "WINCE" ] || [ "$os" = "DOS" ] || [ "$os" = "HAIKU" ]; then
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "DOS" ] || [ "$os" = "HAIKU" ]; then
personal_dir="OpenTTD"
elif [ "$os" = "OSX" ]; then
personal_dir="Documents/OpenTTD"
@@ -1184,12 +1235,15 @@ make_compiler_cflags() {
# $4 - name of the ldflags variable
# $5 - name of the features variable
# Get the compiler to tell us who it is
version_line="`$1 --version | head -n1`"
eval eval "flags=\\\$$2"
eval eval "cxxflags=\\\$$3"
eval eval "ldflags=\\\$$4"
eval eval "features=\\\$$5"
if [ `basename $1 | cut -c 1-3` = "icc" ]; then
if [ `echo "$version_line" | cut -d' ' -f1` = "icc" ]; then
# Enable some things only for certain ICC versions
cc_version=`$1 -dumpversion | cut -c 1-4 | sed s@\\\.@@g`
@@ -1264,8 +1318,6 @@ make_compiler_cflags() {
if [ $cc_version -ge 110 ]; then
# remark #2259: non-pointer conversion from ... to ... may lose significant bits
flags="$flags -wd2259"
# Use c++0x mode so static_assert() is available
cxxflags="$cxxflags -std=c++0x"
fi
if [ "$enable_lto" != "0" ]; then
@@ -1276,9 +1328,10 @@ make_compiler_cflags() {
features="$features lto"
fi
fi
elif [ `basename $1 | grep 'clang'` ]; then
elif echo "$version_line" | grep -q "clang"; then
# Enable some things only for certain clang versions
cc_version="`$1 -v 2>&1 | head -n 1 | sed s@[^0-9]@@g | cut -c 1-2`"
# Need to try really hard to get the version line, because OSX clang likes to hide its true version
cc_version="`$1 -v 2>&1 | grep -i version | head -n 1 | sed s@[^0-9]@@g | cut -c 1-2`"
# aliasing rules are not held in openttd code
flags="$flags -fno-strict-aliasing"
@@ -1326,13 +1379,10 @@ make_compiler_cflags() {
flags="$flags -Wno-unused-variable"
fi
if [ "$cc_version" -ge "33" ]; then
# clang completed C++11 support in version 3.3
flags="$flags -std=c++11"
fi
# rdynamic is used to get useful stack traces from crash reports.
ldflags="$ldflags -rdynamic"
# Assume gcc, since it just uses argv[0] in its --version output
else
# Enable some things only for certain GCC versions
# cc_version = major_version * 100 + minor_version
@@ -1387,12 +1437,6 @@ make_compiler_cflags() {
flags="$flags -Wnon-virtual-dtor"
fi
if [ $cc_version -ge 403 ] && [ $cc_version -lt 600 ]; then
# Use gnu++0x mode so static_assert() is available.
# Don't use c++0x, it breaks mingw (with gcc 4.4.0).
cxxflags="$cxxflags -std=gnu++0x"
fi
if [ $cc_version -eq 405 ]; then
# Prevent optimisation supposing enums are in a range specified by the standard
# For details, see http://gcc.gnu.org/PR43680
@@ -1414,7 +1458,7 @@ make_compiler_cflags() {
if [ $cc_version -ge 600 ]; then
# -flifetime-dse=2 (default since GCC 6) doesn't play
# well with our custom pool item allocator
cxxflags="$cxxflags -flifetime-dse=1 -std=gnu++14"
cxxflags="$cxxflags -flifetime-dse=1"
fi
if [ "$enable_lto" != "0" ]; then
@@ -1448,21 +1492,27 @@ make_compiler_cflags() {
make_cflags_and_ldflags() {
# General CFlags for BUILD
CFLAGS_BUILD="$CFLAGS_BUILD"
CFLAGS_BUILD_ENV="$CFLAGS_BUILD"
CFLAGS_BUILD=""
# Special CXXFlags for BUILD
CXXFLAGS_BUILD="$CXXFLAGS_BUILD"
CXXFLAGS_BUILD_ENV="$CXXFLAGS_BUILD"
CXXFLAGS_BUILD=""
# LDFLAGS for BUILD
LDFLAGS_BUILD="$LDFLAGS_BUILD"
LDFLAGS_BUILD_ENV="$LDFLAGS_BUILD"
LDFLAGS_BUILD=""
# FEATURES for BUILD (lto)
FEATURES_BUILD=""
# General CFlags for HOST
CFLAGS="$CFLAGS"
CFLAGS_ENV="$CFLAGS"
CFLAGS=""
# Special CXXFlags for HOST
CXXFLAGS="$CXXFLAGS"
CXXFLAGS_ENV="$CXXFLAGS"
CXXFLAGS=""
# Libs to compile. In fact this is just LDFLAGS
LIBS="-lstdc++"
LIBS=""
# LDFLAGS used for HOST
LDFLAGS="$LDFLAGS"
LDFLAGS_ENV="$LDFLAGS"
LDFLAGS=""
# FEATURES for HOST (lto)
FEATURES=""
@@ -1471,6 +1521,8 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS -D$os"
CFLAGS_BUILD="$CFLAGS_BUILD -D$os"
CXXFLAGS="$CXXFLAGS -std=c++11"
CXXFLAGS_BUILD="$CXXFLAGS_BUILD -std=c++11"
if [ "$enable_debug" = "0" ]; then
# No debug, add default stuff
@@ -1491,9 +1543,6 @@ make_cflags_and_ldflags() {
# Each debug level reduces the optimization by a bit
if [ $enable_debug -ge 1 ]; then
CFLAGS="$CFLAGS -g -D_DEBUG"
if [ "$os" = "PSP" ]; then
CFLAGS="$CFLAGS -G0"
fi
fi
if [ $enable_debug -ge 2 ]; then
CFLAGS="$CFLAGS -fno-inline"
@@ -1567,23 +1616,13 @@ make_cflags_and_ldflags() {
fi
fi
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "OPENBSD" ] && [ "$os" != "MINGW" ] && [ "$os" != "MORPHOS" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ] && [ "$os" != "PSP" ] && [ "$os" != "OS2" ]; then
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "OPENBSD" ] && [ "$os" != "MINGW" ] && [ "$os" != "MORPHOS" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ] && [ "$os" != "OS2" ]; then
LIBS="$LIBS -lpthread"
fi
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "MINGW" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ]; then
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "MINGW" ] && [ "$os" != "DOS" ]; then
LIBS="$LIBS -lc"
fi
if [ "$os" = "WINCE" ]; then
LIBS="$LIBS -lcoredll -lcorelibc -laygshell -lws2 -e WinMainCRTStartup"
fi
if [ "$os" = "PSP" ]; then
CFLAGS="$CFLAGS -I`$psp_config -p`/include"
LDFLAGS="$LDFLAGS -L`$psp_config -p`/lib"
CFLAGS="$CFLAGS -fno-exceptions -fno-rtti -D_PSP_FW_VERSION=150"
LIBS="$LIBS -D_PSP_FW_VERSION=150 -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -lm"
fi
if [ "$os" = "MORPHOS" ]; then
# -Wstrict-prototypes generates much noise because of system headers
@@ -1622,14 +1661,14 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS -DUNIX"
fi
# And others like Windows
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "WINCE" ]; then
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then
CFLAGS="$CFLAGS -DWIN"
fi
if [ -n "$allegro_config" ]; then
CFLAGS="$CFLAGS -DWITH_ALLEGRO"
CFLAGS="$CFLAGS `$allegro_config --cflags`"
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ] && [ "$os" != "WINCE" ]; then
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ]; then
if [ "$enable_static" != "0" ]; then
LIBS="$LIBS `$allegro_config --static --libs`"
else
@@ -1642,12 +1681,10 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS -DWITH_SDL"
# SDL must not add _GNU_SOURCE as it breaks many platforms
CFLAGS="$CFLAGS `$sdl_config --cflags | sed 's@-D_GNU_SOURCE[^ ]*@@'`"
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ] && [ "$os" != "WINCE" ]; then
if [ "$enable_static" != "0" ]; then
LIBS="$LIBS `$sdl_config --static-libs`"
else
LIBS="$LIBS `$sdl_config --libs`"
fi
if [ "$enable_static" != "0" ]; then
LIBS="$LIBS `$sdl_config --static --libs`"
else
LIBS="$LIBS `$sdl_config --libs`"
fi
fi
@@ -1739,7 +1776,7 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS `$freetype_config --cflags | tr '\n\r' ' '`"
if [ "$enable_static" != "0" ]; then
LIBS="$LIBS `$freetype_config --libs --static | tr '\n\r' ' '`"
LIBS="$LIBS `$freetype_config --libs --static | tr '\n\r' ' '` -lfreetype"
else
LIBS="$LIBS `$freetype_config --libs | tr '\n\r' ' '`"
fi
@@ -1767,6 +1804,10 @@ make_cflags_and_ldflags() {
fi
fi
if [ "$with_uniscribe" != "0" ]; then
CFLAGS="$CFLAGS -DWITH_UNISCRIBE"
LIBS="$LIBS -lusp10"
fi
if [ "$with_direct_music" != "0" ]; then
CFLAGS="$CFLAGS -DWIN32_ENABLE_DIRECTMUSIC_SUPPORT"
@@ -1778,6 +1819,10 @@ make_cflags_and_ldflags() {
fi
fi
if [ "$with_xaudio2" != "0" ]; then
CFLAGS="$CFLAGS -DWITH_XAUDIO2"
fi
if [ -n "$libtimidity_config" ]; then
CFLAGS="$CFLAGS -DLIBTIMIDITY"
CFLAGS="$CFLAGS `$libtimidity_config --cflags | tr '\n\r' ' '`"
@@ -1789,6 +1834,11 @@ make_cflags_and_ldflags() {
fi
fi
if [ -n "$fluidsynth" ]; then
LIBS="$LIBS -lfluidsynth"
CFLAGS="$CFLAGS -DFLUIDSYNTH"
fi
if [ "$with_iconv" != "0" ]; then
CFLAGS="$CFLAGS -DWITH_ICONV"
if [ "$link_to_iconv" = "yes" ]; then
@@ -1880,6 +1930,14 @@ make_cflags_and_ldflags() {
fi
fi
# All flags to be extended via the env
CFLAGS_BUILD="$CFLAGS_BUILD $CFLAGS_BUILD_ENV"
CXXFLAGS_BUILD="$CXXFLAGS_BUILD $CXXFLAGS_BUILD_ENV"
LDFLAGS_BUILD="$LDFLAGS_BUILD $LDFLAGS_BUILD_ENV"
CFLAGS="$CFLAGS $CFLAGS_ENV"
CXXFLAGS="$CXXFLAGS $CXXFLAGS_ENV"
LDFLAGS="$LDFLAGS $LDFLAGS_ENV"
log 1 "using CFLAGS_BUILD... $CFLAGS_BUILD"
log 1 "using CXXFLAGS_BUILD... $CXXFLAGS_BUILD"
log 1 "using LDFLAGS_BUILD... $LDFLAGS_BUILD"
@@ -1899,7 +1957,7 @@ make_cflags_and_ldflags() {
cflags_makedep="`echo | $cxx_host $CXXFLAGS -E -x c++ -dM - | sed 's@.define @-D@g;s@ .*@ @g;s@(.*)@@g' | tr -d '\r\n'`"
# Please escape ALL " within ` because e.g. "" terminates the string in some sh implementations
cflags_makedep="$cflags_makedep `echo \"$CFLAGS\" \"$CXXFLAGS\" | sed 's@ /@ -@g;s@-I[ ]*[^ ]*@@g'`"
cflags_makedep="$cflags_makedep `echo \"$CFLAGS\" \"$CXXFLAGS\" | sed 's@ /@ -@g;s@-I[ ]*[^ ]*@@g;s@[ ]*-[^D][^ ]*@@g'`"
else
makedepend=""
fi
@@ -1930,7 +1988,22 @@ check_compiler() {
# $8 - "0" gcc, "1" g++, "2" windres, "3" strip, "4" lipo
# $9 - What the command is to check for
if [ -n "$3" ]; then
if [ -n "$4" ]; then
# Check for manual compiler
machine=`$4 $9 2>/dev/null`
ret=$?
eval "$2=\"$4\""
log 2 "executing $4 $9"
log 2 " returned $machine"
log 2 " exit code $ret"
if ( [ -z "$machine" ] && [ "$8" != "3" ] ) || [ "$ret" != "0" ]; then
log 1 "checking $1... $4 not found"
log 1 "the selected binary doesn't seem to be a $6 binary"
exit 1
fi
elif [ -n "$3" ]; then
# Check for system
if [ -z "$6" ]; then
compiler="$3"
@@ -1973,21 +2046,6 @@ check_compiler() {
log 1 "the compiler suggests it doesn't build code for the machine you specified"
exit 1
fi
elif [ -n "$4" ]; then
# Check for manual compiler
machine=`$4 $9 2>/dev/null`
ret=$?
eval "$2=\"$4\""
log 2 "executing $4 $9"
log 2 " returned $machine"
log 2 " exit code $ret"
if ( [ -z "$machine" ] && [ "$8" != "3" ] ) || [ "$ret" != "0" ]; then
log 1 "checking $1... $4 not found"
log 1 "the selected binary doesn't seem to be a $6 binary"
exit 1
fi
else
# Nothing given, autodetect
@@ -2050,26 +2108,13 @@ check_compiler() {
}
check_build() {
if [ "$os" = "FREEBSD" ]; then
# FreeBSD's C compiler does not support dump machine.
# However, removing C support is not possible because PSP must be linked with the C compiler.
check_compiler "build system type" "cc_build" "$build" "$cc_build" "$CXX" "g++" "c++" "0" "-dumpmachine"
else
check_compiler "build system type" "cc_build" "$build" "$cc_build" "$CC" "gcc" "cc" "0" "-dumpmachine"
fi
check_compiler "build system type" "cc_build" "$build" "$cc_build" "$CC" "gcc" "cc" "0" "-dumpmachine"
}
check_host() {
# By default the host is the build
if [ -z "$host" ]; then host="$build"; fi
if [ "$os" = "FREEBSD" ]; then
# FreeBSD's C compiler does not support dump machine.
# However, removing C support is not possible because PSP must be linked with the C compiler.
check_compiler "host system type" "cc_host" "$host" "$cc_host" "$CXX" "g++" "c++" "0" "-dumpmachine"
else
check_compiler "host system type" "cc_host" "$host" "$cc_host" "$CC" "gcc" "cc" "0" "-dumpmachine"
fi
check_compiler "host system type" "cc_host" "$host" "$cc_host" "$CC" "gcc" "cc" "0" "-dumpmachine"
}
check_cxx_build() {
@@ -2083,7 +2128,7 @@ check_cxx_host() {
}
check_windres() {
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "WINCE" ]; then
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then
check_compiler "host windres" "windres" "$host" "$windres" "$WINDRES" "windres" "windres" "2" "-V"
fi
}
@@ -2150,9 +2195,7 @@ check_direct_music() {
echo "
#include <windows.h>
#include <dmksctrl.h>
#include <dmusici.h>
#include <dmusicc.h>
#include <dmusicf.h>
int main(int argc, char *argv[]) { }" > direct_music.test.c
$cxx_host $CFLAGS direct_music.test.c -o direct_music.test 2> /dev/null
res=$?
@@ -2171,6 +2214,35 @@ check_direct_music() {
fi
}
check_xaudio2() {
echo "
#include <windows.h>
#undef NTDDI_VERSION
#undef _WIN32_WINNT
#define NTDDI_VERSION NTDDI_WIN8
#define _WIN32_WINNT _WIN32_WINNT_WIN8
#include <xaudio2.h>
int main(int argc, char *argv[]) { }" > xaudio2.test.c
$cxx_host $CFLAGS xaudio2.test.c -o xaudio2.test 2> /dev/null
res=$?
rm -f xaudio2.test.c xaudio2.test
if [ "$res" != "0" ]; then
if [ "$with_xaudio2" != "1" ]; then
log 1 "configure: error: xaudio2 is not available on this system"
exit 1
fi
with_xaudio2="0"
log 1 "checking xaudio2... not found"
else
log 1 "checking xaudio2... found"
fi
}
check_makedepend() {
if [ "$enable_builtin_depend" != "0" ]; then
with_makedepend="0"
@@ -2289,7 +2361,7 @@ detect_awk() {
detect_os() {
if [ "$os" = "DETECT" ]; then
# Detect UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, HPUX, MORPHOS, BEOS, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP
# Detect UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, HPUX, MORPHOS, BEOS, SUNOS, CYGWIN, MINGW, OS2, and DOS
# Try first via dumpmachine, then via uname
os=`echo "$host" | tr '[A-Z]' '[a-z]' | $awk '
@@ -2309,8 +2381,6 @@ detect_os() {
/mingw/ { print "MINGW"; exit}
/os2/ { print "OS2"; exit}
/dos/ { print "DOS"; exit}
/wince/ { print "WINCE"; exit}
/psp/ { print "PSP"; exit}
'`
if [ -z "$os" ]; then
@@ -2336,7 +2406,7 @@ detect_os() {
if [ -z "$os" ]; then
log 1 "detecting OS... none detected"
log 1 "I couldn't detect your OS. Please use --os=OS to force one"
log 1 "Allowed values are: UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, MORPHOS, HPUX, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP"
log 1 "Allowed values are: UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, MORPHOS, HPUX, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, and DOS"
exit 1
fi
@@ -2595,6 +2665,11 @@ detect_library() {
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /mingw/include/$4$5... no"
eval "$2=`ls -1 /mingw$cpu_type/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
fi
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /mingw$cpu_type/include/$4$5... no"
eval "$2=`ls -1 /opt/local/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
fi
eval "res=\$$2"
@@ -2643,6 +2718,11 @@ detect_library() {
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /mingw/lib/$3... no"
eval "$2=`ls /mingw$cpu_type/lib/*.a 2>/dev/null | egrep \"\/$3\$\"`"
fi
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /mingw$cpu_type/lib/$3... no"
log 1 "configure: error: $2 couldn't be found"
log 1 "configure: error: you requested a static link, but I can't find $3"
@@ -2695,6 +2775,10 @@ detect_libtimidity() {
detect_pkg_config "$with_libtimidity" "libtimidity" "libtimidity_config" "0.1" "1"
}
detect_fluidsynth() {
detect_library "$with_fluidsynth" "fluidsynth" "" "" "fluidsynth.h"
}
detect_pkg_config() {
# $1 - config-param ($with_lzma value)
# $2 - package name ('liblzma')
@@ -2779,7 +2863,7 @@ detect_fontconfig() {
fontconfig_config=""
return 0
fi
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "WINCE" ]; then
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then
log 1 "checking libfontconfig... WIN32, skipping"
fontconfig_config=""
return 0
@@ -2795,62 +2879,25 @@ detect_fontconfig() {
}
detect_icu_layout() {
if [ "$with_cocoa" != "0" ] && [ "$with_icu_layout" = "1" ]; then
log 1 "checking icu-lx... OSX, skipping"
icu_layout_config=""
return 0
fi
detect_pkg_config "$with_icu_layout" "icu-lx" "icu_layout_config" "4.8" "1"
}
detect_icu_sort() {
if [ "$with_cocoa" != "0" ] && [ "$with_icu_sort" = "1" ]; then
log 1 "checking icu-i18n... OSX, skipping"
icu_sort_config=""
return 0
fi
detect_pkg_config "$with_icu_sort" "icu-i18n" "icu_sort_config" "4.8" "1"
}
detect_pspconfig() {
# 0 means no, 1 is auto-detect, 2 is force
if [ "$with_psp_config" = "0" ]; then
log 1 "checking psp-config... disabled"
psp_config=""
return 0
fi
if [ "$with_psp_config" = "1" ] && [ "$os" != "PSP" ]; then
log 1 "checking psp-config... not PSP, skipping"
psp_config="";
return 0
fi
if [ "$os" != "PSP" ]; then
log 1 "checking psp-config... not PSP"
log 1 "configure: error: psp-config is only supported for PSP"
exit 1
fi
if [ "$with_psp_config" = "1" ] || [ "$with_psp_config" = "" ] || [ "$with_psp_config" = "2" ]; then
psp_config="psp-config"
else
psp_config="$with_psp_config"
fi
version=`$psp_config -p 2>/dev/null`
ret=$?
log 2 "executing $psp_config -p"
log 2 " returned $version"
log 2 " exit code $ret"
if [ -z "$version" ] || [ "$ret" != "0" ]; then
log 1 "checking psp-config... not found"
log 1 "configure: error: psp-config couldn't be found"
# It was forced, so it should be found.
if [ "$with_psp_config" != "1" ]; then
log 1 "configure: error: you supplied '$with_psp_config', but it seems invalid"
fi
exit 1
fi
log 1 "checking psp-config... found"
}
detect_iconv() {
# 0 means no, 1 is auto-detect, 2 is force
if [ "$with_iconv" = "0" ]; then
@@ -2869,10 +2916,16 @@ detect_iconv() {
# Try to find iconv.h, seems to only thing to detect iconv with
if [ "$with_iconv" = "1" ] || [ "$with_iconv" = "" ] || [ "$with_iconv" = "2" ]; then
iconv=`ls -1 /usr/include 2>/dev/null | grep "iconv.h"`
if [ -z "$iconv" ]; then
iconv=`ls -1 /usr/local/include 2>/dev/null | grep "iconv.h"`
fi
# Iterate over search paths
iconv=""
search_paths=`LC_ALL=C $cxx_host $OSX_SYSROOT $CFLAGS -E - -v </dev/null 2>&1 | \
$awk '/#include <...> search starts here:/{flag=1;next}/End of search list./{flag=0}flag'`
for path in $search_paths; do
iconv=`ls -1 $path 2>/dev/null | grep "iconv.h"`
if [ -n "$iconv" ]; then
break
fi
done
else
# Make sure it exists
iconv=`ls $with_iconv/include/iconv.h 2>/dev/null`
@@ -3200,17 +3253,14 @@ make_sed() {
s@!!INSTALL_DIR!!@$install_dir@g;
s@!!BINARY_NAME!!@$binary_name@g;
s@!!STRGEN!!@$STRGEN@g;
s@!!ENDIAN_CHECK!!@$ENDIAN_CHECK@g;
s@!!DEPEND!!@$DEPEND@g;
s@!!SETTINGSGEN!!@$SETTINGSGEN@g;
s@!!ENDIAN_FORCE!!@$endian@g;
s@!!STAGE!!@$STAGE@g;
s@!!MAKEDEPEND!!@$makedepend@g;
s@!!CFLAGS_MAKEDEP!!@$cflags_makedep@g;
s@!!SORT!!@$sort@g;
s@!!CONFIG_CACHE_COMPILER!!@config.cache.compiler@g;
s@!!CONFIG_CACHE_LINKER!!@config.cache.linker@g;
s@!!CONFIG_CACHE_ENDIAN!!@config.cache.endian@g;
s@!!CONFIG_CACHE_SOURCE!!@config.cache.source@g;
s@!!CONFIG_CACHE_VERSION!!@config.cache.version@g;
s@!!CONFIG_CACHE_SOURCE_LIST!!@config.cache.source.list@g;
@@ -3444,8 +3494,7 @@ showhelp() {
echo " --os=OS the OS we are compiling for [DETECT]"
echo " DETECT/UNIX/OSX/FREEBSD/DRAGONFLY/OPENBSD/"
echo " NETBSD/MORPHOS/HPUX/BEOS/SUNOS/CYGWIN/"
echo " MINGW/OS2/DOS/WINCE/PSP/HAIKU"
echo " --endian=ENDIAN set the endian of the HOST (AUTO/LE/BE)"
echo " MINGW/OS2/DOS/HAIKU"
echo ""
echo "Paths:"
echo " --prefix-dir=dir specifies the prefix for all installed"
@@ -3516,6 +3565,7 @@ showhelp() {
echo " midi-player"
echo " --with-libtimidity[=\"pkg-config libtimidity\"]"
echo " enables libtimidity support"
echo " --with-fluidsynth enables fluidsynth support"
echo " --with-allegro[=\"pkg-config allegro\"]"
echo " enables Allegro video driver support"
echo " --with-cocoa enables COCOA video driver (OSX ONLY)"
@@ -3541,7 +3591,6 @@ showhelp() {
echo " --static-icu try to link statically (libsicu instead of"
echo " libicu; can fail as the new name is guessed)"
echo " --with-iconv[=iconv-path] enables iconv support"
echo " --with-psp-config[=psp-config] enables psp-config support (PSP ONLY)"
echo " --disable-builtin-depend disable use of builtin deps finder"
echo " --with-makedepend[=makedepend] enables makedepend support"
echo " --with-ccache enables ccache support"
@@ -3562,6 +3611,8 @@ showhelp() {
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 " PKG_CONFIG_PATH additional library search paths (see \"man pkg-config\")"
echo " PKG_CONFIG_LIBDIR replace the default library search path (see \"man pkg-config\")"
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."

6
configure vendored
View File

@@ -75,13 +75,12 @@ save_params
make_cflags_and_ldflags
EXE=""
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] || [ "$os" = "DOS" ] || [ "$os" = "WINCE" ]; then
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] || [ "$os" = "DOS" ]; then
EXE=".exe"
fi
TTD="openttd$EXE"
STRGEN="strgen$EXE"
ENDIAN_CHECK="endian_check$EXE"
DEPEND="depend$EXE"
SETTINGSGEN="settings_gen$EXE"
@@ -114,7 +113,6 @@ AWKCOMMAND='
if ($0 == "PNG" && "'$png_config'" == "") { next; }
if ($0 == "OSX" && "'$os'" != "OSX") { next; }
if ($0 == "OS2" && "'$os'" != "OS2") { next; }
if ($0 == "PSP" && "'$os'" != "PSP") { next; }
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; }
if ($0 == "AI" && "'$enable_ai'" == "0") { next; }
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; }
@@ -124,10 +122,10 @@ AWKCOMMAND='
if ($0 == "WIN32" && "'$os'" != "MINGW" &&
"'$os'" != "CYGWIN" && "'$os'" != "MSVC") { next; }
if ($0 == "MORPHOS" && "'$os'" != "MORPHOS") { next; }
if ($0 == "WINCE" && "'$os'" != "WINCE") { next; }
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; }
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
if ($0 == "FLUIDSYNTH" && "'$fluidsynth'" == "" ) { next; }
if ($0 == "HAVE_THREAD" && "'$with_threads'" == "0") { next; }
if ($0 == "SSE" && "'$with_sse'" != "1") { next; }

View File

@@ -29,7 +29,7 @@ english.txt to work. Below are some examples of strgen usage.
1.1) Examples
---- --------
Example 1:
if you are in the root of your working copy (svn code), you should type
if you are in the root of your working copy (git repository), you should type
strgen/strgen -s lang lang/english.txt
to compile englist.txt into english.lng. It will be placed in the lang dir
@@ -50,7 +50,7 @@ You can interchange english.txt to whichever language you want to generate a
1.2) strgen command switches
---- -----------------------
-v | --version
strgen will tell what svn revision it was last modified
strgen will tell what git revision it was last modified
-t | --todo
strgen will add <TODO> to any untranslated/missing strings and use the english

View File

@@ -0,0 +1,71 @@
# Compiling OpenTTD using Microsoft Visual C++
Last updated: 2018-12-27
## Supported MSVC compilers
OpenTTD includes projects for Visual Studio 2015 Update 3 or more recent.
You can download the free Visual Studio Community Edition from Microsoft at
https://visualstudio.microsoft.com/vs/community/.
## Required files
### Microsoft platform files
OpenTTD needs the Platform SDK, if it isn't installed already. This can be
done during installing Visual Studio, by selecting
`Visual C++ MFC for x86 and x64` (and possibly
`Visual C++ ATL for x86 and x64` depending on your version). If not, you
can get it at this location:
- [MS Windows Platform SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk)
Install the SDK by following the instructions as given.
### OpenTTD dependencies
Dependencies for OpenTTD on Windows are handled via
[vcpkg](https://github.com/Microsoft/vcpkg/). First you need to install vcpkg
by following the `Quick Start` intructions of their
[README](https://github.com/Microsoft/vcpkg/blob/master/README.md).
After this, you can install the dependencies OpenTTD needs. We advise to use
the `static` versions, and OpenTTD currently needs the following dependencies:
- freetype
- liblzma
- libpng
- lzo
- zlib
To install both the x64 (64bit) and x86 (32bit) variants, you can use:
```ps
.\vcpkg install freetype:x64-windows-static liblzma:x64-windows-static libpng:x64-windows-static lzo:x64-windows-static zlib:x64-windows-static
.\vcpkg install freetype:x86-windows-static liblzma:x86-windows-static libpng:x86-windows-static lzo:x86-windows-static zlib:x86-windows-static
```
## TTD Graphics files
See section 4.1 of README.md for the required 3rdparty files and how to install them.
## Compiling
Open the appropriate `sln` (Solution) file for your version of Visual Studio:
- VS 2015: projects/openttd_vs140.sln
- VS 2017: projects/openttd_vs141.sln
- VS 2019: projects/openttd_vs142.sln
Set the build mode to `Release` in
`Build > Configuration manager > Active solution configuration`.
You can now compile.
If everything works well the binary should be in `objs\Win[32|64]\Release\openttd.exe`
and in `bin\openttd.exe`
## Problems
If compilation fails, double-check that you are using the latest github
source. If it still doesn't work, check in on IRC (irc://irc.oftc.net/openttd),
to ask for help.

View File

@@ -1,108 +0,0 @@
Compiling OpenTTD using Microsoft Visual C++
Last updated: 2010-01-03
--------------------------------------------
PLEASE READ THE ENTIRE DOCUMENT BEFORE DOING ANY ACTUAL CHANGES!!
SUPPORTED MSVC COMPILERS
------------------------
OpenTTD includes projects for MSVC 2005.NET and MSVC 2008.NET. Both will
compile out of the box, providing you have the required libraries/headers;
which ones, see below. There is no support for VS6 or MSVC 2002, or
MSVC 2003.NET. You are therefore strongly encouraged to either upgrade to
MSVC 2008 Express (free) or use GCC.
1) REQUIRED FILES
-----------------
You might already have some of the files already installed, so check before
downloading; mostly because the DirectX SDK and Platform SDK are about
500MB each.
Download the following files:
* openttd-useful.zip (http://binaries.openttd.org/extra/openttd-useful/)
* DirectX 8.1 SDK (http://neuron.tuke.sk/~mizanin/eng/Dx81sdk-include-lib.rar) (or alternatively the latest DirectX SDK from Microsoft)
* MS Windows Platform SDK (http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en)
* afxres.h (http://www-d0.fnal.gov/d0dist/dist/packages/d0ve/devel/windows/AFXRES.H)
...and of course the newest source from svn://svn.openttd.org/trunk
You need an SVN-client to download the source from subversion:
* CLI Subversion (http://subversion.tigris.org/)
* GUI TortoiseSVN (http://tortoisesvn.tigris.org/)
2) INCLUDES AND LIBRARIES
-------------------------
Put the newly downloaded files in the VC lib\ and include\ directories; where
"C:\Program Files\Microsoft Visual Studio 9.0\VC" is your location of Visual C.
If you are compiling for an x64 system, use the include\ and lib\ directories
from the win64/ folder.
* openttd-useful.zip\include\*
* afxresh.h
to > C:\Program Files\Microsoft Visual Studio 9.0\VC\Include
* openttd-useful.zip\lib\*
to > C:\Program Files\Microsoft Visual Studio 9.0\VC\Lib
Custom directories might be recommended, check 2.2)
2.1) INCLUDES AND LIBRARIES - DIRECTX/PLATFORM SDK
--------------------------------------------------
Basically the same procedure as with the useful zip file, providing
you are not using the Microsoft installer. Put the include files in the
include\ directory and the library files to the Lib\ directory.
It is recommended to use custom directories so you don't overwrite any
default header or library files.
2.2) CUSTOM DIRECTORIES
-----------------------
If you have put the above include and/or library files into custom folders,
MSVC will not find them by default. You need to add these paths to VC through:
Tools > Options > Projects and Solutions > VC++ Directories > show directories for
* Include files: Add the DirectX/Platform SDK include dir you've created
* Library files: Add the path to the SDK custom lib dir
NOTE: make sure that the directory for the DirectX SDK is the first one in the
list, above all others, otherwise compilation will most likely fail!!
3) TTD GRAPHICS FILES
---------------------
See section 4.1 of readme.txt for the required 3rdparty files and how to install them.
4) COMPILING
------------
Open trunk/openttd_vs[89]0.sln
Set the build mode to 'Release' in
Build > Configuration manager > Active solution configuration > select "Release"
Compile...
If everything works well the binary should be in trunk/objs/Win[32|64]/Release/openttd.exe
5) EDITING, CHANGING SOURCE CODE
--------------------------------
Set the build mode (back to) 'Debug'
Change the startup project to openttd by right-clicking the 'openttd' project
in the Solution Explorer and selecting 'Set as Startup Project'. The 'openttd'
project should now show up bold instead of 'strgen'.
6) PROBLEMS?
------------
If compilation fails, double-check that you are using the latest SVN (!)
source. If it still doesn't work, check in on IRC (irc://irc.oftc.net/openttd),
to ask about reasons; or just wait. The problem will most likely solve itself
within a few days as the problem is noticed and fixed.
An up-to-date version of this README can be found on the wiki:
http://wiki.openttd.org/Microsoft_Visual_C%2B%2B_2008_Express_Editions

View File

@@ -226,7 +226,7 @@
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the tile</li>
<li>m2: see signals</li>
<li>m3 bits 7..4: see signals</li>
<li>m3 bits 3..0 = <a name="TrackType">track type</a>:
<li>m8 bits 5..0 = <a name="TrackType">track type</a>:
<table>
<tr>
<td><tt>0</tt>&nbsp; </td>
@@ -626,7 +626,8 @@
<li>m5 bit 6 set: level crossing
<ul>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the railway track</li>
<li>m3 bits 3..0: <a href="#TrackType">railway track type</a></li>
<li>m5 bit 5: set if crossing lights are on</li>
<li>m5 bit 4: pbs reservation state</li>
<li>m5 bit 0: direction
<table>
<tr>
@@ -639,9 +640,8 @@
</tr>
</table>
</li>
<li>m5 bit 5: set if crossing lights are on</li>
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
<li>m5 bit 4: pbs reservation state</li>
<li>m8 bits 5..0: <a href="#TrackType">railway track type</a></li>
</ul>
</li>
</ul>
@@ -759,6 +759,7 @@
<td valign=top nowrap>&nbsp;</td>
<td>
<ul>
<li>m1 bits 6..5: water class (sea or land)</li>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li>
<li>m2 bits 8..6: ground
<table>
@@ -860,7 +861,6 @@
<li>m2: index into the array of stations</li>
<li>m3 bits 7..4: persistent random data for railway stations/waypoints and airports)</li>
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of tram tracks (road stop)</li>
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway stations/waypoints</li>
<li>m4: custom station id; 0 means standard graphics</li>
<li>m5: graphics index (range from 0..255 for each station type):
<table>
@@ -979,6 +979,7 @@
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of road (road stops)</li>
<li>m7 bits 7..6: present road types (road stops)</li>
<li>m7: animation frame (railway stations/waypoints, airports)</li>
<li>m8 bits 5..0: <a href="#TrackType">track type</a> for railway stations/waypoints</li>
</ul>
</td>
</tr>
@@ -1444,7 +1445,6 @@
<ul>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a></li>
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of tram</li>
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway</li>
<li>m5 bit 4: pbs reservation state for railway</li>
<li>m5 bits 7 clear: tunnel entrance/exit</li>
<li>m5 bit 7 set: bridge ramp
@@ -1582,6 +1582,7 @@
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of road</li>
<li>m7 bit 5 set = on snow or desert</li>
<li>m7 bits 7..6: present road types for road</li>
<li>m8 bits 5..0: <a href="#TrackType">track type</a> for railway</li>
</ul>
</td>
</tr>

View File

@@ -37,6 +37,7 @@ the array so you can quickly see what is used and what is not.
<li><span style="font-weight: bold;">m5</span> - 8 bits in size, is used for general storage</li>
<li><span style="font-weight: bold;">m6</span> - 8 bits in size, is used for general storage</li>
<li><span style="font-weight: bold;">m7</span> - 8 bits in size, is used for general storage</li>
<li><span style="font-weight: bold;">m8</span> - 16 bits in size, is used for general storage</li>
</ul>
<table align=center border="1" cellpadding="2" cellspacing="2">
@@ -52,6 +53,7 @@ the array so you can quickly see what is used and what is not.
<th>m5 (8)</th>
<th>m6 (8)</th>
<th>m7 (8)</th>
<th>m8 (16)</th>
</tr>
<tr>
<td colspan=2 class="caption">bits</td>
@@ -64,6 +66,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">7654 3210</td>
<td class="bits">7654 3210</td>
<td class="bits">7654 3210</td>
<td class="bits">FEDC BA98 7654 3210</td>
</tr>
<tr>
<td rowspan="2">0</td>
@@ -77,6 +80,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOO</span>X XX<span class="free">OO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">farmland</td>
@@ -89,6 +93,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOO</span>X XX<span class="free">OO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td rowspan=3>1</td>
@@ -97,11 +102,12 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOO</span>X XXXX</td>
<td class="bits"><span class="free">OOOO</span> XXXX <span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO OO</span>XX XXXX</td>
</tr>
<tr>
<td class="caption">rail with signals</td>
@@ -109,11 +115,12 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO</span> XXXX XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX <span class="free">OOOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">-inherit-</td>
</tr>
<tr>
<td class="caption">depot</td>
@@ -121,11 +128,12 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits">XX<span class="free">O</span>X <span class="free">OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">-inherit-</td>
</tr>
<tr>
<td rowspan=3>2</td>
@@ -139,6 +147,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
<td class="bits">XXX<span class="free">O</span> XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">level crossing</td>
@@ -146,11 +155,12 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX<span class="free"> OOO</span>X</td>
<td class="bits">XXXX <span class="free">OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">XXXX <span class="free">OOO</span>X</td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OO</span>XX XXXX</td>
</tr>
<tr>
<td class="caption">road depot</td>
@@ -163,6 +173,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XX<span class="free">OO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">XXX<span class="free">O</span> XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td>3</td>
@@ -176,19 +187,21 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXX<span class="abuse">X XXXX</span></td>
<td class="bits"><span class="abuse">XXXX XX</span><span class="free">OO</span></td>
<td class="bits">XXXX <span class="abuse">XXXX</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td>4</td>
<td class="caption">trees</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOO</span><span class="option">~ ~~~~</span></td>
<td class="bits"><span class="free">O</span>XX<span class="option">~ ~~~~</span></td>
<td class="bits"><span class="free">OOOO OOO</span>X XXXX XXXX</td>
<td class="bits"><span class="option">~~</span>XX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">XX<span class="free">OO O</span>XXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td rowspan=7>5</td>
@@ -197,11 +210,12 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">O</span>XXX XXXX</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX <span class="free">OOOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OO</span>XX XX<span class="free">OO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OO</span>XX XXXX</td>
</tr>
<tr>
<td class="caption">rail waypoint</td>
@@ -214,6 +228,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
</tr>
<tr>
<td class="caption">road stop</td>
@@ -226,6 +241,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
<td class="bits">XX<span class="free">O</span>X XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">dock</td>
@@ -238,6 +254,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">airport</td>
@@ -250,6 +267,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">buoy</td>
@@ -262,6 +280,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">oilrig</td>
@@ -274,6 +293,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td rowspan=3>6</td>
@@ -287,6 +307,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">X<span class="option">~~</span>X XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">canal, river</td>
@@ -299,6 +320,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">shipdepot</td>
@@ -311,6 +333,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td>8</td>
@@ -324,6 +347,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OO</span>XX XX<span class="free">OO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
<tr>
<td rowspan=2>9</td>
@@ -332,23 +356,25 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOO</span>X XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX <span class="free">OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">X<span class="free">OO</span>X XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OO</span>XX XXXX</td>
</tr>
<tr>
<td>bridge ramp</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OO</span>XX XX<span class="free">OO</span></td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
</tr>
<tr>
<td rowspan=2>A</td>
@@ -362,6 +388,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
</tr>
</tbody>
</table>

View File

@@ -90,7 +90,7 @@ Table of contents
- [network] sync_freq:
change it in console with: 'set network.sync_freq <number>'
the number should be between the 50 and 1000, not much lower, not much
higer. It indicates the time between sync-frames. A sync-frame is a frame
higher. It indicates the time between sync-frames. A sync-frame is a frame
which checks if all clients are still in sync. When the value it too high,
clients can desync in 1960, but the server detects it in 1970. Not really
handy. The lower the value, the more bandwidth it uses.
@@ -104,7 +104,7 @@ Table of contents
- In UNIX like systems, you can fork your dedicated server by adding -f as
parameter.
- You can automaticly clean companies that do not have a client connected to
- You can automatically clean companies that do not have a client connected to
them, for, let's say, 3 years. You can do this via: 'set autoclean_companies'
and 'set autoclean_protected' and 'set autoclean_unprotected'. Unprotected
removes a password from a company when it is not used for more then the
@@ -113,7 +113,7 @@ Table of contents
- You can also do this manually via the console: 'reset_company'.
- You can let your server automaticly restart a map when, let's say, year 2030
- You can let your server automatically restart a map when, let's say, year 2030
is reached. See 'set restart_game_date' for detail.
- If you want to be on the server-list, enable Advertising. To do this, select

View File

@@ -45,12 +45,15 @@ description.en_US = howdie
; The file names are case sensitive.
; You can have empty file names; in that case no song will be loaded
; for that 'entry'.
; If you want to load music from the MPS DOS music driver "cat" format,
; specify just the name of the .cat file the song is located in, then
; fill out the "catindex" section.
[files]
; The theme song for OpenTTD
theme = THEME_SONG.GM
; The songs in the 'old style' category
old_0 =
old_1 =
old_0 = GM.CAT
old_1 = GM.CAT
old_2 =
old_3 =
old_4 =
@@ -86,9 +89,17 @@ ezy_9 =
; Note that the list of files is case sensitive. Each file listed in the
; files section must be listed here with it's song name, otherwise you
; will get a lot of warnings when starting OpenTTD.
; You don't need to fill this out for "cat" format music, the song names
; are loaded directly from the file in that case.
[names]
THEME_SONG.GM = Tycoon DELUXE Theme
; If you are loading music from the DOS version "cat" format, specify
; which index into the file the song has.
[catindex]
old_0 = 1
old_1 = 3
; The md5s section lists the MD5 checksum for the files that replace them.
; Note that the list of files is case sensitive. Each file listed in the
; files section must be listed here with it's MD5 checksum, otherwise you
@@ -96,6 +107,13 @@ THEME_SONG.GM = Tycoon DELUXE Theme
[md5s]
THEME_SONG.GM = 45cfec1b9d8c7a0ad45e755833cbf221
; If a song needs to have parts of the start or end cut off to avoid long
; silences, you can specify MIDI tick codes for start:end of the actual
; music part for each file here.
; Not all music drivers might support this feature.
[timingtrim]
THEME_SONG.GM = 768:53760
; The origin section provides the possibility to put and extra line into
; the warning that a file is missing/corrupt. This can be used to tell
; them where to find it. It works on the filename specified in the

View File

@@ -14,42 +14,31 @@ if [ "$#" != "0" ]; then
Usage: ./findversion.sh
Finds the current revision and if the code is modified.
Output: <REV>\t<REV_NR>\t<MODIFIED>\t<CLEAN_REV>
REV
Output: <VERSION>\t<ISODATE>\t<MODIFIED>\t<HASH>
VERSION
a string describing what version of the code the current checkout is
based on. The exact format of this string depends on the version
control system in use, but it tries to identify the revision used as
close as possible (using the svn revision number or hg/git hash).
This also includes an indication of whether the checkout was
modified and which branch was checked out. This value is not
based on.
This also includes the commit date, an indication of whether the checkout
was modified and which branch was checked out. This value is not
guaranteed to be sortable, but is mainly meant for identifying the
revision and user display.
If no revision identifier could be found, this is left empty.
REV_NR
the revision number of the svn revision this checkout is based on.
This can be used to determine which functionality is present in this
checkout. For trunk svn checkouts and hg/git branches based upon it,
this number should be accurate. For svn branch checkouts, this
number is mostly meaningless, at least when comparing with the
REV_NR from other branches or trunk.
ISODATE
the commit date of the revision this checkout is based on.
The commit date may differ from the author date.
This can be used to decide upon the age of the source.
This number should be sortable. Within a given branch or trunk, a
higher number means a newer version. However, when using git or hg,
this number will not increase on new commits.
If no revision number could be found, this is left empty.
If no timestamp could be found, this is left empty.
MODIFIED
Whether (the src directory of) this checkout is modified or not. A
value of 0 means not modified, a value of 2 means it was modified.
Modification is determined in relation to the commit identified by
REV, so not in relation to the svn revision identified by REV_NR.
A value of 1 means that the modified status is unknown, because this
is not an svn/git/hg checkout for example.
is not an git checkout for example.
CLEAN_REV
the same as REV but without branch name
HASH
the git revision hash
By setting the AWK environment variable, a caller can determine which
version of "awk" is used. If nothing is set, this script defaults to
@@ -70,21 +59,7 @@ ROOT_DIR=`pwd`
# Determine if we are using a modified version
# Assume the dir is not modified
MODIFIED="0"
if [ -d "$ROOT_DIR/.svn" ] || [ -d "$ROOT_DIR/../.svn" ]; then
# We are an svn checkout
if [ -n "`svnversion | grep 'M'`" ]; then
MODIFIED="2"
fi
# Find the revision like: rXXXXM-branch
BRANCH=`LC_ALL=C svn info | "$AWK" '/^URL:.*branches/ { split($2, a, "/"); for(i in a) if (a[i]=="branches") { print a[i+1]; break } }'`
TAG=`LC_ALL=C svn info | "$AWK" '/^URL:.*tags/ { split($2, a, "/"); for(i in a) if (a[i]=="tags") { print a[i+1]; break } }'`
REV_NR=`LC_ALL=C svn info | "$AWK" '/^Last Changed Rev:/ { print $4 }'`
if [ -n "$TAG" ]; then
REV=$TAG
else
REV="r$REV_NR"
fi
elif [ -d "$ROOT_DIR/.git" ]; then
if [ -d "$ROOT_DIR/.git" ]; then
# We are a git checkout
# Refresh the index to make sure file stat info is in sync, then look for modifications
git update-index --refresh >/dev/null
@@ -92,36 +67,33 @@ elif [ -d "$ROOT_DIR/.git" ]; then
MODIFIED="2"
fi
HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null`
REV="g`echo $HASH | cut -c1-8`"
BRANCH="`git symbolic-ref -q HEAD 2>/dev/null | sed 's@.*/@@;s@^master$@@'`"
REV_NR=`LC_ALL=C git log --pretty=format:%s --grep="^(svn r[0-9]*)" -1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
if [ -z "$REV_NR" ]; then
# No rev? Maybe it is a custom git-svn clone
REV_NR=`LC_ALL=C git log --pretty=format:%b --grep="git-svn-id:.*@[0-9]*" -1 | sed "s@.*\@\([0-9]*\).*@\1@"`
fi
SHORTHASH=`echo ${HASH} | cut -c1-10`
ISODATE=`LC_ALL=C git show -s --pretty='format:%ci' HEAD | "$AWK" '{ gsub("-", "", $1); print $1 }'`
BRANCH="`git symbolic-ref -q HEAD 2>/dev/null | sed 's@.*/@@'`"
TAG="`git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null | sed 's@\^0$@@'`"
if [ "$MODIFIED" -eq "0" ]; then
hashprefix="-g"
elif [ "$MODIFIED" -eq "2" ]; then
hashprefix="-m"
else
hashprefix="-u"
fi
if [ -n "$TAG" ]; then
BRANCH=""
REV="$TAG"
fi
elif [ -d "$ROOT_DIR/.hg" ]; then
# We are a hg checkout
if [ -n "`HGPLAIN= hg status | grep -v '^?'`" ]; then
MODIFIED="2"
fi
HASH=`LC_ALL=C HGPLAIN= hg id -i | cut -c1-12`
REV="h`echo $HASH | cut -c1-8`"
BRANCH="`HGPLAIN= hg branch | sed 's@^default$@@'`"
TAG="`HGPLAIN= hg id -t | grep -v 'tip$'`"
if [ -n "$TAG" ]; then
BRANCH=""
REV="$TAG"
fi
REV_NR=`LC_ALL=C HGPLAIN= hg log -f -k "(svn r" -l 1 --template "{desc|firstline}\n" | grep "^(svn r[0-9]*)" | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
if [ -z "$REV_NR" ]; then
# No rev? Maybe it is a custom hgsubversion clone
REV_NR=`LC_ALL=C HGPLAIN= hg parent --template="{svnrev}"`
VERSION="${TAG}"
ISTAG="1"
if [ -n "`echo \"${TAG}\" | grep \"^[0-9.]*$\"`" ]; then
ISSTABLETAG="1"
else
ISSTABLETAG="0"
fi
else
VERSION="${ISODATE}-${BRANCH}${hashprefix}${SHORTHASH}"
ISTAG="0"
ISSTABLETAG="0"
fi
elif [ -f "$ROOT_DIR/.ottdrev" ]; then
# We are an exported source bundle
cat $ROOT_DIR/.ottdrev
@@ -129,19 +101,14 @@ elif [ -f "$ROOT_DIR/.ottdrev" ]; then
else
# We don't know
MODIFIED="1"
HASH=""
SHORTHASH=""
BRANCH=""
REV=""
REV_NR=""
ISODATE=""
TAG=""
VERSION=""
ISTAG="0"
ISSTABLETAG="0"
fi
if [ "$MODIFIED" -eq "2" ]; then
REV="${REV}M"
fi
CLEAN_REV=${REV}
if [ -n "$BRANCH" ]; then
REV="${REV}-$BRANCH"
fi
echo "$REV $REV_NR $MODIFIED $CLEAN_REV"
echo "$VERSION $ISODATE $MODIFIED $HASH $ISTAG $ISSTABLETAG"

View File

@@ -1,6 +1,6 @@
OpenTTD's known bugs
Last updated: 2016-07-01
Release version: 1.6.1
Last updated: 2019-03-03
Release version: 1.9.0-RC1
------------------------------------------------------------------------
@@ -14,12 +14,12 @@ Table of contents
---- -----
All bugs listed below are marked as known. Please do not submit any bugs
that are the same as these. If you do, do not act surprised, because
we WILL flame you!!
we WILL flame you!
The current list of known bugs that we intend to fix can be found in our
bug tracking system at: http://bugs.openttd.org
Also check the closed bugs when searching for your bug in this system as
we might have fixed the bug in the mean time.
bug tracking system at https://github.com/OpenTTD/OpenTTD/issues
Also check the closed bugs when searching for your bug in this system as we
might have fixed the bug in the mean time.
2.0) Known bugs
@@ -29,427 +29,383 @@ reasons why we think that fixing them is infeasible. We might make some
minor improvements that reduce the scope of these bugs, but we will not
be able to completely fix them.
No suitable AI can be found
If you have no AIs and an AI is started the so-called 'dummy' AI will
be loaded. This AI does nothing but writing a message on the AI debug
window and showing a red warning. There are basically two solutions
for this problem: Either you set the number of AI players to 0 so that
no AI is started. You find that setting at the top of the window in the
"AI / Game Scripts Settings" window.
The other solution is acquiring (downloading) some AI. The easiest way
to do this is via the "Check Online Content" button in the main (intro)
menu or directly in the "AI / Game Scripts Settings" dialogue via the
"Check Online Content" button.
No suitable AI can be found:
If you have no AIs and an AI is started the so-called 'dummy' AI will
be loaded. This AI does nothing but writing a message on the AI debug
window and showing a red warning. There are basically two solutions
for this problem: Either you set the number of AI players to 0 so that
no AI is started. You find that setting at the top of the window in the
"AI / Game Scripts Settings" window.
The other solution is acquiring (downloading) some AI. The easiest way
to do this is via the "Check Online Content" button in the main (intro)
menu or directly in the "AI / Game Scripts Settings" dialogue via the
"Check Online Content" button.
After a while of playing, colours get corrupted
In Windows 7 the background slideshow corrupts the colour mapping of
OpenTTD's 8bpp screen modes. Workarounds for this are:
a) Switching to windowed mode, instead of fullscreen
b) Switching off background slideshow
c) Setting up the 32bpp-anim or 32bpp-optimized blitter
After a while of playing, colours get corrupted:
In Windows 7 the background slideshow corrupts the colour mapping
of OpenTTD's 8bpp screen modes. Workarounds for this are:
a) Switching to windowed mode, instead of fullscreen
b) Switching off background slideshow
c) Setting up the 32bpp-anim or 32bpp-optimized blitter
Long delay between switching songs/music
On Windows there is a delay of a (few) second(s) between switching of
songs for the "win32" driver. This delay is caused by the fact that
opening a MIDI file via MCI is extremely slow.
Custom vehicle type name is incorrectly aligned:
Some NewGRFs use sprites that are bigger than normal in the "buy
vehicle" window. Due to this they have to encode an offset for
the vehicle type name. Upon renaming the vehicle type this encoded
offset is stripped from the name because the "edit box" cannot show
this encoding. As a result the custom vehicle type names will get
the default alignment. The only way to (partially) fix this is by
adding spaces to the custom name.
DirectMusic, known as "dmusic" in OpenTTD, has a much shorter delay.
However, under some circumstances DirectMusic does not reset its
state properly causing wrongly pitched/bad sounding songs. This
problem is in DirectMusic as it is reproducable with Microsoft's
DirectMusic Producer. DirectMusic has been deprecated since 2004
and as such has no support for 64 bits OpenTTD.
Clipping problems [#119]:
In some cases sprites are not drawn as one would expect. Examples of
this are aircraft that might be hidden below the runway or trees that
in some cases are rendered over vehicles.
The primary cause of this problem is that OpenTTD does not have enough
data (like a 3D model) to properly determine what needs to be drawn in
front of what. OpenTTD has bounding boxes but in lots of cases they
are either too big or too small and then cause problems with what
needs to be drawn in front of what. Also some visual tricks are used.
For example trains at 8 pixels high, the catenary needs to be drawn
above that. When you want to draw bridges on top of that, which are
only one height level (= 8 pixels) higher, you are getting into some
big problems.
We can not change the height levels; it would require us to either
redraw all vehicle or all landscape graphics. Doing so would mean we
leave the Transport Tycoon graphics, which in effect means OpenTTD
will not be a Transport Tycoon clone anymore.
As a delay is favourable over bad sounding music the "win32" driver
is the default driver for OpenTTD. You can change this default by
setting the "musicdriver" in your openttd.cfg to "dmusic".
Mouse scrolling not possible at the edges of the screen [#383] [#3966]:
Scrolling the viewport with the mouse cursor at the edges of the screen
in the same direction of the edge will fail. If the cursor is near the
edge the scrolling will be very slow.
OpenTTD only receives cursor position updates when the cursor is inside
OpenTTD's window. It is not told how far you have moved the cursor
outside of OpenTTD's window.
Custom vehicle type name is incorrectly aligned
Some NewGRFs use sprites that are bigger than normal in the "buy
vehicle" window. Due to this they have to encode an offset for the
vehicle type name. Upon renaming the vehicle type this encoded offset
is stripped from the name because the "edit box" cannot show this
encoding. As a result the custom vehicle type names will get the
default alignment. The only way to (partly) fix this is by adding
spaces to the custom name.
Lost trains ignore (block) exit signals [#1473]:
If trains are lost they ignore block exit signals, blocking junctions
with presignals. This is caused because the path finders cannot tell
where the train needs to go. As such a random direction is chosen at
each junction. This causes the trains to occasionally to make choices
that are unwanted from a player's point of view.
This will not be fixed because lost trains are in almost all cases a
network problem, e.g. a train can never reach a specific place. This
makes the impact of fixing the bug enormously small against the amount
of work needed to write a system that prevents the lost trains from
taking the wrong direction.
Clipping problems [FS#119]
In some cases sprites are not drawn as one would expect. Examples of
this are aircraft that might be hidden below the runway or trees that
in some cases are rendered over vehicles.
The primary cause of this problem is that OpenTTD does not have enough
data (like a 3D model) to properly determine what needs to be drawn in
front of what. OpenTTD has bounding boxes but in lots of cases they
are either too big or too small and then cause problems with what
needs to be drawn in front of what. Also some visual tricks are used.
For example trains at 8 pixels high, the catenary needs to be drawn
above that. When you want to draw bridges on top of that, which are
only one height level (= 8 pixels) higher, you are getting into some
big problems.
We can not change the height levels; it would require us to either
redraw all vehicle or all landscape graphics. Doing so would mean we
leave the Transport Tycoon graphics, which in effect means OpenTTD
will not be a Transport Tycoon clone anymore.
Vehicle owner of last transfer leg gets paid for all [#2427]:
When you make a transfer system that switches vehicle owners. This
is only possible with 'industry stations', e.g. the oil rig station
the owner of the vehicle that does the final delivery gets paid for
the whole trip. It is not shared amongst the different vehicle
owners that have participated in transporting the cargo.
This sharing is not done because it would enormously increase the
memory and CPU usage in big games for something that is happening
in only one corner case. We think it is not worth the effort until
sharing of stations is an official feature.
Mouse scrolling not possible at the edges of the screen [FS#383] [FS#3966]
Scrolling the viewport with the mouse cursor at the edges of the screen
in the same direction of the edge will fail. If the cursor is near the
edge the scrolling will be very slow.
OpenTTD only receives cursor position updates when the cursor is inside
OpenTTD's window. It is not told how far you have moved the cursor
outside of OpenTTD's window.
Forbid 90 degree turns does not work for crossing PBS paths [#2737]:
When you run a train through itself on a X junction with PBS turned on
the train will not obey the 'forbid 90 degree turns' setting. This is
due to the fact that we can not be sure that the setting was turned
off when the track was reserved, which means that we assume it was
turned on and that the setting does not hold at the time. We made it
this way to allow one to change the setting in-game, but it breaks
slightly when you are running your train through itself. Running a
train through means that your network is broken and is thus a user
error which OpenTTD tries to graciously handle.
Fixing this bug means that we need to record whether this particular
setting was turned on or off at the time the reservation was made. This
means adding quite a bit of data to the savegame for solving an issue
that is basically an user error. We think it is not worth the effort.
Lost trains ignore (block) exit signals [FS#1473]
If trains are lost they ignore block exit signals, blocking junctions
with presignals. This is caused because the path finders cannot tell
where the train needs to go. As such a random direction is chosen at
each junction. This causes the trains to occasionally to make choices
that are unwanted from a player's point of view.
This will not be fixed because lost trains are in almost all cases a
network problem, e.g. a train can never reach a specific place. This
makes the impact of fixing the bug enormously small against the
amount of work needed to write a system that prevents the lost trains
from taking the wrong direction.
Duplicate (station) names after renaming [#3204]:
After renaming stations one can create duplicate station names. This
is done giving a station the same custom name as another station with
an automatically generated name.
The major part of this problem is that station names are translatable.
Meaning that a station is called e.g. '<TOWN> Central' in English and
'<TOWN> Centraal' in Dutch. This means that in network games the
renaming of a town could cause the rename to succeed on some clients
and fail at others. This creates an inconsistent game state that will
be seen as a 'desync'. Secondly the custom names are intended to fall
completely outside of the '<TOWN> <name>' naming of stations, so when
you rename a town all station names are updated accordingly.
As a result the decision has been made that all custom names are only
compared to the other custom names in the same class and not compared
to the automatically generated names.
Vehicle owner of last transfer leg gets paid for all [FS#2427]
When you make a transfer system that switches vehicle owners. This
is only possible with 'industry stations', e.g. the oil rig station
the owner of the vehicle that does the final delivery gets paid for
the whole trip. It is not shared amongst the different vehicle
owners that have participated in transporting the cargo.
This sharing is not done because it would enormously increase the
memory and CPU usage in big games for something that is happening
in only one corner case. We think it is not worth the effort until
sharing of stations is an official feature.
Extreme CPU usage/hangs when using SDL and PulseAudio [#3294],
OpenTTD hangs/freezes when closing, OpenTTD is slow, OpenTTD uses a lot of CPU:
OpenTTD can be extremely slow/use a lot of CPU when the sound is
played via SDL and then through PulseAudio's ALSA wrapper. Under the
same configuration OpenTTD, or rather SDL, might hang when exiting
the game. This problem is seen most in Ubuntu 9.04 and higher.
Forbid 90 degree turns does not work for crossing PBS paths [FS#2737]
When you run a train through itself on a X junction with PBS turned on
the train will not obey the 'forbid 90 degree turns' setting. This is
due to the fact that we can not be sure that the setting was turned
off when the track was reserved, which means that we assume it was
turned on and that the setting does not hold at the time. We made it
this way to allow one to change the setting in-game, but it breaks
slightly when you are running your train through itself. Running a
train through means that your network is broken and is thus a user
error which OpenTTD tries to graciously handle.
Fixing this bug means that we need to record whether this particular
setting was turned on or off at the time the reservation was made. This
means adding quite a bit of data to the savegame for solving an issue
that is basically an user error. We think it is not worth the effort.
This is because recent versions of the PulseAudio sound server
are configured to use timer-based audio scheduling rather than
interrupt-based audio scheduling. Configuring PulseAudio to force
use of interrupt-based scheduling may resolve sound problems for
some users. Under recent versions of Ubuntu Linux (9.04 and higher)
this can be accomplished by changing the following line in the
/etc/pulse/default.pa file:
load-module module-udev-detect
to
load-module module-udev-detect tsched=0
Note that PulseAudio must be restarted for changes to take effect. Older
versions of PulseAudio may use the module-hal-detect module instead.
Adding tsched=0 to the end of that line will have a similar effect.
Duplicate (station) names after renaming [FS#3204]
After renaming stations one can create duplicate station names. This
is done giving a station the same custom name as another station with
an automatically generated name.
The major part of this problem is that station names are translatable.
Meaning that a station is called e.g. '<TOWN> Central' in English and
'<TOWN> Centraal' in Dutch. This means that in network games the
renaming of a town could cause the rename to succeed on some clients
and fail at others. This creates an inconsistent game state that will
be seen as a 'desync'. Secondly the custom names are intended to fall
completely outside of the '<TOWN> <name>' naming of stations, so when
you rename a town all station names are updated accordingly.
As a result the decision has been made that all custom names are only
compared to the other custom names in the same class and not compared
to the automatically generated names.
Another possible solution is selecting the "pulse" backend of SDL
by either using "SDL_AUDIODRIVER=pulse openttd" at the command
prompt or installing the 'libsdl1.2debian-pulseaudio' package from
Ubuntu's Universe repository. For other distributions a similar
package needs to be installed.
Extreme CPU usage/hangs when using SDL and PulseAudio [FS#3294]
OpenTTD hangs/freezes when closing, OpenTTD is slow, OpenTTD uses a lot of CPU
OpenTTD can be extremely slow/use a lot of CPU when the sound is
played via SDL and then through PulseAudio's ALSA wrapper. Under the
same configuration OpenTTD, or rather SDL, might hang when exiting
the game. This problem is seen most in Ubuntu 9.04 and higher.
This is because recent versions of the PulseAudio sound server are
configured to use timer-based audio scheduling rather than
interrupt-based audio scheduling. Configuring PulseAudio to force
use of interrupt-based scheduling may resolve sound problems for
some users. Under recent versions of Ubuntu Linux (9.04 and higher)
this can be accomplished by changing the following line in the
/etc/pulse/default.pa file:
load-module module-udev-detect
to
load-module module-udev-detect tsched=0
Note that PulseAudio must be restarted for changes to take effect.
Older versions of PulseAudio may use the module-hal-detect module
instead. Adding tsched=0 to the end of that line will have a similar
effect.
Another possible solution is selecting the "pulse" backend of SDL
by either using "SDL_AUDIODRIVER=pulse openttd" at the command
prompt or installing the 'libsdl1.2debian-pulseaudio' package from
Ubuntu's Universe repository. For other distributions a similar
package needs to be installed.
OpenTTD not properly resizing with SDL on X [FS#3305]
Under some X window managers OpenTTD's window does not properly
resize. You will either end up with a black bar at the right/bottom
side of the window or you cannot see the right/bottom of the window,
e.g you cannot see the status bar. The problem is that OpenTTD does
not always receive a resize event from SDL making it impossible for
OpenTTD to know that the window was resized; sometimes moving the
window will solve the problem.
Window managers that are known to exhibit this behaviour are KDE's
and GNOME's. With the XFCE's and LXDE's window managers the resize
event is sent when the user releases the mouse.
OpenTTD not properly resizing with SDL on X [#3305]:
Under some X window managers OpenTTD's window does not properly
resize. You will either end up with a black bar at the right/bottom
side of the window or you cannot see the right/bottom of the window,
e.g. you cannot see the status bar. The problem is that OpenTTD does
not always receive a resize event from SDL making it impossible for
OpenTTD to know that the window was resized; sometimes moving the
window will solve the problem.
Window managers that are known to exhibit this behaviour are GNOME's
and KDE's. With the XFCE's and LXDE's window managers the resize
event is sent when the user releases the mouse.
Incorrect colours, crashes upon exit, debug warnings and smears upon
window resizing with SDL on Mac OS X [FS#3447]
Video handling with (lib)SDL under Mac OS X is known to fail on some
versions of Mac OS X with some hardware configurations. Some of the
problems happen only under some circumstances whereas others are
always present.
We suggest that the SDL video/sound backend is not used for OpenTTD
in combinations with Mac OS X.
window resizing with SDL on macOS [#3447]:
Video handling with (lib)SDL under macOS is known to fail on some
versions of macOS with some hardware configurations. Some of
the problems happen only under some circumstances whereas others
are always present.
We suggest that the SDL video/sound backend is not used for OpenTTD
in combinations with macOS.
Train crashes entering same junction from block and path signals [FS#3928]
When a train has reserved a path from a path signal to a two way
block signal and the reservation passes a path signal through the
back another train can enter the reserved path (only) via that same
two way block signal.
The reason for this has to do with optimisation; to fix this issue
the signal update has to pass all path signals until it finds either
a train or a backwards facing signal. This is a very expensive task.
The (signal) setups that allow these crashes can furthermore be
considered incorrectly signalled; one extra safe waiting point for
the train entering from path signal just after the backwards facing
signal (from the path signal train) resolves the issue.
Train crashes entering same junction from block and path signals [#3928]:
When a train has reserved a path from a path signal to a two way
block signal and the reservation passes a path signal through the
back another train can enter the reserved path (only) via that
same two way block signal.
The reason for this has to do with optimisation; to fix this issue
the signal update has to pass all path signals until it finds either
a train or a backwards facing signal. This is a very expensive task.
The (signal) setups that allow these crashes can furthermore be
considered incorrectly signalled; one extra safe waiting point for
the train entering from path signal just after the backwards facing
signal (from the path signal train) resolves the issue.
Crashes when playing music [FS#3941]
Mac OS X's QuickTime (default music driver) and Windows' MCI (win32
music driver) crash on some songs from OpenMSX. OpenTTD cannot do
anything about this. Please report these crashes to the authors of
OpenMSX so the crash causing songs can be removed or fixed.
Crashes when run in a VM using Parallels Desktop [#4003]:
When the Windows version of OpenTTD is executed in a VM under
Parallels Desktop a privileged instruction exception may be thrown.
As OpenTTD works natively on macOS as well as natively on Windows and
these native builds both don't exhibit this behaviour this crash is
most likely due to a bug in the virtual machine, something out of
the scope of OpenTTD. Most likely this is due to Parallels Desktop
lacking support for RDTSC calls. The problem can be avoided by using
other VM-software, Wine, or running natively on macOS.
Crashes when run in a VM using Parallels Desktop [FS#4003]
When the Windows version of OpenTTD is executed in a VM under
Parallels Desktop a privileged instruction exception may be thrown.
As OpenTTD works natively on OSX as well as natively on Windows and
these native builds both don't exhibit this behaviour this crash is
most likely due to a bug in the virtual machine, something out of
the scope of OpenTTD. Most likely this is due to Parallels Desktop
lacking support for RDTSC calls. The problem can be avoided by using
other VM-software, Wine, or running natively on OSX.
Entry- and exit signals are not dragged [#4378]:
Unlike all other signal types, the entry- and exit signals are not
dragged but instead normal signals are placed on subsequent track
sections. This is done on purpose as this is the usually more
convenient solution. There are little to no occasions where more
than one entry or exit signal in a row are useful. This is different
for all other signal types where several in a row can serve one
purpose or another.
OpenTTD hangs when started on 32 bits Windows [FS#4083]
Under some circumstances OpenTTD might hang for hours on the
initialisation of the music driver. The exact circumstances are
unknown except that it is the "dmusic" music driver that has the
problem and that the "win32" music driver does not.
As a result using the "win32" music driver will work around this
issue.
Station build date is incorrect [#4415]:
The tile query tool will show the date of the last (re)construction
at the station and not the date of the first construction. This is
due to compatability reasons with NewGRFs and the fact that it is
wrong to say that the station is built in a particular year when it
was completely destroyed/rebuilt later on.
The tile query tool can be fixed by changing the "Build date" text
to "Date at which the last (re)construction took place" but this is
deemed too specific and long for that window.
As the exact circumstances are unknown, and the obvious
configuration settings related to the music driver are at their
default we are not able to detect this failure, except when Windows'
music initialisation function returns after several hours and then
there is no point in switching the music driver anymore.
The reason we still use the "win32" music driver as default are
described in the "Long delay between switching music/song" section
of this document.
(Temporary) wrong colours when switching to full screen [#4511]:
On Windows it can happen that you temporarily see wrong colours
when switching to full screen OpenTTD, either by starting
OpenTTD in full screen mode, changing to full screen mode or by
ALT-TAB-ing into a full screen OpenTTD. This is caused by the
fact that OpenTTD, by default, uses 8bpp paletted output. The
wrong colours you are seeing is a temporary effect of the video
driver switching to 8bpp palette mode.
Pre- and exit signals are not dragged [FS#4378]
Unlike all other signal types, the entry- and exit signals are not
dragged but instead normal signals are placed on subsequent track
sections. This is done on purpose as this is the usually more con-
venient solution. There are little to no occasions where more than
one entry or exit signal in a row are useful. This is different
for all other signal types where several in a row can serve one
purpose or another.
This issue can be worked around in two ways:
a) Setting fullscreen_bpp to 32
b) Setting up the 32bpp-anim or 32bpp-optimized blitter
Station build date is incorrect [FS#4415]
The tile query tool will show the date of the last (re)construction
at the station and not the date of the first construction. This is
due to compatability reasons with NewGRFs and the fact that it is
wrong to say that the station is built in a particular year when it
was completely destroyed/rebuilt later on.
The tile query tool can be fixed by changing the "Build date" text
to "Date at which the last (re)construction took place" but this is
deemed too specific and long for that window.
Can't run OpenTTD with the -d option from a MSYS console [#4587]:
The MSYS console does not allow OpenTTD to open an extra console for
debugging output. Compiling OpenTTD with the --enable-console
configure option prevents this issue and allows the -d option to use
the MSYS console for its output.
Can't change volume inside OpenTTD [FS#4416]
Some backends do not provide a means to change the volume of sound
effects or music. The mixing of music and sound is left to external
libraries/the operating system we can't handle the volume control
in OpenTTD. As a result you can't change the volume inside OpenTTD
for backends such as SDL; just use the volume control provided by
your operating system.
Unreadable characters for non-latin locales [#4607]:
OpenTTD does not ship a non-latin font in its graphics files. As a
result OpenTTD needs to acquire the font from somewhere else. What
OpenTTD does is ask the operating system, or a system library, for
the best font for a given language if the currently loaded font
does not provide all characters of the chosen translation. This
means that OpenTTD has no influence over the quality of the chosen
font; it just does the best it can do.
Can't run OpenTTD with the -d option from a MSYS console [FS#4587]
The MSYS console does not allow OpenTTD to open an extra console for
debugging output. Compiling OpenTTD with the --enable-console
configure option prevents this issue and allows the -d option to use
the MSYS console for its output.
If the text is unreadable there are several steps that you can take
to improve this. The first step is finding a good font and configure
this in the configuration file. See section 9.0 of README.md for
more information. You can also increase the font size to make the
characters bigger and possible better readable.
Unreadable characters for non-latin locales [FS#4607]
OpenTTD does not ship a non-latin font in its graphics files. As a
result OpenTTD needs to acquire the font from somewhere else. What
OpenTTD does is ask the operating system, or a system library, for
the best font for a given language if the currently loaded font
does not provide all characters of the chosen translation. This
means that OpenTTD has no influence over the quality of the chosen
font; it just does the best it can do.
If the problem is with the clarity of the font you might want to
enable anti-aliasing by setting the small_aa/medium_aa/large_aa
settings to "true". However, anti-aliasing only works when a 32-bit
blitter has been selected, e.g. blitter = "32bpp-anim", as with the
8 bits blitter there are not enough colours to properly perform the
anti-aliasing.
If the text is unreadable there are several steps that you can take
to improve this. The first step is finding a good font and configure
this in the configuration file. See section 9.0 of readme.txt for
more information. You can also increase the font size to make the
characters bigger and possible better readable.
Train does not crash with itself [#4635]:
When a train drives in a circle the front engine passes through
wagons of the same train without crashing. This is intentional.
Signals are only aware of tracks, they do not consider the train
length and whether there would be enough room for a train in some
circle it might drive on. Also the path a train might take is not
necessarily known when passing a signal.
Checking all circumstances would take a lot of additional
computational power for signals, which is not considered worth
the effort, as it does not add anything to gameplay.
Nevertheless trains shall not crash in normal operation, so making
a train not crash with itself is the best solution for everyone.
If the problem is with the clarity of the font you might want to
enable anti-aliasing by setting the small_aa/medium_aa/large_aa
settings to "true". However, anti-aliasing only works when a 32 bits
blitter has been selected, e.g. blitter = "32bpp-anim", as with the
8 bits blitter there are not enough colours to properly perform the
anti-aliasing.
Aircraft coming through wall in rotated airports [#4705]:
With rotated airports, specifically hangars, you will see that the
aircraft will show a part through the back wall of the hangar.
This can be solved by only drawing a part of the plane when being
at the back of the hangar, however then with transparency turned on
the aircraft would be shown partially which would be even weirder.
As such the current behaviour is deemed the least bad.
The same applies to overly long ships and their depots.
(Temporary) wrong colours when switching to full screen [FS#4511]:
On Windows it can happen that you temporarily see wrong colours
when switching to full screen OpenTTD, either by starting
OpenTTD in full screen mode, changing to full screen mode or by
ALT-TAB-ing into a full screen OpenTTD. This is caused by the
fact that OpenTTD, by default, uses 8bpp paletted output. The
wrong colours you are seeing is a temporary effect of the video
driver switching to 8bpp palette mode.
Vehicles not keeping their "maximum" speed [#4815]:
Vehicles that have not enough power to reach and maintain their
advertised maximum speed might be constantly jumping between two
speeds. This is due to the fact that speed and its calculations
are done with integral numbers instead of floating point numbers.
As a result of this a vehicle will never reach its equilibrium
between the drag/friction and propulsion. So in effect it will be
in a vicious circle of speeding up and slowing down due to being
just at the other side of the equilibrium.
This issue can be worked around in two ways:
a) Setting fullscreen_bpp to 32
b) Setting up the 32bpp-anim or 32bpp-optimized blitter
Not speeding up when near the equilibrium will cause the vehicle to
never come in the neighbourhood of the equilibrium and not slowing
down when near the equilibrium will cause the vehicle to never slow
down towards the equilibrium once it has come down a hill.
Train does not crash with itself [FS#4635]:
When a train drives in a circle the front engine passes through
wagons of the same train without crashing. This is intentional.
Signals are only aware of tracks, they do not consider the train
length and whether there would be enough room for a train in some
circle it might drive on. Also the path a train might take is not
necessarily known when passing a signal.
Checking all circumstances would take a lot of additional computational
power for signals, which is not considered worth the effort, as
it does not add anything to gameplay.
Nevertheless trains shall not crash in normal operation, so making
a train not crash with itself is the best solution for everyone.
It is possible to calculate whether the equilibrium will be passed,
but then all acceleration calculations need to be done twice.
Aircraft coming through wall in rotated airports [FS#4705]:
With rotated airports, specifically hangars, you will see that the
aircraft will show a part through the back wall of the hangar.
This can be solved by only drawing a part of the plane when being
at the back of the hangar, however then with transparency turned on
the aircraft would be shown partially which would be even weirder.
As such the current behaviour is deemed the least bad.
The same applies to overly long ships and their depots.
Settings not saved when OpenTTD crashes [#4846]:
The settings are not saved when OpenTTD crashes for several reasons.
The most important is that the game state is broken and as such the
settings might contain invalid values, or the settings have not even
been loaded yet. This would cause invalid or totally wrong settings
to be written to the configuration file.
Vehicles not keeping their "maximum" speed [FS#4815]:
Vehicles that have not enough power to reach and maintain their
advertised maximum speed might be constantly jumping between two
speeds. This is due to the fact that speed and its calculations
are done with integral numbers instead of floating point numbers.
As a result of this a vehicle will never reach its equilibrium
between the drag/friction and propulsion. So in effect it will be
in a vicious circle of speeding up and slowing down due to being
just at the other side of the equilibrium.
A solution to that would be saving the settings whenever one changes,
however due to the way the configuration file is saved this requires
a flush of the file to the disk and OpenTTD needs to wait till that
is finished. On some file system implementations this causes the
flush of all 'write-dirty' caches, which can be a significant amount
of data to be written. This can further be aggravated by spinning
down disks to conserve power, in which case this disk needs to be
spun up first. This means that many seconds may pass before the
configuration file is actually written, and all that time OpenTTD
will not be able to show any progress. Changing the way the
configuration file is saved is not an option as that leaves us more
vulnerable to corrupt configuration files.
Not speeding up when near the equilibrium will cause the vehicle
to never come in the neighbourhood of the equilibrium and not
slowing down when near the equilibrium will cause the vehicle
to never slow down towards the equilibrium once it has come down
a hill.
Finally, crashes should not be happening. If they happen they should
be reported and fixed, so essentially fixing this is fixing the wrong
thing. If you really need the configuration changes to be saved,
and you need to run a version that crashes regularly, then you can
use the 'saveconfig' command in the console to save the settings.
It is possible to calculate whether the equilibrium will be
passed, but then all acceleration calculations need to be done
twice.
Not all NewGRFs, AIs, game scripts are found [#4887]:
Under certain situations, where the path for the content within a
tar file is the same as other content on the file system or in another
tar file, it is possible that content is not found. A more thorough
explanation and solutions are described in section 4.4 of README.md.
Settings not saved when OpenTTD crashes [FS#4846]:
The settings are not saved when OpenTTD crashes for several reasons.
The most important is that the game state is broken and as such the
settings might contain invalid values, or the settings have not even
been loaded yet. This would cause invalid or totally wrong settings
to be written to the configuration file.
Mouse cursor going missing with SDL [#4997]:
Under certain circumstances SDL does not notify OpenTTD of changes with
respect to the mouse pointer, specifically whether the mouse pointer
is within the bounds of OpenTTD or not. For example, if you "Alt-Tab"
to another application the mouse cursor will still be shown in OpenTTD,
and when you move the mouse outside of the OpenTTD window so the cursor
gets hidden, open/move another application on top of the OpenTTD window
and then Alt-tab back into OpenTTD the cursor will not be shown.
A solution to that would be saving the settings whenever one changes,
however due to the way the configuration file is saved this requires
a flush of the file to the disk and OpenTTD needs to wait till that
is finished. On some file system implementations this causes the
flush of all 'write-dirty' caches, which can be a significant amount
of data to be written. This can further be aggravated by spinning
down disks to conserve power, in which case this disk needs to be
spun up first. This means that many seconds may pass before the
configuration file is actually written, and all that time OpenTTD
will not be able to show any progress. Changing the way the
configuration file is saved is not an option as that leaves us more
vulnerable to corrupt configuration files.
We cannot fix this problem as SDL simply does not provide the required
information in these corner cases. This is a bug in SDL and as such
there is little that we can do about it.
Finally, crashes should not be happening. If they happen they should
be reported and fixed, so essentially fixing this is fixing the
wrong thing. If you really need the configuration changes to be
saved, and you need to run a version that crashes regularly, then
you can use the 'saveconfig' command in the console to save the
settings.
Trains might not stop at platforms that are currently being changed [#5553]:
If you add tiles to or remove tiles from a platform while a train is
approaching to stop at the same platform, that train can miss the place
where it's supposed to stop and pass the station without stopping.
This is caused by the fact that the train is considered to already
have stopped if it's beyond its assigned stopping location. We can't
let the train stop just anywhere in the station because then it would
never leave the station if you have the same station in the order
list multiple times in a row or if there is only one station
in theorder list (see #5684).
Not all NewGRFs, AIs, game scripts are found [FS#4887]:
Under certain situations, where the path for the content within a
tar file is the same as other content on the file system or in another
tar file, it is possible that content is not found. A more thorough
explanation and solutions are described in section 4.4 of readme.txt.
Inconsistent catchment areas [#5661]:
Due to performance decisions the catchment area for cargo accepted by a
station for delivery to houses or industries differs from the catchment
area for cargo that is delivered to stations from houses or industries.
Mouse cursor going missing with SDL [FS#4997]:
Under certain circumstances SDL does not notify OpenTTD of changes
with respect to the mouse pointer, specifically whether the mouse
pointer is within the bounds of OpenTTD or not. For example, if you
Alt-tab to another application the mouse cursor will still be shown
in OpenTTD, and when you move the mouse outside of the OpenTTD
window so the cursor gets hidden, open/move another application on
top of the OpenTTD window and then Alt-tab back into OpenTTD the
cursor will not be shown.
Conceptually they work the same, but the effect in game differs. They
work by finding the closest destination "around" the source which is
within a certain distance. This distance depends on the type of station,
e.g. road stops have a smaller catchment area than large airports.
In both cases the bounding box, the smallest rectangle that contains
all tiles of something, is searched for the target of the cargo,
and then spiraling outwards finding the closest tile of the target.
We cannot fix this problem as SDL simply does not provide the
required information in these corner cases. This is a bug in SDL
and as such there is little that we can do about it.
In the case of a station with two tiles spread far apart with a house
that is within the station's bounding box, it would be possible that
the spiraling search from the house does not reach one of the station
tiles before the search ends, i.e. all tiles within that distance
are searched. So the house does not deliver cargo to the station.
On the other hand, the station will deliver cargo because the house
falls within the bounding box, and thus search area.
Inconsistent catchment areas [FS#5661]:
Due to performance decisions the catchment area for cargo accepted
by a station for delivery to houses or industries differs from the
catchment area for cargo that is delivered to stations from houses
or industries.
It is possible to make these consistent, but then cargo from a house
to a station needs to search up to 32 tiles around itself, i.e. 64
by 64 tiles, to find all possible stations it could deliver to
instead of 10 by 10 tiles (40 times more tiles). Alternatively the
search from a station could be changed to use the actual tiles, but
that would require considering checking 10 by 10 tiles for each of
the tiles of a station, instead of just once.
Conceptually they work the same, but the effect in game differs.
They work by finding the closest destination "around" the source
which is within a certain distance. This distance depends on the
type of station, e.g. road stops have a smaller catchment area than
large airports. In both cases the bounding box, the smallest
rectangle that contains all tiles of something, is searched for the
target of the cargo, and then spiraling outwards finding the closest
tile of the target.
Some houses and industries are not affected by transparency [#5817]:
Some of the default houses and industries (f.e. the iron ore mine) are
not affected by the transparency options. This is because the graphics
do not (completely) separate the ground from the building.
This is a bug of the original graphics, and unfortunately cannot be
fixed with OpenGFX for the sake of maintaining compatibility with
the original graphics.
In the case of a station with two tiles spread far apart with a house
that is within the station's bounding box, it would be possible that
the spiraling search from the house does not reach one of the station
tiles before the search ends, i.e. all tiles within that distance
are searched. So the house does not deliver cargo to the station. On
the other hand, the station will deliver cargo because the house
falls within the bounding box, and thus search area.
It is possible to make these consistent, but then cargo from a house
to a station needs to search up to 32 tiles around itself, i.e. 64
by 64 tiles, to find all possible stations it could deliver to
instead of 10 by 10 tiles (40 times more tiles). Alternatively the
search from a station could be changed to use the actual tiles, but
that would require considering checking 10 by 10 tiles for each of
the tiles of a station, instead of just once.
Trains might not stop at platforms that are currently being changed [FS#5553]:
If you add tiles to or remove tiles from a platform while a train is
approaching to stop at the same platform, that train can miss the place
where it's supposed to stop and pass the station without stopping. This
is caused by the fact that the train is considered to already have stopped
if it's beyond its assigned stopping location. We can't let the train stop
just anywhere in the station because then it would never leave the station
if you have the same station in the order list multiple times in a row or
if there is only one station in the order list (see FS#5684).
Some houses and industries are not affected by transparency [FS#5817]:
Some of the default houses and industries (f.e. the iron ore mine) are
not affected by the transparency options. This is because the graphics do
not (completely) separate the ground from the building.
This is a bug of the original graphics, and unfortunately cannot be
fixed with OpenGFX for the sake of maintaining compatibility with the
original graphics.
Involuntary cargo exchange with cargodist via neutral station [#6114]:
When two players serve a neutral station at an industry, a cross-company
chain for cargo flow can and will be established which can only be
interrupted if one of the players stops competing for the ressources of
that industry. There is an easy fix for this: If you are loading at the
shared station make the order "no unload" and if you're unloading make
it "no load". Cargodist will then figure out that it should not create
such a route.

View File

@@ -0,0 +1,76 @@
; $Id$
;
; This represents the original music as on the Transport
; Tycoon Deluxe for DOS CD.
;
[metadata]
name = original_dos
shortname = TTDD
version = 1
!! description STR_BASEMUSIC_DOS_DESCRIPTION
[files]
theme = gm.cat
old_0 = gm.cat
old_1 = gm.cat
old_2 = gm.cat
old_3 = gm.cat
old_4 = gm.cat
old_5 = gm.cat
old_6 = gm.cat
old_7 = gm.cat
old_8 =
old_9 =
new_0 = gm.cat
new_1 = gm.cat
new_2 = gm.cat
new_3 = gm.cat
new_4 = gm.cat
new_5 = gm.cat
new_6 = gm.cat
new_7 =
new_8 =
new_9 =
ezy_0 = gm.cat
ezy_1 = gm.cat
ezy_2 = gm.cat
ezy_3 = gm.cat
ezy_4 = gm.cat
ezy_5 = gm.cat
ezy_6 =
ezy_7 =
ezy_8 =
ezy_9 =
[md5s]
gm.cat = 7a29d2d0c4f7d2e03091ffa9b2bdfffb
[catindex]
theme = 0
old_0 = 1
old_1 = 8
old_2 = 2
old_3 = 9
old_4 = 14
old_5 = 15
old_6 = 19
old_7 = 13
new_0 = 6
new_1 = 11
new_2 = 10
new_3 = 17
new_4 = 21
new_5 = 18
new_6 = 5
ezy_0 = 12
ezy_1 = 7
ezy_2 = 16
ezy_3 = 3
ezy_4 = 20
ezy_5 = 4
[names]
; Names get read from the CAT file
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -0,0 +1,71 @@
; $Id$
;
; This represents the original music as on the Transport
; Tycoon (with World Editor) for DOS CD.
;
[metadata]
name = original_tto
shortname = TTOD
version = 1
!! description STR_BASEMUSIC_TTO_DESCRIPTION
[files]
theme = gm-tto.cat
old_0 = gm-tto.cat
old_1 = gm-tto.cat
old_2 = gm-tto.cat
old_3 = gm-tto.cat
old_4 = gm-tto.cat
old_5 = gm-tto.cat
old_6 = gm-tto.cat
old_7 = gm-tto.cat
old_8 =
old_9 =
new_0 = gm-tto.cat
new_1 = gm-tto.cat
new_2 = gm-tto.cat
new_3 = gm-tto.cat
new_4 = gm-tto.cat
new_5 = gm-tto.cat
new_6 = gm-tto.cat
new_7 = gm-tto.cat
new_8 =
new_9 =
ezy_0 =
ezy_1 =
ezy_2 =
ezy_3 =
ezy_4 =
ezy_5 =
ezy_6 =
ezy_7 =
ezy_8 =
ezy_9 =
[catindex]
theme = 0
old_0 = 1
old_1 = 6
old_2 = 2
old_3 = 7
old_4 = 11
old_5 = 12
old_6 = 15
old_7 = 10
new_0 = 4
new_1 = 5
new_2 = 9
new_3 = 8
new_4 = 13
new_5 = 16
new_6 = 14
new_7 = 3
[md5s]
gm-tto.cat = 26e85ff84b0063aa5da05dd4698fc76e
[names]
; Names get read from the CAT file
[origin]
default = You can find it on your Transport Tycoon CD-ROM.

View File

@@ -90,5 +90,17 @@ GM_TT19.GM = Funk Central
GM_TT20.GM = Jammit
GM_TT21.GM = Movin' On
; MIDI timecodes where the playback should attemp to start and stop short.
; This is to allow fixing undesired silences in original MIDI files.
; However not all music drivers may support this.
[timingtrim]
; Theme has two beats silence at the beginning which prevents clean looping.
GM_TT00.GM = 768:53760
; Can't Get There From Here from the Windows version has a long silence at the end,
; followed by a solo repeat. This isn't in the original DOS version music and is likely
; unintentional from the people who converted the music from the DOS version.
; Actual song ends after measure 152.
GM_TT10.GM = 0:235008
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -0,0 +1,123 @@
Option Explicit
' This file is part of OpenTTD.
' OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
' OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
' 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/>.
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim inputfile, outputfile, langpath, extra_grf
inputfile = WScript.Arguments(0)
outputfile = WScript.Arguments(1)
langpath = WScript.Arguments(2)
If WScript.Arguments.Length > 3 Then
extra_grf = WScript.Arguments(3)
End If
Function GetExtraGrfHash
Dim WSO, exe, line
Set WSO = WScript.CreateObject("WScript.Shell")
Set exe = WSO.Exec("certutil -hashfile " & extra_grf & " MD5")
Do Until exe.StdOut.AtEndOfStream
line = exe.StdOut.ReadLine
If Len(line) = 32 Then GetExtraGrfHash = line
Loop
Set WSO = Nothing
End Function
' Simple insertion sort, copied from translations.awk
Sub ISort(a)
Dim i, j, n, hold
n = UBound(a)
For i = 1 To n
j = i
hold = a(j)
Do While a(j - 1) > hold
j = j - 1
a(j + 1) = a(j)
If j = 0 Then Exit Do
Loop
a(j) = hold
Next
End Sub
Sub Lookup(ini_key, str_id, outfile)
Dim folder, file, line, p, lang, i
' Ensure only complete string matches
str_id = str_id & " "
Set folder = FSO.GetFolder(langpath)
Dim output()
ReDim output(folder.Files.Count)
For Each file In folder.Files
If UCase(FSO.GetExtensionName(file.Name)) = "TXT" Then
Dim f
Set f = FSO.OpenTextFile(file.Path)
Do Until f.atEndOfStream
line = f.ReadLine()
If InStr(1, line, "##isocode ") = 1 Then
p = Split(line)
lang = p(1)
ElseIf InStr(1, line, str_id) = 1 Then
p = Split(line, ":", 2)
If lang = "en_GB" Then
output(i) = ini_key & " = " & p(1)
Else
output(i) = ini_key & "." & lang & " = " & p(1)
End If
i = i + 1
End If
Loop
End If
Next
ReDim Preserve output(i - 1)
ISort output
For Each line In output
outfile.Write line & vbCrLf
Next
End Sub
Dim line, p
Dim infile
Set infile = FSO.OpenTextFile(inputfile)
Dim outfile
Set outfile = FSO.CreateTextFile(outputfile, True)
Do Until infile.atEndOfStream
line = infile.ReadLine()
If InStr(1, line, "ORIG_EXTRA.GRF ") = 1 Then
p = Split(line, "=")
If Trim(p(1)) = "" Then
outfile.Write("ORIG_EXTRA.GRF = " & GetExtraGrfHash() & vbCrLf)
Else
outfile.Write(line & vbCrLf)
End If
ElseIf InStr(1, line, "!! ") = 1 Then
p = Split(line)
Lookup p(1), p(2), outfile
Else
outfile.Write(line & vbCrLf)
End If
Loop

View File

@@ -23,3 +23,16 @@
-1 sprites/airports.png 8bpp 82 88 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 162 88 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 242 88 64 31 -31 0 normal
-1 * 0 0C "Climate specific sprites by PaulC"
-1 * 0 07 83 01 \7! 01 03
-1 * 0 05 90 02 0D
-1 sprites/airports.png 8bpp 320 88 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 400 88 64 31 -31 0 normal
-1 * 0 07 83 01 \7! 02 03
-1 * 0 05 90 02 0D
-1 sprites/airports.png 8bpp 480 88 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 560 88 64 31 -31 0 normal
-1 * 0 07 83 01 \7! 03 03
-1 * 0 05 90 02 0D
-1 sprites/airports.png 8bpp 640 88 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 720 88 64 31 -31 0 normal

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@@ -0,0 +1,12 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// 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 "Climate specific airport sprite by PaulC"
-1 * 0 07 83 01 \7! 03 02
-1 * 0 0A 01 01 2F 08
-1 sprites/airports.png 8bpp 20 170 42 39 -19 -21 normal

View File

@@ -8,245 +8,7 @@
//
-1 * 0 0C "Font characters by PaulC, Bilbo and Jasper Vries"
// Replace original characters
-1 * 5 0A 01 02 41 00
-1 sprites/chars.png 8bpp 10 10 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 20 10 4 12 0 -1 normal
-1 * 5 0A 01 02 86 00
-1 sprites/chars.png 8bpp 50 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 70 10 9 12 0 -1 normal
-1 * 5 0A 01 01 8A 00
-1 sprites/chars.png 8bpp 120 10 6 12 0 -1 normal
-1 * 5 0A 01 01 A0 00
-1 sprites/chars.png 8bpp 230 10 10 12 0 -1 normal
-1 * 5 0A 01 04 A2 00
-1 sprites/chars.png 8bpp 260 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 290 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 320 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 350 10 8 12 0 -1 normal
-1 * 5 0A 01 06 A7 00
-1 sprites/chars.png 8bpp 410 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 440 10 12 12 0 -1 normal
-1 sprites/chars.png 8bpp 470 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 480 10 7 12 0 -1 normal
-1 sprites/chars.png 8bpp 500 10 7 12 0 -1 normal
-1 sprites/chars.png 8bpp 520 10 7 12 0 -1 normal
-1 * 5 0A 01 03 AE 00
-1 sprites/chars.png 8bpp 560 10 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 570 10 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 580 10 5 12 0 -1 normal
-1 * 5 0A 01 05 B3 00
-1 sprites/chars.png 8bpp 620 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 640 10 9 12 0 -1 normal
-1 sprites/chars.png 8bpp 660 10 9 12 0 -1 normal
-1 sprites/chars.png 8bpp 680 10 9 12 0 -1 normal
-1 sprites/chars.png 8bpp 700 10 9 12 0 -1 normal
-1 * 5 0A 01 03 BB 00
-1 sprites/chars.png 8bpp 770 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 10 70 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 30 70 8 12 0 -1 normal
-1 * 5 0A 01 01 BF 00
-1 sprites/chars.png 8bpp 70 70 9 12 0 -1 normal
-1 * 5 0A 01 05 C1 00
-1 sprites/chars.png 8bpp 450 70 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 110 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 120 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 130 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 140 70 6 12 0 -1 normal
-1 * 5 0A 01 01 C7 00
-1 sprites/chars.png 8bpp 160 70 6 12 0 -1 normal
-1 * 5 0A 01 03 CA 00
-1 sprites/chars.png 8bpp 200 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 210 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 220 70 6 12 0 -1 normal
-1 * 5 0A 01 04 CE 00
-1 sprites/chars.png 8bpp 230 70 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 240 70 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 250 70 5 12 0 -1 normal
-1 sprites/chars.png 8bpp 260 70 5 12 0 -1 normal
-1 * 5 0A 01 05 D3 00
-1 sprites/chars.png 8bpp 290 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 310 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 320 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 330 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 340 70 6 12 0 -1 normal
-1 * 5 0A 01 03 DB 00
-1 sprites/chars.png 8bpp 390 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 400 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 410 70 6 12 0 -1 normal
-1 * 5 0A 01 02 DF 00
-1 sprites/chars.png 8bpp 420 70 7 12 0 -1 normal
-1 sprites/chars.png 8bpp 430 70 6 12 0 -1 normal
-1 * 5 0A 01 01 22 01
-1 sprites/chars.png 8bpp 20 30 2 7 0 0 normal
-1 * 5 0A 01 01 7D 01
-1 sprites/chars.png 8bpp 220 30 4 7 0 0 normal
-1 * 5 0A 01 02 80 01
-1 sprites/chars.png 8bpp 230 30 9 7 0 0 normal
-1 sprites/chars.png 8bpp 250 30 3 7 0 0 normal
-1 * 5 0A 01 01 89 01
-1 sprites/chars.png 8bpp 470 30 3 7 0 0 normal
-1 * 5 0A 01 01 9F 01
-1 sprites/chars.png 8bpp 70 90 3 7 0 0 normal
-1 * 5 0A 01 01 A9 01
-1 sprites/chars.png 8bpp 190 90 3 7 0 0 normal
-1 * 5 0A 01 02 BF 01
-1 sprites/chars.png 8bpp 420 90 3 7 0 0 normal
-1 sprites/chars.png 8bpp 430 90 3 7 0 0 normal
-1 * 5 0A 01 01 02 02
-1 sprites/chars.png 8bpp 20 40 4 21 0 -2 normal
-1 * 5 0A 01 01 41 02
-1 sprites/chars.png 8bpp 30 40 14 21 0 -2 normal
-1 * 5 0A 01 06 46 02
-1 sprites/chars.png 8bpp 50 40 10 21 0 -2 normal
-1 sprites/chars.png 8bpp 70 40 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 90 40 3 21 0 -2 normal
-1 sprites/chars.png 8bpp 100 40 13 21 0 -2 normal
-1 sprites/chars.png 8bpp 120 40 7 21 0 -2 normal
-1 sprites/chars.png 8bpp 130 40 16 21 0 -2 normal
-1 * 5 0A 01 01 50 02
-1 sprites/chars.png 8bpp 150 40 16 21 0 -2 normal
-1 * 5 0A 01 04 52 02
-1 sprites/chars.png 8bpp 170 40 8 21 0 -2 normal
-1 sprites/chars.png 8bpp 180 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 190 40 6 21 0 -2 normal
-1 sprites/chars.png 8bpp 200 40 6 21 0 -2 normal
-1 * 5 0A 01 01 5C 02
-1 sprites/chars.png 8bpp 210 40 7 21 0 -2 normal
-1 * 5 0A 01 01 60 02
-1 sprites/chars.png 8bpp 230 40 16 21 0 -2 normal
-1 * 5 0A 01 07 62 02
-1 sprites/chars.png 8bpp 260 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 290 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 320 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 350 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 380 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 410 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 440 40 24 21 0 -2 normal
-1 * 5 0A 01 18 6A 02
-1 sprites/chars.png 8bpp 480 40 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 500 40 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 520 40 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 540 40 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 560 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 570 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 580 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 590 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 600 40 17 21 0 -2 normal
-1 sprites/chars.png 8bpp 620 40 18 21 0 -2 normal
-1 sprites/chars.png 8bpp 640 40 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 660 40 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 680 40 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 700 40 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 720 40 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 740 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 750 40 16 21 0 -2 normal
-1 sprites/chars.png 8bpp 770 40 17 21 0 -2 normal
-1 sprites/chars.png 8bpp 10 100 17 21 0 -2 normal
-1 sprites/chars.png 8bpp 30 100 17 21 0 -2 normal
-1 sprites/chars.png 8bpp 50 100 17 21 0 -2 normal
-1 sprites/chars.png 8bpp 70 100 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 90 100 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 450 100 14 21 0 -2 normal
-1 * 5 0A 01 01 85 02
-1 sprites/chars.png 8bpp 140 100 12 21 0 -2 normal
-1 * 5 0A 01 01 88 02
-1 sprites/chars.png 8bpp 170 100 19 21 0 -2 normal
-1 * 5 0A 01 02 92 02
-1 sprites/chars.png 8bpp 270 100 11 21 0 -2 normal
-1 sprites/chars.png 8bpp 290 100 15 21 0 -2 normal
-1 * 5 0A 01 01 97 02
-1 sprites/chars.png 8bpp 340 100 11 21 0 -2 normal
-1 * 5 0A 01 02 99 02
-1 sprites/chars.png 8bpp 360 100 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 370 100 11 21 0 -2 normal
-1 * 5 0A 01 01 A0 02
-1 sprites/chars.png 8bpp 430 100 14 21 0 -2 normal
// New characters, all fonts except monospaced
// U+007B: Left Curly Bracket
// U+007C: Vertical Line
// U+007D: Right Curly Bracket
// U+007E: Tilde
-1 * 14 12 03 00 04 7B 00 01 04 7B 00 02 04 7B 00
-1 sprites/chars.png 8bpp 10 130 5 12 0 -1 normal
-1 sprites/chars.png 8bpp 20 130 3 12 0 -1 normal
-1 sprites/chars.png 8bpp 30 130 5 12 0 -1 normal
-1 sprites/chars.png 8bpp 50 130 7 12 0 -1 normal
-1 sprites/chars.png 8bpp 10 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 20 150 1 7 0 0 normal
-1 sprites/chars.png 8bpp 30 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 50 150 4 7 0 0 normal
-1 sprites/chars.png 8bpp 10 160 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 20 160 3 21 0 -2 normal
-1 sprites/chars.png 8bpp 30 160 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 50 160 10 21 0 -2 normal
// U+007F: No-Break Space
-1 * 14 12 03 00 01 7F 00 01 01 7F 00 02 01 7F 00
-1 sprites/chars.png 8bpp 70 130 2 12 0 -1 normal
-1 sprites/chars.png 8bpp 70 150 1 7 0 0 normal
-1 sprites/chars.png 8bpp 70 160 5 21 0 -2 normal
// U+00AA: Feminine Ordinal Indicator
-1 * 14 12 03 00 01 AA 00 01 01 AA 00 02 01 AA 00
-1 sprites/chars.png 8bpp 80 130 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 80 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 80 160 7 21 0 -2 normal
// U+00AC: Not Sign
// U+00AD: Soft Hyphen
-1 * 14 12 03 00 02 AC 00 01 02 AC 00 02 02 AC 00
-1 sprites/chars.png 8bpp 90 130 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 110 130 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 90 150 4 7 0 0 normal
-1 sprites/chars.png 8bpp 110 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 90 160 12 21 0 -2 normal
-1 sprites/chars.png 8bpp 110 160 9 21 0 -2 normal
// U+00AF: Macron
-1 * 14 12 03 00 01 AF 00 01 01 AF 00 02 01 AF 00
-1 sprites/chars.png 8bpp 130 130 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 130 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 130 160 12 21 0 -2 normal
// U+00B4: Acute Accent
// U+00B5: Micro Sign
// U+00B6: Pilcrow Sign
// U+00B7: Middle Dot
// U+00B8: Cedilla
// U+00B9: Superscript One
-1 * 14 12 03 00 06 B4 00 01 06 B4 00 02 06 B4 00
-1 sprites/chars.png 8bpp 150 130 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 160 130 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 180 130 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 200 130 3 12 0 -1 normal
-1 sprites/chars.png 8bpp 210 130 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 220 130 5 12 0 -1 normal
-1 sprites/chars.png 8bpp 150 150 2 7 0 0 normal
-1 sprites/chars.png 8bpp 160 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 180 150 6 7 0 0 normal
-1 sprites/chars.png 8bpp 200 150 1 7 0 0 normal
-1 sprites/chars.png 8bpp 210 150 2 7 0 0 normal
-1 sprites/chars.png 8bpp 220 150 2 7 0 0 normal
-1 sprites/chars.png 8bpp 150 160 4 21 0 -2 normal
-1 sprites/chars.png 8bpp 160 160 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 180 160 13 21 0 -2 normal
-1 sprites/chars.png 8bpp 200 160 3 21 0 -2 normal
-1 sprites/chars.png 8bpp 210 160 5 21 0 -2 normal
-1 sprites/chars.png 8bpp 220 160 6 21 0 -2 normal
// U+00BC: Vulgar Fraction One Quarter
// U+00BD: Vulgar Fraction One Half
-1 * 14 12 03 00 02 BC 00 01 02 BC 00 02 02 BC 00
-1 sprites/chars.png 8bpp 230 130 10 12 0 -1 normal
-1 sprites/chars.png 8bpp 250 130 10 12 0 -1 normal
-1 sprites/chars.png 8bpp 230 150 9 7 0 0 normal
-1 sprites/chars.png 8bpp 250 150 9 7 0 0 normal
-1 sprites/chars.png 8bpp 230 160 16 21 0 -2 normal
-1 sprites/chars.png 8bpp 250 160 16 21 0 -2 normal
// Note: Characters in range U+0020..U+00FF may only be defined in chars_orig_extra.nfo.
// New characters, all fonts

View File

@@ -0,0 +1,249 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// 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 "Font characters by PaulC, Bilbo and Jasper Vries"
// Replace original characters
-1 * 5 0A 01 02 41 00
-1 sprites/chars.png 8bpp 10 10 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 20 10 4 12 0 -1 normal
-1 * 5 0A 01 02 86 00
-1 sprites/chars.png 8bpp 50 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 70 10 9 12 0 -1 normal
-1 * 5 0A 01 01 8A 00
-1 sprites/chars.png 8bpp 120 10 6 12 0 -1 normal
-1 * 5 0A 01 01 A0 00
-1 sprites/chars.png 8bpp 230 10 10 12 0 -1 normal
-1 * 5 0A 01 04 A2 00
-1 sprites/chars.png 8bpp 260 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 290 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 320 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 350 10 8 12 0 -1 normal
-1 * 5 0A 01 06 A7 00
-1 sprites/chars.png 8bpp 410 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 440 10 12 12 0 -1 normal
-1 sprites/chars.png 8bpp 470 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 480 10 7 12 0 -1 normal
-1 sprites/chars.png 8bpp 500 10 7 12 0 -1 normal
-1 sprites/chars.png 8bpp 520 10 7 12 0 -1 normal
-1 * 5 0A 01 03 AE 00
-1 sprites/chars.png 8bpp 560 10 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 570 10 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 580 10 5 12 0 -1 normal
-1 * 5 0A 01 05 B3 00
-1 sprites/chars.png 8bpp 620 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 640 10 9 12 0 -1 normal
-1 sprites/chars.png 8bpp 660 10 9 12 0 -1 normal
-1 sprites/chars.png 8bpp 680 10 9 12 0 -1 normal
-1 sprites/chars.png 8bpp 700 10 9 12 0 -1 normal
-1 * 5 0A 01 03 BB 00
-1 sprites/chars.png 8bpp 770 10 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 10 70 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 30 70 8 12 0 -1 normal
-1 * 5 0A 01 01 BF 00
-1 sprites/chars.png 8bpp 70 70 9 12 0 -1 normal
-1 * 5 0A 01 05 C1 00
-1 sprites/chars.png 8bpp 450 70 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 110 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 120 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 130 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 140 70 6 12 0 -1 normal
-1 * 5 0A 01 01 C7 00
-1 sprites/chars.png 8bpp 160 70 6 12 0 -1 normal
-1 * 5 0A 01 03 CA 00
-1 sprites/chars.png 8bpp 200 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 210 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 220 70 6 12 0 -1 normal
-1 * 5 0A 01 04 CE 00
-1 sprites/chars.png 8bpp 230 70 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 240 70 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 250 70 5 12 0 -1 normal
-1 sprites/chars.png 8bpp 260 70 5 12 0 -1 normal
-1 * 5 0A 01 05 D3 00
-1 sprites/chars.png 8bpp 290 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 310 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 320 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 330 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 340 70 6 12 0 -1 normal
-1 * 5 0A 01 03 DB 00
-1 sprites/chars.png 8bpp 390 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 400 70 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 410 70 6 12 0 -1 normal
-1 * 5 0A 01 02 DF 00
-1 sprites/chars.png 8bpp 420 70 7 12 0 -1 normal
-1 sprites/chars.png 8bpp 430 70 6 12 0 -1 normal
-1 * 5 0A 01 01 22 01
-1 sprites/chars.png 8bpp 20 30 2 7 0 0 normal
-1 * 5 0A 01 01 7D 01
-1 sprites/chars.png 8bpp 220 30 4 7 0 0 normal
-1 * 5 0A 01 02 80 01
-1 sprites/chars.png 8bpp 230 30 9 7 0 0 normal
-1 sprites/chars.png 8bpp 250 30 3 7 0 0 normal
-1 * 5 0A 01 01 89 01
-1 sprites/chars.png 8bpp 470 30 3 7 0 0 normal
-1 * 5 0A 01 01 9F 01
-1 sprites/chars.png 8bpp 70 90 3 7 0 0 normal
-1 * 5 0A 01 01 A9 01
-1 sprites/chars.png 8bpp 190 90 3 7 0 0 normal
-1 * 5 0A 01 02 BF 01
-1 sprites/chars.png 8bpp 420 90 3 7 0 0 normal
-1 sprites/chars.png 8bpp 430 90 3 7 0 0 normal
-1 * 5 0A 01 01 02 02
-1 sprites/chars.png 8bpp 20 40 4 21 0 -2 normal
-1 * 5 0A 01 01 41 02
-1 sprites/chars.png 8bpp 30 40 14 21 0 -2 normal
-1 * 5 0A 01 06 46 02
-1 sprites/chars.png 8bpp 50 40 10 21 0 -2 normal
-1 sprites/chars.png 8bpp 70 40 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 90 40 3 21 0 -2 normal
-1 sprites/chars.png 8bpp 100 40 13 21 0 -2 normal
-1 sprites/chars.png 8bpp 120 40 7 21 0 -2 normal
-1 sprites/chars.png 8bpp 130 40 16 21 0 -2 normal
-1 * 5 0A 01 01 50 02
-1 sprites/chars.png 8bpp 150 40 16 21 0 -2 normal
-1 * 5 0A 01 04 52 02
-1 sprites/chars.png 8bpp 170 40 8 21 0 -2 normal
-1 sprites/chars.png 8bpp 180 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 190 40 6 21 0 -2 normal
-1 sprites/chars.png 8bpp 200 40 6 21 0 -2 normal
-1 * 5 0A 01 01 5C 02
-1 sprites/chars.png 8bpp 210 40 7 21 0 -2 normal
-1 * 5 0A 01 01 60 02
-1 sprites/chars.png 8bpp 230 40 16 21 0 -2 normal
-1 * 5 0A 01 07 62 02
-1 sprites/chars.png 8bpp 260 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 290 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 320 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 350 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 380 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 410 40 20 21 0 -2 normal
-1 sprites/chars.png 8bpp 440 40 24 21 0 -2 normal
-1 * 5 0A 01 18 6A 02
-1 sprites/chars.png 8bpp 480 40 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 500 40 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 520 40 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 540 40 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 560 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 570 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 580 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 590 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 600 40 17 21 0 -2 normal
-1 sprites/chars.png 8bpp 620 40 18 21 0 -2 normal
-1 sprites/chars.png 8bpp 640 40 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 660 40 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 680 40 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 700 40 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 720 40 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 740 40 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 750 40 16 21 0 -2 normal
-1 sprites/chars.png 8bpp 770 40 17 21 0 -2 normal
-1 sprites/chars.png 8bpp 10 100 17 21 0 -2 normal
-1 sprites/chars.png 8bpp 30 100 17 21 0 -2 normal
-1 sprites/chars.png 8bpp 50 100 17 21 0 -2 normal
-1 sprites/chars.png 8bpp 70 100 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 90 100 14 21 0 -2 normal
-1 sprites/chars.png 8bpp 450 100 14 21 0 -2 normal
-1 * 5 0A 01 01 85 02
-1 sprites/chars.png 8bpp 140 100 12 21 0 -2 normal
-1 * 5 0A 01 01 88 02
-1 sprites/chars.png 8bpp 170 100 19 21 0 -2 normal
-1 * 5 0A 01 02 92 02
-1 sprites/chars.png 8bpp 270 100 11 21 0 -2 normal
-1 sprites/chars.png 8bpp 290 100 15 21 0 -2 normal
-1 * 5 0A 01 01 97 02
-1 sprites/chars.png 8bpp 340 100 11 21 0 -2 normal
-1 * 5 0A 01 02 99 02
-1 sprites/chars.png 8bpp 360 100 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 370 100 11 21 0 -2 normal
-1 * 5 0A 01 01 A0 02
-1 sprites/chars.png 8bpp 430 100 14 21 0 -2 normal
// New characters, all fonts except monospaced
// U+007B: Left Curly Bracket
// U+007C: Vertical Line
// U+007D: Right Curly Bracket
// U+007E: Tilde
-1 * 14 12 03 00 04 7B 00 01 04 7B 00 02 04 7B 00
-1 sprites/chars.png 8bpp 10 130 5 12 0 -1 normal
-1 sprites/chars.png 8bpp 20 130 3 12 0 -1 normal
-1 sprites/chars.png 8bpp 30 130 5 12 0 -1 normal
-1 sprites/chars.png 8bpp 50 130 7 12 0 -1 normal
-1 sprites/chars.png 8bpp 10 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 20 150 1 7 0 0 normal
-1 sprites/chars.png 8bpp 30 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 50 150 4 7 0 0 normal
-1 sprites/chars.png 8bpp 10 160 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 20 160 3 21 0 -2 normal
-1 sprites/chars.png 8bpp 30 160 9 21 0 -2 normal
-1 sprites/chars.png 8bpp 50 160 10 21 0 -2 normal
// U+007F: No-Break Space
-1 * 14 12 03 00 01 7F 00 01 01 7F 00 02 01 7F 00
-1 sprites/chars.png 8bpp 70 130 2 12 0 -1 normal
-1 sprites/chars.png 8bpp 70 150 1 7 0 0 normal
-1 sprites/chars.png 8bpp 70 160 5 21 0 -2 normal
// U+00AA: Feminine Ordinal Indicator
-1 * 14 12 03 00 01 AA 00 01 01 AA 00 02 01 AA 00
-1 sprites/chars.png 8bpp 80 130 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 80 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 80 160 7 21 0 -2 normal
// U+00AC: Not Sign
// U+00AD: Soft Hyphen
-1 * 14 12 03 00 02 AC 00 01 02 AC 00 02 02 AC 00
-1 sprites/chars.png 8bpp 90 130 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 110 130 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 90 150 4 7 0 0 normal
-1 sprites/chars.png 8bpp 110 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 90 160 12 21 0 -2 normal
-1 sprites/chars.png 8bpp 110 160 9 21 0 -2 normal
// U+00AF: Macron
-1 * 14 12 03 00 01 AF 00 01 01 AF 00 02 01 AF 00
-1 sprites/chars.png 8bpp 130 130 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 130 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 130 160 12 21 0 -2 normal
// U+00B4: Acute Accent
// U+00B5: Micro Sign
// U+00B6: Pilcrow Sign
// U+00B7: Middle Dot
// U+00B8: Cedilla
// U+00B9: Superscript One
-1 * 14 12 03 00 06 B4 00 01 06 B4 00 02 06 B4 00
-1 sprites/chars.png 8bpp 150 130 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 160 130 6 12 0 -1 normal
-1 sprites/chars.png 8bpp 180 130 8 12 0 -1 normal
-1 sprites/chars.png 8bpp 200 130 3 12 0 -1 normal
-1 sprites/chars.png 8bpp 210 130 4 12 0 -1 normal
-1 sprites/chars.png 8bpp 220 130 5 12 0 -1 normal
-1 sprites/chars.png 8bpp 150 150 2 7 0 0 normal
-1 sprites/chars.png 8bpp 160 150 3 7 0 0 normal
-1 sprites/chars.png 8bpp 180 150 6 7 0 0 normal
-1 sprites/chars.png 8bpp 200 150 1 7 0 0 normal
-1 sprites/chars.png 8bpp 210 150 2 7 0 0 normal
-1 sprites/chars.png 8bpp 220 150 2 7 0 0 normal
-1 sprites/chars.png 8bpp 150 160 4 21 0 -2 normal
-1 sprites/chars.png 8bpp 160 160 15 21 0 -2 normal
-1 sprites/chars.png 8bpp 180 160 13 21 0 -2 normal
-1 sprites/chars.png 8bpp 200 160 3 21 0 -2 normal
-1 sprites/chars.png 8bpp 210 160 5 21 0 -2 normal
-1 sprites/chars.png 8bpp 220 160 6 21 0 -2 normal
// U+00BC: Vulgar Fraction One Quarter
// U+00BD: Vulgar Fraction One Half
-1 * 14 12 03 00 02 BC 00 01 02 BC 00 02 02 BC 00
-1 sprites/chars.png 8bpp 230 130 10 12 0 -1 normal
-1 sprites/chars.png 8bpp 250 130 10 12 0 -1 normal
-1 sprites/chars.png 8bpp 230 150 9 7 0 0 normal
-1 sprites/chars.png 8bpp 250 150 9 7 0 0 normal
-1 sprites/chars.png 8bpp 230 160 16 21 0 -2 normal
-1 sprites/chars.png 8bpp 250 160 16 21 0 -2 normal

View File

@@ -14,6 +14,8 @@
// allowing it to be used.
//
//@@WARNING DISABLE 60
//
// Number of sprites, it is wrong, but GRFcodec automagically gets it right.
//

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 175 // OPENTTD_SPRITE_COUNT
-1 * 3 05 15 \b 179 // OPENTTD_SPRITE_COUNT
-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
@@ -183,3 +183,7 @@
-1 sprites/openttdgui.png 8bpp 440 440 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 466 440 20 20 0 0 normal
-1 sprites/openttdgui.png 8bpp 490 440 20 20 0 0 normal
-1 sprites/openttdgui_group_livery.png 8bpp 0 0 20 20 0 0 normal
-1 sprites/openttdgui_group_livery.png 8bpp 21 0 20 20 0 0 normal
-1 sprites/openttdgui_group_livery.png 8bpp 42 0 20 20 0 0 normal
-1 sprites/openttdgui_group_livery.png 8bpp 63 0 20 20 0 0 normal

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -75,8 +75,10 @@
//
// The real data of the GRF is acquired from several subfiles.
//
#include "chars_orig_extra.nfo"
#include "shore.nfo"
#include "fix_graphics.nfo"
#include "airports_orig_extra.nfo"
#include "canals_extra.nfo"
#include "rivers/rapids.nfo"
#include "rivers/temperate.nfo"

View File

@@ -1,3 +1,75 @@
openttd (1.9.0~RC1-0) unstable; urgency=low
* New upstream release 1.9.0-RC1
-- OpenTTD <info@openttd.org> Sun, 3 Mar 2019 23:00:00 +0000
openttd (1.9.0~beta3-0) unstable; urgency=low
* New upstream release 1.9.0-beta3
-- OpenTTD <info@openttd.org> Sun, 24 Feb 2019 23:00:00 +0000
openttd (1.9.0~beta2-0) unstable; urgency=low
* New upstream release 1.9.0-beta2
-- OpenTTD <info@openttd.org> Sat, 09 Feb 2019 23:00:00 +0000
openttd (1.9.0~beta1-0) unstable; urgency=low
* New upstream release 1.9.0-beta1
-- OpenTTD <info@openttd.org> Sat, 09 Feb 2019 16:00:00 +0000
openttd (1.8.0-0) unstable; urgency=low
* New upstream release 1.8.0
-- OpenTTD <info@openttd.org> Sun, 01 Apr 2018 14:00:00 +0200
openttd (1.8.0~RC1-0) unstable; urgency=low
* New upstream release 1.8.0-RC1
-- OpenTTD <info@openttd.org> Wed, 21 Mar 2018 21:00:00 +0100
openttd (1.7.2-0) unstable; urgency=low
* New upstream release 1.7.2
-- OpenTTD <info@openttd.org> Sun, 24 Dec 2017 14:00:00 +0100
openttd (1.7.2~RC1-0) unstable; urgency=low
* New upstream release 1.7.2-RC1
-- OpenTTD <info@openttd.org> Mon, 11 Dec 2017 21:30:00 +0100
openttd (1.7.1-0) unstable; urgency=low
* New upstream release 1.7.1
-- OpenTTD <info@openttd.org> Tue, 13 Jun 2017 21:00:00 +0200
openttd (1.7.1~RC1-0) unstable; urgency=low
* New upstream release 1.7.1-RC1
-- OpenTTD <info@openttd.org> Thu, 04 Mai 2017 21:00:00 +0200
openttd (1.7.0-0) unstable; urgency=low
* New upstream release 1.7.0
-- OpenTTD <info@openttd.org> Sat, 01 Apr 2017 19:00:00 +0200
openttd (1.7.0~RC1-0) unstable; urgency=low
* New upstream release 1.7.0-RC1
-- OpenTTD <info@openttd.org> Sat, 11 Mar 2017 22:30:00 +0100
openttd (1.6.1-0) unstable; urgency=low
* New upstream release 1.6.1
@@ -966,4 +1038,3 @@ openttd (0.3.5-1) unstable; urgency=low
* Initial Release.
-- Matthijs Kooijman <m.kooijman@student.utwente.nl> Fri, 24 Dec 2004 02:58:47 +0100

View File

@@ -5,7 +5,7 @@ Source: http://www.openttd.org
Files: *
Copyright: © 2004-2017 Ludvig Strigeous and others.
Copyright: © 2004-2019 Ludvig Strigeous and others.
License: GPL-2.0
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2.0 as

View File

@@ -1,6 +1,6 @@
@echo off
set OPENTTD_VERSION=1.7.0
set OPENTTD_VERSION=1.9.0
set OPENSFX_VERSION=0.8.0
set NOSOUND_VERSION=0.8.0
set OPENGFX_VERSION=1.2.0

View File

@@ -2,7 +2,7 @@
# spec file for package openttd
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2007-2017 The OpenTTD developers
# Copyright (c) 2007-2019 The OpenTTD developers
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,9 +17,9 @@
#
Name: openttd
Version: 1.7.beta1
Version: 1.9.RC1
Release: 0
%define srcver 1.7.0-beta1
%define srcver 1.9.0-RC1
Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe
License: GPL-2.0
Group: Amusements/Games/Strategy/Other

View File

@@ -1,9 +1,9 @@
# Version numbers to update
!define APPV_MAJOR 1
!define APPV_MINOR 7
!define APPV_MINOR 9
!define APPV_MAINT 0
!define APPV_BUILD 0
!define APPV_EXTRA "-beta1"
!define APPV_BUILD 3
!define APPV_EXTRA "-RC1"
!define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
@@ -24,6 +24,7 @@
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "top.bmp"
ManifestDPIAware true
BrandingText "OpenTTD Installer"
SetCompressor LZMA
@@ -89,7 +90,7 @@ Page custom SelectCDEnter SelectCDExit ": TTD folder"
!define MUI_FINISHPAGE_LINK "Visit the OpenTTD site for more information"
!define MUI_FINISHPAGE_LINK_LOCATION "${APPURLLINK}"
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\readme.txt"
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.md"
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT DisableBack
@@ -139,7 +140,7 @@ Section "!OpenTTD" Section1
; Copy the scripts
SetOutPath "$INSTDIR\scripts\"
File ${PATH_ROOT}bin\scripts\*.*
Push "$INSTDIR\scripts\readme.txt"
Push "$INSTDIR\scripts\README.md"
Call unix2dos
; Copy some documention files
@@ -158,8 +159,8 @@ Section "!OpenTTD" Section1
File ${PATH_ROOT}COPYING
Push "$INSTDIR\COPYING"
Call unix2dos
File ${PATH_ROOT}readme.txt
Push "$INSTDIR\readme.txt"
File ${PATH_ROOT}README.md
Push "$INSTDIR\README.md"
Call unix2dos
File ${PATH_ROOT}known-bugs.txt
Push "$INSTDIR\known-bugs.txt"
@@ -213,13 +214,13 @@ Section "!OpenTTD" Section1
CreateDirectory "$SMPROGRAMS\$SHORTCUTS"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\OpenTTD.lnk" "$INSTDIR\openttd.exe"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Uninstall.lnk" "$INSTDIR\uninstall.exe"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Readme.lnk" "$INSTDIR\Readme.txt"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Readme.lnk" "$INSTDIR\README.md"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Changelog.lnk" "$INSTDIR\Changelog.txt"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Known-bugs.lnk" "$INSTDIR\known-bugs.txt"
CreateDirectory "$SMPROGRAMS\$SHORTCUTS\Docs"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Docs\Multiplayer.lnk" "$INSTDIR\docs\multiplayer.txt"
CreateDirectory "$SMPROGRAMS\$SHORTCUTS\Scripts"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Scripts\Readme.lnk" "$INSTDIR\scripts\readme.txt"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Scripts\Readme.lnk" "$INSTDIR\scripts\README.md"
!insertmacro MUI_STARTMENU_WRITE_END
SectionEnd
@@ -304,6 +305,7 @@ Section /o "Copy data from Transport Tycoon Deluxe CD-ROM" Section2
; Let's copy the files with size approximation
SetOutPath "$INSTDIR\baseset"
CopyFiles "$CDDRIVE\gm\*.gm" "$INSTDIR\baseset\" 1028
CopyFiles "$CDDRIVE\gm.cat" "$INSTDIR\baseset\gm.cat" 415
CopyFiles "$CDDRIVE\sample.cat" "$INSTDIR\baseset\sample.cat" 1566
; Copy Windows files
CopyFiles "$CDDRIVE\trg1r.grf" "$INSTDIR\baseset\trg1r.grf" 2365
@@ -387,7 +389,7 @@ Section "Uninstall"
; Clean up OpenTTD dir
Delete "$INSTDIR\changelog.txt"
Delete "$INSTDIR\readme.txt"
Delete "$INSTDIR\README.md"
Delete "$INSTDIR\known-bugs.txt"
Delete "$INSTDIR\openttd.exe"
Delete "$INSTDIR\COPYING"
@@ -426,6 +428,8 @@ Section "Uninstall"
Delete "$INSTDIR\baseset\trgt.grf"
Delete "$INSTDIR\baseset\trgc.grf"
Delete "$INSTDIR\baseset\trgi.grf"
Delete "$INSTDIR\baseset\gm.cat"
Delete "$INSTDIR\baseset\gm-tto.cat"
Delete "$INSTDIR\baseset\*.gm"
Delete "$INSTDIR\data\sample.cat"
@@ -467,8 +471,10 @@ Section "Uninstall"
; Base sets for music
Delete "$INSTDIR\gm\orig_win.obm"
Delete "$INSTDIR\gm\orig_dos.obm"
Delete "$INSTDIR\gm\no_music.obm"
Delete "$INSTDIR\baseset\orig_win.obm"
Delete "$INSTDIR\baseset\orig_dos.obm"
Delete "$INSTDIR\baseset\no_music.obm"
; Remove remaining directories

Some files were not shown because too many files have changed in this diff Show More