Remove Bumper Death animation

This commit is contained in:
NepDisk 2025-04-07 21:00:43 -04:00
parent 32b9b82dc2
commit daf5fdf748
7 changed files with 12 additions and 179 deletions

View file

@ -685,8 +685,6 @@ _(SINK_SHIELD)
_(SINKTRAIL)
_(BATTLEBUMPER) // Battle Mode bumpers
_(BATTLEBUMPER_DEBRIS)
_(BATTLEBUMPER_BLAST)
_(DEZLASER)

View file

@ -3003,44 +3003,6 @@ _(BATTLEBUMPER1)
_(BATTLEBUMPER2)
_(BATTLEBUMPER3)
_(BATTLEBUMPER_EXCRYSTALA1)
_(BATTLEBUMPER_EXCRYSTALA2)
_(BATTLEBUMPER_EXCRYSTALA3)
_(BATTLEBUMPER_EXCRYSTALA4)
_(BATTLEBUMPER_EXCRYSTALB1)
_(BATTLEBUMPER_EXCRYSTALB2)
_(BATTLEBUMPER_EXCRYSTALB3)
_(BATTLEBUMPER_EXCRYSTALB4)
_(BATTLEBUMPER_EXCRYSTALC1)
_(BATTLEBUMPER_EXCRYSTALC2)
_(BATTLEBUMPER_EXCRYSTALC3)
_(BATTLEBUMPER_EXCRYSTALC4)
_(BATTLEBUMPER_EXSHELLA1)
_(BATTLEBUMPER_EXSHELLA2)
_(BATTLEBUMPER_EXSHELLB1)
_(BATTLEBUMPER_EXSHELLB2)
_(BATTLEBUMPER_EXSHELLC1)
_(BATTLEBUMPER_EXSHELLC2)
_(BATTLEBUMPER_EXDEBRIS1)
_(BATTLEBUMPER_EXDEBRIS2)
_(BATTLEBUMPER_EXBLAST1)
_(BATTLEBUMPER_EXBLAST2)
_(BATTLEBUMPER_EXBLAST3)
_(BATTLEBUMPER_EXBLAST4)
_(BATTLEBUMPER_EXBLAST5)
_(BATTLEBUMPER_EXBLAST6)
_(BATTLEBUMPER_EXBLAST7)
_(BATTLEBUMPER_EXBLAST8)
_(BATTLEBUMPER_EXBLAST9)
_(BATTLEBUMPER_EXBLAST10)
// DEZ Laser respawn
_(DEZLASER)

View file

