Force changing the timer_time for attack timers

Should fix issues with waiting for a slow timer after a cure
This commit is contained in:
Michael Cook (mackal) 2014-12-22 01:58:54 -05:00
parent b9fab9bc1b
commit 18fb86a560
3 changed files with 6 additions and 4 deletions

View File

@ -141,11 +141,13 @@ uint32 Timer::GetRemainingTime() {
} }
} }
void Timer::SetAtTrigger(uint32 in_set_at_trigger, bool iEnableIfDisabled) { void Timer::SetAtTrigger(uint32 in_set_at_trigger, bool iEnableIfDisabled, bool ChangeTimerTime) {
set_at_trigger = in_set_at_trigger; set_at_trigger = in_set_at_trigger;
if (!Enabled() && iEnableIfDisabled) { if (!Enabled() && iEnableIfDisabled) {
Enable(); Enable();
} }
if (ChangeTimerTime)
timer_time = set_at_trigger;
} }
void Timer::Trigger() void Timer::Trigger()

View File

@ -43,7 +43,7 @@ public:
inline const uint32& GetTimerTime() { return timer_time; } inline const uint32& GetTimerTime() { return timer_time; }
inline const uint32& GetSetAtTrigger() { return set_at_trigger; } inline const uint32& GetSetAtTrigger() { return set_at_trigger; }
void Trigger(); void Trigger();
void SetAtTrigger(uint32 set_at_trigger, bool iEnableIfDisabled = false); void SetAtTrigger(uint32 set_at_trigger, bool iEnableIfDisabled = false, bool ChangeTimerTime = false);
inline bool Enabled() { return enabled; } inline bool Enabled() { return enabled; }
inline uint32 GetStartTime() { return(start_time); } inline uint32 GetStartTime() { return(start_time); }

View File

@ -4932,7 +4932,7 @@ void Client::SetAttackTimer()
// this is probably wrong // this is probably wrong
if (quiver_haste > 0) if (quiver_haste > 0)
speed *= quiver_haste; speed *= quiver_haste;
TimerToUse->SetAtTrigger(std::max(RuleI(Combat, MinHastedDelay), speed), true); TimerToUse->SetAtTrigger(std::max(RuleI(Combat, MinHastedDelay), speed), true, true);
if (i == MainPrimary) if (i == MainPrimary)
PrimaryWeapon = ItemToUse; PrimaryWeapon = ItemToUse;
@ -4980,6 +4980,6 @@ void NPC::SetAttackTimer()
} }
} }
TimerToUse->SetAtTrigger(std::max(RuleI(Combat, MinHastedDelay), speed), true); TimerToUse->SetAtTrigger(std::max(RuleI(Combat, MinHastedDelay), speed), true, true);
} }
} }