* Use new Lock objects
* Fix CA1513: Use ObjectDisposedException.ThrowIf
* Fix CA1860: Avoid using 'Enumerable.Any()' extension method
* Fix IDE0028: Use collection initializers or expressions
* Fix CA2263: Prefer generic overload when type is known
* Fix CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
* Fix IDE0270: Null check can be simplified
* Fix IDE0280: Use 'nameof'
* Fix IDE0009: Add '.this'
* Fix IDE0007: Use 'var' instead of explicit type
* Fix IDE0062: Make local function static
* Fix CA1859: Use concrete types when possible for improved performance
* Fix IDE0066: Use switch expression
Only applied to where it doesn't look horrendous.
* Use is over switch
* Fix CA1847: Use String.Contains(char) instead of String.Contains(string) with single characters
* Fix SYSLIB1045: Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.
* Fix CA1866: Use 'string.EndsWith(char)' instead of 'string.EndsWith(string)' when you have a string with a single char
* Fix IDE0057: Substring can be simplified
* Fix IDE0059: Remove unnecessary value assignment
* Fix CA1510: Use ArgumentNullException throw helper
* Fix IDE0300: Use collection expression for array
* Fix IDE0250: Struct can be made 'readonly'
* Fix IDE0018: Inline variable declaration
* Fix CA1850: Prefer static HashData method over ComputeHash
* Fi CA1872: Prefer 'Convert.ToHexString' and 'Convert.ToHexStringLower' over call chains based on 'BitConverter.ToString'
* Update ModuleLog instantiations
* Organize usings
* Remove unused code from ChatHandlers
* Replace sigs in DalamudAtkTweaks
* Resolve LocalContentId by using PlayerState.ContentId
* Resolve BuddyList address via UIState.Buddy
* Resolve ObjectTable address via GameObjectManager
* Resolve FateTable address via FateManager
* Resolve GroupManager address via GroupManager
* Resolve JobGauges address via JobGaugeManager.CurrentGauge
* Simplify ItemHover/Out event
* Resolve ToggleUiHide address via RaptureAtkModule.SetUiVisibility
* Resolve PopulateItemLinkObject via InventoryItem.Copy
* Add byte[].AsPointer extension
* Resolve addresses used by ToastGui via UIModule functions
* Use Length from Span as ObjectTableLength
* Replace OpenMapWithMapLink with CS call
* Resolve FrameworkAddressResolver with CS vtable
* Drop unnecessary ToArray in HandlePrintMessage
* Clean up event calls in HandlePrintMessageDetour
* Simplify LocalContentId further
This pointer can't be null, because it's part of the .data section.
* Compare SeStrings in FlyTextGui with SequenceEqual
* Use CS types in FlyTextGuis internal code
* Simplify reading SeStrings internally
* Remove AsPointer again
* Resolve Number/StringArray by type in NamePlateGui
* Fix crashes in HandlePrintMessageDetour
* Resolve InteractableLinkClicked with LogViewer.HandleLinkClick
* Describe memory address when printed in log/debug utilities
* PresentDetour: Compare against game's internal copy of IDXGISwapChain
* Handle ReShade on_present function signature properly
* wip
* hacky fix for overlapping event text in profiler
* move IsResumeGameAfterPluginLoad logic to PluginManager
* fix some warnings
* handle exceptions properly
* remove ability to cancel, rename button to "hide" instead
* undo Dalamud.Service refactor for now
* warnings
* add explainer, show which plugins are still loading
* add some text if loading takes more than 3 minutes
* undo wrong CS merge