Core/Scripts: Modernize InstanceScript::Load*Some*Data arrays to use std::span instead of requiring a dummy end markers inside the arrays

This commit is contained in:
Shauren
2026-02-15 19:19:16 +01:00
parent bacbcb5c19
commit 44c0f51e65
78 changed files with 330 additions and 504 deletions

View File

@@ -152,7 +152,7 @@ GameObject* InstanceScript::GetGameObject(uint32 type)
return instance->GetGameObject(GetObjectGuid(type));
}
void InstanceScript::SetHeaders(std::string const& dataHeaders)
void InstanceScript::SetHeaders(std::string_view dataHeaders)
{
headers = dataHeaders;
}
@@ -169,48 +169,44 @@ void InstanceScript::LoadBossBoundaries(BossBoundaryData const& data)
bosses[entry.BossId].boundary.push_back(entry.Boundary);
}
void InstanceScript::LoadMinionData(MinionData const* data)
void InstanceScript::LoadDoorData(std::span<DoorData const> data)
{
while (data->entry)
{
if (data->bossId < bosses.size())
minions.try_emplace(data->entry, &bosses[data->bossId]);
for (DoorData const& door : data)
if (door.bossId < bosses.size())
doors.emplace(std::piecewise_construct, std::forward_as_tuple(door.entry), std::forward_as_tuple(&bosses[door.bossId], door.Behavior));
++data;
}
TC_LOG_DEBUG("scripts", "InstanceScript::LoadMinionData: {} minions loaded.", uint64(minions.size()));
}
void InstanceScript::LoadDoorData(DoorData const* data)
{
while (data->entry)
{
if (data->bossId < bosses.size())
doors.insert(std::make_pair(data->entry, DoorInfo(&bosses[data->bossId], data->Behavior)));
++data;
}
TC_LOG_DEBUG("scripts", "InstanceScript::LoadDoorData: {} doors loaded.", uint64(doors.size()));
}
void InstanceScript::LoadObjectData(ObjectData const* creatureData, ObjectData const* gameObjectData)
void InstanceScript::LoadObjectData(std::span<ObjectData const> creatureData, std::span<ObjectData const> gameObjectData)
{
if (creatureData)
LoadObjectData(creatureData, _creatureInfo);
if (gameObjectData)
LoadObjectData(gameObjectData, _gameObjectInfo);
LoadObjectData(creatureData, _creatureInfo);
LoadObjectData(gameObjectData, _gameObjectInfo);
TC_LOG_DEBUG("scripts", "InstanceScript::LoadObjectData: {} objects loaded.", _creatureInfo.size() + _gameObjectInfo.size());
}
void InstanceScript::LoadObjectData(ObjectData const* data, ObjectInfoMap& objectInfo)
void InstanceScript::LoadDungeonEncounterData(std::span<DungeonEncounterData const> encounters)
{
while (data->entry)
for (DungeonEncounterData const& encounter : encounters)
LoadDungeonEncounterData(encounter.BossId, encounter.DungeonEncounterId);
}
void InstanceScript::LoadMinionData(std::span<MinionData const> data)
{
for (MinionData const& minion : data)
if (minion.bossId < bosses.size())
minions.emplace(minion.entry, &bosses[minion.bossId]);
TC_LOG_DEBUG("scripts", "InstanceScript::LoadMinionData: {} minions loaded.", uint64(minions.size()));
}
void InstanceScript::LoadObjectData(std::span<ObjectData const> data, ObjectInfoMap& objectInfo)
{
for (ObjectData const& object : data)
{
bool inserted = objectInfo.try_emplace(data->entry, data->type).second;
bool inserted = objectInfo.emplace(object.entry, object.type).second;
ASSERT(inserted);
++data;
}
}

View File

@@ -25,6 +25,7 @@
#include <array>
#include <map>
#include <set>
#include <span>
#include <variant>
#ifdef TRINITY_API_USE_DYNAMIC_LINKING
@@ -319,18 +320,13 @@ class TC_GAME_API InstanceScript : public ZoneScript
std::vector<PersistentInstanceScriptValueBase*>& GetPersistentScriptValues() { return _persistentScriptValues; }
protected:
void SetHeaders(std::string const& dataHeaders);
void SetHeaders(std::string_view dataHeaders);
void SetBossNumber(uint32 number);
void LoadBossBoundaries(BossBoundaryData const& data);
void LoadDoorData(DoorData const* data);
void LoadMinionData(MinionData const* data);
void LoadObjectData(ObjectData const* creatureData, ObjectData const* gameObjectData);
template<typename T>
void LoadDungeonEncounterData(T const& encounters)
{
for (DungeonEncounterData const& encounter : encounters)
LoadDungeonEncounterData(encounter.BossId, encounter.DungeonEncounterId);
}
void LoadDoorData(std::span<DoorData const> data);
void LoadObjectData(std::span<ObjectData const> creatureData, std::span<ObjectData const> gameObjectData);
void LoadDungeonEncounterData(std::span<DungeonEncounterData const> encounters);
void LoadMinionData(std::span<MinionData const> data);
void AddObject(Creature* obj, bool add);
void AddObject(GameObject* obj, bool add);
@@ -354,7 +350,7 @@ class TC_GAME_API InstanceScript : public ZoneScript
bool _SkipCheckRequiredBosses(Player const* player = nullptr) const;
private:
static void LoadObjectData(ObjectData const* creatureData, ObjectInfoMap& objectInfo);
static void LoadObjectData(std::span<ObjectData const> creatureData, ObjectInfoMap& objectInfo);
void LoadDungeonEncounterData(uint32 bossId, std::array<uint32, MAX_DUNGEON_ENCOUNTERS_PER_BOSS> const& dungeonEncounterIds);
void UpdateLfgEncounterState(BossInfo const* bossInfo);

View File

@@ -20,24 +20,21 @@
#include "Creature.h"
#include "CreatureAI.h"
#include "InstanceScript.h"
#include "Map.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_GAROTHI_WORLDBREAKER, DATA_GAROTHI_WORLDBREAKER },
{ NPC_DECIMATOR, DATA_DECIMATOR },
{ NPC_ANNIHILATOR, DATA_ANNIHILATOR },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_COLLISION, DATA_GAROTHI_WORLDBREAKER, EncounterDoorBehavior::OpenWhenDone },
{ GO_ROCK, DATA_GAROTHI_WORLDBREAKER, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_GAROTHI_WORLDBREAKER, {{ 2076 }} },
{ DATA_FELHOUNDS_OF_SAGERAS, {{ 2074 }} },
@@ -63,7 +60,7 @@ class instance_antorus_the_burning_throne : public InstanceMapScript
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
}

View File

@@ -25,31 +25,28 @@ BossBoundaryData const boundaries =
{ DATA_AMALGAM_OF_SOULS, new CircleBoundary(Position(3251.350098f, 7582.790039f), 40.0f) }
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_AMALGAM_OF_SOULS, DATA_AMALGAM_OF_SOULS },
{ BOSS_ILLYSANNA_RAVENCREST, DATA_ILLYSANNA_RAVENCREST },
{ BOSS_SMASHPITE_THE_HATEFUL, DATA_SMASHPITE_THE_HATEFUL },
{ BOSS_LORD_KURTALOS_RAVENCREST, DATA_LORD_KURTALOS_RAVENCREST },
{ 0, 0 } // END
};
ObjectData const gameobjectData[] =
static constexpr ObjectData gameobjectData[] =
{
{ GO_BOSS_1_POST_BOSS_DOOR, DATA_BOSS_1_POST_BOSS_DOOR },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_BOSS_1_DOOR_1, DATA_AMALGAM_OF_SOULS, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_BOSS_1_DOOR_2, DATA_AMALGAM_OF_SOULS, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_BOSS_1_DOOR_3, DATA_AMALGAM_OF_SOULS, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_BOSS_1_DOOR_4, DATA_AMALGAM_OF_SOULS, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_AMALGAM_OF_SOULS, {{ 1832 }} },
{ DATA_ILLYSANNA_RAVENCREST, {{ 1833 }} },

View File

@@ -25,24 +25,22 @@ BossBoundaryData const boundaries =
{ DATA_KING_DEEPBEARD, new CircleBoundary(Position(-3448.65f, 4161.68f, 29.18f), 68.0f) }
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_WARLORD_PARJESH, DATA_WARLORD_PARJESH },
{ BOSS_LADY_HATECOIL, DATA_LADY_HATECOIL },
{ BOSS_KING_DEEPBEARD, DATA_KING_DEEPBEARD },
{ BOSS_SERPENTRIX, DATA_SERPENTRIX },
{ BOSS_WRATH_OF_AZSHARA, DATA_WRATH_OF_AZSHARA },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_WATER_DOOR_1, DATA_KING_DEEPBEARD, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_WATER_DOOR_2, DATA_KING_DEEPBEARD, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_WARLORD_PARJESH, {{ 1810 }} },
{ DATA_LADY_HATECOIL, {{ 1811 }} },
@@ -62,7 +60,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
LoadBossBoundaries(boundaries);

View File

@@ -25,20 +25,14 @@ BossBoundaryData const boundaries =
{ DATA_YMIRON, new CircleBoundary({ 7382.8168f, 7300.5527f }, 55.0f)}
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_YMIRON, DATA_YMIRON },
{ BOSS_HARBARON, DATA_HARBARON },
{ BOSS_HELYA, DATA_HELYA },
{ 0, 0 } // END
};
DoorData const doorData[] =
{
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_YMIRON, {{ 1822 }} },
{ DATA_HARBARON, {{ 1823 }} },
@@ -56,8 +50,8 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadDoorData(doorData);
LoadObjectData(creatureData, {});
//LoadDoorData(doorData);
LoadBossBoundaries(boundaries);
LoadDungeonEncounterData(encounters);
}

View File

@@ -25,16 +25,15 @@ BossBoundaryData const boundaries =
{ DATA_ROKMORA, new RectangleBoundary(2855.4377f, 2953.1074f, 1360.5552f, 1438.9974f) }
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_ROKMORA, DATA_ROKMORA },
{ BOSS_ULAROGG_CRAGSHAPER, DATA_ULAROGG_CRAGSHAPER },
{ BOSS_NARAXAS, DATA_NARAXAS },
{ BOSS_DARGRUL_THE_UNDERKING, DATA_DARGRUL_THE_UNDERKING },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_ROKMORA, {{ 1790 }} },
{ DATA_ULAROGG_CRAGSHAPER, {{ 1791 }} },
@@ -42,10 +41,9 @@ DungeonEncounterData const encounters[] =
{ DATA_DARGRUL_THE_UNDERKING, {{ 1793 }} },
};
static DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_MYSTIC_BARRIER, DATA_ROKMORA, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
class instance_neltharions_lair : public InstanceMapScript
@@ -59,7 +57,7 @@ class instance_neltharions_lair : public InstanceMapScript
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadBossBoundaries(boundaries);
LoadDungeonEncounterData(encounters);

View File

@@ -25,22 +25,20 @@ BossBoundaryData const boundaries =
{ DATA_GUARM, new RectangleBoundary(443.320f, 492.354f, 430.713f, 561.020f) }
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_ODYN, DATA_ODYN },
{ BOSS_GUARM, DATA_GUARM },
{ BOSS_HELYA, DATA_HELYA },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_GUARM_BOSS_DOOR_ENTRANCE, DATA_GUARM, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_GUARM_BOSS_DOOR_EXIT, DATA_GUARM, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_ODYN, {{ 1958 }} },
{ DATA_GUARM, {{ 1962 }} },
@@ -58,7 +56,7 @@ class instance_trial_of_valor : public InstanceMapScript
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadBossBoundaries(boundaries);
LoadDungeonEncounterData(encounters);

View File

@@ -19,23 +19,21 @@
#include "ScriptMgr.h"
#include "auchindoun.h"
constexpr ObjectData creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_VIGILANT_KAATHAR, DATA_VIGILANT_KAATHAR },
{ BOSS_SOULBINDER_NYAMI, DATA_SOULBINDER_NYAMI },
{ BOSS_AZZAKEL, DATA_AZZAKEL },
{ BOSS_TERONGOR, DATA_TERONGOR },
{ NPC_SOULBINDER_TUULANI, DATA_SOULBINDER_TUULANI },
{ 0, 0 } // END
};
constexpr ObjectData objectData[] =
static constexpr ObjectData objectData[] =
{
{ GO_HOLY_BARRIER, DATA_HOLY_BARRIER },
{ 0, 0 } // END
};
constexpr DungeonEncounterData encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_VIGILANT_KAATHAR, {{ 1678 }} },
{ DATA_SOULBINDER_NYAMI, {{ 1685 }} },

