JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
RpgScreens.h File Reference

Catalogue des écrans du RPG et ossature de leur contenu (LOT-68, EX-IHM-090, EX-IHM-091). More...

#include <cstddef>
#include <span>

Go to the source code of this file.

Classes

struct  hmi::RpgField
 Une ligne « libellé → valeur » d'un bloc Fields. More...
struct  hmi::RpgContentBlock
 Un bloc de l'ossature d'un écran. More...
struct  hmi::RpgScreenLayout
 Ossature d'un écran : deux colonnes de blocs. More...
struct  hmi::RpgScreenDescriptor
 Comment un écran est rendu (LOT-38). More...

Namespaces

namespace  hmi

Enumerations

enum class  hmi::RpgScreenId {
  hmi::CharacterSheet , hmi::Inventory , hmi::QuestJournal , hmi::WorldMap ,
  hmi::Dialogue , hmi::Merchant , hmi::GuildBoard , hmi::CombatHud ,
  hmi::TeamSheet
}
 Les huit écrans du RPG. More...
enum class  hmi::RpgSuperposition { hmi::PausesGame , hmi::WhileWalking }
 Règle de superposition d'un écran (EX-IHM-091) : ce qui met le jeu en pause et ce qui se consulte en marchant. More...
enum class  hmi::RpgBlockKind {
  hmi::Fields , hmi::Grid , hmi::List , hmi::Prose ,
  hmi::Portrait , hmi::Track , hmi::ActionBar
}
 Genres de blocs que le châssis sait peindre. More...

Functions

std::span< const RpgScreenDescriptorhmi::rpgScreens () noexcept
const RpgScreenDescriptorhmi::rpgScreenDescriptor (RpgScreenId screen) noexcept
RpgScreenId hmi::nextRpgScreen (RpgScreenId screen) noexcept
RpgScreenId hmi::previousRpgScreen (RpgScreenId screen) noexcept
bool hmi::pausesGame (RpgScreenId screen) noexcept

Variables

constexpr std::size_t hmi::RPG_SCREEN_COUNT = 9
 Nombre d'écrans du catalogue.

Detailed Description

Catalogue des écrans du RPG et ossature de leur contenu (LOT-68, EX-IHM-090, EX-IHM-091).

Logique pure (aucune dépendance Qt), testable hors instance d'application (EX-NFR-010) – même patron que HMI/Presentation/ScreenFlow.h et HMI/Interface/ActionCatalog.h.

Une table, et non huit écrans écrits à la main

Les huit écrans que le RPG doit à terme porter – fiche, inventaire, journal, carte, dialogue, marchand, tableau de la Guilde, ATH de combat – n'ont, à ce lot, aucun contenu à afficher : les données viendront des lots qui les remplissent (LOT-38, LOT-42, LOT-45, LOT-24). Ce qui est livré ici est ce qu'ils ont en commun : leur cadre, leur navigation, leur parcours de focus, et leur ossature.

Cette ossature est décrite en données plutôt qu'en code d'interface, pour la raison qu'écrit EX-IHM-090 : un neuvième écran doit coûter une ligne de table, jamais une retouche des huit autres. Le rendu Qt (hmi::RpgScreenFrame) sait peindre les sept genres de blocs ci-dessous et rien de plus ; il n'a aucune connaissance d'un écran en particulier.