Fission FSN
Loading...
Searching...
No Matches
fsCRunningOrderGrammar.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsCRunningOrderGrammar.h
4*
5* Purpose: Parse + resolve for the consolidated runningOrder.gui
6* (RUNNING_ORDER_GUI_PLAN.md Phase 4). A `.gui` running
7* order holds the whole sequence plus each scene's config,
8* with editions/languages as `exclude` membership tags and
9* shared config hoisted into `default <group>` blocks.
10*
11* This is NOT the GUI parser (fsIGuiComponent::parseToTree):
12* running-order tokens are scene names, not registered
13* component types, so that parser can't build this tree. It
14* is an engine-free port of the tooling resolver
15* (gui-grammar-tool/src/running_order.rs), verified against
16* tests/gui_grammar_golden_corpus/running_order.
17*
18*********************************************************************/
19
20#ifndef fsCRunningOrderGrammarhdr
21#define fsCRunningOrderGrammarhdr
22
23#include <vector>
24
25#include <fsCore/fsStr.h>
26#include <fsCore/src/fsCVariableTable.h> // VarTableMap
27
29{
30
32{
34 VarTableMap mConfig; // keys in source case (loader is case-sensitive), layered default* -> group -> own
35 // Reached via the map screen first. Derived, not stored: true for every
36 // map-routed HOG room - a numHogItems scene in the `normal` group (prefix-
37 // less or sequence-numbered like `01_`) - except the first in the sequence.
38 // Minigames, link/end, and alphabetically-prefixed direct-access HOGs
39 // (`hog_`) are never map-first. Only the HOG genre acts on it (see
40 // fsIRunningOrder's map-navigation gate).
42};
43
44// Parse pText and resolve for (pFlavour, pLanguage): filter entries whose
45// `exclude` tags match, layer each surviving scene's config
46// `default * -> default <group> -> own` (last-set-wins, keys in source case),
47// and derive mGoesToMap. pFlavour is "standard"/"collectors"; pLanguage is
48// the locale code ("en"/"de"/...). Entries keep declaration order.
49std::vector<ResolvedScene> resolve(const fsStr& pText, const fsStr& pFlavour, const fsStr& pLanguage);
50
51} // namespace fsCRunningOrderGrammar
52
53#endif
Definition fsStr.h:23
std::map< fsStr, fsStr > VarTableMap
Definition fsCVariableTable.h:23
bool fsBool
Definition fsBaseTypes.h:26
Definition fsCRunningOrderGrammar.h:29
std::vector< ResolvedScene > resolve(const fsStr &pText, const fsStr &pFlavour, const fsStr &pLanguage)
Definition fsCRunningOrderGrammar.cpp:330
Definition fsCRunningOrderGrammar.h:32
VarTableMap mConfig
Definition fsCRunningOrderGrammar.h:34
fsStr mName
Definition fsCRunningOrderGrammar.h:33
fsBool mGoesToMap
Definition fsCRunningOrderGrammar.h:41