00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include <cfpython.h>
00031 #include <cfpython_region_private.h>
00032
00033 static PyObject *Crossfire_Region_GetName(Crossfire_Region *regionptr, void *closure) {
00034 return Py_BuildValue("s", cf_region_get_name(regionptr->reg));
00035 }
00036
00037 static PyObject *Crossfire_Region_GetLongname(Crossfire_Region *regionptr, void *closure) {
00038 return Py_BuildValue("s", cf_region_get_longname(regionptr->reg));
00039 }
00040
00041 static PyObject *Crossfire_Region_GetMessage(Crossfire_Region *regionptr, void *closure) {
00042 return Py_BuildValue("s", cf_region_get_message(regionptr->reg));
00043 }
00044
00045 static PyObject *Crossfire_Region_GetNext(Crossfire_Region *party, void *closure) {
00046 return Crossfire_Region_wrap(cf_region_get_next(party->reg));
00047 }
00048
00049 static PyObject *Crossfire_Region_GetParent(Crossfire_Region *party, PyObject *args) {
00050 return Crossfire_Region_wrap(cf_region_get_parent(party->reg));
00051 }
00052
00053 PyObject *Crossfire_Region_wrap(region *what) {
00054 Crossfire_Region *wrapper;
00055
00056
00057 if (what == NULL) {
00058 Py_INCREF(Py_None);
00059 return Py_None;
00060 }
00061
00062 wrapper = PyObject_NEW(Crossfire_Region, &Crossfire_RegionType);
00063 if (wrapper != NULL)
00064 wrapper->reg = what;
00065 return (PyObject *)wrapper;
00066 }
00067
00068 static int Crossfire_Region_InternalCompare(Crossfire_Region *left, Crossfire_Region *right) {
00069 return (left->reg < right->reg ? -1 : (left->reg == right->reg ? 0 : 1));
00070 }