Commit graph

143 commits

Author SHA1 Message Date
srkizer
70af62885b
chore: remove [Experimental] from SeStringRenderer (#2144)
It hasn't caused problem for a while (though performance probably can be
better), and looks good enough to remove this attribute.
2024-12-17 07:31:44 -08:00
srkizer
d19b7d70d5
Move UtfEnumerator from Dalamud to Lumina (#2111)
* Move UtfEnumerator from Dalamud to Lumina

Comes with some trivial cleanups.

* Update Lumina to 5.5.0
2024-11-20 09:32:49 -08:00
Haselnussbomber
52e8fca7f1
Add InventoryWidget (#2097)
* Add InventoryWidget

* Update InventoryWidget

- Use GameInventoryItem.GetReadOnlySpanOfInventory
- Display Stains
- Display Materia

* Display CrafterContentId in InventoryWidget

* Fix display of HQ items in InventoryWidget

Also removes the Base ItemId, because Dalamud doesn't apply flags.

* Make columns Itemid and Quantity copyable
2024-11-16 17:50:58 -08:00
nebel
abcb99d4ec
Add support for boxed outlined numbers in SeIconChar (#2088) 2024-11-16 00:34:49 +00:00
Kaz Wolfe
fd6d52d33b
Extend IconBrowserWidget range
Resolves #2074.

Co-authored-by: ItsBexy <103910869+itsbexy@users.noreply.github.com>
2024-11-12 20:24:20 -08:00
Haselnussbomber
c0f05614c6
[api11] Some code cleanup and signature replacements (#2066)
* 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
2024-11-12 08:20:29 -08:00
Kaz Wolfe
720b1676e5
Merge branch 'master' into api11
# Conflicts:
#	Dalamud/Game/ClientState/Fates/Fate.cs
#	Dalamud/Game/Gui/NamePlate/NamePlateUpdateContext.cs
#	Dalamud/Interface/Internal/DalamudInterface.cs
#	Dalamud/Interface/Windowing/Window.cs
#	Dalamud/Utility/StringExtensions.cs
#	lib/FFXIVClientStructs
2024-11-11 08:38:20 -08:00
wolfcomp
30d56e4d11
fix all warnings and breaking changes for CS (#2061) 2024-11-04 21:14:51 -08:00
Asriel Camora
0b9af0e3f4
Update to Lumina 5 (new Excel parsing) (#2022)
* 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
2024-10-20 19:59:03 -07:00
ItsBexy
552aafd70d Misc UiDebug2 Fixes
- The widget will now only check the `FFXIVClientStructs` assembly for addon type information.
- Updated ImRaii usage
- Clarified suppression in `NodeTree.Text.cs`
- Restored the original Addon Inspector in the Data window, so that both versions can coexist for the time being
2024-10-17 10:52:22 -06:00
ItsBexy
bf8690fc60 Update Addon Inspector
This updates the Addon Inspector with lots of new features and functionality.

- Features from Caraxi's fork of UiDebug have been incorporated, such as the Element Selector UI and address search.
- Any addon or node can now pop out into its own window.
- Revised the visual style of node field/property information.
- Color values are now visually displayed.
- Any nodes or components that are referenced by fields within the addon will now show that field name in the inspector.
- Added editors for nodes, allowing complete control over most of their properties.
- Improved texture display for Image nodes (and Image node variant types). The active part of the texture is now highlighted, and the boundaries of other parts can be shown via mouseover.
- Highlighting of node bounds onscreen is now more accurate, factoring in rotation (including when using the Element Selector).
- Display of animation timelines has been revamped, showing a table of keyframes for each animation.

A standalone SamplePlugin-based version is available here: https://github.com/ItsBexy/UiDebug2
2024-09-02 21:01:49 -06:00
nebel
7a45fb05e3
Cache DalamudAssetAttribute lookups (#2014) 2024-08-17 11:05:15 +02:00
srkizer
ecf8e323c4
Misc fixes (#2013) 2024-08-15 15:22:33 +02:00
srkizer
cddad72066
Add error handlings for UldWidget (#2011)
* Add error handlings for UldWidget

* fixes
2024-08-13 08:45:00 -07:00
wolfcomp
ae4c561e09
Add an ULD display to data window (#1938)
* prelim uld data display
* change uld list to a string array
* fix some uld parts not having their texture id set.
* update uld browser to use themes and get locations from sig scanning
* undo ClientStructs change during rebase
* fix capitalization during rebase
2024-08-12 13:36:31 -07:00
srkizer
018524fb8f
Fix UIColor layout (#1998)
* Fix UIColor layout

* Handle <color(0)> correctly
2024-08-06 22:31:24 +02:00
srkizer
694b42a378
Fix UIColor handling per theme (#1995)
UIColor sheet has color sets per theme. Updated `UIColorWidget` to
reflect that, and added `SeStringDrawParams.ThemeIndex` to let users
choose which theme color set to use while drawing SeString from Dalamud.
2024-08-04 17:46:05 +02:00
srkizer
878b96e67d
SeString renderer: Implement replacement entity (#1993)
* Refactor

* Implement replacement entity

* Apply rounding functions more correctly
2024-08-04 13:30:49 +02:00
srkizer
c721069b08
Fix scoped in and mark experimental (#1990) 2024-08-01 18:23:42 +00:00
srkizer
b6eb18d550
SeString renderer: fix colors, add link support (#1983)
* 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
2024-08-01 10:36:11 -07:00
Haselnussbomber
5fdd88b488
Update AtkArrayDataBrowserWidget (#1987) 2024-08-01 10:32:41 -07:00
Haselnussbomber
731c0b7c6d
Rework FateTableWidget (#1988)
* Rework FateTableWidget

* Maybe better FateTable column order

* Add Icon, MapIcon and Radius column
2024-08-01 10:32:12 -07:00
Haselnussbomber
a5fa109afa
Rework AtkArrayDataBrowserWidget (#1986)
Co-authored-by: KazWolfe <KazWolfe@users.noreply.github.com>
2024-07-30 09:19:07 -07:00
srkizer
844b04faad
Implement SeString renderer (#1977)
Does not have contextual evaluation. Only styling payloads are handled for (relative) simplicity.
2024-07-28 15:36:04 +02:00
srkizer
c25f13261d
Make DtrBar more threadsafe (#1978)
* 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.
2024-07-28 14:14:37 +02:00
goat
604d1b2e85 ipc: add custom serializer for IGameObject
fixes #1924
2024-07-18 23:08:37 +02:00
srkizer
1109e64552
Describe address for debugging, change PresentDetour viewport handling (#1943)
* 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
2024-07-18 21:28:25 +02:00
NostraThomas99
9d9326fd6d
Add support for PCT and VPR to Dalamud.Game.ClientState.JobGauge (#1890)
Added PCTGauge and VPRGauge to the job gauge definitions. Also updated JobGauge widget to support VPR and PCT.
2024-07-05 10:28:24 +02:00
srkizer
7a90921358
ISIT: remove api9 compat, IDAM: make Empty4X4 transparent (#1877)
* Remove api9 compat from texture stuff

* Make Empty4X4 actually transparent
2024-07-03 18:51:23 +02:00
Infi
3e950b09fe
Update MarketBoard related packet structs (#1868)
* Update MarketBoardHistory

* Update MarketBoardCurrentOfferings

* small fix

* Update other structs & update widget

* Mark obsolete fields as internal
2024-06-30 00:18:47 +02:00
goat
1d1b60b011 api10 todo: move IDalamudTextureWrap to Dalamud.Interface.Textures.TextureWraps 2024-06-29 00:45:16 +02:00
Blair
7947b896ea
Add interfaces to non public/sealed classes referenced in public interfaces (#1808)
* 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>
2024-06-28 23:05:34 +02:00
KazWolfe
c6b2f0d322
AddonLifecycle Performance Enhancement (#1834)
Co-authored-by: MidoriKami <9083275+midorikami@users.noreply.github.com>
2024-06-21 17:36:56 -07:00
Kaz Wolfe
28ff62e488
fix errors/warnings 2024-06-16 16:45:18 -07:00
Blair
e160746d42
Add MarketBoard service and associated interfaces, test and data widget (#1822)
* Add MarketBoard service and associated interfaces, test and data widget
* Dispose of events properly
* Make listings readonly lists + provide internal list for internal use
* Rename CatalogId to ItemId on interfaces, have kept CatalogId internally as it's technically correct
* Removed RetainerOwnerId from the public interface
* Removed NextCatalogId from the public interface
* Updated test text
* Null events in scoped service disposal
2024-06-16 10:40:48 -07:00
github-actions[bot]
4e331b1d85 Merge remote-tracking branch 'origin/master' into apiX-rollup 2024-06-08 23:34:08 +00:00
goat
31e541fae5 deps: upgrade StyleCop, fix warnings
...fixes new array initializer expression
2024-06-07 21:19:16 +02:00
Soreepeong
e2ea30c2fb Add TODO for PluginStats 2024-06-05 00:13:16 +09:00
Soreepeong
6d8102dc79 Move ShowTextureSaveMenuAsync to its own class 2024-06-05 00:08:05 +09:00
Soreepeong
0d7c0a0375 Merge remote-tracking branch 'upstream/apiX' into feature/itextureprovider-updates 2024-06-04 23:54:38 +09:00
aers
479049b78d
[apiX] dalamud fixes for CS updates (#1821)
* update CS & fix compilation issues

* update CS to latest commit

* update CS & change battlechara

* more CS updates and compilation fixes

* one last cs update
2024-06-03 12:49:44 -07:00
Kaz Wolfe
8d5f2bdf51
Disambiguate ObjectId to GameObjectId and EntityId 2024-06-03 11:19:39 -07:00
aers
d823db7930
[apiX] first pass update for new clientstructs (#1818)
* first pass update for new clientstructs

* track latest clientstructs & fix compilation errors

* fix GameInventory hook bug
rename Appartment
2024-05-31 09:09:28 -07:00
Soreepeong
20717cce3d more 2024-05-21 09:27:51 +09:00
Soreepeong
8c7771bf7d Merge branch 'apiX' into feature/itextureprovider-updates 2024-05-12 22:17:32 +09:00
Kaz Wolfe
b32ed39826
Merge branch 'refs/heads/master' into apiX
# Conflicts:
#	Dalamud/Game/Libc/LibcFunction.cs
#	Dalamud/Game/Libc/LibcFunctionAddressResolver.cs
#	Dalamud/Game/Libc/OwnedStdString.cs
#	Dalamud/Game/Libc/StdString.cs
#	Dalamud/Interface/UiBuilder.cs
2024-04-28 11:54:54 -07:00
goat
448b0d16ea
Add "loading dialog" for service init, unify blocking logic (#1779)
* 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
2024-04-21 17:28:37 +02:00
srkizer
bd2c9b2258
Apply most of Api10ToDo (#1782) 2024-04-20 23:25:33 -07:00
goat
0d7c8f1bd2 add fixed-width font option to icon test widget 2024-04-15 00:45:01 +02:00
Soreepeong
9eb4584896 Fix ServicesWidget layout 2024-04-07 21:59:47 +09:00