/*==LICENSE==* CyanWorlds.com Engine - MMOG client, server and tools Copyright (C) 2011 Cyan Worlds, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . You can contact Cyan Worlds, Inc. by email legal@cyan.com or by snail mail at: Cyan Worlds, Inc. 14617 N Newport Hwy Mead, WA 99021 *==LICENSE==*/ #include "pyAgeLinkStruct.h" #include "pySpawnPointInfo.h" #include // glue functions PYTHON_CLASS_DEFINITION(ptAgeLinkStruct, pyAgeLinkStruct); PYTHON_DEFAULT_NEW_DEFINITION(ptAgeLinkStruct, pyAgeLinkStruct) PYTHON_DEFAULT_DEALLOC_DEFINITION(ptAgeLinkStruct) PYTHON_INIT_DEFINITION(ptAgeLinkStruct, args, keywords) { PYTHON_RETURN_INIT_OK; } PYTHON_RICH_COMPARE_DEFINITION(ptAgeLinkStruct, obj1, obj2, compareType) { if ((obj1 == Py_None) || (obj2 == Py_None) || !pyAgeLinkStruct::Check(obj1) || !pyAgeLinkStruct::Check(obj2)) { // if they aren't the same type, they don't match, obviously (we also never equal none) if (compareType == Py_EQ) PYTHON_RCOMPARE_FALSE; else if (compareType == Py_NE) PYTHON_RCOMPARE_TRUE; else { PyErr_SetString(PyExc_NotImplementedError, "invalid comparison for a ptAgeLinkStruct object"); PYTHON_RCOMPARE_ERROR; } } pyAgeLinkStruct *struct1 = pyAgeLinkStruct::ConvertFrom(obj1); pyAgeLinkStruct *struct2 = pyAgeLinkStruct::ConvertFrom(obj2); if (compareType == Py_EQ) { if ((*struct1) == (*struct2)) PYTHON_RCOMPARE_TRUE; PYTHON_RCOMPARE_FALSE; } else if (compareType == Py_NE) { if ((*struct1) != (*struct2)) PYTHON_RCOMPARE_TRUE; PYTHON_RCOMPARE_FALSE; } PyErr_SetString(PyExc_NotImplementedError, "invalid comparison for a ptAgeLinkStruct object"); PYTHON_RCOMPARE_ERROR; } PYTHON_METHOD_DEFINITION(ptAgeLinkStruct, copyFrom, args) { PyObject* linkStructObj = NULL; if (!PyArg_ParseTuple(args, "O", &linkStructObj)) { PyErr_SetString(PyExc_TypeError, "copyFrom expects a ptAgeLinkStruct or ptAgeLinkStructRef"); PYTHON_RETURN_ERROR; } if (pyAgeLinkStruct::Check(linkStructObj)) { pyAgeLinkStruct* linkStruct = pyAgeLinkStruct::ConvertFrom(linkStructObj); self->fThis->CopyFrom(*linkStruct); PYTHON_RETURN_NONE; } else if (pyAgeLinkStructRef::Check(linkStructObj)) { pyAgeLinkStructRef* linkStruct = pyAgeLinkStructRef::ConvertFrom(linkStructObj); self->fThis->CopyFromRef(*linkStruct); PYTHON_RETURN_NONE; } PyErr_SetString(PyExc_TypeError, "copyFrom expects a ptAgeLinkStruct or ptAgeLinkStructRef"); PYTHON_RETURN_ERROR; } PYTHON_METHOD_DEFINITION_NOARGS(ptAgeLinkStruct, getAgeInfo) { return self->fThis->GetAgeInfo(); } PYTHON_METHOD_DEFINITION(ptAgeLinkStruct, setAgeInfo, args) { PyObject* ageInfoObj = NULL; if (!PyArg_ParseTuple(args, "O", &ageInfoObj)) { PyErr_SetString(PyExc_TypeError, "setAgeInfo expects a ptAgeInfoStruct"); PYTHON_RETURN_ERROR; } if (!pyAgeInfoStruct::Check(ageInfoObj)) { PyErr_SetString(PyExc_TypeError, "setAgeInfo expects a ptAgeInfoStruct"); PYTHON_RETURN_ERROR; } pyAgeInfoStruct* ageInfo = pyAgeInfoStruct::ConvertFrom(ageInfoObj); self->fThis->SetAgeInfo(*ageInfo); PYTHON_RETURN_NONE; } PYTHON_METHOD_DEFINITION_NOARGS(ptAgeLinkStruct, getParentAgeFilename) { return PyString_FromString(self->fThis->GetParentAgeFilename()); } PYTHON_METHOD_DEFINITION(ptAgeLinkStruct, setParentAgeFilename, args) { char* filename; if (!PyArg_ParseTuple(args, "s", &filename)) { PyErr_SetString(PyExc_TypeError, "setParentAgeFilename expects a string"); PYTHON_RETURN_ERROR; } self->fThis->SetParentAgeFilename(filename); PYTHON_RETURN_NONE; } PYTHON_METHOD_DEFINITION_NOARGS(ptAgeLinkStruct, getLinkingRules) { return PyInt_FromLong(self->fThis->GetLinkingRules()); } PYTHON_METHOD_DEFINITION(ptAgeLinkStruct, setLinkingRules, args) { int rules; if (!PyArg_ParseTuple(args, "i", &rules)) { PyErr_SetString(PyExc_TypeError, "setLinkingRules expects an int"); PYTHON_RETURN_ERROR; } self->fThis->SetLinkingRules(rules); PYTHON_RETURN_NONE; } PYTHON_METHOD_DEFINITION_NOARGS(ptAgeLinkStruct, getSpawnPoint) { return self->fThis->GetSpawnPoint(); } PYTHON_METHOD_DEFINITION(ptAgeLinkStruct, setSpawnPoint, args) { PyObject* spawnPtInfoObj = NULL; if (!PyArg_ParseTuple(args, "O", &spawnPtInfoObj)) { PyErr_SetString(PyExc_TypeError, "setSpawnPoint expects a ptSpawnPointInfo or a ptSpawnPointInfoRef"); PYTHON_RETURN_ERROR; } if (pySpawnPointInfo::Check(spawnPtInfoObj)) { pySpawnPointInfo* spawnPt = pySpawnPointInfo::ConvertFrom(spawnPtInfoObj); self->fThis->SetSpawnPoint(*spawnPt); PYTHON_RETURN_NONE; } else if (pySpawnPointInfoRef::Check(spawnPtInfoObj)) { pySpawnPointInfoRef* spawnPt = pySpawnPointInfoRef::ConvertFrom(spawnPtInfoObj); self->fThis->SetSpawnPointRef(*spawnPt); PYTHON_RETURN_NONE; } PyErr_SetString(PyExc_TypeError, "setSpawnPoint expects a ptSpawnPointInfo or a ptSpawnPointInfoRef"); PYTHON_RETURN_ERROR; } PYTHON_START_METHODS_TABLE(ptAgeLinkStruct) PYTHON_METHOD(ptAgeLinkStruct, copyFrom, "Params: other\nCopies data from one ptAgeLinkStruct or ptAgeLinkStructRef to this one"), PYTHON_METHOD_NOARGS(ptAgeLinkStruct, getAgeInfo, "Returns a ptAgeInfoStructRef of the AgeInfo for this link"), PYTHON_METHOD(ptAgeLinkStruct, setAgeInfo, "Params: ageInfo\nSets the AgeInfoStruct from the data in ageInfo (a ptAgeInfoStruct)"), PYTHON_METHOD_NOARGS(ptAgeLinkStruct, getParentAgeFilename, "Returns a string of the parent age filename"), PYTHON_METHOD(ptAgeLinkStruct, setParentAgeFilename, "Params: filename\nSets the parent age filename for child age links"), PYTHON_METHOD_NOARGS(ptAgeLinkStruct, getLinkingRules, "Returns the linking rules of this link"), PYTHON_METHOD(ptAgeLinkStruct, setLinkingRules, "Params: rule\nSets the linking rules for this link"), PYTHON_METHOD_NOARGS(ptAgeLinkStruct, getSpawnPoint, "Gets the spawn point ptSpawnPointInfoRef of this link"), PYTHON_METHOD(ptAgeLinkStruct, setSpawnPoint, "Params: spawnPtInfo\nSets the spawn point of this link (a ptSpawnPointInfo or ptSpawnPointInfoRef)"), PYTHON_END_METHODS_TABLE; // type structure definition #define ptAgeLinkStruct_COMPARE PYTHON_NO_COMPARE #define ptAgeLinkStruct_AS_NUMBER PYTHON_NO_AS_NUMBER #define ptAgeLinkStruct_AS_SEQUENCE PYTHON_NO_AS_SEQUENCE #define ptAgeLinkStruct_AS_MAPPING PYTHON_NO_AS_MAPPING #define ptAgeLinkStruct_STR PYTHON_NO_STR #define ptAgeLinkStruct_RICH_COMPARE PYTHON_DEFAULT_RICH_COMPARE(ptAgeLinkStruct) #define ptAgeLinkStruct_GETSET PYTHON_NO_GETSET #define ptAgeLinkStruct_BASE PYTHON_NO_BASE PLASMA_CUSTOM_TYPE(ptAgeLinkStruct, "Class to hold the data of the AgeLink structure"); // required functions for PyObject interoperability PYTHON_CLASS_NEW_IMPL(ptAgeLinkStruct, pyAgeLinkStruct) PyObject *pyAgeLinkStruct::New(plAgeLinkStruct *link) { ptAgeLinkStruct *newObj = (ptAgeLinkStruct*)ptAgeLinkStruct_type.tp_new(&ptAgeLinkStruct_type, NULL, NULL); newObj->fThis->fAgeLink.CopyFrom(link); return (PyObject*)newObj; } PYTHON_CLASS_CHECK_IMPL(ptAgeLinkStruct, pyAgeLinkStruct) PYTHON_CLASS_CONVERT_FROM_IMPL(ptAgeLinkStruct, pyAgeLinkStruct) /////////////////////////////////////////////////////////////////////////// // // AddPlasmaClasses - the python module definitions // void pyAgeLinkStruct::AddPlasmaClasses(PyObject *m) { PYTHON_CLASS_IMPORT_START(m); PYTHON_CLASS_IMPORT(m, ptAgeLinkStruct); PYTHON_CLASS_IMPORT_END(m); } // glue functions PYTHON_CLASS_DEFINITION(ptAgeLinkStructRef, pyAgeLinkStructRef); PYTHON_DEFAULT_NEW_DEFINITION(ptAgeLinkStructRef, pyAgeLinkStructRef) PYTHON_DEFAULT_DEALLOC_DEFINITION(ptAgeLinkStructRef) PYTHON_NO_INIT_DEFINITION(ptAgeLinkStructRef) PYTHON_METHOD_DEFINITION(ptAgeLinkStructRef, copyFrom, args) { PyObject* linkStructObj = NULL; if (!PyArg_ParseTuple(args, "O", &linkStructObj)) { PyErr_SetString(PyExc_TypeError, "copyFrom expects a ptAgeLinkStruct or ptAgeLinkStructRef"); PYTHON_RETURN_ERROR; } if (pyAgeLinkStruct::Check(linkStructObj)) { pyAgeLinkStruct* linkStruct = pyAgeLinkStruct::ConvertFrom(linkStructObj); self->fThis->CopyFrom(*linkStruct); PYTHON_RETURN_NONE; } else if (pyAgeLinkStructRef::Check(linkStructObj)) { pyAgeLinkStructRef* linkStruct = pyAgeLinkStructRef::ConvertFrom(linkStructObj); self->fThis->CopyFromRef(*linkStruct); PYTHON_RETURN_NONE; } PyErr_SetString(PyExc_TypeError, "copyFrom expects a ptAgeLinkStruct or ptAgeLinkStructRef"); PYTHON_RETURN_ERROR; } PYTHON_METHOD_DEFINITION_NOARGS(ptAgeLinkStructRef, getAgeInfo) { return self->fThis->GetAgeInfo(); } PYTHON_METHOD_DEFINITION(ptAgeLinkStructRef, setAgeInfo, args) { PyObject* ageInfoObj = NULL; if (!PyArg_ParseTuple(args, "O", &ageInfoObj)) { PyErr_SetString(PyExc_TypeError, "setAgeInfo expects a ptAgeInfoStruct"); PYTHON_RETURN_ERROR; } if (!pyAgeInfoStruct::Check(ageInfoObj)) { PyErr_SetString(PyExc_TypeError, "setAgeInfo expects a ptAgeInfoStruct"); PYTHON_RETURN_ERROR; } pyAgeInfoStruct* ageInfo = pyAgeInfoStruct::ConvertFrom(ageInfoObj); self->fThis->SetAgeInfo(*ageInfo); PYTHON_RETURN_NONE; } PYTHON_METHOD_DEFINITION_NOARGS(ptAgeLinkStructRef, getLinkingRules) { return PyInt_FromLong(self->fThis->GetLinkingRules()); } PYTHON_METHOD_DEFINITION(ptAgeLinkStructRef, setLinkingRules, args) { int rules; if (!PyArg_ParseTuple(args, "i", &rules)) { PyErr_SetString(PyExc_TypeError, "setLinkingRules expects an int"); PYTHON_RETURN_ERROR; } self->fThis->SetLinkingRules(rules); PYTHON_RETURN_NONE; } PYTHON_METHOD_DEFINITION_NOARGS(ptAgeLinkStructRef, getSpawnPoint) { return self->fThis->GetSpawnPoint(); } PYTHON_METHOD_DEFINITION(ptAgeLinkStructRef, setSpawnPoint, args) { PyObject* spawnPtInfoObj = NULL; if (!PyArg_ParseTuple(args, "O", &spawnPtInfoObj)) { PyErr_SetString(PyExc_TypeError, "setSpawnPoint expects a ptSpawnPointInfo or a ptSpawnPointInfoRef"); PYTHON_RETURN_ERROR; } if (pySpawnPointInfo::Check(spawnPtInfoObj)) { pySpawnPointInfo* spawnPt = pySpawnPointInfo::ConvertFrom(spawnPtInfoObj); self->fThis->SetSpawnPoint(*spawnPt); PYTHON_RETURN_NONE; } else if (pySpawnPointInfoRef::Check(spawnPtInfoObj)) { pySpawnPointInfoRef* spawnPt = pySpawnPointInfoRef::ConvertFrom(spawnPtInfoObj); self->fThis->SetSpawnPointRef(*spawnPt); PYTHON_RETURN_NONE; } PyErr_SetString(PyExc_TypeError, "setSpawnPoint expects a ptSpawnPointInfo or a ptSpawnPointInfoRef"); PYTHON_RETURN_ERROR; } PYTHON_START_METHODS_TABLE(ptAgeLinkStructRef) PYTHON_METHOD(ptAgeLinkStructRef, copyFrom, "Params: other\nCopies data from one ptAgeLinkStruct or ptAgeLinkStructRef to this one"), PYTHON_METHOD_NOARGS(ptAgeLinkStructRef, getAgeInfo, "Returns a ptAgeInfoStructRef of the AgeInfo for this link"), PYTHON_METHOD(ptAgeLinkStructRef, setAgeInfo, "Params: ageInfo\nSets the AgeInfoStruct from the data in ageInfo (a ptAgeInfoStruct)"), PYTHON_METHOD_NOARGS(ptAgeLinkStructRef, getLinkingRules, "Returns the linking rules of this link"), PYTHON_METHOD(ptAgeLinkStructRef, setLinkingRules, "Params: rule\nSets the linking rules for this link"), PYTHON_METHOD_NOARGS(ptAgeLinkStructRef, getSpawnPoint, "Gets the spawn point ptSpawnPointInfoRef of this link"), PYTHON_METHOD(ptAgeLinkStructRef, setSpawnPoint, "Params: spawnPtInfo\nSets the spawn point of this link (a ptSpawnPointInfo or ptSpawnPointInfoRef)"), PYTHON_END_METHODS_TABLE; // type structure definition PLASMA_DEFAULT_TYPE(ptAgeLinkStructRef, "Class to hold the data of the AgeLink structure"); // required functions for PyObject interoperability PyObject *pyAgeLinkStructRef::New(plAgeLinkStruct &link) { ptAgeLinkStructRef *newObj = (ptAgeLinkStructRef*)ptAgeLinkStructRef_type.tp_new(&ptAgeLinkStructRef_type, NULL, NULL); newObj->fThis->fAgeLink = link; return (PyObject*)newObj; } PYTHON_CLASS_CHECK_IMPL(ptAgeLinkStructRef, pyAgeLinkStructRef) PYTHON_CLASS_CONVERT_FROM_IMPL(ptAgeLinkStructRef, pyAgeLinkStructRef) /////////////////////////////////////////////////////////////////////////// // // AddPlasmaClasses - the python module definitions // void pyAgeLinkStructRef::AddPlasmaClasses(PyObject *m) { PYTHON_CLASS_IMPORT_START(m); PYTHON_CLASS_IMPORT(m, ptAgeLinkStructRef); PYTHON_CLASS_IMPORT_END(m); }