void cPlayer::save( cBufferedWriter& writer, unsigned int version ) { cBaseChar::save( writer, version ); writer.writeUtf8( account_ ? account_->login() : QString::null ); writer.writeInt( additionalFlags_ ); writer.writeByte( visualRange_ ); writer.writeUtf8( profile_ ); writer.writeByte( fixedLightLevel_ ); writer.writeByte( strengthLock_ ); writer.writeByte( dexterityLock_ ); writer.writeByte( intelligenceLock_ ); if (version > 7) { writer.writeByte(maxControlSlots_); } }
void cCustomTags::save( SERIAL serial, cBufferedWriter& writer ) { if ( tags_ ) { QMap<QString, cVariant>::iterator it( tags_->begin() ); for ( ; it != tags_->end(); ++it ) { // Erase invalid tags. if ( !it.value().isValid() ) { continue; } // Save serial and name writer.writeByte( 0xFE ); //unsigned int length = writer.position(); writer.writeInt( serial ); writer.writeUtf8( it.key() ); it.value().serialize( writer, writer.version() ); //length = writer.position() - length; writer.setSkipSize( 0xFE, 0 ); } } }
void cUObject::save( cBufferedWriter& writer, unsigned int /*version*/ ) { writer.writeUtf8( name_ ); writer.writeInt( serial_ ); writer.writeInt( multi_ ? multi_->serial() : INVALID_SERIAL ); writer.writeShort( pos_.x ); writer.writeShort( pos_.y ); writer.writeByte( pos_.z ); writer.writeByte( pos_.map ); writer.writeAscii( scriptList() ); }
void cPlayer::save( cBufferedWriter& writer, unsigned int version ) { if ( free ) { Console::instance()->log( LOG_WARNING, tr( "Skipping player 0x%1 during save process because it's already freed.\n" ).arg( serial_, 0, 16 ) ); } else { cBaseChar::save( writer, version ); writer.writeUtf8( account_ ? account_->login() : QString::null ); writer.writeInt( additionalFlags_ ); writer.writeByte( visualRange_ ); writer.writeUtf8( profile_ ); writer.writeByte( fixedLightLevel_ ); writer.writeByte( strengthLock_ ); writer.writeByte( dexterityLock_ ); writer.writeByte( intelligenceLock_ ); if ( version > 7 ) { writer.writeByte( maxControlSlots_ ); } } }
void cVariant::serialize( cBufferedWriter& writer, unsigned int /*version*/ ) { writer.writeByte( typ ); char skipper[8]; switch ( typ ) { case InvalidType: writer.writeRaw( skipper, 8 ); break; case StringType: if ( value.ptr ) { writer.writeUtf8( *( QString * ) value.ptr ); } else { writer.writeUtf8( QString::null ); } writer.writeRaw( skipper, 4 ); break; case IntType: writer.writeInt( value.i ); writer.writeRaw( skipper, 4 ); break; case LongType: writer.writeInt( value.i ); writer.writeRaw( skipper, 4 ); break; case DoubleType: writer.writeDouble( value.d ); break; case BaseCharType: if ( value.ptr ) { writer.writeInt( ( ( P_CHAR ) value.ptr )->serial() ); } else { writer.writeInt( INVALID_SERIAL ); } writer.writeRaw( skipper, 4 ); break; case ItemType: if ( value.ptr ) { writer.writeInt( ( ( P_ITEM ) value.ptr )->serial() ); } else { writer.writeInt( INVALID_SERIAL ); } writer.writeRaw( skipper, 4 ); break; case CoordType: writer.writeShort( ( ( Coord * ) ( value.ptr ) )->x ); writer.writeShort( ( ( Coord * ) ( value.ptr ) )->y ); writer.writeByte( ( ( Coord * ) ( value.ptr ) )->z ); writer.writeByte( ( ( Coord * ) ( value.ptr ) )->map ); writer.writeRaw( skipper, 2 ); break; } }