diff --git a/src/deh_tables.c b/src/deh_tables.c index 6732615d4..72c259f3c 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -1755,6 +1755,7 @@ struct int_const_s const INT_CONST[] = { {"PICKUPITEM_ITEM", PICKUPITEM_ITEM}, {"PICKUPITEM_EGGMAN", PICKUPITEM_EGGMAN}, {"PICKUPITEM_FLOATING", PICKUPITEM_FLOATING}, + {"PICKUPITEM_EGGMINE", PICKUPITEM_EGGMINE}, // kart_fullturn {"KART_FULLTURN", KART_FULLTURN}, diff --git a/src/k_collide.c b/src/k_collide.c index 89dcf42c3..29a46f2dd 100644 --- a/src/k_collide.c +++ b/src/k_collide.c @@ -372,7 +372,7 @@ boolean K_EggMineCollide(mobj_t *t1, mobj_t *t2) } else if (t2->type == MT_PLAYER && t1->health > 1) { - if (t1->health > 2 && (!P_DamageMobj(t2, t1, t1->target, 1, DMG_FLIPOVER))) + if (t1->health > 2 && (P_DamageMobj(t2, t1, t1->target, 1, DMG_FLIPOVER))) { K_DoEggMineStrip(t2, t1, t1->target); S_StartSound(t2, sfx_bsnipe); @@ -555,7 +555,7 @@ boolean K_LandMineCollide(mobj_t *t1, mobj_t *t2) else { // Player Damage - if (!P_DamageMobj(t2, t1, t1->target, 1, DMG_FLIPOVER)) + if (P_DamageMobj(t2, t1, t1->target, 1, DMG_FLIPOVER)) { // these can only come from eggmines now K_DoEggMineStrip(t2, t1, t1->target); diff --git a/src/k_items.c b/src/k_items.c index d071b38a3..20e350d1d 100644 --- a/src/k_items.c +++ b/src/k_items.c @@ -2584,7 +2584,7 @@ void K_PlayerItemThink(player_t *player, boolean onground) if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO && !player->bricktimer) { - S_StartSound(player->mo, sfx_egrbhe); + S_StartSound(player->mo, sfx_bckuse); player->bricktimer = stealtime; player->itemamount--; K_BotResetItemConfirm(player, false); @@ -2661,7 +2661,7 @@ void K_DoEggMineStrip(mobj_t *tmo, mobj_t *inflictor, mobj_t *source) (void)source; if (inflictor && (inflictor->type == MT_LANDMINE || inflictor->type == MT_EGGMINE)) { - if (tmo->player && P_CanPickupItem(tmo->player, PICKUPITEM_EGGMAN)) + if (tmo->player && P_CanPickupItem(tmo->player, PICKUPITEM_EGGMINE)) { S_StartSound(tmo, sfx_egrbhe); K_DropItems(tmo->player); diff --git a/src/p_inter.c b/src/p_inter.c index d6b401576..547619eff 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -76,7 +76,11 @@ boolean P_CanPickupItem(player_t *player, UINT8 weapon) if (weapon) { // Item slot already taken up - if (weapon == 2) + if (weapon == PICKUPITEM_EGGMINE) + { + return (player->itemtype != KITEM_EGGBRICK || player->itemamount == 0); + } + else if (weapon == PICKUPITEM_EGGMAN) { // Invulnerable if (player->flashing > 0 @@ -107,7 +111,7 @@ boolean P_CanPickupItem(player_t *player, UINT8 weapon) // Item slot already taken up if (player->itemroulette - || (weapon != 3 && player->itemamount) + || (weapon != PICKUPITEM_FLOATING && player->itemamount) || (player->itemflags & IF_ITEMOUT)) return false; diff --git a/src/p_local.h b/src/p_local.h index 063be6a9c..36ada1661 100644 --- a/src/p_local.h +++ b/src/p_local.h @@ -610,6 +610,7 @@ typedef enum PICKUPITEM_ITEM, PICKUPITEM_EGGMAN, PICKUPITEM_FLOATING, + PICKUPITEM_EGGMINE, } pickupitem_e; boolean P_CanPickupItem(player_t *player, UINT8 weapon);