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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to