The definition for a flasher is
Code: Select all
*FLASHER* x y z hue speed offset size
Example: In order to have two alternating flashers with the same speed you would have to define them like this:
Code: Select all
*FLASHER* x y z hue 1 0 size
*FLASHER* x y z hue 1 0.5 size
But this only works for speed = 1. For speed = 2 you would need:
Code: Select all
*FLASHER* x y z hue 2 0 size
*FLASHER* x y z hue 2 0.25 size
In the same way you would need
Code: Select all
*FLASHER* x y z hue 1.5 0 size
*FLASHER* x y z hue 1.5 0.33333333 size
Code: Select all
*FLASHER* x y z hue 0.5 0 size
*FLASHER* x y z hue 0.5 1 size
Code: Select all
*FLASHER* x y z hue 0.4 0 size
*FLASHER* x y z hue 0.4 1.25 size
Therefore, while the definition as it is now is good for timing flashers on an absolute timescale (offset always means the same duration of time; actually, if the speed for speed = 1 is one second (haven't measured), it's always the same fraction of a second), this is not what I think to be the most common use of offset.
I think offset is practically always used to co-ordinate two (or a group of) flashers with the same speed, regardless of how other groups of flashers are handled.
Therefore—from a scripter's (ship designer's) point of view—it would be immensely more useful to have offset relate to the flasher's speed instead of an absolute amount of time (the unaltered sine-wave). So that two alternating flashers can always be started at 0 and 0.5 (or 0.25 and 0.75), regardless of their speed.
I think (if my mathematics are still correct) that would be achieved by changing the flasher code from sin((speed* x) + offset) to sin(speed * (x + offset)). Please prove me wrong, as my brain is starting to hurt now.