Esempio n. 1
0
void CSrLvliRecord::UpdateListCount (void)
{
	dword Count = CountSubrecords(SR_NAME_LVLO);

	if (Count > SR_LVLO_MAXCOUNT)
	{
		SystemLog.Printf("WARNING: Exceeded maximum of %d LVLO subrecords!", SR_LVLO_MAXCOUNT);
		int Counter = 0;
		
		for (dword i = 0; i < m_Subrecords.GetSize(); ++i)
		{
			if (m_Subrecords[i]->GetRecordType() != SR_NAME_LVLO) continue;
			++Counter;

			if (Counter > SR_LVLO_MAXCOUNT) 
			{
				m_Subrecords.Delete(i);
				if (m_Subrecords[i] != NULL && m_Subrecords[i]->GetRecordType() == SR_NAME_COED) m_Subrecords.Delete(i);
				--i;
			}
		}

		SetListCount(SR_LVLO_MAXCOUNT);
	}

	SetListCount(Count);
}
void CSrCobjRecord::UpdateComponentCount (void)
{
	if (m_pComponentCount == NULL)
	{
		AddNewSubrecord(SR_NAME_COCT);
		if (m_pComponentCount == NULL) return;
		m_pComponentCount->InitializeNew();
	}

	m_pComponentCount->SetValue(CountSubrecords(SR_NAME_CNTO));
}