Alpha 20 dev begins
This commit is contained in:
parent
222bc9a5fa
commit
9b0339662e
|
@ -4806,3 +4806,33 @@
|
||||||
|
|
||||||
! Fixed a bug that could corrupt a message and/or crash when editing a
|
! Fixed a bug that could corrupt a message and/or crash when editing a
|
||||||
message with a lot of lines.
|
message with a lot of lines.
|
||||||
|
|
||||||
|
+ New option: "Ask Theme" in the General Settings. If this is set to true
|
||||||
|
Mystic will prompt the user to select a theme after the graphics are
|
||||||
|
detected upon each connection.
|
||||||
|
|
||||||
|
+ Added new MPL function: Real2Str this takes a string and decimal place
|
||||||
|
value. Example:
|
||||||
|
|
||||||
|
Var
|
||||||
|
R : Real;
|
||||||
|
Begin
|
||||||
|
R := 1234.1234;
|
||||||
|
WriteLn (Real2Str(R, 2)); // Will print 1234.12
|
||||||
|
End
|
||||||
|
|
||||||
|
+ The GE menu command (edit user settings) option 14 (select theme) can now
|
||||||
|
have a section option which specifies the base filename of a theme. For
|
||||||
|
example, if the theme filename is "english" you can do:
|
||||||
|
|
||||||
|
Menu command: GE
|
||||||
|
Data: 14 english
|
||||||
|
|
||||||
|
This will cause the theme to be selected automatically, without prompting
|
||||||
|
the user for anything. If a second parameter is not supplied, the user
|
||||||
|
will be prompted to select a theme.
|
||||||
|
|
||||||
|
+ Copy/Paste is now added/fixed for menu commands and menu execution lists
|
||||||
|
in the new menu editor.
|
||||||
|
|
||||||
|
+ NodeSpy in Windows now uses OS named pipes instead of Disk I/O.
|
||||||
|
|
|
@ -310,10 +310,12 @@ Const
|
||||||
Status2 = ' (TAB) Switch (/) Commands ';
|
Status2 = ' (TAB) Switch (/) Commands ';
|
||||||
Grid = '(Grid) Item # to jump to on keypress ';
|
Grid = '(Grid) Item # to jump to on keypress ';
|
||||||
Var
|
Var
|
||||||
Box : TAnsiMenuBox;
|
Box : TAnsiMenuBox;
|
||||||
List : TAnsiMenuList;
|
List : TAnsiMenuList;
|
||||||
Form : TAnsiMenuForm;
|
Form : TAnsiMenuForm;
|
||||||
Topic : String;
|
Topic : String;
|
||||||
|
CopyCmd : RecMenuCmd;
|
||||||
|
HasCopy : Boolean = False;
|
||||||
|
|
||||||
Procedure MakeList;
|
Procedure MakeList;
|
||||||
Var
|
Var
|
||||||
|
@ -400,7 +402,18 @@ Begin
|
||||||
List.Open (2, 15, 79, 21);
|
List.Open (2, 15, 79, 21);
|
||||||
|
|
||||||
Case List.ExitCode of
|
Case List.ExitCode of
|
||||||
'/' : Case GetCommandOption(10, 'I-Insert|D-Delete|') of
|
'/' : Case GetCommandOption(10, 'I-Insert|D-Delete|C-Copy|P-Paste|') of
|
||||||
|
'C' : If List.Picked <> List.ListMax Then Begin
|
||||||
|
CopyCmd := Menu.Item[Num]^.CmdData[List.Picked]^;
|
||||||
|
HasCopy := True;
|
||||||
|
End;
|
||||||
|
'P' : If HasCopy Then Begin
|
||||||
|
Menu.InsertCommand(Num, List.Picked);
|
||||||
|
|
||||||
|
Menu.Item[Num]^.CmdData[List.Picked]^ := CopyCmd;
|
||||||
|
|
||||||
|
Changed := True;
|
||||||
|
End;
|
||||||
'I' : Begin
|
'I' : Begin
|
||||||
Menu.InsertCommand(Num, List.Picked);
|
Menu.InsertCommand(Num, List.Picked);
|
||||||
Changed := True;
|
Changed := True;
|
||||||
|
|
|
@ -77,9 +77,9 @@ Begin
|
||||||
Box := TAnsiMenuBox.Create;
|
Box := TAnsiMenuBox.Create;
|
||||||
Form := TAnsiMenuForm.Create;
|
Form := TAnsiMenuForm.Create;
|
||||||
|
|
||||||
Box.Open (5, 5, 75, 17);
|
Box.Open (5, 5, 75, 18);
|
||||||
|
|
||||||
VerticalLine (24, 7, 15);
|
VerticalLine (24, 7, 16);
|
||||||
VerticalLine (67, 7, 12);
|
VerticalLine (67, 7, 12);
|
||||||
|
|
||||||
Form.AddStr ('B', ' BBS Name', 14, 7, 26, 7, 10, 25, 30, @Config.BBSName, Topic);
|
Form.AddStr ('B', ' BBS Name', 14, 7, 26, 7, 10, 25, 30, @Config.BBSName, Topic);
|
||||||
|
@ -90,7 +90,8 @@ Begin
|
||||||
Form.AddStr ('F', ' Feedback To', 11, 12, 26, 12, 13, 25, 30, @Config.FeedbackTo, Topic);
|
Form.AddStr ('F', ' Feedback To', 11, 12, 26, 12, 13, 25, 30, @Config.FeedbackTo, Topic);
|
||||||
Form.AddStr ('A', ' Start Menu', 12, 13, 26, 13, 12, 20, 20, @Config.DefStartMenu, Topic);
|
Form.AddStr ('A', ' Start Menu', 12, 13, 26, 13, 12, 20, 20, @Config.DefStartMenu, Topic);
|
||||||
Form.AddStr ('H', ' Theme', 17, 14, 26, 14, 7, 20, 20, @Config.DefThemeFile, Topic);
|
Form.AddStr ('H', ' Theme', 17, 14, 26, 14, 7, 20, 20, @Config.DefThemeFile, Topic);
|
||||||
Form.AddTog ('E', ' Terminal', 14, 15, 26, 15, 10, 10, 0, 3, 'Ask Detect Detect/Ask ANSI', @Config.DefTermMode, Topic);
|
Form.AddBol ('K', ' Ask Theme', 13, 15, 26, 15, 11, 3, @Config.ThemeOnStart, Topic + 'Ask theme each connection');
|
||||||
|
Form.AddTog ('E', ' Terminal', 14, 16, 26, 16, 10, 10, 0, 3, 'Ask Detect Detect/Ask ANSI', @Config.DefTermMode, Topic);
|
||||||
|
|
||||||
Form.AddBol ('L', ' Chat Logging', 53, 7, 69, 7, 14, 3, @Config.ChatLogging, Topic);
|
Form.AddBol ('L', ' Chat Logging', 53, 7, 69, 7, 14, 3, @Config.ChatLogging, Topic);
|
||||||
Form.AddByte ('R', ' Hours Start', 54, 8, 69, 8, 13, 2, 0, 24, @Config.ChatStart, Topic);
|
Form.AddByte ('R', ' Hours Start', 54, 8, 69, 8, 13, 2, 0, 24, @Config.ChatStart, Topic);
|
||||||
|
|
|
@ -356,26 +356,28 @@ Begin
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Function TBBSCore.LoadThemeData (Str: String) : Boolean;
|
Function TBBSCore.LoadThemeData (Str: String) : Boolean;
|
||||||
|
Var
|
||||||
|
TempTheme : RecTheme;
|
||||||
Begin
|
Begin
|
||||||
Result := False;
|
Result := False;
|
||||||
|
|
||||||
Reset (ThemeFile);
|
Reset (ThemeFile);
|
||||||
|
|
||||||
While Not Eof(ThemeFile) Do Begin
|
While Not Eof(ThemeFile) Do Begin
|
||||||
Read (ThemeFile, Theme);
|
Read (ThemeFile, TempTheme);
|
||||||
|
|
||||||
{$IFDEF FS_SENSITIVE}
|
{$IFDEF FS_SENSITIVE}
|
||||||
If Theme.FileName = Str Then Begin
|
If TempTheme.FileName = Str Then Begin
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
If strUpper(Theme.FileName) = strUpper(Str) Then Begin
|
If strUpper(TempTheme.FileName) = strUpper(Str) Then Begin
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
If Not FileExist(Config.DataPath + Theme.FileName + '.thm') Then Break;
|
If Not FileExist(Config.DataPath + TempTheme.FileName + '.thm') Then Break;
|
||||||
|
|
||||||
{$I-} Close (PromptFile); {$I+}
|
{$I-} Close (PromptFile); {$I+}
|
||||||
|
|
||||||
If IoResult <> 0 Then;
|
If IoResult <> 0 Then;
|
||||||
|
|
||||||
Assign (PromptFile, Config.DataPath + Theme.FileName + '.thm');
|
Assign (PromptFile, Config.DataPath + TempTheme.FileName + '.thm');
|
||||||
|
|
||||||
Result := ioReset(PromptFile, SizeOf(RecPrompt), fmRWDN);
|
Result := ioReset(PromptFile, SizeOf(RecPrompt), fmRWDN);
|
||||||
|
|
||||||
|
@ -384,6 +386,8 @@ Begin
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Close (ThemeFile);
|
Close (ThemeFile);
|
||||||
|
|
||||||
|
If Result Then Theme := TempTheme;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
End.
|
End.
|
||||||
|
|
|
@ -1926,7 +1926,7 @@ Begin
|
||||||
While Input.KeyPressed Do Input.ReadKey;
|
While Input.KeyPressed Do Input.ReadKey;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
If Not TBBSCore(Core).LocalMode Then TBBSCore(Core).Client.PurgeInputData;
|
If Not TBBSCore(Core).LocalMode Then TBBSCore(Core).Client.PurgeInputData(True);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
|
|
@ -190,7 +190,7 @@ Begin
|
||||||
'1' : ShowBBSHistory(strS2I(CmdData));
|
'1' : ShowBBSHistory(strS2I(CmdData));
|
||||||
'A' : View_Directory(CmdData, 0);
|
'A' : View_Directory(CmdData, 0);
|
||||||
'D' : Session.io.OutFile (CmdData, True, 0);
|
'D' : Session.io.OutFile (CmdData, True, 0);
|
||||||
'E' : Session.User.Edit_User_Settings(strS2I(CmdData));
|
'E' : Session.User.EditUserSettings(CmdData);
|
||||||
'H',
|
'H',
|
||||||
'I' : Begin
|
'I' : Begin
|
||||||
If Cmd[2] = 'H' Then Begin
|
If Cmd[2] = 'H' Then Begin
|
||||||
|
@ -304,7 +304,7 @@ Begin
|
||||||
Session.io.OutFile('newuser', True, 0);
|
Session.io.OutFile('newuser', True, 0);
|
||||||
If Session.io.GetYN(Session.GetPrompt(269), True) Then Begin
|
If Session.io.GetYN(Session.GetPrompt(269), True) Then Begin
|
||||||
Session.User.CreateNewUser('');
|
Session.User.CreateNewUser('');
|
||||||
Session.User.User_Logon2;
|
Session.User.UserLogon2;
|
||||||
|
|
||||||
MenuName := Config.MatrixMenu;
|
MenuName := Config.MatrixMenu;
|
||||||
Result := True;
|
Result := True;
|
||||||
|
|
|
@ -980,11 +980,11 @@ Begin
|
||||||
TempStr := WrapData + ' ' + TempStr;
|
TempStr := WrapData + ' ' + TempStr;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
strWrap (TempStr, WrapData, 74);
|
strWrap (TempStr, WrapData, 75);
|
||||||
|
|
||||||
WriteLn (QuoteFile, Initials + Copy(TempStr, 1, 74));
|
WriteLn (QuoteFile, Initials + Copy(TempStr, 1, 75));
|
||||||
End Else
|
End Else
|
||||||
WriteLn (QuoteFile, Initials + Copy(TempStr, 1, 74));
|
WriteLn (QuoteFile, Initials + Copy(TempStr, 1, 75));
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Close (QuoteFile);
|
Close (QuoteFile);
|
||||||
|
|
|
@ -61,12 +61,12 @@ Type
|
||||||
Procedure GetOption1 (Edit: Boolean);
|
Procedure GetOption1 (Edit: Boolean);
|
||||||
Procedure GetOption2 (Edit: Boolean);
|
Procedure GetOption2 (Edit: Boolean);
|
||||||
Procedure GetOption3 (Edit: Boolean);
|
Procedure GetOption3 (Edit: Boolean);
|
||||||
Procedure GetLanguage;
|
Procedure GetTheme;
|
||||||
Procedure User_Logon (Var UN, PW, MPE : String);
|
Procedure UserLogon1 (Var UN, PW, MPE : String);
|
||||||
Procedure User_Logon2;
|
Procedure UserLogon2;
|
||||||
Procedure User_Logon3;
|
Procedure UserLogon3;
|
||||||
Procedure CreateNewUser (DefName: String);
|
Procedure CreateNewUser (DefName: String);
|
||||||
Procedure Edit_User_Settings (What: Byte);
|
Procedure EditUserSettings (Data: String);
|
||||||
Function Check_Trash (Name: String) : Boolean;
|
Function Check_Trash (Name: String) : Boolean;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
@ -428,7 +428,7 @@ Begin
|
||||||
If Session.LocalMode Then
|
If Session.LocalMode Then
|
||||||
Session.io.Graphics := 1
|
Session.io.Graphics := 1
|
||||||
Else Begin
|
Else Begin
|
||||||
Session.Client.PurgeInputData;
|
Session.Client.PurgeInputData(True);
|
||||||
Session.io.OutRaw (#27 + '[6n');
|
Session.io.OutRaw (#27 + '[6n');
|
||||||
Session.io.BufFlush;
|
Session.io.BufFlush;
|
||||||
|
|
||||||
|
@ -440,7 +440,7 @@ Begin
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Session.Client.PurgeInputData;
|
Session.Client.PurgeInputData(True);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Session.io.OutFullLn (Session.GetPrompt(259));
|
Session.io.OutFullLn (Session.GetPrompt(259));
|
||||||
|
@ -801,7 +801,7 @@ Begin
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TBBSUser.GetLanguage;
|
Procedure TBBSUser.GetTheme;
|
||||||
Var
|
Var
|
||||||
Old : RecTheme;
|
Old : RecTheme;
|
||||||
T : Byte;
|
T : Byte;
|
||||||
|
@ -883,7 +883,7 @@ Begin
|
||||||
If strUpper(DefName) = 'NEW' Then DefName := '';
|
If strUpper(DefName) = 'NEW' Then DefName := '';
|
||||||
|
|
||||||
With Config Do Begin
|
With Config Do Begin
|
||||||
If AskTheme Then GetLanguage Else ThisUser.Theme := DefThemeFile;
|
If AskTheme Then GetTheme Else ThisUser.Theme := DefThemeFile;
|
||||||
If AskAlias Then GetAlias(False, DefName);
|
If AskAlias Then GetAlias(False, DefName);
|
||||||
If AskRealName Then GetRealName(False);
|
If AskRealName Then GetRealName(False);
|
||||||
If AskStreet Then GetAddress(False);
|
If AskStreet Then GetAddress(False);
|
||||||
|
@ -991,7 +991,7 @@ Begin
|
||||||
Session.Msgs.PostTextFile('sysletter.txt;0;' + Config.SysopName + ';' + Config.SysopName + ';New account created', True);
|
Session.Msgs.PostTextFile('sysletter.txt;0;' + Config.SysopName + ';' + Config.SysopName + ';New account created', True);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TBBSUser.User_Logon3;
|
Procedure TBBSUser.UserLogon3;
|
||||||
Var
|
Var
|
||||||
Count : Byte;
|
Count : Byte;
|
||||||
Ch : Char;
|
Ch : Char;
|
||||||
|
@ -1069,7 +1069,7 @@ Begin
|
||||||
{ END forced voting check }
|
{ END forced voting check }
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TBBSUser.User_Logon2;
|
Procedure TBBSUser.UserLogon2;
|
||||||
Begin
|
Begin
|
||||||
{$IFDEF LOGGING} Session.SystemLog('Logon2'); {$ENDIF}
|
{$IFDEF LOGGING} Session.SystemLog('Logon2'); {$ENDIF}
|
||||||
|
|
||||||
|
@ -1170,7 +1170,7 @@ Begin
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TBBSUser.User_Logon (Var UN, PW, MPE : String);
|
Procedure TBBSUser.UserLogon1 (Var UN, PW, MPE : String);
|
||||||
Var
|
Var
|
||||||
A : Integer;
|
A : Integer;
|
||||||
Count : Byte;
|
Count : Byte;
|
||||||
|
@ -1193,7 +1193,11 @@ Begin
|
||||||
Halt(0);
|
Halt(0);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Session.io.OutFullLn ('|CL' + mysSoftwareID + ' BBS v' + mysVersion + ' (' + OSID + ') Node |ND');
|
// Session.io.AnsiClear;
|
||||||
|
// Session.io.OutFullLn('|CR' + strPadC(mysSoftwareID + ' BBS v' + mysVersion + ' [' + OSID + '] : Node |ND', 79, ' '));
|
||||||
|
// Session.io.OutFullLn(strPadC(CopyID, 79, ' '));
|
||||||
|
|
||||||
|
Session.io.OutFullLn ('|CL' + mysSoftwareID + ' BBS v' + mysVersion + ' [' + OSID + '] : Node |ND');
|
||||||
Session.io.OutFullLn (CopyID);
|
Session.io.OutFullLn (CopyID);
|
||||||
|
|
||||||
If Config.DefTermMode = 0 Then
|
If Config.DefTermMode = 0 Then
|
||||||
|
@ -1206,6 +1210,8 @@ Begin
|
||||||
If (Session.io.Graphics = 0) and (Config.DefTermMode = 2) Then GetGraphics;
|
If (Session.io.Graphics = 0) and (Config.DefTermMode = 2) Then GetGraphics;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
If Config.ThemeOnStart Then GetTheme;
|
||||||
|
|
||||||
If FileExist(Config.ScriptPath + 'startup.mpx') Then
|
If FileExist(Config.ScriptPath + 'startup.mpx') Then
|
||||||
ExecuteMPL(NIL, 'startup');
|
ExecuteMPL(NIL, 'startup');
|
||||||
|
|
||||||
|
@ -1256,8 +1262,8 @@ Begin
|
||||||
|
|
||||||
If Session.io.GetYN(Session.GetPrompt(1), False) Then Begin
|
If Session.io.GetYN(Session.GetPrompt(1), False) Then Begin
|
||||||
CreateNewUser(ThisUser.Handle);
|
CreateNewUser(ThisUser.Handle);
|
||||||
User_Logon2;
|
UserLogon2;
|
||||||
User_Logon3;
|
UserLogon3;
|
||||||
Exit;
|
Exit;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
@ -1291,17 +1297,26 @@ Begin
|
||||||
ThisUser.Theme := Config.DefThemeFile;
|
ThisUser.Theme := Config.DefThemeFile;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
User_Logon2;
|
UserLogon2;
|
||||||
|
|
||||||
If MPE <> '' Then Begin
|
If MPE <> '' Then Begin
|
||||||
ExecuteMPL(NIL, MPE);
|
ExecuteMPL(NIL, MPE);
|
||||||
Halt;
|
Halt;
|
||||||
End Else
|
End Else
|
||||||
User_Logon3;
|
UserLogon3;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure TBBSUser.Edit_User_Settings (What: Byte);
|
Procedure TBBSUser.EditUserSettings (Data: String);
|
||||||
|
Var
|
||||||
|
What : Byte;
|
||||||
Begin
|
Begin
|
||||||
|
What := strS2I(strWordGet(1, Data, ' '));
|
||||||
|
|
||||||
|
If strWordCount(Data, ' ') > 1 Then
|
||||||
|
Data := strStripB(Copy(Data, strWordPos(2, Data, ' '), 255), ' ')
|
||||||
|
Else
|
||||||
|
Data := '';
|
||||||
|
|
||||||
Case What of
|
Case What of
|
||||||
1 : GetAddress(True);
|
1 : GetAddress(True);
|
||||||
2 : GetCityState(True);
|
2 : GetCityState(True);
|
||||||
|
@ -1322,7 +1337,10 @@ Begin
|
||||||
11 : GetPassword(True);
|
11 : GetPassword(True);
|
||||||
12 : GetRealName(True);
|
12 : GetRealName(True);
|
||||||
13 : GetAlias(True, '');
|
13 : GetAlias(True, '');
|
||||||
14 : GetLanguage;
|
14 : If Data = '' Then
|
||||||
|
GetTheme
|
||||||
|
Else
|
||||||
|
Session.LoadThemeData(Data);
|
||||||
15 : GetEditor(True);
|
15 : GetEditor(True);
|
||||||
16 : If Access(Config.AcsInvisLogin) Then Begin
|
16 : If Access(Config.AcsInvisLogin) Then Begin
|
||||||
Chat.Invisible := Not Chat.Invisible;
|
Chat.Invisible := Not Chat.Invisible;
|
||||||
|
|
|
@ -328,17 +328,17 @@
|
||||||
180 |CR|PA
|
180 |CR|PA
|
||||||
; nodechat text: &1 = user name
|
; nodechat text: &1 = user name
|
||||||
181 |07<|15|&1|07> |07
|
181 |07<|15|&1|07> |07
|
||||||
; Language select header
|
; Theme select header
|
||||||
182 |CR|14Available languages:|CR
|
182 |CR|14Available themes:|CR
|
||||||
; Language select format:
|
; Theme select format:
|
||||||
; &1 = language number &2 = language description
|
; &1 = Theme number &2 = Theme description
|
||||||
183 |15|$R03|&1|14|&2
|
183 |10|&1 |08..... |07|&2
|
||||||
; Language select footer
|
; Theme select footer
|
||||||
184 |CR|09Select language: |XX
|
184 |CR|09Select your theme |01[|10Enter|01/|10Default|01]: |09
|
||||||
; Language file does not exist
|
; Theme file does not exist
|
||||||
185 |CR|12Language file does not exist.
|
185 |CR|12Theme file does not exist.
|
||||||
; Displayed if user's language does not exist.
|
; Displayed if user's theme does not exist.
|
||||||
186 |CR|12Selected language not available. Using default language.|CR|PA
|
186 |CR|12Selected theme not available. Using default theme.|CR|PA
|
||||||
; new user: use full screen node chat?
|
; new user: use full screen node chat?
|
||||||
187 |CR|12Use full screen node chat? |11
|
187 |CR|12Use full screen node chat? |11
|
||||||
; One Liner header
|
; One Liner header
|
||||||
|
|
|
@ -245,6 +245,7 @@ Begin
|
||||||
AddProc ({$IFDEF MPLPARSER} 'fillchar', {$ENDIF} '*lc', iNone); // 90
|
AddProc ({$IFDEF MPLPARSER} 'fillchar', {$ENDIF} '*lc', iNone); // 90
|
||||||
AddProc ({$IFDEF MPLPARSER} 'fwriterec', {$ENDIF} 'Fx', iNone); // 91
|
AddProc ({$IFDEF MPLPARSER} 'fwriterec', {$ENDIF} 'Fx', iNone); // 91
|
||||||
AddProc ({$IFDEF MPLPARSER} 'freadrec', {$ENDIF} 'Fx', iNone); // 92
|
AddProc ({$IFDEF MPLPARSER} 'freadrec', {$ENDIF} 'Fx', iNone); // 92
|
||||||
|
AddProc ({$IFDEF MPLPARSER} 'real2str', {$ENDIF} 'rb', iString); // 93;
|
||||||
|
|
||||||
IW := 500; // BEGIN BBS-SPECIFIC STUFF
|
IW := 500; // BEGIN BBS-SPECIFIC STUFF
|
||||||
|
|
||||||
|
|
|
@ -1767,6 +1767,10 @@ Begin
|
||||||
BlockRead (File(Pointer(Param[1].vData)^), VarData[Param[2].vID]^.Data^, VarData[Param[2].vID]^.DataSize);
|
BlockRead (File(Pointer(Param[1].vData)^), VarData[Param[2].vID]^.Data^, VarData[Param[2].vID]^.DataSize);
|
||||||
IoError := IoResult;
|
IoError := IoResult;
|
||||||
End;
|
End;
|
||||||
|
93 : Begin
|
||||||
|
TempStr := strR2S(Param[1].R, Param[2].B);
|
||||||
|
Store (TempStr, 256);
|
||||||
|
End;
|
||||||
500 : Begin
|
500 : Begin
|
||||||
TempStr := Session.io.GetInput(Param[1].B, Param[2].B, Param[3].B, Param[4].S);
|
TempStr := Session.io.GetInput(Param[1].B, Param[2].B, Param[3].B, Param[4].S);
|
||||||
Store (TempStr, 256);
|
Store (TempStr, 256);
|
||||||
|
|
|
@ -77,7 +77,7 @@ Type
|
||||||
);
|
);
|
||||||
|
|
||||||
Const
|
Const
|
||||||
mplVer = '11C';
|
mplVer = '11D';
|
||||||
mplVersion = '[MPX ' + mplVer +']' + #26;
|
mplVersion = '[MPX ' + mplVer +']' + #26;
|
||||||
mplVerLength = 10;
|
mplVerLength = 10;
|
||||||
mplExtSource = '.mps';
|
mplExtSource = '.mps';
|
||||||
|
|
|
@ -465,7 +465,7 @@ Begin
|
||||||
|
|
||||||
Set_Node_Action (Session.GetPrompt(345));
|
Set_Node_Action (Session.GetPrompt(345));
|
||||||
|
|
||||||
Session.User.User_Logon (UserName, Password, Script);
|
Session.User.UserLogon1 (UserName, Password, Script);
|
||||||
|
|
||||||
If Session.TimeOffset > 0 Then
|
If Session.TimeOffset > 0 Then
|
||||||
Session.TimeSaved := Session.User.ThisUser.TimeLeft;
|
Session.TimeSaved := Session.User.ThisUser.TimeLeft;
|
||||||
|
|
|
@ -496,7 +496,7 @@ Procedure SnoopNode (Node: Byte);
|
||||||
Var
|
Var
|
||||||
Pipe : TPipe;
|
Pipe : TPipe;
|
||||||
Buffer : Array[1..4 * 1024] of Char;
|
Buffer : Array[1..4 * 1024] of Char;
|
||||||
BufRead : LongInt;
|
BufRead : LongWord;
|
||||||
Update : LongInt;
|
Update : LongInt;
|
||||||
|
|
||||||
Procedure DrawStatus;
|
Procedure DrawStatus;
|
||||||
|
@ -534,7 +534,7 @@ Begin
|
||||||
|
|
||||||
Pipe := TPipe.Create(Config.DataPath, True, Node);
|
Pipe := TPipe.Create(Config.DataPath, True, Node);
|
||||||
|
|
||||||
If Not Pipe.ConnectPipe(1500) Then Begin
|
If Not Pipe.ConnectPipe(800) Then Begin
|
||||||
ShowMsgBox (0, 'Unable to establish a session. Try again');
|
ShowMsgBox (0, 'Unable to establish a session. Try again');
|
||||||
Pipe.Free;
|
Pipe.Free;
|
||||||
Exit;
|
Exit;
|
||||||
|
@ -546,17 +546,18 @@ Begin
|
||||||
|
|
||||||
DrawStatus;
|
DrawStatus;
|
||||||
|
|
||||||
|
Screen.TextAttr := 7;
|
||||||
|
Screen.ClearScreen;
|
||||||
|
|
||||||
Update := TimerSet(UpdateNode);
|
Update := TimerSet(UpdateNode);
|
||||||
|
|
||||||
While Pipe.Connected Do Begin
|
While Pipe.Connected Do Begin
|
||||||
Pipe.ReadFromPipe(Buffer, SizeOf(Buffer), BufRead);
|
Pipe.ReadFromPipe(Buffer, SizeOf(Buffer), BufRead);
|
||||||
|
|
||||||
Case BufRead of
|
If BufRead = 0 Then
|
||||||
-1 : Break;
|
WaitMS(200)
|
||||||
0 : WaitMS(200);
|
|
||||||
Else
|
Else
|
||||||
Term.ProcessBuf(Buffer, BufRead);
|
Term.ProcessBuf(Buffer, BufRead);
|
||||||
End;
|
|
||||||
|
|
||||||
If Keyboard.KeyPressed Then
|
If Keyboard.KeyPressed Then
|
||||||
Case Keyboard.ReadKey of
|
Case Keyboard.ReadKey of
|
||||||
|
@ -609,7 +610,8 @@ Begin
|
||||||
|
|
||||||
Screen.TextAttr := 7;
|
Screen.TextAttr := 7;
|
||||||
Screen.ClearScreen;
|
Screen.ClearScreen;
|
||||||
Screen.WriteStr ('Connecting to 127.0.0.1... ');
|
|
||||||
|
Screen.WriteStr ('Telnet to 127.0.0.1... ');
|
||||||
|
|
||||||
Client := TIOSocket.Create;
|
Client := TIOSocket.Create;
|
||||||
|
|
||||||
|
@ -865,7 +867,7 @@ Begin
|
||||||
|
|
||||||
Repeat
|
Repeat
|
||||||
If Keyboard.KeyWait(1000) Then
|
If Keyboard.KeyWait(1000) Then
|
||||||
Case Keyboard.ReadKey of
|
Case UpCase(Keyboard.ReadKey) of
|
||||||
#00 : Case Keyboard.ReadKey of
|
#00 : Case Keyboard.ReadKey of
|
||||||
#71 : Begin
|
#71 : Begin
|
||||||
TopPage := 1;
|
TopPage := 1;
|
||||||
|
@ -925,6 +927,14 @@ Begin
|
||||||
FullReDraw;
|
FullReDraw;
|
||||||
End;
|
End;
|
||||||
#27 : Break;
|
#27 : Break;
|
||||||
|
'G' : If ShowMsgBox(1, 'Kill Ghost on Node ' + strI2S(NodeInfo[CurNode]^.Node)) Then Begin
|
||||||
|
FileErase(Config.DataPath + 'chat' + strI2S(NodeInfo[CurNode]^.Node) + '.dat');
|
||||||
|
|
||||||
|
UpdateOnlineStatus;
|
||||||
|
DrawNodes;
|
||||||
|
|
||||||
|
NodeTimer := TimerSet(UpdateNode);
|
||||||
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
If TimerUp(NodeTimer) Then Begin
|
If TimerUp(NodeTimer) Then Begin
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
Const
|
Const
|
||||||
mysSoftwareID = 'Mystic'; // no idea
|
mysSoftwareID = 'Mystic'; // no idea
|
||||||
mysCopyYear = '1997-2012'; // its been a long time!
|
mysCopyYear = '1997-2012'; // its been a long time!
|
||||||
mysVersion = '1.10 A19'; // current version
|
mysVersion = '1.10 A20'; // current version
|
||||||
mysDataChanged = '1.10 A11'; // version of last records change
|
mysDataChanged = '1.10 A11'; // version of last records change
|
||||||
|
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
|
@ -271,7 +271,8 @@ Type
|
||||||
inetNNTPTimeOut : Word;
|
inetNNTPTimeOut : Word;
|
||||||
// UNSORTED
|
// UNSORTED
|
||||||
inetTNHidden : Boolean;
|
inetTNHidden : Boolean;
|
||||||
Reserved : Array[1..845] of Char;
|
ThemeOnStart : Boolean;
|
||||||
|
Reserved : Array[1..844] of Char;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Const
|
Const
|
||||||
|
|
|
@ -15,15 +15,12 @@ BUGS AND POSSIBLE ISSUES
|
||||||
functions.
|
functions.
|
||||||
! RAR internal viewer does not work with files that have embedded comments
|
! RAR internal viewer does not work with files that have embedded comments
|
||||||
! Test midnight rollovers for time (flag for user to be immune to timecheck)
|
! Test midnight rollovers for time (flag for user to be immune to timecheck)
|
||||||
! Validate that "groupX.ans" and "fgroupX.ans" actually work.
|
|
||||||
! Test NNTP with Thunderbird specifically FUBAR dates on messages.
|
|
||||||
|
|
||||||
FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
- Auto wrapping of quotes before the FS editor gets to it.
|
|
||||||
- Finish Threaded message reader
|
- Finish Threaded message reader
|
||||||
- Add "high roller Smack talk" into BlackJack
|
- Add "high roller/smack talk" into BlackJack
|
||||||
- Add better MIS logging per server (connect, refuse, blocked, etc)
|
- Add better MIS logging per server (connect, refuse, blocked, etc)
|
||||||
- BBS email autoforwarded to Internet email
|
- BBS email autoforwarded to Internet email
|
||||||
- Ability to send internet email to people from within the BBS.
|
- Ability to send internet email to people from within the BBS.
|
||||||
|
@ -36,7 +33,6 @@ FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
||||||
- MCI code to show how many files are in current filebase
|
- MCI code to show how many files are in current filebase
|
||||||
- Online ANSI file viewer (integrate with art gallery)
|
- Online ANSI file viewer (integrate with art gallery)
|
||||||
- Online text editor / ansi editor?
|
- Online text editor / ansi editor?
|
||||||
- Better theme selection (menu command option to select theme)
|
|
||||||
- Externalize remaining prompt data (msg flags, etc)
|
- Externalize remaining prompt data (msg flags, etc)
|
||||||
- File comments and rating system
|
- File comments and rating system
|
||||||
- Integrate eventual online ANSI help system into configuration utilities
|
- Integrate eventual online ANSI help system into configuration utilities
|
||||||
|
|
Loading…
Reference in New Issue