New System Config complete, Language datafile revamp and new MakeTheme utility
This commit is contained in:
parent
05bf9977ec
commit
5d38954fe6
|
@ -53,29 +53,27 @@ Type
|
||||||
Constructor Create;
|
Constructor Create;
|
||||||
Destructor Destroy; Override;
|
Destructor Destroy; Override;
|
||||||
Procedure Disconnect;
|
Procedure Disconnect;
|
||||||
Function DataWaiting : Boolean;
|
Function DataWaiting : Boolean;
|
||||||
Function WriteBuf (Var Buf; Len: LongInt) : LongInt;
|
Function WriteBuf (Var Buf; Len: LongInt) : LongInt;
|
||||||
Procedure BufFlush;
|
Procedure BufFlush;
|
||||||
Procedure BufWriteChar (Ch: Char);
|
Procedure BufWriteChar (Ch: Char);
|
||||||
Procedure BufWriteStr (Str: String);
|
Procedure BufWriteStr (Str: String);
|
||||||
Function WriteLine (Str: String) : LongInt;
|
Function WriteLine (Str: String) : LongInt;
|
||||||
Function WriteStr (Str: String) : LongInt;
|
Function WriteStr (Str: String) : LongInt;
|
||||||
Function WriteFile (Str: String) : Boolean;
|
Function WriteFile (Str: String) : Boolean;
|
||||||
Procedure ProcessBuf (Var Buf: TSocketBuffer; Var Len: LongInt);
|
Procedure ProcessBuf (Var Buf: TSocketBuffer; Var Len: LongInt);
|
||||||
Function ReadBuf (Var Buf; Len: LongInt) : LongInt;
|
Function ReadBuf (Var Buf; Len: LongInt) : LongInt;
|
||||||
Function ReadLine (Var Str: String) : LongInt;
|
Function ReadLine (Var Str: String) : LongInt;
|
||||||
Function SetBlocking (Block: Boolean): LongInt;
|
Function SetBlocking (Block: Boolean): LongInt;
|
||||||
Function WaitForData (TimeOut: LongInt) : LongInt;
|
Function WaitForData (TimeOut: LongInt) : LongInt;
|
||||||
Function Connect (Address: String; Port: Word) : Boolean;
|
Function Connect (Address: String; Port: Word) : Boolean;
|
||||||
Function ResolveAddress (Host: String) : LongInt;
|
Function ResolveAddress (Host: String) : LongInt;
|
||||||
Procedure WaitInit (Port: Word);
|
Procedure WaitInit (Port: Word);
|
||||||
Function WaitConnection : TSocketClass;
|
Function WaitConnection : TSocketClass;
|
||||||
|
|
||||||
Procedure PurgeInputData;
|
Procedure PurgeInputData;
|
||||||
Function ReadChar : Char;
|
Function ReadChar : Char;
|
||||||
Function WriteChar (Ch: Char) : LongInt;
|
Function WriteChar (Ch: Char) : LongInt;
|
||||||
|
Procedure Status (Str: String);
|
||||||
Procedure Status (Str: String);
|
|
||||||
|
|
||||||
Property SocketHandle : LongInt READ FSocketHandle WRITE FSocketHandle;
|
Property SocketHandle : LongInt READ FSocketHandle WRITE FSocketHandle;
|
||||||
Property PeerPort : LongInt READ FPort WRITE FPort;
|
Property PeerPort : LongInt READ FPort WRITE FPort;
|
||||||
|
@ -170,6 +168,7 @@ Procedure TSocketClass.BufFlush;
|
||||||
Begin
|
Begin
|
||||||
If FOutBufPos > 0 Then Begin
|
If FOutBufPos > 0 Then Begin
|
||||||
WriteBuf (FOutBuf, FOutBufPos);
|
WriteBuf (FOutBuf, FOutBufPos);
|
||||||
|
|
||||||
FOutBufPos := 0;
|
FOutBufPos := 0;
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
@ -181,6 +180,7 @@ Begin
|
||||||
|
|
||||||
If FOutBufPos > TSocketBufferSize Then Begin
|
If FOutBufPos > TSocketBufferSize Then Begin
|
||||||
WriteBuf (FOutBuf, FOutBufPos - 1);
|
WriteBuf (FOutBuf, FOutBufPos - 1);
|
||||||
|
|
||||||
FOutBufPos := 0;
|
FOutBufPos := 0;
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
|
@ -13,6 +13,38 @@ Uses
|
||||||
{$I RECORDS.PAS}
|
{$I RECORDS.PAS}
|
||||||
|
|
||||||
Type
|
Type
|
||||||
|
OldPercentRec = Record // percentage bar record
|
||||||
|
BarLen : Byte;
|
||||||
|
LoChar : Char;
|
||||||
|
LoAttr : Byte;
|
||||||
|
HiChar : Char;
|
||||||
|
HiAttr : Byte;
|
||||||
|
End;
|
||||||
|
|
||||||
|
OldLangRec = Record { LANGUAGE.DAT }
|
||||||
|
FileName : String[8]; { Language file name }
|
||||||
|
Desc : String[30]; { Language description }
|
||||||
|
TextPath : String[40]; { Path where text files are stored }
|
||||||
|
MenuPath : String[40]; { Path where menu files are stored }
|
||||||
|
okASCII : Boolean; { Allow ASCII }
|
||||||
|
okANSI : Boolean; { Allow ANSI }
|
||||||
|
BarYN : Boolean; { Use Lightbar Y/N with this lang }
|
||||||
|
FieldCol1 : Byte; { Field input color }
|
||||||
|
FieldCol2 : Byte;
|
||||||
|
FieldChar : Char;
|
||||||
|
EchoCh : Char; { Password echo character }
|
||||||
|
QuoteColor : Byte; { Color for quote lightbar }
|
||||||
|
TagCh : Char; { File Tagged Char }
|
||||||
|
FileHi : Byte; { Color of file search highlight }
|
||||||
|
FileLo : Byte; { Non lightbar description color }
|
||||||
|
NewMsgChar : Char; { Lightbar Msg Index New Msg Char }
|
||||||
|
VotingBar : OldPercentRec; { voting booth bar }
|
||||||
|
FileBar : OldPercentRec; { file list bar }
|
||||||
|
MsgBar : OldPercentRec; { lightbar msg reader bar }
|
||||||
|
GalleryBar : OldPercentRec;
|
||||||
|
Reserved : Array[1..95] of Byte; { RESERVED }
|
||||||
|
End;
|
||||||
|
|
||||||
OldMBaseRec = Record { MBASES.DAT }
|
OldMBaseRec = Record { MBASES.DAT }
|
||||||
Name : String[40]; { Message base name }
|
Name : String[40]; { Message base name }
|
||||||
QWKName : String[13]; { QWK (short) message base name }
|
QWKName : String[13]; { QWK (short) message base name }
|
||||||
|
@ -340,6 +372,23 @@ Begin
|
||||||
Result := (IoResult = 0);
|
Result := (IoResult = 0);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
Procedure PurgeDataWildcard (WC: String);
|
||||||
|
Var
|
||||||
|
D : SearchRec;
|
||||||
|
Begin
|
||||||
|
FindFirst (Config.DataPath + WC, AnyFile, D);
|
||||||
|
|
||||||
|
While DosError = 0 Do Begin
|
||||||
|
If D.Attr AND Directory <> 0 Then Continue;
|
||||||
|
|
||||||
|
DeleteFile (Config.DataPath + D.Name);
|
||||||
|
|
||||||
|
FindNext(D);
|
||||||
|
End;
|
||||||
|
|
||||||
|
FindClose(D);
|
||||||
|
End;
|
||||||
|
|
||||||
Procedure WarningDisplay;
|
Procedure WarningDisplay;
|
||||||
Var
|
Var
|
||||||
Ch : Char;
|
Ch : Char;
|
||||||
|
@ -424,6 +473,8 @@ Begin
|
||||||
Config.AcsInvisLogin := AcsInvLogin;
|
Config.AcsInvisLogin := AcsInvLogin;
|
||||||
Config.AcsSeeInvis := AcsSeeInvis;
|
Config.AcsSeeInvis := AcsSeeInvis;
|
||||||
|
|
||||||
|
FillChar(Config.SysopMacro, SizeOf(Config.SysopMacro), #0);
|
||||||
|
|
||||||
For A := 1 to 4 Do Config.SysopMacro[A] := SysopMacro[A];
|
For A := 1 to 4 Do Config.SysopMacro[A] := SysopMacro[A];
|
||||||
|
|
||||||
Config.ChatStart := ChatStart;
|
Config.ChatStart := ChatStart;
|
||||||
|
@ -775,120 +826,27 @@ Begin
|
||||||
DeleteFile (Config.DataPath + 'security.old');
|
DeleteFile (Config.DataPath + 'security.old');
|
||||||
End;
|
End;
|
||||||
|
|
||||||
(*
|
Procedure ConvertThemes;
|
||||||
Procedure ConvertMessageBases;
|
|
||||||
Var
|
|
||||||
MBase : MBaseRec;
|
|
||||||
MBaseFile : File of MBaseRec;
|
|
||||||
OldBase : OldMBaseRec;
|
|
||||||
OldBaseFile : File of OldMBaseRec;
|
|
||||||
Begin
|
|
||||||
WriteLn ('[-] Updating message base config...');
|
|
||||||
|
|
||||||
ReNameFile(Config.DataPath + 'mbases.dat', Config.DataPath + 'mbases.old');
|
Function ConvertBar (P: OldPercentRec) : RecPercent;
|
||||||
|
Begin
|
||||||
Assign (OldBaseFile, Config.DataPath + 'mbases.old');
|
Result.BarLength := P.BarLen;
|
||||||
Reset (OldBaseFile);
|
Result.LoChar := P.LoChar;
|
||||||
|
Result.LoAttr := P.LoAttr;
|
||||||
Assign (MBaseFile, Config.DataPath + 'mbases.dat');
|
Result.HiChar := P.HiChar;
|
||||||
ReWrite (MBaseFile);
|
Result.HiAttr := P.HiAttr;
|
||||||
|
Result.Format := 0;
|
||||||
While Not Eof(OldBaseFile) Do Begin
|
Result.StartY := 1;
|
||||||
Read (OldBaseFile, OldBase);
|
Result.EndY := 20;
|
||||||
|
Result.StartX := 79;
|
||||||
With OldBase Do Begin
|
|
||||||
MBase.Name := Name;
|
|
||||||
MBase.QwkName := QwkName;
|
|
||||||
MBase.FileName := FileName;
|
|
||||||
MBase.Path := Path;
|
|
||||||
MBase.BaseType := BaseType;
|
|
||||||
MBase.NetType := NetType;
|
|
||||||
MBase.PostType := PostType;
|
|
||||||
MBase.ACS := ACS;
|
|
||||||
MBase.ReadACS := ReadACS;
|
|
||||||
MBase.PostACS := PostACS;
|
|
||||||
MBase.SysopACS := SysopACS;
|
|
||||||
MBase.Password := Password;
|
|
||||||
MBase.ColQuote := ColQuote;
|
|
||||||
MBase.ColTear := ColTear;
|
|
||||||
MBase.ColText := ColText;
|
|
||||||
MBase.ColOrigin := ColOrigin;
|
|
||||||
MBase.NetAddr := NetAddr;
|
|
||||||
MBase.Origin := Origin;
|
|
||||||
MBase.UseReal := UseReal;
|
|
||||||
MBase.DefNScan := DefNScan;
|
|
||||||
MBase.DefQScan := DefQScan;
|
|
||||||
MBase.MaxMsgs := MaxMsgs;
|
|
||||||
MBase.MaxAge := MaxAge;
|
|
||||||
MBase.Header := Header;
|
|
||||||
MBase.Index := Index;
|
|
||||||
End;
|
|
||||||
|
|
||||||
Write (MBaseFile, MBase);
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Close (MBaseFile);
|
|
||||||
Close (OldBaseFile);
|
|
||||||
|
|
||||||
DeleteFile (Config.DataPath + 'mbases.old');
|
|
||||||
End;
|
|
||||||
*)
|
|
||||||
(*
|
|
||||||
Procedure ConvertFileBases;
|
|
||||||
Var
|
Var
|
||||||
FBase : FBaseRec;
|
Theme : RecTheme;
|
||||||
FBaseFile : File of FBaseRec;
|
ThemeFile : File of RecTheme;
|
||||||
OldBase : OldFBaseRec;
|
|
||||||
OldBaseFile : File of OldFBaseRec;
|
|
||||||
Begin
|
|
||||||
WriteLn ('[-] Updating file base config...');
|
|
||||||
|
|
||||||
ReNameFile(Config.DataPath + 'fbases.dat', Config.DataPath + 'fbases.old');
|
|
||||||
|
|
||||||
Assign (OldBaseFile, Config.DataPath + 'fbases.old');
|
|
||||||
Reset (OldBaseFile);
|
|
||||||
|
|
||||||
Assign (FBaseFile, Config.DataPath + 'fbases.dat');
|
|
||||||
ReWrite (FBaseFile);
|
|
||||||
|
|
||||||
While Not Eof(OldBaseFile) Do Begin
|
|
||||||
Read (OldBaseFile, OldBase);
|
|
||||||
|
|
||||||
With OldBase Do Begin
|
|
||||||
FBase.Name := Name;
|
|
||||||
FBase.FtpName := strStripMCI(FBase.Name);
|
|
||||||
FBase.FileName := FileName;
|
|
||||||
FBase.DispFile := DispFile;
|
|
||||||
FBase.ListACS := ACS;
|
|
||||||
FBase.FtpACS := ACS;
|
|
||||||
FBase.SysopACS := SysopACS;
|
|
||||||
FBase.ULACS := ULACS;
|
|
||||||
FBase.DLACS := DLACS;
|
|
||||||
FBase.Path := Path;
|
|
||||||
FBase.Password := Password;
|
|
||||||
FBase.ShowUL := ShowUL;
|
|
||||||
FBase.DefScan := DefScan;
|
|
||||||
FBase.IsCDROM := IsCDROM;
|
|
||||||
FBase.IsFREE := IsFREE;
|
|
||||||
End;
|
|
||||||
|
|
||||||
Write (FBaseFile, FBase);
|
|
||||||
End;
|
|
||||||
|
|
||||||
Close (FBaseFile);
|
|
||||||
Close (OldBaseFile);
|
|
||||||
|
|
||||||
DeleteFile (Config.DataPath + 'fbases.old');
|
|
||||||
End;
|
|
||||||
*)
|
|
||||||
(*
|
|
||||||
Procedure ConvertLanguageDefs;
|
|
||||||
Var
|
|
||||||
Lang : LangRec;
|
|
||||||
LangFile : File of LangRec;
|
|
||||||
OldLang : OldLangRec;
|
OldLang : OldLangRec;
|
||||||
OldLangFile : File of OldLangRec;
|
OldLangFile : File of OldLangRec;
|
||||||
TempBar : PercentRec;
|
TempBar : RecPercent;
|
||||||
Begin
|
Begin
|
||||||
WriteLn ('[-] Updating language definitions...');
|
WriteLn ('[-] Updating language definitions...');
|
||||||
|
|
||||||
|
@ -897,50 +855,85 @@ Begin
|
||||||
Assign (OldLangFile, Config.DataPath + 'language.old');
|
Assign (OldLangFile, Config.DataPath + 'language.old');
|
||||||
Reset (OldLangFile);
|
Reset (OldLangFile);
|
||||||
|
|
||||||
Assign (LangFile, Config.DataPath + 'language.dat');
|
Assign (ThemeFile, Config.DataPath + 'theme.dat');
|
||||||
ReWrite (LangFile);
|
ReWrite (ThemeFile);
|
||||||
|
|
||||||
While Not Eof(OldLangFile) Do Begin
|
While Not Eof(OldLangFile) Do Begin
|
||||||
Read (OldLangFile, OldLang);
|
Read (OldLangFile, OldLang);
|
||||||
|
|
||||||
TempBar.BarLen := 10;
|
FillChar(Theme, SizeOf(Theme), 0);
|
||||||
|
|
||||||
|
TempBar.BarLength := 10;
|
||||||
TempBar.LoChar := '°';
|
TempBar.LoChar := '°';
|
||||||
TempBar.LoAttr := 8;
|
TempBar.LoAttr := 8;
|
||||||
TempBar.HiChar := '²';
|
TempBar.HiChar := '²';
|
||||||
TempBar.HiAttr := 25;
|
TempBar.HiAttr := 25;
|
||||||
|
TempBar.Format := 0;
|
||||||
|
TempBar.StartY := 1;
|
||||||
|
TempBar.EndY := 20;
|
||||||
|
TempBar.StartX := 79;
|
||||||
|
|
||||||
With OldLang Do Begin
|
Theme.FileName := OldLang.FileName;
|
||||||
Lang.FileName := FileName;
|
Theme.Desc := OldLang.Desc;
|
||||||
Lang.Desc := Desc;
|
Theme.TextPath := OldLang.TextPath;
|
||||||
Lang.TextPath := TextPath;
|
Theme.MenuPath := OldLang.MenuPath;
|
||||||
Lang.MenuPath := MenuPath;
|
Theme.ScriptPath := Config.ScriptPath;
|
||||||
Lang.okASCII := okASCII;
|
Theme.TemplatePath := OldLang.TextPath;
|
||||||
Lang.okANSI := okANSI;
|
Theme.FieldColor1 := OldLang.FieldCol1;
|
||||||
Lang.BarYN := BarYN;
|
Theme.FieldColor2 := OldLang.FieldCol2;
|
||||||
Lang.FieldCol1 := FieldColor;
|
Theme.FieldChar := OldLang.FieldChar;
|
||||||
Lang.FieldCol2 := FieldColor;
|
Theme.EchoChar := OldLang.EchoCh;
|
||||||
Lang.FieldChar := InputCh;
|
Theme.QuoteColor := OldLang.QuoteColor;
|
||||||
Lang.EchoCh := EchoCh;
|
Theme.TagChar := OldLang.TagCh;
|
||||||
Lang.QuoteColor := QuoteColor;
|
Theme.FileDescHi := OldLang.FileHi;
|
||||||
Lang.TagCh := TagCh;
|
Theme.FileDescLo := OldLang.FileLo;
|
||||||
Lang.FileHi := FileHi;
|
Theme.NewMsgChar := OldLang.NewMsgChar;
|
||||||
Lang.FileLo := FileLo;
|
Theme.NewVoteChar := '*';
|
||||||
Lang.NewMsgChar := NewMsgChar;
|
|
||||||
|
|
||||||
Lang.VotingBar := TempBar;
|
Theme.VotingBar := ConvertBar(OldLang.VotingBar);
|
||||||
Lang.FileBar := TempBar;
|
Theme.FileBar := ConvertBar(OldLang.FileBar);
|
||||||
Lang.MsgBar := TempBar;
|
Theme.MsgBar := ConvertBar(OldLang.MsgBar);
|
||||||
End;
|
Theme.GalleryBar := ConvertBar(OldLang.GalleryBar);
|
||||||
|
Theme.IndexBar := TempBar;
|
||||||
|
Theme.FAreaBar := TempBar;
|
||||||
|
Theme.FGroupBar := TempBar;
|
||||||
|
Theme.MAreaBar := TempBar;
|
||||||
|
Theme.MGroupBar := TempBar;
|
||||||
|
Theme.MAreaList := TempBar;
|
||||||
|
Theme.HelpBar := TempBar;
|
||||||
|
Theme.ViewerBar := TempBar;
|
||||||
|
|
||||||
Write (LangFile, Lang);
|
Theme.UserInputFmt := 0;
|
||||||
|
Theme.LineChat1 := 9;
|
||||||
|
Theme.LineChat2 := 11;
|
||||||
|
|
||||||
|
Theme.Colors[0] := 1;
|
||||||
|
Theme.Colors[1] := 9;
|
||||||
|
Theme.Colors[2] := 11;
|
||||||
|
Theme.Colors[3] := 8;
|
||||||
|
Theme.Colors[4] := 7;
|
||||||
|
Theme.Colors[5] := 15;
|
||||||
|
Theme.Colors[6] := 8 + 1 * 16;
|
||||||
|
Theme.Colors[7] := 7 + 1 * 16;
|
||||||
|
Theme.Colors[8] := 9 + 1 * 16;
|
||||||
|
Theme.Colors[9] := 15 + 1 * 16;
|
||||||
|
|
||||||
|
Theme.Flags := 0;
|
||||||
|
|
||||||
|
If OldLang.okASCII Then Theme.Flags := Theme.Flags OR ThmAllowASCII;
|
||||||
|
If OldLang.okANSI Then Theme.Flags := Theme.Flags OR ThmAllowANSI;
|
||||||
|
If OldLang.BarYN Then Theme.Flags := Theme.Flags OR ThmLightbarYN;
|
||||||
|
|
||||||
|
Theme.Flags := Theme.Flags OR ThmFallback;
|
||||||
|
|
||||||
|
Write (ThemeFile, Theme);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Close (LangFile);
|
Close (ThemeFile);
|
||||||
Close (OldLangFile);
|
Close (OldLangFile);
|
||||||
|
|
||||||
DeleteFile (Config.DataPath + 'language.old');
|
DeleteFile (Config.DataPath + 'language.old');
|
||||||
End;
|
End;
|
||||||
*)
|
|
||||||
|
|
||||||
Procedure ConvertArchives;
|
Procedure ConvertArchives;
|
||||||
Var
|
Var
|
||||||
|
@ -1198,21 +1191,24 @@ Begin
|
||||||
WarningDisplay;
|
WarningDisplay;
|
||||||
|
|
||||||
//COMMENT this out if mystic.dat is being converted:
|
//COMMENT this out if mystic.dat is being converted:
|
||||||
// Assign (ConfigFile, 'mystic.dat');
|
Assign (ConfigFile, 'mystic.dat');
|
||||||
// Reset (ConfigFile);
|
Reset (ConfigFile);
|
||||||
// Read (ConfigFile, Config);
|
Read (ConfigFile, Config);
|
||||||
// Close (ConfigFile);
|
Close (ConfigFile);
|
||||||
|
|
||||||
ConvertConfig; //1.10a11
|
// ConvertConfig; //1.10a11
|
||||||
// ConvertUsers; //1.10a11
|
// ConvertUsers; //1.10a11
|
||||||
//ConvertSecurity; //1.10a11
|
//ConvertSecurity; //1.10a11
|
||||||
//ConvertFileLists; //1.10a11
|
//ConvertFileLists; //1.10a11
|
||||||
//ConvertFileBases; //1.10a11
|
//ConvertFileBases; //1.10a11
|
||||||
//ConvertMessageBases; //1.10a11
|
//ConvertMessageBases; //1.10a11
|
||||||
|
//ConvertThemes; //1.10a11
|
||||||
|
|
||||||
// ConvertArchives; //1.10a1
|
// ConvertArchives; //1.10a1
|
||||||
// ConvertGroups; //1.10a1
|
// ConvertGroups; //1.10a1
|
||||||
|
|
||||||
|
PurgeDataWildcard('*.lng');
|
||||||
|
|
||||||
TextAttr := 12;
|
TextAttr := 12;
|
||||||
WriteLn;
|
WriteLn;
|
||||||
WriteLn ('COMPLETE!');
|
WriteLn ('COMPLETE!');
|
||||||
|
|
|
@ -2809,7 +2809,7 @@
|
||||||
comments are supported... //, /* */ and (* *) comments are used.
|
comments are supported... //, /* */ and (* *) comments are used.
|
||||||
|
|
||||||
- Include files have been changed to {$include Myfile.mps} since # is
|
- Include files have been changed to {$include Myfile.mps} since # is
|
||||||
a part of MPL comment/directive system anymore.
|
not a part of MPL comment/directive system anymore.
|
||||||
|
|
||||||
+ New MIDE replaces old MIDE. This version does not yet have syntax
|
+ New MIDE replaces old MIDE. This version does not yet have syntax
|
||||||
highlighting, but has a nicer pulldown menu interface. Syntax highlighting
|
highlighting, but has a nicer pulldown menu interface. Syntax highlighting
|
||||||
|
@ -3383,7 +3383,7 @@
|
||||||
SetPromptInfo(1, 'Hello!');
|
SetPromptInfo(1, 'Hello!');
|
||||||
WriteLn ('This MCI code would like to say: |&1');
|
WriteLn ('This MCI code would like to say: |&1');
|
||||||
|
|
||||||
On a side note, there is NOT a GetPromptInfo because you can simply use
|
As a side note, there is NOT a GetPromptInfo because you can simply use
|
||||||
MCI2STR:
|
MCI2STR:
|
||||||
|
|
||||||
WriteLn('This MCI code would like to say: ' + Mci2Str('&1'));
|
WriteLn('This MCI code would like to say: ' + Mci2Str('&1'));
|
||||||
|
@ -3506,6 +3506,7 @@
|
||||||
|
|
||||||
Const
|
Const
|
||||||
UserDeleted = $04; // established bit for userdeleted from records.pas
|
UserDeleted = $04; // established bit for userdeleted from records.pas
|
||||||
|
// note: this value has changed check records.pas!
|
||||||
Begin
|
Begin
|
||||||
GetThisUser
|
GetThisUser
|
||||||
|
|
||||||
|
@ -3843,7 +3844,7 @@
|
||||||
+ MBBSUTIL has a new function -FUPLOAD. This goes through every file base
|
+ MBBSUTIL has a new function -FUPLOAD. This goes through every file base
|
||||||
and looks for new files. If a new file is found it will be added into
|
and looks for new files. If a new file is found it will be added into
|
||||||
Mystic's file base listing as a new file. FILE_ID.DIZ will be imported
|
Mystic's file base listing as a new file. FILE_ID.DIZ will be imported
|
||||||
as well.
|
as well. This was later moved to MUTIL
|
||||||
|
|
||||||
! Mystic will no longer shell to the console and get "stuck" when trying
|
! Mystic will no longer shell to the console and get "stuck" when trying
|
||||||
to execute an archive that has a blank command line in the configuration
|
to execute an archive that has a blank command line in the configuration
|
||||||
|
@ -3934,3 +3935,42 @@
|
||||||
|
|
||||||
+ MBBSUTIL now has an -AREASOUT option which will export a list of all bases
|
+ MBBSUTIL now has an -AREASOUT option which will export a list of all bases
|
||||||
flagged as Echomail in the AREAS.BBS format.
|
flagged as Echomail in the AREAS.BBS format.
|
||||||
|
|
||||||
|
+ Added a new program called MUTIL. This will eventually become the
|
||||||
|
replacement for MBBSUTIL and MYSTPACK. In addition, it will have a ton of
|
||||||
|
new features that MBBSUTIL did not have. MUTIL and MUTIL.CFG contain more
|
||||||
|
details.
|
||||||
|
|
||||||
|
+ MUTIL now has the ability to import FIDONET.NA style files into Mystic's
|
||||||
|
message bases.
|
||||||
|
|
||||||
|
+ MUTIL now has the ability to perform an offline "Mass upload" into file
|
||||||
|
bases. It will also import File_ID.DIZ (optionally) based on the archive
|
||||||
|
configuration.
|
||||||
|
|
||||||
|
+ "Languages" have been renamed to Themes. LANGUAGE.DAT has been renamed to
|
||||||
|
THEME.DAT in the data directory. A ton of new features await with this new
|
||||||
|
system. It of course is still possible to use the Theme system to create
|
||||||
|
support for different languages as well.
|
||||||
|
|
||||||
|
Additionally, compile prompt files that used to have the .LNG file
|
||||||
|
extension have been renamed to .THM extension. The upgrade utility should
|
||||||
|
take care of all this renaming for you.
|
||||||
|
|
||||||
|
- MAKELANG has been removed from Mystic BBS distribution.
|
||||||
|
|
||||||
|
- MakeTHEME has been added to the Mystic BBS distribution. This utility
|
||||||
|
works much like MAKELANG did but it has a few new options:
|
||||||
|
|
||||||
|
1) The ability to decompile prompt files. Keep in mind, comments are
|
||||||
|
not added into compiled prompt files, so when you decompile one you
|
||||||
|
will lose that information.
|
||||||
|
|
||||||
|
2) MakeTheme will now check for the existance of a "mysticbbs"
|
||||||
|
environment variable. If it finds this variable, it will look in that
|
||||||
|
location for MYSTIC.DAT, allowing MakeTheme to no longer be required to
|
||||||
|
be in the root Mystic BBS directory.
|
||||||
|
|
||||||
|
3) Prompts within a prompt file no longer has to be in numerical order.
|
||||||
|
More to come on why this change is being made, but generally this
|
||||||
|
allows you to categorize prompts.
|
||||||
|
|
|
@ -16,7 +16,7 @@ Uses
|
||||||
Procedure Lang_Editor;
|
Procedure Lang_Editor;
|
||||||
var
|
var
|
||||||
a : SmallInt;
|
a : SmallInt;
|
||||||
Old : LangRec;
|
Old : RecTheme;
|
||||||
Begin
|
Begin
|
||||||
Session.SystemLog ('*LANG EDITOR*');
|
Session.SystemLog ('*LANG EDITOR*');
|
||||||
Old := Session.Lang;
|
Old := Session.Lang;
|
||||||
|
@ -38,13 +38,13 @@ Begin
|
||||||
if filesize(Session.LangFile) = 1 then
|
if filesize(Session.LangFile) = 1 then
|
||||||
Session.io.OutFullLn ('|CR|14You must have at least one language definition.|CR|PA')
|
Session.io.OutFullLn ('|CR|14You must have at least one language definition.|CR|PA')
|
||||||
Else
|
Else
|
||||||
KillRecord (Session.LangFile, A, SizeOf(LangRec));
|
KillRecord (Session.LangFile, A, SizeOf(RecTheme));
|
||||||
end;
|
end;
|
||||||
'I' : begin
|
'I' : begin
|
||||||
Session.io.OutRaw ('Insert before? (1-' + strI2S(filesize(Session.LangFile)+1) + '): ');
|
Session.io.OutRaw ('Insert before? (1-' + strI2S(filesize(Session.LangFile)+1) + '): ');
|
||||||
a := strS2I(Session.io.GetInput(3, 3, 11, ''));
|
a := strS2I(Session.io.GetInput(3, 3, 11, ''));
|
||||||
if (a > 0) and (a <= filesize(Session.LangFile)+1) then begin
|
if (a > 0) and (a <= filesize(Session.LangFile)+1) then begin
|
||||||
AddRecord (Session.LangFile, A, SizeOf(LangRec));
|
AddRecord (Session.LangFile, A, SizeOf(RecTheme));
|
||||||
Session.lang.filename := '';
|
Session.lang.filename := '';
|
||||||
Session.lang.textpath := '';
|
Session.lang.textpath := '';
|
||||||
Session.lang.menupath := '';
|
Session.lang.menupath := '';
|
||||||
|
@ -63,28 +63,28 @@ Begin
|
||||||
Session.io.OutRawln ('B. Filename : ' + Session.Lang.FileName);
|
Session.io.OutRawln ('B. Filename : ' + Session.Lang.FileName);
|
||||||
Session.io.OutRawln ('C. Text Path : ' + Session.Lang.TextPath);
|
Session.io.OutRawln ('C. Text Path : ' + Session.Lang.TextPath);
|
||||||
Session.io.OutRawln ('D. Menu Path : ' + Session.Lang.MenuPath);
|
Session.io.OutRawln ('D. Menu Path : ' + Session.Lang.MenuPath);
|
||||||
Session.io.OutRawln ('M. Allow ASCII: ' + Session.io.OutYN(Session.Lang.okASCII));
|
Session.io.OutRawln ('M. Allow ASCII: ' + Session.io.OutYN(Session.Lang.Flags AND ThmAllowASCII <> 0));
|
||||||
Session.io.OutRawln ('N. Allow ANSI : ' + Session.io.OutYN(Session.Lang.okANSI));
|
Session.io.OutRawln ('N. Allow ANSI : ' + Session.io.OutYN(Session.Lang.Flags AND ThmAllowANSI <> 0));
|
||||||
|
|
||||||
Session.io.OutFullLn ('|CRE. Use Lightbar Y/N : ' + Session.io.OutYN(Session.Lang.BarYN));
|
Session.io.OutFullLn ('|CRE. Use Lightbar Y/N : ' + Session.io.OutYN(Session.Lang.Flags AND ThmLightbarYN <> 0));
|
||||||
Session.io.OutFull ('|03|16H. Input Field Color: ');
|
Session.io.OutFull ('|03|16H. Input Field Color: ');
|
||||||
Session.io.AnsiColor(Session.Lang.FieldCol1);
|
Session.io.AnsiColor(Session.Lang.FieldColor1);
|
||||||
Session.io.OutFullLn ('Test|03|16');
|
Session.io.OutFullLn ('Test|03|16');
|
||||||
|
|
||||||
Session.io.OutRaw ('I. Quote Bar Color : ');
|
Session.io.OutRaw ('I. Quote Bar Color : ');
|
||||||
Session.io.AnsiColor(Session.Lang.QuoteColor);
|
Session.io.AnsiColor(Session.Lang.QuoteColor);
|
||||||
Session.io.OutFullLn ('Test|03|16');
|
Session.io.OutFullLn ('Test|03|16');
|
||||||
|
|
||||||
Session.io.OutRawLn ('J. Echo Character : ' + Session.Lang.EchoCh);
|
Session.io.OutRawLn ('J. Echo Character : ' + Session.Lang.EchoChar);
|
||||||
Session.io.OutRawLn ('K. Input Character : ' + Session.Lang.FieldChar);
|
Session.io.OutRawLn ('K. Input Character : ' + Session.Lang.FieldChar);
|
||||||
Session.io.OutRawLn ('L. File Tag Char : ' + Session.Lang.TagCh);
|
Session.io.OutRawLn ('L. File Tag Char : ' + Session.Lang.TagChar);
|
||||||
|
|
||||||
Session.io.OutRaw ('O. File Search Hi : ');
|
Session.io.OutRaw ('O. File Search Hi : ');
|
||||||
Session.io.AnsiColor(Session.Lang.FileHI);
|
Session.io.AnsiColor(Session.Lang.FileDescHI);
|
||||||
Session.io.OutFullLn ('Test|03|16');
|
Session.io.OutFullLn ('Test|03|16');
|
||||||
|
|
||||||
Session.io.OutRaw ('P. File Desc. Lo : ');
|
Session.io.OutRaw ('P. File Desc. Lo : ');
|
||||||
Session.io.AnsiColor(Session.Lang.FileLO);
|
Session.io.AnsiColor(Session.Lang.FileDescLO);
|
||||||
Session.io.OutFullLn ('Test|03|16');
|
Session.io.OutFullLn ('Test|03|16');
|
||||||
|
|
||||||
Session.io.OutRawLn ('R. LB New Msg Char : ' + Session.Lang.NewMsgChar);
|
Session.io.OutRawLn ('R. LB New Msg Char : ' + Session.Lang.NewMsgChar);
|
||||||
|
@ -95,21 +95,21 @@ Begin
|
||||||
'B' : Session.Lang.filename := Session.io.InXY(17, 4, 8, 8, 11, Session.Lang.filename);
|
'B' : Session.Lang.filename := Session.io.InXY(17, 4, 8, 8, 11, Session.Lang.filename);
|
||||||
'C' : Session.Lang.textpath := CheckPath(Session.io.InXY(17, 5, 40, 40, 11, Session.Lang.textpath));
|
'C' : Session.Lang.textpath := CheckPath(Session.io.InXY(17, 5, 40, 40, 11, Session.Lang.textpath));
|
||||||
'D' : Session.Lang.menupath := CheckPath(Session.io.InXY(17, 6, 40, 40, 11, Session.Lang.MenuPath));
|
'D' : Session.Lang.menupath := CheckPath(Session.io.InXY(17, 6, 40, 40, 11, Session.Lang.MenuPath));
|
||||||
'E' : Session.Lang.BarYN := Not Session.Lang.BarYN;
|
'E' : Session.Lang.Flags := Session.Lang.Flags XOR ThmLightbarYN;
|
||||||
'H' : Session.Lang.FieldCol1 := getColor(Session.Lang.FieldCol1);
|
'H' : Session.Lang.FieldColor1 := getColor(Session.Lang.FieldColor1);
|
||||||
'I' : Session.Lang.QuoteColor := getColor(Session.Lang.QuoteColor);
|
'I' : Session.Lang.QuoteColor := getColor(Session.Lang.QuoteColor);
|
||||||
'J' : Begin Session.io.OutRaw ('Char: '); Session.Lang.EchoCh := Session.io.GetKey; End;
|
'J' : Begin Session.io.OutRaw ('Char: '); Session.Lang.EchoChar := Session.io.GetKey; End;
|
||||||
'K' : Begin
|
'K' : Begin
|
||||||
Session.io.OutRaw ('Char: ');
|
Session.io.OutRaw ('Char: ');
|
||||||
Session.Lang.FieldChar := Session.io.GetKey;
|
Session.Lang.FieldChar := Session.io.GetKey;
|
||||||
If Not (Session.Lang.FieldChar in [#32..#255]) Then
|
If Not (Session.Lang.FieldChar in [#32..#255]) Then
|
||||||
Session.Lang.FieldChar := ' ';
|
Session.Lang.FieldChar := ' ';
|
||||||
End;
|
End;
|
||||||
'L' : Begin Session.io.OutRaw ('Char: '); Session.Lang.TagCh := Session.io.GetKey; End;
|
'L' : Begin Session.io.OutRaw ('Char: '); Session.Lang.TagChar := Session.io.GetKey; End;
|
||||||
'M' : Session.Lang.okASCII := Not Session.Lang.okASCII;
|
'M' : Session.Lang.Flags := Session.Lang.Flags XOR ThmAllowASCII;
|
||||||
'N' : Session.Lang.okANSI := Not Session.Lang.okANSI;
|
'N' : Session.Lang.Flags := Session.Lang.Flags XOR ThmAllowANSI;
|
||||||
'O' : Session.Lang.FileHI := getColor(Session.Lang.FileHI);
|
'O' : Session.Lang.FileDescHI := getColor(Session.Lang.FileDescHI);
|
||||||
'P' : Session.Lang.FileLo := GetColor(Session.Lang.FileLO);
|
'P' : Session.Lang.FileDescLo := GetColor(Session.Lang.FileDescLO);
|
||||||
'Q' : break;
|
'Q' : break;
|
||||||
'R' : Begin Session.io.OutRaw('Char: '); Session.Lang.NewMsgChar := Session.io.GetKey; End;
|
'R' : Begin Session.io.OutRaw('Char: '); Session.Lang.NewMsgChar := Session.io.GetKey; End;
|
||||||
end;
|
end;
|
||||||
|
|
|
@ -82,7 +82,7 @@ Var
|
||||||
Box : TAnsiMenuBox;
|
Box : TAnsiMenuBox;
|
||||||
Image : TConsoleImageRec;
|
Image : TConsoleImageRec;
|
||||||
MenuPos : Array[0..4] of Byte = (1, 1, 1, 1, 1);
|
MenuPos : Array[0..4] of Byte = (1, 1, 1, 1, 1);
|
||||||
ThemeOld : LangRec;
|
ThemeOld : RecTheme;
|
||||||
Res : Char;
|
Res : Char;
|
||||||
|
|
||||||
Procedure BoxOpen (X1, Y1, X2, Y2: Byte);
|
Procedure BoxOpen (X1, Y1, X2, Y2: Byte);
|
||||||
|
@ -179,7 +179,7 @@ Begin
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
1 : Begin
|
1 : Begin
|
||||||
BoxOpen (4, 4, 33, 15);
|
BoxOpen (4, 4, 33, 16);
|
||||||
CoolBoxOpen (3, 'Configuration');
|
CoolBoxOpen (3, 'Configuration');
|
||||||
|
|
||||||
Form.AddNone ('S', ' S System Paths', 5, 5, 28, '');
|
Form.AddNone ('S', ' S System Paths', 5, 5, 28, '');
|
||||||
|
@ -192,6 +192,7 @@ Begin
|
||||||
Form.AddNone ('M', ' M Message Base Settings', 5, 12, 28, '');
|
Form.AddNone ('M', ' M Message Base Settings', 5, 12, 28, '');
|
||||||
Form.AddNone ('E', ' E Echomail Networks', 5, 13, 28, '');
|
Form.AddNone ('E', ' E Echomail Networks', 5, 13, 28, '');
|
||||||
Form.AddNone ('O', ' O Offline Mail Settings', 5, 14, 28, '');
|
Form.AddNone ('O', ' O Offline Mail Settings', 5, 14, 28, '');
|
||||||
|
Form.AddNone ('C', ' C Console Settings', 5, 15, 28, '');
|
||||||
|
|
||||||
Res := Form.Execute;
|
Res := Form.Execute;
|
||||||
MenuPos[1] := Form.ItemPos;
|
MenuPos[1] := Form.ItemPos;
|
||||||
|
@ -206,6 +207,7 @@ Begin
|
||||||
End Else
|
End Else
|
||||||
Case Res of
|
Case Res of
|
||||||
'S' : Configuration_SysPaths;
|
'S' : Configuration_SysPaths;
|
||||||
|
'G' : Configuration_GeneralSettings;
|
||||||
'L' : Configuration_LoginMatrix;
|
'L' : Configuration_LoginMatrix;
|
||||||
'E' : Configuration_EchoMailAddress(True);
|
'E' : Configuration_EchoMailAddress(True);
|
||||||
'3' : Configuration_OptionalFields;
|
'3' : Configuration_OptionalFields;
|
||||||
|
@ -214,6 +216,7 @@ Begin
|
||||||
'O' : Configuration_QWKSettings;
|
'O' : Configuration_QWKSettings;
|
||||||
'1' : Configuration_NewUser1Settings;
|
'1' : Configuration_NewUser1Settings;
|
||||||
'2' : Configuration_NewUser2Settings;
|
'2' : Configuration_NewUser2Settings;
|
||||||
|
'C' : Configuration_ConsoleSettings;
|
||||||
'X' : Break;
|
'X' : Break;
|
||||||
Else
|
Else
|
||||||
MenuPtr := 0;
|
MenuPtr := 0;
|
||||||
|
@ -284,10 +287,10 @@ Begin
|
||||||
End Else Begin
|
End Else Begin
|
||||||
ThemeOld := Session.Lang;
|
ThemeOld := Session.Lang;
|
||||||
|
|
||||||
Session.Lang.FieldCol1 := 15 + 1 * 16;
|
Session.Lang.FieldColor1 := 15 + 1 * 16;
|
||||||
Session.Lang.FieldCol2 := 9 + 1 * 16;
|
Session.Lang.FieldColor2 := 9 + 1 * 16;
|
||||||
Session.Lang.FieldChar := 'm';
|
Session.Lang.FieldChar := 'm';
|
||||||
Session.Lang.EchoCh := '*';
|
Session.Lang.EchoChar := '*';
|
||||||
|
|
||||||
Case Res of
|
Case Res of
|
||||||
'A' : Configuration_ArchiveEditor;
|
'A' : Configuration_ArchiveEditor;
|
||||||
|
|
|
@ -227,7 +227,7 @@ End;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
Old : String[8];
|
Old : String[8];
|
||||||
OldLang : LangRec;
|
OldLang : RecTheme;
|
||||||
DirInfo: SearchRec;
|
DirInfo: SearchRec;
|
||||||
A : Byte; {format dir output}
|
A : Byte; {format dir output}
|
||||||
Begin
|
Begin
|
||||||
|
@ -295,7 +295,7 @@ Begin
|
||||||
Session.Menu.MenuName := Old;
|
Session.Menu.MenuName := Old;
|
||||||
Session.Lang := OldLang;
|
Session.Lang := OldLang;
|
||||||
Close (Session.PromptFile);
|
Close (Session.PromptFile);
|
||||||
Assign (Session.PromptFile, Config.DataPath + Session.Lang.FileName + '.lng');
|
Assign (Session.PromptFile, Config.DataPath + Session.Lang.FileName + '.thm');
|
||||||
Reset (Session.PromptFile);
|
Reset (Session.PromptFile);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ Unit bbs_cfg_syscfg;
|
||||||
Interface
|
Interface
|
||||||
|
|
||||||
Procedure Configuration_SysPaths;
|
Procedure Configuration_SysPaths;
|
||||||
|
Procedure Configuration_GeneralSettings;
|
||||||
Procedure Configuration_LoginMatrix;
|
Procedure Configuration_LoginMatrix;
|
||||||
Procedure Configuration_OptionalFields;
|
Procedure Configuration_OptionalFields;
|
||||||
Function Configuration_EchomailAddress (Edit: Boolean) : Byte;
|
Function Configuration_EchomailAddress (Edit: Boolean) : Byte;
|
||||||
|
@ -19,6 +20,7 @@ Procedure Configuration_NNTPServer;
|
||||||
Procedure Configuration_MessageSettings;
|
Procedure Configuration_MessageSettings;
|
||||||
Procedure Configuration_NewUser1Settings;
|
Procedure Configuration_NewUser1Settings;
|
||||||
Procedure Configuration_NewUser2Settings;
|
Procedure Configuration_NewUser2Settings;
|
||||||
|
Procedure Configuration_ConsoleSettings;
|
||||||
|
|
||||||
Implementation
|
Implementation
|
||||||
|
|
||||||
|
@ -41,20 +43,62 @@ Begin
|
||||||
|
|
||||||
Box.Header := ' System Directories ';
|
Box.Header := ' System Directories ';
|
||||||
|
|
||||||
Box.Open (5, 7, 75, 17);
|
Box.Open (5, 6, 75, 18);
|
||||||
|
|
||||||
VerticalLine (27, 8, 16);
|
VerticalLine (26, 8, 16);
|
||||||
|
|
||||||
Form.AddPath ('S', ' System Path', 13, 8, 29, 8, 13, 45, mysMaxPathSize, @Config.SystemPath, Topic + 'Root Mystic BBS directory');
|
Form.AddPath ('S', ' System Path', 13, 8, 28, 8, 13, 45, mysMaxPathSize, @Config.SystemPath, Topic + 'Root Mystic BBS directory');
|
||||||
Form.AddPath ('D', ' Data File Path', 10, 9, 29, 9, 16, 45, mysMaxPathSize, @Config.DataPath, Topic + 'Data file directory');
|
Form.AddPath ('D', ' Data File Path', 10, 9, 28, 9, 16, 45, mysMaxPathSize, @Config.DataPath, Topic + 'Data file directory');
|
||||||
Form.AddPath ('L', ' Log File Path', 11, 10, 29, 10, 15, 45, mysMaxPathSize, @Config.LogsPath, Topic + 'Log file directory');
|
Form.AddPath ('L', ' Log File Path', 11, 10, 28, 10, 15, 45, mysMaxPathSize, @Config.LogsPath, Topic + 'Log file directory');
|
||||||
Form.AddPath ('M', ' Message Base Path', 7, 11, 29, 11, 19, 45, mysMaxPathSize, @Config.MsgsPath, Topic + 'Message base directory');
|
Form.AddPath ('M', ' Message Base Path', 7, 11, 28, 11, 19, 45, mysMaxPathSize, @Config.MsgsPath, Topic + 'Message base directory');
|
||||||
Form.AddPath ('A', ' File Attach Path', 8, 12, 29, 12, 18, 45, mysMaxPathSize, @Config.AttachPath, Topic + 'File attachment directory');
|
Form.AddPath ('A', ' File Attach Path', 8, 12, 28, 12, 18, 45, mysMaxPathSize, @Config.AttachPath, Topic + 'File attachment directory');
|
||||||
Form.AddPath ('E', ' Semaphore Path', 10, 13, 29, 13, 16, 45, mysMaxPathSize, @Config.SemaPath, Topic + 'Semaphore file directory');
|
Form.AddPath ('E', ' Semaphore Path', 10, 13, 28, 13, 16, 45, mysMaxPathSize, @Config.SemaPath, Topic + 'Semaphore file directory');
|
||||||
Form.AddPath ('U', ' Menu File Path', 10, 14, 29, 14, 16, 45, mysMaxPathSize, @Config.MenuPath, Topic + 'Default menu file directory');
|
Form.AddPath ('U', ' Menu File Path', 10, 14, 28, 14, 16, 45, mysMaxPathSize, @Config.MenuPath, Topic + 'Default menu file directory');
|
||||||
Form.AddPath ('T', ' Text File Path', 10, 15, 29, 15, 16, 45, mysMaxPathSize, @Config.TextPath, Topic + 'Default display file directory');
|
Form.AddPath ('T', ' Text File Path', 10, 15, 28, 15, 16, 45, mysMaxPathSize, @Config.TextPath, Topic + 'Default display file directory');
|
||||||
// Form.AddPath ('P', ' Template Path', 11, 16, 29, 16, 15, 45, mysMaxPathSize, @Config.TemplatePath, Topic + 'Default template file directory');
|
// Form.AddPath ('P', ' Template Path', 11, 16, 29, 16, 15, 45, mysMaxPathSize, @Config.TemplatePath, Topic + 'Default template file directory');
|
||||||
Form.AddPath ('R', ' Script Path', 13, 16, 29, 16, 13, 45, mysMaxPathSize, @Config.ScriptPath, Topic + 'Default script (MPL) directory');
|
Form.AddPath ('R', ' Script Path', 13, 16, 28, 16, 13, 45, mysMaxPathSize, @Config.ScriptPath, Topic + 'Default script (MPL) directory');
|
||||||
|
|
||||||
|
Form.Execute;
|
||||||
|
|
||||||
|
Form.Free;
|
||||||
|
|
||||||
|
Box.Close;
|
||||||
|
Box.Free;
|
||||||
|
End;
|
||||||
|
|
||||||
|
Procedure Configuration_GeneralSettings;
|
||||||
|
Var
|
||||||
|
Box : TAnsiMenuBox;
|
||||||
|
Form : TAnsiMenuForm;
|
||||||
|
Topic : String[80];
|
||||||
|
Begin
|
||||||
|
Topic := '|03(|09General Settings|03) |01-|09> |15';
|
||||||
|
|
||||||
|
Box := TAnsiMenuBox.Create;
|
||||||
|
Form := TAnsiMenuForm.Create;
|
||||||
|
|
||||||
|
Box.Open (5, 5, 75, 18);
|
||||||
|
|
||||||
|
VerticalLine (24, 7, 16);
|
||||||
|
VerticalLine (67, 7, 12);
|
||||||
|
|
||||||
|
Form.AddStr ('B', ' BBS Name', 14, 7, 26, 7, 10, 25, 30, @Config.BBSName, Topic);
|
||||||
|
Form.AddStr ('S', ' Sysop Name', 12, 8, 26, 8, 12, 25, 30, @Config.SysopName, Topic);
|
||||||
|
Form.AddPass ('Y', ' Sysop Password', 8, 9, 26, 9, 16, 15, 15, @Config.SysopPW, Topic);
|
||||||
|
Form.AddPass ('T', ' System Password', 7, 10, 26, 10, 17, 15, 15, @Config.SystemPW, Topic);
|
||||||
|
Form.AddStr ('O', ' Sysop ACS', 13, 11, 26, 11, 11, 25, 30, @Config.ACSSysop, 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 ('C', ' Fallback Menu', 9, 14, 26, 14, 15, 20, 20, @Config.DefFallMenu, Topic);
|
||||||
|
Form.AddStr ('H', ' Theme', 17, 15, 26, 15, 7, 20, 20, @Config.DefThemeFile, Topic);
|
||||||
|
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.AddByte ('R', ' Hours Start', 54, 8, 69, 8, 13, 2, 0, 24, @Config.ChatStart, Topic);
|
||||||
|
Form.AddByte ('N', ' Hours End', 56, 9, 69, 9, 11, 2, 0, 24, @Config.ChatEnd, Topic);
|
||||||
|
Form.AddBol ('D', ' Chat Feedback', 52, 10, 69, 10, 15, 3, @Config.ChatFeedback, Topic);
|
||||||
|
Form.AddByte ('Z', ' Screen Size', 54, 11, 69, 11, 13, 2, 1, 25, @Config.DefScreenSize, Topic);
|
||||||
|
Form.AddWord ('I', ' Inactivity', 55, 12, 69, 12, 12, 5, 0, 65535, @Config.Inactivity, Topic + 'Inactivity timeout (seconds) 0/Disable');
|
||||||
|
|
||||||
Form.Execute;
|
Form.Execute;
|
||||||
|
|
||||||
|
@ -306,7 +350,6 @@ Begin
|
||||||
|
|
||||||
Box.Close;
|
Box.Close;
|
||||||
Box.Free;
|
Box.Free;
|
||||||
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure Configuration_Internet;
|
Procedure Configuration_Internet;
|
||||||
|
@ -566,7 +609,6 @@ Begin
|
||||||
Box.Free;
|
Box.Free;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
|
||||||
Procedure Configuration_NewUser2Settings;
|
Procedure Configuration_NewUser2Settings;
|
||||||
Var
|
Var
|
||||||
Box : TAnsiMenuBox;
|
Box : TAnsiMenuBox;
|
||||||
|
@ -615,5 +657,37 @@ Begin
|
||||||
Box.Free;
|
Box.Free;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
Procedure Configuration_ConsoleSettings;
|
||||||
|
Var
|
||||||
|
Box : TAnsiMenuBox;
|
||||||
|
Form : TAnsiMenuForm;
|
||||||
|
Topic : String[80];
|
||||||
|
Count : Byte;
|
||||||
|
Begin
|
||||||
|
Topic := '|03(|09Console Settings|03) |01-|09> |15';
|
||||||
|
|
||||||
|
Box := TAnsiMenuBox.Create;
|
||||||
|
Form := TAnsiMenuForm.Create;
|
||||||
|
|
||||||
|
Box.Open (5, 5, 76, 16);
|
||||||
|
|
||||||
|
VerticalLine (17, 7, 14);
|
||||||
|
VerticalLine (64, 7, 10);
|
||||||
|
|
||||||
|
For Count := 1 to 8 Do
|
||||||
|
Form.AddStr (strI2S(Count)[1], ' F' + strI2S(Count) + ' Macro', 7, 6 + Count, 19, 6 + Count, 10, 30, 60, @Config.SysopMacro[Count], Topic);
|
||||||
|
|
||||||
|
Form.AddBol ('S', ' Status Bar', 52, 7, 66, 7, 12, 3, @Config.UseStatusBar, Topic);
|
||||||
|
Form.AddAttr ('1', ' Color 1', 55, 8, 66, 8, 9, @Config.StatusColor1, Topic);
|
||||||
|
Form.AddAttr ('2', ' Color 2', 55, 9, 66, 9, 9, @Config.StatusColor2, Topic);
|
||||||
|
Form.AddAttr ('3', ' Color 3', 55, 10, 66, 10, 9, @Config.StatusColor3, Topic);
|
||||||
|
|
||||||
|
Form.Execute;
|
||||||
|
Form.Free;
|
||||||
|
|
||||||
|
Box.Close;
|
||||||
|
Box.Free;
|
||||||
|
End;
|
||||||
|
|
||||||
|
|
||||||
End.
|
End.
|
||||||
|
|
|
@ -26,13 +26,13 @@ Type
|
||||||
IO : TBBSIO;
|
IO : TBBSIO;
|
||||||
Client : TSocketClass;
|
Client : TSocketClass;
|
||||||
EventFile : File of EventRec;
|
EventFile : File of EventRec;
|
||||||
LangFile : File of LangRec;
|
LangFile : File of RecTheme;
|
||||||
CommHandle : LongInt;
|
CommHandle : LongInt;
|
||||||
ShutDown : Boolean;
|
ShutDown : Boolean;
|
||||||
TempPath : String;
|
TempPath : String;
|
||||||
Event : EventRec;
|
Event : EventRec;
|
||||||
NextEvent : EventRec;
|
NextEvent : EventRec;
|
||||||
Lang : LangRec;
|
Lang : RecTheme;
|
||||||
LocalMode : Boolean;
|
LocalMode : Boolean;
|
||||||
Baud : LongInt;
|
Baud : LongInt;
|
||||||
ExitLevel : Byte;
|
ExitLevel : Byte;
|
||||||
|
@ -60,8 +60,8 @@ Type
|
||||||
HistoryDLKB : LongInt;
|
HistoryDLKB : LongInt;
|
||||||
HistoryULs : Word;
|
HistoryULs : Word;
|
||||||
HistoryULKB : LongInt;
|
HistoryULKB : LongInt;
|
||||||
PromptFile : File of PromptRec;
|
PromptFile : File of RecPrompt;
|
||||||
Prompt : PromptRec;
|
Prompt : RecPrompt;
|
||||||
|
|
||||||
Constructor Create;
|
Constructor Create;
|
||||||
Destructor Destroy; Override;
|
Destructor Destroy; Override;
|
||||||
|
@ -324,13 +324,13 @@ Begin
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
If strUpper(Lang.FileName) = strUpper(Str) Then Begin
|
If strUpper(Lang.FileName) = strUpper(Str) Then Begin
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
If Not FileExist(Config.DataPath + Lang.FileName + '.lng') Then Break;
|
If Not FileExist(Config.DataPath + Lang.FileName + '.thm') Then Break;
|
||||||
|
|
||||||
{$I-} Close (PromptFile); {$I+}
|
{$I-} Close (PromptFile); {$I+}
|
||||||
|
|
||||||
If IoResult <> 0 Then;
|
If IoResult <> 0 Then;
|
||||||
|
|
||||||
Assign (PromptFile, Config.DataPath + Lang.FileName + '.lng');
|
Assign (PromptFile, Config.DataPath + Lang.FileName + '.thm');
|
||||||
Reset (PromptFile);
|
Reset (PromptFile);
|
||||||
|
|
||||||
Result := True;
|
Result := True;
|
||||||
|
|
|
@ -1642,7 +1642,7 @@ Var
|
||||||
Screen.TextAttr := 255;
|
Screen.TextAttr := 255;
|
||||||
|
|
||||||
Insert (
|
Insert (
|
||||||
Session.io.Attr2Ansi(Session.Lang.FileLo),
|
Session.io.Attr2Ansi(Session.Lang.FileDescLo),
|
||||||
Temp,
|
Temp,
|
||||||
Pos(Data, strUpper(Temp)) + Length(Data)
|
Pos(Data, strUpper(Temp)) + Length(Data)
|
||||||
);
|
);
|
||||||
|
@ -1650,7 +1650,7 @@ Var
|
||||||
Screen.TextAttr := 255;
|
Screen.TextAttr := 255;
|
||||||
|
|
||||||
Insert (
|
Insert (
|
||||||
Session.io.Attr2Ansi(Session.Lang.FileHi),
|
Session.io.Attr2Ansi(Session.Lang.FileDescHi),
|
||||||
Temp,
|
Temp,
|
||||||
Pos(Data, strUpper(Temp)));
|
Pos(Data, strUpper(Temp)));
|
||||||
|
|
||||||
|
@ -1855,7 +1855,7 @@ Var
|
||||||
For A := 1 to BatchNum Do
|
For A := 1 to BatchNum Do
|
||||||
If Batch[A].FileName = FDir.FileName Then Begin
|
If Batch[A].FileName = FDir.FileName Then Begin
|
||||||
List[ListSize + 1].Batch := True;
|
List[ListSize + 1].Batch := True;
|
||||||
Session.io.PromptInfo[3] := Session.Lang.TagCh;
|
Session.io.PromptInfo[3] := Session.Lang.TagChar;
|
||||||
|
|
||||||
Break;
|
Break;
|
||||||
End;
|
End;
|
||||||
|
@ -1944,7 +1944,7 @@ Var
|
||||||
Session.io.PromptInfo[2] := List[CurPos].FileName;
|
Session.io.PromptInfo[2] := List[CurPos].FileName;
|
||||||
|
|
||||||
If List[CurPos].Batch Then
|
If List[CurPos].Batch Then
|
||||||
Session.io.PromptInfo[3] := Session.Lang.TagCh
|
Session.io.PromptInfo[3] := Session.Lang.TagChar
|
||||||
Else
|
Else
|
||||||
Session.io.PromptInfo[3] := ' ';
|
Session.io.PromptInfo[3] := ' ';
|
||||||
|
|
||||||
|
@ -1979,7 +1979,7 @@ Var
|
||||||
Session.io.PromptInfo[2] := List[CurPos].FileName;
|
Session.io.PromptInfo[2] := List[CurPos].FileName;
|
||||||
|
|
||||||
If List[CurPos].Batch Then
|
If List[CurPos].Batch Then
|
||||||
Session.io.PromptInfo[3] := Session.Lang.TagCh
|
Session.io.PromptInfo[3] := Session.Lang.TagChar
|
||||||
Else
|
Else
|
||||||
Session.io.PromptInfo[3] := ' ';
|
Session.io.PromptInfo[3] := ' ';
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ Type
|
||||||
Function OutON (O : Boolean) : String;
|
Function OutON (O : Boolean) : String;
|
||||||
Procedure PauseScreen;
|
Procedure PauseScreen;
|
||||||
Function MorePrompt : Char;
|
Function MorePrompt : Char;
|
||||||
Function DrawPercent (Bar : PercentRec; Part, Whole : SmallInt; Var Percent : SmallInt) : String;
|
Function DrawPercent (Bar : RecPercent; Part, Whole : SmallInt; Var Percent : SmallInt) : String;
|
||||||
Function GetInput (Field, Max, Mode: Byte; Default : String) : String;
|
Function GetInput (Field, Max, Mode: Byte; Default : String) : String;
|
||||||
Function InXY (X, Y, Field, Max, Mode: Byte; Default: String) : String;
|
Function InXY (X, Y, Field, Max, Mode: Byte; Default: String) : String;
|
||||||
Function InKey : Char;
|
Function InKey : Char;
|
||||||
|
@ -1338,7 +1338,7 @@ End;
|
||||||
|
|
||||||
Function TBBSIO.GetYN (Str: String; Yes: Boolean) : Boolean;
|
Function TBBSIO.GetYN (Str: String; Yes: Boolean) : Boolean;
|
||||||
Begin
|
Begin
|
||||||
If TBBSCore(Core).Lang.BarYN and (Graphics = 1) Then Begin
|
If (TBBSCore(Core).Lang.Flags AND ThmLightbarYN <> 0) and (Graphics = 1) Then Begin
|
||||||
GetYN := GetYNL(Str, Yes);
|
GetYN := GetYNL(Str, Yes);
|
||||||
Exit;
|
Exit;
|
||||||
End;
|
End;
|
||||||
|
@ -1428,7 +1428,7 @@ Var
|
||||||
Procedure pWrite (Str : String);
|
Procedure pWrite (Str : String);
|
||||||
Begin
|
Begin
|
||||||
If (Mode = 6) and (Str <> '') Then
|
If (Mode = 6) and (Str <> '') Then
|
||||||
BufAddStr (strRep(TBBSCore(Core).Lang.EchoCh, Length(Str)))
|
BufAddStr (strRep(TBBSCore(Core).Lang.EchoChar, Length(Str)))
|
||||||
Else
|
Else
|
||||||
BufAddStr (Str);
|
BufAddStr (Str);
|
||||||
End;
|
End;
|
||||||
|
@ -1438,9 +1438,9 @@ Var
|
||||||
AnsiMoveX (xPos);
|
AnsiMoveX (xPos);
|
||||||
|
|
||||||
pWrite (Copy(Str, Junk, Field));
|
pWrite (Copy(Str, Junk, Field));
|
||||||
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldCol2);
|
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldColor2);
|
||||||
pWrite (strRep(FieldCh, Field - Length(Copy(Str, Junk, Field))));
|
pWrite (strRep(FieldCh, Field - Length(Copy(Str, Junk, Field))));
|
||||||
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldCol1);
|
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldColor1);
|
||||||
|
|
||||||
AnsiMoveX (xPos + CurPos - 1);
|
AnsiMoveX (xPos + CurPos - 1);
|
||||||
End;
|
End;
|
||||||
|
@ -1448,9 +1448,9 @@ Var
|
||||||
Procedure ReDrawPart;
|
Procedure ReDrawPart;
|
||||||
Begin
|
Begin
|
||||||
pWrite (Copy(Str, StrPos, Field - CurPos + 1));
|
pWrite (Copy(Str, StrPos, Field - CurPos + 1));
|
||||||
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldCol2);
|
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldColor2);
|
||||||
pWrite (strRep(FieldCh, (Field - CurPos + 1) - Length(Copy(Str, StrPos, Field - CurPos + 1))));
|
pWrite (strRep(FieldCh, (Field - CurPos + 1) - Length(Copy(Str, StrPos, Field - CurPos + 1))));
|
||||||
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldCol1);
|
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldColor1);
|
||||||
|
|
||||||
AnsiMoveX (xPos + CurPos - 1);
|
AnsiMoveX (xPos + CurPos - 1);
|
||||||
End;
|
End;
|
||||||
|
@ -1509,9 +1509,9 @@ Begin
|
||||||
If UseInField and (Graphics = 1) Then Begin
|
If UseInField and (Graphics = 1) Then Begin
|
||||||
FieldCh := TBBSCore(Core).Lang.FieldChar;
|
FieldCh := TBBSCore(Core).Lang.FieldChar;
|
||||||
|
|
||||||
AnsiColor (TBBSCore(Core).Lang.FieldCol2);
|
AnsiColor (TBBSCore(Core).Lang.FieldColor2);
|
||||||
BufAddStr (strRep(FieldCh, Field));
|
BufAddStr (strRep(FieldCh, Field));
|
||||||
AnsiColor (TBBSCore(Core).Lang.FieldCol1);
|
AnsiColor (TBBSCore(Core).Lang.FieldColor1);
|
||||||
AnsiMoveX (xPos);
|
AnsiMoveX (xPos);
|
||||||
End Else
|
End Else
|
||||||
UseInField := False;
|
UseInField := False;
|
||||||
|
@ -1615,9 +1615,9 @@ Begin
|
||||||
ScrollLeft
|
ScrollLeft
|
||||||
Else
|
Else
|
||||||
If StrPos = Length(Str) + 1 Then Begin
|
If StrPos = Length(Str) + 1 Then Begin
|
||||||
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldCol2);
|
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldColor2);
|
||||||
BufAddStr (#8 + FieldCh + #8);
|
BufAddStr (#8 + FieldCh + #8);
|
||||||
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldCol1);
|
If UseInField Then AnsiColor(TBBSCore(Core).Lang.FieldColor1);
|
||||||
Dec (CurPos);
|
Dec (CurPos);
|
||||||
End Else Begin
|
End Else Begin
|
||||||
BufAddChar (#8);
|
BufAddChar (#8);
|
||||||
|
@ -1717,7 +1717,7 @@ Begin
|
||||||
InXY := GetInput (Field, Max, Mode, Default);
|
InXY := GetInput (Field, Max, Mode, Default);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Function TBBSIO.DrawPercent (Bar : PercentRec; Part, Whole : SmallInt; Var Percent : SmallInt) : String;
|
Function TBBSIO.DrawPercent (Bar: RecPercent; Part, Whole: SmallInt; Var Percent : SmallInt) : String;
|
||||||
Var
|
Var
|
||||||
FillSize : Byte;
|
FillSize : Byte;
|
||||||
Begin
|
Begin
|
||||||
|
@ -1730,12 +1730,12 @@ Begin
|
||||||
// Percent := 100;
|
// Percent := 100;
|
||||||
// this needs work...
|
// this needs work...
|
||||||
End Else Begin
|
End Else Begin
|
||||||
FillSize := Round(Part / Whole * Bar.BarLen);
|
FillSize := Round(Part / Whole * Bar.BarLength);
|
||||||
Percent := Round(Part / Whole * 100);
|
Percent := Round(Part / Whole * 100);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
DrawPercent := Attr2Ansi(Bar.HiAttr) + strRep(Bar.HiChar, FillSize) +
|
DrawPercent := Attr2Ansi(Bar.HiAttr) + strRep(Bar.HiChar, FillSize) +
|
||||||
Attr2Ansi(Bar.LoAttr) + strRep(Bar.LoChar, Bar.BarLen - FillSize);
|
Attr2Ansi(Bar.LoAttr) + strRep(Bar.LoChar, Bar.BarLength - FillSize);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
{$IFDEF UNIX}
|
{$IFDEF UNIX}
|
||||||
|
|
|
@ -398,7 +398,7 @@ Procedure TBBSUser.DetectGraphics;
|
||||||
Var
|
Var
|
||||||
Loop : Byte;
|
Loop : Byte;
|
||||||
Begin
|
Begin
|
||||||
If Not Session.Lang.okANSI Then Begin
|
If Session.Lang.Flags AND ThmAllowANSI = 0 Then Begin
|
||||||
Session.io.Graphics := 0;
|
Session.io.Graphics := 0;
|
||||||
Exit;
|
Exit;
|
||||||
End;
|
End;
|
||||||
|
@ -783,7 +783,7 @@ End;
|
||||||
|
|
||||||
Procedure TBBSUser.GetLanguage;
|
Procedure TBBSUser.GetLanguage;
|
||||||
Var
|
Var
|
||||||
Old : LangRec;
|
Old : RecTheme;
|
||||||
T : Byte;
|
T : Byte;
|
||||||
A : Byte;
|
A : Byte;
|
||||||
Begin
|
Begin
|
||||||
|
@ -795,8 +795,8 @@ Begin
|
||||||
Reset (Session.LangFile);
|
Reset (Session.LangFile);
|
||||||
Repeat
|
Repeat
|
||||||
Read (Session.LangFile, Session.Lang);
|
Read (Session.LangFile, Session.Lang);
|
||||||
If ((Not Session.Lang.okASCII) and (Session.io.Graphics = 0)) or
|
If ((Session.Lang.Flags AND ThmAllowASCII = 0) and (Session.io.Graphics = 0)) or
|
||||||
((Not Session.Lang.okANSI) and (Session.io.Graphics = 1)) Then Continue;
|
((Session.Lang.Flags AND ThmAllowANSI = 0) and (Session.io.Graphics = 1)) Then Continue;
|
||||||
Inc (T);
|
Inc (T);
|
||||||
Session.io.PromptInfo[1] := strI2S(T);
|
Session.io.PromptInfo[1] := strI2S(T);
|
||||||
Session.io.PromptInfo[2] := Session.Lang.Desc;
|
Session.io.PromptInfo[2] := Session.Lang.Desc;
|
||||||
|
@ -815,8 +815,8 @@ Begin
|
||||||
Reset (Session.LangFile);
|
Reset (Session.LangFile);
|
||||||
Repeat
|
Repeat
|
||||||
Read (Session.LangFile, Session.Lang);
|
Read (Session.LangFile, Session.Lang);
|
||||||
If ((Not Session.Lang.okASCII) and (Session.io.Graphics = 0)) or
|
If ((Session.Lang.Flags AND ThmAllowASCII = 0) and (Session.io.Graphics = 0)) or
|
||||||
((Not Session.Lang.okANSI) and (Session.io.Graphics = 1)) Then Continue;
|
((Session.Lang.Flags AND ThmAllowANSI = 0) and (Session.io.Graphics = 1)) Then Continue;
|
||||||
Inc (T);
|
Inc (T);
|
||||||
Until T = A;
|
Until T = A;
|
||||||
{ Close (Session.LangFile);}
|
{ Close (Session.LangFile);}
|
||||||
|
@ -1188,12 +1188,12 @@ Begin
|
||||||
If FileExist(Config.ScriptPath + 'startup.mpx') Then
|
If FileExist(Config.ScriptPath + 'startup.mpx') Then
|
||||||
ExecuteMPL(NIL, 'startup');
|
ExecuteMPL(NIL, 'startup');
|
||||||
|
|
||||||
If Not Session.Lang.okASCII and (Session.io.Graphics = 0) Then Begin
|
If (Session.Lang.Flags AND ThmAllowASCII = 0) and (Session.io.Graphics = 0) Then Begin
|
||||||
Session.io.OutFullLn (Session.GetPrompt(321));
|
Session.io.OutFullLn (Session.GetPrompt(321));
|
||||||
Session.SystemLog ('ASCII login disabled');
|
Session.SystemLog ('ASCII login disabled');
|
||||||
Halt(0);
|
Halt(0);
|
||||||
End Else
|
End Else
|
||||||
If Not Session.Lang.okANSI and (Session.io.Graphics = 1) Then Begin
|
If (Session.Lang.Flags AND ThmAllowANSI = 0) and (Session.io.Graphics = 1) Then Begin
|
||||||
Session.io.OutFullLn (Session.GetPrompt(322));
|
Session.io.OutFullLn (Session.GetPrompt(322));
|
||||||
Session.SystemLog ('ANSI login disabled');
|
Session.SystemLog ('ANSI login disabled');
|
||||||
Halt(0);
|
Halt(0);
|
||||||
|
@ -1287,7 +1287,7 @@ Begin
|
||||||
8 : GetDateFormat(True);
|
8 : GetDateFormat(True);
|
||||||
9 : Repeat
|
9 : Repeat
|
||||||
GetGraphics;
|
GetGraphics;
|
||||||
If (Not Session.Lang.okASCII and (Session.io.Graphics = 0)) or (Not Session.Lang.okANSI and (Session.io.Graphics = 1)) Then
|
If ((Session.Lang.Flags AND ThmAllowASCII = 0) and (Session.io.Graphics = 0)) or ((Session.Lang.Flags AND ThmAllowANSI = 0) and (Session.io.Graphics = 1)) Then
|
||||||
Session.io.OutFullLn (Session.GetPrompt(325))
|
Session.io.OutFullLn (Session.GetPrompt(325))
|
||||||
Else
|
Else
|
||||||
Break;
|
Break;
|
||||||
|
|
|
@ -237,7 +237,7 @@ Type
|
||||||
Var
|
Var
|
||||||
Txt : Array[1..5000] of ^TxtRec;
|
Txt : Array[1..5000] of ^TxtRec;
|
||||||
Config : RecConfig;
|
Config : RecConfig;
|
||||||
Lang : LangRec;
|
Lang : RecTheme;
|
||||||
|
|
||||||
Procedure ViewTextFile (FN : String);
|
Procedure ViewTextFile (FN : String);
|
||||||
Const
|
Const
|
||||||
|
@ -341,7 +341,7 @@ Begin
|
||||||
Assign (InFile, Config.SystemPath + 'default.txt');
|
Assign (InFile, Config.SystemPath + 'default.txt');
|
||||||
Reset (InFile);
|
Reset (InFile);
|
||||||
|
|
||||||
Assign (PromptFile, Config.DataPath + 'default.lng');
|
Assign (PromptFile, Config.DataPath + 'default.thm');
|
||||||
ReWrite (PromptFile);
|
ReWrite (PromptFile);
|
||||||
|
|
||||||
While Not Eof(InFile) Do Begin
|
While Not Eof(InFile) Do Begin
|
||||||
|
@ -399,11 +399,11 @@ Var
|
||||||
CfgFile : File of RecConfig;
|
CfgFile : File of RecConfig;
|
||||||
MBaseFile : File of RecMessageBase;
|
MBaseFile : File of RecMessageBase;
|
||||||
FBaseFile : File of RecFileBase;
|
FBaseFile : File of RecFileBase;
|
||||||
LangFile : File of LangRec;
|
LangFile : File of RecTheme;
|
||||||
Cfg : RecConfig;
|
Cfg : RecConfig;
|
||||||
MBase : RecMessageBase;
|
MBase : RecMessageBase;
|
||||||
FBase : RecFileBase;
|
FBase : RecFileBase;
|
||||||
TLang : LangRec;
|
TLang : RecTheme;
|
||||||
TF : Text;
|
TF : Text;
|
||||||
Begin
|
Begin
|
||||||
Screen.WriteXYPipe (23, 19, 7, 45, '|08[|15û|08] |07Updating data files|08...');
|
Screen.WriteXYPipe (23, 19, 7, 45, '|08[|15û|08] |07Updating data files|08...');
|
||||||
|
|
|
@ -138,7 +138,9 @@ Procedure CheckDIR (Dir: String);
|
||||||
Begin
|
Begin
|
||||||
If Not FileDirExists(Dir) Then Begin
|
If Not FileDirExists(Dir) Then Begin
|
||||||
Screen.WriteLine ('ERROR: ' + Dir + ' does not exist.');
|
Screen.WriteLine ('ERROR: ' + Dir + ' does not exist.');
|
||||||
|
|
||||||
DisposeClasses;
|
DisposeClasses;
|
||||||
|
|
||||||
Halt(1);
|
Halt(1);
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
@ -184,14 +186,15 @@ Begin
|
||||||
End;
|
End;
|
||||||
|
|
||||||
If Session.NodeNum = 0 Then Begin
|
If Session.NodeNum = 0 Then Begin
|
||||||
WriteLn ('BUSY');
|
WriteLn ('BUSY'); {++lang}
|
||||||
|
|
||||||
DisposeClasses;
|
DisposeClasses;
|
||||||
|
|
||||||
Halt;
|
Halt;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
fpSignal (SIGTERM, LinuxEventSignal);
|
fpSignal (SIGTERM, LinuxEventSignal);
|
||||||
fpSignal (SIGHUP, LinuxEventSignal);
|
fpSignal (SIGHUP, LinuxEventSignal);
|
||||||
// do we need sigusr1 and sigusr2 installed?
|
|
||||||
|
|
||||||
Write (#27 + '(U');
|
Write (#27 + '(U');
|
||||||
End;
|
End;
|
||||||
|
@ -200,7 +203,6 @@ End;
|
||||||
Procedure CheckPathsAndDataFiles;
|
Procedure CheckPathsAndDataFiles;
|
||||||
Var
|
Var
|
||||||
Count : Byte;
|
Count : Byte;
|
||||||
PR : PercentRec;
|
|
||||||
Begin
|
Begin
|
||||||
Randomize;
|
Randomize;
|
||||||
|
|
||||||
|
@ -213,7 +215,7 @@ Begin
|
||||||
|
|
||||||
DirClean(Session.TempPath, '');
|
DirClean(Session.TempPath, '');
|
||||||
|
|
||||||
Assign (Session.LangFile, Config.DataPath + 'language.dat');
|
Assign (Session.LangFile, Config.DataPath + 'theme.dat');
|
||||||
{$I-} Reset (Session.LangFile); {$I+}
|
{$I-} Reset (Session.LangFile); {$I+}
|
||||||
If IoResult <> 0 Then Begin
|
If IoResult <> 0 Then Begin
|
||||||
Screen.WriteLine ('ERROR: No theme configuration. Use MYSTIC -CFG');
|
Screen.WriteLine ('ERROR: No theme configuration. Use MYSTIC -CFG');
|
||||||
|
@ -224,7 +226,7 @@ Begin
|
||||||
|
|
||||||
If Not Session.LoadThemeData(Config.DefThemeFile) Then Begin
|
If Not Session.LoadThemeData(Config.DefThemeFile) Then Begin
|
||||||
If Not Session.ConfigMode Then Begin
|
If Not Session.ConfigMode Then Begin
|
||||||
Screen.WriteLine ('ERROR: Default theme prompts not found [' + Config.DefThemeFile + '.lng]');
|
Screen.WriteLine ('ERROR: Default theme prompts not found [' + Config.DefThemeFile + '.thm]');
|
||||||
DisposeClasses;
|
DisposeClasses;
|
||||||
Halt(1);
|
Halt(1);
|
||||||
End;
|
End;
|
||||||
|
@ -404,9 +406,11 @@ Begin
|
||||||
|
|
||||||
If Session.ConfigMode Then Begin
|
If Session.ConfigMode Then Begin
|
||||||
Configuration_MainMenu;
|
Configuration_MainMenu;
|
||||||
|
|
||||||
Screen.TextAttr := 7;
|
Screen.TextAttr := 7;
|
||||||
Screen.ClearScreen;
|
Screen.ClearScreen;
|
||||||
Screen.BufFlush;
|
Screen.BufFlush;
|
||||||
|
|
||||||
Halt(0);
|
Halt(0);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,10 @@
|
||||||
{$PACKRECORDS 1}
|
{$PACKRECORDS 1}
|
||||||
|
|
||||||
Const
|
Const
|
||||||
mysSoftwareID = 'Mystic';
|
mysSoftwareID = 'Mystic'; // no idea
|
||||||
mysCopyYear = '1997-2012';
|
mysCopyYear = '1997-2012'; // its been a long time!
|
||||||
mysVersion = '1.10 A11';
|
mysVersion = '1.10 A11'; // current version
|
||||||
mysDataChanged = '1.10 A11';
|
mysDataChanged = '1.10 A11'; // version of last records change
|
||||||
|
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
PathChar = '\';
|
PathChar = '\';
|
||||||
|
@ -38,23 +38,23 @@ Const
|
||||||
OSType = 2;
|
OSType = 2;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
mysMaxAcsSize = 30; // Max ACS string size
|
mysMaxAcsSize = 30; // Max ACS string size
|
||||||
mysMaxPathSize = 80;
|
mysMaxPathSize = 80;
|
||||||
mysMaxMsgLines = 1000; // Max message base lines
|
mysMaxMsgLines = 1000; // Max message base lines
|
||||||
mysMaxInputHistory = 5; // Input history stack size
|
mysMaxInputHistory = 5; // Input history stack size
|
||||||
mysMaxFileDescLen = 50;
|
mysMaxFileDescLen = 50; // file description length per line
|
||||||
mysMaxBatchQueue = 50;
|
mysMaxBatchQueue = 50; // max files per queue
|
||||||
mysMaxVoteQuestion = 20; { Max number of voting questions }
|
mysMaxVoteQuestion = 20; // Max number of voting questions
|
||||||
mysMaxMenuNameLen = 20;
|
mysMaxMenuNameLen = 20; // menu name size
|
||||||
mysMaxMenuCmds = 75; { Maximum menu commands per menu }
|
mysMaxMenuCmds = 75; // Maximum menu commands per menu
|
||||||
mysMaxLanguageStr = 478; { Total # of strings in language file }
|
mysMaxThemeText = 478; // Total prompts in theme file
|
||||||
|
|
||||||
Type
|
Type
|
||||||
SmallWord = System.Word;
|
SmallWord = System.Word;
|
||||||
Integer = SmallInt; { force Integer to be a 2-byte signed }
|
Integer = SmallInt;
|
||||||
Word = SmallWord;
|
Word = SmallWord;
|
||||||
|
|
||||||
RecMessageText = Array[1..mysMaxMsgLines] of String[79];
|
RecMessageText = Array[1..mysMaxMsgLines] of String[79]; // large global msg buffer is bad
|
||||||
|
|
||||||
AccessFlagType = Set of 1..25;
|
AccessFlagType = Set of 1..25;
|
||||||
|
|
||||||
|
@ -101,11 +101,11 @@ Type
|
||||||
DefStartMenu : String[20]; // Default start menu
|
DefStartMenu : String[20]; // Default start menu
|
||||||
DefFallMenu : String[20];
|
DefFallMenu : String[20];
|
||||||
DefThemeFile : String[20];
|
DefThemeFile : String[20];
|
||||||
DefTermMode : Byte;
|
DefTermMode : Byte; // 0=ask 1=detect 2=detect/ask 3=ansi
|
||||||
DefScreenSize : Byte;
|
DefScreenSize : Byte;
|
||||||
DefScreenCols : Byte;
|
DefScreenCols : Byte;
|
||||||
ChatStart : SmallInt; // Chat hour start
|
ChatStart : Byte; // Chat hour start
|
||||||
ChatEnd : SmallInt; // Chat hour end: mins since midnight
|
ChatEnd : Byte; // Chat hour end
|
||||||
ChatFeedback : Boolean; // E-mail sysop if page isn't answered
|
ChatFeedback : Boolean; // E-mail sysop if page isn't answered
|
||||||
ChatLogging : Boolean; // Record SysOp chat to CHAT.LOG?
|
ChatLogging : Boolean; // Record SysOp chat to CHAT.LOG?
|
||||||
AcsSysop : String[mysMaxAcsSize];
|
AcsSysop : String[mysMaxAcsSize];
|
||||||
|
@ -123,7 +123,7 @@ Type
|
||||||
AcsSeeInvis : String[mysMaxAcsSize];
|
AcsSeeInvis : String[mysMaxAcsSize];
|
||||||
AcsMultiLogin : String[mysMaxAcsSize];
|
AcsMultiLogin : String[mysMaxAcsSize];
|
||||||
// CONSOLE SETTINGS
|
// CONSOLE SETTINGS
|
||||||
SysopMacro : Array[1..4] of String[80]; // Sysop Macros f1-f4
|
SysopMacro : Array[1..8] of String[60]; // Sysop Macros f1-f8
|
||||||
UseStatusBar : Boolean;
|
UseStatusBar : Boolean;
|
||||||
StatusColor1 : Byte;
|
StatusColor1 : Byte;
|
||||||
StatusColor2 : Byte;
|
StatusColor2 : Byte;
|
||||||
|
@ -136,7 +136,7 @@ Type
|
||||||
StartMGroup : Word;
|
StartMGroup : Word;
|
||||||
StartFGroup : Word;
|
StartFGroup : Word;
|
||||||
UseUSAPhone : Boolean;
|
UseUSAPhone : Boolean;
|
||||||
UserNameFormat : Byte;
|
UserNameFormat : Byte; // 0=typed 1=upper 2=lower 3=proper
|
||||||
// NEW USER SETTINGS 2
|
// NEW USER SETTINGS 2
|
||||||
UserDateType : Byte; // 1=MM/DD/YY 2=DD/MM/YY 3=YY/DD/MM 4=Ask
|
UserDateType : Byte; // 1=MM/DD/YY 2=DD/MM/YY 3=YY/DD/MM 4=Ask
|
||||||
UserEditorType : Byte; // 0=Line 1=Full 2=Ask
|
UserEditorType : Byte; // 0=Line 1=Full 2=Ask
|
||||||
|
@ -144,9 +144,9 @@ Type
|
||||||
UserFullChat : Byte; // 0=no 1=yes 2=ask
|
UserFullChat : Byte; // 0=no 1=yes 2=ask
|
||||||
UserFileList : Byte; // 0=Normal 1=Lightbar 2=Ask
|
UserFileList : Byte; // 0=Normal 1=Lightbar 2=Ask
|
||||||
UserReadType : Byte; // 0=normal 1=ansi 2=ask
|
UserReadType : Byte; // 0=normal 1=ansi 2=ask
|
||||||
UserMailIndex : Byte;
|
UserMailIndex : Byte; // 0=normal 1=ansi 2=ask
|
||||||
UserReadIndex : Byte;
|
UserReadIndex : Byte; // 0=normal 1=ansi 2=ask
|
||||||
UserQuoteWin : Byte;
|
UserQuoteWin : Byte; // 0=line 1=window 2=ask
|
||||||
UserProtocol : Byte;
|
UserProtocol : Byte;
|
||||||
AskTheme : Boolean;
|
AskTheme : Boolean;
|
||||||
AskRealName : Boolean;
|
AskRealName : Boolean;
|
||||||
|
@ -264,9 +264,9 @@ Const
|
||||||
UserNoPWChange = $00000020;
|
UserNoPWChange = $00000020;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
RecUser = Record { USERS.DAT }
|
RecUser = Record // USERS.DAT
|
||||||
PermIdx : LongInt; // permanent user number
|
PermIdx : LongInt; // permanent user number
|
||||||
Flags : LongInt; { User Flags }
|
Flags : LongInt; // User Flags bitmap
|
||||||
Handle : String[30]; { Handle }
|
Handle : String[30]; { Handle }
|
||||||
RealName : String[30]; { Real Name }
|
RealName : String[30]; { Real Name }
|
||||||
Password : String[15]; { Password }
|
Password : String[15]; { Password }
|
||||||
|
@ -280,7 +280,7 @@ Type
|
||||||
Email : String[60]; { email address }
|
Email : String[60]; { email address }
|
||||||
Optional : Array[1..10] of String[60];
|
Optional : Array[1..10] of String[60];
|
||||||
UserInfo : String[30]; { user comment field }
|
UserInfo : String[30]; { user comment field }
|
||||||
Theme : String[20]; { user's language file }
|
Theme : String[20]; // user's theme file
|
||||||
AF1 : AccessFlagType;
|
AF1 : AccessFlagType;
|
||||||
AF2 : AccessFlagType; { access flags set #2 }
|
AF2 : AccessFlagType; { access flags set #2 }
|
||||||
Security : SmallInt; { Security Level }
|
Security : SmallInt; { Security Level }
|
||||||
|
@ -398,16 +398,16 @@ Const
|
||||||
MBCrossPost = $00000020;
|
MBCrossPost = $00000020;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
RecMessageBase = Record
|
RecMessageBase = Record // MBASES.DAT
|
||||||
Name : String[40];
|
Name : String[40];
|
||||||
QWKName : String[13];
|
QWKName : String[13]; // ancient standard.. qwk base name
|
||||||
NewsName : String[60];
|
NewsName : String[60]; // newsgroup name spaces are replaced with .
|
||||||
FileName : String[40];
|
FileName : String[40];
|
||||||
Path : String[mysMaxPathSize];
|
Path : String[mysMaxPathSize];
|
||||||
BaseType : Byte; // 0=JAM 1=Squish
|
BaseType : Byte; // 0=JAM 1=Squish
|
||||||
NetType : Byte; // 0=Local 1=Echo 2=News 3=Net
|
NetType : Byte; // 0=Local 1=Echo 2=News 3=Net
|
||||||
ReadType : Byte; // 0=User 1=Normal 2=FS
|
ReadType : Byte; // 0=User 1=Normal 2=FS
|
||||||
ListType : Byte; // 0=User 1=Normal 2=FS
|
ListType : Byte; // 0=User 1=Normal 2=FS
|
||||||
ListACS : String[mysMaxAcsSize];
|
ListACS : String[mysMaxAcsSize];
|
||||||
ReadACS : String[mysMaxAcsSize];
|
ReadACS : String[mysMaxAcsSize];
|
||||||
PostACS : String[mysMaxAcsSize];
|
PostACS : String[mysMaxAcsSize];
|
||||||
|
@ -419,18 +419,18 @@ Type
|
||||||
ColTear : Byte;
|
ColTear : Byte;
|
||||||
ColOrigin : Byte;
|
ColOrigin : Byte;
|
||||||
ColKludge : Byte;
|
ColKludge : Byte;
|
||||||
NetAddr : Byte; // Net AKA to use for this base
|
NetAddr : Byte; // Net AKA to use for this base
|
||||||
Origin : String[50]; // Net origin line for this base
|
Origin : String[50]; // Net origin line for this base
|
||||||
DefNScan : Byte; // 0 = off, 1 = on, 2 = forced
|
DefNScan : Byte; // 0 = off, 1 = on, 2 = forced
|
||||||
DefQScan : Byte; // 0 = off, 1 = on, 2 = forced
|
DefQScan : Byte; // 0 = off, 1 = on, 2 = forced
|
||||||
MaxMsgs : Word;
|
MaxMsgs : Word; // max messages allowed (used for squish)
|
||||||
MaxAge : Word;
|
MaxAge : Word; // max days to keep msg (used for squish)
|
||||||
Header : String[20];
|
Header : String[20]; // standard reader msgheader
|
||||||
RTemplate : String[20];
|
RTemplate : String[20]; // fullscreen reader template
|
||||||
ITemplate : String[20];
|
ITemplate : String[20]; // lightbar index template
|
||||||
Index : Word;
|
Index : Word; // permanent index
|
||||||
Flags : LongInt;
|
Flags : LongInt; // MB flag bits see above
|
||||||
Res : Array[1..80] of Byte;
|
Res : Array[1..80] of Byte; // RESERVED
|
||||||
End;
|
End;
|
||||||
|
|
||||||
FScanRec = Record { <Data Path> *.SCN }
|
FScanRec = Record { <Data Path> *.SCN }
|
||||||
|
@ -461,6 +461,7 @@ Type
|
||||||
DefScan : Byte;
|
DefScan : Byte;
|
||||||
Flags : LongInt;
|
Flags : LongInt;
|
||||||
Res : Array[1..36] of Byte;
|
Res : Array[1..36] of Byte;
|
||||||
|
//echomail network adresss?
|
||||||
End;
|
End;
|
||||||
|
|
||||||
(* The file directory listing are stored as <FBaseRec.FileName>.DIR in *)
|
(* The file directory listing are stored as <FBaseRec.FileName>.DIR in *)
|
||||||
|
@ -551,14 +552,10 @@ Type
|
||||||
HiChar : Char;
|
HiChar : Char;
|
||||||
HiAttr : Byte;
|
HiAttr : Byte;
|
||||||
Format : Byte;
|
Format : Byte;
|
||||||
End;
|
StartY : Byte;
|
||||||
|
EndY : Byte;
|
||||||
PercentRec = Record // percentage bar record
|
StartX : Byte;
|
||||||
BarLen : Byte;
|
RESERVED : LongInt;
|
||||||
LoChar : Char;
|
|
||||||
LoAttr : Byte;
|
|
||||||
HiChar : Char;
|
|
||||||
HiAttr : Byte;
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Const
|
Const
|
||||||
|
@ -569,13 +566,16 @@ Const
|
||||||
|
|
||||||
Type
|
Type
|
||||||
RecTheme = Record
|
RecTheme = Record
|
||||||
|
Flags : LongInt;
|
||||||
FileName : String[20];
|
FileName : String[20];
|
||||||
Desc : String[40];
|
Desc : String[40];
|
||||||
TextPath : String[mysMaxPathSize];
|
TextPath : String[mysMaxPathSize];
|
||||||
MenuPath : String[mysMaxPathSize];
|
MenuPath : String[mysMaxPathSize];
|
||||||
ScriptPath : String[mysMaxPathSize];
|
ScriptPath : String[mysMaxPathSize];
|
||||||
TemplatePath : String[mysMaxPathSize];
|
TemplatePath : String[mysMaxPathSize];
|
||||||
Flags : LongInt;
|
LineChat1 : Byte;
|
||||||
|
LineChat2 : Byte;
|
||||||
|
UserInputFmt : Byte;
|
||||||
FieldColor1 : Byte;
|
FieldColor1 : Byte;
|
||||||
FieldColor2 : Byte;
|
FieldColor2 : Byte;
|
||||||
FieldChar : Char;
|
FieldChar : Char;
|
||||||
|
@ -585,38 +585,21 @@ Type
|
||||||
FileDescHi : Byte;
|
FileDescHi : Byte;
|
||||||
FileDescLo : Byte;
|
FileDescLo : Byte;
|
||||||
NewMsgChar : Char;
|
NewMsgChar : Char;
|
||||||
|
NewVoteChar : Char;
|
||||||
VotingBar : RecPercent;
|
VotingBar : RecPercent;
|
||||||
FileBar : RecPercent;
|
FileBar : RecPercent;
|
||||||
MsgBar : RecPercent;
|
MsgBar : RecPercent;
|
||||||
GalleryBar : RecPercent;
|
GalleryBar : RecPercent;
|
||||||
HelpBar : RecPercent;
|
HelpBar : RecPercent;
|
||||||
ViewerBar : RecPercent;
|
ViewerBar : RecPercent;
|
||||||
ThemeColor : Array['A'..'Z'] of Byte; //or 0..9 is this overkill?
|
IndexBar : RecPercent;
|
||||||
// grep ++lang
|
FAreaBar : RecPercent;
|
||||||
End;
|
FGroupBar : RecPercent;
|
||||||
|
MAreaBar : RecPercent;
|
||||||
LangRec = Record { LANGUAGE.DAT }
|
MGroupBar : RecPercent;
|
||||||
FileName : String[8]; { Language file name }
|
MAreaList : RecPercent;
|
||||||
Desc : String[30]; { Language description }
|
Colors : Array[0..9] of Byte;
|
||||||
TextPath : String[40]; { Path where text files are stored }
|
Reserved : Array[1..199] of Byte;
|
||||||
MenuPath : String[40]; { Path where menu files are stored }
|
|
||||||
okASCII : Boolean; { Allow ASCII }
|
|
||||||
okANSI : Boolean; { Allow ANSI }
|
|
||||||
BarYN : Boolean; { Use Lightbar Y/N with this lang }
|
|
||||||
FieldCol1 : Byte; { Field input color }
|
|
||||||
FieldCol2 : Byte;
|
|
||||||
FieldChar : Char;
|
|
||||||
EchoCh : Char; { Password echo character }
|
|
||||||
QuoteColor : Byte; { Color for quote lightbar }
|
|
||||||
TagCh : Char; { File Tagged Char }
|
|
||||||
FileHi : Byte; { Color of file search highlight }
|
|
||||||
FileLo : Byte; { Non lightbar description color }
|
|
||||||
NewMsgChar : Char; { Lightbar Msg Index New Msg Char }
|
|
||||||
VotingBar : PercentRec; { voting booth bar }
|
|
||||||
FileBar : PercentRec; { file list bar }
|
|
||||||
MsgBar : PercentRec; { lightbar msg reader bar }
|
|
||||||
GalleryBar : PercentRec;
|
|
||||||
Reserved : Array[1..95] of Byte; { RESERVED }
|
|
||||||
End;
|
End;
|
||||||
|
|
||||||
BBSListRec = Record
|
BBSListRec = Record
|
||||||
|
@ -725,7 +708,7 @@ Type
|
||||||
RecvCmd : String[60];
|
RecvCmd : String[60];
|
||||||
End;
|
End;
|
||||||
|
|
||||||
PromptRec = String[255];
|
RecPrompt = String[255];
|
||||||
|
|
||||||
NodeMsgRec = Record
|
NodeMsgRec = Record
|
||||||
FromNode : Byte;
|
FromNode : Byte;
|
||||||
|
|
|
@ -14,14 +14,11 @@ BUGS AND POSSIBLE ISSUES
|
||||||
! After data file review, add missing variables to various MPL Get/Put
|
! After data file review, add missing variables to various MPL Get/Put
|
||||||
functions.
|
functions.
|
||||||
! MYSTPACK has access denied errors (caphood)
|
! MYSTPACK has access denied errors (caphood)
|
||||||
? Reapern66 has expressed that the minimal CPU requirements may be too
|
|
||||||
agressive. Work with him to sort out his baseline, and potentially reduce
|
|
||||||
the CPU requirement for new versions. Or just tell people the code is
|
|
||||||
already available GPL and let them compile it if it is a problem?
|
|
||||||
! RAR internal viewer does not work with files that have embedded comments
|
! RAR internal viewer does not work with files that have embedded comments
|
||||||
! Investigate strange crashing when Mystic is built in the FPC editor vs
|
! Investigate strange crashing when Mystic is built in the FPC editor vs
|
||||||
the makewin script. Something is out of whack with compiler options? OR
|
the makewin script. Something is out of whack with compiler options? OR
|
||||||
FPC BUG? DirAttr is suspect in MPL is it 1 byte or 4 in size?
|
FPC BUG? DirAttr is suspect in MPL is it 1 byte or 4 in size?
|
||||||
|
! MDL screensave/restore in local console is broken in Windows(?) only?
|
||||||
|
|
||||||
FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
||||||
=========================================
|
=========================================
|
||||||
|
@ -35,7 +32,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 ANSI help system
|
- Online ANSI help system
|
||||||
- Finish System Configuration rewrite
|
|
||||||
- Finish Data structure review
|
- Finish Data structure review
|
||||||
- NEWAPP.MPS
|
- NEWAPP.MPS
|
||||||
- Online text editor / ansi editor?
|
- Online text editor / ansi editor?
|
||||||
|
@ -44,7 +40,6 @@ FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
||||||
- File comments and rating system
|
- File comments and rating system
|
||||||
- Global node message menu command (0;) = add option to ignore your own node
|
- Global node message menu command (0;) = add option to ignore your own node
|
||||||
- Integrate eventual online ANSI help system into configuration utilities
|
- Integrate eventual online ANSI help system into configuration utilities
|
||||||
- FUPLOAD command that does an automated Mass Upload from MBBSUTIL
|
|
||||||
- LEET "TIMER" event menu commands from Mystic 2
|
- LEET "TIMER" event menu commands from Mystic 2
|
||||||
- In fact, replace entire menu engine iwth Mystic 2 engine which is SO far
|
- In fact, replace entire menu engine iwth Mystic 2 engine which is SO far
|
||||||
beyond anything built in ever... But converting old menus will be the
|
beyond anything built in ever... But converting old menus will be the
|
||||||
|
@ -65,7 +60,6 @@ FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
||||||
- NNTP server completion
|
- NNTP server completion
|
||||||
- MBBSCGI (or PHP DLL) [Grymmjack might have the only MBBSCGI copy]
|
- MBBSCGI (or PHP DLL) [Grymmjack might have the only MBBSCGI copy]
|
||||||
- If not the above then finish the HTTP server?
|
- If not the above then finish the HTTP server?
|
||||||
- Rework code base to compile with newly released FPC (2.6.0).
|
|
||||||
- SDL versions of m_input and m_output and also use SDL if that becomes
|
- SDL versions of m_input and m_output and also use SDL if that becomes
|
||||||
reality for the ability to play WAV/MP3/MIDI files etc as SysOp
|
reality for the ability to play WAV/MP3/MIDI files etc as SysOp
|
||||||
notification of events and pages. Maybe someone else can take on creating
|
notification of events and pages. Maybe someone else can take on creating
|
||||||
|
@ -94,12 +88,16 @@ FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
||||||
- Rename Template filenames to allow more than 8 characters (for clarity)
|
- Rename Template filenames to allow more than 8 characters (for clarity)
|
||||||
- Does anyone use Version 7 compiled nodelists? Worth supporting?
|
- Does anyone use Version 7 compiled nodelists? Worth supporting?
|
||||||
- Ignore user inactivity flag per user
|
- Ignore user inactivity flag per user
|
||||||
- HOME and END keys added to lightbar file listings
|
|
||||||
- Default protocol per user
|
- Default protocol per user
|
||||||
- ANSI message upload post processor option: Auto/Disabled/Ask
|
- ANSI message upload post processor option: Auto/Disabled/Ask
|
||||||
- Prompt for disconect after UL or DL (and add option to filebase settings)
|
- Prompt for disconect after UL or DL (and add option to filebase settings)
|
||||||
- Finish optional user prompts
|
- Finish optional user prompts
|
||||||
- MCI code for FS ansi viewer?
|
- MCI code for FS ansi viewer?
|
||||||
|
- MCI code for # of files in current file area
|
||||||
|
- Redo random ANSI system to use A-Z instead of 1-9 can have upgrade util
|
||||||
|
rename them automatically.
|
||||||
|
- ANSI listbox is terribly inefficient with its output.
|
||||||
|
- So much cool stuff to do with the new themes
|
||||||
|
|
||||||
RANDOM DRUNKEN BRAINDUMP AKA DESIGN DETAILS
|
RANDOM DRUNKEN BRAINDUMP AKA DESIGN DETAILS
|
||||||
===========================================
|
===========================================
|
||||||
|
|
Loading…
Reference in New Issue