Fix unknown animations not counting for changed items.

This commit is contained in:
Ottermandias 2023-06-05 18:24:58 +02:00
parent 878395e164
commit 78e772dad9

View file

@ -50,14 +50,13 @@ internal sealed class ObjectIdentification : DataSharer, IObjectIdentifier
{
if (path.EndsWith(".pap", StringComparison.OrdinalIgnoreCase) || path.EndsWith(".tmb", StringComparison.OrdinalIgnoreCase))
{
IdentifyVfx(set, path);
if (IdentifyVfx(set, path))
return;
}
else
{
var info = GamePathParser.GetFileInfo(path);
IdentifyParsed(set, info);
}
}
public Dictionary<string, object?> Identify(string path)
{
@ -161,24 +160,22 @@ internal sealed class ObjectIdentification : DataSharer, IObjectIdentifier
private void IdentifyParsed(IDictionary<string, object?> set, GameObjectInfo info)
{
switch (info.ObjectType)
{
case ObjectType.Unknown:
switch (info.FileType)
{
case FileType.Sound:
AddCounterString(set, FileType.Sound.ToString());
break;
return;
case FileType.Animation:
case FileType.Pap:
AddCounterString(set, FileType.Animation.ToString());
break;
return;
case FileType.Shader:
AddCounterString(set, FileType.Shader.ToString());
break;
return;
}
break;
switch (info.ObjectType)
{
case ObjectType.LoadingScreen:
case ObjectType.Map:
case ObjectType.Interface:
@ -235,19 +232,18 @@ internal sealed class ObjectIdentification : DataSharer, IObjectIdentifier
}
break;
default: throw new InvalidEnumArgumentException();
}
}
private void IdentifyVfx(IDictionary<string, object?> set, string path)
private bool IdentifyVfx(IDictionary<string, object?> set, string path)
{
var key = GamePathParser.VfxToKey(path);
if (key.Length == 0 || !Actions.TryGetValue(key, out var actions))
return;
if (key.Length == 0 || !Actions.TryGetValue(key, out var actions) || actions.Count == 0)
return false;
foreach (var action in actions)
set[$"Action: {action.Name}"] = action;
return true;
}
private IReadOnlyList<IReadOnlyList<(string Name, ObjectKind Kind)>> CreateModelObjects(ActorManager.ActorManagerData actors,