Пример #1
0
void AgreementPool::Serialize(CivArchive &archive)
	{
	AgreementData	*newData ;

	sint32	i,
			count = 0 ;

    CHECKSERIALIZE

#define AGREEMENTPOOL_MAGIC 0x28400399
	if (archive.IsStoring())
		{
		}
	else
		{
			if(g_saveFileVersion < 55) {
				archive.TestMagic(AGREEMENTPOOL_MAGIC) ;
				archive>>count;
				for (i=0; i<count; i++)
				{
					newData = new AgreementData(archive) ;
					Insert(newData) ;
				}
			}

		}
Пример #2
0
void ArmyPool::Serialize(CivArchive &archive)
{
	sint32 count, i;

#define ARMYPOOL_MAGIC 0xBeefCafe
	if(archive.IsStoring()) {
		archive.PerformMagic(ARMYPOOL_MAGIC);
		ObjPool::Serialize(archive);

		count = 0;
		for(i = 0; i < k_OBJ_POOL_TABLE_SIZE; i++) {
			if(m_table[i])
				count++;
		}

		archive << count;
		for(i = 0; i < k_OBJ_POOL_TABLE_SIZE; i++) {
			if(m_table[i])
				((ArmyData*)(m_table[i]))->Serialize(archive);
		}
	} else {
		archive.TestMagic(ARMYPOOL_MAGIC);
		ObjPool::Serialize(archive);
		archive >> count;
		for(i = 0; i < count; i++) {
			ArmyData *data = new ArmyData(archive);
			Insert(data);
		}
	}
}