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); } } }
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 { } }