diff --git a/src/p_mobj.c b/src/p_mobj.c index d3f50c475..f3f3cb97c 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -7644,20 +7644,20 @@ static boolean P_MobjRegularThink(mobj_t *mobj) P_Thrust(mobj, mobj->angle + ANGLE_90, 32*mapobjectscale); mobj->flags &= ~MF_NOGRAVITY; mobj->momz += 10*mapobjectscale; - - if (mobj->cusval) // Are we the side selected to play a sound? - { - S_StartSound(mobj, sfx_kc2e); - S_StartSound(mobj, sfx_s3k9f); - } + + if (!mobj->cusval) // Some stuff should only occur once per box + return true; + + S_StartSound(mobj, sfx_kc2e); + S_StartSound(mobj, sfx_s3k9f); for (j = 0; j < 16; j++) { - fixed_t hmomentum = P_RandomRange(PR_DECORATION, 3, 6) * mobj->scale; - fixed_t vmomentum = P_RandomRange(PR_DECORATION, 1, 3) * mobj->scale; + fixed_t hmomentum = P_RandomRange(PR_DECORATION, -5, 5) * mobj->scale; + fixed_t vmomentum = P_RandomRange(PR_DECORATION, -5, 5) * mobj->scale; UINT16 color = P_RandomKey(PR_DECORATION, numskincolors); - angle_t ang = R_PointToAngle(mobj->target->momx, mobj->target->momy); + fixed_t ang = FixedAngle(P_RandomRange(PR_DECORATION, 0, 359)*FRACUNIT); SINT8 flip = 1; mobj_t *dust; diff --git a/src/r_skins.c b/src/r_skins.c index 3c689ea22..9fbeaf038 100644 --- a/src/r_skins.c +++ b/src/r_skins.c @@ -391,11 +391,11 @@ void SetRandomFakePlayerSkin(player_t* player, boolean fast) for (j = 0; j < 16; j++) { - fixed_t hmomentum = P_RandomRange(PR_DECORATION, 10, 20) * parent->scale; - fixed_t vmomentum = P_RandomRange(PR_DECORATION, 5, 10) * parent->scale; + fixed_t hmomentum = P_RandomRange(PR_DECORATION, -10, 10) * parent->scale; + fixed_t vmomentum = P_RandomRange(PR_DECORATION, -10, 10) * parent->scale; UINT16 color = P_RandomKey(PR_DECORATION, numskincolors); - angle_t ang = R_PointToAngle(parent->momx, parent->momy); + angle_t ang = FixedAngle(P_RandomRange(PR_DECORATION, 0, 359)*FRACUNIT); SINT8 flip = 1; mobj_t *dust;