diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-04-20 19:06:46 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-04-20 19:06:46 +0400 |
commit | 874c29cea8e6f9bc411fccf2d6f4cb07e94328d0 (patch) | |
tree | 5971e577cf7c02e05a1e37b5ad058c71a6744877 /source/gameengine/Ketsji/KXNetwork | |
parent | 7555bfa793a2b0fc187c6211c56986f35b2d7b09 (diff) | |
parent | c5bc4e4fb1a33eda8c31f2ea02e91f32f74c8fa5 (diff) |
2.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r19323:HEAD
Notes:
* blenderbuttons and ICON_SNAP_PEEL_OBJECT were not merged.
Diffstat (limited to 'source/gameengine/Ketsji/KXNetwork')
4 files changed, 104 insertions, 46 deletions
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp index 4e5f27df2da..2483a6bfb39 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp @@ -47,7 +47,7 @@ KX_NetworkMessageActuator::KX_NetworkMessageActuator( m_networkscene(networkscene), m_toPropName(toPropName), m_subject(subject), - m_bodyType(bodyType), + m_bPropBody(bodyType), m_body(body) { } @@ -69,7 +69,7 @@ bool KX_NetworkMessageActuator::Update() } //printf("messageactuator true event\n"); - if (m_bodyType == 1) // ACT_MESG_PROP in DNA_actuator_types.h + if (m_bPropBody) // ACT_MESG_PROP in DNA_actuator_types.h { m_networkscene->SendMessage( m_toPropName, @@ -105,22 +105,22 @@ CValue* KX_NetworkMessageActuator::GetReplica() /* Integration hooks -------------------------------------------------- */ PyTypeObject KX_NetworkMessageActuator::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_NetworkMessageActuator", - sizeof(KX_NetworkMessageActuator), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0, //&cvalue_as_number, 0, 0, 0, - 0 + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_NetworkMessageActuator::Parents[] = { @@ -132,6 +132,7 @@ PyParentObject KX_NetworkMessageActuator::Parents[] = { }; PyMethodDef KX_NetworkMessageActuator::Methods[] = { + // Deprecated -----> {"setToPropName", (PyCFunction) KX_NetworkMessageActuator::sPySetToPropName, METH_VARARGS}, {"setSubject", (PyCFunction) @@ -140,26 +141,36 @@ PyMethodDef KX_NetworkMessageActuator::Methods[] = { KX_NetworkMessageActuator::sPySetBodyType, METH_VARARGS}, {"setBody", (PyCFunction) KX_NetworkMessageActuator::sPySetBody, METH_VARARGS}, + // <----- {NULL,NULL} // Sentinel }; PyAttributeDef KX_NetworkMessageActuator::Attributes[] = { + KX_PYATTRIBUTE_STRING_RW("propName", 0, 100, false, KX_NetworkMessageActuator, m_toPropName), + KX_PYATTRIBUTE_STRING_RW("subject", 0, 100, false, KX_NetworkMessageActuator, m_subject), + KX_PYATTRIBUTE_BOOL_RW("usePropBody", KX_NetworkMessageActuator, m_bPropBody), + KX_PYATTRIBUTE_STRING_RW("body", 0, 100, false, KX_NetworkMessageActuator, m_body), { NULL } //Sentinel }; -PyObject* KX_NetworkMessageActuator::_getattr(const char *attr) { - _getattr_up(SCA_IActuator); +PyObject* KX_NetworkMessageActuator::py_getattro(PyObject *attr) { + py_getattro_up(SCA_IActuator); } +int KX_NetworkMessageActuator::py_setattro(PyObject *attr, PyObject *value) { + py_setattro_up(SCA_IActuator); +} + +// Deprecated -----> // 1. SetToPropName PyObject* KX_NetworkMessageActuator::PySetToPropName( - PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setToProp()", "the propName property"); char* ToPropName; - if (PyArg_ParseTuple(args, "s", &ToPropName)) { + if (PyArg_ParseTuple(args, "s:setToPropName", &ToPropName)) { m_toPropName = ToPropName; } else { @@ -171,13 +182,13 @@ PyObject* KX_NetworkMessageActuator::PySetToPropName( // 2. SetSubject PyObject* KX_NetworkMessageActuator::PySetSubject( - PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setSubject()", "the subject property"); char* Subject; - if (PyArg_ParseTuple(args, "s", &Subject)) { + if (PyArg_ParseTuple(args, "s:setSubject", &Subject)) { m_subject = Subject; } else { @@ -189,14 +200,14 @@ PyObject* KX_NetworkMessageActuator::PySetSubject( // 3. SetBodyType PyObject* KX_NetworkMessageActuator::PySetBodyType( - PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setBodyType()", "the usePropBody property"); int BodyType; - if (PyArg_ParseTuple(args, "i", &BodyType)) { - m_bodyType = BodyType; + if (PyArg_ParseTuple(args, "i:setBodyType", &BodyType)) { + m_bPropBody = (BodyType != 0); } else { return NULL; @@ -207,13 +218,13 @@ PyObject* KX_NetworkMessageActuator::PySetBodyType( // 4. SetBody PyObject* KX_NetworkMessageActuator::PySetBody( - PyObject* self, PyObject* args, PyObject* kwds) { + ShowDeprecationWarning("setBody()", "the body property"); char* Body; - if (PyArg_ParseTuple(args, "s", &Body)) { + if (PyArg_ParseTuple(args, "s:setBody", &Body)) { m_body = Body; } else { @@ -223,3 +234,4 @@ PyObject* KX_NetworkMessageActuator::PySetBody( Py_RETURN_NONE; } +// <----- Deprecated
\ No newline at end of file diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h index 96b55ef839b..850f825b8f3 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h @@ -41,7 +41,7 @@ class KX_NetworkMessageActuator : public SCA_IActuator class NG_NetworkScene* m_networkscene; // needed for replication STR_String m_toPropName; STR_String m_subject; - int m_bodyType; + bool m_bPropBody; STR_String m_body; public: KX_NetworkMessageActuator( @@ -61,12 +61,15 @@ public: /* Python interface ------------------------------------------- */ /* ------------------------------------------------------------ */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); + // Deprecated -----> KX_PYMETHOD(KX_NetworkMessageActuator, SetToPropName); KX_PYMETHOD(KX_NetworkMessageActuator, SetSubject); KX_PYMETHOD(KX_NetworkMessageActuator, SetBodyType); KX_PYMETHOD(KX_NetworkMessageActuator, SetBody); + // <----- }; diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp index ac89d8b0716..7782567943e 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp @@ -168,22 +168,22 @@ bool KX_NetworkMessageSensor::IsPositiveTrigger() /* Integration hooks --------------------------------------------------- */ PyTypeObject KX_NetworkMessageSensor::Type = { - PyObject_HEAD_INIT(&PyType_Type) + PyObject_HEAD_INIT(NULL) 0, "KX_NetworkMessageSensor", - sizeof(KX_NetworkMessageSensor), + sizeof(PyObjectPlus_Proxy), 0, - PyDestructor, + py_base_dealloc, 0, - __getattr, - __setattr, - 0, //&MyPyCompare, - __repr, - 0, //&cvalue_as_number, 0, 0, 0, - 0 + py_base_repr, + 0,0,0,0,0,0, + py_base_getattro, + py_base_setattro, + 0,0,0,0,0,0,0,0,0, + Methods }; PyParentObject KX_NetworkMessageSensor::Parents[] = { @@ -195,6 +195,7 @@ PyParentObject KX_NetworkMessageSensor::Parents[] = { }; PyMethodDef KX_NetworkMessageSensor::Methods[] = { + // Deprecated -----> {"setSubjectFilterText", (PyCFunction) KX_NetworkMessageSensor::sPySetSubjectFilterText, METH_O, (PY_METHODCHAR)SetSubjectFilterText_doc}, @@ -210,27 +211,58 @@ PyMethodDef KX_NetworkMessageSensor::Methods[] = { {"getSubjects", (PyCFunction) KX_NetworkMessageSensor::sPyGetSubjects, METH_NOARGS, (PY_METHODCHAR)GetSubjects_doc}, + // <----- {NULL,NULL} //Sentinel }; PyAttributeDef KX_NetworkMessageSensor::Attributes[] = { + KX_PYATTRIBUTE_STRING_RW("subject", 0, 100, false, KX_NetworkMessageSensor, m_subject), + KX_PYATTRIBUTE_INT_RO("frameMessageCount", KX_NetworkMessageSensor, m_frame_message_count), + KX_PYATTRIBUTE_RO_FUNCTION("bodies", KX_NetworkMessageSensor, pyattr_get_bodies), + KX_PYATTRIBUTE_RO_FUNCTION("subjects", KX_NetworkMessageSensor, pyattr_get_subjects), { NULL } //Sentinel }; -PyObject* KX_NetworkMessageSensor::_getattr(const char *attr) { - _getattr_up(SCA_ISensor); // implicit return! +PyObject* KX_NetworkMessageSensor::py_getattro(PyObject *attr) { + py_getattro_up(SCA_ISensor); } +int KX_NetworkMessageSensor::py_setattro(PyObject *attr, PyObject *value) { + return SCA_ISensor::py_setattro(attr, value); +} + +PyObject* KX_NetworkMessageSensor::pyattr_get_bodies(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_NetworkMessageSensor *self = static_cast<KX_NetworkMessageSensor*>(self_v); + if (self->m_BodyList) { + return self->m_BodyList->GetProxy(); + } else { + return (new CListValue())->NewProxy(true); + } +} + +PyObject* KX_NetworkMessageSensor::pyattr_get_subjects(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) +{ + KX_NetworkMessageSensor *self = static_cast<KX_NetworkMessageSensor*>(self_v); + if (self->m_SubjectList) { + return self->m_SubjectList->GetProxy(); + } else { + return (new CListValue())->NewProxy(true); + } +} + +// Deprecated -----> // 1. Set the message subject that this sensor listens for const char KX_NetworkMessageSensor::SetSubjectFilterText_doc[] = "\tsetSubjectFilterText(value)\n" "\tChange the message subject text that this sensor is listening to.\n"; -PyObject* KX_NetworkMessageSensor::PySetSubjectFilterText( PyObject* self, PyObject* value) +PyObject* KX_NetworkMessageSensor::PySetSubjectFilterText(PyObject* value) { + ShowDeprecationWarning("setSubjectFilterText()", "subject"); char* Subject = PyString_AsString(value); if (Subject==NULL) { - PyErr_SetString(PyExc_TypeError, "expected a string message"); + PyErr_SetString(PyExc_TypeError, "sensor.tsetSubjectFilterText(string): KX_NetworkMessageSensor, expected a string message"); return NULL; } @@ -243,8 +275,9 @@ const char KX_NetworkMessageSensor::GetFrameMessageCount_doc[] = "\tgetFrameMessageCount()\n" "\tGet the number of messages received since the last frame.\n"; -PyObject* KX_NetworkMessageSensor::PyGetFrameMessageCount( PyObject* ) +PyObject* KX_NetworkMessageSensor::PyGetFrameMessageCount() { + ShowDeprecationWarning("getFrameMessageCount()", "frameMessageCount"); return PyInt_FromLong(long(m_frame_message_count)); } @@ -253,12 +286,13 @@ const char KX_NetworkMessageSensor::GetBodies_doc[] = "\tgetBodies()\n" "\tGet the list of message bodies.\n"; -PyObject* KX_NetworkMessageSensor::PyGetBodies( PyObject* ) +PyObject* KX_NetworkMessageSensor::PyGetBodies() { + ShowDeprecationWarning("getBodies()", "bodies"); if (m_BodyList) { - return ((PyObject*) m_BodyList->AddRef()); + return m_BodyList->GetProxy(); } else { - return ((PyObject*) new CListValue()); + return (new CListValue())->NewProxy(true); } } @@ -267,8 +301,9 @@ const char KX_NetworkMessageSensor::GetSubject_doc[] = "\tgetSubject()\n" "\tGet the subject: field of the message sensor.\n"; -PyObject* KX_NetworkMessageSensor::PyGetSubject( PyObject* ) +PyObject* KX_NetworkMessageSensor::PyGetSubject() { + ShowDeprecationWarning("getSubject()", "subject"); return PyString_FromString(m_subject ? m_subject : ""); } @@ -277,11 +312,13 @@ const char KX_NetworkMessageSensor::GetSubjects_doc[] = "\tgetSubjects()\n" "\tGet list of message subjects.\n"; -PyObject* KX_NetworkMessageSensor::PyGetSubjects( PyObject* ) +PyObject* KX_NetworkMessageSensor::PyGetSubjects() { + ShowDeprecationWarning("getSubjects()", "subjects"); if (m_SubjectList) { - return ((PyObject*) m_SubjectList->AddRef()); + return m_SubjectList->GetProxy(); } else { - return ((PyObject*) new CListValue()); + return (new CListValue())->NewProxy(true); } } +// <----- Deprecated
\ No newline at end of file diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h index 26adbc9945a..ac0e880d25c 100644 --- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h +++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h @@ -72,14 +72,20 @@ public: /* Python interface -------------------------------------------- */ /* ------------------------------------------------------------- */ - virtual PyObject* _getattr(const char *attr); + virtual PyObject* py_getattro(PyObject *attr); + virtual int py_setattro(PyObject *attr, PyObject *value); + // Deprecated -----> KX_PYMETHOD_DOC_O(KX_NetworkMessageSensor, SetSubjectFilterText); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetFrameMessageCount); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetBodies); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetSubject); KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetSubjects); + // <----- + /* attributes */ + static PyObject* pyattr_get_bodies(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); + static PyObject* pyattr_get_subjects(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); }; |