Temp fix for AI parsing.

This commit is contained in:
Razmoth
2022-12-13 23:53:27 +04:00
parent ee86efa0c8
commit 925c42fff2
3 changed files with 6 additions and 11 deletions

View File

@@ -82,10 +82,8 @@ namespace AssetStudio
foreach (var subAsset in asset.Value)
{
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);
AssetMap[key] = ((ulong)subAsset.PathHashLast) << 8 | subAsset.PathHashPre;
AssetMap[subAsset.PathHashLast] = ((ulong)subAsset.PathHashLast) << 8 | subAsset.PathHashPre;
}
}
foreach (var asset in assetIndex.Assets)
@@ -150,13 +148,10 @@ namespace AssetStudio
var asset = new Asset() { Hash = hash };
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 blkHash = (blk << 32) | lastHex;
var index = GetAssetIndex(blkHash);
var index = GetAssetIndex(lastHex);
var bundleInfo = GetBundleInfo(index);
return bundleInfo != null ? bundleInfo.Path : "";
}

View File

@@ -237,7 +237,7 @@ namespace AssetStudioCLI
case ClassIDType.MiHoYoBinData:
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.Name = !string.IsNullOrEmpty(path) ? Path.GetFileName(path) : binName;
}

View File

@@ -250,7 +250,7 @@ namespace AssetStudioGUI
case ClassIDType.MiHoYoBinData:
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.Name = !string.IsNullOrEmpty(path) ? Path.GetFileName(path) : binName;
}
@@ -430,7 +430,7 @@ namespace AssetStudioGUI
var game = GameManager.GetGame("GI");
if (Path.GetExtension(assetsFile.originalPath) == game.Extension)
{
path = ResourceIndex.GetContainerFromBinName(assetsFile.originalPath, binName);
path = ResourceIndex.GetContainerFromBinName(binName);
}
else
{