post rebase

This commit is contained in:
Chris Miles 2025-07-26 20:17:19 -05:00
parent 120d077a29
commit 31e6f13b1d

View File

@ -1288,6 +1288,7 @@ void Zone::ReloadStaticData() {
WorldContentService::Instance()->SetExpansionContext()->ReloadContentFlags(); WorldContentService::Instance()->SetExpansionContext()->ReloadContentFlags();
LogInfo("Zone Static Data Reloaded"); LogInfo("Zone Static Data Reloaded");
} }
@ -3384,29 +3385,27 @@ bool Zone::IsPausedTimer(std::string name)
return e != paused_zone_timers.end(); return e != paused_zone_timers.end();
} }
void Zone::ResumeTimer(std::string name) void Zone::PauseTimer(std::string name)
{ {
if ( if (
!IsLoaded() || !IsLoaded() ||
paused_zone_timers.empty() || zone_timers.empty() ||
!IsPausedTimer(name) !HasTimer(name) ||
IsPausedTimer(name)
) { ) {
return; return;
} }
uint32 remaining_time = 0; uint32 remaining_time = 0;
if (!paused_zone_timers.empty()) { const bool has_pause_event = parse->ZoneHasQuestSub(EVENT_TIMER_PAUSE);
for (auto e = paused_zone_timers.begin(); e != paused_zone_timers.end(); e++) {
if (!zone_timers.empty()) {
for (auto e = zone_timers.begin(); e != zone_timers.end(); e++) {
if (e->name == name) { if (e->name == name) {
remaining_time = e->remaining_time; remaining_time = e->timer_.GetRemainingTime();
paused_zone_timers.erase(e); zone_timers.erase(e);
if (!remaining_time) {
LogQuests("Paused timer [{}] not found or has expired.", name);
return;
}
const std::string& export_string = fmt::format( const std::string& export_string = fmt::format(
"{} {}", "{} {}",
@ -3415,15 +3414,20 @@ void Zone::ResumeTimer(std::string name)
); );
LogQuests( LogQuests(
"Creating a new timer and resuming [{}] with [{}] ms remaining", "Pausing timer [{}] with [{}] ms remaining",
name, name,
remaining_time remaining_time
); );
zone_timers.emplace_back(ZoneTimer(name, remaining_time)); paused_zone_timers.emplace_back(
PausedZoneTimer{
.name = name,
.remaining_time = remaining_time
}
);
if (parse->ZoneHasQuestSub(EVENT_TIMER_RESUME)) { if (has_pause_event) {
parse->EventZone(EVENT_TIMER_RESUME, this, export_string); parse->EventZone(EVENT_TIMER_PAUSE, this, export_string);
} }
break; break;