Scripts/AreaTrigger: Rename OnlyOnceAreaTriggerScript::_OnTrigger to TryHandleOnce, and make its return value useful.

(cherry picked from commit 0c7f6ac89f)
This commit is contained in:
Treeston
2020-09-07 18:25:39 +02:00
committed by Shauren
parent 91f6163858
commit 358dc78e47
9 changed files with 19 additions and 18 deletions

View File

@@ -2439,14 +2439,14 @@ AreaTriggerScript::AreaTriggerScript(char const* name)
bool OnlyOnceAreaTriggerScript::OnTrigger(Player* player, AreaTriggerEntry const* trigger)
{
uint32 const triggerId = trigger->ID;
if (InstanceScript* instance = player->GetInstanceScript())
{
if (instance->IsAreaTriggerDone(triggerId))
return true;
else
instance->MarkAreaTriggerDone(triggerId);
}
return _OnTrigger(player, trigger);
InstanceScript* instance = player->GetInstanceScript();
if (instance && instance->IsAreaTriggerDone(triggerId))
return true;
if (TryHandleOnce(player, trigger) && instance)
instance->MarkAreaTriggerDone(triggerId);
return true;
}
void OnlyOnceAreaTriggerScript::ResetAreaTriggerDone(InstanceScript* script, uint32 triggerId) { script->ResetAreaTriggerDone(triggerId); }
void OnlyOnceAreaTriggerScript::ResetAreaTriggerDone(Player const* player, AreaTriggerEntry const* trigger) { if (InstanceScript* instance = player->GetInstanceScript()) ResetAreaTriggerDone(instance, trigger->ID); }