diff --git a/Projects/ScriptManager/project1.lpi b/Projects/ScriptManager/project1.lpi
index 4e808df..4d27472 100644
--- a/Projects/ScriptManager/project1.lpi
+++ b/Projects/ScriptManager/project1.lpi
@@ -10,8 +10,10 @@
-
+
+
+
@@ -29,12 +31,15 @@
-
+
-
+
+
+
+
@@ -42,329 +47,272 @@
-
-
-
-
+
+
+
+
+
-
-
-
+
-
-
+
-
+
+
-
-
-
+
+
+
-
-
+
-
-
-
-
-
-
+
+
+
-
-
-
+
-
-
+
-
-
+
-
-
+
-
-
-
-
+
-
-
-
-
+
+
-
-
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
-
-
-
-
+
-
-
-
+
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -373,10 +321,15 @@
-
-
+
+
+
+
+
+
+
@@ -390,6 +343,11 @@
+
+
+
+
+
diff --git a/Projects/ScriptManager/project1.lpr b/Projects/ScriptManager/project1.lpr
index 0ce5d06..7eda75a 100644
--- a/Projects/ScriptManager/project1.lpr
+++ b/Projects/ScriptManager/project1.lpr
@@ -7,8 +7,7 @@ uses
cthreads, cmem,
{$ENDIF}
Interfaces, // this includes the LCL widgetset
- Forms, scriptmanager
- { you can add units after this };
+ Forms, scriptmanager;
{$R *.res}
diff --git a/Projects/ScriptManager/scriptmanager.lfm b/Projects/ScriptManager/scriptmanager.lfm
index 4199955..da830c8 100644
--- a/Projects/ScriptManager/scriptmanager.lfm
+++ b/Projects/ScriptManager/scriptmanager.lfm
@@ -1,5 +1,5 @@
object Form1: TForm1
- Left = 466
+ Left = 508
Height = 434
Top = 179
Width = 702
@@ -32,9 +32,9 @@ object Form1: TForm1
TabOrder = 1
object Memo1: TMemo
Left = 14
- Height = 280
- Top = 8
- Width = 376
+ Height = 288
+ Top = 15
+ Width = 384
BorderStyle = bsNone
Color = clBtnFace
ReadOnly = True
diff --git a/Projects/ScriptManager/scriptmanager.pas b/Projects/ScriptManager/scriptmanager.pas
index fd6fa8e..ac86dd3 100644
--- a/Projects/ScriptManager/scriptmanager.pas
+++ b/Projects/ScriptManager/scriptmanager.pas
@@ -37,7 +37,7 @@ uses
{$IFDEF UNIX}cthreads,cmem,{$ENDIF} Classes, SysUtils, FileUtil, Forms,
Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, ComCtrls, ActnList, Menus, settings, updater,strutils, MufasaTypes,
- dom, mmisc;
+ dom, mmisc, Simbasettings, SimbaUnit;
type
@@ -51,7 +51,8 @@ type
Name, Version, Author, Description, URL: String;
Tags, Files: TStringList;
LocalScript : TSimbaScript;
- property Installed : boolean read IsInstalled;
+// property Installed : boolean read IsInstalled;
+ Installed : boolean;
procedure Dbg;
constructor Create;
destructor Destroy; override;
@@ -76,16 +77,16 @@ type
private
FMaindir: string;
FRScripts : TList; //Array of the online scripts
- FLScripts: TList; //Array of the local scripts
+ FLScripts : TList; //Array of the local scripts
FRVersion : String;
FUpdating : boolean;
function GetLScriptCount: integer;
function GetMainDir: string;
function GetScript(index : integer): TSimbaScript;
function GetRScriptCount: integer;
- procedure MatchLocalOnline;
function GetLScriptByName(name: string): TLSimbaScript;
function isNewerVersion(ver1, ver2: string): boolean;
+ procedure AppendRemoteDB(url: string);
public
function FindRScriptByName(name : string) : Integer;
function FindLScriptByName(name : string) : Integer;
@@ -126,8 +127,6 @@ type
end;
-
-
var
Form1: TForm1;
@@ -156,7 +155,7 @@ begin
Memo1.Lines.add('Name: ' + Script.Name);
Memo1.lines.add('Author: ' + Script.Author);
Memo1.Lines.add('Version: ' + Script.Version);
- Memo1.Lines.add('Installed: '+ BoolToStr(Script.Installed,true));
+ Memo1.Lines.add('Installed: '+ BoolToStr(Script.IsInstalled, true));
Memo1.Lines.add('Description: ' + Script.Description);
end;
end;
@@ -212,10 +211,17 @@ begin
if (ListView1.Selected <> nil) and (ListView1.Selected.Data <> nil) then
begin
Script := TSimbaScript(ListView1.Selected.Data);
-// if Script.IsInstalled then
-// Mng.UpdateLScript(mng.FindRScriptByName(Script.Name))
-// else
+ if Script.IsInstalled then
+ begin
+ ShowMessage('Updating Script "' + Script.Name + '"');
+ Mng.UpdateLScript(mng.FindRScriptByName(Script.Name));
+ ShowMessage('Finished Updating Script "' + Script.Name + '"');
+ end else
+ begin
+ ShowMessage('Installing Script "' + Script.Name + '"');
Mng.InstallNewRScript(mng.FindRScriptByName(Script.Name));
+ ShowMessage('Finished Installing Script "' + Script.Name + '"');
+ end;
end;
end;
@@ -223,7 +229,7 @@ end;
function TSimbaScript.IsInstalled: boolean;
begin
- Result := (LocalScript <> nil);
+ Result := Self.Installed;
end;
procedure TSimbaScript.LoadFromNode(Script: TDOMNode);
@@ -278,17 +284,18 @@ begin
Writeln(' Version: ' + Version);
Writeln(' Description: ' + Description);
Writeln(' Installed: '+ BoolToStr(Installed,true));
- Writeln(' Tags:');
+{ Writeln(' Tags:');
for i := 0 to Tags.Count - 1 do
Writeln(' ' + Tags[i]);
Writeln(' Files:');
for i := 0 to Files.Count - 1 do
Writeln(' ' + Files[i]);
-end;
+}end;
constructor TSimbaScript.Create;
begin
inherited;
+ Installed := False;
{stuff here}
end;
@@ -358,26 +365,28 @@ begin
result := FRScripts.Count;
end;
-procedure TScriptManager.MatchLocalOnline;
+procedure TScriptManager.RUpdate;
var
- Scrpt : TLSimbaScript;
- I,II : integer;
+ Databs : TStringList;
+ X : integer;
begin
- for ii := 0 to LScriptCount - 1 do
+ Databs := TStringList.Create;
+ Databs.Add('http://tootoot222.hopto.org:8080/~mcteo/scriptman/scripts.xml');
+
+// ShowMessage(SettingsForm.Settings.GetKeyValueDefLoad('Settings/SourceEditor/DefScriptPath', ,SimbaSettingsFile));
+ ShowMessage(SimbaSettingsFile);
+// ShowMessage(LoadSettingDef('Settings/SourceEditor/DefScriptPath', ExpandFileName(MainDir+DS+'default.simba')));
+
+ FRScripts.Clear();
+ for X := 0 to Databs.Count-1 do
begin
- Scrpt := TLSimbaScript(FLScripts[ii]);
- if Scrpt.OnlineScript = nil then
- for i := 0 to RScriptCount-1 do
- if TSimbaScript(FRScripts[i]).Name = Scrpt.Name then
- begin
- Scrpt.OnlineScript := TSimbaScript(FRScripts[i]);
- Break;
- end;
- Scrpt.OnlineScript.LocalScript := Scrpt;
+ AppendRemoteDB(Databs[X]);
end;
+ Databs.Free;
end;
-procedure TScriptManager.RUpdate;
+{ Downloads online scripts.xml and parses it, populating FRScripts }
+procedure TScriptManager.AppendRemoteDB(url: string);
var
XMLFile : string;
Stream : TStringStream;
@@ -393,7 +402,8 @@ begin
exit;
FUpdating := True;
// Down := TDownloadThread.Create('http://old.villavu.com/sm',@XMLFile);
- Down := TDownloadThread.Create('http://tootoot222.hopto.org:8080/~mcteo/scriptman/scripts.xml',@XMLFile);
+ Down := TDownloadThread.Create(url, @XMLFile);
+// Down := TDownloadThread.Create('http://tootoot222.hopto.org:8080/~mcteo/scriptman/scripts.xml',@XMLFile);
down.Execute;
while down.Done = false do
begin
@@ -410,11 +420,11 @@ begin
if node <> nil then
begin
script := Node.FirstChild;
+ WriteLn('loading remote script from online db');
while Script <> nil do
begin
SScript := TSimbaScript.Create;
SScript.LoadFromNode(Script);
- SScript.Dbg;
i := FindRScriptByName(SScript.Name);
if (i = -1) then // if no remote scripts with same name
begin
@@ -429,7 +439,8 @@ begin
begin
if isNewerVersion(SScript.Version, LScr.Version) then // if local script is older
begin
- FRScripts.Add(SScript); // add version of script
+ SScript.Installed := True;
+ FRScripts.Add(SScript); // add newer version of script
end;
end;
end;
@@ -440,12 +451,14 @@ begin
end;
Script := Script.NextSibling;
end;
+ WriteLn('finished loading remote script from online db');
end;
XMLDoc.Free;
FUpdating := false;
// MatchLocalOnline;
end;
+{ Opens local scripts.xml and parses it, populating FLScripts }
procedure TScriptManager.LUpdate;
var
XMLDoc : TXMLDocument;
@@ -457,14 +470,17 @@ var
begin
if DirectoryExists(MainDir) = false then
exit;
+ WriteLn('Reading XML Config file from "' + maindir + 'General' + DirectorySeparator+ 'scripts.xml"');
if FileExists(maindir + 'General' + DirectorySeparator+ 'scripts.xml') then
begin
ReadXMLFile(XMLDoc,maindir + 'General' + DirectorySeparator+ 'scripts.xml');
- Node := XMLDoc.FirstChild.FindNode('ScriptList');
-// Node := XMLDoc.FindNode('ScriptList');
+// Node := XMLDoc.FirstChild.FindNode('ScriptList');
+ Node := XMLDoc.FindNode('ScriptList');
if node <> nil then
begin
+ FLScripts.Clear();
script := Node.FirstChild;
+ WriteLn('loading local script from local db');
while script <> nil do
begin
SScript := TLSimbaScript.Create;
@@ -473,7 +489,6 @@ begin
begin
SScript.LoadFromName(Trim(tmpNode.TextContent), maindir);
i := FindLScriptByName(SScript.Name);
-// SScript.Dbg;
if (i = -1) then
begin
FLScripts.Add(SScript);
@@ -486,12 +501,13 @@ begin
end;
script := script.NextSibling;
end;
+ WriteLn('finished loading local scripts from local db');
end;
XMLDoc.Free;
end;
-// MatchLocalOnline;
end;
+{ Compares versions and returns true if ver1 > ver2 }
function TScriptManager.isNewerVersion(ver1, ver2: string): boolean;
var
v1, v2: Extended;
@@ -503,11 +519,12 @@ end;
function TScriptManager.NewVersion(Script: integer): boolean;
begin
- MatchLocalOnline;
+// MatchLocalOnline;
with TLSimbaScript(FLScripts[Script]) do
result := OnlineScript.Version <> Version;
end;
+{ Sets up some vars/dirs and hands installation to update script func }
procedure TScriptManager.InstallNewRScript(Script: integer);
var
Scrpt : TSimbaScript;
@@ -519,7 +536,6 @@ begin
FUpdating := true;
Scrpt := TSimbaScript(FRScripts[Script]);
LScrpt := TLSimbaScript.create;
- FLScripts.Add(LScrpt);
LScrpt.Name:= Scrpt.Name;
LScrpt.OnlineScript := Scrpt;
Dir := MainDir + LScrpt.Name + DirectorySeparator;
@@ -527,9 +543,12 @@ begin
Writeln('Directory already exists, yet continue?');
if not CreateDir(Dir) then
Writeln('Failed to create dir..');
- UpdateLScript(FLScripts.Count - 1,true);
+ FLScripts.Add(LScrpt);
+ UpdateLScript(FLScripts.Count - 1, true);
end;
+{ Downloads script files and puts them in their own directory,
+ then triggers updating of local scripts.xml to match FLScripts }
function TScriptManager.UpdateLScript(Script: integer; ignoreupdating : boolean = false) : boolean;
var
LScrpt : TLSimbaScript;
@@ -569,6 +588,7 @@ begin
FUPdating := false;
end;
+{ Updates local scripts.xml to match FLScripts }
procedure TScriptManager.LSave;
var
XMLDoc : TXMLDocument;
@@ -590,9 +610,12 @@ begin
Node := XMLDoc.CreateElement('ScriptList');
XMLDoc.AppendChild(node);
for i := 0 to FLScripts.Count - 1 do
+ begin
+ TLSimbaScript(FLScripts[i]).Dbg;
ChildNode := XMLDoc.CreateElement('Script');
AddTextElement(childnode,'Name', TLSimbaScript(FLScripts[i]).Name);
Node.AppendChild(ChildNode);
+ end;
WriteXMLFile(XMLDoc,maindir + 'General' + DirectorySeparator+ 'scripts.xml');
XMLDoc.Free;
end;
diff --git a/Projects/Simba/simbaunit.lfm b/Projects/Simba/simbaunit.lfm
index 95f42de..a6e0854 100644
--- a/Projects/Simba/simbaunit.lfm
+++ b/Projects/Simba/simbaunit.lfm
@@ -1,8 +1,9 @@
object SimbaForm: TSimbaForm
- Left = 531
+ Left = 423
Height = 623
- Top = 290
+ Top = 179
Width = 660
+ ActiveControl = ScriptPanel
AllowDropFiles = True
Caption = 'THA FUKING Simba'
ClientHeight = 598
@@ -15,7 +16,7 @@ object SimbaForm: TSimbaForm
OnDropFiles = FormDropFiles
OnHide = doOnHide
OnShortCut = FormShortCuts
- LCLVersion = '0.9.31'
+ LCLVersion = '0.9.28.2'
Visible = True
object ToolBar1: TToolBar
Left = 0
@@ -305,6 +306,7 @@ object SimbaForm: TSimbaForm
Height = 19
Top = 7
Width = 16
+ Color = clBtnFace
Flat = True
Glyph.Data = {
36090000424D3609000000000000360000002800000018000000180000000100
@@ -395,10 +397,10 @@ object SimbaForm: TSimbaForm
EditLabel.AnchorSideTop.Side = asrCenter
EditLabel.AnchorSideRight.Control = LabeledEditSearch
EditLabel.AnchorSideBottom.Control = LabeledEditSearch
- EditLabel.Left = 66
+ EditLabel.Left = 64
EditLabel.Height = 18
EditLabel.Top = 10
- EditLabel.Width = 35
+ EditLabel.Width = 37
EditLabel.Caption = 'Find: '
EditLabel.ParentColor = False
LabelPosition = lpLeft
@@ -411,9 +413,9 @@ object SimbaForm: TSimbaForm
end
object CheckBoxMatchCase: TCheckBox
Left = 320
- Height = 19
+ Height = 24
Top = 7
- Width = 93
+ Width = 101
Caption = 'Match case'
OnClick = CheckBoxMatchCaseClick
TabOrder = 1
@@ -434,6 +436,10 @@ object SimbaForm: TSimbaForm
ClientWidth = 150
OnEndDock = nil
TabOrder = 3
+ inherited FunctionListLabel: TLabel
+ Height = 18
+ Width = 146
+ end
inherited FunctionList: TTreeView
Height = 310
Top = 22
@@ -451,10 +457,6 @@ object SimbaForm: TSimbaForm
OnKeyDown = editSearchListKeyDown
OnKeyPress = editSearchListKeyPress
end
- inherited FunctionListLabel: TLabel
- Height = 18
- Width = 146
- end
end
end
object MainMenu: TMainMenu
@@ -1119,6 +1121,7 @@ object SimbaForm: TSimbaForm
end
object MenuItemGoto: TMenuItem
Action = ActionGoto
+ OnClick = ActionGotoExecute
end
end
object MenuItemScript: TMenuItem
@@ -1260,14 +1263,17 @@ object SimbaForm: TSimbaForm
object MenuItemPascalScript: TMenuItem
Action = ActionPascalScript
RadioItem = True
+ OnClick = ActionPascalScriptExecute
end
object MenuItemRUTIS: TMenuItem
Action = ActionRUTIS
RadioItem = True
+ OnClick = ActionRUTISExecute
end
object MenuItemCPascal: TMenuItem
Action = ActionCPascal
RadioItem = True
+ OnClick = ActionCPascalExecute
end
end
end
@@ -1287,6 +1293,7 @@ object SimbaForm: TSimbaForm
end
object MenuItemExtensions: TMenuItem
Action = ActionExtensions
+ OnClick = ActionExtensionsExecute
end
end
object MenuTools: TMenuItem
@@ -3331,21 +3338,10 @@ object SimbaForm: TSimbaForm
end
object SCARHighlighter: TSynPasSyn
Enabled = False
- AsmAttri.FrameEdges = sfeAround
CommentAttri.Foreground = clGreen
- CommentAttri.FrameEdges = sfeAround
CommentAttri.Style = []
- IDEDirectiveAttri.FrameEdges = sfeAround
- IdentifierAttri.FrameEdges = sfeAround
- KeyAttri.FrameEdges = sfeAround
NumberAttri.Foreground = clNavy
- NumberAttri.FrameEdges = sfeAround
- SpaceAttri.FrameEdges = sfeAround
StringAttri.Foreground = clFuchsia
- StringAttri.FrameEdges = sfeAround
- SymbolAttri.FrameEdges = sfeAround
- CaseLabelAttri.FrameEdges = sfeAround
- DirectiveAttri.FrameEdges = sfeAround
CompilerMode = pcmObjFPC
NestedComments = False
left = 568
@@ -3353,25 +3349,13 @@ object SimbaForm: TSimbaForm
end
object LazHighlighter: TSynPasSyn
Enabled = False
- AsmAttri.FrameEdges = sfeAround
CommentAttri.Foreground = clBlue
- CommentAttri.FrameEdges = sfeAround
CommentAttri.Style = [fsBold]
- IDEDirectiveAttri.FrameEdges = sfeAround
IdentifierAttri.Foreground = clDefault
- IdentifierAttri.FrameEdges = sfeAround
- KeyAttri.FrameEdges = sfeAround
NumberAttri.Foreground = clNavy
- NumberAttri.FrameEdges = sfeAround
- SpaceAttri.FrameEdges = sfeAround
StringAttri.Foreground = clBlue
- StringAttri.FrameEdges = sfeAround
SymbolAttri.Foreground = clRed
- SymbolAttri.FrameEdges = sfeAround
- CaseLabelAttri.FrameEdges = sfeAround
- CaseLabelAttri.Style = [fsItalic]
DirectiveAttri.Foreground = clRed
- DirectiveAttri.FrameEdges = sfeAround
DirectiveAttri.Style = [fsBold]
CompilerMode = pcmObjFPC
NestedComments = False
diff --git a/Projects/Simba/updateform.lfm b/Projects/Simba/updateform.lfm
index 6b8fada..3535947 100644
--- a/Projects/Simba/updateform.lfm
+++ b/Projects/Simba/updateform.lfm
@@ -1,5 +1,5 @@
object SimbaUpdateForm: TSimbaUpdateForm
- Left = 262
+ Left = 276
Height = 331
Top = 219
Width = 473
@@ -9,7 +9,7 @@ object SimbaUpdateForm: TSimbaUpdateForm
ClientWidth = 473
OnCreate = FormCreate
OnShow = CleanUpdateForm
- LCLVersion = '0.9.29'
+ LCLVersion = '0.9.30.1'
object DownloadProgress: TProgressBar
Left = 8
Height = 29
@@ -49,9 +49,9 @@ object SimbaUpdateForm: TSimbaUpdateForm
end
object DownloadSpeed: TLabel
Left = 96
- Height = 14
- Top = 306
- Width = 78
+ Height = 18
+ Top = 302
+ Width = 111
Anchors = [akLeft, akBottom]
Caption = 'DownloadSpeed'
ParentColor = False