fix minions/mounts for 6.2, todo: remove penumbra redraw once glamourer is available

This commit is contained in:
Stanley Dimant
2022-08-24 22:02:56 +02:00
parent 0d3fbc245b
commit 5cdb9e6dfa
8 changed files with 72 additions and 69 deletions

View File

@@ -236,14 +236,18 @@ public class CachedPlayer
Logger.Debug(
$"Request Redraw for {PlayerName}");
_ipcManager.GlamourerApplyAll(glamourerData, PlayerCharacter.Address);
// todo: remove
_ipcManager.PenumbraRedraw(PlayerCharacter.Address);
}
else if (objectKind == ObjectKind.Minion)
else if (objectKind == ObjectKind.MinionOrMount)
{
var minion = ((Character*)PlayerCharacter.Address)->CompanionObject;
if (minion != null)
var minionOrMount = ((Character*)PlayerCharacter.Address)->CompanionObject;
if (minionOrMount != null)
{
Logger.Debug($"Request Redraw for Minion");
_ipcManager.GlamourerApplyAll(glamourerData, obj: (IntPtr)minion);
Logger.Debug($"Request Redraw for Minion/Mount");
_ipcManager.GlamourerApplyAll(glamourerData, obj: (IntPtr)minionOrMount);
// todo: remove
_ipcManager.PenumbraRedraw((IntPtr)minionOrMount);
}
}
else if (objectKind == ObjectKind.Pet)
@@ -253,6 +257,8 @@ public class CachedPlayer
{
Logger.Debug("Request Redraw for Pet");
_ipcManager.GlamourerApplyAll(glamourerData, pet);
// todo: remove
_ipcManager.PenumbraRedraw(pet);
}
}
else if (objectKind == ObjectKind.Companion)
@@ -262,15 +268,8 @@ public class CachedPlayer
{
Logger.Debug("Request Redraw for Companion");
_ipcManager.GlamourerApplyAll(glamourerData, companion);
}
}
else if (objectKind == ObjectKind.Mount)
{
var mount = ((CharaExt*)PlayerCharacter.Address)->Mount;
if (mount != null)
{
Logger.Debug($"Request Redraw for Mount");
_ipcManager.PenumbraRedraw((IntPtr)mount);
// todo: remove
_ipcManager.PenumbraRedraw(companion);
}
}
}
@@ -283,13 +282,15 @@ public class CachedPlayer
{
_ipcManager.GlamourerApplyOnlyCustomization(_originalGlamourerData, PlayerCharacter);
_ipcManager.GlamourerApplyOnlyEquipment(_lastGlamourerData, PlayerCharacter);
// todo: remove
_ipcManager.PenumbraRedraw(PlayerCharacter.Address);
}
else if (objectKind == ObjectKind.Minion)
else if (objectKind == ObjectKind.MinionOrMount)
{
var minion = ((Character*)PlayerCharacter.Address)->CompanionObject;
if (minion != null)
var minionOrMount = ((Character*)PlayerCharacter.Address)->CompanionObject;
if (minionOrMount != null)
{
_ipcManager.PenumbraRedraw((IntPtr)minion);
_ipcManager.PenumbraRedraw((IntPtr)minionOrMount);
}
}
else if (objectKind == ObjectKind.Pet)
@@ -308,14 +309,6 @@ public class CachedPlayer
_ipcManager.PenumbraRedraw(companion);
}
}
else if (objectKind == ObjectKind.Mount)
{
var mount = ((CharaExt*)PlayerCharacter.Address)->Mount;
if (mount != null)
{
_ipcManager.PenumbraRedraw((IntPtr)mount);
}
}
}
public void DisposePlayer()
@@ -429,6 +422,7 @@ public class CachedPlayer
Logger.Debug($"Player {PlayerName} changed, PenumbraRedraw is {RequestedPenumbraRedraw}");
if (!RequestedPenumbraRedraw && PlayerCharacter is not null)
{
_currentCharacterEquipment.HasUnprocessedUpdate = false;
Logger.Debug($"Saving new Glamourer data");
_lastGlamourerData = _ipcManager.GlamourerGetCharacterCustomization(PlayerCharacter!);
}