View File

@@ -20,7 +20,7 @@
#include "ScriptMgr.h"
#include "aberrus_the_shadowed_crucible.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_KAZZARA_THE_HELLFORGED, DATA_KAZZARA_THE_HELLFORGED },
{ BOSS_SHADOWFLAME_AMALGAMATION, DATA_THE_AMALGAMATION_CHAMBER },
@@ -32,22 +32,19 @@ ObjectData const creatureData[] =
{ BOSS_ECHO_OF_NELTHARION, DATA_ECHO_OF_NELTHARION },
{ BOSS_SCALECOMMANDER_SARKARETH, DATA_SCALECOMMANDER_SARKARETH },
{ NPC_SCALECOMMANDER_SARKARETH_AT_KAZZARA, DATA_SARKARETH_AT_KAZZARA },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_KAZZARA_DOOR, DATA_KAZZARA_THE_HELLFORGED, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const objectData[] =
static constexpr ObjectData objectData[] =
{
{ GO_KAZZARA_GATE, DATA_KAZZARA_GATE },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_KAZZARA_THE_HELLFORGED, {{ 2688 }} },
{ DATA_THE_AMALGAMATION_CHAMBER, {{ 2687 }} },

View File

@@ -34,14 +34,12 @@ static constexpr ObjectData creatureData[] =
{ BOSS_AZUREBLADE, DATA_AZUREBLADE },
{ BOSS_TELASH_GREYWING, DATA_TELASH_GREYWING },
{ BOSS_UMBRELSKUL, DATA_UMBRELSKUL },
{ 0, 0 } // END
};
static constexpr DoorData doorData[] =
{
{ GO_ARCANE_VAULTS_DOOR_LEYMOR_ENTRANCE, DATA_LEYMOR, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ARCANE_VAULTS_DOOR_LEYMOR_EXIT, DATA_LEYMOR, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
static constexpr DungeonEncounterData encounters[] =
@@ -63,7 +61,7 @@ class instance_azure_vault : public InstanceMapScript
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadBossBoundaries(boundaries);
LoadDungeonEncounterData(encounters);

View File

@@ -19,21 +19,19 @@
#include "ScriptMgr.h"
#include "ruby_life_pools.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_MELIDRUSSA_CHILLWORN, DATA_MELIDRUSSA_CHILLWORN },
{ BOSS_KOKIA_BLAZEHOOF, DATA_KOKIA_BLAZEHOOF },
{ BOSS_KYRAKKA, DATA_KYRAKKA_AND_ERKHART_STORMVEIN },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_FIRE_WALL, DATA_KOKIA_BLAZEHOOF, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_MELIDRUSSA_CHILLWORN, {{ 2609 }} },
{ DATA_KOKIA_BLAZEHOOF, {{ 2606 }} },
@@ -51,7 +49,7 @@ class instance_ruby_life_pools : public InstanceMapScript
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
}

View File

@@ -21,23 +21,21 @@
#include "InstanceScript.h"
#include "Map.h"
DoorData const doorData[] =
static constexpr DoorData const doorData[] =
{
{ GO_ARGALOTH_DOOR, BOSS_ARGALOTH, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_OCCUTHAR_DOOR, BOSS_OCCUTHAR, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ALIZABAL_DOOR, BOSS_ALIZABAL, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData const creatureData[] =
{
{ NPC_ARGALOTH, BOSS_ARGALOTH },
{ NPC_OCCUTHAR, BOSS_OCCUTHAR },
{ NPC_ALIZABAL, BOSS_ALIZABAL },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData const encounters[] =
{
{ BOSS_ARGALOTH, {{ 1033 }} },
{ BOSS_OCCUTHAR, {{ 1250 }} },
@@ -55,7 +53,7 @@ class instance_baradin_hold: public InstanceMapScript
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
}

View File

@@ -19,15 +19,14 @@
#include "bastion_of_twilight.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_HALFUS_WYRMBREAKER, BOSS_HALFUS_WYRMBREAKER },
{ NPC_CHOGALL, BOSS_CHOGALL },
{ NPC_SINESTRA, BOSS_SINESTRA },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_HALFUS_ENTRANCE, BOSS_HALFUS_WYRMBREAKER, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_HALFUS_EXIT, BOSS_HALFUS_WYRMBREAKER, EncounterDoorBehavior::OpenWhenDone },
@@ -36,10 +35,9 @@ DoorData const doorData[] =
{ GO_ASCENDANT_COUNCIL_ENTRANCE, BOSS_ASCENDANT_COUNCIL, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ASCENDANT_COUNCIL_EXIT, BOSS_ASCENDANT_COUNCIL, EncounterDoorBehavior::OpenWhenDone },
{ GO_CHOGALL_ENTRANCE, BOSS_CHOGALL, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_HALFUS_WYRMBREAKER, {{ 1030 }} },
{ BOSS_THERALION_AND_VALIONA, {{ 1032 }} },
@@ -59,7 +57,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
}

View File

@@ -19,13 +19,12 @@
#include "blackrock_caverns.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_RAZ_THE_CRAZED, DATA_RAZ_THE_CRAZED },
{ 0, 0 }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_ROMOGG_BONECRUSHER, {{ 1040 }} },
{ DATA_CORLA, {{ 1038 }} },
@@ -45,7 +44,7 @@ class instance_blackrock_caverns : public InstanceMapScript
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}

View File

@@ -28,7 +28,7 @@
uint32 const DragonspireMobs[3] = { NPC_BLACKHAND_DREADWEAVER, NPC_BLACKHAND_SUMMONER, NPC_BLACKHAND_VETERAN };
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_DOORS, DATA_PYROGAURD_EMBERSEER, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_EMBERSEER_OUT, DATA_PYROGAURD_EMBERSEER, EncounterDoorBehavior::OpenWhenDone },
@@ -36,7 +36,6 @@ DoorData const doorData[] =
{ GO_DRAKKISATH_DOOR_2, DATA_GENERAL_DRAKKISATH, EncounterDoorBehavior::OpenWhenDone },
{ GO_PORTCULLIS_ACTIVE, DATA_WARCHIEF_REND_BLACKHAND, EncounterDoorBehavior::OpenWhenDone },
{ GO_PORTCULLIS_TOBOSSROOMS, DATA_WARCHIEF_REND_BLACKHAND, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
static constexpr DungeonEncounterData Encounters[] =

View File

@@ -19,25 +19,23 @@
#include "blackwing_descent.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_MAGMAW, BOSS_MAGMAW },
{ NPC_CHIMAERON, BOSS_CHIMAERON },
{ NPC_ATRAMEDES, BOSS_ATRAMEDES },
{ NPC_MALORIAK, BOSS_MAGMAW },
{ NPC_NEFARIAN, BOSS_NEFARIANS_END },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_INNER_CHAMBER_DOOR, BOSS_MAGMAW, EncounterDoorBehavior::OpenWhenDone },
{ GO_INNER_CHAMBER_DOOR, BOSS_OMNOTRON_DEFENSE_SYSTEM, EncounterDoorBehavior::OpenWhenDone },
{ GO_ATHENAEUM_DOOR, BOSS_ATRAMEDES, EncounterDoorBehavior::OpenWhenInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_MAGMAW, {{ 1024 }} },
{ BOSS_OMNOTRON_DEFENSE_SYSTEM, {{ 1027 }} },
@@ -58,7 +56,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
}

View File

@@ -17,6 +17,7 @@
#include "ScriptMgr.h"
#include "blackwing_lair.h"
#include "Containers.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
@@ -25,7 +26,7 @@
#include "ScriptedCreature.h"
#include "TemporarySummon.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_PORTCULLIS_RAZORGORE, DATA_RAZORGORE_THE_UNTAMED, EncounterDoorBehavior::OpenWhenDone },
{ GO_PORTCULLIS_VAELASTRASZ, DATA_VAELASTRAZ_THE_CORRUPT, EncounterDoorBehavior::OpenWhenDone },
@@ -35,10 +36,9 @@ DoorData const doorData[] =
{ GO_PORTCULLIS_THREEDRAGONS, DATA_FLAMEGOR, EncounterDoorBehavior::OpenWhenDone },
{ GO_PORTCULLIS_CHROMAGGUS, DATA_CHROMAGGUS, EncounterDoorBehavior::OpenWhenDone },
{ GO_PORTCULLIS_NEFARIAN, DATA_NEFARIAN, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_RAZORGORE, DATA_RAZORGORE_THE_UNTAMED },
{ NPC_VAELASTRAZ, DATA_VAELASTRAZ_THE_CORRUPT },
@@ -49,16 +49,14 @@ ObjectData const creatureData[] =
{ NPC_CHROMAGGUS, DATA_CHROMAGGUS },
{ NPC_NEFARIAN, DATA_NEFARIAN },
{ NPC_VICTOR_NEFARIUS, DATA_LORD_VICTOR_NEFARIUS },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_CHROMAGGUS_DOOR, DATA_GO_CHROMAGGUS_DOOR },
{ 0, 0 } //END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_RAZORGORE_THE_UNTAMED, {{ 610 }} },
{ DATA_VAELASTRAZ_THE_CORRUPT, {{ 611 }} },
@@ -70,19 +68,19 @@ DungeonEncounterData const encounters[] =
{ DATA_NEFARIAN, {{ 617 }} }
};
Position const SummonPosition[8] =
static constexpr Position SummonPosition[8] =
{
{-7661.207520f, -1043.268188f, 407.199554f, 6.280452f},
{-7644.145020f, -1065.628052f, 407.204956f, 0.501492f},
{-7624.260742f, -1095.196899f, 407.205017f, 0.544694f},
{-7608.501953f, -1116.077271f, 407.199921f, 0.816443f},
{-7531.841797f, -1063.765381f, 407.199615f, 2.874187f},
{-7547.319336f, -1040.971924f, 407.205078f, 3.789175f},
{-7568.547852f, -1013.112488f, 407.204926f, 3.773467f},
{-7584.175781f, -989.6691289f, 407.199585f, 4.527447f},
{ -7661.207520f, -1043.268188f, 407.199554f, 6.280452f },
{ -7644.145020f, -1065.628052f, 407.204956f, 0.501492f },
{ -7624.260742f, -1095.196899f, 407.205017f, 0.544694f },
{ -7608.501953f, -1116.077271f, 407.199921f, 0.816443f },
{ -7531.841797f, -1063.765381f, 407.199615f, 2.874187f },
{ -7547.319336f, -1040.971924f, 407.205078f, 3.789175f },
{ -7568.547852f, -1013.112488f, 407.204926f, 3.773467f },
{ -7584.175781f, -989.6691289f, 407.199585f, 4.527447f },
};
uint32 const Entry[5] = {12422, 12458, 12416, 12420, 12459};
static constexpr uint32 Entry[5] = {12422, 12458, 12416, 12420, 12459};
class instance_blackwing_lair : public InstanceMapScript
{
@@ -272,7 +270,7 @@ public:
{
case EVENT_RAZOR_SPAWN:
for (uint8 i = urand(2, 5); i > 0; --i)
if (Creature* summon = instance->SummonCreature(Entry[urand(0, 4)], SummonPosition[urand(0, 7)]))
if (Creature* summon = instance->SummonCreature(Trinity::Containers::SelectRandomContainerElement(Entry), Trinity::Containers::SelectRandomContainerElement(SummonPosition)))
summon->AI()->DoZoneInCombat();
_events.ScheduleEvent(EVENT_RAZOR_SPAWN, 12s, 17s);
break;

View File

@@ -19,7 +19,7 @@
#include "deadmines.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_GLUBTOK, BOSS_GLUBTOK },
{ NPC_HELIX_GEARBREAKER, BOSS_HELIX_GEARBREAKER },
@@ -27,19 +27,17 @@ ObjectData const creatureData[] =
{ NPC_ADMIRAL_RIPSNARL, BOSS_ADMIRAL_RIPSNARL },
{ NPC_CAPTAIN_COOKIE, BOSS_CAPTAIN_COOKIE },
{ NPC_VANESSA_VAN_CLEEF, BOSS_VANESSA_VANCLEEF },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_FACTORY_DOOR, BOSS_GLUBTOK, EncounterDoorBehavior::OpenWhenDone },
{ GO_MAST_ROOM_DOOR, BOSS_HELIX_GEARBREAKER, EncounterDoorBehavior::OpenWhenDone },
{ GO_HEAVY_DOOR, BOSS_HELIX_GEARBREAKER, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_FOUNDRY_DOOR, BOSS_FOE_REAPER_5000, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenDone } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_GLUBTOK, {{ 2976, 2981 }} },
{ BOSS_HELIX_GEARBREAKER, {{ 2977, 2982 }} },
@@ -60,7 +58,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
}

