Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_the_eye.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_The_Eye
8
SD%Complete: 100
9
SDComment:
10
SDCategory: Tempest Keep, The Eye
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
InstanceScript.h
"
15
#include "
the_eye.h
"
16
17
#define MAX_ENCOUNTER 5
18
19
/* The Eye encounters:
20
0 - Kael'thas event
21
1 - Al' ar event
22
2 - Solarian Event
23
3 - Void Reaver event
24
*/
25
26
class
instance_the_eye
:
public
InstanceMapScript
27
{
28
public
:
29
instance_the_eye
()
30
:
InstanceMapScript
(
"instance_the_eye"
, 550)
31
{
32
}
33
34
struct
instance_the_eye_InstanceMapScript
:
public
InstanceScript
35
{
36
instance_the_eye_InstanceMapScript
(
Map
* map) :
InstanceScript
(map) { }
37
38
uint64
ThaladredTheDarkener
;
39
uint64
LordSanguinar
;
40
uint64
GrandAstromancerCapernian
;
41
uint64
MasterEngineerTelonicus
;
42
uint64
Kaelthas
;
43
uint64
Astromancer
;
44
uint64
Alar
;
45
uint8
KaelthasEventPhase
;
46
uint8
AlarEventPhase
;
47
48
uint32
m_auiEncounter
[
MAX_ENCOUNTER
];
49
50
void
Initialize
()
OVERRIDE
51
{
52
memset(&
m_auiEncounter
, 0,
sizeof
(
m_auiEncounter
));
53
54
ThaladredTheDarkener
= 0;
55
LordSanguinar
= 0;
56
GrandAstromancerCapernian
= 0;
57
MasterEngineerTelonicus
= 0;
58
Kaelthas
= 0;
59
Astromancer
= 0;
60
Alar
= 0;
61
62
KaelthasEventPhase
= 0;
63
AlarEventPhase
= 0;
64
}
65
66
bool
IsEncounterInProgress
() const
OVERRIDE
67
{
68
for
(
uint8
i = 0; i <
MAX_ENCOUNTER
; ++i)
69
if
(
m_auiEncounter
[i] ==
IN_PROGRESS
)
70
return
true
;
71
72
return
false
;
73
}
74
75
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
76
{
77
switch
(creature->GetEntry())
78
{
79
case
20064:
80
ThaladredTheDarkener
= creature->GetGUID();
81
break
;
82
case
20063:
83
MasterEngineerTelonicus
= creature->GetGUID();
84
break
;
85
case
20062:
86
GrandAstromancerCapernian
= creature->GetGUID();
87
break
;
88
case
20060:
89
LordSanguinar
= creature->GetGUID();
90
break
;
91
case
19622:
92
Kaelthas
= creature->GetGUID();
93
break
;
94
case
18805:
95
Astromancer
= creature->GetGUID();
96
break
;
97
case
19514:
98
Alar
= creature->GetGUID();
99
break
;
100
}
101
}
102
103
uint64
GetData64
(
uint32
identifier)
const
OVERRIDE
104
{
105
switch
(identifier)
106
{
107
case
DATA_THALADREDTHEDARKENER
:
return
ThaladredTheDarkener
;
108
case
DATA_LORDSANGUINAR
:
return
LordSanguinar
;
109
case
DATA_GRANDASTROMANCERCAPERNIAN
:
return
GrandAstromancerCapernian
;
110
case
DATA_MASTERENGINEERTELONICUS
:
return
MasterEngineerTelonicus
;
111
case
DATA_KAELTHAS
:
return
Kaelthas
;
112
case
DATA_ASTROMANCER
:
return
Astromancer
;
113
case
DATA_ALAR
:
return
Alar
;
114
}
115
return
0;
116
}
117
118
void
SetData
(
uint32
type,
uint32
data)
OVERRIDE
119
{
120
switch
(type)
121
{
122
case
DATA_ALAREVENT
:
123
AlarEventPhase
= data;
124
m_auiEncounter
[0] = data;
125
break
;
126
case
DATA_HIGHASTROMANCERSOLARIANEVENT
:
127
m_auiEncounter
[1] = data;
128
break
;
129
case
DATA_VOIDREAVEREVENT
:
130
m_auiEncounter
[2] = data;
131
break
;
132
case
DATA_KAELTHASEVENT
:
133
KaelthasEventPhase
= data;
134
m_auiEncounter
[3] = data;
135
break
;
136
}
137
if
(data ==
DONE
)
138
SaveToDB
();
139
}
140
141
uint32
GetData
(
uint32
type)
const
OVERRIDE
142
{
143
switch
(type)
144
{
145
case
DATA_ALAREVENT
:
return
AlarEventPhase
;
146
case
DATA_HIGHASTROMANCERSOLARIANEVENT
:
return
m_auiEncounter
[1];
147
case
DATA_VOIDREAVEREVENT
:
return
m_auiEncounter
[2];
148
case
DATA_KAELTHASEVENT
:
return
KaelthasEventPhase
;
149
}
150
return
0;
151
}
152
153
std::string
GetSaveData
()
OVERRIDE
154
{
155
OUT_SAVE_INST_DATA
;
156
157
std::ostringstream stream;
158
stream <<
m_auiEncounter
[0] <<
' '
<<
m_auiEncounter
[1] <<
' '
<<
m_auiEncounter
[2] <<
' '
<<
m_auiEncounter
[3];
159
160
OUT_SAVE_INST_DATA_COMPLETE
;
161
return
stream.str();
162
}
163
164
void
Load
(
const
char
* in)
OVERRIDE
165
{
166
if
(!in)
167
{
168
OUT_LOAD_INST_DATA_FAIL
;
169
return
;
170
}
171
OUT_LOAD_INST_DATA
(in);
172
173
std::istringstream stream(in);
174
stream >>
m_auiEncounter
[0] >>
m_auiEncounter
[1] >>
m_auiEncounter
[2] >>
m_auiEncounter
[3];
175
for
(
uint8
i = 0; i <
MAX_ENCOUNTER
; ++i)
176
if
(
m_auiEncounter
[i] ==
IN_PROGRESS
)
// Do not load an encounter as "In Progress" - reset it instead.
177
m_auiEncounter
[i] =
NOT_STARTED
;
178
OUT_LOAD_INST_DATA_COMPLETE
;
179
}
180
};
181
182
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
183
{
184
return
new
instance_the_eye_InstanceMapScript
(map);
185
}
186
};
187
void
AddSC_instance_the_eye
()
188
{
189
new
instance_the_eye
;
190
}
191
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
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
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_the_eye
Definition
instance_the_eye.cpp:27
instance_the_eye::instance_the_eye
instance_the_eye()
Definition
instance_the_eye.cpp:29
instance_the_eye::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_the_eye.cpp:182
AddSC_instance_the_eye
void AddSC_instance_the_eye()
Definition
instance_the_eye.cpp:187
MAX_ENCOUNTER
#define MAX_ENCOUNTER
Definition
instance_the_eye.cpp:17
instance_the_eye::instance_the_eye_InstanceMapScript
Definition
instance_the_eye.cpp:35
instance_the_eye::instance_the_eye_InstanceMapScript::instance_the_eye_InstanceMapScript
instance_the_eye_InstanceMapScript(Map *map)
Definition
instance_the_eye.cpp:36
instance_the_eye::instance_the_eye_InstanceMapScript::Kaelthas
uint64 Kaelthas
Definition
instance_the_eye.cpp:42
instance_the_eye::instance_the_eye_InstanceMapScript::IsEncounterInProgress
bool IsEncounterInProgress() const OVERRIDE
Definition
instance_the_eye.cpp:66
instance_the_eye::instance_the_eye_InstanceMapScript::Load
void Load(const char *in) OVERRIDE
Definition
instance_the_eye.cpp:164
instance_the_eye::instance_the_eye_InstanceMapScript::LordSanguinar
uint64 LordSanguinar
Definition
instance_the_eye.cpp:39
instance_the_eye::instance_the_eye_InstanceMapScript::GetData
uint32 GetData(uint32 type) const OVERRIDE
Definition
instance_the_eye.cpp:141
instance_the_eye::instance_the_eye_InstanceMapScript::Astromancer
uint64 Astromancer
Definition
instance_the_eye.cpp:43
instance_the_eye::instance_the_eye_InstanceMapScript::GrandAstromancerCapernian
uint64 GrandAstromancerCapernian
Definition
instance_the_eye.cpp:40
instance_the_eye::instance_the_eye_InstanceMapScript::Initialize
void Initialize() OVERRIDE
Definition
instance_the_eye.cpp:50
instance_the_eye::instance_the_eye_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_the_eye.cpp:75
instance_the_eye::instance_the_eye_InstanceMapScript::GetData64
uint64 GetData64(uint32 identifier) const OVERRIDE
Definition
instance_the_eye.cpp:103
instance_the_eye::instance_the_eye_InstanceMapScript::Alar
uint64 Alar
Definition
instance_the_eye.cpp:44
instance_the_eye::instance_the_eye_InstanceMapScript::ThaladredTheDarkener
uint64 ThaladredTheDarkener
Definition
instance_the_eye.cpp:38
instance_the_eye::instance_the_eye_InstanceMapScript::m_auiEncounter
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition
instance_the_eye.cpp:48
instance_the_eye::instance_the_eye_InstanceMapScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_the_eye.cpp:153
instance_the_eye::instance_the_eye_InstanceMapScript::MasterEngineerTelonicus
uint64 MasterEngineerTelonicus
Definition
instance_the_eye.cpp:41
instance_the_eye::instance_the_eye_InstanceMapScript::SetData
void SetData(uint32 type, uint32 data) OVERRIDE
Definition
instance_the_eye.cpp:118
instance_the_eye::instance_the_eye_InstanceMapScript::KaelthasEventPhase
uint8 KaelthasEventPhase
Definition
instance_the_eye.cpp:45
instance_the_eye::instance_the_eye_InstanceMapScript::AlarEventPhase
uint8 AlarEventPhase
Definition
instance_the_eye.cpp:46
the_eye.h
DATA_MASTERENGINEERTELONICUS
@ DATA_MASTERENGINEERTELONICUS
Definition
the_eye.h:18
DATA_HIGHASTROMANCERSOLARIANEVENT
@ DATA_HIGHASTROMANCERSOLARIANEVENT
Definition
the_eye.h:14
DATA_ALAR
@ DATA_ALAR
Definition
the_eye.h:21
DATA_GRANDASTROMANCERCAPERNIAN
@ DATA_GRANDASTROMANCERCAPERNIAN
Definition
the_eye.h:13
DATA_KAELTHAS
@ DATA_KAELTHAS
Definition
the_eye.h:15
DATA_VOIDREAVEREVENT
@ DATA_VOIDREAVEREVENT
Definition
the_eye.h:20
DATA_LORDSANGUINAR
@ DATA_LORDSANGUINAR
Definition
the_eye.h:17
DATA_KAELTHASEVENT
@ DATA_KAELTHASEVENT
Definition
the_eye.h:16
DATA_THALADREDTHEDARKENER
@ DATA_THALADREDTHEDARKENER
Definition
the_eye.h:19
DATA_ASTROMANCER
@ DATA_ASTROMANCER
Definition
the_eye.h:12
DATA_ALAREVENT
@ DATA_ALAREVENT
Definition
the_eye.h:11
src
server
scripts
Outland
TempestKeep
Eye
instance_the_eye.cpp
Generated on
for Project SkyFire Core by
1.17.0