Browse Source

Save and restore item seed when downgrading potions from steal trap

pull/5390/head
ephphatha 4 years ago committed by Anders Jenbo
parent
commit
28d685ea85
  1. 15
      Source/missiles.cpp

15
Source/missiles.cpp

@ -1279,11 +1279,12 @@ void AddStealPotions(Missile &missile, const AddMissileParameter & /*parameter*/
bool hasPlayedSFX = false; bool hasPlayedSFX = false;
for (int si = 0; si < MaxBeltItems; si++) { for (int si = 0; si < MaxBeltItems; si++) {
int ii = -1; Item &beltItem = player.SpdList[si];
if (player.SpdList[si]._itype == ItemType::Misc) { int ii = IDI_NONE;
if (beltItem._itype == ItemType::Misc) {
if (FlipCoin()) if (FlipCoin())
continue; continue;
switch (player.SpdList[si]._iMiscId) { switch (beltItem._iMiscId) {
case IMISC_FULLHEAL: case IMISC_FULLHEAL:
ii = ItemMiscIdIdx(IMISC_HEAL); ii = ItemMiscIdIdx(IMISC_HEAL);
break; break;
@ -1314,9 +1315,11 @@ void AddStealPotions(Missile &missile, const AddMissileParameter & /*parameter*/
continue; continue;
} }
} }
if (ii != -1) { if (ii != IDI_NONE) {
InitializeItem(player.SpdList[si], ii); auto seed = beltItem._iSeed;
player.SpdList[si]._iStatFlag = true; InitializeItem(beltItem, ii);
beltItem._iSeed = seed;
beltItem._iStatFlag = true;
} }
if (!hasPlayedSFX) { if (!hasPlayedSFX) {
PlaySfxLoc(IS_POPPOP2, target); PlaySfxLoc(IS_POPPOP2, target);

Loading…
Cancel
Save