Newly added object files: Fix Random classes

- Was previously abusing PR_FUZZ
- Add PR_TRACKHAZARD, for randomised track hazards
This commit is contained in:
toaster 2023-09-26 22:10:43 +01:00
parent 490959b6f7
commit d3e6c6ab02
5 changed files with 20 additions and 19 deletions

View file

@ -73,6 +73,7 @@ typedef enum
PR_SPARKLE, // Endsign and/or Emerald
PR_MOVINGTARGET, // Randomised moving targets
PR_TRACKHAZARD, // Randomised track hazards
PR_BATTLEUFO, // Battle UFO spawning

View file

@ -177,9 +177,9 @@ void Obj_playerDLZRocket(player_t *p)
for (j = 0; j < 2; j++)
{
fixed_t xoffs = P_RandomRange(PR_FUZZ, -6, 6)*mapobjectscale;
fixed_t yoffs = P_RandomRange(PR_FUZZ, -6, 6)*mapobjectscale;
fixed_t soffs = P_RandomRange(PR_FUZZ, 0, 3);
fixed_t xoffs = P_RandomRange(PR_EXPLOSION, -6, 6)*mapobjectscale;
fixed_t yoffs = P_RandomRange(PR_EXPLOSION, -6, 6)*mapobjectscale;
fixed_t soffs = P_RandomRange(PR_EXPLOSION, 0, 3);
mobj_t *expl = P_SpawnMobj(r->x + xoffs, r->y + yoffs, r->z + xoffs, MT_THOK);
P_SetMobjState(expl, S_QUICKBOOM1+soffs);

View file

@ -38,7 +38,7 @@ void Obj_EggBallSpawnerThink(mobj_t *mo)
ball->angle = mo->angle;
P_SetScale(ball, 6*mapobjectscale);
mo->extravalue1 = P_RandomRange(PR_FUZZ, TICRATE*BALLMINSPAWNTIME, TICRATE*BALLMAXSPAWNTIME);
mo->extravalue1 = P_RandomRange(PR_TRACKHAZARD, TICRATE*BALLMINSPAWNTIME, TICRATE*BALLMAXSPAWNTIME);
}
mo->extravalue1--;
}
@ -68,7 +68,7 @@ void Obj_EggBallThink(mobj_t *mo)
mobj_t *dust = P_SpawnMobj(mo->x, mo->y, mo->z, MT_DRIFTDUST);
P_SetScale(dust, mapobjectscale*3);
P_InstaThrust(dust, (360/16)*an*i, mapobjectscale*24); // the angle thing is to avoid a warning due to overflows.
dust->momz = P_RandomRange(PR_FUZZ, 0, 7)*mapobjectscale;
dust->momz = P_RandomRange(PR_DECORATION, 0, 7)*mapobjectscale;
}
S_StartSound(mo, sfx_s3k59);
@ -92,13 +92,13 @@ void Obj_EggBallThink(mobj_t *mo)
{
if (P_IsObjectOnGround(mo) && mo->extravalue2 &1)
{
fixed_t dx = mo->x + P_RandomRange(PR_FUZZ, -96, 96)*mapobjectscale - mo->momx*2;
fixed_t dy = mo->y + P_RandomRange(PR_FUZZ, -96, 96)*mapobjectscale - mo->momy*2;
fixed_t dx = mo->x + P_RandomRange(PR_DECORATION, -96, 96)*mapobjectscale - mo->momx*2;
fixed_t dy = mo->y + P_RandomRange(PR_DECORATION, -96, 96)*mapobjectscale - mo->momy*2;
fixed_t dz = mo->z;
mobj_t *dust = P_SpawnMobj(dx, dy, dz, MT_DRIFTDUST);
P_SetScale(dust, mapobjectscale*3);
dust->momz = P_RandomRange(PR_FUZZ, 0, 7)*mapobjectscale;
dust->momz = P_RandomRange(PR_DECORATION, 0, 7)*mapobjectscale;
dust->destscale = mapobjectscale*8;
}

View file

@ -65,9 +65,9 @@ static void Obj_killRideroid(mobj_t *mo)
t->color = SKINCOLOR_TEAL;
t->frame = FF_FULLBRIGHT;
t->destscale = 1;
t->momx = P_RandomRange(PR_DECORATION, -32, 32)*mapobjectscale;
t->momy = P_RandomRange(PR_DECORATION, -32, 32)*mapobjectscale;
t->momz = P_RandomRange(PR_DECORATION, -32, 32)*mapobjectscale;
t->momx = P_RandomRange(PR_EXPLOSION, -32, 32)*mapobjectscale;
t->momy = P_RandomRange(PR_EXPLOSION, -32, 32)*mapobjectscale;
t->momz = P_RandomRange(PR_EXPLOSION, -32, 32)*mapobjectscale;
}
P_RemoveMobj(mo);
}

