diff --git a/src/k_kart.c b/src/k_kart.c index 5d4ffe3f..ea80d65c 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3872,11 +3872,17 @@ void K_DropItems(player_t *player) void K_DropRocketSneaker(player_t *player) { + if (!(player->mo && !P_MobjWasRemoved(player->mo) && player->mo->hnext && !P_MobjWasRemoved(player->mo->hnext))) + return; + mobj_t *shoe = player->mo; fixed_t flingangle; boolean leftshoe = true; //left shoie is first while ((shoe = shoe->hnext) && !P_MobjWasRemoved(shoe)) { + if (shoe->type != MT_ROCKETSNEAKER) + return; //woah, not a rocketsneaker, bail! safeguard in case this gets used when you're holding non-rocketsneakers + shoe->flags2 &= ~MF2_DONTDRAW; shoe->flags &= ~MF_NOGRAVITY; shoe->angle += ANGLE_45; diff --git a/src/p_inter.c b/src/p_inter.c index 54fe0103..2a781d0a 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -408,9 +408,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) } else { - if (player->kartstuff[k_rocketsneakertimer]) - K_DropRocketSneaker(player); - + K_DropRocketSneaker(player); K_DropItems(player); //K_StripItems(player); //K_StripOther(player); player->kartstuff[k_itemroulette] = 1;