[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58516] trunk/blender/source/gameengine/ Expressions: BGE: Fix for [#34398] "?\194?\171illegal operator?\194? \187 in Expression Controller" reported by Andrey Kashlak (andreymal)
Mitchell Stokes
mogurijin at gmail.com
Tue Jul 23 00:46:18 CEST 2013
Revision: 58516
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58516
Author: moguri
Date: 2013-07-22 22:46:17 +0000 (Mon, 22 Jul 2013)
Log Message:
-----------
BGE: Fix for [#34398] "?\194?\171illegal operator?\194?\187 in Expression Controller" reported by Andrey Kashlak (andreymal)
The expressions system now supports the not operator on ints and floats.
Modified Paths:
--------------
trunk/blender/source/gameengine/Expressions/FloatValue.cpp
trunk/blender/source/gameengine/Expressions/IntValue.cpp
Modified: trunk/blender/source/gameengine/Expressions/FloatValue.cpp
===================================================================
--- trunk/blender/source/gameengine/Expressions/FloatValue.cpp 2013-07-22 21:45:01 UTC (rev 58515)
+++ trunk/blender/source/gameengine/Expressions/FloatValue.cpp 2013-07-22 22:46:17 UTC (rev 58516)
@@ -97,7 +97,7 @@
return new CFloatValue (-m_float);
break;
case VALUE_NOT_OPERATOR:
- return new CErrorValue (op2str(op) + "only allowed on booleans");
+ return new CBoolValue (m_float == 0.f);
break;
case VALUE_AND_OPERATOR:
case VALUE_OR_OPERATOR:
@@ -160,6 +160,9 @@
case VALUE_LEQ_OPERATOR:
ret = new CBoolValue(((CIntValue *) val)->GetInt() <= m_float);
break;
+ case VALUE_NOT_OPERATOR:
+ ret = new CBoolValue(m_float == 0);
+ break;
default:
ret = new CErrorValue("illegal operator. please send a bug report.");
break;
@@ -212,7 +215,9 @@
case VALUE_POS_OPERATOR:
ret = new CFloatValue (m_float);
break;
-
+ case VALUE_NOT_OPERATOR:
+ ret = new CBoolValue(m_float == 0);
+ break;
default:
ret = new CErrorValue("illegal operator. please send a bug report.");
break;
Modified: trunk/blender/source/gameengine/Expressions/IntValue.cpp
===================================================================
--- trunk/blender/source/gameengine/Expressions/IntValue.cpp 2013-07-22 21:45:01 UTC (rev 58515)
+++ trunk/blender/source/gameengine/Expressions/IntValue.cpp 2013-07-22 22:46:17 UTC (rev 58516)
@@ -96,7 +96,7 @@
return new CIntValue (-m_int);
break;
case VALUE_NOT_OPERATOR:
- return new CErrorValue (op2str(op) + "only allowed on booleans");
+ return new CBoolValue (m_int == 0);
break;
case VALUE_AND_OPERATOR:
case VALUE_OR_OPERATOR:
@@ -170,7 +170,11 @@
case VALUE_POS_OPERATOR:
ret = new CIntValue (m_int);
break;
+ case VALUE_NOT_OPERATOR:
+ ret = new CBoolValue(m_int == 0);
+ break;
default:
+ printf("Found op: %d\n", op);
ret = new CErrorValue("illegal operator. please send a bug report.");
break;
}
@@ -215,6 +219,9 @@
case VALUE_LEQ_OPERATOR:
ret = new CBoolValue(((CFloatValue *) val)->GetFloat() <= m_int);
break;
+ case VALUE_NOT_OPERATOR:
+ ret = new CBoolValue(m_int == 0);
+ break;
default:
ret = new CErrorValue("illegal operator. please send a bug report.");
break;
More information about the Bf-blender-cvs
mailing list