View file

@ -106,8 +106,8 @@ static void Obj_WPZTurbineUpdate(mobj_t *mo)
if (mt->thing_args[7])
dradius = mt->thing_args[7];
bubbleradius = P_RandomRange(PR_FUZZ, dradius/4, (dradius*3)/2);
bubbleang = P_RandomRange(PR_FUZZ, 0, 359)*ANG1;
bubbleradius = P_RandomRange(PR_BUBBLE, dradius/4, (dradius*3)/2);
bubbleang = P_RandomRange(PR_BUBBLE, 0, 359)*ANG1;
bx = mo->x + FixedMul(mapobjectscale, bubbleradius*FINECOSINE(bubbleang>>ANGLETOFINESHIFT));
by = mo->y + FixedMul(mapobjectscale, bubbleradius*FINECOSINE(bubbleang>>ANGLETOFINESHIFT));
@ -285,9 +285,9 @@ void Obj_playerWPZTurbine(player_t *p)
if (pmo->eflags & MFE_UNDERWATER)
{
fixed_t rx = pmo->x + P_RandomRange(PR_FUZZ, -64, 64)*mapobjectscale;
fixed_t ry = pmo->y + P_RandomRange(PR_FUZZ, -64, 64)*mapobjectscale;
fixed_t rz = pmo->z + P_RandomRange(PR_FUZZ, -64, 64)*mapobjectscale;
fixed_t rx = pmo->x + P_RandomRange(PR_DECORATION, -64, 64)*mapobjectscale;
fixed_t ry = pmo->y + P_RandomRange(PR_DECORATION, -64, 64)*mapobjectscale;
fixed_t rz = pmo->z + P_RandomRange(PR_DECORATION, -64, 64)*mapobjectscale;
mobj_t *bubl = P_SpawnMobj(rx, ry, rz, MT_THOK);
P_SetScale(bubl, pmo->scale*2);
@ -370,9 +370,9 @@ void Obj_WPZBubbleThink(mobj_t *mo)
if (leveltime & 1)
{
fixed_t rx = mo->x + P_RandomRange(PR_FUZZ, -64, 64)*mapobjectscale;
fixed_t ry = mo->y + P_RandomRange(PR_FUZZ, -64, 64)*mapobjectscale;
fixed_t rz = mo->z + P_RandomRange(PR_FUZZ, -64, 64)*mapobjectscale;
fixed_t rx = mo->x + P_RandomRange(PR_DECORATION, -64, 64)*mapobjectscale;
fixed_t ry = mo->y + P_RandomRange(PR_DECORATION, -64, 64)*mapobjectscale;
fixed_t rz = mo->z + P_RandomRange(PR_DECORATION, -64, 64)*mapobjectscale;
mobj_t *bubl = P_SpawnMobj(rx, ry, rz, MT_THOK);
P_SetScale(bubl, mapobjectscale*4);
bubl->destscale = 1;