muffin v7.5.6
This commit is contained in:
parent
6266f9e6b7
commit
addf2d530f
619 changed files with 264792 additions and 446022 deletions
17
LLib/LLib.ImGui/IEditablePolygonSet.cs
Normal file
17
LLib/LLib.ImGui/IEditablePolygonSet.cs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
|
||||
namespace LLib.ImGui;
|
||||
|
||||
public interface IEditablePolygonSet
|
||||
{
|
||||
int PolygonCount { get; }
|
||||
|
||||
IList<Vector2> GetVertices(int polygonIndex);
|
||||
|
||||
uint GetColor(int polygonIndex);
|
||||
|
||||
string GetLabel(int polygonIndex);
|
||||
|
||||
void AddPolygon(IList<Vector2> vertices);
|
||||
}
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using Dalamud.Bindings.ImGui;
|
||||
using Dalamud.Interface.Windowing;
|
||||
|
||||
|
|
@ -9,9 +10,7 @@ public abstract class LWindow : Window
|
|||
|
||||
private bool _wasCollapsedLastFrame;
|
||||
|
||||
protected bool ClickedHeaderLastFrame { get; private set; }
|
||||
|
||||
protected bool ClickedHeaderCurrentFrame { get; private set; }
|
||||
private bool _closeRequested;
|
||||
|
||||
protected bool UncollapseNextFrame { get; set; }
|
||||
|
||||
|
|
@ -19,15 +18,29 @@ public abstract class LWindow : Window
|
|||
{
|
||||
get
|
||||
{
|
||||
if (base.IsOpen)
|
||||
int num = ((!_202C_202D_206F_200C_202D_202E_200B_200E_206C_206A_200F_200F_202D_200D_200C_200B_200E_202C_200E_206C_200E_206D_202B_200D_202C_206E_200D_200E_202A_202C_202A_202B_200B_206C_206A_200D_200C_200F_202A_200F_202E()) ? 683185440 : 683185441);
|
||||
while (true)
|
||||
{
|
||||
return !_wasCollapsedLastFrame;
|
||||
int num2 = num;
|
||||
int num3 = 683185440;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
goto IL_0046;
|
||||
case 0:
|
||||
return false;
|
||||
case 1:
|
||||
return !_wasCollapsedLastFrame;
|
||||
}
|
||||
continue;
|
||||
IL_0046:
|
||||
num = 683185441;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
set
|
||||
{
|
||||
base.IsOpen = value;
|
||||
_200F_200D_206A_200C_200C_200F_206F_200F_206C_202A_200D_206F_206D_206F_206D_200D_202D_202B_202D_206B_202D_202A_202B_202A_206E_200C_206D_202E_202C_200F_206B_206F_202D_202E_202A_202D_202E_202E_202C_206F_202E(value);
|
||||
UncollapseNextFrame = value;
|
||||
}
|
||||
}
|
||||
|
|
@ -36,11 +49,35 @@ public abstract class LWindow : Window
|
|||
{
|
||||
get
|
||||
{
|
||||
return (int?)(100000f * base.BgAlpha);
|
||||
float? num = _202B_200B_200F_206E_202D_200E_200F_206B_202C_200F_206F_206E_206A_206B_200F_206C_202D_202E_200C_206B_200B_206C_202D_206C_206F_200B_206B_202E_206A_200D_206A_206D_206C_206C_202A_206A_202C_206C_206F_202E();
|
||||
int num2 = ((!num.HasValue) ? (-473648869) : (-473648872));
|
||||
float valueOrDefault = default(float);
|
||||
while (true)
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = -473648870;
|
||||
int num5 = num3;
|
||||
int num6 = num5 + num4;
|
||||
int num7 = num5 & num4;
|
||||
switch (num6 - (num7 + num7))
|
||||
{
|
||||
case 0:
|
||||
num2 = -473648872;
|
||||
break;
|
||||
case 3:
|
||||
return (int)_202B_202B_200E_200C_200F_200B_200D_200D_200D_206D_200B_206B_202A_202B_200C_206C_206E_206D_206A_202C_206A_202D_206D_206E_206D_200E_202A_206C_200B_200D_206F_206F_200E_200C_206B_200E_200C_206F_206D_200D_202E(100000f * valueOrDefault);
|
||||
case 2:
|
||||
valueOrDefault = num.GetValueOrDefault();
|
||||
num2 = -473648871;
|
||||
break;
|
||||
case 1:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
base.BgAlpha = (float?)value / 100000f;
|
||||
_200F_202B_206C_202C_206F_200C_200B_202D_200C_206E_202C_206D_202A_206D_202C_206A_202B_202B_202C_206E_200C_206D_206E_200D_202C_200B_200D_202C_200C_200C_206B_200E_200B_200D_200C_200C_206F_200E_202C_206D_202E((float?)value / 100000f);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -51,54 +88,123 @@ public abstract class LWindow : Window
|
|||
|
||||
private void LoadWindowConfig()
|
||||
{
|
||||
if (!(this is IPersistableWindowConfig persistableWindowConfig))
|
||||
IPersistableWindowConfig persistableWindowConfig = this as IPersistableWindowConfig;
|
||||
int num = ((persistableWindowConfig == null) ? (-1866426683) : (-1866426684));
|
||||
WindowConfig windowConfig = default(WindowConfig);
|
||||
while (true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
WindowConfig windowConfig = persistableWindowConfig.WindowConfig;
|
||||
if (windowConfig != null)
|
||||
{
|
||||
if (base.AllowPinning)
|
||||
int num2 = num;
|
||||
int num3 = -1866426683;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
base.IsPinned = windowConfig.IsPinned;
|
||||
case 5:
|
||||
Alpha = windowConfig.Alpha;
|
||||
num = -1866426685;
|
||||
break;
|
||||
case 4:
|
||||
_202A_202A_206B_206A_202A_200B_200B_206D_206E_206A_200C_202D_206E_202B_202B_206C_202D_206A_202B_200E_202C_202D_206E_202E_200F_202B_206D_206B_206A_202A_206B_200E_206C_200E_200D_206A_206B_200B_202E_206E_202E(windowConfig.IsPinned);
|
||||
num = -1866426686;
|
||||
break;
|
||||
case 8:
|
||||
num = ((!_206F_202C_200E_206A_202C_202E_200D_202E_202E_200F_206C_200C_200C_202C_202B_200F_200E_200C_206E_200E_200D_206F_206C_202A_206C_206B_206E_202E_202B_206B_200F_202A_202E_202B_200D_206A_206E_200C_202C_202C_202E()) ? (-1866426686) : (-1866426687));
|
||||
break;
|
||||
case 6:
|
||||
_initializedConfig = true;
|
||||
num = -1866426683;
|
||||
break;
|
||||
case 0:
|
||||
return;
|
||||
case 7:
|
||||
num = ((!_202A_206A_200E_200F_202C_206F_206E_206A_206E_200C_200E_202E_202C_202B_206D_206A_206F_200B_200D_202B_206A_202C_200E_206C_206F_206D_206D_200B_206F_202D_200F_206E_206E_206D_206A_200E_202C_206C_202B_206A_202E()) ? (-1866426688) : (-1866426682));
|
||||
break;
|
||||
case 3:
|
||||
_200D_200B_202D_200D_200D_206F_200B_202E_200E_202A_206D_202B_206D_202B_206F_200D_200E_206C_200D_206A_206E_200B_206A_200E_200F_200C_202B_206E_206A_200C_202B_206E_206F_206A_200B_202C_202B_202C_206B_206F_202E(windowConfig.IsClickthrough);
|
||||
num = -1866426688;
|
||||
break;
|
||||
case 1:
|
||||
windowConfig = persistableWindowConfig.WindowConfig;
|
||||
num = ((windowConfig == null) ? (-1866426685) : (-1866426675));
|
||||
break;
|
||||
case 2:
|
||||
num = -1866426684;
|
||||
break;
|
||||
}
|
||||
if (base.AllowClickthrough)
|
||||
{
|
||||
base.IsClickthrough = windowConfig.IsClickthrough;
|
||||
}
|
||||
Alpha = windowConfig.Alpha;
|
||||
}
|
||||
_initializedConfig = true;
|
||||
}
|
||||
|
||||
private void UpdateWindowConfig()
|
||||
{
|
||||
if (!(this is IPersistableWindowConfig persistableWindowConfig) || Dalamud.Bindings.ImGui.ImGui.IsAnyMouseDown())
|
||||
IPersistableWindowConfig persistableWindowConfig = this as IPersistableWindowConfig;
|
||||
int num = ((persistableWindowConfig == null) ? (-692903602) : (-692903601));
|
||||
WindowConfig windowConfig = default(WindowConfig);
|
||||
bool flag = default(bool);
|
||||
while (true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
WindowConfig windowConfig = persistableWindowConfig.WindowConfig;
|
||||
if (windowConfig != null)
|
||||
{
|
||||
bool flag = false;
|
||||
if (base.AllowPinning && windowConfig.IsPinned != base.IsPinned)
|
||||
int num2 = num;
|
||||
int num3 = -692903608;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
windowConfig.IsPinned = base.IsPinned;
|
||||
case 0:
|
||||
num = -692903601;
|
||||
break;
|
||||
case 6:
|
||||
return;
|
||||
case 1:
|
||||
windowConfig.IsPinned = _200C_202C_202B_206A_206E_202C_200C_202A_206A_206B_202D_202C_200F_200F_206C_206C_206D_206E_202D_206A_206B_200D_202C_206C_200E_206E_200F_200F_202E_206B_206C_200E_206B_202E_202A_200C_202A_206B_206F_206B_202E();
|
||||
flag = true;
|
||||
}
|
||||
if (base.AllowClickthrough && windowConfig.IsClickthrough != base.IsClickthrough)
|
||||
{
|
||||
windowConfig.IsClickthrough = base.IsClickthrough;
|
||||
num = -692903603;
|
||||
break;
|
||||
case 3:
|
||||
num = ((windowConfig.IsClickthrough == _200C_206A_200D_200B_202B_202B_206A_202B_206A_206A_202D_202B_202E_206E_202E_200B_206B_202E_200F_202D_202C_200F_202D_200F_202C_200F_202C_206A_206E_202C_202D_200C_202C_200C_206D_206E_206B_200F_200C_206B_202E()) ? (-692903606) : (-692903604));
|
||||
break;
|
||||
case 4:
|
||||
windowConfig.IsClickthrough = _200C_206A_200D_200B_202B_202B_206A_202B_206A_206A_202D_202B_202E_206E_202E_200B_206B_202E_200F_202D_202C_200F_202D_200F_202C_200F_202C_206A_206E_202C_202D_200C_202C_200C_206D_206E_206B_200F_200C_206B_202E();
|
||||
flag = true;
|
||||
}
|
||||
if (windowConfig.Alpha != Alpha)
|
||||
{
|
||||
num = -692903606;
|
||||
break;
|
||||
case 12:
|
||||
flag = false;
|
||||
num = ((!_206F_202C_200E_206A_202C_202E_200D_202E_202E_200F_206C_200C_200C_202C_202B_200F_200E_200C_206E_200E_200D_206F_206C_202A_206C_206B_206E_202E_202B_206B_200F_202A_202E_202B_200D_206A_206E_200C_202C_202C_202E()) ? (-692903603) : (-692903615));
|
||||
break;
|
||||
case 13:
|
||||
windowConfig.Alpha = Alpha;
|
||||
flag = true;
|
||||
}
|
||||
if (flag)
|
||||
num = -692903616;
|
||||
break;
|
||||
case 5:
|
||||
num = ((!_202A_206A_200E_200F_202C_206F_206E_206A_206E_200C_200E_202E_202C_202B_206D_206A_206F_200B_200D_202B_206A_202C_200E_206C_206F_206D_206D_200B_206F_202D_200F_206E_206E_206D_206A_200E_202C_206C_202B_206A_202E()) ? (-692903606) : (-692903605));
|
||||
break;
|
||||
case 10:
|
||||
windowConfig = persistableWindowConfig.WindowConfig;
|
||||
num = ((windowConfig == null) ? (-692903602) : (-692903612));
|
||||
break;
|
||||
case 7:
|
||||
num = (_206E_206F_206B_200D_200F_202D_202A_202D_206D_200F_200B_200F_200C_202E_200E_200E_202C_206E_206C_206F_206E_202E_202C_206B_200F_202C_206E_206A_206B_206D_206D_202A_200F_206A_206C_200E_206F_200B_200C_206A_202E() ? (-692903602) : (-692903614));
|
||||
break;
|
||||
case 8:
|
||||
num = ((!flag) ? (-692903602) : (-692903613));
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
int? alpha = windowConfig.Alpha;
|
||||
int? alpha2 = Alpha;
|
||||
bool num7 = alpha.GetValueOrDefault() == alpha2.GetValueOrDefault();
|
||||
num3 = ((alpha.HasValue == alpha2.HasValue) ? 1 : 0);
|
||||
num4 = (num7 ? 1 : 0);
|
||||
num = ((num4 + num3 - (num4 | num3) != 0) ? (-692903616) : (-692903611));
|
||||
break;
|
||||
}
|
||||
case 11:
|
||||
persistableWindowConfig.SaveWindowConfig();
|
||||
num = -692903602;
|
||||
break;
|
||||
case 9:
|
||||
num = ((windowConfig.IsPinned == _200C_202C_202B_206A_206E_202C_200C_202A_206A_206B_202D_202C_200F_200F_206C_206C_206D_206E_202D_206A_206B_200D_202C_206C_200E_206E_200F_200F_202E_206B_206C_200E_206B_202E_202A_200C_202A_206B_206F_206B_202E()) ? (-692903603) : (-692903607));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -108,10 +214,16 @@ public abstract class LWindow : Window
|
|||
IsOpenAndUncollapsed = !IsOpenAndUncollapsed;
|
||||
}
|
||||
|
||||
protected void RequestClose()
|
||||
{
|
||||
_closeRequested = true;
|
||||
}
|
||||
|
||||
public override void OnOpen()
|
||||
{
|
||||
_closeRequested = false;
|
||||
UncollapseNextFrame = true;
|
||||
base.OnOpen();
|
||||
_202B_206D_200D_206C_206F_202B_202C_200F_206E_206F_206B_200D_200E_202E_202A_200E_202C_202E_206A_202C_206F_206B_206B_206C_206F_202D_200E_200D_206A_202E_200B_200F_206E_202B_202A_202C_206D_206B_200C_206E_202E();
|
||||
}
|
||||
|
||||
public override void Update()
|
||||
|
|
@ -121,18 +233,42 @@ public abstract class LWindow : Window
|
|||
|
||||
public override void PreDraw()
|
||||
{
|
||||
if (!_initializedConfig)
|
||||
int num = ((!_closeRequested) ? (-306664405) : (-306664404));
|
||||
while (true)
|
||||
{
|
||||
LoadWindowConfig();
|
||||
int num2 = num;
|
||||
int num3 = -306664406;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 1:
|
||||
num = (_initializedConfig ? (-306664408) : (-306664402));
|
||||
break;
|
||||
case 6:
|
||||
_closeRequested = false;
|
||||
_200F_200D_206A_200C_200C_200F_206F_200F_206C_202A_200D_206F_206D_206F_206D_200D_202D_202B_202D_206B_202D_202A_202B_202A_206E_200C_206D_202E_202C_200F_206B_206F_202D_202E_202A_202D_202E_202E_202C_206F_202E(false);
|
||||
num = -306664405;
|
||||
break;
|
||||
case 4:
|
||||
LoadWindowConfig();
|
||||
num = -306664408;
|
||||
break;
|
||||
case 0:
|
||||
_202E_206B_206E_206C_202C_202A_200D_202C_206E_200E_206C_206F_202B_202D_206A_206B_200F_206C_200D_206E_206A_206C_200C_200B_200B_202A_200D_200C_202A_206A_206D_206C_202A_202C_200B_200D_202E_200D_200E_202B_202E(false);
|
||||
UncollapseNextFrame = false;
|
||||
num = -306664407;
|
||||
break;
|
||||
case 5:
|
||||
num = -306664404;
|
||||
break;
|
||||
case 3:
|
||||
_200E_200F_200F_202A_206E_202D_200D_206C_206A_200D_202E_200C_200F_202D_200B_202E_200E_200D_202A_206C_206F_202E_202E_200F_200D_206E_206A_202A_206A_206B_206E_202D_202C_200F_206E_206C_206E_200C_206A_200C_202E();
|
||||
return;
|
||||
case 2:
|
||||
num = ((!UncollapseNextFrame) ? (-306664407) : (-306664406));
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (UncollapseNextFrame)
|
||||
{
|
||||
Dalamud.Bindings.ImGui.ImGui.SetNextWindowCollapsed(collapsed: false);
|
||||
UncollapseNextFrame = false;
|
||||
}
|
||||
base.PreDraw();
|
||||
ClickedHeaderLastFrame = ClickedHeaderCurrentFrame;
|
||||
ClickedHeaderCurrentFrame = false;
|
||||
}
|
||||
|
||||
public sealed override void Draw()
|
||||
|
|
@ -145,10 +281,105 @@ public abstract class LWindow : Window
|
|||
|
||||
public override void PostDraw()
|
||||
{
|
||||
base.PostDraw();
|
||||
if (_initializedConfig)
|
||||
_200B_202E_202E_206B_202B_202A_206B_200B_202D_206E_202D_200F_202B_200C_200C_200B_206A_206E_206C_206B_206E_202D_202D_206E_200C_206B_202B_206F_202E_202B_206A_206B_206D_202E_202B_206E_200B_206A_200E_200C_202E();
|
||||
int num = ((!_initializedConfig) ? (-1105315844) : (-1105315843));
|
||||
while (true)
|
||||
{
|
||||
UpdateWindowConfig();
|
||||
int num2 = num;
|
||||
int num3 = -1105315844;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = -1105315843;
|
||||
break;
|
||||
case 0:
|
||||
return;
|
||||
case 1:
|
||||
UpdateWindowConfig();
|
||||
num = -1105315844;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool _202C_202D_206F_200C_202D_202E_200B_200E_206C_206A_200F_200F_202D_200D_200C_200B_200E_202C_200E_206C_200E_206D_202B_200D_202C_206E_200D_200E_202A_202C_202A_202B_200B_206C_206A_200D_200C_200F_202A_200F_202E()
|
||||
{
|
||||
return base.IsOpen;
|
||||
}
|
||||
|
||||
void _200F_200D_206A_200C_200C_200F_206F_200F_206C_202A_200D_206F_206D_206F_206D_200D_202D_202B_202D_206B_202D_202A_202B_202A_206E_200C_206D_202E_202C_200F_206B_206F_202D_202E_202A_202D_202E_202E_202C_206F_202E(bool P_0)
|
||||
{
|
||||
base.IsOpen = P_0;
|
||||
}
|
||||
|
||||
float? _202B_200B_200F_206E_202D_200E_200F_206B_202C_200F_206F_206E_206A_206B_200F_206C_202D_202E_200C_206B_200B_206C_202D_206C_206F_200B_206B_202E_206A_200D_206A_206D_206C_206C_202A_206A_202C_206C_206F_202E()
|
||||
{
|
||||
return base.BgAlpha;
|
||||
}
|
||||
|
||||
static float _202B_202B_200E_200C_200F_200B_200D_200D_200D_206D_200B_206B_202A_202B_200C_206C_206E_206D_206A_202C_206A_202D_206D_206E_206D_200E_202A_206C_200B_200D_206F_206F_200E_200C_206B_200E_200C_206F_206D_200D_202E(float P_0)
|
||||
{
|
||||
return MathF.Round(P_0);
|
||||
}
|
||||
|
||||
void _200F_202B_206C_202C_206F_200C_200B_202D_200C_206E_202C_206D_202A_206D_202C_206A_202B_202B_202C_206E_200C_206D_206E_200D_202C_200B_200D_202C_200C_200C_206B_200E_200B_200D_200C_200C_206F_200E_202C_206D_202E(float? P_0)
|
||||
{
|
||||
base.BgAlpha = P_0;
|
||||
}
|
||||
|
||||
bool _206F_202C_200E_206A_202C_202E_200D_202E_202E_200F_206C_200C_200C_202C_202B_200F_200E_200C_206E_200E_200D_206F_206C_202A_206C_206B_206E_202E_202B_206B_200F_202A_202E_202B_200D_206A_206E_200C_202C_202C_202E()
|
||||
{
|
||||
return base.AllowPinning;
|
||||
}
|
||||
|
||||
void _202A_202A_206B_206A_202A_200B_200B_206D_206E_206A_200C_202D_206E_202B_202B_206C_202D_206A_202B_200E_202C_202D_206E_202E_200F_202B_206D_206B_206A_202A_206B_200E_206C_200E_200D_206A_206B_200B_202E_206E_202E(bool P_0)
|
||||
{
|
||||
base.IsPinned = P_0;
|
||||
}
|
||||
|
||||
bool _202A_206A_200E_200F_202C_206F_206E_206A_206E_200C_200E_202E_202C_202B_206D_206A_206F_200B_200D_202B_206A_202C_200E_206C_206F_206D_206D_200B_206F_202D_200F_206E_206E_206D_206A_200E_202C_206C_202B_206A_202E()
|
||||
{
|
||||
return base.AllowClickthrough;
|
||||
}
|
||||
|
||||
void _200D_200B_202D_200D_200D_206F_200B_202E_200E_202A_206D_202B_206D_202B_206F_200D_200E_206C_200D_206A_206E_200B_206A_200E_200F_200C_202B_206E_206A_200C_202B_206E_206F_206A_200B_202C_202B_202C_206B_206F_202E(bool P_0)
|
||||
{
|
||||
base.IsClickthrough = P_0;
|
||||
}
|
||||
|
||||
static bool _206E_206F_206B_200D_200F_202D_202A_202D_206D_200F_200B_200F_200C_202E_200E_200E_202C_206E_206C_206F_206E_202E_202C_206B_200F_202C_206E_206A_206B_206D_206D_202A_200F_206A_206C_200E_206F_200B_200C_206A_202E()
|
||||
{
|
||||
return Dalamud.Bindings.ImGui.ImGui.IsAnyMouseDown();
|
||||
}
|
||||
|
||||
bool _200C_202C_202B_206A_206E_202C_200C_202A_206A_206B_202D_202C_200F_200F_206C_206C_206D_206E_202D_206A_206B_200D_202C_206C_200E_206E_200F_200F_202E_206B_206C_200E_206B_202E_202A_200C_202A_206B_206F_206B_202E()
|
||||
{
|
||||
return base.IsPinned;
|
||||
}
|
||||
|
||||
bool _200C_206A_200D_200B_202B_202B_206A_202B_206A_206A_202D_202B_202E_206E_202E_200B_206B_202E_200F_202D_202C_200F_202D_200F_202C_200F_202C_206A_206E_202C_202D_200C_202C_200C_206D_206E_206B_200F_200C_206B_202E()
|
||||
{
|
||||
return base.IsClickthrough;
|
||||
}
|
||||
|
||||
void _202B_206D_200D_206C_206F_202B_202C_200F_206E_206F_206B_200D_200E_202E_202A_200E_202C_202E_206A_202C_206F_206B_206B_206C_206F_202D_200E_200D_206A_202E_200B_200F_206E_202B_202A_202C_206D_206B_200C_206E_202E()
|
||||
{
|
||||
base.OnOpen();
|
||||
}
|
||||
|
||||
static void _202E_206B_206E_206C_202C_202A_200D_202C_206E_200E_206C_206F_202B_202D_206A_206B_200F_206C_200D_206E_206A_206C_200C_200B_200B_202A_200D_200C_202A_206A_206D_206C_202A_202C_200B_200D_202E_200D_200E_202B_202E(bool P_0)
|
||||
{
|
||||
Dalamud.Bindings.ImGui.ImGui.SetNextWindowCollapsed(P_0);
|
||||
}
|
||||
|
||||
void _200E_200F_200F_202A_206E_202D_200D_206C_206A_200D_202E_200C_200F_202D_200B_202E_200E_200D_202A_206C_206F_202E_202E_200F_200D_206E_206A_202A_206A_206B_206E_202D_202C_200F_206E_206C_206E_200C_206A_200C_202E()
|
||||
{
|
||||
base.PreDraw();
|
||||
}
|
||||
|
||||
void _200B_202E_202E_206B_202B_202A_206B_200B_202D_206E_202D_200F_202B_200C_200C_200B_206A_206E_206C_206B_206E_202D_202D_206E_200C_206B_202B_206F_202E_202B_206A_206B_206D_202E_202B_206E_200B_206A_200E_200C_202E()
|
||||
{
|
||||
base.PostDraw();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
1647
LLib/LLib.ImGui/MapPolygonEditor.cs
Normal file
1647
LLib/LLib.ImGui/MapPolygonEditor.cs
Normal file
File diff suppressed because it is too large
Load diff
363
LLib/LLib.ImGui/MapTextureService.cs
Normal file
363
LLib/LLib.ImGui/MapTextureService.cs
Normal file
|
|
@ -0,0 +1,363 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Interface.Textures;
|
||||
using Dalamud.Interface.Textures.TextureWraps;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Lumina.Excel.Sheets;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace LLib.ImGui;
|
||||
|
||||
public sealed class MapTextureService
|
||||
{
|
||||
private readonly ITextureProvider _textureProvider;
|
||||
|
||||
private readonly IDataManager _dataManager;
|
||||
|
||||
private readonly ILogger<MapTextureService> _logger;
|
||||
|
||||
private uint _loadedTerritoryType;
|
||||
|
||||
private ISharedImmediateTexture? _resolvedTexture;
|
||||
|
||||
private List<ISharedImmediateTexture>? _candidateTextures;
|
||||
|
||||
private bool _failed;
|
||||
|
||||
private long _retryAtMs;
|
||||
|
||||
private int _searchFrames;
|
||||
|
||||
private const int SearchTimeout = 120;
|
||||
|
||||
private const long RetryDelayMs = 30000L;
|
||||
|
||||
private ushort _sizeFactor;
|
||||
|
||||
private short _offsetX;
|
||||
|
||||
private short _offsetY;
|
||||
|
||||
public bool IsLoaded => _resolvedTexture != null;
|
||||
|
||||
public bool IsSearching => _candidateTextures != null;
|
||||
|
||||
public ushort SizeFactor => _sizeFactor;
|
||||
|
||||
public MapTextureService(ITextureProvider textureProvider, IDataManager dataManager, ILogger<MapTextureService> logger)
|
||||
{
|
||||
_textureProvider = textureProvider;
|
||||
_dataManager = dataManager;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool LoadForTerritory(uint territoryType)
|
||||
{
|
||||
int num = ((territoryType != _loadedTerritoryType) ? (-703602804) : (-703602806));
|
||||
List<string> list2 = default(List<string>);
|
||||
string value = default(string);
|
||||
Map? map = default(Map?);
|
||||
string[] array = default(string[]);
|
||||
string text = default(string);
|
||||
TerritoryType? rowOrDefault = default(TerritoryType?);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -703602814;
|
||||
int num4 = num2;
|
||||
Map? obj;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
default:
|
||||
continue;
|
||||
case 0:
|
||||
return false;
|
||||
case 3:
|
||||
num = ((_200E_206C_202D_200C_200F_206A_202A_200E_200E_202C_202D_202D_202B_206B_206F_206F_200F_206D_206A_206E_202C_206E_200F_200F_206B_202A_206A_202A_200F_206A_206F_206A_200E_200D_206E_206D_206B_206B_200D_206E_202E() >= _retryAtMs) ? (-703602796) : (-703602814));
|
||||
continue;
|
||||
case 16:
|
||||
num = ((_candidateTextures == null) ? (-703602797) : (-703602813));
|
||||
continue;
|
||||
case 21:
|
||||
_failed = true;
|
||||
return false;
|
||||
case 1:
|
||||
PollCandidates();
|
||||
return _resolvedTexture != null;
|
||||
case 7:
|
||||
num = ((!_failed) ? (-703602799) : (-703602816));
|
||||
continue;
|
||||
case 15:
|
||||
{
|
||||
List<string> list = list2;
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 2);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(674220722));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(value);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-27764842));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(value);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(582629916));
|
||||
list.Add(defaultInterpolatedStringHandler.ToStringAndClear());
|
||||
num = -703602795;
|
||||
continue;
|
||||
}
|
||||
case 23:
|
||||
_206F_200B_200E_206D_200C_200B_206B_206C_202A_206C_206C_206C_206D_202E_206E_206F_206A_200C_200D_200C_202D_202D_200E_206D_202E_202D_200D_202C_206C_200B_200E_202B_200F_202E_202E_206A_202D_206C_206A_206C_202E((ILogger)_logger, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1609496745), new object[2]
|
||||
{
|
||||
territoryType,
|
||||
_200C_200F_206E_202C_206F_206E_206F_206F_200E_206B_202E_200B_206C_200F_200B_206A_200C_200E_202C_202A_202A_200B_202D_202C_202D_206B_202E_206A_200D_200E_202D_206E_202B_202C_200C_200C_202B_206C_206B_202E_202E(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1645706687), (IEnumerable<string>)list2)
|
||||
});
|
||||
_candidateTextures = list2.Select((string p) => _202E_206B_206B_200F_206B_206E_202B_202D_200C_200F_202C_202E_200B_206B_200B_202B_202B_200D_202B_202A_202C_202C_206F_206C_206D_200E_202A_200C_200E_200E_202C_202B_206B_200C_202D_202B_200B_202E_200D_206B_202E(_textureProvider, p)).ToList();
|
||||
PollCandidates();
|
||||
return _resolvedTexture != null;
|
||||
case 14:
|
||||
num = ((territoryType != _loadedTerritoryType) ? (-703602799) : (-703602811));
|
||||
continue;
|
||||
case 17:
|
||||
num = ((territoryType != _loadedTerritoryType) ? (-703602796) : (-703602815));
|
||||
continue;
|
||||
case 20:
|
||||
num = ((map.Value.RowId != 0) ? (-703602808) : (-703602809));
|
||||
continue;
|
||||
case 19:
|
||||
num = ((territoryType != _loadedTerritoryType) ? (-703602797) : (-703602798));
|
||||
continue;
|
||||
case 13:
|
||||
return true;
|
||||
case 9:
|
||||
obj = null;
|
||||
break;
|
||||
case 4:
|
||||
num = -703602806;
|
||||
continue;
|
||||
case 2:
|
||||
return false;
|
||||
case 18:
|
||||
array = _202B_200D_202E_202E_200B_206D_206C_206E_200C_200B_200E_202E_202B_200F_202C_200F_202E_206B_200E_206B_200C_202E_206D_206C_206F_206C_202D_200F_200B_200F_202D_206B_202A_206E_206D_206B_206A_202B_202A_200D_202E(text, '/', StringSplitOptions.None);
|
||||
num = ((array.Length == 2) ? (-703602807) : (-703602793));
|
||||
continue;
|
||||
case 5:
|
||||
_failed = true;
|
||||
return false;
|
||||
case 11:
|
||||
{
|
||||
value = array[0];
|
||||
string text2 = array[1];
|
||||
List<string> list3 = new List<string>();
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(14, 3);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1333505234));
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(text);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-102430846));
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(value);
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(text2);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-25096421));
|
||||
list3.Add(defaultInterpolatedStringHandler2.ToStringAndClear());
|
||||
list2 = list3;
|
||||
num = ((!_206A_200E_206B_206F_206B_200E_202B_206E_202E_200C_206F_206A_202E_200F_206B_206E_206A_200B_200D_202D_200B_202B_206A_200C_202E_206C_206D_206D_206D_206C_200F_202B_200D_200D_202C_206F_206B_206A_206A_206D_202E(text2, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(-1596345032))) ? (-703602795) : (-703602803));
|
||||
continue;
|
||||
}
|
||||
case 6:
|
||||
_failed = true;
|
||||
return false;
|
||||
case 8:
|
||||
num = ((_resolvedTexture == null) ? (-703602804) : (-703602801));
|
||||
continue;
|
||||
case 22:
|
||||
_resolvedTexture = null;
|
||||
_candidateTextures = null;
|
||||
_failed = false;
|
||||
_retryAtMs = 0L;
|
||||
_loadedTerritoryType = territoryType;
|
||||
_searchFrames = 0;
|
||||
rowOrDefault = _dataManager.GetExcelSheet<TerritoryType>().GetRowOrDefault(territoryType);
|
||||
num = (rowOrDefault.HasValue ? (-703602802) : (-703602805));
|
||||
continue;
|
||||
case 10:
|
||||
_sizeFactor = map.Value.SizeFactor;
|
||||
_offsetX = map.Value.OffsetX;
|
||||
_offsetY = map.Value.OffsetY;
|
||||
text = map.Value.Id.ExtractText();
|
||||
num = ((!_206C_200D_202E_202D_202C_202E_200C_202D_202C_202A_200F_206D_200B_206B_200B_206B_202A_206A_200D_206F_206C_200B_206A_200E_206C_206E_200B_202E_200C_200E_206E_206F_206F_202A_206C_200D_200B_200B_206C_206B_202E(text)) ? (-703602800) : (-703602812));
|
||||
continue;
|
||||
case 12:
|
||||
obj = rowOrDefault.GetValueOrDefault().Map.ValueNullable;
|
||||
break;
|
||||
}
|
||||
map = obj;
|
||||
num = ((!map.HasValue) ? (-703602809) : (-703602794));
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void PollCandidates()
|
||||
{
|
||||
int num = ((_candidateTextures != null) ? 1719406812 : 1719406813);
|
||||
ISharedImmediateTexture current = default(ISharedImmediateTexture);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1719406812;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
goto IL_004b;
|
||||
case 1:
|
||||
return;
|
||||
case 0:
|
||||
{
|
||||
using (List<ISharedImmediateTexture>.Enumerator enumerator = _candidateTextures.GetEnumerator())
|
||||
{
|
||||
num = -2142994811;
|
||||
while (true)
|
||||
{
|
||||
int num7 = num;
|
||||
num3 = -2142994811;
|
||||
num4 = num7;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = (enumerator.MoveNext() ? (-2142994815) : (-2142994809));
|
||||
break;
|
||||
case 4:
|
||||
current = enumerator.Current;
|
||||
num = ((_202E_200B_200C_200B_206D_200E_200B_206F_200D_206E_202C_206D_200C_206C_200D_202D_206E_200E_206F_200C_206B_200F_200B_206A_206E_200F_202D_200D_200D_202E_202E_200C_200B_206A_206B_202E_206D_202E_202A_202D_202E(current, (IDalamudTextureWrap)null) == null) ? (-2142994811) : (-2142994812));
|
||||
break;
|
||||
case 3:
|
||||
num = -2142994811;
|
||||
break;
|
||||
case 1:
|
||||
_resolvedTexture = current;
|
||||
_candidateTextures = null;
|
||||
return;
|
||||
case 2:
|
||||
goto end_IL_006e;
|
||||
}
|
||||
continue;
|
||||
end_IL_006e:
|
||||
break;
|
||||
}
|
||||
}
|
||||
int searchFrames = _searchFrames;
|
||||
num3 = 1;
|
||||
num4 = searchFrames;
|
||||
int num8 = num4 ^ num3;
|
||||
int num9 = num4 & num3;
|
||||
_searchFrames = num8 + (num9 + num9);
|
||||
num = ((_searchFrames < 120) ? 613954225 : 613954226);
|
||||
while (true)
|
||||
{
|
||||
int num10 = num;
|
||||
num3 = 613954224;
|
||||
num4 = num10;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = 613954226;
|
||||
break;
|
||||
case 2:
|
||||
_206D_206F_202C_200D_202B_202E_200C_200B_206C_206A_206D_202B_206B_202B_206B_202C_202A_206B_202C_200E_206E_200F_200F_206D_202A_206B_206F_206B_200D_200F_200D_206D_200C_206B_200D_202B_200D_206A_206D_200C_202E((ILogger)_logger, global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E<string>(1519773533), new object[2] { _loadedTerritoryType, 30L });
|
||||
_candidateTextures = null;
|
||||
_retryAtMs = _200E_206C_202D_200C_200F_206A_202A_200E_200E_202C_202D_202D_202B_206B_206F_206F_200F_206D_206A_206E_202C_206E_200F_200F_206B_202A_206A_202A_200F_206A_206F_206A_200E_200D_206E_206D_206B_206B_200D_206E_202E() + 30000;
|
||||
num = 613954225;
|
||||
break;
|
||||
case 1:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_004b:
|
||||
num = 1719406813;
|
||||
}
|
||||
}
|
||||
|
||||
public IDalamudTextureWrap? GetTextureWrap()
|
||||
{
|
||||
ISharedImmediateTexture? resolvedTexture = _resolvedTexture;
|
||||
if (resolvedTexture == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _202E_200B_200C_200B_206D_200E_200B_206F_200D_206E_202C_206D_200C_206C_200D_202D_206E_200E_206F_200C_206B_200F_200B_206A_206E_200F_202D_200D_200D_202E_202E_200C_200B_206A_206B_202E_206D_202E_202A_202D_202E(resolvedTexture, (IDalamudTextureWrap)null);
|
||||
}
|
||||
|
||||
public Vector2 WorldToUV(float worldX, float worldZ)
|
||||
{
|
||||
float num = (float)(int)_sizeFactor / 100f;
|
||||
float x = (worldX * num + (float)_offsetX * num + 1024f) / 2048f;
|
||||
float y = (worldZ * num + (float)_offsetY * num + 1024f) / 2048f;
|
||||
return new Vector2(x, y);
|
||||
}
|
||||
|
||||
public Vector2 UVToWorld(float u, float v)
|
||||
{
|
||||
float num = (float)(int)_sizeFactor / 100f;
|
||||
float x = (u * 2048f - 1024f - (float)_offsetX * num) / num;
|
||||
float y = (v * 2048f - 1024f - (float)_offsetY * num) / num;
|
||||
return new Vector2(x, y);
|
||||
}
|
||||
|
||||
public Vector2 WorldToScreen(float worldX, float worldZ, Vector2 imagePos, Vector2 imageSize)
|
||||
{
|
||||
Vector2 vector = WorldToUV(worldX, worldZ);
|
||||
return imagePos + vector * imageSize;
|
||||
}
|
||||
|
||||
public Vector2 ScreenToWorld(Vector2 screenPos, Vector2 imagePos, Vector2 imageSize)
|
||||
{
|
||||
Vector2 vector = (screenPos - imagePos) / imageSize;
|
||||
return UVToWorld(vector.X, vector.Y);
|
||||
}
|
||||
|
||||
static long _200E_206C_202D_200C_200F_206A_202A_200E_200E_202C_202D_202D_202B_206B_206F_206F_200F_206D_206A_206E_202C_206E_200F_200F_206B_202A_206A_202A_200F_206A_206F_206A_200E_200D_206E_206D_206B_206B_200D_206E_202E()
|
||||
{
|
||||
return Environment.TickCount64;
|
||||
}
|
||||
|
||||
static bool _206C_200D_202E_202D_202C_202E_200C_202D_202C_202A_200F_206D_200B_206B_200B_206B_202A_206A_200D_206F_206C_200B_206A_200E_206C_206E_200B_202E_200C_200E_206E_206F_206F_202A_206C_200D_200B_200B_206C_206B_202E(string P_0)
|
||||
{
|
||||
return string.IsNullOrEmpty(P_0);
|
||||
}
|
||||
|
||||
static string[] _202B_200D_202E_202E_200B_206D_206C_206E_200C_200B_200E_202E_202B_200F_202C_200F_202E_206B_200E_206B_200C_202E_206D_206C_206F_206C_202D_200F_200B_200F_202D_206B_202A_206E_206D_206B_206A_202B_202A_200D_202E(string P_0, char P_1, StringSplitOptions P_2)
|
||||
{
|
||||
return P_0.Split(P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _206A_200E_206B_206F_206B_200E_202B_206E_202E_200C_206F_206A_202E_200F_206B_206E_206A_200B_200D_202D_200B_202B_206A_200C_202E_206C_206D_206D_206D_206C_200F_202B_200D_200D_202C_206F_206B_206A_206A_206D_202E(string P_0, string P_1)
|
||||
{
|
||||
return P_0 != P_1;
|
||||
}
|
||||
|
||||
static string _200C_200F_206E_202C_206F_206E_206F_206F_200E_206B_202E_200B_206C_200F_200B_206A_200C_200E_202C_202A_202A_200B_202D_202C_202D_206B_202E_206A_200D_200E_202D_206E_202B_202C_200C_200C_202B_206C_206B_202E_202E(string P_0, IEnumerable<string> P_1)
|
||||
{
|
||||
return string.Join(P_0, P_1);
|
||||
}
|
||||
|
||||
static void _206F_200B_200E_206D_200C_200B_206B_206C_202A_206C_206C_206C_206D_202E_206E_206F_206A_200C_200D_200C_202D_202D_200E_206D_202E_202D_200D_202C_206C_200B_200E_202B_200F_202E_202E_206A_202D_206C_206A_206C_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static IDalamudTextureWrap _202E_200B_200C_200B_206D_200E_200B_206F_200D_206E_202C_206D_200C_206C_200D_202D_206E_200E_206F_200C_206B_200F_200B_206A_206E_200F_202D_200D_200D_202E_202E_200C_200B_206A_206B_202E_206D_202E_202A_202D_202E(ISharedImmediateTexture P_0, IDalamudTextureWrap P_1)
|
||||
{
|
||||
return P_0.GetWrapOrDefault(P_1);
|
||||
}
|
||||
|
||||
static void _206D_206F_202C_200D_202B_202E_200C_200B_206C_206A_206D_202B_206B_202B_206B_202C_202A_206B_202C_200E_206E_200F_200F_206D_202A_206B_206F_206B_200D_200F_200D_206D_200C_206B_200D_202B_200D_206A_206D_200C_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static ISharedImmediateTexture _202E_206B_206B_200F_206B_206E_202B_202D_200C_200F_202C_202E_200B_206B_200B_202B_202B_200D_202B_202A_202C_202C_206F_206C_206D_200E_202A_200C_200E_200E_202C_202B_206B_200C_202D_202B_200B_202E_200D_206B_202E(ITextureProvider P_0, string P_1)
|
||||
{
|
||||
return P_0.GetFromGame(P_1);
|
||||
}
|
||||
}
|
||||
79
LLib/LLib.ImGui/WindowFlash.cs
Normal file
79
LLib/LLib.ImGui/WindowFlash.cs
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
using System.CodeDom.Compiler;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace LLib.ImGui;
|
||||
|
||||
public static class WindowFlash
|
||||
{
|
||||
private struct FLASHWINFO
|
||||
{
|
||||
public uint cbSize;
|
||||
|
||||
public nint hwnd;
|
||||
|
||||
public uint dwFlags;
|
||||
|
||||
public uint uCount;
|
||||
|
||||
public uint dwTimeout;
|
||||
}
|
||||
|
||||
private const uint FLASHW_ALL = 3u;
|
||||
|
||||
private const uint FLASHW_TIMERNOFG = 12u;
|
||||
|
||||
[LibraryImport("user32.dll")]
|
||||
[DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
|
||||
[GeneratedCode("Microsoft.Interop.LibraryImportGenerator", "10.0.14.37416")]
|
||||
[SkipLocalsInit]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
private unsafe static bool FlashWindowEx(ref FLASHWINFO pwfi)
|
||||
{
|
||||
int num;
|
||||
fixed (FLASHWINFO* _pwfi_native = &pwfi)
|
||||
{
|
||||
num = __PInvoke(_pwfi_native);
|
||||
}
|
||||
return num != 0;
|
||||
[DllImport("user32.dll", EntryPoint = "FlashWindowEx", ExactSpelling = true)]
|
||||
[DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
|
||||
static extern unsafe int __PInvoke(FLASHWINFO* __pwfi_native);
|
||||
}
|
||||
|
||||
public static void Flash(nint hwnd, uint count = 3u)
|
||||
{
|
||||
int num = ((hwnd != 0) ? (-1584485795) : (-1584485796));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1584485795;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
FLASHWINFO pwfi = new FLASHWINFO
|
||||
{
|
||||
cbSize = (uint)Marshal.SizeOf<FLASHWINFO>(),
|
||||
hwnd = hwnd,
|
||||
dwFlags = ((count == 0) ? 15u : 3u),
|
||||
uCount = count,
|
||||
dwTimeout = 0u
|
||||
};
|
||||
FlashWindowEx(ref pwfi);
|
||||
return;
|
||||
}
|
||||
case 1:
|
||||
return;
|
||||
case 2:
|
||||
goto IL_0093;
|
||||
}
|
||||
continue;
|
||||
IL_0093:
|
||||
num = -1584485796;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue