bool OnReceivePacket ( Packet * p ) { if ( p -> data == nullptr || p -> length == 0 ) return true ; if ( p -> data [ 0 ] == ID_PLAYER_SYNC ) { BitStream bs ( p -> data , p -> length , false ) ; uint16_t playerID = uint16_t ( - 1 ) ; stOnFootData data { 0 } ; bs . ResetReadPointer ( ) ; bs . IgnoreBits ( 8 ) ; bs . Read ( playerID ) ; bs . Read ( ( PCHAR ) & data , sizeof ( stOnFootData ) ) ; // Дальше происходит форматирование и вывод. } }