/** * Save a navigation area to the opened binary stream */ void CNavArea::Save( CUtlBuffer &fileBuffer, unsigned int version ) const { // save ID fileBuffer.PutUnsignedInt( m_id ); // save attribute flags fileBuffer.PutInt( m_attributeFlags ); // save extent of area fileBuffer.Put( &m_nwCorner, 3*sizeof(float) ); fileBuffer.Put( &m_seCorner, 3*sizeof(float) ); // save heights of implicit corners fileBuffer.PutFloat( m_neZ ); fileBuffer.PutFloat( m_swZ ); // save connections to adjacent areas // in the enum order NORTH, EAST, SOUTH, WEST for( int d=0; d<NUM_DIRECTIONS; d++ ) { // save number of connections for this direction unsigned int count = m_connect[d].Count(); fileBuffer.PutUnsignedInt( count ); FOR_EACH_VEC( m_connect[d], it ) { NavConnect connect = m_connect[d][ it ]; fileBuffer.PutUnsignedInt( connect.area->m_id ); } }
void CMomRunStats::Serialize(CUtlBuffer &writer) { writer.PutUnsignedChar(m_iTotalZones); for (int i = 0; i < m_iTotalZones + 1; ++i) { //Jumps/Strafes writer.PutUnsignedInt(m_iZoneJumps[i]); writer.PutUnsignedInt(m_iZoneStrafes[i]); //Sync writer.PutFloat(m_flZoneStrafeSyncAvg[i]); writer.PutFloat(m_flZoneStrafeSync2Avg[i]); //Time writer.PutUnsignedInt(m_iZoneEnterTick[i]); writer.PutUnsignedInt(m_iZoneTicks[i]); //Velocity writer.PutFloat(m_flZoneVelocityMax3D[i]); writer.PutFloat(m_flZoneVelocityMax2D[i]); writer.PutFloat(m_flZoneVelocityAvg3D[i]); writer.PutFloat(m_flZoneVelocityAvg2D[i]); writer.PutFloat(m_flZoneEnterSpeed3D[i]); writer.PutFloat(m_flZoneEnterSpeed2D[i]); writer.PutFloat(m_flZoneExitSpeed3D[i]); writer.PutFloat(m_flZoneExitSpeed2D[i]); } }
void CSceneCache::Save( CUtlBuffer& buf ) { buf.PutUnsignedInt( msecs ); unsigned short c = GetSoundCount(); buf.PutShort( c ); Assert( sounds.Count() <= 65536 ); for ( int i = 0; i < c; ++i ) { buf.PutString( GetSoundName( i ) ); } }
bool KeyValues::WriteAsBinary(CUtlBuffer &buffer) { if (buffer.IsText()) return false; if (!buffer.IsValid()) return false; for (KeyValues *dat = this; dat != NULL; dat = dat->m_pPeer) { buffer.PutUnsignedChar(dat->m_iDataType); buffer.PutString(dat->GetName()); switch (dat->m_iDataType) { case TYPE_NONE: { dat->m_pSub->WriteAsBinary(buffer); break; } case TYPE_STRING: { if (dat->m_sValue && *(dat->m_sValue)) { buffer.PutString(dat->m_sValue); } else { buffer.PutString(""); } break; } case TYPE_WSTRING: { Assert(!"TYPE_WSTRING"); break; } case TYPE_INT: { buffer.PutInt(dat->m_iValue); break; } case TYPE_UINT64: { buffer.PutDouble(*((double *)dat->m_sValue)); break; } case TYPE_FLOAT: { buffer.PutFloat(dat->m_flValue); break; } case TYPE_COLOR: { buffer.PutUnsignedChar(dat->m_Color[0]); buffer.PutUnsignedChar(dat->m_Color[1]); buffer.PutUnsignedChar(dat->m_Color[2]); buffer.PutUnsignedChar(dat->m_Color[3]); break; } case TYPE_PTR: { buffer.PutUnsignedInt((int)dat->m_pValue); } default: { break; } } } buffer.PutUnsignedChar(TYPE_NUMTYPES); return buffer.IsValid(); }