/*
* Copyright (C) 2020 BfaCore
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef GILNEAS_M_
#define GILNEAS_M_

/*######
## Quest 14154 - By the Skin of his Teeth
######*/

// House wave
uint32 const runtHousePathSize1 = 13;

Position const worgenRuntHousePath1[runtHousePathSize1] =
{
    { -1734.77f, 1527.007f, 55.2133f },
    { -1729.345f, 1526.495f, 55.4231f },
    { -1723.921f, 1525.982f, 55.6329f },
    { -1718.885f, 1525.88f, 55.89785f },
    { -1718.002f, 1516.054f, 55.36457f },
    { -1718.162f, 1512.458f, 55.41572f },
    { -1717.852f, 1508.871f, 55.64134f },
    { -1717.868f, 1507.03f, 55.78084f },
    { -1717.939f, 1498.912f, 56.2076f },
    { -1717.975f, 1494.827f, 56.34147f },
    { -1717.666f, 1491.978f, 56.46574f },
    { -1717.708f, 1491.591f, 56.51286f },
    { -1717.708f, 1491.591f, 56.51286f },
};

uint32 const runtHousePathSize2 = 11;

Position const worgenRuntHousePath2[runtHousePathSize2] =
{
    {-1705.29f, 1527.974f, 57.49218f },
    {-1709.63f, 1527.464f, 56.81163f },
    {-1713.971f, 1526.953f, 56.13107f },
    {-1718.249f, 1525.915f, 55.91631f },
    {-1718.002f, 1516.054f, 55.36457f },
    {-1718.162f, 1512.458f, 55.41572f },
    {-1717.852f, 1508.871f, 55.64134f },
    {-1717.866f, 1507.038f, 55.7804f },
    {-1717.928f, 1498.872f, 56.20963f },
    {-1717.947f, 1496.298f, 56.29393f },
    {-1717.947f, 1496.298f, 56.29393f },
};

uint32 const runtHousePathSize3 = 8;

Position const worgenRuntHousePath3[runtHousePathSize3] =
{
    {-1717.74f, 1514.99f, 55.37629f },
    {-1717.75f, 1513.727f, 55.39608f },
    {-1717.76f, 1512.465f, 55.41587f },
    {-1717.787f, 1508.872f, 55.64124f },
    {-1717.799f, 1507.277f, 55.74761f },
    {-1717.864f, 1498.657f, 56.22049f },
    {-1717.887f, 1495.557f, 56.31728f },
    {-1717.887f, 1495.557f, 56.31728f },
};

uint32 const runtHousePathSize4 = 11;

Position const worgenRuntHousePath4[runtHousePathSize4] =
{
    { -1727.101f, 1527.078f, 55.5045f },
    { -1724.719f, 1526.731f, 55.60394f },
    { -1722.337f, 1526.383f, 55.70337f },
    { -1718.885f, 1525.88f, 55.89785f },
    { -1718.002f, 1516.054f, 55.36457f },
    { -1718.162f, 1512.458f, 55.41572f },
    { -1717.852f, 1508.871f, 55.64134f },
    { -1717.845f, 1507.113f, 55.77633f },
    { -1717.81f, 1498.482f, 56.22932f },
    { -1717.793f, 1494.123f, 56.37141f },
    { -1717.793f, 1494.123f, 56.37141f },
};

uint32 const runtHousePathSize5 = 11;

Position const worgenRuntHousePath5[runtHousePathSize5] =
{
    { -1709.699f, 1527.335f, 56.34836f },
    { -1713.974f, 1526.625f, 56.13234f },
    { -1718.249f, 1525.915f, 55.91631f },
    { -1718.002f, 1516.054f, 55.36457f },
    { -1718.162f, 1512.458f, 55.41572f },
    { -1717.852f, 1508.871f, 55.64134f },
    { -1717.891f, 1506.948f, 55.78529f },
    { -1718.047f, 1499.267f, 56.18964f },
    { -1718.125f, 1495.405f, 56.31914f },
    { -1717.693f, 1492.178f, 56.45717f },
    { -1717.693f, 1492.178f, 56.45717f },
};

