Commit Graph

156 Commits (jgrpp)

Author SHA1 Message Date
Jonathan G Rennison 904ff6757d Add slot support to road vehicles, ships and aircraft 2 years ago
Jonathan G Rennison b23d394f0b Handle predictable conditional orders in timetable window 2 years ago
Jonathan G Rennison b259d04339 Add tunnel/bridge entrance/exit values to entry direction conditional 3 years ago
Jonathan G Rennison 74bfe4e6d2 Allow placing routing restrictions on tunnel/bridge entrance/exit signals
No reserve through support
3 years ago
Jonathan G Rennison dad007e16a Fix spelling of TRPRF_SPEED_RESTRICTION_SET 3 years ago
Jonathan G Rennison 1e0bea5b8d Replace FindFirstBit/FindFirstBit64 with a single template function 3 years ago
Jonathan G Rennison 53139c2405 Add current day/month to tracerestrict and conditional order conditionals 3 years ago
Jonathan G Rennison b8d5113c5a Tracerestrict: Add slot action mode, try to acquire (only on reserve) 3 years ago
Jonathan G Rennison 1002c6d9d2 Fix various compiler warnings
See: #267
3 years ago
Jonathan G Rennison 0579c8755c Add tracerestrict action: No PBS signal back PF penalty 3 years ago
Jonathan G Rennison 112b235b71 Fix name prefix of TraceRestrictNewsControlField enum values 3 years ago
Jonathan G Rennison 2e28bc8e6a Tracerestrict: Add engine class conditional 3 years ago
Jonathan G Rennison 923b2eb0a9 Fix tracerestrict train is loading status condition when predicting orders 3 years ago
Jonathan G Rennison aff89b61f5 Add tracerestrict reserved tiles ahead conditional 3 years ago
Jonathan G Rennison 35d720b0ad Add tracerestrict PBS end signal conditional
This is for realistic braking long reserve
3 years ago
Jonathan G Rennison 8a814bbfe3 Add release slot train order 3 years ago
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
3 years ago
Jonathan G Rennison 6c3e5642f8 Merge branch 'master' into jgrpp
# Conflicts:
#	cmake/CompileFlags.cmake
#	src/crashlog.cpp
#	src/fileio.cpp
#	src/fileio_func.h
#	src/fios_gui.cpp
#	src/ini_load.cpp
#	src/ini_type.h
#	src/lang/english.txt
#	src/lang/german.txt
#	src/lang/korean.txt
#	src/network/network_client.cpp
#	src/order_base.h
#	src/order_cmd.cpp
#	src/os/windows/win32.cpp
#	src/road_cmd.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/settings.cpp
#	src/station_cmd.cpp
#	src/stdafx.h
#	src/table/settings.ini
#	src/tree_cmd.cpp
#	src/tree_gui.cpp
#	src/vehicle_base.h
#	src/video/cocoa/cocoa_v.mm
#	src/video/cocoa/event.mm
#	src/video/cocoa/wnd_quartz.mm
#	src/viewport.cpp
#	src/widgets/tree_widget.h
3 years ago
Jonathan G Rennison 270a748b64 Tracerestrict: Add time/date conditional 4 years ago
Jonathan G Rennison 72a7ae25e8 Tracerestrict: Fix program execution when skipping double non-conditional 4 years ago
Jonathan G Rennison 352b361e1b Viewport: Replace viewport mark dirty if zoom level below with flags param
Fix missing flags for tracerestrict and effect vehicles
4 years ago
Jonathan G Rennison abb7b69861 Add slot and counter support to programmable pre-signals 4 years ago
Jonathan G Rennison 9ee8091ecc Add conditional order which tests counter value 4 years ago
Jonathan G Rennison 817bc44a3e Initial implementation of tracerestrict counter mechanism 4 years ago
Jonathan G Rennison d2594ece79 Add routing restrictions action to control news reports about stuck trains 4 years ago
Jonathan G Rennison 7960db35f2 Merge branch 'master' into jgrpp
# Conflicts:
#	config.lib
#	projects/openttd_vs140.vcxproj
#	projects/openttd_vs140.vcxproj.filters
#	projects/openttd_vs141.vcxproj
#	projects/openttd_vs141.vcxproj.filters
#	projects/openttd_vs142.vcxproj
#	projects/openttd_vs142.vcxproj.filters
#	src/aircraft_cmd.cpp
#	src/base_station_base.h
#	src/core/pool_type.hpp
#	src/disaster_vehicle.cpp
#	src/economy.cpp
#	src/engine.cpp
#	src/group.h
#	src/group_cmd.cpp
#	src/group_gui.cpp
#	src/lang/english.txt
#	src/lang/german.txt
#	src/linkgraph/linkgraph_gui.cpp
#	src/network/network_command.cpp
#	src/network/network_server.cpp
#	src/openttd.cpp
#	src/order_cmd.cpp
#	src/road_cmd.cpp
#	src/saveload/afterload.cpp
#	src/saveload/cargopacket_sl.cpp
#	src/saveload/linkgraph_sl.cpp
#	src/saveload/order_sl.cpp
#	src/saveload/station_sl.cpp
#	src/saveload/town_sl.cpp
#	src/saveload/vehicle_sl.cpp
#	src/screenshot.cpp
#	src/screenshot.h
#	src/settings_gui.cpp
#	src/settings_type.h
#	src/smallmap_gui.cpp
#	src/station.cpp
#	src/station_cmd.cpp
#	src/table/settings.ini
#	src/toolbar_gui.cpp
#	src/town_cmd.cpp
#	src/train.h
#	src/train_cmd.cpp
#	src/train_gui.cpp
#	src/vehicle.cpp
#	src/vehicle_base.h
#	src/vehiclelist.cpp
#	src/window_type.h
4 years ago
Jonathan G Rennison aa8aae9a62 Initial implementation of tracerestrict speed restriction feature 5 years ago
Jonathan G Rennison 7332c0b673 Tracerestrict: Add load percentage conditional 5 years ago
Jonathan G Rennison 2105d21356 Merge branch 'tracerestrict' into jgrpp 5 years ago
Jonathan G Rennison ccdc75e2bf Tracerestrict: Fix non-deterministic use of _sorted_cargo_specs 5 years ago
Jonathan G Rennison e1d98e1b37 Check trace restrict slot vehicle index and occupants in CheckCaches 5 years ago
Jonathan G Rennison 3fdd553a08 Handle trace restrict slots when deleting or merging company 5 years ago
Jonathan G Rennison 06463b8be0 Merge branch 'tracerestrict-sx' into jgrpp 5 years ago
Jonathan G Rennison 6b107d65d9 Merge branch 'tracerestrict' into tracerestrict-sx 5 years ago
Jonathan G Rennison 0d2277211c Fix enum type mismatch in TestOrderCondition 5 years ago
Jonathan G Rennison 674732cd68 Merge: Codechange: Use null pointer literal instead of the NULL macro 5 years ago
Jonathan G Rennison cd41683b9b Add tracerestrict feature reverse behind signal 6 years ago
Jonathan G Rennison 83a063f51c Add train is in slot conditional order 6 years ago
Jonathan G Rennison 3e50336079 Add trace restrict train status conditional 6 years ago
Jonathan G Rennison f59535c0b7 Merge branch 'tracerestrict-sx' into jgrpp
# Conflicts:
#	src/train_cmd.cpp
6 years ago
keldorkatarn acdeaa715e Tracerestrict slots: Fix a crash bug when selling a train that's in a tracerestrict slot. Again a use of an invalid iterator. We need to check FIRST if range.first and reange.second are equal. After erasing the range those iterators are invalid.
(cherry picked from commit 7aea2ced3ced5ec4201fbad9c206451aad057718)
6 years ago
Jonathan G Rennison 2586096ef6 Merge branch 'tracerestrict-sx' into jgrpp
# Conflicts:
#	src/pbs.cpp
#	src/saveload/extended_ver_sl.cpp
6 years ago
Jonathan G Rennison e9f5d80440 Trace restrict slots: Add support for slot operations at PBS end signal 6 years ago
Jonathan G Rennison 1b4db7d86c Trace restrict: Add wait at entrance PBS for reservation ending here 6 years ago
Jonathan G Rennison 751f379cdd Trace restrict: Fix wrong position of safeguards header include 6 years ago
Jonathan G Rennison de4d958808 Fix tracerestrict current order test on load through advance order 6 years ago
Jonathan G Rennison 97fd250d21 Remove conditional order refs when removing tracerestrict slot
See #40
6 years ago
keldorkatarn 78588d8ce5 First implementation of conditional order checking slot occupancy
(cherry picked from commit 524e3e56cb4a357ba60335f91dce1e00cb8d22f2)

