aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/Pet.cpp29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp
index 75ae3a54bc2..e33fe6b7178 100644
--- a/src/game/Pet.cpp
+++ b/src/game/Pet.cpp
@@ -527,21 +527,28 @@ void Pet::Update(uint32 diff)
}
//regenerate focus for hunter pets or energy for deathknight's ghoul
- if(m_regenTimer <= diff)
+ if(m_regenTimer)
{
- switch (getPowerType())
+ if(m_regenTimer > diff)
+ m_regenTimer -= diff;
+ else
{
- case POWER_FOCUS:
- case POWER_ENERGY:
- Regenerate(getPowerType());
- break;
- default:
- break;
+ switch (getPowerType())
+ {
+ case POWER_FOCUS:
+ Regenerate(POWER_FOCUS);
+ m_regenTimer = 4000;
+ break;
+ case POWER_ENERGY:
+ Regenerate(POWER_ENERGY);
+ m_regenTimer = 2000;
+ break;
+ default:
+ m_regenTimer = 0;
+ break;
+ }
}
- m_regenTimer = 4000;
}
- else
- m_regenTimer -= diff;
if(getPetType() != HUNTER_PET)
break;