From 22200650762b044b2f55026b91a175716d2a73f2 Mon Sep 17 00:00:00 2001 From: James Haley Date: Tue, 24 Aug 2010 03:40:16 +0000 Subject: Removed storedemo and Chex Quest cruft, adjusted screenwipe loop timing, added DoTimeBomb function for historical interest, removed GS_INTERMISSION and #if 0'd all of wi_stuff.c/.h. Removed DOOM level transfer logic from G_DoCompleted - note that you cannot currently go to the next level at *all*. Removed G_SecretExitLevel and DOOM par times. Subversion-branch: /branches/strife-branch Subversion-revision: 1966 --- src/strife/d_main.c | 280 +++++++++++++++++++++++++++++--------------------- src/strife/g_game.c | 226 ++++++++++------------------------------ src/strife/g_game.h | 2 +- src/strife/p_spec.c | 2 +- src/strife/p_switch.c | 2 +- src/strife/wi_stuff.c | 4 +- src/strife/wi_stuff.h | 3 + 7 files changed, 226 insertions(+), 293 deletions(-) (limited to 'src/strife') diff --git a/src/strife/d_main.c b/src/strife/d_main.c index df448a5d..60021344 100644 --- a/src/strife/d_main.c +++ b/src/strife/d_main.c @@ -153,16 +153,16 @@ void D_ProcessEvents (void) // haleyjd 08/22/2010: [STRIFE] there is no such thing as a "store demo" // version of Strife - + // IF STORE DEMO, DO NOT ACCEPT INPUT //if (storedemo) // return; - + while ((ev = D_PopEvent()) != NULL) { - if (M_Responder (ev)) - continue; // menu ate the event - G_Responder (ev); + if (M_Responder (ev)) + continue; // menu ate the event + G_Responder (ev); } } @@ -173,8 +173,11 @@ void D_ProcessEvents (void) // D_Display // draw current display, possibly wiping it from the previous // - // wipegamestate can be set to -1 to force a wipe on the next draw +// +// haleyjd 08/23/10: [STRIFE]: +// * Changes to eliminate intermission and change timing of screenwipe +// gamestate_t wipegamestate = GS_DEMOSCREEN; extern boolean setsizeneeded; extern int showMessages; @@ -182,105 +185,111 @@ void R_ExecuteSetViewSize (void); void D_Display (void) { - static boolean viewactivestate = false; - static boolean menuactivestate = false; - static boolean inhelpscreensstate = false; - static boolean fullscreen = false; - static gamestate_t oldgamestate = -1; - static int borderdrawcount; - int nowtime; - int tics; - int wipestart; - int y; - boolean done; - boolean wipe; - boolean redrawsbar; + static boolean viewactivestate = false; + static boolean menuactivestate = false; + static boolean inhelpscreensstate = false; + static boolean fullscreen = false; + static gamestate_t oldgamestate = -1; + static int borderdrawcount; + int nowtime; + int tics; + int wipestart; + int y; + boolean done; + boolean wipe; + boolean redrawsbar; if (nodrawers) - return; // for comparative timing / profiling - + return; // for comparative timing / profiling + redrawsbar = false; // change the view size if needed if (setsizeneeded) { - R_ExecuteSetViewSize (); - oldgamestate = -1; // force background redraw - borderdrawcount = 3; + R_ExecuteSetViewSize (); + oldgamestate = -1; // force background redraw + borderdrawcount = 3; } // save the current screen if about to wipe if (gamestate != wipegamestate) { - wipe = true; - wipe_StartScreen(0, 0, SCREENWIDTH, SCREENHEIGHT); + wipe = true; + wipe_StartScreen(0, 0, SCREENWIDTH, SCREENHEIGHT); } else - wipe = false; + wipe = false; if (gamestate == GS_LEVEL && gametic) - HU_Erase(); - + HU_Erase(); + // do buffered drawing switch (gamestate) { - case GS_LEVEL: - if (!gametic) - break; - if (automapactive) - AM_Drawer (); - if (wipe || (viewheight != 200 && fullscreen) ) - redrawsbar = true; - if (inhelpscreensstate && !inhelpscreens) - redrawsbar = true; // just put away the help screen - ST_Drawer (viewheight == 200, redrawsbar ); - fullscreen = viewheight == 200; - break; - - case GS_INTERMISSION: - WI_Drawer (); - break; - - case GS_FINALE: - F_Drawer (); - break; - - case GS_DEMOSCREEN: - D_PageDrawer (); - break; + case GS_LEVEL: + if (!gametic) + break; + if (automapactive) + AM_Drawer (); + if (wipe || (viewheight != 200 && fullscreen) ) + redrawsbar = true; + if (inhelpscreensstate && !inhelpscreens) + redrawsbar = true; // just put away the help screen + ST_Drawer (viewheight == 200, redrawsbar ); + fullscreen = viewheight == 200; + break; + + // haleyjd 08/23/2010: [STRIFE] No intermission + /* + case GS_INTERMISSION: + WI_Drawer (); + break; + */ + case GS_FINALE: + F_Drawer (); + break; + + case GS_DEMOSCREEN: + D_PageDrawer (); + break; } // draw buffered stuff to screen I_UpdateNoBlit (); - + // draw the view directly if (gamestate == GS_LEVEL && !automapactive && gametic) - R_RenderPlayerView (&players[displayplayer]); + R_RenderPlayerView (&players[displayplayer]); if (gamestate == GS_LEVEL && gametic) - HU_Drawer (); - + HU_Drawer (); + // clean up border stuff if (gamestate != oldgamestate && gamestate != GS_LEVEL) - I_SetPalette (W_CacheLumpName (DEH_String("PLAYPAL"),PU_CACHE)); + I_SetPalette (W_CacheLumpName (DEH_String("PLAYPAL"),PU_CACHE)); // see if the border needs to be initially drawn if (gamestate == GS_LEVEL && oldgamestate != GS_LEVEL) { - viewactivestate = false; // view was not active - R_FillBackScreen (); // draw the pattern into the back screen + viewactivestate = false; // view was not active + R_FillBackScreen (); // draw the pattern into the back screen } // see if the border needs to be updated to the screen if (gamestate == GS_LEVEL && !automapactive && scaledviewwidth != 320) { - if (menuactive || menuactivestate || !viewactivestate) - borderdrawcount = 3; - if (borderdrawcount) - { - R_DrawViewBorder (); // erase old menu stuff - borderdrawcount--; - } + if (menuactive || menuactivestate || !viewactivestate) + { + borderdrawcount = 3; + // STRIFE-FIXME / TODO: Unknown variable + // dword_861C8 = 0; + } + if (borderdrawcount) + { + R_DrawViewBorder (); // erase old menu stuff + borderdrawcount--; + } } @@ -295,15 +304,15 @@ void D_Display (void) viewactivestate = viewactive; inhelpscreensstate = inhelpscreens; oldgamestate = wipegamestate = gamestate; - + // draw pause pic if (paused) { - if (automapactive) - y = 4; - else - y = viewwindowy+4; - V_DrawPatchDirect(viewwindowx + (scaledviewwidth - 68) / 2, y, + if (automapactive) + y = 4; + else + y = viewwindowy+4; + V_DrawPatchDirect(viewwindowx + (scaledviewwidth - 68) / 2, y, W_CacheLumpName (DEH_String("M_PAUSE"), PU_CACHE)); } @@ -316,8 +325,8 @@ void D_Display (void) // normal update if (!wipe) { - I_FinishUpdate (); // page flip or blit buffer - return; + I_FinishUpdate (); // page flip or blit buffer + return; } // wipe update @@ -327,19 +336,19 @@ void D_Display (void) do { - do - { - nowtime = I_GetTime (); - tics = nowtime - wipestart; + do + { + nowtime = I_GetTime (); + tics = nowtime - wipestart; I_Sleep(1); - } while (tics <= 0); - - wipestart = nowtime; - done = wipe_ScreenWipe(wipe_Melt - , 0, 0, SCREENWIDTH, SCREENHEIGHT, tics); - I_UpdateNoBlit (); - M_Drawer (); // menu is drawn even on top of wipes - I_FinishUpdate (); // page flip or blit buffer + } while (tics < 3); // haleyjd 08/23/2010: [STRIFE] Changed from == 0 to < 3 + + wipestart = nowtime; + done = wipe_ScreenWipe(wipe_Melt + , 0, 0, SCREENWIDTH, SCREENHEIGHT, tics); + I_UpdateNoBlit (); + M_Drawer (); // menu is drawn even on top of wipes + I_FinishUpdate (); // page flip or blit buffer } while (!done); } @@ -414,6 +423,8 @@ boolean D_GrabMouseCallback(void) // // D_DoomLoop // +// haleyjd 08/23/10: [STRIFE] Verified unmodified. +// extern boolean demorecording; void D_DoomLoop (void) @@ -504,6 +515,8 @@ void D_PageTicker (void) // // D_PageDrawer // +// haleyjd 08/22/2010: [STRIFE] verified unmodified +// void D_PageDrawer (void) { V_DrawPatch (0, 0, W_CacheLumpName(pagename, PU_CACHE)); @@ -599,6 +612,7 @@ void D_DoAdvanceDemo (void) // void D_StartTitle (void) { + // STRIFE-FIXME: some poorly understood changes are pending here gameaction = ga_nothing; demosequence = -1; D_AdvanceDemo (); @@ -747,6 +761,39 @@ void D_IdentifyVersion(void) } } +#if 0 +// +// DoTimeBomb +// +// haleyjd 08/23/2010: [STRIFE] New function +// Code with no xrefs; probably left over from a private alpha or beta. +// Translated here because it explains what the SERIAL lump was meant to do. +// +void DoTimeBomb(void) +{ + dosdate_t date; + char *serial; + int serialnum; + int serial_year; + int serial_month; + + serial = W_CacheLumpName("serial", PU_CACHE); + serialnum = atoi(serial); + + // Rogue, much like Governor Mourel, were lousy liars. These deceptive + // error messages are pretty low :P + dos_getdate(&date); + if(date.year > 1996 || date.day > 15 && date.month > 4) + I_Error("Data error! Corrupted WAD File!"); + serial_year = serialnum / 10000; + serial_month = serialnum / 100 - 100 * serial_year; + if(date.year < serial_year || + date.day < serialnum - 100 * serial_month - 10000 * serial_year && + date.month < serial_month) + I_Error("Bad wadfile"); +} +#endif + // Set the gamedescription string void D_SetGameDescription(void) @@ -821,7 +868,9 @@ static void SetSaveGameDir(char *iwad_filename) // Check if the IWAD file is the Chex Quest IWAD. // Returns true if this is chex.wad. - +// haleyjd 08/23/10: there is no Chex Quest based on Strife, +// though I must admit that makes an intriguing idea.... +/* static boolean CheckChex(char *iwadname) { char *chex_iwadname = "chex.wad"; @@ -830,6 +879,7 @@ static boolean CheckChex(char *iwadname) && !strcasecmp(iwadname + strlen(iwadname) - strlen(chex_iwadname), chex_iwadname)); } +*/ // print title for every printed line char title[128]; @@ -951,13 +1001,8 @@ static void InitGameVersion(void) { // Determine automatically - if (CheckChex(iwadfile)) - { - // chex.exe - identified by iwad filename - - gameversion = exe_chex; - } - else if (gamemode == shareware || gamemode == registered) + // haleyjd 08/23/10: Removed Chex mode, as it is irrelevant to Strife + if (gamemode == shareware || gamemode == registered) { // original @@ -1013,7 +1058,8 @@ void PrintGameVersion(void) } // Load the Chex Quest dehacked file, if we are in Chex mode. - +// haleyjd 08/23/2010: Removed, as irrelevant to Strife. +/* static void LoadChexDeh(void) { char *chex_deh; @@ -1037,6 +1083,7 @@ static void LoadChexDeh(void) } } } +*/ // Function called at exit to display the ENDOOM screen @@ -1052,6 +1099,7 @@ static void D_Endoom(void) return; } + // STRIFE-TODO: ENDOOM -> ENDSTRF endoom = W_CacheLumpName(DEH_String("ENDOOM"), PU_STATIC); I_Endoom(endoom); @@ -1514,35 +1562,35 @@ void D_DoomMain (void) D_IdentifyVersion(); InitGameVersion(); - LoadChexDeh(); + //LoadChexDeh(); - haleyjd: removed, as irrelevant to Strife D_SetGameDescription(); SetSaveGameDir(iwadfile); // Check for -file in shareware if (modifiedgame) { - // These are the lumps that will be checked in IWAD, - // if any one is not present, execution will be aborted. + // These are the lumps that will be checked in IWAD, + // if any one is not present, execution will be aborted. // haleyjd 08/22/2010: [STRIFE] Check for Strife lumps. - char name[3][8]= - { - "map23", "map30", "ROB3E1" - }; - int i; - + char name[3][8]= + { + "map23", "map30", "ROB3E1" + }; + int i; + // haleyjd 08/22/2010: [STRIFE] Changed string to match binary // STRIFE-FIXME: Needs to test isdemoversion variable - if ( gamemode == shareware) - I_Error(DEH_String("\nYou cannot -file with the demo " - "version. You must buy the real game!")); + if ( gamemode == shareware) + I_Error(DEH_String("\nYou cannot -file with the demo " + "version. You must buy the real game!")); - // Check for fake IWAD with right name, - // but w/o all the lumps of the registered version. + // Check for fake IWAD with right name, + // but w/o all the lumps of the registered version. // STRIFE-FIXME: Needs to test isregistered variable - if (gamemode == registered) - for (i = 0; i < 3; i++) - if (W_CheckNumForName(name[i])<0) - I_Error(DEH_String("\nThis is not the registered version.")); + if (gamemode == registered) + for (i = 0; i < 3; i++) + if (W_CheckNumForName(name[i])<0) + I_Error(DEH_String("\nThis is not the registered version.")); } // get skill / episode / map from parms @@ -1732,9 +1780,11 @@ void D_DoomMain (void) // If Doom II without a MAP01 lump, this is a store demo. // Moved this here so that MAP01 isn't constantly looked up // in the main loop. - + // haleyjd 08/23/2010: [STRIFE] There is no storedemo version of Strife + /* if (gamemode == commercial && W_CheckNumForName("map01") < 0) storedemo = true; + */ //! // @arg diff --git a/src/strife/g_game.c b/src/strife/g_game.c index 8d0e4503..0198f5db 100644 --- a/src/strife/g_game.c +++ b/src/strife/g_game.c @@ -921,34 +921,40 @@ void G_Ticker (void) // Have we just finished displaying an intermission screen? + // haleyjd 08/23/10: [STRIFE] No intermission. + /* if (oldgamestate == GS_INTERMISSION && gamestate != GS_INTERMISSION) { WI_End(); } + */ oldgamestate = gamestate; - + // do main actions switch (gamestate) { - case GS_LEVEL: - P_Ticker (); - ST_Ticker (); - AM_Ticker (); - HU_Ticker (); - break; - - case GS_INTERMISSION: - WI_Ticker (); - break; - - case GS_FINALE: - F_Ticker (); - break; - - case GS_DEMOSCREEN: - D_PageTicker (); - break; + case GS_LEVEL: + P_Ticker (); + ST_Ticker (); + AM_Ticker (); + HU_Ticker (); + break; + + // haleyjd 08/23/10: [STRIFE] No intermission. + /* + case GS_INTERMISSION: + WI_Ticker (); + break; + */ + + case GS_FINALE: + F_Ticker (); + break; + + case GS_DEMOSCREEN: + D_PageTicker (); + break; } } @@ -1176,27 +1182,8 @@ void G_ScreenShot (void) { gameaction = ga_screenshot; } - - -// DOOM Par Times -int pars[4][10] = -{ - {0}, - {0,30,75,120,90,165,180,180,30,165}, - {0,90,90,90,120,90,360,240,30,170}, - {0,90,45,90,150,90,90,165,30,135} -}; - -// DOOM II Par Times -int cpars[32] = -{ - 30,90,120,120,90,150,120,120,270,90, // 1-10 - 210,150,150,150,210,150,420,150,210,150, // 11-20 - 240,150,180,150,150,300,330,420,300,180, // 21-30 - 120,30 // 31-32 -}; - +// haleyjd 08/23/2010: [STRIFE] Removed par times. // // G_DoCompleted @@ -1210,151 +1197,42 @@ void G_ExitLevel (void) gameaction = ga_completed; } +/* +// haleyjd 08/23/2010: [STRIFE] No secret exits in Strife. // Here's for the german edition. void G_SecretExitLevel (void) -{ +{ // IF NO WOLF3D LEVELS, NO SECRET EXIT! if ( (gamemode == commercial) - && (W_CheckNumForName("map31")<0)) - secretexit = false; + && (W_CheckNumForName("map31")<0)) + secretexit = false; else - secretexit = true; + secretexit = true; gameaction = ga_completed; -} - +} +*/ + +// +// G_DoCompleted +// +// haleyjd 08/23/10: [STRIFE]: +// * Removed G_PlayerFinishLevel call for now... STRIFE-TODO +// * Removed Chex, as not relevant to Strife. +// * Removed DOOM level transfer logic +// * Removed intermission code. +// * Added setting gameaction to ga_worlddone. +// void G_DoCompleted (void) -{ - int i; - - gameaction = ga_nothing; - - for (i=0 ; i #include "z_zone.h" @@ -1839,3 +1840,4 @@ void WI_Start(wbstartstruct_t* wbstartstruct) else WI_initStats(); } +#endif diff --git a/src/strife/wi_stuff.h b/src/strife/wi_stuff.h index 7d3a84b9..3ddd4950 100644 --- a/src/strife/wi_stuff.h +++ b/src/strife/wi_stuff.h @@ -27,6 +27,8 @@ #ifndef __WI_STUFF__ #define __WI_STUFF__ +// haleyjd 08/23/2010: Strife does not have an intermission +#if 0 //#include "v_video.h" #include "doomdef.h" @@ -54,3 +56,4 @@ void WI_Start(wbstartstruct_t* wbstartstruct); void WI_End(void); #endif +#endif -- cgit v1.2.3