[Project64] Handle saves from 2.2
This commit is contained in:
parent
4733420dfa
commit
725ca8bcbe
|
@ -16,7 +16,7 @@
|
||||||
#include <Project64-core/N64System/N64Class.h>
|
#include <Project64-core/N64System/N64Class.h>
|
||||||
#include <Project64-core/3rdParty/zip.h>
|
#include <Project64-core/3rdParty/zip.h>
|
||||||
|
|
||||||
CSystemTimer::CSystemTimer( int32_t & NextTimer ) :
|
CSystemTimer::CSystemTimer(int32_t & NextTimer) :
|
||||||
m_NextTimer(NextTimer),
|
m_NextTimer(NextTimer),
|
||||||
m_inFixTimer(false)
|
m_inFixTimer(false)
|
||||||
{
|
{
|
||||||
|
@ -331,7 +331,7 @@ void CSystemTimer::SaveData(CFile & file) const
|
||||||
{
|
{
|
||||||
uint32_t TimerDetailsSize = sizeof(TIMER_DETAILS);
|
uint32_t TimerDetailsSize = sizeof(TIMER_DETAILS);
|
||||||
uint32_t Entries = sizeof(m_TimerDetatils) / sizeof(m_TimerDetatils[0]);
|
uint32_t Entries = sizeof(m_TimerDetatils) / sizeof(m_TimerDetatils[0]);
|
||||||
|
|
||||||
file.Write(&TimerDetailsSize, sizeof(TimerDetailsSize));
|
file.Write(&TimerDetailsSize, sizeof(TimerDetailsSize));
|
||||||
file.Write(&Entries, sizeof(Entries));
|
file.Write(&Entries, sizeof(Entries));
|
||||||
file.Write((void *)&m_TimerDetatils, sizeof(m_TimerDetatils));
|
file.Write((void *)&m_TimerDetatils, sizeof(m_TimerDetatils));
|
||||||
|
@ -354,11 +354,21 @@ void CSystemTimer::LoadData(zipFile & file)
|
||||||
}
|
}
|
||||||
if (Entries != sizeof(m_TimerDetatils) / sizeof(m_TimerDetatils[0]))
|
if (Entries != sizeof(m_TimerDetatils) / sizeof(m_TimerDetatils[0]))
|
||||||
{
|
{
|
||||||
g_Notify->BreakPoint(__FILE__, __LINE__);
|
if (Entries < (sizeof(m_TimerDetatils) / sizeof(m_TimerDetatils[0])))
|
||||||
return;
|
{
|
||||||
|
memset((void *)&m_TimerDetatils, 0, sizeof(m_TimerDetatils));
|
||||||
|
unzReadCurrentFile(file, (void *)&m_TimerDetatils, Entries * sizeof(m_TimerDetatils[0]));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_Notify->BreakPoint(__FILE__, __LINE__);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unzReadCurrentFile(file, (void *)&m_TimerDetatils, sizeof(m_TimerDetatils));
|
||||||
}
|
}
|
||||||
|
|
||||||
unzReadCurrentFile(file, (void *)&m_TimerDetatils, sizeof(m_TimerDetatils));
|
|
||||||
unzReadCurrentFile(file, (void *)&m_LastUpdate, sizeof(m_LastUpdate));
|
unzReadCurrentFile(file, (void *)&m_LastUpdate, sizeof(m_LastUpdate));
|
||||||
unzReadCurrentFile(file, &m_NextTimer, sizeof(m_NextTimer));
|
unzReadCurrentFile(file, &m_NextTimer, sizeof(m_NextTimer));
|
||||||
unzReadCurrentFile(file, (void *)&m_Current, sizeof(m_Current));
|
unzReadCurrentFile(file, (void *)&m_Current, sizeof(m_Current));
|
||||||
|
|
Loading…
Reference in New Issue