[chocolate-doom] 05/07: Fix help screen orderings and skull positions to make Chocolate Doom behave exactly like the original executables.

Jonathan Dowland jmtd at moszumanska.debian.org
Mon Jan 30 15:07:09 UTC 2017


This is an automated email from the git hooks/post-receive script.

jmtd pushed a commit to annotated tag chocolate-doom-0.1.2
in repository chocolate-doom.

commit 5206b75d90149512b1a76efe73d774e1b6cb46d7
Author: Simon Howard <fraggle at gmail.com>
Date:   Sat Oct 29 21:38:55 2005 +0000

    Fix help screen orderings and skull positions to make Chocolate Doom
    behave exactly like the original executables.
    
    Subversion-branch: /trunk/chocolate-doom
    Subversion-revision: 225
---
 NEWS         |   2 ++
 src/m_menu.c | 113 +++++++++++++++++++++++++++++++++++++++--------------------
 2 files changed, 77 insertions(+), 38 deletions(-)

diff --git a/NEWS b/NEWS
index fd2e0d5..0e7d5a2 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,8 @@
     Handle multiple replacements of the same sprite in a PWAD.
     Support specifying a specific version to emulate via the command line
         (-gameversion)
+    Fix help screen orderings and skull positions.  Behave exactly as
+        the original executables do.
 
 0.1.1 (2005-10-18):
     Display startup "banners" if they have been modified through 
diff --git a/src/m_menu.c b/src/m_menu.c
index 555337e..612bb48 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -1,7 +1,7 @@
 // Emacs style mode select   -*- C++ -*- 
 //-----------------------------------------------------------------------------
 //
-// $Id: m_menu.c 204 2005-10-16 20:55:50Z fraggle $
+// $Id: m_menu.c 225 2005-10-29 21:38:55Z fraggle $
 //
 // Copyright(C) 1993-1996 Id Software, Inc.
 // Copyright(C) 2005 Simon Howard
@@ -22,6 +22,10 @@
 // 02111-1307, USA.
 //
 // $Log$
+// Revision 1.11  2005/10/29 21:38:55  fraggle
+// Fix help screen orderings and skull positions to make Chocolate Doom
+// behave exactly like the original executables.
+//
 // Revision 1.10  2005/10/16 20:55:50  fraggle
 // Fix the '-cdrom' command-line option.
 //
@@ -65,7 +69,7 @@
 //-----------------------------------------------------------------------------
 
 static const char
-rcsid[] = "$Id: m_menu.c 204 2005-10-16 20:55:50Z fraggle $";
+rcsid[] = "$Id: m_menu.c 225 2005-10-29 21:38:55Z fraggle $";
 
 #include <stdlib.h>
 #include <ctype.h>
@@ -787,21 +791,58 @@ void M_QuickLoad(void)
 //
 void M_DrawReadThis1(void)
 {
+    char *lumpname = "CREDIT";
+    int skullx = 330, skully = 175;
+
     inhelpscreens = true;
-    switch ( gamemode )
+    
+    // Different versions of Doom 1.9 work differently
+
+    switch (gameversion)
     {
-      case commercial:
-	V_DrawPatchDirect (0,0,0,W_CacheLumpName("HELP",PU_CACHE));
-	break;
-      case shareware:
-      case registered:
-      case retail:
-	V_DrawPatchDirect (0,0,0,W_CacheLumpName("HELP1",PU_CACHE));
-	break;
-      default:
-	break;
+        case exe_doom_1_9:
+            if (gamemode == commercial)
+            {
+                // Doom 2
+
+                lumpname = "HELP";
+
+                skullx = 330;
+                skully = 165;
+            }
+            else
+            {
+                // Doom 1
+                // HELP2 is the first screen shown in Doom 1
+                
+                lumpname = "HELP2";
+
+                skullx = 280;
+                skully = 185;
+            }
+            break;
+
+        case exe_ultimate:
+
+            // Ultimate Doom always displays "HELP1".
+
+            lumpname = "HELP1";
+
+            break;
+
+        case exe_final:
+
+            // Final Doom always displays "HELP".
+
+            lumpname = "HELP";
+
+            break;
     }
-    return;
+    
+    V_DrawPatchDirect (0, 0, 0, W_CacheLumpName(lumpname, PU_CACHE));
+
+    ReadDef1.x = skullx;
+    ReadDef1.y = skully;
 }
 
 
@@ -812,21 +853,11 @@ void M_DrawReadThis1(void)
 void M_DrawReadThis2(void)
 {
     inhelpscreens = true;
-    switch ( gamemode )
-    {
-      case retail:
-      case commercial:
-	// This hack keeps us from having to change menus.
-	V_DrawPatchDirect (0,0,0,W_CacheLumpName("CREDIT",PU_CACHE));
-	break;
-      case shareware:
-      case registered:
-	V_DrawPatchDirect (0,0,0,W_CacheLumpName("HELP2",PU_CACHE));
-	break;
-      default:
-	break;
-    }
-    return;
+
+    // We only ever draw the second page if this is 
+    // gameversion == exe_doom_1_9 and gamemode == registered
+
+    V_DrawPatchDirect(0, 0, 0, W_CacheLumpName("HELP1", PU_CACHE));
 }
 
 
@@ -1071,8 +1102,20 @@ void M_ReadThis(int choice)
 
 void M_ReadThis2(int choice)
 {
-    choice = 0;
-    M_SetupNextMenu(&ReadDef2);
+    // Doom 1.9 had two menus when playing Doom 1
+    // All others had only one
+
+    if (gameversion == exe_doom_1_9 && gamemode != commercial)
+    {
+        choice = 0;
+        M_SetupNextMenu(&ReadDef2);
+    }
+    else
+    {
+        // Close the menu
+
+        M_FinishReadThis(0);
+    }
 }
 
 void M_FinishReadThis(int choice)
@@ -1914,17 +1957,11 @@ void M_Init (void)
     switch ( gamemode )
     {
       case commercial:
-	// This is used because DOOM 2 had only one HELP
-        //  page. I use CREDIT as second page now, but
-	//  kept this hack for educational purposes.
+        // Commercial has no "read this" entry.
 	MainMenu[readthis] = MainMenu[quitdoom];
 	MainDef.numitems--;
 	MainDef.y += 8;
 	NewDef.prevMenu = &MainDef;
-	ReadDef1.routine = M_DrawReadThis1;
-	ReadDef1.x = 330;
-	ReadDef1.y = 165;
-	ReadMenu1[0].routine = M_FinishReadThis;
 	break;
       case shareware:
 	// Episode 2 and 3 are handled,

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/chocolate-doom.git



More information about the Pkg-games-commits mailing list