Fix inconsistent bobbing with dual explodium guns.

Fix "laggy" cocking animation with dual explodium guns.
This commit is contained in:
Mari the Deer 2022-06-02 18:14:47 +02:00
commit c4e9dfac8a
2 changed files with 12 additions and 4 deletions

View file

@ -860,6 +860,9 @@ Class DualExplodiumGun : SWWMWeapon
int flg = WRF_NOSWITCH|WRF_NOSECONDARY;
if ( !ExplodiumGun(invoker.SisterWeapon).chambered )
flg |= WRF_NOPRIMARY;
// don't bob while the left weapon is firing
if ( sis.CurState.InStateSequence(ResolveState("LeftFire")) || sis.CurState.InStateSequence(ResolveState("LeftFireLast")) )
flg |= WRF_NOBOB;
A_WeaponReady(flg);
}
}
@ -876,6 +879,9 @@ Class DualExplodiumGun : SWWMWeapon
player.SetPSprite(PSP_WEAPON+1,ResolveState("LeftReload"));
else if ( player.cmd.buttons&BT_ALTATTACK && invoker.chambered )
player.SetPSprite(PSP_WEAPON+1,ResolveState("LeftFire"));
// allow bobbing while the right weapon reloads
if ( !sis.CurState.InStateSequence(ResolveState("Fire")) && !sis.CurState.InStateSequence(ResolveState("FireLast")) )
A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
}
Wait;
Fire:
@ -1077,7 +1083,8 @@ Class DualExplodiumGun : SWWMWeapon
XZW4 KLMNOP 2;
Goto Ready;
Slide:
XZW2 A 10 { player.SetPSPrite(PSP_WEAPON+1,ResolveState("LeftLower")); }
XZW2 A 9 { player.SetPSPrite(PSP_WEAPON+1,ResolveState("LeftLower")); }
XZW2 A 1;
XZW4 WXY 1;
XZW5 A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 BC 1;
@ -1133,7 +1140,8 @@ Class DualExplodiumGun : SWWMWeapon
XZWD KLMNOP 2;
Goto LeftReady;
LeftSlide:
XZWB A 10 { player.SetPSPrite(PSP_WEAPON,ResolveState("Lower")); }
XZWB A 9 { player.SetPSPrite(PSP_WEAPON,ResolveState("Lower")); }
XZWB A 1;
XZWD WXY 1;
XZWE A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP);
XZWE BC 1;