template <class T> void CItemContainer<T>::Serialize( CAr & ar )
{
// for( int i = 0; i < m_dwItemMax; i++ ) // 462
// m_apItem[i].Serialize( ar );
DWORD adwObjIndex[128];
unsigned char chSize = 0;
if( ar.IsStoring() )
{
ar.Write( m_apIndex, sizeof(DWORD) * m_dwItemMax );
u_long uOffset = ar.GetOffset();
ar << chSize;
for( u_char ch = 0; ch < m_dwItemMax; ch++ ) // 0-504
{
if( m_apItem[ch].IsEmpty() == FALSE )
{
ar << ch;
m_apItem[ch].Serialize( ar );
chSize++;
}
adwObjIndex[ch] = m_apItem[ch].m_dwObjIndex;
}
ar.Write( adwObjIndex, sizeof(DWORD) * m_dwItemMax );
int nBufSize;
LPBYTE lpBuf = ar.GetBuffer( &nBufSize );
*( lpBuf + uOffset ) = chSize;
}
else
{
ar.Read( m_apIndex, sizeof(DWORD) * m_dwItemMax );
// Clear
for( u_int i = 0; i < m_dwItemMax; i++ )
m_apItem[i].Empty();
ar >> chSize;
unsigned char ch;
for( i = 0; i < chSize; i++ )
{
ar >> ch;
m_apItem[ch].Serialize( ar );
}
ar.Read( adwObjIndex, sizeof(DWORD) * m_dwItemMax );
for( i = 0; i < m_dwItemMax; i++ )
{
m_apItem[i].m_dwObjIndex = adwObjIndex[i];
}
}
}
er crasht an der Rot makierten Stelle und ich weiß absolut nicht warum villeicht kann mir ja hier einer helfen






