diff --git a/language.version b/language.version index e056dc492..fe64a7e04 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r968 \cu(Sat 30 Sep 00:08:15 CEST 2023)\c-"; -SWWM_SHORTVER="\cw1.3pre r968 \cu(2023-09-30 00:08:15)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r969 \cu(Sat 30 Sep 20:44:18 CEST 2023)\c-"; +SWWM_SHORTVER="\cw1.3pre r969 \cu(2023-09-30 20:44:18)\c-"; diff --git a/zscript/hud/swwm_hud_topstuff.zsc b/zscript/hud/swwm_hud_topstuff.zsc index e0a50297f..1aeda0246 100644 --- a/zscript/hud/swwm_hud_topstuff.zsc +++ b/zscript/hud/swwm_hud_topstuff.zsc @@ -620,14 +620,30 @@ extend Class SWWMStatusBar } if ( (((radius+zoomview)-abs(rv.x)) <= 0) || (((radius+zoomview)-abs(rv.y)) <= 0) ) continue; - Vector2 tv[4]; + Vector2 tv[8]; int nidx; + bool closeshape = true; if ( t.isbeam ) { // oriented line nidx = 2; tv[0] = rv; tv[1] = rv+Actor.RotateVector((radius,0),angle); + closeshape = false; + } + else if ( t.iskey ) + { + // key shape (a rhombus and an L, basically) + nidx = 8; + double crad = min(radius,10); + // head (pointing north) + for ( int i=0; i<5; i++ ) + tv[i] = rv+(0,crad*.5)-Actor.RotateVector((0,crad*.5),i*90); + // tail (pointing east) + tv[5] = rv; + tv[6] = rv+(0,-crad); + tv[7] = rv+(crad*.5,-crad); + closeshape = false; } else if ( isitem ) { @@ -663,6 +679,7 @@ extend Class SWWMStatusBar // clip to frame for ( int j=0; j