JTraffic Screensaver



<AnimationRules> == <AnimationRule> || ( <AnimationRuleList> )

<AnimationRuleList> == <AnimationRule> || <AnimationRuleList> ; <AnimationRule>

<AnimationRule> == <DefaultMark> <Action> = <Sequence> || <DefaultMark> <Action>

<DefaultMark> == || * || < || >

<Action> == <Name>

<Sequence> == <SequenceName>  || <AnimProg>

<SequenceName>  == F FW FORWARD

B || BW || BACKWARD ||

C || CY || CYCLE ||

E || EX || END || EXIT

This parameter belongs to the animation definitions.  An animation is composed of a series of equally sized pictures following one another in a sequence as well as the parameters which determine in which way the animation is to be placed upon a place or vehicle.  The individual pictures which comprise the animation are generally contained in one picture in the Stock List and the [A: ] command defines, in what way the sequence pictures are combined.

More than one rule can be applied to a sequence of pictures.  An animation rule is composed of a <Name> and the "program" which is itself composed of the <Sequence> which defines the pattern by which the individual frames of the animation are displayed as well any time parameters between the different frames of the animation.  The <AnimationRuleList> is a list of the individual rules <AnimationRule> separated by a semicolon.  Only one of the rules can be the default—that is, be running when the animation appears on the screen.   Please bear in mind that the vehicles are treated by the program as if they come from a great distance.  Because of this it can occur that specifying the default of something which happens only once will mean that the animation has already occurred before the train appears on the screen.  If you specify more than one rule as the default traffic will pick one of them and there is no guarantee that it will be the one you desire.  In the current version of the program it is the first one specified, but this may change in future versions of the program.

The default rule is denoted by placing an asterisk in front of its <Name>; in this case the <AnimationRule> is independent of the direction of travel of a moving vehicle. <  means that the <AnimationRule> is activated when the vehicle moves from right to left.  Accordingly, an <AnimationRule> preceded by > activates when the vehicle travels from left to right.

<Action> is used as the command name by which the animation is called.  One can use this in the composition of the <WaitTime> with the T=, T1=, T2=, T3=, TB=, TE= parameters, which define the wait times and animations, as well as with the WP= parameter which sets places along the route at which actions are triggered. There are some special action names and combined actions - having their own parameters -, see them in the Actions chapter.

The <Sequence> is a short form for either a simple sequence of pictures or for a program which defines each step in detail.  The accepted codes for <Sequence> are:

nothing Each run of the animation starts with the beginning of the animation and runs completely through until the last frame is shown which remains on the screen.
F , FW or FORWARD The animation runs from the first to last frame—when the last frame is shown, the animation ends.
B , BW or BACKWARD The animation runs from the last to first frame—when the first frame is shown, the animation ends.
C , CY or CYCLE The animation runs in an endless loop, from beginning frame to end frame and repeat.
E , EX , END or EXIT Not really an animation, it is used to explicitly stop a looping animation.  It ends running animations after the last frame of the animation is shown.
<AnimProg> The sequence of the individual frames is explicitly defined. The number of frames which comprise the animation is input here.

The syntax of a detailed program is

<AnimProg> == <Step> || <AnimProg> , <Step>

<Step> == <Simple> || <Interval> || <Repetition> || ( <AnimProg> ) || W <Simple>

<Interval> == <Simple> - <Simple>

<Repetition> == * <AnimProg> || <Simple> * <AnimProg>

<Step> is the number of individual pictures which must be shown.  The individual pictures are counted beginning with the number 0.  An <Interval> (two whole numbers separated with a minus sign) means that all individual pictures between the first and second <Simple> are shown in numeric sequence.

The character W preceding a <Simple> is no picture number, rather a series of 10 millisecond intervals which the screensaver waits before showing the next individual picture or before beginning the next wait time.  All steps without the W<Integer> element between them wait the duration specified in the <Time> parameter in the [A: ] command's comma separated list, or the corresponding parameters can also be set forth in the macro attached to the pictures themselves.

The asterisk ( *) denotes repetition.  If a <Simple> precedes the asterisk this determines the number of cycles.  Without the asterisk the animation runs in an endless loop. The number of the individual pictures and the intervals must be enclosed in parentheses to define a cyclical animation. The only time when the parentheses can be omitted is when the animation is to run once through and stop.

All integers (the picture indices and the cycle count) are of the type <Simple> and cannot contain fractions or be defined as random selections.


There are two special animation names with predefined rule sets. They have the global identifiers DOOR or PAN and have their own integral, predefined operating rules.  The operation of a DOOR  animation is equivalent to the following individual declaration:


This is a door: one can either open it or close it.  So a DOOR animation is, in essence, a limited animation.  When on calls it, the DOOR animation checks its current state and runs to the opposite state: when it is open it closes, when closed it opens.

The PAN animation describes a pantograph for electric locomotives, tramways, troleybusses. There are special action names dealing with all of the pantographs of a vehicle - this is described in the chapter Pantograph state changes.

The Configuration Window
Program Window
Stock List
Description Editor
Graphic Testpad
Timetable Editor
Timetable Syntax and Semanics
The timetable header
Sections, Groups, Lines, Scenes
Stock List File