mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-08-03 23:36:59 -04:00
Merge branch 'activescripts' into 'master'
Mark scripts on newly scripted, active objects as active See merge request OpenMW/openmw!4785
This commit is contained in:
commit
eb67d1a1fb
@ -235,14 +235,17 @@ namespace MWLua
|
|||||||
&mOnSkillLevelUp });
|
&mOnSkillLevelUp });
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocalScripts::setActive(bool active)
|
void LocalScripts::setActive(bool active, bool callHandlers)
|
||||||
{
|
{
|
||||||
mData.mIsActive = active;
|
mData.mIsActive = active;
|
||||||
|
if (callHandlers)
|
||||||
|
{
|
||||||
if (active)
|
if (active)
|
||||||
callEngineHandlers(mOnActiveHandlers);
|
callEngineHandlers(mOnActiveHandlers);
|
||||||
else
|
else
|
||||||
callEngineHandlers(mOnInactiveHandlers);
|
callEngineHandlers(mOnInactiveHandlers);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void LocalScripts::applyStatsCache()
|
void LocalScripts::applyStatsCache()
|
||||||
{
|
{
|
||||||
|
@ -67,7 +67,7 @@ namespace MWLua
|
|||||||
MWBase::LuaManager::ActorControls* getActorControls() { return &mData.mControls; }
|
MWBase::LuaManager::ActorControls* getActorControls() { return &mData.mControls; }
|
||||||
const MWWorld::Ptr& getPtrOrEmpty() const { return mData.ptrOrEmpty(); }
|
const MWWorld::Ptr& getPtrOrEmpty() const { return mData.ptrOrEmpty(); }
|
||||||
|
|
||||||
void setActive(bool active);
|
void setActive(bool active, bool callHandlers = true);
|
||||||
bool isActive() const override { return mData.mIsActive; }
|
bool isActive() const override { return mData.mIsActive; }
|
||||||
void onConsume(const LObject& consumable) { callEngineHandlers(mOnConsumeHandlers, consumable); }
|
void onConsume(const LObject& consumable) { callEngineHandlers(mOnConsumeHandlers, consumable); }
|
||||||
void onActivated(const LObject& actor) { callEngineHandlers(mOnActivatedHandlers, actor); }
|
void onActivated(const LObject& actor) { callEngineHandlers(mOnActivatedHandlers, actor); }
|
||||||
|
@ -540,8 +540,11 @@ namespace MWLua
|
|||||||
localScripts = createLocalScripts(ptr);
|
localScripts = createLocalScripts(ptr);
|
||||||
localScripts->addAutoStartedScripts();
|
localScripts->addAutoStartedScripts();
|
||||||
if (ptr.isInCell() && MWBase::Environment::get().getWorldScene()->isCellActive(*ptr.getCell()))
|
if (ptr.isInCell() && MWBase::Environment::get().getWorldScene()->isCellActive(*ptr.getCell()))
|
||||||
|
{
|
||||||
|
localScripts->setActive(true, false);
|
||||||
mActiveLocalScripts.insert(localScripts);
|
mActiveLocalScripts.insert(localScripts);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
localScripts->addCustomScript(scriptId, initData);
|
localScripts->addCustomScript(scriptId, initData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user