diff --git a/Source/objects.cpp b/Source/objects.cpp index 6e04f81c3..677fc6e92 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -1908,14 +1908,7 @@ void OperateBook(Player &player, Object &book) return; } - book._oSelFlag = 0; - book._oAnimFrame++; - - if (!setlevel) { - return; - } - - if (setlvlnum == SL_VILEBETRAYER) { + if (setlevel && setlvlnum == SL_VILEBETRAYER) { bool missileAdded = false; for (int j = 0; j < ActiveObjectCount; j++) { Object &questObject = Objects[ActiveObjects[j]]; @@ -1944,6 +1937,13 @@ void OperateBook(Player &player, Object &book) } } + book._oSelFlag = 0; + book._oAnimFrame++; + + if (!setlevel) { + return; + } + if (setlvlnum == SL_BONECHAMB) { player._pMemSpells |= GetSpellBitmask(SPL_GUARDIAN); if (player._pSplLvl[SPL_GUARDIAN] < MaxSpellLevel)