diff --git a/src/namedef.h b/src/namedef.h index f4f9a22c8..db492c1b2 100644 --- a/src/namedef.h +++ b/src/namedef.h @@ -207,6 +207,7 @@ xx(QuestItem28) xx(QuestItem29) xx(PowerDoubleFiringSpeed) xx(PowerInfiniteAmmo) +xx(PowerBuddha) xx(AcolyteBlue) xx(SpectralLightningV1) diff --git a/src/p_interaction.cpp b/src/p_interaction.cpp index 351ba47ec..1ccae9a8c 100644 --- a/src/p_interaction.cpp +++ b/src/p_interaction.cpp @@ -1360,7 +1360,7 @@ static int DamageMobj (AActor *target, AActor *inflictor, AActor *source, int da // but telefragging should still do enough damage to kill the player) // Ignore players that are already dead. // [MC]Buddha2 absorbs telefrag damage, and anything else thrown their way. - if (!(flags & DMG_FORCED) && (((player->cheats & CF_BUDDHA2) || (((player->cheats & CF_BUDDHA) || (player->cheats & CF_POWERBUDDHA) || (player->mo->flags7 & MF7_BUDDHA)) && !telefragDamage)) && (player->playerstate != PST_DEAD))) + if (!(flags & DMG_FORCED) && (((player->cheats & CF_BUDDHA2) || (((player->cheats & CF_BUDDHA) || (player->mo->FindInventory (PClass::FindActor(NAME_PowerBuddha),true) != nullptr) || (player->mo->flags7 & MF7_BUDDHA)) && !telefragDamage)) && (player->playerstate != PST_DEAD))) { // If this is a voodoo doll we need to handle the real player as well. player->mo->health = target->health = player->health = 1; diff --git a/src/p_lnspec.cpp b/src/p_lnspec.cpp index 130ea00f3..368a8a776 100644 --- a/src/p_lnspec.cpp +++ b/src/p_lnspec.cpp @@ -2873,7 +2873,7 @@ FUNC(LS_SetPlayerProperty) // Add or remove a power if (arg2 >= PROP_INVULNERABILITY && arg2 <= PROP_SPEED) { - static ENamedName powers[13] = + static ENamedName powers[14] = { NAME_PowerInvulnerable, NAME_PowerStrength, @@ -2887,7 +2887,8 @@ FUNC(LS_SetPlayerProperty) NAME_None, NAME_PowerSpeed, NAME_PowerInfiniteAmmo, - NAME_PowerDoubleFiringSpeed + NAME_PowerDoubleFiringSpeed, + NAME_PowerBuddha }; int power = arg2 - PROP_INVULNERABILITY;