feat(Core/Scripting): move all script objects to separated files (#17860)
* feat(Core/Scripts): move all script objects to separated files
* Apply 5bfeabde81
* try gcc build
* again
This commit is contained in:
parent
fe9bda1bc4
commit
eb1ecc38a5
717 changed files with 5832 additions and 3579 deletions
|
|
@ -15,6 +15,9 @@
|
|||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "AreaTriggerScript.h"
|
||||
#include "ElunaScript.h"
|
||||
#include "Player.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptMgrMacros.h"
|
||||
|
||||
|
|
@ -36,3 +39,43 @@ bool ScriptMgr::OnAreaTrigger(Player* player, AreaTrigger const* trigger)
|
|||
auto tempScript = ScriptRegistry<AreaTriggerScript>::GetScriptById(sObjectMgr->GetAreaTriggerScriptId(trigger->entry));
|
||||
return tempScript ? tempScript->OnTrigger(player, trigger) : false;
|
||||
}
|
||||
|
||||
AreaTriggerScript::AreaTriggerScript(const char* name)
|
||||
: ScriptObject(name)
|
||||
{
|
||||
ScriptRegistry<AreaTriggerScript>::AddScript(this);
|
||||
}
|
||||
|
||||
bool OnlyOnceAreaTriggerScript::OnTrigger(Player* player, AreaTrigger const* trigger)
|
||||
{
|
||||
uint32 const triggerId = trigger->entry;
|
||||
|
||||
if (InstanceScript* instance = player->GetInstanceScript())
|
||||
{
|
||||
if (instance->IsAreaTriggerDone(triggerId))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
instance->MarkAreaTriggerDone(triggerId);
|
||||
}
|
||||
}
|
||||
|
||||
return _OnTrigger(player, trigger);
|
||||
}
|
||||
|
||||
void OnlyOnceAreaTriggerScript::ResetAreaTriggerDone(InstanceScript* script, uint32 triggerId)
|
||||
{
|
||||
script->ResetAreaTriggerDone(triggerId);
|
||||
}
|
||||
|
||||
void OnlyOnceAreaTriggerScript::ResetAreaTriggerDone(Player const* player, AreaTrigger const* trigger)
|
||||
{
|
||||
if (InstanceScript* instance = player->GetInstanceScript())
|
||||
{
|
||||
ResetAreaTriggerDone(instance, trigger->entry);
|
||||
}
|
||||
}
|
||||
|
||||
template class AC_GAME_API ScriptRegistry<AreaTriggerScript>;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue