shithub: choc

Download patch

ref: 5a32ee7e78697f4b3d94a435c21f6b08a0ae839a
parent: 871d3b3da6c84be394963d1f5a41de12bfc5a2bc
author: Simon Howard <fraggle@gmail.com>
date: Sat Sep 20 17:57:49 EDT 2008

Move m_random.[ch] to doom/ (as Hexen uses a different random number
table). Split RNG code out of heretic/m_misc.c to a separate m_random.c.

Subversion-branch: /branches/raven-branch
Subversion-revision: 1256

--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -51,7 +51,6 @@
 m_misc.c             m_misc.h              \
 md5.c                md5.h                 \
 memio.c              memio.h               \
-m_random.c           m_random.h            \
 tables.c             tables.h              \
 v_video.c            v_video.h             \
                      v_patch.h             \
--- a/src/doom/Makefile.am
+++ b/src/doom/Makefile.am
@@ -23,6 +23,7 @@
 hu_stuff.c         hu_stuff.h   \
 info.c             info.h       \
 m_menu.c           m_menu.h     \
+m_random.c         m_random.h   \
 p_ceilng.c                      \
 p_doors.c                       \
 p_enemy.c                       \
--- /dev/null
+++ b/src/doom/m_random.c
@@ -1,0 +1,86 @@
+// Emacs style mode select   -*- C++ -*- 
+//-----------------------------------------------------------------------------
+//
+// Copyright(C) 1993-1996 Id Software, Inc.
+// Copyright(C) 2005 Simon Howard
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+// DESCRIPTION:
+//	Random number LUT.
+//
+//-----------------------------------------------------------------------------
+
+
+#include <time.h>
+
+#include "m_random.h"
+
+//
+// M_Random
+// Returns a 0-255 number
+//
+
+static const unsigned char rndtable[256] = {
+    0,   8, 109, 220, 222, 241, 149, 107,  75, 248, 254, 140,  16,  66 ,
+    74,  21, 211,  47,  80, 242, 154,  27, 205, 128, 161,  89,  77,  36 ,
+    95, 110,  85,  48, 212, 140, 211, 249,  22,  79, 200,  50,  28, 188 ,
+    52, 140, 202, 120,  68, 145,  62,  70, 184, 190,  91, 197, 152, 224 ,
+    149, 104,  25, 178, 252, 182, 202, 182, 141, 197,   4,  81, 181, 242 ,
+    145,  42,  39, 227, 156, 198, 225, 193, 219,  93, 122, 175, 249,   0 ,
+    175, 143,  70, 239,  46, 246, 163,  53, 163, 109, 168, 135,   2, 235 ,
+    25,  92,  20, 145, 138,  77,  69, 166,  78, 176, 173, 212, 166, 113 ,
+    94, 161,  41,  50, 239,  49, 111, 164,  70,  60,   2,  37, 171,  75 ,
+    136, 156,  11,  56,  42, 146, 138, 229,  73, 146,  77,  61,  98, 196 ,
+    135, 106,  63, 197, 195,  86,  96, 203, 113, 101, 170, 247, 181, 113 ,
+    80, 250, 108,   7, 255, 237, 129, 226,  79, 107, 112, 166, 103, 241 ,
+    24, 223, 239, 120, 198,  58,  60,  82, 128,   3, 184,  66, 143, 224 ,
+    145, 224,  81, 206, 163,  45,  63,  90, 168, 114,  59,  33, 159,  95 ,
+    28, 139, 123,  98, 125, 196,  15,  70, 194, 253,  54,  14, 109, 226 ,
+    71,  17, 161,  93, 186,  87, 244, 138,  20,  52, 123, 251,  26,  36 ,
+    17,  46,  52, 231, 232,  76,  31, 221,  84,  37, 216, 165, 212, 106 ,
+    197, 242,  98,  43,  39, 175, 254, 145, 190,  84, 118, 222, 187, 136 ,
+    120, 163, 236, 249
+};
+
+int	rndindex = 0;
+int	prndindex = 0;
+
+// Which one is deterministic?
+int P_Random (void)
+{
+    prndindex = (prndindex+1)&0xff;
+    return rndtable[prndindex];
+}
+
+int M_Random (void)
+{
+    rndindex = (rndindex+1)&0xff;
+    return rndtable[rndindex];
+}
+
+void M_ClearRandom (void)
+{
+    prndindex = 0;
+
+    // Seed the M_Random counter from the system time
+
+    rndindex = time(NULL) & 0xff;
+}
+
+
+
+
--- /dev/null
+++ b/src/doom/m_random.h
@@ -1,0 +1,47 @@
+// Emacs style mode select   -*- C++ -*- 
+//-----------------------------------------------------------------------------
+//
+// Copyright(C) 1993-1996 Id Software, Inc.
+// Copyright(C) 2005 Simon Howard
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+// DESCRIPTION:
+//
+//    
+//-----------------------------------------------------------------------------
+
+
+#ifndef __M_RANDOM__
+#define __M_RANDOM__
+
+
+#include "doomtype.h"
+
+
+
+// Returns a number from 0 to 255,
+// from a lookup table.
+int M_Random (void);
+
+// As M_Random, but used only by the play simulation.
+int P_Random (void);
+
+// Fix randoms for demos.
+void M_ClearRandom (void);
+
+
+#endif
--- a/src/heretic/Makefile.am
+++ b/src/heretic/Makefile.am
@@ -17,6 +17,7 @@
 info.c                 info.h                        \
 in_lude.c                                            \
 m_misc.c                                             \
