Compare commits

..

14 Commits

2 changed files with 11 additions and 29 deletions

View File

@@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<Authors></Authors> <Authors></Authors>
<Company></Company> <Company></Company>
<Version>2.0.2.71</Version> <Version>2.0.3</Version>
<Description></Description> <Description></Description>
<Copyright></Copyright> <Copyright></Copyright>
<PackageProjectUrl>https://github.com/Light-Public-Syncshells/LightlessClient</PackageProjectUrl> <PackageProjectUrl>https://github.com/Light-Public-Syncshells/LightlessClient</PackageProjectUrl>

View File

@@ -955,13 +955,7 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
private unsafe void CheckCharacterForDrawing(nint address, string characterName) private unsafe void CheckCharacterForDrawing(nint address, string characterName)
{ {
if (address == nint.Zero)
return;
var gameObj = (GameObject*)address; var gameObj = (GameObject*)address;
if (gameObj == null || gameObj->ObjectKind == 0)
return;
var drawObj = gameObj->DrawObject; var drawObj = gameObj->DrawObject;
bool isDrawing = false; bool isDrawing = false;
bool isDrawingChanged = false; bool isDrawingChanged = false;
@@ -1057,29 +1051,17 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
} }
if (!IsAnythingDrawing) if (!IsAnythingDrawing)
{
try
{ {
var gameObj = (GameObject*)playerAddress; var gameObj = (GameObject*)playerAddress;
var currentName = gameObj != null ? gameObj->NameString ?? string.Empty : string.Empty;
if (gameObj == null || gameObj->ObjectKind == 0)
{
continue;
}
var currentName = gameObj->NameString ?? string.Empty;
var charaName = string.IsNullOrEmpty(currentName) ? actor.Name : currentName; var charaName = string.IsNullOrEmpty(currentName) ? actor.Name : currentName;
CheckCharacterForDrawing(playerAddress, charaName); CheckCharacterForDrawing(playerAddress, charaName);
if (IsAnythingDrawing) if (IsAnythingDrawing)
break; break;
} }
catch (AccessViolationException ex) else
{ {
_logger.LogWarning(ex, "Memory access violation reading character at {addr}", playerAddress.ToString("X")); break;
continue;
}
} }
} }
}); });