Option to disable shake (quake) effects
Moderator: GZDoom Developers
Option to disable shake (quake) effects
Sometimes screen shake effect is overused, for example in Winter's Fury (boss battles) or Pirates! (effects of shooting cannon and machine gun weapons). For me even slightest screen shakes give eye pain, some other people complained too. Sometimes even editing wads isn't a way to go, when there are too many instances to edit, it's more work than it's worth... So a menu option to disable all quake effects would be very helpful.
Re: Option to disable shake (quake) effects
A menu option would be nice, since I've heard some other people that get motion sickness with it too, but until it's implemented (if it will), there is a quick way to edit these mods:
Open their DECORATE with Slade ---> go to find and replace mode ---> find a_quake and replace with //a_quake
It will replace all entries at once.
It should fix all guns. Of course this is one hell of a hack, you will still get scripted quakes, I don't know if Radious_quake can be used in decorate, you can try doing the same with that one too.
Open their DECORATE with Slade ---> go to find and replace mode ---> find a_quake and replace with //a_quake
It will replace all entries at once.
It should fix all guns. Of course this is one hell of a hack, you will still get scripted quakes, I don't know if Radious_quake can be used in decorate, you can try doing the same with that one too.
Re: Option to disable shake (quake) effects
Almost all action functions can be used in DECORATE. The exceptions are those that can only be placed on lines. (E.g., you cannot put Line_SeIdentification in DECORATE code, but then again, it'd be completely useless anyway.)
Re: Option to disable shake (quake) effects
"Found 0 occurences"Arch wrote: Open their DECORATE with Slade ---> go to find and replace mode ---> find a_quake and replace with //a_quake

In projectmsx decorate there are only names of the individual weapon files. In these files there is no quake, but recoil sounds like a culprit. Changing it to 0 gives no effect.
Code: Select all
// BARRACUDA BA27-SC ASSAULT RIFLE
//////////////////////
actor barracudarifle : weapon replaces Chaingun{
weapon.selectionorder 150
inventory.pickupsound "weapons/ar_clipin"
inventory.pickupmessage "Barracuda BA27-SC Assault Rifle"
weapon.ammotype "barraclip"
weapon.ammotype2 "arifle_ammobox"
weapon.ammouse 1
weapon.ammogive2 18
weapon.kickback 100
weapon.bobstyle inverse
weapon.bobrangeX 0.4
weapon.bobrangeY 0.75
weapon.bobspeed 2.5
scale 0.32
+AMMO_OPTIONAL
+NOALERT
+WEAPON.NOAUTOAIM
states{
spawn:
ARXW A -1
loop
ready:
ARXI A 1 A_WeaponReady
NULL A 0 A_JumpIfInventory("TossGrenade", 1, "Grenade")
TNT1 A 0 A_JumpIfInventory("SprintingPlayer", 1, "Sprint")
NULL A 0 A_JumpIfInventory("AltFuncSwitch", 1, "ZoomWeapon")
NULL A 0 A_JumpIfInventory("ReloadingWeapon",1,"Reload")
loop
readyzoom:
ARZI A 1 A_WeaponReady(WRF_NOBOB)
NULL A 0 A_JumpIfInventory("AltFuncSwitch", 1, "UnZoomWeapon")
TNT1 A 0 A_JumpIfInventory("SprintingPlayer", 1, "UnZoom2Sprint")
NULL A 0 A_JumpIfInventory("TossGrenade", 1, "UnZoom2Gren")
NULL A 0 A_JumpIfInventory("ReloadingWeapon",1,"UnZoom2Relo")
loop
UnZoom2Sprint:
TNT1 A 0 ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0)
TNT1 A 0 A_ZoomFactor(1.0)
ARZU EDCBA 1
TNT1 A 0 A_TakeInventory("barrazoom", 1)
Sprint:
TNT1 A 0 A_JumpIfInventory("PlayerStamina", 1, "SprStart")
TNT1 A 0 A_TakeInventory("SprintingPlayer",1)
goto ready
SprStart:
TNT1 A 0 A_PlaySound("sfx/sprintstart",CHAN_AUTO)
TNT1 A 0 ACS_NamedExecute("Player-ChangeSpeed",0,200,0,0)
TNT1 A 0 A_SetBlend("49 99 0",0.4,15)
TNT1 A 0 A_Recoil(-15)
ARXS ABCDE 1
TNT1 A 0 A_JumpIfInventory("SprintingPlayer", 1, "SprLoop1")
goto SprEnd
SprLoop1:
TNT1 A 0 A_JumpIfInventory("PlayerStamina", 1, "SL1")
TNT1 A 0 A_TakeInventory("SprintingPlayer",1)
goto SprEnd
SL1:
ARXS E 1 Offset(-14,33)
//ARXS E 1 Offset(-27,36)
ARXS E 1 Offset(-34,39)
ARXS E 1 Offset(-40,44)
ARXS E 1 Offset(-43,47)
ARXS E 1 Offset(-44,50)
TNT1 A 0 A_JumpIfInventory("SprintingPlayer", 1, "SprLoop2")
goto SprEnd
SprLoop2:
TNT1 A 0 A_JumpIfInventory("PlayerStamina", 1, "SL2")
TNT1 A 0 A_TakeInventory("SprintingPlayer",1)
goto SprEnd
SL2:
ARXS E 1 Offset(-44,50)
//ARXS E 1 Offset(-43,47)
ARXS E 1 Offset(-40,44)
ARXS E 1 Offset(-34,39)
ARXS E 1 Offset(-27,36)
ARXS E 1 Offset(-14,33)
TNT1 A 0 A_TakeInventory("PlayerStamina", 4)
TNT1 A 0 A_JumpIfInventory("SprintingPlayer", 1, "SprLoop3")
goto SprEnd
SprLoop3:
TNT1 A 0 A_JumpIfInventory("PlayerStamina", 1, "SL3")
TNT1 A 0 A_TakeInventory("SprintingPlayer",1)
goto SprEnd
SL3:
ARXS E 1 Offset(14,33)
//ARXS E 1 Offset(27,36)
ARXS E 1 Offset(34,39)
ARXS E 1 Offset(40,44)
ARXS E 1 Offset(43,47)
ARXS E 1 Offset(44,50)
TNT1 A 0 A_JumpIfInventory("SprintingPlayer", 1, "SprLoop4")
goto SprEnd
SprLoop4:
TNT1 A 0 A_JumpIfInventory("PlayerStamina", 1, "SL4")
TNT1 A 0 A_TakeInventory("SprintingPlayer",1)
goto SprEnd
SL4:
ARXS E 1 Offset(44,50)
//ARXS E 1 Offset(43,47)
ARXS E 1 Offset(40,44)
ARXS E 1 Offset(34,39)
ARXS E 1 Offset(27,36)
ARXS E 1 Offset(14,33)
TNT1 A 0 A_TakeInventory("PlayerStamina", 4)
TNT1 A 0 A_JumpIfInventory("SprintingPlayer", 1, "SprLoop1")
SprEnd:
TNT1 A 0 ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0)
TNT1 A 0 A_PlaySound("sfx/sprintend",CHAN_AUTO)
ARXS EDCBA 1 Offset(-8,38)
goto ready
select:
TNT1 A 0 A_SetCrosshair(10)
TNT1 A 0 A_JumpIfInventory("gtoss_weaponmemory",13,"GrenadeEnd")
NULL A 8
NULL A 0 A_TakeInventory("AltFuncSwitch", 1)
NULL A 0 A_TakeInventory("barrazoom", 1)
ARXU F 1 A_PlaySound("weapons/ar_select", CHAN_WEAPON)
ARXU EDCBA 1
NULL A 0 A_GiveInventory("xhair_switch", 1)
selectLoop:
ARXI A 1 A_Raise
Goto selectLoop
deselect:
NULL A 0 A_TakeInventory("xhair_switch", 1)
NULL A 0 A_TakeInventory("arifle_acc", 50)
NULL A 0 ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0)
NULL A 0 A_ZoomFactor(1.0,ZOOM_INSTANT)
ARXU A 1 A_PlaySound("weapons/ar_deselect", CHAN_WEAPON)
ARXU BCDEF 1
NULL A 2
deselectLoop:
NULL A 1 A_Lower
Goto deselectLoop
fire:
TNT1 A 0 A_JumpIfInventory("barrazoom", 1, "zoomedfire")
TNT1 A 0 A_JumpIfInventory("barraclip", 1, 3)
ARXI A 1 A_PlayWeaponSound("weapons/noammo")
ARXI A 4
goto Ready
TNT1 A 0 A_PlayWeaponSound("weapons/ar_fire")
TNT1 A 0 A_AlertMonsters
TNT1 A 0 A_GunFlash("NormFlash")
/*
TNT1 A 0 A_JumpIfInventory("arifle_acc", 27, "FrAcc9")
TNT1 A 0 A_JumpIfInventory("arifle_acc", 24, "FrAcc8")
TNT1 A 0 A_JumpIfInventory("arifle_acc", 21, "FrAcc7")
*/
TNT1 A 0 A_JumpIfInventory("arifle_acc", 18, "FrAcc6")
TNT1 A 0 A_JumpIfInventory("arifle_acc", 15, "FrAcc5")
TNT1 A 0 A_JumpIfInventory("arifle_acc", 12, "FrAcc4")
TNT1 A 0 A_JumpIfInventory("arifle_acc", 9, "FrAcc3")
TNT1 A 0 A_JumpIfInventory("arifle_acc", 6, "FrAcc2")
TNT1 A 0 A_JumpIfInventory("arifle_acc", 3, "FrAcc1")
FrAcc0:
TNT1 A 1 A_FireBullets (1,0,-1, 29 ,"arifle_impact",FBF_NORANDOM | FBF_USEAMMO)
TNT1 A 0 A_GiveInventory("arifle_acc", 9)
goto FireLast
FrAcc1:
TNT1 A 1 A_FireBullets (1,1,-1, 29 ,"arifle_impact",FBF_NORANDOM | FBF_USEAMMO)
TNT1 A 0 A_GiveInventory("arifle_acc", 9)
goto FireLast
FrAcc2:
TNT1 A 1 A_FireBullets (2,1,-1, 29 ,"arifle_impact",FBF_NORANDOM | FBF_USEAMMO)
TNT1 A 0 A_GiveInventory("arifle_acc", 9)
goto FireLast
FrAcc3:
TNT1 A 1 A_FireBullets (2,2,-1, 29 ,"arifle_impact",FBF_NORANDOM | FBF_USEAMMO)
TNT1 A 0 A_GiveInventory("arifle_acc", 9)
goto FireLast
FrAcc4:
TNT1 A 1 A_FireBullets (3,2,-1, 29 ,"arifle_impact",FBF_NORANDOM | FBF_USEAMMO)
TNT1 A 0 A_GiveInventory("arifle_acc", 9)
goto FireLast
FrAcc5:
TNT1 A 1 A_FireBullets (3,3,-1, 29 ,"arifle_impact",FBF_NORANDOM | FBF_USEAMMO)
TNT1 A 0 A_GiveInventory("arifle_acc", 9)
goto FireLast
FrAcc6:
TNT1 A 1 A_FireBullets (4,3,-1, 29 ,"arifle_impact",FBF_NORANDOM | FBF_USEAMMO)
TNT1 A 0 A_GiveInventory("arifle_acc", 9)
goto FireLast
/*
FrAcc7:
TNT1 A 1 A_FireBullets (8,8,-1,13,"arb_puff",1)
TNT1 A 0 A_GiveInventory("arifle_acc", 12)
goto FireLast
FrAcc8:
TNT1 A 1 A_FireBullets (9,9,-1,13,"arb_puff",1)
TNT1 A 0 A_GiveInventory("arifle_acc", 12)
goto FireLast
FrAcc9:
TNT1 A 1 A_FireBullets (10,10,-1,13,"arb_puff",1)
TNT1 A 0 A_GiveInventory("arifle_acc", 12)
goto FireLast
*/
FireLast:
TNT1 A 1
TNT1 A 0 ACS_NamedExecute("Weapon-Recoil",0,12,random(-9,0),0)
TNT1 A 0 A_FireCustomMissile("arcasing_spawner",0,0,0,4,0)
ARXC BA 1
Goto ready
NormFlash:
TNT1 A 0 A_Jump(255, "firef1", "firef2", "firef3")
TNT1 A 0
firef1:
ARXF A 1 bright A_Light2
ARXF D 1 bright A_Light1
TNT1 A 1 A_Light0
stop
firef2:
ARXF B 1 bright A_Light2
ARXF E 1 bright A_Light1
TNT1 A 1 A_Light0
stop
firef3:
ARXF C 1 bright A_Light2
ARXF F 1 bright A_Light1
TNT1 A 1 A_Light0
stop
zoomedfire:
TNT1 A 0 A_JumpIfInventory("barraclip", 1, 3)
ARZI A 1 A_PlaySound("weapons/noammo")
ARZI A 4
goto readyzoom
TNT1 A 0 A_PlayWeaponSound("weapons/ar_fire")
TNT1 A 0 A_AlertMonsters
TNT1 A 0 A_GunFlash("zoomflash")
TNT1 A 1 bright A_FireBullets (0,0,1, 28 ,"arifle_impact",FBF_NORANDOM | FBF_USEAMMO)
TNT1 A 1
TNT1 A 0 ACS_NamedExecute("Weapon-Recoil",0,15,random(-15,15),0)
TNT1 A 0 A_FireCustomMissile("arcasing_spawner2",0,0,0,4,0)
ARZC CB 1
goto readyzoom
ZoomFlash:
TNT1 A 0 A_Jump(255, "zfiref1", "zfiref2", "zfiref3")
TNT1 A 0
zfiref1:
ARZF A 1 bright A_Light2
ARZF D 1 bright A_Light1
TNT1 A 1 A_Light0
stop
zfiref2:
ARZF B 1 bright A_Light2
ARZF E 1 bright A_Light1
TNT1 A 1 A_Light0
stop
zfiref3:
ARZF C 1 bright A_Light2
ARZF F 1 bright A_Light1
TNT1 A 1 A_Light0
stop
ZoomWeapon:
TNT1 A 0 A_GiveInventory("barrazoom", 1)
TNT1 A 0 A_TakeInventory("AltFuncSwitch", 1)
TNT1 A 0 A_TakeInventory("arifle_acc", 50)
TNT1 A 0 ACS_NamedExecute("Player-ChangeSpeed",0,50,0,0)
TNT1 A 0 A_ZoomFactor(2.0)
ARZU ABCDE 1
goto readyzoom
UnZoomWeapon:
TNT1 A 0 ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0)
TNT1 A 0 A_ZoomFactor(1.0)
TNT1 A 0 A_TakeInventory("AltFuncSwitch", 1)
ARZU EDCBA 1
TNT1 A 0 A_TakeInventory("barrazoom", 1)
TNT1 A 0 A_JumpIfInventory("ReloadingWeapon",1,"Reload")
goto ready
QuickUnZoom:
NULL A 0 A_ZoomFactor(1.0,ZOOM_INSTANT)
//NULL A 0 A_TakeInventory("AltFuncSwitch", 2)
NULL A 0 A_TakeInventory("barrazoom", 1)
NULL A 0 A_JumpIfInventory("TossGrenade", 1, "Grenade")
//NULL A 0 A_JumpIfInventory("ReloadingWeapon",1,"Reload")
goto ready
UnZoom2Relo:
TNT1 A 0 ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0)
TNT1 A 0 A_ZoomFactor(1.0)
ARZU EDCBA 1
TNT1 A 0 A_TakeInventory("barrazoom", 1)
//TNT1 A 0 A_TakeInventory("AltFuncSwitch", 2)
Reload:
NULL A 0 A_JumpIfInventory("barraclip", 36, 2)
NULL A 0 A_JumpIfInventory("arifle_ammobox", 1, 2)
NULL A 0
goto ready
TNT1 A 0 A_GiveInventory("xhair_hold", 1)
TNT1 A 0 A_GiveInventory("arifle_acc", 28) //
ARRS ABCDEF 1
ARRS G 1 A_PlaySound("weapons/ar_clipout", CHAN_WEAPON)
ARRS HIJK 1
ARRS L 12 //hold
ARRS MNOP 1
ARRS Q 2 A_PlaySound("weapons/ar_clipin", CHAN_WEAPON)
TNT1 A 0 A_JumpIfInventory("barraclip", 1, "Reload_FillClipB")
Reload_FillClipA:
NULL A 0 A_TakeInventory("arifle_ammobox",1)
NULL A 0 A_GiveInventory("barraclip",1)
NULL A 0 A_JumpIfInventory("barraclip",36,"ReloadFinish_Long")
NULL A 0 A_JumpIfInventory("arifle_ammobox",1,"Reload_FillClipA")
ReloadFinish_Long:
ARRL ABC 1
ARRL D 7//small hold
ARRL EFGH 1
ARRL I 3 A_PlaySound("weapons/ar_pinpull", CHAN_WEAPON) //small hold / pin sound
ARRL J 1
ARRL K 8 //small hold
TNT1 A 0 A_TakeInventory("xhair_hold", 1)
ARRL LMNOPQR 1
goto ready
//ARXR X 1 A_PlaySound("weapons/ar_clipin2", CHAN_WEAPON)
Reload_FillClipB:
NULL A 0 A_TakeInventory("arifle_ammobox",1)
NULL A 0 A_GiveInventory("barraclip",1)
NULL A 0 A_JumpIfInventory("barraclip",36,"ReloadFinish_Quick")
NULL A 0 A_JumpIfInventory("arifle_ammobox",1,"Reload_FillClipB")
ReloadFinish_Quick:
ARRQ ABC 1
ARRQ D 7 //small hold
TNT1 A 0 A_TakeInventory("xhair_hold", 1)
ARRQ BEFGHIJK 1
goto ready
UnZoom2Gren:
TNT1 A 0 A_JumpIfInventory("grenades", 1, 2)
TNT1 A 0
goto readyzoom
TNT1 A 0 ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0)
TNT1 A 0 A_ZoomFactor(1.0)
ARZU EDCBA 1
TNT1 A 0 A_TakeInventory("barrazoom", 1)
//TNT1 A 0 A_TakeInventory("AltFuncSwitch", 2)
Grenade:
TNT1 A 0 A_JumpIfInventory("grenades", 1, 2)
TNT1 A 0
goto ready
ARXG ABCDEFG 1
TNT1 A 0 A_GiveInventory("gtoss_weaponmemory", 13)
TNT1 A 0 A_SelectWeapon("grenade_toss")
goto deselectLoop
GrenadeEnd:
TNT1 A 0 A_TakeInventory("gtoss_weaponmemory",99)
ARXG GFEDCBA 1
goto selectLoop
AltFire:
TNT1 A 0 A_JumpIfInventory("barrazoom", 1, 2)
TNT1 A 0
goto altfire+7
TNT1 A 0 ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0)
TNT1 A 0 A_ZoomFactor(1.0)
ARZU DCB 1
NULL A 0 A_TakeInventory("barrazoom", 1)
ARXM C 1 A_Recoil(-6)
NULL A 0 A_PlayWeaponSound("sfx/meleeswing")
ARXM EGJ 1
ARXM L 9 A_CustomPunch ((164+random(1,32)), 1 , 0 , "meleepuff",88)
ARXM KJIHGFEDCBA 1
goto ready
}
}
actor barraclip : Ammo{
Inventory.MaxAmount 36
Inventory.Icon "NULLA0"
}
actor barrazoom : inventory{
inventory.maxamount 1
}
actor arifle_acc : Inventory {
-INVBAR
Inventory.icon "CBALH0"
Inventory.Amount 1
Inventory.MaxAmount 28
}
actor arifle_impact{
Radius 1
Height 1
Alpha 1
DamageType arifle_damage
RenderStyle ADD
Scale 0.21
+NOGRAVITY
+NOBLOCKMAP
+FLOORCLIP
+NOTELEPORT
+FORCEXYBILLBOARD
+NOEXTREMEDEATH
+NOINTERACTION
+PUFFONACTORS
States{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySound("sfx/bulletric")
TNT1 A 0 A_SpawnItemEx ("arifle_flare", 0, 0, 0, 0,0,0, 0)
TNT1 AAAAA 0 A_SpawnItemEx ("arifle_spark", 0, 0, 0, frandom(0.5,1.0), random(3,5) , random(0,6) , random(0,180))
TNT1 AA 0 A_SpawnItemEx ("arifle_spark2", 0, 0, 0, frandom(0.5,1.0), random(3,5) , random(0,6) , random(0,180))
TNT1 AA 0 A_SpawnItemEx ("arifle_smoke", 0, 0, 0, 0, frandom(-0.3,0.3) , frandom(0,0.35) , random(0,180))
TNT1 A 0 A_Jump(255, "Puff1","Puff2","Puff3","Puff4")
Puff1:
IPF2 AAA 1 bright A_SetScale (scaleX * 0.9 ,scaleY * 0.9)
stop
Puff2:
IPF2 BBB 1 bright A_SetScale (scaleX * 0.9 ,scaleY * 0.9)
stop
Puff3:
IPF2 CCC 1 bright A_SetScale (scaleX * 0.9 ,scaleY * 0.9)
stop
Puff4:
IPF2 DDD 1 bright A_SetScale (scaleX * 0.9 ,scaleY * 0.9)
stop
xdeath:
TNT1 A 0
stop
}
}
actor arifle_flare {
scale 0.21
alpha 1.0
renderstyle add
+NOINTERACTION
+FORCEXYBILLBOARD
+NOTELEPORT
states {
spawn:
LEYS O 3
spawnloop:
LEYS O 1 bright A_FadeOut(0.25)
loop
}
}
actor arifle_spark {
radius 2
height 2
alpha 1
scale 0.028
gravity 0.4
renderstyle add
+NOTELEPORT
+FLOORCLIP
+FORCEXYBILLBOARD
bouncetype "doom"
bouncefactor 0.2
states{
spawn:
SPRK AAA 2 bright A_ScaleVelocity(0.9)
spawnloop:
TNT1 A 0 A_ScaleVelocity(0.9)
SPRK A 1 bright A_FadeOut(0.1)
loop
}
}
actor arifle_spark2 : arifle_spark {
scale 0.032
gravity 0.3
states{
spawn:
SPRK CCCCC 2 bright A_ScaleVelocity(0.9)
spawnloop:
TNT1 A 0 A_ScaleVelocity(0.9)
SPRK C 1 bright A_FadeOut(0.1)
loop
}
}
actor arifle_smoke {
scale 0.12
alpha 0.45
renderstyle add
+NOTELEPORT
+FORCEXYBILLBOARD
+NOINTERACTION
states{
spawn:
TNT1 A 3
TNT1 A 0 A_Jump(255,"smoek1","smoek2","smoek3","smoek4","smoek5","smoek6")
smoek1:
TNT1 A 0 A_SetScale(ScaleX * 1.02, ScaleY * 1.02)
SMK1 A 2 A_Fadeout(0.015)
loop
smoek2:
TNT1 A 0 A_SetScale(ScaleX * 1.02, ScaleY * 1.02)
SMK1 B 2 A_Fadeout(0.015)
loop
smoek3:
TNT1 A 0 A_SetScale(ScaleX * 1.02, ScaleY * 1.02)
SMK1 C 2 A_Fadeout(0.015)
loop
smoek4:
TNT1 A 0 A_SetScale(ScaleX * 1.02, ScaleY * 1.02)
SMK1 D 2 A_Fadeout(0.015)
loop
smoek5:
TNT1 A 0 A_SetScale(ScaleX * 1.02, ScaleY * 1.02)
SMK1 E 2 A_Fadeout(0.015)
loop
smoek6:
TNT1 A 0 A_SetScale(ScaleX * 1.02, ScaleY * 1.02)
SMK1 F 2 A_Fadeout(0.015)
loop
}
}
actor arifle_casing {
scale 0.12
radius 2
height 2
speed 6
mass 4
bouncefactor 0.5
PROJECTILE
+DOOMBOUNCE
+NODROPOFF
+FORCEXYBILLBOARD
+NOTELEPORT
+FLOORCLIP
-NOGRAVITY
-NOBLOCKMAP
seesound "casings/ar_casing"
states{
spawn:
ARBC ABCDEF 2
loop
death:
NULL A 0 A_Jump(255, "pos1", "pos2", "pos3")
NULL A 0
pos1:
ARBC A 400
ARBC AAAAAAAAAA 1 A_FadeOut(0.1)
stop
pos2:
ARBC D 400
ARBC DDDDDDDDDD 1 A_FadeOut(0.1)
stop
pos3:
ARBC C 400
ARBC CCCCCCCCCC 1 A_FadeOut(0.1)
stop
}
}
actor arifle_casing2 : arifle_casing {
states{
spawn:
ARBC FABCDE 2
loop
death:
NULL A 0 A_Jump(255, "pos1", "pos2", "pos3")
NULL A 0
pos1:
ARBC A 400
ARBC AAAAAAAAAA 1 A_FadeOut(0.1)
stop
pos2:
ARBC D 400
ARBC DDDDDDDDDD 1 A_FadeOut(0.1)
stop
pos3:
ARBC C 400
ARBC CCCCCCCCCC 1 A_FadeOut(0.1)
stop
}
}
actor arcasing_spawner {
speed 15
PROJECTILE
+NOCLIP
states{
spawn:
NULL A 0
NULL A 1 A_SpawnItemEx("arifle_casing", 0, 10, 0, random(0,1), random(4,5), random(0,1), 0, SXF_TRANSFERPOINTERS)
stop
}
}
actor arcasing_spawner2 : arcasing_spawner {
states{
spawn:
NULL A 0
NULL A 1 A_SpawnItemEx("arifle_casing2", 0, 3, 0, random(0,1), random(4,5), random(0,1), 0, SXF_TRANSFERPOINTERS)
stop
}
}
Re: Option to disable shake (quake) effects
From my understanding, [wiki]A_Recoil[/wiki] moves the player backwards instead of merely shaking the screen.
However, who knows what it does in ACS with this line of code:
Since ACS is compiled, modifying it isn't as easy. You need to have the sources available, and to recompile them.
However, who knows what it does in ACS with this line of code:
Code: Select all
ACS_NamedExecute("Weapon-Recoil",0,12,random(-9,0),0)
Re: Option to disable shake (quake) effects
Really, there is no way to mitigate this recoil effect by wad editing?
Re: Option to disable shake (quake) effects
To my mind, the biggest problem with this suggestion is that I don't think it would do what the OP wants, not reliably any way. There are quite a few different ways to create weapon recoil effects and these can shake the screen in a number of different ways. Adding an option to disable quakes might be an easy thing to do (frankly, I don't know - but it seems like it might be) and it wouldn't bother me if it was added but I can easily think of about three or four other recoil/shake methods that would need separate handling (and there could well be more). Doing so would quickly get messy, I suspect, and could even have undesirable effects if something was disabled when the same feature was used for a different purpose elsewhere in the mod.
Dare I suggest that the way to address the problem of a particular mod being actually physically painful to play might be to not play it? I know that would mean missing out and is a bit of a "sucks for you" attitude though.
Dare I suggest that the way to address the problem of a particular mod being actually physically painful to play might be to not play it? I know that would mean missing out and is a bit of a "sucks for you" attitude though.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49252
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Option to disable shake (quake) effects
The effect of Hexen's quake is purely visual and can easily be disabled (or reduced, my preference would be a slider setting a factor between 0 and 1) but any other means to create screen shaking take place within the playsim and there's absolutely no way to get rid of them except for recoding the actions producing them.
Re: Option to disable shake (quake) effects
I believe this feature will pretty much solve OP's and many others motion sickness problems 

