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)) 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); var info = GamePathParser.GetFileInfo(path);
IdentifyParsed(set, info); IdentifyParsed(set, info);
} }
}
public Dictionary<string, object?> Identify(string path) 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) private void IdentifyParsed(IDictionary<string, object?> set, GameObjectInfo info)
{ {
switch (info.ObjectType)
{
case ObjectType.Unknown:
switch (info.FileType) switch (info.FileType)
{ {
case FileType.Sound: case FileType.Sound:
AddCounterString(set, FileType.Sound.ToString()); AddCounterString(set, FileType.Sound.ToString());
break; return;
case FileType.Animation: case FileType.Animation:
case FileType.Pap: case FileType.Pap:
AddCounterString(set, FileType.Animation.ToString()); AddCounterString(set, FileType.Animation.ToString());
break; return;
case FileType.Shader: case FileType.Shader:
AddCounterString(set, FileType.Shader.ToString()); AddCounterString(set, FileType.Shader.ToString());
break; return;
} }
break; switch (info.ObjectType)
{
case ObjectType.LoadingScreen: case ObjectType.LoadingScreen:
case ObjectType.Map: case ObjectType.Map:
case ObjectType.Interface: case ObjectType.Interface:
@ -235,19 +232,18 @@ internal sealed class ObjectIdentification : DataSharer, IObjectIdentifier
} }
break; 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); var key = GamePathParser.VfxToKey(path);
if (key.Length == 0 || !Actions.TryGetValue(key, out var actions)) if (key.Length == 0 || !Actions.TryGetValue(key, out var actions) || actions.Count == 0)
return; return false;
foreach (var action in actions) foreach (var action in actions)
set[$"Action: {action.Name}"] = action; set[$"Action: {action.Name}"] = action;
return true;
} }
private IReadOnlyList<IReadOnlyList<(string Name, ObjectKind Kind)>> CreateModelObjects(ActorManager.ActorManagerData actors, private IReadOnlyList<IReadOnlyList<(string Name, ObjectKind Kind)>> CreateModelObjects(ActorManager.ActorManagerData actors,