Some code adjustments: serialisation/storage, formatting

See: #40
6 years ago
Jonathan G Rennison 02328680a1 Merge branch 'tracerestrict-sx' into jgrpp 6 years ago
keldorkatarn 2f3e4044b7 FIX: TraceRestrictSlots: Fix crash when removing vehicle from slot. Invalid iterator got used. (it was no longer valid after calling erase with it)
(cherry picked from commit 3571f1bc898b9ffd8b124040882caa5357085f42)

Fixes: #37
6 years ago
Jonathan G Rennison 64d9cdd6f0 Merge branch 'tracerestrict-sx' into jgrpp 7 years ago
Jonathan G Rennison b004c1998f Merge branch 'tracerestrict' into tracerestrict-sx 7 years ago
Jonathan G Rennison 7986367c1f Tracerestrict: Add program append management action. 7 years ago
Jonathan G Rennison bfb8f6f32e Merge branch 'tracerestrict-sx' into jgrpp
# Conflicts:
#	src/saveload/extended_ver_sl.cpp
#	src/tracerestrict.h
#	src/tracerestrict_gui.cpp
7 years ago
Jonathan G Rennison c44141bad6 Add conditional to test slot occupancy state.
Bump tracerestrict version.
7 years ago
Jonathan G Rennison c94b7a6240 Add safeguard includes to tracerestrict files. 7 years ago
Jonathan G Rennison b8328ad21f Merge branch 'tracerestrict-sx' into jgrpp
# Conflicts:
#	src/command.cpp
#	src/group_gui.cpp
#	src/lang/english.txt
#	src/saveload/extended_ver_sl.cpp
#	src/settings_gui.cpp
#	src/tracerestrict.cpp
#	src/tracerestrict.h
#	src/tracerestrict_gui.cpp
#	src/vehicle_gui.cpp
#	src/vehicle_gui_base.h
#	src/vehiclelist.cpp
#	src/window_type.h
7 years ago
Jonathan G Rennison 0772236986 Add a release slot at front of train slot action.
Distinguish from release slot at back.
Fix slot release and acquire at front when passing PBS from back.
7 years ago
Jonathan G Rennison 927323dcb1 Add trace restrict slot membership conditional. 7 years ago
Jonathan G Rennison 6417fb16c3 Initial implementation of trace restrict slots 7 years ago
Jonathan G Rennison 5a2d482c28 Tracerestrict: Add wait at PBS signal action. 7 years ago
Jonathan G Rennison 8cf0f354d9 Merge branch 'tracerestrict-sx' into jgrpp 7 years ago
Jonathan G Rennison 13f8de58c3 Add instruction move up/down buttons to GUI.
Has block and individual instruction move modes, depending on ctrl.
7 years ago
Jonathan G Rennison f10c32de53 Fix removal of double-length conditional instructions (PBS entry signal). 7 years ago
Jonathan G Rennison f192865c27 Allow shallow-removing conditional blocks by use of ctrl+click. 7 years ago
Jonathan G Rennison 80e3af6bf5 Merge branch 'tracerestrict-sx' into jgrpp
# Conflicts:
#	src/lang/english.txt
#	src/saveload/extended_ver_sl.cpp
#	src/tracerestrict.cpp
#	src/tracerestrict.h
#	src/tracerestrict_gui.cpp
8 years ago
Jonathan G Rennison f942de699c Add power/weight and max TE/weight ratio tracerestrict conditionals.
Minor refactorings.
8 years ago
Jonathan G Rennison 91ba866852 Fix comment typo. 8 years ago
Jonathan G Rennison b5531975da Add train weight, power, and max TE tracerestrict conditionals.
Minor refactorings.
8 years ago
Jonathan G Rennison 0d26da998b Merge branch 'tracerestrict-sx' into jgrpp
# Conflicts:
#	src/group_cmd.cpp
#	src/group_gui.cpp
#	src/lang/english.txt
#	src/saveload/extended_ver_sl.cpp
#	src/tracerestrict.cpp
#	src/tracerestrict.h
#	src/tracerestrict_gui.cpp
8 years ago
Jonathan G Rennison 213b0e7e3a Tracerestrict: Add a group membership conditional. 8 years ago
Jonathan G Rennison 49988b37b8 Merge branches 'tracerestrict-sx' and 'template_train_replacement-sx' into jgrpp 8 years ago
Jonathan G Rennison 4d94470d08 Update all tracerestrict windows when a restricted signal is removed.
This fixes share counts in any open windows sharing the same program
not being updated.
8 years ago
Jonathan G Rennison 8dc76b0044 Be more strict checking for space in program pool in mgmt actions. 8 years ago
Jonathan G Rennison 5d42d07988 Merge branch 'tracerestrict-sx' into jgrpp 8 years ago
Jonathan G Rennison 83369d5e71 Remove unused constant _tracerestrict_penalty_item_default_value. 8 years ago
Jonathan G Rennison 73e8c32a5d Merge branch 'tracerestrict-sx' into jgrpp
Conflicts:
	src/saveload/extended_ver_sl.cpp
	src/tracerestrict.h
	src/tracerestrict_gui.cpp
	src/train_cmd.cpp
