|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Un mode de jeu : l'ordre dans lequel les passes d'un pas fixe s'enchaînent. More...
#include <IGameMode.h>
Public Member Functions | |
| IGameMode ()=default | |
| virtual | ~IGameMode ()=default |
| IGameMode (const IGameMode &)=delete | |
| IGameMode & | operator= (const IGameMode &)=delete |
| IGameMode (IGameMode &&)=delete | |
| IGameMode & | operator= (IGameMode &&)=delete |
| virtual std::string_view | name () const =0 |
| virtual std::vector< std::string_view > | passOrder () const =0 |
| L'ordre des passes que step() enchaîne, nommées, pour les diagnostics. | |
| virtual void | onLoad (IGameModePasses &passes)=0 |
| Appelé quand le mode devient actif, une fois le niveau chargé. | |
| virtual core::LevelOutcome | step (IGameModePasses &passes, const core::PlayerInput &input, float fixedDelta)=0 |
| Avance d'un pas fixe, en enchaînant les passes dans l'ordre propre au mode. | |
| virtual void | onUnload (IGameModePasses &passes)=0 |
| Appelé quand le mode cesse d'être actif (bascule vers un autre mode, ou fin de session). | |
Un mode de jeu : l'ordre dans lequel les passes d'un pas fixe s'enchaînent.
hmi::GameSession mêlait deux rôles — orchestrateur (monde ECS, caméra, événements, HUD, pas fixe, interpolation) et mode de jeu (l'ordre des passes lui-même). Tant qu'il n'y avait qu'un genre, la confusion ne coûtait rien. Le RPG a besoin d'au moins trois ordres différents : exploration (déplacement, animation, caméra, mécanismes, issue), dialogue (monde gelé, seul le runner de dialogue avance, LOT-15) et combat (initiative, tour actif, résolution d'action — l'exploration ne tourne plus du tout, LOT-18). Sans cette séparation, les trois s'entasseraient en if dans une fonction déjà longue.
La sélection se fait par polymorphisme, jamais par un if (mode == …) dans l'orchestrateur.
|
default |
|
virtualdefault |
|
delete |
|
delete |
|
nodiscardpure virtual |
Implemented in hmi::CombatMode, and hmi::ExplorationMode.
|
pure virtual |
Appelé quand le mode devient actif, une fois le niveau chargé.
Implemented in hmi::CombatMode, and hmi::ExplorationMode.
|
pure virtual |
Appelé quand le mode cesse d'être actif (bascule vers un autre mode, ou fin de session).
Implemented in hmi::CombatMode, and hmi::ExplorationMode.
|
nodiscardpure virtual |
L'ordre des passes que step() enchaîne, nommées, pour les diagnostics.
Documentation exécutable : un test compare cette liste à la séquence réellement appelée, de sorte qu'un ordre modifié sans mettre la liste à jour échoue au lieu de mentir.
Implemented in hmi::CombatMode, and hmi::ExplorationMode.
|
pure virtual |
Avance d'un pas fixe, en enchaînant les passes dans l'ordre propre au mode.
| passes | Les passes offertes par l'orchestrateur. |
| input | Intention de jeu déjà résolue pour ce pas. |
| fixedDelta | Durée du pas fixe, en secondes. |
Implemented in hmi::CombatMode, and hmi::ExplorationMode.