circlemud_squared_0.5.153/cnf/
circlemud_squared_0.5.153/etc/
circlemud_squared_0.5.153/etc/etc/
circlemud_squared_0.5.153/etc/house/
circlemud_squared_0.5.153/etc/misc/
circlemud_squared_0.5.153/etc/plralias/A-E/
circlemud_squared_0.5.153/etc/plralias/F-J/
circlemud_squared_0.5.153/etc/plralias/K-O/
circlemud_squared_0.5.153/etc/plralias/P-T/
circlemud_squared_0.5.153/etc/plralias/U-Z/
circlemud_squared_0.5.153/etc/plralias/ZZZ/
circlemud_squared_0.5.153/etc/plrobjs/
circlemud_squared_0.5.153/etc/plrobjs/A-E/
circlemud_squared_0.5.153/etc/plrobjs/F-J/
circlemud_squared_0.5.153/etc/plrobjs/K-O/
circlemud_squared_0.5.153/etc/plrobjs/P-T/
circlemud_squared_0.5.153/etc/plrobjs/U-Z/
circlemud_squared_0.5.153/etc/plrobjs/ZZZ/
circlemud_squared_0.5.153/etc/text/
circlemud_squared_0.5.153/etc/text/help/
circlemud_squared_0.5.153/src/util/
circlemud_squared_0.5.153/src/util/worldconv/
/* ************************************************************************
*   File: comm.h                                        Part of CircleMUD *
*  Usage: header file: prototypes of public communication functions       *
*                                                                         *
*  All rights reserved.  See license.doc for complete information.        *
*                                                                         *
*  Copyright (C) 1993, 94 by the Trustees of the Johns Hopkins University *
*  CircleMUD is based on DikuMUD, Copyright (C) 1990, 1991.               *
************************************************************************ */

#ifndef __COMM_H__
#define __COMM_H__

#include "base.h"
#include "bits.h"

#define NUM_RESERVED_DESCS	8

/* comm.c */
size_t	send_to_char(charData_t *ch, const char *messg, ...) __attribute__ ((format (printf, 2, 3)));
void	send_to_all(const char *messg, ...) __attribute__ ((format (printf, 1, 2)));
void	send_to_room(roomData_t *room, const char *messg, ...) __attribute__ ((format (printf, 2, 3)));
void	send_to_outdoor(const char *messg, ...) __attribute__ ((format (printf, 1, 2)));
void	close_socket(descriptorData_t *d);

void	perform_act(const char *orig, charData_t *ch,
		itemData_t *obj, const void *vict_obj, const charData_t *to);

void act(const char *str, int hide_invisible, charData_t *ch,
  itemData_t *obj, const void *vict_obj, bitvector_t type);

/**
 * The act type constants.
 * @{
 */
#define TO_CHAR                 BIT_00  /**< Send the message to the actor. */
#define TO_OTHERS               BIT_01  /**< Send the message to others.    */
#define TO_SLEEP                BIT_02  /**< Send the message to sleepers.  */
#define TO_VICT                 BIT_03  /**< Send the message to the victim.*/
/** @} */

/**
 * A convenience act type macro.
 * @def (TO_CHAR | TO_OTHERS | TO_VICT)
 */
#define TO_ALL \
  (TO_CHAR | TO_OTHERS | TO_VICT)

/**
 * A legacy name for TO_OTHERS.
 * @def TO_OTHERS
 */
#define TO_NOTVICT \
  (TO_OTHERS)

/**
 * A convenience act type macro.
 * @def (TO_OTHERS | TO_VICT)
 */
#define TO_ROOM \
  (TO_OTHERS | TO_VICT)

/* I/O functions */
void	write_to_q(const char *txt, textQueue_t *queue, int aliased);
int	write_to_descriptor(socket_t desc, const char *txt);
size_t	write_to_output(descriptorData_t *d, const char *txt, ...) __attribute__ ((format (printf, 2, 3)));
size_t	vwrite_to_output(descriptorData_t *d, const char *format, va_list args);
void	string_add(descriptorData_t *d, char *str);
void	string_write(descriptorData_t *d, char **txt, size_t len, long mailto, void *data);

#define PAGE_LENGTH	22
#define PAGE_WIDTH	80
void	page_string(descriptorData_t *d, char *str, int keep_internal);

typedef RETSIGTYPE sigfunc(int);

#endif /* __COMM_H__ */