MF_SOLID and MF_PUSHABLE exception
This commit is contained in:
parent
d58d3877a7
commit
0bf6619481
1 changed files with 21 additions and 2 deletions
23
src/k_kart.c
23
src/k_kart.c
|
|
@ -1747,6 +1747,25 @@ fixed_t K_GetMobjWeight(mobj_t *mobj, mobj_t *against)
|
|||
return weight;
|
||||
}
|
||||
|
||||
static boolean K_JustBumpedException(mobj_t *mobj)
|
||||
{
|
||||
switch (mobj->type)
|
||||
{
|
||||
case MT_WALLSPIKE:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (mobj->flags & MF_PUSHABLE)
|
||||
return true;
|
||||
|
||||
if (!mobj->player && mobj->flags & MF_SOLID)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce, boolean solid)
|
||||
{
|
||||
mobj_t *fx;
|
||||
|
|
@ -1794,13 +1813,13 @@ boolean K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce, boolean sol
|
|||
|
||||
|
||||
// Don't bump if you've recently bumped
|
||||
if (mobj1->player && mobj1->player->justbumped)
|
||||
if (mobj1->player && mobj1->player->justbumped && !K_JustBumpedException(mobj2))
|
||||
{
|
||||
mobj1->player->justbumped = bumptime;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mobj2->player && mobj2->player->justbumped)
|
||||
if (mobj2->player && mobj2->player->justbumped && !K_JustBumpedException(mobj1))
|
||||
{
|
||||
mobj2->player->justbumped = bumptime;
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in a new issue