From ca06b2a3347e2bfc70503b46ea4ddadb5fcacf0a Mon Sep 17 00:00:00 2001 From: Lach Date: Wed, 14 May 2025 02:04:40 +1000 Subject: [PATCH] Replace further P_CanPickupItem constants and allow them to be parsed in Lua --- src/deh_tables.c | 5 +++++ src/k_botsearch.cpp | 8 ++++---- src/k_collide.cpp | 2 +- src/k_kart.c | 2 +- src/objects/hyudoro.c | 2 +- src/objects/random-item.c | 2 +- 6 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/deh_tables.c b/src/deh_tables.c index 773b47b90..715d78394 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -5251,6 +5251,11 @@ struct int_const_s const INT_CONST[] = { {"TN_CHANGEPITCH",TN_CHANGEPITCH}, {"TN_LOOPING",TN_LOOPING}, + {"PICKUP_RINGORSPHERE", PICKUP_RINGORSPHERE}, + {"PICKUP_ITEMBOX", PICKUP_ITEMBOX}, + {"PICKUP_EGGBOX", PICKUP_EGGBOX}, + {"PICKUP_PAPERITEM", PICKUP_PAPERITEM}, + {NULL,0} }; diff --git a/src/k_botsearch.cpp b/src/k_botsearch.cpp index 666e2adcf..1bb53c051 100644 --- a/src/k_botsearch.cpp +++ b/src/k_botsearch.cpp @@ -497,7 +497,7 @@ static BlockItReturn_t K_FindObjectsForNudging(mobj_t *thing) break; } - if (P_CanPickupItem(g_nudgeSearch.botmo->player, 1)) + if (P_CanPickupItem(g_nudgeSearch.botmo->player, PICKUP_ITEMBOX)) { K_AddAttackObject(thing, side, ((thing->extravalue1 < RINGBOX_TIME) ? 10 : 20)); } @@ -508,7 +508,7 @@ static BlockItReturn_t K_FindObjectsForNudging(mobj_t *thing) break; } - if (P_CanPickupItem(g_nudgeSearch.botmo->player, 1)) // Can pick up an actual item + if (P_CanPickupItem(g_nudgeSearch.botmo->player, PICKUP_ITEMBOX)) // Can pick up an actual item { const UINT8 stealth = K_EggboxStealth(thing->x, thing->y); const UINT8 requiredstealth = (g_nudgeSearch.botmo->player->botvars.difficulty * g_nudgeSearch.botmo->player->botvars.difficulty); @@ -529,7 +529,7 @@ static BlockItReturn_t K_FindObjectsForNudging(mobj_t *thing) break; } - if (P_CanPickupItem(g_nudgeSearch.botmo->player, 3)) + if (P_CanPickupItem(g_nudgeSearch.botmo->player, PICKUP_PAPERITEM)) { K_AddAttackObject(thing, side, 20); } @@ -542,7 +542,7 @@ static BlockItReturn_t K_FindObjectsForNudging(mobj_t *thing) } if ((RINGTOTAL(g_nudgeSearch.botmo->player) < 20 && !(g_nudgeSearch.botmo->player->pflags & PF_RINGLOCK) - && P_CanPickupItem(g_nudgeSearch.botmo->player, 0)) + && P_CanPickupItem(g_nudgeSearch.botmo->player, PICKUP_RINGORSPHERE)) && !thing->extravalue1 && (g_nudgeSearch.botmo->player->itemtype != KITEM_LIGHTNINGSHIELD)) { diff --git a/src/k_collide.cpp b/src/k_collide.cpp index 3e048234e..caa445edf 100644 --- a/src/k_collide.cpp +++ b/src/k_collide.cpp @@ -172,7 +172,7 @@ boolean K_EggItemCollide(mobj_t *t1, mobj_t *t2) if (t1->health <= 0 || t2->health <= 0) return true; - if (!P_CanPickupItem(t2->player, 2)) + if (!P_CanPickupItem(t2->player, PICKUP_EGGBOX)) return true; K_DropItems(t2->player); diff --git a/src/k_kart.c b/src/k_kart.c index 0716ab7e5..ef3e2e6fa 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -10066,7 +10066,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) } extern consvar_t cv_fuzz; - if (cv_fuzz.value && P_CanPickupItem(player, 1)) + if (cv_fuzz.value && P_CanPickupItem(player, PICKUP_ITEMBOX)) { K_StartItemRoulette(player, P_RandomRange(PR_FUZZ, 0, 1)); } diff --git a/src/objects/hyudoro.c b/src/objects/hyudoro.c index 2527ea903..f1e0f440e 100644 --- a/src/objects/hyudoro.c +++ b/src/objects/hyudoro.c @@ -629,7 +629,7 @@ award_immediately (mobj_t *hyu) return false; } - if (!P_CanPickupItem(player, 1)) + if (!P_CanPickupItem(player, PICKUP_ITEMBOX)) return false; // Prevent receiving any more items or even stacked diff --git a/src/objects/random-item.c b/src/objects/random-item.c index 0e0a2a788..244fcf2bb 100644 --- a/src/objects/random-item.c +++ b/src/objects/random-item.c @@ -48,7 +48,7 @@ static player_t *GetItemBoxPlayer(mobj_t *mobj) } // Always use normal item box rules -- could pass in "2" for fakes but they blend in better like this - if (P_CanPickupItem(&players[i], 1)) + if (P_CanPickupItem(&players[i], PICKUP_ITEMBOX)) { // Check for players who can take this pickup, but won't be allowed to (antifarming) UINT8 mytype = (mobj->flags2 & MF2_BOSSDEAD) ? 2 : 1;