aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Creature/TemporarySummon.cpp36
-rw-r--r--src/server/game/Entities/Creature/TemporarySummon.h16
-rw-r--r--src/server/game/Entities/Object/Object.cpp6
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Entities/Totem/Totem.cpp16
-rw-r--r--src/server/game/Entities/Totem/Totem.h10
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp2
-rw-r--r--src/server/game/Entities/Transport/Transport.h2
-rw-r--r--src/server/game/Entities/Unit/Unit.h2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp2
-rw-r--r--src/server/game/Globals/ObjectMgr.h2
-rw-r--r--src/server/game/Maps/Map.h2
-rw-r--r--src/server/game/Server/Packets/TotemPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/TotemPackets.h5
-rw-r--r--src/server/game/Spells/SpellEffects.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp10
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp4
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp2
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp2
23 files changed, 69 insertions, 68 deletions
diff --git a/src/server/game/Entities/Creature/TemporarySummon.cpp b/src/server/game/Entities/Creature/TemporarySummon.cpp
index 961bf1e453a..a101b874cad 100644
--- a/src/server/game/Entities/Creature/TemporarySummon.cpp
+++ b/src/server/game/Entities/Creature/TemporarySummon.cpp
@@ -34,7 +34,7 @@
TempSummon::TempSummon(SummonPropertiesEntry const* properties, WorldObject* owner, bool isWorldObject) :
Creature(isWorldObject), m_Properties(properties), m_type(TEMPSUMMON_MANUAL_DESPAWN),
-m_timer(0), m_lifetime(0), m_canFollowOwner(true)
+m_timer(0ms), m_lifetime(0ms), m_canFollowOwner(true)
{
if (owner)
m_summonerGUID = owner->GetGUID();
@@ -75,6 +75,8 @@ void TempSummon::Update(uint32 diff)
UnSummon();
return;
}
+
+ Milliseconds msDiff = Milliseconds(diff);
switch (m_type)
{
case TEMPSUMMON_MANUAL_DESPAWN:
@@ -82,26 +84,26 @@ void TempSummon::Update(uint32 diff)
break;
case TEMPSUMMON_TIMED_DESPAWN:
{
- if (m_timer <= diff)
+ if (m_timer <= msDiff)
{
UnSummon();
return;
}
- m_timer -= diff;
+ m_timer -= msDiff;
break;
}
case TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT:
{
if (!IsInCombat())
{
- if (m_timer <= diff)
+ if (m_timer <= msDiff)
{
UnSummon();
return;
}
- m_timer -= diff;
+ m_timer -= msDiff;
}
else if (m_timer != m_lifetime)
m_timer = m_lifetime;
@@ -113,13 +115,13 @@ void TempSummon::Update(uint32 diff)
{
if (m_deathState == CORPSE)
{
- if (m_timer <= diff)
+ if (m_timer <= msDiff)
{
UnSummon();
return;
}
- m_timer -= diff;
+ m_timer -= msDiff;
}
break;
}
@@ -144,13 +146,13 @@ void TempSummon::Update(uint32 diff)
if (!IsInCombat())
{
- if (m_timer <= diff)
+ if (m_timer <= msDiff)
{
UnSummon();
return;
}
else
- m_timer -= diff;
+ m_timer -= msDiff;
}
else if (m_timer != m_lifetime)
m_timer = m_lifetime;
@@ -160,13 +162,13 @@ void TempSummon::Update(uint32 diff)
{
if (!IsInCombat() && IsAlive())
{
- if (m_timer <= diff)
+ if (m_timer <= msDiff)
{
UnSummon();
return;
}
else
- m_timer -= diff;
+ m_timer -= msDiff;
}
else if (m_timer != m_lifetime)
m_timer = m_lifetime;
@@ -179,7 +181,7 @@ void TempSummon::Update(uint32 diff)
}
}
-void TempSummon::InitStats(WorldObject* summoner, uint32 duration)
+void TempSummon::InitStats(WorldObject* summoner, Milliseconds duration)
{
ASSERT(!IsPet());
@@ -187,7 +189,7 @@ void TempSummon::InitStats(WorldObject* summoner, uint32 duration)
m_lifetime = duration;
if (m_type == TEMPSUMMON_MANUAL_DESPAWN)
- m_type = (duration == 0) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_DESPAWN;
+ m_type = (duration == 0ms) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_DESPAWN;
if (summoner && summoner->IsPlayer())
{
@@ -369,7 +371,7 @@ std::string TempSummon::GetDebugInfo() const
sstr << Creature::GetDebugInfo() << "\n"
<< std::boolalpha
<< "TempSummonType: " << std::to_string(GetSummonType()) << " Summoner: " << GetSummonerGUID().ToString()
- << "Timer: " << GetTimer();
+ << "Timer: " << GetTimer().count() << "ms";
return sstr.str();
}
@@ -383,7 +385,7 @@ Minion::Minion(SummonPropertiesEntry const* properties, Unit* owner, bool isWorl
InitCharmInfo();
}
-void Minion::InitStats(WorldObject* summoner, uint32 duration)
+void Minion::InitStats(WorldObject* summoner, Milliseconds duration)
{
TempSummon::InitStats(summoner, duration);
@@ -452,7 +454,7 @@ Guardian::Guardian(SummonPropertiesEntry const* properties, Unit* owner, bool is
}
}
-void Guardian::InitStats(WorldObject* summoner, uint32 duration)
+void Guardian::InitStats(WorldObject* summoner, Milliseconds duration)
{
Minion::InitStats(summoner, duration);
@@ -490,7 +492,7 @@ Puppet::Puppet(SummonPropertiesEntry const* properties, Unit* owner)
m_unitTypeMask |= UNIT_MASK_PUPPET;
}
-void Puppet::InitStats(WorldObject* summoner, uint32 duration)
+void Puppet::InitStats(WorldObject* summoner, Milliseconds duration)
{
Minion::InitStats(summoner, duration);
SetReactState(REACT_PASSIVE);
diff --git a/src/server/game/Entities/Creature/TemporarySummon.h b/src/server/game/Entities/Creature/TemporarySummon.h
index fcfbb0ac1ec..a6883d4872d 100644
--- a/src/server/game/Entities/Creature/TemporarySummon.h
+++ b/src/server/game/Entities/Creature/TemporarySummon.h
@@ -46,8 +46,8 @@ class TC_GAME_API TempSummon : public Creature
public:
explicit TempSummon(SummonPropertiesEntry const* properties, WorldObject* owner, bool isWorldObject);
virtual ~TempSummon() { }
- void Update(uint32 time) override;
- virtual void InitStats(WorldObject* summoner, uint32 lifetime);
+ void Update(uint32 diff) override;
+ virtual void InitStats(WorldObject* summoner, Milliseconds duration);
virtual void InitSummon(WorldObject* summoner);
void UpdateObjectVisibilityOnCreate() override;
void UpdateObjectVisibilityOnDestroy() override;
@@ -61,7 +61,7 @@ class TC_GAME_API TempSummon : public Creature
GameObject* GetSummonerGameObject() const;
ObjectGuid GetSummonerGUID() const { return m_summonerGUID; }
TempSummonType GetSummonType() const { return m_type; }
- uint32 GetTimer() const { return m_timer; }
+ Milliseconds GetTimer() const { return m_timer; }
Optional<uint32> GetCreatureIdVisibleToSummoner() const { return m_creatureIdVisibleToSummoner; }
Optional<uint32> GetDisplayIdVisibleToSummoner() const { return m_displayIdVisibleToSummoner; }
bool CanFollowOwner() const { return m_canFollowOwner; }
@@ -72,8 +72,8 @@ class TC_GAME_API TempSummon : public Creature
std::string GetDebugInfo() const override;
private:
TempSummonType m_type;
- uint32 m_timer;
- uint32 m_lifetime;
+ Milliseconds m_timer;
+ Milliseconds m_lifetime;
ObjectGuid m_summonerGUID;
Optional<uint32> m_creatureIdVisibleToSummoner;
Optional<uint32> m_displayIdVisibleToSummoner;
@@ -84,7 +84,7 @@ class TC_GAME_API Minion : public TempSummon
{
public:
Minion(SummonPropertiesEntry const* properties, Unit* owner, bool isWorldObject);
- void InitStats(WorldObject* summoner, uint32 duration) override;
+ void InitStats(WorldObject* summoner, Milliseconds duration) override;
void RemoveFromWorld() override;
void setDeathState(DeathState s) override;
Unit* GetOwner() const { return m_owner; }
@@ -119,7 +119,7 @@ class TC_GAME_API Guardian : public Minion
{
public:
Guardian(SummonPropertiesEntry const* properties, Unit* owner, bool isWorldObject);
- void InitStats(WorldObject* summoner, uint32 duration) override;
+ void InitStats(WorldObject* summoner, Milliseconds duration) override;
bool InitStatsForLevel(uint8 level);
void InitSummon(WorldObject* summoner) override;
@@ -145,7 +145,7 @@ class TC_GAME_API Puppet : public Minion
{
public:
Puppet(SummonPropertiesEntry const* properties, Unit* owner);
- void InitStats(WorldObject* summoner, uint32 duration) override;
+ void InitStats(WorldObject* summoner, Milliseconds duration) override;
void InitSummon(WorldObject* summoner) override;
void Update(uint32 time) override;
};
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 855138c3c6f..75f9ec052f4 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -1820,7 +1820,7 @@ void WorldObject::AddObjectToRemoveList()
map->AddObjectToRemoveList(this);
}
-TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropertiesEntry const* properties /*= nullptr*/, uint32 duration /*= 0*/, WorldObject* summoner /*= nullptr*/, uint32 spellId /*= 0*/, uint32 vehId /*= 0*/, ObjectGuid privateObjectOwner /*= ObjectGuid::Empty*/, SmoothPhasingInfo const* smoothPhasingInfo /* = nullptr*/)
+TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropertiesEntry const* properties /*= nullptr*/, Milliseconds duration /*= 0ms*/, WorldObject* summoner /*= nullptr*/, uint32 spellId /*= 0*/, uint32 vehId /*= 0*/, ObjectGuid privateObjectOwner /*= ObjectGuid::Empty*/, SmoothPhasingInfo const* smoothPhasingInfo /* = nullptr*/)
{
uint32 mask = UNIT_MASK_SUMMON;
if (properties)
@@ -2013,7 +2013,7 @@ TempSummon* WorldObject::SummonCreature(uint32 entry, Position const& pos, TempS
{
if (Map* map = FindMap())
{
- if (TempSummon* summon = map->SummonCreature(entry, pos, nullptr, despawnTime.count(), this, spellId, vehId, privateObjectOwner))
+ if (TempSummon* summon = map->SummonCreature(entry, pos, nullptr, despawnTime, this, spellId, vehId, privateObjectOwner))
{
summon->SetTempSummonType(despawnType);
return summon;
@@ -2039,7 +2039,7 @@ TempSummon* WorldObject::SummonPersonalClone(Position const& pos, TempSummonType
if (Map* map = FindMap())
{
SmoothPhasingInfo smoothPhasingInfo{GetGUID(), true, true};
- if (TempSummon* summon = map->SummonCreature(GetEntry(), pos, nullptr, despawnTime.count(), privateObjectOwner, spellId, vehId, privateObjectOwner->GetGUID(), &smoothPhasingInfo))
+ if (TempSummon* summon = map->SummonCreature(GetEntry(), pos, nullptr, despawnTime, privateObjectOwner, spellId, vehId, privateObjectOwner->GetGUID(), &smoothPhasingInfo))
{
summon->SetTempSummonType(despawnType);
return summon;
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index d1967a2283c..f4ccc1e4051 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -21641,7 +21641,7 @@ void Player::VehicleSpellInitialize()
petSpells.PetGUID = vehicle->GetGUID();
petSpells._CreatureFamily = 0; // Pet Family (0 for all vehicles)
petSpells.Specialization = 0;
- petSpells.TimeLimit = vehicle->IsSummon() ? vehicle->ToTempSummon()->GetTimer() : 0;
+ petSpells.TimeLimit = vehicle->IsSummon() ? vehicle->ToTempSummon()->GetTimer().count() : 0;
petSpells.ReactState = vehicle->GetReactState();
petSpells.CommandState = COMMAND_FOLLOW;
petSpells.Flag = 0x8;
diff --git a/src/server/game/Entities/Totem/Totem.cpp b/src/server/game/Entities/Totem/Totem.cpp
index ce72bcba9b7..ea648eec73d 100644
--- a/src/server/game/Entities/Totem/Totem.cpp
+++ b/src/server/game/Entities/Totem/Totem.cpp
@@ -26,14 +26,12 @@
#include "SpellMgr.h"
#include "TotemPackets.h"
-Totem::Totem(SummonPropertiesEntry const* properties, Unit* owner) : Minion(properties, owner, false)
+Totem::Totem(SummonPropertiesEntry const* properties, Unit* owner) : Minion(properties, owner, false), m_type(TOTEM_PASSIVE), m_duration(0ms)
{
m_unitTypeMask |= UNIT_MASK_TOTEM;
- m_duration = 0;
- m_type = TOTEM_PASSIVE;
}
-void Totem::Update(uint32 time)
+void Totem::Update(uint32 diff)
{
if (!GetOwner()->IsAlive() || !IsAlive())
{
@@ -41,18 +39,18 @@ void Totem::Update(uint32 time)
return;
}
- if (m_duration <= time)
+ if (m_duration <= Milliseconds(diff))
{
UnSummon(); // remove self
return;
}
- else
- m_duration -= time;
- Creature::Update(time);
+ m_duration -= Milliseconds(diff);
+
+ Creature::Update(diff);
}
-void Totem::InitStats(WorldObject* summoner, uint32 duration)
+void Totem::InitStats(WorldObject* summoner, Milliseconds duration)
{
// client requires SMSG_TOTEM_CREATED to be sent before adding to world and before removing old totem
if (Player* owner = GetOwner()->ToPlayer())
diff --git a/src/server/game/Entities/Totem/Totem.h b/src/server/game/Entities/Totem/Totem.h
index ca8de920643..72066cc2996 100644
--- a/src/server/game/Entities/Totem/Totem.h
+++ b/src/server/game/Entities/Totem/Totem.h
@@ -32,13 +32,13 @@ class TC_GAME_API Totem : public Minion
public:
Totem(SummonPropertiesEntry const* properties, Unit* owner);
virtual ~Totem() { }
- void Update(uint32 time) override;
- void InitStats(WorldObject* summoner, uint32 duration) override;
+ void Update(uint32 diff) override;
+ void InitStats(WorldObject* summoner, Milliseconds duration) override;
void InitSummon(WorldObject* summoner) override;
void UnSummon(uint32 msTime = 0) override;
uint32 GetSpell(uint8 slot = 0) const { return m_spells[slot]; }
- uint32 GetTotemDuration() const { return m_duration; }
- void SetTotemDuration(uint32 duration) { m_duration = duration; }
+ Milliseconds GetTotemDuration() const { return m_duration; }
+ void SetTotemDuration(Milliseconds duration) { m_duration = duration; }
TotemType GetTotemType() const { return m_type; }
bool UpdateStats(Stats /*stat*/) override { return true; }
@@ -54,6 +54,6 @@ class TC_GAME_API Totem : public Minion
protected:
TotemType m_type;
- uint32 m_duration;
+ Milliseconds m_duration;
};
#endif
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index f3c03fe3421..a535f11756c 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -406,7 +406,7 @@ GameObject* Transport::CreateGOPassenger(ObjectGuid::LowType guid, GameObjectDat
return go;
}
-TempSummon* Transport::SummonPassenger(uint32 entry, Position const& pos, TempSummonType summonType, SummonPropertiesEntry const* properties /*= nullptr*/, uint32 duration /*= 0*/, Unit* summoner /*= nullptr*/, uint32 spellId /*= 0*/, uint32 vehId /*= 0*/)
+TempSummon* Transport::SummonPassenger(uint32 entry, Position const& pos, TempSummonType summonType, SummonPropertiesEntry const* properties /*= nullptr*/, Milliseconds duration /*= 0ms*/, Unit* summoner /*= nullptr*/, uint32 spellId /*= 0*/, uint32 vehId /*= 0*/)
{
Map* map = FindMap();
if (!map)
diff --git a/src/server/game/Entities/Transport/Transport.h b/src/server/game/Entities/Transport/Transport.h
index 46edfebd082..9a9989990b1 100644
--- a/src/server/game/Entities/Transport/Transport.h
+++ b/src/server/game/Entities/Transport/Transport.h
@@ -66,7 +66,7 @@ class TC_GAME_API Transport : public GameObject, public TransportBase
*
* @return Summoned creature.
*/
- TempSummon* SummonPassenger(uint32 entry, Position const& pos, TempSummonType summonType, SummonPropertiesEntry const* properties = nullptr, uint32 duration = 0, Unit* summoner = nullptr, uint32 spellId = 0, uint32 vehId = 0);
+ TempSummon* SummonPassenger(uint32 entry, Position const& pos, TempSummonType summonType, SummonPropertiesEntry const* properties = nullptr, Milliseconds duration = 0ms, Unit* summoner = nullptr, uint32 spellId = 0, uint32 vehId = 0);
ObjectGuid GetTransportGUID() const override { return GetGUID(); }
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 1296f001c22..de2ad5d3756 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -485,7 +485,7 @@ class TC_GAME_API ProcEventInfo
ProcFlagsSpellType spellTypeMask, ProcFlagsSpellPhase spellPhaseMask, ProcFlagsHit hitMask,
Spell* spell, DamageInfo* damageInfo, HealInfo* healInfo);
- Unit* GetActor() { return _actor; }
+ Unit* GetActor() const { return _actor; }
Unit* GetActionTarget() const { return _actionTarget; }
Unit* GetProcTarget() const { return _procTarget; }
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 91a931486ae..d08133d3348 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -2083,7 +2083,7 @@ void ObjectMgr::LoadTempSummons()
continue;
}
- data.time = fields[9].GetUInt32();
+ data.time = Milliseconds(fields[9].GetUInt32());
TempSummonGroupKey key(summonerId, summonerType, group);
_tempSummonDataStore[key].push_back(data);
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 2cd8185dd26..5b3a7d2122c 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -94,7 +94,7 @@ struct TempSummonData
uint32 entry; ///< Entry of summoned creature
Position pos; ///< Position, where should be creature spawned
TempSummonType type; ///< Summon type, see TempSummonType for available types
- uint32 time; ///< Despawn time, usable only with certain temp summon types
+ Milliseconds time; ///< Despawn time, usable only with certain temp summon types
};
#pragma pack(pop)
diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h
index 3a570714176..6dfc99afc40 100644
--- a/src/server/game/Maps/Map.h
+++ b/src/server/game/Maps/Map.h
@@ -364,7 +364,7 @@ class TC_GAME_API Map : public GridRefManager<NGridType>
void UpdateIteratorBack(Player* player);
- TempSummon* SummonCreature(uint32 entry, Position const& pos, SummonPropertiesEntry const* properties = nullptr, uint32 duration = 0, WorldObject* summoner = nullptr, uint32 spellId = 0, uint32 vehId = 0, ObjectGuid privateObjectOwner = ObjectGuid::Empty, SmoothPhasingInfo const* smoothPhasingInfo = nullptr);
+ TempSummon* SummonCreature(uint32 entry, Position const& pos, SummonPropertiesEntry const* properties = nullptr, Milliseconds duration = 0ms, WorldObject* summoner = nullptr, uint32 spellId = 0, uint32 vehId = 0, ObjectGuid privateObjectOwner = ObjectGuid::Empty, SmoothPhasingInfo const* smoothPhasingInfo = nullptr);
void SummonCreatureGroup(uint8 group, std::list<TempSummon*>* list = nullptr);
AreaTrigger* GetAreaTrigger(ObjectGuid const& guid);
SceneObject* GetSceneObject(ObjectGuid const& guid);
diff --git a/src/server/game/Server/Packets/TotemPackets.cpp b/src/server/game/Server/Packets/TotemPackets.cpp
index c2c65d386d7..e193c6ffdb7 100644
--- a/src/server/game/Server/Packets/TotemPackets.cpp
+++ b/src/server/game/Server/Packets/TotemPackets.cpp
@@ -27,7 +27,7 @@ WorldPacket const* WorldPackets::Totem::TotemCreated::Write()
{
_worldPacket << uint8(Slot);
_worldPacket << Totem;
- _worldPacket << int32(Duration);
+ _worldPacket << Duration;
_worldPacket << int32(SpellID);
_worldPacket << float(TimeMod);
_worldPacket.WriteBit(CannotDismiss);
diff --git a/src/server/game/Server/Packets/TotemPackets.h b/src/server/game/Server/Packets/TotemPackets.h
index 2a8213169c4..a0a450472ae 100644
--- a/src/server/game/Server/Packets/TotemPackets.h
+++ b/src/server/game/Server/Packets/TotemPackets.h
@@ -18,8 +18,9 @@
#ifndef TotemPackets_h__
#define TotemPackets_h__
-#include "Packet.h"
#include "ObjectGuid.h"
+#include "Packet.h"
+#include "PacketUtilities.h"
namespace WorldPackets
{
@@ -45,7 +46,7 @@ namespace WorldPackets
ObjectGuid Totem;
int32 SpellID = 0;
- int32 Duration = 0;
+ Duration<Milliseconds, int32> Duration = 0ms;
uint8 Slot = 0;
float TimeMod = 1.0f;
bool CannotDismiss = false;
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 22a1bcaf147..801e53d1539 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -1833,7 +1833,7 @@ void Spell::EffectSummonType()
return caster->GetGUID();
}();
- int32 duration = m_spellInfo->CalcDuration(caster);
+ Milliseconds duration = Milliseconds(m_spellInfo->CalcDuration(caster));
Unit* unitCaster = GetUnitCasterForEffectHandlers();
@@ -1933,7 +1933,7 @@ void Spell::EffectSummonType()
{
float radius = effectInfo->CalcRadius();
- TempSummonType summonType = (duration == 0) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_DESPAWN;
+ TempSummonType summonType = (duration == 0ms) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_DESPAWN;
for (uint32 count = 0; count < numSummons; ++count)
{
@@ -4850,7 +4850,7 @@ void Spell::SummonGuardian(SpellEffectInfo const* effect, uint32 entry, SummonPr
// in another case summon new
float radius = 5.0f;
- int32 duration = m_spellInfo->CalcDuration(m_originalCaster);
+ Milliseconds duration = Milliseconds(m_spellInfo->CalcDuration(m_originalCaster));
//TempSummonType summonType = (duration == 0) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_DESPAWN;
Map* map = unitCaster->GetMap();
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
index 6b68b014ed4..8af852a1d29 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/instance_old_hillsbrad.cpp
@@ -121,7 +121,7 @@ public:
if (mBarrelCount == 5)
{
UpdateQuestCredit();
- if (TempSummon* drake = instance->SummonCreature(DRAKE_ENTRY, { 2128.43f, 71.01f, 64.42f, 1.74f }, nullptr, Milliseconds(30min).count()))
+ if (TempSummon* drake = instance->SummonCreature(DRAKE_ENTRY, { 2128.43f, 71.01f, 64.42f, 1.74f }, nullptr, 30min))
drake->SetTempSummonType(TEMPSUMMON_DEAD_DESPAWN);
}
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index 9636bc45fae..dcbc4014546 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -1606,7 +1606,7 @@ class spell_halion_damage_aoe_summon : public SpellScriptLoader
Unit* caster = GetCaster();
uint32 entry = uint32(GetEffectInfo().MiscValue);
SummonPropertiesEntry const* properties = sSummonPropertiesStore.LookupEntry(uint32(GetEffectInfo().MiscValueB));
- uint32 duration = uint32(GetSpellInfo()->GetDuration());
+ Milliseconds duration = Milliseconds(GetSpellInfo()->GetDuration());
Position pos = caster->GetPosition();
if (Creature* summon = caster->GetMap()->SummonCreature(entry, pos, properties, duration, caster, GetSpellInfo()->Id))
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
index 31a37e313a8..1d27d897b48 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
@@ -419,7 +419,7 @@ public:
continue;
}
- if (Creature* passenger = _transport->SummonPassenger(_slotInfo[i].Entry, SelectSpawnPoint(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, nullptr, 15000))
+ if (Creature* passenger = _transport->SummonPassenger(_slotInfo[i].Entry, SelectSpawnPoint(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, nullptr, 15s))
{
_controlledSlots[i] = passenger->GetGUID();
_respawnCooldowns[i] = time_t(0);
@@ -1033,10 +1033,10 @@ struct npc_high_overlord_saurfang_igb : public ScriptedAI
_controller.SummonCreatures(SLOT_MARINE_1, Is25ManRaid() ? SLOT_MARINE_4 : SLOT_MARINE_2);
_controller.SummonCreatures(SLOT_SERGEANT_1, Is25ManRaid() ? SLOT_SERGEANT_2 : SLOT_SERGEANT_1);
if (Transport* orgrimsHammer = dynamic_cast<Transport*>(me->GetTransport()))
- orgrimsHammer->SummonPassenger(NPC_TELEPORT_PORTAL, OrgrimsHammerTeleportPortal, TEMPSUMMON_TIMED_DESPAWN, nullptr, 21000);
+ orgrimsHammer->SummonPassenger(NPC_TELEPORT_PORTAL, OrgrimsHammerTeleportPortal, TEMPSUMMON_TIMED_DESPAWN, nullptr, 21s);
if (Transport* skybreaker = ObjectAccessor::GetTransport(*me, _instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE)))
- skybreaker->SummonPassenger(NPC_TELEPORT_EXIT, SkybreakerTeleportExit, TEMPSUMMON_TIMED_DESPAWN, nullptr, 23000);
+ skybreaker->SummonPassenger(NPC_TELEPORT_EXIT, SkybreakerTeleportExit, TEMPSUMMON_TIMED_DESPAWN, nullptr, 23s);
_events.ScheduleEvent(EVENT_ADDS_BOARD_YELL, 6s);
_events.ScheduleEvent(EVENT_ADDS, 1min);
@@ -1293,10 +1293,10 @@ struct npc_muradin_bronzebeard_igb : public ScriptedAI
_controller.SummonCreatures(SLOT_MARINE_1, Is25ManRaid() ? SLOT_MARINE_4 : SLOT_MARINE_2);
_controller.SummonCreatures(SLOT_SERGEANT_1, Is25ManRaid() ? SLOT_SERGEANT_2 : SLOT_SERGEANT_1);
if (Transport* skybreaker = dynamic_cast<Transport*>(me->GetTransport()))
- skybreaker->SummonPassenger(NPC_TELEPORT_PORTAL, SkybreakerTeleportPortal, TEMPSUMMON_TIMED_DESPAWN, nullptr, 21000);
+ skybreaker->SummonPassenger(NPC_TELEPORT_PORTAL, SkybreakerTeleportPortal, TEMPSUMMON_TIMED_DESPAWN, nullptr, 21s);
if (Transport* orgrimsHammer = ObjectAccessor::GetTransport(*me, _instance->GetGuidData(DATA_ICECROWN_GUNSHIP_BATTLE)))
- orgrimsHammer->SummonPassenger(NPC_TELEPORT_EXIT, OrgrimsHammerTeleportExit, TEMPSUMMON_TIMED_DESPAWN, nullptr, 23000);
+ orgrimsHammer->SummonPassenger(NPC_TELEPORT_EXIT, OrgrimsHammerTeleportExit, TEMPSUMMON_TIMED_DESPAWN, nullptr, 23s);
_events.ScheduleEvent(EVENT_ADDS_BOARD_YELL, 6s);
_events.ScheduleEvent(EVENT_ADDS, 1min);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index 63965a9978c..ed08f59b1c3 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -1315,7 +1315,7 @@ class spell_putricide_mutated_transformation : public SpellScript
uint32 entry = uint32(GetEffectInfo().MiscValue);
SummonPropertiesEntry const* properties = sSummonPropertiesStore.LookupEntry(uint32(GetEffectInfo().MiscValueB));
- uint32 duration = uint32(GetSpellInfo()->GetDuration());
+ Milliseconds duration = Milliseconds(GetSpellInfo()->GetDuration());
Position pos = caster->GetPosition();
TempSummon* summon = caster->GetMap()->SummonCreature(entry, pos, properties, duration, caster, GetSpellInfo()->Id);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index a2fb6a0ae4b..1a30c3c5bee 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -1048,7 +1048,7 @@ struct boss_the_lich_king : public BossAI
}
break;
case EVENT_FROSTMOURNE_HEROIC:
- if (TempSummon* terenas = me->GetMap()->SummonCreature(NPC_TERENAS_MENETHIL_FROSTMOURNE_H, TerenasSpawnHeroic, nullptr, 50000))
+ if (TempSummon* terenas = me->GetMap()->SummonCreature(NPC_TERENAS_MENETHIL_FROSTMOURNE_H, TerenasSpawnHeroic, nullptr, 50s))
{
terenas->AI()->DoAction(ACTION_FROSTMOURNE_INTRO);
std::list<Creature*> triggers;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index 2c243261b3d..caf5bc00f5e 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -1315,7 +1315,7 @@ class instance_icecrown_citadel : public InstanceMapScript
}
break;
case EVENT_TELEPORT_TO_FROSTMOURNE: // Harvest Soul (normal mode)
- if (Creature* terenas = instance->SummonCreature(NPC_TERENAS_MENETHIL_FROSTMOURNE, TerenasSpawn, nullptr, 63000))
+ if (Creature* terenas = instance->SummonCreature(NPC_TERENAS_MENETHIL_FROSTMOURNE, TerenasSpawn, nullptr, 63s))
{
terenas->AI()->DoAction(ACTION_FROSTMOURNE_INTRO);
std::list<Creature*> triggers;
@@ -1327,7 +1327,7 @@ class instance_icecrown_citadel : public InstanceMapScript
visual->CastSpell(visual, SPELL_FROSTMOURNE_TELEPORT_VISUAL, true);
}
- if (Creature* warden = instance->SummonCreature(NPC_SPIRIT_WARDEN, SpiritWardenSpawn, nullptr, 63000))
+ if (Creature* warden = instance->SummonCreature(NPC_SPIRIT_WARDEN, SpiritWardenSpawn, nullptr, 63s))
{
terenas->AI()->AttackStart(warden);
warden->GetThreatManager().AddThreat(terenas, 300000.0f, nullptr, true, true);
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 34352ba96c6..af5668fd93f 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -4784,7 +4784,7 @@ class spell_summon_battle_pet : public SpellScript
Unit* caster = GetCaster();
SummonPropertiesEntry const* properties = sSummonPropertiesStore.LookupEntry(uint32(GetEffectInfo().MiscValueB));
- uint32 duration = uint32(GetSpellInfo()->CalcDuration(caster));
+ Milliseconds duration = Milliseconds(GetSpellInfo()->CalcDuration(caster));
Position pos = GetHitDest()->GetPosition();
if (Creature* summon = caster->GetMap()->SummonCreature(creatureId, pos, properties, duration, caster, GetSpellInfo()->Id))
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index d810f044216..a48072df244 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -854,7 +854,7 @@ class spell_sha_healing_rain : public SpellScript
{
if (WorldLocation const* dest = GetExplTargetDest())
{
- int32 duration = GetSpellInfo()->CalcDuration(GetOriginalCaster());
+ Milliseconds duration = Milliseconds(GetSpellInfo()->CalcDuration(GetOriginalCaster()));
TempSummon* summon = GetCaster()->GetMap()->SummonCreature(NPC_HEALING_RAIN_INVISIBLE_STALKER, *dest, nullptr, duration, GetOriginalCaster());
if (!summon)
return;