aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Handlers/SpellHandler.cpp16
-rw-r--r--src/server/game/Scripting/ScriptReloadMgr.cpp2
-rw-r--r--src/server/game/Server/WorldSession.cpp4
3 files changed, 12 insertions, 10 deletions
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp
index cf427c2e88e..f1637e4e39a 100644
--- a/src/server/game/Handlers/SpellHandler.cpp
+++ b/src/server/game/Handlers/SpellHandler.cpp
@@ -404,14 +404,16 @@ void WorldSession::HandleCastSpellOpcode(WorldPacket& recvPacket)
}
// auto-selection buff level base at target level (in spellInfo)
- if (targets.GetUnitTarget())
- {
- SpellInfo const* actualSpellInfo = spellInfo->GetAuraRankForLevel(targets.GetUnitTarget()->getLevel());
+ // TODO: is this even necessary? client already seems to send correct rank for "standard" buffs
+ if (spellInfo->IsPositive())
+ if (Unit* target = targets.GetUnitTarget())
+ {
+ SpellInfo const* actualSpellInfo = spellInfo->GetAuraRankForLevel(target->getLevel());
- // if rank not found then function return NULL but in explicit cast case original spell can be cast and later failed with appropriate error message
- if (actualSpellInfo)
- spellInfo = actualSpellInfo;
- }
+ // if rank not found then function return NULL but in explicit cast case original spell can be cast and later failed with appropriate error message
+ if (actualSpellInfo)
+ spellInfo = actualSpellInfo;
+ }
Spell* spell = new Spell(caster, spellInfo, TRIGGERED_NONE);
spell->m_cast_count = castCount; // set count of casts
diff --git a/src/server/game/Scripting/ScriptReloadMgr.cpp b/src/server/game/Scripting/ScriptReloadMgr.cpp
index 3e38adcfc43..7fcbcc7566d 100644
--- a/src/server/game/Scripting/ScriptReloadMgr.cpp
+++ b/src/server/game/Scripting/ScriptReloadMgr.cpp
@@ -1034,7 +1034,7 @@ private:
// Wait for the current build job to finish, if the job finishes in time
// evaluate it and continue with the next one.
if (_build_job->GetProcess()->GetFutureResult().
- wait_for(0s) == std::future_status::ready)
+ wait_for(std::chrono::seconds(0)) == std::future_status::ready)
ProcessReadyBuildJob();
else
return; // Return when the job didn't finish in time
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 5b3df4da99c..9b2ce6fe4a9 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -1107,11 +1107,11 @@ void WorldSession::ProcessQueryCallbacks()
{
_queryProcessor.ProcessReadyQueries();
- if (_realmAccountLoginCallback.valid() && _realmAccountLoginCallback.wait_for(0s) == std::future_status::ready)
+ if (_realmAccountLoginCallback.valid() && _realmAccountLoginCallback.wait_for(std::chrono::seconds(0)) == std::future_status::ready)
InitializeSessionCallback(_realmAccountLoginCallback.get());
//! HandlePlayerLoginOpcode
- if (_charLoginCallback.valid() && _charLoginCallback.wait_for(0s) == std::future_status::ready)
+ if (_charLoginCallback.valid() && _charLoginCallback.wait_for(std::chrono::seconds(0)) == std::future_status::ready)
HandlePlayerLogin(reinterpret_cast<LoginQueryHolder*>(_charLoginCallback.get()));
}