TrinityCore
nexus.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef DEF_NEXUS_H
19#define DEF_NEXUS_H
20
21#include "CreatureAIImpl.h"
22
23#define NexusScriptName "instance_nexus"
24#define DataHeader "NEX"
25
27
29{
35
39};
40
42{
43 NPC_ANOMALUS = 26763,
45
46 // Alliance
52
53 // Horde
59};
60
62{
66};
67
68template <class AI, class T>
69inline AI* GetNexusAI(T* obj)
70{
71 return GetInstanceAI<AI>(obj, NexusScriptName);
72}
73
74#define RegisterNexusCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetNexusAI)
75#define RegisterNexusGameObjectAI(ai_name) RegisterGameObjectAIWithFactory(ai_name, GetNexusAI)
76
77#endif
uint32_t uint32
Definition: Define.h:142
uint32 const EncounterCount
Definition: nexus.h:26
NEXCreatureIds
Definition: nexus.h:42
@ NPC_COMMANDER_KOLURG
Definition: nexus.h:58
@ NPC_HORDE_COMMANDER
Definition: nexus.h:57
@ NPC_ALLIANCE_COMMANDER
Definition: nexus.h:50
@ NPC_HORDE_RANGER
Definition: nexus.h:55
@ NPC_COMMANDER_STOUTBEARD
Definition: nexus.h:51
@ NPC_HORDE_CLERIC
Definition: nexus.h:56
@ NPC_ALLIANCE_RANGER
Definition: nexus.h:48
@ NPC_KERISTRASZA
Definition: nexus.h:44
@ NPC_ANOMALUS
Definition: nexus.h:43
@ NPC_HORDE_BERSERKER
Definition: nexus.h:54
@ NPC_ALLIANCE_BERSERKER
Definition: nexus.h:47
@ NPC_ALLIANCE_CLERIC
Definition: nexus.h:49
AI * GetNexusAI(T *obj)
Definition: nexus.h:69
NEXDataTypes
Definition: nexus.h:29
@ DATA_COMMANDER
Definition: nexus.h:30
@ ANOMALUS_CONTAINMENT_SPHERE
Definition: nexus.h:36
@ ORMOROKS_CONTAINMENT_SPHERE
Definition: nexus.h:37
@ DATA_MAGUS_TELESTRA
Definition: nexus.h:31
@ DATA_ANOMALUS
Definition: nexus.h:32
@ DATA_ORMOROK
Definition: nexus.h:33
@ TELESTRAS_CONTAINMENT_SPHERE
Definition: nexus.h:38
@ DATA_KERISTRASZA
Definition: nexus.h:34
NEXGameObjectIds
Definition: nexus.h:62
@ GO_ORMOROKS_CONTAINMENT_SPHERE
Definition: nexus.h:64
@ GO_TELESTRAS_CONTAINMENT_SPHERE
Definition: nexus.h:65
@ GO_ANOMALUS_CONTAINMENT_SPHERE
Definition: nexus.h:63
#define NexusScriptName
Definition: nexus.h:23