[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29437] trunk/blender/source: bugfix [ #21748] KX_Object scaling property not "writing" vector access .:.

Campbell Barton ideasman42 at gmail.com
Mon Jun 14 03:41:44 CEST 2010


Revision: 29437
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29437
Author:   campbellbarton
Date:     2010-06-14 03:41:43 +0200 (Mon, 14 Jun 2010)

Log Message:
-----------
bugfix [#21748] KX_Object scaling property not "writing" vector access .:. e.g. obj.scaling[2] = 2.0
- made worldspace readonly
- mathutils 'set' callbacks can now set their own error

Modified Paths:
--------------
    trunk/blender/source/blender/python/generic/mathutils.c
    trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
    trunk/blender/source/gameengine/Ketsji/KX_ObjectActuator.cpp

Modified: trunk/blender/source/blender/python/generic/mathutils.c
===================================================================
--- trunk/blender/source/blender/python/generic/mathutils.c	2010-06-14 01:03:48 UTC (rev 29436)
+++ trunk/blender/source/blender/python/generic/mathutils.c	2010-06-14 01:41:43 UTC (rev 29437)
@@ -649,7 +649,8 @@
 	if(cb->get(self, self->cb_subtype))
 		return 1;
 
-	PyErr_Format(PyExc_SystemError, "%s user has become invalid", Py_TYPE(self)->tp_name);
+	if(!PyErr_Occurred())
+		PyErr_Format(PyExc_SystemError, "%s user has become invalid", Py_TYPE(self)->tp_name);
 	return 0;
 }
 
@@ -659,7 +660,8 @@
 	if(cb->set(self, self->cb_subtype))
 		return 1;
 
-	PyErr_Format(PyExc_SystemError, "%s user has become invalid", Py_TYPE(self)->tp_name);
+	if(!PyErr_Occurred())
+		PyErr_Format(PyExc_SystemError, "%s user has become invalid", Py_TYPE(self)->tp_name);
 	return 0;
 }
 
@@ -669,7 +671,8 @@
 	if(cb->get_index(self, self->cb_subtype, index))
 		return 1;
 
-	PyErr_Format(PyExc_SystemError, "%s user has become invalid", Py_TYPE(self)->tp_name);
+	if(!PyErr_Occurred())
+		PyErr_Format(PyExc_SystemError, "%s user has become invalid", Py_TYPE(self)->tp_name);
 	return 0;
 }
 
@@ -679,7 +682,8 @@
 	if(cb->set_index(self, self->cb_subtype, index))
 		return 1;
 
-	PyErr_Format(PyExc_SystemError, "%s user has become invalid", Py_TYPE(self)->tp_name);
+	if(!PyErr_Occurred())
+		PyErr_Format(PyExc_SystemError, "%s user has become invalid", Py_TYPE(self)->tp_name);
 	return 0;
 }
 

Modified: trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp	2010-06-14 01:03:48 UTC (rev 29436)
+++ trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp	2010-06-14 01:41:43 UTC (rev 29437)
@@ -1329,7 +1329,8 @@
 			self->NodeUpdateGS(0.f);
 			break;
 		case MATHUTILS_VEC_CB_SCALE_GLOBAL:
-			break;
+			PyErr_SetString(PyExc_AttributeError, "KX_GameObject.worldScale is read-only");
+			return 0;
 		case MATHUTILS_VEC_CB_INERTIA_LOCAL:
 			/* read only */
 			break;
@@ -1370,9 +1371,7 @@
 		return 0;
 	
 	bmo->data[index]= f;
-	mathutils_kxgameob_vector_set(bmo, subtype);
-	
-	return 1;
+	return mathutils_kxgameob_vector_set(bmo, subtype);
 }
 
 Mathutils_Callback mathutils_kxgameob_vector_cb = {

Modified: trunk/blender/source/gameengine/Ketsji/KX_ObjectActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_ObjectActuator.cpp	2010-06-14 01:03:48 UTC (rev 29436)
+++ trunk/blender/source/gameengine/Ketsji/KX_ObjectActuator.cpp	2010-06-14 01:41:43 UTC (rev 29437)
@@ -445,9 +445,7 @@
 		return 0;
 
 	bmo->data[index]= f;
-	mathutils_obactu_vector_set(bmo, subtype);
-
-	return 1;
+	return mathutils_obactu_vector_set(bmo, subtype);
 }
 
 Mathutils_Callback mathutils_obactu_vector_cb = {





More information about the Bf-blender-cvs mailing list