[Bf-blender-cvs] [afce105] master: BGE: Fix bug with Steering Actuator Python API.

Benoit Bolsee noreply at git.blender.org
Sat Aug 9 17:23:30 CEST 2014


Commit: afce1057fdb3c51819b7126fd3593fe7a2c80b57
Author: Benoit Bolsee
Date:   Sat Aug 9 17:19:13 2014 +0200
Branches: master
https://developer.blender.org/rBafce1057fdb3c51819b7126fd3593fe7a2c80b57

BGE: Fix bug with Steering Actuator Python API.

It was not possible to set the navmesh attribute from Python due to a double bug.

===================================================================

M	source/gameengine/Ketsji/KX_GameObject.cpp
M	source/gameengine/Ketsji/KX_SteeringActuator.cpp

===================================================================

diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp
index 639cd98..c681e08 100644
--- a/source/gameengine/Ketsji/KX_GameObject.cpp
+++ b/source/gameengine/Ketsji/KX_GameObject.cpp
@@ -51,6 +51,7 @@ typedef unsigned long uint_ptr;
 #include "KX_Light.h"  // only for their ::Type
 #include "KX_FontObject.h"  // only for their ::Type
 #include "RAS_MeshObject.h"
+#include "KX_NavMeshObject.h"
 #include "KX_MeshProxy.h"
 #include "KX_PolyProxy.h"
 #include <stdio.h> // printf
@@ -3795,7 +3796,8 @@ bool ConvertPythonToGameObject(PyObject *value, KX_GameObject **object, bool py_
 	if (	PyObject_TypeCheck(value, &KX_GameObject::Type)	||
 			PyObject_TypeCheck(value, &KX_LightObject::Type)	||
 			PyObject_TypeCheck(value, &KX_Camera::Type)			||
-			PyObject_TypeCheck(value, &KX_FontObject::Type))
+            PyObject_TypeCheck(value, &KX_FontObject::Type) ||
+            PyObject_TypeCheck(value, &KX_NavMeshObject::Type))
 	{
 		*object = static_cast<KX_GameObject*>BGE_PROXY_REF(value);
 		
diff --git a/source/gameengine/Ketsji/KX_SteeringActuator.cpp b/source/gameengine/Ketsji/KX_SteeringActuator.cpp
index 2fa72c0..ff19229 100644
--- a/source/gameengine/Ketsji/KX_SteeringActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SteeringActuator.cpp
@@ -602,7 +602,7 @@ int KX_SteeringActuator::pyattr_set_navmesh(void *self, const struct KX_PYATTRIB
 	if (!ConvertPythonToGameObject(value, &gameobj, true, "actuator.object = value: KX_SteeringActuator"))
 		return PY_SET_ATTR_FAIL; // ConvertPythonToGameObject sets the error
 
-	if (!PyObject_TypeCheck(value, &KX_NavMeshObject::Type))
+    if (dynamic_cast<KX_NavMeshObject *>(gameobj) == NULL)
 	{
 		PyErr_Format(PyExc_TypeError, "KX_NavMeshObject is expected");
 		return PY_SET_ATTR_FAIL;




More information about the Bf-blender-cvs mailing list