View File

@@ -19,16 +19,15 @@
#include "grim_batol.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_GENERAL_UMBRISS, BOSS_GENERAL_UMBRISS },
{ NPC_FORGEMASTER_THRONGUS, BOSS_FORGEMASTER_THRONGUS },
{ NPC_DRAHGA_SHADOWBURNER, BOSS_DRAHGA_SHADOWBURNER },
{ NPC_ERUDAX, BOSS_ERUDAX },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_GENERAL_UMBRISS, {{ 1051 }} },
{ BOSS_FORGEMASTER_THRONGUS, {{ 1050 }} },
@@ -47,7 +46,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}
};

View File

@@ -32,7 +32,7 @@
3 - Kael'thas Sunstrider
*/
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_SELIN_FIREHEART, DATA_SELIN_FIREHEART },
{ BOSS_VEXALLUS, DATA_VEXALLUS },
@@ -40,26 +40,23 @@ ObjectData const creatureData[] =
{ BOSS_KAELTHAS_SUNSTRIDER, DATA_KAELTHAS_SUNSTRIDER },
{ NPC_KALECGOS, DATA_KALECGOS },
{ NPC_HUMAN_KALECGOS, DATA_KALECGOS },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_ESCAPE_ORB, DATA_ESCAPE_ORB },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_SUNWELL_RAID_GATE_2 , DATA_SELIN_FIREHEART, EncounterDoorBehavior::OpenWhenDone },
{ GO_ASSEMBLY_CHAMBER_DOOR, DATA_SELIN_FIREHEART, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_SUNWELL_RAID_GATE_5, DATA_VEXALLUS, EncounterDoorBehavior::OpenWhenDone },
{ GO_SUNWELL_RAID_GATE_4, DATA_PRIESTESS_DELRISSA, EncounterDoorBehavior::OpenWhenDone },
{ GO_ASYLUM_DOOR, DATA_KAELTHAS_SUNSTRIDER, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_SELIN_FIREHEART, {{ 1897 }} },
{ DATA_VEXALLUS, {{ 1898 }} },
@@ -67,8 +64,8 @@ DungeonEncounterData const encounters[] =
{ DATA_KAELTHAS_SUNSTRIDER, {{ 1894 }} }
};
Position const KalecgosSpawnPos = { 164.3747f, -397.1197f, 2.151798f, 1.66219f };
Position const KaelthasTrashGroupDistanceComparisonPos = { 150.0f, 141.0f, -14.4f };
static constexpr Position KalecgosSpawnPos = { 164.3747f, -397.1197f, 2.151798f, 1.66219f };
static constexpr Position KaelthasTrashGroupDistanceComparisonPos = { 150.0f, 141.0f, -14.4f };
class instance_magisters_terrace : public InstanceMapScript
{

View File

@@ -26,23 +26,21 @@ BossBoundaryData const boundaries =
{ DATA_SHADE_OF_MEDIVH, new CircleBoundary(Position(-4599.149902f, -2517.947266f, 2876.506836f), 35.0f) },
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_MAIDEN_OF_VIRTUE_RTK, DATA_MAIDEN_OF_VIRTUE_RTK },
{ BOSS_THE_CURATOR_RTK, DATA_THE_CURATOR_RTK },
{ BOSS_MANA_DEVOURER, DATA_MANA_DEVOURER },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_STRANGE_WALL, DATA_THE_CURATOR_RTK, EncounterDoorBehavior::OpenWhenDone },
{ GO_SUSPICIOUS_BOOKCASE, DATA_SHADE_OF_MEDIVH, EncounterDoorBehavior::OpenWhenDone },
{ GO_MEDIVH_DOOR, DATA_SHADE_OF_MEDIVH, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_OPERA_HALL, {{ 1957 }} },
{ DATA_MAIDEN_OF_VIRTUE_RTK, {{ 1954 }} },
@@ -66,7 +64,7 @@ class instance_return_to_karazhan : public InstanceMapScript
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadBossBoundaries(boundaries);
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);

View File

@@ -19,21 +19,19 @@
#include "ScriptMgr.h"
#include "scarlet_halls.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_HOUNDMASTER_BRAUN, DATA_HOUNDMASTER_BRAUN },
{ BOSS_ARMSMASTER_HARLAN, DATA_ARMSMASTER_HARLAN },
{ BOSS_FLAMEWEAVER_KOEGLER, DATA_FLAMEWEAVER_KOEGLER },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_HERODS_DOOR_HARLAN_ENCOUNTER_ENTRANCE, DATA_ARMSMASTER_HARLAN, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } //End
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_HOUNDMASTER_BRAUN, {{ 1422 }} },
{ DATA_ARMSMASTER_HARLAN, {{ 1421 }} },
@@ -51,7 +49,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
}

View File

@@ -30,7 +30,7 @@ Position const EarthBunnySpawnPosition = { 1765.28f, 1347.46f, 18.55f, 6.17f };
Position const HeadlessHorsemanSpawnPosition = { 1765.00f, 1347.00f, 15.00f };
Position const HeadlessHorsemanHeadSpawnPosition = { 1788.54f, 1348.05f, 18.88f }; // Guessed
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_HEADLESS_HORSEMAN_HEAD, DATA_HORSEMAN_HEAD },
{ NPC_HEADLESS_HORSEMAN, DATA_HEADLESS_HORSEMAN },
@@ -40,15 +40,13 @@ ObjectData const creatureData[] =
{ NPC_MOGRAINE, DATA_MOGRAINE },
{ NPC_VORREL, DATA_VORREL },
{ NPC_WHITEMANE, DATA_WHITEMANE },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_PUMPKIN_SHRINE, DATA_PUMPKIN_SHRINE },
{ GO_HIGH_INQUISITORS_DOOR, DATA_HIGH_INQUISITORS_DOOR },
{ GO_LOOSELY_TURNED_SOIL, DATA_LOOSELY_TURNED_SOIL },
{ 0, 0 } // END
};
static constexpr DungeonEncounterData Encounters[] =

View File

@@ -19,25 +19,23 @@
#include "shadowfang_keep.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_BARON_ASHBURY, BOSS_BARON_ASHBURY },
{ NPC_BARON_SILVERLAINE, BOSS_BARON_SILVERLAINE },
{ NPC_COMMANDER_SPRINGVALE, BOSS_COMMANDER_SPRINGVALE },
{ NPC_LORD_WALDEN, BOSS_LORD_WALDEN },
{ NPC_LORD_GODFREY, BOSS_LORD_GODFREY },
{ 0, 0 } // END
};
ObjectData const gameobjectData[] =
static constexpr ObjectData gameobjectData[] =
{
{ GO_COURTYARD_DOOR, DATA_COURTYARD_DOOR },
{ GO_SORCERERS_DOOR, DATA_SORCERER_GATE },
{ GO_ARUGALS_LAIR, DATA_ARUGAL_DOOR },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_BARON_ASHBURY, {{ 1069 }} },
{ BOSS_BARON_SILVERLAINE, {{ 1070 }} },

View File

@@ -32,7 +32,7 @@
5 - Kil'Jaeden
*/
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_FIRE_BARRIER, DATA_FELMYST, EncounterDoorBehavior::OpenWhenDone },
{ GO_MURUS_GATE_1, DATA_MURU, EncounterDoorBehavior::OpenWhenNotInProgress },
@@ -40,10 +40,9 @@ DoorData const doorData[] =
{ GO_BOSS_COLLISION_1, DATA_KALECGOS, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_BOSS_COLLISION_2, DATA_KALECGOS, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_FORCE_FIELD, DATA_KALECGOS, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_KALECGOS, DATA_KALECGOS_DRAGON },
{ NPC_KALECGOS_HUMAN, DATA_KALECGOS_HUMAN },
@@ -58,7 +57,6 @@ ObjectData const creatureData[] =
{ NPC_KILJAEDEN_CONTROLLER, DATA_KILJAEDEN_CONTROLLER },
{ NPC_ANVEENA, DATA_ANVEENA },
{ NPC_KALECGOS_KJ, DATA_KALECGOS_KJ },
{ 0, 0 } // END
};
BossBoundaryData const boundaries =
@@ -66,7 +64,7 @@ BossBoundaryData const boundaries =
{ DATA_KALECGOS, new BoundaryUnionBoundary(new CircleBoundary(Position(1704.9f, 928.4f), 34.0f), new RectangleBoundary(1689.2f, 1713.3f, 762.2f, 1074.8f)) }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_KALECGOS, {{ 724 }} },
{ DATA_BRUTALLUS, {{ 725 }} },
@@ -88,7 +86,7 @@ class instance_sunwell_plateau : public InstanceMapScript
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadDoorData(doorData);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadBossBoundaries(boundaries);
LoadDungeonEncounterData(encounters);
}

View File

@@ -19,16 +19,15 @@
#include "throne_of_the_tides.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData const creatureData[] =
{
{ NPC_LADY_NAZJAR, BOSS_LADY_NAZJAR },
{ NPC_COMMANDER_ULTHOK, BOSS_COMMANDER_ULTHOK },
{ NPC_MINDBENDER_GURSHA, BOSS_MINDBENDER_GURSHA },
{ NPC_OZUMAT, DATA_OZUMAT },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData const encounters[] =
{
{ BOSS_LADY_NAZJAR, {{ 1045 }} },
{ BOSS_COMMANDER_ULTHOK, {{ 1044 }} },
@@ -47,7 +46,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}
};

View File

@@ -20,17 +20,16 @@
#include "InstanceScript.h"
#include "ScriptMgr.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_VENOXIS_COIL, DATA_VENOXIS, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ARENA_DOOR_1, DATA_MANDOKIR, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_FORCEFIELD, DATA_KILNARA, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ZANZIL_DOOR, DATA_ZANZIL, EncounterDoorBehavior::OpenWhenNotInProgress },
//{ GO_THE_CACHE_OF_MADNESS_DOOR, DATA_xxxxxxx, EncounterStateForOpenDoor::NotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_VENOXIS, {{ 1178 }} },
{ DATA_MANDOKIR, {{ 1179 }} },

View File

@@ -15,27 +15,23 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Creature.h"
#include "CreatureAI.h"
#include "InstanceScript.h"
#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "darkmaul_citadel.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_TUNK, DATA_TUNK },
{ BOSS_GORGROTH, DATA_GORGROTH },
{ BOSS_RAVNYR, DATA_RAVNYR },
{ 0, 0 } // END
};
static DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_TEMP_DOOR, DATA_TUNK, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_TUNK, {{ 2325 }} },
{ DATA_RAVNYR, {{ 2326 }} }
@@ -52,7 +48,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
}

View File

@@ -44,7 +44,7 @@ enum Yells
YELL_ARCHIMONDE_INTRO = 8
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ RAGE_WINTERCHILL, DATA_RAGEWINTERCHILL },
{ ANETHERON, DATA_ANETHERON },
@@ -55,10 +55,9 @@ ObjectData const creatureData[] =
{ THRALL, DATA_THRALL },
{ TYRANDE, DATA_TYRANDEWHISPERWIND },
{ NPC_CHANNEL_TARGET, DATA_CHANNEL_TARGET },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_RAGEWINTERCHILL, {{ 618 }} },
{ DATA_ANETHERON, {{ 619 }} },
@@ -83,7 +82,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
RaidDamage = 0;

View File

