diff options
| author | Shauren <shauren.trinity@gmail.com> | 2023-08-09 11:37:17 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2023-08-09 11:37:17 +0200 |
| commit | 1dd4b38170339e2d1d959c45ecad1b3b8dceb216 (patch) | |
| tree | c91c0c31e763753a6d5aff4a9874b6e904f17984 /src/server/game/Entities | |
| parent | f75cf381e8fe6f3749d52b983f2ad65cac650851 (diff) | |
Core/Creatures: std::chrono-ify TempSummon
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Creature/TemporarySummon.cpp | 36 | ||||
| -rw-r--r-- | src/server/game/Entities/Creature/TemporarySummon.h | 16 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Totem/Totem.cpp | 16 | ||||
| -rw-r--r-- | src/server/game/Entities/Totem/Totem.h | 10 | ||||
| -rw-r--r-- | src/server/game/Entities/Transport/Transport.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Transport/Transport.h | 2 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 2 |
9 files changed, 46 insertions, 46 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; } |
