- fixed: When the underwater end screen of Heretic's second episode is active the menu may not be opened.

- fixed: There was no fallback for invalid references to the FinalePages array.


SVN r2898 (finale)
This commit is contained in:
Christoph Oelckers 2010-10-05 17:42:49 +00:00
parent 500b94c62c
commit de4a513ae9
3 changed files with 26 additions and 1 deletions

View file

@ -49,6 +49,7 @@
#include "c_bind.h" #include "c_bind.h"
#include "g_level.h" #include "g_level.h"
#include "p_conversation.h" #include "p_conversation.h"
#include "menu/menu.h"
FIntermissionDescriptorList IntermissionDescriptors; FIntermissionDescriptorList IntermissionDescriptors;
@ -96,6 +97,14 @@ void DIntermissionScreen::Init(FIntermissionAction *desc, bool first)
{ {
texname = gameinfo.finalePages[v].GetChars(); texname = gameinfo.finalePages[v].GetChars();
} }
else if (gameinfo.finalePages.Size() > 0)
{
texname = gameinfo.finalePages[0].GetChars();
}
else
{
texname = gameinfo.titlePage;
}
} }
else if (*texname == '$') else if (*texname == '$')
{ {
@ -125,6 +134,7 @@ void DIntermissionScreen::Init(FIntermissionAction *desc, bool first)
screen->UpdatePalette (); screen->UpdatePalette ();
mPaletteChanged = true; mPaletteChanged = true;
NoWipe = 1; NoWipe = 1;
M_EnableMenu(false);
} }
mOverlays.Resize(desc->mOverlays.Size()); mOverlays.Resize(desc->mOverlays.Size());
for (unsigned i=0; i < mOverlays.Size(); i++) for (unsigned i=0; i < mOverlays.Size(); i++)
@ -206,6 +216,7 @@ void DIntermissionScreen::Destroy()
screen->UpdatePalette (); screen->UpdatePalette ();
NoWipe = 5; NoWipe = 5;
mPaletteChanged = false; mPaletteChanged = false;
M_EnableMenu(true);
} }
Super::Destroy(); Super::Destroy();
} }

View file

@ -79,6 +79,7 @@ int MenuButtonTickers[NUM_MKEYS];
bool MenuButtonOrigin[NUM_MKEYS]; bool MenuButtonOrigin[NUM_MKEYS];
int BackbuttonTime; int BackbuttonTime;
fixed_t BackbuttonAlpha; fixed_t BackbuttonAlpha;
static bool MenuEnabled = true;
#define KEY_REPEAT_DELAY (TICRATE*5/12) #define KEY_REPEAT_DELAY (TICRATE*5/12)
@ -633,7 +634,7 @@ bool M_Responder (event_t *ev)
} }
return DMenu::CurrentMenu->Responder(ev) || !keyup; return DMenu::CurrentMenu->Responder(ev) || !keyup;
} }
else else if (MenuEnabled)
{ {
if (ev->type == EV_KeyDown) if (ev->type == EV_KeyDown)
{ {
@ -761,6 +762,18 @@ void M_Init (void)
} }
//=============================================================================
//
//
//
//=============================================================================
void M_EnableMenu (bool on)
{
MenuEnabled = on;
}
//============================================================================= //=============================================================================
// //
// [RH] Most menus can now be accessed directly // [RH] Most menus can now be accessed directly

View file

@ -637,6 +637,7 @@ public:
struct event_t; struct event_t;
void M_EnableMenu (bool on) ;
bool M_Responder (event_t *ev); bool M_Responder (event_t *ev);
void M_Ticker (void); void M_Ticker (void);
void M_Drawer (void); void M_Drawer (void);