diff options
Diffstat (limited to 'source/gameengine/Expressions/ErrorValue.cpp')
-rw-r--r-- | source/gameengine/Expressions/ErrorValue.cpp | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/source/gameengine/Expressions/ErrorValue.cpp b/source/gameengine/Expressions/ErrorValue.cpp new file mode 100644 index 00000000000..fd1ba7399b3 --- /dev/null +++ b/source/gameengine/Expressions/ErrorValue.cpp @@ -0,0 +1,125 @@ +// ErrorValue.cpp: implementation of the CErrorValue class. +/* + * Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org> + * + * Permission to use, copy, modify, distribute and sell this software + * and its documentation for any purpose is hereby granted without fee, + * provided that the above copyright notice appear in all copies and + * that both that copyright notice and this permission notice appear + * in supporting documentation. Erwin Coumans makes no + * representations about the suitability of this software for any + * purpose. It is provided "as is" without express or implied warranty. + * + */ + + + + + + +#include "ErrorValue.h" + + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +CErrorValue::CErrorValue() +/* +pre: +effect: constructs a new CErrorValue containing errormessage "Error" +*/ +{ + m_strErrorText = "Error"; + SetError(true); +} + + + +CErrorValue::CErrorValue(STR_String errmsg) +/* +pre: +effect: constructs a new CErrorValue containing errormessage errmsg +*/ +{ + m_strErrorText = "[" + errmsg + "]"; + SetError(true); +} + + + +CErrorValue::~CErrorValue() +/* +pre: +effect: deletes the object +*/ +{ + +} + + + +CValue* CErrorValue::Calc(VALUE_OPERATOR op, CValue *val) +/* +pre: +ret: a new object containing the result of applying operator op to this + object and val +*/ +{ + CValue* errorval; + + switch (op) + { + case VALUE_POS_OPERATOR: + case VALUE_NEG_OPERATOR: + case VALUE_NOT_OPERATOR: + { + errorval = new CErrorValue (op2str(op) + GetText()); + break; + } + default: + { + errorval = val->CalcFinal(VALUE_ERROR_TYPE, op, this); + break; + } + } + + return errorval; +} + + + +CValue* CErrorValue::CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val) +/* +pre: the type of val is dtype +ret: a new object containing the result of applying operator op to val and + this object +*/ +{ + return new CErrorValue (val->GetText() + op2str(op) + GetText()); +} + + + +float CErrorValue::GetNumber() +{ + return -1; +} + + + +const STR_String & CErrorValue::GetText() +{ + return m_strErrorText; +} + + + +CValue* CErrorValue::GetReplica() +{ + // who would want a copy of an error ? + trace ("Error: ErrorValue::GetReplica() not implemented yet"); + assertd(false); + + return NULL; +}
\ No newline at end of file |