foxygit / doom Log in
commit 5a32ee7e78697f4b3d94a435c21f6b08a0ae839a
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Sat Sep 20 21:57:49 2008 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Sat Sep 20 21:57:49 2008 +0000

    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
---
 src/Makefile.am           |  1 -
 src/doom/Makefile.am      |  1 +
 src/{ => doom}/m_random.c |  0
 src/{ => doom}/m_random.h |  0
 src/heretic/Makefile.am   |  1 +
 src/heretic/doomdef.h     | 12 --------
 src/heretic/g_game.c      |  1 +
 src/heretic/m_misc.c      | 52 --------------------------------
 src/heretic/m_random.c    | 77 +++++++++++++++++++++++++++++++++++++++++++++++
 src/heretic/m_random.h    | 41 +++++++++++++++++++++++++
 src/heretic/p_enemy.c     |  1 +
 src/heretic/p_inter.c     |  1 +
 src/heretic/p_lights.c    |  1 +
 src/heretic/p_map.c       |  1 +
 src/heretic/p_mobj.c      |  1 +
 src/heretic/p_plats.c     |  1 +
 src/heretic/p_pspr.c      |  1 +
 src/heretic/p_spec.c      |  1 +
 src/heretic/p_user.c      |  1 +
 src/heretic/s_sound.c     |  1 +
 src/heretic/sb_bar.c      |  1 +
 21 files changed, 132 insertions(+), 65 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 2c732985..d9dfc326 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -51,7 +51,6 @@ m_fixed.c            m_fixed.h             \
 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             \
diff --git a/src/doom/Makefile.am b/src/doom/Makefile.am
index 44162e48..5982721f 100644
--- a/src/doom/Makefile.am
+++ b/src/doom/Makefile.am
@@ -23,6 +23,7 @@ hu_lib.c           hu_lib.h     \
 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                       \
diff --git a/src/m_random.c b/src/doom/m_random.c
similarity index 100%
rename from src/m_random.c
rename to src/doom/m_random.c
diff --git a/src/m_random.h b/src/doom/m_random.h
similarity index 100%
rename from src/m_random.h
rename to src/doom/m_random.h
diff --git a/src/heretic/Makefile.am b/src/heretic/Makefile.am
index fa9d2a6f..f5e620b6 100644
--- a/src/heretic/Makefile.am
+++ b/src/heretic/Makefile.am
@@ -17,6 +17,7 @@ g_game.c                                             \
 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                                            \
diff --git a/src/heretic/doomdef.h b/src/heretic/doomdef.h
index dcb208f7..02185536 100644
--- a/src/heretic/doomdef.h
+++ b/src/heretic/doomdef.h
@@ -213,9 +213,6 @@ typedef struct
     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 @@ extern int ticdup;

 #define	MAXNETNODES		8
 extern ticcmd_t localcmds[BACKUPTICS];
-extern int rndindex;
 extern int gametic, maketic;
 extern int nettics[MAXNETNODES];

@@ -918,14 +914,6 @@ boolean M_ValidEpisodeMap(int episode, int map);
 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);
 // bounding box functions
diff --git a/src/heretic/g_game.c b/src/heretic/g_game.c
index 1441855b..630f0619 100644
--- 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"
diff --git a/src/heretic/m_misc.c b/src/heretic/m_misc.c
index 64ad555f..cd08d8d9 100644
--- a/src/heretic/m_misc.c
+++ b/src/heretic/m_misc.c
@@ -86,58 +86,6 @@ boolean M_ValidEpisodeMap(int episode, int map)
     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;
diff --git a/src/heretic/m_random.c b/src/heretic/m_random.c
new file mode 100644
index 00000000..74dbc2d8
--- /dev/null
+++ b/src/heretic/m_random.c
@@ -0,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;
+}
+
diff --git a/src/heretic/m_random.h b/src/heretic/m_random.h
new file mode 100644
index 00000000..66fad6cb
--- /dev/null
+++ b/src/heretic/m_random.h
@@ -0,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
+
diff --git a/src/heretic/p_enemy.c b/src/heretic/p_enemy.c
index f6782d05..59c5a981 100644
--- 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"
diff --git a/src/heretic/p_inter.c b/src/heretic/p_inter.c
index 82225c7c..f935ecea 100644
--- 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"

diff --git a/src/heretic/p_lights.c b/src/heretic/p_lights.c
index fb5942d6..2c3dc695 100644
--- 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"

diff --git a/src/heretic/p_map.c b/src/heretic/p_map.c
index 4a61beae..6e98830e 100644
--- 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"

diff --git a/src/heretic/p_mobj.c b/src/heretic/p_mobj.c
index 6daef71b..427a6238 100644
--- 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"
diff --git a/src/heretic/p_plats.c b/src/heretic/p_plats.c
index 9d3b99e6..2cd706d8 100644
--- 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"
diff --git a/src/heretic/p_pspr.c b/src/heretic/p_pspr.c
index 7ded5b26..10666ff3 100644
--- 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"

diff --git a/src/heretic/p_spec.c b/src/heretic/p_spec.c
index 469937c1..9ccd7b17 100644
--- 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"
diff --git a/src/heretic/p_user.c b/src/heretic/p_user.c
index 3c880b88..676b67a7 100644
--- 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"

diff --git a/src/heretic/s_sound.c b/src/heretic/s_sound.c
index 2a53c314..baed0dde 100644
--- 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"
diff --git a/src/heretic/sb_bar.c b/src/heretic/sb_bar.c
index 02608ae7..09fd82c5 100644
--- 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"