Temp fix for AI parsing.
This commit is contained in:
@@ -82,10 +82,8 @@ namespace AssetStudio
|
|||||||
foreach (var subAsset in asset.Value)
|
foreach (var subAsset in asset.Value)
|
||||||
{
|
{
|
||||||
var bundleInfo = new BundleInfo() { Bundle = asset.Key, Path = subAsset.Name };
|
var bundleInfo = new BundleInfo() { Bundle = asset.Key, Path = subAsset.Name };
|
||||||
var blockInfo = assetIndex.Assets[asset.Key];
|
|
||||||
ulong key = (((ulong)blockInfo.Id) << 32) | subAsset.PathHashLast;
|
|
||||||
AssetLocationMap[subAsset.PathHashPre].Add(subAsset.PathHashLast, bundleInfo);
|
AssetLocationMap[subAsset.PathHashPre].Add(subAsset.PathHashLast, bundleInfo);
|
||||||
AssetMap[key] = ((ulong)subAsset.PathHashLast) << 8 | subAsset.PathHashPre;
|
AssetMap[subAsset.PathHashLast] = ((ulong)subAsset.PathHashLast) << 8 | subAsset.PathHashPre;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach (var asset in assetIndex.Assets)
|
foreach (var asset in assetIndex.Assets)
|
||||||
@@ -150,13 +148,10 @@ namespace AssetStudio
|
|||||||
var asset = new Asset() { Hash = hash };
|
var asset = new Asset() { Hash = hash };
|
||||||
return AssetLocationMap.ElementAtOrDefault(asset.Pre).ContainsKey(asset.Last);
|
return AssetLocationMap.ElementAtOrDefault(asset.Pre).ContainsKey(asset.Last);
|
||||||
}
|
}
|
||||||
public static string GetContainerFromBinName(string fileName, string binName)
|
public static string GetContainerFromBinName(string binName)
|
||||||
{
|
{
|
||||||
var blkName = Path.GetFileNameWithoutExtension(fileName);
|
|
||||||
var blk = Convert.ToUInt64(blkName);
|
|
||||||
var lastHex = Convert.ToUInt32(binName, 16);
|
var lastHex = Convert.ToUInt32(binName, 16);
|
||||||
var blkHash = (blk << 32) | lastHex;
|
var index = GetAssetIndex(lastHex);
|
||||||
var index = GetAssetIndex(blkHash);
|
|
||||||
var bundleInfo = GetBundleInfo(index);
|
var bundleInfo = GetBundleInfo(index);
|
||||||
return bundleInfo != null ? bundleInfo.Path : "";
|
return bundleInfo != null ? bundleInfo.Path : "";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ namespace AssetStudioCLI
|
|||||||
case ClassIDType.MiHoYoBinData:
|
case ClassIDType.MiHoYoBinData:
|
||||||
if (indexObject.Names.TryGetValue(objectReader.m_PathID, out var binName))
|
if (indexObject.Names.TryGetValue(objectReader.m_PathID, out var binName))
|
||||||
{
|
{
|
||||||
var path = ResourceIndex.GetContainerFromBinName(file, binName);
|
var path = ResourceIndex.GetContainerFromBinName(binName);
|
||||||
asset.Container = path;
|
asset.Container = path;
|
||||||
asset.Name = !string.IsNullOrEmpty(path) ? Path.GetFileName(path) : binName;
|
asset.Name = !string.IsNullOrEmpty(path) ? Path.GetFileName(path) : binName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ namespace AssetStudioGUI
|
|||||||
case ClassIDType.MiHoYoBinData:
|
case ClassIDType.MiHoYoBinData:
|
||||||
if (indexObject.Names.TryGetValue(objectReader.m_PathID, out var binName))
|
if (indexObject.Names.TryGetValue(objectReader.m_PathID, out var binName))
|
||||||
{
|
{
|
||||||
var path = ResourceIndex.GetContainerFromBinName(file, binName);
|
var path = ResourceIndex.GetContainerFromBinName(binName);
|
||||||
asset.Container = path;
|
asset.Container = path;
|
||||||
asset.Name = !string.IsNullOrEmpty(path) ? Path.GetFileName(path) : binName;
|
asset.Name = !string.IsNullOrEmpty(path) ? Path.GetFileName(path) : binName;
|
||||||
}
|
}
|
||||||
@@ -430,7 +430,7 @@ namespace AssetStudioGUI
|
|||||||
var game = GameManager.GetGame("GI");
|
var game = GameManager.GetGame("GI");
|
||||||
if (Path.GetExtension(assetsFile.originalPath) == game.Extension)
|
if (Path.GetExtension(assetsFile.originalPath) == game.Extension)
|
||||||
{
|
{
|
||||||
path = ResourceIndex.GetContainerFromBinName(assetsFile.originalPath, binName);
|
path = ResourceIndex.GetContainerFromBinName(binName);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user