Commit graph

262 commits

Author SHA1 Message Date
goaaats
4c3ba35f07 Don't inhibit ATK close events if pinned or clickthrough windows are focused 2025-11-27 01:45:13 +01:00
Kaz Wolfe
fe163fbb97
fix: some minor IDE complaints 2025-11-11 08:28:14 -08:00
Haselnussbomber
4a869bad3f
Use Luminas SeStringBuilder in DalamudAtkTweaks 2025-10-08 03:41:34 +02:00
Haselnussbomber
a776358b96
Completion rewrite (#2305) 2025-08-03 18:13:45 -07:00
salanth357
e2609bbe0c
Improve performance in the Completion module (#2288)
Only resort the data entries when we modify the lists. Also use EncodeWithNullTerminator to ensure the safety of strings.

Also avoid parsing the category names when we're only looking for the presence of the Dalamud category
2025-05-31 13:24:28 +02:00
goaaats
bf0dbde55f Completion: Don't create Utf8String before the game has initialized 2025-05-29 21:08:03 +02:00
salanth357
84d121c7bc
Add Completion module (#2274)
* Add Completion module

Dalamud and plugin commands will now be tab-completable in the ChatLog

* PR feedback

---------

Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2025-05-29 18:24:21 +00:00
Haselnussbomber
33605e3ace
Move AntiDebug to xivfixes (#2264)
* Move AntiDebug to xivfixes

* Update BootEnabledGameFixes

* Check BootEnabledGameFixes

* Apply suggestions from code review

Co-authored-by: KazWolfe <KazWolfe@users.noreply.github.com>

---------

Co-authored-by: KazWolfe <KazWolfe@users.noreply.github.com>
2025-05-09 13:53:44 -07:00
Kaz Wolfe
67561af32f
fix: Lumina updates 2025-03-25 09:28:57 -07:00
KazWolfe
097f85eff6
Move more things to ClientStructs (#2080)
* GameGui uses CS methods now

Co-authored-by: Infi <infiziert@protonmail.ch>

* Shove even more things over to CS

* Clean up NetworkHandlers too

* bump cs so things build at least

---------

Co-authored-by: Infi <infiziert@protonmail.ch>
2024-11-14 08:29:28 -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
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
goat
a8a336009b don't override present if we didn't actually find anything 2024-07-07 00:33:16 +02:00
goat
934fc6c948 improve reshade no-addon support 2024-07-07 00:22:09 +02:00
KazWolfe
4a3e6df89e
fix: Don't let a debugger crash Bink (#1892)
Resolves a problem where attaching a debugger can cause Bink to throw an exception, crashing the game.
2024-07-04 12:03:09 +02:00
Kurochi51
87de538bf7
Use function start signature instead of function call (#1878) 2024-07-02 16:45:40 +02:00
Kaz Wolfe
7a1e1cd3dc
YET ANOTHER reshade sig bump.
Getting real tired of this.
2024-06-30 14:37:10 -07:00
Kaz Wolfe
bc16bd7835
fix reshade sig for ReShade 5 as well 2024-06-30 14:19:21 -07:00
Kaz Wolfe
9472a315df
doc reshade changes 2024-06-30 13:48:57 -07:00
Kaz Wolfe
3a2bed3490
new reshade sig 2024-06-30 13:46:23 -07:00
Aireil
a20349cb23
fix anti debug (#1867) 2024-06-29 11:32:06 +02:00
Kaz Wolfe
d0ced2ed63
fix esc menu 2024-06-28 08:40:49 -07:00
Kaz Wolfe
dc7e6dcbc0
first pass sig replacements 2024-06-26 09:19:57 -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
87b9edb448
Add IInternal/PublicDisposableService (#1696)
* 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>
2024-03-16 15:58:05 +00:00
srkizer
6497c62622
Change MemoryHelper to allocate less (#1657)
* Change MemoryHelper to allocate less

* Use StringBuilder pool for ReadSeStringAsString

* fix

* Use CreateReadOnlySpanFromNullTerminated where possible
2024-02-16 17:16:21 +01:00
srkizer
a0f4baf8fa
Less footguns in service dependency handling (#1560) 2023-12-06 21:29:46 -08:00
goat
9187a100da
fix: use correct installer group IDs 2023-10-27 12:21:10 +02:00
goat
9875a7ea31
feat: allow configuring the default page the installer opens to 2023-10-25 17:32:42 +02:00
goat
db5b9d1b83
fix: BaseAddressResolver should take a ISigScanner instead 2023-10-05 23:15:34 +02:00
goat
ebabb7bd04
chore: make SigScanner public, have separate service TargetSigScanner that resolves via ISigScanner (closes #1426) 2023-09-24 01:49:34 +02:00
MidoriKami
9181e11195 Remove Obsoletes 2023-09-21 23:59:04 -07:00
goat
5809cf5d7c
chore: make all services with interfaces internal 2023-09-17 21:09:00 +02:00
KazWolfe
dd1586d5d6
6.4 Patch Rollup (#1206)
Fix Dalamud for 6.4, hopefully.
2023-05-23 18:41:59 +00:00
goat
ca9f932213
fix: only hook reshade swapchain funcs if it's actually reshade 2023-03-26 01:31:57 +01:00
goat
2d1caeb8b0
fix: only pick new sig for GShade 4.X 2022-12-26 15:02:07 +01:00
NotNite
b41554ea74
Fix runtime_present for ReShade 5/GShade 4 2022-12-20 13:45:33 -05:00
goat
7f4ae65ae1
too soon 2022-11-01 19:54:21 +01:00
goat
9c16359914
feat: batch config saves 2022-11-01 19:44:57 +01:00
goat
987ff8dc8f
chore: convert Dalamud to file-scoped namespaces 2022-10-29 15:23:22 +02:00
goat
b093323acc
chore: warnings pass 2022-10-29 15:19:52 +02:00
Aireil
3d8b410571
chore: avoid unused directive (#965) 2022-08-23 14:03:37 +02:00
Aireil
7c9b4fcd2a
fix: missing directive (#964) 2022-08-21 19:06:52 +02:00
goat
3f76a70425
chore: always respect the manifest name 2022-08-21 15:41:53 +02:00
goat
e05b9e20f8
chore: remove Dalamud ContextMenu API
...to open up the chance for someone else to redo it in the future
2022-08-17 20:48:15 +02:00
Aireil
c07780c5ff
fix: add using back to AntiDebug (#908) 2022-07-05 21:25:56 +02:00
goat
ba5f3eae3b
refactor: remove unused usings 2022-07-03 17:09:52 +02:00
kizer
716736f022
Improvements (#903) 2022-06-29 11:51:40 +02:00
kizer
3369f569fb
Add call-on-services-ready attribute for service methods, and fix scene nullability (#900) 2022-06-26 18:49:34 +02:00
goaaats
19eb54cd78
fix: call Enable() on DalamudAtkTweaks 2022-06-24 23:57:01 +02:00