mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 18:27:24 +01:00
Fix unknown animations not counting for changed items.
This commit is contained in:
parent
878395e164
commit
78e772dad9
1 changed files with 24 additions and 28 deletions
|
|
@ -50,13 +50,12 @@ 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)
|
switch (info.FileType)
|
||||||
{
|
{
|
||||||
case ObjectType.Unknown:
|
case FileType.Sound:
|
||||||
switch (info.FileType)
|
AddCounterString(set, FileType.Sound.ToString());
|
||||||
{
|
return;
|
||||||
case FileType.Sound:
|
case FileType.Animation:
|
||||||
AddCounterString(set, FileType.Sound.ToString());
|
case FileType.Pap:
|
||||||
break;
|
AddCounterString(set, FileType.Animation.ToString());
|
||||||
case FileType.Animation:
|
return;
|
||||||
case FileType.Pap:
|
case FileType.Shader:
|
||||||
AddCounterString(set, FileType.Animation.ToString());
|
AddCounterString(set, FileType.Shader.ToString());
|
||||||
break;
|
return;
|
||||||
case FileType.Shader:
|
}
|
||||||
AddCounterString(set, FileType.Shader.ToString());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
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,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue