/
tgpub/area/notes/
tgpub/doc/
tgpub/player/
tgpub/player/backup/
tgpub/player/store/
/* Includes for board system 
===========================================================================
This snippet was written by Erwin S. Andreasen, 4u2@aabc.dk. You may use
this code freely, as long as you retain my name in all of the files. You
also have to mail me telling that you are using it. I am giving this,
hopefully useful, piece of source code to you for free, and all I require
from you is some feedback.

Please mail me if you find any bugs or have any new ideas or just comments.

All my snippets are publically available at:

http://login.dknet.dk/~ea/

If you do not have WWW access, try ftp'ing to login.dknet.dk and examine
the /pub/ea directory.
===========================================================================
*/

#define DEF_NORMAL  0 /* No forced change, but default (any string)   */
#define DEF_INCLUDE 1 /* 'names' MUST be included (only ONE name!)    */
#define DEF_EXCLUDE 2 /* 'names' must NOT be included (one name only) */

#define MAX_BOARD 9

#define DEFAULT_BOARD 0 /* default board is board #0 in the board_table */
                        /* It should be readable by everyone!!          */
                        
#define MAX_LINE_LENGTH 75 /* enforce a max length of 75 on text lines, reject longer lines */
			   /* This only applies in the Body of the note */                        
						   
#define MAX_NOTE_TEXT (MAX_STRING_LENGTH - 1000)
						
			/* The reason to the -1000 is so we can sprintf
			   the WHOLE note *including* To: From: Expire into a
			   buffer and then show it, and also have space
			   enough to add a (Continued in next message...) line
			   when splitting a message AND the
			   * Originally posted on <Board Name>
			   message when archiving notes.
			*/						   


#define NOTE_DIR	"../area/notes/" /* directory in which to store note files */

#define BOARD_NOTFOUND -1 /* Error code from board_lookup() and board_number */

#define ARCHIVE_BOARD "Archive" /* Name of the board to archive notes to */

/* Data about a board */
struct board_data
{
	char *short_name; /* Max 8 chars */
	char *long_name;  /* Explanatory text, should be no more than 40 ? chars */
	
	sh_int read_level; /* minimum level to see board */
	sh_int write_level;/* minimum level to post notes */

	char *names;       /* Default recipient */
	sh_int force_type; /* Default action (DEF_XXX) */
	
	sh_int purge_days; /* Default expiration */

	NOTE_DATA *note_first;		
	bool changed; /* currently unused */
		
};

typedef struct board_data BOARD_DATA;


/* External variables */

BOARD_DATA boards[MAX_BOARD]; /* Define */


/* Prototypes */

void finish_note (BOARD_DATA *board, NOTE_DATA *note); /* attach a note to a board */
void free_note   (NOTE_DATA *note); /* deallocate memory used by a note */
void load_boards (void); /* load all boards */
int board_lookup (char *name); /* Find a board with that name */
bool is_note_to (CHAR_DATA *ch, NOTE_DATA *note); /* is tha note to ch? */

/* Commands */

DECLARE_DO_FUN (do_note		);
DECLARE_DO_FUN (do_board	);