| 111 | } |
| 112 | |
| 113 | BlueStdResult Tr2ActionSetValue::EvaluateExpression( const char* expression, float& value ) const |
| 114 | { |
| 115 | if( !m_controller ) |
| 116 | { |
| 117 | return BlueStdResult( BLUE_STD_RESULT_RUNTIME_ERROR, "controller needs to be running when evaluating expressions" ); |
| 118 | } |
| 119 | Tr2ControllerExpression expr; |
| 120 | auto error = expr.SetExpr( expression, *m_controller ); |
| 121 | if( !error.empty() ) |
| 122 | { |
| 123 | return BlueStdResult( BLUE_STD_RESULT_VALUE_ERROR, error.c_str() ); |
| 124 | } |
| 125 | auto result = expr.Eval(); |
| 126 | if( !result.first ) |
| 127 | { |
| 128 | return BlueStdResult( BLUE_STD_RESULT_RUNTIME_ERROR, "error evaluating expression" ); |
| 129 | } |
| 130 | value = result.second; |
| 131 | return BlueStdResult(); |
| 132 | } |