using FFXIVClientStructs.FFXIV.Component.GUI; namespace LLib.GameUI; public static class AddonCallback { public unsafe static void Fire(AtkUnitBase* addon, params int[] args) { int num = ((addon != null) ? 1413141629 : 1413141631); int num5 = default(int); AtkValue* ptr = default(AtkValue*); while (true) { int num2 = num; int num3 = 1413141624; int num4 = num2; int num9; switch ((num4 | num3) - (num4 & num3)) { case 3: num = 1413141631; break; case 2: num = ((num5 < args.Length) ? 1413141625 : 1413141630); break; case 4: num9 = args.Length; goto IL_0099; case 7: return; case 0: num9 = 1; goto IL_0099; case 5: num = ((args.Length == 0) ? 1413141624 : 1413141628); break; case 1: { ptr[num5].Type = AtkValueType.Int; ptr[num5].Int = args[num5]; int num6 = num5; num3 = 1; num4 = num6; int num7 = num4 ^ num3; int num8 = num4 & num3; num5 = num7 + (num8 + num8); num = 1413141626; break; } case 6: { addon->FireCallback((uint)args.Length, ptr); return; } IL_0099: ptr = stackalloc AtkValue[num9]; num5 = 0; num = 1413141626; break; } } } public unsafe static void FireWithUpdate(AtkUnitBase* addon, params int[] args) { int num = ((addon != null) ? 914584294 : 914584289); AtkValue* ptr = default(AtkValue*); int num8 = default(int); while (true) { int num2 = num; int num3 = 914584290; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; int num7; switch (num5 - (num6 + num6)) { case 4: num = ((args.Length == 0) ? 914584293 : 914584291); break; case 3: return; case 7: num7 = 1; goto IL_007b; case 5: num = 914584289; break; case 0: { ptr[num8].Type = AtkValueType.Int; ptr[num8].Int = args[num8]; int num9 = num8; num3 = 1; num4 = num9; int num10 = num4 ^ num3; int num11 = num4 & num3; num8 = num10 + (num11 + num11); num = 914584288; break; } case 2: num = ((num8 < args.Length) ? 914584290 : 914584292); break; case 1: num7 = args.Length; goto IL_007b; case 6: { addon->FireCallback((uint)args.Length, ptr, close: true); return; } IL_007b: ptr = stackalloc AtkValue[num7]; num8 = 0; num = 914584288; break; } } } public unsafe static void ClickYes(AtkUnitBase* addon) { int num = ((addon != null) ? (-2035549555) : (-2035549554)); while (true) { int num2 = num; int num3 = -2035549553; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: goto IL_0043; case 1: return; case 2: addon->FireCallbackInt(0); return; } continue; IL_0043: num = -2035549554; } } public unsafe static bool ClickButton(AtkUnitBase* addon, AtkComponentButton* button) { int num = ((addon == null) ? (-1621168599) : (-1621168597)); AtkComponentNode* ownerNode = default(AtkComponentNode*); AtkEvent* ptr = default(AtkEvent*); while (true) { int num2 = num; int num3 = -1621168595; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 7: ownerNode = button->AtkComponentBase.OwnerNode; num = ((ownerNode != null) ? (-1621168603) : (-1621168595)); break; case 1: addon->ReceiveEvent(ptr->State.EventType, (int)ptr->Param, ptr, null); return true; case 2: num = (button->IsEnabled ? (-1621168598) : (-1621168599)); break; case 5: return false; case 4: return false; case 8: ptr = ownerNode->AtkResNode.AtkEventManager.Event; num = ((ptr != null) ? (-1621168596) : (-1621168600)); break; case 3: num = -1621168597; break; case 0: return false; case 6: num = ((button == null) ? (-1621168599) : (-1621168593)); break; } } } }