mirror of
https://github.com/TES3MP/TES3MP.git
synced 2025-09-27 15:11:36 -04: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);
|
npcStats.setWerewolf(werewolf);
|
||||||
|
|
||||||
MWWorld::InventoryStore& invStore = MWWorld::Class::get(actor).getInventoryStore(actor);
|
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
|
// Update the GUI only when called on the player
|
||||||
MWBase::WindowManager* windowManager = MWBase::Environment::get().getWindowManager();
|
MWBase::WindowManager* windowManager = MWBase::Environment::get().getWindowManager();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user