- [Core] Fix issue where resource conflict gets overridden.

This commit is contained in:
Razmoth
2024-02-02 15:44:15 +04:00
parent 5b244dd9cb
commit 3592566e0c
3 changed files with 10 additions and 13 deletions

View File

@@ -242,7 +242,7 @@ namespace AssetStudio
catch (Exception e) catch (Exception e)
{ {
Logger.Error($"Error while reading assets file {reader.FullPath} from {Path.GetFileName(originalPath)}", e); Logger.Error($"Error while reading assets file {reader.FullPath} from {Path.GetFileName(originalPath)}", e);
resourceFileReaders.Add(reader.FileName, reader); resourceFileReaders.TryAdd(reader.FileName, reader);
} }
} }
else else
@@ -269,7 +269,7 @@ namespace AssetStudio
else else
{ {
Logger.Verbose("Caching resource stream"); Logger.Verbose("Caching resource stream");
resourceFileReaders[file.fileName] = subReader; //TODO resourceFileReaders.TryAdd(file.fileName, subReader); //TODO
} }
} }
} }
@@ -315,7 +315,7 @@ namespace AssetStudio
break; break;
case FileType.ResourceFile: case FileType.ResourceFile:
Logger.Verbose("Caching resource stream"); Logger.Verbose("Caching resource stream");
resourceFileReaders[file.fileName] = subReader; //TODO resourceFileReaders.TryAdd(file.fileName, subReader); //TODO
break; break;
} }
} }
@@ -407,11 +407,8 @@ namespace AssetStudio
if (entryReader.FileType == FileType.ResourceFile) if (entryReader.FileType == FileType.ResourceFile)
{ {
entryReader.Position = 0; entryReader.Position = 0;
if (!resourceFileReaders.ContainsKey(entry.Name)) Logger.Verbose("Caching resource file");
{ resourceFileReaders.TryAdd(entry.Name, entryReader);
Logger.Verbose("Caching resource file");
resourceFileReaders.Add(entry.Name, entryReader);
}
} }
} }
catch (Exception e) catch (Exception e)
@@ -525,7 +522,7 @@ namespace AssetStudio
else else
{ {
Logger.Verbose("Caching resource stream"); Logger.Verbose("Caching resource stream");
resourceFileReaders[file.fileName] = cabReader; //TODO resourceFileReaders.TryAdd(file.fileName, cabReader); //TODO
} }
} }
} }
@@ -568,7 +565,7 @@ namespace AssetStudio
else else
{ {
Logger.Verbose("Caching resource stream"); Logger.Verbose("Caching resource stream");
resourceFileReaders[file.fileName] = cabReader; //TODO resourceFileReaders.TryAdd(file.fileName, cabReader); //TODO
} }
} }
} }

View File

@@ -587,8 +587,8 @@ namespace AssetStudio
public List<UAVParameter> m_UAVParams; public List<UAVParameter> m_UAVParams;
public List<SamplerParameter> m_Samplers; public List<SamplerParameter> m_Samplers;
public static bool HasGlobalLocalKeywordIndices(SerializedType type) => type.Match("E99740711222CD922E9A6F92FF1EB07A", "450A058C218DAF000647948F2F59DA6D", "B239746E4EC6E4D6D7BA27C84178610A"); public static bool HasGlobalLocalKeywordIndices(SerializedType type) => type.Match("E99740711222CD922E9A6F92FF1EB07A", "450A058C218DAF000647948F2F59DA6D", "B239746E4EC6E4D6D7BA27C84178610A", "3FD560648A91A99210D5DDF2BE320536");
public static bool HasInstancedStructuredBuffers(SerializedType type) => type.Match("E99740711222CD922E9A6F92FF1EB07A", "B239746E4EC6E4D6D7BA27C84178610A"); public static bool HasInstancedStructuredBuffers(SerializedType type) => type.Match("E99740711222CD922E9A6F92FF1EB07A", "B239746E4EC6E4D6D7BA27C84178610A", "3FD560648A91A99210D5DDF2BE320536");
public static bool HasIsAdditionalBlob(SerializedType type) => type.Match("B239746E4EC6E4D6D7BA27C84178610A"); public static bool HasIsAdditionalBlob(SerializedType type) => type.Match("B239746E4EC6E4D6D7BA27C84178610A");
public SerializedSubProgram(ObjectReader reader) public SerializedSubProgram(ObjectReader reader)

View File

@@ -53,7 +53,7 @@ namespace AssetStudio
{ {
needSearch = false; needSearch = false;
reader = new BinaryReader(File.OpenRead(resourceFilePath)); reader = new BinaryReader(File.OpenRead(resourceFilePath));
assetsFile.assetsManager.resourceFileReaders.Add(resourceFileName, reader); assetsFile.assetsManager.resourceFileReaders.TryAdd(resourceFileName, reader);
return reader; return reader;
} }
throw new FileNotFoundException($"Can't find the resource file {resourceFileName}"); throw new FileNotFoundException($"Can't find the resource file {resourceFileName}");