@@ -120,14 +120,13 @@ enum COSMisc
WAVE_SALRAMM = 10
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_MALGANIS_GATE_2, DATA_MAL_GANIS, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_EXIT_GATE, DATA_MAL_GANIS, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_MEATHOOK, {{ 2002 }} },
{ DATA_SALRAMM, {{ 2004 }} },
@@ -168,11 +167,11 @@ COSProgressStates GetStableStateFor(COSProgressStates const state)
}
}
static Position const CorruptorPos = { 2331.642f, 1273.273f, 132.9524f, 3.717551f };
static Position const GuardianPos = { 2321.489f, 1268.383f, 132.8507f, 0.418879f };
static Position const CorruptorRiftPos = { 2443.626f, 1280.450f, 133.0066f, 1.727876f };
static constexpr Position CorruptorPos = { 2331.642f, 1273.273f, 132.9524f, 3.717551f };
static constexpr Position GuardianPos = { 2321.489f, 1268.383f, 132.8507f, 0.418879f };
static constexpr Position CorruptorRiftPos = { 2443.626f, 1280.450f, 133.0066f, 1.727876f };
static std::array<std::array<uint32, MAX_SPAWNS_PER_WAVE>, NUM_SCOURGE_WAVES> const HeroicWaves =
static constexpr std::array<std::array<uint32, MAX_SPAWNS_PER_WAVE>, NUM_SCOURGE_WAVES> HeroicWaves =
{
{
{ { NPC_DEVOURING_GHOUL, NPC_DEVOURING_GHOUL, NPC_DEVOURING_GHOUL } }, // wave 1
@@ -194,7 +193,7 @@ struct WaveLocation
std::array<Position, MAX_SPAWNS_PER_WAVE> SpawnPoints;
};
static const std::array<WaveLocation, WAVE_LOC_MAX - WAVE_LOC_MIN + 1> WaveLocations =
static constexpr std::array<WaveLocation, WAVE_LOC_MAX - WAVE_LOC_MIN + 1> WaveLocations =
{
{
{ // King's Square

View File

@@ -19,13 +19,12 @@
#include "end_time.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_MUROZOND, BOSS_MUROZOND },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_ECHO_OF_BAINE, {{ 1881 }} },
{ BOSS_ECHO_OF_SYLVANAS, {{ 1882 }} },
@@ -45,7 +44,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}
};

View File

@@ -19,13 +19,12 @@
#include "well_of_eternity.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_PEROTHARN, BOSS_PEROTHARN },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_PEROTHARN, {{ 1272 }} },
{ BOSS_QUEEN_AZSHARA, {{ 1273 }} },
@@ -43,7 +42,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}
};

View File

@@ -23,7 +23,7 @@
#include "InstanceScript.h"
#include "Map.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_ANHUURS_DOOR, BOSS_TEMPLE_GUARDIAN_ANHUUR, EncounterDoorBehavior::OpenWhenDone },
{ GO_ANHUURS_BRIDGE, BOSS_TEMPLE_GUARDIAN_ANHUUR, EncounterDoorBehavior::OpenWhenDone },
@@ -37,25 +37,22 @@ DoorData const doorData[] =
{ GO_DOODAD_ULDUM_LASERBEAMS_03, BOSS_WATER_WARDEN, EncounterDoorBehavior::OpenWhenDone },
{ GO_DOODAD_ULDUM_LIGHTMACHINE_04, BOSS_AIR_WARDEN, EncounterDoorBehavior::OpenWhenDone },
{ GO_DOODAD_ULDUM_LASERBEAMS_02, BOSS_AIR_WARDEN, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_TEMPLE_GUARDIAN_ANHUUR, BOSS_TEMPLE_GUARDIAN_ANHUUR },
{ NPC_ANRAPHET, BOSS_ANRAPHET },
{ NPC_EARTHRAGER_PTAH, BOSS_EARTHRAGER_PTAH },
{ NPC_BRANN_BRONZEBEARD_0, DATA_BRANN_BRONZEBEARD },
{ 0, 0 } //END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_LIFT_OF_THE_MAKERS, DATA_LIFT_OF_THE_MAKERS },
{ 0, 0 } //END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_TEMPLE_GUARDIAN_ANHUUR, {{ 1080 }} },
{ BOSS_EARTHRAGER_PTAH, {{ 1076 }} },

View File

@@ -24,17 +24,16 @@
#include "lost_city_of_the_tolvir.h"
#include "Map.h"
static constexpr ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_GENERAL_HUSAM, BOSS_GENERAL_HUSAM },
{ NPC_LOCKMAW, BOSS_LOCKMAW },
{ NPC_HIGH_PROPHET_BARIM, BOSS_HIGH_PROPHET_BARIM },
{ NPC_SIAMAT, BOSS_SIAMAT },
{ NPC_DUST_FLAIL, DATA_DUST_FLAIL },
{ 0, 0 } // End
};
static constexpr DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_GENERAL_HUSAM, {{ 1052 }} },
{ BOSS_LOCKMAW, {{ 1054 }} },
@@ -65,7 +64,7 @@ public:
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadDungeonEncounterData(encounters);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
}
void OnCreatureCreate(Creature* creature) override

View File

@@ -19,16 +19,15 @@
#include "InstanceScript.h"
#include "ragefire_chasm.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_ADAROGG, BOSS_ADAROGG },
{ NPC_DARK_SHAMAN_KORANTHAL, BOSS_DARK_SHAMAN_KORANTHAL },
{ NPC_SLAGMAW, BOSS_SLAGMAW },
{ NPC_LAVA_GUARD_GORDOTH, BOSS_LAVA_GUARD_GORDOTH },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_ADAROGG, {{ 1443 }} },
{ BOSS_DARK_SHAMAN_KORANTHAL, {{ 1444 }} },
@@ -47,7 +46,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}
};

View File

@@ -26,7 +26,7 @@ EndScriptData */
#include "InstanceScript.h"
#include "temple_of_ahnqiraj.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_VEM, DATA_VEM },
{ NPC_KRI, DATA_KRI },
@@ -34,19 +34,17 @@ ObjectData const creatureData[] =
{ NPC_VEKNILASH, DATA_VEKNILASH },
{ NPC_VISCIDUS, DATA_VISCIDUS },
{ NPC_SARTURA, DATA_SARTURA },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ AQ40_DOOR_1, DATA_SARTURA, EncounterDoorBehavior::OpenWhenDone },
{ AQ40_DOOR_1, DATA_HUHURAN, EncounterDoorBehavior::OpenWhenDone },
{ AQ40_DOOR_2, DATA_TWIN_EMPERORS, EncounterDoorBehavior::OpenWhenDone },
{ AQ40_DOOR_3, DATA_SKERAM, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_SKERAM, {{ 709 }} },
{ DATA_SARTURA, {{ 711 }} },
@@ -74,7 +72,7 @@ class instance_temple_of_ahnqiraj : public InstanceMapScript
instance_temple_of_ahnqiraj_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
{
SetHeaders(DataHeader);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
SetBossNumber(EncounterCount);
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);

View File

@@ -19,13 +19,12 @@
#include "throne_of_the_four_winds.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_ALAKIR, BOSS_ALAKIR },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_CONCLAVE_OF_WIND, {{ 1035 }} },
{ BOSS_ALAKIR, {{ 1034 }} }
@@ -42,7 +41,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}
};

View File

@@ -20,15 +20,14 @@
#include "Creature.h"
#include "InstanceScript.h"
ObjectData const creatureData[] =
static constexpr ObjectData const creatureData[] =
{
{ NPC_GRAND_VIZIER_ERTAN, BOSS_GRAND_VIZIER_ERTAN },
{ NPC_ALTAIRUS, BOSS_ALTAIRUS },
{ NPC_ASAAD, BOSS_ASAAD },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData const encounters[] =
{
{ BOSS_GRAND_VIZIER_ERTAN, {{ 1043 }} },
{ BOSS_ALTAIRUS, {{ 1041 }} },
@@ -36,8 +35,8 @@ DungeonEncounterData const encounters[] =
};
// These StringIds must be set in DB to properly identify the first and second landing zone for the entrance shortcut teleporters
constexpr std::string_view SlipStreamLandingZoneStringId1 = "vp_slipstream_landing_zone_1";
constexpr std::string_view SlipStreamLandingZoneStringId2 = "vp_slipstream_landing_zone_2";
static constexpr std::string_view SlipStreamLandingZoneStringId1 = "vp_slipstream_landing_zone_1";
static constexpr std::string_view SlipStreamLandingZoneStringId2 = "vp_slipstream_landing_zone_2";
class instance_vortex_pinnacle : public InstanceMapScript
{
@@ -50,7 +49,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}

View File

@@ -27,7 +27,6 @@ static constexpr ObjectData creatureData[] =
{ BOSS_THE_COAGLAMATION, DATA_THE_COAGLAMATION },
{ BOSS_IZO_THE_GRAND_SPLICER, DATA_IZO_THE_GRAND_SPLICER },
{ NPC_ORATOR_KRIX_VIZK_CONVO, DATA_ORATOR_CONVO },
{ 0, 0 } // END
};
static constexpr DungeonEncounterData const encounters[] =
@@ -49,7 +48,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}
};

View File

@@ -33,20 +33,17 @@ static constexpr ObjectData creatureData[] =
{ BOSS_NEXUS_PRINCESS_KYVEZA, DATA_NEXUS_PRINCESS_KYVEZA },
{ BOSS_ANUBARASH, DATA_THE_SILKEN_COURT },
{ BOSS_QUEEN_ANSUREK, DATA_QUEEN_ANSUREK },
{ 0, 0 } // END
};
static constexpr DoorData doorData[] =
{
{ GO_WEB_BRIDGE_ULGRAX_INTRO, DATA_WEB_BRIDGE_ULGRAX_INTRO, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
static constexpr ObjectData objectData[] =
{
{ GO_NERUBAR_PALACE_DOOR_INTRO, DATA_NERUBAR_PALACE_DOOR_INTRO },
{ GO_WEB_BRIDGE_ULGRAX_INTRO, DATA_WEB_BRIDGE_ULGRAX_INTRO },
{ 0, 0 } // END
};
static BossBoundaryData const boundaries =

View File

@@ -27,25 +27,23 @@ BossBoundaryData const boundaries =
{ DATA_EDNA, new CircleBoundary({ 0.0f, 0.0f }, 58.0f)}
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_EDNA, DATA_EDNA },
{ BOSS_SKARMORAX, DATA_SKARMORAK },
{ BOSS_SPEAKER_DORLITA, DATA_SPEAKER_DORLITA },
{ BOSS_SPEAKER_BROKK, DATA_SPEAKER_BROKK },
{ BOSS_VOID_SPEAKER_EIRICH, DATA_VOID_SPEAKER_EIRICH },
{ 0, 0 } // END
};
static DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_FOUNDRY_DOOR_ENTRANCE, DATA_EDNA, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_FOUNDRY_DOOR_TOWARDS_SKARMORAK, DATA_EDNA, EncounterDoorBehavior::OpenWhenDone },
{ GO_FOUNDRY_DOOR_TOWARDS_MACHINISTS, DATA_EDNA, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_EDNA, {{ 2854 }} },
{ DATA_SKARMORAK, {{ 2880 }} },
@@ -66,7 +64,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadBossBoundaries(boundaries);
LoadDungeonEncounterData(encounters);

View File

@@ -27,7 +27,7 @@ static BossBoundaryData const boundaries =
{ DATA_LORD_STORMSONG, new ZRangeBoundary(146.85f, 157.03f) }
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_AQUSIRR, DATA_AQUSIRR },
{ BOSS_BROTHER_IRONHULL, DATA_BROTHER_IRONHULL },
@@ -36,10 +36,9 @@ ObjectData const creatureData[] =
{ BOSS_VOLZITH_THE_WHISPERER, DATA_VOLZITH_THE_WHISPERER },
{ NPC_LORD_STORMSONG_BROTHER_PIKE, DATA_LORD_STORMSONG_BROTHER_PIKE },
{ NPC_LORD_STORMSONG_REXXAR, DATA_LORD_STORMSONG_REXXAR },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_AQUSIRR, {{ 2130 }} },
{ DATA_TIDESAGE_COUNCIL, {{ 2131 }} },
@@ -59,7 +58,7 @@ public:
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadBossBoundaries(boundaries);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
_lordStormsongIntroState = NOT_STARTED;

View File

