This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
deb-goldedplus/goldlib/gall/gusrxbbs.h
2000-02-25 10:15:17 +00:00

211 lines
9.4 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$
// ------------------------------------------------------------------
// AdeptXBBS derived userfile class.
// ------------------------------------------------------------------
#ifndef __gusrxbbs_h
#define __gusrxbbs_h
// ------------------------------------------------------------------
#include <gfile.h>
#include <gusrbase.h>
#include <gtimall.h>
// ------------------------------------------------------------------
#if defined(GOLD_CANPACK)
#pragma pack(1)
#endif
// ------------------------------------------------------------------
// AdeptXBBS structure for "Users" file
// The following flags are used for the 'user.attribs' bits.
#define U_ANSI 0x00000001 // Ansi Movement
#define U_COLOR 0x00000002 // Ansi Color
#define U_HIGHASCII 0x00000004 // High Ascii
#define U_NOMORE 0x00000008 // No? More? Prompts
#define U_NOCLEAR 0x00000010 // Don't Clear Screens
#define U_COLD 0x00000020 // No Hot Keys
#define U_NOSHOWADDRESS 0x00000040 // Don't show address in user list
#define U_NOSHOWPHONE 0x00000080 // Don't show phone numbers in user list
#define U_NOSHOWREAL 0x00000100 // Don't show real names in user list
#define U_NOKILL 0x00000200 // User cannot be killed/deleted
#define U_DELETED 0x00000400 // User marked as deleted
#define U_EXPERT 0x00000800 // User set for expert mode
#define U_TWIT 0x00001000 // User is a twit!
#define U_NEWFILES 0x00002000 // New files search at logon
#define U_NEWMSGS 0x00004000 // New message search at logon
#define U_DLNEWMSGS 0x00008000 // Auto download mail packets at logon
#define U_DLNEWFILELIST 0x00010000 // Auto download new file list at logon
#define U_SEENEWS 0x00020000 // Sees new news
#define U_ASKDL 0x00040000 // Ask logoff before download
#define U_NOVICE 0x00080000 // User set to novice
#define U_NOROLL 0x00100000 // no rolling prompts (obsolete)
#define U_POINTONLY 0x00200000 // Fidonet point mail only
#define U_LOCKEDOUT 0x00400000 // User locked out
#define U_AVAILABLE 0x00800000 // Available for multi-node chat
#define U_LISTPROTECTED 0x01000000 // Not shown in user list
#define U_MISCNEWSOK 0x02000000 // Sees misc. news
#define U_LIMITFLIST 0x04000000 // Limit file list to current area
#define U_EBCDIC 0x08000000 // EBCDIC <-> ASCII Conversion
#define U_VERIFIED 0x10000000 // user call back verified, turn this off, they get verified again.. (if BBS verifies)
#define U_ANSITE2 0x20000000 // User supports Ansi-TE2 Special Chars
#define U_RIPSCRIPT 0x40000000 // User has RIP Support
#define U_AVATAR 0x80000000 // User has Avatar Support
// The following flags are used for 'user.attribs2' bits.
#define U2_FSE 0x00000001 // User Full Screen Message Editor
#define U2_OFF_AFTER_MAIL 0x00000002 // Log off after mail download
#define U2_MONITOR_MAIL 0x00000004 // Monitor mail export/packing
#define U2_INT_NEW_FILES 0x00000008 // include new files in mail packet
#define U2_INC_BULLETS 0x00000010 // include bulletins in mail packet
#define U2_INC_WELCOME 0x00000020 // include welcome screen in mail packet
#define U2_DEFAULT_QWK 0x00000040 // Default use to QWK mail
#define U2_DEFAULT_FIDO 0x00000080 // Default use to Fidonet Point Mail
#define U2_DEFAULT_TEXT 0x00000100 // Default to text export
#define U2_DEFAULT_BLUE 0x00000200 // Default to Bluewave Mail
#define U2_AVTANS 0x00000400 // Can handle both ANSI and Avatar
#define U2_8DOT3 0x00000800 // Convert long names to 8.3 names
struct XbbsUsers {
char name[36]; // Users Name
char handle[36]; // Users Handle
char address[60]; // Address line 1
char address1[60]; // Address line 2
char address2[60]; // Address line 3
char city[20]; // Users City/County
char state[5]; // Users State
char zipcode[10]; // Users ZipCode
char home_phone[21]; // Users home phone number
char data_phone[21]; // Users data phone number
char fax_phone[21]; // Users fax phone number
char bus_phone[21]; // Users business/office number
char interests[78]; // Interest Line
char SysOpComment[78]; // Room for Sysops comment
ushort banktime; // Time in the bank
ushort computer_type; // Computer type
long userid; // User ID
short pointid; // Point Mail ID
time_t initial_logon; // Time/Date of initial logon
time_t expires; // Time/Date user expires
time_t last_logon; // Time/Date of last logon
time_t logon_today; // Last time the user logged on today
short birthyear; // Birth Year
char birthmonth; // Birth Month
char birthday; // Birth day
char gender; // Gender
long credit; // User credit
long minlimit; // Minimum limit
long group; // Group number the user belongs to
long currlastread; // Last read pointer for current area
long time_today; // Number of minutes user used today
long time_per_day; // Time limit per day
long time_per_call; // Time limit per call
long numcalls; // Number of total calls user made to BBS
long ulnum; // Total number of uploads
long dlnum; // Total number of downloads
long ulk; // Total uploads in K-bytes
long dlk; // Total downloads in K-bytes
long uktoday; // Uploads in K-bytes made today
long dktoday; // Download in k-bytes made today
long ukperday; // Max k-bytes user can upload a day
long dkperday; // Max k-byes a user can download a day
long numposts; // Number of messages ever written
long security1; // Security level #1
long security2; // Security level #2
long flags1; // Sysop definable 32 flags
long flags2; // Sysop definable 32 flags
long attribs; // User attributes
long attribs2; // User attributes
short length; // Screen length
short width; // Screen width
short lastmsgarea; // Last message area user was in
short lastfilearea; // Last file area user was in
char lastprotocol; // Last protocol user chose
char lastarchiver; // Last archiver user chose
long forsysop; // unused
char interface_; // obsolete
char exp; // unused
short leech_percent; // File leech ratio
short maxbanktime; // Maximum time user can have in bank
short timecredit; // Current time user has credit for
short callstoday; // Number of calls user made to BBS today
long totalminsever; // Total minutes users has used ever
long netmaildebits; // Total spent on NetMail
time_t lastpwchange; // Time/Date of last password change
time_t lastlistednewfile; // Time/Date user last listed new files
ulong filekcredit; // Amount of file k-byte credit user has
char unixid[8]; // Users Unix Specific ID
byte _unused[94]; // reserved for future use
byte mailtags[128]; // Message areas tagged for off-line mail
byte usermsg[128]; // Message areas user can access
byte userfile[128]; // File areas user can access
ulong passwordcrc; // User password CRC
ulong passwordcrc2; // User password CRC2
ushort max_mail_pkt; // Max msgs to pack for off-line mail
char reasked; // Has user answered the ReAsk questionairre
char reserved[75]; // reserved for future user
};
// ------------------------------------------------------------------
#if defined(GOLD_CANPACK)
#pragma pack()
#endif
// ------------------------------------------------------------------
// AdeptXBBS userfile class
class XbbsUser : public GUser {
public:
uint maxindex;
int firstread;
XbbsUsers* record;
XbbsUser();
~XbbsUser();
int isvalid();
int read();
void recinit(const char* __name);
void add(const char* __name);
};
// ------------------------------------------------------------------
#endif
// ------------------------------------------------------------------