uint32 const runtHousePathSize6 = 9;

Position const worgenRuntHousePath6[runtHousePathSize6] =
{
    { -1718.083f, 1532.09f, 56.25435f },
    { -1718.104f, 1524.071f, 55.80854f },
    { -1718.125f, 1516.053f, 55.36273f },
    { -1718.134f, 1512.459f, 55.41573f },
    { -1718.143f, 1508.866f, 55.64067f },
    { -1718.151f, 1506.013f, 55.83052f },
    { -1718.167f, 1499.665f, 56.16953f },
    { -1718.172f, 1497.578f, 56.24289f },
    { -1718.172f, 1497.578f, 56.24289f },
};

uint32 const runtHousePathSize7 = 9;

Position const worgenRuntHousePath7[runtHousePathSize7] =
{
    { -1718.083f, 1532.09f, 56.25435f },
    { -1718.104f, 1524.071f, 55.80854f },
    { -1718.125f, 1516.053f, 55.36273f },
    { -1718.134f, 1512.459f, 55.41573f },
    { -1718.143f, 1508.866f, 55.64067f },
    { -1718.151f, 1506.013f, 55.83052f },
    { -1718.167f, 1499.665f, 56.16953f },
    { -1718.172f, 1497.578f, 56.24289f },
    { -1718.172f, 1497.578f, 56.24289f },
};

uint32 const runtCathedralPathSize1 = 10;

Position const worgenRuntCathedralPath1[runtCathedralPathSize1] =
{
    { -1612.885f, 1492.154f, 67.03599f },
    { -1618.054f, 1489.644f, 68.5475f },
    { -1623.222f, 1487.134f, 70.05901f },
    { -1629.727f, 1483.976f, 72.59077f },
    { -1630.914f, 1483.4f, 72.92308f },
    { -1632.244f, 1482.754f, 72.91827f },
    { -1636.865f, 1480.51f, 68.61356f },
    { -1638.087f, 1479.916f, 67.58314f },
    { -1638.852f, 1479.545f, 66.56925f },
    { -1638.852f, 1479.545f, 66.56925f },
};

uint32 const runtCathedralPathSize2 = 7;

Position const worgenRuntCathedralPath2[runtCathedralPathSize2] =
{
    { -1618.982f, 1489.76f, 68.56043f },
    { -1625.62f, 1487.033f, 71.4378f },
    { -1632.258f, 1484.306f, 74.31516f },
    { -1634.6f, 1483.343f, 72.61462f },
    { -1636.067f, 1482.741f, 70.69682f },
    { -1639.282f, 1481.42f, 66.99659f },
    { -1639.282f, 1481.42f, 66.99659f },
};

uint32 const runtCathedralPathSize3 = 6;

Position const worgenRuntCathedralPath3[runtCathedralPathSize3] =
{
    { -1637.957f, 1493.445f, 67.77746f },
    { -1638.569f, 1489.736f, 68.47077f },
    { -1639.182f, 1486.027f, 69.16409f },
    { -1640.578f, 1477.564f, 64.01109f },
    { -1640.676f, 1476.976f, 63.45144f },
    { -1640.676f, 1476.976f, 63.45144f },
};

uint32 const runtCathedralPathSize4 = 5;

Position const worgenRuntCathedralPath4[runtCathedralPathSize4] =
{
    { -1628.66f, 1482.281f, 71.34027f },
    { -1630.399f, 1481.66f, 71.33196f },
    { -1632.139f, 1481.039f, 71.32365f },
    { -1639.006f, 1478.586f, 65.77306f },
    { -1639.006f, 1478.586f, 65.77306f },
};


uint32 const runtCathedralPathSize5 = 9;