+m_random.c             m_random.h                    \
 mn_menu.c                                            \
 p_ceilng.c                                           \
 p_doors.c                                            \
--- a/src/heretic/doomdef.h
+++ b/src/heretic/doomdef.h
@@ -213,9 +213,6 @@
     fixed_t x, y, z;
 } degenmobj_t;
 
-// Most damage defined using HITDICE
-#define HITDICE(a) ((1+(P_Random()&7))*a)
-
 //
 // frame flags
 //
@@ -625,7 +622,6 @@
 
 #define	MAXNETNODES		8
 extern ticcmd_t localcmds[BACKUPTICS];
-extern int rndindex;
 extern int gametic, maketic;
 extern int nettics[MAXNETNODES];
 
@@ -917,14 +913,6 @@
 
 void M_ForceUppercase(char *text);
 // Changes a string to uppercase
-
-int M_Random(void);
-// returns a number from 0 to 255
-int P_Random(void);
-// as M_Random, but used only by the play simulation
-
-void M_ClearRandom(void);
-// fix randoms for demos
 
 void M_ClearBox(fixed_t * box);
 void M_AddToBox(fixed_t * box, fixed_t x, fixed_t y);
--- a/src/heretic/g_game.c
+++ b/src/heretic/g_game.c
@@ -28,6 +28,7 @@
 #include "doomdef.h"
 #include "doomkeys.h"
 #include "m_misc.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "s_sound.h"
 #include "v_video.h"
--- a/src/heretic/m_misc.c
+++ b/src/heretic/m_misc.c
@@ -86,58 +86,6 @@
     return true;
 }
 
