- make the clean scaling system more consistent.

Now, all menus will use the same scale, i.e. it only depends on the screen width and a base size of 640. This nearly universally yields better results than trying to make a 320x200 screen fit.
The only exceptions to this are the intermission screens and the level summary. These, unlike the menu need to try to make a 320x200 screen fit, but without all the hackery that was present to adjust the menu display.
Note that since this affects globally visible script variables, both the intermission and summary drawers will not use their own set but instead temporarily override the global setting as long as they run their own code.
Changing the use of variables here might cause much worse problems with menu code so it wasn't attempted
This commit is contained in:
Christoph Oelckers 2019-03-17 12:06:09 +01:00
commit 4f7ad5b130
4 changed files with 49 additions and 56 deletions

View file

@ -701,6 +701,7 @@ void WI_Ticker()
{
if (WI_Screen)
{
ScaleOverrider s;
IFVIRTUALPTRNAME(WI_Screen, "StatusScreen", Ticker)
{
VMValue self = WI_Screen;
@ -720,6 +721,7 @@ void WI_Drawer()
{
if (WI_Screen)
{
ScaleOverrider s;
IFVIRTUALPTRNAME(WI_Screen, "StatusScreen", Drawer)
{
VMValue self = WI_Screen;
@ -767,6 +769,7 @@ void WI_Start(wbstartstruct_t *wbstartstruct)
SN_StopAllSequences(Level);
}
WI_Screen = cls->CreateNew();
ScaleOverrider s;
IFVIRTUALPTRNAME(WI_Screen, "StatusScreen", Start)
{
VMValue val[2] = { WI_Screen, wbstartstruct };