[Quest API] Add Lua handlers for zone controller events (#2514)

This cleans up some of the NPC::Death event dispatch code.

Adds handlers for EVENT_SPAWN_ZONE and EVENT_DEATH_ZONE used by zone
controller and fixes the death handler exports which were incorrect.
This commit is contained in:
hg
2022-11-05 11:13:39 -04:00
committed by GitHub
parent 070bf64d6a
commit 9c7dd70b5f
8 changed files with 93 additions and 97 deletions
+15
View File
@@ -3764,3 +3764,18 @@ int NPC::GetRolledItemCount(uint32 item_id)
return rolled_count;
}
int NPC::DispatchZoneControllerEvent(QuestEventID evt, Mob* init,
const std::string& data, uint32 extra, std::vector<std::any>* pointers)
{
int ret = 0;
if (RuleB(Zone, UseZoneController) && GetNPCTypeID() != ZONE_CONTROLLER_NPC_ID)
{
auto controller = entity_list.GetNPCByNPCTypeID(ZONE_CONTROLLER_NPC_ID);
if (controller)
{
ret = parse->EventNPC(evt, controller, init, data, extra, pointers);
}
}
return ret;
}