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:
authorKester Maddock <Christopher.Maddock.1@uni.massey.ac.nz>2004-09-19 05:33:08 +0400
committerKester Maddock <Christopher.Maddock.1@uni.massey.ac.nz>2004-09-19 05:33:08 +0400
commitfd5f3e13d2f86f0f344422c773df85d0c3e6df32 (patch)
tree8f55d1124aa01fcdfb847dedd1396e941060dae5 /source/gameengine/Ketsji
parentd70197262b3bf22388673b5b8fc96af969875d50 (diff)
Convert and use actuators with no target object set.
Certain actuators (Add Object/Replace Mesh/Scene/Track To) used to always require a target, or they would not influence the scene. If the actuator target is always set from Python, this could be annoying.
Diffstat (limited to 'source/gameengine/Ketsji')
-rw-r--r--source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp5
-rw-r--r--source/gameengine/Ketsji/KX_SceneActuator.cpp21
-rw-r--r--source/gameengine/Ketsji/KX_TrackToActuator.cpp3
4 files changed, 25 insertions, 7 deletions
diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
index feaf24f5e5b..d972d880070 100644
--- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
@@ -263,6 +263,9 @@ PyObject* KX_SCA_AddObjectActuator::PyGetObject(PyObject* self,
PyObject* args,
PyObject* kwds)
{
+ if (!m_OriginalObject)
+ Py_Return;
+
return PyString_FromString(m_OriginalObject->GetName());
}
diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
index f26e9873863..84e12ac86af 100644
--- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
@@ -116,7 +116,7 @@ PyObject* KX_SCA_ReplaceMeshActuator::PySetMesh(PyObject* self,
void* mesh = SCA_ILogicBrick::m_sCurrentLogicManager->GetMeshByName(STR_String(meshname));
- if (m_mesh) {
+ if (mesh) {
m_mesh= (class RAS_MeshObject*)mesh;
Py_Return;
}
@@ -129,6 +129,9 @@ KX_PYMETHODDEF_DOC(KX_SCA_ReplaceMeshActuator, getMesh,
"Returns the name of the mesh to be substituted.\n"
)
{
+ if (!m_mesh)
+ Py_Return;
+
return PyString_FromString(const_cast<char *>(m_mesh->GetName().ReadPtr()));
}
diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp
index 3ef49680f1f..ddd0672b2fe 100644
--- a/source/gameengine/Ketsji/KX_SceneActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp
@@ -100,6 +100,21 @@ bool KX_SceneActuator::Update(double curtime,double deltatime)
m_KetsjiEngine->ReplaceScene(m_scene->GetName(),m_scene->GetName());
break;
}
+ case KX_SCENE_SET_CAMERA:
+ if (m_camera)
+ {
+ m_scene->SetActiveCamera(m_camera);
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (!m_nextSceneName.Length())
+ return false;
+
+ switch (m_mode)
+ {
case KX_SCENE_SET_SCENE:
{
m_KetsjiEngine->ReplaceScene(m_scene->GetName(),m_nextSceneName);
@@ -132,12 +147,6 @@ bool KX_SceneActuator::Update(double curtime,double deltatime)
m_KetsjiEngine->ResumeScene(m_nextSceneName);
break;
}
- case KX_SCENE_SET_CAMERA:
- if (m_camera)
- {
- m_scene->SetActiveCamera(m_camera);
- }
- break;
default:
; /* do nothing? this is an internal error !!! */
}
diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp
index 7a0d0ad630f..6880ac5d683 100644
--- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp
+++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp
@@ -427,6 +427,9 @@ char KX_TrackToActuator::GetObject_doc[] =
"\tReturns the object to track with the parent of this actuator.\n";
PyObject* KX_TrackToActuator::PyGetObject(PyObject* self, PyObject* args, PyObject* kwds)
{
+ if (!m_object)
+ Py_Return;
+
return PyString_FromString(m_object->GetName());
}