diff options
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp')
| -rw-r--r-- | Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp b/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp index a9c5844b48..498586a9f2 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp @@ -44,6 +44,8 @@ void EmulatedController::UpdateReferences(const ControllerInterface& devi) ciface::ExpressionParser::ControlEnvironment env(devi, GetDefaultDevice(), m_expression_vars); UpdateReferences(env); + + env.CleanUnusedVariables(); } void EmulatedController::UpdateReferences(ciface::ExpressionParser::ControlEnvironment& env) @@ -75,7 +77,27 @@ void EmulatedController::UpdateSingleControlReference(const ControllerInterface& ControlReference* ref) { ciface::ExpressionParser::ControlEnvironment env(devi, GetDefaultDevice(), m_expression_vars); + ref->UpdateReference(env); + + env.CleanUnusedVariables(); +} + +const ciface::ExpressionParser::ControlEnvironment::VariableContainer& +EmulatedController::GetExpressionVariables() const +{ + return m_expression_vars; +} + +void EmulatedController::ResetExpressionVariables() +{ + for (auto& var : m_expression_vars) + { + if (var.second) + { + *var.second = 0; + } + } } bool EmulatedController::IsDefaultDeviceConnected() const |
