[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