1647 lines
52 KiB
C#
1647 lines
52 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Numerics;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.InteropServices;
|
|
using Dalamud.Bindings.ImGui;
|
|
using Dalamud.Interface.Textures.TextureWraps;
|
|
|
|
namespace LLib.ImGui;
|
|
|
|
public sealed class MapPolygonEditor
|
|
{
|
|
private readonly MapTextureService _mapService;
|
|
|
|
private float _zoom = 0.5f;
|
|
|
|
private Vector2 _offset = Vector2.Zero;
|
|
|
|
private bool _isPanning;
|
|
|
|
private Vector2 _lastMousePos;
|
|
|
|
private Vector2 _panStartPos;
|
|
|
|
private bool _isDrawing;
|
|
|
|
private readonly List<Vector2> _drawingVertices = new List<Vector2>();
|
|
|
|
private bool _isDraggingVertex;
|
|
|
|
private bool _suppressClickThisFrame;
|
|
|
|
private int _dragPolyIndex = -1;
|
|
|
|
private int _dragVertexIndex = -1;
|
|
|
|
private int _hoveredVertexIndex = -1;
|
|
|
|
private int _hoveredEdgeIndex = -1;
|
|
|
|
private const float VertexHandleRadius = 5f;
|
|
|
|
private const float VertexHitRadius = 12f;
|
|
|
|
private const float EdgeMidpointRadius = 4f;
|
|
|
|
private const float EdgeMidpointHitRadius = 10f;
|
|
|
|
private const float VertexSnapRadius = 10f;
|
|
|
|
private const float ClickThreshold = 4f;
|
|
|
|
private const float ClosePolygonPixelDist = 12f;
|
|
|
|
private const int MinVerticesForPolygon = 3;
|
|
|
|
public bool IsDrawing => _isDrawing;
|
|
|
|
public int SelectedIndex { get; set; } = -1;
|
|
|
|
public MapPolygonEditor(MapTextureService mapService)
|
|
{
|
|
_mapService = mapService;
|
|
}
|
|
|
|
public void StartDrawing()
|
|
{
|
|
_isDrawing = true;
|
|
_drawingVertices.Clear();
|
|
}
|
|
|
|
public void CancelDrawing()
|
|
{
|
|
_isDrawing = false;
|
|
_drawingVertices.Clear();
|
|
}
|
|
|
|
public void ResetView()
|
|
{
|
|
_zoom = 0.5f;
|
|
_offset = Vector2.Zero;
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
public void Draw(IEditablePolygonSet polygons, Vector3? playerPosition, Vector2? size = null)
|
|
{
|
|
Vector2 vector = _202A_200B_202A_206D_202C_202C_202E_200C_202D_202E_200C_206D_206F_202A_206B_206E_200E_200F_206F_206A_206A_202B_202C_200F_200D_200F_202D_200F_200B_200C_202C_202D_200D_202C_200B_200D_202A_200B_206D_206B_202E();
|
|
Vector2? vector2 = size;
|
|
int num = (vector2.HasValue ? 1179262283 : 1179262292);
|
|
ImDrawListPtr drawList = default(ImDrawListPtr);
|
|
Vector2 vector3 = default(Vector2);
|
|
Vector2 vector4 = default(Vector2);
|
|
bool flag = default(bool);
|
|
int nearVertexIndex = default(int);
|
|
Vector2 vector5 = default(Vector2);
|
|
Vector2 vector6 = default(Vector2);
|
|
IDalamudTextureWrap textureWrap = default(IDalamudTextureWrap);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1179262298;
|
|
int num4 = num2;
|
|
Vector2 vector7;
|
|
Vector2 vector8;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 10:
|
|
num = ((!_isDrawing) ? 1179262280 : 1179262301);
|
|
break;
|
|
case 7:
|
|
DrawPolygonInProgress(drawList, vector3, vector4);
|
|
num = 1179262280;
|
|
break;
|
|
case 18:
|
|
HandleMouseInput(polygons, vector3, vector4, flag);
|
|
HandleDrawingInput(polygons, vector3, vector4, flag);
|
|
_206C_202E_202E_202C_202E_202B_206C_206D_202C_206B_206F_206B_202B_206C_206D_200B_206E_200B_206D_202D_206B_202C_200C_206A_206B_206B_206C_206A_200B_200B_200B_202B_200B_202E_206D_200B_206A_200D_202B_206E_202E();
|
|
return;
|
|
case 8:
|
|
HandleVertexDrag(polygons, vector3, vector4, flag, nearVertexIndex);
|
|
num = (_isDraggingVertex ? 1179262291 : 1179262299);
|
|
break;
|
|
case 1:
|
|
HandlePanZoom(vector5, vector6, flag);
|
|
num = 1179262291;
|
|
break;
|
|
case 5:
|
|
_206D_202C_202B_206C_202B_200D_202B_200E_202E_206F_202E_200D_200B_202B_206A_202E_200F_206D_202A_206F_200F_200B_202D_200B_206A_202E_206E_202D_202E_200D_206C_200F_206C_202D_202C_202B_202B_200F_206D_206E_202E((ImU8String)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>(-2135402966));
|
|
num = 1179262294;
|
|
break;
|
|
case 17:
|
|
vector7 = vector2.GetValueOrDefault();
|
|
goto IL_0167;
|
|
case 0:
|
|
_206D_202C_202B_206C_202B_200D_202B_200E_202E_206F_202E_200D_200B_202B_206A_202E_200F_206D_202A_206F_200F_200B_202D_200B_206A_202E_206E_202D_202E_200D_206C_200F_206C_202D_202C_202B_202B_200F_206D_206E_202E((ImU8String)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>(1849117165));
|
|
num = 1179262294;
|
|
break;
|
|
case 19:
|
|
num = ((SelectedIndex >= polygons.PolygonCount) ? 1179262290 : 1179262300);
|
|
break;
|
|
case 12:
|
|
_206C_202E_202E_202C_202E_202B_206C_206D_202C_206B_206F_206B_202B_206C_206D_200B_206E_200B_206D_202D_206B_202C_200C_206A_206B_206B_206C_206A_200B_200B_200B_202B_200B_202E_206D_200B_206A_200D_202B_206E_202E();
|
|
return;
|
|
case 14:
|
|
vector7 = new Vector2(vector.X, _206A_202A_200D_202A_206E_202A_202E_200B_206E_200E_202A_206B_202A_202C_200D_206C_200F_206D_206B_206D_200F_200C_202D_206F_202A_202A_206E_206F_206C_202B_206D_202E_206B_206D_200D_200E_200B_200F_200F_200D_202E(vector.Y, 400f));
|
|
goto IL_0167;
|
|
case 6:
|
|
{
|
|
IList<Vector2> vertices = polygons.GetVertices(SelectedIndex);
|
|
nearVertexIndex = FindNearestVertexHandle(vertices, vector3, vector4);
|
|
num = 1179262290;
|
|
break;
|
|
}
|
|
case 13:
|
|
vector5 = _200D_206C_202C_202A_200F_200F_200F_200D_202E_202E_200F_206C_200E_200B_206C_200E_206A_202A_202E_200D_202D_200F_200D_202B_200C_206D_200D_202A_202E_202C_202A_202A_206F_202E_200E_200E_202E_200C_206F_206C_202E();
|
|
vector6 = _202A_200B_202A_206D_202C_202C_202E_200C_202D_202E_200C_206D_206F_202A_206B_206E_200E_200F_206F_206A_206A_202B_202C_200F_200D_200F_202D_200F_200B_200C_202C_202D_200D_202C_200B_200D_202A_200B_206D_206B_202E();
|
|
_206E_200D_206A_202C_202D_206B_202B_206B_202A_206F_200F_206C_206A_202C_200B_202E_200F_206C_202C_202A_200F_202C_206E_206D_202A_206A_200E_202E_200F_200E_206E_206D_202D_202B_206F_206B_200D_200E_206D_206F_202E((ImU8String)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>(1669427471), vector6, ImGuiButtonFlags.None);
|
|
flag = _200D_200B_206C_202A_202C_206F_200C_202E_200F_202C_202E_200E_202A_202A_206C_200B_206F_200D_202A_206D_202B_202B_202A_206F_206F_206C_202E_206D_202B_200C_206C_206C_200E_200C_206F_202E_206F_206B_200F_200D_202E();
|
|
textureWrap = _mapService.GetTextureWrap();
|
|
num = ((textureWrap != null) ? 1179262282 : 1179262297);
|
|
break;
|
|
case 2:
|
|
num = ((SelectedIndex < 0) ? 1179262290 : 1179262281);
|
|
break;
|
|
case 9:
|
|
vector3 = vector5 + _offset + vector6 * 0.5f - vector4 * 0.5f;
|
|
drawList = _200B_200C_202B_202C_206F_206E_206A_202B_200B_202D_202D_206D_202C_200B_202B_200F_206E_206C_206D_202D_206E_200F_206A_200E_202D_206F_200C_200F_202D_202A_202A_202C_202E_206B_202C_206D_202C_202A_202D_202E_202E();
|
|
drawList.AddImage(_200B_202A_202D_202A_200B_206F_202A_200D_206A_202C_206B_206F_206C_206E_206C_202C_206D_206F_202E_206A_202C_202E_206A_202C_206B_206B_202C_202B_206A_206F_206F_206D_200E_206C_200F_202B_206B_206E_202B_200E_202E(textureWrap), vector3, vector3 + vector4);
|
|
DrawPolygons(drawList, polygons, vector3, vector4);
|
|
num = ((!playerPosition.HasValue) ? 1179262288 : 1179262293);
|
|
break;
|
|
case 11:
|
|
num = 1179262292;
|
|
break;
|
|
case 3:
|
|
_202B_206C_200F_200F_200D_202C_206D_200C_200B_200D_202A_202D_206F_202B_206E_206C_202B_200D_206D_202E_206A_202A_200B_206B_202B_206E_200C_200C_200D_206C_202D_206A_202B_206F_200D_200F_202C_202B_206D_200E_202E(vector5 + new Vector2(8f, 8f));
|
|
num = ((!_mapService.IsSearching) ? 1179262303 : 1179262298);
|
|
break;
|
|
case 16:
|
|
{
|
|
float value = 2048f * _zoom;
|
|
vector4 = new Vector2(value);
|
|
vector3 = vector5 + _offset + vector6 * 0.5f - vector4 * 0.5f;
|
|
nearVertexIndex = -1;
|
|
num = (_isDrawing ? 1179262290 : 1179262296);
|
|
break;
|
|
}
|
|
case 4:
|
|
_206C_202E_202E_202C_202E_202B_206C_206D_202C_206B_206F_206B_202B_206C_206D_200B_206E_200B_206D_202D_206B_202C_200C_206A_206B_206B_206C_206A_200B_200B_200B_202B_200B_202E_206D_200B_206A_200D_202B_206E_202E();
|
|
return;
|
|
case 15:
|
|
{
|
|
Vector3 valueOrDefault = playerPosition.GetValueOrDefault();
|
|
Vector2 center = _mapService.WorldToScreen(valueOrDefault.X, valueOrDefault.Z, vector3, vector4);
|
|
drawList.AddCircleFilled(center, 4f, 4278255360u);
|
|
drawList.AddCircle(center, 6f, 4278190080u);
|
|
num = 1179262288;
|
|
break;
|
|
}
|
|
IL_0167:
|
|
vector8 = vector7;
|
|
num = (_206A_202A_202E_206F_202E_200F_200E_202E_206A_206D_206D_202E_200D_202D_206C_202A_200E_202E_206B_202B_200C_202A_206E_200B_206E_202A_206F_206E_202C_200B_200B_202A_206A_206B_202A_206B_202C_202B_202C_202A_202E((ImU8String)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>(1901948127), vector8, true, ImGuiWindowFlags.None) ? 1179262295 : 1179262302);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void DrawPolygons(ImDrawListPtr drawList, IEditablePolygonSet polygons, Vector2 imagePos, Vector2 imageSizeVec)
|
|
{
|
|
int num = 0;
|
|
int num2 = 1957768774;
|
|
IList<Vector2> vertices = default(IList<Vector2>);
|
|
string label = default(string);
|
|
while (true)
|
|
{
|
|
int num3 = num2;
|
|
int num4 = 1957768782;
|
|
int num5 = num3;
|
|
switch ((num5 | num4) - (num5 & num4))
|
|
{
|
|
case 5:
|
|
num2 = 1957768774;
|
|
break;
|
|
case 6:
|
|
vertices = polygons.GetVertices(num);
|
|
num2 = ((vertices.Count < 3) ? 1957768778 : 1957768777);
|
|
break;
|
|
case 8:
|
|
num2 = ((num < polygons.PolygonCount) ? 1957768776 : 1957768781);
|
|
break;
|
|
case 1:
|
|
DrawVertexHandles(drawList, vertices, imagePos, imageSizeVec);
|
|
num2 = 1957768780;
|
|
break;
|
|
case 4:
|
|
{
|
|
int num12 = num;
|
|
num4 = 1;
|
|
num5 = num12;
|
|
int num13 = num5 ^ num4;
|
|
int num14 = num5 & num4;
|
|
num = num13 + (num14 + num14);
|
|
num2 = 1957768774;
|
|
break;
|
|
}
|
|
case 2:
|
|
label = polygons.GetLabel(num);
|
|
num2 = (_206C_200B_206A_206F_200D_206E_202D_206B_206C_206F_200E_200E_202E_200B_206F_206B_202B_202B_200D_200B_202C_206B_202A_206D_200F_202B_202C_206D_202E_200C_206A_202B_200D_202C_202E_202A_202C_200E_206E_202C_202E(label) ? 1957768778 : 1957768782);
|
|
break;
|
|
case 7:
|
|
{
|
|
uint num6 = polygons.GetColor(num);
|
|
bool num7 = num == SelectedIndex;
|
|
if (num7)
|
|
{
|
|
uint num8 = num6;
|
|
num4 = 16777215;
|
|
num5 = (int)num8;
|
|
int num9 = num5 + num4 - (num5 | num4);
|
|
num4 = -1879048192;
|
|
num5 = num9;
|
|
num6 = (uint)((num5 & num4) + (num5 ^ num4));
|
|
}
|
|
DrawFilledPolygon(drawList, vertices, imagePos, imageSizeVec, num6);
|
|
float thickness = (num7 ? 3f : 1f);
|
|
int num11;
|
|
if (!num7)
|
|
{
|
|
uint num10 = num6;
|
|
num4 = -16777216;
|
|
num5 = (int)num10;
|
|
num11 = num5 + num4 - (num5 & num4);
|
|
}
|
|
else
|
|
{
|
|
num11 = -1;
|
|
}
|
|
uint color = (uint)num11;
|
|
DrawPolygonBorder(drawList, vertices, imagePos, imageSizeVec, color, thickness);
|
|
num2 = ((!num7) ? 1957768780 : 1957768783);
|
|
break;
|
|
}
|
|
case 3:
|
|
return;
|
|
case 0:
|
|
{
|
|
Vector2 vector = ComputeCentroid(vertices);
|
|
Vector2 pos = _mapService.WorldToScreen(vector.X, vector.Y, imagePos, imageSizeVec);
|
|
drawList.AddText(pos, uint.MaxValue, label);
|
|
num2 = 1957768778;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void DrawFilledPolygon(ImDrawListPtr drawList, IList<Vector2> verts, Vector2 imagePos, Vector2 imageSizeVec, uint color)
|
|
{
|
|
Vector2[] array = new Vector2[verts.Count];
|
|
int num = 0;
|
|
int num2 = 303773687;
|
|
int num9 = default(int);
|
|
int num8 = default(int);
|
|
bool flag = default(bool);
|
|
List<int> list = default(List<int>);
|
|
float polySignedArea = default(float);
|
|
int num13 = default(int);
|
|
int num14 = default(int);
|
|
int num15 = default(int);
|
|
while (true)
|
|
{
|
|
int num3 = num2;
|
|
int num4 = 303773680;
|
|
int num5 = num3;
|
|
int num6 = num5 + num4;
|
|
int num7 = num5 & num4;
|
|
switch (num6 - (num7 + num7))
|
|
{
|
|
case 14:
|
|
{
|
|
int num16 = num9;
|
|
num4 = 1;
|
|
num5 = num16;
|
|
int num17 = num5 ^ num4;
|
|
int num18 = num5 & num4;
|
|
num9 = num17 + (num18 + num18);
|
|
num2 = 303773689;
|
|
break;
|
|
}
|
|
case 11:
|
|
{
|
|
array[num] = _mapService.WorldToScreen(verts[num].X, verts[num].Y, imagePos, imageSizeVec);
|
|
int num10 = num;
|
|
num4 = 1;
|
|
num5 = num10;
|
|
num = (num5 | num4) + (num5 & num4);
|
|
num2 = 303773687;
|
|
break;
|
|
}
|
|
case 6:
|
|
num2 = ((num8 < verts.Count) ? 303773683 : 303773688);
|
|
break;
|
|
case 2:
|
|
flag = false;
|
|
num9 = 0;
|
|
num2 = 303773689;
|
|
break;
|
|
case 3:
|
|
{
|
|
list.Add(num8);
|
|
int num19 = num8;
|
|
num4 = 1;
|
|
num5 = num19;
|
|
int num20 = num5 ^ num4;
|
|
int num21 = num5 & num4;
|
|
num8 = num20 + (num21 + num21);
|
|
num2 = 303773686;
|
|
break;
|
|
}
|
|
case 12:
|
|
num2 = ((list.Count > 2) ? 303773682 : 303773680);
|
|
break;
|
|
case 4:
|
|
num2 = 303773687;
|
|
break;
|
|
case 5:
|
|
num2 = ((!flag) ? 303773680 : 303773692);
|
|
break;
|
|
case 8:
|
|
polySignedArea = SignedArea(array, list);
|
|
num2 = 303773692;
|
|
break;
|
|
case 0:
|
|
return;
|
|
case 10:
|
|
list = new List<int>(verts.Count);
|
|
num8 = 0;
|
|
num2 = 303773686;
|
|
break;
|
|
case 13:
|
|
drawList.AddTriangleFilled(array[num13], array[num14], array[num15], color);
|
|
list.RemoveAt(num9);
|
|
flag = true;
|
|
num2 = 303773685;
|
|
break;
|
|
case 1:
|
|
{
|
|
int num11 = num9;
|
|
num4 = 1;
|
|
num5 = num11;
|
|
int index = (~(~num5 + num4) + list.Count) % list.Count;
|
|
int num12 = num9;
|
|
num4 = 1;
|
|
num5 = num12;
|
|
int index2 = ((num5 | num4) + (num5 & num4)) % list.Count;
|
|
num13 = list[index];
|
|
num14 = list[num9];
|
|
num15 = list[index2];
|
|
num2 = ((!IsEar(array, list, num13, num14, num15, polySignedArea)) ? 303773694 : 303773693);
|
|
break;
|
|
}
|
|
case 9:
|
|
num2 = ((num9 < list.Count) ? 303773681 : 303773685);
|
|
break;
|
|
case 7:
|
|
num2 = ((num < verts.Count) ? 303773691 : 303773690);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static float SignedArea(Vector2[] verts, List<int> indices)
|
|
{
|
|
float num = 0f;
|
|
int num2 = 0;
|
|
int num3 = 747837533;
|
|
while (true)
|
|
{
|
|
int num4 = num3;
|
|
int num5 = 747837535;
|
|
int num6 = num4;
|
|
int num7 = num6 + num5;
|
|
int num8 = num6 & num5;
|
|
switch (num7 - (num8 + num8))
|
|
{
|
|
case 1:
|
|
return num;
|
|
case 3:
|
|
{
|
|
Vector2 vector = verts[indices[num2]];
|
|
int num9 = num2;
|
|
num5 = 1;
|
|
num6 = num9;
|
|
Vector2 vector2 = verts[indices[((num6 | num5) + (num6 & num5)) % indices.Count]];
|
|
num += (vector2.X - vector.X) * (vector2.Y + vector.Y);
|
|
int num10 = num2;
|
|
num5 = 1;
|
|
num6 = num10;
|
|
int num11 = num6 ^ num5;
|
|
int num12 = num6 & num5;
|
|
num2 = num11 + (num12 + num12);
|
|
num3 = 747837533;
|
|
break;
|
|
}
|
|
case 2:
|
|
num3 = ((num2 < indices.Count) ? 747837532 : 747837534);
|
|
break;
|
|
case 0:
|
|
num3 = 747837533;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static bool IsEar(Vector2[] verts, List<int> indices, int prev, int curr, int next, float polySignedArea)
|
|
{
|
|
Vector2 vector = verts[prev];
|
|
Vector2 vector2 = verts[curr];
|
|
Vector2 vector3 = verts[next];
|
|
float num = Cross2D(vector2 - vector, vector3 - vector);
|
|
int num2 = ((!(polySignedArea > 0f)) ? (-640455158) : (-640455157));
|
|
int current = default(int);
|
|
while (true)
|
|
{
|
|
int num3 = num2;
|
|
int num4 = -640455158;
|
|
int num5 = num3;
|
|
switch ((num5 | num4) - (num5 & num4))
|
|
{
|
|
case 3:
|
|
num2 = ((!(num <= 0f)) ? (-640455153) : (-640455160));
|
|
break;
|
|
case 1:
|
|
num2 = ((!(num >= 0f)) ? (-640455158) : (-640455156));
|
|
break;
|
|
case 4:
|
|
num2 = -640455157;
|
|
break;
|
|
case 0:
|
|
num2 = ((!(polySignedArea <= 0f)) ? (-640455153) : (-640455159));
|
|
break;
|
|
case 2:
|
|
return false;
|
|
case 6:
|
|
return false;
|
|
case 5:
|
|
{
|
|
using (List<int>.Enumerator enumerator = indices.GetEnumerator())
|
|
{
|
|
num2 = -95069085;
|
|
while (true)
|
|
{
|
|
int num6 = num2;
|
|
num4 = -95069086;
|
|
num5 = num6;
|
|
switch ((num5 | num4) - (num5 & num4))
|
|
{
|
|
case 1:
|
|
num2 = (enumerator.MoveNext() ? (-95069087) : (-95069082));
|
|
break;
|
|
case 5:
|
|
num2 = ((current == curr) ? (-95069085) : (-95069088));
|
|
break;
|
|
case 6:
|
|
return false;
|
|
case 3:
|
|
current = enumerator.Current;
|
|
num2 = ((current == prev) ? (-95069085) : (-95069081));
|
|
break;
|
|
case 0:
|
|
num2 = -95069085;
|
|
break;
|
|
case 2:
|
|
num2 = ((current == next) ? (-95069085) : (-95069083));
|
|
break;
|
|
case 7:
|
|
num2 = ((!PointInTriangle(verts[current], vector, vector2, vector3)) ? (-95069085) : (-95069084));
|
|
break;
|
|
case 4:
|
|
goto end_IL_011b;
|
|
}
|
|
continue;
|
|
end_IL_011b:
|
|
break;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private static bool PointInTriangle(Vector2 p, Vector2 a, Vector2 b, Vector2 c)
|
|
{
|
|
float num = Cross2D(p - a, b - a);
|
|
float num2 = Cross2D(p - b, c - b);
|
|
float num3 = Cross2D(p - c, a - c);
|
|
bool flag = num < 0f || num2 < 0f || num3 < 0f;
|
|
int num4 = ((num > 0f) ? (-1226120995) : (-1226120996));
|
|
while (true)
|
|
{
|
|
int num5 = num4;
|
|
int num6 = -1226120994;
|
|
int num7 = num5;
|
|
int num8;
|
|
bool flag2;
|
|
switch ((num7 | num6) - (num7 & num6))
|
|
{
|
|
case 3:
|
|
num8 = 1;
|
|
goto IL_00b3;
|
|
case 1:
|
|
num8 = ((num3 > 0f) ? 1 : 0);
|
|
goto IL_00b3;
|
|
case 2:
|
|
num4 = ((num2 > 0f) ? (-1226120995) : (-1226120993));
|
|
break;
|
|
case 0:
|
|
{
|
|
num4 = -1226120996;
|
|
break;
|
|
}
|
|
IL_00b3:
|
|
flag2 = (byte)num8 != 0;
|
|
num6 = (flag2 ? 1 : 0);
|
|
num7 = (flag ? 1 : 0);
|
|
return (num7 | num6) - (num7 ^ num6) == 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static float Cross2D(Vector2 a, Vector2 b)
|
|
{
|
|
return a.X * b.Y - a.Y * b.X;
|
|
}
|
|
|
|
private void DrawPolygonBorder(ImDrawListPtr drawList, IList<Vector2> verts, Vector2 imagePos, Vector2 imageSizeVec, uint color, float thickness)
|
|
{
|
|
int num = 0;
|
|
int num2 = -1536705379;
|
|
while (true)
|
|
{
|
|
int num3 = num2;
|
|
int num4 = -1536705377;
|
|
int num5 = num3;
|
|
int num6 = num5 + num4;
|
|
int num7 = num5 & num4;
|
|
switch (num6 - (num7 + num7))
|
|
{
|
|
case 3:
|
|
num2 = -1536705379;
|
|
break;
|
|
case 0:
|
|
return;
|
|
case 2:
|
|
num2 = ((num < verts.Count) ? (-1536705378) : (-1536705377));
|
|
break;
|
|
case 1:
|
|
{
|
|
int num8 = num;
|
|
num4 = 1;
|
|
num5 = num8;
|
|
int num9 = num5 ^ num4;
|
|
int num10 = num5 & num4;
|
|
int index = (num9 + (num10 + num10)) % verts.Count;
|
|
Vector2 p = _mapService.WorldToScreen(verts[num].X, verts[num].Y, imagePos, imageSizeVec);
|
|
Vector2 p2 = _mapService.WorldToScreen(verts[index].X, verts[index].Y, imagePos, imageSizeVec);
|
|
drawList.AddLine(p, p2, color, thickness);
|
|
int num11 = num;
|
|
num4 = 1;
|
|
num5 = num11;
|
|
num = (num5 | num4) + (num5 & num4);
|
|
num2 = -1536705379;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void DrawVertexHandles(ImDrawListPtr drawList, IList<Vector2> verts, Vector2 imagePos, Vector2 imageSizeVec)
|
|
{
|
|
_hoveredVertexIndex = FindNearestVertexHandle(verts, imagePos, imageSizeVec);
|
|
_hoveredEdgeIndex = -1;
|
|
int num = ((_hoveredVertexIndex >= 0) ? (-717290128) : (-717290123));
|
|
int num8 = default(int);
|
|
Vector2 center = default(Vector2);
|
|
uint col = default(uint);
|
|
Vector2 center2 = default(Vector2);
|
|
uint col2 = default(uint);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -717290126;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
float num12;
|
|
float num13;
|
|
float radius;
|
|
Vector2 vector2;
|
|
bool num14;
|
|
float radius2;
|
|
int num15;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 3:
|
|
num = -717290123;
|
|
break;
|
|
case 7:
|
|
num = (_isDraggingVertex ? (-717290128) : (-717290124));
|
|
break;
|
|
case 0:
|
|
num = ((num8 < verts.Count) ? (-717290122) : (-717290125));
|
|
break;
|
|
case 1:
|
|
return;
|
|
case 10:
|
|
num12 = 7f;
|
|
goto IL_00e2;
|
|
case 6:
|
|
_hoveredEdgeIndex = FindNearestEdgeMidpoint(verts, imagePos, imageSizeVec);
|
|
num = -717290128;
|
|
break;
|
|
case 5:
|
|
num12 = 5f;
|
|
goto IL_00e2;
|
|
case 9:
|
|
num13 = 6f;
|
|
goto IL_0156;
|
|
case 8:
|
|
num13 = 4f;
|
|
goto IL_0156;
|
|
case 2:
|
|
num8 = 0;
|
|
num = -717290126;
|
|
break;
|
|
case 4:
|
|
{
|
|
int num7 = num8;
|
|
num3 = 1;
|
|
num4 = num7;
|
|
int num9 = num4 ^ num3;
|
|
int num10 = num4 & num3;
|
|
int index = (num9 + (num10 + num10)) % verts.Count;
|
|
Vector2 vector = (verts[num8] + verts[index]) / 2f;
|
|
center = _mapService.WorldToScreen(vector.X, vector.Y, imagePos, imageSizeVec);
|
|
bool num11 = num8 == _hoveredEdgeIndex;
|
|
col = (num11 ? 4278255615u : 2164260863u);
|
|
num = (num11 ? (-717290117) : (-717290118));
|
|
break;
|
|
}
|
|
IL_0156:
|
|
radius = num13;
|
|
drawList.AddCircleFilled(center, radius, col);
|
|
vector2 = verts[num8];
|
|
center2 = _mapService.WorldToScreen(vector2.X, vector2.Y, imagePos, imageSizeVec);
|
|
num14 = num8 == _hoveredVertexIndex;
|
|
col2 = (num14 ? 4278255615u : uint.MaxValue);
|
|
num = (num14 ? (-717290120) : (-717290121));
|
|
break;
|
|
IL_00e2:
|
|
radius2 = num12;
|
|
drawList.AddCircleFilled(center2, radius2, col2);
|
|
drawList.AddCircle(center2, radius2, 4278190080u);
|
|
num15 = num8;
|
|
num3 = 1;
|
|
num4 = num15;
|
|
num8 = (num4 | num3) + (num4 & num3);
|
|
num = -717290126;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void DrawPolygonInProgress(ImDrawListPtr drawList, Vector2 imagePos, Vector2 imageSizeVec)
|
|
{
|
|
Vector2 vector = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E();
|
|
int num = ((_drawingVertices.Count != 0) ? 147595329 : 147595340);
|
|
int num8 = default(int);
|
|
Vector2 vector2 = default(Vector2);
|
|
Vector2 center = default(Vector2);
|
|
int num7 = default(int);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 147595328;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
int num18;
|
|
uint col;
|
|
int num19;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 1:
|
|
num8 = 0;
|
|
num = 147595332;
|
|
break;
|
|
case 12:
|
|
drawList.AddCircle(vector, 4f, uint.MaxValue);
|
|
return;
|
|
case 3:
|
|
{
|
|
Vector2 p = _mapService.WorldToScreen(_drawingVertices[num8].X, _drawingVertices[num8].Y, imagePos, imageSizeVec);
|
|
MapTextureService mapService = _mapService;
|
|
List<Vector2> drawingVertices = _drawingVertices;
|
|
int num9 = num8;
|
|
num3 = 1;
|
|
num4 = num9;
|
|
int num10 = num4 ^ num3;
|
|
int num11 = num4 & num3;
|
|
float x = drawingVertices[num10 + (num11 + num11)].X;
|
|
List<Vector2> drawingVertices2 = _drawingVertices;
|
|
int num12 = num8;
|
|
num3 = 1;
|
|
num4 = num12;
|
|
int num13 = num4 ^ num3;
|
|
int num14 = num4 & num3;
|
|
Vector2 p2 = mapService.WorldToScreen(x, drawingVertices2[num13 + (num14 + num14)].Y, imagePos, imageSizeVec);
|
|
drawList.AddLine(p, p2, uint.MaxValue, 2f);
|
|
int num15 = num8;
|
|
num3 = 1;
|
|
num4 = num15;
|
|
int num16 = num4 ^ num3;
|
|
int num17 = num4 & num3;
|
|
num8 = num16 + (num17 + num17);
|
|
num = 147595332;
|
|
break;
|
|
}
|
|
case 0:
|
|
num = 147595340;
|
|
break;
|
|
case 5:
|
|
drawList.AddCircle(vector2, 12f, 4278255360u, 0, 2f);
|
|
num = 147595337;
|
|
break;
|
|
case 13:
|
|
center = _mapService.WorldToScreen(_drawingVertices[num7].X, _drawingVertices[num7].Y, imagePos, imageSizeVec);
|
|
num = ((num7 == 0) ? 147595338 : 147595336);
|
|
break;
|
|
case 4:
|
|
num = ((num8 < _drawingVertices.Count - 1) ? 147595331 : 147595339);
|
|
break;
|
|
case 7:
|
|
{
|
|
MapTextureService mapService2 = _mapService;
|
|
List<Vector2> drawingVertices3 = _drawingVertices;
|
|
float x2 = drawingVertices3[drawingVertices3.Count - 1].X;
|
|
List<Vector2> drawingVertices4 = _drawingVertices;
|
|
Vector2 p3 = mapService2.WorldToScreen(x2, drawingVertices4[drawingVertices4.Count - 1].Y, imagePos, imageSizeVec);
|
|
drawList.AddLine(p3, vector, 2164260863u, 1.5f);
|
|
num = ((_drawingVertices.Count < 3) ? 147595337 : 147595334);
|
|
break;
|
|
}
|
|
case 6:
|
|
vector2 = _mapService.WorldToScreen(_drawingVertices[0].X, _drawingVertices[0].Y, imagePos, imageSizeVec);
|
|
num = ((!(Vector2.Distance(vector, vector2) < 12f)) ? 147595337 : 147595333);
|
|
break;
|
|
case 9:
|
|
return;
|
|
case 10:
|
|
num18 = -16711936;
|
|
goto IL_02e3;
|
|
case 8:
|
|
num18 = -1;
|
|
goto IL_02e3;
|
|
case 2:
|
|
num = ((num7 < _drawingVertices.Count) ? 147595341 : 147595335);
|
|
break;
|
|
case 11:
|
|
{
|
|
num7 = 0;
|
|
num = 147595330;
|
|
break;
|
|
}
|
|
IL_02e3:
|
|
col = (uint)num18;
|
|
drawList.AddCircleFilled(center, 4f, col);
|
|
num19 = num7;
|
|
num3 = 1;
|
|
num4 = num19;
|
|
num7 = (num4 | num3) + (num4 & num3);
|
|
num = 147595330;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void HandlePanZoom(Vector2 canvasPos, Vector2 canvasSize, bool isHovered)
|
|
{
|
|
ImGuiIOPtr imGuiIOPtr = _202A_206D_200D_200B_206F_206A_202B_202E_202B_200F_200B_206E_206E_202C_200B_206A_202A_200F_202A_200C_206C_202A_202C_206F_202D_206C_202C_206F_206C_206D_206A_200E_206E_200B_200E_202B_206A_200E_202C_202D_202E();
|
|
int num = ((!isHovered) ? (-621061490) : (-621061489));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -621061492;
|
|
int num4 = num2;
|
|
int num5;
|
|
bool flag;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = -621061489;
|
|
break;
|
|
case 7:
|
|
{
|
|
Vector2 vector = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E();
|
|
Vector2 vector2 = vector - _lastMousePos;
|
|
_offset += vector2;
|
|
_lastMousePos = vector;
|
|
return;
|
|
}
|
|
case 5:
|
|
num5 = 1;
|
|
goto IL_00af;
|
|
case 4:
|
|
num = (_isPanning ? (-621061493) : (-621061500));
|
|
break;
|
|
case 8:
|
|
_isPanning = true;
|
|
_lastMousePos = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E();
|
|
_panStartPos = _lastMousePos;
|
|
return;
|
|
case 1:
|
|
{
|
|
float zoom = _zoom;
|
|
_zoom = _206A_202A_200D_202A_206E_202A_202E_200B_206E_200E_202A_206B_202A_202C_200D_206C_200F_206D_206B_206D_200F_200C_202D_206F_202A_202A_206E_206F_206C_202B_206D_202E_206B_206D_200D_200E_200B_200F_200F_200D_202E(0.1f, _202A_206A_206F_206A_202E_200B_202C_206A_200B_206F_206D_202B_202D_206D_202C_202D_206D_200D_200B_200E_200D_206A_202E_200D_200D_202B_206A_202C_206F_200E_200D_202A_206F_206D_206B_202C_202E_206B_206D_206D_202E(3f, _zoom + imGuiIOPtr.MouseWheel * 0.05f));
|
|
Vector2 vector3 = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E() - canvasPos - canvasSize * 0.5f - _offset;
|
|
_offset -= vector3 * (_zoom / zoom - 1f);
|
|
num = -621061490;
|
|
break;
|
|
}
|
|
case 6:
|
|
num5 = (_202D_200B_206D_200B_206C_200D_206E_202C_200F_206A_200C_202C_202A_206B_206D_202D_206B_200C_206F_206B_200D_202C_206D_206A_200B_202D_200F_206E_202D_202C_200E_202D_202E_202B_206D_202A_202B_202C_206E_202C_202E(ImGuiMouseButton.Middle) ? 1 : 0);
|
|
goto IL_00af;
|
|
case 2:
|
|
num = (_202D_200B_206D_200B_206C_200D_206E_202C_200F_206A_200C_202C_202A_206B_206D_202D_206B_200C_206F_206B_200D_202C_206D_206A_200B_202D_200F_206E_202D_202C_200E_202D_202E_202B_206D_202A_202B_202C_206E_202C_202E(ImGuiMouseButton.Left) ? (-621061495) : (-621061498));
|
|
break;
|
|
case 10:
|
|
num = (_202D_200B_206D_200B_206C_200D_206E_202C_200F_206A_200C_202C_202A_206B_206D_202D_206B_200C_206F_206B_200D_202C_206D_206A_200B_202D_200F_206E_202D_202C_200E_202D_202E_202B_206D_202A_202B_202C_206E_202C_202E(ImGuiMouseButton.Right) ? (-621061495) : (-621061494));
|
|
break;
|
|
case 9:
|
|
_isPanning = false;
|
|
return;
|
|
case 3:
|
|
{
|
|
num = ((!(_206F_200F_206B_200F_200D_200F_202C_202A_206A_200B_200C_206E_206B_206C_200F_200D_206C_200B_202B_200D_200C_206F_206B_206E_200B_206E_206E_206E_206C_202C_200C_200E_202C_202B_200D_206E_200B_200D_206C_202E_202E(imGuiIOPtr.MouseWheel) > 0.01f)) ? (-621061490) : (-621061491));
|
|
break;
|
|
}
|
|
IL_00af:
|
|
flag = (byte)num5 != 0;
|
|
num3 = (flag ? 1 : 0);
|
|
num4 = (isHovered ? 1 : 0);
|
|
num = ((num4 + num3 - (num4 | num3) == 0) ? (-621061499) : (-621061496));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void HandleVertexDrag(IEditablePolygonSet polygons, Vector2 imagePos, Vector2 imageSizeVec, bool mapHovered, int nearVertexIndex)
|
|
{
|
|
int num = (_isDraggingVertex ? (-1319429381) : (-1319429404));
|
|
IList<Vector2> vertices = default(IList<Vector2>);
|
|
IList<Vector2> vertices2 = default(IList<Vector2>);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1319429406;
|
|
int num4 = num2;
|
|
int num5;
|
|
int num6;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = -1319429404;
|
|
break;
|
|
case 5:
|
|
num = ((!_202E_202A_206A_200F_200E_206A_202D_202E_200E_202E_206A_206E_200B_200D_200B_202C_200C_206A_202E_206E_200E_202E_200F_202B_200E_202B_202E_206E_206B_202D_202D_200C_202A_206D_206B_206F_200E_200D_206E_202D_202E(ImGuiMouseButton.Left)) ? (-1319429397) : (-1319429386));
|
|
break;
|
|
case 16:
|
|
num = ((!_202B_206C_206A_200D_202D_206B_200D_206C_206C_200B_206F_200B_206B_202C_202E_202D_206E_200C_206B_206E_202E_206E_206A_206F_202A_202D_202C_200D_202E_200F_206B_202E_200F_206A_206E_202B_200E_206C_202D_202E_202E(ImGuiMouseButton.Left)) ? (-1319429392) : (-1319429402));
|
|
break;
|
|
case 4:
|
|
_isDraggingVertex = false;
|
|
_dragPolyIndex = -1;
|
|
_dragVertexIndex = -1;
|
|
_suppressClickThisFrame = true;
|
|
num = -1319429392;
|
|
break;
|
|
case 19:
|
|
num = ((_dragPolyIndex >= polygons.PolygonCount) ? (-1319429394) : (-1319429407));
|
|
break;
|
|
case 22:
|
|
num = ((SelectedIndex < 0) ? (-1319429389) : (-1319429395));
|
|
break;
|
|
case 14:
|
|
{
|
|
Vector2 vector = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E();
|
|
Vector2 vector2 = _mapService.ScreenToWorld(vector, imagePos, imageSizeVec);
|
|
Vector2? vector3 = FindSnapTarget(polygons, _dragPolyIndex, _dragVertexIndex, vector, imagePos, imageSizeVec);
|
|
vertices[_dragVertexIndex] = vector3 ?? vector2;
|
|
num = -1319429394;
|
|
break;
|
|
}
|
|
case 11:
|
|
vertices2 = polygons.GetVertices(SelectedIndex);
|
|
num = ((vertices2.Count <= 3) ? (-1319429389) : (-1319429393));
|
|
break;
|
|
case 10:
|
|
num = ((!_202D_200B_206D_200B_206C_200D_206E_202C_200F_206A_200C_202C_202A_206B_206D_202D_206B_200C_206F_206B_200D_202C_206D_206A_200B_202D_200F_206E_202D_202C_200E_202D_202E_202B_206D_202A_202B_202C_206E_202C_202E(ImGuiMouseButton.Left)) ? (-1319429394) : (-1319429387));
|
|
break;
|
|
case 9:
|
|
num = ((!_isDraggingVertex) ? (-1319429394) : (-1319429400));
|
|
break;
|
|
case 12:
|
|
num = ((!_isDraggingVertex) ? (-1319429392) : (-1319429390));
|
|
break;
|
|
case 15:
|
|
num = ((SelectedIndex >= polygons.PolygonCount) ? (-1319429389) : (-1319429399));
|
|
break;
|
|
case 24:
|
|
num = ((nearVertexIndex < 0) ? (-1319429397) : (-1319429401));
|
|
break;
|
|
case 6:
|
|
num5 = ((!_isDrawing) ? 1 : 0);
|
|
goto IL_02be;
|
|
case 25:
|
|
num5 = 0;
|
|
goto IL_02be;
|
|
case 2:
|
|
num = ((_dragVertexIndex >= vertices.Count) ? (-1319429394) : (-1319429396));
|
|
break;
|
|
case 21:
|
|
num = ((!_202E_202A_206A_200F_200E_206A_202D_202E_200E_202E_206A_206E_200B_200D_200B_202C_200C_206A_202E_206E_200E_202E_200F_202B_200E_202B_202E_206E_206B_202D_202D_200C_202A_206D_206B_206F_200E_200D_206E_202D_202E(ImGuiMouseButton.Right)) ? (-1319429389) : (-1319429388));
|
|
break;
|
|
case 13:
|
|
vertices2.RemoveAt(nearVertexIndex);
|
|
num = -1319429389;
|
|
break;
|
|
case 18:
|
|
num = (_isDraggingVertex ? (-1319429403) : (-1319429405));
|
|
break;
|
|
case 7:
|
|
num6 = 0;
|
|
goto IL_0363;
|
|
case 3:
|
|
vertices = polygons.GetVertices(_dragPolyIndex);
|
|
num = ((_dragVertexIndex < 0) ? (-1319429394) : (-1319429408));
|
|
break;
|
|
case 8:
|
|
num = ((nearVertexIndex < 0) ? (-1319429389) : (-1319429385));
|
|
break;
|
|
case 20:
|
|
_isDraggingVertex = true;
|
|
_dragPolyIndex = SelectedIndex;
|
|
_dragVertexIndex = nearVertexIndex;
|
|
num = -1319429397;
|
|
break;
|
|
case 1:
|
|
num6 = ((!_isDrawing) ? 1 : 0);
|
|
goto IL_0363;
|
|
case 23:
|
|
num = ((_dragPolyIndex < 0) ? (-1319429394) : (-1319429391));
|
|
break;
|
|
case 17:
|
|
return;
|
|
IL_02be:
|
|
num = ((((uint)num5 & (mapHovered ? 1u : 0u)) == 0) ? (-1319429397) : (-1319429382));
|
|
break;
|
|
IL_0363:
|
|
num = ((((uint)num6 & (mapHovered ? 1u : 0u)) == 0) ? (-1319429389) : (-1319429398));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void HandleMouseInput(IEditablePolygonSet polygons, Vector2 imagePos, Vector2 imageSizeVec, bool mapHovered)
|
|
{
|
|
int num = (_202B_206C_206A_200D_202D_206B_200D_206C_206C_200B_206F_200B_206B_202C_202E_202D_206E_200C_206B_206E_202E_206E_206A_206F_202A_202D_202C_200D_202E_200F_206B_202E_200F_206A_206E_202B_200E_206C_202D_202E_202E(ImGuiMouseButton.Left) ? 1762495191 : 1762495193);
|
|
int num8 = default(int);
|
|
int num7 = default(int);
|
|
IList<Vector2> vertices2 = default(IList<Vector2>);
|
|
int hoveredEdgeIndex = default(int);
|
|
Vector2 point = default(Vector2);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1762495184;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
num = ((SelectedIndex < 0) ? 1762495175 : 1762495192);
|
|
break;
|
|
case 18:
|
|
num8 = num7;
|
|
num = 1762495196;
|
|
break;
|
|
case 5:
|
|
vertices2 = polygons.GetVertices(SelectedIndex);
|
|
hoveredEdgeIndex = _hoveredEdgeIndex;
|
|
num = ((hoveredEdgeIndex >= vertices2.Count) ? 1762495175 : 1762495194);
|
|
break;
|
|
case 8:
|
|
num = ((SelectedIndex >= polygons.PolygonCount) ? 1762495175 : 1762495189);
|
|
break;
|
|
case 17:
|
|
num = ((num8 < 0) ? 1762495199 : 1762495198);
|
|
break;
|
|
case 21:
|
|
return;
|
|
case 4:
|
|
num = ((!_isDraggingVertex) ? 1762495190 : 1762495173);
|
|
break;
|
|
case 1:
|
|
num = (mapHovered ? 1762495174 : 1762495172);
|
|
break;
|
|
case 23:
|
|
num8 = -1;
|
|
num7 = 0;
|
|
num = 1762495195;
|
|
break;
|
|
case 20:
|
|
return;
|
|
case 12:
|
|
{
|
|
int num9 = num7;
|
|
num3 = 1;
|
|
num4 = num9;
|
|
num7 = (num4 | num3) + (num4 & num3);
|
|
num = 1762495195;
|
|
break;
|
|
}
|
|
case 11:
|
|
num = ((num7 < polygons.PolygonCount) ? 1762495168 : 1762495169);
|
|
break;
|
|
case 13:
|
|
return;
|
|
case 0:
|
|
num = (_isDrawing ? 1762495173 : 1762495188);
|
|
break;
|
|
case 10:
|
|
{
|
|
int num10 = hoveredEdgeIndex;
|
|
num3 = 1;
|
|
num4 = num10;
|
|
int num11 = num4 ^ num3;
|
|
int num12 = num4 & num3;
|
|
int index = (num11 + (num12 + num12)) % vertices2.Count;
|
|
Vector2 item = (vertices2[hoveredEdgeIndex] + vertices2[index]) / 2f;
|
|
vertices2.Insert(index, item);
|
|
return;
|
|
}
|
|
case 14:
|
|
SelectedIndex = num8;
|
|
num = 1762495199;
|
|
break;
|
|
case 7:
|
|
num = ((!_suppressClickThisFrame) ? 1762495184 : 1762495187);
|
|
break;
|
|
case 9:
|
|
return;
|
|
case 22:
|
|
{
|
|
Vector2 screenPos = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E();
|
|
point = _mapService.ScreenToWorld(screenPos, imagePos, imageSizeVec);
|
|
num = ((_hoveredEdgeIndex < 0) ? 1762495175 : 1762495186);
|
|
break;
|
|
}
|
|
case 16:
|
|
{
|
|
IList<Vector2> vertices = polygons.GetVertices(num7);
|
|
num = ((!PointInPolygon(point, vertices)) ? 1762495196 : 1762495170);
|
|
break;
|
|
}
|
|
case 6:
|
|
num = ((!(Vector2.Distance(_206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E(), _panStartPos) > 4f)) ? 1762495185 : 1762495197);
|
|
break;
|
|
case 3:
|
|
_suppressClickThisFrame = false;
|
|
return;
|
|
case 15:
|
|
return;
|
|
case 19:
|
|
num = 1762495193;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void HandleDrawingInput(IEditablePolygonSet polygons, Vector2 imagePos, Vector2 imageSizeVec, bool mapHovered)
|
|
{
|
|
int num = (_isDrawing ? 1750843241 : 1750843236);
|
|
Vector2 item = default(Vector2);
|
|
Vector2 vector = default(Vector2);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1750843243;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
_drawingVertices.Add(item);
|
|
num = 1750843238;
|
|
break;
|
|
case 1:
|
|
num = ((!_200D_202D_206D_202D_206B_206A_206F_202D_206C_202C_206C_206B_206D_206C_206E_200C_202A_206B_202A_202D_206B_202C_200D_200D_202A_200D_200D_206C_200C_200E_206C_200C_200C_206D_206B_206C_202A_200C_200D_206E_202E(ImGuiMouseButton.Left)) ? 1750843232 : 1750843245);
|
|
break;
|
|
case 16:
|
|
num = ((_drawingVertices.Count < 3) ? 1750843244 : 1750843246);
|
|
break;
|
|
case 11:
|
|
num = ((!_202E_202A_206A_200F_200E_206A_202D_202E_200E_202E_206A_206E_200B_200D_200B_202C_200C_206A_202E_206E_200E_202E_200F_202B_200E_202B_202E_206E_206B_202D_202D_200C_202A_206D_206B_206F_200E_200D_206E_202D_202E(ImGuiMouseButton.Left)) ? 1750843238 : 1750843234);
|
|
break;
|
|
case 12:
|
|
return;
|
|
case 13:
|
|
return;
|
|
case 17:
|
|
num = ((!_206A_200C_206A_206E_200E_200F_202B_206A_206E_206C_206A_202B_202B_200C_200F_200B_202A_206F_206F_200F_206E_200D_206F_200C_200C_206A_200B_200F_206C_202B_200D_202B_202E_202B_200F_202C_202B_200D_202C_202D_202E(ImGuiKey.Enter)) ? 1750843244 : 1750843259);
|
|
break;
|
|
case 10:
|
|
{
|
|
Vector2 value = _mapService.WorldToScreen(_drawingVertices[0].X, _drawingVertices[0].Y, imagePos, imageSizeVec);
|
|
num = ((!(Vector2.Distance(vector, value) < 12f)) ? 1750843243 : 1750843247);
|
|
break;
|
|
}
|
|
case 15:
|
|
return;
|
|
case 2:
|
|
num = ((!_206A_200C_206A_206E_200E_200F_202B_206A_206E_206C_206A_202B_202B_200C_200F_200B_202A_206F_206F_200F_206E_200D_206F_200C_200C_206A_200B_200F_206C_202B_200D_202B_202E_202B_200F_202C_202B_200D_202C_202D_202E(ImGuiKey.Escape)) ? 1750843258 : 1750843237);
|
|
break;
|
|
case 4:
|
|
FinishDrawing(polygons);
|
|
return;
|
|
case 7:
|
|
num = (mapHovered ? 1750843242 : 1750843239);
|
|
break;
|
|
case 3:
|
|
num = 1750843236;
|
|
break;
|
|
case 8:
|
|
FinishDrawing(polygons);
|
|
return;
|
|
case 5:
|
|
FinishDrawing(polygons);
|
|
return;
|
|
case 9:
|
|
vector = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E();
|
|
item = _mapService.ScreenToWorld(vector, imagePos, imageSizeVec);
|
|
num = ((_drawingVertices.Count < 3) ? 1750843243 : 1750843233);
|
|
break;
|
|
case 14:
|
|
_isDrawing = false;
|
|
_drawingVertices.Clear();
|
|
return;
|
|
case 6:
|
|
num = ((_drawingVertices.Count < 3) ? 1750843232 : 1750843235);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void FinishDrawing(IEditablePolygonSet polygons)
|
|
{
|
|
_isDrawing = false;
|
|
int num = ((_drawingVertices.Count >= 3) ? 1071882970 : 1071882969);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1071882968;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
goto IL_005e;
|
|
case 1:
|
|
_drawingVertices.Clear();
|
|
return;
|
|
case 2:
|
|
{
|
|
List<Vector2> drawingVertices = _drawingVertices;
|
|
int count = drawingVertices.Count;
|
|
List<Vector2> list = new List<Vector2>(count);
|
|
CollectionsMarshal.SetCount(list, count);
|
|
Span<Vector2> span = CollectionsMarshal.AsSpan(list);
|
|
int num7 = 0;
|
|
Span<Vector2> span2 = CollectionsMarshal.AsSpan(drawingVertices);
|
|
span2.CopyTo(span.Slice(num7, span2.Length));
|
|
num7 += span2.Length;
|
|
polygons.AddPolygon(list);
|
|
SelectedIndex = polygons.PolygonCount - 1;
|
|
_drawingVertices.Clear();
|
|
return;
|
|
}
|
|
}
|
|
continue;
|
|
IL_005e:
|
|
num = 1071882969;
|
|
}
|
|
}
|
|
|
|
private int FindNearestVertexHandle(IList<Vector2> verts, Vector2 imagePos, Vector2 imageSizeVec)
|
|
{
|
|
Vector2 value = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E();
|
|
float num = 12f;
|
|
int result = -1;
|
|
int num2 = 0;
|
|
int num3 = 1099861971;
|
|
float num9 = default(float);
|
|
while (true)
|
|
{
|
|
int num4 = num3;
|
|
int num5 = 1099861975;
|
|
int num6 = num4;
|
|
int num7 = num6 + num5;
|
|
int num8 = num6 & num5;
|
|
switch (num7 - (num8 + num8))
|
|
{
|
|
case 4:
|
|
num3 = ((num2 < verts.Count) ? 1099861974 : 1099861973);
|
|
break;
|
|
case 2:
|
|
return result;
|
|
case 0:
|
|
num3 = 1099861971;
|
|
break;
|
|
case 3:
|
|
{
|
|
int num10 = num2;
|
|
num5 = 1;
|
|
num6 = num10;
|
|
num2 = (num6 | num5) + (num6 & num5);
|
|
num3 = 1099861971;
|
|
break;
|
|
}
|
|
case 5:
|
|
num = num9;
|
|
result = num2;
|
|
num3 = 1099861972;
|
|
break;
|
|
case 1:
|
|
{
|
|
Vector2 value2 = _mapService.WorldToScreen(verts[num2].X, verts[num2].Y, imagePos, imageSizeVec);
|
|
num9 = Vector2.Distance(value, value2);
|
|
num3 = ((!(num9 < num)) ? 1099861972 : 1099861970);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private int FindNearestEdgeMidpoint(IList<Vector2> verts, Vector2 imagePos, Vector2 imageSizeVec)
|
|
{
|
|
int num = ((verts.Count >= 2) ? (-1822434936) : (-1822434929));
|
|
float num8 = default(float);
|
|
float num9 = default(float);
|
|
int result = default(int);
|
|
int num7 = default(int);
|
|
Vector2 value = default(Vector2);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1822434930;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 3:
|
|
num = -1822434929;
|
|
break;
|
|
case 4:
|
|
num8 = num9;
|
|
result = num7;
|
|
num = -1822434930;
|
|
break;
|
|
case 5:
|
|
{
|
|
int num13 = num7;
|
|
num3 = 1;
|
|
num4 = num13;
|
|
int num14 = num4 ^ num3;
|
|
int num15 = num4 & num3;
|
|
int index = (num14 + (num15 + num15)) % verts.Count;
|
|
Vector2 vector = (verts[num7] + verts[index]) / 2f;
|
|
Vector2 value2 = _mapService.WorldToScreen(vector.X, vector.Y, imagePos, imageSizeVec);
|
|
num9 = Vector2.Distance(value, value2);
|
|
num = ((!(num9 < num8)) ? (-1822434930) : (-1822434934));
|
|
break;
|
|
}
|
|
case 0:
|
|
{
|
|
int num10 = num7;
|
|
num3 = 1;
|
|
num4 = num10;
|
|
int num11 = num4 ^ num3;
|
|
int num12 = num4 & num3;
|
|
num7 = num11 + (num12 + num12);
|
|
num = -1822434935;
|
|
break;
|
|
}
|
|
case 1:
|
|
return -1;
|
|
case 6:
|
|
value = _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E();
|
|
num8 = 10f;
|
|
result = -1;
|
|
num7 = 0;
|
|
num = -1822434935;
|
|
break;
|
|
case 2:
|
|
return result;
|
|
case 7:
|
|
num = ((num7 < verts.Count) ? (-1822434933) : (-1822434932));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private Vector2? FindSnapTarget(IEditablePolygonSet polygons, int currentPolyIndex, int currentVertexIndex, Vector2 mouseScreenPos, Vector2 imagePos, Vector2 imageSizeVec)
|
|
{
|
|
float num = 10f;
|
|
Vector2? result = null;
|
|
int num2 = 0;
|
|
int num3 = 302081773;
|
|
float num8 = default(float);
|
|
IList<Vector2> vertices = default(IList<Vector2>);
|
|
int num7 = default(int);
|
|
while (true)
|
|
{
|
|
int num4 = num3;
|
|
int num5 = 302081770;
|
|
int num6 = num4;
|
|
switch ((num6 | num5) - (num6 & num5))
|
|
{
|
|
case 3:
|
|
num = num8;
|
|
result = vertices[num7];
|
|
num3 = 302081775;
|
|
break;
|
|
case 6:
|
|
{
|
|
int num9 = num2;
|
|
num5 = 1;
|
|
num6 = num9;
|
|
num2 = (num6 | num5) + (num6 & num5);
|
|
num3 = 302081773;
|
|
break;
|
|
}
|
|
case 8:
|
|
{
|
|
Vector2 value = _mapService.WorldToScreen(vertices[num7].X, vertices[num7].Y, imagePos, imageSizeVec);
|
|
num8 = Vector2.Distance(mouseScreenPos, value);
|
|
num3 = ((!(num8 < num)) ? 302081775 : 302081769);
|
|
break;
|
|
}
|
|
case 10:
|
|
num3 = ((num2 != currentPolyIndex) ? 302081762 : 302081770);
|
|
break;
|
|
case 4:
|
|
num3 = 302081773;
|
|
break;
|
|
case 7:
|
|
num3 = ((num2 < polygons.PolygonCount) ? 302081771 : 302081763);
|
|
break;
|
|
case 1:
|
|
vertices = polygons.GetVertices(num2);
|
|
num7 = 0;
|
|
num3 = 302081768;
|
|
break;
|
|
case 5:
|
|
{
|
|
int num10 = num7;
|
|
num5 = 1;
|
|
num6 = num10;
|
|
num7 = (num6 | num5) + (num6 & num5);
|
|
num3 = 302081768;
|
|
break;
|
|
}
|
|
case 9:
|
|
return result;
|
|
case 0:
|
|
num3 = ((num7 == currentVertexIndex) ? 302081775 : 302081762);
|
|
break;
|
|
case 2:
|
|
num3 = ((num7 < vertices.Count) ? 302081760 : 302081772);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static bool PointInPolygon(Vector2 point, IList<Vector2> verts)
|
|
{
|
|
int num = ((verts.Count >= 3) ? 1302891100 : 1302891101);
|
|
bool flag = default(bool);
|
|
float x2 = default(float);
|
|
int num7 = default(int);
|
|
float y = default(float);
|
|
float x = default(float);
|
|
int index = default(int);
|
|
float y2 = default(float);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1302891097;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 6:
|
|
flag = !flag;
|
|
num = 1302891098;
|
|
break;
|
|
case 7:
|
|
x2 = verts[num7].X;
|
|
y = verts[num7].Y;
|
|
x = verts[index].X;
|
|
y2 = verts[index].Y;
|
|
num = ((y > point.Y == y2 > point.Y) ? 1302891098 : 1302891096);
|
|
break;
|
|
case 0:
|
|
return flag;
|
|
case 1:
|
|
num = ((!(point.X < (x - x2) * (point.Y - y) / (y2 - y) + x2)) ? 1302891098 : 1302891103);
|
|
break;
|
|
case 4:
|
|
return false;
|
|
case 5:
|
|
flag = false;
|
|
num7 = 0;
|
|
index = verts.Count - 1;
|
|
num = 1302891089;
|
|
break;
|
|
case 2:
|
|
num = 1302891101;
|
|
break;
|
|
case 3:
|
|
{
|
|
int num8 = num7;
|
|
num3 = 1;
|
|
num4 = num8;
|
|
int num9 = num4 ^ num3;
|
|
int num10 = num4 & num3;
|
|
num7 = num9 + (num10 + num10);
|
|
index = num8;
|
|
num = 1302891089;
|
|
break;
|
|
}
|
|
case 8:
|
|
num = ((num7 < verts.Count) ? 1302891102 : 1302891097);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static Vector2 ComputeCentroid(IList<Vector2> verts)
|
|
{
|
|
float num = 0f;
|
|
float num2 = 0f;
|
|
int num3 = 0;
|
|
int num4 = 321919645;
|
|
while (true)
|
|
{
|
|
int num5 = num4;
|
|
int num6 = 321919644;
|
|
int num7 = num5;
|
|
int num8 = num7 + num6;
|
|
int num9 = num7 & num6;
|
|
switch (num8 - (num9 + num9))
|
|
{
|
|
case 0:
|
|
num4 = 321919645;
|
|
break;
|
|
case 1:
|
|
num4 = ((num3 < verts.Count) ? 321919646 : 321919647);
|
|
break;
|
|
case 3:
|
|
return new Vector2(num / (float)verts.Count, num2 / (float)verts.Count);
|
|
case 2:
|
|
{
|
|
num += verts[num3].X;
|
|
num2 += verts[num3].Y;
|
|
int num10 = num3;
|
|
num6 = 1;
|
|
num7 = num10;
|
|
num3 = (num7 | num6) + (num7 & num6);
|
|
num4 = 321919645;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
static Vector2 _202A_200B_202A_206D_202C_202C_202E_200C_202D_202E_200C_206D_206F_202A_206B_206E_200E_200F_206F_206A_206A_202B_202C_200F_200D_200F_202D_200F_200B_200C_202C_202D_200D_202C_200B_200D_202A_200B_206D_206B_202E()
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.GetContentRegionAvail();
|
|
}
|
|
|
|
static float _206A_202A_200D_202A_206E_202A_202E_200B_206E_200E_202A_206B_202A_202C_200D_206C_200F_206D_206B_206D_200F_200C_202D_206F_202A_202A_206E_206F_206C_202B_206D_202E_206B_206D_200D_200E_200B_200F_200F_200D_202E(float P_0, float P_1)
|
|
{
|
|
return MathF.Max(P_0, P_1);
|
|
}
|
|
|
|
static bool _206A_202A_202E_206F_202E_200F_200E_202E_206A_206D_206D_202E_200D_202D_206C_202A_200E_202E_206B_202B_200C_202A_206E_200B_206E_202A_206F_206E_202C_200B_200B_202A_206A_206B_202A_206B_202C_202B_202C_202A_202E(ImU8String P_0, Vector2 P_1, bool P_2, ImGuiWindowFlags P_3)
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.BeginChild(P_0, P_1, P_2, P_3);
|
|
}
|
|
|
|
static void _206C_202E_202E_202C_202E_202B_206C_206D_202C_206B_206F_206B_202B_206C_206D_200B_206E_200B_206D_202D_206B_202C_200C_206A_206B_206B_206C_206A_200B_200B_200B_202B_200B_202E_206D_200B_206A_200D_202B_206E_202E()
|
|
{
|
|
Dalamud.Bindings.ImGui.ImGui.EndChild();
|
|
}
|
|
|
|
static Vector2 _200D_206C_202C_202A_200F_200F_200F_200D_202E_202E_200F_206C_200E_200B_206C_200E_206A_202A_202E_200D_202D_200F_200D_202B_200C_206D_200D_202A_202E_202C_202A_202A_206F_202E_200E_200E_202E_200C_206F_206C_202E()
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.GetCursorScreenPos();
|
|
}
|
|
|
|
static bool _206E_200D_206A_202C_202D_206B_202B_206B_202A_206F_200F_206C_206A_202C_200B_202E_200F_206C_202C_202A_200F_202C_206E_206D_202A_206A_200E_202E_200F_200E_206E_206D_202D_202B_206F_206B_200D_200E_206D_206F_202E(ImU8String P_0, Vector2 P_1, ImGuiButtonFlags P_2)
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.InvisibleButton(P_0, P_1, P_2);
|
|
}
|
|
|
|
static bool _200D_200B_206C_202A_202C_206F_200C_202E_200F_202C_202E_200E_202A_202A_206C_200B_206F_200D_202A_206D_202B_202B_202A_206F_206F_206C_202E_206D_202B_200C_206C_206C_200E_200C_206F_202E_206F_206B_200F_200D_202E()
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.IsItemHovered();
|
|
}
|
|
|
|
static void _202B_206C_200F_200F_200D_202C_206D_200C_200B_200D_202A_202D_206F_202B_206E_206C_202B_200D_206D_202E_206A_202A_200B_206B_202B_206E_200C_200C_200D_206C_202D_206A_202B_206F_200D_200F_202C_202B_206D_200E_202E(Vector2 P_0)
|
|
{
|
|
Dalamud.Bindings.ImGui.ImGui.SetCursorScreenPos(P_0);
|
|
}
|
|
|
|
static void _206D_202C_202B_206C_202B_200D_202B_200E_202E_206F_202E_200D_200B_202B_206A_202E_200F_206D_202A_206F_200F_200B_202D_200B_206A_202E_206E_202D_202E_200D_206C_200F_206C_202D_202C_202B_202B_200F_206D_206E_202E(ImU8String P_0)
|
|
{
|
|
Dalamud.Bindings.ImGui.ImGui.TextDisabled(P_0);
|
|
}
|
|
|
|
static ImDrawListPtr _200B_200C_202B_202C_206F_206E_206A_202B_200B_202D_202D_206D_202C_200B_202B_200F_206E_206C_206D_202D_206E_200F_206A_200E_202D_206F_200C_200F_202D_202A_202A_202C_202E_206B_202C_206D_202C_202A_202D_202E_202E()
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.GetWindowDrawList();
|
|
}
|
|
|
|
static ImTextureID _200B_202A_202D_202A_200B_206F_202A_200D_206A_202C_206B_206F_206C_206E_206C_202C_206D_206F_202E_206A_202C_202E_206A_202C_206B_206B_202C_202B_206A_206F_206F_206D_200E_206C_200F_202B_206B_206E_202B_200E_202E(IDalamudTextureWrap P_0)
|
|
{
|
|
return P_0.Handle;
|
|
}
|
|
|
|
static bool _206C_200B_206A_206F_200D_206E_202D_206B_206C_206F_200E_200E_202E_200B_206F_206B_202B_202B_200D_200B_202C_206B_202A_206D_200F_202B_202C_206D_202E_200C_206A_202B_200D_202C_202E_202A_202C_200E_206E_202C_202E(string P_0)
|
|
{
|
|
return string.IsNullOrEmpty(P_0);
|
|
}
|
|
|
|
static Vector2 _206F_202E_202D_206E_200D_200D_202D_206F_206F_206E_202C_202C_202D_200C_206D_202E_206A_200E_200B_200B_202C_202A_200C_200C_200E_202C_200B_206A_206B_202D_202D_206C_200D_202D_200C_202C_206E_202D_202E_206B_202E()
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.GetMousePos();
|
|
}
|
|
|
|
static ImGuiIOPtr _202A_206D_200D_200B_206F_206A_202B_202E_202B_200F_200B_206E_206E_202C_200B_206A_202A_200F_202A_200C_206C_202A_202C_206F_202D_206C_202C_206F_206C_206D_206A_200E_206E_200B_200E_202B_206A_200E_202C_202D_202E()
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.GetIO();
|
|
}
|
|
|
|
static float _206F_200F_206B_200F_200D_200F_202C_202A_206A_200B_200C_206E_206B_206C_200F_200D_206C_200B_202B_200D_200C_206F_206B_206E_200B_206E_206E_206E_206C_202C_200C_200E_202C_202B_200D_206E_200B_200D_206C_202E_202E(float P_0)
|
|
{
|
|
return MathF.Abs(P_0);
|
|
}
|
|
|
|
static float _202A_206A_206F_206A_202E_200B_202C_206A_200B_206F_206D_202B_202D_206D_202C_202D_206D_200D_200B_200E_200D_206A_202E_200D_200D_202B_206A_202C_206F_200E_200D_202A_206F_206D_206B_202C_202E_206B_206D_206D_202E(float P_0, float P_1)
|
|
{
|
|
return MathF.Min(P_0, P_1);
|
|
}
|
|
|
|
static bool _202D_200B_206D_200B_206C_200D_206E_202C_200F_206A_200C_202C_202A_206B_206D_202D_206B_200C_206F_206B_200D_202C_206D_206A_200B_202D_200F_206E_202D_202C_200E_202D_202E_202B_206D_202A_202B_202C_206E_202C_202E(ImGuiMouseButton P_0)
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.IsMouseDown(P_0);
|
|
}
|
|
|
|
static bool _202E_202A_206A_200F_200E_206A_202D_202E_200E_202E_206A_206E_200B_200D_200B_202C_200C_206A_202E_206E_200E_202E_200F_202B_200E_202B_202E_206E_206B_202D_202D_200C_202A_206D_206B_206F_200E_200D_206E_202D_202E(ImGuiMouseButton P_0)
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.IsMouseClicked(P_0);
|
|
}
|
|
|
|
static bool _202B_206C_206A_200D_202D_206B_200D_206C_206C_200B_206F_200B_206B_202C_202E_202D_206E_200C_206B_206E_202E_206E_206A_206F_202A_202D_202C_200D_202E_200F_206B_202E_200F_206A_206E_202B_200E_206C_202D_202E_202E(ImGuiMouseButton P_0)
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.IsMouseReleased(P_0);
|
|
}
|
|
|
|
static bool _206A_200C_206A_206E_200E_200F_202B_206A_206E_206C_206A_202B_202B_200C_200F_200B_202A_206F_206F_200F_206E_200D_206F_200C_200C_206A_200B_200F_206C_202B_200D_202B_202E_202B_200F_202C_202B_200D_202C_202D_202E(ImGuiKey P_0)
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.IsKeyPressed(P_0);
|
|
}
|
|
|
|
static bool _200D_202D_206D_202D_206B_206A_206F_202D_206C_202C_206C_206B_206D_206C_206E_200C_202A_206B_202A_202D_206B_202C_200D_200D_202A_200D_200D_206C_200C_200E_206C_200C_200C_206D_206B_206C_202A_200C_200D_206E_202E(ImGuiMouseButton P_0)
|
|
{
|
|
return Dalamud.Bindings.ImGui.ImGui.IsMouseDoubleClicked(P_0);
|
|
}
|
|
}
|