summaryrefslogtreecommitdiff
path: root/src/strife/f_finale.c
diff options
context:
space:
mode:
authorJames Haley2013-03-02 06:35:52 +0000
committerJames Haley2013-03-02 06:35:52 +0000
commit4e8d5dc97fe53f4ce110221c218f703834b3b9c2 (patch)
tree57c35c30fb64e062bbe37d8fc72fe80911b16c35 /src/strife/f_finale.c
parent6a2255c70b882391931a7ef7ad9ada47a88b7c77 (diff)
downloadchocolate-doom-4e8d5dc97fe53f4ce110221c218f703834b3b9c2.tar.gz
chocolate-doom-4e8d5dc97fe53f4ce110221c218f703834b3b9c2.tar.bz2
chocolate-doom-4e8d5dc97fe53f4ce110221c218f703834b3b9c2.zip
Complete support for v1.31 behaviors in addition to v1.2, including the
ability to save on multiple save slots. Subversion-branch: /branches/v2-branch Subversion-revision: 2561
Diffstat (limited to 'src/strife/f_finale.c')
-rw-r--r--src/strife/f_finale.c43
1 files changed, 39 insertions, 4 deletions
diff --git a/src/strife/f_finale.c b/src/strife/f_finale.c
index ea11c81a..fff2aa9f 100644
--- a/src/strife/f_finale.c
+++ b/src/strife/f_finale.c
@@ -128,6 +128,7 @@ enum
{
// Exit states
SLIDE_EXITHACK = -99, // Hacky exit - start a new dialog
+ SLIDE_HACKHACK = -9, // Bizarre unused state
SLIDE_EXIT = -1, // Exit to next finale state
SLIDE_CHOCO = -2, // haleyjd: This state is Choco-specific... see below.
@@ -161,7 +162,11 @@ enum
// Blah Ending
SLIDE_BLAHEND1 = 17,
SLIDE_BLAHEND2,
- SLIDE_BLAHEND3 // Next state = -1
+ SLIDE_BLAHEND3, // Next state = -1
+
+ // Demo Ending - haleyjd 20130301: v1.31 only
+ SLIDE_DEMOEND1 = 25,
+ SLIDE_DEMOEND2 // Next state = -1
};
//
@@ -231,6 +236,15 @@ void F_StartFinale (void)
break;
case 34: // For the demo version ending
slideshow_state = SLIDE_EXIT;
+
+ // haleyjd 20130301: Somebody noticed the demo levels were missing the
+ // ending they used to have in the demo version EXE, I guess. But the
+ // weird thing is, this will only trigger if you run with strife0.wad,
+ // and no released version thereof actually works with the 1.31 EXE
+ // due to differing dialog formats... was there to be an updated demo
+ // that never got released?!
+ if(gameversion == exe_strife_1_31 && isdemoversion)
+ slideshow_state = SLIDE_DEMOEND1;
break;
}
@@ -404,16 +418,34 @@ static void F_DoSlideShow(void)
slideshow_tics = 315;
break;
+ case SLIDE_DEMOEND1: // state #25 - only exists in 1.31
+ slideshow_panel = DEH_String("PANEL7");
+ slideshow_tics = 175;
+ slideshow_state = SLIDE_DEMOEND2;
+ break;
+ case SLIDE_DEMOEND2: // state #26 - ditto
+ slideshow_panel = DEH_String("VELLOGO");
+ slideshow_tics = 175;
+ slideshow_state = SLIDE_EXIT; // Go to end credits
+ break;
+
case SLIDE_EXITHACK: // state -99: super hack state
gamestate = GS_LEVEL;
P_DialogStartP1();
break;
+ case SLIDE_HACKHACK: // state -9: unknown bizarre unused state
+ S_StartSound(NULL, sfx_rifle);
+ slideshow_tics = 3150;
+ break;
case SLIDE_EXIT: // state -1: proceed to next finale stage
finalecount = 0;
finalestage = F_STAGE_ARTSCREEN;
wipegamestate = -1;
S_StartMusic(mus_fast);
- slideshow_state = SLIDE_CHOCO; // haleyjd: see below...
+ // haleyjd 20130301: The ONLY glitch fixed in 1.31 of Strife
+ // *would* be something this insignificant, of course!
+ if(gameversion != exe_strife_1_31)
+ slideshow_state = SLIDE_CHOCO; // haleyjd: see below...
break;
case SLIDE_CHOCO:
// haleyjd 09/14/10: This wouldn't be necessary except that Choco
@@ -437,8 +469,11 @@ static void F_DoSlideShow(void)
}
finalecount = 0;
- patch = (patch_t *)W_CacheLumpName(DEH_String("PANEL0"), PU_CACHE);
- V_DrawPatch(0, 0, patch);
+ if(gameversion != exe_strife_1_31) // See above. This was removed in 1.31.
+ {
+ patch = (patch_t *)W_CacheLumpName(DEH_String("PANEL0"), PU_CACHE);
+ V_DrawPatch(0, 0, patch);
+ }
}
//