Renegade-1.19/SOURCE/SYSOP2A.PAS

428 lines
12 KiB
Plaintext

{$IFDEF WIN32}
{$I DEFINES.INC}
{$ENDIF}
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
UNIT SysOp2A;
INTERFACE
PROCEDURE MainBBSConfiguration;
IMPLEMENTATION
USES
Crt,
Common,
SysOp7,
TimeFunc;
{
RGSysCfgStr(1,FALSE)
$Main_BBS_Configuration
%CL^5Main BBS Configuration:^1
^1A. BBS name/number : ^5%BN ^1(^5%BP^1)
^1B. Telnet Url : ^5%TN
^1C. SysOp's name : ^5%SN{15 ^1D. Renegade Version : ^5%VR
^1E. SysOp chat hours : ^5%CS ^1F. Minimum baud hours : ^5%BL
^1G. Regular DL hours : ^5%DH ^1H. Minimum baud DL hrs: ^5%BM
^1I. BBS Passwords : ^1J. Pre-event warning : ^5%ET seconds
^1K. System Menus : ^1L. Bulletin Prefix : ^5%PB
^1M. MultiNode support: ^5%MN ^1N. Network mode : ^5%NM
^10. Main data files dir. : ^5%PD
^11. Miscellaneous Files dir.: ^5%PM
^12. Message file storage dir: ^5%P1
^13. Nodelist (Version 7) dir: ^5%P2
^14. Log files/trap files dir: ^5%PL
^15. Temporary directory : ^5%PT
^16. Protocols directory : ^5%PP
^17. Archivers directory : ^5%P7
^18. File attach directory : ^5%PF
^19. RAM drive/MultiNode path: ^5%P3
Enter selection [^5A^4-^5N^4,^50^4-^59^4,^5Q^4=^5Quit^4]: @
$
RGSysCfgStr(2,TRUE)
$Main_BBS_Configuration_BBS_Name
%LFNew BBS name: @
$
RGSysCfgStr(3,TRUE)
$Main_BBS_Configuration_BBS_Phone
%LFNew BBS phone number: @
$
RGSysCfgStr(4,TRUE)
$Main_BBS_Configuration_Telnet_URL
%LF^4New Telnet Url:%LF^4: @
$
RGSysCfgStr(5,TRUE)
$Main_BBS_Configuration_SysOp_Name
%LFNew SysOp name: @
$
RGNoteStr(0,FALSE)
$Internal_Use_Only
%LF^7This is for internal use only.
%PA
$
RGNoteStr(1,FALSE)
$Only_Change_Locally
%LF^7This can only be changed locally.
%PA
$
RGSysCfgStr(6,TRUE)
$Main_BBS_Configuration_SysOp_Chat_Hours
%LFDo you want to declare sysop chat hours? @
$
RGSysCfgStr(7,TRUE)
$Main_BBS_Configuration_Minimum_Baud_Hours
%LFDo you want to declare hours people at the minimum baud can logon? @
$
RGSysCfgStr(8,TRUE)
$Main_BBS_Configuration_Download_Hours
%LFDo you want to declare download hours? @
$
RGSysCfgStr(9,TRUE)
$Main_BBS_Configuration_Minimum_Baud_Download_Hours
%LFDo you want to declare hours people at minimum baud can download? @
$
RGSysCfgStr(10,FALSE)
$Main_BBS_Configuration_SysOp_Password_Menu
%CL^5System Passwords:^1
^1A. SysOp password : ^5%P4
^1B. New user password : ^5%P5
^1C. Baud override password: ^5%P6
Enter selection [^5A^4-^5C^4,^5Q^4=^5Quit^4]: @
$
RGSysCfgStr(11,TRUE)
$Main_BBS_Configuration_SysOp_Password
%LFNew SysOp password: @
$
RGSysCfgStr(12,TRUE)
$Main_BBS_Configuration_New_User_Password
%LFNew new-user password: @
$
RGSysCfgStr(13,TRUE)
$Main_BBS_Configuration_Baud_Override_Password
%LFNew minimum baud rate override password: @
$
RGSysCfgStr(14,TRUE)
$Main_BBS_Configuration_Pre_Event_Time
%LFNew pre-event warning time@
$
RGSysCfgStr(15,FALSE)
$Main_BBS_Configuration_System_Menus
%CL^5System Menus:^1
^11. Global : ^5%M1
^12. All Start : ^5%M2
^13. Shutle logon : ^5%M3
^14. New user info: ^5%M4
^15. Message Read : ^5%M5
^16. File List : ^5%M6
Enter selection [^51^4-^56^4,^5Q^4=^5Quit^4]: @
$
RGSysCfgStr(16,TRUE)
$Main_BBS_Configuration_System_Menus_Global
%LFMenu for global commands (0=None)@
$
RGSysCfgStr(17,TRUE)
$Main_BBS_Configuration_System_Menus_Start
%LFMenu to start all users at@
$
RGSysCfgStr(18,TRUE)
$Main_BBS_Configuration_System_Menus_Shuttle
%LFMenu for shuttle logon (0=None)@
$
RGSysCfgStr(19,TRUE)
$Main_BBS_Configuration_System_Menus_New_User
%LFMenu for new user information@
$
RGSysCfgStr(20,TRUE)
$Main_BBS_Configuration_System_Menus_Message_Read
%LFMenu for message read@
$
RGSysCfgStr(21,TRUE)
$Main_BBS_Configuration_System_Menus_File_Listing
%LFMenu for file listing@
$
RGNoteStr(2,FALSE)
$Invalid_Menu_Number
%LF^7Invalid menu number.
%PA
$
RGSysCfgStr(22,TRUE)
$Main_BBS_Configuration_Bulletin_Prefix
%LFDefault bulletin prefix: @
$
RGNoteStr(1,FALSE)
$Only_Change_Locally
%LF^7This can only be changed locally.
%PA
$
RGSysCfgStr(23,TRUE)
$Main_BBS_Configuration_Local_Security
%LFDo you want local security to remain on? @
$
RGSysCfgStr(24,TRUE)
$Main_BBS_Configuration_Data_Path
%LF^4New data files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(25,TRUE)
$Main_BBS_Configuration_Misc_Path
%LF^4New miscellaneous files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(26,TRUE)
$Main_BBS_Configuration_Msg_Path
%LF^4New message files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(27,TRUE)
$Main_BBS_Configuration_NodeList_Path
%LF^4New nodelist files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(28,TRUE)
$Main_BBS_Configuration_Log_Path
%LF^4New sysop log files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(29,TRUE)
$Main_BBS_Configuration_Temp_Path
%LF^4New temporary files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(30,TRUE)
$Main_BBS_Configuration_Protocol_Path
%LF^4New protocol files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(31,TRUE)
$Main_BBS_Configuration_Archive_Path
%LF^4New archive files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(32,TRUE)
$Main_BBS_Configuration_Attach_Path
%LF^4New file attach files path (^5End with a ^4"^5\^4"):%LF^4: @
$
RGSysCfgStr(33,TRUE)
$Main_BBS_Configuration_MultNode_Path
%LF^4New multi-node files path (^5End with a ^4"^5\^4"):%LF^4: @
$
}
PROCEDURE GetTimeRange(CONST RGStrNum: LongInt; VAR LoTime,HiTime: SmallInt);
VAR
TempStr: Str5;
LowTime,
HighTime: Integer;
BEGIN
IF (NOT (PYNQ(RGSysCfgStr(RGStrNum,TRUE),0,FALSE))) THEN
BEGIN
LowTime := 0;
HighTime := 0;
END
ELSE
BEGIN
NL;
Print('All entries in 24 hour time. Hour: (0-23), Minute: (0-59)');
NL;
Prt('Starting time: ');
MPL(5);
InputFormatted('',TempStr,'##:##',TRUE);
IF (StrToInt(Copy(TempStr,1,2)) IN [0..23]) AND (StrToInt(Copy(TempStr,4,2)) IN [0..59]) THEN
LowTime := ((StrToInt(Copy(TempStr,1,2)) * 60) + StrToInt(Copy(TempStr,4,2)))
ELSE
LowTime := 0;
NL;
Prt('Ending time: ');
MPL(5);
InputFormatted('',TempStr,'##:##',TRUE);
IF (StrToInt(Copy(TempStr,1,2)) IN [0..23]) AND (StrToInt(Copy(TempStr,4,2)) IN [0..59]) THEN
HighTime := ((StrToInt(Copy(TempStr,1,2)) * 60) + StrToInt(Copy(TempStr,4,2)))
ELSE
HighTime := 0;
END;
NL;
Print('Hours: '+PHours('Always allowed',LowTime,HighTime));
NL;
IF PYNQ('Are you sure this is what you want? ',0,FALSE) THEN
BEGIN
LoTime := LowTime;
HiTime := HighTime;
END;
END;
PROCEDURE MainBBSConfiguration;
VAR
LineFile: FILE OF LineRec;
Cmd: Char;
Changed: Boolean;
BEGIN
Assign(LineFile,General.DataPath+'NODE'+IntToStr(ThisNode)+'.DAT');
Reset(LineFile);
Seek(LineFile,0);
Read(LineFile,Liner);
REPEAT
WITH General DO
BEGIN
Abort := FALSE;
Next := FALSE;
RGSysCfgStr(1,FALSE);
OneK(Cmd,'QABCDEFGHIJKLMN0123456789'^M,TRUE,TRUE);
CASE Cmd OF
'A' : BEGIN
InputWNWC(RGSysCfgStr(2,TRUE),BBSName,(SizeOf(BBSName) - 1),Changed);
InputFormatted(RGSysCfgStr(3,TRUE),BBSPhone,'###-###-####',FALSE);
END;
'B' : InputWN1(RGSysCfgStr(4,TRUE),Liner.NodeTelnetURL,(SizeOf(Liner.NodeTelnetURL) - 1),[InteractiveEdit],Changed);
'C' : InputWN1(RGSysCfgStr(5,TRUE),SysOpName,(SizeOf(SysOpName) - 1),[InterActiveEdit],Changed);
'D' : RGNoteStr(0,FALSE);
'E' : IF (InCom) THEN
RGNoteStr(1,FALSE)
ELSE
GetTimeRange(6,lLowTime,HiTime);
'F' : GetTimeRange(7,MinBaudLowTime,MinBaudHiTime);
'G' : GetTimeRange(8,DLLowTime,DLHiTime);
'H' : GetTimeRange(9,MinBaudDLLowTime,MinBaudDLHiTime);
'I' : BEGIN
REPEAT
RGSysCfgStr(10,FALSE);
OneK(Cmd,^M'ABC',TRUE,TRUE);
CASE Cmd OF
'A' : InputWN1(RGSysCfgStr(11,TRUE),SysOpPw,(SizeOf(SysOpPW) - 1),[InterActiveEdit,UpperOnly],Changed);
'B' : InputWN1(RGSysCfgStr(12,TRUE),NewUserPW,(SizeOf(SysOpPW) - 1),[InterActiveEdit,UpperOnly],Changed);
'C' : InputWN1(RGSysCfgStr(13,TRUE),MinBaudOverride,(SizeOf(SysOpPW) - 1),
[InterActiveEdit,UpperOnly],Changed);
END;
UNTIL (Cmd = ^M) OR (HangUp);
Cmd := #0;
END;
'J' : InputByteWOC(RGSysCfgStr(14,TRUE),EventWarningTime,[DisplayValue,NumbersOnly],0,255);
'K' : BEGIN
REPEAT
RGSysCfgStr(15,FALSE);
OneK(Cmd,^M'123456Q',TRUE,TRUE);
CASE Cmd OF
'1' : FindMenu(RGSysCfgStr(16,TRUE),GlobalMenu,0,NumMenus,Changed);
'2' : FindMenu(RGSysCfgStr(17,TRUE),AllStartMenu,1,NumMenus,Changed);
'3' : FindMenu(RGSysCfgStr(18,TRUE),ShuttleLogonMenu,0,NumMenus,Changed);
'4' : FindMenu(RGSysCfgStr(19,TRUE),NewUserInformationMenu,1,NumMenus,Changed);
'5' : FindMenu(RGSysCfgStr(20,TRUE),MessageReadMenu,1,NumMenus,Changed);
'6' : FindMenu(RGSysCfgStr(21,TRUE),FileListingMenu,1,NumMenus,Changed);
END;
UNTIL (Cmd IN [^M,'Q']) OR (HangUp);
Cmd := #0;
END;
'L' : InputWN1(RGSysCfgStr(22,TRUE),BulletPrefix,(SizeOf(BulletPrefix) - 1),[InterActiveEdit,UpperOnly],Changed);
'M' : IF (InCom) THEN
RGNoteStr(1,FALSE)
ELSE
BEGIN
MultiNode := (NOT MultiNode);
SaveGeneral(FALSE);
ClrScr;
Writeln('Please restart Renegade.');
Halt;
END;
'N' : BEGIN
NetworkMode := (NOT NetworkMode);
IF (NetworkMode) THEN
LocalSec := TRUE
ELSE
LocalSec := PYNQ(RGSysCfgStr(23,TRUE),0,FALSE);
END;
'0' : InputPath(RGSysCfgStr(24,TRUE),DataPath,TRUE,FALSE,Changed);
'1' : InputPath(RGSysCfgStr(25,TRUE),MiscPath,TRUE,FALSE,Changed);
'2' : InputPath(RGSysCfgStr(26,TRUE),MsgPath,TRUE,FALSE,Changed);
'3' : InputPath(RGSysCfgStr(27,TRUE),NodePath,TRUE,FALSE,Changed);
'4' : InputPath(RGSysCfgStr(28,TRUE),LogsPath,TRUE,FALSE,Changed);
'5' : InputPath(RGSysCfgStr(29,TRUE),TempPath,FALSE,FALSE,Changed);
'6' : InputPath(RGSysCfgStr(30,TRUE),ProtPath,TRUE,FALSE,Changed);
'7' : InputPath(RGSysCfgStr(31,TRUE),ArcsPath,TRUE,FALSE,Changed);
'8' : InputPath(RGSysCfgStr(32,TRUE),FileAttachPath,TRUE,FALSE,Changed);
'9' : InputPath(RGSysCfgStr(33,TRUE),lMultPath,TRUE,FALSE,Changed);
END;
END;
UNTIL (Cmd = 'Q') OR (HangUp);
Seek(LineFile,0);
Write(LineFile,Liner);
Close(LineFile);
LastError := IOResult;
END;
END.