From 1ade743f8226083879d095c196f0c5c38a779f78 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sat, 28 Jun 2025 13:14:31 -0400 Subject: [PATCH] Add support for extracting unlock link and unlock aetheryte flags --- dalamud/Auracite/MiscStep.cs | 4 ++++ dalamud/Auracite/Plugin.cs | 2 ++ src/data.rs | 5 +++++ src/lib.rs | 2 ++ src/package.rs | 3 +++ 5 files changed, 16 insertions(+) diff --git a/dalamud/Auracite/MiscStep.cs b/dalamud/Auracite/MiscStep.cs index d459a4b..f222060 100644 --- a/dalamud/Auracite/MiscStep.cs +++ b/dalamud/Auracite/MiscStep.cs @@ -17,6 +17,10 @@ public class MiscStep : IStep Plugin.package.is_novice = PlayerState.Instance()->IsNovice(); Plugin.package.is_returner = PlayerState.Instance()->IsReturner(); Plugin.package.player_commendations = PlayerState.Instance()->PlayerCommendations; + Plugin.package.unlock_flags = new System.Collections.Generic.List(); // TODO: lol + Plugin.package.unlock_flags.AddRange(UIState.Instance()->UnlockLinkBitmask.ToArray()); + Plugin.package.unlock_aetherytes = new System.Collections.Generic.List(); // TODO: lol + Plugin.package.unlock_aetherytes.AddRange(UIState.Instance()->UnlockedAetherytesBitmask.ToArray()); var localPlayer = Plugin.ClientState.LocalPlayer; if (localPlayer != null) diff --git a/dalamud/Auracite/Plugin.cs b/dalamud/Auracite/Plugin.cs index f85a76d..34da85a 100644 --- a/dalamud/Auracite/Plugin.cs +++ b/dalamud/Auracite/Plugin.cs @@ -113,6 +113,8 @@ public sealed class Plugin : IDalamudPlugin public InventoryContainer armory_main_hand; public int voice; + public List unlock_flags; + public List unlock_aetherytes; } public static Package? package; diff --git a/src/data.rs b/src/data.rs index 5cfc145..7d7d3d0 100644 --- a/src/data.rs +++ b/src/data.rs @@ -164,4 +164,9 @@ pub struct CharacterData { pub armory_soul_crystal: Option, #[serde(skip_serializing_if = "Option::is_none")] pub armory_main_hand: Option, + + #[serde(skip_serializing_if = "Option::is_none")] + pub unlock_flags: Option>, + #[serde(skip_serializing_if = "Option::is_none")] + pub unlock_aetherytes: Option>, } diff --git a/src/lib.rs b/src/lib.rs index 3915b3c..9400c07 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -259,6 +259,8 @@ pub async fn archive_character(id: u64, use_dalamud: bool) -> Result, Ar char_data.plate_classjob_level = Some(package.plate_class_job_level); char_data.search_comment = Some(package.search_comment); char_data.voice = Some(package.voice); + char_data.unlock_flags = Some(package.unlock_flags); + char_data.unlock_aetherytes = Some(package.unlock_aetherytes); zip.start_file("plate-portrait.png", options)?; zip.write_all( diff --git a/src/package.rs b/src/package.rs index f6862d5..585d4c3 100644 --- a/src/package.rs +++ b/src/package.rs @@ -88,4 +88,7 @@ pub struct Package { pub armory_rings: InventoryContainer, pub armory_soul_crystal: InventoryContainer, pub armory_main_hand: InventoryContainer, + + pub unlock_flags: Vec, + pub unlock_aetherytes: Vec, }