mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-27 07:51:36 +00:00
Fix Broly SIGFPE
- Don't spawn the KI if the duration <= 0 - If the KI spawned but the duration <= 0 for any other reason remove the object instead of performing the division
This commit is contained in:
parent
41ebd7c67d
commit
881507889d
2 changed files with 16 additions and 6 deletions
|
|
@ -56,7 +56,7 @@ void Obj_DuelBombInit(mobj_t *bomb);
|
|||
|
||||
/* Broly Ki */
|
||||
mobj_t *Obj_SpawnBrolyKi(mobj_t *source, tic_t duration);
|
||||
void Obj_BrolyKiThink(mobj_t *ki);
|
||||
boolean Obj_BrolyKiThink(mobj_t *ki);
|
||||
|
||||
/* Special Stage UFO */
|
||||
waypoint_t *K_GetSpecialUFOWaypoint(mobj_t *ufo);
|
||||
|
|
|
|||
|
|
@ -34,14 +34,16 @@ Obj_SpawnBrolyKi
|
|||
( mobj_t * source,
|
||||
tic_t duration)
|
||||
{
|
||||
mobj_t *x = P_SpawnMobjFromMobj(
|
||||
source, 0, 0, 0, MT_BROLY);
|
||||
mobj_t *x;
|
||||
|
||||
if (duration == 0)
|
||||
if (duration <= 0)
|
||||
{
|
||||
return x;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
x = P_SpawnMobjFromMobj(
|
||||
source, 0, 0, 0, MT_BROLY);
|
||||
|
||||
// Shrink into center of source object.
|
||||
x->z = (source->z + source->height / 2);
|
||||
|
||||
|
|
@ -61,12 +63,20 @@ Obj_SpawnBrolyKi
|
|||
return x;
|
||||
}
|
||||
|
||||
void
|
||||
boolean
|
||||
Obj_BrolyKiThink (mobj_t *x)
|
||||
{
|
||||
if (broly_duration(x) <= 0)
|
||||
{
|
||||
P_RemoveMobj(x);
|
||||
return false;
|
||||
}
|
||||
|
||||
const fixed_t
|
||||
t = get_unit_linear(x),
|
||||
n = Easing_OutSine(t, 0, broly_maxscale(x));
|
||||
|
||||
P_InstaScale(x, n);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue