From 6ce6a530d45f6834e46ec9b6be9af07860e689f5 Mon Sep 17 00:00:00 2001 From: Anna Clemens Date: Sun, 9 Jan 2022 23:21:07 -0500 Subject: [PATCH] fix: use dye previews when available --- Glamaholic/GameFunctions.cs | 10 +++++++--- Glamaholic/Ui/Helpers/TryOnHelper.cs | 9 ++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Glamaholic/GameFunctions.cs b/Glamaholic/GameFunctions.cs index 6559c3c..054cc96 100755 --- a/Glamaholic/GameFunctions.cs +++ b/Glamaholic/GameFunctions.cs @@ -153,8 +153,12 @@ namespace Glamaholic { foreach (var slot in (PlateSlot[]) Enum.GetValues(typeof(PlateSlot))) { // Updated: 6.0 // from SetGlamourPlateSlot - var itemId = *(uint*) (editorInfo + 44 * (int) slot + 7956); - var stainId = *(byte*) (editorInfo + 44 * (int) slot + 7980); + var item = editorInfo + 44 * (int) slot + 7956; + + var itemId = *(uint*) item; + var stainId = *(byte*) (item + 24); + var stainPreviewId = *(byte*) (item + 25); + var actualStainId = stainPreviewId == 0 ? stainId : stainPreviewId; if (itemId == 0) { continue; @@ -162,7 +166,7 @@ namespace Glamaholic { plate[slot] = new SavedGlamourItem { ItemId = itemId, - StainId = stainId, + StainId = actualStainId, }; } diff --git a/Glamaholic/Ui/Helpers/TryOnHelper.cs b/Glamaholic/Ui/Helpers/TryOnHelper.cs index 7310620..6362963 100755 --- a/Glamaholic/Ui/Helpers/TryOnHelper.cs +++ b/Glamaholic/Ui/Helpers/TryOnHelper.cs @@ -63,11 +63,15 @@ namespace Glamaholic.Ui.Helpers { itemId = item->GlamourId; } + var stainId = item->StainPreviewId == 0 + ? item->StainId + : item->StainPreviewId; + // for some reason, this still accounts for belts in EW var slot = item->Slot > 5 ? item->Slot - 1 : item->Slot; items[(PlateSlot) slot] = new SavedGlamourItem { ItemId = itemId % Util.HqItemOffset, - StainId = item->StainId, + StainId = stainId, }; } @@ -82,6 +86,9 @@ namespace Glamaholic.Ui.Helpers { [FieldOffset(2)] internal readonly byte StainId; + [FieldOffset(3)] + internal readonly byte StainPreviewId; + [FieldOffset(5)] internal readonly byte UnknownByte;