@@ -27,7 +27,7 @@ static BossBoundaryData const boundaries =
{ DATA_LORD_AND_LADY_WAYCREST, new ZRangeBoundary(182.5f, 192.2f) }
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_SISTER_BRIAR, DATA_SISTER_BRIAR },
{ BOSS_SISTER_MALADY, DATA_SISTER_MALADY },
@@ -35,17 +35,15 @@ ObjectData const creatureData[] =
{ BOSS_SOULBOUND_GOLIATH, DATA_SOULBOUND_GOLIATH },
{ BOSS_LADY_WAYCREST, DATA_LADY_WAYCREST },
{ BOSS_LORD_WAYCREST, DATA_LORD_WAYCREST },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_HEARTSBANE_TRIAD_DOOR, DATA_HEARTSBANE_TRIAD, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_WAYCREST_ORGAN_BARRIER, DATA_LORD_AND_LADY_WAYCREST, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_HEARTSBANE_TRIAD, {{ 2113 }} },
{ DATA_SOULBOUND_GOLIATH, {{ 2114 }} },
@@ -65,7 +63,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadBossBoundaries(boundaries);
LoadDungeonEncounterData(encounters);

View File

@@ -35,7 +35,7 @@
// TO-DO:
// - Find out spell IDs for both Stonecore Teleporters (spellclick).
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_MILLHOUSE_MANASTORM, DATA_MILLHOUSE_MANASTORM },
{ NPC_CORBORUS, DATA_CORBORUS },
@@ -43,10 +43,9 @@ ObjectData const creatureData[] =
{ NPC_HIGH_PRIESTESS_AZIL, DATA_HIGH_PRIESTESS_AZIL },
{ NPC_STONECORE_TELEPORTER, DATA_STONECORE_TELEPORTER },
{ NPC_STONECORE_TELEPORTER_2, DATA_STONECORE_TELEPORTER_2 },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_CORBORUS, {{ 1056 }} },
{ DATA_SLABHIDE, {{ 1059 }} },
@@ -65,7 +64,7 @@ class instance_stonecore : public InstanceMapScript
{
SetHeaders(DataHeader);
SetBossNumber(MAX_ENCOUNTER);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}

View File

@@ -19,29 +19,25 @@
#include "AreaBoundary.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
#include "ScriptMgr.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_PRINCE_TALDARAM_GATE, DATA_PRINCE_TALDARAM, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_ELDER_NADOX, DATA_ELDER_NADOX },
{ NPC_PRINCE_TALDARAM, DATA_PRINCE_TALDARAM },
{ NPC_JEDOGA_SHADOWSEEKER, DATA_JEDOGA_SHADOWSEEKER },
{ NPC_AMANITAR, DATA_AMANITAR },
{ NPC_HERALD_VOLAZJ, DATA_HERALD_VOLAZJ },
{ 0, 0 }
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_PRINCE_TALDARAM_PLATFORM, DATA_PRINCE_TALDARAM_PLATFORM },
{ 0, 0 } //END
};
BossBoundaryData const boundaries =
@@ -49,7 +45,7 @@ BossBoundaryData const boundaries =
{ DATA_JEDOGA_SHADOWSEEKER, new ParallelogramBoundary(Position(460.365f, -661.997f, -20.985f), Position(364.958f,-790.211f, -14.207f), Position(347.436f,-657.978f,14.478f)) }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_ELDER_NADOX, {{ 1969 }} },
{ DATA_PRINCE_TALDARAM, {{ 1966 }} },

View File

@@ -22,16 +22,15 @@
#include "CreatureAI.h"
#include "InstanceScript.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_KRIKTHIR_DOOR, DATA_KRIKTHIR, EncounterDoorBehavior::OpenWhenDone },
{ GO_ANUBARAK_DOOR_1, DATA_ANUBARAK, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ANUBARAK_DOOR_2, DATA_ANUBARAK, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ANUBARAK_DOOR_3, DATA_ANUBARAK, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_KRIKTHIR, DATA_KRIKTHIR },
{ NPC_HADRONOX, DATA_HADRONOX },
@@ -39,14 +38,12 @@ ObjectData const creatureData[] =
{ NPC_WATCHER_NARJIL, DATA_WATCHER_GASHRA },
{ NPC_WATCHER_GASHRA, DATA_WATCHER_SILTHIK },
{ NPC_WATCHER_SILTHIK, DATA_WATCHER_NARJIL },
{ 0, 0 } // END
};
ObjectData const gameobjectData[] =
static constexpr ObjectData gameobjectData[] =
{
{ GO_ANUBARAK_DOOR_1, DATA_ANUBARAK_WALL },
{ GO_ANUBARAK_DOOR_3, DATA_ANUBARAK_WALL_2 },
{ 0, 0 } // END
};
BossBoundaryData const boundaries =
@@ -56,7 +53,7 @@ BossBoundaryData const boundaries =
{ DATA_ANUBARAK, new CircleBoundary(Position(550.6178f, 253.5917f), 26.0f) }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_KRIKTHIR, {{ 1971 }} },
{ DATA_HADRONOX, {{ 1972 }} },

View File

@@ -17,14 +17,14 @@
#include "ruby_sanctum.h"
#include "AreaBoundary.h"
#include "Creature.h"
#include "CreatureAI.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
#include "ScriptMgr.h"
#include "TemporarySummon.h"
Position const HalionControllerSpawnPos = { 3156.037f, 533.2656f, 72.97205f, 0.0f };
static constexpr Position HalionControllerSpawnPos = { 3156.037f, 533.2656f, 72.97205f, 0.0f };
BossBoundaryData const boundaries =
{
@@ -32,7 +32,7 @@ BossBoundaryData const boundaries =
{ DATA_HALION, new CircleBoundary(Position(3156.037f, 533.2656f), 52.5f) }
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_FIRE_FIELD, DATA_BALTHARUS_THE_WARBORN, EncounterDoorBehavior::OpenWhenDone },
{ GO_FLAME_WALLS, DATA_BALTHARUS_THE_WARBORN, EncounterDoorBehavior::OpenWhenDone },
@@ -40,10 +40,9 @@ DoorData const doorData[] =
{ GO_FLAME_WALLS, DATA_GENERAL_ZARITHRIAN, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_FLAME_RING, DATA_HALION, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_TWILIGHT_FLAME_RING, DATA_HALION, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_BALTHARUS_THE_WARBORN, DATA_BALTHARUS_THE_WARBORN },
{ NPC_BALTHARUS_THE_WARBORN_CLONE, DATA_BALTHARUS_CLONE },
@@ -56,10 +55,9 @@ ObjectData const creatureData[] =
{ NPC_ORB_CARRIER, DATA_ORB_CARRIER },
{ NPC_ORB_ROTATION_FOCUS, DATA_ORB_ROTATION_FOCUS },
{ NPC_XERESTRASZA, DATA_XERESTRASZA },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_FLAME_WALLS, DATA_FLAME_WALLS },
{ GO_BURNING_TREE_1, DATA_BURNING_TREE_1 },
@@ -68,10 +66,9 @@ ObjectData const gameObjectData[] =
{ GO_BURNING_TREE_4, DATA_BURNING_TREE_4 },
{ GO_FLAME_RING, DATA_FLAME_RING },
{ GO_TWILIGHT_FLAME_RING, DATA_TWILIGHT_FLAME_RING },
{ 0, 0 } //END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_BALTHARUS_THE_WARBORN, {{ 1147 }} },
{ DATA_SAVIANA_RAGEFIRE, {{ 1149 }} },

View File

@@ -23,12 +23,11 @@
#include "Map.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "TemporarySummon.h"
#include "trial_of_the_crusader.h"
// ToDo: Remove magic numbers of events
BossBoundaryData const boundaries =
static BossBoundaryData const boundaries =
{
{ DATA_NORTHREND_BEASTS, new CircleBoundary(Position(563.26f, 139.6f), 75.0f) },
{ DATA_JARAXXUS, new CircleBoundary(Position(563.26f, 139.6f), 75.0f) },
@@ -37,7 +36,7 @@ BossBoundaryData const boundaries =
{ DATA_ANUBARAK, new EllipseBoundary(Position(746.0f, 135.0f), 100.0f, 75.0f) }
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_GORMOK, DATA_GORMOK_THE_IMPALER },
{ NPC_ACIDMAW, DATA_ACIDMAW },
@@ -57,10 +56,9 @@ ObjectData const creatureData[] =
{ NPC_GARROSH, DATA_GARROSH },
{ NPC_FIZZLEBANG, DATA_FIZZLEBANG },
{ NPC_LICH_KING_VOICE, DATA_LICH_KING_VOICE },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_CRUSADERS_CACHE_10, DATA_CRUSADERS_CHEST },
{ GO_CRUSADERS_CACHE_25, DATA_CRUSADERS_CHEST },
@@ -78,10 +76,9 @@ ObjectData const gameObjectData[] =
{ GO_TRIBUTE_CHEST_25H_45, DATA_TRIBUTE_CHEST },
{ GO_TRIBUTE_CHEST_25H_50, DATA_TRIBUTE_CHEST },
{ GO_TRIBUTE_CHEST_25H_99, DATA_TRIBUTE_CHEST },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_EAST_PORTCULLIS, DATA_NORTHREND_BEASTS, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_EAST_PORTCULLIS, DATA_JARAXXUS, EncounterDoorBehavior::OpenWhenNotInProgress },
@@ -89,10 +86,9 @@ DoorData const doorData[] =
{ GO_EAST_PORTCULLIS, DATA_TWIN_VALKIRIES, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_EAST_PORTCULLIS, DATA_LICH_KING, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_WEB_DOOR, DATA_ANUBARAK, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_NORTHREND_BEASTS, {{ 1088 }} },
{ DATA_JARAXXUS, {{ 1087 }} },

View File

