Merge branch 'eid-more-reducevfx' into 'master'

More reducevfx

See merge request kart-krew-dev/ring-racers-internal!2951
This commit is contained in:
Eidolon 2025-10-18 10:10:05 -05:00
commit b8769f14de
2 changed files with 38 additions and 11 deletions

View file

@ -6807,6 +6807,14 @@ static void K_SpawnDriftSparks(player_t *player)
I_Assert(player->mo != NULL);
I_Assert(!P_MobjWasRemoved(player->mo));
if (player->driftcharge >= dsthree)
{
if (cv_reducevfx.value || leveltime % 2 == 0)
{
K_SpawnDriftElectricity(player);
}
}
if (leveltime % 2 == 1)
return;
@ -6937,11 +6945,6 @@ static void K_SpawnDriftSparks(player_t *player)
P_SetTarget(&spark->owner, player->mo);
spark->renderflags |= RF_REDUCEVFX;
}
if (player->driftcharge >= dsthree)
{
K_SpawnDriftElectricity(player);
}
}
static void K_SpawnAIZDust(player_t *player)
@ -11838,10 +11841,10 @@ void K_KartResetPlayerColor(player_t *player)
}
else
{
flicker += ((defaultTime - player->invincibilitytimer) / TICRATE / 2) * (cv_reducevfx.value ? 4 : 1);
flicker += (defaultTime - player->invincibilitytimer) / TICRATE / 2;
}
if (leveltime % flicker == 0)
if (leveltime % flicker == 0 && !cv_reducevfx.value)
{
player->mo->color = SKINCOLOR_INVINCFLASH;
player->mo->colorized = true;

View file

@ -8208,13 +8208,26 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
invinc_rotation_delay = 8;
}
if ((trans >= NUMTRANSMAPS) // not a valid visibility
|| (myspeed < (tripspeed - basespeed/2) && (leveltime & 1)) // < 150% flickering
|| (mobj->target->player->tripwirePass < TRIPWIRE_BOOST) // Not strong enough to make an aura
|| mobj->target->player->flamedash) // Flameshield dash
if ((trans >= NUMTRANSMAPS) || mobj->target->player->flamedash || mobj->target->player->tripwirePass < TRIPWIRE_BOOST)
{
// never show for flameshield dash, below tripwire minimum or transparency invalid
mobj->renderflags &= ~RF_TRANSMASK;
mobj->renderflags |= RF_DONTDRAW;
}
else if (myspeed < (tripspeed - basespeed/2))
{
mobj->renderflags &= ~(RF_TRANSMASK|RF_DONTDRAW);
if (cv_reducevfx.value)
{
// < 150% make more transparent for reducevfx
mobj->renderflags |= RF_TRANS40;
}
else if (leveltime & 1)
{
// < 150% flickering normally
mobj->renderflags |= RF_DONTDRAW;
}
}
else
{
boolean blastermode = (myspeed >= tripspeed) && (mobj->target->player->tripwirePass >= TRIPWIRE_BLASTER);
@ -8327,6 +8340,17 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
P_RemoveMobj(mobj);
return false;
}
// This invinc mobj flickers intensely, so don't draw it in reducevfx
if (cv_reducevfx.value && (mobj->renderflags & RF_DONTDRAW) == 0)
{
mobj->renderflags |= RF_DONTDRAW;
}
if (!cv_reducevfx.value && (mobj->renderflags & RF_DONTDRAW) != 0)
{
mobj->renderflags ^= RF_DONTDRAW;
}
P_MoveOrigin(mobj, mobj->target->x, mobj->target->y, mobj->target->z);
break;
case MT_BRAKEDRIFT: