Added Menu Command *T to toggle sysop availablility

Added Menu Command 1L for oneliners
Added Oneliners UNIT.
New Files :
MISC/ONELH.* - Oneliners headers
MISC/ONELE.* - Oneliners Footer
MISC/ONELM.* - Oneliners Middle
ONELM.* Options :
~AN (Anon - Yes/No)
~AT (Anon - True/False)
~DA (Date Added)
~DE (Date Edited - Not Used Yet)
~OL (The Oneliner)
~RN (Record Number)
~U# (User ID with '#')
~U1 (User ID without '#')
~UN (User Name)
~UL (User Name Lowercase)
~US (First 2 Letters of Username - iNiQUiTY Style)
~UU (First 2 letters of username lowercase)

	modified:   MENUS.PAS
	new file:   MISC/ONELE.ANS
	new file:   MISC/ONELE.ASC
	new file:   MISC/ONELH.ANS
	new file:   MISC/ONELH.ASC
	new file:   MISC/ONELM.ASC
	new file:   ONELINER.PAS
	modified:   RENEGADE.PAS
This commit is contained in:
sk-5 2013-06-28 09:24:25 -07:00
parent cdf188cf6a
commit 5e81182bf7
8 changed files with 1414 additions and 1055 deletions

View File

@ -38,6 +38,7 @@ USES
CUser,
Doors,
Email,
Events,
File0,
File1,
File2,
@ -81,7 +82,8 @@ USES
SysOp12,
TimeBank,
TimeFunc,
Vote;
Vote,
OneLiner;
(*
@ -653,6 +655,9 @@ BEGIN
ELSE
NoCmd := TRUE;
END;
'1' : CASE Cmd[2] OF
'L' : DoOneLiners;
END;
'A' : CASE Cmd[2] OF
'A','C','M','T' :
DoArcCommand(Cmd[2]);
@ -971,6 +976,18 @@ BEGIN
SysOpLog('* Conference Editor');
ConferenceEditor;
END;
'T' : IF (CheckPW) THEN
BEGIN
mem[Seg0040:$0017] := mem[Seg0040:$0017] XOR 16;
IF (SysOpAvailable) THEN
BEGIN
SysOpLog('* Turned on chat availablity');
END
ELSE
BEGIN
SysOpLog('* Turned off chat availablity');
END;
END;
'U' : IF (CheckPW) THEN
BEGIN
SysOpLog('* User Editor');

1
SOURCE/MISC/ONELE.ANS Normal file
View File

@ -0,0 +1 @@
%LF トトトトトトトトトトトトトトトト トトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトト トトトトトトトトトトトトトトト%LF

1
SOURCE/MISC/ONELE.ASC Normal file
View File

@ -0,0 +1 @@
%LF |15トトト |07トト トト トト|08トトト トト トト ト |03トト トト ト ト |11トト ト ト トト |03トト トト ト ト |08トトト トト トト|07 トトト トト |15トト トト%LF

7
SOURCE/MISC/ONELH.ANS Normal file
View File

@ -0,0 +1,7 @@
[?7hロロロロロロロ゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚ ゚゚ロロロ ゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚゚ロロロロロロロ
゚゚゚゚゚゚゚゚ イイロロロロロ イイロロロロロ イイロロロロ イロロ イロロ イイロロロロロ イイロロロロ イイロロロロロ イイロロロロ ゚゚゚゚゚゚゚゚
ロロロロロロロロ イロロロロロロ イロロロロロロ イロロロ ゚ ロロロ ロロロ イロロロロロロ イロロロ ゚ イロロ゚ロロロ イロロロ ゚ ロロロロロロロロ
ロロロロロロロロ ロロロ ロロロ ロロロ ロロロ ロロロロロ ロロロ ロロロ ロロロ ロロロ ロロロロロ ロロロロロロロ ロロロロロロ ロロロロロロロロ
ロロロロロロロロ ロロロロロロロ ロロロ ロロロ ロロロロ ワ ロロロ ロロロ ロロロ ロロロ ロロロロ ワ ロロロ ロロ ワ ロロロロ ロロロロロロロロ
ワワワワワワワワ ロロロロロイロ ロロロ ロイロ ロロロロロイ ロ゚ロ ロ゚ロ ロロロ ロイロ ロロロロロイ ロイロ ロロイ ロロロロロー ワワワワワワワワ
トトトトトトトトトトトトトトトト トトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトト トトトトトトトトトトトトトトト%LF

12
SOURCE/MISC/ONELH.ASC Normal file
View File

@ -0,0 +1,12 @@
ロロロロロロ
ロロロ゚゚゚ トトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトト
゚゚゚ ワロロロ゚゚ロロロワ ゚゙ロロロ゚ロロロワ ワロロロ゚ロロロロ ロロロロ ロロロロ ゚゙ロロロ゚ロロロワ ワロロロ゚ロロロロ
ー ゙ロロロン ゙ロロロン ロロロロ ゙ロロロン ゙ロロロン ロロロロ ロロロロ ロロロロ ロロロロ ゙ロロロン ゙ロロロン ロロロロ ー
゚ロ ーーロロ ロローー ロロロー ロローー ーーロロワワロロロロ ロロロー ロロロー ロロロー ロローー ーーロロワワロロロロ ゚゚ロ
ロ アアーロ ローアア ローーア ローアア アアーロ ワワワワ ローーア ローーア ローーア ローアア アアーロ ワワワワ ロ
ロワヷイアアン ゙アアイン ーアイイ ゙アアイン ゙イアアン ロローロ ーアイイ ーアイイ ーアイイ ゙アアイン ゙イアアン ロローロ rlロ
ー ゚ロロロワワロロロ゚ イイロロ ロロロ゚ ゚ロロロワイアアー イイロロワワ イイロロ イイロロ ロロロ゚ ゚ロロロワイアアー v!ー
トトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトト ワワワワロロ
ロロロロロロ

1
SOURCE/MISC/ONELM.ASC Normal file
View File

@ -0,0 +1 @@
|03~OL |11 ... |15~UN{16%LF

320
SOURCE/ONELINER.PAS Normal file
View File

@ -0,0 +1,320 @@
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
Unit OneLiner;
INTERFACE
Uses
Common,
Timefunc,
Mail1;
Type
OneLinerRecordType = {$IFDEF WIN32} Packed {$ENDIF} Record
RecordNum : LongInt;
OneLiner : String[55];
UserID : LongInt;
UserName : String[36];
DateAdded,
DateEdited : UnixTime;
Anonymous : Boolean;
End;
PROCEDURE DoOneLiners;
PROCEDURE OneLiner_Add;
PROCEDURE OneLiner_View;
FUNCTION OneLiner_Random : STRING;
FUNCTION ToLower( S : STRING ) : STRING;
IMPLEMENTATION
VAR
OneLinerListFile : FILE OF OneLinerRecordType;
OneLineRec : OneLinerRecordType;
FUNCTION ToLower( S : STRING ) : STRING;
VAR
i : BYTE;
BEGIN
FOR i := 1 TO Length(S) DO
BEGIN
IF S[i] IN ['A'..'Z'] THEN
S[i] := Chr(Ord(S[i]) + 32);
END;
ToLower := S;
END;
FUNCTION OneLinerListMCI(CONST S: ASTR; Data1,Data2: Pointer): STRING;
VAR
OneLinerListPtr: ^OneLinerRecordType;
User: UserRecordType;
TmpStr : String;
BEGIN
OneLinerListPtr := Data1;
OneLinerListMCI := S;
CASE S[1] OF
'A' : CASE S[2] OF
'N' : OneLinerListMCI := ShowYesNo(OneLinerListPtr^.Anonymous); { Anon - Yes/No }
'T' : OneLinerListMCI := AonOff(OneLinerListPtr^.Anonymous, 'True', 'False'); { Anon - True/False }
END;
'D' : CASE S[2] OF
'A' : OneLinerListMCI := Pd2Date(OneLinerListPtr^.DateAdded); { Date Added }
'E' : OneLinerListMCI := Pd2Date(OneLinerListPtr^.DateEdited); { Date Edited - Not Used }
END;
'O' : CASE S[2] OF
'L' : OneLinerListMCI := OneLinerListPtr^.OneLiner; { The Oneliner }
END;
'R' : CASE S[2] OF
'N' : OneLinerListMCI := IntToStr(OneLinerListPtr^.RecordNum); { Oneliner Record Number }
END;
'U' : CASE S[2] OF
'#' : BEGIN { User ID }
IF (OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := '';
IF (OneLinerListPtr^.Anonymous) AND (SysOp) THEN
OneLinerListMCI := '#' + IntToStr(OneLinerListPtr^.UserID);
IF (NOT OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := '#' + IntToStr(OneLinerListPtr^.UserID);
END;
'1' : BEGIN { User ID Without # }
IF (OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := '';
IF (OneLinerListPtr^.Anonymous) AND (SysOp) THEN
OneLinerListMCI := IntToStr(OneLinerListPtr^.UserID);
IF (NOT OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := IntToStr(OneLinerListPtr^.UserID);
END;
'N' : BEGIN { User Name }
LoadURec(User,OneLinerListPtr^.UserID);
IF (OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := 'Anon';
IF (OneLinerListPtr^.Anonymous) AND (SysOp) THEN
OneLinerListMCI := Caps(User.Name) + ' ^4(^5A^4)';
IF (NOT OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := Caps(User.Name);
END;
'L' : BEGIN { User Name Lower }
LoadURec(User,OneLinerListPtr^.UserID);
IF (OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := 'anon';
IF (OneLinerListPtr^.Anonymous) AND (SysOp) THEN
OneLinerListMCI := ToLower(User.Name) + ' ^4(^5a^4)';
IF (NOT OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := ToLower(User.Name);
END;
'S' : BEGIN { User Name Short }
LoadURec(User,OneLinerListPtr^.UserID);
IF (OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := 'Anon';
IF (OneLinerListPtr^.Anonymous) AND (SysOp) THEN
OneLinerListMCI := Copy(User.Name,1,2) + ' ^4(^5A^4)';
IF (NOT OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := Copy(User.Name,1,2);
END;
'U' : BEGIN { User Name Short Lower }
LoadURec(User,OneLinerListPtr^.UserID);
IF (OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := 'anon';
IF (OneLinerListPtr^.Anonymous) AND (SysOp) THEN
OneLinerListMCI := ToLower(Copy(User.Name,1,2)) + ' ^4(^5a^4)';
IF (NOT OneLinerListPtr^.Anonymous) THEN
OneLinerListMCI := ToLower(Copy(User.Name,1,2));
END;
END;
END;
END;
FUNCTION OneLinerList_Exists: Boolean;
VAR
OneLinerListFile: FILE OF OneLinerRecordType;
FSize: Longint;
FExist: Boolean;
BEGIN
FSize := 0;
FExist := Exist(General.DataPath+'ONELINER.DAT');
IF (FExist) THEN
BEGIN
Assign(OneLinerListFile,General.DataPath+'ONELINER.DAT');
Reset(OneLinerListFile);
FSize := FileSize(OneLinerListFile);
Close(OneLinerListFile);
END;
IF (NOT FExist) OR (FSize = 0) THEN
BEGIN
NL;
PrintF('ONELH');
IF (NoFile) THEN
BEGIN
CLS; NL;
Print(Centre('^4' + General.BBSName + ' One Liners'));
Print(Centre('^5ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ'));
END;
Print(' ^4There are currently no One Liners.');
NL;
PrintF('ONELE');
IF (NoFile) THEN
Print(Centre('^5ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ'));
SysOpLog('^5* The ONELINER.DAT file is missing.');
END;
OneLinerList_Exists := (FExist) AND (FSize <> 0);
END;
PROCEDURE DisplayError(FName: ASTR; VAR FExists: Boolean);
BEGIN
NL;
PrintACR('|12ú |09The '+FName+'.* File is missing.');
PrintACR('|12ú |09Please, inform the Sysop!');
SysOpLog('The '+FName+'.* file is missing.');
FExists := FALSE;
END;
FUNCTION OneLinerAddScreens_Exists: Boolean;
VAR
FExistsH,
FExistsM,
FExistsE: Boolean;
BEGIN
FExistsH := TRUE;
FExistsM := TRUE;
FExistsE := TRUE;
(*IF (NOT ReadBuffer('ONELH')) THEN
DisplayError('ONELH',FExistsH); *)
IF (NOT ReadBuffer('ONELM')) THEN
DisplayError('ONELM',FExistsM);
(*IF (NOT ReadBuffer('ONELE')) THEN
DisplayError('ONELE',FExistsE); *)
OneLinerAddScreens_Exists := (*(FExistsH) AND *)(FExistsM) (*AND (FExistsE)*);
END;
Procedure AskOneLinerQuestions(VAR OneLinerList: OneLinerRecordType);
{Var MHeader : MHeaderRec; }
Begin
WHILE (NOT Abort) AND (NOT Hangup) DO
Begin
NL;
Print('^4 Enter your one liner');
Prt(' ^5:');
MPL(76);
InputMain(OneLinerList.OneLiner,(SizeOf(OneLinerList.OneLiner) - 1),[InterActiveEdit,ColorsAllowed]);
NL;
Abort := (OneLinerList.OneLiner = '');
IF (Abort) THEN
Exit
ELSE
OneLinerList.Anonymous := PYNQ('^4 Post Anonymous? ^5',0,FALSE);
Exit;
End;
End;
PROCEDURE OneLiner_Add;
VAR
Data2: Pointer;
OneLinerList: OneLinerRecordType;
BEGIN
IF (OneLinerAddScreens_Exists) THEN
BEGIN
NL;
OneLiner_View;
IF PYNQ('^4 Add a one liner? ^5',0, FALSE) THEN
BEGIN
FillChar(OneLinerList,SizeOf(OneLinerList),0);
AskOneLinerQuestions(OneLinerList);
IF (NOT Abort) THEN
BEGIN
PrintF('ONELH');
IF (NoFile) THEN
BEGIN
CLS; NL;
Print(Centre('^4' + General.BBSName + ' One Liners'));
Print(Centre('^5ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ'));
END;
Print(' ^4'+OneLinerList.OneLiner);
PrintF('ONELE');
IF (NoFile) THEN
Print(Centre('^5ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ'));
NL;
IF (PYNQ('^4 Add this oneliner? ^5',0,TRUE)) THEN
BEGIN
Assign(OneLinerListFile,General.DataPath+'ONELINER.DAT');
IF (Exist(General.DataPath+'ONELINER.DAT')) THEN
Reset(OneLinerListFile)
ELSE
Rewrite(OneLinerListFile);
Seek(OneLinerListFile,FileSize(OneLinerListFile));
OneLinerList.UserID := UserNum;
OneLinerList.DateAdded := GetPackDateTime;
OneLinerList.DateEdited := OneLinerList.DateAdded;
OneLinerList.RecordNum := (FileSize(OneLinerListFile) + 1);
Write(OneLinerListFile,OneLinerList);
Close(OneLinerListFile);
LastError := IOResult;
SysOpLog('Added Oneliner : '+OneLinerList.OneLiner+'.');
END;
END;
END;
END;
END;
PROCEDURE OneLiner_View;
VAR
Data2: Pointer;
OneLinerList: OneLinerRecordType;
OnRec: Longint;
Cnt : Byte;
BEGIN
IF (OneLinerList_Exists) AND (OneLinerAddScreens_Exists) THEN
BEGIN
Assign(OneLinerListFile,General.DataPath+'ONELINER.DAT');
Reset(OneLinerListFile);
ReadBuffer('ONELM');
AllowContinue := TRUE;
Abort := FALSE;
PrintF('ONELH');
IF (NoFile) THEN
BEGIN
CLS; NL;
Print(Centre('^4' + General.BBSName + ' One Liners'));
Print(Centre('^5ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ'));
NL;
END;
OnRec := 1;
Cnt := (FileSize(OneLinerListFile));
{WHILE (OnRec <= FileSize(OneLinerListFile)) AND (NOT Abort) AND (NOT HangUp) DO}
FOR Cnt := (FileSize(OneLinerListFile)) DOWNTO 1 DO
BEGIN
Seek(OneLinerListFile,(Cnt-1));
Read(OneLinerListFile,OneLinerList);
DisplayBuffer(OneLinerListMCI,@OneLinerList,Data2);
Inc(OnRec);
IF ((OnRec-1) = 10) THEN
Break
ELSE
OnRec := OnRec;
END;
Close(OneLinerListFile);
LastError := IOResult;
IF (NOT Abort) THEN
PrintF('ONELE');
IF (NoFile) THEN
Print(Centre('^5ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ'));
AllowContinue := FALSE;
SysOpLog('^5* ^4'+ ThisUser.Name + '^5 Viewed the OneLiners.');
END;
END;
Function OneLiner_Random : String;
Begin
End;
Procedure DoOneLiners; { To-Do : Variable Number of One Liners To Display }
Begin
OneLiner_Add;
End;
End.

View File

@ -67,7 +67,7 @@ USES
{$O ShortMsg } {$O CUser } {$O Doors } {$O ExecBat } {$O Automsg }
{$O MyIO } {$O Menus2 } {$O Menus3 } {$O LineChat } {$O Stats }
{$O Events } {$O BBSList } {$O Common4 } {$O File7 } {$O SplitCha }
{$O Sysop2o } {$O Sysop5 } {$O SysOp12 }
{$O Sysop2o } {$O Sysop5 } {$O SysOp12 } {$O OneLiner }
CONST
NeedToHangUp: Boolean = FALSE;