@@ -23,19 +23,18 @@
#include "TemporarySummon.h"
// positions for Martin Victus (37591) and Gorkun Ironskull (37592)
Position const SlaveLeaderPos = {689.7158f, -104.8736f, 513.7360f, 0.0f};
static constexpr Position SlaveLeaderPos = {689.7158f, -104.8736f, 513.7360f, 0.0f};
// position for Jaina and Sylvanas
Position const EventLeaderPos2 = {1054.368f, 107.14620f, 628.4467f, 0.0f};
static constexpr Position EventLeaderPos2 = {1054.368f, 107.14620f, 628.4467f, 0.0f};
DoorData const Doors[] =
static constexpr DoorData Doors[] =
{
{ GO_ICE_WALL, DATA_GARFROST, EncounterDoorBehavior::OpenWhenDone },
{ GO_ICE_WALL, DATA_ICK, EncounterDoorBehavior::OpenWhenDone },
{ GO_HALLS_OF_REFLECTION_PORTCULLIS, DATA_TYRANNUS, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_GARFROST, {{ 1999 }} },
{ DATA_ICK, {{ 2001 }} },

View File

@@ -24,23 +24,21 @@
#include "Map.h"
#include "ScriptMgr.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_GAL_DARAH_DOOR_1, DATA_GAL_DARAH, EncounterDoorBehavior::OpenWhenDone },
{ GO_GAL_DARAH_DOOR_2, DATA_GAL_DARAH, EncounterDoorBehavior::OpenWhenDone },
{ GO_GAL_DARAH_DOOR_3, DATA_GAL_DARAH, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ECK_THE_FEROCIOUS_DOOR, DATA_MOORABI, EncounterDoorBehavior::OpenWhenDone },
{ GO_ECK_THE_FEROCIOUS_DOOR_BEHIND, DATA_ECK_THE_FEROCIOUS, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_DRAKKARI_COLOSSUS, DATA_DRAKKARI_COLOSSUS },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_SLAD_RAN_ALTAR, DATA_SLAD_RAN_ALTAR },
{ GO_MOORABI_ALTAR, DATA_MOORABI_ALTAR },
@@ -51,10 +49,9 @@ ObjectData const gameObjectData[] =
{ GO_GAL_DARAH_STATUE, DATA_GAL_DARAH_STATUE },
{ GO_TRAPDOOR, DATA_TRAPDOOR },
{ GO_COLLISION, DATA_COLLISION },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_SLAD_RAN, {{ 1978 }} },
{ DATA_DRAKKARI_COLOSSUS, {{ 1983 }} },
@@ -63,7 +60,7 @@ DungeonEncounterData const encounters[] =
{ DATA_ECK_THE_FEROCIOUS, {{ 1988 }} }
};
Position const EckSpawnPoint = { 1643.877930f, 936.278015f, 107.204948f, 0.668432f };
static constexpr Position EckSpawnPoint = { 1643.877930f, 936.278015f, 107.204948f, 0.668432f };
class instance_gundrak : public InstanceMapScript
{

View File

@@ -74,7 +74,7 @@ BossBoundaryData const boundaries =
{ DATA_SINDRAGOSA, new EllipseBoundary(Position(4408.6f, 2484.0f), 100.0f, 75.0f) }
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_LORD_MARROWGAR_S_ENTRANCE, DATA_LORD_MARROWGAR, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ICEWALL, DATA_LORD_MARROWGAR, EncounterDoorBehavior::OpenWhenDone },
@@ -101,10 +101,9 @@ DoorData const doorData[] =
{ GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR, DATA_SINDRAGOSA, EncounterDoorBehavior::OpenWhenDone },
{ GO_ICE_WALL, DATA_SINDRAGOSA, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ICE_WALL, DATA_SINDRAGOSA, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_LORD_MARROWGAR, {{ 1101 }} },
{ DATA_LADY_DEATHWHISPER, {{ 1100 }} },
@@ -121,10 +120,10 @@ DungeonEncounterData const encounters[] =
};
// NPCs spawned at Light's Hammer on Lich King dead
Position const JainaSpawnPos = { -48.65278f, 2211.026f, 27.98586f, 3.124139f };
Position const MuradinSpawnPos = { -47.34549f, 2208.087f, 27.98586f, 3.106686f };
Position const UtherSpawnPos = { -26.58507f, 2211.524f, 30.19898f, 3.124139f };
Position const SylvanasSpawnPos = { -41.45833f, 2222.891f, 27.98586f, 3.647738f };
static constexpr Position JainaSpawnPos = { -48.65278f, 2211.026f, 27.98586f, 3.124139f };
static constexpr Position MuradinSpawnPos = { -47.34549f, 2208.087f, 27.98586f, 3.106686f };
static constexpr Position UtherSpawnPos = { -26.58507f, 2211.524f, 30.19898f, 3.124139f };
static constexpr Position SylvanasSpawnPos = { -41.45833f, 2222.891f, 27.98586f, 3.647738f };
class instance_icecrown_citadel : public InstanceMapScript
{

View File

@@ -58,7 +58,7 @@ BossBoundaryData const boundaries =
{ BOSS_KELTHUZAD, new CircleBoundary(Position(3716.0f, -5107.0f), 85.0f) }
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_ROOM_ANUBREKHAN, BOSS_ANUBREKHAN, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_PASSAGE_ANUBREKHAN, BOSS_ANUBREKHAN, EncounterDoorBehavior::OpenWhenDone },
@@ -93,20 +93,18 @@ DoorData const doorData[] =
{ GO_MILI_EYE_RAMP_BOSS, BOSS_HORSEMEN, EncounterDoorBehavior::OpenWhenDone },
{ GO_CONS_EYE_RAMP, BOSS_THADDIUS, EncounterDoorBehavior::OpenWhenDone },
{ GO_CONS_EYE_RAMP_BOSS, BOSS_THADDIUS, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
ObjectData const objectData[] =
static constexpr ObjectData objectData[] =
{
{ GO_NAXX_PORTAL_ARACHNID, DATA_NAXX_PORTAL_ARACHNID },
{ GO_NAXX_PORTAL_CONSTRUCT, DATA_NAXX_PORTAL_CONSTRUCT },
{ GO_NAXX_PORTAL_PLAGUE, DATA_NAXX_PORTAL_PLAGUE },
{ GO_NAXX_PORTAL_MILITARY, DATA_NAXX_PORTAL_MILITARY },
{ GO_KELTHUZAD_THRONE, DATA_KELTHUZAD_THRONE },
{ 0, 0, }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ BOSS_ANUBREKHAN, {{ 1107 }} },
{ BOSS_FAERLINA, {{ 1110 }} },
@@ -138,7 +136,7 @@ class instance_naxxramas : public InstanceMapScript
SetBossNumber(EncounterCount);
LoadBossBoundaries(boundaries);
LoadDoorData(doorData);
LoadObjectData(nullptr, objectData);
LoadObjectData({}, objectData);
LoadDungeonEncounterData(encounters);
hadSapphironBirth = false;

View File

@@ -27,13 +27,12 @@
#include "PhasingHandler.h"
#include "TemporarySummon.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_DRAGON_CAGE_DOOR, DATA_DRAKOS, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_DRAKOS, {{ 528, 529, 2016 }} },
{ DATA_VAROS, {{ 530, 531, 2015 }} },
@@ -41,9 +40,9 @@ DungeonEncounterData const encounters[] =
{ DATA_EREGOS, {{ 534, 535, 2013 }} }
};
Position const VerdisaMove = { 949.188f, 1032.91f, 359.967f, 1.093027f };
Position const BelgaristraszMove = { 941.453f, 1044.1f, 359.967f, 0.1984709f };
Position const EternosMove = { 943.202f, 1059.35f, 359.967f, 5.757278f };
static constexpr Position VerdisaMove = { 949.188f, 1032.91f, 359.967f, 1.093027f };
static constexpr Position BelgaristraszMove = { 941.453f, 1044.1f, 359.967f, 0.1984709f };
static constexpr Position EternosMove = { 943.202f, 1059.35f, 359.967f, 5.757278f };
class instance_oculus : public InstanceMapScript
{

View File

@@ -21,17 +21,15 @@
#include "GameObject.h"
#include "halls_of_lightning.h"
#include "InstanceScript.h"
#include "Map.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_VOLKHAN_DOOR, DATA_VOLKHAN, EncounterDoorBehavior::OpenWhenDone },
{ GO_IONAR_DOOR, DATA_IONAR, EncounterDoorBehavior::OpenWhenDone },
{ GO_LOKEN_DOOR, DATA_LOKEN, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_GENERAL_BJARNGRIM, DATA_GENERAL_BJARNGRIM },
{ NPC_VOLKHAN, DATA_VOLKHAN },
@@ -39,17 +37,15 @@ ObjectData const creatureData[] =
{ NPC_LOKEN, DATA_LOKEN },
{ NPC_INVISIBLE_STALKER, DATA_INVISIBLE_STALKER },
{ NPC_VOLKHANS_ANVIL, DATA_VOLKHANS_ANVIL },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_VOLKHAN_TEMPER_VISUAL, DATA_VOLKHAN_TEMPER_VISUAL },
{ GO_LOKEN_THRONE, DATA_LOKEN_GLOBE },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_GENERAL_BJARNGRIM, {{ 1987 }} },
{ DATA_VOLKHAN, {{ 1985 }} },

View File

@@ -16,19 +16,16 @@
*/
#include "ScriptMgr.h"
#include "Creature.h"
#include "GameObject.h"
#include "halls_of_stone.h"
#include "InstanceScript.h"
#include "Map.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_SJONNIR_DOOR, DATA_TRIBUNAL_OF_AGES, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_KRYSTALLUS, DATA_KRYSTALLUS },
{ NPC_MAIDEN_OF_GRIEF, DATA_MAIDEN_OF_GRIEF },
@@ -36,10 +33,9 @@ ObjectData const creatureData[] =
{ NPC_KADDRAK, DATA_KADDRAK },
{ NPC_MARNAK, DATA_MARNAK },
{ NPC_ABEDNEUM, DATA_ABEDNEUM },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_KADDRAK, DATA_GO_KADDRAK },
{ GO_MARNAK, DATA_GO_MARNAK },
@@ -48,10 +44,9 @@ ObjectData const gameObjectData[] =
{ GO_TRIBUNAL_SKY_FLOOR, DATA_GO_SKY_FLOOR },
{ GO_TRIBUNAL_CHEST, DATA_GO_TRIBUNAL_CHEST },
{ GO_TRIBUNAL_CHEST_HERO, DATA_GO_TRIBUNAL_CHEST },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_KRYSTALLUS, {{ 1994 }} },
{ DATA_MAIDEN_OF_GRIEF, {{ 1996 }} },

View File

@@ -45,7 +45,7 @@ static BossBoundaryData const boundaries =
{ DATA_YOGG_SARON, new CircleBoundary(Position(1980.42f, -27.68f), 105.0f) }
};
static DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_LEVIATHAN_DOOR, DATA_FLAME_LEVIATHAN, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_XT_002_DOOR, DATA_XT002, EncounterDoorBehavior::OpenWhenNotInProgress },
@@ -69,18 +69,16 @@ static DoorData const doorData[] =
{ GO_DOODAD_UL_UNIVERSEFLOOR_02, DATA_ALGALON, EncounterDoorBehavior::OpenWhenInProgress },
{ GO_DOODAD_UL_UNIVERSEGLOBE01, DATA_ALGALON, EncounterDoorBehavior::OpenWhenInProgress },
{ GO_DOODAD_UL_ULDUAR_TRAPDOOR_03, DATA_ALGALON, EncounterDoorBehavior::OpenWhenInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress },
};
MinionData const minionData[] =
static constexpr MinionData minionData[] =
{
{ NPC_STEELBREAKER, DATA_ASSEMBLY_OF_IRON },
{ NPC_MOLGEIM, DATA_ASSEMBLY_OF_IRON },
{ NPC_BRUNDIR, DATA_ASSEMBLY_OF_IRON },
{ 0, 0 } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_FLAME_LEVIATHAN, DATA_FLAME_LEVIATHAN },
{ NPC_IGNIS, DATA_IGNIS },
@@ -114,10 +112,9 @@ ObjectData const creatureData[] =
{ NPC_BRONZEBEARD_RADIO, DATA_BRONZEBEARD_RADIO },
{ NPC_HEART_OF_DECONSTRUCTOR, DATA_XT002_HEART },
{ NPC_AZEROTH, DATA_AZEROTH },
{ 0, 0, }
};
ObjectData const objectData[] =
static constexpr ObjectData objectData[] =
{
{ GO_MIMIRON_ELEVATOR, DATA_MIMIRON_ELEVATOR },
{ GO_MIMIRON_BUTTON, DATA_MIMIRON_BUTTON },
@@ -137,10 +134,9 @@ ObjectData const objectData[] =
{ GO_DOODAD_UL_UNIVERSEFLOOR_02, DATA_UNIVERSE_FLOOR_02 },
{ GO_GIFT_OF_THE_OBSERVER_10, DATA_GIFT_OF_THE_OBSERVER },
{ GO_GIFT_OF_THE_OBSERVER_25, DATA_GIFT_OF_THE_OBSERVER },
{ 0, 0 }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_FLAME_LEVIATHAN, {{ 1132 }} },
{ DATA_IGNIS, {{ 1136 }} },

View File

@@ -21,21 +21,19 @@
#include "InstanceScript.h"
#include "utgarde_keep.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_GIANT_PORTCULLIS_1, DATA_INGVAR, EncounterDoorBehavior::OpenWhenDone },
{ GO_GIANT_PORTCULLIS_2, DATA_INGVAR, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
MinionData const minionData[] =
static constexpr MinionData minionData[] =
{
{ NPC_SKARVALD, DATA_SKARVALD_DALRONN },
{ NPC_DALRONN, DATA_SKARVALD_DALRONN },
{ 0, 0 }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_PRINCE_KELESETH, {{ 2026 }} },
{ DATA_SKARVALD_DALRONN, {{ 2024 }} },

View File

@@ -26,14 +26,13 @@ BossBoundaryData const boundaries =
{ DATA_KING_YMIRON, new RectangleBoundary(340.0f, 443.0f, -412.0f, -275.0f) }
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_SKADI_THE_RUTHLESS_DOOR, DATA_SKADI_THE_RUTHLESS, EncounterDoorBehavior::OpenWhenDone },
{ GO_KING_YMIRON_DOOR, DATA_KING_YMIRON, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_SVALA_SORROWGRAVE, DATA_SVALA_SORROWGRAVE },
{ NPC_GORTOK_PALEHOOF, DATA_GORTOK_PALEHOOF },
@@ -46,17 +45,15 @@ ObjectData const creatureData[] =
{ NPC_PALEHOOF_ORB, DATA_GORTOK_ORB },
{ NPC_SVALA, DATA_SVALA },
{ NPC_GRAUF, DATA_GRAUF },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_UTGARDE_MIRROR, DATA_UTGARDE_MIRROR },
{ GO_GORTOK_PALEHOOF_SPHERE, DATA_GORTOK_PALEHOOF_SPHERE },
{ 0, 0 } //END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_SVALA_SORROWGRAVE, {{ 2030 }} },
{ DATA_GORTOK_PALEHOOF, {{ 2027 }} },

