Stop reinventing lerp() all over the place.

This commit is contained in:
Mari the Deer 2022-05-29 18:07:30 +02:00
commit 65597c181a
10 changed files with 38 additions and 31 deletions

View file

@ -1338,7 +1338,7 @@ Class SWWMStatusBar : BaseStatusBar
{
let targ = trackers[i];
if ( !targ ) continue;
Vector3 ndc = SWWMUtility.ProjectPoint(projdata,ViewPos+level.Vec3Diff(ViewPos,targ.prevpos*(1.-fractic)+targ.pos*fractic));
Vector3 ndc = SWWMUtility.ProjectPoint(projdata,ViewPos+level.Vec3Diff(ViewPos,SWWMUtility.LerpVector3(targ.prevpos,targ.pos,fractic)));
if ( ndc.z >= 1. ) continue;
Vector2 vpos = SWWMUtility.NDCToViewport(projdata,ndc);
tag = targ.mytag;
@ -1748,9 +1748,9 @@ Class SWWMStatusBar : BaseStatusBar
private void DrawMapGrid( Vector2 basepos )
{
double zoomlevel = oldminimapzoom*(1.-FracTic)+minimapzoom*FracTic;
double zoomlevel = SWWMUtility.Lerp(oldminimapzoom,minimapzoom,FracTic);
double zoomview = MAPVIEWDIST*zoomlevel, zoomclip = CLIPDIST*zoomlevel;
Vector2 cpos = players[consoleplayer].Camera.prev.xy*(1.-FracTic)+players[consoleplayer].Camera.pos.xy*FracTic;
Vector2 cpos = SWWMUtility.LerpVector2(players[consoleplayer].Camera.prev.xy,players[consoleplayer].Camera.pos.xy,FracTic);
// find farthest visible southwest grid point from camera position
int maxlines = int(zoomview/64);
Vector2 gpt = (cpos-(zoomview,zoomview))/128;
@ -1850,9 +1850,9 @@ Class SWWMStatusBar : BaseStatusBar
private void DrawMapLines( Vector2 basepos )
{
double zoomlevel = oldminimapzoom*(1.-FracTic)+minimapzoom*FracTic;
double zoomlevel = SWWMUtility.Lerp(oldminimapzoom,minimapzoom,FracTic);
double zoomview = MAPVIEWDIST*zoomlevel, zoomclip = CLIPDIST*zoomlevel;
Vector2 cpos = players[consoleplayer].Camera.prev.xy*(1.-FracTic)+players[consoleplayer].Camera.pos.xy*FracTic;
Vector2 cpos = SWWMUtility.LerpVector2(players[consoleplayer].Camera.prev.xy,players[consoleplayer].Camera.pos.xy,FracTic);
Sector csec = players[consoleplayer].Camera.CurSector;
for ( int i=0; i<level.lines.Size(); i++ )
{
@ -1960,9 +1960,9 @@ Class SWWMStatusBar : BaseStatusBar
}
private void DrawMapMarkers( Vector2 basepos )
{
double zoomlevel = oldminimapzoom*(1.-FracTic)+minimapzoom*FracTic;
double zoomlevel = SWWMUtility.Lerp(oldminimapzoom,minimapzoom,FracTic);
double zoomview = MAPVIEWDIST*zoomlevel, zoomclip = CLIPDIST*zoomlevel;
Vector2 cpos = players[consoleplayer].Camera.prev.xy*(1.-FracTic)+players[consoleplayer].Camera.pos.xy*FracTic;
Vector2 cpos = SWWMUtility.LerpVector2(players[consoleplayer].Camera.prev.xy,players[consoleplayer].Camera.pos.xy,FracTic);
Sector csec = players[consoleplayer].Camera.CurSector;
if ( !mi ) mi = ThinkerIterator.Create("MapMarker",Thinker.STAT_MAPMARKER);
else mi.Reinit();
@ -2045,9 +2045,9 @@ Class SWWMStatusBar : BaseStatusBar
}
private void DrawMapThings( Vector2 basepos )
{
double zoomlevel = oldminimapzoom*(1.-FracTic)+minimapzoom*FracTic;
double zoomlevel = SWWMUtility.Lerp(oldminimapzoom,minimapzoom,FracTic);
double zoomview = MAPVIEWDIST*zoomlevel, zoomclip = CLIPDIST*zoomlevel;
Vector2 cpos = players[consoleplayer].Camera.prev.xy*(1.-FracTic)+players[consoleplayer].Camera.pos.xy*FracTic;
Vector2 cpos = SWWMUtility.LerpVector2(players[consoleplayer].Camera.prev.xy,players[consoleplayer].Camera.pos.xy,FracTic);
Sector csec = players[consoleplayer].Camera.CurSector;
for ( SWWMSimpleTracker t=hnd.strackers; t; t=t.next )
{
@ -2061,7 +2061,7 @@ Class SWWMStatusBar : BaseStatusBar
double radius;
if ( t.target )
{
pos = t.target.prev.xy*(1.-FracTic)+t.target.pos.xy*FracTic;
pos = SWWMUtility.LerpVector2(t.target.prev.xy,t.target.pos.xy,FracTic);
angle = t.target.angle;
radius = t.isbeam?(t.target.speed*cos(t.target.pitch)):t.target.radius;
}
@ -2170,7 +2170,7 @@ Class SWWMStatusBar : BaseStatusBar
double alph = clamp(((t.lastupdate+mtime)-level.maptime)/35.,0.,1.);
if ( t.isbeam ) alph *= t.target?(t.target.alpha/t.target.default.alpha):0.;
double theta = clamp(5.*FrameTime,0.,1.);
t.smoothalpha = t.smoothalpha*(1.-theta)+alph*theta;
t.smoothalpha = SWWMUtility.Lerp(t.smoothalpha,alph,theta);
}
else t.smoothalpha = 0.;
}