bsputil: fix --extract-entities and --extract-textures command line parsing

Fixes #435
This commit is contained in:
Eric Wasylishen 2024-08-04 12:09:12 -06:00
parent 2354209fea
commit 0b2395dacd
2 changed files with 26 additions and 2 deletions

View File

@ -61,10 +61,10 @@ bsputil_settings::bsputil_settings() :
return this->load_setting<settings::setting_string>(name, parser, src, "");
}, nullptr, "Replace BSP entities with the given files' contents"},
extract_entities{this, "extract-entities", [&](const std::string &name, parser_base_t &parser, settings::source src) {
return this->load_setting<settings::setting_string>(name, parser, src, "");
return this->load_setting<settings::setting_bool>(name, parser, src, "");
}, nullptr, "Extract BSP entities to the given file name"},
extract_textures{this, "extract-textures", [&](const std::string &name, parser_base_t &parser, settings::source src) {
return this->load_setting<settings::setting_string>(name, parser, src, "");
return this->load_setting<settings::setting_bool>(name, parser, src, "");
}, nullptr, "Extract BSP texutres to the given wad file"},
replace_textures{this, "replace-textures", [&](const std::string &name, parser_base_t &parser, settings::source src) {
return this->load_setting<settings::setting_string>(name, parser, src, "");

View File

@ -71,3 +71,27 @@ TEST(bsputil, extractTextures)
EXPECT_TRUE(loaded_tex);
}
}
TEST(bsputil, parseExtractTextures)
{
bsputil_settings settings;
const char *arguments[] = {"bsputil.exe", "--extract-textures", "test.bsp"};
token_parser_t p{std::size(arguments) - 1, arguments + 1, {}};
auto remainder = settings.parse(p);
ASSERT_EQ(1, remainder.size());
ASSERT_EQ("test.bsp", remainder[0]);
}
TEST(bsputil, parseExtractEntities)
{
bsputil_settings settings;
const char *arguments[] = {"bsputil.exe", "--extract-entities", "test.bsp"};
token_parser_t p{std::size(arguments) - 1, arguments + 1, {}};
auto remainder = settings.parse(p);
ASSERT_EQ(1, remainder.size());
ASSERT_EQ("test.bsp", remainder[0]);
}