Fixed portals breaking crosshairs (thanks again, Boondorl).
This commit is contained in:
parent
f68e5cc2ff
commit
dffee0b43d
2 changed files with 9 additions and 8 deletions
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r522 \cu(Wed 28 Sep 13:52:16 CEST 2022)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r522 \cu(2022-09-28 13:52:16)\c-";
|
||||
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r523 \cu(Wed 28 Sep 17:58:30 CEST 2022)\c-";
|
||||
SWWM_SHORTVER="\cw1.3pre r523 \cu(2022-09-28 17:58:30)\c-";
|
||||
|
|
|
|||
|
|
@ -62,8 +62,9 @@ extend Class SWWMHandler
|
|||
int chp = crosshairhealth;
|
||||
for ( int i=0; i<numcrosshairs; i++ )
|
||||
{
|
||||
origin = level.Vec3Offset(e.ViewPos,traceofs[i].x*x+traceofs[i].y*y+traceofs[i].z*z);
|
||||
ctr.Trace(origin,level.PointInSector(origin.xy),x,10000.,0);
|
||||
ofs = traceofs[i].x*x+traceofs[i].y*y+traceofs[i].z*z;
|
||||
origin = level.Vec3Offset(e.ViewPos,ofs);
|
||||
ctr.Trace(origin,level.PointInSector(origin.xy),x,10000.,TRACE_ReportPortals);
|
||||
if ( chp >= 2 )
|
||||
{
|
||||
int hp = Clamp(mo.Health,0,200);
|
||||
|
|
@ -89,8 +90,8 @@ extend Class SWWMHandler
|
|||
else col = Color(0,255,0);
|
||||
}
|
||||
else col = crosshaircolor;
|
||||
if ( ctr.Results.HitType == TRACE_HitNone ) tpos[i] = level.Vec3Offset(origin,x*10000.);
|
||||
else tpos[i] = ctr.Results.HitPos;
|
||||
if ( ctr.Results.HitType == TRACE_HitNone ) tpos[i] = e.ViewPos+ofs+x*10000.;
|
||||
else tpos[i] = e.ViewPos+ofs+x*ctr.Results.Distance;
|
||||
tcol[i] = col;
|
||||
}
|
||||
// copy over used slots to unused slots, so transition between weapons is smoother
|
||||
|
|
@ -130,9 +131,9 @@ extend Class SWWMHandler
|
|||
{
|
||||
Vector3 cpos = tpos[i];
|
||||
Color ccol = tcol[i];
|
||||
Vector3 tdir = level.Vec3Diff(e.ViewPos,cpos);
|
||||
Vector3 tdir = (e.ViewPos-cpos);
|
||||
// project (but account for rare corner case where distance is zero)
|
||||
Vector3 ndc = (tdir.length()<=double.epsilon)?(0,0,0):SWWMUtility.ProjectPoint(tprojdata,e.ViewPos+tdir);
|
||||
Vector3 ndc = (tdir.length()<=double.epsilon)?(0,0,0):SWWMUtility.ProjectPoint(tprojdata,cpos);
|
||||
if ( ndc.z >= 1. ) continue;
|
||||
Vector2 vpos = SWWMUtility.NDCToViewport(tprojdata,ndc);
|
||||
if ( !prevframe ) lagtndc[i] = ndc;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue