From 6733a1541efb66ec561c9e619969cb07e912f5d0 Mon Sep 17 00:00:00 2001 From: Jeffrey Haines Date: Sat, 19 Apr 2014 19:03:31 -0400 Subject: [PATCH] Fixes to Crime System Victimless crimes were removed because victims may not exist in the case of stealing items. Is class now uses case insensitive comparison. Fixed issue with confiscation of stolen items. --- apps/openmw/mwclass/npc.cpp | 2 +- apps/openmw/mwmechanics/mechanicsmanagerimp.cpp | 4 ++-- apps/openmw/mwscript/miscextensions.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwclass/npc.cpp b/apps/openmw/mwclass/npc.cpp index 5a3ff10de4..e43bfe40dd 100644 --- a/apps/openmw/mwclass/npc.cpp +++ b/apps/openmw/mwclass/npc.cpp @@ -1305,7 +1305,7 @@ namespace MWClass bool Npc::isClass(const MWWorld::Ptr& ptr, const std::string &className) const { - return ptr.get()->mBase->mClass == className; + return Misc::StringUtils::ciEqual(ptr.get()->mBase->mClass, className); } const ESM::GameSetting *Npc::fMinWalkSpeed; diff --git a/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp b/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp index d162e1037b..147f6d03fc 100644 --- a/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp +++ b/apps/openmw/mwmechanics/mechanicsmanagerimp.cpp @@ -805,8 +805,8 @@ namespace MWMechanics // NOTE: int arg can be from itemTaken() so DON'T modify it, since it is // passed to reportCrime later on in this function. - // Only player can commit crime and no victimless crimes - if (ptr.getRefData().getHandle() != "player" || victim.isEmpty()) + // Only player can commit crime + if (ptr.getRefData().getHandle() != "player") return false; const MWWorld::ESMStore& esmStore = MWBase::Environment::get().getWorld()->getStore(); diff --git a/apps/openmw/mwscript/miscextensions.cpp b/apps/openmw/mwscript/miscextensions.cpp index aa554adc37..d8ba3ea22c 100644 --- a/apps/openmw/mwscript/miscextensions.cpp +++ b/apps/openmw/mwscript/miscextensions.cpp @@ -814,6 +814,7 @@ namespace MWScript { MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr(); player.getClass().getNpcStats(player).setBounty(0); + MWBase::Environment::get().getWorld()->confiscateStolenItems(player); MWBase::Environment::get().getWorld()->getPlayer().recordCrimeId(); } }; @@ -825,7 +826,6 @@ namespace MWScript { MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr(); player.getClass().getNpcStats(player).setBounty(0); - MWBase::Environment::get().getWorld()->confiscateStolenItems(player); MWBase::Environment::get().getWorld()->getPlayer().recordCrimeId(); } };