Repository navigation
Protect and recover Kirshara queues after target or address changes - #287
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.
There was a problem hiding this comment.
This only clears the mod's pending recovery tracking, so stale tracking doesn't carry across an off/on toggle. It leaves the game's target queue untouched, allowing existing targets to finish. I’ve renamed the helper and added comments to make that distinction clearer.
I'll dive in on a follow-up, if there's issues, when I have time to thoroughly test various scenarios around toggling queueing while the queue is running and how that impacts the mod's work.
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.
One default-on setting enables the supported protections together:
Setting
kirshara_fixes = falsedisables the combined behavior. The previous separate feature keys are ignored; legacy-only configurations receive a startup warning. Hook-install compatibility switches remain independent. Toggle Queue resets only the mod's pending response tracking; it never clears the native target queue.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. Recovery/pruning support compatible Windows x64 clients; the address guard also has shared macOS code. The obsolete combat-completion repair remains retired.
Validation at
07a98a21: Windows release build, all three local queue suites and all 11 example TOML parses pass. Static entry-fit checks cover all 11 detour targets on the matching installed Windows client 272. Earlier address-guard gameplay controls passed on a prior downstream artifact; they do not qualify this candidate.Fresh gameplay testing of this artifact and macOS native fit/runtime remain open. The focused smoke covers normal queued combat, outstanding-target removal and next-target handoff, queue clear/rebuild, off/on toggle, restart, A's queue surviving B's move/recall, and A's own recall clearing normally. macOS testers should use the exact PR artifact for their architecture and run the address controls. Delayed same-target course responses still lack a server request ID. Windows, Mac ARM64, Mac x86_64, universal Mac packaging and example-config CI all pass for this head.