aboutsummaryrefslogtreecommitdiff
path: root/src/game/Creature.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-23 22:36:51 -0500
committermegamage <none@none>2009-08-23 22:36:51 -0500
commit5f1589d6d19bf9d4548e0e9fda97f77bb1240ebf (patch)
tree8d13ac05294821c049abb62fc8a3b73b924ec085 /src/game/Creature.cpp
parent7712d5e0bd021e92b87e592a830129c69133dee4 (diff)
*Allow vehicles to regenerate energy.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Creature.cpp')
-rw-r--r--src/game/Creature.cpp28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index a8d1ffe9b54..9aa6eb78c74 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -539,28 +539,22 @@ void Creature::Update(uint32 diff)
// CORPSE/DEAD state will processed at next tick (in other case death timer will be updated unexpectedly)
if(!isAlive())
break;
- if(m_regenTimer > 0)
- {
- if(diff >= m_regenTimer)
- m_regenTimer = 0;
- else
- m_regenTimer -= diff;
- }
- if (m_regenTimer != 0)
- break;
- if (!isInCombat())
+ if(m_regenTimer > diff)
+ m_regenTimer -= diff;
+ else
{
- if(HasFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_OTHER_TAGGER))
- SetUInt32Value(UNIT_DYNAMIC_FLAGS, GetCreatureInfo()->dynamicflags);
- RegenerateHealth();
- }
- else if(IsPolymorphed())
+ if (!isInCombat() || IsPolymorphed())
RegenerateHealth();
- RegenerateMana();
+ if(getPowerType() == POWER_ENERGY)
+ Regenerate(POWER_ENERGY);
+ else
+ RegenerateMana();
+
+ m_regenTimer += 2000 - diff;
+ }
- m_regenTimer = 2000;
break;
}
case DEAD_FALLING: