mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Spawn more precip objects under smaller MobjScale
This commit is contained in:
parent
5b3f1b2c10
commit
69763fd804
1 changed files with 29 additions and 11 deletions
40
src/p_mobj.c
40
src/p_mobj.c
|
|
@ -10642,30 +10642,26 @@ static CV_PossibleValue_t respawnitemtime_cons_t[] = {{1, "MIN"}, {300, "MAX"},
|
|||
consvar_t cv_itemrespawntime = CVAR_INIT ("respawnitemtime", "2", CV_NETVAR|CV_CHEAT, respawnitemtime_cons_t, NULL);
|
||||
consvar_t cv_itemrespawn = CVAR_INIT ("respawnitem", "On", CV_NETVAR, CV_OnOff, NULL);
|
||||
|
||||
void P_SpawnPrecipitation(void)
|
||||
static void P_SpawnPrecipitationAt(fixed_t basex, fixed_t basey)
|
||||
{
|
||||
INT32 i, j, k;
|
||||
INT32 j, k;
|
||||
|
||||
const mobjtype_t type = precipprops[curWeather].type;
|
||||
const UINT8 randomstates = (UINT8)mobjinfo[type].damage;
|
||||
const boolean flip = (mobjinfo[type].speed < 0);
|
||||
|
||||
fixed_t basex, basey, x, y, z, height;
|
||||
fixed_t i, x, y, z, height;
|
||||
|
||||
UINT16 numparticles = 0;
|
||||
boolean condition = false;
|
||||
|
||||
subsector_t *precipsector = NULL;
|
||||
precipmobj_t *rainmo = NULL;
|
||||
|
||||
if (dedicated || !cv_drawdist_precip.value || type == MT_NULL)
|
||||
return;
|
||||
|
||||
// Use the blockmap to narrow down our placing patterns
|
||||
for (i = 0; i < bmapwidth*bmapheight; ++i)
|
||||
// If mobjscale < FRACUNIT, each blockmap cell covers
|
||||
// more area so spawn more precipitation in that area.
|
||||
for (i = 0; i < FRACUNIT; i += mapobjectscale)
|
||||
{
|
||||
basex = bmaporgx + (i % bmapwidth) * MAPBLOCKSIZE;
|
||||
basey = bmaporgy + (i / bmapwidth) * MAPBLOCKSIZE;
|
||||
|
||||
x = basex + ((M_RandomKey(MAPBLOCKUNITS << 3) << FRACBITS) >> 3);
|
||||
y = basey + ((M_RandomKey(MAPBLOCKUNITS << 3) << FRACBITS) >> 3);
|
||||
|
||||
|
|
@ -10714,6 +10710,7 @@ void P_SpawnPrecipitation(void)
|
|||
}
|
||||
|
||||
height = precipsector->sector->ceilingheight - precipsector->sector->floorheight;
|
||||
height = FixedDiv(height, mapobjectscale);
|
||||
|
||||
// Exists, but is too small for reasonable precipitation.
|
||||
if (height < 64<<FRACBITS)
|
||||
|
|
@ -10751,6 +10748,27 @@ void P_SpawnPrecipitation(void)
|
|||
}
|
||||
}
|
||||
|
||||
void P_SpawnPrecipitation(void)
|
||||
{
|
||||
INT32 i;
|
||||
|
||||
const mobjtype_t type = precipprops[curWeather].type;
|
||||
|
||||
fixed_t basex, basey;
|
||||
|
||||
if (dedicated || !cv_drawdist_precip.value || type == MT_NULL)
|
||||
return;
|
||||
|
||||
// Use the blockmap to narrow down our placing patterns
|
||||
for (i = 0; i < bmapwidth*bmapheight; ++i)
|
||||
{
|
||||
basex = bmaporgx + (i % bmapwidth) * MAPBLOCKSIZE;
|
||||
basey = bmaporgy + (i / bmapwidth) * MAPBLOCKSIZE;
|
||||
|
||||
P_SpawnPrecipitationAt(basex, basey);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// P_PrecipitationEffects
|
||||
//
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue