Files
l2-unlegits/l2packets/login/server/L2Login_LoginOK.cpp
2012-02-01 05:25:08 +00:00

57 lines
1.4 KiB
C++

#include "stdafx.h"
#include "L2Login_LoginOK.h"
L2Login_LoginOK::L2Login_LoginOK()
{
this->_initNull();
}
L2Login_LoginOK::L2Login_LoginOK( const unsigned char *bytes, unsigned int length )
{
this->_initNull();
this->setBytes( bytes, length );
}
// read SessionKey #1 from packet
// sessionKey1 must point to 8-byte array
bool L2Login_LoginOK::read_sessionKey1( unsigned char *sessionKey1 )
{
if( !sessionKey1 ) return false;
// check packet size
if( this->real_size < 9 ) return false;
this->readReset();
this->readUChar(); // pass packet code byte
this->readBytes( sessionKey1, 8 ); // read 8 bytes of sessionKey1
return true;
}
bool L2Login_LoginOK::create( L2_VERSION ver /*= L2_VERSION_T23*/ )
{
UNREFERENCED_PARAMETER(ver);
setPacketType( 0x03 );
writeBytes( p_sessionKey1, 8 );
writeD( 0x00 );
writeD( 0x00 );
writeD( 0x000003ea ); // wtf?
writeD( 0x00 );
writeD( 0x00 );
writeD( 0x00 );
//writeB(new byte[16]); // 4 Ds
writeD( 0x00 );
writeD( 0x00 );
writeD( 0x00 );
writeD( 0x00 );
return true;
}
bool L2Login_LoginOK::parse( L2_VERSION ver /*= L2_VERSION_T23*/ )
{
UNREFERENCED_PARAMETER(ver);
if( getPacketType() != 0x03 ) return false;
if( !canReadBytes( 8 ) ) return false; // we need at least 8 bytes of sessionKey1
readBytes( p_sessionKey1, 8 );
// ignore the rest
return true;
}