
#ifndef CNET_CONFIG
#define CNET_CONFIG

#define CONFIG_MAILTASK "cnet:configs/Mail-Task.cfg\0"
#define CONFIG_NEWSTASK "cnet:configs/News-Task.cfg\0"
#define CONFIG_CRON "cnet:configs/events.cfg\0"

struct LogType
	{
	char  name  [10];
	short id;

	char  custom[10];

	UBYTE flag;
	UBYTE other;
	};

struct   FidoType
	{
	char  Name[25];

	USHORT   ZoneB,  Zone,
		NetB,   Net,
		NodeB,  Node,
		PointB, Point;

	USHORT   ZoneC, NetC, NodeC, PointC;

	char  EchoOrigin[78];
	USHORT   LoZone;

	char  NetOrigin[76];
	USHORT   Pointnet;
	USHORT   HiZone;
	};

struct   ProtoType
	{
	char  Name[16];
	char  Env[36];
	short Flags;
	char  One[2];
	char  Path[22];
	};

struct   ArcType
	{
	char  Suffix[8];
	char  Keyword[16];
	char  View[64];
	char  Test[64];
	char  Pack[64];
	char  Extract[64];

	long  Row;
	long  Column;
	};

// new for 4.12
struct   NewArcType
	{
	char  Suffix[8];
	char  Keyword[16];
	char  View[64];
	char  Test[64];
	char  Pack[64];
	char  Extract[64];

	long  Row;
	long  Column;

	char  DizExtract[64];   /* CNet does a "CD <Config1.RAMpath>" before extracting */
	char  DizAdd[64];       /* CNet does a "CD <Config1.RAMpath>" before adding */
	};


struct   EditorType
	{
	char  name[20];
	char  path[32];
	long  flags;
	};

struct   Config1
	{
	char  MySystemName[26];
	char  MySysopName[26];
	char  MyLocation[26];
	char  MyPhoneNumber[20];
	char  MyBBSID[10];

	char  FontName[40];
	long  DefBalance;
	long  DefaultColor;
	long  BlankTicks;
	long  BlankBright;

	long  nUDBASEx;         // highest UDBASE partition
	long  MaxShortLines;    // Short description lines - 16 MAX
	long  MaxOpenPfiles;    // stuff from BBSCONFIG
	long  maxUserAccounts;
	long  NumRooms;
	long  nLinkPorts;       // max link ID
	long  nsub;
	long  BListPurgeDays;
	long  nselect;
	long  nupload;
	long  nlist;
	long  maxYankTasks;
	long  maxYankSize;
	long  maxYankDays;
	long  maxLogonAttempts;
	long  maxLogonTime;
	long  maxYanksPerUser;

	long  DefNetCredits;
	long  DefByteCredits;
	long  DefFileCredits;
	char  MyCountry[4];
	char  MyAreaCode[12];
	char  DefDefProtocol[4];
	char  Yprefix[4];       // Yank identifier
	long  DefDoorPoints;
	long  DefTimeForm;

	UBYTE MyLinkID;

	UBYTE LogonFeedback;
	UBYTE LogonSearch;
	UBYTE GuestUsers;
	UBYTE HideStatus;
	UBYTE ConfProfile;
	UBYTE MailFeedback;
	UBYTE SeparateTexts;
	UBYTE IndentSpaces;
	UBYTE CIDvalidate;
	UBYTE CIDhandleskip;
	UBYTE SkipIdlePorts;

	char  MyLinkPass[8];

	char  OLMpath[40],
		ZIPpath[40],
		EXTRACTpath[40],
		YANKwork[40],
		RAMpath[40],
		TERMpath[40],
		LocalEditor[40],
		CDROMpath[40],
		DictPath[40];

	char  FKey [10][80];
	char  TFKey[10][80];

	USHORT   DColors2[2];
	USHORT   DColors4[4];
	USHORT   DColors8[8];
	USHORT   DColors16[16];

	long  narc;
	long  ned;
	long  nproto;
	long  nfido;
	long  nlog;

	struct   ArcType     arc   [20];
	struct   EditorType ed     [8];
	struct   ProtoType  proto [16];
	struct   FidoType   fido  [12];
	struct   LogType     log   [88];

	char  MyUUCPName  [44];
	char  OutboundPath[40];
	char  InboundPath [40];

	ULONG TossInputSize;
	ULONG TossOutputSize;
	USHORT   DupeTableSize;

	UBYTE BadUnknown;
	UBYTE Trapdoor174;
	UBYTE BadDupes;
	UBYTE ZoneGateAdjust;
	UBYTE ShowKludges;
	UBYTE ThreeD;
	UBYTE DeleteUUCP;
	UBYTE CIDsilence;
	UBYTE TwoDotMsg;

	char  expansion;

	USHORT   RamUploadSize;

	char  RamUpload [30];
	char  DiskUpload[40];

	char  Nodelist  [40];
	};

