JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
RpgScreens.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <cstddef>
7#include <span>
8
30
31namespace hmi {
32
48
50inline constexpr std::size_t RPG_SCREEN_COUNT = 9;
51
67
80
93struct RpgField {
94 const char* labelKey = "";
95 const char* valueId = "";
96};
97
100 const char* titleKey = "";
102 int columns = 0;
105 int rows = 0;
107 std::span<const RpgField> fields{};
110 std::span<const char* const> valueIds{};
111};
112
116 std::span<const RpgContentBlock> leftColumn{};
117 std::span<const RpgContentBlock> rightColumn{};
118};
119
144
146[[nodiscard]] std::span<const RpgScreenDescriptor> rpgScreens() noexcept;
147
149[[nodiscard]] const RpgScreenDescriptor& rpgScreenDescriptor(RpgScreenId screen) noexcept;
150
154[[nodiscard]] RpgScreenId nextRpgScreen(RpgScreenId screen) noexcept;
155
157[[nodiscard]] RpgScreenId previousRpgScreen(RpgScreenId screen) noexcept;
158
160[[nodiscard]] bool pausesGame(RpgScreenId screen) noexcept;
161
162} // namespace hmi
Definition AudioEngine.cpp:15
@ CharacterSheet
Spritesheet du personnage : grille d'images carrées de la taille d'une case (LOT-48).
Definition AssetContract.h:35
RpgBlockKind
Genres de blocs que le châssis sait peindre.
Definition RpgScreens.h:71
@ Portrait
Cadre d'illustration carré (interlocuteur, blason).
Definition RpgScreens.h:76
@ Prose
Bloc de texte suivi (réplique, description de contrat).
Definition RpgScreens.h:75
@ List
Liste d'entrées vides (quêtes, marchandises) : rows lignes.
Definition RpgScreens.h:74
@ Grid
Grille de cases vides (sac, caractéristiques) : columns x rows.
Definition RpgScreens.h:73
@ Track
Suite horizontale de jetons (ordre d'initiative) : columns jetons.
Definition RpgScreens.h:77
@ Fields
Lignes « libellé → valeur ». labelKeys en donne les libellés.
Definition RpgScreens.h:72
@ ActionBar
Barre d'actions : columns cases larges, alignées en bas.
Definition RpgScreens.h:78
RpgSuperposition
Règle de superposition d'un écran (EX-IHM-091) : ce qui met le jeu en pause et ce qui se consulte en ...
Definition RpgScreens.h:60
@ WhileWalking
L'écran se consulte en marchant : la simulation continue derrière lui.
Definition RpgScreens.h:65
@ PausesGame
La simulation est suspendue tant que l'écran est ouvert : on ne lit pas sa fiche en esquivant un gobe...
Definition RpgScreens.h:63
std::span< const RpgScreenDescriptor > rpgScreens() noexcept
Definition RpgScreens.cpp:321
RpgScreenId
Les huit écrans du RPG.
Definition RpgScreens.h:35
@ CombatHud
Affichage tête haute de combat (LOT-24).
Definition RpgScreens.h:43
@ Dialogue
Dialogue avec un PNJ (LOT-15).
Definition RpgScreens.h:40
@ Inventory
Inventaire et équipement (LOT-14).
Definition RpgScreens.h:37
@ Merchant
Marchand (LOT-26).
Definition RpgScreens.h:41
@ QuestJournal
Journal de quêtes (LOT-16).
Definition RpgScreens.h:38
@ GuildBoard
Tableau de la Guilde des Aventuriers (LOT-45).
Definition RpgScreens.h:42
@ TeamSheet
Feuille d'équipe (planche 5 de la maquette Tanares, LOT-38) : renommée, blason, quartier général.
Definition RpgScreens.h:46
@ WorldMap
Carte du monde (LOT-42).
Definition RpgScreens.h:39
@ CharacterSheet
Fiche de personnage (remplie par le LOT-38).
Definition RpgScreens.h:36
constexpr std::size_t RPG_SCREEN_COUNT
Nombre d'écrans du catalogue.
Definition RpgScreens.h:50
RpgScreenId nextRpgScreen(RpgScreenId screen) noexcept
Definition RpgScreens.cpp:329
const RpgScreenDescriptor & rpgScreenDescriptor(RpgScreenId screen) noexcept
Definition RpgScreens.cpp:325
RpgScreenId previousRpgScreen(RpgScreenId screen) noexcept
Definition RpgScreens.cpp:333
bool pausesGame(RpgScreenId screen) noexcept
Definition RpgScreens.cpp:337
Un bloc de l'ossature d'un écran.
Definition RpgScreens.h:99
int rows
Grid : nombre de lignes.
Definition RpgScreens.h:105
std::span< const char *const > valueIds
List et Prose : l'identifiant de valeur de chaque ligne (List) ou du paragraphe (Prose).
Definition RpgScreens.h:110
RpgBlockKind kind
Definition RpgScreens.h:101
std::span< const RpgField > fields
Fields : une ligne par entrée. Vide pour les autres genres.
Definition RpgScreens.h:107
const char * titleKey
Clé du titre du bloc ; vide pour un bloc sans titre.
Definition RpgScreens.h:100
int columns
Grid, Track, ActionBar : nombre de colonnes/jetons.
Definition RpgScreens.h:102
Une ligne « libellé → valeur » d'un bloc Fields.
Definition RpgScreens.h:93
const char * labelKey
Definition RpgScreens.h:94
const char * valueId
Definition RpgScreens.h:95
Comment un écran est rendu (LOT-38).
Definition RpgScreens.h:134
RpgScreenLayout layout
L'ossature de l'écran : ce que hmi::RpgScreenFrame en peint.
Definition RpgScreens.h:142
RpgSuperposition superposition
Definition RpgScreens.h:140
const char * titleKey
Clé du titre de l'écran (catalogue de traduction).
Definition RpgScreens.h:139
const char * objectName
objectName du widget, ciblé par le thème (theme-identity.qss).
Definition RpgScreens.h:138
Ossature d'un écran : deux colonnes de blocs.
Definition RpgScreens.h:115
std::span< const RpgContentBlock > leftColumn
Definition RpgScreens.h:116
std::span< const RpgContentBlock > rightColumn
Definition RpgScreens.h:117