Want to praise Simutrans?
Your feedback is important for us ;D.

Express/Priority Lines

Started by hreintke, August 14, 2017, 11:28:31 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


The "largest cargo first" thread there was also discussion on express/local lines.
My remark there was :
QuoteWhat about this option :

Create an option to designate a line as "express line" with this behavior.

Local line   : A>B>C>D>E>F
Express line : A>  C>    F

Unload/Load algorithm for "this line" (generic)

1. Unload all cargo/pass with destination "this station" (as it now now).
2. If there is any expressline visiting "this station" and "this line" is a "non express line"
   -> unload cargo/pass which have destination on any "express line"
   -> load only cargo/pass which have destination not on any "express line" (using current procedure)
    -> load using current procedure
This would lead to
-> "express line destinations" not being served by "non express lines"
-> cargo/pass transfer to "express line" when possible

  -> Not complex ?
  -> Full backward compatibility when not using "express lines"
Less realistic
  ->  Not taken into account that there is a possibility to go "A>C>(D,E)" using "express line" first and then transfer to "non express line"

I took the challenge and created such an option.

Instead of express/local line I used a priority of a line (default = 0)
In order not to need also GUI updates, I used LineNames for giving priority.
First char = '!' -> second  char is priority (f.e. !1ExpressLine)

Attached is the following :
- Patch of the ExpressLine update
- A test/example sve file, based on pak64

Patch is based on latest trunk Simutrans

Comments are welcome

Updated attachments