diff --git a/language.version b/language.version index 889f9b35d..6862cccc7 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.2.21 r2 \cu(Tue 7 Jun 12:02:11 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.2.21 r2 \cu(2022-06-07 12:02:11)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.2.21 r3 \cu(Tue 7 Jun 12:06:43 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.2.21 r3 \cu(2022-06-07 12:06:43)\c-"; diff --git a/zscript/weapons/swwm_splode.zsc b/zscript/weapons/swwm_splode.zsc index c063eb8bf..90d9561af 100644 --- a/zscript/weapons/swwm_splode.zsc +++ b/zscript/weapons/swwm_splode.zsc @@ -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;