From fe6e9dfe5ca73b759dc074e63454fc52369ca1f0 Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Thu, 28 Dec 2023 18:16:58 -0800 Subject: [PATCH] fix: Adds required changes for Advanced Search feature (#1650) --- Projects/Server/Regions/Region.cs | 11 ++++++++--- .../Server/Text/InsensitiveStringHelpers.cs | 6 +++++- Projects/UOContent/Gumps/WarningGump.cs | 17 +---------------- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/Projects/Server/Regions/Region.cs b/Projects/Server/Regions/Region.cs index f1999ad6f..b4fd0e5b1 100644 --- a/Projects/Server/Regions/Region.cs +++ b/Projects/Server/Regions/Region.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Runtime.CompilerServices; using System.Text.Json.Serialization; using Server.Collections; using Server.Json; @@ -510,7 +511,7 @@ public class Region : IComparable, IValueLinkListNode return null; } - public Region GetRegion(string regionName) + public Region GetRegion(string regionName, bool caseSensitive = true) { if (regionName == null) { @@ -518,10 +519,11 @@ public class Region : IComparable, IValueLinkListNode } var r = this; + var comparisonType = caseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase; do { - if (r.Name == regionName) + if (string.Equals(r.Name, regionName, comparisonType)) { return r; } @@ -532,11 +534,14 @@ public class Region : IComparable, IValueLinkListNode return null; } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool IsPartOf() where T : Region => GetRegion() != null; + [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool IsPartOf(Region region) => this == region || IsChildOf(region); - public bool IsPartOf(string regionName) => GetRegion(regionName) != null; + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public bool IsPartOf(string regionName, bool caseSensitive = false) => GetRegion(regionName, caseSensitive) != null; public virtual bool AcceptsSpawnsFrom(Region region) => AllowSpawn() && (region == this || Parent?.AcceptsSpawnsFrom(region) == true); diff --git a/Projects/Server/Text/InsensitiveStringHelpers.cs b/Projects/Server/Text/InsensitiveStringHelpers.cs index da897821d..b4dfad590 100644 --- a/Projects/Server/Text/InsensitiveStringHelpers.cs +++ b/Projects/Server/Text/InsensitiveStringHelpers.cs @@ -28,9 +28,13 @@ public static class InsensitiveStringHelpers public static int InsensitiveCompare(this string a, string b) => string.Compare(a, b, StringComparison.OrdinalIgnoreCase); [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool InsensitiveEquals(this ReadOnlySpan a, string b) => + public static bool InsensitiveEquals(this ReadOnlySpan a, ReadOnlySpan b) => a.Equals(b, StringComparison.OrdinalIgnoreCase); + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static bool InsensitiveEquals(this string a, ReadOnlySpan b) => + a?.AsSpan().Equals(b, StringComparison.OrdinalIgnoreCase) ?? false; + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static bool InsensitiveEquals(this string a, string b) => a?.Equals(b, StringComparison.OrdinalIgnoreCase) ?? b == null; diff --git a/Projects/UOContent/Gumps/WarningGump.cs b/Projects/UOContent/Gumps/WarningGump.cs index 3217bcdf9..c1b491ba5 100644 --- a/Projects/UOContent/Gumps/WarningGump.cs +++ b/Projects/UOContent/Gumps/WarningGump.cs @@ -61,21 +61,6 @@ namespace Server.Gumps } } - public override void OnResponse(NetState sender, RelayInfo info) - { - if (m_Callback == null) - { - return; - } - - if (info.ButtonID == 1) - { - m_Callback(true); - } - else - { - m_Callback(false); - } - } + public override void OnResponse(NetState sender, RelayInfo info) => m_Callback?.Invoke(info.ButtonID == 1); } }