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(player->mo != NULL);
I_Assert(!P_MobjWasRemoved(player->mo)); I_Assert(!P_MobjWasRemoved(player->mo));
if (player->driftcharge >= dsthree)
{
if (cv_reducevfx.value || leveltime % 2 == 0)
{
K_SpawnDriftElectricity(player);
}
}
if (leveltime % 2 == 1) if (leveltime % 2 == 1)
return; return;
@ -6937,11 +6945,6 @@ static void K_SpawnDriftSparks(player_t *player)
P_SetTarget(&spark->owner, player->mo); P_SetTarget(&spark->owner, player->mo);
spark->renderflags |= RF_REDUCEVFX; spark->renderflags |= RF_REDUCEVFX;
} }
if (player->driftcharge >= dsthree)
{
K_SpawnDriftElectricity(player);
}
} }
static void K_SpawnAIZDust(player_t *player) static void K_SpawnAIZDust(player_t *player)
@ -11838,10 +11841,10 @@ void K_KartResetPlayerColor(player_t *player)
} }
else 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->color = SKINCOLOR_INVINCFLASH;
player->mo->colorized = true; player->mo->colorized = true;

View file

@ -8208,13 +8208,26 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
invinc_rotation_delay = 8; invinc_rotation_delay = 8;
} }
if ((trans >= NUMTRANSMAPS) // not a valid visibility if ((trans >= NUMTRANSMAPS) || mobj->target->player->flamedash || mobj->target->player->tripwirePass < TRIPWIRE_BOOST)
|| (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
{ {
// never show for flameshield dash, below tripwire minimum or transparency invalid
mobj->renderflags &= ~RF_TRANSMASK;
mobj->renderflags |= RF_DONTDRAW; 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 else
{ {
boolean blastermode = (myspeed >= tripspeed) && (mobj->target->player->tripwirePass >= TRIPWIRE_BLASTER); boolean blastermode = (myspeed >= tripspeed) && (mobj->target->player->tripwirePass >= TRIPWIRE_BLASTER);
@ -8327,6 +8340,17 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
P_RemoveMobj(mobj); P_RemoveMobj(mobj);
return false; 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); P_MoveOrigin(mobj, mobj->target->x, mobj->target->y, mobj->target->z);
break; break;
case MT_BRAKEDRIFT: case MT_BRAKEDRIFT: