Crossfire Server, Trunk  R20513
Go to the documentation of this file.
6 #include "dialog.h"
8 #ifndef OBJECT_H
9 #define OBJECT_H
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;
28 extern const char *const move_name[];
40 typedef struct _key_value {
41  const char *key;
42  const char *value;
43  struct _key_value *next;
44 } key_value;
52 #define WILL_APPLY_HANDLE 0x1
53 #define WILL_APPLY_TREASURE 0x2
55 #define WILL_APPLY_DOOR 0x8
56 #define WILL_APPLY_FOOD 0x10
68 #define object_was_destroyed(op, old_tag) \
69  (op->count != old_tag || QUERY_FLAG(op, FLAG_FREED))
81 #define SPELL_TAG_SIZE 16
87 #define OB_SPELL_TAG_HASH(op, count) (op->spell_tags[count&0xf])
93 #define OB_SPELL_TAG_MATCH(op, count) (op->spell_tags[count&0xf] == count)
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,
251 };
274 typedef struct obj {
275  /* These variables are not changed by object_copy() */
276  struct pl *contr;
277  struct obj *next;
278  struct obj *prev;
279  struct obj *active_next;
283  struct obj *active_prev;
287  struct obj *below;
288  struct obj *above;
289  /* Note: stacked in the *same *environment*/
290  struct obj *inv;
291  struct obj *container;
293  struct obj *env;
295  struct obj *more;
296  struct obj *head;
297  struct mapdef *map;
303  /* These get an extra add_refcount(), after having been copied by memcpy().
304  *
305  * Fields below name (included) are copied by memcpy in object_copy().
306  *
307  * If adding something that needs a refcount updated, make sure you modify
308  * object_copy() to do so.
309  * Everything below here also gets cleared by object_clear().
310  */
311  const char *name;
312  /* Place new attributes that should get copied and cleared below name */
315  const char *name_pl;
316  const char *anim_suffix;
317  const char *title;
318  const char *race;
319  const char *slaying;
321  const char *skill;
322  const char *msg;
323  const char *lore;
326  int16_t x, y;
327  int16_t ox, oy;
328  float speed;
329  float speed_left;
330  float weapon_speed;
332  const New_Face *face;
337  /* This next big block are basically used for monsters and equipment */
346  const char *materialname;
353  /* Note that the last_.. values are sometimes used for non obvious
354  * meanings by some objects, eg, sp penalty, permanent exp.
355  */
370  struct obj *current_weapon;
374  /* See the doc/Developers/objects for more info about body locations */
376  /* Following mostly refers to fields only used for monsters */
377  struct obj *owner;
381  struct obj *enemy;
382  struct obj *attacked_by;
386  struct obj *chosen_skill;
388  /* changes made by */
389  /* allows different movement patterns for attackers */
394  struct obj *spellitem;
395  double expmul;
398  /* Spell related information, may be useful elsewhere
399  * Note that other fields are used - these files are basically
400  * only used in spells.
401  */
408  struct obj *spell;
409  char *spellarg;
411  /* Following are values used by any object */
412  struct archt *arch;
413  struct archt *other_arch;
432  const char *custom_name;
437 } object;
442 typedef struct oblnk {
443  object *ob;
444  struct oblnk *next;
446 } objectlink;
451 typedef struct oblinkpt {
452  struct oblnk *link;
453  long value;
454  struct oblinkpt *next;
455 } oblinkpt;
465 typedef struct archt {
466  const char *name;
467  struct archt *next;
468  struct archt *head;
469  struct archt *more;
470  object clone;
474 } archetype;
476 extern object *objects;
477 extern object *active_objects;
478 extern object *free_objects;
479 extern object objarray[STARTMAX];
481 extern int nrofallocobjects;
482 extern int nroffreeobjects;
484 static inline int compare_flags(const object *p, const object *q) {
485  return ((p)->flags[0] == (q)->flags[0]) &&
486  ((p)->flags[1] == (q)->flags[1]) &&
487  ((p)->flags[2] == (q)->flags[2]) &&
488  ((p)->flags[3] == (q)->flags[3]);
489 }
491 static inline int query_flag(const object *op, int flag) {
492  return op->flags[flag / 32] & (1U << (flag % 32));
493 }
495 static inline void clear_flag(object *op, int flag) {
496  op->flags[flag / 32] &= ~(1U << (flag % 32));
497 }
499 static inline void set_flag(object *op, int flag) {
500  op->flags[flag / 32] |= (1U << (flag % 32));
501 }
507 #define LOOK_OBJ(ob) (!ob->invisible && ob->type != PLAYER && ob->type != EVENT_CONNECTOR)
516 #define UP_OBJ_INSERT 1
517 #define UP_OBJ_REMOVE 2
518 #define UP_OBJ_CHANGE 3
519 #define UP_OBJ_FACE 4
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
574 #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"
592 #define HEAD(op) ((op)->head != NULL ? (op)->head : (op))
594 #endif /* OBJECT_H */
float weapon_speed_left
How much speed is left to spend this round.
Definition: object.h:331
See Pedestal.
Definition: object.h:121
Main Crossfire structure, one ingame object.
Definition: object.h:274
int reference_count
How many times this temporary archetype is used.
Definition: object.h:473
static int compare_flags(const object *p, const object *q)
Definition: object.h:484
Number of body locations.
Definition: object.h:13
One player.
Definition: player.h:92
struct _key_value * next
Next key in the list.
Definition: object.h:43
int32_t weight_limit
Weight-limit of object.
Definition: object.h:366
tag_t ownercount
What count the owner had (in case owner has been freed)
Definition: object.h:380
MoveType move_type
Type of movement this object uses.
Definition: object.h:424
see doc/Developers/objects
Definition: object.h:108
See Key.
Definition: object.h:127
uint8_t dam_modifier
How going up in level affects damage.
Definition: object.h:407
MoveType move_on
Move types affected moving on to this space.
Definition: object.h:427
See Ring.
Definition: object.h:185
int8_t tail_x
Definition: object.h:471
treasureliststruct represents one logical group of items to be generated together.
Definition: treasure.h:82
Definition: object.h:125
Used to link together several objects.
Definition: object.h:442
const char * race
Human, goblin, dragon, etc.
Definition: object.h:318
Eneq((at) Id for close_container archetype.
Definition: object.h:229
uint16_t attack_movement
What kind of attack movement.
Definition: object.h:391
tag_t attacked_by_count
The tag of attacker, so we can be sure.
Definition: object.h:383
See Bracers.
Definition: object.h:217
MoveType move_allow
What movement types explicitly allowed.
Definition: object.h:426
int nrofallocobjects
How many OBs allocated (free + used)
Definition: object.c:57
unsigned char uint8_t
Definition: win32.h:161
See Scroll.
Definition: object.h:221
uint16_t animation_id
An index into the animation array.
Definition: object.h:416
uint16_t material
What materials this object consist of.
Definition: object.h:347
tag_t * spell_tags
Tags used for spell effect merging.
Definition: object.h:436
uint8_t anim_speed
Ticks between animation-frames.
Definition: object.h:417
sstring artifact
If set, the item is the artifact with this name and the matching type.
Definition: object.h:314
See Cloak.
Definition: object.h:204
See Food.
Definition: object.h:112
struct obj * container
Current container being used.
Definition: object.h:291
uint8_t last_anim
Last sequence used to draw face.
Definition: object.h:418
See Projectile.
Definition: object.h:117
int8_t range
Range of the spell.
Definition: object.h:405
Update if you add new types.
Definition: object.h:250
See Holy Altar.
Definition: object.h:161
unsigned char MoveType
Typdef here to define type large enough to hold bitmask of all movement types.
Definition: define.h:432
int32_t last_heal
Last healed.
Definition: object.h:357
See Spellbook.
Definition: object.h:203
See Money.
Definition: object.h:137
struct treasureliststruct * randomitems
Items to be generated.
Definition: object.h:385
object clone
An object from which to do object_copy()
Definition: object.h:470
int16_t duration
How long the spell lasts.
Definition: object.h:403
int16_t invisible
How much longer the object will be invis.
Definition: object.h:360
uint8_t duration_modifier
how level modifies duration
Definition: object.h:404
See Rune.
Definition: object.h:240
See Creator.
Definition: object.h:142
See Weapon.
Definition: object.h:119
const char * key
Name of the key.
Definition: object.h:41
struct obj * prev
Pointer to the previous object in the free/used list.
Definition: object.h:278
See Helmet.
Definition: object.h:136
const char * slaying
Which race to do double damage to.
Definition: object.h:319
Object for applying character class modifications to someone.
Definition: object.h:138
int32_t last_sp
As last_heal, but for spell points.
Definition: object.h:358
object * free_objects
Pointer to the list of unused objects.
Definition: object.c:61
uint8_t subtype
Subtype of object.
Definition: object.h:339
See Altar Trigger.
Definition: object.h:133
See Rod.
Definition: object.h:109
uint8_t hide
The object is hidden, not invisible.
Definition: object.h:387
See Power Crystal.
Definition: object.h:242
struct obj * above
Pointer to the object stacked above this one.
Definition: object.h:288
struct oblinkpt oblinkpt
Used to link together several object links.
See Button Trigger.
Definition: object.h:132
double expmul
needed experience = (calc_exp*expmul) - means some races/classes can need less/more exp to gain level...
Definition: object.h:395
See Drink.
Definition: object.h:157
See Girdle.
Definition: object.h:223
Various statistics of objects.
Definition: living.h:34
See Amulet.
Definition: object.h:139
Definition: object.h:191
Duplicator/multiplier object.
Definition: object.h:202
uint32_t path_attuned
Paths the object is attuned to.
Definition: object.h:343
uint8_t temp_anim_speed
Ticks between temporary animation-frames.
Definition: object.h:420
uint8_t smoothlevel
how to smooth this square around
Definition: object.h:421
animal &#39;body parts&#39; -b.t.
Definition: object.h:187
uint32_t path_repelled
Paths the object is repelled from.
Definition: object.h:344
See Boots.
Definition: object.h:212
struct obj * enemy
Monster/player to follow even if not closest.
Definition: object.h:381
struct archt * other_arch
Pointer used for various things - mostly used for what this objects turns into or what this object cr...
Definition: object.h:413
long value
Used as connected value in buttons/gates.
Definition: object.h:453
struct obj object
Main Crossfire structure, one ingame object.
tag_t id
ob&#39;s tag, in case it is removed.
Definition: object.h:445
The archetype structure is a set of rules on how to generate and manipulate objects which point to ar...
Definition: object.h:465
peterm: detector is an object which notices the presense of another object and is triggered like butt...
Definition: object.h:149
See Mover.
Definition: object.h:140
See Wand & Staff.
Definition: object.h:220
uint16_t temp_animation_id
An index into the temporary animation array.
Definition: object.h:419
int8_t tail_y
Where the lower right most portion of the object is in comparison to the head.
Definition: object.h:471
Used to link together several object links.
Definition: object.h:451
struct oblnk * link
Items for this value.
Definition: object.h:452
See Magic Ear.
Definition: object.h:131
object * ob
Item to link to.
Definition: object.h:443
Used during character creation.
Definition: object.h:116
Allows the use of a skill.
Definition: object.h:189
int16_t * discrete_damage
damage values, based on each attacktype.
Definition: object.h:435
Generic item builder, see subtypes below.
Definition: object.h:246
See Trap.
Definition: object.h:241
const char * lore
Obscure information about this object, to get put into books and the like.
Definition: object.h:323
struct obj * chosen_skill
The skill chosen to use.
Definition: object.h:386
const char * title
Of foo, etc.
Definition: object.h:317
int16_t y
Position in the map for this object.
Definition: object.h:326
static int query_flag(const object *op, int flag)
Definition: object.h:491
struct oblinkpt * next
Next value in the list.
Definition: object.h:454
Floor tile -> native layer 0.
Definition: object.h:186
See Shooting Weapon.
Definition: object.h:118
uint32_t path_denied
Paths the object is denied access to.
Definition: object.h:345
See Sign & Magic Mouth.
Definition: object.h:211
#define STARTMAX
How big array of objects to start with.
Definition: config.h:573
See Book.
Definition: object.h:114
See Exit.
Definition: object.h:181
struct obj * spell
Spell that was being cast.
Definition: object.h:408
const char * name_pl
The plural name of the object.
Definition: object.h:315
const char * save_name
Name used to load/save it to disk.
Definition: object.h:21
battleground, by Andreas Vogl
Definition: object.h:163
float speed_left
How much speed is left to spend this round.
Definition: object.h:329
inserts an invisible, weightless force into a player with a specified string.
Definition: object.h:158
signed short int16_t
Definition: win32.h:160
See Treasure.
Definition: object.h:110
See Special Key.
Definition: object.h:124
const char * materialname
Specific material name.
Definition: object.h:346
int32_t weight
Attributes of the object.
Definition: object.h:365
const char * anim_suffix
Used to determine combined animations.
Definition: object.h:316
uint8_t range_modifier
How going up in level affects range.
Definition: object.h:406
A real, living creature.
Definition: object.h:200
uint32_t flags[4]
Various flags.
Definition: object.h:415
inserts an invisible, weightless force into a player with a specified string WHEN TRIGGERED...
Definition: object.h:153
See Clock.
Definition: object.h:115
struct mapdef * map
Pointer to the map in which this object is present.
Definition: object.h:297
struct obj * active_prev
Previous object in the &#39;active list This is used in process_events so that the entire object list doe...
Definition: object.h:283
object * active_objects
List of active objects that need to be processed.
Definition: object.c:62
uint8_t sound_chance
Probability, 0 to 100, of the object emitting a sound.
Definition: object.h:393
Definition: object.h:145
int32_t carrying
How much weight this object contains.
Definition: object.h:367
const char * name
The name of the object, obviously...
Definition: object.h:311
struct obj * env
Pointer to the object which is the environment.
Definition: object.h:293
static void set_flag(object *op, int flag)
Definition: object.h:499
int64_t perm_exp
Permanent exp.
Definition: object.h:369
int8_t gen_sp_armour
Sp regen penalty this object has (was last_heal)
Definition: object.h:363
uint8_t state
How the object was last drawn (animation)
Definition: object.h:349
struct obj * below
Pointer to the object stacked below this one.
Definition: object.h:287
struct archt * more
Next part of a linked object.
Definition: object.h:469
int16_t last_grace
As last_sp, except for grace.
Definition: object.h:359
struct obj * current_weapon
Pointer to the weapon currently used.
Definition: object.h:370
int8_t direction
Means the object is moving that way.
Definition: object.h:334
uint32_t nrof
How many of the objects.
Definition: object.h:333
struct oblnk objectlink
Used to link together several objects.
Each object (this also means archetypes!) could have a few of these "dangling" from it; this could al...
Definition: object.h:40
struct archt * head
The main part of a linked object.
Definition: object.h:468
MoveType move_off
Move types affected moving off this space.
Definition: object.h:428
See Trapdoor.
Definition: object.h:210
See Potion.
Definition: object.h:111
struct pl * contr
Pointer to the player which control this object.
Definition: object.h:276
int8_t item_power
Power rating of the object.
Definition: object.h:362
See Shop Mat.
Definition: object.h:184
int16_t oy
For debugging: Where it was last inserted.
Definition: object.h:327
const char * use_name
Name used when describing an item we can use.
Definition: object.h:22
char * spellarg
Optional argument when casting obj::spell.
Definition: object.h:409
uint32_t tag_t
Object tag, unique during the whole game.
Definition: object.h:12
float speed
The overall speed of this object.
Definition: object.h:328
See Spell.
Definition: object.h:214
See Handle Trigger.
Definition: object.h:129
See Locked Door.
Definition: object.h:123
See Spinner.
Definition: object.h:205
struct obj * active_next
Next object in the &#39;active&#39; list This is used in process_events so that the entire object list does n...
Definition: object.h:279
See Door.
Definition: object.h:126
See Magic Wall.
Definition: object.h:168
const char * nonuse_name
Name to describe objects we can&#39;t use.
Definition: object.h:23
Object owned by a player which can convert a monster into a peaceful being incapable of attack...
Definition: object.h:164
See Converter.
Definition: object.h:216
can add a skill to player&#39;s inventory -bt.
Definition: object.h:234
MoveType move_slow
Movement types this slows down.
Definition: object.h:429
const char * skill
Name of the skill this object uses/grants.
Definition: object.h:321
int32_t last_eat
How long since we last ate.
Definition: object.h:356
Definition: object.h:201
unsigned short uint16_t
Definition: win32.h:163
See Container.
Definition: object.h:231
signed __int64 int64_t
Definition: win32.h:168
struct struct_dialog_information * dialog_information
Parsed dialog information for this object.
Definition: object.h:300
static const flag_definition flags[]
Flag mapping.
Message information for a NPC.
Definition: dialog.h:38
key_value * key_values
Fields not explictly known by the loader.
Definition: object.h:433
struct obj * next
Pointer to the next object in the free/used list.
Definition: object.h:277
const char * sstring
Strings that should be manipulated through add_string() and free_string().
Definition: global.h:40
Only add new values to this list if somewhere in the program code, it is actually needed...
Definition: object.h:106
See Player.
Definition: object.h:107
unsigned int uint32_t
Definition: win32.h:162
See Poison Food.
Definition: object.h:113
const char *const move_name[]
Maps the MOVE_* values to names.
Definition: object.c:4716
See Shield.
Definition: object.h:135
See Floor (Encounter).
Definition: object.h:182
int8_t body_info[NUM_BODY_LOCATIONS]
Body info as loaded from the file.
Definition: object.h:372
uint32_t attacktype
Bitmask of attacks this object does.
Definition: object.h:342
struct obj * spellitem
Spell ability monster is choosing to use.
Definition: object.h:394
uint8_t map_layer
What level to draw this on the map.
Definition: object.h:422
Mark Wedel ( Shop inventories.
Definition: object.h:238
See Altar.
Definition: object.h:122
struct obj * owner
Pointer to the object which controls this one.
Definition: object.h:377
Definition: object.h:243
signed char int8_t
Type definitions for fixed-size integer types.
Definition: win32.h:158
Also see SKILL_TOOL (74) below.
Definition: object.h:143
const char * custom_name
Custom name assigned by player.
Definition: object.h:432
struct body_locations_struct body_locations_struct
One body location.
tag_t count
Unique object number for this object.
Definition: object.h:299
living stats
Str, Con, Dex, etc.
Definition: object.h:368
uint16_t client_type
Public type information.
Definition: object.h:340
struct archt * arch
Pointer to archetype.
Definition: object.h:412
See Shop Floor.
Definition: object.h:183
object objarray[STARTMAX]
All objects, allocated this way at first.
Definition: object.c:55
struct oblnk * next
Next item to link to.
Definition: object.h:444
See Button.
Definition: object.h:207
See Gate.
Definition: object.h:206
uint8_t will_apply
See crossfire.doc and What monsters apply.
Definition: object.h:392
Definition: object.h:193
static void clear_flag(object *op, int flag)
Definition: object.h:495
uint8_t type
Definition: object.h:338
Material for building.
Definition: object.h:248
struct archt * next
Next archetype in a linked list.
Definition: object.h:467
See Handle.
Definition: object.h:208
uint32_t weapontype
Type of weapon.
Definition: object.h:371
Definition: attack.h:17
See Timed Gate.
Definition: object.h:128
body_locations_struct body_locations[NUM_BODY_LOCATIONS]
The ordering of this is actually doesn&#39;t make a difference However, for ease of use, new entries should go at the end so those people that debug the code that get used to something being in the location 4 don&#39;t get confused.
Definition: item.c:54
signed int int32_t
Definition: win32.h:159
const char * msg
If this is a book/sign/magic mouth/etc.
Definition: object.h:322
const char * value
Key&#39;s value.
Definition: object.h:42
int16_t casting_time
Time left before spell goes off.
Definition: object.h:402
Lauwenmark: an invisible object holding a plugin event hook.
Definition: object.h:227
New face structure - this enforces the notion that data is face by face only - you can not change the...
Definition: face.h:14
int8_t glow_radius
indicates the glow radius of the object
Definition: object.h:364
struct _key_value key_value
Each object (this also means archetypes!) could have a few of these "dangling" from it; this could al...
See Monster (Grimreaper).
Definition: object.h:130
struct obj * inv
Pointer to the first object in the inventory.
Definition: object.h:290
struct obj * head
Points to the main object of a large body.
Definition: object.h:296
See Gloves.
Definition: object.h:213
One body location.
Definition: object.h:20
A force, holding the effect of a resistance potion.
Definition: object.h:225
uint8_t pick_up
See crossfire.doc.
Definition: object.h:361
int nroffreeobjects
How many OBs allocated and free (free)
Definition: object.c:56
MoveType move_block
What movement types this blocks.
Definition: object.h:425
metals, minerals, dragon scales
Definition: object.h:188
uint8_t run_away
Monster runs away if it&#39;s hp goes below this percentage.
Definition: object.h:384
See Pit.
Definition: object.h:209
float move_slow_penalty
How much this slows down the object.
Definition: object.h:430
object * objects
Pointer to the list of used objects.
Definition: object.c:60
See Swamp.
Definition: object.h:236
This is a game-map.
Definition: map.h:325
const New_Face * face
Face with colors.
Definition: object.h:332
See Jewel.
Definition: object.h:167
See Breastplate Armor.
Definition: object.h:120
int32_t move_status
What stage in attack mode.
Definition: object.h:390
int16_t level
Level of creature or object.
Definition: object.h:351
int8_t facing
Object is oriented/facing that way.
Definition: object.h:335
float weapon_speed
The overall speed of this object.
Definition: object.h:330
Definition: object.h:148
See Disease.
Definition: object.h:244
struct obj * more
Pointer to the rest of a large body of objects.
Definition: object.h:295
int32_t value
How much money it is worth (or contains)
Definition: object.h:350
int8_t magic
Any magical bonuses to this item.
Definition: object.h:348
See Director.
Definition: object.h:222
See Teleporter.
Definition: object.h:141
const char * name
More definite name, like "generate_kobold".
Definition: object.h:466
struct archt archetype
The archetype structure is a set of rules on how to generate and manipulate objects which point to ar...
Definition: object.h:170
See Savebed.
Definition: object.h:219
struct obj * attacked_by
This object start to attack us! only player & monster.
Definition: object.h:382
int8_t body_used[NUM_BODY_LOCATIONS]
Calculated value based on items equipped.
Definition: object.h:373
Definition: object.h:169
Definition: object.h:224