internal static void VariableLengthWrite(hsStream s, int size, int value) { if (size < 0x100) s.WriteByte((byte)value); else if (size < 0x10000) s.WriteShort((short)value); else s.WriteInt(value); }
public static void WriteString(hsStream s, string data, int maxSize) { if (data == null) { s.WriteShort(0); return; } byte[] buf; if (data.Length > maxSize) buf = Encoding.Unicode.GetBytes(data.Remove(maxSize)); else buf = Encoding.Unicode.GetBytes(data); s.WriteShort((short)(buf.Length / 2)); s.WriteBytes(buf); }
public override void Read(hsStream s) { base.Read(s); s.WriteShort((short)fAtomicCount); s.WriteByte((byte)fAtomicType); }
public void Write(hsStream s) { s.WriteUInt(UnParse(s.Version)); if (s.Version.IsPlasma21) s.WriteByte((byte)fFlags); else s.WriteShort((short)fFlags); }
public override void Write(hsStream s, hsResMgr mgr) { s.WriteShort((short)fFlags); if (HasAccount) s.WriteBytes(fAcctUUID.ToByteArray()); if (HasPlayerID) s.WriteUInt(fPlayerID); if (HasPlayerName) s.WriteStdString(fPlayerName); if (HasCCRLevel) s.WriteByte(fCCRLevel); if (HasProtectedLogin) s.WriteBool(fProtectedLogin); if (HasBuildType) s.WriteByte(fBuildType); if (HasSrcAddr) s.WriteUInt(fSrcAddr); if (HasSrcPort) s.WriteUShort(fSrcPort); if (HasReserved) s.WriteUShort(fReserved); if (HasClientKey) s.WriteStdString(fClientKey); }