Настоящая причина отсутствия server info: bf_write писал биты LSB-первым, а Source читает/пишет MSB-первым (подтверждено дизассемблированием bf_read::ReadUBitLongNoInline в engine_srv.so). Из-за этого WriteOneBit(true) попадал в поле соседнего потока фрагментов, а ID сообщений записывались перевёрнутыми — сервер не распознавал net_SignonState и не выставлял m_bSendServerInfo. - write_one_bit/write_ubit_long/read_one_bit/read_ubit_long: MSB-first; - write_u32/write_short/read_long/read_short: побайтово little-endian (как ReadLong в движке); - reliable_state кодируется через WriteUBitLong(16); - тесты bit_order_matches_source и reliable_block_layout_is_canonical. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||