Go to the documentation of this file.
38 free(
pl->stack_items);
39 pl->stack_position = 0;
41 info =
pl->spell_state;
47 if (
pl->unarmed_skill)
50 for (uint8_t db = 0; db <
pl->delayed_buffers_allocated; db++) {
51 free(
pl->delayed_buffers[db]);
54 pl->delayed_buffers_allocated = 0;
55 pl->delayed_buffers_used = 0;
56 if (
pl->last_exit != NULL) {
72 while (prev != NULL && prev->
next != NULL && prev->
next !=
pl)
74 if (!prev || prev->
next !=
pl) {
75 LOG(
llevError,
"Free_player: Can't find previous player.\n");
126 &&
op->arch->clone.race != NULL
127 && strcmp(
op->arch->clone.race,
"dragon") == 0)
148 if (info->
spell == spell)
159 info->
next =
pl->spell_state;
161 pl->spell_state = info;
204 snprintf(
pl->title,
sizeof(
pl->title),
"%s hatchling", attack);
206 snprintf(
pl->title,
sizeof(
pl->title),
"%s wyrm", attack);
208 snprintf(
pl->title,
sizeof(
pl->title),
"%s wyvern", attack);
210 snprintf(
pl->title,
sizeof(
pl->title),
"%s dragon", attack);
212 else if (skin_resist > 80)
213 snprintf(
pl->title,
sizeof(
pl->title),
"legendary %s dragon", attack);
214 else if (skin_resist > 50)
215 snprintf(
pl->title,
sizeof(
pl->title),
"ancient %s dragon", attack);
217 snprintf(
pl->title,
sizeof(
pl->title),
"big %s dragon", attack);
218 pl->own_title[0] =
'\0';
233 if (
pl->own_title[0] ==
'\0')
234 snprintf(
buf, bufsize,
"the %s",
pl->title);
248 return pl->own_title[0] !=
'\0';
261 return pl->own_title;
291 for (skill = 0; skill <
MAX_SKILLS; skill++) {
292 if (
op->contr->last_skill_ob[skill] == NULL) {
294 op->contr->last_skill_ob[skill] =
tmp;
295 op->contr->last_skill_exp[skill] = -1;
298 if (
op->contr->last_skill_ob[skill] ==
tmp) {
#define FREE_OBJ_NO_DESTROY_CALLBACK
void LOG(LogLevel logLevel, const char *format,...)
#define QUERY_FLAG(xyz, p)
struct client_spell * next
void player_set_own_title(struct player *pl, const char *title)
int player_has_own_title(const struct player *pl)
void object_free_drop_inventory(object *ob)
object * object_find_by_name(const object *who, const char *name)
bool is_criminal(object *op)
void commit_crime(object *op, const char *description)
void object_free(object *ob, int flags)
void replace_unprintable_chars(char *buf)
void fatal(enum fatal_error err)
size_t strlcpy(char *dst, const char *src, size_t size)
int is_wraith_pl(object *op)
#define FREE_AND_CLEAR_STR(xyz)
client_spell * get_client_spell_state(player *pl, object *spell)
#define FREE_AND_CLEAR(xyz)
int is_dragon_pl(const object *op)
void object_set_msg(object *op, const char *msg)
object * add_force(object *op, const char *name, int duration)
int atnr_is_dragon_enabled(int attacknr)
object * find_force(object *op, const char *name)
void player_set_dragon_title(player *pl, int level, const char *attack, int skin_resist)
void object_remove(object *op)
int is_old_wraith_pl(object *op)
const char * player_get_own_title(const struct player *pl)
void clear_player(player *pl)
void link_player_skills(object *op)
#define FOR_INV_PREPARE(op_, it_)
void free_player(player *pl)
void player_get_title(const player *pl, char *buf, size_t bufsize)