Position const worgenRuntCathedralPath5[runtCathedralPathSize5] =
{
    { -1620.279f, 1484.46f, 67.03528f },
    { -1622.424f, 1483.882f, 68.05564f },
    { -1624.568f, 1483.304f, 69.076f },
    { -1628.933f, 1482.127f, 70.91297f },
    { -1632.153f, 1481.259f, 71.52889f },
    { -1637.776f, 1479.743f, 67.45475f },
    { -1638.956f, 1479.425f, 66.41499f },
    { -1639.354f, 1479.318f, 65.98292f },
    { -1639.354f, 1479.318f, 65.98292f },
};

uint32 const runtCathedralPathSize6 = 10;

Position const worgenRuntCathedralPath6[runtCathedralPathSize6] =
{
    { -1633.998f, 1495.233f, 68.24403f },
    { -1634.344f, 1491.3f, 70.41303f },
    { -1634.689f, 1487.368f, 72.58203f },
    { -1634.735f, 1486.842f, 72.91134f },
    { -1634.837f, 1485.684f, 73.20835f },
    { -1634.987f, 1483.981f, 72.29824f },
    { -1635.084f, 1482.868f, 71.9163f },
    { -1635.166f, 1481.939f, 70.77574f },
    { -1635.809f, 1474.621f, 63.4636f },
    { -1635.809f, 1474.621f, 63.4636f },
};

uint32 const runtCathedralPathSize7 = 7;

Position const worgenRuntCathedralPath7[runtCathedralPathSize7] =
{
    { -1629.975f, 1494.066f, 70.64719f },
    { -1631.979f, 1491.585f, 71.31316f },
    { -1633.984f, 1489.104f, 71.97912f },
    { -1634.991f, 1487.856f, 72.09129f },
    { -1636.631f, 1485.826f, 71.53807f },
    { -1640.601f, 1480.912f, 65.49457f },
    { -1640.601f, 1480.912f, 65.49457f },
};

uint32 const runtCathedralPathSize8 = 8;

Position const worgenRuntCathedralPath8[runtCathedralPathSize8] =
{
    { -1620.879f, 1491.133f, 70.67613f },
    { -1622.665f, 1489.818f, 71.04526f },
    { -1624.451f, 1488.503f, 71.41438f },
    { -1630.469f, 1484.073f, 73.09648f },
    { -1631.376f, 1483.405f, 73.20229f },
    { -1632.245f, 1482.765f, 72.92912f },
    { -1635.605f, 1480.292f, 68.99215f },
    { -1635.605f, 1480.292f, 68.99215f },
};

Position const worgenRuntJumpPos[] =
{
    // Roof
    { -1694.03f, 1466.33f, 52.2872f },
    { -1688.92f, 1455.69f, 52.2871f },
    { -1699.46f, 1468.43f, 52.2871f },
    { -1697.73f, 1469.52f, 52.2871f },
    { -1701.65f, 1470.94f, 52.2871f },
    { -1693.91f, 1468.46f, 52.2872f },
    { -1697.30f, 1464.65f, 52.2871f },
    // Cathedral
    { -1681.57f, 1455.77f, 52.2871f },
    { -1677.47f, 1454.94f, 52.2871f },
    { -1677.71f, 1452.2f,  52.2871f },
    { -1677.66f, 1450.93f, 52.2871f },
    { -1672.56f, 1448.06f, 52.2871f },
    { -1683.13f, 1455.39f, 52.2871f },
    { -1669.81f, 1442.34f, 52.2871f },
    { -1674.15f, 1448.9f,  52.2871f },
};

/*######
## Quest 14293 - Save Krennan Aranas
######*/

uint32 const pathSize1 = 7;
Position const greymanesHorsePath1[pathSize1] =
{
    { -1797.425f, 1396.941f, 20.07336f },
    { -1788.675f, 1378.441f, 20.07336f },
    { -1780.925f, 1368.941f, 20.07336f },
    { -1767.425f, 1358.191f, 19.82336f },
    { -1746.425f, 1358.691f, 20.07336f },
    { -1726.175f, 1354.191f, 19.82336f },
    { -1709.064f, 1348.535f, 19.78232f }
};

