ref: a70231731a2a9af0cf1791ee57613b3771414d4f
parent: 72e92d3bd0a0081473e78b50eda59daed4fd21c3
parent: cd260be97f2374545f840a05b44ee8d67ce42151
author: Simon Howard <[email protected]>
date: Fri Dec 9 05:21:50 EST 2016
Merge pull request #829 from nukeykt/hereticfix hexen: fix random value order in function arguments to match disassembly
--- a/src/heretic/p_enemy.c
+++ b/src/heretic/p_enemy.c
@@ -2416,11 +2416,12 @@
void A_SpawnTeleGlitter(mobj_t * actor)
{
mobj_t *mo;
- int r;
+ int r1, r2;
- r = P_Random();
- mo = P_SpawnMobj(actor->x + ((P_Random() & 31) - 16) * FRACUNIT,
- actor->y + ((r & 31) - 16) * FRACUNIT,
+ r1 = P_Random();
+ r2 = P_Random();
+ mo = P_SpawnMobj(actor->x + ((r2 & 31) - 16) * FRACUNIT,
+ actor->y + ((r1 & 31) - 16) * FRACUNIT,
actor->subsector->sector->floorheight, MT_TELEGLITTER);
mo->momz = FRACUNIT / 4;
}
@@ -2434,11 +2435,12 @@
void A_SpawnTeleGlitter2(mobj_t * actor)
{
mobj_t *mo;
- int r;
+ int r1, r2;
- r = P_Random();
- mo = P_SpawnMobj(actor->x + ((P_Random() & 31) - 16) * FRACUNIT,
- actor->y + ((r & 31) - 16) * FRACUNIT,
+ r1 = P_Random();
+ r2 = P_Random();
+ mo = P_SpawnMobj(actor->x + ((r2 & 31) - 16) * FRACUNIT,
+ actor->y + ((r1 & 31) - 16) * FRACUNIT,
actor->subsector->sector->floorheight, MT_TELEGLITTER2);
mo->momz = FRACUNIT / 4;
}
--- a/src/hexen/a_action.c
+++ b/src/hexen/a_action.c
@@ -1175,9 +1175,9 @@
r1 = P_Random();
r2 = P_Random();
r3 = P_Random();
- mo = P_SpawnMobj(actor->x + ((r1 - 128) << 12),
+ mo = P_SpawnMobj(actor->x + ((r3 - 128) << 12),
actor->y + ((r2 - 128) << 12),
- actor->z + (r3 * actor->height / 256),
+ actor->z + (r1 * actor->height / 256),
MT_ZARMORCHUNK);
P_SetMobjState(mo, mo->info->spawnstate + i);
if (mo)
--- a/src/hexen/p_enemy.c
+++ b/src/hexen/p_enemy.c
@@ -1481,13 +1481,14 @@
void A_MntrFloorFire(mobj_t * actor)
{
mobj_t *mo;
- int r;
+ int r1, r2;
- r = P_SubRandom();
+ r1 = P_SubRandom();
+ r2 = P_SubRandom();
actor->z = actor->floorz;
- mo = P_SpawnMobj(actor->x + (r << 10),
- actor->y + (P_SubRandom() << 10), ONFLOORZ,
+ mo = P_SpawnMobj(actor->x + (r2 << 10),
+ actor->y + (r1 << 10), ONFLOORZ,
MT_MNTRFX3);
mo->target = actor->target;
mo->momx = 1; // Force block checking
@@ -2411,10 +2412,12 @@
void A_SerpentSpawnGibs(mobj_t * actor)
{
mobj_t *mo;
- int r = P_Random();
+ int r1, r2;
- mo = P_SpawnMobj(actor->x + ((r - 128) << 12),
- actor->y + ((P_Random() - 128) << 12),
+ r1 = P_Random();
+ r2 = P_Random();
+ mo = P_SpawnMobj(actor->x + ((r2 - 128) << 12),
+ actor->y + ((r1 - 128) << 12),
actor->floorz + FRACUNIT, MT_SERPENT_GIB1);
if (mo)
{
@@ -2422,9 +2425,10 @@
mo->momy = (P_Random() - 128) << 6;
mo->floorclip = 6 * FRACUNIT;
}
- r = P_Random();
- mo = P_SpawnMobj(actor->x + ((r - 128) << 12),
- actor->y + ((P_Random() - 128) << 12),
+ r1 = P_Random();
+ r2 = P_Random();
+ mo = P_SpawnMobj(actor->x + ((r2 - 128) << 12),
+ actor->y + ((r1 - 128) << 12),
actor->floorz + FRACUNIT, MT_SERPENT_GIB2);
if (mo)
{
@@ -2432,9 +2436,10 @@
mo->momy = (P_Random() - 128) << 6;
mo->floorclip = 6 * FRACUNIT;
}
- r = P_Random();
- mo = P_SpawnMobj(actor->x + ((r - 128) << 12),
- actor->y + ((P_Random() - 128) << 12),
+ r1 = P_Random();
+ r2 = P_Random();
+ mo = P_SpawnMobj(actor->x + ((r2 - 128) << 12),
+ actor->y + ((r1 - 128) << 12),
actor->floorz + FRACUNIT, MT_SERPENT_GIB3);
if (mo)
{
@@ -2797,9 +2802,9 @@
r2 = P_SubRandom();
r3 = P_SubRandom();
- mo = P_SpawnMobj(actor->x + (r1 << 12), actor->y
+ mo = P_SpawnMobj(actor->x + (r3 << 12), actor->y
+ (r2 << 12),
- actor->z + (r3 << 11),
+ actor->z + (r1 << 11),
MT_BISHOPPAINBLUR);
if (mo)
{
@@ -3048,9 +3053,9 @@
r1 = P_Random();
r2 = P_Random();
r3 = P_Random();
- mo = P_SpawnMobj(actor->x + ((r1 - 128) << 14),
+ mo = P_SpawnMobj(actor->x + ((r3 - 128) << 14),
actor->y + ((r2 - 128) << 14),
- actor->z + ((r3 - 128) << 12),
+ actor->z + ((r1 - 128) << 12),
MT_DRAGON_FX2);
if (mo)
{
@@ -4865,10 +4870,10 @@
r2 = P_Random();
r3 = P_Random();
mo = P_SpawnMobj(actor->x +
- (((r1 - 128) * actor->radius) >> 7),
+ (((r3 - 128) * actor->radius) >> 7),
actor->y +
(((r2 - 128) * actor->radius) >> 7),
- actor->z + (r3 * actor->height / 255),
+ actor->z + (r1 * actor->height / 255),
MT_ICECHUNK);
P_SetMobjState(mo, mo->info->spawnstate + (P_Random() % 3));
if (mo)
@@ -4885,10 +4890,10 @@
r2 = P_Random();
r3 = P_Random();
mo = P_SpawnMobj(actor->x +
- (((r1 - 128) * actor->radius) >> 7),
+ (((r3 - 128) * actor->radius) >> 7),
actor->y +
(((r2 - 128) * actor->radius) >> 7),
- actor->z + (r3 * actor->height / 255),
+ actor->z + (r1 * actor->height / 255),
MT_ICECHUNK);
P_SetMobjState(mo, mo->info->spawnstate + (P_Random() % 3));
if (mo)
--- a/src/hexen/p_mobj.c
+++ b/src/hexen/p_mobj.c
@@ -1830,9 +1830,12 @@
void P_BloodSplatter2(fixed_t x, fixed_t y, fixed_t z, mobj_t * originator)
{
mobj_t *mo;
+ int r1, r2;
- mo = P_SpawnMobj(x + ((P_Random() - 128) << 11),
- y + ((P_Random() - 128) << 11), z, MT_AXEBLOOD);
+ r1 = P_Random();
+ r2 = P_Random();
+ mo = P_SpawnMobj(x + ((r2 - 128) << 11),
+ y + ((r1 - 128) << 11), z, MT_AXEBLOOD);
mo->target = originator;
}
--- a/src/hexen/p_pspr.c
+++ b/src/hexen/p_pspr.c
@@ -868,9 +868,9 @@
r1 = P_Random();
r2 = P_Random();
r3 = P_Random();
- P_SpawnMobj(actor->x + ((r1 - 128) << 12), actor->y
+ P_SpawnMobj(actor->x + ((r3 - 128) << 12), actor->y
+ ((r2 - 128) << 12),
- actor->z + ((r3 - 128) << 11), MT_FSWORD_FLAME);
+ actor->z + ((r1 - 128) << 11), MT_FSWORD_FLAME);
}
}
@@ -1003,8 +1003,8 @@
}
r1 = P_Random();
r2 = P_Random();
- mo = P_SpawnMobj(actor->x + ((r1 - 128) * actor->radius / 256),
- actor->y + ((r2 - 128) * actor->radius / 256),
+ mo = P_SpawnMobj(actor->x + ((r2 - 128) * actor->radius / 256),
+ actor->y + ((r1 - 128) * actor->radius / 256),
actor->z + deltaZ, MT_LIGHTNING_ZAP);
if (mo)
{