modified: SPLITCHA.PAS

This commit is contained in:
R. Eric Wheeler 2013-06-11 15:36:23 -07:00
parent 860bf057e1
commit cbce28713d
1 changed files with 751 additions and 648 deletions

View File

@ -35,7 +35,9 @@ VAR
UserYPos,
SysOpXPos,
SysOpYPos: Byte;
Cmd : Char;
ChatHelp : Boolean;
ClrHlp : Shortint;
PROCEDURE RequestSysOpChat(CONST MenuOption: Str50);
VAR
User: UserRecordType;
@ -225,14 +227,26 @@ BEGIN
END;
PROCEDURE SysOpChatWindow;
Var SysopNameLength : Integer;
BEGIN
Printf('SPLTCHAT');
IF NOT NoFile THEN exit;
SysopNameLength := ( 80 - Length(General.SysOpName) );
CLS;
ANSIG(1,1);
Prompt('ユヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘク');
Prompt('^4ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ');
ANSIG( ( SysopNameLength - 5 ), 1);
Prompt('^4[ ^5' + General.SysOpName + ' ^4]');
ANSIG(1,12);
Prompt('ニヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘオ CTRL-Z Help ニヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘオ');
Prompt('^4ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ');
ANSIG(31,12);
Prompt('^4[ ^5Ctl^4+^5Z for Help ^4]');
ANSIG(1,23);
Prompt('ヤヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘセ');
Prompt('^4ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ');
ANSIG(3,23);
Prompt('^4[ ^5'+ ThisUser.Name + ' ^4]');
END;
PROCEDURE SysOpSplitChat;
@ -263,6 +277,18 @@ VAR
Counter,
Counter1: Byte;
BEGIN
IF C = #27 THEN { Esc Exit }
BEGIN
InChat := False;
Update_Screen;
END;
IF C = #63 THEN { F5 Exit }
BEGIN
InChat := False;
Update_Screen;
END;
IF (CPos < 79) THEN
BEGIN
ANSIG(XPos,YPos);
@ -383,6 +409,7 @@ VAR
END;
PROCEDURE DOCarriageReturn(VAR CPos,XPos,YPos: Byte; VAR S: AStr);
Var i : Integer;
BEGIN
S[0] := Chr(CPos - 1);
@ -391,7 +418,27 @@ VAR
Inc(YPos);
XPos := 2;
ANSIG(XPos,YPos);
{ Fix Splitscreen so user and op stay on their own sides }
If (YPos = 12) Then
Begin
For i := 2 To 10 Do
Begin
ANSIG(1,i);
Clear_EOL;
End;
YPos := 2;
End
Else If (YPos = 23) Then
Begin
For i := 13 To 21 Do
Begin
ANSIG(1,i);
Clear_EOL;
End;
YPos := 13;
End;
ANSIG(XPos,YPos);
(* Do Cmds Here or add as Ctrl *)
@ -508,6 +555,14 @@ BEGIN
DoChar(C,SysOpCPos,SysOpXPos,SysOpYPos,SysOpLine,SysOpChat,SysOpLastLineStr)
ELSE
DoChar(C,UserCPos,UserXPos,UserYPos,UserLine,UserChat,UserLastLineStr);
3 : BEGIN
FOR ClrHlp := 18 TO 21 DO {Ctrl+Z Help Clear - (Ctrl+C) }
BEGIN
ANSIG(38,ClrHlp);
Clear_EOL;
END;
ANSIG(SaveWhereX,SaveWhereY);
END;
7 : IF (OutCom) THEN
Com_Send(^G);
8 : IF (WColor) THEN
@ -534,7 +589,55 @@ BEGIN
ELSE
DOBackSpaceLine(UserCPos,UserXpos,UserYPos,UserStr);
26 : ; { Help }
26 : Begin { Ctrl+Z }
PrintF('CHATHELP');
If Not nofile Then
Begin
OneK(Cmd,#27#26,FALSE,FALSE);
Case Ord(Cmd) Of
26,27 : SysOpChatWindow; { Escape }
End; { /case }
End { /If Not }
Else
Begin
ChatHelp := TRUE;
ANSIG(38,18);
Print('^5Chat Help |15: ^4(^5Ctrl+C ^5:: ^4Clear Help^5)');
ANSIG(38,19);
Print('^5Ctrl+G |15: ^4Hangup ^5Ctrl+W |15: ^4Delete Word');
ANSIG(38,20);
Print('^5Ctrl+H |15: ^4Backspace ^5Ctrl+X |15: ^4Delete Line');
ANSIG(38,21);
Print('^5Ctrl+H |15: ^4Tab ^5Ctrl+Q |15: ^4Quit|07');
ANSIG(SaveWhereX,SaveWhereY);
End; { /If Not else case }
End; { /26 } { Help }
END;
(*