turns out this needs its own pickup type (due to op order)

This commit is contained in:
minenice55 2026-02-21 00:26:09 -05:00
parent 24fed48281
commit 247dd4a437
5 changed files with 12 additions and 6 deletions

View file

@ -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},

View file

@ -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);

View file

@ -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);

View file

@ -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;

View file

@ -610,6 +610,7 @@ typedef enum
PICKUPITEM_ITEM,
PICKUPITEM_EGGMAN,
PICKUPITEM_FLOATING,
PICKUPITEM_EGGMINE,
} pickupitem_e;
boolean P_CanPickupItem(player_t *player, UINT8 weapon);