//------------------------------------------------------------------------------------- PyObject* EntityMailboxAbstract::__py_reduce_ex__(PyObject* self, PyObject* protocol) { EntityMailboxAbstract* emailbox = static_cast<EntityMailboxAbstract*>(self); PyObject* args = PyTuple_New(2); PyObject* unpickleMethod = script::Pickler::getUnpickleFunc("Mailbox"); PyTuple_SET_ITEM(args, 0, unpickleMethod); PyObject* args1 = PyTuple_New(4); PyTuple_SET_ITEM(args1, 0, PyLong_FromUnsignedLong(emailbox->getID())); PyTuple_SET_ITEM(args1, 1, PyLong_FromUnsignedLongLong(emailbox->getComponentID())); PyTuple_SET_ITEM(args1, 2, PyLong_FromUnsignedLong(emailbox->getUType())); PyTuple_SET_ITEM(args1, 3, PyLong_FromUnsignedLong(emailbox->getType())); PyTuple_SET_ITEM(args, 1, args1); if(unpickleMethod == NULL){ Py_DECREF(args); return NULL; } return args; }
//------------------------------------------------------------------------------------- PyObject* Base::createCellEntity(PyObject* pyobj) { if(isDestroyed()) { PyErr_Format(PyExc_Exception, "%s::createCellEntity: %d is destroyed!\n", getScriptName(), getID()); PyErr_PrintEx(0); S_Return; } if(Baseapp::getSingleton().findEntity(getID()) == NULL) { PyErr_Format(PyExc_Exception, "%s::createCellEntity: %d not found!\n", getScriptName(), getID()); PyErr_PrintEx(0); S_Return; } if(creatingCell_ || this->getCellMailbox()) { PyErr_Format(PyExc_Exception, "%s::createCellEntity: %d has a cell!\n", getScriptName(), getID()); PyErr_PrintEx(0); S_Return; } if(!PyObject_TypeCheck(pyobj, EntityMailbox::getScriptType())) { PyErr_Format(PyExc_TypeError, "create %s arg1 is not cellMailbox!", this->getScriptName()); PyErr_PrintEx(0); S_Return; } EntityMailboxAbstract* cellMailbox = static_cast<EntityMailboxAbstract*>(pyobj); if(cellMailbox->getType() != MAILBOX_TYPE_CELL) { PyErr_Format(PyExc_TypeError, "create %s args1 not is a direct cellMailbox!", this->getScriptName()); PyErr_PrintEx(0); S_Return; } creatingCell_ = true; Baseapp::getSingleton().createCellEntity(cellMailbox, this); S_Return; }