mirror of
https://github.com/OpenMW/openmw.git
synced 2025-12-08 19:04:34 +00:00
Allow non-player actors to catch diseases
This commit is contained in:
parent
e3b293c4b7
commit
1ae5adba78
1 changed files with 12 additions and 9 deletions
|
|
@ -21,11 +21,11 @@ namespace MWMechanics
|
||||||
{
|
{
|
||||||
|
|
||||||
/// Call when \a actor has got in contact with \a carrier (e.g. hit by him, or loots him)
|
/// Call when \a actor has got in contact with \a carrier (e.g. hit by him, or loots him)
|
||||||
/// @param actor The actor that will potentially catch diseases. Currently only the player can catch diseases.
|
/// @param actor The actor that will potentially catch diseases. Actors cannot catch diseases from the player.
|
||||||
/// @param carrier The disease carrier.
|
/// @param carrier The disease carrier.
|
||||||
inline void diseaseContact(const MWWorld::Ptr& actor, const MWWorld::Ptr& carrier)
|
inline void diseaseContact(const MWWorld::Ptr& actor, const MWWorld::Ptr& carrier)
|
||||||
{
|
{
|
||||||
if (!carrier.getClass().isActor() || actor != getPlayer())
|
if (!carrier.getClass().isActor() || carrier == getPlayer())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
float fDiseaseXferChance = MWBase::Environment::get()
|
float fDiseaseXferChance = MWBase::Environment::get()
|
||||||
|
|
@ -71,13 +71,16 @@ namespace MWMechanics
|
||||||
creatureStats.getActiveSpells().addSpell(spell, actor, false);
|
creatureStats.getActiveSpells().addSpell(spell, actor, false);
|
||||||
MWBase::Environment::get().getWorld()->applyLoopingParticles(actor);
|
MWBase::Environment::get().getWorld()->applyLoopingParticles(actor);
|
||||||
|
|
||||||
std::string msg = MWBase::Environment::get()
|
if (actor == getPlayer())
|
||||||
.getESMStore()
|
{
|
||||||
->get<ESM::GameSetting>()
|
std::string msg = MWBase::Environment::get()
|
||||||
.find("sMagicContractDisease")
|
.getESMStore()
|
||||||
->mValue.getString();
|
->get<ESM::GameSetting>()
|
||||||
msg = Misc::StringUtils::format(msg, spell->mName);
|
.find("sMagicContractDisease")
|
||||||
MWBase::Environment::get().getWindowManager()->messageBox(msg);
|
->mValue.getString();
|
||||||
|
msg = Misc::StringUtils::format(msg, spell->mName);
|
||||||
|
MWBase::Environment::get().getWindowManager()->messageBox(msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue