Compare commits

...

3 Commits

Author SHA1 Message Date
Anna 121c668aae
chore: bump version to 1.9.3 2022-01-09 23:21:46 -05:00
Anna d8942042d3
style: run formatter 2022-01-09 23:21:26 -05:00
Anna 6ce6a530d4
fix: use dye previews when available 2022-01-09 23:21:07 -05:00
4 changed files with 20 additions and 9 deletions

View File

@ -79,13 +79,13 @@ namespace Glamaholic {
isHandled = true; isHandled = true;
} }
} }
private static void OnLogin(object? sender, EventArgs e) { private static void OnLogin(object? sender, EventArgs e) {
_dresserContents = null; _dresserContents = null;
} }
private bool _wasEditing; private bool _wasEditing;
private void OnFrameworkUpdate(Dalamud.Game.Framework framework) { private void OnFrameworkUpdate(Dalamud.Game.Framework framework) {
var editing = Util.IsEditingPlate(this.Plugin.GameGui); var editing = Util.IsEditingPlate(this.Plugin.GameGui);
if (!this._wasEditing && editing) { if (!this._wasEditing && editing) {
@ -153,8 +153,12 @@ namespace Glamaholic {
foreach (var slot in (PlateSlot[]) Enum.GetValues(typeof(PlateSlot))) { foreach (var slot in (PlateSlot[]) Enum.GetValues(typeof(PlateSlot))) {
// Updated: 6.0 // Updated: 6.0
// from SetGlamourPlateSlot // from SetGlamourPlateSlot
var itemId = *(uint*) (editorInfo + 44 * (int) slot + 7956); var item = editorInfo + 44 * (int) slot + 7956;
var stainId = *(byte*) (editorInfo + 44 * (int) slot + 7980);
var itemId = *(uint*) item;
var stainId = *(byte*) (item + 24);
var stainPreviewId = *(byte*) (item + 25);
var actualStainId = stainPreviewId == 0 ? stainId : stainPreviewId;
if (itemId == 0) { if (itemId == 0) {
continue; continue;
@ -162,7 +166,7 @@ namespace Glamaholic {
plate[slot] = new SavedGlamourItem { plate[slot] = new SavedGlamourItem {
ItemId = itemId, ItemId = itemId,
StainId = stainId, StainId = actualStainId,
}; };
} }

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net5.0-windows</TargetFramework> <TargetFramework>net5.0-windows</TargetFramework>
<Version>1.9.2</Version> <Version>1.9.3</Version>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ProduceReferenceAssembly>false</ProduceReferenceAssembly> <ProduceReferenceAssembly>false</ProduceReferenceAssembly>

View File

@ -17,7 +17,7 @@ namespace Glamaholic {
[PluginService] [PluginService]
internal ChatGui ChatGui { get; init; } internal ChatGui ChatGui { get; init; }
[PluginService] [PluginService]
internal ClientState ClientState { get; init; } internal ClientState ClientState { get; init; }
@ -26,7 +26,7 @@ namespace Glamaholic {
[PluginService] [PluginService]
internal DataManager DataManager { get; init; } internal DataManager DataManager { get; init; }
[PluginService] [PluginService]
internal Framework Framework { get; init; } internal Framework Framework { get; init; }

View File

@ -63,11 +63,15 @@ namespace Glamaholic.Ui.Helpers {
itemId = item->GlamourId; itemId = item->GlamourId;
} }
var stainId = item->StainPreviewId == 0
? item->StainId
: item->StainPreviewId;
// for some reason, this still accounts for belts in EW // for some reason, this still accounts for belts in EW
var slot = item->Slot > 5 ? item->Slot - 1 : item->Slot; var slot = item->Slot > 5 ? item->Slot - 1 : item->Slot;
items[(PlateSlot) slot] = new SavedGlamourItem { items[(PlateSlot) slot] = new SavedGlamourItem {
ItemId = itemId % Util.HqItemOffset, ItemId = itemId % Util.HqItemOffset,
StainId = item->StainId, StainId = stainId,
}; };
} }
@ -82,6 +86,9 @@ namespace Glamaholic.Ui.Helpers {
[FieldOffset(2)] [FieldOffset(2)]
internal readonly byte StainId; internal readonly byte StainId;
[FieldOffset(3)]
internal readonly byte StainPreviewId;
[FieldOffset(5)] [FieldOffset(5)]
internal readonly byte UnknownByte; internal readonly byte UnknownByte;