shithub: choc

Download patch

ref: 059c2fc6bbf2957b98fb20fbee2cc14a26f443f6
parent: 57eeaf1d3a8a0fd090e2ccfc37d05131222ec37c
author: Simon Howard <fraggle@gmail.com>
date: Sat Feb 9 14:17:19 EST 2008

Remove some unneeded functions from i_system.c. Make I_Error exit using
exit() rather than abort(). Display a message box with the error on
Windows.

Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 1065

--- a/src/g_game.c
+++ b/src/g_game.c
@@ -389,15 +389,11 @@
     int		tspeed; 
     int		forward;
     int		side;
-    
-    ticcmd_t*	base;
 
-    base = I_BaseTiccmd ();		// empty, or external driver
-    memcpy (cmd,base,sizeof(*cmd)); 
-	
+    memset(cmd, 0, sizeof(ticcmd_t));
+
     cmd->consistancy = 
 	consistancy[consoleplayer][maketic%BACKUPTICS]; 
-
  
     strafe = gamekeydown[key_strafe] || mousebuttons[mousebstrafe] 
 	|| joybuttons[joybstrafe]; 
--- a/src/i_system.c
+++ b/src/i_system.c
@@ -31,6 +31,10 @@
 
 #include <stdarg.h>
 
+#ifdef _WIN32
+#include <windows.h>
+#endif
+
 #include "deh_main.h"
 #include "doomdef.h"
 #include "doomstat.h"
@@ -51,27 +55,15 @@
 #include "w_wad.h"
 #include "z_zone.h"
 
+int mb_used = 16;
+int show_endoom = 1;
 
-int	mb_used = 16;
-int     show_endoom = 1;
+// Tactile feedback function, probably used for the Logitech Cyberman
 
-void
-I_Tactile
-( int	on,
-  int	off,
-  int	total )
+void I_Tactile(int on, int off, int total)
 {
-  // UNUSED.
-  on = off = total = 0;
 }
 
-ticcmd_t	emptycmd;
-ticcmd_t*	I_BaseTiccmd(void)
-{
-    return &emptycmd;
-}
-
-
 int  I_GetHeapSize (void)
 {
     int p;
@@ -107,7 +99,6 @@
 }
 
 
-
 //
 // I_Init
 //
@@ -165,6 +156,7 @@
 //
 // I_Quit
 //
+
 void I_Quit (void)
 {
     D_QuitNetGame ();
@@ -191,16 +183,6 @@
     I_Sleep((count * 1000) / 70);
 }
 
-byte*	I_AllocLow(int length)
-{
-    byte*	mem;
-        
-    mem = (byte *)malloc (length);
-    memset (mem,0,length);
-    return mem;
-}
-
-
 //
 // I_Error
 //
@@ -223,21 +205,40 @@
     }
     
     // Message first.
-    va_start (argptr,error);
-    fprintf (stderr, "Error: ");
-    vfprintf (stderr,error,argptr);
-    fprintf (stderr, "\n");
-    va_end (argptr);
+    va_start(argptr, error);
+    fprintf(stderr, "Error: ");
+    vfprintf(stderr, error, argptr);
+    fprintf(stderr, "\n");
+    va_end(argptr);
+    fflush(stderr);
 
-    fflush( stderr );
-
     // Shutdown. Here might be other errors.
+
     if (demorecording)
+    {
 	G_CheckDemoStatus();
+    }
 
     D_QuitNetGame ();
     I_ShutdownGraphics();
+    S_Shutdown();
     
-    abort();
+#ifdef _WIN32
+    // On Windows, pop up a dialog box with the error message.
+    {
+        char msgbuf[512];
+
+        va_start(argptr, error);
+        memset(msgbuf, 0, sizeof(msgbuf));
+        vsnprintf(msgbuf, sizeof(msgbuf) - 1, error, argptr);
+        va_end(argptr);
+
+        MessageBox(NULL, msgbuf, "Error", MB_OK);
+    }
+#endif
+
+    // abort();
+
+    exit(-1);
 }
 
--- a/src/v_video.c
+++ b/src/v_video.c
@@ -40,6 +40,7 @@
 
 #include "v_video.h"
 
+#include "z_zone.h"
 
 // Each screen is [SCREENWIDTH*SCREENHEIGHT]; 
 byte*				screens[5];	
@@ -484,8 +485,11 @@
 		
     // stick these in low dos memory on PCs
 
-    base = I_AllocLow (SCREENWIDTH*SCREENHEIGHT*4);
+    base = Z_Malloc(SCREENWIDTH * SCREENHEIGHT * 4, PU_STATIC, NULL);
 
     for (i=0 ; i<4 ; i++)
+    {
 	screens[i] = base + i*SCREENWIDTH*SCREENHEIGHT;
+    }
 }
+