mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-22 02:00:11 +00:00
Merge branch 'collision-crashes' into 'master'
More collision use after delete fixes See merge request KartKrew/Kart!1161
This commit is contained in:
commit
6f9f3a733e
2 changed files with 38 additions and 8 deletions
|
|
@ -444,15 +444,22 @@ boolean K_LandMineCollide(mobj_t *t1, mobj_t *t2)
|
|||
else
|
||||
t2->z += t2->height;
|
||||
|
||||
P_SpawnMobj(t2->x/2 + t1->x/2, t2->y/2 + t1->y/2, t2->z/2 + t1->z/2, MT_ITEMCLASH);
|
||||
|
||||
S_StartSound(t2, t2->info->deathsound);
|
||||
P_KillMobj(t2, t1, t1, DMG_NORMAL);
|
||||
|
||||
P_SetObjectMomZ(t2, 24*FRACUNIT, false);
|
||||
P_InstaThrust(t2, bounceangle, 16*FRACUNIT);
|
||||
if (P_MobjWasRemoved(t2))
|
||||
{
|
||||
t2 = NULL; // handles the arguments to P_KillMobj
|
||||
}
|
||||
else
|
||||
{
|
||||
P_SetObjectMomZ(t2, 24*FRACUNIT, false);
|
||||
P_InstaThrust(t2, bounceangle, 16*FRACUNIT);
|
||||
|
||||
P_SpawnMobj(t2->x/2 + t1->x/2, t2->y/2 + t1->y/2, t2->z/2 + t1->z/2, MT_ITEMCLASH);
|
||||
|
||||
t1->reactiontime = t2->hitlag;
|
||||
t1->reactiontime = t2->hitlag;
|
||||
}
|
||||
P_KillMobj(t1, t2, t2, DMG_NORMAL);
|
||||
}
|
||||
else if (t2->type == MT_SSMINE_SHIELD || t2->type == MT_SSMINE || t2->type == MT_LANDMINE)
|
||||
|
|
@ -466,7 +473,15 @@ boolean K_LandMineCollide(mobj_t *t1, mobj_t *t2)
|
|||
// Shootable damage
|
||||
P_DamageMobj(t2, t1, t1->target, 1, DMG_NORMAL);
|
||||
|
||||
t1->reactiontime = t2->hitlag;
|
||||
if (P_MobjWasRemoved(t2))
|
||||
{
|
||||
t2 = NULL; // handles the arguments to P_KillMobj
|
||||
}
|
||||
else
|
||||
{
|
||||
t1->reactiontime = t2->hitlag;
|
||||
}
|
||||
|
||||
P_KillMobj(t1, t2, t2, DMG_NORMAL);
|
||||
}
|
||||
|
||||
|
|
@ -796,6 +811,10 @@ boolean K_KitchenSinkCollide(mobj_t *t1, mobj_t *t2)
|
|||
{
|
||||
// Shootable damage
|
||||
P_KillMobj(t2, t2, t1->target, DMG_NORMAL);
|
||||
if (P_MobjWasRemoved(t2))
|
||||
{
|
||||
t2 = NULL; // handles the arguments to P_KillMobj
|
||||
}
|
||||
// This item damage
|
||||
P_KillMobj(t1, t2, t2, DMG_NORMAL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -260,14 +260,25 @@ boolean Obj_OrbinautJawzCollide(mobj_t *t1, mobj_t *t2)
|
|||
damageitem = false;
|
||||
}
|
||||
|
||||
if (damageitem)
|
||||
if (damageitem && P_MobjWasRemoved(t1) == false)
|
||||
{
|
||||
angle_t bounceangle;
|
||||
if (P_MobjWasRemoved(t2) == false)
|
||||
{
|
||||
bounceangle = K_GetCollideAngle(t2, t1);
|
||||
}
|
||||
else
|
||||
{
|
||||
bounceangle = K_MomentumAngle(t1) + ANGLE_90;
|
||||
t2 = NULL; // handles the arguments to P_KillMobj
|
||||
}
|
||||
|
||||
// This Item Damage
|
||||
angle_t bounceangle = K_GetCollideAngle(t2, t1);
|
||||
S_StartSound(t1, t1->info->deathsound);
|
||||
P_KillMobj(t1, t2, t2, DMG_NORMAL);
|
||||
|
||||
P_SetObjectMomZ(t1, 24*FRACUNIT, false);
|
||||
|
||||
P_InstaThrust(t1, bounceangle, 16*FRACUNIT);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue