home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 September / PCO_0998.ISO / filesbbs / dos / itc_300.exe / ITC300.ZIP / STRUCT.300 < prev    next >
Encoding:
Text File  |  1997-08-03  |  14.0 KB  |  284 lines

  1. {iNSTiNCT BBS File Structure}
  2.  
  3. const
  4.   Version   ='3.0ß - [Hangin'' Gardens]';
  5.   VersionNo = $0300;                  { Version is HighByte,Lowbyte ie:
  6.                                         (Hi(VersionNo), Lo(VersionNo))
  7.                                         Use < = > operators to determine }
  8.  
  9. type
  10.   FidoAddr = record                   {Used for Fido style addresses}
  11.     Zone : word;
  12.     Net  : word;
  13.     Node : word;
  14.     Point: word;
  15.   end;
  16.  
  17.   NetInfoRec = record                 { NETINFO.DAT }
  18.     NetName : string[20];
  19.     DestAddr: FidoAddr;
  20.     OrigAddr: FidoAddr;
  21.     OrigLine: string[40];
  22.   end;
  23.  
  24.   ConferRec = record                  { CONFER.DAT }
  25.     Name: string[20];                 { Name of conference }
  26.     Active  : boolean;                { Is the conference active? }
  27.     AcsLevel: byte;                   { Acslevel required to join conf }
  28.     AcsFlag : byte;                   { Acsflags required to join conf }
  29.  
  30.     FilePath: string[63];             { Path to files in conference }
  31.     AllowUL : boolean;                { Is upload allowed in conf? }
  32.     AllowDL : boolean;                { Is download allowed in conf? }
  33.     CDROM   : boolean;                { Are the files located on CDROM? }
  34.     FileScan : boolean;               { Scan conf for newfiles? }
  35.     MsgScan  : boolean;               { Scan conf for new messages? }
  36.     EchoMail : boolean;               { Is conf Echomail? (add origin) }
  37.     NetNumber: byte;                  { Number of net to use (if echo) }
  38.     HasAreas:boolean;                 { Does the conference has sub-areas? }
  39.     Reserved: array [1..19] of byte;  { Reserved for future use }
  40.   end;
  41.  
  42.  
  43.   AreaRec = record                    { \ITC\AREA\AREA.# (#=Confno) }
  44.     Name: string[20];                 { Name of area }
  45.     Active  : boolean;                { Is the area active? }
  46.     AcsLevel: byte;                   { Acslevel required to select area }
  47.     AcsFlag : byte;                   { Acsflags required to select area }
  48.  
  49.     FilePath: string[63];             { Path to files in conference }
  50.     AllowUL : boolean;                { Is upload allowed in area? }
  51.     AllowDL : boolean;                { Is download allowed in area? }
  52.     CDROM   : boolean;                { Are the files located on CDROM? }
  53.     FileScan : boolean;               { Scan area for newfiles? }
  54.  
  55.     Reserved: array [1..22] of byte;  { Reserved for future use }
  56.   end;
  57.  
  58.  
  59.   ProfileRec = record                 { PROFILE.DAT }
  60.     Comment: string[40];              { Default user comment }
  61.     TimeDay   : word;                 { Time per day (minutes) }
  62.     AcsLevel  : byte;                 { Security level }
  63.     AcsFlag   : byte;                 { Flags (each bit corresponds to a flag) }
  64.     FilePoints: word;                 { Amount of filepoints to assign }
  65.     PointRatio: byte;                 { Filepoint ratio }
  66.  
  67.     NewUser   : boolean;              { Should new users have acs to board? }
  68.     Protected : boolean;              { If true, userpack will not delete user }
  69.     Deleted   : boolean;              { No acs to board, physically deleted by userpack }
  70.     Hidden    : boolean;              { Hidden? not written as lastcaller etc }
  71.     Disabled  : boolean;              { Disabled ratio? }
  72.  
  73.     SubEnabled: boolean;              { Enable subscribtion? }
  74.     SubDays : word;                   { Days to subscribtion }
  75.     SubReset: byte;                   { Userprofile to assign user when subscribtion expired }
  76.     Theme   : byte;
  77.     Reserved: array [1..19] of byte;  { Reserved for future use }
  78.   end;
  79.  
  80.   ConfigRec = record                  { CONFIG.#, #= Node Number }
  81.     Port      : byte;                 { This node's comport }
  82.     PortSpeed : longint;              { This node's port speed }
  83.     InitString: string[40];           { This node's modem initstring }
  84.     TooSlowBaud: word;                { Min baudrate without slow pwd }
  85.     Reserved:array[1..200] of byte;   { Reserved space for events etc }
  86.   end;
  87.  
  88.   UserRec = record                    { USER.DAT }
  89.     Name     : string[40];            { Users name/handle }
  90.     Location : string[40];            { Users location }
  91.     Comment  : string[40];            { Users Comment }
  92.     PassWord : string[20];            { Users password }
  93.     BirthDate: string[8];             { Users birthdate }
  94.     Phone    : string[20];            { Users phonenumber }
  95.  
  96.     FirstDate  : string[8];           { First date user called }
  97.     MsgMailed  : word;                { Messages written }
  98.     MsgReceived: word;                { Messages received }
  99.     Calls      : word;                { Number of calls }
  100.     Lines      : byte;                { Display length in lines }
  101.  
  102.     LastTime: string[8];              { Last time user called }
  103.     LastDate: string[8];              { Last date user called }
  104.     LastConf: word;                   { Current conference }
  105.  
  106.     TimeDay : integer;                { Time per day (minutes) }
  107.     TimeLeft: integer;                { Time left today (minutes) }
  108.     TimeBank: word;                   { Minutes in timebank }
  109.  
  110.     AcsLevel  : byte;                 { Security level }
  111.     AcsFlag   : byte;                 { Acsflags (each bit corresponds a flag }
  112.     PointRatio: byte;                 { Filepoint ratio }
  113.     FilePoints: longint;              { Amount of filepoints (UlKb*PointRatio) }
  114.  
  115.     ULFiles: word;                    { Number of uploaded files }
  116.     DLFiles: word;                    { Number of downloaded files }
  117.     ULkB   : longInt;                 { Amount uploaded }
  118.     DLkB   : longInt;                 { Amount downloaded }
  119.  
  120.     NewUser  : boolean;               { New user? (has not access to board) }
  121.     Protected: boolean;               { Protected user? (against delete) }
  122.     Deleted  : boolean;               { Deleted? will be removed }
  123.     Xpert    : boolean;               { Expert Mode?  (no main menu displayed) }
  124.     Hidden   : boolean;               { Hidden? not displayed on lastcallers etc }
  125.     Disabled : boolean;               { Unlimited download? }
  126.  
  127.     SubEnabled  : boolean;            { Subscribe user? }
  128.     ResetDate   : string[8];          { Date when set }
  129.     ResetProfile: byte;               { Profile assigned when subscribed }
  130.     Protocol    : char;               { Preferred protocol }
  131.     Theme       : byte;               { Users Theme }
  132.     AnimOn      : boolean;            { Display animations to user }
  133.     Reserved: array [1..47] of byte;  { Reserved for future use }
  134.   end;
  135.  
  136.  
  137.   BBSRec = Record                     { BBSINFO.DAT }
  138.     FirstUpdated: string[8];          { First time BBS started (date) }
  139.     LastUpdated : string[8];          { Last time BBS run (date) }
  140.  
  141.     TodNewUsers: word;                { New users today }
  142.     TodCalls   : word;                { Calls today }
  143.     TodMsg     : word;                { New messages today }
  144.     TodULFiles : word;                { Uploaded files today }
  145.     TodDLFiles : word;                { Downloaded files today }
  146.     TodULkB    : longint;             { Uploaded kb today }
  147.     TodDLkB    : longint;             { Downloaded kb today }
  148.  
  149.     TotNewUsers: longint;             { New users totally (users applied-totally no of deleted users }
  150.     TotCalls   : longint;             { Total no of calls }
  151.     TotMsg     : longint;             { Total messages written }
  152.     TotULFiles : longint;             { Total no of uploaded files }
  153.     TotDLFiles : longint;             { Total no of downloaded files }
  154.     TotULkB    : longint;             { Total amount of uploaded kb }
  155.     TotDLkB    : longint;             { Total amount of downloaded kb }
  156.     Version    : word;                { iTC version (see VersionNo above) }
  157.   end;
  158.  
  159.   CallRec = record                    { CALLER.DAT }
  160.     Name    : string[40];             { Name of caller }
  161.     Location: string[40];             { Location of caller }
  162.  
  163.     Node    : byte;                   { Node user called }
  164.     BaudRate: longint;                { Baudrate he was connected on }
  165.     Date    : string[8];              { Date he called }
  166.     LogOn   : string[5];              { Time of logon }
  167.     LogOff  : string[5];              { Time of logoff }
  168.     OnBoard : word;                   { Minutes spent on board }
  169.  
  170.     Upload  : boolean;                { Did user upload? }
  171.     Download: boolean;                { Did user download? }
  172.     Write   : boolean;                { Did user write mail }
  173.     Read    : boolean;                { Did user read mail? }
  174.     Yell    : boolean;                { Did user yell? }
  175.     Chat    : boolean;                { Did user chat with sysop? }
  176.  
  177.     ULkb    : longint;                { Amount uploaded during call }
  178.     DLkb    : longint;                { Amount downloaded during call }
  179.     Reserved: array [1..12] of byte;  { Reserved for future use }
  180.   end;
  181.  
  182.   InfoRec = record                    { NODEINFO.#, # = Node Number }
  183.     Node    : byte;                   { Nodenumber }
  184.     BaudRate: longint;                { Baudrate, 0 if local or no user }
  185.     Status  : string[40];             { Status; browsing, uploading etc }
  186.     Name    : string[40];             { Name of user on node, if any }
  187.     Location: string[40];             { Location of user on }
  188.     ActionCode:byte;                  { Board status, see table below }
  189.   end;
  190.                                       { Board status:
  191.                                         0 = Board is down
  192.                                         1 = Waiting for call
  193.                                         2 = In Matrix
  194.                                         3 = Browsing
  195.                                         4 = Writing
  196.                                         5 = Reading Mail
  197.                                         6 = Uploading
  198.                                         7 = Downloading
  199.                                         8 = In Chat
  200.                                         9 = Outdoor
  201.                                        10 = Applying          }
  202.  
  203.  
  204.   NewPointRec = record                { NEWPOINT.DAT }
  205.     Name  : string[40];               { Name of user to credit }
  206.     Points: longint;                  { Amount of filepoints to give }
  207.   end;                                {   may be negative }
  208.  
  209.   FileTagRec = record                 { FILETAGS.#, # = Node Number }
  210.     FileName: string[12];             { Name of file }
  211.     FileDate: string[8];              { Date of file }
  212.     FileSize: longint;                { Size of file }
  213.     FileConf: byte;                   { Conf# file is in }
  214.     FreeFile: boolean;                { Is file free? }
  215.     Uploader: string[40];             { Uploader of file }
  216.     FileArea: word;                   { Filearea file is in }
  217.     CDROM   : boolean;                { Is file located on CDROM? }
  218.     Reserved:array[1..10] of byte;    { Reserved for future use }
  219.   end;
  220.  
  221.   ProtocolRec=record                  { Part of MainCfgRec }
  222.     Invoke     : char;                { Char to select protocol, Z, H etc }
  223.     Description: string[30];          { Short desc, ex "Internal Zmodem" }
  224.     ULBat      : string[8];           { \ITC\[ULBat].BAT to run UL protocol }
  225.     DLBat      : string[8];           { \ITC\[ULBat].BAT to run DL protocol }
  226.   end;
  227.  
  228.   MenuRec=record                      { \ITC\THEMES\xx\MENU\*.MNU }
  229.     Enabled : boolean;                { Is item enabled? }
  230.     Action  : byte;                   { Action, see table in INSTINCT.NFO }
  231.     Command : string[20];             { Command to run item }
  232.     Param   : string[60];             { Parameters to command (INSTINCT.NFO) }
  233.     MinLevel: byte;                   { Min acs req. to run command }
  234.     MaxLevel: byte;                   { Max acs allowed to run command }
  235.     AcsFlag: byte;                    { Flags req. to run command }
  236.     AutoExec: boolean;                { Should item autoexecute? }
  237.     BarEnabled: boolean;              { Is item lightbar controlled? }
  238.     X,Y       : byte;                 { Coordinates of lightbar }
  239.     Selected   : string[100];         { Look of active lightbar }
  240.     NotSelected: string[100];         { Look of inactive lightbar }
  241.   end;
  242.  
  243.  
  244.   ThemeRec=record                     { Part of MainCfgRec }
  245.     Name       :string[20];           { Name of theme }
  246.     Color1, Color2, Color3 :byte;     { The three default colors }
  247.     Selectable :boolean;              { Should users be able to select it? }
  248.     MaxLevel   :byte;                 { Max acs allowed to select theme }
  249.     AcsLevel   :byte;                 { Min acslevel to select theme }
  250.     AcsFlag    :byte;                 { Flags required to select theme }
  251.   end;
  252.  
  253.  
  254.   MainCfgRec=record                   { MAINCFG.DAT }
  255.     BbsName  : string[40];            { Name of board }
  256.     SysopName: string[40];            { Name of System Operator }
  257.     SysopPwd  : string[20];           { Pwd must be entered by cosysops }
  258.     NewUserPwd: string[20];           { NUP (blank=no nup in use) }
  259.     TooSlowPwd: string[20];           { Pwd override slow baud rate }
  260.     SysopLevel: byte;                 { Min acslevel to be cosysop }
  261.  
  262.     Theme : array[1..10] of ThemeRec; { Theme data, see ThemeRec }
  263.     Protocol:array[1..10] of ProtocolRec; { Protcol data, see ProtocolRec }
  264.     DefaultTheme:byte;                { Theme used at login and assigned to
  265.                                           newusers }
  266.     ExternalChat    : string[63];     { Drive:\Path\FileName.Ext to chatter }
  267.     MaxCDkb         : longint;        { Max amount allowed to leech from CD }
  268.     AreaMode        : char;           { Area select mode F/A }
  269.     ULSpace         : longint;        { Min free space to allow UL }
  270.     MainPromptEnters: byte;           { Max enter allowed at prompt }
  271.     MultipleLogin   : boolean;        { Allow multiple logins? }
  272.     AnimationDelay  : byte;           { Default delay in ms for animations }
  273.     Reserved :array [1..500] of byte; { Reserved for future use }
  274.   end;
  275.  
  276.  
  277. const
  278.   NoStrs=250;                         { Highest number of editable string }
  279.  
  280.  
  281.  
  282.  
  283.  
  284.