Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_hellfire_ramparts.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_Hellfire_Ramparts
8
SD%Complete: 50
9
SDComment:
10
SDCategory: Hellfire Ramparts
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
InstanceScript.h
"
15
#include "
hellfire_ramparts.h
"
16
17
class
instance_ramparts
:
public
InstanceMapScript
18
{
19
public
:
20
instance_ramparts
() :
InstanceMapScript
(
"instance_ramparts"
, 543) { }
21
22
struct
instance_ramparts_InstanceMapScript
:
public
InstanceScript
23
{
24
instance_ramparts_InstanceMapScript
(
Map
* map) :
InstanceScript
(map)
25
{
26
SetBossNumber
(
EncounterCount
);
27
felIronChestGUID
= 0;
28
spawned
=
false
;
29
}
30
31
void
OnGameObjectCreate
(
GameObject
* go)
OVERRIDE
32
{
33
switch
(go->GetEntry())
34
{
35
case
GO_FEL_IRON_CHEST_NORMAL
:
36
case
GO_FEL_IRON_CHECT_HEROIC
:
37
felIronChestGUID
= go->GetGUID();
38
break
;
39
}
40
}
41
42
bool
SetBossState
(
uint32
type,
EncounterState
state)
OVERRIDE
43
{
44
if
(!
InstanceScript::SetBossState
(type, state))
45
return
false
;
46
47
switch
(type)
48
{
49
case
DATA_VAZRUDEN
:
50
case
DATA_NAZAN
:
51
if
(
GetBossState
(
DATA_VAZRUDEN
) ==
DONE
&&
GetBossState
(
DATA_NAZAN
) ==
DONE
&& !
spawned
)
52
{
53
DoRespawnGameObject
(
felIronChestGUID
,
HOUR
*
IN_MILLISECONDS
);
54
spawned
=
true
;
55
}
56
break
;
57
}
58
return
true
;
59
}
60
61
std::string
GetSaveData
()
OVERRIDE
62
{
63
OUT_SAVE_INST_DATA
;
64
65
std::ostringstream saveStream;
66
saveStream <<
"H R "
<<
GetBossSaveData
();
67
68
OUT_SAVE_INST_DATA_COMPLETE
;
69
return
saveStream.str();
70
}
71
72
void
Load
(
const
char
* strIn)
OVERRIDE
73
{
74
if
(!strIn)
75
{
76
OUT_LOAD_INST_DATA_FAIL
;
77
return
;
78
}
79
80
OUT_LOAD_INST_DATA
(strIn);
81
82
char
dataHead1, dataHead2;
83
84
std::istringstream loadStream(strIn);
85
loadStream >> dataHead1 >> dataHead2;
86
87
if
(dataHead1 ==
'H'
&& dataHead2 ==
'R'
)
88
{
89
for
(
uint8
i = 0; i <
EncounterCount
; ++i)
90
{
91
uint32
tmpState;
92
loadStream >> tmpState;
93
if
(tmpState ==
IN_PROGRESS
|| tmpState >
SPECIAL
)
94
tmpState =
NOT_STARTED
;
95
96
SetBossState
(i,
EncounterState
(tmpState));
97
}
98
}
99
else
100
OUT_LOAD_INST_DATA_FAIL
;
101
102
OUT_LOAD_INST_DATA_COMPLETE
;
103
}
104
105
protected
:
106
uint64
felIronChestGUID
;
107
bool
spawned
;
108
};
109
110
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
111
{
112
return
new
instance_ramparts_InstanceMapScript
(map);
113
}
114
};
115
116
void
AddSC_instance_ramparts
()
117
{
118
new
instance_ramparts
;
119
}
IN_MILLISECONDS
@ IN_MILLISECONDS
Definition
Common.h:125
HOUR
@ HOUR
Definition
Common.h:120
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
DONE
@ DONE
Definition
InstanceScript.h:49
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
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::GetBossState
EncounterState GetBossState(uint32 id) const
Definition
InstanceScript.h:185
InstanceScript::DoRespawnGameObject
void DoRespawnGameObject(uint64 guid, uint32 timeToDespawn=MINUTE)
Definition
InstanceScript.cpp:268
Map
Definition
Map.h:238
instance_ramparts
Definition
instance_hellfire_ramparts.cpp:18
instance_ramparts::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_hellfire_ramparts.cpp:110
instance_ramparts::instance_ramparts
instance_ramparts()
Definition
instance_hellfire_ramparts.cpp:20
hellfire_ramparts.h
GO_FEL_IRON_CHECT_HEROIC
@ GO_FEL_IRON_CHECT_HEROIC
Definition
hellfire_ramparts.h:31
GO_FEL_IRON_CHEST_NORMAL
@ GO_FEL_IRON_CHEST_NORMAL
Definition
hellfire_ramparts.h:30
DATA_VAZRUDEN
@ DATA_VAZRUDEN
Definition
hellfire_ramparts.h:15
DATA_NAZAN
@ DATA_NAZAN
Definition
hellfire_ramparts.h:16
AddSC_instance_ramparts
void AddSC_instance_ramparts()
Definition
instance_hellfire_ramparts.cpp:116
instance_ramparts::instance_ramparts_InstanceMapScript
Definition
instance_hellfire_ramparts.cpp:23
instance_ramparts::instance_ramparts_InstanceMapScript::Load
void Load(const char *strIn) OVERRIDE
Definition
instance_hellfire_ramparts.cpp:72
instance_ramparts::instance_ramparts_InstanceMapScript::instance_ramparts_InstanceMapScript
instance_ramparts_InstanceMapScript(Map *map)
Definition
instance_hellfire_ramparts.cpp:24
instance_ramparts::instance_ramparts_InstanceMapScript::spawned
bool spawned
Definition
instance_hellfire_ramparts.cpp:107
instance_ramparts::instance_ramparts_InstanceMapScript::SetBossState
bool SetBossState(uint32 type, EncounterState state) OVERRIDE
Definition
instance_hellfire_ramparts.cpp:42
instance_ramparts::instance_ramparts_InstanceMapScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_hellfire_ramparts.cpp:61
instance_ramparts::instance_ramparts_InstanceMapScript::felIronChestGUID
uint64 felIronChestGUID
Definition
instance_hellfire_ramparts.cpp:106
instance_ramparts::instance_ramparts_InstanceMapScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *go) OVERRIDE
Definition
instance_hellfire_ramparts.cpp:31
src
server
scripts
Outland
HellfireCitadel
HellfireRamparts
instance_hellfire_ramparts.cpp
Generated on
for Project SkyFire Core by
1.17.0