Repository navigation
Align downstream settings with upstream PR 333 - #368
Merged
Merged
Conversation
…287) * Guard existing IL2CPP class lookup when metadata is unavailable * Recover stalled queues through guarded native planner paths * Complete queue config examples and reuse class lookup helper * Separate queue hook installation from runtime recovery preferences * Remove obsolete feature-derived queue installation helper * Name queue compatibility checks and failed detours * Keep missing queue field types safe while logging * Protect Kirshara queues from another ship changing the reported address * Enable Kirshara protections together with one default-on setting
* feat: hide player title rows in chat messages - hook UserProfileWidget.UpdatePlayerTitle and the PlayerTitleWidget bind paths (SetWidgetData, OnDidBindContext), clearing the title row only when the profile widget belongs to a chat message and ui.show_player_title is disabled - validate native method extents on macOS before detouring the small bind wrappers: LC_FUNCTION_STARTS extent lookup plus a bounded instruction preflight via the new spud::has_detour_prologue (spud bumped to v0.2.0-4), following a direct branch to a downstream thunk when the entry does not fit; targets that fail validation are skipped - add ui.show_player_title (default true) and the emergency patches.chattitledisplayhooks toggle (default true); document both in the English example config * fix: consolidate duplicate chat title detour targets Opening chat crashed with SIGBUS: SetWidgetData and OnDidBindContext are 4-byte IL2CPP thunks that resolve through direct branches to one shared native implementation, and the patch installed two SPUD detours on that address. The second detour rebuilt the first detour's jump into a broken trampoline, so the bind-path hook's original(...) call branched into non-executable detour context data. Deduplicate the resolved targets before installing; one detour on the shared body is enough because both method entries funnel into the same hook, which re-derives everything from the instance. * fix: guard arm64-only MacFollowDirectBranch call in chat title detour validation The macOS x86_64 pipeline failed because chat_titles.cc referenced native_hooks::MacFollowDirectBranch under a plain __APPLE__ guard while the helper is declared and implemented only for __aarch64__ (it decodes an ARM64 B instruction). Keep ValidateDetourTarget under __APPLE__ since MacHookFits works on both architectures, and gate only the branch-following fallback on __aarch64__.
…flector (#331) Add ui.auto_confirm_reveal_ability to skip the free-ability confirmation popup for the U.S.S. Excelsior's Decloaking Deflector. A detour on MessageUtility.ShowFreeAbilityConfirmationPopup resolves the ability type via ActivatedAbilityManager.GetActivatedAbilityType and, for the RevealHostileVger (86002) ability type, invokes the confirm Action directly instead of showing the MessageBox. The method contract is validated at install time so client drift fails closed. The hook installs behind the standard patches.revealconfirmhooks toggle (default on) and checks ui.auto_confirm_reveal_ability (default off) at call time, keeping hook installation decoupled from the feature setting. Ported from stfc-mod-personal 20422847, without the Mod Settings UI parts and narrowed to the Excelsior's ability type. Co-authored-by: netniV <netniv@hotmail.com>
* Prevent primary action from using dismissed targets * Use native star viewer base for dismissal visibility checks * Unbox parent visibility Boolean before gating target actions * Make primary-action target visibility protection opt-in * Preserve native Armada join visibility in both option modes --------- Co-authored-by: netniV <netniv@hotmail.com>
* feat: pin or unpin fleet dock ships with SHIFT+click Replicates the shift-click pin changes from stfc-mod-personal (commits 1708449, e54315b, 8c5b739 and a7e4c39): - route ShipTileWidget.HandleOnClick through one idempotent dispatcher shared by double-click-assign and the new pin toggle (macOS only permits one hook per function) - toggle the clicked ship's normalized display name in ui.pinned_ships and rebuild the dock with SelectableListBase.ClearAndGenerateContents so the change shows instantly - persist ui.pinned_ships by rewriting just that key in the user's TOML config (the personal fork's runtime config writer does not exist here) - add patches.pinnedshipclicktoggle (default on) and document it in the English example config * chore: edit comment --------- Co-authored-by: netniV <netniv@hotmail.com>
The station-interior camera backs out only far enough to show part of the base. Hook OrbitFrameProvider.UpdateConstrains to scale the interior blend's pinned far endpoint by graphics.interior_zoom_scale (default 2.0) so the whole station fits on screen. That orbit endpoint is the same instance as the exterior station camera (the interior's fully-zoomed-out end is the exterior view), so the hook only widens while the section is Starbase_Interior and restores the native radius otherwise, leaving the exterior view and its component-level labels stock. A multiplier (not an absolute distance like zoom/haven_zoom) keeps it resolution-independent: the native stop is a single pinned radius. Gated by [patches].interiorzoomhooks.
Guffawaffle
marked this pull request as ready for review
October 18, 2026 03:37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Align downstream Mod Settings with upstream STFC-Mod/mod#333 at
66e9b045, including the shared substantive chat-title hook fix. Consolidates the upstream interior-zoom and downstream Haven-orbit contributions behind one shared camera-constraint detour, preventing the duplicate-detour station startup crash.Preserves downstream custom audio/files and coalescing, galaxy controls, layout-aware shortcut recording, ID-based ship pins, loading artwork, OPC/ship technology indicators, and production queue fixes on Windows and both Mac architectures. Claim/selection diagnostics remain outside this play candidate. The combined default-on
control.kirshara_fixesreplaces the former separate feature switches; legacy queue opt-outs are ignored unless the canonical switch is set.Validation:
e6d5ed74; the Mac pointer conversion at5ed1b792passed general delta review, and the declaration include atfeb91caepassed all three delta lanes.git diff --checkand held-PR251 guard pass. All example TOML files parse; translated examples unchanged.C3EB3CFE9B7A3A3948CF4012314D1EA64C334D85A784C9FC0800ABBA3F85D0BCdeployed frome6d5ed74; tester confirms station is visible and stable. The later Mac pointer conversion and direct guard declaration include preserve the tested Windows runtime behavior. The corrected head also passed a local Windows release rebuild. Tester confirms ALL PASS: settings save/reopen, custom audio, shortcut/text entry, chat titles, interior/exterior zoom and Haven orbit/reset. The live trampoline was read back and contains relocated original game instructions.d039a84b; requiredbuild-macis green. The test-only migration atd039a84bpassed all three delta review lanes, both full Windows CI test runners locally, and a release rebuild. Final exact-head Windows CI is pending. Mac native-fit/runtime evidence remains unverified; build coverage is not player smoke.Tester smoke passed. Keep draft until required builds pass, then promote through this PR. No CI workflows changed.