// used for CNet/4
struct   NewConfig1
	{
	char  MySystemName[26];
	char  MySysopName[26];
	char  MyLocation[26];
	char  MyPhoneNumber[20];
	char  MyBBSID[10];

	char  FontName[40];
	long  DefBalance;
	long  DefaultColor;
	long  BlankTicks;
	long  BlankBright;

	long  nUDBASEx;         // highest UDBASE partition
	long  MaxShortLines;    // Short description lines
	long  MaxOpenPfiles;    // stuff from BBSCONFIG
	long  maxUserAccounts;
	long  NumRooms;
	long  nLinkPorts;       // max link ID
	long  nsub;
	long  BListPurgeDays;
	long  nselect;
	long  nupload;
	long  nlist;
	long  maxYankTasks;
	long  maxYankSize;
	long  maxYankDays;
	long  maxLogonAttempts;
	long  maxLogonTime;
	long  maxYanksPerUser;

	long  DefNetCredits;
	long  DefByteCredits;
	long  DefFileCredits;
	char  MyCountry[4];
	char  MyAreaCode[12];
	char  DefDefProtocol[4];
	char  Yprefix[4];       // Yank identifier
	long  DefDoorPoints;
	long  DefTimeForm;

	UBYTE MyLinkID;

	UBYTE LogonFeedback;
	UBYTE LogonSearch;
	UBYTE GuestUsers;
	UBYTE HideStatus;
	UBYTE ConfProfile;
	UBYTE MailFeedback;
	UBYTE SeparateTexts;
	UBYTE IndentSpaces;
	UBYTE CIDvalidate;
	UBYTE CIDhandleskip;
	UBYTE SkipIdlePorts;

	char  MyLinkPass[8];

	char  OLMpath[40],
		ZIPpath[40],
		EXTRACTpath[40],
		YANKwork[40],
		RAMpath[40],
		TERMpath[40],
		LocalEditor[40],
		CDROMpath[40],
		DictPath[40];

	char  FKey [10][80];
	char  TFKey[10][80];

	USHORT   DColors2[2];
	USHORT   DColors4[4];
	USHORT   DColors8[8];
	USHORT   DColors16[16];

	long  narc;
	long  ned;
	long  nproto;
	long  nfido;
	long  nlog;

	struct   NewArcType     arc   [20];
	struct   EditorType ed     [8];
	struct   ProtoType  proto [16];
	struct   FidoType   fido  [12];
	struct   LogType     log   [88];

	char  MyUUCPName  [44];
	char  OutboundPath[40];
	char  InboundPath [40];

	ULONG TossInputSize;
	ULONG TossOutputSize;
	USHORT   DupeTableSize;

	UBYTE BadUnknown;
	UBYTE Trapdoor174;
	UBYTE BadDupes;
	UBYTE ZoneGateAdjust;
	UBYTE ShowKludges;
	UBYTE ThreeD;
	UBYTE DeleteUUCP;
	UBYTE CIDsilence;
	UBYTE TwoDotMsg;

	UBYTE expansion;

	USHORT   RamUploadSize;

	char  RamUpload [30];
	char  DiskUpload[40];

	char  Nodelist  [40];

	UBYTE MIDFromHandle;    // if TRUE, use user's Handle to create UUCP/Mail ID, else use Handle.

	UBYTE FileTaskNotify;   // 0=mail/OLM users only on file test/tx failure
									// 1=mail/OLM users with ALL results

	BYTE DefMailSort;       // "System default" mail sorting method

	// 19-Feb-1997
	UBYTE MonitorUUMail;    // True if mail-task should monitor and import msgs from IUUMAIL:
	char UUMailPath[40];    // Path to where internet mail is placed (UUMAIL: is usual but configurable for future expansion etc,..)

	// 27-Feb-1997
	UBYTE CreateWebDir;     // CNet will create the user Web dir "mail:users/<MailID>/WEB" if this is TRUE (1)
									// This is for support of the new AWS cnetdir.library and will be used
									// by CNet itself in the future..

	// 01-Mar-97
	UBYTE NewsTaskPost;     // Enable news task posting.  If this is enabled (1)
									// all CNet posts/replies in a "Usenet news" subboard
									// are posted to the Internet service provider
									// using news-task.  Otherwise, CNet will use
									// "PostNews" or whatever program is specified on BBSTEXT
									// line 2151

	// 03-Mar-97
	char NewsServer[80];    // NewsServer to connect to for posting and retrieving news.
	// 08-Mar 97
	char NNTPPort;          // default=119

	UBYTE dynamicIP;        // if true, "NEWS" is placed in the path: line of outbound usenet messages processed by news-task.
									// else configured INet Hostname is used in the path: line


	char RootName[20];      // should match the username specified as "root" in Miami
									// and/or AmiTCP

	short ABufferSize;      // Sysops can now set their ABuffer size - can be made as
									// as the longest BBSTEXT line!  (See Config/Limits)

	char NewsPath[80];		// 23-Apr-97: Path to NEWS directory.
	};



// this is the structure used (saved to disk also) for *-task configs
struct ServTaskConfig
	{
	char Version[30];
	char FontName[128];
	short FontSize;
	short WinTop;
	short WinLeft;
	short WinHeight;
	short WinWidth;

	// 24-Jan-97
	BYTE Iconify;     // 1 == iconified
	BYTE Menufy;      // 1 == menufied
	};


// added 11-Jan-97
// CNetGui.library's GetScreenInfo() fills this structure.
// The Screen must first be locked before calling GetScreenInfo()
struct CNetScreenInfo
	{
	char PubName[40];          // public screen name
	WORD LeftEdge;             // Display clip dimensions.  NOT the full screen size,
	WORD TopEdge;
	WORD Width;
	WORD Height;
	struct ColorMap *colormap; // screen's colormap
	struct TextAttr Font;      // font used for Title/drag-bar rendering
	};

#endif
