void LLBC_PacketHeaderParts::SetPartToPacket(int serialNo, const _Part &part, LLBC_Packet &packet) { switch (part.type) { case _PartTypes::SInt32Type: packet.SetHeaderPartVal(serialNo, static_cast<sint32>(part.value.i64Val)); break; case _PartTypes::UInt32Type: packet.SetHeaderPartVal(serialNo, static_cast<uint32>(part.value.i64Val)); break; case _PartTypes::SInt16Type: packet.SetHeaderPartVal(serialNo, static_cast<sint16>(part.value.i64Val)); break; case _PartTypes::UInt16Type: packet.SetHeaderPartVal(serialNo, static_cast<uint16>(part.value.i64Val)); break; case _PartTypes::SInt8Type: packet.SetHeaderPartVal(serialNo, static_cast<sint8>(part.value.i64Val)); break; case _PartTypes::UInt8Type: packet.SetHeaderPartVal(serialNo, static_cast<uint8>(part.value.i64Val)); break; case _PartTypes::SInt64Type: packet.SetHeaderPartVal(serialNo, part.value.i64Val); break; case _PartTypes::UInt64Type: packet.SetHeaderPartVal(serialNo, static_cast<uint64>(part.value.i64Val)); break; case _PartTypes::FloatType: packet.SetHeaderPartVal(serialNo, *reinterpret_cast<const float *>(&part.value.i64Val)); break; case _PartTypes::DoubleType: packet.SetHeaderPartVal(serialNo, *reinterpret_cast<const double *>(&part.value.i64Val)); break; case _PartTypes::StrType: packet.SetHeaderPartVal(serialNo, *part.value.strVal); break; case _PartTypes::BytesType: packet.SetHeaderPartVal(serialNo, part.value.bytesVal->GetDataStartWithReadPos(), part.value.bytesVal->GetReadableSize()); break; default: ASSERT(false && "llbc library internal error, Unknown packet header part type: %d"); break; } }