// *************************************************************************** void CAnimationSet::serial (NLMISC::IStream& f) { // serial not possible if header optimisation enabled nlassert(!_AnimHeaderOptimisation); // Serial an header f.serialCheck ((uint32)'_LEN'); f.serialCheck ((uint32)'MINA'); f.serialCheck ((uint32)'TES_'); // Serial a version uint ver= f.serialVersion (1); // Serial the class f.serialContPtr (_Animation); f.serialContPtr (_SkeletonWeight); f.serialCont (_AnimationName); f.serialCont (_SkeletonWeightName); f.serialCont(_ChannelIdByName); f.serialCont(_AnimationIdByName); f.serialCont(_SkeletonWeightIdByName); if(ver>=1) f.serialCont(_ChannelName); else buildChannelNameFromMap(); }
// *************************************************************************** void CVegetableShape::serial(NLMISC::IStream &f) { /* Version 1: - BestSidedPreComputeLighting */ sint ver= f.serialVersion(1); f.serialCheck((uint32)'_LEN'); f.serialCheck((uint32)'GEV_'); f.serialCheck((uint32)'BATE'); f.serialCheck((uint32)'__EL'); f.serial(Lighted); f.serial(DoubleSided); f.serial(PreComputeLighting); f.serial(AlphaBlend); f.serialEnum(BendCenterMode); f.serial(VB); f.serialCont(TriangleIndices); if(ver>=1) f.serial(BestSidedPreComputeLighting); else if(f.isReading()) BestSidedPreComputeLighting= false; // if reading if(f.isReading()) { // prepare for instanciation InstanceVertices.resize(VB.getNumVertices()); } }
// --------------------------------------------------------------------------- void CZoneRegion::serial (NLMISC::IStream &f) { f.xmlPush ("LAND"); sint32 version = f.serialVersion (1); f.serialCheck ((uint32)'DNAL'); f.xmlSerial (_MinX, "MIN_X"); f.xmlSerial (_MinY, "MIN_Y"); f.xmlSerial (_MaxX, "MAX_X"); f.xmlSerial (_MaxY, "MAX_Y"); if (version == 1) { f.serialCont (_Zones); } if (version == 0) { std::vector<SZoneUnit> vZonesTmp; f.serialCont (vZonesTmp); _Zones.resize (vZonesTmp.size()); for (uint32 i = 0; i < vZonesTmp.size(); ++i) _Zones[i] = vZonesTmp[i]; } f.xmlPop (); }
// *************************************************************************** void CShapeStream::serial(NLMISC::IStream &f) throw(NLMISC::EStream) { // First, serial an header or checking if it is correct f.serialCheck (NELID("PAHS")); // Then, serial the shape f.serialPolyPtr (_Shape); // Ok, it's done }
/* * Serial Mapper */ void CPDStringMapper::serial(NLMISC::IStream& f) { f.serialCheck((uint32)'PDSM'); uint version = f.serialVersion(0); f.serialCont(_StringMap); if (f.isReading()) { buildIdMap(); } }
void CPrimitiveBlock::serial (NLMISC::IStream &s) { s.xmlPush ("PRIMITIVE_BLOCK"); // Serial checks s.serialCheck ((uint32)'KBRP'); // Serial the version (void)s.serialVersion (0); s.xmlPush ("PRIMITIVES"); s.serialCont (Primitives); s.xmlPop (); s.xmlPop (); }
/* * Serial method */ void CDatabaseState::serial(NLMISC::IStream& s) { s.xmlPush("database_state"); s.serialCheck((uint32)'DBST'); uint version = s.serialVersion(0); s.xmlPush("name"); s.serial(Name); s.xmlPop(); s.xmlPush("id"); s.serial(Id); s.xmlPop(); s.xmlPush("lastupdateid"); s.serial(LastUpdateId); s.xmlPop(); s.xmlPush("currentindex"); s.serial(CurrentIndex); s.xmlPop(); s.xmlPush("endtimestamp"); if (s.isReading()) { std::string ts; s.serial(ts); EndTimestamp.fromString(ts.c_str()); } else { std::string ts = EndTimestamp.toString(); s.serial(ts); } s.xmlPop(); s.xmlPop(); }
void CAnimation::serial (NLMISC::IStream& f) { // cannot save if anim header compressed nlassert(_IdByChannelId.empty()); // Serial a header f.serialCheck (NELID("_LEN")); f.serialCheck (NELID("MINA")); // Serial a version sint version=f.serialVersion (2); // Serial the name f.serial (_Name); // Serial the name/id map f.serialCont(_IdByName); // Serial the vector f.serialContPolyPtr (_TrackVector); // Serial the min end time if (version>=1) { f.serial (_MinEndTime); } // Serial the SSS shapes if (version>=2) { f.serialCont (_SSSShapes); } // TestYoyo //nlinfo("ANIMYOYO: Anim NumTracks: %d", _TrackVector.size()); }