Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2010-12-06 11:29:41 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-12-06 11:29:41 +0300
commit357826aa6e18c3af1625223656d748b92db86696 (patch)
tree59f54a1e51387b251c253f92fcd3ff83d7d80dd1 /source/gameengine/Ketsji/KX_PyMath.h
parent4dceafc928ff2fdb0fcf609759cdd02401bedfd5 (diff)
bugfix [#24967] bge.KX_GameObject.worldAngularVelocity does not work, breaks mathutils somehow
- Exceptions from reading vector values in the game engine where not being caught. - Also wrote specific KX_GameObject exceptions, without these the errors are quite confusing.
Diffstat (limited to 'source/gameengine/Ketsji/KX_PyMath.h')
-rw-r--r--source/gameengine/Ketsji/KX_PyMath.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/source/gameengine/Ketsji/KX_PyMath.h b/source/gameengine/Ketsji/KX_PyMath.h
index 589bd72c760..282e9a8f1f6 100644
--- a/source/gameengine/Ketsji/KX_PyMath.h
+++ b/source/gameengine/Ketsji/KX_PyMath.h
@@ -110,7 +110,9 @@ bool PyVecTo(PyObject* pyval, T& vec)
if(VectorObject_Check(pyval)) {
VectorObject *pyvec= (VectorObject *)pyval;
- BaseMath_ReadCallback(pyvec);
+ if(!BaseMath_ReadCallback(pyvec)) {
+ return false; /* exception raised */
+ }
if (pyvec->size != Size(vec)) {
PyErr_Format(PyExc_AttributeError, "error setting vector, %d args, should be %d", pyvec->size, Size(vec));
return false;
@@ -120,7 +122,9 @@ bool PyVecTo(PyObject* pyval, T& vec)
}
else if(QuaternionObject_Check(pyval)) {
QuaternionObject *pyquat= (QuaternionObject *)pyval;
- BaseMath_ReadCallback(pyquat);
+ if(!BaseMath_ReadCallback(pyquat)) {
+ return false; /* exception raised */
+ }
if (4 != Size(vec)) {
PyErr_Format(PyExc_AttributeError, "error setting vector, %d args, should be %d", 4, Size(vec));
return false;
@@ -131,7 +135,9 @@ bool PyVecTo(PyObject* pyval, T& vec)
}
else if(EulerObject_Check(pyval)) {
EulerObject *pyeul= (EulerObject *)pyval;
- BaseMath_ReadCallback(pyeul);
+ if(!BaseMath_ReadCallback(pyeul)) {
+ return false; /* exception raised */
+ }
if (3 != Size(vec)) {
PyErr_Format(PyExc_AttributeError, "error setting vector, %d args, should be %d", 3, Size(vec));
return false;