The event queueing system falls into an infinite loop if a Goto(GameTick) action is performed with two or more LaunchEvents scheduled in the futureEventQueue at the same tick.
The scheduler takes the first LaunchEvent, puts it into the pastEventQueue and generates the associated CombatEvents. It does the same for the second LaunchEvent but then removes the first one and it's CombatEvents after which it is placed in the futureEventQueue. This should not happen.
Expected Behavior
It should be possible to launch more than one sub at the same tick.
Current Behavior
Launching more than one sub at the same tick crashes the game.
Possible Solution
[ ] Prevent an event to be taken out of pastEventQueue if Goto(Gametick) refers to a point in the future
[ ] Allow an event to be taken out of pastEventQueue if Goto(Gametick) refers to a point in the past
Steps to Reproduce
Try to launch two or more subs at the same tick (outpost start and destination do not matter)
The event queueing system falls into an infinite loop if a
Goto(GameTick)
action is performed with two or moreLaunchEvents
scheduled in thefutureEventQueue
at the same tick. The scheduler takes the firstLaunchEvent
, puts it into thepastEventQueue
and generates the associatedCombatEvents
. It does the same for the secondLaunchEvent
but then removes the first one and it'sCombatEvents
after which it is placed in thefutureEventQueue
. This should not happen.Expected Behavior
It should be possible to launch more than one sub at the same tick.
Current Behavior
Launching more than one sub at the same tick crashes the game.
Possible Solution
pastEventQueue
ifGoto(Gametick)
refers to a point in the futurepastEventQueue
ifGoto(Gametick)
refers to a point in the pastSteps to Reproduce