From bad44f35e2b456f37a275399bc5d79fdf300603e Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Sun, 12 Feb 2023 23:28:50 -0500 Subject: [PATCH] [Quest API] (Performance) Check event EVENT_PAYLOAD or EVENT_SIGNAL exist before export and execute (#2902) * [Quest API] Optionally parse EVENT_PAYLOAD and EVENT_SIGNAL # Notes - Optionally parse these events instead of always doing so. * Update bot.cpp --- zone/bot.cpp | 12 ++++++++---- zone/client.cpp | 12 ++++++++---- zone/mob_ai.cpp | 6 ++++-- zone/npc.cpp | 7 +++++-- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/zone/bot.cpp b/zone/bot.cpp index 85e1150e1..dfc4ea20e 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -9224,14 +9224,18 @@ void Bot::SpawnBotGroupByName(Client* c, std::string botgroup_name, uint32 leade void Bot::Signal(int signal_id) { - const auto export_string = fmt::format("{}", signal_id); - parse->EventBot(EVENT_SIGNAL, this, nullptr, export_string, 0); + if (parse->BotHasQuestSub(EVENT_SIGNAL)) { + parse->EventBot(EVENT_SIGNAL, this, nullptr, std::to_string(signal_id), 0); + } } void Bot::SendPayload(int payload_id, std::string payload_value) { - const auto export_string = fmt::format("{} {}", payload_id, payload_value); - parse->EventBot(EVENT_PAYLOAD, this, nullptr, export_string, 0); + if (parse->BotHasQuestSub(EVENT_PAYLOAD)) { + const auto& export_string = fmt::format("{} {}", payload_id, payload_value); + + parse->EventBot(EVENT_PAYLOAD, this, nullptr, export_string, 0); + } } void Bot::OwnerMessage(std::string message) diff --git a/zone/client.cpp b/zone/client.cpp index 393830fce..b7fbe53ba 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -5180,14 +5180,18 @@ void Client::ShowSkillsWindow() void Client::Signal(int signal_id) { - const auto export_string = fmt::format("{}", signal_id); - parse->EventPlayer(EVENT_SIGNAL, this, export_string, 0); + if (parse->PlayerHasQuestSub(EVENT_SIGNAL)) { + parse->EventPlayer(EVENT_SIGNAL, this, std::to_string(signal_id), 0); + } } void Client::SendPayload(int payload_id, std::string payload_value) { - const auto export_string = fmt::format("{} {}", payload_id, payload_value); - parse->EventPlayer(EVENT_PAYLOAD, this, export_string, 0); + if (parse->PlayerHasQuestSub(EVENT_PAYLOAD)) { + const auto& export_string = fmt::format("{} {}", payload_id, payload_value); + + parse->EventPlayer(EVENT_PAYLOAD, this, export_string, 0); + } } void Client::SendRewards() diff --git a/zone/mob_ai.cpp b/zone/mob_ai.cpp index 2a301d67f..6fd4199cd 100644 --- a/zone/mob_ai.cpp +++ b/zone/mob_ai.cpp @@ -2470,8 +2470,10 @@ void NPC::CheckSignal() { if (!signal_q.empty()) { int signal_id = signal_q.front(); signal_q.pop_front(); - const auto export_string = fmt::format("{}", signal_id); - parse->EventNPC(EVENT_SIGNAL, this, nullptr, export_string, 0); + + if (parse->HasQuestSub(GetNPCTypeID(), EVENT_SIGNAL)) { + parse->EventNPC(EVENT_SIGNAL, this, nullptr, std::to_string(signal_id), 0); + } } } diff --git a/zone/npc.cpp b/zone/npc.cpp index c65d86dc3..c95cf1177 100644 --- a/zone/npc.cpp +++ b/zone/npc.cpp @@ -3069,8 +3069,11 @@ void NPC::SignalNPC(int _signal_id) void NPC::SendPayload(int payload_id, std::string payload_value) { - const auto export_string = fmt::format("{} {}", payload_id, payload_value); - parse->EventNPC(EVENT_PAYLOAD, this, nullptr, export_string, 0); + if (parse->HasQuestSub(GetNPCTypeID(), EVENT_PAYLOAD)) { + const auto& export_string = fmt::format("{} {}", payload_id, payload_value); + + parse->EventNPC(EVENT_PAYLOAD, this, nullptr, export_string, 0); + } } NPC_Emote_Struct* NPC::GetNPCEmote(uint32 emoteid, uint8 event_) {