Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_the_botanica.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 "
the_botanica.h
"
9
10
class
instance_the_botanica
:
public
InstanceMapScript
11
{
12
public
:
13
instance_the_botanica
() :
InstanceMapScript
(
"instance_the_botanica"
, 553) { }
14
15
struct
instance_the_botanica_InstanceMapScript
:
public
InstanceScript
16
{
17
instance_the_botanica_InstanceMapScript
(
Map
* map) :
InstanceScript
(map)
18
{
19
CommanderSarannisGUID
= 0;
20
HighBotanistFreywinnGUID
= 0;
21
ThorngrinTheTenderGUID
= 0;
22
LajGUID
= 0;
23
WarpSplinterGUID
= 0;
24
}
25
26
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
27
{
28
switch
(creature->GetEntry())
29
{
30
case
NPC_COMMANDER_SARANNIS
:
31
CommanderSarannisGUID
= creature->GetGUID();
32
break
;
33
case
NPC_HIGH_BOTANIST_FREYWINN
:
34
HighBotanistFreywinnGUID
= creature->GetGUID();
35
break
;
36
case
NPC_THORNGRIN_THE_TENDER
:
37
ThorngrinTheTenderGUID
= creature->GetGUID();
38
break
;
39
case
NPC_LAJ
:
40
LajGUID
= creature->GetGUID();
41
break
;
42
case
NPC_WARP_SPLINTER
:
43
WarpSplinterGUID
= creature->GetGUID();
44
break
;
45
default
:
46
break
;
47
}
48
}
49
50
uint64
GetData64
(
uint32
type)
const
OVERRIDE
51
{
52
switch
(type)
53
{
54
case
DATA_COMMANDER_SARANNIS
:
55
return
CommanderSarannisGUID
;
56
case
DATA_HIGH_BOTANIST_FREYWINN
:
57
return
HighBotanistFreywinnGUID
;
58
case
DATA_THORNGRIN_THE_TENDER
:
59
return
ThorngrinTheTenderGUID
;
60
case
DATA_LAJ
:
61
return
LajGUID
;
62
case
DATA_WARP_SPLINTER
:
63
return
WarpSplinterGUID
;
64
default
:
65
break
;
66
}
67
68
return
0;
69
}
70
71
bool
SetBossState
(
uint32
type,
EncounterState
state)
OVERRIDE
72
{
73
if
(!
InstanceScript::SetBossState
(type, state))
74
return
false
;
75
76
switch
(type)
77
{
78
case
DATA_COMMANDER_SARANNIS
:
79
case
DATA_HIGH_BOTANIST_FREYWINN
:
80
case
DATA_THORNGRIN_THE_TENDER
:
81
case
DATA_LAJ
:
82
case
DATA_WARP_SPLINTER
:
83
break
;
84
default
:
85
break
;
86
}
87
88
return
true
;
89
}
90
91
std::string
GetSaveData
()
OVERRIDE
92
{
93
OUT_SAVE_INST_DATA
;
94
95
std::ostringstream saveStream;
96
saveStream <<
"B O "
<<
GetBossSaveData
();
97
98
OUT_SAVE_INST_DATA_COMPLETE
;
99
return
saveStream.str();
100
}
101
102
void
Load
(
char
const
* str)
OVERRIDE
103
{
104
if
(!str)
105
{
106
OUT_LOAD_INST_DATA_FAIL
;
107
return
;
108
}
109
110
OUT_LOAD_INST_DATA
(str);
111
112
char
dataHead1, dataHead2;
113
114
std::istringstream loadStream(str);
115
loadStream >> dataHead1 >> dataHead2;
116
117
if
(dataHead1 ==
'B'
&& dataHead2 ==
'O'
)
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
CommanderSarannisGUID
;
137
uint64
HighBotanistFreywinnGUID
;
138
uint64
ThorngrinTheTenderGUID
;
139
uint64
LajGUID
;
140
uint64
WarpSplinterGUID
;
141
};
142
143
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
144
{
145
return
new
instance_the_botanica_InstanceMapScript
(map);
146
}
147
};
148
149
void
AddSC_instance_the_botanica
()
150
{
151
new
instance_the_botanica
;
152
}
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
ScriptMgr.h
EncounterCount
uint32 const EncounterCount
Definition
baradin_hold.h:15
Creature
Definition
Creature.h:427
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::SetBossState
virtual bool SetBossState(uint32 id, EncounterState state)
Definition
InstanceScript.cpp:182
InstanceScript::GetBossSaveData
std::string GetBossSaveData()
Definition
InstanceScript.cpp:239
Map
Definition
Map.h:238
instance_the_botanica
Definition
instance_the_botanica.cpp:11
instance_the_botanica::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_the_botanica.cpp:143
instance_the_botanica::instance_the_botanica
instance_the_botanica()
Definition
instance_the_botanica.cpp:13
AddSC_instance_the_botanica
void AddSC_instance_the_botanica()
Definition
instance_the_botanica.cpp:149
instance_the_botanica::instance_the_botanica_InstanceMapScript
Definition
instance_the_botanica.cpp:16
instance_the_botanica::instance_the_botanica_InstanceMapScript::SetBossState
bool SetBossState(uint32 type, EncounterState state) OVERRIDE
Definition
instance_the_botanica.cpp:71
instance_the_botanica::instance_the_botanica_InstanceMapScript::CommanderSarannisGUID
uint64 CommanderSarannisGUID
Definition
instance_the_botanica.cpp:136
instance_the_botanica::instance_the_botanica_InstanceMapScript::LajGUID
uint64 LajGUID
Definition
instance_the_botanica.cpp:139
instance_the_botanica::instance_the_botanica_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_the_botanica.cpp:26
instance_the_botanica::instance_the_botanica_InstanceMapScript::instance_the_botanica_InstanceMapScript
instance_the_botanica_InstanceMapScript(Map *map)
Definition
instance_the_botanica.cpp:17
instance_the_botanica::instance_the_botanica_InstanceMapScript::ThorngrinTheTenderGUID
uint64 ThorngrinTheTenderGUID
Definition
instance_the_botanica.cpp:138
instance_the_botanica::instance_the_botanica_InstanceMapScript::GetSaveData
std::string GetSaveData() OVERRIDE
Definition
instance_the_botanica.cpp:91
instance_the_botanica::instance_the_botanica_InstanceMapScript::GetData64
uint64 GetData64(uint32 type) const OVERRIDE
Definition
instance_the_botanica.cpp:50
instance_the_botanica::instance_the_botanica_InstanceMapScript::HighBotanistFreywinnGUID
uint64 HighBotanistFreywinnGUID
Definition
instance_the_botanica.cpp:137
instance_the_botanica::instance_the_botanica_InstanceMapScript::Load
void Load(char const *str) OVERRIDE
Definition
instance_the_botanica.cpp:102
instance_the_botanica::instance_the_botanica_InstanceMapScript::WarpSplinterGUID
uint64 WarpSplinterGUID
Definition
instance_the_botanica.cpp:140
the_botanica.h
NPC_WARP_SPLINTER
@ NPC_WARP_SPLINTER
Definition
the_botanica.h:26
NPC_LAJ
@ NPC_LAJ
Definition
the_botanica.h:25
NPC_COMMANDER_SARANNIS
@ NPC_COMMANDER_SARANNIS
Definition
the_botanica.h:22
NPC_HIGH_BOTANIST_FREYWINN
@ NPC_HIGH_BOTANIST_FREYWINN
Definition
the_botanica.h:23
NPC_THORNGRIN_THE_TENDER
@ NPC_THORNGRIN_THE_TENDER
Definition
the_botanica.h:24
DATA_WARP_SPLINTER
@ DATA_WARP_SPLINTER
Definition
the_botanica.h:17
DATA_COMMANDER_SARANNIS
@ DATA_COMMANDER_SARANNIS
Definition
the_botanica.h:13
DATA_LAJ
@ DATA_LAJ
Definition
the_botanica.h:16
DATA_HIGH_BOTANIST_FREYWINN
@ DATA_HIGH_BOTANIST_FREYWINN
Definition
the_botanica.h:14
DATA_THORNGRIN_THE_TENDER
@ DATA_THORNGRIN_THE_TENDER
Definition
the_botanica.h:15
src
server
scripts
Outland
TempestKeep
botanica
instance_the_botanica.cpp
Generated on
for Project SkyFire Core by
1.17.0