Superintendent asked to rule on X15 against X18, which was behind it; X18 then destroyed, X15 unharmed #26

Closed
opened 2026-09-15 22:12:38 +00:00 by Jesse.Markowitz · 0 comments
Owner

Reported from multiplayer playtesting (v0.8.0.9). Two westbound Extras: X15 further west on the Mainline cards than X18. The Superintendent was still asked to rule — "Train X15 wants to enter the Mainline card that Train X18 is still crossing" — though X15 should be ahead of X18, not behind it. X15 was held; a collision followed, destroying X18 while X15 was fine.

Save exported for replay (kept out of the repo: it contains player names).

Leads from the code, not yet confirmed against the save:

  • evaluateClearance asks the Superintendent about ANY same-direction occupant anywhere in the target Subdivision, without checking whether that train is ahead of or behind the one departing.
  • An Extra pulling out of an Interchange yard enters at the BACK of the card (Gitea#3), which could put X18 genuinely ahead on that card even if the map drew X15 further west.
  • A catching-up collision removes BOTH trains (collide(..., [id, ahead.tray])), so one destroyed and one unharmed does not match that path either, and needs explaining.
Reported from multiplayer playtesting (v0.8.0.9). Two westbound Extras: X15 further west on the Mainline cards than X18. The Superintendent was still asked to rule — "Train X15 wants to enter the Mainline card that Train X18 is still crossing" — though X15 should be ahead of X18, not behind it. X15 was held; a collision followed, destroying X18 while X15 was fine. Save exported for replay (kept out of the repo: it contains player names). **Leads from the code, not yet confirmed against the save:** - `evaluateClearance` asks the Superintendent about ANY same-direction occupant anywhere in the target Subdivision, without checking whether that train is ahead of or behind the one departing. - An Extra pulling out of an Interchange yard enters at the BACK of the card (Gitea#3), which could put X18 genuinely ahead on that card even if the map drew X15 further west. - A catching-up collision removes BOTH trains (`collide(..., [id, ahead.tray])`), so one destroyed and one unharmed does not match that path either, and needs explaining.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Jesse.Markowitz/station-master#26