| 425 | |
| 426 | template <Commands Tcmd> |
| 427 | static void NetworkReplaceCommandClientId(CommandPacket &cp, ClientID client_id) |
| 428 | { |
| 429 | /* Unpack command parameters. */ |
| 430 | auto params = EndianBufferReader::ToValue<typename CommandTraits<Tcmd>::Args>(cp.data); |
| 431 | |
| 432 | /* Insert client id. */ |
| 433 | SetClientIds(params, client_id, std::make_index_sequence<std::tuple_size_v<decltype(params)>>{}); |
| 434 | |
| 435 | /* Repack command parameters. */ |
| 436 | cp.data = EndianBufferWriter<CommandDataBuffer>::FromValue(params); |
| 437 | } |
| 438 | |
| 439 | /** |
| 440 | * Insert a client ID into the command data in a command packet. |
no test coverage detected