Blaster autofire. Why pairing?

THis code

  virtual void SelectAutoFirePair() { 
    if (!SFX_auto.files_found() || !SFX_blast.files_found()) return;
    int autoCount = SFX_auto.files_found();
    int blastCount = SFX_blast.files_found();
    // If we don't have a matched pair of autos and blasts, then don't override the sequence to get a matched pair.
    if (autoCount == blastCount) {
        int pairSelection = rand() % autoCount;
        SFX_auto.Select(pairSelection);
        SFX_blast.Select(pairSelection);
    }
  }

is cool, and led to greater things in pairing other sounds, but what was the idea here?
In what way would we want auto3 to play with blast3?
Wouldn’t the blast and auto sounds work well together already just because the font was made right?
I’m just wondering if I’m missing the point of another cool thing.

edit - I just tested further. This is the sequence:
With the same number of blast and auto files in the font

  • kill mode - blasts are random
  • switch to auto mode - plays the same file repeatedly while trigger is held, new file choice with each trigger pull
  • back to kill mode, but now blasts are not random.

So maybe the idea was that autofire would play the same file repeating, (which sounds right I suppose), but i don’t think the non-random blasts in kill mode afterwards is right.
I added SFX_blast.Select(-1); when MODE_KILL is selected and it seems better.
Is that right?

So, the short answer is that I don’t remember.
You might have to ask Adam Days, who wrote that code.
I think the goal at the time was to work with plecter blaster fonts, so maybe that’s how they work??
I think you’re right that it’s not supposed to stay that way when you switch to kill mode though.

I found the commit where it was first introduced, no conversation about it though.
You used to go easy on guys ?? :wink:

I think maybe there was conversation about it elsewhere.
Might be pretty hard to find now though.