- Exhumed: Swap out flag setup in doPlayerItemPickups() for lambdas, starting with console messages.

This commit is contained in:
Mitchell Richters 2023-03-24 23:41:05 +11:00
parent 40033c3a9d
commit 77e262ce3c

View file

@ -84,8 +84,7 @@ static DExhumedActor* feebtag(const DVector3& pos, sectortype* pSector, int nVal
enum
{
kPickupProcess = 1,
kPickupOnConsole = 2,
kPickupDefaults = kPickupProcess | kPickupOnConsole,
kPickupDefaults = kPickupProcess,
kPickupHealth = 4,
kPickupWeapon = 8,
};
@ -112,6 +111,20 @@ void doPlayerItemPickups(Player* const pPlayer)
int nWeapon = 0;
int pickFlag = 0;
const auto doConsoleMessage = [&]()
{
if (pPlayer->nPlayer == nLocalPlayer)
{
if (nItemText[statBase] > -1 && nTotalPlayers == 1)
pickupMessage(statBase);
if (nSound > -1)
PlayLocalSound(nSound, 0);
TintPalette(tintRed * 4, tintGreen * 4, 0);
}
};
switch (itemtype)
{
case 0: // Speed Loader
@ -156,7 +169,7 @@ void doPlayerItemPickups(Player* const pPlayer)
{
pPickupActor->spr.cstat = CSTAT_SPRITE_INVISIBLE;
DestroyItemAnim(pPickupActor);
pickFlag |= kPickupOnConsole;
doConsoleMessage();
}
else
{
@ -346,7 +359,15 @@ void doPlayerItemPickups(Player* const pPlayer)
if (!(pPlayer->keys & keybit))
{
pPlayer->keys |= keybit;
pickFlag |= (nTotalPlayers > 1) ? kPickupOnConsole : kPickupDefaults;
if (nTotalPlayers > 1)
{
doConsoleMessage();
}
else
{
pickFlag |= kPickupDefaults;
}
}
break;
}
@ -416,7 +437,7 @@ void doPlayerItemPickups(Player* const pPlayer)
pPickupActor->spr.hitag = 0;
pPickupActor->spr.picnum++;
ChangeActorStat(pPickupActor, 0);
pickFlag |= kPickupOnConsole;
doConsoleMessage();
}
else
{
@ -466,7 +487,7 @@ void doPlayerItemPickups(Player* const pPlayer)
{
pPickupActor->spr.cstat = CSTAT_SPRITE_INVISIBLE;
DestroyItemAnim(pPickupActor);
pickFlag |= kPickupOnConsole;
doConsoleMessage();
}
}
@ -489,20 +510,6 @@ void doPlayerItemPickups(Player* const pPlayer)
StartRegenerate(pPickupActor);
}
}
if (pickFlag & kPickupOnConsole)
{
if (pPlayer->nPlayer == nLocalPlayer)
{
if (nItemText[statBase] > -1 && nTotalPlayers == 1)
pickupMessage(statBase);
if (nSound > -1)
PlayLocalSound(nSound, 0);
TintPalette(tintRed * 4, tintGreen * 4, 0);
}
}
}
}
}