diff --git a/Projects/ScriptManager/project1.lpi b/Projects/ScriptManager/project1.lpi
index 4e808df..c4dc757 100644
--- a/Projects/ScriptManager/project1.lpi
+++ b/Projects/ScriptManager/project1.lpi
@@ -10,8 +10,10 @@
-
+
+
+
@@ -29,12 +31,15 @@
-
+
-
+
+
+
+
@@ -45,326 +50,280 @@
-
-
-
+
+
+
-
-
+
-
-
+
-
+
-
-
-
+
+
+
-
-
+
-
-
-
-
-
-
+
+
+
-
-
-
+
-
-
+
-
-
+
-
-
+
-
-
-
-
+
-
-
-
-
+
+
-
-
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
-
-
-
-
+
-
-
-
+
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -373,10 +332,15 @@
-
-
+
+
+
+
+
+
+
@@ -390,6 +354,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/project1.manifest b/Projects/ScriptManager/project1.manifest
new file mode 100644
index 0000000..07fb624
--- /dev/null
+++ b/Projects/ScriptManager/project1.manifest
@@ -0,0 +1,17 @@
+
+
+
+ Your application description here.
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Projects/ScriptManager/project1.rc b/Projects/ScriptManager/project1.rc
new file mode 100644
index 0000000..1c963f2
--- /dev/null
+++ b/Projects/ScriptManager/project1.rc
@@ -0,0 +1,6 @@
+#define RT_MANIFEST 24
+#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
+#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
+#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
+
+CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "project1.manifest"
diff --git a/Projects/ScriptManager/scriptmanager.lfm b/Projects/ScriptManager/scriptmanager.lfm
index 4199955..8affe30 100644
--- a/Projects/ScriptManager/scriptmanager.lfm
+++ b/Projects/ScriptManager/scriptmanager.lfm
@@ -1,5 +1,5 @@
object Form1: TForm1
- Left = 466
+ Left = 515
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..6e99827 100644
--- a/Projects/ScriptManager/scriptmanager.pas
+++ b/Projects/ScriptManager/scriptmanager.pas
@@ -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);
@@ -289,6 +295,7 @@ end;
constructor TSimbaScript.Create;
begin
inherited;
+ Installed := False;
{stuff here}
end;
@@ -358,26 +365,35 @@ 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');
+ Databs.Add('http://tootoot222.hopto.org:8080/~mcteo/scriptman2/scripts.xml');
+ Databs.Add('http://tootoot222.hopto.org:8080/~mcteo/secretrepo/scripts.cgi?user=user&pass=pass');
+
+ //TODO: Load list of repositories
+
+// ShowMessage(SettingsForm.Settings.GetKeyValueDefLoad('Settings/SourceEditor/DefScriptPath', ,SimbaSettingsFile));
+// ShowMessage(LoadSettingDef('Settings/SourceEditor/DefScriptPath', ExpandFileName(MainDir+DS+'default.simba')));
+ FRScripts.Clear();
+ Form1.Memo1.Clear;
+ Form1.Memo1.Lines.Add('Updating from Repos');
+ 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;
+ Form1.Memo1.Lines.Add('Updating from Repos ' + inttostr(X+1) +
+ '/' + inttostr(Databs.Count));
+ AppendRemoteDB(Databs[X]);
end;
+ Databs.Free;
+ Form1.Memo1.Lines.Add('Finished updating from Repos');
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 +409,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 +427,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 +446,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 +458,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 +477,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 +496,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 +508,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 +526,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 +543,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 +550,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 +595,7 @@ begin
FUPdating := false;
end;
+{ Updates local scripts.xml to match FLScripts }
procedure TScriptManager.LSave;
var
XMLDoc : TXMLDocument;
@@ -590,9 +617,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 f396c98..ddd772c 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 = 603
@@ -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,17 @@ object SimbaForm: TSimbaForm
EditLabel.AnchorSideTop.Side = asrCenter
EditLabel.AnchorSideRight.Control = LabeledEditSearch
EditLabel.AnchorSideBottom.Control = LabeledEditSearch
+<<<<<<< HEAD
+ EditLabel.Left = 64
+ EditLabel.Height = 18
+ EditLabel.Top = 10
+ EditLabel.Width = 37
+=======
EditLabel.Left = 71
EditLabel.Height = 16
EditLabel.Top = 9
EditLabel.Width = 30
+>>>>>>> upstream/master
EditLabel.Caption = 'Find: '
EditLabel.ParentColor = False
LabelPosition = lpLeft
@@ -411,9 +420,13 @@ object SimbaForm: TSimbaForm
end
object CheckBoxMatchCase: TCheckBox
Left = 320
- Height = 19
+ Height = 24
Top = 7
+<<<<<<< HEAD
+ Width = 101
+=======
Width = 80
+>>>>>>> upstream/master
Caption = 'Match case'
OnClick = CheckBoxMatchCaseClick
TabOrder = 1
@@ -434,6 +447,10 @@ object SimbaForm: TSimbaForm
ClientWidth = 150
OnEndDock = nil
TabOrder = 3
+ inherited FunctionListLabel: TLabel
+ Height = 18
+ Width = 146
+ end
inherited FunctionList: TTreeView
Height = 319
Top = 20
@@ -451,10 +468,13 @@ object SimbaForm: TSimbaForm
OnKeyDown = editSearchListKeyDown
OnKeyPress = editSearchListKeyPress
end
+<<<<<<< HEAD
+=======
inherited FunctionListLabel: TLabel
Height = 16
Width = 146
end
+>>>>>>> upstream/master
end
end
object MainMenu: TMainMenu
@@ -1119,6 +1139,7 @@ object SimbaForm: TSimbaForm
end
object MenuItemGoto: TMenuItem
Action = ActionGoto
+ OnClick = ActionGotoExecute
end
end
object MenuItemScript: TMenuItem
@@ -1260,14 +1281,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 +1311,7 @@ object SimbaForm: TSimbaForm
end
object MenuItemExtensions: TMenuItem
Action = ActionExtensions
+ OnClick = ActionExtensionsExecute
end
end
object MenuTools: TMenuItem
@@ -3332,21 +3357,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
@@ -3354,25 +3368,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