private void ReadPositioningInfo(EndianReader reader)
{
HasPositioning = (reader.ReadByte() != 0);
if (!HasPositioning)
return;
PositionType = (SoundPositionType)reader.ReadByte();
if (PositionType == SoundPositionType.Position2D)
{
EnablePanner = (reader.ReadByte() != 0);
}
else
{
PositionSourceType = (SoundPositionSourceType)reader.ReadInt32();
AttenuationID = reader.ReadUInt32();
EnableSpatialization = (reader.ReadByte() != 0);
if (PositionSourceType == SoundPositionSourceType.UserDefined)
{
PlayType = (SoundPlayType)reader.ReadInt32();
Loop = (reader.ReadByte() != 0);
TransitionTime = reader.ReadUInt32();
FollowListenerOrientation = (reader.ReadByte() != 0);
ReadPaths(reader);
}
else if (PositionSourceType == SoundPositionSourceType.GameDefined)
{
UpdateEachFrame = (reader.ReadByte() != 0);
}
}
}