mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
fix: Use SetValue for FlyText string arrays (#1532)
- Might fix a bug causing crashes with certain FlyText use cases, maybe. - Also allows building Dalamud under .NET 8 local envs.
This commit is contained in:
parent
48e8462550
commit
93f08a4cb5
2 changed files with 20 additions and 26 deletions
|
|
@ -1,4 +1,3 @@
|
|||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
|
@ -113,32 +112,26 @@ internal sealed class FlyTextGui : IDisposable, IServiceType, IFlyTextGui
|
|||
numArray->IntArray[numOffset + 2] = unchecked((int)val1);
|
||||
numArray->IntArray[numOffset + 3] = unchecked((int)val2);
|
||||
numArray->IntArray[numOffset + 4] = unchecked((int)damageTypeIcon); // Icons for damage type
|
||||
numArray->IntArray[numOffset + 5] = 5; // Unknown
|
||||
numArray->IntArray[numOffset + 5] = 5; // Unknown
|
||||
numArray->IntArray[numOffset + 6] = unchecked((int)color);
|
||||
numArray->IntArray[numOffset + 7] = unchecked((int)icon);
|
||||
numArray->IntArray[numOffset + 8] = 0; // Unknown
|
||||
numArray->IntArray[numOffset + 9] = 0; // Unknown, has something to do with yOffset
|
||||
|
||||
fixed (byte* pText1 = text1.Encode())
|
||||
{
|
||||
fixed (byte* pText2 = text2.Encode())
|
||||
{
|
||||
strArray->StringArray[strOffset + 0] = pText1;
|
||||
strArray->StringArray[strOffset + 1] = pText2;
|
||||
strArray->SetValue((int)strOffset + 0, text1.Encode(), false, true, false);
|
||||
strArray->SetValue((int)strOffset + 1, text2.Encode(), false, true, false);
|
||||
|
||||
this.addFlyTextNative(
|
||||
flytext,
|
||||
actorIndex,
|
||||
1,
|
||||
(IntPtr)numArray,
|
||||
numOffset,
|
||||
10,
|
||||
(IntPtr)strArray,
|
||||
strOffset,
|
||||
2,
|
||||
0);
|
||||
}
|
||||
}
|
||||
this.addFlyTextNative(
|
||||
flytext,
|
||||
actorIndex,
|
||||
1,
|
||||
(IntPtr)numArray,
|
||||
numOffset,
|
||||
10,
|
||||
(IntPtr)strArray,
|
||||
strOffset,
|
||||
2,
|
||||
0);
|
||||
}
|
||||
|
||||
private static byte[] Terminate(byte[] source)
|
||||
|
|
@ -230,7 +223,8 @@ internal sealed class FlyTextGui : IDisposable, IServiceType, IFlyTextGui
|
|||
if (!dirty)
|
||||
{
|
||||
Log.Verbose("[FlyText] Calling flytext with original args.");
|
||||
return this.createFlyTextHook.Original(addonFlyText, kind, val1, val2, text2, color, icon, damageTypeIcon, text1, yOffset);
|
||||
return this.createFlyTextHook.Original(addonFlyText, kind, val1, val2, text2, color, icon,
|
||||
damageTypeIcon, text1, yOffset);
|
||||
}
|
||||
|
||||
var terminated1 = Terminate(tmpText1.Encode());
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"sdk": {
|
||||
"version": "7.0.0",
|
||||
"rollForward": "latestMinor",
|
||||
"rollForward": "latestMajor",
|
||||
"allowPrerelease": true
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue