Skip to content

Feature: disable tap jump#39

Merged
JRickey merged 2 commits intoJRickey:mainfrom
the-outcaster:feature/disable-tap-jump
May 1, 2026
Merged

Feature: disable tap jump#39
JRickey merged 2 commits intoJRickey:mainfrom
the-outcaster:feature/disable-tap-jump

Conversation

@the-outcaster
Copy link
Copy Markdown
Contributor

Screenshot_20260430_134349

Adds an option in the controller configuration menu to disable tap jump on a per-port basis. Tested on multiple ports.

JRickey added a commit that referenced this pull request May 1, 2026
This is the first port-specific gameplay improvement we ship — every
prior change has been a bug fix, an LP64/endianness correction, or a
port-correctness change that restores upstream decomp behavior on PC.
Disable-tap-jump is a genuine player-facing feature with no upstream
equivalent, and it sets the pattern for everything that comes after.

The contributor's original PR (the-outcaster, #39) put the toggle UI
in libultraship's InputEditorWindow and called CVarGetInteger directly
from ftcommonkneebend.c via a hand-rolled extern.  Functional, but it
created drift in two places we want to keep clean:

1. libultraship is an upstream-y fork.  Game-specific UI in libultraship
   means rebasing every sync.  The UI now lives in port/gui/PortMenu.cpp
   under a new "Gameplay" sidebar; the libultraship submodule pointer
   stays at 39cbe9e6 (no fork drift from this feature).

2. The decomp source is also upstream-y.  Inline CVar lookups in a
   decomp .c file mix port concerns with game logic and would conflict
   on every decomp sync.  port/enhancements/ now owns enhancement CVars
   and exposes typed C accessors (port_enhancement_tap_jump_disabled).
   Decomp files call the accessor under #ifdef PORT — one-line touch,
   trivial to grep and remove if upstream ever lands an equivalent.

Pattern for future per-port enhancements:
  - Register CVar + accessor in port/enhancements/enhancements.cpp
  - Add a checkbox in the Gameplay sidebar (port/gui/PortMenu.cpp)
  - Call the accessor from one #ifdef PORT block in the decomp file

CVar key renamed gDisableTapJump_P# → gEnhancements.TapJumpDisabled.P#
to match the port's CVAR_SETTING-style namespacing.  Settings stored
under the original PR's key won't carry over.

Co-Authored-By: the-outcaster <linuxgamingcentral@pm.me>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@JRickey JRickey merged commit 7d8e203 into JRickey:main May 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants