Commit Graph

321 Commits

Author SHA1 Message Date
Loïc Guilloux
07cc7da7fd Revert 7ca1793: Using Trackdir keyed node is not required, Exitdir keyed node still have the correct trackdir (#9576)
(cherry picked from commit 11dece205c)
2021-10-04 21:07:37 +01:00
Jonathan G Rennison
7018babeac Reverse behind signal pathfinding now takes into account train length
This is to avoid pathfinding into a reversing track section which
is too short
2021-09-13 02:42:24 +01:00
Jonathan G Rennison
5d351a14d2 Add new signal type: no-entry signal
This is only passable in one direction, but does not have a signal
or show an aspect in the opposite direction

Add a setting for whether this is shown in the signal UI.
Off by default.
2021-09-04 11:39:54 +01:00
Patric Stout
91f2710783 Fix: pathfinders always tried to avoid docking tiles (even if nothing was on 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.

(cherry picked from commit f87fe395a7)
2021-09-01 23:53:32 +01:00
Jonathan G Rennison
bbe079c906 Fix reverse behind signal pathfinding when there is no dead-end
This could cause issues if all the paths behind the reverse signal
converge with paths not via the reverse signal with a lower cost
2021-08-30 19:20:44 +01:00
Jonathan G Rennison
ae6b9f6e9c Fix ESRB_REVERSE not being include in YAPF ESRB dumper 2021-08-30 18:40:24 +01:00
Jonathan G Rennison
a7d8c6fe0c Add PF setting for whether to pathfind up to back of one-way PBS 2021-06-09 20:43:57 +01:00
Vít Šefl
a73ddf4a35 Fix: Do not send vehicles towards incomplete PF nodes
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.

(cherry picked from commit 0125ba82e8)
2021-06-07 18:37:06 +01:00
Vít Šefl
073b15f453 Fix: Encountering two-way red signals could prune unrelated branches.
The intermediate node branch is now only pruned if the node is on the
path leading to the two-way red signal.

(cherry picked from commit 33d99d27f4)
2021-06-07 18:31:24 +01:00
Jonathan G Rennison
c0bf8476b1 Tracerestrict: Fix PBS entry signal conditional with signalled tunnel/bridges 2021-05-26 01:26:28 +01:00
Jonathan G Rennison
0579c8755c Add tracerestrict action: No PBS signal back PF penalty 2021-05-25 18:50:36 +01:00
Patric Stout
0deb1d852d Remove: performance measurements in YAPF
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.

(cherry picked from commit 665a3928e2)
2021-04-30 18:04:57 +01:00
Patric Stout
e0041df005 Cleanup: remove weird left-over comment in yapf.hpp
(cherry picked from commit e162aff7a3)
2021-04-30 18:01:10 +01:00
Jonathan G Rennison
edfa04286b Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/release.yml
#	bin/CMakeLists.txt
#	src/dock_gui.cpp
#	src/lang/brazilian_portuguese.txt
#	src/lang/catalan.txt
#	src/lang/czech.txt
#	src/lang/dutch.txt
#	src/lang/english.txt
#	src/lang/english_US.txt
#	src/lang/estonian.txt
#	src/lang/finnish.txt
#	src/lang/french.txt
#	src/lang/german.txt
#	src/lang/hungarian.txt
#	src/lang/indonesian.txt
#	src/lang/italian.txt
#	src/lang/japanese.txt
#	src/lang/korean.txt
#	src/lang/lithuanian.txt
#	src/lang/luxembourgish.txt
#	src/lang/norwegian_bokmal.txt
#	src/lang/polish.txt
#	src/lang/portuguese.txt
#	src/lang/romanian.txt
#	src/lang/russian.txt
#	src/lang/serbian.txt
#	src/lang/simplified_chinese.txt
#	src/lang/slovak.txt
#	src/lang/spanish.txt
#	src/lang/spanish_MX.txt
#	src/lang/swedish.txt
#	src/lang/tamil.txt
#	src/lang/ukrainian.txt
#	src/lang/vietnamese.txt
#	src/newgrf.cpp
#	src/newgrf_gui.cpp
#	src/object_gui.cpp
#	src/pathfinder/yapf/yapf_costrail.hpp
#	src/pathfinder/yapf/yapf_node_rail.hpp
#	src/rail_cmd.cpp
#	src/roadveh_cmd.cpp
#	src/town_cmd.cpp
#	src/vehicle.cpp
#	src/water_cmd.cpp
2021-04-11 02:39:33 +01:00
Charles Pigott
e8a94dc8bb Cleanup: Delete remaining Blob code 2021-04-04 08:01:54 +01:00
Charles Pigott
e8022a589d Codechange: Replace CBlobT usage with std::vector 2021-04-04 08:01:54 +01:00
Charles Pigott
f481c9fc2c Codechange: Replace CStrA with std::string 2021-04-04 08:01:54 +01:00
Jonathan G Rennison
5b5e068e52 Don't check safe waiting point in FollowTrainReservation if result unused 2021-03-31 22:39:44 +01:00
Jonathan G Rennison
63fda2f16e YAPF: Add penalty when reversing at waypoint which is already reserved 2021-03-27 18:32:14 +00:00
Jonathan G Rennison
f4e29071be Merge tag '1.11.0-beta2' into jgrpp
# Conflicts:
#	.github/workflows/ci-build.yml
#	.github/workflows/release.yml
#	CMakeLists.txt
#	src/blitter/32bpp_optimized.cpp
#	src/debug.cpp
#	src/gfx.cpp
#	src/gfx_func.h
#	src/lang/czech.txt
#	src/lang/english.txt
#	src/lang/italian.txt
#	src/lang/swedish.txt
#	src/lang/ukrainian.txt
#	src/network/network_server.cpp
#	src/os/windows/crashlog_win.cpp
#	src/os/windows/win32.cpp
#	src/pathfinder/follow_track.hpp
#	src/screenshot.cpp
#	src/settings_type.h
#	src/spritecache.cpp
#	src/vehicle_gui.cpp
#	src/video/sdl2_v.cpp
#	src/video/video_driver.cpp
#	src/video/video_driver.hpp
#	src/video/win32_v.cpp
2021-03-02 11:59:03 +00:00
Patric Stout
d4583fa64c Fix #8123: trams on half-tiles couldn't find depots (#8738)
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-25 22:46:46 +01:00
Jonathan G Rennison
19b7ecf95a Merge branch 'master' into jgrpp 2021-02-22 17:45:58 +00:00
Charles Pigott
80fb1c74f0 Change: Make pathfinder account for maximum order speed, if set 2021-02-22 00:25:47 +00:00
Jonathan G Rennison
1c1d272b57 Merge branch 'master' into jgrpp 2021-02-21 19:51:00 +00:00
Charles Pigott
1d6a0c7b52 Fix: [YAPF] Road pathfinder did not account for length of tunnel/bridge in path cost
Copy calculations from the rail pathfinder
2021-02-21 10:53:25 +00:00
Jonathan G Rennison
35d720b0ad Add tracerestrict PBS end signal conditional
This is for realistic braking long reserve
2021-02-13 02:12:16 +00:00
Jonathan G Rennison
b7ddd486cf Merge branch 'master' into jgrpp
# Conflicts:
#	cmake/CompileFlags.cmake
#	src/aircraft_cmd.cpp
#	src/blitter/32bpp_anim.cpp
#	src/cargopacket.cpp
#	src/cheat_gui.cpp
#	src/company_cmd.cpp
#	src/company_gui.cpp
#	src/core/pool_func.hpp
#	src/date.cpp
#	src/economy.cpp
#	src/error_gui.cpp
#	src/ground_vehicle.cpp
#	src/ground_vehicle.hpp
#	src/group_gui.cpp
#	src/industry_cmd.cpp
#	src/lang/dutch.txt
#	src/lang/french.txt
#	src/lang/german.txt
#	src/linkgraph/linkgraph_gui.cpp
#	src/linkgraph/mcf.cpp
#	src/network/network_content.cpp
#	src/network/network_server.cpp
#	src/network/network_udp.cpp
#	src/newgrf_engine.cpp
#	src/newgrf_station.cpp
#	src/order_cmd.cpp
#	src/order_gui.cpp
#	src/pathfinder/follow_track.hpp
#	src/pathfinder/yapf/yapf_common.hpp
#	src/saveload/saveload.cpp
#	src/settings_gui.cpp
#	src/station_cmd.cpp
#	src/station_kdtree.h
#	src/string_func.h
#	src/table/settings.ini
#	src/tgp.cpp
#	src/timetable_cmd.cpp
#	src/timetable_gui.cpp
#	src/toolbar_gui.cpp
#	src/town_cmd.cpp
#	src/train_cmd.cpp
#	src/train_gui.cpp
#	src/tree_gui.cpp
#	src/tunnelbridge_cmd.cpp
#	src/vehicle.cpp
#	src/vehicle_gui.cpp
#	src/video/sdl2_v.cpp
#	src/video/sdl_v.cpp
#	src/video/win32_v.cpp
#	src/viewport.cpp
#	src/viewport_sprite_sorter_sse4.cpp
#	src/window.cpp
2021-02-01 17:07:34 +00:00
Jonathan G Rennison
ed0ffb6220 Add feature: realistic train braking
Add setting to select train braking model.
2021-01-28 19:03:18 +00:00
Charles Pigott
9b800a96ed Codechange: Remove min/max functions in favour of STL variants (#8502) 2021-01-08 11:16:18 +01:00
Jonathan G Rennison
3a75f13874 Allow drive-through road stops to be one-way 2020-10-28 00:27:48 +00:00
Jonathan G Rennison
352b361e1b Viewport: Replace viewport mark dirty if zoom level below with flags param
Fix missing flags for tracerestrict and effect vehicles
2020-10-01 23:18:39 +01:00
Jonathan G Rennison
84dd35b685 Add drive-through train depot emulation (default off) 2020-09-26 18:08:26 +01:00
Jonathan G Rennison
5196caddde Fix assertion failure which could occur when using reverse behind signal 2020-09-04 17:41:27 +01:00
Jonathan G Rennison
00a31a4885 YAPF debug: Add reverse and teleport flags to node dump 2020-09-04 11:59:19 +01:00
Jonathan G Rennison
f998b1eaa6 Only do RV leader check within uncached area 2020-07-12 11:30:14 +01:00
Jonathan G Rennison
c1adefc86d Only do RV leader check if there are multiple target candidates 2020-07-11 22:54:10 +01:00
Jonathan G Rennison
e05f4b2faf Use front vehicle for vehicle orders in RV YAPF leader check 2020-07-11 22:42:59 +01:00
Jonathan G Rennison
49fdc9c77a Merge branch 'pr-138' into jgrpp 2020-07-11 22:05:17 +01:00
Jonathan G Rennison
c93cffed64 Tidy up PR #138 2020-07-11 22:04:01 +01:00
TechGeekNZ
cf8ea74733 Update: Merge branch 'jgrpp_master_cmake' into jgrpp_cmake 2020-06-28 21:56:43 +01:00
Patric Stout
56d54cf60e Add: introduce CMake for project management
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-06-05 19:36:05 +02:00
Jonathan G Rennison
b11852a076 Fix insufficient YAPF cost added when reversing behind signal
Fix 29520437, which was an insufficient fix

See: #150
2020-05-05 00:12:46 +01:00
Jonathan G Rennison
2952043748 Fix insufficient YAPF cost added when reversing behind signal
Distance to target cost compensation was too small in case where target
was perfectly in line with reversing track due to exit direction offset
added in PfCalcEstimate.

See: #147
2020-04-25 11:46:18 +01:00
Themba Dube
04b8e2f8a9 Fix: Road vehicles should only penalize traffic going to the same station 2020-03-31 12:52:54 -04:00
Themba Dube
0a441f63ff Merge remote-tracking branch 'internet-trains/road-vehicle-lookahead' into rv_pathfind 2020-03-31 12:36:56 -04:00
Jonathan G Rennison
4108672cf6 Use separate tile hash for each vehicle type 2020-03-03 06:57:50 +00:00
Jonathan G Rennison
babe98cdb1 Merge branch 'master' into jgrpp
# Conflicts:
#	src/network/network_server.h
#	src/pathfinder/yapf/yapf_road.cpp
#	src/viewport.cpp
2020-02-09 15:43:47 +00:00
Jonathan G Rennison
1a88fb5c91 Fix #7592: Do not cache road vehicle path within 8 tiles of destination with multiple entrances
Ported from jgrpp commit 79d5be7e26
2020-02-07 23:02:10 +01:00
Jonathan G Rennison
bb363695fc YAPF: Prevent user for configuring signal penalties to negative values
Warn if signal penalty polynomial goes negative, and clamp to non-negative
2020-01-17 19:23:03 +00:00
Jonathan G Rennison
07f5b86dfc YAPF: Remove pointer indirection for YAPF game settings 2020-01-17 19:21:58 +00:00