/*
 *	Foozle header definition file
 *
 *	Written 1992,93 by Peer Hasselmeyer
 *
 *	Don't forget to include <exec/types.h>!
 *
 */


struct NodePN {
    UWORD Zone, Net, Node, Point, PointNet;
};

/*
 *	Foozle.prefs structure
 */
struct FzConfig {
    struct NodePN MainAd;	/* system's main address */
    char Sysop[36];		/* name of sysop */
    char LogName[30];		/* name of logfile */
    char EditorCommand[30];	/* editor command line */
    char EditName[30];		/* file to be edited */
    char ReplyIntro[4][120];	/* reply introduction strings */
    char Ignore[4*60];		/* (de)archivers */
    UWORD Colour[4];		/* screen colours */
    UWORD Flags;		/* some flags */
    char DefOrigin[2][60];	/* default origins */
    char Inbound[32];		/* inbound directory */
    char Outbound[32];		/* outbound directory */
    struct NodePN AKA[8];	/* system's AKAs */
    char Nodelist[30];		/* nodelist directory */
    char AreaFixLog[30];	/* areafix logfile */
    char Font[30];		/* font name */
    char Userlist[32];		/* userlist file */
    char Tagline[4][120];	/* signatures */
    char AfterExCom[60];	/* after export command */
    char AfterRenCom[60];	/* after renumber command */
    struct {
	char Name[36];		/* special names; name */
	char Command[60];	/* command */
    } Special[4];
    char UnpackDir[32];		/* directory to unpack bundles to */
    char RouteCom[60];		/* after routing command */
    UWORD ExtFlags;		/* even more flags */
    char ForwardTxt[120];	/* forward text */
    long InputSize;		/* size of input buffer */
    long OutputSize;		/* size of output buffer */
    char PacketDir[32];		/* directory to create packets in */
    ULONG DisplayID;		/* Display ID of screen to be opened */
};

/*
 *	definitions for the Flags field
 */
#define	FZFLG_CHECKACCESS	1
#define	FZFLG_SECURESAVES	2
#define	FZFLG_IMPORTKNOWNONLY	8
#define	FZFLG_DELETEDUPES	16
#define	FZFLG_HIDEKLUDGES	32
#define	FZFLG_NORMALSEENBY	64	/* no leading ctrl-A */
#define	FZFLG_INTERLACED	128
#define	FZFLG_REFLOWTEXT	256
#define	FZFLG_AUTOHIMARK	512
#define	FZFLG_AUTORENUM		1024
#define	FZFLG_REMAPCHARS	2048
#define	FZFLG_SOFT_CONFMAIL	0
#define	FZFLG_SOFT_TD150	4096
#define	FZFLG_SOFT_TD174	8192
#define	FZFLG_SOFTWAREMASK	(FZFLG_SOFT_TD150 | FZFLG_SOFT_TD174)
#define	FZFLG_GENFTS1		16384	/* confmail style messages */
#define	FZFLG_DONTROUTE		32768

/*
 *	definitions for the ExtFlags field
 */
#define	FZEFLG_DUPSIZE0		0
#define	FZEFLG_DUPSIZE200	1	/* default dupe table size */
#define	FZEFLG_DUPSIZE500	2
#define	FZEFLG_DUPSIZE1000	3
#define	FZEFLG_DUPMASK		FZFLG_DUPSIZE1000
#define	FZEFLG_PARAGON		16
#define	FZEFLG_NOZONEGATE	128	/* route message to the real address */
#define	FZEFLG_MSGBUF32		0
#define	FZEFLG_MSGBUF64		256
#define	FZEFLG_MSGBUF128	512
#define	FZEFLG_MSGBUF256	768
#define	FZEFLG_MSGBUFMASK	FZEFLG_MSGBUF256
#define	FZEFLG_FORCEINTL	1024


struct Node4D {
    UWORD Zone, Net, Node, Point;
};

/*
 *	structure of an area in the "Foozle.areas" file
 */
struct CfgArea {
    char YourName[24];		/* your name of the area */
    char NetName[24];		/* areatag of that area */
    char Directory[32];		/* directory to store message files in */
    char Description[60];	/* description of this area */
    char Origin[60];		/* origin for this area; might be 0x00 0x00
				   or 0x00 0x01 for default origins */
    UWORD Flags;		/* some flags */
    UBYTE Access_Level;		/* access level */
    UBYTE Special;		/* low nibble: # of reply text
				   hi  nibble: # of AKA (0 = main address) */
    WORD Keep;			/* keep value */
    WORD Preserve;		/* preserve value */
    struct Node4D Export_to[64];/* systems to export messages to */
    UBYTE Access_Flags;		/* access flags */
    UBYTE Reserved[7];		/* for internal use */
};

#define	ARFLG_LOCAL		1
#define	ARFLG_MAPNOTHING	0	/* don't map characters */
#define	ARFLG_MAPIBM		2
#define	ARFLG_MAPASCII		4
#define	ARFLG_MAPMASK		(ARFLG_MAPIBM | ARFLG_MAPASCII)
#define	ARFLG_READONLY		8
#define	ARFLG_MAINTBYDATE	16
#define	ARFLG_TAGLINEMASK	96	/* number of taglien to be used */
#define	ARFLG_IGNORE		128
#define	ARFLG_DUP0		0
#define	ARFLG_DUP200		256
#define	ARFLG_DUP500		512
#define	ARFLG_DUP1000		768
#define	ARFLG_DUPMASK		ARFLG_DUP1000

