Ulduar: fix instance saving

--HG--
branch : trunk
This commit is contained in:
tartalo
2009-10-18 15:49:54 +02:00
parent d32bd47b90
commit 8fccb5a7e9
@@ -281,9 +281,20 @@ struct TRINITY_DLL_DECL instance_ulduar : public ScriptedInstance
return 0; return 0;
} }
const char* Save() std::string GetSaveData()
{ {
return m_strInstData.c_str(); OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
saveStream << "U U " << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3]
<< m_auiEncounter[4] << " " << m_auiEncounter[5] << " " << m_auiEncounter[6] << " " << m_auiEncounter[7]
<< m_auiEncounter[8] << " " << m_auiEncounter[9] << " " << m_auiEncounter[10] << " " << m_auiEncounter[11]
<< m_auiEncounter[12] << " " << m_auiEncounter[13];
m_strInstData = saveStream.str();
OUT_SAVE_INST_DATA_COMPLETE;
return m_strInstData;
} }
void Load(const char* strIn) void Load(const char* strIn)
@@ -296,8 +307,12 @@ struct TRINITY_DLL_DECL instance_ulduar : public ScriptedInstance
OUT_LOAD_INST_DATA(strIn); OUT_LOAD_INST_DATA(strIn);
char dataHead1, dataHead2;
std::istringstream loadStream(strIn); std::istringstream loadStream(strIn);
if (dataHead1 == 'U' && dataHead2 == 'U')
{
for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
{ {
loadStream >> m_auiEncounter[i]; loadStream >> m_auiEncounter[i];
@@ -305,6 +320,7 @@ struct TRINITY_DLL_DECL instance_ulduar : public ScriptedInstance
if (m_auiEncounter[i] == IN_PROGRESS) if (m_auiEncounter[i] == IN_PROGRESS)
m_auiEncounter[i] = NOT_STARTED; m_auiEncounter[i] = NOT_STARTED;
} }
}
OUT_LOAD_INST_DATA_COMPLETE; OUT_LOAD_INST_DATA_COMPLETE;
} }