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 
275 typedef struct obj {
276  /* These variables are not changed by object_copy() */
277  struct pl *contr;
278  struct obj *next;
279  struct obj *prev;
280  struct obj *active_next;
284  struct obj *active_prev;
288  struct obj *below;
289  struct obj *above;
290  /* Note: stacked in the *same *environment*/
291  struct obj *inv;
292  struct obj *container;
294  struct obj *env;
296  struct obj *more;
297  struct obj *head;
298  struct mapdef *map;
304  /* These get an extra add_refcount(), after having been copied by memcpy().
305  *
306  * Fields below name (included) are copied by memcpy in object_copy().
307  *
308  * If adding something that needs a refcount updated, make sure you modify
309  * object_copy() to do so.
310  * Everything below here also gets cleared by object_clear().
311  */
313  /* Place new attributes that should get copied and cleared below name */
314 
328  int16_t x, y;
329  int16_t ox, oy;
330  float speed;
331  float speed_left;
332  float weapon_speed;
334  const Face *face;
335  uint32_t nrof;
337  int8_t direction;
338  int8_t facing;
340  /* This next big block are basically used for monsters and equipment */
341  uint8_t type;
342  uint8_t subtype;
343  uint16_t client_type;
344  int16_t resist[NROFATTACKS];
345  uint32_t attacktype;
346  uint32_t path_attuned;
347  uint32_t path_repelled;
348  uint32_t path_denied;
350  uint16_t material;
351  int8_t magic;
352  uint8_t state;
353  int32_t value;
354  int16_t level;
356  /* Note that the last_.. values are sometimes used for non obvious
357  * meanings by some objects, eg, sp penalty, permanent exp.
358  */
359  int32_t last_eat;
360  int32_t last_heal;
361  int32_t last_sp;
362  int16_t last_grace;
363  int16_t invisible;
364  uint8_t pick_up;
365  int8_t item_power;
366  int8_t gen_sp_armour;
367  int8_t glow_radius;
368  int32_t weight;
369  int32_t weight_limit;
370  int32_t carrying;
372  //int64_t perm_exp; /**< Permanent exp */
373  int64_t total_exp;
374  struct obj *current_weapon;
375  uint32_t weapontype;
378  /* See the doc/Developers/objects for more info about body locations */
379 
380  /* Following mostly refers to fields only used for monsters */
381  struct obj *owner;
385  struct obj *enemy;
386  struct obj *attacked_by;
388  uint8_t run_away;
390  struct obj *chosen_skill;
391  uint8_t hide;
392  /* changes made by kholland@sunlab.cit.cornell.edu */
393  /* allows different movement patterns for attackers */
394  int32_t move_status;
395  uint16_t attack_movement;
396  uint8_t will_apply;
397  uint8_t sound_chance;
398  struct obj *spellitem;
399  double expmul;
402  /* Spell related information, may be useful elsewhere
403  * Note that other fields are used - these files are basically
404  * only used in spells.
405  */
406  int16_t casting_time;
407  int16_t duration;
409  int8_t range;
410  uint8_t range_modifier;
411  uint8_t dam_modifier;
412  struct obj *spell;
413  char *spellarg;
415  /* Following are values used by any object */
416  struct archt *arch;
417  struct archt *other_arch;
419  uint32_t flags[4];
421  uint8_t anim_speed;
422  uint8_t last_anim;
424  uint8_t temp_anim_speed;
425  uint8_t smoothlevel;
426  uint8_t map_layer;
440 } object;
441 
445 typedef struct oblnk {
446  object *ob;
447  struct oblnk *next;
449 } objectlink;
450 
454 typedef struct oblinkpt {
455  struct oblnk *link;
456  long value;
457  struct oblinkpt *next;
458 } oblinkpt;
459 
468 typedef struct archt {
470  struct archt *head;
471  struct archt *more;
472  object clone;
473  int8_t tail_x, tail_y;
476 } archetype;
477 
478 extern object *objects;
479 extern object *active_objects;
480 
481 extern int nrofallocobjects;
482 extern int nroffreeobjects;
483 
484 static inline uint32_t * compare_flags(const object *p, const object *q) {
485  static uint32_t ret[4];
486  for (int i = 0; i < 4; i++) {
487  ret[i] = p->flags[i] ^ q->flags[i];
488  }
489  return ret;
490 }
491 
492 static inline int query_flag(const object *op, int flag) {
493  return op->flags[flag / 32] & (1U << (flag % 32));
494 }
495 
496 static inline void clear_flag(object *op, int flag) {
497  op->flags[flag / 32] &= ~(1U << (flag % 32));
498 }
499 
500 static inline void set_flag(object *op, int flag) {
501  op->flags[flag / 32] |= (1U << (flag % 32));
502 }
503 
508 #define LOOK_OBJ(ob) (!ob->invisible && ob->type != PLAYER && ob->type != EVENT_CONNECTOR)
509 
517 #define UP_OBJ_INSERT 1
518 #define UP_OBJ_REMOVE 2
519 #define UP_OBJ_CHANGE 3
520 #define UP_OBJ_FACE 4
524 
525 
531 #define FREE_OBJ_FREE_INVENTORY 1
532 #define FREE_OBJ_NO_DESTROY_CALLBACK 2
533 #define FREE_OBJ_DROP_ABOVE_FLOOR 4
535 
536 
567 #define INS_NO_MERGE 0x0001
568 #define INS_ABOVE_FLOOR_ONLY 0x0002
569 #define INS_NO_WALK_ON 0x0004
570 #define INS_ON_TOP 0x0008
571 #define INS_BELOW_ORIGINATOR 0x0010
572 #define INS_MAP_LOAD 0x0020
574 
575 #define ARCH_SINGULARITY "singularity"
576 #define ARCH_DETECT_MAGIC "detect_magic"
577 #define ARCH_DEPLETION "depletion"
578 #define ARCH_SYMPTOM "symptom"
579 #define ARCH_PORTAL_FAILED "town_portal_failed"
580 #define ARCH_SPELL_BLOCKED "spell_blocked"
581 #define ARCH_SPELL_BUNGLE "spell_bungle"
583 #define MONSTER_EXCLUDE_FROM_READABLE_KEY "exclude_from_readable"
594 #define HEAD(op) ((op)->head != NULL ? (op)->head : (op))
595 
596 static inline bool IS_PLAYER(object *op) {
597  return op->type == PLAYER;
598 }
599 
603 static inline bool CAN_PROBE(const object *ob) {
604  return QUERY_FLAG(ob, FLAG_ALIVE) &&
605  (ob->type == PLAYER || QUERY_FLAG(ob, FLAG_MONSTER));
606 }
607 
612 static inline uint32_t NROF(const object * const ob) {
613  return ob->nrof ? ob->nrof : 1;
614 }
615 
621 object *find_force(object *op, const char *name);
622 
628 object *add_force(object *op, const char *name, int duration);
629 
630 #endif /* OBJECT_H */
obj::weapon_speed
float weapon_speed
Definition: object.h:332
CLASS
@ CLASS
Definition: object.h:138
obj::move_off
MoveType move_off
Definition: object.h:432
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:395
object
struct obj object
CF_HANDLE
@ CF_HANDLE
Definition: object.h:208
MAP
@ MAP
Definition: object.h:125
nroffreeobjects
int nroffreeobjects
Definition: object.c:279
NUM_BODY_LOCATIONS
#define NUM_BODY_LOCATIONS
Definition: object.h:13
obj::face
const Face * face
Definition: object.h:334
obj::move_block
MoveType move_block
Definition: object.h:429
MONSTER
@ MONSTER
Definition: object.h:200
CAN_PROBE
static bool CAN_PROBE(const object *ob)
Definition: object.h:603
BOW
@ BOW
Definition: object.h:118
BRACERS
@ BRACERS
Definition: object.h:217
archt::head
struct archt * head
Definition: object.h:470
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:300
obj::map
struct mapdef * map
Definition: object.h:298
QUERY_FLAG
#define QUERY_FLAG(xyz, p)
Definition: define.h:226
obj::race
sstring race
Definition: object.h:319
archt::tail_x
int8_t tail_x
Definition: object.h:473
TRIGGER_PEDESTAL
@ TRIGGER_PEDESTAL
Definition: object.h:134
obj::value
int32_t value
Definition: object.h:353
KEY
@ KEY
Definition: object.h:127
obj::gen_sp_armour
int8_t gen_sp_armour
Definition: object.h:366
obj::body_used
int8_t body_used[NUM_BODY_LOCATIONS]
Definition: object.h:377
obj::anim_speed
uint8_t anim_speed
Definition: object.h:421
obj::path_attuned
uint32_t path_attuned
Definition: object.h:346
obj::attacked_by_count
tag_t attacked_by_count
Definition: object.h:387
SHOP_FLOOR
@ SHOP_FLOOR
Definition: object.h:183
GEM
@ GEM
Definition: object.h:167
pl
Definition: player.h:92
TRAP
@ TRAP
Definition: object.h:241
obj::last_anim
uint8_t last_anim
Definition: object.h:422
obj::artifact
sstring artifact
Definition: object.h:315
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:363
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:410
obj::custom_name
sstring custom_name
Definition: object.h:436
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:473
SKILL
@ SKILL
Definition: object.h:143
obj::dialog_information
struct struct_dialog_information * dialog_information
Definition: object.h:301
RUNE
@ RUNE
Definition: object.h:240
oblinkpt::link
struct oblnk * link
Definition: object.h:455
obj::path_denied
uint32_t path_denied
Definition: object.h:348
CREATOR
@ CREATOR
Definition: object.h:142
obj::smoothlevel
uint8_t smoothlevel
Definition: object.h:425
oblinkpt
Definition: object.h:454
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:323
obj::body_info
int8_t body_info[NUM_BODY_LOCATIONS]
Definition: object.h:376
TRIGGER_BUTTON
@ TRIGGER_BUTTON
Definition: object.h:132
compare_flags
static uint32_t * compare_flags(const object *p, const object *q)
Definition: object.h:484
nrofallocobjects
int nrofallocobjects
Definition: object.c:280
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:389
query_flag
static int query_flag(const object *op, int flag)
Definition: object.h:492
POISONING
@ POISONING
Definition: object.h:218
obj::expmul
double expmul
Definition: object.h:399
body_locations_struct::nonuse_name
const char * nonuse_name
Definition: object.h:23
obj::nrof
uint32_t nrof
Definition: object.h:335
obj::ox
int16_t ox
Definition: object.h:329
obj::duration_modifier
uint8_t duration_modifier
Definition: object.h:408
obj::duration
int16_t duration
Definition: object.h:407
archt
Definition: object.h:468
obj
Definition: object.h:275
FLAG_ALIVE
#define FLAG_ALIVE
Definition: define.h:230
obj::last_heal
int32_t last_heal
Definition: object.h:360
obj::chosen_skill
struct obj * chosen_skill
Definition: object.h:390
obj::slaying
sstring slaying
Definition: object.h:320
TRIGGER_MARKER
@ TRIGGER_MARKER
Definition: object.h:153
obj::spell
struct obj * spell
Definition: object.h:412
obj::attacked_by
struct obj * attacked_by
Definition: object.h:386
CLOAK
@ CLOAK
Definition: object.h:204
obj::spell_tags
tag_t * spell_tags
Definition: object.h:439
item.q
q
Definition: item.py:32
NROF
static uint32_t NROF(const object *const ob)
Definition: object.h:612
HELMET
@ HELMET
Definition: object.h:136
obj::current_weapon
struct obj * current_weapon
Definition: object.h:374
POISON
@ POISON
Definition: object.h:113
obj::flags
uint32_t flags[4]
Definition: object.h:419
oblnk::next
struct oblnk * next
Definition: object.h:447
obj::active_next
struct obj * active_next
Definition: object.h:280
key_value
struct _key_value key_value
obj::name
sstring name
Definition: object.h:312
oblinkpt::next
struct oblinkpt * next
Definition: object.h:457
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:347
obj::total_exp
int64_t total_exp
Definition: object.h:373
obj::name_pl
sstring name_pl
Definition: object.h:316
oblinkpt::value
long value
Definition: object.h:456
ROD
@ ROD
Definition: object.h:109
active_objects
object * active_objects
Definition: object.c:285
CONTAINER
@ CONTAINER
Definition: object.h:231
INORGANIC
@ INORGANIC
Definition: object.h:188
obj::speed_left
float speed_left
Definition: object.h:331
obj::hide
uint8_t hide
Definition: object.h:391
LOCKED_DOOR
@ LOCKED_DOOR
Definition: object.h:123
PLAYERMOVER
@ PLAYERMOVER
Definition: object.h:140
obj::prev
struct obj * prev
Definition: object.h:279
SPECIAL_KEY
@ SPECIAL_KEY
Definition: object.h:124
obj::spellarg
char * spellarg
Definition: object.h:413
HOLE
@ HOLE
Definition: object.h:209
obj::carrying
int32_t carrying
Definition: object.h:370
PEACEMAKER
@ PEACEMAKER
Definition: object.h:164
find_force
object * find_force(object *op, const char *name)
Definition: object.c:5386
CONVERTER
@ CONVERTER
Definition: object.h:216
obj::x
int16_t x
Definition: object.h:328
obj::container
struct obj * container
Definition: object.h:292
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:417
archt::more
struct archt * more
Definition: object.h:471
GOLEM
@ GOLEM
Definition: object.h:145
sstring
const typedef char * sstring
Definition: global.h:40
obj::speed
float speed
Definition: object.h:330
object_type
object_type
Definition: object.h:106
obj::weapontype
uint32_t weapontype
Definition: object.h:375
tag_t
uint32_t tag_t
Definition: object.h:12
obj::env
struct obj * env
Definition: object.h:294
obj::client_type
uint16_t client_type
Definition: object.h:343
MOOD_FLOOR
@ MOOD_FLOOR
Definition: object.h:170
obj::below
struct obj * below
Definition: object.h:288
ARROW
@ ARROW
Definition: object.h:117
struct_dialog_information
Definition: dialog.h:38
obj::move_slow_penalty
float move_slow_penalty
Definition: object.h:434
obj::enemy
struct obj * enemy
Definition: object.h:385
mapdef
Definition: map.h:324
BOOK
@ BOOK
Definition: object.h:114
objects
object * objects
Definition: object.c:283
oblnk::id
tag_t id
Definition: object.h:448
RING
@ RING
Definition: object.h:185
obj::map_layer
uint8_t map_layer
Definition: object.h:426
obj::animation
const Animations * animation
Definition: object.h:420
BLINDNESS
@ BLINDNESS
Definition: object.h:147
liv
Definition: living.h:35
obj::material
uint16_t material
Definition: object.h:350
FLAG_MONSTER
#define FLAG_MONSTER
Definition: define.h:245
CLOCK
@ CLOCK
Definition: object.h:115
obj::spellitem
struct obj * spellitem
Definition: object.h:398
obj::item_power
int8_t item_power
Definition: object.h:365
obj::lore
sstring lore
Definition: object.h:325
SHOP_MAT
@ SHOP_MAT
Definition: object.h:184
obj::next
struct obj * next
Definition: object.h:278
IS_PLAYER
static bool IS_PLAYER(object *op)
Definition: object.h:596
EXIT
@ EXIT
Definition: object.h:181
obj::y
int16_t y
Definition: object.h:328
obj::glow_radius
int8_t glow_radius
Definition: object.h:367
MAGIC_EAR
@ MAGIC_EAR
Definition: object.h:131
obj::title
sstring title
Definition: object.h:318
obj::arch
struct archt * arch
Definition: object.h:416
obj::oy
int16_t oy
Definition: object.h:329
animations_struct
Definition: face.h:25
obj::type
uint8_t type
Definition: object.h:341
obj::temp_animation
const Animations * temp_animation
Definition: object.h:423
dialog.h
obj::last_grace
int16_t last_grace
Definition: object.h:362
obj::move_slow
MoveType move_slow
Definition: object.h:433
obj::stats
living stats
Definition: object.h:371
BATTLEGROUND
@ BATTLEGROUND
Definition: object.h:163
obj::direction
int8_t direction
Definition: object.h:337
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:472
obj::state
uint8_t state
Definition: object.h:352
obj::contr
struct pl * contr
Definition: object.h:277
obj::facing
int8_t facing
Definition: object.h:338
obj::weight
int32_t weight
Definition: object.h:368
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:475
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:424
MATERIAL
@ MATERIAL
Definition: object.h:248
obj::key_values
key_value * key_values
Definition: object.h:437
add_force
object * add_force(object *op, const char *name, int duration)
Definition: object.c:5391
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:333
_key_value
Definition: object.h:40
SKILL_TOOL
@ SKILL_TOOL
Definition: object.h:189
obj::last_sp
int32_t last_sp
Definition: object.h:361
obj::casting_time
int16_t casting_time
Definition: object.h:406
set_flag
static void set_flag(object *op, int flag)
Definition: object.h:500
SHOP_INVENTORY
@ SHOP_INVENTORY
Definition: object.h:238
PEDESTAL
@ PEDESTAL
Definition: object.h:121
oblnk::ob
object * ob
Definition: object.h:446
obj::ownercount
tag_t ownercount
Definition: object.h:384
obj::head
struct obj * head
Definition: object.h:297
obj::subtype
uint8_t subtype
Definition: object.h:342
obj::more
struct obj * more
Definition: object.h:296
obj::last_eat
int32_t last_eat
Definition: object.h:359
obj::move_type
MoveType move_type
Definition: object.h:428
obj::weight_limit
int32_t weight_limit
Definition: object.h:369
obj::materialname
sstring materialname
Definition: object.h:349
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:364
obj::skill
sstring skill
Definition: object.h:322
move_name
const char *const move_name[]
Definition: object.c:4819
obj::move_status
int32_t move_status
Definition: object.h:394
FOOD
@ FOOD
Definition: object.h:112
obj::active_prev
struct obj * active_prev
Definition: object.h:284
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:469
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:289
obj::owner
struct obj * owner
Definition: object.h:381
obj::will_apply
uint8_t will_apply
Definition: object.h:396
obj::anim_suffix
sstring anim_suffix
Definition: object.h:317
obj::move_on
MoveType move_on
Definition: object.h:431
clear_flag
static void clear_flag(object *op, int flag)
Definition: object.h:496
obj::attacktype
uint32_t attacktype
Definition: object.h:345
oblnk
Definition: object.h:445
BOOTS
@ BOOTS
Definition: object.h:212
obj::run_away
uint8_t run_away
Definition: object.h:388
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:397
obj::move_allow
MoveType move_allow
Definition: object.h:430
obj::magic
int8_t magic
Definition: object.h:351
obj::resist
int16_t resist[NROFATTACKS]
Definition: object.h:344
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:354
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:409
treasureliststruct
Definition: treasure.h:82
GATE
@ GATE
Definition: object.h:206
obj::inv
struct obj * inv
Definition: object.h:291
give.name
name
Definition: give.py:27
archetype
struct archt archetype
obj::dam_modifier
uint8_t dam_modifier
Definition: object.h:411