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:
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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));
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user