mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-30 16:20:21 +00:00
Add/remove a WerewolfRobe when werewolf form is toggled
This commit is contained in:
parent
3cff7b1e42
commit
960ea3d96c
@ -1871,10 +1871,38 @@ namespace MWWorld
|
||||
npcStats.setWerewolf(werewolf);
|
||||
|
||||
MWWorld::InventoryStore& invStore = MWWorld::Class::get(actor).getInventoryStore(actor);
|
||||
if (werewolf)
|
||||
invStore.unequipAll(actor);
|
||||
invStore.unequipAll(actor);
|
||||
|
||||
if (actor.getRefData().getHandle() == "player")
|
||||
if(werewolf)
|
||||
{
|
||||
ManualRef ref(getStore(), "WerewolfRobe");
|
||||
ref.getPtr().getRefData().setCount(1);
|
||||
|
||||
// Configure item's script variables
|
||||
std::string script = Class::get(ref.getPtr()).getScript(ref.getPtr());
|
||||
if(script != "")
|
||||
{
|
||||
const ESM::Script *esmscript = getStore().get<ESM::Script>().find(script);
|
||||
ref.getPtr().getRefData().setLocals(*esmscript);
|
||||
}
|
||||
|
||||
// Not sure this is right
|
||||
InventoryStore &inv = Class::get(actor).getInventoryStore(actor);
|
||||
inv.equip(InventoryStore::Slot_Robe, inv.add(ref.getPtr(), actor));
|
||||
}
|
||||
else
|
||||
{
|
||||
ContainerStore &store = Class::get(actor).getContainerStore(actor);
|
||||
|
||||
const std::string item = "WerewolfRobe";
|
||||
for(ContainerStoreIterator iter(store.begin());iter != store.end();++iter)
|
||||
{
|
||||
if(Misc::StringUtils::ciEqual(iter->getCellRef().mRefID, item))
|
||||
iter->getRefData().setCount(0);
|
||||
}
|
||||
}
|
||||
|
||||
if(actor.getRefData().getHandle() == "player")
|
||||
{
|
||||
// Update the GUI only when called on the player
|
||||
MWBase::WindowManager* windowManager = MWBase::Environment::get().getWindowManager();
|
||||
|
Loading…
x
Reference in New Issue
Block a user