Go to the documentation of this file.
55 {
"body_range",
"in your range slot",
"in a human's range slot" },
56 {
"body_arm",
"on your arm",
"on a human's arm" },
57 {
"body_torso",
"on your body",
"on a human's torso" },
58 {
"body_head",
"on your head",
"on a human's head" },
59 {
"body_neck",
"around your neck",
"around a humans neck" },
60 {
"body_skill",
"in your skill slot",
"in a human's skill slot" },
61 {
"body_finger",
"on your finger",
"on a human's finger" },
62 {
"body_shoulder",
"around your shoulders",
"around a human's shoulders" },
63 {
"body_foot",
"on your feet",
"on a human's feet" },
64 {
"body_hand",
"on your hands",
"on a human's hands" },
65 {
"body_wrist",
"around your wrists",
"around a human's wrist" },
66 {
"body_waist",
"around your waist",
"around a human's waist" },
67 {
"body_leg",
"around your legs",
"around a human's legs" },
79 { 0,
"none",
"none", 0, 0 },
80 {
PLAYER,
"player",
"players", 0, 0 },
81 {
TRANSPORT,
"transport",
"transports", 0, 0 },
83 {
TREASURE,
"treasure",
"treasure", 0, 0 },
88 {
CLOCK,
"clock",
"clocks", 0, 0 },
93 {
PEDESTAL,
"pedestal",
"pedestals", 0, 0 },
94 {
ALTAR,
"altar",
"altars", 0, 0 },
95 {
LOCKED_DOOR,
"locked door",
"locked doors", 0, 0 },
96 {
SPECIAL_KEY,
"special key",
"special keys", 0, 0 },
97 {
MAP,
"map",
"maps", 0, 0 },
98 {
DOOR,
"door",
"doors", 0, 0 },
99 {
KEY,
"key",
"keys", 0, 0 },
100 {
TIMED_GATE,
"timed_gate",
"timed_gates", 0, 0 },
101 {
TRIGGER,
"trigger",
"triggers", 0, 0 },
102 {
GRIMREAPER,
"grimreaper",
"grimreapers", 0, 0 },
103 {
MAGIC_EAR,
"magic ear",
"magic ears", 0, 0 },
109 {
MONEY,
"money",
"money", 0, 0 },
110 {
CLASS,
"class",
"classes", 0, 0 },
112 {
PLAYERMOVER,
"player mover",
"player movers", 0, 0 },
113 {
TELEPORTER,
"teleporter",
"teleporters", 0, 0 },
114 {
CREATOR,
"creator",
"creators", 0, 0 },
115 {
SKILL,
"skill",
"skills", 0, 0 },
116 {
EARTHWALL,
"earthwall",
"earthwalls", 0, 0 },
117 {
GOLEM,
"golem",
"golems", 0, 0 },
118 {
THROWN_OBJ,
"projectile",
"projectiles", 0, 0 },
119 {
BLINDNESS,
"blindness",
"blindness", 0, 0 },
120 {
GOD,
"god",
"gods", 0, 0 },
121 {
DETECTOR,
"detector",
"detectors", 0, 0 },
123 {
DEAD_OBJECT,
"dead object",
"dead objects", 0, 0 },
125 {
MARKER,
"marker",
"markers", 0, 0 },
126 {
HOLY_ALTAR,
"holy altar",
"holy altars", 0, 0 },
128 {
BATTLEGROUND,
"battleground",
"battlegrounds", 0, 0 },
129 {
PEACEMAKER,
"peacemaker",
"peacemakers", 0, 0 },
131 {
FIREWALL,
"firewall",
"firewalls", 0, 0 },
132 {
CHECK_INV,
"inventory checker",
"inventory checkers", 0, 0 },
133 {
MOOD_FLOOR,
"mood floor",
"mood floors", 0, 0 },
134 {
EXIT,
"exit",
"exits", 0, 0 },
135 {
ENCOUNTER,
"encounter",
"encounters", 0, 0 },
136 {
SHOP_FLOOR,
"shop floor",
"shop floors", 0, 0 },
137 {
SHOP_MAT,
"shop mat",
"shop mats", 0, 0 },
139 {
FLOOR,
"floor",
"floors", 0, 0 },
142 {
SKILL_TOOL,
"skill tool",
"skill tools", 0, 0 },
143 {
LIGHTER,
"lighter",
"lighters", 0, 0 },
144 {
WALL,
"wall",
"walls", 0, 0 },
145 {
MISC_OBJECT,
"bric-a-brac",
"bric-a-brac", 0, 0 },
146 {
MONSTER,
"monster",
"monsters", 0, 0 },
147 {
LAMP,
"lamp",
"lamps", 0, 0 },
148 {
DUPLICATOR,
"duplicator",
"duplicators", 0, 0 },
151 {
SPINNER,
"spinner",
"spinners", 0, 0 },
152 {
GATE,
"gate",
"gates", 0, 0 },
153 {
BUTTON,
"button",
"buttons", 0, 0 },
154 {
CF_HANDLE,
"cf handle",
"cf handles", 0, 0 },
155 {
HOLE,
"hole",
"holes", 0, 0 },
156 {
TRAPDOOR,
"trapdoor",
"trapdoors", 0, 0 },
157 {
SIGN,
"sign",
"signs", 0, 0 },
160 {
SPELL,
"spell",
"spells", 0, 0 },
161 {
SPELL_EFFECT,
"spell effect",
"spell effects", 0, 0 },
162 {
CONVERTER,
"converter",
"converters", 0, 0 },
164 {
POISONING,
"poisoning",
"poisonings", 0, 0 },
165 {
SAVEBED,
"savebed",
"savebeds", 0, 0 },
168 {
DIRECTOR,
"director",
"directors", 0, 0 },
170 {
FORCE,
"force",
"forces", 0, 0 },
177 {
DEEP_SWAMP,
"deep swamp",
"deep swamps", 0, 0 },
180 {
RUNE,
"rune",
"runes", 0, 0 },
181 {
TRAP,
"trap",
"traps", 0, 0 },
183 {
CORPSE,
"corpse",
"corpses", 0, 0 },
184 {
DISEASE,
"disease",
"diseases", 0, 0 },
185 {
SYMPTOM,
"symptom",
"symptoms", 0, 0 },
186 {
BUILDER,
"item builder",
"item builders", 0, 0 },
187 {
MATERIAL,
"building material",
"building materials", 0, 0 },
189 {
LIGHTABLE,
"lightable",
"lightables", 0, 0 },
221 for (
int i = start; i < end; i++) {
253 tmp +=
op->resist[i];
283 enc +=
op->stats.food;
286 enc +=
op->stats.grace;
287 enc +=
op->stats.exp;
289 enc +=
op->stats.luck;
377 if (use_media_tags) {
381 if (
op->resist[tmpvar] == 100 ||
op->resist[tmpvar] == -100) {
389 if (use_media_tags) {
390 if (
op->resist[tmpvar] == 100 ||
op->resist[tmpvar] == -100) {
416 snprintf(
buf, size,
" ");
418 snprintf(
buf, size,
"%6.1f", i/1000.0);
420 snprintf(
buf, size,
"%4d ", i/1000);
449 for (attr = 0; attr <
NUM_STATS; attr++) {
465 if (
op->stats.food != 0)
513 if (
op->name == NULL) {
514 snprintf(
buf, size,
"(null)");
539 if (!
op->title && (
op->inv)) {
544 snprintf(
buf+len, size-len,
" (lvl %d)",
op->level);
545 len += strlen(
buf+len);
569 snprintf(
buf+len, size-len,
" %+d",
op->magic);
570 len += strlen(
buf+len);
689 if ((!plural && !
op->name)
690 || (plural && !
op->name_pl)) {
691 strncpy(
buf,
"(null)", size);
696 strncpy(
buf,
op->name, size);
716 if (!
op->title && (
op->inv)) {
721 snprintf(
buf+len, size-len,
" (lvl %d)",
op->level);
722 len += strlen(
buf+len);
746 snprintf(
buf+strlen(
buf), size-strlen(
buf),
" %+d",
op->magic);
779 switch ((
int)((
FABS(
op->speed))*15)) {
842 if (
op->randomitems != NULL) {
846 for (
t =
op->randomitems->items;
t != NULL;
t =
t->next)
847 if (
t->item && (
t->item->clone.type ==
SPELL)) {
856 if (
op->contr->digestion) {
857 if (
op->contr->digestion != 0)
860 if (
op->contr->gen_grace) {
863 if (
op->contr->gen_sp) {
866 if (
op->contr->gen_hp) {
869 if (
op->stats.luck) {
883 if (
tmp &&
tmp->attacktype != 0) {
1007 if (
op->item_power) {
1023 for (attr = 0; attr <
NUM_STATS; attr++) {
1028 if (
op->glow_radius)
1036 if (
op->stats.exp) {
1060 if (
op->stats.dam) {
1091 if (
op->item_power) {
1159 if (
op->stats.food) {
1160 if (
op->stats.food != 0)
1163 if (
op->stats.grace) {
1174 if (
op->stats.luck) {
1185 if (
op->slaying != NULL &&
op->type !=
FOOD) {
1223 if (
op->title != NULL)
1230 && (
op->stats.ac ||
op->stats.food ||
op->stats.exp ||
op->stats.dam ||
op->stats.wc ||
op->stats.sp ||
op->stats.hp ||
op->stats.luck))
1367 op->anim_speed = atoi(
key);
1427 if (
op->inv &&
op->randomitems) {
1431 }
else if (
op->arch) {
sstring add_refcount(sstring str)
StringBuffer * stringbuffer_new(void)
#define NUM_BODY_LOCATIONS
#define GET_MAP_TOP(M, X, Y)
#define FLAG_CLIENT_ANIM_RANDOM
void object_update(object *op, int action)
#define QUERY_FLAG(xyz, p)
#define FLAG_REFL_MISSILE
int calc_item_power(const object *op)
#define FLAG_SEE_INVISIBLE
#define ARMOUR_SPELLS(xyz)
StringBuffer * describe_resistance(const object *op, int newline, int use_media_tags, StringBuffer *buf)
#define ARMOUR_SPEED(xyz)
StringBuffer * describe_item(const object *op, const object *owner, int use_media_tags, StringBuffer *buf)
StringBuffer * describe_monster(const object *op, int use_media_tags, StringBuffer *buf)
void animate_object(object *op, int dir)
object * object_merge(object *op, object *top)
const char * object_get_value(const object *op, const char *const key)
object * identify(object *op)
void free_string(sstring str)
static uint32_t NROF(const object *const ob)
int is_identifiable_type(const object *op)
void query_name(const object *op, char *buf, size_t size)
#define FLAG_KNOWN_BLESSED
#define FLAG_KNOWN_CURSED
void stringbuffer_append_string(StringBuffer *sb, const char *str)
void query_short_name(const object *op, char *buf, size_t size)
#define FREE_AND_COPY(sv, nv)
char * stringbuffer_finish(StringBuffer *sb)
int is_magical(const object *op)
int object_set_value(object *op, const char *key, const char *value, int add_key)
const typedef char * sstring
#define FLAG_UNAGGRESSIVE
void object_give_identified_properties(object *op)
const EXTERN char *const resist_plus[NROFATTACKS]
#define FLAG_CAN_USE_SKILL
const EXTERN char *const resist_color[NROFATTACKS]
int is_dragon_pl(const object *op)
static StringBuffer * ring_desc(const object *op, int use_media_tags, StringBuffer *buf)
StringBuffer * describe_spellpath_attenuation(const char *attenuation, int value, StringBuffer *buf)
static int bits_set(uint32_t x, int start, int end)
size_t strlcpy(char *dst, const char *src, size_t size)
Animations * try_find_animation(const char *name)
#define FLAG_CLIENT_ANIM_SYNC
static const typedata item_types[]
#define FLAG_KNOWN_MAGICAL
const typedata * get_typedata_by_name(const char *name)
const EXTERN char *const change_resist_msg[NROFATTACKS]
static const int enc_to_item_power[]
#define WEAPON_SPEED(xyz)
void LOG(LogLevel logLevel, const char *format,...)
void query_weight(const object *op, char *buf, size_t size)
static const int item_types_size
int get_power_from_ench(int ench)
size_t stringbuffer_length(StringBuffer *sb)
void query_base_name(const object *op, int plural, char *buf, size_t size)
object * map_find_by_type(mapstruct *m, int x, int y, uint8_t type)
#define FLAG_BEEN_APPLIED
#define CLEAR_FLAG(xyz, p)
void stringbuffer_append_printf(StringBuffer *sb, const char *format,...)
const char *const short_stat_name[NUM_STATS]
const typedata * get_typedata(int itemtype)
StringBuffer * describe_attacktype(const char *attack, int value, StringBuffer *buf)
int8_t get_attr_value(const living *stats, int attr)
const Face * try_find_face(const char *name, const Face *error)
object * object_find_by_type_and_name(const object *who, int type, const char *name)
void esrv_update_item(int flags, object *pl, object *op)
int atnr_is_dragon_enabled(int attacknr)
object * object_get_player_container(object *op)
#define FLAG_NO_SKILL_IDENT
body_locations_struct body_locations[NUM_BODY_LOCATIONS]
void safe_strcat(char *dest, const char *orig, size_t *curlen, size_t maxlen)
int is_identified(const object *op)