Exemple #1
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);
		}
	}
}
Exemple #2
0
void OzoneDatabase::Serialize(CivArchive &archive)
{
#define UVDB_MAGIC	0x52139876
	if (archive.IsStoring()) {
		archive.PerformMagic(UVDB_MAGIC) ;
		 archive.StoreArrayString(m_meridian_prob, k_NUM_MERIDIANS + 1);
		 archive.StoreArrayString(m_meridian_phase_bonus, k_NUM_MERIDIANS+1);

		archive.StoreArray(m_dead_food, k_MAX_RESOURCES);
		archive.StoreArray(m_dead_shield, k_MAX_RESOURCES);
		archive.StoreArray(m_dead_trade, k_MAX_RESOURCES);
		archive.StoreArray(m_dead_gold, k_MAX_RESOURCES);
	}
	else {
	}
}