View File

@@ -27,16 +27,15 @@
4 - Toravon the Ice Watcher event
*/
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_ARCHAVON, DATA_ARCHAVON },
{ NPC_EMALON, DATA_EMALON },
{ NPC_KORALON, DATA_KORALON },
{ NPC_TORAVON, DATA_TORAVON },
{ 0, 0, }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ NPC_ARCHAVON, {{ 1126 }} },
{ NPC_EMALON, {{ 1127 }} },
@@ -55,7 +54,7 @@ class instance_vault_of_archavon : public InstanceMapScript
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
ArchavonDeath = 0;

View File

@@ -35,13 +35,12 @@
Position const DefenseSystemLocation = { 1888.146f, 803.382f, 58.60389f, 3.071779f }; // sniff
Position const CyanigosaSpawnLocation = { 1922.109f, 804.4493f, 52.49254f, 3.176499f }; // sniff
Position const CyanigosaJumpLocation = { 1888.32f, 804.473f, 38.3578f, 0.0f }; // sniff
static constexpr Position CyanigosaSpawnLocation = { 1922.109f, 804.4493f, 52.49254f, 3.176499f }; // sniff
static constexpr Position CyanigosaJumpLocation = { 1888.32f, 804.473f, 38.3578f, 0.0f }; // sniff
Position const SaboteurSpawnLocation = { 1886.251f, 803.0743f, 38.42326f, 3.211406f }; // sniff
static constexpr Position SaboteurSpawnLocation = { 1886.251f, 803.0743f, 38.42326f, 3.211406f }; // sniff
uint32 const PortalPositionsSize = 5;
Position const PortalPositions[PortalPositionsSize] = // sniff
static constexpr Position PortalPositions[] = // sniff
{
{ 1877.523f, 850.1788f, 45.36822f, 4.34587f }, // 0
{ 1890.679f, 753.4202f, 48.771f, 1.675516f }, // 1
@@ -50,16 +49,14 @@ Position const PortalPositions[PortalPositionsSize] = // sniff
{ 1907.288f, 831.1111f, 40.22015f, 3.560472f } // 4
};
uint32 const PortalElitePositionsSize = 3;
Position const PortalElitePositions[PortalElitePositionsSize] = // sniff
static constexpr Position PortalElitePositions[] = // sniff
{
{ 1911.281f, 800.9722f, 39.91673f, 3.01942f }, // 5
{ 1926.516f, 763.6616f, 52.35725f, 2.251475f }, // 6
{ 1922.464f, 847.0699f, 48.50161f, 3.961897f } // 7
};
uint32 const PortalIntroPositionsSize = 5;
Position const PortalIntroPositions[PortalIntroPositionsSize] = // sniff
Position const PortalIntroPositions[] = // sniff
{
{ 1877.51f, 850.1042f, 44.65989f, 4.782202f }, // 0 - Intro
{ 1890.637f, 753.4705f, 48.72239f, 1.710423f }, // 1 - Intro
@@ -68,7 +65,7 @@ Position const PortalIntroPositions[PortalIntroPositionsSize] = // sniff
{ 1924.096f, 804.3707f, 54.29256f, 3.228859f } // 4 - Boss 3
};
uint32 const EncouterPortalsCount = PortalPositionsSize + PortalElitePositionsSize;
static constexpr uint32 EncouterPortalsCount = std::ranges::size(PortalPositions) + std::ranges::size(PortalElitePositions);
WaypointPath const MoraggPath = // sniff
{
@@ -180,7 +177,7 @@ enum Spells
SPELL_ZURAMAT_COSMETIC_CHANNEL_OMNI = 57552
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_XEVOZZ, DATA_XEVOZZ },
{ NPC_LAVANTHOR, DATA_LAVANTHOR },
@@ -191,10 +188,9 @@ ObjectData const creatureData[] =
{ NPC_CYANIGOSA, DATA_CYANIGOSA },
{ NPC_SINCLARI, DATA_SINCLARI },
{ NPC_SINCLARI_TRIGGER, DATA_SINCLARI_TRIGGER },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_EREKEM_GUARD_1_DOOR, DATA_EREKEM_LEFT_GUARD_CELL },
{ GO_EREKEM_GUARD_2_DOOR, DATA_EREKEM_RIGHT_GUARD_CELL },
@@ -205,16 +201,14 @@ ObjectData const gameObjectData[] =
{ GO_ICHORON_DOOR, DATA_ICHORON_CELL },
{ GO_XEVOZZ_DOOR, DATA_XEVOZZ_CELL },
{ GO_MAIN_DOOR, DATA_MAIN_DOOR },
{ 0, 0 } // END
};
MinionData const minionData[] =
static constexpr MinionData minionData[] =
{
{ NPC_EREKEM_GUARD, DATA_EREKEM },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_1ST_BOSS, {{ 2019 }} },
{ DATA_2ND_BOSS, {{ 2018 }} },
@@ -520,14 +514,14 @@ class instance_violet_hold : public InstanceMapScript
LastPortalLocation = (LastPortalLocation + urand(1, EncouterPortalsCount - 1)) % (EncouterPortalsCount);
if (Creature* sinclari = GetCreature(DATA_SINCLARI))
{
if (LastPortalLocation < PortalPositionsSize)
if (LastPortalLocation < std::ranges::size(PortalPositions))
{
if (Creature* portal = sinclari->SummonCreature(NPC_TELEPORTATION_PORTAL, PortalPositions[LastPortalLocation], TEMPSUMMON_CORPSE_DESPAWN))
portal->AI()->SetData(DATA_PORTAL_LOCATION, LastPortalLocation);
}
else
{
if (Creature* portal = sinclari->SummonCreature(NPC_TELEPORTATION_PORTAL_ELITE, PortalElitePositions[LastPortalLocation - PortalPositionsSize], TEMPSUMMON_CORPSE_DESPAWN))
if (Creature* portal = sinclari->SummonCreature(NPC_TELEPORTATION_PORTAL_ELITE, PortalElitePositions[LastPortalLocation - std::ranges::size(PortalPositions)], TEMPSUMMON_CORPSE_DESPAWN))
portal->AI()->SetData(DATA_PORTAL_LOCATION, LastPortalLocation);
}
}

View File

@@ -21,19 +21,17 @@
#include "InstanceScript.h"
#include "sethekk_halls.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_IKISS_DOOR, DATA_TALON_KING_IKISS, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_TALON_KING_COFFER, DATA_TALON_KING_COFFER },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_DARKWEAVER_SYTH, {{ 1903 }} },
{ DATA_TALON_KING_IKISS, {{ 1902 }} },
@@ -52,7 +50,7 @@ class instance_sethekk_halls : public InstanceMapScript
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadDoorData(doorData);
LoadObjectData(nullptr, gameObjectData);
LoadObjectData({}, gameObjectData);
LoadDungeonEncounterData(encounters);
}

View File

@@ -23,14 +23,13 @@
#include "Map.h"
#include "shadow_labyrinth.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_REFECTORY_DOOR, DATA_BLACKHEART_THE_INCITER, EncounterDoorBehavior::OpenWhenDone },
{ GO_SCREAMING_HALL_DOOR, DATA_GRANDMASTER_VORPIL, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_AMBASSADOR_HELLMAW, {{ 1908 }} },
{ DATA_BLACKHEART_THE_INCITER, {{ 1909 }} },

View File

@@ -24,7 +24,7 @@
#include "InstanceScript.h"
#include "Map.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_NAJENTUS_GATE, DATA_HIGH_WARLORD_NAJENTUS, EncounterDoorBehavior::OpenWhenDone },
{ GO_NAJENTUS_GATE, DATA_SUPREMUS, EncounterDoorBehavior::OpenWhenNotInProgress },
@@ -38,7 +38,6 @@ DoorData const doorData[] =
{ GO_COUNCIL_DOOR_2, DATA_ILLIDARI_COUNCIL, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ILLIDAN_DOOR_R, DATA_ILLIDAN_STORMRAGE, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_ILLIDAN_DOOR_L, DATA_ILLIDAN_STORMRAGE, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
BossBoundaryData const boundaries =
@@ -56,7 +55,7 @@ BossBoundaryData const boundaries =
{ DATA_ILLIDAN_STORMRAGE, new EllipseBoundary(Position(694.8f, 309.0f), 80.0f , 95.0f) }
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_HIGH_WARLORD_NAJENTUS, DATA_HIGH_WARLORD_NAJENTUS },
{ NPC_SUPREMUS, DATA_SUPREMUS },
@@ -77,18 +76,16 @@ ObjectData const creatureData[] =
{ NPC_BLACK_TEMPLE_TRIGGER, DATA_BLACK_TEMPLE_TRIGGER },
{ NPC_MAIEV_SHADOWSONG, DATA_MAIEV },
{ NPC_RELIQUARY_COMBAT_TRIGGER, DATA_RELIQUARY_COMBAT_TRIGGER },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_ILLIDAN_GATE, DATA_GO_ILLIDAN_GATE },
{ GO_DEN_OF_MORTAL_DOOR, DATA_GO_DEN_OF_MORTAL_DOOR },
{ GO_ILLIDAN_MUSIC_CONTROLLER, DATA_ILLIDAN_MUSIC_CONTROLLER },
{ 0, 0 } //END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_HIGH_WARLORD_NAJENTUS, {{ 601 }} },
{ DATA_SUPREMUS, {{ 602 }} },

View File

@@ -41,24 +41,22 @@ private:
InstanceScript* _instance;
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_ACCESS_PANEL_HYDRO, DATA_ACCESS_PANEL_HYDRO },
{ GO_ACCESS_PANEL_MEK, DATA_ACCESS_PANEL_MEK },
{ GO_MAIN_CHAMBERS_DOOR, DATA_MAIN_DOOR },
{ 0, 0 } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_HYDROMANCER_THESPIA, DATA_HYDROMANCER_THESPIA },
{ NPC_MEKGINEER_STEAMRIGGER, DATA_MEKGINEER_STEAMRIGGER },
{ NPC_WARLORD_KALITHRESH, DATA_WARLORD_KALITHRESH },
{ NPC_COILFANG_DOOR_CONTROLLER, DATA_DOOR_CONTROLLER },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_HYDROMANCER_THESPIA, {{ 1942 }} },
{ DATA_MEKGINEER_STEAMRIGGER, {{ 1943 }} },

View File

@@ -20,7 +20,7 @@
#include "InstanceScript.h"
#include "the_slave_pens.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_AHUNE, DATA_AHUNE },
{ NPC_FROZEN_CORE, DATA_FROZEN_CORE },
@@ -32,10 +32,9 @@ ObjectData const creatureData[] =
{ NPC_SHAMAN_BEAM_BUNNY_001, DATA_BEAM_BUNNY_001 },
{ NPC_SHAMAN_BEAM_BUNNY_002, DATA_BEAM_BUNNY_002 },
{ NPC_LUMA_SKYMOTHER, DATA_LUMA_SKYMOTHER },
{ 0, 0, }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_MENNU_THE_BETRAYER, {{ 1939 }} },
{ DATA_ROKMAR_THE_CRACKLER, {{ 1941 }} },
@@ -53,7 +52,7 @@ public:
{
counter = DATA_FLAMECALLER_000;
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDungeonEncounterData(encounters);
}

View File

