| 1709 | EncodeMsgItem(dst, msg, msg->values[i], format->GetItem(i)); |
| 1710 | } |
| 1711 | } |
| 1712 | |
| 1713 | RefNetworkData NetworkComponent::DecodeMsgItem(NetworkMessageRaw& src, NetworkMessage* msg, |
| 1714 | NetworkMessageFormatItem& formatItem) |
| 1715 | { |
| 1716 | switch (formatItem.type) |
| 1717 | { |
| 1718 | case NDTBool: |
| 1719 | { |
| 1720 | // = false: Get leaves value untouched on an unsupported compression or |
| 1721 | // a short read, and constructing the typed data loads it — an |
| 1722 | // uninitialized bool is an out-of-range value (UB). |
| 1723 | bool value = false; |
| 1724 | src.Get(value, formatItem.compression); |
| 1725 | return RefNetworkDataTyped<bool>(value); |
| 1726 | } |
| 1727 | case NDTInteger: |
| 1728 | { |
| 1729 | int value; |
| 1730 | src.Get(value, formatItem.compression); |
| 1731 | return RefNetworkDataTyped<int>(value); |
| 1732 | } |
| 1733 | case NDTFloat: |
| 1734 | { |
| 1735 | float value; |
| 1736 | src.Get(value, formatItem.compression); |
| 1737 | return RefNetworkDataTyped<float>(value); |
| 1738 | } |
| 1739 | case NDTString: |
| 1740 | { |
| 1741 | RString value; |
| 1742 | src.Get(value, formatItem.compression); |
| 1743 | return RefNetworkDataTyped<RString>(value); |
| 1744 | } |
| 1745 | case NDTRawData: |
| 1746 | { |
| 1747 | RefNetworkDataTyped<AutoArray<char>> value; |
| 1748 | // RefNetworkDataTyped< AutoArray<char> >(); |
| 1749 | AutoArray<char>& array = value.GetVal(); |
| 1750 | int m; |
| 1751 | if (!src.GetCount(m, NCTSmallUnsigned)) |
| 1752 | return value; |
| 1753 | array.Resize(m); |
| 1754 | for (int j = 0; j < m; j++) |
| 1755 | { |
| 1756 | src.Get(array[j], formatItem.compression); |
| 1757 | } |
| 1758 | return value; |
| 1759 | } |
| 1760 | case NDTTime: |
| 1761 | { |
| 1762 | Time value; |
| 1763 | src.Get(value, formatItem.compression); |
| 1764 | return RefNetworkDataTyped<Time>(value); |
| 1765 | } |
| 1766 | case NDTVector: |
| 1767 | { |
| 1768 | Vector3 value; |
nothing calls this directly
no test coverage detected