// Methods public unsafe void Read(GensReader reader, float *data, float scale = 1) { switch ((DataTypes)Type) { case DataTypes.Vector2: *data = reader.ReadSingle() * scale; *++data = reader.ReadSingle() * scale; break; case DataTypes.Vector2_Half: *data = reader.ReadHalf(); *++data = reader.ReadHalf(); break; case DataTypes.Vector3: *data = reader.ReadSingle() * scale; *++data = reader.ReadSingle() * scale; *++data = reader.ReadSingle() * scale; break; case DataTypes.Vector3_360: // TODO: Read this properly reader.ReadUInt32(); break; case DataTypes.Vector3_Forces: // TODO: Read this properly reader.ReadUInt32(); break; case DataTypes.Vector4: *data = reader.ReadSingle() * scale; *++data = reader.ReadSingle() * scale; *++data = reader.ReadSingle() * scale; *++data = reader.ReadSingle() * scale; break; case DataTypes.Vector4_Byte: case DataTypes.Indices: // TODO: Read this properly reader.ReadUInt32(); break; case DataTypes.Indices_Byte: // TODO: Read this properly reader.ReadUInt32(); break; } }