mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-09-07 09:17:26 +00:00
Make use of custom functions when converting menus
This commit is contained in:
@@ -582,7 +582,7 @@ namespace menu::event_handler_set_scope_sequences
|
||||
protected:
|
||||
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override
|
||||
{
|
||||
const MenuExpressionMatchers expressionMatchers;
|
||||
const MenuExpressionMatchers expressionMatchers(state);
|
||||
|
||||
const auto typeTag = static_cast<SetLocalVarType>(result.NextTag());
|
||||
const auto& varNameToken = result.NextCapture(CAPTURE_VAR_NAME);
|
||||
@@ -623,7 +623,7 @@ namespace menu::event_handler_set_scope_sequences
|
||||
protected:
|
||||
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override
|
||||
{
|
||||
const MenuExpressionMatchers expressionMatchers;
|
||||
const MenuExpressionMatchers expressionMatchers(state);
|
||||
auto expression = expressionMatchers.ProcessExpression(result);
|
||||
|
||||
if (!expression)
|
||||
@@ -668,7 +668,7 @@ namespace menu::event_handler_set_scope_sequences
|
||||
protected:
|
||||
void ProcessMatch(MenuFileParserState* state, SequenceResult<SimpleParserValue>& result) const override
|
||||
{
|
||||
const MenuExpressionMatchers expressionMatchers;
|
||||
const MenuExpressionMatchers expressionMatchers(state);
|
||||
auto expression = expressionMatchers.ProcessExpression(result);
|
||||
|
||||
if (!expression)
|
||||
@@ -708,9 +708,7 @@ namespace menu::event_handler_set_scope_sequences
|
||||
{
|
||||
const ScriptMatcherFactory create(this);
|
||||
const MenuExpressionMatchers expressionMatchers;
|
||||
|
||||
AddLabeledMatchers(expressionMatchers.Expression(this), MenuExpressionMatchers::LABEL_EXPRESSION);
|
||||
|
||||
|
||||
AddMatchers({
|
||||
create.Char('}'),
|
||||
create.Keyword("else").Capture(CAPTURE_KEYWORD),
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -188,10 +188,10 @@ namespace menu::item_scope_sequences
|
||||
{
|
||||
assert(state->m_current_item);
|
||||
|
||||
const auto x = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
const auto y = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
const auto w = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
const auto h = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
const auto x = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
const auto y = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
const auto w = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
const auto h = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
CommonRect rect
|
||||
{
|
||||
x,
|
||||
@@ -231,8 +231,8 @@ namespace menu::item_scope_sequences
|
||||
{
|
||||
assert(state->m_current_item);
|
||||
|
||||
state->m_current_item->m_rect.x = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
state->m_current_item->m_rect.y = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
state->m_current_item->m_rect.x = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
state->m_current_item->m_rect.y = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -261,9 +261,9 @@ namespace menu::item_scope_sequences
|
||||
{
|
||||
assert(state->m_current_item);
|
||||
|
||||
state->m_current_item->m_fx_letter_time = MenuMatcherFactory::TokenIntExpressionValue(result);
|
||||
state->m_current_item->m_fx_decay_start_time = MenuMatcherFactory::TokenIntExpressionValue(result);
|
||||
state->m_current_item->m_fx_decay_duration = MenuMatcherFactory::TokenIntExpressionValue(result);
|
||||
state->m_current_item->m_fx_letter_time = MenuMatcherFactory::TokenIntExpressionValue(state, result);
|
||||
state->m_current_item->m_fx_decay_start_time = MenuMatcherFactory::TokenIntExpressionValue(state, result);
|
||||
state->m_current_item->m_fx_decay_duration = MenuMatcherFactory::TokenIntExpressionValue(state, result);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -341,9 +341,9 @@ namespace menu::item_scope_sequences
|
||||
|
||||
ItemScopeOperations::EnsureHasEditFieldFeatures(*state->m_current_item, result.NextCapture(CAPTURE_FIRST_TOKEN).GetPos());
|
||||
state->m_current_item->m_dvar = MenuMatcherFactory::TokenTextValue(result.NextCapture(CAPTURE_DVAR_NAME));
|
||||
state->m_current_item->m_edit_field_features->m_def_val = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
state->m_current_item->m_edit_field_features->m_min_val = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
state->m_current_item->m_edit_field_features->m_max_val = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
state->m_current_item->m_edit_field_features->m_def_val = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
state->m_current_item->m_edit_field_features->m_min_val = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
state->m_current_item->m_edit_field_features->m_max_val = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -422,7 +422,7 @@ namespace menu::item_scope_sequences
|
||||
while (result.HasNextCapture(CAPTURE_STEP_NAME))
|
||||
{
|
||||
multiValueFeatures->m_step_names.emplace_back(MenuMatcherFactory::TokenTextValue(result.NextCapture(CAPTURE_STEP_NAME)));
|
||||
multiValueFeatures->m_double_values.emplace_back(MenuMatcherFactory::TokenNumericExpressionValue(result));
|
||||
multiValueFeatures->m_double_values.emplace_back(MenuMatcherFactory::TokenNumericExpressionValue(state, result));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@@ -124,10 +124,10 @@ namespace menu::menu_scope_sequences
|
||||
{
|
||||
assert(state->m_current_menu);
|
||||
|
||||
const auto x = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
const auto y = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
const auto w = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
const auto h = MenuMatcherFactory::TokenNumericExpressionValue(result);
|
||||
const auto x = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
const auto y = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
const auto w = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
const auto h = MenuMatcherFactory::TokenNumericExpressionValue(state, result);
|
||||
CommonRect rect
|
||||
{
|
||||
x,
|
||||
|
Reference in New Issue
Block a user