[Tablegen] Specify characters separately from the settings

This commit is contained in:
TennesseeTrash 2025-06-15 18:37:58 +02:00
parent 9da2940746
commit a0b221f103
4 changed files with 19 additions and 15 deletions

View file

@ -95,9 +95,9 @@ namespace Tablegen
}
}
std::string GeneratePage(const Settings& settings)
std::string GeneratePage(std::vector<CharacterInfo> characters, const Settings& settings)
{
pugi::xml_document doc = GenerateDocument(settings);
pugi::xml_document doc = GenerateDocument(characters, settings);
std::uint32_t formatOptions;
formatOptions = pugi::format_indent | pugi::format_no_escapes | pugi::format_no_declaration;
@ -106,16 +106,18 @@ namespace Tablegen
return str.str();
}
void GeneratePage(const std::string& path, const Settings& settings)
void GeneratePage(const std::string& path, std::vector<CharacterInfo> characters,
const Settings& settings)
{
pugi::xml_document doc = GenerateDocument(settings);
pugi::xml_document doc = GenerateDocument(characters, settings);
std::uint32_t formatOptions;
formatOptions = pugi::format_indent | pugi::format_no_escapes | pugi::format_no_declaration;
doc.save_file("test.html", " ", formatOptions);
}
void GenerateAsChild(pugi::xml_node& node, const Settings& settings)
void GenerateAsChild(pugi::xml_node& node, std::vector<CharacterInfo> characters,
const Settings& settings)
{
pugi::xml_node tableRoot = node;
@ -151,7 +153,7 @@ namespace Tablegen
std::string tagIndent((indentLevel > 0 ? indentLevel - 1 : 0) * 4, ' ');
pugi::xml_node tableBody = table.append_child("tbody");
for (pugi::xml_node row; const auto& [i, character] : vw::enumerate(settings.Characters)) {
for (pugi::xml_node row; const auto& [i, character] : vw::enumerate(characters)) {
////////////////////////////////////////////////////////////////////
// HTML
////////////////////////////////////////////////////////////////////
@ -201,10 +203,11 @@ namespace Tablegen
script.append_child(pugi::node_pcdata).set_value(Script(indent, tagIndent, buttons));
}
pugi::xml_document GenerateDocument(const Settings& settings)
pugi::xml_document GenerateDocument(std::vector<CharacterInfo> characters,
const Settings& settings)
{
pugi::xml_document doc;
GenerateAsChild(doc);
GenerateAsChild(doc, characters, settings);
return doc;
}
}