Commit Graph

193 Commits

Author SHA1 Message Date
Jonathan G Rennison
1183476182 Allow custom signal styles to disable aspect-limited mode
By setting style_lookahead_extra_aspects to 255
2023-08-14 23:56:21 +01:00
Jonathan G Rennison
4f875012b6 Do not unnecessarily extend train reservations when passing signal
When the signal is a next-only or non-aspect-incrementing type, and
its maximum lookahead is not beyond the current end of the reservation
2023-07-23 18:39:57 +01:00
Jonathan G Rennison
09e03fb6b2 Change TunnelBridgeIsFree across_only to a mode enum type 2023-05-06 16:19:52 +01:00
Jonathan G Rennison
9521e7ef2b Merge branch 'master' into jgrpp
# Conflicts:
#	src/elrail.cpp
#	src/ground_vehicle.hpp
#	src/landscape.cpp
#	src/saveload/afterload.cpp
#	src/saveload/saveload.h
#	src/tile_cmd.h
#	src/town_cmd.cpp
#	src/tunnelbridge_cmd.cpp
2023-04-12 19:34:11 +01:00
Jonathan G Rennison
4ec6a99dd8 Add GetTileTrackStatus wrapper for when red signals part is not needed 2023-03-04 02:01:40 +00:00
Jonathan G Rennison
3e7a625e0e Fix function locals shadowing parameters 2023-02-16 00:09:14 +00:00
Jonathan G Rennison
07b7cc5652 Tracerestrict: Add condition whether reservation passes through tile 2023-02-06 19:54:14 +00:00
Tyler Trahan
c19abebf8d Feature: Multi-track level crossings (#9931) 2022-11-01 16:51:23 -04:00
Jonathan G Rennison
bd28d5a239 Use order state at reservation time for signal mode tracerestrict eval 2022-07-01 00:33:59 +01:00
Jonathan G Rennison
6a69a5495f Add tracerestrict action to set combined normal/shunt signal mode
Add associated conditional to get reservation end tile
2022-06-28 01:16:57 +01:00
Jonathan G Rennison
78ae295dfe Add combined normal and shunt aspect signal style flag 2022-06-27 18:51:26 +01:00
Jonathan G Rennison
2f7664fc93 Move signal style mask variables into a single struct 2022-06-25 10:18:48 +01:00
Jonathan G Rennison
a311f12615 Add signals_style_lookahead_single_signal_only signal style property 2022-06-25 01:29:08 +01:00
Jonathan G Rennison
24e965061c Fix limit train lookahead to signal aspect when starting
From depot and within signal sighting distance (e.g. reverse)
2022-06-25 01:17:24 +01:00
Jonathan G Rennison
3a064f127b Fix SetTrainReservationLookaheadEnd moving end nearer 2022-06-22 18:50:41 +01:00
Jonathan G Rennison
b6e099121a Fix limit train lookahead to signal aspect within signalled tunnel/bridges 2022-06-22 00:24:13 +01:00
Jonathan G Rennison
175c5d4d50 Add signal style flag to limit lookahead extra aspect 2022-06-19 12:46:56 +01:00
Jonathan G Rennison
22caac6529 Add game setting to limit train lookahead to signal aspect
In realistic braking mode when multi-aspect signalling enabled by GRF
2022-06-19 12:44:15 +01:00
Jonathan G Rennison
bdd73a19a1 Add signal style flag for unconditional reserve through
Add map bits for unconditional reserve through
Adjust signal aspect/state handling
2022-06-19 04:15:27 +01:00
Jonathan G Rennison
02dabad81e Tracerestrict: Add flag for whether reserve through is always set 2022-06-11 16:40:32 +01:00
Jonathan G Rennison
99ee4b13ce Realistic braking: Cache train overall z position
Refresh cache at a variable rate depending on train length and
weight distribution
2022-06-03 00:41:41 +01:00
Jonathan G Rennison
502980ba61 Support railtype-dependant GRF train speed limits with realistic braking
See: #389
2022-05-24 21:50:38 +01:00
Jonathan G Rennison
551560537f Ensure that adjacent level crossings cannot leave map if there are no void tiles 2021-11-20 01:27:41 +00:00
Jonathan G Rennison
74bfe4e6d2 Allow placing routing restrictions on tunnel/bridge entrance/exit signals
No reserve through support
2021-11-13 22:28:14 +00:00
Jonathan G Rennison
48977853a4 Simplify some rail/signalled tunnel/bridge tile checks 2021-11-13 17:26:07 +00:00
Jonathan G Rennison
dad007e16a Fix spelling of TRPRF_SPEED_RESTRICTION_SET 2021-11-13 02:00:37 +00:00
Jonathan G Rennison
3308edf792 Try to extend reservation when passing sighting distance of non-end signal 2021-11-12 01:02:29 +00: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
Jonathan G Rennison
b2ef6c0de8 Add implementation of multi-aspect signalling and GRF support
Requires realistic braking

See: #247
2021-08-28 12:54:18 +01:00
Jonathan G Rennison
55c4fe7d45 Add helper functions to get tunnel/bridge entrance/exit trackdirs 2021-08-27 23:39:20 +01:00
Jonathan G Rennison
1002c6d9d2 Fix various compiler warnings
See: #267
2021-06-11 22:54:27 +01:00
Jonathan G Rennison
ba2e6087b2 Add train cache flag for whether train using realistic braking physics 2021-04-15 20:56:45 +01:00
Jonathan G Rennison
b514d29db1 Replace TrainCache::cached_tilt with a flags field 2021-04-15 20:56:45 +01:00
Jonathan G Rennison
8fd4f65a85 Validate lookahead reservation end OK before calling FollowTrainReservation 2021-04-01 00:36:13 +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
5c569b1880 Validate TB exit tile when TRLF_TB_EXIT_FREE set in FollowTrainReservation 2021-03-30 23:10:26 +01:00
Jonathan G Rennison
8646506127 Prevent lookahead init for wrong way movement on signalled tunnel/bridge 2021-03-30 22:53:45 +01:00
Jonathan G Rennison
b9413ea250 Remove assert from UpdateSignalsOnSegment that globset is empty
Just do the right thing if it isn't empty instead of asserting
2021-03-17 20:35:48 +00:00
Jonathan G Rennison
fb64e29c6c Fix assertion failure when command triggers PBS tunnel/bridge unreserve
In the case where the signal update buffer is not currently empty
2021-03-16 03:23:00 +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
03f95322ae Fix CheckCurveLookAhead applying curves just beyond the train length
Fix vehicle spacing logic
2021-02-05 21:45:44 +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
43b0ddc558 Use tile railtype for curve speed look ahead
See: 0f91cb04
2021-01-31 01:08:47 +00:00
Jonathan G Rennison
b711f94d1c Fix FollowTrainReservation following outwards from end depot 2021-01-28 23:25:07 +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
Jonathan G Rennison
65d5d13a08 Avoid unnecessary viewport redrawing when (un)reserving signalled bridges 2021-01-06 17:13:35 +00:00
Jonathan G Rennison
92ca965ef7 Fix PBS rail type handling with incorrect GRF rail type compatibility 2020-10-15 20:37:57 +01: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
4108672cf6 Use separate tile hash for each vehicle type 2020-03-03 06:57:50 +00:00
Jonathan G Rennison
5240b46d1d Reduce viewport invalidation area of signal state changes 2020-02-25 21:31:29 +00:00