diff --git a/language.version b/language.version index 6bd933279..6a0d998e0 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r506 \cu(Sat 24 Sep 22:12:12 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r506 \cu(2022-09-24 22:12:12)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r507 \cu(Sun 25 Sep 14:02:53 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r507 \cu(2022-09-25 14:02:53)\c-"; diff --git a/zscript/handler/swwm_handler_crosshair.zsc b/zscript/handler/swwm_handler_crosshair.zsc index a857f60df..3e92b6be0 100644 --- a/zscript/handler/swwm_handler_crosshair.zsc +++ b/zscript/handler/swwm_handler_crosshair.zsc @@ -32,7 +32,7 @@ extend Class SWWMHandler transient ui Color tcol[MAX_CROSSHAIRS]; // current crosshair colors transient ui SWWMProjectionData tprojdata; // cached Gutamatics projection data transient ui Vector3 lagtndc[MAX_CROSSHAIRS]; // "lagged" NDC for crosshairs - transient ui Weapon lasttw; // last player weapon, to "reset" crosshair positions + transient ui bool tactive[MAX_CROSSHAIRS]; // denotes that the crosshair is "active" for drawing transient ui double prevframe; // previous frame timestamp private ui void TraceCrosshairs( RenderEvent e ) @@ -43,11 +43,16 @@ extend Class SWWMHandler if ( !sw ) { numcrosshairs = 0; + for ( int i=0; i 0. ) sz = Screen.GetHeight()*cs/200.; if ( crosshairgrow ) sz *= StatusBar.CrosshairSize; SWWMUtility.PrepareProjData(tprojdata,e.ViewPos,e.ViewAngle,e.ViewPitch,e.ViewRoll,players[consoleplayer].fov); - let w = players[consoleplayer].ReadyWeapon; - for ( int i=0; i= 1. ) continue; Vector2 lagvpos = SWWMUtility.NDCToViewport(tprojdata,lagtndc[i]); + if ( !tactive[i] ) continue; + // draw int streak = int(max(abs(oldvpos.x-lagvpos.x),abs(oldvpos.y-lagvpos.y))); - for ( int i=0; i