Files
Bubberstation/code/controllers/subsystem/movement
LemonInTheDark dfa6977f6e Enables out of order moveloop removal (#66532)
Two things going on here.
First, a stupid clerical error I made in the dequeue_loop proc that
prevented loops from removing themselves from a queue.
This was easy to resolve.

Second and more complex.
pour_bucket makes this assumption that when it's done with a bucket, it
can just pop the first one that's sitting in the queue.

This is unfortunately not always true, because the bucket can be already
cleared by a dequeue_loop called under loop.process().

The fix for this is to do some sanity checking on the index and
bucket_time arguments.

It's not perfect, but a second assoc lookup and a length check isn't
that bad.

The alternative would be merging buckets and sorted_buckets into one
list, but that requires doing quite a few text2num calls on insertion,
which I am not a fan of.

Thank you to DamianX and MNarath1 for mentioning this issue, and discussing it with me
You guys are real cool
2022-05-04 23:10:17 -04:00
..