Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_mechanar.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 "
mechanar.h
"
9
10
static
DoorData
const
doorData
[] =
11
{
12
{
GO_DOOR_MOARG_1
,
DATA_GATEWATCHER_IRON_HAND
,
DOOR_TYPE_PASSAGE
,
BOUNDARY_NONE
},
13
{
GO_DOOR_MOARG_2
,
DATA_GATEWATCHER_GYROKILL
,
DOOR_TYPE_PASSAGE
,
BOUNDARY_NONE
},
14
{
GO_DOOR_NETHERMANCER
,
DATA_NETHERMANCER_SEPRETHREA
,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
},
15
{0, 0,
DOOR_TYPE_ROOM
,
BOUNDARY_NONE
}
16
};
17
18
class
instance_mechanar
:
public
InstanceMapScript
19
{
20
public
:
21
instance_mechanar
():
InstanceMapScript
(
"instance_mechanar"
, 554) { }
22
23
struct
instance_mechanar_InstanceMapScript
:
public
InstanceScript
24
{
25
instance_mechanar_InstanceMapScript
(
Map
* map) :
InstanceScript
(map)
26
{
27
SetBossNumber
(
EncounterCount
);
28
LoadDoorData
(
doorData
);
29
}
30
31
32
void
OnGameObjectCreate
(
GameObject
* gameObject)
OVERRIDE
33
{
34
switch
(gameObject->GetEntry())
35
{
36
case
GO_DOOR_MOARG_1
:
37
case
GO_DOOR_MOARG_2
:
38
case
GO_DOOR_NETHERMANCER
:
39
AddDoor
(gameObject,
true
);
40
break
;
41
default
:
42
break
;
43
}
44
}
45
46
void
OnGameObjectRemove
(
GameObject
* gameObject)
OVERRIDE
47
{
48
switch
(gameObject->GetEntry())
49
{
50
case
GO_DOOR_MOARG_1
:
51
case
GO_DOOR_MOARG_2
:
52
case
GO_DOOR_NETHERMANCER
:
53
AddDoor
(gameObject,
false
);
54
break
;
55
default
:
56
break
;
57
}
58
}
59
60
bool
SetBossState
(
uint32
type,
EncounterState
state)
OVERRIDE
61
{
62
if
(!
InstanceScript::SetBossState
(type, state))
63
return
false
;
64
65
switch
(type)
66
{
67
case
DATA_GATEWATCHER_GYROKILL
:
68
case
DATA_GATEWATCHER_IRON_HAND
:
69
case
DATA_MECHANOLORD_CAPACITUS
:
70
case
DATA_NETHERMANCER_SEPRETHREA
:
71
case
DATA_PATHALEON_THE_CALCULATOR
:
72
break
;
73
default
:
74
break
;
75
}
76
77
return
true
;
78
}
79
80
std::string
GetSaveData
()
OVERRIDE
81
{
82
OUT_SAVE_INST_DATA
;
83
84
std::ostringstream saveStream;
85
saveStream <<
"M C "
<<
GetBossSaveData
();
86
87
OUT_SAVE_INST_DATA_COMPLETE
;
88
return
saveStream.str();
89
}
90
91
void
Load
(
const
char
* str)
OVERRIDE
92
{
93
if
(!str)
94
{
95
OUT_LOAD_INST_DATA_FAIL
;
96
return
;
97
}
98
99
OUT_LOAD_INST_DATA
(str);
100
101
char
dataHead1, dataHead2;
102
103
std::istringstream loadStream(str);
104
loadStream >> dataHead1 >> dataHead2;
105
106
if
(dataHead1 ==
'M'
&& dataHead2 ==
'C'
)
107
{
108
for
(
uint32
i = 0; i <
EncounterCount
; ++i)
109
{
110
uint32
tmpState;
111
loadStream >> tmpState;
112
if
(tmpState ==
IN_PROGRESS
|| tmpState >
SPECIAL
)
113
tmpState =
NOT_STARTED
;
114
SetBossState
(i,
EncounterState
(tmpState));
115
}
116
}
117
else
118
OUT_LOAD_INST_DATA_FAIL
;
119
120
OUT_LOAD_INST_DATA_COMPLETE
;
121
}
122
};
123
124
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
125
{
126
return
new
instance_mechanar_InstanceMapScript
(map);
127
}
128
};
129
130
void
AddSC_instance_mechanar
()
131
{
132
new
instance_mechanar
();
133
}
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
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
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
Map
Definition
Map.h:238
instance_mechanar
Definition
instance_mechanar.cpp:19
instance_mechanar::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_mechanar.cpp:124
instance_mechanar::instance_mechanar
instance_mechanar()
Definition
instance_mechanar.cpp:21
doorData
DoorData const doorData[]
Definition
instance_baradin_hold.cpp:10
AddSC_instance_mechanar
void AddSC_instance_mechanar()
Definition
instance_mechanar.cpp:130
doorData
static DoorData const doorData[]
Definition
instance_mechanar.cpp:10
mechanar.h
GO_DOOR_MOARG_1
@ GO_DOOR_MOARG_1
Definition
mechanar.h:22
GO_DOOR_MOARG_2
@ GO_DOOR_MOARG_2
Definition
mechanar.h:23
GO_DOOR_NETHERMANCER
@ GO_DOOR_NETHERMANCER
Definition
mechanar.h:24
DATA_NETHERMANCER_SEPRETHREA
@ DATA_NETHERMANCER_SEPRETHREA
Definition
mechanar.h:16
DATA_MECHANOLORD_CAPACITUS
@ DATA_MECHANOLORD_CAPACITUS
Definition
mechanar.h:15
DATA_PATHALEON_THE_CALCULATOR
@ DATA_PATHALEON_THE_CALCULATOR
Definition
mechanar.h:17
DATA_GATEWATCHER_IRON_HAND
@ DATA_GATEWATCHER_IRON_HAND
Definition
mechanar.h:14
DATA_GATEWATCHER_GYROKILL
@ DATA_GATEWATCHER_GYROKILL
Definition
mechanar.h:13
DoorData
Definition
InstanceScript.h:82
instance_mechanar::instance_mechanar_InstanceMapScript
Definition
instance_mechanar.cpp:24
instance_mechanar::instance_mechanar_InstanceMapScript::Load
void Load(const char *str) OVERRIDE
Definition
instance_mechanar.cpp:91
instance_mechanar::instance_mechanar_InstanceMapScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_mechanar.cpp:80
instance_mechanar::instance_mechanar_InstanceMapScript::OnGameObjectRemove
void OnGameObjectRemove(GameObject *gameObject) OVERRIDE
Definition
instance_mechanar.cpp:46
instance_mechanar::instance_mechanar_InstanceMapScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *gameObject) OVERRIDE
Definition
instance_mechanar.cpp:32
instance_mechanar::instance_mechanar_InstanceMapScript::instance_mechanar_InstanceMapScript
instance_mechanar_InstanceMapScript(Map *map)
Definition
instance_mechanar.cpp:25
instance_mechanar::instance_mechanar_InstanceMapScript::SetBossState
bool SetBossState(uint32 type, EncounterState state) OVERRIDE
Definition
instance_mechanar.cpp:60
src
server
scripts
Outland
TempestKeep
Mechanar
instance_mechanar.cpp
Generated on
for Project SkyFire Core by
1.17.0