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 typedef struct body_locations_struct {
21  const char *save_name;
22  const char *use_name;
23  const char *nonuse_name;
25 
27 
28 extern const char *const move_name[];
29 
40 typedef struct _key_value {
41  const char *key;
42  const char *value;
43  struct _key_value *next;
44 } key_value;
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 
107  PLAYER = 1,
108  TRANSPORT = 2,
109  ROD = 3,
110  TREASURE = 4,
111  POTION = 5,
112  FOOD = 6,
113  POISON = 7,
114  BOOK = 8,
115  CLOCK = 9,
117  ARROW = 13,
118  BOW = 14,
119  WEAPON = 15,
120  ARMOUR = 16,
121  PEDESTAL = 17,
122  ALTAR = 18,
125  MAP = 22,
126  DOOR = 23,
127  KEY = 24,
129  TRIGGER = 27,
131  MAGIC_EAR = 29,
135  SHIELD = 33,
136  HELMET = 34,
137  MONEY = 36,
138  CLASS = 37,
139  AMULET = 39,
142  CREATOR = 42,
143  SKILL = 43,
144  EARTHWALL = 45,
145  GOLEM = 46,
147  BLINDNESS = 49,
148  GOD = 50,
149  DETECTOR = 51,
157  DRINK = 54,
158  MARKER = 55,
164  PEACEMAKER = 59,
167  GEM = 60,
168  FIREWALL = 62,
169  CHECK_INV = 64,
170  MOOD_FLOOR = 65,
181  EXIT = 66,
182  ENCOUNTER = 67,
184  SHOP_MAT = 69,
185  RING = 70,
186  FLOOR = 71,
187  FLESH = 72,
188  INORGANIC = 73,
189  SKILL_TOOL = 74,
190  LIGHTER = 75,
191  WALL = 77,
193  MISC_OBJECT = 79,
200  MONSTER = 80,
201  LAMP = 82,
202  DUPLICATOR = 83,
203  SPELLBOOK = 85,
204  CLOAK = 87,
205  SPINNER = 90,
206  GATE = 91,
207  BUTTON = 92,
208  CF_HANDLE = 93,
209  HOLE = 94, /* When open, objects fall through */
210  TRAPDOOR = 95,
211  SIGN = 98,
212  BOOTS = 99,
213  GLOVES = 100,
214  SPELL = 101,
216  CONVERTER = 103,
217  BRACERS = 104,
218  POISONING = 105,
219  SAVEBED = 106,
220  WAND = 109,
221  SCROLL = 111,
222  DIRECTOR = 112,
223  GIRDLE = 113,
224  FORCE = 114,
229  CLOSE_CON = 121,
231  CONTAINER = 122,
234  SKILLSCROLL = 130,
236  DEEP_SWAMP = 138,
240  RUNE = 154,
241  TRAP = 155,
243  CORPSE = 157,
244  DISEASE = 158,
245  SYMPTOM = 159,
246  BUILDER = 160,
248  MATERIAL = 161,
249  MIMIC = 162,
250  LIGHTABLE = 163,
252 };
253 
254 typedef uint32_t ob_flags[4];
255 
277 typedef struct obj {
278  /* These variables are not changed by object_copy() */
279  struct pl *contr;
280  struct obj *next;
281  struct obj *prev;
282  struct obj *active_next;
286  struct obj *active_prev;
290  struct obj *below;
291  struct obj *above;
292  /* Note: stacked in the *same *environment*/
293  struct obj *inv;
294  struct obj *container;
296  struct obj *env;
298  struct obj *more;
299  struct obj *head;
300  struct mapdef *map;
306  /* These get an extra add_refcount(), after having been copied by memcpy().
307  *
308  * Fields below name (included) are copied by memcpy in object_copy().
309  *
310  * If adding something that needs a refcount updated, make sure you modify
311  * object_copy() to do so.
312  * Everything below here also gets cleared by object_clear().
313  */
315  /* Place new attributes that should get copied and cleared below name */
316 
330  int16_t x, y;
331  int16_t ox, oy;
332  float speed;
333  float speed_left;
334  float weapon_speed;
336  const Face *face;
337  uint32_t nrof;
339  int8_t direction;
340  int8_t facing;
342  /* This next big block are basically used for monsters and equipment */
343  uint8_t type;
344  uint8_t subtype;
345  uint16_t client_type;
346  int16_t resist[NROFATTACKS];
347  uint32_t attacktype;
348  uint32_t path_attuned;
349  uint32_t path_repelled;
350  uint32_t path_denied;
352  uint16_t material;
353  int8_t magic;
354  uint8_t state;
355  int32_t value;
356  int16_t level;
358  /* Note that the last_.. values are sometimes used for non obvious
359  * meanings by some objects, eg, sp penalty, permanent exp.
360  */
361  int32_t last_eat;
362  int32_t last_heal;
363  int32_t last_sp;
364  int16_t last_grace;
365  int16_t invisible;
366  uint8_t pick_up;
367  int8_t item_power;
368  int8_t gen_sp_armour;
369  int8_t glow_radius;
370  int32_t weight;
371  int32_t weight_limit;
372  int32_t carrying;
374  int64_t total_exp;
375  struct obj *current_weapon;
376  uint32_t weapontype;
379  /* See the doc/Developers/objects for more info about body locations */
380 
381  /* Following mostly refers to fields only used for monsters */
382  struct obj *owner;
386  struct obj *enemy;
387  struct obj *attacked_by;
389  uint8_t run_away;
391  struct obj *chosen_skill;
392  uint8_t hide;
393  /* changes made by kholland@sunlab.cit.cornell.edu */
394  /* allows different movement patterns for attackers */
395  int32_t move_status;
396  uint16_t attack_movement;
397  uint8_t will_apply;
398  uint8_t sound_chance;
399  struct obj *spellitem;
400  double expmul;
403  /* Spell related information, may be useful elsewhere
404  * Note that other fields are used - these files are basically
405  * only used in spells.
406  */
407  int16_t casting_time;
408  int16_t duration;
410  int8_t range;
411  uint8_t range_modifier;
412  uint8_t dam_modifier;
413  struct obj *spell;
414  char *spellarg;
416  /* Following are values used by any object */
417  struct archt *arch;
418  struct archt *other_arch;
422  uint8_t anim_speed;
423  uint8_t last_anim;
425  uint8_t temp_anim_speed;
426  uint8_t smoothlevel;
427  uint8_t map_layer;
441 } object;
442 
446 typedef struct oblnk {
447  object *ob;
448  struct oblnk *next;
450 } objectlink;
451 
455 typedef struct oblinkpt {
456  struct oblnk *link;
457  long value;
458  struct oblinkpt *next;
459 } oblinkpt;
460 
469 typedef struct archt {
471  struct archt *head;
472  struct archt *more;
473  object clone;
474  int8_t tail_x, tail_y;
477 } archetype;
478 
479 extern object *objects;
480 extern object *active_objects;
481 
482 extern int nrofallocobjects;
483 extern int nroffreeobjects;
484 
485 static inline void compare_flags(ob_flags *ret, const object *p, const object *q) {
486  for (int i = 0; i < 4; i++) {
487  (*ret)[i] = p->flags[i] ^ q->flags[i];
488  }
489 }
490 
491 static inline int query_flag(const object *op, int flag) {
492  return op->flags[flag / 32] & (1U << (flag % 32));
493 }
494 
495 static inline void clear_flag(object *op, int flag) {
496  op->flags[flag / 32] &= ~(1U << (flag % 32));
497 }
498 
499 static inline void set_flag(object *op, int flag) {
500  op->flags[flag / 32] |= (1U << (flag % 32));
501 }
502 
507 #define LOOK_OBJ(ob) (!ob->invisible && ob->type != PLAYER && ob->type != EVENT_CONNECTOR)
508 
516 #define UP_OBJ_INSERT 1
517 #define UP_OBJ_REMOVE 2
518 #define UP_OBJ_CHANGE 3
519 #define UP_OBJ_FACE 4
523 
524 
530 #define FREE_OBJ_FREE_INVENTORY 1
531 #define FREE_OBJ_NO_DESTROY_CALLBACK 2
532 #define FREE_OBJ_DROP_ABOVE_FLOOR 4
534 
535 
566 #define INS_NO_MERGE 0x0001
567 #define INS_ABOVE_FLOOR_ONLY 0x0002
568 #define INS_NO_WALK_ON 0x0004
569 #define INS_ON_TOP 0x0008
570 #define INS_BELOW_ORIGINATOR 0x0010
571 #define INS_MAP_LOAD 0x0020
573 
574 #define ARCH_SINGULARITY "singularity"
575 #define ARCH_DETECT_MAGIC "detect_magic"
576 #define ARCH_DEPLETION "depletion"
577 #define ARCH_SYMPTOM "symptom"
578 #define ARCH_PORTAL_FAILED "town_portal_failed"
579 #define ARCH_SPELL_BLOCKED "spell_blocked"
580 #define ARCH_SPELL_BUNGLE "spell_bungle"
582 #define MONSTER_EXCLUDE_FROM_READABLE_KEY "exclude_from_readable"
593 #define HEAD(op) ((op)->head != NULL ? (op)->head : (op))
594 
595 static inline bool IS_PLAYER(object *op) {
596  return op->type == PLAYER;
597 }
598 
602 static inline bool CAN_PROBE(const object *ob) {
603  return QUERY_FLAG(ob, FLAG_ALIVE) &&
604  (ob->type == PLAYER || QUERY_FLAG(ob, FLAG_MONSTER));
605 }
606 
611 static inline uint32_t NROF(const object * const ob) {
612  return ob->nrof ? ob->nrof : 1;
613 }
614 
620 object *find_force(object *op, const char *name);
621 
627 object *add_force(object *op, const char *name, int duration);
628 
629 #endif /* OBJECT_H */
obj::weapon_speed
float weapon_speed
Definition: object.h:334
CLASS
@ CLASS
Definition: object.h:138
obj::move_off
MoveType move_off
Definition: object.h:433
obj::flags
ob_flags flags
Definition: object.h:420
Face
Definition: face.h:14
TRIGGER
@ TRIGGER
Definition: object.h:129
MIMIC
@ MIMIC
Definition: object.h:249
PLAYER
@ PLAYER
Definition: object.h:107
obj::attack_movement
uint16_t attack_movement
Definition: object.h:396
object
struct obj object
CF_HANDLE
@ CF_HANDLE
Definition: object.h:208
MAP
@ MAP
Definition: object.h:125
nroffreeobjects
int nroffreeobjects
Definition: object.c:290
NUM_BODY_LOCATIONS
#define NUM_BODY_LOCATIONS
Definition: object.h:13
obj::face
const Face * face
Definition: object.h:336
obj::move_block
MoveType move_block
Definition: object.h:430
MONSTER
@ MONSTER
Definition: object.h:200
CAN_PROBE
static bool CAN_PROBE(const object *ob)
Definition: object.h:602
BOW
@ BOW
Definition: object.h:118
BRACERS
@ BRACERS
Definition: object.h:217
archt::head
struct archt * head
Definition: object.h:471
CLOSE_CON
@ CLOSE_CON
Definition: object.h:229
ARMOUR_IMPROVER
@ ARMOUR_IMPROVER
Definition: object.h:232
EVENT_CONNECTOR
@ EVENT_CONNECTOR
Definition: object.h:227
SYMPTOM
@ SYMPTOM
Definition: object.h:245
WAND
@ WAND
Definition: object.h:220
FLESH
@ FLESH
Definition: object.h:187
ENCOUNTER
@ ENCOUNTER
Definition: object.h:182
GLOVES
@ GLOVES
Definition: object.h:213
GIRDLE
@ GIRDLE
Definition: object.h:223
BUTTON
@ BUTTON
Definition: object.h:207
obj::count
tag_t count
Definition: object.h:302
obj::map
struct mapdef * map
Definition: object.h:300
QUERY_FLAG
#define QUERY_FLAG(xyz, p)
Definition: define.h:226
obj::race
sstring race
Definition: object.h:321
archt::tail_x
int8_t tail_x
Definition: object.h:474
TRIGGER_PEDESTAL
@ TRIGGER_PEDESTAL
Definition: object.h:134
obj::value
int32_t value
Definition: object.h:355
KEY
@ KEY
Definition: object.h:127
obj::gen_sp_armour
int8_t gen_sp_armour
Definition: object.h:368
obj::body_used
int8_t body_used[NUM_BODY_LOCATIONS]
Definition: object.h:378
obj::anim_speed
uint8_t anim_speed
Definition: object.h:422
obj::path_attuned
uint32_t path_attuned
Definition: object.h:348
obj::attacked_by_count
tag_t attacked_by_count
Definition: object.h:388
SHOP_FLOOR
@ SHOP_FLOOR
Definition: object.h:183
GEM
@ GEM
Definition: object.h:167
pl
Definition: player.h:105
TRAP
@ TRAP
Definition: object.h:241
obj::last_anim
uint8_t last_anim
Definition: object.h:423
obj::artifact
sstring artifact
Definition: object.h:317
ARMOUR
@ ARMOUR
Definition: object.h:120
WEAPON
@ WEAPON
Definition: object.h:119
TIMED_GATE
@ TIMED_GATE
Definition: object.h:128
obj::invisible
int16_t invisible
Definition: object.h:365
MoveType
unsigned char MoveType
Definition: define.h:417
_key_value::key
const char * key
Definition: object.h:41
guildjoin.ob
ob
Definition: guildjoin.py:42
obj::range_modifier
uint8_t range_modifier
Definition: object.h:411
obj::custom_name
sstring custom_name
Definition: object.h:437
AMULET
@ AMULET
Definition: object.h:139
CHECK_INV
@ CHECK_INV
Definition: object.h:169
TREASURE
@ TREASURE
Definition: object.h:110
archt::tail_y
int8_t tail_y
Definition: object.h:474
SKILL
@ SKILL
Definition: object.h:143
obj::dialog_information
struct struct_dialog_information * dialog_information
Definition: object.h:303
RUNE
@ RUNE
Definition: object.h:240
oblinkpt::link
struct oblnk * link
Definition: object.h:456
obj::path_denied
uint32_t path_denied
Definition: object.h:350
CREATOR
@ CREATOR
Definition: object.h:142
obj::smoothlevel
uint8_t smoothlevel
Definition: object.h:426
oblinkpt
Definition: object.h:455
TRANSPORT
@ TRANSPORT
Definition: object.h:108
POTION_RESIST_EFFECT
@ POTION_RESIST_EFFECT
Definition: object.h:225
FLOOR
@ FLOOR
Definition: object.h:186
SIGN
@ SIGN
Definition: object.h:211
body_locations_struct::save_name
const char * save_name
Definition: object.h:21
NROFATTACKS
#define NROFATTACKS
Definition: attack.h:17
obj::msg
sstring msg
Definition: object.h:325
obj::body_info
int8_t body_info[NUM_BODY_LOCATIONS]
Definition: object.h:377
TRIGGER_BUTTON
@ TRIGGER_BUTTON
Definition: object.h:132
nrofallocobjects
int nrofallocobjects
Definition: object.c:291
body_locations_struct
struct body_locations_struct body_locations_struct
POWER_CRYSTAL
@ POWER_CRYSTAL
Definition: object.h:242
obj::randomitems
struct treasureliststruct * randomitems
Definition: object.h:390
query_flag
static int query_flag(const object *op, int flag)
Definition: object.h:491
POISONING
@ POISONING
Definition: object.h:218
obj::expmul
double expmul
Definition: object.h:400
body_locations_struct::nonuse_name
const char * nonuse_name
Definition: object.h:23
obj::nrof
uint32_t nrof
Definition: object.h:337
obj::ox
int16_t ox
Definition: object.h:331
obj::duration_modifier
uint8_t duration_modifier
Definition: object.h:409
obj::duration
int16_t duration
Definition: object.h:408
archt
Definition: object.h:469
obj
Definition: object.h:277
FLAG_ALIVE
#define FLAG_ALIVE
Definition: define.h:230
obj::last_heal
int32_t last_heal
Definition: object.h:362
obj::chosen_skill
struct obj * chosen_skill
Definition: object.h:391
obj::slaying
sstring slaying
Definition: object.h:322
TRIGGER_MARKER
@ TRIGGER_MARKER
Definition: object.h:153
obj::spell
struct obj * spell
Definition: object.h:413
obj::attacked_by
struct obj * attacked_by
Definition: object.h:387
CLOAK
@ CLOAK
Definition: object.h:204
obj::spell_tags
tag_t * spell_tags
Definition: object.h:440
item.q
q
Definition: item.py:32
NROF
static uint32_t NROF(const object *const ob)
Definition: object.h:611
HELMET
@ HELMET
Definition: object.h:136
obj::current_weapon
struct obj * current_weapon
Definition: object.h:375
ob_flags
uint32_t ob_flags[4]
Definition: object.h:254
POISON
@ POISON
Definition: object.h:113
oblnk::next
struct oblnk * next
Definition: object.h:448
obj::active_next
struct obj * active_next
Definition: object.h:282
key_value
struct _key_value key_value
obj::name
sstring name
Definition: object.h:314
oblinkpt::next
struct oblinkpt * next
Definition: object.h:458
DEEP_SWAMP
@ DEEP_SWAMP
Definition: object.h:236
MARKER
@ MARKER
Definition: object.h:158
SAVEBED
@ SAVEBED
Definition: object.h:219
LIGHTABLE
@ LIGHTABLE
Definition: object.h:250
POTION
@ POTION
Definition: object.h:111
body_locations_struct::use_name
const char * use_name
Definition: object.h:22
BUILDER
@ BUILDER
Definition: object.h:246
obj::path_repelled
uint32_t path_repelled
Definition: object.h:349
obj::total_exp
int64_t total_exp
Definition: object.h:374
obj::name_pl
sstring name_pl
Definition: object.h:318
oblinkpt::value
long value
Definition: object.h:457
ROD
@ ROD
Definition: object.h:109
active_objects
object * active_objects
Definition: object.c:296
CONTAINER
@ CONTAINER
Definition: object.h:231
INORGANIC
@ INORGANIC
Definition: object.h:188
obj::speed_left
float speed_left
Definition: object.h:333
obj::hide
uint8_t hide
Definition: object.h:392
LOCKED_DOOR
@ LOCKED_DOOR
Definition: object.h:123
PLAYERMOVER
@ PLAYERMOVER
Definition: object.h:140
obj::prev
struct obj * prev
Definition: object.h:281
SPECIAL_KEY
@ SPECIAL_KEY
Definition: object.h:124
obj::spellarg
char * spellarg
Definition: object.h:414
HOLE
@ HOLE
Definition: object.h:209
obj::carrying
int32_t carrying
Definition: object.h:372
PEACEMAKER
@ PEACEMAKER
Definition: object.h:164
find_force
object * find_force(object *op, const char *name)
Definition: object.c:5391
CONVERTER
@ CONVERTER
Definition: object.h:216
obj::x
int16_t x
Definition: object.h:330
obj::container
struct obj * container
Definition: object.h:294
SKILLSCROLL
@ SKILLSCROLL
Definition: object.h:234
objectlink
struct oblnk objectlink
DRAGON_FOCUS
@ DRAGON_FOCUS
Definition: object.h:116
LAMP
@ LAMP
Definition: object.h:201
obj::other_arch
struct archt * other_arch
Definition: object.h:418
archt::more
struct archt * more
Definition: object.h:472
GOLEM
@ GOLEM
Definition: object.h:145
sstring
const typedef char * sstring
Definition: global.h:40
obj::speed
float speed
Definition: object.h:332
object_type
object_type
Definition: object.h:106
obj::weapontype
uint32_t weapontype
Definition: object.h:376
tag_t
uint32_t tag_t
Definition: object.h:12
obj::env
struct obj * env
Definition: object.h:296
obj::client_type
uint16_t client_type
Definition: object.h:345
MOOD_FLOOR
@ MOOD_FLOOR
Definition: object.h:170
obj::below
struct obj * below
Definition: object.h:290
ARROW
@ ARROW
Definition: object.h:117
struct_dialog_information
Definition: dialog.h:38
obj::move_slow_penalty
float move_slow_penalty
Definition: object.h:435
obj::enemy
struct obj * enemy
Definition: object.h:386
mapdef
Definition: map.h:317
BOOK
@ BOOK
Definition: object.h:114
compare_flags
static void compare_flags(ob_flags *ret, const object *p, const object *q)
Definition: object.h:485
objects
object * objects
Definition: object.c:294
oblnk::id
tag_t id
Definition: object.h:449
RING
@ RING
Definition: object.h:185
obj::map_layer
uint8_t map_layer
Definition: object.h:427
obj::animation
const Animations * animation
Definition: object.h:421
BLINDNESS
@ BLINDNESS
Definition: object.h:147
liv
Definition: living.h:35
obj::material
uint16_t material
Definition: object.h:352
FLAG_MONSTER
#define FLAG_MONSTER
Definition: define.h:245
CLOCK
@ CLOCK
Definition: object.h:115
obj::spellitem
struct obj * spellitem
Definition: object.h:399
obj::item_power
int8_t item_power
Definition: object.h:367
obj::lore
sstring lore
Definition: object.h:327
SHOP_MAT
@ SHOP_MAT
Definition: object.h:184
obj::next
struct obj * next
Definition: object.h:280
IS_PLAYER
static bool IS_PLAYER(object *op)
Definition: object.h:595
EXIT
@ EXIT
Definition: object.h:181
obj::y
int16_t y
Definition: object.h:330
obj::glow_radius
int8_t glow_radius
Definition: object.h:369
MAGIC_EAR
@ MAGIC_EAR
Definition: object.h:131
obj::title
sstring title
Definition: object.h:320
obj::arch
struct archt * arch
Definition: object.h:417
obj::oy
int16_t oy
Definition: object.h:331
animations_struct
Definition: face.h:25
obj::type
uint8_t type
Definition: object.h:343
obj::temp_animation
const Animations * temp_animation
Definition: object.h:424
dialog.h
obj::last_grace
int16_t last_grace
Definition: object.h:364
obj::move_slow
MoveType move_slow
Definition: object.h:434
obj::stats
living stats
Definition: object.h:373
BATTLEGROUND
@ BATTLEGROUND
Definition: object.h:163
obj::direction
int8_t direction
Definition: object.h:339
body_locations
body_locations_struct body_locations[NUM_BODY_LOCATIONS]
Definition: item.c:54
OBJECT_TYPE_MAX
@ OBJECT_TYPE_MAX
Definition: object.h:251
archt::clone
object clone
Definition: object.h:473
obj::state
uint8_t state
Definition: object.h:354
obj::contr
struct pl * contr
Definition: object.h:279
obj::facing
int8_t facing
Definition: object.h:340
obj::weight
int32_t weight
Definition: object.h:370
GRIMREAPER
@ GRIMREAPER
Definition: object.h:130
EARTHWALL
@ EARTHWALL
Definition: object.h:144
DUPLICATOR
@ DUPLICATOR
Definition: object.h:202
DISEASE
@ DISEASE
Definition: object.h:244
FIREWALL
@ FIREWALL
Definition: object.h:168
TRIGGER_ALTAR
@ TRIGGER_ALTAR
Definition: object.h:133
PLAYER_CHANGER
@ PLAYER_CHANGER
Definition: object.h:162
archt::reference_count
int reference_count
Definition: object.h:476
LIGHTER
@ LIGHTER
Definition: object.h:190
give.op
op
Definition: give.py:33
obj::temp_anim_speed
uint8_t temp_anim_speed
Definition: object.h:425
MATERIAL
@ MATERIAL
Definition: object.h:248
obj::key_values
key_value * key_values
Definition: object.h:438
add_force
object * add_force(object *op, const char *name, int duration)
Definition: object.c:5396
SPINNER
@ SPINNER
Definition: object.h:205
SPELL_EFFECT
@ SPELL_EFFECT
Definition: object.h:215
obj::weapon_speed_left
float weapon_speed_left
Definition: object.h:335
_key_value
Definition: object.h:40
SKILL_TOOL
@ SKILL_TOOL
Definition: object.h:189
obj::last_sp
int32_t last_sp
Definition: object.h:363
obj::casting_time
int16_t casting_time
Definition: object.h:407
set_flag
static void set_flag(object *op, int flag)
Definition: object.h:499
SHOP_INVENTORY
@ SHOP_INVENTORY
Definition: object.h:238
PEDESTAL
@ PEDESTAL
Definition: object.h:121
oblnk::ob
object * ob
Definition: object.h:447
obj::ownercount
tag_t ownercount
Definition: object.h:385
obj::head
struct obj * head
Definition: object.h:299
obj::subtype
uint8_t subtype
Definition: object.h:344
obj::more
struct obj * more
Definition: object.h:298
obj::last_eat
int32_t last_eat
Definition: object.h:361
obj::move_type
MoveType move_type
Definition: object.h:429
obj::weight_limit
int32_t weight_limit
Definition: object.h:371
obj::materialname
sstring materialname
Definition: object.h:351
DEAD_OBJECT
@ DEAD_OBJECT
Definition: object.h:156
DIRECTOR
@ DIRECTOR
Definition: object.h:222
CORPSE
@ CORPSE
Definition: object.h:243
obj::pick_up
uint8_t pick_up
Definition: object.h:366
obj::skill
sstring skill
Definition: object.h:324
move_name
const char *const move_name[]
Definition: object.c:4802
obj::move_status
int32_t move_status
Definition: object.h:395
FOOD
@ FOOD
Definition: object.h:112
obj::active_prev
struct obj * active_prev
Definition: object.h:286
ALTAR
@ ALTAR
Definition: object.h:122
DOOR
@ DOOR
Definition: object.h:126
_key_value::next
struct _key_value * next
Definition: object.h:43
DRINK
@ DRINK
Definition: object.h:157
archt::name
sstring name
Definition: object.h:470
WALL
@ WALL
Definition: object.h:191
_key_value::value
const char * value
Definition: object.h:42
WEAPON_IMPROVER
@ WEAPON_IMPROVER
Definition: object.h:233
SCROLL
@ SCROLL
Definition: object.h:221
body_locations_struct
Definition: object.h:20
obj::above
struct obj * above
Definition: object.h:291
obj::owner
struct obj * owner
Definition: object.h:382
obj::will_apply
uint8_t will_apply
Definition: object.h:397
obj::anim_suffix
sstring anim_suffix
Definition: object.h:319
obj::move_on
MoveType move_on
Definition: object.h:432
clear_flag
static void clear_flag(object *op, int flag)
Definition: object.h:495
obj::attacktype
uint32_t attacktype
Definition: object.h:347
oblnk
Definition: object.h:446
BOOTS
@ BOOTS
Definition: object.h:212
obj::run_away
uint8_t run_away
Definition: object.h:389
IDENTIFY_ALTAR
@ IDENTIFY_ALTAR
Definition: object.h:237
SPELL
@ SPELL
Definition: object.h:214
SHIELD
@ SHIELD
Definition: object.h:135
TELEPORTER
@ TELEPORTER
Definition: object.h:141
obj::sound_chance
uint8_t sound_chance
Definition: object.h:398
obj::move_allow
MoveType move_allow
Definition: object.h:431
obj::magic
int8_t magic
Definition: object.h:353
obj::resist
int16_t resist[NROFATTACKS]
Definition: object.h:346
THROWN_OBJ
@ THROWN_OBJ
Definition: object.h:146
SPELLBOOK
@ SPELLBOOK
Definition: object.h:203
FORCE
@ FORCE
Definition: object.h:224
HOLY_ALTAR
@ HOLY_ALTAR
Definition: object.h:161
TRAPDOOR
@ TRAPDOOR
Definition: object.h:210
oblinkpt
struct oblinkpt oblinkpt
DETECTOR
@ DETECTOR
Definition: object.h:149
obj::level
int16_t level
Definition: object.h:356
GOD
@ GOD
Definition: object.h:148
MISC_OBJECT
@ MISC_OBJECT
Definition: object.h:193
MONEY
@ MONEY
Definition: object.h:137
obj::range
int8_t range
Definition: object.h:410
treasureliststruct
Definition: treasure.h:82
GATE
@ GATE
Definition: object.h:206
obj::inv
struct obj * inv
Definition: object.h:293
give.name
name
Definition: give.py:27
archetype
struct archt archetype
obj::dam_modifier
uint8_t dam_modifier
Definition: object.h:412