Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
instance_baradin_hold.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 "baradin_hold.h"
7#include "InstanceScript.h"
8#include "ScriptMgr.h"
9
16
18{
19 public:
21
23 {
33
35 {
36 switch(creature->GetEntry())
37 {
38 case BOSS_ARGALOTH:
39 ArgalothGUID = creature->GetGUID();
40 break;
41 case BOSS_OCCUTHAR:
42 OccutharGUID = creature->GetGUID();
43 break;
44 case BOSS_ALIZABAL:
45 AlizabalGUID = creature->GetGUID();
46 break;
47 }
48 }
49
51 {
52 switch(go->GetEntry())
53 {
57 AddDoor(go, true);
58 break;
59 }
60 }
61
63 {
64 switch (data)
65 {
66 case DATA_ARGALOTH:
67 return ArgalothGUID;
68 case DATA_OCCUTHAR:
69 return OccutharGUID;
70 case DATA_ALIZABAL:
71 return AlizabalGUID;
72 default:
73 break;
74 }
75
76 return 0;
77 }
78
80 {
81 switch(go->GetEntry())
82 {
86 AddDoor(go, false);
87 break;
88 }
89 }
90
91 std::string GetSaveData() OVERRIDE
92 {
94
95 std::ostringstream saveStream;
96 saveStream << "B H " << GetBossSaveData();
97
99 return saveStream.str();
100 }
101
102 void Load(const char* in) OVERRIDE
103 {
104 if (!in)
105 {
107 return;
108 }
109
111
112 char dataHead1, dataHead2;
113
114 std::istringstream loadStream(in);
115 loadStream >> dataHead1 >> dataHead2;
116
117 if (dataHead1 == 'B' && dataHead2 == 'H')
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
131
133 }
134
135 protected:
139 };
140
145};
146
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
std::uint64_t uint64
Definition Define.h:76
#define OUT_LOAD_INST_DATA_FAIL
EncounterState
@ IN_PROGRESS
@ SPECIAL
@ NOT_STARTED
#define OUT_SAVE_INST_DATA_COMPLETE
#define OUT_LOAD_INST_DATA_COMPLETE
#define OUT_SAVE_INST_DATA
#define OUT_LOAD_INST_DATA(a)
@ DOOR_TYPE_ROOM
@ BOUNDARY_NONE
uint32 const EncounterCount
@ GO_OCCUTHAR_DOOR
@ GO_ALIZABAL_DOOR
@ GO_ARGALOTH_DOOR
#define BHScriptName
@ BOSS_ALIZABAL
@ BOSS_ARGALOTH
@ BOSS_OCCUTHAR
@ DATA_OCCUTHAR
@ DATA_ALIZABAL
@ DATA_ARGALOTH
InstanceMapScript(const char *name, uint32 mapId)
InstanceScript(Map *map)
void SetBossNumber(uint32 number)
virtual bool SetBossState(uint32 id, EncounterState state)
std::string GetBossSaveData()
void AddDoor(GameObject *door, bool add)
void LoadDoorData(DoorData const *data)
InstanceScript * GetInstanceScript(InstanceMap *map) const
DoorData const doorData[]
void AddSC_instance_baradin_hold()