diff options
Diffstat (limited to 'src/server/game/Globals')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 8f858b9ffd1..dfb0beeb00e 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -12027,8 +12027,8 @@ void ObjectMgr::LoadJumpChargeParams() // need for reload case _jumpChargeParams.clear(); - // 0 1 2 3 4 5 6 - QueryResult result = WorldDatabase.Query("SELECT id, speed, treatSpeedAsMoveTimeSeconds, jumpGravity, spellVisualId, progressCurveId, parabolicCurveId FROM jump_charge_params"); + // 0 1 2 3 4 5 6 7 + QueryResult result = WorldDatabase.Query("SELECT id, speed, treatSpeedAsMoveTimeSeconds, jumpGravity, spellVisualId, progressCurveId, parabolicCurveId, triggerSpellId FROM jump_charge_params"); if (!result) { return; @@ -12045,6 +12045,7 @@ void ObjectMgr::LoadJumpChargeParams() Optional<int32> spellVisualId = fields[4].GetInt32OrNull(); Optional<int32> progressCurveId = fields[5].GetInt32OrNull(); Optional<int32> parabolicCurveId = fields[6].GetInt32OrNull(); + Optional<int32> triggerSpellId = fields[7].GetInt32OrNull(); if (speed <= 0.0f) { @@ -12081,6 +12082,13 @@ void ObjectMgr::LoadJumpChargeParams() parabolicCurveId.reset(); } + if (triggerSpellId && !sSpellMgr->GetSpellInfo(*triggerSpellId, DIFFICULTY_NONE)) + { + TC_LOG_DEBUG("sql.sql", "Table `jump_charge_params` references non-existing trigger spell id: {} for id {}, ignored.", + *triggerSpellId, id); + triggerSpellId.reset(); + } + JumpChargeParams& params = _jumpChargeParams[id]; params.Speed = speed; params.TreatSpeedAsMoveTimeSeconds = treatSpeedAsMoveTimeSeconds; @@ -12088,6 +12096,7 @@ void ObjectMgr::LoadJumpChargeParams() params.SpellVisualId = spellVisualId; params.ProgressCurveId = progressCurveId; params.ParabolicCurveId = parabolicCurveId; + params.TriggerSpellId = triggerSpellId; } while (result->NextRow()); |