Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_halls_of_lightning.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#include "
ScriptMgr.h
"
7
#include "
InstanceScript.h
"
8
#include "
halls_of_lightning.h
"
9
10
DoorData
const
doorData
[] =
11
{
12
{
GO_VOLKHAN_DOOR
,
DATA_VOLKHAN
,
DOOR_TYPE_PASSAGE
,
BOUNDARY_NONE
},
13
{
GO_IONAR_DOOR
,
DATA_IONAR
,
DOOR_TYPE_PASSAGE
,
BOUNDARY_NONE
},
14
{
GO_LOKEN_DOOR
,
DATA_LOKEN
,
DOOR_TYPE_PASSAGE
,
BOUNDARY_NONE
},
15
{ 0, 0,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
}
// END
16
};
17
18
class
instance_halls_of_lightning
:
public
InstanceMapScript
19
{
20
public
:
21
instance_halls_of_lightning
() :
InstanceMapScript
(
HoLScriptName
, 602) { }
22
23
struct
instance_halls_of_lightning_InstanceMapScript
:
public
InstanceScript
24
{
25
instance_halls_of_lightning_InstanceMapScript
(
Map
* map) :
InstanceScript
(map)
26
{
27
SetBossNumber
(
EncounterCount
);
28
LoadDoorData
(
doorData
);
29
30
GeneralBjarngrimGUID
= 0;
31
VolkhanGUID
= 0;
32
IonarGUID
= 0;
33
LokenGUID
= 0;
34
35
LokenGlobeGUID
= 0;
36
}
37
38
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
39
{
40
switch
(creature->GetEntry())
41
{
42
case
NPC_BJARNGRIM
:
43
GeneralBjarngrimGUID
= creature->GetGUID();
44
break
;
45
case
NPC_VOLKHAN
:
46
VolkhanGUID
= creature->GetGUID();
47
break
;
48
case
NPC_IONAR
:
49
IonarGUID
= creature->GetGUID();
50
break
;
51
case
NPC_LOKEN
:
52
LokenGUID
= creature->GetGUID();
53
break
;
54
default
:
55
break
;
56
}
57
}
58
59
void
OnGameObjectCreate
(
GameObject
* go)
OVERRIDE
60
{
61
switch
(go->GetEntry())
62
{
63
case
GO_VOLKHAN_DOOR
:
64
case
GO_IONAR_DOOR
:
65
case
GO_LOKEN_DOOR
:
66
AddDoor
(go,
true
);
67
break
;
68
case
GO_LOKEN_THRONE
:
69
LokenGlobeGUID
= go->GetGUID();
70
break
;
71
default
:
72
break
;
73
}
74
}
75
76
void
OnGameObjectRemove
(
GameObject
* go)
OVERRIDE
77
{
78
switch
(go->GetEntry())
79
{
80
case
GO_VOLKHAN_DOOR
:
81
case
GO_IONAR_DOOR
:
82
case
GO_LOKEN_DOOR
:
83
AddDoor
(go,
false
);
84
break
;
85
default
:
86
break
;
87
}
88
}
89
90
bool
SetBossState
(
uint32
type,
EncounterState
state)
OVERRIDE
91
{
92
if
(!
InstanceScript::SetBossState
(type, state))
93
return
false
;
94
95
switch
(type)
96
{
97
case
DATA_LOKEN
:
98
if
(state ==
DONE
)
99
if
(
GameObject
* globe =
instance
->GetGameObject(
LokenGlobeGUID
))
100
globe->SendCustomAnim(0);
101
break
;
102
default
:
103
break
;
104
}
105
106
return
true
;
107
}
108
109
uint64
GetData64
(
uint32
type)
const
OVERRIDE
110
{
111
switch
(type)
112
{
113
case
DATA_BJARNGRIM
:
114
return
GeneralBjarngrimGUID
;
115
case
DATA_VOLKHAN
:
116
return
VolkhanGUID
;
117
case
DATA_IONAR
:
118
return
IonarGUID
;
119
case
DATA_LOKEN
:
120
return
LokenGUID
;
121
default
:
122
break
;
123
}
124
return
0;
125
}
126
127
std::string
GetSaveData
()
OVERRIDE
128
{
129
OUT_SAVE_INST_DATA
;
130
131
std::ostringstream saveStream;
132
saveStream <<
"H L "
<<
GetBossSaveData
();
133
134
OUT_SAVE_INST_DATA_COMPLETE
;
135
return
saveStream.str();
136
}
137
138
void
Load
(
const
char
* str)
OVERRIDE
139
{
140
if
(!str)
141
{
142
OUT_LOAD_INST_DATA_FAIL
;
143
return
;
144
}
145
146
OUT_LOAD_INST_DATA
(str);
147
148
char
dataHead1, dataHead2;
149
150
std::istringstream loadStream(str);
151
loadStream >> dataHead1 >> dataHead2;
152
153
if
(dataHead1 ==
'H'
&& dataHead2 ==
'L'
)
154
{
155
for
(
uint32
i = 0; i <
EncounterCount
; ++i)
156
{
157
uint32
tmpState;
158
loadStream >> tmpState;
159
if
(tmpState ==
IN_PROGRESS
|| tmpState >
SPECIAL
)
160
tmpState =
NOT_STARTED
;
161
SetBossState
(i,
EncounterState
(tmpState));
162
}
163
}
164
else
165
OUT_LOAD_INST_DATA_FAIL
;
166
167
OUT_LOAD_INST_DATA_COMPLETE
;
168
}
169
170
protected
:
171
uint64
GeneralBjarngrimGUID
;
172
uint64
VolkhanGUID
;
173
uint64
IonarGUID
;
174
uint64
LokenGUID
;
175
176
uint64
LokenGlobeGUID
;
177
};
178
179
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
180
{
181
return
new
instance_halls_of_lightning_InstanceMapScript
(map);
182
}
183
};
184
185
void
AddSC_instance_halls_of_lightning
()
186
{
187
new
instance_halls_of_lightning
();
188
}
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
uint64
std::uint64_t uint64
Definition
Define.h:76
InstanceScript.h
OUT_LOAD_INST_DATA_FAIL
#define OUT_LOAD_INST_DATA_FAIL
Definition
InstanceScript.h:18
EncounterState
EncounterState
Definition
InstanceScript.h:45
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
DONE
@ DONE
Definition
InstanceScript.h:49
SPECIAL
@ SPECIAL
Definition
InstanceScript.h:50
NOT_STARTED
@ NOT_STARTED
Definition
InstanceScript.h:46
OUT_SAVE_INST_DATA_COMPLETE
#define OUT_SAVE_INST_DATA_COMPLETE
Definition
InstanceScript.h:15
OUT_LOAD_INST_DATA_COMPLETE
#define OUT_LOAD_INST_DATA_COMPLETE
Definition
InstanceScript.h:17
OUT_SAVE_INST_DATA
#define OUT_SAVE_INST_DATA
Definition
InstanceScript.h:14
OUT_LOAD_INST_DATA
#define OUT_LOAD_INST_DATA(a)
Definition
InstanceScript.h:16
DOOR_TYPE_ROOM
@ DOOR_TYPE_ROOM
Definition
InstanceScript.h:56
DOOR_TYPE_PASSAGE
@ DOOR_TYPE_PASSAGE
Definition
InstanceScript.h:57
BOUNDARY_NONE
@ BOUNDARY_NONE
Definition
InstanceScript.h:64
ScriptMgr.h
EncounterCount
uint32 const EncounterCount
Definition
baradin_hold.h:15
Creature
Definition
Creature.h:427
GameObject
Definition
GameObject.h:629
InstanceMap
Definition
Map.h:637
InstanceMapScript::InstanceMapScript
InstanceMapScript(const char *name, uint32 mapId)
Definition
ScriptMgr.cpp:1412
InstanceScript
Definition
InstanceScript.h:123
InstanceScript::InstanceScript
InstanceScript(Map *map)
Definition
InstanceScript.h:125
InstanceScript::SetBossNumber
void SetBossNumber(uint32 number)
Definition
InstanceScript.h:212
InstanceScript::SetBossState
virtual bool SetBossState(uint32 id, EncounterState state)
Definition
InstanceScript.cpp:182
InstanceScript::instance
Map * instance
Definition
InstanceScript.h:129
InstanceScript::GetBossSaveData
std::string GetBossSaveData()
Definition
InstanceScript.cpp:239
InstanceScript::AddDoor
void AddDoor(GameObject *door, bool add)
Definition
InstanceScript.cpp:126
InstanceScript::LoadDoorData
void LoadDoorData(DoorData const *data)
Definition
InstanceScript.cpp:64
Map
Definition
Map.h:238
instance_halls_of_lightning
Definition
instance_halls_of_lightning.cpp:19
instance_halls_of_lightning::instance_halls_of_lightning
instance_halls_of_lightning()
Definition
instance_halls_of_lightning.cpp:21
instance_halls_of_lightning::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_halls_of_lightning.cpp:179
halls_of_lightning.h
NPC_BJARNGRIM
@ NPC_BJARNGRIM
Definition
halls_of_lightning.h:24
NPC_LOKEN
@ NPC_LOKEN
Definition
halls_of_lightning.h:27
NPC_IONAR
@ NPC_IONAR
Definition
halls_of_lightning.h:26
NPC_VOLKHAN
@ NPC_VOLKHAN
Definition
halls_of_lightning.h:25
HoLScriptName
#define HoLScriptName
Definition
halls_of_lightning.h:9
GO_LOKEN_THRONE
@ GO_LOKEN_THRONE
Definition
halls_of_lightning.h:36
GO_VOLKHAN_DOOR
@ GO_VOLKHAN_DOOR
Definition
halls_of_lightning.h:33
GO_LOKEN_DOOR
@ GO_LOKEN_DOOR
Definition
halls_of_lightning.h:35
GO_IONAR_DOOR
@ GO_IONAR_DOOR
Definition
halls_of_lightning.h:34
DATA_IONAR
@ DATA_IONAR
Definition
halls_of_lightning.h:18
DATA_VOLKHAN
@ DATA_VOLKHAN
Definition
halls_of_lightning.h:17
DATA_BJARNGRIM
@ DATA_BJARNGRIM
Definition
halls_of_lightning.h:16
DATA_LOKEN
@ DATA_LOKEN
Definition
halls_of_lightning.h:19
doorData
DoorData const doorData[]
Definition
instance_baradin_hold.cpp:10
doorData
DoorData const doorData[]
Definition
instance_halls_of_lightning.cpp:10
AddSC_instance_halls_of_lightning
void AddSC_instance_halls_of_lightning()
Definition
instance_halls_of_lightning.cpp:185
DoorData
Definition
InstanceScript.h:82
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript
Definition
instance_halls_of_lightning.cpp:24
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::GeneralBjarngrimGUID
uint64 GeneralBjarngrimGUID
Definition
instance_halls_of_lightning.cpp:171
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::OnGameObjectRemove
void OnGameObjectRemove(GameObject *go) OVERRIDE
Definition
instance_halls_of_lightning.cpp:76
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::instance_halls_of_lightning_InstanceMapScript
instance_halls_of_lightning_InstanceMapScript(Map *map)
Definition
instance_halls_of_lightning.cpp:25
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_halls_of_lightning.cpp:38
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::SetBossState
bool SetBossState(uint32 type, EncounterState state) OVERRIDE
Definition
instance_halls_of_lightning.cpp:90
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::LokenGUID
uint64 LokenGUID
Definition
instance_halls_of_lightning.cpp:174
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *go) OVERRIDE
Definition
instance_halls_of_lightning.cpp:59
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::Load
void Load(const char *str) OVERRIDE
Definition
instance_halls_of_lightning.cpp:138
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::IonarGUID
uint64 IonarGUID
Definition
instance_halls_of_lightning.cpp:173
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::LokenGlobeGUID
uint64 LokenGlobeGUID
Definition
instance_halls_of_lightning.cpp:176
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::VolkhanGUID
uint64 VolkhanGUID
Definition
instance_halls_of_lightning.cpp:172
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::GetData64
uint64 GetData64(uint32 type) const OVERRIDE
Definition
instance_halls_of_lightning.cpp:109
instance_halls_of_lightning::instance_halls_of_lightning_InstanceMapScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_halls_of_lightning.cpp:127
src
server
scripts
Northrend
Ulduar
HallsOfLightning
instance_halls_of_lightning.cpp
Generated on
for Project SkyFire Core by
1.17.0