From 2dffc66c6f4d0660ee4765e860d1aa39e81988eb Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Sun, 12 Feb 2023 23:18:57 -0500 Subject: [PATCH] [Quest API] (Performance) Check event exists before export and execute EVENT_UNHANDLED_OPCODE (#2918) # Notes - Optionally parse this event instead of always doing so. --- zone/client_packet.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index d78129785..449924f87 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -468,10 +468,10 @@ int Client::HandlePacket(const EQApplicationPacket *app) switch (client_state) { case CLIENT_CONNECTING: { if (ConnectingOpcodes.count(opcode) != 1) { - //Hate const cast but everything in lua needs to be non-const even if i make it non-mutable - std::vector args; - args.push_back(const_cast(app)); - parse->EventPlayer(EVENT_UNHANDLED_OPCODE, this, "", 1, &args); + if (parse->PlayerHasQuestSub(EVENT_UNHANDLED_OPCODE)) { + std::vector args = {const_cast(app)}; + parse->EventPlayer(EVENT_UNHANDLED_OPCODE, this, "", 1, &args); + } break; } @@ -493,9 +493,10 @@ int Client::HandlePacket(const EQApplicationPacket *app) ClientPacketProc p; p = ConnectedOpcodes[opcode]; if (p == nullptr) { - std::vector args; - args.push_back(const_cast(app)); - parse->EventPlayer(EVENT_UNHANDLED_OPCODE, this, "", 0, &args); + if (parse->PlayerHasQuestSub(EVENT_UNHANDLED_OPCODE)) { + std::vector args = {const_cast(app)}; + parse->EventPlayer(EVENT_UNHANDLED_OPCODE, this, "", 0, &args); + } break; }