Torch
Loading...
Searching...
No Matches
QuizQuestionFactory.h
1#pragma once
2
3#include "DialogFactory.h"
4#include <factories/BaseFactory.h>
5#include "factories/bk64/BKHeaderExporter.h"
6
7namespace BK64 {
8
9// One language's question: the text entries plus the three answer options.
10typedef struct QuizQuestionLang {
11 std::vector<DialogString> text;
12 std::vector<DialogString> options;
14
15class QuizQuestionData : public IParsedData {
16 public:
17 // Always set. English on PAL, the lone language on US.
18 std::vector<DialogString> mText;
19 std::vector<DialogString> mOptions;
20
21 // PAL only: index 0=French, 1=German
22 std::vector<QuizQuestionLang> mExtraLangs;
23
24 QuizQuestionData(std::vector<DialogString> text, std::vector<DialogString> options)
25 : mText(std::move(text)), mOptions(std::move(options)) {
26 }
27
28 QuizQuestionData(std::vector<DialogString> text, std::vector<DialogString> options,
29 std::vector<QuizQuestionLang> extraLangs)
30 : mText(std::move(text)), mOptions(std::move(options)), mExtraLangs(std::move(extraLangs)) {
31 }
32};
33
35 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName,
36 YAML::Node& node, std::string* replacement) override;
37};
38
40 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName,
41 YAML::Node& node, std::string* replacement) override;
42};
43
45 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName,
46 YAML::Node& node, std::string* replacement) override;
47};
48
50 public:
51 std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override;
52 std::optional<std::shared_ptr<IParsedData>> parse_modding(std::vector<uint8_t>& buffer, YAML::Node& data) override;
53 inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override {
54 return { REGISTER(Code, QuizQuestionCodeExporter) REGISTER(Header, BKHeaderExporter)
55 REGISTER(Binary, QuizQuestionBinaryExporter) REGISTER(Modding, QuizQuestionModdingExporter) };
56 }
57 bool SupportModdedAssets() override {
58 return true;
59 }
60};
61} // namespace BK64
Definition BKHeaderExporter.h:8
Definition QuizQuestionFactory.h:34
Definition QuizQuestionFactory.h:39
Definition QuizQuestionFactory.h:49
Definition QuizQuestionFactory.h:44
Definition BaseFactory.h:96
Definition BaseFactory.h:102
Definition BaseFactory.h:88
Definition QuizQuestionFactory.h:10