Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_gruuls_lair.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 "
gruuls_lair.h
"
9
10
DoorData
const
doorData
[] =
11
{
12
{
GO_MAULGAR_DOOR
,
DATA_MAULGAR
,
DOOR_TYPE_PASSAGE
,
BOUNDARY_NONE
},
13
{
GO_GRUUL_DOOR
,
DATA_GRUUL
,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
},
14
{ 0, 0,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
}
// END
15
};
16
17
MinionData
const
minionData
[] =
18
{
19
{
NPC_MAULGAR
,
DATA_MAULGAR
},
20
{
NPC_KROSH_FIREHAND
,
DATA_MAULGAR
},
21
{
NPC_OLM_THE_SUMMONER
,
DATA_MAULGAR
},
22
{
NPC_KIGGLER_THE_CRAZED
,
DATA_MAULGAR
},
23
{
NPC_BLINDEYE_THE_SEER
,
DATA_MAULGAR
}
24
};
25
26
class
instance_gruuls_lair
:
public
InstanceMapScript
27
{
28
public
:
29
instance_gruuls_lair
() :
InstanceMapScript
(
GLScriptName
, 565) { }
30
31
struct
instance_gruuls_lair_InstanceMapScript
:
public
InstanceScript
32
{
33
instance_gruuls_lair_InstanceMapScript
(
Map
* map) :
InstanceScript
(map)
34
{
35
SetBossNumber
(
EncounterCount
);
36
LoadDoorData
(
doorData
);
37
LoadMinionData
(
minionData
);
38
39
MaulgarGUID
= 0;
40
}
41
42
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
43
{
44
switch
(creature->GetEntry())
45
{
46
case
NPC_MAULGAR
:
47
MaulgarGUID
= creature->GetGUID();
48
// no break;
49
case
NPC_KROSH_FIREHAND
:
50
case
NPC_OLM_THE_SUMMONER
:
51
case
NPC_KIGGLER_THE_CRAZED
:
52
case
NPC_BLINDEYE_THE_SEER
:
53
AddMinion
(creature,
true
);
54
break
;
55
default
:
56
break
;
57
}
58
}
59
60
void
OnCreatureRemove
(
Creature
* creature)
OVERRIDE
61
{
62
switch
(creature->GetEntry())
63
{
64
case
NPC_MAULGAR
:
65
case
NPC_KROSH_FIREHAND
:
66
case
NPC_OLM_THE_SUMMONER
:
67
case
NPC_KIGGLER_THE_CRAZED
:
68
case
NPC_BLINDEYE_THE_SEER
:
69
AddMinion
(creature,
false
);
70
break
;
71
default
:
72
break
;
73
}
74
}
75
76
void
OnGameObjectCreate
(
GameObject
* go)
OVERRIDE
77
{
78
switch
(go->GetEntry())
79
{
80
case
GO_MAULGAR_DOOR
:
81
case
GO_GRUUL_DOOR
:
82
AddDoor
(go,
true
);
83
break
;
84
default
:
85
break
;
86
}
87
}
88
89
void
OnGameObjectRemove
(
GameObject
* go)
OVERRIDE
90
{
91
switch
(go->GetEntry())
92
{
93
case
GO_MAULGAR_DOOR
:
94
case
GO_GRUUL_DOOR
:
95
AddDoor
(go,
false
);
96
break
;
97
default
:
98
break
;
99
}
100
}
101
102
uint64
GetData64
(
uint32
type)
const
OVERRIDE
103
{
104
switch
(type)
105
{
106
case
DATA_MAULGAR
:
107
return
MaulgarGUID
;
108
default
:
109
break
;
110
}
111
return
0;
112
}
113
114
std::string
GetSaveData
()
OVERRIDE
115
{
116
OUT_SAVE_INST_DATA
;
117
118
std::ostringstream saveStream;
119
saveStream <<
"G L "
<<
GetBossSaveData
();
120
121
OUT_SAVE_INST_DATA_COMPLETE
;
122
return
saveStream.str();
123
}
124
125
void
Load
(
char
const
* str)
OVERRIDE
126
{
127
if
(!str)
128
{
129
OUT_LOAD_INST_DATA_FAIL
;
130
return
;
131
}
132
133
OUT_LOAD_INST_DATA
(str);
134
135
char
dataHead1, dataHead2;
136
137
std::istringstream loadStream(str);
138
loadStream >> dataHead1 >> dataHead2;
139
140
if
(dataHead1 ==
'G'
&& dataHead2 ==
'L'
)
141
{
142
for
(
uint32
i = 0; i <
EncounterCount
; ++i)
143
{
144
uint32
tmpState;
145
loadStream >> tmpState;
146
if
(tmpState ==
IN_PROGRESS
|| tmpState >
SPECIAL
)
147
tmpState =
NOT_STARTED
;
148
SetBossState
(i,
EncounterState
(tmpState));
149
}
150
}
151
else
152
OUT_LOAD_INST_DATA_FAIL
;
153
154
OUT_LOAD_INST_DATA_COMPLETE
;
155
}
156
157
protected
:
158
uint64
MaulgarGUID
;
159
};
160
161
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
162
{
163
return
new
instance_gruuls_lair_InstanceMapScript
(map);
164
}
165
};
166
167
void
AddSC_instance_gruuls_lair
()
168
{
169
new
instance_gruuls_lair
();
170
}
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
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::AddMinion
void AddMinion(Creature *minion, bool add)
Definition
InstanceScript.cpp:170
InstanceScript::AddDoor
void AddDoor(GameObject *door, bool add)
Definition
InstanceScript.cpp:126
InstanceScript::LoadMinionData
void LoadMinionData(MinionData const *data)
Definition
InstanceScript.cpp:52
InstanceScript::LoadDoorData
void LoadDoorData(DoorData const *data)
Definition
InstanceScript.cpp:64
Map
Definition
Map.h:238
instance_gruuls_lair
Definition
instance_gruuls_lair.cpp:27
instance_gruuls_lair::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_gruuls_lair.cpp:161
instance_gruuls_lair::instance_gruuls_lair
instance_gruuls_lair()
Definition
instance_gruuls_lair.cpp:29
gruuls_lair.h
GLScriptName
#define GLScriptName
Definition
gruuls_lair.h:9
GO_GRUUL_DOOR
@ GO_GRUUL_DOOR
Definition
gruuls_lair.h:32
GO_MAULGAR_DOOR
@ GO_MAULGAR_DOOR
Definition
gruuls_lair.h:31
NPC_MAULGAR
@ NPC_MAULGAR
Definition
gruuls_lair.h:22
NPC_KROSH_FIREHAND
@ NPC_KROSH_FIREHAND
Definition
gruuls_lair.h:23
NPC_KIGGLER_THE_CRAZED
@ NPC_KIGGLER_THE_CRAZED
Definition
gruuls_lair.h:25
NPC_OLM_THE_SUMMONER
@ NPC_OLM_THE_SUMMONER
Definition
gruuls_lair.h:24
NPC_BLINDEYE_THE_SEER
@ NPC_BLINDEYE_THE_SEER
Definition
gruuls_lair.h:26
DATA_GRUUL
@ DATA_GRUUL
Definition
gruuls_lair.h:17
DATA_MAULGAR
@ DATA_MAULGAR
Definition
gruuls_lair.h:16
doorData
DoorData const doorData[]
Definition
instance_baradin_hold.cpp:10
minionData
MinionData const minionData[]
Definition
instance_gruuls_lair.cpp:17
doorData
DoorData const doorData[]
Definition
instance_gruuls_lair.cpp:10
AddSC_instance_gruuls_lair
void AddSC_instance_gruuls_lair()
Definition
instance_gruuls_lair.cpp:167
minionData
MinionData const minionData[]
Definition
instance_naxxramas.cpp:49
DoorData
Definition
InstanceScript.h:82
MinionData
Definition
InstanceScript.h:89
instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript
Definition
instance_gruuls_lair.cpp:32
instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::instance_gruuls_lair_InstanceMapScript
instance_gruuls_lair_InstanceMapScript(Map *map)
Definition
instance_gruuls_lair.cpp:33
instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_gruuls_lair.cpp:42
instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *go) OVERRIDE
Definition
instance_gruuls_lair.cpp:76
instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::Load
void Load(char const *str) OVERRIDE
Definition
instance_gruuls_lair.cpp:125
instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::GetData64
uint64 GetData64(uint32 type) const OVERRIDE
Definition
instance_gruuls_lair.cpp:102
instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::MaulgarGUID
uint64 MaulgarGUID
Definition
instance_gruuls_lair.cpp:158
instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::OnCreatureRemove
void OnCreatureRemove(Creature *creature) OVERRIDE
Definition
instance_gruuls_lair.cpp:60
instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_gruuls_lair.cpp:114
instance_gruuls_lair::instance_gruuls_lair_InstanceMapScript::OnGameObjectRemove
void OnGameObjectRemove(GameObject *go) OVERRIDE
Definition
instance_gruuls_lair.cpp:89
src
server
scripts
Outland
GruulsLair
instance_gruuls_lair.cpp
Generated on
for Project SkyFire Core by
1.17.0