Repository navigation
Protect and recover Kirshara queues after target or address changes - #287
Guffawaffle wants to merge 14 commits into
Conversation
|
This isn't working as well as my previous implementation on my personal branch. Moving back to draft until I figure it out. |
1e4d2bf to
46f144d
Compare
|
This is now gloriously effective for me in group waves. |
# Conflicts: # .github/workflows/ci.yaml # xmake.lua
|
Hook/feature alignment follow-up for #313 Follow-up to #313: keep hook installation independent of feature enablement, with default-enabled compatibility switches under
Published c60b6f8: independent default-enabled queue hook switches, current runtime eligibility, disabled/toggle pending-request invalidation and full-family guards. Removed the unused feature-derived installation helper/assertions. Windows build at ff75bb5 passed; both policy suites reran after the final deletion-only delta, all 11 TOMLs passed, and three independent lanes reviewed full PR plus correction. Seven Windows270 static fits pass. Exact-artifact wave/toggle/partial-install execution remains unqualified; delayed same-target responses retain the documented request-ID limitation. New CI is queued; moving on without waiting. |
# Conflicts: # example_community_patch_settings_en.toml # mods/src/config.cc # mods/src/config.h # mods/src/defaultconfig.h # mods/src/patches/patches.cc
|
|
||
| if ((MapKey::IsDown(GameFunction::ToggleQueue))) { | ||
| config->queue_enabled = !config->queue_enabled; | ||
| ClearActionQueueRecoveryRequests(); |
There was a problem hiding this comment.
So this would appear to empty the queue as soon as you disable the queuing system. However, some people may have hit that by mistake and/or actually want the queued to finish processing.
| bool faster_queue_recovery; | ||
| bool thin_queue_protection; | ||
| bool queue_address_guard; |
There was a problem hiding this comment.
Is there a purpose to having three hook methods? Would not all these be desired to be enabled together?
Kir'Shara queues can stall after queued targets disappear, or clear when another ship moves or recalls and native player-state handling temporarily reports the queued ship's starbase address. The address failure was reproduced with the mod DLL disabled.
Provides three independently configurable protections:
The address guard changes no fleet fields or queue contents and adds no polling. Explicit clearing, recalling the queued ship and genuine address mismatches retain native behavior. Hook-install switches are independent of runtime feature settings. Recovery/pruning support compatible Windows x64 clients; the address guard also has shared macOS code. The obsolete combat-completion repair remains retired.
Refreshed against current dev. Validation: Windows release build, all three local queue suites and all 11 example TOMLs pass. Static hook-fit checks cover all 11 detour targets on the matching installed Windows client 271. The earlier clean downstream build containing the identical address guard passed both gameplay controls: A's queue survived B's other-system move/recall and next engagement; recalling A cleared it normally.
Current refreshed-artifact gameplay and macOS native fit/runtime remain unverified. Delayed same-target course responses still lack a server request ID. CI results for the refreshed head are pending.