- 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) September 25, 2007 (Changes by Graf Zahl)
- Fixed: AActor::CopyFriendliness must not copy the target if it has the - Fixed: AActor::CopyFriendliness must not copy the target if it has the
MF3_NOTARGET flag set. MF3_NOTARGET flag set.

View file

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

View file

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