UserCmdInfo
Part of UserCmd message.
| Name | Type | Size in bytes | Size in bits | Value |
|---|---|---|---|---|
| CommandNumber | int | 4 | 32 | Optional¹ |
| TickCount | int | 4 | 32 | Optional |
| ViewAnglesX | float | 4 | 32 | Optional |
| ViewAnglesY | float | 4 | 32 | Optional |
| ViewAnglesZ | float | 4 | 32 | Optional |
| ForwardMove | float | 4 | 32 | Optional |
| SideMove | float | 4 | 32 | Optional |
| UpMove | float | 4 | 32 | Optional |
| Buttons | int | 4 | 32 | Optional |
| Impulse | byte | 1 | 8 | Optional |
| WeaponSelect | int | 1.375 | 11 | Optional |
| WeaponSubtype² | int | 0.75 | 6 | Optional |
| MouseDx | short | 2 | 16 | Optional |
| MouseDy | short | 2 | 16 | Optional |
¹ Optional means to only read the field if the bit before was set.
² This field depends if WeaponSelect was set.
Pseudocode Example
if read_one_bit() {
command_number = read_le_u32();
}
...
if read_one_bit() {
weapon_select = read_bits(11);
if read_one_bit() {
weapon_subtype = read_bits(6);
}
}
...