Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_gnomeregan.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 "
gnomeregan.h
"
9
#include "
Player.h
"
10
11
#define MAX_ENCOUNTER 1
12
13
class
instance_gnomeregan
:
public
InstanceMapScript
14
{
15
public
:
16
instance_gnomeregan
() :
InstanceMapScript
(
"instance_gnomeregan"
, 90) { }
17
18
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
19
{
20
return
new
instance_gnomeregan_InstanceMapScript
(map);
21
}
22
23
struct
instance_gnomeregan_InstanceMapScript
:
public
InstanceScript
24
{
25
instance_gnomeregan_InstanceMapScript
(
Map
* map) :
InstanceScript
(map)
26
{
27
}
28
29
uint32
m_auiEncounter
[
MAX_ENCOUNTER
];
30
31
uint64
uiCaveInLeftGUID
;
32
uint64
uiCaveInRightGUID
;
33
34
uint64
uiBastmasterEmiShortfuseGUID
;
35
36
void
Initialize
()
OVERRIDE
37
{
38
memset(&
m_auiEncounter
, 0,
sizeof
(
m_auiEncounter
));
39
40
uiCaveInLeftGUID
= 0;
41
uiCaveInRightGUID
= 0;
42
43
uiBastmasterEmiShortfuseGUID
= 0;
44
}
45
46
void
Load
(
const
char
* in)
OVERRIDE
47
{
48
if
(!in)
49
{
50
OUT_LOAD_INST_DATA_FAIL
;
51
return
;
52
}
53
54
OUT_LOAD_INST_DATA
(in);
55
56
std::istringstream loadStream(in);
57
loadStream >>
m_auiEncounter
[0];
58
59
for
(
uint8
i = 0; i <
MAX_ENCOUNTER
; ++i)
60
{
61
if
(
m_auiEncounter
[i] ==
IN_PROGRESS
)
62
m_auiEncounter
[i] =
NOT_STARTED
;
63
}
64
65
OUT_LOAD_INST_DATA_COMPLETE
;
66
}
67
68
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
69
{
70
switch
(creature->GetEntry())
71
{
72
case
NPC_BLASTMASTER_EMI_SHORTFUSE
:
uiBastmasterEmiShortfuseGUID
= creature->GetGUID();
break
;
73
}
74
}
75
76
void
OnGameObjectCreate
(
GameObject
* go)
OVERRIDE
77
{
78
switch
(go->GetEntry())
79
{
80
case
GO_CAVE_IN_LEFT
:
81
uiCaveInLeftGUID
= go->GetGUID();
82
if
(
m_auiEncounter
[0] ==
DONE
||
m_auiEncounter
[0] ==
NOT_STARTED
)
83
HandleGameObject
(0,
false
, go);
84
break
;
85
case
GO_CAVE_IN_RIGHT
:
86
uiCaveInRightGUID
= go->GetGUID();
87
if
(
m_auiEncounter
[0] ==
DONE
||
m_auiEncounter
[0] ==
NOT_STARTED
)
88
HandleGameObject
(0,
false
, go);
89
break
;
90
}
91
}
92
93
void
SetData
(
uint32
uiType,
uint32
uiData)
OVERRIDE
94
{
95
switch
(uiType)
96
{
97
case
TYPE_EVENT
:
98
m_auiEncounter
[0] = uiData;
99
if
(uiData ==
DONE
)
100
SaveToDB
();
101
break
;
102
}
103
}
104
105
uint32
GetData
(
uint32
uiType)
const
OVERRIDE
106
{
107
switch
(uiType)
108
{
109
case
TYPE_EVENT
:
return
m_auiEncounter
[0];
110
}
111
return
0;
112
}
113
114
uint64
GetData64
(
uint32
uiType)
const
OVERRIDE
115
{
116
switch
(uiType)
117
{
118
case
DATA_GO_CAVE_IN_LEFT
:
return
uiCaveInLeftGUID
;
119
case
DATA_GO_CAVE_IN_RIGHT
:
return
uiCaveInRightGUID
;
120
case
DATA_NPC_BASTMASTER_EMI_SHORTFUSE
:
return
uiBastmasterEmiShortfuseGUID
;
121
}
122
123
return
0;
124
}
125
};
126
};
127
128
void
AddSC_instance_gnomeregan
()
129
{
130
new
instance_gnomeregan
();
131
}
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_LOAD_INST_DATA_COMPLETE
#define OUT_LOAD_INST_DATA_COMPLETE
Definition
InstanceScript.h:17
OUT_LOAD_INST_DATA
#define OUT_LOAD_INST_DATA(a)
Definition
InstanceScript.h:16
Player.h
ScriptMgr.h
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::SaveToDB
void SaveToDB()
Definition
InstanceScript.cpp:20
InstanceScript::HandleGameObject
void HandleGameObject(uint64 guid, bool open, GameObject *go=NULL)
Definition
InstanceScript.cpp:33
Map
Definition
Map.h:238
instance_gnomeregan
Definition
instance_gnomeregan.cpp:14
instance_gnomeregan::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_gnomeregan.cpp:18
instance_gnomeregan::instance_gnomeregan
instance_gnomeregan()
Definition
instance_gnomeregan.cpp:16
gnomeregan.h
DATA_NPC_BASTMASTER_EMI_SHORTFUSE
@ DATA_NPC_BASTMASTER_EMI_SHORTFUSE
Definition
gnomeregan.h:33
DATA_GO_CAVE_IN_LEFT
@ DATA_GO_CAVE_IN_LEFT
Definition
gnomeregan.h:31
DATA_GO_CAVE_IN_RIGHT
@ DATA_GO_CAVE_IN_RIGHT
Definition
gnomeregan.h:32
GO_CAVE_IN_LEFT
@ GO_CAVE_IN_LEFT
Definition
gnomeregan.h:11
GO_CAVE_IN_RIGHT
@ GO_CAVE_IN_RIGHT
Definition
gnomeregan.h:12
NPC_BLASTMASTER_EMI_SHORTFUSE
@ NPC_BLASTMASTER_EMI_SHORTFUSE
Definition
gnomeregan.h:18
TYPE_EVENT
@ TYPE_EVENT
Definition
gnomeregan.h:26
MAX_ENCOUNTER
#define MAX_ENCOUNTER
Definition
instance_gnomeregan.cpp:11
AddSC_instance_gnomeregan
void AddSC_instance_gnomeregan()
Definition
instance_gnomeregan.cpp:128
instance_gnomeregan::instance_gnomeregan_InstanceMapScript
Definition
instance_gnomeregan.cpp:24
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::instance_gnomeregan_InstanceMapScript
instance_gnomeregan_InstanceMapScript(Map *map)
Definition
instance_gnomeregan.cpp:25
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::GetData64
uint64 GetData64(uint32 uiType) const OVERRIDE
Definition
instance_gnomeregan.cpp:114
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *go) OVERRIDE
Definition
instance_gnomeregan.cpp:76
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::Load
void Load(const char *in) OVERRIDE
Definition
instance_gnomeregan.cpp:46
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::uiBastmasterEmiShortfuseGUID
uint64 uiBastmasterEmiShortfuseGUID
Definition
instance_gnomeregan.cpp:34
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::Initialize
void Initialize() OVERRIDE
Definition
instance_gnomeregan.cpp:36
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::m_auiEncounter
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition
instance_gnomeregan.cpp:29
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_gnomeregan.cpp:68
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::uiCaveInLeftGUID
uint64 uiCaveInLeftGUID
Definition
instance_gnomeregan.cpp:31
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::uiCaveInRightGUID
uint64 uiCaveInRightGUID
Definition
instance_gnomeregan.cpp:32
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::GetData
uint32 GetData(uint32 uiType) const OVERRIDE
Definition
instance_gnomeregan.cpp:105
instance_gnomeregan::instance_gnomeregan_InstanceMapScript::SetData
void SetData(uint32 uiType, uint32 uiData) OVERRIDE
Definition
instance_gnomeregan.cpp:93
src
server
scripts
EasternKingdoms
Gnomeregan
instance_gnomeregan.cpp
Generated on
for Project SkyFire Core by
1.17.0