diff --git a/src/k_collide.c b/src/k_collide.c index 7edbe3e87..bbd5c2974 100644 --- a/src/k_collide.c +++ b/src/k_collide.c @@ -183,7 +183,9 @@ boolean K_EggItemCollide(mobj_t *t1, mobj_t *t2) if (t2->type == MT_RANDOMITEM || t2->type == MT_EGGMANITEM) P_InstaThrust(t1, R_PointToAngle2(t2->x, t2->y, t1->x, t1->y), t2->radius/4); - // Player collision is handled by TouchSpecial + if (t1->type == MT_EGGMANITEM && t2->player) + P_TouchSpecialThing(t1, t2, false); + return true; } diff --git a/src/p_inter.c b/src/p_inter.c index b729fde8d..6d1051e82 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -117,9 +117,7 @@ boolean P_CanPickupItem(player_t *player, UINT8 weapon) if (weapon == 2) { // Invulnerable - if (player->powers[pw_flashing] > 0 - || (player->kartstuff[k_spinouttimer] > 0 && player->kartstuff[k_spinouttype] != 2) - || player->kartstuff[k_squishedtimer] > 0) + if (player->powers[pw_flashing] > 0) return false; // Already have fake diff --git a/src/p_map.c b/src/p_map.c index a57c4da31..262017570 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -841,7 +841,7 @@ static boolean PIT_CheckThing(mobj_t *thing) return K_SMKIceBlockCollide(thing, tmthing); } - if (tmthing->type == MT_EGGMANITEM) + if (tmthing->type == MT_EGGMANITEM || tmthing->type == MT_EGGMANITEM_SHIELD) { // see if it went over / under if (tmthing->z > thing->z + thing->height) @@ -849,10 +849,9 @@ static boolean PIT_CheckThing(mobj_t *thing) if (tmthing->z + tmthing->height < thing->z) return true; // underneath - K_EggItemCollide(tmthing, thing); - return true; + return K_EggItemCollide(tmthing, thing); } - else if (thing->type == MT_EGGMANITEM) + else if (thing->type == MT_EGGMANITEM || thing->type == MT_EGGMANITEM_SHIELD) { // see if it went over / under if (tmthing->z > thing->z + thing->height) @@ -860,8 +859,7 @@ static boolean PIT_CheckThing(mobj_t *thing) if (tmthing->z + tmthing->height < thing->z) return true; // underneath - K_EggItemCollide(thing, tmthing); - return true; + return K_EggItemCollide(thing, tmthing); } if (tmthing->type == MT_RANDOMITEM)