summaryrefslogtreecommitdiff
path: root/src/pathfinder
AgeCommit message (Collapse)Author
2021-11-06Fix #9669, cbe00ec: Only try valid reverse directions (#9672)Loïc Guilloux
2021-10-11Fix: Try all possible reverse directions when a ship reaches a dead endglx22
2021-09-26Revert 7ca1793: Using Trackdir keyed node is not required, Exitdir keyed ↵Loïc Guilloux
node still have the correct trackdir (#9576)
2021-08-31Fix: pathfinders always tried to avoid docking tiles (even if nothing was on ↵Patric Stout
them) (#9522) When coming across any docking tile (for example, all tiles around an oilrig are docking tiles), it always at least added a penalty of 3 times a normal tile, even when there are no ships on them. In result, the pathfinder got suggested to always go around docking tiles. This was most likely not the intention of the change made in 31db4f8d5e.
2021-07-09Codechange: Remove FOR_EACH_SET_TRACKglx22
2021-06-17Cleanup: simplify some boolean expressionsRubidium
2021-06-13Codechange: convert printf DEBUG statements to fmt Debug statementsrubidium42
2021-06-03Codechange: use "[[maybe_unused]]" instead of a wide variety of other ways ↵Patric Stout
we had While at it, replace OTTD_ASSERT with WITH_ASSERT, as this is always set if assert() is valid. No matter if NDEBUG is set or not.
2021-05-29Fix: Do not send vehicles towards incomplete PF nodesVít Šefl
YAPF could end up in a situation where it sets the best intermediate node to a node whose construction is never finalized (i.e. it is never added to the open list). The content of the node would be overwritten in the next round, potentially sending the vehicle to an unwanted location.
2021-05-27Cleanup: remove unused copy-constructor without copy-assignmentrubidium42
2021-05-23Fix: Encountering two-way red signals could prune unrelated branches.Vít Šefl
The intermediate node branch is now only pruned if the node is on the path leading to the two-way red signal.
2021-05-15Change: Use gender-neutral pronounsrubidium42
2021-04-30Remove: performance measurements in YAPFPatric Stout
YAPF was constantly measuring its performance, but only at certain debug-levels this information was shown. Now after years, I sincerely wonder if anyone still knows about this feature and who still use it. Especially with the new framerate window, this detailed performance is not as meaningful anymore as it once was.
2021-04-30Cleanup: remove weird left-over comment in yapf.hppPatric Stout
2021-04-04Cleanup: Delete remaining Blob codeCharles Pigott
2021-04-04Codechange: Replace CBlobT usage with std::vectorCharles Pigott
2021-04-04Codechange: Replace CStrA with std::stringCharles Pigott
2021-04-01Codechange: Suppress warnings when asserts are disabled (#8916)Charles Pigott
2021-02-25Fix #8123: trams on half-tiles couldn't find depots (#8738)Patric Stout
Basically, follow_track.hpp contains a fix for half-tiles, but this wasn't duplicated for when trying to find a depot and in a few other places. This makes sure all places act the same.
2021-02-22Change: Make pathfinder account for maximum order speed, if setCharles Pigott
2021-02-21Fix: [YAPF] Road pathfinder did not account for length of tunnel/bridge in ↵Charles Pigott
path cost Copy calculations from the rail pathfinder
2021-02-21Fix #8594: [NRT] Road pathfinder did not account for roadtype speed limitsCharles Pigott
2021-01-08Codechange: Remove min/max functions in favour of STL variants (#8502)Charles Pigott
2020-06-05Add: introduce CMake for project managementPatric Stout
CMake works on all our supported platforms, like MSVC, Mingw, GCC, Clang, and many more. It allows for a single way of doing things, so no longer we need shell scripts and vbs scripts to work on all our supported platforms. Additionally, CMake allows to generate project files for like MSVC, KDevelop, etc. This heavily reduces the lines of code we need to support multiple platforms from a project perspective. Addtiionally, this heavily improves our detection of libraries, etc.
2020-02-13Codechange: Format unsigned integers with %u instead of %i or %d.Quipyowert2
2020-02-07Fix #7592: Do not cache road vehicle path within 8 tiles of destination with ↵Jonathan G Rennison
multiple entrances Ported from jgrpp commit 79d5be7e265df3be8b73d484f0c7261b3c23229d
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-09-30Fix: GCC9's warnings about deprecated implicit assignment operatorsCharles Pigott
2019-09-29Fix: Some typos found using codespellJMcKiern
2019-06-30Change: Avoid caching end of ship path, to allow penalties to apply.peter1138
2019-06-30Add: Penalty for occupied docking points.peter1138
2019-06-30Feature: Multi-tile docks and docking points.peter1138
2019-05-01Feature: Add NotRoadTypes (NRT)peter1138
2019-05-01Codechange: Use RAILTYPES_NONE instead of INVALID_RAILTYPES when not using rail.peter1138
INVALID_RAILTYPES, if it was accidentally tested, would match any railtype.
2019-04-29Codechange: Remove Track{dir,}{Bits,}Byte typesCharles Pigott
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2019-03-16Remove: OPFCharles Pigott
2019-03-10Feature: Railtype flags to allow/disallow 90 degree curves. (#7352)Michael Lutz
2019-03-08Add: Road vehicle path cache. (#7261)PeterN
2019-03-08Change: Automatically use Trackdir node key as needed if ship curve ↵Peter Nelson
penalties differ.
2019-03-08Change: Add configurable curve penalty for ships.Peter Nelson
2019-03-03Change: Don't apply forbid 90 deg turn settings to ships.Peter Nelson
2019-01-31Cleanup: [NPF] Remove unused parameter.J0an Josep
2019-01-31Cleanup: [NPF] Assert that a track has been chosen.J0an Josep
2019-01-31Fix #7060: [NPF] Do not check whether ignored first tiles are end nodes.J0an Josep
2019-01-31Codechange: [NPF] Add some consts.J0an Josep
2019-01-31Cleanup: [NPF] Remove unused parameters.J0an Josep
2019-01-26Codechange: Use track functions.J0an Josep
2019-01-19Change: Add path cache for ships.Peter Nelson
2019-01-06Doc: Fix spelling in comments.J0an Josep