8 years ago
patch-import 82cab7f31c Tracerestrict: Import "Long Reserve" feature.
https://github.com/KeldorKatarn/OpenTTD_PatchPack

Minor code de-duplications.
8 years ago
Jonathan G Rennison 0c29f9f9a0 Merge branch 'tracerestrict-sx' into jgrpp 9 years ago
Jonathan G Rennison d2e8d205b9 Tracerestrict: Fix copying an unrestricted signal making an empty program. 9 years ago
Jonathan G Rennison c3948ef5e9 Merge branch 'tracerestrict-sx' into jgrpp 9 years ago
Jonathan G Rennison 20a015e9d3 Fix actions_used_flags not being set when cloning tracerestrict programs.
This resulted in newly copied or unshared programs not being evaluated.
9 years ago
Jonathan G Rennison 7673436d3a Trace restrict: add train ownership conditional.
Infra sharing whitespace fix.
9 years ago
Jonathan G Rennison 95c532b134 Merge branch 'tracerestrict-sx' into jgrpp 9 years ago
Jonathan G Rennison 9c5189b212 Handle double instructions correctly when deleting stations/depots/etc.
Fix some whitespace and comment typos.
9 years ago
Jonathan G Rennison 3dec3242cc Merge branch 'tracerestrict-sx' into jgrpp
Conflicts:
	src/saveload/extended_ver_sl.cpp
