88 uint8_t subtype,
const char *message) {
96 draw_ext_info((flags&~NDI_ALL&~NDI_ALL_DMS), pri, tmppl->
ob, type, subtype, message);
103 if (!pl || (pl->type == PLAYER && pl->contr == NULL))
105 if (pl->type != PLAYER)
107 if (pri >= pl->contr->listening)
141 va_start(ap, format);
165 if (pl->
ob != NULL && pl->
ob->map == map) {
189 if (pl->
ob != NULL && pl->
ob->map == map && pl->
ob != op) {
215 if (pl->
ob != NULL && pl->
ob->map == map
216 && pl->
ob != op1 && pl->
ob != op2) {
233 switch (pl->contr->shoottype) {
235 strncpy(obuf,
"Range: nothing", len);
241 for (op = pl->inv; op; op = op->below)
248 snprintf(obuf, len,
"Range: %s (%s)", name, op->race ? op->race :
"nothing");
254 if (pl->casting_time == 0)
255 snprintf(obuf, len,
"Range: Holding spell (%s)", pl->spell->name);
257 snprintf(obuf, len,
"Range: Casting spell (%s)", pl->spell->name);
267 strncpy(name,
"none",
MAX_BUF);
268 snprintf(obuf, len,
"Range: %s", name);
279 strncpy(obuf,
"Range: nothing", len);
284 snprintf(obuf, len,
"Skill: %s", pl->chosen_skill != NULL ? pl->chosen_skill->name :
"none");
289 snprintf(obuf, len,
"Builder: %s", name);
293 strncpy(obuf,
"Range: illegal", len);
303 snprintf(buf, len,
"Player: %s ", pl->name);
304 p = strchr(buf,
'\0');
326 int x, y, dx, dy, mflags, l;
332 for (dx = -1; dx <= 1; dx++) {
333 for (dy = -1; dy <= 1; dy++) {
351 if (ob && !ob->invisible && ob->face !=
blank_face)
400 for (x = -strength; x < strength; x++) {
401 for (y = -strength; y < strength; y++) {
411 if (ob && !ob->invisible && ob->face !=
blank_face)
443 int xmin, xmax, ymin, ymax;
446 if (pl->type != PLAYER) {
466 if (map_mark[x+MAGIC_MAP_SIZE*y]&~
FACE_FLOOR) {
478 for (y = ymin; y <= ymax; y++) {
479 for (x = xmin; x <= xmax; x++) {
void SockList_AddPrintf(SockList *sl, const char *format,...)
void SockList_Init(SockList *sl)
void player_get_title(const struct pl *pl, char *buf, size_t bufsize)
void query_base_name(const object *op, int plural, char *buf, size_t size)
void set_title(const object *pl, char *buf, size_t len)
void draw_ext_info(int flags, int pri, const object *pl, uint8_t type, uint8_t subtype, const char *message)
void SockList_Term(SockList *sl)
void rangetostring(const object *pl, char *obuf, size_t len)
#define QUERY_FLAG(xyz, p)
void draw_magic_map(object *pl)
void draw_ext_info_format(int flags, int pri, const object *pl, uint8_t type, uint8_t subtype, const char *format,...)
static const flag_definition flags[]
void SockList_AddChar(SockList *sl, unsigned char c)
#define GET_MAP_FACE_OBJ(M, X, Y, L)
static void magic_mapping_mark_recursive(object *pl, char *map_mark, int px, int py)
void ext_info_map_except2(int color, const mapstruct *map, const object *op1, const object *op2, int type, int subtype, const char *str1)
void magic_mapping_mark(object *pl, char *map_mark, int strength)
EXTERN player * first_player
int get_map_flags(mapstruct *oldmap, mapstruct **newmap, int16_t x, int16_t y, int16_t *nx, int16_t *ny)
void LOG(LogLevel logLevel, const char *format,...)
void ext_info_map(int color, const mapstruct *map, uint8_t type, uint8_t subtype, const char *str1)
void print_ext_msg(socket_struct *ns, int color, uint8_t type, uint8_t subtype, const char *message)
void ext_info_map_except(int color, const mapstruct *map, const object *op, uint8_t type, uint8_t subtype, const char *str1)
void Send_With_Handling(socket_struct *ns, SockList *sl)