Mighty Foot?
It might be better to divorce it completely from the weapon code, and do it entirely in the DrawPlayerWeapon function. Create a global int somewhere (possibly in gamestate, if you eventually want this to be not-entirely-cosmetic, such as the foot) controlling the frame (-1 = draw weapon as normal).
Then in PlayLoop, wait until n tics have elapsed and increment the frame if it isnt zero, and reset it to zero if it exceeds the last frame. Say, 5 frames (0,1,2,3,4):
::: CODE :::
//call this every 10 tics, say...
if (notaweapon_frame != -1)
{
notaweapon_frame++;
if (!(notaweapon_frame % 5)) notaweapon_frame = -1;
}
Then you can add as many different animation sequences (all 5 frames long) as you like, each controlled by setting notaweapon_frame to 0, 5, 10 etc, whenever you'd want to perform an action. You might want GunAttack to reset it to -1 also.
Just how I'd do it 