Jonathan G Rennison
6b107d65d9
Merge branch 'tracerestrict' into tracerestrict-sx
2019-04-28 11:09:25 +01:00
Jonathan G Rennison
0d2277211c
Fix enum type mismatch in TestOrderCondition
2019-04-28 11:09:05 +01:00
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)
2018-08-15 19:22:18 +01:00
Jonathan G Rennison
e9f5d80440
Trace restrict slots: Add support for slot operations at PBS end signal
2018-06-17 21:13:53 +01:00
Jonathan G Rennison
1b4db7d86c
Trace restrict: Add wait at entrance PBS for reservation ending here
2018-06-17 18:55:33 +01:00
Jonathan G Rennison
751f379cdd
Trace restrict: Fix wrong position of safeguards header include
2018-06-17 18:54:16 +01:00
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
2018-04-17 16:34:03 +01:00
Jonathan G Rennison
b004c1998f
Merge branch 'tracerestrict' into tracerestrict-sx
2017-06-20 19:19:21 +01:00
Jonathan G Rennison
7986367c1f
Tracerestrict: Add program append management action.
2017-06-20 19:18:39 +01:00
Jonathan G Rennison
c44141bad6
Add conditional to test slot occupancy state.
...
Bump tracerestrict version.
2017-04-10 19:00:52 +01:00
Jonathan G Rennison
c94b7a6240
Add safeguard includes to tracerestrict files.
2017-04-10 18:57:46 +01:00
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.
2017-03-31 01:10:26 +01:00
Jonathan G Rennison
927323dcb1
Add trace restrict slot membership conditional.
2017-03-30 21:53:30 +01:00
Jonathan G Rennison
6417fb16c3
Initial implementation of trace restrict slots
2017-03-30 21:14:14 +01:00
Jonathan G Rennison
5a2d482c28
Tracerestrict: Add wait at PBS signal action.
2017-03-27 23:30:15 +01:00
Jonathan G Rennison
13f8de58c3
Add instruction move up/down buttons to GUI.
...
Has block and individual instruction move modes, depending on ctrl.
2017-02-26 23:52:15 +00:00
Jonathan G Rennison
f10c32de53
Fix removal of double-length conditional instructions (PBS entry signal).
2017-02-26 22:51:18 +00:00
Jonathan G Rennison
f192865c27
Allow shallow-removing conditional blocks by use of ctrl+click.
2017-02-26 21:39:04 +00:00
Jonathan G Rennison
f942de699c
Add power/weight and max TE/weight ratio tracerestrict conditionals.
...
Minor refactorings.
2016-06-30 19:31:45 +01:00
Jonathan G Rennison
91ba866852
Fix comment typo.
2016-06-30 18:55:26 +01:00
Jonathan G Rennison
b5531975da
Add train weight, power, and max TE tracerestrict conditionals.
...
Minor refactorings.
2016-06-29 22:08:05 +01:00
Jonathan G Rennison
213b0e7e3a
Tracerestrict: Add a group membership conditional.
2016-04-05 18:40:16 +01:00
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.
2016-03-08 19:20:55 +00:00
Jonathan G Rennison
8dc76b0044
Be more strict checking for space in program pool in mgmt actions.
2016-03-03 19:14:10 +00:00
Jonathan G Rennison
83369d5e71
Remove unused constant _tracerestrict_penalty_item_default_value.
2016-02-05 18:52:24 +00:00
patch-import
82cab7f31c
Tracerestrict: Import "Long Reserve" feature.
...
https://github.com/KeldorKatarn/OpenTTD_PatchPack
Minor code de-duplications.
2016-01-20 21:49:53 +00:00
Jonathan G Rennison
d2e8d205b9
Tracerestrict: Fix copying an unrestricted signal making an empty program.
2016-01-14 19:09:34 +00:00
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.
2016-01-04 18:40:06 +00:00
Jonathan G Rennison
9c5189b212
Handle double instructions correctly when deleting stations/depots/etc.
...
Fix some whitespace and comment typos.
2015-12-15 18:36:02 +00:00
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.
2015-09-02 20:51:30 +01:00
Jonathan G Rennison
d9acfc4599
Fix validation of dual item instructions.
2015-09-02 19:13:30 +01:00
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.
2015-09-02 18:35:56 +01:00
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.
2015-09-02 02:12:02 +01:00
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.
2015-09-02 02:12:02 +01:00
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.
2015-08-19 18:52:49 +01:00
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.
2015-08-04 19:09:40 +01:00
Jonathan G Rennison
a0520b8937
Initial implementation of PBS entry signal condition variable.
...
TODO: see how the efficiency of this can be improved.
2015-08-03 20:28:42 +01:00
Jonathan G Rennison
116bd41101
Initial support for multi-item instructions.
...
This involves various changes to instruction modification actions,
and the GUI code.
2015-08-03 20:03:42 +01:00
Jonathan G Rennison
5474ee3e40
Add entry direction condition variable.
2015-07-28 01:36:52 +01:00
Jonathan G Rennison
3dd51e96b8
Bulk documentation update, and a few style fixes.
2015-07-28 01:36:52 +01:00
Jonathan G Rennison
75869cae41
Add train can carry cargo condition variable.
2015-07-28 01:36:52 +01:00
Jonathan G Rennison
fedf618978
Add last visited station condition.
2015-07-28 01:36:52 +01:00
Jonathan G Rennison
2296fc85e6
Add next order condition variable.
2015-07-28 01:36:52 +01:00
Jonathan G Rennison
ffed0c194a
Add current order (station, waypoint or depot) condition variable.
...
Adjust item bit allocations:
* Increase cond flags from 2 bits to 3 bits, for future expansion.
* Use 2 bits remaining in adjacent gap for an auxiliary type field.
This is used for the type (station, waypoint, etc.) of order tests.
Perform a linear scan of the program pool when deleting a station,
waypoint or depot.
2015-07-28 01:36:52 +01:00
Jonathan G Rennison
0be3b053d5
Add maximum train speed condition variable.
2015-07-28 01:36:52 +01:00
Jonathan G Rennison
627288277e
Implement reset, copy, share and unshare of trace restrict programs.
...
Add documentation on data storage model, wrt lookup, mapping and sharing.
2015-07-28 01:36:52 +01:00
Jonathan G Rennison
5f1b148cf9
Initial minimal working tracerestrict implementation.
...
This is a port of the tracerestrict/routing restrictions feature
from TTDPatch.
At present this implements if tests (train length only),
and pathfinder deny and penalty actions.
This requires the use of YAPF. Note that restrictions are only evaluated
within the YAPF lookahead distance.
2015-07-28 01:36:52 +01:00