JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
hmi::GamepadBindings Class Reference

Association action de jeu (GameAction, partagée avec GameKeyBindings) -> bouton manette, avec persistance JSON (LOT-30). More...

#include <GamepadBindings.h>

Public Member Functions

 GamepadBindings ()
 Construit avec les valeurs par défaut (miroir du câblage historique de Window::pollGamepad : D-pad/stick gauche, bouton A, épaule droite).
GamepadButton button (GameAction action) const noexcept
void setKey (GameAction action, GamepadButton newButton) noexcept
 Lie action à newButton.
void resetToDefaults () noexcept
 Restaure les sept actions à leurs boutons par défaut (defaultButton).
bool save (const std::filesystem::path &path) const
 Sauvegarde dans la section "manette" de path, en préservant les sections "jeu"/"editeur" déjà présentes.

Static Public Member Functions

static GamepadButton defaultButton (GameAction action) noexcept
static GamepadBindings load (const std::filesystem::path &path)
 Charge la section "manette" de path.

Private Attributes

std::array< GamepadButton, GAME_ACTION_COUNT_buttons {}

Detailed Description

Association action de jeu (GameAction, partagée avec GameKeyBindings) -> bouton manette, avec persistance JSON (LOT-30).

Même mécanique que GameKeyBindings (une touche par action, échange automatique en cas de conflit, réinitialisation) mais sur GamepadButton au lieu de Key — classe séparée plutôt qu'une abstraction commune, comme GameKeyBindings/EditorKeyBindings l'ont déjà choisi. load/save partagent le même fichier que GameKeyBindings/EditorKeyBindings (section "manette", fusionnée plutôt qu'écrasée à chaque sauvegarde).

Constructor & Destructor Documentation

◆ GamepadBindings()

hmi::GamepadBindings::GamepadBindings ( )

Construit avec les valeurs par défaut (miroir du câblage historique de Window::pollGamepad : D-pad/stick gauche, bouton A, épaule droite).

Member Function Documentation

◆ button()

GamepadButton hmi::GamepadBindings::button ( GameAction action) const
nodiscardnoexcept
Returns
Le bouton actuellement lié à action.

◆ defaultButton()

GamepadButton hmi::GamepadBindings::defaultButton ( GameAction action)
staticnodiscardnoexcept
Returns
Le bouton par défaut de action, indépendant de l'état courant.

◆ load()

GamepadBindings hmi::GamepadBindings::load ( const std::filesystem::path & path)
staticnodiscard

Charge la section "manette" de path.

Returns
Les bindings lus ; valeurs par défaut pour toute entrée absente, invalide, ou si le fichier est absent/corrompu (récupérable, jamais bloquant, EX-NFR-040).

◆ resetToDefaults()

void hmi::GamepadBindings::resetToDefaults ( )
noexcept

Restaure les sept actions à leurs boutons par défaut (defaultButton).

◆ save()

bool hmi::GamepadBindings::save ( const std::filesystem::path & path) const

Sauvegarde dans la section "manette" de path, en préservant les sections "jeu"/"editeur" déjà présentes.

Returns
Faux si le fichier n'a pas pu être écrit (dossier non créable, etc.).

◆ setKey()

void hmi::GamepadBindings::setKey ( GameAction action,
GamepadButton newButton )
noexcept

Lie action à newButton.

Si newButton était déjà lié à une autre action, les deux échangent leurs boutons (jamais deux actions sur le même bouton à l'issue de l'appel).

Member Data Documentation

◆ _buttons

std::array<GamepadButton, GAME_ACTION_COUNT> hmi::GamepadBindings::_buttons {}
private

The documentation for this class was generated from the following files:
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Input/GamepadBindings.h
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Input/GamepadBindings.cpp