OpenTTD - http://www.openttd.org/ - with additional patches
Go to file
Jonathan G Rennison 726b5cb4f6 Speed up filtering of which viewport labels should be displayed.
Add an inline, fast, inaccurate check to catch most off-screen labels,
before the relatively slow and expensive checks.
2016-01-01 21:53:58 +00:00
bin Merge branch 'tracerestrict-sx' into jgrpp 2015-08-20 00:39:26 +01:00
docs (svn r27210) -Doc[FS#6268]: OpenTTD tiles have more attributes nowadays (Samu). 2015-03-28 16:48:46 +00:00
media (svn r27265) -Fix: Truncated comment in openttd.grf 2015-05-03 10:10:04 +00:00
os (svn r27463) -Merge: Documentation updates from 1.5 branch 2015-12-01 19:49:49 +00:00
projects Merge branch 'save_ext' into enhanced_viewport_overlay-sx 2015-11-18 23:33:00 +00:00
src Speed up filtering of which viewport labels should be displayed. 2016-01-01 21:53:58 +00:00
.gitignore (svn r23656) -Fix: make all vcs ignore docs/gamedocs/ just like docs/aidocs/ 2011-12-22 16:32:13 +00:00
.hgignore (svn r23656) -Fix: make all vcs ignore docs/gamedocs/ just like docs/aidocs/ 2011-12-22 16:32:13 +00:00
.ottdrev-vc Version: Committing version data for tag: jgrpp-0.9.0 2015-12-19 18:00:39 +00:00
changelog.txt (svn r27463) -Merge: Documentation updates from 1.5 branch 2015-12-01 19:49:49 +00:00
config.lib config: Use --static as necessary when autodetecting libs: 2015-12-23 00:45:37 +00:00
configure (svn r26194) -Change: add SSE detection to the configure script with the possibility to disable it (based on patch by MJP) 2014-01-02 08:35:45 +00:00
COPYING (svn r25781) -Doc: Add licensing section to readme.txt. 2013-09-19 07:42:15 +00:00
Doxyfile (svn r25595) -Fix-ish: move the Doxygen .tag files into objs, so they are automatically ignored and removed upon mrproper/distclean. Furthermore remove the gamedocs folder too 2013-07-13 06:44:22 +00:00
findversion.sh Version detection: re-order SVN and Hg after git and .ottdrev-vc 2015-12-09 23:54:58 +00:00
jgrpp-changelog.md Version: Committing version data for tag: jgrpp-0.9.0 2015-12-19 18:00:39 +00:00
known-bugs.txt (svn r27169) -Update: Documentation 2015-02-24 19:25:31 +00:00
Makefile.bundle.in build: include win32/win64 in output bundle name for mingw target. 2015-11-17 18:56:57 +00:00
Makefile.grf.in (svn r27263) -Doc: nforenum is part of grfcodec for some years. 2015-05-02 09:59:55 +00:00
Makefile.in build: include win32/win64 in output bundle name for mingw target. 2015-11-17 18:56:57 +00:00
Makefile.lang.in (svn r26497) -Fix: make sure the strgen and settingsgen code gets notified of changes to safeguards.h 2014-04-24 18:09:10 +00:00
Makefile.msvc (svn r22581) -Add: 'make regression' support to Makefile.msvc 2011-06-13 10:35:19 +00:00
Makefile.setting.in (svn r26497) -Fix: make sure the strgen and settingsgen code gets notified of changes to safeguards.h 2014-04-24 18:09:10 +00:00
Makefile.src.in Makefile: include revision number in rev.cpp recompilation check. 2015-09-06 10:53:05 +01:00
README.md Version: Committing version data for tag: jgrpp-0.9.0 2015-12-19 18:00:39 +00:00
readme.txt (svn r27299) -Doc: game script and ai library paths were wrong in readme. 2015-06-17 14:24:41 +00:00
source.list Implement a 32bpp SSE2 palette animator. This is ~4x faster than 32bpp-anim's. 2015-12-17 20:45:33 +00:00
version_utils.sh Fix version detection using .ottdrev-vc 2015-12-06 12:24:39 +00:00

JGR's Patchpack version 0.9.0

This is a collection of patches applied to OpenTTD


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" in readme.txt for details.


See readme.txt for the original OpenTTD readme.

The thread for this patchpack can be found here.

See jgrpp-changelog.md for changelog.

This patchpack contains the following

  • Routing restrictions: thread
    This is developed in the tracerestrict branch.
    A version of this feature rebased onto Cirdan's new map features branch is in the tracerestrict-cirdan branch, see this thread
    As of v0.9.0, add a conditional to test which company owns the train.

  • Programmable signals: imported
    This includes additions to the patch from the Spring 2013 Patch Pack
    As of v0.8.0, fix the remove and copy program buttons.

  • Upgrade airports: imported

  • Vehicle group info: imported

  • Close adjacent level crossings: imported

  • Zoning: imported
    This is modified to remove unimplemented modes, implement station ownership checks and implement station facility checks for industries.
    As of v0.6.0, add a mode to show restricted signals.
    As of v0.7.1, fix adding/removing station tiles not redrawing affected surrounding tiles when in the station catchment or unserved building/industry modes.

  • Departure boards: imported

    • Fixed departure boards with orders with timetabled 0 travel times, e.g. those with depot service orders.
    • Fixed memory leak.
    • Made modifications to work with day length greater than 1.
    • As of v0.7.0, fixed a multiplayer desync caused by the timetable rounding depending on the client time display mode setting.
    • As of v0.8.1, fixed crash when a station is deleted with its departure boards window open.
  • Town cargo generation factor: imported

  • Vehicles visible in tunnels (transparency setting): imported

  • Signals in tunnels and on bridges: imported
    As of v0.7.1, fix various issues involving redrawing, updating of adjacent signals, and vehicles emitting smoke whilst stopped at a red signal.

  • Measurement tools: imported

  • 255 GRFs in single player mode: imported

  • Improved breakdowns: imported
    Fixed minor bugs involving breakdown smoke.
    As of v0.5.3 and v0.9.0, fix multiplayer desync issues.

  • Timetabling waiting time in depots: imported

  • Picking and placing single houses in scenario editor: imported
    As of v0.5.0, allow only one instance of house picker window.

  • Smallmap screenshots: imported
    This is modified to use an extra button in the smallmap window, instead of a console command, and use the current zoom level and display mode of the smallmap window.

  • Automated timetables and separation: imported

    • Auto timetabling: Bias timetable adjustment to favour negative adjustments; this is to avoid positive feedback between congestion delays and increased timetable length. Reduce jam detection threshold.
    • Auto separation: Fix handling of non-station orders (e.g. waypoints and depots). Add setting to scale vehicle lateness adjustments. No longer set vehicle lateness to 0 if separation fails, instead leave it as it was.
    • Timetable GUI: Allow clearing of timetable time fields which are at 0. Allow explicitly setting timetable time fields to 0 without clearing them.
    • Add a company setting to enable automatic timetabling for new vehicles (added in v0.4.0).
    • As of v0.7.0, the setting to scale vehicle lateness adjustments is a company setting. As of v0.7.1 the default value has been changed to 40%.
  • Vehicle repair cost: imported

  • Enhanced viewport: imported
    Fixed crash when looking at aqueducts in viewport map mode.
    As of v0.7.1 to v0.8.1, fix flicker and render errors of bridge/tunnels in viewport map mode, and rendering/clearing errors of vehicle route lines.
    As of v0.8.0, fix companies with a green colour scheme appearing as flashing yellow in viewport map owner mode.

  • Infrastructure sharing: imported
    Fixed various issues with additions to the settings GUI.

  • Rating in town label: imported
    Fixed small labels using wrong colour.

  • Day length: imported

    • Minor tweak to timetable lateness calculation.
    • Fixed dates/times in timetable window.
    • As of v0.3.0, time in minutes is no longer scaled by the day length factor.
    • As of v0.5.0, cargodest link graph timeout and compression intervals are scaled by the day length factor.
    • As of v0.5.0, fix status bar date when time in minutes and show date with time are both on.
  • Order occupancy
    Add column to orders GUI to show occupancy running average.
    As of v0.7.0, the smoothness setting is company setting.

  • Servicing
    Send vehicles which need auto-renewing due to age for servicing, even if breakdowns are off and no servicing if no breakdowns is on.

  • Everest tree-line: imported (added in v0.2.0)

    • Remove "no trees on this level" setting.
    • Add on/off setting (default off).
    • Add to settings GUI, add strings, help texts, etc.
    • Change algorithm to make tree line and border of mixed forest zone less abrupt.
  • Enable building rivers in game (added in v0.3.0)
    This is controlled by a setting (off by default).

  • More conditional orders: imported (added in v0.3.0)
    As of v0.5.0, fix selecting/editing conditional orders in non-train orders window.

  • Include the train length and group name in the vehicle details window (added in v0.3.0)
    This are each controlled by a setting (on by default).

  • Pause the game when cargo dest link graph jobs lag (added in v0.4.0)
    Previously if a cargo dest link graph update job took longer than permitted, the game would block until it completed, preventing all user interaction.
    This patch instead pauses the game until the job is completed. (This does not apply to network clients, which cannot pause/unpause the game).

  • Daily/monthly/yearly scripts patch: imported (added in v0.5.0)

  • Flat minimap owner screenshot patch: imported (added in v0.5.0)

  • Extra large maps: imported (added in v0.5.0)
    Maximum map size is now 256M tiles, ranging from 16k x 16k to 256 x 1M. (The NewGRF debug inspection window is disabled for all map coordinates longer than 27 bits).

  • Build and refit: imported (added in v0.5.0)
    This has been modified to change the UI, and make it multiplayer safe.

  • Pause on savegame load if ctrl key is pressed. (added in v0.6.0)

  • Reverse at waypoint orders (added in v0.7.0)

  • Show a company-coloured mark next to vehicles in vehicle list windows, if their owner does not match list owner (imported: by McZapkie) (added in v0.8.0)
    This has been modified to change the mark and be controlled by a setting (on by default).

  • Performance improvements

    • Improve dedicated server performance. Up to approximately 2.5x faster. (added in v0.8.1)
    • Improve cargodest link graph calculation performance. Up to approximately 33% faster. (added in v0.8.1)
    • Add a 32bpp SSE2 palette animator. This is ~4x faster than the non-accelerated palette animator. (added in v0.9.0)
  • Save/load and savegame format changes

    • Various changes to improve handling of savegames which use features not in trunk.
    • Savegames from this patchpack are not loadable in trunk.
    • Savegames from trunk up to the last savegame version which has been merged into this branch (jgrpp) should be loadable in this patchpack.
    • Savegames from other branches which use the save/load code in the save_ext branch (usually suffixed: -sx) which are also merged into this branch (jgrpp), or where the added feature is marked as discardable/ignorable, should be loadable in this patchpack.
    • Savegames from other patched versions are not loadable in this patchpack except for savegames from the tracerestrict branch (routing restrictions patch), and as of v0.3.0 savegames from the Spring 2013 Patch Pack v2.0, v2.1, v2.2 (subject to caveats, see below).
  • Changes to the crash log (added in v0.5.0)
    Enable stack traces on MinGW, try to demangle C++ symbol names, try to use libbfd for better symbol lookup, handle SIGSEGV while backtracing.

  • Multiplayer desync fixes/changes

    • Fix YAPF pathfinder desync issue involving rail track type changes which where only passable by a subset of vehicles (trunk bug). (added in v0.6.0, fixed in trunk as of v0.7.1)
    • Logging: Various changes and improvements to desync-related logging and debugging, see changelog for details.
  • Miscellaneous

    • Label threads with a descriptive name on supported Unixy platforms. (added in v0.8.1)
  • Translations

    • German (by Auge): including vehicle group info, vehicle details window, the zoning toolbar, and settings for improved breakdowns and adjacent level crossings.

Caveats for loading savegames from the Spring 2013 Patch Pack:

  • This is not guaranteed to be bug free
  • Savegames with huge airports are rejected
  • Map sizes greater than 16k x 16k are rejected
  • PAX signals/stations and traffic lights are cleared, leaving ordinary signals/stations/roads
  • Rail ageing/grass on tracks, trip histories, leave order/wait for cargo, auto advertising campaigns, base cost multipliers and other features not in this patch pack are dropped/ignored.
  • SpringPP v2.0.102/103 only:
    • Savegames which have aircraft approaching, landing, taking off or landed at an oil rig are rejected
    • The inflation cost multiplier is adjusted on load

A note on branches

Many features have two branches, the feature branches are just the raw features, without any modified savegame code.
There are not generally savegame compatible with anything else, except for loading of trunk savegame versions at or before the point where the branch diverged from trunk.
All other load attempts may result in undefined behaviour.
The feature-sx branches use the savegame framework in the save_ext branch.