Unique voices for Mortal Rifle touchscreen and finger flick.

This commit is contained in:
Mari the Deer 2022-09-24 14:56:35 +02:00
commit edbc19ce64
14 changed files with 38 additions and 7 deletions

View file

@ -308,7 +308,7 @@ Class MisterRifle : SWWMWeapon
invoker.fired = false;
}
if ( bFlick && (player == players[consoleplayer]) && swwm_beepboop )
SWWMHandler.AddOneliner("buttonpush",2,0);
SWWMHandler.AddOneliner("mrflick",2,0);
}
action void A_DropCasing()
@ -331,7 +331,7 @@ Class MisterRifle : SWWMWeapon
if ( CheckLocalView() ) A_StartSound("mister/fireselect",CHAN_WEAPON,CHANF_OVERLAP);
invoker.firemode = (invoker.firemode+1)%4;
if ( (player == players[consoleplayer]) && swwm_beepboop )
SWWMHandler.AddOneliner("buttonpush",2,0);
SWWMHandler.AddOneliner("mrtouch",2,0);
}
action void A_MagOut()
@ -681,7 +681,7 @@ Class MisterRifle : SWWMWeapon
{
// pre-heat our ovens
A_StartSound("mister/chargeover",CHAN_WEAPON,CHANF_OVERLAP);
A_StartSound("mister/holdover",CHAN_WEAPONEXTRA,CHANF_LOOPING,.01,4.);
A_StartSound("mister/holdover",CHAN_WEAPONEXTRA,CHANF_LOOPING,.01,4.,.5);
invoker.prefirecnt = 0;
}
@ -697,6 +697,7 @@ Class MisterRifle : SWWMWeapon
if ( invoker.prefirecnt == 99 ) invoker.holdtic = gametic;
invoker.prefirecnt = min(100,int(invoker.prefirecnt+1));
A_SoundVolume(CHAN_WEAPONEXTRA,clamp(invoker.prefirecnt*.01,.01,1.));
A_SoundPitch(CHAN_WEAPONEXTRA,clamp(.5+invoker.prefirecnt*.005,.5,1.)**.5);
if ( (invoker.prefirecnt >= 100) && !((gametic-invoker.holdtic)%32) && CheckLocalView() )
A_StartSound("mister/beepover",CHAN_WEAPON,CHANF_OVERLAP);
return A_JumpIf((invoker.prefirecnt>=100)&&!(player.cmd.buttons&BT_ATTACK),"FireOverpressureRelease");

View file

@ -22,11 +22,17 @@ extend Class SWWMHandler
// suppress non-rage comments when ragekit is active, only screaming allowed
if ( players[consoleplayer].mo.FindInventory("RagekitPower") && (type != "ragekit") ) return 0;
// suppress beep-boop lines if voice channel already in use
if ( (type == "buttonpush")
if ( ((type == "buttonpush") || (type == "mrtouch") || (type == "mrflick"))
&& players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE)
&& !players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE,"voice/default/buttonpush1")
&& !players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE,"voice/default/buttonpush2")
&& !players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE,"voice/default/buttonpush3") ) return 0;
&& !players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE,"voice/default/buttonpush3")
&& !players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE,"voice/default/mrtouch1")
&& !players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE,"voice/default/mrtouch2")
&& !players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE,"voice/default/mrtouch3")
&& !players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE,"voice/default/mrtouch4")
&& !players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE,"voice/default/mrflick1")
&& !players[consoleplayer].mo.IsActorPlayingSound(CHAN_DEMOVOICE,"voice/default/mrflick2") ) return 0;
// check first if it's a multiple option line type
String testme = String.Format("SWWM_SUBS_%s_N%s",voicetype.MakeUpper(),type.MakeUpper());
String locme = StringTable.Localize(testme,false);