diff options
| author | Shauren <shauren.trinity@gmail.com> | 2020-09-04 13:38:24 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2020-09-04 13:38:24 +0200 |
| commit | b23190393248455f04d3a06def030a1ec7efad1e (patch) | |
| tree | 1ce3772314492dcdb985641269a3114813d4b4dc /src/server/scripts/Events | |
| parent | b20acfe701e6f5f995f2776f076d3c494c02e1aa (diff) | |
Core/Misc: Port all the refactors sneaked in master to 3.3.5 include cleanup port
Diffstat (limited to 'src/server/scripts/Events')
| -rw-r--r-- | src/server/scripts/Events/fireworks_show.cpp | 115 |
1 files changed, 57 insertions, 58 deletions
diff --git a/src/server/scripts/Events/fireworks_show.cpp b/src/server/scripts/Events/fireworks_show.cpp index 664bb5b5dff..2d4b9e2ab0b 100644 --- a/src/server/scripts/Events/fireworks_show.cpp +++ b/src/server/scripts/Events/fireworks_show.cpp @@ -17,13 +17,13 @@ #include "ScriptMgr.h" #include "Containers.h" +#include "CreatureAIImpl.h" #include "EventMap.h" +#include "GameEventMgr.h" #include "GameObject.h" #include "GameObjectAI.h" #include "GameTime.h" -#include "CreatureAIImpl.h" -#include "GameEventMgr.h" -#include "World.h" +#include "Util.h" enum FireworksShowTypeObjects { @@ -79,7 +79,7 @@ enum FireworksZones STORMWIND = 1519 }; -static const std::vector<Position> BootyBayPos = +std::vector<Position> const BootyBayPos = { { -14358.03f, 515.058f, 34.2664f, 3.68265f }, { -14357.49f, 490.8445f, 39.47329f, 0.9773831f }, @@ -108,7 +108,7 @@ static const std::vector<Position> BootyBayPos = { -14378.1f, 473.5608f, 40.16786f, 0.9773831f } }; -static const std::vector<Position> StormwindPos = +std::vector<Position> const StormwindPos = { { -8823.592f, 470.316f, 179.2295f, 1.239183f }, { -8883.005f, 590.1927f, 163.1264f, 0.9773831f }, @@ -229,7 +229,7 @@ static const std::vector<Position> StormwindPos = { -8872.734375f, 573.338440f, 97.723770f, 1.831103f } }; -static const std::vector<Position> OrgrimmarPos = +std::vector<Position> const OrgrimmarPos = { { 1609.075f, -4383.707f, 90.23414f, 0.3665176f }, { 1469.648f, -4371.285f, 113.8313f, 6.073746f }, @@ -326,7 +326,7 @@ static const std::vector<Position> OrgrimmarPos = { 1493.26253f, -4402.19919f, 59.147816f, 2.2917f } }; -static const std::vector<Position> IronForgePos = +std::vector<Position> const IronForgePos = { { -5196.038f, -858.4618f, 525.0447f, 6.073746f }, { -5195.734f, -887.6441f, 534.168f, 3.68265f }, @@ -387,7 +387,7 @@ static const std::vector<Position> IronForgePos = { -5194.976f, -759.9896f, 517.6288f, 3.630291f } }; -static const std::vector<Position> SilvermoonPos = +std::vector<Position> const SilvermoonPos = { { 9466.583f, -7307.326f, 107.8366f, 0.1047193f }, { 9411.616f, -7322.223f, 79.95399f, 2.722713f }, @@ -457,7 +457,7 @@ static const std::vector<Position> SilvermoonPos = { 9411.504f, -7288.202f, 112.2664f, 2.844883f } }; -static const std::vector<Position> ExodarPos = +std::vector<Position> const ExodarPos = { { -3992.465f, -11843.86f, 186.4043f, 2.199115f }, { -3948.378f, -11854.06f, 135.6206f, 3.47321f }, @@ -519,7 +519,7 @@ static const std::vector<Position> ExodarPos = { -4036.461f, -11783.4f, 142.8152f, 4.729844f } }; -static const std::vector<Position> ThunderBluffPos = +std::vector<Position> const ThunderBluffPos = { { -1234.804f, -19.72239f, 206.5436f, 0.1396245f }, { -1244.442f, -35.88308f, 206.82f, 4.729844f }, @@ -581,7 +581,7 @@ static const std::vector<Position> ThunderBluffPos = { -1240.617f, -41.39486f, 205.0362f, 5.846854f } }; -static const std::vector<Position> UndercityPos = +std::vector<Position> const UndercityPos = { { 1850.231f, 257.0156f, 124.1743f, 4.729844f }, { 1863.302f, 193.9063f, 114.5829f, 0.9773831f }, @@ -641,7 +641,7 @@ static const std::vector<Position> UndercityPos = { 1850.288f, 267.309f, 125.0537f, 3.630291f } }; -static const std::vector<Position> DarnassusPos = +std::vector<Position> const DarnassusPos = { { 8578.888f, 975.2604f, 42.48742f, 5.846854f }, { 8574.236f, 944.2083f, 44.71943f, 4.76475f }, @@ -704,20 +704,20 @@ static const std::vector<Position> DarnassusPos = { 8554.825f, 813.0746f, 78.88226f, 6.0912f } }; -static const std::unordered_map<uint32, std::vector<Position> const&> pos = +std::unordered_map<uint32, std::vector<Position> const*> const PositionsByZoneMap = { - { STRANGLETHORN_VALE, BootyBayPos }, - { STORMWIND, StormwindPos }, - { ORGRIMMAR, OrgrimmarPos }, - { DUROTAR, OrgrimmarPos }, - { DUN_MOROGH, IronForgePos }, - { IRONFORGE, IronForgePos }, - { EVERSONG_WOODS, SilvermoonPos }, - { EXODAR, ExodarPos }, - { THUNDERBLUFF, ThunderBluffPos }, - { UNDERCITY, UndercityPos }, - { TIRISFAL_GLADES, UndercityPos }, - { TELDRASSIL, DarnassusPos } + { STRANGLETHORN_VALE, &BootyBayPos }, + { STORMWIND, &StormwindPos }, + { ORGRIMMAR, &OrgrimmarPos }, + { DUROTAR, &OrgrimmarPos }, + { DUN_MOROGH, &IronForgePos }, + { IRONFORGE, &IronForgePos }, + { EVERSONG_WOODS, &SilvermoonPos }, + { EXODAR, &ExodarPos }, + { THUNDERBLUFF, &ThunderBluffPos }, + { UNDERCITY, &UndercityPos }, + { TIRISFAL_GLADES, &UndercityPos }, + { TELDRASSIL, &DarnassusPos } }; class go_cheer_speaker : public GameObjectScript @@ -733,7 +733,7 @@ public: _big = true; } - uint32 CheerPicker() + static uint32 CheerPicker() { uint32 newid = RAND( SOUND_CHEER_1, @@ -744,7 +744,7 @@ public: return newid; } - uint32 FireworksPicker() + static uint32 FireworksPicker() { uint32 newid = RAND( FIREWORK_SHOW_TYPE_1_RED, @@ -774,7 +774,7 @@ public: return newid; } - uint32 FireworksBIGOnlyPicker() + static uint32 FireworksBIGOnlyPicker() { uint32 newid = RAND( FIREWORK_SHOW_TYPE_1_RED_BIG, @@ -845,45 +845,44 @@ public: { switch (eventId) { - case EVENT_CHEER: - { - me->PlayDistanceSound(CheerPicker()); - break; - } - case EVENT_FIRE: - { - auto it = pos.find(me->GetZoneId()); - if (it != pos.end()) + case EVENT_CHEER: { - Position const& rndpos = Trinity::Containers::SelectRandomContainerElement(it->second); - float rndrot = frand(-1.0000000f, 1.0000000f); - float rndrot2 = frand(-1.0000000f, 1.0000000f); - - if (_big) + me->PlayDistanceSound(CheerPicker()); + break; + } + case EVENT_FIRE: + { + if (std::vector<Position> const* positions = Trinity::Containers::MapGetValuePtr(PositionsByZoneMap, me->GetZoneId())) { - if (GameObject* firework = me->SummonGameObject(FireworksBIGOnlyPicker(), rndpos, QuaternionData(0.f, 0.f, rndrot, rndrot2), 300)) + Position const& rndpos = Trinity::Containers::SelectRandomContainerElement(*positions); + float rndrot = frand(-1.0000000f, 1.0000000f); + float rndrot2 = frand(-1.0000000f, 1.0000000f); + + if (_big) { - firework->SetRespawnTime(0); - firework->Delete(); + if (GameObject* firework = me->SummonGameObject(FireworksBIGOnlyPicker(), rndpos, QuaternionData(0.f, 0.f, rndrot, rndrot2), 300)) + { + firework->SetRespawnTime(0); + firework->Delete(); + } } - } - else - { - if (GameObject* firework = me->SummonGameObject(FireworksPicker(), rndpos, QuaternionData(0.f, 0.f, rndrot, rndrot2), 300)) + else { - firework->SetRespawnTime(0); - firework->Delete(); + if (GameObject* firework = me->SummonGameObject(FireworksPicker(), rndpos, QuaternionData(0.f, 0.f, rndrot, rndrot2), 300)) + { + firework->SetRespawnTime(0); + firework->Delete(); + } } } - } - if (_started == true) - _events.ScheduleEvent(EVENT_FIRE, Seconds(1), Seconds(2)); + if (_started == true) + _events.ScheduleEvent(EVENT_FIRE, Seconds(1), Seconds(2)); - break; - } - default: - break; + break; + } + default: + break; } } } |
