33 #define EXISTCHECK(ob) { \ 34 if (!ob || !ob->obj || (object_was_destroyed(ob->obj, ob->obj->count))) { \ 35 PyErr_SetString(PyExc_ReferenceError, "Crossfire object no longer exists"); \ 44 #define TYPEEXISTCHECK(ob) { \ 45 if (!ob || !PyObject_TypeCheck((PyObject*)ob, &Crossfire_ObjectType) || !ob->obj || (object_was_destroyed(ob->obj, ob->obj->count))) { \ 46 PyErr_SetString(PyExc_ReferenceError, "Not a Crossfire object or Crossfire object no longer exists"); \ 50 #define EXISTCHECK_INT(ob) { \ 51 if (!ob || !ob->obj || (object_was_destroyed(ob->obj, ob->obj->count))) { \ 52 PyErr_SetString(PyExc_ReferenceError, "Crossfire object no longer exists"); \ 87 PyErr_SetString(PyExc_TypeError,
"Cannot delete the Title attribute");
91 PyErr_SetString(PyExc_TypeError,
"The Title attribute must be a string");
94 if (!PyArg_Parse(value,
"s", &val))
115 if (value == Py_None)
129 if (!PyArg_ParseTuple(args,
"s|i", &message, &color))
138 const char *knowledge;
141 if (!PyArg_ParseTuple(args,
"s", &knowledge))
148 const char *knowledge;
151 if (!PyArg_ParseTuple(args,
"s", &knowledge))
191 if (!PyArg_Parse(value,
"s", &location))
206 if (!PyArg_Parse(value,
"i", &x))
221 if (!PyArg_Parse(value,
"i", &y))
233 if (!PyArg_ParseTuple(args,
"si", &code, &state))
250 if (!PyArg_ParseTuple(args,
"s", &code))
257 return Py_BuildValue(
"i", state);
266 if (!PyArg_ParseTuple(args,
"si", &code, &state))
283 if (!PyArg_ParseTuple(args,
"s", &code))
290 return Py_BuildValue(
"i", completed);
971 PyErr_SetString(PyExc_TypeError,
"Cannot delete the Message attribute");
975 PyErr_SetString(PyExc_TypeError,
"The Message attribute must be a string");
978 if (!PyArg_Parse(value,
"s", &val))
990 PyErr_SetString(PyExc_TypeError,
"Cannot delete the Name attribute");
994 PyErr_SetString(PyExc_TypeError,
"The Name attribute must be a string");
997 if (!PyArg_Parse(value,
"s", &val))
1009 if (value == NULL) {
1010 PyErr_SetString(PyExc_TypeError,
"Cannot delete the NamePl attribute");
1014 PyErr_SetString(PyExc_TypeError,
"The NamePl attribute must be a string");
1017 if (!PyArg_Parse(value,
"s", &val))
1028 if (value == NULL) {
1029 PyErr_SetString(PyExc_TypeError,
"Cannot delete the Title attribute");
1033 PyErr_SetString(PyExc_TypeError,
"The Title attribute must be a string");
1036 if (!PyArg_Parse(value,
"s", &val))
1047 if (value == NULL) {
1048 PyErr_SetString(PyExc_TypeError,
"Cannot delete the Race attribute");
1052 PyErr_SetString(PyExc_TypeError,
"The Race attribute must be a string");
1055 if (!PyArg_Parse(value,
"s", &val))
1077 if (value == NULL) {
1078 PyErr_SetString(PyExc_TypeError,
"Cannot delete the Slaying attribute");
1082 PyErr_SetString(PyExc_TypeError,
"The Slaying attribute must be a string");
1085 if (!PyArg_Parse(value,
"s", &val))
1096 if (value == NULL) {
1097 PyErr_SetString(PyExc_TypeError,
"Cannot delete the Skill attribute");
1101 PyErr_SetString(PyExc_TypeError,
"The Skill attribute must be a string");
1104 if (!PyArg_Parse(value,
"s", &val))
1115 if (!PyArg_Parse(value,
"i", &val))
1126 if (!PyArg_Parse(value,
"i", &val))
1137 if (!PyArg_Parse(value,
"i", &val))
1148 if (!PyArg_Parse(value,
"i", &val))
1160 if (!PyArg_Parse(value,
"i", &val))
1172 if (!PyArg_Parse(value,
"i", &val))
1184 if (!PyArg_Parse(value,
"i", &val))
1196 if (!PyArg_Parse(value,
"i", &val))
1208 if (!PyArg_Parse(value,
"i", &val))
1220 if (!PyArg_Parse(value,
"i", &val))
1232 if (!PyArg_Parse(value,
"i", &val))
1243 if (!PyArg_Parse(value,
"i", &val))
1254 if (!PyArg_Parse(value,
"i", &val))
1265 if (!PyArg_Parse(value,
"i", &val))
1276 if (!PyArg_Parse(value,
"i", &val))
1287 if (!PyArg_Parse(value,
"i", &val))
1298 if (!PyArg_Parse(value,
"i", &val))
1309 if (!PyArg_Parse(value,
"i", &val))
1320 if (!PyArg_Parse(value,
"i", &val))
1331 if (!PyArg_Parse(value,
"i", &val))
1342 if (!PyArg_Parse(value,
"i", &val))
1353 if (!PyArg_Parse(value,
"i", &val))
1364 if (!PyArg_Parse(value,
"i", &val))
1375 if (!PyArg_Parse(value,
"i", &val))
1386 if (!PyArg_Parse(value,
"s", &val))
1397 if (!PyArg_Parse(value,
"f", &val))
1409 if (!PyArg_Parse(value,
"f", &val))
1421 if (!PyArg_Parse(value,
"i", &val))
1425 PyErr_SetString(PyExc_TypeError,
"Invalid quantity");
1437 if (!PyArg_Parse(value,
"i", &val))
1449 if (!PyArg_Parse(value,
"i", &val))
1461 if (!PyArg_Parse(value,
"i", &val))
1472 if (!PyArg_Parse(value,
"i", &val))
1483 if (!PyArg_Parse(value,
"s", &face))
1487 PyErr_SetString(PyExc_TypeError,
"Unknown face.");
1497 if (!PyArg_Parse(value,
"s", &anim))
1501 PyErr_SetString(PyExc_TypeError,
"Unknown animation.");
1512 if (!PyArg_Parse(value,
"i", &val))
1523 if (!PyArg_Parse(value,
"i", &val))
1535 if (!PyArg_Parse(value,
"i", &val))
1546 if (!PyArg_Parse(value,
"i", &val))
1557 if (!PyArg_Parse(value,
"i", &val))
1568 if (!PyArg_Parse(value,
"i", &val))
1579 if (!PyArg_ParseTuple(value,
"i", &val))
1590 if (!PyArg_Parse(value,
"i", &val))
1601 if (!PyArg_Parse(value,
"i", &val))
1612 if (!PyArg_Parse(value,
"i", &val))
1623 if (!PyArg_Parse(value,
"i", &val))
1634 if (!PyArg_Parse(value,
"i", &val))
1645 if (!PyArg_Parse(value,
"i", &val))
1656 if (!PyArg_Parse(value,
"i", &val))
1667 if (!PyArg_Parse(value,
"i", &val))
1678 if (!PyArg_Parse(value,
"i", &val))
1689 if (!PyArg_Parse(value,
"i", &val))
1700 if (!PyArg_Parse(value,
"i", &val))
1711 if (!PyArg_Parse(value,
"i", &val))
1722 if (!PyArg_Parse(value,
"i", &val))
1733 if (!PyArg_Parse(value,
"i", &val))
1744 if (!PyArg_Parse(value,
"i", &val))
1755 if (!PyArg_Parse(value,
"i", &val))
1766 if (!PyArg_Parse(value,
"i", &val))
1777 if (!PyArg_Parse(value,
"i", &val))
1788 if (!PyArg_Parse(value,
"i", &val))
1799 if (!PyArg_Parse(value,
"i", &val))
1810 if (!PyArg_Parse(value,
"i", &val))
1821 if (!PyArg_Parse(value,
"i", &val))
1832 if (!PyArg_Parse(value,
"i", &val))
1843 if (!PyArg_Parse(value,
"i", &val))
1854 if (!PyArg_Parse(value,
"i", &val))
1865 if (!PyArg_Parse(value,
"i", &val))
1876 if (!PyArg_Parse(value,
"l", &val))
1887 if (!PyArg_Parse(value,
"i", &val))
1918 if (!PyArg_Parse(value,
"i", &val))
1929 if (!PyArg_Parse(value,
"i", &val))
1940 if (!PyArg_Parse(value,
"i", &val))
1951 if (!PyArg_Parse(value,
"i", &val))
1962 if (!PyArg_Parse(value,
"i", &val))
1973 if (!PyArg_Parse(value,
"L", &val))
1984 if (!PyArg_Parse(value,
"i", &val))
1995 if (!PyArg_Parse(value,
"i", &val))
2006 if (!PyArg_Parse(value,
"i", &val))
2016 if (!PyArg_Parse(value,
"B", &move))
2026 if (!PyArg_Parse(value,
"B", &move))
2036 if (!PyArg_Parse(value,
"B", &move))
2046 if (!PyArg_Parse(value,
"B", &move))
2056 if (!PyArg_Parse(value,
"B", &move))
2066 if (!PyArg_Parse(value,
"B", &move))
2076 if (!PyArg_Parse(value,
"i", &item_power))
2128 if (!PyArg_ParseTuple(args,
"i", &clone_type))
2131 if (clone_type != 0 && clone_type != 1)
2133 PyErr_SetString(PyExc_ValueError,
"Clone type must be 0 (object_create_clone) or 1 (object_copy).");
2141 PyErr_SetString(PyExc_RuntimeError,
"Clone failed.");
2155 if (!PyArg_ParseTuple(args,
"i", &count))
2162 PyErr_SetString(PyExc_ValueError, err);
2198 return Py_BuildValue(
"i", val);
2210 victim = pcause->
obj;
2226 cause = pcause->
obj;
2229 return Py_BuildValue(
"i", result);
2233 char *message, buf[2048];
2236 if (!PyArg_ParseTuple(args,
"s", &message))
2247 PyErr_SetString(PyExc_ValueError,
"too many NPCs");
2251 if (strlen(message) >=
sizeof(buf) - 1)
2252 cf_log(
llevError,
"warning, too long message in npcSay, will be truncated");
2268 if (!PyArg_ParseTuple(args,
"ii", &x, &y))
2287 if (!PyArg_ParseTuple(args,
"i", &resist))
2290 return Py_BuildValue(
"l", 0);
2299 if (!PyArg_ParseTuple(args,
"ii", &resist, &value))
2353 if (!PyArg_ParseTuple(args,
"s", &spellname))
2383 if (!PyArg_ParseTuple(args,
"L", &to_pay))
2388 return Py_BuildValue(
"i", val);
2401 return Py_BuildValue(
"i", val);
2409 if (!PyArg_ParseTuple(args,
"s", &keyname))
2414 return Py_BuildValue(
"s", val ? val :
"");
2423 if (!PyArg_ParseTuple(args,
"ss|i", &keyname, &value, &add_key))
2434 if (!PyArg_ParseTuple(args,
"li", &delay, &mode))
2445 if (!PyArg_ParseTuple(args,
"s", &whatstr))
2468 if (!PyArg_ParseTuple(args,
"s", &whatstr))
2479 if (!PyArg_ParseTuple(args,
"ii", &x, &y))
2490 if (!PyArg_ParseTuple(args,
"s", &txt))
2531 const char *skill = NULL;
2534 if (!PyArg_ParseTuple(args,
"L|si", &exp, &skill, &arg))
2550 if (!PyArg_ParseTuple(args,
"i", &dir))
2559 if (!PyArg_ParseTuple(args,
"ii", &x, &y))
2567 const char *message = NULL;
2580 op2 = activator->
obj;
2588 if (!PyArg_ParseTuple(args,
"i", &level))
2603 return (left->
obj < right->
obj ? -1 : (left->
obj == right->
obj ? 0 : 1));
2612 Py_INCREF(Py_NotImplemented);
2613 return Py_NotImplemented;
2617 if (result == -1 && PyErr_Occurred())
2622 result = (result == 0);
2625 result = (result != 0);
2628 result = (result <= 0);
2631 result = (result >= 0);
2634 result = (result == -1);
2637 result = (result == 1);
2640 return PyBool_FromLong(result);
2714 {
"DungeonMaster", (getter)
Object_GetDM, NULL, NULL, NULL },
2787 { NULL, NULL, NULL, NULL, NULL }
2830 { NULL, NULL, 0, NULL }
2893 #if defined(IS_PY25) || defined(IS_PY3K) 2907 return (PyObject *)
self;
2931 return (PyObject *)
self;
2950 PyVarObject_HEAD_INIT(NULL, 0)
2952 PyObject_HEAD_INIT(NULL)
2974 PyObject_GenericGetAttr,
2975 PyObject_GenericSetAttr,
2977 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
2978 "Crossfire objects",
3014 { NULL, NULL, NULL, NULL, NULL }
3027 { NULL, NULL, 0, NULL }
3034 PyVarObject_HEAD_INIT(NULL, 0)
3036 PyObject_HEAD_INIT(NULL)
3055 PyObject_GenericGetAttr,
3056 PyObject_GenericSetAttr,
3105 if (plwrap != NULL) {
3109 pyobj = (PyObject *)plwrap;
3112 if (wrapper != NULL) {
3113 wrapper->
obj = what;
3116 pyobj = (PyObject *)wrapper;
#define CFAPI_OBJECT_PROP_STR
#define CFAPI_OBJECT_PROP_MAP
static int Object_SetExp(Crossfire_Object *whoptr, PyObject *value, void *closure)
int cf_object_set_nrof(object *, int nrof)
static PyObject * Object_GetMessage(Crossfire_Object *whoptr, void *closure)
static int Object_SetUsedUp(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_Split(Crossfire_Object *who, PyObject *args)
static PyObject * Crossfire_Object_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
static PyObject * Object_GetMaxGrace(Crossfire_Object *whoptr, void *closure)
static PyObject * Crossfire_Object_Event(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetSP(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetBelow(Crossfire_Object *whoptr, void *closure)
static void add_object_assoc(object *key, PyObject *value)
long cf_object_get_long_property(object *op, long propcode)
static PyObject * Object_GetWis(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_MATERIAL
static PyObject * Crossfire_Object_AddExp(Crossfire_Object *who, PyObject *args)
void cf_object_free_drop_inventory(object *ob)
#define CFAPI_OBJECT_PROP_ANIMATION
#define CFAPI_OBJECT_PROP_SP
static PyObject * Object_GetRunAway(Crossfire_Object *whoptr, void *closure)
PyObject_HEAD object * obj
CFPContext * current_context
static int Object_SetWeightLimit(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetDuration(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_NAME
#define CFAPI_OBJECT_PROP_OB_BELOW
int cf_player_knowledge_has(object *op, const char *knowledge)
static PyObject * Crossfire_Object_Pay(Crossfire_Object *who, PyObject *args)
object * cf_object_change_map(object *op, mapstruct *m, object *originator, int flag, int x, int y)
static PyObject * Player_GetBedX(Crossfire_Player *whoptr, void *closure)
static int Object_SetScared(Crossfire_Object *whoptr, PyObject *value, void *closure)
PyObject * Crossfire_Party_wrap(partylist *what)
static PyObject * Object_GetAbove(Crossfire_Object *whoptr, void *closure)
static int Object_SetLastSP(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define CFAPI_OBJECT_PROP_RACE
static PyObject * Crossfire_Object_CreateInside(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetFace(Crossfire_Object *whoptr, void *closure)
static int Object_SetCha(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Crossfire_Object_InternalCompare(Crossfire_Object *left, Crossfire_Object *right)
void cf_spring_trap(object *trap, object *victim)
static int Object_SetHitBack(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetCanUseScroll(Crossfire_Object *whoptr, void *closure)
static int Object_SetMaxGrace(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_CastAbility(Crossfire_Object *who, PyObject *args)
#define CFAPI_OBJECT_PROP_ARCHETYPE
#define CFAPI_OBJECT_PROP_WEIGHT
static PyObject * Object_GetStealthy(Crossfire_Object *whoptr, void *closure)
static PyObject * find_assoc_pyobject(object *key)
#define CFAPI_OBJECT_PROP_ATTACK_TYPE
void cf_free_string(sstring str)
static int Object_SetMap(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_Apply(Crossfire_Object *who, PyObject *args)
#define CFAPI_OBJECT_PROP_FACE
static PyObject * Object_GetContainer(Crossfire_Object *whoptr, void *closure)
const char * cf_object_get_key(object *op, const char *keyname)
static int Object_SetQuantity(Crossfire_Object *whoptr, PyObject *value, void *closure)
PyObject * Crossfire_Map_wrap(mapstruct *what)
static PyObject * Crossfire_Object_Drop(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetSlaying(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetInventory(Crossfire_Object *whoptr, void *closure)
static int Object_SetApplied(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetCanUseWeapon(Crossfire_Object *whoptr, void *closure)
static PyGetSetDef Player_getseters[]
static PyObject * Crossfire_Object_CreateTimer(Crossfire_Object *who, PyObject *args)
static int Object_SetInvisible(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Player_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
static int Object_SetNoSave(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define CFAPI_OBJECT_PROP_GOD
static PyObject * Object_GetInvisible(Crossfire_Object *whoptr, void *closure)
PyObject_HEAD partylist * party
#define CFAPI_OBJECT_PROP_DIRECTION
static int Object_SetFood(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetAC(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetAC(Crossfire_Object *whoptr, void *closure)
static PyObject * Crossfire_Object_Take(Crossfire_Object *who, PyObject *args)
static int Player_SetBedY(Crossfire_Player *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetMoveOn(Crossfire_Object *whoptr, void *closure)
void cf_object_set_flag(object *ob, int flag, int value)
int cf_object_set_animation(object *op, const char *animation)
#define CFAPI_OBJECT_PROP_MAXGP
static PyObject * Object_GetTurnable(Crossfire_Object *whoptr, void *closure)
static PyObject * Player_GetBedMap(Crossfire_Player *whoptr, void *closure)
static PyObject * Object_GetFacing(Crossfire_Object *whoptr, void *closure)
static int Player_SetParty(Crossfire_Player *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetArchetype(Crossfire_Object *whoptr, void *closure)
static PyObject * Crossfire_Object_Remove(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetThrown(Crossfire_Object *whoptr, void *closure)
static int Object_SetSlaying(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetNoDamage(Crossfire_Object *whoptr, PyObject *value, void *closure)
object * cf_object_insert_in_ob(object *op, object *where)
static PyObject * Object_GetLastEat(Crossfire_Object *whoptr, void *closure)
partylist * cf_player_get_party(object *op)
static int Object_SetReflectMissiles(Crossfire_Object *whoptr, PyObject *value, void *closure)
ptr_assoc * ptr_assoc_table[PTR_ASSOC_TABLESIZE]
#define CFAPI_OBJECT_PROP_SUBTYPE
void cf_object_set_resistance(object *op, int rtype, int16_t value)
static int Object_SetHP(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_MoveTo(Crossfire_Object *who, PyObject *args)
static int Object_SetBlocksView(Crossfire_Object *whoptr, PyObject *value, void *closure)
int16_t cf_object_get_resistance(object *op, int rtype)
static int Object_SetBlind(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define CFAPI_OBJECT_PROP_CONTAINER
#define CFAPI_OBJECT_PROP_INVENTORY
static int Object_SetAttackType(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetFood(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_NAME_PLURAL
static PyObject * Object_GetMonster(Crossfire_Object *whoptr, void *closure)
static PyObject * Crossfire_Object_Cast(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetMoveOff(Crossfire_Object *whoptr, void *closure)
int cf_object_pay_item(object *op, object *pl)
static PyObject * Object_GetUnaggressive(Crossfire_Object *whoptr, void *closure)
static PyMethodDef ObjectMethods[]
PyTypeObject Crossfire_PartyType
#define CFAPI_OBJECT_PROP_OWNER
static PyObject * Object_GetNoDamage(Crossfire_Object *whoptr, void *closure)
static PyObject * Crossfire_Object_GetResist(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetLevel(Crossfire_Object *whoptr, void *closure)
static PyObject * Crossfire_Object_Long(PyObject *obj)
#define CFAPI_OBJECT_PROP_MOVE_ON
static PyObject * Object_GetCanSeeInvisible(Crossfire_Object *whoptr, void *closure)
static int Object_SetSP(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define CFAPI_OBJECT_PROP_MESSAGE
static PyObject * Object_GetTotalExp(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetUndead(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_EXP_MULTIPLIER
static PyObject * Crossfire_Object_ReadKey(Crossfire_Object *who, PyObject *args)
void cf_fix_object(object *op)
static PyObject * Object_GetWeightLimit(Crossfire_Object *whoptr, void *closure)
int cf_object_remove_depletion(object *op, int level)
#define object_was_destroyed(op, old_tag)
static int Object_SetUnique(Crossfire_Object *whoptr, PyObject *value, void *closure)
int cf_player_arrest(object *who)
static int Object_SetDuration(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_KnowSpell(Crossfire_Object *who, PyObject *args)
int cf_object_set_face(object *op, const char *face)
static PyObject * Crossfire_Player_CanPay(Crossfire_Player *who, PyObject *args)
static PyObject * Object_GetAttackType(Crossfire_Object *whoptr, void *closure)
object * cf_player_get_marked_item(object *op)
static PyObject * Object_GetCanSeeInDark(Crossfire_Object *whoptr, void *closure)
char * cf_object_get_string_property(object *op, int propcode, char *buf, int size)
static int Object_SetOwner(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetPow(Crossfire_Object *whoptr, void *closure)
void cf_player_knowledge_give(object *op, const char *knowledge)
static PyObject * Crossfire_Object_SetResist(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetQuantity(Crossfire_Object *whoptr, void *closure)
sstring cf_add_string(const char *str)
#define CFAPI_OBJECT_PROP_SLAYING
int cf_object_get_int_property(object *op, int propcode)
static int Object_SetStealthy(Crossfire_Object *whoptr, PyObject *value, void *closure)
int64_t cf_object_perm_exp(object *op)
static int Object_SetPow(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetIsPet(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_RichCompare(Crossfire_Object *left, Crossfire_Object *right, int op)
static int Object_SetUnpaid(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetInt(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_OTHER_ARCH
#define CFAPI_OBJECT_PROP_LAST_SP
static PyObject * Player_GetParty(Crossfire_Player *whoptr, void *closure)
static PyObject * Object_GetBlocksView(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_LAST_GRACE
int cf_object_transfer(object *op, int x, int y, int randomly, object *originator)
void cf_object_forget_spell(object *op, object *sp)
#define CFAPI_OBJECT_PROP_COUNT
#define FLAG_KNOWN_MAGICAL
void cf_log(LogLevel logLevel, const char *format,...)
static PyObject * Object_GetRollable(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetMoveBlock(Crossfire_Object *whoptr, void *closure)
float cf_object_get_float_property(object *op, int propcode)
static PyObject * Object_GetMaterial(Crossfire_Object *whoptr, void *closure)
void cf_object_learn_spell(object *op, object *spell, int special_prayer)
static PyObject * Object_GetStr(Crossfire_Object *whoptr, void *closure)
static int Object_SetNamePl(Crossfire_Object *whoptr, PyObject *value, void *closure)
int cf_object_check_trigger(object *op, object *cause)
void cf_quest_start(object *pl, sstring quest_code, int state)
static int Object_SetWC(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define FLAG_SEE_INVISIBLE
static int Object_SetMoveAllow(Crossfire_Object *whoptr, PyObject *value, void *closure)
sstring cf_object_get_sstring_property(object *op, int propcode)
static PyObject * Object_GetUsedUp(Crossfire_Object *whoptr, void *closure)
void cf_log_plain(LogLevel logLevel, const char *message)
static PyObject * Object_GetType(Crossfire_Object *whoptr, void *closure)
#define CFAPI_PLAYER_PROP_BED_X
static int Object_SetGod(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetGrace(Crossfire_Object *whoptr, void *closure)
static PyObject * Crossfire_Object_InsertInto(Crossfire_Object *who, PyObject *args)
static PyObject * Crossfire_Object_WriteKey(Crossfire_Object *who, PyObject *args)
static PyObject * Crossfire_Object_CheckInventory(Crossfire_Object *who, PyObject *args)
void cf_quest_set_player_state(object *pl, sstring quest_code, int state)
MoveType cf_object_get_movetype_property(object *op, int propcode)
void cf_player_set_marked_item(object *op, object *ob)
static int Object_SetDam(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetReflectSpells(Crossfire_Object *whoptr, void *closure)
int cf_player_can_pay(object *op)
PyObject_HEAD object * obj
#define CFAPI_OBJECT_PROP_FACING
static int Object_SetUndead(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetMakeInvisible(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_ActivateRune(Crossfire_Object *who, PyObject *args)
int cf_timer_create(object *ob, long delay, int mode)
#define CFAPI_OBJECT_PROP_ENVIRONMENT
static PyObject * Crossfire_Object_ForgetSpell(Crossfire_Object *who, PyObject *args)
#define CFAPI_OBJECT_PROP_GP
static int Object_SetTitle(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define CFAPI_OBJECT_PROP_CHA
static PyObject * Object_GetMaxHP(Crossfire_Object *whoptr, void *closure)
static void Crossfire_Object_dealloc(PyObject *obj)
#define PyObject_HashNotImplemented
static int Player_SetTitle(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetConfused(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetMakeInvisible(Crossfire_Object *whoptr, void *closure)
PyTypeObject Crossfire_ObjectType
static ptr_assoc_table object_assoc_table
#define CFAPI_OBJECT_PROP_MOVE_SLOW_PENALTY
static PyObject * Object_GetY(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetCanUseSkill(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_INT
void cf_object_set_int_property(object *op, int propcode, int value)
static int Object_SetHasXRays(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_CheckTrigger(Crossfire_Object *who, PyObject *args)
#define FLAG_CAN_USE_SKILL
#define CFAPI_OBJECT_PROP_LEVEL
object * cf_object_clone(object *op, int clonetype)
#define CFAPI_PLAYER_PROP_BED_MAP
#define FLAG_UNAGGRESSIVE
static PyObject * Crossfire_Player_Message(Crossfire_Player *who, PyObject *args)
#define CFAPI_OBJECT_PROP_MOVE_ALLOW
static PyObject * Player_GetBedY(Crossfire_Player *whoptr, void *closure)
void cf_object_set_float_property(object *op, int propcode, float value)
int cf_object_user_event(object *op, object *activator, object *third, const char *message, int fix)
static PyObject * Object_GetDamned(Crossfire_Object *whoptr, void *closure)
static int Object_SetLastEat(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetIdentified(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Player_SetBedMap(Crossfire_Player *whoptr, PyObject *value, void *closure)
static int Object_SetCursed(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetAlive(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetMoveType(Crossfire_Object *whoptr, void *closure)
double cf_object_get_double_property(object *op, int propcode)
static PyObject * Object_GetGodGiven(Crossfire_Object *whoptr, void *closure)
static int Object_SetReflectSpells(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetIdentified(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetMap(Crossfire_Object *whoptr, void *closure)
static int Object_SetInt(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetLastGrace(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define CFAPI_OBJECT_PROP_FP
static int Object_SetKnownCursed(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetCursed(Crossfire_Object *whoptr, void *closure)
static int Object_SetRandomMovement(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetCount(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetFloor(Crossfire_Object *whoptr, void *closure)
static int Object_SetSkill(Crossfire_Object *whoptr, PyObject *value, void *closure)
sstring cf_query_name_pl(object *ob)
static PyMethodDef PlayerMethods[]
static int Object_SetAttackMovement(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetArchName(Crossfire_Object *whoptr, void *closure)
static int Player_SetBedX(Crossfire_Player *whoptr, PyObject *value, void *closure)
static int Object_SetGlowRadius(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetExpMul(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetOwner(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_LAST_EAT
static int Object_SetLifesaver(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Player_QuestGetState(Crossfire_Player *whoptr, PyObject *args)
static PyObject * Player_GetTitle(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetGlowRadius(Crossfire_Object *whoptr, void *closure)
static PyObject * Crossfire_Object_Int(PyObject *obj)
PyObject * Crossfire_Object_wrap(object *what)
#define CFAPI_OBJECT_PROP_MOVE_OFF
#define CFAPI_OBJECT_PROP_WEIGHT_LIMIT
static PyObject * Object_GetNamePl(Crossfire_Object *whoptr, void *closure)
object * cf_object_insert_object(object *op, object *container)
static int Object_SetMoveSlow(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetRace(Crossfire_Object *whoptr, PyObject *value, void *closure)
void cf_object_say(object *op, char *msg)
static PyObject * Object_GetHP(Crossfire_Object *whoptr, void *closure)
PyObject_HEAD mapstruct * map
static PyObject * Object_GetDirection(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_X
static PyObject * Object_GetScared(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetOtherArchetype(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetExists(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetEnemy(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetCha(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetAnimated(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetFriendly(Crossfire_Object *whoptr, void *closure)
void * find_assoc_value(ptr_assoc **hash_table, void *key)
#define CFAPI_OBJECT_PROP_ENEMY
static PyObject * Object_GetExp(Crossfire_Object *whoptr, void *closure)
int cf_object_query_money(const object *op)
static int Object_SetKnownMagical(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetSpeed(Crossfire_Object *whoptr, PyObject *value, void *closure)
int64_t cf_object_get_int64_property(object *op, int propcode)
static int Object_SetStandStill(Crossfire_Object *whoptr, PyObject *value, void *closure)
unsigned __int64 uint64_t
static PyObject * Object_GetMoney(Crossfire_Object *whoptr, void *closure)
static int Object_SetDirection(Crossfire_Object *whoptr, PyObject *value, void *closure)
object * cf_object_present_archname_inside(object *op, char *whatstr)
static PyObject * Object_GetUnpaid(Crossfire_Object *whoptr, void *closure)
static int Object_SetConfused(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetName(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_ITEM_POWER
#define FLAG_BEEN_APPLIED
static PyObject * Object_GetAnimSpeed(Crossfire_Object *whoptr, void *closure)
static int Object_SetGodGiven(Crossfire_Object *whoptr, PyObject *value, void *closure)
object * cf_object_find_by_arch_name(const object *who, const char *name)
static int Object_SetEnemy(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetLevel(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetPickable(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetLastGrace(Crossfire_Object *whoptr, void *closure)
static PyObject * Player_GiveKnowledge(Crossfire_Player *who, PyObject *args)
static int Object_SetFace(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetAnim(Crossfire_Object *whoptr, void *closure)
static PyObject * Crossfire_Object_Reposition(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetSpeed(Crossfire_Object *whoptr, void *closure)
static PyObject * Crossfire_Object_RemoveDepletion(Crossfire_Object *who, PyObject *args)
void cf_object_set_movetype_property(object *op, int propcode, MoveType value)
#define CFAPI_OBJECT_PROP_EXP
mapstruct * cf_object_get_map_property(object *op, int propcode)
static PyObject * Object_GetDam(Crossfire_Object *whoptr, void *closure)
void cf_object_remove(object *op)
static PyObject * Crossfire_Object_Move(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetApplied(Crossfire_Object *whoptr, void *closure)
static int Object_SetMoveBlock(Crossfire_Object *whoptr, PyObject *value, void *closure)
void add_ptr_assoc(ptr_assoc **hash_table, void *key, void *value)
#define CFAPI_OBJECT_PROP_TOTAL_EXP
static const flag_definition flags[]
int cf_object_apply(object *op, object *author, int flags)
void init_ptr_assoc_table(ptr_assoc **hash_table)
static PyObject * Object_GetReflectMissiles(Crossfire_Object *whoptr, void *closure)
#define EXISTCHECK_INT(ob)
static PyObject * Object_GetKnownCursed(Crossfire_Object *whoptr, void *closure)
int cf_quest_was_completed(object *pl, sstring quest_code)
#define FLAG_KNOWN_CURSED
void cf_player_set_party(object *op, partylist *party)
object * cf_object_get_object_property(object *op, int propcode)
PyTypeObject Crossfire_PlayerType
static PyObject * Object_GetHitBack(Crossfire_Object *whoptr, void *closure)
static int Player_SetMarkedItem(Crossfire_Player *whoptr, PyObject *value, void *closure)
#define CFAPI_OBJECT_PROP_DAM
#define CFAPI_OBJECT_PROP_MOVE_TYPE
#define CFAPI_OBJECT_PROP_SKILL
static int Object_SetRunAway(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetWeight(Crossfire_Object *whoptr, PyObject *value, void *closure)
void cf_player_message(object *op, char *txt, int flags)
#define CFAPI_OBJECT_PROP_AC
static int Object_SetFacing(Crossfire_Object *whoptr, PyObject *value, void *closure)
int cf_object_pay_amount(object *pl, uint64_t to_pay)
static PyObject * Object_GetPickable(Crossfire_Object *whoptr, void *closure)
static int Object_SetName(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Player_QuestStart(Crossfire_Player *whoptr, PyObject *args)
static PyObject * Crossfire_Object_PayAmount(Crossfire_Object *who, PyObject *args)
char * cf_player_get_title(object *op, char *title, int size)
static PyObject * Object_GetMoveSlowPenalty(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetMoveAllow(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetMoveSlow(Crossfire_Object *whoptr, void *closure)
int cf_object_get_flag(object *ob, int flag)
static PyObject * Object_GetItemPower(Crossfire_Object *whoptr, void *closure)
#define TYPEEXISTCHECK(ob)
static int Object_SetValue(Crossfire_Object *whoptr, PyObject *value, void *closure)
void cf_object_set_int64_property(object *op, int propcode, int64_t value)
static PyObject * Crossfire_Object_Fix(Crossfire_Object *who, PyObject *args)
#define CFAPI_OBJECT_PROP_SPEED_LEFT
int cf_object_move(object *op, int dir, object *originator)
static PyObject * Object_GetCanUseBow(Crossfire_Object *whoptr, void *closure)
static int Object_SetSpeedLeft(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_LearnSpell(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetAttackMovement(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetLastSP(Crossfire_Object *whoptr, void *closure)
sstring cf_player_get_ip(object *op)
static PyObject * Object_GetCanCastSpell(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_HP
#define CFAPI_OBJECT_PROP_TITLE
static int Object_SetGrace(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define CFAPI_PLAYER_PROP_BED_Y
static PyObject * Object_GetWeight(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_SPEED
static int Object_SetMoveOff(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define CFAPI_OBJECT_PROP_FRIENDLY
static PyObject * Object_GetSubtype(Crossfire_Object *whoptr, void *closure)
void cf_object_change_exp(object *op, int64_t exp, const char *skill_name, int flag)
static PyObject * Object_GetWasDM(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_ANIM_SPEED
void cf_object_pickup(object *op, object *what)
void cf_object_drop(object *op, object *author)
#define CFAPI_OBJECT_PROP_LUCK
static PyGetSetDef Object_getseters[]
#define CFAPI_OBJECT_PROP_ARCH_NAME
static PyObject * Object_GetBlind(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_DEX
static PyObject * Object_GetSpeedLeft(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_ATTACK_MOVEMENT
static int Object_SetTurnable(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_Say(Crossfire_Object *who, PyObject *args)
void free_ptr_assoc(ptr_assoc **hash_table, void *key)
#define CFAPI_OBJECT_PROP_CON
static PyObject * Object_GetSleeping(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetDM(Crossfire_Object *whoptr, void *closure)
static void Crossfire_Player_dealloc(PyObject *obj)
void init_object_assoc_table(void)
static PyObject * Object_GetBeenApplied(Crossfire_Object *whoptr, void *closure)
static int Object_SetItemPower(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetRace(Crossfire_Object *whoptr, void *closure)
static int Object_SetCanSeeInDark(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define CFAPI_OBJECT_PROP_NROF
static PyObject * Object_GetKnownMagical(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetSkill(Crossfire_Object *whoptr, void *closure)
void cf_player_set_title(object *op, const char *title)
#define CFAPI_OBJECT_PROP_MAXSP
static PyObject * Object_GetGod(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetNoSave(Crossfire_Object *whoptr, void *closure)
int cf_quest_get_player_state(object *pl, sstring quest_code)
PyObject * Crossfire_Archetype_wrap(archetype *what)
object * cf_object_check_for_spell(object *op, const char *name)
static PyObject * Object_GetCanUseRing(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_INVISIBLE
static int Object_SetStr(Crossfire_Object *whoptr, PyObject *value, void *closure)
sstring npc_msgs[MAX_NPC]
int cf_object_teleport(object *ob, mapstruct *map, int x, int y)
static PyObject * Crossfire_Object_GetOutOfMap(Crossfire_Object *who, PyObject *args)
#define CFAPI_OBJECT_PROP_TYPE
static int Object_SetUnaggressive(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_Clone(Crossfire_Object *who, PyObject *args)
#define CFAPI_OBJECT_PROP_POW
static PyObject * Player_KnowledgeKnown(Crossfire_Player *who, PyObject *args)
static PyObject * Player_QuestWasCompleted(Crossfire_Player *whoptr, PyObject *args)
static int Object_SetMaxHP(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetDex(Crossfire_Object *whoptr, void *closure)
static int Object_SetDamned(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetMaxSP(Crossfire_Object *whoptr, PyObject *value, void *closure)
#define CFAPI_OBJECT_PROP_GLOW_RADIUS
static PyObject * Object_GetLifesaver(Crossfire_Object *whoptr, void *closure)
archetype * cf_object_get_archetype_property(object *op, int propcode)
static int Object_SetDex(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetAnim(Crossfire_Object *whoptr, PyObject *value, void *closure)
void cf_object_set_string_property(object *op, int propcode, const char *value)
#define CFAPI_OBJECT_PROP_WC
static int Object_SetOnlyAttack(Crossfire_Object *whoptr, PyObject *value, void *closure)
static void free_object_assoc(object *key)
void cf_object_set_long_property(object *op, int propcode, long value)
static int Object_SetMoveOn(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetAnimated(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetFriendly(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyNumberMethods ObjectConvert
#define CFAPI_OBJECT_PROP_MOVE_SLOW
#define CFAPI_OBJECT_PROP_MATERIAL_NAME
static PyObject * Player_GetIP(Crossfire_Player *whoptr, void *closure)
static PyObject * Crossfire_Object_PermExp(Crossfire_Object *who, PyObject *args)
static int Object_SetRollable(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetCanUseWand(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetHasXRays(Crossfire_Object *whoptr, void *closure)
#define CF_IS_PYSTR(cfpy_obj)
PyTypeObject Crossfire_MapType
#define CFAPI_OBJECT_PROP_MAXHP
static PyObject * Object_GetLuck(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetEnv(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetCanUseArmour(Crossfire_Object *whoptr, void *closure)
int cf_object_out_of_map(object *op, int x, int y)
int cf_object_change_abil(object *op, object *tmp)
static PyObject * Crossfire_Object_Arrest(Crossfire_Object *who, PyObject *args)
static PyObject * Crossfire_Object_QueryName(Crossfire_Object *who, PyObject *args)
static int Object_SetCon(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Crossfire_Object_Teleport(Crossfire_Object *who, PyObject *args)
#define CFAPI_OBJECT_PROP_VALUE
static PyObject * Player_GetMarkedItem(Crossfire_Player *whoptr, void *closure)
#define FLAG_REFL_MISSILE
static PyObject * Object_GetUnique(Crossfire_Object *whoptr, void *closure)
static int Object_SetCanSeeInvisible(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetMessage(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetMoveType(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetValue(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_WIS
#define CFAPI_OBJECT_PROP_DURATION
static PyObject * Object_GetRandomMovement(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_OB_ABOVE
object * cf_create_object_by_name(const char *name)
char * cf_query_name(object *ob, char *name, int size)
int cf_object_move_to(object *op, int x, int y)
static PyObject * Player_QuestSetState(Crossfire_Player *whoptr, PyObject *args)
static PyObject * Crossfire_Object_CheckArchInventory(Crossfire_Object *who, PyObject *args)
#define CFAPI_OBJECT_PROP_Y
static PyObject * Object_GetCon(Crossfire_Object *whoptr, void *closure)
int cf_object_cast_spell(object *op, object *caster, int dir, object *spell_ob, char *stringarg)
static PyObject * Object_GetOnlyAttack(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetMaxSP(Crossfire_Object *whoptr, void *closure)
static int Object_SetWis(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetIsPet(Crossfire_Object *whoptr, void *closure)
static int Object_SetSleeping(Crossfire_Object *whoptr, PyObject *value, void *closure)
static int Object_SetAnimSpeed(Crossfire_Object *whoptr, PyObject *value, void *closure)
static PyObject * Object_GetGenerator(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetAlive(Crossfire_Object *whoptr, void *closure)
static PyObject * Object_GetX(Crossfire_Object *whoptr, void *closure)
#define CFAPI_OBJECT_PROP_MOVE_BLOCK
static PyObject * Object_GetTitle(Crossfire_Object *whoptr, void *closure)
void cf_object_set_object_property(object *op, int propcode, object *value)
static PyObject * Crossfire_Object_ChangeAbil(Crossfire_Object *who, PyObject *args)
static PyObject * Object_GetWC(Crossfire_Object *whoptr, void *closure)
object * cf_object_split(object *orig_ob, uint32_t nr, char *err, size_t size)
static PyObject * Object_GetStandStill(Crossfire_Object *whoptr, void *closure)
int cf_object_set_key(object *op, const char *keyname, const char *value, int add_key)
static PyObject * Object_GetSplitting(Crossfire_Object *whoptr, void *closure)