- 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

@ -847,6 +847,7 @@ void DIntermissionController::OnDestroy ()
void F_StartIntermission(FIntermissionDescriptor *desc, bool deleteme, uint8_t state)
{
ScaleOverrider s;
if (DIntermissionController::CurrentIntermission != NULL)
{
DIntermissionController::CurrentIntermission->Destroy();
@ -892,6 +893,7 @@ void F_StartIntermission(FName seq, uint8_t state)
bool F_Responder (event_t* ev)
{
ScaleOverrider s;
if (DIntermissionController::CurrentIntermission != NULL)
{
return DIntermissionController::CurrentIntermission->Responder(ev);
@ -907,6 +909,7 @@ bool F_Responder (event_t* ev)
void F_Ticker ()
{
ScaleOverrider s;
if (DIntermissionController::CurrentIntermission != NULL)
{
DIntermissionController::CurrentIntermission->Ticker();
@ -921,6 +924,7 @@ void F_Ticker ()
void F_Drawer ()
{
ScaleOverrider s;
if (DIntermissionController::CurrentIntermission != NULL)
{
DIntermissionController::CurrentIntermission->Drawer();
@ -936,6 +940,7 @@ void F_Drawer ()
void F_EndFinale ()
{
ScaleOverrider s;
if (DIntermissionController::CurrentIntermission != NULL)
{
DIntermissionController::CurrentIntermission->Destroy();
@ -951,6 +956,7 @@ void F_EndFinale ()
void F_AdvanceIntermission()
{
ScaleOverrider s;
if (DIntermissionController::CurrentIntermission != NULL)
{
DIntermissionController::CurrentIntermission->mAdvance = true;