Crossfire Server, Trunk
object.h
Go to the documentation of this file.
1 
6 #ifndef OBJECT_H
7 #define OBJECT_H
8 
9 #include "dialog.h"
10 
12 typedef uint32_t tag_t;
13 #define NUM_BODY_LOCATIONS 13
14 #define BODY_ARMS 1
20 struct body_locations_struct {
21  const char *save_name;
22  const char *use_name;
23  const char *nonuse_name;
24 };
25 
27 
28 extern const char *const move_name[];
29 
40 struct key_value {
41  const char *key;
42  const char *value;
44 };
45 
52 #define WILL_APPLY_HANDLE 0x1
53 #define WILL_APPLY_TREASURE 0x2
54 #define WILL_APPLY_EARTHWALL 0x4
55 #define WILL_APPLY_DOOR 0x8
56 #define WILL_APPLY_FOOD 0x10
58 
59 
68 #define object_was_destroyed(op, old_tag) \
69  (op->count != old_tag || QUERY_FLAG(op, FLAG_FREED))
70 
71 
81 #define SPELL_TAG_SIZE 16
82 
87 #define OB_SPELL_TAG_HASH(op, count) (op->spell_tags[count&0xf])
88 
93 #define OB_SPELL_TAG_MATCH(op, count) (op->spell_tags[count&0xf] == count)
94 
96 #define CUSTOM_NAME_FIELD "custom_name"
97 
110  PLAYER = 1,
111  TRANSPORT = 2,
112  ROD = 3,
113  TREASURE = 4,
114  POTION = 5,
115  FOOD = 6,
116  POISON = 7,
117  BOOK = 8,
118  CLOCK = 9,
120  ARROW = 13,
121  BOW = 14,
122  WEAPON = 15,
123  ARMOUR = 16,
124  PEDESTAL = 17,
125  ALTAR = 18,
128  MAP = 22,
129  DOOR = 23,
130  KEY = 24,
132  TRIGGER = 27,
134  MAGIC_EAR = 29,
138  SHIELD = 33,
139  HELMET = 34,
140  MONEY = 36,
141  CLASS = 37,
142  AMULET = 39,
145  CREATOR = 42,
146  SKILL = 43,
147  EARTHWALL = 45,
148  GOLEM = 46,
150  BLINDNESS = 49,
151  GOD = 50,
152  DETECTOR = 51,
160  DRINK = 54,
161  MARKER = 55,
167  PEACEMAKER = 59,
170  GEM = 60,
171  FIREWALL = 62,
172  CHECK_INV = 64,
173  MOOD_FLOOR = 65,
184  EXIT = 66,
185  ENCOUNTER = 67,
187  SHOP_MAT = 69,
188  RING = 70,
189  FLOOR = 71,
190  FLESH = 72,
191  INORGANIC = 73,
192  SKILL_TOOL = 74,
193  LIGHTER = 75,
194  WALL = 77,
196  MISC_OBJECT = 79,
203  MONSTER = 80,
204  LAMP = 82,
205  DUPLICATOR = 83,
206  SPELLBOOK = 85,
207  CLOAK = 87,
208  SPINNER = 90,
209  GATE = 91,
210  BUTTON = 92,
211  CF_HANDLE = 93,
212  HOLE = 94, /* When open, objects fall through */
213  TRAPDOOR = 95,
214  SIGN = 98,
215  BOOTS = 99,
216  GLOVES = 100,
217  SPELL = 101,
219  CONVERTER = 103,
220  BRACERS = 104,
221  POISONING = 105,
222  SAVEBED = 106,
223  WAND = 109,
224  SCROLL = 111,
225  DIRECTOR = 112,
226  GIRDLE = 113,
227  FORCE = 114,
232  CLOSE_CON = 121,
234  CONTAINER = 122,
237  SKILLSCROLL = 130,
239  DEEP_SWAMP = 138,
243  RUNE = 154,
244  TRAP = 155,
246  CORPSE = 157,
247  DISEASE = 158,
248  SYMPTOM = 159,
249  BUILDER = 160,
251  MATERIAL = 161,
252  MIMIC = 162,
253  LIGHTABLE = 163,
255 };
256 
257 typedef uint32_t ob_flags[4];
258 
280 struct object {
281  /* These variables are not changed by object_copy() */
282  struct player *contr;
283  object *next;
284  object *prev;
285  object *active_next;
289  object *active_prev;
293  object *below;
294  object *above;
295  /* Note: stacked in the *same *environment*/
296  object *inv;
297  object *container;
299  object *env;
301  object *more;
302  object *head;
303  struct mapstruct *map;
309  /* These get an extra add_refcount(), after having been copied by memcpy().
310  *
311  * Fields below name (included) are copied by memcpy in object_copy().
312  *
313  * If adding something that needs a refcount updated, make sure you modify
314  * object_copy() to do so.
315  * Everything below here also gets cleared by object_clear().
316  */
318  /* Place new attributes that should get copied and cleared below name */
319 
333  int16_t x, y;
334  int16_t ox, oy;
335  float speed;
336  float speed_left;
337  float weapon_speed;
339  const Face *face;
340  uint32_t nrof;
342  int8_t direction;
343  int8_t facing;
345  /* This next big block are basically used for monsters and equipment */
346  uint8_t type;
347  uint8_t subtype;
348  uint16_t client_type;
349  int16_t resist[NROFATTACKS];
350  uint32_t attacktype;
351  uint32_t path_attuned;
352  uint32_t path_repelled;
353  uint32_t path_denied;
355  uint16_t material;
356  int8_t magic;
357  uint8_t state;
358  int32_t value;
359  int16_t level;
361  /* Note that the last_.. values are sometimes used for non obvious
362  * meanings by some objects, eg, sp penalty, permanent exp.
363  */
364  int32_t last_eat;
365  int32_t last_heal;
366  int32_t last_sp;
367  int16_t last_grace;
368  int16_t invisible;
369  uint8_t pick_up;
370  int8_t item_power;
371  int8_t gen_sp_armour;
372  int8_t glow_radius;
373  int32_t weight;
374  int32_t weight_limit;
375  int32_t carrying;
377  int64_t total_exp;
378  object *current_weapon;
379  uint32_t weapontype;
382  /* See the doc/Developers/objects for more info about body locations */
383 
384  /* Following mostly refers to fields only used for monsters */
385  object *owner;
389  object *enemy;
390  object *attacked_by;
392  uint8_t run_away;
394  object *chosen_skill;
395  uint8_t hide;
396  /* changes made by kholland@sunlab.cit.cornell.edu */
397  /* allows different movement patterns for attackers */
398  int32_t move_status;
399  uint16_t attack_movement;
400  uint8_t will_apply;
401  uint8_t sound_chance;
402  object *spellitem;
403  double expmul;
406  /* Spell related information, may be useful elsewhere
407  * Note that other fields are used - these files are basically
408  * only used in spells.
409  */
410  int16_t casting_time;
411  int16_t duration;
413  int8_t range;
414  uint8_t range_modifier;
415  uint8_t dam_modifier;
416  object *spell;
417  char *spellarg;
419  /* Following are values used by any object */
420  struct archetype *arch;
425  uint8_t anim_speed;
426  uint8_t last_anim;
428  uint8_t temp_anim_speed;
429  uint8_t smoothlevel;
430  uint8_t map_layer;
443  uint64_t event_bitmask;
444 };
445 
449 struct objectlink {
450  object *ob;
453 };
454 
458 struct oblinkpt {
460  long value;
462 };
463 
472 struct archetype {
476  object clone;
477  int8_t tail_x, tail_y;
480 };
481 
482 extern object *objects;
483 extern object *active_objects;
484 
485 extern int nrofallocobjects;
486 extern int nroffreeobjects;
487 
488 static inline void compare_flags(ob_flags *ret, const object *p, const object *q) {
489  for (int i = 0; i < 4; i++) {
490  (*ret)[i] = p->flags[i] ^ q->flags[i];
491  }
492 }
493 
494 static inline int query_flag(const object *op, int flag) {
495  return op->flags[flag / 32] & (1U << (flag % 32));
496 }
497 
498 static inline void clear_flag(object *op, int flag) {
499  op->flags[flag / 32] &= ~(1U << (flag % 32));
500 }
501 
502 static inline void set_flag(object *op, int flag) {
503  op->flags[flag / 32] |= (1U << (flag % 32));
504 }
505 
510 #define LOOK_OBJ(ob) (!ob->invisible && ob->type != PLAYER && ob->type != EVENT_CONNECTOR)
511 
519 #define UP_OBJ_INSERT 1
520 #define UP_OBJ_REMOVE 2
521 #define UP_OBJ_CHANGE 3
522 #define UP_OBJ_FACE 4
526 
527 
533 #define FREE_OBJ_FREE_INVENTORY 1
534 #define FREE_OBJ_NO_DESTROY_CALLBACK 2
535 #define FREE_OBJ_DROP_ABOVE_FLOOR 4
537 
538 
569 #define INS_NO_MERGE 0x0001
570 #define INS_ABOVE_FLOOR_ONLY 0x0002
571 #define INS_NO_WALK_ON 0x0004
572 #define INS_ON_TOP 0x0008
573 #define INS_BELOW_ORIGINATOR 0x0010
574 #define INS_MAP_LOAD 0x0020
576 
577 #define ARCH_SINGULARITY "singularity"
578 #define ARCH_DETECT_MAGIC "detect_magic"
579 #define ARCH_DEPLETION "depletion"
580 #define ARCH_SYMPTOM "symptom"
581 #define ARCH_PORTAL_FAILED "town_portal_failed"
582 #define ARCH_SPELL_BLOCKED "spell_blocked"
583 #define ARCH_SPELL_BUNGLE "spell_bungle"
585 #define MONSTER_EXCLUDE_FROM_READABLE_KEY "exclude_from_readable"
596 #define HEAD(op) ((op)->head != NULL ? (op)->head : (op))
597 
598 static inline bool IS_PLAYER(object *op) {
599  return op->type == PLAYER;
600 }
601 
605 static inline bool CAN_PROBE(const object *ob) {
606  return QUERY_FLAG(ob, FLAG_ALIVE) &&
607  (ob->type == PLAYER || QUERY_FLAG(ob, FLAG_MONSTER));
608 }
609 
614 static inline uint32_t NROF(const object * const ob) {
615  return ob->nrof ? ob->nrof : 1;
616 }
617 
623 object *find_force(object *op, const char *name);
624 
630 object *add_force(object *op, const char *name, int duration);
631 
632 #endif /* OBJECT_H */
CLASS
@ CLASS
Definition: object.h:141
object::name_pl
sstring name_pl
Definition: object.h:321
Face
Definition: face.h:14
object
Definition: object.h:280
TRIGGER
@ TRIGGER
Definition: object.h:132
MIMIC
@ MIMIC
Definition: object.h:252
object::weapon_speed_left
float weapon_speed_left
Definition: object.h:338
PLAYER
@ PLAYER
Definition: object.h:110
CF_HANDLE
@ CF_HANDLE
Definition: object.h:211
object::range_modifier
uint8_t range_modifier
Definition: object.h:414
object::move_status
int32_t move_status
Definition: object.h:398
MAP
@ MAP
Definition: object.h:128
nroffreeobjects
int nroffreeobjects
Definition: object.cpp:290
object::owner
object * owner
Definition: object.h:385
NUM_BODY_LOCATIONS
#define NUM_BODY_LOCATIONS
Definition: object.h:13
object::weapontype
uint32_t weapontype
Definition: object.h:379
MONSTER
@ MONSTER
Definition: object.h:203
CAN_PROBE
static bool CAN_PROBE(const object *ob)
Definition: object.h:605
object::map_layer
uint8_t map_layer
Definition: object.h:430
BOW
@ BOW
Definition: object.h:121
BRACERS
@ BRACERS
Definition: object.h:220
CLOSE_CON
@ CLOSE_CON
Definition: object.h:232
ARMOUR_IMPROVER
@ ARMOUR_IMPROVER
Definition: object.h:235
EVENT_CONNECTOR
@ EVENT_CONNECTOR
Definition: object.h:230
SYMPTOM
@ SYMPTOM
Definition: object.h:248
object::path_attuned
uint32_t path_attuned
Definition: object.h:351
WAND
@ WAND
Definition: object.h:223
archetype::more
archetype * more
Definition: object.h:475
FLESH
@ FLESH
Definition: object.h:190
ENCOUNTER
@ ENCOUNTER
Definition: object.h:185
player
Definition: player.h:105
object::client_type
uint16_t client_type
Definition: object.h:348
GLOVES
@ GLOVES
Definition: object.h:216
object::inv
object * inv
Definition: object.h:296
GIRDLE
@ GIRDLE
Definition: object.h:226
BUTTON
@ BUTTON
Definition: object.h:210
QUERY_FLAG
#define QUERY_FLAG(xyz, p)
Definition: define.h:226
TRIGGER_PEDESTAL
@ TRIGGER_PEDESTAL
Definition: object.h:137
oblinkpt::next
oblinkpt * next
Definition: object.h:461
KEY
@ KEY
Definition: object.h:130
object::ownercount
tag_t ownercount
Definition: object.h:388
object::item_power
int8_t item_power
Definition: object.h:370
object::arch
struct archetype * arch
Definition: object.h:420
object::attack_movement
uint16_t attack_movement
Definition: object.h:399
SHOP_FLOOR
@ SHOP_FLOOR
Definition: object.h:186
object::range
int8_t range
Definition: object.h:413
object::speed
float speed
Definition: object.h:335
GEM
@ GEM
Definition: object.h:170
object::invisible
int16_t invisible
Definition: object.h:368
TRAP
@ TRAP
Definition: object.h:244
object::x
int16_t x
Definition: object.h:333
ARMOUR
@ ARMOUR
Definition: object.h:123
object::speed_left
float speed_left
Definition: object.h:336
object::pick_up
uint8_t pick_up
Definition: object.h:369
object::map
struct mapstruct * map
Definition: object.h:303
object::anim_suffix
sstring anim_suffix
Definition: object.h:322
key_value
Definition: object.h:40
WEAPON
@ WEAPON
Definition: object.h:122
TIMED_GATE
@ TIMED_GATE
Definition: object.h:131
MoveType
unsigned char MoveType
Definition: define.h:417
guildjoin.ob
ob
Definition: guildjoin.py:42
object::expmul
double expmul
Definition: object.h:403
AMULET
@ AMULET
Definition: object.h:142
CHECK_INV
@ CHECK_INV
Definition: object.h:172
archetype::head
archetype * head
Definition: object.h:474
TREASURE
@ TREASURE
Definition: object.h:113
SKILL
@ SKILL
Definition: object.h:146
object::direction
int8_t direction
Definition: object.h:342
object::count
tag_t count
Definition: object.h:305
object::last_grace
int16_t last_grace
Definition: object.h:367
RUNE
@ RUNE
Definition: object.h:243
object::smoothlevel
uint8_t smoothlevel
Definition: object.h:429
CREATOR
@ CREATOR
Definition: object.h:145
oblinkpt
Definition: object.h:458
TRANSPORT
@ TRANSPORT
Definition: object.h:111
POTION_RESIST_EFFECT
@ POTION_RESIST_EFFECT
Definition: object.h:228
FLOOR
@ FLOOR
Definition: object.h:189
object::enemy
object * enemy
Definition: object.h:389
object::key_values
key_value * key_values
Definition: object.h:440
SIGN
@ SIGN
Definition: object.h:214
body_locations_struct::save_name
const char * save_name
Definition: object.h:21
NROFATTACKS
#define NROFATTACKS
Definition: attack.h:17
TRIGGER_BUTTON
@ TRIGGER_BUTTON
Definition: object.h:135
object::hide
uint8_t hide
Definition: object.h:395
object::title
sstring title
Definition: object.h:323
nrofallocobjects
int nrofallocobjects
Definition: object.cpp:291
object::level
int16_t level
Definition: object.h:359
POWER_CRYSTAL
@ POWER_CRYSTAL
Definition: object.h:245
object::will_apply
uint8_t will_apply
Definition: object.h:400
object::above
object * above
Definition: object.h:294
query_flag
static int query_flag(const object *op, int flag)
Definition: object.h:494
POISONING
@ POISONING
Definition: object.h:221
body_locations_struct::nonuse_name
const char * nonuse_name
Definition: object.h:23
object::resist
int16_t resist[NROFATTACKS]
Definition: object.h:349
FLAG_ALIVE
#define FLAG_ALIVE
Definition: define.h:230
object::path_denied
uint32_t path_denied
Definition: object.h:353
key_value::value
const char * value
Definition: object.h:42
object::carrying
int32_t carrying
Definition: object.h:375
TRIGGER_MARKER
@ TRIGGER_MARKER
Definition: object.h:156
object::path_repelled
uint32_t path_repelled
Definition: object.h:352
object::y
int16_t y
Definition: object.h:333
CLOAK
@ CLOAK
Definition: object.h:207
object::contr
struct player * contr
Definition: object.h:282
item.q
q
Definition: item.py:32
object::temp_anim_speed
uint8_t temp_anim_speed
Definition: object.h:428
NROF
static uint32_t NROF(const object *const ob)
Definition: object.h:614
HELMET
@ HELMET
Definition: object.h:139
object::chosen_skill
object * chosen_skill
Definition: object.h:394
ob_flags
uint32_t ob_flags[4]
Definition: object.h:257
POISON
@ POISON
Definition: object.h:116
object::last_heal
int32_t last_heal
Definition: object.h:365
object::subtype
uint8_t subtype
Definition: object.h:347
oblinkpt::link
objectlink * link
Definition: object.h:459
key_value::next
key_value * next
Definition: object.h:43
DEEP_SWAMP
@ DEEP_SWAMP
Definition: object.h:239
object::anim_speed
uint8_t anim_speed
Definition: object.h:425
MARKER
@ MARKER
Definition: object.h:161
SAVEBED
@ SAVEBED
Definition: object.h:222
object::weapon_speed
float weapon_speed
Definition: object.h:337
LIGHTABLE
@ LIGHTABLE
Definition: object.h:253
POTION
@ POTION
Definition: object.h:114
body_locations_struct::use_name
const char * use_name
Definition: object.h:22
object::prev
object * prev
Definition: object.h:284
BUILDER
@ BUILDER
Definition: object.h:249
treasurelist
Definition: treasure.h:85
archetype::clone
object clone
Definition: object.h:476
object::run_away
uint8_t run_away
Definition: object.h:392
object::ox
int16_t ox
Definition: object.h:334
object::weight_limit
int32_t weight_limit
Definition: object.h:374
object::spell
object * spell
Definition: object.h:416
oblinkpt::value
long value
Definition: object.h:460
ROD
@ ROD
Definition: object.h:112
active_objects
object * active_objects
Definition: object.cpp:296
CONTAINER
@ CONTAINER
Definition: object.h:234
object::below
object * below
Definition: object.h:293
INORGANIC
@ INORGANIC
Definition: object.h:191
object::casting_time
int16_t casting_time
Definition: object.h:410
object::move_type
MoveType move_type
Definition: object.h:432
object::event_bitmask
uint64_t event_bitmask
Definition: object.h:443
LOCKED_DOOR
@ LOCKED_DOOR
Definition: object.h:126
PLAYERMOVER
@ PLAYERMOVER
Definition: object.h:143
object::face
const Face * face
Definition: object.h:339
object::last_eat
int32_t last_eat
Definition: object.h:364
object::value
int32_t value
Definition: object.h:358
SPECIAL_KEY
@ SPECIAL_KEY
Definition: object.h:127
HOLE
@ HOLE
Definition: object.h:212
object::last_anim
uint8_t last_anim
Definition: object.h:426
PEACEMAKER
@ PEACEMAKER
Definition: object.h:167
find_force
object * find_force(object *op, const char *name)
Definition: object.cpp:5411
CONVERTER
@ CONVERTER
Definition: object.h:219
object::type
uint8_t type
Definition: object.h:346
SKILLSCROLL
@ SKILLSCROLL
Definition: object.h:237
object::magic
int8_t magic
Definition: object.h:356
object::active_prev
object * active_prev
Definition: object.h:289
object::materialname
sstring materialname
Definition: object.h:354
DRAGON_FOCUS
@ DRAGON_FOCUS
Definition: object.h:119
LAMP
@ LAMP
Definition: object.h:204
object::move_on
MoveType move_on
Definition: object.h:435
GOLEM
@ GOLEM
Definition: object.h:148
sstring
const typedef char * sstring
Definition: global.h:47
object_type
object_type
Definition: object.h:109
tag_t
uint32_t tag_t
Definition: object.h:12
archetype
Definition: object.h:472
MOOD_FLOOR
@ MOOD_FLOOR
Definition: object.h:173
ARROW
@ ARROW
Definition: object.h:120
struct_dialog_information
Definition: dialog.h:39
BOOK
@ BOOK
Definition: object.h:117
object::sound_chance
uint8_t sound_chance
Definition: object.h:401
object::race
sstring race
Definition: object.h:324
compare_flags
static void compare_flags(ob_flags *ret, const object *p, const object *q)
Definition: object.h:488
objects
object * objects
Definition: object.cpp:294
object::facing
int8_t facing
Definition: object.h:343
object::animation
const Animations * animation
Definition: object.h:424
RING
@ RING
Definition: object.h:188
BLINDNESS
@ BLINDNESS
Definition: object.h:150
object::other_arch
struct archetype * other_arch
Definition: object.h:421
living
Definition: living.h:35
FLAG_MONSTER
#define FLAG_MONSTER
Definition: define.h:245
CLOCK
@ CLOCK
Definition: object.h:118
SHOP_MAT
@ SHOP_MAT
Definition: object.h:187
object::head
object * head
Definition: object.h:302
object::current_weapon
object * current_weapon
Definition: object.h:378
object::weight
int32_t weight
Definition: object.h:373
object::move_slow
MoveType move_slow
Definition: object.h:437
object::spell_tags
tag_t * spell_tags
Definition: object.h:442
object::move_slow_penalty
float move_slow_penalty
Definition: object.h:438
IS_PLAYER
static bool IS_PLAYER(object *op)
Definition: object.h:598
EXIT
@ EXIT
Definition: object.h:184
MAGIC_EAR
@ MAGIC_EAR
Definition: object.h:134
key_value::key
const char * key
Definition: object.h:41
object::lore
sstring lore
Definition: object.h:330
object::dam_modifier
uint8_t dam_modifier
Definition: object.h:415
dialog.h
object::slaying
sstring slaying
Definition: object.h:325
object::glow_radius
int8_t glow_radius
Definition: object.h:372
archetype::tail_x
int8_t tail_x
Definition: object.h:477
object::duration_modifier
uint8_t duration_modifier
Definition: object.h:412
object::name
sstring name
Definition: object.h:317
BATTLEGROUND
@ BATTLEGROUND
Definition: object.h:166
object::spellitem
object * spellitem
Definition: object.h:402
body_locations
body_locations_struct body_locations[NUM_BODY_LOCATIONS]
Definition: item.cpp:54
OBJECT_TYPE_MAX
@ OBJECT_TYPE_MAX
Definition: object.h:254
GRIMREAPER
@ GRIMREAPER
Definition: object.h:133
object::artifact
sstring artifact
Definition: object.h:320
EARTHWALL
@ EARTHWALL
Definition: object.h:147
DUPLICATOR
@ DUPLICATOR
Definition: object.h:205
DISEASE
@ DISEASE
Definition: object.h:247
FIREWALL
@ FIREWALL
Definition: object.h:171
TRIGGER_ALTAR
@ TRIGGER_ALTAR
Definition: object.h:136
PLAYER_CHANGER
@ PLAYER_CHANGER
Definition: object.h:165
mapstruct
Definition: map.h:316
object::env
object * env
Definition: object.h:299
object::last_sp
int32_t last_sp
Definition: object.h:366
LIGHTER
@ LIGHTER
Definition: object.h:193
give.op
op
Definition: give.py:33
Animations
Definition: face.h:25
object::gen_sp_armour
int8_t gen_sp_armour
Definition: object.h:371
object::skill
sstring skill
Definition: object.h:327
MATERIAL
@ MATERIAL
Definition: object.h:251
add_force
object * add_force(object *op, const char *name, int duration)
Definition: object.cpp:5416
object::attacked_by_count
tag_t attacked_by_count
Definition: object.h:391
SPINNER
@ SPINNER
Definition: object.h:208
SPELL_EFFECT
@ SPELL_EFFECT
Definition: object.h:218
object::msg
sstring msg
Definition: object.h:328
SKILL_TOOL
@ SKILL_TOOL
Definition: object.h:192
archetype::reference_count
int reference_count
Definition: object.h:479
set_flag
static void set_flag(object *op, int flag)
Definition: object.h:502
SHOP_INVENTORY
@ SHOP_INVENTORY
Definition: object.h:241
PEDESTAL
@ PEDESTAL
Definition: object.h:124
object::attacked_by
object * attacked_by
Definition: object.h:390
object::duration
int16_t duration
Definition: object.h:411
DEAD_OBJECT
@ DEAD_OBJECT
Definition: object.h:159
DIRECTOR
@ DIRECTOR
Definition: object.h:225
object::flags
ob_flags flags
Definition: object.h:423
CORPSE
@ CORPSE
Definition: object.h:246
object::body_info
int8_t body_info[NUM_BODY_LOCATIONS]
Definition: object.h:380
object::randomitems
struct treasurelist * randomitems
Definition: object.h:393
move_name
const char *const move_name[]
Definition: object.cpp:4825
FOOD
@ FOOD
Definition: object.h:115
object::container
object * container
Definition: object.h:297
object::active_next
object * active_next
Definition: object.h:285
ALTAR
@ ALTAR
Definition: object.h:125
DOOR
@ DOOR
Definition: object.h:129
object::move_off
MoveType move_off
Definition: object.h:436
archetype::tail_y
int8_t tail_y
Definition: object.h:477
object::spellarg
char * spellarg
Definition: object.h:417
DRINK
@ DRINK
Definition: object.h:160
object::state
uint8_t state
Definition: object.h:357
WALL
@ WALL
Definition: object.h:194
WEAPON_IMPROVER
@ WEAPON_IMPROVER
Definition: object.h:236
archetype::name
sstring name
Definition: object.h:473
SCROLL
@ SCROLL
Definition: object.h:224
object::nrof
uint32_t nrof
Definition: object.h:340
body_locations_struct
Definition: object.h:20
object::body_used
int8_t body_used[NUM_BODY_LOCATIONS]
Definition: object.h:381
object::stats
living stats
Definition: object.h:376
object::move_allow
MoveType move_allow
Definition: object.h:434
object::more
object * more
Definition: object.h:301
clear_flag
static void clear_flag(object *op, int flag)
Definition: object.h:498
BOOTS
@ BOOTS
Definition: object.h:215
object::total_exp
int64_t total_exp
Definition: object.h:377
IDENTIFY_ALTAR
@ IDENTIFY_ALTAR
Definition: object.h:240
SPELL
@ SPELL
Definition: object.h:217
SHIELD
@ SHIELD
Definition: object.h:138
object::attacktype
uint32_t attacktype
Definition: object.h:350
TELEPORTER
@ TELEPORTER
Definition: object.h:144
object::temp_animation
const Animations * temp_animation
Definition: object.h:427
THROWN_OBJ
@ THROWN_OBJ
Definition: object.h:149
object::material
uint16_t material
Definition: object.h:355
object::dialog_information
struct_dialog_information * dialog_information
Definition: object.h:306
SPELLBOOK
@ SPELLBOOK
Definition: object.h:206
object::move_block
MoveType move_block
Definition: object.h:433
object::next
object * next
Definition: object.h:283
FORCE
@ FORCE
Definition: object.h:227
object::oy
int16_t oy
Definition: object.h:334
HOLY_ALTAR
@ HOLY_ALTAR
Definition: object.h:164
TRAPDOOR
@ TRAPDOOR
Definition: object.h:213
DETECTOR
@ DETECTOR
Definition: object.h:152
GOD
@ GOD
Definition: object.h:151
MISC_OBJECT
@ MISC_OBJECT
Definition: object.h:196
MONEY
@ MONEY
Definition: object.h:140
GATE
@ GATE
Definition: object.h:209
give.name
name
Definition: give.py:27