diff --git a/Penumbra/Import/Models/HavokConverter.cs b/Penumbra/Import/Models/HavokConverter.cs
index 89f9ac4f..38c8749a 100644
--- a/Penumbra/Import/Models/HavokConverter.cs
+++ b/Penumbra/Import/Models/HavokConverter.cs
@@ -71,8 +71,7 @@ public static unsafe class HavokConverter
/// Path to a file on the filesystem.
private static hkResource* Read(string filePath)
{
- var path = Marshal.StringToHGlobalAnsi(filePath);
-
+ var path = Encoding.UTF8.GetBytes(filePath);
var builtinTypeRegistry = hkBuiltinTypeRegistry.Instance();
var loadOptions = stackalloc hkSerializeUtil.LoadOptions[1];
@@ -81,8 +80,7 @@ public static unsafe class HavokConverter
loadOptions->TypeInfoRegistry = builtinTypeRegistry->GetTypeInfoRegistry();
// TODO: probably can use LoadFromBuffer for this.
- var resource = hkSerializeUtil.LoadFromFile((byte*)path, null, loadOptions);
- return resource;
+ return hkSerializeUtil.LoadFromFile(path, null, loadOptions);
}
/// Serializes an hkResource* to a temporary file.
@@ -94,9 +92,9 @@ public static unsafe class HavokConverter
)
{
var tempFile = CreateTempFile();
- var path = Marshal.StringToHGlobalAnsi(tempFile);
+ var path = Encoding.UTF8.GetBytes(tempFile);
var oStream = new hkOstream();
- oStream.Ctor((byte*)path);
+ oStream.Ctor(path);
var result = stackalloc hkResult[1];
diff --git a/Penumbra/Import/Models/SkeletonConverter.cs b/Penumbra/Import/Models/SkeletonConverter.cs
index 7058a159..25e74332 100644
--- a/Penumbra/Import/Models/SkeletonConverter.cs
+++ b/Penumbra/Import/Models/SkeletonConverter.cs
@@ -84,9 +84,8 @@ public static class SkeletonConverter
.Where(n => n.NodeType != XmlNodeType.Comment)
.Select(n =>
{
- var text = n.InnerText.Trim()[1..];
- // TODO: surely there's a less shit way to do this I mean seriously
- return BitConverter.ToSingle(BitConverter.GetBytes(int.Parse(text, NumberStyles.HexNumber)));
+ var text = n.InnerText.AsSpan().Trim()[1..];
+ return BitConverter.Int32BitsToSingle(int.Parse(text, NumberStyles.HexNumber));
})
.ToArray();