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