From e4157f02214984e515bade3c68e527d88faed2de Mon Sep 17 00:00:00 2001 From: JJ <3617814+joligario@users.noreply.github.com> Date: Sat, 23 Mar 2024 01:01:15 -0400 Subject: [PATCH] [Bug Fix] Fix reusing timers (#4199) Fixes regression from #4099 where timers that were reused were not getting changed with their updated times --- zone/embparser_api.cpp | 10 +++++----- zone/questmgr.cpp | 9 +++------ 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/zone/embparser_api.cpp b/zone/embparser_api.cpp index d319dcf16..cf91e7e97 100644 --- a/zone/embparser_api.cpp +++ b/zone/embparser_api.cpp @@ -380,12 +380,12 @@ void Perl__settimer(std::string timer_name, uint32 seconds) void Perl__settimer(std::string timer_name, uint32 seconds, Mob* m) { - quest_manager.settimer(timer_name, seconds); + quest_manager.settimer(timer_name, seconds, m); } void Perl__settimer(std::string timer_name, uint32 seconds, EQ::ItemInstance* inst) { - quest_manager.settimer(timer_name, seconds); + quest_manager.settimerMS(timer_name, seconds * 1000, inst); } void Perl__settimerMS(std::string timer_name, uint32 milliseconds) @@ -6693,9 +6693,9 @@ void perl_register_quest() package.add("settarget", &Perl__settarget); package.add("settime", (void(*)(int, int))&Perl__settime); package.add("settime", (void(*)(int, int, bool))&Perl__settime); - package.add("settimer", (void(*)(std::string, uint32))&Perl__settimer), - package.add("settimer", (void(*)(std::string, uint32, EQ::ItemInstance*))&Perl__settimer), - package.add("settimer", (void(*)(std::string, uint32, Mob*))&Perl__settimer), + package.add("settimer", (void(*)(std::string, uint32))&Perl__settimer); + package.add("settimer", (void(*)(std::string, uint32, EQ::ItemInstance*))&Perl__settimer); + package.add("settimer", (void(*)(std::string, uint32, Mob*))&Perl__settimer); package.add("settimerMS", (void(*)(std::string, uint32))&Perl__settimerMS); package.add("settimerMS", (void(*)(std::string, uint32, EQ::ItemInstance*))&Perl__settimerMS); package.add("settimerMS", (void(*)(std::string, uint32, Mob*))&Perl__settimerMS); diff --git a/zone/questmgr.cpp b/zone/questmgr.cpp index 725ab8c96..cb144b367 100644 --- a/zone/questmgr.cpp +++ b/zone/questmgr.cpp @@ -537,9 +537,8 @@ void QuestManager::settimer(const std::string& timer_name, uint32 seconds, Mob* ); if (!QTimerList.empty()) { - for (auto e : QTimerList) { + for (auto& e : QTimerList) { if (e.mob && e.mob == mob && e.name == timer_name) { - e.Timer_.Enable(); e.Timer_.Start(seconds * 1000, false); if (has_start_event) { @@ -613,9 +612,8 @@ void QuestManager::settimerMS(const std::string& timer_name, uint32 milliseconds } if (!QTimerList.empty()) { - for (auto e : QTimerList) { + for (auto& e : QTimerList) { if (e.mob && e.mob == owner && e.name == timer_name) { - e.Timer_.Enable(); e.Timer_.Start(milliseconds, false); if (has_start_event) { @@ -678,9 +676,8 @@ void QuestManager::settimerMS(const std::string& timer_name, uint32 milliseconds ); if (!QTimerList.empty()) { - for (auto e : QTimerList) { + for (auto& e : QTimerList) { if (e.mob && e.mob == m && e.name == timer_name) { - e.Timer_.Enable(); e.Timer_.Start(milliseconds, false); if (has_start_event) {