@@ -20,24 +20,22 @@
#include "gruuls_lair.h"
#include "InstanceScript.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_MAULGAR_DOOR, DATA_MAULGAR, EncounterDoorBehavior::OpenWhenDone },
{ GO_GRUUL_DOOR, DATA_GRUUL, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
MinionData const minionData[] =
static constexpr MinionData minionData[] =
{
{ NPC_MAULGAR, DATA_MAULGAR },
{ NPC_KROSH_FIREHAND, DATA_MAULGAR },
{ NPC_OLM_THE_SUMMONER, DATA_MAULGAR },
{ NPC_KIGGLER_THE_CRAZED, DATA_MAULGAR },
{ NPC_BLINDEYE_THE_SEER, DATA_MAULGAR },
{ 0, 0 }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_MAULGAR, {{ 649 }} },
{ DATA_GRUUL, {{ 650 }} }

View File

@@ -22,7 +22,7 @@
#include "Map.h"
#include "ScriptedCreature.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_PRISON_DOOR_01, DATA_KELIDAN_THE_BREAKER, EncounterDoorBehavior::OpenWhenDone },
{ GO_PRISON_DOOR_02, DATA_THE_MAKER, EncounterDoorBehavior::OpenWhenNotInProgress },
@@ -30,22 +30,19 @@ DoorData const doorData[] =
{ GO_PRISON_DOOR_04, DATA_BROGGOK, EncounterDoorBehavior::OpenWhenDone },
{ GO_PRISON_DOOR_05, DATA_BROGGOK, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_SUMMON_DOOR, DATA_KELIDAN_THE_BREAKER, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_BROGGOK, DATA_BROGGOK },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_BROGGOK_LEVER, DATA_BROGGOK_LEVER },
{ 0, 0 } //END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_THE_MAKER, {{ 1922 }} },
{ DATA_BROGGOK, {{ 1924 }} },

View File

@@ -28,21 +28,19 @@ BossBoundaryData const boundaries =
{ DATA_MAGTHERIDON, new CircleBoundary(Position(-18.70f, 2.24f), 52.30f) }
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_MAGTHERIDON_DOOR, DATA_MAGTHERIDON, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_MAGTHERIDON, DATA_MAGTHERIDON },
{ NPC_WORLD_TRIGGER, DATA_WORLD_TRIGGER },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_MAGTHERIDON_HALL, DATA_MAGTHERIDON_HALL },
{ GO_MAGTHERIDON_COLUMN_0, DATA_MAGTHERIDON_COLUMN_0 },
@@ -51,10 +49,9 @@ ObjectData const gameObjectData[] =
{ GO_MAGTHERIDON_COLUMN_3, DATA_MAGTHERIDON_COLUMN_3 },
{ GO_MAGTHERIDON_COLUMN_4, DATA_MAGTHERIDON_COLUMN_4 },
{ GO_MAGTHERIDON_COLUMN_5, DATA_MAGTHERIDON_COLUMN_5 },
{ 0, 0 } //END
};
static MLDataTypes const collapseObjectDatas[] =
static constexpr MLDataTypes collapseObjectDatas[] =
{
DATA_MAGTHERIDON_COLUMN_0,
DATA_MAGTHERIDON_COLUMN_1,
@@ -64,7 +61,7 @@ static MLDataTypes const collapseObjectDatas[] =
DATA_MAGTHERIDON_COLUMN_5,
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_MAGTHERIDON, {{ 651 }} }
};

View File

@@ -29,16 +29,14 @@ EndScriptData */
#include "ScriptedCreature.h"
#include "shattered_halls.h"
#include "SpellAuras.h"
#include "TemporarySummon.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_GRAND_WARLOCK_CHAMBER_DOOR_1, DATA_NETHEKURSE, EncounterDoorBehavior::OpenWhenDone },
{ GO_GRAND_WARLOCK_CHAMBER_DOOR_2, DATA_NETHEKURSE, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_NETHEKURSE, {{ 1936 }} },
{ DATA_PORUNG, {{ 1935 }} },

View File

@@ -16,7 +16,6 @@
*/
#include "ScriptMgr.h"
#include "Creature.h"
#include "InstanceScript.h"
#include "the_eye.h"
@@ -27,14 +26,13 @@
3 - Kael'thas
*/
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_ARCANE_DOOR_LEFT, DATA_KAELTHAS, EncounterDoorBehavior::OpenWhenNotInProgress/*, BOUNDARY_SW */ },
{ GO_ARCANE_DOOR_RIGHT, DATA_KAELTHAS, EncounterDoorBehavior::OpenWhenNotInProgress/*, BOUNDARY_SE */ },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ NPC_ALAR, DATA_ALAR },
{ NPC_VOID_REAVER, DATA_VOID_REAVER },
@@ -44,18 +42,16 @@ ObjectData const creatureData[] =
{ NPC_SANGUINAR, DATA_SANGUINAR },
{ NPC_TELONICUS, DATA_TELONICUS },
{ NPC_THALADRED, DATA_THALADRED },
{ 0, 0 } // END
};
ObjectData const gameObjectData[] =
static constexpr ObjectData gameObjectData[] =
{
{ GO_KAEL_STATUE_RIGHT, DATA_KAEL_STATUE_RIGHT },
{ GO_KAEL_STATUE_LEFT, DATA_KAEL_STATUE_LEFT },
{ GO_TEMPEST_BRIDDGE_WINDOW, DATA_TEMPEST_BRIDGE_WINDOW },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_KAELTHAS, {{ 733 }} },
{ DATA_ALAR, {{ 730 }} },

View File

@@ -19,15 +19,14 @@
#include "InstanceScript.h"
#include "mechanar.h"
static DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_DOOR_MOARG_1, DATA_GATEWATCHER_IRON_HAND, EncounterDoorBehavior::OpenWhenDone },
{ GO_DOOR_MOARG_2, DATA_GATEWATCHER_GYROKILL, EncounterDoorBehavior::OpenWhenDone },
{ GO_DOOR_NETHERMANCER, DATA_NETHERMANCER_SEPRETHREA, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_GATEWATCHER_GYROKILL, {{ 1933 }} },
{ DATA_GATEWATCHER_IRON_HAND, {{ 1934 }} },

View File

@@ -22,14 +22,13 @@
#include "InstanceScript.h"
#include "Map.h"
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_CONTAINMENT_CORE_SECURITY_FIELD_ALPHA, DATA_SOCCOTHRATES, EncounterDoorBehavior::OpenWhenDone },
{ GO_CONTAINMENT_CORE_SECURITY_FIELD_BETA, DATA_DALLIAH, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_ZEREKETH, {{ 1916 }} },
{ DATA_DALLIAH, {{ 1913 }} },

View File

@@ -19,11 +19,10 @@
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
#include "Player.h"
#include "ScriptMgr.h"
#include "sanctum_of_domination.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_SYLVANAS_WINDRUNNER, DATA_SYLVANAS_WINDRUNNER },
{ NPC_SYLVANAS_SHADOWCOPY_RIDING, DATA_SYLVANAS_SHADOWCOPY_RIDING },
@@ -31,10 +30,9 @@ ObjectData const creatureData[] =
{ NPC_JAINA_PROUDMOORE_PINNACLE, DATA_JAINA_PROUDMOORE_PINNACLE },
{ NPC_THRALL_PINNACLE, DATA_THRALL_PINNACLE },
{ NPC_THRONE_OF_THE_DAMNED, DATA_THRONE_OF_THE_DAMNED },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_THE_TARRAGRUE, {{ 2423 }} },
{ DATA_THE_EYE_OF_THE_JAILER, {{ 2433 }} },
@@ -60,7 +58,7 @@ public:
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadDungeonEncounterData(encounters);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
SylvanasIntroductionState = NOT_STARTED;
}

View File

@@ -19,11 +19,10 @@
#include "Creature.h"
#include "CreatureAI.h"
#include "InstanceScript.h"
#include "Map.h"
#include "ScriptMgr.h"
#include "sepulcher_of_the_first_ones.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
// Anduin Wrynn
{ BOSS_ANDUIN_WRYNN, DATA_ANDUIN_WRYNN },
@@ -37,7 +36,6 @@ ObjectData const creatureData[] =
{ NPC_BEACON_OF_HOPE, DATA_BEACON_OF_HOPE },
{ NPC_QUARTERMASTER_RAHM_ANDUIN, DATA_QUARTERMASTER_RAHM_ANDUIN },
{ NPC_BOLVAR_FORDRAGON_ANDUIN, DATA_BOLVAR_FORDRAGON_ANDUIN },
{ 0, 0 }
};
BossBoundaryData const boundaries =
@@ -45,14 +43,13 @@ BossBoundaryData const boundaries =
{ DATA_ANDUIN_WRYNN, new CircleBoundary({ -3825.0601f, -2715.4600f }, 45.0f)},
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GAMEOBJECT_BRIDGE_TO_ANDUIN, DATA_ANDUIN_WRYNN, EncounterDoorBehavior::OpenWhenInProgress },
{ GAMEOBJECT_BRIDGE_AFTER_ANDUIN, DATA_ANDUIN_WRYNN, EncounterDoorBehavior::OpenWhenNotDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenInProgress }
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_ANDUIN_WRYNN, {{ 2546 }} },
};
@@ -70,7 +67,7 @@ public:
SetBossNumber(EncounterCount);
LoadDungeonEncounterData(encounters);
LoadBossBoundaries(boundaries);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
AnduinIntroductionState = NOT_STARTED;

View File

@@ -51,25 +51,23 @@ BossBoundaryData const boundaries =
)},
};
constexpr ObjectData creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_PRIESTESS_ALUNZA, DATA_PRIESTESS_ALUNZA },
{ BOSS_VOLKAAL, DATA_VOLKAAL },
{ BOSS_REZAN, DATA_REZAN },
{ BOSS_YAZMA, DATA_YAZMA },
{ 0, 0 } // END
};
constexpr DoorData doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_VOLKAAL_DOOR_1, DATA_VOLKAAL, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_VOLKAAL_DOOR_2, DATA_VOLKAAL, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_VOLKAAL_DOOR_3, DATA_VOLKAAL, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_VOLKAAL_DOOR_4, DATA_VOLKAAL, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
constexpr DungeonEncounterData encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_PRIESTESS_ALUNZA, {{ 2084 }} },
{ DATA_VOLKAAL, {{ 2085 }} },
@@ -88,7 +86,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadBossBoundaries(boundaries);
LoadDungeonEncounterData(encounters);

View File

@@ -21,7 +21,7 @@
#include "ScriptMgr.h"
#include "kings_rest.h"
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_GOLDEN_SERPENT, DATA_GOLDEN_SERPENT },
{ BOSS_MCHIMBA_THE_EMBALMER, DATA_MCHIMBA_THE_EMBALMER },
@@ -29,23 +29,20 @@ ObjectData const creatureData[] =
{ BOSS_ZANAZAL_THE_WISE, DATA_ZANAZAL_THE_WISE },
{ BOSS_KULA_THE_BUTCHER, DATA_KULA_THE_BUTCHER },
{ BOSS_KING_DAZAR, DATA_KING_DAZAR },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_KINGS_REST_SERPENT_POST_DOOR, DATA_GOLDEN_SERPENT, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
ObjectData const objectData[] =
static constexpr ObjectData objectData[] =
{
{ GO_KINGS_REST_ENTRYWAY_DOOR, DATA_KINGS_REST_INTRO_DOOR },
{ GO_KINGS_REST_LIQUID_GOLD_POOL, DATA_KINGS_REST_LIQUID_POOL },
{ 0, 0 } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_GOLDEN_SERPENT, {{ 2139 }} },
{ DATA_COUNCIL_OF_TRIBES, {{ 2140 }} },

View File

@@ -27,22 +27,20 @@ BossBoundaryData const boundaries =
{ BOSS_SPORECALLER_ZANCHA, new ZRangeBoundary(35.240f, 26.790f) }
};
ObjectData const creatureData[] =
static constexpr ObjectData creatureData[] =
{
{ BOSS_ELDER_LEAXA, DATA_ELDER_LEAXA },
{ BOSS_SPORECALLER_ZANCHA, DATA_SPORECALLER_ZANCHA },
{ BOSS_CRAGMAW_THE_INFESTED, DATA_CRAGMAW_THE_INFESTED },
{ BOSS_UNBOUND_ABOMINATION, DATA_UNBOUND_ABOMINATION },
{ 0, 0 } // END
};
DoorData const doorData[] =
static constexpr DoorData doorData[] =
{
{ GO_WALL_DOOR_SHORTCUT_ENTRANCE, DATA_SPORECALLER_ZANCHA, EncounterDoorBehavior::OpenWhenDone },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
static constexpr DungeonEncounterData encounters[] =
{
{ DATA_ELDER_LEAXA, {{ 2111 }} },
{ DATA_CRAGMAW_THE_INFESTED, {{ 2118 }} },
@@ -61,7 +59,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, {});
LoadDoorData(doorData);
LoadBossBoundaries(boundaries);
LoadDungeonEncounterData(encounters);