mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
MT_KART_LEFTOVER: remove fuse, let it be killed
Gets punted into the air when it's killed.
This commit is contained in:
parent
6d883feadf
commit
72f1414432
5 changed files with 30 additions and 6 deletions
|
|
@ -5802,7 +5802,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
1000, // mass
|
1000, // mass
|
||||||
0, // damage
|
0, // damage
|
||||||
sfx_None, // activesound
|
sfx_None, // activesound
|
||||||
MF_SOLID|MF_DONTENCOREMAP|MF_APPLYTERRAIN|MF_SLOPE, // flags
|
MF_SOLID|MF_DONTENCOREMAP|MF_APPLYTERRAIN|MF_SLOPE|MF_SHOOTABLE, // flags
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -728,6 +728,11 @@ fixed_t K_GetMobjWeight(mobj_t *mobj, mobj_t *against)
|
||||||
|
|
||||||
static void K_SpawnBumpForObjs(mobj_t *mobj1, mobj_t *mobj2)
|
static void K_SpawnBumpForObjs(mobj_t *mobj1, mobj_t *mobj2)
|
||||||
{
|
{
|
||||||
|
if (mobj1->type == MT_KART_LEFTOVER && mobj1->health == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
mobj_t *fx = P_SpawnMobj(
|
mobj_t *fx = P_SpawnMobj(
|
||||||
mobj1->x/2 + mobj2->x/2,
|
mobj1->x/2 + mobj2->x/2,
|
||||||
mobj1->y/2 + mobj2->y/2,
|
mobj1->y/2 + mobj2->y/2,
|
||||||
|
|
|
||||||
|
|
@ -1545,7 +1545,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
||||||
|| target->type == MT_DROPTARGET || target->type == MT_DROPTARGET_SHIELD
|
|| target->type == MT_DROPTARGET || target->type == MT_DROPTARGET_SHIELD
|
||||||
|| target->type == MT_EGGMANITEM || target->type == MT_EGGMANITEM_SHIELD
|
|| target->type == MT_EGGMANITEM || target->type == MT_EGGMANITEM_SHIELD
|
||||||
|| target->type == MT_BALLHOG || target->type == MT_SPB
|
|| target->type == MT_BALLHOG || target->type == MT_SPB
|
||||||
|| target->type == MT_GACHABOM)) // kart dead items
|
|| target->type == MT_GACHABOM || target->type == MT_KART_LEFTOVER)) // kart dead items
|
||||||
target->flags |= MF_NOGRAVITY; // Don't drop Tails 03-08-2000
|
target->flags |= MF_NOGRAVITY; // Don't drop Tails 03-08-2000
|
||||||
else
|
else
|
||||||
target->flags &= ~MF_NOGRAVITY; // lose it if you for whatever reason have it, I'm looking at you shields
|
target->flags &= ~MF_NOGRAVITY; // lose it if you for whatever reason have it, I'm looking at you shields
|
||||||
|
|
@ -1876,8 +1876,6 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
||||||
|
|
||||||
if (target->player->pflags & PF_NOCONTEST)
|
if (target->player->pflags & PF_NOCONTEST)
|
||||||
P_SetTarget(&target->tracer, kart);
|
P_SetTarget(&target->tracer, kart);
|
||||||
|
|
||||||
kart->fuse = 5*TICRATE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (source && !P_MobjWasRemoved(source))
|
if (source && !P_MobjWasRemoved(source))
|
||||||
|
|
@ -1923,6 +1921,16 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MT_KART_LEFTOVER:
|
||||||
|
if (!P_MobjWasRemoved(inflictor))
|
||||||
|
{
|
||||||
|
K_KartSolidBounce(target, inflictor);
|
||||||
|
target->momz = 20 * inflictor->scale * P_MobjFlip(inflictor);
|
||||||
|
}
|
||||||
|
target->z += P_MobjFlip(target);
|
||||||
|
target->tics = 175;
|
||||||
|
return;
|
||||||
|
|
||||||
case MT_METALSONIC_RACE:
|
case MT_METALSONIC_RACE:
|
||||||
target->fuse = TICRATE*3;
|
target->fuse = TICRATE*3;
|
||||||
target->momx = target->momy = target->momz = 0;
|
target->momx = target->momy = target->momz = 0;
|
||||||
|
|
|
||||||
13
src/p_map.c
13
src/p_map.c
|
|
@ -962,6 +962,7 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing)
|
||||||
|| tm.thing->type == MT_SSMINE || tm.thing->type == MT_LANDMINE || tm.thing->type == MT_SINK
|
|| tm.thing->type == MT_SSMINE || tm.thing->type == MT_LANDMINE || tm.thing->type == MT_SINK
|
||||||
|| tm.thing->type == MT_GARDENTOP
|
|| tm.thing->type == MT_GARDENTOP
|
||||||
|| tm.thing->type == MT_DROPTARGET
|
|| tm.thing->type == MT_DROPTARGET
|
||||||
|
|| tm.thing->type == MT_KART_LEFTOVER
|
||||||
|| (tm.thing->type == MT_PLAYER && thing->target != tm.thing)))
|
|| (tm.thing->type == MT_PLAYER && thing->target != tm.thing)))
|
||||||
{
|
{
|
||||||
// see if it went over / under
|
// see if it went over / under
|
||||||
|
|
@ -979,6 +980,7 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing)
|
||||||
|| thing->type == MT_SSMINE || thing->type == MT_LANDMINE || thing->type == MT_SINK
|
|| thing->type == MT_SSMINE || thing->type == MT_LANDMINE || thing->type == MT_SINK
|
||||||
|| thing->type == MT_GARDENTOP
|
|| thing->type == MT_GARDENTOP
|
||||||
|| thing->type == MT_DROPTARGET
|
|| thing->type == MT_DROPTARGET
|
||||||
|
|| thing->type == MT_KART_LEFTOVER
|
||||||
|| (thing->type == MT_PLAYER && tm.thing->target != thing)))
|
|| (thing->type == MT_PLAYER && tm.thing->target != thing)))
|
||||||
{
|
{
|
||||||
// see if it went over / under
|
// see if it went over / under
|
||||||
|
|
@ -1002,6 +1004,7 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing)
|
||||||
|| tm.thing->type == MT_GARDENTOP
|
|| tm.thing->type == MT_GARDENTOP
|
||||||
|| tm.thing->type == MT_MONITOR
|
|| tm.thing->type == MT_MONITOR
|
||||||
|| tm.thing->type == MT_BATTLECAPSULE
|
|| tm.thing->type == MT_BATTLECAPSULE
|
||||||
|
|| tm.thing->type == MT_KART_LEFTOVER
|
||||||
|| (tm.thing->type == MT_PLAYER)))
|
|| (tm.thing->type == MT_PLAYER)))
|
||||||
{
|
{
|
||||||
// see if it went over / under
|
// see if it went over / under
|
||||||
|
|
@ -1019,6 +1022,7 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing)
|
||||||
|| thing->type == MT_GARDENTOP
|
|| thing->type == MT_GARDENTOP
|
||||||
|| thing->type == MT_MONITOR
|
|| thing->type == MT_MONITOR
|
||||||
|| thing->type == MT_BATTLECAPSULE
|
|| thing->type == MT_BATTLECAPSULE
|
||||||
|
|| thing->type == MT_KART_LEFTOVER
|
||||||
|| (thing->type == MT_PLAYER)))
|
|| (thing->type == MT_PLAYER)))
|
||||||
{
|
{
|
||||||
// see if it went over / under
|
// see if it went over / under
|
||||||
|
|
@ -1572,7 +1576,14 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing)
|
||||||
if (tm.thing->z + tm.thing->height < thing->z)
|
if (tm.thing->z + tm.thing->height < thing->z)
|
||||||
return BMIT_CONTINUE; // underneath
|
return BMIT_CONTINUE; // underneath
|
||||||
|
|
||||||
K_KartBouncing(tm.thing, thing);
|
if (K_PlayerCanPunt(tm.thing->player))
|
||||||
|
{
|
||||||
|
P_DamageMobj(thing, tm.thing, tm.thing, 1, DMG_NORMAL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
K_KartBouncing(tm.thing, thing);
|
||||||
|
}
|
||||||
return BMIT_CONTINUE;
|
return BMIT_CONTINUE;
|
||||||
}
|
}
|
||||||
else if (thing->type == MT_MONITOR)
|
else if (thing->type == MT_MONITOR)
|
||||||
|
|
|
||||||
|
|
@ -6955,6 +6955,7 @@ static boolean P_MobjDeadThink(mobj_t *mobj)
|
||||||
//case MT_DROPTARGET:
|
//case MT_DROPTARGET:
|
||||||
case MT_SPB:
|
case MT_SPB:
|
||||||
case MT_GACHABOM:
|
case MT_GACHABOM:
|
||||||
|
case MT_KART_LEFTOVER:
|
||||||
if (P_IsObjectOnGround(mobj))
|
if (P_IsObjectOnGround(mobj))
|
||||||
{
|
{
|
||||||
P_RemoveMobj(mobj);
|
P_RemoveMobj(mobj);
|
||||||
|
|
@ -10260,7 +10261,6 @@ static boolean P_CanFlickerFuse(mobj_t *mobj)
|
||||||
case MT_FALLINGROCK:
|
case MT_FALLINGROCK:
|
||||||
case MT_FLOATINGITEM:
|
case MT_FLOATINGITEM:
|
||||||
case MT_POGOSPRING:
|
case MT_POGOSPRING:
|
||||||
case MT_KART_LEFTOVER:
|
|
||||||
case MT_EMERALD:
|
case MT_EMERALD:
|
||||||
case MT_BLENDEYE_PUYO:
|
case MT_BLENDEYE_PUYO:
|
||||||
if (mobj->fuse <= TICRATE)
|
if (mobj->fuse <= TICRATE)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue