From 65222b474cbe73df8bdafb0af8d8d745e508eb6b Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Fri, 8 Feb 2019 14:12:16 +0100 Subject: [PATCH 01/16] Experimental changes for F3DFloor export. Requires GZDoom PR (coelckers/gzdoom#732). --- zscript.txt | 8 +- zscript/biorifle.zsc | 25 +++++- .../{mk_coordutil.zsc => dt_coordutil.zsc} | 0 zscript/{mk_matrix.zsc => dt_matrix.zsc} | 0 .../{mk_quaternion.zsc => dt_quaternion.zsc} | 0 zscript/eightball.zsc | 7 ++ zscript/enforcer.zsc | 12 ++- zscript/flakcannon.zsc | 80 ++++++++++++++++--- zscript/minigun.zsc | 12 ++- zscript/pulsegun.zsc | 12 ++- zscript/shockrifle.zsc | 20 ++++- zscript/sniperrifle.zsc | 12 ++- 12 files changed, 157 insertions(+), 31 deletions(-) rename zscript/{mk_coordutil.zsc => dt_coordutil.zsc} (100%) rename zscript/{mk_matrix.zsc => dt_matrix.zsc} (100%) rename zscript/{mk_quaternion.zsc => dt_quaternion.zsc} (100%) diff --git a/zscript.txt b/zscript.txt index e2ceb1f..62a112f 100644 --- a/zscript.txt +++ b/zscript.txt @@ -1,8 +1,8 @@ -version "3.7" +version "3.8" -#include "zscript/mk_matrix.zsc" -#include "zscript/mk_coordutil.zsc" -#include "zscript/mk_quaternion.zsc" +#include "zscript/dt_matrix.zsc" +#include "zscript/dt_coordutil.zsc" +#include "zscript/dt_quaternion.zsc" #include "zscript/utgore.zsc" #include "zscript/utcommon.zsc" #include "zscript/impacthammer.zsc" diff --git a/zscript/biorifle.zsc b/zscript/biorifle.zsc index e13cf01..6538cb9 100644 --- a/zscript/biorifle.zsc +++ b/zscript/biorifle.zsc @@ -264,10 +264,10 @@ Class BioGel : Actor for ( int i=0; i 0 ) @@ -228,8 +231,62 @@ Class FlakChunk : Actor pitch += pitchvel; angle += pitchvel; } - action void A_HandleBounce() + void A_HandleBounce() { + // chunks in vanilla have a special variation on the standard reflect formula that causes them to bounce differently when hitting a surface head-on + // (0.5 to 0.8 reduction perpendicular to the surface normal, to be specific) + Vector3 HitNormal = -vel.unit(); + F3DFloor ff; + if ( BlockingFloor ) + { + // find closest 3d floor for its normal + for ( int i=0; i= (BlockingMobj.pos.x+BlockingMobj.radius) ) + HitNormal = (1,0,0); + else if ( (pos.y+radius) <= (BlockingMobj.pos.y-BlockingMobj.radius) ) + HitNormal = (0,-1,0); + else if ( (pos.y-radius) >= (BlockingMobj.pos.y+BlockingMobj.radius) ) + HitNormal = (0,1,0); + else if ( pos.z >= (BlockingMobj.pos.z+BlockingMobj.height) ) + HitNormal = (0,0,1); + else if ( (pos.z+height) <= BlockingMobj.pos.z ) + HitNormal = (0,0,-1); + } + // undo the bounce, we need to hook in our own + vel = oldvel; + // re-do the bounce with our formula + vel = 0.8*((vel dot HitNormal)*HitNormal*(-1.8+FRandom[Flak](0.0,0.8))+vel); bHITOWNER = true; int numpt = Random[Flak](2,3); if ( (frame < 10) && Random[Flak](0,1) ) @@ -244,13 +301,9 @@ Class FlakChunk : Actor else A_SprayDecal("WallCrack",-8); A_Gravity(); gravity = 0.35; - invoker.rollvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed); - invoker.pitchvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed); - invoker.yawvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed); - vel = (vel.unit()+(FRandom[Flak](-0.2,0.2),FRandom[Flak](-0.2,0.2),FRandom[Flak](-0.2,0.2))).unit()*vel.length(); - // TODO chunks in vanilla have a special variation on the standard reflect formula that causes them to bounce differently when hitting a surface head-on - // (0.5 to 0.8 reduction perpendicular to the surface normal, to be specific) - // I have no idea how I'll even implement this reduction reliably + rollvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed); + pitchvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed); + yawvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed); A_PlaySound("flak/bounce",volume:0.3); A_AlertMonsters(); if ( vel.length() < 5.0 ) ExplodeMissile(); @@ -302,7 +355,12 @@ Class FlakChunk : Actor Crash: TNT1 A 0 { - Spawn("BulletPuff",pos); + let l = Spawn("BulletImpact",pos); + Vector3 dir; + if ( tracer ) dir = level.Vec3Diff(pos,tracer.Vec3Offset(0,0,tracer.height/2)).unit(); + else dir = vel.unit(); + l.angle = atan2(dir.y,dir.x); + l.pitch = asin(-dir.z); A_PlaySound("flak/hit",volume:0.3); A_AlertMonsters(); } diff --git a/zscript/minigun.zsc b/zscript/minigun.zsc index f58e761..e0db43e 100644 --- a/zscript/minigun.zsc +++ b/zscript/minigun.zsc @@ -131,8 +131,16 @@ Class Minigun : UTWeapon else if ( d.HitType != TRACE_HitNone ) { Vector3 hitnormal = -d.HitDir; - if ( d.HitType == TRACE_HitFloor ) hitnormal = d.HitSector.floorplane.Normal; - else if ( d.HitType == TRACE_HitCeiling ) hitnormal = d.HitSector.ceilingplane.Normal; + if ( d.HitType == TRACE_HitFloor ) + { + if ( d.Hit3DFloor ) hitnormal = -d.Hit3DFloor.top.Normal; + else hitnormal = d.HitSector.floorplane.Normal; + } + else if ( d.HitType == TRACE_HitCeiling ) + { + if ( d.Hit3DFloor ) hitnormal = -d.Hit3DFloor.bottom.Normal; + else hitnormal = d.HitSector.ceilingplane.Normal; + } else if ( d.HitType == TRACE_HitWall ) { hitnormal = (-d.HitLine.delta.y,d.HitLine.delta.x,0).unit(); diff --git a/zscript/pulsegun.zsc b/zscript/pulsegun.zsc index 1af81a2..abcb7a2 100644 --- a/zscript/pulsegun.zsc +++ b/zscript/pulsegun.zsc @@ -397,8 +397,16 @@ Class PulseBolt : Actor if ( t.Results.Side ) norm *= -1; t.Results.HitLine.RemoteActivate(tracer,t.Results.Side,SPAC_Impact,t.Results.HitPos); } - else if ( t.Results.HitType == TRACE_HitFloor ) norm = t.Results.HitSector.floorplane.Normal; - else if ( t.Results.HitType == TRACE_HitCeiling ) norm = t.Results.HitSector.ceilingplane.Normal; + else if ( t.Results.HitType == TRACE_HitFloor ) + { + if ( t.Results.ffloor ) norm = -t.Results.ffloor.top.Normal; + else norm = t.Results.HitSector.floorplane.Normal; + } + else if ( t.Results.HitType == TRACE_HitCeiling ) + { + if ( t.Results.ffloor ) norm = -t.Results.ffloor.bottom.Normal; + else norm = t.Results.HitSector.ceilingplane.Normal; + } int numpt = Random[Pulse](10,20)*!Random[Pulse](0,2); for ( int i=0; i Date: Fri, 8 Feb 2019 15:18:36 +0100 Subject: [PATCH 02/16] Small fixes from devel branch. --- zscript/eightball.zsc | 2 +- zscript/utcommon.zsc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/zscript/eightball.zsc b/zscript/eightball.zsc index 1094607..b2d4782 100644 --- a/zscript/eightball.zsc +++ b/zscript/eightball.zsc @@ -313,7 +313,7 @@ Class UTRocketLauncher : UTWeapon crosshair = 0; return; } - if ( LockedOn && (!LockedTarget || (LockedTarget.Health <= 0) || !LockedTarget.bIsMonster || LockedTarget.bKilled || LockedTarget.bCorpse || !LockedTarget.bShootable) ) + if ( LockedOn && (!LockedTarget || (LockedTarget.Health <= 0) || !LockedTarget.bIsMonster || LockedTarget.bKilled || LockedTarget.bCorpse || !LockedTarget.bShootable || (Owner.player.ReadyWeapon != self)) ) { LockedTarget = null; LockedOn = false; diff --git a/zscript/utcommon.zsc b/zscript/utcommon.zsc index 983b16a..c5432ac 100644 --- a/zscript/utcommon.zsc +++ b/zscript/utcommon.zsc @@ -1964,7 +1964,7 @@ Class UTMainHandler : EventHandler qf.c = c; qf.tic = gametic; qf.cam = camera; - let hnd = UTMainHandler(StaticEventHandler.Find("UTMainHandler")); + let hnd = UTMainHandler(EventHandler.Find("UTMainHandler")); hnd.flashes.push(qf); } From 1ef7c8b82c4ca7ce0ddb8de6a7510e54abb20dc0 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Mon, 29 Apr 2019 12:38:54 +0200 Subject: [PATCH 03/16] Bump ZScript version. Here's to hoping the 3D floors PR will be merged by 4.2. --- zscript.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zscript.txt b/zscript.txt index 6f3353b..84afea6 100644 --- a/zscript.txt +++ b/zscript.txt @@ -1,4 +1,4 @@ -version "4.1" +version "4.2" #include "zscript/dt_matrix.zsc" #include "zscript/dt_coordutil.zsc" From 8d3b24452a206bff93421f0e9c88f0839fa0272d Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sat, 6 Jul 2019 13:45:29 +0200 Subject: [PATCH 04/16] Updated for changes in 3d floor PR. --- zscript/biorifle.zsc | 12 ++++++------ zscript/flakcannon.zsc | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/zscript/biorifle.zsc b/zscript/biorifle.zsc index ad23108..c5d4980 100644 --- a/zscript/biorifle.zsc +++ b/zscript/biorifle.zsc @@ -400,10 +400,10 @@ Class BioGel : Actor else if ( BlockingFloor ) { // find closest 3d floor for its normal - for ( int i=0; i Date: Sun, 7 Jul 2019 16:16:16 +0200 Subject: [PATCH 05/16] Reflect new coelckers/gzdoom#732 changes --- zscript/biorifle.zsc | 12 ++++++------ zscript/flakcannon.zsc | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/zscript/biorifle.zsc b/zscript/biorifle.zsc index c5d4980..882e7ea 100644 --- a/zscript/biorifle.zsc +++ b/zscript/biorifle.zsc @@ -400,10 +400,10 @@ Class BioGel : Actor else if ( BlockingFloor ) { // find closest 3d floor for its normal - for ( int i=0; i Date: Wed, 7 Aug 2019 18:34:37 +0200 Subject: [PATCH 06/16] Use proper pitch control for some sounds now that it's available. --- sndinfo.txt | 3 --- sounds/SpecExpl.ogg | Bin 15173 -> 11559 bytes zscript/shockrifle.zsc | 8 ++++---- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/sndinfo.txt b/sndinfo.txt index c1980ae..f437e5b 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -249,10 +249,7 @@ shock/fire tazefire shock/altfire tazealtf shock/hit expl03 shock/blast specexpl -$pitchshiftrange 5 shock/ball expla02 -$pitchshift shock/ball 5 -$pitchshiftrange 0 sshock/blast expl2 sshock/dryfire aclick2 diff --git a/sounds/SpecExpl.ogg b/sounds/SpecExpl.ogg index e93b9307b8afe99a6da194068a8a300cf630f3d6..1fdab3353d4f6a86e3b5efbf1e3658af4104eb5d 100644 GIT binary patch delta 7957 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
    8bH4CvI&z6~+Jlj&(uO zBf~n&BZ3Z7bJq$U?~HGIb7Xz|@7IgJU!PrFFMDS_;{usSY+KW>v&pWOs;+T-u4!q# QQGvlMwf5=6-9^HT09{jXLjV8( diff --git a/zscript/shockrifle.zsc b/zscript/shockrifle.zsc index 0860035..89a3392 100644 --- a/zscript/shockrifle.zsc +++ b/zscript/shockrifle.zsc @@ -356,7 +356,7 @@ Class ShockBeam : Actor let r = Spawn("ShockBlastRing",b.pos); r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x); r.pitch = asin(-t.Results.HitVector.z); - A_PlaySound("shock/blast",CHAN_WEAPON,attenuation:0.5); + A_PlaySound("shock/blast",CHAN_WEAPON,attenuation:0.5,pitch:0.6); int numpt = Random[ASMD](200,300); for ( int i=0; i Date: Wed, 7 Aug 2019 19:15:09 +0200 Subject: [PATCH 07/16] Added HUD coloring preview to the settings menu, just a small QOL change. --- graphics/HudPreview.png | Bin 0 -> 1059 bytes graphics/HudPreviewBG.png | Bin 0 -> 3498 bytes menudef.txt | 5 ++++ zscript.txt | 1 + zscript/utmenu.zsc | 49 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 55 insertions(+) create mode 100644 graphics/HudPreview.png create mode 100644 graphics/HudPreviewBG.png create mode 100644 zscript/utmenu.zsc diff --git a/graphics/HudPreview.png b/graphics/HudPreview.png new file mode 100644 index 0000000000000000000000000000000000000000..30fc595e16a71db1dc56229af2bc56cc1153b31f GIT binary patch literal 1059 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4h9AWhJGeJCI$uumUKs7M+SzC{oH>NSs54@ z6p}rHd>I(3)EF2VS{N99F)%PRykKA`HDF+PmB7GYHG_dcykO3*KpO@I2F?PH$YKTt z&g&q|xG_(BI|Bm)dx@v7EBj*(b^#5E#amP>7#J9slDyqr82-2SpV`mAz%1tJ;usQf z`04ex>B^203?F{qR+3+&WHQZzBXHq6nTuR6+Y1D>7A~z?60+39<*-g<*fhz*5pAb} z3Uvgvm#(=~vRwZI>;!f+;XG2=g2yRh~|ss4CiD|F8R5Mb)x8}h=hrCzj>9z z7%Vv>B_kZNR3DhO_Hew_%wRjf8rK|>@2il>JfVk2L6T|1wF_)!%*>o}yBl2!7$&eD zSl7HGUt!{=S8DennH*mHV%f3wTfv|1F7>HS&xCd}Oo*sdy*1x#RY_9#{hV9*yBYpn z5@$$T$0VoAD0gAE)pp7LT9ekt2R$y!FYDi&&bA_!{lbL_ynn7uiQ62dnYwcar;BX^ zm!gnM%QyB{y>+Z>qZ)qvE1Y?~W);6Ek5uM)o>QB6B0Y2z4wV@ytvDBd??|V5fXb&w z8p~%y3bkmhTIQdom%imWr^vJek1{^rJkja-p#P%O6Z} z6jpZPICg>O_3!S-Zv@#i7EJxVuJz1zr?nS_RLnw~7FcsXZZ>6j_=79v$^G@mZlpcS z-dJ|;r6Z?RaD$%&gWTx_lYeK}dlXnVJ;?Dis^S&cH~CXxvF%o2fm`Xi3R2G}SW0-a z1$6yls0-p2xV`oAwTt&IvI;0J6FI$o%bVBV-Z5-C^*P8^sCW7H?%&U49ljXX|2?>o zH(;AQN9l8$+|+&Vf94qUi7_xZ>AJKRJz#KVd(+PF>dGF|L}r22iVad*zo`hXXkl2j zPP4=Q5Yrl=m8Tj$WgS?3@B!cN8#;Nb7#sL^9FXNIuW7 literal 0 HcmV?d00001 diff --git a/graphics/HudPreviewBG.png b/graphics/HudPreviewBG.png new file mode 100644 index 0000000000000000000000000000000000000000..836bf8b617b5acac35b5a9e66b209cbed7f019a0 GIT binary patch literal 3498 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 WxHWA1$p-3)F?hQAxvX= 16 ) Screen.DrawTexture(tex[1],false,xpos,ypos,DTA_CleanNoMove_1,true,DTA_FillColor,Color("Black")); + double alpha = clamp(opacity/15.,0.,1.); + Screen.DrawTexture(tex[1],false,xpos,ypos,DTA_CleanNoMove_1,true,DTA_FillColor,tintcolor,DTA_Alpha,alpha,DTA_LegacyRenderStyle,STYLE_AddShaded); + return -1; + } +} \ No newline at end of file From c6ac1931b92717bcb4b06a31454083b62f034906 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Wed, 7 Aug 2019 20:31:43 +0200 Subject: [PATCH 08/16] Very much needed credits menu has been added. --- language.txt | 22 ++++++++++++++++++++++ menudef.txt | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/language.txt b/language.txt index 500873d..05de73f 100644 --- a/language.txt +++ b/language.txt @@ -222,6 +222,18 @@ FLAK_TAUNT1 = "Victory 1"; FLAK_TAUNT2 = "Victory 2"; FLAK_TAUNT3 = "Wave"; FLAK_TAUNT4 = "Pelvic Thrust"; +FLAK_MCREDS = "UT Credits"; +FLAK_CDT = "Doom Tournament"; +FLAK_CLEAD = "Development Lead:"; +FLAK_CASSETS = "Additional Assets:"; +FLAK_CPATRON = "Patreon Backers:"; +FLAK_CTHANK = "Special Thanks:"; +FLAK_CUT = "Unreal Tournament"; +FLAK_CPROG = "Programming:"; +FLAK_CLEVEL = "Level Design:"; +FLAK_CARTNMODEL = "Art & Models:"; +FLAK_CMUSNSND = "Music & Sound:"; +FLAK_CBIZ = "Biz:"; [es esm esn esg esc esa esd esv eso esr ess esf esl esy esz esb ese esh esi esu] /* Obituaries */ @@ -431,6 +443,16 @@ FLAK_TAUNT1 = "Victoria 1"; FLAK_TAUNT2 = "Victoria 2"; FLAK_TAUNT3 = "Adiós"; FLAK_TAUNT4 = "Movimiento de pelvis"; +FLAK_MCREDS = "Créditos de UT"; +FLAK_CLEAD = "Desarrolladora Jefe:"; +FLAK_CASSETS = "Assets Adicionales:"; +FLAK_CPATRON = "Mecenas de Patreon:"; +FLAK_CTHANK = "Agradecimientos Especiales:"; +FLAK_CPROG = "Programación:"; +FLAK_CLEVEL = "Diseño de Niveles:"; +FLAK_CARTNMODEL = "Arte y Modelos:"; +FLAK_CMUSNSND = "Música y Sonido:"; +FLAK_CBIZ = "Negocios:"; [fr] diff --git a/menudef.txt b/menudef.txt index 6abd532..d6acc0b 100644 --- a/menudef.txt +++ b/menudef.txt @@ -76,9 +76,56 @@ OptionMenu "UTOptionMenu" Option "$FLAK_UCORPS", "flak_corpsedamage", "YesNo" Option "$FLAK_DTEST", "flak_doomtest", "YesNo" } - AddOptionMenu "OptionsMenu" { StaticText " " Submenu "$FLAK_MTITLE", "UTOptionMenu" + Submenu "$FLAK_MCREDS", "UTCreditsMenu" } +OptionMenu "UTCreditsMenu" +{ + Title "$FLAK_MCREDS" + + StaticText "$FLAK_CDT", "Red" + StaticText " " + StaticText "$FLAK_CLEAD", "Gold" + StaticText "Marisa Kirisame", "White" + StaticText " " + StaticText "$FLAK_CASSETS", "Gold" + StaticText "Epic Games", "White" + StaticText " " + StaticText "$FLAK_CPATRON", "Gold" + StaticText "Aisamai, Alexa Jones-Gonzales, Jonas Höglund,", "White" + StaticText "Zard1084, Jonathan Nemo, NekoMithos, 3d0xp0xy", "White" + StaticText " " + StaticText "$FLAK_CTHANK", "Gold" + StaticText "KynikossDragonn", "White" + StaticText " " + StaticText "$FLAK_CUT", "Red" + StaticText " " + StaticText "Copyright© 1999-2000 Epic Games", "White" + StaticText " " + StaticText "$FLAK_CPROG", "Gold" + StaticText "Erik de Neve, Steve Polge, Jack Porter,", "White" + StaticText "Brandon Reinhart, Tim Sweeney, Carlo Vogelsang,", "White" + StaticText "Warren Marshall", "White" + StaticText " " + StaticText "$FLAK_CLEVEL", "Gold" + StaticText "Cliff Bleszinski, Elliot Cannon, Shane Caudle,", "White" + StaticText "Pancho Eekels, Dave Ewing, Cedric Fiorentino,", "White" + StaticText "Alan Willard", "White" + StaticText "", "White" + StaticText " " + StaticText "$FLAK_CARTNMODEL", "Gold" + StaticText "Dave Carter, Shane Caudle, Pancho Eekels,", "White" + StaticText "Steve Garofalo, Mike Leatham, Everton Richards,", "White" + StaticText "Dan Sarkar, James Schmalz, John Mueller", "White" + StaticText " " + StaticText "$FLAK_CMUSNSND", "Gold" + StaticText "Alexander Brandon, Sascha Dikiciyan, Dave Ewing,", "White" + StaticText "Lani Minella, Shannon Ewing, Michiel van den Bos", "White" + StaticText " " + StaticText "$FLAK_CBIZ", "Gold" + StaticText "Jay Wilbur, Mark Rein", "White" + StaticText " " +} \ No newline at end of file From d0ff1c35d1af4a0ddd01fdd813f9b7e3f3d5fb77 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Thu, 8 Aug 2019 12:02:48 +0200 Subject: [PATCH 09/16] Fix crash if HUD color is set to team in settings while player is not in a team. --- zscript/utmenu.zsc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zscript/utmenu.zsc b/zscript/utmenu.zsc index 9095e5c..80f35b6 100644 --- a/zscript/utmenu.zsc +++ b/zscript/utmenu.zsc @@ -31,7 +31,9 @@ Class OptionMenuItemUTHudPreview : OptionMenuItem switch ( mColorP.GetInt() ) { case 0: - tintcolor = Color(Teams[mPTeam.GetInt()].mName); + int t = Teams[mPTeam.GetInt(); + if ( t < Teams.Size() ) + tintcolor = Color(Teams[t].mName); break; case 1: tintcolor = Color(mPColor.GetString()); From d6566403857fd2f9db2355c270433667dc0993ad Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Thu, 8 Aug 2019 12:03:40 +0200 Subject: [PATCH 10/16] Missing closing bracket --- zscript/utmenu.zsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zscript/utmenu.zsc b/zscript/utmenu.zsc index 80f35b6..1136f90 100644 --- a/zscript/utmenu.zsc +++ b/zscript/utmenu.zsc @@ -31,7 +31,7 @@ Class OptionMenuItemUTHudPreview : OptionMenuItem switch ( mColorP.GetInt() ) { case 0: - int t = Teams[mPTeam.GetInt(); + int t = Teams[mPTeam.GetInt()]; if ( t < Teams.Size() ) tintcolor = Color(Teams[t].mName); break; From 0fdfbeef7e79674008500ba051b7b40a4ac03a5a Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Thu, 8 Aug 2019 12:05:36 +0200 Subject: [PATCH 11/16] Oops. --- zscript/utmenu.zsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zscript/utmenu.zsc b/zscript/utmenu.zsc index 1136f90..f2c1883 100644 --- a/zscript/utmenu.zsc +++ b/zscript/utmenu.zsc @@ -31,7 +31,7 @@ Class OptionMenuItemUTHudPreview : OptionMenuItem switch ( mColorP.GetInt() ) { case 0: - int t = Teams[mPTeam.GetInt()]; + int t = mPTeam.GetInt(); if ( t < Teams.Size() ) tintcolor = Color(Teams[t].mName); break; From c3f2830c1ecf65f7156d94ef2e8302e6d5d8a989 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sun, 11 Aug 2019 17:25:07 +0200 Subject: [PATCH 12/16] Small fix for translocator modules bouncing on bridge actors. --- zscript/translocator.zsc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/zscript/translocator.zsc b/zscript/translocator.zsc index 289f7f9..f63762c 100644 --- a/zscript/translocator.zsc +++ b/zscript/translocator.zsc @@ -132,6 +132,7 @@ Class TranslocatorModule : Actor +MOVEWITHSECTOR; +CANBOUNCEWATER; +BLOCKASPLAYER; + -ALLOWBOUNCEONACTORS; BounceType "Hexen"; BounceFactor 0.3; WallBounceFactor 0.3; @@ -218,7 +219,7 @@ Class TranslocatorModule : Actor { A_SetPitch(0); A_PlaySound("transloc/bounce"); - if ( BlockingFloor ) alreadyhit = true; + if ( BlockingFloor || (tracer && (pos.z >= tracer.pos.z+tracer.height) && tracer.bACTLIKEBRIDGE) ) alreadyhit = true; } } Goto Spawn; @@ -226,7 +227,7 @@ Class TranslocatorModule : Actor TMOD A 0 { A_SetPitch(0); - if ( tracer ) + if ( tracer && !tracer.bACTLIKEBRIDGE ) { SetOrigin(tracer.Vec2OffsetZ(0,0,pos.z),false); vel.xy *= 0; From c594888716087622ebd221c8779483ed8fc9f494 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Mon, 12 Aug 2019 19:30:55 +0200 Subject: [PATCH 13/16] Another pitch thing I missed. --- sounds/RazorHum.ogg | Bin 6388 -> 11937 bytes zscript/ripper.zsc | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/sounds/RazorHum.ogg b/sounds/RazorHum.ogg index 1bee8cdd305617b7da2ba862e16a2a9967492cb9..c1a5a0798053085f5d6d8f308498b5f7c6637265 100644 GIT binary patch delta 8340 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 delta 2748 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 Date: Mon, 12 Aug 2019 19:33:53 +0200 Subject: [PATCH 14/16] Update readme with specific port requirement. --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 91af1a2..53cb7ae 100644 --- a/Readme.md +++ b/Readme.md @@ -3,7 +3,7 @@ What began as a test for importing UT vertex meshes has turned into an actual full UT weapon and item mod. -This mod requires GZDoom 4.1 or later. +This mod requires QZDoom q2.2pre-2995-ga4054a756 or later. ## Currently implemented From fd95c4e8aa82f1275efecf429ee4250d360cdf20 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Tue, 13 Aug 2019 02:49:04 +0200 Subject: [PATCH 15/16] Add DONTBOUNCEONSHOOTABLES flag to various projectiles that seem to need it. --- zscript/eightball.zsc | 1 + zscript/flakcannon.zsc | 1 + zscript/ripper.zsc | 1 + zscript/translocator.zsc | 1 + 4 files changed, 4 insertions(+) diff --git a/zscript/eightball.zsc b/zscript/eightball.zsc index bdd04d2..7cff39e 100644 --- a/zscript/eightball.zsc +++ b/zscript/eightball.zsc @@ -225,6 +225,7 @@ Class UTGrenade : UTRocket -EXPLODEONWATER; +CANBOUNCEWATER; +NOEXPLODEFLOOR; + +DONTBOUNCEONSHOOTABLES; BounceType "Hexen"; WallBounceFactor 0.75; BounceFactor 0.75; diff --git a/zscript/flakcannon.zsc b/zscript/flakcannon.zsc index 2a19067..74f50b5 100644 --- a/zscript/flakcannon.zsc +++ b/zscript/flakcannon.zsc @@ -178,6 +178,7 @@ Class FlakChunk : Actor +SKYEXPLODE; +INTERPOLATEANGLES; +HITTRACER; + +DONTBOUNCEONSHOOTABLES; Scale 0.3; } override void PostBeginPlay() diff --git a/zscript/ripper.zsc b/zscript/ripper.zsc index 21c895a..8d7895a 100644 --- a/zscript/ripper.zsc +++ b/zscript/ripper.zsc @@ -69,6 +69,7 @@ Class Razor2 : Actor +SKYEXPLODE; +CANBOUNCEWATER; +NODAMAGETHRUST; + +DONTBOUNCEONSHOOTABLES; } override void PostBeginPlay() { diff --git a/zscript/translocator.zsc b/zscript/translocator.zsc index f63762c..74713f4 100644 --- a/zscript/translocator.zsc +++ b/zscript/translocator.zsc @@ -133,6 +133,7 @@ Class TranslocatorModule : Actor +CANBOUNCEWATER; +BLOCKASPLAYER; -ALLOWBOUNCEONACTORS; + +DONTBOUNCEONSHOOTABLES; BounceType "Hexen"; BounceFactor 0.3; WallBounceFactor 0.3; From f005fa3c149f672cbe419956fb5c07b167c591b4 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Mon, 19 Aug 2019 20:19:26 +0200 Subject: [PATCH 16/16] Another fix to something that can fail catastrophically if monsters spontaneously cease to exist in the middle of a DamageMobj call. Small adjustment to translocator module (hitbox uses master rather than target pointer), for safety. Removed some leftover sounds. --- sounds/AmmoSnd.ogg | Bin 7639 -> 0 bytes sounds/PulseFly.ogg | Bin 12077 -> 0 bytes zscript/translocator.zsc | 24 ++++++++++++------------ zscript/utcommon.zsc | 4 +++- 4 files changed, 15 insertions(+), 13 deletions(-) delete mode 100644 sounds/AmmoSnd.ogg delete mode 100644 sounds/PulseFly.ogg diff --git a/sounds/AmmoSnd.ogg b/sounds/AmmoSnd.ogg deleted file mode 100644 index b152af7b260238e4b4d156ebf90016a46164fb53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7639 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 PA>Q)d#GScr0lyglp3_%= diff --git a/sounds/PulseFly.ogg b/sounds/PulseFly.ogg deleted file mode 100644 index 7b2d36eafe4284f52411892944449a5f1812fe7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12077 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 D`p^*1 diff --git a/zscript/translocator.zsc b/zscript/translocator.zsc index 74713f4..01cd5b9 100644 --- a/zscript/translocator.zsc +++ b/zscript/translocator.zsc @@ -13,34 +13,34 @@ Class ModuleHitbox : Actor } override int DamageMobj( Actor inflictor, Actor source, int damage, Name mod, int flags, double angle ) { - if ( target ) + if ( master ) { - if ( inflictor ) target.vel += level.Vec3Diff(inflictor.pos,pos).unit()*damage*0.2; - else if ( source ) target.vel += level.Vec3Diff(source.pos,pos).unit()*damage*0.2; - target.vel.z = 5; + if ( inflictor ) master.vel += level.Vec3Diff(inflictor.pos,pos).unit()*damage*0.2; + else if ( source ) master.vel += level.Vec3Diff(source.pos,pos).unit()*damage*0.2; + master.vel.z = 5; } - if ( !target || (target.target && ((target.target == source) || target.target.isTeammate(source))) ) return 0; - target.bAMBUSH = true; + if ( !master || (master.target && ((master.target == source) || master.target.isTeammate(source))) ) return 0; + master.bAMBUSH = true; return 0; } override void Tick() { Super.Tick(); - if ( !target ) + if ( !master ) { Destroy(); return; } - SetOrigin(target.pos,true); - if ( target.bMISSILE ) return; + SetOrigin(master.pos,true); + if ( master.bMISSILE ) return; let bi = BlockThingsIterator.Create(self,32); while ( bi.Next() ) { - if ( !bi.Thing || (bi.Thing != target.target) ) continue; + if ( !bi.Thing || (bi.Thing != master.target) ) continue; if ( (Distance2D(bi.Thing)-bi.Thing.radius <= radius) && ((bi.Thing.pos.z <= pos.z+height) && (bi.Thing.pos.z+bi.Thing.height >= pos.z-height)) ) { A_PlaySound("misc/i_pkup"); - target.Destroy(); + master.Destroy(); return; } } @@ -149,7 +149,7 @@ Class TranslocatorModule : Actor return; } b = Spawn("ModuleHitbox",pos); - b.target = self; + b.master = self; A_PlaySound("transloc/hum",CHAN_VOICE,0.5,true,2.0); } diff --git a/zscript/utcommon.zsc b/zscript/utcommon.zsc index 45e4de4..345afc8 100644 --- a/zscript/utcommon.zsc +++ b/zscript/utcommon.zsc @@ -1974,7 +1974,7 @@ Class ShredCorpseHitbox : Actor override void Tick() { Super.Tick(); - if ( (!(target is 'UTPlayer') && !flak_corpsedamage) || !target || (target.Health > 0) || target.InStateSequence(target.CurState,target.FindState("XDeath")) ) + if ( (!(target is 'UTPlayer') && !flak_corpsedamage) || !target || (target.Health > 0) || target.InStateSequence(target.CurState,target.FindState("XDeath",true)) ) { Destroy(); return; @@ -1995,6 +1995,8 @@ Class ShredCorpseHitbox : Actor } override int DamageMobj( Actor inflictor, Actor source, int damage, Name mod, int flags, double angle ) { + // somehow target can spontaneously stop existing while this is happening + if ( !target ) return 0; if ( (target is 'UTPlayer') && (mod == 'Zapped') && (target.sprite == target.GetSpriteIndex('PLD9')) ) { // keep the zapping action on