9 years ago
Jonathan G Rennison 73b69c5594 Validate type of all instructions, log validation failures at load.
The validator now checks that the type of conditional instructions
is known.
On a validation failure, the load code now outputs a corrupt savegame
message, with the validation error message and a program dump,
instead of using an assertion.
9 years ago
Jonathan G Rennison d9acfc4599 Fix validation of dual item instructions. 9 years ago
Jonathan G Rennison e2435c7169 Only run trace restrict programs if they contain relevant actions.
Only run in pathfinder case if deny or penalty are present.
Only run in is safe waiting tile case is reserve through is present.
Presence is determined at program validation time and cached in the
program structure.
Validator now checks for unknown non-conditional instructions.
9 years ago
Jonathan G Rennison 06a1d7c5c9 Add reserve through action to trace restrict programs.
This only changes the behaviour of PBS reservations which
would otherwise terminate at a PBS signal.
If the signal restriction sets the reserve through state,
the reservation continues through the signal, and the signal
is set to green.
9 years ago
Jonathan G Rennison 06cc930e47 Improve insertion and removal of 'or if' conditionals.
Allow inserting an 'or if' immediately after 'if', 'else if', 'or if'.
Removing an 'or if' no longer removes the associated block.
9 years ago
Jonathan G Rennison 64a6f5c0d4 Merge branch 'jgrpp' into save_ext_spp 9 years ago
Jonathan G Rennison 96ccd9333a Clear PAX stations/signals and traffic lights on load.
This clears the tracerestrict bit if there are no mappings on a tile.
9 years ago
Jonathan G Rennison 614b3d8ab5 Trace restrict: Handle removing mapping from refcount 2 empty program.
Instead of leaving the other mapping pointing to an empty unshared
program, find and delete it.
9 years ago
Jonathan G Rennison 76707fb72a Change pf penalty restriction value button to preset values and a custom option.
Preset values are 'small', 'medium' and 'large'.
Change default to 'small' preset.
9 years ago
Jonathan G Rennison a0520b8937 Initial implementation of PBS entry signal condition variable.
TODO: see how the efficiency of this can be improved.
9 years ago
Jonathan G Rennison 116bd41101 Initial support for multi-item instructions.
This involves various changes to instruction modification actions,
and the GUI code.
9 years ago
Jonathan G Rennison 5474ee3e40 Add entry direction condition variable. 9 years ago
Jonathan G Rennison 3dd51e96b8 Bulk documentation update, and a few style fixes. 9 years ago
Jonathan G Rennison 75869cae41 Add train can carry cargo condition variable. 9 years ago