487 lines
12 KiB
C
487 lines
12 KiB
C
|
// This may look like C code, but it is really -*- C++ -*-
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// The Goldware Library
|
||
|
// Copyright (C) 1990-1999 Odinn Sorensen
|
||
|
// ------------------------------------------------------------------
|
||
|
// This library is free software; you can redistribute it and/or
|
||
|
// modify it under the terms of the GNU Library General Public
|
||
|
// License as published by the Free Software Foundation; either
|
||
|
// version 2 of the License, or (at your option) any later version.
|
||
|
//
|
||
|
// This library is distributed in the hope that it will be useful,
|
||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
// Library General Public License for more details.
|
||
|
//
|
||
|
// You should have received a copy of the GNU Library General Public
|
||
|
// License along with this program; if not, write to the Free
|
||
|
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||
|
// MA 02111-1307, USA
|
||
|
// ------------------------------------------------------------------
|
||
|
// $Id$
|
||
|
// ------------------------------------------------------------------
|
||
|
// SuperBBS configuration data structures
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#if defined(GOLD_CANPACK)
|
||
|
#pragma pack(1)
|
||
|
#endif
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// Misc types
|
||
|
|
||
|
typedef char MsgToIdxRecord[36];
|
||
|
typedef byte SbFlagType[4];
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// Structure of SCONFIG.BBS
|
||
|
|
||
|
typedef struct {
|
||
|
|
||
|
char SystemPath[67];
|
||
|
char MsgBasePath[67];
|
||
|
char TempPath[67];
|
||
|
char RedirectDevice[13];
|
||
|
char Resp19200[41];
|
||
|
char Resp38400[41];
|
||
|
byte ShowSecurity;
|
||
|
byte ShowPswdAtLogon;
|
||
|
long BetaCode;
|
||
|
byte Unused[200];
|
||
|
byte Empty1[284];
|
||
|
byte AllowCat;
|
||
|
byte Answerboard;
|
||
|
byte Use7bitChars;
|
||
|
word BufferSize;
|
||
|
byte Empty2[45];
|
||
|
byte EntryColor;
|
||
|
byte FilesBeforeRatio;
|
||
|
word MinSpace;
|
||
|
byte ClearTemp;
|
||
|
byte Empty3[163];
|
||
|
byte UseAliasSystem;
|
||
|
byte Ansilogon; // 0 = No, 1 = Yes, 2 = Auto detect
|
||
|
byte ExcludeSysOp;
|
||
|
byte Empty4[122];
|
||
|
char AltFkeys[10][61];
|
||
|
byte Checkfiles;
|
||
|
byte PasswordBoard;
|
||
|
byte Alt_J_Swaptoems;
|
||
|
word MaxTimeInBank;
|
||
|
byte NoBirthDayAsk;
|
||
|
byte MaxDescLines;
|
||
|
byte Empty5[45];
|
||
|
byte FastMailCheck;
|
||
|
byte DefaultColors[10];
|
||
|
byte Empty6[45];
|
||
|
byte LinesInSystem;
|
||
|
char CommonDir[80];
|
||
|
word VersionNumber;
|
||
|
word FullScrChatBaud;
|
||
|
byte PressEnterColor;
|
||
|
byte AreaSelectColor[3];
|
||
|
byte StatusLineColor;
|
||
|
byte VirusChkMode;
|
||
|
char WorkPath[80];
|
||
|
byte WatchCDatDos;
|
||
|
byte UseCtrlX;
|
||
|
byte MsgAfterPageBoard;
|
||
|
byte SearchAliases;
|
||
|
byte EchoConvert;
|
||
|
byte SwapAtPackers;
|
||
|
byte InternalProtocols;
|
||
|
// bit 0 : Zmodem
|
||
|
// bit 1 : Ymodem batch
|
||
|
// bit 2 : Xmodem
|
||
|
// bit 3 : Xmodem 1K (Ymodem)
|
||
|
// bit 4 : Xmodem 1K G
|
||
|
// bit 5 : Ymodem-g
|
||
|
char FirstMenuInSystem[9];
|
||
|
byte ColoredQuoteText;
|
||
|
byte AddUploadersName;
|
||
|
word DaysUntilExpiration;
|
||
|
char QWKBBSID[7];
|
||
|
byte QWKDefaultBoard;
|
||
|
short QwkMaxNrToPack;
|
||
|
char StatuslineStr[2][101];
|
||
|
char Location[41];
|
||
|
byte UsPhoneNrFormat;
|
||
|
char DlCounterLBracket;
|
||
|
char DlCounterRBracket;
|
||
|
byte QWKAllowTagLines; // 0=no, 1=yes, 2=only local areas
|
||
|
word LogonSecLvl;
|
||
|
byte LogonAge;
|
||
|
char LogonPassword[16];
|
||
|
byte NoGroupMailCheck;
|
||
|
byte NoUserListIntype27;
|
||
|
word GroupMsgSecLvl;
|
||
|
byte AskSex;
|
||
|
byte AskAnsi; // 0=ask, 1=yes, 2=no
|
||
|
byte AskMailCheck; // 0=ask, 1=yes, 2=no
|
||
|
byte AskNewFilesCheck; // 0=ask, 1=yes, 2=no
|
||
|
byte AskFullScrEditor; // 0=ask, 1=yes, 2=no
|
||
|
byte AskFullScrViewer; // 0=ask, 1=yes, 2=no
|
||
|
byte AskPagePause; // 0=ask, 1=yes, 2=no
|
||
|
byte AskScreenClears; // 0=ask, 1=yes, 2=no
|
||
|
char PageStart[7][6];
|
||
|
char PageEnd[7][6];
|
||
|
byte UseIEMSI;
|
||
|
byte CapitalizeCity;
|
||
|
byte CapitalizeAlias;
|
||
|
char VirusScannerCmd[128];
|
||
|
byte NoExtractBeforeScan;
|
||
|
byte VirusFoundErrorLvl;
|
||
|
byte SysOpsFscrChatClr;
|
||
|
byte UsersFscrChatClr;
|
||
|
byte ScanForDupePhones; // 0 = no, 1 = log entry, 2 = don't allow
|
||
|
byte NormalLongDesc;
|
||
|
char NodelistPath[73];
|
||
|
word MinCrashMailSec;
|
||
|
byte NoDorinfo1;
|
||
|
byte NoTouch;
|
||
|
byte ZoneMatching;
|
||
|
byte strictdupecheck;
|
||
|
byte noextendednodeinfo;
|
||
|
byte Birthdayverify;
|
||
|
byte realmsgnumbers;
|
||
|
char LocalAttachPath[67];
|
||
|
byte NoLACheckAtLogon;
|
||
|
byte AllowedPackers;
|
||
|
// Bit 0 ; ZIP
|
||
|
// Bit 1 ; ARC
|
||
|
// Bit 2 ; LZH
|
||
|
// Bit 3 ; ARJ
|
||
|
byte BoardsFileToCurDir;
|
||
|
char UnLockPwd[16];
|
||
|
char Resp7200[41];
|
||
|
char Resp12000[41];
|
||
|
char Resp14400[41];
|
||
|
byte LineEditorQuote; // 0=intelligent, 1=normal, 2=no
|
||
|
byte SevenBitOnly;
|
||
|
byte nofileflagging;
|
||
|
char ReplyingToStr[81];
|
||
|
byte FreeFileTimeCheck; // 0 = NO, 1 = YES, 2 = EVENT
|
||
|
byte PageReasonToSubj;
|
||
|
byte AgeGraphStartAge;
|
||
|
word ETGCLocalAttrib;
|
||
|
word ETGCRemoteAttrib; // Not yet used
|
||
|
// BIT 0 ; 320x200x16
|
||
|
// BIT 1 ; 640x200x16
|
||
|
// BIT 2 ; 640x350x16
|
||
|
// BIT 3 ; 640x480x16
|
||
|
// BIT 4 ; 320x200x256
|
||
|
byte AskCombinedBoards;
|
||
|
byte AskCombMailCheck; // 0=ask, 1=yes, 2=no
|
||
|
byte UseNewFilesCheckDate;
|
||
|
word BurnOutSecs;
|
||
|
byte NoNamesInGroupMail;
|
||
|
byte AutoChatCapture;
|
||
|
byte AskDefProto;
|
||
|
byte AskHotkeys; // 0=ask, 1=yes, 2=no
|
||
|
byte FreeAttaches;
|
||
|
SbFlagType LogonFlags;
|
||
|
byte NoRemoteSysOp;
|
||
|
byte FscrReaderColors[12];
|
||
|
byte NewsDateCheck;
|
||
|
byte NoNameIdx;
|
||
|
word AkaZone[15];
|
||
|
word AkaNet[15];
|
||
|
word AkaNode[15];
|
||
|
word AkaPoint[15];
|
||
|
byte MinorVersionNumber; // ie. 1 = Gamma-1, 2 = Gamma-2, 100 = official
|
||
|
byte Extraspace[2709];
|
||
|
|
||
|
} ExtraConfigT, *ExtraConfigP, **ExtraConfigI;
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// Structure of SUSERS.BBS
|
||
|
|
||
|
typedef struct {
|
||
|
|
||
|
MsgToIdxRecord Name;
|
||
|
char Birthday[9];
|
||
|
word Attrib;
|
||
|
byte Flagsx[4]; // Not yet used
|
||
|
char Firsttime[6];
|
||
|
char FirstDate[8];
|
||
|
byte CombinedBoards[25];
|
||
|
char SysOpComment[80];
|
||
|
char DefaultProto;
|
||
|
short UserRecPtr;
|
||
|
byte Colors[10];
|
||
|
byte FileListType; // Not yet used
|
||
|
MsgToIdxRecord Alias;
|
||
|
long MinutesUsed;
|
||
|
char ViewFileName[13]; // SeeAlso attrib bits 4 - 6
|
||
|
char MenuToRun[9];
|
||
|
word Timeinbank;
|
||
|
byte TodayCalls;
|
||
|
char LanguageFileN[9];
|
||
|
char Expirationdate[9];
|
||
|
byte CurrentFArea;
|
||
|
byte CurrentMArea;
|
||
|
byte CurrentDoor;
|
||
|
byte DefaultPacker;
|
||
|
// not bit mapped !
|
||
|
// 1 = ZIP
|
||
|
// 2 = ARC
|
||
|
// 3 = LZH
|
||
|
// 4 = ARJ
|
||
|
char LastNewFilesCheck[9];
|
||
|
byte ExtraSpace[403];
|
||
|
|
||
|
} ExtraUserRecT, *ExtraUserRecP, **ExtraUserRecI;
|
||
|
|
||
|
// Attrib;
|
||
|
//
|
||
|
// 1 Bit 0; MailCheck at logon
|
||
|
// 2 Bit 1; Newfiles Check at logon
|
||
|
// 4 Bit 2; No downloadratio
|
||
|
// 8 Bit 3; Female
|
||
|
// 16 Bit 4; Delete file after viewing
|
||
|
// 32 Bit 5; Display file only once
|
||
|
// 64 Bit 6; File viewed
|
||
|
// 128 Bit 7; Fullscreen viewer
|
||
|
// 256 Bit 8; Combined mail check
|
||
|
// 512 Bit 9; No hotkeys
|
||
|
// Bit 10;
|
||
|
// Bit 11;
|
||
|
// Bit 12;
|
||
|
// Bit 13;
|
||
|
// Bit 14;
|
||
|
// Bit 15;
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// Structure of USERS.BBS
|
||
|
|
||
|
typedef struct {
|
||
|
|
||
|
MsgToIdxRecord Name;
|
||
|
char City[26];
|
||
|
char Password[16];
|
||
|
char DataPhone[13];
|
||
|
char HomePhone[13];
|
||
|
char LastTime[6];
|
||
|
char LastDate[9];
|
||
|
byte Attrib;
|
||
|
SbFlagType Flagsx;
|
||
|
short Credit;
|
||
|
short Pending;
|
||
|
word MsgsPosted;
|
||
|
word HighMsgRead;
|
||
|
word SecLvl;
|
||
|
word Times;
|
||
|
word Ups;
|
||
|
word Downs;
|
||
|
word UpK;
|
||
|
word DownK;
|
||
|
short TodayK;
|
||
|
short Elapsed;
|
||
|
short Len;
|
||
|
byte ExtraSpace1[2];
|
||
|
byte Age;
|
||
|
short ExtraUserrecPtr;
|
||
|
byte ExtraSpace2[3];
|
||
|
|
||
|
} UserRecordT, *UserRecordP, **UserRecordI;
|
||
|
|
||
|
// Attrib;
|
||
|
//
|
||
|
// bit 0; Deleted user
|
||
|
// bit 1; Screen clear codes
|
||
|
// bit 2; More prompt
|
||
|
// bit 3; ANSI graphics
|
||
|
// bit 4; No-Kill
|
||
|
// bit 5; Ignore Download Hours
|
||
|
// bit 6; ANSI editor
|
||
|
// bit 7; Do not disturb mode ON
|
||
|
//
|
||
|
//
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// Structure of CONFIG.BBS
|
||
|
|
||
|
typedef struct {
|
||
|
|
||
|
byte Status; // 0=Disabled 1=Enabled
|
||
|
char RunTime[6];
|
||
|
byte ErrorLevel;
|
||
|
byte Days;
|
||
|
byte Forced;
|
||
|
char LastTimeRun[9];
|
||
|
|
||
|
} EventRecordT, *EventRecordP, **EventRecordI;
|
||
|
|
||
|
typedef struct {
|
||
|
|
||
|
char Name[17];
|
||
|
byte Typ; // 0=Standard 1=Net 3=Echo
|
||
|
byte Kinds; // 0=Private & Public 1=Private 2=Public 3=Read-Only
|
||
|
byte Combined;
|
||
|
byte Aliases; // 0=no aliases,1=yes,2=ask alias,3=Alias/name
|
||
|
|
||
|
short ReadSecLvl;
|
||
|
SbFlagType ReadFlags;
|
||
|
|
||
|
short WriteSecLvl;
|
||
|
SbFlagType WriteFlags;
|
||
|
|
||
|
short SysopSecLvl;
|
||
|
SbFlagType SysopFlags;
|
||
|
|
||
|
} BoardRecordT, *BoardRecordP, **BoardRecordI;
|
||
|
|
||
|
typedef struct {
|
||
|
|
||
|
short CommPort;
|
||
|
word InitBaud;
|
||
|
word InitTimes;
|
||
|
word AnswerWait;
|
||
|
char ModemInitStr[71];
|
||
|
char ModemBusyStr[71];
|
||
|
char ModemInitResp[41];
|
||
|
char ModemBusyResp[41];
|
||
|
char Resp300[41];
|
||
|
char Resp1200[41];
|
||
|
char Resp2400[41];
|
||
|
|
||
|
char MenuPath[67];
|
||
|
char TextPath[67];
|
||
|
char NetPath[67];
|
||
|
|
||
|
short MinBaud;
|
||
|
short GraphicsBaud;
|
||
|
short XferBaud;
|
||
|
char LowBaudStart[6];
|
||
|
char LowBaudEnd[6];
|
||
|
char DownloadStart[6];
|
||
|
char DownloadEnd[6];
|
||
|
char PagingStart[6]; // !! Not used anymore !!
|
||
|
char PagingEnd[6]; // !! Not used anymore !!
|
||
|
|
||
|
short MatrixZone;
|
||
|
short MatrixNet;
|
||
|
short MatrixNode;
|
||
|
short OldAkaNet[5]; // not used
|
||
|
short OldAkaNode[5]; // not used
|
||
|
short NetMailBoard;
|
||
|
|
||
|
short DefaultSec;
|
||
|
short DefaultCredit;
|
||
|
SbFlagType DefaultFlags;
|
||
|
|
||
|
char EditorCmdStr[71];
|
||
|
char OriginLine[61];
|
||
|
MsgToIdxRecord SysopName;
|
||
|
byte AutoLogonChar;
|
||
|
byte FastLogon;
|
||
|
byte ScreenBlanking;
|
||
|
byte UseLastRead;
|
||
|
byte MonoMode;
|
||
|
byte DirectWrite;
|
||
|
byte SnowCheck;
|
||
|
byte NetEchoExit;
|
||
|
byte OneWordNames;
|
||
|
byte CheckMail;
|
||
|
byte AskHomePhone;
|
||
|
byte AskDataPhone;
|
||
|
byte GraphicsAvail;
|
||
|
short InactiveTimeOut;
|
||
|
short LogonTime;
|
||
|
short DefFgColor;
|
||
|
short DefBgColor;
|
||
|
short PasswordTries;
|
||
|
short MaxPageTimes;
|
||
|
short PageBellLen;
|
||
|
|
||
|
byte Use_Xmodem;
|
||
|
byte Use_Xmodem1k;
|
||
|
byte Use_Ymodem;
|
||
|
byte Use_YmodemG;
|
||
|
byte Use_Sealink;
|
||
|
byte Use_Zmodem;
|
||
|
byte Inp_Fields;
|
||
|
char QuoteStr[4];
|
||
|
short UploadCredit;
|
||
|
char LoadingMessage[71];
|
||
|
char SelectionPrompt[71];
|
||
|
|
||
|
word VersionID;
|
||
|
char Resp4800[41];
|
||
|
char Resp9600[41];
|
||
|
|
||
|
short OldAkaZone[5]; // not used
|
||
|
|
||
|
short MatrixPoint;
|
||
|
short OldAkaPoint[5]; // not used
|
||
|
|
||
|
byte UseAka[200];
|
||
|
byte AskAge; // Not used
|
||
|
char SystemName[41];
|
||
|
long RegKey;
|
||
|
|
||
|
byte EntryfieldColor;
|
||
|
byte MenuBorderColor;
|
||
|
|
||
|
short SysOpSeclvl;
|
||
|
byte AllowDelMsgs;
|
||
|
|
||
|
EventRecordT EventRec[30];
|
||
|
BoardRecordT UnusedBoards[200];
|
||
|
|
||
|
} ConfigRecordT, *ConfigRecordP, **ConfigRecordI;
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// Structure of BOARDS.BBS
|
||
|
|
||
|
typedef struct {
|
||
|
|
||
|
char Name[31];
|
||
|
char QwkName[13];
|
||
|
|
||
|
byte Typ; // 0=Standard 1=Net 3=Echo
|
||
|
byte Kinds; // 0=Private & Public 1=Private 2=Public 3=Read-Only
|
||
|
byte Aliases; // 0=no aliases, 1=yes, 2=ask alias, 3=Alias/name
|
||
|
|
||
|
short ReadSecLvl;
|
||
|
SbFlagType ReadFlags;
|
||
|
|
||
|
short WriteSecLvl;
|
||
|
SbFlagType WriteFlags;
|
||
|
|
||
|
short SysopSecLvl;
|
||
|
SbFlagType SysopFlags;
|
||
|
|
||
|
char Group;
|
||
|
byte Replystatus; // 0 = normal, 1 = net/normal, 2 = net only, 3 = no replies
|
||
|
byte Age;
|
||
|
byte Attrib;
|
||
|
byte UseAka;
|
||
|
|
||
|
} MsgBoardRecordT, *MsgBoardRecordP, **MsgBoardRecordI;
|
||
|
|
||
|
// Attributes ;
|
||
|
//
|
||
|
// bit 0 ; Combined
|
||
|
// bit 1 ; Default combined
|
||
|
// bit 2 ; Allow message deleting
|
||
|
// bit 3 ; Allow taglines
|
||
|
// bit 4 ; Use in template system
|
||
|
// bit 5 ; Convert 8bit -> 7bit
|
||
|
// bit 6 ; forced ON in the mail check
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#if defined(GOLD_CANPACK)
|
||
|
#pragma pack()
|
||
|
#endif
|
||
|
|
||
|
// ------------------------------------------------------------------
|