165 lines
5.2 KiB
C
165 lines
5.2 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$
|
||
|
// ------------------------------------------------------------------
|
||
|
// Maximus derived userfile class.
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#ifndef __gusrmax_h
|
||
|
#define __gusrmax_h
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#include <gtimall.h>
|
||
|
#include <gusrbase.h>
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#if defined(GOLD_CANPACK)
|
||
|
#pragma pack(1)
|
||
|
#endif
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// Maximus structure for USER.BBS and LASTUSER.BBS
|
||
|
|
||
|
struct MaxUsers {
|
||
|
|
||
|
char name[36]; // Caller's name
|
||
|
char city[36]; // Caller's location
|
||
|
|
||
|
char alias[21]; // MAX: user's alias (handle)
|
||
|
char phone[15]; // MAX: user's phone number
|
||
|
|
||
|
word lastread_ptr; // MAX: a num which points to offset in LASTREAD
|
||
|
// file -- Offset of lastread pointer will be
|
||
|
// lastread_ptr*sizeof(int).
|
||
|
|
||
|
word timeremaining; // MAX: time left for current call (xtern prog)
|
||
|
|
||
|
char pwd[16]; // Password
|
||
|
word times; // Number of previous calls to this system
|
||
|
byte help; // Help level
|
||
|
byte rsvd1[2]; // Reserved by Maximus for future use
|
||
|
byte video; // user's video mode (see GRAPH_XXXX)
|
||
|
byte nulls; // Number of Nulls (delays) after <cr>
|
||
|
|
||
|
byte bits; // Bit flags for user (number 1)
|
||
|
|
||
|
word rsvd2; // Reserved by Maximus for future use
|
||
|
|
||
|
word bits2; // Bit flags for user (number 2)
|
||
|
|
||
|
word priv; // Access level
|
||
|
byte rsvd3[19]; // Reserved by Maximus for future use
|
||
|
byte struct_len; // len of struct, divided by 20. SEE ABOVE!
|
||
|
word time; // Time on-line so far today
|
||
|
|
||
|
word delflag; // Used to hold baud rate for O)utside command
|
||
|
// In USER.BBS, usr.flag uses the constants
|
||
|
// UFLAG_xxx, defined earlier in this file.
|
||
|
|
||
|
byte rsvd4[8]; // Reserved by Maximus for future use
|
||
|
|
||
|
byte width; // Width of the caller's screen
|
||
|
byte len; // Height of the caller's screen
|
||
|
word credit; // Matrix credit, in cents
|
||
|
word debit; // Current matrix debit, in cents
|
||
|
|
||
|
word xp_priv; // Priv to demote to, when time or minutes run
|
||
|
// out.
|
||
|
|
||
|
FTime xp_date; // Bit-mapped date of when user expires.
|
||
|
// If zero, then no expiry date.
|
||
|
|
||
|
dword xp_mins; // How many minutes the user has left before
|
||
|
// expiring.
|
||
|
|
||
|
byte xp_flag; // Flags for expiry. See above XFLAG_XXX defs.
|
||
|
byte xp_rsvd;
|
||
|
|
||
|
FTime ludate; // Bit-mapped date of user's last call
|
||
|
|
||
|
dword xkeys; // User's keys (all 32 of 'em)
|
||
|
byte lang; // The user's current language #
|
||
|
byte def_proto; // Default file-transfer protocol
|
||
|
|
||
|
dword up; // K-bytes uploaded, all calls
|
||
|
dword down; // K-bytes downloaded, all calls
|
||
|
dword downtoday; // K-bytes downloaded, today
|
||
|
|
||
|
char msg[10]; // User's last msg area (string)
|
||
|
char files[10]; // User's last file area (string)
|
||
|
|
||
|
byte compress; // Default compression program to use
|
||
|
|
||
|
byte rsvd5;
|
||
|
dword extra;
|
||
|
};
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// Maximus userfile constants
|
||
|
|
||
|
#define MAXIMUS_USERDELETED 0x0001
|
||
|
#define MAXIMUS_USERPERMANENT 0x0002
|
||
|
|
||
|
#define MAXIMUS_PRIV_TWIT 0xFFFE
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
// Maximus userfile class
|
||
|
|
||
|
class MaximusUser : public GUser {
|
||
|
|
||
|
public:
|
||
|
|
||
|
uint maxindex;
|
||
|
int firstread;
|
||
|
MaxUsers* record;
|
||
|
|
||
|
MaximusUser();
|
||
|
~MaximusUser();
|
||
|
|
||
|
int isvalid();
|
||
|
int read();
|
||
|
|
||
|
void founduser();
|
||
|
void recinit(const char* __name);
|
||
|
};
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#if defined(GOLD_CANPACK)
|
||
|
#pragma pack()
|
||
|
#endif
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------
|
||
|
|
||
|
#endif
|
||
|
|
||
|
// ------------------------------------------------------------------
|