diff --git a/src/info/actions.h b/src/info/actions.h index f32aa3438..55aab4bbd 100644 --- a/src/info/actions.h +++ b/src/info/actions.h @@ -213,6 +213,7 @@ _(A_SSMineExplode, SSMINEEXPLODE) _(A_SSMineSearch, GRENADERING) _(A_SSMineExplode, MINEEXPLODE) _(A_LandMineExplode, LANDMINEEXPLODE) +_(A_EggMinePop, EGGMINEPOP) _(A_BallhogExplode, BALLHOGEXPLODE) _(A_LightningFollowPlayer, LIGHTNINGFOLLOWPLAYER) _(A_FZBoomFlash, FZBOOMFLASH) diff --git a/src/k_items.c b/src/k_items.c index f37e8c06e..92aa1c370 100644 --- a/src/k_items.c +++ b/src/k_items.c @@ -2564,35 +2564,6 @@ void K_DoEggMineStrip(mobj_t *tmo, mobj_t *inflictor, mobj_t *source) } } -void K_EggMinePop(mobj_t *mo) -{ - mobj_t *poof; - mobj_t *landMine; - player_t *player; - - if (mo->lastlook == 0) return; - - poof = P_SpawnMobj(mo->x, mo->y, mo->z, MT_EXPLODE); - S_StartSound(poof, mo->info->deathsound); - - if (!(mo->target && mo->target->player)) return; - - player = mo->target->player; - - landMine = P_SpawnMobj(mo->x, mo->y, mo->z + mo->height/2, MT_LANDMINE); - K_FlipFromObject(landMine, mo); - landMine->threshold = 10; - landMine->target = player->mo; - - P_SetScale(landMine, 3*mo->scale/4); - landMine->destscale = mo->destscale; - - landMine->angle = mo->angle; - - landMine->momz = (28 * mapobjectscale * P_MobjFlip(mo)); - landMine->color = player->skincolor; -} - void K_EggMineSetup(mobj_t *mo) { mobj_t *overlay; diff --git a/src/k_items.h b/src/k_items.h index c900e6429..28dbf1b1d 100644 --- a/src/k_items.h +++ b/src/k_items.h @@ -222,7 +222,6 @@ void K_AltShrinkPityIncrease(player_t *player); void K_SpawnEggMineBumpEffect(mobj_t *mo); void K_DoEggMineStrip(mobj_t *tmo, mobj_t *inflictor, mobj_t *source); -void K_EggMinePop(mobj_t *mo); void K_EggMineSetup(mobj_t *mo); void K_EggMineBounce(mobj_t *t1, mobj_t *t2); diff --git a/src/p_enemy.c b/src/p_enemy.c index 4c37a2d1f..ecb416e84 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -11472,6 +11472,39 @@ void A_LandMineExplode(void *thing) } } +void A_EggMinePop(void *thing) +{ + mobj_t *actor = thing; + mobj_t *poof; + mobj_t *landMine; + player_t *player; + + if (LUA_CallAction(A_EGGMINEPOP, actor)) + return; + + if (actor->lastlook == 0) return; + + poof = P_SpawnMobj(actor->x, actor->y, actor->z, MT_EXPLODE); + S_StartSound(poof, actor->info->deathsound); + + if (!(actor->target && actor->target->player)) return; + + player = actor->target->player; + + landMine = P_SpawnMobj(actor->x, actor->y, actor->z + actor->height/2, MT_LANDMINE); + K_FlipFromObject(landMine, actor); + landMine->threshold = 10; + landMine->target = player->mo; + + P_SetScale(landMine, 3*actor->scale/4); + landMine->destscale = actor->destscale; + + landMine->angle = actor->angle; + + landMine->momz = (28 * mapobjectscale * P_MobjFlip(actor)); + landMine->color = player->skincolor; +} + void A_BallhogExplode(void *thing) { mobj_t *actor = thing; diff --git a/src/p_mobj.c b/src/p_mobj.c index c8f725cb1..ca7398be8 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8833,7 +8833,6 @@ static boolean P_MobjRegularThink(mobj_t *mobj) mobj->movefactor -= 1; if (mobj->movefactor <= 0) { - K_EggMinePop(mobj); P_KillMobj(mobj, mobj, NULL, DMG_INSTAKILL); } else