Skip to content

fix(touch): keep moves that only work together, such as swapping the stick and A B X Y - #1259

Open
528z4b2kgc-ux wants to merge 1 commit into
LNPANDY:mainfrom
528z4b2kgc-ux:fix/touch-arrange-together
Open

528z4b2kgc-ux wants to merge 1 commit into
LNPANDY:mainfrom
528z4b2kgc-ux:fix/touch-arrange-together

Conversation

@528z4b2kgc-ux

Copy link
Copy Markdown

Fix or feature

  • Fix
  • Feature

What and why

Problem. Swapping two touch controls, such as the left stick and A B X Y, is rejected, and both go back to their built-in places.
Cause. Moved controls are placed one at a time, so each waits for a place the other still holds.
Change. Placement tries all moved controls together first, then falls back to one at a time. The engine patch and the editor's TouchPadGeometry.swift change the same way.

Checked

  • Tests: TouchLayoutTests passes; pad_geometry_check.m passes (14 screens, 10080 arrangements); python3 tools/engine.py check passes.
  • Test for a fix: check_swap (engine) and theStickAndTheDiamondTradePlaces (editor). Both fail without the fix.
  • Run on a device or Mac: iPhone Duo, in a fork build with the same change. The stick reached the bottom right once A B X Y was moved away.
  • Not checked: other iPhones and iPads on a device.

Screenshots

None, no visible change.

Scope

  • No engine file (dm/, scripts/, docs/, ref/) is added to the repository: a change there is a patch in patches/ (a commit in engine/, then tools/engine.py export, and tools/engine.py check passes), with its Upstream-Status
  • A fix to the engine or a game profile also goes to seedds/nxnative as a PR in parallel: this PR's patch says forwarded seedds/nxnative#..., or pending until that PR is open
  • A change to a launcher view has before and after screenshots above
  • No keys, game files or data extracted from a game in the change or the attachments
Details
  • The patch builds on 0020-ios-touch-controls-layout, which is not in seedds/nxnative yet (it builds on iOS: adapt gameplay to Duo portrait and tabletop poses seedds/nxnative#683). So there is no upstream file to send this to; the patch says pending with that note.
  • If the together-first layout does not fit, the old one-at-a-time placement runs as before, so a layout that worked keeps its result.

🤖 Generated with Claude Code

@github-actions github-actions Bot added ios iPhone or iPad patch-queue Changes the patch queue or the upstream pin labels Nov 13, 2026
@528z4b2kgc-ux
528z4b2kgc-ux force-pushed the fix/touch-arrange-together branch from e085d30 to 34db9ca Compare November 14, 2026 17:17
…stick and A B X Y

Moved touch controls were placed one at a time, so a swap left both controls
at their built-in places. The engine patch (0055) and the editor's
TouchPadGeometry.swift now try every moved control together first, then fall
back to one at a time. Tests: check_swap and theStickAndTheDiamondTradePlaces.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@528z4b2kgc-ux
528z4b2kgc-ux force-pushed the fix/touch-arrange-together branch from 34db9ca to 2b70f2c Compare November 15, 2026 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ios iPhone or iPad patch-queue Changes the patch queue or the upstream pin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant