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