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>2009-04-04 06:57:35 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-04-04 06:57:35 +0400
commit6be69211843ee37ab9be763df0621db94dbfd69b (patch)
treee4efbb5bc2b60986bac5276881e11e54fdd5fb7d /source/gameengine/Ketsji/KX_CameraActuator.cpp
parent29f5c7dd5d0871835e4d50b2b3018b9a24a93350 (diff)
moved more attributes from getattr into PyAttributeDef's
Diffstat (limited to 'source/gameengine/Ketsji/KX_CameraActuator.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_CameraActuator.cpp55
1 files changed, 28 insertions, 27 deletions
diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp
index 354143f1e69..526c2dc404b 100644
--- a/source/gameengine/Ketsji/KX_CameraActuator.cpp
+++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp
@@ -417,19 +417,12 @@ PyAttributeDef KX_CameraActuator::Attributes[] = {
KX_PYATTRIBUTE_FLOAT_RW("max",-MAXFLOAT,MAXFLOAT,KX_CameraActuator,m_maxHeight),
KX_PYATTRIBUTE_FLOAT_RW("height",-MAXFLOAT,MAXFLOAT,KX_CameraActuator,m_height),
KX_PYATTRIBUTE_BOOL_RW("xy",KX_CameraActuator,m_x),
- KX_PYATTRIBUTE_DUMMY("object"),
+ KX_PYATTRIBUTE_RW_FUNCTION("object", KX_CameraActuator, pyattr_get_object, pyattr_set_object),
{NULL}
};
PyObject* KX_CameraActuator::py_getattro(PyObject *attr) {
- PyObject* object;
- char *attr_str= PyString_AsString(attr);
- if (!strcmp(attr_str, "object")) {
- if (!m_ob) Py_RETURN_NONE;
- else return m_ob->AddRef();
- }
-
- object = py_getattro_self(Attributes, this, attr);
+ PyObject* object = py_getattro_self(Attributes, this, attr);
if (object != NULL)
return object;
py_getattro_up(SCA_IActuator);
@@ -437,24 +430,6 @@ PyObject* KX_CameraActuator::py_getattro(PyObject *attr) {
int KX_CameraActuator::py_setattro(PyObject *attr, PyObject* value) {
int ret;
- char *attr_str= PyString_AsString(attr);
- if (!strcmp(attr_str, "object")) {
- KX_GameObject *gameobj;
-
- if (!ConvertPythonToGameObject(value, &gameobj, true))
- return 1; // ConvertPythonToGameObject sets the error
-
- if (m_ob != NULL)
- m_ob->UnregisterActuator(this);
-
- m_ob = (SCA_IObject*)gameobj;
-
- if (m_ob)
- m_ob->RegisterActuator(this);
-
- return 0;
- }
-
ret = py_setattro_self(Attributes, this, attr, value);
if (ret >= 0)
return ret;
@@ -623,4 +598,30 @@ PyObject* KX_CameraActuator::PyGetXY(PyObject* self,
return PyInt_FromLong(m_x);
}
+PyObject* KX_CameraActuator::pyattr_get_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+{
+ KX_CameraActuator* self= static_cast<KX_CameraActuator*>(self_v);
+ if (self->m_ob==NULL)
+ Py_RETURN_NONE;
+ else
+ return self->m_ob->AddRef();
+}
+
+int KX_CameraActuator::pyattr_set_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
+{
+ KX_CameraActuator* self= static_cast<KX_CameraActuator*>(self_v);
+ KX_GameObject *gameobj;
+
+ if (!ConvertPythonToGameObject(value, &gameobj, true))
+ return 1; // ConvertPythonToGameObject sets the error
+
+ if (self->m_ob)
+ self->m_ob->UnregisterActuator(self);
+
+ if (self->m_ob = (SCA_IObject*)gameobj)
+ self->m_ob->RegisterActuator(self);
+
+ return 0;
+}
+
/* eof */