I have a weapon that has sequential fire frames but may be canceled at any time.
Due to Zandronum compatibility (hurr durr I know...) my choices are limited and if I don't want the weapon animations to be ping delayed I can't use ACS calls.
I choose the next frame by using this:
Code: Select all
ChooseFireFrame:
QSNG # 0 A_CheckForReload(8,1)
Goto FireFrame7
QSNG # 0 A_CheckForReload(7,1,1)
Goto FireFrame6
QSNG # 0 A_CheckForReload(6,1,1)
Goto FireFrame5
QSNG # 0 A_CheckForReload(5,1,1)
Goto FireFrame4
QSNG # 0 A_CheckForReload(4,1,1)
Goto FireFrame3
QSNG # 0 A_CheckForReload(3,1,1)
Goto FireFrame2
QSNG # 0 A_CheckForReload(2,1,1)
Goto FireFrame1
QSNG # 0 A_ResetReloadCounter
Goto FireFrame0
I've spoken to phantombeta on Discord about it and after a bit of back and fourth, they said:
phantombeta wrote: Congrats, either you've found a very old bug that no one else has been affected by, or your code was accidentally relying on undefined behaviour
You should report it on the forums now