diff options
author | James Haley | 2013-03-02 06:35:52 +0000 |
---|---|---|
committer | James Haley | 2013-03-02 06:35:52 +0000 |
commit | 4e8d5dc97fe53f4ce110221c218f703834b3b9c2 (patch) | |
tree | 57c35c30fb64e062bbe37d8fc72fe80911b16c35 /src/strife/f_finale.c | |
parent | 6a2255c70b882391931a7ef7ad9ada47a88b7c77 (diff) | |
download | chocolate-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.c | 43 |
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); + } } // |