mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-26 18:35:20 +00:00
Merge pull request #2767 from Capostrophic/unlock
Make sure it's a crime to unlock owned doors
This commit is contained in:
commit
4892172a7d
@ -43,6 +43,8 @@ namespace MWMechanics
|
|||||||
x *= pickQuality * mFatigueTerm;
|
x *= pickQuality * mFatigueTerm;
|
||||||
x += fPickLockMult * lockStrength;
|
x += fPickLockMult * lockStrength;
|
||||||
|
|
||||||
|
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(mActor, lock);
|
||||||
|
|
||||||
resultSound = "Open Lock Fail";
|
resultSound = "Open Lock Fail";
|
||||||
if (x <= 0)
|
if (x <= 0)
|
||||||
resultMessage = "#{sLockImpossible}";
|
resultMessage = "#{sLockImpossible}";
|
||||||
@ -59,7 +61,6 @@ namespace MWMechanics
|
|||||||
resultMessage = "#{sLockFail}";
|
resultMessage = "#{sLockFail}";
|
||||||
}
|
}
|
||||||
|
|
||||||
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(mActor, lock);
|
|
||||||
int uses = lockpick.getClass().getItemHealth(lockpick);
|
int uses = lockpick.getClass().getItemHealth(lockpick);
|
||||||
--uses;
|
--uses;
|
||||||
lockpick.getCellRef().setCharge(uses);
|
lockpick.getCellRef().setCharge(uses);
|
||||||
@ -84,6 +85,8 @@ namespace MWMechanics
|
|||||||
x += fTrapCostMult * trapSpellPoints;
|
x += fTrapCostMult * trapSpellPoints;
|
||||||
x *= probeQuality * mFatigueTerm;
|
x *= probeQuality * mFatigueTerm;
|
||||||
|
|
||||||
|
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(mActor, trap);
|
||||||
|
|
||||||
resultSound = "Disarm Trap Fail";
|
resultSound = "Disarm Trap Fail";
|
||||||
if (x <= 0)
|
if (x <= 0)
|
||||||
resultMessage = "#{sTrapImpossible}";
|
resultMessage = "#{sTrapImpossible}";
|
||||||
@ -101,7 +104,6 @@ namespace MWMechanics
|
|||||||
resultMessage = "#{sTrapFail}";
|
resultMessage = "#{sTrapFail}";
|
||||||
}
|
}
|
||||||
|
|
||||||
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(mActor, trap);
|
|
||||||
int uses = probe.getClass().getItemHealth(probe);
|
int uses = probe.getClass().getItemHealth(probe);
|
||||||
--uses;
|
--uses;
|
||||||
probe.getCellRef().setCharge(uses);
|
probe.getCellRef().setCharge(uses);
|
||||||
|
@ -709,6 +709,11 @@ namespace MWMechanics
|
|||||||
}
|
}
|
||||||
else if (effectId == ESM::MagicEffect::Open)
|
else if (effectId == ESM::MagicEffect::Open)
|
||||||
{
|
{
|
||||||
|
if (!caster.isEmpty())
|
||||||
|
{
|
||||||
|
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(getPlayer(), target);
|
||||||
|
// Use the player instead of the caster for vanilla crime compatibility
|
||||||
|
}
|
||||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||||
const ESM::MagicEffect *magiceffect = store.get<ESM::MagicEffect>().find(effectId);
|
const ESM::MagicEffect *magiceffect = store.get<ESM::MagicEffect>().find(effectId);
|
||||||
MWRender::Animation* animation = MWBase::Environment::get().getWorld()->getAnimation(target);
|
MWRender::Animation* animation = MWBase::Environment::get().getWorld()->getAnimation(target);
|
||||||
@ -726,11 +731,10 @@ namespace MWMechanics
|
|||||||
target.getCellRef().unlock();
|
target.getCellRef().unlock();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
MWBase::Environment::get().getSoundManager()->playSound3D(target, "Open Lock Fail", 1.f, 1.f);
|
MWBase::Environment::get().getSoundManager()->playSound3D(target, "Open Lock Fail", 1.f, 1.f);
|
||||||
|
}
|
||||||
|
|
||||||
if (!caster.isEmpty())
|
|
||||||
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(getPlayer(), target);
|
|
||||||
// Use the player instead of the caster for vanilla crime compatibility
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user