/* ************************************************************************ * 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__ */