- TheDarkArchon
- Posts: 7656
- Joined: Sat Aug 07, 2004 5:14 am
- Location: Some cold place
Re: Option to disable shake (quake) effects
The source for Project MSX (which the code comes from) is available; It's in acs/scripts.txtGez wrote:
Since ACS is compiled, modifying it isn't as easy. You need to have the sources available, and to recompile them.
- Ed the Bat
- Posts: 3060
- Joined: Thu May 03, 2012 1:18 pm
- Graphics Processor: nVidia with Vulkan support
- Location: Maryland, US
- Contact:
Re: Option to disable shake (quake) effects
Is the effect of damaging actors with a quake not part of Hexen? Will this intensity affect that?Graf Zahl wrote:The effect of Hexen's quake is purely visual...
Re: Option to disable shake (quake) effects
The screenshaking effect of Hexen's [wiki]earthquake[/wiki] is purely visual. (Sectors and actors aren't physically moved.) The damage and sound effects aren't affected by the CVAR.
- Ed the Bat
- Posts: 3060
- Joined: Thu May 03, 2012 1:18 pm
- Graphics Processor: nVidia with Vulkan support
- Location: Maryland, US
- Contact:
Re: Option to disable shake (quake) effects
Sounds good to me. I've used a few quakes for the sake of damaging/thrusting players. Wouldn't want those disabled by a menu option.