Core/Scripts: Fix even more scriptbugs from convertion (thanks to Kierkegaard)

--HG--
branch : trunk
This commit is contained in:
click
2010-08-18 20:35:29 +02:00
parent 8bf208c0fd
commit 95f0d56077
9 changed files with 218 additions and 220 deletions
@@ -45,7 +45,7 @@ class instance_molten_core : public InstanceMapScript
public: public:
instance_molten_core() : InstanceMapScript("instance_molten_core", 409) { } instance_molten_core() : InstanceMapScript("instance_molten_core", 409) { }
InstanceScript* GetInstance_InstanceMapScript(Map* pMap) InstanceScript* GetInstanceScript(Map* pMap)
{ {
return new instance_molten_core_InstanceMapScript (pMap); return new instance_molten_core_InstanceMapScript (pMap);
} }
@@ -290,7 +290,7 @@ class instance_uldaman : public InstanceMapScript
} // end GetData64 } // end GetData64
}; };
InstanceScript* OnGetInstanceData(InstanceMap* pMap) InstanceScript* GetInstanceScript(InstanceMap* pMap)
{ {
return new instance_uldaman_InstanceMapScript(pMap); return new instance_uldaman_InstanceMapScript(pMap);
} }
@@ -153,7 +153,7 @@ class instance_zulgurub : public InstanceMapScript
} }
}; };
InstanceScript* OnGetInstanceData(InstanceMap* pMap) InstanceScript* GetInstanceScript(InstanceMap* pMap)
{ {
return new instance_zulgurub_InstanceMapScript(pMap); return new instance_zulgurub_InstanceMapScript(pMap);
} }
@@ -46,7 +46,7 @@ class instance_hyjal : public InstanceMapScript
public: public:
instance_hyjal() : InstanceMapScript("instance_hyjal", 534) { } instance_hyjal() : InstanceMapScript("instance_hyjal", 534) { }
InstanceScript* GetInstanceData_instance_mount_hyjal_InstanceMapScript(Map* pMap) InstanceScript* GetInstanceScript(Map* pMap)
{ {
return new instance_mount_hyjal_InstanceMapScript(pMap); return new instance_mount_hyjal_InstanceMapScript(pMap);
} }
@@ -41,7 +41,7 @@ class instance_ruins_of_ahnqiraj : public InstanceMapScript
public: public:
instance_ruins_of_ahnqiraj() : InstanceMapScript("instance_ruins_of_ahnqiraj", 509) { } instance_ruins_of_ahnqiraj() : InstanceMapScript("instance_ruins_of_ahnqiraj", 509) { }
InstanceScript* GetInstanceData_instance_ruins_of_ahn_qiraj_InstanceMapScript(Map* pMap) InstanceScript* GetInstanceScript(Map* pMap)
{ {
return new instance_ruins_of_ahn_qiraj_InstanceMapScript(pMap); return new instance_ruins_of_ahn_qiraj_InstanceMapScript(pMap);
} }
@@ -31,7 +31,7 @@ class instance_nexus : public InstanceMapScript
public: public:
instance_nexus() : InstanceMapScript("instance_nexus", 576) { } instance_nexus() : InstanceMapScript("instance_nexus", 576) { }
InstanceScript *GetInstanceData_InstanceMapScript(Map *pMap) InstanceScript *GetInstanceScript(Map *pMap)
{ {
return new instance_nexus_InstanceMapScript(pMap); return new instance_nexus_InstanceMapScript(pMap);
} }
@@ -34,215 +34,6 @@ enum GameObjects
ENTRY_GORK_PALEHOOF_SPHERE = 188593 ENTRY_GORK_PALEHOOF_SPHERE = 188593
}; };
struct instance_pinnacle : public InstanceScript
{
instance_pinnacle(Map* pMap) : InstanceScript(pMap) {Initialize();};
uint64 uiSvalaSorrowgrave;
uint64 uiGortokPalehoof;
uint64 uiSkadiTheRuthless;
uint64 uiKingYmiron;
uint64 uiSkadiTheRuthlessDoor;
uint64 uiKingYmironDoor;
uint64 uiGortokPalehoofSphere;
uint64 uiFrenziedWorgen;
uint64 uiRavenousFurbolg;
uint64 uiFerociousRhino;
uint64 uiMassiveJormungar;
uint64 uiPalehoofOrb;
uint64 uiSvala;
uint64 uiSacrificedPlayer;
uint32 m_auiEncounter[MAX_ENCOUNTER];
std::string str_data;
void Initialize()
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
m_auiEncounter[i] = NOT_STARTED;
uiSvalaSorrowgrave = 0;
uiGortokPalehoof = 0;
uiSkadiTheRuthless = 0;
uiKingYmiron = 0;
uiSkadiTheRuthlessDoor = 0;
uiKingYmironDoor = 0;
uiGortokPalehoofSphere = 0;
uiFrenziedWorgen = 0;
uiRavenousFurbolg = 0;
uiFerociousRhino = 0;
uiMassiveJormungar = 0;
uiPalehoofOrb = 0;
uiSvala = 0;
uiSacrificedPlayer = 0;
}
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
if (m_auiEncounter[i] == IN_PROGRESS) return true;
return false;
}
void OnCreatureCreate(Creature* pCreature, bool /*add*/)
{
switch(pCreature->GetEntry())
{
case BOSS_SVALA_SORROWGRAVE: uiSvalaSorrowgrave = pCreature->GetGUID(); break;
case BOSS_GORTOK_PALEHOOF: uiGortokPalehoof = pCreature->GetGUID(); break;
case BOSS_SKADI_RUTHLESS: uiSkadiTheRuthless = pCreature->GetGUID(); break;
case BOSS_KING_YMIRON: uiKingYmiron = pCreature->GetGUID(); break;
case MOB_FRENZIED_WORGEN: uiFrenziedWorgen = pCreature->GetGUID(); break;
case MOB_RAVENOUS_FURBOLG: uiRavenousFurbolg = pCreature->GetGUID(); break;
case MOB_MASSIVE_JORMUNGAR: uiMassiveJormungar = pCreature->GetGUID(); break;
case MOB_FEROCIOUS_RHINO: uiFerociousRhino = pCreature->GetGUID(); break;
case MOB_SVALA: uiSvala = pCreature->GetGUID(); break;
case MOB_PALEHOOF_ORB: uiPalehoofOrb = pCreature->GetGUID(); break;
}
}
void OnGameObjectCreate(GameObject* pGo, bool /*add*/)
{
switch(pGo->GetEntry())
{
case ENTRY_SKADI_THE_RUTHLESS_DOOR:
uiSkadiTheRuthlessDoor = pGo->GetGUID();
if (m_auiEncounter[2] == DONE) HandleGameObject(NULL,true,pGo);
break;
case ENTRY_KING_YMIRON_DOOR:
uiKingYmironDoor = pGo->GetGUID();
if (m_auiEncounter[3] == DONE) HandleGameObject(NULL,true,pGo);
break;
case ENTRY_GORK_PALEHOOF_SPHERE:
uiGortokPalehoofSphere = pGo->GetGUID();
if (m_auiEncounter[1] == DONE)
{
HandleGameObject(NULL,true,pGo);
pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
}
break;
}
}
void SetData(uint32 type, uint32 data)
{
switch(type)
{
case DATA_SVALA_SORROWGRAVE_EVENT:
m_auiEncounter[0] = data;
break;
case DATA_GORTOK_PALEHOOF_EVENT:
m_auiEncounter[1] = data;
break;
case DATA_SKADI_THE_RUTHLESS_EVENT:
if (data == DONE)
HandleGameObject(uiSkadiTheRuthlessDoor,true);
m_auiEncounter[2] = data;
break;
case DATA_KING_YMIRON_EVENT:
if (data == DONE)
HandleGameObject(uiKingYmironDoor,true);
m_auiEncounter[3] = data;
break;
}
if (data == DONE)
SaveToDB();
}
void SetData64(uint32 type, uint64 data)
{
if (type == DATA_SACRIFICED_PLAYER)
uiSacrificedPlayer = data;
}
uint32 GetData(uint32 type)
{
switch(type)
{
case DATA_SVALA_SORROWGRAVE_EVENT: return m_auiEncounter[0];
case DATA_GORTOK_PALEHOOF_EVENT: return m_auiEncounter[1];
case DATA_SKADI_THE_RUTHLESS_EVENT: return m_auiEncounter[2];
case DATA_KING_YMIRON_EVENT: return m_auiEncounter[3];
}
return 0;
}
uint64 GetData64(uint32 identifier)
{
switch(identifier)
{
case DATA_SVALA_SORROWGRAVE: return uiSvalaSorrowgrave;
case DATA_GORTOK_PALEHOOF: return uiGortokPalehoof;
case DATA_SKADI_THE_RUTHLESS: return uiSkadiTheRuthless;
case DATA_KING_YMIRON: return uiKingYmiron;
case DATA_MOB_FRENZIED_WORGEN: return uiFrenziedWorgen;
case DATA_MOB_RAVENOUS_FURBOLG: return uiRavenousFurbolg;
case DATA_MOB_MASSIVE_JORMUNGAR: return uiMassiveJormungar;
case DATA_MOB_FEROCIOUS_RHINO: return uiFerociousRhino;
case DATA_MOB_ORB: return uiPalehoofOrb;
case DATA_SVALA: return uiSvala;
case DATA_GORTOK_PALEHOOF_SPHERE: return uiGortokPalehoofSphere;
}
return 0;
}
std::string GetSaveData()
{
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
saveStream << "U P " << m_auiEncounter[0] << " " << m_auiEncounter[1] << " "
<< m_auiEncounter[2] << " " << m_auiEncounter[3];
str_data = saveStream.str();
OUT_SAVE_INST_DATA_COMPLETE;
return str_data;
}
void Load(const char* in)
{
if (!in)
{
OUT_LOAD_INST_DATA_FAIL;
return;
}
OUT_LOAD_INST_DATA(in);
char dataHead1, dataHead2;
uint16 data0, data1, data2, data3;
std::istringstream loadStream(in);
loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3;
if (dataHead1 == 'U' && dataHead2 == 'P')
{
m_auiEncounter[0] = data0;
m_auiEncounter[1] = data1;
m_auiEncounter[2] = data2;
m_auiEncounter[3] = data3;
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
if (m_auiEncounter[i] == IN_PROGRESS)
m_auiEncounter[i] = NOT_STARTED;
} else OUT_LOAD_INST_DATA_FAIL;
OUT_LOAD_INST_DATA_COMPLETE;
}
};
class instance_utgarde_pinnacle : public InstanceMapScript class instance_utgarde_pinnacle : public InstanceMapScript
{ {
public: public:
@@ -253,7 +44,214 @@ public:
return new instance_pinnacle(pMap); return new instance_pinnacle(pMap);
} }
struct instance_pinnacle : public InstanceScript
{
instance_pinnacle(Map* pMap) : InstanceScript(pMap) {Initialize();};
uint64 uiSvalaSorrowgrave;
uint64 uiGortokPalehoof;
uint64 uiSkadiTheRuthless;
uint64 uiKingYmiron;
uint64 uiSkadiTheRuthlessDoor;
uint64 uiKingYmironDoor;
uint64 uiGortokPalehoofSphere;
uint64 uiFrenziedWorgen;
uint64 uiRavenousFurbolg;
uint64 uiFerociousRhino;
uint64 uiMassiveJormungar;
uint64 uiPalehoofOrb;
uint64 uiSvala;
uint64 uiSacrificedPlayer;
uint32 m_auiEncounter[MAX_ENCOUNTER];
std::string str_data;
void Initialize()
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
m_auiEncounter[i] = NOT_STARTED;
uiSvalaSorrowgrave = 0;
uiGortokPalehoof = 0;
uiSkadiTheRuthless = 0;
uiKingYmiron = 0;
uiSkadiTheRuthlessDoor = 0;
uiKingYmironDoor = 0;
uiGortokPalehoofSphere = 0;
uiFrenziedWorgen = 0;
uiRavenousFurbolg = 0;
uiFerociousRhino = 0;
uiMassiveJormungar = 0;
uiPalehoofOrb = 0;
uiSvala = 0;
uiSacrificedPlayer = 0;
}
bool IsEncounterInProgress() const
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
if (m_auiEncounter[i] == IN_PROGRESS) return true;
return false;
}
void OnCreatureCreate(Creature* pCreature, bool /*add*/)
{
switch(pCreature->GetEntry())
{
case BOSS_SVALA_SORROWGRAVE: uiSvalaSorrowgrave = pCreature->GetGUID(); break;
case BOSS_GORTOK_PALEHOOF: uiGortokPalehoof = pCreature->GetGUID(); break;
case BOSS_SKADI_RUTHLESS: uiSkadiTheRuthless = pCreature->GetGUID(); break;
case BOSS_KING_YMIRON: uiKingYmiron = pCreature->GetGUID(); break;
case MOB_FRENZIED_WORGEN: uiFrenziedWorgen = pCreature->GetGUID(); break;
case MOB_RAVENOUS_FURBOLG: uiRavenousFurbolg = pCreature->GetGUID(); break;
case MOB_MASSIVE_JORMUNGAR: uiMassiveJormungar = pCreature->GetGUID(); break;
case MOB_FEROCIOUS_RHINO: uiFerociousRhino = pCreature->GetGUID(); break;
case MOB_SVALA: uiSvala = pCreature->GetGUID(); break;
case MOB_PALEHOOF_ORB: uiPalehoofOrb = pCreature->GetGUID(); break;
}
}
void OnGameObjectCreate(GameObject* pGo, bool /*add*/)
{
switch(pGo->GetEntry())
{
case ENTRY_SKADI_THE_RUTHLESS_DOOR:
uiSkadiTheRuthlessDoor = pGo->GetGUID();
if (m_auiEncounter[2] == DONE) HandleGameObject(NULL,true,pGo);
break;
case ENTRY_KING_YMIRON_DOOR:
uiKingYmironDoor = pGo->GetGUID();
if (m_auiEncounter[3] == DONE) HandleGameObject(NULL,true,pGo);
break;
case ENTRY_GORK_PALEHOOF_SPHERE:
uiGortokPalehoofSphere = pGo->GetGUID();
if (m_auiEncounter[1] == DONE)
{
HandleGameObject(NULL,true,pGo);
pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
}
break;
}
}
void SetData(uint32 type, uint32 data)
{
switch(type)
{
case DATA_SVALA_SORROWGRAVE_EVENT:
m_auiEncounter[0] = data;
break;
case DATA_GORTOK_PALEHOOF_EVENT:
m_auiEncounter[1] = data;
break;
case DATA_SKADI_THE_RUTHLESS_EVENT:
if (data == DONE)
HandleGameObject(uiSkadiTheRuthlessDoor,true);
m_auiEncounter[2] = data;
break;
case DATA_KING_YMIRON_EVENT:
if (data == DONE)
HandleGameObject(uiKingYmironDoor,true);
m_auiEncounter[3] = data;
break;
}
if (data == DONE)
SaveToDB();
}
void SetData64(uint32 type, uint64 data)
{
if (type == DATA_SACRIFICED_PLAYER)
uiSacrificedPlayer = data;
}
uint32 GetData(uint32 type)
{
switch(type)
{
case DATA_SVALA_SORROWGRAVE_EVENT: return m_auiEncounter[0];
case DATA_GORTOK_PALEHOOF_EVENT: return m_auiEncounter[1];
case DATA_SKADI_THE_RUTHLESS_EVENT: return m_auiEncounter[2];
case DATA_KING_YMIRON_EVENT: return m_auiEncounter[3];
}
return 0;
}
uint64 GetData64(uint32 identifier)
{
switch(identifier)
{
case DATA_SVALA_SORROWGRAVE: return uiSvalaSorrowgrave;
case DATA_GORTOK_PALEHOOF: return uiGortokPalehoof;
case DATA_SKADI_THE_RUTHLESS: return uiSkadiTheRuthless;
case DATA_KING_YMIRON: return uiKingYmiron;
case DATA_MOB_FRENZIED_WORGEN: return uiFrenziedWorgen;
case DATA_MOB_RAVENOUS_FURBOLG: return uiRavenousFurbolg;
case DATA_MOB_MASSIVE_JORMUNGAR: return uiMassiveJormungar;
case DATA_MOB_FEROCIOUS_RHINO: return uiFerociousRhino;
case DATA_MOB_ORB: return uiPalehoofOrb;
case DATA_SVALA: return uiSvala;
case DATA_GORTOK_PALEHOOF_SPHERE: return uiGortokPalehoofSphere;
}
return 0;
}
std::string GetSaveData()
{
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
saveStream << "U P " << m_auiEncounter[0] << " " << m_auiEncounter[1] << " "
<< m_auiEncounter[2] << " " << m_auiEncounter[3];
str_data = saveStream.str();
OUT_SAVE_INST_DATA_COMPLETE;
return str_data;
}
void Load(const char* in)
{
if (!in)
{
OUT_LOAD_INST_DATA_FAIL;
return;
}
OUT_LOAD_INST_DATA(in);
char dataHead1, dataHead2;
uint16 data0, data1, data2, data3;
std::istringstream loadStream(in);
loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3;
if (dataHead1 == 'U' && dataHead2 == 'P')
{
m_auiEncounter[0] = data0;
m_auiEncounter[1] = data1;
m_auiEncounter[2] = data2;
m_auiEncounter[3] = data3;
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
if (m_auiEncounter[i] == IN_PROGRESS)
m_auiEncounter[i] = NOT_STARTED;
} else OUT_LOAD_INST_DATA_FAIL;
OUT_LOAD_INST_DATA_COMPLETE;
}
};
}; };
void AddSC_instance_utgarde_pinnacle() void AddSC_instance_utgarde_pinnacle()
@@ -72,7 +72,7 @@ class instance_serpent_shrine : public InstanceMapScript
public: public:
instance_serpent_shrine() : InstanceMapScript("instance_serpent_shrine", 548) { } instance_serpent_shrine() : InstanceMapScript("instance_serpent_shrine", 548) { }
InstanceScript* GetInstanceData_instance_serpentshrine_cavern_InstanceMapScript(Map* pMap) InstanceScript* GetInstanceScript(Map* pMap)
{ {
return new instance_serpentshrine_cavern_InstanceMapScript(pMap); return new instance_serpentshrine_cavern_InstanceMapScript(pMap);
} }
@@ -79,11 +79,11 @@ class instance_mechanar : public InstanceMapScript
} }
} }
}; };
InstanceScript* GetInstanceScript(InstanceMap* pMap) const
{
return new instance_mechanar_InstanceMapScript(pMap);
}
InstanceScript* GetInstanceScript(InstanceMap* pMap) const
{
return new instance_mechanar_InstanceMapScript(pMap);
}
}; };