public WorldItemHS( Item item )
: base(0xF3, 26)
{
m_Stream.Write( (short) 0x1 );
int itemID = item.ItemID;
if ( item is BaseMulti ) {
m_Stream.Write( (byte) 0x02 );
m_Stream.Write( (int) item.Serial );
itemID &= 0x3FFF;
m_Stream.Write( (ushort) itemID );
m_Stream.Write( (byte) 0 );
/*} else if ( ) {
m_Stream.Write( (byte) 0x01 );
m_Stream.Write( (int) item.Serial );
m_Stream.Write( (ushort) itemID );
m_Stream.Write( (byte) item.Direction );*/
} else {
m_Stream.Write( (byte) 0x00 );
m_Stream.Write( (int) item.Serial );
itemID &= 0xFFFF;
m_Stream.Write( (ushort) itemID );
m_Stream.Write( (byte) 0 );
}
int amount = item.Amount;
m_Stream.Write( (short) amount );
m_Stream.Write( (short) amount );
Point3D loc = item.Location;
int x = loc.m_X & 0x7FFF;
int y = loc.m_Y & 0x3FFF;
m_Stream.Write( (short) x );
m_Stream.Write( (short) y );
m_Stream.Write( (sbyte) loc.m_Z );
m_Stream.Write( (byte) item.Light );
m_Stream.Write( (short) item.Hue );
m_Stream.Write( (byte) item.GetPacketFlags() );
m_Stream.Write( (short) 0x00 ); // ??
}