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