Thanks! Explanation:
The flinger flings one lix at a time and has a cooldown period before it can fling the next lix. Whenever it flings a lix, it always assigns the same speed.
The different arcs in the replay come from (the lix' own locations, which is not the same for every lix) of where the lix have walked (inside the trigger area of the flinger) when the flinger finally has cooled down to fling them. For most lix, the flinger flings the lix immediately when that lix enters the trigger area. With denser clustering, some lix walk further into the trigger area during cooldown (from flinging a previous lix), then get flung from a different spot, producing the different arc.
Here's an excerpt from debugging to prove it:
Becoming flinger at (234, 270), flingXY = (-3, -16)
Becoming flinger at (228, 270), flingXY = (-3, -16)
Fling speed is always the same (3 into facing x-direction, 16 upward) and starting point is different.
It's not a bug to me. Or would you expect the flinger to always move the lix to the flinger's center, and only then assign the speed, to always guarantee the same arc?
-- Simon
(Hmm, Interesting that the tumbler/ballistic flyer code accepts odd x-speeds, and that code breaks it down to substeps of 2 in x-direction, and I don't understood the 13-year-old arcing code anymore. It probably makes only 1 substep of 2 in x-direction then, to keep everything at even x-coordinates. But I haven't examined it. That parts of the code are candidates for for a local rewriting, and for speed optimization, when I get back to physics. It's not related with how we see different fling arcs in mobius's replay.)