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: boards.h                                      Part of CircleMUD *
*  Usage: header file for bulletin boards                                 *
*                                                                         *
*  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 __BOARDS_H__
#define __BOARDS_H__

#define NUM_OF_BOARDS		4	/* change if needed! */
#define MAX_BOARD_MESSAGES 	60      /* arbitrary -- change if needed */
#define MAX_MESSAGE_LENGTH	4096	/* arbitrary -- change if needed */

#define INDEX_SIZE	   ((NUM_OF_BOARDS*MAX_BOARD_MESSAGES) + 5)

#define BOARD_MAGIC	1048575	/* arbitrary number - see modify.c */

/**
 * An alias for struct _boardMessageData_t.
 * @typedef struct _boardMessageData_t
 */
typedef struct _boardMessageData_t boardMessageData_t;

struct _boardMessageData_t {
   int	slot_num;     /* pos of message in "master index" */
   char	*heading;     /* pointer to message's heading */
   int	auth;         /* authorization level of poster */
   int	heading_len;  /* size of header (for file write) */
   int	message_len;  /* size of message text (for file write) */
};

/**
 * An alias for struct _boardData_t.
 * @typedef struct _boardData_t
 */
typedef struct _boardData_t boardData_t;

struct _boardData_t {
   char *vnumStr;                       /**< vnum of board item "hell:1234" */
   int	read_auth;	                /**< min level to read messages     */
   int	write_auth;	                /**< min level to write messages    */
   int	remove_auth;	                /**< min level to remove messages   */
   char	filename[50];	                /**< file to save this board to     */
   itemData_t *prototype;            /**< Prototype for the board object */ 
};

#define BOARD_VNUM(i) (board_info[i].vnumStr)
#define READ_AUTH(i) (board_info[i].read_auth)
#define WRITE_AUTH(i) (board_info[i].write_auth)
#define REMOVE_AUTH(i) (board_info[i].remove_auth)
#define FILENAME(i) (board_info[i].filename)
#define BOARD_ITEM(i) (board_info[i].prototype)

#define NEW_MSG_INDEX(i) (msg_index[i][num_of_msgs[i]])
#define MSG_HEADING(i, j) (msg_index[i][j].heading)
#define MSG_SLOTNUM(i, j) (msg_index[i][j].slot_num)
#define MSG_AUTH(i, j) (msg_index[i][j].auth)

int	Board_display_msg(int board_type, charData_t *ch, char *arg, itemData_t *board);
int	Board_show_board(int board_type, charData_t *ch, char *arg, itemData_t *board);
int	Board_remove_msg(int board_type, charData_t *ch, char *arg, itemData_t *board);
int	Board_write_message(int board_type, charData_t *ch, char *arg, itemData_t *board);
void	Board_save_board(int board_type);
void	Board_load_board(int board_type);
void	Board_reset_board(int board_type);
void	Board_clear_board(int board_type);
void	Board_clear_all(void);

#endif /* __BOARDS_H__ */