- Fixed: F_StartFinale shouldn't get the information if the game is about

to end from level.nextmap. For example, this check is wrong for a secret
  exit.

SVN r549 (trunk)
This commit is contained in:
Christoph Oelckers 2007-09-26 21:50:05 +00:00
parent 7539d5ad70
commit f94d971c06
4 changed files with 16 additions and 7 deletions

View file

@ -1,3 +1,8 @@
September 26, 2007 (Changes by Graf Zahl)
- Fixed: F_StartFinale shouldn't get the information if the game is about
to end from level.nextmap. For example, this check is wrong for a secret
exit.
September 25, 2007 (Changes by Graf Zahl)
- Fixed: AActor::CopyFriendliness must not copy the target if it has the
MF3_NOTARGET flag set.

View file

@ -71,6 +71,7 @@ static bool FinaleHasPic;
static FString FinaleText;
static size_t FinaleTextLen;
static const char *FinaleFlat;
static bool FinaleEnding;
void F_StartCast (void);
void F_CastTicker (void);
@ -82,9 +83,8 @@ void F_AdvanceSlideshow ();
// F_StartFinale
//
void F_StartFinale (char *music, int musicorder, int cdtrack, unsigned int cdid, char *flat, char *text,
INTBOOL textInLump, INTBOOL finalePic, INTBOOL lookupText)
INTBOOL textInLump, INTBOOL finalePic, INTBOOL lookupText, bool ending)
{
bool ending = strncmp (level.nextmap, "enDSeQ", 6) == 0;
bool loopmusic = ending ? !(gameinfo.flags & GI_NOLOOPFINALEMUSIC) : true;
gameaction = ga_nothing;
gamestate = GS_FINALE;
@ -140,6 +140,7 @@ void F_StartFinale (char *music, int musicorder, int cdtrack, unsigned int cdid,
FinaleCount = 0;
FinaleEndCount = 70;
FadeDir = -1;
FinaleEnding = ending;
S_StopAllChannels ();
if (ending)
@ -233,7 +234,7 @@ void F_Ticker ()
}
else
{
if (strncmp (level.nextmap, "enDSeQ", 6) == 0)
if (FinaleEnding)
{
// [RH] Don't automatically advance end-of-game messages
if (interrupt)

View file

@ -40,7 +40,7 @@ void F_Drawer ();
void F_StartFinale (char *music, int musicorder, int cdtrack, unsigned int cdid, char *flat, char *text,
INTBOOL textInLump, INTBOOL finalePic, INTBOOL lookupText);
INTBOOL textInLump, INTBOOL finalePic, INTBOOL lookupText, bool ending);
void F_StartSlideshow ();

View file

@ -2042,7 +2042,8 @@ void G_WorldDone (void)
thiscluster->finaleflat, thiscluster->exittext,
thiscluster->flags & CLUSTER_EXITTEXTINLUMP,
thiscluster->flags & CLUSTER_FINALEPIC,
thiscluster->flags & CLUSTER_LOOKUPEXITTEXT);
thiscluster->flags & CLUSTER_LOOKUPEXITTEXT,
true);
}
else
{
@ -2059,7 +2060,8 @@ void G_WorldDone (void)
nextcluster->finaleflat, nextcluster->entertext,
nextcluster->flags & CLUSTER_ENTERTEXTINLUMP,
nextcluster->flags & CLUSTER_FINALEPIC,
nextcluster->flags & CLUSTER_LOOKUPENTERTEXT);
nextcluster->flags & CLUSTER_LOOKUPENTERTEXT,
false);
}
else if (thiscluster->exittext)
{
@ -2068,7 +2070,8 @@ void G_WorldDone (void)
thiscluster->finaleflat, thiscluster->exittext,
thiscluster->flags & CLUSTER_EXITTEXTINLUMP,
thiscluster->flags & CLUSTER_FINALEPIC,
thiscluster->flags & CLUSTER_LOOKUPEXITTEXT);
thiscluster->flags & CLUSTER_LOOKUPEXITTEXT,
false);
}
}
}