Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_shattered_halls.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
/* ScriptData
7
SDName: Instance_Shattered_Halls
8
SD%Complete: 50
9
SDComment: instance not complete
10
SDCategory: Hellfire Citadel, Shattered Halls
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
InstanceScript.h
"
15
#include "
shattered_halls.h
"
16
17
class
instance_shattered_halls
:
public
InstanceMapScript
18
{
19
public
:
20
instance_shattered_halls
() :
InstanceMapScript
(
"instance_shattered_halls"
, 540) { }
21
22
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
23
{
24
return
new
instance_shattered_halls_InstanceMapScript
(map);
25
}
26
27
struct
instance_shattered_halls_InstanceMapScript
:
public
InstanceScript
28
{
29
instance_shattered_halls_InstanceMapScript
(
Map
* map) :
InstanceScript
(map) { }
30
31
void
Initialize
()
OVERRIDE
32
{
33
SetBossNumber
(
EncounterCount
);
34
nethekurseGUID
= 0;
35
nethekurseDoor1GUID
= 0;
36
nethekurseDoor2GUID
= 0;
37
}
38
39
void
OnGameObjectCreate
(
GameObject
* go)
OVERRIDE
40
{
41
switch
(go->GetEntry())
42
{
43
case
GO_GRAND_WARLOCK_CHAMBER_DOOR_1
:
44
nethekurseDoor1GUID
= go->GetGUID();
45
break
;
46
case
GO_GRAND_WARLOCK_CHAMBER_DOOR_2
:
47
nethekurseDoor2GUID
= go->GetGUID();
48
break
;
49
}
50
}
51
52
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
53
{
54
switch
(creature->GetEntry())
55
{
56
case
NPC_GRAND_WARLOCK_NETHEKURSE
:
57
nethekurseGUID
= creature->GetGUID();
58
break
;
59
}
60
}
61
62
bool
SetBossState
(
uint32
type,
EncounterState
state)
OVERRIDE
63
{
64
if
(!
InstanceScript::SetBossState
(type, state))
65
return
false
;
66
67
switch
(type)
68
{
69
case
DATA_NETHEKURSE
:
70
if
(state ==
IN_PROGRESS
)
71
{
72
HandleGameObject
(
nethekurseDoor1GUID
,
false
);
73
HandleGameObject
(
nethekurseDoor2GUID
,
false
);
74
}
75
else
76
{
77
HandleGameObject
(
nethekurseDoor1GUID
,
true
);
78
HandleGameObject
(
nethekurseDoor2GUID
,
true
);
79
}
80
break
;
81
case
DATA_OMROGG
:
82
break
;
83
}
84
return
true
;
85
}
86
87
uint64
GetData64
(
uint32
data)
const
OVERRIDE
88
{
89
switch
(data)
90
{
91
case
NPC_GRAND_WARLOCK_NETHEKURSE
:
92
return
nethekurseGUID
;
93
break
;
94
case
GO_GRAND_WARLOCK_CHAMBER_DOOR_1
:
95
return
nethekurseDoor1GUID
;
96
break
;
97
case
GO_GRAND_WARLOCK_CHAMBER_DOOR_2
:
98
return
nethekurseDoor2GUID
;
99
break
;
100
}
101
return
0;
102
}
103
104
std::string
GetSaveData
()
OVERRIDE
105
{
106
OUT_SAVE_INST_DATA
;
107
108
std::ostringstream saveStream;
109
saveStream <<
"S H "
<<
GetBossSaveData
();
110
111
OUT_SAVE_INST_DATA_COMPLETE
;
112
return
saveStream.str();
113
}
114
115
void
Load
(
const
char
* strIn)
OVERRIDE
116
{
117
if
(!strIn)
118
{
119
OUT_LOAD_INST_DATA_FAIL
;
120
return
;
121
}
122
123
OUT_LOAD_INST_DATA
(strIn);
124
125
char
dataHead1, dataHead2;
126
127
std::istringstream loadStream(strIn);
128
loadStream >> dataHead1 >> dataHead2;
129
130
if
(dataHead1 ==
'S'
&& dataHead2 ==
'H'
)
131
{
132
for
(
uint8
i = 0; i <
EncounterCount
; ++i)
133
{
134
uint32
tmpState;
135
loadStream >> tmpState;
136
if
(tmpState ==
IN_PROGRESS
|| tmpState >
SPECIAL
)
137
tmpState =
NOT_STARTED
;
138
SetBossState
(i,
EncounterState
(tmpState));
139
}
140
}
141
else
142
OUT_LOAD_INST_DATA_FAIL
;
143
144
OUT_LOAD_INST_DATA_COMPLETE
;
145
}
146
147
protected
:
148
uint64
nethekurseGUID
;
149
uint64
nethekurseDoor1GUID
;
150
uint64
nethekurseDoor2GUID
;
151
};
152
};
153
154
void
AddSC_instance_shattered_halls
()
155
{
156
new
instance_shattered_halls
();
157
}
uint8
std::uint8_t uint8
Definition
Define.h:79
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
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
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::GetBossSaveData
std::string GetBossSaveData()
Definition
InstanceScript.cpp:239
InstanceScript::HandleGameObject
void HandleGameObject(uint64 guid, bool open, GameObject *go=NULL)
Definition
InstanceScript.cpp:33
Map
Definition
Map.h:238
instance_shattered_halls
Definition
instance_shattered_halls.cpp:18
instance_shattered_halls::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_shattered_halls.cpp:22
instance_shattered_halls::instance_shattered_halls
instance_shattered_halls()
Definition
instance_shattered_halls.cpp:20
AddSC_instance_shattered_halls
void AddSC_instance_shattered_halls()
Definition
instance_shattered_halls.cpp:154
shattered_halls.h
NPC_GRAND_WARLOCK_NETHEKURSE
@ NPC_GRAND_WARLOCK_NETHEKURSE
Definition
shattered_halls.h:20
GO_GRAND_WARLOCK_CHAMBER_DOOR_1
@ GO_GRAND_WARLOCK_CHAMBER_DOOR_1
Definition
shattered_halls.h:25
GO_GRAND_WARLOCK_CHAMBER_DOOR_2
@ GO_GRAND_WARLOCK_CHAMBER_DOOR_2
Definition
shattered_halls.h:26
DATA_OMROGG
@ DATA_OMROGG
Definition
shattered_halls.h:14
DATA_NETHEKURSE
@ DATA_NETHEKURSE
Definition
shattered_halls.h:13
instance_shattered_halls::instance_shattered_halls_InstanceMapScript
Definition
instance_shattered_halls.cpp:28
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *go) OVERRIDE
Definition
instance_shattered_halls.cpp:39
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::nethekurseGUID
uint64 nethekurseGUID
Definition
instance_shattered_halls.cpp:148
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::nethekurseDoor1GUID
uint64 nethekurseDoor1GUID
Definition
instance_shattered_halls.cpp:149
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::nethekurseDoor2GUID
uint64 nethekurseDoor2GUID
Definition
instance_shattered_halls.cpp:150
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::Load
void Load(const char *strIn) OVERRIDE
Definition
instance_shattered_halls.cpp:115
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_shattered_halls.cpp:104
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::SetBossState
bool SetBossState(uint32 type, EncounterState state) OVERRIDE
Definition
instance_shattered_halls.cpp:62
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_shattered_halls.cpp:52
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::instance_shattered_halls_InstanceMapScript
instance_shattered_halls_InstanceMapScript(Map *map)
Definition
instance_shattered_halls.cpp:29
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::Initialize
void Initialize() OVERRIDE
Definition
instance_shattered_halls.cpp:31
instance_shattered_halls::instance_shattered_halls_InstanceMapScript::GetData64
uint64 GetData64(uint32 data) const OVERRIDE
Definition
instance_shattered_halls.cpp:87
src
server
scripts
Outland
HellfireCitadel
ShatteredHalls
instance_shattered_halls.cpp
Generated on
for Project SkyFire Core by
1.17.0