-/*
-===============
-=
-= M_Random
-=
-= Returns a 0-255 number
-=
-===============
-*/
-
-unsigned char rndtable[256] = {
-    0, 8, 109, 220, 222, 241, 149, 107, 75, 248, 254, 140, 16, 66,
-    74, 21, 211, 47, 80, 242, 154, 27, 205, 128, 161, 89, 77, 36,
-    95, 110, 85, 48, 212, 140, 211, 249, 22, 79, 200, 50, 28, 188,
-    52, 140, 202, 120, 68, 145, 62, 70, 184, 190, 91, 197, 152, 224,
-    149, 104, 25, 178, 252, 182, 202, 182, 141, 197, 4, 81, 181, 242,
-    145, 42, 39, 227, 156, 198, 225, 193, 219, 93, 122, 175, 249, 0,
-    175, 143, 70, 239, 46, 246, 163, 53, 163, 109, 168, 135, 2, 235,
-    25, 92, 20, 145, 138, 77, 69, 166, 78, 176, 173, 212, 166, 113,
-    94, 161, 41, 50, 239, 49, 111, 164, 70, 60, 2, 37, 171, 75,
-    136, 156, 11, 56, 42, 146, 138, 229, 73, 146, 77, 61, 98, 196,
-    135, 106, 63, 197, 195, 86, 96, 203, 113, 101, 170, 247, 181, 113,
-    80, 250, 108, 7, 255, 237, 129, 226, 79, 107, 112, 166, 103, 241,
-    24, 223, 239, 120, 198, 58, 60, 82, 128, 3, 184, 66, 143, 224,
-    145, 224, 81, 206, 163, 45, 63, 90, 168, 114, 59, 33, 159, 95,
-    28, 139, 123, 98, 125, 196, 15, 70, 194, 253, 54, 14, 109, 226,
-    71, 17, 161, 93, 186, 87, 244, 138, 20, 52, 123, 251, 26, 36,
-    17, 46, 52, 231, 232, 76, 31, 221, 84, 37, 216, 165, 212, 106,
-    197, 242, 98, 43, 39, 175, 254, 145, 190, 84, 118, 222, 187, 136,
-    120, 163, 236, 249
-};
-int rndindex = 0;
-int prndindex = 0;
-
-int P_Random(void)
-{
-    prndindex = (prndindex + 1) & 0xff;
-    return rndtable[prndindex];
-}
-
-int M_Random(void)
-{
-    rndindex = (rndindex + 1) & 0xff;
-    return rndtable[rndindex];
-}
-
-void M_ClearRandom(void)
-{
-    rndindex = prndindex = 0;
-}
-
-
 void M_ClearBox(fixed_t * box)
 {
     box[BOXTOP] = box[BOXRIGHT] = INT_MIN;
--- /dev/null
+++ b/src/heretic/m_random.c
@@ -1,0 +1,77 @@
+// Emacs style mode select   -*- C++ -*- 
+//-----------------------------------------------------------------------------
+//
+// Copyright(C) 1993-1996 Id Software, Inc.
+// Copyright(C) 1993-2008 Raven Software
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+//-----------------------------------------------------------------------------
+
+#include "m_random.h"
+
+/*
+===============
+=
+= M_Random
+=
+= Returns a 0-255 number
+=
+===============
+*/
+
+const unsigned int rndtable[256] = {
+    0, 8, 109, 220, 222, 241, 149, 107, 75, 248, 254, 140, 16, 66,
+    74, 21, 211, 47, 80, 242, 154, 27, 205, 128, 161, 89, 77, 36,
+    95, 110, 85, 48, 212, 140, 211, 249, 22, 79, 200, 50, 28, 188,
+    52, 140, 202, 120, 68, 145, 62, 70, 184, 190, 91, 197, 152, 224,
+    149, 104, 25, 178, 252, 182, 202, 182, 141, 197, 4, 81, 181, 242,
+    145, 42, 39, 227, 156, 198, 225, 193, 219, 93, 122, 175, 249, 0,
+    175, 143, 70, 239, 46, 246, 163, 53, 163, 109, 168, 135, 2, 235,
+    25, 92, 20, 145, 138, 77, 69, 166, 78, 176, 173, 212, 166, 113,
+    94, 161, 41, 50, 239, 49, 111, 164, 70, 60, 2, 37, 171, 75,
+    136, 156, 11, 56, 42, 146, 138, 229, 73, 146, 77, 61, 98, 196,
+    135, 106, 63, 197, 195, 86, 96, 203, 113, 101, 170, 247, 181, 113,
+    80, 250, 108, 7, 255, 237, 129, 226, 79, 107, 112, 166, 103, 241,
+    24, 223, 239, 120, 198, 58, 60, 82, 128, 3, 184, 66, 143, 224,
+    145, 224, 81, 206, 163, 45, 63, 90, 168, 114, 59, 33, 159, 95,
+    28, 139, 123, 98, 125, 196, 15, 70, 194, 253, 54, 14, 109, 226,
+    71, 17, 161, 93, 186, 87, 244, 138, 20, 52, 123, 251, 26, 36,
+    17, 46, 52, 231, 232, 76, 31, 221, 84, 37, 216, 165, 212, 106,
+    197, 242, 98, 43, 39, 175, 254, 145, 190, 84, 118, 222, 187, 136,
+    120, 163, 236, 249
+};
+
+int rndindex = 0;
+int prndindex = 0;
+
+int P_Random(void)
+{
+    prndindex = (prndindex + 1) & 0xff;
+    return rndtable[prndindex];
+}
+
+int M_Random(void)
+{
+    rndindex = (rndindex + 1) & 0xff;
+    return rndtable[rndindex];
+}
+
+void M_ClearRandom(void)
+{
+    rndindex = prndindex = 0;
+}
+
--- /dev/null
+++ b/src/heretic/m_random.h
@@ -1,0 +1,41 @@
+// Emacs style mode select   -*- C++ -*- 
+//-----------------------------------------------------------------------------
+//
+// Copyright(C) 1993-1996 Id Software, Inc.
+// Copyright(C) 1993-2008 Raven Software
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+// 02111-1307, USA.
+//
+//-----------------------------------------------------------------------------
+
+#ifndef HERETIC_M_RANDOM_H
+#define HERETIC_M_RANDOM_H
+
+// Most damage defined using HITDICE
+#define HITDICE(a) ((1+(P_Random()&7))*a)
+
+int M_Random(void);
+// returns a number from 0 to 255
+int P_Random(void);
+// as M_Random, but used only by the play simulation
+
+void M_ClearRandom(void);
+// fix randoms for demos
+
+extern int rndindex;
+
+#endif // HERETIC_M_RANDOM_H
+
--- a/src/heretic/p_enemy.c
+++ b/src/heretic/p_enemy.c
@@ -25,6 +25,7 @@
 
 #include <stdlib.h>
 #include "doomdef.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "s_sound.h"
 #include "v_video.h"
--- a/src/heretic/p_inter.c
+++ b/src/heretic/p_inter.c
@@ -24,6 +24,7 @@
 // P_inter.c
 
 #include "doomdef.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "s_sound.h"
 
--- a/src/heretic/p_lights.c
+++ b/src/heretic/p_lights.c
@@ -21,6 +21,7 @@
 //
 //-----------------------------------------------------------------------------
 #include "doomdef.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "v_video.h"
 
--- a/src/heretic/p_map.c
+++ b/src/heretic/p_map.c
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 
 #include "doomdef.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "s_sound.h"
 
--- a/src/heretic/p_mobj.c
+++ b/src/heretic/p_mobj.c
@@ -24,6 +24,7 @@
 // P_mobj.c
 
 #include "doomdef.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "sounds.h"
 #include "s_sound.h"
--- a/src/heretic/p_plats.c
+++ b/src/heretic/p_plats.c
@@ -24,6 +24,7 @@
 // P_plats.c
 
 #include "doomdef.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "s_sound.h"
 #include "v_video.h"
--- a/src/heretic/p_pspr.c
+++ b/src/heretic/p_pspr.c
@@ -24,6 +24,7 @@
 // P_pspr.c
 
 #include "doomdef.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "s_sound.h"
 
--- a/src/heretic/p_spec.c
+++ b/src/heretic/p_spec.c
@@ -24,6 +24,7 @@
 // P_Spec.c
 
 #include "doomdef.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "s_sound.h"
 #include "v_video.h"
--- a/src/heretic/p_user.c
+++ b/src/heretic/p_user.c
@@ -26,6 +26,7 @@
 #include <stdlib.h>
 
 #include "doomdef.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "s_sound.h"
 
--- a/src/heretic/s_sound.c
+++ b/src/heretic/s_sound.c
@@ -24,6 +24,7 @@
 #include <stdlib.h>
 
 #include "doomdef.h"
+#include "m_random.h"
 #include "sounds.h"
 #include "s_sound.h"
 #include "i_sound.h"
--- a/src/heretic/sb_bar.c
+++ b/src/heretic/sb_bar.c
@@ -25,6 +25,7 @@
 
 #include "doomdef.h"
 #include "i_video.h"
+#include "m_random.h"
 #include "p_local.h"
 #include "s_sound.h"
 #include "v_video.h"
--- a/src/m_random.c
+++ /dev/null
@@ -1,86 +1,0 @@
-// Emacs style mode select   -*- C++ -*- 
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 1993-1996 Id Software, Inc.
-// Copyright(C) 2005 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-// DESCRIPTION:
-//	Random number LUT.
-//
-//-----------------------------------------------------------------------------
-
-
-#include <time.h>
-
-#include "m_random.h"
-
-//
-// M_Random
-// Returns a 0-255 number
-//
-
-static const unsigned char rndtable[256] = {
-    0,   8, 109, 220, 222, 241, 149, 107,  75, 248, 254, 140,  16,  66 ,
-    74,  21, 211,  47,  80, 242, 154,  27, 205, 128, 161,  89,  77,  36 ,
-    95, 110,  85,  48, 212, 140, 211, 249,  22,  79, 200,  50,  28, 188 ,
-    52, 140, 202, 120,  68, 145,  62,  70, 184, 190,  91, 197, 152, 224 ,
-    149, 104,  25, 178, 252, 182, 202, 182, 141, 197,   4,  81, 181, 242 ,
-    145,  42,  39, 227, 156, 198, 225, 193, 219,  93, 122, 175, 249,   0 ,
-    175, 143,  70, 239,  46, 246, 163,  53, 163, 109, 168, 135,   2, 235 ,
-    25,  92,  20, 145, 138,  77,  69, 166,  78, 176, 173, 212, 166, 113 ,
-    94, 161,  41,  50, 239,  49, 111, 164,  70,  60,   2,  37, 171,  75 ,
-    136, 156,  11,  56,  42, 146, 138, 229,  73, 146,  77,  61,  98, 196 ,
-    135, 106,  63, 197, 195,  86,  96, 203, 113, 101, 170, 247, 181, 113 ,
-    80, 250, 108,   7, 255, 237, 129, 226,  79, 107, 112, 166, 103, 241 ,
-    24, 223, 239, 120, 198,  58,  60,  82, 128,   3, 184,  66, 143, 224 ,
-    145, 224,  81, 206, 163,  45,  63,  90, 168, 114,  59,  33, 159,  95 ,
-    28, 139, 123,  98, 125, 196,  15,  70, 194, 253,  54,  14, 109, 226 ,
-    71,  17, 161,  93, 186,  87, 244, 138,  20,  52, 123, 251,  26,  36 ,
-    17,  46,  52, 231, 232,  76,  31, 221,  84,  37, 216, 165, 212, 106 ,
-    197, 242,  98,  43,  39, 175, 254, 145, 190,  84, 118, 222, 187, 136 ,
-    120, 163, 236, 249
-};
-
-int	rndindex = 0;
-int	prndindex = 0;
-
-// Which one is deterministic?
-int P_Random (void)
-{
-    prndindex = (prndindex+1)&0xff;
-    return rndtable[prndindex];
-}
-
-int M_Random (void)
-{
-    rndindex = (rndindex+1)&0xff;
-    return rndtable[rndindex];
-}
-
-void M_ClearRandom (void)
-{
-    prndindex = 0;
-
-    // Seed the M_Random counter from the system time
-
-    rndindex = time(NULL) & 0xff;
-}
-
-
-
-
--- a/src/m_random.h
+++ /dev/null
@@ -1,47 +1,0 @@
-// Emacs style mode select   -*- C++ -*- 
-//-----------------------------------------------------------------------------
-//
-// Copyright(C) 1993-1996 Id Software, Inc.
-// Copyright(C) 2005 Simon Howard
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-// 02111-1307, USA.
-//
-// DESCRIPTION:
-//
-//    
-//-----------------------------------------------------------------------------
-
-
-#ifndef __M_RANDOM__
-#define __M_RANDOM__
-
-
-#include "doomtype.h"
-
-
-
-// Returns a number from 0 to 255,
-// from a lookup table.
-int M_Random (void);
-
-// As M_Random, but used only by the play simulation.
-int P_Random (void);
-
-// Fix randoms for demos.
-void M_ClearRandom (void);
-
-
-#endif