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

Association action de jeu -> touche, avec persistance JSON (EX-CTRL-012, LOT-29). More...

#include <GameKeyBindings.h>

Public Member Functions

 GameKeyBindings ()
 Construit avec les valeurs par défaut (flèches/Espace/Maj/E, cf. PlayerInputMapper.cpp).
Key key (GameAction action) const noexcept
void setKey (GameAction action, Key newKey) noexcept
 Lie action à newKey.
void resetToDefaults () noexcept
 Restaure les sept actions à leurs touches par défaut (defaultKey).
bool save (const std::filesystem::path &path) const
 Sauvegarde dans la section "jeu" de path, en préservant une section "editeur" déjà présente (écrite par EditorKeyBindings::save).

Static Public Member Functions

static Key defaultKey (GameAction action) noexcept
static GameKeyBindings load (const std::filesystem::path &path)
 Charge la section "jeu" de path.

Private Attributes

std::array< Key, GAME_ACTION_COUNT_keys {}

Detailed Description

Association action de jeu -> touche, avec persistance JSON (EX-CTRL-012, LOT-29).

Une touche par action ; setKey échange automatiquement avec toute autre action qui détenait déjà cette touche, pour ne jamais laisser deux actions du jeu sur la même touche. load/save partagent un seul fichier avec EditorKeyBindings (section "jeu", l'autre classe possédant sa propre section "editeur" du même fichier, sans interférence) : chaque sauvegarde relit puis fusionne, plutôt que d'écraser tout le fichier.

Constructor & Destructor Documentation

◆ GameKeyBindings()

hmi::GameKeyBindings::GameKeyBindings ( )

Construit avec les valeurs par défaut (flèches/Espace/Maj/E, cf. PlayerInputMapper.cpp).

Member Function Documentation

◆ defaultKey()

Key hmi::GameKeyBindings::defaultKey ( GameAction action)
staticnodiscardnoexcept
Returns
La touche par défaut de action, indépendante de l'état courant.

◆ key()

Key hmi::GameKeyBindings::key ( GameAction action) const
nodiscardnoexcept
Returns
La touche actuellement liée à action.

◆ load()

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

Charge la section "jeu" 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::GameKeyBindings::resetToDefaults ( )
noexcept

Restaure les sept actions à leurs touches par défaut (defaultKey).

◆ save()

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

Sauvegarde dans la section "jeu" de path, en préservant une section "editeur" déjà présente (écrite par EditorKeyBindings::save).

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

◆ setKey()

void hmi::GameKeyBindings::setKey ( GameAction action,
Key newKey )
noexcept

Lie action à newKey.

Si newKey était déjà liée à une autre action de ce jeu de bindings, les deux échangent leurs touches (jamais deux actions sur la même touche à l'issue de l'appel).

Member Data Documentation

◆ _keys

std::array<Key, GAME_ACTION_COUNT> hmi::GameKeyBindings::_keys {}
private

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