TrinityCore
fireworks_show.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "ScriptMgr.h"
19#include "Containers.h"
20#include "EventMap.h"
21#include "GameEventMgr.h"
22#include "GameObject.h"
23#include "GameObjectAI.h"
24#include "GameTime.h"
25#include "Util.h"
26
28{
52};
53
55{
63};
64
66{
67 STRANGLETHORN_VALE = 33, // Booty bay
68 EVERSONG_WOODS = 3430, // Silvermoon
69 ORGRIMMAR = 1637,
70 DUROTAR = 14, // Orgrimmar
71 UNDERCITY = 1497,
72 TIRISFAL_GLADES = 85, // Undercity
73 TELDRASSIL = 141, // Darnassus
74 EXODAR = 3557,
76 DUN_MOROGH = 1, // Ironforge
77 IRONFORGE = 1537,
78 STORMWIND = 1519
79};
80
81std::vector<Position> const BootyBayPos =
82{
83 { -14358.03f, 515.058f, 34.2664f, 3.68265f },
84 { -14357.49f, 490.8445f, 39.47329f, 0.9773831f },
85 { -14355.49f, 518.5656f, 35.36923f, 4.76475f },
86 { -14353.66f, 485.8341f, 36.86639f, 4.886924f },
87 { -14376.54f, 487.5282f, 44.47044f, 5.899214f },
88 { -14376.66f, 516.6852f, 38.5385f, 2.199115f },
89 { -14382.42f, 516.2576f, 37.59617f, 5.846854f },
90 { -14389.55f, 485.7437f, 36.32653f, 6.0912f },
91 { -14376.76f, 507.9842f, 59.56532f, 0.9773831f },
92 { -14358.97f, 502.0223f, 43.82631f, 2.199115f },
93 { -14370.77f, 487.4859f, 45.46445f, 4.886924f },
94 { -14379.15f, 507.237f, 43.95641f, 6.0912f },
95 { -14363.28f, 506.7344f, 41.27156f, 5.899214f },
96 { -14374.43f, 496.0701f, 31.31265f, 4.76475f },
97 { -14360.71f, 493.6036f, 32.06157f, 5.846854f },
98 { -14354.37f, 491.8791f, 39.83374f, 3.68265f },
99 { -14371.19f, 505.8404f, 28.75178f, 6.0912f },
100 { -14356.57f, 494.1887f, 39.58786f, 3.68265f },
101 { -14380.02f, 506.3313f, 59.75512f, 6.0912f },
102 { -14389.84f, 503.4612f, 37.37088f, 5.899214f },
103 { -14353.64f, 485.4063f, 34.11704f, 4.76475f },
104 { -14359.63f, 522.2571f, 31.2866f, 2.199115f },
105 { -14374.91f, 491.508f, 40.34925f, 4.886924f },
106 { -14351.33f, 506.1898f, 28.69684f, 5.846854f },
107 { -14378.1f, 473.5608f, 40.16786f, 0.9773831f }
108};
109
110std::vector<Position> const StormwindPos =
111{
112 { -8823.592f, 470.316f, 179.2295f, 1.239183f },
113 { -8883.005f, 590.1927f, 163.1264f, 0.9773831f },
114 { -8919.692f, 482.9097f, 185.6471f, 3.735006f },
115 { -8907.228f, 551.7864f, 188.68f, 4.729844f },
116 { -8979.651f, 639.3976f, 184.4983f, 3.961899f },
117 { -8878.851f, 583.1771f, 166.3018f, 3.700105f },
118 { -8937.466f, 517.0521f, 183.7207f, 3.68265f },
119 { -8919.247f, 562.2882f, 176.1023f, 3.630291f },
120 { -8866.37f, 576.0504f, 157.8798f, 3.47321f },
121 { -8957.122f, 517.7014f, 161.3226f, 3.630291f },
122 { -8957.857f, 521.934f, 158.9058f, 4.729844f },
123 { -8851.988f, 486.5625f, 179.6635f, 4.258607f },
124 { -8972.651f, 531.0799f, 176.6744f, 4.886924f },
125 { -8986.207f, 560.9792f, 179.1758f, 5.550147f },
126 { -8848.866f, 488.8281f, 184.9777f, 3.961899f },
127 { -8946.897f, 521.3976f, 193.4021f, 0.9424766f },
128 { -8876.854f, 593.6771f, 171.0399f, 0.1396245f },
129 { -8828.743f, 463.0382f, 195.7672f, 0.9424766f },
130 { -8968.125f, 525.1285f, 181.9304f, 3.054327f },
131 { -8952.893f, 629.2743f, 188.2722f, 0.9424766f },
132 { -8882.172f, 574.4219f, 181.7124f, 6.0912f },
133 { -8980.363f, 546.7934f, 180.4686f, 4.66003f },
134 { -8874.944f, 575.5f, 175.7746f, 0.9075702f },
135 { -8945.109f, 496.3715f, 153.2825f, 6.073746f },
136 { -8953.094f, 513.5521f, 180.9165f, 3.735006f },
137 { -8955.02f, 623.7621f, 193.7679f, 0.9424766f },
138 { -8977.524f, 644.9097f, 197.926f, 3.961899f },
139 { -8985.639f, 653.9809f, 200.0452f, 3.630291f },
140 { -8985.639f, 653.9809f, 200.0452f, 3.630291f },
141 { -8849.723f, 624.1337f, 144.0357f, 0.8552105f },
142 { -8938.404f, 511.8854f, 179.5132f, 0.4712385f },
143 { -8815.946f, 571.0833f, 166.8412f, 0.8552105f },
144 { -8968.125f, 525.1285f, 180.6735f, 3.054327f },
145 { -8887.63f, 582.0261f, 180.219f, 3.787367f },
146 { -8962.538f, 541.4132f, 169.8063f, 0.6283169f },
147 { -8854.854f, 503.4115f, 194.6336f, 3.630291f },
148 { -8810.004f, 589.0504f, 150.2928f, 0.8552105f },
149 { -8921.13f, 570.2153f, 186.4456f, 3.857183f },
150 { -8957.076f, 538.8073f, 165.0997f, 0.5235979f },
151 { -8954.139f, 507.5695f, 178.861f, 3.595379f },
152 { -8817.174f, 577.4948f, 152.5639f, 0.8552105f },
153 { -8808.778f, 582.6389f, 158.5705f, 0.8552105f },
154 { -8898.136f, 566.4236f, 186.5282f, 6.0912f },
155 { -8877.205f, 598.0347f, 164.5646f, 0.1396245f },
156 { -8815.911f, 460.2049f, 179.4585f, 3.926996f },
157 { -8836.877f, 574.1649f, 168.0506f, 0.8552105f },
158 { -8883.005f, 590.1927f, 157.0154f, 0.9773831f },
159 { -8942.71f, 561.3316f, 198.328f, 3.630291f },
160 { -8949.616f, 617.007f, 197.4469f, 3.630291f },
161 { -8939.357f, 507.9288f, 155.7625f, 0.6457717f },
162 { -8976.667f, 558.6233f, 170.7597f, 5.550147f },
163 { -8871.924f, 609.7327f, 151.6364f, 0.8552105f },
164 { -8829.264f, 551.5052f, 137.5144f, 0.8552105f },
165 { -8859.802f, 567.184f, 162.9909f, 3.47321f },
166 { -8864.504f, 604.0816f, 144.7161f, 0.8552105f },
167 { -8854.042f, 616.0121f, 146.4188f, 0.8552105f },
168 { -8839.778f, 576.8004f, 163.2873f, 0.8552105f },
169 { -8863.049f, 497.7986f, 179.2041f, 3.926996f },
170 { -8951.743f, 611.4948f, 185.3027f, 3.630291f },
171 { -8976.063f, 535.0504f, 178.1283f, 4.66003f },
172 { -8937.466f, 517.0521f, 170.561f, 3.68265f },
173 { -8940.363f, 490.4288f, 180.8207f, 3.996807f },
174 { -8838.177f, 541.6476f, 168.6789f, 0.8552105f },
175 { -8825.467f, 450.7708f, 196.6236f, 3.630291f },
176 { -8878.851f, 583.1771f, 165.5726f, 3.700105f },
177 { -8822.146f, 557.2292f, 147.8244f, 0.8552105f },
178 { -8953.243f, 523.8958f, 158.0031f, 3.630291f },
179 { -8983.514f, 659.493f, 198.6248f, 3.630291f },
180 { -8939.941f, 499.6163f, 158.6714f, 3.944446f },
181 { -8925.567f, 542.2158f, 116.1619f, 6.0912f },
182 { -8964.125f, 634.6736f, 182.0301f, 0.6283169f },
183 { -8930.696f, 491.8021f, 185.6471f, 3.944446f },
184 { -8882.172f, 574.4219f, 165.4764f, 6.0912f },
185 { -8943.316f, 516.0191f, 155.9438f, 5.846854f },
186 { -8871.973f, 589.2795f, 159.1132f, 0.4712385f },
187 { -8883.328f, 579.6736f, 172.1912f, 0.6283169f },
188 { -8961.998f, 640.1858f, 188.2798f, 0.6283169f },
189 { -8912.467f, 506.625f, 175.9382f, 5.846854f },
190 { -8843.524f, 481.7865f, 179.664f, 0.9250238f },
191 { -8964.986f, 535.2136f, 163.4313f, 4.886924f },
192 { -8833.341f, 484.1042f, 192.8578f, 0.6283169f },
193 { -8861.382f, 574.7413f, 162.1575f, 3.47321f },
194 { -8973.627f, 631.7726f, 192.3904f, 0.6283169f },
195 { -8878.851f, 583.1771f, 166.149f, 3.700105f },
196 { -8842.842f, 481.2031f, 204.4827f, 0.6283169f },
197 { -8902.143f, 527.5035f, 187.1883f, 3.630291f },
198 { -8956.248f, 514.2257f, 161.3226f, 3.630291f },
199 { -8835.826f, 488.0764f, 179.2099f, 0.9250238f },
200 { -8961.319f, 533.3333f, 162.5372f, 3.961899f },
201 { -8947.649f, 516.0955f, 163.2207f, 3.68265f },
202 { -8949.186f, 504.1337f, 180.9165f, 3.804818f },
203 { -8945.564f, 511.5156f, 164.3801f, 5.899214f },
204 { -8969.266f, 543.882f, 180.4686f, 4.66003f },
205 { -8874.156f, 586.6302f, 161.5547f, 0.9773831f },
206 { -8919.748f, 552.2986f, 176.0453f, 3.996807f },
207 { -8971.5f, 637.2847f, 197.926f, 0.6283169f },
208 { -8965.389f, 525.8906f, 170.2664f, 2.199115f },
209 { -8885.1768f, 584.675781f, 141.623886f, 0.62527f },
210 { -8880.427734f, 576.678406f, 141.62886f, 0.69819f },
211 { -8873.7005f, 570.2418f, 139.33889f, 0.762973f },
212 { -8888.692383f, 571.265015f, 120.36886f, 0.601966f },
213 { -8870.9571f, 575.9952f, 120.811226f, 0.880780f },
214 { -8875.3905f, 582.87028f, 120.81226f, 0.76898f },
215 { -8887.0238f, 594.304871f, 120.81226f, 0.700139f },
216 { -8887.0238f, 594.3041f, 132.571243f, 5.30658f },
217 { -8874.3430f, 584.368164f, 131.409271f, 5.428242f },
218 { -8856.23049f, 573.789795f, 131.861237f, 5.707060f },
219 { -8881.462891f, 592.391418f, 108.883751f, 0.464518f },
220 { -8871.443359f, 582.234802f, 107.030724f, 0.562685f },
221 { -8884.809570f, 576.020081f, 100.489868f, 0.621592f },
222 { -8871.830078f, 585.984314f, 100.492371f, 0.696206f },
223 { -8871.830078f, 585.984314f, 119.252373f, 0.700133f },
224 { -8875.578125f, 563.403931f, 104.059372f, 4.521095f },
225 { -8896.128906f, 584.406311f, 107.437462f, 2.922810f },
226 { -8873.742188f, 599.873718f, 107.512787f, 3.001356f },
227 { -8885.817383f, 586.529175f, 98.614265f, 0.437024f },
228 { -8872.734375f, 573.338440f, 97.723770f, 1.831103f }
229};
230
231std::vector<Position> const OrgrimmarPos =
232{
233 { 1609.075f, -4383.707f, 90.23414f, 0.3665176f },
234 { 1469.648f, -4371.285f, 113.8313f, 6.073746f },
235 { 1391.792f, -4371.f, 165.0406f, 3.630291f },
236 { 1405.918f, -4504.896f, 123.1683f, 3.700105f },
237 { 1610.016f, -4386.493f, 82.81187f, 3.909541f },
238 { 1523.767f, -4385.934f, 100.7948f, 4.572764f },
239 { 1486.345f, -4493.087f, 146.1718f, 0.1396245f },
240 { 1606.724f, -4414.668f, 121.4687f, 5.550147f },
241 { 1647.043f, -4402.644f, 121.7353f, 1.570796f },
242 { 1573.078f, -4426.342f, 104.5087f, 5.550147f },
243 { 1600.927f, -4367.731f, 87.9886f, 3.874631f },
244 { 1558.359f, -4368.33f, 120.0258f, 4.363324f },
245 { 1377.49f, -4298.74f, 136.4911f, 5.846854f },
246 { 1395.439f, -4403.583f, 170.1769f, 3.68265f },
247 { 1394.175f, -4390.438f, 166.5045f, 5.550147f },
248 { 1389.752f, -4352.681f, 150.5359f, 3.228859f },
249 { 1471.724f, -4393.083f, 129.966f, 3.159062f },
250 { 1586.208f, -4334.78f, 104.248f, 2.617989f },
251 { 1590.582f, -4338.588f, 110.6812f, 0.2094394f },
252 { 1601.163f, -4367.491f, 105.1535f, 0.5410506f },
253 { 1493.476f, -4448.524f, 142.9773f, 3.630291f },
254 { 1481.592f, -4421.177f, 156.4658f, 0.1396245f },
255 { 1382.604f, -4319.927f, 143.5185f, 3.298687f },
256 { 1647.483f, -4404.724f, 113.3714f, 2.617989f },
257 { 1567.398f, -4423.649f, 108.9948f, 4.206246f },
258 { 1560.326f, -4372.816f, 112.5343f, 6.19592f },
259 { 1521.741f, -4390.443f, 103.8611f, 5.550147f },
260 { 1479.924f, -4424.903f, 156.0753f, 3.054327f },
261 { 1387.427f, -4334.854f, 150.2641f, 0.9773831f },
262 { 1481.771f, -4466.378f, 138.0009f, 3.47321f },
263 { 1390.512f, -4372.778f, 154.748f, 3.071766f },
264 { 1605.115f, -4411.217f, 112.0536f, 0.06981169f },
265 { 1466.144f, -4341.917f, 140.5263f, 2.548179f },
266 { 1479.922f, -4467.948f, 129.9536f, 3.33359f },
267 { 1397.09f, -4405.764f, 149.5936f, 2.199115f },
268 { 1404.153f, -4497.729f, 121.3236f, 6.0912f },
269 { 1493.337f, -4441.268f, 137.3894f, 3.211419f },
270 { 1469.385f, -4340.427f, 150.2859f, 2.548179f },
271 { 1385.043f, -4317.056f, 145.6198f, 3.194002f },
272 { 1472.734f, -4398.983f, 135.9285f, 3.47321f },
273 { 1469.135f, -4380.587f, 117.5022f, 0.1396245f },
274 { 1389.047f, -4339.42f, 150.2229f, 4.76475f },
275 { 1476.245f, -4420.931f, 159.4286f, 3.630291f },
276 { 1479.87f, -4421.628f, 161.0234f, 3.054327f },
277 { 1391.415f, -4370.76f, 161.9061f, 3.089183f },
278 { 1394.175f, -4385.715f, 153.2316f, 5.899214f },
279 { 1396.132f, -4411.295f, 161.1071f, 4.66003f },
280 { 1403.262f, -4474.733f, 103.9363f, 4.886924f },
281 { 1488.257f, -4491.f, 130.442f, 0.03490625f },
282 { 1467.707f, -4361.327f, 105.1312f, 3.700105f },
283 { 1375.649f, -4366.401f, 152.1661f, 0.1745321f },
284 { 1389.922f, -4375.253f, 77.87833f, 6.0912f },
285 { 1392.398f, -4379.628f, 172.5377f, 2.199115f },
286 { 1394.943f, -4388.257f, 176.3171f, 3.246347f },
287 { 1481.833f, -4466.399f, 160.8109f, 3.630291f },
288 { 1469.816f, -4366.597f, 120.6296f, 3.159062f },
289 { 1379.802f, -4309.967f, 146.3039f, 2.984498f },
290 { 1388.002f, -4353.233f, 148.1396f, 5.899214f },
291 { 1378.589f, -4296.118f, 144.691f, 5.846854f },
292 { 1470.207f, -4395.868f, 133.8257f, 6.073746f },
293 { 1406.467f, -4511.327f, 123.2332f, 0.1396245f },
294 { 1395.04f, -4390.569f, 167.5848f, 3.228859f },
295 { 1480.908f, -4422.219f, 154.6776f, 3.194002f },
296 { 1486.033f, -4493.719f, 144.937f, 3.47321f },
297 { 1403.845f, -4488.743f, 124.8069f, 3.700105f },
298 { 1494.733f, -4446.885f, 140.0633f, 6.248279f },
299 { 1481.875f, -4428.431f, 161.3601f, 3.316144f },
300 { 1384.299f, -4332.253f, 146.5117f, 3.194002f },
301 { 1468.939f, -4346.42f, 143.6888f, 3.054327f },
302 { 1393.356f, -4478.347f, 125.5958f, 6.0912f },
303 { 1384.672f, -4449.229f, 146.3165f, 4.886924f },
304 { 1486.5393f, -4372.5333f, 117.014f, 5.951700f },
305 { 1489.1738f, -4415.65091f, 110.5526f, 1.309994f },
306 { 1501.63171f, -4454.74668f, 107.716637f, 0.387151f },
307 { 1518.3159f, -4438.94873f, 82.9114f, 1.891189f },
308 { 1511.754272f, -4423.58203f, 75.781662f, 6.1763f },
309 { 1508.1212f, -4399.4312f, 75.781662f, 3.575869f },
310 { 1515.1198f, -4356.886719f, 81.859f, 5.87775f },
311 { 1553.78795f, -4387.95084f, 72.565178f, 1.372812f },
312 { 1549.74023f, -4413.03227f, 74.2219f, 0.42641f },
313 { 1528.63644f, -4408.71850f, 118.7224f, 0.23985f },
314 { 1532.7171f, -4399.64944f, 50.62704f, 0.13188f },
315 { 1509.3391f, -4422.2905f, 55.24475f, 0.1554f },
316 { 1501.4160f, -4413.1782f, 42.63250f, 0.347852f },
317 { 1499.258179f, -4395.1628f, 42.230198f, 6.02282f },
318 { 1485.33571f, -4397.560547f, 51.07567f, 3.2190f },
319 { 1495.2693f, -4417.2910f, 50.232471f, 3.31666f },
320 { 1498.65912f, -4439.20613f, 49.07176f, 3.7643f },
321 { 1523.45699f, -4393.04395f, 39.775066f, 3.71542f },
322 { 1536.62665f, -4419.85963f, 40.4508f, 3.46193f },
323 { 1497.2632f, -4401.54637f, 33.805511f, 2.60181f },
324 { 1497.9363f, -4437.58008f, 32.326393f, 4.96205f },
325 { 1493.26253f, -4402.19919f, 59.147816f, 2.2917f }
326};
327
328std::vector<Position> const IronForgePos =
329{
330 { -5196.038f, -858.4618f, 525.0447f, 6.073746f },
331 { -5195.734f, -887.6441f, 534.168f, 3.68265f },
332 { -5195.063f, -762.2795f, 510.0929f, 4.66003f },
333 { -5164.59f, -858.3264f, 540.0117f, 5.899214f },
334 { -5130.776f, -791.1945f, 523.2938f, 5.846854f },
335 { -5127.663f, -827.1771f, 534.2573f, 4.76475f },
336 { -5227.184f, -754.8802f, 500.0329f, 5.550147f },
337 { -5197.655f, -857.8889f, 525.5248f, 2.199115f },
338 { -5227.705f, -859.0052f, 513.9084f, 6.0912f },
339 { -5227.f, -821.7795f, 471.7424f, 3.700105f },
340 { -5131.42f, -791.9445f, 537.8198f, 3.054327f },
341 { -5223.59f, -889.6302f, 509.3725f, 4.886924f },
342 { -5164.124f, -825.3795f, 525.2161f, 0.9773831f },
343 { -5196.168f, -826.6163f, 517.4463f, 2.111848f },
344 { -5227.393f, -757.1059f, 501.0704f, 3.47321f },
345 { -5192.556f, -784.4583f, 506.9716f, 4.729844f },
346 { -5227.965f, -792.184f, 509.1933f, 0.1396245f },
347 { -5182.054f, -782.283f, 514.0707f, 4.886924f },
348 { -5152.384f, -819.2031f, 508.2252f, 0.9773831f },
349 { -5220.162f, -722.941f, 501.573f, 3.700105f },
350 { -5218.438f, -879.0486f, 534.1289f, 2.111848f },
351 { -5186.096f, -846.5903f, 526.4001f, 3.054327f },
352 { -5182.972f, -816.2309f, 522.7172f, 5.550147f },
353 { -5172.745f, -854.6077f, 541.5695f, 2.548179f },
354 { -5126.936f, -816.5712f, 506.1032f, 4.76475f },
355 { -5214.637f, -850.4496f, 524.1501f, 4.729844f },
356 { -5156.693f, -818.3021f, 532.9488f, 4.66003f },
357 { -5188.997f, -876.8524f, 544.1463f, 6.073746f },
358 { -5216.222f, -817.3351f, 498.4872f, 3.630291f },
359 { -5190.08f, -758.6545f, 507.9708f, 6.0912f },
360 { -5156.724f, -844.0851f, 529.4639f, 5.899214f },
361 { -5215.002f, -754.8802f, 488.5055f, 0.1396245f },
362 { -5137.646f, -787.2882f, 502.1171f, 5.846854f },
363 { -5183.194f, -817.217f, 508.4071f, 3.68265f },
364 { -5183.191f, -848.6163f, 518.0361f, 2.199115f },
365 { -5215.972f, -785.0452f, 494.1193f, 3.47321f },
366 { -5117.396f, -791.4796f, 483.5854f, 6.0912f },
367 { -5153.132f, -781.2309f, 539.7031f, 5.899214f },
368 { -5209.993f, -710.1337f, 501.9293f, 5.846854f },
369 { -5172.809f, -848.1094f, 520.4458f, 6.0912f },
370 { -5120.552f, -812.3004f, 547.9608f, 3.68265f },
371 { -5142.92f, -811.507f, 526.748f, 4.886924f },
372 { -5208.391f, -773.4583f, 497.451f, 4.729844f },
373 { -5181.903f, -779.1979f, 518.5895f, 0.9773831f },
374 { -5208.097f, -843.934f, 514.2054f, 3.47321f },
375 { -5118.309f, -783.3246f, 545.3275f, 2.199115f },
376 { -5213.969f, -715.6684f, 493.5344f, 6.073746f },
377 { -5211.384f, -872.493f, 523.3142f, 0.1396245f },
378 { -5215.563f, -812.7205f, 501.1313f, 2.548179f },
379 { -5159.971f, -819.0695f, 523.9502f, 5.550147f },
380 { -5243.21f, -741.7934f, 479.6208f, 2.111848f },
381 { -5158.577f, -784.243f, 515.7791f, 3.054327f },
382 { -5210.179f, -809.2413f, 507.136f, 3.630291f },
383 { -5182.26f, -818.6476f, 519.5022f, 4.66003f },
384 { -5178.493f, -870.8143f, 539.2921f, 3.700105f },
385 { -5206.622f, -741.5938f, 511.1593f, 4.76475f },
386 { -5194.976f, -759.9896f, 517.6288f, 3.630291f }
387};
388
389std::vector<Position> const SilvermoonPos =
390{
391 { 9466.583f, -7307.326f, 107.8366f, 0.1047193f },
392 { 9411.616f, -7322.223f, 79.95399f, 2.722713f },
393 { 9472.98f, -7276.879f, 111.8719f, 6.056293f },
394 { 9403.265f, -7283.608f, 108.6991f, 3.106652f },
395 { 9426.45f, -7221.809f, 95.899f, 3.612838f },
396 { 9410.442f, -7283.999f, 113.0489f, 3.106652f },
397 { 9398.225f, -7284.489f, 81.34821f, 3.019413f },
398 { 9400.401f, -7268.281f, 114.684f, 3.228859f },
399 { 9478.615f, -7259.143f, 109.0896f, 5.777041f },
400 { 9480.074f, -7163.523f, 113.2669f, 0.1396245f },
401 { 9482.511f, -7119.089f, 95.79392f, 6.021387f },
402 { 9407.579f, -7277.173f, 145.9511f, 3.159062f },
403 { 9399.398f, -7323.894f, 106.2334f, 2.617989f },
404 { 9395.489f, -7278.119f, 77.25965f, 3.106652f },
405 { 9407.703f, -7330.93f, 97.46037f, 2.565632f },
406 { 9408.553f, -7254.359f, 103.7934f, 3.455756f },
407 { 9480.151f, -7135.254f, 120.9287f, 6.19592f },
408 { 9412.958f, -7276.931f, 107.8171f, 3.141593f },
409 { 9475.104f, -7306.728f, 116.2541f, 0.1745321f },
410 { 9464.988f, -7319.295f, 101.1637f, 0.2617982f },
411 { 9472.38f, -7267.314f, 140.3056f, 5.93412f },
412 { 9410.978f, -7300.815f, 109.2923f, 2.583081f },
413 { 9405.042f, -7301.033f, 124.4924f, 2.967041f },
414 { 9403.106f, -7309.054f, 103.702f, 2.984498f },
415 { 9464.217f, -7350.079f, 131.7602f, 0.5759573f },
416 { 9456.133f, -7348.024f, 104.9382f, 0.383971f },
417 { 9411.794f, -7285.174f, 101.2357f, 3.089183f },
418 { 9411.597f, -7266.42f, 102.0371f, 3.263772f },
419 { 9478.836f, -7127.272f, 95.90057f, 6.143561f },
420 { 9481.063f, -7136.337f, 101.3669f, 0.01745246f },
421 { 9398.232f, -7329.835f, 85.74606f, 2.775069f },
422 { 9399.838f, -7268.37f, 72.05019f, 3.211419f },
423 { 9409.207f, -7241.094f, 85.7521f, 3.368496f },
424 { 9465.259f, -7310.388f, 113.2353f, 0.6283169f },
425 { 9487.643f, -7155.167f, 124.4381f, 0.122173f },
426 { 9431.971f, -7222.501f, 95.89851f, 3.455756f },
427 { 9393.978f, -7278.168f, 71.72367f, 3.124123f },
428 { 9487.966f, -7268.014f, 119.8879f, 5.829401f },
429 { 9404.565f, -7330.906f, 90.92167f, 2.740162f },
430 { 9465.2f, -7313.238f, 124.9027f, 0.2268925f },
431 { 9470.827f, -7304.245f, 135.3172f, 6.265733f },
432 { 9403.582f, -7255.257f, 107.5193f, 3.298687f },
433 { 9399.23f, -7310.893f, 80.78027f, 2.879789f },
434 { 9472.535f, -7267.201f, 112.1708f, 6.03884f },
435 { 9491.937f, -7154.478f, 97.61007f, 0.05235888f },
436 { 9412.064f, -7278.493f, 116.0459f, 3.106652f },
437 { 9369.768f, -7276.374f, 14.24026f, 6.0912f },
438 { 9410.102f, -7295.561f, 143.4681f, 3.019413f },
439 { 9484.801f, -7131.789f, 81.00427f, 6.161013f },
440 { 9411.763f, -7266.338f, 107.3137f, 3.106652f },
441 { 9407.249f, -7253.171f, 115.6959f, 3.316144f },
442 { 9465.064f, -7316.58f, 144.7163f, 0.2967052f },
443 { 9411.466f, -7252.686f, 113.9839f, 3.33359f },
444 { 9474.942f, -7260.846f, 125.8512f, 5.969027f },
445 { 9485.356f, -7110.373f, 104.1972f, 6.03884f },
446 { 9402.48f, -7333.202f, 107.0458f, 2.460913f },
447 { 9404.987f, -7279.173f, 133.3515f, 2.949595f },
448 { 9476.116f, -7270.055f, 105.0233f, 6.003934f },
449 { 9470.456f, -7300.805f, 107.3014f, 0.087266f },
450 { 9434.106f, -7236.905f, 133.1817f, 3.368496f },
451 { 9416.494f, -7325.862f, 113.1137f, 2.652894f },
452 { 9406.013f, -7302.038f, 109.1291f, 2.740162f },
453 { 9473.886f, -7256.887f, 108.9899f, 5.829401f },
454 { 9430.171f, -7231.706f, 114.6874f, 3.42085f },
455 { 9404.366f, -7275.19f, 144.4704f, 3.071766f },
456 { 9411.504f, -7288.202f, 112.2664f, 2.844883f }
457};
458
459std::vector<Position> const ExodarPos =
460{
461 { -3992.465f, -11843.86f, 186.4043f, 2.199115f },
462 { -3948.378f, -11854.06f, 135.6206f, 3.47321f },
463 { -3918.684f, -11840.53f, 216.565f, 4.886924f },
464 { -3946.1f, -11854.03f, 131.2059f, 6.0912f },
465 { -3966.864f, -11851.99f, 106.2717f, 2.548179f },
466 { -3994.082f, -11855.4f, 66.14954f, 4.32842f },
467 { -3989.288f, -11846.68f, 147.7923f, 3.700105f },
468 { -3974.271f, -11849.3f, 183.4967f, 0.9773831f },
469 { -3943.34f, -11850.36f, 191.2153f, 5.846854f },
470 { -3923.543f, -11851.16f, 93.1925f, 3.054327f },
471 { -3990.212f, -11844.83f, 89.08578f, 2.111848f },
472 { -3977.315f, -11848.61f, 128.4479f, 3.700105f },
473 { -3972.831f, -11850.72f, 89.65628f, 2.548179f },
474 { -3946.937f, -11851.44f, 192.1654f, 2.199115f },
475 { -3937.843f, -11856.82f, 80.51583f, 4.66003f },
476 { -3954.331f, -11851.98f, 81.24915f, 3.054327f },
477 { -3937.817f, -11853.64f, 121.1544f, 3.47321f },
478 { -3967.367f, -11851.36f, 123.7478f, 4.729844f },
479 { -3986.625f, -11847.29f, 142.0192f, 6.0912f },
480 { -3990.369f, -11844.75f, 94.17735f, 6.073746f },
481 { -3938.356f, -11850.21f, 200.6413f, 3.68265f },
482 { -3954.939f, -11852.58f, 184.5983f, 5.899214f },
483 { -3988.003f, -11846.72f, 73.19949f, 6.0912f },
484 { -3896.356f, -11844.68f, 148.2895f, 5.899214f },
485 { -3971.118f, -11850.72f, 137.1919f, 6.073746f },
486 { -3930.919f, -11853.74f, 138.6459f, 0.9773831f },
487 { -3984.946f, -11844.98f, 164.378f, 4.66003f },
488 { -3943.503f, -11854.65f, 145.232f, 3.630291f },
489 { -3812.792f, -11807.49f, 135.9212f, 3.700105f },
490 { -3943.854f, -11854.62f, 163.0852f, 5.550147f },
491 { -3957.711f, -11850.8f, 147.1301f, 3.68265f },
492 { -3949.376f, -11848.43f, 146.4466f, 2.199115f },
493 { -4014.848f, -11815.58f, 130.2189f, 4.729844f },
494 { -4012.328f, -11821.78f, 92.57595f, 6.073746f },
495 { -4025.119f, -11794.49f, 183.6754f, 4.76475f },
496 { -4031.543f, -11791.47f, 78.31419f, 4.66003f },
497 { -4019.754f, -11805.57f, 129.9788f, 3.630291f },
498 { -4009.46f, -11824.12f, 126.7007f, 0.1396245f },
499 { -4049.115f, -11781.37f, 197.9942f, 3.68265f },
500 { -4006.23f, -11830.18f, 184.4535f, 5.899214f },
501 { -4017.271f, -11814.06f, 73.86016f, 2.111848f },
502 { -4018.511f, -11807.98f, 179.3607f, 4.450591f },
503 { -4038.572f, -11767.11f, 191.1657f, 4.76475f },
504 { -4018.321f, -11808.37f, 178.2087f, 0.9773831f },
505 { -4013.852f, -11817.62f, 126.2276f, 4.886924f },
506 { -4028.476f, -11782.85f, 100.8544f, 0.1396245f },
507 { -4006.938f, -11821.57f, 81.11591f, 5.550147f },
508 { -4018.111f, -11808.96f, 113.2876f, 3.630291f },
509 { -4069.263f, -11755.89f, 133.3362f, 0.1396245f },
510 { -4041.02f, -11757.23f, 139.8532f, 5.846854f },
511 { -4012.13f, -11814.23f, 165.8398f, 3.054327f },
512 { -4028.264f, -11781.04f, 135.2486f, 6.0912f },
513 { -4025.534f, -11790.81f, 164.8259f, 2.548179f },
514 { -4015.083f, -11815.16f, 147.3407f, 4.886924f },
515 { -4011.046f, -11818.31f, 141.9634f, 4.76475f },
516 { -4043.675f, -11746.47f, 136.9332f, 3.47321f },
517 { -4013.666f, -11817.91f, 169.5565f, 2.111848f },
518 { -4036.461f, -11783.4f, 142.8152f, 4.729844f }
519};
520
521std::vector<Position> const ThunderBluffPos =
522{
523 { -1234.804f, -19.72239f, 206.5436f, 0.1396245f },
524 { -1244.442f, -35.88308f, 206.82f, 4.729844f },
525 { -1239.212f, -11.25857f, 208.6352f, 3.700105f },
526 { -1217.165f, -15.58898f, 207.4553f, 3.68265f },
527 { -1229.332f, -6.54617f, 208.2537f, 2.548179f },
528 { -1227.353f, -14.30225f, 206.6192f, 3.054327f },
529 { -1234.8f, -14.12402f, 208.0964f, 6.0912f },
530 { -1246.791f, -38.59223f, 206.846f, 6.073746f },
531 { -1229.818f, -6.788249f, 209.4552f, 4.886924f },
532 { -1223.867f, -10.67551f, 205.7558f, 0.9773831f },
533 { -1229.833f, -6.403429f, 208.6842f, 4.76475f },
534 { -1239.199f, -23.20622f, 207.0188f, 3.47321f },
535 { -1246.258f, -37.36089f, 208.2598f, 2.199115f },
536 { -1223.363f, -12.2462f, 201.3805f, 4.66003f },
537 { -1218.116f, -16.37305f, 199.9185f, 5.550147f },
538 { -1239.709f, -42.34294f, 204.2466f, 2.111848f },
539 { -1219.295f, -12.87424f, 206.2387f, 5.899214f },
540 { -1251.241f, -33.18164f, 209.7986f, 3.630291f },
541 { -1219.549f, -12.32769f, 207.9862f, 3.47321f },
542 { -1251.181f, -34.52919f, 206.8795f, 4.66003f },
543 { -1235.567f, -15.02116f, 205.3759f, 2.199115f },
544 { -1241.148f, -41.8049f, 205.8436f, 0.1396245f },
545 { -1241.41f, -23.09136f, 206.5933f, 3.054327f },
546 { -1235.885f, -19.49116f, 206.4422f, 3.68265f },
547 { -1234.823f, -13.99685f, 210.1406f, 6.073746f },
548 { -1220.117f, -10.93815f, 204.8297f, 4.76475f },
549 { -1219.087f, -6.230252f, 206.5717f, 5.899214f },
550 { -1235.053f, -20.39225f, 206.5732f, 3.630291f },
551 { -1239.364f, -22.23714f, 207.2047f, 4.886924f },
552 { -1245.448f, -37.35639f, 208.0733f, 3.700105f },
553 { -1222.941f, -10.68441f, 208.3044f, 0.9773831f },
554 { -1238.765f, -11.7156f, 203.8905f, 2.111848f },
555 { -1251.638f, -34.5931f, 207.4821f, 6.0912f },
556 { -1229.332f, -6.54617f, 205.5314f, 4.729844f },
557 { -1245.196f, -37.02111f, 208.2277f, 5.550147f },
558 { -1235.227f, -19.88525f, 206.9543f, 2.548179f },
559 { -1249.993f, -35.97727f, 206.9852f, 5.846854f },
560 { -1238.741f, -11.55127f, 216.4102f, 4.76475f },
561 { -1242.702f, -23.95698f, 215.8784f, 2.199115f },
562 { -1223.998f, -11.75629f, 187.3124f, 6.0912f },
563 { -1220.138f, -16.90701f, 218.7182f, 2.111848f },
564 { -1239.351f, -23.36654f, 218.1057f, 5.550147f },
565 { -1222.544f, -11.58713f, 218.9956f, 3.630291f },
566 { -1234.379f, -19.82167f, 211.3573f, 5.899214f },
567 { -1224.649f, -16.73172f, 217.2839f, 6.073746f },
568 { -1219.856f, -11.69358f, 218.5711f, 0.1396245f },
569 { -1223.967f, -8.415148f, 219.2347f, 3.47321f },
570 { -1252.266f, -33.21897f, 215.823f, 3.68265f },
571 { -1244.304f, -41.49599f, 214.7235f, 3.700105f },
572 { -1245.102f, -34.69542f, 215.4592f, 4.886924f },
573 { -1239.761f, -41.99474f, 211.7772f, 6.0912f },
574 { -1219.803f, -11.18414f, 219.6471f, 4.729844f },
575 { -1219.832f, -12.19803f, 219.4899f, 5.846854f },
576 { -1236.825f, -18.4617f, 220.2076f, 4.66003f },
577 { -1239.635f, -11.55973f, 220.694f, 2.548179f },
578 { -1233.765f, -15.5765f, 216.1068f, 3.054327f },
579 { -1233.56f, -15.80257f, 215.6199f, 0.9773831f },
580 { -1240.617f, -41.39486f, 205.0362f, 5.846854f }
581};
582
583std::vector<Position> const UndercityPos =
584{
585 { 1850.231f, 257.0156f, 124.1743f, 4.729844f },
586 { 1863.302f, 193.9063f, 114.5829f, 0.9773831f },
587 { 1851.997f, 212.7726f, 127.959f, 5.550147f },
588 { 1862.474f, 288.1528f, 118.4504f, 6.0912f },
589 { 1851.906f, 267.6267f, 131.5442f, 3.054327f },
590 { 1868.905f, 323.2587f, 131.801f, 0.1396245f },
591 { 1849.677f, 196.5052f, 119.4152f, 2.548179f },
592 { 1870.382f, 155.8438f, 135.8888f, 5.846854f },
593 { 1863.309f, 211.9219f, 117.2065f, 5.899214f },
594 { 1849.877f, 215.7413f, 120.1931f, 6.073746f },
595 { 1864.762f, 170.5399f, 108.2692f, 4.76475f },
596 { 1839.986f, 288.4306f, 126.1348f, 3.47321f },
597 { 1875.91f, 230.566f, 125.1612f, 2.199115f },
598 { 1854.146f, 238.7622f, 131.7162f, 4.66003f },
599 { 1863.307f, 264.4583f, 123.374f, 4.886924f },
600 { 1871.578f, 266.8681f, 108.0443f, 4.66003f },
601 { 1836.901f, 185.5868f, 113.362f, 3.630291f },
602 { 1871.545f, 191.2622f, 105.8294f, 6.073746f },
603 { 1863.307f, 211.816f, 114.3906f, 4.76475f },
604 { 1841.543f, 205.1754f, 102.9691f, 3.47321f },
605 { 1843.304f, 273.4757f, 104.6566f, 6.0912f },
606 { 1870.818f, 167.0938f, 126.3066f, 4.729844f },
607 { 1840.653f, 227.6319f, 106.8095f, 0.1396245f },
608 { 1863.299f, 282.1806f, 110.9902f, 2.199115f },
609 { 1875.688f, 230.5278f, 112.7081f, 3.054327f },
610 { 1872.264f, 311.1458f, 119.7756f, 3.68265f },
611 { 1871.248f, 297.1684f, 113.6078f, 5.550147f },
612 { 1863.293f, 186.4896f, 114.6143f, 5.846854f },
613 { 1838.384f, 252.3264f, 103.8479f, 3.700105f },
614 { 1886.804f, 166.3976f, 125.2679f, 2.111848f },
615 { 1863.363f, 237.5417f, 125.3641f, 0.9773831f },
616 { 1863.307f, 267.875f, 113.7794f, 5.899214f },
617 { 1845.602f, 299.4445f, 120.9578f, 4.886924f },
618 { 1871.884f, 217.2656f, 108.2966f, 2.548179f },
619 { 1867.459f, 240.2357f, 106.0639f, 6.0912f },
620 { 1863.326f, 298.4879f, 121.1103f, 3.054327f },
621 { 1844.776f, 287.776f, 131.6692f, 4.76475f },
622 { 1842.595f, 299.8854f, 132.9048f, 5.846854f },
623 { 1843.754f, 233.0833f, 122.607f, 3.68265f },
624 { 1865.563f, 238.7674f, 127.128f, 5.550147f },
625 { 1863.302f, 282.6076f, 117.6718f, 2.548179f },
626 { 1850.063f, 218.7344f, 116.5234f, 4.886924f },
627 { 1852.528f, 257.8333f, 125.5587f, 5.899214f },
628 { 1870.385f, 321.809f, 123.7424f, 4.66003f },
629 { 1864.694f, 167.474f, 111.3632f, 0.1396245f },
630 { 1846.231f, 194.2656f, 108.0038f, 3.700105f },
631 { 1876.434f, 227.1129f, 116.7266f, 4.729844f },
632 { 1839.993f, 245.0399f, 120.8441f, 2.199115f },
633 { 1864.042f, 204.4774f, 105.6403f, 3.630291f },
634 { 1875.594f, 246.9271f, 110.0379f, 2.111848f },
635 { 1850.892f, 273.6059f, 133.6044f, 0.9773831f },
636 { 1863.3f, 186.2188f, 118.3104f, 3.47321f },
637 { 1851.578f, 203.2604f, 118.5638f, 6.0912f },
638 { 1863.307f, 259.8038f, 116.5421f, 6.073746f },
639 { 1877.592f, 247.3872f, 128.022f, 3.68265f },
640 { 1850.288f, 267.309f, 125.0537f, 3.630291f }
641};
642
643std::vector<Position> const DarnassusPos =
644{
645 { 8578.888f, 975.2604f, 42.48742f, 5.846854f },
646 { 8574.236f, 944.2083f, 44.71943f, 4.76475f },
647 { 8517.067f, 986.0851f, 66.32562f, 4.729844f },
648 { 8553.734f, 780.0504f, 63.21661f, 4.886924f },
649 { 8537.763f, 877.8924f, 76.7791f, 3.054327f },
650 { 8572.691f, 814.7379f, 72.4253f, 3.68265f },
651 { 8572.691f, 814.7379f, 72.4253f, 3.68265f },
652 { 8494.191f, 943.868f, 59.0681f, 6.073746f },
653 { 8536.576f, 873.7222f, 45.29478f, 0.1396245f },
654 { 8550.191f, 850.7222f, 57.6362f, 3.700105f },
655 { 8554.281f, 875.8316f, 48.10747f, 5.550147f },
656 { 8590.731f, 846.9427f, 56.89664f, 2.199115f },
657 { 8519.5f, 949.7708f, 63.29575f, 3.630291f },
658 { 8508.24f, 838.3646f, 77.00415f, 4.66003f },
659 { 8588.622f, 912.0434f, 49.60857f, 0.9773831f },
660 { 8538.786f, 820.7361f, 67.0003f, 6.0912f },
661 { 8488.077f, 983.2379f, 59.87747f, 2.111848f },
662 { 8494.68f, 911.783f, 72.29862f, 2.548179f },
663 { 8556.297f, 920.9479f, 42.13089f, 3.47321f },
664 { 8571.629f, 880.1511f, 53.78056f, 5.899214f },
665 { 8544.278f, 885.059f, 70.3073f, 0.1396245f },
666 { 8551.224f, 947.6059f, 60.74737f, 6.0912f },
667 { 8586.716f, 913.4774f, 42.5911f, 4.76475f },
668 { 8617.442f, 917.658f, 41.92455f, 4.886924f },
669 { 8519.375f, 917.842f, 74.22758f, 2.111848f },
670 { 8550.322f, 910.9809f, 52.84513f, 3.700105f },
671 { 8582.255f, 848.0608f, 53.87154f, 5.899214f },
672 { 8547.279f, 964.1684f, 45.09663f, 5.550147f },
673 { 8581.158f, 881.2344f, 54.83494f, 0.9773831f },
674 { 8550.932f, 817.2396f, 60.80384f, 3.630291f },
675 { 8550.214f, 787.1684f, 66.42948f, 4.729844f },
676 { 8583.88f, 948.4114f, 41.32378f, 5.846854f },
677 { 8550.997f, 848.8594f, 70.56313f, 3.47321f },
678 { 8517.45f, 879.5555f, 83.80603f, 6.073746f },
679 { 8558.55f, 838.934f, 56.89937f, 4.66003f },
680 { 8617.526f, 851.5955f, 37.39491f, 3.68265f },
681 { 8579.229f, 911.8906f, 44.37334f, 3.054327f },
682 { 8581.771f, 817.0295f, 30.07061f, 2.199115f },
683 { 8514.054f, 848.6059f, 59.20383f, 2.548179f },
684 { 8570.65f, 885.1719f, 59.11485f, 2.548179f },
685 { 8576.803f, 814.3611f, 50.15007f, 4.66003f },
686 { 8697.891f, 991.0841f, 39.18531f, 6.0912f },
687 { 8547.403f, 974.4879f, 63.7893f, 5.846854f },
688 { 8553.929f, 853.6476f, 84.47609f, 0.1396245f },
689 { 8507.603f, 878.8854f, 70.23988f, 5.899214f },
690 { 8570.95f, 854.1406f, 65.7302f, 3.054327f },
691 { 8560.618f, 777.342f, 79.87446f, 4.886924f },
692 { 8542.07f, 852.0174f, 64.99033f, 3.700105f },
693 { 8514.364f, 940.0868f, 64.65899f, 4.76475f },
694 { 8526.2f, 848.8542f, 63.1242f, 2.199115f },
695 { 8571.85f, 913.1511f, 43.11662f, 6.073746f },
696 { 8591.914f, 901.6493f, 26.83536f, 5.550147f },
697 { 8539.892f, 914.3368f, 45.99331f, 3.630291f },
698 { 8578.143f, 948.3264f, 62.56763f, 2.111848f },
699 { 8539.493f, 887.2274f, 79.56437f, 3.47321f },
700 { 8538.561f, 951.6632f, 69.08958f, 4.729844f },
701 { 8523.006f, 907.7413f, 72.85262f, 0.9773831f },
702 { 8520.907f, 813.0208f, 81.70242f, 3.68265f },
703 { 8554.825f, 813.0746f, 78.88226f, 6.0912f }
704};
705
706std::unordered_map<uint32, std::vector<Position> const*> const PositionsByZoneMap =
707{
711 { DUROTAR, &OrgrimmarPos },
715 { EXODAR, &ExodarPos },
720};
721
723{
724public:
725 go_cheer_speaker() : GameObjectScript("go_cheer_speaker") { }
726
728 {
730 {
731 _started = false;
732 _big = true;
733 }
734
736 {
737 uint32 ids[] =
738 {
743 };
745 }
746
748 {
749 uint32 ids[] =
750 {
774 };
776 }
777
779 {
780 uint32 ids[] =
781 {
794 };
796 }
797
798 void UpdateAI(uint32 diff) override
799 {
800 _events.Update(diff);
801
802 time_t time = GameTime::GetGameTime();
803 tm localTm;
804 localtime_r(&time, &localTm);
805
806 // Start
807 if ((localTm.tm_min == 0 && localTm.tm_sec == 0) && !_started && (IsHolidayActive(HOLIDAY_FIREWORKS_SPECTACULAR) || IsEventActive(GAME_EVENT_NEW_YEAR)))
808 {
811 _started = true;
812 }
813
814 // Event is active
815 if ((localTm.tm_min >= 0 && localTm.tm_sec >= 1 && localTm.tm_min <= 9 && localTm.tm_sec <= 59 && !_started) && (IsHolidayActive(HOLIDAY_FIREWORKS_SPECTACULAR) || IsEventActive(GAME_EVENT_NEW_YEAR)))
816 {
818 _started = true;
819 }
820
821 // Stop
822 if ((localTm.tm_min == 10 && localTm.tm_sec == 0) && _started == true)
823 {
824 _started = false;
827 }
828
829 // New Year (Only!) - One more big bang!
830 if ((localTm.tm_min == 10 && localTm.tm_sec == 30 && localTm.tm_hour == 0) && IsEventActive(GAME_EVENT_NEW_YEAR) && _big == true)
831 {
832 _big = false;
844 }
845
846 while (uint32 eventId = _events.ExecuteEvent())
847 {
848 switch (eventId)
849 {
850 case EVENT_CHEER:
851 {
853 break;
854 }
855 case EVENT_FIRE:
856 {
857 if (std::vector<Position> const* positions = Trinity::Containers::MapGetValuePtr(PositionsByZoneMap, me->GetZoneId()))
858 {
860 float rndrot = frand(-1.0000000f, 1.0000000f);
861 float rndrot2 = frand(-1.0000000f, 1.0000000f);
862
863 if (_big)
864 {
865 if (GameObject* firework = me->SummonGameObject(FireworksBIGOnlyPicker(), rndpos, QuaternionData(0.f, 0.f, rndrot, rndrot2), 5min))
866 {
867 firework->SetRespawnTime(0);
868 firework->Delete();
869 }
870 }
871 else
872 {
873 if (GameObject* firework = me->SummonGameObject(FireworksPicker(), rndpos, QuaternionData(0.f, 0.f, rndrot, rndrot2), 5min))
874 {
875 firework->SetRespawnTime(0);
876 firework->Delete();
877 }
878 }
879 }
880
881 if (_started == true)
883
884 break;
885 }
886 default:
887 break;
888 }
889 }
890 }
891 private:
894 bool _big;
895 };
896
897 GameObjectAI* GetAI(GameObject* go) const override
898 {
899 return new go_cheer_speakerAI(go);
900 }
901};
902
904{
905 new go_cheer_speaker();
906}
uint32_t uint32
Definition: Define.h:142
bool IsHolidayActive(HolidayIds id)
bool IsEventActive(uint16 eventId)
float frand(float min, float max)
Definition: Random.cpp:55
@ HOLIDAY_FIREWORKS_SPECTACULAR
uint32 ExecuteEvent()
Definition: EventMap.cpp:73
void Update(uint32 time)
Definition: EventMap.h:56
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
Definition: EventMap.cpp:36
void CancelEvent(uint32 eventId)
Definition: EventMap.cpp:131
GameObject *const me
Definition: GameObjectAI.h:50
GameObject * SummonGameObject(uint32 entry, Position const &pos, QuaternionData const &rot, Seconds respawnTime, GOSummonType summonType=GO_SUMMON_TIMED_OR_CORPSE_DESPAWN)
Definition: Object.cpp:2065
void PlayDistanceSound(uint32 soundId, Player const *target=nullptr) const
Definition: Object.cpp:3576
uint32 GetZoneId() const
Definition: Object.h:545
GameObjectAI * GetAI(GameObject *go) const override
std::vector< Position > const ThunderBluffPos
std::vector< Position > const UndercityPos
FireworksShowTypeObjects
@ FIREWORK_SHOW_TYPE_1_GREEN_BIG
@ FIREWORK_SHOW_TYPE_2_WHITE_BIG
@ FIREWORK_SHOW_TYPE_2_WHITE
@ FIREWORK_SHOW_TYPE_2_YELLOW
@ FIREWORK_SHOW_TYPE_1_PURPLE_BIG
@ FIREWORK_SHOW_TYPE_1_YELLOW_BIG
@ FIREWORK_SHOW_TYPE_2_RED_BIG
@ FIREWORK_SHOW_TYPE_2_GREEN_BIG
@ FIREWORK_SHOW_TYPE_2_PURPLE_BIG
@ FIREWORK_SHOW_TYPE_1_WHITE
@ FIREWORK_SHOW_TYPE_2_RED
@ FIREWORK_SHOW_TYPE_2_PURPLE
@ FIREWORK_SHOW_TYPE_1_GREEN
@ FIREWORK_SHOW_TYPE_1_BLUE
@ FIREWORK_SHOW_TYPE_1_YELLOW
@ FIREWORK_SHOW_TYPE_1_WHITE_BIG
@ FIREWORK_SHOW_TYPE_2_BLUE
@ FIREWORK_SHOW_TYPE_2_BLUE_BIG
@ FIREWORK_SHOW_TYPE_1_BLUE_BIG
@ FIREWORK_SHOW_TYPE_1_RED
@ FIREWORK_SHOW_TYPE_2_GREEN
@ FIREWORK_SHOW_TYPE_2_YELLOW_BIG
@ FIREWORK_SHOW_TYPE_1_RED_BIG
std::vector< Position > const DarnassusPos
std::vector< Position > const StormwindPos
void AddSC_event_fireworks()
std::vector< Position > const SilvermoonPos
FireworksZones
@ IRONFORGE
@ UNDERCITY
@ STRANGLETHORN_VALE
@ DUROTAR
@ TELDRASSIL
@ EVERSONG_WOODS
@ THUNDERBLUFF
@ DUN_MOROGH
@ STORMWIND
@ ORGRIMMAR
@ TIRISFAL_GLADES
@ EXODAR
std::unordered_map< uint32, std::vector< Position > const * > const PositionsByZoneMap
std::vector< Position > const BootyBayPos
std::vector< Position > const ExodarPos
FireworksMisc
@ EVENT_CHEER
@ SOUND_CHEER_1
@ GAME_EVENT_NEW_YEAR
@ SOUND_CHEER_3
@ EVENT_FIRE
@ SOUND_CHEER_2
@ SOUND_CHEER_4
std::vector< Position > const IronForgePos
std::vector< Position > const OrgrimmarPos
time_t GetGameTime()
Definition: GameTime.cpp:44
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
Definition: Containers.h:109
auto MapGetValuePtr(M &map, typename M::key_type const &key)
Definition: MapUtils.h:29
void UpdateAI(uint32 diff) override