2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-09-09 10:07:28 +00:00

Make use of custom functions when converting menus

This commit is contained in:
Jan
2021-12-28 23:52:42 +01:00
parent 338de302d9
commit 7188b0946d
27 changed files with 459 additions and 143 deletions

View File

@@ -22,10 +22,10 @@ GenericColorPropertySequence::GenericColorPropertySequence(std::string keywordNa
});
}
double GenericColorPropertySequence::ReadColorValue(SequenceResult<SimpleParserValue>& result)
double GenericColorPropertySequence::ReadColorValue(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result)
{
if (result.PeekAndRemoveIfTag(TAG_COLOR) == TAG_COLOR)
return MenuMatcherFactory::TokenNumericExpressionValue(result);
return MenuMatcherFactory::TokenNumericExpressionValue(state, result);
return 0.0;
}
@@ -35,10 +35,10 @@ void GenericColorPropertySequence::ProcessMatch(MenuFileParserState* state, Sequ
if (m_set_callback)
{
CommonColor color{};
color.r = ReadColorValue(result);
color.g = ReadColorValue(result);
color.b = ReadColorValue(result);
color.a = ReadColorValue(result);
color.r = ReadColorValue(state, result);
color.g = ReadColorValue(state, result);
color.b = ReadColorValue(state, result);
color.a = ReadColorValue(state, result);
m_set_callback(state, result.NextCapture(CAPTURE_FIRST_TOKEN).GetPos(), color);
}

View File

@@ -20,7 +20,7 @@ namespace menu
const callback_t m_set_callback;
static double ReadColorValue(SequenceResult<SimpleParserValue>& result);
static double ReadColorValue(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result);
protected:
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override;

View File

@@ -65,7 +65,7 @@ void GenericExpressionPropertySequence::ProcessMatch(MenuFileParserState* state,
{
if (m_set_callback)
{
const MenuExpressionMatchers expressionMatchers;
const MenuExpressionMatchers expressionMatchers(state);
auto expression = expressionMatchers.ProcessExpression(result);
m_set_callback(state, result.NextCapture(CAPTURE_FIRST_TOKEN).GetPos(), std::move(expression));
}

View File

@@ -23,7 +23,7 @@ void GenericFloatingPointPropertySequence::ProcessMatch(MenuFileParserState* sta
{
if (m_set_callback)
{
const auto value = MenuMatcherFactory::TokenNumericExpressionValue(result);
const auto value = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
m_set_callback(state, result.NextCapture(CAPTURE_FIRST_TOKEN).GetPos(), value);
}
}

View File

@@ -23,7 +23,7 @@ void GenericIntPropertySequence::ProcessMatch(MenuFileParserState* state, Sequen
{
if (m_set_callback)
{
const auto value = MenuMatcherFactory::TokenIntExpressionValue(result);
const auto value = MenuMatcherFactory::TokenIntExpressionValue(state, result);
m_set_callback(state, result.NextCapture(CAPTURE_FIRST_TOKEN).GetPos(), value);
}
}