diff --git a/cvarinfo.txt b/cvarinfo.txt index 2f13ce2..7ddad09 100644 --- a/cvarinfo.txt +++ b/cvarinfo.txt @@ -41,3 +41,4 @@ server bool flak_gibs = false; // [WIP/UNSTABLE] use doom tournament gibbing server bool flak_doomtest = false; // made toggleable due to loud complaints server bool flak_dmsshock = false; // allow enhanced shock rifle on deathmatch (otherwise they are replaced with udamage) server noarchive bool flak_instagib = false; // instagib mode (only for dm) - this cvar has to be set from the command line +user float flak_flashstrength = 1.0; // strength of screen flashes diff --git a/language.txt b/language.txt index 24eacd4..b6a0742 100644 --- a/language.txt +++ b/language.txt @@ -213,6 +213,7 @@ FLAK_UBLOD = "UT blood"; FLAK_UGIB = "[WIP] UT gibbing"; FLAK_UCORPS = "[WIP] Corpses take damage"; FLAK_DTEST = "Edit Kinsie's test map"; +FLAK_FSTRENGTH = "Screen flash strength"; [es esm esn esg esc esa esd esv eso esr ess esf esl esy esz esb ese esh esi esu] /* Obituaries */ @@ -413,6 +414,7 @@ FLAK_UBLOD = "Sangre de UT"; FLAK_UGIB = "[WIP] Vísceras de UT"; FLAK_UCORPS = "[WIP] Los cadáveres reciben daño"; FLAK_DTEST = "Editar mapa de pruebas de Kinsie"; +FLAK_FSTRENGTH = "Intensidad de destellos en pantalla"; [fr] diff --git a/menudef.txt b/menudef.txt index df0252c..071a28f 100644 --- a/menudef.txt +++ b/menudef.txt @@ -29,6 +29,7 @@ OptionMenu "UTOptionMenu" Option "$FLAK_CSSHOCK", "flak_classicsshock", "YesNo" Option "$FLAK_RECOIL", "flak_swingers", "YesNo" Slider "$FLAK_RSTRENGTH", "flak_swingerstrength", 0.0, 1.0, 0.1, 1 + Slider "$FLAK_FSTRENGTH", "flak_flashstrength", 0.0, 1.0, 0.1, 1 StaticText " " StaticText "$FLAK_IOPTS", "Gold" Option "$FLAK_RADBOOTS", "flak_radboots", "YesNo" diff --git a/zscript/biorifle.zsc b/zscript/biorifle.zsc index dc291d0..8882902 100644 --- a/zscript/biorifle.zsc +++ b/zscript/biorifle.zsc @@ -158,7 +158,7 @@ Class BioXLight : DynamicLight override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; args[LIGHT_RED] = int(64*lifetime); args[LIGHT_GREEN] = int(255*lifetime); args[LIGHT_BLUE] = int(48*lifetime); @@ -211,7 +211,7 @@ Class BioGel : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; if ( !bNOGRAVITY ) { roll += rollvel; @@ -624,7 +624,7 @@ Class BioGlob : BioGel override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; Vector3 ofs = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch)); for ( int i=0; i<2; i++ ) { diff --git a/zscript/enforcer.zsc b/zscript/enforcer.zsc index e43614e..bead7a8 100644 --- a/zscript/enforcer.zsc +++ b/zscript/enforcer.zsc @@ -120,7 +120,7 @@ Class UTCasing : Actor override void Tick() { Super.Tick(); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; if ( InStateSequence(CurState,ResolveState("Death")) ) { deadtimer++; diff --git a/zscript/flakcannon.zsc b/zscript/flakcannon.zsc index 881a12d..e93b66c 100644 --- a/zscript/flakcannon.zsc +++ b/zscript/flakcannon.zsc @@ -55,7 +55,7 @@ Class ChunkLight : DynamicLight Destroy(); return; } - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; args[LIGHT_RED] = int(255*(10-target.frame)*0.1); args[LIGHT_GREEN] = int(224*(10-target.frame)*0.1); args[LIGHT_BLUE] = int(128*(10-target.frame)*0.1); @@ -84,7 +84,7 @@ Class ChunkTrail : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; if ( InStateSequence(CurState,FindState("Death")) ) return; if ( !target ) { @@ -196,7 +196,7 @@ Class FlakChunk : Actor { oldvel = vel; Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; if ( waterlevel > 0 ) { vel.xy *= 0.98; @@ -396,7 +396,7 @@ Class SlugSmoke : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; lifetime += lifespeed; let s = Spawn("UTSmoke",pos); s.vel = (FRandom[Flak](-0.5,0.5),FRandom[Flak](-0.5,0.5),FRandom[Flak](-0.5,0.5)); @@ -430,7 +430,7 @@ Class SlugLight : DynamicLight override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; args[LIGHT_RED] = int(255*lifetime); args[LIGHT_GREEN] = int(224*lifetime); args[LIGHT_BLUE] = int(128*lifetime); diff --git a/zscript/minigun.zsc b/zscript/minigun.zsc index 852f2c0..0964f85 100644 --- a/zscript/minigun.zsc +++ b/zscript/minigun.zsc @@ -47,7 +47,7 @@ Class MinigunTracer : Actor override void Tick() { Super.Tick(); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; Vector3 dir = level.Vec3Diff(pos,dest); if ( dir.length() < 160 ) { diff --git a/zscript/pulsegun.zsc b/zscript/pulsegun.zsc index dfd278e..22bcb84 100644 --- a/zscript/pulsegun.zsc +++ b/zscript/pulsegun.zsc @@ -91,7 +91,7 @@ Class ViewPulseSpark : PulseSpark Vector3 origin = x*ofs.x+y*ofs.y+z*ofs.z+(0,0,target.player.viewz); SetOrigin(target.Vec2OffsetZ(origin.x,origin.y,origin.z),true); bInvisible = (players[consoleplayer].camera != target); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; ofs += vvel; vvel *= 0.9; scale *= 0.8; @@ -149,7 +149,7 @@ Class PulseExplLight : DynamicLight override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; args[LIGHT_RED] = int(64*lifetime); args[LIGHT_GREEN] = int(255*lifetime); lifetime -= 1./ReactionTime; @@ -515,7 +515,7 @@ Class StarterBolt : PulseBolt override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; if ( !target ) { Destroy(); diff --git a/zscript/ripper.zsc b/zscript/ripper.zsc index 2053d9f..1cb0560 100644 --- a/zscript/ripper.zsc +++ b/zscript/ripper.zsc @@ -170,7 +170,7 @@ Class Razor2AltLight : DynamicLight override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; args[LIGHT_RED] = int(255*lifetime); args[LIGHT_GREEN] = int(240*lifetime); args[LIGHT_BLUE] = int(224*lifetime); diff --git a/zscript/shockrifle.zsc b/zscript/shockrifle.zsc index 1d24218..dd0dba0 100644 --- a/zscript/shockrifle.zsc +++ b/zscript/shockrifle.zsc @@ -72,7 +72,7 @@ Class ShockRifleWave : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; alpha -= 1/50.; } States @@ -99,7 +99,7 @@ Class SuperShockRifleWave : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; alpha -= 1/50.; } States @@ -127,7 +127,7 @@ Class ShockBeamRing : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; alpha -= 1./ReactionTime; } States @@ -154,7 +154,7 @@ Class SuperShockBeamRing : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; alpha -= 1./ReactionTime; } States @@ -295,7 +295,7 @@ Class ShockBeam : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; if ( !moving ) return; // step trace tracedir = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch)); @@ -528,7 +528,7 @@ Class SuperShockBeam : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; if ( !moving ) return; // step trace tracedir = (cos(angle)*cos(pitch),sin(angle)*cos(pitch),-sin(pitch)); @@ -780,7 +780,7 @@ Class ShockExplLight : DynamicLight override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; args[LIGHT_RED] = int(160*lifetime); args[LIGHT_GREEN] = int(128*lifetime); args[LIGHT_BLUE] = int(255*lifetime); @@ -806,7 +806,7 @@ Class SuperShockExplLight : DynamicLight override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; args[LIGHT_RED] = int(255*lifetime); args[LIGHT_GREEN] = int(160*lifetime); args[LIGHT_BLUE] = int(128*lifetime); @@ -997,7 +997,7 @@ Class ViewShockSpark : ShockSpark Vector3 origin = x*ofs.x+y*ofs.y+z*ofs.z+(0,0,target.player.viewz); SetOrigin(target.Vec2OffsetZ(origin.x,origin.y,origin.z),true); bInvisible = (players[consoleplayer].camera != target); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; ofs += vvel; vvel *= 0.9; scale *= 0.8; diff --git a/zscript/utcommon.zsc b/zscript/utcommon.zsc index fc6a0e3..01d31a0 100644 --- a/zscript/utcommon.zsc +++ b/zscript/utcommon.zsc @@ -957,7 +957,7 @@ Class UTViewSpark : UTSpark Vector3 origin = x*ofs.x+y*ofs.y+z*ofs.z+(0,0,target.player.viewz); SetOrigin(target.Vec2OffsetZ(origin.x,origin.y,origin.z),true); bInvisible = (players[consoleplayer].camera != target); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; ofs += vvel; vvel.z -= 0.1; scale *= 0.8; @@ -999,7 +999,7 @@ Class UTChip : Actor override void Tick() { Super.Tick(); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; if ( InStateSequence(CurState,ResolveState("Death")) ) { deadtimer++; @@ -1062,7 +1062,7 @@ Class UTBubble : Actor override void Tick() { Super.Tick(); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; vel *= 0.96; vel.z += 0.05; if ( (waterlevel <= 0) || !Random[Puff](0,100) ) Destroy(); @@ -1110,7 +1110,7 @@ Class UTSmoke : Actor override void Tick() { Super.Tick(); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; vel *= 0.96; vel.z += 0.01; A_FadeOut(1/32.); @@ -1202,7 +1202,7 @@ Class UTViewSmoke : UTSmoke Vector3 origin = x*ofs.x+y*ofs.y+z*ofs.z+(0,0,target.player.viewz); SetOrigin(target.Vec2OffsetZ(origin.x,origin.y,origin.z),true); bInvisible = (players[consoleplayer].camera != target); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; ofs += vvel; vvel *= 0.96; vvel.z += 0.01; @@ -1434,6 +1434,7 @@ Class GenericFlash : HUDMessageBase int duration; double alpha; Actor cam; + transient CVar str; GenericFlash Setup( Actor camera, Color c, int d ) { alpha = 1.0; @@ -1451,7 +1452,8 @@ Class GenericFlash : HUDMessageBase { if ( automapactive || (visibility != BaseStatusBar.HUDMSGLayer_UnderHUD) ) return; if ( cam && (players[consoleplayer].camera != cam) ) return; - Screen.Dim(col,(col.a/255.)*alpha,0,0,Screen.GetWidth(),Screen.GetHeight()); + if ( !str ) str = CVar.GetCVar('flak_flashstrength',players[consoleplayer]); + Screen.Dim(col,(col.a/255.)*alpha*str.GetFloat(),0,0,Screen.GetWidth(),Screen.GetHeight()); } } @@ -1671,7 +1673,7 @@ Class UTMainHandler : EventHandler { if ( (level.GetChecksum() ~== "FBC3B6622A8B74AE06DE01E70007AC33") || (level.GetChecksum() ~== "D8206A3414DA967F2159473B5791139E") ) { - TexMan.ReplaceTextures("-noflat-","DefTex",0); + Level.ReplaceTextures("-noflat-","DefTex",0); TextureID skytx = TexMan.CheckForTexture("BlueSky",TexMan.Type_Any); level.ChangeSky(skytx,skytx); } diff --git a/zscript/utgore.zsc b/zscript/utgore.zsc index 048d2ce..6fb73ed 100644 --- a/zscript/utgore.zsc +++ b/zscript/utgore.zsc @@ -156,7 +156,7 @@ Class UTBloodTrail : Actor override void Tick() { Super.Tick(); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; if ( !target ) return; SetOrigin(target.pos,true); double ang, pt; diff --git a/zscript/warheadlauncher.zsc b/zscript/warheadlauncher.zsc index 206c2d3..89992c3 100644 --- a/zscript/warheadlauncher.zsc +++ b/zscript/warheadlauncher.zsc @@ -48,7 +48,7 @@ Class ShockWave : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; if ( alpha <= 0 ) return; if ( !t ) t = ThinkerIterator.Create("Actor"); icount++; @@ -164,7 +164,7 @@ Class WarheadExplodLight : DynamicLight override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; args[LIGHT_RED] = int(255*lifetime); args[LIGHT_GREEN] = int(192*lifetime); args[LIGHT_BLUE] = int(128*lifetime); @@ -224,7 +224,7 @@ Class WarheadTrail : Actor override void Tick() { Super.Tick(); - if ( level.frozen || globalfreeze ) return; + if ( isFrozen() ) return; vel *= 0.99; A_FadeOut(0.1); } @@ -275,7 +275,7 @@ Class WarShell : Actor override void Tick() { Super.Tick(); - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; if ( !bMISSILE ) return; if ( vel.length() > 0 ) { @@ -375,7 +375,7 @@ Class GuidedWarShell : WarShell justleft = false; bHITOWNER = true; } - if ( globalfreeze || level.frozen ) return; + if ( isFrozen() ) return; if ( !bMISSILE ) return; if ( !target || !target.player || (target.Health <= 0) ) {