Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_sethekk_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
#include "
ScriptMgr.h
"
7
#include "
InstanceScript.h
"
8
#include "
sethekk_halls.h
"
9
10
DoorData
const
doorData
[] =
11
{
12
{
GO_IKISS_DOOR
,
DATA_TALON_KING_IKISS
,
DOOR_TYPE_PASSAGE
,
BOUNDARY_NONE
},
13
{ 0, 0,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
}
// END
14
};
15
16
class
instance_sethekk_halls
:
public
InstanceMapScript
17
{
18
public
:
19
instance_sethekk_halls
() :
InstanceMapScript
(
SHScriptName
, 556) { }
20
21
struct
instance_sethekk_halls_InstanceMapScript
:
public
InstanceScript
22
{
23
instance_sethekk_halls_InstanceMapScript
(
Map
* map) :
InstanceScript
(map)
24
{
25
SetBossNumber
(
EncounterCount
);
26
LoadDoorData
(
doorData
);
27
}
28
29
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
30
{
31
if
(creature->GetEntry() ==
NPC_ANZU
)
32
{
33
if
(
GetBossState
(
DATA_ANZU
) ==
DONE
)
34
creature->DisappearAndDie();
35
else
36
SetBossState
(
DATA_ANZU
,
IN_PROGRESS
);
37
}
38
}
39
40
void
OnGameObjectCreate
(
GameObject
* go)
OVERRIDE
41
{
42
if
(go->GetEntry() ==
GO_IKISS_DOOR
)
43
AddDoor
(go,
true
);
44
}
45
46
void
OnGameObjectRemove
(
GameObject
* go)
OVERRIDE
47
{
48
if
(go->GetEntry() ==
GO_IKISS_DOOR
)
49
AddDoor
(go,
false
);
50
}
51
52
std::string
GetSaveData
()
OVERRIDE
53
{
54
OUT_SAVE_INST_DATA
;
55
56
std::ostringstream saveStream;
57
saveStream <<
"S H "
<<
GetBossSaveData
();
58
59
OUT_SAVE_INST_DATA_COMPLETE
;
60
return
saveStream.str();
61
}
62
63
void
Load
(
char
const
* str)
OVERRIDE
64
{
65
if
(!str)
66
{
67
OUT_LOAD_INST_DATA_FAIL
;
68
return
;
69
}
70
71
OUT_LOAD_INST_DATA
(str);
72
73
char
dataHead1, dataHead2;
74
75
std::istringstream loadStream(str);
76
loadStream >> dataHead1 >> dataHead2;
77
78
if
(dataHead1 ==
'S'
&& dataHead2 ==
'H'
)
79
{
80
for
(
uint32
i = 0; i <
EncounterCount
; ++i)
81
{
82
uint32
tmpState;
83
loadStream >> tmpState;
84
if
(tmpState ==
IN_PROGRESS
|| tmpState >
SPECIAL
)
85
tmpState =
NOT_STARTED
;
86
SetBossState
(i,
EncounterState
(tmpState));
87
}
88
}
89
else
90
OUT_LOAD_INST_DATA_FAIL
;
91
92
OUT_LOAD_INST_DATA_COMPLETE
;
93
}
94
};
95
96
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
97
{
98
return
new
instance_sethekk_halls_InstanceMapScript
(map);
99
}
100
};
101
102
void
AddSC_instance_sethekk_halls
()
103
{
104
new
instance_sethekk_halls
();
105
}
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
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::GetBossSaveData
std::string GetBossSaveData()
Definition
InstanceScript.cpp:239
InstanceScript::GetBossState
EncounterState GetBossState(uint32 id) const
Definition
InstanceScript.h:185
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_sethekk_halls
Definition
instance_sethekk_halls.cpp:17
instance_sethekk_halls::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_sethekk_halls.cpp:96
instance_sethekk_halls::instance_sethekk_halls
instance_sethekk_halls()
Definition
instance_sethekk_halls.cpp:19
doorData
DoorData const doorData[]
Definition
instance_baradin_hold.cpp:10
AddSC_instance_sethekk_halls
void AddSC_instance_sethekk_halls()
Definition
instance_sethekk_halls.cpp:102
doorData
DoorData const doorData[]
Definition
instance_sethekk_halls.cpp:10
sethekk_halls.h
GO_IKISS_DOOR
@ GO_IKISS_DOOR
Definition
sethekk_halls.h:29
SHScriptName
#define SHScriptName
Definition
sethekk_halls.h:9
NPC_ANZU
@ NPC_ANZU
Definition
sethekk_halls.h:23
DATA_TALON_KING_IKISS
@ DATA_TALON_KING_IKISS
Definition
sethekk_halls.h:17
DATA_ANZU
@ DATA_ANZU
Definition
sethekk_halls.h:18
DoorData
Definition
InstanceScript.h:82
instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript
Definition
instance_sethekk_halls.cpp:22
instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_sethekk_halls.cpp:52
instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::instance_sethekk_halls_InstanceMapScript
instance_sethekk_halls_InstanceMapScript(Map *map)
Definition
instance_sethekk_halls.cpp:23
instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::OnGameObjectRemove
void OnGameObjectRemove(GameObject *go) OVERRIDE
Definition
instance_sethekk_halls.cpp:46
instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *go) OVERRIDE
Definition
instance_sethekk_halls.cpp:40
instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_sethekk_halls.cpp:29
instance_sethekk_halls::instance_sethekk_halls_InstanceMapScript::Load
void Load(char const *str) OVERRIDE
Definition
instance_sethekk_halls.cpp:63
src
server
scripts
Outland
Auchindoun
SethekkHalls
instance_sethekk_halls.cpp
Generated on
for Project SkyFire Core by
1.17.0