diff options
author | Simon Howard | 2008-09-20 21:57:49 +0000 |
---|---|---|
committer | Simon Howard | 2008-09-20 21:57:49 +0000 |
commit | 5a32ee7e78697f4b3d94a435c21f6b08a0ae839a (patch) | |
tree | 6b55bac17df678ebd164f9861f0501120c2e5a2d /src/heretic | |
parent | 871d3b3da6c84be394963d1f5a41de12bfc5a2bc (diff) | |
download | chocolate-doom-5a32ee7e78697f4b3d94a435c21f6b08a0ae839a.tar.gz chocolate-doom-5a32ee7e78697f4b3d94a435c21f6b08a0ae839a.tar.bz2 chocolate-doom-5a32ee7e78697f4b3d94a435c21f6b08a0ae839a.zip |
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
Diffstat (limited to 'src/heretic')
-rw-r--r-- | src/heretic/Makefile.am | 1 | ||||
-rw-r--r-- | src/heretic/doomdef.h | 12 | ||||
-rw-r--r-- | src/heretic/g_game.c | 1 | ||||
-rw-r--r-- | src/heretic/m_misc.c | 52 | ||||
-rw-r--r-- | src/heretic/m_random.c | 77 | ||||
-rw-r--r-- | src/heretic/m_random.h | 41 | ||||
-rw-r--r-- | src/heretic/p_enemy.c | 1 | ||||
-rw-r--r-- | src/heretic/p_inter.c | 1 | ||||
-rw-r--r-- | src/heretic/p_lights.c | 1 | ||||
-rw-r--r-- | src/heretic/p_map.c | 1 | ||||
-rw-r--r-- | src/heretic/p_mobj.c | 1 | ||||
-rw-r--r-- | src/heretic/p_plats.c | 1 | ||||
-rw-r--r-- | src/heretic/p_pspr.c | 1 | ||||
-rw-r--r-- | src/heretic/p_spec.c | 1 | ||||
-rw-r--r-- | src/heretic/p_user.c | 1 | ||||
-rw-r--r-- | src/heretic/s_sound.c | 1 | ||||
-rw-r--r-- | src/heretic/sb_bar.c | 1 |
17 files changed, 131 insertions, 64 deletions
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" |