uint32 const pathSize2 = 13;
Position const greymanesHorsePath2[] =
{
    { -1664.807f, 1345.011f, 15.48499f },
    { -1662.807f, 1354.511f, 15.48499f },
    { -1667.307f, 1362.511f, 15.48499f },
    { -1674.307f, 1363.761f, 15.48499f },
    { -1686.057f, 1355.011f, 15.48499f },
    { -1691.057f, 1347.261f, 15.48499f },
    { -1705.807f, 1350.011f, 19.98499f },
    { -1731.307f, 1360.011f, 19.98499f },
    { -1744.807f, 1370.511f, 20.23499f },
    { -1758.807f, 1389.511f, 19.98499f },
    { -1768.307f, 1410.011f, 19.98499f },
    { -1771.557f, 1423.011f, 19.98499f },
    { -1770.955f, 1430.332f, 19.83506f }
};

enum Events
{
    EVENT_ACTIVE_OBJECT_CD = 101,
    EVENT_ANIMATION_START,
    EVENT_ANIMATION_STOP,
    EVENT_ANIMATION_SUBJECT,
    EVENT_ATTACK_PART_00,
    EVENT_ATTACK_PART_01,
    EVENT_ATTACK_PART_02,
    EVENT_ATTACK_PART_03,
    EVENT_ATTACK_PART_04,
    EVENT_ATTACK_PART_05,
    EVENT_ATTACK_PART_06,
    EVENT_ATTACK_PART_07,
    EVENT_ATTACK_PART_08,
    EVENT_ATTACK_PART_09,
    EVENT_ATTACK_SPELL,
    EVENT_BALLON_MESSAGE,
    EVENT_BEGIN_FLYING,
    EVENT_BEGIN_LANDING,
    EVENT_CAST_BOULDER,
    EVENT_CAST_COOLDOWN,
    EVENT_CAST_COOLDOWN_01,
    EVENT_CAST_COOLDOWN_02,
    EVENT_CAST_COOLDOWN_03,
    EVENT_CAST_COOLDOWN_04,
    EVENT_CHANGE_PHASE,
    EVENT_CAST_PLAYER,
    EVENT_CAST_SPELL_00,
    EVENT_CAST_SPELL_01,
    EVENT_CHECK_ARRIVEL_PLAYER,
    EVENT_CHECK_ATTACK,
    EVENT_CHECK_AURA,
    EVENT_CHECK_BOAT,
    EVENT_CHECK_FIGHT,
    EVENT_CHECK_FIRE,
    EVENT_CHECK_FOLLOWING,
    EVENT_CHECK_FOR_CREATURE,
    EVENT_CHECK_FOR_PLAYER,
    EVENT_CHECK_PLAYER,
    EVENT_CHECK_PLAYER_NEAR,
    EVENT_CHECK_POSITION,
    EVENT_CHECK_START_PARTY,
    EVENT_CHECK_TIMEOUT,
    EVENT_CLEAR_INVITE,
    EVENT_COMBAT_STOP,
    EVENT_COOLDOWN_00,
    EVENT_COOLDOWN_01,
    EVENT_COOLDOWN_PLAYER_NEAR,
    EVENT_CREATE_WARRIER,
    EVENT_DELIVER_PACKET,
    EVENT_DESPAWN_PART_00,
    EVENT_DESPAWN_PART_01,
    EVENT_DESPAWN_PART_02,
    EVENT_DESPAWN_PART_03,
    EVENT_DESPAWN_PART_04,
    EVENT_EARTHQUAKE,
    EVENT_ENTER_CAR,
    EVENT_ENTER_VEHICLE,
    EVENT_EXIT_CAR,
    EVENT_EXIT_VEHICLE,
    EVENT_EXPLOSION,
    EVENT_FIGHT_PART_00,
    EVENT_FIGHT_PART_01,
    EVENT_FIGHT_PART_02,
    EVENT_FIGHT_PART_03,
    EVENT_FIND_TARGET,
    EVENT_FINISH,
    EVENT_GIVE_UP,
    EVENT_INIT_TARGET,
    EVENT_INIT_PLAYER,
    EVENT_INIT_VIDEO,
    EVENT_INIT_MOUNT,
    EVENT_INVISIBLE_OBJECT,
    EVENT_KILL_TARGET,
    EVENT_MASTER_RESET,
    EVENT_MELEE_ATTACK,
    EVENT_MOVE_ATTACK,
    EVENT_MOVE_HOME,
    EVENT_MOVE_PART0,
    EVENT_MOVE_PART1,
    EVENT_MOVE_PART2,
    EVENT_MOVE_PART3,
    EVENT_MOVE_PART4,
    EVENT_MOVE_PART5,
    EVENT_MOVE_PART6,
    EVENT_MOVE_PART7,
    EVENT_MOVEMENT_DELAY,
    EVENT_MOVEMENT_PAUSE,
    EVENT_MOVEMENT_START,
    EVENT_MOVEMENT_STOP,
    EVENT_MUSIC_PERIODIC,
    EVENT_PACKET_EXPLODE,
    EVENT_PERIODIC_CHEERING,
    EVENT_PARTY_COOLDOWN,
    EVENT_PHASE_UPDATE_00,
    EVENT_PLAY_COOLDOWN,
    EVENT_PLAY_PERIODIC_SOUND,
    EVENT_PLAY_PERIODIC_EMOTE,
    EVENT_PLAY_SOUND1,
    EVENT_PLAY_SOUND2,
    EVENT_PLAYING,
    EVENT_PLAYER_ENTER_VEHICLE,
    EVENT_PLAYER_EXIT,
    EVENT_PLAYER_LANDING,
    EVENT_PLAYER_LAUNCH,
    EVENT_RANDOM_EMOTE,
    EVENT_RANDOM_CAST,
    EVENT_RESET_TARGET,
    EVENT_RESTART,
    EVENT_RUN_AWAY,
    EVENT_SAY_ATTACK,
    EVENT_SAY_HAVE_UNDERSTAND,
    EVENT_SAY_OUTCH,
    EVENT_SAY_THANKS,
    EVENT_SET_ACTIVE_TO_TRUE,
    EVENT_SET_ACTIVE_TO_FALSE,
    EVENT_SHOOT,
    EVENT_SHOOT_ON_DUMMY,
    EVENT_SHOW_FIGHT,
    EVENT_SPAWN_OBJECT,
    EVENT_SPELLCAST,
    EVENT_START_ANIM,
    EVENT_START_ANIM_01,
    EVENT_START_ANIM_02,
    EVENT_START_ANIM_03,
    EVENT_START_ANIM_04,
    EVENT_START_ANIM_05,
    EVENT_START_ANIM_06,
    EVENT_START_ANIM_07,
    EVENT_START_ANIM_08,
    EVENT_START_ANIM_09,
    EVENT_START_ANIMATION_PACKET,
    EVENT_START_FIGHT,
    EVENT_START_FLY,
    EVENT_START_FLYING,
    EVENT_START_FOLLOW,
    EVENT_START_FOLLOWING,
    EVENT_START_MOVEMENT,
    EVENT_START_MOVIE,
    EVENT_START_PARTY,
    EVENT_START_PLAY,
    EVENT_START_PLAY_GAME,
    EVENT_START_RESCUE_LIVE,
    EVENT_START_SPELL_01,
    EVENT_START_SPELL_02,
    EVENT_START_SPELL_03,
    EVENT_START_SPELL_04,
    EVENT_START_SPELL_05,
    EVENT_START_TALK,
    EVENT_START_TELEPORT,
    EVENT_START_VIDEO,
    EVENT_START_WALK,
    EVENT_START_WAYPOINTS,
    EVENT_STOP_WAYPOINTS,
    EVENT_SUMMON_DEATHWING,
    EVENT_TALK,
    EVENT_TALK_COOLDOWN,
    EVENT_TALK_PART_00,
    EVENT_TALK_PART_01,
    EVENT_TALK_PART_02,
    EVENT_TALK_PART_03,
    EVENT_TALK_PART_04,
    EVENT_TALK_PART_05,
    EVENT_TALK_PART_06,
    EVENT_TALK_PART_07,
    EVENT_TALK_PART_08,
    EVENT_TALK_PART_09,
    EVENT_TALK_PART_10,
    EVENT_TALK_PART_11,
    EVENT_TALK_PART_12,
    EVENT_TALK_PART_13,
    EVENT_TALK_PART_14,
    EVENT_TALK_PART_15,
    EVENT_TALK_PART_16,
    EVENT_TALK_PART_17,
    EVENT_TALK_PART_18,
    EVENT_TALK_PART_19,
    EVENT_TALK_PART_20,
    EVENT_TALK_PART_21,
    EVENT_TALK_PART_22,
    EVENT_TALK_PART_23,
    EVENT_TALK_PART_24,
    EVENT_TALK_PART_25,
    EVENT_TALK_PERIODIC,
    EVENT_TALK_START,
    EVENT_TORCH_COOLDOWN,
    EVENT_TRIGGER_TRAP,
    EVENT_TELEPORT_00,
    EVENT_TELEPORT_01,
    EVENT_WAIT_FOR_NEW_SPEED,
    EVENT_WAIT_TO_MOVE,
    EVENT_WAIT_FOR_ACTION_00,
    EVENT_WAIT_FOR_ACTION_01,
    EVENT_WAIT_FOR_ACTION_02,
    EVENT_WAIT_FOR_ACTION_03,
    EVENT_WAIT_FOR_ACTION_04,
    EVENT_START_WALK_01,
    EVENT_START_WALK_02,
    EVENT_START_WALK_03,
    EVENT_START_WALK_04,
    EVENT_START_WALK_05,
    EVENT_START_WALK_06,
    EVENT_START_WALK_07,
    EVENT_START_WALK_08,
    EVENT_START_WALK_09,
    EVENT_WE_ARE_KILLED,
    ACTION_DELIVER_PACKET,
    ACTION_ENTER_CAR,
    ACTION_ERASE,
    ACTION_FOLLOW,
    ACTION_INSERT,
    ACTION_IS_PLAYER_NEAR,
    ACTION_MASTER_KILLED,
    ACTION_RESET_00,
    ACTION_RESET_01,
    ACTION_RESET_02,
    ACTION_RESET_03,
    ACTION_RUN_AWAY,
    ACTION_SIZE_OF_LIST,
    ACTION_START_ANIM_01,
    ACTION_START_ANIM_02,
    ACTION_START_ANIM_03,
    ACTION_START_ANIM_04,
    ACTION_START_ANIM_05,
    ACTION_START_ANIM_06,
    ACTION_START_ANIM_07,
    ACTION_START_ANIM_08,
    ACTION_START_ANIM_09,
    ACTION_START_HELP_PLAYER,
    ACTION_START_RESCUE_LIVE,
    ACTION_START_TALK,
    ACTION_START_WALK,
    ACTION_START_WALK_01,
    ACTION_START_WALK_02,
    ACTION_START_WALK_03,
    ACTION_START_WALK_04,
    ACTION_STOP_HELP_PLAYER,
    ACTION_TEST,
    ACTION_WALK_TO_HOME_POSITION,

    DATA_GET_EVENTID,
    DATA_GUARD_INDEX,

    PLAYER_GUID = 99991,
    PASSENGER_GUID = 99998,
};

#endif // GILNEAS_M_
