diff options
| author | ModoX <moardox@gmail.com> | 2023-08-31 20:58:58 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-31 20:58:58 +0200 |
| commit | 0e818e23e71b5bc824913a4e06f55e16a925341a (patch) | |
| tree | ced75fff6deb506e2b86afc2e9a363342490c379 /src/server/game/Entities | |
| parent | 7f620475bd11669bb7f7c2ade9fa5d2c78fc721a (diff) | |
Core/AreaTriggers: Added SpellForVisual for db spawned areatriggers (#29277)
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/AreaTrigger/AreaTrigger.cpp | 20 | ||||
| -rw-r--r-- | src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h | 1 |
2 files changed, 15 insertions, 6 deletions
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp index efaae072f82..7fcbff488a3 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp @@ -275,14 +275,22 @@ bool AreaTrigger::CreateServer(Map* map, AreaTriggerTemplate const* areaTriggerT auto areaTriggerData = m_values.ModifyValue(&AreaTrigger::m_areaTriggerData); SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::BoundsRadius2D), GetMaxSearchRadius()); - SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::DecalPropertiesID), 24); // blue decal, for .debug areatrigger visibility + if (position.SpellForVisuals) + { + SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(*position.SpellForVisuals, DIFFICULTY_NONE); + SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::SpellForVisuals), *position.SpellForVisuals); + SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::SpellVisual).ModifyValue(&UF::SpellCastVisual::SpellXSpellVisualID), spellInfo->GetSpellXSpellVisualId()); + SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::SpellVisual).ModifyValue(&UF::SpellCastVisual::ScriptVisualID), 0); + } + + if (IsServerSide()) + SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::DecalPropertiesID), 24); // blue decal, for .debug areatrigger visibility + + SetScaleCurve(areaTriggerData.ModifyValue(&UF::AreaTriggerData::ExtraScaleCurve), AreaTriggerScaleCurveTemplate()); - float tmp = 1.0000001f; - uint32 tmp2; - memcpy(&tmp2, &tmp, sizeof(tmp)); + SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::VisualAnim).ModifyValue(&UF::VisualAnim::AnimationDataID), -1); - SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::ExtraScaleCurve).ModifyValue(&UF::ScaleCurve::ParameterCurve), tmp2); - SetUpdateFieldValue(areaTriggerData.ModifyValue(&UF::AreaTriggerData::ExtraScaleCurve).ModifyValue(&UF::ScaleCurve::OverrideActive), true); + SetDuration(-1); _shape = position.Shape; _maxSearchRadius = _shape.GetMaxSearchRadius(); diff --git a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h index 3b5e287077e..ac1a68aa1a6 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h +++ b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h @@ -254,6 +254,7 @@ struct AreaTriggerSpawn : SpawnData AreaTriggerId Id; AreaTriggerShapeInfo Shape; + Optional<int32> SpellForVisuals; }; #endif |
