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_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);
|
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 mobjtype_t type = precipprops[curWeather].type;
|
||||||
const UINT8 randomstates = (UINT8)mobjinfo[type].damage;
|
const UINT8 randomstates = (UINT8)mobjinfo[type].damage;
|
||||||
const boolean flip = (mobjinfo[type].speed < 0);
|
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;
|
UINT16 numparticles = 0;
|
||||||
boolean condition = false;
|
boolean condition = false;
|
||||||
|
|
||||||
subsector_t *precipsector = NULL;
|
subsector_t *precipsector = NULL;
|
||||||
precipmobj_t *rainmo = NULL;
|
precipmobj_t *rainmo = NULL;
|
||||||
|
|
||||||
if (dedicated || !cv_drawdist_precip.value || type == MT_NULL)
|
// If mobjscale < FRACUNIT, each blockmap cell covers
|
||||||
return;
|
// more area so spawn more precipitation in that area.
|
||||||
|
for (i = 0; i < FRACUNIT; i += mapobjectscale)
|
||||||
// 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;
|
|
||||||
|
|
||||||
x = basex + ((M_RandomKey(MAPBLOCKUNITS << 3) << FRACBITS) >> 3);
|
x = basex + ((M_RandomKey(MAPBLOCKUNITS << 3) << FRACBITS) >> 3);
|
||||||
y = basey + ((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 = precipsector->sector->ceilingheight - precipsector->sector->floorheight;
|
||||||
|
height = FixedDiv(height, mapobjectscale);
|
||||||
|
|
||||||
// Exists, but is too small for reasonable precipitation.
|
// Exists, but is too small for reasonable precipitation.
|
||||||
if (height < 64<<FRACBITS)
|
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
|
// P_PrecipitationEffects
|
||||||
//
|
//
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue