diff --git a/src/info.c b/src/info.c index ce37b51ad..3c868d4c0 100644 --- a/src/info.c +++ b/src/info.c @@ -3849,7 +3849,7 @@ state_t states[NUMSTATES] = {SPR_RNDM, 18|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM11}, // S_RANDOMITEM10 {SPR_RNDM, 20|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM12}, // S_RANDOMITEM11 {SPR_RNDM, 22|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_RANDOMITEM1}, // S_RANDOMITEM12 - {SPR_NULL, 0, 0, {A_ItemPop}, 0, 0, S_NULL}, // S_DEADRANDOMITEM + {SPR_NULL, 0, 0, {A_ItemPop}, 0, 0, S_RANDOMITEM1}, // S_DEADRANDOMITEM {SPR_SBOX, FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_SPHEREBOX2}, // S_SPHEREBOX1 {SPR_SBOX, 2|FF_FULLBRIGHT|FF_ANIMATE|FF_GLOBALANIM, 4, {NULL}, 1, 1, S_SPHEREBOX3}, // S_SPHEREBOX2 diff --git a/src/p_enemy.c b/src/p_enemy.c index 879d01350..901c2a2b2 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -13184,6 +13184,12 @@ void A_ItemPop(mobj_t *actor) actor->flags |= MF_NOCLIP; P_SetThingPosition(actor); + // RF_DONTDRAW will flicker as the object's fuse gets + // closer to running out (see P_FuseThink) + actor->renderflags |= RF_DONTDRAW|RF_TRANS50; + actor->color = SKINCOLOR_GREY; + actor->colorized = true; + Obj_SpawnItemDebrisEffects(actor, actor->target); if (locvar1 == 1) @@ -13194,8 +13200,6 @@ void A_ItemPop(mobj_t *actor) // Here at mapload in battle? if ((gametyperules & GTR_BUMPERS) && (actor->flags2 & MF2_BOSSNOTRAP)) numgotboxes++; - - P_RemoveMobj(actor); } void A_JawzChase(mobj_t *actor) diff --git a/src/p_mobj.c b/src/p_mobj.c index ee005d960..1c34a1b1e 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -12683,10 +12683,6 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean P_SetThingPosition(mobj); } } - else - { - P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_EXPLODE); - } break; } case MT_ITEMCAPSULE: