aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Events
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-09-04 13:38:24 +0200
committerShauren <shauren.trinity@gmail.com>2020-09-04 13:38:24 +0200
commitb23190393248455f04d3a06def030a1ec7efad1e (patch)
tree1ce3772314492dcdb985641269a3114813d4b4dc /src/server/scripts/Events
parentb20acfe701e6f5f995f2776f076d3c494c02e1aa (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.cpp115
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;
}
}
}