Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_baradin_hold.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 "
baradin_hold.h
"
7
#include "
InstanceScript.h
"
8
#include "
ScriptMgr.h
"
9
10
DoorData
const
doorData
[] =
11
{
12
{
GO_ARGALOTH_DOOR
,
DATA_ARGALOTH
,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
},
13
{
GO_OCCUTHAR_DOOR
,
DATA_OCCUTHAR
,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
},
14
{
GO_ALIZABAL_DOOR
,
DATA_ALIZABAL
,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
},
15
};
16
17
class
instance_baradin_hold
:
public
InstanceMapScript
18
{
19
public
:
20
instance_baradin_hold
() :
InstanceMapScript
(
BHScriptName
, 757) { }
21
22
struct
instance_baradin_hold_InstanceMapScript
:
public
InstanceScript
23
{
24
instance_baradin_hold_InstanceMapScript
(
InstanceMap
* map) :
InstanceScript
(map)
25
{
26
SetBossNumber
(
EncounterCount
);
27
LoadDoorData
(
doorData
);
28
29
ArgalothGUID
= 0;
30
OccutharGUID
= 0;
31
AlizabalGUID
= 0;
32
}
33
34
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
35
{
36
switch
(creature->GetEntry())
37
{
38
case
BOSS_ARGALOTH
:
39
ArgalothGUID
= creature->GetGUID();
40
break
;
41
case
BOSS_OCCUTHAR
:
42
OccutharGUID
= creature->GetGUID();
43
break
;
44
case
BOSS_ALIZABAL
:
45
AlizabalGUID
= creature->GetGUID();
46
break
;
47
}
48
}
49
50
void
OnGameObjectCreate
(
GameObject
* go)
OVERRIDE
51
{
52
switch
(go->GetEntry())
53
{
54
case
GO_ARGALOTH_DOOR
:
55
case
GO_OCCUTHAR_DOOR
:
56
case
GO_ALIZABAL_DOOR
:
57
AddDoor
(go,
true
);
58
break
;
59
}
60
}
61
62
uint64
GetData64
(
uint32
data)
const
OVERRIDE
63
{
64
switch
(data)
65
{
66
case
DATA_ARGALOTH
:
67
return
ArgalothGUID
;
68
case
DATA_OCCUTHAR
:
69
return
OccutharGUID
;
70
case
DATA_ALIZABAL
:
71
return
AlizabalGUID
;
72
default
:
73
break
;
74
}
75
76
return
0;
77
}
78
79
void
OnGameObjectRemove
(
GameObject
* go)
OVERRIDE
80
{
81
switch
(go->GetEntry())
82
{
83
case
GO_ARGALOTH_DOOR
:
84
case
GO_OCCUTHAR_DOOR
:
85
case
GO_ALIZABAL_DOOR
:
86
AddDoor
(go,
false
);
87
break
;
88
}
89
}
90
91
std::string
GetSaveData
()
OVERRIDE
92
{
93
OUT_SAVE_INST_DATA
;
94
95
std::ostringstream saveStream;
96
saveStream <<
"B H "
<<
GetBossSaveData
();
97
98
OUT_SAVE_INST_DATA_COMPLETE
;
99
return
saveStream.str();
100
}
101
102
void
Load
(
const
char
* in)
OVERRIDE
103
{
104
if
(!in)
105
{
106
OUT_LOAD_INST_DATA_FAIL
;
107
return
;
108
}
109
110
OUT_LOAD_INST_DATA
(in);
111
112
char
dataHead1, dataHead2;
113
114
std::istringstream loadStream(in);
115
loadStream >> dataHead1 >> dataHead2;
116
117
if
(dataHead1 ==
'B'
&& dataHead2 ==
'H'
)
118
{
119
for
(
uint8
i = 0; i <
EncounterCount
; ++i)
120
{
121
uint32
tmpState;
122
loadStream >> tmpState;
123
if
(tmpState ==
IN_PROGRESS
|| tmpState >
SPECIAL
)
124
tmpState =
NOT_STARTED
;
125
126
SetBossState
(i,
EncounterState
(tmpState));
127
}
128
}
129
else
130
OUT_LOAD_INST_DATA_FAIL
;
131
132
OUT_LOAD_INST_DATA_COMPLETE
;
133
}
134
135
protected
:
136
uint64
ArgalothGUID
;
137
uint64
OccutharGUID
;
138
uint64
AlizabalGUID
;
139
};
140
141
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
142
{
143
return
new
instance_baradin_hold_InstanceMapScript
(map);
144
}
145
};
146
147
void
AddSC_instance_baradin_hold
()
148
{
149
new
instance_baradin_hold
();
150
}
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
DOOR_TYPE_ROOM
@ DOOR_TYPE_ROOM
Definition
InstanceScript.h:56
BOUNDARY_NONE
@ BOUNDARY_NONE
Definition
InstanceScript.h:64
ScriptMgr.h
baradin_hold.h
EncounterCount
uint32 const EncounterCount
Definition
baradin_hold.h:15
GO_OCCUTHAR_DOOR
@ GO_OCCUTHAR_DOOR
Definition
baradin_hold.h:38
GO_ALIZABAL_DOOR
@ GO_ALIZABAL_DOOR
Definition
baradin_hold.h:39
GO_ARGALOTH_DOOR
@ GO_ARGALOTH_DOOR
Definition
baradin_hold.h:37
BHScriptName
#define BHScriptName
Definition
baradin_hold.h:13
BOSS_ALIZABAL
@ BOSS_ALIZABAL
Definition
baradin_hold.h:28
BOSS_ARGALOTH
@ BOSS_ARGALOTH
Definition
baradin_hold.h:26
BOSS_OCCUTHAR
@ BOSS_OCCUTHAR
Definition
baradin_hold.h:27
DATA_OCCUTHAR
@ DATA_OCCUTHAR
Definition
baradin_hold.h:20
DATA_ALIZABAL
@ DATA_ALIZABAL
Definition
baradin_hold.h:21
DATA_ARGALOTH
@ DATA_ARGALOTH
Definition
baradin_hold.h:19
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::AddDoor
void AddDoor(GameObject *door, bool add)
Definition
InstanceScript.cpp:126
InstanceScript::LoadDoorData
void LoadDoorData(DoorData const *data)
Definition
InstanceScript.cpp:64
instance_baradin_hold
Definition
instance_baradin_hold.cpp:18
instance_baradin_hold::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const
Definition
instance_baradin_hold.cpp:141
instance_baradin_hold::instance_baradin_hold
instance_baradin_hold()
Definition
instance_baradin_hold.cpp:20
doorData
DoorData const doorData[]
Definition
instance_baradin_hold.cpp:10
AddSC_instance_baradin_hold
void AddSC_instance_baradin_hold()
Definition
instance_baradin_hold.cpp:147
DoorData
Definition
InstanceScript.h:82
instance_baradin_hold::instance_baradin_hold_InstanceMapScript
Definition
instance_baradin_hold.cpp:23
instance_baradin_hold::instance_baradin_hold_InstanceMapScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_baradin_hold.cpp:91
instance_baradin_hold::instance_baradin_hold_InstanceMapScript::GetData64
uint64 GetData64(uint32 data) const OVERRIDE
Definition
instance_baradin_hold.cpp:62
instance_baradin_hold::instance_baradin_hold_InstanceMapScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *go) OVERRIDE
Definition
instance_baradin_hold.cpp:50
instance_baradin_hold::instance_baradin_hold_InstanceMapScript::Load
void Load(const char *in) OVERRIDE
Definition
instance_baradin_hold.cpp:102
instance_baradin_hold::instance_baradin_hold_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_baradin_hold.cpp:34
instance_baradin_hold::instance_baradin_hold_InstanceMapScript::instance_baradin_hold_InstanceMapScript
instance_baradin_hold_InstanceMapScript(InstanceMap *map)
Definition
instance_baradin_hold.cpp:24
instance_baradin_hold::instance_baradin_hold_InstanceMapScript::AlizabalGUID
uint64 AlizabalGUID
Definition
instance_baradin_hold.cpp:138
instance_baradin_hold::instance_baradin_hold_InstanceMapScript::OnGameObjectRemove
void OnGameObjectRemove(GameObject *go) OVERRIDE
Definition
instance_baradin_hold.cpp:79
instance_baradin_hold::instance_baradin_hold_InstanceMapScript::OccutharGUID
uint64 OccutharGUID
Definition
instance_baradin_hold.cpp:137
instance_baradin_hold::instance_baradin_hold_InstanceMapScript::ArgalothGUID
uint64 ArgalothGUID
Definition
instance_baradin_hold.cpp:136
src
server
scripts
EasternKingdoms
BaradinHold
instance_baradin_hold.cpp
Generated on
for Project SkyFire Core by
1.17.0