feat: add button-only rapid fire mode (v1.1.0) - #5
Merged
Conversation
Add a second rapid-fire mode ([RapidFire] ini section) that fires
configured buttons on hold without requiring the trigger, alongside
the existing trigger-gated rapid fire. Each mode runs an independent
phase clock with separate FirstOnMs/OnMs/OffMs/TargetButtons config.
Overlap resolution ("trigger priority, others independent"): a button
in both lists is driven by the trigger clock when the trigger is held
and by the button-only clock when released; trigger-list-only buttons
fire only while the trigger is held; button-only-list buttons fire
regardless of trigger state. Both modes share the master enable.
- Config: add buttonFirstOnMs/buttonOnMs/buttonOffMs/buttonTargetButtons
fields; refactor ini readers to take a section param; read [RapidFire]
- XFireEngine: add 2nd phase clock to ControllerState; compute
triggerOwned/buttonOwned ownership in Apply(); unify phase clock via
a runClock lambda; reset both modes' phase on master toggle OFF
- Tests: add T33-T41 (button-only cycle, overlap resolution, config
load) and T42 (phase reset on master toggle OFF/ON); isolate existing
trigger-mode tests with buttonTargetButtons=0
- Bump version 1.0.1 -> 1.1.0 (CMake + ini header)
Co-Authored-By: Claude <noreply@anthropic.com>
Add a portable `clean-all` custom target that removes CMake-tracked outputs plus POST_BUILD staging copies (XInput9_1_0_*.dll, xinput1_3.dll, XInputXFire.ini) via `cmake -E rm -rf`, avoiding shell `rm`. Forward `--config $<CONFIG>` to the inner clean so the VS multi-config generator actually removes the current config's outputs. Ignore the top-level `/build/` directory. Co-Authored-By: Claude <noreply@anthropic.com>
Capture non-README operational notes so future sessions avoid common pitfalls: resolved VS Build Tools cmake path, clean-all target (needs --config for VS multi-config), staging ini overwritten every build, ini read from exe-dir not DLL-dir, and VS generator string-macro quoting collapse (numeric macro + stringification workaround). Co-Authored-By: Claude <noreply@anthropic.com>
Add the [RapidFire] button-only rapid fire mode to the README: overview of the two modes, a feature subsection covering trigger-priority overlap resolution and phase reset on master OFF, the [RapidFire] ini section example (FirstOnMs=500/OnMs=50/OffMs=50/TargetButtons=A), bump the ini header to v1.1.0, and extend the unit-test coverage list. Co-Authored-By: Claude <noreply@anthropic.com>
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.
概要
ボタン単体での連射設定(ボタンのみモード)を追加しました。実際に使用して問題がないことを確認済みです。
変更内容
src/proxy/XFireEngine.cpp/Config.cppにモード判定と設定項目を追加src/test/xfire_unit.cppにユニットテストを追加(376 行)clean-allターゲットを追加し/build/を ignore 対象に変更検証
ctest(Release): x64 / x86 とも 1/1 passed (xfire_unit)🤖 Generated with Claude Code