From b1e5fc70a61512262466952033626de6c1f6adff Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 13 Nov 2021 22:18:08 +0100 Subject: [PATCH] Add Menu EventHandler parser for lerp --- .../EventHandlerSetScopeSequences.cpp | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/src/ObjLoading/Parsing/Menu/Sequence/EventHandlerSetScopeSequences.cpp b/src/ObjLoading/Parsing/Menu/Sequence/EventHandlerSetScopeSequences.cpp index 1a9452d5..eaad6788 100644 --- a/src/ObjLoading/Parsing/Menu/Sequence/EventHandlerSetScopeSequences.cpp +++ b/src/ObjLoading/Parsing/Menu/Sequence/EventHandlerSetScopeSequences.cpp @@ -379,6 +379,34 @@ namespace menu::event_handler_set_scope_sequences EmitDynamicSetLocalVar(state, typeTag, varName, std::move(expression)); } }; + + class SequenceLerp final : public SequenceGenericScriptStatement + { + public: + explicit SequenceLerp() + { + const ScriptMatcherFactory create(this); + + AddMatchers({ + create.And({ + create.ScriptKeyword("lerp"), + create.Or({ + create.ScriptKeyword("scale"), + create.ScriptKeyword("alpha"), + create.ScriptKeyword("x"), + create.ScriptKeyword("y"), + }), + create.ScriptKeyword("from"), + create.ScriptNumeric(), + create.ScriptKeyword("to"), + create.ScriptNumeric(), + create.ScriptKeyword("over"), + create.ScriptNumeric() + }).Capture(CAPTURE_SCRIPT_TOKEN), + create.Optional(create.Char(';')) + }); + } + }; } using namespace event_handler_set_scope_sequences; @@ -447,10 +475,10 @@ void EventHandlerSetScopeSequences::AddSequences(FeatureLevel featureLevel) // statClearPerkNew // statSetUsingTable // statClearBitMask - AddSequence(SequenceGenericScriptStatement::Create({ create.ScriptKeyword("kickPlayer") })); - AddSequence(SequenceGenericScriptStatement::Create({ create.ScriptKeyword("getKickPlayerQuestion") })); - AddSequence(SequenceGenericScriptStatement::Create({ create.ScriptKeyword("partyUpdateMissingMapPackDvar") })); - AddSequence(SequenceGenericScriptStatement::Create({ create.ScriptKeyword("togglePlayerMute") })); - AddSequence(SequenceGenericScriptStatement::Create({ create.ScriptKeyword("resolveError") })); - // lerp + AddSequence(SequenceGenericScriptStatement::Create({create.ScriptKeyword("kickPlayer")})); + AddSequence(SequenceGenericScriptStatement::Create({create.ScriptKeyword("getKickPlayerQuestion")})); + AddSequence(SequenceGenericScriptStatement::Create({create.ScriptKeyword("partyUpdateMissingMapPackDvar")})); + AddSequence(SequenceGenericScriptStatement::Create({create.ScriptKeyword("togglePlayerMute")})); + AddSequence(SequenceGenericScriptStatement::Create({create.ScriptKeyword("resolveError")})); + AddSequence(std::make_unique()); }