diff --git a/src/p_mobj.c b/src/p_mobj.c index 5bf4323c3..48d5474e9 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -10049,19 +10049,6 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type) P_SetTarget(&mobj->tracer, P_SpawnMobjFromMobj(mobj, 0, 0, 0, MT_MINECARTENDSOLID)); mobj->tracer->angle = mobj->angle + ANGLE_90; break; - case MT_BIGFERN: - { - UINT8 i; - for (i = 0; i < 8; i++) - { - UINT8 j = (i + 2) % 8; - fixed_t xoffs = (j % 4) ? FRACUNIT : 0; - fixed_t yoffs = (i % 4) ? FRACUNIT : 0; - mobj_t *leaf = P_SpawnMobjFromMobj(mobj, (j > 3) ? -xoffs : xoffs, (i > 3) ? -yoffs : yoffs, 0, MT_BIGFERNLEAF); - leaf->angle = (angle_t)i * ANGLE_45; - } - break; - } case MT_TORCHFLOWER: { mobj_t *fire = P_SpawnMobjFromMobj(mobj, 0, 0, 46*FRACUNIT, MT_FLAME); @@ -12101,6 +12088,21 @@ ML_EFFECT5 : Don't stop thinking when too far away S_StartSound(mobj, sfx_s3kd3l); } break; + case MT_BIGFERN: + { + angle_t angle = FixedAngle((mthing->angle % 45) << FRACBITS); + UINT8 i; + for (i = 0; i < 8; i++) + { + UINT8 j = (i + 2) % 8; + fixed_t xoffs = (j % 4) ? FRACUNIT : 0; + fixed_t yoffs = (i % 4) ? FRACUNIT : 0; + mobj_t *leaf = P_SpawnMobjFromMobj(mobj, (j > 3) ? -xoffs : xoffs, (i > 3) ? -yoffs : yoffs, 0, MT_BIGFERNLEAF); + leaf->angle = angle; + angle += ANGLE_45; + } + break; + } default: break; }