Go to the documentation of this file.
15 #define NUM_BODY_LOCATIONS 13
22 struct body_locations_struct {
54 #define WILL_APPLY_HANDLE 0x1
55 #define WILL_APPLY_TREASURE 0x2
56 #define WILL_APPLY_EARTHWALL 0x4
57 #define WILL_APPLY_DOOR 0x8
58 #define WILL_APPLY_FOOD 0x10
70 #define object_was_destroyed(op, old_tag) \
71 (op->count != old_tag || QUERY_FLAG(op, FLAG_FREED))
83 #define SPELL_TAG_SIZE 16
89 #define OB_SPELL_TAG_HASH(op, count) (op->spell_tags[count&0xf])
95 #define OB_SPELL_TAG_MATCH(op, count) (op->spell_tags[count&0xf] == count)
98 #define CUSTOM_NAME_FIELD "custom_name"
500 for (
int i = 0; i < 4; i++) {
501 (*ret)[i] = p->
flags[i] ^
q->flags[i];
506 return op->flags[flag / 32] & (1U << (flag % 32));
510 op->flags[flag / 32] &= ~(1U << (flag % 32));
514 op->flags[flag / 32] |= (1U << (flag % 32));
521 #define LOOK_OBJ(ob) (!ob->invisible && ob->type != PLAYER && ob->type != EVENT_CONNECTOR)
530 #define UP_OBJ_INSERT 1
531 #define UP_OBJ_REMOVE 2
532 #define UP_OBJ_CHANGE 3
533 #define UP_OBJ_FACE 4
544 #define FREE_OBJ_FREE_INVENTORY 1
545 #define FREE_OBJ_NO_DESTROY_CALLBACK 2
546 #define FREE_OBJ_DROP_ABOVE_FLOOR 4
580 #define INS_NO_MERGE 0x0001
581 #define INS_ABOVE_FLOOR_ONLY 0x0002
582 #define INS_NO_WALK_ON 0x0004
583 #define INS_ON_TOP 0x0008
584 #define INS_BELOW_ORIGINATOR 0x0010
585 #define INS_MAP_LOAD 0x0020
588 #define ARCH_SINGULARITY "singularity"
589 #define ARCH_DETECT_MAGIC "detect_magic"
590 #define ARCH_DEPLETION "depletion"
591 #define ARCH_SYMPTOM "symptom"
592 #define ARCH_PORTAL_FAILED "town_portal_failed"
593 #define ARCH_SPELL_BLOCKED "spell_blocked"
594 #define ARCH_SPELL_BUNGLE "spell_bungle"
596 #define MONSTER_EXCLUDE_FROM_READABLE_KEY "exclude_from_readable"
607 #define HEAD(op) ((op)->head != NULL ? (op)->head : (op))
625 static inline uint32_t
NROF(
const object *
const ob) {
626 return ob->nrof ?
ob->nrof : 1;
#define NUM_BODY_LOCATIONS
static bool CAN_PROBE(const object *ob)
#define QUERY_FLAG(xyz, p)
static int query_flag(const object *op, int flag)
int16_t resist[NROFATTACKS]
static uint32_t NROF(const object *const ob)
object * find_force(object *op, const char *name)
static void compare_flags(ob_flags *ret, const object *p, const object *q)
const Animations * animation
struct archetype * other_arch
static bool IS_PLAYER(object *op)
uint8_t duration_modifier
body_locations_struct body_locations[NUM_BODY_LOCATIONS]
const typedef char * sstring
uint32_t light_cached_time
object * add_force(object *op, const char *name, int duration)
static void set_flag(object *op, int flag)
int8_t body_info[NUM_BODY_LOCATIONS]
struct treasurelist * randomitems
const char *const move_name[]
int8_t body_used[NUM_BODY_LOCATIONS]
static void clear_flag(object *op, int flag)
const Animations * temp_animation
struct_dialog_information * dialog_information