using System.Collections.Generic; using System.Linq; using System.Numerics; using System.Runtime.CompilerServices; using Dalamud.Bindings.ImGui; using Dalamud.Configuration; using Dalamud.Interface; using Dalamud.Interface.Utility.Raii; using Dalamud.Interface.Windowing; using Dalamud.Plugin; using Questionable.Data; using Questionable.Model.Changelog; using Questionable.Windows.ChangelogComponents; namespace Questionable.Windows; internal sealed class ChangelogWindow : ThemedWindow { private readonly Configuration _configuration; private readonly IDalamudPluginInterface _pluginInterface; private readonly ChangelogHeaderComponent _headerComponent; private readonly ChangelogFooterComponent _footerComponent; private int _windowOpenCount; private bool _hasSetInitialState; private float _headerAnimationTime; [MethodImpl(MethodImplOptions.NoInlining)] public ChangelogWindow(Configuration configuration, IDalamudPluginInterface pluginInterface) : base(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(1311522858), ImGuiWindowFlags.NoTitleBar) { _configuration = configuration; _pluginInterface = pluginInterface; _headerComponent = new ChangelogHeaderComponent(); _footerComponent = new ChangelogFooterComponent(); _206C_200E_202B_202B_206A_206B_200F_206C_200E_206B_200B_206E_200D_200B_206C_200E_206E_202C_200F_200E_202E_206D_202B_202E_206C_200C_206F_202A_206A_200D_200C_202E_202B_202D_202B_202C_202C_200F_202A_202C_202E((Vector2?)new Vector2(900f, 650f)); _206C_202E_200B_200E_200E_200B_206A_200D_206B_200E_200B_202B_202D_202A_200F_206D_202C_200C_200D_206C_202E_200E_202B_202C_206D_202C_202A_202E_200E_206C_202B_200D_200B_200F_200E_200D_202D_206D_202A_202B_202E(ImGuiCond.FirstUseEver); _206C_206A_206C_202C_206F_200C_200F_202A_202A_200E_206B_200B_202E_202B_202C_202D_202D_200C_202D_202D_200F_206E_206E_200E_200C_202A_206A_206E_200E_202B_202E_202E_200E_202B_206A_202C_200F_206D_202B_206A_202E((WindowSizeConstraints?)new WindowSizeConstraints { MinimumSize = new Vector2(700f, 500f), MaximumSize = new Vector2(float.MaxValue, float.MaxValue) }); } public override void DrawContent() { _headerComponent.Draw(delegate(bool isOpen) { int num = (isOpen ? (-1673190192) : (-1673190191)); while (true) { int num2 = num; int num3 = -1673190192; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 2: num = -1673190191; break; case 0: return; case 1: RequestClose(); num = -1673190192; break; } } }); DrawChangelogEntries(); ChangelogFooterComponent.Draw(base.RequestClose); ImDrawListPtr imDrawListPtr = _206D_200E_206F_202B_202E_200F_200D_200D_206A_200D_202D_202A_200B_206A_200B_200E_206B_206B_200B_202C_202E_206C_200C_206C_206A_206A_202D_200D_206B_206E_202A_200E_202B_200F_206F_206E_206E_202E_202B_202C_202E(); Vector2 vector = _202B_200C_206F_200D_200D_206D_200C_202D_206B_202B_206B_206C_200C_200D_200F_200F_200D_202C_200C_206F_206B_202D_202B_202C_206C_200E_202E_206C_200F_206E_206E_206D_206B_206B_202B_200F_200C_206A_202D_200C_202E(); Vector2 vector2 = _206A_202C_202A_200D_206B_202E_206C_206C_206B_200B_206A_206C_206A_200C_206B_206A_206E_206B_200E_206A_202C_202B_202A_202C_206A_200E_202B_200C_202E_202C_206E_206C_200E_206D_206B_200D_206E_206A_202E_202A_202E(); Vector2 pMax = vector + vector2; Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.3f; imDrawListPtr.AddRect(vector, pMax, _200E_202D_206A_206A_206A_202D_202A_200C_202E_202E_202C_202C_206D_202C_206E_206C_202C_206D_206D_206E_202D_202D_206D_202A_202D_200D_200F_202E_200C_200F_202B_200D_202C_202D_206A_202B_202E_202A_202D_200D_202E(accentColor), 0f, ImDrawFlags.None, 2f); } public override void OnOpen() { _202E_202E_200F_206C_200E_206F_200B_206C_200C_202C_202B_206B_202D_202D_206E_206D_202B_206A_202B_206D_202A_200D_200D_206B_200F_200F_202B_202C_206E_200D_200F_206F_206E_206A_202D_200E_202D_202E_200D_200E_202E(); int windowOpenCount = _windowOpenCount; int num = 1; int num2 = windowOpenCount; int num3 = num2 ^ num; int num4 = num2 & num; _windowOpenCount = num3 + (num4 + num4); _hasSetInitialState = false; _headerAnimationTime = 0f; _headerComponent.Reset(); } public override void OnClose() { _206A_202A_200F_206C_206F_206C_206B_202E_200B_206D_206D_206D_202D_200E_206D_200F_200C_202E_206F_206F_200E_202A_202E_200F_200D_202A_202D_200B_200C_206E_202C_202A_206F_206E_202D_200C_200E_206A_200B_200F_202E(); MarkAllAsRead(); } [MethodImpl(MethodImplOptions.NoInlining)] private void DrawChangelogEntries() { _headerAnimationTime += _202C_202E_202B_200D_202B_206C_200D_202C_200C_206A_202C_200E_202E_202D_200F_206F_200C_202D_206F_206D_200D_202C_206F_206B_206F_206A_206B_202C_202B_200F_206C_200C_206B_202A_206F_202C_200D_206E_200B_200C_202E().DeltaTime; float num = _202A_206F_206A_202D_206E_200C_202C_202B_202E_206A_206E_206E_206C_202E_200D_200C_202B_200C_200D_200F_202E_206A_206E_202B_200D_206F_202B_202B_202C_202B_206B_200F_200B_202D_206F_200E_202E_202A_206B_206F_202E() + _202D_202C_202D_200E_202D_202E_202E_200F_202E_206C_202E_200E_200D_200C_206F_200C_202C_200B_202E_206B_200D_206E_202B_200C_200B_206B_202B_206C_206C_200C_206B_206E_202D_200E_200D_206B_202A_202D_202E_202E().ItemSpacing.Y * 2f; using ImRaii.ChildDisposable childDisposable = _206E_206E_200F_200D_206D_206A_206C_202C_202B_200E_200E_206E_206C_206B_206C_202E_206A_206E_202B_200B_202B_200D_206A_206A_206B_206F_202C_206B_200B_206E_200F_202D_206F_206D_200E_200E_202E_206F_206E_206D_202E((ImU8String)global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(642885522), new Vector2(0f, 0f - num), false, ImGuiWindowFlags.NoScrollbar); int num2 = ((!(!childDisposable)) ? 409981810 : 409981809); List changelogs = default(List); ChangelogEntry changelogEntry = default(ChangelogEntry); while (true) { int num3 = num2; int num4 = 409981808; int num5 = num3; switch ((num5 | num4) - (num5 & num4)) { case 0: goto IL_00ae; case 1: return; case 2: { using ImRaii.ChildDisposable childDisposable2 = _206E_200B_200C_200E_200D_206B_202D_206D_200E_202C_206A_200C_206C_206A_206F_206A_202A_206C_200F_206B_206F_202D_206D_202E_200D_206A_200B_206C_206C_200D_200C_200F_202C_202B_202A_200F_202E_206C_206C_202D_202E((ImU8String)global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(404777559), Vector2.Zero, false); num2 = ((!(!childDisposable2)) ? 888384850 : 888384849); while (true) { int num6 = num2; num4 = 888384848; num5 = num6; int num7 = num5 + num4; int num8 = num5 & num4; switch (num7 - (num8 + num8)) { case 2: changelogs = ChangelogData.Changelogs; changelogEntry = changelogs.FirstOrDefault(); num2 = ((changelogs.Count != 0) ? 888384848 : 888384852); break; case 4: _200B_202A_206E_206E_206E_202D_200F_206A_206F_206E_206F_206B_200F_206A_206F_206A_200C_200D_202D_206E_200D_200B_200F_206C_200C_200B_206C_202E_206D_200C_206F_202A_206F_206E_206E_206A_206C_200D_202A_206B_202E(_206E_206B_206A_200F_206E_200F_206E_206E_206D_202E_206E_202A_206B_200D_202B_206D_202B_202C_200E_202D_200E_206E_206D_200C_206A_200F_200D_206F_200C_200B_202D_206C_202A_206C_206B_206D_202D_206A_200B_206A_202E() + 40f); UiThemeUtils.EmptyState(FontAwesomeIcon.FileAlt, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-823052972)); return; case 3: num2 = 888384849; break; case 1: return; case 0: { ChangelogEntryComponent changelogEntryComponent = new ChangelogEntryComponent(_configuration, _windowOpenCount, _headerAnimationTime); using (List.Enumerator enumerator = changelogs.GetEnumerator()) { num2 = -839072908; while (true) { int num9 = num2; num4 = -839072905; num5 = num9; switch ((num5 | num4) - (num5 & num4)) { case 2: num2 = -839072908; break; case 1: { ChangelogEntry current = enumerator.Current; changelogEntryComponent.Draw(current, current == changelogEntry, _hasSetInitialState); Vector2 vector = _206C_200B_200C_200E_200E_200F_202B_202B_200D_206D_206B_200C_200F_202B_202C_206C_206A_202D_200E_206E_202D_200B_202E_206F_202C_206D_206A_200F_200E_206D_206E_206D_202B_200E_206D_206E_200C_202D_206D_202C_202E(); float num10 = _200E_200D_202D_206F_202B_202B_202C_202B_202B_202C_200D_200E_200D_200C_206B_202C_202C_206D_200B_206D_200B_200C_202A_202A_200F_200D_206D_202B_202C_206A_202A_206C_202A_200B_202C_206C_200C_202A_202D_206C_202E().X * 0.5f; float num11 = (_200E_200D_202D_206F_202B_202B_202C_202B_202B_202C_200D_200E_200D_200C_206B_202C_202C_206D_200B_206D_200B_200C_202A_202A_200F_200D_206D_202B_202C_206A_202A_206C_202A_200B_202C_206C_200C_202A_202D_206C_202E().X - num10) * 0.5f; ImDrawListPtr imDrawListPtr = _206D_200E_206F_202B_202E_200F_200D_200D_206A_200D_202D_202A_200B_206A_200B_200E_206B_206B_200B_202C_202E_206C_200C_206C_206A_206A_202D_200D_206B_206E_202A_200E_202B_200F_206F_206E_206E_202E_202B_202C_202E(); Vector2 p = vector + new Vector2(num11, 0f); Vector2 p2 = vector + new Vector2(num11 + num10, 0f); Vector4 accentColor = UiThemeUtils.AccentColor; accentColor.W = 0.1f; imDrawListPtr.AddLine(p, p2, _200E_202D_206A_206A_206A_202D_202A_200C_202E_202E_202C_202C_206D_202C_206E_206C_202C_206D_206D_206E_202D_202D_206D_202A_202D_200D_200F_202E_200C_200F_202B_200D_202C_202D_206A_202B_202E_202A_202D_200D_202E(accentColor), 1f); _200B_202A_206E_206E_206E_202D_200F_206A_206F_206E_206F_206B_200F_206A_206F_206A_200C_200D_202D_206E_200D_200B_200F_206C_200C_200B_206C_202E_206D_200C_206F_202A_206F_206E_206E_206A_206C_200D_202A_206B_202E(_206E_206B_206A_200F_206E_200F_206E_206E_206D_202E_206E_202A_206B_200D_202B_206D_202B_202C_200E_202D_200E_206E_206D_200C_206A_200F_200D_206F_200C_200B_202D_206C_202A_206C_206B_206D_202D_206A_200B_206A_202E() + 4f); num2 = -839072908; break; } case 3: num2 = (enumerator.MoveNext() ? (-839072906) : (-839072905)); break; case 0: goto end_IL_01f0; } continue; end_IL_01f0: break; } } _hasSetInitialState = true; return; } } } } } continue; IL_00ae: num2 = 409981809; } } private void MarkAllAsRead() { string text = ChangelogData.Changelogs.FirstOrDefault()?.Version; int num = ((text == null) ? 746834927 : 746834924); while (true) { int num2 = num; int num3 = 746834926; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 1: return; case 2: _configuration.LastViewedChangelogVersion = text; _202E_202B_200E_202C_200E_202B_200E_202A_206A_202B_206E_206E_200F_206A_202B_200B_202B_206A_206A_202C_202D_202E_200D_202C_202C_200D_202E_206A_206B_202A_202C_206C_206B_200B_206F_206F_202B_200F_202B_206E_202E(_pluginInterface, (IPluginConfiguration)_configuration); num = 746834927; break; case 0: num = 746834924; break; } } } void _206C_200E_202B_202B_206A_206B_200F_206C_200E_206B_200B_206E_200D_200B_206C_200E_206E_202C_200F_200E_202E_206D_202B_202E_206C_200C_206F_202A_206A_200D_200C_202E_202B_202D_202B_202C_202C_200F_202A_202C_202E(Vector2? P_0) { base.Size = P_0; } void _206C_202E_200B_200E_200E_200B_206A_200D_206B_200E_200B_202B_202D_202A_200F_206D_202C_200C_200D_206C_202E_200E_202B_202C_206D_202C_202A_202E_200E_206C_202B_200D_200B_200F_200E_200D_202D_206D_202A_202B_202E(ImGuiCond P_0) { base.SizeCondition = P_0; } void _206C_206A_206C_202C_206F_200C_200F_202A_202A_200E_206B_200B_202E_202B_202C_202D_202D_200C_202D_202D_200F_206E_206E_200E_200C_202A_206A_206E_200E_202B_202E_202E_200E_202B_206A_202C_200F_206D_202B_206A_202E(WindowSizeConstraints? P_0) { base.SizeConstraints = P_0; } static ImDrawListPtr _206D_200E_206F_202B_202E_200F_200D_200D_206A_200D_202D_202A_200B_206A_200B_200E_206B_206B_200B_202C_202E_206C_200C_206C_206A_206A_202D_200D_206B_206E_202A_200E_202B_200F_206F_206E_206E_202E_202B_202C_202E() { return ImGui.GetWindowDrawList(); } static Vector2 _202B_200C_206F_200D_200D_206D_200C_202D_206B_202B_206B_206C_200C_200D_200F_200F_200D_202C_200C_206F_206B_202D_202B_202C_206C_200E_202E_206C_200F_206E_206E_206D_206B_206B_202B_200F_200C_206A_202D_200C_202E() { return ImGui.GetWindowPos(); } static Vector2 _206A_202C_202A_200D_206B_202E_206C_206C_206B_200B_206A_206C_206A_200C_206B_206A_206E_206B_200E_206A_202C_202B_202A_202C_206A_200E_202B_200C_202E_202C_206E_206C_200E_206D_206B_200D_206E_206A_202E_202A_202E() { return ImGui.GetWindowSize(); } static uint _200E_202D_206A_206A_206A_202D_202A_200C_202E_202E_202C_202C_206D_202C_206E_206C_202C_206D_206D_206E_202D_202D_206D_202A_202D_200D_200F_202E_200C_200F_202B_200D_202C_202D_206A_202B_202E_202A_202D_200D_202E(Vector4 P_0) { return ImGui.ColorConvertFloat4ToU32(P_0); } void _202E_202E_200F_206C_200E_206F_200B_206C_200C_202C_202B_206B_202D_202D_206E_206D_202B_206A_202B_206D_202A_200D_200D_206B_200F_200F_202B_202C_206E_200D_200F_206F_206E_206A_202D_200E_202D_202E_200D_200E_202E() { base.OnOpen(); } void _206A_202A_200F_206C_206F_206C_206B_202E_200B_206D_206D_206D_202D_200E_206D_200F_200C_202E_206F_206F_200E_202A_202E_200F_200D_202A_202D_200B_200C_206E_202C_202A_206F_206E_202D_200C_200E_206A_200B_200F_202E() { base.OnClose(); } static ImGuiIOPtr _202C_202E_202B_200D_202B_206C_200D_202C_200C_206A_202C_200E_202E_202D_200F_206F_200C_202D_206F_206D_200D_202C_206F_206B_206F_206A_206B_202C_202B_200F_206C_200C_206B_202A_206F_202C_200D_206E_200B_200C_202E() { return ImGui.GetIO(); } static float _202A_206F_206A_202D_206E_200C_202C_202B_202E_206A_206E_206E_206C_202E_200D_200C_202B_200C_200D_200F_202E_206A_206E_202B_200D_206F_202B_202B_202C_202B_206B_200F_200B_202D_206F_200E_202E_202A_206B_206F_202E() { return ImGui.GetFrameHeightWithSpacing(); } static ImGuiStylePtr _202D_202C_202D_200E_202D_202E_202E_200F_202E_206C_202E_200E_200D_200C_206F_200C_202C_200B_202E_206B_200D_206E_202B_200C_200B_206B_202B_206C_206C_200C_206B_206E_202D_200E_200D_206B_202A_202D_202E_202E() { return ImGui.GetStyle(); } static ImRaii.ChildDisposable _206E_206E_200F_200D_206D_206A_206C_202C_202B_200E_200E_206E_206C_206B_206C_202E_206A_206E_202B_200B_202B_200D_206A_206A_206B_206F_202C_206B_200B_206E_200F_202D_206F_206D_200E_200E_202E_206F_206E_206D_202E(ImU8String P_0, Vector2 P_1, bool P_2, ImGuiWindowFlags P_3) { return ImRaii.Child(P_0, P_1, P_2, P_3); } static ImRaii.ChildDisposable _206E_200B_200C_200E_200D_206B_202D_206D_200E_202C_206A_200C_206C_206A_206F_206A_202A_206C_200F_206B_206F_202D_206D_202E_200D_206A_200B_206C_206C_200D_200C_200F_202C_202B_202A_200F_202E_206C_206C_202D_202E(ImU8String P_0, Vector2 P_1, bool P_2) { return ImRaii.Child(P_0, P_1, P_2); } static float _206E_206B_206A_200F_206E_200F_206E_206E_206D_202E_206E_202A_206B_200D_202B_206D_202B_202C_200E_202D_200E_206E_206D_200C_206A_200F_200D_206F_200C_200B_202D_206C_202A_206C_206B_206D_202D_206A_200B_206A_202E() { return ImGui.GetCursorPosY(); } static void _200B_202A_206E_206E_206E_202D_200F_206A_206F_206E_206F_206B_200F_206A_206F_206A_200C_200D_202D_206E_200D_200B_200F_206C_200C_200B_206C_202E_206D_200C_206F_202A_206F_206E_206E_206A_206C_200D_202A_206B_202E(float P_0) { ImGui.SetCursorPosY(P_0); } static Vector2 _206C_200B_200C_200E_200E_200F_202B_202B_200D_206D_206B_200C_200F_202B_202C_206C_206A_202D_200E_206E_202D_200B_202E_206F_202C_206D_206A_200F_200E_206D_206E_206D_202B_200E_206D_206E_200C_202D_206D_202C_202E() { return ImGui.GetCursorScreenPos(); } static Vector2 _200E_200D_202D_206F_202B_202B_202C_202B_202B_202C_200D_200E_200D_200C_206B_202C_202C_206D_200B_206D_200B_200C_202A_202A_200F_200D_206D_202B_202C_206A_202A_206C_202A_200B_202C_206C_200C_202A_202D_206C_202E() { return ImGui.GetContentRegionAvail(); } static void _202E_202B_200E_202C_200E_202B_200E_202A_206A_202B_206E_206E_200F_206A_202B_200B_202B_206A_206A_202C_202D_202E_200D_202C_202C_200D_202E_206A_206B_202A_202C_206C_206B_200B_206F_206F_202B_200F_202B_206E_202E(IDalamudPluginInterface P_0, IPluginConfiguration P_1) { P_0.SavePluginConfig(P_1); } }