Signal script dist_multi_sig_mr() includes all linked signal heads
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Open Rails |
Fix Released
|
Medium
|
Carlo Santucci |
Bug Description
The signal scripting dist_multi_sig_mr() function does not behave in Open Rails as it does in MSTS.
"The function takes two arguments. The first argument tells the function what type of signal you want to get the indication of. The second argument tells the function what type of signal you want to stop at. The function returns the most-restrictive
indication of all signals of the first type, until a signal of the second type is encountered. If a signal head of the first type exists on the same shape as the first second type specified, then that first type head’s indication counts. Any signal heads of the first type which are linked to a track but whose route is not available are ignored and treated as they do not exist at all."
The incorrect behavior in OR that I have seen relates to that last sentence. Any signal head that is linked to a track should be ignored if that track is not currently routed. In other words, if that linked signal's own code were to call route_set() at that moment and return False, then dist_multi_sig_mr() should ignore that signal head and pretend it does not exist. This currently is not the case.
To my knowledge this bug has been present in every version of Open Rails.
tags: |
added: signals removed: signal |
tags: | removed: dist+multi+sig+mr dist-multi-sig-mr distant home signaling |
Changed in or: | |
status: | New → Fix Committed |
Changed in or: | |
assignee: | nobody → Carlo Santucci (carlosanit1) |
milestone: | none → 1.2 |
importance: | Undecided → Medium |
Changed in or: | |
status: | Fix Committed → Fix Released |
From what I can determine, this bug has been resolved in 3538.