There is an established "String" type used in other packets (4 bytes to represent the length, and then the variable number of characters afterwards) such as Console Data (0x11) and New Value Index (0x1F).
As it stands, bulk value update contains a list of "elements" each specifying the offset and length of their associated string in a single long concatenated string data segment at the end of the packet.
It seems like it would be more consistent to use the common format inside this list of indices. And it would make the packet smaller! Something like the following:
| Packet ID |
Field Name |
Field Type |
Notes |
| 0x1d |
Number of labels (n) |
Unsigned Int |
|
| Once for each n |
Index |
Unsigned Int |
The label index to update. |
| String Length |
Unsigned Int |
|
| String Data |
Bytes |
Of length "String Length" |
Note: This would make it so that each list element is not a set length, but I don't see any major problems with this.
There is an established "String" type used in other packets (4 bytes to represent the length, and then the variable number of characters afterwards) such as Console Data (0x11) and New Value Index (0x1F).
As it stands, bulk value update contains a list of "elements" each specifying the offset and length of their associated string in a single long concatenated string data segment at the end of the packet.
It seems like it would be more consistent to use the common format inside this list of indices. And it would make the packet smaller! Something like the following:
Note: This would make it so that each list element is not a set length, but I don't see any major problems with this.