Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_wailing_caverns.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_Wailing_Caverns
8
SD%Complete: 99
9
SDComment: Everything seems to work, still need some checking
10
SDCategory: Wailing Caverns
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
InstanceScript.h
"
15
#include "
wailing_caverns.h
"
16
17
#define MAX_ENCOUNTER 9
18
19
class
instance_wailing_caverns
:
public
InstanceMapScript
20
{
21
public
:
22
instance_wailing_caverns
() :
InstanceMapScript
(
"instance_wailing_caverns"
, 43) { }
23
24
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
25
{
26
return
new
instance_wailing_caverns_InstanceMapScript
(map);
27
}
28
29
struct
instance_wailing_caverns_InstanceMapScript
:
public
InstanceScript
30
{
31
instance_wailing_caverns_InstanceMapScript
(
Map
* map) :
InstanceScript
(map) { }
32
33
uint32
m_auiEncounter
[
MAX_ENCOUNTER
];
34
35
bool
yelled
;
36
uint64
NaralexGUID
;
37
38
void
Initialize
()
OVERRIDE
39
{
40
memset(&
m_auiEncounter
, 0,
sizeof
(
m_auiEncounter
));
41
42
yelled
=
false
;
43
NaralexGUID
= 0;
44
}
45
46
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
47
{
48
if
(creature->GetEntry() ==
DATA_NARALEX
)
49
NaralexGUID
= creature->GetGUID();
50
}
51
52
void
SetData
(
uint32
type,
uint32
data)
OVERRIDE
53
{
54
switch
(type)
55
{
56
case
TYPE_LORD_COBRAHN
:
m_auiEncounter
[0] = data;
break
;
57
case
TYPE_LORD_PYTHAS
:
m_auiEncounter
[1] = data;
break
;
58
case
TYPE_LADY_ANACONDRA
:
m_auiEncounter
[2] = data;
break
;
59
case
TYPE_LORD_SERPENTIS
:
m_auiEncounter
[3] = data;
break
;
60
case
TYPE_NARALEX_EVENT
:
m_auiEncounter
[4] = data;
break
;
61
case
TYPE_NARALEX_PART1
:
m_auiEncounter
[5] = data;
break
;
62
case
TYPE_NARALEX_PART2
:
m_auiEncounter
[6] = data;
break
;
63
case
TYPE_NARALEX_PART3
:
m_auiEncounter
[7] = data;
break
;
64
case
TYPE_MUTANUS_THE_DEVOURER
:
m_auiEncounter
[8] = data;
break
;
65
case
TYPE_NARALEX_YELLED
:
yelled
=
true
;
break
;
66
}
67
if
(data ==
DONE
)
SaveToDB
();
68
}
69
70
uint32
GetData
(
uint32
type)
const
OVERRIDE
71
{
72
switch
(type)
73
{
74
case
TYPE_LORD_COBRAHN
:
return
m_auiEncounter
[0];
75
case
TYPE_LORD_PYTHAS
:
return
m_auiEncounter
[1];
76
case
TYPE_LADY_ANACONDRA
:
return
m_auiEncounter
[2];
77
case
TYPE_LORD_SERPENTIS
:
return
m_auiEncounter
[3];
78
case
TYPE_NARALEX_EVENT
:
return
m_auiEncounter
[4];
79
case
TYPE_NARALEX_PART1
:
return
m_auiEncounter
[5];
80
case
TYPE_NARALEX_PART2
:
return
m_auiEncounter
[6];
81
case
TYPE_NARALEX_PART3
:
return
m_auiEncounter
[7];
82
case
TYPE_MUTANUS_THE_DEVOURER
:
return
m_auiEncounter
[8];
83
case
TYPE_NARALEX_YELLED
:
return
yelled
;
84
}
85
return
0;
86
}
87
88
uint64
GetData64
(
uint32
data)
const
OVERRIDE
89
{
90
if
(data ==
DATA_NARALEX
)
return
NaralexGUID
;
91
return
0;
92
}
93
94
std::string
GetSaveData
()
OVERRIDE
95
{
96
OUT_SAVE_INST_DATA
;
97
98
std::ostringstream saveStream;
99
saveStream <<
m_auiEncounter
[0] <<
' '
<<
m_auiEncounter
[1] <<
' '
<<
m_auiEncounter
[2] <<
' '
100
<<
m_auiEncounter
[3] <<
' '
<<
m_auiEncounter
[4] <<
' '
<<
m_auiEncounter
[5] <<
' '
101
<<
m_auiEncounter
[6] <<
' '
<<
m_auiEncounter
[7] <<
' '
<<
m_auiEncounter
[8];
102
103
OUT_SAVE_INST_DATA_COMPLETE
;
104
return
saveStream.str();
105
}
106
107
void
Load
(
const
char
* in)
OVERRIDE
108
{
109
if
(!in)
110
{
111
OUT_LOAD_INST_DATA_FAIL
;
112
return
;
113
}
114
115
OUT_LOAD_INST_DATA
(in);
116
117
std::istringstream loadStream(in);
118
loadStream >>
m_auiEncounter
[0] >>
m_auiEncounter
[1] >>
m_auiEncounter
[2] >>
m_auiEncounter
[3]
119
>>
m_auiEncounter
[4] >>
m_auiEncounter
[5] >>
m_auiEncounter
[6] >>
m_auiEncounter
[7] >>
m_auiEncounter
[8];
120
121
for
(
uint8
i = 0; i <
MAX_ENCOUNTER
; ++i)
122
if
(
m_auiEncounter
[i] !=
DONE
)
123
m_auiEncounter
[i] =
NOT_STARTED
;
124
125
OUT_LOAD_INST_DATA_COMPLETE
;
126
}
127
128
};
129
130
};
131
132
void
AddSC_instance_wailing_caverns
()
133
{
134
new
instance_wailing_caverns
();
135
}
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
DONE
@ DONE
Definition
InstanceScript.h:49
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
Creature
Definition
Creature.h:427
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::SaveToDB
void SaveToDB()
Definition
InstanceScript.cpp:20
Map
Definition
Map.h:238
instance_wailing_caverns
Definition
instance_wailing_caverns.cpp:20
instance_wailing_caverns::instance_wailing_caverns
instance_wailing_caverns()
Definition
instance_wailing_caverns.cpp:22
instance_wailing_caverns::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_wailing_caverns.cpp:24
AddSC_instance_wailing_caverns
void AddSC_instance_wailing_caverns()
Definition
instance_wailing_caverns.cpp:132
MAX_ENCOUNTER
#define MAX_ENCOUNTER
Definition
instance_wailing_caverns.cpp:17
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript
Definition
instance_wailing_caverns.cpp:30
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::m_auiEncounter
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition
instance_wailing_caverns.cpp:33
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::GetData64
uint64 GetData64(uint32 data) const OVERRIDE
Definition
instance_wailing_caverns.cpp:88
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::GetData
uint32 GetData(uint32 type) const OVERRIDE
Definition
instance_wailing_caverns.cpp:70
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::instance_wailing_caverns_InstanceMapScript
instance_wailing_caverns_InstanceMapScript(Map *map)
Definition
instance_wailing_caverns.cpp:31
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::Initialize
void Initialize() OVERRIDE
Definition
instance_wailing_caverns.cpp:38
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::NaralexGUID
uint64 NaralexGUID
Definition
instance_wailing_caverns.cpp:36
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_wailing_caverns.cpp:94
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::yelled
bool yelled
Definition
instance_wailing_caverns.cpp:35
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_wailing_caverns.cpp:46
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::Load
void Load(const char *in) OVERRIDE
Definition
instance_wailing_caverns.cpp:107
instance_wailing_caverns::instance_wailing_caverns_InstanceMapScript::SetData
void SetData(uint32 type, uint32 data) OVERRIDE
Definition
instance_wailing_caverns.cpp:52
wailing_caverns.h
TYPE_LADY_ANACONDRA
@ TYPE_LADY_ANACONDRA
Definition
wailing_caverns.h:13
TYPE_NARALEX_PART1
@ TYPE_NARALEX_PART1
Definition
wailing_caverns.h:16
DATA_NARALEX
@ DATA_NARALEX
Definition
wailing_caverns.h:22
TYPE_NARALEX_EVENT
@ TYPE_NARALEX_EVENT
Definition
wailing_caverns.h:15
TYPE_LORD_SERPENTIS
@ TYPE_LORD_SERPENTIS
Definition
wailing_caverns.h:14
TYPE_NARALEX_PART2
@ TYPE_NARALEX_PART2
Definition
wailing_caverns.h:17
TYPE_NARALEX_PART3
@ TYPE_NARALEX_PART3
Definition
wailing_caverns.h:18
TYPE_MUTANUS_THE_DEVOURER
@ TYPE_MUTANUS_THE_DEVOURER
Definition
wailing_caverns.h:19
TYPE_LORD_COBRAHN
@ TYPE_LORD_COBRAHN
Definition
wailing_caverns.h:11
TYPE_LORD_PYTHAS
@ TYPE_LORD_PYTHAS
Definition
wailing_caverns.h:12
TYPE_NARALEX_YELLED
@ TYPE_NARALEX_YELLED
Definition
wailing_caverns.h:20
src
server
scripts
Kalimdor
WailingCaverns
instance_wailing_caverns.cpp
Generated on
for Project SkyFire Core by
1.17.0