diff --git a/MareSynchronos/Factories/CharacterDataFactory.cs b/MareSynchronos/Factories/CharacterDataFactory.cs index 94d2943..27cf632 100644 --- a/MareSynchronos/Factories/CharacterDataFactory.cs +++ b/MareSynchronos/Factories/CharacterDataFactory.cs @@ -196,12 +196,29 @@ public class CharacterDataFactory AddReplacementsFromTexture(new Utf8String(((HumanExt*)human)->Decal->FileName()).ToString(), cache, 0, "Decal", false); AddReplacementsFromTexture(new Utf8String(((HumanExt*)human)->LegacyBodyDecal->FileName()).ToString(), cache, 0, "Legacy Decal", false); + + AddReplacementSkeleton(((HumanExt*)human)->Human.RaceSexId, cache); + st.Stop(); Logger.Verbose("Building Character Data took " + st.Elapsed); return cache; } + private void AddReplacementSkeleton(ushort raceSexId, CharacterData cache) + { + string raceSexIdString = raceSexId.ToString("0000"); + + string skeletonPath = $"chara/human/c{raceSexIdString}/skeleton/base/b0001/skl_c{raceSexIdString}b0001.sklb"; + + Logger.Verbose("Adding File Replacement for Skeleton " + skeletonPath); + + var replacement = CreateFileReplacement(skeletonPath, true); + cache.AddFileReplacement(replacement); + + DebugPrint(replacement, "Skeleton", "SKLB", 0); + } + private FileReplacement CreateFileReplacement(string path, bool doNotReverseResolve = false) { var fileReplacement = new FileReplacement(_ipcManager.PenumbraModDirectory()!); @@ -214,7 +231,7 @@ public class CharacterDataFactory else { fileReplacement.GamePaths = new List { path }; - fileReplacement.SetResolvedPath(_ipcManager.PenumbraResolvePath(path, _dalamudUtil.PlayerName)!); + fileReplacement.SetResolvedPath(_ipcManager.PenumbraResolvePath(path)!); } return fileReplacement; diff --git a/MareSynchronos/Managers/IpcManager.cs b/MareSynchronos/Managers/IpcManager.cs index 84a1c8d..22598bd 100644 --- a/MareSynchronos/Managers/IpcManager.cs +++ b/MareSynchronos/Managers/IpcManager.cs @@ -175,7 +175,7 @@ namespace MareSynchronos.Managers _penumbraRemoveTemporaryCollection.InvokeFunc(characterName); } - public string? PenumbraResolvePath(string path, string characterName) + public string? PenumbraResolvePath(string path) { if (!CheckPenumbraApi()) return null; var resolvedPath = _penumbraResolvePlayer!.InvokeFunc(path); diff --git a/MareSynchronos/MareSynchronos.csproj b/MareSynchronos/MareSynchronos.csproj index a410fe1..7be8699 100644 --- a/MareSynchronos/MareSynchronos.csproj +++ b/MareSynchronos/MareSynchronos.csproj @@ -3,7 +3,7 @@ - 0.1.11.0 + 0.1.12.0 https://github.com/Penumbra-Sync/client