- Further ImRaii safety in UiDebug2
- Set some mistakenly internal methods in ImGuiComponents to public
- Added SpanFullWidth flag to trees in Util.ShowStruct
- Now prints field offsets, if/when they are defined.
- Fixed a bug wherein Boolean fields were being printed with incorrect values (now tries reading the value as a byte, which seems to do the trick)
* Refactor and upgrade to new excel design
* Obsolete ExcelResolver<T> and use only RowRef<T>
* Better benchmarking for Lumina
* Add custom game-supported RSV provider
* Refactor and move Lazy<T> and nullable/cached row objects to RowRefs
* Convert IRSVProvider to delegate, resolve strings by default
* Split IExcelRow into IExcelSubrow
* Extra lumina documentation
* Minor RSV CS fixes
* Fix UIGlowPayload warning
* Fix rebase
* Update to Lumina 5
No longer requires hook and main thread requirements on compiling macro
strings.
Needs lookup table fixing on Lumina; using reflection to fix for the
time being.
ServiceScope.Dispose was not waiting for scoped services to complete
disposing. This had an effect of letting a new plugin instance register
a DtrBar entry before previous plugin instance's entry got unregistered.
This change also cleans up unloading procedure in LocalPlugin.
* Add coloring options
* Add link support
* simplify
* fixes
* Prevent EncodeString from causing crashes
* Fix link range application and add link example
* Fix test widget
* Make DalamudLinkPayload backward compatible
* make it better to use
* make it better to use
* Mark SeString rendering functions experimental via comments
* rename
* Simplify
* Make sestring draw functions take in draw params
* Improvements
* Changed DtrBar to use ReaderWriterLockSlim so that there exists only one storage of entries, preventing possible desync.
* DtrBarEntry will now hold a reference to the LocalPlugin that created the entry, so that DtrBarPluginScoped can defer plugin related handling to the main service.
* Marked DtrBarEntry class itself to be turned internal in API 11.
* Made IDtrBar.Entries return an immutable copy of underlying list of DtrBar entries, that will be freshly created whenever the list changes.
* 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
* Add interfaces to non public/sealed classes referenced in public interfaces
* Fixed inheritdocs + made most classes internal
* Add missing properties to IFate and Fate, fix documentation
---------
Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
* feat: add /xlcopylog command
Add a command to copy the dalamud.log file to the user's
clipboard, behaving the same as copying the file in an
Explorer window.
* chore: fix clientstructs submodule
* fix: dispose hGlobal if it's unused
* refactor: move file copier to util class
* FIx RGB returning wrong color and change it to RGBA
* Don't use the old RGB variable
* Fix UIGlowPayload too
* Add RGBA to ABGR helper and new method for glow/foreground to expose it directly
* Move from Utils to ColorHelpers
* Rename the function
* 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
* feat: Add new `.GetMapCoordinates` extension method
- Used to easily resolve player-friendly map coordinates for any GameObject.
* feat: Add MapID to ClientState
- Provides easy access to the player's current map ID
When Reduced Motion configuration is on, the expiry progressbar is
removed, and instead a pie on top right is shown, and relative time
update interval increases to 15 seconds. Progress wave animation also is
suppressed.
* Add IInternal/PublicDisposableService
Plugins are exposed interfaces that are not inherited from
`IDisposable`, but services implementing plugin interfaces often
implement `IDisposable`. Some plugins may try to call
`IDisposable.Dispose` on everything provided, and it also is possible to
use `using` clause too eagerly while working on Dalamud itself, such as
writing `using var smth = await Service<SomeService>.GetAsync();`. Such
behaviors often lead to a difficult-to-debug errors, and making those
services either not an `IDisposable` or making `IDisposable.Dispose` do
nothing if the object has been loaded would prevent such errors. As
`ServiceManager` must be the only class dealing with construction and
disposal of services, `IInternalDisposableService` has been added to
limit who can dispose the object. `IPublicDisposableService` also has
been added to classes that can be constructed and accessed directly by
plugins; for those, `Dispose` will be ignored if the instance is a
service instance, and only `DisposeService` will respond.
In addition, `DalamudPluginInterface` and `UiBuilder` also have been
changed so that their `IDisposable.Dispose` no longer respond, and
instead, internal functions have been added to only allow disposal from
Dalamud.
* Cleanup
* Postmerge fixes
* More explanation on RunOnFrameworkThread(ClearHooks)
* Mark ReliableFileStorage public ctor obsolete
---------
Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>