mirror of
https://github.com/crskycode/GARbro.git
synced 2024-11-23 05:35:34 +08:00
(Gx4Lib): differentiate audio/image packages.
This commit is contained in:
parent
706add22ff
commit
b8aca69978
@ -32,13 +32,10 @@ namespace GameRes.Gx4Lib
|
|||||||
{
|
{
|
||||||
public class PackageFile
|
public class PackageFile
|
||||||
{
|
{
|
||||||
public PFHeader[] Deserialize (Stream input)
|
public PFHeaders Deserialize (Stream input)
|
||||||
{
|
{
|
||||||
var bin = new BinaryFormatter { Binder = new Gx4TypeBinder() };
|
var bin = new BinaryFormatter { Binder = new Gx4TypeBinder() };
|
||||||
var index = bin.Deserialize (input) as PFHeaders;
|
return bin.Deserialize (input) as PFHeaders;
|
||||||
if (null == index)
|
|
||||||
return null;
|
|
||||||
return index.headers;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,6 +53,16 @@ namespace GameRes.Gx4Lib
|
|||||||
public PFHeader[] headers;
|
public PFHeader[] headers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class PFAudioHeaders : PFHeaders
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class PFImageHeaders : PFHeaders
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
internal class Gx4TypeBinder : SerializationBinder
|
internal class Gx4TypeBinder : SerializationBinder
|
||||||
{
|
{
|
||||||
public override Type BindToType (string assemblyName, string typeName)
|
public override Type BindToType (string assemblyName, string typeName)
|
||||||
@ -64,6 +71,10 @@ namespace GameRes.Gx4Lib
|
|||||||
{
|
{
|
||||||
if (typeName.StartsWith ("GX4.PackageFile`1+PFHeaders[["))
|
if (typeName.StartsWith ("GX4.PackageFile`1+PFHeaders[["))
|
||||||
{
|
{
|
||||||
|
if (0 == string.Compare (typeName, 29, "UnityEngine.AudioClip", 0, 21))
|
||||||
|
return typeof(PFAudioHeaders);
|
||||||
|
if (0 == string.Compare (typeName, 29, "UnityEngine.Texture2D", 0, 21))
|
||||||
|
return typeof(PFImageHeaders);
|
||||||
return typeof(PFHeaders);
|
return typeof(PFHeaders);
|
||||||
}
|
}
|
||||||
else if (typeName.StartsWith ("GX4.PackageFile`1+PFHeader[["))
|
else if (typeName.StartsWith ("GX4.PackageFile`1+PFHeader[["))
|
||||||
|
Loading…
Reference in New Issue
Block a user