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

@ -1,3 +1,3 @@
[default] [default]
SWWM_MODVER="\cyDEMOLITIONIST \cw1.2.21 r2 \cu(Tue 7 Jun 12:02:11 CEST 2022)\c-"; SWWM_MODVER="\cyDEMOLITIONIST \cw1.2.21 r3 \cu(Tue 7 Jun 12:06:43 CEST 2022)\c-";
SWWM_SHORTVER="\cw1.2.21 r2 \cu(2022-06-07 12:02:11)\c-"; SWWM_SHORTVER="\cw1.2.21 r3 \cu(2022-06-07 12:06:43)\c-";

View file

@ -860,6 +860,9 @@ Class DualExplodiumGun : SWWMWeapon
int flg = WRF_NOSWITCH|WRF_NOSECONDARY; int flg = WRF_NOSWITCH|WRF_NOSECONDARY;
if ( !ExplodiumGun(invoker.SisterWeapon).chambered ) if ( !ExplodiumGun(invoker.SisterWeapon).chambered )
flg |= WRF_NOPRIMARY; 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); A_WeaponReady(flg);
} }
} }
@ -876,6 +879,9 @@ Class DualExplodiumGun : SWWMWeapon
player.SetPSprite(PSP_WEAPON+1,ResolveState("LeftReload")); player.SetPSprite(PSP_WEAPON+1,ResolveState("LeftReload"));
else if ( player.cmd.buttons&BT_ALTATTACK && invoker.chambered ) else if ( player.cmd.buttons&BT_ALTATTACK && invoker.chambered )
player.SetPSprite(PSP_WEAPON+1,ResolveState("LeftFire")); 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; Wait;
Fire: Fire:
@ -1077,7 +1083,8 @@ Class DualExplodiumGun : SWWMWeapon
XZW4 KLMNOP 2; XZW4 KLMNOP 2;
Goto Ready; Goto Ready;
Slide: 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; XZW4 WXY 1;
XZW5 A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP); XZW5 A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP);
XZW5 BC 1; XZW5 BC 1;
@ -1133,7 +1140,8 @@ Class DualExplodiumGun : SWWMWeapon
XZWD KLMNOP 2; XZWD KLMNOP 2;
Goto LeftReady; Goto LeftReady;
LeftSlide: 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; XZWD WXY 1;
XZWE A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP); XZWE A 1 A_StartSound("explodium/slideback",CHAN_WEAPON,CHANF_OVERLAP);
XZWE BC 1; XZWE BC 1;