@ -255,7 +255,7 @@ void K_CheckBumpers(void)
}
else if (numingame <= 1)
{
if (!itembreaker)
if (!itembreaker && cv_kartitembreaker.value)
{
// Reset map to turn on battle capsules
D_MapChange(gamemap, gametype, encoremode, true, 0, false, false);

View file

@ -584,20 +584,6 @@ boolean K_DropTargetCollide(mobj_t *t1, mobj_t *t2)
ghost->destscale = 15*ghost->destscale/2;
ghost->fuse = 10;
ghost->scalespeed = (ghost->destscale - ghost->scale)/ghost->fuse;
for (i = 0; i < 2; i++)
{
mobj_t *blast = P_SpawnMobjFromMobj(t1, 0, 0, FixedDiv(t1->height, t1->scale), MT_BATTLEBUMPER_BLAST);
P_SetScale(blast, 5*blast->scale/2);
blast->angle = R_PointToAngle2(0, 0, t1->momx, t1->momy) + ANGLE_45;
if (i & 1)
{
blast->angle += ANGLE_90;
}
blast->destscale *= 10;
}
}
t1->flags |= MF_SHOOTABLE;

View file

@ -2227,6 +2227,10 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
K_TryHurtSoundExchange(target, source);
}
else if (source && source == player->mo && source->player)
{
K_DestroyBumpers(player, 1);
}
if (!(type == DMG_NORMAL || type == DMG_WIPEOUT || type == DMG_VOLTAGE))
{

View file

@ -5726,117 +5726,6 @@ static void P_MobjSceneryThink(mobj_t *mobj)
}
break;
case MT_BATTLEBUMPER:
if (mobj->health <= 0)
{
mobj->fuse--;
if (!S_SoundPlaying(mobj, sfx_cdfm71))
{
S_StartSound(mobj, sfx_cdfm71);
}
if (mobj->fuse <= 0)
{
statenum_t curState = (mobj->state - states);
if (curState == S_BATTLEBUMPER1)
{
P_SetMobjState(mobj, S_BATTLEBUMPER_EXCRYSTALA1);
if (mobj->tracer && !P_MobjWasRemoved(mobj->tracer))
{
P_SetMobjState(mobj->tracer, S_BATTLEBUMPER_EXSHELLA1);
}
mobj->shadowscale *= 2;
mobj->fuse = 12;
}
else if (curState >= S_BATTLEBUMPER_EXCRYSTALA1 && curState <= S_BATTLEBUMPER_EXCRYSTALA4)
{
P_SetMobjState(mobj, S_BATTLEBUMPER_EXCRYSTALB1);
if (mobj->tracer && !P_MobjWasRemoved(mobj->tracer))
{
P_SetMobjState(mobj->tracer, S_BATTLEBUMPER_EXSHELLB1);
}
mobj->shadowscale *= 2;
mobj->fuse = 24;
break;
}
else if (curState >= S_BATTLEBUMPER_EXCRYSTALB1 && curState <= S_BATTLEBUMPER_EXCRYSTALB4)
{
P_SetMobjState(mobj, S_BATTLEBUMPER_EXCRYSTALC1);
if (mobj->tracer && !P_MobjWasRemoved(mobj->tracer))
{
P_SetMobjState(mobj->tracer, S_BATTLEBUMPER_EXSHELLC1);
}
mobj->shadowscale *= 2;
mobj->fuse = 32;
break;
}
else
{
const INT16 spacing = 64;
UINT8 i;
for (i = 0; i < 10; i++)
{
mobj_t *debris = P_SpawnMobjFromMobj(
mobj,
P_RandomRange(-spacing, spacing) * FRACUNIT,
P_RandomRange(-spacing, spacing) * FRACUNIT,
P_RandomRange(-spacing, spacing) * FRACUNIT,
MT_BATTLEBUMPER_DEBRIS
);
P_SetScale(debris, (debris->destscale *= 2));
debris->color = mobj->color;
debris->momz = -debris->scale * P_MobjFlip(debris);
}
for (i = 0; i < 2; i++)
{
mobj_t *blast = P_SpawnMobjFromMobj(mobj, 0, 0, 0, MT_BATTLEBUMPER_BLAST);
blast->angle = R_PointToAngle2(0, 0, mobj->momx, mobj->momy) + ANGLE_45;
if (i & 1)
{
blast->angle += ANGLE_90;
S_StartSound(blast, sfx_cdfm64);
}
blast->angle = blast->angle;
blast->destscale *= 4;
}
for (i = 0; i < 10; i++)
{
mobj_t *puff = P_SpawnMobjFromMobj(
mobj,
P_RandomRange(-spacing, spacing) * FRACUNIT,
P_RandomRange(-spacing, spacing) * FRACUNIT,
P_RandomRange(-spacing, spacing) * FRACUNIT,
MT_DUST
);
P_SetScale(puff, (puff->destscale *= 5));
puff->momz = puff->scale * P_MobjFlip(puff);
P_Thrust(puff, R_PointToAngle2(mobj->x, mobj->y, puff->x, puff->y), puff->scale);
}
P_RemoveMobj(mobj);
return;
}
}
break;
}
if (mobj->target && !P_MobjWasRemoved(mobj->target) && mobj->target->player
&& mobj->target->health > 0 && !mobj->target->player->spectator)
{
@ -5908,29 +5797,24 @@ static void P_MobjSceneryThink(mobj_t *mobj)
P_SetThingPosition(mobj);
}
// Was this so hard?
if (mobj->target->player->bumper <= mobj->threshold)
{
// Do bumper destruction
P_KillMobj(mobj, NULL, NULL, DMG_NORMAL);
break;
P_RemoveMobj(mobj);
return;
}
}
else
else if ((mobj->health > 0
&& (!mobj->target || !mobj->target->player || !mobj->target->player->mo || mobj->target->health <= 0 || mobj->target->player->spectator))
|| (mobj->health <= 0 && P_IsObjectOnGround(mobj))
|| P_CheckDeathPitCollide(mobj)) // When in death state
{
// Sliently remove
P_RemoveMobj(mobj);
return;
}
break;
case MT_BATTLEBUMPER_DEBRIS:
if (mobj->state == states + S_BATTLEBUMPER_EXDEBRIS2)
{
mobj->renderflags ^= RF_DONTDRAW;
}
break;
// see also K_drawKartItem in k_hud.c
case MT_PLAYERARROW:
if (mobj->target && mobj->target->health

View file

@ -7865,7 +7865,6 @@ static void P_InitLevelSettings(boolean reloadinggamestate)
stackingactive = false;
chainingactive = false;
slipdashactive = false;
if (cv_kartrings.value)
ringsactive = true;