in Networked Physics/Assets/Scripts/PacketSerializer.cs [1062:1166]
void read_avatar_state( Network.ReadStream stream, out AvatarStateQuantized avatarState )
{
read_int( stream, out avatarState.client_index, 0, Constants.MaxClients - 1 );
read_int( stream, out avatarState.head_position_x, Constants.PositionMinimumXZ, Constants.PositionMaximumXZ );
read_int( stream, out avatarState.head_position_y, Constants.PositionMinimumY, Constants.PositionMaximumY );
read_int( stream, out avatarState.head_position_z, Constants.PositionMinimumXZ, Constants.PositionMaximumXZ );
read_bits( stream, out avatarState.head_rotation_largest, 2 );
read_bits( stream, out avatarState.head_rotation_a, Constants.RotationBits );
read_bits( stream, out avatarState.head_rotation_b, Constants.RotationBits );
read_bits( stream, out avatarState.head_rotation_c, Constants.RotationBits );
read_int( stream, out avatarState.left_hand_position_x, Constants.PositionMinimumXZ, Constants.PositionMaximumXZ );
read_int( stream, out avatarState.left_hand_position_y, Constants.PositionMinimumY, Constants.PositionMaximumY );
read_int( stream, out avatarState.left_hand_position_z, Constants.PositionMinimumXZ, Constants.PositionMaximumXZ );
read_bits( stream, out avatarState.left_hand_rotation_largest, 2 );
read_bits( stream, out avatarState.left_hand_rotation_a, Constants.RotationBits );
read_bits( stream, out avatarState.left_hand_rotation_b, Constants.RotationBits );
read_bits( stream, out avatarState.left_hand_rotation_c, Constants.RotationBits );
read_int( stream, out avatarState.left_hand_grip_trigger, Constants.TriggerMinimum, Constants.TriggerMaximum );
read_int( stream, out avatarState.left_hand_index_trigger, Constants.TriggerMinimum, Constants.TriggerMaximum );
read_bool( stream, out avatarState.left_hand_pointing );
read_bool( stream, out avatarState.left_hand_thumbs_up );
read_bool( stream, out avatarState.left_hand_holding_cube );
if ( avatarState.left_hand_holding_cube )
{
read_int( stream, out avatarState.left_hand_cube_id, 0, Constants.NumCubes - 1 );
read_bits( stream, out avatarState.left_hand_authority_sequence, 16 );
read_bits( stream, out avatarState.left_hand_ownership_sequence, 16 );
read_int( stream, out avatarState.left_hand_cube_local_position_x, Constants.LocalPositionMinimum, Constants.LocalPositionMaximum );
read_int( stream, out avatarState.left_hand_cube_local_position_y, Constants.LocalPositionMinimum, Constants.LocalPositionMaximum );
read_int( stream, out avatarState.left_hand_cube_local_position_z, Constants.LocalPositionMinimum, Constants.LocalPositionMaximum );
read_bits( stream, out avatarState.left_hand_cube_local_rotation_largest, 2 );
read_bits( stream, out avatarState.left_hand_cube_local_rotation_a, Constants.RotationBits );
read_bits( stream, out avatarState.left_hand_cube_local_rotation_b, Constants.RotationBits );
read_bits( stream, out avatarState.left_hand_cube_local_rotation_c, Constants.RotationBits );
}
else
{
avatarState.left_hand_cube_id = 0;
avatarState.left_hand_authority_sequence = 0;
avatarState.left_hand_ownership_sequence = 0;
avatarState.left_hand_cube_local_position_x = 0;
avatarState.left_hand_cube_local_position_y = 0;
avatarState.left_hand_cube_local_position_z = 0;
avatarState.left_hand_cube_local_rotation_largest = 0;
avatarState.left_hand_cube_local_rotation_a = 0;
avatarState.left_hand_cube_local_rotation_b = 0;
avatarState.left_hand_cube_local_rotation_c = 0;
}
read_int( stream, out avatarState.right_hand_position_x, Constants.PositionMinimumXZ, Constants.PositionMaximumXZ );
read_int( stream, out avatarState.right_hand_position_y, Constants.PositionMinimumY, Constants.PositionMaximumY );
read_int( stream, out avatarState.right_hand_position_z, Constants.PositionMinimumXZ, Constants.PositionMaximumXZ );
read_bits( stream, out avatarState.right_hand_rotation_largest, 2 );
read_bits( stream, out avatarState.right_hand_rotation_a, Constants.RotationBits );
read_bits( stream, out avatarState.right_hand_rotation_b, Constants.RotationBits );
read_bits( stream, out avatarState.right_hand_rotation_c, Constants.RotationBits );
read_int( stream, out avatarState.right_hand_grip_trigger, Constants.TriggerMinimum, Constants.TriggerMaximum );
read_int( stream, out avatarState.right_hand_index_trigger, Constants.TriggerMinimum, Constants.TriggerMaximum );
read_bool( stream, out avatarState.right_hand_pointing );
read_bool( stream, out avatarState.right_hand_thumbs_up );
read_bool( stream, out avatarState.right_hand_holding_cube );
if ( avatarState.right_hand_holding_cube )
{
read_int( stream, out avatarState.right_hand_cube_id, 0, Constants.NumCubes - 1 );
read_bits( stream, out avatarState.right_hand_authority_sequence, 16 );
read_bits( stream, out avatarState.right_hand_ownership_sequence, 16 );
read_int( stream, out avatarState.right_hand_cube_local_position_x, Constants.LocalPositionMinimum, Constants.LocalPositionMaximum );
read_int( stream, out avatarState.right_hand_cube_local_position_y, Constants.LocalPositionMinimum, Constants.LocalPositionMaximum );
read_int( stream, out avatarState.right_hand_cube_local_position_z, Constants.LocalPositionMinimum, Constants.LocalPositionMaximum );
read_bits( stream, out avatarState.right_hand_cube_local_rotation_largest, 2 );
read_bits( stream, out avatarState.right_hand_cube_local_rotation_a, Constants.RotationBits );
read_bits( stream, out avatarState.right_hand_cube_local_rotation_b, Constants.RotationBits );
read_bits( stream, out avatarState.right_hand_cube_local_rotation_c, Constants.RotationBits );
}
else
{
avatarState.right_hand_cube_id = 0;
avatarState.right_hand_authority_sequence = 0;
avatarState.right_hand_ownership_sequence = 0;
avatarState.right_hand_cube_local_position_x = 0;
avatarState.right_hand_cube_local_position_y = 0;
avatarState.right_hand_cube_local_position_z = 0;
avatarState.right_hand_cube_local_rotation_largest = 0;
avatarState.right_hand_cube_local_rotation_a = 0;
avatarState.right_hand_cube_local_rotation_b = 0;
avatarState.right_hand_cube_local_rotation_c = 0;
}
read_int( stream, out avatarState.voice_amplitude, Constants.VoiceMinimum, Constants.VoiceMaximum );
}