Cap minimap zoom like in sidemods. Removes need for a CVar.

This commit is contained in:
Mari the Deer 2023-10-13 12:11:13 +02:00
commit eb3cae5d43
8 changed files with 13 additions and 28 deletions

View file

@ -22,20 +22,17 @@ extend Class SWWMHandler
{
if ( (gamestate != GS_LEVEL) || (players[consoleplayer].Health <= 0) || !(players[consoleplayer].mo is 'Demolitionist') )
return;
double val = swwm_mm_zoom;
if ( val > 1. ) val = max(1.,val-.5);
else val = max(.5,val-.25);
CVar.FindCVar('swwm_mm_zoom').SetFloat(val);
let bar = SWWMStatusBar(StatusBar);
if ( !bar ) return;
bar.mm_zoom = max(.5,bar.mm_zoom-.25);
}
else if ( e.Name ~== "swwmzoomout" )
{
if ( (gamestate != GS_LEVEL) || (players[consoleplayer].Health <= 0) || !(players[consoleplayer].mo is 'Demolitionist') )
return;
double maxval = level.allmap?2.:1.;
double val = swwm_mm_zoom;
if ( val >= 1. ) val = min(maxval,val+.5);
else val = min(1.,val+.25);
CVar.FindCVar('swwm_mm_zoom').SetFloat(val);
let bar = SWWMStatusBar(StatusBar);
if ( !bar ) return;
bar.mm_zoom = min(1.,bar.mm_zoom+.25);
}
}

View file

@ -276,7 +276,7 @@ extend Class SWWMHandler
return;
}
// update trackers for anything around the player
double viewdist = SWWMStatusBar.MAPVIEWDIST*swwm_mm_zoom;
double viewdist = SWWMStatusBar.MAPVIEWDIST;
// still about as expensive as using a BlockThingsIterator, but without the need to allocate one every tic
int thisgroup = players[consoleplayer].Camera.CurSector.portalgroup;
foreach ( s:level.Sectors ) for ( Actor a=s.thinglist; a; a=a.snext )

View file

@ -97,12 +97,6 @@ Class SWWMStaticHandler : StaticEventHandler
}
SWWMHandler.ClearAllShaders();
EventHandler.SendInterfaceEvent(consoleplayer,"swwmflushhud");
// force a reset of the minimap zoom in case it's set beyond safe levels
double mmz = swwm_mm_zoom;
if ( level.allmap && (mmz >= 2.) ) mmz = 2.;
else if ( mmz >= 1. ) mmz = 1.;
else mmz = .5;
CVar.FindCVar('swwm_mm_zoom').SetFloat(mmz);
EventHandler.SendInterfaceEvent(consoleplayer,"swwmaprcheck");
if ( !e.IsSaveGame ) return;
// save version checker