mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Cleanup objects properly
This commit is contained in:
parent
eda9e0cd9d
commit
cb2d2cb2ba
3 changed files with 31 additions and 9 deletions
|
|
@ -10,6 +10,8 @@ void Obj_HyudoroCollide(mobj_t *special, mobj_t *toucher);
|
||||||
|
|
||||||
/* Shrink */
|
/* Shrink */
|
||||||
void Obj_PohbeeThinker(mobj_t *pohbee);
|
void Obj_PohbeeThinker(mobj_t *pohbee);
|
||||||
|
void Obj_PohbeeRemoved(mobj_t *pohbee);
|
||||||
|
void Obj_ShrinkGunRemoved(mobj_t *gun);
|
||||||
boolean Obj_ShrinkLaserCollide(mobj_t *gun, mobj_t *victim);
|
boolean Obj_ShrinkLaserCollide(mobj_t *gun, mobj_t *victim);
|
||||||
void Obj_CreateShrinkPohbees(player_t *owner);
|
void Obj_CreateShrinkPohbees(player_t *owner);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -429,25 +429,35 @@ void Obj_PohbeeThinker(mobj_t *pohbee)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
void Obj_PohbeeRemoved(mobj_t *pohbee)
|
void Obj_PohbeeRemoved(mobj_t *pohbee)
|
||||||
|
{
|
||||||
|
mobj_t *gun = pohbee_guns(pohbee);
|
||||||
|
|
||||||
|
while (gun != NULL && P_MobjWasRemoved(gun) == false)
|
||||||
|
{
|
||||||
|
mobj_t *nextGun = pohbee_guns(gun);
|
||||||
|
P_RemoveMobj(gun);
|
||||||
|
gun = nextGun;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Obj_ShrinkGunRemoved(mobj_t *gun)
|
||||||
{
|
{
|
||||||
mobj_t *chain = NULL;
|
mobj_t *chain = NULL;
|
||||||
|
|
||||||
if (pohbee_guns(pohbee) != NULL)
|
if (gun_laser(gun) != NULL && P_MobjWasRemoved(gun_laser(gun)) == false)
|
||||||
{
|
{
|
||||||
P_RemoveMobj(pohbee_laser(pohbee));
|
P_RemoveMobj(gun_laser(gun));
|
||||||
}
|
}
|
||||||
|
|
||||||
chain = pohbee_chain(pohbee);
|
chain = gun_chains(gun);
|
||||||
while (chain != NULL)
|
while (chain != NULL && P_MobjWasRemoved(chain) == false)
|
||||||
{
|
{
|
||||||
mobj_t *temp = chain;
|
mobj_t *nextChain = gun_chains(chain);
|
||||||
chain = pohbee_chain(temp);
|
P_RemoveMobj(chain);
|
||||||
P_RemoveMobj(temp);
|
chain = nextChain;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
boolean Obj_ShrinkLaserCollide(mobj_t *gun, mobj_t *victim)
|
boolean Obj_ShrinkLaserCollide(mobj_t *gun, mobj_t *victim)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
10
src/p_mobj.c
10
src/p_mobj.c
|
|
@ -10656,6 +10656,16 @@ void P_RemoveMobj(mobj_t *mobj)
|
||||||
P_SetTarget(&mobj->player->followmobj, NULL);
|
P_SetTarget(&mobj->player->followmobj, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mobj->type == MT_SHRINK_POHBEE)
|
||||||
|
{
|
||||||
|
Obj_PohbeeRemoved(mobj);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mobj->type == MT_SHRINK_GUN)
|
||||||
|
{
|
||||||
|
Obj_ShrinkGunRemoved(mobj);
|
||||||
|
}
|
||||||
|
|
||||||
mobj->health = 0; // Just because
|
mobj->health = 0; // Just because
|
||||||
|
|
||||||
// unlink from sector and block lists
|
// unlink from sector and block lists
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue